@@ -52,7 +52,7 @@ def emms : X86Builtin<"void()"> {
5252 let Features = " mmx" ;
5353}
5454
55- let Attributes = [NoThrow, Const, RequiredVectorWidth<64 >], Features = " sse" in {
55+ let Attributes = [NoThrow, Const, Constexpr, RequiredVectorWidth<64 >], Features = " sse" in {
5656 def vec_ext_v4hi : X86Builtin<" short(_Vector<4, short>, _Constant int)" >;
5757 def vec_set_v4hi : X86Builtin<" _Vector<4, short>(_Vector<4, short>, short, _Constant int)" >;
5858}
@@ -92,13 +92,6 @@ let Attributes = [Const, NoThrow, RequiredVectorWidth<128>] in {
9292 def cmpsd : X86Builtin<" _Vector<2, double>(_Vector<2, double>, _Vector<2, double>, _Constant char)" >;
9393 }
9494
95- let Features = " sse2" in {
96- def vec_ext_v2di : X86Builtin<" long long int(_Vector<2, long long int>, _Constant int)" >;
97- def vec_ext_v4si : X86Builtin<" int(_Vector<4, int>, _Constant int)" >;
98- def vec_ext_v4sf : X86Builtin<" float(_Vector<4, float>, _Constant int)" >;
99- def vec_ext_v8hi : X86Builtin<" short(_Vector<8, short>, _Constant int)" >;
100- def vec_set_v8hi : X86Builtin<" _Vector<8, short>(_Vector<8, short>, short, _Constant int)" >;
101- }
10295
10396 let Features = " sse2" , Attributes = [NoThrow, Const, Constexpr, RequiredVectorWidth<128 >] in {
10497 def pavgb128 : X86Builtin<" _Vector<16, unsigned char>(_Vector<16, unsigned char>, _Vector<16, unsigned char>)" >;
@@ -108,6 +101,12 @@ let Attributes = [Const, NoThrow, RequiredVectorWidth<128>] in {
108101 def packsswb128 : X86Builtin<" _Vector<16, char>(_Vector<8, short>, _Vector<8, short>)" >;
109102 def packssdw128 : X86Builtin<" _Vector<8, short>(_Vector<4, int>, _Vector<4, int>)" >;
110103 def packuswb128 : X86Builtin<" _Vector<16, char>(_Vector<8, short>, _Vector<8, short>)" >;
104+
105+ def vec_ext_v2di : X86Builtin<" long long int(_Vector<2, long long int>, _Constant int)" >;
106+ def vec_ext_v4si : X86Builtin<" int(_Vector<4, int>, _Constant int)" >;
107+ def vec_ext_v4sf : X86Builtin<" float(_Vector<4, float>, _Constant int)" >;
108+ def vec_ext_v8hi : X86Builtin<" short(_Vector<8, short>, _Constant int)" >;
109+ def vec_set_v8hi : X86Builtin<" _Vector<8, short>(_Vector<8, short>, short, _Constant int)" >;
111110 }
112111
113112 let Features = " sse3" in {
@@ -217,10 +216,13 @@ let Features = "sse2", Attributes = [NoThrow] in {
217216 def movnti : X86Builtin<" void(int *, int)" >;
218217}
219218
220- let Features = " sse2" , Attributes = [NoThrow, Const, RequiredVectorWidth<128 >] in {
221- def pshufd : X86Builtin<" _Vector<4, int>(_Vector<4, int>, _Constant int)" >;
219+ let Features = " sse2" , Attributes = [NoThrow, Const, Constexpr, RequiredVectorWidth<128 >] in {
222220 def pshuflw : X86Builtin<" _Vector<8, short>(_Vector<8, short>, _Constant int)" >;
221+ def pshufd : X86Builtin<" _Vector<4, int>(_Vector<4, int>, _Constant int)" >;
223222 def pshufhw : X86Builtin<" _Vector<8, short>(_Vector<8, short>, _Constant int)" >;
223+ }
224+
225+ let Features = " sse2" , Attributes = [NoThrow, Const, RequiredVectorWidth<128 >] in {
224226 def psadbw128 : X86Builtin<" _Vector<2, long long int>(_Vector<16, char>, _Vector<16, char>)" >;
225227 def sqrtpd : X86Builtin<" _Vector<2, double>(_Vector<2, double>)" >;
226228 def sqrtsd : X86Builtin<" _Vector<2, double>(_Vector<2, double>)" >;
@@ -323,9 +325,6 @@ let Features = "sse4.1", Attributes = [NoThrow, Const, RequiredVectorWidth<128>]
323325 def ptestnzc128 : X86Builtin<" int(_Vector<2, long long int>, _Vector<2, long long int>)" >;
324326 def mpsadbw128 : X86Builtin<" _Vector<16, char>(_Vector<16, char>, _Vector<16, char>, _Constant char)" >;
325327 def phminposuw128 : X86Builtin<" _Vector<8, short>(_Vector<8, short>)" >;
326- def vec_ext_v16qi : X86Builtin<" char(_Vector<16, char>, _Constant int)" >;
327- def vec_set_v16qi : X86Builtin<" _Vector<16, char>(_Vector<16, char>, char, _Constant int)" >;
328- def vec_set_v4si : X86Builtin<" _Vector<4, int>(_Vector<4, int>, int, _Constant int)" >;
329328}
330329
331330let Features = " sse4.1" , Attributes = [NoThrow, Const, Constexpr, RequiredVectorWidth<128 >] in {
@@ -338,6 +337,10 @@ let Features = "sse4.1", Attributes = [NoThrow, Const, Constexpr, RequiredVector
338337
339338 def pmuldq128 : X86Builtin<" _Vector<2, long long int>(_Vector<4, int>, _Vector<4, int>)" >;
340339 def packusdw128 : X86Builtin<" _Vector<8, short>(_Vector<4, int>, _Vector<4, int>)" >;
340+
341+ def vec_ext_v16qi : X86Builtin<" char(_Vector<16, char>, _Constant int)" >;
342+ def vec_set_v16qi : X86Builtin<" _Vector<16, char>(_Vector<16, char>, char, _Constant int)" >;
343+ def vec_set_v4si : X86Builtin<" _Vector<4, int>(_Vector<4, int>, int, _Constant int)" >;
341344}
342345
343346let Features = " sse4.2" , Attributes = [NoThrow, Const, RequiredVectorWidth<128 >] in {
@@ -560,7 +563,7 @@ let Features = "avx", Attributes = [NoThrow, RequiredVectorWidth<128>] in {
560563 def maskstoreps : X86Builtin<" void(_Vector<4, float *>, _Vector<4, int>, _Vector<4, float>)" >;
561564}
562565
563- let Features = " avx" , Attributes = [NoThrow, Const, RequiredVectorWidth<256 >] in {
566+ let Features = " avx" , Attributes = [NoThrow, Const, Constexpr, RequiredVectorWidth<256 >] in {
564567 def vec_ext_v32qi : X86Builtin<" char(_Vector<32, char>, _Constant int)" >;
565568 def vec_ext_v16hi : X86Builtin<" short(_Vector<16, short>, _Constant int)" >;
566569 def vec_ext_v8si : X86Builtin<" int(_Vector<8, int>, _Constant int)" >;
@@ -584,9 +587,6 @@ let Features = "avx2", Attributes = [NoThrow, Const, RequiredVectorWidth<256>] i
584587 def pmulhrsw256 : X86Builtin<" _Vector<16, short>(_Vector<16, short>, _Vector<16, short>)" >;
585588 def psadbw256 : X86Builtin<" _Vector<4, long long int>(_Vector<32, char>, _Vector<32, char>)" >;
586589 def pshufb256 : X86Builtin<" _Vector<32, char>(_Vector<32, char>, _Vector<32, char>)" >;
587- def pshufd256 : X86Builtin<" _Vector<8, int>(_Vector<8, int>, _Constant int)" >;
588- def pshuflw256 : X86Builtin<" _Vector<16, short>(_Vector<16, short>, _Constant int)" >;
589- def pshufhw256 : X86Builtin<" _Vector<16, short>(_Vector<16, short>, _Constant int)" >;
590590 def psignb256 : X86Builtin<" _Vector<32, char>(_Vector<32, char>, _Vector<32, char>)" >;
591591 def psignw256 : X86Builtin<" _Vector<16, short>(_Vector<16, short>, _Vector<16, short>)" >;
592592 def psignd256 : X86Builtin<" _Vector<8, int>(_Vector<8, int>, _Vector<8, int>)" >;
@@ -647,6 +647,10 @@ let Features = "avx2", Attributes = [NoThrow, Const, Constexpr, RequiredVectorWi
647647 def packsswb256 : X86Builtin<" _Vector<32, char>(_Vector<16, short>, _Vector<16, short>)" >;
648648 def packssdw256 : X86Builtin<" _Vector<16, short>(_Vector<8, int>, _Vector<8, int>)" >;
649649 def packuswb256 : X86Builtin<" _Vector<32, char>(_Vector<16, short>, _Vector<16, short>)" >;
650+
651+ def pshuflw256 : X86Builtin<" _Vector<16, short>(_Vector<16, short>, _Constant int)" >;
652+ def pshufhw256 : X86Builtin<" _Vector<16, short>(_Vector<16, short>, _Constant int)" >;
653+ def pshufd256 : X86Builtin<" _Vector<8, int>(_Vector<8, int>, _Constant int)" >;
650654}
651655
652656let Features = " avx2" , Attributes = [NoThrow, Const, Constexpr, RequiredVectorWidth<128 >] in {
@@ -1017,6 +1021,7 @@ let Features = "avx512f", Attributes = [NoThrow, Const, RequiredVectorWidth<512>
10171021let Features = " avx512f" , Attributes = [NoThrow, Const, Constexpr, RequiredVectorWidth<512 >] in {
10181022 def pmuldq512 : X86Builtin<" _Vector<8, long long int>(_Vector<16, int>, _Vector<16, int>)" >;
10191023 def pmuludq512 : X86Builtin<" _Vector<8, long long int>(_Vector<16, int>, _Vector<16, int>)" >;
1024+ def pshufd512 : X86Builtin<" _Vector<16, int>(_Vector<16, int>, _Constant int)" >;
10201025}
10211026
10221027let Features = " avx512f" , Attributes = [NoThrow, RequiredVectorWidth<512 >] in {
@@ -1990,13 +1995,13 @@ let Features = "avx512vl", Attributes = [NoThrow, Const, Constexpr, RequiredVect
19901995}
19911996
19921997let Features = " avx512bw" , Attributes = [NoThrow, Const, RequiredVectorWidth<512 >] in {
1993- def pshufhw512 : X86Builtin<" _Vector<32, short>(_Vector<32, short>, _Constant int)" >;
1994- def pshuflw512 : X86Builtin<" _Vector<32, short>(_Vector<32, short>, _Constant int)" >;
19951998 def psllw512 : X86Builtin<" _Vector<32, short>(_Vector<32, short>, _Vector<8, short>)" >;
19961999}
19972000
19982001let Features = " avx512bw" , Attributes = [NoThrow, Const, Constexpr, RequiredVectorWidth<512 >] in {
19992002 def psllv32hi : X86Builtin<" _Vector<32, short>(_Vector<32, short>, _Vector<32, short>)" >;
2003+ def pshufhw512 : X86Builtin<" _Vector<32, short>(_Vector<32, short>, _Constant int)" >;
2004+ def pshuflw512 : X86Builtin<" _Vector<32, short>(_Vector<32, short>, _Constant int)" >;
20002005}
20012006
20022007let Features = " avx512bw,avx512vl" , Attributes = [NoThrow, Const, Constexpr, RequiredVectorWidth<256 >] in {
@@ -2026,8 +2031,7 @@ let Features = "avx512bw,avx512vl", Attributes = [NoThrow, Const, Constexpr, Req
20262031 def psrlv8hi : X86Builtin<" _Vector<8, short>(_Vector<8, short>, _Vector<8, short>)" >;
20272032}
20282033
2029- let Features = " avx512f" ,
2030- Attributes = [NoThrow, Const, Constexpr, RequiredVectorWidth<512 >] in {
2034+ let Features = " avx512f" , Attributes = [NoThrow, Const, Constexpr, RequiredVectorWidth<512 >] in {
20312035 def psrlwi512 : X86Builtin<" _Vector<32, short>(_Vector<32, short>, int)" >;
20322036 def psrldi512 : X86Builtin<" _Vector<16, int>(_Vector<16, int>, int)" >;
20332037 def psrlqi512 : X86Builtin<" _Vector<8, long long int>(_Vector<8, long long int>, int)" >;
@@ -3266,7 +3270,6 @@ let Features = "avx512f", Attributes = [NoThrow, Const, RequiredVectorWidth<128>
32663270}
32673271
32683272let Features = " avx512f" , Attributes = [NoThrow, Const, RequiredVectorWidth<512 >] in {
3269- def pshufd512 : X86Builtin<" _Vector<16, int>(_Vector<16, int>, _Constant int)" >;
32703273 def expanddf512_mask : X86Builtin<" _Vector<8, double>(_Vector<8, double>, _Vector<8, double>, unsigned char)" >;
32713274 def expanddi512_mask : X86Builtin<" _Vector<8, long long int>(_Vector<8, long long int>, _Vector<8, long long int>, unsigned char)" >;
32723275}
0 commit comments