1//===--- BuiltinsX86.td - X86 Builtin function database ---------*- C++ -*-===// 2// 3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4// See https://llvm.org/LICENSE.txt for license information. 5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6// 7//===----------------------------------------------------------------------===// 8// 9// This file defines the X86-specific builtin function database. 10// 11//===----------------------------------------------------------------------===// 12 13include "clang/Basic/BuiltinsX86Base.td" 14 15def rdpmc : X86Builtin<"unsigned long long int(int)">; 16def rdtsc : X86Builtin<"unsigned long long int()">; 17def __rdtsc : X86NoPrefixBuiltin<"unsigned long long int()"> { 18 let EnableOpenCLLong = 1; 19} 20def rdtscp : X86Builtin<"unsigned long long int(unsigned int*)">; 21 22// Undefined Values 23def undef128 : X86Builtin<"_Vector<2, double>()"> { 24 let Attributes = [Const, NoThrow, RequiredVectorWidth<128>]; 25} 26 27def undef256 : X86Builtin<"_Vector<4, double>()"> { 28 let Attributes = [Const, NoThrow, RequiredVectorWidth<256>]; 29} 30 31def undef512 : X86Builtin<"_Vector<8, double>()"> { 32 let Attributes = [Const, NoThrow, RequiredVectorWidth<512>]; 33} 34 35// FLAGS 36def readeflags_u32 : X86Builtin<"unsigned int()"> { 37 let Attributes = [NoThrow]; 38} 39 40def writeeflags_u32 : X86Builtin<"void(unsigned int)"> { 41 let Attributes = [NoThrow]; 42} 43 44// MMX 45// 46// All MMX instructions will be generated via builtins. Any MMX vector 47// types (<1 x i64>, <2 x i32>, etc.) that aren't used by these builtins will be 48// expanded by the back-end. 49 50def emms : X86Builtin<"void()"> { 51 let Attributes = [NoThrow]; 52 let Features = "mmx"; 53} 54 55let Attributes = [NoThrow, Const, RequiredVectorWidth<64>], Features = "sse" in { 56 def vec_ext_v4hi : X86Builtin<"short(_Vector<4, short>, _Constant int)">; 57 def vec_set_v4hi : X86Builtin<"_Vector<4, short>(_Vector<4, short>, short, _Constant int)">; 58} 59 60// SSE intrinsics 61let Attributes = [Const, NoThrow, RequiredVectorWidth<128>] in { 62 foreach Cmp = ["eq", "lt", "le", "gt", "ge", "neq"] in { 63 let Features = "sse" in { 64 def comi#Cmp : X86Builtin<"int(_Vector<4, float>, _Vector<4, float>)">; 65 def ucomi#Cmp : X86Builtin<"int(_Vector<4, float>, _Vector<4, float>)">; 66 } 67 let Features = "sse2" in { 68 def comisd#Cmp : X86Builtin<"int(_Vector<2, double>, _Vector<2, double>)">; 69 def ucomisd#Cmp : X86Builtin<"int(_Vector<2, double>, _Vector<2, double>)">; 70 } 71 } 72 73 foreach Cmp = ["cmpeq", "cmplt", "cmple", "cmpunord", "cmpneq", "cmpnlt", 74 "cmpnle", "cmpord", "min", "max"] in { 75 let Features = "sse" in { 76 def Cmp#ps : X86Builtin<"_Vector<4, float>(_Vector<4, float>, _Vector<4, float>)">; 77 def Cmp#ss : X86Builtin<"_Vector<4, float>(_Vector<4, float>, _Vector<4, float>)">; 78 } 79 let Features = "sse2" in { 80 def Cmp#pd : X86Builtin<"_Vector<2, double>(_Vector<2, double>, _Vector<2, double>)">; 81 def Cmp#sd : X86Builtin<"_Vector<2, double>(_Vector<2, double>, _Vector<2, double>)">; 82 } 83 } 84 85 let Features = "sse" in { 86 def cmpps : X86Builtin<"_Vector<4, float>(_Vector<4, float>, _Vector<4, float>, _Constant char)">; 87 def cmpss : X86Builtin<"_Vector<4, float>(_Vector<4, float>, _Vector<4, float>, _Constant char)">; 88 } 89 90 let Features = "sse2" in { 91 def cmppd : X86Builtin<"_Vector<2, double>(_Vector<2, double>, _Vector<2, double>, _Constant char)">; 92 def cmpsd : X86Builtin<"_Vector<2, double>(_Vector<2, double>, _Vector<2, double>, _Constant char)">; 93 } 94 95 let Features = "sse2" in { 96 def pmulhw128 : X86Builtin<"_Vector<8, short>(_Vector<8, short>, _Vector<8, short>)">; 97 def pavgb128 : X86Builtin<"_Vector<16, char>(_Vector<16, char>, _Vector<16, char>)">; 98 def pavgw128 : X86Builtin<"_Vector<8, short>(_Vector<8, short>, _Vector<8, short>)">; 99 def packsswb128 : X86Builtin<"_Vector<16, char>(_Vector<8, short>, _Vector<8, short>)">; 100 def packssdw128 : X86Builtin<"_Vector<8, short>(_Vector<4, int>, _Vector<4, int>)">; 101 def packuswb128 : X86Builtin<"_Vector<16, char>(_Vector<8, short>, _Vector<8, short>)">; 102 def pmulhuw128 : X86Builtin<"_Vector<8, short>(_Vector<8, short>, _Vector<8, short>)">; 103 def vec_ext_v2di : X86Builtin<"long long int(_Vector<2, long long int>, _Constant int)">; 104 def vec_ext_v4si : X86Builtin<"int(_Vector<4, int>, _Constant int)">; 105 def vec_ext_v4sf : X86Builtin<"float(_Vector<4, float>, _Constant int)">; 106 def vec_ext_v8hi : X86Builtin<"short(_Vector<8, short>, _Constant int)">; 107 def vec_set_v8hi : X86Builtin<"_Vector<8, short>(_Vector<8, short>, short, _Constant int)">; 108 } 109 110 let Features = "sse3" in { 111 foreach Op = ["addsub", "hadd", "hsub"] in { 112 def Op#ps : X86Builtin<"_Vector<4, float>(_Vector<4, float>, _Vector<4, float>)">; 113 def Op#pd : X86Builtin<"_Vector<2, double>(_Vector<2, double>, _Vector<2, double>)">; 114 } 115 } 116 117 let Features = "ssse3" in { 118 foreach Op = ["phadd", "phsub"] in { 119 def Op#w128 : X86Builtin<"_Vector<8, short>(_Vector<8, short>, _Vector<8, short>)">; 120 def Op#sw128 : X86Builtin<"_Vector<8, short>(_Vector<8, short>, _Vector<8, short>)">; 121 def Op#d128 : X86Builtin<"_Vector<4, int>(_Vector<4, int>, _Vector<4, int>)">; 122 } 123 124 def pmaddubsw128 : X86Builtin<"_Vector<8, short>(_Vector<16, char>, _Vector<16, char>)">; 125 def pmulhrsw128 : X86Builtin<"_Vector<8, short>(_Vector<8, short>, _Vector<8, short>)">; 126 def pshufb128 : X86Builtin<"_Vector<16, char>(_Vector<16, char>, _Vector<16, char>)">; 127 def psignb128 : X86Builtin<"_Vector<16, char>(_Vector<16, char>, _Vector<16, char>)">; 128 def psignw128 : X86Builtin<"_Vector<8, short>(_Vector<8, short>, _Vector<8, short>)">; 129 def psignd128 : X86Builtin<"_Vector<4, int>(_Vector<4, int>, _Vector<4, int>)">; 130 } 131} 132 133// AVX 134let Attributes = [Const, NoThrow, RequiredVectorWidth<256>], Features = "avx" in { 135 foreach Op = ["addsub", "hadd", "hsub", "max", "min"] in { 136 def Op#pd256 : X86Builtin<"_Vector<4, double>(_Vector<4, double>, _Vector<4, double>)">; 137 def Op#ps256 : X86Builtin<"_Vector<8, float>(_Vector<8, float>, _Vector<8, float>)">; 138 } 139} 140 141let Features = "mmx", Header = "mmintrin.h", Attributes = [NoThrow, Const] in { 142 def _m_prefetch : X86LibBuiltin<"void(void *)">; 143} 144 145// PRFCHW 146let Features = "prfchw", Header = "intrin.h", Attributes = [NoThrow, Const] in { 147 def _m_prefetchw : X86LibBuiltin<"void(void volatile const *)">; 148} 149 150// Mechanically ported builtins from the original `.def` file. 151// 152// TODO: Build structured ways of synthesizing relevant groups and improve the 153// organization of the builtins below this point (and move them above it). The 154// current formulation is based on what was easiest to recognize from the 155// pre-TableGen version. 156 157let Features = "sse", Header = "xmmintrin.h", Attributes = [NoThrow, Const] in { 158 def _mm_prefetch : X86LibBuiltin<"void(char const *, int)">; 159} 160 161let Features = "sse", Attributes = [NoThrow] in { 162 def ldmxcsr : X86Builtin<"void(unsigned int)">; 163} 164 165let Features = "sse", Header = "xmmintrin.h", Attributes = [NoThrow, RequireDeclaration] in { 166 def _mm_setcsr : X86LibBuiltin<"void(unsigned int)">; 167} 168 169let Features = "sse", Attributes = [NoThrow] in { 170 def stmxcsr : X86Builtin<"unsigned int()">; 171} 172 173let Features = "sse", Header = "xmmintrin.h", Attributes = [NoThrow, RequireDeclaration] in { 174 def _mm_getcsr : X86LibBuiltin<"unsigned int()">; 175} 176 177let Features = "sse", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 178 def cvtss2si : X86Builtin<"int(_Vector<4, float>)">; 179 def cvttss2si : X86Builtin<"int(_Vector<4, float>)">; 180} 181 182let Features = "sse", Attributes = [NoThrow, RequiredVectorWidth<128>] in { 183 def movmskps : X86Builtin<"int(_Vector<4, float>)">; 184} 185 186let Features = "sse", Attributes = [NoThrow] in { 187 def sfence : X86Builtin<"void()">; 188} 189 190let Features = "sse", Header = "xmmintrin.h", Attributes = [NoThrow, RequireDeclaration] in { 191 def _mm_sfence : X86LibBuiltin<"void()">; 192} 193 194let Features = "sse", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 195 def rcpps : X86Builtin<"_Vector<4, float>(_Vector<4, float>)">; 196 def rcpss : X86Builtin<"_Vector<4, float>(_Vector<4, float>)">; 197 def rsqrtps : X86Builtin<"_Vector<4, float>(_Vector<4, float>)">; 198 def rsqrtss : X86Builtin<"_Vector<4, float>(_Vector<4, float>)">; 199 def sqrtps : X86Builtin<"_Vector<4, float>(_Vector<4, float>)">; 200 def sqrtss : X86Builtin<"_Vector<4, float>(_Vector<4, float>)">; 201 def shufps : X86Builtin<"_Vector<4, float>(_Vector<4, float>, _Vector<4, float>, _Constant int)">; 202} 203 204let Features = "sse2", Attributes = [NoThrow, RequiredVectorWidth<128>] in { 205 def maskmovdqu : X86Builtin<"void(_Vector<16, char>, _Vector<16, char>, char *)">; 206} 207 208let Features = "sse2", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 209 def movmskpd : X86Builtin<"int(_Vector<2, double>)">; 210 def pmovmskb128 : X86Builtin<"int(_Vector<16, char>)">; 211} 212 213let Features = "sse2", Attributes = [NoThrow] in { 214 def movnti : X86Builtin<"void(int *, int)">; 215} 216 217let Features = "sse2", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 218 def pshufd : X86Builtin<"_Vector<4, int>(_Vector<4, int>, _Constant int)">; 219 def pshuflw : X86Builtin<"_Vector<8, short>(_Vector<8, short>, _Constant int)">; 220 def pshufhw : X86Builtin<"_Vector<8, short>(_Vector<8, short>, _Constant int)">; 221 def psadbw128 : X86Builtin<"_Vector<2, long long int>(_Vector<16, char>, _Vector<16, char>)">; 222 def sqrtpd : X86Builtin<"_Vector<2, double>(_Vector<2, double>)">; 223 def sqrtsd : X86Builtin<"_Vector<2, double>(_Vector<2, double>)">; 224 def shufpd : X86Builtin<"_Vector<2, double>(_Vector<2, double>, _Vector<2, double>, _Constant int)">; 225 def cvtpd2dq : X86Builtin<"_Vector<2, long long int>(_Vector<2, double>)">; 226 def cvtpd2ps : X86Builtin<"_Vector<4, float>(_Vector<2, double>)">; 227 def cvttpd2dq : X86Builtin<"_Vector<4, int>(_Vector<2, double>)">; 228 def cvtsd2si : X86Builtin<"int(_Vector<2, double>)">; 229 def cvttsd2si : X86Builtin<"int(_Vector<2, double>)">; 230 def cvtsd2ss : X86Builtin<"_Vector<4, float>(_Vector<4, float>, _Vector<2, double>)">; 231 def cvtps2dq : X86Builtin<"_Vector<4, int>(_Vector<4, float>)">; 232 def cvttps2dq : X86Builtin<"_Vector<4, int>(_Vector<4, float>)">; 233} 234 235let Features = "sse2", Attributes = [NoThrow] in { 236 def clflush : X86Builtin<"void(void const *)">; 237} 238 239let Features = "sse2", Header = "emmintrin.h", Attributes = [NoThrow, RequireDeclaration] in { 240 def _mm_clflush : X86LibBuiltin<"void(void const *)">; 241} 242 243let Features = "sse2", Attributes = [NoThrow] in { 244 def lfence : X86Builtin<"void()">; 245} 246 247let Features = "sse2", Header = "emmintrin.h", Attributes = [NoThrow, RequireDeclaration] in { 248 def _mm_lfence : X86LibBuiltin<"void()">; 249} 250 251let Features = "sse2", Attributes = [NoThrow] in { 252 def mfence : X86Builtin<"void()">; 253} 254 255let Features = "sse2", Header = "emmintrin.h", Attributes = [NoThrow, RequireDeclaration] in { 256 def _mm_mfence : X86LibBuiltin<"void()">; 257} 258 259let Attributes = [NoThrow] in { 260 def pause : X86Builtin<"void()">; 261} 262 263let Header = "emmintrin.h", Attributes = [NoThrow, RequireDeclaration] in { 264 def _mm_pause : X86LibBuiltin<"void()">; 265} 266 267let Features = "sse2", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 268 def pmuludq128 : X86Builtin<"_Vector<2, long long int>(_Vector<4, int>, _Vector<4, int>)">; 269 def psraw128 : X86Builtin<"_Vector<8, short>(_Vector<8, short>, _Vector<8, short>)">; 270 def psrad128 : X86Builtin<"_Vector<4, int>(_Vector<4, int>, _Vector<4, int>)">; 271 def psrlw128 : X86Builtin<"_Vector<8, short>(_Vector<8, short>, _Vector<8, short>)">; 272 def psrld128 : X86Builtin<"_Vector<4, int>(_Vector<4, int>, _Vector<4, int>)">; 273 def psrlq128 : X86Builtin<"_Vector<2, long long int>(_Vector<2, long long int>, _Vector<2, long long int>)">; 274 def psllw128 : X86Builtin<"_Vector<8, short>(_Vector<8, short>, _Vector<8, short>)">; 275 def pslld128 : X86Builtin<"_Vector<4, int>(_Vector<4, int>, _Vector<4, int>)">; 276 def psllq128 : X86Builtin<"_Vector<2, long long int>(_Vector<2, long long int>, _Vector<2, long long int>)">; 277 def psllwi128 : X86Builtin<"_Vector<8, short>(_Vector<8, short>, int)">; 278 def pslldi128 : X86Builtin<"_Vector<4, int>(_Vector<4, int>, int)">; 279 def psllqi128 : X86Builtin<"_Vector<2, long long int>(_Vector<2, long long int>, int)">; 280 def psrlwi128 : X86Builtin<"_Vector<8, short>(_Vector<8, short>, int)">; 281 def psrldi128 : X86Builtin<"_Vector<4, int>(_Vector<4, int>, int)">; 282 def psrlqi128 : X86Builtin<"_Vector<2, long long int>(_Vector<2, long long int>, int)">; 283 def psrawi128 : X86Builtin<"_Vector<8, short>(_Vector<8, short>, int)">; 284 def psradi128 : X86Builtin<"_Vector<4, int>(_Vector<4, int>, int)">; 285 def pmaddwd128 : X86Builtin<"_Vector<4, int>(_Vector<8, short>, _Vector<8, short>)">; 286 def pslldqi128_byteshift : X86Builtin<"_Vector<2, long long int>(_Vector<2, long long int>, _Constant int)">; 287 def psrldqi128_byteshift : X86Builtin<"_Vector<2, long long int>(_Vector<2, long long int>, _Constant int)">; 288} 289 290let Features = "sse3", Attributes = [NoThrow] in { 291 def monitor : X86Builtin<"void(void const *, unsigned int, unsigned int)">; 292 def mwait : X86Builtin<"void(unsigned int, unsigned int)">; 293} 294 295let Features = "sse3", Attributes = [NoThrow, RequiredVectorWidth<128>] in { 296 def lddqu : X86Builtin<"_Vector<16, char>(char const *)">; 297} 298 299let Features = "ssse3", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 300 def palignr128 : X86Builtin<"_Vector<16, char>(_Vector<16, char>, _Vector<16, char>, _Constant int)">; 301} 302 303let Features = "sse4.1", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 304 def insertps128 : X86Builtin<"_Vector<4, float>(_Vector<4, float>, _Vector<4, float>, _Constant char)">; 305 def pblendvb128 : X86Builtin<"_Vector<16, char>(_Vector<16, char>, _Vector<16, char>, _Vector<16, char>)">; 306 def pblendw128 : X86Builtin<"_Vector<8, short>(_Vector<8, short>, _Vector<8, short>, _Constant int)">; 307 def blendpd : X86Builtin<"_Vector<2, double>(_Vector<2, double>, _Vector<2, double>, _Constant int)">; 308 def blendps : X86Builtin<"_Vector<4, float>(_Vector<4, float>, _Vector<4, float>, _Constant int)">; 309 def blendvpd : X86Builtin<"_Vector<2, double>(_Vector<2, double>, _Vector<2, double>, _Vector<2, double>)">; 310 def blendvps : X86Builtin<"_Vector<4, float>(_Vector<4, float>, _Vector<4, float>, _Vector<4, float>)">; 311 def packusdw128 : X86Builtin<"_Vector<8, short>(_Vector<4, int>, _Vector<4, int>)">; 312 def pmuldq128 : X86Builtin<"_Vector<2, long long int>(_Vector<4, int>, _Vector<4, int>)">; 313 def roundps : X86Builtin<"_Vector<4, float>(_Vector<4, float>, _Constant int)">; 314 def roundss : X86Builtin<"_Vector<4, float>(_Vector<4, float>, _Vector<4, float>, _Constant int)">; 315 def roundsd : X86Builtin<"_Vector<2, double>(_Vector<2, double>, _Vector<2, double>, _Constant int)">; 316 def roundpd : X86Builtin<"_Vector<2, double>(_Vector<2, double>, _Constant int)">; 317 def dpps : X86Builtin<"_Vector<4, float>(_Vector<4, float>, _Vector<4, float>, _Constant char)">; 318 def dppd : X86Builtin<"_Vector<2, double>(_Vector<2, double>, _Vector<2, double>, _Constant char)">; 319 def ptestz128 : X86Builtin<"int(_Vector<2, long long int>, _Vector<2, long long int>)">; 320 def ptestc128 : X86Builtin<"int(_Vector<2, long long int>, _Vector<2, long long int>)">; 321 def ptestnzc128 : X86Builtin<"int(_Vector<2, long long int>, _Vector<2, long long int>)">; 322 def mpsadbw128 : X86Builtin<"_Vector<16, char>(_Vector<16, char>, _Vector<16, char>, _Constant char)">; 323 def phminposuw128 : X86Builtin<"_Vector<8, short>(_Vector<8, short>)">; 324 def vec_ext_v16qi : X86Builtin<"char(_Vector<16, char>, _Constant int)">; 325 def vec_set_v16qi : X86Builtin<"_Vector<16, char>(_Vector<16, char>, char, _Constant int)">; 326 def vec_set_v4si : X86Builtin<"_Vector<4, int>(_Vector<4, int>, int, _Constant int)">; 327} 328 329let Features = "sse4.2", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 330 def pcmpistrm128 : X86Builtin<"_Vector<16, char>(_Vector<16, char>, _Vector<16, char>, _Constant char)">; 331 def pcmpistri128 : X86Builtin<"int(_Vector<16, char>, _Vector<16, char>, _Constant char)">; 332 def pcmpestrm128 : X86Builtin<"_Vector<16, char>(_Vector<16, char>, int, _Vector<16, char>, int, _Constant char)">; 333 def pcmpestri128 : X86Builtin<"int(_Vector<16, char>, int, _Vector<16, char>, int, _Constant char)">; 334 def pcmpistria128 : X86Builtin<"int(_Vector<16, char>, _Vector<16, char>, _Constant char)">; 335 def pcmpistric128 : X86Builtin<"int(_Vector<16, char>, _Vector<16, char>, _Constant char)">; 336 def pcmpistrio128 : X86Builtin<"int(_Vector<16, char>, _Vector<16, char>, _Constant char)">; 337 def pcmpistris128 : X86Builtin<"int(_Vector<16, char>, _Vector<16, char>, _Constant char)">; 338 def pcmpistriz128 : X86Builtin<"int(_Vector<16, char>, _Vector<16, char>, _Constant char)">; 339 def pcmpestria128 : X86Builtin<"int(_Vector<16, char>, int, _Vector<16, char>, int, _Constant char)">; 340 def pcmpestric128 : X86Builtin<"int(_Vector<16, char>, int, _Vector<16, char>, int, _Constant char)">; 341 def pcmpestrio128 : X86Builtin<"int(_Vector<16, char>, int, _Vector<16, char>, int, _Constant char)">; 342 def pcmpestris128 : X86Builtin<"int(_Vector<16, char>, int, _Vector<16, char>, int, _Constant char)">; 343 def pcmpestriz128 : X86Builtin<"int(_Vector<16, char>, int, _Vector<16, char>, int, _Constant char)">; 344} 345 346let Features = "crc32", Attributes = [NoThrow, Const] in { 347 def crc32qi : X86Builtin<"unsigned int(unsigned int, unsigned char)">; 348 def crc32hi : X86Builtin<"unsigned int(unsigned int, unsigned short)">; 349 def crc32si : X86Builtin<"unsigned int(unsigned int, unsigned int)">; 350} 351 352let Features = "sse4a", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 353 def extrqi : X86Builtin<"_Vector<2, long long int>(_Vector<2, long long int>, _Constant char, _Constant char)">; 354 def extrq : X86Builtin<"_Vector<2, long long int>(_Vector<2, long long int>, _Vector<16, char>)">; 355 def insertqi : X86Builtin<"_Vector<2, long long int>(_Vector<2, long long int>, _Vector<2, long long int>, _Constant char, _Constant char)">; 356 def insertq : X86Builtin<"_Vector<2, long long int>(_Vector<2, long long int>, _Vector<2, long long int>)">; 357} 358 359let Features = "sse4a", Attributes = [NoThrow, RequiredVectorWidth<128>] in { 360 def movntsd : X86Builtin<"void(double *, _Vector<2, double>)">; 361 def movntss : X86Builtin<"void(float *, _Vector<4, float>)">; 362} 363 364let Features = "aes", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 365 def aesenc128 : X86Builtin<"_Vector<2, long long int>(_Vector<2, long long int>, _Vector<2, long long int>)">; 366 def aesenclast128 : X86Builtin<"_Vector<2, long long int>(_Vector<2, long long int>, _Vector<2, long long int>)">; 367 def aesdec128 : X86Builtin<"_Vector<2, long long int>(_Vector<2, long long int>, _Vector<2, long long int>)">; 368 def aesdeclast128 : X86Builtin<"_Vector<2, long long int>(_Vector<2, long long int>, _Vector<2, long long int>)">; 369 def aesimc128 : X86Builtin<"_Vector<2, long long int>(_Vector<2, long long int>)">; 370 def aeskeygenassist128 : X86Builtin<"_Vector<2, long long int>(_Vector<2, long long int>, _Constant char)">; 371} 372 373let Features = "vaes", Attributes = [NoThrow, Const, RequiredVectorWidth<256>] in { 374 def aesenc256 : X86Builtin<"_Vector<4, long long int>(_Vector<4, long long int>, _Vector<4, long long int>)">; 375} 376 377let Features = "avx512f,evex512,vaes", Attributes = [NoThrow, Const, RequiredVectorWidth<512>] in { 378 def aesenc512 : X86Builtin<"_Vector<8, long long int>(_Vector<8, long long int>, _Vector<8, long long int>)">; 379} 380 381let Features = "vaes", Attributes = [NoThrow, Const, RequiredVectorWidth<256>] in { 382 def aesenclast256 : X86Builtin<"_Vector<4, long long int>(_Vector<4, long long int>, _Vector<4, long long int>)">; 383} 384 385let Features = "avx512f,evex512,vaes", Attributes = [NoThrow, Const, RequiredVectorWidth<512>] in { 386 def aesenclast512 : X86Builtin<"_Vector<8, long long int>(_Vector<8, long long int>, _Vector<8, long long int>)">; 387} 388 389let Features = "vaes", Attributes = [NoThrow, Const, RequiredVectorWidth<256>] in { 390 def aesdec256 : X86Builtin<"_Vector<4, long long int>(_Vector<4, long long int>, _Vector<4, long long int>)">; 391} 392 393let Features = "avx512f,evex512,vaes", Attributes = [NoThrow, Const, RequiredVectorWidth<512>] in { 394 def aesdec512 : X86Builtin<"_Vector<8, long long int>(_Vector<8, long long int>, _Vector<8, long long int>)">; 395} 396 397let Features = "vaes", Attributes = [NoThrow, Const, RequiredVectorWidth<256>] in { 398 def aesdeclast256 : X86Builtin<"_Vector<4, long long int>(_Vector<4, long long int>, _Vector<4, long long int>)">; 399} 400 401let Features = "avx512f,evex512,vaes", Attributes = [NoThrow, Const, RequiredVectorWidth<512>] in { 402 def aesdeclast512 : X86Builtin<"_Vector<8, long long int>(_Vector<8, long long int>, _Vector<8, long long int>)">; 403} 404 405let Features = "gfni", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 406 def vgf2p8affineinvqb_v16qi : X86Builtin<"_Vector<16, char>(_Vector<16, char>, _Vector<16, char>, _Constant char)">; 407} 408 409let Features = "avx,gfni", Attributes = [NoThrow, Const, RequiredVectorWidth<256>] in { 410 def vgf2p8affineinvqb_v32qi : X86Builtin<"_Vector<32, char>(_Vector<32, char>, _Vector<32, char>, _Constant char)">; 411} 412 413let Features = "avx512f,evex512,gfni", Attributes = [NoThrow, Const, RequiredVectorWidth<512>] in { 414 def vgf2p8affineinvqb_v64qi : X86Builtin<"_Vector<64, char>(_Vector<64, char>, _Vector<64, char>, _Constant char)">; 415} 416 417let Features = "gfni", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 418 def vgf2p8affineqb_v16qi : X86Builtin<"_Vector<16, char>(_Vector<16, char>, _Vector<16, char>, _Constant char)">; 419} 420 421let Features = "avx,gfni", Attributes = [NoThrow, Const, RequiredVectorWidth<256>] in { 422 def vgf2p8affineqb_v32qi : X86Builtin<"_Vector<32, char>(_Vector<32, char>, _Vector<32, char>, _Constant char)">; 423} 424 425let Features = "avx512f,evex512,gfni", Attributes = [NoThrow, Const, RequiredVectorWidth<512>] in { 426 def vgf2p8affineqb_v64qi : X86Builtin<"_Vector<64, char>(_Vector<64, char>, _Vector<64, char>, _Constant char)">; 427} 428 429let Features = "gfni", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 430 def vgf2p8mulb_v16qi : X86Builtin<"_Vector<16, char>(_Vector<16, char>, _Vector<16, char>)">; 431} 432 433let Features = "avx,gfni", Attributes = [NoThrow, Const, RequiredVectorWidth<256>] in { 434 def vgf2p8mulb_v32qi : X86Builtin<"_Vector<32, char>(_Vector<32, char>, _Vector<32, char>)">; 435} 436 437let Features = "avx512f,evex512,gfni", Attributes = [NoThrow, Const, RequiredVectorWidth<512>] in { 438 def vgf2p8mulb_v64qi : X86Builtin<"_Vector<64, char>(_Vector<64, char>, _Vector<64, char>)">; 439} 440 441let Features = "pclmul", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 442 def pclmulqdq128 : X86Builtin<"_Vector<2, long long int>(_Vector<2, long long int>, _Vector<2, long long int>, _Constant char)">; 443} 444 445let Features = "vpclmulqdq", Attributes = [NoThrow, Const, RequiredVectorWidth<256>] in { 446 def pclmulqdq256 : X86Builtin<"_Vector<4, long long int>(_Vector<4, long long int>, _Vector<4, long long int>, _Constant char)">; 447} 448 449let Features = "avx512f,evex512,vpclmulqdq", Attributes = [NoThrow, Const, RequiredVectorWidth<512>] in { 450 def pclmulqdq512 : X86Builtin<"_Vector<8, long long int>(_Vector<8, long long int>, _Vector<8, long long int>, _Constant char)">; 451} 452 453let Features = "avx", Attributes = [NoThrow, Const, RequiredVectorWidth<256>] in { 454 def vpermilvarpd : X86Builtin<"_Vector<2, double>(_Vector<2, double>, _Vector<2, long long int>)">; 455 def vpermilvarps : X86Builtin<"_Vector<4, float>(_Vector<4, float>, _Vector<4, int>)">; 456 def vpermilvarpd256 : X86Builtin<"_Vector<4, double>(_Vector<4, double>, _Vector<4, long long int>)">; 457 def vpermilvarps256 : X86Builtin<"_Vector<8, float>(_Vector<8, float>, _Vector<8, int>)">; 458 def blendpd256 : X86Builtin<"_Vector<4, double>(_Vector<4, double>, _Vector<4, double>, _Constant int)">; 459 def blendps256 : X86Builtin<"_Vector<8, float>(_Vector<8, float>, _Vector<8, float>, _Constant int)">; 460 def blendvpd256 : X86Builtin<"_Vector<4, double>(_Vector<4, double>, _Vector<4, double>, _Vector<4, double>)">; 461 def blendvps256 : X86Builtin<"_Vector<8, float>(_Vector<8, float>, _Vector<8, float>, _Vector<8, float>)">; 462 def shufpd256 : X86Builtin<"_Vector<4, double>(_Vector<4, double>, _Vector<4, double>, _Constant int)">; 463 def shufps256 : X86Builtin<"_Vector<8, float>(_Vector<8, float>, _Vector<8, float>, _Constant int)">; 464 def dpps256 : X86Builtin<"_Vector<8, float>(_Vector<8, float>, _Vector<8, float>, _Constant char)">; 465 def cmppd256 : X86Builtin<"_Vector<4, double>(_Vector<4, double>, _Vector<4, double>, _Constant char)">; 466 def cmpps256 : X86Builtin<"_Vector<8, float>(_Vector<8, float>, _Vector<8, float>, _Constant char)">; 467 def vextractf128_pd256 : X86Builtin<"_Vector<2, double>(_Vector<4, double>, _Constant int)">; 468 def vextractf128_ps256 : X86Builtin<"_Vector<4, float>(_Vector<8, float>, _Constant int)">; 469 def vextractf128_si256 : X86Builtin<"_Vector<4, int>(_Vector<8, int>, _Constant int)">; 470 def cvtpd2ps256 : X86Builtin<"_Vector<4, float>(_Vector<4, double>)">; 471 def cvtps2dq256 : X86Builtin<"_Vector<8, int>(_Vector<8, float>)">; 472 def cvttpd2dq256 : X86Builtin<"_Vector<4, int>(_Vector<4, double>)">; 473 def cvtpd2dq256 : X86Builtin<"_Vector<4, int>(_Vector<4, double>)">; 474 def cvttps2dq256 : X86Builtin<"_Vector<8, int>(_Vector<8, float>)">; 475 def vperm2f128_pd256 : X86Builtin<"_Vector<4, double>(_Vector<4, double>, _Vector<4, double>, _Constant int)">; 476 def vperm2f128_ps256 : X86Builtin<"_Vector<8, float>(_Vector<8, float>, _Vector<8, float>, _Constant int)">; 477 def vperm2f128_si256 : X86Builtin<"_Vector<8, int>(_Vector<8, int>, _Vector<8, int>, _Constant int)">; 478} 479 480let Features = "avx", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 481 def vpermilpd : X86Builtin<"_Vector<2, double>(_Vector<2, double>, _Constant int)">; 482 def vpermilps : X86Builtin<"_Vector<4, float>(_Vector<4, float>, _Constant int)">; 483} 484 485let Features = "avx", Attributes = [NoThrow, Const, RequiredVectorWidth<256>] in { 486 def vpermilpd256 : X86Builtin<"_Vector<4, double>(_Vector<4, double>, _Constant int)">; 487 def vpermilps256 : X86Builtin<"_Vector<8, float>(_Vector<8, float>, _Constant int)">; 488 def vinsertf128_pd256 : X86Builtin<"_Vector<4, double>(_Vector<4, double>, _Vector<2, double>, _Constant int)">; 489 def vinsertf128_ps256 : X86Builtin<"_Vector<8, float>(_Vector<8, float>, _Vector<4, float>, _Constant int)">; 490 def vinsertf128_si256 : X86Builtin<"_Vector<8, int>(_Vector<8, int>, _Vector<4, int>, _Constant int)">; 491 def sqrtpd256 : X86Builtin<"_Vector<4, double>(_Vector<4, double>)">; 492 def sqrtps256 : X86Builtin<"_Vector<8, float>(_Vector<8, float>)">; 493 def rsqrtps256 : X86Builtin<"_Vector<8, float>(_Vector<8, float>)">; 494 def rcpps256 : X86Builtin<"_Vector<8, float>(_Vector<8, float>)">; 495 def roundpd256 : X86Builtin<"_Vector<4, double>(_Vector<4, double>, _Constant int)">; 496 def roundps256 : X86Builtin<"_Vector<8, float>(_Vector<8, float>, _Constant int)">; 497} 498 499let Features = "avx", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 500 def vtestzpd : X86Builtin<"int(_Vector<2, double>, _Vector<2, double>)">; 501 def vtestcpd : X86Builtin<"int(_Vector<2, double>, _Vector<2, double>)">; 502 def vtestnzcpd : X86Builtin<"int(_Vector<2, double>, _Vector<2, double>)">; 503 def vtestzps : X86Builtin<"int(_Vector<4, float>, _Vector<4, float>)">; 504 def vtestcps : X86Builtin<"int(_Vector<4, float>, _Vector<4, float>)">; 505 def vtestnzcps : X86Builtin<"int(_Vector<4, float>, _Vector<4, float>)">; 506} 507 508let Features = "avx", Attributes = [NoThrow, Const, RequiredVectorWidth<256>] in { 509 def vtestzpd256 : X86Builtin<"int(_Vector<4, double>, _Vector<4, double>)">; 510 def vtestcpd256 : X86Builtin<"int(_Vector<4, double>, _Vector<4, double>)">; 511 def vtestnzcpd256 : X86Builtin<"int(_Vector<4, double>, _Vector<4, double>)">; 512 def vtestzps256 : X86Builtin<"int(_Vector<8, float>, _Vector<8, float>)">; 513 def vtestcps256 : X86Builtin<"int(_Vector<8, float>, _Vector<8, float>)">; 514 def vtestnzcps256 : X86Builtin<"int(_Vector<8, float>, _Vector<8, float>)">; 515 def ptestz256 : X86Builtin<"int(_Vector<4, long long int>, _Vector<4, long long int>)">; 516 def ptestc256 : X86Builtin<"int(_Vector<4, long long int>, _Vector<4, long long int>)">; 517 def ptestnzc256 : X86Builtin<"int(_Vector<4, long long int>, _Vector<4, long long int>)">; 518 def movmskpd256 : X86Builtin<"int(_Vector<4, double>)">; 519 def movmskps256 : X86Builtin<"int(_Vector<8, float>)">; 520} 521 522let Features = "avx", Attributes = [NoThrow] in { 523 def vzeroall : X86Builtin<"void()">; 524 def vzeroupper : X86Builtin<"void()">; 525} 526 527let Features = "avx", Attributes = [NoThrow, RequiredVectorWidth<256>] in { 528 def lddqu256 : X86Builtin<"_Vector<32, char>(char const *)">; 529} 530 531let Features = "avx", Attributes = [NoThrow, RequiredVectorWidth<128>] in { 532 def maskloadpd : X86Builtin<"_Vector<2, double>(_Vector<2, double const *>, _Vector<2, long long int>)">; 533 def maskloadps : X86Builtin<"_Vector<4, float>(_Vector<4, float const *>, _Vector<4, int>)">; 534} 535 536let Features = "avx", Attributes = [NoThrow, RequiredVectorWidth<256>] in { 537 def maskloadpd256 : X86Builtin<"_Vector<4, double>(_Vector<4, double const *>, _Vector<4, long long int>)">; 538 def maskloadps256 : X86Builtin<"_Vector<8, float>(_Vector<8, float const *>, _Vector<8, int>)">; 539} 540 541let Features = "avx", Attributes = [NoThrow, RequiredVectorWidth<128>] in { 542 def maskstorepd : X86Builtin<"void(_Vector<2, double *>, _Vector<2, long long int>, _Vector<2, double>)">; 543 def maskstoreps : X86Builtin<"void(_Vector<4, float *>, _Vector<4, int>, _Vector<4, float>)">; 544} 545 546let Features = "avx", Attributes = [NoThrow, RequiredVectorWidth<256>] in { 547 def maskstorepd256 : X86Builtin<"void(_Vector<4, double *>, _Vector<4, long long int>, _Vector<4, double>)">; 548 def maskstoreps256 : X86Builtin<"void(_Vector<8, float *>, _Vector<8, int>, _Vector<8, float>)">; 549} 550 551let Features = "avx", Attributes = [NoThrow, Const, RequiredVectorWidth<256>] in { 552 def vec_ext_v32qi : X86Builtin<"char(_Vector<32, char>, _Constant int)">; 553 def vec_ext_v16hi : X86Builtin<"short(_Vector<16, short>, _Constant int)">; 554 def vec_ext_v8si : X86Builtin<"int(_Vector<8, int>, _Constant int)">; 555 def vec_set_v32qi : X86Builtin<"_Vector<32, char>(_Vector<32, char>, char, _Constant int)">; 556 def vec_set_v16hi : X86Builtin<"_Vector<16, short>(_Vector<16, short>, short, _Constant int)">; 557 def vec_set_v8si : X86Builtin<"_Vector<8, int>(_Vector<8, int>, int, _Constant int)">; 558} 559 560let Features = "avx2", Attributes = [NoThrow, Const, RequiredVectorWidth<256>] in { 561 def mpsadbw256 : X86Builtin<"_Vector<32, char>(_Vector<32, char>, _Vector<32, char>, _Constant char)">; 562 def packsswb256 : X86Builtin<"_Vector<32, char>(_Vector<16, short>, _Vector<16, short>)">; 563 def packssdw256 : X86Builtin<"_Vector<16, short>(_Vector<8, int>, _Vector<8, int>)">; 564 def packuswb256 : X86Builtin<"_Vector<32, char>(_Vector<16, short>, _Vector<16, short>)">; 565 def packusdw256 : X86Builtin<"_Vector<16, short>(_Vector<8, int>, _Vector<8, int>)">; 566 def palignr256 : X86Builtin<"_Vector<32, char>(_Vector<32, char>, _Vector<32, char>, _Constant int)">; 567 def pavgb256 : X86Builtin<"_Vector<32, char>(_Vector<32, char>, _Vector<32, char>)">; 568 def pavgw256 : X86Builtin<"_Vector<16, short>(_Vector<16, short>, _Vector<16, short>)">; 569 def pblendvb256 : X86Builtin<"_Vector<32, char>(_Vector<32, char>, _Vector<32, char>, _Vector<32, char>)">; 570 def pblendw256 : X86Builtin<"_Vector<16, short>(_Vector<16, short>, _Vector<16, short>, _Constant int)">; 571 def phaddw256 : X86Builtin<"_Vector<16, short>(_Vector<16, short>, _Vector<16, short>)">; 572 def phaddd256 : X86Builtin<"_Vector<8, int>(_Vector<8, int>, _Vector<8, int>)">; 573 def phaddsw256 : X86Builtin<"_Vector<16, short>(_Vector<16, short>, _Vector<16, short>)">; 574 def phsubw256 : X86Builtin<"_Vector<16, short>(_Vector<16, short>, _Vector<16, short>)">; 575 def phsubd256 : X86Builtin<"_Vector<8, int>(_Vector<8, int>, _Vector<8, int>)">; 576 def phsubsw256 : X86Builtin<"_Vector<16, short>(_Vector<16, short>, _Vector<16, short>)">; 577 def pmaddubsw256 : X86Builtin<"_Vector<16, short>(_Vector<32, char>, _Vector<32, char>)">; 578 def pmaddwd256 : X86Builtin<"_Vector<8, int>(_Vector<16, short>, _Vector<16, short>)">; 579 def pmovmskb256 : X86Builtin<"int(_Vector<32, char>)">; 580 def pmuldq256 : X86Builtin<"_Vector<4, long long int>(_Vector<8, int>, _Vector<8, int>)">; 581 def pmulhrsw256 : X86Builtin<"_Vector<16, short>(_Vector<16, short>, _Vector<16, short>)">; 582 def pmulhuw256 : X86Builtin<"_Vector<16, short>(_Vector<16, short>, _Vector<16, short>)">; 583 def pmulhw256 : X86Builtin<"_Vector<16, short>(_Vector<16, short>, _Vector<16, short>)">; 584 def pmuludq256 : X86Builtin<"_Vector<4, long long int>(_Vector<8, int>, _Vector<8, int>)">; 585 def psadbw256 : X86Builtin<"_Vector<4, long long int>(_Vector<32, char>, _Vector<32, char>)">; 586 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)">; 590 def psignb256 : X86Builtin<"_Vector<32, char>(_Vector<32, char>, _Vector<32, char>)">; 591 def psignw256 : X86Builtin<"_Vector<16, short>(_Vector<16, short>, _Vector<16, short>)">; 592 def psignd256 : X86Builtin<"_Vector<8, int>(_Vector<8, int>, _Vector<8, int>)">; 593 def psllwi256 : X86Builtin<"_Vector<16, short>(_Vector<16, short>, int)">; 594 def psllw256 : X86Builtin<"_Vector<16, short>(_Vector<16, short>, _Vector<8, short>)">; 595 def pslldqi256_byteshift : X86Builtin<"_Vector<4, long long int>(_Vector<4, long long int>, _Constant int)">; 596 def pslldi256 : X86Builtin<"_Vector<8, int>(_Vector<8, int>, int)">; 597 def pslld256 : X86Builtin<"_Vector<8, int>(_Vector<8, int>, _Vector<4, int>)">; 598 def psllqi256 : X86Builtin<"_Vector<4, long long int>(_Vector<4, long long int>, int)">; 599 def psllq256 : X86Builtin<"_Vector<4, long long int>(_Vector<4, long long int>, _Vector<2, long long int>)">; 600 def psrawi256 : X86Builtin<"_Vector<16, short>(_Vector<16, short>, int)">; 601 def psraw256 : X86Builtin<"_Vector<16, short>(_Vector<16, short>, _Vector<8, short>)">; 602 def psradi256 : X86Builtin<"_Vector<8, int>(_Vector<8, int>, int)">; 603 def psrad256 : X86Builtin<"_Vector<8, int>(_Vector<8, int>, _Vector<4, int>)">; 604 def psrldqi256_byteshift : X86Builtin<"_Vector<4, long long int>(_Vector<4, long long int>, _Constant int)">; 605 def psrlwi256 : X86Builtin<"_Vector<16, short>(_Vector<16, short>, int)">; 606 def psrlw256 : X86Builtin<"_Vector<16, short>(_Vector<16, short>, _Vector<8, short>)">; 607 def psrldi256 : X86Builtin<"_Vector<8, int>(_Vector<8, int>, int)">; 608 def psrld256 : X86Builtin<"_Vector<8, int>(_Vector<8, int>, _Vector<4, int>)">; 609 def psrlqi256 : X86Builtin<"_Vector<4, long long int>(_Vector<4, long long int>, int)">; 610 def psrlq256 : X86Builtin<"_Vector<4, long long int>(_Vector<4, long long int>, _Vector<2, long long int>)">; 611 def pblendd128 : X86Builtin<"_Vector<4, int>(_Vector<4, int>, _Vector<4, int>, _Constant int)">; 612 def pblendd256 : X86Builtin<"_Vector<8, int>(_Vector<8, int>, _Vector<8, int>, _Constant int)">; 613 def permvarsi256 : X86Builtin<"_Vector<8, int>(_Vector<8, int>, _Vector<8, int>)">; 614 def permdf256 : X86Builtin<"_Vector<4, double>(_Vector<4, double>, _Constant int)">; 615 def permvarsf256 : X86Builtin<"_Vector<8, float>(_Vector<8, float>, _Vector<8, int>)">; 616 def permti256 : X86Builtin<"_Vector<4, long long int>(_Vector<4, long long int>, _Vector<4, long long int>, _Constant int)">; 617 def permdi256 : X86Builtin<"_Vector<4, long long int>(_Vector<4, long long int>, _Constant int)">; 618 def extract128i256 : X86Builtin<"_Vector<2, long long int>(_Vector<4, long long int>, _Constant int)">; 619 def insert128i256 : X86Builtin<"_Vector<4, long long int>(_Vector<4, long long int>, _Vector<2, long long int>, _Constant int)">; 620} 621 622let Features = "avx2", Attributes = [NoThrow, RequiredVectorWidth<256>] in { 623 def maskloadd256 : X86Builtin<"_Vector<8, int>(_Vector<8, int const *>, _Vector<8, int>)">; 624 def maskloadq256 : X86Builtin<"_Vector<4, long long int>(_Vector<4, long long int const *>, _Vector<4, long long int>)">; 625} 626 627let Features = "avx2", Attributes = [NoThrow, RequiredVectorWidth<128>] in { 628 def maskloadd : X86Builtin<"_Vector<4, int>(_Vector<4, int const *>, _Vector<4, int>)">; 629 def maskloadq : X86Builtin<"_Vector<2, long long int>(_Vector<2, long long int const *>, _Vector<2, long long int>)">; 630} 631 632let Features = "avx2", Attributes = [NoThrow, RequiredVectorWidth<256>] in { 633 def maskstored256 : X86Builtin<"void(_Vector<8, int *>, _Vector<8, int>, _Vector<8, int>)">; 634 def maskstoreq256 : X86Builtin<"void(_Vector<4, long long int *>, _Vector<4, long long int>, _Vector<4, long long int>)">; 635} 636 637let Features = "avx2", Attributes = [NoThrow, RequiredVectorWidth<128>] in { 638 def maskstored : X86Builtin<"void(_Vector<4, int *>, _Vector<4, int>, _Vector<4, int>)">; 639 def maskstoreq : X86Builtin<"void(_Vector<2, long long int *>, _Vector<2, long long int>, _Vector<2, long long int>)">; 640} 641 642let Features = "avx2", Attributes = [NoThrow, Const, RequiredVectorWidth<256>] in { 643 def psllv8si : X86Builtin<"_Vector<8, int>(_Vector<8, int>, _Vector<8, int>)">; 644} 645 646let Features = "avx2", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 647 def psllv4si : X86Builtin<"_Vector<4, int>(_Vector<4, int>, _Vector<4, int>)">; 648} 649 650let Features = "avx2", Attributes = [NoThrow, Const, RequiredVectorWidth<256>] in { 651 def psllv4di : X86Builtin<"_Vector<4, long long int>(_Vector<4, long long int>, _Vector<4, long long int>)">; 652} 653 654let Features = "avx2", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 655 def psllv2di : X86Builtin<"_Vector<2, long long int>(_Vector<2, long long int>, _Vector<2, long long int>)">; 656} 657 658let Features = "avx2", Attributes = [NoThrow, Const, RequiredVectorWidth<256>] in { 659 def psrav8si : X86Builtin<"_Vector<8, int>(_Vector<8, int>, _Vector<8, int>)">; 660} 661 662let Features = "avx2", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 663 def psrav4si : X86Builtin<"_Vector<4, int>(_Vector<4, int>, _Vector<4, int>)">; 664} 665 666let Features = "avx2", Attributes = [NoThrow, Const, RequiredVectorWidth<256>] in { 667 def psrlv8si : X86Builtin<"_Vector<8, int>(_Vector<8, int>, _Vector<8, int>)">; 668} 669 670let Features = "avx2", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 671 def psrlv4si : X86Builtin<"_Vector<4, int>(_Vector<4, int>, _Vector<4, int>)">; 672} 673 674let Features = "avx2", Attributes = [NoThrow, Const, RequiredVectorWidth<256>] in { 675 def psrlv4di : X86Builtin<"_Vector<4, long long int>(_Vector<4, long long int>, _Vector<4, long long int>)">; 676} 677 678let Features = "avx2", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 679 def psrlv2di : X86Builtin<"_Vector<2, long long int>(_Vector<2, long long int>, _Vector<2, long long int>)">; 680} 681 682let Features = "avx2", Attributes = [NoThrow, RequiredVectorWidth<128>] in { 683 def gatherd_pd : X86Builtin<"_Vector<2, double>(_Vector<2, double>, double const *, _Vector<4, int>, _Vector<2, double>, _Constant char)">; 684} 685 686let Features = "avx2", Attributes = [NoThrow, RequiredVectorWidth<256>] in { 687 def gatherd_pd256 : X86Builtin<"_Vector<4, double>(_Vector<4, double>, double const *, _Vector<4, int>, _Vector<4, double>, _Constant char)">; 688} 689 690let Features = "avx2", Attributes = [NoThrow, RequiredVectorWidth<128>] in { 691 def gatherq_pd : X86Builtin<"_Vector<2, double>(_Vector<2, double>, double const *, _Vector<2, long long int>, _Vector<2, double>, _Constant char)">; 692} 693 694let Features = "avx2", Attributes = [NoThrow, RequiredVectorWidth<256>] in { 695 def gatherq_pd256 : X86Builtin<"_Vector<4, double>(_Vector<4, double>, double const *, _Vector<4, long long int>, _Vector<4, double>, _Constant char)">; 696} 697 698let Features = "avx2", Attributes = [NoThrow, RequiredVectorWidth<128>] in { 699 def gatherd_ps : X86Builtin<"_Vector<4, float>(_Vector<4, float>, float const *, _Vector<4, int>, _Vector<4, float>, _Constant char)">; 700} 701 702let Features = "avx2", Attributes = [NoThrow, RequiredVectorWidth<256>] in { 703 def gatherd_ps256 : X86Builtin<"_Vector<8, float>(_Vector<8, float>, float const *, _Vector<8, int>, _Vector<8, float>, _Constant char)">; 704} 705 706let Features = "avx2", Attributes = [NoThrow, RequiredVectorWidth<128>] in { 707 def gatherq_ps : X86Builtin<"_Vector<4, float>(_Vector<4, float>, float const *, _Vector<2, long long int>, _Vector<4, float>, _Constant char)">; 708} 709 710let Features = "avx2", Attributes = [NoThrow, RequiredVectorWidth<256>] in { 711 def gatherq_ps256 : X86Builtin<"_Vector<4, float>(_Vector<4, float>, float const *, _Vector<4, long long int>, _Vector<4, float>, _Constant char)">; 712} 713 714let Features = "avx2", Attributes = [NoThrow, RequiredVectorWidth<128>] in { 715 def gatherd_q : X86Builtin<"_Vector<2, long long int>(_Vector<2, long long int>, long long int const *, _Vector<4, int>, _Vector<2, long long int>, _Constant char)">; 716} 717 718let Features = "avx2", Attributes = [NoThrow, RequiredVectorWidth<256>] in { 719 def gatherd_q256 : X86Builtin<"_Vector<4, long long int>(_Vector<4, long long int>, long long int const *, _Vector<4, int>, _Vector<4, long long int>, _Constant char)">; 720} 721 722let Features = "avx2", Attributes = [NoThrow, RequiredVectorWidth<128>] in { 723 def gatherq_q : X86Builtin<"_Vector<2, long long int>(_Vector<2, long long int>, long long int const *, _Vector<2, long long int>, _Vector<2, long long int>, _Constant char)">; 724} 725 726let Features = "avx2", Attributes = [NoThrow, RequiredVectorWidth<256>] in { 727 def gatherq_q256 : X86Builtin<"_Vector<4, long long int>(_Vector<4, long long int>, long long int const *, _Vector<4, long long int>, _Vector<4, long long int>, _Constant char)">; 728} 729 730let Features = "avx2", Attributes = [NoThrow, RequiredVectorWidth<128>] in { 731 def gatherd_d : X86Builtin<"_Vector<4, int>(_Vector<4, int>, int const *, _Vector<4, int>, _Vector<4, int>, _Constant char)">; 732} 733 734let Features = "avx2", Attributes = [NoThrow, RequiredVectorWidth<256>] in { 735 def gatherd_d256 : X86Builtin<"_Vector<8, int>(_Vector<8, int>, int const *, _Vector<8, int>, _Vector<8, int>, _Constant char)">; 736} 737 738let Features = "avx2", Attributes = [NoThrow, RequiredVectorWidth<128>] in { 739 def gatherq_d : X86Builtin<"_Vector<4, int>(_Vector<4, int>, int const *, _Vector<2, long long int>, _Vector<4, int>, _Constant char)">; 740} 741 742let Features = "avx2", Attributes = [NoThrow, RequiredVectorWidth<256>] in { 743 def gatherq_d256 : X86Builtin<"_Vector<4, int>(_Vector<4, int>, int const *, _Vector<4, long long int>, _Vector<4, int>, _Constant char)">; 744} 745 746let Features = "f16c", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 747 def vcvtps2ph : X86Builtin<"_Vector<8, short>(_Vector<4, float>, _Constant int)">; 748} 749 750let Features = "f16c", Attributes = [NoThrow, Const, RequiredVectorWidth<256>] in { 751 def vcvtps2ph256 : X86Builtin<"_Vector<8, short>(_Vector<8, float>, _Constant int)">; 752} 753 754let Features = "f16c", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 755 def vcvtph2ps : X86Builtin<"_Vector<4, float>(_Vector<8, short>)">; 756} 757 758let Features = "f16c", Attributes = [NoThrow, Const, RequiredVectorWidth<256>] in { 759 def vcvtph2ps256 : X86Builtin<"_Vector<8, float>(_Vector<8, short>)">; 760} 761 762let Features = "rdrnd", Attributes = [NoThrow] in { 763 def rdrand16_step : X86Builtin<"unsigned int(unsigned short *)">; 764 def rdrand32_step : X86Builtin<"unsigned int(unsigned int *)">; 765} 766 767let Features = "fxsr", Attributes = [NoThrow] in { 768 def fxrstor : X86Builtin<"void(void *)">; 769 def fxsave : X86Builtin<"void(void *)">; 770} 771 772let Features = "xsave", Attributes = [NoThrow] in { 773 def xsave : X86Builtin<"void(void *, unsigned long long int)">; 774 def xrstor : X86Builtin<"void(void *, unsigned long long int)">; 775 def xgetbv : X86Builtin<"unsigned long long int(unsigned int)">; 776} 777 778let Header = "immintrin.h", Languages = "ALL_MS_LANGUAGES", Attributes = [NoThrow, RequireDeclaration] in { 779 def _xgetbv : X86LibBuiltin<"uint64_t(unsigned int)">; 780} 781 782let Features = "xsave", Attributes = [NoThrow] in { 783 def xsetbv : X86Builtin<"void(unsigned int, unsigned long long int)">; 784} 785 786let Header = "immintrin.h", Languages = "ALL_MS_LANGUAGES", Attributes = [NoThrow, RequireDeclaration] in { 787 def _xsetbv : X86LibBuiltin<"void(unsigned int, uint64_t)">; 788} 789 790let Features = "xsaveopt", Attributes = [NoThrow] in { 791 def xsaveopt : X86Builtin<"void(void *, unsigned long long int)">; 792} 793 794let Features = "xsaves", Attributes = [NoThrow] in { 795 def xrstors : X86Builtin<"void(void *, unsigned long long int)">; 796} 797 798let Features = "xsavec", Attributes = [NoThrow] in { 799 def xsavec : X86Builtin<"void(void *, unsigned long long int)">; 800} 801 802let Features = "xsaves", Attributes = [NoThrow] in { 803 def xsaves : X86Builtin<"void(void *, unsigned long long int)">; 804} 805 806let Features = "shstk", Attributes = [NoThrow] in { 807 def incsspd : X86Builtin<"void(unsigned int)">; 808 def rdsspd : X86Builtin<"unsigned int(unsigned int)">; 809 def saveprevssp : X86Builtin<"void()">; 810 def rstorssp : X86Builtin<"void(void *)">; 811 def wrssd : X86Builtin<"void(unsigned int, void *)">; 812 def wrussd : X86Builtin<"void(unsigned int, void *)">; 813 def setssbsy : X86Builtin<"void()">; 814 def clrssbsy : X86Builtin<"void(void *)">; 815} 816 817let Features = "clflushopt", Attributes = [NoThrow] in { 818 def clflushopt : X86Builtin<"void(void const *)">; 819} 820 821let Features = "clwb", Attributes = [NoThrow] in { 822 def clwb : X86Builtin<"void(void const *)">; 823} 824 825let Attributes = [NoThrow] in { 826 def wbinvd : X86Builtin<"void()">; 827} 828 829let Features = "wbnoinvd", Attributes = [NoThrow] in { 830 def wbnoinvd : X86Builtin<"void()">; 831} 832 833let Attributes = [NoThrow, Constexpr] in { 834 def addcarryx_u32 : X86Builtin<"unsigned char(unsigned char, unsigned int, unsigned int, unsigned int *)">; 835 def subborrow_u32 : X86Builtin<"unsigned char(unsigned char, unsigned int, unsigned int, unsigned int *)">; 836} 837 838let Features = "rdseed", Attributes = [NoThrow] in { 839 def rdseed16_step : X86Builtin<"unsigned int(unsigned short *)">; 840 def rdseed32_step : X86Builtin<"unsigned int(unsigned int *)">; 841} 842 843let Features = "bmi", Attributes = [NoThrow, Const, Constexpr] in { 844 def bextr_u32 : X86Builtin<"unsigned int(unsigned int, unsigned int)">; 845} 846 847let Attributes = [NoThrow, Const, Constexpr] in { 848 def tzcnt_u16 : X86Builtin<"unsigned short(unsigned short)">; 849 def tzcnt_u32 : X86Builtin<"unsigned int(unsigned int)">; 850 def lzcnt_u16 : X86Builtin<"unsigned short(unsigned short)">; 851 def lzcnt_u32 : X86Builtin<"unsigned int(unsigned int)">; 852} 853 854let Features = "bmi2", Attributes = [NoThrow, Const, Constexpr] in { 855 def bzhi_si : X86Builtin<"unsigned int(unsigned int, unsigned int)">; 856 def pdep_si : X86Builtin<"unsigned int(unsigned int, unsigned int)">; 857 def pext_si : X86Builtin<"unsigned int(unsigned int, unsigned int)">; 858} 859 860let Features = "tbm", Attributes = [NoThrow, Const, Constexpr] in { 861 def bextri_u32 : X86Builtin<"unsigned int(unsigned int, _Constant unsigned int)">; 862} 863 864let Features = "lwp", Attributes = [NoThrow] in { 865 def llwpcb : X86Builtin<"void(void *)">; 866 def slwpcb : X86Builtin<"void *()">; 867 def lwpins32 : X86Builtin<"unsigned char(unsigned int, unsigned int, _Constant unsigned int)">; 868 def lwpval32 : X86Builtin<"void(unsigned int, unsigned int, _Constant unsigned int)">; 869} 870 871let Features = "sha", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 872 def sha1rnds4 : X86Builtin<"_Vector<4, int>(_Vector<4, int>, _Vector<4, int>, _Constant char)">; 873 def sha1nexte : X86Builtin<"_Vector<4, int>(_Vector<4, int>, _Vector<4, int>)">; 874 def sha1msg1 : X86Builtin<"_Vector<4, int>(_Vector<4, int>, _Vector<4, int>)">; 875 def sha1msg2 : X86Builtin<"_Vector<4, int>(_Vector<4, int>, _Vector<4, int>)">; 876 def sha256rnds2 : X86Builtin<"_Vector<4, int>(_Vector<4, int>, _Vector<4, int>, _Vector<4, int>)">; 877 def sha256msg1 : X86Builtin<"_Vector<4, int>(_Vector<4, int>, _Vector<4, int>)">; 878 def sha256msg2 : X86Builtin<"_Vector<4, int>(_Vector<4, int>, _Vector<4, int>)">; 879} 880 881let Features = "fma|fma4", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 882 def vfmaddps : X86Builtin<"_Vector<4, float>(_Vector<4, float>, _Vector<4, float>, _Vector<4, float>)">; 883 def vfmaddpd : X86Builtin<"_Vector<2, double>(_Vector<2, double>, _Vector<2, double>, _Vector<2, double>)">; 884} 885 886let Features = "fma", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 887 def vfmaddss3 : X86Builtin<"_Vector<4, float>(_Vector<4, float>, _Vector<4, float>, _Vector<4, float>)">; 888 def vfmaddsd3 : X86Builtin<"_Vector<2, double>(_Vector<2, double>, _Vector<2, double>, _Vector<2, double>)">; 889} 890 891let Features = "fma4", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 892 def vfmaddss : X86Builtin<"_Vector<4, float>(_Vector<4, float>, _Vector<4, float>, _Vector<4, float>)">; 893 def vfmaddsd : X86Builtin<"_Vector<2, double>(_Vector<2, double>, _Vector<2, double>, _Vector<2, double>)">; 894} 895 896let Features = "fma|fma4", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 897 def vfmaddsubps : X86Builtin<"_Vector<4, float>(_Vector<4, float>, _Vector<4, float>, _Vector<4, float>)">; 898 def vfmaddsubpd : X86Builtin<"_Vector<2, double>(_Vector<2, double>, _Vector<2, double>, _Vector<2, double>)">; 899} 900 901let Features = "fma|fma4", Attributes = [NoThrow, Const, RequiredVectorWidth<256>] in { 902 def vfmaddps256 : X86Builtin<"_Vector<8, float>(_Vector<8, float>, _Vector<8, float>, _Vector<8, float>)">; 903 def vfmaddpd256 : X86Builtin<"_Vector<4, double>(_Vector<4, double>, _Vector<4, double>, _Vector<4, double>)">; 904 def vfmaddsubps256 : X86Builtin<"_Vector<8, float>(_Vector<8, float>, _Vector<8, float>, _Vector<8, float>)">; 905 def vfmaddsubpd256 : X86Builtin<"_Vector<4, double>(_Vector<4, double>, _Vector<4, double>, _Vector<4, double>)">; 906} 907 908let Features = "avx512f,evex512", Attributes = [NoThrow, Const, RequiredVectorWidth<512>] in { 909 def vfmaddpd512_mask : X86Builtin<"_Vector<8, double>(_Vector<8, double>, _Vector<8, double>, _Vector<8, double>, unsigned char, _Constant int)">; 910 def vfmaddpd512_maskz : X86Builtin<"_Vector<8, double>(_Vector<8, double>, _Vector<8, double>, _Vector<8, double>, unsigned char, _Constant int)">; 911 def vfmaddpd512_mask3 : X86Builtin<"_Vector<8, double>(_Vector<8, double>, _Vector<8, double>, _Vector<8, double>, unsigned char, _Constant int)">; 912 def vfmsubpd512_mask3 : X86Builtin<"_Vector<8, double>(_Vector<8, double>, _Vector<8, double>, _Vector<8, double>, unsigned char, _Constant int)">; 913 def vfmaddps512_mask : X86Builtin<"_Vector<16, float>(_Vector<16, float>, _Vector<16, float>, _Vector<16, float>, unsigned short, _Constant int)">; 914 def vfmaddps512_maskz : X86Builtin<"_Vector<16, float>(_Vector<16, float>, _Vector<16, float>, _Vector<16, float>, unsigned short, _Constant int)">; 915 def vfmaddps512_mask3 : X86Builtin<"_Vector<16, float>(_Vector<16, float>, _Vector<16, float>, _Vector<16, float>, unsigned short, _Constant int)">; 916 def vfmsubps512_mask3 : X86Builtin<"_Vector<16, float>(_Vector<16, float>, _Vector<16, float>, _Vector<16, float>, unsigned short, _Constant int)">; 917 def vfmaddsubpd512_mask : X86Builtin<"_Vector<8, double>(_Vector<8, double>, _Vector<8, double>, _Vector<8, double>, unsigned char, _Constant int)">; 918 def vfmaddsubpd512_maskz : X86Builtin<"_Vector<8, double>(_Vector<8, double>, _Vector<8, double>, _Vector<8, double>, unsigned char, _Constant int)">; 919 def vfmaddsubpd512_mask3 : X86Builtin<"_Vector<8, double>(_Vector<8, double>, _Vector<8, double>, _Vector<8, double>, unsigned char, _Constant int)">; 920 def vfmsubaddpd512_mask3 : X86Builtin<"_Vector<8, double>(_Vector<8, double>, _Vector<8, double>, _Vector<8, double>, unsigned char, _Constant int)">; 921 def vfmaddsubps512_mask : X86Builtin<"_Vector<16, float>(_Vector<16, float>, _Vector<16, float>, _Vector<16, float>, unsigned short, _Constant int)">; 922 def vfmaddsubps512_maskz : X86Builtin<"_Vector<16, float>(_Vector<16, float>, _Vector<16, float>, _Vector<16, float>, unsigned short, _Constant int)">; 923 def vfmaddsubps512_mask3 : X86Builtin<"_Vector<16, float>(_Vector<16, float>, _Vector<16, float>, _Vector<16, float>, unsigned short, _Constant int)">; 924 def vfmsubaddps512_mask3 : X86Builtin<"_Vector<16, float>(_Vector<16, float>, _Vector<16, float>, _Vector<16, float>, unsigned short, _Constant int)">; 925} 926 927let Features = "xop", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 928 def vpmacssww : X86Builtin<"_Vector<8, short>(_Vector<8, short>, _Vector<8, short>, _Vector<8, short>)">; 929 def vpmacsww : X86Builtin<"_Vector<8, short>(_Vector<8, short>, _Vector<8, short>, _Vector<8, short>)">; 930 def vpmacsswd : X86Builtin<"_Vector<4, int>(_Vector<8, short>, _Vector<8, short>, _Vector<4, int>)">; 931 def vpmacswd : X86Builtin<"_Vector<4, int>(_Vector<8, short>, _Vector<8, short>, _Vector<4, int>)">; 932 def vpmacssdd : X86Builtin<"_Vector<4, int>(_Vector<4, int>, _Vector<4, int>, _Vector<4, int>)">; 933 def vpmacsdd : X86Builtin<"_Vector<4, int>(_Vector<4, int>, _Vector<4, int>, _Vector<4, int>)">; 934 def vpmacssdql : X86Builtin<"_Vector<2, long long int>(_Vector<4, int>, _Vector<4, int>, _Vector<2, long long int>)">; 935 def vpmacsdql : X86Builtin<"_Vector<2, long long int>(_Vector<4, int>, _Vector<4, int>, _Vector<2, long long int>)">; 936 def vpmacssdqh : X86Builtin<"_Vector<2, long long int>(_Vector<4, int>, _Vector<4, int>, _Vector<2, long long int>)">; 937 def vpmacsdqh : X86Builtin<"_Vector<2, long long int>(_Vector<4, int>, _Vector<4, int>, _Vector<2, long long int>)">; 938 def vpmadcsswd : X86Builtin<"_Vector<4, int>(_Vector<8, short>, _Vector<8, short>, _Vector<4, int>)">; 939 def vpmadcswd : X86Builtin<"_Vector<4, int>(_Vector<8, short>, _Vector<8, short>, _Vector<4, int>)">; 940 def vphaddbw : X86Builtin<"_Vector<8, short>(_Vector<16, char>)">; 941 def vphaddbd : X86Builtin<"_Vector<4, int>(_Vector<16, char>)">; 942 def vphaddbq : X86Builtin<"_Vector<2, long long int>(_Vector<16, char>)">; 943 def vphaddwd : X86Builtin<"_Vector<4, int>(_Vector<8, short>)">; 944 def vphaddwq : X86Builtin<"_Vector<2, long long int>(_Vector<8, short>)">; 945 def vphadddq : X86Builtin<"_Vector<2, long long int>(_Vector<4, int>)">; 946 def vphaddubw : X86Builtin<"_Vector<8, short>(_Vector<16, char>)">; 947 def vphaddubd : X86Builtin<"_Vector<4, int>(_Vector<16, char>)">; 948 def vphaddubq : X86Builtin<"_Vector<2, long long int>(_Vector<16, char>)">; 949 def vphadduwd : X86Builtin<"_Vector<4, int>(_Vector<8, short>)">; 950 def vphadduwq : X86Builtin<"_Vector<2, long long int>(_Vector<8, short>)">; 951 def vphaddudq : X86Builtin<"_Vector<2, long long int>(_Vector<4, int>)">; 952 def vphsubbw : X86Builtin<"_Vector<8, short>(_Vector<16, char>)">; 953 def vphsubwd : X86Builtin<"_Vector<4, int>(_Vector<8, short>)">; 954 def vphsubdq : X86Builtin<"_Vector<2, long long int>(_Vector<4, int>)">; 955 def vpperm : X86Builtin<"_Vector<16, char>(_Vector<16, char>, _Vector<16, char>, _Vector<16, char>)">; 956 def vprotb : X86Builtin<"_Vector<16, char>(_Vector<16, char>, _Vector<16, char>)">; 957 def vprotw : X86Builtin<"_Vector<8, short>(_Vector<8, short>, _Vector<8, short>)">; 958 def vprotd : X86Builtin<"_Vector<4, int>(_Vector<4, int>, _Vector<4, int>)">; 959 def vprotq : X86Builtin<"_Vector<2, long long int>(_Vector<2, long long int>, _Vector<2, long long int>)">; 960 def vprotbi : X86Builtin<"_Vector<16, char>(_Vector<16, char>, _Constant char)">; 961 def vprotwi : X86Builtin<"_Vector<8, short>(_Vector<8, short>, _Constant char)">; 962 def vprotdi : X86Builtin<"_Vector<4, int>(_Vector<4, int>, _Constant char)">; 963 def vprotqi : X86Builtin<"_Vector<2, long long int>(_Vector<2, long long int>, _Constant char)">; 964 def vpshlb : X86Builtin<"_Vector<16, char>(_Vector<16, char>, _Vector<16, char>)">; 965 def vpshlw : X86Builtin<"_Vector<8, short>(_Vector<8, short>, _Vector<8, short>)">; 966 def vpshld : X86Builtin<"_Vector<4, int>(_Vector<4, int>, _Vector<4, int>)">; 967 def vpshlq : X86Builtin<"_Vector<2, long long int>(_Vector<2, long long int>, _Vector<2, long long int>)">; 968 def vpshab : X86Builtin<"_Vector<16, char>(_Vector<16, char>, _Vector<16, char>)">; 969 def vpshaw : X86Builtin<"_Vector<8, short>(_Vector<8, short>, _Vector<8, short>)">; 970 def vpshad : X86Builtin<"_Vector<4, int>(_Vector<4, int>, _Vector<4, int>)">; 971 def vpshaq : X86Builtin<"_Vector<2, long long int>(_Vector<2, long long int>, _Vector<2, long long int>)">; 972 def vpcomub : X86Builtin<"_Vector<16, char>(_Vector<16, char>, _Vector<16, char>, _Constant char)">; 973 def vpcomuw : X86Builtin<"_Vector<8, short>(_Vector<8, short>, _Vector<8, short>, _Constant char)">; 974 def vpcomud : X86Builtin<"_Vector<4, int>(_Vector<4, int>, _Vector<4, int>, _Constant char)">; 975 def vpcomuq : X86Builtin<"_Vector<2, long long int>(_Vector<2, long long int>, _Vector<2, long long int>, _Constant char)">; 976 def vpcomb : X86Builtin<"_Vector<16, char>(_Vector<16, char>, _Vector<16, char>, _Constant char)">; 977 def vpcomw : X86Builtin<"_Vector<8, short>(_Vector<8, short>, _Vector<8, short>, _Constant char)">; 978 def vpcomd : X86Builtin<"_Vector<4, int>(_Vector<4, int>, _Vector<4, int>, _Constant char)">; 979 def vpcomq : X86Builtin<"_Vector<2, long long int>(_Vector<2, long long int>, _Vector<2, long long int>, _Constant char)">; 980 def vpermil2pd : X86Builtin<"_Vector<2, double>(_Vector<2, double>, _Vector<2, double>, _Vector<2, long long int>, _Constant char)">; 981} 982 983let Features = "xop", Attributes = [NoThrow, Const, RequiredVectorWidth<256>] in { 984 def vpermil2pd256 : X86Builtin<"_Vector<4, double>(_Vector<4, double>, _Vector<4, double>, _Vector<4, long long int>, _Constant char)">; 985} 986 987let Features = "xop", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 988 def vpermil2ps : X86Builtin<"_Vector<4, float>(_Vector<4, float>, _Vector<4, float>, _Vector<4, int>, _Constant char)">; 989} 990 991let Features = "xop", Attributes = [NoThrow, Const, RequiredVectorWidth<256>] in { 992 def vpermil2ps256 : X86Builtin<"_Vector<8, float>(_Vector<8, float>, _Vector<8, float>, _Vector<8, int>, _Constant char)">; 993} 994 995let Features = "xop", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 996 def vfrczss : X86Builtin<"_Vector<4, float>(_Vector<4, float>)">; 997 def vfrczsd : X86Builtin<"_Vector<2, double>(_Vector<2, double>)">; 998 def vfrczps : X86Builtin<"_Vector<4, float>(_Vector<4, float>)">; 999 def vfrczpd : X86Builtin<"_Vector<2, double>(_Vector<2, double>)">; 1000} 1001 1002let Features = "xop", Attributes = [NoThrow, Const, RequiredVectorWidth<256>] in { 1003 def vfrczps256 : X86Builtin<"_Vector<8, float>(_Vector<8, float>)">; 1004 def vfrczpd256 : X86Builtin<"_Vector<4, double>(_Vector<4, double>)">; 1005} 1006 1007let Features = "rtm", Attributes = [NoThrow] in { 1008 def xbegin : X86Builtin<"int()">; 1009 def xend : X86Builtin<"void()">; 1010 def xabort : X86Builtin<"void(_Constant char)">; 1011 def xtest : X86Builtin<"int()">; 1012} 1013 1014let Features = "rdpid", Attributes = [NoThrow] in { 1015 def rdpid : X86Builtin<"unsigned int()">; 1016} 1017 1018let Features = "rdpru", Attributes = [NoThrow], EnableOpenCLLong = 0 in { 1019 def rdpru : X86Builtin<"unsigned long long int(int)">; 1020} 1021 1022let Features = "pku", Attributes = [NoThrow] in { 1023 def rdpkru : X86Builtin<"unsigned int()">; 1024 def wrpkru : X86Builtin<"void(unsigned int)">; 1025} 1026 1027let Features = "avx512f,evex512", Attributes = [NoThrow, Const, RequiredVectorWidth<512>] in { 1028 def sqrtpd512 : X86Builtin<"_Vector<8, double>(_Vector<8, double>, _Constant int)">; 1029 def sqrtps512 : X86Builtin<"_Vector<16, float>(_Vector<16, float>, _Constant int)">; 1030} 1031 1032let Features = "avx512f", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 1033 def rsqrt14sd_mask : X86Builtin<"_Vector<2, double>(_Vector<2, double>, _Vector<2, double>, _Vector<2, double>, unsigned char)">; 1034 def rsqrt14ss_mask : X86Builtin<"_Vector<4, float>(_Vector<4, float>, _Vector<4, float>, _Vector<4, float>, unsigned char)">; 1035} 1036 1037let Features = "avx512f,evex512", Attributes = [NoThrow, Const, RequiredVectorWidth<512>] in { 1038 def rsqrt14pd512_mask : X86Builtin<"_Vector<8, double>(_Vector<8, double>, _Vector<8, double>, unsigned char)">; 1039 def rsqrt14ps512_mask : X86Builtin<"_Vector<16, float>(_Vector<16, float>, _Vector<16, float>, unsigned short)">; 1040} 1041 1042let Features = "avx512f", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 1043 def rcp14sd_mask : X86Builtin<"_Vector<2, double>(_Vector<2, double>, _Vector<2, double>, _Vector<2, double>, unsigned char)">; 1044 def rcp14ss_mask : X86Builtin<"_Vector<4, float>(_Vector<4, float>, _Vector<4, float>, _Vector<4, float>, unsigned char)">; 1045} 1046 1047let Features = "avx512f,evex512", Attributes = [NoThrow, Const, RequiredVectorWidth<512>] in { 1048 def rcp14pd512_mask : X86Builtin<"_Vector<8, double>(_Vector<8, double>, _Vector<8, double>, unsigned char)">; 1049 def rcp14ps512_mask : X86Builtin<"_Vector<16, float>(_Vector<16, float>, _Vector<16, float>, unsigned short)">; 1050 def cvttps2dq512_mask : X86Builtin<"_Vector<16, int>(_Vector<16, float>, _Vector<16, int>, unsigned short, _Constant int)">; 1051 def cvttps2udq512_mask : X86Builtin<"_Vector<16, int>(_Vector<16, float>, _Vector<16, int>, unsigned short, _Constant int)">; 1052 def cvttpd2dq512_mask : X86Builtin<"_Vector<8, int>(_Vector<8, double>, _Vector<8, int>, unsigned char, _Constant int)">; 1053 def cvttpd2udq512_mask : X86Builtin<"_Vector<8, int>(_Vector<8, double>, _Vector<8, int>, unsigned char, _Constant int)">; 1054 def cmpps512_mask : X86Builtin<"unsigned short(_Vector<16, float>, _Vector<16, float>, _Constant int, unsigned short, _Constant int)">; 1055} 1056 1057let Features = "avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<256>] in { 1058 def cmpps256_mask : X86Builtin<"unsigned char(_Vector<8, float>, _Vector<8, float>, _Constant int, unsigned char)">; 1059} 1060 1061let Features = "avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 1062 def cmpps128_mask : X86Builtin<"unsigned char(_Vector<4, float>, _Vector<4, float>, _Constant int, unsigned char)">; 1063} 1064 1065let Features = "avx512f,evex512", Attributes = [NoThrow, Const, RequiredVectorWidth<512>] in { 1066 def cmppd512_mask : X86Builtin<"unsigned char(_Vector<8, double>, _Vector<8, double>, _Constant int, unsigned char, _Constant int)">; 1067} 1068 1069let Features = "avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<256>] in { 1070 def cmppd256_mask : X86Builtin<"unsigned char(_Vector<4, double>, _Vector<4, double>, _Constant int, unsigned char)">; 1071} 1072 1073let Features = "avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 1074 def cmppd128_mask : X86Builtin<"unsigned char(_Vector<2, double>, _Vector<2, double>, _Constant int, unsigned char)">; 1075} 1076 1077let Features = "avx512f,evex512", Attributes = [NoThrow, Const, RequiredVectorWidth<512>] in { 1078 def rndscaleps_mask : X86Builtin<"_Vector<16, float>(_Vector<16, float>, _Constant int, _Vector<16, float>, unsigned short, _Constant int)">; 1079 def rndscalepd_mask : X86Builtin<"_Vector<8, double>(_Vector<8, double>, _Constant int, _Vector<8, double>, unsigned char, _Constant int)">; 1080 def cvtps2dq512_mask : X86Builtin<"_Vector<16, int>(_Vector<16, float>, _Vector<16, int>, unsigned short, _Constant int)">; 1081 def cvtpd2dq512_mask : X86Builtin<"_Vector<8, int>(_Vector<8, double>, _Vector<8, int>, unsigned char, _Constant int)">; 1082 def cvtps2udq512_mask : X86Builtin<"_Vector<16, int>(_Vector<16, float>, _Vector<16, int>, unsigned short, _Constant int)">; 1083 def cvtpd2udq512_mask : X86Builtin<"_Vector<8, int>(_Vector<8, double>, _Vector<8, int>, unsigned char, _Constant int)">; 1084 def minps512 : X86Builtin<"_Vector<16, float>(_Vector<16, float>, _Vector<16, float>, _Constant int)">; 1085 def minpd512 : X86Builtin<"_Vector<8, double>(_Vector<8, double>, _Vector<8, double>, _Constant int)">; 1086 def maxps512 : X86Builtin<"_Vector<16, float>(_Vector<16, float>, _Vector<16, float>, _Constant int)">; 1087 def maxpd512 : X86Builtin<"_Vector<8, double>(_Vector<8, double>, _Vector<8, double>, _Constant int)">; 1088 def cvtdq2ps512_mask : X86Builtin<"_Vector<16, float>(_Vector<16, int>, _Vector<16, float>, unsigned short, _Constant int)">; 1089 def cvtudq2ps512_mask : X86Builtin<"_Vector<16, float>(_Vector<16, int>, _Vector<16, float>, unsigned short, _Constant int)">; 1090 def cvtpd2ps512_mask : X86Builtin<"_Vector<8, float>(_Vector<8, double>, _Vector<8, float>, unsigned char, _Constant int)">; 1091 def vcvtps2ph512_mask : X86Builtin<"_Vector<16, short>(_Vector<16, float>, _Constant int, _Vector<16, short>, unsigned short)">; 1092 def vcvtph2ps512_mask : X86Builtin<"_Vector<16, float>(_Vector<16, short>, _Vector<16, float>, unsigned short, _Constant int)">; 1093 def pmuldq512 : X86Builtin<"_Vector<8, long long int>(_Vector<16, int>, _Vector<16, int>)">; 1094 def pmuludq512 : X86Builtin<"_Vector<8, long long int>(_Vector<16, int>, _Vector<16, int>)">; 1095} 1096 1097let Features = "avx512f,evex512", Attributes = [NoThrow, RequiredVectorWidth<512>] in { 1098 def loaddqusi512_mask : X86Builtin<"_Vector<16, int>(int const *, _Vector<16, int>, unsigned short)">; 1099 def loaddqudi512_mask : X86Builtin<"_Vector<8, long long int>(long long int const *, _Vector<8, long long int>, unsigned char)">; 1100 def loadups512_mask : X86Builtin<"_Vector<16, float>(float const *, _Vector<16, float>, unsigned short)">; 1101 def loadaps512_mask : X86Builtin<"_Vector<16, float>(_Vector<16, float const *>, _Vector<16, float>, unsigned short)">; 1102 def loadupd512_mask : X86Builtin<"_Vector<8, double>(double const *, _Vector<8, double>, unsigned char)">; 1103 def loadapd512_mask : X86Builtin<"_Vector<8, double>(_Vector<8, double const *>, _Vector<8, double>, unsigned char)">; 1104 def storedqudi512_mask : X86Builtin<"void(long long int *, _Vector<8, long long int>, unsigned char)">; 1105 def storedqusi512_mask : X86Builtin<"void(int *, _Vector<16, int>, unsigned short)">; 1106 def storeupd512_mask : X86Builtin<"void(double *, _Vector<8, double>, unsigned char)">; 1107 def storeapd512_mask : X86Builtin<"void(_Vector<8, double *>, _Vector<8, double>, unsigned char)">; 1108 def storeups512_mask : X86Builtin<"void(float *, _Vector<16, float>, unsigned short)">; 1109 def storeaps512_mask : X86Builtin<"void(_Vector<16, float *>, _Vector<16, float>, unsigned short)">; 1110} 1111 1112let Features = "avx512f,evex512", Attributes = [NoThrow, Const, RequiredVectorWidth<512>] in { 1113 def alignq512 : X86Builtin<"_Vector<8, long long int>(_Vector<8, long long int>, _Vector<8, long long int>, _Constant int)">; 1114 def alignd512 : X86Builtin<"_Vector<16, int>(_Vector<16, int>, _Vector<16, int>, _Constant int)">; 1115} 1116 1117let Features = "avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 1118 def alignd128 : X86Builtin<"_Vector<4, int>(_Vector<4, int>, _Vector<4, int>, _Constant int)">; 1119} 1120 1121let Features = "avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<256>] in { 1122 def alignd256 : X86Builtin<"_Vector<8, int>(_Vector<8, int>, _Vector<8, int>, _Constant int)">; 1123} 1124 1125let Features = "avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 1126 def alignq128 : X86Builtin<"_Vector<2, long long int>(_Vector<2, long long int>, _Vector<2, long long int>, _Constant int)">; 1127} 1128 1129let Features = "avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<256>] in { 1130 def alignq256 : X86Builtin<"_Vector<4, long long int>(_Vector<4, long long int>, _Vector<4, long long int>, _Constant int)">; 1131} 1132 1133let Features = "avx512f,evex512", Attributes = [NoThrow, Const, RequiredVectorWidth<512>] in { 1134 def extractf64x4_mask : X86Builtin<"_Vector<4, double>(_Vector<8, double>, _Constant int, _Vector<4, double>, unsigned char)">; 1135 def extractf32x4_mask : X86Builtin<"_Vector<4, float>(_Vector<16, float>, _Constant int, _Vector<4, float>, unsigned char)">; 1136} 1137 1138let Features = "avx512vl,avx512vnni|avxvnni", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 1139 def vpdpbusd128 : X86Builtin<"_Vector<4, int>(_Vector<4, int>, _Vector<4, int>, _Vector<4, int>)">; 1140} 1141 1142let Features = "avx512vl,avx512vnni|avxvnni", Attributes = [NoThrow, Const, RequiredVectorWidth<256>] in { 1143 def vpdpbusd256 : X86Builtin<"_Vector<8, int>(_Vector<8, int>, _Vector<8, int>, _Vector<8, int>)">; 1144} 1145 1146let Features = "avx512vnni,evex512", Attributes = [NoThrow, Const, RequiredVectorWidth<512>] in { 1147 def vpdpbusd512 : X86Builtin<"_Vector<16, int>(_Vector<16, int>, _Vector<16, int>, _Vector<16, int>)">; 1148} 1149 1150let Features = "avx512vl,avx512vnni|avxvnni", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 1151 def vpdpbusds128 : X86Builtin<"_Vector<4, int>(_Vector<4, int>, _Vector<4, int>, _Vector<4, int>)">; 1152} 1153 1154let Features = "avx512vl,avx512vnni|avxvnni", Attributes = [NoThrow, Const, RequiredVectorWidth<256>] in { 1155 def vpdpbusds256 : X86Builtin<"_Vector<8, int>(_Vector<8, int>, _Vector<8, int>, _Vector<8, int>)">; 1156} 1157 1158let Features = "avx512vnni,evex512", Attributes = [NoThrow, Const, RequiredVectorWidth<512>] in { 1159 def vpdpbusds512 : X86Builtin<"_Vector<16, int>(_Vector<16, int>, _Vector<16, int>, _Vector<16, int>)">; 1160} 1161 1162let Features = "avx512vl,avx512vnni|avxvnni", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 1163 def vpdpwssd128 : X86Builtin<"_Vector<4, int>(_Vector<4, int>, _Vector<4, int>, _Vector<4, int>)">; 1164} 1165 1166let Features = "avx512vl,avx512vnni|avxvnni", Attributes = [NoThrow, Const, RequiredVectorWidth<256>] in { 1167 def vpdpwssd256 : X86Builtin<"_Vector<8, int>(_Vector<8, int>, _Vector<8, int>, _Vector<8, int>)">; 1168} 1169 1170let Features = "avx512vnni,evex512", Attributes = [NoThrow, Const, RequiredVectorWidth<512>] in { 1171 def vpdpwssd512 : X86Builtin<"_Vector<16, int>(_Vector<16, int>, _Vector<16, int>, _Vector<16, int>)">; 1172} 1173 1174let Features = "avx512vl,avx512vnni|avxvnni", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 1175 def vpdpwssds128 : X86Builtin<"_Vector<4, int>(_Vector<4, int>, _Vector<4, int>, _Vector<4, int>)">; 1176} 1177 1178let Features = "avx512vl,avx512vnni|avxvnni", Attributes = [NoThrow, Const, RequiredVectorWidth<256>] in { 1179 def vpdpwssds256 : X86Builtin<"_Vector<8, int>(_Vector<8, int>, _Vector<8, int>, _Vector<8, int>)">; 1180} 1181 1182let Features = "avx512vnni,evex512", Attributes = [NoThrow, Const, RequiredVectorWidth<512>] in { 1183 def vpdpwssds512 : X86Builtin<"_Vector<16, int>(_Vector<16, int>, _Vector<16, int>, _Vector<16, int>)">; 1184} 1185 1186let Features = "avxvnniint8|avx10.2-256", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 1187 def vpdpbssd128 : X86Builtin<"_Vector<4, int>(_Vector<4, int>, _Vector<4, int>, _Vector<4, int>)">; 1188} 1189 1190let Features = "avxvnniint8|avx10.2-256", Attributes = [NoThrow, Const, RequiredVectorWidth<256>] in { 1191 def vpdpbssd256 : X86Builtin<"_Vector<8, int>(_Vector<8, int>, _Vector<8, int>, _Vector<8, int>)">; 1192} 1193 1194let Features = "avxvnniint8|avx10.2-256", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 1195 def vpdpbssds128 : X86Builtin<"_Vector<4, int>(_Vector<4, int>, _Vector<4, int>, _Vector<4, int>)">; 1196} 1197 1198let Features = "avxvnniint8|avx10.2-256", Attributes = [NoThrow, Const, RequiredVectorWidth<256>] in { 1199 def vpdpbssds256 : X86Builtin<"_Vector<8, int>(_Vector<8, int>, _Vector<8, int>, _Vector<8, int>)">; 1200} 1201 1202let Features = "avxvnniint8|avx10.2-256", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 1203 def vpdpbsud128 : X86Builtin<"_Vector<4, int>(_Vector<4, int>, _Vector<4, int>, _Vector<4, int>)">; 1204} 1205 1206let Features = "avxvnniint8|avx10.2-256", Attributes = [NoThrow, Const, RequiredVectorWidth<256>] in { 1207 def vpdpbsud256 : X86Builtin<"_Vector<8, int>(_Vector<8, int>, _Vector<8, int>, _Vector<8, int>)">; 1208} 1209 1210let Features = "avxvnniint8|avx10.2-256", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 1211 def vpdpbsuds128 : X86Builtin<"_Vector<4, int>(_Vector<4, int>, _Vector<4, int>, _Vector<4, int>)">; 1212} 1213 1214let Features = "avxvnniint8|avx10.2-256", Attributes = [NoThrow, Const, RequiredVectorWidth<256>] in { 1215 def vpdpbsuds256 : X86Builtin<"_Vector<8, int>(_Vector<8, int>, _Vector<8, int>, _Vector<8, int>)">; 1216} 1217 1218let Features = "avxvnniint8|avx10.2-256", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 1219 def vpdpbuud128 : X86Builtin<"_Vector<4, int>(_Vector<4, int>, _Vector<4, int>, _Vector<4, int>)">; 1220} 1221 1222let Features = "avxvnniint8|avx10.2-256", Attributes = [NoThrow, Const, RequiredVectorWidth<256>] in { 1223 def vpdpbuud256 : X86Builtin<"_Vector<8, int>(_Vector<8, int>, _Vector<8, int>, _Vector<8, int>)">; 1224} 1225 1226let Features = "avxvnniint8|avx10.2-256", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 1227 def vpdpbuuds128 : X86Builtin<"_Vector<4, int>(_Vector<4, int>, _Vector<4, int>, _Vector<4, int>)">; 1228} 1229 1230let Features = "avxvnniint8|avx10.2-256", Attributes = [NoThrow, Const, RequiredVectorWidth<256>] in { 1231 def vpdpbuuds256 : X86Builtin<"_Vector<8, int>(_Vector<8, int>, _Vector<8, int>, _Vector<8, int>)">; 1232} 1233 1234let Features = "movrs", Attributes = [NoThrow, Const] in { 1235 def prefetchrs : X86Builtin<"void(void const *)">; 1236} 1237 1238let Features = "avx512vl", Attributes = [NoThrow, RequiredVectorWidth<128>] in { 1239 def gather3div2df : X86Builtin<"_Vector<2, double>(_Vector<2, double>, void const *, _Vector<2, long long int>, unsigned char, _Constant int)">; 1240 def gather3div2di : X86Builtin<"_Vector<2, long long int>(_Vector<2, long long int>, void const *, _Vector<2, long long int>, unsigned char, _Constant int)">; 1241} 1242 1243let Features = "avx512vl", Attributes = [NoThrow, RequiredVectorWidth<256>] in { 1244 def gather3div4df : X86Builtin<"_Vector<4, double>(_Vector<4, double>, void const *, _Vector<4, long long int>, unsigned char, _Constant int)">; 1245 def gather3div4di : X86Builtin<"_Vector<4, long long int>(_Vector<4, long long int>, void const *, _Vector<4, long long int>, unsigned char, _Constant int)">; 1246} 1247 1248let Features = "avx512vl", Attributes = [NoThrow, RequiredVectorWidth<128>] in { 1249 def gather3div4sf : X86Builtin<"_Vector<4, float>(_Vector<4, float>, void const *, _Vector<2, long long int>, unsigned char, _Constant int)">; 1250 def gather3div4si : X86Builtin<"_Vector<4, int>(_Vector<4, int>, void const *, _Vector<2, long long int>, unsigned char, _Constant int)">; 1251} 1252 1253let Features = "avx512vl", Attributes = [NoThrow, RequiredVectorWidth<256>] in { 1254 def gather3div8sf : X86Builtin<"_Vector<4, float>(_Vector<4, float>, void const *, _Vector<4, long long int>, unsigned char, _Constant int)">; 1255 def gather3div8si : X86Builtin<"_Vector<4, int>(_Vector<4, int>, void const *, _Vector<4, long long int>, unsigned char, _Constant int)">; 1256} 1257 1258let Features = "avx512vl", Attributes = [NoThrow, RequiredVectorWidth<128>] in { 1259 def gather3siv2df : X86Builtin<"_Vector<2, double>(_Vector<2, double>, void const *, _Vector<4, int>, unsigned char, _Constant int)">; 1260 def gather3siv2di : X86Builtin<"_Vector<2, long long int>(_Vector<2, long long int>, void const *, _Vector<4, int>, unsigned char, _Constant int)">; 1261} 1262 1263let Features = "avx512vl", Attributes = [NoThrow, RequiredVectorWidth<256>] in { 1264 def gather3siv4df : X86Builtin<"_Vector<4, double>(_Vector<4, double>, void const *, _Vector<4, int>, unsigned char, _Constant int)">; 1265 def gather3siv4di : X86Builtin<"_Vector<4, long long int>(_Vector<4, long long int>, void const *, _Vector<4, int>, unsigned char, _Constant int)">; 1266} 1267 1268let Features = "avx512vl", Attributes = [NoThrow, RequiredVectorWidth<128>] in { 1269 def gather3siv4sf : X86Builtin<"_Vector<4, float>(_Vector<4, float>, void const *, _Vector<4, int>, unsigned char, _Constant int)">; 1270 def gather3siv4si : X86Builtin<"_Vector<4, int>(_Vector<4, int>, void const *, _Vector<4, int>, unsigned char, _Constant int)">; 1271} 1272 1273let Features = "avx512vl", Attributes = [NoThrow, RequiredVectorWidth<256>] in { 1274 def gather3siv8sf : X86Builtin<"_Vector<8, float>(_Vector<8, float>, void const *, _Vector<8, int>, unsigned char, _Constant int)">; 1275 def gather3siv8si : X86Builtin<"_Vector<8, int>(_Vector<8, int>, void const *, _Vector<8, int>, unsigned char, _Constant int)">; 1276} 1277 1278let Features = "avx512f,evex512", Attributes = [NoThrow, RequiredVectorWidth<512>] in { 1279 def gathersiv8df : X86Builtin<"_Vector<8, double>(_Vector<8, double>, void const *, _Vector<8, int>, unsigned char, _Constant int)">; 1280 def gathersiv16sf : X86Builtin<"_Vector<16, float>(_Vector<16, float>, void const *, _Vector<16, int>, unsigned short, _Constant int)">; 1281 def gatherdiv8df : X86Builtin<"_Vector<8, double>(_Vector<8, double>, void const *, _Vector<8, long long int>, unsigned char, _Constant int)">; 1282 def gatherdiv16sf : X86Builtin<"_Vector<8, float>(_Vector<8, float>, void const *, _Vector<8, long long int>, unsigned char, _Constant int)">; 1283 def gathersiv8di : X86Builtin<"_Vector<8, long long int>(_Vector<8, long long int>, void const *, _Vector<8, int>, unsigned char, _Constant int)">; 1284 def gathersiv16si : X86Builtin<"_Vector<16, int>(_Vector<16, int>, void const *, _Vector<16, int>, unsigned short, _Constant int)">; 1285 def gatherdiv8di : X86Builtin<"_Vector<8, long long int>(_Vector<8, long long int>, void const *, _Vector<8, long long int>, unsigned char, _Constant int)">; 1286 def gatherdiv16si : X86Builtin<"_Vector<8, int>(_Vector<8, int>, void const *, _Vector<8, long long int>, unsigned char, _Constant int)">; 1287 def scattersiv8df : X86Builtin<"void(void *, unsigned char, _Vector<8, int>, _Vector<8, double>, _Constant int)">; 1288 def scattersiv16sf : X86Builtin<"void(void *, unsigned short, _Vector<16, int>, _Vector<16, float>, _Constant int)">; 1289 def scatterdiv8df : X86Builtin<"void(void *, unsigned char, _Vector<8, long long int>, _Vector<8, double>, _Constant int)">; 1290 def scatterdiv16sf : X86Builtin<"void(void *, unsigned char, _Vector<8, long long int>, _Vector<8, float>, _Constant int)">; 1291 def scattersiv8di : X86Builtin<"void(void *, unsigned char, _Vector<8, int>, _Vector<8, long long int>, _Constant int)">; 1292 def scattersiv16si : X86Builtin<"void(void *, unsigned short, _Vector<16, int>, _Vector<16, int>, _Constant int)">; 1293 def scatterdiv8di : X86Builtin<"void(void *, unsigned char, _Vector<8, long long int>, _Vector<8, long long int>, _Constant int)">; 1294 def scatterdiv16si : X86Builtin<"void(void *, unsigned char, _Vector<8, long long int>, _Vector<8, int>, _Constant int)">; 1295} 1296 1297let Features = "avx512dq", Attributes = [NoThrow, Const] in { 1298 def knotqi : X86Builtin<"unsigned char(unsigned char)">; 1299} 1300 1301let Features = "avx512f", Attributes = [NoThrow, Const] in { 1302 def knothi : X86Builtin<"unsigned short(unsigned short)">; 1303} 1304 1305let Features = "avx512bw", Attributes = [NoThrow, Const] in { 1306 def knotsi : X86Builtin<"unsigned int(unsigned int)">; 1307 def knotdi : X86Builtin<"unsigned long long int(unsigned long long int)">; 1308} 1309 1310let Features = "avx512vl,avx512bw", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 1311 def cmpb128_mask : X86Builtin<"unsigned short(_Vector<16, char>, _Vector<16, char>, _Constant int, unsigned short)">; 1312} 1313 1314let Features = "avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 1315 def cmpd128_mask : X86Builtin<"unsigned char(_Vector<4, int>, _Vector<4, int>, _Constant int, unsigned char)">; 1316 def cmpq128_mask : X86Builtin<"unsigned char(_Vector<2, long long int>, _Vector<2, long long int>, _Constant int, unsigned char)">; 1317} 1318 1319let Features = "avx512vl,avx512bw", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 1320 def cmpw128_mask : X86Builtin<"unsigned char(_Vector<8, short>, _Vector<8, short>, _Constant int, unsigned char)">; 1321} 1322 1323let Features = "avx512vl,avx512bw", Attributes = [NoThrow, Const, RequiredVectorWidth<256>] in { 1324 def cmpb256_mask : X86Builtin<"unsigned int(_Vector<32, char>, _Vector<32, char>, _Constant int, unsigned int)">; 1325} 1326 1327let Features = "avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<256>] in { 1328 def cmpd256_mask : X86Builtin<"unsigned char(_Vector<8, int>, _Vector<8, int>, _Constant int, unsigned char)">; 1329 def cmpq256_mask : X86Builtin<"unsigned char(_Vector<4, long long int>, _Vector<4, long long int>, _Constant int, unsigned char)">; 1330} 1331 1332let Features = "avx512vl,avx512bw", Attributes = [NoThrow, Const, RequiredVectorWidth<256>] in { 1333 def cmpw256_mask : X86Builtin<"unsigned short(_Vector<16, short>, _Vector<16, short>, _Constant int, unsigned short)">; 1334} 1335 1336let Features = "avx512bw,evex512", Attributes = [NoThrow, Const, RequiredVectorWidth<512>] in { 1337 def cmpb512_mask : X86Builtin<"unsigned long long int(_Vector<64, char>, _Vector<64, char>, _Constant int, unsigned long long int)">; 1338} 1339 1340let Features = "avx512f,evex512", Attributes = [NoThrow, Const, RequiredVectorWidth<512>] in { 1341 def cmpd512_mask : X86Builtin<"unsigned short(_Vector<16, int>, _Vector<16, int>, _Constant int, unsigned short)">; 1342 def cmpq512_mask : X86Builtin<"unsigned char(_Vector<8, long long int>, _Vector<8, long long int>, _Constant int, unsigned char)">; 1343} 1344 1345let Features = "avx512bw,evex512", Attributes = [NoThrow, Const, RequiredVectorWidth<512>] in { 1346 def cmpw512_mask : X86Builtin<"unsigned int(_Vector<32, short>, _Vector<32, short>, _Constant int, unsigned int)">; 1347} 1348 1349let Features = "avx512vl,avx512bw", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 1350 def ucmpb128_mask : X86Builtin<"unsigned short(_Vector<16, char>, _Vector<16, char>, _Constant int, unsigned short)">; 1351} 1352 1353let Features = "avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 1354 def ucmpd128_mask : X86Builtin<"unsigned char(_Vector<4, int>, _Vector<4, int>, _Constant int, unsigned char)">; 1355 def ucmpq128_mask : X86Builtin<"unsigned char(_Vector<2, long long int>, _Vector<2, long long int>, _Constant int, unsigned char)">; 1356} 1357 1358let Features = "avx512vl,avx512bw", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 1359 def ucmpw128_mask : X86Builtin<"unsigned char(_Vector<8, short>, _Vector<8, short>, _Constant int, unsigned char)">; 1360} 1361 1362let Features = "avx512vl,avx512bw", Attributes = [NoThrow, Const, RequiredVectorWidth<256>] in { 1363 def ucmpb256_mask : X86Builtin<"unsigned int(_Vector<32, char>, _Vector<32, char>, _Constant int, unsigned int)">; 1364} 1365 1366let Features = "avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<256>] in { 1367 def ucmpd256_mask : X86Builtin<"unsigned char(_Vector<8, int>, _Vector<8, int>, _Constant int, unsigned char)">; 1368 def ucmpq256_mask : X86Builtin<"unsigned char(_Vector<4, long long int>, _Vector<4, long long int>, _Constant int, unsigned char)">; 1369} 1370 1371let Features = "avx512vl,avx512bw", Attributes = [NoThrow, Const, RequiredVectorWidth<256>] in { 1372 def ucmpw256_mask : X86Builtin<"unsigned short(_Vector<16, short>, _Vector<16, short>, _Constant int, unsigned short)">; 1373} 1374 1375let Features = "avx512bw,evex512", Attributes = [NoThrow, Const, RequiredVectorWidth<512>] in { 1376 def ucmpb512_mask : X86Builtin<"unsigned long long int(_Vector<64, char>, _Vector<64, char>, _Constant int, unsigned long long int)">; 1377} 1378 1379let Features = "avx512f,evex512", Attributes = [NoThrow, Const, RequiredVectorWidth<512>] in { 1380 def ucmpd512_mask : X86Builtin<"unsigned short(_Vector<16, int>, _Vector<16, int>, _Constant int, unsigned short)">; 1381 def ucmpq512_mask : X86Builtin<"unsigned char(_Vector<8, long long int>, _Vector<8, long long int>, _Constant int, unsigned char)">; 1382} 1383 1384let Features = "avx512bw,evex512", Attributes = [NoThrow, Const, RequiredVectorWidth<512>] in { 1385 def ucmpw512_mask : X86Builtin<"unsigned int(_Vector<32, short>, _Vector<32, short>, _Constant int, unsigned int)">; 1386 def packssdw512 : X86Builtin<"_Vector<32, short>(_Vector<16, int>, _Vector<16, int>)">; 1387 def packsswb512 : X86Builtin<"_Vector<64, char>(_Vector<32, short>, _Vector<32, short>)">; 1388 def packusdw512 : X86Builtin<"_Vector<32, short>(_Vector<16, int>, _Vector<16, int>)">; 1389 def packuswb512 : X86Builtin<"_Vector<64, char>(_Vector<32, short>, _Vector<32, short>)">; 1390 def pavgb512 : X86Builtin<"_Vector<64, char>(_Vector<64, char>, _Vector<64, char>)">; 1391 def pavgw512 : X86Builtin<"_Vector<32, short>(_Vector<32, short>, _Vector<32, short>)">; 1392 def pshufb512 : X86Builtin<"_Vector<64, char>(_Vector<64, char>, _Vector<64, char>)">; 1393} 1394 1395let Features = "avx512cd,avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 1396 def vpconflictdi_128 : X86Builtin<"_Vector<2, long long int>(_Vector<2, long long int>)">; 1397} 1398 1399let Features = "avx512cd,avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<256>] in { 1400 def vpconflictdi_256 : X86Builtin<"_Vector<4, long long int>(_Vector<4, long long int>)">; 1401} 1402 1403let Features = "avx512cd,avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 1404 def vpconflictsi_128 : X86Builtin<"_Vector<4, int>(_Vector<4, int>)">; 1405} 1406 1407let Features = "avx512cd,avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<256>] in { 1408 def vpconflictsi_256 : X86Builtin<"_Vector<8, int>(_Vector<8, int>)">; 1409} 1410 1411let Features = "avx512cd,evex512", Attributes = [NoThrow, Const, RequiredVectorWidth<512>] in { 1412 def vpconflictdi_512 : X86Builtin<"_Vector<8, long long int>(_Vector<8, long long int>)">; 1413 def vpconflictsi_512 : X86Builtin<"_Vector<16, int>(_Vector<16, int>)">; 1414 def vplzcntd_512 : X86Builtin<"_Vector<16, int>(_Vector<16, int>)">; 1415 def vplzcntq_512 : X86Builtin<"_Vector<8, long long int>(_Vector<8, long long int>)">; 1416} 1417 1418let Features = "avx512vl,avx512bitalg", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 1419 def vpshufbitqmb128_mask : X86Builtin<"unsigned short(_Vector<16, char>, _Vector<16, char>, unsigned short)">; 1420} 1421 1422let Features = "avx512vl,avx512bitalg", Attributes = [NoThrow, Const, RequiredVectorWidth<256>] in { 1423 def vpshufbitqmb256_mask : X86Builtin<"unsigned int(_Vector<32, char>, _Vector<32, char>, unsigned int)">; 1424} 1425 1426let Features = "avx512bitalg,evex512", Attributes = [NoThrow, Const, RequiredVectorWidth<512>] in { 1427 def vpshufbitqmb512_mask : X86Builtin<"unsigned long long int(_Vector<64, char>, _Vector<64, char>, unsigned long long int)">; 1428} 1429 1430let Features = "avx512bw,evex512", Attributes = [NoThrow, Const, RequiredVectorWidth<512>] in { 1431 def pmulhrsw512 : X86Builtin<"_Vector<32, short>(_Vector<32, short>, _Vector<32, short>)">; 1432 def pmulhuw512 : X86Builtin<"_Vector<32, short>(_Vector<32, short>, _Vector<32, short>)">; 1433 def pmulhw512 : X86Builtin<"_Vector<32, short>(_Vector<32, short>, _Vector<32, short>)">; 1434} 1435 1436let Features = "avx512f,evex512", Attributes = [NoThrow, Const, RequiredVectorWidth<512>] in { 1437 def addpd512 : X86Builtin<"_Vector<8, double>(_Vector<8, double>, _Vector<8, double>, _Constant int)">; 1438 def addps512 : X86Builtin<"_Vector<16, float>(_Vector<16, float>, _Vector<16, float>, _Constant int)">; 1439 def divpd512 : X86Builtin<"_Vector<8, double>(_Vector<8, double>, _Vector<8, double>, _Constant int)">; 1440 def divps512 : X86Builtin<"_Vector<16, float>(_Vector<16, float>, _Vector<16, float>, _Constant int)">; 1441 def mulpd512 : X86Builtin<"_Vector<8, double>(_Vector<8, double>, _Vector<8, double>, _Constant int)">; 1442 def mulps512 : X86Builtin<"_Vector<16, float>(_Vector<16, float>, _Vector<16, float>, _Constant int)">; 1443 def subpd512 : X86Builtin<"_Vector<8, double>(_Vector<8, double>, _Vector<8, double>, _Constant int)">; 1444 def subps512 : X86Builtin<"_Vector<16, float>(_Vector<16, float>, _Vector<16, float>, _Constant int)">; 1445} 1446 1447let Features = "avx512bw,evex512", Attributes = [NoThrow, Const, RequiredVectorWidth<512>] in { 1448 def pmaddubsw512 : X86Builtin<"_Vector<32, short>(_Vector<64, char>, _Vector<64, char>)">; 1449 def pmaddwd512 : X86Builtin<"_Vector<16, int>(_Vector<32, short>, _Vector<32, short>)">; 1450} 1451 1452let Features = "avx512f", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 1453 def addss_round_mask : X86Builtin<"_Vector<4, float>(_Vector<4, float>, _Vector<4, float>, _Vector<4, float>, unsigned char, _Constant int)">; 1454 def divss_round_mask : X86Builtin<"_Vector<4, float>(_Vector<4, float>, _Vector<4, float>, _Vector<4, float>, unsigned char, _Constant int)">; 1455 def mulss_round_mask : X86Builtin<"_Vector<4, float>(_Vector<4, float>, _Vector<4, float>, _Vector<4, float>, unsigned char, _Constant int)">; 1456 def subss_round_mask : X86Builtin<"_Vector<4, float>(_Vector<4, float>, _Vector<4, float>, _Vector<4, float>, unsigned char, _Constant int)">; 1457 def maxss_round_mask : X86Builtin<"_Vector<4, float>(_Vector<4, float>, _Vector<4, float>, _Vector<4, float>, unsigned char, _Constant int)">; 1458 def minss_round_mask : X86Builtin<"_Vector<4, float>(_Vector<4, float>, _Vector<4, float>, _Vector<4, float>, unsigned char, _Constant int)">; 1459 def addsd_round_mask : X86Builtin<"_Vector<2, double>(_Vector<2, double>, _Vector<2, double>, _Vector<2, double>, unsigned char, _Constant int)">; 1460 def divsd_round_mask : X86Builtin<"_Vector<2, double>(_Vector<2, double>, _Vector<2, double>, _Vector<2, double>, unsigned char, _Constant int)">; 1461 def mulsd_round_mask : X86Builtin<"_Vector<2, double>(_Vector<2, double>, _Vector<2, double>, _Vector<2, double>, unsigned char, _Constant int)">; 1462 def subsd_round_mask : X86Builtin<"_Vector<2, double>(_Vector<2, double>, _Vector<2, double>, _Vector<2, double>, unsigned char, _Constant int)">; 1463 def maxsd_round_mask : X86Builtin<"_Vector<2, double>(_Vector<2, double>, _Vector<2, double>, _Vector<2, double>, unsigned char, _Constant int)">; 1464 def minsd_round_mask : X86Builtin<"_Vector<2, double>(_Vector<2, double>, _Vector<2, double>, _Vector<2, double>, unsigned char, _Constant int)">; 1465} 1466 1467let Features = "avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 1468 def compressdf128_mask : X86Builtin<"_Vector<2, double>(_Vector<2, double>, _Vector<2, double>, unsigned char)">; 1469} 1470 1471let Features = "avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<256>] in { 1472 def compressdf256_mask : X86Builtin<"_Vector<4, double>(_Vector<4, double>, _Vector<4, double>, unsigned char)">; 1473} 1474 1475let Features = "avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 1476 def compressdi128_mask : X86Builtin<"_Vector<2, long long int>(_Vector<2, long long int>, _Vector<2, long long int>, unsigned char)">; 1477} 1478 1479let Features = "avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<256>] in { 1480 def compressdi256_mask : X86Builtin<"_Vector<4, long long int>(_Vector<4, long long int>, _Vector<4, long long int>, unsigned char)">; 1481} 1482 1483let Features = "avx512vl,avx512vbmi2", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 1484 def compresshi128_mask : X86Builtin<"_Vector<8, short>(_Vector<8, short>, _Vector<8, short>, unsigned char)">; 1485} 1486 1487let Features = "avx512vl,avx512vbmi2", Attributes = [NoThrow, Const, RequiredVectorWidth<256>] in { 1488 def compresshi256_mask : X86Builtin<"_Vector<16, short>(_Vector<16, short>, _Vector<16, short>, unsigned short)">; 1489} 1490 1491let Features = "avx512vl,avx512vbmi2", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 1492 def compressqi128_mask : X86Builtin<"_Vector<16, char>(_Vector<16, char>, _Vector<16, char>, unsigned short)">; 1493} 1494 1495let Features = "avx512vl,avx512vbmi2", Attributes = [NoThrow, Const, RequiredVectorWidth<256>] in { 1496 def compressqi256_mask : X86Builtin<"_Vector<32, char>(_Vector<32, char>, _Vector<32, char>, unsigned int)">; 1497} 1498 1499let Features = "avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 1500 def compresssf128_mask : X86Builtin<"_Vector<4, float>(_Vector<4, float>, _Vector<4, float>, unsigned char)">; 1501} 1502 1503let Features = "avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<256>] in { 1504 def compresssf256_mask : X86Builtin<"_Vector<8, float>(_Vector<8, float>, _Vector<8, float>, unsigned char)">; 1505} 1506 1507let Features = "avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 1508 def compresssi128_mask : X86Builtin<"_Vector<4, int>(_Vector<4, int>, _Vector<4, int>, unsigned char)">; 1509} 1510 1511let Features = "avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<256>] in { 1512 def compresssi256_mask : X86Builtin<"_Vector<8, int>(_Vector<8, int>, _Vector<8, int>, unsigned char)">; 1513} 1514 1515let Features = "avx512vl", Attributes = [NoThrow, RequiredVectorWidth<128>] in { 1516 def compressstoredf128_mask : X86Builtin<"void(_Vector<2, double *>, _Vector<2, double>, unsigned char)">; 1517} 1518 1519let Features = "avx512vl", Attributes = [NoThrow, RequiredVectorWidth<256>] in { 1520 def compressstoredf256_mask : X86Builtin<"void(_Vector<4, double *>, _Vector<4, double>, unsigned char)">; 1521} 1522 1523let Features = "avx512vl", Attributes = [NoThrow, RequiredVectorWidth<128>] in { 1524 def compressstoredi128_mask : X86Builtin<"void(_Vector<2, long long int *>, _Vector<2, long long int>, unsigned char)">; 1525} 1526 1527let Features = "avx512vl", Attributes = [NoThrow, RequiredVectorWidth<256>] in { 1528 def compressstoredi256_mask : X86Builtin<"void(_Vector<4, long long int *>, _Vector<4, long long int>, unsigned char)">; 1529} 1530 1531let Features = "avx512vl,avx512vbmi2", Attributes = [NoThrow, RequiredVectorWidth<128>] in { 1532 def compressstorehi128_mask : X86Builtin<"void(_Vector<8, short *>, _Vector<8, short>, unsigned char)">; 1533} 1534 1535let Features = "avx512vl,avx512vbmi2", Attributes = [NoThrow, RequiredVectorWidth<256>] in { 1536 def compressstorehi256_mask : X86Builtin<"void(_Vector<16, short *>, _Vector<16, short>, unsigned short)">; 1537} 1538 1539let Features = "avx512vl,avx512vbmi2", Attributes = [NoThrow, RequiredVectorWidth<128>] in { 1540 def compressstoreqi128_mask : X86Builtin<"void(_Vector<16, char *>, _Vector<16, char>, unsigned short)">; 1541} 1542 1543let Features = "avx512vl,avx512vbmi2", Attributes = [NoThrow, RequiredVectorWidth<256>] in { 1544 def compressstoreqi256_mask : X86Builtin<"void(_Vector<32, char *>, _Vector<32, char>, unsigned int)">; 1545} 1546 1547let Features = "avx512vl", Attributes = [NoThrow, RequiredVectorWidth<128>] in { 1548 def compressstoresf128_mask : X86Builtin<"void(_Vector<4, float *>, _Vector<4, float>, unsigned char)">; 1549} 1550 1551let Features = "avx512vl", Attributes = [NoThrow, RequiredVectorWidth<256>] in { 1552 def compressstoresf256_mask : X86Builtin<"void(_Vector<8, float *>, _Vector<8, float>, unsigned char)">; 1553} 1554 1555let Features = "avx512vl", Attributes = [NoThrow, RequiredVectorWidth<128>] in { 1556 def compressstoresi128_mask : X86Builtin<"void(_Vector<4, int *>, _Vector<4, int>, unsigned char)">; 1557} 1558 1559let Features = "avx512vl", Attributes = [NoThrow, RequiredVectorWidth<256>] in { 1560 def compressstoresi256_mask : X86Builtin<"void(_Vector<8, int *>, _Vector<8, int>, unsigned char)">; 1561} 1562 1563let Features = "avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 1564 def cvtpd2dq128_mask : X86Builtin<"_Vector<4, int>(_Vector<2, double>, _Vector<4, int>, unsigned char)">; 1565 def cvtpd2ps_mask : X86Builtin<"_Vector<4, float>(_Vector<2, double>, _Vector<4, float>, unsigned char)">; 1566 def cvtpd2udq128_mask : X86Builtin<"_Vector<4, int>(_Vector<2, double>, _Vector<4, int>, unsigned char)">; 1567} 1568 1569let Features = "avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<256>] in { 1570 def cvtpd2udq256_mask : X86Builtin<"_Vector<4, int>(_Vector<4, double>, _Vector<4, int>, unsigned char)">; 1571} 1572 1573let Features = "avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 1574 def cvtps2udq128_mask : X86Builtin<"_Vector<4, int>(_Vector<4, float>, _Vector<4, int>, unsigned char)">; 1575} 1576 1577let Features = "avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<256>] in { 1578 def cvtps2udq256_mask : X86Builtin<"_Vector<8, int>(_Vector<8, float>, _Vector<8, int>, unsigned char)">; 1579} 1580 1581let Features = "avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 1582 def cvttpd2dq128_mask : X86Builtin<"_Vector<4, int>(_Vector<2, double>, _Vector<4, int>, unsigned char)">; 1583 def cvttpd2udq128_mask : X86Builtin<"_Vector<4, int>(_Vector<2, double>, _Vector<4, int>, unsigned char)">; 1584} 1585 1586let Features = "avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<256>] in { 1587 def cvttpd2udq256_mask : X86Builtin<"_Vector<4, int>(_Vector<4, double>, _Vector<4, int>, unsigned char)">; 1588} 1589 1590let Features = "avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 1591 def cvttps2udq128_mask : X86Builtin<"_Vector<4, int>(_Vector<4, float>, _Vector<4, int>, unsigned char)">; 1592} 1593 1594let Features = "avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<256>] in { 1595 def cvttps2udq256_mask : X86Builtin<"_Vector<8, int>(_Vector<8, float>, _Vector<8, int>, unsigned char)">; 1596} 1597 1598let Features = "avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 1599 def expanddf128_mask : X86Builtin<"_Vector<2, double>(_Vector<2, double>, _Vector<2, double>, unsigned char)">; 1600} 1601 1602let Features = "avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<256>] in { 1603 def expanddf256_mask : X86Builtin<"_Vector<4, double>(_Vector<4, double>, _Vector<4, double>, unsigned char)">; 1604} 1605 1606let Features = "avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 1607 def expanddi128_mask : X86Builtin<"_Vector<2, long long int>(_Vector<2, long long int>, _Vector<2, long long int>, unsigned char)">; 1608} 1609 1610let Features = "avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<256>] in { 1611 def expanddi256_mask : X86Builtin<"_Vector<4, long long int>(_Vector<4, long long int>, _Vector<4, long long int>, unsigned char)">; 1612} 1613 1614let Features = "avx512vl,avx512vbmi2", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 1615 def expandhi128_mask : X86Builtin<"_Vector<8, short>(_Vector<8, short>, _Vector<8, short>, unsigned char)">; 1616} 1617 1618let Features = "avx512vl,avx512vbmi2", Attributes = [NoThrow, Const, RequiredVectorWidth<256>] in { 1619 def expandhi256_mask : X86Builtin<"_Vector<16, short>(_Vector<16, short>, _Vector<16, short>, unsigned short)">; 1620} 1621 1622let Features = "avx512vl,avx512vbmi2", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 1623 def expandqi128_mask : X86Builtin<"_Vector<16, char>(_Vector<16, char>, _Vector<16, char>, unsigned short)">; 1624} 1625 1626let Features = "avx512vl,avx512vbmi2", Attributes = [NoThrow, Const, RequiredVectorWidth<256>] in { 1627 def expandqi256_mask : X86Builtin<"_Vector<32, char>(_Vector<32, char>, _Vector<32, char>, unsigned int)">; 1628} 1629 1630let Features = "avx512vl", Attributes = [NoThrow, RequiredVectorWidth<128>] in { 1631 def expandloaddf128_mask : X86Builtin<"_Vector<2, double>(_Vector<2, double const *>, _Vector<2, double>, unsigned char)">; 1632} 1633 1634let Features = "avx512vl", Attributes = [NoThrow, RequiredVectorWidth<256>] in { 1635 def expandloaddf256_mask : X86Builtin<"_Vector<4, double>(_Vector<4, double const *>, _Vector<4, double>, unsigned char)">; 1636} 1637 1638let Features = "avx512vl", Attributes = [NoThrow, RequiredVectorWidth<128>] in { 1639 def expandloaddi128_mask : X86Builtin<"_Vector<4, int>(_Vector<2, long long int const *>, _Vector<2, long long int>, unsigned char)">; 1640} 1641 1642let Features = "avx512vl", Attributes = [NoThrow, RequiredVectorWidth<256>] in { 1643 def expandloaddi256_mask : X86Builtin<"_Vector<4, long long int>(_Vector<4, long long int const *>, _Vector<4, long long int>, unsigned char)">; 1644} 1645 1646let Features = "avx512vl,avx512vbmi2", Attributes = [NoThrow, RequiredVectorWidth<128>] in { 1647 def expandloadhi128_mask : X86Builtin<"_Vector<8, short>(_Vector<8, short const *>, _Vector<8, short>, unsigned char)">; 1648} 1649 1650let Features = "avx512vl,avx512vbmi2", Attributes = [NoThrow, RequiredVectorWidth<256>] in { 1651 def expandloadhi256_mask : X86Builtin<"_Vector<16, short>(_Vector<16, short const *>, _Vector<16, short>, unsigned short)">; 1652} 1653 1654let Features = "avx512vl,avx512vbmi2", Attributes = [NoThrow, RequiredVectorWidth<128>] in { 1655 def expandloadqi128_mask : X86Builtin<"_Vector<16, char>(_Vector<16, char const *>, _Vector<16, char>, unsigned short)">; 1656} 1657 1658let Features = "avx512vl,avx512vbmi2", Attributes = [NoThrow, RequiredVectorWidth<256>] in { 1659 def expandloadqi256_mask : X86Builtin<"_Vector<32, char>(_Vector<32, char const *>, _Vector<32, char>, unsigned int)">; 1660} 1661 1662let Features = "avx512vl", Attributes = [NoThrow, RequiredVectorWidth<128>] in { 1663 def expandloadsf128_mask : X86Builtin<"_Vector<4, float>(_Vector<4, float const *>, _Vector<4, float>, unsigned char)">; 1664} 1665 1666let Features = "avx512vl", Attributes = [NoThrow, RequiredVectorWidth<256>] in { 1667 def expandloadsf256_mask : X86Builtin<"_Vector<8, float>(_Vector<8, float const *>, _Vector<8, float>, unsigned char)">; 1668} 1669 1670let Features = "avx512vl", Attributes = [NoThrow, RequiredVectorWidth<128>] in { 1671 def expandloadsi128_mask : X86Builtin<"_Vector<4, int>(_Vector<4, int const *>, _Vector<4, int>, unsigned char)">; 1672} 1673 1674let Features = "avx512vl", Attributes = [NoThrow, RequiredVectorWidth<256>] in { 1675 def expandloadsi256_mask : X86Builtin<"_Vector<8, int>(_Vector<8, int const *>, _Vector<8, int>, unsigned char)">; 1676} 1677 1678let Features = "avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 1679 def expandsf128_mask : X86Builtin<"_Vector<4, float>(_Vector<4, float>, _Vector<4, float>, unsigned char)">; 1680} 1681 1682let Features = "avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<256>] in { 1683 def expandsf256_mask : X86Builtin<"_Vector<8, float>(_Vector<8, float>, _Vector<8, float>, unsigned char)">; 1684} 1685 1686let Features = "avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 1687 def expandsi128_mask : X86Builtin<"_Vector<4, int>(_Vector<4, int>, _Vector<4, int>, unsigned char)">; 1688} 1689 1690let Features = "avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<256>] in { 1691 def expandsi256_mask : X86Builtin<"_Vector<8, int>(_Vector<8, int>, _Vector<8, int>, unsigned char)">; 1692} 1693 1694let Features = "avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 1695 def getexppd128_mask : X86Builtin<"_Vector<2, double>(_Vector<2, double>, _Vector<2, double>, unsigned char)">; 1696} 1697 1698let Features = "avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<256>] in { 1699 def getexppd256_mask : X86Builtin<"_Vector<4, double>(_Vector<4, double>, _Vector<4, double>, unsigned char)">; 1700} 1701 1702let Features = "avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 1703 def getexpps128_mask : X86Builtin<"_Vector<4, float>(_Vector<4, float>, _Vector<4, float>, unsigned char)">; 1704} 1705 1706let Features = "avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<256>] in { 1707 def getexpps256_mask : X86Builtin<"_Vector<8, float>(_Vector<8, float>, _Vector<8, float>, unsigned char)">; 1708} 1709 1710let Features = "avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 1711 def rndscalepd_128_mask : X86Builtin<"_Vector<2, double>(_Vector<2, double>, _Constant int, _Vector<2, double>, unsigned char)">; 1712} 1713 1714let Features = "avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<256>] in { 1715 def rndscalepd_256_mask : X86Builtin<"_Vector<4, double>(_Vector<4, double>, _Constant int, _Vector<4, double>, unsigned char)">; 1716} 1717 1718let Features = "avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 1719 def rndscaleps_128_mask : X86Builtin<"_Vector<4, float>(_Vector<4, float>, _Constant int, _Vector<4, float>, unsigned char)">; 1720} 1721 1722let Features = "avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<256>] in { 1723 def rndscaleps_256_mask : X86Builtin<"_Vector<8, float>(_Vector<8, float>, _Constant int, _Vector<8, float>, unsigned char)">; 1724} 1725 1726let Features = "avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 1727 def scalefpd128_mask : X86Builtin<"_Vector<2, double>(_Vector<2, double>, _Vector<2, double>, _Vector<2, double>, unsigned char)">; 1728} 1729 1730let Features = "avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<256>] in { 1731 def scalefpd256_mask : X86Builtin<"_Vector<4, double>(_Vector<4, double>, _Vector<4, double>, _Vector<4, double>, unsigned char)">; 1732} 1733 1734let Features = "avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 1735 def scalefps128_mask : X86Builtin<"_Vector<4, float>(_Vector<4, float>, _Vector<4, float>, _Vector<4, float>, unsigned char)">; 1736} 1737 1738let Features = "avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<256>] in { 1739 def scalefps256_mask : X86Builtin<"_Vector<8, float>(_Vector<8, float>, _Vector<8, float>, _Vector<8, float>, unsigned char)">; 1740} 1741 1742let Features = "avx512vl", Attributes = [NoThrow, RequiredVectorWidth<128>] in { 1743 def scatterdiv2df : X86Builtin<"void(void *, unsigned char, _Vector<2, long long int>, _Vector<2, double>, _Constant int)">; 1744 def scatterdiv2di : X86Builtin<"void(void *, unsigned char, _Vector<2, long long int>, _Vector<2, long long int>, _Constant int)">; 1745} 1746 1747let Features = "avx512vl", Attributes = [NoThrow, RequiredVectorWidth<256>] in { 1748 def scatterdiv4df : X86Builtin<"void(void *, unsigned char, _Vector<4, long long int>, _Vector<4, double>, _Constant int)">; 1749 def scatterdiv4di : X86Builtin<"void(void *, unsigned char, _Vector<4, long long int>, _Vector<4, long long int>, _Constant int)">; 1750} 1751 1752let Features = "avx512vl", Attributes = [NoThrow, RequiredVectorWidth<128>] in { 1753 def scatterdiv4sf : X86Builtin<"void(void *, unsigned char, _Vector<2, long long int>, _Vector<4, float>, _Constant int)">; 1754 def scatterdiv4si : X86Builtin<"void(void *, unsigned char, _Vector<2, long long int>, _Vector<4, int>, _Constant int)">; 1755} 1756 1757let Features = "avx512vl", Attributes = [NoThrow, RequiredVectorWidth<256>] in { 1758 def scatterdiv8sf : X86Builtin<"void(void *, unsigned char, _Vector<4, long long int>, _Vector<4, float>, _Constant int)">; 1759 def scatterdiv8si : X86Builtin<"void(void *, unsigned char, _Vector<4, long long int>, _Vector<4, int>, _Constant int)">; 1760} 1761 1762let Features = "avx512vl", Attributes = [NoThrow, RequiredVectorWidth<128>] in { 1763 def scattersiv2df : X86Builtin<"void(void *, unsigned char, _Vector<4, int>, _Vector<2, double>, _Constant int)">; 1764 def scattersiv2di : X86Builtin<"void(void *, unsigned char, _Vector<4, int>, _Vector<2, long long int>, _Constant int)">; 1765} 1766 1767let Features = "avx512vl", Attributes = [NoThrow, RequiredVectorWidth<256>] in { 1768 def scattersiv4df : X86Builtin<"void(void *, unsigned char, _Vector<4, int>, _Vector<4, double>, _Constant int)">; 1769 def scattersiv4di : X86Builtin<"void(void *, unsigned char, _Vector<4, int>, _Vector<4, long long int>, _Constant int)">; 1770} 1771 1772let Features = "avx512vl", Attributes = [NoThrow, RequiredVectorWidth<128>] in { 1773 def scattersiv4sf : X86Builtin<"void(void *, unsigned char, _Vector<4, int>, _Vector<4, float>, _Constant int)">; 1774 def scattersiv4si : X86Builtin<"void(void *, unsigned char, _Vector<4, int>, _Vector<4, int>, _Constant int)">; 1775} 1776 1777let Features = "avx512vl", Attributes = [NoThrow, RequiredVectorWidth<256>] in { 1778 def scattersiv8sf : X86Builtin<"void(void *, unsigned char, _Vector<8, int>, _Vector<8, float>, _Constant int)">; 1779 def scattersiv8si : X86Builtin<"void(void *, unsigned char, _Vector<8, int>, _Vector<8, int>, _Constant int)">; 1780} 1781 1782let Features = "avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 1783 def vpermi2vard128 : X86Builtin<"_Vector<4, int>(_Vector<4, int>, _Vector<4, int>, _Vector<4, int>)">; 1784} 1785 1786let Features = "avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<256>] in { 1787 def vpermi2vard256 : X86Builtin<"_Vector<8, int>(_Vector<8, int>, _Vector<8, int>, _Vector<8, int>)">; 1788} 1789 1790let Features = "avx512f,evex512", Attributes = [NoThrow, Const, RequiredVectorWidth<512>] in { 1791 def vpermi2vard512 : X86Builtin<"_Vector<16, int>(_Vector<16, int>, _Vector<16, int>, _Vector<16, int>)">; 1792} 1793 1794let Features = "avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 1795 def vpermi2varpd128 : X86Builtin<"_Vector<2, double>(_Vector<2, double>, _Vector<2, long long int>, _Vector<2, double>)">; 1796} 1797 1798let Features = "avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<256>] in { 1799 def vpermi2varpd256 : X86Builtin<"_Vector<4, double>(_Vector<4, double>, _Vector<4, long long int>, _Vector<4, double>)">; 1800} 1801 1802let Features = "avx512f,evex512", Attributes = [NoThrow, Const, RequiredVectorWidth<512>] in { 1803 def vpermi2varpd512 : X86Builtin<"_Vector<8, double>(_Vector<8, double>, _Vector<8, long long int>, _Vector<8, double>)">; 1804} 1805 1806let Features = "avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 1807 def vpermi2varps128 : X86Builtin<"_Vector<4, float>(_Vector<4, float>, _Vector<4, int>, _Vector<4, float>)">; 1808} 1809 1810let Features = "avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<256>] in { 1811 def vpermi2varps256 : X86Builtin<"_Vector<8, float>(_Vector<8, float>, _Vector<8, int>, _Vector<8, float>)">; 1812} 1813 1814let Features = "avx512f,evex512", Attributes = [NoThrow, Const, RequiredVectorWidth<512>] in { 1815 def vpermi2varps512 : X86Builtin<"_Vector<16, float>(_Vector<16, float>, _Vector<16, int>, _Vector<16, float>)">; 1816} 1817 1818let Features = "avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 1819 def vpermi2varq128 : X86Builtin<"_Vector<2, long long int>(_Vector<2, long long int>, _Vector<2, long long int>, _Vector<2, long long int>)">; 1820} 1821 1822let Features = "avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<256>] in { 1823 def vpermi2varq256 : X86Builtin<"_Vector<4, long long int>(_Vector<4, long long int>, _Vector<4, long long int>, _Vector<4, long long int>)">; 1824} 1825 1826let Features = "avx512f,evex512", Attributes = [NoThrow, Const, RequiredVectorWidth<512>] in { 1827 def vpermi2varq512 : X86Builtin<"_Vector<8, long long int>(_Vector<8, long long int>, _Vector<8, long long int>, _Vector<8, long long int>)">; 1828} 1829 1830let Features = "avx512vbmi,avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 1831 def vpermi2varqi128 : X86Builtin<"_Vector<16, char>(_Vector<16, char>, _Vector<16, char>, _Vector<16, char>)">; 1832} 1833 1834let Features = "avx512vbmi,avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<256>] in { 1835 def vpermi2varqi256 : X86Builtin<"_Vector<32, char>(_Vector<32, char>, _Vector<32, char>, _Vector<32, char>)">; 1836} 1837 1838let Features = "avx512vbmi,evex512", Attributes = [NoThrow, Const, RequiredVectorWidth<512>] in { 1839 def vpermi2varqi512 : X86Builtin<"_Vector<64, char>(_Vector<64, char>, _Vector<64, char>, _Vector<64, char>)">; 1840} 1841 1842let Features = "avx512vl,avx512bw", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 1843 def vpermi2varhi128 : X86Builtin<"_Vector<8, short>(_Vector<8, short>, _Vector<8, short>, _Vector<8, short>)">; 1844} 1845 1846let Features = "avx512vl,avx512bw", Attributes = [NoThrow, Const, RequiredVectorWidth<256>] in { 1847 def vpermi2varhi256 : X86Builtin<"_Vector<16, short>(_Vector<16, short>, _Vector<16, short>, _Vector<16, short>)">; 1848} 1849 1850let Features = "avx512bw,evex512", Attributes = [NoThrow, Const, RequiredVectorWidth<512>] in { 1851 def vpermi2varhi512 : X86Builtin<"_Vector<32, short>(_Vector<32, short>, _Vector<32, short>, _Vector<32, short>)">; 1852} 1853 1854let Features = "avx512vl,avx512vbmi2", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 1855 def vpshldd128 : X86Builtin<"_Vector<4, int>(_Vector<4, int>, _Vector<4, int>, _Constant int)">; 1856} 1857 1858let Features = "avx512vl,avx512vbmi2", Attributes = [NoThrow, Const, RequiredVectorWidth<256>] in { 1859 def vpshldd256 : X86Builtin<"_Vector<8, int>(_Vector<8, int>, _Vector<8, int>, _Constant int)">; 1860} 1861 1862let Features = "avx512vbmi2,evex512", Attributes = [NoThrow, Const, RequiredVectorWidth<512>] in { 1863 def vpshldd512 : X86Builtin<"_Vector<16, int>(_Vector<16, int>, _Vector<16, int>, _Constant int)">; 1864} 1865 1866let Features = "avx512vl,avx512vbmi2", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 1867 def vpshldq128 : X86Builtin<"_Vector<2, long long int>(_Vector<2, long long int>, _Vector<2, long long int>, _Constant int)">; 1868} 1869 1870let Features = "avx512vl,avx512vbmi2", Attributes = [NoThrow, Const, RequiredVectorWidth<256>] in { 1871 def vpshldq256 : X86Builtin<"_Vector<4, long long int>(_Vector<4, long long int>, _Vector<4, long long int>, _Constant int)">; 1872} 1873 1874let Features = "avx512vbmi2,evex512", Attributes = [NoThrow, Const, RequiredVectorWidth<512>] in { 1875 def vpshldq512 : X86Builtin<"_Vector<8, long long int>(_Vector<8, long long int>, _Vector<8, long long int>, _Constant int)">; 1876} 1877 1878let Features = "avx512vl,avx512vbmi2", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 1879 def vpshldw128 : X86Builtin<"_Vector<8, short>(_Vector<8, short>, _Vector<8, short>, _Constant int)">; 1880} 1881 1882let Features = "avx512vl,avx512vbmi2", Attributes = [NoThrow, Const, RequiredVectorWidth<256>] in { 1883 def vpshldw256 : X86Builtin<"_Vector<16, short>(_Vector<16, short>, _Vector<16, short>, _Constant int)">; 1884} 1885 1886let Features = "avx512vbmi2,evex512", Attributes = [NoThrow, Const, RequiredVectorWidth<512>] in { 1887 def vpshldw512 : X86Builtin<"_Vector<32, short>(_Vector<32, short>, _Vector<32, short>, _Constant int)">; 1888} 1889 1890let Features = "avx512vl,avx512vbmi2", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 1891 def vpshldvd128 : X86Builtin<"_Vector<4, int>(_Vector<4, int>, _Vector<4, int>, _Vector<4, int>)">; 1892} 1893 1894let Features = "avx512vl,avx512vbmi2", Attributes = [NoThrow, Const, RequiredVectorWidth<256>] in { 1895 def vpshldvd256 : X86Builtin<"_Vector<8, int>(_Vector<8, int>, _Vector<8, int>, _Vector<8, int>)">; 1896} 1897 1898let Features = "avx512vbmi2,evex512", Attributes = [NoThrow, Const, RequiredVectorWidth<512>] in { 1899 def vpshldvd512 : X86Builtin<"_Vector<16, int>(_Vector<16, int>, _Vector<16, int>, _Vector<16, int>)">; 1900} 1901 1902let Features = "avx512vl,avx512vbmi2", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 1903 def vpshldvq128 : X86Builtin<"_Vector<2, long long int>(_Vector<2, long long int>, _Vector<2, long long int>, _Vector<2, long long int>)">; 1904} 1905 1906let Features = "avx512vl,avx512vbmi2", Attributes = [NoThrow, Const, RequiredVectorWidth<256>] in { 1907 def vpshldvq256 : X86Builtin<"_Vector<4, long long int>(_Vector<4, long long int>, _Vector<4, long long int>, _Vector<4, long long int>)">; 1908} 1909 1910let Features = "avx512vbmi2,evex512", Attributes = [NoThrow, Const, RequiredVectorWidth<512>] in { 1911 def vpshldvq512 : X86Builtin<"_Vector<8, long long int>(_Vector<8, long long int>, _Vector<8, long long int>, _Vector<8, long long int>)">; 1912} 1913 1914let Features = "avx512vl,avx512vbmi2", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 1915 def vpshldvw128 : X86Builtin<"_Vector<8, short>(_Vector<8, short>, _Vector<8, short>, _Vector<8, short>)">; 1916} 1917 1918let Features = "avx512vl,avx512vbmi2", Attributes = [NoThrow, Const, RequiredVectorWidth<256>] in { 1919 def vpshldvw256 : X86Builtin<"_Vector<16, short>(_Vector<16, short>, _Vector<16, short>, _Vector<16, short>)">; 1920} 1921 1922let Features = "avx512vbmi2,evex512", Attributes = [NoThrow, Const, RequiredVectorWidth<512>] in { 1923 def vpshldvw512 : X86Builtin<"_Vector<32, short>(_Vector<32, short>, _Vector<32, short>, _Vector<32, short>)">; 1924} 1925 1926let Features = "avx512vl,avx512vbmi2", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 1927 def vpshrdvd128 : X86Builtin<"_Vector<4, int>(_Vector<4, int>, _Vector<4, int>, _Vector<4, int>)">; 1928} 1929 1930let Features = "avx512vl,avx512vbmi2", Attributes = [NoThrow, Const, RequiredVectorWidth<256>] in { 1931 def vpshrdvd256 : X86Builtin<"_Vector<8, int>(_Vector<8, int>, _Vector<8, int>, _Vector<8, int>)">; 1932} 1933 1934let Features = "avx512vbmi2,evex512", Attributes = [NoThrow, Const, RequiredVectorWidth<512>] in { 1935 def vpshrdvd512 : X86Builtin<"_Vector<16, int>(_Vector<16, int>, _Vector<16, int>, _Vector<16, int>)">; 1936} 1937 1938let Features = "avx512vl,avx512vbmi2", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 1939 def vpshrdvq128 : X86Builtin<"_Vector<2, long long int>(_Vector<2, long long int>, _Vector<2, long long int>, _Vector<2, long long int>)">; 1940} 1941 1942let Features = "avx512vl,avx512vbmi2", Attributes = [NoThrow, Const, RequiredVectorWidth<256>] in { 1943 def vpshrdvq256 : X86Builtin<"_Vector<4, long long int>(_Vector<4, long long int>, _Vector<4, long long int>, _Vector<4, long long int>)">; 1944} 1945 1946let Features = "avx512vbmi2,evex512", Attributes = [NoThrow, Const, RequiredVectorWidth<512>] in { 1947 def vpshrdvq512 : X86Builtin<"_Vector<8, long long int>(_Vector<8, long long int>, _Vector<8, long long int>, _Vector<8, long long int>)">; 1948} 1949 1950let Features = "avx512vl,avx512vbmi2", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 1951 def vpshrdvw128 : X86Builtin<"_Vector<8, short>(_Vector<8, short>, _Vector<8, short>, _Vector<8, short>)">; 1952} 1953 1954let Features = "avx512vl,avx512vbmi2", Attributes = [NoThrow, Const, RequiredVectorWidth<256>] in { 1955 def vpshrdvw256 : X86Builtin<"_Vector<16, short>(_Vector<16, short>, _Vector<16, short>, _Vector<16, short>)">; 1956} 1957 1958let Features = "avx512vbmi2,evex512", Attributes = [NoThrow, Const, RequiredVectorWidth<512>] in { 1959 def vpshrdvw512 : X86Builtin<"_Vector<32, short>(_Vector<32, short>, _Vector<32, short>, _Vector<32, short>)">; 1960} 1961 1962let Features = "avx512vl,avx512vbmi2", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 1963 def vpshrdd128 : X86Builtin<"_Vector<4, int>(_Vector<4, int>, _Vector<4, int>, _Constant int)">; 1964} 1965 1966let Features = "avx512vl,avx512vbmi2", Attributes = [NoThrow, Const, RequiredVectorWidth<256>] in { 1967 def vpshrdd256 : X86Builtin<"_Vector<8, int>(_Vector<8, int>, _Vector<8, int>, _Constant int)">; 1968} 1969 1970let Features = "avx512vbmi2,evex512", Attributes = [NoThrow, Const, RequiredVectorWidth<512>] in { 1971 def vpshrdd512 : X86Builtin<"_Vector<16, int>(_Vector<16, int>, _Vector<16, int>, _Constant int)">; 1972} 1973 1974let Features = "avx512vl,avx512vbmi2", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 1975 def vpshrdq128 : X86Builtin<"_Vector<2, long long int>(_Vector<2, long long int>, _Vector<2, long long int>, _Constant int)">; 1976} 1977 1978let Features = "avx512vl,avx512vbmi2", Attributes = [NoThrow, Const, RequiredVectorWidth<256>] in { 1979 def vpshrdq256 : X86Builtin<"_Vector<4, long long int>(_Vector<4, long long int>, _Vector<4, long long int>, _Constant int)">; 1980} 1981 1982let Features = "avx512vbmi2,evex512", Attributes = [NoThrow, Const, RequiredVectorWidth<512>] in { 1983 def vpshrdq512 : X86Builtin<"_Vector<8, long long int>(_Vector<8, long long int>, _Vector<8, long long int>, _Constant int)">; 1984} 1985 1986let Features = "avx512vl,avx512vbmi2", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 1987 def vpshrdw128 : X86Builtin<"_Vector<8, short>(_Vector<8, short>, _Vector<8, short>, _Constant int)">; 1988} 1989 1990let Features = "avx512vl,avx512vbmi2", Attributes = [NoThrow, Const, RequiredVectorWidth<256>] in { 1991 def vpshrdw256 : X86Builtin<"_Vector<16, short>(_Vector<16, short>, _Vector<16, short>, _Constant int)">; 1992} 1993 1994let Features = "avx512vbmi2,evex512", Attributes = [NoThrow, Const, RequiredVectorWidth<512>] in { 1995 def vpshrdw512 : X86Builtin<"_Vector<32, short>(_Vector<32, short>, _Vector<32, short>, _Constant int)">; 1996} 1997 1998let Features = "avx512bw,evex512", Attributes = [NoThrow, Const, RequiredVectorWidth<512>] in { 1999 def pmovswb512_mask : X86Builtin<"_Vector<32, char>(_Vector<32, short>, _Vector<32, char>, unsigned int)">; 2000 def pmovuswb512_mask : X86Builtin<"_Vector<32, char>(_Vector<32, short>, _Vector<32, char>, unsigned int)">; 2001 def pmovwb512_mask : X86Builtin<"_Vector<32, char>(_Vector<32, short>, _Vector<32, char>, unsigned int)">; 2002} 2003 2004let Features = "avx512vl,avx512dq", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 2005 def cvtpd2qq128_mask : X86Builtin<"_Vector<2, long long int>(_Vector<2, double>, _Vector<2, long long int>, unsigned char)">; 2006} 2007 2008let Features = "avx512vl,avx512dq", Attributes = [NoThrow, Const, RequiredVectorWidth<256>] in { 2009 def cvtpd2qq256_mask : X86Builtin<"_Vector<4, long long int>(_Vector<4, double>, _Vector<4, long long int>, unsigned char)">; 2010} 2011 2012let Features = "avx512vl,avx512dq", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 2013 def cvtpd2uqq128_mask : X86Builtin<"_Vector<2, long long int>(_Vector<2, double>, _Vector<2, long long int>, unsigned char)">; 2014} 2015 2016let Features = "avx512vl,avx512dq", Attributes = [NoThrow, Const, RequiredVectorWidth<256>] in { 2017 def cvtpd2uqq256_mask : X86Builtin<"_Vector<4, long long int>(_Vector<4, double>, _Vector<4, long long int>, unsigned char)">; 2018} 2019 2020let Features = "avx512vl,avx512dq", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 2021 def cvtps2qq128_mask : X86Builtin<"_Vector<2, long long int>(_Vector<4, float>, _Vector<2, long long int>, unsigned char)">; 2022} 2023 2024let Features = "avx512vl,avx512dq", Attributes = [NoThrow, Const, RequiredVectorWidth<256>] in { 2025 def cvtps2qq256_mask : X86Builtin<"_Vector<4, long long int>(_Vector<4, float>, _Vector<4, long long int>, unsigned char)">; 2026} 2027 2028let Features = "avx512vl,avx512dq", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 2029 def cvtps2uqq128_mask : X86Builtin<"_Vector<2, long long int>(_Vector<4, float>, _Vector<2, long long int>, unsigned char)">; 2030} 2031 2032let Features = "avx512vl,avx512dq", Attributes = [NoThrow, Const, RequiredVectorWidth<256>] in { 2033 def cvtps2uqq256_mask : X86Builtin<"_Vector<4, long long int>(_Vector<4, float>, _Vector<4, long long int>, unsigned char)">; 2034} 2035 2036let Features = "avx512vl,avx512dq", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 2037 def cvtqq2ps128_mask : X86Builtin<"_Vector<4, float>(_Vector<2, long long int>, _Vector<4, float>, unsigned char)">; 2038 def cvttpd2qq128_mask : X86Builtin<"_Vector<2, long long int>(_Vector<2, double>, _Vector<2, long long int>, unsigned char)">; 2039} 2040 2041let Features = "avx512vl,avx512dq", Attributes = [NoThrow, Const, RequiredVectorWidth<256>] in { 2042 def cvttpd2qq256_mask : X86Builtin<"_Vector<4, long long int>(_Vector<4, double>, _Vector<4, long long int>, unsigned char)">; 2043} 2044 2045let Features = "avx512vl,avx512dq", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 2046 def cvttpd2uqq128_mask : X86Builtin<"_Vector<2, long long int>(_Vector<2, double>, _Vector<2, long long int>, unsigned char)">; 2047} 2048 2049let Features = "avx512vl,avx512dq", Attributes = [NoThrow, Const, RequiredVectorWidth<256>] in { 2050 def cvttpd2uqq256_mask : X86Builtin<"_Vector<4, long long int>(_Vector<4, double>, _Vector<4, long long int>, unsigned char)">; 2051} 2052 2053let Features = "avx512vl,avx512dq", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 2054 def cvttps2qq128_mask : X86Builtin<"_Vector<2, long long int>(_Vector<4, float>, _Vector<2, long long int>, unsigned char)">; 2055} 2056 2057let Features = "avx512vl,avx512dq", Attributes = [NoThrow, Const, RequiredVectorWidth<256>] in { 2058 def cvttps2qq256_mask : X86Builtin<"_Vector<4, long long int>(_Vector<4, float>, _Vector<4, long long int>, unsigned char)">; 2059} 2060 2061let Features = "avx512vl,avx512dq", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 2062 def cvttps2uqq128_mask : X86Builtin<"_Vector<2, long long int>(_Vector<4, float>, _Vector<2, long long int>, unsigned char)">; 2063} 2064 2065let Features = "avx512vl,avx512dq", Attributes = [NoThrow, Const, RequiredVectorWidth<256>] in { 2066 def cvttps2uqq256_mask : X86Builtin<"_Vector<4, long long int>(_Vector<4, float>, _Vector<4, long long int>, unsigned char)">; 2067} 2068 2069let Features = "avx512vl,avx512dq", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 2070 def cvtuqq2ps128_mask : X86Builtin<"_Vector<4, float>(_Vector<2, long long int>, _Vector<4, float>, unsigned char)">; 2071 def rangepd128_mask : X86Builtin<"_Vector<2, double>(_Vector<2, double>, _Vector<2, double>, _Constant int, _Vector<2, double>, unsigned char)">; 2072} 2073 2074let Features = "avx512vl,avx512dq", Attributes = [NoThrow, Const, RequiredVectorWidth<256>] in { 2075 def rangepd256_mask : X86Builtin<"_Vector<4, double>(_Vector<4, double>, _Vector<4, double>, _Constant int, _Vector<4, double>, unsigned char)">; 2076} 2077 2078let Features = "avx512vl,avx512dq", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 2079 def rangeps128_mask : X86Builtin<"_Vector<4, float>(_Vector<4, float>, _Vector<4, float>, _Constant int, _Vector<4, float>, unsigned char)">; 2080} 2081 2082let Features = "avx512vl,avx512dq", Attributes = [NoThrow, Const, RequiredVectorWidth<256>] in { 2083 def rangeps256_mask : X86Builtin<"_Vector<8, float>(_Vector<8, float>, _Vector<8, float>, _Constant int, _Vector<8, float>, unsigned char)">; 2084} 2085 2086let Features = "avx512dq", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 2087 def rangesd128_round_mask : X86Builtin<"_Vector<2, double>(_Vector<2, double>, _Vector<2, double>, _Vector<2, double>, unsigned char, _Constant int, _Constant int)">; 2088 def rangess128_round_mask : X86Builtin<"_Vector<4, float>(_Vector<4, float>, _Vector<4, float>, _Vector<4, float>, unsigned char, _Constant int, _Constant int)">; 2089} 2090 2091let Features = "avx512vl,avx512dq", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 2092 def reducepd128_mask : X86Builtin<"_Vector<2, double>(_Vector<2, double>, _Constant int, _Vector<2, double>, unsigned char)">; 2093} 2094 2095let Features = "avx512vl,avx512dq", Attributes = [NoThrow, Const, RequiredVectorWidth<256>] in { 2096 def reducepd256_mask : X86Builtin<"_Vector<4, double>(_Vector<4, double>, _Constant int, _Vector<4, double>, unsigned char)">; 2097} 2098 2099let Features = "avx512vl,avx512dq", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 2100 def reduceps128_mask : X86Builtin<"_Vector<4, float>(_Vector<4, float>, _Constant int, _Vector<4, float>, unsigned char)">; 2101} 2102 2103let Features = "avx512vl,avx512dq", Attributes = [NoThrow, Const, RequiredVectorWidth<256>] in { 2104 def reduceps256_mask : X86Builtin<"_Vector<8, float>(_Vector<8, float>, _Constant int, _Vector<8, float>, unsigned char)">; 2105} 2106 2107let Features = "avx512dq", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 2108 def reducesd_mask : X86Builtin<"_Vector<2, double>(_Vector<2, double>, _Vector<2, double>, _Vector<2, double>, unsigned char, _Constant int, _Constant int)">; 2109 def reducess_mask : X86Builtin<"_Vector<4, float>(_Vector<4, float>, _Vector<4, float>, _Vector<4, float>, unsigned char, _Constant int, _Constant int)">; 2110} 2111 2112let Features = "avx512vl,avx512bw", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 2113 def pmovswb128_mask : X86Builtin<"_Vector<16, char>(_Vector<8, short>, _Vector<16, char>, unsigned char)">; 2114} 2115 2116let Features = "avx512vl,avx512bw", Attributes = [NoThrow, Const, RequiredVectorWidth<256>] in { 2117 def pmovswb256_mask : X86Builtin<"_Vector<16, char>(_Vector<16, short>, _Vector<16, char>, unsigned short)">; 2118} 2119 2120let Features = "avx512vl,avx512bw", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 2121 def pmovuswb128_mask : X86Builtin<"_Vector<16, char>(_Vector<8, short>, _Vector<16, char>, unsigned char)">; 2122} 2123 2124let Features = "avx512vl,avx512bw", Attributes = [NoThrow, Const, RequiredVectorWidth<256>] in { 2125 def pmovuswb256_mask : X86Builtin<"_Vector<16, char>(_Vector<16, short>, _Vector<16, char>, unsigned short)">; 2126} 2127 2128let Features = "avx512vl,avx512bw", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 2129 def pmovwb128_mask : X86Builtin<"_Vector<16, char>(_Vector<8, short>, _Vector<16, char>, unsigned char)">; 2130} 2131 2132let Features = "avx512dq,evex512", Attributes = [NoThrow, Const, RequiredVectorWidth<512>] in { 2133 def cvtpd2qq512_mask : X86Builtin<"_Vector<8, long long int>(_Vector<8, double>, _Vector<8, long long int>, unsigned char, _Constant int)">; 2134 def cvtpd2uqq512_mask : X86Builtin<"_Vector<8, long long int>(_Vector<8, double>, _Vector<8, long long int>, unsigned char, _Constant int)">; 2135 def cvtps2qq512_mask : X86Builtin<"_Vector<8, long long int>(_Vector<8, float>, _Vector<8, long long int>, unsigned char, _Constant int)">; 2136 def cvtps2uqq512_mask : X86Builtin<"_Vector<8, long long int>(_Vector<8, float>, _Vector<8, long long int>, unsigned char, _Constant int)">; 2137 def cvtqq2pd512_mask : X86Builtin<"_Vector<8, double>(_Vector<8, long long int>, _Vector<8, double>, unsigned char, _Constant int)">; 2138 def cvtqq2ps512_mask : X86Builtin<"_Vector<8, float>(_Vector<8, long long int>, _Vector<8, float>, unsigned char, _Constant int)">; 2139 def cvttpd2qq512_mask : X86Builtin<"_Vector<8, long long int>(_Vector<8, double>, _Vector<8, long long int>, unsigned char, _Constant int)">; 2140 def cvttpd2uqq512_mask : X86Builtin<"_Vector<8, long long int>(_Vector<8, double>, _Vector<8, long long int>, unsigned char, _Constant int)">; 2141 def cvttps2qq512_mask : X86Builtin<"_Vector<8, long long int>(_Vector<8, float>, _Vector<8, long long int>, unsigned char, _Constant int)">; 2142 def cvttps2uqq512_mask : X86Builtin<"_Vector<8, long long int>(_Vector<8, float>, _Vector<8, long long int>, unsigned char, _Constant int)">; 2143 def cvtuqq2pd512_mask : X86Builtin<"_Vector<8, double>(_Vector<8, long long int>, _Vector<8, double>, unsigned char, _Constant int)">; 2144 def cvtuqq2ps512_mask : X86Builtin<"_Vector<8, float>(_Vector<8, long long int>, _Vector<8, float>, unsigned char, _Constant int)">; 2145 def rangepd512_mask : X86Builtin<"_Vector<8, double>(_Vector<8, double>, _Vector<8, double>, _Constant int, _Vector<8, double>, unsigned char, _Constant int)">; 2146 def rangeps512_mask : X86Builtin<"_Vector<16, float>(_Vector<16, float>, _Vector<16, float>, _Constant int, _Vector<16, float>, unsigned short, _Constant int)">; 2147 def reducepd512_mask : X86Builtin<"_Vector<8, double>(_Vector<8, double>, _Constant int, _Vector<8, double>, unsigned char, _Constant int)">; 2148 def reduceps512_mask : X86Builtin<"_Vector<16, float>(_Vector<16, float>, _Constant int, _Vector<16, float>, unsigned short, _Constant int)">; 2149} 2150 2151let Features = "avx512f,evex512", Attributes = [NoThrow, Const, RequiredVectorWidth<512>] in { 2152 def prold512 : X86Builtin<"_Vector<16, int>(_Vector<16, int>, _Constant int)">; 2153 def prolq512 : X86Builtin<"_Vector<8, long long int>(_Vector<8, long long int>, _Constant int)">; 2154} 2155 2156let Features = "avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 2157 def prold128 : X86Builtin<"_Vector<4, int>(_Vector<4, int>, _Constant int)">; 2158} 2159 2160let Features = "avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<256>] in { 2161 def prold256 : X86Builtin<"_Vector<8, int>(_Vector<8, int>, _Constant int)">; 2162} 2163 2164let Features = "avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 2165 def prolq128 : X86Builtin<"_Vector<2, long long int>(_Vector<2, long long int>, _Constant int)">; 2166} 2167 2168let Features = "avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<256>] in { 2169 def prolq256 : X86Builtin<"_Vector<4, long long int>(_Vector<4, long long int>, _Constant int)">; 2170} 2171 2172let Features = "avx512f,evex512", Attributes = [NoThrow, Const, RequiredVectorWidth<512>] in { 2173 def prolvd512 : X86Builtin<"_Vector<16, int>(_Vector<16, int>, _Vector<16, int>)">; 2174 def prolvq512 : X86Builtin<"_Vector<8, long long int>(_Vector<8, long long int>, _Vector<8, long long int>)">; 2175 def prord512 : X86Builtin<"_Vector<16, int>(_Vector<16, int>, _Constant int)">; 2176 def prorq512 : X86Builtin<"_Vector<8, long long int>(_Vector<8, long long int>, _Constant int)">; 2177} 2178 2179let Features = "avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 2180 def prolvd128 : X86Builtin<"_Vector<4, int>(_Vector<4, int>, _Vector<4, int>)">; 2181} 2182 2183let Features = "avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<256>] in { 2184 def prolvd256 : X86Builtin<"_Vector<8, int>(_Vector<8, int>, _Vector<8, int>)">; 2185} 2186 2187let Features = "avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 2188 def prolvq128 : X86Builtin<"_Vector<2, long long int>(_Vector<2, long long int>, _Vector<2, long long int>)">; 2189} 2190 2191let Features = "avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<256>] in { 2192 def prolvq256 : X86Builtin<"_Vector<4, long long int>(_Vector<4, long long int>, _Vector<4, long long int>)">; 2193} 2194 2195let Features = "avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 2196 def prord128 : X86Builtin<"_Vector<4, int>(_Vector<4, int>, _Constant int)">; 2197} 2198 2199let Features = "avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<256>] in { 2200 def prord256 : X86Builtin<"_Vector<8, int>(_Vector<8, int>, _Constant int)">; 2201} 2202 2203let Features = "avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 2204 def prorq128 : X86Builtin<"_Vector<2, long long int>(_Vector<2, long long int>, _Constant int)">; 2205} 2206 2207let Features = "avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<256>] in { 2208 def prorq256 : X86Builtin<"_Vector<4, long long int>(_Vector<4, long long int>, _Constant int)">; 2209} 2210 2211let Features = "avx512f,evex512", Attributes = [NoThrow, Const, RequiredVectorWidth<512>] in { 2212 def prorvd512 : X86Builtin<"_Vector<16, int>(_Vector<16, int>, _Vector<16, int>)">; 2213 def prorvq512 : X86Builtin<"_Vector<8, long long int>(_Vector<8, long long int>, _Vector<8, long long int>)">; 2214} 2215 2216let Features = "avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 2217 def prorvd128 : X86Builtin<"_Vector<4, int>(_Vector<4, int>, _Vector<4, int>)">; 2218} 2219 2220let Features = "avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<256>] in { 2221 def prorvd256 : X86Builtin<"_Vector<8, int>(_Vector<8, int>, _Vector<8, int>)">; 2222} 2223 2224let Features = "avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 2225 def prorvq128 : X86Builtin<"_Vector<2, long long int>(_Vector<2, long long int>, _Vector<2, long long int>)">; 2226} 2227 2228let Features = "avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<256>] in { 2229 def prorvq256 : X86Builtin<"_Vector<4, long long int>(_Vector<4, long long int>, _Vector<4, long long int>)">; 2230} 2231 2232let Features = "avx512bw,evex512", Attributes = [NoThrow, Const, RequiredVectorWidth<512>] in { 2233 def pshufhw512 : X86Builtin<"_Vector<32, short>(_Vector<32, short>, _Constant int)">; 2234 def pshuflw512 : X86Builtin<"_Vector<32, short>(_Vector<32, short>, _Constant int)">; 2235 def psllv32hi : X86Builtin<"_Vector<32, short>(_Vector<32, short>, _Vector<32, short>)">; 2236 def psllw512 : X86Builtin<"_Vector<32, short>(_Vector<32, short>, _Vector<8, short>)">; 2237 def psllwi512 : X86Builtin<"_Vector<32, short>(_Vector<32, short>, int)">; 2238} 2239 2240let Features = "avx512bw,avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<256>] in { 2241 def psllv16hi : X86Builtin<"_Vector<16, short>(_Vector<16, short>, _Vector<16, short>)">; 2242} 2243 2244let Features = "avx512bw,avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 2245 def psllv8hi : X86Builtin<"_Vector<8, short>(_Vector<8, short>, _Vector<8, short>)">; 2246} 2247 2248let Features = "avx512f,evex512", Attributes = [NoThrow, Const, RequiredVectorWidth<512>] in { 2249 def pslldi512 : X86Builtin<"_Vector<16, int>(_Vector<16, int>, int)">; 2250 def psllqi512 : X86Builtin<"_Vector<8, long long int>(_Vector<8, long long int>, int)">; 2251} 2252 2253let Features = "avx512bw,evex512", Attributes = [NoThrow, Const, RequiredVectorWidth<512>] in { 2254 def psrlv32hi : X86Builtin<"_Vector<32, short>(_Vector<32, short>, _Vector<32, short>)">; 2255} 2256 2257let Features = "avx512bw,avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<256>] in { 2258 def psrlv16hi : X86Builtin<"_Vector<16, short>(_Vector<16, short>, _Vector<16, short>)">; 2259} 2260 2261let Features = "avx512bw,avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 2262 def psrlv8hi : X86Builtin<"_Vector<8, short>(_Vector<8, short>, _Vector<8, short>)">; 2263} 2264 2265let Features = "avx512f,evex512", Attributes = [NoThrow, Const, RequiredVectorWidth<512>] in { 2266 def psrldi512 : X86Builtin<"_Vector<16, int>(_Vector<16, int>, int)">; 2267 def psrlqi512 : X86Builtin<"_Vector<8, long long int>(_Vector<8, long long int>, int)">; 2268} 2269 2270let Features = "avx512bw,evex512", Attributes = [NoThrow, Const, RequiredVectorWidth<512>] in { 2271 def psrav32hi : X86Builtin<"_Vector<32, short>(_Vector<32, short>, _Vector<32, short>)">; 2272} 2273 2274let Features = "avx512bw,avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<256>] in { 2275 def psrav16hi : X86Builtin<"_Vector<16, short>(_Vector<16, short>, _Vector<16, short>)">; 2276} 2277 2278let Features = "avx512bw,avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 2279 def psrav8hi : X86Builtin<"_Vector<8, short>(_Vector<8, short>, _Vector<8, short>)">; 2280} 2281 2282let Features = "avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 2283 def psravq128 : X86Builtin<"_Vector<2, long long int>(_Vector<2, long long int>, _Vector<2, long long int>)">; 2284} 2285 2286let Features = "avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<256>] in { 2287 def psravq256 : X86Builtin<"_Vector<4, long long int>(_Vector<4, long long int>, _Vector<4, long long int>)">; 2288} 2289 2290let Features = "avx512bw,evex512", Attributes = [NoThrow, Const, RequiredVectorWidth<512>] in { 2291 def psraw512 : X86Builtin<"_Vector<32, short>(_Vector<32, short>, _Vector<8, short>)">; 2292 def psrawi512 : X86Builtin<"_Vector<32, short>(_Vector<32, short>, int)">; 2293 def psrlw512 : X86Builtin<"_Vector<32, short>(_Vector<32, short>, _Vector<8, short>)">; 2294 def psrlwi512 : X86Builtin<"_Vector<32, short>(_Vector<32, short>, int)">; 2295 def pslldqi512_byteshift : X86Builtin<"_Vector<8, long long int>(_Vector<8, long long int>, _Constant int)">; 2296 def psrldqi512_byteshift : X86Builtin<"_Vector<8, long long int>(_Vector<8, long long int>, _Constant int)">; 2297} 2298 2299let Features = "avx512vl", Attributes = [NoThrow, RequiredVectorWidth<128>] in { 2300 def movdqa32load128_mask : X86Builtin<"_Vector<4, int>(_Vector<4, int const *>, _Vector<4, int>, unsigned char)">; 2301} 2302 2303let Features = "avx512vl", Attributes = [NoThrow, RequiredVectorWidth<256>] in { 2304 def movdqa32load256_mask : X86Builtin<"_Vector<8, int>(_Vector<8, int const *>, _Vector<8, int>, unsigned char)">; 2305} 2306 2307let Features = "avx512f,evex512", Attributes = [NoThrow, RequiredVectorWidth<512>] in { 2308 def movdqa32load512_mask : X86Builtin<"_Vector<16, int>(_Vector<16, int const *>, _Vector<16, int>, unsigned short)">; 2309 def movdqa32store512_mask : X86Builtin<"void(_Vector<16, int *>, _Vector<16, int>, unsigned short)">; 2310 def movdqa64load512_mask : X86Builtin<"_Vector<8, long long int>(_Vector<8, long long int const *>, _Vector<8, long long int>, unsigned char)">; 2311 def movdqa64store512_mask : X86Builtin<"void(_Vector<8, long long int *>, _Vector<8, long long int>, unsigned char)">; 2312} 2313 2314let Features = "avx512vl", Attributes = [NoThrow, RequiredVectorWidth<128>] in { 2315 def movdqa32store128_mask : X86Builtin<"void(_Vector<4, int *>, _Vector<4, int>, unsigned char)">; 2316} 2317 2318let Features = "avx512vl", Attributes = [NoThrow, RequiredVectorWidth<256>] in { 2319 def movdqa32store256_mask : X86Builtin<"void(_Vector<8, int *>, _Vector<8, int>, unsigned char)">; 2320} 2321 2322let Features = "avx512vl", Attributes = [NoThrow, RequiredVectorWidth<128>] in { 2323 def movdqa64load128_mask : X86Builtin<"_Vector<2, long long int>(_Vector<2, long long int const *>, _Vector<2, long long int>, unsigned char)">; 2324} 2325 2326let Features = "avx512vl", Attributes = [NoThrow, RequiredVectorWidth<256>] in { 2327 def movdqa64load256_mask : X86Builtin<"_Vector<4, long long int>(_Vector<4, long long int const *>, _Vector<4, long long int>, unsigned char)">; 2328} 2329 2330let Features = "avx512vl", Attributes = [NoThrow, RequiredVectorWidth<128>] in { 2331 def movdqa64store128_mask : X86Builtin<"void(_Vector<2, long long int *>, _Vector<2, long long int>, unsigned char)">; 2332} 2333 2334let Features = "avx512vl", Attributes = [NoThrow, RequiredVectorWidth<256>] in { 2335 def movdqa64store256_mask : X86Builtin<"void(_Vector<4, long long int *>, _Vector<4, long long int>, unsigned char)">; 2336} 2337 2338let Features = "avx512ifma,evex512", Attributes = [NoThrow, Const, RequiredVectorWidth<512>] in { 2339 def vpmadd52huq512 : X86Builtin<"_Vector<8, long long int>(_Vector<8, long long int>, _Vector<8, long long int>, _Vector<8, long long int>)">; 2340 def vpmadd52luq512 : X86Builtin<"_Vector<8, long long int>(_Vector<8, long long int>, _Vector<8, long long int>, _Vector<8, long long int>)">; 2341} 2342 2343let Features = "avx512ifma,avx512vl|avxifma", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 2344 def vpmadd52huq128 : X86Builtin<"_Vector<2, long long int>(_Vector<2, long long int>, _Vector<2, long long int>, _Vector<2, long long int>)">; 2345} 2346 2347let Features = "avx512ifma,avx512vl|avxifma", Attributes = [NoThrow, Const, RequiredVectorWidth<256>] in { 2348 def vpmadd52huq256 : X86Builtin<"_Vector<4, long long int>(_Vector<4, long long int>, _Vector<4, long long int>, _Vector<4, long long int>)">; 2349} 2350 2351let Features = "avx512ifma,avx512vl|avxifma", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 2352 def vpmadd52luq128 : X86Builtin<"_Vector<2, long long int>(_Vector<2, long long int>, _Vector<2, long long int>, _Vector<2, long long int>)">; 2353} 2354 2355let Features = "avx512ifma,avx512vl|avxifma", Attributes = [NoThrow, Const, RequiredVectorWidth<256>] in { 2356 def vpmadd52luq256 : X86Builtin<"_Vector<4, long long int>(_Vector<4, long long int>, _Vector<4, long long int>, _Vector<4, long long int>)">; 2357} 2358 2359let Features = "avx512f", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 2360 def vcomisd : X86Builtin<"int(_Vector<2, double>, _Vector<2, double>, _Constant int, _Constant int)">; 2361 def vcomiss : X86Builtin<"int(_Vector<4, float>, _Vector<4, float>, _Constant int, _Constant int)">; 2362} 2363 2364let Features = "avx512bw", Attributes = [NoThrow, Const] in { 2365 def kunpckdi : X86Builtin<"unsigned long long int(unsigned long long int, unsigned long long int)">; 2366 def kunpcksi : X86Builtin<"unsigned int(unsigned int, unsigned int)">; 2367} 2368 2369let Features = "avx512bw,evex512", Attributes = [NoThrow, RequiredVectorWidth<512>] in { 2370 def loaddquhi512_mask : X86Builtin<"_Vector<32, short>(_Vector<32, short const *>, _Vector<32, short>, unsigned int)">; 2371 def loaddquqi512_mask : X86Builtin<"_Vector<64, char>(_Vector<64, char const *>, _Vector<64, char>, unsigned long long int)">; 2372} 2373 2374let Features = "avx512f,evex512", Attributes = [NoThrow, Const, RequiredVectorWidth<512>] in { 2375 def fixupimmpd512_mask : X86Builtin<"_Vector<8, double>(_Vector<8, double>, _Vector<8, double>, _Vector<8, long long int>, _Constant int, unsigned char, _Constant int)">; 2376 def fixupimmpd512_maskz : X86Builtin<"_Vector<8, double>(_Vector<8, double>, _Vector<8, double>, _Vector<8, long long int>, _Constant int, unsigned char, _Constant int)">; 2377 def fixupimmps512_mask : X86Builtin<"_Vector<16, float>(_Vector<16, float>, _Vector<16, float>, _Vector<16, int>, _Constant int, unsigned short, _Constant int)">; 2378 def fixupimmps512_maskz : X86Builtin<"_Vector<16, float>(_Vector<16, float>, _Vector<16, float>, _Vector<16, int>, _Constant int, unsigned short, _Constant int)">; 2379} 2380 2381let Features = "avx512f", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 2382 def fixupimmsd_mask : X86Builtin<"_Vector<2, double>(_Vector<2, double>, _Vector<2, double>, _Vector<2, long long int>, _Constant int, unsigned char, _Constant int)">; 2383 def fixupimmsd_maskz : X86Builtin<"_Vector<2, double>(_Vector<2, double>, _Vector<2, double>, _Vector<2, long long int>, _Constant int, unsigned char, _Constant int)">; 2384 def fixupimmss_mask : X86Builtin<"_Vector<4, float>(_Vector<4, float>, _Vector<4, float>, _Vector<4, int>, _Constant int, unsigned char, _Constant int)">; 2385 def fixupimmss_maskz : X86Builtin<"_Vector<4, float>(_Vector<4, float>, _Vector<4, float>, _Vector<4, int>, _Constant int, unsigned char, _Constant int)">; 2386 def getexpsd128_round_mask : X86Builtin<"_Vector<2, double>(_Vector<2, double>, _Vector<2, double>, _Vector<2, double>, unsigned char, _Constant int)">; 2387 def getexpss128_round_mask : X86Builtin<"_Vector<4, float>(_Vector<4, float>, _Vector<4, float>, _Vector<4, float>, unsigned char, _Constant int)">; 2388 def getmantsd_round_mask : X86Builtin<"_Vector<2, double>(_Vector<2, double>, _Vector<2, double>, _Constant int, _Vector<2, double>, unsigned char, _Constant int)">; 2389 def getmantss_round_mask : X86Builtin<"_Vector<4, float>(_Vector<4, float>, _Vector<4, float>, _Constant int, _Vector<4, float>, unsigned char, _Constant int)">; 2390} 2391 2392let Features = "avx512bw,avx512vl", Attributes = [NoThrow, RequiredVectorWidth<128>] in { 2393 def loaddquhi128_mask : X86Builtin<"_Vector<8, short>(_Vector<8, short const *>, _Vector<8, short>, unsigned char)">; 2394} 2395 2396let Features = "avx512bw,avx512vl", Attributes = [NoThrow, RequiredVectorWidth<256>] in { 2397 def loaddquhi256_mask : X86Builtin<"_Vector<16, short>(_Vector<16, short const *>, _Vector<16, short>, unsigned short)">; 2398} 2399 2400let Features = "avx512bw,avx512vl", Attributes = [NoThrow, RequiredVectorWidth<128>] in { 2401 def loaddquqi128_mask : X86Builtin<"_Vector<16, char>(_Vector<16, char const *>, _Vector<16, char>, unsigned short)">; 2402} 2403 2404let Features = "avx512bw,avx512vl", Attributes = [NoThrow, RequiredVectorWidth<256>] in { 2405 def loaddquqi256_mask : X86Builtin<"_Vector<32, char>(_Vector<32, char const *>, _Vector<32, char>, unsigned int)">; 2406} 2407 2408let Features = "avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 2409 def fixupimmpd128_mask : X86Builtin<"_Vector<2, double>(_Vector<2, double>, _Vector<2, double>, _Vector<2, long long int>, _Constant int, unsigned char)">; 2410 def fixupimmpd128_maskz : X86Builtin<"_Vector<2, double>(_Vector<2, double>, _Vector<2, double>, _Vector<2, long long int>, _Constant int, unsigned char)">; 2411} 2412 2413let Features = "avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<256>] in { 2414 def fixupimmpd256_mask : X86Builtin<"_Vector<4, double>(_Vector<4, double>, _Vector<4, double>, _Vector<4, long long int>, _Constant int, unsigned char)">; 2415 def fixupimmpd256_maskz : X86Builtin<"_Vector<4, double>(_Vector<4, double>, _Vector<4, double>, _Vector<4, long long int>, _Constant int, unsigned char)">; 2416} 2417 2418let Features = "avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 2419 def fixupimmps128_mask : X86Builtin<"_Vector<4, float>(_Vector<4, float>, _Vector<4, float>, _Vector<4, int>, _Constant int, unsigned char)">; 2420 def fixupimmps128_maskz : X86Builtin<"_Vector<4, float>(_Vector<4, float>, _Vector<4, float>, _Vector<4, int>, _Constant int, unsigned char)">; 2421} 2422 2423let Features = "avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<256>] in { 2424 def fixupimmps256_mask : X86Builtin<"_Vector<8, float>(_Vector<8, float>, _Vector<8, float>, _Vector<8, int>, _Constant int, unsigned char)">; 2425 def fixupimmps256_maskz : X86Builtin<"_Vector<8, float>(_Vector<8, float>, _Vector<8, float>, _Vector<8, int>, _Constant int, unsigned char)">; 2426} 2427 2428let Features = "avx512vl", Attributes = [NoThrow, RequiredVectorWidth<128>] in { 2429 def loadapd128_mask : X86Builtin<"_Vector<2, double>(_Vector<2, double const *>, _Vector<2, double>, unsigned char)">; 2430} 2431 2432let Features = "avx512f", Attributes = [NoThrow, RequiredVectorWidth<128>] in { 2433 def loadsd128_mask : X86Builtin<"_Vector<2, double>(_Vector<2, double const *>, _Vector<2, double>, unsigned char)">; 2434} 2435 2436let Features = "avx512vl", Attributes = [NoThrow, RequiredVectorWidth<256>] in { 2437 def loadapd256_mask : X86Builtin<"_Vector<4, double>(_Vector<4, double const *>, _Vector<4, double>, unsigned char)">; 2438} 2439 2440let Features = "avx512vl", Attributes = [NoThrow, RequiredVectorWidth<128>] in { 2441 def loadaps128_mask : X86Builtin<"_Vector<4, float>(_Vector<4, float const *>, _Vector<4, float>, unsigned char)">; 2442} 2443 2444let Features = "avx512f", Attributes = [NoThrow, RequiredVectorWidth<128>] in { 2445 def loadss128_mask : X86Builtin<"_Vector<4, float>(_Vector<4, float const *>, _Vector<4, float>, unsigned char)">; 2446} 2447 2448let Features = "avx512vl", Attributes = [NoThrow, RequiredVectorWidth<256>] in { 2449 def loadaps256_mask : X86Builtin<"_Vector<8, float>(_Vector<8, float const *>, _Vector<8, float>, unsigned char)">; 2450} 2451 2452let Features = "avx512vl", Attributes = [NoThrow, RequiredVectorWidth<128>] in { 2453 def loaddqudi128_mask : X86Builtin<"_Vector<2, long long int>(_Vector<2, long long int const *>, _Vector<2, long long int>, unsigned char)">; 2454} 2455 2456let Features = "avx512vl", Attributes = [NoThrow, RequiredVectorWidth<256>] in { 2457 def loaddqudi256_mask : X86Builtin<"_Vector<4, long long int>(_Vector<4, long long int const *>, _Vector<4, long long int>, unsigned char)">; 2458} 2459 2460let Features = "avx512vl", Attributes = [NoThrow, RequiredVectorWidth<128>] in { 2461 def loaddqusi128_mask : X86Builtin<"_Vector<4, int>(_Vector<4, int const *>, _Vector<4, int>, unsigned char)">; 2462} 2463 2464let Features = "avx512vl", Attributes = [NoThrow, RequiredVectorWidth<256>] in { 2465 def loaddqusi256_mask : X86Builtin<"_Vector<8, int>(_Vector<8, int const *>, _Vector<8, int>, unsigned char)">; 2466} 2467 2468let Features = "avx512vl", Attributes = [NoThrow, RequiredVectorWidth<128>] in { 2469 def loadupd128_mask : X86Builtin<"_Vector<2, double>(_Vector<2, double const *>, _Vector<2, double>, unsigned char)">; 2470} 2471 2472let Features = "avx512vl", Attributes = [NoThrow, RequiredVectorWidth<256>] in { 2473 def loadupd256_mask : X86Builtin<"_Vector<4, double>(_Vector<4, double const *>, _Vector<4, double>, unsigned char)">; 2474} 2475 2476let Features = "avx512vl", Attributes = [NoThrow, RequiredVectorWidth<128>] in { 2477 def loadups128_mask : X86Builtin<"_Vector<4, float>(_Vector<4, float const *>, _Vector<4, float>, unsigned char)">; 2478} 2479 2480let Features = "avx512vl", Attributes = [NoThrow, RequiredVectorWidth<256>] in { 2481 def loadups256_mask : X86Builtin<"_Vector<8, float>(_Vector<8, float const *>, _Vector<8, float>, unsigned char)">; 2482} 2483 2484let Features = "avx512bw,evex512", Attributes = [NoThrow, RequiredVectorWidth<512>] in { 2485 def storedquhi512_mask : X86Builtin<"void(_Vector<32, short *>, _Vector<32, short>, unsigned int)">; 2486 def storedquqi512_mask : X86Builtin<"void(_Vector<64, char *>, _Vector<64, char>, unsigned long long int)">; 2487} 2488 2489let Features = "avx512vl,avx512bw", Attributes = [NoThrow, RequiredVectorWidth<128>] in { 2490 def storedquhi128_mask : X86Builtin<"void(_Vector<8, short *>, _Vector<8, short>, unsigned char)">; 2491} 2492 2493let Features = "avx512vl,avx512bw", Attributes = [NoThrow, RequiredVectorWidth<256>] in { 2494 def storedquhi256_mask : X86Builtin<"void(_Vector<16, short *>, _Vector<16, short>, unsigned short)">; 2495} 2496 2497let Features = "avx512vl,avx512bw", Attributes = [NoThrow, RequiredVectorWidth<128>] in { 2498 def storedquqi128_mask : X86Builtin<"void(_Vector<16, char *>, _Vector<16, char>, unsigned short)">; 2499} 2500 2501let Features = "avx512vl,avx512bw", Attributes = [NoThrow, RequiredVectorWidth<256>] in { 2502 def storedquqi256_mask : X86Builtin<"void(_Vector<32, char *>, _Vector<32, char>, unsigned int)">; 2503} 2504 2505let Features = "avx512vl", Attributes = [NoThrow, RequiredVectorWidth<128>] in { 2506 def storeapd128_mask : X86Builtin<"void(_Vector<2, double *>, _Vector<2, double>, unsigned char)">; 2507} 2508 2509let Features = "avx512f", Attributes = [NoThrow, RequiredVectorWidth<128>] in { 2510 def storesd128_mask : X86Builtin<"void(_Vector<2, double *>, _Vector<2, double>, unsigned char)">; 2511} 2512 2513let Features = "avx512vl", Attributes = [NoThrow, RequiredVectorWidth<256>] in { 2514 def storeapd256_mask : X86Builtin<"void(_Vector<4, double *>, _Vector<4, double>, unsigned char)">; 2515} 2516 2517let Features = "avx512vl", Attributes = [NoThrow, RequiredVectorWidth<128>] in { 2518 def storeaps128_mask : X86Builtin<"void(_Vector<4, float *>, _Vector<4, float>, unsigned char)">; 2519} 2520 2521let Features = "avx512f", Attributes = [NoThrow, RequiredVectorWidth<128>] in { 2522 def storess128_mask : X86Builtin<"void(_Vector<4, float *>, _Vector<4, float>, unsigned char)">; 2523} 2524 2525let Features = "avx512vl", Attributes = [NoThrow, RequiredVectorWidth<256>] in { 2526 def storeaps256_mask : X86Builtin<"void(_Vector<8, float *>, _Vector<8, float>, unsigned char)">; 2527} 2528 2529let Features = "avx512vl", Attributes = [NoThrow, RequiredVectorWidth<128>] in { 2530 def storedqudi128_mask : X86Builtin<"void(_Vector<2, long long int *>, _Vector<2, long long int>, unsigned char)">; 2531} 2532 2533let Features = "avx512vl", Attributes = [NoThrow, RequiredVectorWidth<256>] in { 2534 def storedqudi256_mask : X86Builtin<"void(_Vector<4, long long int *>, _Vector<4, long long int>, unsigned char)">; 2535} 2536 2537let Features = "avx512vl", Attributes = [NoThrow, RequiredVectorWidth<128>] in { 2538 def storedqusi128_mask : X86Builtin<"void(_Vector<4, int *>, _Vector<4, int>, unsigned char)">; 2539} 2540 2541let Features = "avx512vl", Attributes = [NoThrow, RequiredVectorWidth<256>] in { 2542 def storedqusi256_mask : X86Builtin<"void(_Vector<8, int *>, _Vector<8, int>, unsigned char)">; 2543} 2544 2545let Features = "avx512vl", Attributes = [NoThrow, RequiredVectorWidth<128>] in { 2546 def storeupd128_mask : X86Builtin<"void(_Vector<2, double *>, _Vector<2, double>, unsigned char)">; 2547} 2548 2549let Features = "avx512vl", Attributes = [NoThrow, RequiredVectorWidth<256>] in { 2550 def storeupd256_mask : X86Builtin<"void(_Vector<4, double *>, _Vector<4, double>, unsigned char)">; 2551} 2552 2553let Features = "avx512vl", Attributes = [NoThrow, RequiredVectorWidth<128>] in { 2554 def storeups128_mask : X86Builtin<"void(_Vector<4, float *>, _Vector<4, float>, unsigned char)">; 2555} 2556 2557let Features = "avx512vl", Attributes = [NoThrow, RequiredVectorWidth<256>] in { 2558 def storeups256_mask : X86Builtin<"void(_Vector<8, float *>, _Vector<8, float>, unsigned char)">; 2559} 2560 2561let Features = "avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 2562 def rcp14pd128_mask : X86Builtin<"_Vector<2, double>(_Vector<2, double>, _Vector<2, double>, unsigned char)">; 2563} 2564 2565let Features = "avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<256>] in { 2566 def rcp14pd256_mask : X86Builtin<"_Vector<4, double>(_Vector<4, double>, _Vector<4, double>, unsigned char)">; 2567} 2568 2569let Features = "avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 2570 def rcp14ps128_mask : X86Builtin<"_Vector<4, float>(_Vector<4, float>, _Vector<4, float>, unsigned char)">; 2571} 2572 2573let Features = "avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<256>] in { 2574 def rcp14ps256_mask : X86Builtin<"_Vector<8, float>(_Vector<8, float>, _Vector<8, float>, unsigned char)">; 2575} 2576 2577let Features = "avx512cd,avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 2578 def vplzcntd_128 : X86Builtin<"_Vector<4, int>(_Vector<4, int>)">; 2579} 2580 2581let Features = "avx512cd,avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<256>] in { 2582 def vplzcntd_256 : X86Builtin<"_Vector<8, int>(_Vector<8, int>)">; 2583} 2584 2585let Features = "avx512cd,avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 2586 def vplzcntq_128 : X86Builtin<"_Vector<2, long long int>(_Vector<2, long long int>)">; 2587} 2588 2589let Features = "avx512cd,avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<256>] in { 2590 def vplzcntq_256 : X86Builtin<"_Vector<4, long long int>(_Vector<4, long long int>)">; 2591} 2592 2593let Features = "avx512f", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 2594 def vcvtsd2si32 : X86Builtin<"int(_Vector<2, double>, _Constant int)">; 2595 def vcvtsd2usi32 : X86Builtin<"unsigned int(_Vector<2, double>, _Constant int)">; 2596 def vcvtss2si32 : X86Builtin<"int(_Vector<4, float>, _Constant int)">; 2597 def vcvtss2usi32 : X86Builtin<"unsigned int(_Vector<4, float>, _Constant int)">; 2598 def vcvttsd2si32 : X86Builtin<"int(_Vector<2, double>, _Constant int)">; 2599 def vcvttsd2usi32 : X86Builtin<"unsigned int(_Vector<2, double>, _Constant int)">; 2600 def vcvttss2si32 : X86Builtin<"int(_Vector<4, float>, _Constant int)">; 2601 def vcvttss2usi32 : X86Builtin<"unsigned int(_Vector<4, float>, _Constant int)">; 2602} 2603 2604let Features = "avx512f,evex512", Attributes = [NoThrow, Const, RequiredVectorWidth<512>] in { 2605 def vpermilpd512 : X86Builtin<"_Vector<8, double>(_Vector<8, double>, _Constant int)">; 2606 def vpermilps512 : X86Builtin<"_Vector<16, float>(_Vector<16, float>, _Constant int)">; 2607 def vpermilvarpd512 : X86Builtin<"_Vector<8, double>(_Vector<8, double>, _Vector<8, long long int>)">; 2608 def vpermilvarps512 : X86Builtin<"_Vector<16, float>(_Vector<16, float>, _Vector<16, int>)">; 2609} 2610 2611let Features = "avx512f", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 2612 def rndscalesd_round_mask : X86Builtin<"_Vector<2, double>(_Vector<2, double>, _Vector<2, double>, _Vector<2, double>, unsigned char, _Constant int, _Constant int)">; 2613 def rndscaless_round_mask : X86Builtin<"_Vector<4, float>(_Vector<4, float>, _Vector<4, float>, _Vector<4, float>, unsigned char, _Constant int, _Constant int)">; 2614} 2615 2616let Features = "avx512f,evex512", Attributes = [NoThrow, Const, RequiredVectorWidth<512>] in { 2617 def scalefpd512_mask : X86Builtin<"_Vector<8, double>(_Vector<8, double>, _Vector<8, double>, _Vector<8, double>, unsigned char, _Constant int)">; 2618 def scalefps512_mask : X86Builtin<"_Vector<16, float>(_Vector<16, float>, _Vector<16, float>, _Vector<16, float>, unsigned short, _Constant int)">; 2619} 2620 2621let Features = "avx512f", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 2622 def scalefsd_round_mask : X86Builtin<"_Vector<2, double>(_Vector<2, double>, _Vector<2, double>, _Vector<2, double>, unsigned char, _Constant int)">; 2623 def scalefss_round_mask : X86Builtin<"_Vector<4, float>(_Vector<4, float>, _Vector<4, float>, _Vector<4, float>, unsigned char, _Constant int)">; 2624} 2625 2626let Features = "avx512f,evex512", Attributes = [NoThrow, Const, RequiredVectorWidth<512>] in { 2627 def psradi512 : X86Builtin<"_Vector<16, int>(_Vector<16, int>, int)">; 2628 def psraqi512 : X86Builtin<"_Vector<8, long long int>(_Vector<8, long long int>, int)">; 2629} 2630 2631let Features = "avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 2632 def psraq128 : X86Builtin<"_Vector<2, long long int>(_Vector<2, long long int>, _Vector<2, long long int>)">; 2633} 2634 2635let Features = "avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<256>] in { 2636 def psraq256 : X86Builtin<"_Vector<4, long long int>(_Vector<4, long long int>, _Vector<2, long long int>)">; 2637} 2638 2639let Features = "avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 2640 def psraqi128 : X86Builtin<"_Vector<2, long long int>(_Vector<2, long long int>, int)">; 2641} 2642 2643let Features = "avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<256>] in { 2644 def psraqi256 : X86Builtin<"_Vector<4, long long int>(_Vector<4, long long int>, int)">; 2645} 2646 2647let Features = "avx512f,evex512", Attributes = [NoThrow, Const, RequiredVectorWidth<512>] in { 2648 def pslld512 : X86Builtin<"_Vector<16, int>(_Vector<16, int>, _Vector<4, int>)">; 2649 def psllq512 : X86Builtin<"_Vector<8, long long int>(_Vector<8, long long int>, _Vector<2, long long int>)">; 2650 def psllv16si : X86Builtin<"_Vector<16, int>(_Vector<16, int>, _Vector<16, int>)">; 2651 def psllv8di : X86Builtin<"_Vector<8, long long int>(_Vector<8, long long int>, _Vector<8, long long int>)">; 2652 def psrad512 : X86Builtin<"_Vector<16, int>(_Vector<16, int>, _Vector<4, int>)">; 2653 def psraq512 : X86Builtin<"_Vector<8, long long int>(_Vector<8, long long int>, _Vector<2, long long int>)">; 2654 def psrav16si : X86Builtin<"_Vector<16, int>(_Vector<16, int>, _Vector<16, int>)">; 2655 def psrav8di : X86Builtin<"_Vector<8, long long int>(_Vector<8, long long int>, _Vector<8, long long int>)">; 2656 def psrld512 : X86Builtin<"_Vector<16, int>(_Vector<16, int>, _Vector<4, int>)">; 2657 def psrlq512 : X86Builtin<"_Vector<8, long long int>(_Vector<8, long long int>, _Vector<2, long long int>)">; 2658 def psrlv16si : X86Builtin<"_Vector<16, int>(_Vector<16, int>, _Vector<16, int>)">; 2659 def psrlv8di : X86Builtin<"_Vector<8, long long int>(_Vector<8, long long int>, _Vector<8, long long int>)">; 2660 def pternlogd512_mask : X86Builtin<"_Vector<16, int>(_Vector<16, int>, _Vector<16, int>, _Vector<16, int>, _Constant int, unsigned short)">; 2661 def pternlogd512_maskz : X86Builtin<"_Vector<16, int>(_Vector<16, int>, _Vector<16, int>, _Vector<16, int>, _Constant int, unsigned short)">; 2662 def pternlogq512_mask : X86Builtin<"_Vector<8, long long int>(_Vector<8, long long int>, _Vector<8, long long int>, _Vector<8, long long int>, _Constant int, unsigned char)">; 2663 def pternlogq512_maskz : X86Builtin<"_Vector<8, long long int>(_Vector<8, long long int>, _Vector<8, long long int>, _Vector<8, long long int>, _Constant int, unsigned char)">; 2664} 2665 2666let Features = "avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 2667 def pternlogd128_mask : X86Builtin<"_Vector<4, int>(_Vector<4, int>, _Vector<4, int>, _Vector<4, int>, _Constant int, unsigned char)">; 2668 def pternlogd128_maskz : X86Builtin<"_Vector<4, int>(_Vector<4, int>, _Vector<4, int>, _Vector<4, int>, _Constant int, unsigned char)">; 2669} 2670 2671let Features = "avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<256>] in { 2672 def pternlogd256_mask : X86Builtin<"_Vector<8, int>(_Vector<8, int>, _Vector<8, int>, _Vector<8, int>, _Constant int, unsigned char)">; 2673 def pternlogd256_maskz : X86Builtin<"_Vector<8, int>(_Vector<8, int>, _Vector<8, int>, _Vector<8, int>, _Constant int, unsigned char)">; 2674} 2675 2676let Features = "avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 2677 def pternlogq128_mask : X86Builtin<"_Vector<2, long long int>(_Vector<2, long long int>, _Vector<2, long long int>, _Vector<2, long long int>, _Constant int, unsigned char)">; 2678 def pternlogq128_maskz : X86Builtin<"_Vector<2, long long int>(_Vector<2, long long int>, _Vector<2, long long int>, _Vector<2, long long int>, _Constant int, unsigned char)">; 2679} 2680 2681let Features = "avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<256>] in { 2682 def pternlogq256_mask : X86Builtin<"_Vector<4, long long int>(_Vector<4, long long int>, _Vector<4, long long int>, _Vector<4, long long int>, _Constant int, unsigned char)">; 2683 def pternlogq256_maskz : X86Builtin<"_Vector<4, long long int>(_Vector<4, long long int>, _Vector<4, long long int>, _Vector<4, long long int>, _Constant int, unsigned char)">; 2684} 2685 2686let Features = "avx512f,evex512", Attributes = [NoThrow, Const, RequiredVectorWidth<512>] in { 2687 def shuf_f32x4 : X86Builtin<"_Vector<16, float>(_Vector<16, float>, _Vector<16, float>, _Constant int)">; 2688 def shuf_f64x2 : X86Builtin<"_Vector<8, double>(_Vector<8, double>, _Vector<8, double>, _Constant int)">; 2689 def shuf_i32x4 : X86Builtin<"_Vector<16, int>(_Vector<16, int>, _Vector<16, int>, _Constant int)">; 2690 def shuf_i64x2 : X86Builtin<"_Vector<8, long long int>(_Vector<8, long long int>, _Vector<8, long long int>, _Constant int)">; 2691 def shufpd512 : X86Builtin<"_Vector<8, double>(_Vector<8, double>, _Vector<8, double>, _Constant int)">; 2692 def shufps512 : X86Builtin<"_Vector<16, float>(_Vector<16, float>, _Vector<16, float>, _Constant int)">; 2693} 2694 2695let Features = "avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<256>] in { 2696 def shuf_f32x4_256 : X86Builtin<"_Vector<8, float>(_Vector<8, float>, _Vector<8, float>, _Constant int)">; 2697 def shuf_f64x2_256 : X86Builtin<"_Vector<4, double>(_Vector<4, double>, _Vector<4, double>, _Constant int)">; 2698 def shuf_i32x4_256 : X86Builtin<"_Vector<8, int>(_Vector<8, int>, _Vector<8, int>, _Constant int)">; 2699 def shuf_i64x2_256 : X86Builtin<"_Vector<4, long long int>(_Vector<4, long long int>, _Vector<4, long long int>, _Constant int)">; 2700} 2701 2702let Features = "avx512f", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 2703 def sqrtsd_round_mask : X86Builtin<"_Vector<2, double>(_Vector<2, double>, _Vector<2, double>, _Vector<2, double>, unsigned char, _Constant int)">; 2704 def sqrtss_round_mask : X86Builtin<"_Vector<4, float>(_Vector<4, float>, _Vector<4, float>, _Vector<4, float>, unsigned char, _Constant int)">; 2705} 2706 2707let Features = "avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 2708 def rsqrt14pd128_mask : X86Builtin<"_Vector<2, double>(_Vector<2, double>, _Vector<2, double>, unsigned char)">; 2709} 2710 2711let Features = "avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<256>] in { 2712 def rsqrt14pd256_mask : X86Builtin<"_Vector<4, double>(_Vector<4, double>, _Vector<4, double>, unsigned char)">; 2713} 2714 2715let Features = "avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 2716 def rsqrt14ps128_mask : X86Builtin<"_Vector<4, float>(_Vector<4, float>, _Vector<4, float>, unsigned char)">; 2717} 2718 2719let Features = "avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<256>] in { 2720 def rsqrt14ps256_mask : X86Builtin<"_Vector<8, float>(_Vector<8, float>, _Vector<8, float>, unsigned char)">; 2721} 2722 2723let Features = "avx512bw,evex512", Attributes = [NoThrow, Const, RequiredVectorWidth<512>] in { 2724 def cvtb2mask512 : X86Builtin<"unsigned long long int(_Vector<64, char>)">; 2725 def cvtmask2b512 : X86Builtin<"_Vector<64, char>(unsigned long long int)">; 2726 def cvtmask2w512 : X86Builtin<"_Vector<32, short>(unsigned int)">; 2727} 2728 2729let Features = "avx512dq,evex512", Attributes = [NoThrow, Const, RequiredVectorWidth<512>] in { 2730 def cvtd2mask512 : X86Builtin<"unsigned short(_Vector<16, int>)">; 2731 def cvtmask2d512 : X86Builtin<"_Vector<16, int>(unsigned short)">; 2732 def cvtmask2q512 : X86Builtin<"_Vector<8, long long int>(unsigned char)">; 2733 def cvtq2mask512 : X86Builtin<"unsigned char(_Vector<8, long long int>)">; 2734} 2735 2736let Features = "avx512bw,avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 2737 def cvtb2mask128 : X86Builtin<"unsigned short(_Vector<16, char>)">; 2738} 2739 2740let Features = "avx512bw,avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<256>] in { 2741 def cvtb2mask256 : X86Builtin<"unsigned int(_Vector<32, char>)">; 2742} 2743 2744let Features = "avx512bw,avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 2745 def cvtmask2b128 : X86Builtin<"_Vector<16, char>(unsigned short)">; 2746} 2747 2748let Features = "avx512bw,avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<256>] in { 2749 def cvtmask2b256 : X86Builtin<"_Vector<32, char>(unsigned int)">; 2750} 2751 2752let Features = "avx512bw,avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 2753 def cvtmask2w128 : X86Builtin<"_Vector<8, short>(unsigned char)">; 2754} 2755 2756let Features = "avx512bw,avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<256>] in { 2757 def cvtmask2w256 : X86Builtin<"_Vector<16, short>(unsigned short)">; 2758} 2759 2760let Features = "avx512dq,avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 2761 def cvtd2mask128 : X86Builtin<"unsigned char(_Vector<4, int>)">; 2762} 2763 2764let Features = "avx512dq,avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<256>] in { 2765 def cvtd2mask256 : X86Builtin<"unsigned char(_Vector<8, int>)">; 2766} 2767 2768let Features = "avx512dq,avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 2769 def cvtmask2d128 : X86Builtin<"_Vector<4, int>(unsigned char)">; 2770} 2771 2772let Features = "avx512dq,avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<256>] in { 2773 def cvtmask2d256 : X86Builtin<"_Vector<8, int>(unsigned char)">; 2774} 2775 2776let Features = "avx512dq,avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 2777 def cvtmask2q128 : X86Builtin<"_Vector<2, long long int>(unsigned char)">; 2778} 2779 2780let Features = "avx512dq,avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<256>] in { 2781 def cvtmask2q256 : X86Builtin<"_Vector<4, long long int>(unsigned char)">; 2782} 2783 2784let Features = "avx512dq,avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 2785 def cvtq2mask128 : X86Builtin<"unsigned char(_Vector<2, long long int>)">; 2786} 2787 2788let Features = "avx512dq,avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<256>] in { 2789 def cvtq2mask256 : X86Builtin<"unsigned char(_Vector<4, long long int>)">; 2790} 2791 2792let Features = "avx512f,evex512", Attributes = [NoThrow, Const, RequiredVectorWidth<512>] in { 2793 def pmovsdb512_mask : X86Builtin<"_Vector<16, char>(_Vector<16, int>, _Vector<16, char>, unsigned short)">; 2794} 2795 2796let Features = "avx512f,evex512", Attributes = [NoThrow, RequiredVectorWidth<512>] in { 2797 def pmovsdb512mem_mask : X86Builtin<"void(_Vector<16, char *>, _Vector<16, int>, unsigned short)">; 2798} 2799 2800let Features = "avx512bw,evex512", Attributes = [NoThrow, RequiredVectorWidth<512>] in { 2801 def pmovswb512mem_mask : X86Builtin<"void(_Vector<32, char *>, _Vector<32, short>, unsigned int)">; 2802} 2803 2804let Features = "avx512f,evex512", Attributes = [NoThrow, Const, RequiredVectorWidth<512>] in { 2805 def pmovsdw512_mask : X86Builtin<"_Vector<16, short>(_Vector<16, int>, _Vector<16, short>, unsigned short)">; 2806} 2807 2808let Features = "avx512f,evex512", Attributes = [NoThrow, RequiredVectorWidth<512>] in { 2809 def pmovsdw512mem_mask : X86Builtin<"void(_Vector<16, short *>, _Vector<16, int>, unsigned short)">; 2810} 2811 2812let Features = "avx512f,evex512", Attributes = [NoThrow, Const, RequiredVectorWidth<512>] in { 2813 def pmovsqb512_mask : X86Builtin<"_Vector<16, char>(_Vector<8, long long int>, _Vector<16, char>, unsigned char)">; 2814} 2815 2816let Features = "avx512f,evex512", Attributes = [NoThrow, RequiredVectorWidth<512>] in { 2817 def pmovsqb512mem_mask : X86Builtin<"void(_Vector<16, char *>, _Vector<8, long long int>, unsigned char)">; 2818} 2819 2820let Features = "avx512f,evex512", Attributes = [NoThrow, Const, RequiredVectorWidth<512>] in { 2821 def pmovsqd512_mask : X86Builtin<"_Vector<8, int>(_Vector<8, long long int>, _Vector<8, int>, unsigned char)">; 2822} 2823 2824let Features = "avx512f,evex512", Attributes = [NoThrow, RequiredVectorWidth<512>] in { 2825 def pmovsqd512mem_mask : X86Builtin<"void(_Vector<8, int *>, _Vector<8, long long int>, unsigned char)">; 2826} 2827 2828let Features = "avx512f,evex512", Attributes = [NoThrow, Const, RequiredVectorWidth<512>] in { 2829 def pmovsqw512_mask : X86Builtin<"_Vector<8, short>(_Vector<8, long long int>, _Vector<8, short>, unsigned char)">; 2830} 2831 2832let Features = "avx512f,evex512", Attributes = [NoThrow, RequiredVectorWidth<512>] in { 2833 def pmovsqw512mem_mask : X86Builtin<"void(_Vector<8, short *>, _Vector<8, long long int>, unsigned char)">; 2834} 2835 2836let Features = "avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 2837 def pmovsdb128_mask : X86Builtin<"_Vector<16, char>(_Vector<4, int>, _Vector<16, char>, unsigned char)">; 2838} 2839 2840let Features = "avx512vl", Attributes = [NoThrow, RequiredVectorWidth<128>] in { 2841 def pmovsdb128mem_mask : X86Builtin<"void(_Vector<16, char *>, _Vector<4, int>, unsigned char)">; 2842} 2843 2844let Features = "avx512vl,avx512bw", Attributes = [NoThrow, RequiredVectorWidth<128>] in { 2845 def pmovswb128mem_mask : X86Builtin<"void(_Vector<16, char *>, _Vector<8, short>, unsigned char)">; 2846} 2847 2848let Features = "avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<256>] in { 2849 def pmovsdb256_mask : X86Builtin<"_Vector<16, char>(_Vector<8, int>, _Vector<16, char>, unsigned char)">; 2850} 2851 2852let Features = "avx512vl", Attributes = [NoThrow, RequiredVectorWidth<256>] in { 2853 def pmovsdb256mem_mask : X86Builtin<"void(_Vector<16, char *>, _Vector<8, int>, unsigned char)">; 2854} 2855 2856let Features = "avx512vl,avx512bw", Attributes = [NoThrow, RequiredVectorWidth<256>] in { 2857 def pmovswb256mem_mask : X86Builtin<"void(_Vector<16, char *>, _Vector<16, short>, unsigned short)">; 2858} 2859 2860let Features = "avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 2861 def pmovsdw128_mask : X86Builtin<"_Vector<8, short>(_Vector<4, int>, _Vector<8, short>, unsigned char)">; 2862} 2863 2864let Features = "avx512vl", Attributes = [NoThrow, RequiredVectorWidth<128>] in { 2865 def pmovsdw128mem_mask : X86Builtin<"void(_Vector<8, short *>, _Vector<4, int>, unsigned char)">; 2866} 2867 2868let Features = "avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<256>] in { 2869 def pmovsdw256_mask : X86Builtin<"_Vector<8, short>(_Vector<8, int>, _Vector<8, short>, unsigned char)">; 2870} 2871 2872let Features = "avx512vl", Attributes = [NoThrow, RequiredVectorWidth<256>] in { 2873 def pmovsdw256mem_mask : X86Builtin<"void(_Vector<8, short *>, _Vector<8, int>, unsigned char)">; 2874} 2875 2876let Features = "avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 2877 def pmovsqb128_mask : X86Builtin<"_Vector<16, char>(_Vector<2, long long int>, _Vector<16, char>, unsigned char)">; 2878} 2879 2880let Features = "avx512vl", Attributes = [NoThrow, RequiredVectorWidth<128>] in { 2881 def pmovsqb128mem_mask : X86Builtin<"void(_Vector<16, char *>, _Vector<2, long long int>, unsigned char)">; 2882} 2883 2884let Features = "avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<256>] in { 2885 def pmovsqb256_mask : X86Builtin<"_Vector<16, char>(_Vector<4, long long int>, _Vector<16, char>, unsigned char)">; 2886} 2887 2888let Features = "avx512vl", Attributes = [NoThrow, RequiredVectorWidth<256>] in { 2889 def pmovsqb256mem_mask : X86Builtin<"void(_Vector<16, char *>, _Vector<4, long long int>, unsigned char)">; 2890} 2891 2892let Features = "avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 2893 def pmovsqd128_mask : X86Builtin<"_Vector<4, int>(_Vector<2, long long int>, _Vector<4, int>, unsigned char)">; 2894} 2895 2896let Features = "avx512vl", Attributes = [NoThrow, RequiredVectorWidth<128>] in { 2897 def pmovsqd128mem_mask : X86Builtin<"void(_Vector<4, int *>, _Vector<2, long long int>, unsigned char)">; 2898} 2899 2900let Features = "avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<256>] in { 2901 def pmovsqd256_mask : X86Builtin<"_Vector<4, int>(_Vector<4, long long int>, _Vector<4, int>, unsigned char)">; 2902} 2903 2904let Features = "avx512vl", Attributes = [NoThrow, RequiredVectorWidth<256>] in { 2905 def pmovsqd256mem_mask : X86Builtin<"void(_Vector<4, int *>, _Vector<4, long long int>, unsigned char)">; 2906} 2907 2908let Features = "avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 2909 def pmovsqw128_mask : X86Builtin<"_Vector<8, short>(_Vector<2, long long int>, _Vector<8, short>, unsigned char)">; 2910} 2911 2912let Features = "avx512vl", Attributes = [NoThrow, RequiredVectorWidth<128>] in { 2913 def pmovsqw128mem_mask : X86Builtin<"void(_Vector<8, short *>, _Vector<2, long long int>, unsigned char)">; 2914} 2915 2916let Features = "avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<256>] in { 2917 def pmovsqw256_mask : X86Builtin<"_Vector<8, short>(_Vector<4, long long int>, _Vector<8, short>, unsigned char)">; 2918} 2919 2920let Features = "avx512vl", Attributes = [NoThrow, RequiredVectorWidth<256>] in { 2921 def pmovsqw256mem_mask : X86Builtin<"void(_Vector<8, short *>, _Vector<4, long long int>, unsigned char)">; 2922} 2923 2924let Features = "avx512f,evex512", Attributes = [NoThrow, Const, RequiredVectorWidth<512>] in { 2925 def pmovusdb512_mask : X86Builtin<"_Vector<16, char>(_Vector<16, int>, _Vector<16, char>, unsigned short)">; 2926} 2927 2928let Features = "avx512f,evex512", Attributes = [NoThrow, RequiredVectorWidth<512>] in { 2929 def pmovusdb512mem_mask : X86Builtin<"void(_Vector<16, char *>, _Vector<16, int>, unsigned short)">; 2930} 2931 2932let Features = "avx512bw,evex512", Attributes = [NoThrow, RequiredVectorWidth<512>] in { 2933 def pmovuswb512mem_mask : X86Builtin<"void(_Vector<32, char *>, _Vector<32, short>, unsigned int)">; 2934} 2935 2936let Features = "avx512f,evex512", Attributes = [NoThrow, Const, RequiredVectorWidth<512>] in { 2937 def pmovusdw512_mask : X86Builtin<"_Vector<16, short>(_Vector<16, int>, _Vector<16, short>, unsigned short)">; 2938} 2939 2940let Features = "avx512f,evex512", Attributes = [NoThrow, RequiredVectorWidth<512>] in { 2941 def pmovusdw512mem_mask : X86Builtin<"void(_Vector<16, short *>, _Vector<16, int>, unsigned short)">; 2942} 2943 2944let Features = "avx512f,evex512", Attributes = [NoThrow, Const, RequiredVectorWidth<512>] in { 2945 def pmovusqb512_mask : X86Builtin<"_Vector<16, char>(_Vector<8, long long int>, _Vector<16, char>, unsigned char)">; 2946} 2947 2948let Features = "avx512f,evex512", Attributes = [NoThrow, RequiredVectorWidth<512>] in { 2949 def pmovusqb512mem_mask : X86Builtin<"void(_Vector<16, char *>, _Vector<8, long long int>, unsigned char)">; 2950} 2951 2952let Features = "avx512f,evex512", Attributes = [NoThrow, Const, RequiredVectorWidth<512>] in { 2953 def pmovusqd512_mask : X86Builtin<"_Vector<8, int>(_Vector<8, long long int>, _Vector<8, int>, unsigned char)">; 2954} 2955 2956let Features = "avx512f,evex512", Attributes = [NoThrow, RequiredVectorWidth<512>] in { 2957 def pmovusqd512mem_mask : X86Builtin<"void(_Vector<8, int *>, _Vector<8, long long int>, unsigned char)">; 2958} 2959 2960let Features = "avx512f,evex512", Attributes = [NoThrow, Const, RequiredVectorWidth<512>] in { 2961 def pmovusqw512_mask : X86Builtin<"_Vector<8, short>(_Vector<8, long long int>, _Vector<8, short>, unsigned char)">; 2962} 2963 2964let Features = "avx512f,evex512", Attributes = [NoThrow, RequiredVectorWidth<512>] in { 2965 def pmovusqw512mem_mask : X86Builtin<"void(_Vector<8, short *>, _Vector<8, long long int>, unsigned char)">; 2966} 2967 2968let Features = "avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 2969 def pmovusdb128_mask : X86Builtin<"_Vector<16, char>(_Vector<4, int>, _Vector<16, char>, unsigned char)">; 2970} 2971 2972let Features = "avx512vl", Attributes = [NoThrow, RequiredVectorWidth<128>] in { 2973 def pmovusdb128mem_mask : X86Builtin<"void(_Vector<16, char *>, _Vector<4, int>, unsigned char)">; 2974} 2975 2976let Features = "avx512vl,avx512bw", Attributes = [NoThrow, RequiredVectorWidth<128>] in { 2977 def pmovuswb128mem_mask : X86Builtin<"void(_Vector<16, char *>, _Vector<8, short>, unsigned char)">; 2978} 2979 2980let Features = "avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<256>] in { 2981 def pmovusdb256_mask : X86Builtin<"_Vector<16, char>(_Vector<8, int>, _Vector<16, char>, unsigned char)">; 2982} 2983 2984let Features = "avx512vl", Attributes = [NoThrow, RequiredVectorWidth<256>] in { 2985 def pmovusdb256mem_mask : X86Builtin<"void(_Vector<16, char *>, _Vector<8, int>, unsigned char)">; 2986} 2987 2988let Features = "avx512vl,avx512bw", Attributes = [NoThrow, RequiredVectorWidth<256>] in { 2989 def pmovuswb256mem_mask : X86Builtin<"void(_Vector<16, char *>, _Vector<16, short>, unsigned short)">; 2990} 2991 2992let Features = "avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 2993 def pmovusdw128_mask : X86Builtin<"_Vector<8, short>(_Vector<4, int>, _Vector<8, short>, unsigned char)">; 2994} 2995 2996let Features = "avx512vl", Attributes = [NoThrow, RequiredVectorWidth<128>] in { 2997 def pmovusdw128mem_mask : X86Builtin<"void(_Vector<8, short *>, _Vector<4, int>, unsigned char)">; 2998} 2999 3000let Features = "avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<256>] in { 3001 def pmovusdw256_mask : X86Builtin<"_Vector<8, short>(_Vector<8, int>, _Vector<8, short>, unsigned char)">; 3002} 3003 3004let Features = "avx512vl", Attributes = [NoThrow, RequiredVectorWidth<256>] in { 3005 def pmovusdw256mem_mask : X86Builtin<"void(_Vector<8, short *>, _Vector<8, int>, unsigned char)">; 3006} 3007 3008let Features = "avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 3009 def pmovusqb128_mask : X86Builtin<"_Vector<16, char>(_Vector<2, long long int>, _Vector<16, char>, unsigned char)">; 3010} 3011 3012let Features = "avx512vl", Attributes = [NoThrow, RequiredVectorWidth<128>] in { 3013 def pmovusqb128mem_mask : X86Builtin<"void(_Vector<16, char *>, _Vector<2, long long int>, unsigned char)">; 3014} 3015 3016let Features = "avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<256>] in { 3017 def pmovusqb256_mask : X86Builtin<"_Vector<16, char>(_Vector<4, long long int>, _Vector<16, char>, unsigned char)">; 3018} 3019 3020let Features = "avx512vl", Attributes = [NoThrow, RequiredVectorWidth<256>] in { 3021 def pmovusqb256mem_mask : X86Builtin<"void(_Vector<16, char *>, _Vector<4, long long int>, unsigned char)">; 3022} 3023 3024let Features = "avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 3025 def pmovusqd128_mask : X86Builtin<"_Vector<4, int>(_Vector<2, long long int>, _Vector<4, int>, unsigned char)">; 3026} 3027 3028let Features = "avx512vl", Attributes = [NoThrow, RequiredVectorWidth<128>] in { 3029 def pmovusqd128mem_mask : X86Builtin<"void(_Vector<4, int *>, _Vector<2, long long int>, unsigned char)">; 3030} 3031 3032let Features = "avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<256>] in { 3033 def pmovusqd256_mask : X86Builtin<"_Vector<4, int>(_Vector<4, long long int>, _Vector<4, int>, unsigned char)">; 3034} 3035 3036let Features = "avx512vl", Attributes = [NoThrow, RequiredVectorWidth<256>] in { 3037 def pmovusqd256mem_mask : X86Builtin<"void(_Vector<4, int *>, _Vector<4, long long int>, unsigned char)">; 3038} 3039 3040let Features = "avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 3041 def pmovusqw128_mask : X86Builtin<"_Vector<8, short>(_Vector<2, long long int>, _Vector<8, short>, unsigned char)">; 3042} 3043 3044let Features = "avx512vl", Attributes = [NoThrow, RequiredVectorWidth<128>] in { 3045 def pmovusqw128mem_mask : X86Builtin<"void(_Vector<8, short *>, _Vector<2, long long int>, unsigned char)">; 3046} 3047 3048let Features = "avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<256>] in { 3049 def pmovusqw256_mask : X86Builtin<"_Vector<8, short>(_Vector<4, long long int>, _Vector<8, short>, unsigned char)">; 3050} 3051 3052let Features = "avx512vl", Attributes = [NoThrow, RequiredVectorWidth<256>] in { 3053 def pmovusqw256mem_mask : X86Builtin<"void(_Vector<8, short *>, _Vector<4, long long int>, unsigned char)">; 3054} 3055 3056let Features = "avx512f,evex512", Attributes = [NoThrow, Const, RequiredVectorWidth<512>] in { 3057 def pmovdb512_mask : X86Builtin<"_Vector<16, char>(_Vector<16, int>, _Vector<16, char>, unsigned short)">; 3058} 3059 3060let Features = "avx512f,evex512", Attributes = [NoThrow, RequiredVectorWidth<512>] in { 3061 def pmovdb512mem_mask : X86Builtin<"void(_Vector<16, char *>, _Vector<16, int>, unsigned short)">; 3062} 3063 3064let Features = "avx512bw,evex512", Attributes = [NoThrow, RequiredVectorWidth<512>] in { 3065 def pmovwb512mem_mask : X86Builtin<"void(_Vector<32, char *>, _Vector<32, short>, unsigned int)">; 3066} 3067 3068let Features = "avx512f,evex512", Attributes = [NoThrow, Const, RequiredVectorWidth<512>] in { 3069 def pmovdw512_mask : X86Builtin<"_Vector<16, short>(_Vector<16, int>, _Vector<16, short>, unsigned short)">; 3070} 3071 3072let Features = "avx512f,evex512", Attributes = [NoThrow, RequiredVectorWidth<512>] in { 3073 def pmovdw512mem_mask : X86Builtin<"void(_Vector<16, short *>, _Vector<16, int>, unsigned short)">; 3074} 3075 3076let Features = "avx512f,evex512", Attributes = [NoThrow, Const, RequiredVectorWidth<512>] in { 3077 def pmovqb512_mask : X86Builtin<"_Vector<16, char>(_Vector<8, long long int>, _Vector<16, char>, unsigned char)">; 3078} 3079 3080let Features = "avx512f,evex512", Attributes = [NoThrow, RequiredVectorWidth<512>] in { 3081 def pmovqb512mem_mask : X86Builtin<"void(_Vector<16, char *>, _Vector<8, long long int>, unsigned char)">; 3082} 3083 3084let Features = "avx512f,evex512", Attributes = [NoThrow, Const, RequiredVectorWidth<512>] in { 3085 def pmovqd512_mask : X86Builtin<"_Vector<8, int>(_Vector<8, long long int>, _Vector<8, int>, unsigned char)">; 3086} 3087 3088let Features = "avx512f,evex512", Attributes = [NoThrow, RequiredVectorWidth<512>] in { 3089 def pmovqd512mem_mask : X86Builtin<"void(_Vector<8, int *>, _Vector<8, long long int>, unsigned char)">; 3090} 3091 3092let Features = "avx512f,evex512", Attributes = [NoThrow, Const, RequiredVectorWidth<512>] in { 3093 def pmovqw512_mask : X86Builtin<"_Vector<8, short>(_Vector<8, long long int>, _Vector<8, short>, unsigned char)">; 3094} 3095 3096let Features = "avx512f,evex512", Attributes = [NoThrow, RequiredVectorWidth<512>] in { 3097 def pmovqw512mem_mask : X86Builtin<"void(_Vector<8, short *>, _Vector<8, long long int>, unsigned char)">; 3098} 3099 3100let Features = "avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 3101 def pmovdb128_mask : X86Builtin<"_Vector<16, char>(_Vector<4, int>, _Vector<16, char>, unsigned char)">; 3102} 3103 3104let Features = "avx512vl,avx512bw", Attributes = [NoThrow, RequiredVectorWidth<128>] in { 3105 def pmovwb128mem_mask : X86Builtin<"void(_Vector<16, char *>, _Vector<8, short>, unsigned char)">; 3106} 3107 3108let Features = "avx512vl", Attributes = [NoThrow, RequiredVectorWidth<128>] in { 3109 def pmovdb128mem_mask : X86Builtin<"void(_Vector<16, char *>, _Vector<4, int>, unsigned char)">; 3110} 3111 3112let Features = "avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<256>] in { 3113 def pmovdb256_mask : X86Builtin<"_Vector<16, char>(_Vector<8, int>, _Vector<16, char>, unsigned char)">; 3114} 3115 3116let Features = "avx512vl", Attributes = [NoThrow, RequiredVectorWidth<256>] in { 3117 def pmovdb256mem_mask : X86Builtin<"void(_Vector<16, char *>, _Vector<8, int>, unsigned char)">; 3118} 3119 3120let Features = "avx512vl,avx512bw", Attributes = [NoThrow, RequiredVectorWidth<256>] in { 3121 def pmovwb256mem_mask : X86Builtin<"void(_Vector<16, char *>, _Vector<16, short>, unsigned short)">; 3122} 3123 3124let Features = "avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 3125 def pmovdw128_mask : X86Builtin<"_Vector<8, short>(_Vector<4, int>, _Vector<8, short>, unsigned char)">; 3126} 3127 3128let Features = "avx512vl", Attributes = [NoThrow, RequiredVectorWidth<128>] in { 3129 def pmovdw128mem_mask : X86Builtin<"void(_Vector<8, short *>, _Vector<4, int>, unsigned char)">; 3130} 3131 3132let Features = "avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<256>] in { 3133 def pmovdw256_mask : X86Builtin<"_Vector<8, short>(_Vector<8, int>, _Vector<8, short>, unsigned char)">; 3134} 3135 3136let Features = "avx512vl", Attributes = [NoThrow, RequiredVectorWidth<256>] in { 3137 def pmovdw256mem_mask : X86Builtin<"void(_Vector<8, short *>, _Vector<8, int>, unsigned char)">; 3138} 3139 3140let Features = "avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 3141 def pmovqb128_mask : X86Builtin<"_Vector<16, char>(_Vector<2, long long int>, _Vector<16, char>, unsigned char)">; 3142} 3143 3144let Features = "avx512vl", Attributes = [NoThrow, RequiredVectorWidth<128>] in { 3145 def pmovqb128mem_mask : X86Builtin<"void(_Vector<16, char *>, _Vector<2, long long int>, unsigned char)">; 3146} 3147 3148let Features = "avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<256>] in { 3149 def pmovqb256_mask : X86Builtin<"_Vector<16, char>(_Vector<4, long long int>, _Vector<16, char>, unsigned char)">; 3150} 3151 3152let Features = "avx512vl", Attributes = [NoThrow, RequiredVectorWidth<256>] in { 3153 def pmovqb256mem_mask : X86Builtin<"void(_Vector<16, char *>, _Vector<4, long long int>, unsigned char)">; 3154} 3155 3156let Features = "avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 3157 def pmovqd128_mask : X86Builtin<"_Vector<4, int>(_Vector<2, long long int>, _Vector<4, int>, unsigned char)">; 3158} 3159 3160let Features = "avx512vl", Attributes = [NoThrow, RequiredVectorWidth<128>] in { 3161 def pmovqd128mem_mask : X86Builtin<"void(_Vector<4, int *>, _Vector<2, long long int>, unsigned char)">; 3162} 3163 3164let Features = "avx512vl", Attributes = [NoThrow, RequiredVectorWidth<256>] in { 3165 def pmovqd256mem_mask : X86Builtin<"void(_Vector<4, int *>, _Vector<4, long long int>, unsigned char)">; 3166} 3167 3168let Features = "avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 3169 def pmovqw128_mask : X86Builtin<"_Vector<8, short>(_Vector<2, long long int>, _Vector<8, short>, unsigned char)">; 3170} 3171 3172let Features = "avx512vl", Attributes = [NoThrow, RequiredVectorWidth<128>] in { 3173 def pmovqw128mem_mask : X86Builtin<"void(_Vector<8, short *>, _Vector<2, long long int>, unsigned char)">; 3174} 3175 3176let Features = "avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<256>] in { 3177 def pmovqw256_mask : X86Builtin<"_Vector<8, short>(_Vector<4, long long int>, _Vector<8, short>, unsigned char)">; 3178} 3179 3180let Features = "avx512vl", Attributes = [NoThrow, RequiredVectorWidth<256>] in { 3181 def pmovqw256mem_mask : X86Builtin<"void(_Vector<8, short *>, _Vector<4, long long int>, unsigned char)">; 3182} 3183 3184let Features = "avx512dq,evex512", Attributes = [NoThrow, Const, RequiredVectorWidth<512>] in { 3185 def extractf32x8_mask : X86Builtin<"_Vector<8, float>(_Vector<16, float>, _Constant int, _Vector<8, float>, unsigned char)">; 3186 def extractf64x2_512_mask : X86Builtin<"_Vector<2, double>(_Vector<8, double>, _Constant int, _Vector<2, double>, unsigned char)">; 3187 def extracti32x8_mask : X86Builtin<"_Vector<8, int>(_Vector<16, int>, _Constant int, _Vector<8, int>, unsigned char)">; 3188 def extracti64x2_512_mask : X86Builtin<"_Vector<2, long long int>(_Vector<8, long long int>, _Constant int, _Vector<2, long long int>, unsigned char)">; 3189} 3190 3191let Features = "avx512f,evex512", Attributes = [NoThrow, Const, RequiredVectorWidth<512>] in { 3192 def extracti32x4_mask : X86Builtin<"_Vector<4, int>(_Vector<16, int>, _Constant int, _Vector<4, int>, unsigned char)">; 3193 def extracti64x4_mask : X86Builtin<"_Vector<4, long long int>(_Vector<8, long long int>, _Constant int, _Vector<4, long long int>, unsigned char)">; 3194} 3195 3196let Features = "avx512dq,avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<256>] in { 3197 def extractf64x2_256_mask : X86Builtin<"_Vector<2, double>(_Vector<4, double>, _Constant int, _Vector<2, double>, unsigned char)">; 3198 def extracti64x2_256_mask : X86Builtin<"_Vector<2, long long int>(_Vector<4, long long int>, _Constant int, _Vector<2, long long int>, unsigned char)">; 3199} 3200 3201let Features = "avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<256>] in { 3202 def extractf32x4_256_mask : X86Builtin<"_Vector<4, float>(_Vector<8, float>, _Constant int, _Vector<4, float>, unsigned char)">; 3203 def extracti32x4_256_mask : X86Builtin<"_Vector<4, int>(_Vector<8, int>, _Constant int, _Vector<4, int>, unsigned char)">; 3204} 3205 3206let Features = "avx512dq,evex512", Attributes = [NoThrow, Const, RequiredVectorWidth<512>] in { 3207 def insertf32x8 : X86Builtin<"_Vector<16, float>(_Vector<16, float>, _Vector<8, float>, _Constant int)">; 3208 def insertf64x2_512 : X86Builtin<"_Vector<8, double>(_Vector<8, double>, _Vector<2, double>, _Constant int)">; 3209 def inserti32x8 : X86Builtin<"_Vector<16, int>(_Vector<16, int>, _Vector<8, int>, _Constant int)">; 3210 def inserti64x2_512 : X86Builtin<"_Vector<8, long long int>(_Vector<8, long long int>, _Vector<2, long long int>, _Constant int)">; 3211} 3212 3213let Features = "avx512f,evex512", Attributes = [NoThrow, Const, RequiredVectorWidth<512>] in { 3214 def insertf64x4 : X86Builtin<"_Vector<8, double>(_Vector<8, double>, _Vector<4, double>, _Constant int)">; 3215 def inserti64x4 : X86Builtin<"_Vector<8, long long int>(_Vector<8, long long int>, _Vector<4, long long int>, _Constant int)">; 3216} 3217 3218let Features = "avx512dq,avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<256>] in { 3219 def insertf64x2_256 : X86Builtin<"_Vector<4, double>(_Vector<4, double>, _Vector<2, double>, _Constant int)">; 3220 def inserti64x2_256 : X86Builtin<"_Vector<4, long long int>(_Vector<4, long long int>, _Vector<2, long long int>, _Constant int)">; 3221} 3222 3223let Features = "avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<256>] in { 3224 def insertf32x4_256 : X86Builtin<"_Vector<8, float>(_Vector<8, float>, _Vector<4, float>, _Constant int)">; 3225 def inserti32x4_256 : X86Builtin<"_Vector<8, int>(_Vector<8, int>, _Vector<4, int>, _Constant int)">; 3226} 3227 3228let Features = "avx512f,evex512", Attributes = [NoThrow, Const, RequiredVectorWidth<512>] in { 3229 def insertf32x4 : X86Builtin<"_Vector<16, float>(_Vector<16, float>, _Vector<4, float>, _Constant int)">; 3230 def inserti32x4 : X86Builtin<"_Vector<16, int>(_Vector<16, int>, _Vector<4, int>, _Constant int)">; 3231} 3232 3233let Features = "avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 3234 def getmantpd128_mask : X86Builtin<"_Vector<2, double>(_Vector<2, double>, _Constant int, _Vector<2, double>, unsigned char)">; 3235} 3236 3237let Features = "avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<256>] in { 3238 def getmantpd256_mask : X86Builtin<"_Vector<4, double>(_Vector<4, double>, _Constant int, _Vector<4, double>, unsigned char)">; 3239} 3240 3241let Features = "avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 3242 def getmantps128_mask : X86Builtin<"_Vector<4, float>(_Vector<4, float>, _Constant int, _Vector<4, float>, unsigned char)">; 3243} 3244 3245let Features = "avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<256>] in { 3246 def getmantps256_mask : X86Builtin<"_Vector<8, float>(_Vector<8, float>, _Constant int, _Vector<8, float>, unsigned char)">; 3247} 3248 3249let Features = "avx512f,evex512", Attributes = [NoThrow, Const, RequiredVectorWidth<512>] in { 3250 def getmantpd512_mask : X86Builtin<"_Vector<8, double>(_Vector<8, double>, _Constant int, _Vector<8, double>, unsigned char, _Constant int)">; 3251 def getmantps512_mask : X86Builtin<"_Vector<16, float>(_Vector<16, float>, _Constant int, _Vector<16, float>, unsigned short, _Constant int)">; 3252 def getexppd512_mask : X86Builtin<"_Vector<8, double>(_Vector<8, double>, _Vector<8, double>, unsigned char, _Constant int)">; 3253 def getexpps512_mask : X86Builtin<"_Vector<16, float>(_Vector<16, float>, _Vector<16, float>, unsigned short, _Constant int)">; 3254} 3255 3256let Features = "avx512f", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 3257 def vfmaddss3_mask : X86Builtin<"_Vector<4, float>(_Vector<4, float>, _Vector<4, float>, _Vector<4, float>, unsigned char, _Constant int)">; 3258 def vfmaddss3_maskz : X86Builtin<"_Vector<4, float>(_Vector<4, float>, _Vector<4, float>, _Vector<4, float>, unsigned char, _Constant int)">; 3259 def vfmaddss3_mask3 : X86Builtin<"_Vector<4, float>(_Vector<4, float>, _Vector<4, float>, _Vector<4, float>, unsigned char, _Constant int)">; 3260 def vfmaddsd3_mask : X86Builtin<"_Vector<2, double>(_Vector<2, double>, _Vector<2, double>, _Vector<2, double>, unsigned char, _Constant int)">; 3261 def vfmaddsd3_maskz : X86Builtin<"_Vector<2, double>(_Vector<2, double>, _Vector<2, double>, _Vector<2, double>, unsigned char, _Constant int)">; 3262 def vfmaddsd3_mask3 : X86Builtin<"_Vector<2, double>(_Vector<2, double>, _Vector<2, double>, _Vector<2, double>, unsigned char, _Constant int)">; 3263 def vfmsubsd3_mask3 : X86Builtin<"_Vector<2, double>(_Vector<2, double>, _Vector<2, double>, _Vector<2, double>, unsigned char, _Constant int)">; 3264 def vfmsubss3_mask3 : X86Builtin<"_Vector<4, float>(_Vector<4, float>, _Vector<4, float>, _Vector<4, float>, unsigned char, _Constant int)">; 3265} 3266 3267let Features = "avx512f,evex512", Attributes = [NoThrow, Const, RequiredVectorWidth<512>] in { 3268 def permdf512 : X86Builtin<"_Vector<8, double>(_Vector<8, double>, _Constant int)">; 3269 def permdi512 : X86Builtin<"_Vector<8, long long int>(_Vector<8, long long int>, _Constant int)">; 3270} 3271 3272let Features = "avx512bw,evex512", Attributes = [NoThrow, Const, RequiredVectorWidth<512>] in { 3273 def permvarhi512 : X86Builtin<"_Vector<32, short>(_Vector<32, short>, _Vector<32, short>)">; 3274} 3275 3276let Features = "avx512f,evex512", Attributes = [NoThrow, Const, RequiredVectorWidth<512>] in { 3277 def permvardf512 : X86Builtin<"_Vector<8, double>(_Vector<8, double>, _Vector<8, long long int>)">; 3278 def permvardi512 : X86Builtin<"_Vector<8, long long int>(_Vector<8, long long int>, _Vector<8, long long int>)">; 3279 def permvarsf512 : X86Builtin<"_Vector<16, float>(_Vector<16, float>, _Vector<16, int>)">; 3280 def permvarsi512 : X86Builtin<"_Vector<16, int>(_Vector<16, int>, _Vector<16, int>)">; 3281} 3282 3283let Features = "avx512vbmi,evex512", Attributes = [NoThrow, Const, RequiredVectorWidth<512>] in { 3284 def permvarqi512 : X86Builtin<"_Vector<64, char>(_Vector<64, char>, _Vector<64, char>)">; 3285} 3286 3287let Features = "avx512vbmi,avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 3288 def permvarqi128 : X86Builtin<"_Vector<16, char>(_Vector<16, char>, _Vector<16, char>)">; 3289} 3290 3291let Features = "avx512vbmi,avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<256>] in { 3292 def permvarqi256 : X86Builtin<"_Vector<32, char>(_Vector<32, char>, _Vector<32, char>)">; 3293} 3294 3295let Features = "avx512bw,avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 3296 def permvarhi128 : X86Builtin<"_Vector<8, short>(_Vector<8, short>, _Vector<8, short>)">; 3297} 3298 3299let Features = "avx512bw,avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<256>] in { 3300 def permvarhi256 : X86Builtin<"_Vector<16, short>(_Vector<16, short>, _Vector<16, short>)">; 3301} 3302 3303let Features = "avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<256>] in { 3304 def permvardf256 : X86Builtin<"_Vector<4, double>(_Vector<4, double>, _Vector<4, long long int>)">; 3305 def permvardi256 : X86Builtin<"_Vector<4, long long int>(_Vector<4, long long int>, _Vector<4, long long int>)">; 3306} 3307 3308let Features = "avx512dq,avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 3309 def fpclasspd128_mask : X86Builtin<"unsigned char(_Vector<2, double>, _Constant int, unsigned char)">; 3310} 3311 3312let Features = "avx512dq,avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<256>] in { 3313 def fpclasspd256_mask : X86Builtin<"unsigned char(_Vector<4, double>, _Constant int, unsigned char)">; 3314} 3315 3316let Features = "avx512dq,avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 3317 def fpclassps128_mask : X86Builtin<"unsigned char(_Vector<4, float>, _Constant int, unsigned char)">; 3318} 3319 3320let Features = "avx512dq,avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<256>] in { 3321 def fpclassps256_mask : X86Builtin<"unsigned char(_Vector<8, float>, _Constant int, unsigned char)">; 3322} 3323 3324let Features = "avx512dq,evex512", Attributes = [NoThrow, Const, RequiredVectorWidth<512>] in { 3325 def fpclassps512_mask : X86Builtin<"unsigned short(_Vector<16, float>, _Constant int, unsigned short)">; 3326 def fpclasspd512_mask : X86Builtin<"unsigned char(_Vector<8, double>, _Constant int, unsigned char)">; 3327} 3328 3329let Features = "avx512dq", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 3330 def fpclasssd_mask : X86Builtin<"unsigned char(_Vector<2, double>, _Constant int, unsigned char)">; 3331 def fpclassss_mask : X86Builtin<"unsigned char(_Vector<4, float>, _Constant int, unsigned char)">; 3332} 3333 3334let Features = "avx512dq", Attributes = [NoThrow, Const] in { 3335 def kaddqi : X86Builtin<"unsigned char(unsigned char, unsigned char)">; 3336 def kaddhi : X86Builtin<"unsigned short(unsigned short, unsigned short)">; 3337} 3338 3339let Features = "avx512bw", Attributes = [NoThrow, Const] in { 3340 def kaddsi : X86Builtin<"unsigned int(unsigned int, unsigned int)">; 3341 def kadddi : X86Builtin<"unsigned long long int(unsigned long long int, unsigned long long int)">; 3342} 3343 3344let Features = "avx512dq", Attributes = [NoThrow, Const] in { 3345 def kandqi : X86Builtin<"unsigned char(unsigned char, unsigned char)">; 3346} 3347 3348let Features = "avx512f", Attributes = [NoThrow, Const] in { 3349 def kandhi : X86Builtin<"unsigned short(unsigned short, unsigned short)">; 3350} 3351 3352let Features = "avx512bw", Attributes = [NoThrow, Const] in { 3353 def kandsi : X86Builtin<"unsigned int(unsigned int, unsigned int)">; 3354 def kanddi : X86Builtin<"unsigned long long int(unsigned long long int, unsigned long long int)">; 3355} 3356 3357let Features = "avx512dq", Attributes = [NoThrow, Const] in { 3358 def kandnqi : X86Builtin<"unsigned char(unsigned char, unsigned char)">; 3359} 3360 3361let Features = "avx512f", Attributes = [NoThrow, Const] in { 3362 def kandnhi : X86Builtin<"unsigned short(unsigned short, unsigned short)">; 3363} 3364 3365let Features = "avx512bw", Attributes = [NoThrow, Const] in { 3366 def kandnsi : X86Builtin<"unsigned int(unsigned int, unsigned int)">; 3367 def kandndi : X86Builtin<"unsigned long long int(unsigned long long int, unsigned long long int)">; 3368} 3369 3370let Features = "avx512dq", Attributes = [NoThrow, Const] in { 3371 def korqi : X86Builtin<"unsigned char(unsigned char, unsigned char)">; 3372} 3373 3374let Features = "avx512f", Attributes = [NoThrow, Const] in { 3375 def korhi : X86Builtin<"unsigned short(unsigned short, unsigned short)">; 3376} 3377 3378let Features = "avx512bw", Attributes = [NoThrow, Const] in { 3379 def korsi : X86Builtin<"unsigned int(unsigned int, unsigned int)">; 3380 def kordi : X86Builtin<"unsigned long long int(unsigned long long int, unsigned long long int)">; 3381} 3382 3383let Features = "avx512dq", Attributes = [NoThrow, Const] in { 3384 def kortestcqi : X86Builtin<"int(unsigned char, unsigned char)">; 3385 def kortestzqi : X86Builtin<"int(unsigned char, unsigned char)">; 3386} 3387 3388let Features = "avx512f", Attributes = [NoThrow, Const] in { 3389 def kortestchi : X86Builtin<"int(unsigned short, unsigned short)">; 3390 def kortestzhi : X86Builtin<"int(unsigned short, unsigned short)">; 3391} 3392 3393let Features = "avx512bw", Attributes = [NoThrow, Const] in { 3394 def kortestcsi : X86Builtin<"int(unsigned int, unsigned int)">; 3395 def kortestzsi : X86Builtin<"int(unsigned int, unsigned int)">; 3396 def kortestcdi : X86Builtin<"int(unsigned long long int, unsigned long long int)">; 3397 def kortestzdi : X86Builtin<"int(unsigned long long int, unsigned long long int)">; 3398} 3399 3400let Features = "avx512dq", Attributes = [NoThrow, Const] in { 3401 def ktestcqi : X86Builtin<"int(unsigned char, unsigned char)">; 3402 def ktestzqi : X86Builtin<"int(unsigned char, unsigned char)">; 3403 def ktestchi : X86Builtin<"int(unsigned short, unsigned short)">; 3404 def ktestzhi : X86Builtin<"int(unsigned short, unsigned short)">; 3405} 3406 3407let Features = "avx512bw", Attributes = [NoThrow, Const] in { 3408 def ktestcsi : X86Builtin<"int(unsigned int, unsigned int)">; 3409 def ktestzsi : X86Builtin<"int(unsigned int, unsigned int)">; 3410 def ktestcdi : X86Builtin<"int(unsigned long long int, unsigned long long int)">; 3411 def ktestzdi : X86Builtin<"int(unsigned long long int, unsigned long long int)">; 3412} 3413 3414let Features = "avx512f", Attributes = [NoThrow, Const] in { 3415 def kunpckhi : X86Builtin<"unsigned short(unsigned short, unsigned short)">; 3416} 3417 3418let Features = "avx512dq", Attributes = [NoThrow, Const] in { 3419 def kxnorqi : X86Builtin<"unsigned char(unsigned char, unsigned char)">; 3420} 3421 3422let Features = "avx512f", Attributes = [NoThrow, Const] in { 3423 def kxnorhi : X86Builtin<"unsigned short(unsigned short, unsigned short)">; 3424} 3425 3426let Features = "avx512bw", Attributes = [NoThrow, Const] in { 3427 def kxnorsi : X86Builtin<"unsigned int(unsigned int, unsigned int)">; 3428 def kxnordi : X86Builtin<"unsigned long long int(unsigned long long int, unsigned long long int)">; 3429} 3430 3431let Features = "avx512dq", Attributes = [NoThrow, Const] in { 3432 def kxorqi : X86Builtin<"unsigned char(unsigned char, unsigned char)">; 3433} 3434 3435let Features = "avx512f", Attributes = [NoThrow, Const] in { 3436 def kxorhi : X86Builtin<"unsigned short(unsigned short, unsigned short)">; 3437} 3438 3439let Features = "avx512bw", Attributes = [NoThrow, Const] in { 3440 def kxorsi : X86Builtin<"unsigned int(unsigned int, unsigned int)">; 3441 def kxordi : X86Builtin<"unsigned long long int(unsigned long long int, unsigned long long int)">; 3442} 3443 3444let Features = "avx512dq", Attributes = [NoThrow, Const] in { 3445 def kshiftliqi : X86Builtin<"unsigned char(unsigned char, _Constant unsigned int)">; 3446} 3447 3448let Features = "avx512f", Attributes = [NoThrow, Const] in { 3449 def kshiftlihi : X86Builtin<"unsigned short(unsigned short, _Constant unsigned int)">; 3450} 3451 3452let Features = "avx512bw", Attributes = [NoThrow, Const] in { 3453 def kshiftlisi : X86Builtin<"unsigned int(unsigned int, _Constant unsigned int)">; 3454 def kshiftlidi : X86Builtin<"unsigned long long int(unsigned long long int, _Constant unsigned int)">; 3455} 3456 3457let Features = "avx512dq", Attributes = [NoThrow, Const] in { 3458 def kshiftriqi : X86Builtin<"unsigned char(unsigned char, _Constant unsigned int)">; 3459} 3460 3461let Features = "avx512f", Attributes = [NoThrow, Const] in { 3462 def kshiftrihi : X86Builtin<"unsigned short(unsigned short, _Constant unsigned int)">; 3463} 3464 3465let Features = "avx512bw", Attributes = [NoThrow, Const] in { 3466 def kshiftrisi : X86Builtin<"unsigned int(unsigned int, _Constant unsigned int)">; 3467 def kshiftridi : X86Builtin<"unsigned long long int(unsigned long long int, _Constant unsigned int)">; 3468} 3469 3470let Features = "avx512dq", Attributes = [NoThrow, Const] in { 3471 def kmovb : X86Builtin<"unsigned char(unsigned char)">; 3472} 3473 3474let Features = "avx512f", Attributes = [NoThrow, Const] in { 3475 def kmovw : X86Builtin<"unsigned short(unsigned short)">; 3476} 3477 3478let Features = "avx512bw", Attributes = [NoThrow, Const] in { 3479 def kmovd : X86Builtin<"unsigned int(unsigned int)">; 3480 def kmovq : X86Builtin<"unsigned long long int(unsigned long long int)">; 3481} 3482 3483let Features = "avx512bw,evex512", Attributes = [NoThrow, Const, RequiredVectorWidth<512>] in { 3484 def palignr512 : X86Builtin<"_Vector<64, char>(_Vector<64, char>, _Vector<64, char>, _Constant int)">; 3485} 3486 3487let Features = "avx512bw,avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 3488 def dbpsadbw128 : X86Builtin<"_Vector<8, short>(_Vector<16, char>, _Vector<16, char>, _Constant int)">; 3489} 3490 3491let Features = "avx512bw,avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<256>] in { 3492 def dbpsadbw256 : X86Builtin<"_Vector<16, short>(_Vector<32, char>, _Vector<32, char>, _Constant int)">; 3493} 3494 3495let Features = "avx512bw,evex512", Attributes = [NoThrow, Const, RequiredVectorWidth<512>] in { 3496 def dbpsadbw512 : X86Builtin<"_Vector<32, short>(_Vector<64, char>, _Vector<64, char>, _Constant int)">; 3497 def psadbw512 : X86Builtin<"_Vector<8, long long int>(_Vector<64, char>, _Vector<64, char>)">; 3498} 3499 3500let Features = "avx512f,evex512", Attributes = [NoThrow, Const, RequiredVectorWidth<512>] in { 3501 def compressdf512_mask : X86Builtin<"_Vector<8, double>(_Vector<8, double>, _Vector<8, double>, unsigned char)">; 3502 def compressdi512_mask : X86Builtin<"_Vector<8, long long int>(_Vector<8, long long int>, _Vector<8, long long int>, unsigned char)">; 3503} 3504 3505let Features = "avx512vbmi2,evex512", Attributes = [NoThrow, Const, RequiredVectorWidth<512>] in { 3506 def compresshi512_mask : X86Builtin<"_Vector<32, short>(_Vector<32, short>, _Vector<32, short>, unsigned int)">; 3507 def compressqi512_mask : X86Builtin<"_Vector<64, char>(_Vector<64, char>, _Vector<64, char>, unsigned long long int)">; 3508} 3509 3510let Features = "avx512f,evex512", Attributes = [NoThrow, Const, RequiredVectorWidth<512>] in { 3511 def compresssf512_mask : X86Builtin<"_Vector<16, float>(_Vector<16, float>, _Vector<16, float>, unsigned short)">; 3512 def compresssi512_mask : X86Builtin<"_Vector<16, int>(_Vector<16, int>, _Vector<16, int>, unsigned short)">; 3513} 3514 3515let Features = "avx512f", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 3516 def cmpsd_mask : X86Builtin<"unsigned char(_Vector<2, double>, _Vector<2, double>, _Constant int, unsigned char, _Constant int)">; 3517 def cmpss_mask : X86Builtin<"unsigned char(_Vector<4, float>, _Vector<4, float>, _Constant int, unsigned char, _Constant int)">; 3518} 3519 3520let Features = "avx512f,evex512", Attributes = [NoThrow, Const, RequiredVectorWidth<512>] in { 3521 def pshufd512 : X86Builtin<"_Vector<16, int>(_Vector<16, int>, _Constant int)">; 3522 def expanddf512_mask : X86Builtin<"_Vector<8, double>(_Vector<8, double>, _Vector<8, double>, unsigned char)">; 3523 def expanddi512_mask : X86Builtin<"_Vector<8, long long int>(_Vector<8, long long int>, _Vector<8, long long int>, unsigned char)">; 3524} 3525 3526let Features = "avx512vbmi2,evex512", Attributes = [NoThrow, Const, RequiredVectorWidth<512>] in { 3527 def expandhi512_mask : X86Builtin<"_Vector<32, short>(_Vector<32, short>, _Vector<32, short>, unsigned int)">; 3528 def expandqi512_mask : X86Builtin<"_Vector<64, char>(_Vector<64, char>, _Vector<64, char>, unsigned long long int)">; 3529} 3530 3531let Features = "avx512f,evex512", Attributes = [NoThrow, RequiredVectorWidth<512>] in { 3532 def expandloaddf512_mask : X86Builtin<"_Vector<8, double>(_Vector<8, double const *>, _Vector<8, double>, unsigned char)">; 3533 def expandloaddi512_mask : X86Builtin<"_Vector<8, long long int>(_Vector<8, long long int const *>, _Vector<8, long long int>, unsigned char)">; 3534} 3535 3536let Features = "avx512vbmi2,evex512", Attributes = [NoThrow, RequiredVectorWidth<512>] in { 3537 def expandloadhi512_mask : X86Builtin<"_Vector<32, short>(_Vector<32, short const *>, _Vector<32, short>, unsigned int)">; 3538 def expandloadqi512_mask : X86Builtin<"_Vector<64, char>(_Vector<64, char const *>, _Vector<64, char>, unsigned long long int)">; 3539} 3540 3541let Features = "avx512f,evex512", Attributes = [NoThrow, RequiredVectorWidth<512>] in { 3542 def expandloadsf512_mask : X86Builtin<"_Vector<16, float>(_Vector<16, float const *>, _Vector<16, float>, unsigned short)">; 3543 def expandloadsi512_mask : X86Builtin<"_Vector<16, int>(_Vector<16, int const *>, _Vector<16, int>, unsigned short)">; 3544} 3545 3546let Features = "avx512f,evex512", Attributes = [NoThrow, Const, RequiredVectorWidth<512>] in { 3547 def expandsf512_mask : X86Builtin<"_Vector<16, float>(_Vector<16, float>, _Vector<16, float>, unsigned short)">; 3548 def expandsi512_mask : X86Builtin<"_Vector<16, int>(_Vector<16, int>, _Vector<16, int>, unsigned short)">; 3549 def cvtps2pd512_mask : X86Builtin<"_Vector<8, double>(_Vector<8, float>, _Vector<8, double>, unsigned char, _Constant int)">; 3550} 3551 3552let Features = "avx512f,evex512", Attributes = [NoThrow, RequiredVectorWidth<512>] in { 3553 def compressstoredf512_mask : X86Builtin<"void(_Vector<8, double *>, _Vector<8, double>, unsigned char)">; 3554 def compressstoredi512_mask : X86Builtin<"void(_Vector<8, long long int *>, _Vector<8, long long int>, unsigned char)">; 3555} 3556 3557let Features = "avx512vbmi2,evex512", Attributes = [NoThrow, RequiredVectorWidth<512>] in { 3558 def compressstorehi512_mask : X86Builtin<"void(_Vector<32, short *>, _Vector<32, short>, unsigned int)">; 3559 def compressstoreqi512_mask : X86Builtin<"void(_Vector<64, char *>, _Vector<64, char>, unsigned long long int)">; 3560} 3561 3562let Features = "avx512f,evex512", Attributes = [NoThrow, RequiredVectorWidth<512>] in { 3563 def compressstoresf512_mask : X86Builtin<"void(_Vector<16, float *>, _Vector<16, float>, unsigned short)">; 3564 def compressstoresi512_mask : X86Builtin<"void(_Vector<16, int *>, _Vector<16, int>, unsigned short)">; 3565} 3566 3567let Features = "avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 3568 def vcvtph2ps_mask : X86Builtin<"_Vector<4, float>(_Vector<8, short>, _Vector<4, float>, unsigned char)">; 3569} 3570 3571let Features = "avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<256>] in { 3572 def vcvtph2ps256_mask : X86Builtin<"_Vector<8, float>(_Vector<8, short>, _Vector<8, float>, unsigned char)">; 3573} 3574 3575let Features = "avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 3576 def vcvtps2ph_mask : X86Builtin<"_Vector<8, short>(_Vector<4, float>, _Constant int, _Vector<8, short>, unsigned char)">; 3577} 3578 3579let Features = "avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<256>] in { 3580 def vcvtps2ph256_mask : X86Builtin<"_Vector<8, short>(_Vector<8, float>, _Constant int, _Vector<8, short>, unsigned char)">; 3581} 3582 3583let Features = "avx512bw,evex512", Attributes = [NoThrow, Const, RequiredVectorWidth<512>] in { 3584 def cvtw2mask512 : X86Builtin<"unsigned int(_Vector<32, short>)">; 3585} 3586 3587let Features = "avx512bw,avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 3588 def cvtw2mask128 : X86Builtin<"unsigned char(_Vector<8, short>)">; 3589} 3590 3591let Features = "avx512bw,avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<256>] in { 3592 def cvtw2mask256 : X86Builtin<"unsigned short(_Vector<16, short>)">; 3593} 3594 3595let Features = "avx512f", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 3596 def cvtsd2ss_round_mask : X86Builtin<"_Vector<4, float>(_Vector<4, float>, _Vector<2, double>, _Vector<4, float>, unsigned char, _Constant int)">; 3597 def cvtsi2ss32 : X86Builtin<"_Vector<4, float>(_Vector<4, float>, int, _Constant int)">; 3598 def cvtss2sd_round_mask : X86Builtin<"_Vector<2, double>(_Vector<2, double>, _Vector<4, float>, _Vector<2, double>, unsigned char, _Constant int)">; 3599 def cvtusi2ss32 : X86Builtin<"_Vector<4, float>(_Vector<4, float>, unsigned int, _Constant int)">; 3600} 3601 3602let Features = "avx512vbmi,evex512", Attributes = [NoThrow, Const, RequiredVectorWidth<512>] in { 3603 def vpmultishiftqb512 : X86Builtin<"_Vector<64, char>(_Vector<64, char>, _Vector<64, char>)">; 3604} 3605 3606let Features = "avx512vbmi,avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 3607 def vpmultishiftqb128 : X86Builtin<"_Vector<16, char>(_Vector<16, char>, _Vector<16, char>)">; 3608} 3609 3610let Features = "avx512vbmi,avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<256>] in { 3611 def vpmultishiftqb256 : X86Builtin<"_Vector<32, char>(_Vector<32, char>, _Vector<32, char>)">; 3612} 3613 3614let Features = "avx512bf16,avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 3615 def cvtne2ps2bf16_128 : X86Builtin<"_Vector<8, __bf16>(_Vector<4, float>, _Vector<4, float>)">; 3616} 3617 3618let Features = "avx512bf16,avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<256>] in { 3619 def cvtne2ps2bf16_256 : X86Builtin<"_Vector<16, __bf16>(_Vector<8, float>, _Vector<8, float>)">; 3620} 3621 3622let Features = "avx512bf16,evex512", Attributes = [NoThrow, Const, RequiredVectorWidth<512>] in { 3623 def cvtne2ps2bf16_512 : X86Builtin<"_Vector<32, __bf16>(_Vector<16, float>, _Vector<16, float>)">; 3624} 3625 3626let Features = "avx512bf16,avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 3627 def cvtneps2bf16_128_mask : X86Builtin<"_Vector<8, __bf16>(_Vector<4, float>, _Vector<8, __bf16>, unsigned char)">; 3628} 3629 3630let Features = "avx512bf16,avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<256>] in { 3631 def cvtneps2bf16_256_mask : X86Builtin<"_Vector<8, __bf16>(_Vector<8, float>, _Vector<8, __bf16>, unsigned char)">; 3632} 3633 3634let Features = "avx512bf16,evex512", Attributes = [NoThrow, Const, RequiredVectorWidth<512>] in { 3635 def cvtneps2bf16_512_mask : X86Builtin<"_Vector<16, __bf16>(_Vector<16, float>, _Vector<16, __bf16>, unsigned short)">; 3636} 3637 3638let Features = "avx512bf16,avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 3639 def dpbf16ps_128 : X86Builtin<"_Vector<4, float>(_Vector<4, float>, _Vector<8, __bf16>, _Vector<8, __bf16>)">; 3640} 3641 3642let Features = "avx512bf16,avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<256>] in { 3643 def dpbf16ps_256 : X86Builtin<"_Vector<8, float>(_Vector<8, float>, _Vector<16, __bf16>, _Vector<16, __bf16>)">; 3644} 3645 3646let Features = "avx512bf16,evex512", Attributes = [NoThrow, Const, RequiredVectorWidth<512>] in { 3647 def dpbf16ps_512 : X86Builtin<"_Vector<16, float>(_Vector<16, float>, _Vector<32, __bf16>, _Vector<32, __bf16>)">; 3648} 3649 3650let Features = "avx512bf16", Attributes = [NoThrow, Const] in { 3651 def cvtsbf162ss_32 : X86Builtin<"float(__bf16)">; 3652} 3653 3654let Features = "avx512vp2intersect,evex512", Attributes = [NoThrow, RequiredVectorWidth<512>] in { 3655 def vp2intersect_q_512 : X86Builtin<"void(_Vector<8, long long int>, _Vector<8, long long int>, unsigned char *, unsigned char *)">; 3656} 3657 3658let Features = "avx512vp2intersect,avx512vl", Attributes = [NoThrow, RequiredVectorWidth<256>] in { 3659 def vp2intersect_q_256 : X86Builtin<"void(_Vector<4, long long int>, _Vector<4, long long int>, unsigned char *, unsigned char *)">; 3660} 3661 3662let Features = "avx512vp2intersect,avx512vl", Attributes = [NoThrow, RequiredVectorWidth<128>] in { 3663 def vp2intersect_q_128 : X86Builtin<"void(_Vector<2, long long int>, _Vector<2, long long int>, unsigned char *, unsigned char *)">; 3664} 3665 3666let Features = "avx512vp2intersect,evex512", Attributes = [NoThrow, RequiredVectorWidth<512>] in { 3667 def vp2intersect_d_512 : X86Builtin<"void(_Vector<16, int>, _Vector<16, int>, unsigned short *, unsigned short *)">; 3668} 3669 3670let Features = "avx512vp2intersect,avx512vl", Attributes = [NoThrow, RequiredVectorWidth<256>] in { 3671 def vp2intersect_d_256 : X86Builtin<"void(_Vector<8, int>, _Vector<8, int>, unsigned char *, unsigned char *)">; 3672} 3673 3674let Features = "avx512vp2intersect,avx512vl", Attributes = [NoThrow, RequiredVectorWidth<128>] in { 3675 def vp2intersect_d_128 : X86Builtin<"void(_Vector<4, int>, _Vector<4, int>, unsigned char *, unsigned char *)">; 3676} 3677 3678let Features = "avx512fp16", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 3679 def vcomish : X86Builtin<"int(_Vector<8, _Float16>, _Vector<8, _Float16>, _Constant int, _Constant int)">; 3680} 3681 3682let Features = "avx512fp16,evex512", Attributes = [NoThrow, Const, RequiredVectorWidth<512>] in { 3683 def addph512 : X86Builtin<"_Vector<32, _Float16>(_Vector<32, _Float16>, _Vector<32, _Float16>, _Constant int)">; 3684 def subph512 : X86Builtin<"_Vector<32, _Float16>(_Vector<32, _Float16>, _Vector<32, _Float16>, _Constant int)">; 3685 def mulph512 : X86Builtin<"_Vector<32, _Float16>(_Vector<32, _Float16>, _Vector<32, _Float16>, _Constant int)">; 3686 def divph512 : X86Builtin<"_Vector<32, _Float16>(_Vector<32, _Float16>, _Vector<32, _Float16>, _Constant int)">; 3687 def maxph512 : X86Builtin<"_Vector<32, _Float16>(_Vector<32, _Float16>, _Vector<32, _Float16>, _Constant int)">; 3688 def minph512 : X86Builtin<"_Vector<32, _Float16>(_Vector<32, _Float16>, _Vector<32, _Float16>, _Constant int)">; 3689} 3690 3691let Features = "avx512fp16,avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<256>] in { 3692 def minph256 : X86Builtin<"_Vector<16, _Float16>(_Vector<16, _Float16>, _Vector<16, _Float16>)">; 3693} 3694 3695let Features = "avx512fp16,avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 3696 def minph128 : X86Builtin<"_Vector<8, _Float16>(_Vector<8, _Float16>, _Vector<8, _Float16>)">; 3697} 3698 3699let Features = "avx512fp16,avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<256>] in { 3700 def maxph256 : X86Builtin<"_Vector<16, _Float16>(_Vector<16, _Float16>, _Vector<16, _Float16>)">; 3701} 3702 3703let Features = "avx512fp16,avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 3704 def maxph128 : X86Builtin<"_Vector<8, _Float16>(_Vector<8, _Float16>, _Vector<8, _Float16>)">; 3705} 3706 3707let Features = "avx512fp16", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 3708 def addsh_round_mask : X86Builtin<"_Vector<8, _Float16>(_Vector<8, _Float16>, _Vector<8, _Float16>, _Vector<8, _Float16>, unsigned char, _Constant int)">; 3709 def divsh_round_mask : X86Builtin<"_Vector<8, _Float16>(_Vector<8, _Float16>, _Vector<8, _Float16>, _Vector<8, _Float16>, unsigned char, _Constant int)">; 3710 def mulsh_round_mask : X86Builtin<"_Vector<8, _Float16>(_Vector<8, _Float16>, _Vector<8, _Float16>, _Vector<8, _Float16>, unsigned char, _Constant int)">; 3711 def subsh_round_mask : X86Builtin<"_Vector<8, _Float16>(_Vector<8, _Float16>, _Vector<8, _Float16>, _Vector<8, _Float16>, unsigned char, _Constant int)">; 3712 def maxsh_round_mask : X86Builtin<"_Vector<8, _Float16>(_Vector<8, _Float16>, _Vector<8, _Float16>, _Vector<8, _Float16>, unsigned char, _Constant int)">; 3713 def minsh_round_mask : X86Builtin<"_Vector<8, _Float16>(_Vector<8, _Float16>, _Vector<8, _Float16>, _Vector<8, _Float16>, unsigned char, _Constant int)">; 3714} 3715 3716let Features = "avx512fp16,evex512", Attributes = [NoThrow, Const, RequiredVectorWidth<512>] in { 3717 def cmpph512_mask : X86Builtin<"unsigned int(_Vector<32, _Float16>, _Vector<32, _Float16>, _Constant int, unsigned int, _Constant int)">; 3718} 3719 3720let Features = "avx512fp16,avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<256>] in { 3721 def cmpph256_mask : X86Builtin<"unsigned short(_Vector<16, _Float16>, _Vector<16, _Float16>, _Constant int, unsigned short)">; 3722} 3723 3724let Features = "avx512fp16,avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 3725 def cmpph128_mask : X86Builtin<"unsigned char(_Vector<8, _Float16>, _Vector<8, _Float16>, _Constant int, unsigned char)">; 3726} 3727 3728let Features = "avx512fp16", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 3729 def cmpsh_mask : X86Builtin<"unsigned char(_Vector<8, _Float16>, _Vector<8, _Float16>, _Constant int, unsigned char, _Constant int)">; 3730} 3731 3732let Features = "avx512fp16", Attributes = [NoThrow, RequiredVectorWidth<128>] in { 3733 def loadsh128_mask : X86Builtin<"_Vector<8, _Float16>(_Vector<8, _Float16 const *>, _Vector<8, _Float16>, unsigned char)">; 3734 def storesh128_mask : X86Builtin<"void(_Vector<8, _Float16 *>, _Vector<8, _Float16>, unsigned char)">; 3735} 3736 3737let Features = "avx512fp16,avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 3738 def rcpph128_mask : X86Builtin<"_Vector<8, _Float16>(_Vector<8, _Float16>, _Vector<8, _Float16>, unsigned char)">; 3739} 3740 3741let Features = "avx512fp16,avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<256>] in { 3742 def rcpph256_mask : X86Builtin<"_Vector<16, _Float16>(_Vector<16, _Float16>, _Vector<16, _Float16>, unsigned short)">; 3743} 3744 3745let Features = "avx512fp16,evex512", Attributes = [NoThrow, Const, RequiredVectorWidth<512>] in { 3746 def rcpph512_mask : X86Builtin<"_Vector<32, _Float16>(_Vector<32, _Float16>, _Vector<32, _Float16>, unsigned int)">; 3747} 3748 3749let Features = "avx512fp16,avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 3750 def rsqrtph128_mask : X86Builtin<"_Vector<8, _Float16>(_Vector<8, _Float16>, _Vector<8, _Float16>, unsigned char)">; 3751} 3752 3753let Features = "avx512fp16,avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<256>] in { 3754 def rsqrtph256_mask : X86Builtin<"_Vector<16, _Float16>(_Vector<16, _Float16>, _Vector<16, _Float16>, unsigned short)">; 3755} 3756 3757let Features = "avx512fp16,evex512", Attributes = [NoThrow, Const, RequiredVectorWidth<512>] in { 3758 def rsqrtph512_mask : X86Builtin<"_Vector<32, _Float16>(_Vector<32, _Float16>, _Vector<32, _Float16>, unsigned int)">; 3759} 3760 3761let Features = "avx512fp16,avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 3762 def getmantph128_mask : X86Builtin<"_Vector<8, _Float16>(_Vector<8, _Float16>, _Constant int, _Vector<8, _Float16>, unsigned char)">; 3763} 3764 3765let Features = "avx512fp16,avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<256>] in { 3766 def getmantph256_mask : X86Builtin<"_Vector<16, _Float16>(_Vector<16, _Float16>, _Constant int, _Vector<16, _Float16>, unsigned short)">; 3767} 3768 3769let Features = "avx512fp16,evex512", Attributes = [NoThrow, Const, RequiredVectorWidth<512>] in { 3770 def getmantph512_mask : X86Builtin<"_Vector<32, _Float16>(_Vector<32, _Float16>, _Constant int, _Vector<32, _Float16>, unsigned int, _Constant int)">; 3771} 3772 3773let Features = "avx512fp16,avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 3774 def getexpph128_mask : X86Builtin<"_Vector<8, _Float16>(_Vector<8, _Float16>, _Vector<8, _Float16>, unsigned char)">; 3775} 3776 3777let Features = "avx512fp16,avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<256>] in { 3778 def getexpph256_mask : X86Builtin<"_Vector<16, _Float16>(_Vector<16, _Float16>, _Vector<16, _Float16>, unsigned short)">; 3779} 3780 3781let Features = "avx512fp16,evex512", Attributes = [NoThrow, Const, RequiredVectorWidth<512>] in { 3782 def getexpph512_mask : X86Builtin<"_Vector<32, _Float16>(_Vector<32, _Float16>, _Vector<32, _Float16>, unsigned int, _Constant int)">; 3783} 3784 3785let Features = "avx512fp16,avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 3786 def scalefph128_mask : X86Builtin<"_Vector<8, _Float16>(_Vector<8, _Float16>, _Vector<8, _Float16>, _Vector<8, _Float16>, unsigned char)">; 3787} 3788 3789let Features = "avx512fp16,avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<256>] in { 3790 def scalefph256_mask : X86Builtin<"_Vector<16, _Float16>(_Vector<16, _Float16>, _Vector<16, _Float16>, _Vector<16, _Float16>, unsigned short)">; 3791} 3792 3793let Features = "avx512fp16,evex512", Attributes = [NoThrow, Const, RequiredVectorWidth<512>] in { 3794 def scalefph512_mask : X86Builtin<"_Vector<32, _Float16>(_Vector<32, _Float16>, _Vector<32, _Float16>, _Vector<32, _Float16>, unsigned int, _Constant int)">; 3795} 3796 3797let Features = "avx512fp16,avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 3798 def rndscaleph_128_mask : X86Builtin<"_Vector<8, _Float16>(_Vector<8, _Float16>, _Constant int, _Vector<8, _Float16>, unsigned char)">; 3799} 3800 3801let Features = "avx512fp16,avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<256>] in { 3802 def rndscaleph_256_mask : X86Builtin<"_Vector<16, _Float16>(_Vector<16, _Float16>, _Constant int, _Vector<16, _Float16>, unsigned short)">; 3803} 3804 3805let Features = "avx512fp16,evex512", Attributes = [NoThrow, Const, RequiredVectorWidth<512>] in { 3806 def rndscaleph_mask : X86Builtin<"_Vector<32, _Float16>(_Vector<32, _Float16>, _Constant int, _Vector<32, _Float16>, unsigned int, _Constant int)">; 3807} 3808 3809let Features = "avx512fp16,avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 3810 def reduceph128_mask : X86Builtin<"_Vector<8, _Float16>(_Vector<8, _Float16>, _Constant int, _Vector<8, _Float16>, unsigned char)">; 3811} 3812 3813let Features = "avx512fp16,avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<256>] in { 3814 def reduceph256_mask : X86Builtin<"_Vector<16, _Float16>(_Vector<16, _Float16>, _Constant int, _Vector<16, _Float16>, unsigned short)">; 3815} 3816 3817let Features = "avx512fp16,evex512", Attributes = [NoThrow, Const, RequiredVectorWidth<512>] in { 3818 def reduceph512_mask : X86Builtin<"_Vector<32, _Float16>(_Vector<32, _Float16>, _Constant int, _Vector<32, _Float16>, unsigned int, _Constant int)">; 3819} 3820 3821let Features = "avx512fp16", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 3822 def rcpsh_mask : X86Builtin<"_Vector<8, _Float16>(_Vector<8, _Float16>, _Vector<8, _Float16>, _Vector<8, _Float16>, unsigned char)">; 3823 def rsqrtsh_mask : X86Builtin<"_Vector<8, _Float16>(_Vector<8, _Float16>, _Vector<8, _Float16>, _Vector<8, _Float16>, unsigned char)">; 3824 def getmantsh_round_mask : X86Builtin<"_Vector<8, _Float16>(_Vector<8, _Float16>, _Vector<8, _Float16>, _Constant int, _Vector<8, _Float16>, unsigned char, _Constant int)">; 3825 def getexpsh128_round_mask : X86Builtin<"_Vector<8, _Float16>(_Vector<8, _Float16>, _Vector<8, _Float16>, _Vector<8, _Float16>, unsigned char, _Constant int)">; 3826 def scalefsh_round_mask : X86Builtin<"_Vector<8, _Float16>(_Vector<8, _Float16>, _Vector<8, _Float16>, _Vector<8, _Float16>, unsigned char, _Constant int)">; 3827 def rndscalesh_round_mask : X86Builtin<"_Vector<8, _Float16>(_Vector<8, _Float16>, _Vector<8, _Float16>, _Vector<8, _Float16>, unsigned char, _Constant int, _Constant int)">; 3828 def reducesh_mask : X86Builtin<"_Vector<8, _Float16>(_Vector<8, _Float16>, _Vector<8, _Float16>, _Vector<8, _Float16>, unsigned char, _Constant int, _Constant int)">; 3829} 3830 3831let Features = "avx512fp16,avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 3832 def sqrtph : X86Builtin<"_Vector<8, _Float16>(_Vector<8, _Float16>)">; 3833} 3834 3835let Features = "avx512fp16,avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<256>] in { 3836 def sqrtph256 : X86Builtin<"_Vector<16, _Float16>(_Vector<16, _Float16>)">; 3837} 3838 3839let Features = "avx512fp16,evex512", Attributes = [NoThrow, Const, RequiredVectorWidth<512>] in { 3840 def sqrtph512 : X86Builtin<"_Vector<32, _Float16>(_Vector<32, _Float16>, _Constant int)">; 3841} 3842 3843let Features = "avx512fp16", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 3844 def sqrtsh_round_mask : X86Builtin<"_Vector<8, _Float16>(_Vector<8, _Float16>, _Vector<8, _Float16>, _Vector<8, _Float16>, unsigned char, _Constant int)">; 3845} 3846 3847let Features = "avx512fp16,avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 3848 def fpclassph128_mask : X86Builtin<"unsigned char(_Vector<8, _Float16>, _Constant int, unsigned char)">; 3849} 3850 3851let Features = "avx512fp16,avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<256>] in { 3852 def fpclassph256_mask : X86Builtin<"unsigned short(_Vector<16, _Float16>, _Constant int, unsigned short)">; 3853} 3854 3855let Features = "avx512fp16,evex512", Attributes = [NoThrow, Const, RequiredVectorWidth<512>] in { 3856 def fpclassph512_mask : X86Builtin<"unsigned int(_Vector<32, _Float16>, _Constant int, unsigned int)">; 3857} 3858 3859let Features = "avx512fp16", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 3860 def fpclasssh_mask : X86Builtin<"unsigned char(_Vector<8, _Float16>, _Constant int, unsigned char)">; 3861} 3862 3863let Features = "avx512fp16,avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 3864 def vcvtpd2ph128_mask : X86Builtin<"_Vector<8, _Float16>(_Vector<2, double>, _Vector<8, _Float16>, unsigned char)">; 3865} 3866 3867let Features = "avx512fp16,avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<256>] in { 3868 def vcvtpd2ph256_mask : X86Builtin<"_Vector<8, _Float16>(_Vector<4, double>, _Vector<8, _Float16>, unsigned char)">; 3869} 3870 3871let Features = "avx512fp16,evex512", Attributes = [NoThrow, Const, RequiredVectorWidth<512>] in { 3872 def vcvtpd2ph512_mask : X86Builtin<"_Vector<8, _Float16>(_Vector<8, double>, _Vector<8, _Float16>, unsigned char, _Constant int)">; 3873} 3874 3875let Features = "avx512fp16,avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 3876 def vcvtph2pd128_mask : X86Builtin<"_Vector<2, double>(_Vector<8, _Float16>, _Vector<2, double>, unsigned char)">; 3877} 3878 3879let Features = "avx512fp16,avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<256>] in { 3880 def vcvtph2pd256_mask : X86Builtin<"_Vector<4, double>(_Vector<8, _Float16>, _Vector<4, double>, unsigned char)">; 3881} 3882 3883let Features = "avx512fp16,evex512", Attributes = [NoThrow, Const, RequiredVectorWidth<512>] in { 3884 def vcvtph2pd512_mask : X86Builtin<"_Vector<8, double>(_Vector<8, _Float16>, _Vector<8, double>, unsigned char, _Constant int)">; 3885} 3886 3887let Features = "avx512fp16", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 3888 def vcvtsh2ss_round_mask : X86Builtin<"_Vector<4, float>(_Vector<4, float>, _Vector<8, _Float16>, _Vector<4, float>, unsigned char, _Constant int)">; 3889 def vcvtss2sh_round_mask : X86Builtin<"_Vector<8, _Float16>(_Vector<8, _Float16>, _Vector<4, float>, _Vector<8, _Float16>, unsigned char, _Constant int)">; 3890 def vcvtsd2sh_round_mask : X86Builtin<"_Vector<8, _Float16>(_Vector<8, _Float16>, _Vector<2, double>, _Vector<8, _Float16>, unsigned char, _Constant int)">; 3891 def vcvtsh2sd_round_mask : X86Builtin<"_Vector<2, double>(_Vector<2, double>, _Vector<8, _Float16>, _Vector<2, double>, unsigned char, _Constant int)">; 3892} 3893 3894let Features = "avx512fp16,avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 3895 def vcvtph2w128_mask : X86Builtin<"_Vector<8, short>(_Vector<8, _Float16>, _Vector<8, short>, unsigned char)">; 3896} 3897 3898let Features = "avx512fp16,avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<256>] in { 3899 def vcvtph2w256_mask : X86Builtin<"_Vector<16, short>(_Vector<16, _Float16>, _Vector<16, short>, unsigned short)">; 3900} 3901 3902let Features = "avx512fp16,evex512", Attributes = [NoThrow, Const, RequiredVectorWidth<512>] in { 3903 def vcvtph2w512_mask : X86Builtin<"_Vector<32, short>(_Vector<32, _Float16>, _Vector<32, short>, unsigned int, _Constant int)">; 3904} 3905 3906let Features = "avx512fp16,avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 3907 def vcvttph2w128_mask : X86Builtin<"_Vector<8, short>(_Vector<8, _Float16>, _Vector<8, short>, unsigned char)">; 3908} 3909 3910let Features = "avx512fp16,avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<256>] in { 3911 def vcvttph2w256_mask : X86Builtin<"_Vector<16, short>(_Vector<16, _Float16>, _Vector<16, short>, unsigned short)">; 3912} 3913 3914let Features = "avx512fp16,evex512", Attributes = [NoThrow, Const, RequiredVectorWidth<512>] in { 3915 def vcvttph2w512_mask : X86Builtin<"_Vector<32, short>(_Vector<32, _Float16>, _Vector<32, short>, unsigned int, _Constant int)">; 3916} 3917 3918let Features = "avx512fp16,avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 3919 def vcvtw2ph128_mask : X86Builtin<"_Vector<8, _Float16>(_Vector<8, short>, _Vector<8, _Float16>, unsigned char)">; 3920} 3921 3922let Features = "avx512fp16,avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<256>] in { 3923 def vcvtw2ph256_mask : X86Builtin<"_Vector<16, _Float16>(_Vector<16, short>, _Vector<16, _Float16>, unsigned short)">; 3924} 3925 3926let Features = "avx512fp16,evex512", Attributes = [NoThrow, Const, RequiredVectorWidth<512>] in { 3927 def vcvtw2ph512_mask : X86Builtin<"_Vector<32, _Float16>(_Vector<32, short>, _Vector<32, _Float16>, unsigned int, _Constant int)">; 3928} 3929 3930let Features = "avx512fp16,avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 3931 def vcvtph2uw128_mask : X86Builtin<"_Vector<8, unsigned short>(_Vector<8, _Float16>, _Vector<8, unsigned short>, unsigned char)">; 3932} 3933 3934let Features = "avx512fp16,avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<256>] in { 3935 def vcvtph2uw256_mask : X86Builtin<"_Vector<16, unsigned short>(_Vector<16, _Float16>, _Vector<16, unsigned short>, unsigned short)">; 3936} 3937 3938let Features = "avx512fp16,evex512", Attributes = [NoThrow, Const, RequiredVectorWidth<512>] in { 3939 def vcvtph2uw512_mask : X86Builtin<"_Vector<32, unsigned short>(_Vector<32, _Float16>, _Vector<32, unsigned short>, unsigned int, _Constant int)">; 3940} 3941 3942let Features = "avx512fp16,avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 3943 def vcvttph2uw128_mask : X86Builtin<"_Vector<8, unsigned short>(_Vector<8, _Float16>, _Vector<8, unsigned short>, unsigned char)">; 3944} 3945 3946let Features = "avx512fp16,avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<256>] in { 3947 def vcvttph2uw256_mask : X86Builtin<"_Vector<16, unsigned short>(_Vector<16, _Float16>, _Vector<16, unsigned short>, unsigned short)">; 3948} 3949 3950let Features = "avx512fp16,evex512", Attributes = [NoThrow, Const, RequiredVectorWidth<512>] in { 3951 def vcvttph2uw512_mask : X86Builtin<"_Vector<32, unsigned short>(_Vector<32, _Float16>, _Vector<32, unsigned short>, unsigned int, _Constant int)">; 3952} 3953 3954let Features = "avx512fp16,avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 3955 def vcvtuw2ph128_mask : X86Builtin<"_Vector<8, _Float16>(_Vector<8, unsigned short>, _Vector<8, _Float16>, unsigned char)">; 3956} 3957 3958let Features = "avx512fp16,avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<256>] in { 3959 def vcvtuw2ph256_mask : X86Builtin<"_Vector<16, _Float16>(_Vector<16, unsigned short>, _Vector<16, _Float16>, unsigned short)">; 3960} 3961 3962let Features = "avx512fp16,evex512", Attributes = [NoThrow, Const, RequiredVectorWidth<512>] in { 3963 def vcvtuw2ph512_mask : X86Builtin<"_Vector<32, _Float16>(_Vector<32, unsigned short>, _Vector<32, _Float16>, unsigned int, _Constant int)">; 3964} 3965 3966let Features = "avx512fp16,avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 3967 def vcvtph2dq128_mask : X86Builtin<"_Vector<4, int>(_Vector<8, _Float16>, _Vector<4, int>, unsigned char)">; 3968} 3969 3970let Features = "avx512fp16,avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<256>] in { 3971 def vcvtph2dq256_mask : X86Builtin<"_Vector<8, int>(_Vector<8, _Float16>, _Vector<8, int>, unsigned char)">; 3972} 3973 3974let Features = "avx512fp16,evex512", Attributes = [NoThrow, Const, RequiredVectorWidth<512>] in { 3975 def vcvtph2dq512_mask : X86Builtin<"_Vector<16, int>(_Vector<16, _Float16>, _Vector<16, int>, unsigned short, _Constant int)">; 3976} 3977 3978let Features = "avx512fp16,avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 3979 def vcvtph2udq128_mask : X86Builtin<"_Vector<4, unsigned int>(_Vector<8, _Float16>, _Vector<4, unsigned int>, unsigned char)">; 3980} 3981 3982let Features = "avx512fp16,avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<256>] in { 3983 def vcvtph2udq256_mask : X86Builtin<"_Vector<8, unsigned int>(_Vector<8, _Float16>, _Vector<8, unsigned int>, unsigned char)">; 3984} 3985 3986let Features = "avx512fp16,evex512", Attributes = [NoThrow, Const, RequiredVectorWidth<512>] in { 3987 def vcvtph2udq512_mask : X86Builtin<"_Vector<16, unsigned int>(_Vector<16, _Float16>, _Vector<16, unsigned int>, unsigned short, _Constant int)">; 3988} 3989 3990let Features = "avx512fp16,avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 3991 def vcvtdq2ph128_mask : X86Builtin<"_Vector<8, _Float16>(_Vector<4, int>, _Vector<8, _Float16>, unsigned char)">; 3992} 3993 3994let Features = "avx512fp16,avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<256>] in { 3995 def vcvtdq2ph256_mask : X86Builtin<"_Vector<8, _Float16>(_Vector<8, int>, _Vector<8, _Float16>, unsigned char)">; 3996} 3997 3998let Features = "avx512fp16,evex512", Attributes = [NoThrow, Const, RequiredVectorWidth<512>] in { 3999 def vcvtdq2ph512_mask : X86Builtin<"_Vector<16, _Float16>(_Vector<16, int>, _Vector<16, _Float16>, unsigned short, _Constant int)">; 4000} 4001 4002let Features = "avx512fp16,avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 4003 def vcvtudq2ph128_mask : X86Builtin<"_Vector<8, _Float16>(_Vector<4, unsigned int>, _Vector<8, _Float16>, unsigned char)">; 4004} 4005 4006let Features = "avx512fp16,avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<256>] in { 4007 def vcvtudq2ph256_mask : X86Builtin<"_Vector<8, _Float16>(_Vector<8, unsigned int>, _Vector<8, _Float16>, unsigned char)">; 4008} 4009 4010let Features = "avx512fp16,evex512", Attributes = [NoThrow, Const, RequiredVectorWidth<512>] in { 4011 def vcvtudq2ph512_mask : X86Builtin<"_Vector<16, _Float16>(_Vector<16, unsigned int>, _Vector<16, _Float16>, unsigned short, _Constant int)">; 4012} 4013 4014let Features = "avx512fp16,avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 4015 def vcvttph2dq128_mask : X86Builtin<"_Vector<4, int>(_Vector<8, _Float16>, _Vector<4, int>, unsigned char)">; 4016} 4017 4018let Features = "avx512fp16,avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<256>] in { 4019 def vcvttph2dq256_mask : X86Builtin<"_Vector<8, int>(_Vector<8, _Float16>, _Vector<8, int>, unsigned char)">; 4020} 4021 4022let Features = "avx512fp16,evex512", Attributes = [NoThrow, Const, RequiredVectorWidth<512>] in { 4023 def vcvttph2dq512_mask : X86Builtin<"_Vector<16, int>(_Vector<16, _Float16>, _Vector<16, int>, unsigned short, _Constant int)">; 4024} 4025 4026let Features = "avx512fp16,avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 4027 def vcvttph2udq128_mask : X86Builtin<"_Vector<4, unsigned int>(_Vector<8, _Float16>, _Vector<4, unsigned int>, unsigned char)">; 4028} 4029 4030let Features = "avx512fp16,avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<256>] in { 4031 def vcvttph2udq256_mask : X86Builtin<"_Vector<8, unsigned int>(_Vector<8, _Float16>, _Vector<8, unsigned int>, unsigned char)">; 4032} 4033 4034let Features = "avx512fp16,evex512", Attributes = [NoThrow, Const, RequiredVectorWidth<512>] in { 4035 def vcvttph2udq512_mask : X86Builtin<"_Vector<16, unsigned int>(_Vector<16, _Float16>, _Vector<16, unsigned int>, unsigned short, _Constant int)">; 4036} 4037 4038let Features = "avx512fp16,avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 4039 def vcvtqq2ph128_mask : X86Builtin<"_Vector<8, _Float16>(_Vector<2, long long int>, _Vector<8, _Float16>, unsigned char)">; 4040} 4041 4042let Features = "avx512fp16,avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<256>] in { 4043 def vcvtqq2ph256_mask : X86Builtin<"_Vector<8, _Float16>(_Vector<4, long long int>, _Vector<8, _Float16>, unsigned char)">; 4044} 4045 4046let Features = "avx512fp16,evex512", Attributes = [NoThrow, Const, RequiredVectorWidth<512>] in { 4047 def vcvtqq2ph512_mask : X86Builtin<"_Vector<8, _Float16>(_Vector<8, long long int>, _Vector<8, _Float16>, unsigned char, _Constant int)">; 4048} 4049 4050let Features = "avx512fp16,avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 4051 def vcvtph2qq128_mask : X86Builtin<"_Vector<2, long long int>(_Vector<8, _Float16>, _Vector<2, long long int>, unsigned char)">; 4052} 4053 4054let Features = "avx512fp16,avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<256>] in { 4055 def vcvtph2qq256_mask : X86Builtin<"_Vector<4, long long int>(_Vector<8, _Float16>, _Vector<4, long long int>, unsigned char)">; 4056} 4057 4058let Features = "avx512fp16,evex512", Attributes = [NoThrow, Const, RequiredVectorWidth<512>] in { 4059 def vcvtph2qq512_mask : X86Builtin<"_Vector<8, long long int>(_Vector<8, _Float16>, _Vector<8, long long int>, unsigned char, _Constant int)">; 4060} 4061 4062let Features = "avx512fp16,avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 4063 def vcvtuqq2ph128_mask : X86Builtin<"_Vector<8, _Float16>(_Vector<2, unsigned long long int>, _Vector<8, _Float16>, unsigned char)">; 4064} 4065 4066let Features = "avx512fp16,avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<256>] in { 4067 def vcvtuqq2ph256_mask : X86Builtin<"_Vector<8, _Float16>(_Vector<4, unsigned long long int>, _Vector<8, _Float16>, unsigned char)">; 4068} 4069 4070let Features = "avx512fp16,evex512", Attributes = [NoThrow, Const, RequiredVectorWidth<512>] in { 4071 def vcvtuqq2ph512_mask : X86Builtin<"_Vector<8, _Float16>(_Vector<8, unsigned long long int>, _Vector<8, _Float16>, unsigned char, _Constant int)">; 4072} 4073 4074let Features = "avx512fp16,avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 4075 def vcvtph2uqq128_mask : X86Builtin<"_Vector<2, unsigned long long int>(_Vector<8, _Float16>, _Vector<2, unsigned long long int>, unsigned char)">; 4076} 4077 4078let Features = "avx512fp16,avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<256>] in { 4079 def vcvtph2uqq256_mask : X86Builtin<"_Vector<4, unsigned long long int>(_Vector<8, _Float16>, _Vector<4, unsigned long long int>, unsigned char)">; 4080} 4081 4082let Features = "avx512fp16,evex512", Attributes = [NoThrow, Const, RequiredVectorWidth<512>] in { 4083 def vcvtph2uqq512_mask : X86Builtin<"_Vector<8, unsigned long long int>(_Vector<8, _Float16>, _Vector<8, unsigned long long int>, unsigned char, _Constant int)">; 4084} 4085 4086let Features = "avx512fp16,avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 4087 def vcvttph2qq128_mask : X86Builtin<"_Vector<2, long long int>(_Vector<8, _Float16>, _Vector<2, long long int>, unsigned char)">; 4088} 4089 4090let Features = "avx512fp16,avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<256>] in { 4091 def vcvttph2qq256_mask : X86Builtin<"_Vector<4, long long int>(_Vector<8, _Float16>, _Vector<4, long long int>, unsigned char)">; 4092} 4093 4094let Features = "avx512fp16,evex512", Attributes = [NoThrow, Const, RequiredVectorWidth<512>] in { 4095 def vcvttph2qq512_mask : X86Builtin<"_Vector<8, long long int>(_Vector<8, _Float16>, _Vector<8, long long int>, unsigned char, _Constant int)">; 4096} 4097 4098let Features = "avx512fp16,avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 4099 def vcvttph2uqq128_mask : X86Builtin<"_Vector<2, unsigned long long int>(_Vector<8, _Float16>, _Vector<2, unsigned long long int>, unsigned char)">; 4100} 4101 4102let Features = "avx512fp16,avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<256>] in { 4103 def vcvttph2uqq256_mask : X86Builtin<"_Vector<4, unsigned long long int>(_Vector<8, _Float16>, _Vector<4, unsigned long long int>, unsigned char)">; 4104} 4105 4106let Features = "avx512fp16,evex512", Attributes = [NoThrow, Const, RequiredVectorWidth<512>] in { 4107 def vcvttph2uqq512_mask : X86Builtin<"_Vector<8, unsigned long long int>(_Vector<8, _Float16>, _Vector<8, unsigned long long int>, unsigned char, _Constant int)">; 4108} 4109 4110let Features = "avx512fp16", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 4111 def vcvtsh2si32 : X86Builtin<"int(_Vector<8, _Float16>, _Constant int)">; 4112 def vcvtsh2usi32 : X86Builtin<"unsigned int(_Vector<8, _Float16>, _Constant int)">; 4113 def vcvtusi2sh : X86Builtin<"_Vector<8, _Float16>(_Vector<8, _Float16>, unsigned int, _Constant int)">; 4114 def vcvtsi2sh : X86Builtin<"_Vector<8, _Float16>(_Vector<8, _Float16>, int, _Constant int)">; 4115 def vcvttsh2si32 : X86Builtin<"int(_Vector<8, _Float16>, _Constant int)">; 4116 def vcvttsh2usi32 : X86Builtin<"unsigned int(_Vector<8, _Float16>, _Constant int)">; 4117} 4118 4119let Features = "avx512fp16,avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 4120 def vcvtph2psx128_mask : X86Builtin<"_Vector<4, float>(_Vector<8, _Float16>, _Vector<4, float>, unsigned char)">; 4121} 4122 4123let Features = "avx512fp16,avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<256>] in { 4124 def vcvtph2psx256_mask : X86Builtin<"_Vector<8, float>(_Vector<8, _Float16>, _Vector<8, float>, unsigned char)">; 4125} 4126 4127let Features = "avx512fp16,evex512", Attributes = [NoThrow, Const, RequiredVectorWidth<512>] in { 4128 def vcvtph2psx512_mask : X86Builtin<"_Vector<16, float>(_Vector<16, _Float16>, _Vector<16, float>, unsigned short, _Constant int)">; 4129} 4130 4131let Features = "avx512fp16,avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 4132 def vcvtps2phx128_mask : X86Builtin<"_Vector<8, _Float16>(_Vector<4, float>, _Vector<8, _Float16>, unsigned char)">; 4133} 4134 4135let Features = "avx512fp16,avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<256>] in { 4136 def vcvtps2phx256_mask : X86Builtin<"_Vector<8, _Float16>(_Vector<8, float>, _Vector<8, _Float16>, unsigned char)">; 4137} 4138 4139let Features = "avx512fp16,evex512", Attributes = [NoThrow, Const, RequiredVectorWidth<512>] in { 4140 def vcvtps2phx512_mask : X86Builtin<"_Vector<16, _Float16>(_Vector<16, float>, _Vector<16, _Float16>, unsigned short, _Constant int)">; 4141} 4142 4143let Features = "avx512fp16,avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 4144 def vfmaddph : X86Builtin<"_Vector<8, _Float16>(_Vector<8, _Float16>, _Vector<8, _Float16>, _Vector<8, _Float16>)">; 4145} 4146 4147let Features = "avx512fp16,avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<256>] in { 4148 def vfmaddph256 : X86Builtin<"_Vector<16, _Float16>(_Vector<16, _Float16>, _Vector<16, _Float16>, _Vector<16, _Float16>)">; 4149} 4150 4151let Features = "avx512fp16,evex512", Attributes = [NoThrow, Const, RequiredVectorWidth<512>] in { 4152 def vfmaddph512_mask : X86Builtin<"_Vector<32, _Float16>(_Vector<32, _Float16>, _Vector<32, _Float16>, _Vector<32, _Float16>, unsigned int, _Constant int)">; 4153 def vfmaddph512_mask3 : X86Builtin<"_Vector<32, _Float16>(_Vector<32, _Float16>, _Vector<32, _Float16>, _Vector<32, _Float16>, unsigned int, _Constant int)">; 4154 def vfmaddph512_maskz : X86Builtin<"_Vector<32, _Float16>(_Vector<32, _Float16>, _Vector<32, _Float16>, _Vector<32, _Float16>, unsigned int, _Constant int)">; 4155} 4156 4157let Features = "avx512fp16,avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 4158 def vfmaddsubph : X86Builtin<"_Vector<8, _Float16>(_Vector<8, _Float16>, _Vector<8, _Float16>, _Vector<8, _Float16>)">; 4159} 4160 4161let Features = "avx512fp16,avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<256>] in { 4162 def vfmaddsubph256 : X86Builtin<"_Vector<16, _Float16>(_Vector<16, _Float16>, _Vector<16, _Float16>, _Vector<16, _Float16>)">; 4163} 4164 4165let Features = "avx512fp16,evex512", Attributes = [NoThrow, Const, RequiredVectorWidth<512>] in { 4166 def vfmaddsubph512_mask : X86Builtin<"_Vector<32, _Float16>(_Vector<32, _Float16>, _Vector<32, _Float16>, _Vector<32, _Float16>, unsigned int, _Constant int)">; 4167 def vfmaddsubph512_maskz : X86Builtin<"_Vector<32, _Float16>(_Vector<32, _Float16>, _Vector<32, _Float16>, _Vector<32, _Float16>, unsigned int, _Constant int)">; 4168 def vfmaddsubph512_mask3 : X86Builtin<"_Vector<32, _Float16>(_Vector<32, _Float16>, _Vector<32, _Float16>, _Vector<32, _Float16>, unsigned int, _Constant int)">; 4169 def vfmsubaddph512_mask3 : X86Builtin<"_Vector<32, _Float16>(_Vector<32, _Float16>, _Vector<32, _Float16>, _Vector<32, _Float16>, unsigned int, _Constant int)">; 4170 def vfmsubph512_mask3 : X86Builtin<"_Vector<32, _Float16>(_Vector<32, _Float16>, _Vector<32, _Float16>, _Vector<32, _Float16>, unsigned int, _Constant int)">; 4171} 4172 4173let Features = "avx512fp16", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 4174 def vfmaddsh3_mask : X86Builtin<"_Vector<8, _Float16>(_Vector<8, _Float16>, _Vector<8, _Float16>, _Vector<8, _Float16>, unsigned char, _Constant int)">; 4175 def vfmaddsh3_maskz : X86Builtin<"_Vector<8, _Float16>(_Vector<8, _Float16>, _Vector<8, _Float16>, _Vector<8, _Float16>, unsigned char, _Constant int)">; 4176 def vfmaddsh3_mask3 : X86Builtin<"_Vector<8, _Float16>(_Vector<8, _Float16>, _Vector<8, _Float16>, _Vector<8, _Float16>, unsigned char, _Constant int)">; 4177 def vfmsubsh3_mask3 : X86Builtin<"_Vector<8, _Float16>(_Vector<8, _Float16>, _Vector<8, _Float16>, _Vector<8, _Float16>, unsigned char, _Constant int)">; 4178} 4179 4180let Features = "avx512fp16,avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 4181 def vfmaddcph128_mask : X86Builtin<"_Vector<4, float>(_Vector<4, float>, _Vector<4, float>, _Vector<4, float>, unsigned char)">; 4182 def vfmaddcph128_maskz : X86Builtin<"_Vector<4, float>(_Vector<4, float>, _Vector<4, float>, _Vector<4, float>, unsigned char)">; 4183} 4184 4185let Features = "avx512fp16,avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<256>] in { 4186 def vfmaddcph256_mask : X86Builtin<"_Vector<8, float>(_Vector<8, float>, _Vector<8, float>, _Vector<8, float>, unsigned char)">; 4187 def vfmaddcph256_maskz : X86Builtin<"_Vector<8, float>(_Vector<8, float>, _Vector<8, float>, _Vector<8, float>, unsigned char)">; 4188} 4189 4190let Features = "avx512fp16,evex512", Attributes = [NoThrow, Const, RequiredVectorWidth<512>] in { 4191 def vfmaddcph512_mask : X86Builtin<"_Vector<16, float>(_Vector<16, float>, _Vector<16, float>, _Vector<16, float>, unsigned short, _Constant int)">; 4192 def vfmaddcph512_maskz : X86Builtin<"_Vector<16, float>(_Vector<16, float>, _Vector<16, float>, _Vector<16, float>, unsigned short, _Constant int)">; 4193 def vfmaddcph512_mask3 : X86Builtin<"_Vector<16, float>(_Vector<16, float>, _Vector<16, float>, _Vector<16, float>, unsigned short, _Constant int)">; 4194} 4195 4196let Features = "avx512fp16,avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 4197 def vfcmaddcph128_mask : X86Builtin<"_Vector<4, float>(_Vector<4, float>, _Vector<4, float>, _Vector<4, float>, unsigned char)">; 4198 def vfcmaddcph128_maskz : X86Builtin<"_Vector<4, float>(_Vector<4, float>, _Vector<4, float>, _Vector<4, float>, unsigned char)">; 4199} 4200 4201let Features = "avx512fp16,avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<256>] in { 4202 def vfcmaddcph256_mask : X86Builtin<"_Vector<8, float>(_Vector<8, float>, _Vector<8, float>, _Vector<8, float>, unsigned char)">; 4203 def vfcmaddcph256_maskz : X86Builtin<"_Vector<8, float>(_Vector<8, float>, _Vector<8, float>, _Vector<8, float>, unsigned char)">; 4204} 4205 4206let Features = "avx512fp16,evex512", Attributes = [NoThrow, Const, RequiredVectorWidth<512>] in { 4207 def vfcmaddcph512_mask : X86Builtin<"_Vector<16, float>(_Vector<16, float>, _Vector<16, float>, _Vector<16, float>, unsigned short, _Constant int)">; 4208 def vfcmaddcph512_maskz : X86Builtin<"_Vector<16, float>(_Vector<16, float>, _Vector<16, float>, _Vector<16, float>, unsigned short, _Constant int)">; 4209 def vfcmaddcph512_mask3 : X86Builtin<"_Vector<16, float>(_Vector<16, float>, _Vector<16, float>, _Vector<16, float>, unsigned short, _Constant int)">; 4210} 4211 4212let Features = "avx512fp16", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 4213 def vfmaddcsh_mask : X86Builtin<"_Vector<4, float>(_Vector<4, float>, _Vector<4, float>, _Vector<4, float>, unsigned char, _Constant int)">; 4214 def vfmaddcsh_maskz : X86Builtin<"_Vector<4, float>(_Vector<4, float>, _Vector<4, float>, _Vector<4, float>, unsigned char, _Constant int)">; 4215 def vfcmaddcsh_mask : X86Builtin<"_Vector<4, float>(_Vector<4, float>, _Vector<4, float>, _Vector<4, float>, unsigned char, _Constant int)">; 4216 def vfcmaddcsh_maskz : X86Builtin<"_Vector<4, float>(_Vector<4, float>, _Vector<4, float>, _Vector<4, float>, unsigned char, _Constant int)">; 4217 def vfmaddcsh_round_mask : X86Builtin<"_Vector<4, float>(_Vector<4, float>, _Vector<4, float>, _Vector<4, float>, unsigned char, _Constant int)">; 4218 def vfmaddcsh_round_mask3 : X86Builtin<"_Vector<4, float>(_Vector<4, float>, _Vector<4, float>, _Vector<4, float>, unsigned char, _Constant int)">; 4219 def vfcmaddcsh_round_mask : X86Builtin<"_Vector<4, float>(_Vector<4, float>, _Vector<4, float>, _Vector<4, float>, unsigned char, _Constant int)">; 4220 def vfcmaddcsh_round_mask3 : X86Builtin<"_Vector<4, float>(_Vector<4, float>, _Vector<4, float>, _Vector<4, float>, unsigned char, _Constant int)">; 4221 def vfmulcsh_mask : X86Builtin<"_Vector<4, float>(_Vector<4, float>, _Vector<4, float>, _Vector<4, float>, unsigned char, _Constant int)">; 4222 def vfcmulcsh_mask : X86Builtin<"_Vector<4, float>(_Vector<4, float>, _Vector<4, float>, _Vector<4, float>, unsigned char, _Constant int)">; 4223} 4224 4225let Features = "avx512fp16,avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 4226 def vfmulcph128_mask : X86Builtin<"_Vector<4, float>(_Vector<4, float>, _Vector<4, float>, _Vector<4, float>, unsigned char)">; 4227} 4228 4229let Features = "avx512fp16,avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<256>] in { 4230 def vfmulcph256_mask : X86Builtin<"_Vector<8, float>(_Vector<8, float>, _Vector<8, float>, _Vector<8, float>, unsigned char)">; 4231} 4232 4233let Features = "avx512fp16,evex512", Attributes = [NoThrow, Const, RequiredVectorWidth<512>] in { 4234 def vfmulcph512_mask : X86Builtin<"_Vector<16, float>(_Vector<16, float>, _Vector<16, float>, _Vector<16, float>, unsigned short, _Constant int)">; 4235} 4236 4237let Features = "avx512fp16,avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 4238 def vfcmulcph128_mask : X86Builtin<"_Vector<4, float>(_Vector<4, float>, _Vector<4, float>, _Vector<4, float>, unsigned char)">; 4239} 4240 4241let Features = "avx512fp16,avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<256>] in { 4242 def vfcmulcph256_mask : X86Builtin<"_Vector<8, float>(_Vector<8, float>, _Vector<8, float>, _Vector<8, float>, unsigned char)">; 4243} 4244 4245let Features = "avx512fp16,evex512", Attributes = [NoThrow, Const, RequiredVectorWidth<512>] in { 4246 def vfcmulcph512_mask : X86Builtin<"_Vector<16, float>(_Vector<16, float>, _Vector<16, float>, _Vector<16, float>, unsigned short, _Constant int)">; 4247} 4248 4249let Features = "avx512bw,avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 4250 def selectb_128 : X86Builtin<"_Vector<16, char>(unsigned short, _Vector<16, char>, _Vector<16, char>)">; 4251} 4252 4253let Features = "avx512bw,avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<256>] in { 4254 def selectb_256 : X86Builtin<"_Vector<32, char>(unsigned int, _Vector<32, char>, _Vector<32, char>)">; 4255} 4256 4257let Features = "avx512bw,evex512", Attributes = [NoThrow, Const, RequiredVectorWidth<512>] in { 4258 def selectb_512 : X86Builtin<"_Vector<64, char>(unsigned long long int, _Vector<64, char>, _Vector<64, char>)">; 4259} 4260 4261let Features = "avx512bw,avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 4262 def selectw_128 : X86Builtin<"_Vector<8, short>(unsigned char, _Vector<8, short>, _Vector<8, short>)">; 4263} 4264 4265let Features = "avx512bw,avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<256>] in { 4266 def selectw_256 : X86Builtin<"_Vector<16, short>(unsigned short, _Vector<16, short>, _Vector<16, short>)">; 4267} 4268 4269let Features = "avx512bw,evex512", Attributes = [NoThrow, Const, RequiredVectorWidth<512>] in { 4270 def selectw_512 : X86Builtin<"_Vector<32, short>(unsigned int, _Vector<32, short>, _Vector<32, short>)">; 4271} 4272 4273let Features = "avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 4274 def selectd_128 : X86Builtin<"_Vector<4, int>(unsigned char, _Vector<4, int>, _Vector<4, int>)">; 4275} 4276 4277let Features = "avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<256>] in { 4278 def selectd_256 : X86Builtin<"_Vector<8, int>(unsigned char, _Vector<8, int>, _Vector<8, int>)">; 4279} 4280 4281let Features = "avx512f,evex512", Attributes = [NoThrow, Const, RequiredVectorWidth<512>] in { 4282 def selectd_512 : X86Builtin<"_Vector<16, int>(unsigned short, _Vector<16, int>, _Vector<16, int>)">; 4283} 4284 4285let Features = "avx512fp16,avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 4286 def selectph_128 : X86Builtin<"_Vector<8, _Float16>(unsigned char, _Vector<8, _Float16>, _Vector<8, _Float16>)">; 4287} 4288 4289let Features = "avx512fp16,avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<256>] in { 4290 def selectph_256 : X86Builtin<"_Vector<16, _Float16>(unsigned short, _Vector<16, _Float16>, _Vector<16, _Float16>)">; 4291} 4292 4293let Features = "avx512fp16,evex512", Attributes = [NoThrow, Const, RequiredVectorWidth<512>] in { 4294 def selectph_512 : X86Builtin<"_Vector<32, _Float16>(unsigned int, _Vector<32, _Float16>, _Vector<32, _Float16>)">; 4295} 4296 4297let Features = "avx512bf16,avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 4298 def selectpbf_128 : X86Builtin<"_Vector<8, __bf16>(unsigned char, _Vector<8, __bf16>, _Vector<8, __bf16>)">; 4299} 4300 4301let Features = "avx512bf16,avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<256>] in { 4302 def selectpbf_256 : X86Builtin<"_Vector<16, __bf16>(unsigned short, _Vector<16, __bf16>, _Vector<16, __bf16>)">; 4303} 4304 4305let Features = "avx512bf16,evex512", Attributes = [NoThrow, Const, RequiredVectorWidth<512>] in { 4306 def selectpbf_512 : X86Builtin<"_Vector<32, __bf16>(unsigned int, _Vector<32, __bf16>, _Vector<32, __bf16>)">; 4307} 4308 4309let Features = "avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 4310 def selectq_128 : X86Builtin<"_Vector<2, long long int>(unsigned char, _Vector<2, long long int>, _Vector<2, long long int>)">; 4311} 4312 4313let Features = "avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<256>] in { 4314 def selectq_256 : X86Builtin<"_Vector<4, long long int>(unsigned char, _Vector<4, long long int>, _Vector<4, long long int>)">; 4315} 4316 4317let Features = "avx512f,evex512", Attributes = [NoThrow, Const, RequiredVectorWidth<512>] in { 4318 def selectq_512 : X86Builtin<"_Vector<8, long long int>(unsigned char, _Vector<8, long long int>, _Vector<8, long long int>)">; 4319} 4320 4321let Features = "avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 4322 def selectps_128 : X86Builtin<"_Vector<4, float>(unsigned char, _Vector<4, float>, _Vector<4, float>)">; 4323} 4324 4325let Features = "avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<256>] in { 4326 def selectps_256 : X86Builtin<"_Vector<8, float>(unsigned char, _Vector<8, float>, _Vector<8, float>)">; 4327} 4328 4329let Features = "avx512f,evex512", Attributes = [NoThrow, Const, RequiredVectorWidth<512>] in { 4330 def selectps_512 : X86Builtin<"_Vector<16, float>(unsigned short, _Vector<16, float>, _Vector<16, float>)">; 4331} 4332 4333let Features = "avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 4334 def selectpd_128 : X86Builtin<"_Vector<2, double>(unsigned char, _Vector<2, double>, _Vector<2, double>)">; 4335} 4336 4337let Features = "avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<256>] in { 4338 def selectpd_256 : X86Builtin<"_Vector<4, double>(unsigned char, _Vector<4, double>, _Vector<4, double>)">; 4339} 4340 4341let Features = "avx512f,evex512", Attributes = [NoThrow, Const, RequiredVectorWidth<512>] in { 4342 def selectpd_512 : X86Builtin<"_Vector<8, double>(unsigned char, _Vector<8, double>, _Vector<8, double>)">; 4343} 4344 4345let Features = "avx512fp16", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 4346 def selectsh_128 : X86Builtin<"_Vector<8, _Float16>(unsigned char, _Vector<8, _Float16>, _Vector<8, _Float16>)">; 4347} 4348 4349let Features = "avx512bf16", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 4350 def selectsbf_128 : X86Builtin<"_Vector<8, __bf16>(unsigned char, _Vector<8, __bf16>, _Vector<8, __bf16>)">; 4351} 4352 4353let Features = "avx512f", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 4354 def selectss_128 : X86Builtin<"_Vector<4, float>(unsigned char, _Vector<4, float>, _Vector<4, float>)">; 4355 def selectsd_128 : X86Builtin<"_Vector<2, double>(unsigned char, _Vector<2, double>, _Vector<2, double>)">; 4356} 4357 4358let Features = "avx512f,evex512", Attributes = [NoThrow, Const, RequiredVectorWidth<512>] in { 4359 def reduce_fadd_pd512 : X86Builtin<"double(double, _Vector<8, double>)">; 4360 def reduce_fadd_ps512 : X86Builtin<"float(float, _Vector<16, float>)">; 4361} 4362 4363let Features = "avx512fp16,evex512", Attributes = [NoThrow, Const, RequiredVectorWidth<512>] in { 4364 def reduce_fadd_ph512 : X86Builtin<"_Float16(_Float16, _Vector<32, _Float16>)">; 4365} 4366 4367let Features = "avx512fp16,avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<256>] in { 4368 def reduce_fadd_ph256 : X86Builtin<"_Float16(_Float16, _Vector<16, _Float16>)">; 4369} 4370 4371let Features = "avx512fp16,avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 4372 def reduce_fadd_ph128 : X86Builtin<"_Float16(_Float16, _Vector<8, _Float16>)">; 4373} 4374 4375let Features = "avx512f,evex512", Attributes = [NoThrow, Const, RequiredVectorWidth<512>] in { 4376 def reduce_fmax_pd512 : X86Builtin<"double(_Vector<8, double>)">; 4377 def reduce_fmax_ps512 : X86Builtin<"float(_Vector<16, float>)">; 4378} 4379 4380let Features = "avx512fp16,evex512", Attributes = [NoThrow, Const, RequiredVectorWidth<512>] in { 4381 def reduce_fmax_ph512 : X86Builtin<"_Float16(_Vector<32, _Float16>)">; 4382} 4383 4384let Features = "avx512fp16,avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<256>] in { 4385 def reduce_fmax_ph256 : X86Builtin<"_Float16(_Vector<16, _Float16>)">; 4386} 4387 4388let Features = "avx512fp16,avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 4389 def reduce_fmax_ph128 : X86Builtin<"_Float16(_Vector<8, _Float16>)">; 4390} 4391 4392let Features = "avx512f,evex512", Attributes = [NoThrow, Const, RequiredVectorWidth<512>] in { 4393 def reduce_fmin_pd512 : X86Builtin<"double(_Vector<8, double>)">; 4394 def reduce_fmin_ps512 : X86Builtin<"float(_Vector<16, float>)">; 4395} 4396 4397let Features = "avx512fp16,evex512", Attributes = [NoThrow, Const, RequiredVectorWidth<512>] in { 4398 def reduce_fmin_ph512 : X86Builtin<"_Float16(_Vector<32, _Float16>)">; 4399} 4400 4401let Features = "avx512fp16,avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<256>] in { 4402 def reduce_fmin_ph256 : X86Builtin<"_Float16(_Vector<16, _Float16>)">; 4403} 4404 4405let Features = "avx512fp16,avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 4406 def reduce_fmin_ph128 : X86Builtin<"_Float16(_Vector<8, _Float16>)">; 4407} 4408 4409let Features = "avx512f,evex512", Attributes = [NoThrow, Const, RequiredVectorWidth<512>] in { 4410 def reduce_fmul_pd512 : X86Builtin<"double(double, _Vector<8, double>)">; 4411 def reduce_fmul_ps512 : X86Builtin<"float(float, _Vector<16, float>)">; 4412} 4413 4414let Features = "avx512fp16,evex512", Attributes = [NoThrow, Const, RequiredVectorWidth<512>] in { 4415 def reduce_fmul_ph512 : X86Builtin<"_Float16(_Float16, _Vector<32, _Float16>)">; 4416} 4417 4418let Features = "avx512fp16,avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<256>] in { 4419 def reduce_fmul_ph256 : X86Builtin<"_Float16(_Float16, _Vector<16, _Float16>)">; 4420} 4421 4422let Features = "avx512fp16,avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 4423 def reduce_fmul_ph128 : X86Builtin<"_Float16(_Float16, _Vector<8, _Float16>)">; 4424} 4425 4426let Features = "mwaitx", Attributes = [NoThrow] in { 4427 def monitorx : X86Builtin<"void(void const *, unsigned int, unsigned int)">; 4428 def mwaitx : X86Builtin<"void(unsigned int, unsigned int, unsigned int)">; 4429} 4430 4431let Features = "waitpkg", Attributes = [NoThrow] in { 4432 def umonitor : X86Builtin<"void(void const *)">; 4433 def umwait : X86Builtin<"unsigned char(unsigned int, unsigned int, unsigned int)">; 4434 def tpause : X86Builtin<"unsigned char(unsigned int, unsigned int, unsigned int)">; 4435} 4436 4437let Features = "clzero", Attributes = [NoThrow] in { 4438 def clzero : X86Builtin<"void(void *)">; 4439} 4440 4441let Features = "cldemote", Attributes = [NoThrow] in { 4442 def cldemote : X86Builtin<"void(void const *)">; 4443} 4444 4445let Features = "movdiri", Attributes = [NoThrow] in { 4446 def directstore_u32 : X86Builtin<"void(unsigned int *, unsigned int)">; 4447} 4448 4449let Features = "movdir64b", Attributes = [NoThrow] in { 4450 def movdir64b : X86Builtin<"void(void *, void const *)">; 4451} 4452 4453let Features = "ptwrite", Attributes = [NoThrow] in { 4454 def ptwrite32 : X86Builtin<"void(unsigned int)">; 4455} 4456 4457let Features = "invpcid", Attributes = [NoThrow, Const] in { 4458 def invpcid : X86Builtin<"void(unsigned int, void *)">; 4459} 4460 4461let Features = "enqcmd", Attributes = [NoThrow] in { 4462 def enqcmd : X86Builtin<"unsigned char(void *, void const *)">; 4463 def enqcmds : X86Builtin<"unsigned char(void *, void const *)">; 4464} 4465 4466let Features = "kl", Attributes = [NoThrow, RequiredVectorWidth<128>] in { 4467 def loadiwkey : X86Builtin<"void(_Vector<2, long long int>, _Vector<2, long long int>, _Vector<2, long long int>, unsigned int)">; 4468 def encodekey128_u32 : X86Builtin<"unsigned int(unsigned int, _Vector<2, long long int>, void *)">; 4469 def encodekey256_u32 : X86Builtin<"unsigned int(unsigned int, _Vector<2, long long int>, _Vector<2, long long int>, void *)">; 4470 def aesenc128kl_u8 : X86Builtin<"unsigned char(_Vector<2, long long int *>, _Vector<2, long long int>, void const *)">; 4471 def aesenc256kl_u8 : X86Builtin<"unsigned char(_Vector<2, long long int *>, _Vector<2, long long int>, void const *)">; 4472 def aesdec128kl_u8 : X86Builtin<"unsigned char(_Vector<2, long long int *>, _Vector<2, long long int>, void const *)">; 4473 def aesdec256kl_u8 : X86Builtin<"unsigned char(_Vector<2, long long int *>, _Vector<2, long long int>, void const *)">; 4474} 4475 4476let Features = "kl,widekl", Attributes = [NoThrow, RequiredVectorWidth<128>] in { 4477 def aesencwide128kl_u8 : X86Builtin<"unsigned char(_Vector<2, long long int *>, _Vector<2, long long int const *>, void const *)">; 4478 def aesencwide256kl_u8 : X86Builtin<"unsigned char(_Vector<2, long long int *>, _Vector<2, long long int const *>, void const *)">; 4479 def aesdecwide128kl_u8 : X86Builtin<"unsigned char(_Vector<2, long long int *>, _Vector<2, long long int const *>, void const *)">; 4480 def aesdecwide256kl_u8 : X86Builtin<"unsigned char(_Vector<2, long long int *>, _Vector<2, long long int const *>, void const *)">; 4481} 4482 4483let Features = "serialize", Attributes = [NoThrow] in { 4484 def serialize : X86Builtin<"void()">; 4485} 4486 4487let Features = "tsxldtrk", Attributes = [NoThrow] in { 4488 def xsusldtrk : X86Builtin<"void()">; 4489 def xresldtrk : X86Builtin<"void()">; 4490} 4491 4492let Features = "raoint", Attributes = [NoThrow] in { 4493 def aadd32 : X86Builtin<"void(void *, signed int)">; 4494 def aand32 : X86Builtin<"void(void *, signed int)">; 4495 def aor32 : X86Builtin<"void(void *, signed int)">; 4496 def axor32 : X86Builtin<"void(void *, signed int)">; 4497} 4498 4499let Header = "intrin.h", Languages = "ALL_MS_LANGUAGES", Attributes = [NoThrow, RequireDeclaration] in { 4500 def _BitScanForward : X86LibBuiltin<"unsigned char(msuint32_t *, msuint32_t)">; 4501 def _BitScanReverse : X86LibBuiltin<"unsigned char(msuint32_t *, msuint32_t)">; 4502 def _ReadWriteBarrier : X86LibBuiltin<"void()">; 4503 def _ReadBarrier : X86LibBuiltin<"void()">; 4504 def _WriteBarrier : X86LibBuiltin<"void()">; 4505 def __cpuid : X86LibBuiltin<"void(int *, int)">; 4506 def __cpuidex : X86LibBuiltin<"void(int *, int, int)">; 4507} 4508 4509let Header = "intrin.h", Languages = "ALL_MS_LANGUAGES", Attributes = [NoThrow, Const, RequireDeclaration] in { 4510 def __emul : X86LibBuiltin<"long long int(int, int)">; 4511 def __emulu : X86LibBuiltin<"unsigned long long int(unsigned int, unsigned int)">; 4512} 4513 4514let Header = "intrin.h", Languages = "ALL_MS_LANGUAGES", Attributes = [NoThrow, RequireDeclaration] in { 4515 def _AddressOfReturnAddress : X86LibBuiltin<"void *()">; 4516 def __stosb : X86LibBuiltin<"void(unsigned char *, unsigned char, size_t)">; 4517} 4518 4519let Header = "intrin.h", Languages = "ALL_MS_LANGUAGES", Attributes = [NoThrow, RequireDeclaration, NoReturn] in { 4520 def __int2c : X86LibBuiltin<"void()">; 4521 def __ud2 : X86LibBuiltin<"void()">; 4522} 4523 4524let Header = "intrin.h", Languages = "ALL_MS_LANGUAGES", Attributes = [NoThrow, RequireDeclaration] in { 4525 def __readfsbyte : X86LibBuiltin<"unsigned char(msuint32_t)">; 4526 def __readfsword : X86LibBuiltin<"unsigned short(msuint32_t)">; 4527 def __readfsdword : X86LibBuiltin<"msuint32_t(msuint32_t)">; 4528 def __readfsqword : X86LibBuiltin<"unsigned long long int(msuint32_t)">; 4529 def __readgsbyte : X86LibBuiltin<"unsigned char(msuint32_t)">; 4530 def __readgsword : X86LibBuiltin<"unsigned short(msuint32_t)">; 4531 def __readgsdword : X86LibBuiltin<"msuint32_t(msuint32_t)">; 4532 def __readgsqword : X86LibBuiltin<"unsigned long long int(msuint32_t)">; 4533} 4534 4535let Features = "avx10.2-256", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 4536 def vdpphps128 : X86Builtin<"_Vector<4, float>(_Vector<4, float>, _Vector<8, _Float16>, _Vector<8, _Float16>)">; 4537} 4538 4539let Features = "avx10.2-256", Attributes = [NoThrow, Const, RequiredVectorWidth<256>] in { 4540 def vdpphps256 : X86Builtin<"_Vector<8, float>(_Vector<8, float>, _Vector<16, _Float16>, _Vector<16, _Float16>)">; 4541} 4542 4543let Features = "avx10.2-512", Attributes = [NoThrow, Const, RequiredVectorWidth<512>] in { 4544 def vdpphps512 : X86Builtin<"_Vector<16, float>(_Vector<16, float>, _Vector<32, _Float16>, _Vector<32, _Float16>)">; 4545 def vpdpbssd512 : X86Builtin<"_Vector<16, int>(_Vector<16, int>, _Vector<16, int>, _Vector<16, int>)">; 4546 def vpdpbssds512 : X86Builtin<"_Vector<16, int>(_Vector<16, int>, _Vector<16, int>, _Vector<16, int>)">; 4547 def vpdpbsud512 : X86Builtin<"_Vector<16, int>(_Vector<16, int>, _Vector<16, int>, _Vector<16, int>)">; 4548 def vpdpbsuds512 : X86Builtin<"_Vector<16, int>(_Vector<16, int>, _Vector<16, int>, _Vector<16, int>)">; 4549 def vpdpbuud512 : X86Builtin<"_Vector<16, int>(_Vector<16, int>, _Vector<16, int>, _Vector<16, int>)">; 4550 def vpdpbuuds512 : X86Builtin<"_Vector<16, int>(_Vector<16, int>, _Vector<16, int>, _Vector<16, int>)">; 4551} 4552 4553let Features = "avx10.2-512", Attributes = [NoThrow, RequiredVectorWidth<512>] in { 4554 def vpdpwsud512 : X86Builtin<"_Vector<16, int>(_Vector<16, int>, _Vector<16, int>, _Vector<16, int>)">; 4555 def vpdpwsuds512 : X86Builtin<"_Vector<16, int>(_Vector<16, int>, _Vector<16, int>, _Vector<16, int>)">; 4556 def vpdpwusd512 : X86Builtin<"_Vector<16, int>(_Vector<16, int>, _Vector<16, int>, _Vector<16, int>)">; 4557 def vpdpwusds512 : X86Builtin<"_Vector<16, int>(_Vector<16, int>, _Vector<16, int>, _Vector<16, int>)">; 4558 def vpdpwuud512 : X86Builtin<"_Vector<16, int>(_Vector<16, int>, _Vector<16, int>, _Vector<16, int>)">; 4559 def vpdpwuuds512 : X86Builtin<"_Vector<16, int>(_Vector<16, int>, _Vector<16, int>, _Vector<16, int>)">; 4560} 4561 4562let Features = "avx10.2-512", Attributes = [NoThrow, Const, RequiredVectorWidth<512>] in { 4563 def mpsadbw512 : X86Builtin<"_Vector<32, short>(_Vector<64, char>, _Vector<64, char>, _Constant char)">; 4564} 4565 4566let Features = "avxvnniint16|avx10.2-256", Attributes = [NoThrow, RequiredVectorWidth<128>] in { 4567 def vpdpwsud128 : X86Builtin<"_Vector<4, int>(_Vector<4, int>, _Vector<4, int>, _Vector<4, int>)">; 4568} 4569 4570let Features = "avxvnniint16|avx10.2-256", Attributes = [NoThrow, RequiredVectorWidth<256>] in { 4571 def vpdpwsud256 : X86Builtin<"_Vector<8, int>(_Vector<8, int>, _Vector<8, int>, _Vector<8, int>)">; 4572} 4573 4574let Features = "avxvnniint16|avx10.2-256", Attributes = [NoThrow, RequiredVectorWidth<128>] in { 4575 def vpdpwsuds128 : X86Builtin<"_Vector<4, int>(_Vector<4, int>, _Vector<4, int>, _Vector<4, int>)">; 4576} 4577 4578let Features = "avxvnniint16|avx10.2-256", Attributes = [NoThrow, RequiredVectorWidth<256>] in { 4579 def vpdpwsuds256 : X86Builtin<"_Vector<8, int>(_Vector<8, int>, _Vector<8, int>, _Vector<8, int>)">; 4580} 4581 4582let Features = "avxvnniint16|avx10.2-256", Attributes = [NoThrow, RequiredVectorWidth<128>] in { 4583 def vpdpwusd128 : X86Builtin<"_Vector<4, int>(_Vector<4, int>, _Vector<4, int>, _Vector<4, int>)">; 4584} 4585 4586let Features = "avxvnniint16|avx10.2-256", Attributes = [NoThrow, RequiredVectorWidth<256>] in { 4587 def vpdpwusd256 : X86Builtin<"_Vector<8, int>(_Vector<8, int>, _Vector<8, int>, _Vector<8, int>)">; 4588} 4589 4590let Features = "avxvnniint16|avx10.2-256", Attributes = [NoThrow, RequiredVectorWidth<128>] in { 4591 def vpdpwusds128 : X86Builtin<"_Vector<4, int>(_Vector<4, int>, _Vector<4, int>, _Vector<4, int>)">; 4592} 4593 4594let Features = "avxvnniint16|avx10.2-256", Attributes = [NoThrow, RequiredVectorWidth<256>] in { 4595 def vpdpwusds256 : X86Builtin<"_Vector<8, int>(_Vector<8, int>, _Vector<8, int>, _Vector<8, int>)">; 4596} 4597 4598let Features = "avxvnniint16|avx10.2-256", Attributes = [NoThrow, RequiredVectorWidth<128>] in { 4599 def vpdpwuud128 : X86Builtin<"_Vector<4, int>(_Vector<4, int>, _Vector<4, int>, _Vector<4, int>)">; 4600} 4601 4602let Features = "avxvnniint16|avx10.2-256", Attributes = [NoThrow, RequiredVectorWidth<256>] in { 4603 def vpdpwuud256 : X86Builtin<"_Vector<8, int>(_Vector<8, int>, _Vector<8, int>, _Vector<8, int>)">; 4604} 4605 4606let Features = "avxvnniint16|avx10.2-256", Attributes = [NoThrow, RequiredVectorWidth<128>] in { 4607 def vpdpwuuds128 : X86Builtin<"_Vector<4, int>(_Vector<4, int>, _Vector<4, int>, _Vector<4, int>)">; 4608} 4609 4610let Features = "avxvnniint16|avx10.2-256", Attributes = [NoThrow, RequiredVectorWidth<256>] in { 4611 def vpdpwuuds256 : X86Builtin<"_Vector<8, int>(_Vector<8, int>, _Vector<8, int>, _Vector<8, int>)">; 4612} 4613 4614let Features = "avx10.2-256", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 4615 def vcvttsd2sis32 : X86Builtin<"int(_Vector<2, double>, _Constant int)">; 4616 def vcvttsd2usis32 : X86Builtin<"unsigned int(_Vector<2, double>, _Constant int)">; 4617 def vcvttss2sis32 : X86Builtin<"int(_Vector<4, float>, _Constant int)">; 4618 def vcvttss2usis32 : X86Builtin<"unsigned int(_Vector<4, float>, _Constant int)">; 4619} 4620 4621let Features = "avx10.2-256", Attributes = [NoThrow, RequiredVectorWidth<128>] in { 4622 def vcvttpd2dqs128_mask : X86Builtin<"_Vector<4, int>(_Vector<2, double>, _Vector<4, int>, unsigned char)">; 4623} 4624 4625let Features = "avx10.2-256", Attributes = [NoThrow, RequiredVectorWidth<256>] in { 4626 def vcvttpd2dqs256_mask : X86Builtin<"_Vector<4, int>(_Vector<4, double>, _Vector<4, int>, unsigned char)">; 4627} 4628 4629let Features = "avx10.2-512", Attributes = [NoThrow, RequiredVectorWidth<512>] in { 4630 def vcvttpd2dqs512_round_mask : X86Builtin<"_Vector<8, int>(_Vector<8, double>, _Vector<8, int>, unsigned char, _Constant int)">; 4631} 4632 4633let Features = "avx10.2-256", Attributes = [NoThrow, RequiredVectorWidth<128>] in { 4634 def vcvttpd2udqs128_mask : X86Builtin<"_Vector<4, int>(_Vector<2, double>, _Vector<4, int>, unsigned char)">; 4635} 4636 4637let Features = "avx10.2-256", Attributes = [NoThrow, RequiredVectorWidth<256>] in { 4638 def vcvttpd2udqs256_mask : X86Builtin<"_Vector<4, int>(_Vector<4, double>, _Vector<4, int>, unsigned char)">; 4639} 4640 4641let Features = "avx10.2-512", Attributes = [NoThrow, RequiredVectorWidth<512>] in { 4642 def vcvttpd2udqs512_round_mask : X86Builtin<"_Vector<8, int>(_Vector<8, double>, _Vector<8, int>, unsigned char, _Constant int)">; 4643} 4644 4645let Features = "avx10.2-256", Attributes = [NoThrow, RequiredVectorWidth<128>] in { 4646 def vcvttpd2qqs128_mask : X86Builtin<"_Vector<2, long long int>(_Vector<2, double>, _Vector<2, long long int>, unsigned char)">; 4647} 4648 4649let Features = "avx10.2-256", Attributes = [NoThrow, RequiredVectorWidth<256>] in { 4650 def vcvttpd2qqs256_mask : X86Builtin<"_Vector<4, long long int>(_Vector<4, double>, _Vector<4, long long int>, unsigned char)">; 4651} 4652 4653let Features = "avx10.2-512", Attributes = [NoThrow, RequiredVectorWidth<512>] in { 4654 def vcvttpd2qqs512_round_mask : X86Builtin<"_Vector<8, long long int>(_Vector<8, double>, _Vector<8, long long int>, unsigned char, _Constant int)">; 4655} 4656 4657let Features = "avx10.2-256", Attributes = [NoThrow, RequiredVectorWidth<128>] in { 4658 def vcvttpd2uqqs128_mask : X86Builtin<"_Vector<2, long long int>(_Vector<2, double>, _Vector<2, long long int>, unsigned char)">; 4659} 4660 4661let Features = "avx10.2-256", Attributes = [NoThrow, RequiredVectorWidth<256>] in { 4662 def vcvttpd2uqqs256_mask : X86Builtin<"_Vector<4, long long int>(_Vector<4, double>, _Vector<4, long long int>, unsigned char)">; 4663} 4664 4665let Features = "avx10.2-512", Attributes = [NoThrow, RequiredVectorWidth<512>] in { 4666 def vcvttpd2uqqs512_round_mask : X86Builtin<"_Vector<8, long long int>(_Vector<8, double>, _Vector<8, long long int>, unsigned char, _Constant int)">; 4667} 4668 4669let Features = "avx10.2-256", Attributes = [NoThrow, RequiredVectorWidth<128>] in { 4670 def vcvttps2dqs128_mask : X86Builtin<"_Vector<4, int>(_Vector<4, float>, _Vector<4, int>, unsigned char)">; 4671} 4672 4673let Features = "avx10.2-256", Attributes = [NoThrow, RequiredVectorWidth<256>] in { 4674 def vcvttps2dqs256_mask : X86Builtin<"_Vector<8, int>(_Vector<8, float>, _Vector<8, int>, unsigned char)">; 4675} 4676 4677let Features = "avx10.2-512", Attributes = [NoThrow, RequiredVectorWidth<512>] in { 4678 def vcvttps2dqs512_round_mask : X86Builtin<"_Vector<16, int>(_Vector<16, float>, _Vector<16, int>, unsigned short, _Constant int)">; 4679} 4680 4681let Features = "avx10.2-256", Attributes = [NoThrow, RequiredVectorWidth<128>] in { 4682 def vcvttps2udqs128_mask : X86Builtin<"_Vector<4, int>(_Vector<4, float>, _Vector<4, int>, unsigned char)">; 4683} 4684 4685let Features = "avx10.2-256", Attributes = [NoThrow, RequiredVectorWidth<256>] in { 4686 def vcvttps2udqs256_mask : X86Builtin<"_Vector<8, int>(_Vector<8, float>, _Vector<8, int>, unsigned char)">; 4687} 4688 4689let Features = "avx10.2-512", Attributes = [NoThrow, RequiredVectorWidth<512>] in { 4690 def vcvttps2udqs512_round_mask : X86Builtin<"_Vector<16, int>(_Vector<16, float>, _Vector<16, int>, unsigned short, _Constant int)">; 4691} 4692 4693let Features = "avx10.2-256", Attributes = [NoThrow, RequiredVectorWidth<128>] in { 4694 def vcvttps2qqs128_mask : X86Builtin<"_Vector<2, long long int>(_Vector<4, float>, _Vector<2, long long int>, unsigned char)">; 4695} 4696 4697let Features = "avx10.2-256", Attributes = [NoThrow, RequiredVectorWidth<256>] in { 4698 def vcvttps2qqs256_mask : X86Builtin<"_Vector<4, long long int>(_Vector<4, float>, _Vector<4, long long int>, unsigned char)">; 4699} 4700 4701let Features = "avx10.2-512", Attributes = [NoThrow, RequiredVectorWidth<512>] in { 4702 def vcvttps2qqs512_round_mask : X86Builtin<"_Vector<8, long long int>(_Vector<8, float>, _Vector<8, long long int>, unsigned char, _Constant int)">; 4703} 4704 4705let Features = "avx10.2-256", Attributes = [NoThrow, RequiredVectorWidth<128>] in { 4706 def vcvttps2uqqs128_mask : X86Builtin<"_Vector<2, long long int>(_Vector<4, float>, _Vector<2, long long int>, unsigned char)">; 4707} 4708 4709let Features = "avx10.2-256", Attributes = [NoThrow, RequiredVectorWidth<256>] in { 4710 def vcvttps2uqqs256_mask : X86Builtin<"_Vector<4, long long int>(_Vector<4, float>, _Vector<4, long long int>, unsigned char)">; 4711} 4712 4713let Features = "avx10.2-512", Attributes = [NoThrow, RequiredVectorWidth<512>] in { 4714 def vcvttps2uqqs512_round_mask : X86Builtin<"_Vector<8, long long int>(_Vector<8, float>, _Vector<8, long long int>, unsigned char, _Constant int)">; 4715} 4716 4717let Features = "avxneconvert", Attributes = [NoThrow, RequiredVectorWidth<128>] in { 4718 def vbcstnebf162ps128 : X86Builtin<"_Vector<4, float>(__bf16 const *)">; 4719} 4720 4721let Features = "avxneconvert", Attributes = [NoThrow, RequiredVectorWidth<256>] in { 4722 def vbcstnebf162ps256 : X86Builtin<"_Vector<8, float>(__bf16 const *)">; 4723} 4724 4725let Features = "avxneconvert", Attributes = [NoThrow, RequiredVectorWidth<128>] in { 4726 def vbcstnesh2ps128 : X86Builtin<"_Vector<4, float>(_Float16 const *)">; 4727} 4728 4729let Features = "avxneconvert", Attributes = [NoThrow, RequiredVectorWidth<256>] in { 4730 def vbcstnesh2ps256 : X86Builtin<"_Vector<8, float>(_Float16 const *)">; 4731} 4732 4733let Features = "avxneconvert", Attributes = [NoThrow, RequiredVectorWidth<128>] in { 4734 def vcvtneebf162ps128 : X86Builtin<"_Vector<4, float>(_Vector<8, __bf16 const *>)">; 4735} 4736 4737let Features = "avxneconvert", Attributes = [NoThrow, RequiredVectorWidth<256>] in { 4738 def vcvtneebf162ps256 : X86Builtin<"_Vector<8, float>(_Vector<16, __bf16 const *>)">; 4739} 4740 4741let Features = "avxneconvert", Attributes = [NoThrow, RequiredVectorWidth<128>] in { 4742 def vcvtneeph2ps128 : X86Builtin<"_Vector<4, float>(_Vector<8, _Float16 const *>)">; 4743} 4744 4745let Features = "avxneconvert", Attributes = [NoThrow, RequiredVectorWidth<256>] in { 4746 def vcvtneeph2ps256 : X86Builtin<"_Vector<8, float>(_Vector<16, _Float16 const *>)">; 4747} 4748 4749let Features = "avxneconvert", Attributes = [NoThrow, RequiredVectorWidth<128>] in { 4750 def vcvtneobf162ps128 : X86Builtin<"_Vector<4, float>(_Vector<8, __bf16 const *>)">; 4751} 4752 4753let Features = "avxneconvert", Attributes = [NoThrow, RequiredVectorWidth<256>] in { 4754 def vcvtneobf162ps256 : X86Builtin<"_Vector<8, float>(_Vector<16, __bf16 const *>)">; 4755} 4756 4757let Features = "avxneconvert", Attributes = [NoThrow, RequiredVectorWidth<128>] in { 4758 def vcvtneoph2ps128 : X86Builtin<"_Vector<4, float>(_Vector<8, _Float16 const *>)">; 4759} 4760 4761let Features = "avxneconvert", Attributes = [NoThrow, RequiredVectorWidth<256>] in { 4762 def vcvtneoph2ps256 : X86Builtin<"_Vector<8, float>(_Vector<16, _Float16 const *>)">; 4763} 4764 4765let Features = "avx512bf16,avx512vl|avxneconvert", Attributes = [NoThrow, RequiredVectorWidth<128>] in { 4766 def vcvtneps2bf16128 : X86Builtin<"_Vector<8, __bf16>(_Vector<4, float>)">; 4767} 4768 4769let Features = "avx512bf16,avx512vl|avxneconvert", Attributes = [NoThrow, RequiredVectorWidth<256>] in { 4770 def vcvtneps2bf16256 : X86Builtin<"_Vector<8, __bf16>(_Vector<8, float>)">; 4771} 4772 4773let Features = "sha512", Attributes = [NoThrow, RequiredVectorWidth<256>] in { 4774 def vsha512msg1 : X86Builtin<"_Vector<4, unsigned long long int>(_Vector<4, unsigned long long int>, _Vector<2, unsigned long long int>)">; 4775 def vsha512msg2 : X86Builtin<"_Vector<4, unsigned long long int>(_Vector<4, unsigned long long int>, _Vector<4, unsigned long long int>)">; 4776 def vsha512rnds2 : X86Builtin<"_Vector<4, unsigned long long int>(_Vector<4, unsigned long long int>, _Vector<4, unsigned long long int>, _Vector<2, unsigned long long int>)">; 4777} 4778 4779let Header = "intrin.h", Languages = "ALL_MS_LANGUAGES", Attributes = [NoThrow, RequireDeclaration] in { 4780 def _InterlockedAnd64 : X86LibBuiltin<"int64_t(int64_t volatile *, int64_t)">; 4781 def _InterlockedDecrement64 : X86LibBuiltin<"int64_t(int64_t volatile *)">; 4782 def _InterlockedExchange64 : X86LibBuiltin<"int64_t(int64_t volatile *, int64_t)">; 4783 def _InterlockedExchangeAdd64 : X86LibBuiltin<"int64_t(int64_t volatile *, int64_t)">; 4784 def _InterlockedExchangeSub64 : X86LibBuiltin<"int64_t(int64_t volatile *, int64_t)">; 4785 def _InterlockedIncrement64 : X86LibBuiltin<"int64_t(int64_t volatile *)">; 4786 def _InterlockedOr64 : X86LibBuiltin<"int64_t(int64_t volatile *, int64_t)">; 4787 def _InterlockedXor64 : X86LibBuiltin<"int64_t(int64_t volatile *, int64_t)">; 4788} 4789 4790let Features = "sm3", Attributes = [NoThrow, RequiredVectorWidth<128>] in { 4791 def vsm3msg1 : X86Builtin<"_Vector<4, unsigned int>(_Vector<4, unsigned int>, _Vector<4, unsigned int>, _Vector<4, unsigned int>)">; 4792 def vsm3msg2 : X86Builtin<"_Vector<4, unsigned int>(_Vector<4, unsigned int>, _Vector<4, unsigned int>, _Vector<4, unsigned int>)">; 4793 def vsm3rnds2 : X86Builtin<"_Vector<4, unsigned int>(_Vector<4, unsigned int>, _Vector<4, unsigned int>, _Vector<4, unsigned int>, _Constant unsigned int)">; 4794} 4795 4796let Features = "sm4", Attributes = [NoThrow, RequiredVectorWidth<128>] in { 4797 def vsm4key4128 : X86Builtin<"_Vector<4, unsigned int>(_Vector<4, unsigned int>, _Vector<4, unsigned int>)">; 4798} 4799 4800let Features = "sm4", Attributes = [NoThrow, RequiredVectorWidth<256>] in { 4801 def vsm4key4256 : X86Builtin<"_Vector<8, unsigned int>(_Vector<8, unsigned int>, _Vector<8, unsigned int>)">; 4802} 4803 4804let Features = "sm4", Attributes = [NoThrow, RequiredVectorWidth<128>] in { 4805 def vsm4rnds4128 : X86Builtin<"_Vector<4, unsigned int>(_Vector<4, unsigned int>, _Vector<4, unsigned int>)">; 4806} 4807 4808let Features = "sm4", Attributes = [NoThrow, RequiredVectorWidth<256>] in { 4809 def vsm4rnds4256 : X86Builtin<"_Vector<8, unsigned int>(_Vector<8, unsigned int>, _Vector<8, unsigned int>)">; 4810} 4811 4812let Features = "avx10.2-512,sm4", Attributes = [NoThrow, RequiredVectorWidth<512>] in { 4813 def vsm4key4512 : X86Builtin<"_Vector<16, unsigned int>(_Vector<16, unsigned int>, _Vector<16, unsigned int>)">; 4814 def vsm4rnds4512 : X86Builtin<"_Vector<16, unsigned int>(_Vector<16, unsigned int>, _Vector<16, unsigned int>)">; 4815} 4816 4817let Features = "avx10.2-256", Attributes = [NoThrow, RequiredVectorWidth<128>] in { 4818 def vminmaxbf16128 : X86Builtin<"_Vector<8, __bf16>(_Vector<8, __bf16>, _Vector<8, __bf16>, _Constant int)">; 4819} 4820 4821let Features = "avx10.2-256", Attributes = [NoThrow, RequiredVectorWidth<256>] in { 4822 def vminmaxbf16256 : X86Builtin<"_Vector<16, __bf16>(_Vector<16, __bf16>, _Vector<16, __bf16>, _Constant int)">; 4823} 4824 4825let Features = "avx10.2-512", Attributes = [NoThrow, RequiredVectorWidth<512>] in { 4826 def vminmaxbf16512 : X86Builtin<"_Vector<32, __bf16>(_Vector<32, __bf16>, _Vector<32, __bf16>, _Constant int)">; 4827} 4828 4829let Features = "avx10.2-256", Attributes = [NoThrow, RequiredVectorWidth<128>] in { 4830 def vminmaxpd128_mask : X86Builtin<"_Vector<2, double>(_Vector<2, double>, _Vector<2, double>, _Constant int, _Vector<2, double>, unsigned char)">; 4831} 4832 4833let Features = "avx10.2-256", Attributes = [NoThrow, RequiredVectorWidth<256>] in { 4834 def vminmaxpd256_mask : X86Builtin<"_Vector<4, double>(_Vector<4, double>, _Vector<4, double>, _Constant int, _Vector<4, double>, unsigned char)">; 4835} 4836 4837let Features = "avx10.2-512", Attributes = [NoThrow, RequiredVectorWidth<512>] in { 4838 def vminmaxpd512_round_mask : X86Builtin<"_Vector<8, double>(_Vector<8, double>, _Vector<8, double>, _Constant int, _Vector<8, double>, unsigned char, _Constant int)">; 4839} 4840 4841let Features = "avx10.2-256", Attributes = [NoThrow, RequiredVectorWidth<128>] in { 4842 def vminmaxph128_mask : X86Builtin<"_Vector<8, _Float16>(_Vector<8, _Float16>, _Vector<8, _Float16>, _Constant int, _Vector<8, _Float16>, unsigned char)">; 4843} 4844 4845let Features = "avx10.2-256", Attributes = [NoThrow, RequiredVectorWidth<256>] in { 4846 def vminmaxph256_mask : X86Builtin<"_Vector<16, _Float16>(_Vector<16, _Float16>, _Vector<16, _Float16>, _Constant int, _Vector<16, _Float16>, unsigned short)">; 4847} 4848 4849let Features = "avx10.2-512", Attributes = [NoThrow, RequiredVectorWidth<512>] in { 4850 def vminmaxph512_round_mask : X86Builtin<"_Vector<32, _Float16>(_Vector<32, _Float16>, _Vector<32, _Float16>, _Constant int, _Vector<32, _Float16>, unsigned int, _Constant int)">; 4851} 4852 4853let Features = "avx10.2-256", Attributes = [NoThrow, RequiredVectorWidth<128>] in { 4854 def vminmaxps128_mask : X86Builtin<"_Vector<4, float>(_Vector<4, float>, _Vector<4, float>, _Constant int, _Vector<4, float>, unsigned char)">; 4855} 4856 4857let Features = "avx10.2-256", Attributes = [NoThrow, RequiredVectorWidth<256>] in { 4858 def vminmaxps256_mask : X86Builtin<"_Vector<8, float>(_Vector<8, float>, _Vector<8, float>, _Constant int, _Vector<8, float>, unsigned char)">; 4859} 4860 4861let Features = "avx10.2-512", Attributes = [NoThrow, RequiredVectorWidth<512>] in { 4862 def vminmaxps512_round_mask : X86Builtin<"_Vector<16, float>(_Vector<16, float>, _Vector<16, float>, _Constant int, _Vector<16, float>, unsigned short, _Constant int)">; 4863} 4864 4865let Features = "avx10.2-256", Attributes = [NoThrow, RequiredVectorWidth<128>] in { 4866 def vminmaxsd_round_mask : X86Builtin<"_Vector<2, double>(_Vector<2, double>, _Vector<2, double>, _Constant int, _Vector<2, double>, unsigned char, _Constant int)">; 4867 def vminmaxsh_round_mask : X86Builtin<"_Vector<8, _Float16>(_Vector<8, _Float16>, _Vector<8, _Float16>, _Constant int, _Vector<8, _Float16>, unsigned char, _Constant int)">; 4868 def vminmaxss_round_mask : X86Builtin<"_Vector<4, float>(_Vector<4, float>, _Vector<4, float>, _Constant int, _Vector<4, float>, unsigned char, _Constant int)">; 4869 def vcvtbf162ibs128 : X86Builtin<"_Vector<8, unsigned short>(_Vector<8, __bf16>)">; 4870} 4871 4872let Features = "avx10.2-256", Attributes = [NoThrow, RequiredVectorWidth<256>] in { 4873 def vcvtbf162ibs256 : X86Builtin<"_Vector<16, unsigned short>(_Vector<16, __bf16>)">; 4874} 4875 4876let Features = "avx10.2-512", Attributes = [NoThrow, RequiredVectorWidth<512>] in { 4877 def vcvtbf162ibs512 : X86Builtin<"_Vector<32, unsigned short>(_Vector<32, __bf16>)">; 4878} 4879 4880let Features = "avx10.2-256", Attributes = [NoThrow, RequiredVectorWidth<128>] in { 4881 def vcvtbf162iubs128 : X86Builtin<"_Vector<8, unsigned short>(_Vector<8, __bf16>)">; 4882} 4883 4884let Features = "avx10.2-256", Attributes = [NoThrow, RequiredVectorWidth<256>] in { 4885 def vcvtbf162iubs256 : X86Builtin<"_Vector<16, unsigned short>(_Vector<16, __bf16>)">; 4886} 4887 4888let Features = "avx10.2-512", Attributes = [NoThrow, RequiredVectorWidth<512>] in { 4889 def vcvtbf162iubs512 : X86Builtin<"_Vector<32, unsigned short>(_Vector<32, __bf16>)">; 4890} 4891 4892let Features = "avx10.2-256", Attributes = [NoThrow, RequiredVectorWidth<128>] in { 4893 def vcvtph2ibs128_mask : X86Builtin<"_Vector<8, unsigned short>(_Vector<8, _Float16>, _Vector<8, unsigned short>, unsigned char)">; 4894} 4895 4896let Features = "avx10.2-256", Attributes = [NoThrow, RequiredVectorWidth<256>] in { 4897 def vcvtph2ibs256_mask : X86Builtin<"_Vector<16, unsigned short>(_Vector<16, _Float16>, _Vector<16, unsigned short>, unsigned short)">; 4898} 4899 4900let Features = "avx10.2-512", Attributes = [NoThrow, RequiredVectorWidth<512>] in { 4901 def vcvtph2ibs512_mask : X86Builtin<"_Vector<32, unsigned short>(_Vector<32, _Float16>, _Vector<32, unsigned short>, unsigned int, _Constant int)">; 4902} 4903 4904let Features = "avx10.2-256", Attributes = [NoThrow, RequiredVectorWidth<128>] in { 4905 def vcvtph2iubs128_mask : X86Builtin<"_Vector<8, unsigned short>(_Vector<8, _Float16>, _Vector<8, unsigned short>, unsigned char)">; 4906} 4907 4908let Features = "avx10.2-256", Attributes = [NoThrow, RequiredVectorWidth<256>] in { 4909 def vcvtph2iubs256_mask : X86Builtin<"_Vector<16, unsigned short>(_Vector<16, _Float16>, _Vector<16, unsigned short>, unsigned short)">; 4910} 4911 4912let Features = "avx10.2-512", Attributes = [NoThrow, RequiredVectorWidth<512>] in { 4913 def vcvtph2iubs512_mask : X86Builtin<"_Vector<32, unsigned short>(_Vector<32, _Float16>, _Vector<32, unsigned short>, unsigned int, _Constant int)">; 4914} 4915 4916let Features = "avx10.2-256", Attributes = [NoThrow, RequiredVectorWidth<128>] in { 4917 def vcvtps2ibs128_mask : X86Builtin<"_Vector<4, unsigned int>(_Vector<4, float>, _Vector<4, unsigned int>, unsigned char)">; 4918} 4919 4920let Features = "avx10.2-256", Attributes = [NoThrow, RequiredVectorWidth<256>] in { 4921 def vcvtps2ibs256_mask : X86Builtin<"_Vector<8, unsigned int>(_Vector<8, float>, _Vector<8, unsigned int>, unsigned char)">; 4922} 4923 4924let Features = "avx10.2-512", Attributes = [NoThrow, RequiredVectorWidth<512>] in { 4925 def vcvtps2ibs512_mask : X86Builtin<"_Vector<16, unsigned int>(_Vector<16, float>, _Vector<16, unsigned int>, unsigned short, _Constant int)">; 4926} 4927 4928let Features = "avx10.2-256", Attributes = [NoThrow, RequiredVectorWidth<128>] in { 4929 def vcvtps2iubs128_mask : X86Builtin<"_Vector<4, unsigned int>(_Vector<4, float>, _Vector<4, unsigned int>, unsigned char)">; 4930} 4931 4932let Features = "avx10.2-256", Attributes = [NoThrow, RequiredVectorWidth<256>] in { 4933 def vcvtps2iubs256_mask : X86Builtin<"_Vector<8, unsigned int>(_Vector<8, float>, _Vector<8, unsigned int>, unsigned char)">; 4934} 4935 4936let Features = "avx10.2-512", Attributes = [NoThrow, RequiredVectorWidth<512>] in { 4937 def vcvtps2iubs512_mask : X86Builtin<"_Vector<16, unsigned int>(_Vector<16, float>, _Vector<16, unsigned int>, unsigned short, _Constant int)">; 4938} 4939 4940let Features = "avx10.2-256", Attributes = [NoThrow, RequiredVectorWidth<128>] in { 4941 def vcvttbf162ibs128 : X86Builtin<"_Vector<8, unsigned short>(_Vector<8, __bf16>)">; 4942} 4943 4944let Features = "avx10.2-256", Attributes = [NoThrow, RequiredVectorWidth<256>] in { 4945 def vcvttbf162ibs256 : X86Builtin<"_Vector<16, unsigned short>(_Vector<16, __bf16>)">; 4946} 4947 4948let Features = "avx10.2-512", Attributes = [NoThrow, RequiredVectorWidth<512>] in { 4949 def vcvttbf162ibs512 : X86Builtin<"_Vector<32, unsigned short>(_Vector<32, __bf16>)">; 4950} 4951 4952let Features = "avx10.2-256", Attributes = [NoThrow, RequiredVectorWidth<128>] in { 4953 def vcvttbf162iubs128 : X86Builtin<"_Vector<8, unsigned short>(_Vector<8, __bf16>)">; 4954} 4955 4956let Features = "avx10.2-256", Attributes = [NoThrow, RequiredVectorWidth<256>] in { 4957 def vcvttbf162iubs256 : X86Builtin<"_Vector<16, unsigned short>(_Vector<16, __bf16>)">; 4958} 4959 4960let Features = "avx10.2-512", Attributes = [NoThrow, RequiredVectorWidth<512>] in { 4961 def vcvttbf162iubs512 : X86Builtin<"_Vector<32, unsigned short>(_Vector<32, __bf16>)">; 4962} 4963 4964let Features = "avx10.2-256", Attributes = [NoThrow, RequiredVectorWidth<128>] in { 4965 def vcvttph2ibs128_mask : X86Builtin<"_Vector<8, unsigned short>(_Vector<8, _Float16>, _Vector<8, unsigned short>, unsigned char)">; 4966} 4967 4968let Features = "avx10.2-256", Attributes = [NoThrow, RequiredVectorWidth<256>] in { 4969 def vcvttph2ibs256_mask : X86Builtin<"_Vector<16, unsigned short>(_Vector<16, _Float16>, _Vector<16, unsigned short>, unsigned short)">; 4970} 4971 4972let Features = "avx10.2-512", Attributes = [NoThrow, RequiredVectorWidth<512>] in { 4973 def vcvttph2ibs512_mask : X86Builtin<"_Vector<32, unsigned short>(_Vector<32, _Float16>, _Vector<32, unsigned short>, unsigned int, _Constant int)">; 4974} 4975 4976let Features = "avx10.2-256", Attributes = [NoThrow, RequiredVectorWidth<128>] in { 4977 def vcvttph2iubs128_mask : X86Builtin<"_Vector<8, unsigned short>(_Vector<8, _Float16>, _Vector<8, unsigned short>, unsigned char)">; 4978} 4979 4980let Features = "avx10.2-256", Attributes = [NoThrow, RequiredVectorWidth<256>] in { 4981 def vcvttph2iubs256_mask : X86Builtin<"_Vector<16, unsigned short>(_Vector<16, _Float16>, _Vector<16, unsigned short>, unsigned short)">; 4982} 4983 4984let Features = "avx10.2-512", Attributes = [NoThrow, RequiredVectorWidth<512>] in { 4985 def vcvttph2iubs512_mask : X86Builtin<"_Vector<32, unsigned short>(_Vector<32, _Float16>, _Vector<32, unsigned short>, unsigned int, _Constant int)">; 4986} 4987 4988let Features = "avx10.2-256", Attributes = [NoThrow, RequiredVectorWidth<128>] in { 4989 def vcvttps2ibs128_mask : X86Builtin<"_Vector<4, unsigned int>(_Vector<4, float>, _Vector<4, unsigned int>, unsigned char)">; 4990} 4991 4992let Features = "avx10.2-256", Attributes = [NoThrow, RequiredVectorWidth<256>] in { 4993 def vcvttps2ibs256_mask : X86Builtin<"_Vector<8, unsigned int>(_Vector<8, float>, _Vector<8, unsigned int>, unsigned char)">; 4994} 4995 4996let Features = "avx10.2-512", Attributes = [NoThrow, RequiredVectorWidth<512>] in { 4997 def vcvttps2ibs512_mask : X86Builtin<"_Vector<16, unsigned int>(_Vector<16, float>, _Vector<16, unsigned int>, unsigned short, _Constant int)">; 4998} 4999 5000let Features = "avx10.2-256", Attributes = [NoThrow, RequiredVectorWidth<128>] in { 5001 def vcvttps2iubs128_mask : X86Builtin<"_Vector<4, unsigned int>(_Vector<4, float>, _Vector<4, unsigned int>, unsigned char)">; 5002} 5003 5004let Features = "avx10.2-256", Attributes = [NoThrow, RequiredVectorWidth<256>] in { 5005 def vcvttps2iubs256_mask : X86Builtin<"_Vector<8, unsigned int>(_Vector<8, float>, _Vector<8, unsigned int>, unsigned char)">; 5006} 5007 5008let Features = "avx10.2-512", Attributes = [NoThrow, RequiredVectorWidth<512>] in { 5009 def vcvttps2iubs512_mask : X86Builtin<"_Vector<16, unsigned int>(_Vector<16, float>, _Vector<16, unsigned int>, unsigned short, _Constant int)">; 5010} 5011 5012let Features = "avx10.2-256", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 5013 def vcvt2ps2phx128_mask : X86Builtin<"_Vector<8, _Float16>(_Vector<4, float>, _Vector<4, float>, _Vector<8, _Float16>, unsigned char)">; 5014} 5015 5016let Features = "avx10.2-256", Attributes = [NoThrow, Const, RequiredVectorWidth<256>] in { 5017 def vcvt2ps2phx256_mask : X86Builtin<"_Vector<16, _Float16>(_Vector<8, float>, _Vector<8, float>, _Vector<16, _Float16>, unsigned short)">; 5018} 5019 5020let Features = "avx10.2-512", Attributes = [NoThrow, Const, RequiredVectorWidth<512>] in { 5021 def vcvt2ps2phx512_mask : X86Builtin<"_Vector<32, _Float16>(_Vector<16, float>, _Vector<16, float>, _Vector<32, _Float16>, unsigned int, _Constant int)">; 5022} 5023 5024let Features = "avx10.2-256", Attributes = [NoThrow, RequiredVectorWidth<128>] in { 5025 def vcvtbiasph2bf8_128_mask : X86Builtin<"_Vector<16, char>(_Vector<16, char>, _Vector<8, _Float16>, _Vector<16, char>, unsigned char)">; 5026} 5027 5028let Features = "avx10.2-256", Attributes = [NoThrow, RequiredVectorWidth<256>] in { 5029 def vcvtbiasph2bf8_256_mask : X86Builtin<"_Vector<16, char>(_Vector<32, char>, _Vector<16, _Float16>, _Vector<16, char>, unsigned short)">; 5030} 5031 5032let Features = "avx10.2-512", Attributes = [NoThrow, RequiredVectorWidth<512>] in { 5033 def vcvtbiasph2bf8_512_mask : X86Builtin<"_Vector<32, char>(_Vector<64, char>, _Vector<32, _Float16>, _Vector<32, char>, unsigned int)">; 5034} 5035 5036let Features = "avx10.2-256", Attributes = [NoThrow, RequiredVectorWidth<128>] in { 5037 def vcvtbiasph2bf8s_128_mask : X86Builtin<"_Vector<16, char>(_Vector<16, char>, _Vector<8, _Float16>, _Vector<16, char>, unsigned char)">; 5038} 5039 5040let Features = "avx10.2-256", Attributes = [NoThrow, RequiredVectorWidth<256>] in { 5041 def vcvtbiasph2bf8s_256_mask : X86Builtin<"_Vector<16, char>(_Vector<32, char>, _Vector<16, _Float16>, _Vector<16, char>, unsigned short)">; 5042} 5043 5044let Features = "avx10.2-512", Attributes = [NoThrow, RequiredVectorWidth<512>] in { 5045 def vcvtbiasph2bf8s_512_mask : X86Builtin<"_Vector<32, char>(_Vector<64, char>, _Vector<32, _Float16>, _Vector<32, char>, unsigned int)">; 5046} 5047 5048let Features = "avx10.2-256", Attributes = [NoThrow, RequiredVectorWidth<128>] in { 5049 def vcvtbiasph2hf8_128_mask : X86Builtin<"_Vector<16, char>(_Vector<16, char>, _Vector<8, _Float16>, _Vector<16, char>, unsigned char)">; 5050} 5051 5052let Features = "avx10.2-256", Attributes = [NoThrow, RequiredVectorWidth<256>] in { 5053 def vcvtbiasph2hf8_256_mask : X86Builtin<"_Vector<16, char>(_Vector<32, char>, _Vector<16, _Float16>, _Vector<16, char>, unsigned short)">; 5054} 5055 5056let Features = "avx10.2-512", Attributes = [NoThrow, RequiredVectorWidth<512>] in { 5057 def vcvtbiasph2hf8_512_mask : X86Builtin<"_Vector<32, char>(_Vector<64, char>, _Vector<32, _Float16>, _Vector<32, char>, unsigned int)">; 5058} 5059 5060let Features = "avx10.2-256", Attributes = [NoThrow, RequiredVectorWidth<128>] in { 5061 def vcvtbiasph2hf8s_128_mask : X86Builtin<"_Vector<16, char>(_Vector<16, char>, _Vector<8, _Float16>, _Vector<16, char>, unsigned char)">; 5062} 5063 5064let Features = "avx10.2-256", Attributes = [NoThrow, RequiredVectorWidth<256>] in { 5065 def vcvtbiasph2hf8s_256_mask : X86Builtin<"_Vector<16, char>(_Vector<32, char>, _Vector<16, _Float16>, _Vector<16, char>, unsigned short)">; 5066} 5067 5068let Features = "avx10.2-512", Attributes = [NoThrow, RequiredVectorWidth<512>] in { 5069 def vcvtbiasph2hf8s_512_mask : X86Builtin<"_Vector<32, char>(_Vector<64, char>, _Vector<32, _Float16>, _Vector<32, char>, unsigned int)">; 5070} 5071 5072let Features = "avx10.2-256", Attributes = [NoThrow, RequiredVectorWidth<128>] in { 5073 def vcvt2ph2bf8_128 : X86Builtin<"_Vector<16, char>(_Vector<8, _Float16>, _Vector<8, _Float16>)">; 5074} 5075 5076let Features = "avx10.2-256", Attributes = [NoThrow, RequiredVectorWidth<256>] in { 5077 def vcvt2ph2bf8_256 : X86Builtin<"_Vector<32, char>(_Vector<16, _Float16>, _Vector<16, _Float16>)">; 5078} 5079 5080let Features = "avx10.2-512", Attributes = [NoThrow, RequiredVectorWidth<512>] in { 5081 def vcvt2ph2bf8_512 : X86Builtin<"_Vector<64, char>(_Vector<32, _Float16>, _Vector<32, _Float16>)">; 5082} 5083 5084let Features = "avx10.2-256", Attributes = [NoThrow, RequiredVectorWidth<128>] in { 5085 def vcvt2ph2bf8s_128 : X86Builtin<"_Vector<16, char>(_Vector<8, _Float16>, _Vector<8, _Float16>)">; 5086} 5087 5088let Features = "avx10.2-256", Attributes = [NoThrow, RequiredVectorWidth<256>] in { 5089 def vcvt2ph2bf8s_256 : X86Builtin<"_Vector<32, char>(_Vector<16, _Float16>, _Vector<16, _Float16>)">; 5090} 5091 5092let Features = "avx10.2-512", Attributes = [NoThrow, RequiredVectorWidth<512>] in { 5093 def vcvt2ph2bf8s_512 : X86Builtin<"_Vector<64, char>(_Vector<32, _Float16>, _Vector<32, _Float16>)">; 5094} 5095 5096let Features = "avx10.2-256", Attributes = [NoThrow, RequiredVectorWidth<128>] in { 5097 def vcvt2ph2hf8_128 : X86Builtin<"_Vector<16, char>(_Vector<8, _Float16>, _Vector<8, _Float16>)">; 5098} 5099 5100let Features = "avx10.2-256", Attributes = [NoThrow, RequiredVectorWidth<256>] in { 5101 def vcvt2ph2hf8_256 : X86Builtin<"_Vector<32, char>(_Vector<16, _Float16>, _Vector<16, _Float16>)">; 5102} 5103 5104let Features = "avx10.2-512", Attributes = [NoThrow, RequiredVectorWidth<512>] in { 5105 def vcvt2ph2hf8_512 : X86Builtin<"_Vector<64, char>(_Vector<32, _Float16>, _Vector<32, _Float16>)">; 5106} 5107 5108let Features = "avx10.2-256", Attributes = [NoThrow, RequiredVectorWidth<128>] in { 5109 def vcvt2ph2hf8s_128 : X86Builtin<"_Vector<16, char>(_Vector<8, _Float16>, _Vector<8, _Float16>)">; 5110} 5111 5112let Features = "avx10.2-256", Attributes = [NoThrow, RequiredVectorWidth<256>] in { 5113 def vcvt2ph2hf8s_256 : X86Builtin<"_Vector<32, char>(_Vector<16, _Float16>, _Vector<16, _Float16>)">; 5114} 5115 5116let Features = "avx10.2-512", Attributes = [NoThrow, RequiredVectorWidth<512>] in { 5117 def vcvt2ph2hf8s_512 : X86Builtin<"_Vector<64, char>(_Vector<32, _Float16>, _Vector<32, _Float16>)">; 5118} 5119 5120let Features = "avx10.2-256", Attributes = [NoThrow, RequiredVectorWidth<128>] in { 5121 def vcvthf8_2ph128_mask : X86Builtin<"_Vector<8, _Float16>(_Vector<16, char>, _Vector<8, _Float16>, unsigned char)">; 5122} 5123 5124let Features = "avx10.2-256", Attributes = [NoThrow, RequiredVectorWidth<256>] in { 5125 def vcvthf8_2ph256_mask : X86Builtin<"_Vector<16, _Float16>(_Vector<16, char>, _Vector<16, _Float16>, unsigned short)">; 5126} 5127 5128let Features = "avx10.2-512", Attributes = [NoThrow, RequiredVectorWidth<512>] in { 5129 def vcvthf8_2ph512_mask : X86Builtin<"_Vector<32, _Float16>(_Vector<32, char>, _Vector<32, _Float16>, unsigned int)">; 5130} 5131 5132let Features = "avx10.2-256", Attributes = [NoThrow, RequiredVectorWidth<128>] in { 5133 def vcvtph2bf8_128_mask : X86Builtin<"_Vector<16, char>(_Vector<8, _Float16>, _Vector<16, char>, unsigned char)">; 5134} 5135 5136let Features = "avx10.2-256", Attributes = [NoThrow, RequiredVectorWidth<256>] in { 5137 def vcvtph2bf8_256_mask : X86Builtin<"_Vector<16, char>(_Vector<16, _Float16>, _Vector<16, char>, unsigned short)">; 5138} 5139 5140let Features = "avx10.2-512", Attributes = [NoThrow, RequiredVectorWidth<512>] in { 5141 def vcvtph2bf8_512_mask : X86Builtin<"_Vector<32, char>(_Vector<32, _Float16>, _Vector<32, char>, unsigned int)">; 5142} 5143 5144let Features = "avx10.2-256", Attributes = [NoThrow, RequiredVectorWidth<128>] in { 5145 def vcvtph2bf8s_128_mask : X86Builtin<"_Vector<16, char>(_Vector<8, _Float16>, _Vector<16, char>, unsigned char)">; 5146} 5147 5148let Features = "avx10.2-256", Attributes = [NoThrow, RequiredVectorWidth<256>] in { 5149 def vcvtph2bf8s_256_mask : X86Builtin<"_Vector<16, char>(_Vector<16, _Float16>, _Vector<16, char>, unsigned short)">; 5150} 5151 5152let Features = "avx10.2-512", Attributes = [NoThrow, RequiredVectorWidth<512>] in { 5153 def vcvtph2bf8s_512_mask : X86Builtin<"_Vector<32, char>(_Vector<32, _Float16>, _Vector<32, char>, unsigned int)">; 5154} 5155 5156let Features = "avx10.2-256", Attributes = [NoThrow, RequiredVectorWidth<128>] in { 5157 def vcvtph2hf8_128_mask : X86Builtin<"_Vector<16, char>(_Vector<8, _Float16>, _Vector<16, char>, unsigned char)">; 5158} 5159 5160let Features = "avx10.2-256", Attributes = [NoThrow, RequiredVectorWidth<256>] in { 5161 def vcvtph2hf8_256_mask : X86Builtin<"_Vector<16, char>(_Vector<16, _Float16>, _Vector<16, char>, unsigned short)">; 5162} 5163 5164let Features = "avx10.2-512", Attributes = [NoThrow, RequiredVectorWidth<512>] in { 5165 def vcvtph2hf8_512_mask : X86Builtin<"_Vector<32, char>(_Vector<32, _Float16>, _Vector<32, char>, unsigned int)">; 5166} 5167 5168let Features = "avx10.2-256", Attributes = [NoThrow, RequiredVectorWidth<128>] in { 5169 def vcvtph2hf8s_128_mask : X86Builtin<"_Vector<16, char>(_Vector<8, _Float16>, _Vector<16, char>, unsigned char)">; 5170} 5171 5172let Features = "avx10.2-256", Attributes = [NoThrow, RequiredVectorWidth<256>] in { 5173 def vcvtph2hf8s_256_mask : X86Builtin<"_Vector<16, char>(_Vector<16, _Float16>, _Vector<16, char>, unsigned short)">; 5174} 5175 5176let Features = "avx10.2-512", Attributes = [NoThrow, RequiredVectorWidth<512>] in { 5177 def vcvtph2hf8s_512_mask : X86Builtin<"_Vector<32, char>(_Vector<32, _Float16>, _Vector<32, char>, unsigned int)">; 5178} 5179 5180let Features = "avx10.2-256", Attributes = [NoThrow, RequiredVectorWidth<128>] in { 5181 def loadsbf16128_mask : X86Builtin<"_Vector<8, __bf16>(_Vector<8, __bf16 const *>, _Vector<8, __bf16>, unsigned char)">; 5182 def storesbf16128_mask : X86Builtin<"void(_Vector<8, __bf16 *>, _Vector<8, __bf16>, unsigned char)">; 5183} 5184 5185let Features = "avx10.2-256", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 5186 def vaddbf16128 : X86Builtin<"_Vector<8, __bf16>(_Vector<8, __bf16>, _Vector<8, __bf16>)">; 5187} 5188 5189let Features = "avx10.2-256", Attributes = [NoThrow, Const, RequiredVectorWidth<256>] in { 5190 def vaddbf16256 : X86Builtin<"_Vector<16, __bf16>(_Vector<16, __bf16>, _Vector<16, __bf16>)">; 5191} 5192 5193let Features = "avx10.2-512", Attributes = [NoThrow, Const, RequiredVectorWidth<512>] in { 5194 def vaddbf16512 : X86Builtin<"_Vector<32, __bf16>(_Vector<32, __bf16>, _Vector<32, __bf16>)">; 5195} 5196 5197let Features = "avx10.2-256", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 5198 def vdivbf16128 : X86Builtin<"_Vector<8, __bf16>(_Vector<8, __bf16>, _Vector<8, __bf16>)">; 5199} 5200 5201let Features = "avx10.2-256", Attributes = [NoThrow, Const, RequiredVectorWidth<256>] in { 5202 def vdivbf16256 : X86Builtin<"_Vector<16, __bf16>(_Vector<16, __bf16>, _Vector<16, __bf16>)">; 5203} 5204 5205let Features = "avx10.2-512", Attributes = [NoThrow, Const, RequiredVectorWidth<512>] in { 5206 def vdivbf16512 : X86Builtin<"_Vector<32, __bf16>(_Vector<32, __bf16>, _Vector<32, __bf16>)">; 5207} 5208 5209let Features = "avx10.2-256", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 5210 def vmaxbf16128 : X86Builtin<"_Vector<8, __bf16>(_Vector<8, __bf16>, _Vector<8, __bf16>)">; 5211} 5212 5213let Features = "avx10.2-256", Attributes = [NoThrow, Const, RequiredVectorWidth<256>] in { 5214 def vmaxbf16256 : X86Builtin<"_Vector<16, __bf16>(_Vector<16, __bf16>, _Vector<16, __bf16>)">; 5215} 5216 5217let Features = "avx10.2-512", Attributes = [NoThrow, Const, RequiredVectorWidth<512>] in { 5218 def vmaxbf16512 : X86Builtin<"_Vector<32, __bf16>(_Vector<32, __bf16>, _Vector<32, __bf16>)">; 5219} 5220 5221let Features = "avx10.2-256", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 5222 def vminbf16128 : X86Builtin<"_Vector<8, __bf16>(_Vector<8, __bf16>, _Vector<8, __bf16>)">; 5223} 5224 5225let Features = "avx10.2-256", Attributes = [NoThrow, Const, RequiredVectorWidth<256>] in { 5226 def vminbf16256 : X86Builtin<"_Vector<16, __bf16>(_Vector<16, __bf16>, _Vector<16, __bf16>)">; 5227} 5228 5229let Features = "avx10.2-512", Attributes = [NoThrow, Const, RequiredVectorWidth<512>] in { 5230 def vminbf16512 : X86Builtin<"_Vector<32, __bf16>(_Vector<32, __bf16>, _Vector<32, __bf16>)">; 5231} 5232 5233let Features = "avx10.2-256", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 5234 def vmulbf16128 : X86Builtin<"_Vector<8, __bf16>(_Vector<8, __bf16>, _Vector<8, __bf16>)">; 5235} 5236 5237let Features = "avx10.2-256", Attributes = [NoThrow, Const, RequiredVectorWidth<256>] in { 5238 def vmulbf16256 : X86Builtin<"_Vector<16, __bf16>(_Vector<16, __bf16>, _Vector<16, __bf16>)">; 5239} 5240 5241let Features = "avx10.2-512", Attributes = [NoThrow, Const, RequiredVectorWidth<512>] in { 5242 def vmulbf16512 : X86Builtin<"_Vector<32, __bf16>(_Vector<32, __bf16>, _Vector<32, __bf16>)">; 5243} 5244 5245let Features = "avx10.2-256", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 5246 def vsubbf16128 : X86Builtin<"_Vector<8, __bf16>(_Vector<8, __bf16>, _Vector<8, __bf16>)">; 5247} 5248 5249let Features = "avx10.2-256", Attributes = [NoThrow, Const, RequiredVectorWidth<256>] in { 5250 def vsubbf16256 : X86Builtin<"_Vector<16, __bf16>(_Vector<16, __bf16>, _Vector<16, __bf16>)">; 5251} 5252 5253let Features = "avx10.2-512", Attributes = [NoThrow, Const, RequiredVectorWidth<512>] in { 5254 def vsubbf16512 : X86Builtin<"_Vector<32, __bf16>(_Vector<32, __bf16>, _Vector<32, __bf16>)">; 5255} 5256 5257let Features = "avx10.2-256", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in 5258 foreach Cmp = ["eq", "lt", "le", "gt", "ge", "neq"] in 5259 def vcomisbf16#Cmp : X86Builtin<"int(_Vector<8, __bf16>, _Vector<8, __bf16>)">; 5260 5261let Features = "avx10.2-512", Attributes = [NoThrow, Const, RequiredVectorWidth<512>] in { 5262 def vcmpbf16512_mask : X86Builtin<"unsigned int(_Vector<32, __bf16>, _Vector<32, __bf16>, _Constant int, unsigned int)">; 5263} 5264 5265let Features = "avx10.2-256", Attributes = [NoThrow, Const, RequiredVectorWidth<256>] in { 5266 def vcmpbf16256_mask : X86Builtin<"unsigned short(_Vector<16, __bf16>, _Vector<16, __bf16>, _Constant int, unsigned short)">; 5267} 5268 5269let Features = "avx10.2-256", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 5270 def vcmpbf16128_mask : X86Builtin<"unsigned char(_Vector<8, __bf16>, _Vector<8, __bf16>, _Constant int, unsigned char)">; 5271 def vfpclassbf16128_mask : X86Builtin<"unsigned char(_Vector<8, __bf16>, _Constant int, unsigned char)">; 5272} 5273 5274let Features = "avx10.2-256", Attributes = [NoThrow, Const, RequiredVectorWidth<256>] in { 5275 def vfpclassbf16256_mask : X86Builtin<"unsigned short(_Vector<16, __bf16>, _Constant int, unsigned short)">; 5276} 5277 5278let Features = "avx10.2-512", Attributes = [NoThrow, Const, RequiredVectorWidth<512>] in { 5279 def vfpclassbf16512_mask : X86Builtin<"unsigned int(_Vector<32, __bf16>, _Constant int, unsigned int)">; 5280} 5281 5282let Features = "avx10.2-256", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 5283 def vscalefbf16128_mask : X86Builtin<"_Vector<8, __bf16>(_Vector<8, __bf16>, _Vector<8, __bf16>, _Vector<8, __bf16>, unsigned char)">; 5284} 5285 5286let Features = "avx10.2-256", Attributes = [NoThrow, Const, RequiredVectorWidth<256>] in { 5287 def vscalefbf16256_mask : X86Builtin<"_Vector<16, __bf16>(_Vector<16, __bf16>, _Vector<16, __bf16>, _Vector<16, __bf16>, unsigned short)">; 5288} 5289 5290let Features = "avx10.2-512", Attributes = [NoThrow, Const, RequiredVectorWidth<512>] in { 5291 def vscalefbf16512_mask : X86Builtin<"_Vector<32, __bf16>(_Vector<32, __bf16>, _Vector<32, __bf16>, _Vector<32, __bf16>, unsigned int)">; 5292} 5293 5294let Features = "avx10.2-256", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 5295 def vrcpbf16128_mask : X86Builtin<"_Vector<8, __bf16>(_Vector<8, __bf16>, _Vector<8, __bf16>, unsigned char)">; 5296} 5297 5298let Features = "avx10.2-256", Attributes = [NoThrow, Const, RequiredVectorWidth<256>] in { 5299 def vrcpbf16256_mask : X86Builtin<"_Vector<16, __bf16>(_Vector<16, __bf16>, _Vector<16, __bf16>, unsigned short)">; 5300} 5301 5302let Features = "avx10.2-512", Attributes = [NoThrow, Const, RequiredVectorWidth<512>] in { 5303 def vrcpbf16512_mask : X86Builtin<"_Vector<32, __bf16>(_Vector<32, __bf16>, _Vector<32, __bf16>, unsigned int)">; 5304} 5305 5306let Features = "avx10.2-256", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 5307 def vgetexpbf16128_mask : X86Builtin<"_Vector<8, __bf16>(_Vector<8, __bf16>, _Vector<8, __bf16>, unsigned char)">; 5308} 5309 5310let Features = "avx10.2-256", Attributes = [NoThrow, Const, RequiredVectorWidth<256>] in { 5311 def vgetexpbf16256_mask : X86Builtin<"_Vector<16, __bf16>(_Vector<16, __bf16>, _Vector<16, __bf16>, unsigned short)">; 5312} 5313 5314let Features = "avx10.2-512", Attributes = [NoThrow, Const, RequiredVectorWidth<512>] in { 5315 def vgetexpbf16512_mask : X86Builtin<"_Vector<32, __bf16>(_Vector<32, __bf16>, _Vector<32, __bf16>, unsigned int)">; 5316} 5317 5318let Features = "avx10.2-256", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 5319 def vrsqrtbf16128_mask : X86Builtin<"_Vector<8, __bf16>(_Vector<8, __bf16>, _Vector<8, __bf16>, unsigned char)">; 5320} 5321 5322let Features = "avx10.2-256", Attributes = [NoThrow, Const, RequiredVectorWidth<256>] in { 5323 def vrsqrtbf16256_mask : X86Builtin<"_Vector<16, __bf16>(_Vector<16, __bf16>, _Vector<16, __bf16>, unsigned short)">; 5324} 5325 5326let Features = "avx10.2-512", Attributes = [NoThrow, Const, RequiredVectorWidth<512>] in { 5327 def vrsqrtbf16512_mask : X86Builtin<"_Vector<32, __bf16>(_Vector<32, __bf16>, _Vector<32, __bf16>, unsigned int)">; 5328} 5329 5330let Features = "avx10.2-256", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 5331 def vreducebf16128_mask : X86Builtin<"_Vector<8, __bf16>(_Vector<8, __bf16>, _Constant int, _Vector<8, __bf16>, unsigned char)">; 5332} 5333 5334let Features = "avx10.2-256", Attributes = [NoThrow, Const, RequiredVectorWidth<256>] in { 5335 def vreducebf16256_mask : X86Builtin<"_Vector<16, __bf16>(_Vector<16, __bf16>, _Constant int, _Vector<16, __bf16>, unsigned short)">; 5336} 5337 5338let Features = "avx10.2-512", Attributes = [NoThrow, Const, RequiredVectorWidth<512>] in { 5339 def vreducebf16512_mask : X86Builtin<"_Vector<32, __bf16>(_Vector<32, __bf16>, _Constant int, _Vector<32, __bf16>, unsigned int)">; 5340} 5341 5342let Features = "avx10.2-256", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 5343 def vrndscalebf16_128_mask : X86Builtin<"_Vector<8, __bf16>(_Vector<8, __bf16>, _Constant int, _Vector<8, __bf16>, unsigned char)">; 5344} 5345 5346let Features = "avx10.2-256", Attributes = [NoThrow, Const, RequiredVectorWidth<256>] in { 5347 def vrndscalebf16_256_mask : X86Builtin<"_Vector<16, __bf16>(_Vector<16, __bf16>, _Constant int, _Vector<16, __bf16>, unsigned short)">; 5348} 5349 5350let Features = "avx10.2-512", Attributes = [NoThrow, Const, RequiredVectorWidth<512>] in { 5351 def vrndscalebf16_mask : X86Builtin<"_Vector<32, __bf16>(_Vector<32, __bf16>, _Constant int, _Vector<32, __bf16>, unsigned int)">; 5352} 5353 5354let Features = "avx10.2-256", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 5355 def vgetmantbf16128_mask : X86Builtin<"_Vector<8, __bf16>(_Vector<8, __bf16>, _Constant int, _Vector<8, __bf16>, unsigned char)">; 5356} 5357 5358let Features = "avx10.2-256", Attributes = [NoThrow, Const, RequiredVectorWidth<256>] in { 5359 def vgetmantbf16256_mask : X86Builtin<"_Vector<16, __bf16>(_Vector<16, __bf16>, _Constant int, _Vector<16, __bf16>, unsigned short)">; 5360} 5361 5362let Features = "avx10.2-512", Attributes = [NoThrow, Const, RequiredVectorWidth<512>] in { 5363 def vgetmantbf16512_mask : X86Builtin<"_Vector<32, __bf16>(_Vector<32, __bf16>, _Constant int, _Vector<32, __bf16>, unsigned int)">; 5364} 5365 5366let Features = "avx10.2-256", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 5367 def vsqrtbf16 : X86Builtin<"_Vector<8, __bf16>(_Vector<8, __bf16>)">; 5368} 5369 5370let Features = "avx10.2-256", Attributes = [NoThrow, Const, RequiredVectorWidth<256>] in { 5371 def vsqrtbf16256 : X86Builtin<"_Vector<16, __bf16>(_Vector<16, __bf16>)">; 5372} 5373 5374let Features = "avx10.2-512", Attributes = [NoThrow, Const, RequiredVectorWidth<512>] in { 5375 def vsqrtbf16512 : X86Builtin<"_Vector<32, __bf16>(_Vector<32, __bf16>)">; 5376 def vfmaddbf16512 : X86Builtin<"_Vector<32, __bf16>(_Vector<32, __bf16>, _Vector<32, __bf16>, _Vector<32, __bf16>)">; 5377} 5378 5379let Features = "avx10.2-256", Attributes = [NoThrow, Const, RequiredVectorWidth<256>] in { 5380 def vfmaddbf16256 : X86Builtin<"_Vector<16, __bf16>(_Vector<16, __bf16>, _Vector<16, __bf16>, _Vector<16, __bf16>)">; 5381} 5382 5383let Features = "avx10.2-256", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in { 5384 def vfmaddbf16128 : X86Builtin<"_Vector<8, __bf16>(_Vector<8, __bf16>, _Vector<8, __bf16>, _Vector<8, __bf16>)">; 5385} 5386