Home | History | Annotate | Download | only in llvm
      1 //===- TableGen'erated file -------------------------------------*- C++ -*-===//
      2 //
      3 // Intrinsic Function Source Fragment
      4 //
      5 // Automatically generated file, do not edit!
      6 //
      7 //===----------------------------------------------------------------------===//
      8 
      9 // VisualStudio defines setjmp as _setjmp
     10 #if defined(_MSC_VER) && defined(setjmp) && \
     11                          !defined(setjmp_undefined_for_msvc)
     12 #  pragma push_macro("setjmp")
     13 #  undef setjmp
     14 #  define setjmp_undefined_for_msvc
     15 #endif
     16 
     17 // Enum values for Intrinsics.h
     18 #ifdef GET_INTRINSIC_ENUM_VALUES
     19     adjust_trampoline,                        // llvm.adjust.trampoline
     20     annotation,                               // llvm.annotation
     21     bswap,                                    // llvm.bswap
     22     convert_from_fp16,                        // llvm.convert.from.fp16
     23     convert_to_fp16,                          // llvm.convert.to.fp16
     24     convertff,                                // llvm.convertff
     25     convertfsi,                               // llvm.convertfsi
     26     convertfui,                               // llvm.convertfui
     27     convertsif,                               // llvm.convertsif
     28     convertss,                                // llvm.convertss
     29     convertsu,                                // llvm.convertsu
     30     convertuif,                               // llvm.convertuif
     31     convertus,                                // llvm.convertus
     32     convertuu,                                // llvm.convertuu
     33     cos,                                      // llvm.cos
     34     ctlz,                                     // llvm.ctlz
     35     ctpop,                                    // llvm.ctpop
     36     cttz,                                     // llvm.cttz
     37     dbg_declare,                              // llvm.dbg.declare
     38     dbg_value,                                // llvm.dbg.value
     39     eh_dwarf_cfa,                             // llvm.eh.dwarf.cfa
     40     eh_exception,                             // llvm.eh.exception
     41     eh_resume,                                // llvm.eh.resume
     42     eh_return_i32,                            // llvm.eh.return.i32
     43     eh_return_i64,                            // llvm.eh.return.i64
     44     eh_selector,                              // llvm.eh.selector
     45     eh_sjlj_callsite,                         // llvm.eh.sjlj.callsite
     46     eh_sjlj_dispatch_setup,                   // llvm.eh.sjlj.dispatch.setup
     47     eh_sjlj_functioncontext,                  // llvm.eh.sjlj.functioncontext
     48     eh_sjlj_longjmp,                          // llvm.eh.sjlj.longjmp
     49     eh_sjlj_lsda,                             // llvm.eh.sjlj.lsda
     50     eh_sjlj_setjmp,                           // llvm.eh.sjlj.setjmp
     51     eh_typeid_for,                            // llvm.eh.typeid.for
     52     eh_unwind_init,                           // llvm.eh.unwind.init
     53     exp,                                      // llvm.exp
     54     exp2,                                     // llvm.exp2
     55     expect,                                   // llvm.expect
     56     flt_rounds,                               // llvm.flt.rounds
     57     fma,                                      // llvm.fma
     58     frameaddress,                             // llvm.frameaddress
     59     gcread,                                   // llvm.gcread
     60     gcroot,                                   // llvm.gcroot
     61     gcwrite,                                  // llvm.gcwrite
     62     init_trampoline,                          // llvm.init.trampoline
     63     invariant_end,                            // llvm.invariant.end
     64     invariant_start,                          // llvm.invariant.start
     65     lifetime_end,                             // llvm.lifetime.end
     66     lifetime_start,                           // llvm.lifetime.start
     67     log,                                      // llvm.log
     68     log10,                                    // llvm.log10
     69     log2,                                     // llvm.log2
     70     longjmp,                                  // llvm.longjmp
     71     memcpy,                                   // llvm.memcpy
     72     memmove,                                  // llvm.memmove
     73     memset,                                   // llvm.memset
     74     objectsize,                               // llvm.objectsize
     75     pcmarker,                                 // llvm.pcmarker
     76     pow,                                      // llvm.pow
     77     powi,                                     // llvm.powi
     78     prefetch,                                 // llvm.prefetch
     79     ptr_annotation,                           // llvm.ptr.annotation
     80     readcyclecounter,                         // llvm.readcyclecounter
     81     returnaddress,                            // llvm.returnaddress
     82     sadd_with_overflow,                       // llvm.sadd.with.overflow
     83     setjmp,                                   // llvm.setjmp
     84     siglongjmp,                               // llvm.siglongjmp
     85     sigsetjmp,                                // llvm.sigsetjmp
     86     sin,                                      // llvm.sin
     87     smul_with_overflow,                       // llvm.smul.with.overflow
     88     sqrt,                                     // llvm.sqrt
     89     ssub_with_overflow,                       // llvm.ssub.with.overflow
     90     stackprotector,                           // llvm.stackprotector
     91     stackrestore,                             // llvm.stackrestore
     92     stacksave,                                // llvm.stacksave
     93     trap,                                     // llvm.trap
     94     uadd_with_overflow,                       // llvm.uadd.with.overflow
     95     umul_with_overflow,                       // llvm.umul.with.overflow
     96     usub_with_overflow,                       // llvm.usub.with.overflow
     97     vacopy,                                   // llvm.va_copy
     98     vaend,                                    // llvm.va_end
     99     var_annotation,                           // llvm.var.annotation
    100     vastart,                                  // llvm.va_start
    101     x86_3dnow_pavgusb,                        // llvm.x86.3dnow.pavgusb
    102     x86_3dnow_pf2id,                          // llvm.x86.3dnow.pf2id
    103     x86_3dnow_pfacc,                          // llvm.x86.3dnow.pfacc
    104     x86_3dnow_pfadd,                          // llvm.x86.3dnow.pfadd
    105     x86_3dnow_pfcmpeq,                        // llvm.x86.3dnow.pfcmpeq
    106     x86_3dnow_pfcmpge,                        // llvm.x86.3dnow.pfcmpge
    107     x86_3dnow_pfcmpgt,                        // llvm.x86.3dnow.pfcmpgt
    108     x86_3dnow_pfmax,                          // llvm.x86.3dnow.pfmax
    109     x86_3dnow_pfmin,                          // llvm.x86.3dnow.pfmin
    110     x86_3dnow_pfmul,                          // llvm.x86.3dnow.pfmul
    111     x86_3dnow_pfrcp,                          // llvm.x86.3dnow.pfrcp
    112     x86_3dnow_pfrcpit1,                       // llvm.x86.3dnow.pfrcpit1
    113     x86_3dnow_pfrcpit2,                       // llvm.x86.3dnow.pfrcpit2
    114     x86_3dnow_pfrsqit1,                       // llvm.x86.3dnow.pfrsqit1
    115     x86_3dnow_pfrsqrt,                        // llvm.x86.3dnow.pfrsqrt
    116     x86_3dnow_pfsub,                          // llvm.x86.3dnow.pfsub
    117     x86_3dnow_pfsubr,                         // llvm.x86.3dnow.pfsubr
    118     x86_3dnow_pi2fd,                          // llvm.x86.3dnow.pi2fd
    119     x86_3dnow_pmulhrw,                        // llvm.x86.3dnow.pmulhrw
    120     x86_3dnowa_pf2iw,                         // llvm.x86.3dnowa.pf2iw
    121     x86_3dnowa_pfnacc,                        // llvm.x86.3dnowa.pfnacc
    122     x86_3dnowa_pfpnacc,                       // llvm.x86.3dnowa.pfpnacc
    123     x86_3dnowa_pi2fw,                         // llvm.x86.3dnowa.pi2fw
    124     x86_3dnowa_pswapd,                        // llvm.x86.3dnowa.pswapd
    125     x86_aesni_aesdec,                         // llvm.x86.aesni.aesdec
    126     x86_aesni_aesdeclast,                     // llvm.x86.aesni.aesdeclast
    127     x86_aesni_aesenc,                         // llvm.x86.aesni.aesenc
    128     x86_aesni_aesenclast,                     // llvm.x86.aesni.aesenclast
    129     x86_aesni_aesimc,                         // llvm.x86.aesni.aesimc
    130     x86_aesni_aeskeygenassist,                // llvm.x86.aesni.aeskeygenassist
    131     x86_avx_addsub_pd_256,                    // llvm.x86.avx.addsub.pd.256
    132     x86_avx_addsub_ps_256,                    // llvm.x86.avx.addsub.ps.256
    133     x86_avx_blend_pd_256,                     // llvm.x86.avx.blend.pd.256
    134     x86_avx_blend_ps_256,                     // llvm.x86.avx.blend.ps.256
    135     x86_avx_blendv_pd_256,                    // llvm.x86.avx.blendv.pd.256
    136     x86_avx_blendv_ps_256,                    // llvm.x86.avx.blendv.ps.256
    137     x86_avx_cmp_pd_256,                       // llvm.x86.avx.cmp.pd.256
    138     x86_avx_cmp_ps_256,                       // llvm.x86.avx.cmp.ps.256
    139     x86_avx_cvt_pd2_ps_256,                   // llvm.x86.avx.cvt.pd2.ps.256
    140     x86_avx_cvt_pd2dq_256,                    // llvm.x86.avx.cvt.pd2dq.256
    141     x86_avx_cvt_ps2_pd_256,                   // llvm.x86.avx.cvt.ps2.pd.256
    142     x86_avx_cvt_ps2dq_256,                    // llvm.x86.avx.cvt.ps2dq.256
    143     x86_avx_cvtdq2_pd_256,                    // llvm.x86.avx.cvtdq2.pd.256
    144     x86_avx_cvtdq2_ps_256,                    // llvm.x86.avx.cvtdq2.ps.256
    145     x86_avx_cvtt_pd2dq_256,                   // llvm.x86.avx.cvtt.pd2dq.256
    146     x86_avx_cvtt_ps2dq_256,                   // llvm.x86.avx.cvtt.ps2dq.256
    147     x86_avx_dp_ps_256,                        // llvm.x86.avx.dp.ps.256
    148     x86_avx_hadd_pd_256,                      // llvm.x86.avx.hadd.pd.256
    149     x86_avx_hadd_ps_256,                      // llvm.x86.avx.hadd.ps.256
    150     x86_avx_hsub_pd_256,                      // llvm.x86.avx.hsub.pd.256
    151     x86_avx_hsub_ps_256,                      // llvm.x86.avx.hsub.ps.256
    152     x86_avx_ldu_dq_256,                       // llvm.x86.avx.ldu.dq.256
    153     x86_avx_loadu_dq_256,                     // llvm.x86.avx.loadu.dq.256
    154     x86_avx_loadu_pd_256,                     // llvm.x86.avx.loadu.pd.256
    155     x86_avx_loadu_ps_256,                     // llvm.x86.avx.loadu.ps.256
    156     x86_avx_maskload_pd,                      // llvm.x86.avx.maskload.pd
    157     x86_avx_maskload_pd_256,                  // llvm.x86.avx.maskload.pd.256
    158     x86_avx_maskload_ps,                      // llvm.x86.avx.maskload.ps
    159     x86_avx_maskload_ps_256,                  // llvm.x86.avx.maskload.ps.256
    160     x86_avx_maskstore_pd,                     // llvm.x86.avx.maskstore.pd
    161     x86_avx_maskstore_pd_256,                 // llvm.x86.avx.maskstore.pd.256
    162     x86_avx_maskstore_ps,                     // llvm.x86.avx.maskstore.ps
    163     x86_avx_maskstore_ps_256,                 // llvm.x86.avx.maskstore.ps.256
    164     x86_avx_max_pd_256,                       // llvm.x86.avx.max.pd.256
    165     x86_avx_max_ps_256,                       // llvm.x86.avx.max.ps.256
    166     x86_avx_min_pd_256,                       // llvm.x86.avx.min.pd.256
    167     x86_avx_min_ps_256,                       // llvm.x86.avx.min.ps.256
    168     x86_avx_movmsk_pd_256,                    // llvm.x86.avx.movmsk.pd.256
    169     x86_avx_movmsk_ps_256,                    // llvm.x86.avx.movmsk.ps.256
    170     x86_avx_movnt_dq_256,                     // llvm.x86.avx.movnt.dq.256
    171     x86_avx_movnt_pd_256,                     // llvm.x86.avx.movnt.pd.256
    172     x86_avx_movnt_ps_256,                     // llvm.x86.avx.movnt.ps.256
    173     x86_avx_ptestc_256,                       // llvm.x86.avx.ptestc.256
    174     x86_avx_ptestnzc_256,                     // llvm.x86.avx.ptestnzc.256
    175     x86_avx_ptestz_256,                       // llvm.x86.avx.ptestz.256
    176     x86_avx_rcp_ps_256,                       // llvm.x86.avx.rcp.ps.256
    177     x86_avx_round_pd_256,                     // llvm.x86.avx.round.pd.256
    178     x86_avx_round_ps_256,                     // llvm.x86.avx.round.ps.256
    179     x86_avx_rsqrt_ps_256,                     // llvm.x86.avx.rsqrt.ps.256
    180     x86_avx_sqrt_pd_256,                      // llvm.x86.avx.sqrt.pd.256
    181     x86_avx_sqrt_ps_256,                      // llvm.x86.avx.sqrt.ps.256
    182     x86_avx_storeu_dq_256,                    // llvm.x86.avx.storeu.dq.256
    183     x86_avx_storeu_pd_256,                    // llvm.x86.avx.storeu.pd.256
    184     x86_avx_storeu_ps_256,                    // llvm.x86.avx.storeu.ps.256
    185     x86_avx_vbroadcast_sd_256,                // llvm.x86.avx.vbroadcast.sd.256
    186     x86_avx_vbroadcastf128_pd_256,            // llvm.x86.avx.vbroadcastf128.pd.256
    187     x86_avx_vbroadcastf128_ps_256,            // llvm.x86.avx.vbroadcastf128.ps.256
    188     x86_avx_vbroadcastss,                     // llvm.x86.avx.vbroadcastss
    189     x86_avx_vbroadcastss_256,                 // llvm.x86.avx.vbroadcastss.256
    190     x86_avx_vextractf128_pd_256,              // llvm.x86.avx.vextractf128.pd.256
    191     x86_avx_vextractf128_ps_256,              // llvm.x86.avx.vextractf128.ps.256
    192     x86_avx_vextractf128_si_256,              // llvm.x86.avx.vextractf128.si.256
    193     x86_avx_vinsertf128_pd_256,               // llvm.x86.avx.vinsertf128.pd.256
    194     x86_avx_vinsertf128_ps_256,               // llvm.x86.avx.vinsertf128.ps.256
    195     x86_avx_vinsertf128_si_256,               // llvm.x86.avx.vinsertf128.si.256
    196     x86_avx_vperm2f128_pd_256,                // llvm.x86.avx.vperm2f128.pd.256
    197     x86_avx_vperm2f128_ps_256,                // llvm.x86.avx.vperm2f128.ps.256
    198     x86_avx_vperm2f128_si_256,                // llvm.x86.avx.vperm2f128.si.256
    199     x86_avx_vpermil_pd,                       // llvm.x86.avx.vpermil.pd
    200     x86_avx_vpermil_pd_256,                   // llvm.x86.avx.vpermil.pd.256
    201     x86_avx_vpermil_ps,                       // llvm.x86.avx.vpermil.ps
    202     x86_avx_vpermil_ps_256,                   // llvm.x86.avx.vpermil.ps.256
    203     x86_avx_vpermilvar_pd,                    // llvm.x86.avx.vpermilvar.pd
    204     x86_avx_vpermilvar_pd_256,                // llvm.x86.avx.vpermilvar.pd.256
    205     x86_avx_vpermilvar_ps,                    // llvm.x86.avx.vpermilvar.ps
    206     x86_avx_vpermilvar_ps_256,                // llvm.x86.avx.vpermilvar.ps.256
    207     x86_avx_vtestc_pd,                        // llvm.x86.avx.vtestc.pd
    208     x86_avx_vtestc_pd_256,                    // llvm.x86.avx.vtestc.pd.256
    209     x86_avx_vtestc_ps,                        // llvm.x86.avx.vtestc.ps
    210     x86_avx_vtestc_ps_256,                    // llvm.x86.avx.vtestc.ps.256
    211     x86_avx_vtestnzc_pd,                      // llvm.x86.avx.vtestnzc.pd
    212     x86_avx_vtestnzc_pd_256,                  // llvm.x86.avx.vtestnzc.pd.256
    213     x86_avx_vtestnzc_ps,                      // llvm.x86.avx.vtestnzc.ps
    214     x86_avx_vtestnzc_ps_256,                  // llvm.x86.avx.vtestnzc.ps.256
    215     x86_avx_vtestz_pd,                        // llvm.x86.avx.vtestz.pd
    216     x86_avx_vtestz_pd_256,                    // llvm.x86.avx.vtestz.pd.256
    217     x86_avx_vtestz_ps,                        // llvm.x86.avx.vtestz.ps
    218     x86_avx_vtestz_ps_256,                    // llvm.x86.avx.vtestz.ps.256
    219     x86_avx_vzeroall,                         // llvm.x86.avx.vzeroall
    220     x86_avx_vzeroupper,                       // llvm.x86.avx.vzeroupper
    221     x86_int,                                  // llvm.x86.int
    222     x86_mmx_emms,                             // llvm.x86.mmx.emms
    223     x86_mmx_femms,                            // llvm.x86.mmx.femms
    224     x86_mmx_maskmovq,                         // llvm.x86.mmx.maskmovq
    225     x86_mmx_movnt_dq,                         // llvm.x86.mmx.movnt.dq
    226     x86_mmx_packssdw,                         // llvm.x86.mmx.packssdw
    227     x86_mmx_packsswb,                         // llvm.x86.mmx.packsswb
    228     x86_mmx_packuswb,                         // llvm.x86.mmx.packuswb
    229     x86_mmx_padd_b,                           // llvm.x86.mmx.padd.b
    230     x86_mmx_padd_d,                           // llvm.x86.mmx.padd.d
    231     x86_mmx_padd_q,                           // llvm.x86.mmx.padd.q
    232     x86_mmx_padd_w,                           // llvm.x86.mmx.padd.w
    233     x86_mmx_padds_b,                          // llvm.x86.mmx.padds.b
    234     x86_mmx_padds_w,                          // llvm.x86.mmx.padds.w
    235     x86_mmx_paddus_b,                         // llvm.x86.mmx.paddus.b
    236     x86_mmx_paddus_w,                         // llvm.x86.mmx.paddus.w
    237     x86_mmx_palignr_b,                        // llvm.x86.mmx.palignr.b
    238     x86_mmx_pand,                             // llvm.x86.mmx.pand
    239     x86_mmx_pandn,                            // llvm.x86.mmx.pandn
    240     x86_mmx_pavg_b,                           // llvm.x86.mmx.pavg.b
    241     x86_mmx_pavg_w,                           // llvm.x86.mmx.pavg.w
    242     x86_mmx_pcmpeq_b,                         // llvm.x86.mmx.pcmpeq.b
    243     x86_mmx_pcmpeq_d,                         // llvm.x86.mmx.pcmpeq.d
    244     x86_mmx_pcmpeq_w,                         // llvm.x86.mmx.pcmpeq.w
    245     x86_mmx_pcmpgt_b,                         // llvm.x86.mmx.pcmpgt.b
    246     x86_mmx_pcmpgt_d,                         // llvm.x86.mmx.pcmpgt.d
    247     x86_mmx_pcmpgt_w,                         // llvm.x86.mmx.pcmpgt.w
    248     x86_mmx_pextr_w,                          // llvm.x86.mmx.pextr.w
    249     x86_mmx_pinsr_w,                          // llvm.x86.mmx.pinsr.w
    250     x86_mmx_pmadd_wd,                         // llvm.x86.mmx.pmadd.wd
    251     x86_mmx_pmaxs_w,                          // llvm.x86.mmx.pmaxs.w
    252     x86_mmx_pmaxu_b,                          // llvm.x86.mmx.pmaxu.b
    253     x86_mmx_pmins_w,                          // llvm.x86.mmx.pmins.w
    254     x86_mmx_pminu_b,                          // llvm.x86.mmx.pminu.b
    255     x86_mmx_pmovmskb,                         // llvm.x86.mmx.pmovmskb
    256     x86_mmx_pmulh_w,                          // llvm.x86.mmx.pmulh.w
    257     x86_mmx_pmulhu_w,                         // llvm.x86.mmx.pmulhu.w
    258     x86_mmx_pmull_w,                          // llvm.x86.mmx.pmull.w
    259     x86_mmx_pmulu_dq,                         // llvm.x86.mmx.pmulu.dq
    260     x86_mmx_por,                              // llvm.x86.mmx.por
    261     x86_mmx_psad_bw,                          // llvm.x86.mmx.psad.bw
    262     x86_mmx_psll_d,                           // llvm.x86.mmx.psll.d
    263     x86_mmx_psll_q,                           // llvm.x86.mmx.psll.q
    264     x86_mmx_psll_w,                           // llvm.x86.mmx.psll.w
    265     x86_mmx_pslli_d,                          // llvm.x86.mmx.pslli.d
    266     x86_mmx_pslli_q,                          // llvm.x86.mmx.pslli.q
    267     x86_mmx_pslli_w,                          // llvm.x86.mmx.pslli.w
    268     x86_mmx_psra_d,                           // llvm.x86.mmx.psra.d
    269     x86_mmx_psra_w,                           // llvm.x86.mmx.psra.w
    270     x86_mmx_psrai_d,                          // llvm.x86.mmx.psrai.d
    271     x86_mmx_psrai_w,                          // llvm.x86.mmx.psrai.w
    272     x86_mmx_psrl_d,                           // llvm.x86.mmx.psrl.d
    273     x86_mmx_psrl_q,                           // llvm.x86.mmx.psrl.q
    274     x86_mmx_psrl_w,                           // llvm.x86.mmx.psrl.w
    275     x86_mmx_psrli_d,                          // llvm.x86.mmx.psrli.d
    276     x86_mmx_psrli_q,                          // llvm.x86.mmx.psrli.q
    277     x86_mmx_psrli_w,                          // llvm.x86.mmx.psrli.w
    278     x86_mmx_psub_b,                           // llvm.x86.mmx.psub.b
    279     x86_mmx_psub_d,                           // llvm.x86.mmx.psub.d
    280     x86_mmx_psub_q,                           // llvm.x86.mmx.psub.q
    281     x86_mmx_psub_w,                           // llvm.x86.mmx.psub.w
    282     x86_mmx_psubs_b,                          // llvm.x86.mmx.psubs.b
    283     x86_mmx_psubs_w,                          // llvm.x86.mmx.psubs.w
    284     x86_mmx_psubus_b,                         // llvm.x86.mmx.psubus.b
    285     x86_mmx_psubus_w,                         // llvm.x86.mmx.psubus.w
    286     x86_mmx_punpckhbw,                        // llvm.x86.mmx.punpckhbw
    287     x86_mmx_punpckhdq,                        // llvm.x86.mmx.punpckhdq
    288     x86_mmx_punpckhwd,                        // llvm.x86.mmx.punpckhwd
    289     x86_mmx_punpcklbw,                        // llvm.x86.mmx.punpcklbw
    290     x86_mmx_punpckldq,                        // llvm.x86.mmx.punpckldq
    291     x86_mmx_punpcklwd,                        // llvm.x86.mmx.punpcklwd
    292     x86_mmx_pxor,                             // llvm.x86.mmx.pxor
    293     x86_sse2_add_sd,                          // llvm.x86.sse2.add.sd
    294     x86_sse2_clflush,                         // llvm.x86.sse2.clflush
    295     x86_sse2_cmp_pd,                          // llvm.x86.sse2.cmp.pd
    296     x86_sse2_cmp_sd,                          // llvm.x86.sse2.cmp.sd
    297     x86_sse2_comieq_sd,                       // llvm.x86.sse2.comieq.sd
    298     x86_sse2_comige_sd,                       // llvm.x86.sse2.comige.sd
    299     x86_sse2_comigt_sd,                       // llvm.x86.sse2.comigt.sd
    300     x86_sse2_comile_sd,                       // llvm.x86.sse2.comile.sd
    301     x86_sse2_comilt_sd,                       // llvm.x86.sse2.comilt.sd
    302     x86_sse2_comineq_sd,                      // llvm.x86.sse2.comineq.sd
    303     x86_sse2_cvtdq2pd,                        // llvm.x86.sse2.cvtdq2pd
    304     x86_sse2_cvtdq2ps,                        // llvm.x86.sse2.cvtdq2ps
    305     x86_sse2_cvtpd2dq,                        // llvm.x86.sse2.cvtpd2dq
    306     x86_sse2_cvtpd2ps,                        // llvm.x86.sse2.cvtpd2ps
    307     x86_sse2_cvtps2dq,                        // llvm.x86.sse2.cvtps2dq
    308     x86_sse2_cvtps2pd,                        // llvm.x86.sse2.cvtps2pd
    309     x86_sse2_cvtsd2si,                        // llvm.x86.sse2.cvtsd2si
    310     x86_sse2_cvtsd2si64,                      // llvm.x86.sse2.cvtsd2si64
    311     x86_sse2_cvtsd2ss,                        // llvm.x86.sse2.cvtsd2ss
    312     x86_sse2_cvtsi2sd,                        // llvm.x86.sse2.cvtsi2sd
    313     x86_sse2_cvtsi642sd,                      // llvm.x86.sse2.cvtsi642sd
    314     x86_sse2_cvtss2sd,                        // llvm.x86.sse2.cvtss2sd
    315     x86_sse2_cvttpd2dq,                       // llvm.x86.sse2.cvttpd2dq
    316     x86_sse2_cvttps2dq,                       // llvm.x86.sse2.cvttps2dq
    317     x86_sse2_cvttsd2si,                       // llvm.x86.sse2.cvttsd2si
    318     x86_sse2_cvttsd2si64,                     // llvm.x86.sse2.cvttsd2si64
    319     x86_sse2_div_sd,                          // llvm.x86.sse2.div.sd
    320     x86_sse2_lfence,                          // llvm.x86.sse2.lfence
    321     x86_sse2_maskmov_dqu,                     // llvm.x86.sse2.maskmov.dqu
    322     x86_sse2_max_pd,                          // llvm.x86.sse2.max.pd
    323     x86_sse2_max_sd,                          // llvm.x86.sse2.max.sd
    324     x86_sse2_mfence,                          // llvm.x86.sse2.mfence
    325     x86_sse2_min_pd,                          // llvm.x86.sse2.min.pd
    326     x86_sse2_min_sd,                          // llvm.x86.sse2.min.sd
    327     x86_sse2_movmsk_pd,                       // llvm.x86.sse2.movmsk.pd
    328     x86_sse2_mul_sd,                          // llvm.x86.sse2.mul.sd
    329     x86_sse2_packssdw_128,                    // llvm.x86.sse2.packssdw.128
    330     x86_sse2_packsswb_128,                    // llvm.x86.sse2.packsswb.128
    331     x86_sse2_packuswb_128,                    // llvm.x86.sse2.packuswb.128
    332     x86_sse2_padds_b,                         // llvm.x86.sse2.padds.b
    333     x86_sse2_padds_w,                         // llvm.x86.sse2.padds.w
    334     x86_sse2_paddus_b,                        // llvm.x86.sse2.paddus.b
    335     x86_sse2_paddus_w,                        // llvm.x86.sse2.paddus.w
    336     x86_sse2_pavg_b,                          // llvm.x86.sse2.pavg.b
    337     x86_sse2_pavg_w,                          // llvm.x86.sse2.pavg.w
    338     x86_sse2_pcmpeq_b,                        // llvm.x86.sse2.pcmpeq.b
    339     x86_sse2_pcmpeq_d,                        // llvm.x86.sse2.pcmpeq.d
    340     x86_sse2_pcmpeq_w,                        // llvm.x86.sse2.pcmpeq.w
    341     x86_sse2_pcmpgt_b,                        // llvm.x86.sse2.pcmpgt.b
    342     x86_sse2_pcmpgt_d,                        // llvm.x86.sse2.pcmpgt.d
    343     x86_sse2_pcmpgt_w,                        // llvm.x86.sse2.pcmpgt.w
    344     x86_sse2_pmadd_wd,                        // llvm.x86.sse2.pmadd.wd
    345     x86_sse2_pmaxs_w,                         // llvm.x86.sse2.pmaxs.w
    346     x86_sse2_pmaxu_b,                         // llvm.x86.sse2.pmaxu.b
    347     x86_sse2_pmins_w,                         // llvm.x86.sse2.pmins.w
    348     x86_sse2_pminu_b,                         // llvm.x86.sse2.pminu.b
    349     x86_sse2_pmovmskb_128,                    // llvm.x86.sse2.pmovmskb.128
    350     x86_sse2_pmulh_w,                         // llvm.x86.sse2.pmulh.w
    351     x86_sse2_pmulhu_w,                        // llvm.x86.sse2.pmulhu.w
    352     x86_sse2_pmulu_dq,                        // llvm.x86.sse2.pmulu.dq
    353     x86_sse2_psad_bw,                         // llvm.x86.sse2.psad.bw
    354     x86_sse2_psll_d,                          // llvm.x86.sse2.psll.d
    355     x86_sse2_psll_dq,                         // llvm.x86.sse2.psll.dq
    356     x86_sse2_psll_dq_bs,                      // llvm.x86.sse2.psll.dq.bs
    357     x86_sse2_psll_q,                          // llvm.x86.sse2.psll.q
    358     x86_sse2_psll_w,                          // llvm.x86.sse2.psll.w
    359     x86_sse2_pslli_d,                         // llvm.x86.sse2.pslli.d
    360     x86_sse2_pslli_q,                         // llvm.x86.sse2.pslli.q
    361     x86_sse2_pslli_w,                         // llvm.x86.sse2.pslli.w
    362     x86_sse2_psra_d,                          // llvm.x86.sse2.psra.d
    363     x86_sse2_psra_w,                          // llvm.x86.sse2.psra.w
    364     x86_sse2_psrai_d,                         // llvm.x86.sse2.psrai.d
    365     x86_sse2_psrai_w,                         // llvm.x86.sse2.psrai.w
    366     x86_sse2_psrl_d,                          // llvm.x86.sse2.psrl.d
    367     x86_sse2_psrl_dq,                         // llvm.x86.sse2.psrl.dq
    368     x86_sse2_psrl_dq_bs,                      // llvm.x86.sse2.psrl.dq.bs
    369     x86_sse2_psrl_q,                          // llvm.x86.sse2.psrl.q
    370     x86_sse2_psrl_w,                          // llvm.x86.sse2.psrl.w
    371     x86_sse2_psrli_d,                         // llvm.x86.sse2.psrli.d
    372     x86_sse2_psrli_q,                         // llvm.x86.sse2.psrli.q
    373     x86_sse2_psrli_w,                         // llvm.x86.sse2.psrli.w
    374     x86_sse2_psubs_b,                         // llvm.x86.sse2.psubs.b
    375     x86_sse2_psubs_w,                         // llvm.x86.sse2.psubs.w
    376     x86_sse2_psubus_b,                        // llvm.x86.sse2.psubus.b
    377     x86_sse2_psubus_w,                        // llvm.x86.sse2.psubus.w
    378     x86_sse2_sqrt_pd,                         // llvm.x86.sse2.sqrt.pd
    379     x86_sse2_sqrt_sd,                         // llvm.x86.sse2.sqrt.sd
    380     x86_sse2_storel_dq,                       // llvm.x86.sse2.storel.dq
    381     x86_sse2_storeu_dq,                       // llvm.x86.sse2.storeu.dq
    382     x86_sse2_storeu_pd,                       // llvm.x86.sse2.storeu.pd
    383     x86_sse2_sub_sd,                          // llvm.x86.sse2.sub.sd
    384     x86_sse2_ucomieq_sd,                      // llvm.x86.sse2.ucomieq.sd
    385     x86_sse2_ucomige_sd,                      // llvm.x86.sse2.ucomige.sd
    386     x86_sse2_ucomigt_sd,                      // llvm.x86.sse2.ucomigt.sd
    387     x86_sse2_ucomile_sd,                      // llvm.x86.sse2.ucomile.sd
    388     x86_sse2_ucomilt_sd,                      // llvm.x86.sse2.ucomilt.sd
    389     x86_sse2_ucomineq_sd,                     // llvm.x86.sse2.ucomineq.sd
    390     x86_sse3_addsub_pd,                       // llvm.x86.sse3.addsub.pd
    391     x86_sse3_addsub_ps,                       // llvm.x86.sse3.addsub.ps
    392     x86_sse3_hadd_pd,                         // llvm.x86.sse3.hadd.pd
    393     x86_sse3_hadd_ps,                         // llvm.x86.sse3.hadd.ps
    394     x86_sse3_hsub_pd,                         // llvm.x86.sse3.hsub.pd
    395     x86_sse3_hsub_ps,                         // llvm.x86.sse3.hsub.ps
    396     x86_sse3_ldu_dq,                          // llvm.x86.sse3.ldu.dq
    397     x86_sse3_monitor,                         // llvm.x86.sse3.monitor
    398     x86_sse3_mwait,                           // llvm.x86.sse3.mwait
    399     x86_sse41_blendpd,                        // llvm.x86.sse41.blendpd
    400     x86_sse41_blendps,                        // llvm.x86.sse41.blendps
    401     x86_sse41_blendvpd,                       // llvm.x86.sse41.blendvpd
    402     x86_sse41_blendvps,                       // llvm.x86.sse41.blendvps
    403     x86_sse41_dppd,                           // llvm.x86.sse41.dppd
    404     x86_sse41_dpps,                           // llvm.x86.sse41.dpps
    405     x86_sse41_extractps,                      // llvm.x86.sse41.extractps
    406     x86_sse41_insertps,                       // llvm.x86.sse41.insertps
    407     x86_sse41_movntdqa,                       // llvm.x86.sse41.movntdqa
    408     x86_sse41_mpsadbw,                        // llvm.x86.sse41.mpsadbw
    409     x86_sse41_packusdw,                       // llvm.x86.sse41.packusdw
    410     x86_sse41_pblendvb,                       // llvm.x86.sse41.pblendvb
    411     x86_sse41_pblendw,                        // llvm.x86.sse41.pblendw
    412     x86_sse41_pcmpeqq,                        // llvm.x86.sse41.pcmpeqq
    413     x86_sse41_pextrb,                         // llvm.x86.sse41.pextrb
    414     x86_sse41_pextrd,                         // llvm.x86.sse41.pextrd
    415     x86_sse41_pextrq,                         // llvm.x86.sse41.pextrq
    416     x86_sse41_phminposuw,                     // llvm.x86.sse41.phminposuw
    417     x86_sse41_pmaxsb,                         // llvm.x86.sse41.pmaxsb
    418     x86_sse41_pmaxsd,                         // llvm.x86.sse41.pmaxsd
    419     x86_sse41_pmaxud,                         // llvm.x86.sse41.pmaxud
    420     x86_sse41_pmaxuw,                         // llvm.x86.sse41.pmaxuw
    421     x86_sse41_pminsb,                         // llvm.x86.sse41.pminsb
    422     x86_sse41_pminsd,                         // llvm.x86.sse41.pminsd
    423     x86_sse41_pminud,                         // llvm.x86.sse41.pminud
    424     x86_sse41_pminuw,                         // llvm.x86.sse41.pminuw
    425     x86_sse41_pmovsxbd,                       // llvm.x86.sse41.pmovsxbd
    426     x86_sse41_pmovsxbq,                       // llvm.x86.sse41.pmovsxbq
    427     x86_sse41_pmovsxbw,                       // llvm.x86.sse41.pmovsxbw
    428     x86_sse41_pmovsxdq,                       // llvm.x86.sse41.pmovsxdq
    429     x86_sse41_pmovsxwd,                       // llvm.x86.sse41.pmovsxwd
    430     x86_sse41_pmovsxwq,                       // llvm.x86.sse41.pmovsxwq
    431     x86_sse41_pmovzxbd,                       // llvm.x86.sse41.pmovzxbd
    432     x86_sse41_pmovzxbq,                       // llvm.x86.sse41.pmovzxbq
    433     x86_sse41_pmovzxbw,                       // llvm.x86.sse41.pmovzxbw
    434     x86_sse41_pmovzxdq,                       // llvm.x86.sse41.pmovzxdq
    435     x86_sse41_pmovzxwd,                       // llvm.x86.sse41.pmovzxwd
    436     x86_sse41_pmovzxwq,                       // llvm.x86.sse41.pmovzxwq
    437     x86_sse41_pmuldq,                         // llvm.x86.sse41.pmuldq
    438     x86_sse41_ptestc,                         // llvm.x86.sse41.ptestc
    439     x86_sse41_ptestnzc,                       // llvm.x86.sse41.ptestnzc
    440     x86_sse41_ptestz,                         // llvm.x86.sse41.ptestz
    441     x86_sse41_round_pd,                       // llvm.x86.sse41.round.pd
    442     x86_sse41_round_ps,                       // llvm.x86.sse41.round.ps
    443     x86_sse41_round_sd,                       // llvm.x86.sse41.round.sd
    444     x86_sse41_round_ss,                       // llvm.x86.sse41.round.ss
    445     x86_sse42_crc32_32_16,                    // llvm.x86.sse42.crc32.32.16
    446     x86_sse42_crc32_32_32,                    // llvm.x86.sse42.crc32.32.32
    447     x86_sse42_crc32_32_8,                     // llvm.x86.sse42.crc32.32.8
    448     x86_sse42_crc32_64_64,                    // llvm.x86.sse42.crc32.64.64
    449     x86_sse42_crc32_64_8,                     // llvm.x86.sse42.crc32.64.8
    450     x86_sse42_pcmpestri128,                   // llvm.x86.sse42.pcmpestri128
    451     x86_sse42_pcmpestria128,                  // llvm.x86.sse42.pcmpestria128
    452     x86_sse42_pcmpestric128,                  // llvm.x86.sse42.pcmpestric128
    453     x86_sse42_pcmpestrio128,                  // llvm.x86.sse42.pcmpestrio128
    454     x86_sse42_pcmpestris128,                  // llvm.x86.sse42.pcmpestris128
    455     x86_sse42_pcmpestriz128,                  // llvm.x86.sse42.pcmpestriz128
    456     x86_sse42_pcmpestrm128,                   // llvm.x86.sse42.pcmpestrm128
    457     x86_sse42_pcmpgtq,                        // llvm.x86.sse42.pcmpgtq
    458     x86_sse42_pcmpistri128,                   // llvm.x86.sse42.pcmpistri128
    459     x86_sse42_pcmpistria128,                  // llvm.x86.sse42.pcmpistria128
    460     x86_sse42_pcmpistric128,                  // llvm.x86.sse42.pcmpistric128
    461     x86_sse42_pcmpistrio128,                  // llvm.x86.sse42.pcmpistrio128
    462     x86_sse42_pcmpistris128,                  // llvm.x86.sse42.pcmpistris128
    463     x86_sse42_pcmpistriz128,                  // llvm.x86.sse42.pcmpistriz128
    464     x86_sse42_pcmpistrm128,                   // llvm.x86.sse42.pcmpistrm128
    465     x86_sse_add_ss,                           // llvm.x86.sse.add.ss
    466     x86_sse_cmp_ps,                           // llvm.x86.sse.cmp.ps
    467     x86_sse_cmp_ss,                           // llvm.x86.sse.cmp.ss
    468     x86_sse_comieq_ss,                        // llvm.x86.sse.comieq.ss
    469     x86_sse_comige_ss,                        // llvm.x86.sse.comige.ss
    470     x86_sse_comigt_ss,                        // llvm.x86.sse.comigt.ss
    471     x86_sse_comile_ss,                        // llvm.x86.sse.comile.ss
    472     x86_sse_comilt_ss,                        // llvm.x86.sse.comilt.ss
    473     x86_sse_comineq_ss,                       // llvm.x86.sse.comineq.ss
    474     x86_sse_cvtpd2pi,                         // llvm.x86.sse.cvtpd2pi
    475     x86_sse_cvtpi2pd,                         // llvm.x86.sse.cvtpi2pd
    476     x86_sse_cvtpi2ps,                         // llvm.x86.sse.cvtpi2ps
    477     x86_sse_cvtps2pi,                         // llvm.x86.sse.cvtps2pi
    478     x86_sse_cvtsi2ss,                         // llvm.x86.sse.cvtsi2ss
    479     x86_sse_cvtsi642ss,                       // llvm.x86.sse.cvtsi642ss
    480     x86_sse_cvtss2si,                         // llvm.x86.sse.cvtss2si
    481     x86_sse_cvtss2si64,                       // llvm.x86.sse.cvtss2si64
    482     x86_sse_cvttpd2pi,                        // llvm.x86.sse.cvttpd2pi
    483     x86_sse_cvttps2pi,                        // llvm.x86.sse.cvttps2pi
    484     x86_sse_cvttss2si,                        // llvm.x86.sse.cvttss2si
    485     x86_sse_cvttss2si64,                      // llvm.x86.sse.cvttss2si64
    486     x86_sse_div_ss,                           // llvm.x86.sse.div.ss
    487     x86_sse_ldmxcsr,                          // llvm.x86.sse.ldmxcsr
    488     x86_sse_max_ps,                           // llvm.x86.sse.max.ps
    489     x86_sse_max_ss,                           // llvm.x86.sse.max.ss
    490     x86_sse_min_ps,                           // llvm.x86.sse.min.ps
    491     x86_sse_min_ss,                           // llvm.x86.sse.min.ss
    492     x86_sse_movmsk_ps,                        // llvm.x86.sse.movmsk.ps
    493     x86_sse_mul_ss,                           // llvm.x86.sse.mul.ss
    494     x86_sse_pshuf_w,                          // llvm.x86.sse.pshuf.w
    495     x86_sse_rcp_ps,                           // llvm.x86.sse.rcp.ps
    496     x86_sse_rcp_ss,                           // llvm.x86.sse.rcp.ss
    497     x86_sse_rsqrt_ps,                         // llvm.x86.sse.rsqrt.ps
    498     x86_sse_rsqrt_ss,                         // llvm.x86.sse.rsqrt.ss
    499     x86_sse_sfence,                           // llvm.x86.sse.sfence
    500     x86_sse_sqrt_ps,                          // llvm.x86.sse.sqrt.ps
    501     x86_sse_sqrt_ss,                          // llvm.x86.sse.sqrt.ss
    502     x86_sse_stmxcsr,                          // llvm.x86.sse.stmxcsr
    503     x86_sse_storeu_ps,                        // llvm.x86.sse.storeu.ps
    504     x86_sse_sub_ss,                           // llvm.x86.sse.sub.ss
    505     x86_sse_ucomieq_ss,                       // llvm.x86.sse.ucomieq.ss
    506     x86_sse_ucomige_ss,                       // llvm.x86.sse.ucomige.ss
    507     x86_sse_ucomigt_ss,                       // llvm.x86.sse.ucomigt.ss
    508     x86_sse_ucomile_ss,                       // llvm.x86.sse.ucomile.ss
    509     x86_sse_ucomilt_ss,                       // llvm.x86.sse.ucomilt.ss
    510     x86_sse_ucomineq_ss,                      // llvm.x86.sse.ucomineq.ss
    511     x86_ssse3_pabs_b,                         // llvm.x86.ssse3.pabs.b
    512     x86_ssse3_pabs_b_128,                     // llvm.x86.ssse3.pabs.b.128
    513     x86_ssse3_pabs_d,                         // llvm.x86.ssse3.pabs.d
    514     x86_ssse3_pabs_d_128,                     // llvm.x86.ssse3.pabs.d.128
    515     x86_ssse3_pabs_w,                         // llvm.x86.ssse3.pabs.w
    516     x86_ssse3_pabs_w_128,                     // llvm.x86.ssse3.pabs.w.128
    517     x86_ssse3_phadd_d,                        // llvm.x86.ssse3.phadd.d
    518     x86_ssse3_phadd_d_128,                    // llvm.x86.ssse3.phadd.d.128
    519     x86_ssse3_phadd_sw,                       // llvm.x86.ssse3.phadd.sw
    520     x86_ssse3_phadd_sw_128,                   // llvm.x86.ssse3.phadd.sw.128
    521     x86_ssse3_phadd_w,                        // llvm.x86.ssse3.phadd.w
    522     x86_ssse3_phadd_w_128,                    // llvm.x86.ssse3.phadd.w.128
    523     x86_ssse3_phsub_d,                        // llvm.x86.ssse3.phsub.d
    524     x86_ssse3_phsub_d_128,                    // llvm.x86.ssse3.phsub.d.128
    525     x86_ssse3_phsub_sw,                       // llvm.x86.ssse3.phsub.sw
    526     x86_ssse3_phsub_sw_128,                   // llvm.x86.ssse3.phsub.sw.128
    527     x86_ssse3_phsub_w,                        // llvm.x86.ssse3.phsub.w
    528     x86_ssse3_phsub_w_128,                    // llvm.x86.ssse3.phsub.w.128
    529     x86_ssse3_pmadd_ub_sw,                    // llvm.x86.ssse3.pmadd.ub.sw
    530     x86_ssse3_pmadd_ub_sw_128,                // llvm.x86.ssse3.pmadd.ub.sw.128
    531     x86_ssse3_pmul_hr_sw,                     // llvm.x86.ssse3.pmul.hr.sw
    532     x86_ssse3_pmul_hr_sw_128,                 // llvm.x86.ssse3.pmul.hr.sw.128
    533     x86_ssse3_pshuf_b,                        // llvm.x86.ssse3.pshuf.b
    534     x86_ssse3_pshuf_b_128,                    // llvm.x86.ssse3.pshuf.b.128
    535     x86_ssse3_psign_b,                        // llvm.x86.ssse3.psign.b
    536     x86_ssse3_psign_b_128,                    // llvm.x86.ssse3.psign.b.128
    537     x86_ssse3_psign_d,                        // llvm.x86.ssse3.psign.d
    538     x86_ssse3_psign_d_128,                    // llvm.x86.ssse3.psign.d.128
    539     x86_ssse3_psign_w,                        // llvm.x86.ssse3.psign.w
    540     x86_ssse3_psign_w_128                     // llvm.x86.ssse3.psign.w.128
    541 #endif
    542 
    543 // Intrinsic ID to name table
    544 #ifdef GET_INTRINSIC_NAME_TABLE
    545   // Note that entry #0 is the invalid intrinsic!
    546   "llvm.adjust.trampoline",
    547   "llvm.annotation",
    548   "llvm.bswap",
    549   "llvm.convert.from.fp16",
    550   "llvm.convert.to.fp16",
    551   "llvm.convertff",
    552   "llvm.convertfsi",
    553   "llvm.convertfui",
    554   "llvm.convertsif",
    555   "llvm.convertss",
    556   "llvm.convertsu",
    557   "llvm.convertuif",
    558   "llvm.convertus",
    559   "llvm.convertuu",
    560   "llvm.cos",
    561   "llvm.ctlz",
    562   "llvm.ctpop",
    563   "llvm.cttz",
    564   "llvm.dbg.declare",
    565   "llvm.dbg.value",
    566   "llvm.eh.dwarf.cfa",
    567   "llvm.eh.exception",
    568   "llvm.eh.resume",
    569   "llvm.eh.return.i32",
    570   "llvm.eh.return.i64",
    571   "llvm.eh.selector",
    572   "llvm.eh.sjlj.callsite",
    573   "llvm.eh.sjlj.dispatch.setup",
    574   "llvm.eh.sjlj.functioncontext",
    575   "llvm.eh.sjlj.longjmp",
    576   "llvm.eh.sjlj.lsda",
    577   "llvm.eh.sjlj.setjmp",
    578   "llvm.eh.typeid.for",
    579   "llvm.eh.unwind.init",
    580   "llvm.exp",
    581   "llvm.exp2",
    582   "llvm.expect",
    583   "llvm.flt.rounds",
    584   "llvm.fma",
    585   "llvm.frameaddress",
    586   "llvm.gcread",
    587   "llvm.gcroot",
    588   "llvm.gcwrite",
    589   "llvm.init.trampoline",
    590   "llvm.invariant.end",
    591   "llvm.invariant.start",
    592   "llvm.lifetime.end",
    593   "llvm.lifetime.start",
    594   "llvm.log",
    595   "llvm.log10",
    596   "llvm.log2",
    597   "llvm.longjmp",
    598   "llvm.memcpy",
    599   "llvm.memmove",
    600   "llvm.memset",
    601   "llvm.objectsize",
    602   "llvm.pcmarker",
    603   "llvm.pow",
    604   "llvm.powi",
    605   "llvm.prefetch",
    606   "llvm.ptr.annotation",
    607   "llvm.readcyclecounter",
    608   "llvm.returnaddress",
    609   "llvm.sadd.with.overflow",
    610   "llvm.setjmp",
    611   "llvm.siglongjmp",
    612   "llvm.sigsetjmp",
    613   "llvm.sin",
    614   "llvm.smul.with.overflow",
    615   "llvm.sqrt",
    616   "llvm.ssub.with.overflow",
    617   "llvm.stackprotector",
    618   "llvm.stackrestore",
    619   "llvm.stacksave",
    620   "llvm.trap",
    621   "llvm.uadd.with.overflow",
    622   "llvm.umul.with.overflow",
    623   "llvm.usub.with.overflow",
    624   "llvm.va_copy",
    625   "llvm.va_end",
    626   "llvm.var.annotation",
    627   "llvm.va_start",
    628   "llvm.x86.3dnow.pavgusb",
    629   "llvm.x86.3dnow.pf2id",
    630   "llvm.x86.3dnow.pfacc",
    631   "llvm.x86.3dnow.pfadd",
    632   "llvm.x86.3dnow.pfcmpeq",
    633   "llvm.x86.3dnow.pfcmpge",
    634   "llvm.x86.3dnow.pfcmpgt",
    635   "llvm.x86.3dnow.pfmax",
    636   "llvm.x86.3dnow.pfmin",
    637   "llvm.x86.3dnow.pfmul",
    638   "llvm.x86.3dnow.pfrcp",
    639   "llvm.x86.3dnow.pfrcpit1",
    640   "llvm.x86.3dnow.pfrcpit2",
    641   "llvm.x86.3dnow.pfrsqit1",
    642   "llvm.x86.3dnow.pfrsqrt",
    643   "llvm.x86.3dnow.pfsub",
    644   "llvm.x86.3dnow.pfsubr",
    645   "llvm.x86.3dnow.pi2fd",
    646   "llvm.x86.3dnow.pmulhrw",
    647   "llvm.x86.3dnowa.pf2iw",
    648   "llvm.x86.3dnowa.pfnacc",
    649   "llvm.x86.3dnowa.pfpnacc",
    650   "llvm.x86.3dnowa.pi2fw",
    651   "llvm.x86.3dnowa.pswapd",
    652   "llvm.x86.aesni.aesdec",
    653   "llvm.x86.aesni.aesdeclast",
    654   "llvm.x86.aesni.aesenc",
    655   "llvm.x86.aesni.aesenclast",
    656   "llvm.x86.aesni.aesimc",
    657   "llvm.x86.aesni.aeskeygenassist",
    658   "llvm.x86.avx.addsub.pd.256",
    659   "llvm.x86.avx.addsub.ps.256",
    660   "llvm.x86.avx.blend.pd.256",
    661   "llvm.x86.avx.blend.ps.256",
    662   "llvm.x86.avx.blendv.pd.256",
    663   "llvm.x86.avx.blendv.ps.256",
    664   "llvm.x86.avx.cmp.pd.256",
    665   "llvm.x86.avx.cmp.ps.256",
    666   "llvm.x86.avx.cvt.pd2.ps.256",
    667   "llvm.x86.avx.cvt.pd2dq.256",
    668   "llvm.x86.avx.cvt.ps2.pd.256",
    669   "llvm.x86.avx.cvt.ps2dq.256",
    670   "llvm.x86.avx.cvtdq2.pd.256",
    671   "llvm.x86.avx.cvtdq2.ps.256",
    672   "llvm.x86.avx.cvtt.pd2dq.256",
    673   "llvm.x86.avx.cvtt.ps2dq.256",
    674   "llvm.x86.avx.dp.ps.256",
    675   "llvm.x86.avx.hadd.pd.256",
    676   "llvm.x86.avx.hadd.ps.256",
    677   "llvm.x86.avx.hsub.pd.256",
    678   "llvm.x86.avx.hsub.ps.256",
    679   "llvm.x86.avx.ldu.dq.256",
    680   "llvm.x86.avx.loadu.dq.256",
    681   "llvm.x86.avx.loadu.pd.256",
    682   "llvm.x86.avx.loadu.ps.256",
    683   "llvm.x86.avx.maskload.pd",
    684   "llvm.x86.avx.maskload.pd.256",
    685   "llvm.x86.avx.maskload.ps",
    686   "llvm.x86.avx.maskload.ps.256",
    687   "llvm.x86.avx.maskstore.pd",
    688   "llvm.x86.avx.maskstore.pd.256",
    689   "llvm.x86.avx.maskstore.ps",
    690   "llvm.x86.avx.maskstore.ps.256",
    691   "llvm.x86.avx.max.pd.256",
    692   "llvm.x86.avx.max.ps.256",
    693   "llvm.x86.avx.min.pd.256",
    694   "llvm.x86.avx.min.ps.256",
    695   "llvm.x86.avx.movmsk.pd.256",
    696   "llvm.x86.avx.movmsk.ps.256",
    697   "llvm.x86.avx.movnt.dq.256",
    698   "llvm.x86.avx.movnt.pd.256",
    699   "llvm.x86.avx.movnt.ps.256",
    700   "llvm.x86.avx.ptestc.256",
    701   "llvm.x86.avx.ptestnzc.256",
    702   "llvm.x86.avx.ptestz.256",
    703   "llvm.x86.avx.rcp.ps.256",
    704   "llvm.x86.avx.round.pd.256",
    705   "llvm.x86.avx.round.ps.256",
    706   "llvm.x86.avx.rsqrt.ps.256",
    707   "llvm.x86.avx.sqrt.pd.256",
    708   "llvm.x86.avx.sqrt.ps.256",
    709   "llvm.x86.avx.storeu.dq.256",
    710   "llvm.x86.avx.storeu.pd.256",
    711   "llvm.x86.avx.storeu.ps.256",
    712   "llvm.x86.avx.vbroadcast.sd.256",
    713   "llvm.x86.avx.vbroadcastf128.pd.256",
    714   "llvm.x86.avx.vbroadcastf128.ps.256",
    715   "llvm.x86.avx.vbroadcastss",
    716   "llvm.x86.avx.vbroadcastss.256",
    717   "llvm.x86.avx.vextractf128.pd.256",
    718   "llvm.x86.avx.vextractf128.ps.256",
    719   "llvm.x86.avx.vextractf128.si.256",
    720   "llvm.x86.avx.vinsertf128.pd.256",
    721   "llvm.x86.avx.vinsertf128.ps.256",
    722   "llvm.x86.avx.vinsertf128.si.256",
    723   "llvm.x86.avx.vperm2f128.pd.256",
    724   "llvm.x86.avx.vperm2f128.ps.256",
    725   "llvm.x86.avx.vperm2f128.si.256",
    726   "llvm.x86.avx.vpermil.pd",
    727   "llvm.x86.avx.vpermil.pd.256",
    728   "llvm.x86.avx.vpermil.ps",
    729   "llvm.x86.avx.vpermil.ps.256",
    730   "llvm.x86.avx.vpermilvar.pd",
    731   "llvm.x86.avx.vpermilvar.pd.256",
    732   "llvm.x86.avx.vpermilvar.ps",
    733   "llvm.x86.avx.vpermilvar.ps.256",
    734   "llvm.x86.avx.vtestc.pd",
    735   "llvm.x86.avx.vtestc.pd.256",
    736   "llvm.x86.avx.vtestc.ps",
    737   "llvm.x86.avx.vtestc.ps.256",
    738   "llvm.x86.avx.vtestnzc.pd",
    739   "llvm.x86.avx.vtestnzc.pd.256",
    740   "llvm.x86.avx.vtestnzc.ps",
    741   "llvm.x86.avx.vtestnzc.ps.256",
    742   "llvm.x86.avx.vtestz.pd",
    743   "llvm.x86.avx.vtestz.pd.256",
    744   "llvm.x86.avx.vtestz.ps",
    745   "llvm.x86.avx.vtestz.ps.256",
    746   "llvm.x86.avx.vzeroall",
    747   "llvm.x86.avx.vzeroupper",
    748   "llvm.x86.int",
    749   "llvm.x86.mmx.emms",
    750   "llvm.x86.mmx.femms",
    751   "llvm.x86.mmx.maskmovq",
    752   "llvm.x86.mmx.movnt.dq",
    753   "llvm.x86.mmx.packssdw",
    754   "llvm.x86.mmx.packsswb",
    755   "llvm.x86.mmx.packuswb",
    756   "llvm.x86.mmx.padd.b",
    757   "llvm.x86.mmx.padd.d",
    758   "llvm.x86.mmx.padd.q",
    759   "llvm.x86.mmx.padd.w",
    760   "llvm.x86.mmx.padds.b",
    761   "llvm.x86.mmx.padds.w",
    762   "llvm.x86.mmx.paddus.b",
    763   "llvm.x86.mmx.paddus.w",
    764   "llvm.x86.mmx.palignr.b",
    765   "llvm.x86.mmx.pand",
    766   "llvm.x86.mmx.pandn",
    767   "llvm.x86.mmx.pavg.b",
    768   "llvm.x86.mmx.pavg.w",
    769   "llvm.x86.mmx.pcmpeq.b",
    770   "llvm.x86.mmx.pcmpeq.d",
    771   "llvm.x86.mmx.pcmpeq.w",
    772   "llvm.x86.mmx.pcmpgt.b",
    773   "llvm.x86.mmx.pcmpgt.d",
    774   "llvm.x86.mmx.pcmpgt.w",
    775   "llvm.x86.mmx.pextr.w",
    776   "llvm.x86.mmx.pinsr.w",
    777   "llvm.x86.mmx.pmadd.wd",
    778   "llvm.x86.mmx.pmaxs.w",
    779   "llvm.x86.mmx.pmaxu.b",
    780   "llvm.x86.mmx.pmins.w",
    781   "llvm.x86.mmx.pminu.b",
    782   "llvm.x86.mmx.pmovmskb",
    783   "llvm.x86.mmx.pmulh.w",
    784   "llvm.x86.mmx.pmulhu.w",
    785   "llvm.x86.mmx.pmull.w",
    786   "llvm.x86.mmx.pmulu.dq",
    787   "llvm.x86.mmx.por",
    788   "llvm.x86.mmx.psad.bw",
    789   "llvm.x86.mmx.psll.d",
    790   "llvm.x86.mmx.psll.q",
    791   "llvm.x86.mmx.psll.w",
    792   "llvm.x86.mmx.pslli.d",
    793   "llvm.x86.mmx.pslli.q",
    794   "llvm.x86.mmx.pslli.w",
    795   "llvm.x86.mmx.psra.d",
    796   "llvm.x86.mmx.psra.w",
    797   "llvm.x86.mmx.psrai.d",
    798   "llvm.x86.mmx.psrai.w",
    799   "llvm.x86.mmx.psrl.d",
    800   "llvm.x86.mmx.psrl.q",
    801   "llvm.x86.mmx.psrl.w",
    802   "llvm.x86.mmx.psrli.d",
    803   "llvm.x86.mmx.psrli.q",
    804   "llvm.x86.mmx.psrli.w",
    805   "llvm.x86.mmx.psub.b",
    806   "llvm.x86.mmx.psub.d",
    807   "llvm.x86.mmx.psub.q",
    808   "llvm.x86.mmx.psub.w",
    809   "llvm.x86.mmx.psubs.b",
    810   "llvm.x86.mmx.psubs.w",
    811   "llvm.x86.mmx.psubus.b",
    812   "llvm.x86.mmx.psubus.w",
    813   "llvm.x86.mmx.punpckhbw",
    814   "llvm.x86.mmx.punpckhdq",
    815   "llvm.x86.mmx.punpckhwd",
    816   "llvm.x86.mmx.punpcklbw",
    817   "llvm.x86.mmx.punpckldq",
    818   "llvm.x86.mmx.punpcklwd",
    819   "llvm.x86.mmx.pxor",
    820   "llvm.x86.sse2.add.sd",
    821   "llvm.x86.sse2.clflush",
    822   "llvm.x86.sse2.cmp.pd",
    823   "llvm.x86.sse2.cmp.sd",
    824   "llvm.x86.sse2.comieq.sd",
    825   "llvm.x86.sse2.comige.sd",
    826   "llvm.x86.sse2.comigt.sd",
    827   "llvm.x86.sse2.comile.sd",
    828   "llvm.x86.sse2.comilt.sd",
    829   "llvm.x86.sse2.comineq.sd",
    830   "llvm.x86.sse2.cvtdq2pd",
    831   "llvm.x86.sse2.cvtdq2ps",
    832   "llvm.x86.sse2.cvtpd2dq",
    833   "llvm.x86.sse2.cvtpd2ps",
    834   "llvm.x86.sse2.cvtps2dq",
    835   "llvm.x86.sse2.cvtps2pd",
    836   "llvm.x86.sse2.cvtsd2si",
    837   "llvm.x86.sse2.cvtsd2si64",
    838   "llvm.x86.sse2.cvtsd2ss",
    839   "llvm.x86.sse2.cvtsi2sd",
    840   "llvm.x86.sse2.cvtsi642sd",
    841   "llvm.x86.sse2.cvtss2sd",
    842   "llvm.x86.sse2.cvttpd2dq",
    843   "llvm.x86.sse2.cvttps2dq",
    844   "llvm.x86.sse2.cvttsd2si",
    845   "llvm.x86.sse2.cvttsd2si64",
    846   "llvm.x86.sse2.div.sd",
    847   "llvm.x86.sse2.lfence",
    848   "llvm.x86.sse2.maskmov.dqu",
    849   "llvm.x86.sse2.max.pd",
    850   "llvm.x86.sse2.max.sd",
    851   "llvm.x86.sse2.mfence",
    852   "llvm.x86.sse2.min.pd",
    853   "llvm.x86.sse2.min.sd",
    854   "llvm.x86.sse2.movmsk.pd",
    855   "llvm.x86.sse2.mul.sd",
    856   "llvm.x86.sse2.packssdw.128",
    857   "llvm.x86.sse2.packsswb.128",
    858   "llvm.x86.sse2.packuswb.128",
    859   "llvm.x86.sse2.padds.b",
    860   "llvm.x86.sse2.padds.w",
    861   "llvm.x86.sse2.paddus.b",
    862   "llvm.x86.sse2.paddus.w",
    863   "llvm.x86.sse2.pavg.b",
    864   "llvm.x86.sse2.pavg.w",
    865   "llvm.x86.sse2.pcmpeq.b",
    866   "llvm.x86.sse2.pcmpeq.d",
    867   "llvm.x86.sse2.pcmpeq.w",
    868   "llvm.x86.sse2.pcmpgt.b",
    869   "llvm.x86.sse2.pcmpgt.d",
    870   "llvm.x86.sse2.pcmpgt.w",
    871   "llvm.x86.sse2.pmadd.wd",
    872   "llvm.x86.sse2.pmaxs.w",
    873   "llvm.x86.sse2.pmaxu.b",
    874   "llvm.x86.sse2.pmins.w",
    875   "llvm.x86.sse2.pminu.b",
    876   "llvm.x86.sse2.pmovmskb.128",
    877   "llvm.x86.sse2.pmulh.w",
    878   "llvm.x86.sse2.pmulhu.w",
    879   "llvm.x86.sse2.pmulu.dq",
    880   "llvm.x86.sse2.psad.bw",
    881   "llvm.x86.sse2.psll.d",
    882   "llvm.x86.sse2.psll.dq",
    883   "llvm.x86.sse2.psll.dq.bs",
    884   "llvm.x86.sse2.psll.q",
    885   "llvm.x86.sse2.psll.w",
    886   "llvm.x86.sse2.pslli.d",
    887   "llvm.x86.sse2.pslli.q",
    888   "llvm.x86.sse2.pslli.w",
    889   "llvm.x86.sse2.psra.d",
    890   "llvm.x86.sse2.psra.w",
    891   "llvm.x86.sse2.psrai.d",
    892   "llvm.x86.sse2.psrai.w",
    893   "llvm.x86.sse2.psrl.d",
    894   "llvm.x86.sse2.psrl.dq",
    895   "llvm.x86.sse2.psrl.dq.bs",
    896   "llvm.x86.sse2.psrl.q",
    897   "llvm.x86.sse2.psrl.w",
    898   "llvm.x86.sse2.psrli.d",
    899   "llvm.x86.sse2.psrli.q",
    900   "llvm.x86.sse2.psrli.w",
    901   "llvm.x86.sse2.psubs.b",
    902   "llvm.x86.sse2.psubs.w",
    903   "llvm.x86.sse2.psubus.b",
    904   "llvm.x86.sse2.psubus.w",
    905   "llvm.x86.sse2.sqrt.pd",
    906   "llvm.x86.sse2.sqrt.sd",
    907   "llvm.x86.sse2.storel.dq",
    908   "llvm.x86.sse2.storeu.dq",
    909   "llvm.x86.sse2.storeu.pd",
    910   "llvm.x86.sse2.sub.sd",
    911   "llvm.x86.sse2.ucomieq.sd",
    912   "llvm.x86.sse2.ucomige.sd",
    913   "llvm.x86.sse2.ucomigt.sd",
    914   "llvm.x86.sse2.ucomile.sd",
    915   "llvm.x86.sse2.ucomilt.sd",
    916   "llvm.x86.sse2.ucomineq.sd",
    917   "llvm.x86.sse3.addsub.pd",
    918   "llvm.x86.sse3.addsub.ps",
    919   "llvm.x86.sse3.hadd.pd",
    920   "llvm.x86.sse3.hadd.ps",
    921   "llvm.x86.sse3.hsub.pd",
    922   "llvm.x86.sse3.hsub.ps",
    923   "llvm.x86.sse3.ldu.dq",
    924   "llvm.x86.sse3.monitor",
    925   "llvm.x86.sse3.mwait",
    926   "llvm.x86.sse41.blendpd",
    927   "llvm.x86.sse41.blendps",
    928   "llvm.x86.sse41.blendvpd",
    929   "llvm.x86.sse41.blendvps",
    930   "llvm.x86.sse41.dppd",
    931   "llvm.x86.sse41.dpps",
    932   "llvm.x86.sse41.extractps",
    933   "llvm.x86.sse41.insertps",
    934   "llvm.x86.sse41.movntdqa",
    935   "llvm.x86.sse41.mpsadbw",
    936   "llvm.x86.sse41.packusdw",
    937   "llvm.x86.sse41.pblendvb",
    938   "llvm.x86.sse41.pblendw",
    939   "llvm.x86.sse41.pcmpeqq",
    940   "llvm.x86.sse41.pextrb",
    941   "llvm.x86.sse41.pextrd",
    942   "llvm.x86.sse41.pextrq",
    943   "llvm.x86.sse41.phminposuw",
    944   "llvm.x86.sse41.pmaxsb",
    945   "llvm.x86.sse41.pmaxsd",
    946   "llvm.x86.sse41.pmaxud",
    947   "llvm.x86.sse41.pmaxuw",
    948   "llvm.x86.sse41.pminsb",
    949   "llvm.x86.sse41.pminsd",
    950   "llvm.x86.sse41.pminud",
    951   "llvm.x86.sse41.pminuw",
    952   "llvm.x86.sse41.pmovsxbd",
    953   "llvm.x86.sse41.pmovsxbq",
    954   "llvm.x86.sse41.pmovsxbw",
    955   "llvm.x86.sse41.pmovsxdq",
    956   "llvm.x86.sse41.pmovsxwd",
    957   "llvm.x86.sse41.pmovsxwq",
    958   "llvm.x86.sse41.pmovzxbd",
    959   "llvm.x86.sse41.pmovzxbq",
    960   "llvm.x86.sse41.pmovzxbw",
    961   "llvm.x86.sse41.pmovzxdq",
    962   "llvm.x86.sse41.pmovzxwd",
    963   "llvm.x86.sse41.pmovzxwq",
    964   "llvm.x86.sse41.pmuldq",
    965   "llvm.x86.sse41.ptestc",
    966   "llvm.x86.sse41.ptestnzc",
    967   "llvm.x86.sse41.ptestz",
    968   "llvm.x86.sse41.round.pd",
    969   "llvm.x86.sse41.round.ps",
    970   "llvm.x86.sse41.round.sd",
    971   "llvm.x86.sse41.round.ss",
    972   "llvm.x86.sse42.crc32.32.16",
    973   "llvm.x86.sse42.crc32.32.32",
    974   "llvm.x86.sse42.crc32.32.8",
    975   "llvm.x86.sse42.crc32.64.64",
    976   "llvm.x86.sse42.crc32.64.8",
    977   "llvm.x86.sse42.pcmpestri128",
    978   "llvm.x86.sse42.pcmpestria128",
    979   "llvm.x86.sse42.pcmpestric128",
    980   "llvm.x86.sse42.pcmpestrio128",
    981   "llvm.x86.sse42.pcmpestris128",
    982   "llvm.x86.sse42.pcmpestriz128",
    983   "llvm.x86.sse42.pcmpestrm128",
    984   "llvm.x86.sse42.pcmpgtq",
    985   "llvm.x86.sse42.pcmpistri128",
    986   "llvm.x86.sse42.pcmpistria128",
    987   "llvm.x86.sse42.pcmpistric128",
    988   "llvm.x86.sse42.pcmpistrio128",
    989   "llvm.x86.sse42.pcmpistris128",
    990   "llvm.x86.sse42.pcmpistriz128",
    991   "llvm.x86.sse42.pcmpistrm128",
    992   "llvm.x86.sse.add.ss",
    993   "llvm.x86.sse.cmp.ps",
    994   "llvm.x86.sse.cmp.ss",
    995   "llvm.x86.sse.comieq.ss",
    996   "llvm.x86.sse.comige.ss",
    997   "llvm.x86.sse.comigt.ss",
    998   "llvm.x86.sse.comile.ss",
    999   "llvm.x86.sse.comilt.ss",
   1000   "llvm.x86.sse.comineq.ss",
   1001   "llvm.x86.sse.cvtpd2pi",
   1002   "llvm.x86.sse.cvtpi2pd",
   1003   "llvm.x86.sse.cvtpi2ps",
   1004   "llvm.x86.sse.cvtps2pi",
   1005   "llvm.x86.sse.cvtsi2ss",
   1006   "llvm.x86.sse.cvtsi642ss",
   1007   "llvm.x86.sse.cvtss2si",
   1008   "llvm.x86.sse.cvtss2si64",
   1009   "llvm.x86.sse.cvttpd2pi",
   1010   "llvm.x86.sse.cvttps2pi",
   1011   "llvm.x86.sse.cvttss2si",
   1012   "llvm.x86.sse.cvttss2si64",
   1013   "llvm.x86.sse.div.ss",
   1014   "llvm.x86.sse.ldmxcsr",
   1015   "llvm.x86.sse.max.ps",
   1016   "llvm.x86.sse.max.ss",
   1017   "llvm.x86.sse.min.ps",
   1018   "llvm.x86.sse.min.ss",
   1019   "llvm.x86.sse.movmsk.ps",
   1020   "llvm.x86.sse.mul.ss",
   1021   "llvm.x86.sse.pshuf.w",
   1022   "llvm.x86.sse.rcp.ps",
   1023   "llvm.x86.sse.rcp.ss",
   1024   "llvm.x86.sse.rsqrt.ps",
   1025   "llvm.x86.sse.rsqrt.ss",
   1026   "llvm.x86.sse.sfence",
   1027   "llvm.x86.sse.sqrt.ps",
   1028   "llvm.x86.sse.sqrt.ss",
   1029   "llvm.x86.sse.stmxcsr",
   1030   "llvm.x86.sse.storeu.ps",
   1031   "llvm.x86.sse.sub.ss",
   1032   "llvm.x86.sse.ucomieq.ss",
   1033   "llvm.x86.sse.ucomige.ss",
   1034   "llvm.x86.sse.ucomigt.ss",
   1035   "llvm.x86.sse.ucomile.ss",
   1036   "llvm.x86.sse.ucomilt.ss",
   1037   "llvm.x86.sse.ucomineq.ss",
   1038   "llvm.x86.ssse3.pabs.b",
   1039   "llvm.x86.ssse3.pabs.b.128",
   1040   "llvm.x86.ssse3.pabs.d",
   1041   "llvm.x86.ssse3.pabs.d.128",
   1042   "llvm.x86.ssse3.pabs.w",
   1043   "llvm.x86.ssse3.pabs.w.128",
   1044   "llvm.x86.ssse3.phadd.d",
   1045   "llvm.x86.ssse3.phadd.d.128",
   1046   "llvm.x86.ssse3.phadd.sw",
   1047   "llvm.x86.ssse3.phadd.sw.128",
   1048   "llvm.x86.ssse3.phadd.w",
   1049   "llvm.x86.ssse3.phadd.w.128",
   1050   "llvm.x86.ssse3.phsub.d",
   1051   "llvm.x86.ssse3.phsub.d.128",
   1052   "llvm.x86.ssse3.phsub.sw",
   1053   "llvm.x86.ssse3.phsub.sw.128",
   1054   "llvm.x86.ssse3.phsub.w",
   1055   "llvm.x86.ssse3.phsub.w.128",
   1056   "llvm.x86.ssse3.pmadd.ub.sw",
   1057   "llvm.x86.ssse3.pmadd.ub.sw.128",
   1058   "llvm.x86.ssse3.pmul.hr.sw",
   1059   "llvm.x86.ssse3.pmul.hr.sw.128",
   1060   "llvm.x86.ssse3.pshuf.b",
   1061   "llvm.x86.ssse3.pshuf.b.128",
   1062   "llvm.x86.ssse3.psign.b",
   1063   "llvm.x86.ssse3.psign.b.128",
   1064   "llvm.x86.ssse3.psign.d",
   1065   "llvm.x86.ssse3.psign.d.128",
   1066   "llvm.x86.ssse3.psign.w",
   1067   "llvm.x86.ssse3.psign.w.128",
   1068 #endif
   1069 
   1070 // Intrinsic ID to overload table
   1071 #ifdef GET_INTRINSIC_OVERLOAD_TABLE
   1072   // Note that entry #0 is the invalid intrinsic!
   1073   false,
   1074   true,
   1075   true,
   1076   false,
   1077   false,
   1078   true,
   1079   true,
   1080   true,
   1081   true,
   1082   true,
   1083   true,
   1084   true,
   1085   true,
   1086   true,
   1087   true,
   1088   true,
   1089   true,
   1090   true,
   1091   false,
   1092   false,
   1093   false,
   1094   false,
   1095   false,
   1096   false,
   1097   false,
   1098   false,
   1099   false,
   1100   false,
   1101   false,
   1102   false,
   1103   false,
   1104   false,
   1105   false,
   1106   false,
   1107   true,
   1108   true,
   1109   true,
   1110   false,
   1111   true,
   1112   false,
   1113   false,
   1114   false,
   1115   false,
   1116   false,
   1117   false,
   1118   false,
   1119   false,
   1120   false,
   1121   true,
   1122   true,
   1123   true,
   1124   false,
   1125   true,
   1126   true,
   1127   true,
   1128   true,
   1129   false,
   1130   true,
   1131   true,
   1132   false,
   1133   true,
   1134   false,
   1135   false,
   1136   true,
   1137   false,
   1138   false,
   1139   false,
   1140   true,
   1141   true,
   1142   true,
   1143   true,
   1144   false,
   1145   false,
   1146   false,
   1147   false,
   1148   true,
   1149   true,
   1150   true,
   1151   false,
   1152   false,
   1153   false,
   1154   false,
   1155   false,
   1156   false,
   1157   false,
   1158   false,
   1159   false,
   1160   false,
   1161   false,
   1162   false,
   1163   false,
   1164   false,
   1165   false,
   1166   false,
   1167   false,
   1168   false,
   1169   false,
   1170   false,
   1171   false,
   1172   false,
   1173   false,
   1174   false,
   1175   false,
   1176   false,
   1177   false,
   1178   false,
   1179   false,
   1180   false,
   1181   false,
   1182   false,
   1183   false,
   1184   false,
   1185   false,
   1186   false,
   1187   false,
   1188   false,
   1189   false,
   1190   false,
   1191   false,
   1192   false,
   1193   false,
   1194   false,
   1195   false,
   1196   false,
   1197   false,
   1198   false,
   1199   false,
   1200   false,
   1201   false,
   1202   false,
   1203   false,
   1204   false,
   1205   false,
   1206   false,
   1207   false,
   1208   false,
   1209   false,
   1210   false,
   1211   false,
   1212   false,
   1213   false,
   1214   false,
   1215   false,
   1216   false,
   1217   false,
   1218   false,
   1219   false,
   1220   false,
   1221   false,
   1222   false,
   1223   false,
   1224   false,
   1225   false,
   1226   false,
   1227   false,
   1228   false,
   1229   false,
   1230   false,
   1231   false,
   1232   false,
   1233   false,
   1234   false,
   1235   false,
   1236   false,
   1237   false,
   1238   false,
   1239   false,
   1240   false,
   1241   false,
   1242   false,
   1243   false,
   1244   false,
   1245   false,
   1246   false,
   1247   false,
   1248   false,
   1249   false,
   1250   false,
   1251   false,
   1252   false,
   1253   false,
   1254   false,
   1255   false,
   1256   false,
   1257   false,
   1258   false,
   1259   false,
   1260   false,
   1261   false,
   1262   false,
   1263   false,
   1264   false,
   1265   false,
   1266   false,
   1267   false,
   1268   false,
   1269   false,
   1270   false,
   1271   false,
   1272   false,
   1273   false,
   1274   false,
   1275   false,
   1276   false,
   1277   false,
   1278   false,
   1279   false,
   1280   false,
   1281   false,
   1282   false,
   1283   false,
   1284   false,
   1285   false,
   1286   false,
   1287   false,
   1288   false,
   1289   false,
   1290   false,
   1291   false,
   1292   false,
   1293   false,
   1294   false,
   1295   false,
   1296   false,
   1297   false,
   1298   false,
   1299   false,
   1300   false,
   1301   false,
   1302   false,
   1303   false,
   1304   false,
   1305   false,
   1306   false,
   1307   false,
   1308   false,
   1309   false,
   1310   false,
   1311   false,
   1312   false,
   1313   false,
   1314   false,
   1315   false,
   1316   false,
   1317   false,
   1318   false,
   1319   false,
   1320   false,
   1321   false,
   1322   false,
   1323   false,
   1324   false,
   1325   false,
   1326   false,
   1327   false,
   1328   false,
   1329   false,
   1330   false,
   1331   false,
   1332   false,
   1333   false,
   1334   false,
   1335   false,
   1336   false,
   1337   false,
   1338   false,
   1339   false,
   1340   false,
   1341   false,
   1342   false,
   1343   false,
   1344   false,
   1345   false,
   1346   false,
   1347   false,
   1348   false,
   1349   false,
   1350   false,
   1351   false,
   1352   false,
   1353   false,
   1354   false,
   1355   false,
   1356   false,
   1357   false,
   1358   false,
   1359   false,
   1360   false,
   1361   false,
   1362   false,
   1363   false,
   1364   false,
   1365   false,
   1366   false,
   1367   false,
   1368   false,
   1369   false,
   1370   false,
   1371   false,
   1372   false,
   1373   false,
   1374   false,
   1375   false,
   1376   false,
   1377   false,
   1378   false,
   1379   false,
   1380   false,
   1381   false,
   1382   false,
   1383   false,
   1384   false,
   1385   false,
   1386   false,
   1387   false,
   1388   false,
   1389   false,
   1390   false,
   1391   false,
   1392   false,
   1393   false,
   1394   false,
   1395   false,
   1396   false,
   1397   false,
   1398   false,
   1399   false,
   1400   false,
   1401   false,
   1402   false,
   1403   false,
   1404   false,
   1405   false,
   1406   false,
   1407   false,
   1408   false,
   1409   false,
   1410   false,
   1411   false,
   1412   false,
   1413   false,
   1414   false,
   1415   false,
   1416   false,
   1417   false,
   1418   false,
   1419   false,
   1420   false,
   1421   false,
   1422   false,
   1423   false,
   1424   false,
   1425   false,
   1426   false,
   1427   false,
   1428   false,
   1429   false,
   1430   false,
   1431   false,
   1432   false,
   1433   false,
   1434   false,
   1435   false,
   1436   false,
   1437   false,
   1438   false,
   1439   false,
   1440   false,
   1441   false,
   1442   false,
   1443   false,
   1444   false,
   1445   false,
   1446   false,
   1447   false,
   1448   false,
   1449   false,
   1450   false,
   1451   false,
   1452   false,
   1453   false,
   1454   false,
   1455   false,
   1456   false,
   1457   false,
   1458   false,
   1459   false,
   1460   false,
   1461   false,
   1462   false,
   1463   false,
   1464   false,
   1465   false,
   1466   false,
   1467   false,
   1468   false,
   1469   false,
   1470   false,
   1471   false,
   1472   false,
   1473   false,
   1474   false,
   1475   false,
   1476   false,
   1477   false,
   1478   false,
   1479   false,
   1480   false,
   1481   false,
   1482   false,
   1483   false,
   1484   false,
   1485   false,
   1486   false,
   1487   false,
   1488   false,
   1489   false,
   1490   false,
   1491   false,
   1492   false,
   1493   false,
   1494   false,
   1495   false,
   1496   false,
   1497   false,
   1498   false,
   1499   false,
   1500   false,
   1501   false,
   1502   false,
   1503   false,
   1504   false,
   1505   false,
   1506   false,
   1507   false,
   1508   false,
   1509   false,
   1510   false,
   1511   false,
   1512   false,
   1513   false,
   1514   false,
   1515   false,
   1516   false,
   1517   false,
   1518   false,
   1519   false,
   1520   false,
   1521   false,
   1522   false,
   1523   false,
   1524   false,
   1525   false,
   1526   false,
   1527   false,
   1528   false,
   1529   false,
   1530   false,
   1531   false,
   1532   false,
   1533   false,
   1534   false,
   1535   false,
   1536   false,
   1537   false,
   1538   false,
   1539   false,
   1540   false,
   1541   false,
   1542   false,
   1543   false,
   1544   false,
   1545   false,
   1546   false,
   1547   false,
   1548   false,
   1549   false,
   1550   false,
   1551   false,
   1552   false,
   1553   false,
   1554   false,
   1555   false,
   1556   false,
   1557   false,
   1558   false,
   1559   false,
   1560   false,
   1561   false,
   1562   false,
   1563   false,
   1564   false,
   1565   false,
   1566   false,
   1567   false,
   1568   false,
   1569   false,
   1570   false,
   1571   false,
   1572   false,
   1573   false,
   1574   false,
   1575   false,
   1576   false,
   1577   false,
   1578   false,
   1579   false,
   1580   false,
   1581   false,
   1582   false,
   1583   false,
   1584   false,
   1585   false,
   1586   false,
   1587   false,
   1588   false,
   1589   false,
   1590   false,
   1591   false,
   1592   false,
   1593   false,
   1594   false,
   1595 #endif
   1596 
   1597 // Function name -> enum value recognizer code.
   1598 #ifdef GET_FUNCTION_RECOGNIZER
   1599   StringRef NameR(Name+6, Len-6);   // Skip over 'llvm.'
   1600   switch (Name[5]) {                  // Dispatch on first letter.
   1601   default: break;
   1602   case 'a':
   1603     if (NameR.startswith("nnotation.")) return Intrinsic::annotation;
   1604     switch (NameR.size()) {
   1605     default: break;
   1606     case 16:	 // 1 string to match.
   1607       if (NameR.substr(0, 16) != "djust.trampoline")
   1608         break;
   1609       return Intrinsic::adjust_trampoline;	 // "djust.trampoline"
   1610     }
   1611     break;  // end of 'a' case.
   1612   case 'b':
   1613     if (NameR.startswith("swap.")) return Intrinsic::bswap;
   1614     break;  // end of 'b' case.
   1615   case 'c':
   1616     if (NameR.startswith("onvertff.")) return Intrinsic::convertff;
   1617     if (NameR.startswith("onvertfsi.")) return Intrinsic::convertfsi;
   1618     if (NameR.startswith("onvertfui.")) return Intrinsic::convertfui;
   1619     if (NameR.startswith("onvertsif.")) return Intrinsic::convertsif;
   1620     if (NameR.startswith("onvertss.")) return Intrinsic::convertss;
   1621     if (NameR.startswith("onvertsu.")) return Intrinsic::convertsu;
   1622     if (NameR.startswith("onvertuif.")) return Intrinsic::convertuif;
   1623     if (NameR.startswith("onvertus.")) return Intrinsic::convertus;
   1624     if (NameR.startswith("onvertuu.")) return Intrinsic::convertuu;
   1625     if (NameR.startswith("os.")) return Intrinsic::cos;
   1626     if (NameR.startswith("tlz.")) return Intrinsic::ctlz;
   1627     if (NameR.startswith("tpop.")) return Intrinsic::ctpop;
   1628     if (NameR.startswith("ttz.")) return Intrinsic::cttz;
   1629     switch (NameR.size()) {
   1630     default: break;
   1631     case 14:	 // 1 string to match.
   1632       if (NameR.substr(0, 14) != "onvert.to.fp16")
   1633         break;
   1634       return Intrinsic::convert_to_fp16;	 // "onvert.to.fp16"
   1635     case 16:	 // 1 string to match.
   1636       if (NameR.substr(0, 16) != "onvert.from.fp16")
   1637         break;
   1638       return Intrinsic::convert_from_fp16;	 // "onvert.from.fp16"
   1639     }
   1640     break;  // end of 'c' case.
   1641   case 'd':
   1642     switch (NameR.size()) {
   1643     default: break;
   1644     case 8:	 // 1 string to match.
   1645       if (NameR.substr(0, 8) != "bg.value")
   1646         break;
   1647       return Intrinsic::dbg_value;	 // "bg.value"
   1648     case 10:	 // 1 string to match.
   1649       if (NameR.substr(0, 10) != "bg.declare")
   1650         break;
   1651       return Intrinsic::dbg_declare;	 // "bg.declare"
   1652     }
   1653     break;  // end of 'd' case.
   1654   case 'e':
   1655     if (NameR.startswith("xp.")) return Intrinsic::exp;
   1656     if (NameR.startswith("xp2.")) return Intrinsic::exp2;
   1657     if (NameR.startswith("xpect.")) return Intrinsic::expect;
   1658     switch (NameR.size()) {
   1659     default: break;
   1660     case 8:	 // 1 string to match.
   1661       if (NameR.substr(0, 8) != "h.resume")
   1662         break;
   1663       return Intrinsic::eh_resume;	 // "h.resume"
   1664     case 10:	 // 1 string to match.
   1665       if (NameR.substr(0, 10) != "h.selector")
   1666         break;
   1667       return Intrinsic::eh_selector;	 // "h.selector"
   1668     case 11:	 // 3 strings to match.
   1669       if (NameR.substr(0, 2) != "h.")
   1670         break;
   1671       switch (NameR[2]) {
   1672       default: break;
   1673       case 'd':	 // 1 string to match.
   1674         if (NameR.substr(3, 8) != "warf.cfa")
   1675           break;
   1676         return Intrinsic::eh_dwarf_cfa;	 // "h.dwarf.cfa"
   1677       case 'e':	 // 1 string to match.
   1678         if (NameR.substr(3, 8) != "xception")
   1679           break;
   1680         return Intrinsic::eh_exception;	 // "h.exception"
   1681       case 's':	 // 1 string to match.
   1682         if (NameR.substr(3, 8) != "jlj.lsda")
   1683           break;
   1684         return Intrinsic::eh_sjlj_lsda;	 // "h.sjlj.lsda"
   1685       }
   1686       break;
   1687     case 12:	 // 3 strings to match.
   1688       if (NameR.substr(0, 2) != "h.")
   1689         break;
   1690       switch (NameR[2]) {
   1691       default: break;
   1692       case 'r':	 // 2 strings to match.
   1693         if (NameR.substr(3, 7) != "eturn.i")
   1694           break;
   1695         switch (NameR[10]) {
   1696         default: break;
   1697         case '3':	 // 1 string to match.
   1698           if (NameR[11] != '2')
   1699             break;
   1700           return Intrinsic::eh_return_i32;	 // "h.return.i32"
   1701         case '6':	 // 1 string to match.
   1702           if (NameR[11] != '4')
   1703             break;
   1704           return Intrinsic::eh_return_i64;	 // "h.return.i64"
   1705         }
   1706         break;
   1707       case 't':	 // 1 string to match.
   1708         if (NameR.substr(3, 9) != "ypeid.for")
   1709           break;
   1710         return Intrinsic::eh_typeid_for;	 // "h.typeid.for"
   1711       }
   1712       break;
   1713     case 13:	 // 2 strings to match.
   1714       if (NameR.substr(0, 2) != "h.")
   1715         break;
   1716       switch (NameR[2]) {
   1717       default: break;
   1718       case 's':	 // 1 string to match.
   1719         if (NameR.substr(3, 10) != "jlj.setjmp")
   1720           break;
   1721         return Intrinsic::eh_sjlj_setjmp;	 // "h.sjlj.setjmp"
   1722       case 'u':	 // 1 string to match.
   1723         if (NameR.substr(3, 10) != "nwind.init")
   1724           break;
   1725         return Intrinsic::eh_unwind_init;	 // "h.unwind.init"
   1726       }
   1727       break;
   1728     case 14:	 // 1 string to match.
   1729       if (NameR.substr(0, 14) != "h.sjlj.longjmp")
   1730         break;
   1731       return Intrinsic::eh_sjlj_longjmp;	 // "h.sjlj.longjmp"
   1732     case 15:	 // 1 string to match.
   1733       if (NameR.substr(0, 15) != "h.sjlj.callsite")
   1734         break;
   1735       return Intrinsic::eh_sjlj_callsite;	 // "h.sjlj.callsite"
   1736     case 21:	 // 1 string to match.
   1737       if (NameR.substr(0, 21) != "h.sjlj.dispatch.setup")
   1738         break;
   1739       return Intrinsic::eh_sjlj_dispatch_setup;	 // "h.sjlj.dispatch.setup"
   1740     case 22:	 // 1 string to match.
   1741       if (NameR.substr(0, 22) != "h.sjlj.functioncontext")
   1742         break;
   1743       return Intrinsic::eh_sjlj_functioncontext;	 // "h.sjlj.functioncontext"
   1744     }
   1745     break;  // end of 'e' case.
   1746   case 'f':
   1747     if (NameR.startswith("ma.")) return Intrinsic::fma;
   1748     switch (NameR.size()) {
   1749     default: break;
   1750     case 9:	 // 1 string to match.
   1751       if (NameR.substr(0, 9) != "lt.rounds")
   1752         break;
   1753       return Intrinsic::flt_rounds;	 // "lt.rounds"
   1754     case 11:	 // 1 string to match.
   1755       if (NameR.substr(0, 11) != "rameaddress")
   1756         break;
   1757       return Intrinsic::frameaddress;	 // "rameaddress"
   1758     }
   1759     break;  // end of 'f' case.
   1760   case 'g':
   1761     switch (NameR.size()) {
   1762     default: break;
   1763     case 5:	 // 2 strings to match.
   1764       if (NameR.substr(0, 2) != "cr")
   1765         break;
   1766       switch (NameR[2]) {
   1767       default: break;
   1768       case 'e':	 // 1 string to match.
   1769         if (NameR.substr(3, 2) != "ad")
   1770           break;
   1771         return Intrinsic::gcread;	 // "cread"
   1772       case 'o':	 // 1 string to match.
   1773         if (NameR.substr(3, 2) != "ot")
   1774           break;
   1775         return Intrinsic::gcroot;	 // "croot"
   1776       }
   1777       break;
   1778     case 6:	 // 1 string to match.
   1779       if (NameR.substr(0, 6) != "cwrite")
   1780         break;
   1781       return Intrinsic::gcwrite;	 // "cwrite"
   1782     }
   1783     break;  // end of 'g' case.
   1784   case 'i':
   1785     switch (NameR.size()) {
   1786     default: break;
   1787     case 12:	 // 1 string to match.
   1788       if (NameR.substr(0, 12) != "nvariant.end")
   1789         break;
   1790       return Intrinsic::invariant_end;	 // "nvariant.end"
   1791     case 14:	 // 2 strings to match.
   1792       if (NameR[0] != 'n')
   1793         break;
   1794       switch (NameR[1]) {
   1795       default: break;
   1796       case 'i':	 // 1 string to match.
   1797         if (NameR.substr(2, 12) != "t.trampoline")
   1798           break;
   1799         return Intrinsic::init_trampoline;	 // "nit.trampoline"
   1800       case 'v':	 // 1 string to match.
   1801         if (NameR.substr(2, 12) != "ariant.start")
   1802           break;
   1803         return Intrinsic::invariant_start;	 // "nvariant.start"
   1804       }
   1805       break;
   1806     }
   1807     break;  // end of 'i' case.
   1808   case 'l':
   1809     if (NameR.startswith("og.")) return Intrinsic::log;
   1810     if (NameR.startswith("og10.")) return Intrinsic::log10;
   1811     if (NameR.startswith("og2.")) return Intrinsic::log2;
   1812     switch (NameR.size()) {
   1813     default: break;
   1814     case 6:	 // 1 string to match.
   1815       if (NameR.substr(0, 6) != "ongjmp")
   1816         break;
   1817       return Intrinsic::longjmp;	 // "ongjmp"
   1818     case 11:	 // 1 string to match.
   1819       if (NameR.substr(0, 11) != "ifetime.end")
   1820         break;
   1821       return Intrinsic::lifetime_end;	 // "ifetime.end"
   1822     case 13:	 // 1 string to match.
   1823       if (NameR.substr(0, 13) != "ifetime.start")
   1824         break;
   1825       return Intrinsic::lifetime_start;	 // "ifetime.start"
   1826     }
   1827     break;  // end of 'l' case.
   1828   case 'm':
   1829     if (NameR.startswith("emcpy.")) return Intrinsic::memcpy;
   1830     if (NameR.startswith("emmove.")) return Intrinsic::memmove;
   1831     if (NameR.startswith("emset.")) return Intrinsic::memset;
   1832     break;  // end of 'm' case.
   1833   case 'o':
   1834     if (NameR.startswith("bjectsize.")) return Intrinsic::objectsize;
   1835     break;  // end of 'o' case.
   1836   case 'p':
   1837     if (NameR.startswith("ow.")) return Intrinsic::pow;
   1838     if (NameR.startswith("owi.")) return Intrinsic::powi;
   1839     if (NameR.startswith("tr.annotation.")) return Intrinsic::ptr_annotation;
   1840     switch (NameR.size()) {
   1841     default: break;
   1842     case 7:	 // 2 strings to match.
   1843       switch (NameR[0]) {
   1844       default: break;
   1845       case 'c':	 // 1 string to match.
   1846         if (NameR.substr(1, 6) != "marker")
   1847           break;
   1848         return Intrinsic::pcmarker;	 // "cmarker"
   1849       case 'r':	 // 1 string to match.
   1850         if (NameR.substr(1, 6) != "efetch")
   1851           break;
   1852         return Intrinsic::prefetch;	 // "refetch"
   1853       }
   1854       break;
   1855     }
   1856     break;  // end of 'p' case.
   1857   case 'r':
   1858     switch (NameR.size()) {
   1859     default: break;
   1860     case 12:	 // 1 string to match.
   1861       if (NameR.substr(0, 12) != "eturnaddress")
   1862         break;
   1863       return Intrinsic::returnaddress;	 // "eturnaddress"
   1864     case 15:	 // 1 string to match.
   1865       if (NameR.substr(0, 15) != "eadcyclecounter")
   1866         break;
   1867       return Intrinsic::readcyclecounter;	 // "eadcyclecounter"
   1868     }
   1869     break;  // end of 'r' case.
   1870   case 's':
   1871     if (NameR.startswith("add.with.overflow.")) return Intrinsic::sadd_with_overflow;
   1872     if (NameR.startswith("in.")) return Intrinsic::sin;
   1873     if (NameR.startswith("mul.with.overflow.")) return Intrinsic::smul_with_overflow;
   1874     if (NameR.startswith("qrt.")) return Intrinsic::sqrt;
   1875     if (NameR.startswith("sub.with.overflow.")) return Intrinsic::ssub_with_overflow;
   1876     switch (NameR.size()) {
   1877     default: break;
   1878     case 5:	 // 1 string to match.
   1879       if (NameR.substr(0, 5) != "etjmp")
   1880         break;
   1881       return Intrinsic::setjmp;	 // "etjmp"
   1882     case 8:	 // 2 strings to match.
   1883       switch (NameR[0]) {
   1884       default: break;
   1885       case 'i':	 // 1 string to match.
   1886         if (NameR.substr(1, 7) != "gsetjmp")
   1887           break;
   1888         return Intrinsic::sigsetjmp;	 // "igsetjmp"
   1889       case 't':	 // 1 string to match.
   1890         if (NameR.substr(1, 7) != "acksave")
   1891           break;
   1892         return Intrinsic::stacksave;	 // "tacksave"
   1893       }
   1894       break;
   1895     case 9:	 // 1 string to match.
   1896       if (NameR.substr(0, 9) != "iglongjmp")
   1897         break;
   1898       return Intrinsic::siglongjmp;	 // "iglongjmp"
   1899     case 11:	 // 1 string to match.
   1900       if (NameR.substr(0, 11) != "tackrestore")
   1901         break;
   1902       return Intrinsic::stackrestore;	 // "tackrestore"
   1903     case 13:	 // 1 string to match.
   1904       if (NameR.substr(0, 13) != "tackprotector")
   1905         break;
   1906       return Intrinsic::stackprotector;	 // "tackprotector"
   1907     }
   1908     break;  // end of 's' case.
   1909   case 't':
   1910     switch (NameR.size()) {
   1911     default: break;
   1912     case 3:	 // 1 string to match.
   1913       if (NameR.substr(0, 3) != "rap")
   1914         break;
   1915       return Intrinsic::trap;	 // "rap"
   1916     }
   1917     break;  // end of 't' case.
   1918   case 'u':
   1919     if (NameR.startswith("add.with.overflow.")) return Intrinsic::uadd_with_overflow;
   1920     if (NameR.startswith("mul.with.overflow.")) return Intrinsic::umul_with_overflow;
   1921     if (NameR.startswith("sub.with.overflow.")) return Intrinsic::usub_with_overflow;
   1922     break;  // end of 'u' case.
   1923   case 'v':
   1924     switch (NameR.size()) {
   1925     default: break;
   1926     case 5:	 // 1 string to match.
   1927       if (NameR.substr(0, 5) != "a_end")
   1928         break;
   1929       return Intrinsic::vaend;	 // "a_end"
   1930     case 6:	 // 1 string to match.
   1931       if (NameR.substr(0, 6) != "a_copy")
   1932         break;
   1933       return Intrinsic::vacopy;	 // "a_copy"
   1934     case 7:	 // 1 string to match.
   1935       if (NameR.substr(0, 7) != "a_start")
   1936         break;
   1937       return Intrinsic::vastart;	 // "a_start"
   1938     case 13:	 // 1 string to match.
   1939       if (NameR.substr(0, 13) != "ar.annotation")
   1940         break;
   1941       return Intrinsic::var_annotation;	 // "ar.annotation"
   1942     }
   1943     break;  // end of 'v' case.
   1944   case 'x':
   1945     switch (NameR.size()) {
   1946     default: break;
   1947     case 6:	 // 1 string to match.
   1948       if (NameR.substr(0, 6) != "86.int")
   1949         break;
   1950       return Intrinsic::x86_int;	 // "86.int"
   1951     case 10:	 // 1 string to match.
   1952       if (NameR.substr(0, 10) != "86.mmx.por")
   1953         break;
   1954       return Intrinsic::x86_mmx_por;	 // "86.mmx.por"
   1955     case 11:	 // 3 strings to match.
   1956       if (NameR.substr(0, 7) != "86.mmx.")
   1957         break;
   1958       switch (NameR[7]) {
   1959       default: break;
   1960       case 'e':	 // 1 string to match.
   1961         if (NameR.substr(8, 3) != "mms")
   1962           break;
   1963         return Intrinsic::x86_mmx_emms;	 // "86.mmx.emms"
   1964       case 'p':	 // 2 strings to match.
   1965         switch (NameR[8]) {
   1966         default: break;
   1967         case 'a':	 // 1 string to match.
   1968           if (NameR.substr(9, 2) != "nd")
   1969             break;
   1970           return Intrinsic::x86_mmx_pand;	 // "86.mmx.pand"
   1971         case 'x':	 // 1 string to match.
   1972           if (NameR.substr(9, 2) != "or")
   1973             break;
   1974           return Intrinsic::x86_mmx_pxor;	 // "86.mmx.pxor"
   1975         }
   1976         break;
   1977       }
   1978       break;
   1979     case 12:	 // 2 strings to match.
   1980       if (NameR.substr(0, 7) != "86.mmx.")
   1981         break;
   1982       switch (NameR[7]) {
   1983       default: break;
   1984       case 'f':	 // 1 string to match.
   1985         if (NameR.substr(8, 4) != "emms")
   1986           break;
   1987         return Intrinsic::x86_mmx_femms;	 // "86.mmx.femms"
   1988       case 'p':	 // 1 string to match.
   1989         if (NameR.substr(8, 4) != "andn")
   1990           break;
   1991         return Intrinsic::x86_mmx_pandn;	 // "86.mmx.pandn"
   1992       }
   1993       break;
   1994     case 13:	 // 34 strings to match.
   1995       if (NameR.substr(0, 3) != "86.")
   1996         break;
   1997       switch (NameR[3]) {
   1998       default: break;
   1999       case 'm':	 // 18 strings to match.
   2000         if (NameR.substr(4, 4) != "mx.p")
   2001           break;
   2002         switch (NameR[8]) {
   2003         default: break;
   2004         case 'a':	 // 6 strings to match.
   2005           switch (NameR[9]) {
   2006           default: break;
   2007           case 'd':	 // 4 strings to match.
   2008             if (NameR.substr(10, 2) != "d.")
   2009               break;
   2010             switch (NameR[12]) {
   2011             default: break;
   2012             case 'b':	 // 1 string to match.
   2013               return Intrinsic::x86_mmx_padd_b;	 // "86.mmx.padd.b"
   2014             case 'd':	 // 1 string to match.
   2015               return Intrinsic::x86_mmx_padd_d;	 // "86.mmx.padd.d"
   2016             case 'q':	 // 1 string to match.
   2017               return Intrinsic::x86_mmx_padd_q;	 // "86.mmx.padd.q"
   2018             case 'w':	 // 1 string to match.
   2019               return Intrinsic::x86_mmx_padd_w;	 // "86.mmx.padd.w"
   2020             }
   2021             break;
   2022           case 'v':	 // 2 strings to match.
   2023             if (NameR.substr(10, 2) != "g.")
   2024               break;
   2025             switch (NameR[12]) {
   2026             default: break;
   2027             case 'b':	 // 1 string to match.
   2028               return Intrinsic::x86_mmx_pavg_b;	 // "86.mmx.pavg.b"
   2029             case 'w':	 // 1 string to match.
   2030               return Intrinsic::x86_mmx_pavg_w;	 // "86.mmx.pavg.w"
   2031             }
   2032             break;
   2033           }
   2034           break;
   2035         case 's':	 // 12 strings to match.
   2036           switch (NameR[9]) {
   2037           default: break;
   2038           case 'l':	 // 3 strings to match.
   2039             if (NameR.substr(10, 2) != "l.")
   2040               break;
   2041             switch (NameR[12]) {
   2042             default: break;
   2043             case 'd':	 // 1 string to match.
   2044               return Intrinsic::x86_mmx_psll_d;	 // "86.mmx.psll.d"
   2045             case 'q':	 // 1 string to match.
   2046               return Intrinsic::x86_mmx_psll_q;	 // "86.mmx.psll.q"
   2047             case 'w':	 // 1 string to match.
   2048               return Intrinsic::x86_mmx_psll_w;	 // "86.mmx.psll.w"
   2049             }
   2050             break;
   2051           case 'r':	 // 5 strings to match.
   2052             switch (NameR[10]) {
   2053             default: break;
   2054             case 'a':	 // 2 strings to match.
   2055               if (NameR[11] != '.')
   2056                 break;
   2057               switch (NameR[12]) {
   2058               default: break;
   2059               case 'd':	 // 1 string to match.
   2060                 return Intrinsic::x86_mmx_psra_d;	 // "86.mmx.psra.d"
   2061               case 'w':	 // 1 string to match.
   2062                 return Intrinsic::x86_mmx_psra_w;	 // "86.mmx.psra.w"
   2063               }
   2064               break;
   2065             case 'l':	 // 3 strings to match.
   2066               if (NameR[11] != '.')
   2067                 break;
   2068               switch (NameR[12]) {
   2069               default: break;
   2070               case 'd':	 // 1 string to match.
   2071                 return Intrinsic::x86_mmx_psrl_d;	 // "86.mmx.psrl.d"
   2072               case 'q':	 // 1 string to match.
   2073                 return Intrinsic::x86_mmx_psrl_q;	 // "86.mmx.psrl.q"
   2074               case 'w':	 // 1 string to match.
   2075                 return Intrinsic::x86_mmx_psrl_w;	 // "86.mmx.psrl.w"
   2076               }
   2077               break;
   2078             }
   2079             break;
   2080           case 'u':	 // 4 strings to match.
   2081             if (NameR.substr(10, 2) != "b.")
   2082               break;
   2083             switch (NameR[12]) {
   2084             default: break;
   2085             case 'b':	 // 1 string to match.
   2086               return Intrinsic::x86_mmx_psub_b;	 // "86.mmx.psub.b"
   2087             case 'd':	 // 1 string to match.
   2088               return Intrinsic::x86_mmx_psub_d;	 // "86.mmx.psub.d"
   2089             case 'q':	 // 1 string to match.
   2090               return Intrinsic::x86_mmx_psub_q;	 // "86.mmx.psub.q"
   2091             case 'w':	 // 1 string to match.
   2092               return Intrinsic::x86_mmx_psub_w;	 // "86.mmx.psub.w"
   2093             }
   2094             break;
   2095           }
   2096           break;
   2097         }
   2098         break;
   2099       case 's':	 // 16 strings to match.
   2100         if (NameR.substr(4, 2) != "se")
   2101           break;
   2102         switch (NameR[6]) {
   2103         default: break;
   2104         case '.':	 // 13 strings to match.
   2105           switch (NameR[7]) {
   2106           default: break;
   2107           case 'a':	 // 1 string to match.
   2108             if (NameR.substr(8, 5) != "dd.ss")
   2109               break;
   2110             return Intrinsic::x86_sse_add_ss;	 // "86.sse.add.ss"
   2111           case 'c':	 // 2 strings to match.
   2112             if (NameR.substr(8, 3) != "mp.")
   2113               break;
   2114             switch (NameR[11]) {
   2115             default: break;
   2116             case 'p':	 // 1 string to match.
   2117               if (NameR[12] != 's')
   2118                 break;
   2119               return Intrinsic::x86_sse_cmp_ps;	 // "86.sse.cmp.ps"
   2120             case 's':	 // 1 string to match.
   2121               if (NameR[12] != 's')
   2122                 break;
   2123               return Intrinsic::x86_sse_cmp_ss;	 // "86.sse.cmp.ss"
   2124             }
   2125             break;
   2126           case 'd':	 // 1 string to match.
   2127             if (NameR.substr(8, 5) != "iv.ss")
   2128               break;
   2129             return Intrinsic::x86_sse_div_ss;	 // "86.sse.div.ss"
   2130           case 'm':	 // 5 strings to match.
   2131             switch (NameR[8]) {
   2132             default: break;
   2133             case 'a':	 // 2 strings to match.
   2134               if (NameR.substr(9, 2) != "x.")
   2135                 break;
   2136               switch (NameR[11]) {
   2137               default: break;
   2138               case 'p':	 // 1 string to match.
   2139                 if (NameR[12] != 's')
   2140                   break;
   2141                 return Intrinsic::x86_sse_max_ps;	 // "86.sse.max.ps"
   2142               case 's':	 // 1 string to match.
   2143                 if (NameR[12] != 's')
   2144                   break;
   2145                 return Intrinsic::x86_sse_max_ss;	 // "86.sse.max.ss"
   2146               }
   2147               break;
   2148             case 'i':	 // 2 strings to match.
   2149               if (NameR.substr(9, 2) != "n.")
   2150                 break;
   2151               switch (NameR[11]) {
   2152               default: break;
   2153               case 'p':	 // 1 string to match.
   2154                 if (NameR[12] != 's')
   2155                   break;
   2156                 return Intrinsic::x86_sse_min_ps;	 // "86.sse.min.ps"
   2157               case 's':	 // 1 string to match.
   2158                 if (NameR[12] != 's')
   2159                   break;
   2160                 return Intrinsic::x86_sse_min_ss;	 // "86.sse.min.ss"
   2161               }
   2162               break;
   2163             case 'u':	 // 1 string to match.
   2164               if (NameR.substr(9, 4) != "l.ss")
   2165                 break;
   2166               return Intrinsic::x86_sse_mul_ss;	 // "86.sse.mul.ss"
   2167             }
   2168             break;
   2169           case 'r':	 // 2 strings to match.
   2170             if (NameR.substr(8, 3) != "cp.")
   2171               break;
   2172             switch (NameR[11]) {
   2173             default: break;
   2174             case 'p':	 // 1 string to match.
   2175               if (NameR[12] != 's')
   2176                 break;
   2177               return Intrinsic::x86_sse_rcp_ps;	 // "86.sse.rcp.ps"
   2178             case 's':	 // 1 string to match.
   2179               if (NameR[12] != 's')
   2180                 break;
   2181               return Intrinsic::x86_sse_rcp_ss;	 // "86.sse.rcp.ss"
   2182             }
   2183             break;
   2184           case 's':	 // 2 strings to match.
   2185             switch (NameR[8]) {
   2186             default: break;
   2187             case 'f':	 // 1 string to match.
   2188               if (NameR.substr(9, 4) != "ence")
   2189                 break;
   2190               return Intrinsic::x86_sse_sfence;	 // "86.sse.sfence"
   2191             case 'u':	 // 1 string to match.
   2192               if (NameR.substr(9, 4) != "b.ss")
   2193                 break;
   2194               return Intrinsic::x86_sse_sub_ss;	 // "86.sse.sub.ss"
   2195             }
   2196             break;
   2197           }
   2198           break;
   2199         case '3':	 // 1 string to match.
   2200           if (NameR.substr(7, 6) != ".mwait")
   2201             break;
   2202           return Intrinsic::x86_sse3_mwait;	 // "86.sse3.mwait"
   2203         case '4':	 // 2 strings to match.
   2204           if (NameR.substr(7, 5) != "1.dpp")
   2205             break;
   2206           switch (NameR[12]) {
   2207           default: break;
   2208           case 'd':	 // 1 string to match.
   2209             return Intrinsic::x86_sse41_dppd;	 // "86.sse41.dppd"
   2210           case 's':	 // 1 string to match.
   2211             return Intrinsic::x86_sse41_dpps;	 // "86.sse41.dpps"
   2212           }
   2213           break;
   2214         }
   2215         break;
   2216       }
   2217       break;
   2218     case 14:	 // 58 strings to match.
   2219       if (NameR.substr(0, 3) != "86.")
   2220         break;
   2221       switch (NameR[3]) {
   2222       default: break;
   2223       case '3':	 // 9 strings to match.
   2224         if (NameR.substr(4, 6) != "dnow.p")
   2225           break;
   2226         switch (NameR[10]) {
   2227         default: break;
   2228         case 'f':	 // 8 strings to match.
   2229           switch (NameR[11]) {
   2230           default: break;
   2231           case '2':	 // 1 string to match.
   2232             if (NameR.substr(12, 2) != "id")
   2233               break;
   2234             return Intrinsic::x86_3dnow_pf2id;	 // "86.3dnow.pf2id"
   2235           case 'a':	 // 2 strings to match.
   2236             switch (NameR[12]) {
   2237             default: break;
   2238             case 'c':	 // 1 string to match.
   2239               if (NameR[13] != 'c')
   2240                 break;
   2241               return Intrinsic::x86_3dnow_pfacc;	 // "86.3dnow.pfacc"
   2242             case 'd':	 // 1 string to match.
   2243               if (NameR[13] != 'd')
   2244                 break;
   2245               return Intrinsic::x86_3dnow_pfadd;	 // "86.3dnow.pfadd"
   2246             }
   2247             break;
   2248           case 'm':	 // 3 strings to match.
   2249             switch (NameR[12]) {
   2250             default: break;
   2251             case 'a':	 // 1 string to match.
   2252               if (NameR[13] != 'x')
   2253                 break;
   2254               return Intrinsic::x86_3dnow_pfmax;	 // "86.3dnow.pfmax"
   2255             case 'i':	 // 1 string to match.
   2256               if (NameR[13] != 'n')
   2257                 break;
   2258               return Intrinsic::x86_3dnow_pfmin;	 // "86.3dnow.pfmin"
   2259             case 'u':	 // 1 string to match.
   2260               if (NameR[13] != 'l')
   2261                 break;
   2262               return Intrinsic::x86_3dnow_pfmul;	 // "86.3dnow.pfmul"
   2263             }
   2264             break;
   2265           case 'r':	 // 1 string to match.
   2266             if (NameR.substr(12, 2) != "cp")
   2267               break;
   2268             return Intrinsic::x86_3dnow_pfrcp;	 // "86.3dnow.pfrcp"
   2269           case 's':	 // 1 string to match.
   2270             if (NameR.substr(12, 2) != "ub")
   2271               break;
   2272             return Intrinsic::x86_3dnow_pfsub;	 // "86.3dnow.pfsub"
   2273           }
   2274           break;
   2275         case 'i':	 // 1 string to match.
   2276           if (NameR.substr(11, 3) != "2fd")
   2277             break;
   2278           return Intrinsic::x86_3dnow_pi2fd;	 // "86.3dnow.pi2fd"
   2279         }
   2280         break;
   2281       case 'm':	 // 21 strings to match.
   2282         if (NameR.substr(4, 4) != "mx.p")
   2283           break;
   2284         switch (NameR[8]) {
   2285         default: break;
   2286         case 'a':	 // 2 strings to match.
   2287           if (NameR.substr(9, 4) != "dds.")
   2288             break;
   2289           switch (NameR[13]) {
   2290           default: break;
   2291           case 'b':	 // 1 string to match.
   2292             return Intrinsic::x86_mmx_padds_b;	 // "86.mmx.padds.b"
   2293           case 'w':	 // 1 string to match.
   2294             return Intrinsic::x86_mmx_padds_w;	 // "86.mmx.padds.w"
   2295           }
   2296           break;
   2297         case 'e':	 // 1 string to match.
   2298           if (NameR.substr(9, 5) != "xtr.w")
   2299             break;
   2300           return Intrinsic::x86_mmx_pextr_w;	 // "86.mmx.pextr.w"
   2301         case 'i':	 // 1 string to match.
   2302           if (NameR.substr(9, 5) != "nsr.w")
   2303             break;
   2304           return Intrinsic::x86_mmx_pinsr_w;	 // "86.mmx.pinsr.w"
   2305         case 'm':	 // 6 strings to match.
   2306           switch (NameR[9]) {
   2307           default: break;
   2308           case 'a':	 // 2 strings to match.
   2309             if (NameR[10] != 'x')
   2310               break;
   2311             switch (NameR[11]) {
   2312             default: break;
   2313             case 's':	 // 1 string to match.
   2314               if (NameR.substr(12, 2) != ".w")
   2315                 break;
   2316               return Intrinsic::x86_mmx_pmaxs_w;	 // "86.mmx.pmaxs.w"
   2317             case 'u':	 // 1 string to match.
   2318               if (NameR.substr(12, 2) != ".b")
   2319                 break;
   2320               return Intrinsic::x86_mmx_pmaxu_b;	 // "86.mmx.pmaxu.b"
   2321             }
   2322             break;
   2323           case 'i':	 // 2 strings to match.
   2324             if (NameR[10] != 'n')
   2325               break;
   2326             switch (NameR[11]) {
   2327             default: break;
   2328             case 's':	 // 1 string to match.
   2329               if (NameR.substr(12, 2) != ".w")
   2330                 break;
   2331               return Intrinsic::x86_mmx_pmins_w;	 // "86.mmx.pmins.w"
   2332             case 'u':	 // 1 string to match.
   2333               if (NameR.substr(12, 2) != ".b")
   2334                 break;
   2335               return Intrinsic::x86_mmx_pminu_b;	 // "86.mmx.pminu.b"
   2336             }
   2337             break;
   2338           case 'u':	 // 2 strings to match.
   2339             if (NameR[10] != 'l')
   2340               break;
   2341             switch (NameR[11]) {
   2342             default: break;
   2343             case 'h':	 // 1 string to match.
   2344               if (NameR.substr(12, 2) != ".w")
   2345                 break;
   2346               return Intrinsic::x86_mmx_pmulh_w;	 // "86.mmx.pmulh.w"
   2347             case 'l':	 // 1 string to match.
   2348               if (NameR.substr(12, 2) != ".w")
   2349                 break;
   2350               return Intrinsic::x86_mmx_pmull_w;	 // "86.mmx.pmull.w"
   2351             }
   2352             break;
   2353           }
   2354           break;
   2355         case 's':	 // 11 strings to match.
   2356           switch (NameR[9]) {
   2357           default: break;
   2358           case 'a':	 // 1 string to match.
   2359             if (NameR.substr(10, 4) != "d.bw")
   2360               break;
   2361             return Intrinsic::x86_mmx_psad_bw;	 // "86.mmx.psad.bw"
   2362           case 'l':	 // 3 strings to match.
   2363             if (NameR.substr(10, 3) != "li.")
   2364               break;
   2365             switch (NameR[13]) {
   2366             default: break;
   2367             case 'd':	 // 1 string to match.
   2368               return Intrinsic::x86_mmx_pslli_d;	 // "86.mmx.pslli.d"
   2369             case 'q':	 // 1 string to match.
   2370               return Intrinsic::x86_mmx_pslli_q;	 // "86.mmx.pslli.q"
   2371             case 'w':	 // 1 string to match.
   2372               return Intrinsic::x86_mmx_pslli_w;	 // "86.mmx.pslli.w"
   2373             }
   2374             break;
   2375           case 'r':	 // 5 strings to match.
   2376             switch (NameR[10]) {
   2377             default: break;
   2378             case 'a':	 // 2 strings to match.
   2379               if (NameR.substr(11, 2) != "i.")
   2380                 break;
   2381               switch (NameR[13]) {
   2382               default: break;
   2383               case 'd':	 // 1 string to match.
   2384                 return Intrinsic::x86_mmx_psrai_d;	 // "86.mmx.psrai.d"
   2385               case 'w':	 // 1 string to match.
   2386                 return Intrinsic::x86_mmx_psrai_w;	 // "86.mmx.psrai.w"
   2387               }
   2388               break;
   2389             case 'l':	 // 3 strings to match.
   2390               if (NameR.substr(11, 2) != "i.")
   2391                 break;
   2392               switch (NameR[13]) {
   2393               default: break;
   2394               case 'd':	 // 1 string to match.
   2395                 return Intrinsic::x86_mmx_psrli_d;	 // "86.mmx.psrli.d"
   2396               case 'q':	 // 1 string to match.
   2397                 return Intrinsic::x86_mmx_psrli_q;	 // "86.mmx.psrli.q"
   2398               case 'w':	 // 1 string to match.
   2399                 return Intrinsic::x86_mmx_psrli_w;	 // "86.mmx.psrli.w"
   2400               }
   2401               break;
   2402             }
   2403             break;
   2404           case 'u':	 // 2 strings to match.
   2405             if (NameR.substr(10, 3) != "bs.")
   2406               break;
   2407             switch (NameR[13]) {
   2408             default: break;
   2409             case 'b':	 // 1 string to match.
   2410               return Intrinsic::x86_mmx_psubs_b;	 // "86.mmx.psubs.b"
   2411             case 'w':	 // 1 string to match.
   2412               return Intrinsic::x86_mmx_psubs_w;	 // "86.mmx.psubs.w"
   2413             }
   2414             break;
   2415           }
   2416           break;
   2417         }
   2418         break;
   2419       case 's':	 // 28 strings to match.
   2420         if (NameR.substr(4, 2) != "se")
   2421           break;
   2422         switch (NameR[6]) {
   2423         default: break;
   2424         case '.':	 // 5 strings to match.
   2425           switch (NameR[7]) {
   2426           default: break;
   2427           case 'l':	 // 1 string to match.
   2428             if (NameR.substr(8, 6) != "dmxcsr")
   2429               break;
   2430             return Intrinsic::x86_sse_ldmxcsr;	 // "86.sse.ldmxcsr"
   2431           case 'p':	 // 1 string to match.
   2432             if (NameR.substr(8, 6) != "shuf.w")
   2433               break;
   2434             return Intrinsic::x86_sse_pshuf_w;	 // "86.sse.pshuf.w"
   2435           case 's':	 // 3 strings to match.
   2436             switch (NameR[8]) {
   2437             default: break;
   2438             case 'q':	 // 2 strings to match.
   2439               if (NameR.substr(9, 3) != "rt.")
   2440                 break;
   2441               switch (NameR[12]) {
   2442               default: break;
   2443               case 'p':	 // 1 string to match.
   2444                 if (NameR[13] != 's')
   2445                   break;
   2446                 return Intrinsic::x86_sse_sqrt_ps;	 // "86.sse.sqrt.ps"
   2447               case 's':	 // 1 string to match.
   2448                 if (NameR[13] != 's')
   2449                   break;
   2450                 return Intrinsic::x86_sse_sqrt_ss;	 // "86.sse.sqrt.ss"
   2451               }
   2452               break;
   2453             case 't':	 // 1 string to match.
   2454               if (NameR.substr(9, 5) != "mxcsr")
   2455                 break;
   2456               return Intrinsic::x86_sse_stmxcsr;	 // "86.sse.stmxcsr"
   2457             }
   2458             break;
   2459           }
   2460           break;
   2461         case '2':	 // 22 strings to match.
   2462           if (NameR[7] != '.')
   2463             break;
   2464           switch (NameR[8]) {
   2465           default: break;
   2466           case 'a':	 // 1 string to match.
   2467             if (NameR.substr(9, 5) != "dd.sd")
   2468               break;
   2469             return Intrinsic::x86_sse2_add_sd;	 // "86.sse2.add.sd"
   2470           case 'c':	 // 2 strings to match.
   2471             if (NameR.substr(9, 3) != "mp.")
   2472               break;
   2473             switch (NameR[12]) {
   2474             default: break;
   2475             case 'p':	 // 1 string to match.
   2476               if (NameR[13] != 'd')
   2477                 break;
   2478               return Intrinsic::x86_sse2_cmp_pd;	 // "86.sse2.cmp.pd"
   2479             case 's':	 // 1 string to match.
   2480               if (NameR[13] != 'd')
   2481                 break;
   2482               return Intrinsic::x86_sse2_cmp_sd;	 // "86.sse2.cmp.sd"
   2483             }
   2484             break;
   2485           case 'd':	 // 1 string to match.
   2486             if (NameR.substr(9, 5) != "iv.sd")
   2487               break;
   2488             return Intrinsic::x86_sse2_div_sd;	 // "86.sse2.div.sd"
   2489           case 'l':	 // 1 string to match.
   2490             if (NameR.substr(9, 5) != "fence")
   2491               break;
   2492             return Intrinsic::x86_sse2_lfence;	 // "86.sse2.lfence"
   2493           case 'm':	 // 6 strings to match.
   2494             switch (NameR[9]) {
   2495             default: break;
   2496             case 'a':	 // 2 strings to match.
   2497               if (NameR.substr(10, 2) != "x.")
   2498                 break;
   2499               switch (NameR[12]) {
   2500               default: break;
   2501               case 'p':	 // 1 string to match.
   2502                 if (NameR[13] != 'd')
   2503                   break;
   2504                 return Intrinsic::x86_sse2_max_pd;	 // "86.sse2.max.pd"
   2505               case 's':	 // 1 string to match.
   2506                 if (NameR[13] != 'd')
   2507                   break;
   2508                 return Intrinsic::x86_sse2_max_sd;	 // "86.sse2.max.sd"
   2509               }
   2510               break;
   2511             case 'f':	 // 1 string to match.
   2512               if (NameR.substr(10, 4) != "ence")
   2513                 break;
   2514               return Intrinsic::x86_sse2_mfence;	 // "86.sse2.mfence"
   2515             case 'i':	 // 2 strings to match.
   2516               if (NameR.substr(10, 2) != "n.")
   2517                 break;
   2518               switch (NameR[12]) {
   2519               default: break;
   2520               case 'p':	 // 1 string to match.
   2521                 if (NameR[13] != 'd')
   2522                   break;
   2523                 return Intrinsic::x86_sse2_min_pd;	 // "86.sse2.min.pd"
   2524               case 's':	 // 1 string to match.
   2525                 if (NameR[13] != 'd')
   2526                   break;
   2527                 return Intrinsic::x86_sse2_min_sd;	 // "86.sse2.min.sd"
   2528               }
   2529               break;
   2530             case 'u':	 // 1 string to match.
   2531               if (NameR.substr(10, 4) != "l.sd")
   2532                 break;
   2533               return Intrinsic::x86_sse2_mul_sd;	 // "86.sse2.mul.sd"
   2534             }
   2535             break;
   2536           case 'p':	 // 10 strings to match.
   2537             switch (NameR[9]) {
   2538             default: break;
   2539             case 'a':	 // 2 strings to match.
   2540               if (NameR.substr(10, 3) != "vg.")
   2541                 break;
   2542               switch (NameR[13]) {
   2543               default: break;
   2544               case 'b':	 // 1 string to match.
   2545                 return Intrinsic::x86_sse2_pavg_b;	 // "86.sse2.pavg.b"
   2546               case 'w':	 // 1 string to match.
   2547                 return Intrinsic::x86_sse2_pavg_w;	 // "86.sse2.pavg.w"
   2548               }
   2549               break;
   2550             case 's':	 // 8 strings to match.
   2551               switch (NameR[10]) {
   2552               default: break;
   2553               case 'l':	 // 3 strings to match.
   2554                 if (NameR.substr(11, 2) != "l.")
   2555                   break;
   2556                 switch (NameR[13]) {
   2557                 default: break;
   2558                 case 'd':	 // 1 string to match.
   2559                   return Intrinsic::x86_sse2_psll_d;	 // "86.sse2.psll.d"
   2560                 case 'q':	 // 1 string to match.
   2561                   return Intrinsic::x86_sse2_psll_q;	 // "86.sse2.psll.q"
   2562                 case 'w':	 // 1 string to match.
   2563                   return Intrinsic::x86_sse2_psll_w;	 // "86.sse2.psll.w"
   2564                 }
   2565                 break;
   2566               case 'r':	 // 5 strings to match.
   2567                 switch (NameR[11]) {
   2568                 default: break;
   2569                 case 'a':	 // 2 strings to match.
   2570                   if (NameR[12] != '.')
   2571                     break;
   2572                   switch (NameR[13]) {
   2573                   default: break;
   2574                   case 'd':	 // 1 string to match.
   2575                     return Intrinsic::x86_sse2_psra_d;	 // "86.sse2.psra.d"
   2576                   case 'w':	 // 1 string to match.
   2577                     return Intrinsic::x86_sse2_psra_w;	 // "86.sse2.psra.w"
   2578                   }
   2579                   break;
   2580                 case 'l':	 // 3 strings to match.
   2581                   if (NameR[12] != '.')
   2582                     break;
   2583                   switch (NameR[13]) {
   2584                   default: break;
   2585                   case 'd':	 // 1 string to match.
   2586                     return Intrinsic::x86_sse2_psrl_d;	 // "86.sse2.psrl.d"
   2587                   case 'q':	 // 1 string to match.
   2588                     return Intrinsic::x86_sse2_psrl_q;	 // "86.sse2.psrl.q"
   2589                   case 'w':	 // 1 string to match.
   2590                     return Intrinsic::x86_sse2_psrl_w;	 // "86.sse2.psrl.w"
   2591                   }
   2592                   break;
   2593                 }
   2594                 break;
   2595               }
   2596               break;
   2597             }
   2598             break;
   2599           case 's':	 // 1 string to match.
   2600             if (NameR.substr(9, 5) != "ub.sd")
   2601               break;
   2602             return Intrinsic::x86_sse2_sub_sd;	 // "86.sse2.sub.sd"
   2603           }
   2604           break;
   2605         case '3':	 // 1 string to match.
   2606           if (NameR.substr(7, 7) != ".ldu.dq")
   2607             break;
   2608           return Intrinsic::x86_sse3_ldu_dq;	 // "86.sse3.ldu.dq"
   2609         }
   2610         break;
   2611       }
   2612       break;
   2613     case 15:	 // 79 strings to match.
   2614       if (NameR.substr(0, 3) != "86.")
   2615         break;
   2616       switch (NameR[3]) {
   2617       default: break;
   2618       case '3':	 // 3 strings to match.
   2619         if (NameR.substr(4, 4) != "dnow")
   2620           break;
   2621         switch (NameR[8]) {
   2622         default: break;
   2623         case '.':	 // 1 string to match.
   2624           if (NameR.substr(9, 6) != "pfsubr")
   2625             break;
   2626           return Intrinsic::x86_3dnow_pfsubr;	 // "86.3dnow.pfsubr"
   2627         case 'a':	 // 2 strings to match.
   2628           if (NameR.substr(9, 2) != ".p")
   2629             break;
   2630           switch (NameR[11]) {
   2631           default: break;
   2632           case 'f':	 // 1 string to match.
   2633             if (NameR.substr(12, 3) != "2iw")
   2634               break;
   2635             return Intrinsic::x86_3dnowa_pf2iw;	 // "86.3dnowa.pf2iw"
   2636           case 'i':	 // 1 string to match.
   2637             if (NameR.substr(12, 3) != "2fw")
   2638               break;
   2639             return Intrinsic::x86_3dnowa_pi2fw;	 // "86.3dnowa.pi2fw"
   2640           }
   2641           break;
   2642         }
   2643         break;
   2644       case 'a':	 // 4 strings to match.
   2645         switch (NameR[4]) {
   2646         default: break;
   2647         case 'e':	 // 3 strings to match.
   2648           if (NameR.substr(5, 7) != "sni.aes")
   2649             break;
   2650           switch (NameR[12]) {
   2651           default: break;
   2652           case 'd':	 // 1 string to match.
   2653             if (NameR.substr(13, 2) != "ec")
   2654               break;
   2655             return Intrinsic::x86_aesni_aesdec;	 // "86.aesni.aesdec"
   2656           case 'e':	 // 1 string to match.
   2657             if (NameR.substr(13, 2) != "nc")
   2658               break;
   2659             return Intrinsic::x86_aesni_aesenc;	 // "86.aesni.aesenc"
   2660           case 'i':	 // 1 string to match.
   2661             if (NameR.substr(13, 2) != "mc")
   2662               break;
   2663             return Intrinsic::x86_aesni_aesimc;	 // "86.aesni.aesimc"
   2664           }
   2665           break;
   2666         case 'v':	 // 1 string to match.
   2667           if (NameR.substr(5, 10) != "x.vzeroall")
   2668             break;
   2669           return Intrinsic::x86_avx_vzeroall;	 // "86.avx.vzeroall"
   2670         }
   2671         break;
   2672       case 'm':	 // 19 strings to match.
   2673         if (NameR.substr(4, 3) != "mx.")
   2674           break;
   2675         switch (NameR[7]) {
   2676         default: break;
   2677         case 'm':	 // 2 strings to match.
   2678           switch (NameR[8]) {
   2679           default: break;
   2680           case 'a':	 // 1 string to match.
   2681             if (NameR.substr(9, 6) != "skmovq")
   2682               break;
   2683             return Intrinsic::x86_mmx_maskmovq;	 // "86.mmx.maskmovq"
   2684           case 'o':	 // 1 string to match.
   2685             if (NameR.substr(9, 6) != "vnt.dq")
   2686               break;
   2687             return Intrinsic::x86_mmx_movnt_dq;	 // "86.mmx.movnt.dq"
   2688           }
   2689           break;
   2690         case 'p':	 // 17 strings to match.
   2691           switch (NameR[8]) {
   2692           default: break;
   2693           case 'a':	 // 5 strings to match.
   2694             switch (NameR[9]) {
   2695             default: break;
   2696             case 'c':	 // 3 strings to match.
   2697               if (NameR[10] != 'k')
   2698                 break;
   2699               switch (NameR[11]) {
   2700               default: break;
   2701               case 's':	 // 2 strings to match.
   2702                 if (NameR[12] != 's')
   2703                   break;
   2704                 switch (NameR[13]) {
   2705                 default: break;
   2706                 case 'd':	 // 1 string to match.
   2707                   if (NameR[14] != 'w')
   2708                     break;
   2709                   return Intrinsic::x86_mmx_packssdw;	 // "86.mmx.packssdw"
   2710                 case 'w':	 // 1 string to match.
   2711                   if (NameR[14] != 'b')
   2712                     break;
   2713                   return Intrinsic::x86_mmx_packsswb;	 // "86.mmx.packsswb"
   2714                 }
   2715                 break;
   2716               case 'u':	 // 1 string to match.
   2717                 if (NameR.substr(12, 3) != "swb")
   2718                   break;
   2719                 return Intrinsic::x86_mmx_packuswb;	 // "86.mmx.packuswb"
   2720               }
   2721               break;
   2722             case 'd':	 // 2 strings to match.
   2723               if (NameR.substr(10, 4) != "dus.")
   2724                 break;
   2725               switch (NameR[14]) {
   2726               default: break;
   2727               case 'b':	 // 1 string to match.
   2728                 return Intrinsic::x86_mmx_paddus_b;	 // "86.mmx.paddus.b"
   2729               case 'w':	 // 1 string to match.
   2730                 return Intrinsic::x86_mmx_paddus_w;	 // "86.mmx.paddus.w"
   2731               }
   2732               break;
   2733             }
   2734             break;
   2735           case 'c':	 // 6 strings to match.
   2736             if (NameR.substr(9, 2) != "mp")
   2737               break;
   2738             switch (NameR[11]) {
   2739             default: break;
   2740             case 'e':	 // 3 strings to match.
   2741               if (NameR.substr(12, 2) != "q.")
   2742                 break;
   2743               switch (NameR[14]) {
   2744               default: break;
   2745               case 'b':	 // 1 string to match.
   2746                 return Intrinsic::x86_mmx_pcmpeq_b;	 // "86.mmx.pcmpeq.b"
   2747               case 'd':	 // 1 string to match.
   2748                 return Intrinsic::x86_mmx_pcmpeq_d;	 // "86.mmx.pcmpeq.d"
   2749               case 'w':	 // 1 string to match.
   2750                 return Intrinsic::x86_mmx_pcmpeq_w;	 // "86.mmx.pcmpeq.w"
   2751               }
   2752               break;
   2753             case 'g':	 // 3 strings to match.
   2754               if (NameR.substr(12, 2) != "t.")
   2755                 break;
   2756               switch (NameR[14]) {
   2757               default: break;
   2758               case 'b':	 // 1 string to match.
   2759                 return Intrinsic::x86_mmx_pcmpgt_b;	 // "86.mmx.pcmpgt.b"
   2760               case 'd':	 // 1 string to match.
   2761                 return Intrinsic::x86_mmx_pcmpgt_d;	 // "86.mmx.pcmpgt.d"
   2762               case 'w':	 // 1 string to match.
   2763                 return Intrinsic::x86_mmx_pcmpgt_w;	 // "86.mmx.pcmpgt.w"
   2764               }
   2765               break;
   2766             }
   2767             break;
   2768           case 'm':	 // 4 strings to match.
   2769             switch (NameR[9]) {
   2770             default: break;
   2771             case 'a':	 // 1 string to match.
   2772               if (NameR.substr(10, 5) != "dd.wd")
   2773                 break;
   2774               return Intrinsic::x86_mmx_pmadd_wd;	 // "86.mmx.pmadd.wd"
   2775             case 'o':	 // 1 string to match.
   2776               if (NameR.substr(10, 5) != "vmskb")
   2777                 break;
   2778               return Intrinsic::x86_mmx_pmovmskb;	 // "86.mmx.pmovmskb"
   2779             case 'u':	 // 2 strings to match.
   2780               if (NameR[10] != 'l')
   2781                 break;
   2782               switch (NameR[11]) {
   2783               default: break;
   2784               case 'h':	 // 1 string to match.
   2785                 if (NameR.substr(12, 3) != "u.w")
   2786                   break;
   2787                 return Intrinsic::x86_mmx_pmulhu_w;	 // "86.mmx.pmulhu.w"
   2788               case 'u':	 // 1 string to match.
   2789                 if (NameR.substr(12, 3) != ".dq")
   2790                   break;
   2791                 return Intrinsic::x86_mmx_pmulu_dq;	 // "86.mmx.pmulu.dq"
   2792               }
   2793               break;
   2794             }
   2795             break;
   2796           case 's':	 // 2 strings to match.
   2797             if (NameR.substr(9, 5) != "ubus.")
   2798               break;
   2799             switch (NameR[14]) {
   2800             default: break;
   2801             case 'b':	 // 1 string to match.
   2802               return Intrinsic::x86_mmx_psubus_b;	 // "86.mmx.psubus.b"
   2803             case 'w':	 // 1 string to match.
   2804               return Intrinsic::x86_mmx_psubus_w;	 // "86.mmx.psubus.w"
   2805             }
   2806             break;
   2807           }
   2808           break;
   2809         }
   2810         break;
   2811       case 's':	 // 53 strings to match.
   2812         if (NameR[4] != 's')
   2813           break;
   2814         switch (NameR[5]) {
   2815         default: break;
   2816         case 'e':	 // 50 strings to match.
   2817           switch (NameR[6]) {
   2818           default: break;
   2819           case '.':	 // 8 strings to match.
   2820             switch (NameR[7]) {
   2821             default: break;
   2822             case 'c':	 // 6 strings to match.
   2823               if (NameR.substr(8, 2) != "vt")
   2824                 break;
   2825               switch (NameR[10]) {
   2826               default: break;
   2827               case 'p':	 // 4 strings to match.
   2828                 switch (NameR[11]) {
   2829                 default: break;
   2830                 case 'd':	 // 1 string to match.
   2831                   if (NameR.substr(12, 3) != "2pi")
   2832                     break;
   2833                   return Intrinsic::x86_sse_cvtpd2pi;	 // "86.sse.cvtpd2pi"
   2834                 case 'i':	 // 2 strings to match.
   2835                   if (NameR.substr(12, 2) != "2p")
   2836                     break;
   2837                   switch (NameR[14]) {
   2838                   default: break;
   2839                   case 'd':	 // 1 string to match.
   2840                     return Intrinsic::x86_sse_cvtpi2pd;	 // "86.sse.cvtpi2pd"
   2841                   case 's':	 // 1 string to match.
   2842                     return Intrinsic::x86_sse_cvtpi2ps;	 // "86.sse.cvtpi2ps"
   2843                   }
   2844                   break;
   2845                 case 's':	 // 1 string to match.
   2846                   if (NameR.substr(12, 3) != "2pi")
   2847                     break;
   2848                   return Intrinsic::x86_sse_cvtps2pi;	 // "86.sse.cvtps2pi"
   2849                 }
   2850                 break;
   2851               case 's':	 // 2 strings to match.
   2852                 switch (NameR[11]) {
   2853                 default: break;
   2854                 case 'i':	 // 1 string to match.
   2855                   if (NameR.substr(12, 3) != "2ss")
   2856                     break;
   2857                   return Intrinsic::x86_sse_cvtsi2ss;	 // "86.sse.cvtsi2ss"
   2858                 case 's':	 // 1 string to match.
   2859                   if (NameR.substr(12, 3) != "2si")
   2860                     break;
   2861                   return Intrinsic::x86_sse_cvtss2si;	 // "86.sse.cvtss2si"
   2862                 }
   2863                 break;
   2864               }
   2865               break;
   2866             case 'r':	 // 2 strings to match.
   2867               if (NameR.substr(8, 5) != "sqrt.")
   2868                 break;
   2869               switch (NameR[13]) {
   2870               default: break;
   2871               case 'p':	 // 1 string to match.
   2872                 if (NameR[14] != 's')
   2873                   break;
   2874                 return Intrinsic::x86_sse_rsqrt_ps;	 // "86.sse.rsqrt.ps"
   2875               case 's':	 // 1 string to match.
   2876                 if (NameR[14] != 's')
   2877                   break;
   2878                 return Intrinsic::x86_sse_rsqrt_ss;	 // "86.sse.rsqrt.ss"
   2879               }
   2880               break;
   2881             }
   2882             break;
   2883           case '2':	 // 23 strings to match.
   2884             if (NameR[7] != '.')
   2885               break;
   2886             switch (NameR[8]) {
   2887             default: break;
   2888             case 'c':	 // 1 string to match.
   2889               if (NameR.substr(9, 6) != "lflush")
   2890                 break;
   2891               return Intrinsic::x86_sse2_clflush;	 // "86.sse2.clflush"
   2892             case 'p':	 // 20 strings to match.
   2893               switch (NameR[9]) {
   2894               default: break;
   2895               case 'a':	 // 2 strings to match.
   2896                 if (NameR.substr(10, 4) != "dds.")
   2897                   break;
   2898                 switch (NameR[14]) {
   2899                 default: break;
   2900                 case 'b':	 // 1 string to match.
   2901                   return Intrinsic::x86_sse2_padds_b;	 // "86.sse2.padds.b"
   2902                 case 'w':	 // 1 string to match.
   2903                   return Intrinsic::x86_sse2_padds_w;	 // "86.sse2.padds.w"
   2904                 }
   2905                 break;
   2906               case 'm':	 // 5 strings to match.
   2907                 switch (NameR[10]) {
   2908                 default: break;
   2909                 case 'a':	 // 2 strings to match.
   2910                   if (NameR[11] != 'x')
   2911                     break;
   2912                   switch (NameR[12]) {
   2913                   default: break;
   2914                   case 's':	 // 1 string to match.
   2915                     if (NameR.substr(13, 2) != ".w")
   2916                       break;
   2917                     return Intrinsic::x86_sse2_pmaxs_w;	 // "86.sse2.pmaxs.w"
   2918                   case 'u':	 // 1 string to match.
   2919                     if (NameR.substr(13, 2) != ".b")
   2920                       break;
   2921                     return Intrinsic::x86_sse2_pmaxu_b;	 // "86.sse2.pmaxu.b"
   2922                   }
   2923                   break;
   2924                 case 'i':	 // 2 strings to match.
   2925                   if (NameR[11] != 'n')
   2926                     break;
   2927                   switch (NameR[12]) {
   2928                   default: break;
   2929                   case 's':	 // 1 string to match.
   2930                     if (NameR.substr(13, 2) != ".w")
   2931                       break;
   2932                     return Intrinsic::x86_sse2_pmins_w;	 // "86.sse2.pmins.w"
   2933                   case 'u':	 // 1 string to match.
   2934                     if (NameR.substr(13, 2) != ".b")
   2935                       break;
   2936                     return Intrinsic::x86_sse2_pminu_b;	 // "86.sse2.pminu.b"
   2937                   }
   2938                   break;
   2939                 case 'u':	 // 1 string to match.
   2940                   if (NameR.substr(11, 4) != "lh.w")
   2941                     break;
   2942                   return Intrinsic::x86_sse2_pmulh_w;	 // "86.sse2.pmulh.w"
   2943                 }
   2944                 break;
   2945               case 's':	 // 13 strings to match.
   2946                 switch (NameR[10]) {
   2947                 default: break;
   2948                 case 'a':	 // 1 string to match.
   2949                   if (NameR.substr(11, 4) != "d.bw")
   2950                     break;
   2951                   return Intrinsic::x86_sse2_psad_bw;	 // "86.sse2.psad.bw"
   2952                 case 'l':	 // 4 strings to match.
   2953                   if (NameR[11] != 'l')
   2954                     break;
   2955                   switch (NameR[12]) {
   2956                   default: break;
   2957                   case '.':	 // 1 string to match.
   2958                     if (NameR.substr(13, 2) != "dq")
   2959                       break;
   2960                     return Intrinsic::x86_sse2_psll_dq;	 // "86.sse2.psll.dq"
   2961                   case 'i':	 // 3 strings to match.
   2962                     if (NameR[13] != '.')
   2963                       break;
   2964                     switch (NameR[14]) {
   2965                     default: break;
   2966                     case 'd':	 // 1 string to match.
   2967                       return Intrinsic::x86_sse2_pslli_d;	 // "86.sse2.pslli.d"
   2968                     case 'q':	 // 1 string to match.
   2969                       return Intrinsic::x86_sse2_pslli_q;	 // "86.sse2.pslli.q"
   2970                     case 'w':	 // 1 string to match.
   2971                       return Intrinsic::x86_sse2_pslli_w;	 // "86.sse2.pslli.w"
   2972                     }
   2973                     break;
   2974                   }
   2975                   break;
   2976                 case 'r':	 // 6 strings to match.
   2977                   switch (NameR[11]) {
   2978                   default: break;
   2979                   case 'a':	 // 2 strings to match.
   2980                     if (NameR.substr(12, 2) != "i.")
   2981                       break;
   2982                     switch (NameR[14]) {
   2983                     default: break;
   2984                     case 'd':	 // 1 string to match.
   2985                       return Intrinsic::x86_sse2_psrai_d;	 // "86.sse2.psrai.d"
   2986                     case 'w':	 // 1 string to match.
   2987                       return Intrinsic::x86_sse2_psrai_w;	 // "86.sse2.psrai.w"
   2988                     }
   2989                     break;
   2990                   case 'l':	 // 4 strings to match.
   2991                     switch (NameR[12]) {
   2992                     default: break;
   2993                     case '.':	 // 1 string to match.
   2994                       if (NameR.substr(13, 2) != "dq")
   2995                         break;
   2996                       return Intrinsic::x86_sse2_psrl_dq;	 // "86.sse2.psrl.dq"
   2997                     case 'i':	 // 3 strings to match.
   2998                       if (NameR[13] != '.')
   2999                         break;
   3000                       switch (NameR[14]) {
   3001                       default: break;
   3002                       case 'd':	 // 1 string to match.
   3003                         return Intrinsic::x86_sse2_psrli_d;	 // "86.sse2.psrli.d"
   3004                       case 'q':	 // 1 string to match.
   3005                         return Intrinsic::x86_sse2_psrli_q;	 // "86.sse2.psrli.q"
   3006                       case 'w':	 // 1 string to match.
   3007                         return Intrinsic::x86_sse2_psrli_w;	 // "86.sse2.psrli.w"
   3008                       }
   3009                       break;
   3010                     }
   3011                     break;
   3012                   }
   3013                   break;
   3014                 case 'u':	 // 2 strings to match.
   3015                   if (NameR.substr(11, 3) != "bs.")
   3016                     break;
   3017                   switch (NameR[14]) {
   3018                   default: break;
   3019                   case 'b':	 // 1 string to match.
   3020                     return Intrinsic::x86_sse2_psubs_b;	 // "86.sse2.psubs.b"
   3021                   case 'w':	 // 1 string to match.
   3022                     return Intrinsic::x86_sse2_psubs_w;	 // "86.sse2.psubs.w"
   3023                   }
   3024                   break;
   3025                 }
   3026                 break;
   3027               }
   3028               break;
   3029             case 's':	 // 2 strings to match.
   3030               if (NameR.substr(9, 4) != "qrt.")
   3031                 break;
   3032               switch (NameR[13]) {
   3033               default: break;
   3034               case 'p':	 // 1 string to match.
   3035                 if (NameR[14] != 'd')
   3036                   break;
   3037                 return Intrinsic::x86_sse2_sqrt_pd;	 // "86.sse2.sqrt.pd"
   3038               case 's':	 // 1 string to match.
   3039                 if (NameR[14] != 'd')
   3040                   break;
   3041                 return Intrinsic::x86_sse2_sqrt_sd;	 // "86.sse2.sqrt.sd"
   3042               }
   3043               break;
   3044             }
   3045             break;
   3046           case '3':	 // 5 strings to match.
   3047             if (NameR[7] != '.')
   3048               break;
   3049             switch (NameR[8]) {
   3050             default: break;
   3051             case 'h':	 // 4 strings to match.
   3052               switch (NameR[9]) {
   3053               default: break;
   3054               case 'a':	 // 2 strings to match.
   3055                 if (NameR.substr(10, 4) != "dd.p")
   3056                   break;
   3057                 switch (NameR[14]) {
   3058                 default: break;
   3059                 case 'd':	 // 1 string to match.
   3060                   return Intrinsic::x86_sse3_hadd_pd;	 // "86.sse3.hadd.pd"
   3061                 case 's':	 // 1 string to match.
   3062                   return Intrinsic::x86_sse3_hadd_ps;	 // "86.sse3.hadd.ps"
   3063                 }
   3064                 break;
   3065               case 's':	 // 2 strings to match.
   3066                 if (NameR.substr(10, 4) != "ub.p")
   3067                   break;
   3068                 switch (NameR[14]) {
   3069                 default: break;
   3070                 case 'd':	 // 1 string to match.
   3071                   return Intrinsic::x86_sse3_hsub_pd;	 // "86.sse3.hsub.pd"
   3072                 case 's':	 // 1 string to match.
   3073                   return Intrinsic::x86_sse3_hsub_ps;	 // "86.sse3.hsub.ps"
   3074                 }
   3075                 break;
   3076               }
   3077               break;
   3078             case 'm':	 // 1 string to match.
   3079               if (NameR.substr(9, 6) != "onitor")
   3080                 break;
   3081               return Intrinsic::x86_sse3_monitor;	 // "86.sse3.monitor"
   3082             }
   3083             break;
   3084           case '4':	 // 14 strings to match.
   3085             if (NameR.substr(7, 3) != "1.p")
   3086               break;
   3087             switch (NameR[10]) {
   3088             default: break;
   3089             case 'e':	 // 3 strings to match.
   3090               if (NameR.substr(11, 3) != "xtr")
   3091                 break;
   3092               switch (NameR[14]) {
   3093               default: break;
   3094               case 'b':	 // 1 string to match.
   3095                 return Intrinsic::x86_sse41_pextrb;	 // "86.sse41.pextrb"
   3096               case 'd':	 // 1 string to match.
   3097                 return Intrinsic::x86_sse41_pextrd;	 // "86.sse41.pextrd"
   3098               case 'q':	 // 1 string to match.
   3099                 return Intrinsic::x86_sse41_pextrq;	 // "86.sse41.pextrq"
   3100               }
   3101               break;
   3102             case 'm':	 // 9 strings to match.
   3103               switch (NameR[11]) {
   3104               default: break;
   3105               case 'a':	 // 4 strings to match.
   3106                 if (NameR[12] != 'x')
   3107                   break;
   3108                 switch (NameR[13]) {
   3109                 default: break;
   3110                 case 's':	 // 2 strings to match.
   3111                   switch (NameR[14]) {
   3112                   default: break;
   3113                   case 'b':	 // 1 string to match.
   3114                     return Intrinsic::x86_sse41_pmaxsb;	 // "86.sse41.pmaxsb"
   3115                   case 'd':	 // 1 string to match.
   3116                     return Intrinsic::x86_sse41_pmaxsd;	 // "86.sse41.pmaxsd"
   3117                   }
   3118                   break;
   3119                 case 'u':	 // 2 strings to match.
   3120                   switch (NameR[14]) {
   3121                   default: break;
   3122                   case 'd':	 // 1 string to match.
   3123                     return Intrinsic::x86_sse41_pmaxud;	 // "86.sse41.pmaxud"
   3124                   case 'w':	 // 1 string to match.
   3125                     return Intrinsic::x86_sse41_pmaxuw;	 // "86.sse41.pmaxuw"
   3126                   }
   3127                   break;
   3128                 }
   3129                 break;
   3130               case 'i':	 // 4 strings to match.
   3131                 if (NameR[12] != 'n')
   3132                   break;
   3133                 switch (NameR[13]) {
   3134                 default: break;
   3135                 case 's':	 // 2 strings to match.
   3136                   switch (NameR[14]) {
   3137                   default: break;
   3138                   case 'b':	 // 1 string to match.
   3139                     return Intrinsic::x86_sse41_pminsb;	 // "86.sse41.pminsb"
   3140                   case 'd':	 // 1 string to match.
   3141                     return Intrinsic::x86_sse41_pminsd;	 // "86.sse41.pminsd"
   3142                   }
   3143                   break;
   3144                 case 'u':	 // 2 strings to match.
   3145                   switch (NameR[14]) {
   3146                   default: break;
   3147                   case 'd':	 // 1 string to match.
   3148                     return Intrinsic::x86_sse41_pminud;	 // "86.sse41.pminud"
   3149                   case 'w':	 // 1 string to match.
   3150                     return Intrinsic::x86_sse41_pminuw;	 // "86.sse41.pminuw"
   3151                   }
   3152                   break;
   3153                 }
   3154                 break;
   3155               case 'u':	 // 1 string to match.
   3156                 if (NameR.substr(12, 3) != "ldq")
   3157                   break;
   3158                 return Intrinsic::x86_sse41_pmuldq;	 // "86.sse41.pmuldq"
   3159               }
   3160               break;
   3161             case 't':	 // 2 strings to match.
   3162               if (NameR.substr(11, 3) != "est")
   3163                 break;
   3164               switch (NameR[14]) {
   3165               default: break;
   3166               case 'c':	 // 1 string to match.
   3167                 return Intrinsic::x86_sse41_ptestc;	 // "86.sse41.ptestc"
   3168               case 'z':	 // 1 string to match.
   3169                 return Intrinsic::x86_sse41_ptestz;	 // "86.sse41.ptestz"
   3170               }
   3171               break;
   3172             }
   3173             break;
   3174           }
   3175           break;
   3176         case 's':	 // 3 strings to match.
   3177           if (NameR.substr(6, 8) != "e3.pabs.")
   3178             break;
   3179           switch (NameR[14]) {
   3180           default: break;
   3181           case 'b':	 // 1 string to match.
   3182             return Intrinsic::x86_ssse3_pabs_b;	 // "86.ssse3.pabs.b"
   3183           case 'd':	 // 1 string to match.
   3184             return Intrinsic::x86_ssse3_pabs_d;	 // "86.ssse3.pabs.d"
   3185           case 'w':	 // 1 string to match.
   3186             return Intrinsic::x86_ssse3_pabs_w;	 // "86.ssse3.pabs.w"
   3187           }
   3188           break;
   3189         }
   3190         break;
   3191       }
   3192       break;
   3193     case 16:	 // 67 strings to match.
   3194       if (NameR.substr(0, 3) != "86.")
   3195         break;
   3196       switch (NameR[3]) {
   3197       default: break;
   3198       case '3':	 // 8 strings to match.
   3199         if (NameR.substr(4, 4) != "dnow")
   3200           break;
   3201         switch (NameR[8]) {
   3202         default: break;
   3203         case '.':	 // 6 strings to match.
   3204           if (NameR[9] != 'p')
   3205             break;
   3206           switch (NameR[10]) {
   3207           default: break;
   3208           case 'a':	 // 1 string to match.
   3209             if (NameR.substr(11, 5) != "vgusb")
   3210               break;
   3211             return Intrinsic::x86_3dnow_pavgusb;	 // "86.3dnow.pavgusb"
   3212           case 'f':	 // 4 strings to match.
   3213             switch (NameR[11]) {
   3214             default: break;
   3215             case 'c':	 // 3 strings to match.
   3216               if (NameR.substr(12, 2) != "mp")
   3217                 break;
   3218               switch (NameR[14]) {
   3219               default: break;
   3220               case 'e':	 // 1 string to match.
   3221                 if (NameR[15] != 'q')
   3222                   break;
   3223                 return Intrinsic::x86_3dnow_pfcmpeq;	 // "86.3dnow.pfcmpeq"
   3224               case 'g':	 // 2 strings to match.
   3225                 switch (NameR[15]) {
   3226                 default: break;
   3227                 case 'e':	 // 1 string to match.
   3228                   return Intrinsic::x86_3dnow_pfcmpge;	 // "86.3dnow.pfcmpge"
   3229                 case 't':	 // 1 string to match.
   3230                   return Intrinsic::x86_3dnow_pfcmpgt;	 // "86.3dnow.pfcmpgt"
   3231                 }
   3232                 break;
   3233               }
   3234               break;
   3235             case 'r':	 // 1 string to match.
   3236               if (NameR.substr(12, 4) != "sqrt")
   3237                 break;
   3238               return Intrinsic::x86_3dnow_pfrsqrt;	 // "86.3dnow.pfrsqrt"
   3239             }
   3240             break;
   3241           case 'm':	 // 1 string to match.
   3242             if (NameR.substr(11, 5) != "ulhrw")
   3243               break;
   3244             return Intrinsic::x86_3dnow_pmulhrw;	 // "86.3dnow.pmulhrw"
   3245           }
   3246           break;
   3247         case 'a':	 // 2 strings to match.
   3248           if (NameR.substr(9, 2) != ".p")
   3249             break;
   3250           switch (NameR[11]) {
   3251           default: break;
   3252           case 'f':	 // 1 string to match.
   3253             if (NameR.substr(12, 4) != "nacc")
   3254               break;
   3255             return Intrinsic::x86_3dnowa_pfnacc;	 // "86.3dnowa.pfnacc"
   3256           case 's':	 // 1 string to match.
   3257             if (NameR.substr(12, 4) != "wapd")
   3258               break;
   3259             return Intrinsic::x86_3dnowa_pswapd;	 // "86.3dnowa.pswapd"
   3260           }
   3261           break;
   3262         }
   3263         break;
   3264       case 'a':	 // 5 strings to match.
   3265         if (NameR.substr(4, 3) != "vx.")
   3266           break;
   3267         switch (NameR[7]) {
   3268         default: break;
   3269         case 'd':	 // 1 string to match.
   3270           if (NameR.substr(8, 8) != "p.ps.256")
   3271             break;
   3272           return Intrinsic::x86_avx_dp_ps_256;	 // "86.avx.dp.ps.256"
   3273         case 'v':	 // 4 strings to match.
   3274           if (NameR.substr(8, 4) != "test")
   3275             break;
   3276           switch (NameR[12]) {
   3277           default: break;
   3278           case 'c':	 // 2 strings to match.
   3279             if (NameR.substr(13, 2) != ".p")
   3280               break;
   3281             switch (NameR[15]) {
   3282             default: break;
   3283             case 'd':	 // 1 string to match.
   3284               return Intrinsic::x86_avx_vtestc_pd;	 // "86.avx.vtestc.pd"
   3285             case 's':	 // 1 string to match.
   3286               return Intrinsic::x86_avx_vtestc_ps;	 // "86.avx.vtestc.ps"
   3287             }
   3288             break;
   3289           case 'z':	 // 2 strings to match.
   3290             if (NameR.substr(13, 2) != ".p")
   3291               break;
   3292             switch (NameR[15]) {
   3293             default: break;
   3294             case 'd':	 // 1 string to match.
   3295               return Intrinsic::x86_avx_vtestz_pd;	 // "86.avx.vtestz.pd"
   3296             case 's':	 // 1 string to match.
   3297               return Intrinsic::x86_avx_vtestz_ps;	 // "86.avx.vtestz.ps"
   3298             }
   3299             break;
   3300           }
   3301           break;
   3302         }
   3303         break;
   3304       case 'm':	 // 7 strings to match.
   3305         if (NameR.substr(4, 4) != "mx.p")
   3306           break;
   3307         switch (NameR[8]) {
   3308         default: break;
   3309         case 'a':	 // 1 string to match.
   3310           if (NameR.substr(9, 7) != "lignr.b")
   3311             break;
   3312           return Intrinsic::x86_mmx_palignr_b;	 // "86.mmx.palignr.b"
   3313         case 'u':	 // 6 strings to match.
   3314           if (NameR.substr(9, 4) != "npck")
   3315             break;
   3316           switch (NameR[13]) {
   3317           default: break;
   3318           case 'h':	 // 3 strings to match.
   3319             switch (NameR[14]) {
   3320             default: break;
   3321             case 'b':	 // 1 string to match.
   3322               if (NameR[15] != 'w')
   3323                 break;
   3324               return Intrinsic::x86_mmx_punpckhbw;	 // "86.mmx.punpckhbw"
   3325             case 'd':	 // 1 string to match.
   3326               if (NameR[15] != 'q')
   3327                 break;
   3328               return Intrinsic::x86_mmx_punpckhdq;	 // "86.mmx.punpckhdq"
   3329             case 'w':	 // 1 string to match.
   3330               if (NameR[15] != 'd')
   3331                 break;
   3332               return Intrinsic::x86_mmx_punpckhwd;	 // "86.mmx.punpckhwd"
   3333             }
   3334             break;
   3335           case 'l':	 // 3 strings to match.
   3336             switch (NameR[14]) {
   3337             default: break;
   3338             case 'b':	 // 1 string to match.
   3339               if (NameR[15] != 'w')
   3340                 break;
   3341               return Intrinsic::x86_mmx_punpcklbw;	 // "86.mmx.punpcklbw"
   3342             case 'd':	 // 1 string to match.
   3343               if (NameR[15] != 'q')
   3344                 break;
   3345               return Intrinsic::x86_mmx_punpckldq;	 // "86.mmx.punpckldq"
   3346             case 'w':	 // 1 string to match.
   3347               if (NameR[15] != 'd')
   3348                 break;
   3349               return Intrinsic::x86_mmx_punpcklwd;	 // "86.mmx.punpcklwd"
   3350             }
   3351             break;
   3352           }
   3353           break;
   3354         }
   3355         break;
   3356       case 's':	 // 47 strings to match.
   3357         if (NameR[4] != 's')
   3358           break;
   3359         switch (NameR[5]) {
   3360         default: break;
   3361         case 'e':	 // 39 strings to match.
   3362           switch (NameR[6]) {
   3363           default: break;
   3364           case '.':	 // 10 strings to match.
   3365             switch (NameR[7]) {
   3366             default: break;
   3367             case 'c':	 // 8 strings to match.
   3368               switch (NameR[8]) {
   3369               default: break;
   3370               case 'o':	 // 5 strings to match.
   3371                 if (NameR.substr(9, 2) != "mi")
   3372                   break;
   3373                 switch (NameR[11]) {
   3374                 default: break;
   3375                 case 'e':	 // 1 string to match.
   3376                   if (NameR.substr(12, 4) != "q.ss")
   3377                     break;
   3378                   return Intrinsic::x86_sse_comieq_ss;	 // "86.sse.comieq.ss"
   3379                 case 'g':	 // 2 strings to match.
   3380                   switch (NameR[12]) {
   3381                   default: break;
   3382                   case 'e':	 // 1 string to match.
   3383                     if (NameR.substr(13, 3) != ".ss")
   3384                       break;
   3385                     return Intrinsic::x86_sse_comige_ss;	 // "86.sse.comige.ss"
   3386                   case 't':	 // 1 string to match.
   3387                     if (NameR.substr(13, 3) != ".ss")
   3388                       break;
   3389                     return Intrinsic::x86_sse_comigt_ss;	 // "86.sse.comigt.ss"
   3390                   }
   3391                   break;
   3392                 case 'l':	 // 2 strings to match.
   3393                   switch (NameR[12]) {
   3394                   default: break;
   3395                   case 'e':	 // 1 string to match.
   3396                     if (NameR.substr(13, 3) != ".ss")
   3397                       break;
   3398                     return Intrinsic::x86_sse_comile_ss;	 // "86.sse.comile.ss"
   3399                   case 't':	 // 1 string to match.
   3400                     if (NameR.substr(13, 3) != ".ss")
   3401                       break;
   3402                     return Intrinsic::x86_sse_comilt_ss;	 // "86.sse.comilt.ss"
   3403                   }
   3404                   break;
   3405                 }
   3406                 break;
   3407               case 'v':	 // 3 strings to match.
   3408                 if (NameR.substr(9, 2) != "tt")
   3409                   break;
   3410                 switch (NameR[11]) {
   3411                 default: break;
   3412                 case 'p':	 // 2 strings to match.
   3413                   switch (NameR[12]) {
   3414                   default: break;
   3415                   case 'd':	 // 1 string to match.
   3416                     if (NameR.substr(13, 3) != "2pi")
   3417                       break;
   3418                     return Intrinsic::x86_sse_cvttpd2pi;	 // "86.sse.cvttpd2pi"
   3419                   case 's':	 // 1 string to match.
   3420                     if (NameR.substr(13, 3) != "2pi")
   3421                       break;
   3422                     return Intrinsic::x86_sse_cvttps2pi;	 // "86.sse.cvttps2pi"
   3423                   }
   3424                   break;
   3425                 case 's':	 // 1 string to match.
   3426                   if (NameR.substr(12, 4) != "s2si")
   3427                     break;
   3428                   return Intrinsic::x86_sse_cvttss2si;	 // "86.sse.cvttss2si"
   3429                 }
   3430                 break;
   3431               }
   3432               break;
   3433             case 'm':	 // 1 string to match.
   3434               if (NameR.substr(8, 8) != "ovmsk.ps")
   3435                 break;
   3436               return Intrinsic::x86_sse_movmsk_ps;	 // "86.sse.movmsk.ps"
   3437             case 's':	 // 1 string to match.
   3438               if (NameR.substr(8, 8) != "toreu.ps")
   3439                 break;
   3440               return Intrinsic::x86_sse_storeu_ps;	 // "86.sse.storeu.ps"
   3441             }
   3442             break;
   3443           case '2':	 // 23 strings to match.
   3444             if (NameR[7] != '.')
   3445               break;
   3446             switch (NameR[8]) {
   3447             default: break;
   3448             case 'c':	 // 10 strings to match.
   3449               if (NameR.substr(9, 2) != "vt")
   3450                 break;
   3451               switch (NameR[11]) {
   3452               default: break;
   3453               case 'd':	 // 2 strings to match.
   3454                 if (NameR.substr(12, 3) != "q2p")
   3455                   break;
   3456                 switch (NameR[15]) {
   3457                 default: break;
   3458                 case 'd':	 // 1 string to match.
   3459                   return Intrinsic::x86_sse2_cvtdq2pd;	 // "86.sse2.cvtdq2pd"
   3460                 case 's':	 // 1 string to match.
   3461                   return Intrinsic::x86_sse2_cvtdq2ps;	 // "86.sse2.cvtdq2ps"
   3462                 }
   3463                 break;
   3464               case 'p':	 // 4 strings to match.
   3465                 switch (NameR[12]) {
   3466                 default: break;
   3467                 case 'd':	 // 2 strings to match.
   3468                   if (NameR[13] != '2')
   3469                     break;
   3470                   switch (NameR[14]) {
   3471                   default: break;
   3472                   case 'd':	 // 1 string to match.
   3473                     if (NameR[15] != 'q')
   3474                       break;
   3475                     return Intrinsic::x86_sse2_cvtpd2dq;	 // "86.sse2.cvtpd2dq"
   3476                   case 'p':	 // 1 string to match.
   3477                     if (NameR[15] != 's')
   3478                       break;
   3479                     return Intrinsic::x86_sse2_cvtpd2ps;	 // "86.sse2.cvtpd2ps"
   3480                   }
   3481                   break;
   3482                 case 's':	 // 2 strings to match.
   3483                   if (NameR[13] != '2')
   3484                     break;
   3485                   switch (NameR[14]) {
   3486                   default: break;
   3487                   case 'd':	 // 1 string to match.
   3488                     if (NameR[15] != 'q')
   3489                       break;
   3490                     return Intrinsic::x86_sse2_cvtps2dq;	 // "86.sse2.cvtps2dq"
   3491                   case 'p':	 // 1 string to match.
   3492                     if (NameR[15] != 'd')
   3493                       break;
   3494                     return Intrinsic::x86_sse2_cvtps2pd;	 // "86.sse2.cvtps2pd"
   3495                   }
   3496                   break;
   3497                 }
   3498                 break;
   3499               case 's':	 // 4 strings to match.
   3500                 switch (NameR[12]) {
   3501                 default: break;
   3502                 case 'd':	 // 2 strings to match.
   3503                   if (NameR.substr(13, 2) != "2s")
   3504                     break;
   3505                   switch (NameR[15]) {
   3506                   default: break;
   3507                   case 'i':	 // 1 string to match.
   3508                     return Intrinsic::x86_sse2_cvtsd2si;	 // "86.sse2.cvtsd2si"
   3509                   case 's':	 // 1 string to match.
   3510                     return Intrinsic::x86_sse2_cvtsd2ss;	 // "86.sse2.cvtsd2ss"
   3511                   }
   3512                   break;
   3513                 case 'i':	 // 1 string to match.
   3514                   if (NameR.substr(13, 3) != "2sd")
   3515                     break;
   3516                   return Intrinsic::x86_sse2_cvtsi2sd;	 // "86.sse2.cvtsi2sd"
   3517                 case 's':	 // 1 string to match.
   3518                   if (NameR.substr(13, 3) != "2sd")
   3519                     break;
   3520                   return Intrinsic::x86_sse2_cvtss2sd;	 // "86.sse2.cvtss2sd"
   3521                 }
   3522                 break;
   3523               }
   3524               break;
   3525             case 'p':	 // 13 strings to match.
   3526               switch (NameR[9]) {
   3527               default: break;
   3528               case 'a':	 // 2 strings to match.
   3529                 if (NameR.substr(10, 5) != "ddus.")
   3530                   break;
   3531                 switch (NameR[15]) {
   3532                 default: break;
   3533                 case 'b':	 // 1 string to match.
   3534                   return Intrinsic::x86_sse2_paddus_b;	 // "86.sse2.paddus.b"
   3535                 case 'w':	 // 1 string to match.
   3536                   return Intrinsic::x86_sse2_paddus_w;	 // "86.sse2.paddus.w"
   3537                 }
   3538                 break;
   3539               case 'c':	 // 6 strings to match.
   3540                 if (NameR.substr(10, 2) != "mp")
   3541                   break;
   3542                 switch (NameR[12]) {
   3543                 default: break;
   3544                 case 'e':	 // 3 strings to match.
   3545                   if (NameR.substr(13, 2) != "q.")
   3546                     break;
   3547                   switch (NameR[15]) {
   3548                   default: break;
   3549                   case 'b':	 // 1 string to match.
   3550                     return Intrinsic::x86_sse2_pcmpeq_b;	 // "86.sse2.pcmpeq.b"
   3551                   case 'd':	 // 1 string to match.
   3552                     return Intrinsic::x86_sse2_pcmpeq_d;	 // "86.sse2.pcmpeq.d"
   3553                   case 'w':	 // 1 string to match.
   3554                     return Intrinsic::x86_sse2_pcmpeq_w;	 // "86.sse2.pcmpeq.w"
   3555                   }
   3556                   break;
   3557                 case 'g':	 // 3 strings to match.
   3558                   if (NameR.substr(13, 2) != "t.")
   3559                     break;
   3560                   switch (NameR[15]) {
   3561                   default: break;
   3562                   case 'b':	 // 1 string to match.
   3563                     return Intrinsic::x86_sse2_pcmpgt_b;	 // "86.sse2.pcmpgt.b"
   3564                   case 'd':	 // 1 string to match.
   3565                     return Intrinsic::x86_sse2_pcmpgt_d;	 // "86.sse2.pcmpgt.d"
   3566                   case 'w':	 // 1 string to match.
   3567                     return Intrinsic::x86_sse2_pcmpgt_w;	 // "86.sse2.pcmpgt.w"
   3568                   }
   3569                   break;
   3570                 }
   3571                 break;
   3572               case 'm':	 // 3 strings to match.
   3573                 switch (NameR[10]) {
   3574                 default: break;
   3575                 case 'a':	 // 1 string to match.
   3576                   if (NameR.substr(11, 5) != "dd.wd")
   3577                     break;
   3578                   return Intrinsic::x86_sse2_pmadd_wd;	 // "86.sse2.pmadd.wd"
   3579                 case 'u':	 // 2 strings to match.
   3580                   if (NameR[11] != 'l')
   3581                     break;
   3582                   switch (NameR[12]) {
   3583                   default: break;
   3584                   case 'h':	 // 1 string to match.
   3585                     if (NameR.substr(13, 3) != "u.w")
   3586                       break;
   3587                     return Intrinsic::x86_sse2_pmulhu_w;	 // "86.sse2.pmulhu.w"
   3588                   case 'u':	 // 1 string to match.
   3589                     if (NameR.substr(13, 3) != ".dq")
   3590                       break;
   3591                     return Intrinsic::x86_sse2_pmulu_dq;	 // "86.sse2.pmulu.dq"
   3592                   }
   3593                   break;
   3594                 }
   3595                 break;
   3596               case 's':	 // 2 strings to match.
   3597                 if (NameR.substr(10, 5) != "ubus.")
   3598                   break;
   3599                 switch (NameR[15]) {
   3600                 default: break;
   3601                 case 'b':	 // 1 string to match.
   3602                   return Intrinsic::x86_sse2_psubus_b;	 // "86.sse2.psubus.b"
   3603                 case 'w':	 // 1 string to match.
   3604                   return Intrinsic::x86_sse2_psubus_w;	 // "86.sse2.psubus.w"
   3605                 }
   3606                 break;
   3607               }
   3608               break;
   3609             }
   3610             break;
   3611           case '4':	 // 6 strings to match.
   3612             switch (NameR[7]) {
   3613             default: break;
   3614             case '1':	 // 5 strings to match.
   3615               if (NameR[8] != '.')
   3616                 break;
   3617               switch (NameR[9]) {
   3618               default: break;
   3619               case 'b':	 // 2 strings to match.
   3620                 if (NameR.substr(10, 5) != "lendp")
   3621                   break;
   3622                 switch (NameR[15]) {
   3623                 default: break;
   3624                 case 'd':	 // 1 string to match.
   3625                   return Intrinsic::x86_sse41_blendpd;	 // "86.sse41.blendpd"
   3626                 case 's':	 // 1 string to match.
   3627                   return Intrinsic::x86_sse41_blendps;	 // "86.sse41.blendps"
   3628                 }
   3629                 break;
   3630               case 'm':	 // 1 string to match.
   3631                 if (NameR.substr(10, 6) != "psadbw")
   3632                   break;
   3633                 return Intrinsic::x86_sse41_mpsadbw;	 // "86.sse41.mpsadbw"
   3634               case 'p':	 // 2 strings to match.
   3635                 switch (NameR[10]) {
   3636                 default: break;
   3637                 case 'b':	 // 1 string to match.
   3638                   if (NameR.substr(11, 5) != "lendw")
   3639                     break;
   3640                   return Intrinsic::x86_sse41_pblendw;	 // "86.sse41.pblendw"
   3641                 case 'c':	 // 1 string to match.
   3642                   if (NameR.substr(11, 5) != "mpeqq")
   3643                     break;
   3644                   return Intrinsic::x86_sse41_pcmpeqq;	 // "86.sse41.pcmpeqq"
   3645                 }
   3646                 break;
   3647               }
   3648               break;
   3649             case '2':	 // 1 string to match.
   3650               if (NameR.substr(8, 8) != ".pcmpgtq")
   3651                 break;
   3652               return Intrinsic::x86_sse42_pcmpgtq;	 // "86.sse42.pcmpgtq"
   3653             }
   3654             break;
   3655           }
   3656           break;
   3657         case 's':	 // 8 strings to match.
   3658           if (NameR.substr(6, 4) != "e3.p")
   3659             break;
   3660           switch (NameR[10]) {
   3661           default: break;
   3662           case 'h':	 // 4 strings to match.
   3663             switch (NameR[11]) {
   3664             default: break;
   3665             case 'a':	 // 2 strings to match.
   3666               if (NameR.substr(12, 3) != "dd.")
   3667                 break;
   3668               switch (NameR[15]) {
   3669               default: break;
   3670               case 'd':	 // 1 string to match.
   3671                 return Intrinsic::x86_ssse3_phadd_d;	 // "86.ssse3.phadd.d"
   3672               case 'w':	 // 1 string to match.
   3673                 return Intrinsic::x86_ssse3_phadd_w;	 // "86.ssse3.phadd.w"
   3674               }
   3675               break;
   3676             case 's':	 // 2 strings to match.
   3677               if (NameR.substr(12, 3) != "ub.")
   3678                 break;
   3679               switch (NameR[15]) {
   3680               default: break;
   3681               case 'd':	 // 1 string to match.
   3682                 return Intrinsic::x86_ssse3_phsub_d;	 // "86.ssse3.phsub.d"
   3683               case 'w':	 // 1 string to match.
   3684                 return Intrinsic::x86_ssse3_phsub_w;	 // "86.ssse3.phsub.w"
   3685               }
   3686               break;
   3687             }
   3688             break;
   3689           case 's':	 // 4 strings to match.
   3690             switch (NameR[11]) {
   3691             default: break;
   3692             case 'h':	 // 1 string to match.
   3693               if (NameR.substr(12, 4) != "uf.b")
   3694                 break;
   3695               return Intrinsic::x86_ssse3_pshuf_b;	 // "86.ssse3.pshuf.b"
   3696             case 'i':	 // 3 strings to match.
   3697               if (NameR.substr(12, 3) != "gn.")
   3698                 break;
   3699               switch (NameR[15]) {
   3700               default: break;
   3701               case 'b':	 // 1 string to match.
   3702                 return Intrinsic::x86_ssse3_psign_b;	 // "86.ssse3.psign.b"
   3703               case 'd':	 // 1 string to match.
   3704                 return Intrinsic::x86_ssse3_psign_d;	 // "86.ssse3.psign.d"
   3705               case 'w':	 // 1 string to match.
   3706                 return Intrinsic::x86_ssse3_psign_w;	 // "86.ssse3.psign.w"
   3707               }
   3708               break;
   3709             }
   3710             break;
   3711           }
   3712           break;
   3713         }
   3714         break;
   3715       }
   3716       break;
   3717     case 17:	 // 64 strings to match.
   3718       if (NameR.substr(0, 3) != "86.")
   3719         break;
   3720       switch (NameR[3]) {
   3721       default: break;
   3722       case '3':	 // 4 strings to match.
   3723         if (NameR.substr(4, 4) != "dnow")
   3724           break;
   3725         switch (NameR[8]) {
   3726         default: break;
   3727         case '.':	 // 3 strings to match.
   3728           if (NameR.substr(9, 3) != "pfr")
   3729             break;
   3730           switch (NameR[12]) {
   3731           default: break;
   3732           case 'c':	 // 2 strings to match.
   3733             if (NameR.substr(13, 3) != "pit")
   3734               break;
   3735             switch (NameR[16]) {
   3736             default: break;
   3737             case '1':	 // 1 string to match.
   3738               return Intrinsic::x86_3dnow_pfrcpit1;	 // "86.3dnow.pfrcpit1"
   3739             case '2':	 // 1 string to match.
   3740               return Intrinsic::x86_3dnow_pfrcpit2;	 // "86.3dnow.pfrcpit2"
   3741             }
   3742             break;
   3743           case 's':	 // 1 string to match.
   3744             if (NameR.substr(13, 4) != "qit1")
   3745               break;
   3746             return Intrinsic::x86_3dnow_pfrsqit1;	 // "86.3dnow.pfrsqit1"
   3747           }
   3748           break;
   3749         case 'a':	 // 1 string to match.
   3750           if (NameR.substr(9, 8) != ".pfpnacc")
   3751             break;
   3752           return Intrinsic::x86_3dnowa_pfpnacc;	 // "86.3dnowa.pfpnacc"
   3753         }
   3754         break;
   3755       case 'a':	 // 13 strings to match.
   3756         if (NameR.substr(4, 3) != "vx.")
   3757           break;
   3758         switch (NameR[7]) {
   3759         default: break;
   3760         case 'c':	 // 2 strings to match.
   3761           if (NameR.substr(8, 4) != "mp.p")
   3762             break;
   3763           switch (NameR[12]) {
   3764           default: break;
   3765           case 'd':	 // 1 string to match.
   3766             if (NameR.substr(13, 4) != ".256")
   3767               break;
   3768             return Intrinsic::x86_avx_cmp_pd_256;	 // "86.avx.cmp.pd.256"
   3769           case 's':	 // 1 string to match.
   3770             if (NameR.substr(13, 4) != ".256")
   3771               break;
   3772             return Intrinsic::x86_avx_cmp_ps_256;	 // "86.avx.cmp.ps.256"
   3773           }
   3774           break;
   3775         case 'l':	 // 1 string to match.
   3776           if (NameR.substr(8, 9) != "du.dq.256")
   3777             break;
   3778           return Intrinsic::x86_avx_ldu_dq_256;	 // "86.avx.ldu.dq.256"
   3779         case 'm':	 // 4 strings to match.
   3780           switch (NameR[8]) {
   3781           default: break;
   3782           case 'a':	 // 2 strings to match.
   3783             if (NameR.substr(9, 3) != "x.p")
   3784               break;
   3785             switch (NameR[12]) {
   3786             default: break;
   3787             case 'd':	 // 1 string to match.
   3788               if (NameR.substr(13, 4) != ".256")
   3789                 break;
   3790               return Intrinsic::x86_avx_max_pd_256;	 // "86.avx.max.pd.256"
   3791             case 's':	 // 1 string to match.
   3792               if (NameR.substr(13, 4) != ".256")
   3793                 break;
   3794               return Intrinsic::x86_avx_max_ps_256;	 // "86.avx.max.ps.256"
   3795             }
   3796             break;
   3797           case 'i':	 // 2 strings to match.
   3798             if (NameR.substr(9, 3) != "n.p")
   3799               break;
   3800             switch (NameR[12]) {
   3801             default: break;
   3802             case 'd':	 // 1 string to match.
   3803               if (NameR.substr(13, 4) != ".256")
   3804                 break;
   3805               return Intrinsic::x86_avx_min_pd_256;	 // "86.avx.min.pd.256"
   3806             case 's':	 // 1 string to match.
   3807               if (NameR.substr(13, 4) != ".256")
   3808                 break;
   3809               return Intrinsic::x86_avx_min_ps_256;	 // "86.avx.min.ps.256"
   3810             }
   3811             break;
   3812           }
   3813           break;
   3814         case 'p':	 // 2 strings to match.
   3815           if (NameR.substr(8, 4) != "test")
   3816             break;
   3817           switch (NameR[12]) {
   3818           default: break;
   3819           case 'c':	 // 1 string to match.
   3820             if (NameR.substr(13, 4) != ".256")
   3821               break;
   3822             return Intrinsic::x86_avx_ptestc_256;	 // "86.avx.ptestc.256"
   3823           case 'z':	 // 1 string to match.
   3824             if (NameR.substr(13, 4) != ".256")
   3825               break;
   3826             return Intrinsic::x86_avx_ptestz_256;	 // "86.avx.ptestz.256"
   3827           }
   3828           break;
   3829         case 'r':	 // 1 string to match.
   3830           if (NameR.substr(8, 9) != "cp.ps.256")
   3831             break;
   3832           return Intrinsic::x86_avx_rcp_ps_256;	 // "86.avx.rcp.ps.256"
   3833         case 'v':	 // 3 strings to match.
   3834           switch (NameR[8]) {
   3835           default: break;
   3836           case 'p':	 // 2 strings to match.
   3837             if (NameR.substr(9, 7) != "ermil.p")
   3838               break;
   3839             switch (NameR[16]) {
   3840             default: break;
   3841             case 'd':	 // 1 string to match.
   3842               return Intrinsic::x86_avx_vpermil_pd;	 // "86.avx.vpermil.pd"
   3843             case 's':	 // 1 string to match.
   3844               return Intrinsic::x86_avx_vpermil_ps;	 // "86.avx.vpermil.ps"
   3845             }
   3846             break;
   3847           case 'z':	 // 1 string to match.
   3848             if (NameR.substr(9, 8) != "eroupper")
   3849               break;
   3850             return Intrinsic::x86_avx_vzeroupper;	 // "86.avx.vzeroupper"
   3851           }
   3852           break;
   3853         }
   3854         break;
   3855       case 's':	 // 47 strings to match.
   3856         if (NameR[4] != 's')
   3857           break;
   3858         switch (NameR[5]) {
   3859         default: break;
   3860         case 'e':	 // 45 strings to match.
   3861           switch (NameR[6]) {
   3862           default: break;
   3863           case '.':	 // 8 strings to match.
   3864             switch (NameR[7]) {
   3865             default: break;
   3866             case 'c':	 // 3 strings to match.
   3867               switch (NameR[8]) {
   3868               default: break;
   3869               case 'o':	 // 1 string to match.
   3870                 if (NameR.substr(9, 8) != "mineq.ss")
   3871                   break;
   3872                 return Intrinsic::x86_sse_comineq_ss;	 // "86.sse.comineq.ss"
   3873               case 'v':	 // 2 strings to match.
   3874                 if (NameR.substr(9, 2) != "ts")
   3875                   break;
   3876                 switch (NameR[11]) {
   3877                 default: break;
   3878                 case 'i':	 // 1 string to match.
   3879                   if (NameR.substr(12, 5) != "642ss")
   3880                     break;
   3881                   return Intrinsic::x86_sse_cvtsi642ss;	 // "86.sse.cvtsi642ss"
   3882                 case 's':	 // 1 string to match.
   3883                   if (NameR.substr(12, 5) != "2si64")
   3884                     break;
   3885                   return Intrinsic::x86_sse_cvtss2si64;	 // "86.sse.cvtss2si64"
   3886                 }
   3887                 break;
   3888               }
   3889               break;
   3890             case 'u':	 // 5 strings to match.
   3891               if (NameR.substr(8, 4) != "comi")
   3892                 break;
   3893               switch (NameR[12]) {
   3894               default: break;
   3895               case 'e':	 // 1 string to match.
   3896                 if (NameR.substr(13, 4) != "q.ss")
   3897                   break;
   3898                 return Intrinsic::x86_sse_ucomieq_ss;	 // "86.sse.ucomieq.ss"
   3899               case 'g':	 // 2 strings to match.
   3900                 switch (NameR[13]) {
   3901                 default: break;
   3902                 case 'e':	 // 1 string to match.
   3903                   if (NameR.substr(14, 3) != ".ss")
   3904                     break;
   3905                   return Intrinsic::x86_sse_ucomige_ss;	 // "86.sse.ucomige.ss"
   3906                 case 't':	 // 1 string to match.
   3907                   if (NameR.substr(14, 3) != ".ss")
   3908                     break;
   3909                   return Intrinsic::x86_sse_ucomigt_ss;	 // "86.sse.ucomigt.ss"
   3910                 }
   3911                 break;
   3912               case 'l':	 // 2 strings to match.
   3913                 switch (NameR[13]) {
   3914                 default: break;
   3915                 case 'e':	 // 1 string to match.
   3916                   if (NameR.substr(14, 3) != ".ss")
   3917                     break;
   3918                   return Intrinsic::x86_sse_ucomile_ss;	 // "86.sse.ucomile.ss"
   3919                 case 't':	 // 1 string to match.
   3920                   if (NameR.substr(14, 3) != ".ss")
   3921                     break;
   3922                   return Intrinsic::x86_sse_ucomilt_ss;	 // "86.sse.ucomilt.ss"
   3923                 }
   3924                 break;
   3925               }
   3926               break;
   3927             }
   3928             break;
   3929           case '2':	 // 12 strings to match.
   3930             if (NameR[7] != '.')
   3931               break;
   3932             switch (NameR[8]) {
   3933             default: break;
   3934             case 'c':	 // 8 strings to match.
   3935               switch (NameR[9]) {
   3936               default: break;
   3937               case 'o':	 // 5 strings to match.
   3938                 if (NameR.substr(10, 2) != "mi")
   3939                   break;
   3940                 switch (NameR[12]) {
   3941                 default: break;
   3942                 case 'e':	 // 1 string to match.
   3943                   if (NameR.substr(13, 4) != "q.sd")
   3944                     break;
   3945                   return Intrinsic::x86_sse2_comieq_sd;	 // "86.sse2.comieq.sd"
   3946                 case 'g':	 // 2 strings to match.
   3947                   switch (NameR[13]) {
   3948                   default: break;
   3949                   case 'e':	 // 1 string to match.
   3950                     if (NameR.substr(14, 3) != ".sd")
   3951                       break;
   3952                     return Intrinsic::x86_sse2_comige_sd;	 // "86.sse2.comige.sd"
   3953                   case 't':	 // 1 string to match.
   3954                     if (NameR.substr(14, 3) != ".sd")
   3955                       break;
   3956                     return Intrinsic::x86_sse2_comigt_sd;	 // "86.sse2.comigt.sd"
   3957                   }
   3958                   break;
   3959                 case 'l':	 // 2 strings to match.
   3960                   switch (NameR[13]) {
   3961                   default: break;
   3962                   case 'e':	 // 1 string to match.
   3963                     if (NameR.substr(14, 3) != ".sd")
   3964                       break;
   3965                     return Intrinsic::x86_sse2_comile_sd;	 // "86.sse2.comile.sd"
   3966                   case 't':	 // 1 string to match.
   3967                     if (NameR.substr(14, 3) != ".sd")
   3968                       break;
   3969                     return Intrinsic::x86_sse2_comilt_sd;	 // "86.sse2.comilt.sd"
   3970                   }
   3971                   break;
   3972                 }
   3973                 break;
   3974               case 'v':	 // 3 strings to match.
   3975                 if (NameR.substr(10, 2) != "tt")
   3976                   break;
   3977                 switch (NameR[12]) {
   3978                 default: break;
   3979                 case 'p':	 // 2 strings to match.
   3980                   switch (NameR[13]) {
   3981                   default: break;
   3982                   case 'd':	 // 1 string to match.
   3983                     if (NameR.substr(14, 3) != "2dq")
   3984                       break;
   3985                     return Intrinsic::x86_sse2_cvttpd2dq;	 // "86.sse2.cvttpd2dq"
   3986                   case 's':	 // 1 string to match.
   3987                     if (NameR.substr(14, 3) != "2dq")
   3988                       break;
   3989                     return Intrinsic::x86_sse2_cvttps2dq;	 // "86.sse2.cvttps2dq"
   3990                   }
   3991                   break;
   3992                 case 's':	 // 1 string to match.
   3993                   if (NameR.substr(13, 4) != "d2si")
   3994                     break;
   3995                   return Intrinsic::x86_sse2_cvttsd2si;	 // "86.sse2.cvttsd2si"
   3996                 }
   3997                 break;
   3998               }
   3999               break;
   4000             case 'm':	 // 1 string to match.
   4001               if (NameR.substr(9, 8) != "ovmsk.pd")
   4002                 break;
   4003               return Intrinsic::x86_sse2_movmsk_pd;	 // "86.sse2.movmsk.pd"
   4004             case 's':	 // 3 strings to match.
   4005               if (NameR.substr(9, 4) != "tore")
   4006                 break;
   4007               switch (NameR[13]) {
   4008               default: break;
   4009               case 'l':	 // 1 string to match.
   4010                 if (NameR.substr(14, 3) != ".dq")
   4011                   break;
   4012                 return Intrinsic::x86_sse2_storel_dq;	 // "86.sse2.storel.dq"
   4013               case 'u':	 // 2 strings to match.
   4014                 if (NameR[14] != '.')
   4015                   break;
   4016                 switch (NameR[15]) {
   4017                 default: break;
   4018                 case 'd':	 // 1 string to match.
   4019                   if (NameR[16] != 'q')
   4020                     break;
   4021                   return Intrinsic::x86_sse2_storeu_dq;	 // "86.sse2.storeu.dq"
   4022                 case 'p':	 // 1 string to match.
   4023                   if (NameR[16] != 'd')
   4024                     break;
   4025                   return Intrinsic::x86_sse2_storeu_pd;	 // "86.sse2.storeu.pd"
   4026                 }
   4027                 break;
   4028               }
   4029               break;
   4030             }
   4031             break;
   4032           case '3':	 // 2 strings to match.
   4033             if (NameR.substr(7, 9) != ".addsub.p")
   4034               break;
   4035             switch (NameR[16]) {
   4036             default: break;
   4037             case 'd':	 // 1 string to match.
   4038               return Intrinsic::x86_sse3_addsub_pd;	 // "86.sse3.addsub.pd"
   4039             case 's':	 // 1 string to match.
   4040               return Intrinsic::x86_sse3_addsub_ps;	 // "86.sse3.addsub.ps"
   4041             }
   4042             break;
   4043           case '4':	 // 23 strings to match.
   4044             if (NameR.substr(7, 2) != "1.")
   4045               break;
   4046             switch (NameR[9]) {
   4047             default: break;
   4048             case 'b':	 // 2 strings to match.
   4049               if (NameR.substr(10, 6) != "lendvp")
   4050                 break;
   4051               switch (NameR[16]) {
   4052               default: break;
   4053               case 'd':	 // 1 string to match.
   4054                 return Intrinsic::x86_sse41_blendvpd;	 // "86.sse41.blendvpd"
   4055               case 's':	 // 1 string to match.
   4056                 return Intrinsic::x86_sse41_blendvps;	 // "86.sse41.blendvps"
   4057               }
   4058               break;
   4059             case 'i':	 // 1 string to match.
   4060               if (NameR.substr(10, 7) != "nsertps")
   4061                 break;
   4062               return Intrinsic::x86_sse41_insertps;	 // "86.sse41.insertps"
   4063             case 'm':	 // 1 string to match.
   4064               if (NameR.substr(10, 7) != "ovntdqa")
   4065                 break;
   4066               return Intrinsic::x86_sse41_movntdqa;	 // "86.sse41.movntdqa"
   4067             case 'p':	 // 15 strings to match.
   4068               switch (NameR[10]) {
   4069               default: break;
   4070               case 'a':	 // 1 string to match.
   4071                 if (NameR.substr(11, 6) != "ckusdw")
   4072                   break;
   4073                 return Intrinsic::x86_sse41_packusdw;	 // "86.sse41.packusdw"
   4074               case 'b':	 // 1 string to match.
   4075                 if (NameR.substr(11, 6) != "lendvb")
   4076                   break;
   4077                 return Intrinsic::x86_sse41_pblendvb;	 // "86.sse41.pblendvb"
   4078               case 'm':	 // 12 strings to match.
   4079                 if (NameR.substr(11, 2) != "ov")
   4080                   break;
   4081                 switch (NameR[13]) {
   4082                 default: break;
   4083                 case 's':	 // 6 strings to match.
   4084                   if (NameR[14] != 'x')
   4085                     break;
   4086                   switch (NameR[15]) {
   4087                   default: break;
   4088                   case 'b':	 // 3 strings to match.
   4089                     switch (NameR[16]) {
   4090                     default: break;
   4091                     case 'd':	 // 1 string to match.
   4092                       return Intrinsic::x86_sse41_pmovsxbd;	 // "86.sse41.pmovsxbd"
   4093                     case 'q':	 // 1 string to match.
   4094                       return Intrinsic::x86_sse41_pmovsxbq;	 // "86.sse41.pmovsxbq"
   4095                     case 'w':	 // 1 string to match.
   4096                       return Intrinsic::x86_sse41_pmovsxbw;	 // "86.sse41.pmovsxbw"
   4097                     }
   4098                     break;
   4099                   case 'd':	 // 1 string to match.
   4100                     if (NameR[16] != 'q')
   4101                       break;
   4102                     return Intrinsic::x86_sse41_pmovsxdq;	 // "86.sse41.pmovsxdq"
   4103                   case 'w':	 // 2 strings to match.
   4104                     switch (NameR[16]) {
   4105                     default: break;
   4106                     case 'd':	 // 1 string to match.
   4107                       return Intrinsic::x86_sse41_pmovsxwd;	 // "86.sse41.pmovsxwd"
   4108                     case 'q':	 // 1 string to match.
   4109                       return Intrinsic::x86_sse41_pmovsxwq;	 // "86.sse41.pmovsxwq"
   4110                     }
   4111                     break;
   4112                   }
   4113                   break;
   4114                 case 'z':	 // 6 strings to match.
   4115                   if (NameR[14] != 'x')
   4116                     break;
   4117                   switch (NameR[15]) {
   4118                   default: break;
   4119                   case 'b':	 // 3 strings to match.
   4120                     switch (NameR[16]) {
   4121                     default: break;
   4122                     case 'd':	 // 1 string to match.
   4123                       return Intrinsic::x86_sse41_pmovzxbd;	 // "86.sse41.pmovzxbd"
   4124                     case 'q':	 // 1 string to match.
   4125                       return Intrinsic::x86_sse41_pmovzxbq;	 // "86.sse41.pmovzxbq"
   4126                     case 'w':	 // 1 string to match.
   4127                       return Intrinsic::x86_sse41_pmovzxbw;	 // "86.sse41.pmovzxbw"
   4128                     }
   4129                     break;
   4130                   case 'd':	 // 1 string to match.
   4131                     if (NameR[16] != 'q')
   4132                       break;
   4133                     return Intrinsic::x86_sse41_pmovzxdq;	 // "86.sse41.pmovzxdq"
   4134                   case 'w':	 // 2 strings to match.
   4135                     switch (NameR[16]) {
   4136                     default: break;
   4137                     case 'd':	 // 1 string to match.
   4138                       return Intrinsic::x86_sse41_pmovzxwd;	 // "86.sse41.pmovzxwd"
   4139                     case 'q':	 // 1 string to match.
   4140                       return Intrinsic::x86_sse41_pmovzxwq;	 // "86.sse41.pmovzxwq"
   4141                     }
   4142                     break;
   4143                   }
   4144                   break;
   4145                 }
   4146                 break;
   4147               case 't':	 // 1 string to match.
   4148                 if (NameR.substr(11, 6) != "estnzc")
   4149                   break;
   4150                 return Intrinsic::x86_sse41_ptestnzc;	 // "86.sse41.ptestnzc"
   4151               }
   4152               break;
   4153             case 'r':	 // 4 strings to match.
   4154               if (NameR.substr(10, 5) != "ound.")
   4155                 break;
   4156               switch (NameR[15]) {
   4157               default: break;
   4158               case 'p':	 // 2 strings to match.
   4159                 switch (NameR[16]) {
   4160                 default: break;
   4161                 case 'd':	 // 1 string to match.
   4162                   return Intrinsic::x86_sse41_round_pd;	 // "86.sse41.round.pd"
   4163                 case 's':	 // 1 string to match.
   4164                   return Intrinsic::x86_sse41_round_ps;	 // "86.sse41.round.ps"
   4165                 }
   4166                 break;
   4167               case 's':	 // 2 strings to match.
   4168                 switch (NameR[16]) {
   4169                 default: break;
   4170                 case 'd':	 // 1 string to match.
   4171                   return Intrinsic::x86_sse41_round_sd;	 // "86.sse41.round.sd"
   4172                 case 's':	 // 1 string to match.
   4173                   return Intrinsic::x86_sse41_round_ss;	 // "86.sse41.round.ss"
   4174                 }
   4175                 break;
   4176               }
   4177               break;
   4178             }
   4179             break;
   4180           }
   4181           break;
   4182         case 's':	 // 2 strings to match.
   4183           if (NameR.substr(6, 5) != "e3.ph")
   4184             break;
   4185           switch (NameR[11]) {
   4186           default: break;
   4187           case 'a':	 // 1 string to match.
   4188             if (NameR.substr(12, 5) != "dd.sw")
   4189               break;
   4190             return Intrinsic::x86_ssse3_phadd_sw;	 // "86.ssse3.phadd.sw"
   4191           case 's':	 // 1 string to match.
   4192             if (NameR.substr(12, 5) != "ub.sw")
   4193               break;
   4194             return Intrinsic::x86_ssse3_phsub_sw;	 // "86.ssse3.phsub.sw"
   4195           }
   4196           break;
   4197         }
   4198         break;
   4199       }
   4200       break;
   4201     case 18:	 // 23 strings to match.
   4202       if (NameR.substr(0, 3) != "86.")
   4203         break;
   4204       switch (NameR[3]) {
   4205       default: break;
   4206       case 'a':	 // 10 strings to match.
   4207         if (NameR.substr(4, 3) != "vx.")
   4208           break;
   4209         switch (NameR[7]) {
   4210         default: break;
   4211         case 'h':	 // 4 strings to match.
   4212           switch (NameR[8]) {
   4213           default: break;
   4214           case 'a':	 // 2 strings to match.
   4215             if (NameR.substr(9, 4) != "dd.p")
   4216               break;
   4217             switch (NameR[13]) {
   4218             default: break;
   4219             case 'd':	 // 1 string to match.
   4220               if (NameR.substr(14, 4) != ".256")
   4221                 break;
   4222               return Intrinsic::x86_avx_hadd_pd_256;	 // "86.avx.hadd.pd.256"
   4223             case 's':	 // 1 string to match.
   4224               if (NameR.substr(14, 4) != ".256")
   4225                 break;
   4226               return Intrinsic::x86_avx_hadd_ps_256;	 // "86.avx.hadd.ps.256"
   4227             }
   4228             break;
   4229           case 's':	 // 2 strings to match.
   4230             if (NameR.substr(9, 4) != "ub.p")
   4231               break;
   4232             switch (NameR[13]) {
   4233             default: break;
   4234             case 'd':	 // 1 string to match.
   4235               if (NameR.substr(14, 4) != ".256")
   4236                 break;
   4237               return Intrinsic::x86_avx_hsub_pd_256;	 // "86.avx.hsub.pd.256"
   4238             case 's':	 // 1 string to match.
   4239               if (NameR.substr(14, 4) != ".256")
   4240                 break;
   4241               return Intrinsic::x86_avx_hsub_ps_256;	 // "86.avx.hsub.ps.256"
   4242             }
   4243             break;
   4244           }
   4245           break;
   4246         case 'm':	 // 2 strings to match.
   4247           if (NameR.substr(8, 9) != "askload.p")
   4248             break;
   4249           switch (NameR[17]) {
   4250           default: break;
   4251           case 'd':	 // 1 string to match.
   4252             return Intrinsic::x86_avx_maskload_pd;	 // "86.avx.maskload.pd"
   4253           case 's':	 // 1 string to match.
   4254             return Intrinsic::x86_avx_maskload_ps;	 // "86.avx.maskload.ps"
   4255           }
   4256           break;
   4257         case 's':	 // 2 strings to match.
   4258           if (NameR.substr(8, 5) != "qrt.p")
   4259             break;
   4260           switch (NameR[13]) {
   4261           default: break;
   4262           case 'd':	 // 1 string to match.
   4263             if (NameR.substr(14, 4) != ".256")
   4264               break;
   4265             return Intrinsic::x86_avx_sqrt_pd_256;	 // "86.avx.sqrt.pd.256"
   4266           case 's':	 // 1 string to match.
   4267             if (NameR.substr(14, 4) != ".256")
   4268               break;
   4269             return Intrinsic::x86_avx_sqrt_ps_256;	 // "86.avx.sqrt.ps.256"
   4270           }
   4271           break;
   4272         case 'v':	 // 2 strings to match.
   4273           if (NameR.substr(8, 9) != "testnzc.p")
   4274             break;
   4275           switch (NameR[17]) {
   4276           default: break;
   4277           case 'd':	 // 1 string to match.
   4278             return Intrinsic::x86_avx_vtestnzc_pd;	 // "86.avx.vtestnzc.pd"
   4279           case 's':	 // 1 string to match.
   4280             return Intrinsic::x86_avx_vtestnzc_ps;	 // "86.avx.vtestnzc.ps"
   4281           }
   4282           break;
   4283         }
   4284         break;
   4285       case 's':	 // 13 strings to match.
   4286         if (NameR.substr(4, 2) != "se")
   4287           break;
   4288         switch (NameR[6]) {
   4289         default: break;
   4290         case '.':	 // 2 strings to match.
   4291           switch (NameR[7]) {
   4292           default: break;
   4293           case 'c':	 // 1 string to match.
   4294             if (NameR.substr(8, 10) != "vttss2si64")
   4295               break;
   4296             return Intrinsic::x86_sse_cvttss2si64;	 // "86.sse.cvttss2si64"
   4297           case 'u':	 // 1 string to match.
   4298             if (NameR.substr(8, 10) != "comineq.ss")
   4299               break;
   4300             return Intrinsic::x86_sse_ucomineq_ss;	 // "86.sse.ucomineq.ss"
   4301           }
   4302           break;
   4303         case '2':	 // 10 strings to match.
   4304           if (NameR[7] != '.')
   4305             break;
   4306           switch (NameR[8]) {
   4307           default: break;
   4308           case 'c':	 // 3 strings to match.
   4309             switch (NameR[9]) {
   4310             default: break;
   4311             case 'o':	 // 1 string to match.
   4312               if (NameR.substr(10, 8) != "mineq.sd")
   4313                 break;
   4314               return Intrinsic::x86_sse2_comineq_sd;	 // "86.sse2.comineq.sd"
   4315             case 'v':	 // 2 strings to match.
   4316               if (NameR.substr(10, 2) != "ts")
   4317                 break;
   4318               switch (NameR[12]) {
   4319               default: break;
   4320               case 'd':	 // 1 string to match.
   4321                 if (NameR.substr(13, 5) != "2si64")
   4322                   break;
   4323                 return Intrinsic::x86_sse2_cvtsd2si64;	 // "86.sse2.cvtsd2si64"
   4324               case 'i':	 // 1 string to match.
   4325                 if (NameR.substr(13, 5) != "642sd")
   4326                   break;
   4327                 return Intrinsic::x86_sse2_cvtsi642sd;	 // "86.sse2.cvtsi642sd"
   4328               }
   4329               break;
   4330             }
   4331             break;
   4332           case 'p':	 // 2 strings to match.
   4333             if (NameR[9] != 's')
   4334               break;
   4335             switch (NameR[10]) {
   4336             default: break;
   4337             case 'l':	 // 1 string to match.
   4338               if (NameR.substr(11, 7) != "l.dq.bs")
   4339                 break;
   4340               return Intrinsic::x86_sse2_psll_dq_bs;	 // "86.sse2.psll.dq.bs"
   4341             case 'r':	 // 1 string to match.
   4342               if (NameR.substr(11, 7) != "l.dq.bs")
   4343                 break;
   4344               return Intrinsic::x86_sse2_psrl_dq_bs;	 // "86.sse2.psrl.dq.bs"
   4345             }
   4346             break;
   4347           case 'u':	 // 5 strings to match.
   4348             if (NameR.substr(9, 4) != "comi")
   4349               break;
   4350             switch (NameR[13]) {
   4351             default: break;
   4352             case 'e':	 // 1 string to match.
   4353               if (NameR.substr(14, 4) != "q.sd")
   4354                 break;
   4355               return Intrinsic::x86_sse2_ucomieq_sd;	 // "86.sse2.ucomieq.sd"
   4356             case 'g':	 // 2 strings to match.
   4357               switch (NameR[14]) {
   4358               default: break;
   4359               case 'e':	 // 1 string to match.
   4360                 if (NameR.substr(15, 3) != ".sd")
   4361                   break;
   4362                 return Intrinsic::x86_sse2_ucomige_sd;	 // "86.sse2.ucomige.sd"
   4363               case 't':	 // 1 string to match.
   4364                 if (NameR.substr(15, 3) != ".sd")
   4365                   break;
   4366                 return Intrinsic::x86_sse2_ucomigt_sd;	 // "86.sse2.ucomigt.sd"
   4367               }
   4368               break;
   4369             case 'l':	 // 2 strings to match.
   4370               switch (NameR[14]) {
   4371               default: break;
   4372               case 'e':	 // 1 string to match.
   4373                 if (NameR.substr(15, 3) != ".sd")
   4374                   break;
   4375                 return Intrinsic::x86_sse2_ucomile_sd;	 // "86.sse2.ucomile.sd"
   4376               case 't':	 // 1 string to match.
   4377                 if (NameR.substr(15, 3) != ".sd")
   4378                   break;
   4379                 return Intrinsic::x86_sse2_ucomilt_sd;	 // "86.sse2.ucomilt.sd"
   4380               }
   4381               break;
   4382             }
   4383             break;
   4384           }
   4385           break;
   4386         case '4':	 // 1 string to match.
   4387           if (NameR.substr(7, 11) != "1.extractps")
   4388             break;
   4389           return Intrinsic::x86_sse41_extractps;	 // "86.sse41.extractps"
   4390         }
   4391         break;
   4392       }
   4393       break;
   4394     case 19:	 // 27 strings to match.
   4395       if (NameR.substr(0, 3) != "86.")
   4396         break;
   4397       switch (NameR[3]) {
   4398       default: break;
   4399       case 'a':	 // 17 strings to match.
   4400         switch (NameR[4]) {
   4401         default: break;
   4402         case 'e':	 // 2 strings to match.
   4403           if (NameR.substr(5, 7) != "sni.aes")
   4404             break;
   4405           switch (NameR[12]) {
   4406           default: break;
   4407           case 'd':	 // 1 string to match.
   4408             if (NameR.substr(13, 6) != "eclast")
   4409               break;
   4410             return Intrinsic::x86_aesni_aesdeclast;	 // "86.aesni.aesdeclast"
   4411           case 'e':	 // 1 string to match.
   4412             if (NameR.substr(13, 6) != "nclast")
   4413               break;
   4414             return Intrinsic::x86_aesni_aesenclast;	 // "86.aesni.aesenclast"
   4415           }
   4416           break;
   4417         case 'v':	 // 15 strings to match.
   4418           if (NameR.substr(5, 2) != "x.")
   4419             break;
   4420           switch (NameR[7]) {
   4421           default: break;
   4422           case 'b':	 // 2 strings to match.
   4423             if (NameR.substr(8, 6) != "lend.p")
   4424               break;
   4425             switch (NameR[14]) {
   4426             default: break;
   4427             case 'd':	 // 1 string to match.
   4428               if (NameR.substr(15, 4) != ".256")
   4429                 break;
   4430               return Intrinsic::x86_avx_blend_pd_256;	 // "86.avx.blend.pd.256"
   4431             case 's':	 // 1 string to match.
   4432               if (NameR.substr(15, 4) != ".256")
   4433                 break;
   4434               return Intrinsic::x86_avx_blend_ps_256;	 // "86.avx.blend.ps.256"
   4435             }
   4436             break;
   4437           case 'l':	 // 3 strings to match.
   4438             if (NameR.substr(8, 5) != "oadu.")
   4439               break;
   4440             switch (NameR[13]) {
   4441             default: break;
   4442             case 'd':	 // 1 string to match.
   4443               if (NameR.substr(14, 5) != "q.256")
   4444                 break;
   4445               return Intrinsic::x86_avx_loadu_dq_256;	 // "86.avx.loadu.dq.256"
   4446             case 'p':	 // 2 strings to match.
   4447               switch (NameR[14]) {
   4448               default: break;
   4449               case 'd':	 // 1 string to match.
   4450                 if (NameR.substr(15, 4) != ".256")
   4451                   break;
   4452                 return Intrinsic::x86_avx_loadu_pd_256;	 // "86.avx.loadu.pd.256"
   4453               case 's':	 // 1 string to match.
   4454                 if (NameR.substr(15, 4) != ".256")
   4455                   break;
   4456                 return Intrinsic::x86_avx_loadu_ps_256;	 // "86.avx.loadu.ps.256"
   4457               }
   4458               break;
   4459             }
   4460             break;
   4461           case 'm':	 // 5 strings to match.
   4462             switch (NameR[8]) {
   4463             default: break;
   4464             case 'a':	 // 2 strings to match.
   4465               if (NameR.substr(9, 9) != "skstore.p")
   4466                 break;
   4467               switch (NameR[18]) {
   4468               default: break;
   4469               case 'd':	 // 1 string to match.
   4470                 return Intrinsic::x86_avx_maskstore_pd;	 // "86.avx.maskstore.pd"
   4471               case 's':	 // 1 string to match.
   4472                 return Intrinsic::x86_avx_maskstore_ps;	 // "86.avx.maskstore.ps"
   4473               }
   4474               break;
   4475             case 'o':	 // 3 strings to match.
   4476               if (NameR.substr(9, 4) != "vnt.")
   4477                 break;
   4478               switch (NameR[13]) {
   4479               default: break;
   4480               case 'd':	 // 1 string to match.
   4481                 if (NameR.substr(14, 5) != "q.256")
   4482                   break;
   4483                 return Intrinsic::x86_avx_movnt_dq_256;	 // "86.avx.movnt.dq.256"
   4484               case 'p':	 // 2 strings to match.
   4485                 switch (NameR[14]) {
   4486                 default: break;
   4487                 case 'd':	 // 1 string to match.
   4488                   if (NameR.substr(15, 4) != ".256")
   4489                     break;
   4490                   return Intrinsic::x86_avx_movnt_pd_256;	 // "86.avx.movnt.pd.256"
   4491                 case 's':	 // 1 string to match.
   4492                   if (NameR.substr(15, 4) != ".256")
   4493                     break;
   4494                   return Intrinsic::x86_avx_movnt_ps_256;	 // "86.avx.movnt.ps.256"
   4495                 }
   4496                 break;
   4497               }
   4498               break;
   4499             }
   4500             break;
   4501           case 'p':	 // 1 string to match.
   4502             if (NameR.substr(8, 11) != "testnzc.256")
   4503               break;
   4504             return Intrinsic::x86_avx_ptestnzc_256;	 // "86.avx.ptestnzc.256"
   4505           case 'r':	 // 3 strings to match.
   4506             switch (NameR[8]) {
   4507             default: break;
   4508             case 'o':	 // 2 strings to match.
   4509               if (NameR.substr(9, 5) != "und.p")
   4510                 break;
   4511               switch (NameR[14]) {
   4512               default: break;
   4513               case 'd':	 // 1 string to match.
   4514                 if (NameR.substr(15, 4) != ".256")
   4515                   break;
   4516                 return Intrinsic::x86_avx_round_pd_256;	 // "86.avx.round.pd.256"
   4517               case 's':	 // 1 string to match.
   4518                 if (NameR.substr(15, 4) != ".256")
   4519                   break;
   4520                 return Intrinsic::x86_avx_round_ps_256;	 // "86.avx.round.ps.256"
   4521               }
   4522               break;
   4523             case 's':	 // 1 string to match.
   4524               if (NameR.substr(9, 10) != "qrt.ps.256")
   4525                 break;
   4526               return Intrinsic::x86_avx_rsqrt_ps_256;	 // "86.avx.rsqrt.ps.256"
   4527             }
   4528             break;
   4529           case 'v':	 // 1 string to match.
   4530             if (NameR.substr(8, 11) != "broadcastss")
   4531               break;
   4532             return Intrinsic::x86_avx_vbroadcastss;	 // "86.avx.vbroadcastss"
   4533           }
   4534           break;
   4535         }
   4536         break;
   4537       case 's':	 // 10 strings to match.
   4538         if (NameR[4] != 's')
   4539           break;
   4540         switch (NameR[5]) {
   4541         default: break;
   4542         case 'e':	 // 6 strings to match.
   4543           switch (NameR[6]) {
   4544           default: break;
   4545           case '2':	 // 3 strings to match.
   4546             if (NameR[7] != '.')
   4547               break;
   4548             switch (NameR[8]) {
   4549             default: break;
   4550             case 'c':	 // 1 string to match.
   4551               if (NameR.substr(9, 10) != "vttsd2si64")
   4552                 break;
   4553               return Intrinsic::x86_sse2_cvttsd2si64;	 // "86.sse2.cvttsd2si64"
   4554             case 'm':	 // 1 string to match.
   4555               if (NameR.substr(9, 10) != "askmov.dqu")
   4556                 break;
   4557               return Intrinsic::x86_sse2_maskmov_dqu;	 // "86.sse2.maskmov.dqu"
   4558             case 'u':	 // 1 string to match.
   4559               if (NameR.substr(9, 10) != "comineq.sd")
   4560                 break;
   4561               return Intrinsic::x86_sse2_ucomineq_sd;	 // "86.sse2.ucomineq.sd"
   4562             }
   4563             break;
   4564           case '4':	 // 3 strings to match.
   4565             switch (NameR[7]) {
   4566             default: break;
   4567             case '1':	 // 1 string to match.
   4568               if (NameR.substr(8, 11) != ".phminposuw")
   4569                 break;
   4570               return Intrinsic::x86_sse41_phminposuw;	 // "86.sse41.phminposuw"
   4571             case '2':	 // 2 strings to match.
   4572               if (NameR.substr(8, 7) != ".crc32.")
   4573                 break;
   4574               switch (NameR[15]) {
   4575               default: break;
   4576               case '3':	 // 1 string to match.
   4577                 if (NameR.substr(16, 3) != "2.8")
   4578                   break;
   4579                 return Intrinsic::x86_sse42_crc32_32_8;	 // "86.sse42.crc32.32.8"
   4580               case '6':	 // 1 string to match.
   4581                 if (NameR.substr(16, 3) != "4.8")
   4582                   break;
   4583                 return Intrinsic::x86_sse42_crc32_64_8;	 // "86.sse42.crc32.64.8"
   4584               }
   4585               break;
   4586             }
   4587             break;
   4588           }
   4589           break;
   4590         case 's':	 // 4 strings to match.
   4591           if (NameR.substr(6, 4) != "e3.p")
   4592             break;
   4593           switch (NameR[10]) {
   4594           default: break;
   4595           case 'a':	 // 3 strings to match.
   4596             if (NameR.substr(11, 3) != "bs.")
   4597               break;
   4598             switch (NameR[14]) {
   4599             default: break;
   4600             case 'b':	 // 1 string to match.
   4601               if (NameR.substr(15, 4) != ".128")
   4602                 break;
   4603               return Intrinsic::x86_ssse3_pabs_b_128;	 // "86.ssse3.pabs.b.128"
   4604             case 'd':	 // 1 string to match.
   4605               if (NameR.substr(15, 4) != ".128")
   4606                 break;
   4607               return Intrinsic::x86_ssse3_pabs_d_128;	 // "86.ssse3.pabs.d.128"
   4608             case 'w':	 // 1 string to match.
   4609               if (NameR.substr(15, 4) != ".128")
   4610                 break;
   4611               return Intrinsic::x86_ssse3_pabs_w_128;	 // "86.ssse3.pabs.w.128"
   4612             }
   4613             break;
   4614           case 'm':	 // 1 string to match.
   4615             if (NameR.substr(11, 8) != "ul.hr.sw")
   4616               break;
   4617             return Intrinsic::x86_ssse3_pmul_hr_sw;	 // "86.ssse3.pmul.hr.sw"
   4618           }
   4619           break;
   4620         }
   4621         break;
   4622       }
   4623       break;
   4624     case 20:	 // 35 strings to match.
   4625       if (NameR.substr(0, 3) != "86.")
   4626         break;
   4627       switch (NameR[3]) {
   4628       default: break;
   4629       case 'a':	 // 19 strings to match.
   4630         if (NameR.substr(4, 3) != "vx.")
   4631           break;
   4632         switch (NameR[7]) {
   4633         default: break;
   4634         case 'a':	 // 2 strings to match.
   4635           if (NameR.substr(8, 7) != "ddsub.p")
   4636             break;
   4637           switch (NameR[15]) {
   4638           default: break;
   4639           case 'd':	 // 1 string to match.
   4640             if (NameR.substr(16, 4) != ".256")
   4641               break;
   4642             return Intrinsic::x86_avx_addsub_pd_256;	 // "86.avx.addsub.pd.256"
   4643           case 's':	 // 1 string to match.
   4644             if (NameR.substr(16, 4) != ".256")
   4645               break;
   4646             return Intrinsic::x86_avx_addsub_ps_256;	 // "86.avx.addsub.ps.256"
   4647           }
   4648           break;
   4649         case 'b':	 // 2 strings to match.
   4650           if (NameR.substr(8, 7) != "lendv.p")
   4651             break;
   4652           switch (NameR[15]) {
   4653           default: break;
   4654           case 'd':	 // 1 string to match.
   4655             if (NameR.substr(16, 4) != ".256")
   4656               break;
   4657             return Intrinsic::x86_avx_blendv_pd_256;	 // "86.avx.blendv.pd.256"
   4658           case 's':	 // 1 string to match.
   4659             if (NameR.substr(16, 4) != ".256")
   4660               break;
   4661             return Intrinsic::x86_avx_blendv_ps_256;	 // "86.avx.blendv.ps.256"
   4662           }
   4663           break;
   4664         case 'c':	 // 4 strings to match.
   4665           if (NameR.substr(8, 2) != "vt")
   4666             break;
   4667           switch (NameR[10]) {
   4668           default: break;
   4669           case '.':	 // 2 strings to match.
   4670             if (NameR[11] != 'p')
   4671               break;
   4672             switch (NameR[12]) {
   4673             default: break;
   4674             case 'd':	 // 1 string to match.
   4675               if (NameR.substr(13, 7) != "2dq.256")
   4676                 break;
   4677               return Intrinsic::x86_avx_cvt_pd2dq_256;	 // "86.avx.cvt.pd2dq.256"
   4678             case 's':	 // 1 string to match.
   4679               if (NameR.substr(13, 7) != "2dq.256")
   4680                 break;
   4681               return Intrinsic::x86_avx_cvt_ps2dq_256;	 // "86.avx.cvt.ps2dq.256"
   4682             }
   4683             break;
   4684           case 'd':	 // 2 strings to match.
   4685             if (NameR.substr(11, 4) != "q2.p")
   4686               break;
   4687             switch (NameR[15]) {
   4688             default: break;
   4689             case 'd':	 // 1 string to match.
   4690               if (NameR.substr(16, 4) != ".256")
   4691                 break;
   4692               return Intrinsic::x86_avx_cvtdq2_pd_256;	 // "86.avx.cvtdq2.pd.256"
   4693             case 's':	 // 1 string to match.
   4694               if (NameR.substr(16, 4) != ".256")
   4695                 break;
   4696               return Intrinsic::x86_avx_cvtdq2_ps_256;	 // "86.avx.cvtdq2.ps.256"
   4697             }
   4698             break;
   4699           }
   4700           break;
   4701         case 'm':	 // 2 strings to match.
   4702           if (NameR.substr(8, 7) != "ovmsk.p")
   4703             break;
   4704           switch (NameR[15]) {
   4705           default: break;
   4706           case 'd':	 // 1 string to match.
   4707             if (NameR.substr(16, 4) != ".256")
   4708               break;
   4709             return Intrinsic::x86_avx_movmsk_pd_256;	 // "86.avx.movmsk.pd.256"
   4710           case 's':	 // 1 string to match.
   4711             if (NameR.substr(16, 4) != ".256")
   4712               break;
   4713             return Intrinsic::x86_avx_movmsk_ps_256;	 // "86.avx.movmsk.ps.256"
   4714           }
   4715           break;
   4716         case 's':	 // 3 strings to match.
   4717           if (NameR.substr(8, 6) != "toreu.")
   4718             break;
   4719           switch (NameR[14]) {
   4720           default: break;
   4721           case 'd':	 // 1 string to match.
   4722             if (NameR.substr(15, 5) != "q.256")
   4723               break;
   4724             return Intrinsic::x86_avx_storeu_dq_256;	 // "86.avx.storeu.dq.256"
   4725           case 'p':	 // 2 strings to match.
   4726             switch (NameR[15]) {
   4727             default: break;
   4728             case 'd':	 // 1 string to match.
   4729               if (NameR.substr(16, 4) != ".256")
   4730                 break;
   4731               return Intrinsic::x86_avx_storeu_pd_256;	 // "86.avx.storeu.pd.256"
   4732             case 's':	 // 1 string to match.
   4733               if (NameR.substr(16, 4) != ".256")
   4734                 break;
   4735               return Intrinsic::x86_avx_storeu_ps_256;	 // "86.avx.storeu.ps.256"
   4736             }
   4737             break;
   4738           }
   4739           break;
   4740         case 'v':	 // 6 strings to match.
   4741           switch (NameR[8]) {
   4742           default: break;
   4743           case 'p':	 // 2 strings to match.
   4744             if (NameR.substr(9, 10) != "ermilvar.p")
   4745               break;
   4746             switch (NameR[19]) {
   4747             default: break;
   4748             case 'd':	 // 1 string to match.
   4749               return Intrinsic::x86_avx_vpermilvar_pd;	 // "86.avx.vpermilvar.pd"
   4750             case 's':	 // 1 string to match.
   4751               return Intrinsic::x86_avx_vpermilvar_ps;	 // "86.avx.vpermilvar.ps"
   4752             }
   4753             break;
   4754           case 't':	 // 4 strings to match.
   4755             if (NameR.substr(9, 3) != "est")
   4756               break;
   4757             switch (NameR[12]) {
   4758             default: break;
   4759             case 'c':	 // 2 strings to match.
   4760               if (NameR.substr(13, 2) != ".p")
   4761                 break;
   4762               switch (NameR[15]) {
   4763               default: break;
   4764               case 'd':	 // 1 string to match.
   4765                 if (NameR.substr(16, 4) != ".256")
   4766                   break;
   4767                 return Intrinsic::x86_avx_vtestc_pd_256;	 // "86.avx.vtestc.pd.256"
   4768               case 's':	 // 1 string to match.
   4769                 if (NameR.substr(16, 4) != ".256")
   4770                   break;
   4771                 return Intrinsic::x86_avx_vtestc_ps_256;	 // "86.avx.vtestc.ps.256"
   4772               }
   4773               break;
   4774             case 'z':	 // 2 strings to match.
   4775               if (NameR.substr(13, 2) != ".p")
   4776                 break;
   4777               switch (NameR[15]) {
   4778               default: break;
   4779               case 'd':	 // 1 string to match.
   4780                 if (NameR.substr(16, 4) != ".256")
   4781                   break;
   4782                 return Intrinsic::x86_avx_vtestz_pd_256;	 // "86.avx.vtestz.pd.256"
   4783               case 's':	 // 1 string to match.
   4784                 if (NameR.substr(16, 4) != ".256")
   4785                   break;
   4786                 return Intrinsic::x86_avx_vtestz_ps_256;	 // "86.avx.vtestz.ps.256"
   4787               }
   4788               break;
   4789             }
   4790             break;
   4791           }
   4792           break;
   4793         }
   4794         break;
   4795       case 's':	 // 16 strings to match.
   4796         if (NameR[4] != 's')
   4797           break;
   4798         switch (NameR[5]) {
   4799         default: break;
   4800         case 'e':	 // 7 strings to match.
   4801           switch (NameR[6]) {
   4802           default: break;
   4803           case '2':	 // 4 strings to match.
   4804             if (NameR.substr(7, 2) != ".p")
   4805               break;
   4806             switch (NameR[9]) {
   4807             default: break;
   4808             case 'a':	 // 3 strings to match.
   4809               if (NameR.substr(10, 2) != "ck")
   4810                 break;
   4811               switch (NameR[12]) {
   4812               default: break;
   4813               case 's':	 // 2 strings to match.
   4814                 if (NameR[13] != 's')
   4815                   break;
   4816                 switch (NameR[14]) {
   4817                 default: break;
   4818                 case 'd':	 // 1 string to match.
   4819                   if (NameR.substr(15, 5) != "w.128")
   4820                     break;
   4821                   return Intrinsic::x86_sse2_packssdw_128;	 // "86.sse2.packssdw.128"
   4822                 case 'w':	 // 1 string to match.
   4823                   if (NameR.substr(15, 5) != "b.128")
   4824                     break;
   4825                   return Intrinsic::x86_sse2_packsswb_128;	 // "86.sse2.packsswb.128"
   4826                 }
   4827                 break;
   4828               case 'u':	 // 1 string to match.
   4829                 if (NameR.substr(13, 7) != "swb.128")
   4830                   break;
   4831                 return Intrinsic::x86_sse2_packuswb_128;	 // "86.sse2.packuswb.128"
   4832               }
   4833               break;
   4834             case 'm':	 // 1 string to match.
   4835               if (NameR.substr(10, 10) != "ovmskb.128")
   4836                 break;
   4837               return Intrinsic::x86_sse2_pmovmskb_128;	 // "86.sse2.pmovmskb.128"
   4838             }
   4839             break;
   4840           case '4':	 // 3 strings to match.
   4841             if (NameR.substr(7, 8) != "2.crc32.")
   4842               break;
   4843             switch (NameR[15]) {
   4844             default: break;
   4845             case '3':	 // 2 strings to match.
   4846               if (NameR.substr(16, 2) != "2.")
   4847                 break;
   4848               switch (NameR[18]) {
   4849               default: break;
   4850               case '1':	 // 1 string to match.
   4851                 if (NameR[19] != '6')
   4852                   break;
   4853                 return Intrinsic::x86_sse42_crc32_32_16;	 // "86.sse42.crc32.32.16"
   4854               case '3':	 // 1 string to match.
   4855                 if (NameR[19] != '2')
   4856                   break;
   4857                 return Intrinsic::x86_sse42_crc32_32_32;	 // "86.sse42.crc32.32.32"
   4858               }
   4859               break;
   4860             case '6':	 // 1 string to match.
   4861               if (NameR.substr(16, 4) != "4.64")
   4862                 break;
   4863               return Intrinsic::x86_sse42_crc32_64_64;	 // "86.sse42.crc32.64.64"
   4864             }
   4865             break;
   4866           }
   4867           break;
   4868         case 's':	 // 9 strings to match.
   4869           if (NameR.substr(6, 4) != "e3.p")
   4870             break;
   4871           switch (NameR[10]) {
   4872           default: break;
   4873           case 'h':	 // 4 strings to match.
   4874             switch (NameR[11]) {
   4875             default: break;
   4876             case 'a':	 // 2 strings to match.
   4877               if (NameR.substr(12, 3) != "dd.")
   4878                 break;
   4879               switch (NameR[15]) {
   4880               default: break;
   4881               case 'd':	 // 1 string to match.
   4882                 if (NameR.substr(16, 4) != ".128")
   4883                   break;
   4884                 return Intrinsic::x86_ssse3_phadd_d_128;	 // "86.ssse3.phadd.d.128"
   4885               case 'w':	 // 1 string to match.
   4886                 if (NameR.substr(16, 4) != ".128")
   4887                   break;
   4888                 return Intrinsic::x86_ssse3_phadd_w_128;	 // "86.ssse3.phadd.w.128"
   4889               }
   4890               break;
   4891             case 's':	 // 2 strings to match.
   4892               if (NameR.substr(12, 3) != "ub.")
   4893                 break;
   4894               switch (NameR[15]) {
   4895               default: break;
   4896               case 'd':	 // 1 string to match.
   4897                 if (NameR.substr(16, 4) != ".128")
   4898                   break;
   4899                 return Intrinsic::x86_ssse3_phsub_d_128;	 // "86.ssse3.phsub.d.128"
   4900               case 'w':	 // 1 string to match.
   4901                 if (NameR.substr(16, 4) != ".128")
   4902                   break;
   4903                 return Intrinsic::x86_ssse3_phsub_w_128;	 // "86.ssse3.phsub.w.128"
   4904               }
   4905               break;
   4906             }
   4907             break;
   4908           case 'm':	 // 1 string to match.
   4909             if (NameR.substr(11, 9) != "add.ub.sw")
   4910               break;
   4911             return Intrinsic::x86_ssse3_pmadd_ub_sw;	 // "86.ssse3.pmadd.ub.sw"
   4912           case 's':	 // 4 strings to match.
   4913             switch (NameR[11]) {
   4914             default: break;
   4915             case 'h':	 // 1 string to match.
   4916               if (NameR.substr(12, 8) != "uf.b.128")
   4917                 break;
   4918               return Intrinsic::x86_ssse3_pshuf_b_128;	 // "86.ssse3.pshuf.b.128"
   4919             case 'i':	 // 3 strings to match.
   4920               if (NameR.substr(12, 3) != "gn.")
   4921                 break;
   4922               switch (NameR[15]) {
   4923               default: break;
   4924               case 'b':	 // 1 string to match.
   4925                 if (NameR.substr(16, 4) != ".128")
   4926                   break;
   4927                 return Intrinsic::x86_ssse3_psign_b_128;	 // "86.ssse3.psign.b.128"
   4928               case 'd':	 // 1 string to match.
   4929                 if (NameR.substr(16, 4) != ".128")
   4930                   break;
   4931                 return Intrinsic::x86_ssse3_psign_d_128;	 // "86.ssse3.psign.d.128"
   4932               case 'w':	 // 1 string to match.
   4933                 if (NameR.substr(16, 4) != ".128")
   4934                   break;
   4935                 return Intrinsic::x86_ssse3_psign_w_128;	 // "86.ssse3.psign.w.128"
   4936               }
   4937               break;
   4938             }
   4939             break;
   4940           }
   4941           break;
   4942         }
   4943         break;
   4944       }
   4945       break;
   4946     case 21:	 // 12 strings to match.
   4947       if (NameR.substr(0, 3) != "86.")
   4948         break;
   4949       switch (NameR[3]) {
   4950       default: break;
   4951       case 'a':	 // 6 strings to match.
   4952         if (NameR.substr(4, 3) != "vx.")
   4953           break;
   4954         switch (NameR[7]) {
   4955         default: break;
   4956         case 'c':	 // 4 strings to match.
   4957           if (NameR.substr(8, 2) != "vt")
   4958             break;
   4959           switch (NameR[10]) {
   4960           default: break;
   4961           case '.':	 // 2 strings to match.
   4962             if (NameR[11] != 'p')
   4963               break;
   4964             switch (NameR[12]) {
   4965             default: break;
   4966             case 'd':	 // 1 string to match.
   4967               if (NameR.substr(13, 8) != "2.ps.256")
   4968                 break;
   4969               return Intrinsic::x86_avx_cvt_pd2_ps_256;	 // "86.avx.cvt.pd2.ps.256"
   4970             case 's':	 // 1 string to match.
   4971               if (NameR.substr(13, 8) != "2.pd.256")
   4972                 break;
   4973               return Intrinsic::x86_avx_cvt_ps2_pd_256;	 // "86.avx.cvt.ps2.pd.256"
   4974             }
   4975             break;
   4976           case 't':	 // 2 strings to match.
   4977             if (NameR.substr(11, 2) != ".p")
   4978               break;
   4979             switch (NameR[13]) {
   4980             default: break;
   4981             case 'd':	 // 1 string to match.
   4982               if (NameR.substr(14, 7) != "2dq.256")
   4983                 break;
   4984               return Intrinsic::x86_avx_cvtt_pd2dq_256;	 // "86.avx.cvtt.pd2dq.256"
   4985             case 's':	 // 1 string to match.
   4986               if (NameR.substr(14, 7) != "2dq.256")
   4987                 break;
   4988               return Intrinsic::x86_avx_cvtt_ps2dq_256;	 // "86.avx.cvtt.ps2dq.256"
   4989             }
   4990             break;
   4991           }
   4992           break;
   4993         case 'v':	 // 2 strings to match.
   4994           if (NameR.substr(8, 8) != "permil.p")
   4995             break;
   4996           switch (NameR[16]) {
   4997           default: break;
   4998           case 'd':	 // 1 string to match.
   4999             if (NameR.substr(17, 4) != ".256")
   5000               break;
   5001             return Intrinsic::x86_avx_vpermil_pd_256;	 // "86.avx.vpermil.pd.256"
   5002           case 's':	 // 1 string to match.
   5003             if (NameR.substr(17, 4) != ".256")
   5004               break;
   5005             return Intrinsic::x86_avx_vpermil_ps_256;	 // "86.avx.vpermil.ps.256"
   5006           }
   5007           break;
   5008         }
   5009         break;
   5010       case 's':	 // 6 strings to match.
   5011         if (NameR[4] != 's')
   5012           break;
   5013         switch (NameR[5]) {
   5014         default: break;
   5015         case 'e':	 // 4 strings to match.
   5016           if (NameR.substr(6, 7) != "42.pcmp")
   5017             break;
   5018           switch (NameR[13]) {
   5019           default: break;
   5020           case 'e':	 // 2 strings to match.
   5021             if (NameR.substr(14, 3) != "str")
   5022               break;
   5023             switch (NameR[17]) {
   5024             default: break;
   5025             case 'i':	 // 1 string to match.
   5026               if (NameR.substr(18, 3) != "128")
   5027                 break;
   5028               return Intrinsic::x86_sse42_pcmpestri128;	 // "86.sse42.pcmpestri128"
   5029             case 'm':	 // 1 string to match.
   5030               if (NameR.substr(18, 3) != "128")
   5031                 break;
   5032               return Intrinsic::x86_sse42_pcmpestrm128;	 // "86.sse42.pcmpestrm128"
   5033             }
   5034             break;
   5035           case 'i':	 // 2 strings to match.
   5036             if (NameR.substr(14, 3) != "str")
   5037               break;
   5038             switch (NameR[17]) {
   5039             default: break;
   5040             case 'i':	 // 1 string to match.
   5041               if (NameR.substr(18, 3) != "128")
   5042                 break;
   5043               return Intrinsic::x86_sse42_pcmpistri128;	 // "86.sse42.pcmpistri128"
   5044             case 'm':	 // 1 string to match.
   5045               if (NameR.substr(18, 3) != "128")
   5046                 break;
   5047               return Intrinsic::x86_sse42_pcmpistrm128;	 // "86.sse42.pcmpistrm128"
   5048             }
   5049             break;
   5050           }
   5051           break;
   5052         case 's':	 // 2 strings to match.
   5053           if (NameR.substr(6, 5) != "e3.ph")
   5054             break;
   5055           switch (NameR[11]) {
   5056           default: break;
   5057           case 'a':	 // 1 string to match.
   5058             if (NameR.substr(12, 9) != "dd.sw.128")
   5059               break;
   5060             return Intrinsic::x86_ssse3_phadd_sw_128;	 // "86.ssse3.phadd.sw.128"
   5061           case 's':	 // 1 string to match.
   5062             if (NameR.substr(12, 9) != "ub.sw.128")
   5063               break;
   5064             return Intrinsic::x86_ssse3_phsub_sw_128;	 // "86.ssse3.phsub.sw.128"
   5065           }
   5066           break;
   5067         }
   5068         break;
   5069       }
   5070       break;
   5071     case 22:	 // 14 strings to match.
   5072       if (NameR.substr(0, 3) != "86.")
   5073         break;
   5074       switch (NameR[3]) {
   5075       default: break;
   5076       case 'a':	 // 4 strings to match.
   5077         if (NameR.substr(4, 3) != "vx.")
   5078           break;
   5079         switch (NameR[7]) {
   5080         default: break;
   5081         case 'm':	 // 2 strings to match.
   5082           if (NameR.substr(8, 9) != "askload.p")
   5083             break;
   5084           switch (NameR[17]) {
   5085           default: break;
   5086           case 'd':	 // 1 string to match.
   5087             if (NameR.substr(18, 4) != ".256")
   5088               break;
   5089             return Intrinsic::x86_avx_maskload_pd_256;	 // "86.avx.maskload.pd.256"
   5090           case 's':	 // 1 string to match.
   5091             if (NameR.substr(18, 4) != ".256")
   5092               break;
   5093             return Intrinsic::x86_avx_maskload_ps_256;	 // "86.avx.maskload.ps.256"
   5094           }
   5095           break;
   5096         case 'v':	 // 2 strings to match.
   5097           if (NameR.substr(8, 9) != "testnzc.p")
   5098             break;
   5099           switch (NameR[17]) {
   5100           default: break;
   5101           case 'd':	 // 1 string to match.
   5102             if (NameR.substr(18, 4) != ".256")
   5103               break;
   5104             return Intrinsic::x86_avx_vtestnzc_pd_256;	 // "86.avx.vtestnzc.pd.256"
   5105           case 's':	 // 1 string to match.
   5106             if (NameR.substr(18, 4) != ".256")
   5107               break;
   5108             return Intrinsic::x86_avx_vtestnzc_ps_256;	 // "86.avx.vtestnzc.ps.256"
   5109           }
   5110           break;
   5111         }
   5112         break;
   5113       case 's':	 // 10 strings to match.
   5114         if (NameR.substr(4, 9) != "se42.pcmp")
   5115           break;
   5116         switch (NameR[13]) {
   5117         default: break;
   5118         case 'e':	 // 5 strings to match.
   5119           if (NameR.substr(14, 4) != "stri")
   5120             break;
   5121           switch (NameR[18]) {
   5122           default: break;
   5123           case 'a':	 // 1 string to match.
   5124             if (NameR.substr(19, 3) != "128")
   5125               break;
   5126             return Intrinsic::x86_sse42_pcmpestria128;	 // "86.sse42.pcmpestria128"
   5127           case 'c':	 // 1 string to match.
   5128             if (NameR.substr(19, 3) != "128")
   5129               break;
   5130             return Intrinsic::x86_sse42_pcmpestric128;	 // "86.sse42.pcmpestric128"
   5131           case 'o':	 // 1 string to match.
   5132             if (NameR.substr(19, 3) != "128")
   5133               break;
   5134             return Intrinsic::x86_sse42_pcmpestrio128;	 // "86.sse42.pcmpestrio128"
   5135           case 's':	 // 1 string to match.
   5136             if (NameR.substr(19, 3) != "128")
   5137               break;
   5138             return Intrinsic::x86_sse42_pcmpestris128;	 // "86.sse42.pcmpestris128"
   5139           case 'z':	 // 1 string to match.
   5140             if (NameR.substr(19, 3) != "128")
   5141               break;
   5142             return Intrinsic::x86_sse42_pcmpestriz128;	 // "86.sse42.pcmpestriz128"
   5143           }
   5144           break;
   5145         case 'i':	 // 5 strings to match.
   5146           if (NameR.substr(14, 4) != "stri")
   5147             break;
   5148           switch (NameR[18]) {
   5149           default: break;
   5150           case 'a':	 // 1 string to match.
   5151             if (NameR.substr(19, 3) != "128")
   5152               break;
   5153             return Intrinsic::x86_sse42_pcmpistria128;	 // "86.sse42.pcmpistria128"
   5154           case 'c':	 // 1 string to match.
   5155             if (NameR.substr(19, 3) != "128")
   5156               break;
   5157             return Intrinsic::x86_sse42_pcmpistric128;	 // "86.sse42.pcmpistric128"
   5158           case 'o':	 // 1 string to match.
   5159             if (NameR.substr(19, 3) != "128")
   5160               break;
   5161             return Intrinsic::x86_sse42_pcmpistrio128;	 // "86.sse42.pcmpistrio128"
   5162           case 's':	 // 1 string to match.
   5163             if (NameR.substr(19, 3) != "128")
   5164               break;
   5165             return Intrinsic::x86_sse42_pcmpistris128;	 // "86.sse42.pcmpistris128"
   5166           case 'z':	 // 1 string to match.
   5167             if (NameR.substr(19, 3) != "128")
   5168               break;
   5169             return Intrinsic::x86_sse42_pcmpistriz128;	 // "86.sse42.pcmpistriz128"
   5170           }
   5171           break;
   5172         }
   5173         break;
   5174       }
   5175       break;
   5176     case 23:	 // 4 strings to match.
   5177       if (NameR.substr(0, 3) != "86.")
   5178         break;
   5179       switch (NameR[3]) {
   5180       default: break;
   5181       case 'a':	 // 3 strings to match.
   5182         if (NameR.substr(4, 3) != "vx.")
   5183           break;
   5184         switch (NameR[7]) {
   5185         default: break;
   5186         case 'm':	 // 2 strings to match.
   5187           if (NameR.substr(8, 10) != "askstore.p")
   5188             break;
   5189           switch (NameR[18]) {
   5190           default: break;
   5191           case 'd':	 // 1 string to match.
   5192             if (NameR.substr(19, 4) != ".256")
   5193               break;
   5194             return Intrinsic::x86_avx_maskstore_pd_256;	 // "86.avx.maskstore.pd.256"
   5195           case 's':	 // 1 string to match.
   5196             if (NameR.substr(19, 4) != ".256")
   5197               break;
   5198             return Intrinsic::x86_avx_maskstore_ps_256;	 // "86.avx.maskstore.ps.256"
   5199           }
   5200           break;
   5201         case 'v':	 // 1 string to match.
   5202           if (NameR.substr(8, 15) != "broadcastss.256")
   5203             break;
   5204           return Intrinsic::x86_avx_vbroadcastss_256;	 // "86.avx.vbroadcastss.256"
   5205         }
   5206         break;
   5207       case 's':	 // 1 string to match.
   5208         if (NameR.substr(4, 19) != "sse3.pmul.hr.sw.128")
   5209           break;
   5210         return Intrinsic::x86_ssse3_pmul_hr_sw_128;	 // "86.ssse3.pmul.hr.sw.128"
   5211       }
   5212       break;
   5213     case 24:	 // 8 strings to match.
   5214       if (NameR.substr(0, 3) != "86.")
   5215         break;
   5216       switch (NameR[3]) {
   5217       default: break;
   5218       case 'a':	 // 7 strings to match.
   5219         switch (NameR[4]) {
   5220         default: break;
   5221         case 'e':	 // 1 string to match.
   5222           if (NameR.substr(5, 19) != "sni.aeskeygenassist")
   5223             break;
   5224           return Intrinsic::x86_aesni_aeskeygenassist;	 // "86.aesni.aeskeygenassist"
   5225         case 'v':	 // 6 strings to match.
   5226           if (NameR.substr(5, 3) != "x.v")
   5227             break;
   5228           switch (NameR[8]) {
   5229           default: break;
   5230           case 'b':	 // 1 string to match.
   5231             if (NameR.substr(9, 15) != "roadcast.sd.256")
   5232               break;
   5233             return Intrinsic::x86_avx_vbroadcast_sd_256;	 // "86.avx.vbroadcast.sd.256"
   5234           case 'p':	 // 5 strings to match.
   5235             if (NameR.substr(9, 3) != "erm")
   5236               break;
   5237             switch (NameR[12]) {
   5238             default: break;
   5239             case '2':	 // 3 strings to match.
   5240               if (NameR.substr(13, 5) != "f128.")
   5241                 break;
   5242               switch (NameR[18]) {
   5243               default: break;
   5244               case 'p':	 // 2 strings to match.
   5245                 switch (NameR[19]) {
   5246                 default: break;
   5247                 case 'd':	 // 1 string to match.
   5248                   if (NameR.substr(20, 4) != ".256")
   5249                     break;
   5250                   return Intrinsic::x86_avx_vperm2f128_pd_256;	 // "86.avx.vperm2f128.pd.256"
   5251                 case 's':	 // 1 string to match.
   5252                   if (NameR.substr(20, 4) != ".256")
   5253                     break;
   5254                   return Intrinsic::x86_avx_vperm2f128_ps_256;	 // "86.avx.vperm2f128.ps.256"
   5255                 }
   5256                 break;
   5257               case 's':	 // 1 string to match.
   5258                 if (NameR.substr(19, 5) != "i.256")
   5259                   break;
   5260                 return Intrinsic::x86_avx_vperm2f128_si_256;	 // "86.avx.vperm2f128.si.256"
   5261               }
   5262               break;
   5263             case 'i':	 // 2 strings to match.
   5264               if (NameR.substr(13, 6) != "lvar.p")
   5265                 break;
   5266               switch (NameR[19]) {
   5267               default: break;
   5268               case 'd':	 // 1 string to match.
   5269                 if (NameR.substr(20, 4) != ".256")
   5270                   break;
   5271                 return Intrinsic::x86_avx_vpermilvar_pd_256;	 // "86.avx.vpermilvar.pd.256"
   5272               case 's':	 // 1 string to match.
   5273                 if (NameR.substr(20, 4) != ".256")
   5274                   break;
   5275                 return Intrinsic::x86_avx_vpermilvar_ps_256;	 // "86.avx.vpermilvar.ps.256"
   5276               }
   5277               break;
   5278             }
   5279             break;
   5280           }
   5281           break;
   5282         }
   5283         break;
   5284       case 's':	 // 1 string to match.
   5285         if (NameR.substr(4, 20) != "sse3.pmadd.ub.sw.128")
   5286           break;
   5287         return Intrinsic::x86_ssse3_pmadd_ub_sw_128;	 // "86.ssse3.pmadd.ub.sw.128"
   5288       }
   5289       break;
   5290     case 25:	 // 3 strings to match.
   5291       if (NameR.substr(0, 19) != "86.avx.vinsertf128.")
   5292         break;
   5293       switch (NameR[19]) {
   5294       default: break;
   5295       case 'p':	 // 2 strings to match.
   5296         switch (NameR[20]) {
   5297         default: break;
   5298         case 'd':	 // 1 string to match.
   5299           if (NameR.substr(21, 4) != ".256")
   5300             break;
   5301           return Intrinsic::x86_avx_vinsertf128_pd_256;	 // "86.avx.vinsertf128.pd.256"
   5302         case 's':	 // 1 string to match.
   5303           if (NameR.substr(21, 4) != ".256")
   5304             break;
   5305           return Intrinsic::x86_avx_vinsertf128_ps_256;	 // "86.avx.vinsertf128.ps.256"
   5306         }
   5307         break;
   5308       case 's':	 // 1 string to match.
   5309         if (NameR.substr(20, 5) != "i.256")
   5310           break;
   5311         return Intrinsic::x86_avx_vinsertf128_si_256;	 // "86.avx.vinsertf128.si.256"
   5312       }
   5313       break;
   5314     case 26:	 // 3 strings to match.
   5315       if (NameR.substr(0, 20) != "86.avx.vextractf128.")
   5316         break;
   5317       switch (NameR[20]) {
   5318       default: break;
   5319       case 'p':	 // 2 strings to match.
   5320         switch (NameR[21]) {
   5321         default: break;
   5322         case 'd':	 // 1 string to match.
   5323           if (NameR.substr(22, 4) != ".256")
   5324             break;
   5325           return Intrinsic::x86_avx_vextractf128_pd_256;	 // "86.avx.vextractf128.pd.256"
   5326         case 's':	 // 1 string to match.
   5327           if (NameR.substr(22, 4) != ".256")
   5328             break;
   5329           return Intrinsic::x86_avx_vextractf128_ps_256;	 // "86.avx.vextractf128.ps.256"
   5330         }
   5331         break;
   5332       case 's':	 // 1 string to match.
   5333         if (NameR.substr(21, 5) != "i.256")
   5334           break;
   5335         return Intrinsic::x86_avx_vextractf128_si_256;	 // "86.avx.vextractf128.si.256"
   5336       }
   5337       break;
   5338     case 28:	 // 2 strings to match.
   5339       if (NameR.substr(0, 23) != "86.avx.vbroadcastf128.p")
   5340         break;
   5341       switch (NameR[23]) {
   5342       default: break;
   5343       case 'd':	 // 1 string to match.
   5344         if (NameR.substr(24, 4) != ".256")
   5345           break;
   5346         return Intrinsic::x86_avx_vbroadcastf128_pd_256;	 // "86.avx.vbroadcastf128.pd.256"
   5347       case 's':	 // 1 string to match.
   5348         if (NameR.substr(24, 4) != ".256")
   5349           break;
   5350         return Intrinsic::x86_avx_vbroadcastf128_ps_256;	 // "86.avx.vbroadcastf128.ps.256"
   5351       }
   5352       break;
   5353     }
   5354     break;  // end of 'x' case.
   5355   }
   5356 #endif
   5357 
   5358 // Verifier::visitIntrinsicFunctionCall code.
   5359 #ifdef GET_INTRINSIC_VERIFIER
   5360   switch (ID) {
   5361   default: assert(0 && "Invalid intrinsic!");
   5362   case Intrinsic::eh_unwind_init:		// llvm.eh.unwind.init
   5363   case Intrinsic::trap:		// llvm.trap
   5364   case Intrinsic::x86_avx_vzeroall:		// llvm.x86.avx.vzeroall
   5365   case Intrinsic::x86_avx_vzeroupper:		// llvm.x86.avx.vzeroupper
   5366   case Intrinsic::x86_mmx_emms:		// llvm.x86.mmx.emms
   5367   case Intrinsic::x86_mmx_femms:		// llvm.x86.mmx.femms
   5368   case Intrinsic::x86_sse2_lfence:		// llvm.x86.sse2.lfence
   5369   case Intrinsic::x86_sse2_mfence:		// llvm.x86.sse2.mfence
   5370   case Intrinsic::x86_sse_sfence:		// llvm.x86.sse.sfence
   5371     VerifyIntrinsicPrototype(ID, IF, 0, 0);
   5372     break;
   5373   case Intrinsic::memcpy:		// llvm.memcpy
   5374   case Intrinsic::memmove:		// llvm.memmove
   5375     VerifyIntrinsicPrototype(ID, IF, 0, 5, MVT::iPTRAny, MVT::iPTRAny, MVT::iAny, MVT::i32, MVT::i1);
   5376     break;
   5377   case Intrinsic::memset:		// llvm.memset
   5378     VerifyIntrinsicPrototype(ID, IF, 0, 5, MVT::iPTRAny, MVT::i8, MVT::iAny, MVT::i32, MVT::i1);
   5379     break;
   5380   case Intrinsic::invariant_end:		// llvm.invariant.end
   5381     VerifyIntrinsicPrototype(ID, IF, 0, 3, MVT::iPTR, MVT::i64, MVT::iPTR);
   5382     break;
   5383   case Intrinsic::eh_sjlj_callsite:		// llvm.eh.sjlj.callsite
   5384   case Intrinsic::eh_sjlj_dispatch_setup:		// llvm.eh.sjlj.dispatch.setup
   5385   case Intrinsic::pcmarker:		// llvm.pcmarker
   5386     VerifyIntrinsicPrototype(ID, IF, 0, 1, MVT::i32);
   5387     break;
   5388   case Intrinsic::x86_sse3_mwait:		// llvm.x86.sse3.mwait
   5389     VerifyIntrinsicPrototype(ID, IF, 0, 2, MVT::i32, MVT::i32);
   5390     break;
   5391   case Intrinsic::eh_return_i32:		// llvm.eh.return.i32
   5392     VerifyIntrinsicPrototype(ID, IF, 0, 2, MVT::i32, MVT::iPTR);
   5393     break;
   5394   case Intrinsic::eh_return_i64:		// llvm.eh.return.i64
   5395   case Intrinsic::lifetime_end:		// llvm.lifetime.end
   5396   case Intrinsic::lifetime_start:		// llvm.lifetime.start
   5397     VerifyIntrinsicPrototype(ID, IF, 0, 2, MVT::i64, MVT::iPTR);
   5398     break;
   5399   case Intrinsic::x86_int:		// llvm.x86.int
   5400     VerifyIntrinsicPrototype(ID, IF, 0, 1, MVT::i8);
   5401     break;
   5402   case Intrinsic::dbg_value:		// llvm.dbg.value
   5403     VerifyIntrinsicPrototype(ID, IF, 0, 3, MVT::Metadata, MVT::i64, MVT::Metadata);
   5404     break;
   5405   case Intrinsic::dbg_declare:		// llvm.dbg.declare
   5406     VerifyIntrinsicPrototype(ID, IF, 0, 2, MVT::Metadata, MVT::Metadata);
   5407     break;
   5408   case Intrinsic::eh_sjlj_functioncontext:		// llvm.eh.sjlj.functioncontext
   5409   case Intrinsic::eh_sjlj_longjmp:		// llvm.eh.sjlj.longjmp
   5410   case Intrinsic::stackrestore:		// llvm.stackrestore
   5411   case Intrinsic::vaend:		// llvm.va_end
   5412   case Intrinsic::vastart:		// llvm.va_start
   5413   case Intrinsic::x86_sse2_clflush:		// llvm.x86.sse2.clflush
   5414   case Intrinsic::x86_sse_ldmxcsr:		// llvm.x86.sse.ldmxcsr
   5415   case Intrinsic::x86_sse_stmxcsr:		// llvm.x86.sse.stmxcsr
   5416     VerifyIntrinsicPrototype(ID, IF, 0, 1, MVT::iPTR);
   5417     break;
   5418   case Intrinsic::eh_resume:		// llvm.eh.resume
   5419   case Intrinsic::longjmp:		// llvm.longjmp
   5420   case Intrinsic::siglongjmp:		// llvm.siglongjmp
   5421     VerifyIntrinsicPrototype(ID, IF, 0, 2, MVT::iPTR, MVT::i32);
   5422     break;
   5423   case Intrinsic::x86_sse3_monitor:		// llvm.x86.sse3.monitor
   5424     VerifyIntrinsicPrototype(ID, IF, 0, 3, MVT::iPTR, MVT::i32, MVT::i32);
   5425     break;
   5426   case Intrinsic::prefetch:		// llvm.prefetch
   5427     VerifyIntrinsicPrototype(ID, IF, 0, 4, MVT::iPTR, MVT::i32, MVT::i32, MVT::i32);
   5428     break;
   5429   case Intrinsic::vacopy:		// llvm.va_copy
   5430     VerifyIntrinsicPrototype(ID, IF, 0, 2, MVT::iPTR, MVT::iPTR);
   5431     break;
   5432   case Intrinsic::init_trampoline:		// llvm.init.trampoline
   5433     VerifyIntrinsicPrototype(ID, IF, 0, 3, MVT::iPTR, MVT::iPTR, MVT::iPTR);
   5434     break;
   5435   case Intrinsic::var_annotation:		// llvm.var.annotation
   5436     VerifyIntrinsicPrototype(ID, IF, 0, 4, MVT::iPTR, MVT::iPTR, MVT::iPTR, MVT::i32);
   5437     break;
   5438   case Intrinsic::gcwrite:		// llvm.gcwrite
   5439     VerifyIntrinsicPrototype(ID, IF, 0, 3, MVT::iPTR, MVT::iPTR, MVT::iPTR);
   5440     break;
   5441   case Intrinsic::stackprotector:		// llvm.stackprotector
   5442     VerifyIntrinsicPrototype(ID, IF, 0, 2, MVT::iPTR, MVT::iPTR);
   5443     break;
   5444   case Intrinsic::x86_sse2_storeu_dq:		// llvm.x86.sse2.storeu.dq
   5445     VerifyIntrinsicPrototype(ID, IF, 0, 2, MVT::iPTR, MVT::v16i8);
   5446     break;
   5447   case Intrinsic::x86_sse2_storeu_pd:		// llvm.x86.sse2.storeu.pd
   5448     VerifyIntrinsicPrototype(ID, IF, 0, 2, MVT::iPTR, MVT::v2f64);
   5449     break;
   5450   case Intrinsic::x86_avx_maskstore_pd:		// llvm.x86.avx.maskstore.pd
   5451     VerifyIntrinsicPrototype(ID, IF, 0, 3, MVT::iPTR, MVT::v2f64, MVT::v2f64);
   5452     break;
   5453   case Intrinsic::x86_avx_storeu_dq_256:		// llvm.x86.avx.storeu.dq.256
   5454     VerifyIntrinsicPrototype(ID, IF, 0, 2, MVT::iPTR, MVT::v32i8);
   5455     break;
   5456   case Intrinsic::x86_sse_storeu_ps:		// llvm.x86.sse.storeu.ps
   5457     VerifyIntrinsicPrototype(ID, IF, 0, 2, MVT::iPTR, MVT::v4f32);
   5458     break;
   5459   case Intrinsic::x86_avx_maskstore_ps:		// llvm.x86.avx.maskstore.ps
   5460     VerifyIntrinsicPrototype(ID, IF, 0, 3, MVT::iPTR, MVT::v4f32, MVT::v4f32);
   5461     break;
   5462   case Intrinsic::x86_avx_movnt_pd_256:		// llvm.x86.avx.movnt.pd.256
   5463   case Intrinsic::x86_avx_storeu_pd_256:		// llvm.x86.avx.storeu.pd.256
   5464     VerifyIntrinsicPrototype(ID, IF, 0, 2, MVT::iPTR, MVT::v4f64);
   5465     break;
   5466   case Intrinsic::x86_avx_maskstore_pd_256:		// llvm.x86.avx.maskstore.pd.256
   5467     VerifyIntrinsicPrototype(ID, IF, 0, 3, MVT::iPTR, MVT::v4f64, MVT::v4f64);
   5468     break;
   5469   case Intrinsic::x86_sse2_storel_dq:		// llvm.x86.sse2.storel.dq
   5470     VerifyIntrinsicPrototype(ID, IF, 0, 2, MVT::iPTR, MVT::v4i32);
   5471     break;
   5472   case Intrinsic::x86_avx_movnt_dq_256:		// llvm.x86.avx.movnt.dq.256
   5473     VerifyIntrinsicPrototype(ID, IF, 0, 2, MVT::iPTR, MVT::v4i64);
   5474     break;
   5475   case Intrinsic::x86_avx_movnt_ps_256:		// llvm.x86.avx.movnt.ps.256
   5476   case Intrinsic::x86_avx_storeu_ps_256:		// llvm.x86.avx.storeu.ps.256
   5477     VerifyIntrinsicPrototype(ID, IF, 0, 2, MVT::iPTR, MVT::v8f32);
   5478     break;
   5479   case Intrinsic::x86_avx_maskstore_ps_256:		// llvm.x86.avx.maskstore.ps.256
   5480     VerifyIntrinsicPrototype(ID, IF, 0, 3, MVT::iPTR, MVT::v8f32, MVT::v8f32);
   5481     break;
   5482   case Intrinsic::gcroot:		// llvm.gcroot
   5483     VerifyIntrinsicPrototype(ID, IF, 0, 2, MVT::iPTR, MVT::iPTR);
   5484     break;
   5485   case Intrinsic::x86_mmx_movnt_dq:		// llvm.x86.mmx.movnt.dq
   5486     VerifyIntrinsicPrototype(ID, IF, 0, 2, MVT::iPTR, MVT::x86mmx);
   5487     break;
   5488   case Intrinsic::x86_sse2_maskmov_dqu:		// llvm.x86.sse2.maskmov.dqu
   5489     VerifyIntrinsicPrototype(ID, IF, 0, 3, MVT::v16i8, MVT::v16i8, MVT::iPTR);
   5490     break;
   5491   case Intrinsic::x86_mmx_maskmovq:		// llvm.x86.mmx.maskmovq
   5492     VerifyIntrinsicPrototype(ID, IF, 0, 3, MVT::x86mmx, MVT::x86mmx, MVT::iPTR);
   5493     break;
   5494   case Intrinsic::ptr_annotation:		// llvm.ptr.annotation
   5495     VerifyIntrinsicPrototype(ID, IF, 1, 4, MVT::iPTRAny, ~0, MVT::iPTR, MVT::iPTR, MVT::i32);
   5496     break;
   5497   case Intrinsic::sin:		// llvm.sin
   5498     VerifyIntrinsicPrototype(ID, IF, 1, 1, MVT::fAny, ~0);
   5499     break;
   5500   case Intrinsic::cos:		// llvm.cos
   5501     VerifyIntrinsicPrototype(ID, IF, 1, 1, MVT::fAny, ~0);
   5502     break;
   5503   case Intrinsic::pow:		// llvm.pow
   5504     VerifyIntrinsicPrototype(ID, IF, 1, 2, MVT::fAny, ~0, ~0);
   5505     break;
   5506   case Intrinsic::log:		// llvm.log
   5507     VerifyIntrinsicPrototype(ID, IF, 1, 1, MVT::fAny, ~0);
   5508     break;
   5509   case Intrinsic::log10:		// llvm.log10
   5510     VerifyIntrinsicPrototype(ID, IF, 1, 1, MVT::fAny, ~0);
   5511     break;
   5512   case Intrinsic::log2:		// llvm.log2
   5513     VerifyIntrinsicPrototype(ID, IF, 1, 1, MVT::fAny, ~0);
   5514     break;
   5515   case Intrinsic::exp:		// llvm.exp
   5516     VerifyIntrinsicPrototype(ID, IF, 1, 1, MVT::fAny, ~0);
   5517     break;
   5518   case Intrinsic::exp2:		// llvm.exp2
   5519     VerifyIntrinsicPrototype(ID, IF, 1, 1, MVT::fAny, ~0);
   5520     break;
   5521   case Intrinsic::fma:		// llvm.fma
   5522     VerifyIntrinsicPrototype(ID, IF, 1, 3, MVT::fAny, ~0, ~0, ~0);
   5523     break;
   5524   case Intrinsic::sqrt:		// llvm.sqrt
   5525     VerifyIntrinsicPrototype(ID, IF, 1, 1, MVT::fAny, ~0);
   5526     break;
   5527   case Intrinsic::powi:		// llvm.powi
   5528     VerifyIntrinsicPrototype(ID, IF, 1, 2, MVT::fAny, ~0, MVT::i32);
   5529     break;
   5530   case Intrinsic::convertff:		// llvm.convertff
   5531     VerifyIntrinsicPrototype(ID, IF, 1, 3, MVT::fAny, MVT::fAny, MVT::i32, MVT::i32);
   5532     break;
   5533   case Intrinsic::convertfsi:		// llvm.convertfsi
   5534   case Intrinsic::convertfui:		// llvm.convertfui
   5535     VerifyIntrinsicPrototype(ID, IF, 1, 3, MVT::fAny, MVT::iAny, MVT::i32, MVT::i32);
   5536     break;
   5537   case Intrinsic::expect:		// llvm.expect
   5538     VerifyIntrinsicPrototype(ID, IF, 1, 2, MVT::iAny, ~0, ~0);
   5539     break;
   5540   case Intrinsic::bswap:		// llvm.bswap
   5541     VerifyIntrinsicPrototype(ID, IF, 1, 1, MVT::iAny, ~0);
   5542     break;
   5543   case Intrinsic::ctpop:		// llvm.ctpop
   5544     VerifyIntrinsicPrototype(ID, IF, 1, 1, MVT::iAny, ~0);
   5545     break;
   5546   case Intrinsic::ctlz:		// llvm.ctlz
   5547     VerifyIntrinsicPrototype(ID, IF, 1, 1, MVT::iAny, ~0);
   5548     break;
   5549   case Intrinsic::cttz:		// llvm.cttz
   5550     VerifyIntrinsicPrototype(ID, IF, 1, 1, MVT::iAny, ~0);
   5551     break;
   5552   case Intrinsic::annotation:		// llvm.annotation
   5553     VerifyIntrinsicPrototype(ID, IF, 1, 4, MVT::iAny, ~0, MVT::iPTR, MVT::iPTR, MVT::i32);
   5554     break;
   5555   case Intrinsic::convertsif:		// llvm.convertsif
   5556   case Intrinsic::convertuif:		// llvm.convertuif
   5557     VerifyIntrinsicPrototype(ID, IF, 1, 3, MVT::iAny, MVT::fAny, MVT::i32, MVT::i32);
   5558     break;
   5559   case Intrinsic::convertss:		// llvm.convertss
   5560   case Intrinsic::convertsu:		// llvm.convertsu
   5561   case Intrinsic::convertus:		// llvm.convertus
   5562   case Intrinsic::convertuu:		// llvm.convertuu
   5563     VerifyIntrinsicPrototype(ID, IF, 1, 3, MVT::iAny, MVT::iAny, MVT::i32, MVT::i32);
   5564     break;
   5565   case Intrinsic::objectsize:		// llvm.objectsize
   5566     VerifyIntrinsicPrototype(ID, IF, 1, 2, MVT::iAny, MVT::iPTR, MVT::i1);
   5567     break;
   5568   case Intrinsic::sadd_with_overflow:		// llvm.sadd.with.overflow
   5569     VerifyIntrinsicPrototype(ID, IF, 2, 2, MVT::iAny, MVT::i1, ~0, ~0);
   5570     break;
   5571   case Intrinsic::uadd_with_overflow:		// llvm.uadd.with.overflow
   5572     VerifyIntrinsicPrototype(ID, IF, 2, 2, MVT::iAny, MVT::i1, ~0, ~0);
   5573     break;
   5574   case Intrinsic::ssub_with_overflow:		// llvm.ssub.with.overflow
   5575     VerifyIntrinsicPrototype(ID, IF, 2, 2, MVT::iAny, MVT::i1, ~0, ~0);
   5576     break;
   5577   case Intrinsic::usub_with_overflow:		// llvm.usub.with.overflow
   5578     VerifyIntrinsicPrototype(ID, IF, 2, 2, MVT::iAny, MVT::i1, ~0, ~0);
   5579     break;
   5580   case Intrinsic::smul_with_overflow:		// llvm.smul.with.overflow
   5581     VerifyIntrinsicPrototype(ID, IF, 2, 2, MVT::iAny, MVT::i1, ~0, ~0);
   5582     break;
   5583   case Intrinsic::umul_with_overflow:		// llvm.umul.with.overflow
   5584     VerifyIntrinsicPrototype(ID, IF, 2, 2, MVT::iAny, MVT::i1, ~0, ~0);
   5585     break;
   5586   case Intrinsic::invariant_start:		// llvm.invariant.start
   5587     VerifyIntrinsicPrototype(ID, IF, 1, 2, MVT::iPTR, MVT::i64, MVT::iPTR);
   5588     break;
   5589   case Intrinsic::convert_from_fp16:		// llvm.convert.from.fp16
   5590     VerifyIntrinsicPrototype(ID, IF, 1, 1, MVT::f32, MVT::i16);
   5591     break;
   5592   case Intrinsic::convert_to_fp16:		// llvm.convert.to.fp16
   5593     VerifyIntrinsicPrototype(ID, IF, 1, 1, MVT::i16, MVT::f32);
   5594     break;
   5595   case Intrinsic::flt_rounds:		// llvm.flt.rounds
   5596     VerifyIntrinsicPrototype(ID, IF, 1, 0, MVT::i32);
   5597     break;
   5598   case Intrinsic::x86_sse42_crc32_32_16:		// llvm.x86.sse42.crc32.32.16
   5599     VerifyIntrinsicPrototype(ID, IF, 1, 2, MVT::i32, MVT::i32, MVT::i16);
   5600     break;
   5601   case Intrinsic::x86_sse42_crc32_32_32:		// llvm.x86.sse42.crc32.32.32
   5602     VerifyIntrinsicPrototype(ID, IF, 1, 2, MVT::i32, MVT::i32, MVT::i32);
   5603     break;
   5604   case Intrinsic::x86_sse42_crc32_32_8:		// llvm.x86.sse42.crc32.32.8
   5605     VerifyIntrinsicPrototype(ID, IF, 1, 2, MVT::i32, MVT::i32, MVT::i8);
   5606     break;
   5607   case Intrinsic::eh_sjlj_setjmp:		// llvm.eh.sjlj.setjmp
   5608   case Intrinsic::eh_typeid_for:		// llvm.eh.typeid.for
   5609   case Intrinsic::setjmp:		// llvm.setjmp
   5610     VerifyIntrinsicPrototype(ID, IF, 1, 1, MVT::i32, MVT::iPTR);
   5611     break;
   5612   case Intrinsic::sigsetjmp:		// llvm.sigsetjmp
   5613     VerifyIntrinsicPrototype(ID, IF, 1, 2, MVT::i32, MVT::iPTR, MVT::i32);
   5614     break;
   5615   case Intrinsic::eh_selector:		// llvm.eh.selector
   5616     VerifyIntrinsicPrototype(ID, IF, 1, 3, MVT::i32, MVT::iPTR, MVT::iPTR, MVT::isVoid);
   5617     break;
   5618   case Intrinsic::x86_sse2_pmovmskb_128:		// llvm.x86.sse2.pmovmskb.128
   5619     VerifyIntrinsicPrototype(ID, IF, 1, 1, MVT::i32, MVT::v16i8);
   5620     break;
   5621   case Intrinsic::x86_sse41_pextrb:		// llvm.x86.sse41.pextrb
   5622     VerifyIntrinsicPrototype(ID, IF, 1, 2, MVT::i32, MVT::v16i8, MVT::i32);
   5623     break;
   5624   case Intrinsic::x86_sse42_pcmpestri128:		// llvm.x86.sse42.pcmpestri128
   5625   case Intrinsic::x86_sse42_pcmpestria128:		// llvm.x86.sse42.pcmpestria128
   5626   case Intrinsic::x86_sse42_pcmpestric128:		// llvm.x86.sse42.pcmpestric128
   5627   case Intrinsic::x86_sse42_pcmpestrio128:		// llvm.x86.sse42.pcmpestrio128
   5628   case Intrinsic::x86_sse42_pcmpestris128:		// llvm.x86.sse42.pcmpestris128
   5629   case Intrinsic::x86_sse42_pcmpestriz128:		// llvm.x86.sse42.pcmpestriz128
   5630     VerifyIntrinsicPrototype(ID, IF, 1, 5, MVT::i32, MVT::v16i8, MVT::i32, MVT::v16i8, MVT::i32, MVT::i8);
   5631     break;
   5632   case Intrinsic::x86_sse42_pcmpistri128:		// llvm.x86.sse42.pcmpistri128
   5633   case Intrinsic::x86_sse42_pcmpistria128:		// llvm.x86.sse42.pcmpistria128
   5634   case Intrinsic::x86_sse42_pcmpistric128:		// llvm.x86.sse42.pcmpistric128
   5635   case Intrinsic::x86_sse42_pcmpistrio128:		// llvm.x86.sse42.pcmpistrio128
   5636   case Intrinsic::x86_sse42_pcmpistris128:		// llvm.x86.sse42.pcmpistris128
   5637   case Intrinsic::x86_sse42_pcmpistriz128:		// llvm.x86.sse42.pcmpistriz128
   5638     VerifyIntrinsicPrototype(ID, IF, 1, 3, MVT::i32, MVT::v16i8, MVT::v16i8, MVT::i8);
   5639     break;
   5640   case Intrinsic::x86_sse2_cvtsd2si:		// llvm.x86.sse2.cvtsd2si
   5641   case Intrinsic::x86_sse2_cvttsd2si:		// llvm.x86.sse2.cvttsd2si
   5642   case Intrinsic::x86_sse2_movmsk_pd:		// llvm.x86.sse2.movmsk.pd
   5643     VerifyIntrinsicPrototype(ID, IF, 1, 1, MVT::i32, MVT::v2f64);
   5644     break;
   5645   case Intrinsic::x86_avx_vtestc_pd:		// llvm.x86.avx.vtestc.pd
   5646   case Intrinsic::x86_avx_vtestnzc_pd:		// llvm.x86.avx.vtestnzc.pd
   5647   case Intrinsic::x86_avx_vtestz_pd:		// llvm.x86.avx.vtestz.pd
   5648   case Intrinsic::x86_sse2_comieq_sd:		// llvm.x86.sse2.comieq.sd
   5649   case Intrinsic::x86_sse2_comige_sd:		// llvm.x86.sse2.comige.sd
   5650   case Intrinsic::x86_sse2_comigt_sd:		// llvm.x86.sse2.comigt.sd
   5651   case Intrinsic::x86_sse2_comile_sd:		// llvm.x86.sse2.comile.sd
   5652   case Intrinsic::x86_sse2_comilt_sd:		// llvm.x86.sse2.comilt.sd
   5653   case Intrinsic::x86_sse2_comineq_sd:		// llvm.x86.sse2.comineq.sd
   5654   case Intrinsic::x86_sse2_ucomieq_sd:		// llvm.x86.sse2.ucomieq.sd
   5655   case Intrinsic::x86_sse2_ucomige_sd:		// llvm.x86.sse2.ucomige.sd
   5656   case Intrinsic::x86_sse2_ucomigt_sd:		// llvm.x86.sse2.ucomigt.sd
   5657   case Intrinsic::x86_sse2_ucomile_sd:		// llvm.x86.sse2.ucomile.sd
   5658   case Intrinsic::x86_sse2_ucomilt_sd:		// llvm.x86.sse2.ucomilt.sd
   5659   case Intrinsic::x86_sse2_ucomineq_sd:		// llvm.x86.sse2.ucomineq.sd
   5660     VerifyIntrinsicPrototype(ID, IF, 1, 2, MVT::i32, MVT::v2f64, MVT::v2f64);
   5661     break;
   5662   case Intrinsic::x86_sse_cvtss2si:		// llvm.x86.sse.cvtss2si
   5663   case Intrinsic::x86_sse_cvttss2si:		// llvm.x86.sse.cvttss2si
   5664   case Intrinsic::x86_sse_movmsk_ps:		// llvm.x86.sse.movmsk.ps
   5665     VerifyIntrinsicPrototype(ID, IF, 1, 1, MVT::i32, MVT::v4f32);
   5666     break;
   5667   case Intrinsic::x86_sse41_extractps:		// llvm.x86.sse41.extractps
   5668     VerifyIntrinsicPrototype(ID, IF, 1, 2, MVT::i32, MVT::v4f32, MVT::i32);
   5669     break;
   5670   case Intrinsic::x86_avx_vtestc_ps:		// llvm.x86.avx.vtestc.ps
   5671   case Intrinsic::x86_avx_vtestnzc_ps:		// llvm.x86.avx.vtestnzc.ps
   5672   case Intrinsic::x86_avx_vtestz_ps:		// llvm.x86.avx.vtestz.ps
   5673   case Intrinsic::x86_sse41_ptestc:		// llvm.x86.sse41.ptestc
   5674   case Intrinsic::x86_sse41_ptestnzc:		// llvm.x86.sse41.ptestnzc
   5675   case Intrinsic::x86_sse41_ptestz:		// llvm.x86.sse41.ptestz
   5676   case Intrinsic::x86_sse_comieq_ss:		// llvm.x86.sse.comieq.ss
   5677   case Intrinsic::x86_sse_comige_ss:		// llvm.x86.sse.comige.ss
   5678   case Intrinsic::x86_sse_comigt_ss:		// llvm.x86.sse.comigt.ss
   5679   case Intrinsic::x86_sse_comile_ss:		// llvm.x86.sse.comile.ss
   5680   case Intrinsic::x86_sse_comilt_ss:		// llvm.x86.sse.comilt.ss
   5681   case Intrinsic::x86_sse_comineq_ss:		// llvm.x86.sse.comineq.ss
   5682   case Intrinsic::x86_sse_ucomieq_ss:		// llvm.x86.sse.ucomieq.ss
   5683   case Intrinsic::x86_sse_ucomige_ss:		// llvm.x86.sse.ucomige.ss
   5684   case Intrinsic::x86_sse_ucomigt_ss:		// llvm.x86.sse.ucomigt.ss
   5685   case Intrinsic::x86_sse_ucomile_ss:		// llvm.x86.sse.ucomile.ss
   5686   case Intrinsic::x86_sse_ucomilt_ss:		// llvm.x86.sse.ucomilt.ss
   5687   case Intrinsic::x86_sse_ucomineq_ss:		// llvm.x86.sse.ucomineq.ss
   5688     VerifyIntrinsicPrototype(ID, IF, 1, 2, MVT::i32, MVT::v4f32, MVT::v4f32);
   5689     break;
   5690   case Intrinsic::x86_avx_movmsk_pd_256:		// llvm.x86.avx.movmsk.pd.256
   5691     VerifyIntrinsicPrototype(ID, IF, 1, 1, MVT::i32, MVT::v4f64);
   5692     break;
   5693   case Intrinsic::x86_avx_vtestc_pd_256:		// llvm.x86.avx.vtestc.pd.256
   5694   case Intrinsic::x86_avx_vtestnzc_pd_256:		// llvm.x86.avx.vtestnzc.pd.256
   5695   case Intrinsic::x86_avx_vtestz_pd_256:		// llvm.x86.avx.vtestz.pd.256
   5696     VerifyIntrinsicPrototype(ID, IF, 1, 2, MVT::i32, MVT::v4f64, MVT::v4f64);
   5697     break;
   5698   case Intrinsic::x86_sse41_pextrd:		// llvm.x86.sse41.pextrd
   5699     VerifyIntrinsicPrototype(ID, IF, 1, 2, MVT::i32, MVT::v4i32, MVT::i32);
   5700     break;
   5701   case Intrinsic::x86_avx_ptestc_256:		// llvm.x86.avx.ptestc.256
   5702   case Intrinsic::x86_avx_ptestnzc_256:		// llvm.x86.avx.ptestnzc.256
   5703   case Intrinsic::x86_avx_ptestz_256:		// llvm.x86.avx.ptestz.256
   5704     VerifyIntrinsicPrototype(ID, IF, 1, 2, MVT::i32, MVT::v4i64, MVT::v4i64);
   5705     break;
   5706   case Intrinsic::x86_avx_movmsk_ps_256:		// llvm.x86.avx.movmsk.ps.256
   5707     VerifyIntrinsicPrototype(ID, IF, 1, 1, MVT::i32, MVT::v8f32);
   5708     break;
   5709   case Intrinsic::x86_avx_vtestc_ps_256:		// llvm.x86.avx.vtestc.ps.256
   5710   case Intrinsic::x86_avx_vtestnzc_ps_256:		// llvm.x86.avx.vtestnzc.ps.256
   5711   case Intrinsic::x86_avx_vtestz_ps_256:		// llvm.x86.avx.vtestz.ps.256
   5712     VerifyIntrinsicPrototype(ID, IF, 1, 2, MVT::i32, MVT::v8f32, MVT::v8f32);
   5713     break;
   5714   case Intrinsic::x86_mmx_pmovmskb:		// llvm.x86.mmx.pmovmskb
   5715     VerifyIntrinsicPrototype(ID, IF, 1, 1, MVT::i32, MVT::x86mmx);
   5716     break;
   5717   case Intrinsic::x86_mmx_pextr_w:		// llvm.x86.mmx.pextr.w
   5718     VerifyIntrinsicPrototype(ID, IF, 1, 2, MVT::i32, MVT::x86mmx, MVT::i32);
   5719     break;
   5720   case Intrinsic::readcyclecounter:		// llvm.readcyclecounter
   5721     VerifyIntrinsicPrototype(ID, IF, 1, 0, MVT::i64);
   5722     break;
   5723   case Intrinsic::x86_sse42_crc32_64_64:		// llvm.x86.sse42.crc32.64.64
   5724     VerifyIntrinsicPrototype(ID, IF, 1, 2, MVT::i64, MVT::i64, MVT::i64);
   5725     break;
   5726   case Intrinsic::x86_sse42_crc32_64_8:		// llvm.x86.sse42.crc32.64.8
   5727     VerifyIntrinsicPrototype(ID, IF, 1, 2, MVT::i64, MVT::i64, MVT::i8);
   5728     break;
   5729   case Intrinsic::x86_sse2_cvtsd2si64:		// llvm.x86.sse2.cvtsd2si64
   5730   case Intrinsic::x86_sse2_cvttsd2si64:		// llvm.x86.sse2.cvttsd2si64
   5731     VerifyIntrinsicPrototype(ID, IF, 1, 1, MVT::i64, MVT::v2f64);
   5732     break;
   5733   case Intrinsic::x86_sse41_pextrq:		// llvm.x86.sse41.pextrq
   5734     VerifyIntrinsicPrototype(ID, IF, 1, 2, MVT::i64, MVT::v2i64, MVT::i32);
   5735     break;
   5736   case Intrinsic::x86_sse_cvtss2si64:		// llvm.x86.sse.cvtss2si64
   5737   case Intrinsic::x86_sse_cvttss2si64:		// llvm.x86.sse.cvttss2si64
   5738     VerifyIntrinsicPrototype(ID, IF, 1, 1, MVT::i64, MVT::v4f32);
   5739     break;
   5740   case Intrinsic::eh_exception:		// llvm.eh.exception
   5741   case Intrinsic::eh_sjlj_lsda:		// llvm.eh.sjlj.lsda
   5742   case Intrinsic::stacksave:		// llvm.stacksave
   5743     VerifyIntrinsicPrototype(ID, IF, 1, 0, MVT::iPTR);
   5744     break;
   5745   case Intrinsic::eh_dwarf_cfa:		// llvm.eh.dwarf.cfa
   5746   case Intrinsic::frameaddress:		// llvm.frameaddress
   5747   case Intrinsic::returnaddress:		// llvm.returnaddress
   5748     VerifyIntrinsicPrototype(ID, IF, 1, 1, MVT::iPTR, MVT::i32);
   5749     break;
   5750   case Intrinsic::adjust_trampoline:		// llvm.adjust.trampoline
   5751     VerifyIntrinsicPrototype(ID, IF, 1, 1, MVT::iPTR, MVT::iPTR);
   5752     break;
   5753   case Intrinsic::gcread:		// llvm.gcread
   5754     VerifyIntrinsicPrototype(ID, IF, 1, 2, MVT::iPTR, MVT::iPTR, MVT::iPTR);
   5755     break;
   5756   case Intrinsic::x86_sse3_ldu_dq:		// llvm.x86.sse3.ldu.dq
   5757     VerifyIntrinsicPrototype(ID, IF, 1, 1, MVT::v16i8, MVT::iPTR);
   5758     break;
   5759   case Intrinsic::x86_ssse3_pabs_b_128:		// llvm.x86.ssse3.pabs.b.128
   5760     VerifyIntrinsicPrototype(ID, IF, 1, 1, MVT::v16i8, MVT::v16i8);
   5761     break;
   5762   case Intrinsic::x86_sse42_pcmpestrm128:		// llvm.x86.sse42.pcmpestrm128
   5763     VerifyIntrinsicPrototype(ID, IF, 1, 5, MVT::v16i8, MVT::v16i8, MVT::i32, MVT::v16i8, MVT::i32, MVT::i8);
   5764     break;
   5765   case Intrinsic::x86_sse2_padds_b:		// llvm.x86.sse2.padds.b
   5766   case Intrinsic::x86_sse2_paddus_b:		// llvm.x86.sse2.paddus.b
   5767   case Intrinsic::x86_sse2_pavg_b:		// llvm.x86.sse2.pavg.b
   5768   case Intrinsic::x86_sse2_pcmpeq_b:		// llvm.x86.sse2.pcmpeq.b
   5769   case Intrinsic::x86_sse2_pcmpgt_b:		// llvm.x86.sse2.pcmpgt.b
   5770   case Intrinsic::x86_sse2_pmaxu_b:		// llvm.x86.sse2.pmaxu.b
   5771   case Intrinsic::x86_sse2_pminu_b:		// llvm.x86.sse2.pminu.b
   5772   case Intrinsic::x86_sse2_psubs_b:		// llvm.x86.sse2.psubs.b
   5773   case Intrinsic::x86_sse2_psubus_b:		// llvm.x86.sse2.psubus.b
   5774   case Intrinsic::x86_sse41_pmaxsb:		// llvm.x86.sse41.pmaxsb
   5775   case Intrinsic::x86_sse41_pminsb:		// llvm.x86.sse41.pminsb
   5776   case Intrinsic::x86_ssse3_pshuf_b_128:		// llvm.x86.ssse3.pshuf.b.128
   5777   case Intrinsic::x86_ssse3_psign_b_128:		// llvm.x86.ssse3.psign.b.128
   5778     VerifyIntrinsicPrototype(ID, IF, 1, 2, MVT::v16i8, MVT::v16i8, MVT::v16i8);
   5779     break;
   5780   case Intrinsic::x86_sse41_mpsadbw:		// llvm.x86.sse41.mpsadbw
   5781     VerifyIntrinsicPrototype(ID, IF, 1, 3, MVT::v16i8, MVT::v16i8, MVT::v16i8, MVT::i32);
   5782     break;
   5783   case Intrinsic::x86_sse42_pcmpistrm128:		// llvm.x86.sse42.pcmpistrm128
   5784     VerifyIntrinsicPrototype(ID, IF, 1, 3, MVT::v16i8, MVT::v16i8, MVT::v16i8, MVT::i8);
   5785     break;
   5786   case Intrinsic::x86_sse41_pblendvb:		// llvm.x86.sse41.pblendvb
   5787     VerifyIntrinsicPrototype(ID, IF, 1, 3, MVT::v16i8, MVT::v16i8, MVT::v16i8, MVT::v16i8);
   5788     break;
   5789   case Intrinsic::x86_sse2_packsswb_128:		// llvm.x86.sse2.packsswb.128
   5790   case Intrinsic::x86_sse2_packuswb_128:		// llvm.x86.sse2.packuswb.128
   5791     VerifyIntrinsicPrototype(ID, IF, 1, 2, MVT::v16i8, MVT::v8i16, MVT::v8i16);
   5792     break;
   5793   case Intrinsic::x86_avx_maskload_pd:		// llvm.x86.avx.maskload.pd
   5794     VerifyIntrinsicPrototype(ID, IF, 1, 2, MVT::v2f64, MVT::iPTR, MVT::v2f64);
   5795     break;
   5796   case Intrinsic::x86_sse2_sqrt_pd:		// llvm.x86.sse2.sqrt.pd
   5797   case Intrinsic::x86_sse2_sqrt_sd:		// llvm.x86.sse2.sqrt.sd
   5798     VerifyIntrinsicPrototype(ID, IF, 1, 1, MVT::v2f64, MVT::v2f64);
   5799     break;
   5800   case Intrinsic::x86_sse2_cvtsi2sd:		// llvm.x86.sse2.cvtsi2sd
   5801   case Intrinsic::x86_sse41_round_pd:		// llvm.x86.sse41.round.pd
   5802     VerifyIntrinsicPrototype(ID, IF, 1, 2, MVT::v2f64, MVT::v2f64, MVT::i32);
   5803     break;
   5804   case Intrinsic::x86_sse2_cvtsi642sd:		// llvm.x86.sse2.cvtsi642sd
   5805     VerifyIntrinsicPrototype(ID, IF, 1, 2, MVT::v2f64, MVT::v2f64, MVT::i64);
   5806     break;
   5807   case Intrinsic::x86_avx_vpermil_pd:		// llvm.x86.avx.vpermil.pd
   5808     VerifyIntrinsicPrototype(ID, IF, 1, 2, MVT::v2f64, MVT::v2f64, MVT::i8);
   5809     break;
   5810   case Intrinsic::x86_sse2_add_sd:		// llvm.x86.sse2.add.sd
   5811   case Intrinsic::x86_sse2_div_sd:		// llvm.x86.sse2.div.sd
   5812   case Intrinsic::x86_sse2_max_pd:		// llvm.x86.sse2.max.pd
   5813   case Intrinsic::x86_sse2_max_sd:		// llvm.x86.sse2.max.sd
   5814   case Intrinsic::x86_sse2_min_pd:		// llvm.x86.sse2.min.pd
   5815   case Intrinsic::x86_sse2_min_sd:		// llvm.x86.sse2.min.sd
   5816   case Intrinsic::x86_sse2_mul_sd:		// llvm.x86.sse2.mul.sd
   5817   case Intrinsic::x86_sse2_sub_sd:		// llvm.x86.sse2.sub.sd
   5818   case Intrinsic::x86_sse3_addsub_pd:		// llvm.x86.sse3.addsub.pd
   5819   case Intrinsic::x86_sse3_hadd_pd:		// llvm.x86.sse3.hadd.pd
   5820   case Intrinsic::x86_sse3_hsub_pd:		// llvm.x86.sse3.hsub.pd
   5821     VerifyIntrinsicPrototype(ID, IF, 1, 2, MVT::v2f64, MVT::v2f64, MVT::v2f64);
   5822     break;
   5823   case Intrinsic::x86_sse41_blendpd:		// llvm.x86.sse41.blendpd
   5824   case Intrinsic::x86_sse41_dppd:		// llvm.x86.sse41.dppd
   5825   case Intrinsic::x86_sse41_round_sd:		// llvm.x86.sse41.round.sd
   5826     VerifyIntrinsicPrototype(ID, IF, 1, 3, MVT::v2f64, MVT::v2f64, MVT::v2f64, MVT::i32);
   5827     break;
   5828   case Intrinsic::x86_sse2_cmp_pd:		// llvm.x86.sse2.cmp.pd
   5829   case Intrinsic::x86_sse2_cmp_sd:		// llvm.x86.sse2.cmp.sd
   5830     VerifyIntrinsicPrototype(ID, IF, 1, 3, MVT::v2f64, MVT::v2f64, MVT::v2f64, MVT::i8);
   5831     break;
   5832   case Intrinsic::x86_sse41_blendvpd:		// llvm.x86.sse41.blendvpd
   5833     VerifyIntrinsicPrototype(ID, IF, 1, 3, MVT::v2f64, MVT::v2f64, MVT::v2f64, MVT::v2f64);
   5834     break;
   5835   case Intrinsic::x86_avx_vpermilvar_pd:		// llvm.x86.avx.vpermilvar.pd
   5836     VerifyIntrinsicPrototype(ID, IF, 1, 2, MVT::v2f64, MVT::v2f64, MVT::v2i64);
   5837     break;
   5838   case Intrinsic::x86_sse2_cvtss2sd:		// llvm.x86.sse2.cvtss2sd
   5839     VerifyIntrinsicPrototype(ID, IF, 1, 2, MVT::v2f64, MVT::v2f64, MVT::v4f32);
   5840     break;
   5841   case Intrinsic::x86_sse2_cvtps2pd:		// llvm.x86.sse2.cvtps2pd
   5842     VerifyIntrinsicPrototype(ID, IF, 1, 1, MVT::v2f64, MVT::v4f32);
   5843     break;
   5844   case Intrinsic::x86_avx_vextractf128_pd_256:		// llvm.x86.avx.vextractf128.pd.256
   5845     VerifyIntrinsicPrototype(ID, IF, 1, 2, MVT::v2f64, MVT::v4f64, MVT::i8);
   5846     break;
   5847   case Intrinsic::x86_sse2_cvtdq2pd:		// llvm.x86.sse2.cvtdq2pd
   5848     VerifyIntrinsicPrototype(ID, IF, 1, 1, MVT::v2f64, MVT::v4i32);
   5849     break;
   5850   case Intrinsic::x86_sse_cvtpi2pd:		// llvm.x86.sse.cvtpi2pd
   5851     VerifyIntrinsicPrototype(ID, IF, 1, 1, MVT::v2f64, MVT::x86mmx);
   5852     break;
   5853   case Intrinsic::x86_sse41_movntdqa:		// llvm.x86.sse41.movntdqa
   5854     VerifyIntrinsicPrototype(ID, IF, 1, 1, MVT::v2i64, MVT::iPTR);
   5855     break;
   5856   case Intrinsic::x86_sse41_pmovsxbq:		// llvm.x86.sse41.pmovsxbq
   5857   case Intrinsic::x86_sse41_pmovzxbq:		// llvm.x86.sse41.pmovzxbq
   5858     VerifyIntrinsicPrototype(ID, IF, 1, 1, MVT::v2i64, MVT::v16i8);
   5859     break;
   5860   case Intrinsic::x86_sse2_psad_bw:		// llvm.x86.sse2.psad.bw
   5861     VerifyIntrinsicPrototype(ID, IF, 1, 2, MVT::v2i64, MVT::v16i8, MVT::v16i8);
   5862     break;
   5863   case Intrinsic::x86_aesni_aesimc:		// llvm.x86.aesni.aesimc
   5864     VerifyIntrinsicPrototype(ID, IF, 1, 1, MVT::v2i64, MVT::v2i64);
   5865     break;
   5866   case Intrinsic::x86_sse2_psll_dq:		// llvm.x86.sse2.psll.dq
   5867   case Intrinsic::x86_sse2_psll_dq_bs:		// llvm.x86.sse2.psll.dq.bs
   5868   case Intrinsic::x86_sse2_pslli_q:		// llvm.x86.sse2.pslli.q
   5869   case Intrinsic::x86_sse2_psrl_dq:		// llvm.x86.sse2.psrl.dq
   5870   case Intrinsic::x86_sse2_psrl_dq_bs:		// llvm.x86.sse2.psrl.dq.bs
   5871   case Intrinsic::x86_sse2_psrli_q:		// llvm.x86.sse2.psrli.q
   5872     VerifyIntrinsicPrototype(ID, IF, 1, 2, MVT::v2i64, MVT::v2i64, MVT::i32);
   5873     break;
   5874   case Intrinsic::x86_aesni_aeskeygenassist:		// llvm.x86.aesni.aeskeygenassist
   5875     VerifyIntrinsicPrototype(ID, IF, 1, 2, MVT::v2i64, MVT::v2i64, MVT::i8);
   5876     break;
   5877   case Intrinsic::x86_aesni_aesdec:		// llvm.x86.aesni.aesdec
   5878   case Intrinsic::x86_aesni_aesdeclast:		// llvm.x86.aesni.aesdeclast
   5879   case Intrinsic::x86_aesni_aesenc:		// llvm.x86.aesni.aesenc
   5880   case Intrinsic::x86_aesni_aesenclast:		// llvm.x86.aesni.aesenclast
   5881   case Intrinsic::x86_sse2_psll_q:		// llvm.x86.sse2.psll.q
   5882   case Intrinsic::x86_sse2_psrl_q:		// llvm.x86.sse2.psrl.q
   5883   case Intrinsic::x86_sse41_pcmpeqq:		// llvm.x86.sse41.pcmpeqq
   5884   case Intrinsic::x86_sse42_pcmpgtq:		// llvm.x86.sse42.pcmpgtq
   5885     VerifyIntrinsicPrototype(ID, IF, 1, 2, MVT::v2i64, MVT::v2i64, MVT::v2i64);
   5886     break;
   5887   case Intrinsic::x86_sse41_pmovsxdq:		// llvm.x86.sse41.pmovsxdq
   5888   case Intrinsic::x86_sse41_pmovzxdq:		// llvm.x86.sse41.pmovzxdq
   5889     VerifyIntrinsicPrototype(ID, IF, 1, 1, MVT::v2i64, MVT::v4i32);
   5890     break;
   5891   case Intrinsic::x86_sse2_pmulu_dq:		// llvm.x86.sse2.pmulu.dq
   5892   case Intrinsic::x86_sse41_pmuldq:		// llvm.x86.sse41.pmuldq
   5893     VerifyIntrinsicPrototype(ID, IF, 1, 2, MVT::v2i64, MVT::v4i32, MVT::v4i32);
   5894     break;
   5895   case Intrinsic::x86_sse41_pmovsxwq:		// llvm.x86.sse41.pmovsxwq
   5896   case Intrinsic::x86_sse41_pmovzxwq:		// llvm.x86.sse41.pmovzxwq
   5897     VerifyIntrinsicPrototype(ID, IF, 1, 1, MVT::v2i64, MVT::v8i16);
   5898     break;
   5899   case Intrinsic::x86_avx_ldu_dq_256:		// llvm.x86.avx.ldu.dq.256
   5900   case Intrinsic::x86_avx_loadu_dq_256:		// llvm.x86.avx.loadu.dq.256
   5901     VerifyIntrinsicPrototype(ID, IF, 1, 1, MVT::v32i8, MVT::iPTR);
   5902     break;
   5903   case Intrinsic::x86_avx_vbroadcastss:		// llvm.x86.avx.vbroadcastss
   5904     VerifyIntrinsicPrototype(ID, IF, 1, 1, MVT::v4f32, MVT::iPTR);
   5905     break;
   5906   case Intrinsic::x86_avx_maskload_ps:		// llvm.x86.avx.maskload.ps
   5907     VerifyIntrinsicPrototype(ID, IF, 1, 2, MVT::v4f32, MVT::iPTR, MVT::v4f32);
   5908     break;
   5909   case Intrinsic::x86_sse2_cvtpd2ps:		// llvm.x86.sse2.cvtpd2ps
   5910     VerifyIntrinsicPrototype(ID, IF, 1, 1, MVT::v4f32, MVT::v2f64);
   5911     break;
   5912   case Intrinsic::x86_sse_rcp_ps:		// llvm.x86.sse.rcp.ps
   5913   case Intrinsic::x86_sse_rcp_ss:		// llvm.x86.sse.rcp.ss
   5914   case Intrinsic::x86_sse_rsqrt_ps:		// llvm.x86.sse.rsqrt.ps
   5915   case Intrinsic::x86_sse_rsqrt_ss:		// llvm.x86.sse.rsqrt.ss
   5916   case Intrinsic::x86_sse_sqrt_ps:		// llvm.x86.sse.sqrt.ps
   5917   case Intrinsic::x86_sse_sqrt_ss:		// llvm.x86.sse.sqrt.ss
   5918     VerifyIntrinsicPrototype(ID, IF, 1, 1, MVT::v4f32, MVT::v4f32);
   5919     break;
   5920   case Intrinsic::x86_sse41_round_ps:		// llvm.x86.sse41.round.ps
   5921   case Intrinsic::x86_sse_cvtsi2ss:		// llvm.x86.sse.cvtsi2ss
   5922     VerifyIntrinsicPrototype(ID, IF, 1, 2, MVT::v4f32, MVT::v4f32, MVT::i32);
   5923     break;
   5924   case Intrinsic::x86_sse_cvtsi642ss:		// llvm.x86.sse.cvtsi642ss
   5925     VerifyIntrinsicPrototype(ID, IF, 1, 2, MVT::v4f32, MVT::v4f32, MVT::i64);
   5926     break;
   5927   case Intrinsic::x86_avx_vpermil_ps:		// llvm.x86.avx.vpermil.ps
   5928     VerifyIntrinsicPrototype(ID, IF, 1, 2, MVT::v4f32, MVT::v4f32, MVT::i8);
   5929     break;
   5930   case Intrinsic::x86_sse2_cvtsd2ss:		// llvm.x86.sse2.cvtsd2ss
   5931     VerifyIntrinsicPrototype(ID, IF, 1, 2, MVT::v4f32, MVT::v4f32, MVT::v2f64);
   5932     break;
   5933   case Intrinsic::x86_sse3_addsub_ps:		// llvm.x86.sse3.addsub.ps
   5934   case Intrinsic::x86_sse3_hadd_ps:		// llvm.x86.sse3.hadd.ps
   5935   case Intrinsic::x86_sse3_hsub_ps:		// llvm.x86.sse3.hsub.ps
   5936   case Intrinsic::x86_sse_add_ss:		// llvm.x86.sse.add.ss
   5937   case Intrinsic::x86_sse_div_ss:		// llvm.x86.sse.div.ss
   5938   case Intrinsic::x86_sse_max_ps:		// llvm.x86.sse.max.ps
   5939   case Intrinsic::x86_sse_max_ss:		// llvm.x86.sse.max.ss
   5940   case Intrinsic::x86_sse_min_ps:		// llvm.x86.sse.min.ps
   5941   case Intrinsic::x86_sse_min_ss:		// llvm.x86.sse.min.ss
   5942   case Intrinsic::x86_sse_mul_ss:		// llvm.x86.sse.mul.ss
   5943   case Intrinsic::x86_sse_sub_ss:		// llvm.x86.sse.sub.ss
   5944     VerifyIntrinsicPrototype(ID, IF, 1, 2, MVT::v4f32, MVT::v4f32, MVT::v4f32);
   5945     break;
   5946   case Intrinsic::x86_sse41_blendps:		// llvm.x86.sse41.blendps
   5947   case Intrinsic::x86_sse41_dpps:		// llvm.x86.sse41.dpps
   5948   case Intrinsic::x86_sse41_insertps:		// llvm.x86.sse41.insertps
   5949   case Intrinsic::x86_sse41_round_ss:		// llvm.x86.sse41.round.ss
   5950     VerifyIntrinsicPrototype(ID, IF, 1, 3, MVT::v4f32, MVT::v4f32, MVT::v4f32, MVT::i32);
   5951     break;
   5952   case Intrinsic::x86_sse_cmp_ps:		// llvm.x86.sse.cmp.ps
   5953   case Intrinsic::x86_sse_cmp_ss:		// llvm.x86.sse.cmp.ss
   5954     VerifyIntrinsicPrototype(ID, IF, 1, 3, MVT::v4f32, MVT::v4f32, MVT::v4f32, MVT::i8);
   5955     break;
   5956   case Intrinsic::x86_sse41_blendvps:		// llvm.x86.sse41.blendvps
   5957     VerifyIntrinsicPrototype(ID, IF, 1, 3, MVT::v4f32, MVT::v4f32, MVT::v4f32, MVT::v4f32);
   5958     break;
   5959   case Intrinsic::x86_avx_vpermilvar_ps:		// llvm.x86.avx.vpermilvar.ps
   5960     VerifyIntrinsicPrototype(ID, IF, 1, 2, MVT::v4f32, MVT::v4f32, MVT::v4i32);
   5961     break;
   5962   case Intrinsic::x86_sse_cvtpi2ps:		// llvm.x86.sse.cvtpi2ps
   5963     VerifyIntrinsicPrototype(ID, IF, 1, 2, MVT::v4f32, MVT::v4f32, MVT::x86mmx);
   5964     break;
   5965   case Intrinsic::x86_avx_cvt_pd2_ps_256:		// llvm.x86.avx.cvt.pd2.ps.256
   5966     VerifyIntrinsicPrototype(ID, IF, 1, 1, MVT::v4f32, MVT::v4f64);
   5967     break;
   5968   case Intrinsic::x86_sse2_cvtdq2ps:		// llvm.x86.sse2.cvtdq2ps
   5969     VerifyIntrinsicPrototype(ID, IF, 1, 1, MVT::v4f32, MVT::v4i32);
   5970     break;
   5971   case Intrinsic::x86_avx_vextractf128_ps_256:		// llvm.x86.avx.vextractf128.ps.256
   5972     VerifyIntrinsicPrototype(ID, IF, 1, 2, MVT::v4f32, MVT::v8f32, MVT::i8);
   5973     break;
   5974   case Intrinsic::x86_avx_loadu_pd_256:		// llvm.x86.avx.loadu.pd.256
   5975   case Intrinsic::x86_avx_vbroadcast_sd_256:		// llvm.x86.avx.vbroadcast.sd.256
   5976   case Intrinsic::x86_avx_vbroadcastf128_pd_256:		// llvm.x86.avx.vbroadcastf128.pd.256
   5977     VerifyIntrinsicPrototype(ID, IF, 1, 1, MVT::v4f64, MVT::iPTR);
   5978     break;
   5979   case Intrinsic::x86_avx_maskload_pd_256:		// llvm.x86.avx.maskload.pd.256
   5980     VerifyIntrinsicPrototype(ID, IF, 1, 2, MVT::v4f64, MVT::iPTR, MVT::v4f64);
   5981     break;
   5982   case Intrinsic::x86_avx_cvt_ps2_pd_256:		// llvm.x86.avx.cvt.ps2.pd.256
   5983     VerifyIntrinsicPrototype(ID, IF, 1, 1, MVT::v4f64, MVT::v4f32);
   5984     break;
   5985   case Intrinsic::x86_avx_sqrt_pd_256:		// llvm.x86.avx.sqrt.pd.256
   5986     VerifyIntrinsicPrototype(ID, IF, 1, 1, MVT::v4f64, MVT::v4f64);
   5987     break;
   5988   case Intrinsic::x86_avx_round_pd_256:		// llvm.x86.avx.round.pd.256
   5989     VerifyIntrinsicPrototype(ID, IF, 1, 2, MVT::v4f64, MVT::v4f64, MVT::i32);
   5990     break;
   5991   case Intrinsic::x86_avx_vpermil_pd_256:		// llvm.x86.avx.vpermil.pd.256
   5992     VerifyIntrinsicPrototype(ID, IF, 1, 2, MVT::v4f64, MVT::v4f64, MVT::i8);
   5993     break;
   5994   case Intrinsic::x86_avx_vinsertf128_pd_256:		// llvm.x86.avx.vinsertf128.pd.256
   5995     VerifyIntrinsicPrototype(ID, IF, 1, 3, MVT::v4f64, MVT::v4f64, MVT::v2f64, MVT::i8);
   5996     break;
   5997   case Intrinsic::x86_avx_addsub_pd_256:		// llvm.x86.avx.addsub.pd.256
   5998   case Intrinsic::x86_avx_hadd_pd_256:		// llvm.x86.avx.hadd.pd.256
   5999   case Intrinsic::x86_avx_hsub_pd_256:		// llvm.x86.avx.hsub.pd.256
   6000   case Intrinsic::x86_avx_max_pd_256:		// llvm.x86.avx.max.pd.256
   6001   case Intrinsic::x86_avx_min_pd_256:		// llvm.x86.avx.min.pd.256
   6002     VerifyIntrinsicPrototype(ID, IF, 1, 2, MVT::v4f64, MVT::v4f64, MVT::v4f64);
   6003     break;
   6004   case Intrinsic::x86_avx_blend_pd_256:		// llvm.x86.avx.blend.pd.256
   6005     VerifyIntrinsicPrototype(ID, IF, 1, 3, MVT::v4f64, MVT::v4f64, MVT::v4f64, MVT::i32);
   6006     break;
   6007   case Intrinsic::x86_avx_cmp_pd_256:		// llvm.x86.avx.cmp.pd.256
   6008   case Intrinsic::x86_avx_vperm2f128_pd_256:		// llvm.x86.avx.vperm2f128.pd.256
   6009     VerifyIntrinsicPrototype(ID, IF, 1, 3, MVT::v4f64, MVT::v4f64, MVT::v4f64, MVT::i8);
   6010     break;
   6011   case Intrinsic::x86_avx_blendv_pd_256:		// llvm.x86.avx.blendv.pd.256
   6012     VerifyIntrinsicPrototype(ID, IF, 1, 3, MVT::v4f64, MVT::v4f64, MVT::v4f64, MVT::v4f64);
   6013     break;
   6014   case Intrinsic::x86_avx_vpermilvar_pd_256:		// llvm.x86.avx.vpermilvar.pd.256
   6015     VerifyIntrinsicPrototype(ID, IF, 1, 2, MVT::v4f64, MVT::v4f64, MVT::v4i64);
   6016     break;
   6017   case Intrinsic::x86_avx_cvtdq2_pd_256:		// llvm.x86.avx.cvtdq2.pd.256
   6018     VerifyIntrinsicPrototype(ID, IF, 1, 1, MVT::v4f64, MVT::v4i32);
   6019     break;
   6020   case Intrinsic::x86_sse41_pmovsxbd:		// llvm.x86.sse41.pmovsxbd
   6021   case Intrinsic::x86_sse41_pmovzxbd:		// llvm.x86.sse41.pmovzxbd
   6022     VerifyIntrinsicPrototype(ID, IF, 1, 1, MVT::v4i32, MVT::v16i8);
   6023     break;
   6024   case Intrinsic::x86_sse2_cvtpd2dq:		// llvm.x86.sse2.cvtpd2dq
   6025   case Intrinsic::x86_sse2_cvttpd2dq:		// llvm.x86.sse2.cvttpd2dq
   6026     VerifyIntrinsicPrototype(ID, IF, 1, 1, MVT::v4i32, MVT::v2f64);
   6027     break;
   6028   case Intrinsic::x86_sse2_cvtps2dq:		// llvm.x86.sse2.cvtps2dq
   6029   case Intrinsic::x86_sse2_cvttps2dq:		// llvm.x86.sse2.cvttps2dq
   6030     VerifyIntrinsicPrototype(ID, IF, 1, 1, MVT::v4i32, MVT::v4f32);
   6031     break;
   6032   case Intrinsic::x86_avx_cvt_pd2dq_256:		// llvm.x86.avx.cvt.pd2dq.256
   6033   case Intrinsic::x86_avx_cvtt_pd2dq_256:		// llvm.x86.avx.cvtt.pd2dq.256
   6034     VerifyIntrinsicPrototype(ID, IF, 1, 1, MVT::v4i32, MVT::v4f64);
   6035     break;
   6036   case Intrinsic::x86_ssse3_pabs_d_128:		// llvm.x86.ssse3.pabs.d.128
   6037     VerifyIntrinsicPrototype(ID, IF, 1, 1, MVT::v4i32, MVT::v4i32);
   6038     break;
   6039   case Intrinsic::x86_sse2_pslli_d:		// llvm.x86.sse2.pslli.d
   6040   case Intrinsic::x86_sse2_psrai_d:		// llvm.x86.sse2.psrai.d
   6041   case Intrinsic::x86_sse2_psrli_d:		// llvm.x86.sse2.psrli.d
   6042     VerifyIntrinsicPrototype(ID, IF, 1, 2, MVT::v4i32, MVT::v4i32, MVT::i32);
   6043     break;
   6044   case Intrinsic::x86_sse2_pcmpeq_d:		// llvm.x86.sse2.pcmpeq.d
   6045   case Intrinsic::x86_sse2_pcmpgt_d:		// llvm.x86.sse2.pcmpgt.d
   6046   case Intrinsic::x86_sse2_psll_d:		// llvm.x86.sse2.psll.d
   6047   case Intrinsic::x86_sse2_psra_d:		// llvm.x86.sse2.psra.d
   6048   case Intrinsic::x86_sse2_psrl_d:		// llvm.x86.sse2.psrl.d
   6049   case Intrinsic::x86_sse41_pmaxsd:		// llvm.x86.sse41.pmaxsd
   6050   case Intrinsic::x86_sse41_pmaxud:		// llvm.x86.sse41.pmaxud
   6051   case Intrinsic::x86_sse41_pminsd:		// llvm.x86.sse41.pminsd
   6052   case Intrinsic::x86_sse41_pminud:		// llvm.x86.sse41.pminud
   6053   case Intrinsic::x86_ssse3_phadd_d_128:		// llvm.x86.ssse3.phadd.d.128
   6054   case Intrinsic::x86_ssse3_phadd_sw_128:		// llvm.x86.ssse3.phadd.sw.128
   6055   case Intrinsic::x86_ssse3_phsub_d_128:		// llvm.x86.ssse3.phsub.d.128
   6056   case Intrinsic::x86_ssse3_psign_d_128:		// llvm.x86.ssse3.psign.d.128
   6057     VerifyIntrinsicPrototype(ID, IF, 1, 2, MVT::v4i32, MVT::v4i32, MVT::v4i32);
   6058     break;
   6059   case Intrinsic::x86_sse41_pmovsxwd:		// llvm.x86.sse41.pmovsxwd
   6060   case Intrinsic::x86_sse41_pmovzxwd:		// llvm.x86.sse41.pmovzxwd
   6061     VerifyIntrinsicPrototype(ID, IF, 1, 1, MVT::v4i32, MVT::v8i16);
   6062     break;
   6063   case Intrinsic::x86_sse2_pmadd_wd:		// llvm.x86.sse2.pmadd.wd
   6064     VerifyIntrinsicPrototype(ID, IF, 1, 2, MVT::v4i32, MVT::v8i16, MVT::v8i16);
   6065     break;
   6066   case Intrinsic::x86_avx_vextractf128_si_256:		// llvm.x86.avx.vextractf128.si.256
   6067     VerifyIntrinsicPrototype(ID, IF, 1, 2, MVT::v4i32, MVT::v8i32, MVT::i8);
   6068     break;
   6069   case Intrinsic::x86_avx_loadu_ps_256:		// llvm.x86.avx.loadu.ps.256
   6070   case Intrinsic::x86_avx_vbroadcastf128_ps_256:		// llvm.x86.avx.vbroadcastf128.ps.256
   6071   case Intrinsic::x86_avx_vbroadcastss_256:		// llvm.x86.avx.vbroadcastss.256
   6072     VerifyIntrinsicPrototype(ID, IF, 1, 1, MVT::v8f32, MVT::iPTR);
   6073     break;
   6074   case Intrinsic::x86_avx_maskload_ps_256:		// llvm.x86.avx.maskload.ps.256
   6075     VerifyIntrinsicPrototype(ID, IF, 1, 2, MVT::v8f32, MVT::iPTR, MVT::v8f32);
   6076     break;
   6077   case Intrinsic::x86_avx_rcp_ps_256:		// llvm.x86.avx.rcp.ps.256
   6078   case Intrinsic::x86_avx_rsqrt_ps_256:		// llvm.x86.avx.rsqrt.ps.256
   6079   case Intrinsic::x86_avx_sqrt_ps_256:		// llvm.x86.avx.sqrt.ps.256
   6080     VerifyIntrinsicPrototype(ID, IF, 1, 1, MVT::v8f32, MVT::v8f32);
   6081     break;
   6082   case Intrinsic::x86_avx_round_ps_256:		// llvm.x86.avx.round.ps.256
   6083     VerifyIntrinsicPrototype(ID, IF, 1, 2, MVT::v8f32, MVT::v8f32, MVT::i32);
   6084     break;
   6085   case Intrinsic::x86_avx_vpermil_ps_256:		// llvm.x86.avx.vpermil.ps.256
   6086     VerifyIntrinsicPrototype(ID, IF, 1, 2, MVT::v8f32, MVT::v8f32, MVT::i8);
   6087     break;
   6088   case Intrinsic::x86_avx_vinsertf128_ps_256:		// llvm.x86.avx.vinsertf128.ps.256
   6089     VerifyIntrinsicPrototype(ID, IF, 1, 3, MVT::v8f32, MVT::v8f32, MVT::v4f32, MVT::i8);
   6090     break;
   6091   case Intrinsic::x86_avx_addsub_ps_256:		// llvm.x86.avx.addsub.ps.256
   6092   case Intrinsic::x86_avx_hadd_ps_256:		// llvm.x86.avx.hadd.ps.256
   6093   case Intrinsic::x86_avx_hsub_ps_256:		// llvm.x86.avx.hsub.ps.256
   6094   case Intrinsic::x86_avx_max_ps_256:		// llvm.x86.avx.max.ps.256
   6095   case Intrinsic::x86_avx_min_ps_256:		// llvm.x86.avx.min.ps.256
   6096     VerifyIntrinsicPrototype(ID, IF, 1, 2, MVT::v8f32, MVT::v8f32, MVT::v8f32);
   6097     break;
   6098   case Intrinsic::x86_avx_blend_ps_256:		// llvm.x86.avx.blend.ps.256
   6099   case Intrinsic::x86_avx_dp_ps_256:		// llvm.x86.avx.dp.ps.256
   6100     VerifyIntrinsicPrototype(ID, IF, 1, 3, MVT::v8f32, MVT::v8f32, MVT::v8f32, MVT::i32);
   6101     break;
   6102   case Intrinsic::x86_avx_cmp_ps_256:		// llvm.x86.avx.cmp.ps.256
   6103   case Intrinsic::x86_avx_vperm2f128_ps_256:		// llvm.x86.avx.vperm2f128.ps.256
   6104     VerifyIntrinsicPrototype(ID, IF, 1, 3, MVT::v8f32, MVT::v8f32, MVT::v8f32, MVT::i8);
   6105     break;
   6106   case Intrinsic::x86_avx_blendv_ps_256:		// llvm.x86.avx.blendv.ps.256
   6107     VerifyIntrinsicPrototype(ID, IF, 1, 3, MVT::v8f32, MVT::v8f32, MVT::v8f32, MVT::v8f32);
   6108     break;
   6109   case Intrinsic::x86_avx_vpermilvar_ps_256:		// llvm.x86.avx.vpermilvar.ps.256
   6110     VerifyIntrinsicPrototype(ID, IF, 1, 2, MVT::v8f32, MVT::v8f32, MVT::v8i32);
   6111     break;
   6112   case Intrinsic::x86_avx_cvtdq2_ps_256:		// llvm.x86.avx.cvtdq2.ps.256
   6113     VerifyIntrinsicPrototype(ID, IF, 1, 1, MVT::v8f32, MVT::v8i32);
   6114     break;
   6115   case Intrinsic::x86_sse41_pmovsxbw:		// llvm.x86.sse41.pmovsxbw
   6116   case Intrinsic::x86_sse41_pmovzxbw:		// llvm.x86.sse41.pmovzxbw
   6117     VerifyIntrinsicPrototype(ID, IF, 1, 1, MVT::v8i16, MVT::v16i8);
   6118     break;
   6119   case Intrinsic::x86_sse2_packssdw_128:		// llvm.x86.sse2.packssdw.128
   6120   case Intrinsic::x86_sse41_packusdw:		// llvm.x86.sse41.packusdw
   6121     VerifyIntrinsicPrototype(ID, IF, 1, 2, MVT::v8i16, MVT::v4i32, MVT::v4i32);
   6122     break;
   6123   case Intrinsic::x86_sse41_phminposuw:		// llvm.x86.sse41.phminposuw
   6124   case Intrinsic::x86_ssse3_pabs_w_128:		// llvm.x86.ssse3.pabs.w.128
   6125     VerifyIntrinsicPrototype(ID, IF, 1, 1, MVT::v8i16, MVT::v8i16);
   6126     break;
   6127   case Intrinsic::x86_sse2_pslli_w:		// llvm.x86.sse2.pslli.w
   6128   case Intrinsic::x86_sse2_psrai_w:		// llvm.x86.sse2.psrai.w
   6129   case Intrinsic::x86_sse2_psrli_w:		// llvm.x86.sse2.psrli.w
   6130     VerifyIntrinsicPrototype(ID, IF, 1, 2, MVT::v8i16, MVT::v8i16, MVT::i32);
   6131     break;
   6132   case Intrinsic::x86_sse2_padds_w:		// llvm.x86.sse2.padds.w
   6133   case Intrinsic::x86_sse2_paddus_w:		// llvm.x86.sse2.paddus.w
   6134   case Intrinsic::x86_sse2_pavg_w:		// llvm.x86.sse2.pavg.w
   6135   case Intrinsic::x86_sse2_pcmpeq_w:		// llvm.x86.sse2.pcmpeq.w
   6136   case Intrinsic::x86_sse2_pcmpgt_w:		// llvm.x86.sse2.pcmpgt.w
   6137   case Intrinsic::x86_sse2_pmaxs_w:		// llvm.x86.sse2.pmaxs.w
   6138   case Intrinsic::x86_sse2_pmins_w:		// llvm.x86.sse2.pmins.w
   6139   case Intrinsic::x86_sse2_pmulh_w:		// llvm.x86.sse2.pmulh.w
   6140   case Intrinsic::x86_sse2_pmulhu_w:		// llvm.x86.sse2.pmulhu.w
   6141   case Intrinsic::x86_sse2_psll_w:		// llvm.x86.sse2.psll.w
   6142   case Intrinsic::x86_sse2_psra_w:		// llvm.x86.sse2.psra.w
   6143   case Intrinsic::x86_sse2_psrl_w:		// llvm.x86.sse2.psrl.w
   6144   case Intrinsic::x86_sse2_psubs_w:		// llvm.x86.sse2.psubs.w
   6145   case Intrinsic::x86_sse2_psubus_w:		// llvm.x86.sse2.psubus.w
   6146   case Intrinsic::x86_sse41_pmaxuw:		// llvm.x86.sse41.pmaxuw
   6147   case Intrinsic::x86_sse41_pminuw:		// llvm.x86.sse41.pminuw
   6148   case Intrinsic::x86_ssse3_phadd_w_128:		// llvm.x86.ssse3.phadd.w.128
   6149   case Intrinsic::x86_ssse3_phsub_sw_128:		// llvm.x86.ssse3.phsub.sw.128
   6150   case Intrinsic::x86_ssse3_phsub_w_128:		// llvm.x86.ssse3.phsub.w.128
   6151   case Intrinsic::x86_ssse3_pmadd_ub_sw_128:		// llvm.x86.ssse3.pmadd.ub.sw.128
   6152   case Intrinsic::x86_ssse3_pmul_hr_sw_128:		// llvm.x86.ssse3.pmul.hr.sw.128
   6153   case Intrinsic::x86_ssse3_psign_w_128:		// llvm.x86.ssse3.psign.w.128
   6154     VerifyIntrinsicPrototype(ID, IF, 1, 2, MVT::v8i16, MVT::v8i16, MVT::v8i16);
   6155     break;
   6156   case Intrinsic::x86_sse41_pblendw:		// llvm.x86.sse41.pblendw
   6157     VerifyIntrinsicPrototype(ID, IF, 1, 3, MVT::v8i16, MVT::v8i16, MVT::v8i16, MVT::i32);
   6158     break;
   6159   case Intrinsic::x86_avx_cvt_ps2dq_256:		// llvm.x86.avx.cvt.ps2dq.256
   6160   case Intrinsic::x86_avx_cvtt_ps2dq_256:		// llvm.x86.avx.cvtt.ps2dq.256
   6161     VerifyIntrinsicPrototype(ID, IF, 1, 1, MVT::v8i32, MVT::v8f32);
   6162     break;
   6163   case Intrinsic::x86_avx_vinsertf128_si_256:		// llvm.x86.avx.vinsertf128.si.256
   6164     VerifyIntrinsicPrototype(ID, IF, 1, 3, MVT::v8i32, MVT::v8i32, MVT::v4i32, MVT::i8);
   6165     break;
   6166   case Intrinsic::x86_avx_vperm2f128_si_256:		// llvm.x86.avx.vperm2f128.si.256
   6167     VerifyIntrinsicPrototype(ID, IF, 1, 3, MVT::v8i32, MVT::v8i32, MVT::v8i32, MVT::i8);
   6168     break;
   6169   case Intrinsic::x86_sse_cvtpd2pi:		// llvm.x86.sse.cvtpd2pi
   6170   case Intrinsic::x86_sse_cvttpd2pi:		// llvm.x86.sse.cvttpd2pi
   6171     VerifyIntrinsicPrototype(ID, IF, 1, 1, MVT::x86mmx, MVT::v2f64);
   6172     break;
   6173   case Intrinsic::x86_sse_cvtps2pi:		// llvm.x86.sse.cvtps2pi
   6174   case Intrinsic::x86_sse_cvttps2pi:		// llvm.x86.sse.cvttps2pi
   6175     VerifyIntrinsicPrototype(ID, IF, 1, 1, MVT::x86mmx, MVT::v4f32);
   6176     break;
   6177   case Intrinsic::x86_3dnow_pf2id:		// llvm.x86.3dnow.pf2id
   6178   case Intrinsic::x86_3dnow_pfrcp:		// llvm.x86.3dnow.pfrcp
   6179   case Intrinsic::x86_3dnow_pfrsqrt:		// llvm.x86.3dnow.pfrsqrt
   6180   case Intrinsic::x86_3dnow_pi2fd:		// llvm.x86.3dnow.pi2fd
   6181   case Intrinsic::x86_3dnowa_pf2iw:		// llvm.x86.3dnowa.pf2iw
   6182   case Intrinsic::x86_3dnowa_pi2fw:		// llvm.x86.3dnowa.pi2fw
   6183   case Intrinsic::x86_3dnowa_pswapd:		// llvm.x86.3dnowa.pswapd
   6184   case Intrinsic::x86_ssse3_pabs_b:		// llvm.x86.ssse3.pabs.b
   6185   case Intrinsic::x86_ssse3_pabs_d:		// llvm.x86.ssse3.pabs.d
   6186   case Intrinsic::x86_ssse3_pabs_w:		// llvm.x86.ssse3.pabs.w
   6187     VerifyIntrinsicPrototype(ID, IF, 1, 1, MVT::x86mmx, MVT::x86mmx);
   6188     break;
   6189   case Intrinsic::x86_mmx_pslli_d:		// llvm.x86.mmx.pslli.d
   6190   case Intrinsic::x86_mmx_pslli_q:		// llvm.x86.mmx.pslli.q
   6191   case Intrinsic::x86_mmx_pslli_w:		// llvm.x86.mmx.pslli.w
   6192   case Intrinsic::x86_mmx_psrai_d:		// llvm.x86.mmx.psrai.d
   6193   case Intrinsic::x86_mmx_psrai_w:		// llvm.x86.mmx.psrai.w
   6194   case Intrinsic::x86_mmx_psrli_d:		// llvm.x86.mmx.psrli.d
   6195   case Intrinsic::x86_mmx_psrli_q:		// llvm.x86.mmx.psrli.q
   6196   case Intrinsic::x86_mmx_psrli_w:		// llvm.x86.mmx.psrli.w
   6197     VerifyIntrinsicPrototype(ID, IF, 1, 2, MVT::x86mmx, MVT::x86mmx, MVT::i32);
   6198     break;
   6199   case Intrinsic::x86_mmx_pinsr_w:		// llvm.x86.mmx.pinsr.w
   6200     VerifyIntrinsicPrototype(ID, IF, 1, 3, MVT::x86mmx, MVT::x86mmx, MVT::i32, MVT::i32);
   6201     break;
   6202   case Intrinsic::x86_sse_pshuf_w:		// llvm.x86.sse.pshuf.w
   6203     VerifyIntrinsicPrototype(ID, IF, 1, 2, MVT::x86mmx, MVT::x86mmx, MVT::i8);
   6204     break;
   6205   case Intrinsic::x86_3dnow_pavgusb:		// llvm.x86.3dnow.pavgusb
   6206   case Intrinsic::x86_3dnow_pfacc:		// llvm.x86.3dnow.pfacc
   6207   case Intrinsic::x86_3dnow_pfadd:		// llvm.x86.3dnow.pfadd
   6208   case Intrinsic::x86_3dnow_pfcmpeq:		// llvm.x86.3dnow.pfcmpeq
   6209   case Intrinsic::x86_3dnow_pfcmpge:		// llvm.x86.3dnow.pfcmpge
   6210   case Intrinsic::x86_3dnow_pfcmpgt:		// llvm.x86.3dnow.pfcmpgt
   6211   case Intrinsic::x86_3dnow_pfmax:		// llvm.x86.3dnow.pfmax
   6212   case Intrinsic::x86_3dnow_pfmin:		// llvm.x86.3dnow.pfmin
   6213   case Intrinsic::x86_3dnow_pfmul:		// llvm.x86.3dnow.pfmul
   6214   case Intrinsic::x86_3dnow_pfrcpit1:		// llvm.x86.3dnow.pfrcpit1
   6215   case Intrinsic::x86_3dnow_pfrcpit2:		// llvm.x86.3dnow.pfrcpit2
   6216   case Intrinsic::x86_3dnow_pfrsqit1:		// llvm.x86.3dnow.pfrsqit1
   6217   case Intrinsic::x86_3dnow_pfsub:		// llvm.x86.3dnow.pfsub
   6218   case Intrinsic::x86_3dnow_pfsubr:		// llvm.x86.3dnow.pfsubr
   6219   case Intrinsic::x86_3dnow_pmulhrw:		// llvm.x86.3dnow.pmulhrw
   6220   case Intrinsic::x86_3dnowa_pfnacc:		// llvm.x86.3dnowa.pfnacc
   6221   case Intrinsic::x86_3dnowa_pfpnacc:		// llvm.x86.3dnowa.pfpnacc
   6222   case Intrinsic::x86_mmx_packssdw:		// llvm.x86.mmx.packssdw
   6223   case Intrinsic::x86_mmx_packsswb:		// llvm.x86.mmx.packsswb
   6224   case Intrinsic::x86_mmx_packuswb:		// llvm.x86.mmx.packuswb
   6225   case Intrinsic::x86_mmx_padd_b:		// llvm.x86.mmx.padd.b
   6226   case Intrinsic::x86_mmx_padd_d:		// llvm.x86.mmx.padd.d
   6227   case Intrinsic::x86_mmx_padd_q:		// llvm.x86.mmx.padd.q
   6228   case Intrinsic::x86_mmx_padd_w:		// llvm.x86.mmx.padd.w
   6229   case Intrinsic::x86_mmx_padds_b:		// llvm.x86.mmx.padds.b
   6230   case Intrinsic::x86_mmx_padds_w:		// llvm.x86.mmx.padds.w
   6231   case Intrinsic::x86_mmx_paddus_b:		// llvm.x86.mmx.paddus.b
   6232   case Intrinsic::x86_mmx_paddus_w:		// llvm.x86.mmx.paddus.w
   6233   case Intrinsic::x86_mmx_pand:		// llvm.x86.mmx.pand
   6234   case Intrinsic::x86_mmx_pandn:		// llvm.x86.mmx.pandn
   6235   case Intrinsic::x86_mmx_pavg_b:		// llvm.x86.mmx.pavg.b
   6236   case Intrinsic::x86_mmx_pavg_w:		// llvm.x86.mmx.pavg.w
   6237   case Intrinsic::x86_mmx_pcmpeq_b:		// llvm.x86.mmx.pcmpeq.b
   6238   case Intrinsic::x86_mmx_pcmpeq_d:		// llvm.x86.mmx.pcmpeq.d
   6239   case Intrinsic::x86_mmx_pcmpeq_w:		// llvm.x86.mmx.pcmpeq.w
   6240   case Intrinsic::x86_mmx_pcmpgt_b:		// llvm.x86.mmx.pcmpgt.b
   6241   case Intrinsic::x86_mmx_pcmpgt_d:		// llvm.x86.mmx.pcmpgt.d
   6242   case Intrinsic::x86_mmx_pcmpgt_w:		// llvm.x86.mmx.pcmpgt.w
   6243   case Intrinsic::x86_mmx_pmadd_wd:		// llvm.x86.mmx.pmadd.wd
   6244   case Intrinsic::x86_mmx_pmaxs_w:		// llvm.x86.mmx.pmaxs.w
   6245   case Intrinsic::x86_mmx_pmaxu_b:		// llvm.x86.mmx.pmaxu.b
   6246   case Intrinsic::x86_mmx_pmins_w:		// llvm.x86.mmx.pmins.w
   6247   case Intrinsic::x86_mmx_pminu_b:		// llvm.x86.mmx.pminu.b
   6248   case Intrinsic::x86_mmx_pmulh_w:		// llvm.x86.mmx.pmulh.w
   6249   case Intrinsic::x86_mmx_pmulhu_w:		// llvm.x86.mmx.pmulhu.w
   6250   case Intrinsic::x86_mmx_pmull_w:		// llvm.x86.mmx.pmull.w
   6251   case Intrinsic::x86_mmx_pmulu_dq:		// llvm.x86.mmx.pmulu.dq
   6252   case Intrinsic::x86_mmx_por:		// llvm.x86.mmx.por
   6253   case Intrinsic::x86_mmx_psad_bw:		// llvm.x86.mmx.psad.bw
   6254   case Intrinsic::x86_mmx_psll_d:		// llvm.x86.mmx.psll.d
   6255   case Intrinsic::x86_mmx_psll_q:		// llvm.x86.mmx.psll.q
   6256   case Intrinsic::x86_mmx_psll_w:		// llvm.x86.mmx.psll.w
   6257   case Intrinsic::x86_mmx_psra_d:		// llvm.x86.mmx.psra.d
   6258   case Intrinsic::x86_mmx_psra_w:		// llvm.x86.mmx.psra.w
   6259   case Intrinsic::x86_mmx_psrl_d:		// llvm.x86.mmx.psrl.d
   6260   case Intrinsic::x86_mmx_psrl_q:		// llvm.x86.mmx.psrl.q
   6261   case Intrinsic::x86_mmx_psrl_w:		// llvm.x86.mmx.psrl.w
   6262   case Intrinsic::x86_mmx_psub_b:		// llvm.x86.mmx.psub.b
   6263   case Intrinsic::x86_mmx_psub_d:		// llvm.x86.mmx.psub.d
   6264   case Intrinsic::x86_mmx_psub_q:		// llvm.x86.mmx.psub.q
   6265   case Intrinsic::x86_mmx_psub_w:		// llvm.x86.mmx.psub.w
   6266   case Intrinsic::x86_mmx_psubs_b:		// llvm.x86.mmx.psubs.b
   6267   case Intrinsic::x86_mmx_psubs_w:		// llvm.x86.mmx.psubs.w
   6268   case Intrinsic::x86_mmx_psubus_b:		// llvm.x86.mmx.psubus.b
   6269   case Intrinsic::x86_mmx_psubus_w:		// llvm.x86.mmx.psubus.w
   6270   case Intrinsic::x86_mmx_punpckhbw:		// llvm.x86.mmx.punpckhbw
   6271   case Intrinsic::x86_mmx_punpckhdq:		// llvm.x86.mmx.punpckhdq
   6272   case Intrinsic::x86_mmx_punpckhwd:		// llvm.x86.mmx.punpckhwd
   6273   case Intrinsic::x86_mmx_punpcklbw:		// llvm.x86.mmx.punpcklbw
   6274   case Intrinsic::x86_mmx_punpckldq:		// llvm.x86.mmx.punpckldq
   6275   case Intrinsic::x86_mmx_punpcklwd:		// llvm.x86.mmx.punpcklwd
   6276   case Intrinsic::x86_mmx_pxor:		// llvm.x86.mmx.pxor
   6277   case Intrinsic::x86_ssse3_phadd_d:		// llvm.x86.ssse3.phadd.d
   6278   case Intrinsic::x86_ssse3_phadd_sw:		// llvm.x86.ssse3.phadd.sw
   6279   case Intrinsic::x86_ssse3_phadd_w:		// llvm.x86.ssse3.phadd.w
   6280   case Intrinsic::x86_ssse3_phsub_d:		// llvm.x86.ssse3.phsub.d
   6281   case Intrinsic::x86_ssse3_phsub_sw:		// llvm.x86.ssse3.phsub.sw
   6282   case Intrinsic::x86_ssse3_phsub_w:		// llvm.x86.ssse3.phsub.w
   6283   case Intrinsic::x86_ssse3_pmadd_ub_sw:		// llvm.x86.ssse3.pmadd.ub.sw
   6284   case Intrinsic::x86_ssse3_pmul_hr_sw:		// llvm.x86.ssse3.pmul.hr.sw
   6285   case Intrinsic::x86_ssse3_pshuf_b:		// llvm.x86.ssse3.pshuf.b
   6286   case Intrinsic::x86_ssse3_psign_b:		// llvm.x86.ssse3.psign.b
   6287   case Intrinsic::x86_ssse3_psign_d:		// llvm.x86.ssse3.psign.d
   6288   case Intrinsic::x86_ssse3_psign_w:		// llvm.x86.ssse3.psign.w
   6289     VerifyIntrinsicPrototype(ID, IF, 1, 2, MVT::x86mmx, MVT::x86mmx, MVT::x86mmx);
   6290     break;
   6291   case Intrinsic::x86_mmx_palignr_b:		// llvm.x86.mmx.palignr.b
   6292     VerifyIntrinsicPrototype(ID, IF, 1, 3, MVT::x86mmx, MVT::x86mmx, MVT::x86mmx, MVT::i8);
   6293     break;
   6294   }
   6295 #endif
   6296 
   6297 // Code for generating Intrinsic function declarations.
   6298 #ifdef GET_INTRINSIC_GENERATOR
   6299   switch (id) {
   6300   default: assert(0 && "Invalid intrinsic!");
   6301   case Intrinsic::eh_unwind_init:		// llvm.eh.unwind.init
   6302   case Intrinsic::trap:		// llvm.trap
   6303   case Intrinsic::x86_avx_vzeroall:		// llvm.x86.avx.vzeroall
   6304   case Intrinsic::x86_avx_vzeroupper:		// llvm.x86.avx.vzeroupper
   6305   case Intrinsic::x86_mmx_emms:		// llvm.x86.mmx.emms
   6306   case Intrinsic::x86_mmx_femms:		// llvm.x86.mmx.femms
   6307   case Intrinsic::x86_sse2_lfence:		// llvm.x86.sse2.lfence
   6308   case Intrinsic::x86_sse2_mfence:		// llvm.x86.sse2.mfence
   6309   case Intrinsic::x86_sse_sfence:		// llvm.x86.sse.sfence
   6310     ResultTy = Type::getVoidTy(Context);
   6311     break;
   6312   case Intrinsic::memcpy:		// llvm.memcpy
   6313   case Intrinsic::memmove:		// llvm.memmove
   6314     ResultTy = Type::getVoidTy(Context);
   6315     ArgTys.push_back((0 < Tys.size()) ? Tys[0] : PointerType::getUnqual(IntegerType::get(Context, 8)));
   6316     ArgTys.push_back((1 < Tys.size()) ? Tys[1] : PointerType::getUnqual(IntegerType::get(Context, 8)));
   6317     ArgTys.push_back(Tys[2]);
   6318     ArgTys.push_back(IntegerType::get(Context, 32));
   6319     ArgTys.push_back(IntegerType::get(Context, 1));
   6320     break;
   6321   case Intrinsic::memset:		// llvm.memset
   6322     ResultTy = Type::getVoidTy(Context);
   6323     ArgTys.push_back((0 < Tys.size()) ? Tys[0] : PointerType::getUnqual(IntegerType::get(Context, 8)));
   6324     ArgTys.push_back(IntegerType::get(Context, 8));
   6325     ArgTys.push_back(Tys[1]);
   6326     ArgTys.push_back(IntegerType::get(Context, 32));
   6327     ArgTys.push_back(IntegerType::get(Context, 1));
   6328     break;
   6329   case Intrinsic::invariant_end:		// llvm.invariant.end
   6330     ResultTy = Type::getVoidTy(Context);
   6331     ArgTys.push_back(PointerType::getUnqual(StructType::get(Context)));
   6332     ArgTys.push_back(IntegerType::get(Context, 64));
   6333     ArgTys.push_back(PointerType::getUnqual(IntegerType::get(Context, 8)));
   6334     break;
   6335   case Intrinsic::eh_sjlj_callsite:		// llvm.eh.sjlj.callsite
   6336   case Intrinsic::eh_sjlj_dispatch_setup:		// llvm.eh.sjlj.dispatch.setup
   6337   case Intrinsic::pcmarker:		// llvm.pcmarker
   6338     ResultTy = Type::getVoidTy(Context);
   6339     ArgTys.push_back(IntegerType::get(Context, 32));
   6340     break;
   6341   case Intrinsic::x86_sse3_mwait:		// llvm.x86.sse3.mwait
   6342     ResultTy = Type::getVoidTy(Context);
   6343     ArgTys.push_back(IntegerType::get(Context, 32));
   6344     ArgTys.push_back(IntegerType::get(Context, 32));
   6345     break;
   6346   case Intrinsic::eh_return_i32:		// llvm.eh.return.i32
   6347     ResultTy = Type::getVoidTy(Context);
   6348     ArgTys.push_back(IntegerType::get(Context, 32));
   6349     ArgTys.push_back(PointerType::getUnqual(IntegerType::get(Context, 8)));
   6350     break;
   6351   case Intrinsic::eh_return_i64:		// llvm.eh.return.i64
   6352   case Intrinsic::lifetime_end:		// llvm.lifetime.end
   6353   case Intrinsic::lifetime_start:		// llvm.lifetime.start
   6354     ResultTy = Type::getVoidTy(Context);
   6355     ArgTys.push_back(IntegerType::get(Context, 64));
   6356     ArgTys.push_back(PointerType::getUnqual(IntegerType::get(Context, 8)));
   6357     break;
   6358   case Intrinsic::x86_int:		// llvm.x86.int
   6359     ResultTy = Type::getVoidTy(Context);
   6360     ArgTys.push_back(IntegerType::get(Context, 8));
   6361     break;
   6362   case Intrinsic::dbg_value:		// llvm.dbg.value
   6363     ResultTy = Type::getVoidTy(Context);
   6364     ArgTys.push_back(Type::getMetadataTy(Context));
   6365     ArgTys.push_back(IntegerType::get(Context, 64));
   6366     ArgTys.push_back(Type::getMetadataTy(Context));
   6367     break;
   6368   case Intrinsic::dbg_declare:		// llvm.dbg.declare
   6369     ResultTy = Type::getVoidTy(Context);
   6370     ArgTys.push_back(Type::getMetadataTy(Context));
   6371     ArgTys.push_back(Type::getMetadataTy(Context));
   6372     break;
   6373   case Intrinsic::eh_sjlj_functioncontext:		// llvm.eh.sjlj.functioncontext
   6374   case Intrinsic::eh_sjlj_longjmp:		// llvm.eh.sjlj.longjmp
   6375   case Intrinsic::stackrestore:		// llvm.stackrestore
   6376   case Intrinsic::vaend:		// llvm.va_end
   6377   case Intrinsic::vastart:		// llvm.va_start
   6378   case Intrinsic::x86_sse2_clflush:		// llvm.x86.sse2.clflush
   6379   case Intrinsic::x86_sse_ldmxcsr:		// llvm.x86.sse.ldmxcsr
   6380   case Intrinsic::x86_sse_stmxcsr:		// llvm.x86.sse.stmxcsr
   6381     ResultTy = Type::getVoidTy(Context);
   6382     ArgTys.push_back(PointerType::getUnqual(IntegerType::get(Context, 8)));
   6383     break;
   6384   case Intrinsic::eh_resume:		// llvm.eh.resume
   6385   case Intrinsic::longjmp:		// llvm.longjmp
   6386   case Intrinsic::siglongjmp:		// llvm.siglongjmp
   6387     ResultTy = Type::getVoidTy(Context);
   6388     ArgTys.push_back(PointerType::getUnqual(IntegerType::get(Context, 8)));
   6389     ArgTys.push_back(IntegerType::get(Context, 32));
   6390     break;
   6391   case Intrinsic::x86_sse3_monitor:		// llvm.x86.sse3.monitor
   6392     ResultTy = Type::getVoidTy(Context);
   6393     ArgTys.push_back(PointerType::getUnqual(IntegerType::get(Context, 8)));
   6394     ArgTys.push_back(IntegerType::get(Context, 32));
   6395     ArgTys.push_back(IntegerType::get(Context, 32));
   6396     break;
   6397   case Intrinsic::prefetch:		// llvm.prefetch
   6398     ResultTy = Type::getVoidTy(Context);
   6399     ArgTys.push_back(PointerType::getUnqual(IntegerType::get(Context, 8)));
   6400     ArgTys.push_back(IntegerType::get(Context, 32));
   6401     ArgTys.push_back(IntegerType::get(Context, 32));
   6402     ArgTys.push_back(IntegerType::get(Context, 32));
   6403     break;
   6404   case Intrinsic::vacopy:		// llvm.va_copy
   6405     ResultTy = Type::getVoidTy(Context);
   6406     ArgTys.push_back(PointerType::getUnqual(IntegerType::get(Context, 8)));
   6407     ArgTys.push_back(PointerType::getUnqual(IntegerType::get(Context, 8)));
   6408     break;
   6409   case Intrinsic::init_trampoline:		// llvm.init.trampoline
   6410     ResultTy = Type::getVoidTy(Context);
   6411     ArgTys.push_back(PointerType::getUnqual(IntegerType::get(Context, 8)));
   6412     ArgTys.push_back(PointerType::getUnqual(IntegerType::get(Context, 8)));
   6413     ArgTys.push_back(PointerType::getUnqual(IntegerType::get(Context, 8)));
   6414     break;
   6415   case Intrinsic::var_annotation:		// llvm.var.annotation
   6416     ResultTy = Type::getVoidTy(Context);
   6417     ArgTys.push_back(PointerType::getUnqual(IntegerType::get(Context, 8)));
   6418     ArgTys.push_back(PointerType::getUnqual(IntegerType::get(Context, 8)));
   6419     ArgTys.push_back(PointerType::getUnqual(IntegerType::get(Context, 8)));
   6420     ArgTys.push_back(IntegerType::get(Context, 32));
   6421     break;
   6422   case Intrinsic::gcwrite:		// llvm.gcwrite
   6423     ResultTy = Type::getVoidTy(Context);
   6424     ArgTys.push_back(PointerType::getUnqual(IntegerType::get(Context, 8)));
   6425     ArgTys.push_back(PointerType::getUnqual(IntegerType::get(Context, 8)));
   6426     ArgTys.push_back(PointerType::getUnqual(PointerType::getUnqual(IntegerType::get(Context, 8))));
   6427     break;
   6428   case Intrinsic::stackprotector:		// llvm.stackprotector
   6429     ResultTy = Type::getVoidTy(Context);
   6430     ArgTys.push_back(PointerType::getUnqual(IntegerType::get(Context, 8)));
   6431     ArgTys.push_back(PointerType::getUnqual(PointerType::getUnqual(IntegerType::get(Context, 8))));
   6432     break;
   6433   case Intrinsic::x86_sse2_storeu_dq:		// llvm.x86.sse2.storeu.dq
   6434     ResultTy = Type::getVoidTy(Context);
   6435     ArgTys.push_back(PointerType::getUnqual(IntegerType::get(Context, 8)));
   6436     ArgTys.push_back(VectorType::get(IntegerType::get(Context, 8), 16));
   6437     break;
   6438   case Intrinsic::x86_sse2_storeu_pd:		// llvm.x86.sse2.storeu.pd
   6439     ResultTy = Type::getVoidTy(Context);
   6440     ArgTys.push_back(PointerType::getUnqual(IntegerType::get(Context, 8)));
   6441     ArgTys.push_back(VectorType::get(Type::getDoubleTy(Context), 2));
   6442     break;
   6443   case Intrinsic::x86_avx_maskstore_pd:		// llvm.x86.avx.maskstore.pd
   6444     ResultTy = Type::getVoidTy(Context);
   6445     ArgTys.push_back(PointerType::getUnqual(IntegerType::get(Context, 8)));
   6446     ArgTys.push_back(VectorType::get(Type::getDoubleTy(Context), 2));
   6447     ArgTys.push_back(VectorType::get(Type::getDoubleTy(Context), 2));
   6448     break;
   6449   case Intrinsic::x86_avx_storeu_dq_256:		// llvm.x86.avx.storeu.dq.256
   6450     ResultTy = Type::getVoidTy(Context);
   6451     ArgTys.push_back(PointerType::getUnqual(IntegerType::get(Context, 8)));
   6452     ArgTys.push_back(VectorType::get(IntegerType::get(Context, 8), 32));
   6453     break;
   6454   case Intrinsic::x86_sse_storeu_ps:		// llvm.x86.sse.storeu.ps
   6455     ResultTy = Type::getVoidTy(Context);
   6456     ArgTys.push_back(PointerType::getUnqual(IntegerType::get(Context, 8)));
   6457     ArgTys.push_back(VectorType::get(Type::getFloatTy(Context), 4));
   6458     break;
   6459   case Intrinsic::x86_avx_maskstore_ps:		// llvm.x86.avx.maskstore.ps
   6460     ResultTy = Type::getVoidTy(Context);
   6461     ArgTys.push_back(PointerType::getUnqual(IntegerType::get(Context, 8)));
   6462     ArgTys.push_back(VectorType::get(Type::getFloatTy(Context), 4));
   6463     ArgTys.push_back(VectorType::get(Type::getFloatTy(Context), 4));
   6464     break;
   6465   case Intrinsic::x86_avx_movnt_pd_256:		// llvm.x86.avx.movnt.pd.256
   6466   case Intrinsic::x86_avx_storeu_pd_256:		// llvm.x86.avx.storeu.pd.256
   6467     ResultTy = Type::getVoidTy(Context);
   6468     ArgTys.push_back(PointerType::getUnqual(IntegerType::get(Context, 8)));
   6469     ArgTys.push_back(VectorType::get(Type::getDoubleTy(Context), 4));
   6470     break;
   6471   case Intrinsic::x86_avx_maskstore_pd_256:		// llvm.x86.avx.maskstore.pd.256
   6472     ResultTy = Type::getVoidTy(Context);
   6473     ArgTys.push_back(PointerType::getUnqual(IntegerType::get(Context, 8)));
   6474     ArgTys.push_back(VectorType::get(Type::getDoubleTy(Context), 4));
   6475     ArgTys.push_back(VectorType::get(Type::getDoubleTy(Context), 4));
   6476     break;
   6477   case Intrinsic::x86_sse2_storel_dq:		// llvm.x86.sse2.storel.dq
   6478     ResultTy = Type::getVoidTy(Context);
   6479     ArgTys.push_back(PointerType::getUnqual(IntegerType::get(Context, 8)));
   6480     ArgTys.push_back(VectorType::get(IntegerType::get(Context, 32), 4));
   6481     break;
   6482   case Intrinsic::x86_avx_movnt_dq_256:		// llvm.x86.avx.movnt.dq.256
   6483     ResultTy = Type::getVoidTy(Context);
   6484     ArgTys.push_back(PointerType::getUnqual(IntegerType::get(Context, 8)));
   6485     ArgTys.push_back(VectorType::get(IntegerType::get(Context, 64), 4));
   6486     break;
   6487   case Intrinsic::x86_avx_movnt_ps_256:		// llvm.x86.avx.movnt.ps.256
   6488   case Intrinsic::x86_avx_storeu_ps_256:		// llvm.x86.avx.storeu.ps.256
   6489     ResultTy = Type::getVoidTy(Context);
   6490     ArgTys.push_back(PointerType::getUnqual(IntegerType::get(Context, 8)));
   6491     ArgTys.push_back(VectorType::get(Type::getFloatTy(Context), 8));
   6492     break;
   6493   case Intrinsic::x86_avx_maskstore_ps_256:		// llvm.x86.avx.maskstore.ps.256
   6494     ResultTy = Type::getVoidTy(Context);
   6495     ArgTys.push_back(PointerType::getUnqual(IntegerType::get(Context, 8)));
   6496     ArgTys.push_back(VectorType::get(Type::getFloatTy(Context), 8));
   6497     ArgTys.push_back(VectorType::get(Type::getFloatTy(Context), 8));
   6498     break;
   6499   case Intrinsic::gcroot:		// llvm.gcroot
   6500     ResultTy = Type::getVoidTy(Context);
   6501     ArgTys.push_back(PointerType::getUnqual(PointerType::getUnqual(IntegerType::get(Context, 8))));
   6502     ArgTys.push_back(PointerType::getUnqual(IntegerType::get(Context, 8)));
   6503     break;
   6504   case Intrinsic::x86_mmx_movnt_dq:		// llvm.x86.mmx.movnt.dq
   6505     ResultTy = Type::getVoidTy(Context);
   6506     ArgTys.push_back(PointerType::getUnqual(Type::getX86_MMXTy(Context)));
   6507     ArgTys.push_back(Type::getX86_MMXTy(Context));
   6508     break;
   6509   case Intrinsic::x86_sse2_maskmov_dqu:		// llvm.x86.sse2.maskmov.dqu
   6510     ResultTy = Type::getVoidTy(Context);
   6511     ArgTys.push_back(VectorType::get(IntegerType::get(Context, 8), 16));
   6512     ArgTys.push_back(VectorType::get(IntegerType::get(Context, 8), 16));
   6513     ArgTys.push_back(PointerType::getUnqual(IntegerType::get(Context, 8)));
   6514     break;
   6515   case Intrinsic::x86_mmx_maskmovq:		// llvm.x86.mmx.maskmovq
   6516     ResultTy = Type::getVoidTy(Context);
   6517     ArgTys.push_back(Type::getX86_MMXTy(Context));
   6518     ArgTys.push_back(Type::getX86_MMXTy(Context));
   6519     ArgTys.push_back(PointerType::getUnqual(IntegerType::get(Context, 8)));
   6520     break;
   6521   case Intrinsic::ptr_annotation:		// llvm.ptr.annotation
   6522     ResultTy = (0 < Tys.size()) ? Tys[0] : PointerType::getUnqual(Tys[0]);
   6523     ArgTys.push_back(Tys[0]);
   6524     ArgTys.push_back(PointerType::getUnqual(IntegerType::get(Context, 8)));
   6525     ArgTys.push_back(PointerType::getUnqual(IntegerType::get(Context, 8)));
   6526     ArgTys.push_back(IntegerType::get(Context, 32));
   6527     break;
   6528   case Intrinsic::sin:		// llvm.sin
   6529     ResultTy = Tys[0];
   6530     ArgTys.push_back(Tys[0]);
   6531     break;
   6532   case Intrinsic::cos:		// llvm.cos
   6533     ResultTy = Tys[0];
   6534     ArgTys.push_back(Tys[0]);
   6535     break;
   6536   case Intrinsic::pow:		// llvm.pow
   6537     ResultTy = Tys[0];
   6538     ArgTys.push_back(Tys[0]);
   6539     ArgTys.push_back(Tys[0]);
   6540     break;
   6541   case Intrinsic::log:		// llvm.log
   6542     ResultTy = Tys[0];
   6543     ArgTys.push_back(Tys[0]);
   6544     break;
   6545   case Intrinsic::log10:		// llvm.log10
   6546     ResultTy = Tys[0];
   6547     ArgTys.push_back(Tys[0]);
   6548     break;
   6549   case Intrinsic::log2:		// llvm.log2
   6550     ResultTy = Tys[0];
   6551     ArgTys.push_back(Tys[0]);
   6552     break;
   6553   case Intrinsic::exp:		// llvm.exp
   6554     ResultTy = Tys[0];
   6555     ArgTys.push_back(Tys[0]);
   6556     break;
   6557   case Intrinsic::exp2:		// llvm.exp2
   6558     ResultTy = Tys[0];
   6559     ArgTys.push_back(Tys[0]);
   6560     break;
   6561   case Intrinsic::fma:		// llvm.fma
   6562     ResultTy = Tys[0];
   6563     ArgTys.push_back(Tys[0]);
   6564     ArgTys.push_back(Tys[0]);
   6565     ArgTys.push_back(Tys[0]);
   6566     break;
   6567   case Intrinsic::sqrt:		// llvm.sqrt
   6568     ResultTy = Tys[0];
   6569     ArgTys.push_back(Tys[0]);
   6570     break;
   6571   case Intrinsic::powi:		// llvm.powi
   6572     ResultTy = Tys[0];
   6573     ArgTys.push_back(Tys[0]);
   6574     ArgTys.push_back(IntegerType::get(Context, 32));
   6575     break;
   6576   case Intrinsic::convertff:		// llvm.convertff
   6577     ResultTy = Tys[0];
   6578     ArgTys.push_back(Tys[1]);
   6579     ArgTys.push_back(IntegerType::get(Context, 32));
   6580     ArgTys.push_back(IntegerType::get(Context, 32));
   6581     break;
   6582   case Intrinsic::convertfsi:		// llvm.convertfsi
   6583   case Intrinsic::convertfui:		// llvm.convertfui
   6584     ResultTy = Tys[0];
   6585     ArgTys.push_back(Tys[1]);
   6586     ArgTys.push_back(IntegerType::get(Context, 32));
   6587     ArgTys.push_back(IntegerType::get(Context, 32));
   6588     break;
   6589   case Intrinsic::expect:		// llvm.expect
   6590     ResultTy = Tys[0];
   6591     ArgTys.push_back(Tys[0]);
   6592     ArgTys.push_back(Tys[0]);
   6593     break;
   6594   case Intrinsic::bswap:		// llvm.bswap
   6595     ResultTy = Tys[0];
   6596     ArgTys.push_back(Tys[0]);
   6597     break;
   6598   case Intrinsic::ctpop:		// llvm.ctpop
   6599     ResultTy = Tys[0];
   6600     ArgTys.push_back(Tys[0]);
   6601     break;
   6602   case Intrinsic::ctlz:		// llvm.ctlz
   6603     ResultTy = Tys[0];
   6604     ArgTys.push_back(Tys[0]);
   6605     break;
   6606   case Intrinsic::cttz:		// llvm.cttz
   6607     ResultTy = Tys[0];
   6608     ArgTys.push_back(Tys[0]);
   6609     break;
   6610   case Intrinsic::annotation:		// llvm.annotation
   6611     ResultTy = Tys[0];
   6612     ArgTys.push_back(Tys[0]);
   6613     ArgTys.push_back(PointerType::getUnqual(IntegerType::get(Context, 8)));
   6614     ArgTys.push_back(PointerType::getUnqual(IntegerType::get(Context, 8)));
   6615     ArgTys.push_back(IntegerType::get(Context, 32));
   6616     break;
   6617   case Intrinsic::convertsif:		// llvm.convertsif
   6618   case Intrinsic::convertuif:		// llvm.convertuif
   6619     ResultTy = Tys[0];
   6620     ArgTys.push_back(Tys[1]);
   6621     ArgTys.push_back(IntegerType::get(Context, 32));
   6622     ArgTys.push_back(IntegerType::get(Context, 32));
   6623     break;
   6624   case Intrinsic::convertss:		// llvm.convertss
   6625   case Intrinsic::convertsu:		// llvm.convertsu
   6626   case Intrinsic::convertus:		// llvm.convertus
   6627   case Intrinsic::convertuu:		// llvm.convertuu
   6628     ResultTy = Tys[0];
   6629     ArgTys.push_back(Tys[1]);
   6630     ArgTys.push_back(IntegerType::get(Context, 32));
   6631     ArgTys.push_back(IntegerType::get(Context, 32));
   6632     break;
   6633   case Intrinsic::objectsize:		// llvm.objectsize
   6634     ResultTy = Tys[0];
   6635     ArgTys.push_back(PointerType::getUnqual(IntegerType::get(Context, 8)));
   6636     ArgTys.push_back(IntegerType::get(Context, 1));
   6637     break;
   6638   case Intrinsic::sadd_with_overflow:		// llvm.sadd.with.overflow
   6639     ResultTy = StructType::get(Tys[0], IntegerType::get(Context, 1),  NULL);
   6640     ArgTys.push_back(Tys[0]);
   6641     ArgTys.push_back(Tys[0]);
   6642     break;
   6643   case Intrinsic::uadd_with_overflow:		// llvm.uadd.with.overflow
   6644     ResultTy = StructType::get(Tys[0], IntegerType::get(Context, 1),  NULL);
   6645     ArgTys.push_back(Tys[0]);
   6646     ArgTys.push_back(Tys[0]);
   6647     break;
   6648   case Intrinsic::ssub_with_overflow:		// llvm.ssub.with.overflow
   6649     ResultTy = StructType::get(Tys[0], IntegerType::get(Context, 1),  NULL);
   6650     ArgTys.push_back(Tys[0]);
   6651     ArgTys.push_back(Tys[0]);
   6652     break;
   6653   case Intrinsic::usub_with_overflow:		// llvm.usub.with.overflow
   6654     ResultTy = StructType::get(Tys[0], IntegerType::get(Context, 1),  NULL);
   6655     ArgTys.push_back(Tys[0]);
   6656     ArgTys.push_back(Tys[0]);
   6657     break;
   6658   case Intrinsic::smul_with_overflow:		// llvm.smul.with.overflow
   6659     ResultTy = StructType::get(Tys[0], IntegerType::get(Context, 1),  NULL);
   6660     ArgTys.push_back(Tys[0]);
   6661     ArgTys.push_back(Tys[0]);
   6662     break;
   6663   case Intrinsic::umul_with_overflow:		// llvm.umul.with.overflow
   6664     ResultTy = StructType::get(Tys[0], IntegerType::get(Context, 1),  NULL);
   6665     ArgTys.push_back(Tys[0]);
   6666     ArgTys.push_back(Tys[0]);
   6667     break;
   6668   case Intrinsic::invariant_start:		// llvm.invariant.start
   6669     ResultTy = PointerType::getUnqual(StructType::get(Context));
   6670     ArgTys.push_back(IntegerType::get(Context, 64));
   6671     ArgTys.push_back(PointerType::getUnqual(IntegerType::get(Context, 8)));
   6672     break;
   6673   case Intrinsic::convert_from_fp16:		// llvm.convert.from.fp16
   6674     ResultTy = Type::getFloatTy(Context);
   6675     ArgTys.push_back(IntegerType::get(Context, 16));
   6676     break;
   6677   case Intrinsic::convert_to_fp16:		// llvm.convert.to.fp16
   6678     ResultTy = IntegerType::get(Context, 16);
   6679     ArgTys.push_back(Type::getFloatTy(Context));
   6680     break;
   6681   case Intrinsic::flt_rounds:		// llvm.flt.rounds
   6682     ResultTy = IntegerType::get(Context, 32);
   6683     break;
   6684   case Intrinsic::x86_sse42_crc32_32_16:		// llvm.x86.sse42.crc32.32.16
   6685     ResultTy = IntegerType::get(Context, 32);
   6686     ArgTys.push_back(IntegerType::get(Context, 32));
   6687     ArgTys.push_back(IntegerType::get(Context, 16));
   6688     break;
   6689   case Intrinsic::x86_sse42_crc32_32_32:		// llvm.x86.sse42.crc32.32.32
   6690     ResultTy = IntegerType::get(Context, 32);
   6691     ArgTys.push_back(IntegerType::get(Context, 32));
   6692     ArgTys.push_back(IntegerType::get(Context, 32));
   6693     break;
   6694   case Intrinsic::x86_sse42_crc32_32_8:		// llvm.x86.sse42.crc32.32.8
   6695     ResultTy = IntegerType::get(Context, 32);
   6696     ArgTys.push_back(IntegerType::get(Context, 32));
   6697     ArgTys.push_back(IntegerType::get(Context, 8));
   6698     break;
   6699   case Intrinsic::eh_sjlj_setjmp:		// llvm.eh.sjlj.setjmp
   6700   case Intrinsic::eh_typeid_for:		// llvm.eh.typeid.for
   6701   case Intrinsic::setjmp:		// llvm.setjmp
   6702     ResultTy = IntegerType::get(Context, 32);
   6703     ArgTys.push_back(PointerType::getUnqual(IntegerType::get(Context, 8)));
   6704     break;
   6705   case Intrinsic::sigsetjmp:		// llvm.sigsetjmp
   6706     ResultTy = IntegerType::get(Context, 32);
   6707     ArgTys.push_back(PointerType::getUnqual(IntegerType::get(Context, 8)));
   6708     ArgTys.push_back(IntegerType::get(Context, 32));
   6709     break;
   6710   case Intrinsic::eh_selector:		// llvm.eh.selector
   6711     IsVarArg = true;
   6712     ResultTy = IntegerType::get(Context, 32);
   6713     ArgTys.push_back(PointerType::getUnqual(IntegerType::get(Context, 8)));
   6714     ArgTys.push_back(PointerType::getUnqual(IntegerType::get(Context, 8)));
   6715     break;
   6716   case Intrinsic::x86_sse2_pmovmskb_128:		// llvm.x86.sse2.pmovmskb.128
   6717     ResultTy = IntegerType::get(Context, 32);
   6718     ArgTys.push_back(VectorType::get(IntegerType::get(Context, 8), 16));
   6719     break;
   6720   case Intrinsic::x86_sse41_pextrb:		// llvm.x86.sse41.pextrb
   6721     ResultTy = IntegerType::get(Context, 32);
   6722     ArgTys.push_back(VectorType::get(IntegerType::get(Context, 8), 16));
   6723     ArgTys.push_back(IntegerType::get(Context, 32));
   6724     break;
   6725   case Intrinsic::x86_sse42_pcmpestri128:		// llvm.x86.sse42.pcmpestri128
   6726   case Intrinsic::x86_sse42_pcmpestria128:		// llvm.x86.sse42.pcmpestria128
   6727   case Intrinsic::x86_sse42_pcmpestric128:		// llvm.x86.sse42.pcmpestric128
   6728   case Intrinsic::x86_sse42_pcmpestrio128:		// llvm.x86.sse42.pcmpestrio128
   6729   case Intrinsic::x86_sse42_pcmpestris128:		// llvm.x86.sse42.pcmpestris128
   6730   case Intrinsic::x86_sse42_pcmpestriz128:		// llvm.x86.sse42.pcmpestriz128
   6731     ResultTy = IntegerType::get(Context, 32);
   6732     ArgTys.push_back(VectorType::get(IntegerType::get(Context, 8), 16));
   6733     ArgTys.push_back(IntegerType::get(Context, 32));
   6734     ArgTys.push_back(VectorType::get(IntegerType::get(Context, 8), 16));
   6735     ArgTys.push_back(IntegerType::get(Context, 32));
   6736     ArgTys.push_back(IntegerType::get(Context, 8));
   6737     break;
   6738   case Intrinsic::x86_sse42_pcmpistri128:		// llvm.x86.sse42.pcmpistri128
   6739   case Intrinsic::x86_sse42_pcmpistria128:		// llvm.x86.sse42.pcmpistria128
   6740   case Intrinsic::x86_sse42_pcmpistric128:		// llvm.x86.sse42.pcmpistric128
   6741   case Intrinsic::x86_sse42_pcmpistrio128:		// llvm.x86.sse42.pcmpistrio128
   6742   case Intrinsic::x86_sse42_pcmpistris128:		// llvm.x86.sse42.pcmpistris128
   6743   case Intrinsic::x86_sse42_pcmpistriz128:		// llvm.x86.sse42.pcmpistriz128
   6744     ResultTy = IntegerType::get(Context, 32);
   6745     ArgTys.push_back(VectorType::get(IntegerType::get(Context, 8), 16));
   6746     ArgTys.push_back(VectorType::get(IntegerType::get(Context, 8), 16));
   6747     ArgTys.push_back(IntegerType::get(Context, 8));
   6748     break;
   6749   case Intrinsic::x86_sse2_cvtsd2si:		// llvm.x86.sse2.cvtsd2si
   6750   case Intrinsic::x86_sse2_cvttsd2si:		// llvm.x86.sse2.cvttsd2si
   6751   case Intrinsic::x86_sse2_movmsk_pd:		// llvm.x86.sse2.movmsk.pd
   6752     ResultTy = IntegerType::get(Context, 32);
   6753     ArgTys.push_back(VectorType::get(Type::getDoubleTy(Context), 2));
   6754     break;
   6755   case Intrinsic::x86_avx_vtestc_pd:		// llvm.x86.avx.vtestc.pd
   6756   case Intrinsic::x86_avx_vtestnzc_pd:		// llvm.x86.avx.vtestnzc.pd
   6757   case Intrinsic::x86_avx_vtestz_pd:		// llvm.x86.avx.vtestz.pd
   6758   case Intrinsic::x86_sse2_comieq_sd:		// llvm.x86.sse2.comieq.sd
   6759   case Intrinsic::x86_sse2_comige_sd:		// llvm.x86.sse2.comige.sd
   6760   case Intrinsic::x86_sse2_comigt_sd:		// llvm.x86.sse2.comigt.sd
   6761   case Intrinsic::x86_sse2_comile_sd:		// llvm.x86.sse2.comile.sd
   6762   case Intrinsic::x86_sse2_comilt_sd:		// llvm.x86.sse2.comilt.sd
   6763   case Intrinsic::x86_sse2_comineq_sd:		// llvm.x86.sse2.comineq.sd
   6764   case Intrinsic::x86_sse2_ucomieq_sd:		// llvm.x86.sse2.ucomieq.sd
   6765   case Intrinsic::x86_sse2_ucomige_sd:		// llvm.x86.sse2.ucomige.sd
   6766   case Intrinsic::x86_sse2_ucomigt_sd:		// llvm.x86.sse2.ucomigt.sd
   6767   case Intrinsic::x86_sse2_ucomile_sd:		// llvm.x86.sse2.ucomile.sd
   6768   case Intrinsic::x86_sse2_ucomilt_sd:		// llvm.x86.sse2.ucomilt.sd
   6769   case Intrinsic::x86_sse2_ucomineq_sd:		// llvm.x86.sse2.ucomineq.sd
   6770     ResultTy = IntegerType::get(Context, 32);
   6771     ArgTys.push_back(VectorType::get(Type::getDoubleTy(Context), 2));
   6772     ArgTys.push_back(VectorType::get(Type::getDoubleTy(Context), 2));
   6773     break;
   6774   case Intrinsic::x86_sse_cvtss2si:		// llvm.x86.sse.cvtss2si
   6775   case Intrinsic::x86_sse_cvttss2si:		// llvm.x86.sse.cvttss2si
   6776   case Intrinsic::x86_sse_movmsk_ps:		// llvm.x86.sse.movmsk.ps
   6777     ResultTy = IntegerType::get(Context, 32);
   6778     ArgTys.push_back(VectorType::get(Type::getFloatTy(Context), 4));
   6779     break;
   6780   case Intrinsic::x86_sse41_extractps:		// llvm.x86.sse41.extractps
   6781     ResultTy = IntegerType::get(Context, 32);
   6782     ArgTys.push_back(VectorType::get(Type::getFloatTy(Context), 4));
   6783     ArgTys.push_back(IntegerType::get(Context, 32));
   6784     break;
   6785   case Intrinsic::x86_avx_vtestc_ps:		// llvm.x86.avx.vtestc.ps
   6786   case Intrinsic::x86_avx_vtestnzc_ps:		// llvm.x86.avx.vtestnzc.ps
   6787   case Intrinsic::x86_avx_vtestz_ps:		// llvm.x86.avx.vtestz.ps
   6788   case Intrinsic::x86_sse41_ptestc:		// llvm.x86.sse41.ptestc
   6789   case Intrinsic::x86_sse41_ptestnzc:		// llvm.x86.sse41.ptestnzc
   6790   case Intrinsic::x86_sse41_ptestz:		// llvm.x86.sse41.ptestz
   6791   case Intrinsic::x86_sse_comieq_ss:		// llvm.x86.sse.comieq.ss
   6792   case Intrinsic::x86_sse_comige_ss:		// llvm.x86.sse.comige.ss
   6793   case Intrinsic::x86_sse_comigt_ss:		// llvm.x86.sse.comigt.ss
   6794   case Intrinsic::x86_sse_comile_ss:		// llvm.x86.sse.comile.ss
   6795   case Intrinsic::x86_sse_comilt_ss:		// llvm.x86.sse.comilt.ss
   6796   case Intrinsic::x86_sse_comineq_ss:		// llvm.x86.sse.comineq.ss
   6797   case Intrinsic::x86_sse_ucomieq_ss:		// llvm.x86.sse.ucomieq.ss
   6798   case Intrinsic::x86_sse_ucomige_ss:		// llvm.x86.sse.ucomige.ss
   6799   case Intrinsic::x86_sse_ucomigt_ss:		// llvm.x86.sse.ucomigt.ss
   6800   case Intrinsic::x86_sse_ucomile_ss:		// llvm.x86.sse.ucomile.ss
   6801   case Intrinsic::x86_sse_ucomilt_ss:		// llvm.x86.sse.ucomilt.ss
   6802   case Intrinsic::x86_sse_ucomineq_ss:		// llvm.x86.sse.ucomineq.ss
   6803     ResultTy = IntegerType::get(Context, 32);
   6804     ArgTys.push_back(VectorType::get(Type::getFloatTy(Context), 4));
   6805     ArgTys.push_back(VectorType::get(Type::getFloatTy(Context), 4));
   6806     break;
   6807   case Intrinsic::x86_avx_movmsk_pd_256:		// llvm.x86.avx.movmsk.pd.256
   6808     ResultTy = IntegerType::get(Context, 32);
   6809     ArgTys.push_back(VectorType::get(Type::getDoubleTy(Context), 4));
   6810     break;
   6811   case Intrinsic::x86_avx_vtestc_pd_256:		// llvm.x86.avx.vtestc.pd.256
   6812   case Intrinsic::x86_avx_vtestnzc_pd_256:		// llvm.x86.avx.vtestnzc.pd.256
   6813   case Intrinsic::x86_avx_vtestz_pd_256:		// llvm.x86.avx.vtestz.pd.256
   6814     ResultTy = IntegerType::get(Context, 32);
   6815     ArgTys.push_back(VectorType::get(Type::getDoubleTy(Context), 4));
   6816     ArgTys.push_back(VectorType::get(Type::getDoubleTy(Context), 4));
   6817     break;
   6818   case Intrinsic::x86_sse41_pextrd:		// llvm.x86.sse41.pextrd
   6819     ResultTy = IntegerType::get(Context, 32);
   6820     ArgTys.push_back(VectorType::get(IntegerType::get(Context, 32), 4));
   6821     ArgTys.push_back(IntegerType::get(Context, 32));
   6822     break;
   6823   case Intrinsic::x86_avx_ptestc_256:		// llvm.x86.avx.ptestc.256
   6824   case Intrinsic::x86_avx_ptestnzc_256:		// llvm.x86.avx.ptestnzc.256
   6825   case Intrinsic::x86_avx_ptestz_256:		// llvm.x86.avx.ptestz.256
   6826     ResultTy = IntegerType::get(Context, 32);
   6827     ArgTys.push_back(VectorType::get(IntegerType::get(Context, 64), 4));
   6828     ArgTys.push_back(VectorType::get(IntegerType::get(Context, 64), 4));
   6829     break;
   6830   case Intrinsic::x86_avx_movmsk_ps_256:		// llvm.x86.avx.movmsk.ps.256
   6831     ResultTy = IntegerType::get(Context, 32);
   6832     ArgTys.push_back(VectorType::get(Type::getFloatTy(Context), 8));
   6833     break;
   6834   case Intrinsic::x86_avx_vtestc_ps_256:		// llvm.x86.avx.vtestc.ps.256
   6835   case Intrinsic::x86_avx_vtestnzc_ps_256:		// llvm.x86.avx.vtestnzc.ps.256
   6836   case Intrinsic::x86_avx_vtestz_ps_256:		// llvm.x86.avx.vtestz.ps.256
   6837     ResultTy = IntegerType::get(Context, 32);
   6838     ArgTys.push_back(VectorType::get(Type::getFloatTy(Context), 8));
   6839     ArgTys.push_back(VectorType::get(Type::getFloatTy(Context), 8));
   6840     break;
   6841   case Intrinsic::x86_mmx_pmovmskb:		// llvm.x86.mmx.pmovmskb
   6842     ResultTy = IntegerType::get(Context, 32);
   6843     ArgTys.push_back(Type::getX86_MMXTy(Context));
   6844     break;
   6845   case Intrinsic::x86_mmx_pextr_w:		// llvm.x86.mmx.pextr.w
   6846     ResultTy = IntegerType::get(Context, 32);
   6847     ArgTys.push_back(Type::getX86_MMXTy(Context));
   6848     ArgTys.push_back(IntegerType::get(Context, 32));
   6849     break;
   6850   case Intrinsic::readcyclecounter:		// llvm.readcyclecounter
   6851     ResultTy = IntegerType::get(Context, 64);
   6852     break;
   6853   case Intrinsic::x86_sse42_crc32_64_64:		// llvm.x86.sse42.crc32.64.64
   6854     ResultTy = IntegerType::get(Context, 64);
   6855     ArgTys.push_back(IntegerType::get(Context, 64));
   6856     ArgTys.push_back(IntegerType::get(Context, 64));
   6857     break;
   6858   case Intrinsic::x86_sse42_crc32_64_8:		// llvm.x86.sse42.crc32.64.8
   6859     ResultTy = IntegerType::get(Context, 64);
   6860     ArgTys.push_back(IntegerType::get(Context, 64));
   6861     ArgTys.push_back(IntegerType::get(Context, 8));
   6862     break;
   6863   case Intrinsic::x86_sse2_cvtsd2si64:		// llvm.x86.sse2.cvtsd2si64
   6864   case Intrinsic::x86_sse2_cvttsd2si64:		// llvm.x86.sse2.cvttsd2si64
   6865     ResultTy = IntegerType::get(Context, 64);
   6866     ArgTys.push_back(VectorType::get(Type::getDoubleTy(Context), 2));
   6867     break;
   6868   case Intrinsic::x86_sse41_pextrq:		// llvm.x86.sse41.pextrq
   6869     ResultTy = IntegerType::get(Context, 64);
   6870     ArgTys.push_back(VectorType::get(IntegerType::get(Context, 64), 2));
   6871     ArgTys.push_back(IntegerType::get(Context, 32));
   6872     break;
   6873   case Intrinsic::x86_sse_cvtss2si64:		// llvm.x86.sse.cvtss2si64
   6874   case Intrinsic::x86_sse_cvttss2si64:		// llvm.x86.sse.cvttss2si64
   6875     ResultTy = IntegerType::get(Context, 64);
   6876     ArgTys.push_back(VectorType::get(Type::getFloatTy(Context), 4));
   6877     break;
   6878   case Intrinsic::eh_exception:		// llvm.eh.exception
   6879   case Intrinsic::eh_sjlj_lsda:		// llvm.eh.sjlj.lsda
   6880   case Intrinsic::stacksave:		// llvm.stacksave
   6881     ResultTy = PointerType::getUnqual(IntegerType::get(Context, 8));
   6882     break;
   6883   case Intrinsic::eh_dwarf_cfa:		// llvm.eh.dwarf.cfa
   6884   case Intrinsic::frameaddress:		// llvm.frameaddress
   6885   case Intrinsic::returnaddress:		// llvm.returnaddress
   6886     ResultTy = PointerType::getUnqual(IntegerType::get(Context, 8));
   6887     ArgTys.push_back(IntegerType::get(Context, 32));
   6888     break;
   6889   case Intrinsic::adjust_trampoline:		// llvm.adjust.trampoline
   6890     ResultTy = PointerType::getUnqual(IntegerType::get(Context, 8));
   6891     ArgTys.push_back(PointerType::getUnqual(IntegerType::get(Context, 8)));
   6892     break;
   6893   case Intrinsic::gcread:		// llvm.gcread
   6894     ResultTy = PointerType::getUnqual(IntegerType::get(Context, 8));
   6895     ArgTys.push_back(PointerType::getUnqual(IntegerType::get(Context, 8)));
   6896     ArgTys.push_back(PointerType::getUnqual(PointerType::getUnqual(IntegerType::get(Context, 8))));
   6897     break;
   6898   case Intrinsic::x86_sse3_ldu_dq:		// llvm.x86.sse3.ldu.dq
   6899     ResultTy = VectorType::get(IntegerType::get(Context, 8), 16);
   6900     ArgTys.push_back(PointerType::getUnqual(IntegerType::get(Context, 8)));
   6901     break;
   6902   case Intrinsic::x86_ssse3_pabs_b_128:		// llvm.x86.ssse3.pabs.b.128
   6903     ResultTy = VectorType::get(IntegerType::get(Context, 8), 16);
   6904     ArgTys.push_back(VectorType::get(IntegerType::get(Context, 8), 16));
   6905     break;
   6906   case Intrinsic::x86_sse42_pcmpestrm128:		// llvm.x86.sse42.pcmpestrm128
   6907     ResultTy = VectorType::get(IntegerType::get(Context, 8), 16);
   6908     ArgTys.push_back(VectorType::get(IntegerType::get(Context, 8), 16));
   6909     ArgTys.push_back(IntegerType::get(Context, 32));
   6910     ArgTys.push_back(VectorType::get(IntegerType::get(Context, 8), 16));
   6911     ArgTys.push_back(IntegerType::get(Context, 32));
   6912     ArgTys.push_back(IntegerType::get(Context, 8));
   6913     break;
   6914   case Intrinsic::x86_sse2_padds_b:		// llvm.x86.sse2.padds.b
   6915   case Intrinsic::x86_sse2_paddus_b:		// llvm.x86.sse2.paddus.b
   6916   case Intrinsic::x86_sse2_pavg_b:		// llvm.x86.sse2.pavg.b
   6917   case Intrinsic::x86_sse2_pcmpeq_b:		// llvm.x86.sse2.pcmpeq.b
   6918   case Intrinsic::x86_sse2_pcmpgt_b:		// llvm.x86.sse2.pcmpgt.b
   6919   case Intrinsic::x86_sse2_pmaxu_b:		// llvm.x86.sse2.pmaxu.b
   6920   case Intrinsic::x86_sse2_pminu_b:		// llvm.x86.sse2.pminu.b
   6921   case Intrinsic::x86_sse2_psubs_b:		// llvm.x86.sse2.psubs.b
   6922   case Intrinsic::x86_sse2_psubus_b:		// llvm.x86.sse2.psubus.b
   6923   case Intrinsic::x86_sse41_pmaxsb:		// llvm.x86.sse41.pmaxsb
   6924   case Intrinsic::x86_sse41_pminsb:		// llvm.x86.sse41.pminsb
   6925   case Intrinsic::x86_ssse3_pshuf_b_128:		// llvm.x86.ssse3.pshuf.b.128
   6926   case Intrinsic::x86_ssse3_psign_b_128:		// llvm.x86.ssse3.psign.b.128
   6927     ResultTy = VectorType::get(IntegerType::get(Context, 8), 16);
   6928     ArgTys.push_back(VectorType::get(IntegerType::get(Context, 8), 16));
   6929     ArgTys.push_back(VectorType::get(IntegerType::get(Context, 8), 16));
   6930     break;
   6931   case Intrinsic::x86_sse41_mpsadbw:		// llvm.x86.sse41.mpsadbw
   6932     ResultTy = VectorType::get(IntegerType::get(Context, 8), 16);
   6933     ArgTys.push_back(VectorType::get(IntegerType::get(Context, 8), 16));
   6934     ArgTys.push_back(VectorType::get(IntegerType::get(Context, 8), 16));
   6935     ArgTys.push_back(IntegerType::get(Context, 32));
   6936     break;
   6937   case Intrinsic::x86_sse42_pcmpistrm128:		// llvm.x86.sse42.pcmpistrm128
   6938     ResultTy = VectorType::get(IntegerType::get(Context, 8), 16);
   6939     ArgTys.push_back(VectorType::get(IntegerType::get(Context, 8), 16));
   6940     ArgTys.push_back(VectorType::get(IntegerType::get(Context, 8), 16));
   6941     ArgTys.push_back(IntegerType::get(Context, 8));
   6942     break;
   6943   case Intrinsic::x86_sse41_pblendvb:		// llvm.x86.sse41.pblendvb
   6944     ResultTy = VectorType::get(IntegerType::get(Context, 8), 16);
   6945     ArgTys.push_back(VectorType::get(IntegerType::get(Context, 8), 16));
   6946     ArgTys.push_back(VectorType::get(IntegerType::get(Context, 8), 16));
   6947     ArgTys.push_back(VectorType::get(IntegerType::get(Context, 8), 16));
   6948     break;
   6949   case Intrinsic::x86_sse2_packsswb_128:		// llvm.x86.sse2.packsswb.128
   6950   case Intrinsic::x86_sse2_packuswb_128:		// llvm.x86.sse2.packuswb.128
   6951     ResultTy = VectorType::get(IntegerType::get(Context, 8), 16);
   6952     ArgTys.push_back(VectorType::get(IntegerType::get(Context, 16), 8));
   6953     ArgTys.push_back(VectorType::get(IntegerType::get(Context, 16), 8));
   6954     break;
   6955   case Intrinsic::x86_avx_maskload_pd:		// llvm.x86.avx.maskload.pd
   6956     ResultTy = VectorType::get(Type::getDoubleTy(Context), 2);
   6957     ArgTys.push_back(PointerType::getUnqual(IntegerType::get(Context, 8)));
   6958     ArgTys.push_back(VectorType::get(Type::getDoubleTy(Context), 2));
   6959     break;
   6960   case Intrinsic::x86_sse2_sqrt_pd:		// llvm.x86.sse2.sqrt.pd
   6961   case Intrinsic::x86_sse2_sqrt_sd:		// llvm.x86.sse2.sqrt.sd
   6962     ResultTy = VectorType::get(Type::getDoubleTy(Context), 2);
   6963     ArgTys.push_back(VectorType::get(Type::getDoubleTy(Context), 2));
   6964     break;
   6965   case Intrinsic::x86_sse2_cvtsi2sd:		// llvm.x86.sse2.cvtsi2sd
   6966   case Intrinsic::x86_sse41_round_pd:		// llvm.x86.sse41.round.pd
   6967     ResultTy = VectorType::get(Type::getDoubleTy(Context), 2);
   6968     ArgTys.push_back(VectorType::get(Type::getDoubleTy(Context), 2));
   6969     ArgTys.push_back(IntegerType::get(Context, 32));
   6970     break;
   6971   case Intrinsic::x86_sse2_cvtsi642sd:		// llvm.x86.sse2.cvtsi642sd
   6972     ResultTy = VectorType::get(Type::getDoubleTy(Context), 2);
   6973     ArgTys.push_back(VectorType::get(Type::getDoubleTy(Context), 2));
   6974     ArgTys.push_back(IntegerType::get(Context, 64));
   6975     break;
   6976   case Intrinsic::x86_avx_vpermil_pd:		// llvm.x86.avx.vpermil.pd
   6977     ResultTy = VectorType::get(Type::getDoubleTy(Context), 2);
   6978     ArgTys.push_back(VectorType::get(Type::getDoubleTy(Context), 2));
   6979     ArgTys.push_back(IntegerType::get(Context, 8));
   6980     break;
   6981   case Intrinsic::x86_sse2_add_sd:		// llvm.x86.sse2.add.sd
   6982   case Intrinsic::x86_sse2_div_sd:		// llvm.x86.sse2.div.sd
   6983   case Intrinsic::x86_sse2_max_pd:		// llvm.x86.sse2.max.pd
   6984   case Intrinsic::x86_sse2_max_sd:		// llvm.x86.sse2.max.sd
   6985   case Intrinsic::x86_sse2_min_pd:		// llvm.x86.sse2.min.pd
   6986   case Intrinsic::x86_sse2_min_sd:		// llvm.x86.sse2.min.sd
   6987   case Intrinsic::x86_sse2_mul_sd:		// llvm.x86.sse2.mul.sd
   6988   case Intrinsic::x86_sse2_sub_sd:		// llvm.x86.sse2.sub.sd
   6989   case Intrinsic::x86_sse3_addsub_pd:		// llvm.x86.sse3.addsub.pd
   6990   case Intrinsic::x86_sse3_hadd_pd:		// llvm.x86.sse3.hadd.pd
   6991   case Intrinsic::x86_sse3_hsub_pd:		// llvm.x86.sse3.hsub.pd
   6992     ResultTy = VectorType::get(Type::getDoubleTy(Context), 2);
   6993     ArgTys.push_back(VectorType::get(Type::getDoubleTy(Context), 2));
   6994     ArgTys.push_back(VectorType::get(Type::getDoubleTy(Context), 2));
   6995     break;
   6996   case Intrinsic::x86_sse41_blendpd:		// llvm.x86.sse41.blendpd
   6997   case Intrinsic::x86_sse41_dppd:		// llvm.x86.sse41.dppd
   6998   case Intrinsic::x86_sse41_round_sd:		// llvm.x86.sse41.round.sd
   6999     ResultTy = VectorType::get(Type::getDoubleTy(Context), 2);
   7000     ArgTys.push_back(VectorType::get(Type::getDoubleTy(Context), 2));
   7001     ArgTys.push_back(VectorType::get(Type::getDoubleTy(Context), 2));
   7002     ArgTys.push_back(IntegerType::get(Context, 32));
   7003     break;
   7004   case Intrinsic::x86_sse2_cmp_pd:		// llvm.x86.sse2.cmp.pd
   7005   case Intrinsic::x86_sse2_cmp_sd:		// llvm.x86.sse2.cmp.sd
   7006     ResultTy = VectorType::get(Type::getDoubleTy(Context), 2);
   7007     ArgTys.push_back(VectorType::get(Type::getDoubleTy(Context), 2));
   7008     ArgTys.push_back(VectorType::get(Type::getDoubleTy(Context), 2));
   7009     ArgTys.push_back(IntegerType::get(Context, 8));
   7010     break;
   7011   case Intrinsic::x86_sse41_blendvpd:		// llvm.x86.sse41.blendvpd
   7012     ResultTy = VectorType::get(Type::getDoubleTy(Context), 2);
   7013     ArgTys.push_back(VectorType::get(Type::getDoubleTy(Context), 2));
   7014     ArgTys.push_back(VectorType::get(Type::getDoubleTy(Context), 2));
   7015     ArgTys.push_back(VectorType::get(Type::getDoubleTy(Context), 2));
   7016     break;
   7017   case Intrinsic::x86_avx_vpermilvar_pd:		// llvm.x86.avx.vpermilvar.pd
   7018     ResultTy = VectorType::get(Type::getDoubleTy(Context), 2);
   7019     ArgTys.push_back(VectorType::get(Type::getDoubleTy(Context), 2));
   7020     ArgTys.push_back(VectorType::get(IntegerType::get(Context, 64), 2));
   7021     break;
   7022   case Intrinsic::x86_sse2_cvtss2sd:		// llvm.x86.sse2.cvtss2sd
   7023     ResultTy = VectorType::get(Type::getDoubleTy(Context), 2);
   7024     ArgTys.push_back(VectorType::get(Type::getDoubleTy(Context), 2));
   7025     ArgTys.push_back(VectorType::get(Type::getFloatTy(Context), 4));
   7026     break;
   7027   case Intrinsic::x86_sse2_cvtps2pd:		// llvm.x86.sse2.cvtps2pd
   7028     ResultTy = VectorType::get(Type::getDoubleTy(Context), 2);
   7029     ArgTys.push_back(VectorType::get(Type::getFloatTy(Context), 4));
   7030     break;
   7031   case Intrinsic::x86_avx_vextractf128_pd_256:		// llvm.x86.avx.vextractf128.pd.256
   7032     ResultTy = VectorType::get(Type::getDoubleTy(Context), 2);
   7033     ArgTys.push_back(VectorType::get(Type::getDoubleTy(Context), 4));
   7034     ArgTys.push_back(IntegerType::get(Context, 8));
   7035     break;
   7036   case Intrinsic::x86_sse2_cvtdq2pd:		// llvm.x86.sse2.cvtdq2pd
   7037     ResultTy = VectorType::get(Type::getDoubleTy(Context), 2);
   7038     ArgTys.push_back(VectorType::get(IntegerType::get(Context, 32), 4));
   7039     break;
   7040   case Intrinsic::x86_sse_cvtpi2pd:		// llvm.x86.sse.cvtpi2pd
   7041     ResultTy = VectorType::get(Type::getDoubleTy(Context), 2);
   7042     ArgTys.push_back(Type::getX86_MMXTy(Context));
   7043     break;
   7044   case Intrinsic::x86_sse41_movntdqa:		// llvm.x86.sse41.movntdqa
   7045     ResultTy = VectorType::get(IntegerType::get(Context, 64), 2);
   7046     ArgTys.push_back(PointerType::getUnqual(IntegerType::get(Context, 8)));
   7047     break;
   7048   case Intrinsic::x86_sse41_pmovsxbq:		// llvm.x86.sse41.pmovsxbq
   7049   case Intrinsic::x86_sse41_pmovzxbq:		// llvm.x86.sse41.pmovzxbq
   7050     ResultTy = VectorType::get(IntegerType::get(Context, 64), 2);
   7051     ArgTys.push_back(VectorType::get(IntegerType::get(Context, 8), 16));
   7052     break;
   7053   case Intrinsic::x86_sse2_psad_bw:		// llvm.x86.sse2.psad.bw
   7054     ResultTy = VectorType::get(IntegerType::get(Context, 64), 2);
   7055     ArgTys.push_back(VectorType::get(IntegerType::get(Context, 8), 16));
   7056     ArgTys.push_back(VectorType::get(IntegerType::get(Context, 8), 16));
   7057     break;
   7058   case Intrinsic::x86_aesni_aesimc:		// llvm.x86.aesni.aesimc
   7059     ResultTy = VectorType::get(IntegerType::get(Context, 64), 2);
   7060     ArgTys.push_back(VectorType::get(IntegerType::get(Context, 64), 2));
   7061     break;
   7062   case Intrinsic::x86_sse2_psll_dq:		// llvm.x86.sse2.psll.dq
   7063   case Intrinsic::x86_sse2_psll_dq_bs:		// llvm.x86.sse2.psll.dq.bs
   7064   case Intrinsic::x86_sse2_pslli_q:		// llvm.x86.sse2.pslli.q
   7065   case Intrinsic::x86_sse2_psrl_dq:		// llvm.x86.sse2.psrl.dq
   7066   case Intrinsic::x86_sse2_psrl_dq_bs:		// llvm.x86.sse2.psrl.dq.bs
   7067   case Intrinsic::x86_sse2_psrli_q:		// llvm.x86.sse2.psrli.q
   7068     ResultTy = VectorType::get(IntegerType::get(Context, 64), 2);
   7069     ArgTys.push_back(VectorType::get(IntegerType::get(Context, 64), 2));
   7070     ArgTys.push_back(IntegerType::get(Context, 32));
   7071     break;
   7072   case Intrinsic::x86_aesni_aeskeygenassist:		// llvm.x86.aesni.aeskeygenassist
   7073     ResultTy = VectorType::get(IntegerType::get(Context, 64), 2);
   7074     ArgTys.push_back(VectorType::get(IntegerType::get(Context, 64), 2));
   7075     ArgTys.push_back(IntegerType::get(Context, 8));
   7076     break;
   7077   case Intrinsic::x86_aesni_aesdec:		// llvm.x86.aesni.aesdec
   7078   case Intrinsic::x86_aesni_aesdeclast:		// llvm.x86.aesni.aesdeclast
   7079   case Intrinsic::x86_aesni_aesenc:		// llvm.x86.aesni.aesenc
   7080   case Intrinsic::x86_aesni_aesenclast:		// llvm.x86.aesni.aesenclast
   7081   case Intrinsic::x86_sse2_psll_q:		// llvm.x86.sse2.psll.q
   7082   case Intrinsic::x86_sse2_psrl_q:		// llvm.x86.sse2.psrl.q
   7083   case Intrinsic::x86_sse41_pcmpeqq:		// llvm.x86.sse41.pcmpeqq
   7084   case Intrinsic::x86_sse42_pcmpgtq:		// llvm.x86.sse42.pcmpgtq
   7085     ResultTy = VectorType::get(IntegerType::get(Context, 64), 2);
   7086     ArgTys.push_back(VectorType::get(IntegerType::get(Context, 64), 2));
   7087     ArgTys.push_back(VectorType::get(IntegerType::get(Context, 64), 2));
   7088     break;
   7089   case Intrinsic::x86_sse41_pmovsxdq:		// llvm.x86.sse41.pmovsxdq
   7090   case Intrinsic::x86_sse41_pmovzxdq:		// llvm.x86.sse41.pmovzxdq
   7091     ResultTy = VectorType::get(IntegerType::get(Context, 64), 2);
   7092     ArgTys.push_back(VectorType::get(IntegerType::get(Context, 32), 4));
   7093     break;
   7094   case Intrinsic::x86_sse2_pmulu_dq:		// llvm.x86.sse2.pmulu.dq
   7095   case Intrinsic::x86_sse41_pmuldq:		// llvm.x86.sse41.pmuldq
   7096     ResultTy = VectorType::get(IntegerType::get(Context, 64), 2);
   7097     ArgTys.push_back(VectorType::get(IntegerType::get(Context, 32), 4));
   7098     ArgTys.push_back(VectorType::get(IntegerType::get(Context, 32), 4));
   7099     break;
   7100   case Intrinsic::x86_sse41_pmovsxwq:		// llvm.x86.sse41.pmovsxwq
   7101   case Intrinsic::x86_sse41_pmovzxwq:		// llvm.x86.sse41.pmovzxwq
   7102     ResultTy = VectorType::get(IntegerType::get(Context, 64), 2);
   7103     ArgTys.push_back(VectorType::get(IntegerType::get(Context, 16), 8));
   7104     break;
   7105   case Intrinsic::x86_avx_ldu_dq_256:		// llvm.x86.avx.ldu.dq.256
   7106   case Intrinsic::x86_avx_loadu_dq_256:		// llvm.x86.avx.loadu.dq.256
   7107     ResultTy = VectorType::get(IntegerType::get(Context, 8), 32);
   7108     ArgTys.push_back(PointerType::getUnqual(IntegerType::get(Context, 8)));
   7109     break;
   7110   case Intrinsic::x86_avx_vbroadcastss:		// llvm.x86.avx.vbroadcastss
   7111     ResultTy = VectorType::get(Type::getFloatTy(Context), 4);
   7112     ArgTys.push_back(PointerType::getUnqual(IntegerType::get(Context, 8)));
   7113     break;
   7114   case Intrinsic::x86_avx_maskload_ps:		// llvm.x86.avx.maskload.ps
   7115     ResultTy = VectorType::get(Type::getFloatTy(Context), 4);
   7116     ArgTys.push_back(PointerType::getUnqual(IntegerType::get(Context, 8)));
   7117     ArgTys.push_back(VectorType::get(Type::getFloatTy(Context), 4));
   7118     break;
   7119   case Intrinsic::x86_sse2_cvtpd2ps:		// llvm.x86.sse2.cvtpd2ps
   7120     ResultTy = VectorType::get(Type::getFloatTy(Context), 4);
   7121     ArgTys.push_back(VectorType::get(Type::getDoubleTy(Context), 2));
   7122     break;
   7123   case Intrinsic::x86_sse_rcp_ps:		// llvm.x86.sse.rcp.ps
   7124   case Intrinsic::x86_sse_rcp_ss:		// llvm.x86.sse.rcp.ss
   7125   case Intrinsic::x86_sse_rsqrt_ps:		// llvm.x86.sse.rsqrt.ps
   7126   case Intrinsic::x86_sse_rsqrt_ss:		// llvm.x86.sse.rsqrt.ss
   7127   case Intrinsic::x86_sse_sqrt_ps:		// llvm.x86.sse.sqrt.ps
   7128   case Intrinsic::x86_sse_sqrt_ss:		// llvm.x86.sse.sqrt.ss
   7129     ResultTy = VectorType::get(Type::getFloatTy(Context), 4);
   7130     ArgTys.push_back(VectorType::get(Type::getFloatTy(Context), 4));
   7131     break;
   7132   case Intrinsic::x86_sse41_round_ps:		// llvm.x86.sse41.round.ps
   7133   case Intrinsic::x86_sse_cvtsi2ss:		// llvm.x86.sse.cvtsi2ss
   7134     ResultTy = VectorType::get(Type::getFloatTy(Context), 4);
   7135     ArgTys.push_back(VectorType::get(Type::getFloatTy(Context), 4));
   7136     ArgTys.push_back(IntegerType::get(Context, 32));
   7137     break;
   7138   case Intrinsic::x86_sse_cvtsi642ss:		// llvm.x86.sse.cvtsi642ss
   7139     ResultTy = VectorType::get(Type::getFloatTy(Context), 4);
   7140     ArgTys.push_back(VectorType::get(Type::getFloatTy(Context), 4));
   7141     ArgTys.push_back(IntegerType::get(Context, 64));
   7142     break;
   7143   case Intrinsic::x86_avx_vpermil_ps:		// llvm.x86.avx.vpermil.ps
   7144     ResultTy = VectorType::get(Type::getFloatTy(Context), 4);
   7145     ArgTys.push_back(VectorType::get(Type::getFloatTy(Context), 4));
   7146     ArgTys.push_back(IntegerType::get(Context, 8));
   7147     break;
   7148   case Intrinsic::x86_sse2_cvtsd2ss:		// llvm.x86.sse2.cvtsd2ss
   7149     ResultTy = VectorType::get(Type::getFloatTy(Context), 4);
   7150     ArgTys.push_back(VectorType::get(Type::getFloatTy(Context), 4));
   7151     ArgTys.push_back(VectorType::get(Type::getDoubleTy(Context), 2));
   7152     break;
   7153   case Intrinsic::x86_sse3_addsub_ps:		// llvm.x86.sse3.addsub.ps
   7154   case Intrinsic::x86_sse3_hadd_ps:		// llvm.x86.sse3.hadd.ps
   7155   case Intrinsic::x86_sse3_hsub_ps:		// llvm.x86.sse3.hsub.ps
   7156   case Intrinsic::x86_sse_add_ss:		// llvm.x86.sse.add.ss
   7157   case Intrinsic::x86_sse_div_ss:		// llvm.x86.sse.div.ss
   7158   case Intrinsic::x86_sse_max_ps:		// llvm.x86.sse.max.ps
   7159   case Intrinsic::x86_sse_max_ss:		// llvm.x86.sse.max.ss
   7160   case Intrinsic::x86_sse_min_ps:		// llvm.x86.sse.min.ps
   7161   case Intrinsic::x86_sse_min_ss:		// llvm.x86.sse.min.ss
   7162   case Intrinsic::x86_sse_mul_ss:		// llvm.x86.sse.mul.ss
   7163   case Intrinsic::x86_sse_sub_ss:		// llvm.x86.sse.sub.ss
   7164     ResultTy = VectorType::get(Type::getFloatTy(Context), 4);
   7165     ArgTys.push_back(VectorType::get(Type::getFloatTy(Context), 4));
   7166     ArgTys.push_back(VectorType::get(Type::getFloatTy(Context), 4));
   7167     break;
   7168   case Intrinsic::x86_sse41_blendps:		// llvm.x86.sse41.blendps
   7169   case Intrinsic::x86_sse41_dpps:		// llvm.x86.sse41.dpps
   7170   case Intrinsic::x86_sse41_insertps:		// llvm.x86.sse41.insertps
   7171   case Intrinsic::x86_sse41_round_ss:		// llvm.x86.sse41.round.ss
   7172     ResultTy = VectorType::get(Type::getFloatTy(Context), 4);
   7173     ArgTys.push_back(VectorType::get(Type::getFloatTy(Context), 4));
   7174     ArgTys.push_back(VectorType::get(Type::getFloatTy(Context), 4));
   7175     ArgTys.push_back(IntegerType::get(Context, 32));
   7176     break;
   7177   case Intrinsic::x86_sse_cmp_ps:		// llvm.x86.sse.cmp.ps
   7178   case Intrinsic::x86_sse_cmp_ss:		// llvm.x86.sse.cmp.ss
   7179     ResultTy = VectorType::get(Type::getFloatTy(Context), 4);
   7180     ArgTys.push_back(VectorType::get(Type::getFloatTy(Context), 4));
   7181     ArgTys.push_back(VectorType::get(Type::getFloatTy(Context), 4));
   7182     ArgTys.push_back(IntegerType::get(Context, 8));
   7183     break;
   7184   case Intrinsic::x86_sse41_blendvps:		// llvm.x86.sse41.blendvps
   7185     ResultTy = VectorType::get(Type::getFloatTy(Context), 4);
   7186     ArgTys.push_back(VectorType::get(Type::getFloatTy(Context), 4));
   7187     ArgTys.push_back(VectorType::get(Type::getFloatTy(Context), 4));
   7188     ArgTys.push_back(VectorType::get(Type::getFloatTy(Context), 4));
   7189     break;
   7190   case Intrinsic::x86_avx_vpermilvar_ps:		// llvm.x86.avx.vpermilvar.ps
   7191     ResultTy = VectorType::get(Type::getFloatTy(Context), 4);
   7192     ArgTys.push_back(VectorType::get(Type::getFloatTy(Context), 4));
   7193     ArgTys.push_back(VectorType::get(IntegerType::get(Context, 32), 4));
   7194     break;
   7195   case Intrinsic::x86_sse_cvtpi2ps:		// llvm.x86.sse.cvtpi2ps
   7196     ResultTy = VectorType::get(Type::getFloatTy(Context), 4);
   7197     ArgTys.push_back(VectorType::get(Type::getFloatTy(Context), 4));
   7198     ArgTys.push_back(Type::getX86_MMXTy(Context));
   7199     break;
   7200   case Intrinsic::x86_avx_cvt_pd2_ps_256:		// llvm.x86.avx.cvt.pd2.ps.256
   7201     ResultTy = VectorType::get(Type::getFloatTy(Context), 4);
   7202     ArgTys.push_back(VectorType::get(Type::getDoubleTy(Context), 4));
   7203     break;
   7204   case Intrinsic::x86_sse2_cvtdq2ps:		// llvm.x86.sse2.cvtdq2ps
   7205     ResultTy = VectorType::get(Type::getFloatTy(Context), 4);
   7206     ArgTys.push_back(VectorType::get(IntegerType::get(Context, 32), 4));
   7207     break;
   7208   case Intrinsic::x86_avx_vextractf128_ps_256:		// llvm.x86.avx.vextractf128.ps.256
   7209     ResultTy = VectorType::get(Type::getFloatTy(Context), 4);
   7210     ArgTys.push_back(VectorType::get(Type::getFloatTy(Context), 8));
   7211     ArgTys.push_back(IntegerType::get(Context, 8));
   7212     break;
   7213   case Intrinsic::x86_avx_loadu_pd_256:		// llvm.x86.avx.loadu.pd.256
   7214   case Intrinsic::x86_avx_vbroadcast_sd_256:		// llvm.x86.avx.vbroadcast.sd.256
   7215   case Intrinsic::x86_avx_vbroadcastf128_pd_256:		// llvm.x86.avx.vbroadcastf128.pd.256
   7216     ResultTy = VectorType::get(Type::getDoubleTy(Context), 4);
   7217     ArgTys.push_back(PointerType::getUnqual(IntegerType::get(Context, 8)));
   7218     break;
   7219   case Intrinsic::x86_avx_maskload_pd_256:		// llvm.x86.avx.maskload.pd.256
   7220     ResultTy = VectorType::get(Type::getDoubleTy(Context), 4);
   7221     ArgTys.push_back(PointerType::getUnqual(IntegerType::get(Context, 8)));
   7222     ArgTys.push_back(VectorType::get(Type::getDoubleTy(Context), 4));
   7223     break;
   7224   case Intrinsic::x86_avx_cvt_ps2_pd_256:		// llvm.x86.avx.cvt.ps2.pd.256
   7225     ResultTy = VectorType::get(Type::getDoubleTy(Context), 4);
   7226     ArgTys.push_back(VectorType::get(Type::getFloatTy(Context), 4));
   7227     break;
   7228   case Intrinsic::x86_avx_sqrt_pd_256:		// llvm.x86.avx.sqrt.pd.256
   7229     ResultTy = VectorType::get(Type::getDoubleTy(Context), 4);
   7230     ArgTys.push_back(VectorType::get(Type::getDoubleTy(Context), 4));
   7231     break;
   7232   case Intrinsic::x86_avx_round_pd_256:		// llvm.x86.avx.round.pd.256
   7233     ResultTy = VectorType::get(Type::getDoubleTy(Context), 4);
   7234     ArgTys.push_back(VectorType::get(Type::getDoubleTy(Context), 4));
   7235     ArgTys.push_back(IntegerType::get(Context, 32));
   7236     break;
   7237   case Intrinsic::x86_avx_vpermil_pd_256:		// llvm.x86.avx.vpermil.pd.256
   7238     ResultTy = VectorType::get(Type::getDoubleTy(Context), 4);
   7239     ArgTys.push_back(VectorType::get(Type::getDoubleTy(Context), 4));
   7240     ArgTys.push_back(IntegerType::get(Context, 8));
   7241     break;
   7242   case Intrinsic::x86_avx_vinsertf128_pd_256:		// llvm.x86.avx.vinsertf128.pd.256
   7243     ResultTy = VectorType::get(Type::getDoubleTy(Context), 4);
   7244     ArgTys.push_back(VectorType::get(Type::getDoubleTy(Context), 4));
   7245     ArgTys.push_back(VectorType::get(Type::getDoubleTy(Context), 2));
   7246     ArgTys.push_back(IntegerType::get(Context, 8));
   7247     break;
   7248   case Intrinsic::x86_avx_addsub_pd_256:		// llvm.x86.avx.addsub.pd.256
   7249   case Intrinsic::x86_avx_hadd_pd_256:		// llvm.x86.avx.hadd.pd.256
   7250   case Intrinsic::x86_avx_hsub_pd_256:		// llvm.x86.avx.hsub.pd.256
   7251   case Intrinsic::x86_avx_max_pd_256:		// llvm.x86.avx.max.pd.256
   7252   case Intrinsic::x86_avx_min_pd_256:		// llvm.x86.avx.min.pd.256
   7253     ResultTy = VectorType::get(Type::getDoubleTy(Context), 4);
   7254     ArgTys.push_back(VectorType::get(Type::getDoubleTy(Context), 4));
   7255     ArgTys.push_back(VectorType::get(Type::getDoubleTy(Context), 4));
   7256     break;
   7257   case Intrinsic::x86_avx_blend_pd_256:		// llvm.x86.avx.blend.pd.256
   7258     ResultTy = VectorType::get(Type::getDoubleTy(Context), 4);
   7259     ArgTys.push_back(VectorType::get(Type::getDoubleTy(Context), 4));
   7260     ArgTys.push_back(VectorType::get(Type::getDoubleTy(Context), 4));
   7261     ArgTys.push_back(IntegerType::get(Context, 32));
   7262     break;
   7263   case Intrinsic::x86_avx_cmp_pd_256:		// llvm.x86.avx.cmp.pd.256
   7264   case Intrinsic::x86_avx_vperm2f128_pd_256:		// llvm.x86.avx.vperm2f128.pd.256
   7265     ResultTy = VectorType::get(Type::getDoubleTy(Context), 4);
   7266     ArgTys.push_back(VectorType::get(Type::getDoubleTy(Context), 4));
   7267     ArgTys.push_back(VectorType::get(Type::getDoubleTy(Context), 4));
   7268     ArgTys.push_back(IntegerType::get(Context, 8));
   7269     break;
   7270   case Intrinsic::x86_avx_blendv_pd_256:		// llvm.x86.avx.blendv.pd.256
   7271     ResultTy = VectorType::get(Type::getDoubleTy(Context), 4);
   7272     ArgTys.push_back(VectorType::get(Type::getDoubleTy(Context), 4));
   7273     ArgTys.push_back(VectorType::get(Type::getDoubleTy(Context), 4));
   7274     ArgTys.push_back(VectorType::get(Type::getDoubleTy(Context), 4));
   7275     break;
   7276   case Intrinsic::x86_avx_vpermilvar_pd_256:		// llvm.x86.avx.vpermilvar.pd.256
   7277     ResultTy = VectorType::get(Type::getDoubleTy(Context), 4);
   7278     ArgTys.push_back(VectorType::get(Type::getDoubleTy(Context), 4));
   7279     ArgTys.push_back(VectorType::get(IntegerType::get(Context, 64), 4));
   7280     break;
   7281   case Intrinsic::x86_avx_cvtdq2_pd_256:		// llvm.x86.avx.cvtdq2.pd.256
   7282     ResultTy = VectorType::get(Type::getDoubleTy(Context), 4);
   7283     ArgTys.push_back(VectorType::get(IntegerType::get(Context, 32), 4));
   7284     break;
   7285   case Intrinsic::x86_sse41_pmovsxbd:		// llvm.x86.sse41.pmovsxbd
   7286   case Intrinsic::x86_sse41_pmovzxbd:		// llvm.x86.sse41.pmovzxbd
   7287     ResultTy = VectorType::get(IntegerType::get(Context, 32), 4);
   7288     ArgTys.push_back(VectorType::get(IntegerType::get(Context, 8), 16));
   7289     break;
   7290   case Intrinsic::x86_sse2_cvtpd2dq:		// llvm.x86.sse2.cvtpd2dq
   7291   case Intrinsic::x86_sse2_cvttpd2dq:		// llvm.x86.sse2.cvttpd2dq
   7292     ResultTy = VectorType::get(IntegerType::get(Context, 32), 4);
   7293     ArgTys.push_back(VectorType::get(Type::getDoubleTy(Context), 2));
   7294     break;
   7295   case Intrinsic::x86_sse2_cvtps2dq:		// llvm.x86.sse2.cvtps2dq
   7296   case Intrinsic::x86_sse2_cvttps2dq:		// llvm.x86.sse2.cvttps2dq
   7297     ResultTy = VectorType::get(IntegerType::get(Context, 32), 4);
   7298     ArgTys.push_back(VectorType::get(Type::getFloatTy(Context), 4));
   7299     break;
   7300   case Intrinsic::x86_avx_cvt_pd2dq_256:		// llvm.x86.avx.cvt.pd2dq.256
   7301   case Intrinsic::x86_avx_cvtt_pd2dq_256:		// llvm.x86.avx.cvtt.pd2dq.256
   7302     ResultTy = VectorType::get(IntegerType::get(Context, 32), 4);
   7303     ArgTys.push_back(VectorType::get(Type::getDoubleTy(Context), 4));
   7304     break;
   7305   case Intrinsic::x86_ssse3_pabs_d_128:		// llvm.x86.ssse3.pabs.d.128
   7306     ResultTy = VectorType::get(IntegerType::get(Context, 32), 4);
   7307     ArgTys.push_back(VectorType::get(IntegerType::get(Context, 32), 4));
   7308     break;
   7309   case Intrinsic::x86_sse2_pslli_d:		// llvm.x86.sse2.pslli.d
   7310   case Intrinsic::x86_sse2_psrai_d:		// llvm.x86.sse2.psrai.d
   7311   case Intrinsic::x86_sse2_psrli_d:		// llvm.x86.sse2.psrli.d
   7312     ResultTy = VectorType::get(IntegerType::get(Context, 32), 4);
   7313     ArgTys.push_back(VectorType::get(IntegerType::get(Context, 32), 4));
   7314     ArgTys.push_back(IntegerType::get(Context, 32));
   7315     break;
   7316   case Intrinsic::x86_sse2_pcmpeq_d:		// llvm.x86.sse2.pcmpeq.d
   7317   case Intrinsic::x86_sse2_pcmpgt_d:		// llvm.x86.sse2.pcmpgt.d
   7318   case Intrinsic::x86_sse2_psll_d:		// llvm.x86.sse2.psll.d
   7319   case Intrinsic::x86_sse2_psra_d:		// llvm.x86.sse2.psra.d
   7320   case Intrinsic::x86_sse2_psrl_d:		// llvm.x86.sse2.psrl.d
   7321   case Intrinsic::x86_sse41_pmaxsd:		// llvm.x86.sse41.pmaxsd
   7322   case Intrinsic::x86_sse41_pmaxud:		// llvm.x86.sse41.pmaxud
   7323   case Intrinsic::x86_sse41_pminsd:		// llvm.x86.sse41.pminsd
   7324   case Intrinsic::x86_sse41_pminud:		// llvm.x86.sse41.pminud
   7325   case Intrinsic::x86_ssse3_phadd_d_128:		// llvm.x86.ssse3.phadd.d.128
   7326   case Intrinsic::x86_ssse3_phadd_sw_128:		// llvm.x86.ssse3.phadd.sw.128
   7327   case Intrinsic::x86_ssse3_phsub_d_128:		// llvm.x86.ssse3.phsub.d.128
   7328   case Intrinsic::x86_ssse3_psign_d_128:		// llvm.x86.ssse3.psign.d.128
   7329     ResultTy = VectorType::get(IntegerType::get(Context, 32), 4);
   7330     ArgTys.push_back(VectorType::get(IntegerType::get(Context, 32), 4));
   7331     ArgTys.push_back(VectorType::get(IntegerType::get(Context, 32), 4));
   7332     break;
   7333   case Intrinsic::x86_sse41_pmovsxwd:		// llvm.x86.sse41.pmovsxwd
   7334   case Intrinsic::x86_sse41_pmovzxwd:		// llvm.x86.sse41.pmovzxwd
   7335     ResultTy = VectorType::get(IntegerType::get(Context, 32), 4);
   7336     ArgTys.push_back(VectorType::get(IntegerType::get(Context, 16), 8));
   7337     break;
   7338   case Intrinsic::x86_sse2_pmadd_wd:		// llvm.x86.sse2.pmadd.wd
   7339     ResultTy = VectorType::get(IntegerType::get(Context, 32), 4);
   7340     ArgTys.push_back(VectorType::get(IntegerType::get(Context, 16), 8));
   7341     ArgTys.push_back(VectorType::get(IntegerType::get(Context, 16), 8));
   7342     break;
   7343   case Intrinsic::x86_avx_vextractf128_si_256:		// llvm.x86.avx.vextractf128.si.256
   7344     ResultTy = VectorType::get(IntegerType::get(Context, 32), 4);
   7345     ArgTys.push_back(VectorType::get(IntegerType::get(Context, 32), 8));
   7346     ArgTys.push_back(IntegerType::get(Context, 8));
   7347     break;
   7348   case Intrinsic::x86_avx_loadu_ps_256:		// llvm.x86.avx.loadu.ps.256
   7349   case Intrinsic::x86_avx_vbroadcastf128_ps_256:		// llvm.x86.avx.vbroadcastf128.ps.256
   7350   case Intrinsic::x86_avx_vbroadcastss_256:		// llvm.x86.avx.vbroadcastss.256
   7351     ResultTy = VectorType::get(Type::getFloatTy(Context), 8);
   7352     ArgTys.push_back(PointerType::getUnqual(IntegerType::get(Context, 8)));
   7353     break;
   7354   case Intrinsic::x86_avx_maskload_ps_256:		// llvm.x86.avx.maskload.ps.256
   7355     ResultTy = VectorType::get(Type::getFloatTy(Context), 8);
   7356     ArgTys.push_back(PointerType::getUnqual(IntegerType::get(Context, 8)));
   7357     ArgTys.push_back(VectorType::get(Type::getFloatTy(Context), 8));
   7358     break;
   7359   case Intrinsic::x86_avx_rcp_ps_256:		// llvm.x86.avx.rcp.ps.256
   7360   case Intrinsic::x86_avx_rsqrt_ps_256:		// llvm.x86.avx.rsqrt.ps.256
   7361   case Intrinsic::x86_avx_sqrt_ps_256:		// llvm.x86.avx.sqrt.ps.256
   7362     ResultTy = VectorType::get(Type::getFloatTy(Context), 8);
   7363     ArgTys.push_back(VectorType::get(Type::getFloatTy(Context), 8));
   7364     break;
   7365   case Intrinsic::x86_avx_round_ps_256:		// llvm.x86.avx.round.ps.256
   7366     ResultTy = VectorType::get(Type::getFloatTy(Context), 8);
   7367     ArgTys.push_back(VectorType::get(Type::getFloatTy(Context), 8));
   7368     ArgTys.push_back(IntegerType::get(Context, 32));
   7369     break;
   7370   case Intrinsic::x86_avx_vpermil_ps_256:		// llvm.x86.avx.vpermil.ps.256
   7371     ResultTy = VectorType::get(Type::getFloatTy(Context), 8);
   7372     ArgTys.push_back(VectorType::get(Type::getFloatTy(Context), 8));
   7373     ArgTys.push_back(IntegerType::get(Context, 8));
   7374     break;
   7375   case Intrinsic::x86_avx_vinsertf128_ps_256:		// llvm.x86.avx.vinsertf128.ps.256
   7376     ResultTy = VectorType::get(Type::getFloatTy(Context), 8);
   7377     ArgTys.push_back(VectorType::get(Type::getFloatTy(Context), 8));
   7378     ArgTys.push_back(VectorType::get(Type::getFloatTy(Context), 4));
   7379     ArgTys.push_back(IntegerType::get(Context, 8));
   7380     break;
   7381   case Intrinsic::x86_avx_addsub_ps_256:		// llvm.x86.avx.addsub.ps.256
   7382   case Intrinsic::x86_avx_hadd_ps_256:		// llvm.x86.avx.hadd.ps.256
   7383   case Intrinsic::x86_avx_hsub_ps_256:		// llvm.x86.avx.hsub.ps.256
   7384   case Intrinsic::x86_avx_max_ps_256:		// llvm.x86.avx.max.ps.256
   7385   case Intrinsic::x86_avx_min_ps_256:		// llvm.x86.avx.min.ps.256
   7386     ResultTy = VectorType::get(Type::getFloatTy(Context), 8);
   7387     ArgTys.push_back(VectorType::get(Type::getFloatTy(Context), 8));
   7388     ArgTys.push_back(VectorType::get(Type::getFloatTy(Context), 8));
   7389     break;
   7390   case Intrinsic::x86_avx_blend_ps_256:		// llvm.x86.avx.blend.ps.256
   7391   case Intrinsic::x86_avx_dp_ps_256:		// llvm.x86.avx.dp.ps.256
   7392     ResultTy = VectorType::get(Type::getFloatTy(Context), 8);
   7393     ArgTys.push_back(VectorType::get(Type::getFloatTy(Context), 8));
   7394     ArgTys.push_back(VectorType::get(Type::getFloatTy(Context), 8));
   7395     ArgTys.push_back(IntegerType::get(Context, 32));
   7396     break;
   7397   case Intrinsic::x86_avx_cmp_ps_256:		// llvm.x86.avx.cmp.ps.256
   7398   case Intrinsic::x86_avx_vperm2f128_ps_256:		// llvm.x86.avx.vperm2f128.ps.256
   7399     ResultTy = VectorType::get(Type::getFloatTy(Context), 8);
   7400     ArgTys.push_back(VectorType::get(Type::getFloatTy(Context), 8));
   7401     ArgTys.push_back(VectorType::get(Type::getFloatTy(Context), 8));
   7402     ArgTys.push_back(IntegerType::get(Context, 8));
   7403     break;
   7404   case Intrinsic::x86_avx_blendv_ps_256:		// llvm.x86.avx.blendv.ps.256
   7405     ResultTy = VectorType::get(Type::getFloatTy(Context), 8);
   7406     ArgTys.push_back(VectorType::get(Type::getFloatTy(Context), 8));
   7407     ArgTys.push_back(VectorType::get(Type::getFloatTy(Context), 8));
   7408     ArgTys.push_back(VectorType::get(Type::getFloatTy(Context), 8));
   7409     break;
   7410   case Intrinsic::x86_avx_vpermilvar_ps_256:		// llvm.x86.avx.vpermilvar.ps.256
   7411     ResultTy = VectorType::get(Type::getFloatTy(Context), 8);
   7412     ArgTys.push_back(VectorType::get(Type::getFloatTy(Context), 8));
   7413     ArgTys.push_back(VectorType::get(IntegerType::get(Context, 32), 8));
   7414     break;
   7415   case Intrinsic::x86_avx_cvtdq2_ps_256:		// llvm.x86.avx.cvtdq2.ps.256
   7416     ResultTy = VectorType::get(Type::getFloatTy(Context), 8);
   7417     ArgTys.push_back(VectorType::get(IntegerType::get(Context, 32), 8));
   7418     break;
   7419   case Intrinsic::x86_sse41_pmovsxbw:		// llvm.x86.sse41.pmovsxbw
   7420   case Intrinsic::x86_sse41_pmovzxbw:		// llvm.x86.sse41.pmovzxbw
   7421     ResultTy = VectorType::get(IntegerType::get(Context, 16), 8);
   7422     ArgTys.push_back(VectorType::get(IntegerType::get(Context, 8), 16));
   7423     break;
   7424   case Intrinsic::x86_sse2_packssdw_128:		// llvm.x86.sse2.packssdw.128
   7425   case Intrinsic::x86_sse41_packusdw:		// llvm.x86.sse41.packusdw
   7426     ResultTy = VectorType::get(IntegerType::get(Context, 16), 8);
   7427     ArgTys.push_back(VectorType::get(IntegerType::get(Context, 32), 4));
   7428     ArgTys.push_back(VectorType::get(IntegerType::get(Context, 32), 4));
   7429     break;
   7430   case Intrinsic::x86_sse41_phminposuw:		// llvm.x86.sse41.phminposuw
   7431   case Intrinsic::x86_ssse3_pabs_w_128:		// llvm.x86.ssse3.pabs.w.128
   7432     ResultTy = VectorType::get(IntegerType::get(Context, 16), 8);
   7433     ArgTys.push_back(VectorType::get(IntegerType::get(Context, 16), 8));
   7434     break;
   7435   case Intrinsic::x86_sse2_pslli_w:		// llvm.x86.sse2.pslli.w
   7436   case Intrinsic::x86_sse2_psrai_w:		// llvm.x86.sse2.psrai.w
   7437   case Intrinsic::x86_sse2_psrli_w:		// llvm.x86.sse2.psrli.w
   7438     ResultTy = VectorType::get(IntegerType::get(Context, 16), 8);
   7439     ArgTys.push_back(VectorType::get(IntegerType::get(Context, 16), 8));
   7440     ArgTys.push_back(IntegerType::get(Context, 32));
   7441     break;
   7442   case Intrinsic::x86_sse2_padds_w:		// llvm.x86.sse2.padds.w
   7443   case Intrinsic::x86_sse2_paddus_w:		// llvm.x86.sse2.paddus.w
   7444   case Intrinsic::x86_sse2_pavg_w:		// llvm.x86.sse2.pavg.w
   7445   case Intrinsic::x86_sse2_pcmpeq_w:		// llvm.x86.sse2.pcmpeq.w
   7446   case Intrinsic::x86_sse2_pcmpgt_w:		// llvm.x86.sse2.pcmpgt.w
   7447   case Intrinsic::x86_sse2_pmaxs_w:		// llvm.x86.sse2.pmaxs.w
   7448   case Intrinsic::x86_sse2_pmins_w:		// llvm.x86.sse2.pmins.w
   7449   case Intrinsic::x86_sse2_pmulh_w:		// llvm.x86.sse2.pmulh.w
   7450   case Intrinsic::x86_sse2_pmulhu_w:		// llvm.x86.sse2.pmulhu.w
   7451   case Intrinsic::x86_sse2_psll_w:		// llvm.x86.sse2.psll.w
   7452   case Intrinsic::x86_sse2_psra_w:		// llvm.x86.sse2.psra.w
   7453   case Intrinsic::x86_sse2_psrl_w:		// llvm.x86.sse2.psrl.w
   7454   case Intrinsic::x86_sse2_psubs_w:		// llvm.x86.sse2.psubs.w
   7455   case Intrinsic::x86_sse2_psubus_w:		// llvm.x86.sse2.psubus.w
   7456   case Intrinsic::x86_sse41_pmaxuw:		// llvm.x86.sse41.pmaxuw
   7457   case Intrinsic::x86_sse41_pminuw:		// llvm.x86.sse41.pminuw
   7458   case Intrinsic::x86_ssse3_phadd_w_128:		// llvm.x86.ssse3.phadd.w.128
   7459   case Intrinsic::x86_ssse3_phsub_sw_128:		// llvm.x86.ssse3.phsub.sw.128
   7460   case Intrinsic::x86_ssse3_phsub_w_128:		// llvm.x86.ssse3.phsub.w.128
   7461   case Intrinsic::x86_ssse3_pmadd_ub_sw_128:		// llvm.x86.ssse3.pmadd.ub.sw.128
   7462   case Intrinsic::x86_ssse3_pmul_hr_sw_128:		// llvm.x86.ssse3.pmul.hr.sw.128
   7463   case Intrinsic::x86_ssse3_psign_w_128:		// llvm.x86.ssse3.psign.w.128
   7464     ResultTy = VectorType::get(IntegerType::get(Context, 16), 8);
   7465     ArgTys.push_back(VectorType::get(IntegerType::get(Context, 16), 8));
   7466     ArgTys.push_back(VectorType::get(IntegerType::get(Context, 16), 8));
   7467     break;
   7468   case Intrinsic::x86_sse41_pblendw:		// llvm.x86.sse41.pblendw
   7469     ResultTy = VectorType::get(IntegerType::get(Context, 16), 8);
   7470     ArgTys.push_back(VectorType::get(IntegerType::get(Context, 16), 8));
   7471     ArgTys.push_back(VectorType::get(IntegerType::get(Context, 16), 8));
   7472     ArgTys.push_back(IntegerType::get(Context, 32));
   7473     break;
   7474   case Intrinsic::x86_avx_cvt_ps2dq_256:		// llvm.x86.avx.cvt.ps2dq.256
   7475   case Intrinsic::x86_avx_cvtt_ps2dq_256:		// llvm.x86.avx.cvtt.ps2dq.256
   7476     ResultTy = VectorType::get(IntegerType::get(Context, 32), 8);
   7477     ArgTys.push_back(VectorType::get(Type::getFloatTy(Context), 8));
   7478     break;
   7479   case Intrinsic::x86_avx_vinsertf128_si_256:		// llvm.x86.avx.vinsertf128.si.256
   7480     ResultTy = VectorType::get(IntegerType::get(Context, 32), 8);
   7481     ArgTys.push_back(VectorType::get(IntegerType::get(Context, 32), 8));
   7482     ArgTys.push_back(VectorType::get(IntegerType::get(Context, 32), 4));
   7483     ArgTys.push_back(IntegerType::get(Context, 8));
   7484     break;
   7485   case Intrinsic::x86_avx_vperm2f128_si_256:		// llvm.x86.avx.vperm2f128.si.256
   7486     ResultTy = VectorType::get(IntegerType::get(Context, 32), 8);
   7487     ArgTys.push_back(VectorType::get(IntegerType::get(Context, 32), 8));
   7488     ArgTys.push_back(VectorType::get(IntegerType::get(Context, 32), 8));
   7489     ArgTys.push_back(IntegerType::get(Context, 8));
   7490     break;
   7491   case Intrinsic::x86_sse_cvtpd2pi:		// llvm.x86.sse.cvtpd2pi
   7492   case Intrinsic::x86_sse_cvttpd2pi:		// llvm.x86.sse.cvttpd2pi
   7493     ResultTy = Type::getX86_MMXTy(Context);
   7494     ArgTys.push_back(VectorType::get(Type::getDoubleTy(Context), 2));
   7495     break;
   7496   case Intrinsic::x86_sse_cvtps2pi:		// llvm.x86.sse.cvtps2pi
   7497   case Intrinsic::x86_sse_cvttps2pi:		// llvm.x86.sse.cvttps2pi
   7498     ResultTy = Type::getX86_MMXTy(Context);
   7499     ArgTys.push_back(VectorType::get(Type::getFloatTy(Context), 4));
   7500     break;
   7501   case Intrinsic::x86_3dnow_pf2id:		// llvm.x86.3dnow.pf2id
   7502   case Intrinsic::x86_3dnow_pfrcp:		// llvm.x86.3dnow.pfrcp
   7503   case Intrinsic::x86_3dnow_pfrsqrt:		// llvm.x86.3dnow.pfrsqrt
   7504   case Intrinsic::x86_3dnow_pi2fd:		// llvm.x86.3dnow.pi2fd
   7505   case Intrinsic::x86_3dnowa_pf2iw:		// llvm.x86.3dnowa.pf2iw
   7506   case Intrinsic::x86_3dnowa_pi2fw:		// llvm.x86.3dnowa.pi2fw
   7507   case Intrinsic::x86_3dnowa_pswapd:		// llvm.x86.3dnowa.pswapd
   7508   case Intrinsic::x86_ssse3_pabs_b:		// llvm.x86.ssse3.pabs.b
   7509   case Intrinsic::x86_ssse3_pabs_d:		// llvm.x86.ssse3.pabs.d
   7510   case Intrinsic::x86_ssse3_pabs_w:		// llvm.x86.ssse3.pabs.w
   7511     ResultTy = Type::getX86_MMXTy(Context);
   7512     ArgTys.push_back(Type::getX86_MMXTy(Context));
   7513     break;
   7514   case Intrinsic::x86_mmx_pslli_d:		// llvm.x86.mmx.pslli.d
   7515   case Intrinsic::x86_mmx_pslli_q:		// llvm.x86.mmx.pslli.q
   7516   case Intrinsic::x86_mmx_pslli_w:		// llvm.x86.mmx.pslli.w
   7517   case Intrinsic::x86_mmx_psrai_d:		// llvm.x86.mmx.psrai.d
   7518   case Intrinsic::x86_mmx_psrai_w:		// llvm.x86.mmx.psrai.w
   7519   case Intrinsic::x86_mmx_psrli_d:		// llvm.x86.mmx.psrli.d
   7520   case Intrinsic::x86_mmx_psrli_q:		// llvm.x86.mmx.psrli.q
   7521   case Intrinsic::x86_mmx_psrli_w:		// llvm.x86.mmx.psrli.w
   7522     ResultTy = Type::getX86_MMXTy(Context);
   7523     ArgTys.push_back(Type::getX86_MMXTy(Context));
   7524     ArgTys.push_back(IntegerType::get(Context, 32));
   7525     break;
   7526   case Intrinsic::x86_mmx_pinsr_w:		// llvm.x86.mmx.pinsr.w
   7527     ResultTy = Type::getX86_MMXTy(Context);
   7528     ArgTys.push_back(Type::getX86_MMXTy(Context));
   7529     ArgTys.push_back(IntegerType::get(Context, 32));
   7530     ArgTys.push_back(IntegerType::get(Context, 32));
   7531     break;
   7532   case Intrinsic::x86_sse_pshuf_w:		// llvm.x86.sse.pshuf.w
   7533     ResultTy = Type::getX86_MMXTy(Context);
   7534     ArgTys.push_back(Type::getX86_MMXTy(Context));
   7535     ArgTys.push_back(IntegerType::get(Context, 8));
   7536     break;
   7537   case Intrinsic::x86_3dnow_pavgusb:		// llvm.x86.3dnow.pavgusb
   7538   case Intrinsic::x86_3dnow_pfacc:		// llvm.x86.3dnow.pfacc
   7539   case Intrinsic::x86_3dnow_pfadd:		// llvm.x86.3dnow.pfadd
   7540   case Intrinsic::x86_3dnow_pfcmpeq:		// llvm.x86.3dnow.pfcmpeq
   7541   case Intrinsic::x86_3dnow_pfcmpge:		// llvm.x86.3dnow.pfcmpge
   7542   case Intrinsic::x86_3dnow_pfcmpgt:		// llvm.x86.3dnow.pfcmpgt
   7543   case Intrinsic::x86_3dnow_pfmax:		// llvm.x86.3dnow.pfmax
   7544   case Intrinsic::x86_3dnow_pfmin:		// llvm.x86.3dnow.pfmin
   7545   case Intrinsic::x86_3dnow_pfmul:		// llvm.x86.3dnow.pfmul
   7546   case Intrinsic::x86_3dnow_pfrcpit1:		// llvm.x86.3dnow.pfrcpit1
   7547   case Intrinsic::x86_3dnow_pfrcpit2:		// llvm.x86.3dnow.pfrcpit2
   7548   case Intrinsic::x86_3dnow_pfrsqit1:		// llvm.x86.3dnow.pfrsqit1
   7549   case Intrinsic::x86_3dnow_pfsub:		// llvm.x86.3dnow.pfsub
   7550   case Intrinsic::x86_3dnow_pfsubr:		// llvm.x86.3dnow.pfsubr
   7551   case Intrinsic::x86_3dnow_pmulhrw:		// llvm.x86.3dnow.pmulhrw
   7552   case Intrinsic::x86_3dnowa_pfnacc:		// llvm.x86.3dnowa.pfnacc
   7553   case Intrinsic::x86_3dnowa_pfpnacc:		// llvm.x86.3dnowa.pfpnacc
   7554   case Intrinsic::x86_mmx_packssdw:		// llvm.x86.mmx.packssdw
   7555   case Intrinsic::x86_mmx_packsswb:		// llvm.x86.mmx.packsswb
   7556   case Intrinsic::x86_mmx_packuswb:		// llvm.x86.mmx.packuswb
   7557   case Intrinsic::x86_mmx_padd_b:		// llvm.x86.mmx.padd.b
   7558   case Intrinsic::x86_mmx_padd_d:		// llvm.x86.mmx.padd.d
   7559   case Intrinsic::x86_mmx_padd_q:		// llvm.x86.mmx.padd.q
   7560   case Intrinsic::x86_mmx_padd_w:		// llvm.x86.mmx.padd.w
   7561   case Intrinsic::x86_mmx_padds_b:		// llvm.x86.mmx.padds.b
   7562   case Intrinsic::x86_mmx_padds_w:		// llvm.x86.mmx.padds.w
   7563   case Intrinsic::x86_mmx_paddus_b:		// llvm.x86.mmx.paddus.b
   7564   case Intrinsic::x86_mmx_paddus_w:		// llvm.x86.mmx.paddus.w
   7565   case Intrinsic::x86_mmx_pand:		// llvm.x86.mmx.pand
   7566   case Intrinsic::x86_mmx_pandn:		// llvm.x86.mmx.pandn
   7567   case Intrinsic::x86_mmx_pavg_b:		// llvm.x86.mmx.pavg.b
   7568   case Intrinsic::x86_mmx_pavg_w:		// llvm.x86.mmx.pavg.w
   7569   case Intrinsic::x86_mmx_pcmpeq_b:		// llvm.x86.mmx.pcmpeq.b
   7570   case Intrinsic::x86_mmx_pcmpeq_d:		// llvm.x86.mmx.pcmpeq.d
   7571   case Intrinsic::x86_mmx_pcmpeq_w:		// llvm.x86.mmx.pcmpeq.w
   7572   case Intrinsic::x86_mmx_pcmpgt_b:		// llvm.x86.mmx.pcmpgt.b
   7573   case Intrinsic::x86_mmx_pcmpgt_d:		// llvm.x86.mmx.pcmpgt.d
   7574   case Intrinsic::x86_mmx_pcmpgt_w:		// llvm.x86.mmx.pcmpgt.w
   7575   case Intrinsic::x86_mmx_pmadd_wd:		// llvm.x86.mmx.pmadd.wd
   7576   case Intrinsic::x86_mmx_pmaxs_w:		// llvm.x86.mmx.pmaxs.w
   7577   case Intrinsic::x86_mmx_pmaxu_b:		// llvm.x86.mmx.pmaxu.b
   7578   case Intrinsic::x86_mmx_pmins_w:		// llvm.x86.mmx.pmins.w
   7579   case Intrinsic::x86_mmx_pminu_b:		// llvm.x86.mmx.pminu.b
   7580   case Intrinsic::x86_mmx_pmulh_w:		// llvm.x86.mmx.pmulh.w
   7581   case Intrinsic::x86_mmx_pmulhu_w:		// llvm.x86.mmx.pmulhu.w
   7582   case Intrinsic::x86_mmx_pmull_w:		// llvm.x86.mmx.pmull.w
   7583   case Intrinsic::x86_mmx_pmulu_dq:		// llvm.x86.mmx.pmulu.dq
   7584   case Intrinsic::x86_mmx_por:		// llvm.x86.mmx.por
   7585   case Intrinsic::x86_mmx_psad_bw:		// llvm.x86.mmx.psad.bw
   7586   case Intrinsic::x86_mmx_psll_d:		// llvm.x86.mmx.psll.d
   7587   case Intrinsic::x86_mmx_psll_q:		// llvm.x86.mmx.psll.q
   7588   case Intrinsic::x86_mmx_psll_w:		// llvm.x86.mmx.psll.w
   7589   case Intrinsic::x86_mmx_psra_d:		// llvm.x86.mmx.psra.d
   7590   case Intrinsic::x86_mmx_psra_w:		// llvm.x86.mmx.psra.w
   7591   case Intrinsic::x86_mmx_psrl_d:		// llvm.x86.mmx.psrl.d
   7592   case Intrinsic::x86_mmx_psrl_q:		// llvm.x86.mmx.psrl.q
   7593   case Intrinsic::x86_mmx_psrl_w:		// llvm.x86.mmx.psrl.w
   7594   case Intrinsic::x86_mmx_psub_b:		// llvm.x86.mmx.psub.b
   7595   case Intrinsic::x86_mmx_psub_d:		// llvm.x86.mmx.psub.d
   7596   case Intrinsic::x86_mmx_psub_q:		// llvm.x86.mmx.psub.q
   7597   case Intrinsic::x86_mmx_psub_w:		// llvm.x86.mmx.psub.w
   7598   case Intrinsic::x86_mmx_psubs_b:		// llvm.x86.mmx.psubs.b
   7599   case Intrinsic::x86_mmx_psubs_w:		// llvm.x86.mmx.psubs.w
   7600   case Intrinsic::x86_mmx_psubus_b:		// llvm.x86.mmx.psubus.b
   7601   case Intrinsic::x86_mmx_psubus_w:		// llvm.x86.mmx.psubus.w
   7602   case Intrinsic::x86_mmx_punpckhbw:		// llvm.x86.mmx.punpckhbw
   7603   case Intrinsic::x86_mmx_punpckhdq:		// llvm.x86.mmx.punpckhdq
   7604   case Intrinsic::x86_mmx_punpckhwd:		// llvm.x86.mmx.punpckhwd
   7605   case Intrinsic::x86_mmx_punpcklbw:		// llvm.x86.mmx.punpcklbw
   7606   case Intrinsic::x86_mmx_punpckldq:		// llvm.x86.mmx.punpckldq
   7607   case Intrinsic::x86_mmx_punpcklwd:		// llvm.x86.mmx.punpcklwd
   7608   case Intrinsic::x86_mmx_pxor:		// llvm.x86.mmx.pxor
   7609   case Intrinsic::x86_ssse3_phadd_d:		// llvm.x86.ssse3.phadd.d
   7610   case Intrinsic::x86_ssse3_phadd_sw:		// llvm.x86.ssse3.phadd.sw
   7611   case Intrinsic::x86_ssse3_phadd_w:		// llvm.x86.ssse3.phadd.w
   7612   case Intrinsic::x86_ssse3_phsub_d:		// llvm.x86.ssse3.phsub.d
   7613   case Intrinsic::x86_ssse3_phsub_sw:		// llvm.x86.ssse3.phsub.sw
   7614   case Intrinsic::x86_ssse3_phsub_w:		// llvm.x86.ssse3.phsub.w
   7615   case Intrinsic::x86_ssse3_pmadd_ub_sw:		// llvm.x86.ssse3.pmadd.ub.sw
   7616   case Intrinsic::x86_ssse3_pmul_hr_sw:		// llvm.x86.ssse3.pmul.hr.sw
   7617   case Intrinsic::x86_ssse3_pshuf_b:		// llvm.x86.ssse3.pshuf.b
   7618   case Intrinsic::x86_ssse3_psign_b:		// llvm.x86.ssse3.psign.b
   7619   case Intrinsic::x86_ssse3_psign_d:		// llvm.x86.ssse3.psign.d
   7620   case Intrinsic::x86_ssse3_psign_w:		// llvm.x86.ssse3.psign.w
   7621     ResultTy = Type::getX86_MMXTy(Context);
   7622     ArgTys.push_back(Type::getX86_MMXTy(Context));
   7623     ArgTys.push_back(Type::getX86_MMXTy(Context));
   7624     break;
   7625   case Intrinsic::x86_mmx_palignr_b:		// llvm.x86.mmx.palignr.b
   7626     ResultTy = Type::getX86_MMXTy(Context);
   7627     ArgTys.push_back(Type::getX86_MMXTy(Context));
   7628     ArgTys.push_back(Type::getX86_MMXTy(Context));
   7629     ArgTys.push_back(IntegerType::get(Context, 8));
   7630     break;
   7631   }
   7632 #endif
   7633 
   7634 // Add parameter attributes that are not common to all intrinsics.
   7635 #ifdef GET_INTRINSIC_ATTRIBUTES
   7636 AttrListPtr Intrinsic::getAttributes(ID id) {
   7637   AttributeWithIndex AWI[3];
   7638   unsigned NumAttrs = 0;
   7639   switch (id) {
   7640     default: break;
   7641   case Intrinsic::bswap:
   7642   case Intrinsic::convert_from_fp16:
   7643   case Intrinsic::convert_to_fp16:
   7644   case Intrinsic::ctlz:
   7645   case Intrinsic::ctpop:
   7646   case Intrinsic::cttz:
   7647   case Intrinsic::dbg_declare:
   7648   case Intrinsic::dbg_value:
   7649   case Intrinsic::eh_sjlj_callsite:
   7650   case Intrinsic::eh_sjlj_lsda:
   7651   case Intrinsic::eh_typeid_for:
   7652   case Intrinsic::expect:
   7653   case Intrinsic::fma:
   7654   case Intrinsic::frameaddress:
   7655   case Intrinsic::objectsize:
   7656   case Intrinsic::returnaddress:
   7657   case Intrinsic::sadd_with_overflow:
   7658   case Intrinsic::smul_with_overflow:
   7659   case Intrinsic::ssub_with_overflow:
   7660   case Intrinsic::uadd_with_overflow:
   7661   case Intrinsic::umul_with_overflow:
   7662   case Intrinsic::usub_with_overflow:
   7663   case Intrinsic::x86_3dnow_pavgusb:
   7664   case Intrinsic::x86_3dnow_pf2id:
   7665   case Intrinsic::x86_3dnow_pfacc:
   7666   case Intrinsic::x86_3dnow_pfadd:
   7667   case Intrinsic::x86_3dnow_pfcmpeq:
   7668   case Intrinsic::x86_3dnow_pfcmpge:
   7669   case Intrinsic::x86_3dnow_pfcmpgt:
   7670   case Intrinsic::x86_3dnow_pfmax:
   7671   case Intrinsic::x86_3dnow_pfmin:
   7672   case Intrinsic::x86_3dnow_pfmul:
   7673   case Intrinsic::x86_3dnow_pfrcp:
   7674   case Intrinsic::x86_3dnow_pfrcpit1:
   7675   case Intrinsic::x86_3dnow_pfrcpit2:
   7676   case Intrinsic::x86_3dnow_pfrsqit1:
   7677   case Intrinsic::x86_3dnow_pfrsqrt:
   7678   case Intrinsic::x86_3dnow_pfsub:
   7679   case Intrinsic::x86_3dnow_pfsubr:
   7680   case Intrinsic::x86_3dnow_pi2fd:
   7681   case Intrinsic::x86_3dnow_pmulhrw:
   7682   case Intrinsic::x86_3dnowa_pf2iw:
   7683   case Intrinsic::x86_3dnowa_pfnacc:
   7684   case Intrinsic::x86_3dnowa_pfpnacc:
   7685   case Intrinsic::x86_3dnowa_pi2fw:
   7686   case Intrinsic::x86_3dnowa_pswapd:
   7687   case Intrinsic::x86_aesni_aesdec:
   7688   case Intrinsic::x86_aesni_aesdeclast:
   7689   case Intrinsic::x86_aesni_aesenc:
   7690   case Intrinsic::x86_aesni_aesenclast:
   7691   case Intrinsic::x86_aesni_aesimc:
   7692   case Intrinsic::x86_aesni_aeskeygenassist:
   7693   case Intrinsic::x86_avx_addsub_pd_256:
   7694   case Intrinsic::x86_avx_addsub_ps_256:
   7695   case Intrinsic::x86_avx_blend_pd_256:
   7696   case Intrinsic::x86_avx_blend_ps_256:
   7697   case Intrinsic::x86_avx_blendv_pd_256:
   7698   case Intrinsic::x86_avx_blendv_ps_256:
   7699   case Intrinsic::x86_avx_cmp_pd_256:
   7700   case Intrinsic::x86_avx_cmp_ps_256:
   7701   case Intrinsic::x86_avx_cvt_pd2_ps_256:
   7702   case Intrinsic::x86_avx_cvt_pd2dq_256:
   7703   case Intrinsic::x86_avx_cvt_ps2_pd_256:
   7704   case Intrinsic::x86_avx_cvt_ps2dq_256:
   7705   case Intrinsic::x86_avx_cvtdq2_pd_256:
   7706   case Intrinsic::x86_avx_cvtdq2_ps_256:
   7707   case Intrinsic::x86_avx_cvtt_pd2dq_256:
   7708   case Intrinsic::x86_avx_cvtt_ps2dq_256:
   7709   case Intrinsic::x86_avx_dp_ps_256:
   7710   case Intrinsic::x86_avx_hadd_pd_256:
   7711   case Intrinsic::x86_avx_hadd_ps_256:
   7712   case Intrinsic::x86_avx_hsub_pd_256:
   7713   case Intrinsic::x86_avx_hsub_ps_256:
   7714   case Intrinsic::x86_avx_max_pd_256:
   7715   case Intrinsic::x86_avx_max_ps_256:
   7716   case Intrinsic::x86_avx_min_pd_256:
   7717   case Intrinsic::x86_avx_min_ps_256:
   7718   case Intrinsic::x86_avx_movmsk_pd_256:
   7719   case Intrinsic::x86_avx_movmsk_ps_256:
   7720   case Intrinsic::x86_avx_ptestc_256:
   7721   case Intrinsic::x86_avx_ptestnzc_256:
   7722   case Intrinsic::x86_avx_ptestz_256:
   7723   case Intrinsic::x86_avx_rcp_ps_256:
   7724   case Intrinsic::x86_avx_round_pd_256:
   7725   case Intrinsic::x86_avx_round_ps_256:
   7726   case Intrinsic::x86_avx_rsqrt_ps_256:
   7727   case Intrinsic::x86_avx_sqrt_pd_256:
   7728   case Intrinsic::x86_avx_sqrt_ps_256:
   7729   case Intrinsic::x86_avx_vextractf128_pd_256:
   7730   case Intrinsic::x86_avx_vextractf128_ps_256:
   7731   case Intrinsic::x86_avx_vextractf128_si_256:
   7732   case Intrinsic::x86_avx_vinsertf128_pd_256:
   7733   case Intrinsic::x86_avx_vinsertf128_ps_256:
   7734   case Intrinsic::x86_avx_vinsertf128_si_256:
   7735   case Intrinsic::x86_avx_vperm2f128_pd_256:
   7736   case Intrinsic::x86_avx_vperm2f128_ps_256:
   7737   case Intrinsic::x86_avx_vperm2f128_si_256:
   7738   case Intrinsic::x86_avx_vpermil_pd:
   7739   case Intrinsic::x86_avx_vpermil_pd_256:
   7740   case Intrinsic::x86_avx_vpermil_ps:
   7741   case Intrinsic::x86_avx_vpermil_ps_256:
   7742   case Intrinsic::x86_avx_vpermilvar_pd:
   7743   case Intrinsic::x86_avx_vpermilvar_pd_256:
   7744   case Intrinsic::x86_avx_vpermilvar_ps:
   7745   case Intrinsic::x86_avx_vpermilvar_ps_256:
   7746   case Intrinsic::x86_avx_vtestc_pd:
   7747   case Intrinsic::x86_avx_vtestc_pd_256:
   7748   case Intrinsic::x86_avx_vtestc_ps:
   7749   case Intrinsic::x86_avx_vtestc_ps_256:
   7750   case Intrinsic::x86_avx_vtestnzc_pd:
   7751   case Intrinsic::x86_avx_vtestnzc_pd_256:
   7752   case Intrinsic::x86_avx_vtestnzc_ps:
   7753   case Intrinsic::x86_avx_vtestnzc_ps_256:
   7754   case Intrinsic::x86_avx_vtestz_pd:
   7755   case Intrinsic::x86_avx_vtestz_pd_256:
   7756   case Intrinsic::x86_avx_vtestz_ps:
   7757   case Intrinsic::x86_avx_vtestz_ps_256:
   7758   case Intrinsic::x86_mmx_packssdw:
   7759   case Intrinsic::x86_mmx_packsswb:
   7760   case Intrinsic::x86_mmx_packuswb:
   7761   case Intrinsic::x86_mmx_padd_b:
   7762   case Intrinsic::x86_mmx_padd_d:
   7763   case Intrinsic::x86_mmx_padd_q:
   7764   case Intrinsic::x86_mmx_padd_w:
   7765   case Intrinsic::x86_mmx_padds_b:
   7766   case Intrinsic::x86_mmx_padds_w:
   7767   case Intrinsic::x86_mmx_paddus_b:
   7768   case Intrinsic::x86_mmx_paddus_w:
   7769   case Intrinsic::x86_mmx_palignr_b:
   7770   case Intrinsic::x86_mmx_pand:
   7771   case Intrinsic::x86_mmx_pandn:
   7772   case Intrinsic::x86_mmx_pavg_b:
   7773   case Intrinsic::x86_mmx_pavg_w:
   7774   case Intrinsic::x86_mmx_pcmpeq_b:
   7775   case Intrinsic::x86_mmx_pcmpeq_d:
   7776   case Intrinsic::x86_mmx_pcmpeq_w:
   7777   case Intrinsic::x86_mmx_pcmpgt_b:
   7778   case Intrinsic::x86_mmx_pcmpgt_d:
   7779   case Intrinsic::x86_mmx_pcmpgt_w:
   7780   case Intrinsic::x86_mmx_pextr_w:
   7781   case Intrinsic::x86_mmx_pinsr_w:
   7782   case Intrinsic::x86_mmx_pmadd_wd:
   7783   case Intrinsic::x86_mmx_pmaxs_w:
   7784   case Intrinsic::x86_mmx_pmaxu_b:
   7785   case Intrinsic::x86_mmx_pmins_w:
   7786   case Intrinsic::x86_mmx_pminu_b:
   7787   case Intrinsic::x86_mmx_pmovmskb:
   7788   case Intrinsic::x86_mmx_pmulh_w:
   7789   case Intrinsic::x86_mmx_pmulhu_w:
   7790   case Intrinsic::x86_mmx_pmull_w:
   7791   case Intrinsic::x86_mmx_pmulu_dq:
   7792   case Intrinsic::x86_mmx_por:
   7793   case Intrinsic::x86_mmx_psad_bw:
   7794   case Intrinsic::x86_mmx_psll_d:
   7795   case Intrinsic::x86_mmx_psll_q:
   7796   case Intrinsic::x86_mmx_psll_w:
   7797   case Intrinsic::x86_mmx_pslli_d:
   7798   case Intrinsic::x86_mmx_pslli_q:
   7799   case Intrinsic::x86_mmx_pslli_w:
   7800   case Intrinsic::x86_mmx_psra_d:
   7801   case Intrinsic::x86_mmx_psra_w:
   7802   case Intrinsic::x86_mmx_psrai_d:
   7803   case Intrinsic::x86_mmx_psrai_w:
   7804   case Intrinsic::x86_mmx_psrl_d:
   7805   case Intrinsic::x86_mmx_psrl_q:
   7806   case Intrinsic::x86_mmx_psrl_w:
   7807   case Intrinsic::x86_mmx_psrli_d:
   7808   case Intrinsic::x86_mmx_psrli_q:
   7809   case Intrinsic::x86_mmx_psrli_w:
   7810   case Intrinsic::x86_mmx_psub_b:
   7811   case Intrinsic::x86_mmx_psub_d:
   7812   case Intrinsic::x86_mmx_psub_q:
   7813   case Intrinsic::x86_mmx_psub_w:
   7814   case Intrinsic::x86_mmx_psubs_b:
   7815   case Intrinsic::x86_mmx_psubs_w:
   7816   case Intrinsic::x86_mmx_psubus_b:
   7817   case Intrinsic::x86_mmx_psubus_w:
   7818   case Intrinsic::x86_mmx_punpckhbw:
   7819   case Intrinsic::x86_mmx_punpckhdq:
   7820   case Intrinsic::x86_mmx_punpckhwd:
   7821   case Intrinsic::x86_mmx_punpcklbw:
   7822   case Intrinsic::x86_mmx_punpckldq:
   7823   case Intrinsic::x86_mmx_punpcklwd:
   7824   case Intrinsic::x86_mmx_pxor:
   7825   case Intrinsic::x86_sse2_add_sd:
   7826   case Intrinsic::x86_sse2_cmp_pd:
   7827   case Intrinsic::x86_sse2_cmp_sd:
   7828   case Intrinsic::x86_sse2_comieq_sd:
   7829   case Intrinsic::x86_sse2_comige_sd:
   7830   case Intrinsic::x86_sse2_comigt_sd:
   7831   case Intrinsic::x86_sse2_comile_sd:
   7832   case Intrinsic::x86_sse2_comilt_sd:
   7833   case Intrinsic::x86_sse2_comineq_sd:
   7834   case Intrinsic::x86_sse2_cvtdq2pd:
   7835   case Intrinsic::x86_sse2_cvtdq2ps:
   7836   case Intrinsic::x86_sse2_cvtpd2dq:
   7837   case Intrinsic::x86_sse2_cvtpd2ps:
   7838   case Intrinsic::x86_sse2_cvtps2dq:
   7839   case Intrinsic::x86_sse2_cvtps2pd:
   7840   case Intrinsic::x86_sse2_cvtsd2si:
   7841   case Intrinsic::x86_sse2_cvtsd2si64:
   7842   case Intrinsic::x86_sse2_cvtsd2ss:
   7843   case Intrinsic::x86_sse2_cvtsi2sd:
   7844   case Intrinsic::x86_sse2_cvtsi642sd:
   7845   case Intrinsic::x86_sse2_cvtss2sd:
   7846   case Intrinsic::x86_sse2_cvttpd2dq:
   7847   case Intrinsic::x86_sse2_cvttps2dq:
   7848   case Intrinsic::x86_sse2_cvttsd2si:
   7849   case Intrinsic::x86_sse2_cvttsd2si64:
   7850   case Intrinsic::x86_sse2_div_sd:
   7851   case Intrinsic::x86_sse2_max_pd:
   7852   case Intrinsic::x86_sse2_max_sd:
   7853   case Intrinsic::x86_sse2_min_pd:
   7854   case Intrinsic::x86_sse2_min_sd:
   7855   case Intrinsic::x86_sse2_movmsk_pd:
   7856   case Intrinsic::x86_sse2_mul_sd:
   7857   case Intrinsic::x86_sse2_packssdw_128:
   7858   case Intrinsic::x86_sse2_packsswb_128:
   7859   case Intrinsic::x86_sse2_packuswb_128:
   7860   case Intrinsic::x86_sse2_padds_b:
   7861   case Intrinsic::x86_sse2_padds_w:
   7862   case Intrinsic::x86_sse2_paddus_b:
   7863   case Intrinsic::x86_sse2_paddus_w:
   7864   case Intrinsic::x86_sse2_pavg_b:
   7865   case Intrinsic::x86_sse2_pavg_w:
   7866   case Intrinsic::x86_sse2_pcmpeq_b:
   7867   case Intrinsic::x86_sse2_pcmpeq_d:
   7868   case Intrinsic::x86_sse2_pcmpeq_w:
   7869   case Intrinsic::x86_sse2_pcmpgt_b:
   7870   case Intrinsic::x86_sse2_pcmpgt_d:
   7871   case Intrinsic::x86_sse2_pcmpgt_w:
   7872   case Intrinsic::x86_sse2_pmadd_wd:
   7873   case Intrinsic::x86_sse2_pmaxs_w:
   7874   case Intrinsic::x86_sse2_pmaxu_b:
   7875   case Intrinsic::x86_sse2_pmins_w:
   7876   case Intrinsic::x86_sse2_pminu_b:
   7877   case Intrinsic::x86_sse2_pmovmskb_128:
   7878   case Intrinsic::x86_sse2_pmulh_w:
   7879   case Intrinsic::x86_sse2_pmulhu_w:
   7880   case Intrinsic::x86_sse2_pmulu_dq:
   7881   case Intrinsic::x86_sse2_psad_bw:
   7882   case Intrinsic::x86_sse2_psll_d:
   7883   case Intrinsic::x86_sse2_psll_dq:
   7884   case Intrinsic::x86_sse2_psll_dq_bs:
   7885   case Intrinsic::x86_sse2_psll_q:
   7886   case Intrinsic::x86_sse2_psll_w:
   7887   case Intrinsic::x86_sse2_pslli_d:
   7888   case Intrinsic::x86_sse2_pslli_q:
   7889   case Intrinsic::x86_sse2_pslli_w:
   7890   case Intrinsic::x86_sse2_psra_d:
   7891   case Intrinsic::x86_sse2_psra_w:
   7892   case Intrinsic::x86_sse2_psrai_d:
   7893   case Intrinsic::x86_sse2_psrai_w:
   7894   case Intrinsic::x86_sse2_psrl_d:
   7895   case Intrinsic::x86_sse2_psrl_dq:
   7896   case Intrinsic::x86_sse2_psrl_dq_bs:
   7897   case Intrinsic::x86_sse2_psrl_q:
   7898   case Intrinsic::x86_sse2_psrl_w:
   7899   case Intrinsic::x86_sse2_psrli_d:
   7900   case Intrinsic::x86_sse2_psrli_q:
   7901   case Intrinsic::x86_sse2_psrli_w:
   7902   case Intrinsic::x86_sse2_psubs_b:
   7903   case Intrinsic::x86_sse2_psubs_w:
   7904   case Intrinsic::x86_sse2_psubus_b:
   7905   case Intrinsic::x86_sse2_psubus_w:
   7906   case Intrinsic::x86_sse2_sqrt_pd:
   7907   case Intrinsic::x86_sse2_sqrt_sd:
   7908   case Intrinsic::x86_sse2_sub_sd:
   7909   case Intrinsic::x86_sse2_ucomieq_sd:
   7910   case Intrinsic::x86_sse2_ucomige_sd:
   7911   case Intrinsic::x86_sse2_ucomigt_sd:
   7912   case Intrinsic::x86_sse2_ucomile_sd:
   7913   case Intrinsic::x86_sse2_ucomilt_sd:
   7914   case Intrinsic::x86_sse2_ucomineq_sd:
   7915   case Intrinsic::x86_sse3_addsub_pd:
   7916   case Intrinsic::x86_sse3_addsub_ps:
   7917   case Intrinsic::x86_sse3_hadd_pd:
   7918   case Intrinsic::x86_sse3_hadd_ps:
   7919   case Intrinsic::x86_sse3_hsub_pd:
   7920   case Intrinsic::x86_sse3_hsub_ps:
   7921   case Intrinsic::x86_sse41_blendpd:
   7922   case Intrinsic::x86_sse41_blendps:
   7923   case Intrinsic::x86_sse41_blendvpd:
   7924   case Intrinsic::x86_sse41_blendvps:
   7925   case Intrinsic::x86_sse41_dppd:
   7926   case Intrinsic::x86_sse41_dpps:
   7927   case Intrinsic::x86_sse41_extractps:
   7928   case Intrinsic::x86_sse41_insertps:
   7929   case Intrinsic::x86_sse41_mpsadbw:
   7930   case Intrinsic::x86_sse41_packusdw:
   7931   case Intrinsic::x86_sse41_pblendvb:
   7932   case Intrinsic::x86_sse41_pblendw:
   7933   case Intrinsic::x86_sse41_pcmpeqq:
   7934   case Intrinsic::x86_sse41_pextrb:
   7935   case Intrinsic::x86_sse41_pextrd:
   7936   case Intrinsic::x86_sse41_pextrq:
   7937   case Intrinsic::x86_sse41_phminposuw:
   7938   case Intrinsic::x86_sse41_pmaxsb:
   7939   case Intrinsic::x86_sse41_pmaxsd:
   7940   case Intrinsic::x86_sse41_pmaxud:
   7941   case Intrinsic::x86_sse41_pmaxuw:
   7942   case Intrinsic::x86_sse41_pminsb:
   7943   case Intrinsic::x86_sse41_pminsd:
   7944   case Intrinsic::x86_sse41_pminud:
   7945   case Intrinsic::x86_sse41_pminuw:
   7946   case Intrinsic::x86_sse41_pmovsxbd:
   7947   case Intrinsic::x86_sse41_pmovsxbq:
   7948   case Intrinsic::x86_sse41_pmovsxbw:
   7949   case Intrinsic::x86_sse41_pmovsxdq:
   7950   case Intrinsic::x86_sse41_pmovsxwd:
   7951   case Intrinsic::x86_sse41_pmovsxwq:
   7952   case Intrinsic::x86_sse41_pmovzxbd:
   7953   case Intrinsic::x86_sse41_pmovzxbq:
   7954   case Intrinsic::x86_sse41_pmovzxbw:
   7955   case Intrinsic::x86_sse41_pmovzxdq:
   7956   case Intrinsic::x86_sse41_pmovzxwd:
   7957   case Intrinsic::x86_sse41_pmovzxwq:
   7958   case Intrinsic::x86_sse41_pmuldq:
   7959   case Intrinsic::x86_sse41_ptestc:
   7960   case Intrinsic::x86_sse41_ptestnzc:
   7961   case Intrinsic::x86_sse41_ptestz:
   7962   case Intrinsic::x86_sse41_round_pd:
   7963   case Intrinsic::x86_sse41_round_ps:
   7964   case Intrinsic::x86_sse41_round_sd:
   7965   case Intrinsic::x86_sse41_round_ss:
   7966   case Intrinsic::x86_sse42_crc32_32_16:
   7967   case Intrinsic::x86_sse42_crc32_32_32:
   7968   case Intrinsic::x86_sse42_crc32_32_8:
   7969   case Intrinsic::x86_sse42_crc32_64_64:
   7970   case Intrinsic::x86_sse42_crc32_64_8:
   7971   case Intrinsic::x86_sse42_pcmpestri128:
   7972   case Intrinsic::x86_sse42_pcmpestria128:
   7973   case Intrinsic::x86_sse42_pcmpestric128:
   7974   case Intrinsic::x86_sse42_pcmpestrio128:
   7975   case Intrinsic::x86_sse42_pcmpestris128:
   7976   case Intrinsic::x86_sse42_pcmpestriz128:
   7977   case Intrinsic::x86_sse42_pcmpestrm128:
   7978   case Intrinsic::x86_sse42_pcmpgtq:
   7979   case Intrinsic::x86_sse42_pcmpistri128:
   7980   case Intrinsic::x86_sse42_pcmpistria128:
   7981   case Intrinsic::x86_sse42_pcmpistric128:
   7982   case Intrinsic::x86_sse42_pcmpistrio128:
   7983   case Intrinsic::x86_sse42_pcmpistris128:
   7984   case Intrinsic::x86_sse42_pcmpistriz128:
   7985   case Intrinsic::x86_sse42_pcmpistrm128:
   7986   case Intrinsic::x86_sse_add_ss:
   7987   case Intrinsic::x86_sse_cmp_ps:
   7988   case Intrinsic::x86_sse_cmp_ss:
   7989   case Intrinsic::x86_sse_comieq_ss:
   7990   case Intrinsic::x86_sse_comige_ss:
   7991   case Intrinsic::x86_sse_comigt_ss:
   7992   case Intrinsic::x86_sse_comile_ss:
   7993   case Intrinsic::x86_sse_comilt_ss:
   7994   case Intrinsic::x86_sse_comineq_ss:
   7995   case Intrinsic::x86_sse_cvtpd2pi:
   7996   case Intrinsic::x86_sse_cvtpi2pd:
   7997   case Intrinsic::x86_sse_cvtpi2ps:
   7998   case Intrinsic::x86_sse_cvtps2pi:
   7999   case Intrinsic::x86_sse_cvtsi2ss:
   8000   case Intrinsic::x86_sse_cvtsi642ss:
   8001   case Intrinsic::x86_sse_cvtss2si:
   8002   case Intrinsic::x86_sse_cvtss2si64:
   8003   case Intrinsic::x86_sse_cvttpd2pi:
   8004   case Intrinsic::x86_sse_cvttps2pi:
   8005   case Intrinsic::x86_sse_cvttss2si:
   8006   case Intrinsic::x86_sse_cvttss2si64:
   8007   case Intrinsic::x86_sse_div_ss:
   8008   case Intrinsic::x86_sse_max_ps:
   8009   case Intrinsic::x86_sse_max_ss:
   8010   case Intrinsic::x86_sse_min_ps:
   8011   case Intrinsic::x86_sse_min_ss:
   8012   case Intrinsic::x86_sse_movmsk_ps:
   8013   case Intrinsic::x86_sse_mul_ss:
   8014   case Intrinsic::x86_sse_pshuf_w:
   8015   case Intrinsic::x86_sse_rcp_ps:
   8016   case Intrinsic::x86_sse_rcp_ss:
   8017   case Intrinsic::x86_sse_rsqrt_ps:
   8018   case Intrinsic::x86_sse_rsqrt_ss:
   8019   case Intrinsic::x86_sse_sqrt_ps:
   8020   case Intrinsic::x86_sse_sqrt_ss:
   8021   case Intrinsic::x86_sse_sub_ss:
   8022   case Intrinsic::x86_sse_ucomieq_ss:
   8023   case Intrinsic::x86_sse_ucomige_ss:
   8024   case Intrinsic::x86_sse_ucomigt_ss:
   8025   case Intrinsic::x86_sse_ucomile_ss:
   8026   case Intrinsic::x86_sse_ucomilt_ss:
   8027   case Intrinsic::x86_sse_ucomineq_ss:
   8028   case Intrinsic::x86_ssse3_pabs_b:
   8029   case Intrinsic::x86_ssse3_pabs_b_128:
   8030   case Intrinsic::x86_ssse3_pabs_d:
   8031   case Intrinsic::x86_ssse3_pabs_d_128:
   8032   case Intrinsic::x86_ssse3_pabs_w:
   8033   case Intrinsic::x86_ssse3_pabs_w_128:
   8034   case Intrinsic::x86_ssse3_phadd_d:
   8035   case Intrinsic::x86_ssse3_phadd_d_128:
   8036   case Intrinsic::x86_ssse3_phadd_sw:
   8037   case Intrinsic::x86_ssse3_phadd_sw_128:
   8038   case Intrinsic::x86_ssse3_phadd_w:
   8039   case Intrinsic::x86_ssse3_phadd_w_128:
   8040   case Intrinsic::x86_ssse3_phsub_d:
   8041   case Intrinsic::x86_ssse3_phsub_d_128:
   8042   case Intrinsic::x86_ssse3_phsub_sw:
   8043   case Intrinsic::x86_ssse3_phsub_sw_128:
   8044   case Intrinsic::x86_ssse3_phsub_w:
   8045   case Intrinsic::x86_ssse3_phsub_w_128:
   8046   case Intrinsic::x86_ssse3_pmadd_ub_sw:
   8047   case Intrinsic::x86_ssse3_pmadd_ub_sw_128:
   8048   case Intrinsic::x86_ssse3_pmul_hr_sw:
   8049   case Intrinsic::x86_ssse3_pmul_hr_sw_128:
   8050   case Intrinsic::x86_ssse3_pshuf_b:
   8051   case Intrinsic::x86_ssse3_pshuf_b_128:
   8052   case Intrinsic::x86_ssse3_psign_b:
   8053   case Intrinsic::x86_ssse3_psign_b_128:
   8054   case Intrinsic::x86_ssse3_psign_d:
   8055   case Intrinsic::x86_ssse3_psign_d_128:
   8056   case Intrinsic::x86_ssse3_psign_w:
   8057   case Intrinsic::x86_ssse3_psign_w_128:
   8058     AWI[0] = AttributeWithIndex::get(~0, Attribute::NoUnwind|Attribute::ReadNone);
   8059     NumAttrs = 1;
   8060     break;
   8061   case Intrinsic::adjust_trampoline:
   8062   case Intrinsic::cos:
   8063   case Intrinsic::eh_exception:
   8064   case Intrinsic::exp:
   8065   case Intrinsic::exp2:
   8066   case Intrinsic::gcread:
   8067   case Intrinsic::log:
   8068   case Intrinsic::log10:
   8069   case Intrinsic::log2:
   8070   case Intrinsic::pow:
   8071   case Intrinsic::powi:
   8072   case Intrinsic::sin:
   8073   case Intrinsic::sqrt:
   8074   case Intrinsic::x86_avx_ldu_dq_256:
   8075   case Intrinsic::x86_avx_loadu_dq_256:
   8076   case Intrinsic::x86_avx_loadu_pd_256:
   8077   case Intrinsic::x86_avx_loadu_ps_256:
   8078   case Intrinsic::x86_avx_maskload_pd:
   8079   case Intrinsic::x86_avx_maskload_pd_256:
   8080   case Intrinsic::x86_avx_maskload_ps:
   8081   case Intrinsic::x86_avx_maskload_ps_256:
   8082   case Intrinsic::x86_avx_vbroadcast_sd_256:
   8083   case Intrinsic::x86_avx_vbroadcastf128_pd_256:
   8084   case Intrinsic::x86_avx_vbroadcastf128_ps_256:
   8085   case Intrinsic::x86_avx_vbroadcastss:
   8086   case Intrinsic::x86_avx_vbroadcastss_256:
   8087   case Intrinsic::x86_sse3_ldu_dq:
   8088   case Intrinsic::x86_sse41_movntdqa:
   8089     AWI[0] = AttributeWithIndex::get(~0, Attribute::NoUnwind|Attribute::ReadOnly);
   8090     NumAttrs = 1;
   8091     break;
   8092   case Intrinsic::annotation:
   8093   case Intrinsic::convertff:
   8094   case Intrinsic::convertfsi:
   8095   case Intrinsic::convertfui:
   8096   case Intrinsic::convertsif:
   8097   case Intrinsic::convertss:
   8098   case Intrinsic::convertsu:
   8099   case Intrinsic::convertuif:
   8100   case Intrinsic::convertus:
   8101   case Intrinsic::convertuu:
   8102   case Intrinsic::eh_dwarf_cfa:
   8103   case Intrinsic::eh_return_i32:
   8104   case Intrinsic::eh_return_i64:
   8105   case Intrinsic::eh_selector:
   8106   case Intrinsic::eh_sjlj_dispatch_setup:
   8107   case Intrinsic::eh_sjlj_functioncontext:
   8108   case Intrinsic::eh_sjlj_longjmp:
   8109   case Intrinsic::eh_sjlj_setjmp:
   8110   case Intrinsic::eh_unwind_init:
   8111   case Intrinsic::flt_rounds:
   8112   case Intrinsic::gcroot:
   8113   case Intrinsic::longjmp:
   8114   case Intrinsic::pcmarker:
   8115   case Intrinsic::ptr_annotation:
   8116   case Intrinsic::readcyclecounter:
   8117   case Intrinsic::setjmp:
   8118   case Intrinsic::siglongjmp:
   8119   case Intrinsic::sigsetjmp:
   8120   case Intrinsic::stackprotector:
   8121   case Intrinsic::stackrestore:
   8122   case Intrinsic::stacksave:
   8123   case Intrinsic::trap:
   8124   case Intrinsic::vacopy:
   8125   case Intrinsic::vaend:
   8126   case Intrinsic::var_annotation:
   8127   case Intrinsic::vastart:
   8128   case Intrinsic::x86_avx_maskstore_pd:
   8129   case Intrinsic::x86_avx_maskstore_pd_256:
   8130   case Intrinsic::x86_avx_maskstore_ps:
   8131   case Intrinsic::x86_avx_maskstore_ps_256:
   8132   case Intrinsic::x86_avx_movnt_dq_256:
   8133   case Intrinsic::x86_avx_movnt_pd_256:
   8134   case Intrinsic::x86_avx_movnt_ps_256:
   8135   case Intrinsic::x86_avx_storeu_dq_256:
   8136   case Intrinsic::x86_avx_storeu_pd_256:
   8137   case Intrinsic::x86_avx_storeu_ps_256:
   8138   case Intrinsic::x86_avx_vzeroall:
   8139   case Intrinsic::x86_avx_vzeroupper:
   8140   case Intrinsic::x86_int:
   8141   case Intrinsic::x86_mmx_emms:
   8142   case Intrinsic::x86_mmx_femms:
   8143   case Intrinsic::x86_mmx_maskmovq:
   8144   case Intrinsic::x86_mmx_movnt_dq:
   8145   case Intrinsic::x86_sse2_clflush:
   8146   case Intrinsic::x86_sse2_lfence:
   8147   case Intrinsic::x86_sse2_maskmov_dqu:
   8148   case Intrinsic::x86_sse2_mfence:
   8149   case Intrinsic::x86_sse2_storel_dq:
   8150   case Intrinsic::x86_sse2_storeu_dq:
   8151   case Intrinsic::x86_sse2_storeu_pd:
   8152   case Intrinsic::x86_sse3_monitor:
   8153   case Intrinsic::x86_sse3_mwait:
   8154   case Intrinsic::x86_sse_ldmxcsr:
   8155   case Intrinsic::x86_sse_sfence:
   8156   case Intrinsic::x86_sse_stmxcsr:
   8157   case Intrinsic::x86_sse_storeu_ps:
   8158     AWI[0] = AttributeWithIndex::get(~0, Attribute::NoUnwind);
   8159     NumAttrs = 1;
   8160     break;
   8161   case Intrinsic::init_trampoline:
   8162   case Intrinsic::memset:
   8163   case Intrinsic::prefetch:
   8164     AWI[0] = AttributeWithIndex::get(1, Attribute::NoCapture);
   8165     AWI[1] = AttributeWithIndex::get(~0, Attribute::NoUnwind);
   8166     NumAttrs = 2;
   8167     break;
   8168   case Intrinsic::memcpy:
   8169   case Intrinsic::memmove:
   8170     AWI[0] = AttributeWithIndex::get(1, Attribute::NoCapture);
   8171     AWI[1] = AttributeWithIndex::get(2, Attribute::NoCapture);
   8172     AWI[2] = AttributeWithIndex::get(~0, Attribute::NoUnwind);
   8173     NumAttrs = 3;
   8174     break;
   8175   case Intrinsic::invariant_start:
   8176   case Intrinsic::lifetime_end:
   8177   case Intrinsic::lifetime_start:
   8178     AWI[0] = AttributeWithIndex::get(2, Attribute::NoCapture);
   8179     AWI[1] = AttributeWithIndex::get(~0, Attribute::NoUnwind);
   8180     NumAttrs = 2;
   8181     break;
   8182   case Intrinsic::gcwrite:
   8183     AWI[0] = AttributeWithIndex::get(2, Attribute::NoCapture);
   8184     AWI[1] = AttributeWithIndex::get(3, Attribute::NoCapture);
   8185     AWI[2] = AttributeWithIndex::get(~0, Attribute::NoUnwind);
   8186     NumAttrs = 3;
   8187     break;
   8188   case Intrinsic::invariant_end:
   8189     AWI[0] = AttributeWithIndex::get(3, Attribute::NoCapture);
   8190     AWI[1] = AttributeWithIndex::get(~0, Attribute::NoUnwind);
   8191     NumAttrs = 2;
   8192     break;
   8193   case Intrinsic::eh_resume:
   8194     return AttrListPtr();
   8195   }
   8196   return AttrListPtr::get(AWI, NumAttrs);
   8197 }
   8198 #endif // GET_INTRINSIC_ATTRIBUTES
   8199 
   8200 // Determine intrinsic alias analysis mod/ref behavior.
   8201 #ifdef GET_INTRINSIC_MODREF_BEHAVIOR
   8202 switch (iid) {
   8203 default:
   8204     return UnknownModRefBehavior;
   8205 case Intrinsic::adjust_trampoline:
   8206   return OnlyReadsArgumentPointees;
   8207 case Intrinsic::bswap:
   8208   return DoesNotAccessMemory;
   8209 case Intrinsic::convert_from_fp16:
   8210   return DoesNotAccessMemory;
   8211 case Intrinsic::convert_to_fp16:
   8212   return DoesNotAccessMemory;
   8213 case Intrinsic::cos:
   8214   return OnlyReadsMemory;
   8215 case Intrinsic::ctlz:
   8216   return DoesNotAccessMemory;
   8217 case Intrinsic::ctpop:
   8218   return DoesNotAccessMemory;
   8219 case Intrinsic::cttz:
   8220   return DoesNotAccessMemory;
   8221 case Intrinsic::dbg_declare:
   8222   return DoesNotAccessMemory;
   8223 case Intrinsic::dbg_value:
   8224   return DoesNotAccessMemory;
   8225 case Intrinsic::eh_exception:
   8226   return OnlyReadsMemory;
   8227 case Intrinsic::eh_sjlj_callsite:
   8228   return DoesNotAccessMemory;
   8229 case Intrinsic::eh_sjlj_lsda:
   8230   return DoesNotAccessMemory;
   8231 case Intrinsic::eh_typeid_for:
   8232   return DoesNotAccessMemory;
   8233 case Intrinsic::exp:
   8234   return OnlyReadsMemory;
   8235 case Intrinsic::exp2:
   8236   return OnlyReadsMemory;
   8237 case Intrinsic::expect:
   8238   return DoesNotAccessMemory;
   8239 case Intrinsic::fma:
   8240   return DoesNotAccessMemory;
   8241 case Intrinsic::frameaddress:
   8242   return DoesNotAccessMemory;
   8243 case Intrinsic::gcread:
   8244   return OnlyReadsArgumentPointees;
   8245 case Intrinsic::gcwrite:
   8246   return OnlyAccessesArgumentPointees;
   8247 case Intrinsic::init_trampoline:
   8248   return OnlyAccessesArgumentPointees;
   8249 case Intrinsic::invariant_end:
   8250   return OnlyAccessesArgumentPointees;
   8251 case Intrinsic::invariant_start:
   8252   return OnlyAccessesArgumentPointees;
   8253 case Intrinsic::lifetime_end:
   8254   return OnlyAccessesArgumentPointees;
   8255 case Intrinsic::lifetime_start:
   8256   return OnlyAccessesArgumentPointees;
   8257 case Intrinsic::log:
   8258   return OnlyReadsMemory;
   8259 case Intrinsic::log10:
   8260   return OnlyReadsMemory;
   8261 case Intrinsic::log2:
   8262   return OnlyReadsMemory;
   8263 case Intrinsic::memcpy:
   8264   return OnlyAccessesArgumentPointees;
   8265 case Intrinsic::memmove:
   8266   return OnlyAccessesArgumentPointees;
   8267 case Intrinsic::memset:
   8268   return OnlyAccessesArgumentPointees;
   8269 case Intrinsic::objectsize:
   8270   return DoesNotAccessMemory;
   8271 case Intrinsic::pow:
   8272   return OnlyReadsMemory;
   8273 case Intrinsic::powi:
   8274   return OnlyReadsMemory;
   8275 case Intrinsic::prefetch:
   8276   return OnlyAccessesArgumentPointees;
   8277 case Intrinsic::returnaddress:
   8278   return DoesNotAccessMemory;
   8279 case Intrinsic::sadd_with_overflow:
   8280   return DoesNotAccessMemory;
   8281 case Intrinsic::sin:
   8282   return OnlyReadsMemory;
   8283 case Intrinsic::smul_with_overflow:
   8284   return DoesNotAccessMemory;
   8285 case Intrinsic::sqrt:
   8286   return OnlyReadsMemory;
   8287 case Intrinsic::ssub_with_overflow:
   8288   return DoesNotAccessMemory;
   8289 case Intrinsic::uadd_with_overflow:
   8290   return DoesNotAccessMemory;
   8291 case Intrinsic::umul_with_overflow:
   8292   return DoesNotAccessMemory;
   8293 case Intrinsic::usub_with_overflow:
   8294   return DoesNotAccessMemory;
   8295 case Intrinsic::x86_3dnow_pavgusb:
   8296   return DoesNotAccessMemory;
   8297 case Intrinsic::x86_3dnow_pf2id:
   8298   return DoesNotAccessMemory;
   8299 case Intrinsic::x86_3dnow_pfacc:
   8300   return DoesNotAccessMemory;
   8301 case Intrinsic::x86_3dnow_pfadd:
   8302   return DoesNotAccessMemory;
   8303 case Intrinsic::x86_3dnow_pfcmpeq:
   8304   return DoesNotAccessMemory;
   8305 case Intrinsic::x86_3dnow_pfcmpge:
   8306   return DoesNotAccessMemory;
   8307 case Intrinsic::x86_3dnow_pfcmpgt:
   8308   return DoesNotAccessMemory;
   8309 case Intrinsic::x86_3dnow_pfmax:
   8310   return DoesNotAccessMemory;
   8311 case Intrinsic::x86_3dnow_pfmin:
   8312   return DoesNotAccessMemory;
   8313 case Intrinsic::x86_3dnow_pfmul:
   8314   return DoesNotAccessMemory;
   8315 case Intrinsic::x86_3dnow_pfrcp:
   8316   return DoesNotAccessMemory;
   8317 case Intrinsic::x86_3dnow_pfrcpit1:
   8318   return DoesNotAccessMemory;
   8319 case Intrinsic::x86_3dnow_pfrcpit2:
   8320   return DoesNotAccessMemory;
   8321 case Intrinsic::x86_3dnow_pfrsqit1:
   8322   return DoesNotAccessMemory;
   8323 case Intrinsic::x86_3dnow_pfrsqrt:
   8324   return DoesNotAccessMemory;
   8325 case Intrinsic::x86_3dnow_pfsub:
   8326   return DoesNotAccessMemory;
   8327 case Intrinsic::x86_3dnow_pfsubr:
   8328   return DoesNotAccessMemory;
   8329 case Intrinsic::x86_3dnow_pi2fd:
   8330   return DoesNotAccessMemory;
   8331 case Intrinsic::x86_3dnow_pmulhrw:
   8332   return DoesNotAccessMemory;
   8333 case Intrinsic::x86_3dnowa_pf2iw:
   8334   return DoesNotAccessMemory;
   8335 case Intrinsic::x86_3dnowa_pfnacc:
   8336   return DoesNotAccessMemory;
   8337 case Intrinsic::x86_3dnowa_pfpnacc:
   8338   return DoesNotAccessMemory;
   8339 case Intrinsic::x86_3dnowa_pi2fw:
   8340   return DoesNotAccessMemory;
   8341 case Intrinsic::x86_3dnowa_pswapd:
   8342   return DoesNotAccessMemory;
   8343 case Intrinsic::x86_aesni_aesdec:
   8344   return DoesNotAccessMemory;
   8345 case Intrinsic::x86_aesni_aesdeclast:
   8346   return DoesNotAccessMemory;
   8347 case Intrinsic::x86_aesni_aesenc:
   8348   return DoesNotAccessMemory;
   8349 case Intrinsic::x86_aesni_aesenclast:
   8350   return DoesNotAccessMemory;
   8351 case Intrinsic::x86_aesni_aesimc:
   8352   return DoesNotAccessMemory;
   8353 case Intrinsic::x86_aesni_aeskeygenassist:
   8354   return DoesNotAccessMemory;
   8355 case Intrinsic::x86_avx_addsub_pd_256:
   8356   return DoesNotAccessMemory;
   8357 case Intrinsic::x86_avx_addsub_ps_256:
   8358   return DoesNotAccessMemory;
   8359 case Intrinsic::x86_avx_blend_pd_256:
   8360   return DoesNotAccessMemory;
   8361 case Intrinsic::x86_avx_blend_ps_256:
   8362   return DoesNotAccessMemory;
   8363 case Intrinsic::x86_avx_blendv_pd_256:
   8364   return DoesNotAccessMemory;
   8365 case Intrinsic::x86_avx_blendv_ps_256:
   8366   return DoesNotAccessMemory;
   8367 case Intrinsic::x86_avx_cmp_pd_256:
   8368   return DoesNotAccessMemory;
   8369 case Intrinsic::x86_avx_cmp_ps_256:
   8370   return DoesNotAccessMemory;
   8371 case Intrinsic::x86_avx_cvt_pd2_ps_256:
   8372   return DoesNotAccessMemory;
   8373 case Intrinsic::x86_avx_cvt_pd2dq_256:
   8374   return DoesNotAccessMemory;
   8375 case Intrinsic::x86_avx_cvt_ps2_pd_256:
   8376   return DoesNotAccessMemory;
   8377 case Intrinsic::x86_avx_cvt_ps2dq_256:
   8378   return DoesNotAccessMemory;
   8379 case Intrinsic::x86_avx_cvtdq2_pd_256:
   8380   return DoesNotAccessMemory;
   8381 case Intrinsic::x86_avx_cvtdq2_ps_256:
   8382   return DoesNotAccessMemory;
   8383 case Intrinsic::x86_avx_cvtt_pd2dq_256:
   8384   return DoesNotAccessMemory;
   8385 case Intrinsic::x86_avx_cvtt_ps2dq_256:
   8386   return DoesNotAccessMemory;
   8387 case Intrinsic::x86_avx_dp_ps_256:
   8388   return DoesNotAccessMemory;
   8389 case Intrinsic::x86_avx_hadd_pd_256:
   8390   return DoesNotAccessMemory;
   8391 case Intrinsic::x86_avx_hadd_ps_256:
   8392   return DoesNotAccessMemory;
   8393 case Intrinsic::x86_avx_hsub_pd_256:
   8394   return DoesNotAccessMemory;
   8395 case Intrinsic::x86_avx_hsub_ps_256:
   8396   return DoesNotAccessMemory;
   8397 case Intrinsic::x86_avx_ldu_dq_256:
   8398   return OnlyReadsMemory;
   8399 case Intrinsic::x86_avx_loadu_dq_256:
   8400   return OnlyReadsMemory;
   8401 case Intrinsic::x86_avx_loadu_pd_256:
   8402   return OnlyReadsMemory;
   8403 case Intrinsic::x86_avx_loadu_ps_256:
   8404   return OnlyReadsMemory;
   8405 case Intrinsic::x86_avx_maskload_pd:
   8406   return OnlyReadsMemory;
   8407 case Intrinsic::x86_avx_maskload_pd_256:
   8408   return OnlyReadsMemory;
   8409 case Intrinsic::x86_avx_maskload_ps:
   8410   return OnlyReadsMemory;
   8411 case Intrinsic::x86_avx_maskload_ps_256:
   8412   return OnlyReadsMemory;
   8413 case Intrinsic::x86_avx_max_pd_256:
   8414   return DoesNotAccessMemory;
   8415 case Intrinsic::x86_avx_max_ps_256:
   8416   return DoesNotAccessMemory;
   8417 case Intrinsic::x86_avx_min_pd_256:
   8418   return DoesNotAccessMemory;
   8419 case Intrinsic::x86_avx_min_ps_256:
   8420   return DoesNotAccessMemory;
   8421 case Intrinsic::x86_avx_movmsk_pd_256:
   8422   return DoesNotAccessMemory;
   8423 case Intrinsic::x86_avx_movmsk_ps_256:
   8424   return DoesNotAccessMemory;
   8425 case Intrinsic::x86_avx_ptestc_256:
   8426   return DoesNotAccessMemory;
   8427 case Intrinsic::x86_avx_ptestnzc_256:
   8428   return DoesNotAccessMemory;
   8429 case Intrinsic::x86_avx_ptestz_256:
   8430   return DoesNotAccessMemory;
   8431 case Intrinsic::x86_avx_rcp_ps_256:
   8432   return DoesNotAccessMemory;
   8433 case Intrinsic::x86_avx_round_pd_256:
   8434   return DoesNotAccessMemory;
   8435 case Intrinsic::x86_avx_round_ps_256:
   8436   return DoesNotAccessMemory;
   8437 case Intrinsic::x86_avx_rsqrt_ps_256:
   8438   return DoesNotAccessMemory;
   8439 case Intrinsic::x86_avx_sqrt_pd_256:
   8440   return DoesNotAccessMemory;
   8441 case Intrinsic::x86_avx_sqrt_ps_256:
   8442   return DoesNotAccessMemory;
   8443 case Intrinsic::x86_avx_vbroadcast_sd_256:
   8444   return OnlyReadsMemory;
   8445 case Intrinsic::x86_avx_vbroadcastf128_pd_256:
   8446   return OnlyReadsMemory;
   8447 case Intrinsic::x86_avx_vbroadcastf128_ps_256:
   8448   return OnlyReadsMemory;
   8449 case Intrinsic::x86_avx_vbroadcastss:
   8450   return OnlyReadsMemory;
   8451 case Intrinsic::x86_avx_vbroadcastss_256:
   8452   return OnlyReadsMemory;
   8453 case Intrinsic::x86_avx_vextractf128_pd_256:
   8454   return DoesNotAccessMemory;
   8455 case Intrinsic::x86_avx_vextractf128_ps_256:
   8456   return DoesNotAccessMemory;
   8457 case Intrinsic::x86_avx_vextractf128_si_256:
   8458   return DoesNotAccessMemory;
   8459 case Intrinsic::x86_avx_vinsertf128_pd_256:
   8460   return DoesNotAccessMemory;
   8461 case Intrinsic::x86_avx_vinsertf128_ps_256:
   8462   return DoesNotAccessMemory;
   8463 case Intrinsic::x86_avx_vinsertf128_si_256:
   8464   return DoesNotAccessMemory;
   8465 case Intrinsic::x86_avx_vperm2f128_pd_256:
   8466   return DoesNotAccessMemory;
   8467 case Intrinsic::x86_avx_vperm2f128_ps_256:
   8468   return DoesNotAccessMemory;
   8469 case Intrinsic::x86_avx_vperm2f128_si_256:
   8470   return DoesNotAccessMemory;
   8471 case Intrinsic::x86_avx_vpermil_pd:
   8472   return DoesNotAccessMemory;
   8473 case Intrinsic::x86_avx_vpermil_pd_256:
   8474   return DoesNotAccessMemory;
   8475 case Intrinsic::x86_avx_vpermil_ps:
   8476   return DoesNotAccessMemory;
   8477 case Intrinsic::x86_avx_vpermil_ps_256:
   8478   return DoesNotAccessMemory;
   8479 case Intrinsic::x86_avx_vpermilvar_pd:
   8480   return DoesNotAccessMemory;
   8481 case Intrinsic::x86_avx_vpermilvar_pd_256:
   8482   return DoesNotAccessMemory;
   8483 case Intrinsic::x86_avx_vpermilvar_ps:
   8484   return DoesNotAccessMemory;
   8485 case Intrinsic::x86_avx_vpermilvar_ps_256:
   8486   return DoesNotAccessMemory;
   8487 case Intrinsic::x86_avx_vtestc_pd:
   8488   return DoesNotAccessMemory;
   8489 case Intrinsic::x86_avx_vtestc_pd_256:
   8490   return DoesNotAccessMemory;
   8491 case Intrinsic::x86_avx_vtestc_ps:
   8492   return DoesNotAccessMemory;
   8493 case Intrinsic::x86_avx_vtestc_ps_256:
   8494   return DoesNotAccessMemory;
   8495 case Intrinsic::x86_avx_vtestnzc_pd:
   8496   return DoesNotAccessMemory;
   8497 case Intrinsic::x86_avx_vtestnzc_pd_256:
   8498   return DoesNotAccessMemory;
   8499 case Intrinsic::x86_avx_vtestnzc_ps:
   8500   return DoesNotAccessMemory;
   8501 case Intrinsic::x86_avx_vtestnzc_ps_256:
   8502   return DoesNotAccessMemory;
   8503 case Intrinsic::x86_avx_vtestz_pd:
   8504   return DoesNotAccessMemory;
   8505 case Intrinsic::x86_avx_vtestz_pd_256:
   8506   return DoesNotAccessMemory;
   8507 case Intrinsic::x86_avx_vtestz_ps:
   8508   return DoesNotAccessMemory;
   8509 case Intrinsic::x86_avx_vtestz_ps_256:
   8510   return DoesNotAccessMemory;
   8511 case Intrinsic::x86_mmx_packssdw:
   8512   return DoesNotAccessMemory;
   8513 case Intrinsic::x86_mmx_packsswb:
   8514   return DoesNotAccessMemory;
   8515 case Intrinsic::x86_mmx_packuswb:
   8516   return DoesNotAccessMemory;
   8517 case Intrinsic::x86_mmx_padd_b:
   8518   return DoesNotAccessMemory;
   8519 case Intrinsic::x86_mmx_padd_d:
   8520   return DoesNotAccessMemory;
   8521 case Intrinsic::x86_mmx_padd_q:
   8522   return DoesNotAccessMemory;
   8523 case Intrinsic::x86_mmx_padd_w:
   8524   return DoesNotAccessMemory;
   8525 case Intrinsic::x86_mmx_padds_b:
   8526   return DoesNotAccessMemory;
   8527 case Intrinsic::x86_mmx_padds_w:
   8528   return DoesNotAccessMemory;
   8529 case Intrinsic::x86_mmx_paddus_b:
   8530   return DoesNotAccessMemory;
   8531 case Intrinsic::x86_mmx_paddus_w:
   8532   return DoesNotAccessMemory;
   8533 case Intrinsic::x86_mmx_palignr_b:
   8534   return DoesNotAccessMemory;
   8535 case Intrinsic::x86_mmx_pand:
   8536   return DoesNotAccessMemory;
   8537 case Intrinsic::x86_mmx_pandn:
   8538   return DoesNotAccessMemory;
   8539 case Intrinsic::x86_mmx_pavg_b:
   8540   return DoesNotAccessMemory;
   8541 case Intrinsic::x86_mmx_pavg_w:
   8542   return DoesNotAccessMemory;
   8543 case Intrinsic::x86_mmx_pcmpeq_b:
   8544   return DoesNotAccessMemory;
   8545 case Intrinsic::x86_mmx_pcmpeq_d:
   8546   return DoesNotAccessMemory;
   8547 case Intrinsic::x86_mmx_pcmpeq_w:
   8548   return DoesNotAccessMemory;
   8549 case Intrinsic::x86_mmx_pcmpgt_b:
   8550   return DoesNotAccessMemory;
   8551 case Intrinsic::x86_mmx_pcmpgt_d:
   8552   return DoesNotAccessMemory;
   8553 case Intrinsic::x86_mmx_pcmpgt_w:
   8554   return DoesNotAccessMemory;
   8555 case Intrinsic::x86_mmx_pextr_w:
   8556   return DoesNotAccessMemory;
   8557 case Intrinsic::x86_mmx_pinsr_w:
   8558   return DoesNotAccessMemory;
   8559 case Intrinsic::x86_mmx_pmadd_wd:
   8560   return DoesNotAccessMemory;
   8561 case Intrinsic::x86_mmx_pmaxs_w:
   8562   return DoesNotAccessMemory;
   8563 case Intrinsic::x86_mmx_pmaxu_b:
   8564   return DoesNotAccessMemory;
   8565 case Intrinsic::x86_mmx_pmins_w:
   8566   return DoesNotAccessMemory;
   8567 case Intrinsic::x86_mmx_pminu_b:
   8568   return DoesNotAccessMemory;
   8569 case Intrinsic::x86_mmx_pmovmskb:
   8570   return DoesNotAccessMemory;
   8571 case Intrinsic::x86_mmx_pmulh_w:
   8572   return DoesNotAccessMemory;
   8573 case Intrinsic::x86_mmx_pmulhu_w:
   8574   return DoesNotAccessMemory;
   8575 case Intrinsic::x86_mmx_pmull_w:
   8576   return DoesNotAccessMemory;
   8577 case Intrinsic::x86_mmx_pmulu_dq:
   8578   return DoesNotAccessMemory;
   8579 case Intrinsic::x86_mmx_por:
   8580   return DoesNotAccessMemory;
   8581 case Intrinsic::x86_mmx_psad_bw:
   8582   return DoesNotAccessMemory;
   8583 case Intrinsic::x86_mmx_psll_d:
   8584   return DoesNotAccessMemory;
   8585 case Intrinsic::x86_mmx_psll_q:
   8586   return DoesNotAccessMemory;
   8587 case Intrinsic::x86_mmx_psll_w:
   8588   return DoesNotAccessMemory;
   8589 case Intrinsic::x86_mmx_pslli_d:
   8590   return DoesNotAccessMemory;
   8591 case Intrinsic::x86_mmx_pslli_q:
   8592   return DoesNotAccessMemory;
   8593 case Intrinsic::x86_mmx_pslli_w:
   8594   return DoesNotAccessMemory;
   8595 case Intrinsic::x86_mmx_psra_d:
   8596   return DoesNotAccessMemory;
   8597 case Intrinsic::x86_mmx_psra_w:
   8598   return DoesNotAccessMemory;
   8599 case Intrinsic::x86_mmx_psrai_d:
   8600   return DoesNotAccessMemory;
   8601 case Intrinsic::x86_mmx_psrai_w:
   8602   return DoesNotAccessMemory;
   8603 case Intrinsic::x86_mmx_psrl_d:
   8604   return DoesNotAccessMemory;
   8605 case Intrinsic::x86_mmx_psrl_q:
   8606   return DoesNotAccessMemory;
   8607 case Intrinsic::x86_mmx_psrl_w:
   8608   return DoesNotAccessMemory;
   8609 case Intrinsic::x86_mmx_psrli_d:
   8610   return DoesNotAccessMemory;
   8611 case Intrinsic::x86_mmx_psrli_q:
   8612   return DoesNotAccessMemory;
   8613 case Intrinsic::x86_mmx_psrli_w:
   8614   return DoesNotAccessMemory;
   8615 case Intrinsic::x86_mmx_psub_b:
   8616   return DoesNotAccessMemory;
   8617 case Intrinsic::x86_mmx_psub_d:
   8618   return DoesNotAccessMemory;
   8619 case Intrinsic::x86_mmx_psub_q:
   8620   return DoesNotAccessMemory;
   8621 case Intrinsic::x86_mmx_psub_w:
   8622   return DoesNotAccessMemory;
   8623 case Intrinsic::x86_mmx_psubs_b:
   8624   return DoesNotAccessMemory;
   8625 case Intrinsic::x86_mmx_psubs_w:
   8626   return DoesNotAccessMemory;
   8627 case Intrinsic::x86_mmx_psubus_b:
   8628   return DoesNotAccessMemory;
   8629 case Intrinsic::x86_mmx_psubus_w:
   8630   return DoesNotAccessMemory;
   8631 case Intrinsic::x86_mmx_punpckhbw:
   8632   return DoesNotAccessMemory;
   8633 case Intrinsic::x86_mmx_punpckhdq:
   8634   return DoesNotAccessMemory;
   8635 case Intrinsic::x86_mmx_punpckhwd:
   8636   return DoesNotAccessMemory;
   8637 case Intrinsic::x86_mmx_punpcklbw:
   8638   return DoesNotAccessMemory;
   8639 case Intrinsic::x86_mmx_punpckldq:
   8640   return DoesNotAccessMemory;
   8641 case Intrinsic::x86_mmx_punpcklwd:
   8642   return DoesNotAccessMemory;
   8643 case Intrinsic::x86_mmx_pxor:
   8644   return DoesNotAccessMemory;
   8645 case Intrinsic::x86_sse2_add_sd:
   8646   return DoesNotAccessMemory;
   8647 case Intrinsic::x86_sse2_cmp_pd:
   8648   return DoesNotAccessMemory;
   8649 case Intrinsic::x86_sse2_cmp_sd:
   8650   return DoesNotAccessMemory;
   8651 case Intrinsic::x86_sse2_comieq_sd:
   8652   return DoesNotAccessMemory;
   8653 case Intrinsic::x86_sse2_comige_sd:
   8654   return DoesNotAccessMemory;
   8655 case Intrinsic::x86_sse2_comigt_sd:
   8656   return DoesNotAccessMemory;
   8657 case Intrinsic::x86_sse2_comile_sd:
   8658   return DoesNotAccessMemory;
   8659 case Intrinsic::x86_sse2_comilt_sd:
   8660   return DoesNotAccessMemory;
   8661 case Intrinsic::x86_sse2_comineq_sd:
   8662   return DoesNotAccessMemory;
   8663 case Intrinsic::x86_sse2_cvtdq2pd:
   8664   return DoesNotAccessMemory;
   8665 case Intrinsic::x86_sse2_cvtdq2ps:
   8666   return DoesNotAccessMemory;
   8667 case Intrinsic::x86_sse2_cvtpd2dq:
   8668   return DoesNotAccessMemory;
   8669 case Intrinsic::x86_sse2_cvtpd2ps:
   8670   return DoesNotAccessMemory;
   8671 case Intrinsic::x86_sse2_cvtps2dq:
   8672   return DoesNotAccessMemory;
   8673 case Intrinsic::x86_sse2_cvtps2pd:
   8674   return DoesNotAccessMemory;
   8675 case Intrinsic::x86_sse2_cvtsd2si:
   8676   return DoesNotAccessMemory;
   8677 case Intrinsic::x86_sse2_cvtsd2si64:
   8678   return DoesNotAccessMemory;
   8679 case Intrinsic::x86_sse2_cvtsd2ss:
   8680   return DoesNotAccessMemory;
   8681 case Intrinsic::x86_sse2_cvtsi2sd:
   8682   return DoesNotAccessMemory;
   8683 case Intrinsic::x86_sse2_cvtsi642sd:
   8684   return DoesNotAccessMemory;
   8685 case Intrinsic::x86_sse2_cvtss2sd:
   8686   return DoesNotAccessMemory;
   8687 case Intrinsic::x86_sse2_cvttpd2dq:
   8688   return DoesNotAccessMemory;
   8689 case Intrinsic::x86_sse2_cvttps2dq:
   8690   return DoesNotAccessMemory;
   8691 case Intrinsic::x86_sse2_cvttsd2si:
   8692   return DoesNotAccessMemory;
   8693 case Intrinsic::x86_sse2_cvttsd2si64:
   8694   return DoesNotAccessMemory;
   8695 case Intrinsic::x86_sse2_div_sd:
   8696   return DoesNotAccessMemory;
   8697 case Intrinsic::x86_sse2_max_pd:
   8698   return DoesNotAccessMemory;
   8699 case Intrinsic::x86_sse2_max_sd:
   8700   return DoesNotAccessMemory;
   8701 case Intrinsic::x86_sse2_min_pd:
   8702   return DoesNotAccessMemory;
   8703 case Intrinsic::x86_sse2_min_sd:
   8704   return DoesNotAccessMemory;
   8705 case Intrinsic::x86_sse2_movmsk_pd:
   8706   return DoesNotAccessMemory;
   8707 case Intrinsic::x86_sse2_mul_sd:
   8708   return DoesNotAccessMemory;
   8709 case Intrinsic::x86_sse2_packssdw_128:
   8710   return DoesNotAccessMemory;
   8711 case Intrinsic::x86_sse2_packsswb_128:
   8712   return DoesNotAccessMemory;
   8713 case Intrinsic::x86_sse2_packuswb_128:
   8714   return DoesNotAccessMemory;
   8715 case Intrinsic::x86_sse2_padds_b:
   8716   return DoesNotAccessMemory;
   8717 case Intrinsic::x86_sse2_padds_w:
   8718   return DoesNotAccessMemory;
   8719 case Intrinsic::x86_sse2_paddus_b:
   8720   return DoesNotAccessMemory;
   8721 case Intrinsic::x86_sse2_paddus_w:
   8722   return DoesNotAccessMemory;
   8723 case Intrinsic::x86_sse2_pavg_b:
   8724   return DoesNotAccessMemory;
   8725 case Intrinsic::x86_sse2_pavg_w:
   8726   return DoesNotAccessMemory;
   8727 case Intrinsic::x86_sse2_pcmpeq_b:
   8728   return DoesNotAccessMemory;
   8729 case Intrinsic::x86_sse2_pcmpeq_d:
   8730   return DoesNotAccessMemory;
   8731 case Intrinsic::x86_sse2_pcmpeq_w:
   8732   return DoesNotAccessMemory;
   8733 case Intrinsic::x86_sse2_pcmpgt_b:
   8734   return DoesNotAccessMemory;
   8735 case Intrinsic::x86_sse2_pcmpgt_d:
   8736   return DoesNotAccessMemory;
   8737 case Intrinsic::x86_sse2_pcmpgt_w:
   8738   return DoesNotAccessMemory;
   8739 case Intrinsic::x86_sse2_pmadd_wd:
   8740   return DoesNotAccessMemory;
   8741 case Intrinsic::x86_sse2_pmaxs_w:
   8742   return DoesNotAccessMemory;
   8743 case Intrinsic::x86_sse2_pmaxu_b:
   8744   return DoesNotAccessMemory;
   8745 case Intrinsic::x86_sse2_pmins_w:
   8746   return DoesNotAccessMemory;
   8747 case Intrinsic::x86_sse2_pminu_b:
   8748   return DoesNotAccessMemory;
   8749 case Intrinsic::x86_sse2_pmovmskb_128:
   8750   return DoesNotAccessMemory;
   8751 case Intrinsic::x86_sse2_pmulh_w:
   8752   return DoesNotAccessMemory;
   8753 case Intrinsic::x86_sse2_pmulhu_w:
   8754   return DoesNotAccessMemory;
   8755 case Intrinsic::x86_sse2_pmulu_dq:
   8756   return DoesNotAccessMemory;
   8757 case Intrinsic::x86_sse2_psad_bw:
   8758   return DoesNotAccessMemory;
   8759 case Intrinsic::x86_sse2_psll_d:
   8760   return DoesNotAccessMemory;
   8761 case Intrinsic::x86_sse2_psll_dq:
   8762   return DoesNotAccessMemory;
   8763 case Intrinsic::x86_sse2_psll_dq_bs:
   8764   return DoesNotAccessMemory;
   8765 case Intrinsic::x86_sse2_psll_q:
   8766   return DoesNotAccessMemory;
   8767 case Intrinsic::x86_sse2_psll_w:
   8768   return DoesNotAccessMemory;
   8769 case Intrinsic::x86_sse2_pslli_d:
   8770   return DoesNotAccessMemory;
   8771 case Intrinsic::x86_sse2_pslli_q:
   8772   return DoesNotAccessMemory;
   8773 case Intrinsic::x86_sse2_pslli_w:
   8774   return DoesNotAccessMemory;
   8775 case Intrinsic::x86_sse2_psra_d:
   8776   return DoesNotAccessMemory;
   8777 case Intrinsic::x86_sse2_psra_w:
   8778   return DoesNotAccessMemory;
   8779 case Intrinsic::x86_sse2_psrai_d:
   8780   return DoesNotAccessMemory;
   8781 case Intrinsic::x86_sse2_psrai_w:
   8782   return DoesNotAccessMemory;
   8783 case Intrinsic::x86_sse2_psrl_d:
   8784   return DoesNotAccessMemory;
   8785 case Intrinsic::x86_sse2_psrl_dq:
   8786   return DoesNotAccessMemory;
   8787 case Intrinsic::x86_sse2_psrl_dq_bs:
   8788   return DoesNotAccessMemory;
   8789 case Intrinsic::x86_sse2_psrl_q:
   8790   return DoesNotAccessMemory;
   8791 case Intrinsic::x86_sse2_psrl_w:
   8792   return DoesNotAccessMemory;
   8793 case Intrinsic::x86_sse2_psrli_d:
   8794   return DoesNotAccessMemory;
   8795 case Intrinsic::x86_sse2_psrli_q:
   8796   return DoesNotAccessMemory;
   8797 case Intrinsic::x86_sse2_psrli_w:
   8798   return DoesNotAccessMemory;
   8799 case Intrinsic::x86_sse2_psubs_b:
   8800   return DoesNotAccessMemory;
   8801 case Intrinsic::x86_sse2_psubs_w:
   8802   return DoesNotAccessMemory;
   8803 case Intrinsic::x86_sse2_psubus_b:
   8804   return DoesNotAccessMemory;
   8805 case Intrinsic::x86_sse2_psubus_w:
   8806   return DoesNotAccessMemory;
   8807 case Intrinsic::x86_sse2_sqrt_pd:
   8808   return DoesNotAccessMemory;
   8809 case Intrinsic::x86_sse2_sqrt_sd:
   8810   return DoesNotAccessMemory;
   8811 case Intrinsic::x86_sse2_sub_sd:
   8812   return DoesNotAccessMemory;
   8813 case Intrinsic::x86_sse2_ucomieq_sd:
   8814   return DoesNotAccessMemory;
   8815 case Intrinsic::x86_sse2_ucomige_sd:
   8816   return DoesNotAccessMemory;
   8817 case Intrinsic::x86_sse2_ucomigt_sd:
   8818   return DoesNotAccessMemory;
   8819 case Intrinsic::x86_sse2_ucomile_sd:
   8820   return DoesNotAccessMemory;
   8821 case Intrinsic::x86_sse2_ucomilt_sd:
   8822   return DoesNotAccessMemory;
   8823 case Intrinsic::x86_sse2_ucomineq_sd:
   8824   return DoesNotAccessMemory;
   8825 case Intrinsic::x86_sse3_addsub_pd:
   8826   return DoesNotAccessMemory;
   8827 case Intrinsic::x86_sse3_addsub_ps:
   8828   return DoesNotAccessMemory;
   8829 case Intrinsic::x86_sse3_hadd_pd:
   8830   return DoesNotAccessMemory;
   8831 case Intrinsic::x86_sse3_hadd_ps:
   8832   return DoesNotAccessMemory;
   8833 case Intrinsic::x86_sse3_hsub_pd:
   8834   return DoesNotAccessMemory;
   8835 case Intrinsic::x86_sse3_hsub_ps:
   8836   return DoesNotAccessMemory;
   8837 case Intrinsic::x86_sse3_ldu_dq:
   8838   return OnlyReadsMemory;
   8839 case Intrinsic::x86_sse41_blendpd:
   8840   return DoesNotAccessMemory;
   8841 case Intrinsic::x86_sse41_blendps:
   8842   return DoesNotAccessMemory;
   8843 case Intrinsic::x86_sse41_blendvpd:
   8844   return DoesNotAccessMemory;
   8845 case Intrinsic::x86_sse41_blendvps:
   8846   return DoesNotAccessMemory;
   8847 case Intrinsic::x86_sse41_dppd:
   8848   return DoesNotAccessMemory;
   8849 case Intrinsic::x86_sse41_dpps:
   8850   return DoesNotAccessMemory;
   8851 case Intrinsic::x86_sse41_extractps:
   8852   return DoesNotAccessMemory;
   8853 case Intrinsic::x86_sse41_insertps:
   8854   return DoesNotAccessMemory;
   8855 case Intrinsic::x86_sse41_movntdqa:
   8856   return OnlyReadsMemory;
   8857 case Intrinsic::x86_sse41_mpsadbw:
   8858   return DoesNotAccessMemory;
   8859 case Intrinsic::x86_sse41_packusdw:
   8860   return DoesNotAccessMemory;
   8861 case Intrinsic::x86_sse41_pblendvb:
   8862   return DoesNotAccessMemory;
   8863 case Intrinsic::x86_sse41_pblendw:
   8864   return DoesNotAccessMemory;
   8865 case Intrinsic::x86_sse41_pcmpeqq:
   8866   return DoesNotAccessMemory;
   8867 case Intrinsic::x86_sse41_pextrb:
   8868   return DoesNotAccessMemory;
   8869 case Intrinsic::x86_sse41_pextrd:
   8870   return DoesNotAccessMemory;
   8871 case Intrinsic::x86_sse41_pextrq:
   8872   return DoesNotAccessMemory;
   8873 case Intrinsic::x86_sse41_phminposuw:
   8874   return DoesNotAccessMemory;
   8875 case Intrinsic::x86_sse41_pmaxsb:
   8876   return DoesNotAccessMemory;
   8877 case Intrinsic::x86_sse41_pmaxsd:
   8878   return DoesNotAccessMemory;
   8879 case Intrinsic::x86_sse41_pmaxud:
   8880   return DoesNotAccessMemory;
   8881 case Intrinsic::x86_sse41_pmaxuw:
   8882   return DoesNotAccessMemory;
   8883 case Intrinsic::x86_sse41_pminsb:
   8884   return DoesNotAccessMemory;
   8885 case Intrinsic::x86_sse41_pminsd:
   8886   return DoesNotAccessMemory;
   8887 case Intrinsic::x86_sse41_pminud:
   8888   return DoesNotAccessMemory;
   8889 case Intrinsic::x86_sse41_pminuw:
   8890   return DoesNotAccessMemory;
   8891 case Intrinsic::x86_sse41_pmovsxbd:
   8892   return DoesNotAccessMemory;
   8893 case Intrinsic::x86_sse41_pmovsxbq:
   8894   return DoesNotAccessMemory;
   8895 case Intrinsic::x86_sse41_pmovsxbw:
   8896   return DoesNotAccessMemory;
   8897 case Intrinsic::x86_sse41_pmovsxdq:
   8898   return DoesNotAccessMemory;
   8899 case Intrinsic::x86_sse41_pmovsxwd:
   8900   return DoesNotAccessMemory;
   8901 case Intrinsic::x86_sse41_pmovsxwq:
   8902   return DoesNotAccessMemory;
   8903 case Intrinsic::x86_sse41_pmovzxbd:
   8904   return DoesNotAccessMemory;
   8905 case Intrinsic::x86_sse41_pmovzxbq:
   8906   return DoesNotAccessMemory;
   8907 case Intrinsic::x86_sse41_pmovzxbw:
   8908   return DoesNotAccessMemory;
   8909 case Intrinsic::x86_sse41_pmovzxdq:
   8910   return DoesNotAccessMemory;
   8911 case Intrinsic::x86_sse41_pmovzxwd:
   8912   return DoesNotAccessMemory;
   8913 case Intrinsic::x86_sse41_pmovzxwq:
   8914   return DoesNotAccessMemory;
   8915 case Intrinsic::x86_sse41_pmuldq:
   8916   return DoesNotAccessMemory;
   8917 case Intrinsic::x86_sse41_ptestc:
   8918   return DoesNotAccessMemory;
   8919 case Intrinsic::x86_sse41_ptestnzc:
   8920   return DoesNotAccessMemory;
   8921 case Intrinsic::x86_sse41_ptestz:
   8922   return DoesNotAccessMemory;
   8923 case Intrinsic::x86_sse41_round_pd:
   8924   return DoesNotAccessMemory;
   8925 case Intrinsic::x86_sse41_round_ps:
   8926   return DoesNotAccessMemory;
   8927 case Intrinsic::x86_sse41_round_sd:
   8928   return DoesNotAccessMemory;
   8929 case Intrinsic::x86_sse41_round_ss:
   8930   return DoesNotAccessMemory;
   8931 case Intrinsic::x86_sse42_crc32_32_16:
   8932   return DoesNotAccessMemory;
   8933 case Intrinsic::x86_sse42_crc32_32_32:
   8934   return DoesNotAccessMemory;
   8935 case Intrinsic::x86_sse42_crc32_32_8:
   8936   return DoesNotAccessMemory;
   8937 case Intrinsic::x86_sse42_crc32_64_64:
   8938   return DoesNotAccessMemory;
   8939 case Intrinsic::x86_sse42_crc32_64_8:
   8940   return DoesNotAccessMemory;
   8941 case Intrinsic::x86_sse42_pcmpestri128:
   8942   return DoesNotAccessMemory;
   8943 case Intrinsic::x86_sse42_pcmpestria128:
   8944   return DoesNotAccessMemory;
   8945 case Intrinsic::x86_sse42_pcmpestric128:
   8946   return DoesNotAccessMemory;
   8947 case Intrinsic::x86_sse42_pcmpestrio128:
   8948   return DoesNotAccessMemory;
   8949 case Intrinsic::x86_sse42_pcmpestris128:
   8950   return DoesNotAccessMemory;
   8951 case Intrinsic::x86_sse42_pcmpestriz128:
   8952   return DoesNotAccessMemory;
   8953 case Intrinsic::x86_sse42_pcmpestrm128:
   8954   return DoesNotAccessMemory;
   8955 case Intrinsic::x86_sse42_pcmpgtq:
   8956   return DoesNotAccessMemory;
   8957 case Intrinsic::x86_sse42_pcmpistri128:
   8958   return DoesNotAccessMemory;
   8959 case Intrinsic::x86_sse42_pcmpistria128:
   8960   return DoesNotAccessMemory;
   8961 case Intrinsic::x86_sse42_pcmpistric128:
   8962   return DoesNotAccessMemory;
   8963 case Intrinsic::x86_sse42_pcmpistrio128:
   8964   return DoesNotAccessMemory;
   8965 case Intrinsic::x86_sse42_pcmpistris128:
   8966   return DoesNotAccessMemory;
   8967 case Intrinsic::x86_sse42_pcmpistriz128:
   8968   return DoesNotAccessMemory;
   8969 case Intrinsic::x86_sse42_pcmpistrm128:
   8970   return DoesNotAccessMemory;
   8971 case Intrinsic::x86_sse_add_ss:
   8972   return DoesNotAccessMemory;
   8973 case Intrinsic::x86_sse_cmp_ps:
   8974   return DoesNotAccessMemory;
   8975 case Intrinsic::x86_sse_cmp_ss:
   8976   return DoesNotAccessMemory;
   8977 case Intrinsic::x86_sse_comieq_ss:
   8978   return DoesNotAccessMemory;
   8979 case Intrinsic::x86_sse_comige_ss:
   8980   return DoesNotAccessMemory;
   8981 case Intrinsic::x86_sse_comigt_ss:
   8982   return DoesNotAccessMemory;
   8983 case Intrinsic::x86_sse_comile_ss:
   8984   return DoesNotAccessMemory;
   8985 case Intrinsic::x86_sse_comilt_ss:
   8986   return DoesNotAccessMemory;
   8987 case Intrinsic::x86_sse_comineq_ss:
   8988   return DoesNotAccessMemory;
   8989 case Intrinsic::x86_sse_cvtpd2pi:
   8990   return DoesNotAccessMemory;
   8991 case Intrinsic::x86_sse_cvtpi2pd:
   8992   return DoesNotAccessMemory;
   8993 case Intrinsic::x86_sse_cvtpi2ps:
   8994   return DoesNotAccessMemory;
   8995 case Intrinsic::x86_sse_cvtps2pi:
   8996   return DoesNotAccessMemory;
   8997 case Intrinsic::x86_sse_cvtsi2ss:
   8998   return DoesNotAccessMemory;
   8999 case Intrinsic::x86_sse_cvtsi642ss:
   9000   return DoesNotAccessMemory;
   9001 case Intrinsic::x86_sse_cvtss2si:
   9002   return DoesNotAccessMemory;
   9003 case Intrinsic::x86_sse_cvtss2si64:
   9004   return DoesNotAccessMemory;
   9005 case Intrinsic::x86_sse_cvttpd2pi:
   9006   return DoesNotAccessMemory;
   9007 case Intrinsic::x86_sse_cvttps2pi:
   9008   return DoesNotAccessMemory;
   9009 case Intrinsic::x86_sse_cvttss2si:
   9010   return DoesNotAccessMemory;
   9011 case Intrinsic::x86_sse_cvttss2si64:
   9012   return DoesNotAccessMemory;
   9013 case Intrinsic::x86_sse_div_ss:
   9014   return DoesNotAccessMemory;
   9015 case Intrinsic::x86_sse_max_ps:
   9016   return DoesNotAccessMemory;
   9017 case Intrinsic::x86_sse_max_ss:
   9018   return DoesNotAccessMemory;
   9019 case Intrinsic::x86_sse_min_ps:
   9020   return DoesNotAccessMemory;
   9021 case Intrinsic::x86_sse_min_ss:
   9022   return DoesNotAccessMemory;
   9023 case Intrinsic::x86_sse_movmsk_ps:
   9024   return DoesNotAccessMemory;
   9025 case Intrinsic::x86_sse_mul_ss:
   9026   return DoesNotAccessMemory;
   9027 case Intrinsic::x86_sse_pshuf_w:
   9028   return DoesNotAccessMemory;
   9029 case Intrinsic::x86_sse_rcp_ps:
   9030   return DoesNotAccessMemory;
   9031 case Intrinsic::x86_sse_rcp_ss:
   9032   return DoesNotAccessMemory;
   9033 case Intrinsic::x86_sse_rsqrt_ps:
   9034   return DoesNotAccessMemory;
   9035 case Intrinsic::x86_sse_rsqrt_ss:
   9036   return DoesNotAccessMemory;
   9037 case Intrinsic::x86_sse_sqrt_ps:
   9038   return DoesNotAccessMemory;
   9039 case Intrinsic::x86_sse_sqrt_ss:
   9040   return DoesNotAccessMemory;
   9041 case Intrinsic::x86_sse_sub_ss:
   9042   return DoesNotAccessMemory;
   9043 case Intrinsic::x86_sse_ucomieq_ss:
   9044   return DoesNotAccessMemory;
   9045 case Intrinsic::x86_sse_ucomige_ss:
   9046   return DoesNotAccessMemory;
   9047 case Intrinsic::x86_sse_ucomigt_ss:
   9048   return DoesNotAccessMemory;
   9049 case Intrinsic::x86_sse_ucomile_ss:
   9050   return DoesNotAccessMemory;
   9051 case Intrinsic::x86_sse_ucomilt_ss:
   9052   return DoesNotAccessMemory;
   9053 case Intrinsic::x86_sse_ucomineq_ss:
   9054   return DoesNotAccessMemory;
   9055 case Intrinsic::x86_ssse3_pabs_b:
   9056   return DoesNotAccessMemory;
   9057 case Intrinsic::x86_ssse3_pabs_b_128:
   9058   return DoesNotAccessMemory;
   9059 case Intrinsic::x86_ssse3_pabs_d:
   9060   return DoesNotAccessMemory;
   9061 case Intrinsic::x86_ssse3_pabs_d_128:
   9062   return DoesNotAccessMemory;
   9063 case Intrinsic::x86_ssse3_pabs_w:
   9064   return DoesNotAccessMemory;
   9065 case Intrinsic::x86_ssse3_pabs_w_128:
   9066   return DoesNotAccessMemory;
   9067 case Intrinsic::x86_ssse3_phadd_d:
   9068   return DoesNotAccessMemory;
   9069 case Intrinsic::x86_ssse3_phadd_d_128:
   9070   return DoesNotAccessMemory;
   9071 case Intrinsic::x86_ssse3_phadd_sw:
   9072   return DoesNotAccessMemory;
   9073 case Intrinsic::x86_ssse3_phadd_sw_128:
   9074   return DoesNotAccessMemory;
   9075 case Intrinsic::x86_ssse3_phadd_w:
   9076   return DoesNotAccessMemory;
   9077 case Intrinsic::x86_ssse3_phadd_w_128:
   9078   return DoesNotAccessMemory;
   9079 case Intrinsic::x86_ssse3_phsub_d:
   9080   return DoesNotAccessMemory;
   9081 case Intrinsic::x86_ssse3_phsub_d_128:
   9082   return DoesNotAccessMemory;
   9083 case Intrinsic::x86_ssse3_phsub_sw:
   9084   return DoesNotAccessMemory;
   9085 case Intrinsic::x86_ssse3_phsub_sw_128:
   9086   return DoesNotAccessMemory;
   9087 case Intrinsic::x86_ssse3_phsub_w:
   9088   return DoesNotAccessMemory;
   9089 case Intrinsic::x86_ssse3_phsub_w_128:
   9090   return DoesNotAccessMemory;
   9091 case Intrinsic::x86_ssse3_pmadd_ub_sw:
   9092   return DoesNotAccessMemory;
   9093 case Intrinsic::x86_ssse3_pmadd_ub_sw_128:
   9094   return DoesNotAccessMemory;
   9095 case Intrinsic::x86_ssse3_pmul_hr_sw:
   9096   return DoesNotAccessMemory;
   9097 case Intrinsic::x86_ssse3_pmul_hr_sw_128:
   9098   return DoesNotAccessMemory;
   9099 case Intrinsic::x86_ssse3_pshuf_b:
   9100   return DoesNotAccessMemory;
   9101 case Intrinsic::x86_ssse3_pshuf_b_128:
   9102   return DoesNotAccessMemory;
   9103 case Intrinsic::x86_ssse3_psign_b:
   9104   return DoesNotAccessMemory;
   9105 case Intrinsic::x86_ssse3_psign_b_128:
   9106   return DoesNotAccessMemory;
   9107 case Intrinsic::x86_ssse3_psign_d:
   9108   return DoesNotAccessMemory;
   9109 case Intrinsic::x86_ssse3_psign_d_128:
   9110   return DoesNotAccessMemory;
   9111 case Intrinsic::x86_ssse3_psign_w:
   9112   return DoesNotAccessMemory;
   9113 case Intrinsic::x86_ssse3_psign_w_128:
   9114   return DoesNotAccessMemory;
   9115 }
   9116 #endif // GET_INTRINSIC_MODREF_BEHAVIOR
   9117 
   9118 // Get the GCC builtin that corresponds to an LLVM intrinsic.
   9119 #ifdef GET_GCC_BUILTIN_NAME
   9120   switch (F->getIntrinsicID()) {
   9121   default: BuiltinName = ""; break;
   9122   case Intrinsic::adjust_trampoline: BuiltinName = "__builtin_adjust_trampoline"; break;
   9123   case Intrinsic::convert_from_fp16: BuiltinName = "__gnu_h2f_ieee"; break;
   9124   case Intrinsic::convert_to_fp16: BuiltinName = "__gnu_f2h_ieee"; break;
   9125   case Intrinsic::eh_unwind_init: BuiltinName = "__builtin_unwind_init"; break;
   9126   case Intrinsic::flt_rounds: BuiltinName = "__builtin_flt_rounds"; break;
   9127   case Intrinsic::init_trampoline: BuiltinName = "__builtin_init_trampoline"; break;
   9128   case Intrinsic::objectsize: BuiltinName = "__builtin_object_size"; break;
   9129   case Intrinsic::stackrestore: BuiltinName = "__builtin_stack_restore"; break;
   9130   case Intrinsic::stacksave: BuiltinName = "__builtin_stack_save"; break;
   9131   case Intrinsic::trap: BuiltinName = "__builtin_trap"; break;
   9132   case Intrinsic::x86_3dnow_pavgusb: BuiltinName = "__builtin_ia32_pavgusb"; break;
   9133   case Intrinsic::x86_3dnow_pf2id: BuiltinName = "__builtin_ia32_pf2id"; break;
   9134   case Intrinsic::x86_3dnow_pfacc: BuiltinName = "__builtin_ia32_pfacc"; break;
   9135   case Intrinsic::x86_3dnow_pfadd: BuiltinName = "__builtin_ia32_pfadd"; break;
   9136   case Intrinsic::x86_3dnow_pfcmpeq: BuiltinName = "__builtin_ia32_pfcmpeq"; break;
   9137   case Intrinsic::x86_3dnow_pfcmpge: BuiltinName = "__builtin_ia32_pfcmpge"; break;
   9138   case Intrinsic::x86_3dnow_pfcmpgt: BuiltinName = "__builtin_ia32_pfcmpgt"; break;
   9139   case Intrinsic::x86_3dnow_pfmax: BuiltinName = "__builtin_ia32_pfmax"; break;
   9140   case Intrinsic::x86_3dnow_pfmin: BuiltinName = "__builtin_ia32_pfmin"; break;
   9141   case Intrinsic::x86_3dnow_pfmul: BuiltinName = "__builtin_ia32_pfmul"; break;
   9142   case Intrinsic::x86_3dnow_pfrcp: BuiltinName = "__builtin_ia32_pfrcp"; break;
   9143   case Intrinsic::x86_3dnow_pfrcpit1: BuiltinName = "__builtin_ia32_pfrcpit1"; break;
   9144   case Intrinsic::x86_3dnow_pfrcpit2: BuiltinName = "__builtin_ia32_pfrcpit2"; break;
   9145   case Intrinsic::x86_3dnow_pfrsqit1: BuiltinName = "__builtin_ia32_pfrsqit1"; break;
   9146   case Intrinsic::x86_3dnow_pfrsqrt: BuiltinName = "__builtin_ia32_pfrsqrt"; break;
   9147   case Intrinsic::x86_3dnow_pfsub: BuiltinName = "__builtin_ia32_pfsub"; break;
   9148   case Intrinsic::x86_3dnow_pfsubr: BuiltinName = "__builtin_ia32_pfsubr"; break;
   9149   case Intrinsic::x86_3dnow_pi2fd: BuiltinName = "__builtin_ia32_pi2fd"; break;
   9150   case Intrinsic::x86_3dnow_pmulhrw: BuiltinName = "__builtin_ia32_pmulhrw"; break;
   9151   case Intrinsic::x86_3dnowa_pf2iw: BuiltinName = "__builtin_ia32_pf2iw"; break;
   9152   case Intrinsic::x86_3dnowa_pfnacc: BuiltinName = "__builtin_ia32_pfnacc"; break;
   9153   case Intrinsic::x86_3dnowa_pfpnacc: BuiltinName = "__builtin_ia32_pfpnacc"; break;
   9154   case Intrinsic::x86_3dnowa_pi2fw: BuiltinName = "__builtin_ia32_pi2fw"; break;
   9155   case Intrinsic::x86_aesni_aesdec: BuiltinName = "__builtin_ia32_aesdec128"; break;
   9156   case Intrinsic::x86_aesni_aesdeclast: BuiltinName = "__builtin_ia32_aesdeclast128"; break;
   9157   case Intrinsic::x86_aesni_aesenc: BuiltinName = "__builtin_ia32_aesenc128"; break;
   9158   case Intrinsic::x86_aesni_aesenclast: BuiltinName = "__builtin_ia32_aesenclast128"; break;
   9159   case Intrinsic::x86_aesni_aesimc: BuiltinName = "__builtin_ia32_aesimc128"; break;
   9160   case Intrinsic::x86_aesni_aeskeygenassist: BuiltinName = "__builtin_ia32_aeskeygenassist128"; break;
   9161   case Intrinsic::x86_avx_addsub_pd_256: BuiltinName = "__builtin_ia32_addsubpd256"; break;
   9162   case Intrinsic::x86_avx_addsub_ps_256: BuiltinName = "__builtin_ia32_addsubps256"; break;
   9163   case Intrinsic::x86_avx_blend_pd_256: BuiltinName = "__builtin_ia32_blendpd256"; break;
   9164   case Intrinsic::x86_avx_blend_ps_256: BuiltinName = "__builtin_ia32_blendps256"; break;
   9165   case Intrinsic::x86_avx_blendv_pd_256: BuiltinName = "__builtin_ia32_blendvpd256"; break;
   9166   case Intrinsic::x86_avx_blendv_ps_256: BuiltinName = "__builtin_ia32_blendvps256"; break;
   9167   case Intrinsic::x86_avx_cmp_pd_256: BuiltinName = "__builtin_ia32_cmppd256"; break;
   9168   case Intrinsic::x86_avx_cmp_ps_256: BuiltinName = "__builtin_ia32_cmpps256"; break;
   9169   case Intrinsic::x86_avx_cvt_pd2_ps_256: BuiltinName = "__builtin_ia32_cvtpd2ps256"; break;
   9170   case Intrinsic::x86_avx_cvt_pd2dq_256: BuiltinName = "__builtin_ia32_cvtpd2dq256"; break;
   9171   case Intrinsic::x86_avx_cvt_ps2_pd_256: BuiltinName = "__builtin_ia32_cvtps2pd256"; break;
   9172   case Intrinsic::x86_avx_cvt_ps2dq_256: BuiltinName = "__builtin_ia32_cvtps2dq256"; break;
   9173   case Intrinsic::x86_avx_cvtdq2_pd_256: BuiltinName = "__builtin_ia32_cvtdq2pd256"; break;
   9174   case Intrinsic::x86_avx_cvtdq2_ps_256: BuiltinName = "__builtin_ia32_cvtdq2ps256"; break;
   9175   case Intrinsic::x86_avx_cvtt_pd2dq_256: BuiltinName = "__builtin_ia32_cvttpd2dq256"; break;
   9176   case Intrinsic::x86_avx_cvtt_ps2dq_256: BuiltinName = "__builtin_ia32_cvttps2dq256"; break;
   9177   case Intrinsic::x86_avx_dp_ps_256: BuiltinName = "__builtin_ia32_dpps256"; break;
   9178   case Intrinsic::x86_avx_hadd_pd_256: BuiltinName = "__builtin_ia32_haddpd256"; break;
   9179   case Intrinsic::x86_avx_hadd_ps_256: BuiltinName = "__builtin_ia32_haddps256"; break;
   9180   case Intrinsic::x86_avx_hsub_pd_256: BuiltinName = "__builtin_ia32_hsubpd256"; break;
   9181   case Intrinsic::x86_avx_hsub_ps_256: BuiltinName = "__builtin_ia32_hsubps256"; break;
   9182   case Intrinsic::x86_avx_ldu_dq_256: BuiltinName = "__builtin_ia32_lddqu256"; break;
   9183   case Intrinsic::x86_avx_loadu_dq_256: BuiltinName = "__builtin_ia32_loaddqu256"; break;
   9184   case Intrinsic::x86_avx_loadu_pd_256: BuiltinName = "__builtin_ia32_loadupd256"; break;
   9185   case Intrinsic::x86_avx_loadu_ps_256: BuiltinName = "__builtin_ia32_loadups256"; break;
   9186   case Intrinsic::x86_avx_maskload_pd: BuiltinName = "__builtin_ia32_maskloadpd"; break;
   9187   case Intrinsic::x86_avx_maskload_pd_256: BuiltinName = "__builtin_ia32_maskloadpd256"; break;
   9188   case Intrinsic::x86_avx_maskload_ps: BuiltinName = "__builtin_ia32_maskloadps"; break;
   9189   case Intrinsic::x86_avx_maskload_ps_256: BuiltinName = "__builtin_ia32_maskloadps256"; break;
   9190   case Intrinsic::x86_avx_maskstore_pd: BuiltinName = "__builtin_ia32_maskstorepd"; break;
   9191   case Intrinsic::x86_avx_maskstore_pd_256: BuiltinName = "__builtin_ia32_maskstorepd256"; break;
   9192   case Intrinsic::x86_avx_maskstore_ps: BuiltinName = "__builtin_ia32_maskstoreps"; break;
   9193   case Intrinsic::x86_avx_maskstore_ps_256: BuiltinName = "__builtin_ia32_maskstoreps256"; break;
   9194   case Intrinsic::x86_avx_max_pd_256: BuiltinName = "__builtin_ia32_maxpd256"; break;
   9195   case Intrinsic::x86_avx_max_ps_256: BuiltinName = "__builtin_ia32_maxps256"; break;
   9196   case Intrinsic::x86_avx_min_pd_256: BuiltinName = "__builtin_ia32_minpd256"; break;
   9197   case Intrinsic::x86_avx_min_ps_256: BuiltinName = "__builtin_ia32_minps256"; break;
   9198   case Intrinsic::x86_avx_movmsk_pd_256: BuiltinName = "__builtin_ia32_movmskpd256"; break;
   9199   case Intrinsic::x86_avx_movmsk_ps_256: BuiltinName = "__builtin_ia32_movmskps256"; break;
   9200   case Intrinsic::x86_avx_movnt_dq_256: BuiltinName = "__builtin_ia32_movntdq256"; break;
   9201   case Intrinsic::x86_avx_movnt_pd_256: BuiltinName = "__builtin_ia32_movntpd256"; break;
   9202   case Intrinsic::x86_avx_movnt_ps_256: BuiltinName = "__builtin_ia32_movntps256"; break;
   9203   case Intrinsic::x86_avx_ptestc_256: BuiltinName = "__builtin_ia32_ptestc256"; break;
   9204   case Intrinsic::x86_avx_ptestnzc_256: BuiltinName = "__builtin_ia32_ptestnzc256"; break;
   9205   case Intrinsic::x86_avx_ptestz_256: BuiltinName = "__builtin_ia32_ptestz256"; break;
   9206   case Intrinsic::x86_avx_rcp_ps_256: BuiltinName = "__builtin_ia32_rcpps256"; break;
   9207   case Intrinsic::x86_avx_round_pd_256: BuiltinName = "__builtin_ia32_roundpd256"; break;
   9208   case Intrinsic::x86_avx_round_ps_256: BuiltinName = "__builtin_ia32_roundps256"; break;
   9209   case Intrinsic::x86_avx_rsqrt_ps_256: BuiltinName = "__builtin_ia32_rsqrtps256"; break;
   9210   case Intrinsic::x86_avx_sqrt_pd_256: BuiltinName = "__builtin_ia32_sqrtpd256"; break;
   9211   case Intrinsic::x86_avx_sqrt_ps_256: BuiltinName = "__builtin_ia32_sqrtps256"; break;
   9212   case Intrinsic::x86_avx_storeu_dq_256: BuiltinName = "__builtin_ia32_storedqu256"; break;
   9213   case Intrinsic::x86_avx_storeu_pd_256: BuiltinName = "__builtin_ia32_storeupd256"; break;
   9214   case Intrinsic::x86_avx_storeu_ps_256: BuiltinName = "__builtin_ia32_storeups256"; break;
   9215   case Intrinsic::x86_avx_vbroadcast_sd_256: BuiltinName = "__builtin_ia32_vbroadcastsd256"; break;
   9216   case Intrinsic::x86_avx_vbroadcastf128_pd_256: BuiltinName = "__builtin_ia32_vbroadcastf128_pd256"; break;
   9217   case Intrinsic::x86_avx_vbroadcastf128_ps_256: BuiltinName = "__builtin_ia32_vbroadcastf128_ps256"; break;
   9218   case Intrinsic::x86_avx_vbroadcastss: BuiltinName = "__builtin_ia32_vbroadcastss"; break;
   9219   case Intrinsic::x86_avx_vbroadcastss_256: BuiltinName = "__builtin_ia32_vbroadcastss256"; break;
   9220   case Intrinsic::x86_avx_vextractf128_pd_256: BuiltinName = "__builtin_ia32_vextractf128_pd256"; break;
   9221   case Intrinsic::x86_avx_vextractf128_ps_256: BuiltinName = "__builtin_ia32_vextractf128_ps256"; break;
   9222   case Intrinsic::x86_avx_vextractf128_si_256: BuiltinName = "__builtin_ia32_vextractf128_si256"; break;
   9223   case Intrinsic::x86_avx_vinsertf128_pd_256: BuiltinName = "__builtin_ia32_vinsertf128_pd256"; break;
   9224   case Intrinsic::x86_avx_vinsertf128_ps_256: BuiltinName = "__builtin_ia32_vinsertf128_ps256"; break;
   9225   case Intrinsic::x86_avx_vinsertf128_si_256: BuiltinName = "__builtin_ia32_vinsertf128_si256"; break;
   9226   case Intrinsic::x86_avx_vperm2f128_pd_256: BuiltinName = "__builtin_ia32_vperm2f128_pd256"; break;
   9227   case Intrinsic::x86_avx_vperm2f128_ps_256: BuiltinName = "__builtin_ia32_vperm2f128_ps256"; break;
   9228   case Intrinsic::x86_avx_vperm2f128_si_256: BuiltinName = "__builtin_ia32_vperm2f128_si256"; break;
   9229   case Intrinsic::x86_avx_vpermil_pd: BuiltinName = "__builtin_ia32_vpermilpd"; break;
   9230   case Intrinsic::x86_avx_vpermil_pd_256: BuiltinName = "__builtin_ia32_vpermilpd256"; break;
   9231   case Intrinsic::x86_avx_vpermil_ps: BuiltinName = "__builtin_ia32_vpermilps"; break;
   9232   case Intrinsic::x86_avx_vpermil_ps_256: BuiltinName = "__builtin_ia32_vpermilps256"; break;
   9233   case Intrinsic::x86_avx_vpermilvar_pd: BuiltinName = "__builtin_ia32_vpermilvarpd"; break;
   9234   case Intrinsic::x86_avx_vpermilvar_pd_256: BuiltinName = "__builtin_ia32_vpermilvarpd256"; break;
   9235   case Intrinsic::x86_avx_vpermilvar_ps: BuiltinName = "__builtin_ia32_vpermilvarps"; break;
   9236   case Intrinsic::x86_avx_vpermilvar_ps_256: BuiltinName = "__builtin_ia32_vpermilvarps256"; break;
   9237   case Intrinsic::x86_avx_vtestc_pd: BuiltinName = "__builtin_ia32_vtestcpd"; break;
   9238   case Intrinsic::x86_avx_vtestc_pd_256: BuiltinName = "__builtin_ia32_vtestcpd256"; break;
   9239   case Intrinsic::x86_avx_vtestc_ps: BuiltinName = "__builtin_ia32_vtestcps"; break;
   9240   case Intrinsic::x86_avx_vtestc_ps_256: BuiltinName = "__builtin_ia32_vtestcps256"; break;
   9241   case Intrinsic::x86_avx_vtestnzc_pd: BuiltinName = "__builtin_ia32_vtestnzcpd"; break;
   9242   case Intrinsic::x86_avx_vtestnzc_pd_256: BuiltinName = "__builtin_ia32_vtestnzcpd256"; break;
   9243   case Intrinsic::x86_avx_vtestnzc_ps: BuiltinName = "__builtin_ia32_vtestnzcps"; break;
   9244   case Intrinsic::x86_avx_vtestnzc_ps_256: BuiltinName = "__builtin_ia32_vtestnzcps256"; break;
   9245   case Intrinsic::x86_avx_vtestz_pd: BuiltinName = "__builtin_ia32_vtestzpd"; break;
   9246   case Intrinsic::x86_avx_vtestz_pd_256: BuiltinName = "__builtin_ia32_vtestzpd256"; break;
   9247   case Intrinsic::x86_avx_vtestz_ps: BuiltinName = "__builtin_ia32_vtestzps"; break;
   9248   case Intrinsic::x86_avx_vtestz_ps_256: BuiltinName = "__builtin_ia32_vtestzps256"; break;
   9249   case Intrinsic::x86_avx_vzeroall: BuiltinName = "__builtin_ia32_vzeroall"; break;
   9250   case Intrinsic::x86_avx_vzeroupper: BuiltinName = "__builtin_ia32_vzeroupper"; break;
   9251   case Intrinsic::x86_mmx_emms: BuiltinName = "__builtin_ia32_emms"; break;
   9252   case Intrinsic::x86_mmx_femms: BuiltinName = "__builtin_ia32_femms"; break;
   9253   case Intrinsic::x86_mmx_maskmovq: BuiltinName = "__builtin_ia32_maskmovq"; break;
   9254   case Intrinsic::x86_mmx_movnt_dq: BuiltinName = "__builtin_ia32_movntq"; break;
   9255   case Intrinsic::x86_mmx_packssdw: BuiltinName = "__builtin_ia32_packssdw"; break;
   9256   case Intrinsic::x86_mmx_packsswb: BuiltinName = "__builtin_ia32_packsswb"; break;
   9257   case Intrinsic::x86_mmx_packuswb: BuiltinName = "__builtin_ia32_packuswb"; break;
   9258   case Intrinsic::x86_mmx_padd_b: BuiltinName = "__builtin_ia32_paddb"; break;
   9259   case Intrinsic::x86_mmx_padd_d: BuiltinName = "__builtin_ia32_paddd"; break;
   9260   case Intrinsic::x86_mmx_padd_q: BuiltinName = "__builtin_ia32_paddq"; break;
   9261   case Intrinsic::x86_mmx_padd_w: BuiltinName = "__builtin_ia32_paddw"; break;
   9262   case Intrinsic::x86_mmx_padds_b: BuiltinName = "__builtin_ia32_paddsb"; break;
   9263   case Intrinsic::x86_mmx_padds_w: BuiltinName = "__builtin_ia32_paddsw"; break;
   9264   case Intrinsic::x86_mmx_paddus_b: BuiltinName = "__builtin_ia32_paddusb"; break;
   9265   case Intrinsic::x86_mmx_paddus_w: BuiltinName = "__builtin_ia32_paddusw"; break;
   9266   case Intrinsic::x86_mmx_palignr_b: BuiltinName = "__builtin_ia32_palignr"; break;
   9267   case Intrinsic::x86_mmx_pand: BuiltinName = "__builtin_ia32_pand"; break;
   9268   case Intrinsic::x86_mmx_pandn: BuiltinName = "__builtin_ia32_pandn"; break;
   9269   case Intrinsic::x86_mmx_pavg_b: BuiltinName = "__builtin_ia32_pavgb"; break;
   9270   case Intrinsic::x86_mmx_pavg_w: BuiltinName = "__builtin_ia32_pavgw"; break;
   9271   case Intrinsic::x86_mmx_pcmpeq_b: BuiltinName = "__builtin_ia32_pcmpeqb"; break;
   9272   case Intrinsic::x86_mmx_pcmpeq_d: BuiltinName = "__builtin_ia32_pcmpeqd"; break;
   9273   case Intrinsic::x86_mmx_pcmpeq_w: BuiltinName = "__builtin_ia32_pcmpeqw"; break;
   9274   case Intrinsic::x86_mmx_pcmpgt_b: BuiltinName = "__builtin_ia32_pcmpgtb"; break;
   9275   case Intrinsic::x86_mmx_pcmpgt_d: BuiltinName = "__builtin_ia32_pcmpgtd"; break;
   9276   case Intrinsic::x86_mmx_pcmpgt_w: BuiltinName = "__builtin_ia32_pcmpgtw"; break;
   9277   case Intrinsic::x86_mmx_pextr_w: BuiltinName = "__builtin_ia32_vec_ext_v4hi"; break;
   9278   case Intrinsic::x86_mmx_pinsr_w: BuiltinName = "__builtin_ia32_vec_set_v4hi"; break;
   9279   case Intrinsic::x86_mmx_pmadd_wd: BuiltinName = "__builtin_ia32_pmaddwd"; break;
   9280   case Intrinsic::x86_mmx_pmaxs_w: BuiltinName = "__builtin_ia32_pmaxsw"; break;
   9281   case Intrinsic::x86_mmx_pmaxu_b: BuiltinName = "__builtin_ia32_pmaxub"; break;
   9282   case Intrinsic::x86_mmx_pmins_w: BuiltinName = "__builtin_ia32_pminsw"; break;
   9283   case Intrinsic::x86_mmx_pminu_b: BuiltinName = "__builtin_ia32_pminub"; break;
   9284   case Intrinsic::x86_mmx_pmovmskb: BuiltinName = "__builtin_ia32_pmovmskb"; break;
   9285   case Intrinsic::x86_mmx_pmulh_w: BuiltinName = "__builtin_ia32_pmulhw"; break;
   9286   case Intrinsic::x86_mmx_pmulhu_w: BuiltinName = "__builtin_ia32_pmulhuw"; break;
   9287   case Intrinsic::x86_mmx_pmull_w: BuiltinName = "__builtin_ia32_pmullw"; break;
   9288   case Intrinsic::x86_mmx_pmulu_dq: BuiltinName = "__builtin_ia32_pmuludq"; break;
   9289   case Intrinsic::x86_mmx_por: BuiltinName = "__builtin_ia32_por"; break;
   9290   case Intrinsic::x86_mmx_psad_bw: BuiltinName = "__builtin_ia32_psadbw"; break;
   9291   case Intrinsic::x86_mmx_psll_d: BuiltinName = "__builtin_ia32_pslld"; break;
   9292   case Intrinsic::x86_mmx_psll_q: BuiltinName = "__builtin_ia32_psllq"; break;
   9293   case Intrinsic::x86_mmx_psll_w: BuiltinName = "__builtin_ia32_psllw"; break;
   9294   case Intrinsic::x86_mmx_pslli_d: BuiltinName = "__builtin_ia32_pslldi"; break;
   9295   case Intrinsic::x86_mmx_pslli_q: BuiltinName = "__builtin_ia32_psllqi"; break;
   9296   case Intrinsic::x86_mmx_pslli_w: BuiltinName = "__builtin_ia32_psllwi"; break;
   9297   case Intrinsic::x86_mmx_psra_d: BuiltinName = "__builtin_ia32_psrad"; break;
   9298   case Intrinsic::x86_mmx_psra_w: BuiltinName = "__builtin_ia32_psraw"; break;
   9299   case Intrinsic::x86_mmx_psrai_d: BuiltinName = "__builtin_ia32_psradi"; break;
   9300   case Intrinsic::x86_mmx_psrai_w: BuiltinName = "__builtin_ia32_psrawi"; break;
   9301   case Intrinsic::x86_mmx_psrl_d: BuiltinName = "__builtin_ia32_psrld"; break;
   9302   case Intrinsic::x86_mmx_psrl_q: BuiltinName = "__builtin_ia32_psrlq"; break;
   9303   case Intrinsic::x86_mmx_psrl_w: BuiltinName = "__builtin_ia32_psrlw"; break;
   9304   case Intrinsic::x86_mmx_psrli_d: BuiltinName = "__builtin_ia32_psrldi"; break;
   9305   case Intrinsic::x86_mmx_psrli_q: BuiltinName = "__builtin_ia32_psrlqi"; break;
   9306   case Intrinsic::x86_mmx_psrli_w: BuiltinName = "__builtin_ia32_psrlwi"; break;
   9307   case Intrinsic::x86_mmx_psub_b: BuiltinName = "__builtin_ia32_psubb"; break;
   9308   case Intrinsic::x86_mmx_psub_d: BuiltinName = "__builtin_ia32_psubd"; break;
   9309   case Intrinsic::x86_mmx_psub_q: BuiltinName = "__builtin_ia32_psubq"; break;
   9310   case Intrinsic::x86_mmx_psub_w: BuiltinName = "__builtin_ia32_psubw"; break;
   9311   case Intrinsic::x86_mmx_psubs_b: BuiltinName = "__builtin_ia32_psubsb"; break;
   9312   case Intrinsic::x86_mmx_psubs_w: BuiltinName = "__builtin_ia32_psubsw"; break;
   9313   case Intrinsic::x86_mmx_psubus_b: BuiltinName = "__builtin_ia32_psubusb"; break;
   9314   case Intrinsic::x86_mmx_psubus_w: BuiltinName = "__builtin_ia32_psubusw"; break;
   9315   case Intrinsic::x86_mmx_punpckhbw: BuiltinName = "__builtin_ia32_punpckhbw"; break;
   9316   case Intrinsic::x86_mmx_punpckhdq: BuiltinName = "__builtin_ia32_punpckhdq"; break;
   9317   case Intrinsic::x86_mmx_punpckhwd: BuiltinName = "__builtin_ia32_punpckhwd"; break;
   9318   case Intrinsic::x86_mmx_punpcklbw: BuiltinName = "__builtin_ia32_punpcklbw"; break;
   9319   case Intrinsic::x86_mmx_punpckldq: BuiltinName = "__builtin_ia32_punpckldq"; break;
   9320   case Intrinsic::x86_mmx_punpcklwd: BuiltinName = "__builtin_ia32_punpcklwd"; break;
   9321   case Intrinsic::x86_mmx_pxor: BuiltinName = "__builtin_ia32_pxor"; break;
   9322   case Intrinsic::x86_sse2_add_sd: BuiltinName = "__builtin_ia32_addsd"; break;
   9323   case Intrinsic::x86_sse2_clflush: BuiltinName = "__builtin_ia32_clflush"; break;
   9324   case Intrinsic::x86_sse2_comieq_sd: BuiltinName = "__builtin_ia32_comisdeq"; break;
   9325   case Intrinsic::x86_sse2_comige_sd: BuiltinName = "__builtin_ia32_comisdge"; break;
   9326   case Intrinsic::x86_sse2_comigt_sd: BuiltinName = "__builtin_ia32_comisdgt"; break;
   9327   case Intrinsic::x86_sse2_comile_sd: BuiltinName = "__builtin_ia32_comisdle"; break;
   9328   case Intrinsic::x86_sse2_comilt_sd: BuiltinName = "__builtin_ia32_comisdlt"; break;
   9329   case Intrinsic::x86_sse2_comineq_sd: BuiltinName = "__builtin_ia32_comisdneq"; break;
   9330   case Intrinsic::x86_sse2_cvtdq2pd: BuiltinName = "__builtin_ia32_cvtdq2pd"; break;
   9331   case Intrinsic::x86_sse2_cvtdq2ps: BuiltinName = "__builtin_ia32_cvtdq2ps"; break;
   9332   case Intrinsic::x86_sse2_cvtpd2dq: BuiltinName = "__builtin_ia32_cvtpd2dq"; break;
   9333   case Intrinsic::x86_sse2_cvtpd2ps: BuiltinName = "__builtin_ia32_cvtpd2ps"; break;
   9334   case Intrinsic::x86_sse2_cvtps2dq: BuiltinName = "__builtin_ia32_cvtps2dq"; break;
   9335   case Intrinsic::x86_sse2_cvtps2pd: BuiltinName = "__builtin_ia32_cvtps2pd"; break;
   9336   case Intrinsic::x86_sse2_cvtsd2si: BuiltinName = "__builtin_ia32_cvtsd2si"; break;
   9337   case Intrinsic::x86_sse2_cvtsd2si64: BuiltinName = "__builtin_ia32_cvtsd2si64"; break;
   9338   case Intrinsic::x86_sse2_cvtsd2ss: BuiltinName = "__builtin_ia32_cvtsd2ss"; break;
   9339   case Intrinsic::x86_sse2_cvtsi2sd: BuiltinName = "__builtin_ia32_cvtsi2sd"; break;
   9340   case Intrinsic::x86_sse2_cvtsi642sd: BuiltinName = "__builtin_ia32_cvtsi642sd"; break;
   9341   case Intrinsic::x86_sse2_cvtss2sd: BuiltinName = "__builtin_ia32_cvtss2sd"; break;
   9342   case Intrinsic::x86_sse2_cvttpd2dq: BuiltinName = "__builtin_ia32_cvttpd2dq"; break;
   9343   case Intrinsic::x86_sse2_cvttps2dq: BuiltinName = "__builtin_ia32_cvttps2dq"; break;
   9344   case Intrinsic::x86_sse2_cvttsd2si: BuiltinName = "__builtin_ia32_cvttsd2si"; break;
   9345   case Intrinsic::x86_sse2_cvttsd2si64: BuiltinName = "__builtin_ia32_cvttsd2si64"; break;
   9346   case Intrinsic::x86_sse2_div_sd: BuiltinName = "__builtin_ia32_divsd"; break;
   9347   case Intrinsic::x86_sse2_lfence: BuiltinName = "__builtin_ia32_lfence"; break;
   9348   case Intrinsic::x86_sse2_maskmov_dqu: BuiltinName = "__builtin_ia32_maskmovdqu"; break;
   9349   case Intrinsic::x86_sse2_max_pd: BuiltinName = "__builtin_ia32_maxpd"; break;
   9350   case Intrinsic::x86_sse2_max_sd: BuiltinName = "__builtin_ia32_maxsd"; break;
   9351   case Intrinsic::x86_sse2_mfence: BuiltinName = "__builtin_ia32_mfence"; break;
   9352   case Intrinsic::x86_sse2_min_pd: BuiltinName = "__builtin_ia32_minpd"; break;
   9353   case Intrinsic::x86_sse2_min_sd: BuiltinName = "__builtin_ia32_minsd"; break;
   9354   case Intrinsic::x86_sse2_movmsk_pd: BuiltinName = "__builtin_ia32_movmskpd"; break;
   9355   case Intrinsic::x86_sse2_mul_sd: BuiltinName = "__builtin_ia32_mulsd"; break;
   9356   case Intrinsic::x86_sse2_packssdw_128: BuiltinName = "__builtin_ia32_packssdw128"; break;
   9357   case Intrinsic::x86_sse2_packsswb_128: BuiltinName = "__builtin_ia32_packsswb128"; break;
   9358   case Intrinsic::x86_sse2_packuswb_128: BuiltinName = "__builtin_ia32_packuswb128"; break;
   9359   case Intrinsic::x86_sse2_padds_b: BuiltinName = "__builtin_ia32_paddsb128"; break;
   9360   case Intrinsic::x86_sse2_padds_w: BuiltinName = "__builtin_ia32_paddsw128"; break;
   9361   case Intrinsic::x86_sse2_paddus_b: BuiltinName = "__builtin_ia32_paddusb128"; break;
   9362   case Intrinsic::x86_sse2_paddus_w: BuiltinName = "__builtin_ia32_paddusw128"; break;
   9363   case Intrinsic::x86_sse2_pavg_b: BuiltinName = "__builtin_ia32_pavgb128"; break;
   9364   case Intrinsic::x86_sse2_pavg_w: BuiltinName = "__builtin_ia32_pavgw128"; break;
   9365   case Intrinsic::x86_sse2_pcmpeq_b: BuiltinName = "__builtin_ia32_pcmpeqb128"; break;
   9366   case Intrinsic::x86_sse2_pcmpeq_d: BuiltinName = "__builtin_ia32_pcmpeqd128"; break;
   9367   case Intrinsic::x86_sse2_pcmpeq_w: BuiltinName = "__builtin_ia32_pcmpeqw128"; break;
   9368   case Intrinsic::x86_sse2_pcmpgt_b: BuiltinName = "__builtin_ia32_pcmpgtb128"; break;
   9369   case Intrinsic::x86_sse2_pcmpgt_d: BuiltinName = "__builtin_ia32_pcmpgtd128"; break;
   9370   case Intrinsic::x86_sse2_pcmpgt_w: BuiltinName = "__builtin_ia32_pcmpgtw128"; break;
   9371   case Intrinsic::x86_sse2_pmadd_wd: BuiltinName = "__builtin_ia32_pmaddwd128"; break;
   9372   case Intrinsic::x86_sse2_pmaxs_w: BuiltinName = "__builtin_ia32_pmaxsw128"; break;
   9373   case Intrinsic::x86_sse2_pmaxu_b: BuiltinName = "__builtin_ia32_pmaxub128"; break;
   9374   case Intrinsic::x86_sse2_pmins_w: BuiltinName = "__builtin_ia32_pminsw128"; break;
   9375   case Intrinsic::x86_sse2_pminu_b: BuiltinName = "__builtin_ia32_pminub128"; break;
   9376   case Intrinsic::x86_sse2_pmovmskb_128: BuiltinName = "__builtin_ia32_pmovmskb128"; break;
   9377   case Intrinsic::x86_sse2_pmulh_w: BuiltinName = "__builtin_ia32_pmulhw128"; break;
   9378   case Intrinsic::x86_sse2_pmulhu_w: BuiltinName = "__builtin_ia32_pmulhuw128"; break;
   9379   case Intrinsic::x86_sse2_pmulu_dq: BuiltinName = "__builtin_ia32_pmuludq128"; break;
   9380   case Intrinsic::x86_sse2_psad_bw: BuiltinName = "__builtin_ia32_psadbw128"; break;
   9381   case Intrinsic::x86_sse2_psll_d: BuiltinName = "__builtin_ia32_pslld128"; break;
   9382   case Intrinsic::x86_sse2_psll_dq: BuiltinName = "__builtin_ia32_pslldqi128"; break;
   9383   case Intrinsic::x86_sse2_psll_dq_bs: BuiltinName = "__builtin_ia32_pslldqi128_byteshift"; break;
   9384   case Intrinsic::x86_sse2_psll_q: BuiltinName = "__builtin_ia32_psllq128"; break;
   9385   case Intrinsic::x86_sse2_psll_w: BuiltinName = "__builtin_ia32_psllw128"; break;
   9386   case Intrinsic::x86_sse2_pslli_d: BuiltinName = "__builtin_ia32_pslldi128"; break;
   9387   case Intrinsic::x86_sse2_pslli_q: BuiltinName = "__builtin_ia32_psllqi128"; break;
   9388   case Intrinsic::x86_sse2_pslli_w: BuiltinName = "__builtin_ia32_psllwi128"; break;
   9389   case Intrinsic::x86_sse2_psra_d: BuiltinName = "__builtin_ia32_psrad128"; break;
   9390   case Intrinsic::x86_sse2_psra_w: BuiltinName = "__builtin_ia32_psraw128"; break;
   9391   case Intrinsic::x86_sse2_psrai_d: BuiltinName = "__builtin_ia32_psradi128"; break;
   9392   case Intrinsic::x86_sse2_psrai_w: BuiltinName = "__builtin_ia32_psrawi128"; break;
   9393   case Intrinsic::x86_sse2_psrl_d: BuiltinName = "__builtin_ia32_psrld128"; break;
   9394   case Intrinsic::x86_sse2_psrl_dq: BuiltinName = "__builtin_ia32_psrldqi128"; break;
   9395   case Intrinsic::x86_sse2_psrl_dq_bs: BuiltinName = "__builtin_ia32_psrldqi128_byteshift"; break;
   9396   case Intrinsic::x86_sse2_psrl_q: BuiltinName = "__builtin_ia32_psrlq128"; break;
   9397   case Intrinsic::x86_sse2_psrl_w: BuiltinName = "__builtin_ia32_psrlw128"; break;
   9398   case Intrinsic::x86_sse2_psrli_d: BuiltinName = "__builtin_ia32_psrldi128"; break;
   9399   case Intrinsic::x86_sse2_psrli_q: BuiltinName = "__builtin_ia32_psrlqi128"; break;
   9400   case Intrinsic::x86_sse2_psrli_w: BuiltinName = "__builtin_ia32_psrlwi128"; break;
   9401   case Intrinsic::x86_sse2_psubs_b: BuiltinName = "__builtin_ia32_psubsb128"; break;
   9402   case Intrinsic::x86_sse2_psubs_w: BuiltinName = "__builtin_ia32_psubsw128"; break;
   9403   case Intrinsic::x86_sse2_psubus_b: BuiltinName = "__builtin_ia32_psubusb128"; break;
   9404   case Intrinsic::x86_sse2_psubus_w: BuiltinName = "__builtin_ia32_psubusw128"; break;
   9405   case Intrinsic::x86_sse2_sqrt_pd: BuiltinName = "__builtin_ia32_sqrtpd"; break;
   9406   case Intrinsic::x86_sse2_sqrt_sd: BuiltinName = "__builtin_ia32_sqrtsd"; break;
   9407   case Intrinsic::x86_sse2_storel_dq: BuiltinName = "__builtin_ia32_storelv4si"; break;
   9408   case Intrinsic::x86_sse2_storeu_dq: BuiltinName = "__builtin_ia32_storedqu"; break;
   9409   case Intrinsic::x86_sse2_storeu_pd: BuiltinName = "__builtin_ia32_storeupd"; break;
   9410   case Intrinsic::x86_sse2_sub_sd: BuiltinName = "__builtin_ia32_subsd"; break;
   9411   case Intrinsic::x86_sse2_ucomieq_sd: BuiltinName = "__builtin_ia32_ucomisdeq"; break;
   9412   case Intrinsic::x86_sse2_ucomige_sd: BuiltinName = "__builtin_ia32_ucomisdge"; break;
   9413   case Intrinsic::x86_sse2_ucomigt_sd: BuiltinName = "__builtin_ia32_ucomisdgt"; break;
   9414   case Intrinsic::x86_sse2_ucomile_sd: BuiltinName = "__builtin_ia32_ucomisdle"; break;
   9415   case Intrinsic::x86_sse2_ucomilt_sd: BuiltinName = "__builtin_ia32_ucomisdlt"; break;
   9416   case Intrinsic::x86_sse2_ucomineq_sd: BuiltinName = "__builtin_ia32_ucomisdneq"; break;
   9417   case Intrinsic::x86_sse3_addsub_pd: BuiltinName = "__builtin_ia32_addsubpd"; break;
   9418   case Intrinsic::x86_sse3_addsub_ps: BuiltinName = "__builtin_ia32_addsubps"; break;
   9419   case Intrinsic::x86_sse3_hadd_pd: BuiltinName = "__builtin_ia32_haddpd"; break;
   9420   case Intrinsic::x86_sse3_hadd_ps: BuiltinName = "__builtin_ia32_haddps"; break;
   9421   case Intrinsic::x86_sse3_hsub_pd: BuiltinName = "__builtin_ia32_hsubpd"; break;
   9422   case Intrinsic::x86_sse3_hsub_ps: BuiltinName = "__builtin_ia32_hsubps"; break;
   9423   case Intrinsic::x86_sse3_ldu_dq: BuiltinName = "__builtin_ia32_lddqu"; break;
   9424   case Intrinsic::x86_sse3_monitor: BuiltinName = "__builtin_ia32_monitor"; break;
   9425   case Intrinsic::x86_sse3_mwait: BuiltinName = "__builtin_ia32_mwait"; break;
   9426   case Intrinsic::x86_sse41_blendpd: BuiltinName = "__builtin_ia32_blendpd"; break;
   9427   case Intrinsic::x86_sse41_blendps: BuiltinName = "__builtin_ia32_blendps"; break;
   9428   case Intrinsic::x86_sse41_blendvpd: BuiltinName = "__builtin_ia32_blendvpd"; break;
   9429   case Intrinsic::x86_sse41_blendvps: BuiltinName = "__builtin_ia32_blendvps"; break;
   9430   case Intrinsic::x86_sse41_dppd: BuiltinName = "__builtin_ia32_dppd"; break;
   9431   case Intrinsic::x86_sse41_dpps: BuiltinName = "__builtin_ia32_dpps"; break;
   9432   case Intrinsic::x86_sse41_extractps: BuiltinName = "__builtin_ia32_extractps128"; break;
   9433   case Intrinsic::x86_sse41_insertps: BuiltinName = "__builtin_ia32_insertps128"; break;
   9434   case Intrinsic::x86_sse41_movntdqa: BuiltinName = "__builtin_ia32_movntdqa"; break;
   9435   case Intrinsic::x86_sse41_mpsadbw: BuiltinName = "__builtin_ia32_mpsadbw128"; break;
   9436   case Intrinsic::x86_sse41_packusdw: BuiltinName = "__builtin_ia32_packusdw128"; break;
   9437   case Intrinsic::x86_sse41_pblendvb: BuiltinName = "__builtin_ia32_pblendvb128"; break;
   9438   case Intrinsic::x86_sse41_pblendw: BuiltinName = "__builtin_ia32_pblendw128"; break;
   9439   case Intrinsic::x86_sse41_pcmpeqq: BuiltinName = "__builtin_ia32_pcmpeqq"; break;
   9440   case Intrinsic::x86_sse41_phminposuw: BuiltinName = "__builtin_ia32_phminposuw128"; break;
   9441   case Intrinsic::x86_sse41_pmaxsb: BuiltinName = "__builtin_ia32_pmaxsb128"; break;
   9442   case Intrinsic::x86_sse41_pmaxsd: BuiltinName = "__builtin_ia32_pmaxsd128"; break;
   9443   case Intrinsic::x86_sse41_pmaxud: BuiltinName = "__builtin_ia32_pmaxud128"; break;
   9444   case Intrinsic::x86_sse41_pmaxuw: BuiltinName = "__builtin_ia32_pmaxuw128"; break;
   9445   case Intrinsic::x86_sse41_pminsb: BuiltinName = "__builtin_ia32_pminsb128"; break;
   9446   case Intrinsic::x86_sse41_pminsd: BuiltinName = "__builtin_ia32_pminsd128"; break;
   9447   case Intrinsic::x86_sse41_pminud: BuiltinName = "__builtin_ia32_pminud128"; break;
   9448   case Intrinsic::x86_sse41_pminuw: BuiltinName = "__builtin_ia32_pminuw128"; break;
   9449   case Intrinsic::x86_sse41_pmovsxbd: BuiltinName = "__builtin_ia32_pmovsxbd128"; break;
   9450   case Intrinsic::x86_sse41_pmovsxbq: BuiltinName = "__builtin_ia32_pmovsxbq128"; break;
   9451   case Intrinsic::x86_sse41_pmovsxbw: BuiltinName = "__builtin_ia32_pmovsxbw128"; break;
   9452   case Intrinsic::x86_sse41_pmovsxdq: BuiltinName = "__builtin_ia32_pmovsxdq128"; break;
   9453   case Intrinsic::x86_sse41_pmovsxwd: BuiltinName = "__builtin_ia32_pmovsxwd128"; break;
   9454   case Intrinsic::x86_sse41_pmovsxwq: BuiltinName = "__builtin_ia32_pmovsxwq128"; break;
   9455   case Intrinsic::x86_sse41_pmovzxbd: BuiltinName = "__builtin_ia32_pmovzxbd128"; break;
   9456   case Intrinsic::x86_sse41_pmovzxbq: BuiltinName = "__builtin_ia32_pmovzxbq128"; break;
   9457   case Intrinsic::x86_sse41_pmovzxbw: BuiltinName = "__builtin_ia32_pmovzxbw128"; break;
   9458   case Intrinsic::x86_sse41_pmovzxdq: BuiltinName = "__builtin_ia32_pmovzxdq128"; break;
   9459   case Intrinsic::x86_sse41_pmovzxwd: BuiltinName = "__builtin_ia32_pmovzxwd128"; break;
   9460   case Intrinsic::x86_sse41_pmovzxwq: BuiltinName = "__builtin_ia32_pmovzxwq128"; break;
   9461   case Intrinsic::x86_sse41_pmuldq: BuiltinName = "__builtin_ia32_pmuldq128"; break;
   9462   case Intrinsic::x86_sse41_ptestc: BuiltinName = "__builtin_ia32_ptestc128"; break;
   9463   case Intrinsic::x86_sse41_ptestnzc: BuiltinName = "__builtin_ia32_ptestnzc128"; break;
   9464   case Intrinsic::x86_sse41_ptestz: BuiltinName = "__builtin_ia32_ptestz128"; break;
   9465   case Intrinsic::x86_sse41_round_pd: BuiltinName = "__builtin_ia32_roundpd"; break;
   9466   case Intrinsic::x86_sse41_round_ps: BuiltinName = "__builtin_ia32_roundps"; break;
   9467   case Intrinsic::x86_sse41_round_sd: BuiltinName = "__builtin_ia32_roundsd"; break;
   9468   case Intrinsic::x86_sse41_round_ss: BuiltinName = "__builtin_ia32_roundss"; break;
   9469   case Intrinsic::x86_sse42_crc32_32_16: BuiltinName = "__builtin_ia32_crc32hi"; break;
   9470   case Intrinsic::x86_sse42_crc32_32_32: BuiltinName = "__builtin_ia32_crc32si"; break;
   9471   case Intrinsic::x86_sse42_crc32_32_8: BuiltinName = "__builtin_ia32_crc32qi"; break;
   9472   case Intrinsic::x86_sse42_crc32_64_64: BuiltinName = "__builtin_ia32_crc32di"; break;
   9473   case Intrinsic::x86_sse42_pcmpestri128: BuiltinName = "__builtin_ia32_pcmpestri128"; break;
   9474   case Intrinsic::x86_sse42_pcmpestria128: BuiltinName = "__builtin_ia32_pcmpestria128"; break;
   9475   case Intrinsic::x86_sse42_pcmpestric128: BuiltinName = "__builtin_ia32_pcmpestric128"; break;
   9476   case Intrinsic::x86_sse42_pcmpestrio128: BuiltinName = "__builtin_ia32_pcmpestrio128"; break;
   9477   case Intrinsic::x86_sse42_pcmpestris128: BuiltinName = "__builtin_ia32_pcmpestris128"; break;
   9478   case Intrinsic::x86_sse42_pcmpestriz128: BuiltinName = "__builtin_ia32_pcmpestriz128"; break;
   9479   case Intrinsic::x86_sse42_pcmpestrm128: BuiltinName = "__builtin_ia32_pcmpestrm128"; break;
   9480   case Intrinsic::x86_sse42_pcmpgtq: BuiltinName = "__builtin_ia32_pcmpgtq"; break;
   9481   case Intrinsic::x86_sse42_pcmpistri128: BuiltinName = "__builtin_ia32_pcmpistri128"; break;
   9482   case Intrinsic::x86_sse42_pcmpistria128: BuiltinName = "__builtin_ia32_pcmpistria128"; break;
   9483   case Intrinsic::x86_sse42_pcmpistric128: BuiltinName = "__builtin_ia32_pcmpistric128"; break;
   9484   case Intrinsic::x86_sse42_pcmpistrio128: BuiltinName = "__builtin_ia32_pcmpistrio128"; break;
   9485   case Intrinsic::x86_sse42_pcmpistris128: BuiltinName = "__builtin_ia32_pcmpistris128"; break;
   9486   case Intrinsic::x86_sse42_pcmpistriz128: BuiltinName = "__builtin_ia32_pcmpistriz128"; break;
   9487   case Intrinsic::x86_sse42_pcmpistrm128: BuiltinName = "__builtin_ia32_pcmpistrm128"; break;
   9488   case Intrinsic::x86_sse_add_ss: BuiltinName = "__builtin_ia32_addss"; break;
   9489   case Intrinsic::x86_sse_comieq_ss: BuiltinName = "__builtin_ia32_comieq"; break;
   9490   case Intrinsic::x86_sse_comige_ss: BuiltinName = "__builtin_ia32_comige"; break;
   9491   case Intrinsic::x86_sse_comigt_ss: BuiltinName = "__builtin_ia32_comigt"; break;
   9492   case Intrinsic::x86_sse_comile_ss: BuiltinName = "__builtin_ia32_comile"; break;
   9493   case Intrinsic::x86_sse_comilt_ss: BuiltinName = "__builtin_ia32_comilt"; break;
   9494   case Intrinsic::x86_sse_comineq_ss: BuiltinName = "__builtin_ia32_comineq"; break;
   9495   case Intrinsic::x86_sse_cvtpd2pi: BuiltinName = "__builtin_ia32_cvtpd2pi"; break;
   9496   case Intrinsic::x86_sse_cvtpi2pd: BuiltinName = "__builtin_ia32_cvtpi2pd"; break;
   9497   case Intrinsic::x86_sse_cvtpi2ps: BuiltinName = "__builtin_ia32_cvtpi2ps"; break;
   9498   case Intrinsic::x86_sse_cvtps2pi: BuiltinName = "__builtin_ia32_cvtps2pi"; break;
   9499   case Intrinsic::x86_sse_cvtsi2ss: BuiltinName = "__builtin_ia32_cvtsi2ss"; break;
   9500   case Intrinsic::x86_sse_cvtsi642ss: BuiltinName = "__builtin_ia32_cvtsi642ss"; break;
   9501   case Intrinsic::x86_sse_cvtss2si: BuiltinName = "__builtin_ia32_cvtss2si"; break;
   9502   case Intrinsic::x86_sse_cvtss2si64: BuiltinName = "__builtin_ia32_cvtss2si64"; break;
   9503   case Intrinsic::x86_sse_cvttpd2pi: BuiltinName = "__builtin_ia32_cvttpd2pi"; break;
   9504   case Intrinsic::x86_sse_cvttps2pi: BuiltinName = "__builtin_ia32_cvttps2pi"; break;
   9505   case Intrinsic::x86_sse_cvttss2si: BuiltinName = "__builtin_ia32_cvttss2si"; break;
   9506   case Intrinsic::x86_sse_cvttss2si64: BuiltinName = "__builtin_ia32_cvttss2si64"; break;
   9507   case Intrinsic::x86_sse_div_ss: BuiltinName = "__builtin_ia32_divss"; break;
   9508   case Intrinsic::x86_sse_max_ps: BuiltinName = "__builtin_ia32_maxps"; break;
   9509   case Intrinsic::x86_sse_max_ss: BuiltinName = "__builtin_ia32_maxss"; break;
   9510   case Intrinsic::x86_sse_min_ps: BuiltinName = "__builtin_ia32_minps"; break;
   9511   case Intrinsic::x86_sse_min_ss: BuiltinName = "__builtin_ia32_minss"; break;
   9512   case Intrinsic::x86_sse_movmsk_ps: BuiltinName = "__builtin_ia32_movmskps"; break;
   9513   case Intrinsic::x86_sse_mul_ss: BuiltinName = "__builtin_ia32_mulss"; break;
   9514   case Intrinsic::x86_sse_pshuf_w: BuiltinName = "__builtin_ia32_pshufw"; break;
   9515   case Intrinsic::x86_sse_rcp_ps: BuiltinName = "__builtin_ia32_rcpps"; break;
   9516   case Intrinsic::x86_sse_rcp_ss: BuiltinName = "__builtin_ia32_rcpss"; break;
   9517   case Intrinsic::x86_sse_rsqrt_ps: BuiltinName = "__builtin_ia32_rsqrtps"; break;
   9518   case Intrinsic::x86_sse_rsqrt_ss: BuiltinName = "__builtin_ia32_rsqrtss"; break;
   9519   case Intrinsic::x86_sse_sfence: BuiltinName = "__builtin_ia32_sfence"; break;
   9520   case Intrinsic::x86_sse_sqrt_ps: BuiltinName = "__builtin_ia32_sqrtps"; break;
   9521   case Intrinsic::x86_sse_sqrt_ss: BuiltinName = "__builtin_ia32_sqrtss"; break;
   9522   case Intrinsic::x86_sse_storeu_ps: BuiltinName = "__builtin_ia32_storeups"; break;
   9523   case Intrinsic::x86_sse_sub_ss: BuiltinName = "__builtin_ia32_subss"; break;
   9524   case Intrinsic::x86_sse_ucomieq_ss: BuiltinName = "__builtin_ia32_ucomieq"; break;
   9525   case Intrinsic::x86_sse_ucomige_ss: BuiltinName = "__builtin_ia32_ucomige"; break;
   9526   case Intrinsic::x86_sse_ucomigt_ss: BuiltinName = "__builtin_ia32_ucomigt"; break;
   9527   case Intrinsic::x86_sse_ucomile_ss: BuiltinName = "__builtin_ia32_ucomile"; break;
   9528   case Intrinsic::x86_sse_ucomilt_ss: BuiltinName = "__builtin_ia32_ucomilt"; break;
   9529   case Intrinsic::x86_sse_ucomineq_ss: BuiltinName = "__builtin_ia32_ucomineq"; break;
   9530   case Intrinsic::x86_ssse3_pabs_b: BuiltinName = "__builtin_ia32_pabsb"; break;
   9531   case Intrinsic::x86_ssse3_pabs_b_128: BuiltinName = "__builtin_ia32_pabsb128"; break;
   9532   case Intrinsic::x86_ssse3_pabs_d: BuiltinName = "__builtin_ia32_pabsd"; break;
   9533   case Intrinsic::x86_ssse3_pabs_d_128: BuiltinName = "__builtin_ia32_pabsd128"; break;
   9534   case Intrinsic::x86_ssse3_pabs_w: BuiltinName = "__builtin_ia32_pabsw"; break;
   9535   case Intrinsic::x86_ssse3_pabs_w_128: BuiltinName = "__builtin_ia32_pabsw128"; break;
   9536   case Intrinsic::x86_ssse3_phadd_d: BuiltinName = "__builtin_ia32_phaddd"; break;
   9537   case Intrinsic::x86_ssse3_phadd_d_128: BuiltinName = "__builtin_ia32_phaddd128"; break;
   9538   case Intrinsic::x86_ssse3_phadd_sw: BuiltinName = "__builtin_ia32_phaddsw"; break;
   9539   case Intrinsic::x86_ssse3_phadd_sw_128: BuiltinName = "__builtin_ia32_phaddsw128"; break;
   9540   case Intrinsic::x86_ssse3_phadd_w: BuiltinName = "__builtin_ia32_phaddw"; break;
   9541   case Intrinsic::x86_ssse3_phadd_w_128: BuiltinName = "__builtin_ia32_phaddw128"; break;
   9542   case Intrinsic::x86_ssse3_phsub_d: BuiltinName = "__builtin_ia32_phsubd"; break;
   9543   case Intrinsic::x86_ssse3_phsub_d_128: BuiltinName = "__builtin_ia32_phsubd128"; break;
   9544   case Intrinsic::x86_ssse3_phsub_sw: BuiltinName = "__builtin_ia32_phsubsw"; break;
   9545   case Intrinsic::x86_ssse3_phsub_sw_128: BuiltinName = "__builtin_ia32_phsubsw128"; break;
   9546   case Intrinsic::x86_ssse3_phsub_w: BuiltinName = "__builtin_ia32_phsubw"; break;
   9547   case Intrinsic::x86_ssse3_phsub_w_128: BuiltinName = "__builtin_ia32_phsubw128"; break;
   9548   case Intrinsic::x86_ssse3_pmadd_ub_sw: BuiltinName = "__builtin_ia32_pmaddubsw"; break;
   9549   case Intrinsic::x86_ssse3_pmadd_ub_sw_128: BuiltinName = "__builtin_ia32_pmaddubsw128"; break;
   9550   case Intrinsic::x86_ssse3_pmul_hr_sw: BuiltinName = "__builtin_ia32_pmulhrsw"; break;
   9551   case Intrinsic::x86_ssse3_pmul_hr_sw_128: BuiltinName = "__builtin_ia32_pmulhrsw128"; break;
   9552   case Intrinsic::x86_ssse3_pshuf_b: BuiltinName = "__builtin_ia32_pshufb"; break;
   9553   case Intrinsic::x86_ssse3_pshuf_b_128: BuiltinName = "__builtin_ia32_pshufb128"; break;
   9554   case Intrinsic::x86_ssse3_psign_b: BuiltinName = "__builtin_ia32_psignb"; break;
   9555   case Intrinsic::x86_ssse3_psign_b_128: BuiltinName = "__builtin_ia32_psignb128"; break;
   9556   case Intrinsic::x86_ssse3_psign_d: BuiltinName = "__builtin_ia32_psignd"; break;
   9557   case Intrinsic::x86_ssse3_psign_d_128: BuiltinName = "__builtin_ia32_psignd128"; break;
   9558   case Intrinsic::x86_ssse3_psign_w: BuiltinName = "__builtin_ia32_psignw"; break;
   9559   case Intrinsic::x86_ssse3_psign_w_128: BuiltinName = "__builtin_ia32_psignw128"; break;
   9560   }
   9561 #endif
   9562 
   9563 // Get the LLVM intrinsic that corresponds to a GCC builtin.
   9564 // This is used by the C front-end.  The GCC builtin name is passed
   9565 // in as BuiltinName, and a target prefix (e.g. 'ppc') is passed
   9566 // in as TargetPrefix.  The result is assigned to 'IntrinsicID'.
   9567 #ifdef GET_LLVM_INTRINSIC_FOR_GCC_BUILTIN
   9568 Intrinsic::ID Intrinsic::getIntrinsicForGCCBuiltin(const char *TargetPrefixStr, const char *BuiltinNameStr) {
   9569   StringRef BuiltinName(BuiltinNameStr);
   9570   StringRef TargetPrefix(TargetPrefixStr);
   9571 
   9572   /* Target Independent Builtins */ {
   9573   switch (BuiltinName.size()) {
   9574   default: break;
   9575   case 14:	 // 3 strings to match.
   9576     if (BuiltinName.substr(0, 2) != "__")
   9577       break;
   9578     switch (BuiltinName[2]) {
   9579     default: break;
   9580     case 'b':	 // 1 string to match.
   9581       if (BuiltinName.substr(3, 11) != "uiltin_trap")
   9582         break;
   9583       return Intrinsic::trap;	 // "__builtin_trap"
   9584     case 'g':	 // 2 strings to match.
   9585       if (BuiltinName.substr(3, 3) != "nu_")
   9586         break;
   9587       switch (BuiltinName[6]) {
   9588       default: break;
   9589       case 'f':	 // 1 string to match.
   9590         if (BuiltinName.substr(7, 7) != "2h_ieee")
   9591           break;
   9592         return Intrinsic::convert_to_fp16;	 // "__gnu_f2h_ieee"
   9593       case 'h':	 // 1 string to match.
   9594         if (BuiltinName.substr(7, 7) != "2f_ieee")
   9595           break;
   9596         return Intrinsic::convert_from_fp16;	 // "__gnu_h2f_ieee"
   9597       }
   9598       break;
   9599     }
   9600     break;
   9601   case 20:	 // 2 strings to match.
   9602     if (BuiltinName.substr(0, 10) != "__builtin_")
   9603       break;
   9604     switch (BuiltinName[10]) {
   9605     default: break;
   9606     case 'f':	 // 1 string to match.
   9607       if (BuiltinName.substr(11, 9) != "lt_rounds")
   9608         break;
   9609       return Intrinsic::flt_rounds;	 // "__builtin_flt_rounds"
   9610     case 's':	 // 1 string to match.
   9611       if (BuiltinName.substr(11, 9) != "tack_save")
   9612         break;
   9613       return Intrinsic::stacksave;	 // "__builtin_stack_save"
   9614     }
   9615     break;
   9616   case 21:	 // 2 strings to match.
   9617     if (BuiltinName.substr(0, 10) != "__builtin_")
   9618       break;
   9619     switch (BuiltinName[10]) {
   9620     default: break;
   9621     case 'o':	 // 1 string to match.
   9622       if (BuiltinName.substr(11, 10) != "bject_size")
   9623         break;
   9624       return Intrinsic::objectsize;	 // "__builtin_object_size"
   9625     case 'u':	 // 1 string to match.
   9626       if (BuiltinName.substr(11, 10) != "nwind_init")
   9627         break;
   9628       return Intrinsic::eh_unwind_init;	 // "__builtin_unwind_init"
   9629     }
   9630     break;
   9631   case 23:	 // 1 string to match.
   9632     if (BuiltinName.substr(0, 23) != "__builtin_stack_restore")
   9633       break;
   9634     return Intrinsic::stackrestore;	 // "__builtin_stack_restore"
   9635   case 25:	 // 1 string to match.
   9636     if (BuiltinName.substr(0, 25) != "__builtin_init_trampoline")
   9637       break;
   9638     return Intrinsic::init_trampoline;	 // "__builtin_init_trampoline"
   9639   case 27:	 // 1 string to match.
   9640     if (BuiltinName.substr(0, 27) != "__builtin_adjust_trampoline")
   9641       break;
   9642     return Intrinsic::adjust_trampoline;	 // "__builtin_adjust_trampoline"
   9643   }
   9644   }
   9645   if (TargetPrefix == "x86") {
   9646   switch (BuiltinName.size()) {
   9647   default: break;
   9648   case 18:	 // 1 string to match.
   9649     if (BuiltinName.substr(0, 18) != "__builtin_ia32_por")
   9650       break;
   9651     return Intrinsic::x86_mmx_por;	 // "__builtin_ia32_por"
   9652   case 19:	 // 5 strings to match.
   9653     if (BuiltinName.substr(0, 15) != "__builtin_ia32_")
   9654       break;
   9655     switch (BuiltinName[15]) {
   9656     default: break;
   9657     case 'd':	 // 2 strings to match.
   9658       if (BuiltinName.substr(16, 2) != "pp")
   9659         break;
   9660       switch (BuiltinName[18]) {
   9661       default: break;
   9662       case 'd':	 // 1 string to match.
   9663         return Intrinsic::x86_sse41_dppd;	 // "__builtin_ia32_dppd"
   9664       case 's':	 // 1 string to match.
   9665         return Intrinsic::x86_sse41_dpps;	 // "__builtin_ia32_dpps"
   9666       }
   9667       break;
   9668     case 'e':	 // 1 string to match.
   9669       if (BuiltinName.substr(16, 3) != "mms")
   9670         break;
   9671       return Intrinsic::x86_mmx_emms;	 // "__builtin_ia32_emms"
   9672     case 'p':	 // 2 strings to match.
   9673       switch (BuiltinName[16]) {
   9674       default: break;
   9675       case 'a':	 // 1 string to match.
   9676         if (BuiltinName.substr(17, 2) != "nd")
   9677           break;
   9678         return Intrinsic::x86_mmx_pand;	 // "__builtin_ia32_pand"
   9679       case 'x':	 // 1 string to match.
   9680         if (BuiltinName.substr(17, 2) != "or")
   9681           break;
   9682         return Intrinsic::x86_mmx_pxor;	 // "__builtin_ia32_pxor"
   9683       }
   9684       break;
   9685     }
   9686     break;
   9687   case 20:	 // 54 strings to match.
   9688     if (BuiltinName.substr(0, 15) != "__builtin_ia32_")
   9689       break;
   9690     switch (BuiltinName[15]) {
   9691     default: break;
   9692     case 'a':	 // 2 strings to match.
   9693       if (BuiltinName.substr(16, 3) != "dds")
   9694         break;
   9695       switch (BuiltinName[19]) {
   9696       default: break;
   9697       case 'd':	 // 1 string to match.
   9698         return Intrinsic::x86_sse2_add_sd;	 // "__builtin_ia32_addsd"
   9699       case 's':	 // 1 string to match.
   9700         return Intrinsic::x86_sse_add_ss;	 // "__builtin_ia32_addss"
   9701       }
   9702       break;
   9703     case 'd':	 // 2 strings to match.
   9704       if (BuiltinName.substr(16, 3) != "ivs")
   9705         break;
   9706       switch (BuiltinName[19]) {
   9707       default: break;
   9708       case 'd':	 // 1 string to match.
   9709         return Intrinsic::x86_sse2_div_sd;	 // "__builtin_ia32_divsd"
   9710       case 's':	 // 1 string to match.
   9711         return Intrinsic::x86_sse_div_ss;	 // "__builtin_ia32_divss"
   9712       }
   9713       break;
   9714     case 'f':	 // 1 string to match.
   9715       if (BuiltinName.substr(16, 4) != "emms")
   9716         break;
   9717       return Intrinsic::x86_mmx_femms;	 // "__builtin_ia32_femms"
   9718     case 'l':	 // 1 string to match.
   9719       if (BuiltinName.substr(16, 4) != "ddqu")
   9720         break;
   9721       return Intrinsic::x86_sse3_ldu_dq;	 // "__builtin_ia32_lddqu"
   9722     case 'm':	 // 11 strings to match.
   9723       switch (BuiltinName[16]) {
   9724       default: break;
   9725       case 'a':	 // 4 strings to match.
   9726         if (BuiltinName[17] != 'x')
   9727           break;
   9728         switch (BuiltinName[18]) {
   9729         default: break;
   9730         case 'p':	 // 2 strings to match.
   9731           switch (BuiltinName[19]) {
   9732           default: break;
   9733           case 'd':	 // 1 string to match.
   9734             return Intrinsic::x86_sse2_max_pd;	 // "__builtin_ia32_maxpd"
   9735           case 's':	 // 1 string to match.
   9736             return Intrinsic::x86_sse_max_ps;	 // "__builtin_ia32_maxps"
   9737           }
   9738           break;
   9739         case 's':	 // 2 strings to match.
   9740           switch (BuiltinName[19]) {
   9741           default: break;
   9742           case 'd':	 // 1 string to match.
   9743             return Intrinsic::x86_sse2_max_sd;	 // "__builtin_ia32_maxsd"
   9744           case 's':	 // 1 string to match.
   9745             return Intrinsic::x86_sse_max_ss;	 // "__builtin_ia32_maxss"
   9746           }
   9747           break;
   9748         }
   9749         break;
   9750       case 'i':	 // 4 strings to match.
   9751         if (BuiltinName[17] != 'n')
   9752           break;
   9753         switch (BuiltinName[18]) {
   9754         default: break;
   9755         case 'p':	 // 2 strings to match.
   9756           switch (BuiltinName[19]) {
   9757           default: break;
   9758           case 'd':	 // 1 string to match.
   9759             return Intrinsic::x86_sse2_min_pd;	 // "__builtin_ia32_minpd"
   9760           case 's':	 // 1 string to match.
   9761             return Intrinsic::x86_sse_min_ps;	 // "__builtin_ia32_minps"
   9762           }
   9763           break;
   9764         case 's':	 // 2 strings to match.
   9765           switch (BuiltinName[19]) {
   9766           default: break;
   9767           case 'd':	 // 1 string to match.
   9768             return Intrinsic::x86_sse2_min_sd;	 // "__builtin_ia32_minsd"
   9769           case 's':	 // 1 string to match.
   9770             return Intrinsic::x86_sse_min_ss;	 // "__builtin_ia32_minss"
   9771           }
   9772           break;
   9773         }
   9774         break;
   9775       case 'u':	 // 2 strings to match.
   9776         if (BuiltinName.substr(17, 2) != "ls")
   9777           break;
   9778         switch (BuiltinName[19]) {
   9779         default: break;
   9780         case 'd':	 // 1 string to match.
   9781           return Intrinsic::x86_sse2_mul_sd;	 // "__builtin_ia32_mulsd"
   9782         case 's':	 // 1 string to match.
   9783           return Intrinsic::x86_sse_mul_ss;	 // "__builtin_ia32_mulss"
   9784         }
   9785         break;
   9786       case 'w':	 // 1 string to match.
   9787         if (BuiltinName.substr(17, 3) != "ait")
   9788           break;
   9789         return Intrinsic::x86_sse3_mwait;	 // "__builtin_ia32_mwait"
   9790       }
   9791       break;
   9792     case 'p':	 // 33 strings to match.
   9793       switch (BuiltinName[16]) {
   9794       default: break;
   9795       case 'a':	 // 10 strings to match.
   9796         switch (BuiltinName[17]) {
   9797         default: break;
   9798         case 'b':	 // 3 strings to match.
   9799           if (BuiltinName[18] != 's')
   9800             break;
   9801           switch (BuiltinName[19]) {
   9802           default: break;
   9803           case 'b':	 // 1 string to match.
   9804             return Intrinsic::x86_ssse3_pabs_b;	 // "__builtin_ia32_pabsb"
   9805           case 'd':	 // 1 string to match.
   9806             return Intrinsic::x86_ssse3_pabs_d;	 // "__builtin_ia32_pabsd"
   9807           case 'w':	 // 1 string to match.
   9808             return Intrinsic::x86_ssse3_pabs_w;	 // "__builtin_ia32_pabsw"
   9809           }
   9810           break;
   9811         case 'd':	 // 4 strings to match.
   9812           if (BuiltinName[18] != 'd')
   9813             break;
   9814           switch (BuiltinName[19]) {
   9815           default: break;
   9816           case 'b':	 // 1 string to match.
   9817             return Intrinsic::x86_mmx_padd_b;	 // "__builtin_ia32_paddb"
   9818           case 'd':	 // 1 string to match.
   9819             return Intrinsic::x86_mmx_padd_d;	 // "__builtin_ia32_paddd"
   9820           case 'q':	 // 1 string to match.
   9821             return Intrinsic::x86_mmx_padd_q;	 // "__builtin_ia32_paddq"
   9822           case 'w':	 // 1 string to match.
   9823             return Intrinsic::x86_mmx_padd_w;	 // "__builtin_ia32_paddw"
   9824           }
   9825           break;
   9826         case 'n':	 // 1 string to match.
   9827           if (BuiltinName.substr(18, 2) != "dn")
   9828             break;
   9829           return Intrinsic::x86_mmx_pandn;	 // "__builtin_ia32_pandn"
   9830         case 'v':	 // 2 strings to match.
   9831           if (BuiltinName[18] != 'g')
   9832             break;
   9833           switch (BuiltinName[19]) {
   9834           default: break;
   9835           case 'b':	 // 1 string to match.
   9836             return Intrinsic::x86_mmx_pavg_b;	 // "__builtin_ia32_pavgb"
   9837           case 'w':	 // 1 string to match.
   9838             return Intrinsic::x86_mmx_pavg_w;	 // "__builtin_ia32_pavgw"
   9839           }
   9840           break;
   9841         }
   9842         break;
   9843       case 'f':	 // 9 strings to match.
   9844         switch (BuiltinName[17]) {
   9845         default: break;
   9846         case '2':	 // 2 strings to match.
   9847           if (BuiltinName[18] != 'i')
   9848             break;
   9849           switch (BuiltinName[19]) {
   9850           default: break;
   9851           case 'd':	 // 1 string to match.
   9852             return Intrinsic::x86_3dnow_pf2id;	 // "__builtin_ia32_pf2id"
   9853           case 'w':	 // 1 string to match.
   9854             return Intrinsic::x86_3dnowa_pf2iw;	 // "__builtin_ia32_pf2iw"
   9855           }
   9856           break;
   9857         case 'a':	 // 2 strings to match.
   9858           switch (BuiltinName[18]) {
   9859           default: break;
   9860           case 'c':	 // 1 string to match.
   9861             if (BuiltinName[19] != 'c')
   9862               break;
   9863             return Intrinsic::x86_3dnow_pfacc;	 // "__builtin_ia32_pfacc"
   9864           case 'd':	 // 1 string to match.
   9865             if (BuiltinName[19] != 'd')
   9866               break;
   9867             return Intrinsic::x86_3dnow_pfadd;	 // "__builtin_ia32_pfadd"
   9868           }
   9869           break;
   9870         case 'm':	 // 3 strings to match.
   9871           switch (BuiltinName[18]) {
   9872           default: break;
   9873           case 'a':	 // 1 string to match.
   9874             if (BuiltinName[19] != 'x')
   9875               break;
   9876             return Intrinsic::x86_3dnow_pfmax;	 // "__builtin_ia32_pfmax"
   9877           case 'i':	 // 1 string to match.
   9878             if (BuiltinName[19] != 'n')
   9879               break;
   9880             return Intrinsic::x86_3dnow_pfmin;	 // "__builtin_ia32_pfmin"
   9881           case 'u':	 // 1 string to match.
   9882             if (BuiltinName[19] != 'l')
   9883               break;
   9884             return Intrinsic::x86_3dnow_pfmul;	 // "__builtin_ia32_pfmul"
   9885           }
   9886           break;
   9887         case 'r':	 // 1 string to match.
   9888           if (BuiltinName.substr(18, 2) != "cp")
   9889             break;
   9890           return Intrinsic::x86_3dnow_pfrcp;	 // "__builtin_ia32_pfrcp"
   9891         case 's':	 // 1 string to match.
   9892           if (BuiltinName.substr(18, 2) != "ub")
   9893             break;
   9894           return Intrinsic::x86_3dnow_pfsub;	 // "__builtin_ia32_pfsub"
   9895         }
   9896         break;
   9897       case 'i':	 // 2 strings to match.
   9898         if (BuiltinName.substr(17, 2) != "2f")
   9899           break;
   9900         switch (BuiltinName[19]) {
   9901         default: break;
   9902         case 'd':	 // 1 string to match.
   9903           return Intrinsic::x86_3dnow_pi2fd;	 // "__builtin_ia32_pi2fd"
   9904         case 'w':	 // 1 string to match.
   9905           return Intrinsic::x86_3dnowa_pi2fw;	 // "__builtin_ia32_pi2fw"
   9906         }
   9907         break;
   9908       case 's':	 // 12 strings to match.
   9909         switch (BuiltinName[17]) {
   9910         default: break;
   9911         case 'l':	 // 3 strings to match.
   9912           if (BuiltinName[18] != 'l')
   9913             break;
   9914           switch (BuiltinName[19]) {
   9915           default: break;
   9916           case 'd':	 // 1 string to match.
   9917             return Intrinsic::x86_mmx_psll_d;	 // "__builtin_ia32_pslld"
   9918           case 'q':	 // 1 string to match.
   9919             return Intrinsic::x86_mmx_psll_q;	 // "__builtin_ia32_psllq"
   9920           case 'w':	 // 1 string to match.
   9921             return Intrinsic::x86_mmx_psll_w;	 // "__builtin_ia32_psllw"
   9922           }
   9923           break;
   9924         case 'r':	 // 5 strings to match.
   9925           switch (BuiltinName[18]) {
   9926           default: break;
   9927           case 'a':	 // 2 strings to match.
   9928             switch (BuiltinName[19]) {
   9929             default: break;
   9930             case 'd':	 // 1 string to match.
   9931               return Intrinsic::x86_mmx_psra_d;	 // "__builtin_ia32_psrad"
   9932             case 'w':	 // 1 string to match.
   9933               return Intrinsic::x86_mmx_psra_w;	 // "__builtin_ia32_psraw"
   9934             }
   9935             break;
   9936           case 'l':	 // 3 strings to match.
   9937             switch (BuiltinName[19]) {
   9938             default: break;
   9939             case 'd':	 // 1 string to match.
   9940               return Intrinsic::x86_mmx_psrl_d;	 // "__builtin_ia32_psrld"
   9941             case 'q':	 // 1 string to match.
   9942               return Intrinsic::x86_mmx_psrl_q;	 // "__builtin_ia32_psrlq"
   9943             case 'w':	 // 1 string to match.
   9944               return Intrinsic::x86_mmx_psrl_w;	 // "__builtin_ia32_psrlw"
   9945             }
   9946             break;
   9947           }
   9948           break;
   9949         case 'u':	 // 4 strings to match.
   9950           if (BuiltinName[18] != 'b')
   9951             break;
   9952           switch (BuiltinName[19]) {
   9953           default: break;
   9954           case 'b':	 // 1 string to match.
   9955             return Intrinsic::x86_mmx_psub_b;	 // "__builtin_ia32_psubb"
   9956           case 'd':	 // 1 string to match.
   9957             return Intrinsic::x86_mmx_psub_d;	 // "__builtin_ia32_psubd"
   9958           case 'q':	 // 1 string to match.
   9959             return Intrinsic::x86_mmx_psub_q;	 // "__builtin_ia32_psubq"
   9960           case 'w':	 // 1 string to match.
   9961             return Intrinsic::x86_mmx_psub_w;	 // "__builtin_ia32_psubw"
   9962           }
   9963           break;
   9964         }
   9965         break;
   9966       }
   9967       break;
   9968     case 'r':	 // 2 strings to match.
   9969       if (BuiltinName.substr(16, 2) != "cp")
   9970         break;
   9971       switch (BuiltinName[18]) {
   9972       default: break;
   9973       case 'p':	 // 1 string to match.
   9974         if (BuiltinName[19] != 's')
   9975           break;
   9976         return Intrinsic::x86_sse_rcp_ps;	 // "__builtin_ia32_rcpps"
   9977       case 's':	 // 1 string to match.
   9978         if (BuiltinName[19] != 's')
   9979           break;
   9980         return Intrinsic::x86_sse_rcp_ss;	 // "__builtin_ia32_rcpss"
   9981       }
   9982       break;
   9983     case 's':	 // 2 strings to match.
   9984       if (BuiltinName.substr(16, 3) != "ubs")
   9985         break;
   9986       switch (BuiltinName[19]) {
   9987       default: break;
   9988       case 'd':	 // 1 string to match.
   9989         return Intrinsic::x86_sse2_sub_sd;	 // "__builtin_ia32_subsd"
   9990       case 's':	 // 1 string to match.
   9991         return Intrinsic::x86_sse_sub_ss;	 // "__builtin_ia32_subss"
   9992       }
   9993       break;
   9994     }
   9995     break;
   9996   case 21:	 // 47 strings to match.
   9997     if (BuiltinName.substr(0, 15) != "__builtin_ia32_")
   9998       break;
   9999     switch (BuiltinName[15]) {
   10000     default: break;
   10001     case 'c':	 // 5 strings to match.
   10002       if (BuiltinName.substr(16, 3) != "omi")
   10003         break;
   10004       switch (BuiltinName[19]) {
   10005       default: break;
   10006       case 'e':	 // 1 string to match.
   10007         if (BuiltinName[20] != 'q')
   10008           break;
   10009         return Intrinsic::x86_sse_comieq_ss;	 // "__builtin_ia32_comieq"
   10010       case 'g':	 // 2 strings to match.
   10011         switch (BuiltinName[20]) {
   10012         default: break;
   10013         case 'e':	 // 1 string to match.
   10014           return Intrinsic::x86_sse_comige_ss;	 // "__builtin_ia32_comige"
   10015         case 't':	 // 1 string to match.
   10016           return Intrinsic::x86_sse_comigt_ss;	 // "__builtin_ia32_comigt"
   10017         }
   10018         break;
   10019       case 'l':	 // 2 strings to match.
   10020         switch (BuiltinName[20]) {
   10021         default: break;
   10022         case 'e':	 // 1 string to match.
   10023           return Intrinsic::x86_sse_comile_ss;	 // "__builtin_ia32_comile"
   10024         case 't':	 // 1 string to match.
   10025           return Intrinsic::x86_sse_comilt_ss;	 // "__builtin_ia32_comilt"
   10026         }
   10027         break;
   10028       }
   10029       break;
   10030     case 'h':	 // 4 strings to match.
   10031       switch (BuiltinName[16]) {
   10032       default: break;
   10033       case 'a':	 // 2 strings to match.
   10034         if (BuiltinName.substr(17, 3) != "ddp")
   10035           break;
   10036         switch (BuiltinName[20]) {
   10037         default: break;
   10038         case 'd':	 // 1 string to match.
   10039           return Intrinsic::x86_sse3_hadd_pd;	 // "__builtin_ia32_haddpd"
   10040         case 's':	 // 1 string to match.
   10041           return Intrinsic::x86_sse3_hadd_ps;	 // "__builtin_ia32_haddps"
   10042         }
   10043         break;
   10044       case 's':	 // 2 strings to match.
   10045         if (BuiltinName.substr(17, 3) != "ubp")
   10046           break;
   10047         switch (BuiltinName[20]) {
   10048         default: break;
   10049         case 'd':	 // 1 string to match.
   10050           return Intrinsic::x86_sse3_hsub_pd;	 // "__builtin_ia32_hsubpd"
   10051         case 's':	 // 1 string to match.
   10052           return Intrinsic::x86_sse3_hsub_ps;	 // "__builtin_ia32_hsubps"
   10053         }
   10054         break;
   10055       }
   10056       break;
   10057     case 'l':	 // 1 string to match.
   10058       if (BuiltinName.substr(16, 5) != "fence")
   10059         break;
   10060       return Intrinsic::x86_sse2_lfence;	 // "__builtin_ia32_lfence"
   10061     case 'm':	 // 2 strings to match.
   10062       switch (BuiltinName[16]) {
   10063       default: break;
   10064       case 'f':	 // 1 string to match.
   10065         if (BuiltinName.substr(17, 4) != "ence")
   10066           break;
   10067         return Intrinsic::x86_sse2_mfence;	 // "__builtin_ia32_mfence"
   10068       case 'o':	 // 1 string to match.
   10069         if (BuiltinName.substr(17, 4) != "vntq")
   10070           break;
   10071         return Intrinsic::x86_mmx_movnt_dq;	 // "__builtin_ia32_movntq"
   10072       }
   10073       break;
   10074     case 'p':	 // 30 strings to match.
   10075       switch (BuiltinName[16]) {
   10076       default: break;
   10077       case 'a':	 // 2 strings to match.
   10078         if (BuiltinName.substr(17, 3) != "dds")
   10079           break;
   10080         switch (BuiltinName[20]) {
   10081         default: break;
   10082         case 'b':	 // 1 string to match.
   10083           return Intrinsic::x86_mmx_padds_b;	 // "__builtin_ia32_paddsb"
   10084         case 'w':	 // 1 string to match.
   10085           return Intrinsic::x86_mmx_padds_w;	 // "__builtin_ia32_paddsw"
   10086         }
   10087         break;
   10088       case 'f':	 // 2 strings to match.
   10089         switch (BuiltinName[17]) {
   10090         default: break;
   10091         case 'n':	 // 1 string to match.
   10092           if (BuiltinName.substr(18, 3) != "acc")
   10093             break;
   10094           return Intrinsic::x86_3dnowa_pfnacc;	 // "__builtin_ia32_pfnacc"
   10095         case 's':	 // 1 string to match.
   10096           if (BuiltinName.substr(18, 3) != "ubr")
   10097             break;
   10098           return Intrinsic::x86_3dnow_pfsubr;	 // "__builtin_ia32_pfsubr"
   10099         }
   10100         break;
   10101       case 'h':	 // 4 strings to match.
   10102         switch (BuiltinName[17]) {
   10103         default: break;
   10104         case 'a':	 // 2 strings to match.
   10105           if (BuiltinName.substr(18, 2) != "dd")
   10106             break;
   10107           switch (BuiltinName[20]) {
   10108           default: break;
   10109           case 'd':	 // 1 string to match.
   10110             return Intrinsic::x86_ssse3_phadd_d;	 // "__builtin_ia32_phaddd"
   10111           case 'w':	 // 1 string to match.
   10112             return Intrinsic::x86_ssse3_phadd_w;	 // "__builtin_ia32_phaddw"
   10113           }
   10114           break;
   10115         case 's':	 // 2 strings to match.
   10116           if (BuiltinName.substr(18, 2) != "ub")
   10117             break;
   10118           switch (BuiltinName[20]) {
   10119           default: break;
   10120           case 'd':	 // 1 string to match.
   10121             return Intrinsic::x86_ssse3_phsub_d;	 // "__builtin_ia32_phsubd"
   10122           case 'w':	 // 1 string to match.
   10123             return Intrinsic::x86_ssse3_phsub_w;	 // "__builtin_ia32_phsubw"
   10124           }
   10125           break;
   10126         }
   10127         break;
   10128       case 'm':	 // 6 strings to match.
   10129         switch (BuiltinName[17]) {
   10130         default: break;
   10131         case 'a':	 // 2 strings to match.
   10132           if (BuiltinName[18] != 'x')
   10133             break;
   10134           switch (BuiltinName[19]) {
   10135           default: break;
   10136           case 's':	 // 1 string to match.
   10137             if (BuiltinName[20] != 'w')
   10138               break;
   10139             return Intrinsic::x86_mmx_pmaxs_w;	 // "__builtin_ia32_pmaxsw"
   10140           case 'u':	 // 1 string to match.
   10141             if (BuiltinName[20] != 'b')
   10142               break;
   10143             return Intrinsic::x86_mmx_pmaxu_b;	 // "__builtin_ia32_pmaxub"
   10144           }
   10145           break;
   10146         case 'i':	 // 2 strings to match.
   10147           if (BuiltinName[18] != 'n')
   10148             break;
   10149           switch (BuiltinName[19]) {
   10150           default: break;
   10151           case 's':	 // 1 string to match.
   10152             if (BuiltinName[20] != 'w')
   10153               break;
   10154             return Intrinsic::x86_mmx_pmins_w;	 // "__builtin_ia32_pminsw"
   10155           case 'u':	 // 1 string to match.
   10156             if (BuiltinName[20] != 'b')
   10157               break;
   10158             return Intrinsic::x86_mmx_pminu_b;	 // "__builtin_ia32_pminub"
   10159           }
   10160           break;
   10161         case 'u':	 // 2 strings to match.
   10162           if (BuiltinName[18] != 'l')
   10163             break;
   10164           switch (BuiltinName[19]) {
   10165           default: break;
   10166           case 'h':	 // 1 string to match.
   10167             if (BuiltinName[20] != 'w')
   10168               break;
   10169             return Intrinsic::x86_mmx_pmulh_w;	 // "__builtin_ia32_pmulhw"
   10170           case 'l':	 // 1 string to match.
   10171             if (BuiltinName[20] != 'w')
   10172               break;
   10173             return Intrinsic::x86_mmx_pmull_w;	 // "__builtin_ia32_pmullw"
   10174           }
   10175           break;
   10176         }
   10177         break;
   10178       case 's':	 // 16 strings to match.
   10179         switch (BuiltinName[17]) {
   10180         default: break;
   10181         case 'a':	 // 1 string to match.
   10182           if (BuiltinName.substr(18, 3) != "dbw")
   10183             break;
   10184           return Intrinsic::x86_mmx_psad_bw;	 // "__builtin_ia32_psadbw"
   10185         case 'h':	 // 2 strings to match.
   10186           if (BuiltinName.substr(18, 2) != "uf")
   10187             break;
   10188           switch (BuiltinName[20]) {
   10189           default: break;
   10190           case 'b':	 // 1 string to match.
   10191             return Intrinsic::x86_ssse3_pshuf_b;	 // "__builtin_ia32_pshufb"
   10192           case 'w':	 // 1 string to match.
   10193             return Intrinsic::x86_sse_pshuf_w;	 // "__builtin_ia32_pshufw"
   10194           }
   10195           break;
   10196         case 'i':	 // 3 strings to match.
   10197           if (BuiltinName.substr(18, 2) != "gn")
   10198             break;
   10199           switch (BuiltinName[20]) {
   10200           default: break;
   10201           case 'b':	 // 1 string to match.
   10202             return Intrinsic::x86_ssse3_psign_b;	 // "__builtin_ia32_psignb"
   10203           case 'd':	 // 1 string to match.
   10204             return Intrinsic::x86_ssse3_psign_d;	 // "__builtin_ia32_psignd"
   10205           case 'w':	 // 1 string to match.
   10206             return Intrinsic::x86_ssse3_psign_w;	 // "__builtin_ia32_psignw"
   10207           }
   10208           break;
   10209         case 'l':	 // 3 strings to match.
   10210           if (BuiltinName[18] != 'l')
   10211             break;
   10212           switch (BuiltinName[19]) {
   10213           default: break;
   10214           case 'd':	 // 1 string to match.
   10215             if (BuiltinName[20] != 'i')
   10216               break;
   10217             return Intrinsic::x86_mmx_pslli_d;	 // "__builtin_ia32_pslldi"
   10218           case 'q':	 // 1 string to match.
   10219             if (BuiltinName[20] != 'i')
   10220               break;
   10221             return Intrinsic::x86_mmx_pslli_q;	 // "__builtin_ia32_psllqi"
   10222           case 'w':	 // 1 string to match.
   10223             if (BuiltinName[20] != 'i')
   10224               break;
   10225             return Intrinsic::x86_mmx_pslli_w;	 // "__builtin_ia32_psllwi"
   10226           }
   10227           break;
   10228         case 'r':	 // 5 strings to match.
   10229           switch (BuiltinName[18]) {
   10230           default: break;
   10231           case 'a':	 // 2 strings to match.
   10232             switch (BuiltinName[19]) {
   10233             default: break;
   10234             case 'd':	 // 1 string to match.
   10235               if (BuiltinName[20] != 'i')
   10236                 break;
   10237               return Intrinsic::x86_mmx_psrai_d;	 // "__builtin_ia32_psradi"
   10238             case 'w':	 // 1 string to match.
   10239               if (BuiltinName[20] != 'i')
   10240                 break;
   10241               return Intrinsic::x86_mmx_psrai_w;	 // "__builtin_ia32_psrawi"
   10242             }
   10243             break;
   10244           case 'l':	 // 3 strings to match.
   10245             switch (BuiltinName[19]) {
   10246             default: break;
   10247             case 'd':	 // 1 string to match.
   10248               if (BuiltinName[20] != 'i')
   10249                 break;
   10250               return Intrinsic::x86_mmx_psrli_d;	 // "__builtin_ia32_psrldi"
   10251             case 'q':	 // 1 string to match.
   10252               if (BuiltinName[20] != 'i')
   10253                 break;
   10254               return Intrinsic::x86_mmx_psrli_q;	 // "__builtin_ia32_psrlqi"
   10255             case 'w':	 // 1 string to match.
   10256               if (BuiltinName[20] != 'i')
   10257                 break;
   10258               return Intrinsic::x86_mmx_psrli_w;	 // "__builtin_ia32_psrlwi"
   10259             }
   10260             break;
   10261           }
   10262           break;
   10263         case 'u':	 // 2 strings to match.
   10264           if (BuiltinName.substr(18, 2) != "bs")
   10265             break;
   10266           switch (BuiltinName[20]) {
   10267           default: break;
   10268           case 'b':	 // 1 string to match.
   10269             return Intrinsic::x86_mmx_psubs_b;	 // "__builtin_ia32_psubsb"
   10270           case 'w':	 // 1 string to match.
   10271             return Intrinsic::x86_mmx_psubs_w;	 // "__builtin_ia32_psubsw"
   10272           }
   10273           break;
   10274         }
   10275         break;
   10276       }
   10277       break;
   10278     case 's':	 // 5 strings to match.
   10279       switch (BuiltinName[16]) {
   10280       default: break;
   10281       case 'f':	 // 1 string to match.
   10282         if (BuiltinName.substr(17, 4) != "ence")
   10283           break;
   10284         return Intrinsic::x86_sse_sfence;	 // "__builtin_ia32_sfence"
   10285       case 'q':	 // 4 strings to match.
   10286         if (BuiltinName.substr(17, 2) != "rt")
   10287           break;
   10288         switch (BuiltinName[19]) {
   10289         default: break;
   10290         case 'p':	 // 2 strings to match.
   10291           switch (BuiltinName[20]) {
   10292           default: break;
   10293           case 'd':	 // 1 string to match.
   10294             return Intrinsic::x86_sse2_sqrt_pd;	 // "__builtin_ia32_sqrtpd"
   10295           case 's':	 // 1 string to match.
   10296             return Intrinsic::x86_sse_sqrt_ps;	 // "__builtin_ia32_sqrtps"
   10297           }
   10298           break;
   10299         case 's':	 // 2 strings to match.
   10300           switch (BuiltinName[20]) {
   10301           default: break;
   10302           case 'd':	 // 1 string to match.
   10303             return Intrinsic::x86_sse2_sqrt_sd;	 // "__builtin_ia32_sqrtsd"
   10304           case 's':	 // 1 string to match.
   10305             return Intrinsic::x86_sse_sqrt_ss;	 // "__builtin_ia32_sqrtss"
   10306           }
   10307           break;
   10308         }
   10309         break;
   10310       }
   10311       break;
   10312     }
   10313     break;
   10314   case 22:	 // 46 strings to match.
   10315     if (BuiltinName.substr(0, 15) != "__builtin_ia32_")
   10316       break;
   10317     switch (BuiltinName[15]) {
   10318     default: break;
   10319     case 'b':	 // 2 strings to match.
   10320       if (BuiltinName.substr(16, 5) != "lendp")
   10321         break;
   10322       switch (BuiltinName[21]) {
   10323       default: break;
   10324       case 'd':	 // 1 string to match.
   10325         return Intrinsic::x86_sse41_blendpd;	 // "__builtin_ia32_blendpd"
   10326       case 's':	 // 1 string to match.
   10327         return Intrinsic::x86_sse41_blendps;	 // "__builtin_ia32_blendps"
   10328       }
   10329       break;
   10330     case 'c':	 // 6 strings to match.
   10331       switch (BuiltinName[16]) {
   10332       default: break;
   10333       case 'l':	 // 1 string to match.
   10334         if (BuiltinName.substr(17, 5) != "flush")
   10335           break;
   10336         return Intrinsic::x86_sse2_clflush;	 // "__builtin_ia32_clflush"
   10337       case 'o':	 // 1 string to match.
   10338         if (BuiltinName.substr(17, 5) != "mineq")
   10339           break;
   10340         return Intrinsic::x86_sse_comineq_ss;	 // "__builtin_ia32_comineq"
   10341       case 'r':	 // 4 strings to match.
   10342         if (BuiltinName.substr(17, 3) != "c32")
   10343           break;
   10344         switch (BuiltinName[20]) {
   10345         default: break;
   10346         case 'd':	 // 1 string to match.
   10347           if (BuiltinName[21] != 'i')
   10348             break;
   10349           return Intrinsic::x86_sse42_crc32_64_64;	 // "__builtin_ia32_crc32di"
   10350         case 'h':	 // 1 string to match.
   10351           if (BuiltinName[21] != 'i')
   10352             break;
   10353           return Intrinsic::x86_sse42_crc32_32_16;	 // "__builtin_ia32_crc32hi"
   10354         case 'q':	 // 1 string to match.
   10355           if (BuiltinName[21] != 'i')
   10356             break;
   10357           return Intrinsic::x86_sse42_crc32_32_8;	 // "__builtin_ia32_crc32qi"
   10358         case 's':	 // 1 string to match.
   10359           if (BuiltinName[21] != 'i')
   10360             break;
   10361           return Intrinsic::x86_sse42_crc32_32_32;	 // "__builtin_ia32_crc32si"
   10362         }
   10363         break;
   10364       }
   10365       break;
   10366     case 'd':	 // 1 string to match.
   10367       if (BuiltinName.substr(16, 6) != "pps256")
   10368         break;
   10369       return Intrinsic::x86_avx_dp_ps_256;	 // "__builtin_ia32_dpps256"
   10370     case 'm':	 // 1 string to match.
   10371       if (BuiltinName.substr(16, 6) != "onitor")
   10372         break;
   10373       return Intrinsic::x86_sse3_monitor;	 // "__builtin_ia32_monitor"
   10374     case 'p':	 // 25 strings to match.
   10375       switch (BuiltinName[16]) {
   10376       default: break;
   10377       case 'a':	 // 4 strings to match.
   10378         switch (BuiltinName[17]) {
   10379         default: break;
   10380         case 'd':	 // 2 strings to match.
   10381           if (BuiltinName.substr(18, 3) != "dus")
   10382             break;
   10383           switch (BuiltinName[21]) {
   10384           default: break;
   10385           case 'b':	 // 1 string to match.
   10386             return Intrinsic::x86_mmx_paddus_b;	 // "__builtin_ia32_paddusb"
   10387           case 'w':	 // 1 string to match.
   10388             return Intrinsic::x86_mmx_paddus_w;	 // "__builtin_ia32_paddusw"
   10389           }
   10390           break;
   10391         case 'l':	 // 1 string to match.
   10392           if (BuiltinName.substr(18, 4) != "ignr")
   10393             break;
   10394           return Intrinsic::x86_mmx_palignr_b;	 // "__builtin_ia32_palignr"
   10395         case 'v':	 // 1 string to match.
   10396           if (BuiltinName.substr(18, 4) != "gusb")
   10397             break;
   10398           return Intrinsic::x86_3dnow_pavgusb;	 // "__builtin_ia32_pavgusb"
   10399         }
   10400         break;
   10401       case 'c':	 // 8 strings to match.
   10402         if (BuiltinName.substr(17, 2) != "mp")
   10403           break;
   10404         switch (BuiltinName[19]) {
   10405         default: break;
   10406         case 'e':	 // 4 strings to match.
   10407           if (BuiltinName[20] != 'q')
   10408             break;
   10409           switch (BuiltinName[21]) {
   10410           default: break;
   10411           case 'b':	 // 1 string to match.
   10412             return Intrinsic::x86_mmx_pcmpeq_b;	 // "__builtin_ia32_pcmpeqb"
   10413           case 'd':	 // 1 string to match.
   10414             return Intrinsic::x86_mmx_pcmpeq_d;	 // "__builtin_ia32_pcmpeqd"
   10415           case 'q':	 // 1 string to match.
   10416             return Intrinsic::x86_sse41_pcmpeqq;	 // "__builtin_ia32_pcmpeqq"
   10417           case 'w':	 // 1 string to match.
   10418             return Intrinsic::x86_mmx_pcmpeq_w;	 // "__builtin_ia32_pcmpeqw"
   10419           }
   10420           break;
   10421         case 'g':	 // 4 strings to match.
   10422           if (BuiltinName[20] != 't')
   10423             break;
   10424           switch (BuiltinName[21]) {
   10425           default: break;
   10426           case 'b':	 // 1 string to match.
   10427             return Intrinsic::x86_mmx_pcmpgt_b;	 // "__builtin_ia32_pcmpgtb"
   10428           case 'd':	 // 1 string to match.
   10429             return Intrinsic::x86_mmx_pcmpgt_d;	 // "__builtin_ia32_pcmpgtd"
   10430           case 'q':	 // 1 string to match.
   10431             return Intrinsic::x86_sse42_pcmpgtq;	 // "__builtin_ia32_pcmpgtq"
   10432           case 'w':	 // 1 string to match.
   10433             return Intrinsic::x86_mmx_pcmpgt_w;	 // "__builtin_ia32_pcmpgtw"
   10434           }
   10435           break;
   10436         }
   10437         break;
   10438       case 'f':	 // 5 strings to match.
   10439         switch (BuiltinName[17]) {
   10440         default: break;
   10441         case 'c':	 // 3 strings to match.
   10442           if (BuiltinName.substr(18, 2) != "mp")
   10443             break;
   10444           switch (BuiltinName[20]) {
   10445           default: break;
   10446           case 'e':	 // 1 string to match.
   10447             if (BuiltinName[21] != 'q')
   10448               break;
   10449             return Intrinsic::x86_3dnow_pfcmpeq;	 // "__builtin_ia32_pfcmpeq"
   10450           case 'g':	 // 2 strings to match.
   10451             switch (BuiltinName[21]) {
   10452             default: break;
   10453             case 'e':	 // 1 string to match.
   10454               return Intrinsic::x86_3dnow_pfcmpge;	 // "__builtin_ia32_pfcmpge"
   10455             case 't':	 // 1 string to match.
   10456               return Intrinsic::x86_3dnow_pfcmpgt;	 // "__builtin_ia32_pfcmpgt"
   10457             }
   10458             break;
   10459           }
   10460           break;
   10461         case 'p':	 // 1 string to match.
   10462           if (BuiltinName.substr(18, 4) != "nacc")
   10463             break;
   10464           return Intrinsic::x86_3dnowa_pfpnacc;	 // "__builtin_ia32_pfpnacc"
   10465         case 'r':	 // 1 string to match.
   10466           if (BuiltinName.substr(18, 4) != "sqrt")
   10467             break;
   10468           return Intrinsic::x86_3dnow_pfrsqrt;	 // "__builtin_ia32_pfrsqrt"
   10469         }
   10470         break;
   10471       case 'h':	 // 2 strings to match.
   10472         switch (BuiltinName[17]) {
   10473         default: break;
   10474         case 'a':	 // 1 string to match.
   10475           if (BuiltinName.substr(18, 4) != "ddsw")
   10476             break;
   10477           return Intrinsic::x86_ssse3_phadd_sw;	 // "__builtin_ia32_phaddsw"
   10478         case 's':	 // 1 string to match.
   10479           if (BuiltinName.substr(18, 4) != "ubsw")
   10480             break;
   10481           return Intrinsic::x86_ssse3_phsub_sw;	 // "__builtin_ia32_phsubsw"
   10482         }
   10483         break;
   10484       case 'm':	 // 4 strings to match.
   10485         switch (BuiltinName[17]) {
   10486         default: break;
   10487         case 'a':	 // 1 string to match.
   10488           if (BuiltinName.substr(18, 4) != "ddwd")
   10489             break;
   10490           return Intrinsic::x86_mmx_pmadd_wd;	 // "__builtin_ia32_pmaddwd"
   10491         case 'u':	 // 3 strings to match.
   10492           if (BuiltinName[18] != 'l')
   10493             break;
   10494           switch (BuiltinName[19]) {
   10495           default: break;
   10496           case 'h':	 // 2 strings to match.
   10497             switch (BuiltinName[20]) {
   10498             default: break;
   10499             case 'r':	 // 1 string to match.
   10500               if (BuiltinName[21] != 'w')
   10501                 break;
   10502               return Intrinsic::x86_3dnow_pmulhrw;	 // "__builtin_ia32_pmulhrw"
   10503             case 'u':	 // 1 string to match.
   10504               if (BuiltinName[21] != 'w')
   10505                 break;
   10506               return Intrinsic::x86_mmx_pmulhu_w;	 // "__builtin_ia32_pmulhuw"
   10507             }
   10508             break;
   10509           case 'u':	 // 1 string to match.
   10510             if (BuiltinName.substr(20, 2) != "dq")
   10511               break;
   10512             return Intrinsic::x86_mmx_pmulu_dq;	 // "__builtin_ia32_pmuludq"
   10513           }
   10514           break;
   10515         }
   10516         break;
   10517       case 's':	 // 2 strings to match.
   10518         if (BuiltinName.substr(17, 4) != "ubus")
   10519           break;
   10520         switch (BuiltinName[21]) {
   10521         default: break;
   10522         case 'b':	 // 1 string to match.
   10523           return Intrinsic::x86_mmx_psubus_b;	 // "__builtin_ia32_psubusb"
   10524         case 'w':	 // 1 string to match.
   10525           return Intrinsic::x86_mmx_psubus_w;	 // "__builtin_ia32_psubusw"
   10526         }
   10527         break;
   10528       }
   10529       break;
   10530     case 'r':	 // 6 strings to match.
   10531       switch (BuiltinName[16]) {
   10532       default: break;
   10533       case 'o':	 // 4 strings to match.
   10534         if (BuiltinName.substr(17, 3) != "und")
   10535           break;
   10536         switch (BuiltinName[20]) {
   10537         default: break;
   10538         case 'p':	 // 2 strings to match.
   10539           switch (BuiltinName[21]) {
   10540           default: break;
   10541           case 'd':	 // 1 string to match.
   10542             return Intrinsic::x86_sse41_round_pd;	 // "__builtin_ia32_roundpd"
   10543           case 's':	 // 1 string to match.
   10544             return Intrinsic::x86_sse41_round_ps;	 // "__builtin_ia32_roundps"
   10545           }
   10546           break;
   10547         case 's':	 // 2 strings to match.
   10548           switch (BuiltinName[21]) {
   10549           default: break;
   10550           case 'd':	 // 1 string to match.
   10551             return Intrinsic::x86_sse41_round_sd;	 // "__builtin_ia32_roundsd"
   10552           case 's':	 // 1 string to match.
   10553             return Intrinsic::x86_sse41_round_ss;	 // "__builtin_ia32_roundss"
   10554           }
   10555           break;
   10556         }
   10557         break;
   10558       case 's':	 // 2 strings to match.
   10559         if (BuiltinName.substr(17, 3) != "qrt")
   10560           break;
   10561         switch (BuiltinName[20]) {
   10562         default: break;
   10563         case 'p':	 // 1 string to match.
   10564           if (BuiltinName[21] != 's')
   10565             break;
   10566           return Intrinsic::x86_sse_rsqrt_ps;	 // "__builtin_ia32_rsqrtps"
   10567         case 's':	 // 1 string to match.
   10568           if (BuiltinName[21] != 's')
   10569             break;
   10570           return Intrinsic::x86_sse_rsqrt_ss;	 // "__builtin_ia32_rsqrtss"
   10571         }
   10572         break;
   10573       }
   10574       break;
   10575     case 'u':	 // 5 strings to match.
   10576       if (BuiltinName.substr(16, 4) != "comi")
   10577         break;
   10578       switch (BuiltinName[20]) {
   10579       default: break;
   10580       case 'e':	 // 1 string to match.
   10581         if (BuiltinName[21] != 'q')
   10582           break;
   10583         return Intrinsic::x86_sse_ucomieq_ss;	 // "__builtin_ia32_ucomieq"
   10584       case 'g':	 // 2 strings to match.
   10585         switch (BuiltinName[21]) {
   10586         default: break;
   10587         case 'e':	 // 1 string to match.
   10588           return Intrinsic::x86_sse_ucomige_ss;	 // "__builtin_ia32_ucomige"
   10589         case 't':	 // 1 string to match.
   10590           return Intrinsic::x86_sse_ucomigt_ss;	 // "__builtin_ia32_ucomigt"
   10591         }
   10592         break;
   10593       case 'l':	 // 2 strings to match.
   10594         switch (BuiltinName[21]) {
   10595         default: break;
   10596         case 'e':	 // 1 string to match.
   10597           return Intrinsic::x86_sse_ucomile_ss;	 // "__builtin_ia32_ucomile"
   10598         case 't':	 // 1 string to match.
   10599           return Intrinsic::x86_sse_ucomilt_ss;	 // "__builtin_ia32_ucomilt"
   10600         }
   10601         break;
   10602       }
   10603       break;
   10604     }
   10605     break;
   10606   case 23:	 // 67 strings to match.
   10607     if (BuiltinName.substr(0, 15) != "__builtin_ia32_")
   10608       break;
   10609     switch (BuiltinName[15]) {
   10610     default: break;
   10611     case 'a':	 // 2 strings to match.
   10612       if (BuiltinName.substr(16, 6) != "ddsubp")
   10613         break;
   10614       switch (BuiltinName[22]) {
   10615       default: break;
   10616       case 'd':	 // 1 string to match.
   10617         return Intrinsic::x86_sse3_addsub_pd;	 // "__builtin_ia32_addsubpd"
   10618       case 's':	 // 1 string to match.
   10619         return Intrinsic::x86_sse3_addsub_ps;	 // "__builtin_ia32_addsubps"
   10620       }
   10621       break;
   10622     case 'b':	 // 2 strings to match.
   10623       if (BuiltinName.substr(16, 6) != "lendvp")
   10624         break;
   10625       switch (BuiltinName[22]) {
   10626       default: break;
   10627       case 'd':	 // 1 string to match.
   10628         return Intrinsic::x86_sse41_blendvpd;	 // "__builtin_ia32_blendvpd"
   10629       case 's':	 // 1 string to match.
   10630         return Intrinsic::x86_sse41_blendvps;	 // "__builtin_ia32_blendvps"
   10631       }
   10632       break;
   10633     case 'c':	 // 23 strings to match.
   10634       switch (BuiltinName[16]) {
   10635       default: break;
   10636       case 'm':	 // 2 strings to match.
   10637         if (BuiltinName.substr(17, 2) != "pp")
   10638           break;
   10639         switch (BuiltinName[19]) {
   10640         default: break;
   10641         case 'd':	 // 1 string to match.
   10642           if (BuiltinName.substr(20, 3) != "256")
   10643             break;
   10644           return Intrinsic::x86_avx_cmp_pd_256;	 // "__builtin_ia32_cmppd256"
   10645         case 's':	 // 1 string to match.
   10646           if (BuiltinName.substr(20, 3) != "256")
   10647             break;
   10648           return Intrinsic::x86_avx_cmp_ps_256;	 // "__builtin_ia32_cmpps256"
   10649         }
   10650         break;
   10651       case 'o':	 // 5 strings to match.
   10652         if (BuiltinName.substr(17, 4) != "misd")
   10653           break;
   10654         switch (BuiltinName[21]) {
   10655         default: break;
   10656         case 'e':	 // 1 string to match.
   10657           if (BuiltinName[22] != 'q')
   10658             break;
   10659           return Intrinsic::x86_sse2_comieq_sd;	 // "__builtin_ia32_comisdeq"
   10660         case 'g':	 // 2 strings to match.
   10661           switch (BuiltinName[22]) {
   10662           default: break;
   10663           case 'e':	 // 1 string to match.
   10664             return Intrinsic::x86_sse2_comige_sd;	 // "__builtin_ia32_comisdge"
   10665           case 't':	 // 1 string to match.
   10666             return Intrinsic::x86_sse2_comigt_sd;	 // "__builtin_ia32_comisdgt"
   10667           }
   10668           break;
   10669         case 'l':	 // 2 strings to match.
   10670           switch (BuiltinName[22]) {
   10671           default: break;
   10672           case 'e':	 // 1 string to match.
   10673             return Intrinsic::x86_sse2_comile_sd;	 // "__builtin_ia32_comisdle"
   10674           case 't':	 // 1 string to match.
   10675             return Intrinsic::x86_sse2_comilt_sd;	 // "__builtin_ia32_comisdlt"
   10676           }
   10677           break;
   10678         }
   10679         break;
   10680       case 'v':	 // 16 strings to match.
   10681         if (BuiltinName[17] != 't')
   10682           break;
   10683         switch (BuiltinName[18]) {
   10684         default: break;
   10685         case 'd':	 // 2 strings to match.
   10686           if (BuiltinName.substr(19, 3) != "q2p")
   10687             break;
   10688           switch (BuiltinName[22]) {
   10689           default: break;
   10690           case 'd':	 // 1 string to match.
   10691             return Intrinsic::x86_sse2_cvtdq2pd;	 // "__builtin_ia32_cvtdq2pd"
   10692           case 's':	 // 1 string to match.
   10693             return Intrinsic::x86_sse2_cvtdq2ps;	 // "__builtin_ia32_cvtdq2ps"
   10694           }
   10695           break;
   10696         case 'p':	 // 8 strings to match.
   10697           switch (BuiltinName[19]) {
   10698           default: break;
   10699           case 'd':	 // 3 strings to match.
   10700             if (BuiltinName[20] != '2')
   10701               break;
   10702             switch (BuiltinName[21]) {
   10703             default: break;
   10704             case 'd':	 // 1 string to match.
   10705               if (BuiltinName[22] != 'q')
   10706                 break;
   10707               return Intrinsic::x86_sse2_cvtpd2dq;	 // "__builtin_ia32_cvtpd2dq"
   10708             case 'p':	 // 2 strings to match.
   10709               switch (BuiltinName[22]) {
   10710               default: break;
   10711               case 'i':	 // 1 string to match.
   10712                 return Intrinsic::x86_sse_cvtpd2pi;	 // "__builtin_ia32_cvtpd2pi"
   10713               case 's':	 // 1 string to match.
   10714                 return Intrinsic::x86_sse2_cvtpd2ps;	 // "__builtin_ia32_cvtpd2ps"
   10715               }
   10716               break;
   10717             }
   10718             break;
   10719           case 'i':	 // 2 strings to match.
   10720             if (BuiltinName.substr(20, 2) != "2p")
   10721               break;
   10722             switch (BuiltinName[22]) {
   10723             default: break;
   10724             case 'd':	 // 1 string to match.
   10725               return Intrinsic::x86_sse_cvtpi2pd;	 // "__builtin_ia32_cvtpi2pd"
   10726             case 's':	 // 1 string to match.
   10727               return Intrinsic::x86_sse_cvtpi2ps;	 // "__builtin_ia32_cvtpi2ps"
   10728             }
   10729             break;
   10730           case 's':	 // 3 strings to match.
   10731             if (BuiltinName[20] != '2')
   10732               break;
   10733             switch (BuiltinName[21]) {
   10734             default: break;
   10735             case 'd':	 // 1 string to match.
   10736               if (BuiltinName[22] != 'q')
   10737                 break;
   10738               return Intrinsic::x86_sse2_cvtps2dq;	 // "__builtin_ia32_cvtps2dq"
   10739             case 'p':	 // 2 strings to match.
   10740               switch (BuiltinName[22]) {
   10741               default: break;
   10742               case 'd':	 // 1 string to match.
   10743                 return Intrinsic::x86_sse2_cvtps2pd;	 // "__builtin_ia32_cvtps2pd"
   10744               case 'i':	 // 1 string to match.
   10745                 return Intrinsic::x86_sse_cvtps2pi;	 // "__builtin_ia32_cvtps2pi"
   10746               }
   10747               break;
   10748             }
   10749             break;
   10750           }
   10751           break;
   10752         case 's':	 // 6 strings to match.
   10753           switch (BuiltinName[19]) {
   10754           default: break;
   10755           case 'd':	 // 2 strings to match.
   10756             if (BuiltinName.substr(20, 2) != "2s")
   10757               break;
   10758             switch (BuiltinName[22]) {
   10759             default: break;
   10760             case 'i':	 // 1 string to match.
   10761               return Intrinsic::x86_sse2_cvtsd2si;	 // "__builtin_ia32_cvtsd2si"
   10762             case 's':	 // 1 string to match.
   10763               return Intrinsic::x86_sse2_cvtsd2ss;	 // "__builtin_ia32_cvtsd2ss"
   10764             }
   10765             break;
   10766           case 'i':	 // 2 strings to match.
   10767             if (BuiltinName.substr(20, 2) != "2s")
   10768               break;
   10769             switch (BuiltinName[22]) {
   10770             default: break;
   10771             case 'd':	 // 1 string to match.
   10772               return Intrinsic::x86_sse2_cvtsi2sd;	 // "__builtin_ia32_cvtsi2sd"
   10773             case 's':	 // 1 string to match.
   10774               return Intrinsic::x86_sse_cvtsi2ss;	 // "__builtin_ia32_cvtsi2ss"
   10775             }
   10776             break;
   10777           case 's':	 // 2 strings to match.
   10778             if (BuiltinName.substr(20, 2) != "2s")
   10779               break;
   10780             switch (BuiltinName[22]) {
   10781             default: break;
   10782             case 'd':	 // 1 string to match.
   10783               return Intrinsic::x86_sse2_cvtss2sd;	 // "__builtin_ia32_cvtss2sd"
   10784             case 'i':	 // 1 string to match.
   10785               return Intrinsic::x86_sse_cvtss2si;	 // "__builtin_ia32_cvtss2si"
   10786             }
   10787             break;
   10788           }
   10789           break;
   10790         }
   10791         break;
   10792       }
   10793       break;
   10794     case 'l':	 // 1 string to match.
   10795       if (BuiltinName.substr(16, 7) != "ddqu256")
   10796         break;
   10797       return Intrinsic::x86_avx_ldu_dq_256;	 // "__builtin_ia32_lddqu256"
   10798     case 'm':	 // 8 strings to match.
   10799       switch (BuiltinName[16]) {
   10800       default: break;
   10801       case 'a':	 // 3 strings to match.
   10802         switch (BuiltinName[17]) {
   10803         default: break;
   10804         case 's':	 // 1 string to match.
   10805           if (BuiltinName.substr(18, 5) != "kmovq")
   10806             break;
   10807           return Intrinsic::x86_mmx_maskmovq;	 // "__builtin_ia32_maskmovq"
   10808         case 'x':	 // 2 strings to match.
   10809           if (BuiltinName[18] != 'p')
   10810             break;
   10811           switch (BuiltinName[19]) {
   10812           default: break;
   10813           case 'd':	 // 1 string to match.
   10814             if (BuiltinName.substr(20, 3) != "256")
   10815               break;
   10816             return Intrinsic::x86_avx_max_pd_256;	 // "__builtin_ia32_maxpd256"
   10817           case 's':	 // 1 string to match.
   10818             if (BuiltinName.substr(20, 3) != "256")
   10819               break;
   10820             return Intrinsic::x86_avx_max_ps_256;	 // "__builtin_ia32_maxps256"
   10821           }
   10822           break;
   10823         }
   10824         break;
   10825       case 'i':	 // 2 strings to match.
   10826         if (BuiltinName.substr(17, 2) != "np")
   10827           break;
   10828         switch (BuiltinName[19]) {
   10829         default: break;
   10830         case 'd':	 // 1 string to match.
   10831           if (BuiltinName.substr(20, 3) != "256")
   10832             break;
   10833           return Intrinsic::x86_avx_min_pd_256;	 // "__builtin_ia32_minpd256"
   10834         case 's':	 // 1 string to match.
   10835           if (BuiltinName.substr(20, 3) != "256")
   10836             break;
   10837           return Intrinsic::x86_avx_min_ps_256;	 // "__builtin_ia32_minps256"
   10838         }
   10839         break;
   10840       case 'o':	 // 3 strings to match.
   10841         if (BuiltinName[17] != 'v')
   10842           break;
   10843         switch (BuiltinName[18]) {
   10844         default: break;
   10845         case 'm':	 // 2 strings to match.
   10846           if (BuiltinName.substr(19, 3) != "skp")
   10847             break;
   10848           switch (BuiltinName[22]) {
   10849           default: break;
   10850           case 'd':	 // 1 string to match.
   10851             return Intrinsic::x86_sse2_movmsk_pd;	 // "__builtin_ia32_movmskpd"
   10852           case 's':	 // 1 string to match.
   10853             return Intrinsic::x86_sse_movmsk_ps;	 // "__builtin_ia32_movmskps"
   10854           }
   10855           break;
   10856         case 'n':	 // 1 string to match.
   10857           if (BuiltinName.substr(19, 4) != "tdqa")
   10858             break;
   10859           return Intrinsic::x86_sse41_movntdqa;	 // "__builtin_ia32_movntdqa"
   10860         }
   10861         break;
   10862       }
   10863       break;
   10864     case 'p':	 // 21 strings to match.
   10865       switch (BuiltinName[16]) {
   10866       default: break;
   10867       case 'a':	 // 8 strings to match.
   10868         switch (BuiltinName[17]) {
   10869         default: break;
   10870         case 'b':	 // 3 strings to match.
   10871           if (BuiltinName[18] != 's')
   10872             break;
   10873           switch (BuiltinName[19]) {
   10874           default: break;
   10875           case 'b':	 // 1 string to match.
   10876             if (BuiltinName.substr(20, 3) != "128")
   10877               break;
   10878             return Intrinsic::x86_ssse3_pabs_b_128;	 // "__builtin_ia32_pabsb128"
   10879           case 'd':	 // 1 string to match.
   10880             if (BuiltinName.substr(20, 3) != "128")
   10881               break;
   10882             return Intrinsic::x86_ssse3_pabs_d_128;	 // "__builtin_ia32_pabsd128"
   10883           case 'w':	 // 1 string to match.
   10884             if (BuiltinName.substr(20, 3) != "128")
   10885               break;
   10886             return Intrinsic::x86_ssse3_pabs_w_128;	 // "__builtin_ia32_pabsw128"
   10887           }
   10888           break;
   10889         case 'c':	 // 3 strings to match.
   10890           if (BuiltinName[18] != 'k')
   10891             break;
   10892           switch (BuiltinName[19]) {
   10893           default: break;
   10894           case 's':	 // 2 strings to match.
   10895             if (BuiltinName[20] != 's')
   10896               break;
   10897             switch (BuiltinName[21]) {
   10898             default: break;
   10899             case 'd':	 // 1 string to match.
   10900               if (BuiltinName[22] != 'w')
   10901                 break;
   10902               return Intrinsic::x86_mmx_packssdw;	 // "__builtin_ia32_packssdw"
   10903             case 'w':	 // 1 string to match.
   10904               if (BuiltinName[22] != 'b')
   10905                 break;
   10906               return Intrinsic::x86_mmx_packsswb;	 // "__builtin_ia32_packsswb"
   10907             }
   10908             break;
   10909           case 'u':	 // 1 string to match.
   10910             if (BuiltinName.substr(20, 3) != "swb")
   10911               break;
   10912             return Intrinsic::x86_mmx_packuswb;	 // "__builtin_ia32_packuswb"
   10913           }
   10914           break;
   10915         case 'v':	 // 2 strings to match.
   10916           if (BuiltinName[18] != 'g')
   10917             break;
   10918           switch (BuiltinName[19]) {
   10919           default: break;
   10920           case 'b':	 // 1 string to match.
   10921             if (BuiltinName.substr(20, 3) != "128")
   10922               break;
   10923             return Intrinsic::x86_sse2_pavg_b;	 // "__builtin_ia32_pavgb128"
   10924           case 'w':	 // 1 string to match.
   10925             if (BuiltinName.substr(20, 3) != "128")
   10926               break;
   10927             return Intrinsic::x86_sse2_pavg_w;	 // "__builtin_ia32_pavgw128"
   10928           }
   10929           break;
   10930         }
   10931         break;
   10932       case 'f':	 // 3 strings to match.
   10933         if (BuiltinName[17] != 'r')
   10934           break;
   10935         switch (BuiltinName[18]) {
   10936         default: break;
   10937         case 'c':	 // 2 strings to match.
   10938           if (BuiltinName.substr(19, 3) != "pit")
   10939             break;
   10940           switch (BuiltinName[22]) {
   10941           default: break;
   10942           case '1':	 // 1 string to match.
   10943             return Intrinsic::x86_3dnow_pfrcpit1;	 // "__builtin_ia32_pfrcpit1"
   10944           case '2':	 // 1 string to match.
   10945             return Intrinsic::x86_3dnow_pfrcpit2;	 // "__builtin_ia32_pfrcpit2"
   10946           }
   10947           break;
   10948         case 's':	 // 1 string to match.
   10949           if (BuiltinName.substr(19, 4) != "qit1")
   10950             break;
   10951           return Intrinsic::x86_3dnow_pfrsqit1;	 // "__builtin_ia32_pfrsqit1"
   10952         }
   10953         break;
   10954       case 'm':	 // 2 strings to match.
   10955         switch (BuiltinName[17]) {
   10956         default: break;
   10957         case 'o':	 // 1 string to match.
   10958           if (BuiltinName.substr(18, 5) != "vmskb")
   10959             break;
   10960           return Intrinsic::x86_mmx_pmovmskb;	 // "__builtin_ia32_pmovmskb"
   10961         case 'u':	 // 1 string to match.
   10962           if (BuiltinName.substr(18, 5) != "lhrsw")
   10963             break;
   10964           return Intrinsic::x86_ssse3_pmul_hr_sw;	 // "__builtin_ia32_pmulhrsw"
   10965         }
   10966         break;
   10967       case 's':	 // 8 strings to match.
   10968         switch (BuiltinName[17]) {
   10969         default: break;
   10970         case 'l':	 // 3 strings to match.
   10971           if (BuiltinName[18] != 'l')
   10972             break;
   10973           switch (BuiltinName[19]) {
   10974           default: break;
   10975           case 'd':	 // 1 string to match.
   10976             if (BuiltinName.substr(20, 3) != "128")
   10977               break;
   10978             return Intrinsic::x86_sse2_psll_d;	 // "__builtin_ia32_pslld128"
   10979           case 'q':	 // 1 string to match.
   10980             if (BuiltinName.substr(20, 3) != "128")
   10981               break;
   10982             return Intrinsic::x86_sse2_psll_q;	 // "__builtin_ia32_psllq128"
   10983           case 'w':	 // 1 string to match.
   10984             if (BuiltinName.substr(20, 3) != "128")
   10985               break;
   10986             return Intrinsic::x86_sse2_psll_w;	 // "__builtin_ia32_psllw128"
   10987           }
   10988           break;
   10989         case 'r':	 // 5 strings to match.
   10990           switch (BuiltinName[18]) {
   10991           default: break;
   10992           case 'a':	 // 2 strings to match.
   10993             switch (BuiltinName[19]) {
   10994             default: break;
   10995             case 'd':	 // 1 string to match.
   10996               if (BuiltinName.substr(20, 3) != "128")
   10997                 break;
   10998               return Intrinsic::x86_sse2_psra_d;	 // "__builtin_ia32_psrad128"
   10999             case 'w':	 // 1 string to match.
   11000               if (BuiltinName.substr(20, 3) != "128")
   11001                 break;
   11002               return Intrinsic::x86_sse2_psra_w;	 // "__builtin_ia32_psraw128"
   11003             }
   11004             break;
   11005           case 'l':	 // 3 strings to match.
   11006             switch (BuiltinName[19]) {
   11007             default: break;
   11008             case 'd':	 // 1 string to match.
   11009               if (BuiltinName.substr(20, 3) != "128")
   11010                 break;
   11011               return Intrinsic::x86_sse2_psrl_d;	 // "__builtin_ia32_psrld128"
   11012             case 'q':	 // 1 string to match.
   11013               if (BuiltinName.substr(20, 3) != "128")
   11014                 break;
   11015               return Intrinsic::x86_sse2_psrl_q;	 // "__builtin_ia32_psrlq128"
   11016             case 'w':	 // 1 string to match.
   11017               if (BuiltinName.substr(20, 3) != "128")
   11018                 break;
   11019               return Intrinsic::x86_sse2_psrl_w;	 // "__builtin_ia32_psrlw128"
   11020             }
   11021             break;
   11022           }
   11023           break;
   11024         }
   11025         break;
   11026       }
   11027       break;
   11028     case 'r':	 // 1 string to match.
   11029       if (BuiltinName.substr(16, 7) != "cpps256")
   11030         break;
   11031       return Intrinsic::x86_avx_rcp_ps_256;	 // "__builtin_ia32_rcpps256"
   11032     case 's':	 // 3 strings to match.
   11033       if (BuiltinName.substr(16, 4) != "tore")
   11034         break;
   11035       switch (BuiltinName[20]) {
   11036       default: break;
   11037       case 'd':	 // 1 string to match.
   11038         if (BuiltinName.substr(21, 2) != "qu")
   11039           break;
   11040         return Intrinsic::x86_sse2_storeu_dq;	 // "__builtin_ia32_storedqu"
   11041       case 'u':	 // 2 strings to match.
   11042         if (BuiltinName[21] != 'p')
   11043           break;
   11044         switch (BuiltinName[22]) {
   11045         default: break;
   11046         case 'd':	 // 1 string to match.
   11047           return Intrinsic::x86_sse2_storeu_pd;	 // "__builtin_ia32_storeupd"
   11048         case 's':	 // 1 string to match.
   11049           return Intrinsic::x86_sse_storeu_ps;	 // "__builtin_ia32_storeups"
   11050         }
   11051         break;
   11052       }
   11053       break;
   11054     case 'u':	 // 1 string to match.
   11055       if (BuiltinName.substr(16, 7) != "comineq")
   11056         break;
   11057       return Intrinsic::x86_sse_ucomineq_ss;	 // "__builtin_ia32_ucomineq"
   11058     case 'v':	 // 5 strings to match.
   11059       switch (BuiltinName[16]) {
   11060       default: break;
   11061       case 't':	 // 4 strings to match.
   11062         if (BuiltinName.substr(17, 3) != "est")
   11063           break;
   11064         switch (BuiltinName[20]) {
   11065         default: break;
   11066         case 'c':	 // 2 strings to match.
   11067           if (BuiltinName[21] != 'p')
   11068             break;
   11069           switch (BuiltinName[22]) {
   11070           default: break;
   11071           case 'd':	 // 1 string to match.
   11072             return Intrinsic::x86_avx_vtestc_pd;	 // "__builtin_ia32_vtestcpd"
   11073           case 's':	 // 1 string to match.
   11074             return Intrinsic::x86_avx_vtestc_ps;	 // "__builtin_ia32_vtestcps"
   11075           }
   11076           break;
   11077         case 'z':	 // 2 strings to match.
   11078           if (BuiltinName[21] != 'p')
   11079             break;
   11080           switch (BuiltinName[22]) {
   11081           default: break;
   11082           case 'd':	 // 1 string to match.
   11083             return Intrinsic::x86_avx_vtestz_pd;	 // "__builtin_ia32_vtestzpd"
   11084           case 's':	 // 1 string to match.
   11085             return Intrinsic::x86_avx_vtestz_ps;	 // "__builtin_ia32_vtestzps"
   11086           }
   11087           break;
   11088         }
   11089         break;
   11090       case 'z':	 // 1 string to match.
   11091         if (BuiltinName.substr(17, 6) != "eroall")
   11092           break;
   11093         return Intrinsic::x86_avx_vzeroall;	 // "__builtin_ia32_vzeroall"
   11094       }
   11095       break;
   11096     }
   11097     break;
   11098   case 24:	 // 69 strings to match.
   11099     if (BuiltinName.substr(0, 15) != "__builtin_ia32_")
   11100       break;
   11101     switch (BuiltinName[15]) {
   11102     default: break;
   11103     case 'a':	 // 3 strings to match.
   11104       if (BuiltinName.substr(16, 2) != "es")
   11105         break;
   11106       switch (BuiltinName[18]) {
   11107       default: break;
   11108       case 'd':	 // 1 string to match.
   11109         if (BuiltinName.substr(19, 5) != "ec128")
   11110           break;
   11111         return Intrinsic::x86_aesni_aesdec;	 // "__builtin_ia32_aesdec128"
   11112       case 'e':	 // 1 string to match.
   11113         if (BuiltinName.substr(19, 5) != "nc128")
   11114           break;
   11115         return Intrinsic::x86_aesni_aesenc;	 // "__builtin_ia32_aesenc128"
   11116       case 'i':	 // 1 string to match.
   11117         if (BuiltinName.substr(19, 5) != "mc128")
   11118           break;
   11119         return Intrinsic::x86_aesni_aesimc;	 // "__builtin_ia32_aesimc128"
   11120       }
   11121       break;
   11122     case 'c':	 // 7 strings to match.
   11123       switch (BuiltinName[16]) {
   11124       default: break;
   11125       case 'o':	 // 1 string to match.
   11126         if (BuiltinName.substr(17, 7) != "misdneq")
   11127           break;
   11128         return Intrinsic::x86_sse2_comineq_sd;	 // "__builtin_ia32_comisdneq"
   11129       case 'v':	 // 6 strings to match.
   11130         if (BuiltinName.substr(17, 2) != "tt")
   11131           break;
   11132         switch (BuiltinName[19]) {
   11133         default: break;
   11134         case 'p':	 // 4 strings to match.
   11135           switch (BuiltinName[20]) {
   11136           default: break;
   11137           case 'd':	 // 2 strings to match.
   11138             if (BuiltinName[21] != '2')
   11139               break;
   11140             switch (BuiltinName[22]) {
   11141             default: break;
   11142             case 'd':	 // 1 string to match.
   11143               if (BuiltinName[23] != 'q')
   11144                 break;
   11145               return Intrinsic::x86_sse2_cvttpd2dq;	 // "__builtin_ia32_cvttpd2dq"
   11146             case 'p':	 // 1 string to match.
   11147               if (BuiltinName[23] != 'i')
   11148                 break;
   11149               return Intrinsic::x86_sse_cvttpd2pi;	 // "__builtin_ia32_cvttpd2pi"
   11150             }
   11151             break;
   11152           case 's':	 // 2 strings to match.
   11153             if (BuiltinName[21] != '2')
   11154               break;
   11155             switch (BuiltinName[22]) {
   11156             default: break;
   11157             case 'd':	 // 1 string to match.
   11158               if (BuiltinName[23] != 'q')
   11159                 break;
   11160               return Intrinsic::x86_sse2_cvttps2dq;	 // "__builtin_ia32_cvttps2dq"
   11161             case 'p':	 // 1 string to match.
   11162               if (BuiltinName[23] != 'i')
   11163                 break;
   11164               return Intrinsic::x86_sse_cvttps2pi;	 // "__builtin_ia32_cvttps2pi"
   11165             }
   11166             break;
   11167           }
   11168           break;
   11169         case 's':	 // 2 strings to match.
   11170           switch (BuiltinName[20]) {
   11171           default: break;
   11172           case 'd':	 // 1 string to match.
   11173             if (BuiltinName.substr(21, 3) != "2si")
   11174               break;
   11175             return Intrinsic::x86_sse2_cvttsd2si;	 // "__builtin_ia32_cvttsd2si"
   11176           case 's':	 // 1 string to match.
   11177             if (BuiltinName.substr(21, 3) != "2si")
   11178               break;
   11179             return Intrinsic::x86_sse_cvttss2si;	 // "__builtin_ia32_cvttss2si"
   11180           }
   11181           break;
   11182         }
   11183         break;
   11184       }
   11185       break;
   11186     case 'h':	 // 4 strings to match.
   11187       switch (BuiltinName[16]) {
   11188       default: break;
   11189       case 'a':	 // 2 strings to match.
   11190         if (BuiltinName.substr(17, 3) != "ddp")
   11191           break;
   11192         switch (BuiltinName[20]) {
   11193         default: break;
   11194         case 'd':	 // 1 string to match.
   11195           if (BuiltinName.substr(21, 3) != "256")
   11196             break;
   11197           return Intrinsic::x86_avx_hadd_pd_256;	 // "__builtin_ia32_haddpd256"
   11198         case 's':	 // 1 string to match.
   11199           if (BuiltinName.substr(21, 3) != "256")
   11200             break;
   11201           return Intrinsic::x86_avx_hadd_ps_256;	 // "__builtin_ia32_haddps256"
   11202         }
   11203         break;
   11204       case 's':	 // 2 strings to match.
   11205         if (BuiltinName.substr(17, 3) != "ubp")
   11206           break;
   11207         switch (BuiltinName[20]) {
   11208         default: break;
   11209         case 'd':	 // 1 string to match.
   11210           if (BuiltinName.substr(21, 3) != "256")
   11211             break;
   11212           return Intrinsic::x86_avx_hsub_pd_256;	 // "__builtin_ia32_hsubpd256"
   11213         case 's':	 // 1 string to match.
   11214           if (BuiltinName.substr(21, 3) != "256")
   11215             break;
   11216           return Intrinsic::x86_avx_hsub_ps_256;	 // "__builtin_ia32_hsubps256"
   11217         }
   11218         break;
   11219       }
   11220       break;
   11221     case 'p':	 // 46 strings to match.
   11222       switch (BuiltinName[16]) {
   11223       default: break;
   11224       case 'a':	 // 2 strings to match.
   11225         if (BuiltinName.substr(17, 3) != "dds")
   11226           break;
   11227         switch (BuiltinName[20]) {
   11228         default: break;
   11229         case 'b':	 // 1 string to match.
   11230           if (BuiltinName.substr(21, 3) != "128")
   11231             break;
   11232           return Intrinsic::x86_sse2_padds_b;	 // "__builtin_ia32_paddsb128"
   11233         case 'w':	 // 1 string to match.
   11234           if (BuiltinName.substr(21, 3) != "128")
   11235             break;
   11236           return Intrinsic::x86_sse2_padds_w;	 // "__builtin_ia32_paddsw128"
   11237         }
   11238         break;
   11239       case 'h':	 // 4 strings to match.
   11240         switch (BuiltinName[17]) {
   11241         default: break;
   11242         case 'a':	 // 2 strings to match.
   11243           if (BuiltinName.substr(18, 2) != "dd")
   11244             break;
   11245           switch (BuiltinName[20]) {
   11246           default: break;
   11247           case 'd':	 // 1 string to match.
   11248             if (BuiltinName.substr(21, 3) != "128")
   11249               break;
   11250             return Intrinsic::x86_ssse3_phadd_d_128;	 // "__builtin_ia32_phaddd128"
   11251           case 'w':	 // 1 string to match.
   11252             if (BuiltinName.substr(21, 3) != "128")
   11253               break;
   11254             return Intrinsic::x86_ssse3_phadd_w_128;	 // "__builtin_ia32_phaddw128"
   11255           }
   11256           break;
   11257         case 's':	 // 2 strings to match.
   11258           if (BuiltinName.substr(18, 2) != "ub")
   11259             break;
   11260           switch (BuiltinName[20]) {
   11261           default: break;
   11262           case 'd':	 // 1 string to match.
   11263             if (BuiltinName.substr(21, 3) != "128")
   11264               break;
   11265             return Intrinsic::x86_ssse3_phsub_d_128;	 // "__builtin_ia32_phsubd128"
   11266           case 'w':	 // 1 string to match.
   11267             if (BuiltinName.substr(21, 3) != "128")
   11268               break;
   11269             return Intrinsic::x86_ssse3_phsub_w_128;	 // "__builtin_ia32_phsubw128"
   11270           }
   11271           break;
   11272         }
   11273         break;
   11274       case 'm':	 // 15 strings to match.
   11275         switch (BuiltinName[17]) {
   11276         default: break;
   11277         case 'a':	 // 7 strings to match.
   11278           switch (BuiltinName[18]) {
   11279           default: break;
   11280           case 'd':	 // 1 string to match.
   11281             if (BuiltinName.substr(19, 5) != "dubsw")
   11282               break;
   11283             return Intrinsic::x86_ssse3_pmadd_ub_sw;	 // "__builtin_ia32_pmaddubsw"
   11284           case 'x':	 // 6 strings to match.
   11285             switch (BuiltinName[19]) {
   11286             default: break;
   11287             case 's':	 // 3 strings to match.
   11288               switch (BuiltinName[20]) {
   11289               default: break;
   11290               case 'b':	 // 1 string to match.
   11291                 if (BuiltinName.substr(21, 3) != "128")
   11292                   break;
   11293                 return Intrinsic::x86_sse41_pmaxsb;	 // "__builtin_ia32_pmaxsb128"
   11294               case 'd':	 // 1 string to match.
   11295                 if (BuiltinName.substr(21, 3) != "128")
   11296                   break;
   11297                 return Intrinsic::x86_sse41_pmaxsd;	 // "__builtin_ia32_pmaxsd128"
   11298               case 'w':	 // 1 string to match.
   11299                 if (BuiltinName.substr(21, 3) != "128")
   11300                   break;
   11301                 return Intrinsic::x86_sse2_pmaxs_w;	 // "__builtin_ia32_pmaxsw128"
   11302               }
   11303               break;
   11304             case 'u':	 // 3 strings to match.
   11305               switch (BuiltinName[20]) {
   11306               default: break;
   11307               case 'b':	 // 1 string to match.
   11308                 if (BuiltinName.substr(21, 3) != "128")
   11309                   break;
   11310                 return Intrinsic::x86_sse2_pmaxu_b;	 // "__builtin_ia32_pmaxub128"
   11311               case 'd':	 // 1 string to match.
   11312                 if (BuiltinName.substr(21, 3) != "128")
   11313                   break;
   11314                 return Intrinsic::x86_sse41_pmaxud;	 // "__builtin_ia32_pmaxud128"
   11315               case 'w':	 // 1 string to match.
   11316                 if (BuiltinName.substr(21, 3) != "128")
   11317                   break;
   11318                 return Intrinsic::x86_sse41_pmaxuw;	 // "__builtin_ia32_pmaxuw128"
   11319               }
   11320               break;
   11321             }
   11322             break;
   11323           }
   11324           break;
   11325         case 'i':	 // 6 strings to match.
   11326           if (BuiltinName[18] != 'n')
   11327             break;
   11328           switch (BuiltinName[19]) {
   11329           default: break;
   11330           case 's':	 // 3 strings to match.
   11331             switch (BuiltinName[20]) {
   11332             default: break;
   11333             case 'b':	 // 1 string to match.
   11334               if (BuiltinName.substr(21, 3) != "128")
   11335                 break;
   11336               return Intrinsic::x86_sse41_pminsb;	 // "__builtin_ia32_pminsb128"
   11337             case 'd':	 // 1 string to match.
   11338               if (BuiltinName.substr(21, 3) != "128")
   11339                 break;
   11340               return Intrinsic::x86_sse41_pminsd;	 // "__builtin_ia32_pminsd128"
   11341             case 'w':	 // 1 string to match.
   11342               if (BuiltinName.substr(21, 3) != "128")
   11343                 break;
   11344               return Intrinsic::x86_sse2_pmins_w;	 // "__builtin_ia32_pminsw128"
   11345             }
   11346             break;
   11347           case 'u':	 // 3 strings to match.
   11348             switch (BuiltinName[20]) {
   11349             default: break;
   11350             case 'b':	 // 1 string to match.
   11351               if (BuiltinName.substr(21, 3) != "128")
   11352                 break;
   11353               return Intrinsic::x86_sse2_pminu_b;	 // "__builtin_ia32_pminub128"
   11354             case 'd':	 // 1 string to match.
   11355               if (BuiltinName.substr(21, 3) != "128")
   11356                 break;
   11357               return Intrinsic::x86_sse41_pminud;	 // "__builtin_ia32_pminud128"
   11358             case 'w':	 // 1 string to match.
   11359               if (BuiltinName.substr(21, 3) != "128")
   11360                 break;
   11361               return Intrinsic::x86_sse41_pminuw;	 // "__builtin_ia32_pminuw128"
   11362             }
   11363             break;
   11364           }
   11365           break;
   11366         case 'u':	 // 2 strings to match.
   11367           if (BuiltinName[18] != 'l')
   11368             break;
   11369           switch (BuiltinName[19]) {
   11370           default: break;
   11371           case 'd':	 // 1 string to match.
   11372             if (BuiltinName.substr(20, 4) != "q128")
   11373               break;
   11374             return Intrinsic::x86_sse41_pmuldq;	 // "__builtin_ia32_pmuldq128"
   11375           case 'h':	 // 1 string to match.
   11376             if (BuiltinName.substr(20, 4) != "w128")
   11377               break;
   11378             return Intrinsic::x86_sse2_pmulh_w;	 // "__builtin_ia32_pmulhw128"
   11379           }
   11380           break;
   11381         }
   11382         break;
   11383       case 's':	 // 15 strings to match.
   11384         switch (BuiltinName[17]) {
   11385         default: break;
   11386         case 'a':	 // 1 string to match.
   11387           if (BuiltinName.substr(18, 6) != "dbw128")
   11388             break;
   11389           return Intrinsic::x86_sse2_psad_bw;	 // "__builtin_ia32_psadbw128"
   11390         case 'h':	 // 1 string to match.
   11391           if (BuiltinName.substr(18, 6) != "ufb128")
   11392             break;
   11393           return Intrinsic::x86_ssse3_pshuf_b_128;	 // "__builtin_ia32_pshufb128"
   11394         case 'i':	 // 3 strings to match.
   11395           if (BuiltinName.substr(18, 2) != "gn")
   11396             break;
   11397           switch (BuiltinName[20]) {
   11398           default: break;
   11399           case 'b':	 // 1 string to match.
   11400             if (BuiltinName.substr(21, 3) != "128")
   11401               break;
   11402             return Intrinsic::x86_ssse3_psign_b_128;	 // "__builtin_ia32_psignb128"
   11403           case 'd':	 // 1 string to match.
   11404             if (BuiltinName.substr(21, 3) != "128")
   11405               break;
   11406             return Intrinsic::x86_ssse3_psign_d_128;	 // "__builtin_ia32_psignd128"
   11407           case 'w':	 // 1 string to match.
   11408             if (BuiltinName.substr(21, 3) != "128")
   11409               break;
   11410             return Intrinsic::x86_ssse3_psign_w_128;	 // "__builtin_ia32_psignw128"
   11411           }
   11412           break;
   11413         case 'l':	 // 3 strings to match.
   11414           if (BuiltinName[18] != 'l')
   11415             break;
   11416           switch (BuiltinName[19]) {
   11417           default: break;
   11418           case 'd':	 // 1 string to match.
   11419             if (BuiltinName.substr(20, 4) != "i128")
   11420               break;
   11421             return Intrinsic::x86_sse2_pslli_d;	 // "__builtin_ia32_pslldi128"
   11422           case 'q':	 // 1 string to match.
   11423             if (BuiltinName.substr(20, 4) != "i128")
   11424               break;
   11425             return Intrinsic::x86_sse2_pslli_q;	 // "__builtin_ia32_psllqi128"
   11426           case 'w':	 // 1 string to match.
   11427             if (BuiltinName.substr(20, 4) != "i128")
   11428               break;
   11429             return Intrinsic::x86_sse2_pslli_w;	 // "__builtin_ia32_psllwi128"
   11430           }
   11431           break;
   11432         case 'r':	 // 5 strings to match.
   11433           switch (BuiltinName[18]) {
   11434           default: break;
   11435           case 'a':	 // 2 strings to match.
   11436             switch (BuiltinName[19]) {
   11437             default: break;
   11438             case 'd':	 // 1 string to match.
   11439               if (BuiltinName.substr(20, 4) != "i128")
   11440                 break;
   11441               return Intrinsic::x86_sse2_psrai_d;	 // "__builtin_ia32_psradi128"
   11442             case 'w':	 // 1 string to match.
   11443               if (BuiltinName.substr(20, 4) != "i128")
   11444                 break;
   11445               return Intrinsic::x86_sse2_psrai_w;	 // "__builtin_ia32_psrawi128"
   11446             }
   11447             break;
   11448           case 'l':	 // 3 strings to match.
   11449             switch (BuiltinName[19]) {
   11450             default: break;
   11451             case 'd':	 // 1 string to match.
   11452               if (BuiltinName.substr(20, 4) != "i128")
   11453                 break;
   11454               return Intrinsic::x86_sse2_psrli_d;	 // "__builtin_ia32_psrldi128"
   11455             case 'q':	 // 1 string to match.
   11456               if (BuiltinName.substr(20, 4) != "i128")
   11457                 break;
   11458               return Intrinsic::x86_sse2_psrli_q;	 // "__builtin_ia32_psrlqi128"
   11459             case 'w':	 // 1 string to match.
   11460               if (BuiltinName.substr(20, 4) != "i128")
   11461                 break;
   11462               return Intrinsic::x86_sse2_psrli_w;	 // "__builtin_ia32_psrlwi128"
   11463             }
   11464             break;
   11465           }
   11466           break;
   11467         case 'u':	 // 2 strings to match.
   11468           if (BuiltinName.substr(18, 2) != "bs")
   11469             break;
   11470           switch (BuiltinName[20]) {
   11471           default: break;
   11472           case 'b':	 // 1 string to match.
   11473             if (BuiltinName.substr(21, 3) != "128")
   11474               break;
   11475             return Intrinsic::x86_sse2_psubs_b;	 // "__builtin_ia32_psubsb128"
   11476           case 'w':	 // 1 string to match.
   11477             if (BuiltinName.substr(21, 3) != "128")
   11478               break;
   11479             return Intrinsic::x86_sse2_psubs_w;	 // "__builtin_ia32_psubsw128"
   11480           }
   11481           break;
   11482         }
   11483         break;
   11484       case 't':	 // 4 strings to match.
   11485         if (BuiltinName.substr(17, 3) != "est")
   11486           break;
   11487         switch (BuiltinName[20]) {
   11488         default: break;
   11489         case 'c':	 // 2 strings to match.
   11490           switch (BuiltinName[21]) {
   11491           default: break;
   11492           case '1':	 // 1 string to match.
   11493             if (BuiltinName.substr(22, 2) != "28")
   11494               break;
   11495             return Intrinsic::x86_sse41_ptestc;	 // "__builtin_ia32_ptestc128"
   11496           case '2':	 // 1 string to match.
   11497             if (BuiltinName.substr(22, 2) != "56")
   11498               break;
   11499             return Intrinsic::x86_avx_ptestc_256;	 // "__builtin_ia32_ptestc256"
   11500           }
   11501           break;
   11502         case 'z':	 // 2 strings to match.
   11503           switch (BuiltinName[21]) {
   11504           default: break;
   11505           case '1':	 // 1 string to match.
   11506             if (BuiltinName.substr(22, 2) != "28")
   11507               break;
   11508             return Intrinsic::x86_sse41_ptestz;	 // "__builtin_ia32_ptestz128"
   11509           case '2':	 // 1 string to match.
   11510             if (BuiltinName.substr(22, 2) != "56")
   11511               break;
   11512             return Intrinsic::x86_avx_ptestz_256;	 // "__builtin_ia32_ptestz256"
   11513           }
   11514           break;
   11515         }
   11516         break;
   11517       case 'u':	 // 6 strings to match.
   11518         if (BuiltinName.substr(17, 4) != "npck")
   11519           break;
   11520         switch (BuiltinName[21]) {
   11521         default: break;
   11522         case 'h':	 // 3 strings to match.
   11523           switch (BuiltinName[22]) {
   11524           default: break;
   11525           case 'b':	 // 1 string to match.
   11526             if (BuiltinName[23] != 'w')
   11527               break;
   11528             return Intrinsic::x86_mmx_punpckhbw;	 // "__builtin_ia32_punpckhbw"
   11529           case 'd':	 // 1 string to match.
   11530             if (BuiltinName[23] != 'q')
   11531               break;
   11532             return Intrinsic::x86_mmx_punpckhdq;	 // "__builtin_ia32_punpckhdq"
   11533           case 'w':	 // 1 string to match.
   11534             if (BuiltinName[23] != 'd')
   11535               break;
   11536             return Intrinsic::x86_mmx_punpckhwd;	 // "__builtin_ia32_punpckhwd"
   11537           }
   11538           break;
   11539         case 'l':	 // 3 strings to match.
   11540           switch (BuiltinName[22]) {
   11541           default: break;
   11542           case 'b':	 // 1 string to match.
   11543             if (BuiltinName[23] != 'w')
   11544               break;
   11545             return Intrinsic::x86_mmx_punpcklbw;	 // "__builtin_ia32_punpcklbw"
   11546           case 'd':	 // 1 string to match.
   11547             if (BuiltinName[23] != 'q')
   11548               break;
   11549             return Intrinsic::x86_mmx_punpckldq;	 // "__builtin_ia32_punpckldq"
   11550           case 'w':	 // 1 string to match.
   11551             if (BuiltinName[23] != 'd')
   11552               break;
   11553             return Intrinsic::x86_mmx_punpcklwd;	 // "__builtin_ia32_punpcklwd"
   11554           }
   11555           break;
   11556         }
   11557         break;
   11558       }
   11559       break;
   11560     case 's':	 // 2 strings to match.
   11561       if (BuiltinName.substr(16, 4) != "qrtp")
   11562         break;
   11563       switch (BuiltinName[20]) {
   11564       default: break;
   11565       case 'd':	 // 1 string to match.
   11566         if (BuiltinName.substr(21, 3) != "256")
   11567           break;
   11568         return Intrinsic::x86_avx_sqrt_pd_256;	 // "__builtin_ia32_sqrtpd256"
   11569       case 's':	 // 1 string to match.
   11570         if (BuiltinName.substr(21, 3) != "256")
   11571           break;
   11572         return Intrinsic::x86_avx_sqrt_ps_256;	 // "__builtin_ia32_sqrtps256"
   11573       }
   11574       break;
   11575     case 'u':	 // 5 strings to match.
   11576       if (BuiltinName.substr(16, 6) != "comisd")
   11577         break;
   11578       switch (BuiltinName[22]) {
   11579       default: break;
   11580       case 'e':	 // 1 string to match.
   11581         if (BuiltinName[23] != 'q')
   11582           break;
   11583         return Intrinsic::x86_sse2_ucomieq_sd;	 // "__builtin_ia32_ucomisdeq"
   11584       case 'g':	 // 2 strings to match.
   11585         switch (BuiltinName[23]) {
   11586         default: break;
   11587         case 'e':	 // 1 string to match.
   11588           return Intrinsic::x86_sse2_ucomige_sd;	 // "__builtin_ia32_ucomisdge"
   11589         case 't':	 // 1 string to match.
   11590           return Intrinsic::x86_sse2_ucomigt_sd;	 // "__builtin_ia32_ucomisdgt"
   11591         }
   11592         break;
   11593       case 'l':	 // 2 strings to match.
   11594         switch (BuiltinName[23]) {
   11595         default: break;
   11596         case 'e':	 // 1 string to match.
   11597           return Intrinsic::x86_sse2_ucomile_sd;	 // "__builtin_ia32_ucomisdle"
   11598         case 't':	 // 1 string to match.
   11599           return Intrinsic::x86_sse2_ucomilt_sd;	 // "__builtin_ia32_ucomisdlt"
   11600         }
   11601         break;
   11602       }
   11603       break;
   11604     case 'v':	 // 2 strings to match.
   11605       if (BuiltinName.substr(16, 7) != "permilp")
   11606         break;
   11607       switch (BuiltinName[23]) {
   11608       default: break;
   11609       case 'd':	 // 1 string to match.
   11610         return Intrinsic::x86_avx_vpermil_pd;	 // "__builtin_ia32_vpermilpd"
   11611       case 's':	 // 1 string to match.
   11612         return Intrinsic::x86_avx_vpermil_ps;	 // "__builtin_ia32_vpermilps"
   11613       }
   11614       break;
   11615     }
   11616     break;
   11617   case 25:	 // 42 strings to match.
   11618     if (BuiltinName.substr(0, 15) != "__builtin_ia32_")
   11619       break;
   11620     switch (BuiltinName[15]) {
   11621     default: break;
   11622     case 'b':	 // 2 strings to match.
   11623       if (BuiltinName.substr(16, 5) != "lendp")
   11624         break;
   11625       switch (BuiltinName[21]) {
   11626       default: break;
   11627       case 'd':	 // 1 string to match.
   11628         if (BuiltinName.substr(22, 3) != "256")
   11629           break;
   11630         return Intrinsic::x86_avx_blend_pd_256;	 // "__builtin_ia32_blendpd256"
   11631       case 's':	 // 1 string to match.
   11632         if (BuiltinName.substr(22, 3) != "256")
   11633           break;
   11634         return Intrinsic::x86_avx_blend_ps_256;	 // "__builtin_ia32_blendps256"
   11635       }
   11636       break;
   11637     case 'c':	 // 4 strings to match.
   11638       if (BuiltinName.substr(16, 3) != "vts")
   11639         break;
   11640       switch (BuiltinName[19]) {
   11641       default: break;
   11642       case 'd':	 // 1 string to match.
   11643         if (BuiltinName.substr(20, 5) != "2si64")
   11644           break;
   11645         return Intrinsic::x86_sse2_cvtsd2si64;	 // "__builtin_ia32_cvtsd2si64"
   11646       case 'i':	 // 2 strings to match.
   11647         if (BuiltinName.substr(20, 4) != "642s")
   11648           break;
   11649         switch (BuiltinName[24]) {
   11650         default: break;
   11651         case 'd':	 // 1 string to match.
   11652           return Intrinsic::x86_sse2_cvtsi642sd;	 // "__builtin_ia32_cvtsi642sd"
   11653         case 's':	 // 1 string to match.
   11654           return Intrinsic::x86_sse_cvtsi642ss;	 // "__builtin_ia32_cvtsi642ss"
   11655         }
   11656         break;
   11657       case 's':	 // 1 string to match.
   11658         if (BuiltinName.substr(20, 5) != "2si64")
   11659           break;
   11660         return Intrinsic::x86_sse_cvtss2si64;	 // "__builtin_ia32_cvtss2si64"
   11661       }
   11662       break;
   11663     case 'l':	 // 3 strings to match.
   11664       if (BuiltinName.substr(16, 3) != "oad")
   11665         break;
   11666       switch (BuiltinName[19]) {
   11667       default: break;
   11668       case 'd':	 // 1 string to match.
   11669         if (BuiltinName.substr(20, 5) != "qu256")
   11670           break;
   11671         return Intrinsic::x86_avx_loadu_dq_256;	 // "__builtin_ia32_loaddqu256"
   11672       case 'u':	 // 2 strings to match.
   11673         if (BuiltinName[20] != 'p')
   11674           break;
   11675         switch (BuiltinName[21]) {
   11676         default: break;
   11677         case 'd':	 // 1 string to match.
   11678           if (BuiltinName.substr(22, 3) != "256")
   11679             break;
   11680           return Intrinsic::x86_avx_loadu_pd_256;	 // "__builtin_ia32_loadupd256"
   11681         case 's':	 // 1 string to match.
   11682           if (BuiltinName.substr(22, 3) != "256")
   11683             break;
   11684           return Intrinsic::x86_avx_loadu_ps_256;	 // "__builtin_ia32_loadups256"
   11685         }
   11686         break;
   11687       }
   11688       break;
   11689     case 'm':	 // 7 strings to match.
   11690       switch (BuiltinName[16]) {
   11691       default: break;
   11692       case 'a':	 // 3 strings to match.
   11693         if (BuiltinName.substr(17, 2) != "sk")
   11694           break;
   11695         switch (BuiltinName[19]) {
   11696         default: break;
   11697         case 'l':	 // 2 strings to match.
   11698           if (BuiltinName.substr(20, 4) != "oadp")
   11699             break;
   11700           switch (BuiltinName[24]) {
   11701           default: break;
   11702           case 'd':	 // 1 string to match.
   11703             return Intrinsic::x86_avx_maskload_pd;	 // "__builtin_ia32_maskloadpd"
   11704           case 's':	 // 1 string to match.
   11705             return Intrinsic::x86_avx_maskload_ps;	 // "__builtin_ia32_maskloadps"
   11706           }
   11707           break;
   11708         case 'm':	 // 1 string to match.
   11709           if (BuiltinName.substr(20, 5) != "ovdqu")
   11710             break;
   11711           return Intrinsic::x86_sse2_maskmov_dqu;	 // "__builtin_ia32_maskmovdqu"
   11712         }
   11713         break;
   11714       case 'o':	 // 3 strings to match.
   11715         if (BuiltinName.substr(17, 3) != "vnt")
   11716           break;
   11717         switch (BuiltinName[20]) {
   11718         default: break;
   11719         case 'd':	 // 1 string to match.
   11720           if (BuiltinName.substr(21, 4) != "q256")
   11721             break;
   11722           return Intrinsic::x86_avx_movnt_dq_256;	 // "__builtin_ia32_movntdq256"
   11723         case 'p':	 // 2 strings to match.
   11724           switch (BuiltinName[21]) {
   11725           default: break;
   11726           case 'd':	 // 1 string to match.
   11727             if (BuiltinName.substr(22, 3) != "256")
   11728               break;
   11729             return Intrinsic::x86_avx_movnt_pd_256;	 // "__builtin_ia32_movntpd256"
   11730           case 's':	 // 1 string to match.
   11731             if (BuiltinName.substr(22, 3) != "256")
   11732               break;
   11733             return Intrinsic::x86_avx_movnt_ps_256;	 // "__builtin_ia32_movntps256"
   11734           }
   11735           break;
   11736         }
   11737         break;
   11738       case 'p':	 // 1 string to match.
   11739         if (BuiltinName.substr(17, 8) != "sadbw128")
   11740           break;
   11741         return Intrinsic::x86_sse41_mpsadbw;	 // "__builtin_ia32_mpsadbw128"
   11742       }
   11743       break;
   11744     case 'p':	 // 18 strings to match.
   11745       switch (BuiltinName[16]) {
   11746       default: break;
   11747       case 'a':	 // 2 strings to match.
   11748         if (BuiltinName.substr(17, 4) != "ddus")
   11749           break;
   11750         switch (BuiltinName[21]) {
   11751         default: break;
   11752         case 'b':	 // 1 string to match.
   11753           if (BuiltinName.substr(22, 3) != "128")
   11754             break;
   11755           return Intrinsic::x86_sse2_paddus_b;	 // "__builtin_ia32_paddusb128"
   11756         case 'w':	 // 1 string to match.
   11757           if (BuiltinName.substr(22, 3) != "128")
   11758             break;
   11759           return Intrinsic::x86_sse2_paddus_w;	 // "__builtin_ia32_paddusw128"
   11760         }
   11761         break;
   11762       case 'b':	 // 1 string to match.
   11763         if (BuiltinName.substr(17, 8) != "lendw128")
   11764           break;
   11765         return Intrinsic::x86_sse41_pblendw;	 // "__builtin_ia32_pblendw128"
   11766       case 'c':	 // 6 strings to match.
   11767         if (BuiltinName.substr(17, 2) != "mp")
   11768           break;
   11769         switch (BuiltinName[19]) {
   11770         default: break;
   11771         case 'e':	 // 3 strings to match.
   11772           if (BuiltinName[20] != 'q')
   11773             break;
   11774           switch (BuiltinName[21]) {
   11775           default: break;
   11776           case 'b':	 // 1 string to match.
   11777             if (BuiltinName.substr(22, 3) != "128")
   11778               break;
   11779             return Intrinsic::x86_sse2_pcmpeq_b;	 // "__builtin_ia32_pcmpeqb128"
   11780           case 'd':	 // 1 string to match.
   11781             if (BuiltinName.substr(22, 3) != "128")
   11782               break;
   11783             return Intrinsic::x86_sse2_pcmpeq_d;	 // "__builtin_ia32_pcmpeqd128"
   11784           case 'w':	 // 1 string to match.
   11785             if (BuiltinName.substr(22, 3) != "128")
   11786               break;
   11787             return Intrinsic::x86_sse2_pcmpeq_w;	 // "__builtin_ia32_pcmpeqw128"
   11788           }
   11789           break;
   11790         case 'g':	 // 3 strings to match.
   11791           if (BuiltinName[20] != 't')
   11792             break;
   11793           switch (BuiltinName[21]) {
   11794           default: break;
   11795           case 'b':	 // 1 string to match.
   11796             if (BuiltinName.substr(22, 3) != "128")
   11797               break;
   11798             return Intrinsic::x86_sse2_pcmpgt_b;	 // "__builtin_ia32_pcmpgtb128"
   11799           case 'd':	 // 1 string to match.
   11800             if (BuiltinName.substr(22, 3) != "128")
   11801               break;
   11802             return Intrinsic::x86_sse2_pcmpgt_d;	 // "__builtin_ia32_pcmpgtd128"
   11803           case 'w':	 // 1 string to match.
   11804             if (BuiltinName.substr(22, 3) != "128")
   11805               break;
   11806             return Intrinsic::x86_sse2_pcmpgt_w;	 // "__builtin_ia32_pcmpgtw128"
   11807           }
   11808           break;
   11809         }
   11810         break;
   11811       case 'h':	 // 2 strings to match.
   11812         switch (BuiltinName[17]) {
   11813         default: break;
   11814         case 'a':	 // 1 string to match.
   11815           if (BuiltinName.substr(18, 7) != "ddsw128")
   11816             break;
   11817           return Intrinsic::x86_ssse3_phadd_sw_128;	 // "__builtin_ia32_phaddsw128"
   11818         case 's':	 // 1 string to match.
   11819           if (BuiltinName.substr(18, 7) != "ubsw128")
   11820             break;
   11821           return Intrinsic::x86_ssse3_phsub_sw_128;	 // "__builtin_ia32_phsubsw128"
   11822         }
   11823         break;
   11824       case 'm':	 // 3 strings to match.
   11825         switch (BuiltinName[17]) {
   11826         default: break;
   11827         case 'a':	 // 1 string to match.
   11828           if (BuiltinName.substr(18, 7) != "ddwd128")
   11829             break;
   11830           return Intrinsic::x86_sse2_pmadd_wd;	 // "__builtin_ia32_pmaddwd128"
   11831         case 'u':	 // 2 strings to match.
   11832           if (BuiltinName[18] != 'l')
   11833             break;
   11834           switch (BuiltinName[19]) {
   11835           default: break;
   11836           case 'h':	 // 1 string to match.
   11837             if (BuiltinName.substr(20, 5) != "uw128")
   11838               break;
   11839             return Intrinsic::x86_sse2_pmulhu_w;	 // "__builtin_ia32_pmulhuw128"
   11840           case 'u':	 // 1 string to match.
   11841             if (BuiltinName.substr(20, 5) != "dq128")
   11842               break;
   11843             return Intrinsic::x86_sse2_pmulu_dq;	 // "__builtin_ia32_pmuludq128"
   11844           }
   11845           break;
   11846         }
   11847         break;
   11848       case 's':	 // 4 strings to match.
   11849         switch (BuiltinName[17]) {
   11850         default: break;
   11851         case 'l':	 // 1 string to match.
   11852           if (BuiltinName.substr(18, 7) != "ldqi128")
   11853             break;
   11854           return Intrinsic::x86_sse2_psll_dq;	 // "__builtin_ia32_pslldqi128"
   11855         case 'r':	 // 1 string to match.
   11856           if (BuiltinName.substr(18, 7) != "ldqi128")
   11857             break;
   11858           return Intrinsic::x86_sse2_psrl_dq;	 // "__builtin_ia32_psrldqi128"
   11859         case 'u':	 // 2 strings to match.
   11860           if (BuiltinName.substr(18, 3) != "bus")
   11861             break;
   11862           switch (BuiltinName[21]) {
   11863           default: break;
   11864           case 'b':	 // 1 string to match.
   11865             if (BuiltinName.substr(22, 3) != "128")
   11866               break;
   11867             return Intrinsic::x86_sse2_psubus_b;	 // "__builtin_ia32_psubusb128"
   11868           case 'w':	 // 1 string to match.
   11869             if (BuiltinName.substr(22, 3) != "128")
   11870               break;
   11871             return Intrinsic::x86_sse2_psubus_w;	 // "__builtin_ia32_psubusw128"
   11872           }
   11873           break;
   11874         }
   11875         break;
   11876       }
   11877       break;
   11878     case 'r':	 // 3 strings to match.
   11879       switch (BuiltinName[16]) {
   11880       default: break;
   11881       case 'o':	 // 2 strings to match.
   11882         if (BuiltinName.substr(17, 4) != "undp")
   11883           break;
   11884         switch (BuiltinName[21]) {
   11885         default: break;
   11886         case 'd':	 // 1 string to match.
   11887           if (BuiltinName.substr(22, 3) != "256")
   11888             break;
   11889           return Intrinsic::x86_avx_round_pd_256;	 // "__builtin_ia32_roundpd256"
   11890         case 's':	 // 1 string to match.
   11891           if (BuiltinName.substr(22, 3) != "256")
   11892             break;
   11893           return Intrinsic::x86_avx_round_ps_256;	 // "__builtin_ia32_roundps256"
   11894         }
   11895         break;
   11896       case 's':	 // 1 string to match.
   11897         if (BuiltinName.substr(17, 8) != "qrtps256")
   11898           break;
   11899         return Intrinsic::x86_avx_rsqrt_ps_256;	 // "__builtin_ia32_rsqrtps256"
   11900       }
   11901       break;
   11902     case 's':	 // 1 string to match.
   11903       if (BuiltinName.substr(16, 9) != "torelv4si")
   11904         break;
   11905       return Intrinsic::x86_sse2_storel_dq;	 // "__builtin_ia32_storelv4si"
   11906     case 'u':	 // 1 string to match.
   11907       if (BuiltinName.substr(16, 9) != "comisdneq")
   11908         break;
   11909       return Intrinsic::x86_sse2_ucomineq_sd;	 // "__builtin_ia32_ucomisdneq"
   11910     case 'v':	 // 3 strings to match.
   11911       switch (BuiltinName[16]) {
   11912       default: break;
   11913       case 't':	 // 2 strings to match.
   11914         if (BuiltinName.substr(17, 7) != "estnzcp")
   11915           break;
   11916         switch (BuiltinName[24]) {
   11917         default: break;
   11918         case 'd':	 // 1 string to match.
   11919           return Intrinsic::x86_avx_vtestnzc_pd;	 // "__builtin_ia32_vtestnzcpd"
   11920         case 's':	 // 1 string to match.
   11921           return Intrinsic::x86_avx_vtestnzc_ps;	 // "__builtin_ia32_vtestnzcps"
   11922         }
   11923         break;
   11924       case 'z':	 // 1 string to match.
   11925         if (BuiltinName.substr(17, 8) != "eroupper")
   11926           break;
   11927         return Intrinsic::x86_avx_vzeroupper;	 // "__builtin_ia32_vzeroupper"
   11928       }
   11929       break;
   11930     }
   11931     break;
   11932   case 26:	 // 45 strings to match.
   11933     if (BuiltinName.substr(0, 15) != "__builtin_ia32_")
   11934       break;
   11935     switch (BuiltinName[15]) {
   11936     default: break;
   11937     case 'a':	 // 2 strings to match.
   11938       if (BuiltinName.substr(16, 6) != "ddsubp")
   11939         break;
   11940       switch (BuiltinName[22]) {
   11941       default: break;
   11942       case 'd':	 // 1 string to match.
   11943         if (BuiltinName.substr(23, 3) != "256")
   11944           break;
   11945         return Intrinsic::x86_avx_addsub_pd_256;	 // "__builtin_ia32_addsubpd256"
   11946       case 's':	 // 1 string to match.
   11947         if (BuiltinName.substr(23, 3) != "256")
   11948           break;
   11949         return Intrinsic::x86_avx_addsub_ps_256;	 // "__builtin_ia32_addsubps256"
   11950       }
   11951       break;
   11952     case 'b':	 // 2 strings to match.
   11953       if (BuiltinName.substr(16, 6) != "lendvp")
   11954         break;
   11955       switch (BuiltinName[22]) {
   11956       default: break;
   11957       case 'd':	 // 1 string to match.
   11958         if (BuiltinName.substr(23, 3) != "256")
   11959           break;
   11960         return Intrinsic::x86_avx_blendv_pd_256;	 // "__builtin_ia32_blendvpd256"
   11961       case 's':	 // 1 string to match.
   11962         if (BuiltinName.substr(23, 3) != "256")
   11963           break;
   11964         return Intrinsic::x86_avx_blendv_ps_256;	 // "__builtin_ia32_blendvps256"
   11965       }
   11966       break;
   11967     case 'c':	 // 8 strings to match.
   11968       if (BuiltinName.substr(16, 2) != "vt")
   11969         break;
   11970       switch (BuiltinName[18]) {
   11971       default: break;
   11972       case 'd':	 // 2 strings to match.
   11973         if (BuiltinName.substr(19, 3) != "q2p")
   11974           break;
   11975         switch (BuiltinName[22]) {
   11976         default: break;
   11977         case 'd':	 // 1 string to match.
   11978           if (BuiltinName.substr(23, 3) != "256")
   11979             break;
   11980           return Intrinsic::x86_avx_cvtdq2_pd_256;	 // "__builtin_ia32_cvtdq2pd256"
   11981         case 's':	 // 1 string to match.
   11982           if (BuiltinName.substr(23, 3) != "256")
   11983             break;
   11984           return Intrinsic::x86_avx_cvtdq2_ps_256;	 // "__builtin_ia32_cvtdq2ps256"
   11985         }
   11986         break;
   11987       case 'p':	 // 4 strings to match.
   11988         switch (BuiltinName[19]) {
   11989         default: break;
   11990         case 'd':	 // 2 strings to match.
   11991           if (BuiltinName[20] != '2')
   11992             break;
   11993           switch (BuiltinName[21]) {
   11994           default: break;
   11995           case 'd':	 // 1 string to match.
   11996             if (BuiltinName.substr(22, 4) != "q256")
   11997               break;
   11998             return Intrinsic::x86_avx_cvt_pd2dq_256;	 // "__builtin_ia32_cvtpd2dq256"
   11999           case 'p':	 // 1 string to match.
   12000             if (BuiltinName.substr(22, 4) != "s256")
   12001               break;
   12002             return Intrinsic::x86_avx_cvt_pd2_ps_256;	 // "__builtin_ia32_cvtpd2ps256"
   12003           }
   12004           break;
   12005         case 's':	 // 2 strings to match.
   12006           if (BuiltinName[20] != '2')
   12007             break;
   12008           switch (BuiltinName[21]) {
   12009           default: break;
   12010           case 'd':	 // 1 string to match.
   12011             if (BuiltinName.substr(22, 4) != "q256")
   12012               break;
   12013             return Intrinsic::x86_avx_cvt_ps2dq_256;	 // "__builtin_ia32_cvtps2dq256"
   12014           case 'p':	 // 1 string to match.
   12015             if (BuiltinName.substr(22, 4) != "d256")
   12016               break;
   12017             return Intrinsic::x86_avx_cvt_ps2_pd_256;	 // "__builtin_ia32_cvtps2pd256"
   12018           }
   12019           break;
   12020         }
   12021         break;
   12022       case 't':	 // 2 strings to match.
   12023         if (BuiltinName[19] != 's')
   12024           break;
   12025         switch (BuiltinName[20]) {
   12026         default: break;
   12027         case 'd':	 // 1 string to match.
   12028           if (BuiltinName.substr(21, 5) != "2si64")
   12029             break;
   12030           return Intrinsic::x86_sse2_cvttsd2si64;	 // "__builtin_ia32_cvttsd2si64"
   12031         case 's':	 // 1 string to match.
   12032           if (BuiltinName.substr(21, 5) != "2si64")
   12033             break;
   12034           return Intrinsic::x86_sse_cvttss2si64;	 // "__builtin_ia32_cvttss2si64"
   12035         }
   12036         break;
   12037       }
   12038       break;
   12039     case 'i':	 // 1 string to match.
   12040       if (BuiltinName.substr(16, 10) != "nsertps128")
   12041         break;
   12042       return Intrinsic::x86_sse41_insertps;	 // "__builtin_ia32_insertps128"
   12043     case 'm':	 // 4 strings to match.
   12044       switch (BuiltinName[16]) {
   12045       default: break;
   12046       case 'a':	 // 2 strings to match.
   12047         if (BuiltinName.substr(17, 8) != "skstorep")
   12048           break;
   12049         switch (BuiltinName[25]) {
   12050         default: break;
   12051         case 'd':	 // 1 string to match.
   12052           return Intrinsic::x86_avx_maskstore_pd;	 // "__builtin_ia32_maskstorepd"
   12053         case 's':	 // 1 string to match.
   12054           return Intrinsic::x86_avx_maskstore_ps;	 // "__builtin_ia32_maskstoreps"
   12055         }
   12056         break;
   12057       case 'o':	 // 2 strings to match.
   12058         if (BuiltinName.substr(17, 5) != "vmskp")
   12059           break;
   12060         switch (BuiltinName[22]) {
   12061         default: break;
   12062         case 'd':	 // 1 string to match.
   12063           if (BuiltinName.substr(23, 3) != "256")
   12064             break;
   12065           return Intrinsic::x86_avx_movmsk_pd_256;	 // "__builtin_ia32_movmskpd256"
   12066         case 's':	 // 1 string to match.
   12067           if (BuiltinName.substr(23, 3) != "256")
   12068             break;
   12069           return Intrinsic::x86_avx_movmsk_ps_256;	 // "__builtin_ia32_movmskps256"
   12070         }
   12071         break;
   12072       }
   12073       break;
   12074     case 'p':	 // 21 strings to match.
   12075       switch (BuiltinName[16]) {
   12076       default: break;
   12077       case 'a':	 // 4 strings to match.
   12078         if (BuiltinName.substr(17, 2) != "ck")
   12079           break;
   12080         switch (BuiltinName[19]) {
   12081         default: break;
   12082         case 's':	 // 2 strings to match.
   12083           if (BuiltinName[20] != 's')
   12084             break;
   12085           switch (BuiltinName[21]) {
   12086           default: break;
   12087           case 'd':	 // 1 string to match.
   12088             if (BuiltinName.substr(22, 4) != "w128")
   12089               break;
   12090             return Intrinsic::x86_sse2_packssdw_128;	 // "__builtin_ia32_packssdw128"
   12091           case 'w':	 // 1 string to match.
   12092             if (BuiltinName.substr(22, 4) != "b128")
   12093               break;
   12094             return Intrinsic::x86_sse2_packsswb_128;	 // "__builtin_ia32_packsswb128"
   12095           }
   12096           break;
   12097         case 'u':	 // 2 strings to match.
   12098           if (BuiltinName[20] != 's')
   12099             break;
   12100           switch (BuiltinName[21]) {
   12101           default: break;
   12102           case 'd':	 // 1 string to match.
   12103             if (BuiltinName.substr(22, 4) != "w128")
   12104               break;
   12105             return Intrinsic::x86_sse41_packusdw;	 // "__builtin_ia32_packusdw128"
   12106           case 'w':	 // 1 string to match.
   12107             if (BuiltinName.substr(22, 4) != "b128")
   12108               break;
   12109             return Intrinsic::x86_sse2_packuswb_128;	 // "__builtin_ia32_packuswb128"
   12110           }
   12111           break;
   12112         }
   12113         break;
   12114       case 'b':	 // 1 string to match.
   12115         if (BuiltinName.substr(17, 9) != "lendvb128")
   12116           break;
   12117         return Intrinsic::x86_sse41_pblendvb;	 // "__builtin_ia32_pblendvb128"
   12118       case 'm':	 // 14 strings to match.
   12119         switch (BuiltinName[17]) {
   12120         default: break;
   12121         case 'o':	 // 13 strings to match.
   12122           if (BuiltinName[18] != 'v')
   12123             break;
   12124           switch (BuiltinName[19]) {
   12125           default: break;
   12126           case 'm':	 // 1 string to match.
   12127             if (BuiltinName.substr(20, 6) != "skb128")
   12128               break;
   12129             return Intrinsic::x86_sse2_pmovmskb_128;	 // "__builtin_ia32_pmovmskb128"
   12130           case 's':	 // 6 strings to match.
   12131             if (BuiltinName[20] != 'x')
   12132               break;
   12133             switch (BuiltinName[21]) {
   12134             default: break;
   12135             case 'b':	 // 3 strings to match.
   12136               switch (BuiltinName[22]) {
   12137               default: break;
   12138               case 'd':	 // 1 string to match.
   12139                 if (BuiltinName.substr(23, 3) != "128")
   12140                   break;
   12141                 return Intrinsic::x86_sse41_pmovsxbd;	 // "__builtin_ia32_pmovsxbd128"
   12142               case 'q':	 // 1 string to match.
   12143                 if (BuiltinName.substr(23, 3) != "128")
   12144                   break;
   12145                 return Intrinsic::x86_sse41_pmovsxbq;	 // "__builtin_ia32_pmovsxbq128"
   12146               case 'w':	 // 1 string to match.
   12147                 if (BuiltinName.substr(23, 3) != "128")
   12148                   break;
   12149                 return Intrinsic::x86_sse41_pmovsxbw;	 // "__builtin_ia32_pmovsxbw128"
   12150               }
   12151               break;
   12152             case 'd':	 // 1 string to match.
   12153               if (BuiltinName.substr(22, 4) != "q128")
   12154                 break;
   12155               return Intrinsic::x86_sse41_pmovsxdq;	 // "__builtin_ia32_pmovsxdq128"
   12156             case 'w':	 // 2 strings to match.
   12157               switch (BuiltinName[22]) {
   12158               default: break;
   12159               case 'd':	 // 1 string to match.
   12160                 if (BuiltinName.substr(23, 3) != "128")
   12161                   break;
   12162                 return Intrinsic::x86_sse41_pmovsxwd;	 // "__builtin_ia32_pmovsxwd128"
   12163               case 'q':	 // 1 string to match.
   12164                 if (BuiltinName.substr(23, 3) != "128")
   12165                   break;
   12166                 return Intrinsic::x86_sse41_pmovsxwq;	 // "__builtin_ia32_pmovsxwq128"
   12167               }
   12168               break;
   12169             }
   12170             break;
   12171           case 'z':	 // 6 strings to match.
   12172             if (BuiltinName[20] != 'x')
   12173               break;
   12174             switch (BuiltinName[21]) {
   12175             default: break;
   12176             case 'b':	 // 3 strings to match.
   12177               switch (BuiltinName[22]) {
   12178               default: break;
   12179               case 'd':	 // 1 string to match.
   12180                 if (BuiltinName.substr(23, 3) != "128")
   12181                   break;
   12182                 return Intrinsic::x86_sse41_pmovzxbd;	 // "__builtin_ia32_pmovzxbd128"
   12183               case 'q':	 // 1 string to match.
   12184                 if (BuiltinName.substr(23, 3) != "128")
   12185                   break;
   12186                 return Intrinsic::x86_sse41_pmovzxbq;	 // "__builtin_ia32_pmovzxbq128"
   12187               case 'w':	 // 1 string to match.
   12188                 if (BuiltinName.substr(23, 3) != "128")
   12189                   break;
   12190                 return Intrinsic::x86_sse41_pmovzxbw;	 // "__builtin_ia32_pmovzxbw128"
   12191               }
   12192               break;
   12193             case 'd':	 // 1 string to match.
   12194               if (BuiltinName.substr(22, 4) != "q128")
   12195                 break;
   12196               return Intrinsic::x86_sse41_pmovzxdq;	 // "__builtin_ia32_pmovzxdq128"
   12197             case 'w':	 // 2 strings to match.
   12198               switch (BuiltinName[22]) {
   12199               default: break;
   12200               case 'd':	 // 1 string to match.
   12201                 if (BuiltinName.substr(23, 3) != "128")
   12202                   break;
   12203                 return Intrinsic::x86_sse41_pmovzxwd;	 // "__builtin_ia32_pmovzxwd128"
   12204               case 'q':	 // 1 string to match.
   12205                 if (BuiltinName.substr(23, 3) != "128")
   12206                   break;
   12207                 return Intrinsic::x86_sse41_pmovzxwq;	 // "__builtin_ia32_pmovzxwq128"
   12208               }
   12209               break;
   12210             }
   12211             break;
   12212           }
   12213           break;
   12214         case 'u':	 // 1 string to match.
   12215           if (BuiltinName.substr(18, 8) != "lhrsw128")
   12216             break;
   12217           return Intrinsic::x86_ssse3_pmul_hr_sw_128;	 // "__builtin_ia32_pmulhrsw128"
   12218         }
   12219         break;
   12220       case 't':	 // 2 strings to match.
   12221         if (BuiltinName.substr(17, 6) != "estnzc")
   12222           break;
   12223         switch (BuiltinName[23]) {
   12224         default: break;
   12225         case '1':	 // 1 string to match.
   12226           if (BuiltinName.substr(24, 2) != "28")
   12227             break;
   12228           return Intrinsic::x86_sse41_ptestnzc;	 // "__builtin_ia32_ptestnzc128"
   12229         case '2':	 // 1 string to match.
   12230           if (BuiltinName.substr(24, 2) != "56")
   12231             break;
   12232           return Intrinsic::x86_avx_ptestnzc_256;	 // "__builtin_ia32_ptestnzc256"
   12233         }
   12234         break;
   12235       }
   12236       break;
   12237     case 's':	 // 3 strings to match.
   12238       if (BuiltinName.substr(16, 4) != "tore")
   12239         break;
   12240       switch (BuiltinName[20]) {
   12241       default: break;
   12242       case 'd':	 // 1 string to match.
   12243         if (BuiltinName.substr(21, 5) != "qu256")
   12244           break;
   12245         return Intrinsic::x86_avx_storeu_dq_256;	 // "__builtin_ia32_storedqu256"
   12246       case 'u':	 // 2 strings to match.
   12247         if (BuiltinName[21] != 'p')
   12248           break;
   12249         switch (BuiltinName[22]) {
   12250         default: break;
   12251         case 'd':	 // 1 string to match.
   12252           if (BuiltinName.substr(23, 3) != "256")
   12253             break;
   12254           return Intrinsic::x86_avx_storeu_pd_256;	 // "__builtin_ia32_storeupd256"
   12255         case 's':	 // 1 string to match.
   12256           if (BuiltinName.substr(23, 3) != "256")
   12257             break;
   12258           return Intrinsic::x86_avx_storeu_ps_256;	 // "__builtin_ia32_storeups256"
   12259         }
   12260         break;
   12261       }
   12262       break;
   12263     case 'v':	 // 4 strings to match.
   12264       if (BuiltinName.substr(16, 4) != "test")
   12265         break;
   12266       switch (BuiltinName[20]) {
   12267       default: break;
   12268       case 'c':	 // 2 strings to match.
   12269         if (BuiltinName[21] != 'p')
   12270           break;
   12271         switch (BuiltinName[22]) {
   12272         default: break;
   12273         case 'd':	 // 1 string to match.
   12274           if (BuiltinName.substr(23, 3) != "256")
   12275             break;
   12276           return Intrinsic::x86_avx_vtestc_pd_256;	 // "__builtin_ia32_vtestcpd256"
   12277         case 's':	 // 1 string to match.
   12278           if (BuiltinName.substr(23, 3) != "256")
   12279             break;
   12280           return Intrinsic::x86_avx_vtestc_ps_256;	 // "__builtin_ia32_vtestcps256"
   12281         }
   12282         break;
   12283       case 'z':	 // 2 strings to match.
   12284         if (BuiltinName[21] != 'p')
   12285           break;
   12286         switch (BuiltinName[22]) {
   12287         default: break;
   12288         case 'd':	 // 1 string to match.
   12289           if (BuiltinName.substr(23, 3) != "256")
   12290             break;
   12291           return Intrinsic::x86_avx_vtestz_pd_256;	 // "__builtin_ia32_vtestzpd256"
   12292         case 's':	 // 1 string to match.
   12293           if (BuiltinName.substr(23, 3) != "256")
   12294             break;
   12295           return Intrinsic::x86_avx_vtestz_ps_256;	 // "__builtin_ia32_vtestzps256"
   12296         }
   12297         break;
   12298       }
   12299       break;
   12300     }
   12301     break;
   12302   case 27:	 // 15 strings to match.
   12303     if (BuiltinName.substr(0, 15) != "__builtin_ia32_")
   12304       break;
   12305     switch (BuiltinName[15]) {
   12306     default: break;
   12307     case 'c':	 // 2 strings to match.
   12308       if (BuiltinName.substr(16, 4) != "vttp")
   12309         break;
   12310       switch (BuiltinName[20]) {
   12311       default: break;
   12312       case 'd':	 // 1 string to match.
   12313         if (BuiltinName.substr(21, 6) != "2dq256")
   12314           break;
   12315         return Intrinsic::x86_avx_cvtt_pd2dq_256;	 // "__builtin_ia32_cvttpd2dq256"
   12316       case 's':	 // 1 string to match.
   12317         if (BuiltinName.substr(21, 6) != "2dq256")
   12318           break;
   12319         return Intrinsic::x86_avx_cvtt_ps2dq_256;	 // "__builtin_ia32_cvttps2dq256"
   12320       }
   12321       break;
   12322     case 'e':	 // 1 string to match.
   12323       if (BuiltinName.substr(16, 11) != "xtractps128")
   12324         break;
   12325       return Intrinsic::x86_sse41_extractps;	 // "__builtin_ia32_extractps128"
   12326     case 'p':	 // 5 strings to match.
   12327       switch (BuiltinName[16]) {
   12328       default: break;
   12329       case 'c':	 // 4 strings to match.
   12330         if (BuiltinName.substr(17, 2) != "mp")
   12331           break;
   12332         switch (BuiltinName[19]) {
   12333         default: break;
   12334         case 'e':	 // 2 strings to match.
   12335           if (BuiltinName.substr(20, 3) != "str")
   12336             break;
   12337           switch (BuiltinName[23]) {
   12338           default: break;
   12339           case 'i':	 // 1 string to match.
   12340             if (BuiltinName.substr(24, 3) != "128")
   12341               break;
   12342             return Intrinsic::x86_sse42_pcmpestri128;	 // "__builtin_ia32_pcmpestri128"
   12343           case 'm':	 // 1 string to match.
   12344             if (BuiltinName.substr(24, 3) != "128")
   12345               break;
   12346             return Intrinsic::x86_sse42_pcmpestrm128;	 // "__builtin_ia32_pcmpestrm128"
   12347           }
   12348           break;
   12349         case 'i':	 // 2 strings to match.
   12350           if (BuiltinName.substr(20, 3) != "str")
   12351             break;
   12352           switch (BuiltinName[23]) {
   12353           default: break;
   12354           case 'i':	 // 1 string to match.
   12355             if (BuiltinName.substr(24, 3) != "128")
   12356               break;
   12357             return Intrinsic::x86_sse42_pcmpistri128;	 // "__builtin_ia32_pcmpistri128"
   12358           case 'm':	 // 1 string to match.
   12359             if (BuiltinName.substr(24, 3) != "128")
   12360               break;
   12361             return Intrinsic::x86_sse42_pcmpistrm128;	 // "__builtin_ia32_pcmpistrm128"
   12362           }
   12363           break;
   12364         }
   12365         break;
   12366       case 'm':	 // 1 string to match.
   12367         if (BuiltinName.substr(17, 10) != "addubsw128")
   12368           break;
   12369         return Intrinsic::x86_ssse3_pmadd_ub_sw_128;	 // "__builtin_ia32_pmaddubsw128"
   12370       }
   12371       break;
   12372     case 'v':	 // 7 strings to match.
   12373       switch (BuiltinName[16]) {
   12374       default: break;
   12375       case 'b':	 // 1 string to match.
   12376         if (BuiltinName.substr(17, 10) != "roadcastss")
   12377           break;
   12378         return Intrinsic::x86_avx_vbroadcastss;	 // "__builtin_ia32_vbroadcastss"
   12379       case 'e':	 // 2 strings to match.
   12380         if (BuiltinName.substr(17, 2) != "c_")
   12381           break;
   12382         switch (BuiltinName[19]) {
   12383         default: break;
   12384         case 'e':	 // 1 string to match.
   12385           if (BuiltinName.substr(20, 7) != "xt_v4hi")
   12386             break;
   12387           return Intrinsic::x86_mmx_pextr_w;	 // "__builtin_ia32_vec_ext_v4hi"
   12388         case 's':	 // 1 string to match.
   12389           if (BuiltinName.substr(20, 7) != "et_v4hi")
   12390             break;
   12391           return Intrinsic::x86_mmx_pinsr_w;	 // "__builtin_ia32_vec_set_v4hi"
   12392         }
   12393         break;
   12394       case 'p':	 // 4 strings to match.
   12395         if (BuiltinName.substr(17, 5) != "ermil")
   12396           break;
   12397         switch (BuiltinName[22]) {
   12398         default: break;
   12399         case 'p':	 // 2 strings to match.
   12400           switch (BuiltinName[23]) {
   12401           default: break;
   12402           case 'd':	 // 1 string to match.
   12403             if (BuiltinName.substr(24, 3) != "256")
   12404               break;
   12405             return Intrinsic::x86_avx_vpermil_pd_256;	 // "__builtin_ia32_vpermilpd256"
   12406           case 's':	 // 1 string to match.
   12407             if (BuiltinName.substr(24, 3) != "256")
   12408               break;
   12409             return Intrinsic::x86_avx_vpermil_ps_256;	 // "__builtin_ia32_vpermilps256"
   12410           }
   12411           break;
   12412         case 'v':	 // 2 strings to match.
   12413           if (BuiltinName.substr(23, 3) != "arp")
   12414             break;
   12415           switch (BuiltinName[26]) {
   12416           default: break;
   12417           case 'd':	 // 1 string to match.
   12418             return Intrinsic::x86_avx_vpermilvar_pd;	 // "__builtin_ia32_vpermilvarpd"
   12419           case 's':	 // 1 string to match.
   12420             return Intrinsic::x86_avx_vpermilvar_ps;	 // "__builtin_ia32_vpermilvarps"
   12421           }
   12422           break;
   12423         }
   12424         break;
   12425       }
   12426       break;
   12427     }
   12428     break;
   12429   case 28:	 // 17 strings to match.
   12430     if (BuiltinName.substr(0, 15) != "__builtin_ia32_")
   12431       break;
   12432     switch (BuiltinName[15]) {
   12433     default: break;
   12434     case 'a':	 // 2 strings to match.
   12435       if (BuiltinName.substr(16, 2) != "es")
   12436         break;
   12437       switch (BuiltinName[18]) {
   12438       default: break;
   12439       case 'd':	 // 1 string to match.
   12440         if (BuiltinName.substr(19, 9) != "eclast128")
   12441           break;
   12442         return Intrinsic::x86_aesni_aesdeclast;	 // "__builtin_ia32_aesdeclast128"
   12443       case 'e':	 // 1 string to match.
   12444         if (BuiltinName.substr(19, 9) != "nclast128")
   12445           break;
   12446         return Intrinsic::x86_aesni_aesenclast;	 // "__builtin_ia32_aesenclast128"
   12447       }
   12448       break;
   12449     case 'm':	 // 2 strings to match.
   12450       if (BuiltinName.substr(16, 8) != "askloadp")
   12451         break;
   12452       switch (BuiltinName[24]) {
   12453       default: break;
   12454       case 'd':	 // 1 string to match.
   12455         if (BuiltinName.substr(25, 3) != "256")
   12456           break;
   12457         return Intrinsic::x86_avx_maskload_pd_256;	 // "__builtin_ia32_maskloadpd256"
   12458       case 's':	 // 1 string to match.
   12459         if (BuiltinName.substr(25, 3) != "256")
   12460           break;
   12461         return Intrinsic::x86_avx_maskload_ps_256;	 // "__builtin_ia32_maskloadps256"
   12462       }
   12463       break;
   12464     case 'p':	 // 11 strings to match.
   12465       switch (BuiltinName[16]) {
   12466       default: break;
   12467       case 'c':	 // 10 strings to match.
   12468         if (BuiltinName.substr(17, 2) != "mp")
   12469           break;
   12470         switch (BuiltinName[19]) {
   12471         default: break;
   12472         case 'e':	 // 5 strings to match.
   12473           if (BuiltinName.substr(20, 4) != "stri")
   12474             break;
   12475           switch (BuiltinName[24]) {
   12476           default: break;
   12477           case 'a':	 // 1 string to match.
   12478             if (BuiltinName.substr(25, 3) != "128")
   12479               break;
   12480             return Intrinsic::x86_sse42_pcmpestria128;	 // "__builtin_ia32_pcmpestria128"
   12481           case 'c':	 // 1 string to match.
   12482             if (BuiltinName.substr(25, 3) != "128")
   12483               break;
   12484             return Intrinsic::x86_sse42_pcmpestric128;	 // "__builtin_ia32_pcmpestric128"
   12485           case 'o':	 // 1 string to match.
   12486             if (BuiltinName.substr(25, 3) != "128")
   12487               break;
   12488             return Intrinsic::x86_sse42_pcmpestrio128;	 // "__builtin_ia32_pcmpestrio128"
   12489           case 's':	 // 1 string to match.
   12490             if (BuiltinName.substr(25, 3) != "128")
   12491               break;
   12492             return Intrinsic::x86_sse42_pcmpestris128;	 // "__builtin_ia32_pcmpestris128"
   12493           case 'z':	 // 1 string to match.
   12494             if (BuiltinName.substr(25, 3) != "128")
   12495               break;
   12496             return Intrinsic::x86_sse42_pcmpestriz128;	 // "__builtin_ia32_pcmpestriz128"
   12497           }
   12498           break;
   12499         case 'i':	 // 5 strings to match.
   12500           if (BuiltinName.substr(20, 4) != "stri")
   12501             break;
   12502           switch (BuiltinName[24]) {
   12503           default: break;
   12504           case 'a':	 // 1 string to match.
   12505             if (BuiltinName.substr(25, 3) != "128")
   12506               break;
   12507             return Intrinsic::x86_sse42_pcmpistria128;	 // "__builtin_ia32_pcmpistria128"
   12508           case 'c':	 // 1 string to match.
   12509             if (BuiltinName.substr(25, 3) != "128")
   12510               break;
   12511             return Intrinsic::x86_sse42_pcmpistric128;	 // "__builtin_ia32_pcmpistric128"
   12512           case 'o':	 // 1 string to match.
   12513             if (BuiltinName.substr(25, 3) != "128")
   12514               break;
   12515             return Intrinsic::x86_sse42_pcmpistrio128;	 // "__builtin_ia32_pcmpistrio128"
   12516           case 's':	 // 1 string to match.
   12517             if (BuiltinName.substr(25, 3) != "128")
   12518               break;
   12519             return Intrinsic::x86_sse42_pcmpistris128;	 // "__builtin_ia32_pcmpistris128"
   12520           case 'z':	 // 1 string to match.
   12521             if (BuiltinName.substr(25, 3) != "128")
   12522               break;
   12523             return Intrinsic::x86_sse42_pcmpistriz128;	 // "__builtin_ia32_pcmpistriz128"
   12524           }
   12525           break;
   12526         }
   12527         break;
   12528       case 'h':	 // 1 string to match.
   12529         if (BuiltinName.substr(17, 11) != "minposuw128")
   12530           break;
   12531         return Intrinsic::x86_sse41_phminposuw;	 // "__builtin_ia32_phminposuw128"
   12532       }
   12533       break;
   12534     case 'v':	 // 2 strings to match.
   12535       if (BuiltinName.substr(16, 8) != "testnzcp")
   12536         break;
   12537       switch (BuiltinName[24]) {
   12538       default: break;
   12539       case 'd':	 // 1 string to match.
   12540         if (BuiltinName.substr(25, 3) != "256")
   12541           break;
   12542         return Intrinsic::x86_avx_vtestnzc_pd_256;	 // "__builtin_ia32_vtestnzcpd256"
   12543       case 's':	 // 1 string to match.
   12544         if (BuiltinName.substr(25, 3) != "256")
   12545           break;
   12546         return Intrinsic::x86_avx_vtestnzc_ps_256;	 // "__builtin_ia32_vtestnzcps256"
   12547       }
   12548       break;
   12549     }
   12550     break;
   12551   case 29:	 // 2 strings to match.
   12552     if (BuiltinName.substr(0, 25) != "__builtin_ia32_maskstorep")
   12553       break;
   12554     switch (BuiltinName[25]) {
   12555     default: break;
   12556     case 'd':	 // 1 string to match.
   12557       if (BuiltinName.substr(26, 3) != "256")
   12558         break;
   12559       return Intrinsic::x86_avx_maskstore_pd_256;	 // "__builtin_ia32_maskstorepd256"
   12560     case 's':	 // 1 string to match.
   12561       if (BuiltinName.substr(26, 3) != "256")
   12562         break;
   12563       return Intrinsic::x86_avx_maskstore_ps_256;	 // "__builtin_ia32_maskstoreps256"
   12564     }
   12565     break;
   12566   case 30:	 // 4 strings to match.
   12567     if (BuiltinName.substr(0, 16) != "__builtin_ia32_v")
   12568       break;
   12569     switch (BuiltinName[16]) {
   12570     default: break;
   12571     case 'b':	 // 2 strings to match.
   12572       if (BuiltinName.substr(17, 9) != "roadcasts")
   12573         break;
   12574       switch (BuiltinName[26]) {
   12575       default: break;
   12576       case 'd':	 // 1 string to match.
   12577         if (BuiltinName.substr(27, 3) != "256")
   12578           break;
   12579         return Intrinsic::x86_avx_vbroadcast_sd_256;	 // "__builtin_ia32_vbroadcastsd256"
   12580       case 's':	 // 1 string to match.
   12581         if (BuiltinName.substr(27, 3) != "256")
   12582           break;
   12583         return Intrinsic::x86_avx_vbroadcastss_256;	 // "__builtin_ia32_vbroadcastss256"
   12584       }
   12585       break;
   12586     case 'p':	 // 2 strings to match.
   12587       if (BuiltinName.substr(17, 9) != "ermilvarp")
   12588         break;
   12589       switch (BuiltinName[26]) {
   12590       default: break;
   12591       case 'd':	 // 1 string to match.
   12592         if (BuiltinName.substr(27, 3) != "256")
   12593           break;
   12594         return Intrinsic::x86_avx_vpermilvar_pd_256;	 // "__builtin_ia32_vpermilvarpd256"
   12595       case 's':	 // 1 string to match.
   12596         if (BuiltinName.substr(27, 3) != "256")
   12597           break;
   12598         return Intrinsic::x86_avx_vpermilvar_ps_256;	 // "__builtin_ia32_vpermilvarps256"
   12599       }
   12600       break;
   12601     }
   12602     break;
   12603   case 31:	 // 3 strings to match.
   12604     if (BuiltinName.substr(0, 26) != "__builtin_ia32_vperm2f128_")
   12605       break;
   12606     switch (BuiltinName[26]) {
   12607     default: break;
   12608     case 'p':	 // 2 strings to match.
   12609       switch (BuiltinName[27]) {
   12610       default: break;
   12611       case 'd':	 // 1 string to match.
   12612         if (BuiltinName.substr(28, 3) != "256")
   12613           break;
   12614         return Intrinsic::x86_avx_vperm2f128_pd_256;	 // "__builtin_ia32_vperm2f128_pd256"
   12615       case 's':	 // 1 string to match.
   12616         if (BuiltinName.substr(28, 3) != "256")
   12617           break;
   12618         return Intrinsic::x86_avx_vperm2f128_ps_256;	 // "__builtin_ia32_vperm2f128_ps256"
   12619       }
   12620       break;
   12621     case 's':	 // 1 string to match.
   12622       if (BuiltinName.substr(27, 4) != "i256")
   12623         break;
   12624       return Intrinsic::x86_avx_vperm2f128_si_256;	 // "__builtin_ia32_vperm2f128_si256"
   12625     }
   12626     break;
   12627   case 32:	 // 3 strings to match.
   12628     if (BuiltinName.substr(0, 27) != "__builtin_ia32_vinsertf128_")
   12629       break;
   12630     switch (BuiltinName[27]) {
   12631     default: break;
   12632     case 'p':	 // 2 strings to match.
   12633       switch (BuiltinName[28]) {
   12634       default: break;
   12635       case 'd':	 // 1 string to match.
   12636         if (BuiltinName.substr(29, 3) != "256")
   12637           break;
   12638         return Intrinsic::x86_avx_vinsertf128_pd_256;	 // "__builtin_ia32_vinsertf128_pd256"
   12639       case 's':	 // 1 string to match.
   12640         if (BuiltinName.substr(29, 3) != "256")
   12641           break;
   12642         return Intrinsic::x86_avx_vinsertf128_ps_256;	 // "__builtin_ia32_vinsertf128_ps256"
   12643       }
   12644       break;
   12645     case 's':	 // 1 string to match.
   12646       if (BuiltinName.substr(28, 4) != "i256")
   12647         break;
   12648       return Intrinsic::x86_avx_vinsertf128_si_256;	 // "__builtin_ia32_vinsertf128_si256"
   12649     }
   12650     break;
   12651   case 33:	 // 4 strings to match.
   12652     if (BuiltinName.substr(0, 15) != "__builtin_ia32_")
   12653       break;
   12654     switch (BuiltinName[15]) {
   12655     default: break;
   12656     case 'a':	 // 1 string to match.
   12657       if (BuiltinName.substr(16, 17) != "eskeygenassist128")
   12658         break;
   12659       return Intrinsic::x86_aesni_aeskeygenassist;	 // "__builtin_ia32_aeskeygenassist128"
   12660     case 'v':	 // 3 strings to match.
   12661       if (BuiltinName.substr(16, 12) != "extractf128_")
   12662         break;
   12663       switch (BuiltinName[28]) {
   12664       default: break;
   12665       case 'p':	 // 2 strings to match.
   12666         switch (BuiltinName[29]) {
   12667         default: break;
   12668         case 'd':	 // 1 string to match.
   12669           if (BuiltinName.substr(30, 3) != "256")
   12670             break;
   12671           return Intrinsic::x86_avx_vextractf128_pd_256;	 // "__builtin_ia32_vextractf128_pd256"
   12672         case 's':	 // 1 string to match.
   12673           if (BuiltinName.substr(30, 3) != "256")
   12674             break;
   12675           return Intrinsic::x86_avx_vextractf128_ps_256;	 // "__builtin_ia32_vextractf128_ps256"
   12676         }
   12677         break;
   12678       case 's':	 // 1 string to match.
   12679         if (BuiltinName.substr(29, 4) != "i256")
   12680           break;
   12681         return Intrinsic::x86_avx_vextractf128_si_256;	 // "__builtin_ia32_vextractf128_si256"
   12682       }
   12683       break;
   12684     }
   12685     break;
   12686   case 35:	 // 4 strings to match.
   12687     if (BuiltinName.substr(0, 15) != "__builtin_ia32_")
   12688       break;
   12689     switch (BuiltinName[15]) {
   12690     default: break;
   12691     case 'p':	 // 2 strings to match.
   12692       if (BuiltinName[16] != 's')
   12693         break;
   12694       switch (BuiltinName[17]) {
   12695       default: break;
   12696       case 'l':	 // 1 string to match.
   12697         if (BuiltinName.substr(18, 17) != "ldqi128_byteshift")
   12698           break;
   12699         return Intrinsic::x86_sse2_psll_dq_bs;	 // "__builtin_ia32_pslldqi128_byteshift"
   12700       case 'r':	 // 1 string to match.
   12701         if (BuiltinName.substr(18, 17) != "ldqi128_byteshift")
   12702           break;
   12703         return Intrinsic::x86_sse2_psrl_dq_bs;	 // "__builtin_ia32_psrldqi128_byteshift"
   12704       }
   12705       break;
   12706     case 'v':	 // 2 strings to match.
   12707       if (BuiltinName.substr(16, 15) != "broadcastf128_p")
   12708         break;
   12709       switch (BuiltinName[31]) {
   12710       default: break;
   12711       case 'd':	 // 1 string to match.
   12712         if (BuiltinName.substr(32, 3) != "256")
   12713           break;
   12714         return Intrinsic::x86_avx_vbroadcastf128_pd_256;	 // "__builtin_ia32_vbroadcastf128_pd256"
   12715       case 's':	 // 1 string to match.
   12716         if (BuiltinName.substr(32, 3) != "256")
   12717           break;
   12718         return Intrinsic::x86_avx_vbroadcastf128_ps_256;	 // "__builtin_ia32_vbroadcastf128_ps256"
   12719       }
   12720       break;
   12721     }
   12722     break;
   12723   }
   12724   }
   12725   return Intrinsic::not_intrinsic;
   12726 }
   12727 #endif
   12728 
   12729 #if defined(_MSC_VER) && defined(setjmp_undefined_for_msvc)
   12730 // let's return it to _setjmp state
   12731 #  pragma pop_macro("setjmp")
   12732 #  undef setjmp_undefined_for_msvc
   12733 #endif
   12734 
   12735