[llvm-commits] [dragonegg] r85803 - in /dragonegg/trunk: TODO x86/llvm-target.cpp

Duncan Sands baldrick at free.fr
Mon Nov 2 07:56:37 PST 2009


Author: baldrick
Date: Mon Nov  2 09:56:37 2009
New Revision: 85803

URL: http://llvm.org/viewvc/llvm-project?rev=85803&view=rev
Log:
Add the list of all x86 builtins supported by gcc-4.5, with ones
we don't support commented out.  This way it is easy to see what
needs doing.  Add a note about how we could easily add support
for several gcc builtins.  Comment out the IX86_BUILTIN_LOADQ
expansion code from llvm-gcc, because I couldn't work out which
gcc intrinsic (if any) it corresponds to.

Modified:
    dragonegg/trunk/TODO
    dragonegg/trunk/x86/llvm-target.cpp

Modified: dragonegg/trunk/TODO
URL: http://llvm.org/viewvc/llvm-project/dragonegg/trunk/TODO?rev=85803&r1=85802&r2=85803&view=diff

==============================================================================
--- dragonegg/trunk/TODO (original)
+++ dragonegg/trunk/TODO Mon Nov  2 09:56:37 2009
@@ -62,3 +62,7 @@
 Output proper debug info rather than throwing most of it away.
 
 Add support for exception handling.
+
+Many x86 specific builtins are not supported, even though it would be easy to
+add support for some of them, for example the 256 bit versions of builtins we
+do support.  Improve this.

Modified: dragonegg/trunk/x86/llvm-target.cpp
URL: http://llvm.org/viewvc/llvm-project/dragonegg/trunk/x86/llvm-target.cpp?rev=85803&r1=85802&r2=85803&view=diff

