@@ -184,7 +184,8 @@ let Features = "sse", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in
184184  def cvttss2si : X86Builtin<" int(_Vector<4, float>)"  >;
185185}
186186
187- let Features = " sse"  , Attributes = [NoThrow, RequiredVectorWidth<128 >] in {
187+ let Features = " sse"  ,
188+     Attributes = [NoThrow, Const, Constexpr, RequiredVectorWidth<128 >] in {
188189  def movmskps : X86Builtin<" int(_Vector<4, float>)"  >;
189190}
190191
@@ -210,11 +211,6 @@ let Features = "sse2", Attributes = [NoThrow, RequiredVectorWidth<128>] in {
210211  def maskmovdqu : X86Builtin<" void(_Vector<16, char>, _Vector<16, char>, char *)"  >;
211212}
212213
213- let Features = " sse2"  , Attributes = [NoThrow, Const, RequiredVectorWidth<128 >] in {
214-   def movmskpd : X86Builtin<" int(_Vector<2, double>)"  >;
215-   def pmovmskb128 : X86Builtin<" int(_Vector<16, char>)"  >;
216- }
217- 
218214let Features = " sse2"  , Attributes = [NoThrow] in {
219215  def movnti : X86Builtin<" void(int *, int)"  >;
220216}
@@ -223,6 +219,8 @@ let Features = "sse2", Attributes = [NoThrow, Const, Constexpr, RequiredVectorWi
223219  def pshuflw : X86Builtin<" _Vector<8, short>(_Vector<8, short>, _Constant int)"  >;
224220  def pshufd : X86Builtin<" _Vector<4, int>(_Vector<4, int>, _Constant int)"  >;
225221  def pshufhw : X86Builtin<" _Vector<8, short>(_Vector<8, short>, _Constant int)"  >;
222+   def movmskpd : X86Builtin<" int(_Vector<2, double>)"  >;
223+   def pmovmskb128 : X86Builtin<" int(_Vector<16, char>)"  >;
226224}
227225
228226let Features = " sse2"  , Attributes = [NoThrow, Const, RequiredVectorWidth<128 >] in {
@@ -538,6 +536,18 @@ let Features = "avx",
538536  def vtestnzcps : X86Builtin<" int(_Vector<4, float>, _Vector<4, float>)"  >;
539537}
540538
539+ let Features = " avx"  ,
540+     Attributes = [NoThrow, Const, Constexpr, RequiredVectorWidth<256 >] in {
541+   def movmskpd256 : X86Builtin<" int(_Vector<4, double>)"  >;
542+   def movmskps256 : X86Builtin<" int(_Vector<8, float>)"  >;
543+ }
544+ 
545+ let Features = " avx"  ,
546+     Attributes = [NoThrow, Const, Constexpr, RequiredVectorWidth<256 >] in {
547+   def movmskpd256 : X86Builtin<" int(_Vector<4, double>)"  >;
548+   def movmskps256 : X86Builtin<" int(_Vector<8, float>)"  >;
549+ }
550+ 
541551let Features = " avx"  ,
542552    Attributes = [NoThrow, Const, Constexpr, RequiredVectorWidth<256 >] in {
543553  def vtestzpd256 : X86Builtin<" int(_Vector<4, double>, _Vector<4, double>)"  >;
@@ -548,13 +558,8 @@ let Features = "avx",
548558  def vtestnzcps256 : X86Builtin<" int(_Vector<8, float>, _Vector<8, float>)"  >;
549559  def ptestz256 : X86Builtin<" int(_Vector<4, long long int>, _Vector<4, long long int>)"  >;
550560  def ptestc256 : X86Builtin<" int(_Vector<4, long long int>, _Vector<4, long long int>)"  >;
551-   def ptestnzc256 : X86Builtin<" int(_Vector<4, long long int>, _Vector<4, long long int>)"  >;
552- }
553- 
554- let Features = " avx"  ,
555-     Attributes = [NoThrow, Const, RequiredVectorWidth<256 >] in {
556-   def movmskpd256 : X86Builtin<" int(_Vector<4, double>)"  >;
557-   def movmskps256 : X86Builtin<" int(_Vector<8, float>)"  >;
561+   def ptestnzc256
562+       : X86Builtin<" int(_Vector<4, long long int>, _Vector<4, long long int>)"  >;
558563}
559564
560565let Features = " avx"  , Attributes = [NoThrow] in {
@@ -589,6 +594,11 @@ let Features = "avx", Attributes = [NoThrow, Const, Constexpr, RequiredVectorWid
589594  def vec_set_v8si : X86Builtin<" _Vector<8, int>(_Vector<8, int>, int, _Constant int)"  >;
590595}
591596
597+ let Features = " avx2"  ,
598+     Attributes = [NoThrow, Const, Constexpr, RequiredVectorWidth<256 >] in {
599+   def pmovmskb256 : X86Builtin<" int(_Vector<32, char>)"  >;
600+ }
601+ 
592602let Features = " avx2"  , Attributes = [NoThrow, Const, RequiredVectorWidth<256 >] in {
593603  def mpsadbw256 : X86Builtin<" _Vector<32, char>(_Vector<32, char>, _Vector<32, char>, _Constant char)"  >;
594604  def palignr256 : X86Builtin<" _Vector<32, char>(_Vector<32, char>, _Vector<32, char>, _Constant int)"  >;
@@ -598,7 +608,9 @@ let Features = "avx2", Attributes = [NoThrow, Const, RequiredVectorWidth<256>] i
598608  def phsubw256 : X86Builtin<" _Vector<16, short>(_Vector<16, short>, _Vector<16, short>)"  >;
599609  def phsubd256 : X86Builtin<" _Vector<8, int>(_Vector<8, int>, _Vector<8, int>)"  >;
600610  def phsubsw256 : X86Builtin<" _Vector<16, short>(_Vector<16, short>, _Vector<16, short>)"  >;
601-   def pmovmskb256 : X86Builtin<" int(_Vector<32, char>)"  >;
611+   def pmaddubsw256 : X86Builtin<" _Vector<16, short>(_Vector<32, char>, _Vector<32, char>)"  >;
612+   def pmaddwd256
613+       : X86Builtin<" _Vector<8, int>(_Vector<16, short>, _Vector<16, short>)"  >;
602614  def pmulhrsw256 : X86Builtin<" _Vector<16, short>(_Vector<16, short>, _Vector<16, short>)"  >;
603615  def psadbw256 : X86Builtin<" _Vector<4, long long int>(_Vector<32, char>, _Vector<32, char>)"  >;
604616  def pshufb256 : X86Builtin<" _Vector<32, char>(_Vector<32, char>, _Vector<32, char>)"  >;
0 commit comments