summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4>2016-08-16 19:27:41 +0000
committerjakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4>2016-08-16 19:27:41 +0000
commitdcd3205204792661c8b791cb9d96b56d5d959e66 (patch)
tree74c6c7240d7425641db0ef549c936c5ebfcf1fce
parent507d7fb4f091a6608fc3897b5d1870e5a2e3b160 (diff)
downloadgcc-dcd3205204792661c8b791cb9d96b56d5d959e66.tar.gz
* config/i386/i386.c (enum ix86_builtins): Reorder enumerators, so
that builtins not mentioned in bdesc_* arrays come first, then the ones mentioned in bdesc_* arrays in the order they appear in the arrays in between IX86_BUILTIN__BDESC_*_FIRST and IX86_BUILTIN__BDESC_*_LAST enumerator. (bdesc_mpx): Fix up a comment typo. (bdesc_multi_arg): Remove __builtin_ia32_vpcomne[bwdq] and __builtin_ia32_vpcomneu[bwdq] builtins. (BDESC_VERIFY, BDESC_VERIFYS): Define. (ix86_init_mmx_sse_builtins, ix86_init_mpx_builtins): Verify enum ix86_builtins ordering. (ix86_expand_builtin): Use enum ix86_builtins ordering assumption for direct bdesc_* array member access instead of searching all the arrays until an fcode match is found. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@239512 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r--gcc/ChangeLog17
-rw-r--r--gcc/config/i386/i386.c2247
2 files changed, 1089 insertions, 1175 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index b128931ccb3..9667b7ce268 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,20 @@
+2016-08-16 Jakub Jelinek <jakub@redhat.com>
+
+ * config/i386/i386.c (enum ix86_builtins): Reorder enumerators, so
+ that builtins not mentioned in bdesc_* arrays come first, then
+ the ones mentioned in bdesc_* arrays in the order they appear in
+ the arrays in between IX86_BUILTIN__BDESC_*_FIRST and
+ IX86_BUILTIN__BDESC_*_LAST enumerator.
+ (bdesc_mpx): Fix up a comment typo.
+ (bdesc_multi_arg): Remove __builtin_ia32_vpcomne[bwdq] and
+ __builtin_ia32_vpcomneu[bwdq] builtins.
+ (BDESC_VERIFY, BDESC_VERIFYS): Define.
+ (ix86_init_mmx_sse_builtins, ix86_init_mpx_builtins): Verify
+ enum ix86_builtins ordering.
+ (ix86_expand_builtin): Use enum ix86_builtins ordering assumption
+ for direct bdesc_* array member access instead of searching all the
+ arrays until an fcode match is found.
+
2016-08-16 Uros Bizjak <ubizjak@gmail.com>
* config/i386/i386.md (*ashl<mode>3_mask): Rewrite define_insn
diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c
index 02bfcbf49b2..3805817f868 100644
--- a/gcc/config/i386/i386.c
+++ b/gcc/config/i386/i386.c
@@ -30512,40 +30512,159 @@ ix86_get_builtin_func_type (enum ix86_builtin_func_type tcode)
}
-/* Codes for all the SSE/MMX builtins. */
+/* Codes for all the SSE/MMX builtins. Builtins not mentioned in any
+ bdesc_* arrays below should come first, then builtins for each bdesc_*
+ array in ascending order, so that we can use direct array accesses. */
enum ix86_builtins
{
- IX86_BUILTIN_ADDPS,
- IX86_BUILTIN_ADDSS,
- IX86_BUILTIN_DIVPS,
- IX86_BUILTIN_DIVSS,
- IX86_BUILTIN_MULPS,
- IX86_BUILTIN_MULSS,
- IX86_BUILTIN_SUBPS,
- IX86_BUILTIN_SUBSS,
-
- IX86_BUILTIN_CMPEQPS,
- IX86_BUILTIN_CMPLTPS,
- IX86_BUILTIN_CMPLEPS,
- IX86_BUILTIN_CMPGTPS,
- IX86_BUILTIN_CMPGEPS,
- IX86_BUILTIN_CMPNEQPS,
- IX86_BUILTIN_CMPNLTPS,
- IX86_BUILTIN_CMPNLEPS,
- IX86_BUILTIN_CMPNGTPS,
- IX86_BUILTIN_CMPNGEPS,
- IX86_BUILTIN_CMPORDPS,
- IX86_BUILTIN_CMPUNORDPS,
- IX86_BUILTIN_CMPEQSS,
- IX86_BUILTIN_CMPLTSS,
- IX86_BUILTIN_CMPLESS,
- IX86_BUILTIN_CMPNEQSS,
- IX86_BUILTIN_CMPNLTSS,
- IX86_BUILTIN_CMPNLESS,
- IX86_BUILTIN_CMPORDSS,
- IX86_BUILTIN_CMPUNORDSS,
+ IX86_BUILTIN_MASKMOVQ,
+ IX86_BUILTIN_LDMXCSR,
+ IX86_BUILTIN_STMXCSR,
+ IX86_BUILTIN_MASKMOVDQU,
+ IX86_BUILTIN_PSLLDQ128,
+ IX86_BUILTIN_CLFLUSH,
+ IX86_BUILTIN_MONITOR,
+ IX86_BUILTIN_MWAIT,
+ IX86_BUILTIN_CLZERO,
+ IX86_BUILTIN_VEC_INIT_V2SI,
+ IX86_BUILTIN_VEC_INIT_V4HI,
+ IX86_BUILTIN_VEC_INIT_V8QI,
+ IX86_BUILTIN_VEC_EXT_V2DF,
+ IX86_BUILTIN_VEC_EXT_V2DI,
+ IX86_BUILTIN_VEC_EXT_V4SF,
+ IX86_BUILTIN_VEC_EXT_V4SI,
+ IX86_BUILTIN_VEC_EXT_V8HI,
+ IX86_BUILTIN_VEC_EXT_V2SI,
+ IX86_BUILTIN_VEC_EXT_V4HI,
+ IX86_BUILTIN_VEC_EXT_V16QI,
+ IX86_BUILTIN_VEC_SET_V2DI,
+ IX86_BUILTIN_VEC_SET_V4SF,
+ IX86_BUILTIN_VEC_SET_V4SI,
+ IX86_BUILTIN_VEC_SET_V8HI,
+ IX86_BUILTIN_VEC_SET_V4HI,
+ IX86_BUILTIN_VEC_SET_V16QI,
+ IX86_BUILTIN_GATHERSIV2DF,
+ IX86_BUILTIN_GATHERSIV4DF,
+ IX86_BUILTIN_GATHERDIV2DF,
+ IX86_BUILTIN_GATHERDIV4DF,
+ IX86_BUILTIN_GATHERSIV4SF,
+ IX86_BUILTIN_GATHERSIV8SF,
+ IX86_BUILTIN_GATHERDIV4SF,
+ IX86_BUILTIN_GATHERDIV8SF,
+ IX86_BUILTIN_GATHERSIV2DI,
+ IX86_BUILTIN_GATHERSIV4DI,
+ IX86_BUILTIN_GATHERDIV2DI,
+ IX86_BUILTIN_GATHERDIV4DI,
+ IX86_BUILTIN_GATHERSIV4SI,
+ IX86_BUILTIN_GATHERSIV8SI,
+ IX86_BUILTIN_GATHERDIV4SI,
+ IX86_BUILTIN_GATHERDIV8SI,
+ IX86_BUILTIN_VFMSUBSD3_MASK3,
+ IX86_BUILTIN_VFMSUBSS3_MASK3,
+ IX86_BUILTIN_GATHER3SIV8SF,
+ IX86_BUILTIN_GATHER3SIV4SF,
+ IX86_BUILTIN_GATHER3SIV4DF,
+ IX86_BUILTIN_GATHER3SIV2DF,
+ IX86_BUILTIN_GATHER3DIV8SF,
+ IX86_BUILTIN_GATHER3DIV4SF,
+ IX86_BUILTIN_GATHER3DIV4DF,
+ IX86_BUILTIN_GATHER3DIV2DF,
+ IX86_BUILTIN_GATHER3SIV8SI,
+ IX86_BUILTIN_GATHER3SIV4SI,
+ IX86_BUILTIN_GATHER3SIV4DI,
+ IX86_BUILTIN_GATHER3SIV2DI,
+ IX86_BUILTIN_GATHER3DIV8SI,
+ IX86_BUILTIN_GATHER3DIV4SI,
+ IX86_BUILTIN_GATHER3DIV4DI,
+ IX86_BUILTIN_GATHER3DIV2DI,
+ IX86_BUILTIN_SCATTERSIV8SF,
+ IX86_BUILTIN_SCATTERSIV4SF,
+ IX86_BUILTIN_SCATTERSIV4DF,
+ IX86_BUILTIN_SCATTERSIV2DF,
+ IX86_BUILTIN_SCATTERDIV8SF,
+ IX86_BUILTIN_SCATTERDIV4SF,
+ IX86_BUILTIN_SCATTERDIV4DF,
+ IX86_BUILTIN_SCATTERDIV2DF,
+ IX86_BUILTIN_SCATTERSIV8SI,
+ IX86_BUILTIN_SCATTERSIV4SI,
+ IX86_BUILTIN_SCATTERSIV4DI,
+ IX86_BUILTIN_SCATTERSIV2DI,
+ IX86_BUILTIN_SCATTERDIV8SI,
+ IX86_BUILTIN_SCATTERDIV4SI,
+ IX86_BUILTIN_SCATTERDIV4DI,
+ IX86_BUILTIN_SCATTERDIV2DI,
+ /* Alternate 4 and 8 element gather/scatter for the vectorizer
+ where all operands are 32-byte or 64-byte wide respectively. */
+ IX86_BUILTIN_GATHERALTSIV4DF,
+ IX86_BUILTIN_GATHERALTDIV8SF,
+ IX86_BUILTIN_GATHERALTSIV4DI,
+ IX86_BUILTIN_GATHERALTDIV8SI,
+ IX86_BUILTIN_GATHER3ALTDIV16SF,
+ IX86_BUILTIN_GATHER3ALTDIV16SI,
+ IX86_BUILTIN_GATHER3ALTSIV4DF,
+ IX86_BUILTIN_GATHER3ALTDIV8SF,
+ IX86_BUILTIN_GATHER3ALTSIV4DI,
+ IX86_BUILTIN_GATHER3ALTDIV8SI,
+ IX86_BUILTIN_GATHER3ALTSIV8DF,
+ IX86_BUILTIN_GATHER3ALTSIV8DI,
+ IX86_BUILTIN_GATHER3DIV16SF,
+ IX86_BUILTIN_GATHER3DIV16SI,
+ IX86_BUILTIN_GATHER3DIV8DF,
+ IX86_BUILTIN_GATHER3DIV8DI,
+ IX86_BUILTIN_GATHER3SIV16SF,
+ IX86_BUILTIN_GATHER3SIV16SI,
+ IX86_BUILTIN_GATHER3SIV8DF,
+ IX86_BUILTIN_GATHER3SIV8DI,
+ IX86_BUILTIN_SCATTERALTSIV8DF,
+ IX86_BUILTIN_SCATTERALTDIV16SF,
+ IX86_BUILTIN_SCATTERALTSIV8DI,
+ IX86_BUILTIN_SCATTERALTDIV16SI,
+ IX86_BUILTIN_SCATTERDIV16SF,
+ IX86_BUILTIN_SCATTERDIV16SI,
+ IX86_BUILTIN_SCATTERDIV8DF,
+ IX86_BUILTIN_SCATTERDIV8DI,
+ IX86_BUILTIN_SCATTERSIV16SF,
+ IX86_BUILTIN_SCATTERSIV16SI,
+ IX86_BUILTIN_SCATTERSIV8DF,
+ IX86_BUILTIN_SCATTERSIV8DI,
+ IX86_BUILTIN_GATHERPFQPD,
+ IX86_BUILTIN_GATHERPFDPS,
+ IX86_BUILTIN_GATHERPFDPD,
+ IX86_BUILTIN_GATHERPFQPS,
+ IX86_BUILTIN_SCATTERPFDPD,
+ IX86_BUILTIN_SCATTERPFDPS,
+ IX86_BUILTIN_SCATTERPFQPD,
+ IX86_BUILTIN_SCATTERPFQPS,
+ IX86_BUILTIN_CLWB,
+ IX86_BUILTIN_CLFLUSHOPT,
+ IX86_BUILTIN_INFQ,
+ IX86_BUILTIN_HUGE_VALQ,
+ IX86_BUILTIN_NANQ,
+ IX86_BUILTIN_NANSQ,
+ IX86_BUILTIN_XABORT,
+ IX86_BUILTIN_ADDCARRYX32,
+ IX86_BUILTIN_ADDCARRYX64,
+ IX86_BUILTIN_SBB32,
+ IX86_BUILTIN_SBB64,
+ IX86_BUILTIN_RDRAND16_STEP,
+ IX86_BUILTIN_RDRAND32_STEP,
+ IX86_BUILTIN_RDRAND64_STEP,
+ IX86_BUILTIN_RDSEED16_STEP,
+ IX86_BUILTIN_RDSEED32_STEP,
+ IX86_BUILTIN_RDSEED64_STEP,
+ IX86_BUILTIN_MONITORX,
+ IX86_BUILTIN_MWAITX,
+ IX86_BUILTIN_CFSTRING,
+ IX86_BUILTIN_CPU_INIT,
+ IX86_BUILTIN_CPU_IS,
+ IX86_BUILTIN_CPU_SUPPORTS,
+ IX86_BUILTIN_READ_FLAGS,
+ IX86_BUILTIN_WRITE_FLAGS,
- IX86_BUILTIN_COMIEQSS,
+ /* All the remaining builtins are tracked in bdesc_* arrays.
+ The enumerator ordering should match ordering in those arrays. */
+ IX86_BUILTIN__BDESC_COMI_FIRST,
+ IX86_BUILTIN_COMIEQSS = IX86_BUILTIN__BDESC_COMI_FIRST,
IX86_BUILTIN_COMILTSS,
IX86_BUILTIN_COMILESS,
IX86_BUILTIN_COMIGTSS,
@@ -30557,167 +30676,359 @@ enum ix86_builtins
IX86_BUILTIN_UCOMIGTSS,
IX86_BUILTIN_UCOMIGESS,
IX86_BUILTIN_UCOMINEQSS,
+ IX86_BUILTIN_COMIEQSD,
+ IX86_BUILTIN_COMILTSD,
+ IX86_BUILTIN_COMILESD,
+ IX86_BUILTIN_COMIGTSD,
+ IX86_BUILTIN_COMIGESD,
+ IX86_BUILTIN_COMINEQSD,
+ IX86_BUILTIN_UCOMIEQSD,
+ IX86_BUILTIN_UCOMILTSD,
+ IX86_BUILTIN_UCOMILESD,
+ IX86_BUILTIN_UCOMIGTSD,
+ IX86_BUILTIN_UCOMIGESD,
+ IX86_BUILTIN_UCOMINEQSD,
+ IX86_BUILTIN__BDESC_COMI_LAST = IX86_BUILTIN_UCOMINEQSD,
- IX86_BUILTIN_CVTPI2PS,
- IX86_BUILTIN_CVTPS2PI,
- IX86_BUILTIN_CVTSI2SS,
- IX86_BUILTIN_CVTSI642SS,
- IX86_BUILTIN_CVTSS2SI,
- IX86_BUILTIN_CVTSS2SI64,
- IX86_BUILTIN_CVTTPS2PI,
- IX86_BUILTIN_CVTTSS2SI,
- IX86_BUILTIN_CVTTSS2SI64,
+ IX86_BUILTIN__BDESC_PCMPESTR_FIRST,
+ IX86_BUILTIN_PCMPESTRI128 = IX86_BUILTIN__BDESC_PCMPESTR_FIRST,
+ IX86_BUILTIN_PCMPESTRM128,
+ IX86_BUILTIN_PCMPESTRA128,
+ IX86_BUILTIN_PCMPESTRC128,
+ IX86_BUILTIN_PCMPESTRO128,
+ IX86_BUILTIN_PCMPESTRS128,
+ IX86_BUILTIN_PCMPESTRZ128,
+ IX86_BUILTIN__BDESC_PCMPESTR_LAST = IX86_BUILTIN_PCMPESTRZ128,
- IX86_BUILTIN_MAXPS,
- IX86_BUILTIN_MAXSS,
- IX86_BUILTIN_MINPS,
- IX86_BUILTIN_MINSS,
+ IX86_BUILTIN__BDESC_PCMPISTR_FIRST,
+ IX86_BUILTIN_PCMPISTRI128 = IX86_BUILTIN__BDESC_PCMPISTR_FIRST,
+ IX86_BUILTIN_PCMPISTRM128,
+ IX86_BUILTIN_PCMPISTRA128,
+ IX86_BUILTIN_PCMPISTRC128,
+ IX86_BUILTIN_PCMPISTRO128,
+ IX86_BUILTIN_PCMPISTRS128,
+ IX86_BUILTIN_PCMPISTRZ128,
+ IX86_BUILTIN__BDESC_PCMPISTR_LAST = IX86_BUILTIN_PCMPISTRZ128,
- IX86_BUILTIN_LOADUPS,
+ /* Special builtins with variable number of arguments. */
+ IX86_BUILTIN__BDESC_SPECIAL_ARGS_FIRST,
+ IX86_BUILTIN_RDTSC = IX86_BUILTIN__BDESC_SPECIAL_ARGS_FIRST,
+ IX86_BUILTIN_RDTSCP,
+ IX86_BUILTIN_PAUSE,
+ IX86_BUILTIN_FNSTENV,
+ IX86_BUILTIN_FLDENV,
+ IX86_BUILTIN_FNSTSW,
+ IX86_BUILTIN_FNCLEX,
+ IX86_BUILTIN_EMMS,
+ IX86_BUILTIN_FEMMS,
+ IX86_BUILTIN_FXSAVE,
+ IX86_BUILTIN_FXRSTOR,
+ IX86_BUILTIN_XSAVE,
+ IX86_BUILTIN_XRSTOR,
+ IX86_BUILTIN_XSAVEOPT,
+ IX86_BUILTIN_XSAVES,
+ IX86_BUILTIN_XRSTORS,
+ IX86_BUILTIN_XSAVEC,
+ IX86_BUILTIN_FXSAVE64,
+ IX86_BUILTIN_FXRSTOR64,
+ IX86_BUILTIN_XSAVE64,
+ IX86_BUILTIN_XRSTOR64,
+ IX86_BUILTIN_XSAVEOPT64,
+ IX86_BUILTIN_XSAVES64,
+ IX86_BUILTIN_XRSTORS64,
+ IX86_BUILTIN_XSAVEC64,
IX86_BUILTIN_STOREUPS,
- IX86_BUILTIN_MOVSS,
-
- IX86_BUILTIN_MOVHLPS,
- IX86_BUILTIN_MOVLHPS,
+ IX86_BUILTIN_MOVNTPS,
+ IX86_BUILTIN_LOADUPS,
IX86_BUILTIN_LOADHPS,
IX86_BUILTIN_LOADLPS,
IX86_BUILTIN_STOREHPS,
IX86_BUILTIN_STORELPS,
-
- IX86_BUILTIN_MASKMOVQ,
- IX86_BUILTIN_MOVMSKPS,
- IX86_BUILTIN_PMOVMSKB,
-
- IX86_BUILTIN_MOVNTPS,
+ IX86_BUILTIN_SFENCE,
IX86_BUILTIN_MOVNTQ,
-
- IX86_BUILTIN_LOADDQU,
+ IX86_BUILTIN_LFENCE,
+ IX86_BUILTIN_MFENCE,
+ IX86_BUILTIN_STOREUPD,
IX86_BUILTIN_STOREDQU,
+ IX86_BUILTIN_MOVNTPD,
+ IX86_BUILTIN_MOVNTDQ,
+ IX86_BUILTIN_MOVNTI,
+ IX86_BUILTIN_MOVNTI64,
+ IX86_BUILTIN_LOADUPD,
+ IX86_BUILTIN_LOADDQU,
+ IX86_BUILTIN_LOADHPD,
+ IX86_BUILTIN_LOADLPD,
+ IX86_BUILTIN_LDDQU,
+ IX86_BUILTIN_MOVNTDQA,
+ IX86_BUILTIN_MOVNTSD,
+ IX86_BUILTIN_MOVNTSS,
+ IX86_BUILTIN_VZEROALL,
+ IX86_BUILTIN_VZEROUPPER,
+ IX86_BUILTIN_VBROADCASTSS,
+ IX86_BUILTIN_VBROADCASTSD256,
+ IX86_BUILTIN_VBROADCASTSS256,
+ IX86_BUILTIN_VBROADCASTPD256,
+ IX86_BUILTIN_VBROADCASTPS256,
+ IX86_BUILTIN_LOADUPD256,
+ IX86_BUILTIN_LOADUPS256,
+ IX86_BUILTIN_STOREUPD256,
+ IX86_BUILTIN_STOREUPS256,
+ IX86_BUILTIN_LOADDQU256,
+ IX86_BUILTIN_STOREDQU256,
+ IX86_BUILTIN_LDDQU256,
+ IX86_BUILTIN_MOVNTDQ256,
+ IX86_BUILTIN_MOVNTPD256,
+ IX86_BUILTIN_MOVNTPS256,
+ IX86_BUILTIN_MASKLOADPD,
+ IX86_BUILTIN_MASKLOADPS,
+ IX86_BUILTIN_MASKLOADPD256,
+ IX86_BUILTIN_MASKLOADPS256,
+ IX86_BUILTIN_MASKSTOREPD,
+ IX86_BUILTIN_MASKSTOREPS,
+ IX86_BUILTIN_MASKSTOREPD256,
+ IX86_BUILTIN_MASKSTOREPS256,
+ IX86_BUILTIN_MOVNTDQA256,
+ IX86_BUILTIN_MASKLOADD,
+ IX86_BUILTIN_MASKLOADQ,
+ IX86_BUILTIN_MASKLOADD256,
+ IX86_BUILTIN_MASKLOADQ256,
+ IX86_BUILTIN_MASKSTORED,
+ IX86_BUILTIN_MASKSTOREQ,
+ IX86_BUILTIN_MASKSTORED256,
+ IX86_BUILTIN_MASKSTOREQ256,
+ IX86_BUILTIN_COMPRESSPSSTORE512,
+ IX86_BUILTIN_PCOMPRESSDSTORE512,
+ IX86_BUILTIN_COMPRESSPDSTORE512,
+ IX86_BUILTIN_PCOMPRESSQSTORE512,
+ IX86_BUILTIN_EXPANDPSLOAD512,
+ IX86_BUILTIN_EXPANDPSLOAD512Z,
+ IX86_BUILTIN_PEXPANDDLOAD512,
+ IX86_BUILTIN_PEXPANDDLOAD512Z,
+ IX86_BUILTIN_EXPANDPDLOAD512,
+ IX86_BUILTIN_EXPANDPDLOAD512Z,
+ IX86_BUILTIN_PEXPANDQLOAD512,
+ IX86_BUILTIN_PEXPANDQLOAD512Z,
+ IX86_BUILTIN_LOADDQUSI512,
+ IX86_BUILTIN_LOADDQUDI512,
+ IX86_BUILTIN_LOADUPD512,
+ IX86_BUILTIN_LOADUPS512,
+ IX86_BUILTIN_LOADAPS512,
+ IX86_BUILTIN_MOVDQA32LOAD512,
+ IX86_BUILTIN_LOADAPD512,
+ IX86_BUILTIN_MOVDQA64LOAD512,
+ IX86_BUILTIN_MOVNTPS512,
+ IX86_BUILTIN_MOVNTPD512,
+ IX86_BUILTIN_MOVNTDQ512,
+ IX86_BUILTIN_MOVNTDQA512,
+ IX86_BUILTIN_STOREDQUSI512,
+ IX86_BUILTIN_STOREDQUDI512,
+ IX86_BUILTIN_STOREUPD512,
+ IX86_BUILTIN_PMOVUSQD512_MEM,
+ IX86_BUILTIN_PMOVSQD512_MEM,
+ IX86_BUILTIN_PMOVQD512_MEM,
+ IX86_BUILTIN_PMOVUSQW512_MEM,
+ IX86_BUILTIN_PMOVSQW512_MEM,
+ IX86_BUILTIN_PMOVQW512_MEM,
+ IX86_BUILTIN_PMOVUSDW512_MEM,
+ IX86_BUILTIN_PMOVSDW512_MEM,
+ IX86_BUILTIN_PMOVDW512_MEM,
+ IX86_BUILTIN_PMOVQB512_MEM,
+ IX86_BUILTIN_PMOVUSQB512_MEM,
+ IX86_BUILTIN_PMOVSQB512_MEM,
+ IX86_BUILTIN_PMOVUSDB512_MEM,
+ IX86_BUILTIN_PMOVSDB512_MEM,
+ IX86_BUILTIN_PMOVDB512_MEM,
+ IX86_BUILTIN_STOREUPS512,
+ IX86_BUILTIN_STOREAPS512,
+ IX86_BUILTIN_MOVDQA32STORE512,
+ IX86_BUILTIN_STOREAPD512,
+ IX86_BUILTIN_MOVDQA64STORE512,
+ IX86_BUILTIN_LLWPCB,
+ IX86_BUILTIN_SLWPCB,
+ IX86_BUILTIN_LWPVAL32,
+ IX86_BUILTIN_LWPVAL64,
+ IX86_BUILTIN_LWPINS32,
+ IX86_BUILTIN_LWPINS64,
+ IX86_BUILTIN_RDFSBASE32,
+ IX86_BUILTIN_RDFSBASE64,
+ IX86_BUILTIN_RDGSBASE32,
+ IX86_BUILTIN_RDGSBASE64,
+ IX86_BUILTIN_WRFSBASE32,
+ IX86_BUILTIN_WRFSBASE64,
+ IX86_BUILTIN_WRGSBASE32,
+ IX86_BUILTIN_WRGSBASE64,
+ IX86_BUILTIN_XBEGIN,
+ IX86_BUILTIN_XEND,
+ IX86_BUILTIN_XTEST,
+ IX86_BUILTIN_LOADDQUHI512_MASK,
+ IX86_BUILTIN_LOADDQUQI512_MASK,
+ IX86_BUILTIN_STOREDQUHI512_MASK,
+ IX86_BUILTIN_STOREDQUQI512_MASK,
+ IX86_BUILTIN_LOADDQUHI256_MASK,
+ IX86_BUILTIN_LOADDQUHI128_MASK,
+ IX86_BUILTIN_LOADDQUQI256_MASK,
+ IX86_BUILTIN_LOADDQUQI128_MASK,
+ IX86_BUILTIN_MOVDQA64LOAD256_MASK,
+ IX86_BUILTIN_MOVDQA64LOAD128_MASK,
+ IX86_BUILTIN_MOVDQA32LOAD256_MASK,
+ IX86_BUILTIN_MOVDQA32LOAD128_MASK,
+ IX86_BUILTIN_MOVDQA64STORE256_MASK,
+ IX86_BUILTIN_MOVDQA64STORE128_MASK,
+ IX86_BUILTIN_MOVDQA32STORE256_MASK,
+ IX86_BUILTIN_MOVDQA32STORE128_MASK,
+ IX86_BUILTIN_LOADAPD256_MASK,
+ IX86_BUILTIN_LOADAPD128_MASK,
+ IX86_BUILTIN_LOADAPS256_MASK,
+ IX86_BUILTIN_LOADAPS128_MASK,
+ IX86_BUILTIN_STOREAPD256_MASK,
+ IX86_BUILTIN_STOREAPD128_MASK,
+ IX86_BUILTIN_STOREAPS256_MASK,
+ IX86_BUILTIN_STOREAPS128_MASK,
+ IX86_BUILTIN_LOADUPD256_MASK,
+ IX86_BUILTIN_LOADUPD128_MASK,
+ IX86_BUILTIN_LOADUPS256_MASK,
+ IX86_BUILTIN_LOADUPS128_MASK,
+ IX86_BUILTIN_STOREUPD256_MASK,
+ IX86_BUILTIN_STOREUPD128_MASK,
+ IX86_BUILTIN_STOREUPS256_MASK,
+ IX86_BUILTIN_STOREUPS128_MASK,
+ IX86_BUILTIN_LOADDQUDI256_MASK,
+ IX86_BUILTIN_LOADDQUDI128_MASK,
+ IX86_BUILTIN_LOADDQUSI256_MASK,
+ IX86_BUILTIN_LOADDQUSI128_MASK,
+ IX86_BUILTIN_STOREDQUDI256_MASK,
+ IX86_BUILTIN_STOREDQUDI128_MASK,
+ IX86_BUILTIN_STOREDQUSI256_MASK,
+ IX86_BUILTIN_STOREDQUSI128_MASK,
+ IX86_BUILTIN_STOREDQUHI256_MASK,
+ IX86_BUILTIN_STOREDQUHI128_MASK,
+ IX86_BUILTIN_STOREDQUQI256_MASK,
+ IX86_BUILTIN_STOREDQUQI128_MASK,
+ IX86_BUILTIN_COMPRESSPDSTORE256,
+ IX86_BUILTIN_COMPRESSPDSTORE128,
+ IX86_BUILTIN_COMPRESSPSSTORE256,
+ IX86_BUILTIN_COMPRESSPSSTORE128,
+ IX86_BUILTIN_PCOMPRESSQSTORE256,
+ IX86_BUILTIN_PCOMPRESSQSTORE128,
+ IX86_BUILTIN_PCOMPRESSDSTORE256,
+ IX86_BUILTIN_PCOMPRESSDSTORE128,
+ IX86_BUILTIN_EXPANDPDLOAD256,
+ IX86_BUILTIN_EXPANDPDLOAD128,
+ IX86_BUILTIN_EXPANDPSLOAD256,
+ IX86_BUILTIN_EXPANDPSLOAD128,
+ IX86_BUILTIN_PEXPANDQLOAD256,
+ IX86_BUILTIN_PEXPANDQLOAD128,
+ IX86_BUILTIN_PEXPANDDLOAD256,
+ IX86_BUILTIN_PEXPANDDLOAD128,
+ IX86_BUILTIN_EXPANDPDLOAD256Z,
+ IX86_BUILTIN_EXPANDPDLOAD128Z,
+ IX86_BUILTIN_EXPANDPSLOAD256Z,
+ IX86_BUILTIN_EXPANDPSLOAD128Z,
+ IX86_BUILTIN_PEXPANDQLOAD256Z,
+ IX86_BUILTIN_PEXPANDQLOAD128Z,
+ IX86_BUILTIN_PEXPANDDLOAD256Z,
+ IX86_BUILTIN_PEXPANDDLOAD128Z,
+ IX86_BUILTIN_PMOVQD256_MEM,
+ IX86_BUILTIN_PMOVQD128_MEM,
+ IX86_BUILTIN_PMOVSQD256_MEM,
+ IX86_BUILTIN_PMOVSQD128_MEM,
+ IX86_BUILTIN_PMOVUSQD256_MEM,
+ IX86_BUILTIN_PMOVUSQD128_MEM,
+ IX86_BUILTIN_PMOVQW256_MEM,
+ IX86_BUILTIN_PMOVQW128_MEM,
+ IX86_BUILTIN_PMOVSQW256_MEM,
+ IX86_BUILTIN_PMOVSQW128_MEM,
+ IX86_BUILTIN_PMOVUSQW256_MEM,
+ IX86_BUILTIN_PMOVUSQW128_MEM,
+ IX86_BUILTIN_PMOVQB256_MEM,
+ IX86_BUILTIN_PMOVQB128_MEM,
+ IX86_BUILTIN_PMOVSQB256_MEM,
+ IX86_BUILTIN_PMOVSQB128_MEM,
+ IX86_BUILTIN_PMOVUSQB256_MEM,
+ IX86_BUILTIN_PMOVUSQB128_MEM,
+ IX86_BUILTIN_PMOVDB256_MEM,
+ IX86_BUILTIN_PMOVDB128_MEM,
+ IX86_BUILTIN_PMOVSDB256_MEM,
+ IX86_BUILTIN_PMOVSDB128_MEM,
+ IX86_BUILTIN_PMOVUSDB256_MEM,
+ IX86_BUILTIN_PMOVUSDB128_MEM,
+ IX86_BUILTIN_PMOVDW256_MEM,
+ IX86_BUILTIN_PMOVDW128_MEM,
+ IX86_BUILTIN_PMOVSDW256_MEM,
+ IX86_BUILTIN_PMOVSDW128_MEM,
+ IX86_BUILTIN_PMOVUSDW256_MEM,
+ IX86_BUILTIN_PMOVUSDW128_MEM,
+ IX86_BUILTIN_PCOMMIT,
+ IX86_BUILTIN_RDPKRU,
+ IX86_BUILTIN_WRPKRU,
+ IX86_BUILTIN__BDESC_SPECIAL_ARGS_LAST = IX86_BUILTIN_WRPKRU,
- IX86_BUILTIN_PACKSSWB,
- IX86_BUILTIN_PACKSSDW,
- IX86_BUILTIN_PACKUSWB,
-
+ /* Builtins with variable number of arguments. */
+ IX86_BUILTIN__BDESC_ARGS_FIRST,
+ IX86_BUILTIN_BSRSI = IX86_BUILTIN__BDESC_ARGS_FIRST,
+ IX86_BUILTIN_BSRDI,
+ IX86_BUILTIN_RDPMC,
+ IX86_BUILTIN_ROLQI,
+ IX86_BUILTIN_ROLHI,
+ IX86_BUILTIN_RORQI,
+ IX86_BUILTIN_RORHI,
IX86_BUILTIN_PADDB,
IX86_BUILTIN_PADDW,
IX86_BUILTIN_PADDD,
- IX86_BUILTIN_PADDQ,
- IX86_BUILTIN_PADDSB,
- IX86_BUILTIN_PADDSW,
- IX86_BUILTIN_PADDUSB,
- IX86_BUILTIN_PADDUSW,
IX86_BUILTIN_PSUBB,
IX86_BUILTIN_PSUBW,
IX86_BUILTIN_PSUBD,
- IX86_BUILTIN_PSUBQ,
+ IX86_BUILTIN_PADDSB,
+ IX86_BUILTIN_PADDSW,
IX86_BUILTIN_PSUBSB,
IX86_BUILTIN_PSUBSW,
+ IX86_BUILTIN_PADDUSB,
+ IX86_BUILTIN_PADDUSW,
IX86_BUILTIN_PSUBUSB,
IX86_BUILTIN_PSUBUSW,
-
+ IX86_BUILTIN_PMULLW,
+ IX86_BUILTIN_PMULHW,
IX86_BUILTIN_PAND,
IX86_BUILTIN_PANDN,
IX86_BUILTIN_POR,
IX86_BUILTIN_PXOR,
-
- IX86_BUILTIN_PAVGB,
- IX86_BUILTIN_PAVGW,
-
IX86_BUILTIN_PCMPEQB,
IX86_BUILTIN_PCMPEQW,
IX86_BUILTIN_PCMPEQD,
IX86_BUILTIN_PCMPGTB,
IX86_BUILTIN_PCMPGTW,
IX86_BUILTIN_PCMPGTD,
-
+ IX86_BUILTIN_PUNPCKHBW,
+ IX86_BUILTIN_PUNPCKHWD,
+ IX86_BUILTIN_PUNPCKHDQ,
+ IX86_BUILTIN_PUNPCKLBW,
+ IX86_BUILTIN_PUNPCKLWD,
+ IX86_BUILTIN_PUNPCKLDQ,
+ IX86_BUILTIN_PACKSSWB,
+ IX86_BUILTIN_PACKSSDW,
+ IX86_BUILTIN_PACKUSWB,
IX86_BUILTIN_PMADDWD,
-
- IX86_BUILTIN_PMAXSW,
- IX86_BUILTIN_PMAXUB,
- IX86_BUILTIN_PMINSW,
- IX86_BUILTIN_PMINUB,
-
- IX86_BUILTIN_PMULHUW,
- IX86_BUILTIN_PMULHW,
- IX86_BUILTIN_PMULLW,
-
- IX86_BUILTIN_PSADBW,
- IX86_BUILTIN_PSHUFW,
-
+ IX86_BUILTIN_PSLLWI,
+ IX86_BUILTIN_PSLLDI,
+ IX86_BUILTIN_PSLLQI,
IX86_BUILTIN_PSLLW,
IX86_BUILTIN_PSLLD,
IX86_BUILTIN_PSLLQ,
- IX86_BUILTIN_PSRAW,
- IX86_BUILTIN_PSRAD,
+ IX86_BUILTIN_PSRLWI,
+ IX86_BUILTIN_PSRLDI,
+ IX86_BUILTIN_PSRLQI,
IX86_BUILTIN_PSRLW,
IX86_BUILTIN_PSRLD,
IX86_BUILTIN_PSRLQ,
- IX86_BUILTIN_PSLLWI,
- IX86_BUILTIN_PSLLDI,
- IX86_BUILTIN_PSLLQI,
IX86_BUILTIN_PSRAWI,
IX86_BUILTIN_PSRADI,
- IX86_BUILTIN_PSRLWI,
- IX86_BUILTIN_PSRLDI,
- IX86_BUILTIN_PSRLQI,
-
- IX86_BUILTIN_PUNPCKHBW,
- IX86_BUILTIN_PUNPCKHWD,
- IX86_BUILTIN_PUNPCKHDQ,
- IX86_BUILTIN_PUNPCKLBW,
- IX86_BUILTIN_PUNPCKLWD,
- IX86_BUILTIN_PUNPCKLDQ,
-
- IX86_BUILTIN_SHUFPS,
-
- IX86_BUILTIN_RCPPS,
- IX86_BUILTIN_RCPSS,
- IX86_BUILTIN_RSQRTPS,
- IX86_BUILTIN_RSQRTPS_NR,
- IX86_BUILTIN_RSQRTSS,
- IX86_BUILTIN_RSQRTF,
- IX86_BUILTIN_SQRTPS,
- IX86_BUILTIN_SQRTPS_NR,
- IX86_BUILTIN_SQRTSS,
-
- IX86_BUILTIN_UNPCKHPS,
- IX86_BUILTIN_UNPCKLPS,
-
- IX86_BUILTIN_ANDPS,
- IX86_BUILTIN_ANDNPS,
- IX86_BUILTIN_ORPS,
- IX86_BUILTIN_XORPS,
-
- IX86_BUILTIN_EMMS,
- IX86_BUILTIN_LDMXCSR,
- IX86_BUILTIN_STMXCSR,
- IX86_BUILTIN_SFENCE,
-
- IX86_BUILTIN_FXSAVE,
- IX86_BUILTIN_FXRSTOR,
- IX86_BUILTIN_FXSAVE64,
- IX86_BUILTIN_FXRSTOR64,
-
- IX86_BUILTIN_XSAVE,
- IX86_BUILTIN_XRSTOR,
- IX86_BUILTIN_XSAVE64,
- IX86_BUILTIN_XRSTOR64,
-
- IX86_BUILTIN_XSAVEOPT,
- IX86_BUILTIN_XSAVEOPT64,
-
- IX86_BUILTIN_XSAVEC,
- IX86_BUILTIN_XSAVEC64,
-
- IX86_BUILTIN_XSAVES,
- IX86_BUILTIN_XRSTORS,
- IX86_BUILTIN_XSAVES64,
- IX86_BUILTIN_XRSTORS64,
-
- /* 3DNow! Original */
- IX86_BUILTIN_FEMMS,
- IX86_BUILTIN_PAVGUSB,
+ IX86_BUILTIN_PSRAW,
+ IX86_BUILTIN_PSRAD,
IX86_BUILTIN_PF2ID,
+ IX86_BUILTIN_PI2FD,
+ IX86_BUILTIN_PFRCP,
+ IX86_BUILTIN_PFRSQRT,
+ IX86_BUILTIN_PAVGUSB,
IX86_BUILTIN_PFACC,
IX86_BUILTIN_PFADD,
IX86_BUILTIN_PFCMPEQ,
@@ -30726,423 +31037,345 @@ enum ix86_builtins
IX86_BUILTIN_PFMAX,
IX86_BUILTIN_PFMIN,
IX86_BUILTIN_PFMUL,
- IX86_BUILTIN_PFRCP,
IX86_BUILTIN_PFRCPIT1,
IX86_BUILTIN_PFRCPIT2,
IX86_BUILTIN_PFRSQIT1,
- IX86_BUILTIN_PFRSQRT,
IX86_BUILTIN_PFSUB,
IX86_BUILTIN_PFSUBR,
- IX86_BUILTIN_PI2FD,
IX86_BUILTIN_PMULHRW,
-
- /* 3DNow! Athlon Extensions */
IX86_BUILTIN_PF2IW,
- IX86_BUILTIN_PFNACC,
- IX86_BUILTIN_PFPNACC,
IX86_BUILTIN_PI2FW,
IX86_BUILTIN_PSWAPDSI,
IX86_BUILTIN_PSWAPDSF,
-
- /* SSE2 */
+ IX86_BUILTIN_PFNACC,
+ IX86_BUILTIN_PFPNACC,
+ IX86_BUILTIN_MOVMSKPS,
+ IX86_BUILTIN_SQRTPS,
+ IX86_BUILTIN_SQRTPS_NR,
+ IX86_BUILTIN_RSQRTPS,
+ IX86_BUILTIN_RSQRTPS_NR,
+ IX86_BUILTIN_RCPPS,
+ IX86_BUILTIN_CVTPS2PI,
+ IX86_BUILTIN_CVTSS2SI,
+ IX86_BUILTIN_CVTSS2SI64,
+ IX86_BUILTIN_CVTTPS2PI,
+ IX86_BUILTIN_CVTTSS2SI,
+ IX86_BUILTIN_CVTTSS2SI64,
+ IX86_BUILTIN_SHUFPS,
+ IX86_BUILTIN_ADDPS,
+ IX86_BUILTIN_SUBPS,
+ IX86_BUILTIN_MULPS,
+ IX86_BUILTIN_DIVPS,
+ IX86_BUILTIN_ADDSS,
+ IX86_BUILTIN_SUBSS,
+ IX86_BUILTIN_MULSS,
+ IX86_BUILTIN_DIVSS,
+ IX86_BUILTIN_CMPEQPS,
+ IX86_BUILTIN_CMPLTPS,
+ IX86_BUILTIN_CMPLEPS,
+ IX86_BUILTIN_CMPGTPS,
+ IX86_BUILTIN_CMPGEPS,
+ IX86_BUILTIN_CMPUNORDPS,
+ IX86_BUILTIN_CMPNEQPS,
+ IX86_BUILTIN_CMPNLTPS,
+ IX86_BUILTIN_CMPNLEPS,
+ IX86_BUILTIN_CMPNGTPS,
+ IX86_BUILTIN_CMPNGEPS,
+ IX86_BUILTIN_CMPORDPS,
+ IX86_BUILTIN_CMPEQSS,
+ IX86_BUILTIN_CMPLTSS,
+ IX86_BUILTIN_CMPLESS,
+ IX86_BUILTIN_CMPUNORDSS,
+ IX86_BUILTIN_CMPNEQSS,
+ IX86_BUILTIN_CMPNLTSS,
+ IX86_BUILTIN_CMPNLESS,
+ IX86_BUILTIN_CMPORDSS,
+ IX86_BUILTIN_MINPS,
+ IX86_BUILTIN_MAXPS,
+ IX86_BUILTIN_MINSS,
+ IX86_BUILTIN_MAXSS,
+ IX86_BUILTIN_ANDPS,
+ IX86_BUILTIN_ANDNPS,
+ IX86_BUILTIN_ORPS,
+ IX86_BUILTIN_XORPS,
+ IX86_BUILTIN_CPYSGNPS,
+ IX86_BUILTIN_MOVSS,
+ IX86_BUILTIN_MOVHLPS,
+ IX86_BUILTIN_MOVLHPS,
+ IX86_BUILTIN_UNPCKHPS,
+ IX86_BUILTIN_UNPCKLPS,
+ IX86_BUILTIN_CVTPI2PS,
+ IX86_BUILTIN_CVTSI2SS,
+ IX86_BUILTIN_CVTSI642SS,
+ IX86_BUILTIN_RSQRTF,
+ IX86_BUILTIN_SQRTSS,
+ IX86_BUILTIN_RSQRTSS,
+ IX86_BUILTIN_RCPSS,
+ IX86_BUILTIN_FABSQ,
+ IX86_BUILTIN_COPYSIGNQ,
+ IX86_BUILTIN_PAVGB,
+ IX86_BUILTIN_PAVGW,
+ IX86_BUILTIN_PMULHUW,
+ IX86_BUILTIN_PMAXUB,
+ IX86_BUILTIN_PMAXSW,
+ IX86_BUILTIN_PMINUB,
+ IX86_BUILTIN_PMINSW,
+ IX86_BUILTIN_PSADBW,
+ IX86_BUILTIN_PMOVMSKB,
+ IX86_BUILTIN_PSHUFW,
+ IX86_BUILTIN_SHUFPD,
+ IX86_BUILTIN_MOVMSKPD,
+ IX86_BUILTIN_PMOVMSKB128,
+ IX86_BUILTIN_SQRTPD,
+ IX86_BUILTIN_CVTDQ2PD,
+ IX86_BUILTIN_CVTDQ2PS,
+ IX86_BUILTIN_CVTPD2DQ,
+ IX86_BUILTIN_CVTPD2PI,
+ IX86_BUILTIN_CVTPD2PS,
+ IX86_BUILTIN_CVTTPD2DQ,
+ IX86_BUILTIN_CVTTPD2PI,
+ IX86_BUILTIN_CVTPI2PD,
+ IX86_BUILTIN_CVTSD2SI,
+ IX86_BUILTIN_CVTTSD2SI,
+ IX86_BUILTIN_CVTSD2SI64,
+ IX86_BUILTIN_CVTTSD2SI64,
+ IX86_BUILTIN_CVTPS2DQ,
+ IX86_BUILTIN_CVTPS2PD,
+ IX86_BUILTIN_CVTTPS2DQ,
IX86_BUILTIN_ADDPD,
- IX86_BUILTIN_ADDSD,
- IX86_BUILTIN_DIVPD,
- IX86_BUILTIN_DIVSD,
- IX86_BUILTIN_MULPD,
- IX86_BUILTIN_MULSD,
IX86_BUILTIN_SUBPD,
+ IX86_BUILTIN_MULPD,
+ IX86_BUILTIN_DIVPD,
+ IX86_BUILTIN_ADDSD,
IX86_BUILTIN_SUBSD,
-
+ IX86_BUILTIN_MULSD,
+ IX86_BUILTIN_DIVSD,
IX86_BUILTIN_CMPEQPD,
IX86_BUILTIN_CMPLTPD,
IX86_BUILTIN_CMPLEPD,
IX86_BUILTIN_CMPGTPD,
IX86_BUILTIN_CMPGEPD,
+ IX86_BUILTIN_CMPUNORDPD,
IX86_BUILTIN_CMPNEQPD,
IX86_BUILTIN_CMPNLTPD,
IX86_BUILTIN_CMPNLEPD,
IX86_BUILTIN_CMPNGTPD,
IX86_BUILTIN_CMPNGEPD,
IX86_BUILTIN_CMPORDPD,
- IX86_BUILTIN_CMPUNORDPD,
IX86_BUILTIN_CMPEQSD,
IX86_BUILTIN_CMPLTSD,
IX86_BUILTIN_CMPLESD,
+ IX86_BUILTIN_CMPUNORDSD,
IX86_BUILTIN_CMPNEQSD,
IX86_BUILTIN_CMPNLTSD,
IX86_BUILTIN_CMPNLESD,
IX86_BUILTIN_CMPORDSD,
- IX86_BUILTIN_CMPUNORDSD,
-
- IX86_BUILTIN_COMIEQSD,
- IX86_BUILTIN_COMILTSD,
- IX86_BUILTIN_COMILESD,
- IX86_BUILTIN_COMIGTSD,
- IX86_BUILTIN_COMIGESD,
- IX86_BUILTIN_COMINEQSD,
- IX86_BUILTIN_UCOMIEQSD,
- IX86_BUILTIN_UCOMILTSD,
- IX86_BUILTIN_UCOMILESD,
- IX86_BUILTIN_UCOMIGTSD,
- IX86_BUILTIN_UCOMIGESD,
- IX86_BUILTIN_UCOMINEQSD,
-
- IX86_BUILTIN_MAXPD,
- IX86_BUILTIN_MAXSD,
IX86_BUILTIN_MINPD,
+ IX86_BUILTIN_MAXPD,
IX86_BUILTIN_MINSD,
-
+ IX86_BUILTIN_MAXSD,
IX86_BUILTIN_ANDPD,
IX86_BUILTIN_ANDNPD,
IX86_BUILTIN_ORPD,
IX86_BUILTIN_XORPD,
-
- IX86_BUILTIN_SQRTPD,
- IX86_BUILTIN_SQRTSD,
-
+ IX86_BUILTIN_CPYSGNPD,
+ IX86_BUILTIN_MOVSD,
IX86_BUILTIN_UNPCKHPD,
IX86_BUILTIN_UNPCKLPD,
-
- IX86_BUILTIN_SHUFPD,
-
- IX86_BUILTIN_LOADUPD,
- IX86_BUILTIN_STOREUPD,
- IX86_BUILTIN_MOVSD,
-
- IX86_BUILTIN_LOADHPD,
- IX86_BUILTIN_LOADLPD,
-
- IX86_BUILTIN_CVTDQ2PD,
- IX86_BUILTIN_CVTDQ2PS,
-
- IX86_BUILTIN_CVTPD2DQ,
- IX86_BUILTIN_CVTPD2PI,
- IX86_BUILTIN_CVTPD2PS,
- IX86_BUILTIN_CVTTPD2DQ,
- IX86_BUILTIN_CVTTPD2PI,
-
- IX86_BUILTIN_CVTPI2PD,
- IX86_BUILTIN_CVTSI2SD,
- IX86_BUILTIN_CVTSI642SD,
-
- IX86_BUILTIN_CVTSD2SI,
- IX86_BUILTIN_CVTSD2SI64,
- IX86_BUILTIN_CVTSD2SS,
- IX86_BUILTIN_CVTSS2SD,
- IX86_BUILTIN_CVTTSD2SI,
- IX86_BUILTIN_CVTTSD2SI64,
-
- IX86_BUILTIN_CVTPS2DQ,
- IX86_BUILTIN_CVTPS2PD,
- IX86_BUILTIN_CVTTPS2DQ,
-
- IX86_BUILTIN_MOVNTI,
- IX86_BUILTIN_MOVNTI64,
- IX86_BUILTIN_MOVNTPD,
- IX86_BUILTIN_MOVNTDQ,
-
- IX86_BUILTIN_MOVQ128,
-
- /* SSE2 MMX */
- IX86_BUILTIN_MASKMOVDQU,
- IX86_BUILTIN_MOVMSKPD,
- IX86_BUILTIN_PMOVMSKB128,
-
- IX86_BUILTIN_PACKSSWB128,
- IX86_BUILTIN_PACKSSDW128,
- IX86_BUILTIN_PACKUSWB128,
-
+ IX86_BUILTIN_VEC_PACK_SFIX,
IX86_BUILTIN_PADDB128,
IX86_BUILTIN_PADDW128,
IX86_BUILTIN_PADDD128,
IX86_BUILTIN_PADDQ128,
- IX86_BUILTIN_PADDSB128,
- IX86_BUILTIN_PADDSW128,
- IX86_BUILTIN_PADDUSB128,
- IX86_BUILTIN_PADDUSW128,
IX86_BUILTIN_PSUBB128,
IX86_BUILTIN_PSUBW128,
IX86_BUILTIN_PSUBD128,
IX86_BUILTIN_PSUBQ128,
+ IX86_BUILTIN_PADDSB128,
+ IX86_BUILTIN_PADDSW128,
IX86_BUILTIN_PSUBSB128,
IX86_BUILTIN_PSUBSW128,
+ IX86_BUILTIN_PADDUSB128,
+ IX86_BUILTIN_PADDUSW128,
IX86_BUILTIN_PSUBUSB128,
IX86_BUILTIN_PSUBUSW128,
-
+ IX86_BUILTIN_PMULLW128,
+ IX86_BUILTIN_PMULHW128,
IX86_BUILTIN_PAND128,
IX86_BUILTIN_PANDN128,
IX86_BUILTIN_POR128,
IX86_BUILTIN_PXOR128,
-
IX86_BUILTIN_PAVGB128,
IX86_BUILTIN_PAVGW128,
-
IX86_BUILTIN_PCMPEQB128,
IX86_BUILTIN_PCMPEQW128,
IX86_BUILTIN_PCMPEQD128,
IX86_BUILTIN_PCMPGTB128,
IX86_BUILTIN_PCMPGTW128,
IX86_BUILTIN_PCMPGTD128,
-
- IX86_BUILTIN_PMADDWD128,
-
- IX86_BUILTIN_PMAXSW128,
IX86_BUILTIN_PMAXUB128,
- IX86_BUILTIN_PMINSW128,
+ IX86_BUILTIN_PMAXSW128,
IX86_BUILTIN_PMINUB128,
-
- IX86_BUILTIN_PMULUDQ,
- IX86_BUILTIN_PMULUDQ128,
+ IX86_BUILTIN_PMINSW128,
+ IX86_BUILTIN_PUNPCKHBW128,
+ IX86_BUILTIN_PUNPCKHWD128,
+ IX86_BUILTIN_PUNPCKHDQ128,
+ IX86_BUILTIN_PUNPCKHQDQ128,
+ IX86_BUILTIN_PUNPCKLBW128,
+ IX86_BUILTIN_PUNPCKLWD128,
+ IX86_BUILTIN_PUNPCKLDQ128,
+ IX86_BUILTIN_PUNPCKLQDQ128,
+ IX86_BUILTIN_PACKSSWB128,
+ IX86_BUILTIN_PACKSSDW128,
+ IX86_BUILTIN_PACKUSWB128,
IX86_BUILTIN_PMULHUW128,
- IX86_BUILTIN_PMULHW128,
- IX86_BUILTIN_PMULLW128,
-
IX86_BUILTIN_PSADBW128,
- IX86_BUILTIN_PSHUFHW,
- IX86_BUILTIN_PSHUFLW,
- IX86_BUILTIN_PSHUFD,
-
+ IX86_BUILTIN_PMULUDQ,
+ IX86_BUILTIN_PMULUDQ128,
+ IX86_BUILTIN_PMADDWD128,
+ IX86_BUILTIN_CVTSI2SD,
+ IX86_BUILTIN_CVTSI642SD,
+ IX86_BUILTIN_CVTSD2SS,
+ IX86_BUILTIN_CVTSS2SD,
IX86_BUILTIN_PSLLDQI128,
IX86_BUILTIN_PSLLWI128,
IX86_BUILTIN_PSLLDI128,
IX86_BUILTIN_PSLLQI128,
- IX86_BUILTIN_PSRAWI128,
- IX86_BUILTIN_PSRADI128,
+ IX86_BUILTIN_PSLLW128,
+ IX86_BUILTIN_PSLLD128,
+ IX86_BUILTIN_PSLLQ128,
IX86_BUILTIN_PSRLDQI128,
IX86_BUILTIN_PSRLWI128,
IX86_BUILTIN_PSRLDI128,
IX86_BUILTIN_PSRLQI128,
-
- IX86_BUILTIN_PSLLDQ128,
- IX86_BUILTIN_PSLLW128,
- IX86_BUILTIN_PSLLD128,
- IX86_BUILTIN_PSLLQ128,
- IX86_BUILTIN_PSRAW128,
- IX86_BUILTIN_PSRAD128,
IX86_BUILTIN_PSRLW128,
IX86_BUILTIN_PSRLD128,
IX86_BUILTIN_PSRLQ128,
-
- IX86_BUILTIN_PUNPCKHBW128,
- IX86_BUILTIN_PUNPCKHWD128,
- IX86_BUILTIN_PUNPCKHDQ128,
- IX86_BUILTIN_PUNPCKHQDQ128,
- IX86_BUILTIN_PUNPCKLBW128,
- IX86_BUILTIN_PUNPCKLWD128,
- IX86_BUILTIN_PUNPCKLDQ128,
- IX86_BUILTIN_PUNPCKLQDQ128,
-
- IX86_BUILTIN_CLFLUSH,
- IX86_BUILTIN_MFENCE,
- IX86_BUILTIN_LFENCE,
- IX86_BUILTIN_PAUSE,
-
- IX86_BUILTIN_FNSTENV,
- IX86_BUILTIN_FLDENV,
- IX86_BUILTIN_FNSTSW,
- IX86_BUILTIN_FNCLEX,
-
- IX86_BUILTIN_BSRSI,
- IX86_BUILTIN_BSRDI,
- IX86_BUILTIN_RDPMC,
- IX86_BUILTIN_RDTSC,
- IX86_BUILTIN_RDTSCP,
- IX86_BUILTIN_ROLQI,
- IX86_BUILTIN_ROLHI,
- IX86_BUILTIN_RORQI,
- IX86_BUILTIN_RORHI,
-
- /* SSE3. */
- IX86_BUILTIN_ADDSUBPS,
- IX86_BUILTIN_HADDPS,
- IX86_BUILTIN_HSUBPS,
+ IX86_BUILTIN_PSRAWI128,
+ IX86_BUILTIN_PSRADI128,
+ IX86_BUILTIN_PSRAW128,
+ IX86_BUILTIN_PSRAD128,
+ IX86_BUILTIN_PSHUFD,
+ IX86_BUILTIN_PSHUFLW,
+ IX86_BUILTIN_PSHUFHW,
+ IX86_BUILTIN_SQRTSD,
+ IX86_BUILTIN_MOVQ128,
+ IX86_BUILTIN_PADDQ,
+ IX86_BUILTIN_PSUBQ,
IX86_BUILTIN_MOVSHDUP,
IX86_BUILTIN_MOVSLDUP,
+ IX86_BUILTIN_ADDSUBPS,
IX86_BUILTIN_ADDSUBPD,
+ IX86_BUILTIN_HADDPS,
IX86_BUILTIN_HADDPD,
+ IX86_BUILTIN_HSUBPS,
IX86_BUILTIN_HSUBPD,
- IX86_BUILTIN_LDDQU,
-
- IX86_BUILTIN_MONITOR,
- IX86_BUILTIN_MWAIT,
- IX86_BUILTIN_CLZERO,
-
- /* SSSE3. */
- IX86_BUILTIN_PHADDW,
- IX86_BUILTIN_PHADDD,
- IX86_BUILTIN_PHADDSW,
- IX86_BUILTIN_PHSUBW,
- IX86_BUILTIN_PHSUBD,
- IX86_BUILTIN_PHSUBSW,
- IX86_BUILTIN_PMADDUBSW,
- IX86_BUILTIN_PMULHRSW,
- IX86_BUILTIN_PSHUFB,
- IX86_BUILTIN_PSIGNB,
- IX86_BUILTIN_PSIGNW,
- IX86_BUILTIN_PSIGND,
- IX86_BUILTIN_PALIGNR,
+ IX86_BUILTIN_PABSB128,
IX86_BUILTIN_PABSB,
+ IX86_BUILTIN_PABSW128,
IX86_BUILTIN_PABSW,
+ IX86_BUILTIN_PABSD128,
IX86_BUILTIN_PABSD,
-
IX86_BUILTIN_PHADDW128,
+ IX86_BUILTIN_PHADDW,
IX86_BUILTIN_PHADDD128,
+ IX86_BUILTIN_PHADDD,
IX86_BUILTIN_PHADDSW128,
+ IX86_BUILTIN_PHADDSW,
IX86_BUILTIN_PHSUBW128,
+ IX86_BUILTIN_PHSUBW,
IX86_BUILTIN_PHSUBD128,
+ IX86_BUILTIN_PHSUBD,
IX86_BUILTIN_PHSUBSW128,
+ IX86_BUILTIN_PHSUBSW,
IX86_BUILTIN_PMADDUBSW128,
+ IX86_BUILTIN_PMADDUBSW,
IX86_BUILTIN_PMULHRSW128,
+ IX86_BUILTIN_PMULHRSW,
IX86_BUILTIN_PSHUFB128,
+ IX86_BUILTIN_PSHUFB,
IX86_BUILTIN_PSIGNB128,
+ IX86_BUILTIN_PSIGNB,
IX86_BUILTIN_PSIGNW128,
+ IX86_BUILTIN_PSIGNW,
IX86_BUILTIN_PSIGND128,
+ IX86_BUILTIN_PSIGND,
IX86_BUILTIN_PALIGNR128,
- IX86_BUILTIN_PABSB128,
- IX86_BUILTIN_PABSW128,
- IX86_BUILTIN_PABSD128,
-
- /* AMDFAM10 - SSE4A New Instructions. */
- IX86_BUILTIN_MOVNTSD,
- IX86_BUILTIN_MOVNTSS,
- IX86_BUILTIN_EXTRQI,
- IX86_BUILTIN_EXTRQ,
- IX86_BUILTIN_INSERTQI,
- IX86_BUILTIN_INSERTQ,
-
- /* SSE4.1. */
+ IX86_BUILTIN_PALIGNR,
IX86_BUILTIN_BLENDPD,
IX86_BUILTIN_BLENDPS,
IX86_BUILTIN_BLENDVPD,
IX86_BUILTIN_BLENDVPS,
- IX86_BUILTIN_PBLENDVB128,
- IX86_BUILTIN_PBLENDW128,
-
IX86_BUILTIN_DPPD,
IX86_BUILTIN_DPPS,
-
IX86_BUILTIN_INSERTPS128,
-
- IX86_BUILTIN_MOVNTDQA,
IX86_BUILTIN_MPSADBW128,
- IX86_BUILTIN_PACKUSDW128,
- IX86_BUILTIN_PCMPEQQ,
- IX86_BUILTIN_PHMINPOSUW128,
-
- IX86_BUILTIN_PMAXSB128,
- IX86_BUILTIN_PMAXSD128,
- IX86_BUILTIN_PMAXUD128,
- IX86_BUILTIN_PMAXUW128,
-
- IX86_BUILTIN_PMINSB128,
- IX86_BUILTIN_PMINSD128,
- IX86_BUILTIN_PMINUD128,
- IX86_BUILTIN_PMINUW128,
-
+ IX86_BUILTIN_PBLENDVB128,
+ IX86_BUILTIN_PBLENDW128,
IX86_BUILTIN_PMOVSXBW128,
IX86_BUILTIN_PMOVSXBD128,
IX86_BUILTIN_PMOVSXBQ128,
IX86_BUILTIN_PMOVSXWD128,
IX86_BUILTIN_PMOVSXWQ128,
IX86_BUILTIN_PMOVSXDQ128,
-
IX86_BUILTIN_PMOVZXBW128,
IX86_BUILTIN_PMOVZXBD128,
IX86_BUILTIN_PMOVZXBQ128,
IX86_BUILTIN_PMOVZXWD128,
IX86_BUILTIN_PMOVZXWQ128,
IX86_BUILTIN_PMOVZXDQ128,
-
+ IX86_BUILTIN_PHMINPOSUW128,
+ IX86_BUILTIN_PACKUSDW128,
+ IX86_BUILTIN_PCMPEQQ,
+ IX86_BUILTIN_PMAXSB128,
+ IX86_BUILTIN_PMAXSD128,
+ IX86_BUILTIN_PMAXUD128,
+ IX86_BUILTIN_PMAXUW128,
+ IX86_BUILTIN_PMINSB128,
+ IX86_BUILTIN_PMINSD128,
+ IX86_BUILTIN_PMINUD128,
+ IX86_BUILTIN_PMINUW128,
IX86_BUILTIN_PMULDQ128,
IX86_BUILTIN_PMULLD128,
-
- IX86_BUILTIN_ROUNDSD,
- IX86_BUILTIN_ROUNDSS,
-
IX86_BUILTIN_ROUNDPD,
IX86_BUILTIN_ROUNDPS,
-
+ IX86_BUILTIN_ROUNDSD,
+ IX86_BUILTIN_ROUNDSS,
IX86_BUILTIN_FLOORPD,
IX86_BUILTIN_CEILPD,
IX86_BUILTIN_TRUNCPD,
IX86_BUILTIN_RINTPD,
- IX86_BUILTIN_ROUNDPD_AZ,
-
IX86_BUILTIN_FLOORPD_VEC_PACK_SFIX,
IX86_BUILTIN_CEILPD_VEC_PACK_SFIX,
+ IX86_BUILTIN_ROUNDPD_AZ,
IX86_BUILTIN_ROUNDPD_AZ_VEC_PACK_SFIX,
-
IX86_BUILTIN_FLOORPS,
IX86_BUILTIN_CEILPS,
IX86_BUILTIN_TRUNCPS,
IX86_BUILTIN_RINTPS,
- IX86_BUILTIN_ROUNDPS_AZ,
-
IX86_BUILTIN_FLOORPS_SFIX,
IX86_BUILTIN_CEILPS_SFIX,
+ IX86_BUILTIN_ROUNDPS_AZ,
IX86_BUILTIN_ROUNDPS_AZ_SFIX,
-
IX86_BUILTIN_PTESTZ,
IX86_BUILTIN_PTESTC,
IX86_BUILTIN_PTESTNZC,
-
- IX86_BUILTIN_VEC_INIT_V2SI,
- IX86_BUILTIN_VEC_INIT_V4HI,
- IX86_BUILTIN_VEC_INIT_V8QI,
- IX86_BUILTIN_VEC_EXT_V2DF,
- IX86_BUILTIN_VEC_EXT_V2DI,
- IX86_BUILTIN_VEC_EXT_V4SF,
- IX86_BUILTIN_VEC_EXT_V4SI,
- IX86_BUILTIN_VEC_EXT_V8HI,
- IX86_BUILTIN_VEC_EXT_V2SI,
- IX86_BUILTIN_VEC_EXT_V4HI,
- IX86_BUILTIN_VEC_EXT_V16QI,
- IX86_BUILTIN_VEC_SET_V2DI,
- IX86_BUILTIN_VEC_SET_V4SF,
- IX86_BUILTIN_VEC_SET_V4SI,
- IX86_BUILTIN_VEC_SET_V8HI,
- IX86_BUILTIN_VEC_SET_V4HI,
- IX86_BUILTIN_VEC_SET_V16QI,
-
- IX86_BUILTIN_VEC_PACK_SFIX,
- IX86_BUILTIN_VEC_PACK_SFIX256,
-
- /* SSE4.2. */
+ IX86_BUILTIN_PCMPGTQ,
IX86_BUILTIN_CRC32QI,
IX86_BUILTIN_CRC32HI,
IX86_BUILTIN_CRC32SI,
IX86_BUILTIN_CRC32DI,
-
- IX86_BUILTIN_PCMPESTRI128,
- IX86_BUILTIN_PCMPESTRM128,
- IX86_BUILTIN_PCMPESTRA128,
- IX86_BUILTIN_PCMPESTRC128,
- IX86_BUILTIN_PCMPESTRO128,
- IX86_BUILTIN_PCMPESTRS128,
- IX86_BUILTIN_PCMPESTRZ128,
- IX86_BUILTIN_PCMPISTRI128,
- IX86_BUILTIN_PCMPISTRM128,
- IX86_BUILTIN_PCMPISTRA128,
- IX86_BUILTIN_PCMPISTRC128,
- IX86_BUILTIN_PCMPISTRO128,
- IX86_BUILTIN_PCMPISTRS128,
- IX86_BUILTIN_PCMPISTRZ128,
-
- IX86_BUILTIN_PCMPGTQ,
-
- /* AES instructions */
+ IX86_BUILTIN_EXTRQI,
+ IX86_BUILTIN_EXTRQ,
+ IX86_BUILTIN_INSERTQI,
+ IX86_BUILTIN_INSERTQ,
+ IX86_BUILTIN_AESKEYGENASSIST128,
+ IX86_BUILTIN_AESIMC128,
IX86_BUILTIN_AESENC128,
IX86_BUILTIN_AESENCLAST128,
IX86_BUILTIN_AESDEC128,
IX86_BUILTIN_AESDECLAST128,
- IX86_BUILTIN_AESIMC128,
- IX86_BUILTIN_AESKEYGENASSIST128,
-
- /* PCLMUL instruction */
IX86_BUILTIN_PCLMULQDQ128,
-
- /* AVX */
IX86_BUILTIN_ADDPD256,
IX86_BUILTIN_ADDPS256,
IX86_BUILTIN_ADDSUBPD256,
@@ -31151,17 +31384,12 @@ enum ix86_builtins
IX86_BUILTIN_ANDPS256,
IX86_BUILTIN_ANDNPD256,
IX86_BUILTIN_ANDNPS256,
- IX86_BUILTIN_BLENDPD256,
- IX86_BUILTIN_BLENDPS256,
- IX86_BUILTIN_BLENDVPD256,
- IX86_BUILTIN_BLENDVPS256,
IX86_BUILTIN_DIVPD256,
IX86_BUILTIN_DIVPS256,
- IX86_BUILTIN_DPPS256,
IX86_BUILTIN_HADDPD256,
- IX86_BUILTIN_HADDPS256,
- IX86_BUILTIN_HSUBPD256,
IX86_BUILTIN_HSUBPS256,
+ IX86_BUILTIN_HSUBPD256,
+ IX86_BUILTIN_HADDPS256,
IX86_BUILTIN_MAXPD256,
IX86_BUILTIN_MAXPS256,
IX86_BUILTIN_MINPD256,
@@ -31170,18 +31398,30 @@ enum ix86_builtins
IX86_BUILTIN_MULPS256,
IX86_BUILTIN_ORPD256,
IX86_BUILTIN_ORPS256,
- IX86_BUILTIN_SHUFPD256,
- IX86_BUILTIN_SHUFPS256,
IX86_BUILTIN_SUBPD256,
IX86_BUILTIN_SUBPS256,
IX86_BUILTIN_XORPD256,
IX86_BUILTIN_XORPS256,
+ IX86_BUILTIN_VPERMILVARPD,
+ IX86_BUILTIN_VPERMILVARPS,
+ IX86_BUILTIN_VPERMILVARPD256,
+ IX86_BUILTIN_VPERMILVARPS256,
+ IX86_BUILTIN_BLENDPD256,
+ IX86_BUILTIN_BLENDPS256,
+ IX86_BUILTIN_BLENDVPD256,
+ IX86_BUILTIN_BLENDVPS256,
+ IX86_BUILTIN_DPPS256,
+ IX86_BUILTIN_SHUFPD256,
+ IX86_BUILTIN_SHUFPS256,
IX86_BUILTIN_CMPSD,
IX86_BUILTIN_CMPSS,
IX86_BUILTIN_CMPPD,
IX86_BUILTIN_CMPPS,
IX86_BUILTIN_CMPPD256,
IX86_BUILTIN_CMPPS256,
+ IX86_BUILTIN_EXTRACTF128PD256,
+ IX86_BUILTIN_EXTRACTF128PS256,
+ IX86_BUILTIN_EXTRACTF128SI256,
IX86_BUILTIN_CVTDQ2PD256,
IX86_BUILTIN_CVTDQ2PS256,
IX86_BUILTIN_CVTPD2PS256,
@@ -31190,99 +31430,53 @@ enum ix86_builtins
IX86_BUILTIN_CVTTPD2DQ256,
IX86_BUILTIN_CVTPD2DQ256,
IX86_BUILTIN_CVTTPS2DQ256,
- IX86_BUILTIN_EXTRACTF128PD256,
- IX86_BUILTIN_EXTRACTF128PS256,
- IX86_BUILTIN_EXTRACTF128SI256,
- IX86_BUILTIN_VZEROALL,
- IX86_BUILTIN_VZEROUPPER,
- IX86_BUILTIN_VPERMILVARPD,
- IX86_BUILTIN_VPERMILVARPS,
- IX86_BUILTIN_VPERMILVARPD256,
- IX86_BUILTIN_VPERMILVARPS256,
+ IX86_BUILTIN_VPERM2F128PD256,
+ IX86_BUILTIN_VPERM2F128PS256,
+ IX86_BUILTIN_VPERM2F128SI256,
IX86_BUILTIN_VPERMILPD,
IX86_BUILTIN_VPERMILPS,
IX86_BUILTIN_VPERMILPD256,
IX86_BUILTIN_VPERMILPS256,
- IX86_BUILTIN_VPERMIL2PD,
- IX86_BUILTIN_VPERMIL2PS,
- IX86_BUILTIN_VPERMIL2PD256,
- IX86_BUILTIN_VPERMIL2PS256,
- IX86_BUILTIN_VPERM2F128PD256,
- IX86_BUILTIN_VPERM2F128PS256,
- IX86_BUILTIN_VPERM2F128SI256,
- IX86_BUILTIN_VBROADCASTSS,
- IX86_BUILTIN_VBROADCASTSD256,
- IX86_BUILTIN_VBROADCASTSS256,
- IX86_BUILTIN_VBROADCASTPD256,
- IX86_BUILTIN_VBROADCASTPS256,
IX86_BUILTIN_VINSERTF128PD256,
IX86_BUILTIN_VINSERTF128PS256,
IX86_BUILTIN_VINSERTF128SI256,
- IX86_BUILTIN_LOADUPD256,
- IX86_BUILTIN_LOADUPS256,
- IX86_BUILTIN_STOREUPD256,
- IX86_BUILTIN_STOREUPS256,
- IX86_BUILTIN_LDDQU256,
- IX86_BUILTIN_MOVNTDQ256,
- IX86_BUILTIN_MOVNTPD256,
- IX86_BUILTIN_MOVNTPS256,
- IX86_BUILTIN_LOADDQU256,
- IX86_BUILTIN_STOREDQU256,
- IX86_BUILTIN_MASKLOADPD,
- IX86_BUILTIN_MASKLOADPS,
- IX86_BUILTIN_MASKSTOREPD,
- IX86_BUILTIN_MASKSTOREPS,
- IX86_BUILTIN_MASKLOADPD256,
- IX86_BUILTIN_MASKLOADPS256,
- IX86_BUILTIN_MASKSTOREPD256,
- IX86_BUILTIN_MASKSTOREPS256,
IX86_BUILTIN_MOVSHDUP256,
IX86_BUILTIN_MOVSLDUP256,
IX86_BUILTIN_MOVDDUP256,
-
IX86_BUILTIN_SQRTPD256,
IX86_BUILTIN_SQRTPS256,
IX86_BUILTIN_SQRTPS_NR256,
IX86_BUILTIN_RSQRTPS256,
IX86_BUILTIN_RSQRTPS_NR256,
-
IX86_BUILTIN_RCPPS256,
-
IX86_BUILTIN_ROUNDPD256,
IX86_BUILTIN_ROUNDPS256,
-
IX86_BUILTIN_FLOORPD256,
IX86_BUILTIN_CEILPD256,
IX86_BUILTIN_TRUNCPD256,
IX86_BUILTIN_RINTPD256,
IX86_BUILTIN_ROUNDPD_AZ256,
-
+ IX86_BUILTIN_ROUNDPD_AZ_VEC_PACK_SFIX256,
IX86_BUILTIN_FLOORPD_VEC_PACK_SFIX256,
IX86_BUILTIN_CEILPD_VEC_PACK_SFIX256,
- IX86_BUILTIN_ROUNDPD_AZ_VEC_PACK_SFIX256,
-
IX86_BUILTIN_FLOORPS256,
IX86_BUILTIN_CEILPS256,
IX86_BUILTIN_TRUNCPS256,
IX86_BUILTIN_RINTPS256,
- IX86_BUILTIN_ROUNDPS_AZ256,
-
IX86_BUILTIN_FLOORPS_SFIX256,
IX86_BUILTIN_CEILPS_SFIX256,
+ IX86_BUILTIN_ROUNDPS_AZ256,
IX86_BUILTIN_ROUNDPS_AZ_SFIX256,
-
IX86_BUILTIN_UNPCKHPD256,
IX86_BUILTIN_UNPCKLPD256,
IX86_BUILTIN_UNPCKHPS256,
IX86_BUILTIN_UNPCKLPS256,
-
IX86_BUILTIN_SI256_SI,
IX86_BUILTIN_PS256_PS,
IX86_BUILTIN_PD256_PD,
IX86_BUILTIN_SI_SI256,
IX86_BUILTIN_PS_PS256,
IX86_BUILTIN_PD_PD256,
-
IX86_BUILTIN_VTESTZPD,
IX86_BUILTIN_VTESTCPD,
IX86_BUILTIN_VTESTNZCPD,
@@ -31298,11 +31492,11 @@ enum ix86_builtins
IX86_BUILTIN_PTESTZ256,
IX86_BUILTIN_PTESTC256,
IX86_BUILTIN_PTESTNZC256,
-
IX86_BUILTIN_MOVMSKPD256,
IX86_BUILTIN_MOVMSKPS256,
-
- /* AVX2 */
+ IX86_BUILTIN_CPYSGNPS256,
+ IX86_BUILTIN_CPYSGNPD256,
+ IX86_BUILTIN_VEC_PACK_SFIX256,
IX86_BUILTIN_MPSADBW256,
IX86_BUILTIN_PABSB256,
IX86_BUILTIN_PABSW256,
@@ -31418,13 +31612,12 @@ enum ix86_builtins
IX86_BUILTIN_PUNPCKLDQ256,
IX86_BUILTIN_PUNPCKLQDQ256,
IX86_BUILTIN_PXOR256,
- IX86_BUILTIN_MOVNTDQA256,
IX86_BUILTIN_VBROADCASTSS_PS,
IX86_BUILTIN_VBROADCASTSS_PS256,
IX86_BUILTIN_VBROADCASTSD_PD256,
IX86_BUILTIN_VBROADCASTSI256,
- IX86_BUILTIN_PBLENDD256,
IX86_BUILTIN_PBLENDD128,
+ IX86_BUILTIN_PBLENDD256,
IX86_BUILTIN_PBROADCASTB256,
IX86_BUILTIN_PBROADCASTW256,
IX86_BUILTIN_PBROADCASTD256,
@@ -31434,20 +31627,12 @@ enum ix86_builtins
IX86_BUILTIN_PBROADCASTD128,
IX86_BUILTIN_PBROADCASTQ128,
IX86_BUILTIN_VPERMVARSI256,
- IX86_BUILTIN_VPERMDF256,
IX86_BUILTIN_VPERMVARSF256,
+ IX86_BUILTIN_VPERMDF256,
IX86_BUILTIN_VPERMDI256,
IX86_BUILTIN_VPERMTI256,
IX86_BUILTIN_VEXTRACT128I256,
IX86_BUILTIN_VINSERT128I256,
- IX86_BUILTIN_MASKLOADD,
- IX86_BUILTIN_MASKLOADQ,
- IX86_BUILTIN_MASKLOADD256,
- IX86_BUILTIN_MASKLOADQ256,
- IX86_BUILTIN_MASKSTORED,
- IX86_BUILTIN_MASKSTOREQ,
- IX86_BUILTIN_MASKSTORED256,
- IX86_BUILTIN_MASKSTOREQ256,
IX86_BUILTIN_PSLLVV4DI,
IX86_BUILTIN_PSLLVV2DI,
IX86_BUILTIN_PSLLVV8SI,
@@ -31458,35 +31643,28 @@ enum ix86_builtins
IX86_BUILTIN_PSRLVV2DI,
IX86_BUILTIN_PSRLVV8SI,
IX86_BUILTIN_PSRLVV4SI,
-
- IX86_BUILTIN_GATHERSIV2DF,
- IX86_BUILTIN_GATHERSIV4DF,
- IX86_BUILTIN_GATHERDIV2DF,
- IX86_BUILTIN_GATHERDIV4DF,
- IX86_BUILTIN_GATHERSIV4SF,
- IX86_BUILTIN_GATHERSIV8SF,
- IX86_BUILTIN_GATHERDIV4SF,
- IX86_BUILTIN_GATHERDIV8SF,
- IX86_BUILTIN_GATHERSIV2DI,
- IX86_BUILTIN_GATHERSIV4DI,
- IX86_BUILTIN_GATHERDIV2DI,
- IX86_BUILTIN_GATHERDIV4DI,
- IX86_BUILTIN_GATHERSIV4SI,
- IX86_BUILTIN_GATHERSIV8SI,
- IX86_BUILTIN_GATHERDIV4SI,
- IX86_BUILTIN_GATHERDIV8SI,
-
- /* AVX512F */
+ IX86_BUILTIN_CLZS,
+ IX86_BUILTIN_BEXTR32,
+ IX86_BUILTIN_BEXTR64,
+ IX86_BUILTIN_CTZS,
+ IX86_BUILTIN_BEXTRI32,
+ IX86_BUILTIN_BEXTRI64,
+ IX86_BUILTIN_CVTPH2PS,
+ IX86_BUILTIN_CVTPH2PS256,
+ IX86_BUILTIN_CVTPS2PH,
+ IX86_BUILTIN_CVTPS2PH256,
+ IX86_BUILTIN_BZHI32,
+ IX86_BUILTIN_BZHI64,
+ IX86_BUILTIN_PDEP32,
+ IX86_BUILTIN_PDEP64,
+ IX86_BUILTIN_PEXT32,
+ IX86_BUILTIN_PEXT64,
IX86_BUILTIN_SI512_SI256,
- IX86_BUILTIN_PD512_PD256,
IX86_BUILTIN_PS512_PS256,
+ IX86_BUILTIN_PD512_PD256,
IX86_BUILTIN_SI512_SI,
- IX86_BUILTIN_PD512_PD,
IX86_BUILTIN_PS512_PS,
- IX86_BUILTIN_ADDPD512,
- IX86_BUILTIN_ADDPS512,
- IX86_BUILTIN_ADDSD_ROUND,
- IX86_BUILTIN_ADDSS_ROUND,
+ IX86_BUILTIN_PD512_PD,
IX86_BUILTIN_ALIGND512,
IX86_BUILTIN_ALIGNQ512,
IX86_BUILTIN_BLENDMD512,
@@ -31500,111 +31678,32 @@ enum ix86_builtins
IX86_BUILTIN_BROADCASTSD512,
IX86_BUILTIN_BROADCASTSS512,
IX86_BUILTIN_CMPD512,
- IX86_BUILTIN_CMPPD512,
- IX86_BUILTIN_CMPPS512,
IX86_BUILTIN_CMPQ512,
- IX86_BUILTIN_CMPSD_MASK,
- IX86_BUILTIN_CMPSS_MASK,
- IX86_BUILTIN_COMIDF,
- IX86_BUILTIN_COMISF,
IX86_BUILTIN_COMPRESSPD512,
- IX86_BUILTIN_COMPRESSPDSTORE512,
IX86_BUILTIN_COMPRESSPS512,
- IX86_BUILTIN_COMPRESSPSSTORE512,
IX86_BUILTIN_CVTDQ2PD512,
- IX86_BUILTIN_CVTDQ2PS512,
- IX86_BUILTIN_CVTPD2DQ512,
- IX86_BUILTIN_CVTPD2PS512,
- IX86_BUILTIN_CVTPD2UDQ512,
- IX86_BUILTIN_CVTPH2PS512,
- IX86_BUILTIN_CVTPS2DQ512_MASK,
- IX86_BUILTIN_CVTPS2PD512,
IX86_BUILTIN_CVTPS2PH512,
- IX86_BUILTIN_CVTPS2UDQ512,
- IX86_BUILTIN_CVTSD2SS_ROUND,
- IX86_BUILTIN_CVTSI2SD64,
- IX86_BUILTIN_CVTSI2SS32,
- IX86_BUILTIN_CVTSI2SS64,
- IX86_BUILTIN_CVTSS2SD_ROUND,
- IX86_BUILTIN_CVTTPD2DQ512,
- IX86_BUILTIN_CVTTPD2UDQ512,
- IX86_BUILTIN_CVTTPS2DQ512,
- IX86_BUILTIN_CVTTPS2UDQ512,
IX86_BUILTIN_CVTUDQ2PD512,
- IX86_BUILTIN_CVTUDQ2PS512,
IX86_BUILTIN_CVTUSI2SD32,
- IX86_BUILTIN_CVTUSI2SD64,
- IX86_BUILTIN_CVTUSI2SS32,
- IX86_BUILTIN_CVTUSI2SS64,
- IX86_BUILTIN_DIVPD512,
- IX86_BUILTIN_DIVPS512,
- IX86_BUILTIN_DIVSD_ROUND,
- IX86_BUILTIN_DIVSS_ROUND,
IX86_BUILTIN_EXPANDPD512,
IX86_BUILTIN_EXPANDPD512Z,
- IX86_BUILTIN_EXPANDPDLOAD512,
- IX86_BUILTIN_EXPANDPDLOAD512Z,
IX86_BUILTIN_EXPANDPS512,
IX86_BUILTIN_EXPANDPS512Z,
- IX86_BUILTIN_EXPANDPSLOAD512,
- IX86_BUILTIN_EXPANDPSLOAD512Z,
IX86_BUILTIN_EXTRACTF32X4,
IX86_BUILTIN_EXTRACTF64X4,
IX86_BUILTIN_EXTRACTI32X4,
IX86_BUILTIN_EXTRACTI64X4,
- IX86_BUILTIN_FIXUPIMMPD512_MASK,
- IX86_BUILTIN_FIXUPIMMPD512_MASKZ,
- IX86_BUILTIN_FIXUPIMMPS512_MASK,
- IX86_BUILTIN_FIXUPIMMPS512_MASKZ,
- IX86_BUILTIN_FIXUPIMMSD128_MASK,
- IX86_BUILTIN_FIXUPIMMSD128_MASKZ,
- IX86_BUILTIN_FIXUPIMMSS128_MASK,
- IX86_BUILTIN_FIXUPIMMSS128_MASKZ,
- IX86_BUILTIN_GETEXPPD512,
- IX86_BUILTIN_GETEXPPS512,
- IX86_BUILTIN_GETEXPSD128,
- IX86_BUILTIN_GETEXPSS128,
- IX86_BUILTIN_GETMANTPD512,
- IX86_BUILTIN_GETMANTPS512,
- IX86_BUILTIN_GETMANTSD128,
- IX86_BUILTIN_GETMANTSS128,
IX86_BUILTIN_INSERTF32X4,
IX86_BUILTIN_INSERTF64X4,
IX86_BUILTIN_INSERTI32X4,
IX86_BUILTIN_INSERTI64X4,
- IX86_BUILTIN_LOADAPD512,
- IX86_BUILTIN_LOADAPS512,
- IX86_BUILTIN_LOADDQUDI512,
- IX86_BUILTIN_LOADDQUSI512,
- IX86_BUILTIN_LOADUPD512,
- IX86_BUILTIN_LOADUPS512,
- IX86_BUILTIN_MAXPD512,
- IX86_BUILTIN_MAXPS512,
- IX86_BUILTIN_MAXSD_ROUND,
- IX86_BUILTIN_MAXSS_ROUND,
- IX86_BUILTIN_MINPD512,
- IX86_BUILTIN_MINPS512,
- IX86_BUILTIN_MINSD_ROUND,
- IX86_BUILTIN_MINSS_ROUND,
IX86_BUILTIN_MOVAPD512,
IX86_BUILTIN_MOVAPS512,
IX86_BUILTIN_MOVDDUP512,
- IX86_BUILTIN_MOVDQA32LOAD512,
- IX86_BUILTIN_MOVDQA32STORE512,
IX86_BUILTIN_MOVDQA32_512,
- IX86_BUILTIN_MOVDQA64LOAD512,
- IX86_BUILTIN_MOVDQA64STORE512,
IX86_BUILTIN_MOVDQA64_512,
- IX86_BUILTIN_MOVNTDQ512,
- IX86_BUILTIN_MOVNTDQA512,
- IX86_BUILTIN_MOVNTPD512,
- IX86_BUILTIN_MOVNTPS512,
IX86_BUILTIN_MOVSHDUP512,
IX86_BUILTIN_MOVSLDUP512,
- IX86_BUILTIN_MULPD512,
- IX86_BUILTIN_MULPS512,
- IX86_BUILTIN_MULSD_ROUND,
- IX86_BUILTIN_MULSS_ROUND,
IX86_BUILTIN_PABSD512,
IX86_BUILTIN_PABSQ512,
IX86_BUILTIN_PADDD512,
@@ -31624,17 +31723,11 @@ enum ix86_builtins
IX86_BUILTIN_PCMPGTD512_MASK,
IX86_BUILTIN_PCMPGTQ512_MASK,
IX86_BUILTIN_PCOMPRESSD512,
- IX86_BUILTIN_PCOMPRESSDSTORE512,
IX86_BUILTIN_PCOMPRESSQ512,
- IX86_BUILTIN_PCOMPRESSQSTORE512,
IX86_BUILTIN_PEXPANDD512,
IX86_BUILTIN_PEXPANDD512Z,
- IX86_BUILTIN_PEXPANDDLOAD512,
- IX86_BUILTIN_PEXPANDDLOAD512Z,
IX86_BUILTIN_PEXPANDQ512,
IX86_BUILTIN_PEXPANDQ512Z,
- IX86_BUILTIN_PEXPANDQLOAD512,
- IX86_BUILTIN_PEXPANDQLOAD512Z,
IX86_BUILTIN_PMAXSD512,
IX86_BUILTIN_PMAXSQ512,
IX86_BUILTIN_PMAXUD512,
@@ -31644,40 +31737,25 @@ enum ix86_builtins
IX86_BUILTIN_PMINUD512,
IX86_BUILTIN_PMINUQ512,
IX86_BUILTIN_PMOVDB512,
- IX86_BUILTIN_PMOVDB512_MEM,
IX86_BUILTIN_PMOVDW512,
- IX86_BUILTIN_PMOVDW512_MEM,
IX86_BUILTIN_PMOVQB512,
- IX86_BUILTIN_PMOVQB512_MEM,
IX86_BUILTIN_PMOVQD512,
- IX86_BUILTIN_PMOVQD512_MEM,
IX86_BUILTIN_PMOVQW512,
- IX86_BUILTIN_PMOVQW512_MEM,
IX86_BUILTIN_PMOVSDB512,
- IX86_BUILTIN_PMOVSDB512_MEM,
IX86_BUILTIN_PMOVSDW512,
- IX86_BUILTIN_PMOVSDW512_MEM,
IX86_BUILTIN_PMOVSQB512,
- IX86_BUILTIN_PMOVSQB512_MEM,
IX86_BUILTIN_PMOVSQD512,
- IX86_BUILTIN_PMOVSQD512_MEM,
IX86_BUILTIN_PMOVSQW512,
- IX86_BUILTIN_PMOVSQW512_MEM,
IX86_BUILTIN_PMOVSXBD512,
IX86_BUILTIN_PMOVSXBQ512,
IX86_BUILTIN_PMOVSXDQ512,
IX86_BUILTIN_PMOVSXWD512,
IX86_BUILTIN_PMOVSXWQ512,
IX86_BUILTIN_PMOVUSDB512,
- IX86_BUILTIN_PMOVUSDB512_MEM,
IX86_BUILTIN_PMOVUSDW512,
- IX86_BUILTIN_PMOVUSDW512_MEM,
IX86_BUILTIN_PMOVUSQB512,
- IX86_BUILTIN_PMOVUSQB512_MEM,
IX86_BUILTIN_PMOVUSQD512,
- IX86_BUILTIN_PMOVUSQD512_MEM,
IX86_BUILTIN_PMOVUSQW512,
- IX86_BUILTIN_PMOVUSQW512_MEM,
IX86_BUILTIN_PMOVZXBD512,
IX86_BUILTIN_PMOVZXBQ512,
IX86_BUILTIN_PMOVZXDQ512,
@@ -31731,88 +31809,22 @@ enum ix86_builtins
IX86_BUILTIN_RCP14PS512,
IX86_BUILTIN_RCP14SD,
IX86_BUILTIN_RCP14SS,
- IX86_BUILTIN_RNDSCALEPD,
- IX86_BUILTIN_RNDSCALEPS,
- IX86_BUILTIN_RNDSCALESD,
- IX86_BUILTIN_RNDSCALESS,
IX86_BUILTIN_RSQRT14PD512,
IX86_BUILTIN_RSQRT14PS512,
IX86_BUILTIN_RSQRT14SD,
IX86_BUILTIN_RSQRT14SS,
- IX86_BUILTIN_SCALEFPD512,
- IX86_BUILTIN_SCALEFPS512,
- IX86_BUILTIN_SCALEFSD,
- IX86_BUILTIN_SCALEFSS,
IX86_BUILTIN_SHUFPD512,
IX86_BUILTIN_SHUFPS512,
IX86_BUILTIN_SHUF_F32x4,
IX86_BUILTIN_SHUF_F64x2,
IX86_BUILTIN_SHUF_I32x4,
IX86_BUILTIN_SHUF_I64x2,
- IX86_BUILTIN_SQRTPD512,
- IX86_BUILTIN_SQRTPD512_MASK,
- IX86_BUILTIN_SQRTPS512_MASK,
- IX86_BUILTIN_SQRTPS_NR512,
- IX86_BUILTIN_SQRTSD_ROUND,
- IX86_BUILTIN_SQRTSS_ROUND,
- IX86_BUILTIN_STOREAPD512,
- IX86_BUILTIN_STOREAPS512,
- IX86_BUILTIN_STOREDQUDI512,
- IX86_BUILTIN_STOREDQUSI512,
- IX86_BUILTIN_STOREUPD512,
- IX86_BUILTIN_STOREUPS512,
- IX86_BUILTIN_SUBPD512,
- IX86_BUILTIN_SUBPS512,
- IX86_BUILTIN_SUBSD_ROUND,
- IX86_BUILTIN_SUBSS_ROUND,
IX86_BUILTIN_UCMPD512,
IX86_BUILTIN_UCMPQ512,
IX86_BUILTIN_UNPCKHPD512,
IX86_BUILTIN_UNPCKHPS512,
IX86_BUILTIN_UNPCKLPD512,
IX86_BUILTIN_UNPCKLPS512,
- IX86_BUILTIN_VCVTSD2SI32,
- IX86_BUILTIN_VCVTSD2SI64,
- IX86_BUILTIN_VCVTSD2USI32,
- IX86_BUILTIN_VCVTSD2USI64,
- IX86_BUILTIN_VCVTSS2SI32,
- IX86_BUILTIN_VCVTSS2SI64,
- IX86_BUILTIN_VCVTSS2USI32,
- IX86_BUILTIN_VCVTSS2USI64,
- IX86_BUILTIN_VCVTTSD2SI32,
- IX86_BUILTIN_VCVTTSD2SI64,
- IX86_BUILTIN_VCVTTSD2USI32,
- IX86_BUILTIN_VCVTTSD2USI64,
- IX86_BUILTIN_VCVTTSS2SI32,
- IX86_BUILTIN_VCVTTSS2SI64,
- IX86_BUILTIN_VCVTTSS2USI32,
- IX86_BUILTIN_VCVTTSS2USI64,
- IX86_BUILTIN_VFMADDPD512_MASK,
- IX86_BUILTIN_VFMADDPD512_MASK3,
- IX86_BUILTIN_VFMADDPD512_MASKZ,
- IX86_BUILTIN_VFMADDPS512_MASK,
- IX86_BUILTIN_VFMADDPS512_MASK3,
- IX86_BUILTIN_VFMADDPS512_MASKZ,
- IX86_BUILTIN_VFMADDSD3_ROUND,
- IX86_BUILTIN_VFMADDSS3_ROUND,
- IX86_BUILTIN_VFMADDSUBPD512_MASK,
- IX86_BUILTIN_VFMADDSUBPD512_MASK3,
- IX86_BUILTIN_VFMADDSUBPD512_MASKZ,
- IX86_BUILTIN_VFMADDSUBPS512_MASK,
- IX86_BUILTIN_VFMADDSUBPS512_MASK3,
- IX86_BUILTIN_VFMADDSUBPS512_MASKZ,
- IX86_BUILTIN_VFMSUBADDPD512_MASK3,
- IX86_BUILTIN_VFMSUBADDPS512_MASK3,
- IX86_BUILTIN_VFMSUBPD512_MASK3,
- IX86_BUILTIN_VFMSUBPS512_MASK3,
- IX86_BUILTIN_VFMSUBSD3_MASK3,
- IX86_BUILTIN_VFMSUBSS3_MASK3,
- IX86_BUILTIN_VFNMADDPD512_MASK,
- IX86_BUILTIN_VFNMADDPS512_MASK,
- IX86_BUILTIN_VFNMSUBPD512_MASK,
- IX86_BUILTIN_VFNMSUBPD512_MASK3,
- IX86_BUILTIN_VFNMSUBPS512_MASK,
- IX86_BUILTIN_VFNMSUBPS512_MASK3,
IX86_BUILTIN_VPCLZCNTD512,
IX86_BUILTIN_VPCLZCNTQ512,
IX86_BUILTIN_VPCONFLICTD512,
@@ -31843,8 +31855,25 @@ enum ix86_builtins
IX86_BUILTIN_VTERNLOGD512_MASKZ,
IX86_BUILTIN_VTERNLOGQ512_MASK,
IX86_BUILTIN_VTERNLOGQ512_MASKZ,
-
- /* Mask arithmetic operations */
+ IX86_BUILTIN_CPYSGNPS512,
+ IX86_BUILTIN_CPYSGNPD512,
+ IX86_BUILTIN_SQRTPD512,
+ IX86_BUILTIN_SQRTPS_NR512,
+ IX86_BUILTIN_EXP2PS,
+ IX86_BUILTIN_FLOORPS512,
+ IX86_BUILTIN_CEILPS512,
+ IX86_BUILTIN_TRUNCPS512,
+ IX86_BUILTIN_FLOORPD512,
+ IX86_BUILTIN_CEILPD512,
+ IX86_BUILTIN_TRUNCPD512,
+ IX86_BUILTIN_CVTPS2DQ512,
+ IX86_BUILTIN_VEC_PACK_SFIX512,
+ IX86_BUILTIN_ROUNDPS_AZ_SFIX512,
+ IX86_BUILTIN_FLOORPS_SFIX512,
+ IX86_BUILTIN_CEILPS_SFIX512,
+ IX86_BUILTIN_ROUNDPD_AZ_VEC_PACK_SFIX512,
+ IX86_BUILTIN_FLOORPD_VEC_PACK_SFIX512,
+ IX86_BUILTIN_CEILPD_VEC_PACK_SFIX512,
IX86_BUILTIN_KAND16,
IX86_BUILTIN_KANDN16,
IX86_BUILTIN_KNOT16,
@@ -31855,102 +31884,13 @@ enum ix86_builtins
IX86_BUILTIN_KXNOR16,
IX86_BUILTIN_KXOR16,
IX86_BUILTIN_KMOV16,
-
- /* AVX512VL. */
- IX86_BUILTIN_PMOVUSQD256_MEM,
- IX86_BUILTIN_PMOVUSQD128_MEM,
- IX86_BUILTIN_PMOVSQD256_MEM,
- IX86_BUILTIN_PMOVSQD128_MEM,
- IX86_BUILTIN_PMOVQD256_MEM,
- IX86_BUILTIN_PMOVQD128_MEM,
- IX86_BUILTIN_PMOVUSQW256_MEM,
- IX86_BUILTIN_PMOVUSQW128_MEM,
- IX86_BUILTIN_PMOVSQW256_MEM,
- IX86_BUILTIN_PMOVSQW128_MEM,
- IX86_BUILTIN_PMOVQW256_MEM,
- IX86_BUILTIN_PMOVQW128_MEM,
- IX86_BUILTIN_PMOVUSQB256_MEM,
- IX86_BUILTIN_PMOVUSQB128_MEM,
- IX86_BUILTIN_PMOVSQB256_MEM,
- IX86_BUILTIN_PMOVSQB128_MEM,
- IX86_BUILTIN_PMOVQB256_MEM,
- IX86_BUILTIN_PMOVQB128_MEM,
- IX86_BUILTIN_PMOVUSDW256_MEM,
- IX86_BUILTIN_PMOVUSDW128_MEM,
- IX86_BUILTIN_PMOVSDW256_MEM,
- IX86_BUILTIN_PMOVSDW128_MEM,
- IX86_BUILTIN_PMOVDW256_MEM,
- IX86_BUILTIN_PMOVDW128_MEM,
- IX86_BUILTIN_PMOVUSDB256_MEM,
- IX86_BUILTIN_PMOVUSDB128_MEM,
- IX86_BUILTIN_PMOVSDB256_MEM,
- IX86_BUILTIN_PMOVSDB128_MEM,
- IX86_BUILTIN_PMOVDB256_MEM,
- IX86_BUILTIN_PMOVDB128_MEM,
- IX86_BUILTIN_MOVDQA64LOAD256_MASK,
- IX86_BUILTIN_MOVDQA64LOAD128_MASK,
- IX86_BUILTIN_MOVDQA32LOAD256_MASK,
- IX86_BUILTIN_MOVDQA32LOAD128_MASK,
- IX86_BUILTIN_MOVDQA64STORE256_MASK,
- IX86_BUILTIN_MOVDQA64STORE128_MASK,
- IX86_BUILTIN_MOVDQA32STORE256_MASK,
- IX86_BUILTIN_MOVDQA32STORE128_MASK,
- IX86_BUILTIN_LOADAPD256_MASK,
- IX86_BUILTIN_LOADAPD128_MASK,
- IX86_BUILTIN_LOADAPS256_MASK,
- IX86_BUILTIN_LOADAPS128_MASK,
- IX86_BUILTIN_STOREAPD256_MASK,
- IX86_BUILTIN_STOREAPD128_MASK,
- IX86_BUILTIN_STOREAPS256_MASK,
- IX86_BUILTIN_STOREAPS128_MASK,
- IX86_BUILTIN_LOADUPD256_MASK,
- IX86_BUILTIN_LOADUPD128_MASK,
- IX86_BUILTIN_LOADUPS256_MASK,
- IX86_BUILTIN_LOADUPS128_MASK,
- IX86_BUILTIN_STOREUPD256_MASK,
- IX86_BUILTIN_STOREUPD128_MASK,
- IX86_BUILTIN_STOREUPS256_MASK,
- IX86_BUILTIN_STOREUPS128_MASK,
- IX86_BUILTIN_LOADDQUDI256_MASK,
- IX86_BUILTIN_LOADDQUDI128_MASK,
- IX86_BUILTIN_LOADDQUSI256_MASK,
- IX86_BUILTIN_LOADDQUSI128_MASK,
- IX86_BUILTIN_LOADDQUHI256_MASK,
- IX86_BUILTIN_LOADDQUHI128_MASK,
- IX86_BUILTIN_LOADDQUQI256_MASK,
- IX86_BUILTIN_LOADDQUQI128_MASK,
- IX86_BUILTIN_STOREDQUDI256_MASK,
- IX86_BUILTIN_STOREDQUDI128_MASK,
- IX86_BUILTIN_STOREDQUSI256_MASK,
- IX86_BUILTIN_STOREDQUSI128_MASK,
- IX86_BUILTIN_STOREDQUHI256_MASK,
- IX86_BUILTIN_STOREDQUHI128_MASK,
- IX86_BUILTIN_STOREDQUQI256_MASK,
- IX86_BUILTIN_STOREDQUQI128_MASK,
- IX86_BUILTIN_COMPRESSPDSTORE256,
- IX86_BUILTIN_COMPRESSPDSTORE128,
- IX86_BUILTIN_COMPRESSPSSTORE256,
- IX86_BUILTIN_COMPRESSPSSTORE128,
- IX86_BUILTIN_PCOMPRESSQSTORE256,
- IX86_BUILTIN_PCOMPRESSQSTORE128,
- IX86_BUILTIN_PCOMPRESSDSTORE256,
- IX86_BUILTIN_PCOMPRESSDSTORE128,
- IX86_BUILTIN_EXPANDPDLOAD256,
- IX86_BUILTIN_EXPANDPDLOAD128,
- IX86_BUILTIN_EXPANDPSLOAD256,
- IX86_BUILTIN_EXPANDPSLOAD128,
- IX86_BUILTIN_PEXPANDQLOAD256,
- IX86_BUILTIN_PEXPANDQLOAD128,
- IX86_BUILTIN_PEXPANDDLOAD256,
- IX86_BUILTIN_PEXPANDDLOAD128,
- IX86_BUILTIN_EXPANDPDLOAD256Z,
- IX86_BUILTIN_EXPANDPDLOAD128Z,
- IX86_BUILTIN_EXPANDPSLOAD256Z,
- IX86_BUILTIN_EXPANDPSLOAD128Z,
- IX86_BUILTIN_PEXPANDQLOAD256Z,
- IX86_BUILTIN_PEXPANDQLOAD128Z,
- IX86_BUILTIN_PEXPANDDLOAD256Z,
- IX86_BUILTIN_PEXPANDDLOAD128Z,
+ IX86_BUILTIN_SHA1MSG1,
+ IX86_BUILTIN_SHA1MSG2,
+ IX86_BUILTIN_SHA1NEXTE,
+ IX86_BUILTIN_SHA1RNDS4,
+ IX86_BUILTIN_SHA256MSG1,
+ IX86_BUILTIN_SHA256MSG2,
+ IX86_BUILTIN_SHA256RNDS2,
IX86_BUILTIN_PALIGNR256_MASK,
IX86_BUILTIN_PALIGNR128_MASK,
IX86_BUILTIN_MOVDQA64_256_MASK,
@@ -32231,7 +32171,7 @@ enum ix86_builtins
IX86_BUILTIN_PSLLW128_MASK,
IX86_BUILTIN_PSLLD128_MASK,
IX86_BUILTIN_PSLLQ128_MASK,
- IX86_BUILTIN_PSLLWI256_MASK ,
+ IX86_BUILTIN_PSLLWI256_MASK,
IX86_BUILTIN_PSLLW256_MASK,
IX86_BUILTIN_PSLLDI256_MASK,
IX86_BUILTIN_PSLLD256_MASK,
@@ -32663,45 +32603,6 @@ enum ix86_builtins
IX86_BUILTIN_UCMPW128,
IX86_BUILTIN_CMPPD128_MASK,
IX86_BUILTIN_CMPPS128_MASK,
-
- IX86_BUILTIN_GATHER3SIV8SF,
- IX86_BUILTIN_GATHER3SIV4SF,
- IX86_BUILTIN_GATHER3SIV4DF,
- IX86_BUILTIN_GATHER3SIV2DF,
- IX86_BUILTIN_GATHER3DIV8SF,
- IX86_BUILTIN_GATHER3DIV4SF,
- IX86_BUILTIN_GATHER3DIV4DF,
- IX86_BUILTIN_GATHER3DIV2DF,
- IX86_BUILTIN_GATHER3SIV8SI,
- IX86_BUILTIN_GATHER3SIV4SI,
- IX86_BUILTIN_GATHER3SIV4DI,
- IX86_BUILTIN_GATHER3SIV2DI,
- IX86_BUILTIN_GATHER3DIV8SI,
- IX86_BUILTIN_GATHER3DIV4SI,
- IX86_BUILTIN_GATHER3DIV4DI,
- IX86_BUILTIN_GATHER3DIV2DI,
- IX86_BUILTIN_SCATTERSIV8SF,
- IX86_BUILTIN_SCATTERSIV4SF,
- IX86_BUILTIN_SCATTERSIV4DF,
- IX86_BUILTIN_SCATTERSIV2DF,
- IX86_BUILTIN_SCATTERDIV8SF,
- IX86_BUILTIN_SCATTERDIV4SF,
- IX86_BUILTIN_SCATTERDIV4DF,
- IX86_BUILTIN_SCATTERDIV2DF,
- IX86_BUILTIN_SCATTERSIV8SI,
- IX86_BUILTIN_SCATTERSIV4SI,
- IX86_BUILTIN_SCATTERSIV4DI,
- IX86_BUILTIN_SCATTERSIV2DI,
- IX86_BUILTIN_SCATTERDIV8SI,
- IX86_BUILTIN_SCATTERDIV4SI,
- IX86_BUILTIN_SCATTERDIV4DI,
- IX86_BUILTIN_SCATTERDIV2DI,
-
- /* AVX512DQ. */
- IX86_BUILTIN_RANGESD128,
- IX86_BUILTIN_RANGESS128,
- IX86_BUILTIN_KUNPCKWD,
- IX86_BUILTIN_KUNPCKDQ,
IX86_BUILTIN_BROADCASTF32x2_512,
IX86_BUILTIN_BROADCASTI32x2_512,
IX86_BUILTIN_BROADCASTF64X2_512,
@@ -32733,30 +32634,12 @@ enum ix86_builtins
IX86_BUILTIN_CVTQ2MASK512,
IX86_BUILTIN_CVTMASK2D512,
IX86_BUILTIN_CVTMASK2Q512,
- IX86_BUILTIN_CVTPD2QQ512,
- IX86_BUILTIN_CVTPS2QQ512,
- IX86_BUILTIN_CVTPD2UQQ512,
- IX86_BUILTIN_CVTPS2UQQ512,
- IX86_BUILTIN_CVTQQ2PS512,
- IX86_BUILTIN_CVTUQQ2PS512,
- IX86_BUILTIN_CVTQQ2PD512,
- IX86_BUILTIN_CVTUQQ2PD512,
- IX86_BUILTIN_CVTTPS2QQ512,
- IX86_BUILTIN_CVTTPS2UQQ512,
- IX86_BUILTIN_CVTTPD2QQ512,
- IX86_BUILTIN_CVTTPD2UQQ512,
- IX86_BUILTIN_RANGEPS512,
- IX86_BUILTIN_RANGEPD512,
-
- /* AVX512BW. */
+ IX86_BUILTIN_KUNPCKWD,
+ IX86_BUILTIN_KUNPCKDQ,
IX86_BUILTIN_PACKUSDW512,
- IX86_BUILTIN_PACKSSDW512,
- IX86_BUILTIN_LOADDQUHI512_MASK,
- IX86_BUILTIN_LOADDQUQI512_MASK,
IX86_BUILTIN_PSLLDQ512,
IX86_BUILTIN_PSRLDQ512,
- IX86_BUILTIN_STOREDQUHI512_MASK,
- IX86_BUILTIN_STOREDQUQI512_MASK,
+ IX86_BUILTIN_PACKSSDW512,
IX86_BUILTIN_PALIGNR512,
IX86_BUILTIN_PALIGNR512_MASK,
IX86_BUILTIN_MOVDQUHI512_MASK,
@@ -32842,80 +32725,18 @@ enum ix86_builtins
IX86_BUILTIN_CMPW512,
IX86_BUILTIN_UCMPB512,
IX86_BUILTIN_UCMPW512,
-
- /* Alternate 4 and 8 element gather/scatter for the vectorizer
- where all operands are 32-byte or 64-byte wide respectively. */
- IX86_BUILTIN_GATHERALTSIV4DF,
- IX86_BUILTIN_GATHERALTDIV8SF,
- IX86_BUILTIN_GATHERALTSIV4DI,
- IX86_BUILTIN_GATHERALTDIV8SI,
- IX86_BUILTIN_GATHER3ALTDIV16SF,
- IX86_BUILTIN_GATHER3ALTDIV16SI,
- IX86_BUILTIN_GATHER3ALTSIV4DF,
- IX86_BUILTIN_GATHER3ALTDIV8SF,
- IX86_BUILTIN_GATHER3ALTSIV4DI,
- IX86_BUILTIN_GATHER3ALTDIV8SI,
- IX86_BUILTIN_GATHER3ALTSIV8DF,
- IX86_BUILTIN_GATHER3ALTSIV8DI,
- IX86_BUILTIN_GATHER3DIV16SF,
- IX86_BUILTIN_GATHER3DIV16SI,
- IX86_BUILTIN_GATHER3DIV8DF,
- IX86_BUILTIN_GATHER3DIV8DI,
- IX86_BUILTIN_GATHER3SIV16SF,
- IX86_BUILTIN_GATHER3SIV16SI,
- IX86_BUILTIN_GATHER3SIV8DF,
- IX86_BUILTIN_GATHER3SIV8DI,
- IX86_BUILTIN_SCATTERALTSIV8DF,
- IX86_BUILTIN_SCATTERALTDIV16SF,
- IX86_BUILTIN_SCATTERALTSIV8DI,
- IX86_BUILTIN_SCATTERALTDIV16SI,
- IX86_BUILTIN_SCATTERDIV16SF,
- IX86_BUILTIN_SCATTERDIV16SI,
- IX86_BUILTIN_SCATTERDIV8DF,
- IX86_BUILTIN_SCATTERDIV8DI,
- IX86_BUILTIN_SCATTERSIV16SF,
- IX86_BUILTIN_SCATTERSIV16SI,
- IX86_BUILTIN_SCATTERSIV8DF,
- IX86_BUILTIN_SCATTERSIV8DI,
-
- /* AVX512PF */
- IX86_BUILTIN_GATHERPFQPD,
- IX86_BUILTIN_GATHERPFDPS,
- IX86_BUILTIN_GATHERPFDPD,
- IX86_BUILTIN_GATHERPFQPS,
- IX86_BUILTIN_SCATTERPFDPD,
- IX86_BUILTIN_SCATTERPFDPS,
- IX86_BUILTIN_SCATTERPFQPD,
- IX86_BUILTIN_SCATTERPFQPS,
-
- /* AVX-512ER */
- IX86_BUILTIN_EXP2PD_MASK,
- IX86_BUILTIN_EXP2PS_MASK,
- IX86_BUILTIN_EXP2PS,
- IX86_BUILTIN_RCP28PD,
- IX86_BUILTIN_RCP28PS,
- IX86_BUILTIN_RCP28SD,
- IX86_BUILTIN_RCP28SS,
- IX86_BUILTIN_RSQRT28PD,
- IX86_BUILTIN_RSQRT28PS,
- IX86_BUILTIN_RSQRT28SD,
- IX86_BUILTIN_RSQRT28SS,
-
- /* AVX-512IFMA */
IX86_BUILTIN_VPMADD52LUQ512,
- IX86_BUILTIN_VPMADD52HUQ512,
- IX86_BUILTIN_VPMADD52LUQ256,
- IX86_BUILTIN_VPMADD52HUQ256,
- IX86_BUILTIN_VPMADD52LUQ128,
- IX86_BUILTIN_VPMADD52HUQ128,
IX86_BUILTIN_VPMADD52LUQ512_MASKZ,
+ IX86_BUILTIN_VPMADD52HUQ512,
IX86_BUILTIN_VPMADD52HUQ512_MASKZ,
+ IX86_BUILTIN_VPMADD52LUQ256,
IX86_BUILTIN_VPMADD52LUQ256_MASKZ,
+ IX86_BUILTIN_VPMADD52HUQ256,
IX86_BUILTIN_VPMADD52HUQ256_MASKZ,
+ IX86_BUILTIN_VPMADD52LUQ128,
IX86_BUILTIN_VPMADD52LUQ128_MASKZ,
+ IX86_BUILTIN_VPMADD52HUQ128,
IX86_BUILTIN_VPMADD52HUQ128_MASKZ,
-
- /* AVX-512VBMI */
IX86_BUILTIN_VPMULTISHIFTQB512,
IX86_BUILTIN_VPMULTISHIFTQB256,
IX86_BUILTIN_VPMULTISHIFTQB128,
@@ -32931,59 +32752,181 @@ enum ix86_builtins
IX86_BUILTIN_VPERMT2VARQI128_MASKZ,
IX86_BUILTIN_VPERMI2VARQI256,
IX86_BUILTIN_VPERMI2VARQI128,
+ IX86_BUILTIN__BDESC_ARGS_LAST = IX86_BUILTIN_VPERMI2VARQI128,
- /* SHA builtins. */
- IX86_BUILTIN_SHA1MSG1,
- IX86_BUILTIN_SHA1MSG2,
- IX86_BUILTIN_SHA1NEXTE,
- IX86_BUILTIN_SHA1RNDS4,
- IX86_BUILTIN_SHA256MSG1,
- IX86_BUILTIN_SHA256MSG2,
- IX86_BUILTIN_SHA256RNDS2,
-
- /* CLWB instructions. */
- IX86_BUILTIN_CLWB,
-
- /* PCOMMIT instructions. */
- IX86_BUILTIN_PCOMMIT,
-
- /* CLFLUSHOPT instructions. */
- IX86_BUILTIN_CLFLUSHOPT,
-
- /* TFmode support builtins. */
- IX86_BUILTIN_INFQ,
- IX86_BUILTIN_HUGE_VALQ,
- IX86_BUILTIN_NANQ,
- IX86_BUILTIN_NANSQ,
- IX86_BUILTIN_FABSQ,
- IX86_BUILTIN_COPYSIGNQ,
+ /* Builtins with rounding support. */
+ IX86_BUILTIN__BDESC_ROUND_ARGS_FIRST,
+ IX86_BUILTIN_ADDPD512 = IX86_BUILTIN__BDESC_ROUND_ARGS_FIRST,
+ IX86_BUILTIN_ADDPS512,
+ IX86_BUILTIN_ADDSD_ROUND,
+ IX86_BUILTIN_ADDSS_ROUND,
+ IX86_BUILTIN_CMPPD512,
+ IX86_BUILTIN_CMPPS512,
+ IX86_BUILTIN_CMPSD_MASK,
+ IX86_BUILTIN_CMPSS_MASK,
+ IX86_BUILTIN_COMIDF,
+ IX86_BUILTIN_COMISF,
+ IX86_BUILTIN_CVTDQ2PS512,
+ IX86_BUILTIN_CVTPD2DQ512,
+ IX86_BUILTIN_CVTPD2PS512,
+ IX86_BUILTIN_CVTPD2UDQ512,
+ IX86_BUILTIN_CVTPH2PS512,
+ IX86_BUILTIN_CVTPS2DQ512_MASK,
+ IX86_BUILTIN_CVTPS2PD512,
+ IX86_BUILTIN_CVTPS2UDQ512,
+ IX86_BUILTIN_CVTSD2SS_ROUND,
+ IX86_BUILTIN_CVTSI2SD64,
+ IX86_BUILTIN_CVTSI2SS32,
+ IX86_BUILTIN_CVTSI2SS64,
+ IX86_BUILTIN_CVTSS2SD_ROUND,
+ IX86_BUILTIN_CVTTPD2DQ512,
+ IX86_BUILTIN_CVTTPD2UDQ512,
+ IX86_BUILTIN_CVTTPS2DQ512,
+ IX86_BUILTIN_CVTTPS2UDQ512,
+ IX86_BUILTIN_CVTUDQ2PS512,
+ IX86_BUILTIN_CVTUSI2SD64,
+ IX86_BUILTIN_CVTUSI2SS32,
+ IX86_BUILTIN_CVTUSI2SS64,
+ IX86_BUILTIN_DIVPD512,
+ IX86_BUILTIN_DIVPS512,
+ IX86_BUILTIN_DIVSD_ROUND,
+ IX86_BUILTIN_DIVSS_ROUND,
+ IX86_BUILTIN_FIXUPIMMPD512_MASK,
+ IX86_BUILTIN_FIXUPIMMPD512_MASKZ,
+ IX86_BUILTIN_FIXUPIMMPS512_MASK,
+ IX86_BUILTIN_FIXUPIMMPS512_MASKZ,
+ IX86_BUILTIN_FIXUPIMMSD128_MASK,
+ IX86_BUILTIN_FIXUPIMMSD128_MASKZ,
+ IX86_BUILTIN_FIXUPIMMSS128_MASK,
+ IX86_BUILTIN_FIXUPIMMSS128_MASKZ,
+ IX86_BUILTIN_GETEXPPD512,
+ IX86_BUILTIN_GETEXPPS512,
+ IX86_BUILTIN_GETEXPSD128,
+ IX86_BUILTIN_GETEXPSS128,
+ IX86_BUILTIN_GETMANTPD512,
+ IX86_BUILTIN_GETMANTPS512,
+ IX86_BUILTIN_GETMANTSD128,
+ IX86_BUILTIN_GETMANTSS128,
+ IX86_BUILTIN_MAXPD512,
+ IX86_BUILTIN_MAXPS512,
+ IX86_BUILTIN_MAXSD_ROUND,
+ IX86_BUILTIN_MAXSS_ROUND,
+ IX86_BUILTIN_MINPD512,
+ IX86_BUILTIN_MINPS512,
+ IX86_BUILTIN_MINSD_ROUND,
+ IX86_BUILTIN_MINSS_ROUND,
+ IX86_BUILTIN_MULPD512,
+ IX86_BUILTIN_MULPS512,
+ IX86_BUILTIN_MULSD_ROUND,
+ IX86_BUILTIN_MULSS_ROUND,
+ IX86_BUILTIN_RNDSCALEPD,
+ IX86_BUILTIN_RNDSCALEPS,
+ IX86_BUILTIN_RNDSCALESD,
+ IX86_BUILTIN_RNDSCALESS,
+ IX86_BUILTIN_SCALEFPD512,
+ IX86_BUILTIN_SCALEFPS512,
+ IX86_BUILTIN_SCALEFSD,
+ IX86_BUILTIN_SCALEFSS,
+ IX86_BUILTIN_SQRTPD512_MASK,
+ IX86_BUILTIN_SQRTPS512_MASK,
+ IX86_BUILTIN_SQRTSD_ROUND,
+ IX86_BUILTIN_SQRTSS_ROUND,
+ IX86_BUILTIN_SUBPD512,
+ IX86_BUILTIN_SUBPS512,
+ IX86_BUILTIN_SUBSD_ROUND,
+ IX86_BUILTIN_SUBSS_ROUND,
+ IX86_BUILTIN_VCVTSD2SI32,
+ IX86_BUILTIN_VCVTSD2SI64,
+ IX86_BUILTIN_VCVTSD2USI32,
+ IX86_BUILTIN_VCVTSD2USI64,
+ IX86_BUILTIN_VCVTSS2SI32,
+ IX86_BUILTIN_VCVTSS2SI64,
+ IX86_BUILTIN_VCVTSS2USI32,
+ IX86_BUILTIN_VCVTSS2USI64,
+ IX86_BUILTIN_VCVTTSD2SI32,
+ IX86_BUILTIN_VCVTTSD2SI64,
+ IX86_BUILTIN_VCVTTSD2USI32,
+ IX86_BUILTIN_VCVTTSD2USI64,
+ IX86_BUILTIN_VCVTTSS2SI32,
+ IX86_BUILTIN_VCVTTSS2SI64,
+ IX86_BUILTIN_VCVTTSS2USI32,
+ IX86_BUILTIN_VCVTTSS2USI64,
+ IX86_BUILTIN_VFMADDPD512_MASK,
+ IX86_BUILTIN_VFMADDPD512_MASK3,
+ IX86_BUILTIN_VFMADDPD512_MASKZ,
+ IX86_BUILTIN_VFMADDPS512_MASK,
+ IX86_BUILTIN_VFMADDPS512_MASK3,
+ IX86_BUILTIN_VFMADDPS512_MASKZ,
+ IX86_BUILTIN_VFMADDSD3_ROUND,
+ IX86_BUILTIN_VFMADDSS3_ROUND,
+ IX86_BUILTIN_VFMADDSUBPD512_MASK,
+ IX86_BUILTIN_VFMADDSUBPD512_MASK3,
+ IX86_BUILTIN_VFMADDSUBPD512_MASKZ,
+ IX86_BUILTIN_VFMADDSUBPS512_MASK,
+ IX86_BUILTIN_VFMADDSUBPS512_MASK3,
+ IX86_BUILTIN_VFMADDSUBPS512_MASKZ,
+ IX86_BUILTIN_VFMSUBADDPD512_MASK3,
+ IX86_BUILTIN_VFMSUBADDPS512_MASK3,
+ IX86_BUILTIN_VFMSUBPD512_MASK3,
+ IX86_BUILTIN_VFMSUBPS512_MASK3,
+ IX86_BUILTIN_VFNMADDPD512_MASK,
+ IX86_BUILTIN_VFNMADDPS512_MASK,
+ IX86_BUILTIN_VFNMSUBPD512_MASK,
+ IX86_BUILTIN_VFNMSUBPD512_MASK3,
+ IX86_BUILTIN_VFNMSUBPS512_MASK,
+ IX86_BUILTIN_VFNMSUBPS512_MASK3,
+ IX86_BUILTIN_EXP2PD_MASK,
+ IX86_BUILTIN_EXP2PS_MASK,
+ IX86_BUILTIN_RCP28PD,
+ IX86_BUILTIN_RCP28PS,
+ IX86_BUILTIN_RCP28SD,
+ IX86_BUILTIN_RCP28SS,
+ IX86_BUILTIN_RSQRT28PD,
+ IX86_BUILTIN_RSQRT28PS,
+ IX86_BUILTIN_RSQRT28SD,
+ IX86_BUILTIN_RSQRT28SS,
+ IX86_BUILTIN_RANGESD128,
+ IX86_BUILTIN_RANGESS128,
+ IX86_BUILTIN_CVTPD2QQ512,
+ IX86_BUILTIN_CVTPS2QQ512,
+ IX86_BUILTIN_CVTPD2UQQ512,
+ IX86_BUILTIN_CVTPS2UQQ512,
+ IX86_BUILTIN_CVTQQ2PS512,
+ IX86_BUILTIN_CVTUQQ2PS512,
+ IX86_BUILTIN_CVTQQ2PD512,
+ IX86_BUILTIN_CVTUQQ2PD512,
+ IX86_BUILTIN_CVTTPS2QQ512,
+ IX86_BUILTIN_CVTTPS2UQQ512,
+ IX86_BUILTIN_CVTTPD2QQ512,
+ IX86_BUILTIN_CVTTPD2UQQ512,
+ IX86_BUILTIN_RANGEPS512,
+ IX86_BUILTIN_RANGEPD512,
+ IX86_BUILTIN__BDESC_ROUND_ARGS_LAST = IX86_BUILTIN_RANGEPD512,
- /* Vectorizer support builtins. */
- IX86_BUILTIN_CPYSGNPS,
- IX86_BUILTIN_CPYSGNPD,
- IX86_BUILTIN_CPYSGNPS256,
- IX86_BUILTIN_CPYSGNPS512,
- IX86_BUILTIN_CPYSGNPD256,
- IX86_BUILTIN_CPYSGNPD512,
- IX86_BUILTIN_FLOORPS512,
- IX86_BUILTIN_FLOORPD512,
- IX86_BUILTIN_CEILPS512,
- IX86_BUILTIN_CEILPD512,
- IX86_BUILTIN_TRUNCPS512,
- IX86_BUILTIN_TRUNCPD512,
- IX86_BUILTIN_CVTPS2DQ512,
- IX86_BUILTIN_VEC_PACK_SFIX512,
- IX86_BUILTIN_FLOORPS_SFIX512,
- IX86_BUILTIN_FLOORPD_VEC_PACK_SFIX512,
- IX86_BUILTIN_CEILPS_SFIX512,
- IX86_BUILTIN_CEILPD_VEC_PACK_SFIX512,
- IX86_BUILTIN_ROUNDPS_AZ_SFIX512,
- IX86_BUILTIN_ROUNDPD_AZ_VEC_PACK_SFIX512,
+ /* Builtins for MPX. */
+ IX86_BUILTIN__BDESC_MPX_FIRST,
+ IX86_BUILTIN_BNDSTX = IX86_BUILTIN__BDESC_MPX_FIRST,
+ IX86_BUILTIN_BNDCL,
+ IX86_BUILTIN_BNDCU,
+ IX86_BUILTIN__BDESC_MPX_LAST = IX86_BUILTIN_BNDCU,
+ /* Const builtins for MPX. */
+ IX86_BUILTIN__BDESC_MPX_CONST_FIRST,
+ IX86_BUILTIN_BNDMK = IX86_BUILTIN__BDESC_MPX_CONST_FIRST,
+ IX86_BUILTIN_BNDLDX,
+ IX86_BUILTIN_BNDNARROW,
+ IX86_BUILTIN_BNDINT,
+ IX86_BUILTIN_SIZEOF,
+ IX86_BUILTIN_BNDLOWER,
+ IX86_BUILTIN_BNDUPPER,
+ IX86_BUILTIN_BNDRET,
+ IX86_BUILTIN__BDESC_MPX_CONST_LAST = IX86_BUILTIN_BNDRET,
- /* FMA4 instructions. */
- IX86_BUILTIN_VFMADDSS,
+ IX86_BUILTIN__BDESC_MULTI_ARG_FIRST,
+ IX86_BUILTIN_VFMADDSS = IX86_BUILTIN__BDESC_MULTI_ARG_FIRST,
IX86_BUILTIN_VFMADDSD,
+ IX86_BUILTIN_VFMADDSS3,
+ IX86_BUILTIN_VFMADDSD3,
IX86_BUILTIN_VFMADDPS,
IX86_BUILTIN_VFMADDPD,
IX86_BUILTIN_VFMADDPS256,
@@ -32992,29 +32935,21 @@ enum ix86_builtins
IX86_BUILTIN_VFMADDSUBPD,
IX86_BUILTIN_VFMADDSUBPS256,
IX86_BUILTIN_VFMADDSUBPD256,
-
- /* FMA3 instructions. */
- IX86_BUILTIN_VFMADDSS3,
- IX86_BUILTIN_VFMADDSD3,
-
- /* XOP instructions. */
IX86_BUILTIN_VPCMOV,
IX86_BUILTIN_VPCMOV_V2DI,
IX86_BUILTIN_VPCMOV_V4SI,
IX86_BUILTIN_VPCMOV_V8HI,
IX86_BUILTIN_VPCMOV_V16QI,
- IX86_BUILTIN_VPCMOV_V4SF,
IX86_BUILTIN_VPCMOV_V2DF,
+ IX86_BUILTIN_VPCMOV_V4SF,
IX86_BUILTIN_VPCMOV256,
IX86_BUILTIN_VPCMOV_V4DI256,
IX86_BUILTIN_VPCMOV_V8SI256,
IX86_BUILTIN_VPCMOV_V16HI256,
IX86_BUILTIN_VPCMOV_V32QI256,
- IX86_BUILTIN_VPCMOV_V8SF256,
IX86_BUILTIN_VPCMOV_V4DF256,
-
+ IX86_BUILTIN_VPCMOV_V8SF256,
IX86_BUILTIN_VPPERM,
-
IX86_BUILTIN_VPMACSSWW,
IX86_BUILTIN_VPMACSWW,
IX86_BUILTIN_VPMACSSWD,
@@ -33027,7 +32962,28 @@ enum ix86_builtins
IX86_BUILTIN_VPMACSDQH,
IX86_BUILTIN_VPMADCSSWD,
IX86_BUILTIN_VPMADCSWD,
-
+ IX86_BUILTIN_VPROTQ,
+ IX86_BUILTIN_VPROTD,
+ IX86_BUILTIN_VPROTW,
+ IX86_BUILTIN_VPROTB,
+ IX86_BUILTIN_VPROTQ_IMM,
+ IX86_BUILTIN_VPROTD_IMM,
+ IX86_BUILTIN_VPROTW_IMM,
+ IX86_BUILTIN_VPROTB_IMM,
+ IX86_BUILTIN_VPSHAQ,
+ IX86_BUILTIN_VPSHAD,
+ IX86_BUILTIN_VPSHAW,
+ IX86_BUILTIN_VPSHAB,
+ IX86_BUILTIN_VPSHLQ,
+ IX86_BUILTIN_VPSHLD,
+ IX86_BUILTIN_VPSHLW,
+ IX86_BUILTIN_VPSHLB,
+ IX86_BUILTIN_VFRCZSS,
+ IX86_BUILTIN_VFRCZSD,
+ IX86_BUILTIN_VFRCZPS,
+ IX86_BUILTIN_VFRCZPD,
+ IX86_BUILTIN_VFRCZPS256,
+ IX86_BUILTIN_VFRCZPD256,
IX86_BUILTIN_VPHADDBW,
IX86_BUILTIN_VPHADDBD,
IX86_BUILTIN_VPHADDBQ,
@@ -33043,203 +32999,75 @@ enum ix86_builtins
IX86_BUILTIN_VPHSUBBW,
IX86_BUILTIN_VPHSUBWD,
IX86_BUILTIN_VPHSUBDQ,
-
- IX86_BUILTIN_VPROTB,
- IX86_BUILTIN_VPROTW,
- IX86_BUILTIN_VPROTD,
- IX86_BUILTIN_VPROTQ,
- IX86_BUILTIN_VPROTB_IMM,
- IX86_BUILTIN_VPROTW_IMM,
- IX86_BUILTIN_VPROTD_IMM,
- IX86_BUILTIN_VPROTQ_IMM,
-
- IX86_BUILTIN_VPSHLB,
- IX86_BUILTIN_VPSHLW,
- IX86_BUILTIN_VPSHLD,
- IX86_BUILTIN_VPSHLQ,
- IX86_BUILTIN_VPSHAB,
- IX86_BUILTIN_VPSHAW,
- IX86_BUILTIN_VPSHAD,
- IX86_BUILTIN_VPSHAQ,
-
- IX86_BUILTIN_VFRCZSS,
- IX86_BUILTIN_VFRCZSD,
- IX86_BUILTIN_VFRCZPS,
- IX86_BUILTIN_VFRCZPD,
- IX86_BUILTIN_VFRCZPS256,
- IX86_BUILTIN_VFRCZPD256,
-
+ IX86_BUILTIN_VPCOMEQB,
+ IX86_BUILTIN_VPCOMNEB,
+ IX86_BUILTIN_VPCOMLTB,
+ IX86_BUILTIN_VPCOMLEB,
+ IX86_BUILTIN_VPCOMGTB,
+ IX86_BUILTIN_VPCOMGEB,
+ IX86_BUILTIN_VPCOMEQW,
+ IX86_BUILTIN_VPCOMNEW,
+ IX86_BUILTIN_VPCOMLTW,
+ IX86_BUILTIN_VPCOMLEW,
+ IX86_BUILTIN_VPCOMGTW,
+ IX86_BUILTIN_VPCOMGEW,
+ IX86_BUILTIN_VPCOMEQD,
+ IX86_BUILTIN_VPCOMNED,
+ IX86_BUILTIN_VPCOMLTD,
+ IX86_BUILTIN_VPCOMLED,
+ IX86_BUILTIN_VPCOMGTD,
+ IX86_BUILTIN_VPCOMGED,
+ IX86_BUILTIN_VPCOMEQQ,
+ IX86_BUILTIN_VPCOMNEQ,
+ IX86_BUILTIN_VPCOMLTQ,
+ IX86_BUILTIN_VPCOMLEQ,
+ IX86_BUILTIN_VPCOMGTQ,
+ IX86_BUILTIN_VPCOMGEQ,
IX86_BUILTIN_VPCOMEQUB,
IX86_BUILTIN_VPCOMNEUB,
IX86_BUILTIN_VPCOMLTUB,
IX86_BUILTIN_VPCOMLEUB,
IX86_BUILTIN_VPCOMGTUB,
IX86_BUILTIN_VPCOMGEUB,
- IX86_BUILTIN_VPCOMFALSEUB,
- IX86_BUILTIN_VPCOMTRUEUB,
-
IX86_BUILTIN_VPCOMEQUW,
IX86_BUILTIN_VPCOMNEUW,
IX86_BUILTIN_VPCOMLTUW,
IX86_BUILTIN_VPCOMLEUW,
IX86_BUILTIN_VPCOMGTUW,
IX86_BUILTIN_VPCOMGEUW,
- IX86_BUILTIN_VPCOMFALSEUW,
- IX86_BUILTIN_VPCOMTRUEUW,
-
IX86_BUILTIN_VPCOMEQUD,
IX86_BUILTIN_VPCOMNEUD,
IX86_BUILTIN_VPCOMLTUD,
IX86_BUILTIN_VPCOMLEUD,
IX86_BUILTIN_VPCOMGTUD,
IX86_BUILTIN_VPCOMGEUD,
- IX86_BUILTIN_VPCOMFALSEUD,
- IX86_BUILTIN_VPCOMTRUEUD,
-
IX86_BUILTIN_VPCOMEQUQ,
IX86_BUILTIN_VPCOMNEUQ,
IX86_BUILTIN_VPCOMLTUQ,
IX86_BUILTIN_VPCOMLEUQ,
IX86_BUILTIN_VPCOMGTUQ,
IX86_BUILTIN_VPCOMGEUQ,
- IX86_BUILTIN_VPCOMFALSEUQ,
- IX86_BUILTIN_VPCOMTRUEUQ,
-
- IX86_BUILTIN_VPCOMEQB,
- IX86_BUILTIN_VPCOMNEB,
- IX86_BUILTIN_VPCOMLTB,
- IX86_BUILTIN_VPCOMLEB,
- IX86_BUILTIN_VPCOMGTB,
- IX86_BUILTIN_VPCOMGEB,
IX86_BUILTIN_VPCOMFALSEB,
- IX86_BUILTIN_VPCOMTRUEB,
-
- IX86_BUILTIN_VPCOMEQW,
- IX86_BUILTIN_VPCOMNEW,
- IX86_BUILTIN_VPCOMLTW,
- IX86_BUILTIN_VPCOMLEW,
- IX86_BUILTIN_VPCOMGTW,
- IX86_BUILTIN_VPCOMGEW,
IX86_BUILTIN_VPCOMFALSEW,
- IX86_BUILTIN_VPCOMTRUEW,
-
- IX86_BUILTIN_VPCOMEQD,
- IX86_BUILTIN_VPCOMNED,
- IX86_BUILTIN_VPCOMLTD,
- IX86_BUILTIN_VPCOMLED,
- IX86_BUILTIN_VPCOMGTD,
- IX86_BUILTIN_VPCOMGED,
IX86_BUILTIN_VPCOMFALSED,
- IX86_BUILTIN_VPCOMTRUED,
-
- IX86_BUILTIN_VPCOMEQQ,
- IX86_BUILTIN_VPCOMNEQ,
- IX86_BUILTIN_VPCOMLTQ,
- IX86_BUILTIN_VPCOMLEQ,
- IX86_BUILTIN_VPCOMGTQ,
- IX86_BUILTIN_VPCOMGEQ,
IX86_BUILTIN_VPCOMFALSEQ,
+ IX86_BUILTIN_VPCOMFALSEUB,
+ IX86_BUILTIN_VPCOMFALSEUW,
+ IX86_BUILTIN_VPCOMFALSEUD,
+ IX86_BUILTIN_VPCOMFALSEUQ,
+ IX86_BUILTIN_VPCOMTRUEB,
+ IX86_BUILTIN_VPCOMTRUEW,
+ IX86_BUILTIN_VPCOMTRUED,
IX86_BUILTIN_VPCOMTRUEQ,
-
- /* LWP instructions. */
- IX86_BUILTIN_LLWPCB,
- IX86_BUILTIN_SLWPCB,
- IX86_BUILTIN_LWPVAL32,
- IX86_BUILTIN_LWPVAL64,
- IX86_BUILTIN_LWPINS32,
- IX86_BUILTIN_LWPINS64,
-
- IX86_BUILTIN_CLZS,
-
- /* RTM */
- IX86_BUILTIN_XBEGIN,
- IX86_BUILTIN_XEND,
- IX86_BUILTIN_XABORT,
- IX86_BUILTIN_XTEST,
-
- /* MPX */
- IX86_BUILTIN_BNDMK,
- IX86_BUILTIN_BNDSTX,
- IX86_BUILTIN_BNDLDX,
- IX86_BUILTIN_BNDCL,
- IX86_BUILTIN_BNDCU,
- IX86_BUILTIN_BNDRET,
- IX86_BUILTIN_BNDNARROW,
- IX86_BUILTIN_BNDINT,
- IX86_BUILTIN_SIZEOF,
- IX86_BUILTIN_BNDLOWER,
- IX86_BUILTIN_BNDUPPER,
-
- /* BMI instructions. */
- IX86_BUILTIN_BEXTR32,
- IX86_BUILTIN_BEXTR64,
- IX86_BUILTIN_CTZS,
-
- /* TBM instructions. */
- IX86_BUILTIN_BEXTRI32,
- IX86_BUILTIN_BEXTRI64,
-
- /* BMI2 instructions. */
- IX86_BUILTIN_BZHI32,
- IX86_BUILTIN_BZHI64,
- IX86_BUILTIN_PDEP32,
- IX86_BUILTIN_PDEP64,
- IX86_BUILTIN_PEXT32,
- IX86_BUILTIN_PEXT64,
-
- /* ADX instructions. */
- IX86_BUILTIN_ADDCARRYX32,
- IX86_BUILTIN_ADDCARRYX64,
-
- /* SBB instructions. */
- IX86_BUILTIN_SBB32,
- IX86_BUILTIN_SBB64,
-
- /* FSGSBASE instructions. */
- IX86_BUILTIN_RDFSBASE32,
- IX86_BUILTIN_RDFSBASE64,
- IX86_BUILTIN_RDGSBASE32,
- IX86_BUILTIN_RDGSBASE64,
- IX86_BUILTIN_WRFSBASE32,
- IX86_BUILTIN_WRFSBASE64,
- IX86_BUILTIN_WRGSBASE32,
- IX86_BUILTIN_WRGSBASE64,
-
- /* RDRND instructions. */
- IX86_BUILTIN_RDRAND16_STEP,
- IX86_BUILTIN_RDRAND32_STEP,
- IX86_BUILTIN_RDRAND64_STEP,
-
- /* RDSEED instructions. */
- IX86_BUILTIN_RDSEED16_STEP,
- IX86_BUILTIN_RDSEED32_STEP,
- IX86_BUILTIN_RDSEED64_STEP,
-
- /* F16C instructions. */
- IX86_BUILTIN_CVTPH2PS,
- IX86_BUILTIN_CVTPH2PS256,
- IX86_BUILTIN_CVTPS2PH,
- IX86_BUILTIN_CVTPS2PH256,
-
- /* MONITORX and MWAITX instrucions. */
- IX86_BUILTIN_MONITORX,
- IX86_BUILTIN_MWAITX,
-
- /* CFString built-in for darwin */
- IX86_BUILTIN_CFSTRING,
-
- /* Builtins to get CPU type and supported features. */
- IX86_BUILTIN_CPU_INIT,
- IX86_BUILTIN_CPU_IS,
- IX86_BUILTIN_CPU_SUPPORTS,
-
- /* Read/write FLAGS register built-ins. */
- IX86_BUILTIN_READ_FLAGS,
- IX86_BUILTIN_WRITE_FLAGS,
-
- /* PKU instructions. */
- IX86_BUILTIN_RDPKRU,
- IX86_BUILTIN_WRPKRU,
+ IX86_BUILTIN_VPCOMTRUEUB,
+ IX86_BUILTIN_VPCOMTRUEUW,
+ IX86_BUILTIN_VPCOMTRUEUD,
+ IX86_BUILTIN_VPCOMTRUEUQ,
+ IX86_BUILTIN_VPERMIL2PD,
+ IX86_BUILTIN_VPERMIL2PS,
+ IX86_BUILTIN_VPERMIL2PD256,
+ IX86_BUILTIN_VPERMIL2PS256,
+ IX86_BUILTIN__BDESC_MULTI_ARG_LAST = IX86_BUILTIN_VPERMIL2PS256,
IX86_BUILTIN_MAX
};
@@ -35855,7 +35683,7 @@ static const struct builtin_description bdesc_round_args[] =
{ OPTION_MASK_ISA_AVX512DQ, CODE_FOR_avx512dq_rangepv8df_mask_round, "__builtin_ia32_rangepd512_mask", IX86_BUILTIN_RANGEPD512, UNKNOWN, (int) V8DF_FTYPE_V8DF_V8DF_INT_V8DF_QI_INT },
};
-/* Bultins for MPX. */
+/* Builtins for MPX. */
static const struct builtin_description bdesc_mpx[] =
{
{ OPTION_MASK_ISA_MPX, (enum insn_code)0, "__builtin_ia32_bndstx", IX86_BUILTIN_BNDSTX, UNKNOWN, (int) VOID_FTYPE_PCVOID_BND_PCVOID },
@@ -36044,7 +35872,6 @@ static const struct builtin_description bdesc_multi_arg[] =
{ OPTION_MASK_ISA_XOP, CODE_FOR_xop_phsubdq, "__builtin_ia32_vphsubdq", IX86_BUILTIN_VPHSUBDQ, UNKNOWN, (int)MULTI_ARG_1_SI_DI },
{ OPTION_MASK_ISA_XOP, CODE_FOR_xop_maskcmpv16qi3, "__builtin_ia32_vpcomeqb", IX86_BUILTIN_VPCOMEQB, EQ, (int)MULTI_ARG_2_QI_CMP },
- { OPTION_MASK_ISA_XOP, CODE_FOR_xop_maskcmpv16qi3, "__builtin_ia32_vpcomneb", IX86_BUILTIN_VPCOMNEB, NE, (int)MULTI_ARG_2_QI_CMP },
{ OPTION_MASK_ISA_XOP, CODE_FOR_xop_maskcmpv16qi3, "__builtin_ia32_vpcomneqb", IX86_BUILTIN_VPCOMNEB, NE, (int)MULTI_ARG_2_QI_CMP },
{ OPTION_MASK_ISA_XOP, CODE_FOR_xop_maskcmpv16qi3, "__builtin_ia32_vpcomltb", IX86_BUILTIN_VPCOMLTB, LT, (int)MULTI_ARG_2_QI_CMP },
{ OPTION_MASK_ISA_XOP, CODE_FOR_xop_maskcmpv16qi3, "__builtin_ia32_vpcomleb", IX86_BUILTIN_VPCOMLEB, LE, (int)MULTI_ARG_2_QI_CMP },
@@ -36052,7 +35879,6 @@ static const struct builtin_description bdesc_multi_arg[] =
{ OPTION_MASK_ISA_XOP, CODE_FOR_xop_maskcmpv16qi3, "__builtin_ia32_vpcomgeb", IX86_BUILTIN_VPCOMGEB, GE, (int)MULTI_ARG_2_QI_CMP },
{ OPTION_MASK_ISA_XOP, CODE_FOR_xop_maskcmpv8hi3, "__builtin_ia32_vpcomeqw", IX86_BUILTIN_VPCOMEQW, EQ, (int)MULTI_ARG_2_HI_CMP },
- { OPTION_MASK_ISA_XOP, CODE_FOR_xop_maskcmpv8hi3, "__builtin_ia32_vpcomnew", IX86_BUILTIN_VPCOMNEW, NE, (int)MULTI_ARG_2_HI_CMP },
{ OPTION_MASK_ISA_XOP, CODE_FOR_xop_maskcmpv8hi3, "__builtin_ia32_vpcomneqw", IX86_BUILTIN_VPCOMNEW, NE, (int)MULTI_ARG_2_HI_CMP },
{ OPTION_MASK_ISA_XOP, CODE_FOR_xop_maskcmpv8hi3, "__builtin_ia32_vpcomltw", IX86_BUILTIN_VPCOMLTW, LT, (int)MULTI_ARG_2_HI_CMP },
{ OPTION_MASK_ISA_XOP, CODE_FOR_xop_maskcmpv8hi3, "__builtin_ia32_vpcomlew", IX86_BUILTIN_VPCOMLEW, LE, (int)MULTI_ARG_2_HI_CMP },
@@ -36060,7 +35886,6 @@ static const struct builtin_description bdesc_multi_arg[] =
{ OPTION_MASK_ISA_XOP, CODE_FOR_xop_maskcmpv8hi3, "__builtin_ia32_vpcomgew", IX86_BUILTIN_VPCOMGEW, GE, (int)MULTI_ARG_2_HI_CMP },
{ OPTION_MASK_ISA_XOP, CODE_FOR_xop_maskcmpv4si3, "__builtin_ia32_vpcomeqd", IX86_BUILTIN_VPCOMEQD, EQ, (int)MULTI_ARG_2_SI_CMP },
- { OPTION_MASK_ISA_XOP, CODE_FOR_xop_maskcmpv4si3, "__builtin_ia32_vpcomned", IX86_BUILTIN_VPCOMNED, NE, (int)MULTI_ARG_2_SI_CMP },
{ OPTION_MASK_ISA_XOP, CODE_FOR_xop_maskcmpv4si3, "__builtin_ia32_vpcomneqd", IX86_BUILTIN_VPCOMNED, NE, (int)MULTI_ARG_2_SI_CMP },
{ OPTION_MASK_ISA_XOP, CODE_FOR_xop_maskcmpv4si3, "__builtin_ia32_vpcomltd", IX86_BUILTIN_VPCOMLTD, LT, (int)MULTI_ARG_2_SI_CMP },
{ OPTION_MASK_ISA_XOP, CODE_FOR_xop_maskcmpv4si3, "__builtin_ia32_vpcomled", IX86_BUILTIN_VPCOMLED, LE, (int)MULTI_ARG_2_SI_CMP },
@@ -36068,7 +35893,6 @@ static const struct builtin_description bdesc_multi_arg[] =
{ OPTION_MASK_ISA_XOP, CODE_FOR_xop_maskcmpv4si3, "__builtin_ia32_vpcomged", IX86_BUILTIN_VPCOMGED, GE, (int)MULTI_ARG_2_SI_CMP },
{ OPTION_MASK_ISA_XOP, CODE_FOR_xop_maskcmpv2di3, "__builtin_ia32_vpcomeqq", IX86_BUILTIN_VPCOMEQQ, EQ, (int)MULTI_ARG_2_DI_CMP },
- { OPTION_MASK_ISA_XOP, CODE_FOR_xop_maskcmpv2di3, "__builtin_ia32_vpcomneq", IX86_BUILTIN_VPCOMNEQ, NE, (int)MULTI_ARG_2_DI_CMP },
{ OPTION_MASK_ISA_XOP, CODE_FOR_xop_maskcmpv2di3, "__builtin_ia32_vpcomneqq", IX86_BUILTIN_VPCOMNEQ, NE, (int)MULTI_ARG_2_DI_CMP },
{ OPTION_MASK_ISA_XOP, CODE_FOR_xop_maskcmpv2di3, "__builtin_ia32_vpcomltq", IX86_BUILTIN_VPCOMLTQ, LT, (int)MULTI_ARG_2_DI_CMP },
{ OPTION_MASK_ISA_XOP, CODE_FOR_xop_maskcmpv2di3, "__builtin_ia32_vpcomleq", IX86_BUILTIN_VPCOMLEQ, LE, (int)MULTI_ARG_2_DI_CMP },
@@ -36076,7 +35900,6 @@ static const struct builtin_description bdesc_multi_arg[] =
{ OPTION_MASK_ISA_XOP, CODE_FOR_xop_maskcmpv2di3, "__builtin_ia32_vpcomgeq", IX86_BUILTIN_VPCOMGEQ, GE, (int)MULTI_ARG_2_DI_CMP },
{ OPTION_MASK_ISA_XOP, CODE_FOR_xop_maskcmp_uns2v16qi3,"__builtin_ia32_vpcomequb", IX86_BUILTIN_VPCOMEQUB, EQ, (int)MULTI_ARG_2_QI_CMP },
- { OPTION_MASK_ISA_XOP, CODE_FOR_xop_maskcmp_uns2v16qi3,"__builtin_ia32_vpcomneub", IX86_BUILTIN_VPCOMNEUB, NE, (int)MULTI_ARG_2_QI_CMP },
{ OPTION_MASK_ISA_XOP, CODE_FOR_xop_maskcmp_uns2v16qi3,"__builtin_ia32_vpcomnequb", IX86_BUILTIN_VPCOMNEUB, NE, (int)MULTI_ARG_2_QI_CMP },
{ OPTION_MASK_ISA_XOP, CODE_FOR_xop_maskcmp_unsv16qi3, "__builtin_ia32_vpcomltub", IX86_BUILTIN_VPCOMLTUB, LTU, (int)MULTI_ARG_2_QI_CMP },
{ OPTION_MASK_ISA_XOP, CODE_FOR_xop_maskcmp_unsv16qi3, "__builtin_ia32_vpcomleub", IX86_BUILTIN_VPCOMLEUB, LEU, (int)MULTI_ARG_2_QI_CMP },
@@ -36084,7 +35907,6 @@ static const struct builtin_description bdesc_multi_arg[] =
{ OPTION_MASK_ISA_XOP, CODE_FOR_xop_maskcmp_unsv16qi3, "__builtin_ia32_vpcomgeub", IX86_BUILTIN_VPCOMGEUB, GEU, (int)MULTI_ARG_2_QI_CMP },
{ OPTION_MASK_ISA_XOP, CODE_FOR_xop_maskcmp_uns2v8hi3, "__builtin_ia32_vpcomequw", IX86_BUILTIN_VPCOMEQUW, EQ, (int)MULTI_ARG_2_HI_CMP },
- { OPTION_MASK_ISA_XOP, CODE_FOR_xop_maskcmp_uns2v8hi3, "__builtin_ia32_vpcomneuw", IX86_BUILTIN_VPCOMNEUW, NE, (int)MULTI_ARG_2_HI_CMP },
{ OPTION_MASK_ISA_XOP, CODE_FOR_xop_maskcmp_uns2v8hi3, "__builtin_ia32_vpcomnequw", IX86_BUILTIN_VPCOMNEUW, NE, (int)MULTI_ARG_2_HI_CMP },
{ OPTION_MASK_ISA_XOP, CODE_FOR_xop_maskcmp_unsv8hi3, "__builtin_ia32_vpcomltuw", IX86_BUILTIN_VPCOMLTUW, LTU, (int)MULTI_ARG_2_HI_CMP },
{ OPTION_MASK_ISA_XOP, CODE_FOR_xop_maskcmp_unsv8hi3, "__builtin_ia32_vpcomleuw", IX86_BUILTIN_VPCOMLEUW, LEU, (int)MULTI_ARG_2_HI_CMP },
@@ -36092,7 +35914,6 @@ static const struct builtin_description bdesc_multi_arg[] =
{ OPTION_MASK_ISA_XOP, CODE_FOR_xop_maskcmp_unsv8hi3, "__builtin_ia32_vpcomgeuw", IX86_BUILTIN_VPCOMGEUW, GEU, (int)MULTI_ARG_2_HI_CMP },
{ OPTION_MASK_ISA_XOP, CODE_FOR_xop_maskcmp_uns2v4si3, "__builtin_ia32_vpcomequd", IX86_BUILTIN_VPCOMEQUD, EQ, (int)MULTI_ARG_2_SI_CMP },
- { OPTION_MASK_ISA_XOP, CODE_FOR_xop_maskcmp_uns2v4si3, "__builtin_ia32_vpcomneud", IX86_BUILTIN_VPCOMNEUD, NE, (int)MULTI_ARG_2_SI_CMP },
{ OPTION_MASK_ISA_XOP, CODE_FOR_xop_maskcmp_uns2v4si3, "__builtin_ia32_vpcomnequd", IX86_BUILTIN_VPCOMNEUD, NE, (int)MULTI_ARG_2_SI_CMP },
{ OPTION_MASK_ISA_XOP, CODE_FOR_xop_maskcmp_unsv4si3, "__builtin_ia32_vpcomltud", IX86_BUILTIN_VPCOMLTUD, LTU, (int)MULTI_ARG_2_SI_CMP },
{ OPTION_MASK_ISA_XOP, CODE_FOR_xop_maskcmp_unsv4si3, "__builtin_ia32_vpcomleud", IX86_BUILTIN_VPCOMLEUD, LEU, (int)MULTI_ARG_2_SI_CMP },
@@ -36100,7 +35921,6 @@ static const struct builtin_description bdesc_multi_arg[] =
{ OPTION_MASK_ISA_XOP, CODE_FOR_xop_maskcmp_unsv4si3, "__builtin_ia32_vpcomgeud", IX86_BUILTIN_VPCOMGEUD, GEU, (int)MULTI_ARG_2_SI_CMP },
{ OPTION_MASK_ISA_XOP, CODE_FOR_xop_maskcmp_uns2v2di3, "__builtin_ia32_vpcomequq", IX86_BUILTIN_VPCOMEQUQ, EQ, (int)MULTI_ARG_2_DI_CMP },
- { OPTION_MASK_ISA_XOP, CODE_FOR_xop_maskcmp_uns2v2di3, "__builtin_ia32_vpcomneuq", IX86_BUILTIN_VPCOMNEUQ, NE, (int)MULTI_ARG_2_DI_CMP },
{ OPTION_MASK_ISA_XOP, CODE_FOR_xop_maskcmp_uns2v2di3, "__builtin_ia32_vpcomnequq", IX86_BUILTIN_VPCOMNEUQ, NE, (int)MULTI_ARG_2_DI_CMP },
{ OPTION_MASK_ISA_XOP, CODE_FOR_xop_maskcmp_unsv2di3, "__builtin_ia32_vpcomltuq", IX86_BUILTIN_VPCOMLTUQ, LTU, (int)MULTI_ARG_2_DI_CMP },
{ OPTION_MASK_ISA_XOP, CODE_FOR_xop_maskcmp_unsv2di3, "__builtin_ia32_vpcomleuq", IX86_BUILTIN_VPCOMLEUQ, LEU, (int)MULTI_ARG_2_DI_CMP },
@@ -36243,6 +36063,31 @@ ix86_init_tm_builtins (void)
}
}
+/* Macros for verification of enum ix86_builtins order. */
+#define BDESC_VERIFY(x, y, z) \
+ gcc_checking_assert ((x) == (enum ix86_builtins) ((y) + (z)))
+#define BDESC_VERIFYS(x, y, z) \
+ STATIC_ASSERT ((x) == (enum ix86_builtins) ((y) + (z)))
+
+BDESC_VERIFYS (IX86_BUILTIN__BDESC_PCMPESTR_FIRST,
+ IX86_BUILTIN__BDESC_COMI_LAST, 1);
+BDESC_VERIFYS (IX86_BUILTIN__BDESC_PCMPISTR_FIRST,
+ IX86_BUILTIN__BDESC_PCMPESTR_LAST, 1);
+BDESC_VERIFYS (IX86_BUILTIN__BDESC_SPECIAL_ARGS_FIRST,
+ IX86_BUILTIN__BDESC_PCMPISTR_LAST, 1);
+BDESC_VERIFYS (IX86_BUILTIN__BDESC_ARGS_FIRST,
+ IX86_BUILTIN__BDESC_SPECIAL_ARGS_LAST, 1);
+BDESC_VERIFYS (IX86_BUILTIN__BDESC_ROUND_ARGS_FIRST,
+ IX86_BUILTIN__BDESC_ARGS_LAST, 1);
+BDESC_VERIFYS (IX86_BUILTIN__BDESC_MPX_FIRST,
+ IX86_BUILTIN__BDESC_ROUND_ARGS_LAST, 1);
+BDESC_VERIFYS (IX86_BUILTIN__BDESC_MPX_CONST_FIRST,
+ IX86_BUILTIN__BDESC_MPX_LAST, 1);
+BDESC_VERIFYS (IX86_BUILTIN__BDESC_MULTI_ARG_FIRST,
+ IX86_BUILTIN__BDESC_MPX_CONST_LAST, 1);
+BDESC_VERIFYS (IX86_BUILTIN_MAX,
+ IX86_BUILTIN__BDESC_MULTI_ARG_LAST, 1);
+
/* Set up all the MMX/SSE builtins, even builtins for instructions that are not
in the current target ISA to allow the user to compile particular modules
with different target specific options that differ from the command line
@@ -36259,70 +36104,94 @@ ix86_init_mmx_sse_builtins (void)
i < ARRAY_SIZE (bdesc_special_args);
i++, d++)
{
+ BDESC_VERIFY (d->code, IX86_BUILTIN__BDESC_SPECIAL_ARGS_FIRST, i);
if (d->name == 0)
continue;
ftype = (enum ix86_builtin_func_type) d->flag;
def_builtin (d->mask, d->name, ftype, d->code);
}
+ BDESC_VERIFYS (IX86_BUILTIN__BDESC_SPECIAL_ARGS_LAST,
+ IX86_BUILTIN__BDESC_SPECIAL_ARGS_FIRST,
+ ARRAY_SIZE (bdesc_special_args) - 1);
/* Add all builtins with variable number of operands. */
for (i = 0, d = bdesc_args;
i < ARRAY_SIZE (bdesc_args);
i++, d++)
{
+ BDESC_VERIFY (d->code, IX86_BUILTIN__BDESC_ARGS_FIRST, i);
if (d->name == 0)
continue;
ftype = (enum ix86_builtin_func_type) d->flag;
def_builtin_const (d->mask, d->name, ftype, d->code);
}
+ BDESC_VERIFYS (IX86_BUILTIN__BDESC_ARGS_LAST,
+ IX86_BUILTIN__BDESC_ARGS_FIRST,
+ ARRAY_SIZE (bdesc_args) - 1);
/* Add all builtins with rounding. */
for (i = 0, d = bdesc_round_args;
i < ARRAY_SIZE (bdesc_round_args);
i++, d++)
{
+ BDESC_VERIFY (d->code, IX86_BUILTIN__BDESC_ROUND_ARGS_FIRST, i);
if (d->name == 0)
continue;
ftype = (enum ix86_builtin_func_type) d->flag;
def_builtin_const (d->mask, d->name, ftype, d->code);
}
+ BDESC_VERIFYS (IX86_BUILTIN__BDESC_ROUND_ARGS_LAST,
+ IX86_BUILTIN__BDESC_ROUND_ARGS_FIRST,
+ ARRAY_SIZE (bdesc_round_args) - 1);
/* pcmpestr[im] insns. */
for (i = 0, d = bdesc_pcmpestr;
i < ARRAY_SIZE (bdesc_pcmpestr);
i++, d++)
{
+ BDESC_VERIFY (d->code, IX86_BUILTIN__BDESC_PCMPESTR_FIRST, i);
if (d->code == IX86_BUILTIN_PCMPESTRM128)
ftype = V16QI_FTYPE_V16QI_INT_V16QI_INT_INT;
else
ftype = INT_FTYPE_V16QI_INT_V16QI_INT_INT;
def_builtin_const (d->mask, d->name, ftype, d->code);
}
+ BDESC_VERIFYS (IX86_BUILTIN__BDESC_PCMPESTR_LAST,
+ IX86_BUILTIN__BDESC_PCMPESTR_FIRST,
+ ARRAY_SIZE (bdesc_pcmpestr) - 1);
/* pcmpistr[im] insns. */
for (i = 0, d = bdesc_pcmpistr;
i < ARRAY_SIZE (bdesc_pcmpistr);
i++, d++)
{
+ BDESC_VERIFY (d->code, IX86_BUILTIN__BDESC_PCMPISTR_FIRST, i);
if (d->code == IX86_BUILTIN_PCMPISTRM128)
ftype = V16QI_FTYPE_V16QI_V16QI_INT;
else
ftype = INT_FTYPE_V16QI_V16QI_INT;
def_builtin_const (d->mask, d->name, ftype, d->code);
}
+ BDESC_VERIFYS (IX86_BUILTIN__BDESC_PCMPISTR_LAST,
+ IX86_BUILTIN__BDESC_PCMPISTR_FIRST,
+ ARRAY_SIZE (bdesc_pcmpistr) - 1);
/* comi/ucomi insns. */
for (i = 0, d = bdesc_comi; i < ARRAY_SIZE (bdesc_comi); i++, d++)
{
+ BDESC_VERIFY (d->code, IX86_BUILTIN__BDESC_COMI_FIRST, i);
if (d->mask == OPTION_MASK_ISA_SSE2)
ftype = INT_FTYPE_V2DF_V2DF;
else
ftype = INT_FTYPE_V4SF_V4SF;
def_builtin_const (d->mask, d->name, ftype, d->code);
}
+ BDESC_VERIFYS (IX86_BUILTIN__BDESC_COMI_LAST,
+ IX86_BUILTIN__BDESC_COMI_FIRST,
+ ARRAY_SIZE (bdesc_comi) - 1);
/* SSE */
def_builtin (OPTION_MASK_ISA_SSE, "__builtin_ia32_ldmxcsr",
@@ -36856,12 +36725,16 @@ ix86_init_mmx_sse_builtins (void)
/* Add FMA4 multi-arg argument instructions */
for (i = 0, d = bdesc_multi_arg; i < ARRAY_SIZE (bdesc_multi_arg); i++, d++)
{
+ BDESC_VERIFY (d->code, IX86_BUILTIN__BDESC_MULTI_ARG_FIRST, i);
if (d->name == 0)
continue;
ftype = (enum ix86_builtin_func_type) d->flag;
def_builtin_const (d->mask, d->name, ftype, d->code);
}
+ BDESC_VERIFYS (IX86_BUILTIN__BDESC_MULTI_ARG_LAST,
+ IX86_BUILTIN__BDESC_MULTI_ARG_FIRST,
+ ARRAY_SIZE (bdesc_multi_arg) - 1);
}
static void
@@ -36876,6 +36749,7 @@ ix86_init_mpx_builtins ()
i < ARRAY_SIZE (bdesc_mpx);
i++, d++)
{
+ BDESC_VERIFY (d->code, IX86_BUILTIN__BDESC_MPX_FIRST, i);
if (d->name == 0)
continue;
@@ -36900,11 +36774,15 @@ ix86_init_mpx_builtins ()
ix86_builtins_isa[(int)d->code].nothrow_p = true;
}
}
+ BDESC_VERIFYS (IX86_BUILTIN__BDESC_MPX_LAST,
+ IX86_BUILTIN__BDESC_MPX_FIRST,
+ ARRAY_SIZE (bdesc_mpx) - 1);
for (i = 0, d = bdesc_mpx_const;
i < ARRAY_SIZE (bdesc_mpx_const);
i++, d++)
{
+ BDESC_VERIFY (d->code, IX86_BUILTIN__BDESC_MPX_CONST_FIRST, i);
if (d->name == 0)
continue;
@@ -36923,7 +36801,12 @@ ix86_init_mpx_builtins ()
ix86_builtins_isa[(int)d->code].nothrow_p = true;
}
}
+ BDESC_VERIFYS (IX86_BUILTIN__BDESC_MPX_CONST_LAST,
+ IX86_BUILTIN__BDESC_MPX_CONST_FIRST,
+ ARRAY_SIZE (bdesc_mpx_const) - 1);
}
+#undef BDESC_VERIFY
+#undef BDESC_VERIFYS
/* This adds a condition to the basic_block NEW_BB in function FUNCTION_DECL
to return a pointer to VERSION_DECL if the outcome of the expression
@@ -41174,7 +41057,6 @@ static rtx
ix86_expand_builtin (tree exp, rtx target, rtx subtarget,
machine_mode mode, int ignore)
{
- const struct builtin_description *d;
size_t i;
enum insn_code icode;
tree fndecl = TREE_OPERAND (CALL_EXPR_FN (exp), 0);
@@ -42866,16 +42748,18 @@ rdseed_step:
break;
}
- for (i = 0, d = bdesc_special_args;
- i < ARRAY_SIZE (bdesc_special_args);
- i++, d++)
- if (d->code == fcode)
- return ix86_expand_special_args_builtin (d, exp, target);
+ if (fcode >= IX86_BUILTIN__BDESC_SPECIAL_ARGS_FIRST
+ && fcode <= IX86_BUILTIN__BDESC_SPECIAL_ARGS_LAST)
+ {
+ i = fcode - IX86_BUILTIN__BDESC_SPECIAL_ARGS_FIRST;
+ return ix86_expand_special_args_builtin (bdesc_special_args + i, exp,
+ target);
+ }
- for (i = 0, d = bdesc_args;
- i < ARRAY_SIZE (bdesc_args);
- i++, d++)
- if (d->code == fcode)
+ if (fcode >= IX86_BUILTIN__BDESC_ARGS_FIRST
+ && fcode <= IX86_BUILTIN__BDESC_ARGS_LAST)
+ {
+ i = fcode - IX86_BUILTIN__BDESC_ARGS_FIRST;
switch (fcode)
{
case IX86_BUILTIN_FABSQ:
@@ -42885,34 +42769,47 @@ rdseed_step:
return expand_call (exp, target, ignore);
/* FALLTHRU */
default:
- return ix86_expand_args_builtin (d, exp, target);
+ return ix86_expand_args_builtin (bdesc_args + i, exp, target);
}
+ }
- for (i = 0, d = bdesc_comi; i < ARRAY_SIZE (bdesc_comi); i++, d++)
- if (d->code == fcode)
- return ix86_expand_sse_comi (d, exp, target);
+ if (fcode >= IX86_BUILTIN__BDESC_COMI_FIRST
+ && fcode <= IX86_BUILTIN__BDESC_COMI_LAST)
+ {
+ i = fcode - IX86_BUILTIN__BDESC_COMI_FIRST;
+ return ix86_expand_sse_comi (bdesc_comi + i, exp, target);
+ }
- for (i = 0, d = bdesc_round_args; i < ARRAY_SIZE (bdesc_round_args); i++, d++)
- if (d->code == fcode)
- return ix86_expand_round_builtin (d, exp, target);
+ if (fcode >= IX86_BUILTIN__BDESC_ROUND_ARGS_FIRST
+ && fcode <= IX86_BUILTIN__BDESC_ROUND_ARGS_LAST)
+ {
+ i = fcode - IX86_BUILTIN__BDESC_ROUND_ARGS_FIRST;
+ return ix86_expand_round_builtin (bdesc_round_args + i, exp, target);
+ }
- for (i = 0, d = bdesc_pcmpestr;
- i < ARRAY_SIZE (bdesc_pcmpestr);
- i++, d++)
- if (d->code == fcode)
- return ix86_expand_sse_pcmpestr (d, exp, target);
+ if (fcode >= IX86_BUILTIN__BDESC_PCMPESTR_FIRST
+ && fcode <= IX86_BUILTIN__BDESC_PCMPESTR_LAST)
+ {
+ i = fcode - IX86_BUILTIN__BDESC_PCMPESTR_FIRST;
+ return ix86_expand_sse_pcmpestr (bdesc_pcmpestr + i, exp, target);
+ }
- for (i = 0, d = bdesc_pcmpistr;
- i < ARRAY_SIZE (bdesc_pcmpistr);
- i++, d++)
- if (d->code == fcode)
- return ix86_expand_sse_pcmpistr (d, exp, target);
+ if (fcode >= IX86_BUILTIN__BDESC_PCMPISTR_FIRST
+ && fcode <= IX86_BUILTIN__BDESC_PCMPISTR_LAST)
+ {
+ i = fcode - IX86_BUILTIN__BDESC_PCMPISTR_FIRST;
+ return ix86_expand_sse_pcmpistr (bdesc_pcmpistr + i, exp, target);
+ }
- for (i = 0, d = bdesc_multi_arg; i < ARRAY_SIZE (bdesc_multi_arg); i++, d++)
- if (d->code == fcode)
+ if (fcode >= IX86_BUILTIN__BDESC_MULTI_ARG_FIRST
+ && fcode <= IX86_BUILTIN__BDESC_MULTI_ARG_LAST)
+ {
+ i = fcode - IX86_BUILTIN__BDESC_MULTI_ARG_FIRST;
+ const struct builtin_description *d = bdesc_multi_arg + i;
return ix86_expand_multi_arg_builtin (d->icode, exp, target,
(enum ix86_builtin_func_type)
d->flag, d->comparison);
+ }
gcc_unreachable ();
}