@@ -197,14 +197,17 @@ let Features = "sse", Header = "xmmintrin.h", Attributes = [NoThrow, RequireDecl
197197 def _mm_sfence : X86LibBuiltin<" void()" >;
198198}
199199
200+ let Features = " sse" , Attributes = [NoThrow, Const, Constexpr, RequiredVectorWidth<128 >] in {
201+ def shufps : X86Builtin<" _Vector<4, float>(_Vector<4, float>, _Vector<4, float>, _Constant int)" >;
202+ }
203+
200204let Features = " sse" , Attributes = [NoThrow, Const, RequiredVectorWidth<128 >] in {
201205 def rcpps : X86Builtin<" _Vector<4, float>(_Vector<4, float>)" >;
202206 def rcpss : X86Builtin<" _Vector<4, float>(_Vector<4, float>)" >;
203207 def rsqrtps : X86Builtin<" _Vector<4, float>(_Vector<4, float>)" >;
204208 def rsqrtss : X86Builtin<" _Vector<4, float>(_Vector<4, float>)" >;
205209 def sqrtps : X86Builtin<" _Vector<4, float>(_Vector<4, float>)" >;
206210 def sqrtss : X86Builtin<" _Vector<4, float>(_Vector<4, float>)" >;
207- def shufps : X86Builtin<" _Vector<4, float>(_Vector<4, float>, _Vector<4, float>, _Constant int)" >;
208211}
209212
210213let Features = " sse2" , Attributes = [NoThrow, RequiredVectorWidth<128 >] in {
@@ -224,13 +227,13 @@ let Features = "sse2", Attributes = [NoThrow, Const, Constexpr, RequiredVectorWi
224227 def pshuflw : X86Builtin<" _Vector<8, short>(_Vector<8, short>, _Constant int)" >;
225228 def pshufd : X86Builtin<" _Vector<4, int>(_Vector<4, int>, _Constant int)" >;
226229 def pshufhw : X86Builtin<" _Vector<8, short>(_Vector<8, short>, _Constant int)" >;
230+ def shufpd : X86Builtin<" _Vector<2, double>(_Vector<2, double>, _Vector<2, double>, _Constant int)" >;
227231}
228232
229233let Features = " sse2" , Attributes = [NoThrow, Const, RequiredVectorWidth<128 >] in {
230234 def psadbw128 : X86Builtin<" _Vector<2, long long int>(_Vector<16, char>, _Vector<16, char>)" >;
231235 def sqrtpd : X86Builtin<" _Vector<2, double>(_Vector<2, double>)" >;
232236 def sqrtsd : X86Builtin<" _Vector<2, double>(_Vector<2, double>)" >;
233- def shufpd : X86Builtin<" _Vector<2, double>(_Vector<2, double>, _Vector<2, double>, _Constant int)" >;
234237 def cvtpd2dq : X86Builtin<" _Vector<2, long long int>(_Vector<2, double>)" >;
235238 def cvtpd2ps : X86Builtin<" _Vector<4, float>(_Vector<2, double>)" >;
236239 def cvttpd2dq : X86Builtin<" _Vector<4, int>(_Vector<2, double>)" >;
@@ -488,13 +491,16 @@ let Features = "avx512f,vpclmulqdq", Attributes = [NoThrow, Const, RequiredVecto
488491 def pclmulqdq512 : X86Builtin<" _Vector<8, long long int>(_Vector<8, long long int>, _Vector<8, long long int>, _Constant char)" >;
489492}
490493
494+ let Features = " avx" , Attributes = [NoThrow, Const, Constexpr, RequiredVectorWidth<256 >] in {
495+ def shufpd256 : X86Builtin<" _Vector<4, double>(_Vector<4, double>, _Vector<4, double>, _Constant int)" >;
496+ def shufps256 : X86Builtin<" _Vector<8, float>(_Vector<8, float>, _Vector<8, float>, _Constant int)" >;
497+ }
498+
491499let Features = " avx" , Attributes = [NoThrow, Const, RequiredVectorWidth<256 >] in {
492500 def vpermilvarpd : X86Builtin<" _Vector<2, double>(_Vector<2, double>, _Vector<2, long long int>)" >;
493501 def vpermilvarps : X86Builtin<" _Vector<4, float>(_Vector<4, float>, _Vector<4, int>)" >;
494502 def vpermilvarpd256 : X86Builtin<" _Vector<4, double>(_Vector<4, double>, _Vector<4, long long int>)" >;
495503 def vpermilvarps256 : X86Builtin<" _Vector<8, float>(_Vector<8, float>, _Vector<8, int>)" >;
496- def shufpd256 : X86Builtin<" _Vector<4, double>(_Vector<4, double>, _Vector<4, double>, _Constant int)" >;
497- def shufps256 : X86Builtin<" _Vector<8, float>(_Vector<8, float>, _Vector<8, float>, _Constant int)" >;
498504 def dpps256 : X86Builtin<" _Vector<8, float>(_Vector<8, float>, _Vector<8, float>, _Constant char)" >;
499505 def cmppd256 : X86Builtin<" _Vector<4, double>(_Vector<4, double>, _Vector<4, double>, _Constant char)" >;
500506 def cmpps256 : X86Builtin<" _Vector<8, float>(_Vector<8, float>, _Vector<8, float>, _Constant char)" >;
@@ -2470,6 +2476,9 @@ let Features = "avx512f", Attributes = [NoThrow, Const, RequiredVectorWidth<512>
24702476 def shuf_f64x2 : X86Builtin<" _Vector<8, double>(_Vector<8, double>, _Vector<8, double>, _Constant int)" >;
24712477 def shuf_i32x4 : X86Builtin<" _Vector<16, int>(_Vector<16, int>, _Vector<16, int>, _Constant int)" >;
24722478 def shuf_i64x2 : X86Builtin<" _Vector<8, long long int>(_Vector<8, long long int>, _Vector<8, long long int>, _Constant int)" >;
2479+ }
2480+
2481+ let Features = " avx512f" , Attributes = [NoThrow, Const, Constexpr, RequiredVectorWidth<512 >] in {
24732482 def shufpd512 : X86Builtin<" _Vector<8, double>(_Vector<8, double>, _Vector<8, double>, _Constant int)" >;
24742483 def shufps512 : X86Builtin<" _Vector<16, float>(_Vector<16, float>, _Vector<16, float>, _Constant int)" >;
24752484}
0 commit comments