==============================================================================
--- dragonegg/trunk/x86/llvm-target.cpp (original)
+++ dragonegg/trunk/x86/llvm-target.cpp Mon Nov  2 09:56:37 2009
@@ -82,18 +82,42 @@
                                       const Type *ResultType,
                                       std::vector<Value*> &Ops) {
   const HandlerEntry Handlers[] = {
+    // Unsupported builtins are commented out.
     {"__builtin_ia32_addpd", &&IX86_BUILTIN_ADDPD},
-    {"__builtin_ia32_addpd256", &&IX86_BUILTIN_ADDPD},
+    //{"__builtin_ia32_addpd256", &&IX86_BUILTIN_ADDPD256},
     {"__builtin_ia32_addps", &&IX86_BUILTIN_ADDPS},
-    {"__builtin_ia32_addps256", &&IX86_BUILTIN_ADDPS},
+    //{"__builtin_ia32_addps256", &&IX86_BUILTIN_ADDPS256},
+    //{"__builtin_ia32_addsd", &&IX86_BUILTIN_ADDSD},
+    //{"__builtin_ia32_addss", &&IX86_BUILTIN_ADDSS},
+    //{"__builtin_ia32_addsubpd", &&IX86_BUILTIN_ADDSUBPD},
+    //{"__builtin_ia32_addsubpd256", &&IX86_BUILTIN_ADDSUBPD256},
+    //{"__builtin_ia32_addsubps", &&IX86_BUILTIN_ADDSUBPS},
+    //{"__builtin_ia32_addsubps256", &&IX86_BUILTIN_ADDSUBPS256},
+    //{"__builtin_ia32_aesdec128", &&IX86_BUILTIN_AESDEC128},
+    //{"__builtin_ia32_aesdeclast128", &&IX86_BUILTIN_AESDECLAST128},
+    //{"__builtin_ia32_aesenc128", &&IX86_BUILTIN_AESENC128},
+    //{"__builtin_ia32_aesenclast128", &&IX86_BUILTIN_AESENCLAST128},
+    //{"__builtin_ia32_aesimc128", &&IX86_BUILTIN_AESIMC128},
+    //{"__builtin_ia32_aeskeygenassist128", &&IX86_BUILTIN_AESKEYGENASSIST128},
     {"__builtin_ia32_andnpd", &&IX86_BUILTIN_ANDNPD},
-    {"__builtin_ia32_andnpd256", &&IX86_BUILTIN_ANDNPD},
+    //{"__builtin_ia32_andnpd256", &&IX86_BUILTIN_ANDNPD256},
     {"__builtin_ia32_andnps", &&IX86_BUILTIN_ANDNPS},
-    {"__builtin_ia32_andnps256", &&IX86_BUILTIN_ANDNPS},
+    //{"__builtin_ia32_andnps256", &&IX86_BUILTIN_ANDNPS256},
     {"__builtin_ia32_andpd", &&IX86_BUILTIN_ANDPD},
-    {"__builtin_ia32_andpd256", &&IX86_BUILTIN_ANDPD},
+    //{"__builtin_ia32_andpd256", &&IX86_BUILTIN_ANDPD256},
     {"__builtin_ia32_andps", &&IX86_BUILTIN_ANDPS},
-    {"__builtin_ia32_andps256", &&IX86_BUILTIN_ANDPS},
+    //{"__builtin_ia32_andps256", &&IX86_BUILTIN_ANDPS256},
+    //{"__builtin_ia32_blendpd", &&IX86_BUILTIN_BLENDPD},
+    //{"__builtin_ia32_blendpd256", &&IX86_BUILTIN_BLENDPD256},
+    //{"__builtin_ia32_blendps", &&IX86_BUILTIN_BLENDPS},
+    //{"__builtin_ia32_blendps256", &&IX86_BUILTIN_BLENDPS256},
+    //{"__builtin_ia32_blendvpd", &&IX86_BUILTIN_BLENDVPD},
+    //{"__builtin_ia32_blendvpd256", &&IX86_BUILTIN_BLENDVPD256},
+    //{"__builtin_ia32_blendvps", &&IX86_BUILTIN_BLENDVPS},
+    //{"__builtin_ia32_blendvps256", &&IX86_BUILTIN_BLENDVPS256},
+    //{"__builtin_ia32_bsrdi", &&IX86_BUILTIN_BSRDI},
+    //{"__builtin_ia32_bsrsi", &&IX86_BUILTIN_BSRSI},
+    //{"__builtin_ia32_clflush", &&IX86_BUILTIN_CLFLUSH},
     {"__builtin_ia32_cmpeqpd", &&IX86_BUILTIN_CMPEQPD},
     {"__builtin_ia32_cmpeqps", &&IX86_BUILTIN_CMPEQPS},
     {"__builtin_ia32_cmpeqsd", &&IX86_BUILTIN_CMPEQSD},
@@ -116,8 +140,10 @@
     {"__builtin_ia32_cmpneqss", &&IX86_BUILTIN_CMPNEQSS},
     {"__builtin_ia32_cmpngepd", &&IX86_BUILTIN_CMPNGEPD},
     {"__builtin_ia32_cmpngeps", &&IX86_BUILTIN_CMPNGEPS},
+    //{"__builtin_ia32_cmpngess", &&IX86_BUILTIN_CMPNGESS},
     {"__builtin_ia32_cmpngtpd", &&IX86_BUILTIN_CMPNGTPD},
     {"__builtin_ia32_cmpngtps", &&IX86_BUILTIN_CMPNGTPS},
+    //{"__builtin_ia32_cmpngtss", &&IX86_BUILTIN_CMPNGTSS},
     {"__builtin_ia32_cmpnlepd", &&IX86_BUILTIN_CMPNLEPD},
     {"__builtin_ia32_cmpnleps", &&IX86_BUILTIN_CMPNLEPS},
     {"__builtin_ia32_cmpnlesd", &&IX86_BUILTIN_CMPNLESD},
@@ -130,71 +156,400 @@
     {"__builtin_ia32_cmpordps", &&IX86_BUILTIN_CMPORDPS},
     {"__builtin_ia32_cmpordsd", &&IX86_BUILTIN_CMPORDSD},
     {"__builtin_ia32_cmpordss", &&IX86_BUILTIN_CMPORDSS},
+    //{"__builtin_ia32_cmppd", &&IX86_BUILTIN_CMPPD},
+    //{"__builtin_ia32_cmppd256", &&IX86_BUILTIN_CMPPD256},
+    //{"__builtin_ia32_cmpps", &&IX86_BUILTIN_CMPPS},
+    //{"__builtin_ia32_cmpps256", &&IX86_BUILTIN_CMPPS256},
+    //{"__builtin_ia32_cmpsd", &&IX86_BUILTIN_CMPSD},
+    //{"__builtin_ia32_cmpss", &&IX86_BUILTIN_CMPSS},
     {"__builtin_ia32_cmpunordpd", &&IX86_BUILTIN_CMPUNORDPD},
     {"__builtin_ia32_cmpunordps", &&IX86_BUILTIN_CMPUNORDPS},
     {"__builtin_ia32_cmpunordsd", &&IX86_BUILTIN_CMPUNORDSD},
     {"__builtin_ia32_cmpunordss", &&IX86_BUILTIN_CMPUNORDSS},
+    //{"__builtin_ia32_comieq", &&IX86_BUILTIN_COMIEQSS},
+    //{"__builtin_ia32_comige", &&IX86_BUILTIN_COMIGESS},
+    //{"__builtin_ia32_comigt", &&IX86_BUILTIN_COMIGTSS},
+    //{"__builtin_ia32_comile", &&IX86_BUILTIN_COMILESS},
+    //{"__builtin_ia32_comilt", &&IX86_BUILTIN_COMILTSS},
+    //{"__builtin_ia32_comineq", &&IX86_BUILTIN_COMINEQSS},
+    //{"__builtin_ia32_comisdeq", &&IX86_BUILTIN_COMIEQSD},
+    //{"__builtin_ia32_comisdge", &&IX86_BUILTIN_COMIGESD},
+    //{"__builtin_ia32_comisdgt", &&IX86_BUILTIN_COMIGTSD},
+    //{"__builtin_ia32_comisdle", &&IX86_BUILTIN_COMILESD},
+    //{"__builtin_ia32_comisdlt", &&IX86_BUILTIN_COMILTSD},
+    //{"__builtin_ia32_comisdneq", &&IX86_BUILTIN_COMINEQSD},
+    //{"__builtin_ia32_copysignpd", &&IX86_BUILTIN_CPYSGNPD},
+    //{"__builtin_ia32_copysignps", &&IX86_BUILTIN_CPYSGNPS},
+    //{"__builtin_ia32_crc32di", &&IX86_BUILTIN_CRC32DI},
+    //{"__builtin_ia32_crc32hi", &&IX86_BUILTIN_CRC32HI},
+    //{"__builtin_ia32_crc32qi", &&IX86_BUILTIN_CRC32QI},
+    //{"__builtin_ia32_crc32si", &&IX86_BUILTIN_CRC32SI},
+    //{"__builtin_ia32_cvtdq2pd", &&IX86_BUILTIN_CVTDQ2PD},
+    //{"__builtin_ia32_cvtdq2pd256", &&IX86_BUILTIN_CVTDQ2PD256},
+    //{"__builtin_ia32_cvtdq2ps", &&IX86_BUILTIN_CVTDQ2PS},
+    //{"__builtin_ia32_cvtdq2ps256", &&IX86_BUILTIN_CVTDQ2PS256},
+    //{"__builtin_ia32_cvtpd2dq", &&IX86_BUILTIN_CVTPD2DQ},
+    //{"__builtin_ia32_cvtpd2dq256", &&IX86_BUILTIN_CVTPD2DQ256},
+    //{"__builtin_ia32_cvtpd2pi", &&IX86_BUILTIN_CVTPD2PI},
+    //{"__builtin_ia32_cvtpd2ps", &&IX86_BUILTIN_CVTPD2PS},
+    //{"__builtin_ia32_cvtpd2ps256", &&IX86_BUILTIN_CVTPD2PS256},
+    //{"__builtin_ia32_cvtpi2pd", &&IX86_BUILTIN_CVTPI2PD},
+    //{"__builtin_ia32_cvtpi2ps", &&IX86_BUILTIN_CVTPI2PS},
+    //{"__builtin_ia32_cvtps2dq", &&IX86_BUILTIN_CVTPS2DQ},
+    //{"__builtin_ia32_cvtps2dq256", &&IX86_BUILTIN_CVTPS2DQ256},
+    //{"__builtin_ia32_cvtps2pd", &&IX86_BUILTIN_CVTPS2PD},
+    //{"__builtin_ia32_cvtps2pd256", &&IX86_BUILTIN_CVTPS2PD256},
+    //{"__builtin_ia32_cvtps2pi", &&IX86_BUILTIN_CVTPS2PI},
+    //{"__builtin_ia32_cvtsd2si", &&IX86_BUILTIN_CVTSD2SI},
+    //{"__builtin_ia32_cvtsd2si64", &&IX86_BUILTIN_CVTSD2SI64},
+    //{"__builtin_ia32_cvtsd2ss", &&IX86_BUILTIN_CVTSD2SS},
+    //{"__builtin_ia32_cvtsi2sd", &&IX86_BUILTIN_CVTSI2SD},
+    //{"__builtin_ia32_cvtsi2ss", &&IX86_BUILTIN_CVTSI2SS},
+    //{"__builtin_ia32_cvtsi642sd", &&IX86_BUILTIN_CVTSI642SD},
+    //{"__builtin_ia32_cvtsi642ss", &&IX86_BUILTIN_CVTSI642SS},
+    //{"__builtin_ia32_cvtss2sd", &&IX86_BUILTIN_CVTSS2SD},
+    //{"__builtin_ia32_cvtss2si", &&IX86_BUILTIN_CVTSS2SI},
+    //{"__builtin_ia32_cvtss2si64", &&IX86_BUILTIN_CVTSS2SI64},
+    //{"__builtin_ia32_cvttpd2dq", &&IX86_BUILTIN_CVTTPD2DQ},
+    //{"__builtin_ia32_cvttpd2dq256", &&IX86_BUILTIN_CVTTPD2DQ256},
+    //{"__builtin_ia32_cvttpd2pi", &&IX86_BUILTIN_CVTTPD2PI},
+    //{"__builtin_ia32_cvttps2dq", &&IX86_BUILTIN_CVTTPS2DQ},
+    //{"__builtin_ia32_cvttps2dq256", &&IX86_BUILTIN_CVTTPS2DQ256},
+    //{"__builtin_ia32_cvttps2pi", &&IX86_BUILTIN_CVTTPS2PI},
+    //{"__builtin_ia32_cvttsd2si", &&IX86_BUILTIN_CVTTSD2SI},
+    //{"__builtin_ia32_cvttsd2si64", &&IX86_BUILTIN_CVTTSD2SI64},
+    //{"__builtin_ia32_cvttss2si", &&IX86_BUILTIN_CVTTSS2SI},
+    //{"__builtin_ia32_cvttss2si64", &&IX86_BUILTIN_CVTTSS2SI64},
+    //{"__builtin_ia32_cvtudq2ps", &&IX86_BUILTIN_CVTUDQ2PS},
     {"__builtin_ia32_divpd", &&IX86_BUILTIN_DIVPD},
-    {"__builtin_ia32_divpd256", &&IX86_BUILTIN_DIVPD},
+    //{"__builtin_ia32_divpd256", &&IX86_BUILTIN_DIVPD256},
     {"__builtin_ia32_divps", &&IX86_BUILTIN_DIVPS},
-    {"__builtin_ia32_divps256", &&IX86_BUILTIN_DIVPS},
+    //{"__builtin_ia32_divps256", &&IX86_BUILTIN_DIVPS256},
+    //{"__builtin_ia32_divsd", &&IX86_BUILTIN_DIVSD},
+    //{"__builtin_ia32_divss", &&IX86_BUILTIN_DIVSS},
+    //{"__builtin_ia32_dppd", &&IX86_BUILTIN_DPPD},
+    //{"__builtin_ia32_dpps", &&IX86_BUILTIN_DPPS},
+    //{"__builtin_ia32_dpps256", &&IX86_BUILTIN_DPPS256},
+    //{"__builtin_ia32_emms", &&IX86_BUILTIN_EMMS},
+    //{"__builtin_ia32_extrq", &&IX86_BUILTIN_EXTRQ},
+    //{"__builtin_ia32_extrqi", &&IX86_BUILTIN_EXTRQI},
+    //{"__builtin_ia32_femms", &&IX86_BUILTIN_FEMMS},
+    //{"__builtin_ia32_haddpd", &&IX86_BUILTIN_HADDPD},
+    //{"__builtin_ia32_haddpd256", &&IX86_BUILTIN_HADDPD256},
+    //{"__builtin_ia32_haddps", &&IX86_BUILTIN_HADDPS},
+    //{"__builtin_ia32_haddps256", &&IX86_BUILTIN_HADDPS256},
+    //{"__builtin_ia32_hsubpd", &&IX86_BUILTIN_HSUBPD},
+    //{"__builtin_ia32_hsubpd256", &&IX86_BUILTIN_HSUBPD256},
+    //{"__builtin_ia32_hsubps", &&IX86_BUILTIN_HSUBPS},
+    //{"__builtin_ia32_hsubps256", &&IX86_BUILTIN_HSUBPS256},
+    //{"__builtin_ia32_insertps128", &&IX86_BUILTIN_INSERTPS128},
+    //{"__builtin_ia32_insertq", &&IX86_BUILTIN_INSERTQ},
+    //{"__builtin_ia32_insertqi", &&IX86_BUILTIN_INSERTQI},
+    //{"__builtin_ia32_lddqu", &&IX86_BUILTIN_LDDQU},
+    //{"__builtin_ia32_lddqu256", &&IX86_BUILTIN_LDDQU256},
     {"__builtin_ia32_ldmxcsr", &&IX86_BUILTIN_LDMXCSR},
+    //{"__builtin_ia32_lfence", &&IX86_BUILTIN_LFENCE},
     {"__builtin_ia32_loaddqu", &&IX86_BUILTIN_LOADDQU},
-    {"__builtin_ia32_loaddqu256", &&IX86_BUILTIN_LOADDQU},
+    //{"__builtin_ia32_loaddqu256", &&IX86_BUILTIN_LOADDQU256},
     {"__builtin_ia32_loadhpd", &&IX86_BUILTIN_LOADHPD},
     {"__builtin_ia32_loadhps", &&IX86_BUILTIN_LOADHPS},
     {"__builtin_ia32_loadlpd", &&IX86_BUILTIN_LOADLPD},
     {"__builtin_ia32_loadlps", &&IX86_BUILTIN_LOADLPS},
-    {"__builtin_ia32_loadlv4si", &&IX86_BUILTIN_LOADQ},
     {"__builtin_ia32_loadupd", &&IX86_BUILTIN_LOADUPD},
-    {"__builtin_ia32_loadupd256", &&IX86_BUILTIN_LOADUPD},
+    //{"__builtin_ia32_loadupd256", &&IX86_BUILTIN_LOADUPD256},
     {"__builtin_ia32_loadups", &&IX86_BUILTIN_LOADUPS},
-    {"__builtin_ia32_loadups256", &&IX86_BUILTIN_LOADUPS},
+    //{"__builtin_ia32_loadups256", &&IX86_BUILTIN_LOADUPS256},
+    //{"__builtin_ia32_maskloadpd", &&IX86_BUILTIN_MASKLOADPD},
+    //{"__builtin_ia32_maskloadpd256", &&IX86_BUILTIN_MASKLOADPD256},
+    //{"__builtin_ia32_maskloadps", &&IX86_BUILTIN_MASKLOADPS},
+    //{"__builtin_ia32_maskloadps256", &&IX86_BUILTIN_MASKLOADPS256},
+    //{"__builtin_ia32_maskmovdqu", &&IX86_BUILTIN_MASKMOVDQU},
+    //{"__builtin_ia32_maskmovq", &&IX86_BUILTIN_MASKMOVQ},
+    //{"__builtin_ia32_maskstorepd", &&IX86_BUILTIN_MASKSTOREPD},
+    //{"__builtin_ia32_maskstorepd256", &&IX86_BUILTIN_MASKSTOREPD256},
+    //{"__builtin_ia32_maskstoreps", &&IX86_BUILTIN_MASKSTOREPS},
+    //{"__builtin_ia32_maskstoreps256", &&IX86_BUILTIN_MASKSTOREPS256},
+    //{"__builtin_ia32_maxpd", &&IX86_BUILTIN_MAXPD},
+    //{"__builtin_ia32_maxpd256", &&IX86_BUILTIN_MAXPD256},
+    //{"__builtin_ia32_maxps", &&IX86_BUILTIN_MAXPS},
+    //{"__builtin_ia32_maxps256", &&IX86_BUILTIN_MAXPS256},
+    //{"__builtin_ia32_maxsd", &&IX86_BUILTIN_MAXSD},
+    //{"__builtin_ia32_maxss", &&IX86_BUILTIN_MAXSS},
+    //{"__builtin_ia32_mfence", &&IX86_BUILTIN_MFENCE},
+    //{"__builtin_ia32_minpd", &&IX86_BUILTIN_MINPD},
+    //{"__builtin_ia32_minpd256", &&IX86_BUILTIN_MINPD256},
+    //{"__builtin_ia32_minps", &&IX86_BUILTIN_MINPS},
+    //{"__builtin_ia32_minps256", &&IX86_BUILTIN_MINPS256},
+    //{"__builtin_ia32_minsd", &&IX86_BUILTIN_MINSD},
+    //{"__builtin_ia32_minss", &&IX86_BUILTIN_MINSS},
+    //{"__builtin_ia32_monitor", &&IX86_BUILTIN_MONITOR},
+    //{"__builtin_ia32_movddup256", &&IX86_BUILTIN_MOVDDUP256},
     {"__builtin_ia32_movhlps", &&IX86_BUILTIN_MOVHLPS},
     {"__builtin_ia32_movlhps", &&IX86_BUILTIN_MOVLHPS},
+    //{"__builtin_ia32_movmskpd", &&IX86_BUILTIN_MOVMSKPD},
+    //{"__builtin_ia32_movmskpd256", &&IX86_BUILTIN_MOVMSKPD256},
+    //{"__builtin_ia32_movmskps", &&IX86_BUILTIN_MOVMSKPS},
+    //{"__builtin_ia32_movmskps256", &&IX86_BUILTIN_MOVMSKPS256},
+    //{"__builtin_ia32_movntdq", &&IX86_BUILTIN_MOVNTDQ},
+    //{"__builtin_ia32_movntdq256", &&IX86_BUILTIN_MOVNTDQ256},
+    //{"__builtin_ia32_movntdqa", &&IX86_BUILTIN_MOVNTDQA},
+    //{"__builtin_ia32_movnti", &&IX86_BUILTIN_MOVNTI},
+    //{"__builtin_ia32_movntpd", &&IX86_BUILTIN_MOVNTPD},
+    //{"__builtin_ia32_movntpd256", &&IX86_BUILTIN_MOVNTPD256},
+    //{"__builtin_ia32_movntps", &&IX86_BUILTIN_MOVNTPS},
+    //{"__builtin_ia32_movntps256", &&IX86_BUILTIN_MOVNTPS256},
+    //{"__builtin_ia32_movntq", &&IX86_BUILTIN_MOVNTQ},
+    //{"__builtin_ia32_movntsd", &&IX86_BUILTIN_MOVNTSD},
+    //{"__builtin_ia32_movntss", &&IX86_BUILTIN_MOVNTSS},
     {"__builtin_ia32_movq128", &&IX86_BUILTIN_MOVQ128},
     {"__builtin_ia32_movsd", &&IX86_BUILTIN_MOVSD},
     {"__builtin_ia32_movshdup", &&IX86_BUILTIN_MOVSHDUP},
-    {"__builtin_ia32_movshdup256", &&IX86_BUILTIN_MOVSHDUP},
+    //{"__builtin_ia32_movshdup256", &&IX86_BUILTIN_MOVSHDUP256},
     {"__builtin_ia32_movsldup", &&IX86_BUILTIN_MOVSLDUP},
-    {"__builtin_ia32_movsldup256", &&IX86_BUILTIN_MOVSLDUP},
+    //{"__builtin_ia32_movsldup256", &&IX86_BUILTIN_MOVSLDUP256},
     {"__builtin_ia32_movss", &&IX86_BUILTIN_MOVSS},
+    //{"__builtin_ia32_mpsadbw128", &&IX86_BUILTIN_MPSADBW128},
     {"__builtin_ia32_mulpd", &&IX86_BUILTIN_MULPD},
-    {"__builtin_ia32_mulpd256", &&IX86_BUILTIN_MULPD},
+    //{"__builtin_ia32_mulpd256", &&IX86_BUILTIN_MULPD256},
     {"__builtin_ia32_mulps", &&IX86_BUILTIN_MULPS},
-    {"__builtin_ia32_mulps256", &&IX86_BUILTIN_MULPS},
+    //{"__builtin_ia32_mulps256", &&IX86_BUILTIN_MULPS256},
+    //{"__builtin_ia32_mulsd", &&IX86_BUILTIN_MULSD},
+    //{"__builtin_ia32_mulss", &&IX86_BUILTIN_MULSS},
+    //{"__builtin_ia32_mwait", &&IX86_BUILTIN_MWAIT},
     {"__builtin_ia32_orpd", &&IX86_BUILTIN_ORPD},
-    {"__builtin_ia32_orpd256", &&IX86_BUILTIN_ORPD},
+    //{"__builtin_ia32_orpd256", &&IX86_BUILTIN_ORPD256},
     {"__builtin_ia32_orps", &&IX86_BUILTIN_ORPS},
-    {"__builtin_ia32_orps256", &&IX86_BUILTIN_ORPS},
+    //{"__builtin_ia32_orps256", &&IX86_BUILTIN_ORPS256},
+    //{"__builtin_ia32_pabsb", &&IX86_BUILTIN_PABSB},
+    //{"__builtin_ia32_pabsb128", &&IX86_BUILTIN_PABSB128},
+    //{"__builtin_ia32_pabsd", &&IX86_BUILTIN_PABSD},
+    //{"__builtin_ia32_pabsd128", &&IX86_BUILTIN_PABSD128},
+    //{"__builtin_ia32_pabsw", &&IX86_BUILTIN_PABSW},
+    //{"__builtin_ia32_pabsw128", &&IX86_BUILTIN_PABSW128},
+    //{"__builtin_ia32_packssdw", &&IX86_BUILTIN_PACKSSDW},
+    //{"__builtin_ia32_packssdw128", &&IX86_BUILTIN_PACKSSDW128},
+    //{"__builtin_ia32_packsswb", &&IX86_BUILTIN_PACKSSWB},
+    //{"__builtin_ia32_packsswb128", &&IX86_BUILTIN_PACKSSWB128},
+    //{"__builtin_ia32_packusdw128", &&IX86_BUILTIN_PACKUSDW128},
+    //{"__builtin_ia32_packuswb", &&IX86_BUILTIN_PACKUSWB},
+    //{"__builtin_ia32_packuswb128", &&IX86_BUILTIN_PACKUSWB128},
     {"__builtin_ia32_paddb", &&IX86_BUILTIN_PADDB},
     {"__builtin_ia32_paddb128", &&IX86_BUILTIN_PADDB128},
     {"__builtin_ia32_paddd", &&IX86_BUILTIN_PADDD},
     {"__builtin_ia32_paddd128", &&IX86_BUILTIN_PADDD128},
     {"__builtin_ia32_paddq", &&IX86_BUILTIN_PADDQ},
     {"__builtin_ia32_paddq128", &&IX86_BUILTIN_PADDQ128},
+    //{"__builtin_ia32_paddsb", &&IX86_BUILTIN_PADDSB},
+    //{"__builtin_ia32_paddsb128", &&IX86_BUILTIN_PADDSB128},
+    //{"__builtin_ia32_paddsw", &&IX86_BUILTIN_PADDSW},
+    //{"__builtin_ia32_paddsw128", &&IX86_BUILTIN_PADDSW128},
+    //{"__builtin_ia32_paddusb", &&IX86_BUILTIN_PADDUSB},
+    //{"__builtin_ia32_paddusb128", &&IX86_BUILTIN_PADDUSB128},
+    //{"__builtin_ia32_paddusw", &&IX86_BUILTIN_PADDUSW},
+    //{"__builtin_ia32_paddusw128", &&IX86_BUILTIN_PADDUSW128},
     {"__builtin_ia32_paddw", &&IX86_BUILTIN_PADDW},
     {"__builtin_ia32_paddw128", &&IX86_BUILTIN_PADDW128},
+    //{"__builtin_ia32_palignr", &&IX86_BUILTIN_PALIGNR},
+    //{"__builtin_ia32_palignr128", &&IX86_BUILTIN_PALIGNR128},
     {"__builtin_ia32_pand", &&IX86_BUILTIN_PAND},
     {"__builtin_ia32_pand128", &&IX86_BUILTIN_PAND128},
     {"__builtin_ia32_pandn", &&IX86_BUILTIN_PANDN},
     {"__builtin_ia32_pandn128", &&IX86_BUILTIN_PANDN128},
+    //{"__builtin_ia32_pavgb", &&IX86_BUILTIN_PAVGB},
+    //{"__builtin_ia32_pavgb128", &&IX86_BUILTIN_PAVGB128},
+    //{"__builtin_ia32_pavgusb", &&IX86_BUILTIN_PAVGUSB},
+    //{"__builtin_ia32_pavgw", &&IX86_BUILTIN_PAVGW},
+    //{"__builtin_ia32_pavgw128", &&IX86_BUILTIN_PAVGW128},
+    //{"__builtin_ia32_pblendvb128", &&IX86_BUILTIN_PBLENDVB128},
+    //{"__builtin_ia32_pblendw128", &&IX86_BUILTIN_PBLENDW128},
+    //{"__builtin_ia32_pclmulqdq128", &&IX86_BUILTIN_PCLMULQDQ128},
+    //{"__builtin_ia32_pcmpeqb", &&IX86_BUILTIN_PCMPEQB},
+    //{"__builtin_ia32_pcmpeqb128", &&IX86_BUILTIN_PCMPEQB128},
+    //{"__builtin_ia32_pcmpeqd", &&IX86_BUILTIN_PCMPEQD},
+    //{"__builtin_ia32_pcmpeqd128", &&IX86_BUILTIN_PCMPEQD128},
+    //{"__builtin_ia32_pcmpeqq", &&IX86_BUILTIN_PCMPEQQ},
+    //{"__builtin_ia32_pcmpeqw", &&IX86_BUILTIN_PCMPEQW},
+    //{"__builtin_ia32_pcmpeqw128", &&IX86_BUILTIN_PCMPEQW128},
+    //{"__builtin_ia32_pcmpestri128", &&IX86_BUILTIN_PCMPESTRI128},
+    //{"__builtin_ia32_pcmpestria128", &&IX86_BUILTIN_PCMPESTRA128},
+    //{"__builtin_ia32_pcmpestric128", &&IX86_BUILTIN_PCMPESTRC128},
+    //{"__builtin_ia32_pcmpestrio128", &&IX86_BUILTIN_PCMPESTRO128},
+    //{"__builtin_ia32_pcmpestris128", &&IX86_BUILTIN_PCMPESTRS128},
+    //{"__builtin_ia32_pcmpestriz128", &&IX86_BUILTIN_PCMPESTRZ128},
+    //{"__builtin_ia32_pcmpestrm128", &&IX86_BUILTIN_PCMPESTRM128},
+    //{"__builtin_ia32_pcmpgtb", &&IX86_BUILTIN_PCMPGTB},
+    //{"__builtin_ia32_pcmpgtb128", &&IX86_BUILTIN_PCMPGTB128},
+    //{"__builtin_ia32_pcmpgtd", &&IX86_BUILTIN_PCMPGTD},
+    //{"__builtin_ia32_pcmpgtd128", &&IX86_BUILTIN_PCMPGTD128},
+    //{"__builtin_ia32_pcmpgtq", &&IX86_BUILTIN_PCMPGTQ},
+    //{"__builtin_ia32_pcmpgtw", &&IX86_BUILTIN_PCMPGTW},
+    //{"__builtin_ia32_pcmpgtw128", &&IX86_BUILTIN_PCMPGTW128},
+    //{"__builtin_ia32_pcmpistri128", &&IX86_BUILTIN_PCMPISTRI128},
+    //{"__builtin_ia32_pcmpistria128", &&IX86_BUILTIN_PCMPISTRA128},
+    //{"__builtin_ia32_pcmpistric128", &&IX86_BUILTIN_PCMPISTRC128},
+    //{"__builtin_ia32_pcmpistrio128", &&IX86_BUILTIN_PCMPISTRO128},
+    //{"__builtin_ia32_pcmpistris128", &&IX86_BUILTIN_PCMPISTRS128},
+    //{"__builtin_ia32_pcmpistriz128", &&IX86_BUILTIN_PCMPISTRZ128},
+    //{"__builtin_ia32_pcmpistrm128", &&IX86_BUILTIN_PCMPISTRM128},
+    //{"__builtin_ia32_pd256_pd", &&IX86_BUILTIN_PD256_PD},
+    //{"__builtin_ia32_pd_pd256", &&IX86_BUILTIN_PD_PD256},
+    //{"__builtin_ia32_pf2id", &&IX86_BUILTIN_PF2ID},
+    //{"__builtin_ia32_pf2iw", &&IX86_BUILTIN_PF2IW},
+    //{"__builtin_ia32_pfacc", &&IX86_BUILTIN_PFACC},
+    //{"__builtin_ia32_pfadd", &&IX86_BUILTIN_PFADD},
+    //{"__builtin_ia32_pfcmpeq", &&IX86_BUILTIN_PFCMPEQ},
+    //{"__builtin_ia32_pfcmpge", &&IX86_BUILTIN_PFCMPGE},
+    //{"__builtin_ia32_pfcmpgt", &&IX86_BUILTIN_PFCMPGT},
+    //{"__builtin_ia32_pfmax", &&IX86_BUILTIN_PFMAX},
+    //{"__builtin_ia32_pfmin", &&IX86_BUILTIN_PFMIN},
+    //{"__builtin_ia32_pfmul", &&IX86_BUILTIN_PFMUL},
+    //{"__builtin_ia32_pfnacc", &&IX86_BUILTIN_PFNACC},
+    //{"__builtin_ia32_pfpnacc", &&IX86_BUILTIN_PFPNACC},
+    //{"__builtin_ia32_pfrcp", &&IX86_BUILTIN_PFRCP},
+    //{"__builtin_ia32_pfrcpit1", &&IX86_BUILTIN_PFRCPIT1},
+    //{"__builtin_ia32_pfrcpit2", &&IX86_BUILTIN_PFRCPIT2},
+    //{"__builtin_ia32_pfrsqit1", &&IX86_BUILTIN_PFRSQIT1},
+    //{"__builtin_ia32_pfrsqrt", &&IX86_BUILTIN_PFRSQRT},
+    //{"__builtin_ia32_pfsub", &&IX86_BUILTIN_PFSUB},
+    //{"__builtin_ia32_pfsubr", &&IX86_BUILTIN_PFSUBR},
+    //{"__builtin_ia32_phaddd", &&IX86_BUILTIN_PHADDD},
+    //{"__builtin_ia32_phaddd128", &&IX86_BUILTIN_PHADDD128},
+    //{"__builtin_ia32_phaddsw", &&IX86_BUILTIN_PHADDSW},
+    //{"__builtin_ia32_phaddsw128", &&IX86_BUILTIN_PHADDSW128},
+    //{"__builtin_ia32_phaddw", &&IX86_BUILTIN_PHADDW},
+    //{"__builtin_ia32_phaddw128", &&IX86_BUILTIN_PHADDW128},
+    //{"__builtin_ia32_phminposuw128", &&IX86_BUILTIN_PHMINPOSUW128},
+    //{"__builtin_ia32_phsubd", &&IX86_BUILTIN_PHSUBD},
+    //{"__builtin_ia32_phsubd128", &&IX86_BUILTIN_PHSUBD128},
+    //{"__builtin_ia32_phsubsw", &&IX86_BUILTIN_PHSUBSW},
+    //{"__builtin_ia32_phsubsw128", &&IX86_BUILTIN_PHSUBSW128},
+    //{"__builtin_ia32_phsubw", &&IX86_BUILTIN_PHSUBW},
+    //{"__builtin_ia32_phsubw128", &&IX86_BUILTIN_PHSUBW128},
+    //{"__builtin_ia32_pi2fd", &&IX86_BUILTIN_PI2FD},
+    //{"__builtin_ia32_pi2fw", &&IX86_BUILTIN_PI2FW},
+    //{"__builtin_ia32_pmaddubsw", &&IX86_BUILTIN_PMADDUBSW},
+    //{"__builtin_ia32_pmaddubsw128", &&IX86_BUILTIN_PMADDUBSW128},
+    //{"__builtin_ia32_pmaddwd", &&IX86_BUILTIN_PMADDWD},
+    //{"__builtin_ia32_pmaddwd128", &&IX86_BUILTIN_PMADDWD128},
+    //{"__builtin_ia32_pmaxsb128", &&IX86_BUILTIN_PMAXSB128},
+    //{"__builtin_ia32_pmaxsd128", &&IX86_BUILTIN_PMAXSD128},
+    //{"__builtin_ia32_pmaxsw", &&IX86_BUILTIN_PMAXSW},
+    //{"__builtin_ia32_pmaxsw128", &&IX86_BUILTIN_PMAXSW128},
+    //{"__builtin_ia32_pmaxub", &&IX86_BUILTIN_PMAXUB},
+    //{"__builtin_ia32_pmaxub128", &&IX86_BUILTIN_PMAXUB128},
+    //{"__builtin_ia32_pmaxud128", &&IX86_BUILTIN_PMAXUD128},
+    //{"__builtin_ia32_pmaxuw128", &&IX86_BUILTIN_PMAXUW128},
+    //{"__builtin_ia32_pminsb128", &&IX86_BUILTIN_PMINSB128},
+    //{"__builtin_ia32_pminsd128", &&IX86_BUILTIN_PMINSD128},
+    //{"__builtin_ia32_pminsw", &&IX86_BUILTIN_PMINSW},
+    //{"__builtin_ia32_pminsw128", &&IX86_BUILTIN_PMINSW128},
+    //{"__builtin_ia32_pminub", &&IX86_BUILTIN_PMINUB},
+    //{"__builtin_ia32_pminub128", &&IX86_BUILTIN_PMINUB128},
+    //{"__builtin_ia32_pminud128", &&IX86_BUILTIN_PMINUD128},
+    //{"__builtin_ia32_pminuw128", &&IX86_BUILTIN_PMINUW128},
+    //{"__builtin_ia32_pmovmskb", &&IX86_BUILTIN_PMOVMSKB},
+    //{"__builtin_ia32_pmovmskb128", &&IX86_BUILTIN_PMOVMSKB128},
+    //{"__builtin_ia32_pmovsxbd128", &&IX86_BUILTIN_PMOVSXBD128},
+    //{"__builtin_ia32_pmovsxbq128", &&IX86_BUILTIN_PMOVSXBQ128},
+    //{"__builtin_ia32_pmovsxbw128", &&IX86_BUILTIN_PMOVSXBW128},
+    //{"__builtin_ia32_pmovsxdq128", &&IX86_BUILTIN_PMOVSXDQ128},
+    //{"__builtin_ia32_pmovsxwd128", &&IX86_BUILTIN_PMOVSXWD128},
+    //{"__builtin_ia32_pmovsxwq128", &&IX86_BUILTIN_PMOVSXWQ128},
+    //{"__builtin_ia32_pmovzxbd128", &&IX86_BUILTIN_PMOVZXBD128},
+    //{"__builtin_ia32_pmovzxbq128", &&IX86_BUILTIN_PMOVZXBQ128},
+    //{"__builtin_ia32_pmovzxbw128", &&IX86_BUILTIN_PMOVZXBW128},
+    //{"__builtin_ia32_pmovzxdq128", &&IX86_BUILTIN_PMOVZXDQ128},
+    //{"__builtin_ia32_pmovzxwd128", &&IX86_BUILTIN_PMOVZXWD128},
+    //{"__builtin_ia32_pmovzxwq128", &&IX86_BUILTIN_PMOVZXWQ128},
+    //{"__builtin_ia32_pmuldq128", &&IX86_BUILTIN_PMULDQ128},
+    //{"__builtin_ia32_pmulhrsw", &&IX86_BUILTIN_PMULHRSW},
+    //{"__builtin_ia32_pmulhrsw128", &&IX86_BUILTIN_PMULHRSW128},
+    //{"__builtin_ia32_pmulhrw", &&IX86_BUILTIN_PMULHRW},
+    //{"__builtin_ia32_pmulhuw", &&IX86_BUILTIN_PMULHUW},
+    //{"__builtin_ia32_pmulhuw128", &&IX86_BUILTIN_PMULHUW128},
+    //{"__builtin_ia32_pmulhw", &&IX86_BUILTIN_PMULHW},
+    //{"__builtin_ia32_pmulhw128", &&IX86_BUILTIN_PMULHW128},
+    //{"__builtin_ia32_pmulld128", &&IX86_BUILTIN_PMULLD128},
     {"__builtin_ia32_pmullw", &&IX86_BUILTIN_PMULLW},
     {"__builtin_ia32_pmullw128", &&IX86_BUILTIN_PMULLW128},
+    //{"__builtin_ia32_pmuludq", &&IX86_BUILTIN_PMULUDQ},
+    //{"__builtin_ia32_pmuludq128", &&IX86_BUILTIN_PMULUDQ128},
     {"__builtin_ia32_por", &&IX86_BUILTIN_POR},
     {"__builtin_ia32_por128", &&IX86_BUILTIN_POR128},
+    //{"__builtin_ia32_ps256_ps", &&IX86_BUILTIN_PS256_PS},
+    //{"__builtin_ia32_psadbw", &&IX86_BUILTIN_PSADBW},
+    //{"__builtin_ia32_psadbw128", &&IX86_BUILTIN_PSADBW128},
+    //{"__builtin_ia32_pshufb", &&IX86_BUILTIN_PSHUFB},
+    //{"__builtin_ia32_pshufb128", &&IX86_BUILTIN_PSHUFB128},
     {"__builtin_ia32_pshufd", &&IX86_BUILTIN_PSHUFD},
     {"__builtin_ia32_pshufhw", &&IX86_BUILTIN_PSHUFHW},
     {"__builtin_ia32_pshuflw", &&IX86_BUILTIN_PSHUFLW},
     {"__builtin_ia32_pshufw", &&IX86_BUILTIN_PSHUFW},
+    //{"__builtin_ia32_psignb", &&IX86_BUILTIN_PSIGNB},
+    //{"__builtin_ia32_psignb128", &&IX86_BUILTIN_PSIGNB128},
+    //{"__builtin_ia32_psignd", &&IX86_BUILTIN_PSIGND},
+    //{"__builtin_ia32_psignd128", &&IX86_BUILTIN_PSIGND128},
+    //{"__builtin_ia32_psignw", &&IX86_BUILTIN_PSIGNW},
+    //{"__builtin_ia32_psignw128", &&IX86_BUILTIN_PSIGNW128},
+    //{"__builtin_ia32_pslld", &&IX86_BUILTIN_PSLLD},
+    //{"__builtin_ia32_pslld128", &&IX86_BUILTIN_PSLLD128},
+    //{"__builtin_ia32_pslldi", &&IX86_BUILTIN_PSLLDI},
+    //{"__builtin_ia32_pslldi128", &&IX86_BUILTIN_PSLLDI128},
+    //{"__builtin_ia32_pslldqi128", &&IX86_BUILTIN_PSLLDQI128},
+    //{"__builtin_ia32_psllq", &&IX86_BUILTIN_PSLLQ},
+    //{"__builtin_ia32_psllq128", &&IX86_BUILTIN_PSLLQ128},
+    //{"__builtin_ia32_psllqi", &&IX86_BUILTIN_PSLLQI},
+    //{"__builtin_ia32_psllqi128", &&IX86_BUILTIN_PSLLQI128},
+    //{"__builtin_ia32_psllw", &&IX86_BUILTIN_PSLLW},
+    //{"__builtin_ia32_psllw128", &&IX86_BUILTIN_PSLLW128},
+    //{"__builtin_ia32_psllwi", &&IX86_BUILTIN_PSLLWI},
+    //{"__builtin_ia32_psllwi128", &&IX86_BUILTIN_PSLLWI128},
+    //{"__builtin_ia32_ps_ps256", &&IX86_BUILTIN_PS_PS256},
+    //{"__builtin_ia32_psrad", &&IX86_BUILTIN_PSRAD},
+    //{"__builtin_ia32_psrad128", &&IX86_BUILTIN_PSRAD128},
+    //{"__builtin_ia32_psradi", &&IX86_BUILTIN_PSRADI},
+    //{"__builtin_ia32_psradi128", &&IX86_BUILTIN_PSRADI128},
+    //{"__builtin_ia32_psraw", &&IX86_BUILTIN_PSRAW},
+    //{"__builtin_ia32_psraw128", &&IX86_BUILTIN_PSRAW128},
+    //{"__builtin_ia32_psrawi", &&IX86_BUILTIN_PSRAWI},
+    //{"__builtin_ia32_psrawi128", &&IX86_BUILTIN_PSRAWI128},
+    //{"__builtin_ia32_psrld", &&IX86_BUILTIN_PSRLD},
+    //{"__builtin_ia32_psrld128", &&IX86_BUILTIN_PSRLD128},
+    //{"__builtin_ia32_psrldi", &&IX86_BUILTIN_PSRLDI},
+    //{"__builtin_ia32_psrldi128", &&IX86_BUILTIN_PSRLDI128},
+    //{"__builtin_ia32_psrldqi128", &&IX86_BUILTIN_PSRLDQI128},
+    //{"__builtin_ia32_psrlq", &&IX86_BUILTIN_PSRLQ},
+    //{"__builtin_ia32_psrlq128", &&IX86_BUILTIN_PSRLQ128},
+    //{"__builtin_ia32_psrlqi", &&IX86_BUILTIN_PSRLQI},
+    //{"__builtin_ia32_psrlqi128", &&IX86_BUILTIN_PSRLQI128},
+    //{"__builtin_ia32_psrlw", &&IX86_BUILTIN_PSRLW},
+    //{"__builtin_ia32_psrlw128", &&IX86_BUILTIN_PSRLW128},
+    //{"__builtin_ia32_psrlwi", &&IX86_BUILTIN_PSRLWI},
+    //{"__builtin_ia32_psrlwi128", &&IX86_BUILTIN_PSRLWI128},
     {"__builtin_ia32_psubb", &&IX86_BUILTIN_PSUBB},
     {"__builtin_ia32_psubb128", &&IX86_BUILTIN_PSUBB128},
     {"__builtin_ia32_psubd", &&IX86_BUILTIN_PSUBD},
     {"__builtin_ia32_psubd128", &&IX86_BUILTIN_PSUBD128},
     {"__builtin_ia32_psubq", &&IX86_BUILTIN_PSUBQ},
     {"__builtin_ia32_psubq128", &&IX86_BUILTIN_PSUBQ128},
+    //{"__builtin_ia32_psubsb", &&IX86_BUILTIN_PSUBSB},
+    //{"__builtin_ia32_psubsb128", &&IX86_BUILTIN_PSUBSB128},
+    //{"__builtin_ia32_psubsw", &&IX86_BUILTIN_PSUBSW},
+    //{"__builtin_ia32_psubsw128", &&IX86_BUILTIN_PSUBSW128},
+    //{"__builtin_ia32_psubusb", &&IX86_BUILTIN_PSUBUSB},
+    //{"__builtin_ia32_psubusb128", &&IX86_BUILTIN_PSUBUSB128},
+    //{"__builtin_ia32_psubusw", &&IX86_BUILTIN_PSUBUSW},
+    //{"__builtin_ia32_psubusw128", &&IX86_BUILTIN_PSUBUSW128},
     {"__builtin_ia32_psubw", &&IX86_BUILTIN_PSUBW},
     {"__builtin_ia32_psubw128", &&IX86_BUILTIN_PSUBW128},
+    //{"__builtin_ia32_pswapdsf", &&IX86_BUILTIN_PSWAPDSF},
+    //{"__builtin_ia32_pswapdsi", &&IX86_BUILTIN_PSWAPDSI},
+    //{"__builtin_ia32_ptestc128", &&IX86_BUILTIN_PTESTC},
+    //{"__builtin_ia32_ptestc256", &&IX86_BUILTIN_PTESTC256},
+    //{"__builtin_ia32_ptestnzc128", &&IX86_BUILTIN_PTESTNZC},
+    //{"__builtin_ia32_ptestnzc256", &&IX86_BUILTIN_PTESTNZC256},
+    //{"__builtin_ia32_ptestz128", &&IX86_BUILTIN_PTESTZ},
+    //{"__builtin_ia32_ptestz256", &&IX86_BUILTIN_PTESTZ256},
     {"__builtin_ia32_punpckhbw", &&IX86_BUILTIN_PUNPCKHBW},
     {"__builtin_ia32_punpckhbw128", &&IX86_BUILTIN_PUNPCKHBW128},
     {"__builtin_ia32_punpckhdq", &&IX86_BUILTIN_PUNPCKHDQ},
@@ -211,31 +566,83 @@
     {"__builtin_ia32_punpcklwd128", &&IX86_BUILTIN_PUNPCKLWD128},
     {"__builtin_ia32_pxor", &&IX86_BUILTIN_PXOR},
     {"__builtin_ia32_pxor128", &&IX86_BUILTIN_PXOR128},
+    //{"__builtin_ia32_rcpps", &&IX86_BUILTIN_RCPPS},
+    //{"__builtin_ia32_rcpps256", &&IX86_BUILTIN_RCPPS256},
+    //{"__builtin_ia32_rcpss", &&IX86_BUILTIN_RCPSS},
+    //{"__builtin_ia32_rdpmc", &&IX86_BUILTIN_RDPMC},
+    //{"__builtin_ia32_rdtsc", &&IX86_BUILTIN_RDTSC},
+    //{"__builtin_ia32_rdtscp", &&IX86_BUILTIN_RDTSCP},
+    //{"__builtin_ia32_rolhi", &&IX86_BUILTIN_ROLHI},
+    //{"__builtin_ia32_rolqi", &&IX86_BUILTIN_ROLQI},
+    //{"__builtin_ia32_rorhi", &&IX86_BUILTIN_RORHI},
+    //{"__builtin_ia32_rorqi", &&IX86_BUILTIN_RORQI},
+    //{"__builtin_ia32_roundpd", &&IX86_BUILTIN_ROUNDPD},
+    //{"__builtin_ia32_roundpd256", &&IX86_BUILTIN_ROUNDPD256},
+    //{"__builtin_ia32_roundps", &&IX86_BUILTIN_ROUNDPS},
+    //{"__builtin_ia32_roundps256", &&IX86_BUILTIN_ROUNDPS256},
+    //{"__builtin_ia32_roundsd", &&IX86_BUILTIN_ROUNDSD},
+    //{"__builtin_ia32_roundss", &&IX86_BUILTIN_ROUNDSS},
+    //{"__builtin_ia32_rsqrtf", &&IX86_BUILTIN_RSQRTF},
+    //{"__builtin_ia32_rsqrtps", &&IX86_BUILTIN_RSQRTPS},
+    //{"__builtin_ia32_rsqrtps256", &&IX86_BUILTIN_RSQRTPS256},
+    //{"__builtin_ia32_rsqrtps_nr", &&IX86_BUILTIN_RSQRTPS_NR},
+    //{"__builtin_ia32_rsqrtps_nr256", &&IX86_BUILTIN_RSQRTPS_NR256},
+    //{"__builtin_ia32_rsqrtss", &&IX86_BUILTIN_RSQRTSS},
+    //{"__builtin_ia32_sfence", &&IX86_BUILTIN_SFENCE},
     {"__builtin_ia32_shufpd", &&IX86_BUILTIN_SHUFPD},
-    {"__builtin_ia32_shufpd256", &&IX86_BUILTIN_SHUFPD},
+    //{"__builtin_ia32_shufpd256", &&IX86_BUILTIN_SHUFPD256},
     {"__builtin_ia32_shufps", &&IX86_BUILTIN_SHUFPS},
-    {"__builtin_ia32_shufps256", &&IX86_BUILTIN_SHUFPS},
+    //{"__builtin_ia32_shufps256", &&IX86_BUILTIN_SHUFPS256},
+    //{"__builtin_ia32_si256_si", &&IX86_BUILTIN_SI256_SI},
+    //{"__builtin_ia32_si_si256", &&IX86_BUILTIN_SI_SI256},
+    //{"__builtin_ia32_sqrtpd", &&IX86_BUILTIN_SQRTPD},
+    //{"__builtin_ia32_sqrtpd256", &&IX86_BUILTIN_SQRTPD256},
+    //{"__builtin_ia32_sqrtps", &&IX86_BUILTIN_SQRTPS},
+    //{"__builtin_ia32_sqrtps256", &&IX86_BUILTIN_SQRTPS256},
+    //{"__builtin_ia32_sqrtps_nr", &&IX86_BUILTIN_SQRTPS_NR},
+    //{"__builtin_ia32_sqrtps_nr256", &&IX86_BUILTIN_SQRTPS_NR256},
+    //{"__builtin_ia32_sqrtsd", &&IX86_BUILTIN_SQRTSD},
+    //{"__builtin_ia32_sqrtss", &&IX86_BUILTIN_SQRTSS},
     {"__builtin_ia32_stmxcsr", &&IX86_BUILTIN_STMXCSR},
     {"__builtin_ia32_storedqu", &&IX86_BUILTIN_STOREDQU},
-    {"__builtin_ia32_storedqu256", &&IX86_BUILTIN_STOREDQU},
+    //{"__builtin_ia32_storedqu256", &&IX86_BUILTIN_STOREDQU256},
     {"__builtin_ia32_storehps", &&IX86_BUILTIN_STOREHPS},
     {"__builtin_ia32_storelps", &&IX86_BUILTIN_STORELPS},
     {"__builtin_ia32_storeupd", &&IX86_BUILTIN_STOREUPD},
-    {"__builtin_ia32_storeupd256", &&IX86_BUILTIN_STOREUPD},
+    //{"__builtin_ia32_storeupd256", &&IX86_BUILTIN_STOREUPD256},
     {"__builtin_ia32_storeups", &&IX86_BUILTIN_STOREUPS},
-    {"__builtin_ia32_storeups256", &&IX86_BUILTIN_STOREUPS},
+    //{"__builtin_ia32_storeups256", &&IX86_BUILTIN_STOREUPS256},
     {"__builtin_ia32_subpd", &&IX86_BUILTIN_SUBPD},
-    {"__builtin_ia32_subpd256", &&IX86_BUILTIN_SUBPD},
+    //{"__builtin_ia32_subpd256", &&IX86_BUILTIN_SUBPD256},
     {"__builtin_ia32_subps", &&IX86_BUILTIN_SUBPS},
-    {"__builtin_ia32_subps256", &&IX86_BUILTIN_SUBPS},
+    //{"__builtin_ia32_subps256", &&IX86_BUILTIN_SUBPS256},
+    //{"__builtin_ia32_subsd", &&IX86_BUILTIN_SUBSD},
+    //{"__builtin_ia32_subss", &&IX86_BUILTIN_SUBSS},
+    //{"__builtin_ia32_ucomieq", &&IX86_BUILTIN_UCOMIEQSS},
+    //{"__builtin_ia32_ucomige", &&IX86_BUILTIN_UCOMIGESS},
+    //{"__builtin_ia32_ucomigt", &&IX86_BUILTIN_UCOMIGTSS},
+    //{"__builtin_ia32_ucomile", &&IX86_BUILTIN_UCOMILESS},
+    //{"__builtin_ia32_ucomilt", &&IX86_BUILTIN_UCOMILTSS},
+    //{"__builtin_ia32_ucomineq", &&IX86_BUILTIN_UCOMINEQSS},
+    //{"__builtin_ia32_ucomisdeq", &&IX86_BUILTIN_UCOMIEQSD},
+    //{"__builtin_ia32_ucomisdge", &&IX86_BUILTIN_UCOMIGESD},
+    //{"__builtin_ia32_ucomisdgt", &&IX86_BUILTIN_UCOMIGTSD},
+    //{"__builtin_ia32_ucomisdle", &&IX86_BUILTIN_UCOMILESD},
+    //{"__builtin_ia32_ucomisdlt", &&IX86_BUILTIN_UCOMILTSD},
+    //{"__builtin_ia32_ucomisdneq", &&IX86_BUILTIN_UCOMINEQSD},
     {"__builtin_ia32_unpckhpd", &&IX86_BUILTIN_UNPCKHPD},
-    {"__builtin_ia32_unpckhpd256", &&IX86_BUILTIN_UNPCKHPD},
+    //{"__builtin_ia32_unpckhpd256", &&IX86_BUILTIN_UNPCKHPD256},
     {"__builtin_ia32_unpckhps", &&IX86_BUILTIN_UNPCKHPS},
-    {"__builtin_ia32_unpckhps256", &&IX86_BUILTIN_UNPCKHPS},
+    //{"__builtin_ia32_unpckhps256", &&IX86_BUILTIN_UNPCKHPS256},
     {"__builtin_ia32_unpcklpd", &&IX86_BUILTIN_UNPCKLPD},
-    {"__builtin_ia32_unpcklpd256", &&IX86_BUILTIN_UNPCKLPD},
+    //{"__builtin_ia32_unpcklpd256", &&IX86_BUILTIN_UNPCKLPD256},
     {"__builtin_ia32_unpcklps", &&IX86_BUILTIN_UNPCKLPS},
-    {"__builtin_ia32_unpcklps256", &&IX86_BUILTIN_UNPCKLPS},
+    //{"__builtin_ia32_unpcklps256", &&IX86_BUILTIN_UNPCKLPS256},
+    //{"__builtin_ia32_vbroadcastf128_pd256", &&IX86_BUILTIN_VBROADCASTPD256},
+    //{"__builtin_ia32_vbroadcastf128_ps256", &&IX86_BUILTIN_VBROADCASTPS256},
+    //{"__builtin_ia32_vbroadcastsd256", &&IX86_BUILTIN_VBROADCASTSD256},
+    //{"__builtin_ia32_vbroadcastss", &&IX86_BUILTIN_VBROADCASTSS},
+    //{"__builtin_ia32_vbroadcastss256", &&IX86_BUILTIN_VBROADCASTSS256},
     {"__builtin_ia32_vec_ext_v16qi", &&IX86_BUILTIN_VEC_EXT_V16QI},
     {"__builtin_ia32_vec_ext_v2df", &&IX86_BUILTIN_VEC_EXT_V2DF},
     {"__builtin_ia32_vec_ext_v2di", &&IX86_BUILTIN_VEC_EXT_V2DI},
@@ -247,15 +654,79 @@
     {"__builtin_ia32_vec_init_v2si", &&IX86_BUILTIN_VEC_INIT_V2SI},
     {"__builtin_ia32_vec_init_v4hi", &&IX86_BUILTIN_VEC_INIT_V4HI},
     {"__builtin_ia32_vec_init_v8qi", &&IX86_BUILTIN_VEC_INIT_V8QI},
+    //{"__builtin_ia32_vec_pack_sfix", &&IX86_BUILTIN_VEC_PACK_SFIX},
     {"__builtin_ia32_vec_set_v16qi", &&IX86_BUILTIN_VEC_SET_V16QI},
     {"__builtin_ia32_vec_set_v2di", &&IX86_BUILTIN_VEC_SET_V2DI},
     {"__builtin_ia32_vec_set_v4hi", &&IX86_BUILTIN_VEC_SET_V4HI},
+    //{"__builtin_ia32_vec_set_v4sf", &&IX86_BUILTIN_VEC_SET_V4SF},
     {"__builtin_ia32_vec_set_v4si", &&IX86_BUILTIN_VEC_SET_V4SI},
     {"__builtin_ia32_vec_set_v8hi", &&IX86_BUILTIN_VEC_SET_V8HI},
+    //{"__builtin_ia32_vextractf128_pd256", &&IX86_BUILTIN_EXTRACTF128PD256},
+    //{"__builtin_ia32_vextractf128_ps256", &&IX86_BUILTIN_EXTRACTF128PS256},
+    //{"__builtin_ia32_vextractf128_si256", &&IX86_BUILTIN_EXTRACTF128SI256},
+    //{"__builtin_ia32_vfmaddpd", &&IX86_BUILTIN_VFMADDPD},
+    //{"__builtin_ia32_vfmaddpd256", &&IX86_BUILTIN_VFMADDPD256},
+    //{"__builtin_ia32_vfmaddps", &&IX86_BUILTIN_VFMADDPS},
+    //{"__builtin_ia32_vfmaddps256", &&IX86_BUILTIN_VFMADDPS256},
+    //{"__builtin_ia32_vfmaddsd", &&IX86_BUILTIN_VFMADDSD},
+    //{"__builtin_ia32_vfmaddss", &&IX86_BUILTIN_VFMADDSS},
+    //{"__builtin_ia32_vfmaddsubpd", &&IX86_BUILTIN_VFMADDSUBPD},
+    //{"__builtin_ia32_vfmaddsubpd256", &&IX86_BUILTIN_VFMADDSUBPD256},
+    //{"__builtin_ia32_vfmaddsubps", &&IX86_BUILTIN_VFMADDSUBPS},
+    //{"__builtin_ia32_vfmaddsubps256", &&IX86_BUILTIN_VFMADDSUBPS256},
+    //{"__builtin_ia32_vfmsubaddpd", &&IX86_BUILTIN_VFMSUBADDPD},
+    //{"__builtin_ia32_vfmsubaddpd256", &&IX86_BUILTIN_VFMSUBADDPD256},
+    //{"__builtin_ia32_vfmsubaddps", &&IX86_BUILTIN_VFMSUBADDPS},
+    //{"__builtin_ia32_vfmsubaddps256", &&IX86_BUILTIN_VFMSUBADDPS256},
+    //{"__builtin_ia32_vfmsubpd", &&IX86_BUILTIN_VFMSUBPD},
+    //{"__builtin_ia32_vfmsubpd256", &&IX86_BUILTIN_VFMSUBPD256},
+    //{"__builtin_ia32_vfmsubps", &&IX86_BUILTIN_VFMSUBPS},
+    //{"__builtin_ia32_vfmsubps256", &&IX86_BUILTIN_VFMSUBPS256},
+    //{"__builtin_ia32_vfmsubsd", &&IX86_BUILTIN_VFMSUBSD},
+    //{"__builtin_ia32_vfmsubss", &&IX86_BUILTIN_VFMSUBSS},
+    //{"__builtin_ia32_vfnmaddpd", &&IX86_BUILTIN_VFNMADDPD},
+    //{"__builtin_ia32_vfnmaddpd256", &&IX86_BUILTIN_VFNMADDPD256},
+    //{"__builtin_ia32_vfnmaddps", &&IX86_BUILTIN_VFNMADDPS},
+    //{"__builtin_ia32_vfnmaddps256", &&IX86_BUILTIN_VFNMADDPS256},
+    //{"__builtin_ia32_vfnmaddsd", &&IX86_BUILTIN_VFNMADDSD},
+    //{"__builtin_ia32_vfnmaddss", &&IX86_BUILTIN_VFNMADDSS},
+    //{"__builtin_ia32_vfnmsubpd", &&IX86_BUILTIN_VFNMSUBPD},
+    //{"__builtin_ia32_vfnmsubpd256", &&IX86_BUILTIN_VFNMSUBPD256},
+    //{"__builtin_ia32_vfnmsubps", &&IX86_BUILTIN_VFNMSUBPS},
+    //{"__builtin_ia32_vfnmsubps256", &&IX86_BUILTIN_VFNMSUBPS256},
+    //{"__builtin_ia32_vfnmsubsd", &&IX86_BUILTIN_VFNMSUBSD},
+    //{"__builtin_ia32_vfnmsubss", &&IX86_BUILTIN_VFNMSUBSS},
+    //{"__builtin_ia32_vinsertf128_pd256", &&IX86_BUILTIN_VINSERTF128PD256},
+    //{"__builtin_ia32_vinsertf128_ps256", &&IX86_BUILTIN_VINSERTF128PS256},
+    //{"__builtin_ia32_vinsertf128_si256", &&IX86_BUILTIN_VINSERTF128SI256},
+    //{"__builtin_ia32_vperm2f128_pd256", &&IX86_BUILTIN_VPERM2F128PD256},
+    //{"__builtin_ia32_vperm2f128_ps256", &&IX86_BUILTIN_VPERM2F128PS256},
+    //{"__builtin_ia32_vperm2f128_si256", &&IX86_BUILTIN_VPERM2F128SI256},
+    //{"__builtin_ia32_vpermilpd", &&IX86_BUILTIN_VPERMILPD},
+    //{"__builtin_ia32_vpermilpd256", &&IX86_BUILTIN_VPERMILPD256},
+    //{"__builtin_ia32_vpermilps", &&IX86_BUILTIN_VPERMILPS},
+    //{"__builtin_ia32_vpermilps256", &&IX86_BUILTIN_VPERMILPS256},
+    //{"__builtin_ia32_vpermilvarpd", &&IX86_BUILTIN_VPERMILVARPD},
+    //{"__builtin_ia32_vpermilvarpd256", &&IX86_BUILTIN_VPERMILVARPD256},
+    //{"__builtin_ia32_vpermilvarps", &&IX86_BUILTIN_VPERMILVARPS},
+    //{"__builtin_ia32_vpermilvarps256", &&IX86_BUILTIN_VPERMILVARPS256},
+    //{"__builtin_ia32_vtestcpd", &&IX86_BUILTIN_VTESTCPD},
+    //{"__builtin_ia32_vtestcpd256", &&IX86_BUILTIN_VTESTCPD256},
+    //{"__builtin_ia32_vtestcps", &&IX86_BUILTIN_VTESTCPS},
+    //{"__builtin_ia32_vtestcps256", &&IX86_BUILTIN_VTESTCPS256},
+    //{"__builtin_ia32_vtestnzcpd", &&IX86_BUILTIN_VTESTNZCPD},
+    //{"__builtin_ia32_vtestnzcpd256", &&IX86_BUILTIN_VTESTNZCPD256},
+    //{"__builtin_ia32_vtestnzcps", &&IX86_BUILTIN_VTESTNZCPS},
+    //{"__builtin_ia32_vtestnzcps256", &&IX86_BUILTIN_VTESTNZCPS256},
+    //{"__builtin_ia32_vtestzpd", &&IX86_BUILTIN_VTESTZPD},
+    //{"__builtin_ia32_vtestzpd256", &&IX86_BUILTIN_VTESTZPD256},
+    //{"__builtin_ia32_vtestzps", &&IX86_BUILTIN_VTESTZPS},
+    //{"__builtin_ia32_vtestzps256", &&IX86_BUILTIN_VTESTZPS256},
+    //{"__builtin_ia32_vzeroall", &&IX86_BUILTIN_VZEROALL},
     {"__builtin_ia32_xorpd", &&IX86_BUILTIN_XORPD},
-    {"__builtin_ia32_xorpd256", &&IX86_BUILTIN_XORPD},
+    //{"__builtin_ia32_xorpd256", &&IX86_BUILTIN_XORPD256},
     {"__builtin_ia32_xorps", &&IX86_BUILTIN_XORPS},
-    {"__builtin_ia32_xorps256", &&IX86_BUILTIN_XORPS}
+    //{"__builtin_ia32_xorps256", &&IX86_BUILTIN_XORPS256},
   };
 
   static std::vector<void*> FunctionCodeCache;
@@ -500,17 +971,17 @@
     Result = BuildVectorShuffle(Result, Ops[0], 4, 5, 2, 3);
     return true;
   }
