@@ -268,7 +268,6 @@ let Header = "emmintrin.h", Attributes = [NoThrow, RequireDeclaration] in {
268268}
269269
270270let Features = " sse2" , Attributes = [NoThrow, Const, RequiredVectorWidth<128 >] in {
271- def pmuludq128 : X86Builtin<" _Vector<2, long long int>(_Vector<4, int>, _Vector<4, int>)" >;
272271 def psraw128 : X86Builtin<" _Vector<8, short>(_Vector<8, short>, _Vector<8, short>)" >;
273272 def psrad128 : X86Builtin<" _Vector<4, int>(_Vector<4, int>, _Vector<4, int>)" >;
274273 def psrlw128 : X86Builtin<" _Vector<8, short>(_Vector<8, short>, _Vector<8, short>)" >;
@@ -290,6 +289,10 @@ let Features = "sse2", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] i
290289 def psrldqi128_byteshift : X86Builtin<" _Vector<2, long long int>(_Vector<2, long long int>, _Constant int)" >;
291290}
292291
292+ let Features = " sse2" , Attributes = [NoThrow, Const, Constexpr, RequiredVectorWidth<128 >] in {
293+ def pmuludq128 : X86Builtin<" _Vector<2, long long int>(_Vector<4, int>, _Vector<4, int>)" >;
294+ }
295+
293296let Features = " sse3" , Attributes = [NoThrow] in {
294297 def monitor : X86Builtin<" void(void const *, unsigned int, unsigned int)" >;
295298 def mwait : X86Builtin<" void(unsigned int, unsigned int)" >;
@@ -312,7 +315,6 @@ let Features = "sse4.1", Attributes = [NoThrow, Const, RequiredVectorWidth<128>]
312315 def blendvpd : X86Builtin<" _Vector<2, double>(_Vector<2, double>, _Vector<2, double>, _Vector<2, double>)" >;
313316 def blendvps : X86Builtin<" _Vector<4, float>(_Vector<4, float>, _Vector<4, float>, _Vector<4, float>)" >;
314317 def packusdw128 : X86Builtin<" _Vector<8, short>(_Vector<4, int>, _Vector<4, int>)" >;
315- def pmuldq128 : X86Builtin<" _Vector<2, long long int>(_Vector<4, int>, _Vector<4, int>)" >;
316318 def roundps : X86Builtin<" _Vector<4, float>(_Vector<4, float>, _Constant int)" >;
317319 def roundss : X86Builtin<" _Vector<4, float>(_Vector<4, float>, _Vector<4, float>, _Constant int)" >;
318320 def roundsd : X86Builtin<" _Vector<2, double>(_Vector<2, double>, _Vector<2, double>, _Constant int)" >;
@@ -329,6 +331,10 @@ let Features = "sse4.1", Attributes = [NoThrow, Const, RequiredVectorWidth<128>]
329331 def vec_set_v4si : X86Builtin<" _Vector<4, int>(_Vector<4, int>, int, _Constant int)" >;
330332}
331333
334+ let Features = " sse4.1" , Attributes = [NoThrow, Const, Constexpr, RequiredVectorWidth<128 >] in {
335+ def pmuldq128 : X86Builtin<" _Vector<2, long long int>(_Vector<4, int>, _Vector<4, int>)" >;
336+ }
337+
332338let Features = " sse4.2" , Attributes = [NoThrow, Const, RequiredVectorWidth<128 >] in {
333339 def pcmpistrm128 : X86Builtin<" _Vector<16, char>(_Vector<16, char>, _Vector<16, char>, _Constant char)" >;
334340 def pcmpistri128 : X86Builtin<" int(_Vector<16, char>, _Vector<16, char>, _Constant char)" >;
@@ -580,9 +586,7 @@ let Features = "avx2", Attributes = [NoThrow, Const, RequiredVectorWidth<256>] i
580586 def pmaddubsw256 : X86Builtin<" _Vector<16, short>(_Vector<32, char>, _Vector<32, char>)" >;
581587 def pmaddwd256 : X86Builtin<" _Vector<8, int>(_Vector<16, short>, _Vector<16, short>)" >;
582588 def pmovmskb256 : X86Builtin<" int(_Vector<32, char>)" >;
583- def pmuldq256 : X86Builtin<" _Vector<4, long long int>(_Vector<8, int>, _Vector<8, int>)" >;
584589 def pmulhrsw256 : X86Builtin<" _Vector<16, short>(_Vector<16, short>, _Vector<16, short>)" >;
585- def pmuludq256 : X86Builtin<" _Vector<4, long long int>(_Vector<8, int>, _Vector<8, int>)" >;
586590 def psadbw256 : X86Builtin<" _Vector<4, long long int>(_Vector<32, char>, _Vector<32, char>)" >;
587591 def pshufb256 : X86Builtin<" _Vector<32, char>(_Vector<32, char>, _Vector<32, char>)" >;
588592 def pshufd256 : X86Builtin<" _Vector<8, int>(_Vector<8, int>, _Constant int)" >;
@@ -620,6 +624,11 @@ let Features = "avx2", Attributes = [NoThrow, Const, RequiredVectorWidth<256>] i
620624 def insert128i256 : X86Builtin<" _Vector<4, long long int>(_Vector<4, long long int>, _Vector<2, long long int>, _Constant int)" >;
621625}
622626
627+ let Features = " avx2" , Attributes = [NoThrow, Const, Constexpr, RequiredVectorWidth<256 >] in {
628+ def pmuldq256 : X86Builtin<" _Vector<4, long long int>(_Vector<8, int>, _Vector<8, int>)" >;
629+ def pmuludq256 : X86Builtin<" _Vector<4, long long int>(_Vector<8, int>, _Vector<8, int>)" >;
630+ }
631+
623632let Features = " avx2" , Attributes = [NoThrow, Const, Constexpr, RequiredVectorWidth<256 >] in {
624633 def pmulhuw256 : X86Builtin<" _Vector<16, unsigned short>(_Vector<16, unsigned short>, _Vector<16, unsigned short>)" >;
625634 def pmulhw256 : X86Builtin<" _Vector<16, short>(_Vector<16, short>, _Vector<16, short>)" >;
@@ -1078,6 +1087,9 @@ let Features = "avx512f,evex512", Attributes = [NoThrow, Const, RequiredVectorWi
10781087 def cvtpd2ps512_mask : X86Builtin<" _Vector<8, float>(_Vector<8, double>, _Vector<8, float>, unsigned char, _Constant int)" >;
10791088 def vcvtps2ph512_mask : X86Builtin<" _Vector<16, short>(_Vector<16, float>, _Constant int, _Vector<16, short>, unsigned short)" >;
10801089 def vcvtph2ps512_mask : X86Builtin<" _Vector<16, float>(_Vector<16, short>, _Vector<16, float>, unsigned short, _Constant int)" >;
1090+ }
1091+
1092+ let Features = " avx512f,evex512" , Attributes = [NoThrow, Const, Constexpr, RequiredVectorWidth<512 >] in {
10811093 def pmuldq512 : X86Builtin<" _Vector<8, long long int>(_Vector<16, int>, _Vector<16, int>)" >;
10821094 def pmuludq512 : X86Builtin<" _Vector<8, long long int>(_Vector<16, int>, _Vector<16, int>)" >;
10831095}
0 commit comments