[llvm-commits] [dragonegg] r114804 - in /dragonegg/trunk/x86: llvm-target.cpp x86_builtins

Duncan Sands baldrick at free.fr
Sun Sep 26 06:47:06 PDT 2010


Author: baldrick
Date: Sun Sep 26 08:47:06 2010
New Revision: 114804

URL: http://llvm.org/viewvc/llvm-project?rev=114804&view=rev
Log:
Use a switch rather than a computed goto.  With this, dragonegg
is -pedantic clean.

Added:
    dragonegg/trunk/x86/x86_builtins
Modified:
    dragonegg/trunk/x86/llvm-target.cpp

Modified: dragonegg/trunk/x86/llvm-target.cpp
URL: http://llvm.org/viewvc/llvm-project/dragonegg/trunk/x86/llvm-target.cpp?rev=114804&r1=114803&r2=114804&view=diff
==============================================================================
--- dragonegg/trunk/x86/llvm-target.cpp (original)
+++ dragonegg/trunk/x86/llvm-target.cpp Sun Sep 26 08:47:06 2010
@@ -34,6 +34,7 @@
 #include "llvm/Intrinsics.h"
 #include "llvm/LLVMContext.h"
 #include "llvm/Module.h"
+#include "llvm/Support/ErrorHandling.h"
 
 // System headers
 #include <gmp.h>
@@ -64,8 +65,16 @@
                                                    VecTy->getNumElements()));
 }
 