-  IX86_BUILTIN_LOADQ: {
-    const PointerType *i64Ptr = Type::getInt64PtrTy(Context);
-    Ops[0] = Builder.CreateBitCast(Ops[0], i64Ptr);
-    Ops[0] = Builder.CreateLoad(Ops[0]);
-    Value *Zero = ConstantInt::get(Type::getInt64Ty(Context), 0);
-    Result = BuildVector(Zero, Zero, NULL);
-    Value *Idx = ConstantInt::get(Type::getInt32Ty(Context), 0);
-    Result = Builder.CreateInsertElement(Result, Ops[0], Idx);
-    Result = Builder.CreateBitCast(Result, ResultType);
-    return true;
-  }
+//TODO  IX86_BUILTIN_LOADQ: {
+//TODO    const PointerType *i64Ptr = Type::getInt64PtrTy(Context);
+//TODO    Ops[0] = Builder.CreateBitCast(Ops[0], i64Ptr);
+//TODO    Ops[0] = Builder.CreateLoad(Ops[0]);
+//TODO    Value *Zero = ConstantInt::get(Type::getInt64Ty(Context), 0);
+//TODO    Result = BuildVector(Zero, Zero, NULL);
+//TODO    Value *Idx = ConstantInt::get(Type::getInt32Ty(Context), 0);
+//TODO    Result = Builder.CreateInsertElement(Result, Ops[0], Idx);
+//TODO    Result = Builder.CreateBitCast(Result, ResultType);
+//TODO    return true;
+//TODO  }
   IX86_BUILTIN_LOADUPS: {
     VectorType *v4f32 = VectorType::get(Type::getFloatTy(Context), 4);
     const PointerType *v4f32Ptr = v4f32->getPointerTo();





More information about the llvm-commits mailing list