@@ -198,14 +198,17 @@ let Features = "sse", Header = "xmmintrin.h", Attributes = [NoThrow, RequireDecl
198198 def _mm_sfence : X86LibBuiltin<" void()" >;
199199}
200200
201+ let Features = " sse" , Attributes = [NoThrow, Const, Constexpr, RequiredVectorWidth<128 >] in {
202+ def shufps : X86Builtin<" _Vector<4, float>(_Vector<4, float>, _Vector<4, float>, _Constant int)" >;
203+ }
204+
201205let Features = " sse" , Attributes = [NoThrow, Const, RequiredVectorWidth<128 >] in {
202206 def rcpps : X86Builtin<" _Vector<4, float>(_Vector<4, float>)" >;
203207 def rcpss : X86Builtin<" _Vector<4, float>(_Vector<4, float>)" >;
204208 def rsqrtps : X86Builtin<" _Vector<4, float>(_Vector<4, float>)" >;
205209 def rsqrtss : X86Builtin<" _Vector<4, float>(_Vector<4, float>)" >;
206210 def sqrtps : X86Builtin<" _Vector<4, float>(_Vector<4, float>)" >;
207211 def sqrtss : X86Builtin<" _Vector<4, float>(_Vector<4, float>)" >;
208- def shufps : X86Builtin<" _Vector<4, float>(_Vector<4, float>, _Vector<4, float>, _Constant int)" >;
209212}
210213
211214let Features = " sse2" , Attributes = [NoThrow, RequiredVectorWidth<128 >] in {
@@ -222,13 +225,13 @@ let Features = "sse2", Attributes = [NoThrow, Const, Constexpr, RequiredVectorWi
222225 def pshufhw : X86Builtin<" _Vector<8, short>(_Vector<8, short>, _Constant int)" >;
223226 def movmskpd : X86Builtin<" int(_Vector<2, double>)" >;
224227 def pmovmskb128 : X86Builtin<" int(_Vector<16, char>)" >;
228+ def shufpd : X86Builtin<" _Vector<2, double>(_Vector<2, double>, _Vector<2, double>, _Constant int)" >;
225229}
226230
227231let Features = " sse2" , Attributes = [NoThrow, Const, RequiredVectorWidth<128 >] in {
228232 def psadbw128 : X86Builtin<" _Vector<2, long long int>(_Vector<16, char>, _Vector<16, char>)" >;
229233 def sqrtpd : X86Builtin<" _Vector<2, double>(_Vector<2, double>)" >;
230234 def sqrtsd : X86Builtin<" _Vector<2, double>(_Vector<2, double>)" >;
231- def shufpd : X86Builtin<" _Vector<2, double>(_Vector<2, double>, _Vector<2, double>, _Constant int)" >;
232235 def cvtpd2dq : X86Builtin<" _Vector<2, long long int>(_Vector<2, double>)" >;
233236 def cvtpd2ps : X86Builtin<" _Vector<4, float>(_Vector<2, double>)" >;
234237 def cvttpd2dq : X86Builtin<" _Vector<4, int>(_Vector<2, double>)" >;
@@ -280,8 +283,6 @@ let Features = "sse2", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] i
280283 def psllw128 : X86Builtin<" _Vector<8, short>(_Vector<8, short>, _Vector<8, short>)" >;
281284 def pslld128 : X86Builtin<" _Vector<4, int>(_Vector<4, int>, _Vector<4, int>)" >;
282285 def psllq128 : X86Builtin<" _Vector<2, long long int>(_Vector<2, long long int>, _Vector<2, long long int>)" >;
283- def pslldqi128_byteshift : X86Builtin<" _Vector<16, char>(_Vector<16, char>, _Constant int)" >;
284- def psrldqi128_byteshift : X86Builtin<" _Vector<16, char>(_Vector<16, char>, _Constant int)" >;
285286}
286287
287288let Features = " sse2" ,
@@ -300,6 +301,9 @@ let Features = "sse2",
300301
301302 def psrawi128 : X86Builtin<" _Vector<8, short>(_Vector<8, short>, int)" >;
302303 def psradi128 : X86Builtin<" _Vector<4, int>(_Vector<4, int>, int)" >;
304+
305+ def pslldqi128_byteshift : X86Builtin<" _Vector<16, char>(_Vector<16, char>, _Constant int)" >;
306+ def psrldqi128_byteshift : X86Builtin<" _Vector<16, char>(_Vector<16, char>, _Constant int)" >;
303307}
304308
305309let Features = " sse3" , Attributes = [NoThrow] in {
@@ -487,13 +491,16 @@ let Features = "avx512f,vpclmulqdq", Attributes = [NoThrow, Const, RequiredVecto
487491 def pclmulqdq512 : X86Builtin<" _Vector<8, long long int>(_Vector<8, long long int>, _Vector<8, long long int>, _Constant char)" >;
488492}
489493
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+
490499let Features = " avx" , Attributes = [NoThrow, Const, RequiredVectorWidth<256 >] in {
491500 def vpermilvarpd : X86Builtin<" _Vector<2, double>(_Vector<2, double>, _Vector<2, long long int>)" >;
492501 def vpermilvarps : X86Builtin<" _Vector<4, float>(_Vector<4, float>, _Vector<4, int>)" >;
493502 def vpermilvarpd256 : X86Builtin<" _Vector<4, double>(_Vector<4, double>, _Vector<4, long long int>)" >;
494503 def vpermilvarps256 : X86Builtin<" _Vector<8, float>(_Vector<8, float>, _Vector<8, int>)" >;
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)" >;
497504 def dpps256 : X86Builtin<" _Vector<8, float>(_Vector<8, float>, _Vector<8, float>, _Constant char)" >;
498505 def cmppd256 : X86Builtin<" _Vector<4, double>(_Vector<4, double>, _Vector<4, double>, _Constant char)" >;
499506 def cmpps256 : X86Builtin<" _Vector<8, float>(_Vector<8, float>, _Vector<8, float>, _Constant char)" >;
@@ -607,12 +614,10 @@ let Features = "avx2", Attributes = [NoThrow, Const, RequiredVectorWidth<256>] i
607614 : X86Builtin<
608615 " _Vector<4, long long int>(_Vector<32, char>, _Vector<32, char>)" >;
609616 def psllw256 : X86Builtin<" _Vector<16, short>(_Vector<16, short>, _Vector<8, short>)" >;
610- def pslldqi256_byteshift : X86Builtin<" _Vector<32, char>(_Vector<32, char>, _Constant int)" >;
611617 def pslld256 : X86Builtin<" _Vector<8, int>(_Vector<8, int>, _Vector<4, int>)" >;
612618 def psllq256 : X86Builtin<" _Vector<4, long long int>(_Vector<4, long long int>, _Vector<2, long long int>)" >;
613619 def psraw256 : X86Builtin<" _Vector<16, short>(_Vector<16, short>, _Vector<8, short>)" >;
614620 def psrad256 : X86Builtin<" _Vector<8, int>(_Vector<8, int>, _Vector<4, int>)" >;
615- def psrldqi256_byteshift : X86Builtin<" _Vector<32, char>(_Vector<32, char>, _Constant int)" >;
616621 def psrlw256 : X86Builtin<" _Vector<16, short>(_Vector<16, short>, _Vector<8, short>)" >;
617622 def psrld256 : X86Builtin<" _Vector<8, int>(_Vector<8, int>, _Vector<4, int>)" >;
618623 def psrlq256 : X86Builtin<" _Vector<4, long long int>(_Vector<4, long long int>, _Vector<2, long long int>)" >;
@@ -646,10 +651,12 @@ let Features = "avx2", Attributes = [NoThrow, Const, Constexpr, RequiredVectorWi
646651 def psllwi256 : X86Builtin<" _Vector<16, short>(_Vector<16, short>, int)" >;
647652 def pslldi256 : X86Builtin<" _Vector<8, int>(_Vector<8, int>, int)" >;
648653 def psllqi256 : X86Builtin<" _Vector<4, long long int>(_Vector<4, long long int>, int)" >;
654+ def pslldqi256_byteshift : X86Builtin<" _Vector<32, char>(_Vector<32, char>, _Constant int)" >;
649655
650656 def psrlwi256 : X86Builtin<" _Vector<16, short>(_Vector<16, short>, int)" >;
651657 def psrldi256 : X86Builtin<" _Vector<8, int>(_Vector<8, int>, int)" >;
652658 def psrlqi256 : X86Builtin<" _Vector<4, long long int>(_Vector<4, long long int>, int)" >;
659+ def psrldqi256_byteshift : X86Builtin<" _Vector<32, char>(_Vector<32, char>, _Constant int)" >;
653660
654661 def psrawi256 : X86Builtin<" _Vector<16, short>(_Vector<16, short>, int)" >;
655662 def psradi256 : X86Builtin<" _Vector<8, int>(_Vector<8, int>, int)" >;
@@ -2090,6 +2097,9 @@ let Features = "avx512bw", Attributes = [NoThrow, Const, RequiredVectorWidth<512
20902097 : X86Builtin<" _Vector<32, short>(_Vector<32, short>, _Vector<8, short>)" >;
20912098 def psrlw512
20922099 : X86Builtin<" _Vector<32, short>(_Vector<32, short>, _Vector<8, short>)" >;
2100+ }
2101+
2102+ let Features = " avx512bw" , Attributes = [NoThrow, Const, Constexpr, RequiredVectorWidth<512 >] in {
20932103 def pslldqi512_byteshift : X86Builtin<" _Vector<64, char>(_Vector<64, char>, _Constant int)" >;
20942104 def psrldqi512_byteshift : X86Builtin<" _Vector<64, char>(_Vector<64, char>, _Constant int)" >;
20952105}
@@ -2470,6 +2480,9 @@ let Features = "avx512f", Attributes = [NoThrow, Const, RequiredVectorWidth<512>
24702480 def shuf_f64x2 : X86Builtin<" _Vector<8, double>(_Vector<8, double>, _Vector<8, double>, _Constant int)" >;
24712481 def shuf_i32x4 : X86Builtin<" _Vector<16, int>(_Vector<16, int>, _Vector<16, int>, _Constant int)" >;
24722482 def shuf_i64x2 : X86Builtin<" _Vector<8, long long int>(_Vector<8, long long int>, _Vector<8, long long int>, _Constant int)" >;
2483+ }
2484+
2485+ let Features = " avx512f" , Attributes = [NoThrow, Const, Constexpr, RequiredVectorWidth<512 >] in {
24732486 def shufpd512 : X86Builtin<" _Vector<8, double>(_Vector<8, double>, _Vector<8, double>, _Constant int)" >;
24742487 def shufps512 : X86Builtin<" _Vector<16, float>(_Vector<16, float>, _Vector<16, float>, _Constant int)" >;
24752488}
0 commit comments