+enum BuiltinCode {
+  SearchForHandler, // Builtin not seen before - search for a handler.
+#define DEFINE_BUILTIN(x) x
+#include "x86_builtins"
+#undef DEFINE_BUILTIN
+  , UnsupportedBuiltin // There is no handler for this builtin.
+};
+
 struct HandlerEntry {
-  const char *Name; void *Handler;
+  const char *Name; BuiltinCode Handler;
 };
 
 static bool LT(const HandlerEntry &E, const HandlerEntry &F) {
@@ -83,658 +92,16 @@
                                       const Type *ResultType,
                                       std::vector<Value*> &Ops) {
   static const HandlerEntry Handlers[] = {
-    // Unsupported builtins are commented out.
-    {"__builtin_ia32_addpd", &&IX86_BUILTIN_ADDPD},
-    {"__builtin_ia32_addpd256", &&IX86_BUILTIN_ADDPD256},
-    {"__builtin_ia32_addps", &&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_ANDNPD256},
-    {"__builtin_ia32_andnps", &&IX86_BUILTIN_ANDNPS},
-    {"__builtin_ia32_andnps256", &&IX86_BUILTIN_ANDNPS256},
-    {"__builtin_ia32_andpd", &&IX86_BUILTIN_ANDPD},
-    {"__builtin_ia32_andpd256", &&IX86_BUILTIN_ANDPD256},
-    {"__builtin_ia32_andps", &&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},
-    {"__builtin_ia32_cmpeqss", &&IX86_BUILTIN_CMPEQSS},
-    {"__builtin_ia32_cmpgepd", &&IX86_BUILTIN_CMPGEPD},
-    {"__builtin_ia32_cmpgeps", &&IX86_BUILTIN_CMPGEPS},
-    {"__builtin_ia32_cmpgtpd", &&IX86_BUILTIN_CMPGTPD},
-    {"__builtin_ia32_cmpgtps", &&IX86_BUILTIN_CMPGTPS},
-    {"__builtin_ia32_cmplepd", &&IX86_BUILTIN_CMPLEPD},
-    {"__builtin_ia32_cmpleps", &&IX86_BUILTIN_CMPLEPS},
-    {"__builtin_ia32_cmplesd", &&IX86_BUILTIN_CMPLESD},
-    {"__builtin_ia32_cmpless", &&IX86_BUILTIN_CMPLESS},
-    {"__builtin_ia32_cmpltpd", &&IX86_BUILTIN_CMPLTPD},
-    {"__builtin_ia32_cmpltps", &&IX86_BUILTIN_CMPLTPS},
-    {"__builtin_ia32_cmpltsd", &&IX86_BUILTIN_CMPLTSD},
-    {"__builtin_ia32_cmpltss", &&IX86_BUILTIN_CMPLTSS},
-    {"__builtin_ia32_cmpneqpd", &&IX86_BUILTIN_CMPNEQPD},
-    {"__builtin_ia32_cmpneqps", &&IX86_BUILTIN_CMPNEQPS},
-    {"__builtin_ia32_cmpneqsd", &&IX86_BUILTIN_CMPNEQSD},
-    {"__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},
-    {"__builtin_ia32_cmpnless", &&IX86_BUILTIN_CMPNLESS},
-    {"__builtin_ia32_cmpnltpd", &&IX86_BUILTIN_CMPNLTPD},
-    {"__builtin_ia32_cmpnltps", &&IX86_BUILTIN_CMPNLTPS},
-    {"__builtin_ia32_cmpnltsd", &&IX86_BUILTIN_CMPNLTSD},
-    {"__builtin_ia32_cmpnltss", &&IX86_BUILTIN_CMPNLTSS},
-    {"__builtin_ia32_cmpordpd", &&IX86_BUILTIN_CMPORDPD},
-    {"__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_DIVPD256},
-    {"__builtin_ia32_divps", &&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_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_loadupd", &&IX86_BUILTIN_LOADUPD},
-    //{"__builtin_ia32_loadupd256", &&IX86_BUILTIN_LOADUPD256},
-    {"__builtin_ia32_loadups", &&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_MOVSHDUP256},
-    {"__builtin_ia32_movsldup", &&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_MULPD256},
-    {"__builtin_ia32_mulps", &&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_ORPD256},
-    {"__builtin_ia32_orps", &&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},
-    {"__builtin_ia32_punpckhdq128", &&IX86_BUILTIN_PUNPCKHDQ128},
-    {"__builtin_ia32_punpckhqdq128", &&IX86_BUILTIN_PUNPCKHQDQ128},
-    {"__builtin_ia32_punpckhwd", &&IX86_BUILTIN_PUNPCKHWD},
-    {"__builtin_ia32_punpckhwd128", &&IX86_BUILTIN_PUNPCKHWD128},
-    {"__builtin_ia32_punpcklbw", &&IX86_BUILTIN_PUNPCKLBW},
-    {"__builtin_ia32_punpcklbw128", &&IX86_BUILTIN_PUNPCKLBW128},
-    {"__builtin_ia32_punpckldq", &&IX86_BUILTIN_PUNPCKLDQ},
-    {"__builtin_ia32_punpckldq128", &&IX86_BUILTIN_PUNPCKLDQ128},
-    {"__builtin_ia32_punpcklqdq128", &&IX86_BUILTIN_PUNPCKLQDQ128},
-    {"__builtin_ia32_punpcklwd", &&IX86_BUILTIN_PUNPCKLWD},
-    {"__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_SHUFPD256},
-    {"__builtin_ia32_shufps", &&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_STOREDQU256},
-    {"__builtin_ia32_storehps", &&IX86_BUILTIN_STOREHPS},
-    {"__builtin_ia32_storelps", &&IX86_BUILTIN_STORELPS},
-    {"__builtin_ia32_storeupd", &&IX86_BUILTIN_STOREUPD},
-    //{"__builtin_ia32_storeupd256", &&IX86_BUILTIN_STOREUPD256},
-    {"__builtin_ia32_storeups", &&IX86_BUILTIN_STOREUPS},
-    //{"__builtin_ia32_storeups256", &&IX86_BUILTIN_STOREUPS256},
-    {"__builtin_ia32_subpd", &&IX86_BUILTIN_SUBPD},
-    {"__builtin_ia32_subpd256", &&IX86_BUILTIN_SUBPD256},
-    {"__builtin_ia32_subps", &&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_UNPCKHPD256},
-    {"__builtin_ia32_unpckhps", &&IX86_BUILTIN_UNPCKHPS},
-    //{"__builtin_ia32_unpckhps256", &&IX86_BUILTIN_UNPCKHPS256},
-    {"__builtin_ia32_unpcklpd", &&IX86_BUILTIN_UNPCKLPD},
-    //{"__builtin_ia32_unpcklpd256", &&IX86_BUILTIN_UNPCKLPD256},
-    {"__builtin_ia32_unpcklps", &&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},
-    {"__builtin_ia32_vec_ext_v2si", &&IX86_BUILTIN_VEC_EXT_V2SI},
-    {"__builtin_ia32_vec_ext_v4hi", &&IX86_BUILTIN_VEC_EXT_V4HI},
-    {"__builtin_ia32_vec_ext_v4sf", &&IX86_BUILTIN_VEC_EXT_V4SF},
-    {"__builtin_ia32_vec_ext_v4si", &&IX86_BUILTIN_VEC_EXT_V4SI},
-    {"__builtin_ia32_vec_ext_v8hi", &&IX86_BUILTIN_VEC_EXT_V8HI},
-    {"__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_XORPD256},
-    {"__builtin_ia32_xorps", &&IX86_BUILTIN_XORPS},
-    {"__builtin_ia32_xorps256", &&IX86_BUILTIN_XORPS256},
+#define DEFINE_BUILTIN(x) {#x, x}
+#include "x86_builtins"
+#undef DEFINE_BUILTIN
   };
 
-  static std::vector<void*> FunctionCodeCache;
+  static std::vector<BuiltinCode> FunctionCodeCache;
   if (FunctionCodeCache.size() <= DECL_FUNCTION_CODE(fndecl))
       FunctionCodeCache.resize(DECL_FUNCTION_CODE(fndecl) + 1);
-  void *&Handler = FunctionCodeCache[DECL_FUNCTION_CODE(fndecl)];
-  if (!Handler) {
+  BuiltinCode &Handler = FunctionCodeCache[DECL_FUNCTION_CODE(fndecl)];
+  if (Handler == SearchForHandler) {
     // Find the handler for this intrinsic.
     size_t N = sizeof(Handlers) / sizeof(Handlers[0]);
 #ifndef NDEBUG
@@ -746,121 +113,124 @@
       Checked = true;
     }
 #endif
-    HandlerEntry ToFind = {IDENTIFIER_POINTER(DECL_NAME(fndecl)), NULL};
+    HandlerEntry ToFind
+      = {IDENTIFIER_POINTER(DECL_NAME(fndecl)), SearchForHandler};
     const HandlerEntry *E = std::lower_bound(Handlers, Handlers + N, ToFind, LT);
     Handler = (E == Handlers + N) || strcmp(E->Name, ToFind.Name) ?
-      &&unknown : E->Handler;
+      UnsupportedBuiltin : E->Handler;
   }
 
   bool flip = false;
   unsigned PredCode;
-  goto *Handler;
 
-  unknown: return false;
-  IX86_BUILTIN_ADDPS:
-  IX86_BUILTIN_ADDPS256:
-  IX86_BUILTIN_ADDPD:
-  IX86_BUILTIN_ADDPD256:
+  switch (Handler) {
+  case SearchForHandler:
+    assert(false && "Unexpected builtin code!");
+  case UnsupportedBuiltin: return false;
+  case addps:
+  case addps256:
+  case addpd:
+  case addpd256:
     Result = Builder.CreateFAdd(Ops[0], Ops[1]);
     return true;
-  IX86_BUILTIN_PADDB:
-  IX86_BUILTIN_PADDW:
-  IX86_BUILTIN_PADDD:
-  IX86_BUILTIN_PADDQ:
-  IX86_BUILTIN_PADDB128:
-  IX86_BUILTIN_PADDW128:
-  IX86_BUILTIN_PADDD128:
-  IX86_BUILTIN_PADDQ128:
+  case paddb:
+  case paddw:
+  case paddd:
+  case paddq:
+  case paddb128:
+  case paddw128:
+  case paddd128:
+  case paddq128:
     Result = Builder.CreateAdd(Ops[0], Ops[1]);
     return true;
-  IX86_BUILTIN_SUBPS:
-  IX86_BUILTIN_SUBPS256:
-  IX86_BUILTIN_SUBPD:
-  IX86_BUILTIN_SUBPD256:
+  case subps:
+  case subps256:
+  case subpd:
+  case subpd256:
     Result = Builder.CreateFSub(Ops[0], Ops[1]);
     return true;
-  IX86_BUILTIN_PSUBB:
-  IX86_BUILTIN_PSUBW:
-  IX86_BUILTIN_PSUBD:
-  IX86_BUILTIN_PSUBQ:
-  IX86_BUILTIN_PSUBB128:
-  IX86_BUILTIN_PSUBW128:
-  IX86_BUILTIN_PSUBD128:
-  IX86_BUILTIN_PSUBQ128:
+  case psubb:
+  case psubw:
+  case psubd:
+  case psubq:
+  case psubb128:
+  case psubw128:
+  case psubd128:
+  case psubq128:
     Result = Builder.CreateSub(Ops[0], Ops[1]);
     return true;
-  IX86_BUILTIN_MULPS:
-  IX86_BUILTIN_MULPS256:
-  IX86_BUILTIN_MULPD:
-  IX86_BUILTIN_MULPD256:
+  case mulps:
+  case mulps256:
+  case mulpd:
+  case mulpd256:
     Result = Builder.CreateFMul(Ops[0], Ops[1]);
     return true;
-  IX86_BUILTIN_PMULLW:
-  IX86_BUILTIN_PMULLW128:
-  IX86_BUILTIN_PMULLD128:
+  case pmullw:
+  case pmullw128:
+  case pmulld128:
     Result = Builder.CreateMul(Ops[0], Ops[1]);
     return true;
-  IX86_BUILTIN_DIVPS:
-  IX86_BUILTIN_DIVPS256:
-  IX86_BUILTIN_DIVPD:
-  IX86_BUILTIN_DIVPD256:
+  case divps:
+  case divps256:
+  case divpd:
+  case divpd256:
     Result = Builder.CreateFDiv(Ops[0], Ops[1]);
     return true;
-  IX86_BUILTIN_PAND:
-  IX86_BUILTIN_PAND128:
+  case pand:
+  case pand128:
     Result = Builder.CreateAnd(Ops[0], Ops[1]);
     return true;
-  IX86_BUILTIN_PANDN:
-  IX86_BUILTIN_PANDN128:
+  case pandn:
+  case pandn128:
     Ops[0] = Builder.CreateNot(Ops[0]);
     Result = Builder.CreateAnd(Ops[0], Ops[1]);
     return true;
-  IX86_BUILTIN_POR:
-  IX86_BUILTIN_POR128:
+  case por:
+  case por128:
     Result = Builder.CreateOr(Ops[0], Ops[1]);
     return true;
-  IX86_BUILTIN_PXOR:
-  IX86_BUILTIN_PXOR128:
+  case pxor:
+  case pxor128:
     Result = Builder.CreateXor(Ops[0], Ops[1]);
     return true;
-  IX86_BUILTIN_ANDPS:
-  IX86_BUILTIN_ANDPS256:
-  IX86_BUILTIN_ANDPD:
-  IX86_BUILTIN_ANDPD256:
+  case andps:
+  case andps256:
+  case andpd:
+  case andpd256:
     Ops[0] = BitCastToIntVector(Ops[0], Builder);
     Ops[1] = Builder.CreateBitCast(Ops[1], Ops[0]->getType());
     Result = Builder.CreateAnd(Ops[0], Ops[1]);
     Result = Builder.CreateBitCast(Result, ResultType);
     return true;
-  IX86_BUILTIN_ORPS:
-  IX86_BUILTIN_ORPS256:
-  IX86_BUILTIN_ORPD:
-  IX86_BUILTIN_ORPD256:
+  case orps:
+  case orps256:
+  case orpd:
+  case orpd256:
     Ops[0] = BitCastToIntVector(Ops[0], Builder);
     Ops[1] = Builder.CreateBitCast(Ops[1], Ops[0]->getType());
     Result = Builder.CreateOr(Ops[0], Ops[1]);
     Result = Builder.CreateBitCast(Result, ResultType);
     return true;
-  IX86_BUILTIN_XORPS:
-  IX86_BUILTIN_XORPS256:
-  IX86_BUILTIN_XORPD:
-  IX86_BUILTIN_XORPD256:
+  case xorps:
+  case xorps256:
+  case xorpd:
+  case xorpd256:
     Ops[0] = BitCastToIntVector(Ops[0], Builder);
     Ops[1] = Builder.CreateBitCast(Ops[1], Ops[0]->getType());
     Result = Builder.CreateXor(Ops[0], Ops[1]);
     Result = Builder.CreateBitCast(Result, ResultType);
     return true;
-  IX86_BUILTIN_ANDNPS:
-  IX86_BUILTIN_ANDNPS256:
-  IX86_BUILTIN_ANDNPD:
-  IX86_BUILTIN_ANDNPD256:
+  case andnps:
+  case andnps256:
+  case andnpd:
+  case andnpd256:
     Ops[0] = BitCastToIntVector(Ops[0], Builder);
     Ops[1] = Builder.CreateBitCast(Ops[1], Ops[0]->getType());
     Ops[0] = Builder.CreateNot(Ops[0]);
     Result = Builder.CreateAnd(Ops[0], Ops[1]);
     Result = Builder.CreateBitCast(Result, ResultType);
     return true;
-  IX86_BUILTIN_SHUFPS:
+  case shufps:
     if (ConstantInt *Elt = dyn_cast<ConstantInt>(Ops[2])) {
       int EV = Elt->getZExtValue();
       Result = BuildVectorShuffle(Ops[0], Ops[1],
@@ -871,7 +241,7 @@
       Result = Ops[0];
     }
     return true;
-  IX86_BUILTIN_SHUFPD:
+  case shufpd:
     if (ConstantInt *Elt = dyn_cast<ConstantInt>(Ops[2])) {
       int EV = Elt->getZExtValue();
       Result = BuildVectorShuffle(Ops[0], Ops[1],
@@ -881,8 +251,8 @@
       Result = Ops[0];
     }
     return true;
-  IX86_BUILTIN_PSHUFW:
-  IX86_BUILTIN_PSHUFD:
+  case pshufw:
+  case pshufd:
     if (ConstantInt *Elt = dyn_cast<ConstantInt>(Ops[1])) {
       int EV = Elt->getZExtValue();
       Result = BuildVectorShuffle(Ops[0], Ops[0],
@@ -893,7 +263,7 @@
       Result = Ops[0];
     }
     return true;
-  IX86_BUILTIN_PSHUFHW:
+  case pshufhw:
     if (ConstantInt *Elt = dyn_cast<ConstantInt>(Ops[1])) {
       int EV = Elt->getZExtValue();
       Result = BuildVectorShuffle(Ops[0], Ops[0],
@@ -903,7 +273,7 @@
       return true;
     }
     return false;
-  IX86_BUILTIN_PSHUFLW:
+  case pshuflw:
     if (ConstantInt *Elt = dyn_cast<ConstantInt>(Ops[1])) {
       int EV = Elt->getZExtValue();
       Result = BuildVectorShuffle(Ops[0], Ops[0],
@@ -916,81 +286,81 @@
     }
 
     return true;
-  IX86_BUILTIN_PUNPCKHBW:
+  case punpckhbw:
     Result = BuildVectorShuffle(Ops[0], Ops[1], 4, 12, 5, 13,
                                                 6, 14, 7, 15);
     return true;
-  IX86_BUILTIN_PUNPCKHWD:
+  case punpckhwd:
     Result = BuildVectorShuffle(Ops[0], Ops[1], 2, 6, 3, 7);
     return true;
-  IX86_BUILTIN_PUNPCKHDQ:
+  case punpckhdq:
     Result = BuildVectorShuffle(Ops[0], Ops[1], 1, 3);
     return true;
-  IX86_BUILTIN_PUNPCKLBW:
+  case punpcklbw:
     Result = BuildVectorShuffle(Ops[0], Ops[1], 0,  8, 1,  9,
                                                 2, 10, 3, 11);
     return true;
-  IX86_BUILTIN_PUNPCKLWD:
+  case punpcklwd:
     Result = BuildVectorShuffle(Ops[0], Ops[1], 0, 4, 1, 5);
     return true;
-  IX86_BUILTIN_PUNPCKLDQ:
+  case punpckldq:
     Result = BuildVectorShuffle(Ops[0], Ops[1], 0, 2);
     return true;
-  IX86_BUILTIN_PUNPCKHBW128:
+  case punpckhbw128:
     Result = BuildVectorShuffle(Ops[0], Ops[1],  8, 24,  9, 25,
                                                 10, 26, 11, 27,
                                                 12, 28, 13, 29,
                                                 14, 30, 15, 31);
     return true;
-  IX86_BUILTIN_PUNPCKHWD128:
+  case punpckhwd128:
     Result = BuildVectorShuffle(Ops[0], Ops[1], 4, 12, 5, 13, 6, 14, 7, 15);
     return true;
-  IX86_BUILTIN_PUNPCKHDQ128:
+  case punpckhdq128:
     Result = BuildVectorShuffle(Ops[0], Ops[1], 2, 6, 3, 7);
     return true;
-  IX86_BUILTIN_PUNPCKHQDQ128:
+  case punpckhqdq128:
     Result = BuildVectorShuffle(Ops[0], Ops[1], 1, 3);
     return true;
-  IX86_BUILTIN_PUNPCKLBW128:
+  case punpcklbw128:
     Result = BuildVectorShuffle(Ops[0], Ops[1],  0, 16,  1, 17,
                                                  2, 18,  3, 19,
                                                  4, 20,  5, 21,
                                                  6, 22,  7, 23);
     return true;
-  IX86_BUILTIN_PUNPCKLWD128:
+  case punpcklwd128:
     Result = BuildVectorShuffle(Ops[0], Ops[1], 0, 8, 1, 9, 2, 10, 3, 11);
     return true;
-  IX86_BUILTIN_PUNPCKLDQ128:
+  case punpckldq128:
     Result = BuildVectorShuffle(Ops[0], Ops[1], 0, 4, 1, 5);
     return true;
-  IX86_BUILTIN_PUNPCKLQDQ128:
+  case punpcklqdq128:
     Result = BuildVectorShuffle(Ops[0], Ops[1], 0, 2);
     return true;
-  IX86_BUILTIN_UNPCKHPS:
+  case unpckhps:
     Result = BuildVectorShuffle(Ops[0], Ops[1], 2, 6, 3, 7);
     return true;
-  IX86_BUILTIN_UNPCKHPD:
+  case unpckhpd:
     Result = BuildVectorShuffle(Ops[0], Ops[1], 1, 3);
     return true;
-  IX86_BUILTIN_UNPCKLPS:
+  case unpcklps:
     Result = BuildVectorShuffle(Ops[0], Ops[1], 0, 4, 1, 5);
     return true;
-  IX86_BUILTIN_UNPCKLPD:
+  case unpcklpd:
     Result = BuildVectorShuffle(Ops[0], Ops[1], 0, 2);
     return true;
-  IX86_BUILTIN_MOVHLPS:
+  case movhlps:
     Result = BuildVectorShuffle(Ops[0], Ops[1], 6, 7, 2, 3);
     return true;
-  IX86_BUILTIN_MOVLHPS:
+  case movlhps:
     Result = BuildVectorShuffle(Ops[0], Ops[1], 0, 1, 4, 5);
     return true;
-  IX86_BUILTIN_MOVSS:
+  case movss:
     Result = BuildVectorShuffle(Ops[0], Ops[1], 4, 1, 2, 3);
     return true;
-  IX86_BUILTIN_MOVSD:
+  case movsd:
     Result = BuildVectorShuffle(Ops[0], Ops[1], 2, 1);
     return true;
-  IX86_BUILTIN_MOVQ128: {
+  case movq128: {
     Value *Zero = Constant::getNullValue(Ops[0]->getType());
     Result = BuildVectorShuffle(Zero, Ops[0], 2, 1);
     return true;
@@ -1006,7 +376,7 @@
 //TODO    Result = Builder.CreateBitCast(Result, ResultType);
 //TODO    return true;
 //TODO  }
-  IX86_BUILTIN_LOADUPS: {
+  case loadups: {
     VectorType *v4f32 = VectorType::get(Type::getFloatTy(Context), 4);
     const PointerType *v4f32Ptr = v4f32->getPointerTo();
     Value *BC = Builder.CreateBitCast(Ops[0], v4f32Ptr);
@@ -1015,7 +385,7 @@
     Result = LI;
     return true;
   }
-  IX86_BUILTIN_LOADUPD: {
+  case loadupd: {
     VectorType *v2f64 = VectorType::get(Type::getDoubleTy(Context), 2);
     const PointerType *v2f64Ptr = v2f64->getPointerTo();
     Value *BC = Builder.CreateBitCast(Ops[0], v2f64Ptr);
@@ -1024,7 +394,7 @@
     Result = LI;
     return true;
   }
-  IX86_BUILTIN_LOADDQU: {
+  case loaddqu: {
     VectorType *v16i8 = VectorType::get(Type::getInt8Ty(Context), 16);
     const PointerType *v16i8Ptr = v16i8->getPointerTo();
     Value *BC = Builder.CreateBitCast(Ops[0], v16i8Ptr);
@@ -1033,7 +403,7 @@
     Result = LI;
     return true;
   }
-  IX86_BUILTIN_STOREUPS: {
+  case storeups: {
     VectorType *v4f32 = VectorType::get(Type::getFloatTy(Context), 4);
     const PointerType *v4f32Ptr = v4f32->getPointerTo();
     Value *BC = Builder.CreateBitCast(Ops[0], v4f32Ptr);
@@ -1041,7 +411,7 @@
     SI->setAlignment(1);
     return true;
   }
-  IX86_BUILTIN_STOREUPD: {
+  case storeupd: {
     VectorType *v2f64 = VectorType::get(Type::getDoubleTy(Context), 2);
     const PointerType *v2f64Ptr = v2f64->getPointerTo();
     Value *BC = Builder.CreateBitCast(Ops[0], v2f64Ptr);
@@ -1049,7 +419,7 @@
     SI->setAlignment(1);
     return true;
   }
-  IX86_BUILTIN_STOREDQU: {
+  case storedqu: {
     VectorType *v16i8 = VectorType::get(Type::getInt8Ty(Context), 16);
     const PointerType *v16i8Ptr = v16i8->getPointerTo();
     Value *BC = Builder.CreateBitCast(Ops[0], v16i8Ptr);
@@ -1057,7 +427,7 @@
     SI->setAlignment(1);
     return true;
   }
-  IX86_BUILTIN_LOADHPS: {
+  case loadhps: {
     const PointerType *f64Ptr = Type::getDoublePtrTy(Context);
     Ops[1] = Builder.CreateBitCast(Ops[1], f64Ptr);
     Value *Load = Builder.CreateLoad(Ops[1]);
@@ -1067,7 +437,7 @@
     Result = Builder.CreateBitCast(Result, ResultType);
     return true;
   }
-  IX86_BUILTIN_LOADLPS: {
+  case loadlps: {
     const PointerType *f64Ptr = Type::getDoublePtrTy(Context);
     Ops[1] = Builder.CreateBitCast(Ops[1], f64Ptr);
     Value *Load = Builder.CreateLoad(Ops[1]);
@@ -1077,7 +447,7 @@
     Result = Builder.CreateBitCast(Result, ResultType);
     return true;
   }
-  IX86_BUILTIN_LOADHPD: {
+  case loadhpd: {
     Value *Load = Builder.CreateLoad(Ops[1]);
     Ops[1] = BuildVector(Load, UndefValue::get(Type::getDoubleTy(Context)), NULL);
     Ops[1] = Builder.CreateBitCast(Ops[1], ResultType);
@@ -1085,7 +455,7 @@
     Result = Builder.CreateBitCast(Result, ResultType);
     return true;
   }
-  IX86_BUILTIN_LOADLPD: {
+  case loadlpd: {
     Value *Load = Builder.CreateLoad(Ops[1]);
     Ops[1] = BuildVector(Load, UndefValue::get(Type::getDoubleTy(Context)), NULL);
     Ops[1] = Builder.CreateBitCast(Ops[1], ResultType);
@@ -1093,7 +463,7 @@
     Result = Builder.CreateBitCast(Result, ResultType);
     return true;
   }
-  IX86_BUILTIN_STOREHPS: {
+  case storehps: {
     VectorType *v2f64 = VectorType::get(Type::getDoubleTy(Context), 2);
     const PointerType *f64Ptr = Type::getDoublePtrTy(Context);
     Ops[0] = Builder.CreateBitCast(Ops[0], f64Ptr);
@@ -1103,7 +473,7 @@
     Builder.CreateStore(Ops[1], Ops[0]);
     return true;
   }
-  IX86_BUILTIN_STORELPS: {
+  case storelps: {
     VectorType *v2f64 = VectorType::get(Type::getDoubleTy(Context), 2);
     const PointerType *f64Ptr = Type::getDoublePtrTy(Context);
     Ops[0] = Builder.CreateBitCast(Ops[0], f64Ptr);
@@ -1113,23 +483,23 @@
     Builder.CreateStore(Ops[1], Ops[0]);
     return true;
   }
-  IX86_BUILTIN_MOVSHDUP:
+  case movshdup:
     Result = BuildVectorShuffle(Ops[0], Ops[0], 1, 1, 3, 3);
     return true;
-  IX86_BUILTIN_MOVSLDUP:
+  case movsldup:
     Result = BuildVectorShuffle(Ops[0], Ops[0], 0, 0, 2, 2);
     return true;
-  IX86_BUILTIN_VEC_INIT_V2SI:
+  case vec_init_v2si:
     Result = BuildVector(Ops[0], Ops[1], NULL);
     return true;
-  IX86_BUILTIN_VEC_INIT_V4HI:
+  case vec_init_v4hi:
     // Sometimes G++ promotes arguments to int.
     for (unsigned i = 0; i != 4; ++i)
       Ops[i] = Builder.CreateIntCast(Ops[i], Type::getInt16Ty(Context),
                                      /*isSigned*/false);
     Result = BuildVector(Ops[0], Ops[1], Ops[2], Ops[3], NULL);
     return true;
-  IX86_BUILTIN_VEC_INIT_V8QI:
+  case vec_init_v8qi:
     // Sometimes G++ promotes arguments to int.
     for (unsigned i = 0; i != 8; ++i)
       Ops[i] = Builder.CreateIntCast(Ops[i], Type::getInt8Ty(Context),
@@ -1137,48 +507,48 @@
     Result = BuildVector(Ops[0], Ops[1], Ops[2], Ops[3],
                          Ops[4], Ops[5], Ops[6], Ops[7], NULL);
     return true;
-  IX86_BUILTIN_VEC_EXT_V2SI:
-  IX86_BUILTIN_VEC_EXT_V4HI:
-  IX86_BUILTIN_VEC_EXT_V2DF:
-  IX86_BUILTIN_VEC_EXT_V2DI:
-  IX86_BUILTIN_VEC_EXT_V4SI:
-  IX86_BUILTIN_VEC_EXT_V4SF:
-  IX86_BUILTIN_VEC_EXT_V8HI:
-  IX86_BUILTIN_VEC_EXT_V16QI:
+  case vec_ext_v2si:
+  case vec_ext_v4hi:
+  case vec_ext_v2df:
+  case vec_ext_v2di:
+  case vec_ext_v4si:
+  case vec_ext_v4sf:
+  case vec_ext_v8hi:
+  case vec_ext_v16qi:
     Result = Builder.CreateExtractElement(Ops[0], Ops[1]);
     return true;
-  IX86_BUILTIN_VEC_SET_V16QI:
+  case vec_set_v16qi:
     // Sometimes G++ promotes arguments to int.
     Ops[1] = Builder.CreateIntCast(Ops[1], Type::getInt8Ty(Context),
                                    /*isSigned*/false);
     Result = Builder.CreateInsertElement(Ops[0], Ops[1], Ops[2]);
     return true;
-  IX86_BUILTIN_VEC_SET_V4HI:
-  IX86_BUILTIN_VEC_SET_V8HI:
+  case vec_set_v4hi:
+  case vec_set_v8hi:
     // GCC sometimes doesn't produce the right element type.
     Ops[1] = Builder.CreateIntCast(Ops[1], Type::getInt16Ty(Context),
                                    /*isSigned*/false);
     Result = Builder.CreateInsertElement(Ops[0], Ops[1], Ops[2]);
     return true;
-  IX86_BUILTIN_VEC_SET_V4SI:
+  case vec_set_v4si:
     Result = Builder.CreateInsertElement(Ops[0], Ops[1], Ops[2]);
     return true;
-  IX86_BUILTIN_VEC_SET_V2DI:
+  case vec_set_v2di:
     Result = Builder.CreateInsertElement(Ops[0], Ops[1], Ops[2]);
     return true;
 
-  IX86_BUILTIN_CMPEQPS: PredCode = 0; goto CMPXXPS;
-  IX86_BUILTIN_CMPLTPS: PredCode = 1; goto CMPXXPS;
-  IX86_BUILTIN_CMPGTPS: PredCode = 1; flip = true; goto CMPXXPS;
-  IX86_BUILTIN_CMPLEPS: PredCode = 2; goto CMPXXPS;
-  IX86_BUILTIN_CMPGEPS: PredCode = 2; flip = true; goto CMPXXPS;
-  IX86_BUILTIN_CMPUNORDPS: PredCode = 3; goto CMPXXPS;
-  IX86_BUILTIN_CMPNEQPS: PredCode = 4; goto CMPXXPS;
-  IX86_BUILTIN_CMPNLTPS: PredCode = 5; goto CMPXXPS;
-  IX86_BUILTIN_CMPNGTPS: PredCode = 5; flip = true; goto CMPXXPS;
-  IX86_BUILTIN_CMPNLEPS: PredCode = 6; goto CMPXXPS;
-  IX86_BUILTIN_CMPNGEPS: PredCode = 6; flip = true; goto CMPXXPS;
-  IX86_BUILTIN_CMPORDPS: PredCode = 7; goto CMPXXPS;
+  case cmpeqps: PredCode = 0; goto CMPXXPS;
+  case cmpltps: PredCode = 1; goto CMPXXPS;
+  case cmpgtps: PredCode = 1; flip = true; goto CMPXXPS;
+  case cmpleps: PredCode = 2; goto CMPXXPS;
+  case cmpgeps: PredCode = 2; flip = true; goto CMPXXPS;
+  case cmpunordps: PredCode = 3; goto CMPXXPS;
+  case cmpneqps: PredCode = 4; goto CMPXXPS;
+  case cmpnltps: PredCode = 5; goto CMPXXPS;
+  case cmpngtps: PredCode = 5; flip = true; goto CMPXXPS;
+  case cmpnleps: PredCode = 6; goto CMPXXPS;
+  case cmpngeps: PredCode = 6; flip = true; goto CMPXXPS;
+  case cmpordps: PredCode = 7; goto CMPXXPS;
   CMPXXPS: {
     Function *cmpps =
       Intrinsic::getDeclaration(TheModule, Intrinsic::x86_sse_cmp_ps);
@@ -1191,14 +561,14 @@
     Result = Builder.CreateBitCast(Result, ResultType);
     return true;
   }
-  IX86_BUILTIN_CMPEQSS:    PredCode = 0; goto CMPXXSS;
-  IX86_BUILTIN_CMPLTSS:    PredCode = 1; goto CMPXXSS;
-  IX86_BUILTIN_CMPLESS:    PredCode = 2; goto CMPXXSS;
-  IX86_BUILTIN_CMPUNORDSS: PredCode = 3; goto CMPXXSS;
-  IX86_BUILTIN_CMPNEQSS:   PredCode = 4; goto CMPXXSS;
-  IX86_BUILTIN_CMPNLTSS:   PredCode = 5; goto CMPXXSS;
-  IX86_BUILTIN_CMPNLESS:   PredCode = 6; goto CMPXXSS;
-  IX86_BUILTIN_CMPORDSS:   PredCode = 7; goto CMPXXSS;
+  case cmpeqss:    PredCode = 0; goto CMPXXSS;
+  case cmpltss:    PredCode = 1; goto CMPXXSS;
+  case cmpless:    PredCode = 2; goto CMPXXSS;
+  case cmpunordss: PredCode = 3; goto CMPXXSS;
+  case cmpneqss:   PredCode = 4; goto CMPXXSS;
+  case cmpnltss:   PredCode = 5; goto CMPXXSS;
+  case cmpnless:   PredCode = 6; goto CMPXXSS;
+  case cmpordss:   PredCode = 7; goto CMPXXSS;
   CMPXXSS: {
     Function *cmpss =
       Intrinsic::getDeclaration(TheModule, Intrinsic::x86_sse_cmp_ss);
@@ -1208,18 +578,18 @@
     Result = Builder.CreateBitCast(Result, ResultType);
     return true;
   }
-  IX86_BUILTIN_CMPEQPD:    PredCode = 0; goto CMPXXPD;
-  IX86_BUILTIN_CMPLTPD:    PredCode = 1; goto CMPXXPD;
-  IX86_BUILTIN_CMPGTPD:    PredCode = 1; flip = true; goto CMPXXPD;
-  IX86_BUILTIN_CMPLEPD:    PredCode = 2; goto CMPXXPD;
-  IX86_BUILTIN_CMPGEPD:    PredCode = 2; flip = true; goto CMPXXPD;
-  IX86_BUILTIN_CMPUNORDPD: PredCode = 3; goto CMPXXPD;
-  IX86_BUILTIN_CMPNEQPD:   PredCode = 4; goto CMPXXPD;
-  IX86_BUILTIN_CMPNLTPD:   PredCode = 5; goto CMPXXPD;
-  IX86_BUILTIN_CMPNGTPD:   PredCode = 5; flip = true; goto CMPXXPD;
-  IX86_BUILTIN_CMPNLEPD:   PredCode = 6; goto CMPXXPD;
-  IX86_BUILTIN_CMPNGEPD:   PredCode = 6; flip = true; goto CMPXXPD;
-  IX86_BUILTIN_CMPORDPD:   PredCode = 7; goto CMPXXPD;
+  case cmpeqpd:    PredCode = 0; goto CMPXXPD;
+  case cmpltpd:    PredCode = 1; goto CMPXXPD;
+  case cmpgtpd:    PredCode = 1; flip = true; goto CMPXXPD;
+  case cmplepd:    PredCode = 2; goto CMPXXPD;
+  case cmpgepd:    PredCode = 2; flip = true; goto CMPXXPD;
+  case cmpunordpd: PredCode = 3; goto CMPXXPD;
+  case cmpneqpd:   PredCode = 4; goto CMPXXPD;
+  case cmpnltpd:   PredCode = 5; goto CMPXXPD;
+  case cmpngtpd:   PredCode = 5; flip = true; goto CMPXXPD;
+  case cmpnlepd:   PredCode = 6; goto CMPXXPD;
+  case cmpngepd:   PredCode = 6; flip = true; goto CMPXXPD;
+  case cmpordpd:   PredCode = 7; goto CMPXXPD;
   CMPXXPD: {
     Function *cmppd =
       Intrinsic::getDeclaration(TheModule, Intrinsic::x86_sse2_cmp_pd);
@@ -1233,14 +603,14 @@
     Result = Builder.CreateBitCast(Result, ResultType);
     return true;
   }
-  IX86_BUILTIN_CMPEQSD:    PredCode = 0; goto CMPXXSD;
-  IX86_BUILTIN_CMPLTSD:    PredCode = 1; goto CMPXXSD;
-  IX86_BUILTIN_CMPLESD:    PredCode = 2; goto CMPXXSD;
-  IX86_BUILTIN_CMPUNORDSD: PredCode = 3; goto CMPXXSD;
-  IX86_BUILTIN_CMPNEQSD:   PredCode = 4; goto CMPXXSD;
-  IX86_BUILTIN_CMPNLTSD:   PredCode = 5; goto CMPXXSD;
-  IX86_BUILTIN_CMPNLESD:   PredCode = 6; goto CMPXXSD;
-  IX86_BUILTIN_CMPORDSD:   PredCode = 7; goto CMPXXSD;
+  case cmpeqsd:    PredCode = 0; goto CMPXXSD;
+  case cmpltsd:    PredCode = 1; goto CMPXXSD;
+  case cmplesd:    PredCode = 2; goto CMPXXSD;
+  case cmpunordsd: PredCode = 3; goto CMPXXSD;
+  case cmpneqsd:   PredCode = 4; goto CMPXXSD;
+  case cmpnltsd:   PredCode = 5; goto CMPXXSD;
+  case cmpnlesd:   PredCode = 6; goto CMPXXSD;
+  case cmpordsd:   PredCode = 7; goto CMPXXSD;
   CMPXXSD: {
     Function *cmpsd =
       Intrinsic::getDeclaration(TheModule, Intrinsic::x86_sse2_cmp_sd);
@@ -1250,7 +620,7 @@
     Result = Builder.CreateBitCast(Result, ResultType);
     return true;
   }
-  IX86_BUILTIN_LDMXCSR: {
+  case ldmxcsr: {
     Function *ldmxcsr =
       Intrinsic::getDeclaration(TheModule, Intrinsic::x86_sse_ldmxcsr);
     Value *Ptr = CreateTemporary(Type::getInt32Ty(Context));
@@ -1259,7 +629,7 @@
     Builder.CreateCall(ldmxcsr, Ptr);
     return true;
   }
-  IX86_BUILTIN_STMXCSR: {
+  case stmxcsr: {
     Function *stmxcsr =
       Intrinsic::getDeclaration(TheModule, Intrinsic::x86_sse_stmxcsr);
     Value *Ptr  = CreateTemporary(Type::getInt32Ty(Context));
@@ -1269,7 +639,7 @@
     Result = Builder.CreateLoad(Ptr);
     return true;
   }
-  IX86_BUILTIN_PALIGNR: {
+  case palignr: {
     if (isa<ConstantInt>(Ops[2])) {
 
       // In the header we multiply by 8, correct that back now.
@@ -1321,7 +691,7 @@
       return true;
     }
   }
-  IX86_BUILTIN_PALIGNR128: {
+  case palignr128: {
     if (isa<ConstantInt>(Ops[2])) {
 
       // In the header we multiply by 8, correct that back now.
@@ -1372,6 +742,8 @@
       return true;
     }
   }
+  }
+  llvm_unreachable("Builtin not implemented!");
 }
 
 /* These are defined in i386.c */

Added: dragonegg/trunk/x86/x86_builtins
URL: http://llvm.org/viewvc/llvm-project/dragonegg/trunk/x86/x86_builtins?rev=114804&view=auto
==============================================================================
--- dragonegg/trunk/x86/x86_builtins (added)
+++ dragonegg/trunk/x86/x86_builtins Sun Sep 26 08:47:06 2010
@@ -0,0 +1,645 @@
+// Unsupported builtins are commented out.
+DEFINE_BUILTIN(addpd),
+DEFINE_BUILTIN(addpd256),
+DEFINE_BUILTIN(addps),
+DEFINE_BUILTIN(addps256),
+//DEFINE_BUILTIN(addsd),
+//DEFINE_BUILTIN(addss),
+//DEFINE_BUILTIN(addsubpd),
+//DEFINE_BUILTIN(addsubpd256),
+//DEFINE_BUILTIN(addsubps),
+//DEFINE_BUILTIN(addsubps256),
+//DEFINE_BUILTIN(aesdec128),
+//DEFINE_BUILTIN(aesdeclast128),
+//DEFINE_BUILTIN(aesenc128),
+//DEFINE_BUILTIN(aesenclast128),
+//DEFINE_BUILTIN(aesimc128),
+//DEFINE_BUILTIN(aeskeygenassist128),
+DEFINE_BUILTIN(andnpd),
+DEFINE_BUILTIN(andnpd256),
+DEFINE_BUILTIN(andnps),
+DEFINE_BUILTIN(andnps256),
+DEFINE_BUILTIN(andpd),
+DEFINE_BUILTIN(andpd256),
+DEFINE_BUILTIN(andps),
+DEFINE_BUILTIN(andps256),
+//DEFINE_BUILTIN(blendpd),
+//DEFINE_BUILTIN(blendpd256),
+//DEFINE_BUILTIN(blendps),
+//DEFINE_BUILTIN(blendps256),
+//DEFINE_BUILTIN(blendvpd),
+//DEFINE_BUILTIN(blendvpd256),
+//DEFINE_BUILTIN(blendvps),
+//DEFINE_BUILTIN(blendvps256),
+//DEFINE_BUILTIN(bsrdi),
+//DEFINE_BUILTIN(bsrsi),
+//DEFINE_BUILTIN(clflush),
+DEFINE_BUILTIN(cmpeqpd),
+DEFINE_BUILTIN(cmpeqps),
+DEFINE_BUILTIN(cmpeqsd),
+DEFINE_BUILTIN(cmpeqss),
+DEFINE_BUILTIN(cmpgepd),
+DEFINE_BUILTIN(cmpgeps),
+DEFINE_BUILTIN(cmpgtpd),
+DEFINE_BUILTIN(cmpgtps),
+DEFINE_BUILTIN(cmplepd),
+DEFINE_BUILTIN(cmpleps),
+DEFINE_BUILTIN(cmplesd),
+DEFINE_BUILTIN(cmpless),
+DEFINE_BUILTIN(cmpltpd),
+DEFINE_BUILTIN(cmpltps),
+DEFINE_BUILTIN(cmpltsd),
+DEFINE_BUILTIN(cmpltss),
+DEFINE_BUILTIN(cmpneqpd),
+DEFINE_BUILTIN(cmpneqps),
+DEFINE_BUILTIN(cmpneqsd),
+DEFINE_BUILTIN(cmpneqss),
+DEFINE_BUILTIN(cmpngepd),
+DEFINE_BUILTIN(cmpngeps),
+//DEFINE_BUILTIN(cmpngess),
+DEFINE_BUILTIN(cmpngtpd),
+DEFINE_BUILTIN(cmpngtps),
+//DEFINE_BUILTIN(cmpngtss),
+DEFINE_BUILTIN(cmpnlepd),
+DEFINE_BUILTIN(cmpnleps),
+DEFINE_BUILTIN(cmpnlesd),
+DEFINE_BUILTIN(cmpnless),
+DEFINE_BUILTIN(cmpnltpd),
+DEFINE_BUILTIN(cmpnltps),
+DEFINE_BUILTIN(cmpnltsd),
+DEFINE_BUILTIN(cmpnltss),
+DEFINE_BUILTIN(cmpordpd),
+DEFINE_BUILTIN(cmpordps),
+DEFINE_BUILTIN(cmpordsd),
+DEFINE_BUILTIN(cmpordss),
+//DEFINE_BUILTIN(cmppd),
+//DEFINE_BUILTIN(cmppd256),
+//DEFINE_BUILTIN(cmpps),
+//DEFINE_BUILTIN(cmpps256),
+//DEFINE_BUILTIN(cmpsd),
+//DEFINE_BUILTIN(cmpss),
+DEFINE_BUILTIN(cmpunordpd),
+DEFINE_BUILTIN(cmpunordps),
+DEFINE_BUILTIN(cmpunordsd),
+DEFINE_BUILTIN(cmpunordss),
+//DEFINE_BUILTIN(comieq),
+//DEFINE_BUILTIN(comige),
+//DEFINE_BUILTIN(comigt),
+//DEFINE_BUILTIN(comile),
+//DEFINE_BUILTIN(comilt),
+//DEFINE_BUILTIN(comineq),
+//DEFINE_BUILTIN(comisdeq),
+//DEFINE_BUILTIN(comisdge),
+//DEFINE_BUILTIN(comisdgt),
+//DEFINE_BUILTIN(comisdle),
+//DEFINE_BUILTIN(comisdlt),
+//DEFINE_BUILTIN(comisdneq),
+//DEFINE_BUILTIN(copysignpd),
+//DEFINE_BUILTIN(copysignps),
+//DEFINE_BUILTIN(crc32di),
+//DEFINE_BUILTIN(crc32hi),
+//DEFINE_BUILTIN(crc32qi),
+//DEFINE_BUILTIN(crc32si),
+//DEFINE_BUILTIN(cvtdq2pd),
+//DEFINE_BUILTIN(cvtdq2pd256),
+//DEFINE_BUILTIN(cvtdq2ps),
+//DEFINE_BUILTIN(cvtdq2ps256),
+//DEFINE_BUILTIN(cvtpd2dq),
+//DEFINE_BUILTIN(cvtpd2dq256),
+//DEFINE_BUILTIN(cvtpd2pi),
+//DEFINE_BUILTIN(cvtpd2ps),
+//DEFINE_BUILTIN(cvtpd2ps256),
+//DEFINE_BUILTIN(cvtpi2pd),
+//DEFINE_BUILTIN(cvtpi2ps),
+//DEFINE_BUILTIN(cvtps2dq),
+//DEFINE_BUILTIN(cvtps2dq256),
+//DEFINE_BUILTIN(cvtps2pd),
+//DEFINE_BUILTIN(cvtps2pd256),
+//DEFINE_BUILTIN(cvtps2pi),
+//DEFINE_BUILTIN(cvtsd2si),
+//DEFINE_BUILTIN(cvtsd2si64),
+//DEFINE_BUILTIN(cvtsd2ss),
+//DEFINE_BUILTIN(cvtsi2sd),
+//DEFINE_BUILTIN(cvtsi2ss),
+//DEFINE_BUILTIN(cvtsi642sd),
+//DEFINE_BUILTIN(cvtsi642ss),
+//DEFINE_BUILTIN(cvtss2sd),
+//DEFINE_BUILTIN(cvtss2si),
+//DEFINE_BUILTIN(cvtss2si64),
+//DEFINE_BUILTIN(cvttpd2dq),
+//DEFINE_BUILTIN(cvttpd2dq256),
+//DEFINE_BUILTIN(cvttpd2pi),
+//DEFINE_BUILTIN(cvttps2dq),
+//DEFINE_BUILTIN(cvttps2dq256),
+//DEFINE_BUILTIN(cvttps2pi),
+//DEFINE_BUILTIN(cvttsd2si),
+//DEFINE_BUILTIN(cvttsd2si64),
+//DEFINE_BUILTIN(cvttss2si),
+//DEFINE_BUILTIN(cvttss2si64),
+//DEFINE_BUILTIN(cvtudq2ps),
+DEFINE_BUILTIN(divpd),
+DEFINE_BUILTIN(divpd256),
+DEFINE_BUILTIN(divps),
+DEFINE_BUILTIN(divps256),
+//DEFINE_BUILTIN(divsd),
+//DEFINE_BUILTIN(divss),
+//DEFINE_BUILTIN(dppd),
+//DEFINE_BUILTIN(dpps),
+//DEFINE_BUILTIN(dpps256),
+//DEFINE_BUILTIN(emms),
+//DEFINE_BUILTIN(extrq),
+//DEFINE_BUILTIN(extrqi),
+//DEFINE_BUILTIN(femms),
+//DEFINE_BUILTIN(haddpd),
+//DEFINE_BUILTIN(haddpd256),
+//DEFINE_BUILTIN(haddps),
+//DEFINE_BUILTIN(haddps256),
+//DEFINE_BUILTIN(hsubpd),
+//DEFINE_BUILTIN(hsubpd256),
+//DEFINE_BUILTIN(hsubps),
+//DEFINE_BUILTIN(hsubps256),
+//DEFINE_BUILTIN(insertps128),
+//DEFINE_BUILTIN(insertq),
+//DEFINE_BUILTIN(insertqi),
+//DEFINE_BUILTIN(lddqu),
+//DEFINE_BUILTIN(lddqu256),
+DEFINE_BUILTIN(ldmxcsr),
+//DEFINE_BUILTIN(lfence),
+DEFINE_BUILTIN(loaddqu),
+//DEFINE_BUILTIN(loaddqu256),
+DEFINE_BUILTIN(loadhpd),
+DEFINE_BUILTIN(loadhps),
+DEFINE_BUILTIN(loadlpd),
+DEFINE_BUILTIN(loadlps),
+DEFINE_BUILTIN(loadupd),
+//DEFINE_BUILTIN(loadupd256),
+DEFINE_BUILTIN(loadups),
+//DEFINE_BUILTIN(loadups256),
+//DEFINE_BUILTIN(maskloadpd),
+//DEFINE_BUILTIN(maskloadpd256),
+//DEFINE_BUILTIN(maskloadps),
+//DEFINE_BUILTIN(maskloadps256),
+//DEFINE_BUILTIN(maskmovdqu),
+//DEFINE_BUILTIN(maskmovq),
+//DEFINE_BUILTIN(maskstorepd),
+//DEFINE_BUILTIN(maskstorepd256),
+//DEFINE_BUILTIN(maskstoreps),
+//DEFINE_BUILTIN(maskstoreps256),
+//DEFINE_BUILTIN(maxpd),
+//DEFINE_BUILTIN(maxpd256),
+//DEFINE_BUILTIN(maxps),
+//DEFINE_BUILTIN(maxps256),
+//DEFINE_BUILTIN(maxsd),
+//DEFINE_BUILTIN(maxss),
+//DEFINE_BUILTIN(mfence),
+//DEFINE_BUILTIN(minpd),
+//DEFINE_BUILTIN(minpd256),
+//DEFINE_BUILTIN(minps),
+//DEFINE_BUILTIN(minps256),
+//DEFINE_BUILTIN(minsd),
+//DEFINE_BUILTIN(minss),
+//DEFINE_BUILTIN(monitor),
+//DEFINE_BUILTIN(movddup256),
+DEFINE_BUILTIN(movhlps),
+DEFINE_BUILTIN(movlhps),
+//DEFINE_BUILTIN(movmskpd),
+//DEFINE_BUILTIN(movmskpd256),
+//DEFINE_BUILTIN(movmskps),
+//DEFINE_BUILTIN(movmskps256),
+//DEFINE_BUILTIN(movntdq),
+//DEFINE_BUILTIN(movntdq256),
+//DEFINE_BUILTIN(movntdqa),
+//DEFINE_BUILTIN(movnti),
+//DEFINE_BUILTIN(movntpd),
+//DEFINE_BUILTIN(movntpd256),
+//DEFINE_BUILTIN(movntps),
+//DEFINE_BUILTIN(movntps256),
+//DEFINE_BUILTIN(movntq),
+//DEFINE_BUILTIN(movntsd),
+//DEFINE_BUILTIN(movntss),
+DEFINE_BUILTIN(movq128),
+DEFINE_BUILTIN(movsd),
+DEFINE_BUILTIN(movshdup),
+//DEFINE_BUILTIN(movshdup256),
+DEFINE_BUILTIN(movsldup),
+//DEFINE_BUILTIN(movsldup256),
+DEFINE_BUILTIN(movss),
+//DEFINE_BUILTIN(mpsadbw128),
+DEFINE_BUILTIN(mulpd),
+DEFINE_BUILTIN(mulpd256),
+DEFINE_BUILTIN(mulps),
+DEFINE_BUILTIN(mulps256),
+//DEFINE_BUILTIN(mulsd),
+//DEFINE_BUILTIN(mulss),
+//DEFINE_BUILTIN(mwait),
+DEFINE_BUILTIN(orpd),
+DEFINE_BUILTIN(orpd256),
+DEFINE_BUILTIN(orps),
+DEFINE_BUILTIN(orps256),
+//DEFINE_BUILTIN(pabsb),
+//DEFINE_BUILTIN(pabsb128),
+//DEFINE_BUILTIN(pabsd),
+//DEFINE_BUILTIN(pabsd128),
+//DEFINE_BUILTIN(pabsw),
+//DEFINE_BUILTIN(pabsw128),
+//DEFINE_BUILTIN(packssdw),
+//DEFINE_BUILTIN(packssdw128),
+//DEFINE_BUILTIN(packsswb),
+//DEFINE_BUILTIN(packsswb128),
+//DEFINE_BUILTIN(packusdw128),
+//DEFINE_BUILTIN(packuswb),
+//DEFINE_BUILTIN(packuswb128),
+DEFINE_BUILTIN(paddb),
+DEFINE_BUILTIN(paddb128),
+DEFINE_BUILTIN(paddd),
+DEFINE_BUILTIN(paddd128),
+DEFINE_BUILTIN(paddq),
+DEFINE_BUILTIN(paddq128),
+//DEFINE_BUILTIN(paddsb),
+//DEFINE_BUILTIN(paddsb128),
+//DEFINE_BUILTIN(paddsw),
+//DEFINE_BUILTIN(paddsw128),
+//DEFINE_BUILTIN(paddusb),
+//DEFINE_BUILTIN(paddusb128),
+//DEFINE_BUILTIN(paddusw),
+//DEFINE_BUILTIN(paddusw128),
+DEFINE_BUILTIN(paddw),
+DEFINE_BUILTIN(paddw128),
+DEFINE_BUILTIN(palignr),
+DEFINE_BUILTIN(palignr128),
+DEFINE_BUILTIN(pand),
+DEFINE_BUILTIN(pand128),
+DEFINE_BUILTIN(pandn),
+DEFINE_BUILTIN(pandn128),
+//DEFINE_BUILTIN(pavgb),
+//DEFINE_BUILTIN(pavgb128),
+//DEFINE_BUILTIN(pavgusb),
+//DEFINE_BUILTIN(pavgw),
+//DEFINE_BUILTIN(pavgw128),
+//DEFINE_BUILTIN(pblendvb128),
+//DEFINE_BUILTIN(pblendw128),
+//DEFINE_BUILTIN(pclmulqdq128),
+//DEFINE_BUILTIN(pcmpeqb),
+//DEFINE_BUILTIN(pcmpeqb128),
+//DEFINE_BUILTIN(pcmpeqd),
+//DEFINE_BUILTIN(pcmpeqd128),
+//DEFINE_BUILTIN(pcmpeqq),
+//DEFINE_BUILTIN(pcmpeqw),
+//DEFINE_BUILTIN(pcmpeqw128),
+//DEFINE_BUILTIN(pcmpestri128),
+//DEFINE_BUILTIN(pcmpestria128),
+//DEFINE_BUILTIN(pcmpestric128),
+//DEFINE_BUILTIN(pcmpestrio128),
+//DEFINE_BUILTIN(pcmpestris128),
+//DEFINE_BUILTIN(pcmpestriz128),
+//DEFINE_BUILTIN(pcmpestrm128),
+//DEFINE_BUILTIN(pcmpgtb),
+//DEFINE_BUILTIN(pcmpgtb128),
+//DEFINE_BUILTIN(pcmpgtd),
+//DEFINE_BUILTIN(pcmpgtd128),
+//DEFINE_BUILTIN(pcmpgtq),
+//DEFINE_BUILTIN(pcmpgtw),
+//DEFINE_BUILTIN(pcmpgtw128),
+//DEFINE_BUILTIN(pcmpistri128),
+//DEFINE_BUILTIN(pcmpistria128),
+//DEFINE_BUILTIN(pcmpistric128),
+//DEFINE_BUILTIN(pcmpistrio128),
+//DEFINE_BUILTIN(pcmpistris128),
+//DEFINE_BUILTIN(pcmpistriz128),
+//DEFINE_BUILTIN(pcmpistrm128),
+//DEFINE_BUILTIN(pd256_pd),
+//DEFINE_BUILTIN(pd_pd256),
+//DEFINE_BUILTIN(pf2id),
+//DEFINE_BUILTIN(pf2iw),
+//DEFINE_BUILTIN(pfacc),
+//DEFINE_BUILTIN(pfadd),
+//DEFINE_BUILTIN(pfcmpeq),
+//DEFINE_BUILTIN(pfcmpge),
+//DEFINE_BUILTIN(pfcmpgt),
+//DEFINE_BUILTIN(pfmax),
+//DEFINE_BUILTIN(pfmin),
+//DEFINE_BUILTIN(pfmul),
+//DEFINE_BUILTIN(pfnacc),
+//DEFINE_BUILTIN(pfpnacc),
+//DEFINE_BUILTIN(pfrcp),
+//DEFINE_BUILTIN(pfrcpit1),
+//DEFINE_BUILTIN(pfrcpit2),
+//DEFINE_BUILTIN(pfrsqit1),
+//DEFINE_BUILTIN(pfrsqrt),
+//DEFINE_BUILTIN(pfsub),
+//DEFINE_BUILTIN(pfsubr),
+//DEFINE_BUILTIN(phaddd),
+//DEFINE_BUILTIN(phaddd128),
+//DEFINE_BUILTIN(phaddsw),
+//DEFINE_BUILTIN(phaddsw128),
+//DEFINE_BUILTIN(phaddw),
+//DEFINE_BUILTIN(phaddw128),
+//DEFINE_BUILTIN(phminposuw128),
+//DEFINE_BUILTIN(phsubd),
+//DEFINE_BUILTIN(phsubd128),
+//DEFINE_BUILTIN(phsubsw),
+//DEFINE_BUILTIN(phsubsw128),
+//DEFINE_BUILTIN(phsubw),
+//DEFINE_BUILTIN(phsubw128),
+//DEFINE_BUILTIN(pi2fd),
+//DEFINE_BUILTIN(pi2fw),
+//DEFINE_BUILTIN(pmaddubsw),
+//DEFINE_BUILTIN(pmaddubsw128),
+//DEFINE_BUILTIN(pmaddwd),
+//DEFINE_BUILTIN(pmaddwd128),
+//DEFINE_BUILTIN(pmaxsb128),
+//DEFINE_BUILTIN(pmaxsd128),
+//DEFINE_BUILTIN(pmaxsw),
+//DEFINE_BUILTIN(pmaxsw128),
+//DEFINE_BUILTIN(pmaxub),
+//DEFINE_BUILTIN(pmaxub128),
+//DEFINE_BUILTIN(pmaxud128),
+//DEFINE_BUILTIN(pmaxuw128),
+//DEFINE_BUILTIN(pminsb128),
+//DEFINE_BUILTIN(pminsd128),
+//DEFINE_BUILTIN(pminsw),
+//DEFINE_BUILTIN(pminsw128),
+//DEFINE_BUILTIN(pminub),
+//DEFINE_BUILTIN(pminub128),
+//DEFINE_BUILTIN(pminud128),
+//DEFINE_BUILTIN(pminuw128),
+//DEFINE_BUILTIN(pmovmskb),
+//DEFINE_BUILTIN(pmovmskb128),
+//DEFINE_BUILTIN(pmovsxbd128),
+//DEFINE_BUILTIN(pmovsxbq128),
+//DEFINE_BUILTIN(pmovsxbw128),
+//DEFINE_BUILTIN(pmovsxdq128),
+//DEFINE_BUILTIN(pmovsxwd128),
+//DEFINE_BUILTIN(pmovsxwq128),
+//DEFINE_BUILTIN(pmovzxbd128),
+//DEFINE_BUILTIN(pmovzxbq128),
+//DEFINE_BUILTIN(pmovzxbw128),
+//DEFINE_BUILTIN(pmovzxdq128),
+//DEFINE_BUILTIN(pmovzxwd128),
+//DEFINE_BUILTIN(pmovzxwq128),
+//DEFINE_BUILTIN(pmuldq128),
+//DEFINE_BUILTIN(pmulhrsw),
+//DEFINE_BUILTIN(pmulhrsw128),
+//DEFINE_BUILTIN(pmulhrw),
+//DEFINE_BUILTIN(pmulhuw),
+//DEFINE_BUILTIN(pmulhuw128),
+//DEFINE_BUILTIN(pmulhw),
+//DEFINE_BUILTIN(pmulhw128),
+DEFINE_BUILTIN(pmulld128),
+DEFINE_BUILTIN(pmullw),
+DEFINE_BUILTIN(pmullw128),
+//DEFINE_BUILTIN(pmuludq),
+//DEFINE_BUILTIN(pmuludq128),
+DEFINE_BUILTIN(por),
+DEFINE_BUILTIN(por128),
+//DEFINE_BUILTIN(ps256_ps),
+//DEFINE_BUILTIN(psadbw),
+//DEFINE_BUILTIN(psadbw128),
+//DEFINE_BUILTIN(pshufb),
+//DEFINE_BUILTIN(pshufb128),
+DEFINE_BUILTIN(pshufd),
+DEFINE_BUILTIN(pshufhw),
+DEFINE_BUILTIN(pshuflw),
+DEFINE_BUILTIN(pshufw),
+//DEFINE_BUILTIN(psignb),
+//DEFINE_BUILTIN(psignb128),
+//DEFINE_BUILTIN(psignd),
+//DEFINE_BUILTIN(psignd128),
+//DEFINE_BUILTIN(psignw),
+//DEFINE_BUILTIN(psignw128),
+//DEFINE_BUILTIN(pslld),
+//DEFINE_BUILTIN(pslld128),
+//DEFINE_BUILTIN(pslldi),
+//DEFINE_BUILTIN(pslldi128),
+//DEFINE_BUILTIN(pslldqi128),
+//DEFINE_BUILTIN(psllq),
+//DEFINE_BUILTIN(psllq128),
+//DEFINE_BUILTIN(psllqi),
+//DEFINE_BUILTIN(psllqi128),
+//DEFINE_BUILTIN(psllw),
+//DEFINE_BUILTIN(psllw128),
+//DEFINE_BUILTIN(psllwi),
+//DEFINE_BUILTIN(psllwi128),
+//DEFINE_BUILTIN(ps_ps256),
+//DEFINE_BUILTIN(psrad),
+//DEFINE_BUILTIN(psrad128),
+//DEFINE_BUILTIN(psradi),
+//DEFINE_BUILTIN(psradi128),
+//DEFINE_BUILTIN(psraw),
+//DEFINE_BUILTIN(psraw128),
+//DEFINE_BUILTIN(psrawi),
+//DEFINE_BUILTIN(psrawi128),
+//DEFINE_BUILTIN(psrld),
+//DEFINE_BUILTIN(psrld128),
+//DEFINE_BUILTIN(psrldi),
+//DEFINE_BUILTIN(psrldi128),
+//DEFINE_BUILTIN(psrldqi128),
+//DEFINE_BUILTIN(psrlq),
+//DEFINE_BUILTIN(psrlq128),
+//DEFINE_BUILTIN(psrlqi),
+//DEFINE_BUILTIN(psrlqi128),
+//DEFINE_BUILTIN(psrlw),
+//DEFINE_BUILTIN(psrlw128),
+//DEFINE_BUILTIN(psrlwi),
+//DEFINE_BUILTIN(psrlwi128),
+DEFINE_BUILTIN(psubb),
+DEFINE_BUILTIN(psubb128),
+DEFINE_BUILTIN(psubd),
+DEFINE_BUILTIN(psubd128),
+DEFINE_BUILTIN(psubq),
+DEFINE_BUILTIN(psubq128),
+//DEFINE_BUILTIN(psubsb),
+//DEFINE_BUILTIN(psubsb128),
+//DEFINE_BUILTIN(psubsw),
+//DEFINE_BUILTIN(psubsw128),
+//DEFINE_BUILTIN(psubusb),
+//DEFINE_BUILTIN(psubusb128),
+//DEFINE_BUILTIN(psubusw),
+//DEFINE_BUILTIN(psubusw128),
+DEFINE_BUILTIN(psubw),
+DEFINE_BUILTIN(psubw128),
+//DEFINE_BUILTIN(pswapdsf),
+//DEFINE_BUILTIN(pswapdsi),
+//DEFINE_BUILTIN(ptestc128),
+//DEFINE_BUILTIN(ptestc256),
+//DEFINE_BUILTIN(ptestnzc128),
+//DEFINE_BUILTIN(ptestnzc256),
+//DEFINE_BUILTIN(ptestz128),
+//DEFINE_BUILTIN(ptestz256),
+DEFINE_BUILTIN(punpckhbw),
+DEFINE_BUILTIN(punpckhbw128),
+DEFINE_BUILTIN(punpckhdq),
+DEFINE_BUILTIN(punpckhdq128),
+DEFINE_BUILTIN(punpckhqdq128),
+DEFINE_BUILTIN(punpckhwd),
+DEFINE_BUILTIN(punpckhwd128),
+DEFINE_BUILTIN(punpcklbw),
+DEFINE_BUILTIN(punpcklbw128),
+DEFINE_BUILTIN(punpckldq),
+DEFINE_BUILTIN(punpckldq128),
+DEFINE_BUILTIN(punpcklqdq128),
+DEFINE_BUILTIN(punpcklwd),
+DEFINE_BUILTIN(punpcklwd128),
+DEFINE_BUILTIN(pxor),
+DEFINE_BUILTIN(pxor128),
+//DEFINE_BUILTIN(rcpps),
+//DEFINE_BUILTIN(rcpps256),
+//DEFINE_BUILTIN(rcpss),
+//DEFINE_BUILTIN(rdpmc),
+//DEFINE_BUILTIN(rdtsc),
+//DEFINE_BUILTIN(rdtscp),
+//DEFINE_BUILTIN(rolhi),
+//DEFINE_BUILTIN(rolqi),
+//DEFINE_BUILTIN(rorhi),
+//DEFINE_BUILTIN(rorqi),
+//DEFINE_BUILTIN(roundpd),
+//DEFINE_BUILTIN(roundpd256),
+//DEFINE_BUILTIN(roundps),
+//DEFINE_BUILTIN(roundps256),
+//DEFINE_BUILTIN(roundsd),
+//DEFINE_BUILTIN(roundss),
+//DEFINE_BUILTIN(rsqrtf),
+//DEFINE_BUILTIN(rsqrtps),
+//DEFINE_BUILTIN(rsqrtps256),
+//DEFINE_BUILTIN(rsqrtps_nr),
+//DEFINE_BUILTIN(rsqrtps_nr256),
+//DEFINE_BUILTIN(rsqrtss),
+//DEFINE_BUILTIN(sfence),
+DEFINE_BUILTIN(shufpd),
+//DEFINE_BUILTIN(shufpd256),
+DEFINE_BUILTIN(shufps),
+//DEFINE_BUILTIN(shufps256),
+//DEFINE_BUILTIN(si256_si),
+//DEFINE_BUILTIN(si_si256),
+//DEFINE_BUILTIN(sqrtpd),
+//DEFINE_BUILTIN(sqrtpd256),
+//DEFINE_BUILTIN(sqrtps),
+//DEFINE_BUILTIN(sqrtps256),
+//DEFINE_BUILTIN(sqrtps_nr),
+//DEFINE_BUILTIN(sqrtps_nr256),
+//DEFINE_BUILTIN(sqrtsd),
+//DEFINE_BUILTIN(sqrtss),
+DEFINE_BUILTIN(stmxcsr),
+DEFINE_BUILTIN(storedqu),
+//DEFINE_BUILTIN(storedqu256),
+DEFINE_BUILTIN(storehps),
+DEFINE_BUILTIN(storelps),
+DEFINE_BUILTIN(storeupd),
+//DEFINE_BUILTIN(storeupd256),
+DEFINE_BUILTIN(storeups),
+//DEFINE_BUILTIN(storeups256),
+DEFINE_BUILTIN(subpd),
+DEFINE_BUILTIN(subpd256),
+DEFINE_BUILTIN(subps),
+DEFINE_BUILTIN(subps256),
+//DEFINE_BUILTIN(subsd),
+//DEFINE_BUILTIN(subss),
+//DEFINE_BUILTIN(ucomieq),
+//DEFINE_BUILTIN(ucomige),
+//DEFINE_BUILTIN(ucomigt),
+//DEFINE_BUILTIN(ucomile),
+//DEFINE_BUILTIN(ucomilt),
+//DEFINE_BUILTIN(ucomineq),
+//DEFINE_BUILTIN(ucomisdeq),
+//DEFINE_BUILTIN(ucomisdge),
+//DEFINE_BUILTIN(ucomisdgt),
+//DEFINE_BUILTIN(ucomisdle),
+//DEFINE_BUILTIN(ucomisdlt),
+//DEFINE_BUILTIN(ucomisdneq),
+DEFINE_BUILTIN(unpckhpd),
+//DEFINE_BUILTIN(unpckhpd256),
+DEFINE_BUILTIN(unpckhps),
+//DEFINE_BUILTIN(unpckhps256),
+DEFINE_BUILTIN(unpcklpd),
+//DEFINE_BUILTIN(unpcklpd256),
+DEFINE_BUILTIN(unpcklps),
+//DEFINE_BUILTIN(unpcklps256),
+//DEFINE_BUILTIN(vbroadcastf128_pd256),
+//DEFINE_BUILTIN(vbroadcastf128_ps256),
+//DEFINE_BUILTIN(vbroadcastsd256),
+//DEFINE_BUILTIN(vbroadcastss),
+//DEFINE_BUILTIN(vbroadcastss256),
+DEFINE_BUILTIN(vec_ext_v16qi),
+DEFINE_BUILTIN(vec_ext_v2df),
+DEFINE_BUILTIN(vec_ext_v2di),
+DEFINE_BUILTIN(vec_ext_v2si),
+DEFINE_BUILTIN(vec_ext_v4hi),
+DEFINE_BUILTIN(vec_ext_v4sf),
+DEFINE_BUILTIN(vec_ext_v4si),
+DEFINE_BUILTIN(vec_ext_v8hi),
+DEFINE_BUILTIN(vec_init_v2si),
+DEFINE_BUILTIN(vec_init_v4hi),
+DEFINE_BUILTIN(vec_init_v8qi),
+//DEFINE_BUILTIN(vec_pack_sfix),
+DEFINE_BUILTIN(vec_set_v16qi),
+DEFINE_BUILTIN(vec_set_v2di),
+DEFINE_BUILTIN(vec_set_v4hi),
+//DEFINE_BUILTIN(vec_set_v4sf),
+DEFINE_BUILTIN(vec_set_v4si),
+DEFINE_BUILTIN(vec_set_v8hi),
+//DEFINE_BUILTIN(vextractf128_pd256),
+//DEFINE_BUILTIN(vextractf128_ps256),
+//DEFINE_BUILTIN(vextractf128_si256),
+//DEFINE_BUILTIN(vfmaddpd),
+//DEFINE_BUILTIN(vfmaddpd256),
+//DEFINE_BUILTIN(vfmaddps),
+//DEFINE_BUILTIN(vfmaddps256),
+//DEFINE_BUILTIN(vfmaddsd),
+//DEFINE_BUILTIN(vfmaddss),
+//DEFINE_BUILTIN(vfmaddsubpd),
+//DEFINE_BUILTIN(vfmaddsubpd256),
+//DEFINE_BUILTIN(vfmaddsubps),
+//DEFINE_BUILTIN(vfmaddsubps256),
+//DEFINE_BUILTIN(vfmsubaddpd),
+//DEFINE_BUILTIN(vfmsubaddpd256),
+//DEFINE_BUILTIN(vfmsubaddps),
+//DEFINE_BUILTIN(vfmsubaddps256),
+//DEFINE_BUILTIN(vfmsubpd),
+//DEFINE_BUILTIN(vfmsubpd256),
+//DEFINE_BUILTIN(vfmsubps),
+//DEFINE_BUILTIN(vfmsubps256),
+//DEFINE_BUILTIN(vfmsubsd),
+//DEFINE_BUILTIN(vfmsubss),
+//DEFINE_BUILTIN(vfnmaddpd),
+//DEFINE_BUILTIN(vfnmaddpd256),
+//DEFINE_BUILTIN(vfnmaddps),
+//DEFINE_BUILTIN(vfnmaddps256),
+//DEFINE_BUILTIN(vfnmaddsd),
+//DEFINE_BUILTIN(vfnmaddss),
+//DEFINE_BUILTIN(vfnmsubpd),
+//DEFINE_BUILTIN(vfnmsubpd256),
+//DEFINE_BUILTIN(vfnmsubps),
+//DEFINE_BUILTIN(vfnmsubps256),
+//DEFINE_BUILTIN(vfnmsubsd),
+//DEFINE_BUILTIN(vfnmsubss),
+//DEFINE_BUILTIN(vinsertf128_pd256),
+//DEFINE_BUILTIN(vinsertf128_ps256),
+//DEFINE_BUILTIN(vinsertf128_si256),
+//DEFINE_BUILTIN(vperm2f128_pd256),
+//DEFINE_BUILTIN(vperm2f128_ps256),
+//DEFINE_BUILTIN(vperm2f128_si256),
+//DEFINE_BUILTIN(vpermilpd),
+//DEFINE_BUILTIN(vpermilpd256),
+//DEFINE_BUILTIN(vpermilps),
+//DEFINE_BUILTIN(vpermilps256),
+//DEFINE_BUILTIN(vpermilvarpd),
+//DEFINE_BUILTIN(vpermilvarpd256),
+//DEFINE_BUILTIN(vpermilvarps),
+//DEFINE_BUILTIN(vpermilvarps256),
+//DEFINE_BUILTIN(vtestcpd),
+//DEFINE_BUILTIN(vtestcpd256),
+//DEFINE_BUILTIN(vtestcps),
+//DEFINE_BUILTIN(vtestcps256),
+//DEFINE_BUILTIN(vtestnzcpd),
+//DEFINE_BUILTIN(vtestnzcpd256),
+//DEFINE_BUILTIN(vtestnzcps),
+//DEFINE_BUILTIN(vtestnzcps256),
+//DEFINE_BUILTIN(vtestzpd),
+//DEFINE_BUILTIN(vtestzpd256),
+//DEFINE_BUILTIN(vtestzps),
+//DEFINE_BUILTIN(vtestzps256),
+//DEFINE_BUILTIN(vzeroall),
+DEFINE_BUILTIN(xorpd),
+DEFINE_BUILTIN(xorpd256),
+DEFINE_BUILTIN(xorps),
+DEFINE_BUILTIN(xorps256)





More information about the llvm-commits mailing list