/*===- TableGen'erated file -------------------------------------*- C++ -*-===*\
|*                                                                            *|
|* Intrinsic Function Source Fragment                                         *|
|*                                                                            *|
|* Automatically generated file, do not edit!                                 *|
|*                                                                            *|
\*===----------------------------------------------------------------------===*/

// VisualStudio defines setjmp as _setjmp
#if defined(_MSC_VER) && defined(setjmp) && \
                         !defined(setjmp_undefined_for_msvc)
#  pragma push_macro("setjmp")
#  undef setjmp
#  define setjmp_undefined_for_msvc
#endif

// Enum values for Intrinsics.h
#ifdef GET_INTRINSIC_ENUM_VALUES
    adjust_trampoline,                        // llvm.adjust.trampoline
    annotation,                               // llvm.annotation
    arm_cdp,                                  // llvm.arm.cdp
    arm_cdp2,                                 // llvm.arm.cdp2
    arm_get_fpscr,                            // llvm.arm.get.fpscr
    arm_ldrexd,                               // llvm.arm.ldrexd
    arm_mcr,                                  // llvm.arm.mcr
    arm_mcr2,                                 // llvm.arm.mcr2
    arm_mcrr,                                 // llvm.arm.mcrr
    arm_mcrr2,                                // llvm.arm.mcrr2
    arm_mrc,                                  // llvm.arm.mrc
    arm_mrc2,                                 // llvm.arm.mrc2
    arm_neon_vabds,                           // llvm.arm.neon.vabds
    arm_neon_vabdu,                           // llvm.arm.neon.vabdu
    arm_neon_vabs,                            // llvm.arm.neon.vabs
    arm_neon_vacged,                          // llvm.arm.neon.vacged
    arm_neon_vacgeq,                          // llvm.arm.neon.vacgeq
    arm_neon_vacgtd,                          // llvm.arm.neon.vacgtd
    arm_neon_vacgtq,                          // llvm.arm.neon.vacgtq
    arm_neon_vaddhn,                          // llvm.arm.neon.vaddhn
    arm_neon_vbsl,                            // llvm.arm.neon.vbsl
    arm_neon_vcls,                            // llvm.arm.neon.vcls
    arm_neon_vclz,                            // llvm.arm.neon.vclz
    arm_neon_vcnt,                            // llvm.arm.neon.vcnt
    arm_neon_vcvtfp2fxs,                      // llvm.arm.neon.vcvtfp2fxs
    arm_neon_vcvtfp2fxu,                      // llvm.arm.neon.vcvtfp2fxu
    arm_neon_vcvtfp2hf,                       // llvm.arm.neon.vcvtfp2hf
    arm_neon_vcvtfxs2fp,                      // llvm.arm.neon.vcvtfxs2fp
    arm_neon_vcvtfxu2fp,                      // llvm.arm.neon.vcvtfxu2fp
    arm_neon_vcvthf2fp,                       // llvm.arm.neon.vcvthf2fp
    arm_neon_vhadds,                          // llvm.arm.neon.vhadds
    arm_neon_vhaddu,                          // llvm.arm.neon.vhaddu
    arm_neon_vhsubs,                          // llvm.arm.neon.vhsubs
    arm_neon_vhsubu,                          // llvm.arm.neon.vhsubu
    arm_neon_vld1,                            // llvm.arm.neon.vld1
    arm_neon_vld2,                            // llvm.arm.neon.vld2
    arm_neon_vld2lane,                        // llvm.arm.neon.vld2lane
    arm_neon_vld3,                            // llvm.arm.neon.vld3
    arm_neon_vld3lane,                        // llvm.arm.neon.vld3lane
    arm_neon_vld4,                            // llvm.arm.neon.vld4
    arm_neon_vld4lane,                        // llvm.arm.neon.vld4lane
    arm_neon_vmaxs,                           // llvm.arm.neon.vmaxs
    arm_neon_vmaxu,                           // llvm.arm.neon.vmaxu
    arm_neon_vmins,                           // llvm.arm.neon.vmins
    arm_neon_vminu,                           // llvm.arm.neon.vminu
    arm_neon_vmullp,                          // llvm.arm.neon.vmullp
    arm_neon_vmulls,                          // llvm.arm.neon.vmulls
    arm_neon_vmullu,                          // llvm.arm.neon.vmullu
    arm_neon_vmulp,                           // llvm.arm.neon.vmulp
    arm_neon_vpadals,                         // llvm.arm.neon.vpadals
    arm_neon_vpadalu,                         // llvm.arm.neon.vpadalu
    arm_neon_vpadd,                           // llvm.arm.neon.vpadd
    arm_neon_vpaddls,                         // llvm.arm.neon.vpaddls
    arm_neon_vpaddlu,                         // llvm.arm.neon.vpaddlu
    arm_neon_vpmaxs,                          // llvm.arm.neon.vpmaxs
    arm_neon_vpmaxu,                          // llvm.arm.neon.vpmaxu
    arm_neon_vpmins,                          // llvm.arm.neon.vpmins
    arm_neon_vpminu,                          // llvm.arm.neon.vpminu
    arm_neon_vqabs,                           // llvm.arm.neon.vqabs
    arm_neon_vqadds,                          // llvm.arm.neon.vqadds
    arm_neon_vqaddu,                          // llvm.arm.neon.vqaddu
    arm_neon_vqdmlal,                         // llvm.arm.neon.vqdmlal
    arm_neon_vqdmlsl,                         // llvm.arm.neon.vqdmlsl
    arm_neon_vqdmulh,                         // llvm.arm.neon.vqdmulh
    arm_neon_vqdmull,                         // llvm.arm.neon.vqdmull
    arm_neon_vqmovns,                         // llvm.arm.neon.vqmovns
    arm_neon_vqmovnsu,                        // llvm.arm.neon.vqmovnsu
    arm_neon_vqmovnu,                         // llvm.arm.neon.vqmovnu
    arm_neon_vqneg,                           // llvm.arm.neon.vqneg
    arm_neon_vqrdmulh,                        // llvm.arm.neon.vqrdmulh
    arm_neon_vqrshiftns,                      // llvm.arm.neon.vqrshiftns
    arm_neon_vqrshiftnsu,                     // llvm.arm.neon.vqrshiftnsu
    arm_neon_vqrshiftnu,                      // llvm.arm.neon.vqrshiftnu
    arm_neon_vqrshifts,                       // llvm.arm.neon.vqrshifts
    arm_neon_vqrshiftu,                       // llvm.arm.neon.vqrshiftu
    arm_neon_vqshiftns,                       // llvm.arm.neon.vqshiftns
    arm_neon_vqshiftnsu,                      // llvm.arm.neon.vqshiftnsu
    arm_neon_vqshiftnu,                       // llvm.arm.neon.vqshiftnu
    arm_neon_vqshifts,                        // llvm.arm.neon.vqshifts
    arm_neon_vqshiftsu,                       // llvm.arm.neon.vqshiftsu
    arm_neon_vqshiftu,                        // llvm.arm.neon.vqshiftu
    arm_neon_vqsubs,                          // llvm.arm.neon.vqsubs
    arm_neon_vqsubu,                          // llvm.arm.neon.vqsubu
    arm_neon_vraddhn,                         // llvm.arm.neon.vraddhn
    arm_neon_vrecpe,                          // llvm.arm.neon.vrecpe
    arm_neon_vrecps,                          // llvm.arm.neon.vrecps
    arm_neon_vrhadds,                         // llvm.arm.neon.vrhadds
    arm_neon_vrhaddu,                         // llvm.arm.neon.vrhaddu
    arm_neon_vrshiftn,                        // llvm.arm.neon.vrshiftn
    arm_neon_vrshifts,                        // llvm.arm.neon.vrshifts
    arm_neon_vrshiftu,                        // llvm.arm.neon.vrshiftu
    arm_neon_vrsqrte,                         // llvm.arm.neon.vrsqrte
    arm_neon_vrsqrts,                         // llvm.arm.neon.vrsqrts
    arm_neon_vrsubhn,                         // llvm.arm.neon.vrsubhn
    arm_neon_vshiftins,                       // llvm.arm.neon.vshiftins
    arm_neon_vshiftls,                        // llvm.arm.neon.vshiftls
    arm_neon_vshiftlu,                        // llvm.arm.neon.vshiftlu
    arm_neon_vshiftn,                         // llvm.arm.neon.vshiftn
    arm_neon_vshifts,                         // llvm.arm.neon.vshifts
    arm_neon_vshiftu,                         // llvm.arm.neon.vshiftu
    arm_neon_vst1,                            // llvm.arm.neon.vst1
    arm_neon_vst2,                            // llvm.arm.neon.vst2
    arm_neon_vst2lane,                        // llvm.arm.neon.vst2lane
    arm_neon_vst3,                            // llvm.arm.neon.vst3
    arm_neon_vst3lane,                        // llvm.arm.neon.vst3lane
    arm_neon_vst4,                            // llvm.arm.neon.vst4
    arm_neon_vst4lane,                        // llvm.arm.neon.vst4lane
    arm_neon_vsubhn,                          // llvm.arm.neon.vsubhn
    arm_neon_vtbl1,                           // llvm.arm.neon.vtbl1
    arm_neon_vtbl2,                           // llvm.arm.neon.vtbl2
    arm_neon_vtbl3,                           // llvm.arm.neon.vtbl3
    arm_neon_vtbl4,                           // llvm.arm.neon.vtbl4
    arm_neon_vtbx1,                           // llvm.arm.neon.vtbx1
    arm_neon_vtbx2,                           // llvm.arm.neon.vtbx2
    arm_neon_vtbx3,                           // llvm.arm.neon.vtbx3
    arm_neon_vtbx4,                           // llvm.arm.neon.vtbx4
    arm_qadd,                                 // llvm.arm.qadd
    arm_qsub,                                 // llvm.arm.qsub
    arm_set_fpscr,                            // llvm.arm.set.fpscr
    arm_ssat,                                 // llvm.arm.ssat
    arm_strexd,                               // llvm.arm.strexd
    arm_thread_pointer,                       // llvm.arm.thread.pointer
    arm_usat,                                 // llvm.arm.usat
    arm_vcvtr,                                // llvm.arm.vcvtr
    arm_vcvtru,                               // llvm.arm.vcvtru
    bswap,                                    // llvm.bswap
    convert_from_fp16,                        // llvm.convert.from.fp16
    convert_to_fp16,                          // llvm.convert.to.fp16
    convertff,                                // llvm.convertff
    convertfsi,                               // llvm.convertfsi
    convertfui,                               // llvm.convertfui
    convertsif,                               // llvm.convertsif
    convertss,                                // llvm.convertss
    convertsu,                                // llvm.convertsu
    convertuif,                               // llvm.convertuif
    convertus,                                // llvm.convertus
    convertuu,                                // llvm.convertuu
    cos,                                      // llvm.cos
    ctlz,                                     // llvm.ctlz
    ctpop,                                    // llvm.ctpop
    cttz,                                     // llvm.cttz
    cuda_syncthreads,                         // llvm.cuda.syncthreads
    dbg_declare,                              // llvm.dbg.declare
    dbg_value,                                // llvm.dbg.value
    debugtrap,                                // llvm.debugtrap
    donothing,                                // llvm.donothing
    eh_dwarf_cfa,                             // llvm.eh.dwarf.cfa
    eh_return_i32,                            // llvm.eh.return.i32
    eh_return_i64,                            // llvm.eh.return.i64
    eh_sjlj_callsite,                         // llvm.eh.sjlj.callsite
    eh_sjlj_functioncontext,                  // llvm.eh.sjlj.functioncontext
    eh_sjlj_longjmp,                          // llvm.eh.sjlj.longjmp
    eh_sjlj_lsda,                             // llvm.eh.sjlj.lsda
    eh_sjlj_setjmp,                           // llvm.eh.sjlj.setjmp
    eh_typeid_for,                            // llvm.eh.typeid.for
    eh_unwind_init,                           // llvm.eh.unwind.init
    exp,                                      // llvm.exp
    exp2,                                     // llvm.exp2
    expect,                                   // llvm.expect
    fabs,                                     // llvm.fabs
    floor,                                    // llvm.floor
    flt_rounds,                               // llvm.flt.rounds
    fma,                                      // llvm.fma
    fmuladd,                                  // llvm.fmuladd
    frameaddress,                             // llvm.frameaddress
    gcread,                                   // llvm.gcread
    gcroot,                                   // llvm.gcroot
    gcwrite,                                  // llvm.gcwrite
    hexagon_A2_abs,                           // llvm.hexagon.A2.abs
    hexagon_A2_absp,                          // llvm.hexagon.A2.absp
    hexagon_A2_abssat,                        // llvm.hexagon.A2.abssat
    hexagon_A2_add,                           // llvm.hexagon.A2.add
    hexagon_A2_addh_h16_hh,                   // llvm.hexagon.A2.addh.h16.hh
    hexagon_A2_addh_h16_hl,                   // llvm.hexagon.A2.addh.h16.hl
    hexagon_A2_addh_h16_lh,                   // llvm.hexagon.A2.addh.h16.lh
    hexagon_A2_addh_h16_ll,                   // llvm.hexagon.A2.addh.h16.ll
    hexagon_A2_addh_h16_sat_hh,               // llvm.hexagon.A2.addh.h16.sat.hh
    hexagon_A2_addh_h16_sat_hl,               // llvm.hexagon.A2.addh.h16.sat.hl
    hexagon_A2_addh_h16_sat_lh,               // llvm.hexagon.A2.addh.h16.sat.lh
    hexagon_A2_addh_h16_sat_ll,               // llvm.hexagon.A2.addh.h16.sat.ll
    hexagon_A2_addh_l16_hl,                   // llvm.hexagon.A2.addh.l16.hl
    hexagon_A2_addh_l16_ll,                   // llvm.hexagon.A2.addh.l16.ll
    hexagon_A2_addh_l16_sat_hl,               // llvm.hexagon.A2.addh.l16.sat.hl
    hexagon_A2_addh_l16_sat_ll,               // llvm.hexagon.A2.addh.l16.sat.ll
    hexagon_A2_addi,                          // llvm.hexagon.A2.addi
    hexagon_A2_addp,                          // llvm.hexagon.A2.addp
    hexagon_A2_addpsat,                       // llvm.hexagon.A2.addpsat
    hexagon_A2_addsat,                        // llvm.hexagon.A2.addsat
    hexagon_A2_addsp,                         // llvm.hexagon.A2.addsp
    hexagon_A2_and,                           // llvm.hexagon.A2.and
    hexagon_A2_andir,                         // llvm.hexagon.A2.andir
    hexagon_A2_andp,                          // llvm.hexagon.A2.andp
    hexagon_A2_aslh,                          // llvm.hexagon.A2.aslh
    hexagon_A2_asrh,                          // llvm.hexagon.A2.asrh
    hexagon_A2_combine_hh,                    // llvm.hexagon.A2.combine.hh
    hexagon_A2_combine_hl,                    // llvm.hexagon.A2.combine.hl
    hexagon_A2_combine_lh,                    // llvm.hexagon.A2.combine.lh
    hexagon_A2_combine_ll,                    // llvm.hexagon.A2.combine.ll
    hexagon_A2_combineii,                     // llvm.hexagon.A2.combineii
    hexagon_A2_combinew,                      // llvm.hexagon.A2.combinew
    hexagon_A2_max,                           // llvm.hexagon.A2.max
    hexagon_A2_maxp,                          // llvm.hexagon.A2.maxp
    hexagon_A2_maxu,                          // llvm.hexagon.A2.maxu
    hexagon_A2_maxup,                         // llvm.hexagon.A2.maxup
    hexagon_A2_min,                           // llvm.hexagon.A2.min
    hexagon_A2_minp,                          // llvm.hexagon.A2.minp
    hexagon_A2_minu,                          // llvm.hexagon.A2.minu
    hexagon_A2_minup,                         // llvm.hexagon.A2.minup
    hexagon_A2_neg,                           // llvm.hexagon.A2.neg
    hexagon_A2_negp,                          // llvm.hexagon.A2.negp
    hexagon_A2_negsat,                        // llvm.hexagon.A2.negsat
    hexagon_A2_not,                           // llvm.hexagon.A2.not
    hexagon_A2_notp,                          // llvm.hexagon.A2.notp
    hexagon_A2_or,                            // llvm.hexagon.A2.or
    hexagon_A2_orir,                          // llvm.hexagon.A2.orir
    hexagon_A2_orp,                           // llvm.hexagon.A2.orp
    hexagon_A2_roundsat,                      // llvm.hexagon.A2.roundsat
    hexagon_A2_sat,                           // llvm.hexagon.A2.sat
    hexagon_A2_satb,                          // llvm.hexagon.A2.satb
    hexagon_A2_sath,                          // llvm.hexagon.A2.sath
    hexagon_A2_satub,                         // llvm.hexagon.A2.satub
    hexagon_A2_satuh,                         // llvm.hexagon.A2.satuh
    hexagon_A2_sub,                           // llvm.hexagon.A2.sub
    hexagon_A2_subh_h16_hh,                   // llvm.hexagon.A2.subh.h16.hh
    hexagon_A2_subh_h16_hl,                   // llvm.hexagon.A2.subh.h16.hl
    hexagon_A2_subh_h16_lh,                   // llvm.hexagon.A2.subh.h16.lh
    hexagon_A2_subh_h16_ll,                   // llvm.hexagon.A2.subh.h16.ll
    hexagon_A2_subh_h16_sat_hh,               // llvm.hexagon.A2.subh.h16.sat.hh
    hexagon_A2_subh_h16_sat_hl,               // llvm.hexagon.A2.subh.h16.sat.hl
    hexagon_A2_subh_h16_sat_lh,               // llvm.hexagon.A2.subh.h16.sat.lh
    hexagon_A2_subh_h16_sat_ll,               // llvm.hexagon.A2.subh.h16.sat.ll
    hexagon_A2_subh_l16_hl,                   // llvm.hexagon.A2.subh.l16.hl
    hexagon_A2_subh_l16_ll,                   // llvm.hexagon.A2.subh.l16.ll
    hexagon_A2_subh_l16_sat_hl,               // llvm.hexagon.A2.subh.l16.sat.hl
    hexagon_A2_subh_l16_sat_ll,               // llvm.hexagon.A2.subh.l16.sat.ll
    hexagon_A2_subp,                          // llvm.hexagon.A2.subp
    hexagon_A2_subri,                         // llvm.hexagon.A2.subri
    hexagon_A2_subsat,                        // llvm.hexagon.A2.subsat
    hexagon_A2_svaddh,                        // llvm.hexagon.A2.svaddh
    hexagon_A2_svaddhs,                       // llvm.hexagon.A2.svaddhs
    hexagon_A2_svadduhs,                      // llvm.hexagon.A2.svadduhs
    hexagon_A2_svavgh,                        // llvm.hexagon.A2.svavgh
    hexagon_A2_svavghs,                       // llvm.hexagon.A2.svavghs
    hexagon_A2_svnavgh,                       // llvm.hexagon.A2.svnavgh
    hexagon_A2_svsubh,                        // llvm.hexagon.A2.svsubh
    hexagon_A2_svsubhs,                       // llvm.hexagon.A2.svsubhs
    hexagon_A2_svsubuhs,                      // llvm.hexagon.A2.svsubuhs
    hexagon_A2_swiz,                          // llvm.hexagon.A2.swiz
    hexagon_A2_sxtb,                          // llvm.hexagon.A2.sxtb
    hexagon_A2_sxth,                          // llvm.hexagon.A2.sxth
    hexagon_A2_sxtw,                          // llvm.hexagon.A2.sxtw
    hexagon_A2_tfr,                           // llvm.hexagon.A2.tfr
    hexagon_A2_tfrih,                         // llvm.hexagon.A2.tfrih
    hexagon_A2_tfril,                         // llvm.hexagon.A2.tfril
    hexagon_A2_tfrp,                          // llvm.hexagon.A2.tfrp
    hexagon_A2_tfrpi,                         // llvm.hexagon.A2.tfrpi
    hexagon_A2_tfrsi,                         // llvm.hexagon.A2.tfrsi
    hexagon_A2_vabsh,                         // llvm.hexagon.A2.vabsh
    hexagon_A2_vabshsat,                      // llvm.hexagon.A2.vabshsat
    hexagon_A2_vabsw,                         // llvm.hexagon.A2.vabsw
    hexagon_A2_vabswsat,                      // llvm.hexagon.A2.vabswsat
    hexagon_A2_vaddb_map,                     // llvm.hexagon.A2.vaddb.map
    hexagon_A2_vaddh,                         // llvm.hexagon.A2.vaddh
    hexagon_A2_vaddhs,                        // llvm.hexagon.A2.vaddhs
    hexagon_A2_vaddub,                        // llvm.hexagon.A2.vaddub
    hexagon_A2_vaddubs,                       // llvm.hexagon.A2.vaddubs
    hexagon_A2_vadduhs,                       // llvm.hexagon.A2.vadduhs
    hexagon_A2_vaddw,                         // llvm.hexagon.A2.vaddw
    hexagon_A2_vaddws,                        // llvm.hexagon.A2.vaddws
    hexagon_A2_vavgh,                         // llvm.hexagon.A2.vavgh
    hexagon_A2_vavghcr,                       // llvm.hexagon.A2.vavghcr
    hexagon_A2_vavghr,                        // llvm.hexagon.A2.vavghr
    hexagon_A2_vavgub,                        // llvm.hexagon.A2.vavgub
    hexagon_A2_vavgubr,                       // llvm.hexagon.A2.vavgubr
    hexagon_A2_vavguh,                        // llvm.hexagon.A2.vavguh
    hexagon_A2_vavguhr,                       // llvm.hexagon.A2.vavguhr
    hexagon_A2_vavguw,                        // llvm.hexagon.A2.vavguw
    hexagon_A2_vavguwr,                       // llvm.hexagon.A2.vavguwr
    hexagon_A2_vavgw,                         // llvm.hexagon.A2.vavgw
    hexagon_A2_vavgwcr,                       // llvm.hexagon.A2.vavgwcr
    hexagon_A2_vavgwr,                        // llvm.hexagon.A2.vavgwr
    hexagon_A2_vcmpbeq,                       // llvm.hexagon.A2.vcmpbeq
    hexagon_A2_vcmpbgtu,                      // llvm.hexagon.A2.vcmpbgtu
    hexagon_A2_vcmpheq,                       // llvm.hexagon.A2.vcmpheq
    hexagon_A2_vcmphgt,                       // llvm.hexagon.A2.vcmphgt
    hexagon_A2_vcmphgtu,                      // llvm.hexagon.A2.vcmphgtu
    hexagon_A2_vcmpweq,                       // llvm.hexagon.A2.vcmpweq
    hexagon_A2_vcmpwgt,                       // llvm.hexagon.A2.vcmpwgt
    hexagon_A2_vcmpwgtu,                      // llvm.hexagon.A2.vcmpwgtu
    hexagon_A2_vconj,                         // llvm.hexagon.A2.vconj
    hexagon_A2_vmaxb,                         // llvm.hexagon.A2.vmaxb
    hexagon_A2_vmaxh,                         // llvm.hexagon.A2.vmaxh
    hexagon_A2_vmaxub,                        // llvm.hexagon.A2.vmaxub
    hexagon_A2_vmaxuh,                        // llvm.hexagon.A2.vmaxuh
    hexagon_A2_vmaxuw,                        // llvm.hexagon.A2.vmaxuw
    hexagon_A2_vmaxw,                         // llvm.hexagon.A2.vmaxw
    hexagon_A2_vminb,                         // llvm.hexagon.A2.vminb
    hexagon_A2_vminh,                         // llvm.hexagon.A2.vminh
    hexagon_A2_vminub,                        // llvm.hexagon.A2.vminub
    hexagon_A2_vminuh,                        // llvm.hexagon.A2.vminuh
    hexagon_A2_vminuw,                        // llvm.hexagon.A2.vminuw
    hexagon_A2_vminw,                         // llvm.hexagon.A2.vminw
    hexagon_A2_vnavgh,                        // llvm.hexagon.A2.vnavgh
    hexagon_A2_vnavghcr,                      // llvm.hexagon.A2.vnavghcr
    hexagon_A2_vnavghr,                       // llvm.hexagon.A2.vnavghr
    hexagon_A2_vnavgw,                        // llvm.hexagon.A2.vnavgw
    hexagon_A2_vnavgwcr,                      // llvm.hexagon.A2.vnavgwcr
    hexagon_A2_vnavgwr,                       // llvm.hexagon.A2.vnavgwr
    hexagon_A2_vraddub,                       // llvm.hexagon.A2.vraddub
    hexagon_A2_vraddub_acc,                   // llvm.hexagon.A2.vraddub.acc
    hexagon_A2_vrsadub,                       // llvm.hexagon.A2.vrsadub
    hexagon_A2_vrsadub_acc,                   // llvm.hexagon.A2.vrsadub.acc
    hexagon_A2_vsubb_map,                     // llvm.hexagon.A2.vsubb.map
    hexagon_A2_vsubh,                         // llvm.hexagon.A2.vsubh
    hexagon_A2_vsubhs,                        // llvm.hexagon.A2.vsubhs
    hexagon_A2_vsubub,                        // llvm.hexagon.A2.vsubub
    hexagon_A2_vsububs,                       // llvm.hexagon.A2.vsububs
    hexagon_A2_vsubuhs,                       // llvm.hexagon.A2.vsubuhs
    hexagon_A2_vsubw,                         // llvm.hexagon.A2.vsubw
    hexagon_A2_vsubws,                        // llvm.hexagon.A2.vsubws
    hexagon_A2_xor,                           // llvm.hexagon.A2.xor
    hexagon_A2_xorp,                          // llvm.hexagon.A2.xorp
    hexagon_A2_zxtb,                          // llvm.hexagon.A2.zxtb
    hexagon_A2_zxth,                          // llvm.hexagon.A2.zxth
    hexagon_A4_andn,                          // llvm.hexagon.A4.andn
    hexagon_A4_andnp,                         // llvm.hexagon.A4.andnp
    hexagon_A4_bitsplit,                      // llvm.hexagon.A4.bitsplit
    hexagon_A4_bitspliti,                     // llvm.hexagon.A4.bitspliti
    hexagon_A4_boundscheck,                   // llvm.hexagon.A4.boundscheck
    hexagon_A4_cmpbeq,                        // llvm.hexagon.A4.cmpbeq
    hexagon_A4_cmpbeqi,                       // llvm.hexagon.A4.cmpbeqi
    hexagon_A4_cmpbgt,                        // llvm.hexagon.A4.cmpbgt
    hexagon_A4_cmpbgti,                       // llvm.hexagon.A4.cmpbgti
    hexagon_A4_cmpbgtu,                       // llvm.hexagon.A4.cmpbgtu
    hexagon_A4_cmpbgtui,                      // llvm.hexagon.A4.cmpbgtui
    hexagon_A4_cmpheq,                        // llvm.hexagon.A4.cmpheq
    hexagon_A4_cmpheqi,                       // llvm.hexagon.A4.cmpheqi
    hexagon_A4_cmphgt,                        // llvm.hexagon.A4.cmphgt
    hexagon_A4_cmphgti,                       // llvm.hexagon.A4.cmphgti
    hexagon_A4_cmphgtu,                       // llvm.hexagon.A4.cmphgtu
    hexagon_A4_cmphgtui,                      // llvm.hexagon.A4.cmphgtui
    hexagon_A4_combineir,                     // llvm.hexagon.A4.combineir
    hexagon_A4_combineri,                     // llvm.hexagon.A4.combineri
    hexagon_A4_cround_ri,                     // llvm.hexagon.A4.cround.ri
    hexagon_A4_cround_rr,                     // llvm.hexagon.A4.cround.rr
    hexagon_A4_modwrapu,                      // llvm.hexagon.A4.modwrapu
    hexagon_A4_orn,                           // llvm.hexagon.A4.orn
    hexagon_A4_ornp,                          // llvm.hexagon.A4.ornp
    hexagon_A4_rcmpeq,                        // llvm.hexagon.A4.rcmpeq
    hexagon_A4_rcmpeqi,                       // llvm.hexagon.A4.rcmpeqi
    hexagon_A4_rcmpneq,                       // llvm.hexagon.A4.rcmpneq
    hexagon_A4_rcmpneqi,                      // llvm.hexagon.A4.rcmpneqi
    hexagon_A4_round_ri,                      // llvm.hexagon.A4.round.ri
    hexagon_A4_round_ri_sat,                  // llvm.hexagon.A4.round.ri.sat
    hexagon_A4_round_rr,                      // llvm.hexagon.A4.round.rr
    hexagon_A4_round_rr_sat,                  // llvm.hexagon.A4.round.rr.sat
    hexagon_A4_tlbmatch,                      // llvm.hexagon.A4.tlbmatch
    hexagon_A4_vcmpbeq_any,                   // llvm.hexagon.A4.vcmpbeq.any
    hexagon_A4_vcmpbeqi,                      // llvm.hexagon.A4.vcmpbeqi
    hexagon_A4_vcmpbgt,                       // llvm.hexagon.A4.vcmpbgt
    hexagon_A4_vcmpbgti,                      // llvm.hexagon.A4.vcmpbgti
    hexagon_A4_vcmpbgtui,                     // llvm.hexagon.A4.vcmpbgtui
    hexagon_A4_vcmpheqi,                      // llvm.hexagon.A4.vcmpheqi
    hexagon_A4_vcmphgti,                      // llvm.hexagon.A4.vcmphgti
    hexagon_A4_vcmphgtui,                     // llvm.hexagon.A4.vcmphgtui
    hexagon_A4_vcmpweqi,                      // llvm.hexagon.A4.vcmpweqi
    hexagon_A4_vcmpwgti,                      // llvm.hexagon.A4.vcmpwgti
    hexagon_A4_vcmpwgtui,                     // llvm.hexagon.A4.vcmpwgtui
    hexagon_A4_vrmaxh,                        // llvm.hexagon.A4.vrmaxh
    hexagon_A4_vrmaxuh,                       // llvm.hexagon.A4.vrmaxuh
    hexagon_A4_vrmaxuw,                       // llvm.hexagon.A4.vrmaxuw
    hexagon_A4_vrmaxw,                        // llvm.hexagon.A4.vrmaxw
    hexagon_A4_vrminh,                        // llvm.hexagon.A4.vrminh
    hexagon_A4_vrminuh,                       // llvm.hexagon.A4.vrminuh
    hexagon_A4_vrminuw,                       // llvm.hexagon.A4.vrminuw
    hexagon_A4_vrminw,                        // llvm.hexagon.A4.vrminw
    hexagon_A5_vaddhubs,                      // llvm.hexagon.A5.vaddhubs
    hexagon_C2_all8,                          // llvm.hexagon.C2.all8
    hexagon_C2_and,                           // llvm.hexagon.C2.and
    hexagon_C2_andn,                          // llvm.hexagon.C2.andn
    hexagon_C2_any8,                          // llvm.hexagon.C2.any8
    hexagon_C2_bitsclr,                       // llvm.hexagon.C2.bitsclr
    hexagon_C2_bitsclri,                      // llvm.hexagon.C2.bitsclri
    hexagon_C2_bitsset,                       // llvm.hexagon.C2.bitsset
    hexagon_C2_cmpeq,                         // llvm.hexagon.C2.cmpeq
    hexagon_C2_cmpeqi,                        // llvm.hexagon.C2.cmpeqi
    hexagon_C2_cmpeqp,                        // llvm.hexagon.C2.cmpeqp
    hexagon_C2_cmpgei,                        // llvm.hexagon.C2.cmpgei
    hexagon_C2_cmpgeui,                       // llvm.hexagon.C2.cmpgeui
    hexagon_C2_cmpgt,                         // llvm.hexagon.C2.cmpgt
    hexagon_C2_cmpgti,                        // llvm.hexagon.C2.cmpgti
    hexagon_C2_cmpgtp,                        // llvm.hexagon.C2.cmpgtp
    hexagon_C2_cmpgtu,                        // llvm.hexagon.C2.cmpgtu
    hexagon_C2_cmpgtui,                       // llvm.hexagon.C2.cmpgtui
    hexagon_C2_cmpgtup,                       // llvm.hexagon.C2.cmpgtup
    hexagon_C2_cmplt,                         // llvm.hexagon.C2.cmplt
    hexagon_C2_cmpltu,                        // llvm.hexagon.C2.cmpltu
    hexagon_C2_mask,                          // llvm.hexagon.C2.mask
    hexagon_C2_mux,                           // llvm.hexagon.C2.mux
    hexagon_C2_muxii,                         // llvm.hexagon.C2.muxii
    hexagon_C2_muxir,                         // llvm.hexagon.C2.muxir
    hexagon_C2_muxri,                         // llvm.hexagon.C2.muxri
    hexagon_C2_not,                           // llvm.hexagon.C2.not
    hexagon_C2_or,                            // llvm.hexagon.C2.or
    hexagon_C2_orn,                           // llvm.hexagon.C2.orn
    hexagon_C2_pxfer_map,                     // llvm.hexagon.C2.pxfer.map
    hexagon_C2_tfrpr,                         // llvm.hexagon.C2.tfrpr
    hexagon_C2_tfrrp,                         // llvm.hexagon.C2.tfrrp
    hexagon_C2_vitpack,                       // llvm.hexagon.C2.vitpack
    hexagon_C2_vmux,                          // llvm.hexagon.C2.vmux
    hexagon_C2_xor,                           // llvm.hexagon.C2.xor
    hexagon_C4_and_and,                       // llvm.hexagon.C4.and.and
    hexagon_C4_and_andn,                      // llvm.hexagon.C4.and.andn
    hexagon_C4_and_or,                        // llvm.hexagon.C4.and.or
    hexagon_C4_and_orn,                       // llvm.hexagon.C4.and.orn
    hexagon_C4_cmplte,                        // llvm.hexagon.C4.cmplte
    hexagon_C4_cmpltei,                       // llvm.hexagon.C4.cmpltei
    hexagon_C4_cmplteu,                       // llvm.hexagon.C4.cmplteu
    hexagon_C4_cmplteui,                      // llvm.hexagon.C4.cmplteui
    hexagon_C4_cmpneq,                        // llvm.hexagon.C4.cmpneq
    hexagon_C4_cmpneqi,                       // llvm.hexagon.C4.cmpneqi
    hexagon_C4_fastcorner9,                   // llvm.hexagon.C4.fastcorner9
    hexagon_C4_fastcorner9_not,               // llvm.hexagon.C4.fastcorner9.not
    hexagon_C4_nbitsclr,                      // llvm.hexagon.C4.nbitsclr
    hexagon_C4_nbitsclri,                     // llvm.hexagon.C4.nbitsclri
    hexagon_C4_nbitsset,                      // llvm.hexagon.C4.nbitsset
    hexagon_C4_or_and,                        // llvm.hexagon.C4.or.and
    hexagon_C4_or_andn,                       // llvm.hexagon.C4.or.andn
    hexagon_C4_or_or,                         // llvm.hexagon.C4.or.or
    hexagon_C4_or_orn,                        // llvm.hexagon.C4.or.orn
    hexagon_F2_conv_d2df,                     // llvm.hexagon.F2.conv.d2df
    hexagon_F2_conv_d2sf,                     // llvm.hexagon.F2.conv.d2sf
    hexagon_F2_conv_df2d,                     // llvm.hexagon.F2.conv.df2d
    hexagon_F2_conv_df2d_chop,                // llvm.hexagon.F2.conv.df2d.chop
    hexagon_F2_conv_df2sf,                    // llvm.hexagon.F2.conv.df2sf
    hexagon_F2_conv_df2ud,                    // llvm.hexagon.F2.conv.df2ud
    hexagon_F2_conv_df2ud_chop,               // llvm.hexagon.F2.conv.df2ud.chop
    hexagon_F2_conv_df2uw,                    // llvm.hexagon.F2.conv.df2uw
    hexagon_F2_conv_df2uw_chop,               // llvm.hexagon.F2.conv.df2uw.chop
    hexagon_F2_conv_df2w,                     // llvm.hexagon.F2.conv.df2w
    hexagon_F2_conv_df2w_chop,                // llvm.hexagon.F2.conv.df2w.chop
    hexagon_F2_conv_sf2d,                     // llvm.hexagon.F2.conv.sf2d
    hexagon_F2_conv_sf2d_chop,                // llvm.hexagon.F2.conv.sf2d.chop
    hexagon_F2_conv_sf2df,                    // llvm.hexagon.F2.conv.sf2df
    hexagon_F2_conv_sf2ud,                    // llvm.hexagon.F2.conv.sf2ud
    hexagon_F2_conv_sf2ud_chop,               // llvm.hexagon.F2.conv.sf2ud.chop
    hexagon_F2_conv_sf2uw,                    // llvm.hexagon.F2.conv.sf2uw
    hexagon_F2_conv_sf2uw_chop,               // llvm.hexagon.F2.conv.sf2uw.chop
    hexagon_F2_conv_sf2w,                     // llvm.hexagon.F2.conv.sf2w
    hexagon_F2_conv_sf2w_chop,                // llvm.hexagon.F2.conv.sf2w.chop
    hexagon_F2_conv_ud2df,                    // llvm.hexagon.F2.conv.ud2df
    hexagon_F2_conv_ud2sf,                    // llvm.hexagon.F2.conv.ud2sf
    hexagon_F2_conv_uw2df,                    // llvm.hexagon.F2.conv.uw2df
    hexagon_F2_conv_uw2sf,                    // llvm.hexagon.F2.conv.uw2sf
    hexagon_F2_conv_w2df,                     // llvm.hexagon.F2.conv.w2df
    hexagon_F2_conv_w2sf,                     // llvm.hexagon.F2.conv.w2sf
    hexagon_F2_dfadd,                         // llvm.hexagon.F2.dfadd
    hexagon_F2_dfclass,                       // llvm.hexagon.F2.dfclass
    hexagon_F2_dfcmpeq,                       // llvm.hexagon.F2.dfcmpeq
    hexagon_F2_dfcmpge,                       // llvm.hexagon.F2.dfcmpge
    hexagon_F2_dfcmpgt,                       // llvm.hexagon.F2.dfcmpgt
    hexagon_F2_dfcmpuo,                       // llvm.hexagon.F2.dfcmpuo
    hexagon_F2_dffixupd,                      // llvm.hexagon.F2.dffixupd
    hexagon_F2_dffixupn,                      // llvm.hexagon.F2.dffixupn
    hexagon_F2_dffixupr,                      // llvm.hexagon.F2.dffixupr
    hexagon_F2_dffma,                         // llvm.hexagon.F2.dffma
    hexagon_F2_dffma_lib,                     // llvm.hexagon.F2.dffma.lib
    hexagon_F2_dffma_sc,                      // llvm.hexagon.F2.dffma.sc
    hexagon_F2_dffms,                         // llvm.hexagon.F2.dffms
    hexagon_F2_dffms_lib,                     // llvm.hexagon.F2.dffms.lib
    hexagon_F2_dfimm_n,                       // llvm.hexagon.F2.dfimm.n
    hexagon_F2_dfimm_p,                       // llvm.hexagon.F2.dfimm.p
    hexagon_F2_dfmax,                         // llvm.hexagon.F2.dfmax
    hexagon_F2_dfmin,                         // llvm.hexagon.F2.dfmin
    hexagon_F2_dfmpy,                         // llvm.hexagon.F2.dfmpy
    hexagon_F2_dfsub,                         // llvm.hexagon.F2.dfsub
    hexagon_F2_sfadd,                         // llvm.hexagon.F2.sfadd
    hexagon_F2_sfclass,                       // llvm.hexagon.F2.sfclass
    hexagon_F2_sfcmpeq,                       // llvm.hexagon.F2.sfcmpeq
    hexagon_F2_sfcmpge,                       // llvm.hexagon.F2.sfcmpge
    hexagon_F2_sfcmpgt,                       // llvm.hexagon.F2.sfcmpgt
    hexagon_F2_sfcmpuo,                       // llvm.hexagon.F2.sfcmpuo
    hexagon_F2_sffixupd,                      // llvm.hexagon.F2.sffixupd
    hexagon_F2_sffixupn,                      // llvm.hexagon.F2.sffixupn
    hexagon_F2_sffixupr,                      // llvm.hexagon.F2.sffixupr
    hexagon_F2_sffma,                         // llvm.hexagon.F2.sffma
    hexagon_F2_sffma_lib,                     // llvm.hexagon.F2.sffma.lib
    hexagon_F2_sffma_sc,                      // llvm.hexagon.F2.sffma.sc
    hexagon_F2_sffms,                         // llvm.hexagon.F2.sffms
    hexagon_F2_sffms_lib,                     // llvm.hexagon.F2.sffms.lib
    hexagon_F2_sfimm_n,                       // llvm.hexagon.F2.sfimm.n
    hexagon_F2_sfimm_p,                       // llvm.hexagon.F2.sfimm.p
    hexagon_F2_sfmax,                         // llvm.hexagon.F2.sfmax
    hexagon_F2_sfmin,                         // llvm.hexagon.F2.sfmin
    hexagon_F2_sfmpy,                         // llvm.hexagon.F2.sfmpy
    hexagon_F2_sfsub,                         // llvm.hexagon.F2.sfsub
    hexagon_M2_acci,                          // llvm.hexagon.M2.acci
    hexagon_M2_accii,                         // llvm.hexagon.M2.accii
    hexagon_M2_cmaci_s0,                      // llvm.hexagon.M2.cmaci.s0
    hexagon_M2_cmacr_s0,                      // llvm.hexagon.M2.cmacr.s0
    hexagon_M2_cmacs_s0,                      // llvm.hexagon.M2.cmacs.s0
    hexagon_M2_cmacs_s1,                      // llvm.hexagon.M2.cmacs.s1
    hexagon_M2_cmacsc_s0,                     // llvm.hexagon.M2.cmacsc.s0
    hexagon_M2_cmacsc_s1,                     // llvm.hexagon.M2.cmacsc.s1
    hexagon_M2_cmpyi_s0,                      // llvm.hexagon.M2.cmpyi.s0
    hexagon_M2_cmpyr_s0,                      // llvm.hexagon.M2.cmpyr.s0
    hexagon_M2_cmpyrs_s0,                     // llvm.hexagon.M2.cmpyrs.s0
    hexagon_M2_cmpyrs_s1,                     // llvm.hexagon.M2.cmpyrs.s1
    hexagon_M2_cmpyrsc_s0,                    // llvm.hexagon.M2.cmpyrsc.s0
    hexagon_M2_cmpyrsc_s1,                    // llvm.hexagon.M2.cmpyrsc.s1
    hexagon_M2_cmpys_s0,                      // llvm.hexagon.M2.cmpys.s0
    hexagon_M2_cmpys_s1,                      // llvm.hexagon.M2.cmpys.s1
    hexagon_M2_cmpysc_s0,                     // llvm.hexagon.M2.cmpysc.s0
    hexagon_M2_cmpysc_s1,                     // llvm.hexagon.M2.cmpysc.s1
    hexagon_M2_cnacs_s0,                      // llvm.hexagon.M2.cnacs.s0
    hexagon_M2_cnacs_s1,                      // llvm.hexagon.M2.cnacs.s1
    hexagon_M2_cnacsc_s0,                     // llvm.hexagon.M2.cnacsc.s0
    hexagon_M2_cnacsc_s1,                     // llvm.hexagon.M2.cnacsc.s1
    hexagon_M2_dpmpyss_acc_s0,                // llvm.hexagon.M2.dpmpyss.acc.s0
    hexagon_M2_dpmpyss_nac_s0,                // llvm.hexagon.M2.dpmpyss.nac.s0
    hexagon_M2_dpmpyss_rnd_s0,                // llvm.hexagon.M2.dpmpyss.rnd.s0
    hexagon_M2_dpmpyss_s0,                    // llvm.hexagon.M2.dpmpyss.s0
    hexagon_M2_dpmpyuu_acc_s0,                // llvm.hexagon.M2.dpmpyuu.acc.s0
    hexagon_M2_dpmpyuu_nac_s0,                // llvm.hexagon.M2.dpmpyuu.nac.s0
    hexagon_M2_dpmpyuu_s0,                    // llvm.hexagon.M2.dpmpyuu.s0
    hexagon_M2_hmmpyh_rs1,                    // llvm.hexagon.M2.hmmpyh.rs1
    hexagon_M2_hmmpyh_s1,                     // llvm.hexagon.M2.hmmpyh.s1
    hexagon_M2_hmmpyl_rs1,                    // llvm.hexagon.M2.hmmpyl.rs1
    hexagon_M2_hmmpyl_s1,                     // llvm.hexagon.M2.hmmpyl.s1
    hexagon_M2_maci,                          // llvm.hexagon.M2.maci
    hexagon_M2_macsin,                        // llvm.hexagon.M2.macsin
    hexagon_M2_macsip,                        // llvm.hexagon.M2.macsip
    hexagon_M2_mmachs_rs0,                    // llvm.hexagon.M2.mmachs.rs0
    hexagon_M2_mmachs_rs1,                    // llvm.hexagon.M2.mmachs.rs1
    hexagon_M2_mmachs_s0,                     // llvm.hexagon.M2.mmachs.s0
    hexagon_M2_mmachs_s1,                     // llvm.hexagon.M2.mmachs.s1
    hexagon_M2_mmacls_rs0,                    // llvm.hexagon.M2.mmacls.rs0
    hexagon_M2_mmacls_rs1,                    // llvm.hexagon.M2.mmacls.rs1
    hexagon_M2_mmacls_s0,                     // llvm.hexagon.M2.mmacls.s0
    hexagon_M2_mmacls_s1,                     // llvm.hexagon.M2.mmacls.s1
    hexagon_M2_mmacuhs_rs0,                   // llvm.hexagon.M2.mmacuhs.rs0
    hexagon_M2_mmacuhs_rs1,                   // llvm.hexagon.M2.mmacuhs.rs1
    hexagon_M2_mmacuhs_s0,                    // llvm.hexagon.M2.mmacuhs.s0
    hexagon_M2_mmacuhs_s1,                    // llvm.hexagon.M2.mmacuhs.s1
    hexagon_M2_mmaculs_rs0,                   // llvm.hexagon.M2.mmaculs.rs0
    hexagon_M2_mmaculs_rs1,                   // llvm.hexagon.M2.mmaculs.rs1
    hexagon_M2_mmaculs_s0,                    // llvm.hexagon.M2.mmaculs.s0
    hexagon_M2_mmaculs_s1,                    // llvm.hexagon.M2.mmaculs.s1
    hexagon_M2_mmpyh_rs0,                     // llvm.hexagon.M2.mmpyh.rs0
    hexagon_M2_mmpyh_rs1,                     // llvm.hexagon.M2.mmpyh.rs1
    hexagon_M2_mmpyh_s0,                      // llvm.hexagon.M2.mmpyh.s0
    hexagon_M2_mmpyh_s1,                      // llvm.hexagon.M2.mmpyh.s1
    hexagon_M2_mmpyl_rs0,                     // llvm.hexagon.M2.mmpyl.rs0
    hexagon_M2_mmpyl_rs1,                     // llvm.hexagon.M2.mmpyl.rs1
    hexagon_M2_mmpyl_s0,                      // llvm.hexagon.M2.mmpyl.s0
    hexagon_M2_mmpyl_s1,                      // llvm.hexagon.M2.mmpyl.s1
    hexagon_M2_mmpyuh_rs0,                    // llvm.hexagon.M2.mmpyuh.rs0
    hexagon_M2_mmpyuh_rs1,                    // llvm.hexagon.M2.mmpyuh.rs1
    hexagon_M2_mmpyuh_s0,                     // llvm.hexagon.M2.mmpyuh.s0
    hexagon_M2_mmpyuh_s1,                     // llvm.hexagon.M2.mmpyuh.s1
    hexagon_M2_mmpyul_rs0,                    // llvm.hexagon.M2.mmpyul.rs0
    hexagon_M2_mmpyul_rs1,                    // llvm.hexagon.M2.mmpyul.rs1
    hexagon_M2_mmpyul_s0,                     // llvm.hexagon.M2.mmpyul.s0
    hexagon_M2_mmpyul_s1,                     // llvm.hexagon.M2.mmpyul.s1
    hexagon_M2_mpy_acc_hh_s0,                 // llvm.hexagon.M2.mpy.acc.hh.s0
    hexagon_M2_mpy_acc_hh_s1,                 // llvm.hexagon.M2.mpy.acc.hh.s1
    hexagon_M2_mpy_acc_hl_s0,                 // llvm.hexagon.M2.mpy.acc.hl.s0
    hexagon_M2_mpy_acc_hl_s1,                 // llvm.hexagon.M2.mpy.acc.hl.s1
    hexagon_M2_mpy_acc_lh_s0,                 // llvm.hexagon.M2.mpy.acc.lh.s0
    hexagon_M2_mpy_acc_lh_s1,                 // llvm.hexagon.M2.mpy.acc.lh.s1
    hexagon_M2_mpy_acc_ll_s0,                 // llvm.hexagon.M2.mpy.acc.ll.s0
    hexagon_M2_mpy_acc_ll_s1,                 // llvm.hexagon.M2.mpy.acc.ll.s1
    hexagon_M2_mpy_acc_sat_hh_s0,             // llvm.hexagon.M2.mpy.acc.sat.hh.s0
    hexagon_M2_mpy_acc_sat_hh_s1,             // llvm.hexagon.M2.mpy.acc.sat.hh.s1
    hexagon_M2_mpy_acc_sat_hl_s0,             // llvm.hexagon.M2.mpy.acc.sat.hl.s0
    hexagon_M2_mpy_acc_sat_hl_s1,             // llvm.hexagon.M2.mpy.acc.sat.hl.s1
    hexagon_M2_mpy_acc_sat_lh_s0,             // llvm.hexagon.M2.mpy.acc.sat.lh.s0
    hexagon_M2_mpy_acc_sat_lh_s1,             // llvm.hexagon.M2.mpy.acc.sat.lh.s1
    hexagon_M2_mpy_acc_sat_ll_s0,             // llvm.hexagon.M2.mpy.acc.sat.ll.s0
    hexagon_M2_mpy_acc_sat_ll_s1,             // llvm.hexagon.M2.mpy.acc.sat.ll.s1
    hexagon_M2_mpy_hh_s0,                     // llvm.hexagon.M2.mpy.hh.s0
    hexagon_M2_mpy_hh_s1,                     // llvm.hexagon.M2.mpy.hh.s1
    hexagon_M2_mpy_hl_s0,                     // llvm.hexagon.M2.mpy.hl.s0
    hexagon_M2_mpy_hl_s1,                     // llvm.hexagon.M2.mpy.hl.s1
    hexagon_M2_mpy_lh_s0,                     // llvm.hexagon.M2.mpy.lh.s0
    hexagon_M2_mpy_lh_s1,                     // llvm.hexagon.M2.mpy.lh.s1
    hexagon_M2_mpy_ll_s0,                     // llvm.hexagon.M2.mpy.ll.s0
    hexagon_M2_mpy_ll_s1,                     // llvm.hexagon.M2.mpy.ll.s1
    hexagon_M2_mpy_nac_hh_s0,                 // llvm.hexagon.M2.mpy.nac.hh.s0
    hexagon_M2_mpy_nac_hh_s1,                 // llvm.hexagon.M2.mpy.nac.hh.s1
    hexagon_M2_mpy_nac_hl_s0,                 // llvm.hexagon.M2.mpy.nac.hl.s0
    hexagon_M2_mpy_nac_hl_s1,                 // llvm.hexagon.M2.mpy.nac.hl.s1
    hexagon_M2_mpy_nac_lh_s0,                 // llvm.hexagon.M2.mpy.nac.lh.s0
    hexagon_M2_mpy_nac_lh_s1,                 // llvm.hexagon.M2.mpy.nac.lh.s1
    hexagon_M2_mpy_nac_ll_s0,                 // llvm.hexagon.M2.mpy.nac.ll.s0
    hexagon_M2_mpy_nac_ll_s1,                 // llvm.hexagon.M2.mpy.nac.ll.s1
    hexagon_M2_mpy_nac_sat_hh_s0,             // llvm.hexagon.M2.mpy.nac.sat.hh.s0
    hexagon_M2_mpy_nac_sat_hh_s1,             // llvm.hexagon.M2.mpy.nac.sat.hh.s1
    hexagon_M2_mpy_nac_sat_hl_s0,             // llvm.hexagon.M2.mpy.nac.sat.hl.s0
    hexagon_M2_mpy_nac_sat_hl_s1,             // llvm.hexagon.M2.mpy.nac.sat.hl.s1
    hexagon_M2_mpy_nac_sat_lh_s0,             // llvm.hexagon.M2.mpy.nac.sat.lh.s0
    hexagon_M2_mpy_nac_sat_lh_s1,             // llvm.hexagon.M2.mpy.nac.sat.lh.s1
    hexagon_M2_mpy_nac_sat_ll_s0,             // llvm.hexagon.M2.mpy.nac.sat.ll.s0
    hexagon_M2_mpy_nac_sat_ll_s1,             // llvm.hexagon.M2.mpy.nac.sat.ll.s1
    hexagon_M2_mpy_rnd_hh_s0,                 // llvm.hexagon.M2.mpy.rnd.hh.s0
    hexagon_M2_mpy_rnd_hh_s1,                 // llvm.hexagon.M2.mpy.rnd.hh.s1
    hexagon_M2_mpy_rnd_hl_s0,                 // llvm.hexagon.M2.mpy.rnd.hl.s0
    hexagon_M2_mpy_rnd_hl_s1,                 // llvm.hexagon.M2.mpy.rnd.hl.s1
    hexagon_M2_mpy_rnd_lh_s0,                 // llvm.hexagon.M2.mpy.rnd.lh.s0
    hexagon_M2_mpy_rnd_lh_s1,                 // llvm.hexagon.M2.mpy.rnd.lh.s1
    hexagon_M2_mpy_rnd_ll_s0,                 // llvm.hexagon.M2.mpy.rnd.ll.s0
    hexagon_M2_mpy_rnd_ll_s1,                 // llvm.hexagon.M2.mpy.rnd.ll.s1
    hexagon_M2_mpy_sat_hh_s0,                 // llvm.hexagon.M2.mpy.sat.hh.s0
    hexagon_M2_mpy_sat_hh_s1,                 // llvm.hexagon.M2.mpy.sat.hh.s1
    hexagon_M2_mpy_sat_hl_s0,                 // llvm.hexagon.M2.mpy.sat.hl.s0
    hexagon_M2_mpy_sat_hl_s1,                 // llvm.hexagon.M2.mpy.sat.hl.s1
    hexagon_M2_mpy_sat_lh_s0,                 // llvm.hexagon.M2.mpy.sat.lh.s0
    hexagon_M2_mpy_sat_lh_s1,                 // llvm.hexagon.M2.mpy.sat.lh.s1
    hexagon_M2_mpy_sat_ll_s0,                 // llvm.hexagon.M2.mpy.sat.ll.s0
    hexagon_M2_mpy_sat_ll_s1,                 // llvm.hexagon.M2.mpy.sat.ll.s1
    hexagon_M2_mpy_sat_rnd_hh_s0,             // llvm.hexagon.M2.mpy.sat.rnd.hh.s0
    hexagon_M2_mpy_sat_rnd_hh_s1,             // llvm.hexagon.M2.mpy.sat.rnd.hh.s1
    hexagon_M2_mpy_sat_rnd_hl_s0,             // llvm.hexagon.M2.mpy.sat.rnd.hl.s0
    hexagon_M2_mpy_sat_rnd_hl_s1,             // llvm.hexagon.M2.mpy.sat.rnd.hl.s1
    hexagon_M2_mpy_sat_rnd_lh_s0,             // llvm.hexagon.M2.mpy.sat.rnd.lh.s0
    hexagon_M2_mpy_sat_rnd_lh_s1,             // llvm.hexagon.M2.mpy.sat.rnd.lh.s1
    hexagon_M2_mpy_sat_rnd_ll_s0,             // llvm.hexagon.M2.mpy.sat.rnd.ll.s0
    hexagon_M2_mpy_sat_rnd_ll_s1,             // llvm.hexagon.M2.mpy.sat.rnd.ll.s1
    hexagon_M2_mpy_up,                        // llvm.hexagon.M2.mpy.up
    hexagon_M2_mpy_up_s1,                     // llvm.hexagon.M2.mpy.up.s1
    hexagon_M2_mpy_up_s1_sat,                 // llvm.hexagon.M2.mpy.up.s1.sat
    hexagon_M2_mpyd_acc_hh_s0,                // llvm.hexagon.M2.mpyd.acc.hh.s0
    hexagon_M2_mpyd_acc_hh_s1,                // llvm.hexagon.M2.mpyd.acc.hh.s1
    hexagon_M2_mpyd_acc_hl_s0,                // llvm.hexagon.M2.mpyd.acc.hl.s0
    hexagon_M2_mpyd_acc_hl_s1,                // llvm.hexagon.M2.mpyd.acc.hl.s1
    hexagon_M2_mpyd_acc_lh_s0,                // llvm.hexagon.M2.mpyd.acc.lh.s0
    hexagon_M2_mpyd_acc_lh_s1,                // llvm.hexagon.M2.mpyd.acc.lh.s1
    hexagon_M2_mpyd_acc_ll_s0,                // llvm.hexagon.M2.mpyd.acc.ll.s0
    hexagon_M2_mpyd_acc_ll_s1,                // llvm.hexagon.M2.mpyd.acc.ll.s1
    hexagon_M2_mpyd_hh_s0,                    // llvm.hexagon.M2.mpyd.hh.s0
    hexagon_M2_mpyd_hh_s1,                    // llvm.hexagon.M2.mpyd.hh.s1
    hexagon_M2_mpyd_hl_s0,                    // llvm.hexagon.M2.mpyd.hl.s0
    hexagon_M2_mpyd_hl_s1,                    // llvm.hexagon.M2.mpyd.hl.s1
    hexagon_M2_mpyd_lh_s0,                    // llvm.hexagon.M2.mpyd.lh.s0
    hexagon_M2_mpyd_lh_s1,                    // llvm.hexagon.M2.mpyd.lh.s1
    hexagon_M2_mpyd_ll_s0,                    // llvm.hexagon.M2.mpyd.ll.s0
    hexagon_M2_mpyd_ll_s1,                    // llvm.hexagon.M2.mpyd.ll.s1
    hexagon_M2_mpyd_nac_hh_s0,                // llvm.hexagon.M2.mpyd.nac.hh.s0
    hexagon_M2_mpyd_nac_hh_s1,                // llvm.hexagon.M2.mpyd.nac.hh.s1
    hexagon_M2_mpyd_nac_hl_s0,                // llvm.hexagon.M2.mpyd.nac.hl.s0
    hexagon_M2_mpyd_nac_hl_s1,                // llvm.hexagon.M2.mpyd.nac.hl.s1
    hexagon_M2_mpyd_nac_lh_s0,                // llvm.hexagon.M2.mpyd.nac.lh.s0
    hexagon_M2_mpyd_nac_lh_s1,                // llvm.hexagon.M2.mpyd.nac.lh.s1
    hexagon_M2_mpyd_nac_ll_s0,                // llvm.hexagon.M2.mpyd.nac.ll.s0
    hexagon_M2_mpyd_nac_ll_s1,                // llvm.hexagon.M2.mpyd.nac.ll.s1
    hexagon_M2_mpyd_rnd_hh_s0,                // llvm.hexagon.M2.mpyd.rnd.hh.s0
    hexagon_M2_mpyd_rnd_hh_s1,                // llvm.hexagon.M2.mpyd.rnd.hh.s1
    hexagon_M2_mpyd_rnd_hl_s0,                // llvm.hexagon.M2.mpyd.rnd.hl.s0
    hexagon_M2_mpyd_rnd_hl_s1,                // llvm.hexagon.M2.mpyd.rnd.hl.s1
    hexagon_M2_mpyd_rnd_lh_s0,                // llvm.hexagon.M2.mpyd.rnd.lh.s0
    hexagon_M2_mpyd_rnd_lh_s1,                // llvm.hexagon.M2.mpyd.rnd.lh.s1
    hexagon_M2_mpyd_rnd_ll_s0,                // llvm.hexagon.M2.mpyd.rnd.ll.s0
    hexagon_M2_mpyd_rnd_ll_s1,                // llvm.hexagon.M2.mpyd.rnd.ll.s1
    hexagon_M2_mpyi,                          // llvm.hexagon.M2.mpyi
    hexagon_M2_mpysmi,                        // llvm.hexagon.M2.mpysmi
    hexagon_M2_mpysu_up,                      // llvm.hexagon.M2.mpysu.up
    hexagon_M2_mpyu_acc_hh_s0,                // llvm.hexagon.M2.mpyu.acc.hh.s0
    hexagon_M2_mpyu_acc_hh_s1,                // llvm.hexagon.M2.mpyu.acc.hh.s1
    hexagon_M2_mpyu_acc_hl_s0,                // llvm.hexagon.M2.mpyu.acc.hl.s0
    hexagon_M2_mpyu_acc_hl_s1,                // llvm.hexagon.M2.mpyu.acc.hl.s1
    hexagon_M2_mpyu_acc_lh_s0,                // llvm.hexagon.M2.mpyu.acc.lh.s0
    hexagon_M2_mpyu_acc_lh_s1,                // llvm.hexagon.M2.mpyu.acc.lh.s1
    hexagon_M2_mpyu_acc_ll_s0,                // llvm.hexagon.M2.mpyu.acc.ll.s0
    hexagon_M2_mpyu_acc_ll_s1,                // llvm.hexagon.M2.mpyu.acc.ll.s1
    hexagon_M2_mpyu_hh_s0,                    // llvm.hexagon.M2.mpyu.hh.s0
    hexagon_M2_mpyu_hh_s1,                    // llvm.hexagon.M2.mpyu.hh.s1
    hexagon_M2_mpyu_hl_s0,                    // llvm.hexagon.M2.mpyu.hl.s0
    hexagon_M2_mpyu_hl_s1,                    // llvm.hexagon.M2.mpyu.hl.s1
    hexagon_M2_mpyu_lh_s0,                    // llvm.hexagon.M2.mpyu.lh.s0
    hexagon_M2_mpyu_lh_s1,                    // llvm.hexagon.M2.mpyu.lh.s1
    hexagon_M2_mpyu_ll_s0,                    // llvm.hexagon.M2.mpyu.ll.s0
    hexagon_M2_mpyu_ll_s1,                    // llvm.hexagon.M2.mpyu.ll.s1
    hexagon_M2_mpyu_nac_hh_s0,                // llvm.hexagon.M2.mpyu.nac.hh.s0
    hexagon_M2_mpyu_nac_hh_s1,                // llvm.hexagon.M2.mpyu.nac.hh.s1
    hexagon_M2_mpyu_nac_hl_s0,                // llvm.hexagon.M2.mpyu.nac.hl.s0
    hexagon_M2_mpyu_nac_hl_s1,                // llvm.hexagon.M2.mpyu.nac.hl.s1
    hexagon_M2_mpyu_nac_lh_s0,                // llvm.hexagon.M2.mpyu.nac.lh.s0
    hexagon_M2_mpyu_nac_lh_s1,                // llvm.hexagon.M2.mpyu.nac.lh.s1
    hexagon_M2_mpyu_nac_ll_s0,                // llvm.hexagon.M2.mpyu.nac.ll.s0
    hexagon_M2_mpyu_nac_ll_s1,                // llvm.hexagon.M2.mpyu.nac.ll.s1
    hexagon_M2_mpyu_up,                       // llvm.hexagon.M2.mpyu.up
    hexagon_M2_mpyud_acc_hh_s0,               // llvm.hexagon.M2.mpyud.acc.hh.s0
    hexagon_M2_mpyud_acc_hh_s1,               // llvm.hexagon.M2.mpyud.acc.hh.s1
    hexagon_M2_mpyud_acc_hl_s0,               // llvm.hexagon.M2.mpyud.acc.hl.s0
    hexagon_M2_mpyud_acc_hl_s1,               // llvm.hexagon.M2.mpyud.acc.hl.s1
    hexagon_M2_mpyud_acc_lh_s0,               // llvm.hexagon.M2.mpyud.acc.lh.s0
    hexagon_M2_mpyud_acc_lh_s1,               // llvm.hexagon.M2.mpyud.acc.lh.s1
    hexagon_M2_mpyud_acc_ll_s0,               // llvm.hexagon.M2.mpyud.acc.ll.s0
    hexagon_M2_mpyud_acc_ll_s1,               // llvm.hexagon.M2.mpyud.acc.ll.s1
    hexagon_M2_mpyud_hh_s0,                   // llvm.hexagon.M2.mpyud.hh.s0
    hexagon_M2_mpyud_hh_s1,                   // llvm.hexagon.M2.mpyud.hh.s1
    hexagon_M2_mpyud_hl_s0,                   // llvm.hexagon.M2.mpyud.hl.s0
    hexagon_M2_mpyud_hl_s1,                   // llvm.hexagon.M2.mpyud.hl.s1
    hexagon_M2_mpyud_lh_s0,                   // llvm.hexagon.M2.mpyud.lh.s0
    hexagon_M2_mpyud_lh_s1,                   // llvm.hexagon.M2.mpyud.lh.s1
    hexagon_M2_mpyud_ll_s0,                   // llvm.hexagon.M2.mpyud.ll.s0
    hexagon_M2_mpyud_ll_s1,                   // llvm.hexagon.M2.mpyud.ll.s1
    hexagon_M2_mpyud_nac_hh_s0,               // llvm.hexagon.M2.mpyud.nac.hh.s0
    hexagon_M2_mpyud_nac_hh_s1,               // llvm.hexagon.M2.mpyud.nac.hh.s1
    hexagon_M2_mpyud_nac_hl_s0,               // llvm.hexagon.M2.mpyud.nac.hl.s0
    hexagon_M2_mpyud_nac_hl_s1,               // llvm.hexagon.M2.mpyud.nac.hl.s1
    hexagon_M2_mpyud_nac_lh_s0,               // llvm.hexagon.M2.mpyud.nac.lh.s0
    hexagon_M2_mpyud_nac_lh_s1,               // llvm.hexagon.M2.mpyud.nac.lh.s1
    hexagon_M2_mpyud_nac_ll_s0,               // llvm.hexagon.M2.mpyud.nac.ll.s0
    hexagon_M2_mpyud_nac_ll_s1,               // llvm.hexagon.M2.mpyud.nac.ll.s1
    hexagon_M2_mpyui,                         // llvm.hexagon.M2.mpyui
    hexagon_M2_nacci,                         // llvm.hexagon.M2.nacci
    hexagon_M2_naccii,                        // llvm.hexagon.M2.naccii
    hexagon_M2_subacc,                        // llvm.hexagon.M2.subacc
    hexagon_M2_vabsdiffh,                     // llvm.hexagon.M2.vabsdiffh
    hexagon_M2_vabsdiffw,                     // llvm.hexagon.M2.vabsdiffw
    hexagon_M2_vcmac_s0_sat_i,                // llvm.hexagon.M2.vcmac.s0.sat.i
    hexagon_M2_vcmac_s0_sat_r,                // llvm.hexagon.M2.vcmac.s0.sat.r
    hexagon_M2_vcmpy_s0_sat_i,                // llvm.hexagon.M2.vcmpy.s0.sat.i
    hexagon_M2_vcmpy_s0_sat_r,                // llvm.hexagon.M2.vcmpy.s0.sat.r
    hexagon_M2_vcmpy_s1_sat_i,                // llvm.hexagon.M2.vcmpy.s1.sat.i
    hexagon_M2_vcmpy_s1_sat_r,                // llvm.hexagon.M2.vcmpy.s1.sat.r
    hexagon_M2_vdmacs_s0,                     // llvm.hexagon.M2.vdmacs.s0
    hexagon_M2_vdmacs_s1,                     // llvm.hexagon.M2.vdmacs.s1
    hexagon_M2_vdmpyrs_s0,                    // llvm.hexagon.M2.vdmpyrs.s0
    hexagon_M2_vdmpyrs_s1,                    // llvm.hexagon.M2.vdmpyrs.s1
    hexagon_M2_vdmpys_s0,                     // llvm.hexagon.M2.vdmpys.s0
    hexagon_M2_vdmpys_s1,                     // llvm.hexagon.M2.vdmpys.s1
    hexagon_M2_vmac2,                         // llvm.hexagon.M2.vmac2
    hexagon_M2_vmac2es,                       // llvm.hexagon.M2.vmac2es
    hexagon_M2_vmac2es_s0,                    // llvm.hexagon.M2.vmac2es.s0
    hexagon_M2_vmac2es_s1,                    // llvm.hexagon.M2.vmac2es.s1
    hexagon_M2_vmac2s_s0,                     // llvm.hexagon.M2.vmac2s.s0
    hexagon_M2_vmac2s_s1,                     // llvm.hexagon.M2.vmac2s.s1
    hexagon_M2_vmac2su_s0,                    // llvm.hexagon.M2.vmac2su.s0
    hexagon_M2_vmac2su_s1,                    // llvm.hexagon.M2.vmac2su.s1
    hexagon_M2_vmpy2es_s0,                    // llvm.hexagon.M2.vmpy2es.s0
    hexagon_M2_vmpy2es_s1,                    // llvm.hexagon.M2.vmpy2es.s1
    hexagon_M2_vmpy2s_s0,                     // llvm.hexagon.M2.vmpy2s.s0
    hexagon_M2_vmpy2s_s0pack,                 // llvm.hexagon.M2.vmpy2s.s0pack
    hexagon_M2_vmpy2s_s1,                     // llvm.hexagon.M2.vmpy2s.s1
    hexagon_M2_vmpy2s_s1pack,                 // llvm.hexagon.M2.vmpy2s.s1pack
    hexagon_M2_vmpy2su_s0,                    // llvm.hexagon.M2.vmpy2su.s0
    hexagon_M2_vmpy2su_s1,                    // llvm.hexagon.M2.vmpy2su.s1
    hexagon_M2_vraddh,                        // llvm.hexagon.M2.vraddh
    hexagon_M2_vradduh,                       // llvm.hexagon.M2.vradduh
    hexagon_M2_vrcmaci_s0,                    // llvm.hexagon.M2.vrcmaci.s0
    hexagon_M2_vrcmaci_s0c,                   // llvm.hexagon.M2.vrcmaci.s0c
    hexagon_M2_vrcmacr_s0,                    // llvm.hexagon.M2.vrcmacr.s0
    hexagon_M2_vrcmacr_s0c,                   // llvm.hexagon.M2.vrcmacr.s0c
    hexagon_M2_vrcmpyi_s0,                    // llvm.hexagon.M2.vrcmpyi.s0
    hexagon_M2_vrcmpyi_s0c,                   // llvm.hexagon.M2.vrcmpyi.s0c
    hexagon_M2_vrcmpyr_s0,                    // llvm.hexagon.M2.vrcmpyr.s0
    hexagon_M2_vrcmpyr_s0c,                   // llvm.hexagon.M2.vrcmpyr.s0c
    hexagon_M2_vrcmpys_acc_s1,                // llvm.hexagon.M2.vrcmpys.acc.s1
    hexagon_M2_vrcmpys_s1,                    // llvm.hexagon.M2.vrcmpys.s1
    hexagon_M2_vrcmpys_s1rp,                  // llvm.hexagon.M2.vrcmpys.s1rp
    hexagon_M2_vrmac_s0,                      // llvm.hexagon.M2.vrmac.s0
    hexagon_M2_vrmpy_s0,                      // llvm.hexagon.M2.vrmpy.s0
    hexagon_M2_xor_xacc,                      // llvm.hexagon.M2.xor.xacc
    hexagon_M4_and_and,                       // llvm.hexagon.M4.and.and
    hexagon_M4_and_andn,                      // llvm.hexagon.M4.and.andn
    hexagon_M4_and_or,                        // llvm.hexagon.M4.and.or
    hexagon_M4_and_xor,                       // llvm.hexagon.M4.and.xor
    hexagon_M4_cmpyi_wh,                      // llvm.hexagon.M4.cmpyi.wh
    hexagon_M4_cmpyi_whc,                     // llvm.hexagon.M4.cmpyi.whc
    hexagon_M4_cmpyr_wh,                      // llvm.hexagon.M4.cmpyr.wh
    hexagon_M4_cmpyr_whc,                     // llvm.hexagon.M4.cmpyr.whc
    hexagon_M4_mac_up_s1_sat,                 // llvm.hexagon.M4.mac.up.s1.sat
    hexagon_M4_mpyri_addi,                    // llvm.hexagon.M4.mpyri.addi
    hexagon_M4_mpyri_addr,                    // llvm.hexagon.M4.mpyri.addr
    hexagon_M4_mpyri_addr_u2,                 // llvm.hexagon.M4.mpyri.addr.u2
    hexagon_M4_mpyrr_addi,                    // llvm.hexagon.M4.mpyrr.addi
    hexagon_M4_mpyrr_addr,                    // llvm.hexagon.M4.mpyrr.addr
    hexagon_M4_nac_up_s1_sat,                 // llvm.hexagon.M4.nac.up.s1.sat
    hexagon_M4_or_and,                        // llvm.hexagon.M4.or.and
    hexagon_M4_or_andn,                       // llvm.hexagon.M4.or.andn
    hexagon_M4_or_or,                         // llvm.hexagon.M4.or.or
    hexagon_M4_or_xor,                        // llvm.hexagon.M4.or.xor
    hexagon_M4_pmpyw,                         // llvm.hexagon.M4.pmpyw
    hexagon_M4_pmpyw_acc,                     // llvm.hexagon.M4.pmpyw.acc
    hexagon_M4_vpmpyh,                        // llvm.hexagon.M4.vpmpyh
    hexagon_M4_vpmpyh_acc,                    // llvm.hexagon.M4.vpmpyh.acc
    hexagon_M4_vrmpyeh_acc_s0,                // llvm.hexagon.M4.vrmpyeh.acc.s0
    hexagon_M4_vrmpyeh_acc_s1,                // llvm.hexagon.M4.vrmpyeh.acc.s1
    hexagon_M4_vrmpyeh_s0,                    // llvm.hexagon.M4.vrmpyeh.s0
    hexagon_M4_vrmpyeh_s1,                    // llvm.hexagon.M4.vrmpyeh.s1
    hexagon_M4_vrmpyoh_acc_s0,                // llvm.hexagon.M4.vrmpyoh.acc.s0
    hexagon_M4_vrmpyoh_acc_s1,                // llvm.hexagon.M4.vrmpyoh.acc.s1
    hexagon_M4_vrmpyoh_s0,                    // llvm.hexagon.M4.vrmpyoh.s0
    hexagon_M4_vrmpyoh_s1,                    // llvm.hexagon.M4.vrmpyoh.s1
    hexagon_M4_xor_and,                       // llvm.hexagon.M4.xor.and
    hexagon_M4_xor_andn,                      // llvm.hexagon.M4.xor.andn
    hexagon_M4_xor_or,                        // llvm.hexagon.M4.xor.or
    hexagon_M4_xor_xacc,                      // llvm.hexagon.M4.xor.xacc
    hexagon_M5_vdmacbsu,                      // llvm.hexagon.M5.vdmacbsu
    hexagon_M5_vdmpybsu,                      // llvm.hexagon.M5.vdmpybsu
    hexagon_M5_vmacbsu,                       // llvm.hexagon.M5.vmacbsu
    hexagon_M5_vmacbuu,                       // llvm.hexagon.M5.vmacbuu
    hexagon_M5_vmpybsu,                       // llvm.hexagon.M5.vmpybsu
    hexagon_M5_vmpybuu,                       // llvm.hexagon.M5.vmpybuu
    hexagon_M5_vrmacbsu,                      // llvm.hexagon.M5.vrmacbsu
    hexagon_M5_vrmacbuu,                      // llvm.hexagon.M5.vrmacbuu
    hexagon_M5_vrmpybsu,                      // llvm.hexagon.M5.vrmpybsu
    hexagon_M5_vrmpybuu,                      // llvm.hexagon.M5.vrmpybuu
    hexagon_S2_addasl_rrri,                   // llvm.hexagon.S2.addasl.rrri
    hexagon_S2_asl_i_p,                       // llvm.hexagon.S2.asl.i.p
    hexagon_S2_asl_i_p_acc,                   // llvm.hexagon.S2.asl.i.p.acc
    hexagon_S2_asl_i_p_and,                   // llvm.hexagon.S2.asl.i.p.and
    hexagon_S2_asl_i_p_nac,                   // llvm.hexagon.S2.asl.i.p.nac
    hexagon_S2_asl_i_p_or,                    // llvm.hexagon.S2.asl.i.p.or
    hexagon_S2_asl_i_p_xacc,                  // llvm.hexagon.S2.asl.i.p.xacc
    hexagon_S2_asl_i_r,                       // llvm.hexagon.S2.asl.i.r
    hexagon_S2_asl_i_r_acc,                   // llvm.hexagon.S2.asl.i.r.acc
    hexagon_S2_asl_i_r_and,                   // llvm.hexagon.S2.asl.i.r.and
    hexagon_S2_asl_i_r_nac,                   // llvm.hexagon.S2.asl.i.r.nac
    hexagon_S2_asl_i_r_or,                    // llvm.hexagon.S2.asl.i.r.or
    hexagon_S2_asl_i_r_sat,                   // llvm.hexagon.S2.asl.i.r.sat
    hexagon_S2_asl_i_r_xacc,                  // llvm.hexagon.S2.asl.i.r.xacc
    hexagon_S2_asl_i_vh,                      // llvm.hexagon.S2.asl.i.vh
    hexagon_S2_asl_i_vw,                      // llvm.hexagon.S2.asl.i.vw
    hexagon_S2_asl_r_p,                       // llvm.hexagon.S2.asl.r.p
    hexagon_S2_asl_r_p_acc,                   // llvm.hexagon.S2.asl.r.p.acc
    hexagon_S2_asl_r_p_and,                   // llvm.hexagon.S2.asl.r.p.and
    hexagon_S2_asl_r_p_nac,                   // llvm.hexagon.S2.asl.r.p.nac
    hexagon_S2_asl_r_p_or,                    // llvm.hexagon.S2.asl.r.p.or
    hexagon_S2_asl_r_p_xor,                   // llvm.hexagon.S2.asl.r.p.xor
    hexagon_S2_asl_r_r,                       // llvm.hexagon.S2.asl.r.r
    hexagon_S2_asl_r_r_acc,                   // llvm.hexagon.S2.asl.r.r.acc
    hexagon_S2_asl_r_r_and,                   // llvm.hexagon.S2.asl.r.r.and
    hexagon_S2_asl_r_r_nac,                   // llvm.hexagon.S2.asl.r.r.nac
    hexagon_S2_asl_r_r_or,                    // llvm.hexagon.S2.asl.r.r.or
    hexagon_S2_asl_r_r_sat,                   // llvm.hexagon.S2.asl.r.r.sat
    hexagon_S2_asl_r_vh,                      // llvm.hexagon.S2.asl.r.vh
    hexagon_S2_asl_r_vw,                      // llvm.hexagon.S2.asl.r.vw
    hexagon_S2_asr_i_p,                       // llvm.hexagon.S2.asr.i.p
    hexagon_S2_asr_i_p_acc,                   // llvm.hexagon.S2.asr.i.p.acc
    hexagon_S2_asr_i_p_and,                   // llvm.hexagon.S2.asr.i.p.and
    hexagon_S2_asr_i_p_nac,                   // llvm.hexagon.S2.asr.i.p.nac
    hexagon_S2_asr_i_p_or,                    // llvm.hexagon.S2.asr.i.p.or
    hexagon_S2_asr_i_p_rnd,                   // llvm.hexagon.S2.asr.i.p.rnd
    hexagon_S2_asr_i_p_rnd_goodsyntax,        // llvm.hexagon.S2.asr.i.p.rnd.goodsyntax
    hexagon_S2_asr_i_r,                       // llvm.hexagon.S2.asr.i.r
    hexagon_S2_asr_i_r_acc,                   // llvm.hexagon.S2.asr.i.r.acc
    hexagon_S2_asr_i_r_and,                   // llvm.hexagon.S2.asr.i.r.and
    hexagon_S2_asr_i_r_nac,                   // llvm.hexagon.S2.asr.i.r.nac
    hexagon_S2_asr_i_r_or,                    // llvm.hexagon.S2.asr.i.r.or
    hexagon_S2_asr_i_r_rnd,                   // llvm.hexagon.S2.asr.i.r.rnd
    hexagon_S2_asr_i_r_rnd_goodsyntax,        // llvm.hexagon.S2.asr.i.r.rnd.goodsyntax
    hexagon_S2_asr_i_svw_trun,                // llvm.hexagon.S2.asr.i.svw.trun
    hexagon_S2_asr_i_vh,                      // llvm.hexagon.S2.asr.i.vh
    hexagon_S2_asr_i_vw,                      // llvm.hexagon.S2.asr.i.vw
    hexagon_S2_asr_r_p,                       // llvm.hexagon.S2.asr.r.p
    hexagon_S2_asr_r_p_acc,                   // llvm.hexagon.S2.asr.r.p.acc
    hexagon_S2_asr_r_p_and,                   // llvm.hexagon.S2.asr.r.p.and
    hexagon_S2_asr_r_p_nac,                   // llvm.hexagon.S2.asr.r.p.nac
    hexagon_S2_asr_r_p_or,                    // llvm.hexagon.S2.asr.r.p.or
    hexagon_S2_asr_r_p_xor,                   // llvm.hexagon.S2.asr.r.p.xor
    hexagon_S2_asr_r_r,                       // llvm.hexagon.S2.asr.r.r
    hexagon_S2_asr_r_r_acc,                   // llvm.hexagon.S2.asr.r.r.acc
    hexagon_S2_asr_r_r_and,                   // llvm.hexagon.S2.asr.r.r.and
    hexagon_S2_asr_r_r_nac,                   // llvm.hexagon.S2.asr.r.r.nac
    hexagon_S2_asr_r_r_or,                    // llvm.hexagon.S2.asr.r.r.or
    hexagon_S2_asr_r_r_sat,                   // llvm.hexagon.S2.asr.r.r.sat
    hexagon_S2_asr_r_svw_trun,                // llvm.hexagon.S2.asr.r.svw.trun
    hexagon_S2_asr_r_vh,                      // llvm.hexagon.S2.asr.r.vh
    hexagon_S2_asr_r_vw,                      // llvm.hexagon.S2.asr.r.vw
    hexagon_S2_brev,                          // llvm.hexagon.S2.brev
    hexagon_S2_brevp,                         // llvm.hexagon.S2.brevp
    hexagon_S2_cl0,                           // llvm.hexagon.S2.cl0
    hexagon_S2_cl0p,                          // llvm.hexagon.S2.cl0p
    hexagon_S2_cl1,                           // llvm.hexagon.S2.cl1
    hexagon_S2_cl1p,                          // llvm.hexagon.S2.cl1p
    hexagon_S2_clb,                           // llvm.hexagon.S2.clb
    hexagon_S2_clbnorm,                       // llvm.hexagon.S2.clbnorm
    hexagon_S2_clbp,                          // llvm.hexagon.S2.clbp
    hexagon_S2_clrbit_i,                      // llvm.hexagon.S2.clrbit.i
    hexagon_S2_clrbit_r,                      // llvm.hexagon.S2.clrbit.r
    hexagon_S2_ct0,                           // llvm.hexagon.S2.ct0
    hexagon_S2_ct0p,                          // llvm.hexagon.S2.ct0p
    hexagon_S2_ct1,                           // llvm.hexagon.S2.ct1
    hexagon_S2_ct1p,                          // llvm.hexagon.S2.ct1p
    hexagon_S2_deinterleave,                  // llvm.hexagon.S2.deinterleave
    hexagon_S2_extractu,                      // llvm.hexagon.S2.extractu
    hexagon_S2_extractu_rp,                   // llvm.hexagon.S2.extractu.rp
    hexagon_S2_extractup,                     // llvm.hexagon.S2.extractup
    hexagon_S2_extractup_rp,                  // llvm.hexagon.S2.extractup.rp
    hexagon_S2_insert,                        // llvm.hexagon.S2.insert
    hexagon_S2_insert_rp,                     // llvm.hexagon.S2.insert.rp
    hexagon_S2_insertp,                       // llvm.hexagon.S2.insertp
    hexagon_S2_insertp_rp,                    // llvm.hexagon.S2.insertp.rp
    hexagon_S2_interleave,                    // llvm.hexagon.S2.interleave
    hexagon_S2_lfsp,                          // llvm.hexagon.S2.lfsp
    hexagon_S2_lsl_r_p,                       // llvm.hexagon.S2.lsl.r.p
    hexagon_S2_lsl_r_p_acc,                   // llvm.hexagon.S2.lsl.r.p.acc
    hexagon_S2_lsl_r_p_and,                   // llvm.hexagon.S2.lsl.r.p.and
    hexagon_S2_lsl_r_p_nac,                   // llvm.hexagon.S2.lsl.r.p.nac
    hexagon_S2_lsl_r_p_or,                    // llvm.hexagon.S2.lsl.r.p.or
    hexagon_S2_lsl_r_p_xor,                   // llvm.hexagon.S2.lsl.r.p.xor
    hexagon_S2_lsl_r_r,                       // llvm.hexagon.S2.lsl.r.r
    hexagon_S2_lsl_r_r_acc,                   // llvm.hexagon.S2.lsl.r.r.acc
    hexagon_S2_lsl_r_r_and,                   // llvm.hexagon.S2.lsl.r.r.and
    hexagon_S2_lsl_r_r_nac,                   // llvm.hexagon.S2.lsl.r.r.nac
    hexagon_S2_lsl_r_r_or,                    // llvm.hexagon.S2.lsl.r.r.or
    hexagon_S2_lsl_r_vh,                      // llvm.hexagon.S2.lsl.r.vh
    hexagon_S2_lsl_r_vw,                      // llvm.hexagon.S2.lsl.r.vw
    hexagon_S2_lsr_i_p,                       // llvm.hexagon.S2.lsr.i.p
    hexagon_S2_lsr_i_p_acc,                   // llvm.hexagon.S2.lsr.i.p.acc
    hexagon_S2_lsr_i_p_and,                   // llvm.hexagon.S2.lsr.i.p.and
    hexagon_S2_lsr_i_p_nac,                   // llvm.hexagon.S2.lsr.i.p.nac
    hexagon_S2_lsr_i_p_or,                    // llvm.hexagon.S2.lsr.i.p.or
    hexagon_S2_lsr_i_p_xacc,                  // llvm.hexagon.S2.lsr.i.p.xacc
    hexagon_S2_lsr_i_r,                       // llvm.hexagon.S2.lsr.i.r
    hexagon_S2_lsr_i_r_acc,                   // llvm.hexagon.S2.lsr.i.r.acc
    hexagon_S2_lsr_i_r_and,                   // llvm.hexagon.S2.lsr.i.r.and
    hexagon_S2_lsr_i_r_nac,                   // llvm.hexagon.S2.lsr.i.r.nac
    hexagon_S2_lsr_i_r_or,                    // llvm.hexagon.S2.lsr.i.r.or
    hexagon_S2_lsr_i_r_xacc,                  // llvm.hexagon.S2.lsr.i.r.xacc
    hexagon_S2_lsr_i_vh,                      // llvm.hexagon.S2.lsr.i.vh
    hexagon_S2_lsr_i_vw,                      // llvm.hexagon.S2.lsr.i.vw
    hexagon_S2_lsr_r_p,                       // llvm.hexagon.S2.lsr.r.p
    hexagon_S2_lsr_r_p_acc,                   // llvm.hexagon.S2.lsr.r.p.acc
    hexagon_S2_lsr_r_p_and,                   // llvm.hexagon.S2.lsr.r.p.and
    hexagon_S2_lsr_r_p_nac,                   // llvm.hexagon.S2.lsr.r.p.nac
    hexagon_S2_lsr_r_p_or,                    // llvm.hexagon.S2.lsr.r.p.or
    hexagon_S2_lsr_r_p_xor,                   // llvm.hexagon.S2.lsr.r.p.xor
    hexagon_S2_lsr_r_r,                       // llvm.hexagon.S2.lsr.r.r
    hexagon_S2_lsr_r_r_acc,                   // llvm.hexagon.S2.lsr.r.r.acc
    hexagon_S2_lsr_r_r_and,                   // llvm.hexagon.S2.lsr.r.r.and
    hexagon_S2_lsr_r_r_nac,                   // llvm.hexagon.S2.lsr.r.r.nac
    hexagon_S2_lsr_r_r_or,                    // llvm.hexagon.S2.lsr.r.r.or
    hexagon_S2_lsr_r_vh,                      // llvm.hexagon.S2.lsr.r.vh
    hexagon_S2_lsr_r_vw,                      // llvm.hexagon.S2.lsr.r.vw
    hexagon_S2_packhl,                        // llvm.hexagon.S2.packhl
    hexagon_S2_parityp,                       // llvm.hexagon.S2.parityp
    hexagon_S2_setbit_i,                      // llvm.hexagon.S2.setbit.i
    hexagon_S2_setbit_r,                      // llvm.hexagon.S2.setbit.r
    hexagon_S2_shuffeb,                       // llvm.hexagon.S2.shuffeb
    hexagon_S2_shuffeh,                       // llvm.hexagon.S2.shuffeh
    hexagon_S2_shuffob,                       // llvm.hexagon.S2.shuffob
    hexagon_S2_shuffoh,                       // llvm.hexagon.S2.shuffoh
    hexagon_S2_svsathb,                       // llvm.hexagon.S2.svsathb
    hexagon_S2_svsathub,                      // llvm.hexagon.S2.svsathub
    hexagon_S2_tableidxb_goodsyntax,          // llvm.hexagon.S2.tableidxb.goodsyntax
    hexagon_S2_tableidxd_goodsyntax,          // llvm.hexagon.S2.tableidxd.goodsyntax
    hexagon_S2_tableidxh_goodsyntax,          // llvm.hexagon.S2.tableidxh.goodsyntax
    hexagon_S2_tableidxw_goodsyntax,          // llvm.hexagon.S2.tableidxw.goodsyntax
    hexagon_S2_togglebit_i,                   // llvm.hexagon.S2.togglebit.i
    hexagon_S2_togglebit_r,                   // llvm.hexagon.S2.togglebit.r
    hexagon_S2_tstbit_i,                      // llvm.hexagon.S2.tstbit.i
    hexagon_S2_tstbit_r,                      // llvm.hexagon.S2.tstbit.r
    hexagon_S2_valignib,                      // llvm.hexagon.S2.valignib
    hexagon_S2_valignrb,                      // llvm.hexagon.S2.valignrb
    hexagon_S2_vcnegh,                        // llvm.hexagon.S2.vcnegh
    hexagon_S2_vcrotate,                      // llvm.hexagon.S2.vcrotate
    hexagon_S2_vrcnegh,                       // llvm.hexagon.S2.vrcnegh
    hexagon_S2_vrndpackwh,                    // llvm.hexagon.S2.vrndpackwh
    hexagon_S2_vrndpackwhs,                   // llvm.hexagon.S2.vrndpackwhs
    hexagon_S2_vsathb,                        // llvm.hexagon.S2.vsathb
    hexagon_S2_vsathb_nopack,                 // llvm.hexagon.S2.vsathb.nopack
    hexagon_S2_vsathub,                       // llvm.hexagon.S2.vsathub
    hexagon_S2_vsathub_nopack,                // llvm.hexagon.S2.vsathub.nopack
    hexagon_S2_vsatwh,                        // llvm.hexagon.S2.vsatwh
    hexagon_S2_vsatwh_nopack,                 // llvm.hexagon.S2.vsatwh.nopack
    hexagon_S2_vsatwuh,                       // llvm.hexagon.S2.vsatwuh
    hexagon_S2_vsatwuh_nopack,                // llvm.hexagon.S2.vsatwuh.nopack
    hexagon_S2_vsplatrb,                      // llvm.hexagon.S2.vsplatrb
    hexagon_S2_vsplatrh,                      // llvm.hexagon.S2.vsplatrh
    hexagon_S2_vspliceib,                     // llvm.hexagon.S2.vspliceib
    hexagon_S2_vsplicerb,                     // llvm.hexagon.S2.vsplicerb
    hexagon_S2_vsxtbh,                        // llvm.hexagon.S2.vsxtbh
    hexagon_S2_vsxthw,                        // llvm.hexagon.S2.vsxthw
    hexagon_S2_vtrunehb,                      // llvm.hexagon.S2.vtrunehb
    hexagon_S2_vtrunewh,                      // llvm.hexagon.S2.vtrunewh
    hexagon_S2_vtrunohb,                      // llvm.hexagon.S2.vtrunohb
    hexagon_S2_vtrunowh,                      // llvm.hexagon.S2.vtrunowh
    hexagon_S2_vzxtbh,                        // llvm.hexagon.S2.vzxtbh
    hexagon_S2_vzxthw,                        // llvm.hexagon.S2.vzxthw
    hexagon_S4_addaddi,                       // llvm.hexagon.S4.addaddi
    hexagon_S4_addi_asl_ri,                   // llvm.hexagon.S4.addi.asl.ri
    hexagon_S4_addi_lsr_ri,                   // llvm.hexagon.S4.addi.lsr.ri
    hexagon_S4_andi_asl_ri,                   // llvm.hexagon.S4.andi.asl.ri
    hexagon_S4_andi_lsr_ri,                   // llvm.hexagon.S4.andi.lsr.ri
    hexagon_S4_clbaddi,                       // llvm.hexagon.S4.clbaddi
    hexagon_S4_clbpaddi,                      // llvm.hexagon.S4.clbpaddi
    hexagon_S4_clbpnorm,                      // llvm.hexagon.S4.clbpnorm
    hexagon_S4_extract,                       // llvm.hexagon.S4.extract
    hexagon_S4_extract_rp,                    // llvm.hexagon.S4.extract.rp
    hexagon_S4_extractp,                      // llvm.hexagon.S4.extractp
    hexagon_S4_extractp_rp,                   // llvm.hexagon.S4.extractp.rp
    hexagon_S4_lsli,                          // llvm.hexagon.S4.lsli
    hexagon_S4_ntstbit_i,                     // llvm.hexagon.S4.ntstbit.i
    hexagon_S4_ntstbit_r,                     // llvm.hexagon.S4.ntstbit.r
    hexagon_S4_or_andi,                       // llvm.hexagon.S4.or.andi
    hexagon_S4_or_andix,                      // llvm.hexagon.S4.or.andix
    hexagon_S4_or_ori,                        // llvm.hexagon.S4.or.ori
    hexagon_S4_ori_asl_ri,                    // llvm.hexagon.S4.ori.asl.ri
    hexagon_S4_ori_lsr_ri,                    // llvm.hexagon.S4.ori.lsr.ri
    hexagon_S4_parity,                        // llvm.hexagon.S4.parity
    hexagon_S4_subaddi,                       // llvm.hexagon.S4.subaddi
    hexagon_S4_subi_asl_ri,                   // llvm.hexagon.S4.subi.asl.ri
    hexagon_S4_subi_lsr_ri,                   // llvm.hexagon.S4.subi.lsr.ri
    hexagon_S4_vrcrotate,                     // llvm.hexagon.S4.vrcrotate
    hexagon_S4_vrcrotate_acc,                 // llvm.hexagon.S4.vrcrotate.acc
    hexagon_S4_vxaddsubh,                     // llvm.hexagon.S4.vxaddsubh
    hexagon_S4_vxaddsubhr,                    // llvm.hexagon.S4.vxaddsubhr
    hexagon_S4_vxaddsubw,                     // llvm.hexagon.S4.vxaddsubw
    hexagon_S4_vxsubaddh,                     // llvm.hexagon.S4.vxsubaddh
    hexagon_S4_vxsubaddhr,                    // llvm.hexagon.S4.vxsubaddhr
    hexagon_S4_vxsubaddw,                     // llvm.hexagon.S4.vxsubaddw
    hexagon_S5_asrhub_rnd_sat_goodsyntax,     // llvm.hexagon.S5.asrhub.rnd.sat.goodsyntax
    hexagon_S5_asrhub_sat,                    // llvm.hexagon.S5.asrhub.sat
    hexagon_S5_popcountp,                     // llvm.hexagon.S5.popcountp
    hexagon_S5_vasrhrnd_goodsyntax,           // llvm.hexagon.S5.vasrhrnd.goodsyntax
    hexagon_SI_to_SXTHI_asrh,                 // llvm.hexagon.SI.to.SXTHI.asrh
    hexagon_circ_ldd,                         // llvm.hexagon.circ.ldd
    init_trampoline,                          // llvm.init.trampoline
    invariant_end,                            // llvm.invariant.end
    invariant_start,                          // llvm.invariant.start
    lifetime_end,                             // llvm.lifetime.end
    lifetime_start,                           // llvm.lifetime.start
    log,                                      // llvm.log
    log10,                                    // llvm.log10
    log2,                                     // llvm.log2
    longjmp,                                  // llvm.longjmp
    memcpy,                                   // llvm.memcpy
    memmove,                                  // llvm.memmove
    memset,                                   // llvm.memset
    mips_absq_s_ph,                           // llvm.mips.absq.s.ph
    mips_absq_s_qb,                           // llvm.mips.absq.s.qb
    mips_absq_s_w,                            // llvm.mips.absq.s.w
    mips_addq_ph,                             // llvm.mips.addq.ph
    mips_addq_s_ph,                           // llvm.mips.addq.s.ph
    mips_addq_s_w,                            // llvm.mips.addq.s.w
    mips_addqh_ph,                            // llvm.mips.addqh.ph
    mips_addqh_r_ph,                          // llvm.mips.addqh.r.ph
    mips_addqh_r_w,                           // llvm.mips.addqh.r.w
    mips_addqh_w,                             // llvm.mips.addqh.w
    mips_addsc,                               // llvm.mips.addsc
    mips_addu_ph,                             // llvm.mips.addu.ph
    mips_addu_qb,                             // llvm.mips.addu.qb
    mips_addu_s_ph,                           // llvm.mips.addu.s.ph
    mips_addu_s_qb,                           // llvm.mips.addu.s.qb
    mips_adduh_qb,                            // llvm.mips.adduh.qb
    mips_adduh_r_qb,                          // llvm.mips.adduh.r.qb
    mips_addwc,                               // llvm.mips.addwc
    mips_append,                              // llvm.mips.append
    mips_balign,                              // llvm.mips.balign
    mips_bitrev,                              // llvm.mips.bitrev
    mips_bposge32,                            // llvm.mips.bposge32
    mips_cmp_eq_ph,                           // llvm.mips.cmp.eq.ph
    mips_cmp_le_ph,                           // llvm.mips.cmp.le.ph
    mips_cmp_lt_ph,                           // llvm.mips.cmp.lt.ph
    mips_cmpgdu_eq_qb,                        // llvm.mips.cmpgdu.eq.qb
    mips_cmpgdu_le_qb,                        // llvm.mips.cmpgdu.le.qb
    mips_cmpgdu_lt_qb,                        // llvm.mips.cmpgdu.lt.qb
    mips_cmpgu_eq_qb,                         // llvm.mips.cmpgu.eq.qb
    mips_cmpgu_le_qb,                         // llvm.mips.cmpgu.le.qb
    mips_cmpgu_lt_qb,                         // llvm.mips.cmpgu.lt.qb
    mips_cmpu_eq_qb,                          // llvm.mips.cmpu.eq.qb
    mips_cmpu_le_qb,                          // llvm.mips.cmpu.le.qb
    mips_cmpu_lt_qb,                          // llvm.mips.cmpu.lt.qb
    mips_dpa_w_ph,                            // llvm.mips.dpa.w.ph
    mips_dpaq_s_w_ph,                         // llvm.mips.dpaq.s.w.ph
    mips_dpaq_sa_l_w,                         // llvm.mips.dpaq.sa.l.w
    mips_dpaqx_s_w_ph,                        // llvm.mips.dpaqx.s.w.ph
    mips_dpaqx_sa_w_ph,                       // llvm.mips.dpaqx.sa.w.ph
    mips_dpau_h_qbl,                          // llvm.mips.dpau.h.qbl
    mips_dpau_h_qbr,                          // llvm.mips.dpau.h.qbr
    mips_dpax_w_ph,                           // llvm.mips.dpax.w.ph
    mips_dps_w_ph,                            // llvm.mips.dps.w.ph
    mips_dpsq_s_w_ph,                         // llvm.mips.dpsq.s.w.ph
    mips_dpsq_sa_l_w,                         // llvm.mips.dpsq.sa.l.w
    mips_dpsqx_s_w_ph,                        // llvm.mips.dpsqx.s.w.ph
    mips_dpsqx_sa_w_ph,                       // llvm.mips.dpsqx.sa.w.ph
    mips_dpsu_h_qbl,                          // llvm.mips.dpsu.h.qbl
    mips_dpsu_h_qbr,                          // llvm.mips.dpsu.h.qbr
    mips_dpsx_w_ph,                           // llvm.mips.dpsx.w.ph
    mips_extp,                                // llvm.mips.extp
    mips_extpdp,                              // llvm.mips.extpdp
    mips_extr_r_w,                            // llvm.mips.extr.r.w
    mips_extr_rs_w,                           // llvm.mips.extr.rs.w
    mips_extr_s_h,                            // llvm.mips.extr.s.h
    mips_extr_w,                              // llvm.mips.extr.w
    mips_insv,                                // llvm.mips.insv
    mips_lbux,                                // llvm.mips.lbux
    mips_lhx,                                 // llvm.mips.lhx
    mips_lwx,                                 // llvm.mips.lwx
    mips_madd,                                // llvm.mips.madd
    mips_maddu,                               // llvm.mips.maddu
    mips_maq_s_w_phl,                         // llvm.mips.maq.s.w.phl
    mips_maq_s_w_phr,                         // llvm.mips.maq.s.w.phr
    mips_maq_sa_w_phl,                        // llvm.mips.maq.sa.w.phl
    mips_maq_sa_w_phr,                        // llvm.mips.maq.sa.w.phr
    mips_modsub,                              // llvm.mips.modsub
    mips_msub,                                // llvm.mips.msub
    mips_msubu,                               // llvm.mips.msubu
    mips_mthlip,                              // llvm.mips.mthlip
    mips_mul_ph,                              // llvm.mips.mul.ph
    mips_mul_s_ph,                            // llvm.mips.mul.s.ph
    mips_muleq_s_w_phl,                       // llvm.mips.muleq.s.w.phl
    mips_muleq_s_w_phr,                       // llvm.mips.muleq.s.w.phr
    mips_muleu_s_ph_qbl,                      // llvm.mips.muleu.s.ph.qbl
    mips_muleu_s_ph_qbr,                      // llvm.mips.muleu.s.ph.qbr
    mips_mulq_rs_ph,                          // llvm.mips.mulq.rs.ph
    mips_mulq_rs_w,                           // llvm.mips.mulq.rs.w
    mips_mulq_s_ph,                           // llvm.mips.mulq.s.ph
    mips_mulq_s_w,                            // llvm.mips.mulq.s.w
    mips_mulsa_w_ph,                          // llvm.mips.mulsa.w.ph
    mips_mulsaq_s_w_ph,                       // llvm.mips.mulsaq.s.w.ph
    mips_mult,                                // llvm.mips.mult
    mips_multu,                               // llvm.mips.multu
    mips_packrl_ph,                           // llvm.mips.packrl.ph
    mips_pick_ph,                             // llvm.mips.pick.ph
    mips_pick_qb,                             // llvm.mips.pick.qb
    mips_preceq_w_phl,                        // llvm.mips.preceq.w.phl
    mips_preceq_w_phr,                        // llvm.mips.preceq.w.phr
    mips_precequ_ph_qbl,                      // llvm.mips.precequ.ph.qbl
    mips_precequ_ph_qbla,                     // llvm.mips.precequ.ph.qbla
    mips_precequ_ph_qbr,                      // llvm.mips.precequ.ph.qbr
    mips_precequ_ph_qbra,                     // llvm.mips.precequ.ph.qbra
    mips_preceu_ph_qbl,                       // llvm.mips.preceu.ph.qbl
    mips_preceu_ph_qbla,                      // llvm.mips.preceu.ph.qbla
    mips_preceu_ph_qbr,                       // llvm.mips.preceu.ph.qbr
    mips_preceu_ph_qbra,                      // llvm.mips.preceu.ph.qbra
    mips_precr_qb_ph,                         // llvm.mips.precr.qb.ph
    mips_precr_sra_ph_w,                      // llvm.mips.precr.sra.ph.w
    mips_precr_sra_r_ph_w,                    // llvm.mips.precr.sra.r.ph.w
    mips_precrq_ph_w,                         // llvm.mips.precrq.ph.w
    mips_precrq_qb_ph,                        // llvm.mips.precrq.qb.ph
    mips_precrq_rs_ph_w,                      // llvm.mips.precrq.rs.ph.w
    mips_precrqu_s_qb_ph,                     // llvm.mips.precrqu.s.qb.ph
    mips_prepend,                             // llvm.mips.prepend
    mips_raddu_w_qb,                          // llvm.mips.raddu.w.qb
    mips_rddsp,                               // llvm.mips.rddsp
    mips_repl_ph,                             // llvm.mips.repl.ph
    mips_repl_qb,                             // llvm.mips.repl.qb
    mips_shilo,                               // llvm.mips.shilo
    mips_shll_ph,                             // llvm.mips.shll.ph
    mips_shll_qb,                             // llvm.mips.shll.qb
    mips_shll_s_ph,                           // llvm.mips.shll.s.ph
    mips_shll_s_w,                            // llvm.mips.shll.s.w
    mips_shra_ph,                             // llvm.mips.shra.ph
    mips_shra_qb,                             // llvm.mips.shra.qb
    mips_shra_r_ph,                           // llvm.mips.shra.r.ph
    mips_shra_r_qb,                           // llvm.mips.shra.r.qb
    mips_shra_r_w,                            // llvm.mips.shra.r.w
    mips_shrl_ph,                             // llvm.mips.shrl.ph
    mips_shrl_qb,                             // llvm.mips.shrl.qb
    mips_subq_ph,                             // llvm.mips.subq.ph
    mips_subq_s_ph,                           // llvm.mips.subq.s.ph
    mips_subq_s_w,                            // llvm.mips.subq.s.w
    mips_subqh_ph,                            // llvm.mips.subqh.ph
    mips_subqh_r_ph,                          // llvm.mips.subqh.r.ph
    mips_subqh_r_w,                           // llvm.mips.subqh.r.w
    mips_subqh_w,                             // llvm.mips.subqh.w
    mips_subu_ph,                             // llvm.mips.subu.ph
    mips_subu_qb,                             // llvm.mips.subu.qb
    mips_subu_s_ph,                           // llvm.mips.subu.s.ph
    mips_subu_s_qb,                           // llvm.mips.subu.s.qb
    mips_subuh_qb,                            // llvm.mips.subuh.qb
    mips_subuh_r_qb,                          // llvm.mips.subuh.r.qb
    mips_wrdsp,                               // llvm.mips.wrdsp
    nvvm_abs_i,                               // llvm.nvvm.abs.i
    nvvm_abs_ll,                              // llvm.nvvm.abs.ll
    nvvm_add_rm_d,                            // llvm.nvvm.add.rm.d
    nvvm_add_rm_f,                            // llvm.nvvm.add.rm.f
    nvvm_add_rm_ftz_f,                        // llvm.nvvm.add.rm.ftz.f
    nvvm_add_rn_d,                            // llvm.nvvm.add.rn.d
    nvvm_add_rn_f,                            // llvm.nvvm.add.rn.f
    nvvm_add_rn_ftz_f,                        // llvm.nvvm.add.rn.ftz.f
    nvvm_add_rp_d,                            // llvm.nvvm.add.rp.d
    nvvm_add_rp_f,                            // llvm.nvvm.add.rp.f
    nvvm_add_rp_ftz_f,                        // llvm.nvvm.add.rp.ftz.f
    nvvm_add_rz_d,                            // llvm.nvvm.add.rz.d
    nvvm_add_rz_f,                            // llvm.nvvm.add.rz.f
    nvvm_add_rz_ftz_f,                        // llvm.nvvm.add.rz.ftz.f
    nvvm_atomic_load_add_f32,                 // llvm.nvvm.atomic.load.add.f32
    nvvm_atomic_load_dec_32,                  // llvm.nvvm.atomic.load.dec.32
    nvvm_atomic_load_inc_32,                  // llvm.nvvm.atomic.load.inc.32
    nvvm_barrier0,                            // llvm.nvvm.barrier0
    nvvm_barrier0_and,                        // llvm.nvvm.barrier0.and
    nvvm_barrier0_or,                         // llvm.nvvm.barrier0.or
    nvvm_barrier0_popc,                       // llvm.nvvm.barrier0.popc
    nvvm_bitcast_d2ll,                        // llvm.nvvm.bitcast.d2ll
    nvvm_bitcast_f2i,                         // llvm.nvvm.bitcast.f2i
    nvvm_bitcast_i2f,                         // llvm.nvvm.bitcast.i2f
    nvvm_bitcast_ll2d,                        // llvm.nvvm.bitcast.ll2d
    nvvm_brev32,                              // llvm.nvvm.brev32
    nvvm_brev64,                              // llvm.nvvm.brev64
    nvvm_ceil_d,                              // llvm.nvvm.ceil.d
    nvvm_ceil_f,                              // llvm.nvvm.ceil.f
    nvvm_ceil_ftz_f,                          // llvm.nvvm.ceil.ftz.f
    nvvm_clz_i,                               // llvm.nvvm.clz.i
    nvvm_clz_ll,                              // llvm.nvvm.clz.ll
    nvvm_compiler_error,                      // llvm.nvvm.compiler.error
    nvvm_compiler_warn,                       // llvm.nvvm.compiler.warn
    nvvm_cos_approx_f,                        // llvm.nvvm.cos.approx.f
    nvvm_cos_approx_ftz_f,                    // llvm.nvvm.cos.approx.ftz.f
    nvvm_d2f_rm,                              // llvm.nvvm.d2f.rm
    nvvm_d2f_rm_ftz,                          // llvm.nvvm.d2f.rm.ftz
    nvvm_d2f_rn,                              // llvm.nvvm.d2f.rn
    nvvm_d2f_rn_ftz,                          // llvm.nvvm.d2f.rn.ftz
    nvvm_d2f_rp,                              // llvm.nvvm.d2f.rp
    nvvm_d2f_rp_ftz,                          // llvm.nvvm.d2f.rp.ftz
    nvvm_d2f_rz,                              // llvm.nvvm.d2f.rz
    nvvm_d2f_rz_ftz,                          // llvm.nvvm.d2f.rz.ftz
    nvvm_d2i_hi,                              // llvm.nvvm.d2i.hi
    nvvm_d2i_lo,                              // llvm.nvvm.d2i.lo
    nvvm_d2i_rm,                              // llvm.nvvm.d2i.rm
    nvvm_d2i_rn,                              // llvm.nvvm.d2i.rn
    nvvm_d2i_rp,                              // llvm.nvvm.d2i.rp
    nvvm_d2i_rz,                              // llvm.nvvm.d2i.rz
    nvvm_d2ll_rm,                             // llvm.nvvm.d2ll.rm
    nvvm_d2ll_rn,                             // llvm.nvvm.d2ll.rn
    nvvm_d2ll_rp,                             // llvm.nvvm.d2ll.rp
    nvvm_d2ll_rz,                             // llvm.nvvm.d2ll.rz
    nvvm_d2ui_rm,                             // llvm.nvvm.d2ui.rm
    nvvm_d2ui_rn,                             // llvm.nvvm.d2ui.rn
    nvvm_d2ui_rp,                             // llvm.nvvm.d2ui.rp
    nvvm_d2ui_rz,                             // llvm.nvvm.d2ui.rz
    nvvm_d2ull_rm,                            // llvm.nvvm.d2ull.rm
    nvvm_d2ull_rn,                            // llvm.nvvm.d2ull.rn
    nvvm_d2ull_rp,                            // llvm.nvvm.d2ull.rp
    nvvm_d2ull_rz,                            // llvm.nvvm.d2ull.rz
    nvvm_div_approx_f,                        // llvm.nvvm.div.approx.f
    nvvm_div_approx_ftz_f,                    // llvm.nvvm.div.approx.ftz.f
    nvvm_div_rm_d,                            // llvm.nvvm.div.rm.d
    nvvm_div_rm_f,                            // llvm.nvvm.div.rm.f
    nvvm_div_rm_ftz_f,                        // llvm.nvvm.div.rm.ftz.f
    nvvm_div_rn_d,                            // llvm.nvvm.div.rn.d
    nvvm_div_rn_f,                            // llvm.nvvm.div.rn.f
    nvvm_div_rn_ftz_f,                        // llvm.nvvm.div.rn.ftz.f
    nvvm_div_rp_d,                            // llvm.nvvm.div.rp.d
    nvvm_div_rp_f,                            // llvm.nvvm.div.rp.f
    nvvm_div_rp_ftz_f,                        // llvm.nvvm.div.rp.ftz.f
    nvvm_div_rz_d,                            // llvm.nvvm.div.rz.d
    nvvm_div_rz_f,                            // llvm.nvvm.div.rz.f
    nvvm_div_rz_ftz_f,                        // llvm.nvvm.div.rz.ftz.f
    nvvm_ex2_approx_d,                        // llvm.nvvm.ex2.approx.d
    nvvm_ex2_approx_f,                        // llvm.nvvm.ex2.approx.f
    nvvm_ex2_approx_ftz_f,                    // llvm.nvvm.ex2.approx.ftz.f
    nvvm_f2h_rn,                              // llvm.nvvm.f2h.rn
    nvvm_f2h_rn_ftz,                          // llvm.nvvm.f2h.rn.ftz
    nvvm_f2i_rm,                              // llvm.nvvm.f2i.rm
    nvvm_f2i_rm_ftz,                          // llvm.nvvm.f2i.rm.ftz
    nvvm_f2i_rn,                              // llvm.nvvm.f2i.rn
    nvvm_f2i_rn_ftz,                          // llvm.nvvm.f2i.rn.ftz
    nvvm_f2i_rp,                              // llvm.nvvm.f2i.rp
    nvvm_f2i_rp_ftz,                          // llvm.nvvm.f2i.rp.ftz
    nvvm_f2i_rz,                              // llvm.nvvm.f2i.rz
    nvvm_f2i_rz_ftz,                          // llvm.nvvm.f2i.rz.ftz
    nvvm_f2ll_rm,                             // llvm.nvvm.f2ll.rm
    nvvm_f2ll_rm_ftz,                         // llvm.nvvm.f2ll.rm.ftz
    nvvm_f2ll_rn,                             // llvm.nvvm.f2ll.rn
    nvvm_f2ll_rn_ftz,                         // llvm.nvvm.f2ll.rn.ftz
    nvvm_f2ll_rp,                             // llvm.nvvm.f2ll.rp
    nvvm_f2ll_rp_ftz,                         // llvm.nvvm.f2ll.rp.ftz
    nvvm_f2ll_rz,                             // llvm.nvvm.f2ll.rz
    nvvm_f2ll_rz_ftz,                         // llvm.nvvm.f2ll.rz.ftz
    nvvm_f2ui_rm,                             // llvm.nvvm.f2ui.rm
    nvvm_f2ui_rm_ftz,                         // llvm.nvvm.f2ui.rm.ftz
    nvvm_f2ui_rn,                             // llvm.nvvm.f2ui.rn
    nvvm_f2ui_rn_ftz,                         // llvm.nvvm.f2ui.rn.ftz
    nvvm_f2ui_rp,                             // llvm.nvvm.f2ui.rp
    nvvm_f2ui_rp_ftz,                         // llvm.nvvm.f2ui.rp.ftz
    nvvm_f2ui_rz,                             // llvm.nvvm.f2ui.rz
    nvvm_f2ui_rz_ftz,                         // llvm.nvvm.f2ui.rz.ftz
    nvvm_f2ull_rm,                            // llvm.nvvm.f2ull.rm
    nvvm_f2ull_rm_ftz,                        // llvm.nvvm.f2ull.rm.ftz
    nvvm_f2ull_rn,                            // llvm.nvvm.f2ull.rn
    nvvm_f2ull_rn_ftz,                        // llvm.nvvm.f2ull.rn.ftz
    nvvm_f2ull_rp,                            // llvm.nvvm.f2ull.rp
    nvvm_f2ull_rp_ftz,                        // llvm.nvvm.f2ull.rp.ftz
    nvvm_f2ull_rz,                            // llvm.nvvm.f2ull.rz
    nvvm_f2ull_rz_ftz,                        // llvm.nvvm.f2ull.rz.ftz
    nvvm_fabs_d,                              // llvm.nvvm.fabs.d
    nvvm_fabs_f,                              // llvm.nvvm.fabs.f
    nvvm_fabs_ftz_f,                          // llvm.nvvm.fabs.ftz.f
    nvvm_floor_d,                             // llvm.nvvm.floor.d
    nvvm_floor_f,                             // llvm.nvvm.floor.f
    nvvm_floor_ftz_f,                         // llvm.nvvm.floor.ftz.f
    nvvm_fma_rm_d,                            // llvm.nvvm.fma.rm.d
    nvvm_fma_rm_f,                            // llvm.nvvm.fma.rm.f
    nvvm_fma_rm_ftz_f,                        // llvm.nvvm.fma.rm.ftz.f
    nvvm_fma_rn_d,                            // llvm.nvvm.fma.rn.d
    nvvm_fma_rn_f,                            // llvm.nvvm.fma.rn.f
    nvvm_fma_rn_ftz_f,                        // llvm.nvvm.fma.rn.ftz.f
    nvvm_fma_rp_d,                            // llvm.nvvm.fma.rp.d
    nvvm_fma_rp_f,                            // llvm.nvvm.fma.rp.f
    nvvm_fma_rp_ftz_f,                        // llvm.nvvm.fma.rp.ftz.f
    nvvm_fma_rz_d,                            // llvm.nvvm.fma.rz.d
    nvvm_fma_rz_f,                            // llvm.nvvm.fma.rz.f
    nvvm_fma_rz_ftz_f,                        // llvm.nvvm.fma.rz.ftz.f
    nvvm_fmax_d,                              // llvm.nvvm.fmax.d
    nvvm_fmax_f,                              // llvm.nvvm.fmax.f
    nvvm_fmax_ftz_f,                          // llvm.nvvm.fmax.ftz.f
    nvvm_fmin_d,                              // llvm.nvvm.fmin.d
    nvvm_fmin_f,                              // llvm.nvvm.fmin.f
    nvvm_fmin_ftz_f,                          // llvm.nvvm.fmin.ftz.f
    nvvm_h2f,                                 // llvm.nvvm.h2f
    nvvm_i2d_rm,                              // llvm.nvvm.i2d.rm
    nvvm_i2d_rn,                              // llvm.nvvm.i2d.rn
    nvvm_i2d_rp,                              // llvm.nvvm.i2d.rp
    nvvm_i2d_rz,                              // llvm.nvvm.i2d.rz
    nvvm_i2f_rm,                              // llvm.nvvm.i2f.rm
    nvvm_i2f_rn,                              // llvm.nvvm.i2f.rn
    nvvm_i2f_rp,                              // llvm.nvvm.i2f.rp
    nvvm_i2f_rz,                              // llvm.nvvm.i2f.rz
    nvvm_ldu_global_f,                        // llvm.nvvm.ldu.global.f
    nvvm_ldu_global_i,                        // llvm.nvvm.ldu.global.i
    nvvm_ldu_global_p,                        // llvm.nvvm.ldu.global.p
    nvvm_lg2_approx_d,                        // llvm.nvvm.lg2.approx.d
    nvvm_lg2_approx_f,                        // llvm.nvvm.lg2.approx.f
    nvvm_lg2_approx_ftz_f,                    // llvm.nvvm.lg2.approx.ftz.f
    nvvm_ll2d_rm,                             // llvm.nvvm.ll2d.rm
    nvvm_ll2d_rn,                             // llvm.nvvm.ll2d.rn
    nvvm_ll2d_rp,                             // llvm.nvvm.ll2d.rp
    nvvm_ll2d_rz,                             // llvm.nvvm.ll2d.rz
    nvvm_ll2f_rm,                             // llvm.nvvm.ll2f.rm
    nvvm_ll2f_rn,                             // llvm.nvvm.ll2f.rn
    nvvm_ll2f_rp,                             // llvm.nvvm.ll2f.rp
    nvvm_ll2f_rz,                             // llvm.nvvm.ll2f.rz
    nvvm_lohi_i2d,                            // llvm.nvvm.lohi.i2d
    nvvm_max_i,                               // llvm.nvvm.max.i
    nvvm_max_ll,                              // llvm.nvvm.max.ll
    nvvm_max_ui,                              // llvm.nvvm.max.ui
    nvvm_max_ull,                             // llvm.nvvm.max.ull
    nvvm_membar_cta,                          // llvm.nvvm.membar.cta
    nvvm_membar_gl,                           // llvm.nvvm.membar.gl
    nvvm_membar_sys,                          // llvm.nvvm.membar.sys
    nvvm_min_i,                               // llvm.nvvm.min.i
    nvvm_min_ll,                              // llvm.nvvm.min.ll
    nvvm_min_ui,                              // llvm.nvvm.min.ui
    nvvm_min_ull,                             // llvm.nvvm.min.ull
    nvvm_move_double,                         // llvm.nvvm.move.double
    nvvm_move_float,                          // llvm.nvvm.move.float
    nvvm_move_i16,                            // llvm.nvvm.move.i16
    nvvm_move_i32,                            // llvm.nvvm.move.i32
    nvvm_move_i64,                            // llvm.nvvm.move.i64
    nvvm_move_i8,                             // llvm.nvvm.move.i8
    nvvm_move_ptr,                            // llvm.nvvm.move.ptr
    nvvm_mul24_i,                             // llvm.nvvm.mul24.i
    nvvm_mul24_ui,                            // llvm.nvvm.mul24.ui
    nvvm_mul_rm_d,                            // llvm.nvvm.mul.rm.d
    nvvm_mul_rm_f,                            // llvm.nvvm.mul.rm.f
    nvvm_mul_rm_ftz_f,                        // llvm.nvvm.mul.rm.ftz.f
    nvvm_mul_rn_d,                            // llvm.nvvm.mul.rn.d
    nvvm_mul_rn_f,                            // llvm.nvvm.mul.rn.f
    nvvm_mul_rn_ftz_f,                        // llvm.nvvm.mul.rn.ftz.f
    nvvm_mul_rp_d,                            // llvm.nvvm.mul.rp.d
    nvvm_mul_rp_f,                            // llvm.nvvm.mul.rp.f
    nvvm_mul_rp_ftz_f,                        // llvm.nvvm.mul.rp.ftz.f
    nvvm_mul_rz_d,                            // llvm.nvvm.mul.rz.d
    nvvm_mul_rz_f,                            // llvm.nvvm.mul.rz.f
    nvvm_mul_rz_ftz_f,                        // llvm.nvvm.mul.rz.ftz.f
    nvvm_mulhi_i,                             // llvm.nvvm.mulhi.i
    nvvm_mulhi_ll,                            // llvm.nvvm.mulhi.ll
    nvvm_mulhi_ui,                            // llvm.nvvm.mulhi.ui
    nvvm_mulhi_ull,                           // llvm.nvvm.mulhi.ull
    nvvm_popc_i,                              // llvm.nvvm.popc.i
    nvvm_popc_ll,                             // llvm.nvvm.popc.ll
    nvvm_prmt,                                // llvm.nvvm.prmt
    nvvm_ptr_constant_to_gen,                 // llvm.nvvm.ptr.constant.to.gen
    nvvm_ptr_gen_to_constant,                 // llvm.nvvm.ptr.gen.to.constant
    nvvm_ptr_gen_to_global,                   // llvm.nvvm.ptr.gen.to.global
    nvvm_ptr_gen_to_local,                    // llvm.nvvm.ptr.gen.to.local
    nvvm_ptr_gen_to_param,                    // llvm.nvvm.ptr.gen.to.param
    nvvm_ptr_gen_to_shared,                   // llvm.nvvm.ptr.gen.to.shared
    nvvm_ptr_global_to_gen,                   // llvm.nvvm.ptr.global.to.gen
    nvvm_ptr_local_to_gen,                    // llvm.nvvm.ptr.local.to.gen
    nvvm_ptr_shared_to_gen,                   // llvm.nvvm.ptr.shared.to.gen
    nvvm_rcp_approx_ftz_d,                    // llvm.nvvm.rcp.approx.ftz.d
    nvvm_rcp_rm_d,                            // llvm.nvvm.rcp.rm.d
    nvvm_rcp_rm_f,                            // llvm.nvvm.rcp.rm.f
    nvvm_rcp_rm_ftz_f,                        // llvm.nvvm.rcp.rm.ftz.f
    nvvm_rcp_rn_d,                            // llvm.nvvm.rcp.rn.d
    nvvm_rcp_rn_f,                            // llvm.nvvm.rcp.rn.f
    nvvm_rcp_rn_ftz_f,                        // llvm.nvvm.rcp.rn.ftz.f
    nvvm_rcp_rp_d,                            // llvm.nvvm.rcp.rp.d
    nvvm_rcp_rp_f,                            // llvm.nvvm.rcp.rp.f
    nvvm_rcp_rp_ftz_f,                        // llvm.nvvm.rcp.rp.ftz.f
    nvvm_rcp_rz_d,                            // llvm.nvvm.rcp.rz.d
    nvvm_rcp_rz_f,                            // llvm.nvvm.rcp.rz.f
    nvvm_rcp_rz_ftz_f,                        // llvm.nvvm.rcp.rz.ftz.f
    nvvm_read_ptx_sreg_ctaid_x,               // llvm.nvvm.read.ptx.sreg.ctaid.x
    nvvm_read_ptx_sreg_ctaid_y,               // llvm.nvvm.read.ptx.sreg.ctaid.y
    nvvm_read_ptx_sreg_ctaid_z,               // llvm.nvvm.read.ptx.sreg.ctaid.z
    nvvm_read_ptx_sreg_nctaid_x,              // llvm.nvvm.read.ptx.sreg.nctaid.x
    nvvm_read_ptx_sreg_nctaid_y,              // llvm.nvvm.read.ptx.sreg.nctaid.y
    nvvm_read_ptx_sreg_nctaid_z,              // llvm.nvvm.read.ptx.sreg.nctaid.z
    nvvm_read_ptx_sreg_ntid_x,                // llvm.nvvm.read.ptx.sreg.ntid.x
    nvvm_read_ptx_sreg_ntid_y,                // llvm.nvvm.read.ptx.sreg.ntid.y
    nvvm_read_ptx_sreg_ntid_z,                // llvm.nvvm.read.ptx.sreg.ntid.z
    nvvm_read_ptx_sreg_tid_x,                 // llvm.nvvm.read.ptx.sreg.tid.x
    nvvm_read_ptx_sreg_tid_y,                 // llvm.nvvm.read.ptx.sreg.tid.y
    nvvm_read_ptx_sreg_tid_z,                 // llvm.nvvm.read.ptx.sreg.tid.z
    nvvm_read_ptx_sreg_warpsize,              // llvm.nvvm.read.ptx.sreg.warpsize
    nvvm_round_d,                             // llvm.nvvm.round.d
    nvvm_round_f,                             // llvm.nvvm.round.f
    nvvm_round_ftz_f,                         // llvm.nvvm.round.ftz.f
    nvvm_rsqrt_approx_d,                      // llvm.nvvm.rsqrt.approx.d
    nvvm_rsqrt_approx_f,                      // llvm.nvvm.rsqrt.approx.f
    nvvm_rsqrt_approx_ftz_f,                  // llvm.nvvm.rsqrt.approx.ftz.f
    nvvm_sad_i,                               // llvm.nvvm.sad.i
    nvvm_sad_ui,                              // llvm.nvvm.sad.ui
    nvvm_saturate_d,                          // llvm.nvvm.saturate.d
    nvvm_saturate_f,                          // llvm.nvvm.saturate.f
    nvvm_saturate_ftz_f,                      // llvm.nvvm.saturate.ftz.f
    nvvm_sin_approx_f,                        // llvm.nvvm.sin.approx.f
    nvvm_sin_approx_ftz_f,                    // llvm.nvvm.sin.approx.ftz.f
    nvvm_sqrt_approx_f,                       // llvm.nvvm.sqrt.approx.f
    nvvm_sqrt_approx_ftz_f,                   // llvm.nvvm.sqrt.approx.ftz.f
    nvvm_sqrt_rm_d,                           // llvm.nvvm.sqrt.rm.d
    nvvm_sqrt_rm_f,                           // llvm.nvvm.sqrt.rm.f
    nvvm_sqrt_rm_ftz_f,                       // llvm.nvvm.sqrt.rm.ftz.f
    nvvm_sqrt_rn_d,                           // llvm.nvvm.sqrt.rn.d
    nvvm_sqrt_rn_f,                           // llvm.nvvm.sqrt.rn.f
    nvvm_sqrt_rn_ftz_f,                       // llvm.nvvm.sqrt.rn.ftz.f
    nvvm_sqrt_rp_d,                           // llvm.nvvm.sqrt.rp.d
    nvvm_sqrt_rp_f,                           // llvm.nvvm.sqrt.rp.f
    nvvm_sqrt_rp_ftz_f,                       // llvm.nvvm.sqrt.rp.ftz.f
    nvvm_sqrt_rz_d,                           // llvm.nvvm.sqrt.rz.d
    nvvm_sqrt_rz_f,                           // llvm.nvvm.sqrt.rz.f
    nvvm_sqrt_rz_ftz_f,                       // llvm.nvvm.sqrt.rz.ftz.f
    nvvm_trunc_d,                             // llvm.nvvm.trunc.d
    nvvm_trunc_f,                             // llvm.nvvm.trunc.f
    nvvm_trunc_ftz_f,                         // llvm.nvvm.trunc.ftz.f
    nvvm_ui2d_rm,                             // llvm.nvvm.ui2d.rm
    nvvm_ui2d_rn,                             // llvm.nvvm.ui2d.rn
    nvvm_ui2d_rp,                             // llvm.nvvm.ui2d.rp
    nvvm_ui2d_rz,                             // llvm.nvvm.ui2d.rz
    nvvm_ui2f_rm,                             // llvm.nvvm.ui2f.rm
    nvvm_ui2f_rn,                             // llvm.nvvm.ui2f.rn
    nvvm_ui2f_rp,                             // llvm.nvvm.ui2f.rp
    nvvm_ui2f_rz,                             // llvm.nvvm.ui2f.rz
    nvvm_ull2d_rm,                            // llvm.nvvm.ull2d.rm
    nvvm_ull2d_rn,                            // llvm.nvvm.ull2d.rn
    nvvm_ull2d_rp,                            // llvm.nvvm.ull2d.rp
    nvvm_ull2d_rz,                            // llvm.nvvm.ull2d.rz
    nvvm_ull2f_rm,                            // llvm.nvvm.ull2f.rm
    nvvm_ull2f_rn,                            // llvm.nvvm.ull2f.rn
    nvvm_ull2f_rp,                            // llvm.nvvm.ull2f.rp
    nvvm_ull2f_rz,                            // llvm.nvvm.ull2f.rz
    objectsize,                               // llvm.objectsize
    pcmarker,                                 // llvm.pcmarker
    pow,                                      // llvm.pow
    powi,                                     // llvm.powi
    ppc_altivec_dss,                          // llvm.ppc.altivec.dss
    ppc_altivec_dssall,                       // llvm.ppc.altivec.dssall
    ppc_altivec_dst,                          // llvm.ppc.altivec.dst
    ppc_altivec_dstst,                        // llvm.ppc.altivec.dstst
    ppc_altivec_dststt,                       // llvm.ppc.altivec.dststt
    ppc_altivec_dstt,                         // llvm.ppc.altivec.dstt
    ppc_altivec_lvebx,                        // llvm.ppc.altivec.lvebx
    ppc_altivec_lvehx,                        // llvm.ppc.altivec.lvehx
    ppc_altivec_lvewx,                        // llvm.ppc.altivec.lvewx
    ppc_altivec_lvsl,                         // llvm.ppc.altivec.lvsl
    ppc_altivec_lvsr,                         // llvm.ppc.altivec.lvsr
    ppc_altivec_lvx,                          // llvm.ppc.altivec.lvx
    ppc_altivec_lvxl,                         // llvm.ppc.altivec.lvxl
    ppc_altivec_mfvscr,                       // llvm.ppc.altivec.mfvscr
    ppc_altivec_mtvscr,                       // llvm.ppc.altivec.mtvscr
    ppc_altivec_stvebx,                       // llvm.ppc.altivec.stvebx
    ppc_altivec_stvehx,                       // llvm.ppc.altivec.stvehx
    ppc_altivec_stvewx,                       // llvm.ppc.altivec.stvewx
    ppc_altivec_stvx,                         // llvm.ppc.altivec.stvx
    ppc_altivec_stvxl,                        // llvm.ppc.altivec.stvxl
    ppc_altivec_vaddcuw,                      // llvm.ppc.altivec.vaddcuw
    ppc_altivec_vaddsbs,                      // llvm.ppc.altivec.vaddsbs
    ppc_altivec_vaddshs,                      // llvm.ppc.altivec.vaddshs
    ppc_altivec_vaddsws,                      // llvm.ppc.altivec.vaddsws
    ppc_altivec_vaddubs,                      // llvm.ppc.altivec.vaddubs
    ppc_altivec_vadduhs,                      // llvm.ppc.altivec.vadduhs
    ppc_altivec_vadduws,                      // llvm.ppc.altivec.vadduws
    ppc_altivec_vavgsb,                       // llvm.ppc.altivec.vavgsb
    ppc_altivec_vavgsh,                       // llvm.ppc.altivec.vavgsh
    ppc_altivec_vavgsw,                       // llvm.ppc.altivec.vavgsw
    ppc_altivec_vavgub,                       // llvm.ppc.altivec.vavgub
    ppc_altivec_vavguh,                       // llvm.ppc.altivec.vavguh
    ppc_altivec_vavguw,                       // llvm.ppc.altivec.vavguw
    ppc_altivec_vcfsx,                        // llvm.ppc.altivec.vcfsx
    ppc_altivec_vcfux,                        // llvm.ppc.altivec.vcfux
    ppc_altivec_vcmpbfp,                      // llvm.ppc.altivec.vcmpbfp
    ppc_altivec_vcmpbfp_p,                    // llvm.ppc.altivec.vcmpbfp.p
    ppc_altivec_vcmpeqfp,                     // llvm.ppc.altivec.vcmpeqfp
    ppc_altivec_vcmpeqfp_p,                   // llvm.ppc.altivec.vcmpeqfp.p
    ppc_altivec_vcmpequb,                     // llvm.ppc.altivec.vcmpequb
    ppc_altivec_vcmpequb_p,                   // llvm.ppc.altivec.vcmpequb.p
    ppc_altivec_vcmpequh,                     // llvm.ppc.altivec.vcmpequh
    ppc_altivec_vcmpequh_p,                   // llvm.ppc.altivec.vcmpequh.p
    ppc_altivec_vcmpequw,                     // llvm.ppc.altivec.vcmpequw
    ppc_altivec_vcmpequw_p,                   // llvm.ppc.altivec.vcmpequw.p
    ppc_altivec_vcmpgefp,                     // llvm.ppc.altivec.vcmpgefp
    ppc_altivec_vcmpgefp_p,                   // llvm.ppc.altivec.vcmpgefp.p
    ppc_altivec_vcmpgtfp,                     // llvm.ppc.altivec.vcmpgtfp
    ppc_altivec_vcmpgtfp_p,                   // llvm.ppc.altivec.vcmpgtfp.p
    ppc_altivec_vcmpgtsb,                     // llvm.ppc.altivec.vcmpgtsb
    ppc_altivec_vcmpgtsb_p,                   // llvm.ppc.altivec.vcmpgtsb.p
    ppc_altivec_vcmpgtsh,                     // llvm.ppc.altivec.vcmpgtsh
    ppc_altivec_vcmpgtsh_p,                   // llvm.ppc.altivec.vcmpgtsh.p
    ppc_altivec_vcmpgtsw,                     // llvm.ppc.altivec.vcmpgtsw
    ppc_altivec_vcmpgtsw_p,                   // llvm.ppc.altivec.vcmpgtsw.p
    ppc_altivec_vcmpgtub,                     // llvm.ppc.altivec.vcmpgtub
    ppc_altivec_vcmpgtub_p,                   // llvm.ppc.altivec.vcmpgtub.p
    ppc_altivec_vcmpgtuh,                     // llvm.ppc.altivec.vcmpgtuh
    ppc_altivec_vcmpgtuh_p,                   // llvm.ppc.altivec.vcmpgtuh.p
    ppc_altivec_vcmpgtuw,                     // llvm.ppc.altivec.vcmpgtuw
    ppc_altivec_vcmpgtuw_p,                   // llvm.ppc.altivec.vcmpgtuw.p
    ppc_altivec_vctsxs,                       // llvm.ppc.altivec.vctsxs
    ppc_altivec_vctuxs,                       // llvm.ppc.altivec.vctuxs
    ppc_altivec_vexptefp,                     // llvm.ppc.altivec.vexptefp
    ppc_altivec_vlogefp,                      // llvm.ppc.altivec.vlogefp
    ppc_altivec_vmaddfp,                      // llvm.ppc.altivec.vmaddfp
    ppc_altivec_vmaxfp,                       // llvm.ppc.altivec.vmaxfp
    ppc_altivec_vmaxsb,                       // llvm.ppc.altivec.vmaxsb
    ppc_altivec_vmaxsh,                       // llvm.ppc.altivec.vmaxsh
    ppc_altivec_vmaxsw,                       // llvm.ppc.altivec.vmaxsw
    ppc_altivec_vmaxub,                       // llvm.ppc.altivec.vmaxub
    ppc_altivec_vmaxuh,                       // llvm.ppc.altivec.vmaxuh
    ppc_altivec_vmaxuw,                       // llvm.ppc.altivec.vmaxuw
    ppc_altivec_vmhaddshs,                    // llvm.ppc.altivec.vmhaddshs
    ppc_altivec_vmhraddshs,                   // llvm.ppc.altivec.vmhraddshs
    ppc_altivec_vminfp,                       // llvm.ppc.altivec.vminfp
    ppc_altivec_vminsb,                       // llvm.ppc.altivec.vminsb
    ppc_altivec_vminsh,                       // llvm.ppc.altivec.vminsh
    ppc_altivec_vminsw,                       // llvm.ppc.altivec.vminsw
    ppc_altivec_vminub,                       // llvm.ppc.altivec.vminub
    ppc_altivec_vminuh,                       // llvm.ppc.altivec.vminuh
    ppc_altivec_vminuw,                       // llvm.ppc.altivec.vminuw
    ppc_altivec_vmladduhm,                    // llvm.ppc.altivec.vmladduhm
    ppc_altivec_vmsummbm,                     // llvm.ppc.altivec.vmsummbm
    ppc_altivec_vmsumshm,                     // llvm.ppc.altivec.vmsumshm
    ppc_altivec_vmsumshs,                     // llvm.ppc.altivec.vmsumshs
    ppc_altivec_vmsumubm,                     // llvm.ppc.altivec.vmsumubm
    ppc_altivec_vmsumuhm,                     // llvm.ppc.altivec.vmsumuhm
    ppc_altivec_vmsumuhs,                     // llvm.ppc.altivec.vmsumuhs
    ppc_altivec_vmulesb,                      // llvm.ppc.altivec.vmulesb
    ppc_altivec_vmulesh,                      // llvm.ppc.altivec.vmulesh
    ppc_altivec_vmuleub,                      // llvm.ppc.altivec.vmuleub
    ppc_altivec_vmuleuh,                      // llvm.ppc.altivec.vmuleuh
    ppc_altivec_vmulosb,                      // llvm.ppc.altivec.vmulosb
    ppc_altivec_vmulosh,                      // llvm.ppc.altivec.vmulosh
    ppc_altivec_vmuloub,                      // llvm.ppc.altivec.vmuloub
    ppc_altivec_vmulouh,                      // llvm.ppc.altivec.vmulouh
    ppc_altivec_vnmsubfp,                     // llvm.ppc.altivec.vnmsubfp
    ppc_altivec_vperm,                        // llvm.ppc.altivec.vperm
    ppc_altivec_vpkpx,                        // llvm.ppc.altivec.vpkpx
    ppc_altivec_vpkshss,                      // llvm.ppc.altivec.vpkshss
    ppc_altivec_vpkshus,                      // llvm.ppc.altivec.vpkshus
    ppc_altivec_vpkswss,                      // llvm.ppc.altivec.vpkswss
    ppc_altivec_vpkswus,                      // llvm.ppc.altivec.vpkswus
    ppc_altivec_vpkuhus,                      // llvm.ppc.altivec.vpkuhus
    ppc_altivec_vpkuwus,                      // llvm.ppc.altivec.vpkuwus
    ppc_altivec_vrefp,                        // llvm.ppc.altivec.vrefp
    ppc_altivec_vrfim,                        // llvm.ppc.altivec.vrfim
    ppc_altivec_vrfin,                        // llvm.ppc.altivec.vrfin
    ppc_altivec_vrfip,                        // llvm.ppc.altivec.vrfip
    ppc_altivec_vrfiz,                        // llvm.ppc.altivec.vrfiz
    ppc_altivec_vrlb,                         // llvm.ppc.altivec.vrlb
    ppc_altivec_vrlh,                         // llvm.ppc.altivec.vrlh
    ppc_altivec_vrlw,                         // llvm.ppc.altivec.vrlw
    ppc_altivec_vrsqrtefp,                    // llvm.ppc.altivec.vrsqrtefp
    ppc_altivec_vsel,                         // llvm.ppc.altivec.vsel
    ppc_altivec_vsl,                          // llvm.ppc.altivec.vsl
    ppc_altivec_vslb,                         // llvm.ppc.altivec.vslb
    ppc_altivec_vslh,                         // llvm.ppc.altivec.vslh
    ppc_altivec_vslo,                         // llvm.ppc.altivec.vslo
    ppc_altivec_vslw,                         // llvm.ppc.altivec.vslw
    ppc_altivec_vsr,                          // llvm.ppc.altivec.vsr
    ppc_altivec_vsrab,                        // llvm.ppc.altivec.vsrab
    ppc_altivec_vsrah,                        // llvm.ppc.altivec.vsrah
    ppc_altivec_vsraw,                        // llvm.ppc.altivec.vsraw
    ppc_altivec_vsrb,                         // llvm.ppc.altivec.vsrb
    ppc_altivec_vsrh,                         // llvm.ppc.altivec.vsrh
    ppc_altivec_vsro,                         // llvm.ppc.altivec.vsro
    ppc_altivec_vsrw,                         // llvm.ppc.altivec.vsrw
    ppc_altivec_vsubcuw,                      // llvm.ppc.altivec.vsubcuw
    ppc_altivec_vsubsbs,                      // llvm.ppc.altivec.vsubsbs
    ppc_altivec_vsubshs,                      // llvm.ppc.altivec.vsubshs
    ppc_altivec_vsubsws,                      // llvm.ppc.altivec.vsubsws
    ppc_altivec_vsububs,                      // llvm.ppc.altivec.vsububs
    ppc_altivec_vsubuhs,                      // llvm.ppc.altivec.vsubuhs
    ppc_altivec_vsubuws,                      // llvm.ppc.altivec.vsubuws
    ppc_altivec_vsum2sws,                     // llvm.ppc.altivec.vsum2sws
    ppc_altivec_vsum4sbs,                     // llvm.ppc.altivec.vsum4sbs
    ppc_altivec_vsum4shs,                     // llvm.ppc.altivec.vsum4shs
    ppc_altivec_vsum4ubs,                     // llvm.ppc.altivec.vsum4ubs
    ppc_altivec_vsumsws,                      // llvm.ppc.altivec.vsumsws
    ppc_altivec_vupkhpx,                      // llvm.ppc.altivec.vupkhpx
    ppc_altivec_vupkhsb,                      // llvm.ppc.altivec.vupkhsb
    ppc_altivec_vupkhsh,                      // llvm.ppc.altivec.vupkhsh
    ppc_altivec_vupklpx,                      // llvm.ppc.altivec.vupklpx
    ppc_altivec_vupklsb,                      // llvm.ppc.altivec.vupklsb
    ppc_altivec_vupklsh,                      // llvm.ppc.altivec.vupklsh
    ppc_dcba,                                 // llvm.ppc.dcba
    ppc_dcbf,                                 // llvm.ppc.dcbf
    ppc_dcbi,                                 // llvm.ppc.dcbi
    ppc_dcbst,                                // llvm.ppc.dcbst
    ppc_dcbt,                                 // llvm.ppc.dcbt
    ppc_dcbtst,                               // llvm.ppc.dcbtst
    ppc_dcbz,                                 // llvm.ppc.dcbz
    ppc_dcbzl,                                // llvm.ppc.dcbzl
    ppc_sync,                                 // llvm.ppc.sync
    prefetch,                                 // llvm.prefetch
    ptr_annotation,                           // llvm.ptr.annotation
    ptx_bar_sync,                             // llvm.ptx.bar.sync
    ptx_read_clock,                           // llvm.ptx.read.clock
    ptx_read_clock64,                         // llvm.ptx.read.clock64
    ptx_read_ctaid_w,                         // llvm.ptx.read.ctaid.w
    ptx_read_ctaid_x,                         // llvm.ptx.read.ctaid.x
    ptx_read_ctaid_y,                         // llvm.ptx.read.ctaid.y
    ptx_read_ctaid_z,                         // llvm.ptx.read.ctaid.z
    ptx_read_gridid,                          // llvm.ptx.read.gridid
    ptx_read_laneid,                          // llvm.ptx.read.laneid
    ptx_read_lanemask_eq,                     // llvm.ptx.read.lanemask.eq
    ptx_read_lanemask_ge,                     // llvm.ptx.read.lanemask.ge
    ptx_read_lanemask_gt,                     // llvm.ptx.read.lanemask.gt
    ptx_read_lanemask_le,                     // llvm.ptx.read.lanemask.le
    ptx_read_lanemask_lt,                     // llvm.ptx.read.lanemask.lt
    ptx_read_nctaid_w,                        // llvm.ptx.read.nctaid.w
    ptx_read_nctaid_x,                        // llvm.ptx.read.nctaid.x
    ptx_read_nctaid_y,                        // llvm.ptx.read.nctaid.y
    ptx_read_nctaid_z,                        // llvm.ptx.read.nctaid.z
    ptx_read_nsmid,                           // llvm.ptx.read.nsmid
    ptx_read_ntid_w,                          // llvm.ptx.read.ntid.w
    ptx_read_ntid_x,                          // llvm.ptx.read.ntid.x
    ptx_read_ntid_y,                          // llvm.ptx.read.ntid.y
    ptx_read_ntid_z,                          // llvm.ptx.read.ntid.z
    ptx_read_nwarpid,                         // llvm.ptx.read.nwarpid
    ptx_read_pm0,                             // llvm.ptx.read.pm0
    ptx_read_pm1,                             // llvm.ptx.read.pm1
    ptx_read_pm2,                             // llvm.ptx.read.pm2
    ptx_read_pm3,                             // llvm.ptx.read.pm3
    ptx_read_smid,                            // llvm.ptx.read.smid
    ptx_read_tid_w,                           // llvm.ptx.read.tid.w
    ptx_read_tid_x,                           // llvm.ptx.read.tid.x
    ptx_read_tid_y,                           // llvm.ptx.read.tid.y
    ptx_read_tid_z,                           // llvm.ptx.read.tid.z
    ptx_read_warpid,                          // llvm.ptx.read.warpid
    readcyclecounter,                         // llvm.readcyclecounter
    returnaddress,                            // llvm.returnaddress
    sadd_with_overflow,                       // llvm.sadd.with.overflow
    setjmp,                                   // llvm.setjmp
    siglongjmp,                               // llvm.siglongjmp
    sigsetjmp,                                // llvm.sigsetjmp
    sin,                                      // llvm.sin
    smul_with_overflow,                       // llvm.smul.with.overflow
    spu_si_a,                                 // llvm.spu.si.a
    spu_si_addx,                              // llvm.spu.si.addx
    spu_si_ah,                                // llvm.spu.si.ah
    spu_si_ahi,                               // llvm.spu.si.ahi
    spu_si_ai,                                // llvm.spu.si.ai
    spu_si_and,                               // llvm.spu.si.and
    spu_si_andbi,                             // llvm.spu.si.andbi
    spu_si_andc,                              // llvm.spu.si.andc
    spu_si_andhi,                             // llvm.spu.si.andhi
    spu_si_andi,                              // llvm.spu.si.andi
    spu_si_bg,                                // llvm.spu.si.bg
    spu_si_bgx,                               // llvm.spu.si.bgx
    spu_si_ceq,                               // llvm.spu.si.ceq
    spu_si_ceqb,                              // llvm.spu.si.ceqb
    spu_si_ceqbi,                             // llvm.spu.si.ceqbi
    spu_si_ceqh,                              // llvm.spu.si.ceqh
    spu_si_ceqhi,                             // llvm.spu.si.ceqhi
    spu_si_ceqi,                              // llvm.spu.si.ceqi
    spu_si_cg,                                // llvm.spu.si.cg
    spu_si_cgt,                               // llvm.spu.si.cgt
    spu_si_cgtb,                              // llvm.spu.si.cgtb
    spu_si_cgtbi,                             // llvm.spu.si.cgtbi
    spu_si_cgth,                              // llvm.spu.si.cgth
    spu_si_cgthi,                             // llvm.spu.si.cgthi
    spu_si_cgti,                              // llvm.spu.si.cgti
    spu_si_cgx,                               // llvm.spu.si.cgx
    spu_si_clgt,                              // llvm.spu.si.clgt
    spu_si_clgtb,                             // llvm.spu.si.clgtb
    spu_si_clgtbi,                            // llvm.spu.si.clgtbi
    spu_si_clgth,                             // llvm.spu.si.clgth
    spu_si_clgthi,                            // llvm.spu.si.clgthi
    spu_si_clgti,                             // llvm.spu.si.clgti
    spu_si_dfa,                               // llvm.spu.si.dfa
    spu_si_dfm,                               // llvm.spu.si.dfm
    spu_si_dfma,                              // llvm.spu.si.dfma
    spu_si_dfms,                              // llvm.spu.si.dfms
    spu_si_dfnma,                             // llvm.spu.si.dfnma
    spu_si_dfnms,                             // llvm.spu.si.dfnms
    spu_si_dfs,                               // llvm.spu.si.dfs
    spu_si_fa,                                // llvm.spu.si.fa
    spu_si_fceq,                              // llvm.spu.si.fceq
    spu_si_fcgt,                              // llvm.spu.si.fcgt
    spu_si_fcmeq,                             // llvm.spu.si.fcmeq
    spu_si_fcmgt,                             // llvm.spu.si.fcmgt
    spu_si_fm,                                // llvm.spu.si.fm
    spu_si_fma,                               // llvm.spu.si.fma
    spu_si_fms,                               // llvm.spu.si.fms
    spu_si_fnms,                              // llvm.spu.si.fnms
    spu_si_fs,                                // llvm.spu.si.fs
    spu_si_fsmbi,                             // llvm.spu.si.fsmbi
    spu_si_mpy,                               // llvm.spu.si.mpy
    spu_si_mpya,                              // llvm.spu.si.mpya
    spu_si_mpyh,                              // llvm.spu.si.mpyh
    spu_si_mpyhh,                             // llvm.spu.si.mpyhh
    spu_si_mpyhha,                            // llvm.spu.si.mpyhha
    spu_si_mpyhhau,                           // llvm.spu.si.mpyhhau
    spu_si_mpyhhu,                            // llvm.spu.si.mpyhhu
    spu_si_mpyi,                              // llvm.spu.si.mpyi
    spu_si_mpys,                              // llvm.spu.si.mpys
    spu_si_mpyu,                              // llvm.spu.si.mpyu
    spu_si_mpyui,                             // llvm.spu.si.mpyui
    spu_si_nand,                              // llvm.spu.si.nand
    spu_si_nor,                               // llvm.spu.si.nor
    spu_si_or,                                // llvm.spu.si.or
    spu_si_orbi,                              // llvm.spu.si.orbi
    spu_si_orc,                               // llvm.spu.si.orc
    spu_si_orhi,                              // llvm.spu.si.orhi
    spu_si_ori,                               // llvm.spu.si.ori
    spu_si_sf,                                // llvm.spu.si.sf
    spu_si_sfh,                               // llvm.spu.si.sfh
    spu_si_sfhi,                              // llvm.spu.si.sfhi
    spu_si_sfi,                               // llvm.spu.si.sfi
    spu_si_sfx,                               // llvm.spu.si.sfx
    spu_si_shli,                              // llvm.spu.si.shli
    spu_si_shlqbi,                            // llvm.spu.si.shlqbi
    spu_si_shlqbii,                           // llvm.spu.si.shlqbii
    spu_si_shlqby,                            // llvm.spu.si.shlqby
    spu_si_shlqbyi,                           // llvm.spu.si.shlqbyi
    spu_si_xor,                               // llvm.spu.si.xor
    spu_si_xorbi,                             // llvm.spu.si.xorbi
    spu_si_xorhi,                             // llvm.spu.si.xorhi
    spu_si_xori,                              // llvm.spu.si.xori
    sqrt,                                     // llvm.sqrt
    ssub_with_overflow,                       // llvm.ssub.with.overflow
    stackprotector,                           // llvm.stackprotector
    stackrestore,                             // llvm.stackrestore
    stacksave,                                // llvm.stacksave
    trap,                                     // llvm.trap
    uadd_with_overflow,                       // llvm.uadd.with.overflow
    umul_with_overflow,                       // llvm.umul.with.overflow
    usub_with_overflow,                       // llvm.usub.with.overflow
    vacopy,                                   // llvm.va_copy
    vaend,                                    // llvm.va_end
    var_annotation,                           // llvm.var.annotation
    vastart,                                  // llvm.va_start
    x86_3dnow_pavgusb,                        // llvm.x86.3dnow.pavgusb
    x86_3dnow_pf2id,                          // llvm.x86.3dnow.pf2id
    x86_3dnow_pfacc,                          // llvm.x86.3dnow.pfacc
    x86_3dnow_pfadd,                          // llvm.x86.3dnow.pfadd
    x86_3dnow_pfcmpeq,                        // llvm.x86.3dnow.pfcmpeq
    x86_3dnow_pfcmpge,                        // llvm.x86.3dnow.pfcmpge
    x86_3dnow_pfcmpgt,                        // llvm.x86.3dnow.pfcmpgt
    x86_3dnow_pfmax,                          // llvm.x86.3dnow.pfmax
    x86_3dnow_pfmin,                          // llvm.x86.3dnow.pfmin
    x86_3dnow_pfmul,                          // llvm.x86.3dnow.pfmul
    x86_3dnow_pfrcp,                          // llvm.x86.3dnow.pfrcp
    x86_3dnow_pfrcpit1,                       // llvm.x86.3dnow.pfrcpit1
    x86_3dnow_pfrcpit2,                       // llvm.x86.3dnow.pfrcpit2
    x86_3dnow_pfrsqit1,                       // llvm.x86.3dnow.pfrsqit1
    x86_3dnow_pfrsqrt,                        // llvm.x86.3dnow.pfrsqrt
    x86_3dnow_pfsub,                          // llvm.x86.3dnow.pfsub
    x86_3dnow_pfsubr,                         // llvm.x86.3dnow.pfsubr
    x86_3dnow_pi2fd,                          // llvm.x86.3dnow.pi2fd
    x86_3dnow_pmulhrw,                        // llvm.x86.3dnow.pmulhrw
    x86_3dnowa_pf2iw,                         // llvm.x86.3dnowa.pf2iw
    x86_3dnowa_pfnacc,                        // llvm.x86.3dnowa.pfnacc
    x86_3dnowa_pfpnacc,                       // llvm.x86.3dnowa.pfpnacc
    x86_3dnowa_pi2fw,                         // llvm.x86.3dnowa.pi2fw
    x86_3dnowa_pswapd,                        // llvm.x86.3dnowa.pswapd
    x86_aesni_aesdec,                         // llvm.x86.aesni.aesdec
    x86_aesni_aesdeclast,                     // llvm.x86.aesni.aesdeclast
    x86_aesni_aesenc,                         // llvm.x86.aesni.aesenc
    x86_aesni_aesenclast,                     // llvm.x86.aesni.aesenclast
    x86_aesni_aesimc,                         // llvm.x86.aesni.aesimc
    x86_aesni_aeskeygenassist,                // llvm.x86.aesni.aeskeygenassist
    x86_avx2_gather_d_d,                      // llvm.x86.avx2.gather.d.d
    x86_avx2_gather_d_d_256,                  // llvm.x86.avx2.gather.d.d.256
    x86_avx2_gather_d_pd,                     // llvm.x86.avx2.gather.d.pd
    x86_avx2_gather_d_pd_256,                 // llvm.x86.avx2.gather.d.pd.256
    x86_avx2_gather_d_ps,                     // llvm.x86.avx2.gather.d.ps
    x86_avx2_gather_d_ps_256,                 // llvm.x86.avx2.gather.d.ps.256
    x86_avx2_gather_d_q,                      // llvm.x86.avx2.gather.d.q
    x86_avx2_gather_d_q_256,                  // llvm.x86.avx2.gather.d.q.256
    x86_avx2_gather_q_d,                      // llvm.x86.avx2.gather.q.d
    x86_avx2_gather_q_d_256,                  // llvm.x86.avx2.gather.q.d.256
    x86_avx2_gather_q_pd,                     // llvm.x86.avx2.gather.q.pd
    x86_avx2_gather_q_pd_256,                 // llvm.x86.avx2.gather.q.pd.256
    x86_avx2_gather_q_ps,                     // llvm.x86.avx2.gather.q.ps
    x86_avx2_gather_q_ps_256,                 // llvm.x86.avx2.gather.q.ps.256
    x86_avx2_gather_q_q,                      // llvm.x86.avx2.gather.q.q
    x86_avx2_gather_q_q_256,                  // llvm.x86.avx2.gather.q.q.256
    x86_avx2_maskload_d,                      // llvm.x86.avx2.maskload.d
    x86_avx2_maskload_d_256,                  // llvm.x86.avx2.maskload.d.256
    x86_avx2_maskload_q,                      // llvm.x86.avx2.maskload.q
    x86_avx2_maskload_q_256,                  // llvm.x86.avx2.maskload.q.256
    x86_avx2_maskstore_d,                     // llvm.x86.avx2.maskstore.d
    x86_avx2_maskstore_d_256,                 // llvm.x86.avx2.maskstore.d.256
    x86_avx2_maskstore_q,                     // llvm.x86.avx2.maskstore.q
    x86_avx2_maskstore_q_256,                 // llvm.x86.avx2.maskstore.q.256
    x86_avx2_movntdqa,                        // llvm.x86.avx2.movntdqa
    x86_avx2_mpsadbw,                         // llvm.x86.avx2.mpsadbw
    x86_avx2_pabs_b,                          // llvm.x86.avx2.pabs.b
    x86_avx2_pabs_d,                          // llvm.x86.avx2.pabs.d
    x86_avx2_pabs_w,                          // llvm.x86.avx2.pabs.w
    x86_avx2_packssdw,                        // llvm.x86.avx2.packssdw
    x86_avx2_packsswb,                        // llvm.x86.avx2.packsswb
    x86_avx2_packusdw,                        // llvm.x86.avx2.packusdw
    x86_avx2_packuswb,                        // llvm.x86.avx2.packuswb
    x86_avx2_padds_b,                         // llvm.x86.avx2.padds.b
    x86_avx2_padds_w,                         // llvm.x86.avx2.padds.w
    x86_avx2_paddus_b,                        // llvm.x86.avx2.paddus.b
    x86_avx2_paddus_w,                        // llvm.x86.avx2.paddus.w
    x86_avx2_pavg_b,                          // llvm.x86.avx2.pavg.b
    x86_avx2_pavg_w,                          // llvm.x86.avx2.pavg.w
    x86_avx2_pblendd_128,                     // llvm.x86.avx2.pblendd.128
    x86_avx2_pblendd_256,                     // llvm.x86.avx2.pblendd.256
    x86_avx2_pblendvb,                        // llvm.x86.avx2.pblendvb
    x86_avx2_pblendw,                         // llvm.x86.avx2.pblendw
    x86_avx2_pbroadcastb_128,                 // llvm.x86.avx2.pbroadcastb.128
    x86_avx2_pbroadcastb_256,                 // llvm.x86.avx2.pbroadcastb.256
    x86_avx2_pbroadcastd_128,                 // llvm.x86.avx2.pbroadcastd.128
    x86_avx2_pbroadcastd_256,                 // llvm.x86.avx2.pbroadcastd.256
    x86_avx2_pbroadcastq_128,                 // llvm.x86.avx2.pbroadcastq.128
    x86_avx2_pbroadcastq_256,                 // llvm.x86.avx2.pbroadcastq.256
    x86_avx2_pbroadcastw_128,                 // llvm.x86.avx2.pbroadcastw.128
    x86_avx2_pbroadcastw_256,                 // llvm.x86.avx2.pbroadcastw.256
    x86_avx2_permd,                           // llvm.x86.avx2.permd
    x86_avx2_permps,                          // llvm.x86.avx2.permps
    x86_avx2_phadd_d,                         // llvm.x86.avx2.phadd.d
    x86_avx2_phadd_sw,                        // llvm.x86.avx2.phadd.sw
    x86_avx2_phadd_w,                         // llvm.x86.avx2.phadd.w
    x86_avx2_phsub_d,                         // llvm.x86.avx2.phsub.d
    x86_avx2_phsub_sw,                        // llvm.x86.avx2.phsub.sw
    x86_avx2_phsub_w,                         // llvm.x86.avx2.phsub.w
    x86_avx2_pmadd_ub_sw,                     // llvm.x86.avx2.pmadd.ub.sw
    x86_avx2_pmadd_wd,                        // llvm.x86.avx2.pmadd.wd
    x86_avx2_pmaxs_b,                         // llvm.x86.avx2.pmaxs.b
    x86_avx2_pmaxs_d,                         // llvm.x86.avx2.pmaxs.d
    x86_avx2_pmaxs_w,                         // llvm.x86.avx2.pmaxs.w
    x86_avx2_pmaxu_b,                         // llvm.x86.avx2.pmaxu.b
    x86_avx2_pmaxu_d,                         // llvm.x86.avx2.pmaxu.d
    x86_avx2_pmaxu_w,                         // llvm.x86.avx2.pmaxu.w
    x86_avx2_pmins_b,                         // llvm.x86.avx2.pmins.b
    x86_avx2_pmins_d,                         // llvm.x86.avx2.pmins.d
    x86_avx2_pmins_w,                         // llvm.x86.avx2.pmins.w
    x86_avx2_pminu_b,                         // llvm.x86.avx2.pminu.b
    x86_avx2_pminu_d,                         // llvm.x86.avx2.pminu.d
    x86_avx2_pminu_w,                         // llvm.x86.avx2.pminu.w
    x86_avx2_pmovmskb,                        // llvm.x86.avx2.pmovmskb
    x86_avx2_pmovsxbd,                        // llvm.x86.avx2.pmovsxbd
    x86_avx2_pmovsxbq,                        // llvm.x86.avx2.pmovsxbq
    x86_avx2_pmovsxbw,                        // llvm.x86.avx2.pmovsxbw
    x86_avx2_pmovsxdq,                        // llvm.x86.avx2.pmovsxdq
    x86_avx2_pmovsxwd,                        // llvm.x86.avx2.pmovsxwd
    x86_avx2_pmovsxwq,                        // llvm.x86.avx2.pmovsxwq
    x86_avx2_pmovzxbd,                        // llvm.x86.avx2.pmovzxbd
    x86_avx2_pmovzxbq,                        // llvm.x86.avx2.pmovzxbq
    x86_avx2_pmovzxbw,                        // llvm.x86.avx2.pmovzxbw
    x86_avx2_pmovzxdq,                        // llvm.x86.avx2.pmovzxdq
    x86_avx2_pmovzxwd,                        // llvm.x86.avx2.pmovzxwd
    x86_avx2_pmovzxwq,                        // llvm.x86.avx2.pmovzxwq
    x86_avx2_pmul_dq,                         // llvm.x86.avx2.pmul.dq
    x86_avx2_pmul_hr_sw,                      // llvm.x86.avx2.pmul.hr.sw
    x86_avx2_pmulh_w,                         // llvm.x86.avx2.pmulh.w
    x86_avx2_pmulhu_w,                        // llvm.x86.avx2.pmulhu.w
    x86_avx2_pmulu_dq,                        // llvm.x86.avx2.pmulu.dq
    x86_avx2_psad_bw,                         // llvm.x86.avx2.psad.bw
    x86_avx2_pshuf_b,                         // llvm.x86.avx2.pshuf.b
    x86_avx2_psign_b,                         // llvm.x86.avx2.psign.b
    x86_avx2_psign_d,                         // llvm.x86.avx2.psign.d
    x86_avx2_psign_w,                         // llvm.x86.avx2.psign.w
    x86_avx2_psll_d,                          // llvm.x86.avx2.psll.d
    x86_avx2_psll_dq,                         // llvm.x86.avx2.psll.dq
    x86_avx2_psll_dq_bs,                      // llvm.x86.avx2.psll.dq.bs
    x86_avx2_psll_q,                          // llvm.x86.avx2.psll.q
    x86_avx2_psll_w,                          // llvm.x86.avx2.psll.w
    x86_avx2_pslli_d,                         // llvm.x86.avx2.pslli.d
    x86_avx2_pslli_q,                         // llvm.x86.avx2.pslli.q
    x86_avx2_pslli_w,                         // llvm.x86.avx2.pslli.w
    x86_avx2_psllv_d,                         // llvm.x86.avx2.psllv.d
    x86_avx2_psllv_d_256,                     // llvm.x86.avx2.psllv.d.256
    x86_avx2_psllv_q,                         // llvm.x86.avx2.psllv.q
    x86_avx2_psllv_q_256,                     // llvm.x86.avx2.psllv.q.256
    x86_avx2_psra_d,                          // llvm.x86.avx2.psra.d
    x86_avx2_psra_w,                          // llvm.x86.avx2.psra.w
    x86_avx2_psrai_d,                         // llvm.x86.avx2.psrai.d
    x86_avx2_psrai_w,                         // llvm.x86.avx2.psrai.w
    x86_avx2_psrav_d,                         // llvm.x86.avx2.psrav.d
    x86_avx2_psrav_d_256,                     // llvm.x86.avx2.psrav.d.256
    x86_avx2_psrl_d,                          // llvm.x86.avx2.psrl.d
    x86_avx2_psrl_dq,                         // llvm.x86.avx2.psrl.dq
    x86_avx2_psrl_dq_bs,                      // llvm.x86.avx2.psrl.dq.bs
    x86_avx2_psrl_q,                          // llvm.x86.avx2.psrl.q
    x86_avx2_psrl_w,                          // llvm.x86.avx2.psrl.w
    x86_avx2_psrli_d,                         // llvm.x86.avx2.psrli.d
    x86_avx2_psrli_q,                         // llvm.x86.avx2.psrli.q
    x86_avx2_psrli_w,                         // llvm.x86.avx2.psrli.w
    x86_avx2_psrlv_d,                         // llvm.x86.avx2.psrlv.d
    x86_avx2_psrlv_d_256,                     // llvm.x86.avx2.psrlv.d.256
    x86_avx2_psrlv_q,                         // llvm.x86.avx2.psrlv.q
    x86_avx2_psrlv_q_256,                     // llvm.x86.avx2.psrlv.q.256
    x86_avx2_psubs_b,                         // llvm.x86.avx2.psubs.b
    x86_avx2_psubs_w,                         // llvm.x86.avx2.psubs.w
    x86_avx2_psubus_b,                        // llvm.x86.avx2.psubus.b
    x86_avx2_psubus_w,                        // llvm.x86.avx2.psubus.w
    x86_avx2_vbroadcast_sd_pd_256,            // llvm.x86.avx2.vbroadcast.sd.pd.256
    x86_avx2_vbroadcast_ss_ps,                // llvm.x86.avx2.vbroadcast.ss.ps
    x86_avx2_vbroadcast_ss_ps_256,            // llvm.x86.avx2.vbroadcast.ss.ps.256
    x86_avx2_vbroadcasti128,                  // llvm.x86.avx2.vbroadcasti128
    x86_avx2_vextracti128,                    // llvm.x86.avx2.vextracti128
    x86_avx2_vinserti128,                     // llvm.x86.avx2.vinserti128
    x86_avx2_vperm2i128,                      // llvm.x86.avx2.vperm2i128
    x86_avx_addsub_pd_256,                    // llvm.x86.avx.addsub.pd.256
    x86_avx_addsub_ps_256,                    // llvm.x86.avx.addsub.ps.256
    x86_avx_blend_pd_256,                     // llvm.x86.avx.blend.pd.256
    x86_avx_blend_ps_256,                     // llvm.x86.avx.blend.ps.256
    x86_avx_blendv_pd_256,                    // llvm.x86.avx.blendv.pd.256
    x86_avx_blendv_ps_256,                    // llvm.x86.avx.blendv.ps.256
    x86_avx_cmp_pd_256,                       // llvm.x86.avx.cmp.pd.256
    x86_avx_cmp_ps_256,                       // llvm.x86.avx.cmp.ps.256
    x86_avx_cvt_pd2_ps_256,                   // llvm.x86.avx.cvt.pd2.ps.256
    x86_avx_cvt_pd2dq_256,                    // llvm.x86.avx.cvt.pd2dq.256
    x86_avx_cvt_ps2_pd_256,                   // llvm.x86.avx.cvt.ps2.pd.256
    x86_avx_cvt_ps2dq_256,                    // llvm.x86.avx.cvt.ps2dq.256
    x86_avx_cvtdq2_pd_256,                    // llvm.x86.avx.cvtdq2.pd.256
    x86_avx_cvtdq2_ps_256,                    // llvm.x86.avx.cvtdq2.ps.256
    x86_avx_cvtt_pd2dq_256,                   // llvm.x86.avx.cvtt.pd2dq.256
    x86_avx_cvtt_ps2dq_256,                   // llvm.x86.avx.cvtt.ps2dq.256
    x86_avx_dp_ps_256,                        // llvm.x86.avx.dp.ps.256
    x86_avx_hadd_pd_256,                      // llvm.x86.avx.hadd.pd.256
    x86_avx_hadd_ps_256,                      // llvm.x86.avx.hadd.ps.256
    x86_avx_hsub_pd_256,                      // llvm.x86.avx.hsub.pd.256
    x86_avx_hsub_ps_256,                      // llvm.x86.avx.hsub.ps.256
    x86_avx_ldu_dq_256,                       // llvm.x86.avx.ldu.dq.256
    x86_avx_maskload_pd,                      // llvm.x86.avx.maskload.pd
    x86_avx_maskload_pd_256,                  // llvm.x86.avx.maskload.pd.256
    x86_avx_maskload_ps,                      // llvm.x86.avx.maskload.ps
    x86_avx_maskload_ps_256,                  // llvm.x86.avx.maskload.ps.256
    x86_avx_maskstore_pd,                     // llvm.x86.avx.maskstore.pd
    x86_avx_maskstore_pd_256,                 // llvm.x86.avx.maskstore.pd.256
    x86_avx_maskstore_ps,                     // llvm.x86.avx.maskstore.ps
    x86_avx_maskstore_ps_256,                 // llvm.x86.avx.maskstore.ps.256
    x86_avx_max_pd_256,                       // llvm.x86.avx.max.pd.256
    x86_avx_max_ps_256,                       // llvm.x86.avx.max.ps.256
    x86_avx_min_pd_256,                       // llvm.x86.avx.min.pd.256
    x86_avx_min_ps_256,                       // llvm.x86.avx.min.ps.256
    x86_avx_movmsk_pd_256,                    // llvm.x86.avx.movmsk.pd.256
    x86_avx_movmsk_ps_256,                    // llvm.x86.avx.movmsk.ps.256
    x86_avx_ptestc_256,                       // llvm.x86.avx.ptestc.256
    x86_avx_ptestnzc_256,                     // llvm.x86.avx.ptestnzc.256
    x86_avx_ptestz_256,                       // llvm.x86.avx.ptestz.256
    x86_avx_rcp_ps_256,                       // llvm.x86.avx.rcp.ps.256
    x86_avx_round_pd_256,                     // llvm.x86.avx.round.pd.256
    x86_avx_round_ps_256,                     // llvm.x86.avx.round.ps.256
    x86_avx_rsqrt_ps_256,                     // llvm.x86.avx.rsqrt.ps.256
    x86_avx_sqrt_pd_256,                      // llvm.x86.avx.sqrt.pd.256
    x86_avx_sqrt_ps_256,                      // llvm.x86.avx.sqrt.ps.256
    x86_avx_storeu_dq_256,                    // llvm.x86.avx.storeu.dq.256
    x86_avx_storeu_pd_256,                    // llvm.x86.avx.storeu.pd.256
    x86_avx_storeu_ps_256,                    // llvm.x86.avx.storeu.ps.256
    x86_avx_vbroadcast_sd_256,                // llvm.x86.avx.vbroadcast.sd.256
    x86_avx_vbroadcast_ss,                    // llvm.x86.avx.vbroadcast.ss
    x86_avx_vbroadcast_ss_256,                // llvm.x86.avx.vbroadcast.ss.256
    x86_avx_vbroadcastf128_pd_256,            // llvm.x86.avx.vbroadcastf128.pd.256
    x86_avx_vbroadcastf128_ps_256,            // llvm.x86.avx.vbroadcastf128.ps.256
    x86_avx_vextractf128_pd_256,              // llvm.x86.avx.vextractf128.pd.256
    x86_avx_vextractf128_ps_256,              // llvm.x86.avx.vextractf128.ps.256
    x86_avx_vextractf128_si_256,              // llvm.x86.avx.vextractf128.si.256
    x86_avx_vinsertf128_pd_256,               // llvm.x86.avx.vinsertf128.pd.256
    x86_avx_vinsertf128_ps_256,               // llvm.x86.avx.vinsertf128.ps.256
    x86_avx_vinsertf128_si_256,               // llvm.x86.avx.vinsertf128.si.256
    x86_avx_vperm2f128_pd_256,                // llvm.x86.avx.vperm2f128.pd.256
    x86_avx_vperm2f128_ps_256,                // llvm.x86.avx.vperm2f128.ps.256
    x86_avx_vperm2f128_si_256,                // llvm.x86.avx.vperm2f128.si.256
    x86_avx_vpermilvar_pd,                    // llvm.x86.avx.vpermilvar.pd
    x86_avx_vpermilvar_pd_256,                // llvm.x86.avx.vpermilvar.pd.256
    x86_avx_vpermilvar_ps,                    // llvm.x86.avx.vpermilvar.ps
    x86_avx_vpermilvar_ps_256,                // llvm.x86.avx.vpermilvar.ps.256
    x86_avx_vtestc_pd,                        // llvm.x86.avx.vtestc.pd
    x86_avx_vtestc_pd_256,                    // llvm.x86.avx.vtestc.pd.256
    x86_avx_vtestc_ps,                        // llvm.x86.avx.vtestc.ps
    x86_avx_vtestc_ps_256,                    // llvm.x86.avx.vtestc.ps.256
    x86_avx_vtestnzc_pd,                      // llvm.x86.avx.vtestnzc.pd
    x86_avx_vtestnzc_pd_256,                  // llvm.x86.avx.vtestnzc.pd.256
    x86_avx_vtestnzc_ps,                      // llvm.x86.avx.vtestnzc.ps
    x86_avx_vtestnzc_ps_256,                  // llvm.x86.avx.vtestnzc.ps.256
    x86_avx_vtestz_pd,                        // llvm.x86.avx.vtestz.pd
    x86_avx_vtestz_pd_256,                    // llvm.x86.avx.vtestz.pd.256
    x86_avx_vtestz_ps,                        // llvm.x86.avx.vtestz.ps
    x86_avx_vtestz_ps_256,                    // llvm.x86.avx.vtestz.ps.256
    x86_avx_vzeroall,                         // llvm.x86.avx.vzeroall
    x86_avx_vzeroupper,                       // llvm.x86.avx.vzeroupper
    x86_bmi_bextr_32,                         // llvm.x86.bmi.bextr.32
    x86_bmi_bextr_64,                         // llvm.x86.bmi.bextr.64
    x86_bmi_bzhi_32,                          // llvm.x86.bmi.bzhi.32
    x86_bmi_bzhi_64,                          // llvm.x86.bmi.bzhi.64
    x86_bmi_pdep_32,                          // llvm.x86.bmi.pdep.32
    x86_bmi_pdep_64,                          // llvm.x86.bmi.pdep.64
    x86_bmi_pext_32,                          // llvm.x86.bmi.pext.32
    x86_bmi_pext_64,                          // llvm.x86.bmi.pext.64
    x86_fma_vfmadd_pd,                        // llvm.x86.fma.vfmadd.pd
    x86_fma_vfmadd_pd_256,                    // llvm.x86.fma.vfmadd.pd.256
    x86_fma_vfmadd_ps,                        // llvm.x86.fma.vfmadd.ps
    x86_fma_vfmadd_ps_256,                    // llvm.x86.fma.vfmadd.ps.256
    x86_fma_vfmadd_sd,                        // llvm.x86.fma.vfmadd.sd
    x86_fma_vfmadd_ss,                        // llvm.x86.fma.vfmadd.ss
    x86_fma_vfmaddsub_pd,                     // llvm.x86.fma.vfmaddsub.pd
    x86_fma_vfmaddsub_pd_256,                 // llvm.x86.fma.vfmaddsub.pd.256
    x86_fma_vfmaddsub_ps,                     // llvm.x86.fma.vfmaddsub.ps
    x86_fma_vfmaddsub_ps_256,                 // llvm.x86.fma.vfmaddsub.ps.256
    x86_fma_vfmsub_pd,                        // llvm.x86.fma.vfmsub.pd
    x86_fma_vfmsub_pd_256,                    // llvm.x86.fma.vfmsub.pd.256
    x86_fma_vfmsub_ps,                        // llvm.x86.fma.vfmsub.ps
    x86_fma_vfmsub_ps_256,                    // llvm.x86.fma.vfmsub.ps.256
    x86_fma_vfmsub_sd,                        // llvm.x86.fma.vfmsub.sd
    x86_fma_vfmsub_ss,                        // llvm.x86.fma.vfmsub.ss
    x86_fma_vfmsubadd_pd,                     // llvm.x86.fma.vfmsubadd.pd
    x86_fma_vfmsubadd_pd_256,                 // llvm.x86.fma.vfmsubadd.pd.256
    x86_fma_vfmsubadd_ps,                     // llvm.x86.fma.vfmsubadd.ps
    x86_fma_vfmsubadd_ps_256,                 // llvm.x86.fma.vfmsubadd.ps.256
    x86_fma_vfnmadd_pd,                       // llvm.x86.fma.vfnmadd.pd
    x86_fma_vfnmadd_pd_256,                   // llvm.x86.fma.vfnmadd.pd.256
    x86_fma_vfnmadd_ps,                       // llvm.x86.fma.vfnmadd.ps
    x86_fma_vfnmadd_ps_256,                   // llvm.x86.fma.vfnmadd.ps.256
    x86_fma_vfnmadd_sd,                       // llvm.x86.fma.vfnmadd.sd
    x86_fma_vfnmadd_ss,                       // llvm.x86.fma.vfnmadd.ss
    x86_fma_vfnmsub_pd,                       // llvm.x86.fma.vfnmsub.pd
    x86_fma_vfnmsub_pd_256,                   // llvm.x86.fma.vfnmsub.pd.256
    x86_fma_vfnmsub_ps,                       // llvm.x86.fma.vfnmsub.ps
    x86_fma_vfnmsub_ps_256,                   // llvm.x86.fma.vfnmsub.ps.256
    x86_fma_vfnmsub_sd,                       // llvm.x86.fma.vfnmsub.sd
    x86_fma_vfnmsub_ss,                       // llvm.x86.fma.vfnmsub.ss
    x86_int,                                  // llvm.x86.int
    x86_mmx_emms,                             // llvm.x86.mmx.emms
    x86_mmx_femms,                            // llvm.x86.mmx.femms
    x86_mmx_maskmovq,                         // llvm.x86.mmx.maskmovq
    x86_mmx_movnt_dq,                         // llvm.x86.mmx.movnt.dq
    x86_mmx_packssdw,                         // llvm.x86.mmx.packssdw
    x86_mmx_packsswb,                         // llvm.x86.mmx.packsswb
    x86_mmx_packuswb,                         // llvm.x86.mmx.packuswb
    x86_mmx_padd_b,                           // llvm.x86.mmx.padd.b
    x86_mmx_padd_d,                           // llvm.x86.mmx.padd.d
    x86_mmx_padd_q,                           // llvm.x86.mmx.padd.q
    x86_mmx_padd_w,                           // llvm.x86.mmx.padd.w
    x86_mmx_padds_b,                          // llvm.x86.mmx.padds.b
    x86_mmx_padds_w,                          // llvm.x86.mmx.padds.w
    x86_mmx_paddus_b,                         // llvm.x86.mmx.paddus.b
    x86_mmx_paddus_w,                         // llvm.x86.mmx.paddus.w
    x86_mmx_palignr_b,                        // llvm.x86.mmx.palignr.b
    x86_mmx_pand,                             // llvm.x86.mmx.pand
    x86_mmx_pandn,                            // llvm.x86.mmx.pandn
    x86_mmx_pavg_b,                           // llvm.x86.mmx.pavg.b
    x86_mmx_pavg_w,                           // llvm.x86.mmx.pavg.w
    x86_mmx_pcmpeq_b,                         // llvm.x86.mmx.pcmpeq.b
    x86_mmx_pcmpeq_d,                         // llvm.x86.mmx.pcmpeq.d
    x86_mmx_pcmpeq_w,                         // llvm.x86.mmx.pcmpeq.w
    x86_mmx_pcmpgt_b,                         // llvm.x86.mmx.pcmpgt.b
    x86_mmx_pcmpgt_d,                         // llvm.x86.mmx.pcmpgt.d
    x86_mmx_pcmpgt_w,                         // llvm.x86.mmx.pcmpgt.w
    x86_mmx_pextr_w,                          // llvm.x86.mmx.pextr.w
    x86_mmx_pinsr_w,                          // llvm.x86.mmx.pinsr.w
    x86_mmx_pmadd_wd,                         // llvm.x86.mmx.pmadd.wd
    x86_mmx_pmaxs_w,                          // llvm.x86.mmx.pmaxs.w
    x86_mmx_pmaxu_b,                          // llvm.x86.mmx.pmaxu.b
    x86_mmx_pmins_w,                          // llvm.x86.mmx.pmins.w
    x86_mmx_pminu_b,                          // llvm.x86.mmx.pminu.b
    x86_mmx_pmovmskb,                         // llvm.x86.mmx.pmovmskb
    x86_mmx_pmulh_w,                          // llvm.x86.mmx.pmulh.w
    x86_mmx_pmulhu_w,                         // llvm.x86.mmx.pmulhu.w
    x86_mmx_pmull_w,                          // llvm.x86.mmx.pmull.w
    x86_mmx_pmulu_dq,                         // llvm.x86.mmx.pmulu.dq
    x86_mmx_por,                              // llvm.x86.mmx.por
    x86_mmx_psad_bw,                          // llvm.x86.mmx.psad.bw
    x86_mmx_psll_d,                           // llvm.x86.mmx.psll.d
    x86_mmx_psll_q,                           // llvm.x86.mmx.psll.q
    x86_mmx_psll_w,                           // llvm.x86.mmx.psll.w
    x86_mmx_pslli_d,                          // llvm.x86.mmx.pslli.d
    x86_mmx_pslli_q,                          // llvm.x86.mmx.pslli.q
    x86_mmx_pslli_w,                          // llvm.x86.mmx.pslli.w
    x86_mmx_psra_d,                           // llvm.x86.mmx.psra.d
    x86_mmx_psra_w,                           // llvm.x86.mmx.psra.w
    x86_mmx_psrai_d,                          // llvm.x86.mmx.psrai.d
    x86_mmx_psrai_w,                          // llvm.x86.mmx.psrai.w
    x86_mmx_psrl_d,                           // llvm.x86.mmx.psrl.d
    x86_mmx_psrl_q,                           // llvm.x86.mmx.psrl.q
    x86_mmx_psrl_w,                           // llvm.x86.mmx.psrl.w
    x86_mmx_psrli_d,                          // llvm.x86.mmx.psrli.d
    x86_mmx_psrli_q,                          // llvm.x86.mmx.psrli.q
    x86_mmx_psrli_w,                          // llvm.x86.mmx.psrli.w
    x86_mmx_psub_b,                           // llvm.x86.mmx.psub.b
    x86_mmx_psub_d,                           // llvm.x86.mmx.psub.d
    x86_mmx_psub_q,                           // llvm.x86.mmx.psub.q
    x86_mmx_psub_w,                           // llvm.x86.mmx.psub.w
    x86_mmx_psubs_b,                          // llvm.x86.mmx.psubs.b
    x86_mmx_psubs_w,                          // llvm.x86.mmx.psubs.w
    x86_mmx_psubus_b,                         // llvm.x86.mmx.psubus.b
    x86_mmx_psubus_w,                         // llvm.x86.mmx.psubus.w
    x86_mmx_punpckhbw,                        // llvm.x86.mmx.punpckhbw
    x86_mmx_punpckhdq,                        // llvm.x86.mmx.punpckhdq
    x86_mmx_punpckhwd,                        // llvm.x86.mmx.punpckhwd
    x86_mmx_punpcklbw,                        // llvm.x86.mmx.punpcklbw
    x86_mmx_punpckldq,                        // llvm.x86.mmx.punpckldq
    x86_mmx_punpcklwd,                        // llvm.x86.mmx.punpcklwd
    x86_mmx_pxor,                             // llvm.x86.mmx.pxor
    x86_pclmulqdq,                            // llvm.x86.pclmulqdq
    x86_rdfsbase_32,                          // llvm.x86.rdfsbase.32
    x86_rdfsbase_64,                          // llvm.x86.rdfsbase.64
    x86_rdgsbase_32,                          // llvm.x86.rdgsbase.32
    x86_rdgsbase_64,                          // llvm.x86.rdgsbase.64
    x86_rdrand_16,                            // llvm.x86.rdrand.16
    x86_rdrand_32,                            // llvm.x86.rdrand.32
    x86_rdrand_64,                            // llvm.x86.rdrand.64
    x86_sse2_add_sd,                          // llvm.x86.sse2.add.sd
    x86_sse2_clflush,                         // llvm.x86.sse2.clflush
    x86_sse2_cmp_pd,                          // llvm.x86.sse2.cmp.pd
    x86_sse2_cmp_sd,                          // llvm.x86.sse2.cmp.sd
    x86_sse2_comieq_sd,                       // llvm.x86.sse2.comieq.sd
    x86_sse2_comige_sd,                       // llvm.x86.sse2.comige.sd
    x86_sse2_comigt_sd,                       // llvm.x86.sse2.comigt.sd
    x86_sse2_comile_sd,                       // llvm.x86.sse2.comile.sd
    x86_sse2_comilt_sd,                       // llvm.x86.sse2.comilt.sd
    x86_sse2_comineq_sd,                      // llvm.x86.sse2.comineq.sd
    x86_sse2_cvtdq2pd,                        // llvm.x86.sse2.cvtdq2pd
    x86_sse2_cvtdq2ps,                        // llvm.x86.sse2.cvtdq2ps
    x86_sse2_cvtpd2dq,                        // llvm.x86.sse2.cvtpd2dq
    x86_sse2_cvtpd2ps,                        // llvm.x86.sse2.cvtpd2ps
    x86_sse2_cvtps2dq,                        // llvm.x86.sse2.cvtps2dq
    x86_sse2_cvtps2pd,                        // llvm.x86.sse2.cvtps2pd
    x86_sse2_cvtsd2si,                        // llvm.x86.sse2.cvtsd2si
    x86_sse2_cvtsd2si64,                      // llvm.x86.sse2.cvtsd2si64
    x86_sse2_cvtsd2ss,                        // llvm.x86.sse2.cvtsd2ss
    x86_sse2_cvtsi2sd,                        // llvm.x86.sse2.cvtsi2sd
    x86_sse2_cvtsi642sd,                      // llvm.x86.sse2.cvtsi642sd
    x86_sse2_cvtss2sd,                        // llvm.x86.sse2.cvtss2sd
    x86_sse2_cvttpd2dq,                       // llvm.x86.sse2.cvttpd2dq
    x86_sse2_cvttps2dq,                       // llvm.x86.sse2.cvttps2dq
    x86_sse2_cvttsd2si,                       // llvm.x86.sse2.cvttsd2si
    x86_sse2_cvttsd2si64,                     // llvm.x86.sse2.cvttsd2si64
    x86_sse2_div_sd,                          // llvm.x86.sse2.div.sd
    x86_sse2_lfence,                          // llvm.x86.sse2.lfence
    x86_sse2_maskmov_dqu,                     // llvm.x86.sse2.maskmov.dqu
    x86_sse2_max_pd,                          // llvm.x86.sse2.max.pd
    x86_sse2_max_sd,                          // llvm.x86.sse2.max.sd
    x86_sse2_mfence,                          // llvm.x86.sse2.mfence
    x86_sse2_min_pd,                          // llvm.x86.sse2.min.pd
    x86_sse2_min_sd,                          // llvm.x86.sse2.min.sd
    x86_sse2_movmsk_pd,                       // llvm.x86.sse2.movmsk.pd
    x86_sse2_mul_sd,                          // llvm.x86.sse2.mul.sd
    x86_sse2_packssdw_128,                    // llvm.x86.sse2.packssdw.128
    x86_sse2_packsswb_128,                    // llvm.x86.sse2.packsswb.128
    x86_sse2_packuswb_128,                    // llvm.x86.sse2.packuswb.128
    x86_sse2_padds_b,                         // llvm.x86.sse2.padds.b
    x86_sse2_padds_w,                         // llvm.x86.sse2.padds.w
    x86_sse2_paddus_b,                        // llvm.x86.sse2.paddus.b
    x86_sse2_paddus_w,                        // llvm.x86.sse2.paddus.w
    x86_sse2_pavg_b,                          // llvm.x86.sse2.pavg.b
    x86_sse2_pavg_w,                          // llvm.x86.sse2.pavg.w
    x86_sse2_pmadd_wd,                        // llvm.x86.sse2.pmadd.wd
    x86_sse2_pmaxs_w,                         // llvm.x86.sse2.pmaxs.w
    x86_sse2_pmaxu_b,                         // llvm.x86.sse2.pmaxu.b
    x86_sse2_pmins_w,                         // llvm.x86.sse2.pmins.w
    x86_sse2_pminu_b,                         // llvm.x86.sse2.pminu.b
    x86_sse2_pmovmskb_128,                    // llvm.x86.sse2.pmovmskb.128
    x86_sse2_pmulh_w,                         // llvm.x86.sse2.pmulh.w
    x86_sse2_pmulhu_w,                        // llvm.x86.sse2.pmulhu.w
    x86_sse2_pmulu_dq,                        // llvm.x86.sse2.pmulu.dq
    x86_sse2_psad_bw,                         // llvm.x86.sse2.psad.bw
    x86_sse2_psll_d,                          // llvm.x86.sse2.psll.d
    x86_sse2_psll_dq,                         // llvm.x86.sse2.psll.dq
    x86_sse2_psll_dq_bs,                      // llvm.x86.sse2.psll.dq.bs
    x86_sse2_psll_q,                          // llvm.x86.sse2.psll.q
    x86_sse2_psll_w,                          // llvm.x86.sse2.psll.w
    x86_sse2_pslli_d,                         // llvm.x86.sse2.pslli.d
    x86_sse2_pslli_q,                         // llvm.x86.sse2.pslli.q
    x86_sse2_pslli_w,                         // llvm.x86.sse2.pslli.w
    x86_sse2_psra_d,                          // llvm.x86.sse2.psra.d
    x86_sse2_psra_w,                          // llvm.x86.sse2.psra.w
    x86_sse2_psrai_d,                         // llvm.x86.sse2.psrai.d
    x86_sse2_psrai_w,                         // llvm.x86.sse2.psrai.w
    x86_sse2_psrl_d,                          // llvm.x86.sse2.psrl.d
    x86_sse2_psrl_dq,                         // llvm.x86.sse2.psrl.dq
    x86_sse2_psrl_dq_bs,                      // llvm.x86.sse2.psrl.dq.bs
    x86_sse2_psrl_q,                          // llvm.x86.sse2.psrl.q
    x86_sse2_psrl_w,                          // llvm.x86.sse2.psrl.w
    x86_sse2_psrli_d,                         // llvm.x86.sse2.psrli.d
    x86_sse2_psrli_q,                         // llvm.x86.sse2.psrli.q
    x86_sse2_psrli_w,                         // llvm.x86.sse2.psrli.w
    x86_sse2_psubs_b,                         // llvm.x86.sse2.psubs.b
    x86_sse2_psubs_w,                         // llvm.x86.sse2.psubs.w
    x86_sse2_psubus_b,                        // llvm.x86.sse2.psubus.b
    x86_sse2_psubus_w,                        // llvm.x86.sse2.psubus.w
    x86_sse2_sqrt_pd,                         // llvm.x86.sse2.sqrt.pd
    x86_sse2_sqrt_sd,                         // llvm.x86.sse2.sqrt.sd
    x86_sse2_storel_dq,                       // llvm.x86.sse2.storel.dq
    x86_sse2_storeu_dq,                       // llvm.x86.sse2.storeu.dq
    x86_sse2_storeu_pd,                       // llvm.x86.sse2.storeu.pd
    x86_sse2_sub_sd,                          // llvm.x86.sse2.sub.sd
    x86_sse2_ucomieq_sd,                      // llvm.x86.sse2.ucomieq.sd
    x86_sse2_ucomige_sd,                      // llvm.x86.sse2.ucomige.sd
    x86_sse2_ucomigt_sd,                      // llvm.x86.sse2.ucomigt.sd
    x86_sse2_ucomile_sd,                      // llvm.x86.sse2.ucomile.sd
    x86_sse2_ucomilt_sd,                      // llvm.x86.sse2.ucomilt.sd
    x86_sse2_ucomineq_sd,                     // llvm.x86.sse2.ucomineq.sd
    x86_sse3_addsub_pd,                       // llvm.x86.sse3.addsub.pd
    x86_sse3_addsub_ps,                       // llvm.x86.sse3.addsub.ps
    x86_sse3_hadd_pd,                         // llvm.x86.sse3.hadd.pd
    x86_sse3_hadd_ps,                         // llvm.x86.sse3.hadd.ps
    x86_sse3_hsub_pd,                         // llvm.x86.sse3.hsub.pd
    x86_sse3_hsub_ps,                         // llvm.x86.sse3.hsub.ps
    x86_sse3_ldu_dq,                          // llvm.x86.sse3.ldu.dq
    x86_sse3_monitor,                         // llvm.x86.sse3.monitor
    x86_sse3_mwait,                           // llvm.x86.sse3.mwait
    x86_sse41_blendpd,                        // llvm.x86.sse41.blendpd
    x86_sse41_blendps,                        // llvm.x86.sse41.blendps
    x86_sse41_blendvpd,                       // llvm.x86.sse41.blendvpd
    x86_sse41_blendvps,                       // llvm.x86.sse41.blendvps
    x86_sse41_dppd,                           // llvm.x86.sse41.dppd
    x86_sse41_dpps,                           // llvm.x86.sse41.dpps
    x86_sse41_extractps,                      // llvm.x86.sse41.extractps
    x86_sse41_insertps,                       // llvm.x86.sse41.insertps
    x86_sse41_movntdqa,                       // llvm.x86.sse41.movntdqa
    x86_sse41_mpsadbw,                        // llvm.x86.sse41.mpsadbw
    x86_sse41_packusdw,                       // llvm.x86.sse41.packusdw
    x86_sse41_pblendvb,                       // llvm.x86.sse41.pblendvb
    x86_sse41_pblendw,                        // llvm.x86.sse41.pblendw
    x86_sse41_pextrb,                         // llvm.x86.sse41.pextrb
    x86_sse41_pextrd,                         // llvm.x86.sse41.pextrd
    x86_sse41_pextrq,                         // llvm.x86.sse41.pextrq
    x86_sse41_phminposuw,                     // llvm.x86.sse41.phminposuw
    x86_sse41_pmaxsb,                         // llvm.x86.sse41.pmaxsb
    x86_sse41_pmaxsd,                         // llvm.x86.sse41.pmaxsd
    x86_sse41_pmaxud,                         // llvm.x86.sse41.pmaxud
    x86_sse41_pmaxuw,                         // llvm.x86.sse41.pmaxuw
    x86_sse41_pminsb,                         // llvm.x86.sse41.pminsb
    x86_sse41_pminsd,                         // llvm.x86.sse41.pminsd
    x86_sse41_pminud,                         // llvm.x86.sse41.pminud
    x86_sse41_pminuw,                         // llvm.x86.sse41.pminuw
    x86_sse41_pmovsxbd,                       // llvm.x86.sse41.pmovsxbd
    x86_sse41_pmovsxbq,                       // llvm.x86.sse41.pmovsxbq
    x86_sse41_pmovsxbw,                       // llvm.x86.sse41.pmovsxbw
    x86_sse41_pmovsxdq,                       // llvm.x86.sse41.pmovsxdq
    x86_sse41_pmovsxwd,                       // llvm.x86.sse41.pmovsxwd
    x86_sse41_pmovsxwq,                       // llvm.x86.sse41.pmovsxwq
    x86_sse41_pmovzxbd,                       // llvm.x86.sse41.pmovzxbd
    x86_sse41_pmovzxbq,                       // llvm.x86.sse41.pmovzxbq
    x86_sse41_pmovzxbw,                       // llvm.x86.sse41.pmovzxbw
    x86_sse41_pmovzxdq,                       // llvm.x86.sse41.pmovzxdq
    x86_sse41_pmovzxwd,                       // llvm.x86.sse41.pmovzxwd
    x86_sse41_pmovzxwq,                       // llvm.x86.sse41.pmovzxwq
    x86_sse41_pmuldq,                         // llvm.x86.sse41.pmuldq
    x86_sse41_ptestc,                         // llvm.x86.sse41.ptestc
    x86_sse41_ptestnzc,                       // llvm.x86.sse41.ptestnzc
    x86_sse41_ptestz,                         // llvm.x86.sse41.ptestz
    x86_sse41_round_pd,                       // llvm.x86.sse41.round.pd
    x86_sse41_round_ps,                       // llvm.x86.sse41.round.ps
    x86_sse41_round_sd,                       // llvm.x86.sse41.round.sd
    x86_sse41_round_ss,                       // llvm.x86.sse41.round.ss
    x86_sse42_crc32_32_16,                    // llvm.x86.sse42.crc32.32.16
    x86_sse42_crc32_32_32,                    // llvm.x86.sse42.crc32.32.32
    x86_sse42_crc32_32_8,                     // llvm.x86.sse42.crc32.32.8
    x86_sse42_crc32_64_64,                    // llvm.x86.sse42.crc32.64.64
    x86_sse42_crc32_64_8,                     // llvm.x86.sse42.crc32.64.8
    x86_sse42_pcmpestri128,                   // llvm.x86.sse42.pcmpestri128
    x86_sse42_pcmpestria128,                  // llvm.x86.sse42.pcmpestria128
    x86_sse42_pcmpestric128,                  // llvm.x86.sse42.pcmpestric128
    x86_sse42_pcmpestrio128,                  // llvm.x86.sse42.pcmpestrio128
    x86_sse42_pcmpestris128,                  // llvm.x86.sse42.pcmpestris128
    x86_sse42_pcmpestriz128,                  // llvm.x86.sse42.pcmpestriz128
    x86_sse42_pcmpestrm128,                   // llvm.x86.sse42.pcmpestrm128
    x86_sse42_pcmpistri128,                   // llvm.x86.sse42.pcmpistri128
    x86_sse42_pcmpistria128,                  // llvm.x86.sse42.pcmpistria128
    x86_sse42_pcmpistric128,                  // llvm.x86.sse42.pcmpistric128
    x86_sse42_pcmpistrio128,                  // llvm.x86.sse42.pcmpistrio128
    x86_sse42_pcmpistris128,                  // llvm.x86.sse42.pcmpistris128
    x86_sse42_pcmpistriz128,                  // llvm.x86.sse42.pcmpistriz128
    x86_sse42_pcmpistrm128,                   // llvm.x86.sse42.pcmpistrm128
    x86_sse4a_extrq,                          // llvm.x86.sse4a.extrq
    x86_sse4a_extrqi,                         // llvm.x86.sse4a.extrqi
    x86_sse4a_insertq,                        // llvm.x86.sse4a.insertq
    x86_sse4a_insertqi,                       // llvm.x86.sse4a.insertqi
    x86_sse4a_movnt_sd,                       // llvm.x86.sse4a.movnt.sd
    x86_sse4a_movnt_ss,                       // llvm.x86.sse4a.movnt.ss
    x86_sse_add_ss,                           // llvm.x86.sse.add.ss
    x86_sse_cmp_ps,                           // llvm.x86.sse.cmp.ps
    x86_sse_cmp_ss,                           // llvm.x86.sse.cmp.ss
    x86_sse_comieq_ss,                        // llvm.x86.sse.comieq.ss
    x86_sse_comige_ss,                        // llvm.x86.sse.comige.ss
    x86_sse_comigt_ss,                        // llvm.x86.sse.comigt.ss
    x86_sse_comile_ss,                        // llvm.x86.sse.comile.ss
    x86_sse_comilt_ss,                        // llvm.x86.sse.comilt.ss
    x86_sse_comineq_ss,                       // llvm.x86.sse.comineq.ss
    x86_sse_cvtpd2pi,                         // llvm.x86.sse.cvtpd2pi
    x86_sse_cvtpi2pd,                         // llvm.x86.sse.cvtpi2pd
    x86_sse_cvtpi2ps,                         // llvm.x86.sse.cvtpi2ps
    x86_sse_cvtps2pi,                         // llvm.x86.sse.cvtps2pi
    x86_sse_cvtsi2ss,                         // llvm.x86.sse.cvtsi2ss
    x86_sse_cvtsi642ss,                       // llvm.x86.sse.cvtsi642ss
    x86_sse_cvtss2si,                         // llvm.x86.sse.cvtss2si
    x86_sse_cvtss2si64,                       // llvm.x86.sse.cvtss2si64
    x86_sse_cvttpd2pi,                        // llvm.x86.sse.cvttpd2pi
    x86_sse_cvttps2pi,                        // llvm.x86.sse.cvttps2pi
    x86_sse_cvttss2si,                        // llvm.x86.sse.cvttss2si
    x86_sse_cvttss2si64,                      // llvm.x86.sse.cvttss2si64
    x86_sse_div_ss,                           // llvm.x86.sse.div.ss
    x86_sse_ldmxcsr,                          // llvm.x86.sse.ldmxcsr
    x86_sse_max_ps,                           // llvm.x86.sse.max.ps
    x86_sse_max_ss,                           // llvm.x86.sse.max.ss
    x86_sse_min_ps,                           // llvm.x86.sse.min.ps
    x86_sse_min_ss,                           // llvm.x86.sse.min.ss
    x86_sse_movmsk_ps,                        // llvm.x86.sse.movmsk.ps
    x86_sse_mul_ss,                           // llvm.x86.sse.mul.ss
    x86_sse_pshuf_w,                          // llvm.x86.sse.pshuf.w
    x86_sse_rcp_ps,                           // llvm.x86.sse.rcp.ps
    x86_sse_rcp_ss,                           // llvm.x86.sse.rcp.ss
    x86_sse_rsqrt_ps,                         // llvm.x86.sse.rsqrt.ps
    x86_sse_rsqrt_ss,                         // llvm.x86.sse.rsqrt.ss
    x86_sse_sfence,                           // llvm.x86.sse.sfence
    x86_sse_sqrt_ps,                          // llvm.x86.sse.sqrt.ps
    x86_sse_sqrt_ss,                          // llvm.x86.sse.sqrt.ss
    x86_sse_stmxcsr,                          // llvm.x86.sse.stmxcsr
    x86_sse_storeu_ps,                        // llvm.x86.sse.storeu.ps
    x86_sse_sub_ss,                           // llvm.x86.sse.sub.ss
    x86_sse_ucomieq_ss,                       // llvm.x86.sse.ucomieq.ss
    x86_sse_ucomige_ss,                       // llvm.x86.sse.ucomige.ss
    x86_sse_ucomigt_ss,                       // llvm.x86.sse.ucomigt.ss
    x86_sse_ucomile_ss,                       // llvm.x86.sse.ucomile.ss
    x86_sse_ucomilt_ss,                       // llvm.x86.sse.ucomilt.ss
    x86_sse_ucomineq_ss,                      // llvm.x86.sse.ucomineq.ss
    x86_ssse3_pabs_b,                         // llvm.x86.ssse3.pabs.b
    x86_ssse3_pabs_b_128,                     // llvm.x86.ssse3.pabs.b.128
    x86_ssse3_pabs_d,                         // llvm.x86.ssse3.pabs.d
    x86_ssse3_pabs_d_128,                     // llvm.x86.ssse3.pabs.d.128
    x86_ssse3_pabs_w,                         // llvm.x86.ssse3.pabs.w
    x86_ssse3_pabs_w_128,                     // llvm.x86.ssse3.pabs.w.128
    x86_ssse3_phadd_d,                        // llvm.x86.ssse3.phadd.d
    x86_ssse3_phadd_d_128,                    // llvm.x86.ssse3.phadd.d.128
    x86_ssse3_phadd_sw,                       // llvm.x86.ssse3.phadd.sw
    x86_ssse3_phadd_sw_128,                   // llvm.x86.ssse3.phadd.sw.128
    x86_ssse3_phadd_w,                        // llvm.x86.ssse3.phadd.w
    x86_ssse3_phadd_w_128,                    // llvm.x86.ssse3.phadd.w.128
    x86_ssse3_phsub_d,                        // llvm.x86.ssse3.phsub.d
    x86_ssse3_phsub_d_128,                    // llvm.x86.ssse3.phsub.d.128
    x86_ssse3_phsub_sw,                       // llvm.x86.ssse3.phsub.sw
    x86_ssse3_phsub_sw_128,                   // llvm.x86.ssse3.phsub.sw.128
    x86_ssse3_phsub_w,                        // llvm.x86.ssse3.phsub.w
    x86_ssse3_phsub_w_128,                    // llvm.x86.ssse3.phsub.w.128
    x86_ssse3_pmadd_ub_sw,                    // llvm.x86.ssse3.pmadd.ub.sw
    x86_ssse3_pmadd_ub_sw_128,                // llvm.x86.ssse3.pmadd.ub.sw.128
    x86_ssse3_pmul_hr_sw,                     // llvm.x86.ssse3.pmul.hr.sw
    x86_ssse3_pmul_hr_sw_128,                 // llvm.x86.ssse3.pmul.hr.sw.128
    x86_ssse3_pshuf_b,                        // llvm.x86.ssse3.pshuf.b
    x86_ssse3_pshuf_b_128,                    // llvm.x86.ssse3.pshuf.b.128
    x86_ssse3_psign_b,                        // llvm.x86.ssse3.psign.b
    x86_ssse3_psign_b_128,                    // llvm.x86.ssse3.psign.b.128
    x86_ssse3_psign_d,                        // llvm.x86.ssse3.psign.d
    x86_ssse3_psign_d_128,                    // llvm.x86.ssse3.psign.d.128
    x86_ssse3_psign_w,                        // llvm.x86.ssse3.psign.w
    x86_ssse3_psign_w_128,                    // llvm.x86.ssse3.psign.w.128
    x86_vcvtph2ps_128,                        // llvm.x86.vcvtph2ps.128
    x86_vcvtph2ps_256,                        // llvm.x86.vcvtph2ps.256
    x86_vcvtps2ph_128,                        // llvm.x86.vcvtps2ph.128
    x86_vcvtps2ph_256,                        // llvm.x86.vcvtps2ph.256
    x86_wrfsbase_32,                          // llvm.x86.wrfsbase.32
    x86_wrfsbase_64,                          // llvm.x86.wrfsbase.64
    x86_wrgsbase_32,                          // llvm.x86.wrgsbase.32
    x86_wrgsbase_64,                          // llvm.x86.wrgsbase.64
    x86_xop_vfrcz_pd,                         // llvm.x86.xop.vfrcz.pd
    x86_xop_vfrcz_pd_256,                     // llvm.x86.xop.vfrcz.pd.256
    x86_xop_vfrcz_ps,                         // llvm.x86.xop.vfrcz.ps
    x86_xop_vfrcz_ps_256,                     // llvm.x86.xop.vfrcz.ps.256
    x86_xop_vfrcz_sd,                         // llvm.x86.xop.vfrcz.sd
    x86_xop_vfrcz_ss,                         // llvm.x86.xop.vfrcz.ss
    x86_xop_vpcmov,                           // llvm.x86.xop.vpcmov
    x86_xop_vpcmov_256,                       // llvm.x86.xop.vpcmov.256
    x86_xop_vpcomb,                           // llvm.x86.xop.vpcomb
    x86_xop_vpcomd,                           // llvm.x86.xop.vpcomd
    x86_xop_vpcomq,                           // llvm.x86.xop.vpcomq
    x86_xop_vpcomub,                          // llvm.x86.xop.vpcomub
    x86_xop_vpcomud,                          // llvm.x86.xop.vpcomud
    x86_xop_vpcomuq,                          // llvm.x86.xop.vpcomuq
    x86_xop_vpcomuw,                          // llvm.x86.xop.vpcomuw
    x86_xop_vpcomw,                           // llvm.x86.xop.vpcomw
    x86_xop_vpermil2pd,                       // llvm.x86.xop.vpermil2pd
    x86_xop_vpermil2pd_256,                   // llvm.x86.xop.vpermil2pd.256
    x86_xop_vpermil2ps,                       // llvm.x86.xop.vpermil2ps
    x86_xop_vpermil2ps_256,                   // llvm.x86.xop.vpermil2ps.256
    x86_xop_vphaddbd,                         // llvm.x86.xop.vphaddbd
    x86_xop_vphaddbq,                         // llvm.x86.xop.vphaddbq
    x86_xop_vphaddbw,                         // llvm.x86.xop.vphaddbw
    x86_xop_vphadddq,                         // llvm.x86.xop.vphadddq
    x86_xop_vphaddubd,                        // llvm.x86.xop.vphaddubd
    x86_xop_vphaddubq,                        // llvm.x86.xop.vphaddubq
    x86_xop_vphaddubw,                        // llvm.x86.xop.vphaddubw
    x86_xop_vphaddudq,                        // llvm.x86.xop.vphaddudq
    x86_xop_vphadduwd,                        // llvm.x86.xop.vphadduwd
    x86_xop_vphadduwq,                        // llvm.x86.xop.vphadduwq
    x86_xop_vphaddwd,                         // llvm.x86.xop.vphaddwd
    x86_xop_vphaddwq,                         // llvm.x86.xop.vphaddwq
    x86_xop_vphsubbw,                         // llvm.x86.xop.vphsubbw
    x86_xop_vphsubdq,                         // llvm.x86.xop.vphsubdq
    x86_xop_vphsubwd,                         // llvm.x86.xop.vphsubwd
    x86_xop_vpmacsdd,                         // llvm.x86.xop.vpmacsdd
    x86_xop_vpmacsdqh,                        // llvm.x86.xop.vpmacsdqh
    x86_xop_vpmacsdql,                        // llvm.x86.xop.vpmacsdql
    x86_xop_vpmacssdd,                        // llvm.x86.xop.vpmacssdd
    x86_xop_vpmacssdqh,                       // llvm.x86.xop.vpmacssdqh
    x86_xop_vpmacssdql,                       // llvm.x86.xop.vpmacssdql
    x86_xop_vpmacsswd,                        // llvm.x86.xop.vpmacsswd
    x86_xop_vpmacssww,                        // llvm.x86.xop.vpmacssww
    x86_xop_vpmacswd,                         // llvm.x86.xop.vpmacswd
    x86_xop_vpmacsww,                         // llvm.x86.xop.vpmacsww
    x86_xop_vpmadcsswd,                       // llvm.x86.xop.vpmadcsswd
    x86_xop_vpmadcswd,                        // llvm.x86.xop.vpmadcswd
    x86_xop_vpperm,                           // llvm.x86.xop.vpperm
    x86_xop_vprotb,                           // llvm.x86.xop.vprotb
    x86_xop_vprotbi,                          // llvm.x86.xop.vprotbi
    x86_xop_vprotd,                           // llvm.x86.xop.vprotd
    x86_xop_vprotdi,                          // llvm.x86.xop.vprotdi
    x86_xop_vprotq,                           // llvm.x86.xop.vprotq
    x86_xop_vprotqi,                          // llvm.x86.xop.vprotqi
    x86_xop_vprotw,                           // llvm.x86.xop.vprotw
    x86_xop_vprotwi,                          // llvm.x86.xop.vprotwi
    x86_xop_vpshab,                           // llvm.x86.xop.vpshab
    x86_xop_vpshad,                           // llvm.x86.xop.vpshad
    x86_xop_vpshaq,                           // llvm.x86.xop.vpshaq
    x86_xop_vpshaw,                           // llvm.x86.xop.vpshaw
    x86_xop_vpshlb,                           // llvm.x86.xop.vpshlb
    x86_xop_vpshld,                           // llvm.x86.xop.vpshld
    x86_xop_vpshlq,                           // llvm.x86.xop.vpshlq
    x86_xop_vpshlw,                           // llvm.x86.xop.vpshlw
    xcore_bitrev,                             // llvm.xcore.bitrev
    xcore_checkevent,                         // llvm.xcore.checkevent
    xcore_chkct,                              // llvm.xcore.chkct
    xcore_clre,                               // llvm.xcore.clre
    xcore_clrsr,                              // llvm.xcore.clrsr
    xcore_crc32,                              // llvm.xcore.crc32
    xcore_crc8,                               // llvm.xcore.crc8
    xcore_eeu,                                // llvm.xcore.eeu
    xcore_endin,                              // llvm.xcore.endin
    xcore_freer,                              // llvm.xcore.freer
    xcore_geted,                              // llvm.xcore.geted
    xcore_getet,                              // llvm.xcore.getet
    xcore_getid,                              // llvm.xcore.getid
    xcore_getps,                              // llvm.xcore.getps
    xcore_getr,                               // llvm.xcore.getr
    xcore_getst,                              // llvm.xcore.getst
    xcore_getts,                              // llvm.xcore.getts
    xcore_in,                                 // llvm.xcore.in
    xcore_inct,                               // llvm.xcore.inct
    xcore_initcp,                             // llvm.xcore.initcp
    xcore_initdp,                             // llvm.xcore.initdp
    xcore_initlr,                             // llvm.xcore.initlr
    xcore_initpc,                             // llvm.xcore.initpc
    xcore_initsp,                             // llvm.xcore.initsp
    xcore_inshr,                              // llvm.xcore.inshr
    xcore_int,                                // llvm.xcore.int
    xcore_mjoin,                              // llvm.xcore.mjoin
    xcore_msync,                              // llvm.xcore.msync
    xcore_out,                                // llvm.xcore.out
    xcore_outct,                              // llvm.xcore.outct
    xcore_outshr,                             // llvm.xcore.outshr
    xcore_outt,                               // llvm.xcore.outt
    xcore_peek,                               // llvm.xcore.peek
    xcore_setc,                               // llvm.xcore.setc
    xcore_setclk,                             // llvm.xcore.setclk
    xcore_setd,                               // llvm.xcore.setd
    xcore_setev,                              // llvm.xcore.setev
    xcore_setps,                              // llvm.xcore.setps
    xcore_setpsc,                             // llvm.xcore.setpsc
    xcore_setpt,                              // llvm.xcore.setpt
    xcore_setrdy,                             // llvm.xcore.setrdy
    xcore_setsr,                              // llvm.xcore.setsr
    xcore_settw,                              // llvm.xcore.settw
    xcore_setv,                               // llvm.xcore.setv
    xcore_sext,                               // llvm.xcore.sext
    xcore_ssync,                              // llvm.xcore.ssync
    xcore_syncr,                              // llvm.xcore.syncr
    xcore_testct,                             // llvm.xcore.testct
    xcore_testwct,                            // llvm.xcore.testwct
    xcore_waitevent,                          // llvm.xcore.waitevent
    xcore_zext                                // llvm.xcore.zext
#endif

// Intrinsic ID to name table
#ifdef GET_INTRINSIC_NAME_TABLE
  // Note that entry #0 is the invalid intrinsic!
  "llvm.adjust.trampoline",
  "llvm.annotation",
  "llvm.arm.cdp",
  "llvm.arm.cdp2",
  "llvm.arm.get.fpscr",
  "llvm.arm.ldrexd",
  "llvm.arm.mcr",
  "llvm.arm.mcr2",
  "llvm.arm.mcrr",
  "llvm.arm.mcrr2",
  "llvm.arm.mrc",
  "llvm.arm.mrc2",
  "llvm.arm.neon.vabds",
  "llvm.arm.neon.vabdu",
  "llvm.arm.neon.vabs",
  "llvm.arm.neon.vacged",
  "llvm.arm.neon.vacgeq",
  "llvm.arm.neon.vacgtd",
  "llvm.arm.neon.vacgtq",
  "llvm.arm.neon.vaddhn",
  "llvm.arm.neon.vbsl",
  "llvm.arm.neon.vcls",
  "llvm.arm.neon.vclz",
  "llvm.arm.neon.vcnt",
  "llvm.arm.neon.vcvtfp2fxs",
  "llvm.arm.neon.vcvtfp2fxu",
  "llvm.arm.neon.vcvtfp2hf",
  "llvm.arm.neon.vcvtfxs2fp",
  "llvm.arm.neon.vcvtfxu2fp",
  "llvm.arm.neon.vcvthf2fp",
  "llvm.arm.neon.vhadds",
  "llvm.arm.neon.vhaddu",
  "llvm.arm.neon.vhsubs",
  "llvm.arm.neon.vhsubu",
  "llvm.arm.neon.vld1",
  "llvm.arm.neon.vld2",
  "llvm.arm.neon.vld2lane",
  "llvm.arm.neon.vld3",
  "llvm.arm.neon.vld3lane",
  "llvm.arm.neon.vld4",
  "llvm.arm.neon.vld4lane",
  "llvm.arm.neon.vmaxs",
  "llvm.arm.neon.vmaxu",
  "llvm.arm.neon.vmins",
  "llvm.arm.neon.vminu",
  "llvm.arm.neon.vmullp",
  "llvm.arm.neon.vmulls",
  "llvm.arm.neon.vmullu",
  "llvm.arm.neon.vmulp",
  "llvm.arm.neon.vpadals",
  "llvm.arm.neon.vpadalu",
  "llvm.arm.neon.vpadd",
  "llvm.arm.neon.vpaddls",
  "llvm.arm.neon.vpaddlu",
  "llvm.arm.neon.vpmaxs",
  "llvm.arm.neon.vpmaxu",
  "llvm.arm.neon.vpmins",
  "llvm.arm.neon.vpminu",
  "llvm.arm.neon.vqabs",
  "llvm.arm.neon.vqadds",
  "llvm.arm.neon.vqaddu",
  "llvm.arm.neon.vqdmlal",
  "llvm.arm.neon.vqdmlsl",
  "llvm.arm.neon.vqdmulh",
  "llvm.arm.neon.vqdmull",
  "llvm.arm.neon.vqmovns",
  "llvm.arm.neon.vqmovnsu",
  "llvm.arm.neon.vqmovnu",
  "llvm.arm.neon.vqneg",
  "llvm.arm.neon.vqrdmulh",
  "llvm.arm.neon.vqrshiftns",
  "llvm.arm.neon.vqrshiftnsu",
  "llvm.arm.neon.vqrshiftnu",
  "llvm.arm.neon.vqrshifts",
  "llvm.arm.neon.vqrshiftu",
  "llvm.arm.neon.vqshiftns",
  "llvm.arm.neon.vqshiftnsu",
  "llvm.arm.neon.vqshiftnu",
  "llvm.arm.neon.vqshifts",
  "llvm.arm.neon.vqshiftsu",
  "llvm.arm.neon.vqshiftu",
  "llvm.arm.neon.vqsubs",
  "llvm.arm.neon.vqsubu",
  "llvm.arm.neon.vraddhn",
  "llvm.arm.neon.vrecpe",
  "llvm.arm.neon.vrecps",
  "llvm.arm.neon.vrhadds",
  "llvm.arm.neon.vrhaddu",
  "llvm.arm.neon.vrshiftn",
  "llvm.arm.neon.vrshifts",
  "llvm.arm.neon.vrshiftu",
  "llvm.arm.neon.vrsqrte",
  "llvm.arm.neon.vrsqrts",
  "llvm.arm.neon.vrsubhn",
  "llvm.arm.neon.vshiftins",
  "llvm.arm.neon.vshiftls",
  "llvm.arm.neon.vshiftlu",
  "llvm.arm.neon.vshiftn",
  "llvm.arm.neon.vshifts",
  "llvm.arm.neon.vshiftu",
  "llvm.arm.neon.vst1",
  "llvm.arm.neon.vst2",
  "llvm.arm.neon.vst2lane",
  "llvm.arm.neon.vst3",
  "llvm.arm.neon.vst3lane",
  "llvm.arm.neon.vst4",
  "llvm.arm.neon.vst4lane",
  "llvm.arm.neon.vsubhn",
  "llvm.arm.neon.vtbl1",
  "llvm.arm.neon.vtbl2",
  "llvm.arm.neon.vtbl3",
  "llvm.arm.neon.vtbl4",
  "llvm.arm.neon.vtbx1",
  "llvm.arm.neon.vtbx2",
  "llvm.arm.neon.vtbx3",
  "llvm.arm.neon.vtbx4",
  "llvm.arm.qadd",
  "llvm.arm.qsub",
  "llvm.arm.set.fpscr",
  "llvm.arm.ssat",
  "llvm.arm.strexd",
  "llvm.arm.thread.pointer",
  "llvm.arm.usat",
  "llvm.arm.vcvtr",
  "llvm.arm.vcvtru",
  "llvm.bswap",
  "llvm.convert.from.fp16",
  "llvm.convert.to.fp16",
  "llvm.convertff",
  "llvm.convertfsi",
  "llvm.convertfui",
  "llvm.convertsif",
  "llvm.convertss",
  "llvm.convertsu",
  "llvm.convertuif",
  "llvm.convertus",
  "llvm.convertuu",
  "llvm.cos",
  "llvm.ctlz",
  "llvm.ctpop",
  "llvm.cttz",
  "llvm.cuda.syncthreads",
  "llvm.dbg.declare",
  "llvm.dbg.value",
  "llvm.debugtrap",
  "llvm.donothing",
  "llvm.eh.dwarf.cfa",
  "llvm.eh.return.i32",
  "llvm.eh.return.i64",
  "llvm.eh.sjlj.callsite",
  "llvm.eh.sjlj.functioncontext",
  "llvm.eh.sjlj.longjmp",
  "llvm.eh.sjlj.lsda",
  "llvm.eh.sjlj.setjmp",
  "llvm.eh.typeid.for",
  "llvm.eh.unwind.init",
  "llvm.exp",
  "llvm.exp2",
  "llvm.expect",
  "llvm.fabs",
  "llvm.floor",
  "llvm.flt.rounds",
  "llvm.fma",
  "llvm.fmuladd",
  "llvm.frameaddress",
  "llvm.gcread",
  "llvm.gcroot",
  "llvm.gcwrite",
  "llvm.hexagon.A2.abs",
  "llvm.hexagon.A2.absp",
  "llvm.hexagon.A2.abssat",
  "llvm.hexagon.A2.add",
  "llvm.hexagon.A2.addh.h16.hh",
  "llvm.hexagon.A2.addh.h16.hl",
  "llvm.hexagon.A2.addh.h16.lh",
  "llvm.hexagon.A2.addh.h16.ll",
  "llvm.hexagon.A2.addh.h16.sat.hh",
  "llvm.hexagon.A2.addh.h16.sat.hl",
  "llvm.hexagon.A2.addh.h16.sat.lh",
  "llvm.hexagon.A2.addh.h16.sat.ll",
  "llvm.hexagon.A2.addh.l16.hl",
  "llvm.hexagon.A2.addh.l16.ll",
  "llvm.hexagon.A2.addh.l16.sat.hl",
  "llvm.hexagon.A2.addh.l16.sat.ll",
  "llvm.hexagon.A2.addi",
  "llvm.hexagon.A2.addp",
  "llvm.hexagon.A2.addpsat",
  "llvm.hexagon.A2.addsat",
  "llvm.hexagon.A2.addsp",
  "llvm.hexagon.A2.and",
  "llvm.hexagon.A2.andir",
  "llvm.hexagon.A2.andp",
  "llvm.hexagon.A2.aslh",
  "llvm.hexagon.A2.asrh",
  "llvm.hexagon.A2.combine.hh",
  "llvm.hexagon.A2.combine.hl",
  "llvm.hexagon.A2.combine.lh",
  "llvm.hexagon.A2.combine.ll",
  "llvm.hexagon.A2.combineii",
  "llvm.hexagon.A2.combinew",
  "llvm.hexagon.A2.max",
  "llvm.hexagon.A2.maxp",
  "llvm.hexagon.A2.maxu",
  "llvm.hexagon.A2.maxup",
  "llvm.hexagon.A2.min",
  "llvm.hexagon.A2.minp",
  "llvm.hexagon.A2.minu",
  "llvm.hexagon.A2.minup",
  "llvm.hexagon.A2.neg",
  "llvm.hexagon.A2.negp",
  "llvm.hexagon.A2.negsat",
  "llvm.hexagon.A2.not",
  "llvm.hexagon.A2.notp",
  "llvm.hexagon.A2.or",
  "llvm.hexagon.A2.orir",
  "llvm.hexagon.A2.orp",
  "llvm.hexagon.A2.roundsat",
  "llvm.hexagon.A2.sat",
  "llvm.hexagon.A2.satb",
  "llvm.hexagon.A2.sath",
  "llvm.hexagon.A2.satub",
  "llvm.hexagon.A2.satuh",
  "llvm.hexagon.A2.sub",
  "llvm.hexagon.A2.subh.h16.hh",
  "llvm.hexagon.A2.subh.h16.hl",
  "llvm.hexagon.A2.subh.h16.lh",
  "llvm.hexagon.A2.subh.h16.ll",
  "llvm.hexagon.A2.subh.h16.sat.hh",
  "llvm.hexagon.A2.subh.h16.sat.hl",
  "llvm.hexagon.A2.subh.h16.sat.lh",
  "llvm.hexagon.A2.subh.h16.sat.ll",
  "llvm.hexagon.A2.subh.l16.hl",
  "llvm.hexagon.A2.subh.l16.ll",
  "llvm.hexagon.A2.subh.l16.sat.hl",
  "llvm.hexagon.A2.subh.l16.sat.ll",
  "llvm.hexagon.A2.subp",
  "llvm.hexagon.A2.subri",
  "llvm.hexagon.A2.subsat",
  "llvm.hexagon.A2.svaddh",
  "llvm.hexagon.A2.svaddhs",
  "llvm.hexagon.A2.svadduhs",
  "llvm.hexagon.A2.svavgh",
  "llvm.hexagon.A2.svavghs",
  "llvm.hexagon.A2.svnavgh",
  "llvm.hexagon.A2.svsubh",
  "llvm.hexagon.A2.svsubhs",
  "llvm.hexagon.A2.svsubuhs",
  "llvm.hexagon.A2.swiz",
  "llvm.hexagon.A2.sxtb",
  "llvm.hexagon.A2.sxth",
  "llvm.hexagon.A2.sxtw",
  "llvm.hexagon.A2.tfr",
  "llvm.hexagon.A2.tfrih",
  "llvm.hexagon.A2.tfril",
  "llvm.hexagon.A2.tfrp",
  "llvm.hexagon.A2.tfrpi",
  "llvm.hexagon.A2.tfrsi",
  "llvm.hexagon.A2.vabsh",
  "llvm.hexagon.A2.vabshsat",
  "llvm.hexagon.A2.vabsw",
  "llvm.hexagon.A2.vabswsat",
  "llvm.hexagon.A2.vaddb.map",
  "llvm.hexagon.A2.vaddh",
  "llvm.hexagon.A2.vaddhs",
  "llvm.hexagon.A2.vaddub",
  "llvm.hexagon.A2.vaddubs",
  "llvm.hexagon.A2.vadduhs",
  "llvm.hexagon.A2.vaddw",
  "llvm.hexagon.A2.vaddws",
  "llvm.hexagon.A2.vavgh",
  "llvm.hexagon.A2.vavghcr",
  "llvm.hexagon.A2.vavghr",
  "llvm.hexagon.A2.vavgub",
  "llvm.hexagon.A2.vavgubr",
  "llvm.hexagon.A2.vavguh",
  "llvm.hexagon.A2.vavguhr",
  "llvm.hexagon.A2.vavguw",
  "llvm.hexagon.A2.vavguwr",
  "llvm.hexagon.A2.vavgw",
  "llvm.hexagon.A2.vavgwcr",
  "llvm.hexagon.A2.vavgwr",
  "llvm.hexagon.A2.vcmpbeq",
  "llvm.hexagon.A2.vcmpbgtu",
  "llvm.hexagon.A2.vcmpheq",
  "llvm.hexagon.A2.vcmphgt",
  "llvm.hexagon.A2.vcmphgtu",
  "llvm.hexagon.A2.vcmpweq",
  "llvm.hexagon.A2.vcmpwgt",
  "llvm.hexagon.A2.vcmpwgtu",
  "llvm.hexagon.A2.vconj",
  "llvm.hexagon.A2.vmaxb",
  "llvm.hexagon.A2.vmaxh",
  "llvm.hexagon.A2.vmaxub",
  "llvm.hexagon.A2.vmaxuh",
  "llvm.hexagon.A2.vmaxuw",
  "llvm.hexagon.A2.vmaxw",
  "llvm.hexagon.A2.vminb",
  "llvm.hexagon.A2.vminh",
  "llvm.hexagon.A2.vminub",
  "llvm.hexagon.A2.vminuh",
  "llvm.hexagon.A2.vminuw",
  "llvm.hexagon.A2.vminw",
  "llvm.hexagon.A2.vnavgh",
  "llvm.hexagon.A2.vnavghcr",
  "llvm.hexagon.A2.vnavghr",
  "llvm.hexagon.A2.vnavgw",
  "llvm.hexagon.A2.vnavgwcr",
  "llvm.hexagon.A2.vnavgwr",
  "llvm.hexagon.A2.vraddub",
  "llvm.hexagon.A2.vraddub.acc",
  "llvm.hexagon.A2.vrsadub",
  "llvm.hexagon.A2.vrsadub.acc",
  "llvm.hexagon.A2.vsubb.map",
  "llvm.hexagon.A2.vsubh",
  "llvm.hexagon.A2.vsubhs",
  "llvm.hexagon.A2.vsubub",
  "llvm.hexagon.A2.vsububs",
  "llvm.hexagon.A2.vsubuhs",
  "llvm.hexagon.A2.vsubw",
  "llvm.hexagon.A2.vsubws",
  "llvm.hexagon.A2.xor",
  "llvm.hexagon.A2.xorp",
  "llvm.hexagon.A2.zxtb",
  "llvm.hexagon.A2.zxth",
  "llvm.hexagon.A4.andn",
  "llvm.hexagon.A4.andnp",
  "llvm.hexagon.A4.bitsplit",
  "llvm.hexagon.A4.bitspliti",
  "llvm.hexagon.A4.boundscheck",
  "llvm.hexagon.A4.cmpbeq",
  "llvm.hexagon.A4.cmpbeqi",
  "llvm.hexagon.A4.cmpbgt",
  "llvm.hexagon.A4.cmpbgti",
  "llvm.hexagon.A4.cmpbgtu",
  "llvm.hexagon.A4.cmpbgtui",
  "llvm.hexagon.A4.cmpheq",
  "llvm.hexagon.A4.cmpheqi",
  "llvm.hexagon.A4.cmphgt",
  "llvm.hexagon.A4.cmphgti",
  "llvm.hexagon.A4.cmphgtu",
  "llvm.hexagon.A4.cmphgtui",
  "llvm.hexagon.A4.combineir",
  "llvm.hexagon.A4.combineri",
  "llvm.hexagon.A4.cround.ri",
  "llvm.hexagon.A4.cround.rr",
  "llvm.hexagon.A4.modwrapu",
  "llvm.hexagon.A4.orn",
  "llvm.hexagon.A4.ornp",
  "llvm.hexagon.A4.rcmpeq",
  "llvm.hexagon.A4.rcmpeqi",
  "llvm.hexagon.A4.rcmpneq",
  "llvm.hexagon.A4.rcmpneqi",
  "llvm.hexagon.A4.round.ri",
  "llvm.hexagon.A4.round.ri.sat",
  "llvm.hexagon.A4.round.rr",
  "llvm.hexagon.A4.round.rr.sat",
  "llvm.hexagon.A4.tlbmatch",
  "llvm.hexagon.A4.vcmpbeq.any",
  "llvm.hexagon.A4.vcmpbeqi",
  "llvm.hexagon.A4.vcmpbgt",
  "llvm.hexagon.A4.vcmpbgti",
  "llvm.hexagon.A4.vcmpbgtui",
  "llvm.hexagon.A4.vcmpheqi",
  "llvm.hexagon.A4.vcmphgti",
  "llvm.hexagon.A4.vcmphgtui",
  "llvm.hexagon.A4.vcmpweqi",
  "llvm.hexagon.A4.vcmpwgti",
  "llvm.hexagon.A4.vcmpwgtui",
  "llvm.hexagon.A4.vrmaxh",
  "llvm.hexagon.A4.vrmaxuh",
  "llvm.hexagon.A4.vrmaxuw",
  "llvm.hexagon.A4.vrmaxw",
  "llvm.hexagon.A4.vrminh",
  "llvm.hexagon.A4.vrminuh",
  "llvm.hexagon.A4.vrminuw",
  "llvm.hexagon.A4.vrminw",
  "llvm.hexagon.A5.vaddhubs",
  "llvm.hexagon.C2.all8",
  "llvm.hexagon.C2.and",
  "llvm.hexagon.C2.andn",
  "llvm.hexagon.C2.any8",
  "llvm.hexagon.C2.bitsclr",
  "llvm.hexagon.C2.bitsclri",
  "llvm.hexagon.C2.bitsset",
  "llvm.hexagon.C2.cmpeq",
  "llvm.hexagon.C2.cmpeqi",
  "llvm.hexagon.C2.cmpeqp",
  "llvm.hexagon.C2.cmpgei",
  "llvm.hexagon.C2.cmpgeui",
  "llvm.hexagon.C2.cmpgt",
  "llvm.hexagon.C2.cmpgti",
  "llvm.hexagon.C2.cmpgtp",
  "llvm.hexagon.C2.cmpgtu",
  "llvm.hexagon.C2.cmpgtui",
  "llvm.hexagon.C2.cmpgtup",
  "llvm.hexagon.C2.cmplt",
  "llvm.hexagon.C2.cmpltu",
  "llvm.hexagon.C2.mask",
  "llvm.hexagon.C2.mux",
  "llvm.hexagon.C2.muxii",
  "llvm.hexagon.C2.muxir",
  "llvm.hexagon.C2.muxri",
  "llvm.hexagon.C2.not",
  "llvm.hexagon.C2.or",
  "llvm.hexagon.C2.orn",
  "llvm.hexagon.C2.pxfer.map",
  "llvm.hexagon.C2.tfrpr",
  "llvm.hexagon.C2.tfrrp",
  "llvm.hexagon.C2.vitpack",
  "llvm.hexagon.C2.vmux",
  "llvm.hexagon.C2.xor",
  "llvm.hexagon.C4.and.and",
  "llvm.hexagon.C4.and.andn",
  "llvm.hexagon.C4.and.or",
  "llvm.hexagon.C4.and.orn",
  "llvm.hexagon.C4.cmplte",
  "llvm.hexagon.C4.cmpltei",
  "llvm.hexagon.C4.cmplteu",
  "llvm.hexagon.C4.cmplteui",
  "llvm.hexagon.C4.cmpneq",
  "llvm.hexagon.C4.cmpneqi",
  "llvm.hexagon.C4.fastcorner9",
  "llvm.hexagon.C4.fastcorner9.not",
  "llvm.hexagon.C4.nbitsclr",
  "llvm.hexagon.C4.nbitsclri",
  "llvm.hexagon.C4.nbitsset",
  "llvm.hexagon.C4.or.and",
  "llvm.hexagon.C4.or.andn",
  "llvm.hexagon.C4.or.or",
  "llvm.hexagon.C4.or.orn",
  "llvm.hexagon.F2.conv.d2df",
  "llvm.hexagon.F2.conv.d2sf",
  "llvm.hexagon.F2.conv.df2d",
  "llvm.hexagon.F2.conv.df2d.chop",
  "llvm.hexagon.F2.conv.df2sf",
  "llvm.hexagon.F2.conv.df2ud",
  "llvm.hexagon.F2.conv.df2ud.chop",
  "llvm.hexagon.F2.conv.df2uw",
  "llvm.hexagon.F2.conv.df2uw.chop",
  "llvm.hexagon.F2.conv.df2w",
  "llvm.hexagon.F2.conv.df2w.chop",
  "llvm.hexagon.F2.conv.sf2d",
  "llvm.hexagon.F2.conv.sf2d.chop",
  "llvm.hexagon.F2.conv.sf2df",
  "llvm.hexagon.F2.conv.sf2ud",
  "llvm.hexagon.F2.conv.sf2ud.chop",
  "llvm.hexagon.F2.conv.sf2uw",
  "llvm.hexagon.F2.conv.sf2uw.chop",
  "llvm.hexagon.F2.conv.sf2w",
  "llvm.hexagon.F2.conv.sf2w.chop",
  "llvm.hexagon.F2.conv.ud2df",
  "llvm.hexagon.F2.conv.ud2sf",
  "llvm.hexagon.F2.conv.uw2df",
  "llvm.hexagon.F2.conv.uw2sf",
  "llvm.hexagon.F2.conv.w2df",
  "llvm.hexagon.F2.conv.w2sf",
  "llvm.hexagon.F2.dfadd",
  "llvm.hexagon.F2.dfclass",
  "llvm.hexagon.F2.dfcmpeq",
  "llvm.hexagon.F2.dfcmpge",
  "llvm.hexagon.F2.dfcmpgt",
  "llvm.hexagon.F2.dfcmpuo",
  "llvm.hexagon.F2.dffixupd",
  "llvm.hexagon.F2.dffixupn",
  "llvm.hexagon.F2.dffixupr",
  "llvm.hexagon.F2.dffma",
  "llvm.hexagon.F2.dffma.lib",
  "llvm.hexagon.F2.dffma.sc",
  "llvm.hexagon.F2.dffms",
  "llvm.hexagon.F2.dffms.lib",
  "llvm.hexagon.F2.dfimm.n",
  "llvm.hexagon.F2.dfimm.p",
  "llvm.hexagon.F2.dfmax",
  "llvm.hexagon.F2.dfmin",
  "llvm.hexagon.F2.dfmpy",
  "llvm.hexagon.F2.dfsub",
  "llvm.hexagon.F2.sfadd",
  "llvm.hexagon.F2.sfclass",
  "llvm.hexagon.F2.sfcmpeq",
  "llvm.hexagon.F2.sfcmpge",
  "llvm.hexagon.F2.sfcmpgt",
  "llvm.hexagon.F2.sfcmpuo",
  "llvm.hexagon.F2.sffixupd",
  "llvm.hexagon.F2.sffixupn",
  "llvm.hexagon.F2.sffixupr",
  "llvm.hexagon.F2.sffma",
  "llvm.hexagon.F2.sffma.lib",
  "llvm.hexagon.F2.sffma.sc",
  "llvm.hexagon.F2.sffms",
  "llvm.hexagon.F2.sffms.lib",
  "llvm.hexagon.F2.sfimm.n",
  "llvm.hexagon.F2.sfimm.p",
  "llvm.hexagon.F2.sfmax",
  "llvm.hexagon.F2.sfmin",
  "llvm.hexagon.F2.sfmpy",
  "llvm.hexagon.F2.sfsub",
  "llvm.hexagon.M2.acci",
  "llvm.hexagon.M2.accii",
  "llvm.hexagon.M2.cmaci.s0",
  "llvm.hexagon.M2.cmacr.s0",
  "llvm.hexagon.M2.cmacs.s0",
  "llvm.hexagon.M2.cmacs.s1",
  "llvm.hexagon.M2.cmacsc.s0",
  "llvm.hexagon.M2.cmacsc.s1",
  "llvm.hexagon.M2.cmpyi.s0",
  "llvm.hexagon.M2.cmpyr.s0",
  "llvm.hexagon.M2.cmpyrs.s0",
  "llvm.hexagon.M2.cmpyrs.s1",
  "llvm.hexagon.M2.cmpyrsc.s0",
  "llvm.hexagon.M2.cmpyrsc.s1",
  "llvm.hexagon.M2.cmpys.s0",
  "llvm.hexagon.M2.cmpys.s1",
  "llvm.hexagon.M2.cmpysc.s0",
  "llvm.hexagon.M2.cmpysc.s1",
  "llvm.hexagon.M2.cnacs.s0",
  "llvm.hexagon.M2.cnacs.s1",
  "llvm.hexagon.M2.cnacsc.s0",
  "llvm.hexagon.M2.cnacsc.s1",
  "llvm.hexagon.M2.dpmpyss.acc.s0",
  "llvm.hexagon.M2.dpmpyss.nac.s0",
  "llvm.hexagon.M2.dpmpyss.rnd.s0",
  "llvm.hexagon.M2.dpmpyss.s0",
  "llvm.hexagon.M2.dpmpyuu.acc.s0",
  "llvm.hexagon.M2.dpmpyuu.nac.s0",
  "llvm.hexagon.M2.dpmpyuu.s0",
  "llvm.hexagon.M2.hmmpyh.rs1",
  "llvm.hexagon.M2.hmmpyh.s1",
  "llvm.hexagon.M2.hmmpyl.rs1",
  "llvm.hexagon.M2.hmmpyl.s1",
  "llvm.hexagon.M2.maci",
  "llvm.hexagon.M2.macsin",
  "llvm.hexagon.M2.macsip",
  "llvm.hexagon.M2.mmachs.rs0",
  "llvm.hexagon.M2.mmachs.rs1",
  "llvm.hexagon.M2.mmachs.s0",
  "llvm.hexagon.M2.mmachs.s1",
  "llvm.hexagon.M2.mmacls.rs0",
  "llvm.hexagon.M2.mmacls.rs1",
  "llvm.hexagon.M2.mmacls.s0",
  "llvm.hexagon.M2.mmacls.s1",
  "llvm.hexagon.M2.mmacuhs.rs0",
  "llvm.hexagon.M2.mmacuhs.rs1",
  "llvm.hexagon.M2.mmacuhs.s0",
  "llvm.hexagon.M2.mmacuhs.s1",
  "llvm.hexagon.M2.mmaculs.rs0",
  "llvm.hexagon.M2.mmaculs.rs1",
  "llvm.hexagon.M2.mmaculs.s0",
  "llvm.hexagon.M2.mmaculs.s1",
  "llvm.hexagon.M2.mmpyh.rs0",
  "llvm.hexagon.M2.mmpyh.rs1",
  "llvm.hexagon.M2.mmpyh.s0",
  "llvm.hexagon.M2.mmpyh.s1",
  "llvm.hexagon.M2.mmpyl.rs0",
  "llvm.hexagon.M2.mmpyl.rs1",
  "llvm.hexagon.M2.mmpyl.s0",
  "llvm.hexagon.M2.mmpyl.s1",
  "llvm.hexagon.M2.mmpyuh.rs0",
  "llvm.hexagon.M2.mmpyuh.rs1",
  "llvm.hexagon.M2.mmpyuh.s0",
  "llvm.hexagon.M2.mmpyuh.s1",
  "llvm.hexagon.M2.mmpyul.rs0",
  "llvm.hexagon.M2.mmpyul.rs1",
  "llvm.hexagon.M2.mmpyul.s0",
  "llvm.hexagon.M2.mmpyul.s1",
  "llvm.hexagon.M2.mpy.acc.hh.s0",
  "llvm.hexagon.M2.mpy.acc.hh.s1",
  "llvm.hexagon.M2.mpy.acc.hl.s0",
  "llvm.hexagon.M2.mpy.acc.hl.s1",
  "llvm.hexagon.M2.mpy.acc.lh.s0",
  "llvm.hexagon.M2.mpy.acc.lh.s1",
  "llvm.hexagon.M2.mpy.acc.ll.s0",
  "llvm.hexagon.M2.mpy.acc.ll.s1",
  "llvm.hexagon.M2.mpy.acc.sat.hh.s0",
  "llvm.hexagon.M2.mpy.acc.sat.hh.s1",
  "llvm.hexagon.M2.mpy.acc.sat.hl.s0",
  "llvm.hexagon.M2.mpy.acc.sat.hl.s1",
  "llvm.hexagon.M2.mpy.acc.sat.lh.s0",
  "llvm.hexagon.M2.mpy.acc.sat.lh.s1",
  "llvm.hexagon.M2.mpy.acc.sat.ll.s0",
  "llvm.hexagon.M2.mpy.acc.sat.ll.s1",
  "llvm.hexagon.M2.mpy.hh.s0",
  "llvm.hexagon.M2.mpy.hh.s1",
  "llvm.hexagon.M2.mpy.hl.s0",
  "llvm.hexagon.M2.mpy.hl.s1",
  "llvm.hexagon.M2.mpy.lh.s0",
  "llvm.hexagon.M2.mpy.lh.s1",
  "llvm.hexagon.M2.mpy.ll.s0",
  "llvm.hexagon.M2.mpy.ll.s1",
  "llvm.hexagon.M2.mpy.nac.hh.s0",
  "llvm.hexagon.M2.mpy.nac.hh.s1",
  "llvm.hexagon.M2.mpy.nac.hl.s0",
  "llvm.hexagon.M2.mpy.nac.hl.s1",
  "llvm.hexagon.M2.mpy.nac.lh.s0",
  "llvm.hexagon.M2.mpy.nac.lh.s1",
  "llvm.hexagon.M2.mpy.nac.ll.s0",
  "llvm.hexagon.M2.mpy.nac.ll.s1",
  "llvm.hexagon.M2.mpy.nac.sat.hh.s0",
  "llvm.hexagon.M2.mpy.nac.sat.hh.s1",
  "llvm.hexagon.M2.mpy.nac.sat.hl.s0",
  "llvm.hexagon.M2.mpy.nac.sat.hl.s1",
  "llvm.hexagon.M2.mpy.nac.sat.lh.s0",
  "llvm.hexagon.M2.mpy.nac.sat.lh.s1",
  "llvm.hexagon.M2.mpy.nac.sat.ll.s0",
  "llvm.hexagon.M2.mpy.nac.sat.ll.s1",
  "llvm.hexagon.M2.mpy.rnd.hh.s0",
  "llvm.hexagon.M2.mpy.rnd.hh.s1",
  "llvm.hexagon.M2.mpy.rnd.hl.s0",
  "llvm.hexagon.M2.mpy.rnd.hl.s1",
  "llvm.hexagon.M2.mpy.rnd.lh.s0",
  "llvm.hexagon.M2.mpy.rnd.lh.s1",
  "llvm.hexagon.M2.mpy.rnd.ll.s0",
  "llvm.hexagon.M2.mpy.rnd.ll.s1",
  "llvm.hexagon.M2.mpy.sat.hh.s0",
  "llvm.hexagon.M2.mpy.sat.hh.s1",
  "llvm.hexagon.M2.mpy.sat.hl.s0",
  "llvm.hexagon.M2.mpy.sat.hl.s1",
  "llvm.hexagon.M2.mpy.sat.lh.s0",
  "llvm.hexagon.M2.mpy.sat.lh.s1",
  "llvm.hexagon.M2.mpy.sat.ll.s0",
  "llvm.hexagon.M2.mpy.sat.ll.s1",
  "llvm.hexagon.M2.mpy.sat.rnd.hh.s0",
  "llvm.hexagon.M2.mpy.sat.rnd.hh.s1",
  "llvm.hexagon.M2.mpy.sat.rnd.hl.s0",
  "llvm.hexagon.M2.mpy.sat.rnd.hl.s1",
  "llvm.hexagon.M2.mpy.sat.rnd.lh.s0",
  "llvm.hexagon.M2.mpy.sat.rnd.lh.s1",
  "llvm.hexagon.M2.mpy.sat.rnd.ll.s0",
  "llvm.hexagon.M2.mpy.sat.rnd.ll.s1",
  "llvm.hexagon.M2.mpy.up",
  "llvm.hexagon.M2.mpy.up.s1",
  "llvm.hexagon.M2.mpy.up.s1.sat",
  "llvm.hexagon.M2.mpyd.acc.hh.s0",
  "llvm.hexagon.M2.mpyd.acc.hh.s1",
  "llvm.hexagon.M2.mpyd.acc.hl.s0",
  "llvm.hexagon.M2.mpyd.acc.hl.s1",
  "llvm.hexagon.M2.mpyd.acc.lh.s0",
  "llvm.hexagon.M2.mpyd.acc.lh.s1",
  "llvm.hexagon.M2.mpyd.acc.ll.s0",
  "llvm.hexagon.M2.mpyd.acc.ll.s1",
  "llvm.hexagon.M2.mpyd.hh.s0",
  "llvm.hexagon.M2.mpyd.hh.s1",
  "llvm.hexagon.M2.mpyd.hl.s0",
  "llvm.hexagon.M2.mpyd.hl.s1",
  "llvm.hexagon.M2.mpyd.lh.s0",
  "llvm.hexagon.M2.mpyd.lh.s1",
  "llvm.hexagon.M2.mpyd.ll.s0",
  "llvm.hexagon.M2.mpyd.ll.s1",
  "llvm.hexagon.M2.mpyd.nac.hh.s0",
  "llvm.hexagon.M2.mpyd.nac.hh.s1",
  "llvm.hexagon.M2.mpyd.nac.hl.s0",
  "llvm.hexagon.M2.mpyd.nac.hl.s1",
  "llvm.hexagon.M2.mpyd.nac.lh.s0",
  "llvm.hexagon.M2.mpyd.nac.lh.s1",
  "llvm.hexagon.M2.mpyd.nac.ll.s0",
  "llvm.hexagon.M2.mpyd.nac.ll.s1",
  "llvm.hexagon.M2.mpyd.rnd.hh.s0",
  "llvm.hexagon.M2.mpyd.rnd.hh.s1",
  "llvm.hexagon.M2.mpyd.rnd.hl.s0",
  "llvm.hexagon.M2.mpyd.rnd.hl.s1",
  "llvm.hexagon.M2.mpyd.rnd.lh.s0",
  "llvm.hexagon.M2.mpyd.rnd.lh.s1",
  "llvm.hexagon.M2.mpyd.rnd.ll.s0",
  "llvm.hexagon.M2.mpyd.rnd.ll.s1",
  "llvm.hexagon.M2.mpyi",
  "llvm.hexagon.M2.mpysmi",
  "llvm.hexagon.M2.mpysu.up",
  "llvm.hexagon.M2.mpyu.acc.hh.s0",
  "llvm.hexagon.M2.mpyu.acc.hh.s1",
  "llvm.hexagon.M2.mpyu.acc.hl.s0",
  "llvm.hexagon.M2.mpyu.acc.hl.s1",
  "llvm.hexagon.M2.mpyu.acc.lh.s0",
  "llvm.hexagon.M2.mpyu.acc.lh.s1",
  "llvm.hexagon.M2.mpyu.acc.ll.s0",
  "llvm.hexagon.M2.mpyu.acc.ll.s1",
  "llvm.hexagon.M2.mpyu.hh.s0",
  "llvm.hexagon.M2.mpyu.hh.s1",
  "llvm.hexagon.M2.mpyu.hl.s0",
  "llvm.hexagon.M2.mpyu.hl.s1",
  "llvm.hexagon.M2.mpyu.lh.s0",
  "llvm.hexagon.M2.mpyu.lh.s1",
  "llvm.hexagon.M2.mpyu.ll.s0",
  "llvm.hexagon.M2.mpyu.ll.s1",
  "llvm.hexagon.M2.mpyu.nac.hh.s0",
  "llvm.hexagon.M2.mpyu.nac.hh.s1",
  "llvm.hexagon.M2.mpyu.nac.hl.s0",
  "llvm.hexagon.M2.mpyu.nac.hl.s1",
  "llvm.hexagon.M2.mpyu.nac.lh.s0",
  "llvm.hexagon.M2.mpyu.nac.lh.s1",
  "llvm.hexagon.M2.mpyu.nac.ll.s0",
  "llvm.hexagon.M2.mpyu.nac.ll.s1",
  "llvm.hexagon.M2.mpyu.up",
  "llvm.hexagon.M2.mpyud.acc.hh.s0",
  "llvm.hexagon.M2.mpyud.acc.hh.s1",
  "llvm.hexagon.M2.mpyud.acc.hl.s0",
  "llvm.hexagon.M2.mpyud.acc.hl.s1",
  "llvm.hexagon.M2.mpyud.acc.lh.s0",
  "llvm.hexagon.M2.mpyud.acc.lh.s1",
  "llvm.hexagon.M2.mpyud.acc.ll.s0",
  "llvm.hexagon.M2.mpyud.acc.ll.s1",
  "llvm.hexagon.M2.mpyud.hh.s0",
  "llvm.hexagon.M2.mpyud.hh.s1",
  "llvm.hexagon.M2.mpyud.hl.s0",
  "llvm.hexagon.M2.mpyud.hl.s1",
  "llvm.hexagon.M2.mpyud.lh.s0",
  "llvm.hexagon.M2.mpyud.lh.s1",
  "llvm.hexagon.M2.mpyud.ll.s0",
  "llvm.hexagon.M2.mpyud.ll.s1",
  "llvm.hexagon.M2.mpyud.nac.hh.s0",
  "llvm.hexagon.M2.mpyud.nac.hh.s1",
  "llvm.hexagon.M2.mpyud.nac.hl.s0",
  "llvm.hexagon.M2.mpyud.nac.hl.s1",
  "llvm.hexagon.M2.mpyud.nac.lh.s0",
  "llvm.hexagon.M2.mpyud.nac.lh.s1",
  "llvm.hexagon.M2.mpyud.nac.ll.s0",
  "llvm.hexagon.M2.mpyud.nac.ll.s1",
  "llvm.hexagon.M2.mpyui",
  "llvm.hexagon.M2.nacci",
  "llvm.hexagon.M2.naccii",
  "llvm.hexagon.M2.subacc",
  "llvm.hexagon.M2.vabsdiffh",
  "llvm.hexagon.M2.vabsdiffw",
  "llvm.hexagon.M2.vcmac.s0.sat.i",
  "llvm.hexagon.M2.vcmac.s0.sat.r",
  "llvm.hexagon.M2.vcmpy.s0.sat.i",
  "llvm.hexagon.M2.vcmpy.s0.sat.r",
  "llvm.hexagon.M2.vcmpy.s1.sat.i",
  "llvm.hexagon.M2.vcmpy.s1.sat.r",
  "llvm.hexagon.M2.vdmacs.s0",
  "llvm.hexagon.M2.vdmacs.s1",
  "llvm.hexagon.M2.vdmpyrs.s0",
  "llvm.hexagon.M2.vdmpyrs.s1",
  "llvm.hexagon.M2.vdmpys.s0",
  "llvm.hexagon.M2.vdmpys.s1",
  "llvm.hexagon.M2.vmac2",
  "llvm.hexagon.M2.vmac2es",
  "llvm.hexagon.M2.vmac2es.s0",
  "llvm.hexagon.M2.vmac2es.s1",
  "llvm.hexagon.M2.vmac2s.s0",
  "llvm.hexagon.M2.vmac2s.s1",
  "llvm.hexagon.M2.vmac2su.s0",
  "llvm.hexagon.M2.vmac2su.s1",
  "llvm.hexagon.M2.vmpy2es.s0",
  "llvm.hexagon.M2.vmpy2es.s1",
  "llvm.hexagon.M2.vmpy2s.s0",
  "llvm.hexagon.M2.vmpy2s.s0pack",
  "llvm.hexagon.M2.vmpy2s.s1",
  "llvm.hexagon.M2.vmpy2s.s1pack",
  "llvm.hexagon.M2.vmpy2su.s0",
  "llvm.hexagon.M2.vmpy2su.s1",
  "llvm.hexagon.M2.vraddh",
  "llvm.hexagon.M2.vradduh",
  "llvm.hexagon.M2.vrcmaci.s0",
  "llvm.hexagon.M2.vrcmaci.s0c",
  "llvm.hexagon.M2.vrcmacr.s0",
  "llvm.hexagon.M2.vrcmacr.s0c",
  "llvm.hexagon.M2.vrcmpyi.s0",
  "llvm.hexagon.M2.vrcmpyi.s0c",
  "llvm.hexagon.M2.vrcmpyr.s0",
  "llvm.hexagon.M2.vrcmpyr.s0c",
  "llvm.hexagon.M2.vrcmpys.acc.s1",
  "llvm.hexagon.M2.vrcmpys.s1",
  "llvm.hexagon.M2.vrcmpys.s1rp",
  "llvm.hexagon.M2.vrmac.s0",
  "llvm.hexagon.M2.vrmpy.s0",
  "llvm.hexagon.M2.xor.xacc",
  "llvm.hexagon.M4.and.and",
  "llvm.hexagon.M4.and.andn",
  "llvm.hexagon.M4.and.or",
  "llvm.hexagon.M4.and.xor",
  "llvm.hexagon.M4.cmpyi.wh",
  "llvm.hexagon.M4.cmpyi.whc",
  "llvm.hexagon.M4.cmpyr.wh",
  "llvm.hexagon.M4.cmpyr.whc",
  "llvm.hexagon.M4.mac.up.s1.sat",
  "llvm.hexagon.M4.mpyri.addi",
  "llvm.hexagon.M4.mpyri.addr",
  "llvm.hexagon.M4.mpyri.addr.u2",
  "llvm.hexagon.M4.mpyrr.addi",
  "llvm.hexagon.M4.mpyrr.addr",
  "llvm.hexagon.M4.nac.up.s1.sat",
  "llvm.hexagon.M4.or.and",
  "llvm.hexagon.M4.or.andn",
  "llvm.hexagon.M4.or.or",
  "llvm.hexagon.M4.or.xor",
  "llvm.hexagon.M4.pmpyw",
  "llvm.hexagon.M4.pmpyw.acc",
  "llvm.hexagon.M4.vpmpyh",
  "llvm.hexagon.M4.vpmpyh.acc",
  "llvm.hexagon.M4.vrmpyeh.acc.s0",
  "llvm.hexagon.M4.vrmpyeh.acc.s1",
  "llvm.hexagon.M4.vrmpyeh.s0",
  "llvm.hexagon.M4.vrmpyeh.s1",
  "llvm.hexagon.M4.vrmpyoh.acc.s0",
  "llvm.hexagon.M4.vrmpyoh.acc.s1",
  "llvm.hexagon.M4.vrmpyoh.s0",
  "llvm.hexagon.M4.vrmpyoh.s1",
  "llvm.hexagon.M4.xor.and",
  "llvm.hexagon.M4.xor.andn",
  "llvm.hexagon.M4.xor.or",
  "llvm.hexagon.M4.xor.xacc",
  "llvm.hexagon.M5.vdmacbsu",
  "llvm.hexagon.M5.vdmpybsu",
  "llvm.hexagon.M5.vmacbsu",
  "llvm.hexagon.M5.vmacbuu",
  "llvm.hexagon.M5.vmpybsu",
  "llvm.hexagon.M5.vmpybuu",
  "llvm.hexagon.M5.vrmacbsu",
  "llvm.hexagon.M5.vrmacbuu",
  "llvm.hexagon.M5.vrmpybsu",
  "llvm.hexagon.M5.vrmpybuu",
  "llvm.hexagon.S2.addasl.rrri",
  "llvm.hexagon.S2.asl.i.p",
  "llvm.hexagon.S2.asl.i.p.acc",
  "llvm.hexagon.S2.asl.i.p.and",
  "llvm.hexagon.S2.asl.i.p.nac",
  "llvm.hexagon.S2.asl.i.p.or",
  "llvm.hexagon.S2.asl.i.p.xacc",
  "llvm.hexagon.S2.asl.i.r",
  "llvm.hexagon.S2.asl.i.r.acc",
  "llvm.hexagon.S2.asl.i.r.and",
  "llvm.hexagon.S2.asl.i.r.nac",
  "llvm.hexagon.S2.asl.i.r.or",
  "llvm.hexagon.S2.asl.i.r.sat",
  "llvm.hexagon.S2.asl.i.r.xacc",
  "llvm.hexagon.S2.asl.i.vh",
  "llvm.hexagon.S2.asl.i.vw",
  "llvm.hexagon.S2.asl.r.p",
  "llvm.hexagon.S2.asl.r.p.acc",
  "llvm.hexagon.S2.asl.r.p.and",
  "llvm.hexagon.S2.asl.r.p.nac",
  "llvm.hexagon.S2.asl.r.p.or",
  "llvm.hexagon.S2.asl.r.p.xor",
  "llvm.hexagon.S2.asl.r.r",
  "llvm.hexagon.S2.asl.r.r.acc",
  "llvm.hexagon.S2.asl.r.r.and",
  "llvm.hexagon.S2.asl.r.r.nac",
  "llvm.hexagon.S2.asl.r.r.or",
  "llvm.hexagon.S2.asl.r.r.sat",
  "llvm.hexagon.S2.asl.r.vh",
  "llvm.hexagon.S2.asl.r.vw",
  "llvm.hexagon.S2.asr.i.p",
  "llvm.hexagon.S2.asr.i.p.acc",
  "llvm.hexagon.S2.asr.i.p.and",
  "llvm.hexagon.S2.asr.i.p.nac",
  "llvm.hexagon.S2.asr.i.p.or",
  "llvm.hexagon.S2.asr.i.p.rnd",
  "llvm.hexagon.S2.asr.i.p.rnd.goodsyntax",
  "llvm.hexagon.S2.asr.i.r",
  "llvm.hexagon.S2.asr.i.r.acc",
  "llvm.hexagon.S2.asr.i.r.and",
  "llvm.hexagon.S2.asr.i.r.nac",
  "llvm.hexagon.S2.asr.i.r.or",
  "llvm.hexagon.S2.asr.i.r.rnd",
  "llvm.hexagon.S2.asr.i.r.rnd.goodsyntax",
  "llvm.hexagon.S2.asr.i.svw.trun",
  "llvm.hexagon.S2.asr.i.vh",
  "llvm.hexagon.S2.asr.i.vw",
  "llvm.hexagon.S2.asr.r.p",
  "llvm.hexagon.S2.asr.r.p.acc",
  "llvm.hexagon.S2.asr.r.p.and",
  "llvm.hexagon.S2.asr.r.p.nac",
  "llvm.hexagon.S2.asr.r.p.or",
  "llvm.hexagon.S2.asr.r.p.xor",
  "llvm.hexagon.S2.asr.r.r",
  "llvm.hexagon.S2.asr.r.r.acc",
  "llvm.hexagon.S2.asr.r.r.and",
  "llvm.hexagon.S2.asr.r.r.nac",
  "llvm.hexagon.S2.asr.r.r.or",
  "llvm.hexagon.S2.asr.r.r.sat",
  "llvm.hexagon.S2.asr.r.svw.trun",
  "llvm.hexagon.S2.asr.r.vh",
  "llvm.hexagon.S2.asr.r.vw",
  "llvm.hexagon.S2.brev",
  "llvm.hexagon.S2.brevp",
  "llvm.hexagon.S2.cl0",
  "llvm.hexagon.S2.cl0p",
  "llvm.hexagon.S2.cl1",
  "llvm.hexagon.S2.cl1p",
  "llvm.hexagon.S2.clb",
  "llvm.hexagon.S2.clbnorm",
  "llvm.hexagon.S2.clbp",
  "llvm.hexagon.S2.clrbit.i",
  "llvm.hexagon.S2.clrbit.r",
  "llvm.hexagon.S2.ct0",
  "llvm.hexagon.S2.ct0p",
  "llvm.hexagon.S2.ct1",
  "llvm.hexagon.S2.ct1p",
  "llvm.hexagon.S2.deinterleave",
  "llvm.hexagon.S2.extractu",
  "llvm.hexagon.S2.extractu.rp",
  "llvm.hexagon.S2.extractup",
  "llvm.hexagon.S2.extractup.rp",
  "llvm.hexagon.S2.insert",
  "llvm.hexagon.S2.insert.rp",
  "llvm.hexagon.S2.insertp",
  "llvm.hexagon.S2.insertp.rp",
  "llvm.hexagon.S2.interleave",
  "llvm.hexagon.S2.lfsp",
  "llvm.hexagon.S2.lsl.r.p",
  "llvm.hexagon.S2.lsl.r.p.acc",
  "llvm.hexagon.S2.lsl.r.p.and",
  "llvm.hexagon.S2.lsl.r.p.nac",
  "llvm.hexagon.S2.lsl.r.p.or",
  "llvm.hexagon.S2.lsl.r.p.xor",
  "llvm.hexagon.S2.lsl.r.r",
  "llvm.hexagon.S2.lsl.r.r.acc",
  "llvm.hexagon.S2.lsl.r.r.and",
  "llvm.hexagon.S2.lsl.r.r.nac",
  "llvm.hexagon.S2.lsl.r.r.or",
  "llvm.hexagon.S2.lsl.r.vh",
  "llvm.hexagon.S2.lsl.r.vw",
  "llvm.hexagon.S2.lsr.i.p",
  "llvm.hexagon.S2.lsr.i.p.acc",
  "llvm.hexagon.S2.lsr.i.p.and",
  "llvm.hexagon.S2.lsr.i.p.nac",
  "llvm.hexagon.S2.lsr.i.p.or",
  "llvm.hexagon.S2.lsr.i.p.xacc",
  "llvm.hexagon.S2.lsr.i.r",
  "llvm.hexagon.S2.lsr.i.r.acc",
  "llvm.hexagon.S2.lsr.i.r.and",
  "llvm.hexagon.S2.lsr.i.r.nac",
  "llvm.hexagon.S2.lsr.i.r.or",
  "llvm.hexagon.S2.lsr.i.r.xacc",
  "llvm.hexagon.S2.lsr.i.vh",
  "llvm.hexagon.S2.lsr.i.vw",
  "llvm.hexagon.S2.lsr.r.p",
  "llvm.hexagon.S2.lsr.r.p.acc",
  "llvm.hexagon.S2.lsr.r.p.and",
  "llvm.hexagon.S2.lsr.r.p.nac",
  "llvm.hexagon.S2.lsr.r.p.or",
  "llvm.hexagon.S2.lsr.r.p.xor",
  "llvm.hexagon.S2.lsr.r.r",
  "llvm.hexagon.S2.lsr.r.r.acc",
  "llvm.hexagon.S2.lsr.r.r.and",
  "llvm.hexagon.S2.lsr.r.r.nac",
  "llvm.hexagon.S2.lsr.r.r.or",
  "llvm.hexagon.S2.lsr.r.vh",
  "llvm.hexagon.S2.lsr.r.vw",
  "llvm.hexagon.S2.packhl",
  "llvm.hexagon.S2.parityp",
  "llvm.hexagon.S2.setbit.i",
  "llvm.hexagon.S2.setbit.r",
  "llvm.hexagon.S2.shuffeb",
  "llvm.hexagon.S2.shuffeh",
  "llvm.hexagon.S2.shuffob",
  "llvm.hexagon.S2.shuffoh",
  "llvm.hexagon.S2.svsathb",
  "llvm.hexagon.S2.svsathub",
  "llvm.hexagon.S2.tableidxb.goodsyntax",
  "llvm.hexagon.S2.tableidxd.goodsyntax",
  "llvm.hexagon.S2.tableidxh.goodsyntax",
  "llvm.hexagon.S2.tableidxw.goodsyntax",
  "llvm.hexagon.S2.togglebit.i",
  "llvm.hexagon.S2.togglebit.r",
  "llvm.hexagon.S2.tstbit.i",
  "llvm.hexagon.S2.tstbit.r",
  "llvm.hexagon.S2.valignib",
  "llvm.hexagon.S2.valignrb",
  "llvm.hexagon.S2.vcnegh",
  "llvm.hexagon.S2.vcrotate",
  "llvm.hexagon.S2.vrcnegh",
  "llvm.hexagon.S2.vrndpackwh",
  "llvm.hexagon.S2.vrndpackwhs",
  "llvm.hexagon.S2.vsathb",
  "llvm.hexagon.S2.vsathb.nopack",
  "llvm.hexagon.S2.vsathub",
  "llvm.hexagon.S2.vsathub.nopack",
  "llvm.hexagon.S2.vsatwh",
  "llvm.hexagon.S2.vsatwh.nopack",
  "llvm.hexagon.S2.vsatwuh",
  "llvm.hexagon.S2.vsatwuh.nopack",
  "llvm.hexagon.S2.vsplatrb",
  "llvm.hexagon.S2.vsplatrh",
  "llvm.hexagon.S2.vspliceib",
  "llvm.hexagon.S2.vsplicerb",
  "llvm.hexagon.S2.vsxtbh",
  "llvm.hexagon.S2.vsxthw",
  "llvm.hexagon.S2.vtrunehb",
  "llvm.hexagon.S2.vtrunewh",
  "llvm.hexagon.S2.vtrunohb",
  "llvm.hexagon.S2.vtrunowh",
  "llvm.hexagon.S2.vzxtbh",
  "llvm.hexagon.S2.vzxthw",
  "llvm.hexagon.S4.addaddi",
  "llvm.hexagon.S4.addi.asl.ri",
  "llvm.hexagon.S4.addi.lsr.ri",
  "llvm.hexagon.S4.andi.asl.ri",
  "llvm.hexagon.S4.andi.lsr.ri",
  "llvm.hexagon.S4.clbaddi",
  "llvm.hexagon.S4.clbpaddi",
  "llvm.hexagon.S4.clbpnorm",
  "llvm.hexagon.S4.extract",
  "llvm.hexagon.S4.extract.rp",
  "llvm.hexagon.S4.extractp",
  "llvm.hexagon.S4.extractp.rp",
  "llvm.hexagon.S4.lsli",
  "llvm.hexagon.S4.ntstbit.i",
  "llvm.hexagon.S4.ntstbit.r",
  "llvm.hexagon.S4.or.andi",
  "llvm.hexagon.S4.or.andix",
  "llvm.hexagon.S4.or.ori",
  "llvm.hexagon.S4.ori.asl.ri",
  "llvm.hexagon.S4.ori.lsr.ri",
  "llvm.hexagon.S4.parity",
  "llvm.hexagon.S4.subaddi",
  "llvm.hexagon.S4.subi.asl.ri",
  "llvm.hexagon.S4.subi.lsr.ri",
  "llvm.hexagon.S4.vrcrotate",
  "llvm.hexagon.S4.vrcrotate.acc",
  "llvm.hexagon.S4.vxaddsubh",
  "llvm.hexagon.S4.vxaddsubhr",
  "llvm.hexagon.S4.vxaddsubw",
  "llvm.hexagon.S4.vxsubaddh",
  "llvm.hexagon.S4.vxsubaddhr",
  "llvm.hexagon.S4.vxsubaddw",
  "llvm.hexagon.S5.asrhub.rnd.sat.goodsyntax",
  "llvm.hexagon.S5.asrhub.sat",
  "llvm.hexagon.S5.popcountp",
  "llvm.hexagon.S5.vasrhrnd.goodsyntax",
  "llvm.hexagon.SI.to.SXTHI.asrh",
  "llvm.hexagon.circ.ldd",
  "llvm.init.trampoline",
  "llvm.invariant.end",
  "llvm.invariant.start",
  "llvm.lifetime.end",
  "llvm.lifetime.start",
  "llvm.log",
  "llvm.log10",
  "llvm.log2",
  "llvm.longjmp",
  "llvm.memcpy",
  "llvm.memmove",
  "llvm.memset",
  "llvm.mips.absq.s.ph",
  "llvm.mips.absq.s.qb",
  "llvm.mips.absq.s.w",
  "llvm.mips.addq.ph",
  "llvm.mips.addq.s.ph",
  "llvm.mips.addq.s.w",
  "llvm.mips.addqh.ph",
  "llvm.mips.addqh.r.ph",
  "llvm.mips.addqh.r.w",
  "llvm.mips.addqh.w",
  "llvm.mips.addsc",
  "llvm.mips.addu.ph",
  "llvm.mips.addu.qb",
  "llvm.mips.addu.s.ph",
  "llvm.mips.addu.s.qb",
  "llvm.mips.adduh.qb",
  "llvm.mips.adduh.r.qb",
  "llvm.mips.addwc",
  "llvm.mips.append",
  "llvm.mips.balign",
  "llvm.mips.bitrev",
  "llvm.mips.bposge32",
  "llvm.mips.cmp.eq.ph",
  "llvm.mips.cmp.le.ph",
  "llvm.mips.cmp.lt.ph",
  "llvm.mips.cmpgdu.eq.qb",
  "llvm.mips.cmpgdu.le.qb",
  "llvm.mips.cmpgdu.lt.qb",
  "llvm.mips.cmpgu.eq.qb",
  "llvm.mips.cmpgu.le.qb",
  "llvm.mips.cmpgu.lt.qb",
  "llvm.mips.cmpu.eq.qb",
  "llvm.mips.cmpu.le.qb",
  "llvm.mips.cmpu.lt.qb",
  "llvm.mips.dpa.w.ph",
  "llvm.mips.dpaq.s.w.ph",
  "llvm.mips.dpaq.sa.l.w",
  "llvm.mips.dpaqx.s.w.ph",
  "llvm.mips.dpaqx.sa.w.ph",
  "llvm.mips.dpau.h.qbl",
  "llvm.mips.dpau.h.qbr",
  "llvm.mips.dpax.w.ph",
  "llvm.mips.dps.w.ph",
  "llvm.mips.dpsq.s.w.ph",
  "llvm.mips.dpsq.sa.l.w",
  "llvm.mips.dpsqx.s.w.ph",
  "llvm.mips.dpsqx.sa.w.ph",
  "llvm.mips.dpsu.h.qbl",
  "llvm.mips.dpsu.h.qbr",
  "llvm.mips.dpsx.w.ph",
  "llvm.mips.extp",
  "llvm.mips.extpdp",
  "llvm.mips.extr.r.w",
  "llvm.mips.extr.rs.w",
  "llvm.mips.extr.s.h",
  "llvm.mips.extr.w",
  "llvm.mips.insv",
  "llvm.mips.lbux",
  "llvm.mips.lhx",
  "llvm.mips.lwx",
  "llvm.mips.madd",
  "llvm.mips.maddu",
  "llvm.mips.maq.s.w.phl",
  "llvm.mips.maq.s.w.phr",
  "llvm.mips.maq.sa.w.phl",
  "llvm.mips.maq.sa.w.phr",
  "llvm.mips.modsub",
  "llvm.mips.msub",
  "llvm.mips.msubu",
  "llvm.mips.mthlip",
  "llvm.mips.mul.ph",
  "llvm.mips.mul.s.ph",
  "llvm.mips.muleq.s.w.phl",
  "llvm.mips.muleq.s.w.phr",
  "llvm.mips.muleu.s.ph.qbl",
  "llvm.mips.muleu.s.ph.qbr",
  "llvm.mips.mulq.rs.ph",
  "llvm.mips.mulq.rs.w",
  "llvm.mips.mulq.s.ph",
  "llvm.mips.mulq.s.w",
  "llvm.mips.mulsa.w.ph",
  "llvm.mips.mulsaq.s.w.ph",
  "llvm.mips.mult",
  "llvm.mips.multu",
  "llvm.mips.packrl.ph",
  "llvm.mips.pick.ph",
  "llvm.mips.pick.qb",
  "llvm.mips.preceq.w.phl",
  "llvm.mips.preceq.w.phr",
  "llvm.mips.precequ.ph.qbl",
  "llvm.mips.precequ.ph.qbla",
  "llvm.mips.precequ.ph.qbr",
  "llvm.mips.precequ.ph.qbra",
  "llvm.mips.preceu.ph.qbl",
  "llvm.mips.preceu.ph.qbla",
  "llvm.mips.preceu.ph.qbr",
  "llvm.mips.preceu.ph.qbra",
  "llvm.mips.precr.qb.ph",
  "llvm.mips.precr.sra.ph.w",
  "llvm.mips.precr.sra.r.ph.w",
  "llvm.mips.precrq.ph.w",
  "llvm.mips.precrq.qb.ph",
  "llvm.mips.precrq.rs.ph.w",
  "llvm.mips.precrqu.s.qb.ph",
  "llvm.mips.prepend",
  "llvm.mips.raddu.w.qb",
  "llvm.mips.rddsp",
  "llvm.mips.repl.ph",
  "llvm.mips.repl.qb",
  "llvm.mips.shilo",
  "llvm.mips.shll.ph",
  "llvm.mips.shll.qb",
  "llvm.mips.shll.s.ph",
  "llvm.mips.shll.s.w",
  "llvm.mips.shra.ph",
  "llvm.mips.shra.qb",
  "llvm.mips.shra.r.ph",
  "llvm.mips.shra.r.qb",
  "llvm.mips.shra.r.w",
  "llvm.mips.shrl.ph",
  "llvm.mips.shrl.qb",
  "llvm.mips.subq.ph",
  "llvm.mips.subq.s.ph",
  "llvm.mips.subq.s.w",
  "llvm.mips.subqh.ph",
  "llvm.mips.subqh.r.ph",
  "llvm.mips.subqh.r.w",
  "llvm.mips.subqh.w",
  "llvm.mips.subu.ph",
  "llvm.mips.subu.qb",
  "llvm.mips.subu.s.ph",
  "llvm.mips.subu.s.qb",
  "llvm.mips.subuh.qb",
  "llvm.mips.subuh.r.qb",
  "llvm.mips.wrdsp",
  "llvm.nvvm.abs.i",
  "llvm.nvvm.abs.ll",
  "llvm.nvvm.add.rm.d",
  "llvm.nvvm.add.rm.f",
  "llvm.nvvm.add.rm.ftz.f",
  "llvm.nvvm.add.rn.d",
  "llvm.nvvm.add.rn.f",
  "llvm.nvvm.add.rn.ftz.f",
  "llvm.nvvm.add.rp.d",
  "llvm.nvvm.add.rp.f",
  "llvm.nvvm.add.rp.ftz.f",
  "llvm.nvvm.add.rz.d",
  "llvm.nvvm.add.rz.f",
  "llvm.nvvm.add.rz.ftz.f",
  "llvm.nvvm.atomic.load.add.f32",
  "llvm.nvvm.atomic.load.dec.32",
  "llvm.nvvm.atomic.load.inc.32",
  "llvm.nvvm.barrier0",
  "llvm.nvvm.barrier0.and",
  "llvm.nvvm.barrier0.or",
  "llvm.nvvm.barrier0.popc",
  "llvm.nvvm.bitcast.d2ll",
  "llvm.nvvm.bitcast.f2i",
  "llvm.nvvm.bitcast.i2f",
  "llvm.nvvm.bitcast.ll2d",
  "llvm.nvvm.brev32",
  "llvm.nvvm.brev64",
  "llvm.nvvm.ceil.d",
  "llvm.nvvm.ceil.f",
  "llvm.nvvm.ceil.ftz.f",
  "llvm.nvvm.clz.i",
  "llvm.nvvm.clz.ll",
  "llvm.nvvm.compiler.error",
  "llvm.nvvm.compiler.warn",
  "llvm.nvvm.cos.approx.f",
  "llvm.nvvm.cos.approx.ftz.f",
  "llvm.nvvm.d2f.rm",
  "llvm.nvvm.d2f.rm.ftz",
  "llvm.nvvm.d2f.rn",
  "llvm.nvvm.d2f.rn.ftz",
  "llvm.nvvm.d2f.rp",
  "llvm.nvvm.d2f.rp.ftz",
  "llvm.nvvm.d2f.rz",
  "llvm.nvvm.d2f.rz.ftz",
  "llvm.nvvm.d2i.hi",
  "llvm.nvvm.d2i.lo",
  "llvm.nvvm.d2i.rm",
  "llvm.nvvm.d2i.rn",
  "llvm.nvvm.d2i.rp",
  "llvm.nvvm.d2i.rz",
  "llvm.nvvm.d2ll.rm",
  "llvm.nvvm.d2ll.rn",
  "llvm.nvvm.d2ll.rp",
  "llvm.nvvm.d2ll.rz",
  "llvm.nvvm.d2ui.rm",
  "llvm.nvvm.d2ui.rn",
  "llvm.nvvm.d2ui.rp",
  "llvm.nvvm.d2ui.rz",
  "llvm.nvvm.d2ull.rm",
  "llvm.nvvm.d2ull.rn",
  "llvm.nvvm.d2ull.rp",
  "llvm.nvvm.d2ull.rz",
  "llvm.nvvm.div.approx.f",
  "llvm.nvvm.div.approx.ftz.f",
  "llvm.nvvm.div.rm.d",
  "llvm.nvvm.div.rm.f",
  "llvm.nvvm.div.rm.ftz.f",
  "llvm.nvvm.div.rn.d",
  "llvm.nvvm.div.rn.f",
  "llvm.nvvm.div.rn.ftz.f",
  "llvm.nvvm.div.rp.d",
  "llvm.nvvm.div.rp.f",
  "llvm.nvvm.div.rp.ftz.f",
  "llvm.nvvm.div.rz.d",
  "llvm.nvvm.div.rz.f",
  "llvm.nvvm.div.rz.ftz.f",
  "llvm.nvvm.ex2.approx.d",
  "llvm.nvvm.ex2.approx.f",
  "llvm.nvvm.ex2.approx.ftz.f",
  "llvm.nvvm.f2h.rn",
  "llvm.nvvm.f2h.rn.ftz",
  "llvm.nvvm.f2i.rm",
  "llvm.nvvm.f2i.rm.ftz",
  "llvm.nvvm.f2i.rn",
  "llvm.nvvm.f2i.rn.ftz",
  "llvm.nvvm.f2i.rp",
  "llvm.nvvm.f2i.rp.ftz",
  "llvm.nvvm.f2i.rz",
  "llvm.nvvm.f2i.rz.ftz",
  "llvm.nvvm.f2ll.rm",
  "llvm.nvvm.f2ll.rm.ftz",
  "llvm.nvvm.f2ll.rn",
  "llvm.nvvm.f2ll.rn.ftz",
  "llvm.nvvm.f2ll.rp",
  "llvm.nvvm.f2ll.rp.ftz",
  "llvm.nvvm.f2ll.rz",
  "llvm.nvvm.f2ll.rz.ftz",
  "llvm.nvvm.f2ui.rm",
  "llvm.nvvm.f2ui.rm.ftz",
  "llvm.nvvm.f2ui.rn",
  "llvm.nvvm.f2ui.rn.ftz",
  "llvm.nvvm.f2ui.rp",
  "llvm.nvvm.f2ui.rp.ftz",
  "llvm.nvvm.f2ui.rz",
  "llvm.nvvm.f2ui.rz.ftz",
  "llvm.nvvm.f2ull.rm",
  "llvm.nvvm.f2ull.rm.ftz",
  "llvm.nvvm.f2ull.rn",
  "llvm.nvvm.f2ull.rn.ftz",
  "llvm.nvvm.f2ull.rp",
  "llvm.nvvm.f2ull.rp.ftz",
  "llvm.nvvm.f2ull.rz",
  "llvm.nvvm.f2ull.rz.ftz",
  "llvm.nvvm.fabs.d",
  "llvm.nvvm.fabs.f",
  "llvm.nvvm.fabs.ftz.f",
  "llvm.nvvm.floor.d",
  "llvm.nvvm.floor.f",
  "llvm.nvvm.floor.ftz.f",
  "llvm.nvvm.fma.rm.d",
  "llvm.nvvm.fma.rm.f",
  "llvm.nvvm.fma.rm.ftz.f",
  "llvm.nvvm.fma.rn.d",
  "llvm.nvvm.fma.rn.f",
  "llvm.nvvm.fma.rn.ftz.f",
  "llvm.nvvm.fma.rp.d",
  "llvm.nvvm.fma.rp.f",
  "llvm.nvvm.fma.rp.ftz.f",
  "llvm.nvvm.fma.rz.d",
  "llvm.nvvm.fma.rz.f",
  "llvm.nvvm.fma.rz.ftz.f",
  "llvm.nvvm.fmax.d",
  "llvm.nvvm.fmax.f",
  "llvm.nvvm.fmax.ftz.f",
  "llvm.nvvm.fmin.d",
  "llvm.nvvm.fmin.f",
  "llvm.nvvm.fmin.ftz.f",
  "llvm.nvvm.h2f",
  "llvm.nvvm.i2d.rm",
  "llvm.nvvm.i2d.rn",
  "llvm.nvvm.i2d.rp",
  "llvm.nvvm.i2d.rz",
  "llvm.nvvm.i2f.rm",
  "llvm.nvvm.i2f.rn",
  "llvm.nvvm.i2f.rp",
  "llvm.nvvm.i2f.rz",
  "llvm.nvvm.ldu.global.f",
  "llvm.nvvm.ldu.global.i",
  "llvm.nvvm.ldu.global.p",
  "llvm.nvvm.lg2.approx.d",
  "llvm.nvvm.lg2.approx.f",
  "llvm.nvvm.lg2.approx.ftz.f",
  "llvm.nvvm.ll2d.rm",
  "llvm.nvvm.ll2d.rn",
  "llvm.nvvm.ll2d.rp",
  "llvm.nvvm.ll2d.rz",
  "llvm.nvvm.ll2f.rm",
  "llvm.nvvm.ll2f.rn",
  "llvm.nvvm.ll2f.rp",
  "llvm.nvvm.ll2f.rz",
  "llvm.nvvm.lohi.i2d",
  "llvm.nvvm.max.i",
  "llvm.nvvm.max.ll",
  "llvm.nvvm.max.ui",
  "llvm.nvvm.max.ull",
  "llvm.nvvm.membar.cta",
  "llvm.nvvm.membar.gl",
  "llvm.nvvm.membar.sys",
  "llvm.nvvm.min.i",
  "llvm.nvvm.min.ll",
  "llvm.nvvm.min.ui",
  "llvm.nvvm.min.ull",
  "llvm.nvvm.move.double",
  "llvm.nvvm.move.float",
  "llvm.nvvm.move.i16",
  "llvm.nvvm.move.i32",
  "llvm.nvvm.move.i64",
  "llvm.nvvm.move.i8",
  "llvm.nvvm.move.ptr",
  "llvm.nvvm.mul24.i",
  "llvm.nvvm.mul24.ui",
  "llvm.nvvm.mul.rm.d",
  "llvm.nvvm.mul.rm.f",
  "llvm.nvvm.mul.rm.ftz.f",
  "llvm.nvvm.mul.rn.d",
  "llvm.nvvm.mul.rn.f",
  "llvm.nvvm.mul.rn.ftz.f",
  "llvm.nvvm.mul.rp.d",
  "llvm.nvvm.mul.rp.f",
  "llvm.nvvm.mul.rp.ftz.f",
  "llvm.nvvm.mul.rz.d",
  "llvm.nvvm.mul.rz.f",
  "llvm.nvvm.mul.rz.ftz.f",
  "llvm.nvvm.mulhi.i",
  "llvm.nvvm.mulhi.ll",
  "llvm.nvvm.mulhi.ui",
  "llvm.nvvm.mulhi.ull",
  "llvm.nvvm.popc.i",
  "llvm.nvvm.popc.ll",
  "llvm.nvvm.prmt",
  "llvm.nvvm.ptr.constant.to.gen",
  "llvm.nvvm.ptr.gen.to.constant",
  "llvm.nvvm.ptr.gen.to.global",
  "llvm.nvvm.ptr.gen.to.local",
  "llvm.nvvm.ptr.gen.to.param",
  "llvm.nvvm.ptr.gen.to.shared",
  "llvm.nvvm.ptr.global.to.gen",
  "llvm.nvvm.ptr.local.to.gen",
  "llvm.nvvm.ptr.shared.to.gen",
  "llvm.nvvm.rcp.approx.ftz.d",
  "llvm.nvvm.rcp.rm.d",
  "llvm.nvvm.rcp.rm.f",
  "llvm.nvvm.rcp.rm.ftz.f",
  "llvm.nvvm.rcp.rn.d",
  "llvm.nvvm.rcp.rn.f",
  "llvm.nvvm.rcp.rn.ftz.f",
  "llvm.nvvm.rcp.rp.d",
  "llvm.nvvm.rcp.rp.f",
  "llvm.nvvm.rcp.rp.ftz.f",
  "llvm.nvvm.rcp.rz.d",
  "llvm.nvvm.rcp.rz.f",
  "llvm.nvvm.rcp.rz.ftz.f",
  "llvm.nvvm.read.ptx.sreg.ctaid.x",
  "llvm.nvvm.read.ptx.sreg.ctaid.y",
  "llvm.nvvm.read.ptx.sreg.ctaid.z",
  "llvm.nvvm.read.ptx.sreg.nctaid.x",
  "llvm.nvvm.read.ptx.sreg.nctaid.y",
  "llvm.nvvm.read.ptx.sreg.nctaid.z",
  "llvm.nvvm.read.ptx.sreg.ntid.x",
  "llvm.nvvm.read.ptx.sreg.ntid.y",
  "llvm.nvvm.read.ptx.sreg.ntid.z",
  "llvm.nvvm.read.ptx.sreg.tid.x",
  "llvm.nvvm.read.ptx.sreg.tid.y",
  "llvm.nvvm.read.ptx.sreg.tid.z",
  "llvm.nvvm.read.ptx.sreg.warpsize",
  "llvm.nvvm.round.d",
  "llvm.nvvm.round.f",
  "llvm.nvvm.round.ftz.f",
  "llvm.nvvm.rsqrt.approx.d",
  "llvm.nvvm.rsqrt.approx.f",
  "llvm.nvvm.rsqrt.approx.ftz.f",
  "llvm.nvvm.sad.i",
  "llvm.nvvm.sad.ui",
  "llvm.nvvm.saturate.d",
  "llvm.nvvm.saturate.f",
  "llvm.nvvm.saturate.ftz.f",
  "llvm.nvvm.sin.approx.f",
  "llvm.nvvm.sin.approx.ftz.f",
  "llvm.nvvm.sqrt.approx.f",
  "llvm.nvvm.sqrt.approx.ftz.f",
  "llvm.nvvm.sqrt.rm.d",
  "llvm.nvvm.sqrt.rm.f",
  "llvm.nvvm.sqrt.rm.ftz.f",
  "llvm.nvvm.sqrt.rn.d",
  "llvm.nvvm.sqrt.rn.f",
  "llvm.nvvm.sqrt.rn.ftz.f",
  "llvm.nvvm.sqrt.rp.d",
  "llvm.nvvm.sqrt.rp.f",
  "llvm.nvvm.sqrt.rp.ftz.f",
  "llvm.nvvm.sqrt.rz.d",
  "llvm.nvvm.sqrt.rz.f",
  "llvm.nvvm.sqrt.rz.ftz.f",
  "llvm.nvvm.trunc.d",
  "llvm.nvvm.trunc.f",
  "llvm.nvvm.trunc.ftz.f",
  "llvm.nvvm.ui2d.rm",
  "llvm.nvvm.ui2d.rn",
  "llvm.nvvm.ui2d.rp",
  "llvm.nvvm.ui2d.rz",
  "llvm.nvvm.ui2f.rm",
  "llvm.nvvm.ui2f.rn",
  "llvm.nvvm.ui2f.rp",
  "llvm.nvvm.ui2f.rz",
  "llvm.nvvm.ull2d.rm",
  "llvm.nvvm.ull2d.rn",
  "llvm.nvvm.ull2d.rp",
  "llvm.nvvm.ull2d.rz",
  "llvm.nvvm.ull2f.rm",
  "llvm.nvvm.ull2f.rn",
  "llvm.nvvm.ull2f.rp",
  "llvm.nvvm.ull2f.rz",
  "llvm.objectsize",
  "llvm.pcmarker",
  "llvm.pow",
  "llvm.powi",
  "llvm.ppc.altivec.dss",
  "llvm.ppc.altivec.dssall",
  "llvm.ppc.altivec.dst",
  "llvm.ppc.altivec.dstst",
  "llvm.ppc.altivec.dststt",
  "llvm.ppc.altivec.dstt",
  "llvm.ppc.altivec.lvebx",
  "llvm.ppc.altivec.lvehx",
  "llvm.ppc.altivec.lvewx",
  "llvm.ppc.altivec.lvsl",
  "llvm.ppc.altivec.lvsr",
  "llvm.ppc.altivec.lvx",
  "llvm.ppc.altivec.lvxl",
  "llvm.ppc.altivec.mfvscr",
  "llvm.ppc.altivec.mtvscr",
  "llvm.ppc.altivec.stvebx",
  "llvm.ppc.altivec.stvehx",
  "llvm.ppc.altivec.stvewx",
  "llvm.ppc.altivec.stvx",
  "llvm.ppc.altivec.stvxl",
  "llvm.ppc.altivec.vaddcuw",
  "llvm.ppc.altivec.vaddsbs",
  "llvm.ppc.altivec.vaddshs",
  "llvm.ppc.altivec.vaddsws",
  "llvm.ppc.altivec.vaddubs",
  "llvm.ppc.altivec.vadduhs",
  "llvm.ppc.altivec.vadduws",
  "llvm.ppc.altivec.vavgsb",
  "llvm.ppc.altivec.vavgsh",
  "llvm.ppc.altivec.vavgsw",
  "llvm.ppc.altivec.vavgub",
  "llvm.ppc.altivec.vavguh",
  "llvm.ppc.altivec.vavguw",
  "llvm.ppc.altivec.vcfsx",
  "llvm.ppc.altivec.vcfux",
  "llvm.ppc.altivec.vcmpbfp",
  "llvm.ppc.altivec.vcmpbfp.p",
  "llvm.ppc.altivec.vcmpeqfp",
  "llvm.ppc.altivec.vcmpeqfp.p",
  "llvm.ppc.altivec.vcmpequb",
  "llvm.ppc.altivec.vcmpequb.p",
  "llvm.ppc.altivec.vcmpequh",
  "llvm.ppc.altivec.vcmpequh.p",
  "llvm.ppc.altivec.vcmpequw",
  "llvm.ppc.altivec.vcmpequw.p",
  "llvm.ppc.altivec.vcmpgefp",
  "llvm.ppc.altivec.vcmpgefp.p",
  "llvm.ppc.altivec.vcmpgtfp",
  "llvm.ppc.altivec.vcmpgtfp.p",
  "llvm.ppc.altivec.vcmpgtsb",
  "llvm.ppc.altivec.vcmpgtsb.p",
  "llvm.ppc.altivec.vcmpgtsh",
  "llvm.ppc.altivec.vcmpgtsh.p",
  "llvm.ppc.altivec.vcmpgtsw",
  "llvm.ppc.altivec.vcmpgtsw.p",
  "llvm.ppc.altivec.vcmpgtub",
  "llvm.ppc.altivec.vcmpgtub.p",
  "llvm.ppc.altivec.vcmpgtuh",
  "llvm.ppc.altivec.vcmpgtuh.p",
  "llvm.ppc.altivec.vcmpgtuw",
  "llvm.ppc.altivec.vcmpgtuw.p",
  "llvm.ppc.altivec.vctsxs",
  "llvm.ppc.altivec.vctuxs",
  "llvm.ppc.altivec.vexptefp",
  "llvm.ppc.altivec.vlogefp",
  "llvm.ppc.altivec.vmaddfp",
  "llvm.ppc.altivec.vmaxfp",
  "llvm.ppc.altivec.vmaxsb",
  "llvm.ppc.altivec.vmaxsh",
  "llvm.ppc.altivec.vmaxsw",
  "llvm.ppc.altivec.vmaxub",
  "llvm.ppc.altivec.vmaxuh",
  "llvm.ppc.altivec.vmaxuw",
  "llvm.ppc.altivec.vmhaddshs",
  "llvm.ppc.altivec.vmhraddshs",
  "llvm.ppc.altivec.vminfp",
  "llvm.ppc.altivec.vminsb",
  "llvm.ppc.altivec.vminsh",
  "llvm.ppc.altivec.vminsw",
  "llvm.ppc.altivec.vminub",
  "llvm.ppc.altivec.vminuh",
  "llvm.ppc.altivec.vminuw",
  "llvm.ppc.altivec.vmladduhm",
  "llvm.ppc.altivec.vmsummbm",
  "llvm.ppc.altivec.vmsumshm",
  "llvm.ppc.altivec.vmsumshs",
  "llvm.ppc.altivec.vmsumubm",
  "llvm.ppc.altivec.vmsumuhm",
  "llvm.ppc.altivec.vmsumuhs",
  "llvm.ppc.altivec.vmulesb",
  "llvm.ppc.altivec.vmulesh",
  "llvm.ppc.altivec.vmuleub",
  "llvm.ppc.altivec.vmuleuh",
  "llvm.ppc.altivec.vmulosb",
  "llvm.ppc.altivec.vmulosh",
  "llvm.ppc.altivec.vmuloub",
  "llvm.ppc.altivec.vmulouh",
  "llvm.ppc.altivec.vnmsubfp",
  "llvm.ppc.altivec.vperm",
  "llvm.ppc.altivec.vpkpx",
  "llvm.ppc.altivec.vpkshss",
  "llvm.ppc.altivec.vpkshus",
  "llvm.ppc.altivec.vpkswss",
  "llvm.ppc.altivec.vpkswus",
  "llvm.ppc.altivec.vpkuhus",
  "llvm.ppc.altivec.vpkuwus",
  "llvm.ppc.altivec.vrefp",
  "llvm.ppc.altivec.vrfim",
  "llvm.ppc.altivec.vrfin",
  "llvm.ppc.altivec.vrfip",
  "llvm.ppc.altivec.vrfiz",
  "llvm.ppc.altivec.vrlb",
  "llvm.ppc.altivec.vrlh",
  "llvm.ppc.altivec.vrlw",
  "llvm.ppc.altivec.vrsqrtefp",
  "llvm.ppc.altivec.vsel",
  "llvm.ppc.altivec.vsl",
  "llvm.ppc.altivec.vslb",
  "llvm.ppc.altivec.vslh",
  "llvm.ppc.altivec.vslo",
  "llvm.ppc.altivec.vslw",
  "llvm.ppc.altivec.vsr",
  "llvm.ppc.altivec.vsrab",
  "llvm.ppc.altivec.vsrah",
  "llvm.ppc.altivec.vsraw",
  "llvm.ppc.altivec.vsrb",
  "llvm.ppc.altivec.vsrh",
  "llvm.ppc.altivec.vsro",
  "llvm.ppc.altivec.vsrw",
  "llvm.ppc.altivec.vsubcuw",
  "llvm.ppc.altivec.vsubsbs",
  "llvm.ppc.altivec.vsubshs",
  "llvm.ppc.altivec.vsubsws",
  "llvm.ppc.altivec.vsububs",
  "llvm.ppc.altivec.vsubuhs",
  "llvm.ppc.altivec.vsubuws",
  "llvm.ppc.altivec.vsum2sws",
  "llvm.ppc.altivec.vsum4sbs",
  "llvm.ppc.altivec.vsum4shs",
  "llvm.ppc.altivec.vsum4ubs",
  "llvm.ppc.altivec.vsumsws",
  "llvm.ppc.altivec.vupkhpx",
  "llvm.ppc.altivec.vupkhsb",
  "llvm.ppc.altivec.vupkhsh",
  "llvm.ppc.altivec.vupklpx",
  "llvm.ppc.altivec.vupklsb",
  "llvm.ppc.altivec.vupklsh",
  "llvm.ppc.dcba",
  "llvm.ppc.dcbf",
  "llvm.ppc.dcbi",
  "llvm.ppc.dcbst",
  "llvm.ppc.dcbt",
  "llvm.ppc.dcbtst",
  "llvm.ppc.dcbz",
  "llvm.ppc.dcbzl",
  "llvm.ppc.sync",
  "llvm.prefetch",
  "llvm.ptr.annotation",
  "llvm.ptx.bar.sync",
  "llvm.ptx.read.clock",
  "llvm.ptx.read.clock64",
  "llvm.ptx.read.ctaid.w",
  "llvm.ptx.read.ctaid.x",
  "llvm.ptx.read.ctaid.y",
  "llvm.ptx.read.ctaid.z",
  "llvm.ptx.read.gridid",
  "llvm.ptx.read.laneid",
  "llvm.ptx.read.lanemask.eq",
  "llvm.ptx.read.lanemask.ge",
  "llvm.ptx.read.lanemask.gt",
  "llvm.ptx.read.lanemask.le",
  "llvm.ptx.read.lanemask.lt",
  "llvm.ptx.read.nctaid.w",
  "llvm.ptx.read.nctaid.x",
  "llvm.ptx.read.nctaid.y",
  "llvm.ptx.read.nctaid.z",
  "llvm.ptx.read.nsmid",
  "llvm.ptx.read.ntid.w",
  "llvm.ptx.read.ntid.x",
  "llvm.ptx.read.ntid.y",
  "llvm.ptx.read.ntid.z",
  "llvm.ptx.read.nwarpid",
  "llvm.ptx.read.pm0",
  "llvm.ptx.read.pm1",
  "llvm.ptx.read.pm2",
  "llvm.ptx.read.pm3",
  "llvm.ptx.read.smid",
  "llvm.ptx.read.tid.w",
  "llvm.ptx.read.tid.x",
  "llvm.ptx.read.tid.y",
  "llvm.ptx.read.tid.z",
  "llvm.ptx.read.warpid",
  "llvm.readcyclecounter",
  "llvm.returnaddress",
  "llvm.sadd.with.overflow",
  "llvm.setjmp",
  "llvm.siglongjmp",
  "llvm.sigsetjmp",
  "llvm.sin",
  "llvm.smul.with.overflow",
  "llvm.spu.si.a",
  "llvm.spu.si.addx",
  "llvm.spu.si.ah",
  "llvm.spu.si.ahi",
  "llvm.spu.si.ai",
  "llvm.spu.si.and",
  "llvm.spu.si.andbi",
  "llvm.spu.si.andc",
  "llvm.spu.si.andhi",
  "llvm.spu.si.andi",
  "llvm.spu.si.bg",
  "llvm.spu.si.bgx",
  "llvm.spu.si.ceq",
  "llvm.spu.si.ceqb",
  "llvm.spu.si.ceqbi",
  "llvm.spu.si.ceqh",
  "llvm.spu.si.ceqhi",
  "llvm.spu.si.ceqi",
  "llvm.spu.si.cg",
  "llvm.spu.si.cgt",
  "llvm.spu.si.cgtb",
  "llvm.spu.si.cgtbi",
  "llvm.spu.si.cgth",
  "llvm.spu.si.cgthi",
  "llvm.spu.si.cgti",
  "llvm.spu.si.cgx",
  "llvm.spu.si.clgt",
  "llvm.spu.si.clgtb",
  "llvm.spu.si.clgtbi",
  "llvm.spu.si.clgth",
  "llvm.spu.si.clgthi",
  "llvm.spu.si.clgti",
  "llvm.spu.si.dfa",
  "llvm.spu.si.dfm",
  "llvm.spu.si.dfma",
  "llvm.spu.si.dfms",
  "llvm.spu.si.dfnma",
  "llvm.spu.si.dfnms",
  "llvm.spu.si.dfs",
  "llvm.spu.si.fa",
  "llvm.spu.si.fceq",
  "llvm.spu.si.fcgt",
  "llvm.spu.si.fcmeq",
  "llvm.spu.si.fcmgt",
  "llvm.spu.si.fm",
  "llvm.spu.si.fma",
  "llvm.spu.si.fms",
  "llvm.spu.si.fnms",
  "llvm.spu.si.fs",
  "llvm.spu.si.fsmbi",
  "llvm.spu.si.mpy",
  "llvm.spu.si.mpya",
  "llvm.spu.si.mpyh",
  "llvm.spu.si.mpyhh",
  "llvm.spu.si.mpyhha",
  "llvm.spu.si.mpyhhau",
  "llvm.spu.si.mpyhhu",
  "llvm.spu.si.mpyi",
  "llvm.spu.si.mpys",
  "llvm.spu.si.mpyu",
  "llvm.spu.si.mpyui",
  "llvm.spu.si.nand",
  "llvm.spu.si.nor",
  "llvm.spu.si.or",
  "llvm.spu.si.orbi",
  "llvm.spu.si.orc",
  "llvm.spu.si.orhi",
  "llvm.spu.si.ori",
  "llvm.spu.si.sf",
  "llvm.spu.si.sfh",
  "llvm.spu.si.sfhi",
  "llvm.spu.si.sfi",
  "llvm.spu.si.sfx",
  "llvm.spu.si.shli",
  "llvm.spu.si.shlqbi",
  "llvm.spu.si.shlqbii",
  "llvm.spu.si.shlqby",
  "llvm.spu.si.shlqbyi",
  "llvm.spu.si.xor",
  "llvm.spu.si.xorbi",
  "llvm.spu.si.xorhi",
  "llvm.spu.si.xori",
  "llvm.sqrt",
  "llvm.ssub.with.overflow",
  "llvm.stackprotector",
  "llvm.stackrestore",
  "llvm.stacksave",
  "llvm.trap",
  "llvm.uadd.with.overflow",
  "llvm.umul.with.overflow",
  "llvm.usub.with.overflow",
  "llvm.va_copy",
  "llvm.va_end",
  "llvm.var.annotation",
  "llvm.va_start",
  "llvm.x86.3dnow.pavgusb",
  "llvm.x86.3dnow.pf2id",
  "llvm.x86.3dnow.pfacc",
  "llvm.x86.3dnow.pfadd",
  "llvm.x86.3dnow.pfcmpeq",
  "llvm.x86.3dnow.pfcmpge",
  "llvm.x86.3dnow.pfcmpgt",
  "llvm.x86.3dnow.pfmax",
  "llvm.x86.3dnow.pfmin",
  "llvm.x86.3dnow.pfmul",
  "llvm.x86.3dnow.pfrcp",
  "llvm.x86.3dnow.pfrcpit1",
  "llvm.x86.3dnow.pfrcpit2",
  "llvm.x86.3dnow.pfrsqit1",
  "llvm.x86.3dnow.pfrsqrt",
  "llvm.x86.3dnow.pfsub",
  "llvm.x86.3dnow.pfsubr",
  "llvm.x86.3dnow.pi2fd",
  "llvm.x86.3dnow.pmulhrw",
  "llvm.x86.3dnowa.pf2iw",
  "llvm.x86.3dnowa.pfnacc",
  "llvm.x86.3dnowa.pfpnacc",
  "llvm.x86.3dnowa.pi2fw",
  "llvm.x86.3dnowa.pswapd",
  "llvm.x86.aesni.aesdec",
  "llvm.x86.aesni.aesdeclast",
  "llvm.x86.aesni.aesenc",
  "llvm.x86.aesni.aesenclast",
  "llvm.x86.aesni.aesimc",
  "llvm.x86.aesni.aeskeygenassist",
  "llvm.x86.avx2.gather.d.d",
  "llvm.x86.avx2.gather.d.d.256",
  "llvm.x86.avx2.gather.d.pd",
  "llvm.x86.avx2.gather.d.pd.256",
  "llvm.x86.avx2.gather.d.ps",
  "llvm.x86.avx2.gather.d.ps.256",
  "llvm.x86.avx2.gather.d.q",
  "llvm.x86.avx2.gather.d.q.256",
  "llvm.x86.avx2.gather.q.d",
  "llvm.x86.avx2.gather.q.d.256",
  "llvm.x86.avx2.gather.q.pd",
  "llvm.x86.avx2.gather.q.pd.256",
  "llvm.x86.avx2.gather.q.ps",
  "llvm.x86.avx2.gather.q.ps.256",
  "llvm.x86.avx2.gather.q.q",
  "llvm.x86.avx2.gather.q.q.256",
  "llvm.x86.avx2.maskload.d",
  "llvm.x86.avx2.maskload.d.256",
  "llvm.x86.avx2.maskload.q",
  "llvm.x86.avx2.maskload.q.256",
  "llvm.x86.avx2.maskstore.d",
  "llvm.x86.avx2.maskstore.d.256",
  "llvm.x86.avx2.maskstore.q",
  "llvm.x86.avx2.maskstore.q.256",
  "llvm.x86.avx2.movntdqa",
  "llvm.x86.avx2.mpsadbw",
  "llvm.x86.avx2.pabs.b",
  "llvm.x86.avx2.pabs.d",
  "llvm.x86.avx2.pabs.w",
  "llvm.x86.avx2.packssdw",
  "llvm.x86.avx2.packsswb",
  "llvm.x86.avx2.packusdw",
  "llvm.x86.avx2.packuswb",
  "llvm.x86.avx2.padds.b",
  "llvm.x86.avx2.padds.w",
  "llvm.x86.avx2.paddus.b",
  "llvm.x86.avx2.paddus.w",
  "llvm.x86.avx2.pavg.b",
  "llvm.x86.avx2.pavg.w",
  "llvm.x86.avx2.pblendd.128",
  "llvm.x86.avx2.pblendd.256",
  "llvm.x86.avx2.pblendvb",
  "llvm.x86.avx2.pblendw",
  "llvm.x86.avx2.pbroadcastb.128",
  "llvm.x86.avx2.pbroadcastb.256",
  "llvm.x86.avx2.pbroadcastd.128",
  "llvm.x86.avx2.pbroadcastd.256",
  "llvm.x86.avx2.pbroadcastq.128",
  "llvm.x86.avx2.pbroadcastq.256",
  "llvm.x86.avx2.pbroadcastw.128",
  "llvm.x86.avx2.pbroadcastw.256",
  "llvm.x86.avx2.permd",
  "llvm.x86.avx2.permps",
  "llvm.x86.avx2.phadd.d",
  "llvm.x86.avx2.phadd.sw",
  "llvm.x86.avx2.phadd.w",
  "llvm.x86.avx2.phsub.d",
  "llvm.x86.avx2.phsub.sw",
  "llvm.x86.avx2.phsub.w",
  "llvm.x86.avx2.pmadd.ub.sw",
  "llvm.x86.avx2.pmadd.wd",
  "llvm.x86.avx2.pmaxs.b",
  "llvm.x86.avx2.pmaxs.d",
  "llvm.x86.avx2.pmaxs.w",
  "llvm.x86.avx2.pmaxu.b",
  "llvm.x86.avx2.pmaxu.d",
  "llvm.x86.avx2.pmaxu.w",
  "llvm.x86.avx2.pmins.b",
  "llvm.x86.avx2.pmins.d",
  "llvm.x86.avx2.pmins.w",
  "llvm.x86.avx2.pminu.b",
  "llvm.x86.avx2.pminu.d",
  "llvm.x86.avx2.pminu.w",
  "llvm.x86.avx2.pmovmskb",
  "llvm.x86.avx2.pmovsxbd",
  "llvm.x86.avx2.pmovsxbq",
  "llvm.x86.avx2.pmovsxbw",
  "llvm.x86.avx2.pmovsxdq",
  "llvm.x86.avx2.pmovsxwd",
  "llvm.x86.avx2.pmovsxwq",
  "llvm.x86.avx2.pmovzxbd",
  "llvm.x86.avx2.pmovzxbq",
  "llvm.x86.avx2.pmovzxbw",
  "llvm.x86.avx2.pmovzxdq",
  "llvm.x86.avx2.pmovzxwd",
  "llvm.x86.avx2.pmovzxwq",
  "llvm.x86.avx2.pmul.dq",
  "llvm.x86.avx2.pmul.hr.sw",
  "llvm.x86.avx2.pmulh.w",
  "llvm.x86.avx2.pmulhu.w",
  "llvm.x86.avx2.pmulu.dq",
  "llvm.x86.avx2.psad.bw",
  "llvm.x86.avx2.pshuf.b",
  "llvm.x86.avx2.psign.b",
  "llvm.x86.avx2.psign.d",
  "llvm.x86.avx2.psign.w",
  "llvm.x86.avx2.psll.d",
  "llvm.x86.avx2.psll.dq",
  "llvm.x86.avx2.psll.dq.bs",
  "llvm.x86.avx2.psll.q",
  "llvm.x86.avx2.psll.w",
  "llvm.x86.avx2.pslli.d",
  "llvm.x86.avx2.pslli.q",
  "llvm.x86.avx2.pslli.w",
  "llvm.x86.avx2.psllv.d",
  "llvm.x86.avx2.psllv.d.256",
  "llvm.x86.avx2.psllv.q",
  "llvm.x86.avx2.psllv.q.256",
  "llvm.x86.avx2.psra.d",
  "llvm.x86.avx2.psra.w",
  "llvm.x86.avx2.psrai.d",
  "llvm.x86.avx2.psrai.w",
  "llvm.x86.avx2.psrav.d",
  "llvm.x86.avx2.psrav.d.256",
  "llvm.x86.avx2.psrl.d",
  "llvm.x86.avx2.psrl.dq",
  "llvm.x86.avx2.psrl.dq.bs",
  "llvm.x86.avx2.psrl.q",
  "llvm.x86.avx2.psrl.w",
  "llvm.x86.avx2.psrli.d",
  "llvm.x86.avx2.psrli.q",
  "llvm.x86.avx2.psrli.w",
  "llvm.x86.avx2.psrlv.d",
  "llvm.x86.avx2.psrlv.d.256",
  "llvm.x86.avx2.psrlv.q",
  "llvm.x86.avx2.psrlv.q.256",
  "llvm.x86.avx2.psubs.b",
  "llvm.x86.avx2.psubs.w",
  "llvm.x86.avx2.psubus.b",
  "llvm.x86.avx2.psubus.w",
  "llvm.x86.avx2.vbroadcast.sd.pd.256",
  "llvm.x86.avx2.vbroadcast.ss.ps",
  "llvm.x86.avx2.vbroadcast.ss.ps.256",
  "llvm.x86.avx2.vbroadcasti128",
  "llvm.x86.avx2.vextracti128",
  "llvm.x86.avx2.vinserti128",
  "llvm.x86.avx2.vperm2i128",
  "llvm.x86.avx.addsub.pd.256",
  "llvm.x86.avx.addsub.ps.256",
  "llvm.x86.avx.blend.pd.256",
  "llvm.x86.avx.blend.ps.256",
  "llvm.x86.avx.blendv.pd.256",
  "llvm.x86.avx.blendv.ps.256",
  "llvm.x86.avx.cmp.pd.256",
  "llvm.x86.avx.cmp.ps.256",
  "llvm.x86.avx.cvt.pd2.ps.256",
  "llvm.x86.avx.cvt.pd2dq.256",
  "llvm.x86.avx.cvt.ps2.pd.256",
  "llvm.x86.avx.cvt.ps2dq.256",
  "llvm.x86.avx.cvtdq2.pd.256",
  "llvm.x86.avx.cvtdq2.ps.256",
  "llvm.x86.avx.cvtt.pd2dq.256",
  "llvm.x86.avx.cvtt.ps2dq.256",
  "llvm.x86.avx.dp.ps.256",
  "llvm.x86.avx.hadd.pd.256",
  "llvm.x86.avx.hadd.ps.256",
  "llvm.x86.avx.hsub.pd.256",
  "llvm.x86.avx.hsub.ps.256",
  "llvm.x86.avx.ldu.dq.256",
  "llvm.x86.avx.maskload.pd",
  "llvm.x86.avx.maskload.pd.256",
  "llvm.x86.avx.maskload.ps",
  "llvm.x86.avx.maskload.ps.256",
  "llvm.x86.avx.maskstore.pd",
  "llvm.x86.avx.maskstore.pd.256",
  "llvm.x86.avx.maskstore.ps",
  "llvm.x86.avx.maskstore.ps.256",
  "llvm.x86.avx.max.pd.256",
  "llvm.x86.avx.max.ps.256",
  "llvm.x86.avx.min.pd.256",
  "llvm.x86.avx.min.ps.256",
  "llvm.x86.avx.movmsk.pd.256",
  "llvm.x86.avx.movmsk.ps.256",
  "llvm.x86.avx.ptestc.256",
  "llvm.x86.avx.ptestnzc.256",
  "llvm.x86.avx.ptestz.256",
  "llvm.x86.avx.rcp.ps.256",
  "llvm.x86.avx.round.pd.256",
  "llvm.x86.avx.round.ps.256",
  "llvm.x86.avx.rsqrt.ps.256",
  "llvm.x86.avx.sqrt.pd.256",
  "llvm.x86.avx.sqrt.ps.256",
  "llvm.x86.avx.storeu.dq.256",
  "llvm.x86.avx.storeu.pd.256",
  "llvm.x86.avx.storeu.ps.256",
  "llvm.x86.avx.vbroadcast.sd.256",
  "llvm.x86.avx.vbroadcast.ss",
  "llvm.x86.avx.vbroadcast.ss.256",
  "llvm.x86.avx.vbroadcastf128.pd.256",
  "llvm.x86.avx.vbroadcastf128.ps.256",
  "llvm.x86.avx.vextractf128.pd.256",
  "llvm.x86.avx.vextractf128.ps.256",
  "llvm.x86.avx.vextractf128.si.256",
  "llvm.x86.avx.vinsertf128.pd.256",
  "llvm.x86.avx.vinsertf128.ps.256",
  "llvm.x86.avx.vinsertf128.si.256",
  "llvm.x86.avx.vperm2f128.pd.256",
  "llvm.x86.avx.vperm2f128.ps.256",
  "llvm.x86.avx.vperm2f128.si.256",
  "llvm.x86.avx.vpermilvar.pd",
  "llvm.x86.avx.vpermilvar.pd.256",
  "llvm.x86.avx.vpermilvar.ps",
  "llvm.x86.avx.vpermilvar.ps.256",
  "llvm.x86.avx.vtestc.pd",
  "llvm.x86.avx.vtestc.pd.256",
  "llvm.x86.avx.vtestc.ps",
  "llvm.x86.avx.vtestc.ps.256",
  "llvm.x86.avx.vtestnzc.pd",
  "llvm.x86.avx.vtestnzc.pd.256",
  "llvm.x86.avx.vtestnzc.ps",
  "llvm.x86.avx.vtestnzc.ps.256",
  "llvm.x86.avx.vtestz.pd",
  "llvm.x86.avx.vtestz.pd.256",
  "llvm.x86.avx.vtestz.ps",
  "llvm.x86.avx.vtestz.ps.256",
  "llvm.x86.avx.vzeroall",
  "llvm.x86.avx.vzeroupper",
  "llvm.x86.bmi.bextr.32",
  "llvm.x86.bmi.bextr.64",
  "llvm.x86.bmi.bzhi.32",
  "llvm.x86.bmi.bzhi.64",
  "llvm.x86.bmi.pdep.32",
  "llvm.x86.bmi.pdep.64",
  "llvm.x86.bmi.pext.32",
  "llvm.x86.bmi.pext.64",
  "llvm.x86.fma.vfmadd.pd",
  "llvm.x86.fma.vfmadd.pd.256",
  "llvm.x86.fma.vfmadd.ps",
  "llvm.x86.fma.vfmadd.ps.256",
  "llvm.x86.fma.vfmadd.sd",
  "llvm.x86.fma.vfmadd.ss",
  "llvm.x86.fma.vfmaddsub.pd",
  "llvm.x86.fma.vfmaddsub.pd.256",
  "llvm.x86.fma.vfmaddsub.ps",
  "llvm.x86.fma.vfmaddsub.ps.256",
  "llvm.x86.fma.vfmsub.pd",
  "llvm.x86.fma.vfmsub.pd.256",
  "llvm.x86.fma.vfmsub.ps",
  "llvm.x86.fma.vfmsub.ps.256",
  "llvm.x86.fma.vfmsub.sd",
  "llvm.x86.fma.vfmsub.ss",
  "llvm.x86.fma.vfmsubadd.pd",
  "llvm.x86.fma.vfmsubadd.pd.256",
  "llvm.x86.fma.vfmsubadd.ps",
  "llvm.x86.fma.vfmsubadd.ps.256",
  "llvm.x86.fma.vfnmadd.pd",
  "llvm.x86.fma.vfnmadd.pd.256",
  "llvm.x86.fma.vfnmadd.ps",
  "llvm.x86.fma.vfnmadd.ps.256",
  "llvm.x86.fma.vfnmadd.sd",
  "llvm.x86.fma.vfnmadd.ss",
  "llvm.x86.fma.vfnmsub.pd",
  "llvm.x86.fma.vfnmsub.pd.256",
  "llvm.x86.fma.vfnmsub.ps",
  "llvm.x86.fma.vfnmsub.ps.256",
  "llvm.x86.fma.vfnmsub.sd",
  "llvm.x86.fma.vfnmsub.ss",
  "llvm.x86.int",
  "llvm.x86.mmx.emms",
  "llvm.x86.mmx.femms",
  "llvm.x86.mmx.maskmovq",
  "llvm.x86.mmx.movnt.dq",
  "llvm.x86.mmx.packssdw",
  "llvm.x86.mmx.packsswb",
  "llvm.x86.mmx.packuswb",
  "llvm.x86.mmx.padd.b",
  "llvm.x86.mmx.padd.d",
  "llvm.x86.mmx.padd.q",
  "llvm.x86.mmx.padd.w",
  "llvm.x86.mmx.padds.b",
  "llvm.x86.mmx.padds.w",
  "llvm.x86.mmx.paddus.b",
  "llvm.x86.mmx.paddus.w",
  "llvm.x86.mmx.palignr.b",
  "llvm.x86.mmx.pand",
  "llvm.x86.mmx.pandn",
  "llvm.x86.mmx.pavg.b",
  "llvm.x86.mmx.pavg.w",
  "llvm.x86.mmx.pcmpeq.b",
  "llvm.x86.mmx.pcmpeq.d",
  "llvm.x86.mmx.pcmpeq.w",
  "llvm.x86.mmx.pcmpgt.b",
  "llvm.x86.mmx.pcmpgt.d",
  "llvm.x86.mmx.pcmpgt.w",
  "llvm.x86.mmx.pextr.w",
  "llvm.x86.mmx.pinsr.w",
  "llvm.x86.mmx.pmadd.wd",
  "llvm.x86.mmx.pmaxs.w",
  "llvm.x86.mmx.pmaxu.b",
  "llvm.x86.mmx.pmins.w",
  "llvm.x86.mmx.pminu.b",
  "llvm.x86.mmx.pmovmskb",
  "llvm.x86.mmx.pmulh.w",
  "llvm.x86.mmx.pmulhu.w",
  "llvm.x86.mmx.pmull.w",
  "llvm.x86.mmx.pmulu.dq",
  "llvm.x86.mmx.por",
  "llvm.x86.mmx.psad.bw",
  "llvm.x86.mmx.psll.d",
  "llvm.x86.mmx.psll.q",
  "llvm.x86.mmx.psll.w",
  "llvm.x86.mmx.pslli.d",
  "llvm.x86.mmx.pslli.q",
  "llvm.x86.mmx.pslli.w",
  "llvm.x86.mmx.psra.d",
  "llvm.x86.mmx.psra.w",
  "llvm.x86.mmx.psrai.d",
  "llvm.x86.mmx.psrai.w",
  "llvm.x86.mmx.psrl.d",
  "llvm.x86.mmx.psrl.q",
  "llvm.x86.mmx.psrl.w",
  "llvm.x86.mmx.psrli.d",
  "llvm.x86.mmx.psrli.q",
  "llvm.x86.mmx.psrli.w",
  "llvm.x86.mmx.psub.b",
  "llvm.x86.mmx.psub.d",
  "llvm.x86.mmx.psub.q",
  "llvm.x86.mmx.psub.w",
  "llvm.x86.mmx.psubs.b",
  "llvm.x86.mmx.psubs.w",
  "llvm.x86.mmx.psubus.b",
  "llvm.x86.mmx.psubus.w",
  "llvm.x86.mmx.punpckhbw",
  "llvm.x86.mmx.punpckhdq",
  "llvm.x86.mmx.punpckhwd",
  "llvm.x86.mmx.punpcklbw",
  "llvm.x86.mmx.punpckldq",
  "llvm.x86.mmx.punpcklwd",
  "llvm.x86.mmx.pxor",
  "llvm.x86.pclmulqdq",
  "llvm.x86.rdfsbase.32",
  "llvm.x86.rdfsbase.64",
  "llvm.x86.rdgsbase.32",
  "llvm.x86.rdgsbase.64",
  "llvm.x86.rdrand.16",
  "llvm.x86.rdrand.32",
  "llvm.x86.rdrand.64",
  "llvm.x86.sse2.add.sd",
  "llvm.x86.sse2.clflush",
  "llvm.x86.sse2.cmp.pd",
  "llvm.x86.sse2.cmp.sd",
  "llvm.x86.sse2.comieq.sd",
  "llvm.x86.sse2.comige.sd",
  "llvm.x86.sse2.comigt.sd",
  "llvm.x86.sse2.comile.sd",
  "llvm.x86.sse2.comilt.sd",
  "llvm.x86.sse2.comineq.sd",
  "llvm.x86.sse2.cvtdq2pd",
  "llvm.x86.sse2.cvtdq2ps",
  "llvm.x86.sse2.cvtpd2dq",
  "llvm.x86.sse2.cvtpd2ps",
  "llvm.x86.sse2.cvtps2dq",
  "llvm.x86.sse2.cvtps2pd",
  "llvm.x86.sse2.cvtsd2si",
  "llvm.x86.sse2.cvtsd2si64",
  "llvm.x86.sse2.cvtsd2ss",
  "llvm.x86.sse2.cvtsi2sd",
  "llvm.x86.sse2.cvtsi642sd",
  "llvm.x86.sse2.cvtss2sd",
  "llvm.x86.sse2.cvttpd2dq",
  "llvm.x86.sse2.cvttps2dq",
  "llvm.x86.sse2.cvttsd2si",
  "llvm.x86.sse2.cvttsd2si64",
  "llvm.x86.sse2.div.sd",
  "llvm.x86.sse2.lfence",
  "llvm.x86.sse2.maskmov.dqu",
  "llvm.x86.sse2.max.pd",
  "llvm.x86.sse2.max.sd",
  "llvm.x86.sse2.mfence",
  "llvm.x86.sse2.min.pd",
  "llvm.x86.sse2.min.sd",
  "llvm.x86.sse2.movmsk.pd",
  "llvm.x86.sse2.mul.sd",
  "llvm.x86.sse2.packssdw.128",
  "llvm.x86.sse2.packsswb.128",
  "llvm.x86.sse2.packuswb.128",
  "llvm.x86.sse2.padds.b",
  "llvm.x86.sse2.padds.w",
  "llvm.x86.sse2.paddus.b",
  "llvm.x86.sse2.paddus.w",
  "llvm.x86.sse2.pavg.b",
  "llvm.x86.sse2.pavg.w",
  "llvm.x86.sse2.pmadd.wd",
  "llvm.x86.sse2.pmaxs.w",
  "llvm.x86.sse2.pmaxu.b",
  "llvm.x86.sse2.pmins.w",
  "llvm.x86.sse2.pminu.b",
  "llvm.x86.sse2.pmovmskb.128",
  "llvm.x86.sse2.pmulh.w",
  "llvm.x86.sse2.pmulhu.w",
  "llvm.x86.sse2.pmulu.dq",
  "llvm.x86.sse2.psad.bw",
  "llvm.x86.sse2.psll.d",
  "llvm.x86.sse2.psll.dq",
  "llvm.x86.sse2.psll.dq.bs",
  "llvm.x86.sse2.psll.q",
  "llvm.x86.sse2.psll.w",
  "llvm.x86.sse2.pslli.d",
  "llvm.x86.sse2.pslli.q",
  "llvm.x86.sse2.pslli.w",
  "llvm.x86.sse2.psra.d",
  "llvm.x86.sse2.psra.w",
  "llvm.x86.sse2.psrai.d",
  "llvm.x86.sse2.psrai.w",
  "llvm.x86.sse2.psrl.d",
  "llvm.x86.sse2.psrl.dq",
  "llvm.x86.sse2.psrl.dq.bs",
  "llvm.x86.sse2.psrl.q",
  "llvm.x86.sse2.psrl.w",
  "llvm.x86.sse2.psrli.d",
  "llvm.x86.sse2.psrli.q",
  "llvm.x86.sse2.psrli.w",
  "llvm.x86.sse2.psubs.b",
  "llvm.x86.sse2.psubs.w",
  "llvm.x86.sse2.psubus.b",
  "llvm.x86.sse2.psubus.w",
  "llvm.x86.sse2.sqrt.pd",
  "llvm.x86.sse2.sqrt.sd",
  "llvm.x86.sse2.storel.dq",
  "llvm.x86.sse2.storeu.dq",
  "llvm.x86.sse2.storeu.pd",
  "llvm.x86.sse2.sub.sd",
  "llvm.x86.sse2.ucomieq.sd",
  "llvm.x86.sse2.ucomige.sd",
  "llvm.x86.sse2.ucomigt.sd",
  "llvm.x86.sse2.ucomile.sd",
  "llvm.x86.sse2.ucomilt.sd",
  "llvm.x86.sse2.ucomineq.sd",
  "llvm.x86.sse3.addsub.pd",
  "llvm.x86.sse3.addsub.ps",
  "llvm.x86.sse3.hadd.pd",
  "llvm.x86.sse3.hadd.ps",
  "llvm.x86.sse3.hsub.pd",
  "llvm.x86.sse3.hsub.ps",
  "llvm.x86.sse3.ldu.dq",
  "llvm.x86.sse3.monitor",
  "llvm.x86.sse3.mwait",
  "llvm.x86.sse41.blendpd",
  "llvm.x86.sse41.blendps",
  "llvm.x86.sse41.blendvpd",
  "llvm.x86.sse41.blendvps",
  "llvm.x86.sse41.dppd",
  "llvm.x86.sse41.dpps",
  "llvm.x86.sse41.extractps",
  "llvm.x86.sse41.insertps",
  "llvm.x86.sse41.movntdqa",
  "llvm.x86.sse41.mpsadbw",
  "llvm.x86.sse41.packusdw",
  "llvm.x86.sse41.pblendvb",
  "llvm.x86.sse41.pblendw",
  "llvm.x86.sse41.pextrb",
  "llvm.x86.sse41.pextrd",
  "llvm.x86.sse41.pextrq",
  "llvm.x86.sse41.phminposuw",
  "llvm.x86.sse41.pmaxsb",
  "llvm.x86.sse41.pmaxsd",
  "llvm.x86.sse41.pmaxud",
  "llvm.x86.sse41.pmaxuw",
  "llvm.x86.sse41.pminsb",
  "llvm.x86.sse41.pminsd",
  "llvm.x86.sse41.pminud",
  "llvm.x86.sse41.pminuw",
  "llvm.x86.sse41.pmovsxbd",
  "llvm.x86.sse41.pmovsxbq",
  "llvm.x86.sse41.pmovsxbw",
  "llvm.x86.sse41.pmovsxdq",
  "llvm.x86.sse41.pmovsxwd",
  "llvm.x86.sse41.pmovsxwq",
  "llvm.x86.sse41.pmovzxbd",
  "llvm.x86.sse41.pmovzxbq",
  "llvm.x86.sse41.pmovzxbw",
  "llvm.x86.sse41.pmovzxdq",
  "llvm.x86.sse41.pmovzxwd",
  "llvm.x86.sse41.pmovzxwq",
  "llvm.x86.sse41.pmuldq",
  "llvm.x86.sse41.ptestc",
  "llvm.x86.sse41.ptestnzc",
  "llvm.x86.sse41.ptestz",
  "llvm.x86.sse41.round.pd",
  "llvm.x86.sse41.round.ps",
  "llvm.x86.sse41.round.sd",
  "llvm.x86.sse41.round.ss",
  "llvm.x86.sse42.crc32.32.16",
  "llvm.x86.sse42.crc32.32.32",
  "llvm.x86.sse42.crc32.32.8",
  "llvm.x86.sse42.crc32.64.64",
  "llvm.x86.sse42.crc32.64.8",
  "llvm.x86.sse42.pcmpestri128",
  "llvm.x86.sse42.pcmpestria128",
  "llvm.x86.sse42.pcmpestric128",
  "llvm.x86.sse42.pcmpestrio128",
  "llvm.x86.sse42.pcmpestris128",
  "llvm.x86.sse42.pcmpestriz128",
  "llvm.x86.sse42.pcmpestrm128",
  "llvm.x86.sse42.pcmpistri128",
  "llvm.x86.sse42.pcmpistria128",
  "llvm.x86.sse42.pcmpistric128",
  "llvm.x86.sse42.pcmpistrio128",
  "llvm.x86.sse42.pcmpistris128",
  "llvm.x86.sse42.pcmpistriz128",
  "llvm.x86.sse42.pcmpistrm128",
  "llvm.x86.sse4a.extrq",
  "llvm.x86.sse4a.extrqi",
  "llvm.x86.sse4a.insertq",
  "llvm.x86.sse4a.insertqi",
  "llvm.x86.sse4a.movnt.sd",
  "llvm.x86.sse4a.movnt.ss",
  "llvm.x86.sse.add.ss",
  "llvm.x86.sse.cmp.ps",
  "llvm.x86.sse.cmp.ss",
  "llvm.x86.sse.comieq.ss",
  "llvm.x86.sse.comige.ss",
  "llvm.x86.sse.comigt.ss",
  "llvm.x86.sse.comile.ss",
  "llvm.x86.sse.comilt.ss",
  "llvm.x86.sse.comineq.ss",
  "llvm.x86.sse.cvtpd2pi",
  "llvm.x86.sse.cvtpi2pd",
  "llvm.x86.sse.cvtpi2ps",
  "llvm.x86.sse.cvtps2pi",
  "llvm.x86.sse.cvtsi2ss",
  "llvm.x86.sse.cvtsi642ss",
  "llvm.x86.sse.cvtss2si",
  "llvm.x86.sse.cvtss2si64",
  "llvm.x86.sse.cvttpd2pi",
  "llvm.x86.sse.cvttps2pi",
  "llvm.x86.sse.cvttss2si",
  "llvm.x86.sse.cvttss2si64",
  "llvm.x86.sse.div.ss",
  "llvm.x86.sse.ldmxcsr",
  "llvm.x86.sse.max.ps",
  "llvm.x86.sse.max.ss",
  "llvm.x86.sse.min.ps",
  "llvm.x86.sse.min.ss",
  "llvm.x86.sse.movmsk.ps",
  "llvm.x86.sse.mul.ss",
  "llvm.x86.sse.pshuf.w",
  "llvm.x86.sse.rcp.ps",
  "llvm.x86.sse.rcp.ss",
  "llvm.x86.sse.rsqrt.ps",
  "llvm.x86.sse.rsqrt.ss",
  "llvm.x86.sse.sfence",
  "llvm.x86.sse.sqrt.ps",
  "llvm.x86.sse.sqrt.ss",
  "llvm.x86.sse.stmxcsr",
  "llvm.x86.sse.storeu.ps",
  "llvm.x86.sse.sub.ss",
  "llvm.x86.sse.ucomieq.ss",
  "llvm.x86.sse.ucomige.ss",
  "llvm.x86.sse.ucomigt.ss",
  "llvm.x86.sse.ucomile.ss",
  "llvm.x86.sse.ucomilt.ss",
  "llvm.x86.sse.ucomineq.ss",
  "llvm.x86.ssse3.pabs.b",
  "llvm.x86.ssse3.pabs.b.128",
  "llvm.x86.ssse3.pabs.d",
  "llvm.x86.ssse3.pabs.d.128",
  "llvm.x86.ssse3.pabs.w",
  "llvm.x86.ssse3.pabs.w.128",
  "llvm.x86.ssse3.phadd.d",
  "llvm.x86.ssse3.phadd.d.128",
  "llvm.x86.ssse3.phadd.sw",
  "llvm.x86.ssse3.phadd.sw.128",
  "llvm.x86.ssse3.phadd.w",
  "llvm.x86.ssse3.phadd.w.128",
  "llvm.x86.ssse3.phsub.d",
  "llvm.x86.ssse3.phsub.d.128",
  "llvm.x86.ssse3.phsub.sw",
  "llvm.x86.ssse3.phsub.sw.128",
  "llvm.x86.ssse3.phsub.w",
  "llvm.x86.ssse3.phsub.w.128",
  "llvm.x86.ssse3.pmadd.ub.sw",
  "llvm.x86.ssse3.pmadd.ub.sw.128",
  "llvm.x86.ssse3.pmul.hr.sw",
  "llvm.x86.ssse3.pmul.hr.sw.128",
  "llvm.x86.ssse3.pshuf.b",
  "llvm.x86.ssse3.pshuf.b.128",
  "llvm.x86.ssse3.psign.b",
  "llvm.x86.ssse3.psign.b.128",
  "llvm.x86.ssse3.psign.d",
  "llvm.x86.ssse3.psign.d.128",
  "llvm.x86.ssse3.psign.w",
  "llvm.x86.ssse3.psign.w.128",
  "llvm.x86.vcvtph2ps.128",
  "llvm.x86.vcvtph2ps.256",
  "llvm.x86.vcvtps2ph.128",
  "llvm.x86.vcvtps2ph.256",
  "llvm.x86.wrfsbase.32",
  "llvm.x86.wrfsbase.64",
  "llvm.x86.wrgsbase.32",
  "llvm.x86.wrgsbase.64",
  "llvm.x86.xop.vfrcz.pd",
  "llvm.x86.xop.vfrcz.pd.256",
  "llvm.x86.xop.vfrcz.ps",
  "llvm.x86.xop.vfrcz.ps.256",
  "llvm.x86.xop.vfrcz.sd",
  "llvm.x86.xop.vfrcz.ss",
  "llvm.x86.xop.vpcmov",
  "llvm.x86.xop.vpcmov.256",
  "llvm.x86.xop.vpcomb",
  "llvm.x86.xop.vpcomd",
  "llvm.x86.xop.vpcomq",
  "llvm.x86.xop.vpcomub",
  "llvm.x86.xop.vpcomud",
  "llvm.x86.xop.vpcomuq",
  "llvm.x86.xop.vpcomuw",
  "llvm.x86.xop.vpcomw",
  "llvm.x86.xop.vpermil2pd",
  "llvm.x86.xop.vpermil2pd.256",
  "llvm.x86.xop.vpermil2ps",
  "llvm.x86.xop.vpermil2ps.256",
  "llvm.x86.xop.vphaddbd",
  "llvm.x86.xop.vphaddbq",
  "llvm.x86.xop.vphaddbw",
  "llvm.x86.xop.vphadddq",
  "llvm.x86.xop.vphaddubd",
  "llvm.x86.xop.vphaddubq",
  "llvm.x86.xop.vphaddubw",
  "llvm.x86.xop.vphaddudq",
  "llvm.x86.xop.vphadduwd",
  "llvm.x86.xop.vphadduwq",
  "llvm.x86.xop.vphaddwd",
  "llvm.x86.xop.vphaddwq",
  "llvm.x86.xop.vphsubbw",
  "llvm.x86.xop.vphsubdq",
  "llvm.x86.xop.vphsubwd",
  "llvm.x86.xop.vpmacsdd",
  "llvm.x86.xop.vpmacsdqh",
  "llvm.x86.xop.vpmacsdql",
  "llvm.x86.xop.vpmacssdd",
  "llvm.x86.xop.vpmacssdqh",
  "llvm.x86.xop.vpmacssdql",
  "llvm.x86.xop.vpmacsswd",
  "llvm.x86.xop.vpmacssww",
  "llvm.x86.xop.vpmacswd",
  "llvm.x86.xop.vpmacsww",
  "llvm.x86.xop.vpmadcsswd",
  "llvm.x86.xop.vpmadcswd",
  "llvm.x86.xop.vpperm",
  "llvm.x86.xop.vprotb",
  "llvm.x86.xop.vprotbi",
  "llvm.x86.xop.vprotd",
  "llvm.x86.xop.vprotdi",
  "llvm.x86.xop.vprotq",
  "llvm.x86.xop.vprotqi",
  "llvm.x86.xop.vprotw",
  "llvm.x86.xop.vprotwi",
  "llvm.x86.xop.vpshab",
  "llvm.x86.xop.vpshad",
  "llvm.x86.xop.vpshaq",
  "llvm.x86.xop.vpshaw",
  "llvm.x86.xop.vpshlb",
  "llvm.x86.xop.vpshld",
  "llvm.x86.xop.vpshlq",
  "llvm.x86.xop.vpshlw",
  "llvm.xcore.bitrev",
  "llvm.xcore.checkevent",
  "llvm.xcore.chkct",
  "llvm.xcore.clre",
  "llvm.xcore.clrsr",
  "llvm.xcore.crc32",
  "llvm.xcore.crc8",
  "llvm.xcore.eeu",
  "llvm.xcore.endin",
  "llvm.xcore.freer",
  "llvm.xcore.geted",
  "llvm.xcore.getet",
  "llvm.xcore.getid",
  "llvm.xcore.getps",
  "llvm.xcore.getr",
  "llvm.xcore.getst",
  "llvm.xcore.getts",
  "llvm.xcore.in",
  "llvm.xcore.inct",
  "llvm.xcore.initcp",
  "llvm.xcore.initdp",
  "llvm.xcore.initlr",
  "llvm.xcore.initpc",
  "llvm.xcore.initsp",
  "llvm.xcore.inshr",
  "llvm.xcore.int",
  "llvm.xcore.mjoin",
  "llvm.xcore.msync",
  "llvm.xcore.out",
  "llvm.xcore.outct",
  "llvm.xcore.outshr",
  "llvm.xcore.outt",
  "llvm.xcore.peek",
  "llvm.xcore.setc",
  "llvm.xcore.setclk",
  "llvm.xcore.setd",
  "llvm.xcore.setev",
  "llvm.xcore.setps",
  "llvm.xcore.setpsc",
  "llvm.xcore.setpt",
  "llvm.xcore.setrdy",
  "llvm.xcore.setsr",
  "llvm.xcore.settw",
  "llvm.xcore.setv",
  "llvm.xcore.sext",
  "llvm.xcore.ssync",
  "llvm.xcore.syncr",
  "llvm.xcore.testct",
  "llvm.xcore.testwct",
  "llvm.xcore.waitevent",
  "llvm.xcore.zext",
#endif

// Intrinsic ID to overload bitset
#ifdef GET_INTRINSIC_OVERLOAD_TABLE
static const uint8_t OTable[] = {
  0 | (1<<2),
  0 | (1<<5) | (1<<6) | (1<<7),
  0 | (1<<4) | (1<<5) | (1<<6) | (1<<7),
  0 | (1<<0) | (1<<1) | (1<<2) | (1<<4) | (1<<5) | (1<<7),
  0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
  0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
  0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
  0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
  0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
  0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
  0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
  0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
  0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
  0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4),
  0,
  0 | (1<<4) | (1<<5) | (1<<6),
  0 | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
  0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5),
  0,
  0 | (1<<5) | (1<<6) | (1<<7),
  0 | (1<<0) | (1<<1) | (1<<3) | (1<<4),
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0 | (1<<3) | (1<<4) | (1<<5) | (1<<7),
  0 | (1<<0) | (1<<1),
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0 | (1<<7),
  0 | (1<<0) | (1<<1),
  0,
  0 | (1<<1) | (1<<2),
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0 | (1<<3) | (1<<4) | (1<<5),
  0,
  0,
  0,
  0 | (1<<3),
  0,
  0,
  0 | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
  0 | (1<<0) | (1<<1),
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0 | (1<<2) | (1<<4) | (1<<5),
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0 | (1<<3),
  0,
  0,
  0,
  0,
  0 | (1<<0) | (1<<4) | (1<<5),
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0 | (1<<0) | (1<<1) | (1<<6) | (1<<7),
  0 | (1<<0),
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0 | (1<<4),
  0 | (1<<1) | (1<<2) | (1<<3),
  0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
  0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
  0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6),
  0 | (1<<0) | (1<<1) | (1<<2) | (1<<4) | (1<<5),
  0 | (1<<0) | (1<<1) | (1<<2)
};

return (OTable[id/8] & (1 << (id%8))) != 0;
#endif

// Function name -> enum value recognizer code.
#ifdef GET_FUNCTION_RECOGNIZER
  StringRef NameR(Name+6, Len-6);   // Skip over 'llvm.'
  switch (Name[5]) {                  // Dispatch on first letter.
  default: break;
  case 'a':
    if (NameR.startswith("nnotation.")) return Intrinsic::annotation;
    if (NameR.startswith("rm.neon.vabds.")) return Intrinsic::arm_neon_vabds;
    if (NameR.startswith("rm.neon.vabdu.")) return Intrinsic::arm_neon_vabdu;
    if (NameR.startswith("rm.neon.vabs.")) return Intrinsic::arm_neon_vabs;
    if (NameR.startswith("rm.neon.vaddhn.")) return Intrinsic::arm_neon_vaddhn;
    if (NameR.startswith("rm.neon.vbsl.")) return Intrinsic::arm_neon_vbsl;
    if (NameR.startswith("rm.neon.vcls.")) return Intrinsic::arm_neon_vcls;
    if (NameR.startswith("rm.neon.vclz.")) return Intrinsic::arm_neon_vclz;
    if (NameR.startswith("rm.neon.vcnt.")) return Intrinsic::arm_neon_vcnt;
    if (NameR.startswith("rm.neon.vcvtfp2fxs.")) return Intrinsic::arm_neon_vcvtfp2fxs;
    if (NameR.startswith("rm.neon.vcvtfp2fxu.")) return Intrinsic::arm_neon_vcvtfp2fxu;
    if (NameR.startswith("rm.neon.vcvtfxs2fp.")) return Intrinsic::arm_neon_vcvtfxs2fp;
    if (NameR.startswith("rm.neon.vcvtfxu2fp.")) return Intrinsic::arm_neon_vcvtfxu2fp;
    if (NameR.startswith("rm.neon.vhadds.")) return Intrinsic::arm_neon_vhadds;
    if (NameR.startswith("rm.neon.vhaddu.")) return Intrinsic::arm_neon_vhaddu;
    if (NameR.startswith("rm.neon.vhsubs.")) return Intrinsic::arm_neon_vhsubs;
    if (NameR.startswith("rm.neon.vhsubu.")) return Intrinsic::arm_neon_vhsubu;
    if (NameR.startswith("rm.neon.vld1.")) return Intrinsic::arm_neon_vld1;
    if (NameR.startswith("rm.neon.vld2.")) return Intrinsic::arm_neon_vld2;
    if (NameR.startswith("rm.neon.vld2lane.")) return Intrinsic::arm_neon_vld2lane;
    if (NameR.startswith("rm.neon.vld3.")) return Intrinsic::arm_neon_vld3;
    if (NameR.startswith("rm.neon.vld3lane.")) return Intrinsic::arm_neon_vld3lane;
    if (NameR.startswith("rm.neon.vld4.")) return Intrinsic::arm_neon_vld4;
    if (NameR.startswith("rm.neon.vld4lane.")) return Intrinsic::arm_neon_vld4lane;
    if (NameR.startswith("rm.neon.vmaxs.")) return Intrinsic::arm_neon_vmaxs;
    if (NameR.startswith("rm.neon.vmaxu.")) return Intrinsic::arm_neon_vmaxu;
    if (NameR.startswith("rm.neon.vmins.")) return Intrinsic::arm_neon_vmins;
    if (NameR.startswith("rm.neon.vminu.")) return Intrinsic::arm_neon_vminu;
    if (NameR.startswith("rm.neon.vmullp.")) return Intrinsic::arm_neon_vmullp;
    if (NameR.startswith("rm.neon.vmulls.")) return Intrinsic::arm_neon_vmulls;
    if (NameR.startswith("rm.neon.vmullu.")) return Intrinsic::arm_neon_vmullu;
    if (NameR.startswith("rm.neon.vmulp.")) return Intrinsic::arm_neon_vmulp;
    if (NameR.startswith("rm.neon.vpadals.")) return Intrinsic::arm_neon_vpadals;
    if (NameR.startswith("rm.neon.vpadalu.")) return Intrinsic::arm_neon_vpadalu;
    if (NameR.startswith("rm.neon.vpadd.")) return Intrinsic::arm_neon_vpadd;
    if (NameR.startswith("rm.neon.vpaddls.")) return Intrinsic::arm_neon_vpaddls;
    if (NameR.startswith("rm.neon.vpaddlu.")) return Intrinsic::arm_neon_vpaddlu;
    if (NameR.startswith("rm.neon.vpmaxs.")) return Intrinsic::arm_neon_vpmaxs;
    if (NameR.startswith("rm.neon.vpmaxu.")) return Intrinsic::arm_neon_vpmaxu;
    if (NameR.startswith("rm.neon.vpmins.")) return Intrinsic::arm_neon_vpmins;
    if (NameR.startswith("rm.neon.vpminu.")) return Intrinsic::arm_neon_vpminu;
    if (NameR.startswith("rm.neon.vqabs.")) return Intrinsic::arm_neon_vqabs;
    if (NameR.startswith("rm.neon.vqadds.")) return Intrinsic::arm_neon_vqadds;
    if (NameR.startswith("rm.neon.vqaddu.")) return Intrinsic::arm_neon_vqaddu;
    if (NameR.startswith("rm.neon.vqdmlal.")) return Intrinsic::arm_neon_vqdmlal;
    if (NameR.startswith("rm.neon.vqdmlsl.")) return Intrinsic::arm_neon_vqdmlsl;
    if (NameR.startswith("rm.neon.vqdmulh.")) return Intrinsic::arm_neon_vqdmulh;
    if (NameR.startswith("rm.neon.vqdmull.")) return Intrinsic::arm_neon_vqdmull;
    if (NameR.startswith("rm.neon.vqmovns.")) return Intrinsic::arm_neon_vqmovns;
    if (NameR.startswith("rm.neon.vqmovnsu.")) return Intrinsic::arm_neon_vqmovnsu;
    if (NameR.startswith("rm.neon.vqmovnu.")) return Intrinsic::arm_neon_vqmovnu;
    if (NameR.startswith("rm.neon.vqneg.")) return Intrinsic::arm_neon_vqneg;
    if (NameR.startswith("rm.neon.vqrdmulh.")) return Intrinsic::arm_neon_vqrdmulh;
    if (NameR.startswith("rm.neon.vqrshiftns.")) return Intrinsic::arm_neon_vqrshiftns;
    if (NameR.startswith("rm.neon.vqrshiftnsu.")) return Intrinsic::arm_neon_vqrshiftnsu;
    if (NameR.startswith("rm.neon.vqrshiftnu.")) return Intrinsic::arm_neon_vqrshiftnu;
    if (NameR.startswith("rm.neon.vqrshifts.")) return Intrinsic::arm_neon_vqrshifts;
    if (NameR.startswith("rm.neon.vqrshiftu.")) return Intrinsic::arm_neon_vqrshiftu;
    if (NameR.startswith("rm.neon.vqshiftns.")) return Intrinsic::arm_neon_vqshiftns;
    if (NameR.startswith("rm.neon.vqshiftnsu.")) return Intrinsic::arm_neon_vqshiftnsu;
    if (NameR.startswith("rm.neon.vqshiftnu.")) return Intrinsic::arm_neon_vqshiftnu;
    if (NameR.startswith("rm.neon.vqshifts.")) return Intrinsic::arm_neon_vqshifts;
    if (NameR.startswith("rm.neon.vqshiftsu.")) return Intrinsic::arm_neon_vqshiftsu;
    if (NameR.startswith("rm.neon.vqshiftu.")) return Intrinsic::arm_neon_vqshiftu;
    if (NameR.startswith("rm.neon.vqsubs.")) return Intrinsic::arm_neon_vqsubs;
    if (NameR.startswith("rm.neon.vqsubu.")) return Intrinsic::arm_neon_vqsubu;
    if (NameR.startswith("rm.neon.vraddhn.")) return Intrinsic::arm_neon_vraddhn;
    if (NameR.startswith("rm.neon.vrecpe.")) return Intrinsic::arm_neon_vrecpe;
    if (NameR.startswith("rm.neon.vrecps.")) return Intrinsic::arm_neon_vrecps;
    if (NameR.startswith("rm.neon.vrhadds.")) return Intrinsic::arm_neon_vrhadds;
    if (NameR.startswith("rm.neon.vrhaddu.")) return Intrinsic::arm_neon_vrhaddu;
    if (NameR.startswith("rm.neon.vrshiftn.")) return Intrinsic::arm_neon_vrshiftn;
    if (NameR.startswith("rm.neon.vrshifts.")) return Intrinsic::arm_neon_vrshifts;
    if (NameR.startswith("rm.neon.vrshiftu.")) return Intrinsic::arm_neon_vrshiftu;
    if (NameR.startswith("rm.neon.vrsqrte.")) return Intrinsic::arm_neon_vrsqrte;
    if (NameR.startswith("rm.neon.vrsqrts.")) return Intrinsic::arm_neon_vrsqrts;
    if (NameR.startswith("rm.neon.vrsubhn.")) return Intrinsic::arm_neon_vrsubhn;
    if (NameR.startswith("rm.neon.vshiftins.")) return Intrinsic::arm_neon_vshiftins;
    if (NameR.startswith("rm.neon.vshiftls.")) return Intrinsic::arm_neon_vshiftls;
    if (NameR.startswith("rm.neon.vshiftlu.")) return Intrinsic::arm_neon_vshiftlu;
    if (NameR.startswith("rm.neon.vshiftn.")) return Intrinsic::arm_neon_vshiftn;
    if (NameR.startswith("rm.neon.vshifts.")) return Intrinsic::arm_neon_vshifts;
    if (NameR.startswith("rm.neon.vshiftu.")) return Intrinsic::arm_neon_vshiftu;
    if (NameR.startswith("rm.neon.vst1.")) return Intrinsic::arm_neon_vst1;
    if (NameR.startswith("rm.neon.vst2.")) return Intrinsic::arm_neon_vst2;
    if (NameR.startswith("rm.neon.vst2lane.")) return Intrinsic::arm_neon_vst2lane;
    if (NameR.startswith("rm.neon.vst3.")) return Intrinsic::arm_neon_vst3;
    if (NameR.startswith("rm.neon.vst3lane.")) return Intrinsic::arm_neon_vst3lane;
    if (NameR.startswith("rm.neon.vst4.")) return Intrinsic::arm_neon_vst4;
    if (NameR.startswith("rm.neon.vst4lane.")) return Intrinsic::arm_neon_vst4lane;
    if (NameR.startswith("rm.neon.vsubhn.")) return Intrinsic::arm_neon_vsubhn;
    if (NameR.startswith("rm.vcvtr.")) return Intrinsic::arm_vcvtr;
    if (NameR.startswith("rm.vcvtru.")) return Intrinsic::arm_vcvtru;
    switch (NameR.size()) {
    default: break;
    case 6:	 // 3 strings to match.
      if (memcmp(NameR.data()+0, "rm.", 3))
        break;
      switch (NameR[3]) {
      default: break;
      case 'c':	 // 1 string to match.
        if (memcmp(NameR.data()+4, "dp", 2))
          break;
        return Intrinsic::arm_cdp;	 // "rm.cdp"
      case 'm':	 // 2 strings to match.
        switch (NameR[4]) {
        default: break;
        case 'c':	 // 1 string to match.
          if (NameR[5] != 'r')
            break;
          return Intrinsic::arm_mcr;	 // "rm.mcr"
        case 'r':	 // 1 string to match.
          if (NameR[5] != 'c')
            break;
          return Intrinsic::arm_mrc;	 // "rm.mrc"
        }
        break;
      }
      break;
    case 7:	 // 8 strings to match.
      if (memcmp(NameR.data()+0, "rm.", 3))
        break;
      switch (NameR[3]) {
      default: break;
      case 'c':	 // 1 string to match.
        if (memcmp(NameR.data()+4, "dp2", 3))
          break;
        return Intrinsic::arm_cdp2;	 // "rm.cdp2"
      case 'm':	 // 3 strings to match.
        switch (NameR[4]) {
        default: break;
        case 'c':	 // 2 strings to match.
          if (NameR[5] != 'r')
            break;
          switch (NameR[6]) {
          default: break;
          case '2':	 // 1 string to match.
            return Intrinsic::arm_mcr2;	 // "rm.mcr2"
          case 'r':	 // 1 string to match.
            return Intrinsic::arm_mcrr;	 // "rm.mcrr"
          }
          break;
        case 'r':	 // 1 string to match.
          if (memcmp(NameR.data()+5, "c2", 2))
            break;
          return Intrinsic::arm_mrc2;	 // "rm.mrc2"
        }
        break;
      case 'q':	 // 2 strings to match.
        switch (NameR[4]) {
        default: break;
        case 'a':	 // 1 string to match.
          if (memcmp(NameR.data()+5, "dd", 2))
            break;
          return Intrinsic::arm_qadd;	 // "rm.qadd"
        case 's':	 // 1 string to match.
          if (memcmp(NameR.data()+5, "ub", 2))
            break;
          return Intrinsic::arm_qsub;	 // "rm.qsub"
        }
        break;
      case 's':	 // 1 string to match.
        if (memcmp(NameR.data()+4, "sat", 3))
          break;
        return Intrinsic::arm_ssat;	 // "rm.ssat"
      case 'u':	 // 1 string to match.
        if (memcmp(NameR.data()+4, "sat", 3))
          break;
        return Intrinsic::arm_usat;	 // "rm.usat"
      }
      break;
    case 8:	 // 1 string to match.
      if (memcmp(NameR.data()+0, "rm.mcrr2", 8))
        break;
      return Intrinsic::arm_mcrr2;	 // "rm.mcrr2"
    case 9:	 // 2 strings to match.
      if (memcmp(NameR.data()+0, "rm.", 3))
        break;
      switch (NameR[3]) {
      default: break;
      case 'l':	 // 1 string to match.
        if (memcmp(NameR.data()+4, "drexd", 5))
          break;
        return Intrinsic::arm_ldrexd;	 // "rm.ldrexd"
      case 's':	 // 1 string to match.
        if (memcmp(NameR.data()+4, "trexd", 5))
          break;
        return Intrinsic::arm_strexd;	 // "rm.strexd"
      }
      break;
    case 12:	 // 2 strings to match.
      if (memcmp(NameR.data()+0, "rm.", 3))
        break;
      switch (NameR[3]) {
      default: break;
      case 'g':	 // 1 string to match.
        if (memcmp(NameR.data()+4, "et.fpscr", 8))
          break;
        return Intrinsic::arm_get_fpscr;	 // "rm.get.fpscr"
      case 's':	 // 1 string to match.
        if (memcmp(NameR.data()+4, "et.fpscr", 8))
          break;
        return Intrinsic::arm_set_fpscr;	 // "rm.set.fpscr"
      }
      break;
    case 13:	 // 8 strings to match.
      if (memcmp(NameR.data()+0, "rm.neon.vtb", 11))
        break;
      switch (NameR[11]) {
      default: break;
      case 'l':	 // 4 strings to match.
        switch (NameR[12]) {
        default: break;
        case '1':	 // 1 string to match.
          return Intrinsic::arm_neon_vtbl1;	 // "rm.neon.vtbl1"
        case '2':	 // 1 string to match.
          return Intrinsic::arm_neon_vtbl2;	 // "rm.neon.vtbl2"
        case '3':	 // 1 string to match.
          return Intrinsic::arm_neon_vtbl3;	 // "rm.neon.vtbl3"
        case '4':	 // 1 string to match.
          return Intrinsic::arm_neon_vtbl4;	 // "rm.neon.vtbl4"
        }
        break;
      case 'x':	 // 4 strings to match.
        switch (NameR[12]) {
        default: break;
        case '1':	 // 1 string to match.
          return Intrinsic::arm_neon_vtbx1;	 // "rm.neon.vtbx1"
        case '2':	 // 1 string to match.
          return Intrinsic::arm_neon_vtbx2;	 // "rm.neon.vtbx2"
        case '3':	 // 1 string to match.
          return Intrinsic::arm_neon_vtbx3;	 // "rm.neon.vtbx3"
        case '4':	 // 1 string to match.
          return Intrinsic::arm_neon_vtbx4;	 // "rm.neon.vtbx4"
        }
        break;
      }
      break;
    case 14:	 // 4 strings to match.
      if (memcmp(NameR.data()+0, "rm.neon.vacg", 12))
        break;
      switch (NameR[12]) {
      default: break;
      case 'e':	 // 2 strings to match.
        switch (NameR[13]) {
        default: break;
        case 'd':	 // 1 string to match.
          return Intrinsic::arm_neon_vacged;	 // "rm.neon.vacged"
        case 'q':	 // 1 string to match.
          return Intrinsic::arm_neon_vacgeq;	 // "rm.neon.vacgeq"
        }
        break;
      case 't':	 // 2 strings to match.
        switch (NameR[13]) {
        default: break;
        case 'd':	 // 1 string to match.
          return Intrinsic::arm_neon_vacgtd;	 // "rm.neon.vacgtd"
        case 'q':	 // 1 string to match.
          return Intrinsic::arm_neon_vacgtq;	 // "rm.neon.vacgtq"
        }
        break;
      }
      break;
    case 16:	 // 1 string to match.
      if (memcmp(NameR.data()+0, "djust.trampoline", 16))
        break;
      return Intrinsic::adjust_trampoline;	 // "djust.trampoline"
    case 17:	 // 3 strings to match.
      if (memcmp(NameR.data()+0, "rm.", 3))
        break;
      switch (NameR[3]) {
      default: break;
      case 'n':	 // 2 strings to match.
        if (memcmp(NameR.data()+4, "eon.vcvt", 8))
          break;
        switch (NameR[12]) {
        default: break;
        case 'f':	 // 1 string to match.
          if (memcmp(NameR.data()+13, "p2hf", 4))
            break;
          return Intrinsic::arm_neon_vcvtfp2hf;	 // "rm.neon.vcvtfp2hf"
        case 'h':	 // 1 string to match.
          if (memcmp(NameR.data()+13, "f2fp", 4))
            break;
          return Intrinsic::arm_neon_vcvthf2fp;	 // "rm.neon.vcvthf2fp"
        }
        break;
      case 't':	 // 1 string to match.
        if (memcmp(NameR.data()+4, "hread.pointer", 13))
          break;
        return Intrinsic::arm_thread_pointer;	 // "rm.thread.pointer"
      }
      break;
    }
    break;  // end of 'a' case.
  case 'b':
    if (NameR.startswith("swap.")) return Intrinsic::bswap;
    break;  // end of 'b' case.
  case 'c':
    if (NameR.startswith("onvertff.")) return Intrinsic::convertff;
    if (NameR.startswith("onvertfsi.")) return Intrinsic::convertfsi;
    if (NameR.startswith("onvertfui.")) return Intrinsic::convertfui;
    if (NameR.startswith("onvertsif.")) return Intrinsic::convertsif;
    if (NameR.startswith("onvertss.")) return Intrinsic::convertss;
    if (NameR.startswith("onvertsu.")) return Intrinsic::convertsu;
    if (NameR.startswith("onvertuif.")) return Intrinsic::convertuif;
    if (NameR.startswith("onvertus.")) return Intrinsic::convertus;
    if (NameR.startswith("onvertuu.")) return Intrinsic::convertuu;
    if (NameR.startswith("os.")) return Intrinsic::cos;
    if (NameR.startswith("tlz.")) return Intrinsic::ctlz;
    if (NameR.startswith("tpop.")) return Intrinsic::ctpop;
    if (NameR.startswith("ttz.")) return Intrinsic::cttz;
    switch (NameR.size()) {
    default: break;
    case 14:	 // 1 string to match.
      if (memcmp(NameR.data()+0, "onvert.to.fp16", 14))
        break;
      return Intrinsic::convert_to_fp16;	 // "onvert.to.fp16"
    case 15:	 // 1 string to match.
      if (memcmp(NameR.data()+0, "uda.syncthreads", 15))
        break;
      return Intrinsic::cuda_syncthreads;	 // "uda.syncthreads"
    case 16:	 // 1 string to match.
      if (memcmp(NameR.data()+0, "onvert.from.fp16", 16))
        break;
      return Intrinsic::convert_from_fp16;	 // "onvert.from.fp16"
    }
    break;  // end of 'c' case.
  case 'd':
    switch (NameR.size()) {
    default: break;
    case 8:	 // 3 strings to match.
      switch (NameR[0]) {
      default: break;
      case 'b':	 // 1 string to match.
        if (memcmp(NameR.data()+1, "g.value", 7))
          break;
        return Intrinsic::dbg_value;	 // "bg.value"
      case 'e':	 // 1 string to match.
        if (memcmp(NameR.data()+1, "bugtrap", 7))
          break;
        return Intrinsic::debugtrap;	 // "ebugtrap"
      case 'o':	 // 1 string to match.
        if (memcmp(NameR.data()+1, "nothing", 7))
          break;
        return Intrinsic::donothing;	 // "onothing"
      }
      break;
    case 10:	 // 1 string to match.
      if (memcmp(NameR.data()+0, "bg.declare", 10))
        break;
      return Intrinsic::dbg_declare;	 // "bg.declare"
    }
    break;  // end of 'd' case.
  case 'e':
    if (NameR.startswith("xp.")) return Intrinsic::exp;
    if (NameR.startswith("xp2.")) return Intrinsic::exp2;
    if (NameR.startswith("xpect.")) return Intrinsic::expect;
    switch (NameR.size()) {
    default: break;
    case 11:	 // 2 strings to match.
      if (memcmp(NameR.data()+0, "h.", 2))
        break;
      switch (NameR[2]) {
      default: break;
      case 'd':	 // 1 string to match.
        if (memcmp(NameR.data()+3, "warf.cfa", 8))
          break;
        return Intrinsic::eh_dwarf_cfa;	 // "h.dwarf.cfa"
      case 's':	 // 1 string to match.
        if (memcmp(NameR.data()+3, "jlj.lsda", 8))
          break;
        return Intrinsic::eh_sjlj_lsda;	 // "h.sjlj.lsda"
      }
      break;
    case 12:	 // 3 strings to match.
      if (memcmp(NameR.data()+0, "h.", 2))
        break;
      switch (NameR[2]) {
      default: break;
      case 'r':	 // 2 strings to match.
        if (memcmp(NameR.data()+3, "eturn.i", 7))
          break;
        switch (NameR[10]) {
        default: break;
        case '3':	 // 1 string to match.
          if (NameR[11] != '2')
            break;
          return Intrinsic::eh_return_i32;	 // "h.return.i32"
        case '6':	 // 1 string to match.
          if (NameR[11] != '4')
            break;
          return Intrinsic::eh_return_i64;	 // "h.return.i64"
        }
        break;
      case 't':	 // 1 string to match.
        if (memcmp(NameR.data()+3, "ypeid.for", 9))
          break;
        return Intrinsic::eh_typeid_for;	 // "h.typeid.for"
      }
      break;
    case 13:	 // 2 strings to match.
      if (memcmp(NameR.data()+0, "h.", 2))
        break;
      switch (NameR[2]) {
      default: break;
      case 's':	 // 1 string to match.
        if (memcmp(NameR.data()+3, "jlj.setjmp", 10))
          break;
        return Intrinsic::eh_sjlj_setjmp;	 // "h.sjlj.setjmp"
      case 'u':	 // 1 string to match.
        if (memcmp(NameR.data()+3, "nwind.init", 10))
          break;
        return Intrinsic::eh_unwind_init;	 // "h.unwind.init"
      }
      break;
    case 14:	 // 1 string to match.
      if (memcmp(NameR.data()+0, "h.sjlj.longjmp", 14))
        break;
      return Intrinsic::eh_sjlj_longjmp;	 // "h.sjlj.longjmp"
    case 15:	 // 1 string to match.
      if (memcmp(NameR.data()+0, "h.sjlj.callsite", 15))
        break;
      return Intrinsic::eh_sjlj_callsite;	 // "h.sjlj.callsite"
    case 22:	 // 1 string to match.
      if (memcmp(NameR.data()+0, "h.sjlj.functioncontext", 22))
        break;
      return Intrinsic::eh_sjlj_functioncontext;	 // "h.sjlj.functioncontext"
    }
    break;  // end of 'e' case.
  case 'f':
    if (NameR.startswith("abs.")) return Intrinsic::fabs;
    if (NameR.startswith("loor.")) return Intrinsic::floor;
    if (NameR.startswith("ma.")) return Intrinsic::fma;
    if (NameR.startswith("muladd.")) return Intrinsic::fmuladd;
    switch (NameR.size()) {
    default: break;
    case 9:	 // 1 string to match.
      if (memcmp(NameR.data()+0, "lt.rounds", 9))
        break;
      return Intrinsic::flt_rounds;	 // "lt.rounds"
    case 11:	 // 1 string to match.
      if (memcmp(NameR.data()+0, "rameaddress", 11))
        break;
      return Intrinsic::frameaddress;	 // "rameaddress"
    }
    break;  // end of 'f' case.
  case 'g':
    switch (NameR.size()) {
    default: break;
    case 5:	 // 2 strings to match.
      if (memcmp(NameR.data()+0, "cr", 2))
        break;
      switch (NameR[2]) {
      default: break;
      case 'e':	 // 1 string to match.
        if (memcmp(NameR.data()+3, "ad", 2))
          break;
        return Intrinsic::gcread;	 // "cread"
      case 'o':	 // 1 string to match.
        if (memcmp(NameR.data()+3, "ot", 2))
          break;
        return Intrinsic::gcroot;	 // "croot"
      }
      break;
    case 6:	 // 1 string to match.
      if (memcmp(NameR.data()+0, "cwrite", 6))
        break;
      return Intrinsic::gcwrite;	 // "cwrite"
    }
    break;  // end of 'g' case.
  case 'h':
    switch (NameR.size()) {
    default: break;
    case 12:	 // 2 strings to match.
      if (memcmp(NameR.data()+0, "exagon.", 7))
        break;
      switch (NameR[7]) {
      default: break;
      case 'A':	 // 1 string to match.
        if (memcmp(NameR.data()+8, "2.or", 4))
          break;
        return Intrinsic::hexagon_A2_or;	 // "exagon.A2.or"
      case 'C':	 // 1 string to match.
        if (memcmp(NameR.data()+8, "2.or", 4))
          break;
        return Intrinsic::hexagon_C2_or;	 // "exagon.C2.or"
      }
      break;
    case 13:	 // 23 strings to match.
      if (memcmp(NameR.data()+0, "exagon.", 7))
        break;
      switch (NameR[7]) {
      default: break;
      case 'A':	 // 13 strings to match.
        switch (NameR[8]) {
        default: break;
        case '2':	 // 12 strings to match.
          if (NameR[9] != '.')
            break;
          switch (NameR[10]) {
          default: break;
          case 'a':	 // 3 strings to match.
            switch (NameR[11]) {
            default: break;
            case 'b':	 // 1 string to match.
              if (NameR[12] != 's')
                break;
              return Intrinsic::hexagon_A2_abs;	 // "exagon.A2.abs"
            case 'd':	 // 1 string to match.
              if (NameR[12] != 'd')
                break;
              return Intrinsic::hexagon_A2_add;	 // "exagon.A2.add"
            case 'n':	 // 1 string to match.
              if (NameR[12] != 'd')
                break;
              return Intrinsic::hexagon_A2_and;	 // "exagon.A2.and"
            }
            break;
          case 'm':	 // 2 strings to match.
            switch (NameR[11]) {
            default: break;
            case 'a':	 // 1 string to match.
              if (NameR[12] != 'x')
                break;
              return Intrinsic::hexagon_A2_max;	 // "exagon.A2.max"
            case 'i':	 // 1 string to match.
              if (NameR[12] != 'n')
                break;
              return Intrinsic::hexagon_A2_min;	 // "exagon.A2.min"
            }
            break;
          case 'n':	 // 2 strings to match.
            switch (NameR[11]) {
            default: break;
            case 'e':	 // 1 string to match.
              if (NameR[12] != 'g')
                break;
              return Intrinsic::hexagon_A2_neg;	 // "exagon.A2.neg"
            case 'o':	 // 1 string to match.
              if (NameR[12] != 't')
                break;
              return Intrinsic::hexagon_A2_not;	 // "exagon.A2.not"
            }
            break;
          case 'o':	 // 1 string to match.
            if (memcmp(NameR.data()+11, "rp", 2))
              break;
            return Intrinsic::hexagon_A2_orp;	 // "exagon.A2.orp"
          case 's':	 // 2 strings to match.
            switch (NameR[11]) {
            default: break;
            case 'a':	 // 1 string to match.
              if (NameR[12] != 't')
                break;
              return Intrinsic::hexagon_A2_sat;	 // "exagon.A2.sat"
            case 'u':	 // 1 string to match.
              if (NameR[12] != 'b')
                break;
              return Intrinsic::hexagon_A2_sub;	 // "exagon.A2.sub"
            }
            break;
          case 't':	 // 1 string to match.
            if (memcmp(NameR.data()+11, "fr", 2))
              break;
            return Intrinsic::hexagon_A2_tfr;	 // "exagon.A2.tfr"
          case 'x':	 // 1 string to match.
            if (memcmp(NameR.data()+11, "or", 2))
              break;
            return Intrinsic::hexagon_A2_xor;	 // "exagon.A2.xor"
          }
          break;
        case '4':	 // 1 string to match.
          if (memcmp(NameR.data()+9, ".orn", 4))
            break;
          return Intrinsic::hexagon_A4_orn;	 // "exagon.A4.orn"
        }
        break;
      case 'C':	 // 5 strings to match.
        if (memcmp(NameR.data()+8, "2.", 2))
          break;
        switch (NameR[10]) {
        default: break;
        case 'a':	 // 1 string to match.
          if (memcmp(NameR.data()+11, "nd", 2))
            break;
          return Intrinsic::hexagon_C2_and;	 // "exagon.C2.and"
        case 'm':	 // 1 string to match.
          if (memcmp(NameR.data()+11, "ux", 2))
            break;
          return Intrinsic::hexagon_C2_mux;	 // "exagon.C2.mux"
        case 'n':	 // 1 string to match.
          if (memcmp(NameR.data()+11, "ot", 2))
            break;
          return Intrinsic::hexagon_C2_not;	 // "exagon.C2.not"
        case 'o':	 // 1 string to match.
          if (memcmp(NameR.data()+11, "rn", 2))
            break;
          return Intrinsic::hexagon_C2_orn;	 // "exagon.C2.orn"
        case 'x':	 // 1 string to match.
          if (memcmp(NameR.data()+11, "or", 2))
            break;
          return Intrinsic::hexagon_C2_xor;	 // "exagon.C2.xor"
        }
        break;
      case 'S':	 // 5 strings to match.
        if (memcmp(NameR.data()+8, "2.c", 3))
          break;
        switch (NameR[11]) {
        default: break;
        case 'l':	 // 3 strings to match.
          switch (NameR[12]) {
          default: break;
          case '0':	 // 1 string to match.
            return Intrinsic::hexagon_S2_cl0;	 // "exagon.S2.cl0"
          case '1':	 // 1 string to match.
            return Intrinsic::hexagon_S2_cl1;	 // "exagon.S2.cl1"
          case 'b':	 // 1 string to match.
            return Intrinsic::hexagon_S2_clb;	 // "exagon.S2.clb"
          }
          break;
        case 't':	 // 2 strings to match.
          switch (NameR[12]) {
          default: break;
          case '0':	 // 1 string to match.
            return Intrinsic::hexagon_S2_ct0;	 // "exagon.S2.ct0"
          case '1':	 // 1 string to match.
            return Intrinsic::hexagon_S2_ct1;	 // "exagon.S2.ct1"
          }
          break;
        }
        break;
      }
      break;
    case 14:	 // 42 strings to match.
      if (memcmp(NameR.data()+0, "exagon.", 7))
        break;
      switch (NameR[7]) {
      default: break;
      case 'A':	 // 26 strings to match.
        switch (NameR[8]) {
        default: break;
        case '2':	 // 24 strings to match.
          if (NameR[9] != '.')
            break;
          switch (NameR[10]) {
          default: break;
          case 'a':	 // 6 strings to match.
            switch (NameR[11]) {
            default: break;
            case 'b':	 // 1 string to match.
              if (memcmp(NameR.data()+12, "sp", 2))
                break;
              return Intrinsic::hexagon_A2_absp;	 // "exagon.A2.absp"
            case 'd':	 // 2 strings to match.
              if (NameR[12] != 'd')
                break;
              switch (NameR[13]) {
              default: break;
              case 'i':	 // 1 string to match.
                return Intrinsic::hexagon_A2_addi;	 // "exagon.A2.addi"
              case 'p':	 // 1 string to match.
                return Intrinsic::hexagon_A2_addp;	 // "exagon.A2.addp"
              }
              break;
            case 'n':	 // 1 string to match.
              if (memcmp(NameR.data()+12, "dp", 2))
                break;
              return Intrinsic::hexagon_A2_andp;	 // "exagon.A2.andp"
            case 's':	 // 2 strings to match.
              switch (NameR[12]) {
              default: break;
              case 'l':	 // 1 string to match.
                if (NameR[13] != 'h')
                  break;
                return Intrinsic::hexagon_A2_aslh;	 // "exagon.A2.aslh"
              case 'r':	 // 1 string to match.
                if (NameR[13] != 'h')
                  break;
                return Intrinsic::hexagon_A2_asrh;	 // "exagon.A2.asrh"
              }
              break;
            }
            break;
          case 'm':	 // 4 strings to match.
            switch (NameR[11]) {
            default: break;
            case 'a':	 // 2 strings to match.
              if (NameR[12] != 'x')
                break;
              switch (NameR[13]) {
              default: break;
              case 'p':	 // 1 string to match.
                return Intrinsic::hexagon_A2_maxp;	 // "exagon.A2.maxp"
              case 'u':	 // 1 string to match.
                return Intrinsic::hexagon_A2_maxu;	 // "exagon.A2.maxu"
              }
              break;
            case 'i':	 // 2 strings to match.
              if (NameR[12] != 'n')
                break;
              switch (NameR[13]) {
              default: break;
              case 'p':	 // 1 string to match.
                return Intrinsic::hexagon_A2_minp;	 // "exagon.A2.minp"
              case 'u':	 // 1 string to match.
                return Intrinsic::hexagon_A2_minu;	 // "exagon.A2.minu"
              }
              break;
            }
            break;
          case 'n':	 // 2 strings to match.
            switch (NameR[11]) {
            default: break;
            case 'e':	 // 1 string to match.
              if (memcmp(NameR.data()+12, "gp", 2))
                break;
              return Intrinsic::hexagon_A2_negp;	 // "exagon.A2.negp"
            case 'o':	 // 1 string to match.
              if (memcmp(NameR.data()+12, "tp", 2))
                break;
              return Intrinsic::hexagon_A2_notp;	 // "exagon.A2.notp"
            }
            break;
          case 'o':	 // 1 string to match.
            if (memcmp(NameR.data()+11, "rir", 3))
              break;
            return Intrinsic::hexagon_A2_orir;	 // "exagon.A2.orir"
          case 's':	 // 7 strings to match.
            switch (NameR[11]) {
            default: break;
            case 'a':	 // 2 strings to match.
              if (NameR[12] != 't')
                break;
              switch (NameR[13]) {
              default: break;
              case 'b':	 // 1 string to match.
                return Intrinsic::hexagon_A2_satb;	 // "exagon.A2.satb"
              case 'h':	 // 1 string to match.
                return Intrinsic::hexagon_A2_sath;	 // "exagon.A2.sath"
              }
              break;
            case 'u':	 // 1 string to match.
              if (memcmp(NameR.data()+12, "bp", 2))
                break;
              return Intrinsic::hexagon_A2_subp;	 // "exagon.A2.subp"
            case 'w':	 // 1 string to match.
              if (memcmp(NameR.data()+12, "iz", 2))
                break;
              return Intrinsic::hexagon_A2_swiz;	 // "exagon.A2.swiz"
            case 'x':	 // 3 strings to match.
              if (NameR[12] != 't')
                break;
              switch (NameR[13]) {
              default: break;
              case 'b':	 // 1 string to match.
                return Intrinsic::hexagon_A2_sxtb;	 // "exagon.A2.sxtb"
              case 'h':	 // 1 string to match.
                return Intrinsic::hexagon_A2_sxth;	 // "exagon.A2.sxth"
              case 'w':	 // 1 string to match.
                return Intrinsic::hexagon_A2_sxtw;	 // "exagon.A2.sxtw"
              }
              break;
            }
            break;
          case 't':	 // 1 string to match.
            if (memcmp(NameR.data()+11, "frp", 3))
              break;
            return Intrinsic::hexagon_A2_tfrp;	 // "exagon.A2.tfrp"
          case 'x':	 // 1 string to match.
            if (memcmp(NameR.data()+11, "orp", 3))
              break;
            return Intrinsic::hexagon_A2_xorp;	 // "exagon.A2.xorp"
          case 'z':	 // 2 strings to match.
            if (memcmp(NameR.data()+11, "xt", 2))
              break;
            switch (NameR[13]) {
            default: break;
            case 'b':	 // 1 string to match.
              return Intrinsic::hexagon_A2_zxtb;	 // "exagon.A2.zxtb"
            case 'h':	 // 1 string to match.
              return Intrinsic::hexagon_A2_zxth;	 // "exagon.A2.zxth"
            }
            break;
          }
          break;
        case '4':	 // 2 strings to match.
          if (NameR[9] != '.')
            break;
          switch (NameR[10]) {
          default: break;
          case 'a':	 // 1 string to match.
            if (memcmp(NameR.data()+11, "ndn", 3))
              break;
            return Intrinsic::hexagon_A4_andn;	 // "exagon.A4.andn"
          case 'o':	 // 1 string to match.
            if (memcmp(NameR.data()+11, "rnp", 3))
              break;
            return Intrinsic::hexagon_A4_ornp;	 // "exagon.A4.ornp"
          }
          break;
        }
        break;
      case 'C':	 // 5 strings to match.
        if (memcmp(NameR.data()+8, "2.", 2))
          break;
        switch (NameR[10]) {
        default: break;
        case 'a':	 // 3 strings to match.
          switch (NameR[11]) {
          default: break;
          case 'l':	 // 1 string to match.
            if (memcmp(NameR.data()+12, "l8", 2))
              break;
            return Intrinsic::hexagon_C2_all8;	 // "exagon.C2.all8"
          case 'n':	 // 2 strings to match.
            switch (NameR[12]) {
            default: break;
            case 'd':	 // 1 string to match.
              if (NameR[13] != 'n')
                break;
              return Intrinsic::hexagon_C2_andn;	 // "exagon.C2.andn"
            case 'y':	 // 1 string to match.
              if (NameR[13] != '8')
                break;
              return Intrinsic::hexagon_C2_any8;	 // "exagon.C2.any8"
            }
            break;
          }
          break;
        case 'm':	 // 1 string to match.
          if (memcmp(NameR.data()+11, "ask", 3))
            break;
          return Intrinsic::hexagon_C2_mask;	 // "exagon.C2.mask"
        case 'v':	 // 1 string to match.
          if (memcmp(NameR.data()+11, "mux", 3))
            break;
          return Intrinsic::hexagon_C2_vmux;	 // "exagon.C2.vmux"
        }
        break;
      case 'M':	 // 3 strings to match.
        if (memcmp(NameR.data()+8, "2.", 2))
          break;
        switch (NameR[10]) {
        default: break;
        case 'a':	 // 1 string to match.
          if (memcmp(NameR.data()+11, "cci", 3))
            break;
          return Intrinsic::hexagon_M2_acci;	 // "exagon.M2.acci"
        case 'm':	 // 2 strings to match.
          switch (NameR[11]) {
          default: break;
          case 'a':	 // 1 string to match.
            if (memcmp(NameR.data()+12, "ci", 2))
              break;
            return Intrinsic::hexagon_M2_maci;	 // "exagon.M2.maci"
          case 'p':	 // 1 string to match.
            if (memcmp(NameR.data()+12, "yi", 2))
              break;
            return Intrinsic::hexagon_M2_mpyi;	 // "exagon.M2.mpyi"
          }
          break;
        }
        break;
      case 'S':	 // 8 strings to match.
        switch (NameR[8]) {
        default: break;
        case '2':	 // 7 strings to match.
          if (NameR[9] != '.')
            break;
          switch (NameR[10]) {
          default: break;
          case 'b':	 // 1 string to match.
            if (memcmp(NameR.data()+11, "rev", 3))
              break;
            return Intrinsic::hexagon_S2_brev;	 // "exagon.S2.brev"
          case 'c':	 // 5 strings to match.
            switch (NameR[11]) {
            default: break;
            case 'l':	 // 3 strings to match.
              switch (NameR[12]) {
              default: break;
              case '0':	 // 1 string to match.
                if (NameR[13] != 'p')
                  break;
                return Intrinsic::hexagon_S2_cl0p;	 // "exagon.S2.cl0p"
              case '1':	 // 1 string to match.
                if (NameR[13] != 'p')
                  break;
                return Intrinsic::hexagon_S2_cl1p;	 // "exagon.S2.cl1p"
              case 'b':	 // 1 string to match.
                if (NameR[13] != 'p')
                  break;
                return Intrinsic::hexagon_S2_clbp;	 // "exagon.S2.clbp"
              }
              break;
            case 't':	 // 2 strings to match.
              switch (NameR[12]) {
              default: break;
              case '0':	 // 1 string to match.
                if (NameR[13] != 'p')
                  break;
                return Intrinsic::hexagon_S2_ct0p;	 // "exagon.S2.ct0p"
              case '1':	 // 1 string to match.
                if (NameR[13] != 'p')
                  break;
                return Intrinsic::hexagon_S2_ct1p;	 // "exagon.S2.ct1p"
              }
              break;
            }
            break;
          case 'l':	 // 1 string to match.
            if (memcmp(NameR.data()+11, "fsp", 3))
              break;
            return Intrinsic::hexagon_S2_lfsp;	 // "exagon.S2.lfsp"
          }
          break;
        case '4':	 // 1 string to match.
          if (memcmp(NameR.data()+9, ".lsli", 5))
            break;
          return Intrinsic::hexagon_S4_lsli;	 // "exagon.S4.lsli"
        }
        break;
      }
      break;
    case 15:	 // 58 strings to match.
      if (memcmp(NameR.data()+0, "exagon.", 7))
        break;
      switch (NameR[7]) {
      default: break;
      case 'A':	 // 27 strings to match.
        switch (NameR[8]) {
        default: break;
        case '2':	 // 26 strings to match.
          if (NameR[9] != '.')
            break;
          switch (NameR[10]) {
          default: break;
          case 'a':	 // 2 strings to match.
            switch (NameR[11]) {
            default: break;
            case 'd':	 // 1 string to match.
              if (memcmp(NameR.data()+12, "dsp", 3))
                break;
              return Intrinsic::hexagon_A2_addsp;	 // "exagon.A2.addsp"
            case 'n':	 // 1 string to match.
              if (memcmp(NameR.data()+12, "dir", 3))
                break;
              return Intrinsic::hexagon_A2_andir;	 // "exagon.A2.andir"
            }
            break;
          case 'm':	 // 2 strings to match.
            switch (NameR[11]) {
            default: break;
            case 'a':	 // 1 string to match.
              if (memcmp(NameR.data()+12, "xup", 3))
                break;
              return Intrinsic::hexagon_A2_maxup;	 // "exagon.A2.maxup"
            case 'i':	 // 1 string to match.
              if (memcmp(NameR.data()+12, "nup", 3))
                break;
              return Intrinsic::hexagon_A2_minup;	 // "exagon.A2.minup"
            }
            break;
          case 's':	 // 3 strings to match.
            switch (NameR[11]) {
            default: break;
            case 'a':	 // 2 strings to match.
              if (memcmp(NameR.data()+12, "tu", 2))
                break;
              switch (NameR[14]) {
              default: break;
              case 'b':	 // 1 string to match.
                return Intrinsic::hexagon_A2_satub;	 // "exagon.A2.satub"
              case 'h':	 // 1 string to match.
                return Intrinsic::hexagon_A2_satuh;	 // "exagon.A2.satuh"
              }
              break;
            case 'u':	 // 1 string to match.
              if (memcmp(NameR.data()+12, "bri", 3))
                break;
              return Intrinsic::hexagon_A2_subri;	 // "exagon.A2.subri"
            }
            break;
          case 't':	 // 4 strings to match.
            if (memcmp(NameR.data()+11, "fr", 2))
              break;
            switch (NameR[13]) {
            default: break;
            case 'i':	 // 2 strings to match.
              switch (NameR[14]) {
              default: break;
              case 'h':	 // 1 string to match.
                return Intrinsic::hexagon_A2_tfrih;	 // "exagon.A2.tfrih"
              case 'l':	 // 1 string to match.
                return Intrinsic::hexagon_A2_tfril;	 // "exagon.A2.tfril"
              }
              break;
            case 'p':	 // 1 string to match.
              if (NameR[14] != 'i')
                break;
              return Intrinsic::hexagon_A2_tfrpi;	 // "exagon.A2.tfrpi"
            case 's':	 // 1 string to match.
              if (NameR[14] != 'i')
                break;
              return Intrinsic::hexagon_A2_tfrsi;	 // "exagon.A2.tfrsi"
            }
            break;
          case 'v':	 // 15 strings to match.
            switch (NameR[11]) {
            default: break;
            case 'a':	 // 6 strings to match.
              switch (NameR[12]) {
              default: break;
              case 'b':	 // 2 strings to match.
                if (NameR[13] != 's')
                  break;
                switch (NameR[14]) {
                default: break;
                case 'h':	 // 1 string to match.
                  return Intrinsic::hexagon_A2_vabsh;	 // "exagon.A2.vabsh"
                case 'w':	 // 1 string to match.
                  return Intrinsic::hexagon_A2_vabsw;	 // "exagon.A2.vabsw"
                }
                break;
              case 'd':	 // 2 strings to match.
                if (NameR[13] != 'd')
                  break;
                switch (NameR[14]) {
                default: break;
                case 'h':	 // 1 string to match.
                  return Intrinsic::hexagon_A2_vaddh;	 // "exagon.A2.vaddh"
                case 'w':	 // 1 string to match.
                  return Intrinsic::hexagon_A2_vaddw;	 // "exagon.A2.vaddw"
                }
                break;
              case 'v':	 // 2 strings to match.
                if (NameR[13] != 'g')
                  break;
                switch (NameR[14]) {
                default: break;
                case 'h':	 // 1 string to match.
                  return Intrinsic::hexagon_A2_vavgh;	 // "exagon.A2.vavgh"
                case 'w':	 // 1 string to match.
                  return Intrinsic::hexagon_A2_vavgw;	 // "exagon.A2.vavgw"
                }
                break;
              }
              break;
            case 'c':	 // 1 string to match.
              if (memcmp(NameR.data()+12, "onj", 3))
                break;
              return Intrinsic::hexagon_A2_vconj;	 // "exagon.A2.vconj"
            case 'm':	 // 6 strings to match.
              switch (NameR[12]) {
              default: break;
              case 'a':	 // 3 strings to match.
                if (NameR[13] != 'x')
                  break;
                switch (NameR[14]) {
                default: break;
                case 'b':	 // 1 string to match.
                  return Intrinsic::hexagon_A2_vmaxb;	 // "exagon.A2.vmaxb"
                case 'h':	 // 1 string to match.
                  return Intrinsic::hexagon_A2_vmaxh;	 // "exagon.A2.vmaxh"
                case 'w':	 // 1 string to match.
                  return Intrinsic::hexagon_A2_vmaxw;	 // "exagon.A2.vmaxw"
                }
                break;
              case 'i':	 // 3 strings to match.
                if (NameR[13] != 'n')
                  break;
                switch (NameR[14]) {
                default: break;
                case 'b':	 // 1 string to match.
                  return Intrinsic::hexagon_A2_vminb;	 // "exagon.A2.vminb"
                case 'h':	 // 1 string to match.
                  return Intrinsic::hexagon_A2_vminh;	 // "exagon.A2.vminh"
                case 'w':	 // 1 string to match.
                  return Intrinsic::hexagon_A2_vminw;	 // "exagon.A2.vminw"
                }
                break;
              }
              break;
            case 's':	 // 2 strings to match.
              if (memcmp(NameR.data()+12, "ub", 2))
                break;
              switch (NameR[14]) {
              default: break;
              case 'h':	 // 1 string to match.
                return Intrinsic::hexagon_A2_vsubh;	 // "exagon.A2.vsubh"
              case 'w':	 // 1 string to match.
                return Intrinsic::hexagon_A2_vsubw;	 // "exagon.A2.vsubw"
              }
              break;
            }
            break;
          }
          break;
        case '4':	 // 1 string to match.
          if (memcmp(NameR.data()+9, ".andnp", 6))
            break;
          return Intrinsic::hexagon_A4_andnp;	 // "exagon.A4.andnp"
        }
        break;
      case 'C':	 // 9 strings to match.
        switch (NameR[8]) {
        default: break;
        case '2':	 // 8 strings to match.
          if (NameR[9] != '.')
            break;
          switch (NameR[10]) {
          default: break;
          case 'c':	 // 3 strings to match.
            if (memcmp(NameR.data()+11, "mp", 2))
              break;
            switch (NameR[13]) {
            default: break;
            case 'e':	 // 1 string to match.
              if (NameR[14] != 'q')
                break;
              return Intrinsic::hexagon_C2_cmpeq;	 // "exagon.C2.cmpeq"
            case 'g':	 // 1 string to match.
              if (NameR[14] != 't')
                break;
              return Intrinsic::hexagon_C2_cmpgt;	 // "exagon.C2.cmpgt"
            case 'l':	 // 1 string to match.
              if (NameR[14] != 't')
                break;
              return Intrinsic::hexagon_C2_cmplt;	 // "exagon.C2.cmplt"
            }
            break;
          case 'm':	 // 3 strings to match.
            if (memcmp(NameR.data()+11, "ux", 2))
              break;
            switch (NameR[13]) {
            default: break;
            case 'i':	 // 2 strings to match.
              switch (NameR[14]) {
              default: break;
              case 'i':	 // 1 string to match.
                return Intrinsic::hexagon_C2_muxii;	 // "exagon.C2.muxii"
              case 'r':	 // 1 string to match.
                return Intrinsic::hexagon_C2_muxir;	 // "exagon.C2.muxir"
              }
              break;
            case 'r':	 // 1 string to match.
              if (NameR[14] != 'i')
                break;
              return Intrinsic::hexagon_C2_muxri;	 // "exagon.C2.muxri"
            }
            break;
          case 't':	 // 2 strings to match.
            if (memcmp(NameR.data()+11, "fr", 2))
              break;
            switch (NameR[13]) {
            default: break;
            case 'p':	 // 1 string to match.
              if (NameR[14] != 'r')
                break;
              return Intrinsic::hexagon_C2_tfrpr;	 // "exagon.C2.tfrpr"
            case 'r':	 // 1 string to match.
              if (NameR[14] != 'p')
                break;
              return Intrinsic::hexagon_C2_tfrrp;	 // "exagon.C2.tfrrp"
            }
            break;
          }
          break;
        case '4':	 // 1 string to match.
          if (memcmp(NameR.data()+9, ".or.or", 6))
            break;
          return Intrinsic::hexagon_C4_or_or;	 // "exagon.C4.or.or"
        }
        break;
      case 'F':	 // 14 strings to match.
        if (memcmp(NameR.data()+8, "2.", 2))
          break;
        switch (NameR[10]) {
        default: break;
        case 'd':	 // 7 strings to match.
          if (NameR[11] != 'f')
            break;
          switch (NameR[12]) {
          default: break;
          case 'a':	 // 1 string to match.
            if (memcmp(NameR.data()+13, "dd", 2))
              break;
            return Intrinsic::hexagon_F2_dfadd;	 // "exagon.F2.dfadd"
          case 'f':	 // 2 strings to match.
            if (NameR[13] != 'm')
              break;
            switch (NameR[14]) {
            default: break;
            case 'a':	 // 1 string to match.
              return Intrinsic::hexagon_F2_dffma;	 // "exagon.F2.dffma"
            case 's':	 // 1 string to match.
              return Intrinsic::hexagon_F2_dffms;	 // "exagon.F2.dffms"
            }
            break;
          case 'm':	 // 3 strings to match.
            switch (NameR[13]) {
            default: break;
            case 'a':	 // 1 string to match.
              if (NameR[14] != 'x')
                break;
              return Intrinsic::hexagon_F2_dfmax;	 // "exagon.F2.dfmax"
            case 'i':	 // 1 string to match.
              if (NameR[14] != 'n')
                break;
              return Intrinsic::hexagon_F2_dfmin;	 // "exagon.F2.dfmin"
            case 'p':	 // 1 string to match.
              if (NameR[14] != 'y')
                break;
              return Intrinsic::hexagon_F2_dfmpy;	 // "exagon.F2.dfmpy"
            }
            break;
          case 's':	 // 1 string to match.
            if (memcmp(NameR.data()+13, "ub", 2))
              break;
            return Intrinsic::hexagon_F2_dfsub;	 // "exagon.F2.dfsub"
          }
          break;
        case 's':	 // 7 strings to match.
          if (NameR[11] != 'f')
            break;
          switch (NameR[12]) {
          default: break;
          case 'a':	 // 1 string to match.
            if (memcmp(NameR.data()+13, "dd", 2))
              break;
            return Intrinsic::hexagon_F2_sfadd;	 // "exagon.F2.sfadd"
          case 'f':	 // 2 strings to match.
            if (NameR[13] != 'm')
              break;
            switch (NameR[14]) {
            default: break;
            case 'a':	 // 1 string to match.
              return Intrinsic::hexagon_F2_sffma;	 // "exagon.F2.sffma"
            case 's':	 // 1 string to match.
              return Intrinsic::hexagon_F2_sffms;	 // "exagon.F2.sffms"
            }
            break;
          case 'm':	 // 3 strings to match.
            switch (NameR[13]) {
            default: break;
            case 'a':	 // 1 string to match.
              if (NameR[14] != 'x')
                break;
              return Intrinsic::hexagon_F2_sfmax;	 // "exagon.F2.sfmax"
            case 'i':	 // 1 string to match.
              if (NameR[14] != 'n')
                break;
              return Intrinsic::hexagon_F2_sfmin;	 // "exagon.F2.sfmin"
            case 'p':	 // 1 string to match.
              if (NameR[14] != 'y')
                break;
              return Intrinsic::hexagon_F2_sfmpy;	 // "exagon.F2.sfmpy"
            }
            break;
          case 's':	 // 1 string to match.
            if (memcmp(NameR.data()+13, "ub", 2))
              break;
            return Intrinsic::hexagon_F2_sfsub;	 // "exagon.F2.sfsub"
          }
          break;
        }
        break;
      case 'M':	 // 6 strings to match.
        switch (NameR[8]) {
        default: break;
        case '2':	 // 4 strings to match.
          if (NameR[9] != '.')
            break;
          switch (NameR[10]) {
          default: break;
          case 'a':	 // 1 string to match.
            if (memcmp(NameR.data()+11, "ccii", 4))
              break;
            return Intrinsic::hexagon_M2_accii;	 // "exagon.M2.accii"
          case 'm':	 // 1 string to match.
            if (memcmp(NameR.data()+11, "pyui", 4))
              break;
            return Intrinsic::hexagon_M2_mpyui;	 // "exagon.M2.mpyui"
          case 'n':	 // 1 string to match.
            if (memcmp(NameR.data()+11, "acci", 4))
              break;
            return Intrinsic::hexagon_M2_nacci;	 // "exagon.M2.nacci"
          case 'v':	 // 1 string to match.
            if (memcmp(NameR.data()+11, "mac2", 4))
              break;
            return Intrinsic::hexagon_M2_vmac2;	 // "exagon.M2.vmac2"
          }
          break;
        case '4':	 // 2 strings to match.
          if (NameR[9] != '.')
            break;
          switch (NameR[10]) {
          default: break;
          case 'o':	 // 1 string to match.
            if (memcmp(NameR.data()+11, "r.or", 4))
              break;
            return Intrinsic::hexagon_M4_or_or;	 // "exagon.M4.or.or"
          case 'p':	 // 1 string to match.
            if (memcmp(NameR.data()+11, "mpyw", 4))
              break;
            return Intrinsic::hexagon_M4_pmpyw;	 // "exagon.M4.pmpyw"
          }
          break;
        }
        break;
      case 'S':	 // 1 string to match.
        if (memcmp(NameR.data()+8, "2.brevp", 7))
          break;
        return Intrinsic::hexagon_S2_brevp;	 // "exagon.S2.brevp"
      case 'c':	 // 1 string to match.
        if (memcmp(NameR.data()+8, "irc.ldd", 7))
          break;
        return Intrinsic::hexagon_circ_ldd;	 // "exagon.circ.ldd"
      }
      break;
    case 16:	 // 70 strings to match.
      if (memcmp(NameR.data()+0, "exagon.", 7))
        break;
      switch (NameR[7]) {
      default: break;
      case 'A':	 // 35 strings to match.
        switch (NameR[8]) {
        default: break;
        case '2':	 // 26 strings to match.
          if (NameR[9] != '.')
            break;
          switch (NameR[10]) {
          default: break;
          case 'a':	 // 2 strings to match.
            switch (NameR[11]) {
            default: break;
            case 'b':	 // 1 string to match.
              if (memcmp(NameR.data()+12, "ssat", 4))
                break;
              return Intrinsic::hexagon_A2_abssat;	 // "exagon.A2.abssat"
            case 'd':	 // 1 string to match.
              if (memcmp(NameR.data()+12, "dsat", 4))
                break;
              return Intrinsic::hexagon_A2_addsat;	 // "exagon.A2.addsat"
            }
            break;
          case 'n':	 // 1 string to match.
            if (memcmp(NameR.data()+11, "egsat", 5))
              break;
            return Intrinsic::hexagon_A2_negsat;	 // "exagon.A2.negsat"
          case 's':	 // 4 strings to match.
            switch (NameR[11]) {
            default: break;
            case 'u':	 // 1 string to match.
              if (memcmp(NameR.data()+12, "bsat", 4))
                break;
              return Intrinsic::hexagon_A2_subsat;	 // "exagon.A2.subsat"
            case 'v':	 // 3 strings to match.
              switch (NameR[12]) {
              default: break;
              case 'a':	 // 2 strings to match.
                switch (NameR[13]) {
                default: break;
                case 'd':	 // 1 string to match.
                  if (memcmp(NameR.data()+14, "dh", 2))
                    break;
                  return Intrinsic::hexagon_A2_svaddh;	 // "exagon.A2.svaddh"
                case 'v':	 // 1 string to match.
                  if (memcmp(NameR.data()+14, "gh", 2))
                    break;
                  return Intrinsic::hexagon_A2_svavgh;	 // "exagon.A2.svavgh"
                }
                break;
              case 's':	 // 1 string to match.
                if (memcmp(NameR.data()+13, "ubh", 3))
                  break;
                return Intrinsic::hexagon_A2_svsubh;	 // "exagon.A2.svsubh"
              }
              break;
            }
            break;
          case 'v':	 // 19 strings to match.
            switch (NameR[11]) {
            default: break;
            case 'a':	 // 8 strings to match.
              switch (NameR[12]) {
              default: break;
              case 'd':	 // 3 strings to match.
                if (NameR[13] != 'd')
                  break;
                switch (NameR[14]) {
                default: break;
                case 'h':	 // 1 string to match.
                  if (NameR[15] != 's')
                    break;
                  return Intrinsic::hexagon_A2_vaddhs;	 // "exagon.A2.vaddhs"
                case 'u':	 // 1 string to match.
                  if (NameR[15] != 'b')
                    break;
                  return Intrinsic::hexagon_A2_vaddub;	 // "exagon.A2.vaddub"
                case 'w':	 // 1 string to match.
                  if (NameR[15] != 's')
                    break;
                  return Intrinsic::hexagon_A2_vaddws;	 // "exagon.A2.vaddws"
                }
                break;
              case 'v':	 // 5 strings to match.
                if (NameR[13] != 'g')
                  break;
                switch (NameR[14]) {
                default: break;
                case 'h':	 // 1 string to match.
                  if (NameR[15] != 'r')
                    break;
                  return Intrinsic::hexagon_A2_vavghr;	 // "exagon.A2.vavghr"
                case 'u':	 // 3 strings to match.
                  switch (NameR[15]) {
                  default: break;
                  case 'b':	 // 1 string to match.
                    return Intrinsic::hexagon_A2_vavgub;	 // "exagon.A2.vavgub"
                  case 'h':	 // 1 string to match.
                    return Intrinsic::hexagon_A2_vavguh;	 // "exagon.A2.vavguh"
                  case 'w':	 // 1 string to match.
                    return Intrinsic::hexagon_A2_vavguw;	 // "exagon.A2.vavguw"
                  }
                  break;
                case 'w':	 // 1 string to match.
                  if (NameR[15] != 'r')
                    break;
                  return Intrinsic::hexagon_A2_vavgwr;	 // "exagon.A2.vavgwr"
                }
                break;
              }
              break;
            case 'm':	 // 6 strings to match.
              switch (NameR[12]) {
              default: break;
              case 'a':	 // 3 strings to match.
                if (memcmp(NameR.data()+13, "xu", 2))
                  break;
                switch (NameR[15]) {
                default: break;
                case 'b':	 // 1 string to match.
                  return Intrinsic::hexagon_A2_vmaxub;	 // "exagon.A2.vmaxub"
                case 'h':	 // 1 string to match.
                  return Intrinsic::hexagon_A2_vmaxuh;	 // "exagon.A2.vmaxuh"
                case 'w':	 // 1 string to match.
                  return Intrinsic::hexagon_A2_vmaxuw;	 // "exagon.A2.vmaxuw"
                }
                break;
              case 'i':	 // 3 strings to match.
                if (memcmp(NameR.data()+13, "nu", 2))
                  break;
                switch (NameR[15]) {
                default: break;
                case 'b':	 // 1 string to match.
                  return Intrinsic::hexagon_A2_vminub;	 // "exagon.A2.vminub"
                case 'h':	 // 1 string to match.
                  return Intrinsic::hexagon_A2_vminuh;	 // "exagon.A2.vminuh"
                case 'w':	 // 1 string to match.
                  return Intrinsic::hexagon_A2_vminuw;	 // "exagon.A2.vminuw"
                }
                break;
              }
              break;
            case 'n':	 // 2 strings to match.
              if (memcmp(NameR.data()+12, "avg", 3))
                break;
              switch (NameR[15]) {
              default: break;
              case 'h':	 // 1 string to match.
                return Intrinsic::hexagon_A2_vnavgh;	 // "exagon.A2.vnavgh"
              case 'w':	 // 1 string to match.
                return Intrinsic::hexagon_A2_vnavgw;	 // "exagon.A2.vnavgw"
              }
              break;
            case 's':	 // 3 strings to match.
              if (memcmp(NameR.data()+12, "ub", 2))
                break;
              switch (NameR[14]) {
              default: break;
              case 'h':	 // 1 string to match.
                if (NameR[15] != 's')
                  break;
                return Intrinsic::hexagon_A2_vsubhs;	 // "exagon.A2.vsubhs"
              case 'u':	 // 1 string to match.
                if (NameR[15] != 'b')
                  break;
                return Intrinsic::hexagon_A2_vsubub;	 // "exagon.A2.vsubub"
              case 'w':	 // 1 string to match.
                if (NameR[15] != 's')
                  break;
                return Intrinsic::hexagon_A2_vsubws;	 // "exagon.A2.vsubws"
              }
              break;
            }
            break;
          }
          break;
        case '4':	 // 9 strings to match.
          if (NameR[9] != '.')
            break;
          switch (NameR[10]) {
          default: break;
          case 'c':	 // 4 strings to match.
            if (memcmp(NameR.data()+11, "mp", 2))
              break;
            switch (NameR[13]) {
            default: break;
            case 'b':	 // 2 strings to match.
              switch (NameR[14]) {
              default: break;
              case 'e':	 // 1 string to match.
                if (NameR[15] != 'q')
                  break;
                return Intrinsic::hexagon_A4_cmpbeq;	 // "exagon.A4.cmpbeq"
              case 'g':	 // 1 string to match.
                if (NameR[15] != 't')
                  break;
                return Intrinsic::hexagon_A4_cmpbgt;	 // "exagon.A4.cmpbgt"
              }
              break;
            case 'h':	 // 2 strings to match.
              switch (NameR[14]) {
              default: break;
              case 'e':	 // 1 string to match.
                if (NameR[15] != 'q')
                  break;
                return Intrinsic::hexagon_A4_cmpheq;	 // "exagon.A4.cmpheq"
              case 'g':	 // 1 string to match.
                if (NameR[15] != 't')
                  break;
                return Intrinsic::hexagon_A4_cmphgt;	 // "exagon.A4.cmphgt"
              }
              break;
            }
            break;
          case 'r':	 // 1 string to match.
            if (memcmp(NameR.data()+11, "cmpeq", 5))
              break;
            return Intrinsic::hexagon_A4_rcmpeq;	 // "exagon.A4.rcmpeq"
          case 'v':	 // 4 strings to match.
            if (memcmp(NameR.data()+11, "rm", 2))
              break;
            switch (NameR[13]) {
            default: break;
            case 'a':	 // 2 strings to match.
              if (NameR[14] != 'x')
                break;
              switch (NameR[15]) {
              default: break;
              case 'h':	 // 1 string to match.
                return Intrinsic::hexagon_A4_vrmaxh;	 // "exagon.A4.vrmaxh"
              case 'w':	 // 1 string to match.
                return Intrinsic::hexagon_A4_vrmaxw;	 // "exagon.A4.vrmaxw"
              }
              break;
            case 'i':	 // 2 strings to match.
              if (NameR[14] != 'n')
                break;
              switch (NameR[15]) {
              default: break;
              case 'h':	 // 1 string to match.
                return Intrinsic::hexagon_A4_vrminh;	 // "exagon.A4.vrminh"
              case 'w':	 // 1 string to match.
                return Intrinsic::hexagon_A4_vrminw;	 // "exagon.A4.vrminw"
              }
              break;
            }
            break;
          }
          break;
        }
        break;
      case 'C':	 // 12 strings to match.
        switch (NameR[8]) {
        default: break;
        case '2':	 // 7 strings to match.
          if (memcmp(NameR.data()+9, ".cmp", 4))
            break;
          switch (NameR[13]) {
          default: break;
          case 'e':	 // 2 strings to match.
            if (NameR[14] != 'q')
              break;
            switch (NameR[15]) {
            default: break;
            case 'i':	 // 1 string to match.
              return Intrinsic::hexagon_C2_cmpeqi;	 // "exagon.C2.cmpeqi"
            case 'p':	 // 1 string to match.
              return Intrinsic::hexagon_C2_cmpeqp;	 // "exagon.C2.cmpeqp"
            }
            break;
          case 'g':	 // 4 strings to match.
            switch (NameR[14]) {
            default: break;
            case 'e':	 // 1 string to match.
              if (NameR[15] != 'i')
                break;
              return Intrinsic::hexagon_C2_cmpgei;	 // "exagon.C2.cmpgei"
            case 't':	 // 3 strings to match.
              switch (NameR[15]) {
              default: break;
              case 'i':	 // 1 string to match.
                return Intrinsic::hexagon_C2_cmpgti;	 // "exagon.C2.cmpgti"
              case 'p':	 // 1 string to match.
                return Intrinsic::hexagon_C2_cmpgtp;	 // "exagon.C2.cmpgtp"
              case 'u':	 // 1 string to match.
                return Intrinsic::hexagon_C2_cmpgtu;	 // "exagon.C2.cmpgtu"
              }
              break;
            }
            break;
          case 'l':	 // 1 string to match.
            if (memcmp(NameR.data()+14, "tu", 2))
              break;
            return Intrinsic::hexagon_C2_cmpltu;	 // "exagon.C2.cmpltu"
          }
          break;
        case '4':	 // 5 strings to match.
          if (NameR[9] != '.')
            break;
          switch (NameR[10]) {
          default: break;
          case 'a':	 // 1 string to match.
            if (memcmp(NameR.data()+11, "nd.or", 5))
              break;
            return Intrinsic::hexagon_C4_and_or;	 // "exagon.C4.and.or"
          case 'c':	 // 2 strings to match.
            if (memcmp(NameR.data()+11, "mp", 2))
              break;
            switch (NameR[13]) {
            default: break;
            case 'l':	 // 1 string to match.
              if (memcmp(NameR.data()+14, "te", 2))
                break;
              return Intrinsic::hexagon_C4_cmplte;	 // "exagon.C4.cmplte"
            case 'n':	 // 1 string to match.
              if (memcmp(NameR.data()+14, "eq", 2))
                break;
              return Intrinsic::hexagon_C4_cmpneq;	 // "exagon.C4.cmpneq"
            }
            break;
          case 'o':	 // 2 strings to match.
            if (memcmp(NameR.data()+11, "r.", 2))
              break;
            switch (NameR[13]) {
            default: break;
            case 'a':	 // 1 string to match.
              if (memcmp(NameR.data()+14, "nd", 2))
                break;
              return Intrinsic::hexagon_C4_or_and;	 // "exagon.C4.or.and"
            case 'o':	 // 1 string to match.
              if (memcmp(NameR.data()+14, "rn", 2))
                break;
              return Intrinsic::hexagon_C4_or_orn;	 // "exagon.C4.or.orn"
            }
            break;
          }
          break;
        }
        break;
      case 'M':	 // 12 strings to match.
        switch (NameR[8]) {
        default: break;
        case '2':	 // 7 strings to match.
          if (NameR[9] != '.')
            break;
          switch (NameR[10]) {
          default: break;
          case 'm':	 // 4 strings to match.
            switch (NameR[11]) {
            default: break;
            case 'a':	 // 2 strings to match.
              if (memcmp(NameR.data()+12, "csi", 3))
                break;
              switch (NameR[15]) {
              default: break;
              case 'n':	 // 1 string to match.
                return Intrinsic::hexagon_M2_macsin;	 // "exagon.M2.macsin"
              case 'p':	 // 1 string to match.
                return Intrinsic::hexagon_M2_macsip;	 // "exagon.M2.macsip"
              }
              break;
            case 'p':	 // 2 strings to match.
              if (NameR[12] != 'y')
                break;
              switch (NameR[13]) {
              default: break;
              case '.':	 // 1 string to match.
                if (memcmp(NameR.data()+14, "up", 2))
                  break;
                return Intrinsic::hexagon_M2_mpy_up;	 // "exagon.M2.mpy.up"
              case 's':	 // 1 string to match.
                if (memcmp(NameR.data()+14, "mi", 2))
                  break;
                return Intrinsic::hexagon_M2_mpysmi;	 // "exagon.M2.mpysmi"
              }
              break;
            }
            break;
          case 'n':	 // 1 string to match.
            if (memcmp(NameR.data()+11, "accii", 5))
              break;
            return Intrinsic::hexagon_M2_naccii;	 // "exagon.M2.naccii"
          case 's':	 // 1 string to match.
            if (memcmp(NameR.data()+11, "ubacc", 5))
              break;
            return Intrinsic::hexagon_M2_subacc;	 // "exagon.M2.subacc"
          case 'v':	 // 1 string to match.
            if (memcmp(NameR.data()+11, "raddh", 5))
              break;
            return Intrinsic::hexagon_M2_vraddh;	 // "exagon.M2.vraddh"
          }
          break;
        case '4':	 // 5 strings to match.
          if (NameR[9] != '.')
            break;
          switch (NameR[10]) {
          default: break;
          case 'a':	 // 1 string to match.
            if (memcmp(NameR.data()+11, "nd.or", 5))
              break;
            return Intrinsic::hexagon_M4_and_or;	 // "exagon.M4.and.or"
          case 'o':	 // 2 strings to match.
            if (memcmp(NameR.data()+11, "r.", 2))
              break;
            switch (NameR[13]) {
            default: break;
            case 'a':	 // 1 string to match.
              if (memcmp(NameR.data()+14, "nd", 2))
                break;
              return Intrinsic::hexagon_M4_or_and;	 // "exagon.M4.or.and"
            case 'x':	 // 1 string to match.
              if (memcmp(NameR.data()+14, "or", 2))
                break;
              return Intrinsic::hexagon_M4_or_xor;	 // "exagon.M4.or.xor"
            }
            break;
          case 'v':	 // 1 string to match.
            if (memcmp(NameR.data()+11, "pmpyh", 5))
              break;
            return Intrinsic::hexagon_M4_vpmpyh;	 // "exagon.M4.vpmpyh"
          case 'x':	 // 1 string to match.
            if (memcmp(NameR.data()+11, "or.or", 5))
              break;
            return Intrinsic::hexagon_M4_xor_or;	 // "exagon.M4.xor.or"
          }
          break;
        }
        break;
      case 'S':	 // 11 strings to match.
        switch (NameR[8]) {
        default: break;
        case '2':	 // 9 strings to match.
          if (NameR[9] != '.')
            break;
          switch (NameR[10]) {
          default: break;
          case 'i':	 // 1 string to match.
            if (memcmp(NameR.data()+11, "nsert", 5))
              break;
            return Intrinsic::hexagon_S2_insert;	 // "exagon.S2.insert"
          case 'p':	 // 1 string to match.
            if (memcmp(NameR.data()+11, "ackhl", 5))
              break;
            return Intrinsic::hexagon_S2_packhl;	 // "exagon.S2.packhl"
          case 'v':	 // 7 strings to match.
            switch (NameR[11]) {
            default: break;
            case 'c':	 // 1 string to match.
              if (memcmp(NameR.data()+12, "negh", 4))
                break;
              return Intrinsic::hexagon_S2_vcnegh;	 // "exagon.S2.vcnegh"
            case 's':	 // 4 strings to match.
              switch (NameR[12]) {
              default: break;
              case 'a':	 // 2 strings to match.
                if (NameR[13] != 't')
                  break;
                switch (NameR[14]) {
                default: break;
                case 'h':	 // 1 string to match.
                  if (NameR[15] != 'b')
                    break;
                  return Intrinsic::hexagon_S2_vsathb;	 // "exagon.S2.vsathb"
                case 'w':	 // 1 string to match.
                  if (NameR[15] != 'h')
                    break;
                  return Intrinsic::hexagon_S2_vsatwh;	 // "exagon.S2.vsatwh"
                }
                break;
              case 'x':	 // 2 strings to match.
                if (NameR[13] != 't')
                  break;
                switch (NameR[14]) {
                default: break;
                case 'b':	 // 1 string to match.
                  if (NameR[15] != 'h')
                    break;
                  return Intrinsic::hexagon_S2_vsxtbh;	 // "exagon.S2.vsxtbh"
                case 'h':	 // 1 string to match.
                  if (NameR[15] != 'w')
                    break;
                  return Intrinsic::hexagon_S2_vsxthw;	 // "exagon.S2.vsxthw"
                }
                break;
              }
              break;
            case 'z':	 // 2 strings to match.
              if (memcmp(NameR.data()+12, "xt", 2))
                break;
              switch (NameR[14]) {
              default: break;
              case 'b':	 // 1 string to match.
                if (NameR[15] != 'h')
                  break;
                return Intrinsic::hexagon_S2_vzxtbh;	 // "exagon.S2.vzxtbh"
              case 'h':	 // 1 string to match.
                if (NameR[15] != 'w')
                  break;
                return Intrinsic::hexagon_S2_vzxthw;	 // "exagon.S2.vzxthw"
              }
              break;
            }
            break;
          }
          break;
        case '4':	 // 2 strings to match.
          if (NameR[9] != '.')
            break;
          switch (NameR[10]) {
          default: break;
          case 'o':	 // 1 string to match.
            if (memcmp(NameR.data()+11, "r.ori", 5))
              break;
            return Intrinsic::hexagon_S4_or_ori;	 // "exagon.S4.or.ori"
          case 'p':	 // 1 string to match.
            if (memcmp(NameR.data()+11, "arity", 5))
              break;
            return Intrinsic::hexagon_S4_parity;	 // "exagon.S4.parity"
          }
          break;
        }
        break;
      }
      break;
    case 17:	 // 103 strings to match.
      if (memcmp(NameR.data()+0, "exagon.", 7))
        break;
      switch (NameR[7]) {
      default: break;
      case 'A':	 // 36 strings to match.
        switch (NameR[8]) {
        default: break;
        case '2':	 // 23 strings to match.
          if (NameR[9] != '.')
            break;
          switch (NameR[10]) {
          default: break;
          case 'a':	 // 1 string to match.
            if (memcmp(NameR.data()+11, "ddpsat", 6))
              break;
            return Intrinsic::hexagon_A2_addpsat;	 // "exagon.A2.addpsat"
          case 's':	 // 4 strings to match.
            if (NameR[11] != 'v')
              break;
            switch (NameR[12]) {
            default: break;
            case 'a':	 // 2 strings to match.
              switch (NameR[13]) {
              default: break;
              case 'd':	 // 1 string to match.
                if (memcmp(NameR.data()+14, "dhs", 3))
                  break;
                return Intrinsic::hexagon_A2_svaddhs;	 // "exagon.A2.svaddhs"
              case 'v':	 // 1 string to match.
                if (memcmp(NameR.data()+14, "ghs", 3))
                  break;
                return Intrinsic::hexagon_A2_svavghs;	 // "exagon.A2.svavghs"
              }
              break;
            case 'n':	 // 1 string to match.
              if (memcmp(NameR.data()+13, "avgh", 4))
                break;
              return Intrinsic::hexagon_A2_svnavgh;	 // "exagon.A2.svnavgh"
            case 's':	 // 1 string to match.
              if (memcmp(NameR.data()+13, "ubhs", 4))
                break;
              return Intrinsic::hexagon_A2_svsubhs;	 // "exagon.A2.svsubhs"
            }
            break;
          case 'v':	 // 18 strings to match.
            switch (NameR[11]) {
            default: break;
            case 'a':	 // 7 strings to match.
              switch (NameR[12]) {
              default: break;
              case 'd':	 // 2 strings to match.
                if (memcmp(NameR.data()+13, "du", 2))
                  break;
                switch (NameR[15]) {
                default: break;
                case 'b':	 // 1 string to match.
                  if (NameR[16] != 's')
                    break;
                  return Intrinsic::hexagon_A2_vaddubs;	 // "exagon.A2.vaddubs"
                case 'h':	 // 1 string to match.
                  if (NameR[16] != 's')
                    break;
                  return Intrinsic::hexagon_A2_vadduhs;	 // "exagon.A2.vadduhs"
                }
                break;
              case 'v':	 // 5 strings to match.
                if (NameR[13] != 'g')
                  break;
                switch (NameR[14]) {
                default: break;
                case 'h':	 // 1 string to match.
                  if (memcmp(NameR.data()+15, "cr", 2))
                    break;
                  return Intrinsic::hexagon_A2_vavghcr;	 // "exagon.A2.vavghcr"
                case 'u':	 // 3 strings to match.
                  switch (NameR[15]) {
                  default: break;
                  case 'b':	 // 1 string to match.
                    if (NameR[16] != 'r')
                      break;
                    return Intrinsic::hexagon_A2_vavgubr;	 // "exagon.A2.vavgubr"
                  case 'h':	 // 1 string to match.
                    if (NameR[16] != 'r')
                      break;
                    return Intrinsic::hexagon_A2_vavguhr;	 // "exagon.A2.vavguhr"
                  case 'w':	 // 1 string to match.
                    if (NameR[16] != 'r')
                      break;
                    return Intrinsic::hexagon_A2_vavguwr;	 // "exagon.A2.vavguwr"
                  }
                  break;
                case 'w':	 // 1 string to match.
                  if (memcmp(NameR.data()+15, "cr", 2))
                    break;
                  return Intrinsic::hexagon_A2_vavgwcr;	 // "exagon.A2.vavgwcr"
                }
                break;
              }
              break;
            case 'c':	 // 5 strings to match.
              if (memcmp(NameR.data()+12, "mp", 2))
                break;
              switch (NameR[14]) {
              default: break;
              case 'b':	 // 1 string to match.
                if (memcmp(NameR.data()+15, "eq", 2))
                  break;
                return Intrinsic::hexagon_A2_vcmpbeq;	 // "exagon.A2.vcmpbeq"
              case 'h':	 // 2 strings to match.
                switch (NameR[15]) {
                default: break;
                case 'e':	 // 1 string to match.
                  if (NameR[16] != 'q')
                    break;
                  return Intrinsic::hexagon_A2_vcmpheq;	 // "exagon.A2.vcmpheq"
                case 'g':	 // 1 string to match.
                  if (NameR[16] != 't')
                    break;
                  return Intrinsic::hexagon_A2_vcmphgt;	 // "exagon.A2.vcmphgt"
                }
                break;
              case 'w':	 // 2 strings to match.
                switch (NameR[15]) {
                default: break;
                case 'e':	 // 1 string to match.
                  if (NameR[16] != 'q')
                    break;
                  return Intrinsic::hexagon_A2_vcmpweq;	 // "exagon.A2.vcmpweq"
                case 'g':	 // 1 string to match.
                  if (NameR[16] != 't')
                    break;
                  return Intrinsic::hexagon_A2_vcmpwgt;	 // "exagon.A2.vcmpwgt"
                }
                break;
              }
              break;
            case 'n':	 // 2 strings to match.
              if (memcmp(NameR.data()+12, "avg", 3))
                break;
              switch (NameR[15]) {
              default: break;
              case 'h':	 // 1 string to match.
                if (NameR[16] != 'r')
                  break;
                return Intrinsic::hexagon_A2_vnavghr;	 // "exagon.A2.vnavghr"
              case 'w':	 // 1 string to match.
                if (NameR[16] != 'r')
                  break;
                return Intrinsic::hexagon_A2_vnavgwr;	 // "exagon.A2.vnavgwr"
              }
              break;
            case 'r':	 // 2 strings to match.
              switch (NameR[12]) {
              default: break;
              case 'a':	 // 1 string to match.
                if (memcmp(NameR.data()+13, "ddub", 4))
                  break;
                return Intrinsic::hexagon_A2_vraddub;	 // "exagon.A2.vraddub"
              case 's':	 // 1 string to match.
                if (memcmp(NameR.data()+13, "adub", 4))
                  break;
                return Intrinsic::hexagon_A2_vrsadub;	 // "exagon.A2.vrsadub"
              }
              break;
            case 's':	 // 2 strings to match.
              if (memcmp(NameR.data()+12, "ubu", 3))
                break;
              switch (NameR[15]) {
              default: break;
              case 'b':	 // 1 string to match.
                if (NameR[16] != 's')
                  break;
                return Intrinsic::hexagon_A2_vsububs;	 // "exagon.A2.vsububs"
              case 'h':	 // 1 string to match.
                if (NameR[16] != 's')
                  break;
                return Intrinsic::hexagon_A2_vsubuhs;	 // "exagon.A2.vsubuhs"
              }
              break;
            }
            break;
          }
          break;
        case '4':	 // 13 strings to match.
          if (NameR[9] != '.')
            break;
          switch (NameR[10]) {
          default: break;
          case 'c':	 // 6 strings to match.
            if (memcmp(NameR.data()+11, "mp", 2))
              break;
            switch (NameR[13]) {
            default: break;
            case 'b':	 // 3 strings to match.
              switch (NameR[14]) {
              default: break;
              case 'e':	 // 1 string to match.
                if (memcmp(NameR.data()+15, "qi", 2))
                  break;
                return Intrinsic::hexagon_A4_cmpbeqi;	 // "exagon.A4.cmpbeqi"
              case 'g':	 // 2 strings to match.
                if (NameR[15] != 't')
                  break;
                switch (NameR[16]) {
                default: break;
                case 'i':	 // 1 string to match.
                  return Intrinsic::hexagon_A4_cmpbgti;	 // "exagon.A4.cmpbgti"
                case 'u':	 // 1 string to match.
                  return Intrinsic::hexagon_A4_cmpbgtu;	 // "exagon.A4.cmpbgtu"
                }
                break;
              }
              break;
            case 'h':	 // 3 strings to match.
              switch (NameR[14]) {
              default: break;
              case 'e':	 // 1 string to match.
                if (memcmp(NameR.data()+15, "qi", 2))
                  break;
                return Intrinsic::hexagon_A4_cmpheqi;	 // "exagon.A4.cmpheqi"
              case 'g':	 // 2 strings to match.
                if (NameR[15] != 't')
                  break;
                switch (NameR[16]) {
                default: break;
                case 'i':	 // 1 string to match.
                  return Intrinsic::hexagon_A4_cmphgti;	 // "exagon.A4.cmphgti"
                case 'u':	 // 1 string to match.
                  return Intrinsic::hexagon_A4_cmphgtu;	 // "exagon.A4.cmphgtu"
                }
                break;
              }
              break;
            }
            break;
          case 'r':	 // 2 strings to match.
            if (memcmp(NameR.data()+11, "cmp", 3))
              break;
            switch (NameR[14]) {
            default: break;
            case 'e':	 // 1 string to match.
              if (memcmp(NameR.data()+15, "qi", 2))
                break;
              return Intrinsic::hexagon_A4_rcmpeqi;	 // "exagon.A4.rcmpeqi"
            case 'n':	 // 1 string to match.
              if (memcmp(NameR.data()+15, "eq", 2))
                break;
              return Intrinsic::hexagon_A4_rcmpneq;	 // "exagon.A4.rcmpneq"
            }
            break;
          case 'v':	 // 5 strings to match.
            switch (NameR[11]) {
            default: break;
            case 'c':	 // 1 string to match.
              if (memcmp(NameR.data()+12, "mpbgt", 5))
                break;
              return Intrinsic::hexagon_A4_vcmpbgt;	 // "exagon.A4.vcmpbgt"
            case 'r':	 // 4 strings to match.
              if (NameR[12] != 'm')
                break;
              switch (NameR[13]) {
              default: break;
              case 'a':	 // 2 strings to match.
                if (memcmp(NameR.data()+14, "xu", 2))
                  break;
                switch (NameR[16]) {
                default: break;
                case 'h':	 // 1 string to match.
                  return Intrinsic::hexagon_A4_vrmaxuh;	 // "exagon.A4.vrmaxuh"
                case 'w':	 // 1 string to match.
                  return Intrinsic::hexagon_A4_vrmaxuw;	 // "exagon.A4.vrmaxuw"
                }
                break;
              case 'i':	 // 2 strings to match.
                if (memcmp(NameR.data()+14, "nu", 2))
                  break;
                switch (NameR[16]) {
                default: break;
                case 'h':	 // 1 string to match.
                  return Intrinsic::hexagon_A4_vrminuh;	 // "exagon.A4.vrminuh"
                case 'w':	 // 1 string to match.
                  return Intrinsic::hexagon_A4_vrminuw;	 // "exagon.A4.vrminuw"
                }
                break;
              }
              break;
            }
            break;
          }
          break;
        }
        break;
      case 'C':	 // 12 strings to match.
        switch (NameR[8]) {
        default: break;
        case '2':	 // 6 strings to match.
          if (NameR[9] != '.')
            break;
          switch (NameR[10]) {
          default: break;
          case 'b':	 // 2 strings to match.
            if (memcmp(NameR.data()+11, "its", 3))
              break;
            switch (NameR[14]) {
            default: break;
            case 'c':	 // 1 string to match.
              if (memcmp(NameR.data()+15, "lr", 2))
                break;
              return Intrinsic::hexagon_C2_bitsclr;	 // "exagon.C2.bitsclr"
            case 's':	 // 1 string to match.
              if (memcmp(NameR.data()+15, "et", 2))
                break;
              return Intrinsic::hexagon_C2_bitsset;	 // "exagon.C2.bitsset"
            }
            break;
          case 'c':	 // 3 strings to match.
            if (memcmp(NameR.data()+11, "mpg", 3))
              break;
            switch (NameR[14]) {
            default: break;
            case 'e':	 // 1 string to match.
              if (memcmp(NameR.data()+15, "ui", 2))
                break;
              return Intrinsic::hexagon_C2_cmpgeui;	 // "exagon.C2.cmpgeui"
            case 't':	 // 2 strings to match.
              if (NameR[15] != 'u')
                break;
              switch (NameR[16]) {
              default: break;
              case 'i':	 // 1 string to match.
                return Intrinsic::hexagon_C2_cmpgtui;	 // "exagon.C2.cmpgtui"
              case 'p':	 // 1 string to match.
                return Intrinsic::hexagon_C2_cmpgtup;	 // "exagon.C2.cmpgtup"
              }
              break;
            }
            break;
          case 'v':	 // 1 string to match.
            if (memcmp(NameR.data()+11, "itpack", 6))
              break;
            return Intrinsic::hexagon_C2_vitpack;	 // "exagon.C2.vitpack"
          }
          break;
        case '4':	 // 6 strings to match.
          if (NameR[9] != '.')
            break;
          switch (NameR[10]) {
          default: break;
          case 'a':	 // 2 strings to match.
            if (memcmp(NameR.data()+11, "nd.", 3))
              break;
            switch (NameR[14]) {
            default: break;
            case 'a':	 // 1 string to match.
              if (memcmp(NameR.data()+15, "nd", 2))
                break;
              return Intrinsic::hexagon_C4_and_and;	 // "exagon.C4.and.and"
            case 'o':	 // 1 string to match.
              if (memcmp(NameR.data()+15, "rn", 2))
                break;
              return Intrinsic::hexagon_C4_and_orn;	 // "exagon.C4.and.orn"
            }
            break;
          case 'c':	 // 3 strings to match.
            if (memcmp(NameR.data()+11, "mp", 2))
              break;
            switch (NameR[13]) {
            default: break;
            case 'l':	 // 2 strings to match.
              if (memcmp(NameR.data()+14, "te", 2))
                break;
              switch (NameR[16]) {
              default: break;
              case 'i':	 // 1 string to match.
                return Intrinsic::hexagon_C4_cmpltei;	 // "exagon.C4.cmpltei"
              case 'u':	 // 1 string to match.
                return Intrinsic::hexagon_C4_cmplteu;	 // "exagon.C4.cmplteu"
              }
              break;
            case 'n':	 // 1 string to match.
              if (memcmp(NameR.data()+14, "eqi", 3))
                break;
              return Intrinsic::hexagon_C4_cmpneqi;	 // "exagon.C4.cmpneqi"
            }
            break;
          case 'o':	 // 1 string to match.
            if (memcmp(NameR.data()+11, "r.andn", 6))
              break;
            return Intrinsic::hexagon_C4_or_andn;	 // "exagon.C4.or.andn"
          }
          break;
        }
        break;
      case 'F':	 // 14 strings to match.
        if (memcmp(NameR.data()+8, "2.", 2))
          break;
        switch (NameR[10]) {
        default: break;
        case 'd':	 // 7 strings to match.
          if (NameR[11] != 'f')
            break;
          switch (NameR[12]) {
          default: break;
          case 'c':	 // 5 strings to match.
            switch (NameR[13]) {
            default: break;
            case 'l':	 // 1 string to match.
              if (memcmp(NameR.data()+14, "ass", 3))
                break;
              return Intrinsic::hexagon_F2_dfclass;	 // "exagon.F2.dfclass"
            case 'm':	 // 4 strings to match.
              if (NameR[14] != 'p')
                break;
              switch (NameR[15]) {
              default: break;
              case 'e':	 // 1 string to match.
                if (NameR[16] != 'q')
                  break;
                return Intrinsic::hexagon_F2_dfcmpeq;	 // "exagon.F2.dfcmpeq"
              case 'g':	 // 2 strings to match.
                switch (NameR[16]) {
                default: break;
                case 'e':	 // 1 string to match.
                  return Intrinsic::hexagon_F2_dfcmpge;	 // "exagon.F2.dfcmpge"
                case 't':	 // 1 string to match.
                  return Intrinsic::hexagon_F2_dfcmpgt;	 // "exagon.F2.dfcmpgt"
                }
                break;
              case 'u':	 // 1 string to match.
                if (NameR[16] != 'o')
                  break;
                return Intrinsic::hexagon_F2_dfcmpuo;	 // "exagon.F2.dfcmpuo"
              }
              break;
            }
            break;
          case 'i':	 // 2 strings to match.
            if (memcmp(NameR.data()+13, "mm.", 3))
              break;
            switch (NameR[16]) {
            default: break;
            case 'n':	 // 1 string to match.
              return Intrinsic::hexagon_F2_dfimm_n;	 // "exagon.F2.dfimm.n"
            case 'p':	 // 1 string to match.
              return Intrinsic::hexagon_F2_dfimm_p;	 // "exagon.F2.dfimm.p"
            }
            break;
          }
          break;
        case 's':	 // 7 strings to match.
          if (NameR[11] != 'f')
            break;
          switch (NameR[12]) {
          default: break;
          case 'c':	 // 5 strings to match.
            switch (NameR[13]) {
            default: break;
            case 'l':	 // 1 string to match.
              if (memcmp(NameR.data()+14, "ass", 3))
                break;
              return Intrinsic::hexagon_F2_sfclass;	 // "exagon.F2.sfclass"
            case 'm':	 // 4 strings to match.
              if (NameR[14] != 'p')
                break;
              switch (NameR[15]) {
              default: break;
              case 'e':	 // 1 string to match.
                if (NameR[16] != 'q')
                  break;
                return Intrinsic::hexagon_F2_sfcmpeq;	 // "exagon.F2.sfcmpeq"
              case 'g':	 // 2 strings to match.
                switch (NameR[16]) {
                default: break;
                case 'e':	 // 1 string to match.
                  return Intrinsic::hexagon_F2_sfcmpge;	 // "exagon.F2.sfcmpge"
                case 't':	 // 1 string to match.
                  return Intrinsic::hexagon_F2_sfcmpgt;	 // "exagon.F2.sfcmpgt"
                }
                break;
              case 'u':	 // 1 string to match.
                if (NameR[16] != 'o')
                  break;
                return Intrinsic::hexagon_F2_sfcmpuo;	 // "exagon.F2.sfcmpuo"
              }
              break;
            }
            break;
          case 'i':	 // 2 strings to match.
            if (memcmp(NameR.data()+13, "mm.", 3))
              break;
            switch (NameR[16]) {
            default: break;
            case 'n':	 // 1 string to match.
              return Intrinsic::hexagon_F2_sfimm_n;	 // "exagon.F2.sfimm.n"
            case 'p':	 // 1 string to match.
              return Intrinsic::hexagon_F2_sfimm_p;	 // "exagon.F2.sfimm.p"
            }
            break;
          }
          break;
        }
        break;
      case 'M':	 // 11 strings to match.
        switch (NameR[8]) {
        default: break;
        case '2':	 // 3 strings to match.
          if (NameR[9] != '.')
            break;
          switch (NameR[10]) {
          default: break;
          case 'm':	 // 1 string to match.
            if (memcmp(NameR.data()+11, "pyu.up", 6))
              break;
            return Intrinsic::hexagon_M2_mpyu_up;	 // "exagon.M2.mpyu.up"
          case 'v':	 // 2 strings to match.
            switch (NameR[11]) {
            default: break;
            case 'm':	 // 1 string to match.
              if (memcmp(NameR.data()+12, "ac2es", 5))
                break;
              return Intrinsic::hexagon_M2_vmac2es;	 // "exagon.M2.vmac2es"
            case 'r':	 // 1 string to match.
              if (memcmp(NameR.data()+12, "adduh", 5))
                break;
              return Intrinsic::hexagon_M2_vradduh;	 // "exagon.M2.vradduh"
            }
            break;
          }
          break;
        case '4':	 // 4 strings to match.
          if (NameR[9] != '.')
            break;
          switch (NameR[10]) {
          default: break;
          case 'a':	 // 2 strings to match.
            if (memcmp(NameR.data()+11, "nd.", 3))
              break;
            switch (NameR[14]) {
            default: break;
            case 'a':	 // 1 string to match.
              if (memcmp(NameR.data()+15, "nd", 2))
                break;
              return Intrinsic::hexagon_M4_and_and;	 // "exagon.M4.and.and"
            case 'x':	 // 1 string to match.
              if (memcmp(NameR.data()+15, "or", 2))
                break;
              return Intrinsic::hexagon_M4_and_xor;	 // "exagon.M4.and.xor"
            }
            break;
          case 'o':	 // 1 string to match.
            if (memcmp(NameR.data()+11, "r.andn", 6))
              break;
            return Intrinsic::hexagon_M4_or_andn;	 // "exagon.M4.or.andn"
          case 'x':	 // 1 string to match.
            if (memcmp(NameR.data()+11, "or.and", 6))
              break;
            return Intrinsic::hexagon_M4_xor_and;	 // "exagon.M4.xor.and"
          }
          break;
        case '5':	 // 4 strings to match.
          if (memcmp(NameR.data()+9, ".vm", 3))
            break;
          switch (NameR[12]) {
          default: break;
          case 'a':	 // 2 strings to match.
            if (memcmp(NameR.data()+13, "cb", 2))
              break;
            switch (NameR[15]) {
            default: break;
            case 's':	 // 1 string to match.
              if (NameR[16] != 'u')
                break;
              return Intrinsic::hexagon_M5_vmacbsu;	 // "exagon.M5.vmacbsu"
            case 'u':	 // 1 string to match.
              if (NameR[16] != 'u')
                break;
              return Intrinsic::hexagon_M5_vmacbuu;	 // "exagon.M5.vmacbuu"
            }
            break;
          case 'p':	 // 2 strings to match.
            if (memcmp(NameR.data()+13, "yb", 2))
              break;
            switch (NameR[15]) {
            default: break;
            case 's':	 // 1 string to match.
              if (NameR[16] != 'u')
                break;
              return Intrinsic::hexagon_M5_vmpybsu;	 // "exagon.M5.vmpybsu"
            case 'u':	 // 1 string to match.
              if (NameR[16] != 'u')
                break;
              return Intrinsic::hexagon_M5_vmpybuu;	 // "exagon.M5.vmpybuu"
            }
            break;
          }
          break;
        }
        break;
      case 'S':	 // 30 strings to match.
        switch (NameR[8]) {
        default: break;
        case '2':	 // 25 strings to match.
          if (NameR[9] != '.')
            break;
          switch (NameR[10]) {
          default: break;
          case 'a':	 // 8 strings to match.
            if (NameR[11] != 's')
              break;
            switch (NameR[12]) {
            default: break;
            case 'l':	 // 4 strings to match.
              if (NameR[13] != '.')
                break;
              switch (NameR[14]) {
              default: break;
              case 'i':	 // 2 strings to match.
                if (NameR[15] != '.')
                  break;
                switch (NameR[16]) {
                default: break;
                case 'p':	 // 1 string to match.
                  return Intrinsic::hexagon_S2_asl_i_p;	 // "exagon.S2.asl.i.p"
                case 'r':	 // 1 string to match.
                  return Intrinsic::hexagon_S2_asl_i_r;	 // "exagon.S2.asl.i.r"
                }
                break;
              case 'r':	 // 2 strings to match.
                if (NameR[15] != '.')
                  break;
                switch (NameR[16]) {
                default: break;
                case 'p':	 // 1 string to match.
                  return Intrinsic::hexagon_S2_asl_r_p;	 // "exagon.S2.asl.r.p"
                case 'r':	 // 1 string to match.
                  return Intrinsic::hexagon_S2_asl_r_r;	 // "exagon.S2.asl.r.r"
                }
                break;
              }
              break;
            case 'r':	 // 4 strings to match.
              if (NameR[13] != '.')
                break;
              switch (NameR[14]) {
              default: break;
              case 'i':	 // 2 strings to match.
                if (NameR[15] != '.')
                  break;
                switch (NameR[16]) {
                default: break;
                case 'p':	 // 1 string to match.
                  return Intrinsic::hexagon_S2_asr_i_p;	 // "exagon.S2.asr.i.p"
                case 'r':	 // 1 string to match.
                  return Intrinsic::hexagon_S2_asr_i_r;	 // "exagon.S2.asr.i.r"
                }
                break;
              case 'r':	 // 2 strings to match.
                if (NameR[15] != '.')
                  break;
                switch (NameR[16]) {
                default: break;
                case 'p':	 // 1 string to match.
                  return Intrinsic::hexagon_S2_asr_r_p;	 // "exagon.S2.asr.r.p"
                case 'r':	 // 1 string to match.
                  return Intrinsic::hexagon_S2_asr_r_r;	 // "exagon.S2.asr.r.r"
                }
                break;
              }
              break;
            }
            break;
          case 'c':	 // 1 string to match.
            if (memcmp(NameR.data()+11, "lbnorm", 6))
              break;
            return Intrinsic::hexagon_S2_clbnorm;	 // "exagon.S2.clbnorm"
          case 'i':	 // 1 string to match.
            if (memcmp(NameR.data()+11, "nsertp", 6))
              break;
            return Intrinsic::hexagon_S2_insertp;	 // "exagon.S2.insertp"
          case 'l':	 // 6 strings to match.
            if (NameR[11] != 's')
              break;
            switch (NameR[12]) {
            default: break;
            case 'l':	 // 2 strings to match.
              if (memcmp(NameR.data()+13, ".r.", 3))
                break;
              switch (NameR[16]) {
              default: break;
              case 'p':	 // 1 string to match.
                return Intrinsic::hexagon_S2_lsl_r_p;	 // "exagon.S2.lsl.r.p"
              case 'r':	 // 1 string to match.
                return Intrinsic::hexagon_S2_lsl_r_r;	 // "exagon.S2.lsl.r.r"
              }
              break;
            case 'r':	 // 4 strings to match.
              if (NameR[13] != '.')
                break;
              switch (NameR[14]) {
              default: break;
              case 'i':	 // 2 strings to match.
                if (NameR[15] != '.')
                  break;
                switch (NameR[16]) {
                default: break;
                case 'p':	 // 1 string to match.
                  return Intrinsic::hexagon_S2_lsr_i_p;	 // "exagon.S2.lsr.i.p"
                case 'r':	 // 1 string to match.
                  return Intrinsic::hexagon_S2_lsr_i_r;	 // "exagon.S2.lsr.i.r"
                }
                break;
              case 'r':	 // 2 strings to match.
                if (NameR[15] != '.')
                  break;
                switch (NameR[16]) {
                default: break;
                case 'p':	 // 1 string to match.
                  return Intrinsic::hexagon_S2_lsr_r_p;	 // "exagon.S2.lsr.r.p"
                case 'r':	 // 1 string to match.
                  return Intrinsic::hexagon_S2_lsr_r_r;	 // "exagon.S2.lsr.r.r"
                }
                break;
              }
              break;
            }
            break;
          case 'p':	 // 1 string to match.
            if (memcmp(NameR.data()+11, "arityp", 6))
              break;
            return Intrinsic::hexagon_S2_parityp;	 // "exagon.S2.parityp"
          case 's':	 // 5 strings to match.
            switch (NameR[11]) {
            default: break;
            case 'h':	 // 4 strings to match.
              if (memcmp(NameR.data()+12, "uff", 3))
                break;
              switch (NameR[15]) {
              default: break;
              case 'e':	 // 2 strings to match.
                switch (NameR[16]) {
                default: break;
                case 'b':	 // 1 string to match.
                  return Intrinsic::hexagon_S2_shuffeb;	 // "exagon.S2.shuffeb"
                case 'h':	 // 1 string to match.
                  return Intrinsic::hexagon_S2_shuffeh;	 // "exagon.S2.shuffeh"
                }
                break;
              case 'o':	 // 2 strings to match.
                switch (NameR[16]) {
                default: break;
                case 'b':	 // 1 string to match.
                  return Intrinsic::hexagon_S2_shuffob;	 // "exagon.S2.shuffob"
                case 'h':	 // 1 string to match.
                  return Intrinsic::hexagon_S2_shuffoh;	 // "exagon.S2.shuffoh"
                }
                break;
              }
              break;
            case 'v':	 // 1 string to match.
              if (memcmp(NameR.data()+12, "sathb", 5))
                break;
              return Intrinsic::hexagon_S2_svsathb;	 // "exagon.S2.svsathb"
            }
            break;
          case 'v':	 // 3 strings to match.
            switch (NameR[11]) {
            default: break;
            case 'r':	 // 1 string to match.
              if (memcmp(NameR.data()+12, "cnegh", 5))
                break;
              return Intrinsic::hexagon_S2_vrcnegh;	 // "exagon.S2.vrcnegh"
            case 's':	 // 2 strings to match.
              if (memcmp(NameR.data()+12, "at", 2))
                break;
              switch (NameR[14]) {
              default: break;
              case 'h':	 // 1 string to match.
                if (memcmp(NameR.data()+15, "ub", 2))
                  break;
                return Intrinsic::hexagon_S2_vsathub;	 // "exagon.S2.vsathub"
              case 'w':	 // 1 string to match.
                if (memcmp(NameR.data()+15, "uh", 2))
                  break;
                return Intrinsic::hexagon_S2_vsatwuh;	 // "exagon.S2.vsatwuh"
              }
              break;
            }
            break;
          }
          break;
        case '4':	 // 5 strings to match.
          if (NameR[9] != '.')
            break;
          switch (NameR[10]) {
          default: break;
          case 'a':	 // 1 string to match.
            if (memcmp(NameR.data()+11, "ddaddi", 6))
              break;
            return Intrinsic::hexagon_S4_addaddi;	 // "exagon.S4.addaddi"
          case 'c':	 // 1 string to match.
            if (memcmp(NameR.data()+11, "lbaddi", 6))
              break;
            return Intrinsic::hexagon_S4_clbaddi;	 // "exagon.S4.clbaddi"
          case 'e':	 // 1 string to match.
            if (memcmp(NameR.data()+11, "xtract", 6))
              break;
            return Intrinsic::hexagon_S4_extract;	 // "exagon.S4.extract"
          case 'o':	 // 1 string to match.
            if (memcmp(NameR.data()+11, "r.andi", 6))
              break;
            return Intrinsic::hexagon_S4_or_andi;	 // "exagon.S4.or.andi"
          case 's':	 // 1 string to match.
            if (memcmp(NameR.data()+11, "ubaddi", 6))
              break;
            return Intrinsic::hexagon_S4_subaddi;	 // "exagon.S4.subaddi"
          }
          break;
        }
        break;
      }
      break;
    case 18:	 // 103 strings to match.
      if (memcmp(NameR.data()+0, "exagon.", 7))
        break;
      switch (NameR[7]) {
      default: break;
      case 'A':	 // 26 strings to match.
        switch (NameR[8]) {
        default: break;
        case '2':	 // 11 strings to match.
          if (NameR[9] != '.')
            break;
          switch (NameR[10]) {
          default: break;
          case 'c':	 // 1 string to match.
            if (memcmp(NameR.data()+11, "ombinew", 7))
              break;
            return Intrinsic::hexagon_A2_combinew;	 // "exagon.A2.combinew"
          case 'r':	 // 1 string to match.
            if (memcmp(NameR.data()+11, "oundsat", 7))
              break;
            return Intrinsic::hexagon_A2_roundsat;	 // "exagon.A2.roundsat"
          case 's':	 // 2 strings to match.
            if (NameR[11] != 'v')
              break;
            switch (NameR[12]) {
            default: break;
            case 'a':	 // 1 string to match.
              if (memcmp(NameR.data()+13, "dduhs", 5))
                break;
              return Intrinsic::hexagon_A2_svadduhs;	 // "exagon.A2.svadduhs"
            case 's':	 // 1 string to match.
              if (memcmp(NameR.data()+13, "ubuhs", 5))
                break;
              return Intrinsic::hexagon_A2_svsubuhs;	 // "exagon.A2.svsubuhs"
            }
            break;
          case 'v':	 // 7 strings to match.
            switch (NameR[11]) {
            default: break;
            case 'a':	 // 2 strings to match.
              if (memcmp(NameR.data()+12, "bs", 2))
                break;
              switch (NameR[14]) {
              default: break;
              case 'h':	 // 1 string to match.
                if (memcmp(NameR.data()+15, "sat", 3))
                  break;
                return Intrinsic::hexagon_A2_vabshsat;	 // "exagon.A2.vabshsat"
              case 'w':	 // 1 string to match.
                if (memcmp(NameR.data()+15, "sat", 3))
                  break;
                return Intrinsic::hexagon_A2_vabswsat;	 // "exagon.A2.vabswsat"
              }
              break;
            case 'c':	 // 3 strings to match.
              if (memcmp(NameR.data()+12, "mp", 2))
                break;
              switch (NameR[14]) {
              default: break;
              case 'b':	 // 1 string to match.
                if (memcmp(NameR.data()+15, "gtu", 3))
                  break;
                return Intrinsic::hexagon_A2_vcmpbgtu;	 // "exagon.A2.vcmpbgtu"
              case 'h':	 // 1 string to match.
                if (memcmp(NameR.data()+15, "gtu", 3))
                  break;
                return Intrinsic::hexagon_A2_vcmphgtu;	 // "exagon.A2.vcmphgtu"
              case 'w':	 // 1 string to match.
                if (memcmp(NameR.data()+15, "gtu", 3))
                  break;
                return Intrinsic::hexagon_A2_vcmpwgtu;	 // "exagon.A2.vcmpwgtu"
              }
              break;
            case 'n':	 // 2 strings to match.
              if (memcmp(NameR.data()+12, "avg", 3))
                break;
              switch (NameR[15]) {
              default: break;
              case 'h':	 // 1 string to match.
                if (memcmp(NameR.data()+16, "cr", 2))
                  break;
                return Intrinsic::hexagon_A2_vnavghcr;	 // "exagon.A2.vnavghcr"
              case 'w':	 // 1 string to match.
                if (memcmp(NameR.data()+16, "cr", 2))
                  break;
                return Intrinsic::hexagon_A2_vnavgwcr;	 // "exagon.A2.vnavgwcr"
              }
              break;
            }
            break;
          }
          break;
        case '4':	 // 14 strings to match.
          if (NameR[9] != '.')
            break;
          switch (NameR[10]) {
          default: break;
          case 'b':	 // 1 string to match.
            if (memcmp(NameR.data()+11, "itsplit", 7))
              break;
            return Intrinsic::hexagon_A4_bitsplit;	 // "exagon.A4.bitsplit"
          case 'c':	 // 2 strings to match.
            if (memcmp(NameR.data()+11, "mp", 2))
              break;
            switch (NameR[13]) {
            default: break;
            case 'b':	 // 1 string to match.
              if (memcmp(NameR.data()+14, "gtui", 4))
                break;
              return Intrinsic::hexagon_A4_cmpbgtui;	 // "exagon.A4.cmpbgtui"
            case 'h':	 // 1 string to match.
              if (memcmp(NameR.data()+14, "gtui", 4))
                break;
              return Intrinsic::hexagon_A4_cmphgtui;	 // "exagon.A4.cmphgtui"
            }
            break;
          case 'm':	 // 1 string to match.
            if (memcmp(NameR.data()+11, "odwrapu", 7))
              break;
            return Intrinsic::hexagon_A4_modwrapu;	 // "exagon.A4.modwrapu"
          case 'r':	 // 3 strings to match.
            switch (NameR[11]) {
            default: break;
            case 'c':	 // 1 string to match.
              if (memcmp(NameR.data()+12, "mpneqi", 6))
                break;
              return Intrinsic::hexagon_A4_rcmpneqi;	 // "exagon.A4.rcmpneqi"
            case 'o':	 // 2 strings to match.
              if (memcmp(NameR.data()+12, "und.r", 5))
                break;
              switch (NameR[17]) {
              default: break;
              case 'i':	 // 1 string to match.
                return Intrinsic::hexagon_A4_round_ri;	 // "exagon.A4.round.ri"
              case 'r':	 // 1 string to match.
                return Intrinsic::hexagon_A4_round_rr;	 // "exagon.A4.round.rr"
              }
              break;
            }
            break;
          case 't':	 // 1 string to match.
            if (memcmp(NameR.data()+11, "lbmatch", 7))
              break;
            return Intrinsic::hexagon_A4_tlbmatch;	 // "exagon.A4.tlbmatch"
          case 'v':	 // 6 strings to match.
            if (memcmp(NameR.data()+11, "cmp", 3))
              break;
            switch (NameR[14]) {
            default: break;
            case 'b':	 // 2 strings to match.
              switch (NameR[15]) {
              default: break;
              case 'e':	 // 1 string to match.
                if (memcmp(NameR.data()+16, "qi", 2))
                  break;
                return Intrinsic::hexagon_A4_vcmpbeqi;	 // "exagon.A4.vcmpbeqi"
              case 'g':	 // 1 string to match.
                if (memcmp(NameR.data()+16, "ti", 2))
                  break;
                return Intrinsic::hexagon_A4_vcmpbgti;	 // "exagon.A4.vcmpbgti"
              }
              break;
            case 'h':	 // 2 strings to match.
              switch (NameR[15]) {
              default: break;
              case 'e':	 // 1 string to match.
                if (memcmp(NameR.data()+16, "qi", 2))
                  break;
                return Intrinsic::hexagon_A4_vcmpheqi;	 // "exagon.A4.vcmpheqi"
              case 'g':	 // 1 string to match.
                if (memcmp(NameR.data()+16, "ti", 2))
                  break;
                return Intrinsic::hexagon_A4_vcmphgti;	 // "exagon.A4.vcmphgti"
              }
              break;
            case 'w':	 // 2 strings to match.
              switch (NameR[15]) {
              default: break;
              case 'e':	 // 1 string to match.
                if (memcmp(NameR.data()+16, "qi", 2))
                  break;
                return Intrinsic::hexagon_A4_vcmpweqi;	 // "exagon.A4.vcmpweqi"
              case 'g':	 // 1 string to match.
                if (memcmp(NameR.data()+16, "ti", 2))
                  break;
                return Intrinsic::hexagon_A4_vcmpwgti;	 // "exagon.A4.vcmpwgti"
              }
              break;
            }
            break;
          }
          break;
        case '5':	 // 1 string to match.
          if (memcmp(NameR.data()+9, ".vaddhubs", 9))
            break;
          return Intrinsic::hexagon_A5_vaddhubs;	 // "exagon.A5.vaddhubs"
        }
        break;
      case 'C':	 // 5 strings to match.
        switch (NameR[8]) {
        default: break;
        case '2':	 // 1 string to match.
          if (memcmp(NameR.data()+9, ".bitsclri", 9))
            break;
          return Intrinsic::hexagon_C2_bitsclri;	 // "exagon.C2.bitsclri"
        case '4':	 // 4 strings to match.
          if (NameR[9] != '.')
            break;
          switch (NameR[10]) {
          default: break;
          case 'a':	 // 1 string to match.
            if (memcmp(NameR.data()+11, "nd.andn", 7))
              break;
            return Intrinsic::hexagon_C4_and_andn;	 // "exagon.C4.and.andn"
          case 'c':	 // 1 string to match.
            if (memcmp(NameR.data()+11, "mplteui", 7))
              break;
            return Intrinsic::hexagon_C4_cmplteui;	 // "exagon.C4.cmplteui"
          case 'n':	 // 2 strings to match.
            if (memcmp(NameR.data()+11, "bits", 4))
              break;
            switch (NameR[15]) {
            default: break;
            case 'c':	 // 1 string to match.
              if (memcmp(NameR.data()+16, "lr", 2))
                break;
              return Intrinsic::hexagon_C4_nbitsclr;	 // "exagon.C4.nbitsclr"
            case 's':	 // 1 string to match.
              if (memcmp(NameR.data()+16, "et", 2))
                break;
              return Intrinsic::hexagon_C4_nbitsset;	 // "exagon.C4.nbitsset"
            }
            break;
          }
          break;
        }
        break;
      case 'F':	 // 8 strings to match.
        if (memcmp(NameR.data()+8, "2.", 2))
          break;
        switch (NameR[10]) {
        default: break;
        case 'd':	 // 4 strings to match.
          if (memcmp(NameR.data()+11, "ff", 2))
            break;
          switch (NameR[13]) {
          default: break;
          case 'i':	 // 3 strings to match.
            if (memcmp(NameR.data()+14, "xup", 3))
              break;
            switch (NameR[17]) {
            default: break;
            case 'd':	 // 1 string to match.
              return Intrinsic::hexagon_F2_dffixupd;	 // "exagon.F2.dffixupd"
            case 'n':	 // 1 string to match.
              return Intrinsic::hexagon_F2_dffixupn;	 // "exagon.F2.dffixupn"
            case 'r':	 // 1 string to match.
              return Intrinsic::hexagon_F2_dffixupr;	 // "exagon.F2.dffixupr"
            }
            break;
          case 'm':	 // 1 string to match.
            if (memcmp(NameR.data()+14, "a.sc", 4))
              break;
            return Intrinsic::hexagon_F2_dffma_sc;	 // "exagon.F2.dffma.sc"
          }
          break;
        case 's':	 // 4 strings to match.
          if (memcmp(NameR.data()+11, "ff", 2))
            break;
          switch (NameR[13]) {
          default: break;
          case 'i':	 // 3 strings to match.
            if (memcmp(NameR.data()+14, "xup", 3))
              break;
            switch (NameR[17]) {
            default: break;
            case 'd':	 // 1 string to match.
              return Intrinsic::hexagon_F2_sffixupd;	 // "exagon.F2.sffixupd"
            case 'n':	 // 1 string to match.
              return Intrinsic::hexagon_F2_sffixupn;	 // "exagon.F2.sffixupn"
            case 'r':	 // 1 string to match.
              return Intrinsic::hexagon_F2_sffixupr;	 // "exagon.F2.sffixupr"
            }
            break;
          case 'm':	 // 1 string to match.
            if (memcmp(NameR.data()+14, "a.sc", 4))
              break;
            return Intrinsic::hexagon_F2_sffma_sc;	 // "exagon.F2.sffma.sc"
          }
          break;
        }
        break;
      case 'M':	 // 29 strings to match.
        switch (NameR[8]) {
        default: break;
        case '2':	 // 18 strings to match.
          if (NameR[9] != '.')
            break;
          switch (NameR[10]) {
          default: break;
          case 'c':	 // 10 strings to match.
            switch (NameR[11]) {
            default: break;
            case 'm':	 // 8 strings to match.
              switch (NameR[12]) {
              default: break;
              case 'a':	 // 4 strings to match.
                if (NameR[13] != 'c')
                  break;
                switch (NameR[14]) {
                default: break;
                case 'i':	 // 1 string to match.
                  if (memcmp(NameR.data()+15, ".s0", 3))
                    break;
                  return Intrinsic::hexagon_M2_cmaci_s0;	 // "exagon.M2.cmaci.s0"
                case 'r':	 // 1 string to match.
                  if (memcmp(NameR.data()+15, ".s0", 3))
                    break;
                  return Intrinsic::hexagon_M2_cmacr_s0;	 // "exagon.M2.cmacr.s0"
                case 's':	 // 2 strings to match.
                  if (memcmp(NameR.data()+15, ".s", 2))
                    break;
                  switch (NameR[17]) {
                  default: break;
                  case '0':	 // 1 string to match.
                    return Intrinsic::hexagon_M2_cmacs_s0;	 // "exagon.M2.cmacs.s0"
                  case '1':	 // 1 string to match.
                    return Intrinsic::hexagon_M2_cmacs_s1;	 // "exagon.M2.cmacs.s1"
                  }
                  break;
                }
                break;
              case 'p':	 // 4 strings to match.
                if (NameR[13] != 'y')
                  break;
                switch (NameR[14]) {
                default: break;
                case 'i':	 // 1 string to match.
                  if (memcmp(NameR.data()+15, ".s0", 3))
                    break;
                  return Intrinsic::hexagon_M2_cmpyi_s0;	 // "exagon.M2.cmpyi.s0"
                case 'r':	 // 1 string to match.
                  if (memcmp(NameR.data()+15, ".s0", 3))
                    break;
                  return Intrinsic::hexagon_M2_cmpyr_s0;	 // "exagon.M2.cmpyr.s0"
                case 's':	 // 2 strings to match.
                  if (memcmp(NameR.data()+15, ".s", 2))
                    break;
                  switch (NameR[17]) {
                  default: break;
                  case '0':	 // 1 string to match.
                    return Intrinsic::hexagon_M2_cmpys_s0;	 // "exagon.M2.cmpys.s0"
                  case '1':	 // 1 string to match.
                    return Intrinsic::hexagon_M2_cmpys_s1;	 // "exagon.M2.cmpys.s1"
                  }
                  break;
                }
                break;
              }
              break;
            case 'n':	 // 2 strings to match.
              if (memcmp(NameR.data()+12, "acs.s", 5))
                break;
              switch (NameR[17]) {
              default: break;
              case '0':	 // 1 string to match.
                return Intrinsic::hexagon_M2_cnacs_s0;	 // "exagon.M2.cnacs.s0"
              case '1':	 // 1 string to match.
                return Intrinsic::hexagon_M2_cnacs_s1;	 // "exagon.M2.cnacs.s1"
              }
              break;
            }
            break;
          case 'm':	 // 5 strings to match.
            switch (NameR[11]) {
            default: break;
            case 'm':	 // 4 strings to match.
              if (memcmp(NameR.data()+12, "py", 2))
                break;
              switch (NameR[14]) {
              default: break;
              case 'h':	 // 2 strings to match.
                if (memcmp(NameR.data()+15, ".s", 2))
                  break;
                switch (NameR[17]) {
                default: break;
                case '0':	 // 1 string to match.
                  return Intrinsic::hexagon_M2_mmpyh_s0;	 // "exagon.M2.mmpyh.s0"
                case '1':	 // 1 string to match.
                  return Intrinsic::hexagon_M2_mmpyh_s1;	 // "exagon.M2.mmpyh.s1"
                }
                break;
              case 'l':	 // 2 strings to match.
                if (memcmp(NameR.data()+15, ".s", 2))
                  break;
                switch (NameR[17]) {
                default: break;
                case '0':	 // 1 string to match.
                  return Intrinsic::hexagon_M2_mmpyl_s0;	 // "exagon.M2.mmpyl.s0"
                case '1':	 // 1 string to match.
                  return Intrinsic::hexagon_M2_mmpyl_s1;	 // "exagon.M2.mmpyl.s1"
                }
                break;
              }
              break;
            case 'p':	 // 1 string to match.
              if (memcmp(NameR.data()+12, "ysu.up", 6))
                break;
              return Intrinsic::hexagon_M2_mpysu_up;	 // "exagon.M2.mpysu.up"
            }
            break;
          case 'v':	 // 2 strings to match.
            if (memcmp(NameR.data()+11, "rm", 2))
              break;
            switch (NameR[13]) {
            default: break;
            case 'a':	 // 1 string to match.
              if (memcmp(NameR.data()+14, "c.s0", 4))
                break;
              return Intrinsic::hexagon_M2_vrmac_s0;	 // "exagon.M2.vrmac.s0"
            case 'p':	 // 1 string to match.
              if (memcmp(NameR.data()+14, "y.s0", 4))
                break;
              return Intrinsic::hexagon_M2_vrmpy_s0;	 // "exagon.M2.vrmpy.s0"
            }
            break;
          case 'x':	 // 1 string to match.
            if (memcmp(NameR.data()+11, "or.xacc", 7))
              break;
            return Intrinsic::hexagon_M2_xor_xacc;	 // "exagon.M2.xor.xacc"
          }
          break;
        case '4':	 // 5 strings to match.
          if (NameR[9] != '.')
            break;
          switch (NameR[10]) {
          default: break;
          case 'a':	 // 1 string to match.
            if (memcmp(NameR.data()+11, "nd.andn", 7))
              break;
            return Intrinsic::hexagon_M4_and_andn;	 // "exagon.M4.and.andn"
          case 'c':	 // 2 strings to match.
            if (memcmp(NameR.data()+11, "mpy", 3))
              break;
            switch (NameR[14]) {
            default: break;
            case 'i':	 // 1 string to match.
              if (memcmp(NameR.data()+15, ".wh", 3))
                break;
              return Intrinsic::hexagon_M4_cmpyi_wh;	 // "exagon.M4.cmpyi.wh"
            case 'r':	 // 1 string to match.
              if (memcmp(NameR.data()+15, ".wh", 3))
                break;
              return Intrinsic::hexagon_M4_cmpyr_wh;	 // "exagon.M4.cmpyr.wh"
            }
            break;
          case 'x':	 // 2 strings to match.
            if (memcmp(NameR.data()+11, "or.", 3))
              break;
            switch (NameR[14]) {
            default: break;
            case 'a':	 // 1 string to match.
              if (memcmp(NameR.data()+15, "ndn", 3))
                break;
              return Intrinsic::hexagon_M4_xor_andn;	 // "exagon.M4.xor.andn"
            case 'x':	 // 1 string to match.
              if (memcmp(NameR.data()+15, "acc", 3))
                break;
              return Intrinsic::hexagon_M4_xor_xacc;	 // "exagon.M4.xor.xacc"
            }
            break;
          }
          break;
        case '5':	 // 6 strings to match.
          if (memcmp(NameR.data()+9, ".v", 2))
            break;
          switch (NameR[11]) {
          default: break;
          case 'd':	 // 2 strings to match.
            if (NameR[12] != 'm')
              break;
            switch (NameR[13]) {
            default: break;
            case 'a':	 // 1 string to match.
              if (memcmp(NameR.data()+14, "cbsu", 4))
                break;
              return Intrinsic::hexagon_M5_vdmacbsu;	 // "exagon.M5.vdmacbsu"
            case 'p':	 // 1 string to match.
              if (memcmp(NameR.data()+14, "ybsu", 4))
                break;
              return Intrinsic::hexagon_M5_vdmpybsu;	 // "exagon.M5.vdmpybsu"
            }
            break;
          case 'r':	 // 4 strings to match.
            if (NameR[12] != 'm')
              break;
            switch (NameR[13]) {
            default: break;
            case 'a':	 // 2 strings to match.
              if (memcmp(NameR.data()+14, "cb", 2))
                break;
              switch (NameR[16]) {
              default: break;
              case 's':	 // 1 string to match.
                if (NameR[17] != 'u')
                  break;
                return Intrinsic::hexagon_M5_vrmacbsu;	 // "exagon.M5.vrmacbsu"
              case 'u':	 // 1 string to match.
                if (NameR[17] != 'u')
                  break;
                return Intrinsic::hexagon_M5_vrmacbuu;	 // "exagon.M5.vrmacbuu"
              }
              break;
            case 'p':	 // 2 strings to match.
              if (memcmp(NameR.data()+14, "yb", 2))
                break;
              switch (NameR[16]) {
              default: break;
              case 's':	 // 1 string to match.
                if (NameR[17] != 'u')
                  break;
                return Intrinsic::hexagon_M5_vrmpybsu;	 // "exagon.M5.vrmpybsu"
              case 'u':	 // 1 string to match.
                if (NameR[17] != 'u')
                  break;
                return Intrinsic::hexagon_M5_vrmpybuu;	 // "exagon.M5.vrmpybuu"
              }
              break;
            }
            break;
          }
          break;
        }
        break;
      case 'S':	 // 35 strings to match.
        switch (NameR[8]) {
        default: break;
        case '2':	 // 31 strings to match.
          if (NameR[9] != '.')
            break;
          switch (NameR[10]) {
          default: break;
          case 'a':	 // 8 strings to match.
            if (NameR[11] != 's')
              break;
            switch (NameR[12]) {
            default: break;
            case 'l':	 // 4 strings to match.
              if (NameR[13] != '.')
                break;
              switch (NameR[14]) {
              default: break;
              case 'i':	 // 2 strings to match.
                if (memcmp(NameR.data()+15, ".v", 2))
                  break;
                switch (NameR[17]) {
                default: break;
                case 'h':	 // 1 string to match.
                  return Intrinsic::hexagon_S2_asl_i_vh;	 // "exagon.S2.asl.i.vh"
                case 'w':	 // 1 string to match.
                  return Intrinsic::hexagon_S2_asl_i_vw;	 // "exagon.S2.asl.i.vw"
                }
                break;
              case 'r':	 // 2 strings to match.
                if (memcmp(NameR.data()+15, ".v", 2))
                  break;
                switch (NameR[17]) {
                default: break;
                case 'h':	 // 1 string to match.
                  return Intrinsic::hexagon_S2_asl_r_vh;	 // "exagon.S2.asl.r.vh"
                case 'w':	 // 1 string to match.
                  return Intrinsic::hexagon_S2_asl_r_vw;	 // "exagon.S2.asl.r.vw"
                }
                break;
              }
              break;
            case 'r':	 // 4 strings to match.
              if (NameR[13] != '.')
                break;
              switch (NameR[14]) {
              default: break;
              case 'i':	 // 2 strings to match.
                if (memcmp(NameR.data()+15, ".v", 2))
                  break;
                switch (NameR[17]) {
                default: break;
                case 'h':	 // 1 string to match.
                  return Intrinsic::hexagon_S2_asr_i_vh;	 // "exagon.S2.asr.i.vh"
                case 'w':	 // 1 string to match.
                  return Intrinsic::hexagon_S2_asr_i_vw;	 // "exagon.S2.asr.i.vw"
                }
                break;
              case 'r':	 // 2 strings to match.
                if (memcmp(NameR.data()+15, ".v", 2))
                  break;
                switch (NameR[17]) {
                default: break;
                case 'h':	 // 1 string to match.
                  return Intrinsic::hexagon_S2_asr_r_vh;	 // "exagon.S2.asr.r.vh"
                case 'w':	 // 1 string to match.
                  return Intrinsic::hexagon_S2_asr_r_vw;	 // "exagon.S2.asr.r.vw"
                }
                break;
              }
              break;
            }
            break;
          case 'c':	 // 2 strings to match.
            if (memcmp(NameR.data()+11, "lrbit.", 6))
              break;
            switch (NameR[17]) {
            default: break;
            case 'i':	 // 1 string to match.
              return Intrinsic::hexagon_S2_clrbit_i;	 // "exagon.S2.clrbit.i"
            case 'r':	 // 1 string to match.
              return Intrinsic::hexagon_S2_clrbit_r;	 // "exagon.S2.clrbit.r"
            }
            break;
          case 'e':	 // 1 string to match.
            if (memcmp(NameR.data()+11, "xtractu", 7))
              break;
            return Intrinsic::hexagon_S2_extractu;	 // "exagon.S2.extractu"
          case 'l':	 // 6 strings to match.
            if (NameR[11] != 's')
              break;
            switch (NameR[12]) {
            default: break;
            case 'l':	 // 2 strings to match.
              if (memcmp(NameR.data()+13, ".r.v", 4))
                break;
              switch (NameR[17]) {
              default: break;
              case 'h':	 // 1 string to match.
                return Intrinsic::hexagon_S2_lsl_r_vh;	 // "exagon.S2.lsl.r.vh"
              case 'w':	 // 1 string to match.
                return Intrinsic::hexagon_S2_lsl_r_vw;	 // "exagon.S2.lsl.r.vw"
              }
              break;
            case 'r':	 // 4 strings to match.
              if (NameR[13] != '.')
                break;
              switch (NameR[14]) {
              default: break;
              case 'i':	 // 2 strings to match.
                if (memcmp(NameR.data()+15, ".v", 2))
                  break;
                switch (NameR[17]) {
                default: break;
                case 'h':	 // 1 string to match.
                  return Intrinsic::hexagon_S2_lsr_i_vh;	 // "exagon.S2.lsr.i.vh"
                case 'w':	 // 1 string to match.
                  return Intrinsic::hexagon_S2_lsr_i_vw;	 // "exagon.S2.lsr.i.vw"
                }
                break;
              case 'r':	 // 2 strings to match.
                if (memcmp(NameR.data()+15, ".v", 2))
                  break;
                switch (NameR[17]) {
                default: break;
                case 'h':	 // 1 string to match.
                  return Intrinsic::hexagon_S2_lsr_r_vh;	 // "exagon.S2.lsr.r.vh"
                case 'w':	 // 1 string to match.
                  return Intrinsic::hexagon_S2_lsr_r_vw;	 // "exagon.S2.lsr.r.vw"
                }
                break;
              }
              break;
            }
            break;
          case 's':	 // 3 strings to match.
            switch (NameR[11]) {
            default: break;
            case 'e':	 // 2 strings to match.
              if (memcmp(NameR.data()+12, "tbit.", 5))
                break;
              switch (NameR[17]) {
              default: break;
              case 'i':	 // 1 string to match.
                return Intrinsic::hexagon_S2_setbit_i;	 // "exagon.S2.setbit.i"
              case 'r':	 // 1 string to match.
                return Intrinsic::hexagon_S2_setbit_r;	 // "exagon.S2.setbit.r"
              }
              break;
            case 'v':	 // 1 string to match.
              if (memcmp(NameR.data()+12, "sathub", 6))
                break;
              return Intrinsic::hexagon_S2_svsathub;	 // "exagon.S2.svsathub"
            }
            break;
          case 't':	 // 2 strings to match.
            if (memcmp(NameR.data()+11, "stbit.", 6))
              break;
            switch (NameR[17]) {
            default: break;
            case 'i':	 // 1 string to match.
              return Intrinsic::hexagon_S2_tstbit_i;	 // "exagon.S2.tstbit.i"
            case 'r':	 // 1 string to match.
              return Intrinsic::hexagon_S2_tstbit_r;	 // "exagon.S2.tstbit.r"
            }
            break;
          case 'v':	 // 9 strings to match.
            switch (NameR[11]) {
            default: break;
            case 'a':	 // 2 strings to match.
              if (memcmp(NameR.data()+12, "lign", 4))
                break;
              switch (NameR[16]) {
              default: break;
              case 'i':	 // 1 string to match.
                if (NameR[17] != 'b')
                  break;
                return Intrinsic::hexagon_S2_valignib;	 // "exagon.S2.valignib"
              case 'r':	 // 1 string to match.
                if (NameR[17] != 'b')
                  break;
                return Intrinsic::hexagon_S2_valignrb;	 // "exagon.S2.valignrb"
              }
              break;
            case 'c':	 // 1 string to match.
              if (memcmp(NameR.data()+12, "rotate", 6))
                break;
              return Intrinsic::hexagon_S2_vcrotate;	 // "exagon.S2.vcrotate"
            case 's':	 // 2 strings to match.
              if (memcmp(NameR.data()+12, "platr", 5))
                break;
              switch (NameR[17]) {
              default: break;
              case 'b':	 // 1 string to match.
                return Intrinsic::hexagon_S2_vsplatrb;	 // "exagon.S2.vsplatrb"
              case 'h':	 // 1 string to match.
                return Intrinsic::hexagon_S2_vsplatrh;	 // "exagon.S2.vsplatrh"
              }
              break;
            case 't':	 // 4 strings to match.
              if (memcmp(NameR.data()+12, "run", 3))
                break;
              switch (NameR[15]) {
              default: break;
              case 'e':	 // 2 strings to match.
                switch (NameR[16]) {
                default: break;
                case 'h':	 // 1 string to match.
                  if (NameR[17] != 'b')
                    break;
                  return Intrinsic::hexagon_S2_vtrunehb;	 // "exagon.S2.vtrunehb"
                case 'w':	 // 1 string to match.
                  if (NameR[17] != 'h')
                    break;
                  return Intrinsic::hexagon_S2_vtrunewh;	 // "exagon.S2.vtrunewh"
                }
                break;
              case 'o':	 // 2 strings to match.
                switch (NameR[16]) {
                default: break;
                case 'h':	 // 1 string to match.
                  if (NameR[17] != 'b')
                    break;
                  return Intrinsic::hexagon_S2_vtrunohb;	 // "exagon.S2.vtrunohb"
                case 'w':	 // 1 string to match.
                  if (NameR[17] != 'h')
                    break;
                  return Intrinsic::hexagon_S2_vtrunowh;	 // "exagon.S2.vtrunowh"
                }
                break;
              }
              break;
            }
            break;
          }
          break;
        case '4':	 // 4 strings to match.
          if (NameR[9] != '.')
            break;
          switch (NameR[10]) {
          default: break;
          case 'c':	 // 2 strings to match.
            if (memcmp(NameR.data()+11, "lbp", 3))
              break;
            switch (NameR[14]) {
            default: break;
            case 'a':	 // 1 string to match.
              if (memcmp(NameR.data()+15, "ddi", 3))
                break;
              return Intrinsic::hexagon_S4_clbpaddi;	 // "exagon.S4.clbpaddi"
            case 'n':	 // 1 string to match.
              if (memcmp(NameR.data()+15, "orm", 3))
                break;
              return Intrinsic::hexagon_S4_clbpnorm;	 // "exagon.S4.clbpnorm"
            }
            break;
          case 'e':	 // 1 string to match.
            if (memcmp(NameR.data()+11, "xtractp", 7))
              break;
            return Intrinsic::hexagon_S4_extractp;	 // "exagon.S4.extractp"
          case 'o':	 // 1 string to match.
            if (memcmp(NameR.data()+11, "r.andix", 7))
              break;
            return Intrinsic::hexagon_S4_or_andix;	 // "exagon.S4.or.andix"
          }
          break;
        }
        break;
      }
      break;
    case 19:	 // 81 strings to match.
      if (memcmp(NameR.data()+0, "exagon.", 7))
        break;
      switch (NameR[7]) {
      default: break;
      case 'A':	 // 11 strings to match.
        switch (NameR[8]) {
        default: break;
        case '2':	 // 3 strings to match.
          if (NameR[9] != '.')
            break;
          switch (NameR[10]) {
          default: break;
          case 'c':	 // 1 string to match.
            if (memcmp(NameR.data()+11, "ombineii", 8))
              break;
            return Intrinsic::hexagon_A2_combineii;	 // "exagon.A2.combineii"
          case 'v':	 // 2 strings to match.
            switch (NameR[11]) {
            default: break;
            case 'a':	 // 1 string to match.
              if (memcmp(NameR.data()+12, "ddb.map", 7))
                break;
              return Intrinsic::hexagon_A2_vaddb_map;	 // "exagon.A2.vaddb.map"
            case 's':	 // 1 string to match.
              if (memcmp(NameR.data()+12, "ubb.map", 7))
                break;
              return Intrinsic::hexagon_A2_vsubb_map;	 // "exagon.A2.vsubb.map"
            }
            break;
          }
          break;
        case '4':	 // 8 strings to match.
          if (NameR[9] != '.')
            break;
          switch (NameR[10]) {
          default: break;
          case 'b':	 // 1 string to match.
            if (memcmp(NameR.data()+11, "itspliti", 8))
              break;
            return Intrinsic::hexagon_A4_bitspliti;	 // "exagon.A4.bitspliti"
          case 'c':	 // 4 strings to match.
            switch (NameR[11]) {
            default: break;
            case 'o':	 // 2 strings to match.
              if (memcmp(NameR.data()+12, "mbine", 5))
                break;
              switch (NameR[17]) {
              default: break;
              case 'i':	 // 1 string to match.
                if (NameR[18] != 'r')
                  break;
                return Intrinsic::hexagon_A4_combineir;	 // "exagon.A4.combineir"
              case 'r':	 // 1 string to match.
                if (NameR[18] != 'i')
                  break;
                return Intrinsic::hexagon_A4_combineri;	 // "exagon.A4.combineri"
              }
              break;
            case 'r':	 // 2 strings to match.
              if (memcmp(NameR.data()+12, "ound.r", 6))
                break;
              switch (NameR[18]) {
              default: break;
              case 'i':	 // 1 string to match.
                return Intrinsic::hexagon_A4_cround_ri;	 // "exagon.A4.cround.ri"
              case 'r':	 // 1 string to match.
                return Intrinsic::hexagon_A4_cround_rr;	 // "exagon.A4.cround.rr"
              }
              break;
            }
            break;
          case 'v':	 // 3 strings to match.
            if (memcmp(NameR.data()+11, "cmp", 3))
              break;
            switch (NameR[14]) {
            default: break;
            case 'b':	 // 1 string to match.
              if (memcmp(NameR.data()+15, "gtui", 4))
                break;
              return Intrinsic::hexagon_A4_vcmpbgtui;	 // "exagon.A4.vcmpbgtui"
            case 'h':	 // 1 string to match.
              if (memcmp(NameR.data()+15, "gtui", 4))
                break;
              return Intrinsic::hexagon_A4_vcmphgtui;	 // "exagon.A4.vcmphgtui"
            case 'w':	 // 1 string to match.
              if (memcmp(NameR.data()+15, "gtui", 4))
                break;
              return Intrinsic::hexagon_A4_vcmpwgtui;	 // "exagon.A4.vcmpwgtui"
            }
            break;
          }
          break;
        }
        break;
      case 'C':	 // 2 strings to match.
        switch (NameR[8]) {
        default: break;
        case '2':	 // 1 string to match.
          if (memcmp(NameR.data()+9, ".pxfer.map", 10))
            break;
          return Intrinsic::hexagon_C2_pxfer_map;	 // "exagon.C2.pxfer.map"
        case '4':	 // 1 string to match.
          if (memcmp(NameR.data()+9, ".nbitsclri", 10))
            break;
          return Intrinsic::hexagon_C4_nbitsclri;	 // "exagon.C4.nbitsclri"
        }
        break;
      case 'F':	 // 12 strings to match.
        if (memcmp(NameR.data()+8, "2.", 2))
          break;
        switch (NameR[10]) {
        default: break;
        case 'c':	 // 8 strings to match.
          if (memcmp(NameR.data()+11, "onv.", 4))
            break;
          switch (NameR[15]) {
          default: break;
          case 'd':	 // 4 strings to match.
            switch (NameR[16]) {
            default: break;
            case '2':	 // 2 strings to match.
              switch (NameR[17]) {
              default: break;
              case 'd':	 // 1 string to match.
                if (NameR[18] != 'f')
                  break;
                return Intrinsic::hexagon_F2_conv_d2df;	 // "exagon.F2.conv.d2df"
              case 's':	 // 1 string to match.
                if (NameR[18] != 'f')
                  break;
                return Intrinsic::hexagon_F2_conv_d2sf;	 // "exagon.F2.conv.d2sf"
              }
              break;
            case 'f':	 // 2 strings to match.
              if (NameR[17] != '2')
                break;
              switch (NameR[18]) {
              default: break;
              case 'd':	 // 1 string to match.
                return Intrinsic::hexagon_F2_conv_df2d;	 // "exagon.F2.conv.df2d"
              case 'w':	 // 1 string to match.
                return Intrinsic::hexagon_F2_conv_df2w;	 // "exagon.F2.conv.df2w"
              }
              break;
            }
            break;
          case 's':	 // 2 strings to match.
            if (memcmp(NameR.data()+16, "f2", 2))
              break;
            switch (NameR[18]) {
            default: break;
            case 'd':	 // 1 string to match.
              return Intrinsic::hexagon_F2_conv_sf2d;	 // "exagon.F2.conv.sf2d"
            case 'w':	 // 1 string to match.
              return Intrinsic::hexagon_F2_conv_sf2w;	 // "exagon.F2.conv.sf2w"
            }
            break;
          case 'w':	 // 2 strings to match.
            if (NameR[16] != '2')
              break;
            switch (NameR[17]) {
            default: break;
            case 'd':	 // 1 string to match.
              if (NameR[18] != 'f')
                break;
              return Intrinsic::hexagon_F2_conv_w2df;	 // "exagon.F2.conv.w2df"
            case 's':	 // 1 string to match.
              if (NameR[18] != 'f')
                break;
              return Intrinsic::hexagon_F2_conv_w2sf;	 // "exagon.F2.conv.w2sf"
            }
            break;
          }
          break;
        case 'd':	 // 2 strings to match.
          if (memcmp(NameR.data()+11, "ffm", 3))
            break;
          switch (NameR[14]) {
          default: break;
          case 'a':	 // 1 string to match.
            if (memcmp(NameR.data()+15, ".lib", 4))
              break;
            return Intrinsic::hexagon_F2_dffma_lib;	 // "exagon.F2.dffma.lib"
          case 's':	 // 1 string to match.
            if (memcmp(NameR.data()+15, ".lib", 4))
              break;
            return Intrinsic::hexagon_F2_dffms_lib;	 // "exagon.F2.dffms.lib"
          }
          break;
        case 's':	 // 2 strings to match.
          if (memcmp(NameR.data()+11, "ffm", 3))
            break;
          switch (NameR[14]) {
          default: break;
          case 'a':	 // 1 string to match.
            if (memcmp(NameR.data()+15, ".lib", 4))
              break;
            return Intrinsic::hexagon_F2_sffma_lib;	 // "exagon.F2.sffma.lib"
          case 's':	 // 1 string to match.
            if (memcmp(NameR.data()+15, ".lib", 4))
              break;
            return Intrinsic::hexagon_F2_sffms_lib;	 // "exagon.F2.sffms.lib"
          }
          break;
        }
        break;
      case 'M':	 // 44 strings to match.
        switch (NameR[8]) {
        default: break;
        case '2':	 // 41 strings to match.
          if (NameR[9] != '.')
            break;
          switch (NameR[10]) {
          default: break;
          case 'c':	 // 8 strings to match.
            switch (NameR[11]) {
            default: break;
            case 'm':	 // 6 strings to match.
              switch (NameR[12]) {
              default: break;
              case 'a':	 // 2 strings to match.
                if (memcmp(NameR.data()+13, "csc.s", 5))
                  break;
                switch (NameR[18]) {
                default: break;
                case '0':	 // 1 string to match.
                  return Intrinsic::hexagon_M2_cmacsc_s0;	 // "exagon.M2.cmacsc.s0"
                case '1':	 // 1 string to match.
                  return Intrinsic::hexagon_M2_cmacsc_s1;	 // "exagon.M2.cmacsc.s1"
                }
                break;
              case 'p':	 // 4 strings to match.
                if (NameR[13] != 'y')
                  break;
                switch (NameR[14]) {
                default: break;
                case 'r':	 // 2 strings to match.
                  if (memcmp(NameR.data()+15, "s.s", 3))
                    break;
                  switch (NameR[18]) {
                  default: break;
                  case '0':	 // 1 string to match.
                    return Intrinsic::hexagon_M2_cmpyrs_s0;	 // "exagon.M2.cmpyrs.s0"
                  case '1':	 // 1 string to match.
                    return Intrinsic::hexagon_M2_cmpyrs_s1;	 // "exagon.M2.cmpyrs.s1"
                  }
                  break;
                case 's':	 // 2 strings to match.
                  if (memcmp(NameR.data()+15, "c.s", 3))
                    break;
                  switch (NameR[18]) {
                  default: break;
                  case '0':	 // 1 string to match.
                    return Intrinsic::hexagon_M2_cmpysc_s0;	 // "exagon.M2.cmpysc.s0"
                  case '1':	 // 1 string to match.
                    return Intrinsic::hexagon_M2_cmpysc_s1;	 // "exagon.M2.cmpysc.s1"
                  }
                  break;
                }
                break;
              }
              break;
            case 'n':	 // 2 strings to match.
              if (memcmp(NameR.data()+12, "acsc.s", 6))
                break;
              switch (NameR[18]) {
              default: break;
              case '0':	 // 1 string to match.
                return Intrinsic::hexagon_M2_cnacsc_s0;	 // "exagon.M2.cnacsc.s0"
              case '1':	 // 1 string to match.
                return Intrinsic::hexagon_M2_cnacsc_s1;	 // "exagon.M2.cnacsc.s1"
              }
              break;
            }
            break;
          case 'h':	 // 2 strings to match.
            if (memcmp(NameR.data()+11, "mmpy", 4))
              break;
            switch (NameR[15]) {
            default: break;
            case 'h':	 // 1 string to match.
              if (memcmp(NameR.data()+16, ".s1", 3))
                break;
              return Intrinsic::hexagon_M2_hmmpyh_s1;	 // "exagon.M2.hmmpyh.s1"
            case 'l':	 // 1 string to match.
              if (memcmp(NameR.data()+16, ".s1", 3))
                break;
              return Intrinsic::hexagon_M2_hmmpyl_s1;	 // "exagon.M2.hmmpyl.s1"
            }
            break;
          case 'm':	 // 21 strings to match.
            switch (NameR[11]) {
            default: break;
            case 'm':	 // 12 strings to match.
              switch (NameR[12]) {
              default: break;
              case 'a':	 // 4 strings to match.
                if (NameR[13] != 'c')
                  break;
                switch (NameR[14]) {
                default: break;
                case 'h':	 // 2 strings to match.
                  if (memcmp(NameR.data()+15, "s.s", 3))
                    break;
                  switch (NameR[18]) {
                  default: break;
                  case '0':	 // 1 string to match.
                    return Intrinsic::hexagon_M2_mmachs_s0;	 // "exagon.M2.mmachs.s0"
                  case '1':	 // 1 string to match.
                    return Intrinsic::hexagon_M2_mmachs_s1;	 // "exagon.M2.mmachs.s1"
                  }
                  break;
                case 'l':	 // 2 strings to match.
                  if (memcmp(NameR.data()+15, "s.s", 3))
                    break;
                  switch (NameR[18]) {
                  default: break;
                  case '0':	 // 1 string to match.
                    return Intrinsic::hexagon_M2_mmacls_s0;	 // "exagon.M2.mmacls.s0"
                  case '1':	 // 1 string to match.
                    return Intrinsic::hexagon_M2_mmacls_s1;	 // "exagon.M2.mmacls.s1"
                  }
                  break;
                }
                break;
              case 'p':	 // 8 strings to match.
                if (NameR[13] != 'y')
                  break;
                switch (NameR[14]) {
                default: break;
                case 'h':	 // 2 strings to match.
                  if (memcmp(NameR.data()+15, ".rs", 3))
                    break;
                  switch (NameR[18]) {
                  default: break;
                  case '0':	 // 1 string to match.
                    return Intrinsic::hexagon_M2_mmpyh_rs0;	 // "exagon.M2.mmpyh.rs0"
                  case '1':	 // 1 string to match.
                    return Intrinsic::hexagon_M2_mmpyh_rs1;	 // "exagon.M2.mmpyh.rs1"
                  }
                  break;
                case 'l':	 // 2 strings to match.
                  if (memcmp(NameR.data()+15, ".rs", 3))
                    break;
                  switch (NameR[18]) {
                  default: break;
                  case '0':	 // 1 string to match.
                    return Intrinsic::hexagon_M2_mmpyl_rs0;	 // "exagon.M2.mmpyl.rs0"
                  case '1':	 // 1 string to match.
                    return Intrinsic::hexagon_M2_mmpyl_rs1;	 // "exagon.M2.mmpyl.rs1"
                  }
                  break;
                case 'u':	 // 4 strings to match.
                  switch (NameR[15]) {
                  default: break;
                  case 'h':	 // 2 strings to match.
                    if (memcmp(NameR.data()+16, ".s", 2))
                      break;
                    switch (NameR[18]) {
                    default: break;
                    case '0':	 // 1 string to match.
                      return Intrinsic::hexagon_M2_mmpyuh_s0;	 // "exagon.M2.mmpyuh.s0"
                    case '1':	 // 1 string to match.
                      return Intrinsic::hexagon_M2_mmpyuh_s1;	 // "exagon.M2.mmpyuh.s1"
                    }
                    break;
                  case 'l':	 // 2 strings to match.
                    if (memcmp(NameR.data()+16, ".s", 2))
                      break;
                    switch (NameR[18]) {
                    default: break;
                    case '0':	 // 1 string to match.
                      return Intrinsic::hexagon_M2_mmpyul_s0;	 // "exagon.M2.mmpyul.s0"
                    case '1':	 // 1 string to match.
                      return Intrinsic::hexagon_M2_mmpyul_s1;	 // "exagon.M2.mmpyul.s1"
                    }
                    break;
                  }
                  break;
                }
                break;
              }
              break;
            case 'p':	 // 9 strings to match.
              if (memcmp(NameR.data()+12, "y.", 2))
                break;
              switch (NameR[14]) {
              default: break;
              case 'h':	 // 4 strings to match.
                switch (NameR[15]) {
                default: break;
                case 'h':	 // 2 strings to match.
                  if (memcmp(NameR.data()+16, ".s", 2))
                    break;
                  switch (NameR[18]) {
                  default: break;
                  case '0':	 // 1 string to match.
                    return Intrinsic::hexagon_M2_mpy_hh_s0;	 // "exagon.M2.mpy.hh.s0"
                  case '1':	 // 1 string to match.
                    return Intrinsic::hexagon_M2_mpy_hh_s1;	 // "exagon.M2.mpy.hh.s1"
                  }
                  break;
                case 'l':	 // 2 strings to match.
                  if (memcmp(NameR.data()+16, ".s", 2))
                    break;
                  switch (NameR[18]) {
                  default: break;
                  case '0':	 // 1 string to match.
                    return Intrinsic::hexagon_M2_mpy_hl_s0;	 // "exagon.M2.mpy.hl.s0"
                  case '1':	 // 1 string to match.
                    return Intrinsic::hexagon_M2_mpy_hl_s1;	 // "exagon.M2.mpy.hl.s1"
                  }
                  break;
                }
                break;
              case 'l':	 // 4 strings to match.
                switch (NameR[15]) {
                default: break;
                case 'h':	 // 2 strings to match.
                  if (memcmp(NameR.data()+16, ".s", 2))
                    break;
                  switch (NameR[18]) {
                  default: break;
                  case '0':	 // 1 string to match.
                    return Intrinsic::hexagon_M2_mpy_lh_s0;	 // "exagon.M2.mpy.lh.s0"
                  case '1':	 // 1 string to match.
                    return Intrinsic::hexagon_M2_mpy_lh_s1;	 // "exagon.M2.mpy.lh.s1"
                  }
                  break;
                case 'l':	 // 2 strings to match.
                  if (memcmp(NameR.data()+16, ".s", 2))
                    break;
                  switch (NameR[18]) {
                  default: break;
                  case '0':	 // 1 string to match.
                    return Intrinsic::hexagon_M2_mpy_ll_s0;	 // "exagon.M2.mpy.ll.s0"
                  case '1':	 // 1 string to match.
                    return Intrinsic::hexagon_M2_mpy_ll_s1;	 // "exagon.M2.mpy.ll.s1"
                  }
                  break;
                }
                break;
              case 'u':	 // 1 string to match.
                if (memcmp(NameR.data()+15, "p.s1", 4))
                  break;
                return Intrinsic::hexagon_M2_mpy_up_s1;	 // "exagon.M2.mpy.up.s1"
              }
              break;
            }
            break;
          case 'v':	 // 10 strings to match.
            switch (NameR[11]) {
            default: break;
            case 'a':	 // 2 strings to match.
              if (memcmp(NameR.data()+12, "bsdiff", 6))
                break;
              switch (NameR[18]) {
              default: break;
              case 'h':	 // 1 string to match.
                return Intrinsic::hexagon_M2_vabsdiffh;	 // "exagon.M2.vabsdiffh"
              case 'w':	 // 1 string to match.
                return Intrinsic::hexagon_M2_vabsdiffw;	 // "exagon.M2.vabsdiffw"
              }
              break;
            case 'd':	 // 4 strings to match.
              if (NameR[12] != 'm')
                break;
              switch (NameR[13]) {
              default: break;
              case 'a':	 // 2 strings to match.
                if (memcmp(NameR.data()+14, "cs.s", 4))
                  break;
                switch (NameR[18]) {
                default: break;
                case '0':	 // 1 string to match.
                  return Intrinsic::hexagon_M2_vdmacs_s0;	 // "exagon.M2.vdmacs.s0"
                case '1':	 // 1 string to match.
                  return Intrinsic::hexagon_M2_vdmacs_s1;	 // "exagon.M2.vdmacs.s1"
                }
                break;
              case 'p':	 // 2 strings to match.
                if (memcmp(NameR.data()+14, "ys.s", 4))
                  break;
                switch (NameR[18]) {
                default: break;
                case '0':	 // 1 string to match.
                  return Intrinsic::hexagon_M2_vdmpys_s0;	 // "exagon.M2.vdmpys.s0"
                case '1':	 // 1 string to match.
                  return Intrinsic::hexagon_M2_vdmpys_s1;	 // "exagon.M2.vdmpys.s1"
                }
                break;
              }
              break;
            case 'm':	 // 4 strings to match.
              switch (NameR[12]) {
              default: break;
              case 'a':	 // 2 strings to match.
                if (memcmp(NameR.data()+13, "c2s.s", 5))
                  break;
                switch (NameR[18]) {
                default: break;
                case '0':	 // 1 string to match.
                  return Intrinsic::hexagon_M2_vmac2s_s0;	 // "exagon.M2.vmac2s.s0"
                case '1':	 // 1 string to match.
                  return Intrinsic::hexagon_M2_vmac2s_s1;	 // "exagon.M2.vmac2s.s1"
                }
                break;
              case 'p':	 // 2 strings to match.
                if (memcmp(NameR.data()+13, "y2s.s", 5))
                  break;
                switch (NameR[18]) {
                default: break;
                case '0':	 // 1 string to match.
                  return Intrinsic::hexagon_M2_vmpy2s_s0;	 // "exagon.M2.vmpy2s.s0"
                case '1':	 // 1 string to match.
                  return Intrinsic::hexagon_M2_vmpy2s_s1;	 // "exagon.M2.vmpy2s.s1"
                }
                break;
              }
              break;
            }
            break;
          }
          break;
        case '4':	 // 3 strings to match.
          if (NameR[9] != '.')
            break;
          switch (NameR[10]) {
          default: break;
          case 'c':	 // 2 strings to match.
            if (memcmp(NameR.data()+11, "mpy", 3))
              break;
            switch (NameR[14]) {
            default: break;
            case 'i':	 // 1 string to match.
              if (memcmp(NameR.data()+15, ".whc", 4))
                break;
              return Intrinsic::hexagon_M4_cmpyi_whc;	 // "exagon.M4.cmpyi.whc"
            case 'r':	 // 1 string to match.
              if (memcmp(NameR.data()+15, ".whc", 4))
                break;
              return Intrinsic::hexagon_M4_cmpyr_whc;	 // "exagon.M4.cmpyr.whc"
            }
            break;
          case 'p':	 // 1 string to match.
            if (memcmp(NameR.data()+11, "mpyw.acc", 8))
              break;
            return Intrinsic::hexagon_M4_pmpyw_acc;	 // "exagon.M4.pmpyw.acc"
          }
          break;
        }
        break;
      case 'S':	 // 12 strings to match.
        switch (NameR[8]) {
        default: break;
        case '2':	 // 4 strings to match.
          if (NameR[9] != '.')
            break;
          switch (NameR[10]) {
          default: break;
          case 'e':	 // 1 string to match.
            if (memcmp(NameR.data()+11, "xtractup", 8))
              break;
            return Intrinsic::hexagon_S2_extractup;	 // "exagon.S2.extractup"
          case 'i':	 // 1 string to match.
            if (memcmp(NameR.data()+11, "nsert.rp", 8))
              break;
            return Intrinsic::hexagon_S2_insert_rp;	 // "exagon.S2.insert.rp"
          case 'v':	 // 2 strings to match.
            if (memcmp(NameR.data()+11, "splice", 6))
              break;
            switch (NameR[17]) {
            default: break;
            case 'i':	 // 1 string to match.
              if (NameR[18] != 'b')
                break;
              return Intrinsic::hexagon_S2_vspliceib;	 // "exagon.S2.vspliceib"
            case 'r':	 // 1 string to match.
              if (NameR[18] != 'b')
                break;
              return Intrinsic::hexagon_S2_vsplicerb;	 // "exagon.S2.vsplicerb"
            }
            break;
          }
          break;
        case '4':	 // 7 strings to match.
          if (NameR[9] != '.')
            break;
          switch (NameR[10]) {
          default: break;
          case 'n':	 // 2 strings to match.
            if (memcmp(NameR.data()+11, "tstbit.", 7))
              break;
            switch (NameR[18]) {
            default: break;
            case 'i':	 // 1 string to match.
              return Intrinsic::hexagon_S4_ntstbit_i;	 // "exagon.S4.ntstbit.i"
            case 'r':	 // 1 string to match.
              return Intrinsic::hexagon_S4_ntstbit_r;	 // "exagon.S4.ntstbit.r"
            }
            break;
          case 'v':	 // 5 strings to match.
            switch (NameR[11]) {
            default: break;
            case 'r':	 // 1 string to match.
              if (memcmp(NameR.data()+12, "crotate", 7))
                break;
              return Intrinsic::hexagon_S4_vrcrotate;	 // "exagon.S4.vrcrotate"
            case 'x':	 // 4 strings to match.
              switch (NameR[12]) {
              default: break;
              case 'a':	 // 2 strings to match.
                if (memcmp(NameR.data()+13, "ddsub", 5))
                  break;
                switch (NameR[18]) {
                default: break;
                case 'h':	 // 1 string to match.
                  return Intrinsic::hexagon_S4_vxaddsubh;	 // "exagon.S4.vxaddsubh"
                case 'w':	 // 1 string to match.
                  return Intrinsic::hexagon_S4_vxaddsubw;	 // "exagon.S4.vxaddsubw"
                }
                break;
              case 's':	 // 2 strings to match.
                if (memcmp(NameR.data()+13, "ubadd", 5))
                  break;
                switch (NameR[18]) {
                default: break;
                case 'h':	 // 1 string to match.
                  return Intrinsic::hexagon_S4_vxsubaddh;	 // "exagon.S4.vxsubaddh"
                case 'w':	 // 1 string to match.
                  return Intrinsic::hexagon_S4_vxsubaddw;	 // "exagon.S4.vxsubaddw"
                }
                break;
              }
              break;
            }
            break;
          }
          break;
        case '5':	 // 1 string to match.
          if (memcmp(NameR.data()+9, ".popcountp", 10))
            break;
          return Intrinsic::hexagon_S5_popcountp;	 // "exagon.S5.popcountp"
        }
        break;
      }
      break;
    case 20:	 // 95 strings to match.
      if (memcmp(NameR.data()+0, "exagon.", 7))
        break;
      switch (NameR[7]) {
      default: break;
      case 'A':	 // 4 strings to match.
        if (memcmp(NameR.data()+8, "2.combine.", 10))
          break;
        switch (NameR[18]) {
        default: break;
        case 'h':	 // 2 strings to match.
          switch (NameR[19]) {
          default: break;
          case 'h':	 // 1 string to match.
            return Intrinsic::hexagon_A2_combine_hh;	 // "exagon.A2.combine.hh"
          case 'l':	 // 1 string to match.
            return Intrinsic::hexagon_A2_combine_hl;	 // "exagon.A2.combine.hl"
          }
          break;
        case 'l':	 // 2 strings to match.
          switch (NameR[19]) {
          default: break;
          case 'h':	 // 1 string to match.
            return Intrinsic::hexagon_A2_combine_lh;	 // "exagon.A2.combine.lh"
          case 'l':	 // 1 string to match.
            return Intrinsic::hexagon_A2_combine_ll;	 // "exagon.A2.combine.ll"
          }
          break;
        }
        break;
      case 'F':	 // 10 strings to match.
        if (memcmp(NameR.data()+8, "2.conv.", 7))
          break;
        switch (NameR[15]) {
        default: break;
        case 'd':	 // 3 strings to match.
          if (memcmp(NameR.data()+16, "f2", 2))
            break;
          switch (NameR[18]) {
          default: break;
          case 's':	 // 1 string to match.
            if (NameR[19] != 'f')
              break;
            return Intrinsic::hexagon_F2_conv_df2sf;	 // "exagon.F2.conv.df2sf"
          case 'u':	 // 2 strings to match.
            switch (NameR[19]) {
            default: break;
            case 'd':	 // 1 string to match.
              return Intrinsic::hexagon_F2_conv_df2ud;	 // "exagon.F2.conv.df2ud"
            case 'w':	 // 1 string to match.
              return Intrinsic::hexagon_F2_conv_df2uw;	 // "exagon.F2.conv.df2uw"
            }
            break;
          }
          break;
        case 's':	 // 3 strings to match.
          if (memcmp(NameR.data()+16, "f2", 2))
            break;
          switch (NameR[18]) {
          default: break;
          case 'd':	 // 1 string to match.
            if (NameR[19] != 'f')
              break;
            return Intrinsic::hexagon_F2_conv_sf2df;	 // "exagon.F2.conv.sf2df"
          case 'u':	 // 2 strings to match.
            switch (NameR[19]) {
            default: break;
            case 'd':	 // 1 string to match.
              return Intrinsic::hexagon_F2_conv_sf2ud;	 // "exagon.F2.conv.sf2ud"
            case 'w':	 // 1 string to match.
              return Intrinsic::hexagon_F2_conv_sf2uw;	 // "exagon.F2.conv.sf2uw"
            }
            break;
          }
          break;
        case 'u':	 // 4 strings to match.
          switch (NameR[16]) {
          default: break;
          case 'd':	 // 2 strings to match.
            if (NameR[17] != '2')
              break;
            switch (NameR[18]) {
            default: break;
            case 'd':	 // 1 string to match.
              if (NameR[19] != 'f')
                break;
              return Intrinsic::hexagon_F2_conv_ud2df;	 // "exagon.F2.conv.ud2df"
            case 's':	 // 1 string to match.
              if (NameR[19] != 'f')
                break;
              return Intrinsic::hexagon_F2_conv_ud2sf;	 // "exagon.F2.conv.ud2sf"
            }
            break;
          case 'w':	 // 2 strings to match.
            if (NameR[17] != '2')
              break;
            switch (NameR[18]) {
            default: break;
            case 'd':	 // 1 string to match.
              if (NameR[19] != 'f')
                break;
              return Intrinsic::hexagon_F2_conv_uw2df;	 // "exagon.F2.conv.uw2df"
            case 's':	 // 1 string to match.
              if (NameR[19] != 'f')
                break;
              return Intrinsic::hexagon_F2_conv_uw2sf;	 // "exagon.F2.conv.uw2sf"
            }
            break;
          }
          break;
        }
        break;
      case 'M':	 // 58 strings to match.
        switch (NameR[8]) {
        default: break;
        case '2':	 // 49 strings to match.
          if (NameR[9] != '.')
            break;
          switch (NameR[10]) {
          default: break;
          case 'c':	 // 2 strings to match.
            if (memcmp(NameR.data()+11, "mpyrsc.s", 8))
              break;
            switch (NameR[19]) {
            default: break;
            case '0':	 // 1 string to match.
              return Intrinsic::hexagon_M2_cmpyrsc_s0;	 // "exagon.M2.cmpyrsc.s0"
            case '1':	 // 1 string to match.
              return Intrinsic::hexagon_M2_cmpyrsc_s1;	 // "exagon.M2.cmpyrsc.s1"
            }
            break;
          case 'd':	 // 2 strings to match.
            if (memcmp(NameR.data()+11, "pmpy", 4))
              break;
            switch (NameR[15]) {
            default: break;
            case 's':	 // 1 string to match.
              if (memcmp(NameR.data()+16, "s.s0", 4))
                break;
              return Intrinsic::hexagon_M2_dpmpyss_s0;	 // "exagon.M2.dpmpyss.s0"
            case 'u':	 // 1 string to match.
              if (memcmp(NameR.data()+16, "u.s0", 4))
                break;
              return Intrinsic::hexagon_M2_dpmpyuu_s0;	 // "exagon.M2.dpmpyuu.s0"
            }
            break;
          case 'h':	 // 2 strings to match.
            if (memcmp(NameR.data()+11, "mmpy", 4))
              break;
            switch (NameR[15]) {
            default: break;
            case 'h':	 // 1 string to match.
              if (memcmp(NameR.data()+16, ".rs1", 4))
                break;
              return Intrinsic::hexagon_M2_hmmpyh_rs1;	 // "exagon.M2.hmmpyh.rs1"
            case 'l':	 // 1 string to match.
              if (memcmp(NameR.data()+16, ".rs1", 4))
                break;
              return Intrinsic::hexagon_M2_hmmpyl_rs1;	 // "exagon.M2.hmmpyl.rs1"
            }
            break;
          case 'm':	 // 28 strings to match.
            switch (NameR[11]) {
            default: break;
            case 'm':	 // 12 strings to match.
              switch (NameR[12]) {
              default: break;
              case 'a':	 // 8 strings to match.
                if (NameR[13] != 'c')
                  break;
                switch (NameR[14]) {
                default: break;
                case 'h':	 // 2 strings to match.
                  if (memcmp(NameR.data()+15, "s.rs", 4))
                    break;
                  switch (NameR[19]) {
                  default: break;
                  case '0':	 // 1 string to match.
                    return Intrinsic::hexagon_M2_mmachs_rs0;	 // "exagon.M2.mmachs.rs0"
                  case '1':	 // 1 string to match.
                    return Intrinsic::hexagon_M2_mmachs_rs1;	 // "exagon.M2.mmachs.rs1"
                  }
                  break;
                case 'l':	 // 2 strings to match.
                  if (memcmp(NameR.data()+15, "s.rs", 4))
                    break;
                  switch (NameR[19]) {
                  default: break;
                  case '0':	 // 1 string to match.
                    return Intrinsic::hexagon_M2_mmacls_rs0;	 // "exagon.M2.mmacls.rs0"
                  case '1':	 // 1 string to match.
                    return Intrinsic::hexagon_M2_mmacls_rs1;	 // "exagon.M2.mmacls.rs1"
                  }
                  break;
                case 'u':	 // 4 strings to match.
                  switch (NameR[15]) {
                  default: break;
                  case 'h':	 // 2 strings to match.
                    if (memcmp(NameR.data()+16, "s.s", 3))
                      break;
                    switch (NameR[19]) {
                    default: break;
                    case '0':	 // 1 string to match.
                      return Intrinsic::hexagon_M2_mmacuhs_s0;	 // "exagon.M2.mmacuhs.s0"
                    case '1':	 // 1 string to match.
                      return Intrinsic::hexagon_M2_mmacuhs_s1;	 // "exagon.M2.mmacuhs.s1"
                    }
                    break;
                  case 'l':	 // 2 strings to match.
                    if (memcmp(NameR.data()+16, "s.s", 3))
                      break;
                    switch (NameR[19]) {
                    default: break;
                    case '0':	 // 1 string to match.
                      return Intrinsic::hexagon_M2_mmaculs_s0;	 // "exagon.M2.mmaculs.s0"
                    case '1':	 // 1 string to match.
                      return Intrinsic::hexagon_M2_mmaculs_s1;	 // "exagon.M2.mmaculs.s1"
                    }
                    break;
                  }
                  break;
                }
                break;
              case 'p':	 // 4 strings to match.
                if (memcmp(NameR.data()+13, "yu", 2))
                  break;
                switch (NameR[15]) {
                default: break;
                case 'h':	 // 2 strings to match.
                  if (memcmp(NameR.data()+16, ".rs", 3))
                    break;
                  switch (NameR[19]) {
                  default: break;
                  case '0':	 // 1 string to match.
                    return Intrinsic::hexagon_M2_mmpyuh_rs0;	 // "exagon.M2.mmpyuh.rs0"
                  case '1':	 // 1 string to match.
                    return Intrinsic::hexagon_M2_mmpyuh_rs1;	 // "exagon.M2.mmpyuh.rs1"
                  }
                  break;
                case 'l':	 // 2 strings to match.
                  if (memcmp(NameR.data()+16, ".rs", 3))
                    break;
                  switch (NameR[19]) {
                  default: break;
                  case '0':	 // 1 string to match.
                    return Intrinsic::hexagon_M2_mmpyul_rs0;	 // "exagon.M2.mmpyul.rs0"
                  case '1':	 // 1 string to match.
                    return Intrinsic::hexagon_M2_mmpyul_rs1;	 // "exagon.M2.mmpyul.rs1"
                  }
                  break;
                }
                break;
              }
              break;
            case 'p':	 // 16 strings to match.
              if (NameR[12] != 'y')
                break;
              switch (NameR[13]) {
              default: break;
              case 'd':	 // 8 strings to match.
                if (NameR[14] != '.')
                  break;
                switch (NameR[15]) {
                default: break;
                case 'h':	 // 4 strings to match.
                  switch (NameR[16]) {
                  default: break;
                  case 'h':	 // 2 strings to match.
                    if (memcmp(NameR.data()+17, ".s", 2))
                      break;
                    switch (NameR[19]) {
                    default: break;
                    case '0':	 // 1 string to match.
                      return Intrinsic::hexagon_M2_mpyd_hh_s0;	 // "exagon.M2.mpyd.hh.s0"
                    case '1':	 // 1 string to match.
                      return Intrinsic::hexagon_M2_mpyd_hh_s1;	 // "exagon.M2.mpyd.hh.s1"
                    }
                    break;
                  case 'l':	 // 2 strings to match.
                    if (memcmp(NameR.data()+17, ".s", 2))
                      break;
                    switch (NameR[19]) {
                    default: break;
                    case '0':	 // 1 string to match.
                      return Intrinsic::hexagon_M2_mpyd_hl_s0;	 // "exagon.M2.mpyd.hl.s0"
                    case '1':	 // 1 string to match.
                      return Intrinsic::hexagon_M2_mpyd_hl_s1;	 // "exagon.M2.mpyd.hl.s1"
                    }
                    break;
                  }
                  break;
                case 'l':	 // 4 strings to match.
                  switch (NameR[16]) {
                  default: break;
                  case 'h':	 // 2 strings to match.
                    if (memcmp(NameR.data()+17, ".s", 2))
                      break;
                    switch (NameR[19]) {
                    default: break;
                    case '0':	 // 1 string to match.
                      return Intrinsic::hexagon_M2_mpyd_lh_s0;	 // "exagon.M2.mpyd.lh.s0"
                    case '1':	 // 1 string to match.
                      return Intrinsic::hexagon_M2_mpyd_lh_s1;	 // "exagon.M2.mpyd.lh.s1"
                    }
                    break;
                  case 'l':	 // 2 strings to match.
                    if (memcmp(NameR.data()+17, ".s", 2))
                      break;
                    switch (NameR[19]) {
                    default: break;
                    case '0':	 // 1 string to match.
                      return Intrinsic::hexagon_M2_mpyd_ll_s0;	 // "exagon.M2.mpyd.ll.s0"
                    case '1':	 // 1 string to match.
                      return Intrinsic::hexagon_M2_mpyd_ll_s1;	 // "exagon.M2.mpyd.ll.s1"
                    }
                    break;
                  }
                  break;
                }
                break;
              case 'u':	 // 8 strings to match.
                if (NameR[14] != '.')
                  break;
                switch (NameR[15]) {
                default: break;
                case 'h':	 // 4 strings to match.
                  switch (NameR[16]) {
                  default: break;
                  case 'h':	 // 2 strings to match.
                    if (memcmp(NameR.data()+17, ".s", 2))
                      break;
                    switch (NameR[19]) {
                    default: break;
                    case '0':	 // 1 string to match.
                      return Intrinsic::hexagon_M2_mpyu_hh_s0;	 // "exagon.M2.mpyu.hh.s0"
                    case '1':	 // 1 string to match.
                      return Intrinsic::hexagon_M2_mpyu_hh_s1;	 // "exagon.M2.mpyu.hh.s1"
                    }
                    break;
                  case 'l':	 // 2 strings to match.
                    if (memcmp(NameR.data()+17, ".s", 2))
                      break;
                    switch (NameR[19]) {
                    default: break;
                    case '0':	 // 1 string to match.
                      return Intrinsic::hexagon_M2_mpyu_hl_s0;	 // "exagon.M2.mpyu.hl.s0"
                    case '1':	 // 1 string to match.
                      return Intrinsic::hexagon_M2_mpyu_hl_s1;	 // "exagon.M2.mpyu.hl.s1"
                    }
                    break;
                  }
                  break;
                case 'l':	 // 4 strings to match.
                  switch (NameR[16]) {
                  default: break;
                  case 'h':	 // 2 strings to match.
                    if (memcmp(NameR.data()+17, ".s", 2))
                      break;
                    switch (NameR[19]) {
                    default: break;
                    case '0':	 // 1 string to match.
                      return Intrinsic::hexagon_M2_mpyu_lh_s0;	 // "exagon.M2.mpyu.lh.s0"
                    case '1':	 // 1 string to match.
                      return Intrinsic::hexagon_M2_mpyu_lh_s1;	 // "exagon.M2.mpyu.lh.s1"
                    }
                    break;
                  case 'l':	 // 2 strings to match.
                    if (memcmp(NameR.data()+17, ".s", 2))
                      break;
                    switch (NameR[19]) {
                    default: break;
                    case '0':	 // 1 string to match.
                      return Intrinsic::hexagon_M2_mpyu_ll_s0;	 // "exagon.M2.mpyu.ll.s0"
                    case '1':	 // 1 string to match.
                      return Intrinsic::hexagon_M2_mpyu_ll_s1;	 // "exagon.M2.mpyu.ll.s1"
                    }
                    break;
                  }
                  break;
                }
                break;
              }
              break;
            }
            break;
          case 'v':	 // 15 strings to match.
            switch (NameR[11]) {
            default: break;
            case 'd':	 // 2 strings to match.
              if (memcmp(NameR.data()+12, "mpyrs.s", 7))
                break;
              switch (NameR[19]) {
              default: break;
              case '0':	 // 1 string to match.
                return Intrinsic::hexagon_M2_vdmpyrs_s0;	 // "exagon.M2.vdmpyrs.s0"
              case '1':	 // 1 string to match.
                return Intrinsic::hexagon_M2_vdmpyrs_s1;	 // "exagon.M2.vdmpyrs.s1"
              }
              break;
            case 'm':	 // 8 strings to match.
              switch (NameR[12]) {
              default: break;
              case 'a':	 // 4 strings to match.
                if (memcmp(NameR.data()+13, "c2", 2))
                  break;
                switch (NameR[15]) {
                default: break;
                case 'e':	 // 2 strings to match.
                  if (memcmp(NameR.data()+16, "s.s", 3))
                    break;
                  switch (NameR[19]) {
                  default: break;
                  case '0':	 // 1 string to match.
                    return Intrinsic::hexagon_M2_vmac2es_s0;	 // "exagon.M2.vmac2es.s0"
                  case '1':	 // 1 string to match.
                    return Intrinsic::hexagon_M2_vmac2es_s1;	 // "exagon.M2.vmac2es.s1"
                  }
                  break;
                case 's':	 // 2 strings to match.
                  if (memcmp(NameR.data()+16, "u.s", 3))
                    break;
                  switch (NameR[19]) {
                  default: break;
                  case '0':	 // 1 string to match.
                    return Intrinsic::hexagon_M2_vmac2su_s0;	 // "exagon.M2.vmac2su.s0"
                  case '1':	 // 1 string to match.
                    return Intrinsic::hexagon_M2_vmac2su_s1;	 // "exagon.M2.vmac2su.s1"
                  }
                  break;
                }
                break;
              case 'p':	 // 4 strings to match.
                if (memcmp(NameR.data()+13, "y2", 2))
                  break;
                switch (NameR[15]) {
                default: break;
                case 'e':	 // 2 strings to match.
                  if (memcmp(NameR.data()+16, "s.s", 3))
                    break;
                  switch (NameR[19]) {
                  default: break;
                  case '0':	 // 1 string to match.
                    return Intrinsic::hexagon_M2_vmpy2es_s0;	 // "exagon.M2.vmpy2es.s0"
                  case '1':	 // 1 string to match.
                    return Intrinsic::hexagon_M2_vmpy2es_s1;	 // "exagon.M2.vmpy2es.s1"
                  }
                  break;
                case 's':	 // 2 strings to match.
                  if (memcmp(NameR.data()+16, "u.s", 3))
                    break;
                  switch (NameR[19]) {
                  default: break;
                  case '0':	 // 1 string to match.
                    return Intrinsic::hexagon_M2_vmpy2su_s0;	 // "exagon.M2.vmpy2su.s0"
                  case '1':	 // 1 string to match.
                    return Intrinsic::hexagon_M2_vmpy2su_s1;	 // "exagon.M2.vmpy2su.s1"
                  }
                  break;
                }
                break;
              }
              break;
            case 'r':	 // 5 strings to match.
              if (memcmp(NameR.data()+12, "cm", 2))
                break;
              switch (NameR[14]) {
              default: break;
              case 'a':	 // 2 strings to match.
                if (NameR[15] != 'c')
                  break;
                switch (NameR[16]) {
                default: break;
                case 'i':	 // 1 string to match.
                  if (memcmp(NameR.data()+17, ".s0", 3))
                    break;
                  return Intrinsic::hexagon_M2_vrcmaci_s0;	 // "exagon.M2.vrcmaci.s0"
                case 'r':	 // 1 string to match.
                  if (memcmp(NameR.data()+17, ".s0", 3))
                    break;
                  return Intrinsic::hexagon_M2_vrcmacr_s0;	 // "exagon.M2.vrcmacr.s0"
                }
                break;
              case 'p':	 // 3 strings to match.
                if (NameR[15] != 'y')
                  break;
                switch (NameR[16]) {
                default: break;
                case 'i':	 // 1 string to match.
                  if (memcmp(NameR.data()+17, ".s0", 3))
                    break;
                  return Intrinsic::hexagon_M2_vrcmpyi_s0;	 // "exagon.M2.vrcmpyi.s0"
                case 'r':	 // 1 string to match.
                  if (memcmp(NameR.data()+17, ".s0", 3))
                    break;
                  return Intrinsic::hexagon_M2_vrcmpyr_s0;	 // "exagon.M2.vrcmpyr.s0"
                case 's':	 // 1 string to match.
                  if (memcmp(NameR.data()+17, ".s1", 3))
                    break;
                  return Intrinsic::hexagon_M2_vrcmpys_s1;	 // "exagon.M2.vrcmpys.s1"
                }
                break;
              }
              break;
            }
            break;
          }
          break;
        case '4':	 // 9 strings to match.
          if (NameR[9] != '.')
            break;
          switch (NameR[10]) {
          default: break;
          case 'm':	 // 4 strings to match.
            if (memcmp(NameR.data()+11, "pyr", 3))
              break;
            switch (NameR[14]) {
            default: break;
            case 'i':	 // 2 strings to match.
              if (memcmp(NameR.data()+15, ".add", 4))
                break;
              switch (NameR[19]) {
              default: break;
              case 'i':	 // 1 string to match.
                return Intrinsic::hexagon_M4_mpyri_addi;	 // "exagon.M4.mpyri.addi"
              case 'r':	 // 1 string to match.
                return Intrinsic::hexagon_M4_mpyri_addr;	 // "exagon.M4.mpyri.addr"
              }
              break;
            case 'r':	 // 2 strings to match.
              if (memcmp(NameR.data()+15, ".add", 4))
                break;
              switch (NameR[19]) {
              default: break;
              case 'i':	 // 1 string to match.
                return Intrinsic::hexagon_M4_mpyrr_addi;	 // "exagon.M4.mpyrr.addi"
              case 'r':	 // 1 string to match.
                return Intrinsic::hexagon_M4_mpyrr_addr;	 // "exagon.M4.mpyrr.addr"
              }
              break;
            }
            break;
          case 'v':	 // 5 strings to match.
            switch (NameR[11]) {
            default: break;
            case 'p':	 // 1 string to match.
              if (memcmp(NameR.data()+12, "mpyh.acc", 8))
                break;
              return Intrinsic::hexagon_M4_vpmpyh_acc;	 // "exagon.M4.vpmpyh.acc"
            case 'r':	 // 4 strings to match.
              if (memcmp(NameR.data()+12, "mpy", 3))
                break;
              switch (NameR[15]) {
              default: break;
              case 'e':	 // 2 strings to match.
                if (memcmp(NameR.data()+16, "h.s", 3))
                  break;
                switch (NameR[19]) {
                default: break;
                case '0':	 // 1 string to match.
                  return Intrinsic::hexagon_M4_vrmpyeh_s0;	 // "exagon.M4.vrmpyeh.s0"
                case '1':	 // 1 string to match.
                  return Intrinsic::hexagon_M4_vrmpyeh_s1;	 // "exagon.M4.vrmpyeh.s1"
                }
                break;
              case 'o':	 // 2 strings to match.
                if (memcmp(NameR.data()+16, "h.s", 3))
                  break;
                switch (NameR[19]) {
                default: break;
                case '0':	 // 1 string to match.
                  return Intrinsic::hexagon_M4_vrmpyoh_s0;	 // "exagon.M4.vrmpyoh.s0"
                case '1':	 // 1 string to match.
                  return Intrinsic::hexagon_M4_vrmpyoh_s1;	 // "exagon.M4.vrmpyoh.s1"
                }
                break;
              }
              break;
            }
            break;
          }
          break;
        }
        break;
      case 'S':	 // 23 strings to match.
        switch (NameR[8]) {
        default: break;
        case '2':	 // 17 strings to match.
          if (NameR[9] != '.')
            break;
          switch (NameR[10]) {
          default: break;
          case 'a':	 // 8 strings to match.
            if (NameR[11] != 's')
              break;
            switch (NameR[12]) {
            default: break;
            case 'l':	 // 4 strings to match.
              if (NameR[13] != '.')
                break;
              switch (NameR[14]) {
              default: break;
              case 'i':	 // 2 strings to match.
                if (NameR[15] != '.')
                  break;
                switch (NameR[16]) {
                default: break;
                case 'p':	 // 1 string to match.
                  if (memcmp(NameR.data()+17, ".or", 3))
                    break;
                  return Intrinsic::hexagon_S2_asl_i_p_or;	 // "exagon.S2.asl.i.p.or"
                case 'r':	 // 1 string to match.
                  if (memcmp(NameR.data()+17, ".or", 3))
                    break;
                  return Intrinsic::hexagon_S2_asl_i_r_or;	 // "exagon.S2.asl.i.r.or"
                }
                break;
              case 'r':	 // 2 strings to match.
                if (NameR[15] != '.')
                  break;
                switch (NameR[16]) {
                default: break;
                case 'p':	 // 1 string to match.
                  if (memcmp(NameR.data()+17, ".or", 3))
                    break;
                  return Intrinsic::hexagon_S2_asl_r_p_or;	 // "exagon.S2.asl.r.p.or"
                case 'r':	 // 1 string to match.
                  if (memcmp(NameR.data()+17, ".or", 3))
                    break;
                  return Intrinsic::hexagon_S2_asl_r_r_or;	 // "exagon.S2.asl.r.r.or"
                }
                break;
              }
              break;
            case 'r':	 // 4 strings to match.
              if (NameR[13] != '.')
                break;
              switch (NameR[14]) {
              default: break;
              case 'i':	 // 2 strings to match.
                if (NameR[15] != '.')
                  break;
                switch (NameR[16]) {
                default: break;
                case 'p':	 // 1 string to match.
                  if (memcmp(NameR.data()+17, ".or", 3))
                    break;
                  return Intrinsic::hexagon_S2_asr_i_p_or;	 // "exagon.S2.asr.i.p.or"
                case 'r':	 // 1 string to match.
                  if (memcmp(NameR.data()+17, ".or", 3))
                    break;
                  return Intrinsic::hexagon_S2_asr_i_r_or;	 // "exagon.S2.asr.i.r.or"
                }
                break;
              case 'r':	 // 2 strings to match.
                if (NameR[15] != '.')
                  break;
                switch (NameR[16]) {
                default: break;
                case 'p':	 // 1 string to match.
                  if (memcmp(NameR.data()+17, ".or", 3))
                    break;
                  return Intrinsic::hexagon_S2_asr_r_p_or;	 // "exagon.S2.asr.r.p.or"
                case 'r':	 // 1 string to match.
                  if (memcmp(NameR.data()+17, ".or", 3))
                    break;
                  return Intrinsic::hexagon_S2_asr_r_r_or;	 // "exagon.S2.asr.r.r.or"
                }
                break;
              }
              break;
            }
            break;
          case 'i':	 // 2 strings to match.
            if (NameR[11] != 'n')
              break;
            switch (NameR[12]) {
            default: break;
            case 's':	 // 1 string to match.
              if (memcmp(NameR.data()+13, "ertp.rp", 7))
                break;
              return Intrinsic::hexagon_S2_insertp_rp;	 // "exagon.S2.insertp.rp"
            case 't':	 // 1 string to match.
              if (memcmp(NameR.data()+13, "erleave", 7))
                break;
              return Intrinsic::hexagon_S2_interleave;	 // "exagon.S2.interleave"
            }
            break;
          case 'l':	 // 6 strings to match.
            if (NameR[11] != 's')
              break;
            switch (NameR[12]) {
            default: break;
            case 'l':	 // 2 strings to match.
              if (memcmp(NameR.data()+13, ".r.", 3))
                break;
              switch (NameR[16]) {
              default: break;
              case 'p':	 // 1 string to match.
                if (memcmp(NameR.data()+17, ".or", 3))
                  break;
                return Intrinsic::hexagon_S2_lsl_r_p_or;	 // "exagon.S2.lsl.r.p.or"
              case 'r':	 // 1 string to match.
                if (memcmp(NameR.data()+17, ".or", 3))
                  break;
                return Intrinsic::hexagon_S2_lsl_r_r_or;	 // "exagon.S2.lsl.r.r.or"
              }
              break;
            case 'r':	 // 4 strings to match.
              if (NameR[13] != '.')
                break;
              switch (NameR[14]) {
              default: break;
              case 'i':	 // 2 strings to match.
                if (NameR[15] != '.')
                  break;
                switch (NameR[16]) {
                default: break;
                case 'p':	 // 1 string to match.
                  if (memcmp(NameR.data()+17, ".or", 3))
                    break;
                  return Intrinsic::hexagon_S2_lsr_i_p_or;	 // "exagon.S2.lsr.i.p.or"
                case 'r':	 // 1 string to match.
                  if (memcmp(NameR.data()+17, ".or", 3))
                    break;
                  return Intrinsic::hexagon_S2_lsr_i_r_or;	 // "exagon.S2.lsr.i.r.or"
                }
                break;
              case 'r':	 // 2 strings to match.
                if (NameR[15] != '.')
                  break;
                switch (NameR[16]) {
                default: break;
                case 'p':	 // 1 string to match.
                  if (memcmp(NameR.data()+17, ".or", 3))
                    break;
                  return Intrinsic::hexagon_S2_lsr_r_p_or;	 // "exagon.S2.lsr.r.p.or"
                case 'r':	 // 1 string to match.
                  if (memcmp(NameR.data()+17, ".or", 3))
                    break;
                  return Intrinsic::hexagon_S2_lsr_r_r_or;	 // "exagon.S2.lsr.r.r.or"
                }
                break;
              }
              break;
            }
            break;
          case 'v':	 // 1 string to match.
            if (memcmp(NameR.data()+11, "rndpackwh", 9))
              break;
            return Intrinsic::hexagon_S2_vrndpackwh;	 // "exagon.S2.vrndpackwh"
          }
          break;
        case '4':	 // 5 strings to match.
          if (NameR[9] != '.')
            break;
          switch (NameR[10]) {
          default: break;
          case 'e':	 // 1 string to match.
            if (memcmp(NameR.data()+11, "xtract.rp", 9))
              break;
            return Intrinsic::hexagon_S4_extract_rp;	 // "exagon.S4.extract.rp"
          case 'o':	 // 2 strings to match.
            if (memcmp(NameR.data()+11, "ri.", 3))
              break;
            switch (NameR[14]) {
            default: break;
            case 'a':	 // 1 string to match.
              if (memcmp(NameR.data()+15, "sl.ri", 5))
                break;
              return Intrinsic::hexagon_S4_ori_asl_ri;	 // "exagon.S4.ori.asl.ri"
            case 'l':	 // 1 string to match.
              if (memcmp(NameR.data()+15, "sr.ri", 5))
                break;
              return Intrinsic::hexagon_S4_ori_lsr_ri;	 // "exagon.S4.ori.lsr.ri"
            }
            break;
          case 'v':	 // 2 strings to match.
            if (NameR[11] != 'x')
              break;
            switch (NameR[12]) {
            default: break;
            case 'a':	 // 1 string to match.
              if (memcmp(NameR.data()+13, "ddsubhr", 7))
                break;
              return Intrinsic::hexagon_S4_vxaddsubhr;	 // "exagon.S4.vxaddsubhr"
            case 's':	 // 1 string to match.
              if (memcmp(NameR.data()+13, "ubaddhr", 7))
                break;
              return Intrinsic::hexagon_S4_vxsubaddhr;	 // "exagon.S4.vxsubaddhr"
            }
            break;
          }
          break;
        case '5':	 // 1 string to match.
          if (memcmp(NameR.data()+9, ".asrhub.sat", 11))
            break;
          return Intrinsic::hexagon_S5_asrhub_sat;	 // "exagon.S5.asrhub.sat"
        }
        break;
      }
      break;
    case 21:	 // 96 strings to match.
      if (memcmp(NameR.data()+0, "exagon.", 7))
        break;
      switch (NameR[7]) {
      default: break;
      case 'A':	 // 16 strings to match.
        switch (NameR[8]) {
        default: break;
        case '2':	 // 14 strings to match.
          if (NameR[9] != '.')
            break;
          switch (NameR[10]) {
          default: break;
          case 'a':	 // 6 strings to match.
            if (memcmp(NameR.data()+11, "ddh.", 4))
              break;
            switch (NameR[15]) {
            default: break;
            case 'h':	 // 4 strings to match.
              if (memcmp(NameR.data()+16, "16.", 3))
                break;
              switch (NameR[19]) {
              default: break;
              case 'h':	 // 2 strings to match.
                switch (NameR[20]) {
                default: break;
                case 'h':	 // 1 string to match.
                  return Intrinsic::hexagon_A2_addh_h16_hh;	 // "exagon.A2.addh.h16.hh"
                case 'l':	 // 1 string to match.
                  return Intrinsic::hexagon_A2_addh_h16_hl;	 // "exagon.A2.addh.h16.hl"
                }
                break;
              case 'l':	 // 2 strings to match.
                switch (NameR[20]) {
                default: break;
                case 'h':	 // 1 string to match.
                  return Intrinsic::hexagon_A2_addh_h16_lh;	 // "exagon.A2.addh.h16.lh"
                case 'l':	 // 1 string to match.
                  return Intrinsic::hexagon_A2_addh_h16_ll;	 // "exagon.A2.addh.h16.ll"
                }
                break;
              }
              break;
            case 'l':	 // 2 strings to match.
              if (memcmp(NameR.data()+16, "16.", 3))
                break;
              switch (NameR[19]) {
              default: break;
              case 'h':	 // 1 string to match.
                if (NameR[20] != 'l')
                  break;
                return Intrinsic::hexagon_A2_addh_l16_hl;	 // "exagon.A2.addh.l16.hl"
              case 'l':	 // 1 string to match.
                if (NameR[20] != 'l')
                  break;
                return Intrinsic::hexagon_A2_addh_l16_ll;	 // "exagon.A2.addh.l16.ll"
              }
              break;
            }
            break;
          case 's':	 // 6 strings to match.
            if (memcmp(NameR.data()+11, "ubh.", 4))
              break;
            switch (NameR[15]) {
            default: break;
            case 'h':	 // 4 strings to match.
              if (memcmp(NameR.data()+16, "16.", 3))
                break;
              switch (NameR[19]) {
              default: break;
              case 'h':	 // 2 strings to match.
                switch (NameR[20]) {
                default: break;
                case 'h':	 // 1 string to match.
                  return Intrinsic::hexagon_A2_subh_h16_hh;	 // "exagon.A2.subh.h16.hh"
                case 'l':	 // 1 string to match.
                  return Intrinsic::hexagon_A2_subh_h16_hl;	 // "exagon.A2.subh.h16.hl"
                }
                break;
              case 'l':	 // 2 strings to match.
                switch (NameR[20]) {
                default: break;
                case 'h':	 // 1 string to match.
                  return Intrinsic::hexagon_A2_subh_h16_lh;	 // "exagon.A2.subh.h16.lh"
                case 'l':	 // 1 string to match.
                  return Intrinsic::hexagon_A2_subh_h16_ll;	 // "exagon.A2.subh.h16.ll"
                }
                break;
              }
              break;
            case 'l':	 // 2 strings to match.
              if (memcmp(NameR.data()+16, "16.", 3))
                break;
              switch (NameR[19]) {
              default: break;
              case 'h':	 // 1 string to match.
                if (NameR[20] != 'l')
                  break;
                return Intrinsic::hexagon_A2_subh_l16_hl;	 // "exagon.A2.subh.l16.hl"
              case 'l':	 // 1 string to match.
                if (NameR[20] != 'l')
                  break;
                return Intrinsic::hexagon_A2_subh_l16_ll;	 // "exagon.A2.subh.l16.ll"
              }
              break;
            }
            break;
          case 'v':	 // 2 strings to match.
            if (NameR[11] != 'r')
              break;
            switch (NameR[12]) {
            default: break;
            case 'a':	 // 1 string to match.
              if (memcmp(NameR.data()+13, "ddub.acc", 8))
                break;
              return Intrinsic::hexagon_A2_vraddub_acc;	 // "exagon.A2.vraddub.acc"
            case 's':	 // 1 string to match.
              if (memcmp(NameR.data()+13, "adub.acc", 8))
                break;
              return Intrinsic::hexagon_A2_vrsadub_acc;	 // "exagon.A2.vrsadub.acc"
            }
            break;
          }
          break;
        case '4':	 // 2 strings to match.
          if (NameR[9] != '.')
            break;
          switch (NameR[10]) {
          default: break;
          case 'b':	 // 1 string to match.
            if (memcmp(NameR.data()+11, "oundscheck", 10))
              break;
            return Intrinsic::hexagon_A4_boundscheck;	 // "exagon.A4.boundscheck"
          case 'v':	 // 1 string to match.
            if (memcmp(NameR.data()+11, "cmpbeq.any", 10))
              break;
            return Intrinsic::hexagon_A4_vcmpbeq_any;	 // "exagon.A4.vcmpbeq.any"
          }
          break;
        }
        break;
      case 'C':	 // 1 string to match.
        if (memcmp(NameR.data()+8, "4.fastcorner9", 13))
          break;
        return Intrinsic::hexagon_C4_fastcorner9;	 // "exagon.C4.fastcorner9"
      case 'M':	 // 16 strings to match.
        if (memcmp(NameR.data()+8, "2.", 2))
          break;
        switch (NameR[10]) {
        default: break;
        case 'm':	 // 12 strings to match.
          switch (NameR[11]) {
          default: break;
          case 'm':	 // 4 strings to match.
            if (memcmp(NameR.data()+12, "acu", 3))
              break;
            switch (NameR[15]) {
            default: break;
            case 'h':	 // 2 strings to match.
              if (memcmp(NameR.data()+16, "s.rs", 4))
                break;
              switch (NameR[20]) {
              default: break;
              case '0':	 // 1 string to match.
                return Intrinsic::hexagon_M2_mmacuhs_rs0;	 // "exagon.M2.mmacuhs.rs0"
              case '1':	 // 1 string to match.
                return Intrinsic::hexagon_M2_mmacuhs_rs1;	 // "exagon.M2.mmacuhs.rs1"
              }
              break;
            case 'l':	 // 2 strings to match.
              if (memcmp(NameR.data()+16, "s.rs", 4))
                break;
              switch (NameR[20]) {
              default: break;
              case '0':	 // 1 string to match.
                return Intrinsic::hexagon_M2_mmaculs_rs0;	 // "exagon.M2.mmaculs.rs0"
              case '1':	 // 1 string to match.
                return Intrinsic::hexagon_M2_mmaculs_rs1;	 // "exagon.M2.mmaculs.rs1"
              }
              break;
            }
            break;
          case 'p':	 // 8 strings to match.
            if (memcmp(NameR.data()+12, "yud.", 4))
              break;
            switch (NameR[16]) {
            default: break;
            case 'h':	 // 4 strings to match.
              switch (NameR[17]) {
              default: break;
              case 'h':	 // 2 strings to match.
                if (memcmp(NameR.data()+18, ".s", 2))
                  break;
                switch (NameR[20]) {
                default: break;
                case '0':	 // 1 string to match.
                  return Intrinsic::hexagon_M2_mpyud_hh_s0;	 // "exagon.M2.mpyud.hh.s0"
                case '1':	 // 1 string to match.
                  return Intrinsic::hexagon_M2_mpyud_hh_s1;	 // "exagon.M2.mpyud.hh.s1"
                }
                break;
              case 'l':	 // 2 strings to match.
                if (memcmp(NameR.data()+18, ".s", 2))
                  break;
                switch (NameR[20]) {
                default: break;
                case '0':	 // 1 string to match.
                  return Intrinsic::hexagon_M2_mpyud_hl_s0;	 // "exagon.M2.mpyud.hl.s0"
                case '1':	 // 1 string to match.
                  return Intrinsic::hexagon_M2_mpyud_hl_s1;	 // "exagon.M2.mpyud.hl.s1"
                }
                break;
              }
              break;
            case 'l':	 // 4 strings to match.
              switch (NameR[17]) {
              default: break;
              case 'h':	 // 2 strings to match.
                if (memcmp(NameR.data()+18, ".s", 2))
                  break;
                switch (NameR[20]) {
                default: break;
                case '0':	 // 1 string to match.
                  return Intrinsic::hexagon_M2_mpyud_lh_s0;	 // "exagon.M2.mpyud.lh.s0"
                case '1':	 // 1 string to match.
                  return Intrinsic::hexagon_M2_mpyud_lh_s1;	 // "exagon.M2.mpyud.lh.s1"
                }
                break;
              case 'l':	 // 2 strings to match.
                if (memcmp(NameR.data()+18, ".s", 2))
                  break;
                switch (NameR[20]) {
                default: break;
                case '0':	 // 1 string to match.
                  return Intrinsic::hexagon_M2_mpyud_ll_s0;	 // "exagon.M2.mpyud.ll.s0"
                case '1':	 // 1 string to match.
                  return Intrinsic::hexagon_M2_mpyud_ll_s1;	 // "exagon.M2.mpyud.ll.s1"
                }
                break;
              }
              break;
            }
            break;
          }
          break;
        case 'v':	 // 4 strings to match.
          if (memcmp(NameR.data()+11, "rcm", 3))
            break;
          switch (NameR[14]) {
          default: break;
          case 'a':	 // 2 strings to match.
            if (NameR[15] != 'c')
              break;
            switch (NameR[16]) {
            default: break;
            case 'i':	 // 1 string to match.
              if (memcmp(NameR.data()+17, ".s0c", 4))
                break;
              return Intrinsic::hexagon_M2_vrcmaci_s0c;	 // "exagon.M2.vrcmaci.s0c"
            case 'r':	 // 1 string to match.
              if (memcmp(NameR.data()+17, ".s0c", 4))
                break;
              return Intrinsic::hexagon_M2_vrcmacr_s0c;	 // "exagon.M2.vrcmacr.s0c"
            }
            break;
          case 'p':	 // 2 strings to match.
            if (NameR[15] != 'y')
              break;
            switch (NameR[16]) {
            default: break;
            case 'i':	 // 1 string to match.
              if (memcmp(NameR.data()+17, ".s0c", 4))
                break;
              return Intrinsic::hexagon_M2_vrcmpyi_s0c;	 // "exagon.M2.vrcmpyi.s0c"
            case 'r':	 // 1 string to match.
              if (memcmp(NameR.data()+17, ".s0c", 4))
                break;
              return Intrinsic::hexagon_M2_vrcmpyr_s0c;	 // "exagon.M2.vrcmpyr.s0c"
            }
            break;
          }
          break;
        }
        break;
      case 'S':	 // 63 strings to match.
        switch (NameR[8]) {
        default: break;
        case '2':	 // 56 strings to match.
          if (NameR[9] != '.')
            break;
          switch (NameR[10]) {
          default: break;
          case 'a':	 // 32 strings to match.
            switch (NameR[11]) {
            default: break;
            case 'd':	 // 1 string to match.
              if (memcmp(NameR.data()+12, "dasl.rrri", 9))
                break;
              return Intrinsic::hexagon_S2_addasl_rrri;	 // "exagon.S2.addasl.rrri"
            case 's':	 // 31 strings to match.
              switch (NameR[12]) {
              default: break;
              case 'l':	 // 15 strings to match.
                if (NameR[13] != '.')
                  break;
                switch (NameR[14]) {
                default: break;
                case 'i':	 // 7 strings to match.
                  if (NameR[15] != '.')
                    break;
                  switch (NameR[16]) {
                  default: break;
                  case 'p':	 // 3 strings to match.
                    if (NameR[17] != '.')
                      break;
                    switch (NameR[18]) {
                    default: break;
                    case 'a':	 // 2 strings to match.
                      switch (NameR[19]) {
                      default: break;
                      case 'c':	 // 1 string to match.
                        if (NameR[20] != 'c')
                          break;
                        return Intrinsic::hexagon_S2_asl_i_p_acc;	 // "exagon.S2.asl.i.p.acc"
                      case 'n':	 // 1 string to match.
                        if (NameR[20] != 'd')
                          break;
                        return Intrinsic::hexagon_S2_asl_i_p_and;	 // "exagon.S2.asl.i.p.and"
                      }
                      break;
                    case 'n':	 // 1 string to match.
                      if (memcmp(NameR.data()+19, "ac", 2))
                        break;
                      return Intrinsic::hexagon_S2_asl_i_p_nac;	 // "exagon.S2.asl.i.p.nac"
                    }
                    break;
                  case 'r':	 // 4 strings to match.
                    if (NameR[17] != '.')
                      break;
                    switch (NameR[18]) {
                    default: break;
                    case 'a':	 // 2 strings to match.
                      switch (NameR[19]) {
                      default: break;
                      case 'c':	 // 1 string to match.
                        if (NameR[20] != 'c')
                          break;
                        return Intrinsic::hexagon_S2_asl_i_r_acc;	 // "exagon.S2.asl.i.r.acc"
                      case 'n':	 // 1 string to match.
                        if (NameR[20] != 'd')
                          break;
                        return Intrinsic::hexagon_S2_asl_i_r_and;	 // "exagon.S2.asl.i.r.and"
                      }
                      break;
                    case 'n':	 // 1 string to match.
                      if (memcmp(NameR.data()+19, "ac", 2))
                        break;
                      return Intrinsic::hexagon_S2_asl_i_r_nac;	 // "exagon.S2.asl.i.r.nac"
                    case 's':	 // 1 string to match.
                      if (memcmp(NameR.data()+19, "at", 2))
                        break;
                      return Intrinsic::hexagon_S2_asl_i_r_sat;	 // "exagon.S2.asl.i.r.sat"
                    }
                    break;
                  }
                  break;
                case 'r':	 // 8 strings to match.
                  if (NameR[15] != '.')
                    break;
                  switch (NameR[16]) {
                  default: break;
                  case 'p':	 // 4 strings to match.
                    if (NameR[17] != '.')
                      break;
                    switch (NameR[18]) {
                    default: break;
                    case 'a':	 // 2 strings to match.
                      switch (NameR[19]) {
                      default: break;
                      case 'c':	 // 1 string to match.
                        if (NameR[20] != 'c')
                          break;
                        return Intrinsic::hexagon_S2_asl_r_p_acc;	 // "exagon.S2.asl.r.p.acc"
                      case 'n':	 // 1 string to match.
                        if (NameR[20] != 'd')
                          break;
                        return Intrinsic::hexagon_S2_asl_r_p_and;	 // "exagon.S2.asl.r.p.and"
                      }
                      break;
                    case 'n':	 // 1 string to match.
                      if (memcmp(NameR.data()+19, "ac", 2))
                        break;
                      return Intrinsic::hexagon_S2_asl_r_p_nac;	 // "exagon.S2.asl.r.p.nac"
                    case 'x':	 // 1 string to match.
                      if (memcmp(NameR.data()+19, "or", 2))
                        break;
                      return Intrinsic::hexagon_S2_asl_r_p_xor;	 // "exagon.S2.asl.r.p.xor"
                    }
                    break;
                  case 'r':	 // 4 strings to match.
                    if (NameR[17] != '.')
                      break;
                    switch (NameR[18]) {
                    default: break;
                    case 'a':	 // 2 strings to match.
                      switch (NameR[19]) {
                      default: break;
                      case 'c':	 // 1 string to match.
                        if (NameR[20] != 'c')
                          break;
                        return Intrinsic::hexagon_S2_asl_r_r_acc;	 // "exagon.S2.asl.r.r.acc"
                      case 'n':	 // 1 string to match.
                        if (NameR[20] != 'd')
                          break;
                        return Intrinsic::hexagon_S2_asl_r_r_and;	 // "exagon.S2.asl.r.r.and"
                      }
                      break;
                    case 'n':	 // 1 string to match.
                      if (memcmp(NameR.data()+19, "ac", 2))
                        break;
                      return Intrinsic::hexagon_S2_asl_r_r_nac;	 // "exagon.S2.asl.r.r.nac"
                    case 's':	 // 1 string to match.
                      if (memcmp(NameR.data()+19, "at", 2))
                        break;
                      return Intrinsic::hexagon_S2_asl_r_r_sat;	 // "exagon.S2.asl.r.r.sat"
                    }
                    break;
                  }
                  break;
                }
                break;
              case 'r':	 // 16 strings to match.
                if (NameR[13] != '.')
                  break;
                switch (NameR[14]) {
                default: break;
                case 'i':	 // 8 strings to match.
                  if (NameR[15] != '.')
                    break;
                  switch (NameR[16]) {
                  default: break;
                  case 'p':	 // 4 strings to match.
                    if (NameR[17] != '.')
                      break;
                    switch (NameR[18]) {
                    default: break;
                    case 'a':	 // 2 strings to match.
                      switch (NameR[19]) {
                      default: break;
                      case 'c':	 // 1 string to match.
                        if (NameR[20] != 'c')
                          break;
                        return Intrinsic::hexagon_S2_asr_i_p_acc;	 // "exagon.S2.asr.i.p.acc"
                      case 'n':	 // 1 string to match.
                        if (NameR[20] != 'd')
                          break;
                        return Intrinsic::hexagon_S2_asr_i_p_and;	 // "exagon.S2.asr.i.p.and"
                      }
                      break;
                    case 'n':	 // 1 string to match.
                      if (memcmp(NameR.data()+19, "ac", 2))
                        break;
                      return Intrinsic::hexagon_S2_asr_i_p_nac;	 // "exagon.S2.asr.i.p.nac"
                    case 'r':	 // 1 string to match.
                      if (memcmp(NameR.data()+19, "nd", 2))
                        break;
                      return Intrinsic::hexagon_S2_asr_i_p_rnd;	 // "exagon.S2.asr.i.p.rnd"
                    }
                    break;
                  case 'r':	 // 4 strings to match.
                    if (NameR[17] != '.')
                      break;
                    switch (NameR[18]) {
                    default: break;
                    case 'a':	 // 2 strings to match.
                      switch (NameR[19]) {
                      default: break;
                      case 'c':	 // 1 string to match.
                        if (NameR[20] != 'c')
                          break;
                        return Intrinsic::hexagon_S2_asr_i_r_acc;	 // "exagon.S2.asr.i.r.acc"
                      case 'n':	 // 1 string to match.
                        if (NameR[20] != 'd')
                          break;
                        return Intrinsic::hexagon_S2_asr_i_r_and;	 // "exagon.S2.asr.i.r.and"
                      }
                      break;
                    case 'n':	 // 1 string to match.
                      if (memcmp(NameR.data()+19, "ac", 2))
                        break;
                      return Intrinsic::hexagon_S2_asr_i_r_nac;	 // "exagon.S2.asr.i.r.nac"
                    case 'r':	 // 1 string to match.
                      if (memcmp(NameR.data()+19, "nd", 2))
                        break;
                      return Intrinsic::hexagon_S2_asr_i_r_rnd;	 // "exagon.S2.asr.i.r.rnd"
                    }
                    break;
                  }
                  break;
                case 'r':	 // 8 strings to match.
                  if (NameR[15] != '.')
                    break;
                  switch (NameR[16]) {
                  default: break;
                  case 'p':	 // 4 strings to match.
                    if (NameR[17] != '.')
                      break;
                    switch (NameR[18]) {
                    default: break;
                    case 'a':	 // 2 strings to match.
                      switch (NameR[19]) {
                      default: break;
                      case 'c':	 // 1 string to match.
                        if (NameR[20] != 'c')
                          break;
                        return Intrinsic::hexagon_S2_asr_r_p_acc;	 // "exagon.S2.asr.r.p.acc"
                      case 'n':	 // 1 string to match.
                        if (NameR[20] != 'd')
                          break;
                        return Intrinsic::hexagon_S2_asr_r_p_and;	 // "exagon.S2.asr.r.p.and"
                      }
                      break;
                    case 'n':	 // 1 string to match.
                      if (memcmp(NameR.data()+19, "ac", 2))
                        break;
                      return Intrinsic::hexagon_S2_asr_r_p_nac;	 // "exagon.S2.asr.r.p.nac"
                    case 'x':	 // 1 string to match.
                      if (memcmp(NameR.data()+19, "or", 2))
                        break;
                      return Intrinsic::hexagon_S2_asr_r_p_xor;	 // "exagon.S2.asr.r.p.xor"
                    }
                    break;
                  case 'r':	 // 4 strings to match.
                    if (NameR[17] != '.')
                      break;
                    switch (NameR[18]) {
                    default: break;
                    case 'a':	 // 2 strings to match.
                      switch (NameR[19]) {
                      default: break;
                      case 'c':	 // 1 string to match.
                        if (NameR[20] != 'c')
                          break;
                        return Intrinsic::hexagon_S2_asr_r_r_acc;	 // "exagon.S2.asr.r.r.acc"
                      case 'n':	 // 1 string to match.
                        if (NameR[20] != 'd')
                          break;
                        return Intrinsic::hexagon_S2_asr_r_r_and;	 // "exagon.S2.asr.r.r.and"
                      }
                      break;
                    case 'n':	 // 1 string to match.
                      if (memcmp(NameR.data()+19, "ac", 2))
                        break;
                      return Intrinsic::hexagon_S2_asr_r_r_nac;	 // "exagon.S2.asr.r.r.nac"
                    case 's':	 // 1 string to match.
                      if (memcmp(NameR.data()+19, "at", 2))
                        break;
                      return Intrinsic::hexagon_S2_asr_r_r_sat;	 // "exagon.S2.asr.r.r.sat"
                    }
                    break;
                  }
                  break;
                }
                break;
              }
              break;
            }
            break;
          case 'e':	 // 1 string to match.
            if (memcmp(NameR.data()+11, "xtractu.rp", 10))
              break;
            return Intrinsic::hexagon_S2_extractu_rp;	 // "exagon.S2.extractu.rp"
          case 'l':	 // 20 strings to match.
            if (NameR[11] != 's')
              break;
            switch (NameR[12]) {
            default: break;
            case 'l':	 // 7 strings to match.
              if (memcmp(NameR.data()+13, ".r.", 3))
                break;
              switch (NameR[16]) {
              default: break;
              case 'p':	 // 4 strings to match.
                if (NameR[17] != '.')
                  break;
                switch (NameR[18]) {
                default: break;
                case 'a':	 // 2 strings to match.
                  switch (NameR[19]) {
                  default: break;
                  case 'c':	 // 1 string to match.
                    if (NameR[20] != 'c')
                      break;
                    return Intrinsic::hexagon_S2_lsl_r_p_acc;	 // "exagon.S2.lsl.r.p.acc"
                  case 'n':	 // 1 string to match.
                    if (NameR[20] != 'd')
                      break;
                    return Intrinsic::hexagon_S2_lsl_r_p_and;	 // "exagon.S2.lsl.r.p.and"
                  }
                  break;
                case 'n':	 // 1 string to match.
                  if (memcmp(NameR.data()+19, "ac", 2))
                    break;
                  return Intrinsic::hexagon_S2_lsl_r_p_nac;	 // "exagon.S2.lsl.r.p.nac"
                case 'x':	 // 1 string to match.
                  if (memcmp(NameR.data()+19, "or", 2))
                    break;
                  return Intrinsic::hexagon_S2_lsl_r_p_xor;	 // "exagon.S2.lsl.r.p.xor"
                }
                break;
              case 'r':	 // 3 strings to match.
                if (NameR[17] != '.')
                  break;
                switch (NameR[18]) {
                default: break;
                case 'a':	 // 2 strings to match.
                  switch (NameR[19]) {
                  default: break;
                  case 'c':	 // 1 string to match.
                    if (NameR[20] != 'c')
                      break;
                    return Intrinsic::hexagon_S2_lsl_r_r_acc;	 // "exagon.S2.lsl.r.r.acc"
                  case 'n':	 // 1 string to match.
                    if (NameR[20] != 'd')
                      break;
                    return Intrinsic::hexagon_S2_lsl_r_r_and;	 // "exagon.S2.lsl.r.r.and"
                  }
                  break;
                case 'n':	 // 1 string to match.
                  if (memcmp(NameR.data()+19, "ac", 2))
                    break;
                  return Intrinsic::hexagon_S2_lsl_r_r_nac;	 // "exagon.S2.lsl.r.r.nac"
                }
                break;
              }
              break;
            case 'r':	 // 13 strings to match.
              if (NameR[13] != '.')
                break;
              switch (NameR[14]) {
              default: break;
              case 'i':	 // 6 strings to match.
                if (NameR[15] != '.')
                  break;
                switch (NameR[16]) {
                default: break;
                case 'p':	 // 3 strings to match.
                  if (NameR[17] != '.')
                    break;
                  switch (NameR[18]) {
                  default: break;
                  case 'a':	 // 2 strings to match.
                    switch (NameR[19]) {
                    default: break;
                    case 'c':	 // 1 string to match.
                      if (NameR[20] != 'c')
                        break;
                      return Intrinsic::hexagon_S2_lsr_i_p_acc;	 // "exagon.S2.lsr.i.p.acc"
                    case 'n':	 // 1 string to match.
                      if (NameR[20] != 'd')
                        break;
                      return Intrinsic::hexagon_S2_lsr_i_p_and;	 // "exagon.S2.lsr.i.p.and"
                    }
                    break;
                  case 'n':	 // 1 string to match.
                    if (memcmp(NameR.data()+19, "ac", 2))
                      break;
                    return Intrinsic::hexagon_S2_lsr_i_p_nac;	 // "exagon.S2.lsr.i.p.nac"
                  }
                  break;
                case 'r':	 // 3 strings to match.
                  if (NameR[17] != '.')
                    break;
                  switch (NameR[18]) {
                  default: break;
                  case 'a':	 // 2 strings to match.
                    switch (NameR[19]) {
                    default: break;
                    case 'c':	 // 1 string to match.
                      if (NameR[20] != 'c')
                        break;
                      return Intrinsic::hexagon_S2_lsr_i_r_acc;	 // "exagon.S2.lsr.i.r.acc"
                    case 'n':	 // 1 string to match.
                      if (NameR[20] != 'd')
                        break;
                      return Intrinsic::hexagon_S2_lsr_i_r_and;	 // "exagon.S2.lsr.i.r.and"
                    }
                    break;
                  case 'n':	 // 1 string to match.
                    if (memcmp(NameR.data()+19, "ac", 2))
                      break;
                    return Intrinsic::hexagon_S2_lsr_i_r_nac;	 // "exagon.S2.lsr.i.r.nac"
                  }
                  break;
                }
                break;
              case 'r':	 // 7 strings to match.
                if (NameR[15] != '.')
                  break;
                switch (NameR[16]) {
                default: break;
                case 'p':	 // 4 strings to match.
                  if (NameR[17] != '.')
                    break;
                  switch (NameR[18]) {
                  default: break;
                  case 'a':	 // 2 strings to match.
                    switch (NameR[19]) {
                    default: break;
                    case 'c':	 // 1 string to match.
                      if (NameR[20] != 'c')
                        break;
                      return Intrinsic::hexagon_S2_lsr_r_p_acc;	 // "exagon.S2.lsr.r.p.acc"
                    case 'n':	 // 1 string to match.
                      if (NameR[20] != 'd')
                        break;
                      return Intrinsic::hexagon_S2_lsr_r_p_and;	 // "exagon.S2.lsr.r.p.and"
                    }
                    break;
                  case 'n':	 // 1 string to match.
                    if (memcmp(NameR.data()+19, "ac", 2))
                      break;
                    return Intrinsic::hexagon_S2_lsr_r_p_nac;	 // "exagon.S2.lsr.r.p.nac"
                  case 'x':	 // 1 string to match.
                    if (memcmp(NameR.data()+19, "or", 2))
                      break;
                    return Intrinsic::hexagon_S2_lsr_r_p_xor;	 // "exagon.S2.lsr.r.p.xor"
                  }
                  break;
                case 'r':	 // 3 strings to match.
                  if (NameR[17] != '.')
                    break;
                  switch (NameR[18]) {
                  default: break;
                  case 'a':	 // 2 strings to match.
                    switch (NameR[19]) {
                    default: break;
                    case 'c':	 // 1 string to match.
                      if (NameR[20] != 'c')
                        break;
                      return Intrinsic::hexagon_S2_lsr_r_r_acc;	 // "exagon.S2.lsr.r.r.acc"
                    case 'n':	 // 1 string to match.
                      if (NameR[20] != 'd')
                        break;
                      return Intrinsic::hexagon_S2_lsr_r_r_and;	 // "exagon.S2.lsr.r.r.and"
                    }
                    break;
                  case 'n':	 // 1 string to match.
                    if (memcmp(NameR.data()+19, "ac", 2))
                      break;
                    return Intrinsic::hexagon_S2_lsr_r_r_nac;	 // "exagon.S2.lsr.r.r.nac"
                  }
                  break;
                }
                break;
              }
              break;
            }
            break;
          case 't':	 // 2 strings to match.
            if (memcmp(NameR.data()+11, "ogglebit.", 9))
              break;
            switch (NameR[20]) {
            default: break;
            case 'i':	 // 1 string to match.
              return Intrinsic::hexagon_S2_togglebit_i;	 // "exagon.S2.togglebit.i"
            case 'r':	 // 1 string to match.
              return Intrinsic::hexagon_S2_togglebit_r;	 // "exagon.S2.togglebit.r"
            }
            break;
          case 'v':	 // 1 string to match.
            if (memcmp(NameR.data()+11, "rndpackwhs", 10))
              break;
            return Intrinsic::hexagon_S2_vrndpackwhs;	 // "exagon.S2.vrndpackwhs"
          }
          break;
        case '4':	 // 7 strings to match.
          if (NameR[9] != '.')
            break;
          switch (NameR[10]) {
          default: break;
          case 'a':	 // 4 strings to match.
            switch (NameR[11]) {
            default: break;
            case 'd':	 // 2 strings to match.
              if (memcmp(NameR.data()+12, "di.", 3))
                break;
              switch (NameR[15]) {
              default: break;
              case 'a':	 // 1 string to match.
                if (memcmp(NameR.data()+16, "sl.ri", 5))
                  break;
                return Intrinsic::hexagon_S4_addi_asl_ri;	 // "exagon.S4.addi.asl.ri"
              case 'l':	 // 1 string to match.
                if (memcmp(NameR.data()+16, "sr.ri", 5))
                  break;
                return Intrinsic::hexagon_S4_addi_lsr_ri;	 // "exagon.S4.addi.lsr.ri"
              }
              break;
            case 'n':	 // 2 strings to match.
              if (memcmp(NameR.data()+12, "di.", 3))
                break;
              switch (NameR[15]) {
              default: break;
              case 'a':	 // 1 string to match.
                if (memcmp(NameR.data()+16, "sl.ri", 5))
                  break;
                return Intrinsic::hexagon_S4_andi_asl_ri;	 // "exagon.S4.andi.asl.ri"
              case 'l':	 // 1 string to match.
                if (memcmp(NameR.data()+16, "sr.ri", 5))
                  break;
                return Intrinsic::hexagon_S4_andi_lsr_ri;	 // "exagon.S4.andi.lsr.ri"
              }
              break;
            }
            break;
          case 'e':	 // 1 string to match.
            if (memcmp(NameR.data()+11, "xtractp.rp", 10))
              break;
            return Intrinsic::hexagon_S4_extractp_rp;	 // "exagon.S4.extractp.rp"
          case 's':	 // 2 strings to match.
            if (memcmp(NameR.data()+11, "ubi.", 4))
              break;
            switch (NameR[15]) {
            default: break;
            case 'a':	 // 1 string to match.
              if (memcmp(NameR.data()+16, "sl.ri", 5))
                break;
              return Intrinsic::hexagon_S4_subi_asl_ri;	 // "exagon.S4.subi.asl.ri"
            case 'l':	 // 1 string to match.
              if (memcmp(NameR.data()+16, "sr.ri", 5))
                break;
              return Intrinsic::hexagon_S4_subi_lsr_ri;	 // "exagon.S4.subi.lsr.ri"
            }
            break;
          }
          break;
        }
        break;
      }
      break;
    case 22:	 // 9 strings to match.
      if (memcmp(NameR.data()+0, "exagon.", 7))
        break;
      switch (NameR[7]) {
      default: break;
      case 'A':	 // 2 strings to match.
        if (memcmp(NameR.data()+8, "4.round.r", 9))
          break;
        switch (NameR[17]) {
        default: break;
        case 'i':	 // 1 string to match.
          if (memcmp(NameR.data()+18, ".sat", 4))
            break;
          return Intrinsic::hexagon_A4_round_ri_sat;	 // "exagon.A4.round.ri.sat"
        case 'r':	 // 1 string to match.
          if (memcmp(NameR.data()+18, ".sat", 4))
            break;
          return Intrinsic::hexagon_A4_round_rr_sat;	 // "exagon.A4.round.rr.sat"
        }
        break;
      case 'M':	 // 1 string to match.
        if (memcmp(NameR.data()+8, "2.vrcmpys.s1rp", 14))
          break;
        return Intrinsic::hexagon_M2_vrcmpys_s1rp;	 // "exagon.M2.vrcmpys.s1rp"
      case 'S':	 // 6 strings to match.
        if (memcmp(NameR.data()+8, "2.", 2))
          break;
        switch (NameR[10]) {
        default: break;
        case 'a':	 // 2 strings to match.
          if (memcmp(NameR.data()+11, "sl.i.", 5))
            break;
          switch (NameR[16]) {
          default: break;
          case 'p':	 // 1 string to match.
            if (memcmp(NameR.data()+17, ".xacc", 5))
              break;
            return Intrinsic::hexagon_S2_asl_i_p_xacc;	 // "exagon.S2.asl.i.p.xacc"
          case 'r':	 // 1 string to match.
            if (memcmp(NameR.data()+17, ".xacc", 5))
              break;
            return Intrinsic::hexagon_S2_asl_i_r_xacc;	 // "exagon.S2.asl.i.r.xacc"
          }
          break;
        case 'd':	 // 1 string to match.
          if (memcmp(NameR.data()+11, "einterleave", 11))
            break;
          return Intrinsic::hexagon_S2_deinterleave;	 // "exagon.S2.deinterleave"
        case 'e':	 // 1 string to match.
          if (memcmp(NameR.data()+11, "xtractup.rp", 11))
            break;
          return Intrinsic::hexagon_S2_extractup_rp;	 // "exagon.S2.extractup.rp"
        case 'l':	 // 2 strings to match.
          if (memcmp(NameR.data()+11, "sr.i.", 5))
            break;
          switch (NameR[16]) {
          default: break;
          case 'p':	 // 1 string to match.
            if (memcmp(NameR.data()+17, ".xacc", 5))
              break;
            return Intrinsic::hexagon_S2_lsr_i_p_xacc;	 // "exagon.S2.lsr.i.p.xacc"
          case 'r':	 // 1 string to match.
            if (memcmp(NameR.data()+17, ".xacc", 5))
              break;
            return Intrinsic::hexagon_S2_lsr_i_r_xacc;	 // "exagon.S2.lsr.i.r.xacc"
          }
          break;
        }
        break;
      }
      break;
    case 23:	 // 42 strings to match.
      if (memcmp(NameR.data()+0, "exagon.", 7))
        break;
      switch (NameR[7]) {
      default: break;
      case 'M':	 // 38 strings to match.
        switch (NameR[8]) {
        default: break;
        case '2':	 // 35 strings to match.
          if (NameR[9] != '.')
            break;
          switch (NameR[10]) {
          default: break;
          case 'm':	 // 33 strings to match.
            if (memcmp(NameR.data()+11, "py.", 3))
              break;
            switch (NameR[14]) {
            default: break;
            case 'a':	 // 8 strings to match.
              if (memcmp(NameR.data()+15, "cc.", 3))
                break;
              switch (NameR[18]) {
              default: break;
              case 'h':	 // 4 strings to match.
                switch (NameR[19]) {
                default: break;
                case 'h':	 // 2 strings to match.
                  if (memcmp(NameR.data()+20, ".s", 2))
                    break;
                  switch (NameR[22]) {
                  default: break;
                  case '0':	 // 1 string to match.
                    return Intrinsic::hexagon_M2_mpy_acc_hh_s0;	 // "exagon.M2.mpy.acc.hh.s0"
                  case '1':	 // 1 string to match.
                    return Intrinsic::hexagon_M2_mpy_acc_hh_s1;	 // "exagon.M2.mpy.acc.hh.s1"
                  }
                  break;
                case 'l':	 // 2 strings to match.
                  if (memcmp(NameR.data()+20, ".s", 2))
                    break;
                  switch (NameR[22]) {
                  default: break;
                  case '0':	 // 1 string to match.
                    return Intrinsic::hexagon_M2_mpy_acc_hl_s0;	 // "exagon.M2.mpy.acc.hl.s0"
                  case '1':	 // 1 string to match.
                    return Intrinsic::hexagon_M2_mpy_acc_hl_s1;	 // "exagon.M2.mpy.acc.hl.s1"
                  }
                  break;
                }
                break;
              case 'l':	 // 4 strings to match.
                switch (NameR[19]) {
                default: break;
                case 'h':	 // 2 strings to match.
                  if (memcmp(NameR.data()+20, ".s", 2))
                    break;
                  switch (NameR[22]) {
                  default: break;
                  case '0':	 // 1 string to match.
                    return Intrinsic::hexagon_M2_mpy_acc_lh_s0;	 // "exagon.M2.mpy.acc.lh.s0"
                  case '1':	 // 1 string to match.
                    return Intrinsic::hexagon_M2_mpy_acc_lh_s1;	 // "exagon.M2.mpy.acc.lh.s1"
                  }
                  break;
                case 'l':	 // 2 strings to match.
                  if (memcmp(NameR.data()+20, ".s", 2))
                    break;
                  switch (NameR[22]) {
                  default: break;
                  case '0':	 // 1 string to match.
                    return Intrinsic::hexagon_M2_mpy_acc_ll_s0;	 // "exagon.M2.mpy.acc.ll.s0"
                  case '1':	 // 1 string to match.
                    return Intrinsic::hexagon_M2_mpy_acc_ll_s1;	 // "exagon.M2.mpy.acc.ll.s1"
                  }
                  break;
                }
                break;
              }
              break;
            case 'n':	 // 8 strings to match.
              if (memcmp(NameR.data()+15, "ac.", 3))
                break;
              switch (NameR[18]) {
              default: break;
              case 'h':	 // 4 strings to match.
                switch (NameR[19]) {
                default: break;
                case 'h':	 // 2 strings to match.
                  if (memcmp(NameR.data()+20, ".s", 2))
                    break;
                  switch (NameR[22]) {
                  default: break;
                  case '0':	 // 1 string to match.
                    return Intrinsic::hexagon_M2_mpy_nac_hh_s0;	 // "exagon.M2.mpy.nac.hh.s0"
                  case '1':	 // 1 string to match.
                    return Intrinsic::hexagon_M2_mpy_nac_hh_s1;	 // "exagon.M2.mpy.nac.hh.s1"
                  }
                  break;
                case 'l':	 // 2 strings to match.
                  if (memcmp(NameR.data()+20, ".s", 2))
                    break;
                  switch (NameR[22]) {
                  default: break;
                  case '0':	 // 1 string to match.
                    return Intrinsic::hexagon_M2_mpy_nac_hl_s0;	 // "exagon.M2.mpy.nac.hl.s0"
                  case '1':	 // 1 string to match.
                    return Intrinsic::hexagon_M2_mpy_nac_hl_s1;	 // "exagon.M2.mpy.nac.hl.s1"
                  }
                  break;
                }
                break;
              case 'l':	 // 4 strings to match.
                switch (NameR[19]) {
                default: break;
                case 'h':	 // 2 strings to match.
                  if (memcmp(NameR.data()+20, ".s", 2))
                    break;
                  switch (NameR[22]) {
                  default: break;
                  case '0':	 // 1 string to match.
                    return Intrinsic::hexagon_M2_mpy_nac_lh_s0;	 // "exagon.M2.mpy.nac.lh.s0"
                  case '1':	 // 1 string to match.
                    return Intrinsic::hexagon_M2_mpy_nac_lh_s1;	 // "exagon.M2.mpy.nac.lh.s1"
                  }
                  break;
                case 'l':	 // 2 strings to match.
                  if (memcmp(NameR.data()+20, ".s", 2))
                    break;
                  switch (NameR[22]) {
                  default: break;
                  case '0':	 // 1 string to match.
                    return Intrinsic::hexagon_M2_mpy_nac_ll_s0;	 // "exagon.M2.mpy.nac.ll.s0"
                  case '1':	 // 1 string to match.
                    return Intrinsic::hexagon_M2_mpy_nac_ll_s1;	 // "exagon.M2.mpy.nac.ll.s1"
                  }
                  break;
                }
                break;
              }
              break;
            case 'r':	 // 8 strings to match.
              if (memcmp(NameR.data()+15, "nd.", 3))
                break;
              switch (NameR[18]) {
              default: break;
              case 'h':	 // 4 strings to match.
                switch (NameR[19]) {
                default: break;
                case 'h':	 // 2 strings to match.
                  if (memcmp(NameR.data()+20, ".s", 2))
                    break;
                  switch (NameR[22]) {
                  default: break;
                  case '0':	 // 1 string to match.
                    return Intrinsic::hexagon_M2_mpy_rnd_hh_s0;	 // "exagon.M2.mpy.rnd.hh.s0"
                  case '1':	 // 1 string to match.
                    return Intrinsic::hexagon_M2_mpy_rnd_hh_s1;	 // "exagon.M2.mpy.rnd.hh.s1"
                  }
                  break;
                case 'l':	 // 2 strings to match.
                  if (memcmp(NameR.data()+20, ".s", 2))
                    break;
                  switch (NameR[22]) {
                  default: break;
                  case '0':	 // 1 string to match.
                    return Intrinsic::hexagon_M2_mpy_rnd_hl_s0;	 // "exagon.M2.mpy.rnd.hl.s0"
                  case '1':	 // 1 string to match.
                    return Intrinsic::hexagon_M2_mpy_rnd_hl_s1;	 // "exagon.M2.mpy.rnd.hl.s1"
                  }
                  break;
                }
                break;
              case 'l':	 // 4 strings to match.
                switch (NameR[19]) {
                default: break;
                case 'h':	 // 2 strings to match.
                  if (memcmp(NameR.data()+20, ".s", 2))
                    break;
                  switch (NameR[22]) {
                  default: break;
                  case '0':	 // 1 string to match.
                    return Intrinsic::hexagon_M2_mpy_rnd_lh_s0;	 // "exagon.M2.mpy.rnd.lh.s0"
                  case '1':	 // 1 string to match.
                    return Intrinsic::hexagon_M2_mpy_rnd_lh_s1;	 // "exagon.M2.mpy.rnd.lh.s1"
                  }
                  break;
                case 'l':	 // 2 strings to match.
                  if (memcmp(NameR.data()+20, ".s", 2))
                    break;
                  switch (NameR[22]) {
                  default: break;
                  case '0':	 // 1 string to match.
                    return Intrinsic::hexagon_M2_mpy_rnd_ll_s0;	 // "exagon.M2.mpy.rnd.ll.s0"
                  case '1':	 // 1 string to match.
                    return Intrinsic::hexagon_M2_mpy_rnd_ll_s1;	 // "exagon.M2.mpy.rnd.ll.s1"
                  }
                  break;
                }
                break;
              }
              break;
            case 's':	 // 8 strings to match.
              if (memcmp(NameR.data()+15, "at.", 3))
                break;
              switch (NameR[18]) {
              default: break;
              case 'h':	 // 4 strings to match.
                switch (NameR[19]) {
                default: break;
                case 'h':	 // 2 strings to match.
                  if (memcmp(NameR.data()+20, ".s", 2))
                    break;
                  switch (NameR[22]) {
                  default: break;
                  case '0':	 // 1 string to match.
                    return Intrinsic::hexagon_M2_mpy_sat_hh_s0;	 // "exagon.M2.mpy.sat.hh.s0"
                  case '1':	 // 1 string to match.
                    return Intrinsic::hexagon_M2_mpy_sat_hh_s1;	 // "exagon.M2.mpy.sat.hh.s1"
                  }
                  break;
                case 'l':	 // 2 strings to match.
                  if (memcmp(NameR.data()+20, ".s", 2))
                    break;
                  switch (NameR[22]) {
                  default: break;
                  case '0':	 // 1 string to match.
                    return Intrinsic::hexagon_M2_mpy_sat_hl_s0;	 // "exagon.M2.mpy.sat.hl.s0"
                  case '1':	 // 1 string to match.
                    return Intrinsic::hexagon_M2_mpy_sat_hl_s1;	 // "exagon.M2.mpy.sat.hl.s1"
                  }
                  break;
                }
                break;
              case 'l':	 // 4 strings to match.
                switch (NameR[19]) {
                default: break;
                case 'h':	 // 2 strings to match.
                  if (memcmp(NameR.data()+20, ".s", 2))
                    break;
                  switch (NameR[22]) {
                  default: break;
                  case '0':	 // 1 string to match.
                    return Intrinsic::hexagon_M2_mpy_sat_lh_s0;	 // "exagon.M2.mpy.sat.lh.s0"
                  case '1':	 // 1 string to match.
                    return Intrinsic::hexagon_M2_mpy_sat_lh_s1;	 // "exagon.M2.mpy.sat.lh.s1"
                  }
                  break;
                case 'l':	 // 2 strings to match.
                  if (memcmp(NameR.data()+20, ".s", 2))
                    break;
                  switch (NameR[22]) {
                  default: break;
                  case '0':	 // 1 string to match.
                    return Intrinsic::hexagon_M2_mpy_sat_ll_s0;	 // "exagon.M2.mpy.sat.ll.s0"
                  case '1':	 // 1 string to match.
                    return Intrinsic::hexagon_M2_mpy_sat_ll_s1;	 // "exagon.M2.mpy.sat.ll.s1"
                  }
                  break;
                }
                break;
              }
              break;
            case 'u':	 // 1 string to match.
              if (memcmp(NameR.data()+15, "p.s1.sat", 8))
                break;
              return Intrinsic::hexagon_M2_mpy_up_s1_sat;	 // "exagon.M2.mpy.up.s1.sat"
            }
            break;
          case 'v':	 // 2 strings to match.
            if (memcmp(NameR.data()+11, "mpy2s.s", 7))
              break;
            switch (NameR[18]) {
            default: break;
            case '0':	 // 1 string to match.
              if (memcmp(NameR.data()+19, "pack", 4))
                break;
              return Intrinsic::hexagon_M2_vmpy2s_s0pack;	 // "exagon.M2.vmpy2s.s0pack"
            case '1':	 // 1 string to match.
              if (memcmp(NameR.data()+19, "pack", 4))
                break;
              return Intrinsic::hexagon_M2_vmpy2s_s1pack;	 // "exagon.M2.vmpy2s.s1pack"
            }
            break;
          }
          break;
        case '4':	 // 3 strings to match.
          if (NameR[9] != '.')
            break;
          switch (NameR[10]) {
          default: break;
          case 'm':	 // 2 strings to match.
            switch (NameR[11]) {
            default: break;
            case 'a':	 // 1 string to match.
              if (memcmp(NameR.data()+12, "c.up.s1.sat", 11))
                break;
              return Intrinsic::hexagon_M4_mac_up_s1_sat;	 // "exagon.M4.mac.up.s1.sat"
            case 'p':	 // 1 string to match.
              if (memcmp(NameR.data()+12, "yri.addr.u2", 11))
                break;
              return Intrinsic::hexagon_M4_mpyri_addr_u2;	 // "exagon.M4.mpyri.addr.u2"
            }
            break;
          case 'n':	 // 1 string to match.
            if (memcmp(NameR.data()+11, "ac.up.s1.sat", 12))
              break;
            return Intrinsic::hexagon_M4_nac_up_s1_sat;	 // "exagon.M4.nac.up.s1.sat"
          }
          break;
        }
        break;
      case 'S':	 // 4 strings to match.
        switch (NameR[8]) {
        default: break;
        case '2':	 // 2 strings to match.
          if (memcmp(NameR.data()+9, ".vsat", 5))
            break;
          switch (NameR[14]) {
          default: break;
          case 'h':	 // 1 string to match.
            if (memcmp(NameR.data()+15, "b.nopack", 8))
              break;
            return Intrinsic::hexagon_S2_vsathb_nopack;	 // "exagon.S2.vsathb.nopack"
          case 'w':	 // 1 string to match.
            if (memcmp(NameR.data()+15, "h.nopack", 8))
              break;
            return Intrinsic::hexagon_S2_vsatwh_nopack;	 // "exagon.S2.vsatwh.nopack"
          }
          break;
        case '4':	 // 1 string to match.
          if (memcmp(NameR.data()+9, ".vrcrotate.acc", 14))
            break;
          return Intrinsic::hexagon_S4_vrcrotate_acc;	 // "exagon.S4.vrcrotate.acc"
        case 'I':	 // 1 string to match.
          if (memcmp(NameR.data()+9, ".to.SXTHI.asrh", 14))
            break;
          return Intrinsic::hexagon_SI_to_SXTHI_asrh;	 // "exagon.SI.to.SXTHI.asrh"
        }
        break;
      }
      break;
    case 24:	 // 64 strings to match.
      if (memcmp(NameR.data()+0, "exagon.", 7))
        break;
      switch (NameR[7]) {
      default: break;
      case 'F':	 // 4 strings to match.
        if (memcmp(NameR.data()+8, "2.conv.", 7))
          break;
        switch (NameR[15]) {
        default: break;
        case 'd':	 // 2 strings to match.
          if (memcmp(NameR.data()+16, "f2", 2))
            break;
          switch (NameR[18]) {
          default: break;
          case 'd':	 // 1 string to match.
            if (memcmp(NameR.data()+19, ".chop", 5))
              break;
            return Intrinsic::hexagon_F2_conv_df2d_chop;	 // "exagon.F2.conv.df2d.chop"
          case 'w':	 // 1 string to match.
            if (memcmp(NameR.data()+19, ".chop", 5))
              break;
            return Intrinsic::hexagon_F2_conv_df2w_chop;	 // "exagon.F2.conv.df2w.chop"
          }
          break;
        case 's':	 // 2 strings to match.
          if (memcmp(NameR.data()+16, "f2", 2))
            break;
          switch (NameR[18]) {
          default: break;
          case 'd':	 // 1 string to match.
            if (memcmp(NameR.data()+19, ".chop", 5))
              break;
            return Intrinsic::hexagon_F2_conv_sf2d_chop;	 // "exagon.F2.conv.sf2d.chop"
          case 'w':	 // 1 string to match.
            if (memcmp(NameR.data()+19, ".chop", 5))
              break;
            return Intrinsic::hexagon_F2_conv_sf2w_chop;	 // "exagon.F2.conv.sf2w.chop"
          }
          break;
        }
        break;
      case 'M':	 // 56 strings to match.
        switch (NameR[8]) {
        default: break;
        case '2':	 // 52 strings to match.
          if (NameR[9] != '.')
            break;
          switch (NameR[10]) {
          default: break;
          case 'd':	 // 5 strings to match.
            if (memcmp(NameR.data()+11, "pmpy", 4))
              break;
            switch (NameR[15]) {
            default: break;
            case 's':	 // 3 strings to match.
              if (memcmp(NameR.data()+16, "s.", 2))
                break;
              switch (NameR[18]) {
              default: break;
              case 'a':	 // 1 string to match.
                if (memcmp(NameR.data()+19, "cc.s0", 5))
                  break;
                return Intrinsic::hexagon_M2_dpmpyss_acc_s0;	 // "exagon.M2.dpmpyss.acc.s0"
              case 'n':	 // 1 string to match.
                if (memcmp(NameR.data()+19, "ac.s0", 5))
                  break;
                return Intrinsic::hexagon_M2_dpmpyss_nac_s0;	 // "exagon.M2.dpmpyss.nac.s0"
              case 'r':	 // 1 string to match.
                if (memcmp(NameR.data()+19, "nd.s0", 5))
                  break;
                return Intrinsic::hexagon_M2_dpmpyss_rnd_s0;	 // "exagon.M2.dpmpyss.rnd.s0"
              }
              break;
            case 'u':	 // 2 strings to match.
              if (memcmp(NameR.data()+16, "u.", 2))
                break;
              switch (NameR[18]) {
              default: break;
              case 'a':	 // 1 string to match.
                if (memcmp(NameR.data()+19, "cc.s0", 5))
                  break;
                return Intrinsic::hexagon_M2_dpmpyuu_acc_s0;	 // "exagon.M2.dpmpyuu.acc.s0"
              case 'n':	 // 1 string to match.
                if (memcmp(NameR.data()+19, "ac.s0", 5))
                  break;
                return Intrinsic::hexagon_M2_dpmpyuu_nac_s0;	 // "exagon.M2.dpmpyuu.nac.s0"
              }
              break;
            }
            break;
          case 'm':	 // 40 strings to match.
            if (memcmp(NameR.data()+11, "py", 2))
              break;
            switch (NameR[13]) {
            default: break;
            case 'd':	 // 24 strings to match.
              if (NameR[14] != '.')
                break;
              switch (NameR[15]) {
              default: break;
              case 'a':	 // 8 strings to match.
                if (memcmp(NameR.data()+16, "cc.", 3))
                  break;
                switch (NameR[19]) {
                default: break;
                case 'h':	 // 4 strings to match.
                  switch (NameR[20]) {
                  default: break;
                  case 'h':	 // 2 strings to match.
                    if (memcmp(NameR.data()+21, ".s", 2))
                      break;
                    switch (NameR[23]) {
                    default: break;
                    case '0':	 // 1 string to match.
                      return Intrinsic::hexagon_M2_mpyd_acc_hh_s0;	 // "exagon.M2.mpyd.acc.hh.s0"
                    case '1':	 // 1 string to match.
                      return Intrinsic::hexagon_M2_mpyd_acc_hh_s1;	 // "exagon.M2.mpyd.acc.hh.s1"
                    }
                    break;
                  case 'l':	 // 2 strings to match.
                    if (memcmp(NameR.data()+21, ".s", 2))
                      break;
                    switch (NameR[23]) {
                    default: break;
                    case '0':	 // 1 string to match.
                      return Intrinsic::hexagon_M2_mpyd_acc_hl_s0;	 // "exagon.M2.mpyd.acc.hl.s0"
                    case '1':	 // 1 string to match.
                      return Intrinsic::hexagon_M2_mpyd_acc_hl_s1;	 // "exagon.M2.mpyd.acc.hl.s1"
                    }
                    break;
                  }
                  break;
                case 'l':	 // 4 strings to match.
                  switch (NameR[20]) {
                  default: break;
                  case 'h':	 // 2 strings to match.
                    if (memcmp(NameR.data()+21, ".s", 2))
                      break;
                    switch (NameR[23]) {
                    default: break;
                    case '0':	 // 1 string to match.
                      return Intrinsic::hexagon_M2_mpyd_acc_lh_s0;	 // "exagon.M2.mpyd.acc.lh.s0"
                    case '1':	 // 1 string to match.
                      return Intrinsic::hexagon_M2_mpyd_acc_lh_s1;	 // "exagon.M2.mpyd.acc.lh.s1"
                    }
                    break;
                  case 'l':	 // 2 strings to match.
                    if (memcmp(NameR.data()+21, ".s", 2))
                      break;
                    switch (NameR[23]) {
                    default: break;
                    case '0':	 // 1 string to match.
                      return Intrinsic::hexagon_M2_mpyd_acc_ll_s0;	 // "exagon.M2.mpyd.acc.ll.s0"
                    case '1':	 // 1 string to match.
                      return Intrinsic::hexagon_M2_mpyd_acc_ll_s1;	 // "exagon.M2.mpyd.acc.ll.s1"
                    }
                    break;
                  }
                  break;
                }
                break;
              case 'n':	 // 8 strings to match.
                if (memcmp(NameR.data()+16, "ac.", 3))
                  break;
                switch (NameR[19]) {
                default: break;
                case 'h':	 // 4 strings to match.
                  switch (NameR[20]) {
                  default: break;
                  case 'h':	 // 2 strings to match.
                    if (memcmp(NameR.data()+21, ".s", 2))
                      break;
                    switch (NameR[23]) {
                    default: break;
                    case '0':	 // 1 string to match.
                      return Intrinsic::hexagon_M2_mpyd_nac_hh_s0;	 // "exagon.M2.mpyd.nac.hh.s0"
                    case '1':	 // 1 string to match.
                      return Intrinsic::hexagon_M2_mpyd_nac_hh_s1;	 // "exagon.M2.mpyd.nac.hh.s1"
                    }
                    break;
                  case 'l':	 // 2 strings to match.
                    if (memcmp(NameR.data()+21, ".s", 2))
                      break;
                    switch (NameR[23]) {
                    default: break;
                    case '0':	 // 1 string to match.
                      return Intrinsic::hexagon_M2_mpyd_nac_hl_s0;	 // "exagon.M2.mpyd.nac.hl.s0"
                    case '1':	 // 1 string to match.
                      return Intrinsic::hexagon_M2_mpyd_nac_hl_s1;	 // "exagon.M2.mpyd.nac.hl.s1"
                    }
                    break;
                  }
                  break;
                case 'l':	 // 4 strings to match.
                  switch (NameR[20]) {
                  default: break;
                  case 'h':	 // 2 strings to match.
                    if (memcmp(NameR.data()+21, ".s", 2))
                      break;
                    switch (NameR[23]) {
                    default: break;
                    case '0':	 // 1 string to match.
                      return Intrinsic::hexagon_M2_mpyd_nac_lh_s0;	 // "exagon.M2.mpyd.nac.lh.s0"
                    case '1':	 // 1 string to match.
                      return Intrinsic::hexagon_M2_mpyd_nac_lh_s1;	 // "exagon.M2.mpyd.nac.lh.s1"
                    }
                    break;
                  case 'l':	 // 2 strings to match.
                    if (memcmp(NameR.data()+21, ".s", 2))
                      break;
                    switch (NameR[23]) {
                    default: break;
                    case '0':	 // 1 string to match.
                      return Intrinsic::hexagon_M2_mpyd_nac_ll_s0;	 // "exagon.M2.mpyd.nac.ll.s0"
                    case '1':	 // 1 string to match.
                      return Intrinsic::hexagon_M2_mpyd_nac_ll_s1;	 // "exagon.M2.mpyd.nac.ll.s1"
                    }
                    break;
                  }
                  break;
                }
                break;
              case 'r':	 // 8 strings to match.
                if (memcmp(NameR.data()+16, "nd.", 3))
                  break;
                switch (NameR[19]) {
                default: break;
                case 'h':	 // 4 strings to match.
                  switch (NameR[20]) {
                  default: break;
                  case 'h':	 // 2 strings to match.
                    if (memcmp(NameR.data()+21, ".s", 2))
                      break;
                    switch (NameR[23]) {
                    default: break;
                    case '0':	 // 1 string to match.
                      return Intrinsic::hexagon_M2_mpyd_rnd_hh_s0;	 // "exagon.M2.mpyd.rnd.hh.s0"
                    case '1':	 // 1 string to match.
                      return Intrinsic::hexagon_M2_mpyd_rnd_hh_s1;	 // "exagon.M2.mpyd.rnd.hh.s1"
                    }
                    break;
                  case 'l':	 // 2 strings to match.
                    if (memcmp(NameR.data()+21, ".s", 2))
                      break;
                    switch (NameR[23]) {
                    default: break;
                    case '0':	 // 1 string to match.
                      return Intrinsic::hexagon_M2_mpyd_rnd_hl_s0;	 // "exagon.M2.mpyd.rnd.hl.s0"
                    case '1':	 // 1 string to match.
                      return Intrinsic::hexagon_M2_mpyd_rnd_hl_s1;	 // "exagon.M2.mpyd.rnd.hl.s1"
                    }
                    break;
                  }
                  break;
                case 'l':	 // 4 strings to match.
                  switch (NameR[20]) {
                  default: break;
                  case 'h':	 // 2 strings to match.
                    if (memcmp(NameR.data()+21, ".s", 2))
                      break;
                    switch (NameR[23]) {
                    default: break;
                    case '0':	 // 1 string to match.
                      return Intrinsic::hexagon_M2_mpyd_rnd_lh_s0;	 // "exagon.M2.mpyd.rnd.lh.s0"
                    case '1':	 // 1 string to match.
                      return Intrinsic::hexagon_M2_mpyd_rnd_lh_s1;	 // "exagon.M2.mpyd.rnd.lh.s1"
                    }
                    break;
                  case 'l':	 // 2 strings to match.
                    if (memcmp(NameR.data()+21, ".s", 2))
                      break;
                    switch (NameR[23]) {
                    default: break;
                    case '0':	 // 1 string to match.
                      return Intrinsic::hexagon_M2_mpyd_rnd_ll_s0;	 // "exagon.M2.mpyd.rnd.ll.s0"
                    case '1':	 // 1 string to match.
                      return Intrinsic::hexagon_M2_mpyd_rnd_ll_s1;	 // "exagon.M2.mpyd.rnd.ll.s1"
                    }
                    break;
                  }
                  break;
                }
                break;
              }
              break;
            case 'u':	 // 16 strings to match.
              if (NameR[14] != '.')
                break;
              switch (NameR[15]) {
              default: break;
              case 'a':	 // 8 strings to match.
                if (memcmp(NameR.data()+16, "cc.", 3))
                  break;
                switch (NameR[19]) {
                default: break;
                case 'h':	 // 4 strings to match.
                  switch (NameR[20]) {
                  default: break;
                  case 'h':	 // 2 strings to match.
                    if (memcmp(NameR.data()+21, ".s", 2))
                      break;
                    switch (NameR[23]) {
                    default: break;
                    case '0':	 // 1 string to match.
                      return Intrinsic::hexagon_M2_mpyu_acc_hh_s0;	 // "exagon.M2.mpyu.acc.hh.s0"
                    case '1':	 // 1 string to match.
                      return Intrinsic::hexagon_M2_mpyu_acc_hh_s1;	 // "exagon.M2.mpyu.acc.hh.s1"
                    }
                    break;
                  case 'l':	 // 2 strings to match.
                    if (memcmp(NameR.data()+21, ".s", 2))
                      break;
                    switch (NameR[23]) {
                    default: break;
                    case '0':	 // 1 string to match.
                      return Intrinsic::hexagon_M2_mpyu_acc_hl_s0;	 // "exagon.M2.mpyu.acc.hl.s0"
                    case '1':	 // 1 string to match.
                      return Intrinsic::hexagon_M2_mpyu_acc_hl_s1;	 // "exagon.M2.mpyu.acc.hl.s1"
                    }
                    break;
                  }
                  break;
                case 'l':	 // 4 strings to match.
                  switch (NameR[20]) {
                  default: break;
                  case 'h':	 // 2 strings to match.
                    if (memcmp(NameR.data()+21, ".s", 2))
                      break;
                    switch (NameR[23]) {
                    default: break;
                    case '0':	 // 1 string to match.
                      return Intrinsic::hexagon_M2_mpyu_acc_lh_s0;	 // "exagon.M2.mpyu.acc.lh.s0"
                    case '1':	 // 1 string to match.
                      return Intrinsic::hexagon_M2_mpyu_acc_lh_s1;	 // "exagon.M2.mpyu.acc.lh.s1"
                    }
                    break;
                  case 'l':	 // 2 strings to match.
                    if (memcmp(NameR.data()+21, ".s", 2))
                      break;
                    switch (NameR[23]) {
                    default: break;
                    case '0':	 // 1 string to match.
                      return Intrinsic::hexagon_M2_mpyu_acc_ll_s0;	 // "exagon.M2.mpyu.acc.ll.s0"
                    case '1':	 // 1 string to match.
                      return Intrinsic::hexagon_M2_mpyu_acc_ll_s1;	 // "exagon.M2.mpyu.acc.ll.s1"
                    }
                    break;
                  }
                  break;
                }
                break;
              case 'n':	 // 8 strings to match.
                if (memcmp(NameR.data()+16, "ac.", 3))
                  break;
                switch (NameR[19]) {
                default: break;
                case 'h':	 // 4 strings to match.
                  switch (NameR[20]) {
                  default: break;
                  case 'h':	 // 2 strings to match.
                    if (memcmp(NameR.data()+21, ".s", 2))
                      break;
                    switch (NameR[23]) {
                    default: break;
                    case '0':	 // 1 string to match.
                      return Intrinsic::hexagon_M2_mpyu_nac_hh_s0;	 // "exagon.M2.mpyu.nac.hh.s0"
                    case '1':	 // 1 string to match.
                      return Intrinsic::hexagon_M2_mpyu_nac_hh_s1;	 // "exagon.M2.mpyu.nac.hh.s1"
                    }
                    break;
                  case 'l':	 // 2 strings to match.
                    if (memcmp(NameR.data()+21, ".s", 2))
                      break;
                    switch (NameR[23]) {
                    default: break;
                    case '0':	 // 1 string to match.
                      return Intrinsic::hexagon_M2_mpyu_nac_hl_s0;	 // "exagon.M2.mpyu.nac.hl.s0"
                    case '1':	 // 1 string to match.
                      return Intrinsic::hexagon_M2_mpyu_nac_hl_s1;	 // "exagon.M2.mpyu.nac.hl.s1"
                    }
                    break;
                  }
                  break;
                case 'l':	 // 4 strings to match.
                  switch (NameR[20]) {
                  default: break;
                  case 'h':	 // 2 strings to match.
                    if (memcmp(NameR.data()+21, ".s", 2))
                      break;
                    switch (NameR[23]) {
                    default: break;
                    case '0':	 // 1 string to match.
                      return Intrinsic::hexagon_M2_mpyu_nac_lh_s0;	 // "exagon.M2.mpyu.nac.lh.s0"
                    case '1':	 // 1 string to match.
                      return Intrinsic::hexagon_M2_mpyu_nac_lh_s1;	 // "exagon.M2.mpyu.nac.lh.s1"
                    }
                    break;
                  case 'l':	 // 2 strings to match.
                    if (memcmp(NameR.data()+21, ".s", 2))
                      break;
                    switch (NameR[23]) {
                    default: break;
                    case '0':	 // 1 string to match.
                      return Intrinsic::hexagon_M2_mpyu_nac_ll_s0;	 // "exagon.M2.mpyu.nac.ll.s0"
                    case '1':	 // 1 string to match.
                      return Intrinsic::hexagon_M2_mpyu_nac_ll_s1;	 // "exagon.M2.mpyu.nac.ll.s1"
                    }
                    break;
                  }
                  break;
                }
                break;
              }
              break;
            }
            break;
          case 'v':	 // 7 strings to match.
            switch (NameR[11]) {
            default: break;
            case 'c':	 // 6 strings to match.
              if (NameR[12] != 'm')
                break;
              switch (NameR[13]) {
              default: break;
              case 'a':	 // 2 strings to match.
                if (memcmp(NameR.data()+14, "c.s0.sat.", 9))
                  break;
                switch (NameR[23]) {
                default: break;
                case 'i':	 // 1 string to match.
                  return Intrinsic::hexagon_M2_vcmac_s0_sat_i;	 // "exagon.M2.vcmac.s0.sat.i"
                case 'r':	 // 1 string to match.
                  return Intrinsic::hexagon_M2_vcmac_s0_sat_r;	 // "exagon.M2.vcmac.s0.sat.r"
                }
                break;
              case 'p':	 // 4 strings to match.
                if (memcmp(NameR.data()+14, "y.s", 3))
                  break;
                switch (NameR[17]) {
                default: break;
                case '0':	 // 2 strings to match.
                  if (memcmp(NameR.data()+18, ".sat.", 5))
                    break;
                  switch (NameR[23]) {
                  default: break;
                  case 'i':	 // 1 string to match.
                    return Intrinsic::hexagon_M2_vcmpy_s0_sat_i;	 // "exagon.M2.vcmpy.s0.sat.i"
                  case 'r':	 // 1 string to match.
                    return Intrinsic::hexagon_M2_vcmpy_s0_sat_r;	 // "exagon.M2.vcmpy.s0.sat.r"
                  }
                  break;
                case '1':	 // 2 strings to match.
                  if (memcmp(NameR.data()+18, ".sat.", 5))
                    break;
                  switch (NameR[23]) {
                  default: break;
                  case 'i':	 // 1 string to match.
                    return Intrinsic::hexagon_M2_vcmpy_s1_sat_i;	 // "exagon.M2.vcmpy.s1.sat.i"
                  case 'r':	 // 1 string to match.
                    return Intrinsic::hexagon_M2_vcmpy_s1_sat_r;	 // "exagon.M2.vcmpy.s1.sat.r"
                  }
                  break;
                }
                break;
              }
              break;
            case 'r':	 // 1 string to match.
              if (memcmp(NameR.data()+12, "cmpys.acc.s1", 12))
                break;
              return Intrinsic::hexagon_M2_vrcmpys_acc_s1;	 // "exagon.M2.vrcmpys.acc.s1"
            }
            break;
          }
          break;
        case '4':	 // 4 strings to match.
          if (memcmp(NameR.data()+9, ".vrmpy", 6))
            break;
          switch (NameR[15]) {
          default: break;
          case 'e':	 // 2 strings to match.
            if (memcmp(NameR.data()+16, "h.acc.s", 7))
              break;
            switch (NameR[23]) {
            default: break;
            case '0':	 // 1 string to match.
              return Intrinsic::hexagon_M4_vrmpyeh_acc_s0;	 // "exagon.M4.vrmpyeh.acc.s0"
            case '1':	 // 1 string to match.
              return Intrinsic::hexagon_M4_vrmpyeh_acc_s1;	 // "exagon.M4.vrmpyeh.acc.s1"
            }
            break;
          case 'o':	 // 2 strings to match.
            if (memcmp(NameR.data()+16, "h.acc.s", 7))
              break;
            switch (NameR[23]) {
            default: break;
            case '0':	 // 1 string to match.
              return Intrinsic::hexagon_M4_vrmpyoh_acc_s0;	 // "exagon.M4.vrmpyoh.acc.s0"
            case '1':	 // 1 string to match.
              return Intrinsic::hexagon_M4_vrmpyoh_acc_s1;	 // "exagon.M4.vrmpyoh.acc.s1"
            }
            break;
          }
          break;
        }
        break;
      case 'S':	 // 4 strings to match.
        if (memcmp(NameR.data()+8, "2.", 2))
          break;
        switch (NameR[10]) {
        default: break;
        case 'a':	 // 2 strings to match.
          if (memcmp(NameR.data()+11, "sr.", 3))
            break;
          switch (NameR[14]) {
          default: break;
          case 'i':	 // 1 string to match.
            if (memcmp(NameR.data()+15, ".svw.trun", 9))
              break;
            return Intrinsic::hexagon_S2_asr_i_svw_trun;	 // "exagon.S2.asr.i.svw.trun"
          case 'r':	 // 1 string to match.
            if (memcmp(NameR.data()+15, ".svw.trun", 9))
              break;
            return Intrinsic::hexagon_S2_asr_r_svw_trun;	 // "exagon.S2.asr.r.svw.trun"
          }
          break;
        case 'v':	 // 2 strings to match.
          if (memcmp(NameR.data()+11, "sat", 3))
            break;
          switch (NameR[14]) {
          default: break;
          case 'h':	 // 1 string to match.
            if (memcmp(NameR.data()+15, "ub.nopack", 9))
              break;
            return Intrinsic::hexagon_S2_vsathub_nopack;	 // "exagon.S2.vsathub.nopack"
          case 'w':	 // 1 string to match.
            if (memcmp(NameR.data()+15, "uh.nopack", 9))
              break;
            return Intrinsic::hexagon_S2_vsatwuh_nopack;	 // "exagon.S2.vsatwuh.nopack"
          }
          break;
        }
        break;
      }
      break;
    case 25:	 // 33 strings to match.
      if (memcmp(NameR.data()+0, "exagon.", 7))
        break;
      switch (NameR[7]) {
      default: break;
      case 'A':	 // 12 strings to match.
        if (memcmp(NameR.data()+8, "2.", 2))
          break;
        switch (NameR[10]) {
        default: break;
        case 'a':	 // 6 strings to match.
          if (memcmp(NameR.data()+11, "ddh.", 4))
            break;
          switch (NameR[15]) {
          default: break;
          case 'h':	 // 4 strings to match.
            if (memcmp(NameR.data()+16, "16.sat.", 7))
              break;
            switch (NameR[23]) {
            default: break;
            case 'h':	 // 2 strings to match.
              switch (NameR[24]) {
              default: break;
              case 'h':	 // 1 string to match.
                return Intrinsic::hexagon_A2_addh_h16_sat_hh;	 // "exagon.A2.addh.h16.sat.hh"
              case 'l':	 // 1 string to match.
                return Intrinsic::hexagon_A2_addh_h16_sat_hl;	 // "exagon.A2.addh.h16.sat.hl"
              }
              break;
            case 'l':	 // 2 strings to match.
              switch (NameR[24]) {
              default: break;
              case 'h':	 // 1 string to match.
                return Intrinsic::hexagon_A2_addh_h16_sat_lh;	 // "exagon.A2.addh.h16.sat.lh"
              case 'l':	 // 1 string to match.
                return Intrinsic::hexagon_A2_addh_h16_sat_ll;	 // "exagon.A2.addh.h16.sat.ll"
              }
              break;
            }
            break;
          case 'l':	 // 2 strings to match.
            if (memcmp(NameR.data()+16, "16.sat.", 7))
              break;
            switch (NameR[23]) {
            default: break;
            case 'h':	 // 1 string to match.
              if (NameR[24] != 'l')
                break;
              return Intrinsic::hexagon_A2_addh_l16_sat_hl;	 // "exagon.A2.addh.l16.sat.hl"
            case 'l':	 // 1 string to match.
              if (NameR[24] != 'l')
                break;
              return Intrinsic::hexagon_A2_addh_l16_sat_ll;	 // "exagon.A2.addh.l16.sat.ll"
            }
            break;
          }
          break;
        case 's':	 // 6 strings to match.
          if (memcmp(NameR.data()+11, "ubh.", 4))
            break;
          switch (NameR[15]) {
          default: break;
          case 'h':	 // 4 strings to match.
            if (memcmp(NameR.data()+16, "16.sat.", 7))
              break;
            switch (NameR[23]) {
            default: break;
            case 'h':	 // 2 strings to match.
              switch (NameR[24]) {
              default: break;
              case 'h':	 // 1 string to match.
                return Intrinsic::hexagon_A2_subh_h16_sat_hh;	 // "exagon.A2.subh.h16.sat.hh"
              case 'l':	 // 1 string to match.
                return Intrinsic::hexagon_A2_subh_h16_sat_hl;	 // "exagon.A2.subh.h16.sat.hl"
              }
              break;
            case 'l':	 // 2 strings to match.
              switch (NameR[24]) {
              default: break;
              case 'h':	 // 1 string to match.
                return Intrinsic::hexagon_A2_subh_h16_sat_lh;	 // "exagon.A2.subh.h16.sat.lh"
              case 'l':	 // 1 string to match.
                return Intrinsic::hexagon_A2_subh_h16_sat_ll;	 // "exagon.A2.subh.h16.sat.ll"
              }
              break;
            }
            break;
          case 'l':	 // 2 strings to match.
            if (memcmp(NameR.data()+16, "16.sat.", 7))
              break;
            switch (NameR[23]) {
            default: break;
            case 'h':	 // 1 string to match.
              if (NameR[24] != 'l')
                break;
              return Intrinsic::hexagon_A2_subh_l16_sat_hl;	 // "exagon.A2.subh.l16.sat.hl"
            case 'l':	 // 1 string to match.
              if (NameR[24] != 'l')
                break;
              return Intrinsic::hexagon_A2_subh_l16_sat_ll;	 // "exagon.A2.subh.l16.sat.ll"
            }
            break;
          }
          break;
        }
        break;
      case 'C':	 // 1 string to match.
        if (memcmp(NameR.data()+8, "4.fastcorner9.not", 17))
          break;
        return Intrinsic::hexagon_C4_fastcorner9_not;	 // "exagon.C4.fastcorner9.not"
      case 'F':	 // 4 strings to match.
        if (memcmp(NameR.data()+8, "2.conv.", 7))
          break;
        switch (NameR[15]) {
        default: break;
        case 'd':	 // 2 strings to match.
          if (memcmp(NameR.data()+16, "f2u", 3))
            break;
          switch (NameR[19]) {
          default: break;
          case 'd':	 // 1 string to match.
            if (memcmp(NameR.data()+20, ".chop", 5))
              break;
            return Intrinsic::hexagon_F2_conv_df2ud_chop;	 // "exagon.F2.conv.df2ud.chop"
          case 'w':	 // 1 string to match.
            if (memcmp(NameR.data()+20, ".chop", 5))
              break;
            return Intrinsic::hexagon_F2_conv_df2uw_chop;	 // "exagon.F2.conv.df2uw.chop"
          }
          break;
        case 's':	 // 2 strings to match.
          if (memcmp(NameR.data()+16, "f2u", 3))
            break;
          switch (NameR[19]) {
          default: break;
          case 'd':	 // 1 string to match.
            if (memcmp(NameR.data()+20, ".chop", 5))
              break;
            return Intrinsic::hexagon_F2_conv_sf2ud_chop;	 // "exagon.F2.conv.sf2ud.chop"
          case 'w':	 // 1 string to match.
            if (memcmp(NameR.data()+20, ".chop", 5))
              break;
            return Intrinsic::hexagon_F2_conv_sf2uw_chop;	 // "exagon.F2.conv.sf2uw.chop"
          }
          break;
        }
        break;
      case 'M':	 // 16 strings to match.
        if (memcmp(NameR.data()+8, "2.mpyud.", 8))
          break;
        switch (NameR[16]) {
        default: break;
        case 'a':	 // 8 strings to match.
          if (memcmp(NameR.data()+17, "cc.", 3))
            break;
          switch (NameR[20]) {
          default: break;
          case 'h':	 // 4 strings to match.
            switch (NameR[21]) {
            default: break;
            case 'h':	 // 2 strings to match.
              if (memcmp(NameR.data()+22, ".s", 2))
                break;
              switch (NameR[24]) {
              default: break;
              case '0':	 // 1 string to match.
                return Intrinsic::hexagon_M2_mpyud_acc_hh_s0;	 // "exagon.M2.mpyud.acc.hh.s0"
              case '1':	 // 1 string to match.
                return Intrinsic::hexagon_M2_mpyud_acc_hh_s1;	 // "exagon.M2.mpyud.acc.hh.s1"
              }
              break;
            case 'l':	 // 2 strings to match.
              if (memcmp(NameR.data()+22, ".s", 2))
                break;
              switch (NameR[24]) {
              default: break;
              case '0':	 // 1 string to match.
                return Intrinsic::hexagon_M2_mpyud_acc_hl_s0;	 // "exagon.M2.mpyud.acc.hl.s0"
              case '1':	 // 1 string to match.
                return Intrinsic::hexagon_M2_mpyud_acc_hl_s1;	 // "exagon.M2.mpyud.acc.hl.s1"
              }
              break;
            }
            break;
          case 'l':	 // 4 strings to match.
            switch (NameR[21]) {
            default: break;
            case 'h':	 // 2 strings to match.
              if (memcmp(NameR.data()+22, ".s", 2))
                break;
              switch (NameR[24]) {
              default: break;
              case '0':	 // 1 string to match.
                return Intrinsic::hexagon_M2_mpyud_acc_lh_s0;	 // "exagon.M2.mpyud.acc.lh.s0"
              case '1':	 // 1 string to match.
                return Intrinsic::hexagon_M2_mpyud_acc_lh_s1;	 // "exagon.M2.mpyud.acc.lh.s1"
              }
              break;
            case 'l':	 // 2 strings to match.
              if (memcmp(NameR.data()+22, ".s", 2))
                break;
              switch (NameR[24]) {
              default: break;
              case '0':	 // 1 string to match.
                return Intrinsic::hexagon_M2_mpyud_acc_ll_s0;	 // "exagon.M2.mpyud.acc.ll.s0"
              case '1':	 // 1 string to match.
                return Intrinsic::hexagon_M2_mpyud_acc_ll_s1;	 // "exagon.M2.mpyud.acc.ll.s1"
              }
              break;
            }
            break;
          }
          break;
        case 'n':	 // 8 strings to match.
          if (memcmp(NameR.data()+17, "ac.", 3))
            break;
          switch (NameR[20]) {
          default: break;
          case 'h':	 // 4 strings to match.
            switch (NameR[21]) {
            default: break;
            case 'h':	 // 2 strings to match.
              if (memcmp(NameR.data()+22, ".s", 2))
                break;
              switch (NameR[24]) {
              default: break;
              case '0':	 // 1 string to match.
                return Intrinsic::hexagon_M2_mpyud_nac_hh_s0;	 // "exagon.M2.mpyud.nac.hh.s0"
              case '1':	 // 1 string to match.
                return Intrinsic::hexagon_M2_mpyud_nac_hh_s1;	 // "exagon.M2.mpyud.nac.hh.s1"
              }
              break;
            case 'l':	 // 2 strings to match.
              if (memcmp(NameR.data()+22, ".s", 2))
                break;
              switch (NameR[24]) {
              default: break;
              case '0':	 // 1 string to match.
                return Intrinsic::hexagon_M2_mpyud_nac_hl_s0;	 // "exagon.M2.mpyud.nac.hl.s0"
              case '1':	 // 1 string to match.
                return Intrinsic::hexagon_M2_mpyud_nac_hl_s1;	 // "exagon.M2.mpyud.nac.hl.s1"
              }
              break;
            }
            break;
          case 'l':	 // 4 strings to match.
            switch (NameR[21]) {
            default: break;
            case 'h':	 // 2 strings to match.
              if (memcmp(NameR.data()+22, ".s", 2))
                break;
              switch (NameR[24]) {
              default: break;
              case '0':	 // 1 string to match.
                return Intrinsic::hexagon_M2_mpyud_nac_lh_s0;	 // "exagon.M2.mpyud.nac.lh.s0"
              case '1':	 // 1 string to match.
                return Intrinsic::hexagon_M2_mpyud_nac_lh_s1;	 // "exagon.M2.mpyud.nac.lh.s1"
              }
              break;
            case 'l':	 // 2 strings to match.
              if (memcmp(NameR.data()+22, ".s", 2))
                break;
              switch (NameR[24]) {
              default: break;
              case '0':	 // 1 string to match.
                return Intrinsic::hexagon_M2_mpyud_nac_ll_s0;	 // "exagon.M2.mpyud.nac.ll.s0"
              case '1':	 // 1 string to match.
                return Intrinsic::hexagon_M2_mpyud_nac_ll_s1;	 // "exagon.M2.mpyud.nac.ll.s1"
              }
              break;
            }
            break;
          }
          break;
        }
        break;
      }
      break;
    case 27:	 // 24 strings to match.
      if (memcmp(NameR.data()+0, "exagon.M2.mpy.", 14))
        break;
      switch (NameR[14]) {
      default: break;
      case 'a':	 // 8 strings to match.
        if (memcmp(NameR.data()+15, "cc.sat.", 7))
          break;
        switch (NameR[22]) {
        default: break;
        case 'h':	 // 4 strings to match.
          switch (NameR[23]) {
          default: break;
          case 'h':	 // 2 strings to match.
            if (memcmp(NameR.data()+24, ".s", 2))
              break;
            switch (NameR[26]) {
            default: break;
            case '0':	 // 1 string to match.
              return Intrinsic::hexagon_M2_mpy_acc_sat_hh_s0;	 // "exagon.M2.mpy.acc.sat.hh.s0"
            case '1':	 // 1 string to match.
              return Intrinsic::hexagon_M2_mpy_acc_sat_hh_s1;	 // "exagon.M2.mpy.acc.sat.hh.s1"
            }
            break;
          case 'l':	 // 2 strings to match.
            if (memcmp(NameR.data()+24, ".s", 2))
              break;
            switch (NameR[26]) {
            default: break;
            case '0':	 // 1 string to match.
              return Intrinsic::hexagon_M2_mpy_acc_sat_hl_s0;	 // "exagon.M2.mpy.acc.sat.hl.s0"
            case '1':	 // 1 string to match.
              return Intrinsic::hexagon_M2_mpy_acc_sat_hl_s1;	 // "exagon.M2.mpy.acc.sat.hl.s1"
            }
            break;
          }
          break;
        case 'l':	 // 4 strings to match.
          switch (NameR[23]) {
          default: break;
          case 'h':	 // 2 strings to match.
            if (memcmp(NameR.data()+24, ".s", 2))
              break;
            switch (NameR[26]) {
            default: break;
            case '0':	 // 1 string to match.
              return Intrinsic::hexagon_M2_mpy_acc_sat_lh_s0;	 // "exagon.M2.mpy.acc.sat.lh.s0"
            case '1':	 // 1 string to match.
              return Intrinsic::hexagon_M2_mpy_acc_sat_lh_s1;	 // "exagon.M2.mpy.acc.sat.lh.s1"
            }
            break;
          case 'l':	 // 2 strings to match.
            if (memcmp(NameR.data()+24, ".s", 2))
              break;
            switch (NameR[26]) {
            default: break;
            case '0':	 // 1 string to match.
              return Intrinsic::hexagon_M2_mpy_acc_sat_ll_s0;	 // "exagon.M2.mpy.acc.sat.ll.s0"
            case '1':	 // 1 string to match.
              return Intrinsic::hexagon_M2_mpy_acc_sat_ll_s1;	 // "exagon.M2.mpy.acc.sat.ll.s1"
            }
            break;
          }
          break;
        }
        break;
      case 'n':	 // 8 strings to match.
        if (memcmp(NameR.data()+15, "ac.sat.", 7))
          break;
        switch (NameR[22]) {
        default: break;
        case 'h':	 // 4 strings to match.
          switch (NameR[23]) {
          default: break;
          case 'h':	 // 2 strings to match.
            if (memcmp(NameR.data()+24, ".s", 2))
              break;
            switch (NameR[26]) {
            default: break;
            case '0':	 // 1 string to match.
              return Intrinsic::hexagon_M2_mpy_nac_sat_hh_s0;	 // "exagon.M2.mpy.nac.sat.hh.s0"
            case '1':	 // 1 string to match.
              return Intrinsic::hexagon_M2_mpy_nac_sat_hh_s1;	 // "exagon.M2.mpy.nac.sat.hh.s1"
            }
            break;
          case 'l':	 // 2 strings to match.
            if (memcmp(NameR.data()+24, ".s", 2))
              break;
            switch (NameR[26]) {
            default: break;
            case '0':	 // 1 string to match.
              return Intrinsic::hexagon_M2_mpy_nac_sat_hl_s0;	 // "exagon.M2.mpy.nac.sat.hl.s0"
            case '1':	 // 1 string to match.
              return Intrinsic::hexagon_M2_mpy_nac_sat_hl_s1;	 // "exagon.M2.mpy.nac.sat.hl.s1"
            }
            break;
          }
          break;
        case 'l':	 // 4 strings to match.
          switch (NameR[23]) {
          default: break;
          case 'h':	 // 2 strings to match.
            if (memcmp(NameR.data()+24, ".s", 2))
              break;
            switch (NameR[26]) {
            default: break;
            case '0':	 // 1 string to match.
              return Intrinsic::hexagon_M2_mpy_nac_sat_lh_s0;	 // "exagon.M2.mpy.nac.sat.lh.s0"
            case '1':	 // 1 string to match.
              return Intrinsic::hexagon_M2_mpy_nac_sat_lh_s1;	 // "exagon.M2.mpy.nac.sat.lh.s1"
            }
            break;
          case 'l':	 // 2 strings to match.
            if (memcmp(NameR.data()+24, ".s", 2))
              break;
            switch (NameR[26]) {
            default: break;
            case '0':	 // 1 string to match.
              return Intrinsic::hexagon_M2_mpy_nac_sat_ll_s0;	 // "exagon.M2.mpy.nac.sat.ll.s0"
            case '1':	 // 1 string to match.
              return Intrinsic::hexagon_M2_mpy_nac_sat_ll_s1;	 // "exagon.M2.mpy.nac.sat.ll.s1"
            }
            break;
          }
          break;
        }
        break;
      case 's':	 // 8 strings to match.
        if (memcmp(NameR.data()+15, "at.rnd.", 7))
          break;
        switch (NameR[22]) {
        default: break;
        case 'h':	 // 4 strings to match.
          switch (NameR[23]) {
          default: break;
          case 'h':	 // 2 strings to match.
            if (memcmp(NameR.data()+24, ".s", 2))
              break;
            switch (NameR[26]) {
            default: break;
            case '0':	 // 1 string to match.
              return Intrinsic::hexagon_M2_mpy_sat_rnd_hh_s0;	 // "exagon.M2.mpy.sat.rnd.hh.s0"
            case '1':	 // 1 string to match.
              return Intrinsic::hexagon_M2_mpy_sat_rnd_hh_s1;	 // "exagon.M2.mpy.sat.rnd.hh.s1"
            }
            break;
          case 'l':	 // 2 strings to match.
            if (memcmp(NameR.data()+24, ".s", 2))
              break;
            switch (NameR[26]) {
            default: break;
            case '0':	 // 1 string to match.
              return Intrinsic::hexagon_M2_mpy_sat_rnd_hl_s0;	 // "exagon.M2.mpy.sat.rnd.hl.s0"
            case '1':	 // 1 string to match.
              return Intrinsic::hexagon_M2_mpy_sat_rnd_hl_s1;	 // "exagon.M2.mpy.sat.rnd.hl.s1"
            }
            break;
          }
          break;
        case 'l':	 // 4 strings to match.
          switch (NameR[23]) {
          default: break;
          case 'h':	 // 2 strings to match.
            if (memcmp(NameR.data()+24, ".s", 2))
              break;
            switch (NameR[26]) {
            default: break;
            case '0':	 // 1 string to match.
              return Intrinsic::hexagon_M2_mpy_sat_rnd_lh_s0;	 // "exagon.M2.mpy.sat.rnd.lh.s0"
            case '1':	 // 1 string to match.
              return Intrinsic::hexagon_M2_mpy_sat_rnd_lh_s1;	 // "exagon.M2.mpy.sat.rnd.lh.s1"
            }
            break;
          case 'l':	 // 2 strings to match.
            if (memcmp(NameR.data()+24, ".s", 2))
              break;
            switch (NameR[26]) {
            default: break;
            case '0':	 // 1 string to match.
              return Intrinsic::hexagon_M2_mpy_sat_rnd_ll_s0;	 // "exagon.M2.mpy.sat.rnd.ll.s0"
            case '1':	 // 1 string to match.
              return Intrinsic::hexagon_M2_mpy_sat_rnd_ll_s1;	 // "exagon.M2.mpy.sat.rnd.ll.s1"
            }
            break;
          }
          break;
        }
        break;
      }
      break;
    case 29:	 // 1 string to match.
      if (memcmp(NameR.data()+0, "exagon.S5.vasrhrnd.goodsyntax", 29))
        break;
      return Intrinsic::hexagon_S5_vasrhrnd_goodsyntax;	 // "exagon.S5.vasrhrnd.goodsyntax"
    case 30:	 // 4 strings to match.
      if (memcmp(NameR.data()+0, "exagon.S2.tableidx", 18))
        break;
      switch (NameR[18]) {
      default: break;
      case 'b':	 // 1 string to match.
        if (memcmp(NameR.data()+19, ".goodsyntax", 11))
          break;
        return Intrinsic::hexagon_S2_tableidxb_goodsyntax;	 // "exagon.S2.tableidxb.goodsyntax"
      case 'd':	 // 1 string to match.
        if (memcmp(NameR.data()+19, ".goodsyntax", 11))
          break;
        return Intrinsic::hexagon_S2_tableidxd_goodsyntax;	 // "exagon.S2.tableidxd.goodsyntax"
      case 'h':	 // 1 string to match.
        if (memcmp(NameR.data()+19, ".goodsyntax", 11))
          break;
        return Intrinsic::hexagon_S2_tableidxh_goodsyntax;	 // "exagon.S2.tableidxh.goodsyntax"
      case 'w':	 // 1 string to match.
        if (memcmp(NameR.data()+19, ".goodsyntax", 11))
          break;
        return Intrinsic::hexagon_S2_tableidxw_goodsyntax;	 // "exagon.S2.tableidxw.goodsyntax"
      }
      break;
    case 32:	 // 2 strings to match.
      if (memcmp(NameR.data()+0, "exagon.S2.asr.i.", 16))
        break;
      switch (NameR[16]) {
      default: break;
      case 'p':	 // 1 string to match.
        if (memcmp(NameR.data()+17, ".rnd.goodsyntax", 15))
          break;
        return Intrinsic::hexagon_S2_asr_i_p_rnd_goodsyntax;	 // "exagon.S2.asr.i.p.rnd.goodsyntax"
      case 'r':	 // 1 string to match.
        if (memcmp(NameR.data()+17, ".rnd.goodsyntax", 15))
          break;
        return Intrinsic::hexagon_S2_asr_i_r_rnd_goodsyntax;	 // "exagon.S2.asr.i.r.rnd.goodsyntax"
      }
      break;
    case 35:	 // 1 string to match.
      if (memcmp(NameR.data()+0, "exagon.S5.asrhub.rnd.sat.goodsyntax", 35))
        break;
      return Intrinsic::hexagon_S5_asrhub_rnd_sat_goodsyntax;	 // "exagon.S5.asrhub.rnd.sat.goodsyntax"
    }
    break;  // end of 'h' case.
  case 'i':
    switch (NameR.size()) {
    default: break;
    case 12:	 // 1 string to match.
      if (memcmp(NameR.data()+0, "nvariant.end", 12))
        break;
      return Intrinsic::invariant_end;	 // "nvariant.end"
    case 14:	 // 2 strings to match.
      if (NameR[0] != 'n')
        break;
      switch (NameR[1]) {
      default: break;
      case 'i':	 // 1 string to match.
        if (memcmp(NameR.data()+2, "t.trampoline", 12))
          break;
        return Intrinsic::init_trampoline;	 // "nit.trampoline"
      case 'v':	 // 1 string to match.
        if (memcmp(NameR.data()+2, "ariant.start", 12))
          break;
        return Intrinsic::invariant_start;	 // "nvariant.start"
      }
      break;
    }
    break;  // end of 'i' case.
  case 'l':
    if (NameR.startswith("og.")) return Intrinsic::log;
    if (NameR.startswith("og10.")) return Intrinsic::log10;
    if (NameR.startswith("og2.")) return Intrinsic::log2;
    switch (NameR.size()) {
    default: break;
    case 6:	 // 1 string to match.
      if (memcmp(NameR.data()+0, "ongjmp", 6))
        break;
      return Intrinsic::longjmp;	 // "ongjmp"
    case 11:	 // 1 string to match.
      if (memcmp(NameR.data()+0, "ifetime.end", 11))
        break;
      return Intrinsic::lifetime_end;	 // "ifetime.end"
    case 13:	 // 1 string to match.
      if (memcmp(NameR.data()+0, "ifetime.start", 13))
        break;
      return Intrinsic::lifetime_start;	 // "ifetime.start"
    }
    break;  // end of 'l' case.
  case 'm':
    if (NameR.startswith("emcpy.")) return Intrinsic::memcpy;
    if (NameR.startswith("emmove.")) return Intrinsic::memmove;
    if (NameR.startswith("emset.")) return Intrinsic::memset;
    switch (NameR.size()) {
    default: break;
    case 7:	 // 2 strings to match.
      if (memcmp(NameR.data()+0, "ips.l", 5))
        break;
      switch (NameR[5]) {
      default: break;
      case 'h':	 // 1 string to match.
        if (NameR[6] != 'x')
          break;
        return Intrinsic::mips_lhx;	 // "ips.lhx"
      case 'w':	 // 1 string to match.
        if (NameR[6] != 'x')
          break;
        return Intrinsic::mips_lwx;	 // "ips.lwx"
      }
      break;
    case 8:	 // 6 strings to match.
      if (memcmp(NameR.data()+0, "ips.", 4))
        break;
      switch (NameR[4]) {
      default: break;
      case 'e':	 // 1 string to match.
        if (memcmp(NameR.data()+5, "xtp", 3))
          break;
        return Intrinsic::mips_extp;	 // "ips.extp"
      case 'i':	 // 1 string to match.
        if (memcmp(NameR.data()+5, "nsv", 3))
          break;
        return Intrinsic::mips_insv;	 // "ips.insv"
      case 'l':	 // 1 string to match.
        if (memcmp(NameR.data()+5, "bux", 3))
          break;
        return Intrinsic::mips_lbux;	 // "ips.lbux"
      case 'm':	 // 3 strings to match.
        switch (NameR[5]) {
        default: break;
        case 'a':	 // 1 string to match.
          if (memcmp(NameR.data()+6, "dd", 2))
            break;
          return Intrinsic::mips_madd;	 // "ips.madd"
        case 's':	 // 1 string to match.
          if (memcmp(NameR.data()+6, "ub", 2))
            break;
          return Intrinsic::mips_msub;	 // "ips.msub"
        case 'u':	 // 1 string to match.
          if (memcmp(NameR.data()+6, "lt", 2))
            break;
          return Intrinsic::mips_mult;	 // "ips.mult"
        }
        break;
      }
      break;
    case 9:	 // 8 strings to match.
      if (memcmp(NameR.data()+0, "ips.", 4))
        break;
      switch (NameR[4]) {
      default: break;
      case 'a':	 // 2 strings to match.
        if (memcmp(NameR.data()+5, "dd", 2))
          break;
        switch (NameR[7]) {
        default: break;
        case 's':	 // 1 string to match.
          if (NameR[8] != 'c')
            break;
          return Intrinsic::mips_addsc;	 // "ips.addsc"
        case 'w':	 // 1 string to match.
          if (NameR[8] != 'c')
            break;
          return Intrinsic::mips_addwc;	 // "ips.addwc"
        }
        break;
      case 'm':	 // 3 strings to match.
        switch (NameR[5]) {
        default: break;
        case 'a':	 // 1 string to match.
          if (memcmp(NameR.data()+6, "ddu", 3))
            break;
          return Intrinsic::mips_maddu;	 // "ips.maddu"
        case 's':	 // 1 string to match.
          if (memcmp(NameR.data()+6, "ubu", 3))
            break;
          return Intrinsic::mips_msubu;	 // "ips.msubu"
        case 'u':	 // 1 string to match.
          if (memcmp(NameR.data()+6, "ltu", 3))
            break;
          return Intrinsic::mips_multu;	 // "ips.multu"
        }
        break;
      case 'r':	 // 1 string to match.
        if (memcmp(NameR.data()+5, "ddsp", 4))
          break;
        return Intrinsic::mips_rddsp;	 // "ips.rddsp"
      case 's':	 // 1 string to match.
        if (memcmp(NameR.data()+5, "hilo", 4))
          break;
        return Intrinsic::mips_shilo;	 // "ips.shilo"
      case 'w':	 // 1 string to match.
        if (memcmp(NameR.data()+5, "rdsp", 4))
          break;
        return Intrinsic::mips_wrdsp;	 // "ips.wrdsp"
      }
      break;
    case 10:	 // 8 strings to match.
      if (memcmp(NameR.data()+0, "ips.", 4))
        break;
      switch (NameR[4]) {
      default: break;
      case 'a':	 // 1 string to match.
        if (memcmp(NameR.data()+5, "ppend", 5))
          break;
        return Intrinsic::mips_append;	 // "ips.append"
      case 'b':	 // 2 strings to match.
        switch (NameR[5]) {
        default: break;
        case 'a':	 // 1 string to match.
          if (memcmp(NameR.data()+6, "lign", 4))
            break;
          return Intrinsic::mips_balign;	 // "ips.balign"
        case 'i':	 // 1 string to match.
          if (memcmp(NameR.data()+6, "trev", 4))
            break;
          return Intrinsic::mips_bitrev;	 // "ips.bitrev"
        }
        break;
      case 'e':	 // 2 strings to match.
        if (memcmp(NameR.data()+5, "xt", 2))
          break;
        switch (NameR[7]) {
        default: break;
        case 'p':	 // 1 string to match.
          if (memcmp(NameR.data()+8, "dp", 2))
            break;
          return Intrinsic::mips_extpdp;	 // "ips.extpdp"
        case 'r':	 // 1 string to match.
          if (memcmp(NameR.data()+8, ".w", 2))
            break;
          return Intrinsic::mips_extr_w;	 // "ips.extr.w"
        }
        break;
      case 'm':	 // 3 strings to match.
        switch (NameR[5]) {
        default: break;
        case 'o':	 // 1 string to match.
          if (memcmp(NameR.data()+6, "dsub", 4))
            break;
          return Intrinsic::mips_modsub;	 // "ips.modsub"
        case 't':	 // 1 string to match.
          if (memcmp(NameR.data()+6, "hlip", 4))
            break;
          return Intrinsic::mips_mthlip;	 // "ips.mthlip"
        case 'u':	 // 1 string to match.
          if (memcmp(NameR.data()+6, "l.ph", 4))
            break;
          return Intrinsic::mips_mul_ph;	 // "ips.mul.ph"
        }
        break;
      }
      break;
    case 11:	 // 19 strings to match.
      if (memcmp(NameR.data()+0, "ips.", 4))
        break;
      switch (NameR[4]) {
      default: break;
      case 'a':	 // 4 strings to match.
        if (memcmp(NameR.data()+5, "dd", 2))
          break;
        switch (NameR[7]) {
        default: break;
        case 'q':	 // 2 strings to match.
          switch (NameR[8]) {
          default: break;
          case '.':	 // 1 string to match.
            if (memcmp(NameR.data()+9, "ph", 2))
              break;
            return Intrinsic::mips_addq_ph;	 // "ips.addq.ph"
          case 'h':	 // 1 string to match.
            if (memcmp(NameR.data()+9, ".w", 2))
              break;
            return Intrinsic::mips_addqh_w;	 // "ips.addqh.w"
          }
          break;
        case 'u':	 // 2 strings to match.
          if (NameR[8] != '.')
            break;
          switch (NameR[9]) {
          default: break;
          case 'p':	 // 1 string to match.
            if (NameR[10] != 'h')
              break;
            return Intrinsic::mips_addu_ph;	 // "ips.addu.ph"
          case 'q':	 // 1 string to match.
            if (NameR[10] != 'b')
              break;
            return Intrinsic::mips_addu_qb;	 // "ips.addu.qb"
          }
          break;
        }
        break;
      case 'p':	 // 3 strings to match.
        switch (NameR[5]) {
        default: break;
        case 'i':	 // 2 strings to match.
          if (memcmp(NameR.data()+6, "ck.", 3))
            break;
          switch (NameR[9]) {
          default: break;
          case 'p':	 // 1 string to match.
            if (NameR[10] != 'h')
              break;
            return Intrinsic::mips_pick_ph;	 // "ips.pick.ph"
          case 'q':	 // 1 string to match.
            if (NameR[10] != 'b')
              break;
            return Intrinsic::mips_pick_qb;	 // "ips.pick.qb"
          }
          break;
        case 'r':	 // 1 string to match.
          if (memcmp(NameR.data()+6, "epend", 5))
            break;
          return Intrinsic::mips_prepend;	 // "ips.prepend"
        }
        break;
      case 'r':	 // 2 strings to match.
        if (memcmp(NameR.data()+5, "epl.", 4))
          break;
        switch (NameR[9]) {
        default: break;
        case 'p':	 // 1 string to match.
          if (NameR[10] != 'h')
            break;
          return Intrinsic::mips_repl_ph;	 // "ips.repl.ph"
        case 'q':	 // 1 string to match.
          if (NameR[10] != 'b')
            break;
          return Intrinsic::mips_repl_qb;	 // "ips.repl.qb"
        }
        break;
      case 's':	 // 10 strings to match.
        switch (NameR[5]) {
        default: break;
        case 'h':	 // 6 strings to match.
          switch (NameR[6]) {
          default: break;
          case 'l':	 // 2 strings to match.
            if (memcmp(NameR.data()+7, "l.", 2))
              break;
            switch (NameR[9]) {
            default: break;
            case 'p':	 // 1 string to match.
              if (NameR[10] != 'h')
                break;
              return Intrinsic::mips_shll_ph;	 // "ips.shll.ph"
            case 'q':	 // 1 string to match.
              if (NameR[10] != 'b')
                break;
              return Intrinsic::mips_shll_qb;	 // "ips.shll.qb"
            }
            break;
          case 'r':	 // 4 strings to match.
            switch (NameR[7]) {
            default: break;
            case 'a':	 // 2 strings to match.
              if (NameR[8] != '.')
                break;
              switch (NameR[9]) {
              default: break;
              case 'p':	 // 1 string to match.
                if (NameR[10] != 'h')
                  break;
                return Intrinsic::mips_shra_ph;	 // "ips.shra.ph"
              case 'q':	 // 1 string to match.
                if (NameR[10] != 'b')
                  break;
                return Intrinsic::mips_shra_qb;	 // "ips.shra.qb"
              }
              break;
            case 'l':	 // 2 strings to match.
              if (NameR[8] != '.')
                break;
              switch (NameR[9]) {
              default: break;
              case 'p':	 // 1 string to match.
                if (NameR[10] != 'h')
                  break;
                return Intrinsic::mips_shrl_ph;	 // "ips.shrl.ph"
              case 'q':	 // 1 string to match.
                if (NameR[10] != 'b')
                  break;
                return Intrinsic::mips_shrl_qb;	 // "ips.shrl.qb"
              }
              break;
            }
            break;
          }
          break;
        case 'u':	 // 4 strings to match.
          if (NameR[6] != 'b')
            break;
          switch (NameR[7]) {
          default: break;
          case 'q':	 // 2 strings to match.
            switch (NameR[8]) {
            default: break;
            case '.':	 // 1 string to match.
              if (memcmp(NameR.data()+9, "ph", 2))
                break;
              return Intrinsic::mips_subq_ph;	 // "ips.subq.ph"
            case 'h':	 // 1 string to match.
              if (memcmp(NameR.data()+9, ".w", 2))
                break;
              return Intrinsic::mips_subqh_w;	 // "ips.subqh.w"
            }
            break;
          case 'u':	 // 2 strings to match.
            if (NameR[8] != '.')
              break;
            switch (NameR[9]) {
            default: break;
            case 'p':	 // 1 string to match.
              if (NameR[10] != 'h')
                break;
              return Intrinsic::mips_subu_ph;	 // "ips.subu.ph"
            case 'q':	 // 1 string to match.
              if (NameR[10] != 'b')
                break;
              return Intrinsic::mips_subu_qb;	 // "ips.subu.qb"
            }
            break;
          }
          break;
        }
        break;
      }
      break;
    case 12:	 // 16 strings to match.
      if (memcmp(NameR.data()+0, "ips.", 4))
        break;
      switch (NameR[4]) {
      default: break;
      case 'a':	 // 4 strings to match.
        switch (NameR[5]) {
        default: break;
        case 'b':	 // 1 string to match.
          if (memcmp(NameR.data()+6, "sq.s.w", 6))
            break;
          return Intrinsic::mips_absq_s_w;	 // "ips.absq.s.w"
        case 'd':	 // 3 strings to match.
          if (NameR[6] != 'd')
            break;
          switch (NameR[7]) {
          default: break;
          case 'q':	 // 2 strings to match.
            switch (NameR[8]) {
            default: break;
            case '.':	 // 1 string to match.
              if (memcmp(NameR.data()+9, "s.w", 3))
                break;
              return Intrinsic::mips_addq_s_w;	 // "ips.addq.s.w"
            case 'h':	 // 1 string to match.
              if (memcmp(NameR.data()+9, ".ph", 3))
                break;
              return Intrinsic::mips_addqh_ph;	 // "ips.addqh.ph"
            }
            break;
          case 'u':	 // 1 string to match.
            if (memcmp(NameR.data()+8, "h.qb", 4))
              break;
            return Intrinsic::mips_adduh_qb;	 // "ips.adduh.qb"
          }
          break;
        }
        break;
      case 'b':	 // 1 string to match.
        if (memcmp(NameR.data()+5, "posge32", 7))
          break;
        return Intrinsic::mips_bposge32;	 // "ips.bposge32"
      case 'd':	 // 2 strings to match.
        if (NameR[5] != 'p')
          break;
        switch (NameR[6]) {
        default: break;
        case 'a':	 // 1 string to match.
          if (memcmp(NameR.data()+7, ".w.ph", 5))
            break;
          return Intrinsic::mips_dpa_w_ph;	 // "ips.dpa.w.ph"
        case 's':	 // 1 string to match.
          if (memcmp(NameR.data()+7, ".w.ph", 5))
            break;
          return Intrinsic::mips_dps_w_ph;	 // "ips.dps.w.ph"
        }
        break;
      case 'e':	 // 2 strings to match.
        if (memcmp(NameR.data()+5, "xtr.", 4))
          break;
        switch (NameR[9]) {
        default: break;
        case 'r':	 // 1 string to match.
          if (memcmp(NameR.data()+10, ".w", 2))
            break;
          return Intrinsic::mips_extr_r_w;	 // "ips.extr.r.w"
        case 's':	 // 1 string to match.
          if (memcmp(NameR.data()+10, ".h", 2))
            break;
          return Intrinsic::mips_extr_s_h;	 // "ips.extr.s.h"
        }
        break;
      case 'm':	 // 2 strings to match.
        if (memcmp(NameR.data()+5, "ul", 2))
          break;
        switch (NameR[7]) {
        default: break;
        case '.':	 // 1 string to match.
          if (memcmp(NameR.data()+8, "s.ph", 4))
            break;
          return Intrinsic::mips_mul_s_ph;	 // "ips.mul.s.ph"
        case 'q':	 // 1 string to match.
          if (memcmp(NameR.data()+8, ".s.w", 4))
            break;
          return Intrinsic::mips_mulq_s_w;	 // "ips.mulq.s.w"
        }
        break;
      case 's':	 // 5 strings to match.
        switch (NameR[5]) {
        default: break;
        case 'h':	 // 2 strings to match.
          switch (NameR[6]) {
          default: break;
          case 'l':	 // 1 string to match.
            if (memcmp(NameR.data()+7, "l.s.w", 5))
              break;
            return Intrinsic::mips_shll_s_w;	 // "ips.shll.s.w"
          case 'r':	 // 1 string to match.
            if (memcmp(NameR.data()+7, "a.r.w", 5))
              break;
            return Intrinsic::mips_shra_r_w;	 // "ips.shra.r.w"
          }
          break;
        case 'u':	 // 3 strings to match.
          if (NameR[6] != 'b')
            break;
          switch (NameR[7]) {
          default: break;
          case 'q':	 // 2 strings to match.
            switch (NameR[8]) {
            default: break;
            case '.':	 // 1 string to match.
              if (memcmp(NameR.data()+9, "s.w", 3))
                break;
              return Intrinsic::mips_subq_s_w;	 // "ips.subq.s.w"
            case 'h':	 // 1 string to match.
              if (memcmp(NameR.data()+9, ".ph", 3))
                break;
              return Intrinsic::mips_subqh_ph;	 // "ips.subqh.ph"
            }
            break;
          case 'u':	 // 1 string to match.
            if (memcmp(NameR.data()+8, "h.qb", 4))
              break;
            return Intrinsic::mips_subuh_qb;	 // "ips.subuh.qb"
          }
          break;
        }
        break;
      }
      break;
    case 13:	 // 22 strings to match.
      if (memcmp(NameR.data()+0, "ips.", 4))
        break;
      switch (NameR[4]) {
      default: break;
      case 'a':	 // 6 strings to match.
        switch (NameR[5]) {
        default: break;
        case 'b':	 // 2 strings to match.
          if (memcmp(NameR.data()+6, "sq.s.", 5))
            break;
          switch (NameR[11]) {
          default: break;
          case 'p':	 // 1 string to match.
            if (NameR[12] != 'h')
              break;
            return Intrinsic::mips_absq_s_ph;	 // "ips.absq.s.ph"
          case 'q':	 // 1 string to match.
            if (NameR[12] != 'b')
              break;
            return Intrinsic::mips_absq_s_qb;	 // "ips.absq.s.qb"
          }
          break;
        case 'd':	 // 4 strings to match.
          if (NameR[6] != 'd')
            break;
          switch (NameR[7]) {
          default: break;
          case 'q':	 // 2 strings to match.
            switch (NameR[8]) {
            default: break;
            case '.':	 // 1 string to match.
              if (memcmp(NameR.data()+9, "s.ph", 4))
                break;
              return Intrinsic::mips_addq_s_ph;	 // "ips.addq.s.ph"
            case 'h':	 // 1 string to match.
              if (memcmp(NameR.data()+9, ".r.w", 4))
                break;
              return Intrinsic::mips_addqh_r_w;	 // "ips.addqh.r.w"
            }
            break;
          case 'u':	 // 2 strings to match.
            if (memcmp(NameR.data()+8, ".s.", 3))
              break;
            switch (NameR[11]) {
            default: break;
            case 'p':	 // 1 string to match.
              if (NameR[12] != 'h')
                break;
              return Intrinsic::mips_addu_s_ph;	 // "ips.addu.s.ph"
            case 'q':	 // 1 string to match.
              if (NameR[12] != 'b')
                break;
              return Intrinsic::mips_addu_s_qb;	 // "ips.addu.s.qb"
            }
            break;
          }
          break;
        }
        break;
      case 'c':	 // 3 strings to match.
        if (memcmp(NameR.data()+5, "mp.", 3))
          break;
        switch (NameR[8]) {
        default: break;
        case 'e':	 // 1 string to match.
          if (memcmp(NameR.data()+9, "q.ph", 4))
            break;
          return Intrinsic::mips_cmp_eq_ph;	 // "ips.cmp.eq.ph"
        case 'l':	 // 2 strings to match.
          switch (NameR[9]) {
          default: break;
          case 'e':	 // 1 string to match.
            if (memcmp(NameR.data()+10, ".ph", 3))
              break;
            return Intrinsic::mips_cmp_le_ph;	 // "ips.cmp.le.ph"
          case 't':	 // 1 string to match.
            if (memcmp(NameR.data()+10, ".ph", 3))
              break;
            return Intrinsic::mips_cmp_lt_ph;	 // "ips.cmp.lt.ph"
          }
          break;
        }
        break;
      case 'd':	 // 2 strings to match.
        if (NameR[5] != 'p')
          break;
        switch (NameR[6]) {
        default: break;
        case 'a':	 // 1 string to match.
          if (memcmp(NameR.data()+7, "x.w.ph", 6))
            break;
          return Intrinsic::mips_dpax_w_ph;	 // "ips.dpax.w.ph"
        case 's':	 // 1 string to match.
          if (memcmp(NameR.data()+7, "x.w.ph", 6))
            break;
          return Intrinsic::mips_dpsx_w_ph;	 // "ips.dpsx.w.ph"
        }
        break;
      case 'e':	 // 1 string to match.
        if (memcmp(NameR.data()+5, "xtr.rs.w", 8))
          break;
        return Intrinsic::mips_extr_rs_w;	 // "ips.extr.rs.w"
      case 'm':	 // 2 strings to match.
        if (memcmp(NameR.data()+5, "ulq.", 4))
          break;
        switch (NameR[9]) {
        default: break;
        case 'r':	 // 1 string to match.
          if (memcmp(NameR.data()+10, "s.w", 3))
            break;
          return Intrinsic::mips_mulq_rs_w;	 // "ips.mulq.rs.w"
        case 's':	 // 1 string to match.
          if (memcmp(NameR.data()+10, ".ph", 3))
            break;
          return Intrinsic::mips_mulq_s_ph;	 // "ips.mulq.s.ph"
        }
        break;
      case 'p':	 // 1 string to match.
        if (memcmp(NameR.data()+5, "ackrl.ph", 8))
          break;
        return Intrinsic::mips_packrl_ph;	 // "ips.packrl.ph"
      case 's':	 // 7 strings to match.
        switch (NameR[5]) {
        default: break;
        case 'h':	 // 3 strings to match.
          switch (NameR[6]) {
          default: break;
          case 'l':	 // 1 string to match.
            if (memcmp(NameR.data()+7, "l.s.ph", 6))
              break;
            return Intrinsic::mips_shll_s_ph;	 // "ips.shll.s.ph"
          case 'r':	 // 2 strings to match.
            if (memcmp(NameR.data()+7, "a.r.", 4))
              break;
            switch (NameR[11]) {
            default: break;
            case 'p':	 // 1 string to match.
              if (NameR[12] != 'h')
                break;
              return Intrinsic::mips_shra_r_ph;	 // "ips.shra.r.ph"
            case 'q':	 // 1 string to match.
              if (NameR[12] != 'b')
                break;
              return Intrinsic::mips_shra_r_qb;	 // "ips.shra.r.qb"
            }
            break;
          }
          break;
        case 'u':	 // 4 strings to match.
          if (NameR[6] != 'b')
            break;
          switch (NameR[7]) {
          default: break;
          case 'q':	 // 2 strings to match.
            switch (NameR[8]) {
            default: break;
            case '.':	 // 1 string to match.
              if (memcmp(NameR.data()+9, "s.ph", 4))
                break;
              return Intrinsic::mips_subq_s_ph;	 // "ips.subq.s.ph"
            case 'h':	 // 1 string to match.
              if (memcmp(NameR.data()+9, ".r.w", 4))
                break;
              return Intrinsic::mips_subqh_r_w;	 // "ips.subqh.r.w"
            }
            break;
          case 'u':	 // 2 strings to match.
            if (memcmp(NameR.data()+8, ".s.", 3))
              break;
            switch (NameR[11]) {
            default: break;
            case 'p':	 // 1 string to match.
              if (NameR[12] != 'h')
                break;
              return Intrinsic::mips_subu_s_ph;	 // "ips.subu.s.ph"
            case 'q':	 // 1 string to match.
              if (NameR[12] != 'b')
                break;
              return Intrinsic::mips_subu_s_qb;	 // "ips.subu.s.qb"
            }
            break;
          }
          break;
        }
        break;
      }
      break;
    case 14:	 // 14 strings to match.
      if (memcmp(NameR.data()+0, "ips.", 4))
        break;
      switch (NameR[4]) {
      default: break;
      case 'a':	 // 2 strings to match.
        if (memcmp(NameR.data()+5, "dd", 2))
          break;
        switch (NameR[7]) {
        default: break;
        case 'q':	 // 1 string to match.
          if (memcmp(NameR.data()+8, "h.r.ph", 6))
            break;
          return Intrinsic::mips_addqh_r_ph;	 // "ips.addqh.r.ph"
        case 'u':	 // 1 string to match.
          if (memcmp(NameR.data()+8, "h.r.qb", 6))
            break;
          return Intrinsic::mips_adduh_r_qb;	 // "ips.adduh.r.qb"
        }
        break;
      case 'c':	 // 3 strings to match.
        if (memcmp(NameR.data()+5, "mpu.", 4))
          break;
        switch (NameR[9]) {
        default: break;
        case 'e':	 // 1 string to match.
          if (memcmp(NameR.data()+10, "q.qb", 4))
            break;
          return Intrinsic::mips_cmpu_eq_qb;	 // "ips.cmpu.eq.qb"
        case 'l':	 // 2 strings to match.
          switch (NameR[10]) {
          default: break;
          case 'e':	 // 1 string to match.
            if (memcmp(NameR.data()+11, ".qb", 3))
              break;
            return Intrinsic::mips_cmpu_le_qb;	 // "ips.cmpu.le.qb"
          case 't':	 // 1 string to match.
            if (memcmp(NameR.data()+11, ".qb", 3))
              break;
            return Intrinsic::mips_cmpu_lt_qb;	 // "ips.cmpu.lt.qb"
          }
          break;
        }
        break;
      case 'd':	 // 4 strings to match.
        if (NameR[5] != 'p')
          break;
        switch (NameR[6]) {
        default: break;
        case 'a':	 // 2 strings to match.
          if (memcmp(NameR.data()+7, "u.h.qb", 6))
            break;
          switch (NameR[13]) {
          default: break;
          case 'l':	 // 1 string to match.
            return Intrinsic::mips_dpau_h_qbl;	 // "ips.dpau.h.qbl"
          case 'r':	 // 1 string to match.
            return Intrinsic::mips_dpau_h_qbr;	 // "ips.dpau.h.qbr"
          }
          break;
        case 's':	 // 2 strings to match.
          if (memcmp(NameR.data()+7, "u.h.qb", 6))
            break;
          switch (NameR[13]) {
          default: break;
          case 'l':	 // 1 string to match.
            return Intrinsic::mips_dpsu_h_qbl;	 // "ips.dpsu.h.qbl"
          case 'r':	 // 1 string to match.
            return Intrinsic::mips_dpsu_h_qbr;	 // "ips.dpsu.h.qbr"
          }
          break;
        }
        break;
      case 'm':	 // 2 strings to match.
        if (memcmp(NameR.data()+5, "ul", 2))
          break;
        switch (NameR[7]) {
        default: break;
        case 'q':	 // 1 string to match.
          if (memcmp(NameR.data()+8, ".rs.ph", 6))
            break;
          return Intrinsic::mips_mulq_rs_ph;	 // "ips.mulq.rs.ph"
        case 's':	 // 1 string to match.
          if (memcmp(NameR.data()+8, "a.w.ph", 6))
            break;
          return Intrinsic::mips_mulsa_w_ph;	 // "ips.mulsa.w.ph"
        }
        break;
      case 'r':	 // 1 string to match.
        if (memcmp(NameR.data()+5, "addu.w.qb", 9))
          break;
        return Intrinsic::mips_raddu_w_qb;	 // "ips.raddu.w.qb"
      case 's':	 // 2 strings to match.
        if (memcmp(NameR.data()+5, "ub", 2))
          break;
        switch (NameR[7]) {
        default: break;
        case 'q':	 // 1 string to match.
          if (memcmp(NameR.data()+8, "h.r.ph", 6))
            break;
          return Intrinsic::mips_subqh_r_ph;	 // "ips.subqh.r.ph"
        case 'u':	 // 1 string to match.
          if (memcmp(NameR.data()+8, "h.r.qb", 6))
            break;
          return Intrinsic::mips_subuh_r_qb;	 // "ips.subuh.r.qb"
        }
        break;
      }
      break;
    case 15:	 // 11 strings to match.
      if (memcmp(NameR.data()+0, "ips.", 4))
        break;
      switch (NameR[4]) {
      default: break;
      case 'c':	 // 3 strings to match.
        if (memcmp(NameR.data()+5, "mpgu.", 5))
          break;
        switch (NameR[10]) {
        default: break;
        case 'e':	 // 1 string to match.
          if (memcmp(NameR.data()+11, "q.qb", 4))
            break;
          return Intrinsic::mips_cmpgu_eq_qb;	 // "ips.cmpgu.eq.qb"
        case 'l':	 // 2 strings to match.
          switch (NameR[11]) {
          default: break;
          case 'e':	 // 1 string to match.
            if (memcmp(NameR.data()+12, ".qb", 3))
              break;
            return Intrinsic::mips_cmpgu_le_qb;	 // "ips.cmpgu.le.qb"
          case 't':	 // 1 string to match.
            if (memcmp(NameR.data()+12, ".qb", 3))
              break;
            return Intrinsic::mips_cmpgu_lt_qb;	 // "ips.cmpgu.lt.qb"
          }
          break;
        }
        break;
      case 'd':	 // 4 strings to match.
        if (NameR[5] != 'p')
          break;
        switch (NameR[6]) {
        default: break;
        case 'a':	 // 2 strings to match.
          if (memcmp(NameR.data()+7, "q.s", 3))
            break;
          switch (NameR[10]) {
          default: break;
          case '.':	 // 1 string to match.
            if (memcmp(NameR.data()+11, "w.ph", 4))
              break;
            return Intrinsic::mips_dpaq_s_w_ph;	 // "ips.dpaq.s.w.ph"
          case 'a':	 // 1 string to match.
            if (memcmp(NameR.data()+11, ".l.w", 4))
              break;
            return Intrinsic::mips_dpaq_sa_l_w;	 // "ips.dpaq.sa.l.w"
          }
          break;
        case 's':	 // 2 strings to match.
          if (memcmp(NameR.data()+7, "q.s", 3))
            break;
          switch (NameR[10]) {
          default: break;
          case '.':	 // 1 string to match.
            if (memcmp(NameR.data()+11, "w.ph", 4))
              break;
            return Intrinsic::mips_dpsq_s_w_ph;	 // "ips.dpsq.s.w.ph"
          case 'a':	 // 1 string to match.
            if (memcmp(NameR.data()+11, ".l.w", 4))
              break;
            return Intrinsic::mips_dpsq_sa_l_w;	 // "ips.dpsq.sa.l.w"
          }
          break;
        }
        break;
      case 'm':	 // 2 strings to match.
        if (memcmp(NameR.data()+5, "aq.s.w.ph", 9))
          break;
        switch (NameR[14]) {
        default: break;
        case 'l':	 // 1 string to match.
          return Intrinsic::mips_maq_s_w_phl;	 // "ips.maq.s.w.phl"
        case 'r':	 // 1 string to match.
          return Intrinsic::mips_maq_s_w_phr;	 // "ips.maq.s.w.phr"
        }
        break;
      case 'p':	 // 2 strings to match.
        if (memcmp(NameR.data()+5, "recr", 4))
          break;
        switch (NameR[9]) {
        default: break;
        case '.':	 // 1 string to match.
          if (memcmp(NameR.data()+10, "qb.ph", 5))
            break;
          return Intrinsic::mips_precr_qb_ph;	 // "ips.precr.qb.ph"
        case 'q':	 // 1 string to match.
          if (memcmp(NameR.data()+10, ".ph.w", 5))
            break;
          return Intrinsic::mips_precrq_ph_w;	 // "ips.precrq.ph.w"
        }
        break;
      }
      break;
    case 16:	 // 10 strings to match.
      if (memcmp(NameR.data()+0, "ips.", 4))
        break;
      switch (NameR[4]) {
      default: break;
      case 'c':	 // 3 strings to match.
        if (memcmp(NameR.data()+5, "mpgdu.", 6))
          break;
        switch (NameR[11]) {
        default: break;
        case 'e':	 // 1 string to match.
          if (memcmp(NameR.data()+12, "q.qb", 4))
            break;
          return Intrinsic::mips_cmpgdu_eq_qb;	 // "ips.cmpgdu.eq.qb"
        case 'l':	 // 2 strings to match.
          switch (NameR[12]) {
          default: break;
          case 'e':	 // 1 string to match.
            if (memcmp(NameR.data()+13, ".qb", 3))
              break;
            return Intrinsic::mips_cmpgdu_le_qb;	 // "ips.cmpgdu.le.qb"
          case 't':	 // 1 string to match.
            if (memcmp(NameR.data()+13, ".qb", 3))
              break;
            return Intrinsic::mips_cmpgdu_lt_qb;	 // "ips.cmpgdu.lt.qb"
          }
          break;
        }
        break;
      case 'd':	 // 2 strings to match.
        if (NameR[5] != 'p')
          break;
        switch (NameR[6]) {
        default: break;
        case 'a':	 // 1 string to match.
          if (memcmp(NameR.data()+7, "qx.s.w.ph", 9))
            break;
          return Intrinsic::mips_dpaqx_s_w_ph;	 // "ips.dpaqx.s.w.ph"
        case 's':	 // 1 string to match.
          if (memcmp(NameR.data()+7, "qx.s.w.ph", 9))
            break;
          return Intrinsic::mips_dpsqx_s_w_ph;	 // "ips.dpsqx.s.w.ph"
        }
        break;
      case 'm':	 // 2 strings to match.
        if (memcmp(NameR.data()+5, "aq.sa.w.ph", 10))
          break;
        switch (NameR[15]) {
        default: break;
        case 'l':	 // 1 string to match.
          return Intrinsic::mips_maq_sa_w_phl;	 // "ips.maq.sa.w.phl"
        case 'r':	 // 1 string to match.
          return Intrinsic::mips_maq_sa_w_phr;	 // "ips.maq.sa.w.phr"
        }
        break;
      case 'p':	 // 3 strings to match.
        if (memcmp(NameR.data()+5, "rec", 3))
          break;
        switch (NameR[8]) {
        default: break;
        case 'e':	 // 2 strings to match.
          if (memcmp(NameR.data()+9, "q.w.ph", 6))
            break;
          switch (NameR[15]) {
          default: break;
          case 'l':	 // 1 string to match.
            return Intrinsic::mips_preceq_w_phl;	 // "ips.preceq.w.phl"
          case 'r':	 // 1 string to match.
            return Intrinsic::mips_preceq_w_phr;	 // "ips.preceq.w.phr"
          }
          break;
        case 'r':	 // 1 string to match.
          if (memcmp(NameR.data()+9, "q.qb.ph", 7))
            break;
          return Intrinsic::mips_precrq_qb_ph;	 // "ips.precrq.qb.ph"
        }
        break;
      }
      break;
    case 17:	 // 7 strings to match.
      if (memcmp(NameR.data()+0, "ips.", 4))
        break;
      switch (NameR[4]) {
      default: break;
      case 'd':	 // 2 strings to match.
        if (NameR[5] != 'p')
          break;
        switch (NameR[6]) {
        default: break;
        case 'a':	 // 1 string to match.
          if (memcmp(NameR.data()+7, "qx.sa.w.ph", 10))
            break;
          return Intrinsic::mips_dpaqx_sa_w_ph;	 // "ips.dpaqx.sa.w.ph"
        case 's':	 // 1 string to match.
          if (memcmp(NameR.data()+7, "qx.sa.w.ph", 10))
            break;
          return Intrinsic::mips_dpsqx_sa_w_ph;	 // "ips.dpsqx.sa.w.ph"
        }
        break;
      case 'm':	 // 3 strings to match.
        if (memcmp(NameR.data()+5, "ul", 2))
          break;
        switch (NameR[7]) {
        default: break;
        case 'e':	 // 2 strings to match.
          if (memcmp(NameR.data()+8, "q.s.w.ph", 8))
            break;
          switch (NameR[16]) {
          default: break;
          case 'l':	 // 1 string to match.
            return Intrinsic::mips_muleq_s_w_phl;	 // "ips.muleq.s.w.phl"
          case 'r':	 // 1 string to match.
            return Intrinsic::mips_muleq_s_w_phr;	 // "ips.muleq.s.w.phr"
          }
          break;
        case 's':	 // 1 string to match.
          if (memcmp(NameR.data()+8, "aq.s.w.ph", 9))
            break;
          return Intrinsic::mips_mulsaq_s_w_ph;	 // "ips.mulsaq.s.w.ph"
        }
        break;
      case 'p':	 // 2 strings to match.
        if (memcmp(NameR.data()+5, "receu.ph.qb", 11))
          break;
        switch (NameR[16]) {
        default: break;
        case 'l':	 // 1 string to match.
          return Intrinsic::mips_preceu_ph_qbl;	 // "ips.preceu.ph.qbl"
        case 'r':	 // 1 string to match.
          return Intrinsic::mips_preceu_ph_qbr;	 // "ips.preceu.ph.qbr"
        }
        break;
      }
      break;
    case 18:	 // 8 strings to match.
      if (memcmp(NameR.data()+0, "ips.", 4))
        break;
      switch (NameR[4]) {
      default: break;
      case 'm':	 // 2 strings to match.
        if (memcmp(NameR.data()+5, "uleu.s.ph.qb", 12))
          break;
        switch (NameR[17]) {
        default: break;
        case 'l':	 // 1 string to match.
          return Intrinsic::mips_muleu_s_ph_qbl;	 // "ips.muleu.s.ph.qbl"
        case 'r':	 // 1 string to match.
          return Intrinsic::mips_muleu_s_ph_qbr;	 // "ips.muleu.s.ph.qbr"
        }
        break;
      case 'p':	 // 6 strings to match.
        if (memcmp(NameR.data()+5, "rec", 3))
          break;
        switch (NameR[8]) {
        default: break;
        case 'e':	 // 4 strings to match.
          switch (NameR[9]) {
          default: break;
          case 'q':	 // 2 strings to match.
            if (memcmp(NameR.data()+10, "u.ph.qb", 7))
              break;
            switch (NameR[17]) {
            default: break;
            case 'l':	 // 1 string to match.
              return Intrinsic::mips_precequ_ph_qbl;	 // "ips.precequ.ph.qbl"
            case 'r':	 // 1 string to match.
              return Intrinsic::mips_precequ_ph_qbr;	 // "ips.precequ.ph.qbr"
            }
            break;
          case 'u':	 // 2 strings to match.
            if (memcmp(NameR.data()+10, ".ph.qb", 6))
              break;
            switch (NameR[16]) {
            default: break;
            case 'l':	 // 1 string to match.
              if (NameR[17] != 'a')
                break;
              return Intrinsic::mips_preceu_ph_qbla;	 // "ips.preceu.ph.qbla"
            case 'r':	 // 1 string to match.
              if (NameR[17] != 'a')
                break;
              return Intrinsic::mips_preceu_ph_qbra;	 // "ips.preceu.ph.qbra"
            }
            break;
          }
          break;
        case 'r':	 // 2 strings to match.
          switch (NameR[9]) {
          default: break;
          case '.':	 // 1 string to match.
            if (memcmp(NameR.data()+10, "sra.ph.w", 8))
              break;
            return Intrinsic::mips_precr_sra_ph_w;	 // "ips.precr.sra.ph.w"
          case 'q':	 // 1 string to match.
            if (memcmp(NameR.data()+10, ".rs.ph.w", 8))
              break;
            return Intrinsic::mips_precrq_rs_ph_w;	 // "ips.precrq.rs.ph.w"
          }
          break;
        }
        break;
      }
      break;
    case 19:	 // 3 strings to match.
      if (memcmp(NameR.data()+0, "ips.prec", 8))
        break;
      switch (NameR[8]) {
      default: break;
      case 'e':	 // 2 strings to match.
        if (memcmp(NameR.data()+9, "qu.ph.qb", 8))
          break;
        switch (NameR[17]) {
        default: break;
        case 'l':	 // 1 string to match.
          if (NameR[18] != 'a')
            break;
          return Intrinsic::mips_precequ_ph_qbla;	 // "ips.precequ.ph.qbla"
        case 'r':	 // 1 string to match.
          if (NameR[18] != 'a')
            break;
          return Intrinsic::mips_precequ_ph_qbra;	 // "ips.precequ.ph.qbra"
        }
        break;
      case 'r':	 // 1 string to match.
        if (memcmp(NameR.data()+9, "qu.s.qb.ph", 10))
          break;
        return Intrinsic::mips_precrqu_s_qb_ph;	 // "ips.precrqu.s.qb.ph"
      }
      break;
    case 20:	 // 1 string to match.
      if (memcmp(NameR.data()+0, "ips.precr.sra.r.ph.w", 20))
        break;
      return Intrinsic::mips_precr_sra_r_ph_w;	 // "ips.precr.sra.r.ph.w"
    }
    break;  // end of 'm' case.
  case 'n':
    if (NameR.startswith("vvm.atomic.load.add.f32.")) return Intrinsic::nvvm_atomic_load_add_f32;
    if (NameR.startswith("vvm.atomic.load.dec.32.")) return Intrinsic::nvvm_atomic_load_dec_32;
    if (NameR.startswith("vvm.atomic.load.inc.32.")) return Intrinsic::nvvm_atomic_load_inc_32;
    if (NameR.startswith("vvm.compiler.error.")) return Intrinsic::nvvm_compiler_error;
    if (NameR.startswith("vvm.compiler.warn.")) return Intrinsic::nvvm_compiler_warn;
    if (NameR.startswith("vvm.ldu.global.f.")) return Intrinsic::nvvm_ldu_global_f;
    if (NameR.startswith("vvm.ldu.global.i.")) return Intrinsic::nvvm_ldu_global_i;
    if (NameR.startswith("vvm.ldu.global.p.")) return Intrinsic::nvvm_ldu_global_p;
    if (NameR.startswith("vvm.move.ptr.")) return Intrinsic::nvvm_move_ptr;
    if (NameR.startswith("vvm.ptr.constant.to.gen.")) return Intrinsic::nvvm_ptr_constant_to_gen;
    if (NameR.startswith("vvm.ptr.gen.to.constant.")) return Intrinsic::nvvm_ptr_gen_to_constant;
    if (NameR.startswith("vvm.ptr.gen.to.global.")) return Intrinsic::nvvm_ptr_gen_to_global;
    if (NameR.startswith("vvm.ptr.gen.to.local.")) return Intrinsic::nvvm_ptr_gen_to_local;
    if (NameR.startswith("vvm.ptr.gen.to.param.")) return Intrinsic::nvvm_ptr_gen_to_param;
    if (NameR.startswith("vvm.ptr.gen.to.shared.")) return Intrinsic::nvvm_ptr_gen_to_shared;
    if (NameR.startswith("vvm.ptr.global.to.gen.")) return Intrinsic::nvvm_ptr_global_to_gen;
    if (NameR.startswith("vvm.ptr.local.to.gen.")) return Intrinsic::nvvm_ptr_local_to_gen;
    if (NameR.startswith("vvm.ptr.shared.to.gen.")) return Intrinsic::nvvm_ptr_shared_to_gen;
    switch (NameR.size()) {
    default: break;
    case 7:	 // 1 string to match.
      if (memcmp(NameR.data()+0, "vvm.h2f", 7))
        break;
      return Intrinsic::nvvm_h2f;	 // "vvm.h2f"
    case 8:	 // 1 string to match.
      if (memcmp(NameR.data()+0, "vvm.prmt", 8))
        break;
      return Intrinsic::nvvm_prmt;	 // "vvm.prmt"
    case 9:	 // 5 strings to match.
      if (memcmp(NameR.data()+0, "vvm.", 4))
        break;
      switch (NameR[4]) {
      default: break;
      case 'a':	 // 1 string to match.
        if (memcmp(NameR.data()+5, "bs.i", 4))
          break;
        return Intrinsic::nvvm_abs_i;	 // "vvm.abs.i"
      case 'c':	 // 1 string to match.
        if (memcmp(NameR.data()+5, "lz.i", 4))
          break;
        return Intrinsic::nvvm_clz_i;	 // "vvm.clz.i"
      case 'm':	 // 2 strings to match.
        switch (NameR[5]) {
        default: break;
        case 'a':	 // 1 string to match.
          if (memcmp(NameR.data()+6, "x.i", 3))
            break;
          return Intrinsic::nvvm_max_i;	 // "vvm.max.i"
        case 'i':	 // 1 string to match.
          if (memcmp(NameR.data()+6, "n.i", 3))
            break;
          return Intrinsic::nvvm_min_i;	 // "vvm.min.i"
        }
        break;
      case 's':	 // 1 string to match.
        if (memcmp(NameR.data()+5, "ad.i", 4))
          break;
        return Intrinsic::nvvm_sad_i;	 // "vvm.sad.i"
      }
      break;
    case 10:	 // 41 strings to match.
      if (memcmp(NameR.data()+0, "vvm.", 4))
        break;
      switch (NameR[4]) {
      default: break;
      case 'a':	 // 1 string to match.
        if (memcmp(NameR.data()+5, "bs.ll", 5))
          break;
        return Intrinsic::nvvm_abs_ll;	 // "vvm.abs.ll"
      case 'b':	 // 2 strings to match.
        if (memcmp(NameR.data()+5, "rev", 3))
          break;
        switch (NameR[8]) {
        default: break;
        case '3':	 // 1 string to match.
          if (NameR[9] != '2')
            break;
          return Intrinsic::nvvm_brev32;	 // "vvm.brev32"
        case '6':	 // 1 string to match.
          if (NameR[9] != '4')
            break;
          return Intrinsic::nvvm_brev64;	 // "vvm.brev64"
        }
        break;
      case 'c':	 // 3 strings to match.
        switch (NameR[5]) {
        default: break;
        case 'e':	 // 2 strings to match.
          if (memcmp(NameR.data()+6, "il.", 3))
            break;
          switch (NameR[9]) {
          default: break;
          case 'd':	 // 1 string to match.
            return Intrinsic::nvvm_ceil_d;	 // "vvm.ceil.d"
          case 'f':	 // 1 string to match.
            return Intrinsic::nvvm_ceil_f;	 // "vvm.ceil.f"
          }
          break;
        case 'l':	 // 1 string to match.
          if (memcmp(NameR.data()+6, "z.ll", 4))
            break;
          return Intrinsic::nvvm_clz_ll;	 // "vvm.clz.ll"
        }
        break;
      case 'd':	 // 10 strings to match.
        if (NameR[5] != '2')
          break;
        switch (NameR[6]) {
        default: break;
        case 'f':	 // 4 strings to match.
          if (memcmp(NameR.data()+7, ".r", 2))
            break;
          switch (NameR[9]) {
          default: break;
          case 'm':	 // 1 string to match.
            return Intrinsic::nvvm_d2f_rm;	 // "vvm.d2f.rm"
          case 'n':	 // 1 string to match.
            return Intrinsic::nvvm_d2f_rn;	 // "vvm.d2f.rn"
          case 'p':	 // 1 string to match.
            return Intrinsic::nvvm_d2f_rp;	 // "vvm.d2f.rp"
          case 'z':	 // 1 string to match.
            return Intrinsic::nvvm_d2f_rz;	 // "vvm.d2f.rz"
          }
          break;
        case 'i':	 // 6 strings to match.
          if (NameR[7] != '.')
            break;
          switch (NameR[8]) {
          default: break;
          case 'h':	 // 1 string to match.
            if (NameR[9] != 'i')
              break;
            return Intrinsic::nvvm_d2i_hi;	 // "vvm.d2i.hi"
          case 'l':	 // 1 string to match.
            if (NameR[9] != 'o')
              break;
            return Intrinsic::nvvm_d2i_lo;	 // "vvm.d2i.lo"
          case 'r':	 // 4 strings to match.
            switch (NameR[9]) {
            default: break;
            case 'm':	 // 1 string to match.
              return Intrinsic::nvvm_d2i_rm;	 // "vvm.d2i.rm"
            case 'n':	 // 1 string to match.
              return Intrinsic::nvvm_d2i_rn;	 // "vvm.d2i.rn"
            case 'p':	 // 1 string to match.
              return Intrinsic::nvvm_d2i_rp;	 // "vvm.d2i.rp"
            case 'z':	 // 1 string to match.
              return Intrinsic::nvvm_d2i_rz;	 // "vvm.d2i.rz"
            }
            break;
          }
          break;
        }
        break;
      case 'f':	 // 11 strings to match.
        switch (NameR[5]) {
        default: break;
        case '2':	 // 5 strings to match.
          switch (NameR[6]) {
          default: break;
          case 'h':	 // 1 string to match.
            if (memcmp(NameR.data()+7, ".rn", 3))
              break;
            return Intrinsic::nvvm_f2h_rn;	 // "vvm.f2h.rn"
          case 'i':	 // 4 strings to match.
            if (memcmp(NameR.data()+7, ".r", 2))
              break;
            switch (NameR[9]) {
            default: break;
            case 'm':	 // 1 string to match.
              return Intrinsic::nvvm_f2i_rm;	 // "vvm.f2i.rm"
            case 'n':	 // 1 string to match.
              return Intrinsic::nvvm_f2i_rn;	 // "vvm.f2i.rn"
            case 'p':	 // 1 string to match.
              return Intrinsic::nvvm_f2i_rp;	 // "vvm.f2i.rp"
            case 'z':	 // 1 string to match.
              return Intrinsic::nvvm_f2i_rz;	 // "vvm.f2i.rz"
            }
            break;
          }
          break;
        case 'a':	 // 2 strings to match.
          if (memcmp(NameR.data()+6, "bs.", 3))
            break;
          switch (NameR[9]) {
          default: break;
          case 'd':	 // 1 string to match.
            return Intrinsic::nvvm_fabs_d;	 // "vvm.fabs.d"
          case 'f':	 // 1 string to match.
            return Intrinsic::nvvm_fabs_f;	 // "vvm.fabs.f"
          }
          break;
        case 'm':	 // 4 strings to match.
          switch (NameR[6]) {
          default: break;
          case 'a':	 // 2 strings to match.
            if (memcmp(NameR.data()+7, "x.", 2))
              break;
            switch (NameR[9]) {
            default: break;
            case 'd':	 // 1 string to match.
              return Intrinsic::nvvm_fmax_d;	 // "vvm.fmax.d"
            case 'f':	 // 1 string to match.
              return Intrinsic::nvvm_fmax_f;	 // "vvm.fmax.f"
            }
            break;
          case 'i':	 // 2 strings to match.
            if (memcmp(NameR.data()+7, "n.", 2))
              break;
            switch (NameR[9]) {
            default: break;
            case 'd':	 // 1 string to match.
              return Intrinsic::nvvm_fmin_d;	 // "vvm.fmin.d"
            case 'f':	 // 1 string to match.
              return Intrinsic::nvvm_fmin_f;	 // "vvm.fmin.f"
            }
            break;
          }
          break;
        }
        break;
      case 'i':	 // 8 strings to match.
        if (NameR[5] != '2')
          break;
        switch (NameR[6]) {
        default: break;
        case 'd':	 // 4 strings to match.
          if (memcmp(NameR.data()+7, ".r", 2))
            break;
          switch (NameR[9]) {
          default: break;
          case 'm':	 // 1 string to match.
            return Intrinsic::nvvm_i2d_rm;	 // "vvm.i2d.rm"
          case 'n':	 // 1 string to match.
            return Intrinsic::nvvm_i2d_rn;	 // "vvm.i2d.rn"
          case 'p':	 // 1 string to match.
            return Intrinsic::nvvm_i2d_rp;	 // "vvm.i2d.rp"
          case 'z':	 // 1 string to match.
            return Intrinsic::nvvm_i2d_rz;	 // "vvm.i2d.rz"
          }
          break;
        case 'f':	 // 4 strings to match.
          if (memcmp(NameR.data()+7, ".r", 2))
            break;
          switch (NameR[9]) {
          default: break;
          case 'm':	 // 1 string to match.
            return Intrinsic::nvvm_i2f_rm;	 // "vvm.i2f.rm"
          case 'n':	 // 1 string to match.
            return Intrinsic::nvvm_i2f_rn;	 // "vvm.i2f.rn"
          case 'p':	 // 1 string to match.
            return Intrinsic::nvvm_i2f_rp;	 // "vvm.i2f.rp"
          case 'z':	 // 1 string to match.
            return Intrinsic::nvvm_i2f_rz;	 // "vvm.i2f.rz"
          }
          break;
        }
        break;
      case 'm':	 // 4 strings to match.
        switch (NameR[5]) {
        default: break;
        case 'a':	 // 2 strings to match.
          if (memcmp(NameR.data()+6, "x.", 2))
            break;
          switch (NameR[8]) {
          default: break;
          case 'l':	 // 1 string to match.
            if (NameR[9] != 'l')
              break;
            return Intrinsic::nvvm_max_ll;	 // "vvm.max.ll"
          case 'u':	 // 1 string to match.
            if (NameR[9] != 'i')
              break;
            return Intrinsic::nvvm_max_ui;	 // "vvm.max.ui"
          }
          break;
        case 'i':	 // 2 strings to match.
          if (memcmp(NameR.data()+6, "n.", 2))
            break;
          switch (NameR[8]) {
          default: break;
          case 'l':	 // 1 string to match.
            if (NameR[9] != 'l')
              break;
            return Intrinsic::nvvm_min_ll;	 // "vvm.min.ll"
          case 'u':	 // 1 string to match.
            if (NameR[9] != 'i')
              break;
            return Intrinsic::nvvm_min_ui;	 // "vvm.min.ui"
          }
          break;
        }
        break;
      case 'p':	 // 1 string to match.
        if (memcmp(NameR.data()+5, "opc.i", 5))
          break;
        return Intrinsic::nvvm_popc_i;	 // "vvm.popc.i"
      case 's':	 // 1 string to match.
        if (memcmp(NameR.data()+5, "ad.ui", 5))
          break;
        return Intrinsic::nvvm_sad_ui;	 // "vvm.sad.ui"
      }
      break;
    case 11:	 // 44 strings to match.
      if (memcmp(NameR.data()+0, "vvm.", 4))
        break;
      switch (NameR[4]) {
      default: break;
      case 'd':	 // 8 strings to match.
        if (NameR[5] != '2')
          break;
        switch (NameR[6]) {
        default: break;
        case 'l':	 // 4 strings to match.
          if (memcmp(NameR.data()+7, "l.r", 3))
            break;
          switch (NameR[10]) {
          default: break;
          case 'm':	 // 1 string to match.
            return Intrinsic::nvvm_d2ll_rm;	 // "vvm.d2ll.rm"
          case 'n':	 // 1 string to match.
            return Intrinsic::nvvm_d2ll_rn;	 // "vvm.d2ll.rn"
          case 'p':	 // 1 string to match.
            return Intrinsic::nvvm_d2ll_rp;	 // "vvm.d2ll.rp"
          case 'z':	 // 1 string to match.
            return Intrinsic::nvvm_d2ll_rz;	 // "vvm.d2ll.rz"
          }
          break;
        case 'u':	 // 4 strings to match.
          if (memcmp(NameR.data()+7, "i.r", 3))
            break;
          switch (NameR[10]) {
          default: break;
          case 'm':	 // 1 string to match.
            return Intrinsic::nvvm_d2ui_rm;	 // "vvm.d2ui.rm"
          case 'n':	 // 1 string to match.
            return Intrinsic::nvvm_d2ui_rn;	 // "vvm.d2ui.rn"
          case 'p':	 // 1 string to match.
            return Intrinsic::nvvm_d2ui_rp;	 // "vvm.d2ui.rp"
          case 'z':	 // 1 string to match.
            return Intrinsic::nvvm_d2ui_rz;	 // "vvm.d2ui.rz"
          }
          break;
        }
        break;
      case 'f':	 // 10 strings to match.
        switch (NameR[5]) {
        default: break;
        case '2':	 // 8 strings to match.
          switch (NameR[6]) {
          default: break;
          case 'l':	 // 4 strings to match.
            if (memcmp(NameR.data()+7, "l.r", 3))
              break;
            switch (NameR[10]) {
            default: break;
            case 'm':	 // 1 string to match.
              return Intrinsic::nvvm_f2ll_rm;	 // "vvm.f2ll.rm"
            case 'n':	 // 1 string to match.
              return Intrinsic::nvvm_f2ll_rn;	 // "vvm.f2ll.rn"
            case 'p':	 // 1 string to match.
              return Intrinsic::nvvm_f2ll_rp;	 // "vvm.f2ll.rp"
            case 'z':	 // 1 string to match.
              return Intrinsic::nvvm_f2ll_rz;	 // "vvm.f2ll.rz"
            }
            break;
          case 'u':	 // 4 strings to match.
            if (memcmp(NameR.data()+7, "i.r", 3))
              break;
            switch (NameR[10]) {
            default: break;
            case 'm':	 // 1 string to match.
              return Intrinsic::nvvm_f2ui_rm;	 // "vvm.f2ui.rm"
            case 'n':	 // 1 string to match.
              return Intrinsic::nvvm_f2ui_rn;	 // "vvm.f2ui.rn"
            case 'p':	 // 1 string to match.
              return Intrinsic::nvvm_f2ui_rp;	 // "vvm.f2ui.rp"
            case 'z':	 // 1 string to match.
              return Intrinsic::nvvm_f2ui_rz;	 // "vvm.f2ui.rz"
            }
            break;
          }
          break;
        case 'l':	 // 2 strings to match.
          if (memcmp(NameR.data()+6, "oor.", 4))
            break;
          switch (NameR[10]) {
          default: break;
          case 'd':	 // 1 string to match.
            return Intrinsic::nvvm_floor_d;	 // "vvm.floor.d"
          case 'f':	 // 1 string to match.
            return Intrinsic::nvvm_floor_f;	 // "vvm.floor.f"
          }
          break;
        }
        break;
      case 'l':	 // 8 strings to match.
        if (memcmp(NameR.data()+5, "l2", 2))
          break;
        switch (NameR[7]) {
        default: break;
        case 'd':	 // 4 strings to match.
          if (memcmp(NameR.data()+8, ".r", 2))
            break;
          switch (NameR[10]) {
          default: break;
          case 'm':	 // 1 string to match.
            return Intrinsic::nvvm_ll2d_rm;	 // "vvm.ll2d.rm"
          case 'n':	 // 1 string to match.
            return Intrinsic::nvvm_ll2d_rn;	 // "vvm.ll2d.rn"
          case 'p':	 // 1 string to match.
            return Intrinsic::nvvm_ll2d_rp;	 // "vvm.ll2d.rp"
          case 'z':	 // 1 string to match.
            return Intrinsic::nvvm_ll2d_rz;	 // "vvm.ll2d.rz"
          }
          break;
        case 'f':	 // 4 strings to match.
          if (memcmp(NameR.data()+8, ".r", 2))
            break;
          switch (NameR[10]) {
          default: break;
          case 'm':	 // 1 string to match.
            return Intrinsic::nvvm_ll2f_rm;	 // "vvm.ll2f.rm"
          case 'n':	 // 1 string to match.
            return Intrinsic::nvvm_ll2f_rn;	 // "vvm.ll2f.rn"
          case 'p':	 // 1 string to match.
            return Intrinsic::nvvm_ll2f_rp;	 // "vvm.ll2f.rp"
          case 'z':	 // 1 string to match.
            return Intrinsic::nvvm_ll2f_rz;	 // "vvm.ll2f.rz"
          }
          break;
        }
        break;
      case 'm':	 // 5 strings to match.
        switch (NameR[5]) {
        default: break;
        case 'a':	 // 1 string to match.
          if (memcmp(NameR.data()+6, "x.ull", 5))
            break;
          return Intrinsic::nvvm_max_ull;	 // "vvm.max.ull"
        case 'i':	 // 1 string to match.
          if (memcmp(NameR.data()+6, "n.ull", 5))
            break;
          return Intrinsic::nvvm_min_ull;	 // "vvm.min.ull"
        case 'o':	 // 1 string to match.
          if (memcmp(NameR.data()+6, "ve.i8", 5))
            break;
          return Intrinsic::nvvm_move_i8;	 // "vvm.move.i8"
        case 'u':	 // 2 strings to match.
          if (NameR[6] != 'l')
            break;
          switch (NameR[7]) {
          default: break;
          case '2':	 // 1 string to match.
            if (memcmp(NameR.data()+8, "4.i", 3))
              break;
            return Intrinsic::nvvm_mul24_i;	 // "vvm.mul24.i"
          case 'h':	 // 1 string to match.
            if (memcmp(NameR.data()+8, "i.i", 3))
              break;
            return Intrinsic::nvvm_mulhi_i;	 // "vvm.mulhi.i"
          }
          break;
        }
        break;
      case 'p':	 // 1 string to match.
        if (memcmp(NameR.data()+5, "opc.ll", 6))
          break;
        return Intrinsic::nvvm_popc_ll;	 // "vvm.popc.ll"
      case 'r':	 // 2 strings to match.
        if (memcmp(NameR.data()+5, "ound.", 5))
          break;
        switch (NameR[10]) {
        default: break;
        case 'd':	 // 1 string to match.
          return Intrinsic::nvvm_round_d;	 // "vvm.round.d"
        case 'f':	 // 1 string to match.
          return Intrinsic::nvvm_round_f;	 // "vvm.round.f"
        }
        break;
      case 't':	 // 2 strings to match.
        if (memcmp(NameR.data()+5, "runc.", 5))
          break;
        switch (NameR[10]) {
        default: break;
        case 'd':	 // 1 string to match.
          return Intrinsic::nvvm_trunc_d;	 // "vvm.trunc.d"
        case 'f':	 // 1 string to match.
          return Intrinsic::nvvm_trunc_f;	 // "vvm.trunc.f"
        }
        break;
      case 'u':	 // 8 strings to match.
        if (memcmp(NameR.data()+5, "i2", 2))
          break;
        switch (NameR[7]) {
        default: break;
        case 'd':	 // 4 strings to match.
          if (memcmp(NameR.data()+8, ".r", 2))
            break;
          switch (NameR[10]) {
          default: break;
          case 'm':	 // 1 string to match.
            return Intrinsic::nvvm_ui2d_rm;	 // "vvm.ui2d.rm"
          case 'n':	 // 1 string to match.
            return Intrinsic::nvvm_ui2d_rn;	 // "vvm.ui2d.rn"
          case 'p':	 // 1 string to match.
            return Intrinsic::nvvm_ui2d_rp;	 // "vvm.ui2d.rp"
          case 'z':	 // 1 string to match.
            return Intrinsic::nvvm_ui2d_rz;	 // "vvm.ui2d.rz"
          }
          break;
        case 'f':	 // 4 strings to match.
          if (memcmp(NameR.data()+8, ".r", 2))
            break;
          switch (NameR[10]) {
          default: break;
          case 'm':	 // 1 string to match.
            return Intrinsic::nvvm_ui2f_rm;	 // "vvm.ui2f.rm"
          case 'n':	 // 1 string to match.
            return Intrinsic::nvvm_ui2f_rn;	 // "vvm.ui2f.rn"
          case 'p':	 // 1 string to match.
            return Intrinsic::nvvm_ui2f_rp;	 // "vvm.ui2f.rp"
          case 'z':	 // 1 string to match.
            return Intrinsic::nvvm_ui2f_rz;	 // "vvm.ui2f.rz"
          }
          break;
        }
        break;
      }
      break;
    case 12:	 // 64 strings to match.
      if (memcmp(NameR.data()+0, "vvm.", 4))
        break;
      switch (NameR[4]) {
      default: break;
      case 'a':	 // 8 strings to match.
        if (memcmp(NameR.data()+5, "dd.r", 4))
          break;
        switch (NameR[9]) {
        default: break;
        case 'm':	 // 2 strings to match.
          if (NameR[10] != '.')
            break;
          switch (NameR[11]) {
          default: break;
          case 'd':	 // 1 string to match.
            return Intrinsic::nvvm_add_rm_d;	 // "vvm.add.rm.d"
          case 'f':	 // 1 string to match.
            return Intrinsic::nvvm_add_rm_f;	 // "vvm.add.rm.f"
          }
          break;
        case 'n':	 // 2 strings to match.
          if (NameR[10] != '.')
            break;
          switch (NameR[11]) {
          default: break;
          case 'd':	 // 1 string to match.
            return Intrinsic::nvvm_add_rn_d;	 // "vvm.add.rn.d"
          case 'f':	 // 1 string to match.
            return Intrinsic::nvvm_add_rn_f;	 // "vvm.add.rn.f"
          }
          break;
        case 'p':	 // 2 strings to match.
          if (NameR[10] != '.')
            break;
          switch (NameR[11]) {
          default: break;
          case 'd':	 // 1 string to match.
            return Intrinsic::nvvm_add_rp_d;	 // "vvm.add.rp.d"
          case 'f':	 // 1 string to match.
            return Intrinsic::nvvm_add_rp_f;	 // "vvm.add.rp.f"
          }
          break;
        case 'z':	 // 2 strings to match.
          if (NameR[10] != '.')
            break;
          switch (NameR[11]) {
          default: break;
          case 'd':	 // 1 string to match.
            return Intrinsic::nvvm_add_rz_d;	 // "vvm.add.rz.d"
          case 'f':	 // 1 string to match.
            return Intrinsic::nvvm_add_rz_f;	 // "vvm.add.rz.f"
          }
          break;
        }
        break;
      case 'b':	 // 1 string to match.
        if (memcmp(NameR.data()+5, "arrier0", 7))
          break;
        return Intrinsic::nvvm_barrier0;	 // "vvm.barrier0"
      case 'd':	 // 12 strings to match.
        switch (NameR[5]) {
        default: break;
        case '2':	 // 4 strings to match.
          if (memcmp(NameR.data()+6, "ull.r", 5))
            break;
          switch (NameR[11]) {
          default: break;
          case 'm':	 // 1 string to match.
            return Intrinsic::nvvm_d2ull_rm;	 // "vvm.d2ull.rm"
          case 'n':	 // 1 string to match.
            return Intrinsic::nvvm_d2ull_rn;	 // "vvm.d2ull.rn"
          case 'p':	 // 1 string to match.
            return Intrinsic::nvvm_d2ull_rp;	 // "vvm.d2ull.rp"
          case 'z':	 // 1 string to match.
            return Intrinsic::nvvm_d2ull_rz;	 // "vvm.d2ull.rz"
          }
          break;
        case 'i':	 // 8 strings to match.
          if (memcmp(NameR.data()+6, "v.r", 3))
            break;
          switch (NameR[9]) {
          default: break;
          case 'm':	 // 2 strings to match.
            if (NameR[10] != '.')
              break;
            switch (NameR[11]) {
            default: break;
            case 'd':	 // 1 string to match.
              return Intrinsic::nvvm_div_rm_d;	 // "vvm.div.rm.d"
            case 'f':	 // 1 string to match.
              return Intrinsic::nvvm_div_rm_f;	 // "vvm.div.rm.f"
            }
            break;
          case 'n':	 // 2 strings to match.
            if (NameR[10] != '.')
              break;
            switch (NameR[11]) {
            default: break;
            case 'd':	 // 1 string to match.
              return Intrinsic::nvvm_div_rn_d;	 // "vvm.div.rn.d"
            case 'f':	 // 1 string to match.
              return Intrinsic::nvvm_div_rn_f;	 // "vvm.div.rn.f"
            }
            break;
          case 'p':	 // 2 strings to match.
            if (NameR[10] != '.')
              break;
            switch (NameR[11]) {
            default: break;
            case 'd':	 // 1 string to match.
              return Intrinsic::nvvm_div_rp_d;	 // "vvm.div.rp.d"
            case 'f':	 // 1 string to match.
              return Intrinsic::nvvm_div_rp_f;	 // "vvm.div.rp.f"
            }
            break;
          case 'z':	 // 2 strings to match.
            if (NameR[10] != '.')
              break;
            switch (NameR[11]) {
            default: break;
            case 'd':	 // 1 string to match.
              return Intrinsic::nvvm_div_rz_d;	 // "vvm.div.rz.d"
            case 'f':	 // 1 string to match.
              return Intrinsic::nvvm_div_rz_f;	 // "vvm.div.rz.f"
            }
            break;
          }
          break;
        }
        break;
      case 'f':	 // 12 strings to match.
        switch (NameR[5]) {
        default: break;
        case '2':	 // 4 strings to match.
          if (memcmp(NameR.data()+6, "ull.r", 5))
            break;
          switch (NameR[11]) {
          default: break;
          case 'm':	 // 1 string to match.
            return Intrinsic::nvvm_f2ull_rm;	 // "vvm.f2ull.rm"
          case 'n':	 // 1 string to match.
            return Intrinsic::nvvm_f2ull_rn;	 // "vvm.f2ull.rn"
          case 'p':	 // 1 string to match.
            return Intrinsic::nvvm_f2ull_rp;	 // "vvm.f2ull.rp"
          case 'z':	 // 1 string to match.
            return Intrinsic::nvvm_f2ull_rz;	 // "vvm.f2ull.rz"
          }
          break;
        case 'm':	 // 8 strings to match.
          if (memcmp(NameR.data()+6, "a.r", 3))
            break;
          switch (NameR[9]) {
          default: break;
          case 'm':	 // 2 strings to match.
            if (NameR[10] != '.')
              break;
            switch (NameR[11]) {
            default: break;
            case 'd':	 // 1 string to match.
              return Intrinsic::nvvm_fma_rm_d;	 // "vvm.fma.rm.d"
            case 'f':	 // 1 string to match.
              return Intrinsic::nvvm_fma_rm_f;	 // "vvm.fma.rm.f"
            }
            break;
          case 'n':	 // 2 strings to match.
            if (NameR[10] != '.')
              break;
            switch (NameR[11]) {
            default: break;
            case 'd':	 // 1 string to match.
              return Intrinsic::nvvm_fma_rn_d;	 // "vvm.fma.rn.d"
            case 'f':	 // 1 string to match.
              return Intrinsic::nvvm_fma_rn_f;	 // "vvm.fma.rn.f"
            }
            break;
          case 'p':	 // 2 strings to match.
            if (NameR[10] != '.')
              break;
            switch (NameR[11]) {
            default: break;
            case 'd':	 // 1 string to match.
              return Intrinsic::nvvm_fma_rp_d;	 // "vvm.fma.rp.d"
            case 'f':	 // 1 string to match.
              return Intrinsic::nvvm_fma_rp_f;	 // "vvm.fma.rp.f"
            }
            break;
          case 'z':	 // 2 strings to match.
            if (NameR[10] != '.')
              break;
            switch (NameR[11]) {
            default: break;
            case 'd':	 // 1 string to match.
              return Intrinsic::nvvm_fma_rz_d;	 // "vvm.fma.rz.d"
            case 'f':	 // 1 string to match.
              return Intrinsic::nvvm_fma_rz_f;	 // "vvm.fma.rz.f"
            }
            break;
          }
          break;
        }
        break;
      case 'l':	 // 1 string to match.
        if (memcmp(NameR.data()+5, "ohi.i2d", 7))
          break;
        return Intrinsic::nvvm_lohi_i2d;	 // "vvm.lohi.i2d"
      case 'm':	 // 14 strings to match.
        switch (NameR[5]) {
        default: break;
        case 'o':	 // 3 strings to match.
          if (memcmp(NameR.data()+6, "ve.i", 4))
            break;
          switch (NameR[10]) {
          default: break;
          case '1':	 // 1 string to match.
            if (NameR[11] != '6')
              break;
            return Intrinsic::nvvm_move_i16;	 // "vvm.move.i16"
          case '3':	 // 1 string to match.
            if (NameR[11] != '2')
              break;
            return Intrinsic::nvvm_move_i32;	 // "vvm.move.i32"
          case '6':	 // 1 string to match.
            if (NameR[11] != '4')
              break;
            return Intrinsic::nvvm_move_i64;	 // "vvm.move.i64"
          }
          break;
        case 'u':	 // 11 strings to match.
          if (NameR[6] != 'l')
            break;
          switch (NameR[7]) {
          default: break;
          case '.':	 // 8 strings to match.
            if (NameR[8] != 'r')
              break;
            switch (NameR[9]) {
            default: break;
            case 'm':	 // 2 strings to match.
              if (NameR[10] != '.')
                break;
              switch (NameR[11]) {
              default: break;
              case 'd':	 // 1 string to match.
                return Intrinsic::nvvm_mul_rm_d;	 // "vvm.mul.rm.d"
              case 'f':	 // 1 string to match.
                return Intrinsic::nvvm_mul_rm_f;	 // "vvm.mul.rm.f"
              }
              break;
            case 'n':	 // 2 strings to match.
              if (NameR[10] != '.')
                break;
              switch (NameR[11]) {
              default: break;
              case 'd':	 // 1 string to match.
                return Intrinsic::nvvm_mul_rn_d;	 // "vvm.mul.rn.d"
              case 'f':	 // 1 string to match.
                return Intrinsic::nvvm_mul_rn_f;	 // "vvm.mul.rn.f"
              }
              break;
            case 'p':	 // 2 strings to match.
              if (NameR[10] != '.')
                break;
              switch (NameR[11]) {
              default: break;
              case 'd':	 // 1 string to match.
                return Intrinsic::nvvm_mul_rp_d;	 // "vvm.mul.rp.d"
              case 'f':	 // 1 string to match.
                return Intrinsic::nvvm_mul_rp_f;	 // "vvm.mul.rp.f"
              }
              break;
            case 'z':	 // 2 strings to match.
              if (NameR[10] != '.')
                break;
              switch (NameR[11]) {
              default: break;
              case 'd':	 // 1 string to match.
                return Intrinsic::nvvm_mul_rz_d;	 // "vvm.mul.rz.d"
              case 'f':	 // 1 string to match.
                return Intrinsic::nvvm_mul_rz_f;	 // "vvm.mul.rz.f"
              }
              break;
            }
            break;
          case '2':	 // 1 string to match.
            if (memcmp(NameR.data()+8, "4.ui", 4))
              break;
            return Intrinsic::nvvm_mul24_ui;	 // "vvm.mul24.ui"
          case 'h':	 // 2 strings to match.
            if (memcmp(NameR.data()+8, "i.", 2))
              break;
            switch (NameR[10]) {
            default: break;
            case 'l':	 // 1 string to match.
              if (NameR[11] != 'l')
                break;
              return Intrinsic::nvvm_mulhi_ll;	 // "vvm.mulhi.ll"
            case 'u':	 // 1 string to match.
              if (NameR[11] != 'i')
                break;
              return Intrinsic::nvvm_mulhi_ui;	 // "vvm.mulhi.ui"
            }
            break;
          }
          break;
        }
        break;
      case 'r':	 // 8 strings to match.
        if (memcmp(NameR.data()+5, "cp.r", 4))
          break;
        switch (NameR[9]) {
        default: break;
        case 'm':	 // 2 strings to match.
          if (NameR[10] != '.')
            break;
          switch (NameR[11]) {
          default: break;
          case 'd':	 // 1 string to match.
            return Intrinsic::nvvm_rcp_rm_d;	 // "vvm.rcp.rm.d"
          case 'f':	 // 1 string to match.
            return Intrinsic::nvvm_rcp_rm_f;	 // "vvm.rcp.rm.f"
          }
          break;
        case 'n':	 // 2 strings to match.
          if (NameR[10] != '.')
            break;
          switch (NameR[11]) {
          default: break;
          case 'd':	 // 1 string to match.
            return Intrinsic::nvvm_rcp_rn_d;	 // "vvm.rcp.rn.d"
          case 'f':	 // 1 string to match.
            return Intrinsic::nvvm_rcp_rn_f;	 // "vvm.rcp.rn.f"
          }
          break;
        case 'p':	 // 2 strings to match.
          if (NameR[10] != '.')
            break;
          switch (NameR[11]) {
          default: break;
          case 'd':	 // 1 string to match.
            return Intrinsic::nvvm_rcp_rp_d;	 // "vvm.rcp.rp.d"
          case 'f':	 // 1 string to match.
            return Intrinsic::nvvm_rcp_rp_f;	 // "vvm.rcp.rp.f"
          }
          break;
        case 'z':	 // 2 strings to match.
          if (NameR[10] != '.')
            break;
          switch (NameR[11]) {
          default: break;
          case 'd':	 // 1 string to match.
            return Intrinsic::nvvm_rcp_rz_d;	 // "vvm.rcp.rz.d"
          case 'f':	 // 1 string to match.
            return Intrinsic::nvvm_rcp_rz_f;	 // "vvm.rcp.rz.f"
          }
          break;
        }
        break;
      case 'u':	 // 8 strings to match.
        if (memcmp(NameR.data()+5, "ll2", 3))
          break;
        switch (NameR[8]) {
        default: break;
        case 'd':	 // 4 strings to match.
          if (memcmp(NameR.data()+9, ".r", 2))
            break;
          switch (NameR[11]) {
          default: break;
          case 'm':	 // 1 string to match.
            return Intrinsic::nvvm_ull2d_rm;	 // "vvm.ull2d.rm"
          case 'n':	 // 1 string to match.
            return Intrinsic::nvvm_ull2d_rn;	 // "vvm.ull2d.rn"
          case 'p':	 // 1 string to match.
            return Intrinsic::nvvm_ull2d_rp;	 // "vvm.ull2d.rp"
          case 'z':	 // 1 string to match.
            return Intrinsic::nvvm_ull2d_rz;	 // "vvm.ull2d.rz"
          }
          break;
        case 'f':	 // 4 strings to match.
          if (memcmp(NameR.data()+9, ".r", 2))
            break;
          switch (NameR[11]) {
          default: break;
          case 'm':	 // 1 string to match.
            return Intrinsic::nvvm_ull2f_rm;	 // "vvm.ull2f.rm"
          case 'n':	 // 1 string to match.
            return Intrinsic::nvvm_ull2f_rn;	 // "vvm.ull2f.rn"
          case 'p':	 // 1 string to match.
            return Intrinsic::nvvm_ull2f_rp;	 // "vvm.ull2f.rp"
          case 'z':	 // 1 string to match.
            return Intrinsic::nvvm_ull2f_rz;	 // "vvm.ull2f.rz"
          }
          break;
        }
        break;
      }
      break;
    case 13:	 // 10 strings to match.
      if (memcmp(NameR.data()+0, "vvm.", 4))
        break;
      switch (NameR[4]) {
      default: break;
      case 'm':	 // 2 strings to match.
        switch (NameR[5]) {
        default: break;
        case 'e':	 // 1 string to match.
          if (memcmp(NameR.data()+6, "mbar.gl", 7))
            break;
          return Intrinsic::nvvm_membar_gl;	 // "vvm.membar.gl"
        case 'u':	 // 1 string to match.
          if (memcmp(NameR.data()+6, "lhi.ull", 7))
            break;
          return Intrinsic::nvvm_mulhi_ull;	 // "vvm.mulhi.ull"
        }
        break;
      case 's':	 // 8 strings to match.
        if (memcmp(NameR.data()+5, "qrt.r", 5))
          break;
        switch (NameR[10]) {
        default: break;
        case 'm':	 // 2 strings to match.
          if (NameR[11] != '.')
            break;
          switch (NameR[12]) {
          default: break;
          case 'd':	 // 1 string to match.
            return Intrinsic::nvvm_sqrt_rm_d;	 // "vvm.sqrt.rm.d"
          case 'f':	 // 1 string to match.
            return Intrinsic::nvvm_sqrt_rm_f;	 // "vvm.sqrt.rm.f"
          }
          break;
        case 'n':	 // 2 strings to match.
          if (NameR[11] != '.')
            break;
          switch (NameR[12]) {
          default: break;
          case 'd':	 // 1 string to match.
            return Intrinsic::nvvm_sqrt_rn_d;	 // "vvm.sqrt.rn.d"
          case 'f':	 // 1 string to match.
            return Intrinsic::nvvm_sqrt_rn_f;	 // "vvm.sqrt.rn.f"
          }
          break;
        case 'p':	 // 2 strings to match.
          if (NameR[11] != '.')
            break;
          switch (NameR[12]) {
          default: break;
          case 'd':	 // 1 string to match.
            return Intrinsic::nvvm_sqrt_rp_d;	 // "vvm.sqrt.rp.d"
          case 'f':	 // 1 string to match.
            return Intrinsic::nvvm_sqrt_rp_f;	 // "vvm.sqrt.rp.f"
          }
          break;
        case 'z':	 // 2 strings to match.
          if (NameR[11] != '.')
            break;
          switch (NameR[12]) {
          default: break;
          case 'd':	 // 1 string to match.
            return Intrinsic::nvvm_sqrt_rz_d;	 // "vvm.sqrt.rz.d"
          case 'f':	 // 1 string to match.
            return Intrinsic::nvvm_sqrt_rz_f;	 // "vvm.sqrt.rz.f"
          }
          break;
        }
        break;
      }
      break;
    case 14:	 // 18 strings to match.
      if (memcmp(NameR.data()+0, "vvm.", 4))
        break;
      switch (NameR[4]) {
      default: break;
      case 'c':	 // 1 string to match.
        if (memcmp(NameR.data()+5, "eil.ftz.f", 9))
          break;
        return Intrinsic::nvvm_ceil_ftz_f;	 // "vvm.ceil.ftz.f"
      case 'd':	 // 4 strings to match.
        if (memcmp(NameR.data()+5, "2f.r", 4))
          break;
        switch (NameR[9]) {
        default: break;
        case 'm':	 // 1 string to match.
          if (memcmp(NameR.data()+10, ".ftz", 4))
            break;
          return Intrinsic::nvvm_d2f_rm_ftz;	 // "vvm.d2f.rm.ftz"
        case 'n':	 // 1 string to match.
          if (memcmp(NameR.data()+10, ".ftz", 4))
            break;
          return Intrinsic::nvvm_d2f_rn_ftz;	 // "vvm.d2f.rn.ftz"
        case 'p':	 // 1 string to match.
          if (memcmp(NameR.data()+10, ".ftz", 4))
            break;
          return Intrinsic::nvvm_d2f_rp_ftz;	 // "vvm.d2f.rp.ftz"
        case 'z':	 // 1 string to match.
          if (memcmp(NameR.data()+10, ".ftz", 4))
            break;
          return Intrinsic::nvvm_d2f_rz_ftz;	 // "vvm.d2f.rz.ftz"
        }
        break;
      case 'f':	 // 8 strings to match.
        switch (NameR[5]) {
        default: break;
        case '2':	 // 5 strings to match.
          switch (NameR[6]) {
          default: break;
          case 'h':	 // 1 string to match.
            if (memcmp(NameR.data()+7, ".rn.ftz", 7))
              break;
            return Intrinsic::nvvm_f2h_rn_ftz;	 // "vvm.f2h.rn.ftz"
          case 'i':	 // 4 strings to match.
            if (memcmp(NameR.data()+7, ".r", 2))
              break;
            switch (NameR[9]) {
            default: break;
            case 'm':	 // 1 string to match.
              if (memcmp(NameR.data()+10, ".ftz", 4))
                break;
              return Intrinsic::nvvm_f2i_rm_ftz;	 // "vvm.f2i.rm.ftz"
            case 'n':	 // 1 string to match.
              if (memcmp(NameR.data()+10, ".ftz", 4))
                break;
              return Intrinsic::nvvm_f2i_rn_ftz;	 // "vvm.f2i.rn.ftz"
            case 'p':	 // 1 string to match.
              if (memcmp(NameR.data()+10, ".ftz", 4))
                break;
              return Intrinsic::nvvm_f2i_rp_ftz;	 // "vvm.f2i.rp.ftz"
            case 'z':	 // 1 string to match.
              if (memcmp(NameR.data()+10, ".ftz", 4))
                break;
              return Intrinsic::nvvm_f2i_rz_ftz;	 // "vvm.f2i.rz.ftz"
            }
            break;
          }
          break;
        case 'a':	 // 1 string to match.
          if (memcmp(NameR.data()+6, "bs.ftz.f", 8))
            break;
          return Intrinsic::nvvm_fabs_ftz_f;	 // "vvm.fabs.ftz.f"
        case 'm':	 // 2 strings to match.
          switch (NameR[6]) {
          default: break;
          case 'a':	 // 1 string to match.
            if (memcmp(NameR.data()+7, "x.ftz.f", 7))
              break;
            return Intrinsic::nvvm_fmax_ftz_f;	 // "vvm.fmax.ftz.f"
          case 'i':	 // 1 string to match.
            if (memcmp(NameR.data()+7, "n.ftz.f", 7))
              break;
            return Intrinsic::nvvm_fmin_ftz_f;	 // "vvm.fmin.ftz.f"
          }
          break;
        }
        break;
      case 'm':	 // 3 strings to match.
        switch (NameR[5]) {
        default: break;
        case 'e':	 // 2 strings to match.
          if (memcmp(NameR.data()+6, "mbar.", 5))
            break;
          switch (NameR[11]) {
          default: break;
          case 'c':	 // 1 string to match.
            if (memcmp(NameR.data()+12, "ta", 2))
              break;
            return Intrinsic::nvvm_membar_cta;	 // "vvm.membar.cta"
          case 's':	 // 1 string to match.
            if (memcmp(NameR.data()+12, "ys", 2))
              break;
            return Intrinsic::nvvm_membar_sys;	 // "vvm.membar.sys"
          }
          break;
        case 'o':	 // 1 string to match.
          if (memcmp(NameR.data()+6, "ve.float", 8))
            break;
          return Intrinsic::nvvm_move_float;	 // "vvm.move.float"
        }
        break;
      case 's':	 // 2 strings to match.
        if (memcmp(NameR.data()+5, "aturate.", 8))
          break;
        switch (NameR[13]) {
        default: break;
        case 'd':	 // 1 string to match.
          return Intrinsic::nvvm_saturate_d;	 // "vvm.saturate.d"
        case 'f':	 // 1 string to match.
          return Intrinsic::nvvm_saturate_f;	 // "vvm.saturate.f"
        }
        break;
      }
      break;
    case 15:	 // 15 strings to match.
      if (memcmp(NameR.data()+0, "vvm.", 4))
        break;
      switch (NameR[4]) {
      default: break;
      case 'b':	 // 3 strings to match.
        switch (NameR[5]) {
        default: break;
        case 'a':	 // 1 string to match.
          if (memcmp(NameR.data()+6, "rrier0.or", 9))
            break;
          return Intrinsic::nvvm_barrier0_or;	 // "vvm.barrier0.or"
        case 'i':	 // 2 strings to match.
          if (memcmp(NameR.data()+6, "tcast.", 6))
            break;
          switch (NameR[12]) {
          default: break;
          case 'f':	 // 1 string to match.
            if (memcmp(NameR.data()+13, "2i", 2))
              break;
            return Intrinsic::nvvm_bitcast_f2i;	 // "vvm.bitcast.f2i"
          case 'i':	 // 1 string to match.
            if (memcmp(NameR.data()+13, "2f", 2))
              break;
            return Intrinsic::nvvm_bitcast_i2f;	 // "vvm.bitcast.i2f"
          }
          break;
        }
        break;
      case 'f':	 // 9 strings to match.
        switch (NameR[5]) {
        default: break;
        case '2':	 // 8 strings to match.
          switch (NameR[6]) {
          default: break;
          case 'l':	 // 4 strings to match.
            if (memcmp(NameR.data()+7, "l.r", 3))
              break;
            switch (NameR[10]) {
            default: break;
            case 'm':	 // 1 string to match.
              if (memcmp(NameR.data()+11, ".ftz", 4))
                break;
              return Intrinsic::nvvm_f2ll_rm_ftz;	 // "vvm.f2ll.rm.ftz"
            case 'n':	 // 1 string to match.
              if (memcmp(NameR.data()+11, ".ftz", 4))
                break;
              return Intrinsic::nvvm_f2ll_rn_ftz;	 // "vvm.f2ll.rn.ftz"
            case 'p':	 // 1 string to match.
              if (memcmp(NameR.data()+11, ".ftz", 4))
                break;
              return Intrinsic::nvvm_f2ll_rp_ftz;	 // "vvm.f2ll.rp.ftz"
            case 'z':	 // 1 string to match.
              if (memcmp(NameR.data()+11, ".ftz", 4))
                break;
              return Intrinsic::nvvm_f2ll_rz_ftz;	 // "vvm.f2ll.rz.ftz"
            }
            break;
          case 'u':	 // 4 strings to match.
            if (memcmp(NameR.data()+7, "i.r", 3))
              break;
            switch (NameR[10]) {
            default: break;
            case 'm':	 // 1 string to match.
              if (memcmp(NameR.data()+11, ".ftz", 4))
                break;
              return Intrinsic::nvvm_f2ui_rm_ftz;	 // "vvm.f2ui.rm.ftz"
            case 'n':	 // 1 string to match.
              if (memcmp(NameR.data()+11, ".ftz", 4))
                break;
              return Intrinsic::nvvm_f2ui_rn_ftz;	 // "vvm.f2ui.rn.ftz"
            case 'p':	 // 1 string to match.
              if (memcmp(NameR.data()+11, ".ftz", 4))
                break;
              return Intrinsic::nvvm_f2ui_rp_ftz;	 // "vvm.f2ui.rp.ftz"
            case 'z':	 // 1 string to match.
              if (memcmp(NameR.data()+11, ".ftz", 4))
                break;
              return Intrinsic::nvvm_f2ui_rz_ftz;	 // "vvm.f2ui.rz.ftz"
            }
            break;
          }
          break;
        case 'l':	 // 1 string to match.
          if (memcmp(NameR.data()+6, "oor.ftz.f", 9))
            break;
          return Intrinsic::nvvm_floor_ftz_f;	 // "vvm.floor.ftz.f"
        }
        break;
      case 'm':	 // 1 string to match.
        if (memcmp(NameR.data()+5, "ove.double", 10))
          break;
        return Intrinsic::nvvm_move_double;	 // "vvm.move.double"
      case 'r':	 // 1 string to match.
        if (memcmp(NameR.data()+5, "ound.ftz.f", 10))
          break;
        return Intrinsic::nvvm_round_ftz_f;	 // "vvm.round.ftz.f"
      case 't':	 // 1 string to match.
        if (memcmp(NameR.data()+5, "runc.ftz.f", 10))
          break;
        return Intrinsic::nvvm_trunc_ftz_f;	 // "vvm.trunc.ftz.f"
      }
      break;
    case 16:	 // 34 strings to match.
      if (memcmp(NameR.data()+0, "vvm.", 4))
        break;
      switch (NameR[4]) {
      default: break;
      case 'a':	 // 4 strings to match.
        if (memcmp(NameR.data()+5, "dd.r", 4))
          break;
        switch (NameR[9]) {
        default: break;
        case 'm':	 // 1 string to match.
          if (memcmp(NameR.data()+10, ".ftz.f", 6))
            break;
          return Intrinsic::nvvm_add_rm_ftz_f;	 // "vvm.add.rm.ftz.f"
        case 'n':	 // 1 string to match.
          if (memcmp(NameR.data()+10, ".ftz.f", 6))
            break;
          return Intrinsic::nvvm_add_rn_ftz_f;	 // "vvm.add.rn.ftz.f"
        case 'p':	 // 1 string to match.
          if (memcmp(NameR.data()+10, ".ftz.f", 6))
            break;
          return Intrinsic::nvvm_add_rp_ftz_f;	 // "vvm.add.rp.ftz.f"
        case 'z':	 // 1 string to match.
          if (memcmp(NameR.data()+10, ".ftz.f", 6))
            break;
          return Intrinsic::nvvm_add_rz_ftz_f;	 // "vvm.add.rz.ftz.f"
        }
        break;
      case 'b':	 // 3 strings to match.
        switch (NameR[5]) {
        default: break;
        case 'a':	 // 1 string to match.
          if (memcmp(NameR.data()+6, "rrier0.and", 10))
            break;
          return Intrinsic::nvvm_barrier0_and;	 // "vvm.barrier0.and"
        case 'i':	 // 2 strings to match.
          if (memcmp(NameR.data()+6, "tcast.", 6))
            break;
          switch (NameR[12]) {
          default: break;
          case 'd':	 // 1 string to match.
            if (memcmp(NameR.data()+13, "2ll", 3))
              break;
            return Intrinsic::nvvm_bitcast_d2ll;	 // "vvm.bitcast.d2ll"
          case 'l':	 // 1 string to match.
            if (memcmp(NameR.data()+13, "l2d", 3))
              break;
            return Intrinsic::nvvm_bitcast_ll2d;	 // "vvm.bitcast.ll2d"
          }
          break;
        }
        break;
      case 'c':	 // 1 string to match.
        if (memcmp(NameR.data()+5, "os.approx.f", 11))
          break;
        return Intrinsic::nvvm_cos_approx_f;	 // "vvm.cos.approx.f"
      case 'd':	 // 5 strings to match.
        if (memcmp(NameR.data()+5, "iv.", 3))
          break;
        switch (NameR[8]) {
        default: break;
        case 'a':	 // 1 string to match.
          if (memcmp(NameR.data()+9, "pprox.f", 7))
            break;
          return Intrinsic::nvvm_div_approx_f;	 // "vvm.div.approx.f"
        case 'r':	 // 4 strings to match.
          switch (NameR[9]) {
          default: break;
          case 'm':	 // 1 string to match.
            if (memcmp(NameR.data()+10, ".ftz.f", 6))
              break;
            return Intrinsic::nvvm_div_rm_ftz_f;	 // "vvm.div.rm.ftz.f"
          case 'n':	 // 1 string to match.
            if (memcmp(NameR.data()+10, ".ftz.f", 6))
              break;
            return Intrinsic::nvvm_div_rn_ftz_f;	 // "vvm.div.rn.ftz.f"
          case 'p':	 // 1 string to match.
            if (memcmp(NameR.data()+10, ".ftz.f", 6))
              break;
            return Intrinsic::nvvm_div_rp_ftz_f;	 // "vvm.div.rp.ftz.f"
          case 'z':	 // 1 string to match.
            if (memcmp(NameR.data()+10, ".ftz.f", 6))
              break;
            return Intrinsic::nvvm_div_rz_ftz_f;	 // "vvm.div.rz.ftz.f"
          }
          break;
        }
        break;
      case 'e':	 // 2 strings to match.
        if (memcmp(NameR.data()+5, "x2.approx.", 10))
          break;
        switch (NameR[15]) {
        default: break;
        case 'd':	 // 1 string to match.
          return Intrinsic::nvvm_ex2_approx_d;	 // "vvm.ex2.approx.d"
        case 'f':	 // 1 string to match.
          return Intrinsic::nvvm_ex2_approx_f;	 // "vvm.ex2.approx.f"
        }
        break;
      case 'f':	 // 8 strings to match.
        switch (NameR[5]) {
        default: break;
        case '2':	 // 4 strings to match.
          if (memcmp(NameR.data()+6, "ull.r", 5))
            break;
          switch (NameR[11]) {
          default: break;
          case 'm':	 // 1 string to match.
            if (memcmp(NameR.data()+12, ".ftz", 4))
              break;
            return Intrinsic::nvvm_f2ull_rm_ftz;	 // "vvm.f2ull.rm.ftz"
          case 'n':	 // 1 string to match.
            if (memcmp(NameR.data()+12, ".ftz", 4))
              break;
            return Intrinsic::nvvm_f2ull_rn_ftz;	 // "vvm.f2ull.rn.ftz"
          case 'p':	 // 1 string to match.
            if (memcmp(NameR.data()+12, ".ftz", 4))
              break;
            return Intrinsic::nvvm_f2ull_rp_ftz;	 // "vvm.f2ull.rp.ftz"
          case 'z':	 // 1 string to match.
            if (memcmp(NameR.data()+12, ".ftz", 4))
              break;
            return Intrinsic::nvvm_f2ull_rz_ftz;	 // "vvm.f2ull.rz.ftz"
          }
          break;
        case 'm':	 // 4 strings to match.
          if (memcmp(NameR.data()+6, "a.r", 3))
            break;
          switch (NameR[9]) {
          default: break;
          case 'm':	 // 1 string to match.
            if (memcmp(NameR.data()+10, ".ftz.f", 6))
              break;
            return Intrinsic::nvvm_fma_rm_ftz_f;	 // "vvm.fma.rm.ftz.f"
          case 'n':	 // 1 string to match.
            if (memcmp(NameR.data()+10, ".ftz.f", 6))
              break;
            return Intrinsic::nvvm_fma_rn_ftz_f;	 // "vvm.fma.rn.ftz.f"
          case 'p':	 // 1 string to match.
            if (memcmp(NameR.data()+10, ".ftz.f", 6))
              break;
            return Intrinsic::nvvm_fma_rp_ftz_f;	 // "vvm.fma.rp.ftz.f"
          case 'z':	 // 1 string to match.
            if (memcmp(NameR.data()+10, ".ftz.f", 6))
              break;
            return Intrinsic::nvvm_fma_rz_ftz_f;	 // "vvm.fma.rz.ftz.f"
          }
          break;
        }
        break;
      case 'l':	 // 2 strings to match.
        if (memcmp(NameR.data()+5, "g2.approx.", 10))
          break;
        switch (NameR[15]) {
        default: break;
        case 'd':	 // 1 string to match.
          return Intrinsic::nvvm_lg2_approx_d;	 // "vvm.lg2.approx.d"
        case 'f':	 // 1 string to match.
          return Intrinsic::nvvm_lg2_approx_f;	 // "vvm.lg2.approx.f"
        }
        break;
      case 'm':	 // 4 strings to match.
        if (memcmp(NameR.data()+5, "ul.r", 4))
          break;
        switch (NameR[9]) {
        default: break;
        case 'm':	 // 1 string to match.
          if (memcmp(NameR.data()+10, ".ftz.f", 6))
            break;
          return Intrinsic::nvvm_mul_rm_ftz_f;	 // "vvm.mul.rm.ftz.f"
        case 'n':	 // 1 string to match.
          if (memcmp(NameR.data()+10, ".ftz.f", 6))
            break;
          return Intrinsic::nvvm_mul_rn_ftz_f;	 // "vvm.mul.rn.ftz.f"
        case 'p':	 // 1 string to match.
          if (memcmp(NameR.data()+10, ".ftz.f", 6))
            break;
          return Intrinsic::nvvm_mul_rp_ftz_f;	 // "vvm.mul.rp.ftz.f"
        case 'z':	 // 1 string to match.
          if (memcmp(NameR.data()+10, ".ftz.f", 6))
            break;
          return Intrinsic::nvvm_mul_rz_ftz_f;	 // "vvm.mul.rz.ftz.f"
        }
        break;
      case 'r':	 // 4 strings to match.
        if (memcmp(NameR.data()+5, "cp.r", 4))
          break;
        switch (NameR[9]) {
        default: break;
        case 'm':	 // 1 string to match.
          if (memcmp(NameR.data()+10, ".ftz.f", 6))
            break;
          return Intrinsic::nvvm_rcp_rm_ftz_f;	 // "vvm.rcp.rm.ftz.f"
        case 'n':	 // 1 string to match.
          if (memcmp(NameR.data()+10, ".ftz.f", 6))
            break;
          return Intrinsic::nvvm_rcp_rn_ftz_f;	 // "vvm.rcp.rn.ftz.f"
        case 'p':	 // 1 string to match.
          if (memcmp(NameR.data()+10, ".ftz.f", 6))
            break;
          return Intrinsic::nvvm_rcp_rp_ftz_f;	 // "vvm.rcp.rp.ftz.f"
        case 'z':	 // 1 string to match.
          if (memcmp(NameR.data()+10, ".ftz.f", 6))
            break;
          return Intrinsic::nvvm_rcp_rz_ftz_f;	 // "vvm.rcp.rz.ftz.f"
        }
        break;
      case 's':	 // 1 string to match.
        if (memcmp(NameR.data()+5, "in.approx.f", 11))
          break;
        return Intrinsic::nvvm_sin_approx_f;	 // "vvm.sin.approx.f"
      }
      break;
    case 17:	 // 6 strings to match.
      if (memcmp(NameR.data()+0, "vvm.", 4))
        break;
      switch (NameR[4]) {
      default: break;
      case 'b':	 // 1 string to match.
        if (memcmp(NameR.data()+5, "arrier0.popc", 12))
          break;
        return Intrinsic::nvvm_barrier0_popc;	 // "vvm.barrier0.popc"
      case 's':	 // 5 strings to match.
        if (memcmp(NameR.data()+5, "qrt.", 4))
          break;
        switch (NameR[9]) {
        default: break;
        case 'a':	 // 1 string to match.
          if (memcmp(NameR.data()+10, "pprox.f", 7))
            break;
          return Intrinsic::nvvm_sqrt_approx_f;	 // "vvm.sqrt.approx.f"
        case 'r':	 // 4 strings to match.
          switch (NameR[10]) {
          default: break;
          case 'm':	 // 1 string to match.
            if (memcmp(NameR.data()+11, ".ftz.f", 6))
              break;
            return Intrinsic::nvvm_sqrt_rm_ftz_f;	 // "vvm.sqrt.rm.ftz.f"
          case 'n':	 // 1 string to match.
            if (memcmp(NameR.data()+11, ".ftz.f", 6))
              break;
            return Intrinsic::nvvm_sqrt_rn_ftz_f;	 // "vvm.sqrt.rn.ftz.f"
          case 'p':	 // 1 string to match.
            if (memcmp(NameR.data()+11, ".ftz.f", 6))
              break;
            return Intrinsic::nvvm_sqrt_rp_ftz_f;	 // "vvm.sqrt.rp.ftz.f"
          case 'z':	 // 1 string to match.
            if (memcmp(NameR.data()+11, ".ftz.f", 6))
              break;
            return Intrinsic::nvvm_sqrt_rz_ftz_f;	 // "vvm.sqrt.rz.ftz.f"
          }
          break;
        }
        break;
      }
      break;
    case 18:	 // 3 strings to match.
      if (memcmp(NameR.data()+0, "vvm.", 4))
        break;
      switch (NameR[4]) {
      default: break;
      case 'r':	 // 2 strings to match.
        if (memcmp(NameR.data()+5, "sqrt.approx.", 12))
          break;
        switch (NameR[17]) {
        default: break;
        case 'd':	 // 1 string to match.
          return Intrinsic::nvvm_rsqrt_approx_d;	 // "vvm.rsqrt.approx.d"
        case 'f':	 // 1 string to match.
          return Intrinsic::nvvm_rsqrt_approx_f;	 // "vvm.rsqrt.approx.f"
        }
        break;
      case 's':	 // 1 string to match.
        if (memcmp(NameR.data()+5, "aturate.ftz.f", 13))
          break;
        return Intrinsic::nvvm_saturate_ftz_f;	 // "vvm.saturate.ftz.f"
      }
      break;
    case 20:	 // 6 strings to match.
      if (memcmp(NameR.data()+0, "vvm.", 4))
        break;
      switch (NameR[4]) {
      default: break;
      case 'c':	 // 1 string to match.
        if (memcmp(NameR.data()+5, "os.approx.ftz.f", 15))
          break;
        return Intrinsic::nvvm_cos_approx_ftz_f;	 // "vvm.cos.approx.ftz.f"
      case 'd':	 // 1 string to match.
        if (memcmp(NameR.data()+5, "iv.approx.ftz.f", 15))
          break;
        return Intrinsic::nvvm_div_approx_ftz_f;	 // "vvm.div.approx.ftz.f"
      case 'e':	 // 1 string to match.
        if (memcmp(NameR.data()+5, "x2.approx.ftz.f", 15))
          break;
        return Intrinsic::nvvm_ex2_approx_ftz_f;	 // "vvm.ex2.approx.ftz.f"
      case 'l':	 // 1 string to match.
        if (memcmp(NameR.data()+5, "g2.approx.ftz.f", 15))
          break;
        return Intrinsic::nvvm_lg2_approx_ftz_f;	 // "vvm.lg2.approx.ftz.f"
      case 'r':	 // 1 string to match.
        if (memcmp(NameR.data()+5, "cp.approx.ftz.d", 15))
          break;
        return Intrinsic::nvvm_rcp_approx_ftz_d;	 // "vvm.rcp.approx.ftz.d"
      case 's':	 // 1 string to match.
        if (memcmp(NameR.data()+5, "in.approx.ftz.f", 15))
          break;
        return Intrinsic::nvvm_sin_approx_ftz_f;	 // "vvm.sin.approx.ftz.f"
      }
      break;
    case 21:	 // 1 string to match.
      if (memcmp(NameR.data()+0, "vvm.sqrt.approx.ftz.f", 21))
        break;
      return Intrinsic::nvvm_sqrt_approx_ftz_f;	 // "vvm.sqrt.approx.ftz.f"
    case 22:	 // 1 string to match.
      if (memcmp(NameR.data()+0, "vvm.rsqrt.approx.ftz.f", 22))
        break;
      return Intrinsic::nvvm_rsqrt_approx_ftz_f;	 // "vvm.rsqrt.approx.ftz.f"
    case 23:	 // 3 strings to match.
      if (memcmp(NameR.data()+0, "vvm.read.ptx.sreg.tid.", 22))
        break;
      switch (NameR[22]) {
      default: break;
      case 'x':	 // 1 string to match.
        return Intrinsic::nvvm_read_ptx_sreg_tid_x;	 // "vvm.read.ptx.sreg.tid.x"
      case 'y':	 // 1 string to match.
        return Intrinsic::nvvm_read_ptx_sreg_tid_y;	 // "vvm.read.ptx.sreg.tid.y"
      case 'z':	 // 1 string to match.
        return Intrinsic::nvvm_read_ptx_sreg_tid_z;	 // "vvm.read.ptx.sreg.tid.z"
      }
      break;
    case 24:	 // 3 strings to match.
      if (memcmp(NameR.data()+0, "vvm.read.ptx.sreg.ntid.", 23))
        break;
      switch (NameR[23]) {
      default: break;
      case 'x':	 // 1 string to match.
        return Intrinsic::nvvm_read_ptx_sreg_ntid_x;	 // "vvm.read.ptx.sreg.ntid.x"
      case 'y':	 // 1 string to match.
        return Intrinsic::nvvm_read_ptx_sreg_ntid_y;	 // "vvm.read.ptx.sreg.ntid.y"
      case 'z':	 // 1 string to match.
        return Intrinsic::nvvm_read_ptx_sreg_ntid_z;	 // "vvm.read.ptx.sreg.ntid.z"
      }
      break;
    case 25:	 // 3 strings to match.
      if (memcmp(NameR.data()+0, "vvm.read.ptx.sreg.ctaid.", 24))
        break;
      switch (NameR[24]) {
      default: break;
      case 'x':	 // 1 string to match.
        return Intrinsic::nvvm_read_ptx_sreg_ctaid_x;	 // "vvm.read.ptx.sreg.ctaid.x"
      case 'y':	 // 1 string to match.
        return Intrinsic::nvvm_read_ptx_sreg_ctaid_y;	 // "vvm.read.ptx.sreg.ctaid.y"
      case 'z':	 // 1 string to match.
        return Intrinsic::nvvm_read_ptx_sreg_ctaid_z;	 // "vvm.read.ptx.sreg.ctaid.z"
      }
      break;
    case 26:	 // 4 strings to match.
      if (memcmp(NameR.data()+0, "vvm.read.ptx.sreg.", 18))
        break;
      switch (NameR[18]) {
      default: break;
      case 'n':	 // 3 strings to match.
        if (memcmp(NameR.data()+19, "ctaid.", 6))
          break;
        switch (NameR[25]) {
        default: break;
        case 'x':	 // 1 string to match.
          return Intrinsic::nvvm_read_ptx_sreg_nctaid_x;	 // "vvm.read.ptx.sreg.nctaid.x"
        case 'y':	 // 1 string to match.
          return Intrinsic::nvvm_read_ptx_sreg_nctaid_y;	 // "vvm.read.ptx.sreg.nctaid.y"
        case 'z':	 // 1 string to match.
          return Intrinsic::nvvm_read_ptx_sreg_nctaid_z;	 // "vvm.read.ptx.sreg.nctaid.z"
        }
        break;
      case 'w':	 // 1 string to match.
        if (memcmp(NameR.data()+19, "arpsize", 7))
          break;
        return Intrinsic::nvvm_read_ptx_sreg_warpsize;	 // "vvm.read.ptx.sreg.warpsize"
      }
      break;
    }
    break;  // end of 'n' case.
  case 'o':
    if (NameR.startswith("bjectsize.")) return Intrinsic::objectsize;
    break;  // end of 'o' case.
  case 'p':
    if (NameR.startswith("ow.")) return Intrinsic::pow;
    if (NameR.startswith("owi.")) return Intrinsic::powi;
    if (NameR.startswith("tr.annotation.")) return Intrinsic::ptr_annotation;
    switch (NameR.size()) {
    default: break;
    case 7:	 // 8 strings to match.
      switch (NameR[0]) {
      default: break;
      case 'c':	 // 1 string to match.
        if (memcmp(NameR.data()+1, "marker", 6))
          break;
        return Intrinsic::pcmarker;	 // "cmarker"
      case 'p':	 // 6 strings to match.
        if (memcmp(NameR.data()+1, "c.", 2))
          break;
        switch (NameR[3]) {
        default: break;
        case 'd':	 // 5 strings to match.
          if (memcmp(NameR.data()+4, "cb", 2))
            break;
          switch (NameR[6]) {
          default: break;
          case 'a':	 // 1 string to match.
            return Intrinsic::ppc_dcba;	 // "pc.dcba"
          case 'f':	 // 1 string to match.
            return Intrinsic::ppc_dcbf;	 // "pc.dcbf"
          case 'i':	 // 1 string to match.
            return Intrinsic::ppc_dcbi;	 // "pc.dcbi"
          case 't':	 // 1 string to match.
            return Intrinsic::ppc_dcbt;	 // "pc.dcbt"
          case 'z':	 // 1 string to match.
            return Intrinsic::ppc_dcbz;	 // "pc.dcbz"
          }
          break;
        case 's':	 // 1 string to match.
          if (memcmp(NameR.data()+4, "ync", 3))
            break;
          return Intrinsic::ppc_sync;	 // "pc.sync"
        }
        break;
      case 'r':	 // 1 string to match.
        if (memcmp(NameR.data()+1, "efetch", 6))
          break;
        return Intrinsic::prefetch;	 // "refetch"
      }
      break;
    case 8:	 // 2 strings to match.
      if (memcmp(NameR.data()+0, "pc.dcb", 6))
        break;
      switch (NameR[6]) {
      default: break;
      case 's':	 // 1 string to match.
        if (NameR[7] != 't')
          break;
        return Intrinsic::ppc_dcbst;	 // "pc.dcbst"
      case 'z':	 // 1 string to match.
        if (NameR[7] != 'l')
          break;
        return Intrinsic::ppc_dcbzl;	 // "pc.dcbzl"
      }
      break;
    case 9:	 // 1 string to match.
      if (memcmp(NameR.data()+0, "pc.dcbtst", 9))
        break;
      return Intrinsic::ppc_dcbtst;	 // "pc.dcbtst"
    case 11:	 // 5 strings to match.
      if (memcmp(NameR.data()+0, "tx.", 3))
        break;
      switch (NameR[3]) {
      default: break;
      case 'b':	 // 1 string to match.
        if (memcmp(NameR.data()+4, "ar.sync", 7))
          break;
        return Intrinsic::ptx_bar_sync;	 // "tx.bar.sync"
      case 'r':	 // 4 strings to match.
        if (memcmp(NameR.data()+4, "ead.pm", 6))
          break;
        switch (NameR[10]) {
        default: break;
        case '0':	 // 1 string to match.
          return Intrinsic::ptx_read_pm0;	 // "tx.read.pm0"
        case '1':	 // 1 string to match.
          return Intrinsic::ptx_read_pm1;	 // "tx.read.pm1"
        case '2':	 // 1 string to match.
          return Intrinsic::ptx_read_pm2;	 // "tx.read.pm2"
        case '3':	 // 1 string to match.
          return Intrinsic::ptx_read_pm3;	 // "tx.read.pm3"
        }
        break;
      }
      break;
    case 12:	 // 1 string to match.
      if (memcmp(NameR.data()+0, "tx.read.smid", 12))
        break;
      return Intrinsic::ptx_read_smid;	 // "tx.read.smid"
    case 13:	 // 6 strings to match.
      if (memcmp(NameR.data()+0, "tx.read.", 8))
        break;
      switch (NameR[8]) {
      default: break;
      case 'c':	 // 1 string to match.
        if (memcmp(NameR.data()+9, "lock", 4))
          break;
        return Intrinsic::ptx_read_clock;	 // "tx.read.clock"
      case 'n':	 // 1 string to match.
        if (memcmp(NameR.data()+9, "smid", 4))
          break;
        return Intrinsic::ptx_read_nsmid;	 // "tx.read.nsmid"
      case 't':	 // 4 strings to match.
        if (memcmp(NameR.data()+9, "id.", 3))
          break;
        switch (NameR[12]) {
        default: break;
        case 'w':	 // 1 string to match.
          return Intrinsic::ptx_read_tid_w;	 // "tx.read.tid.w"
        case 'x':	 // 1 string to match.
          return Intrinsic::ptx_read_tid_x;	 // "tx.read.tid.x"
        case 'y':	 // 1 string to match.
          return Intrinsic::ptx_read_tid_y;	 // "tx.read.tid.y"
        case 'z':	 // 1 string to match.
          return Intrinsic::ptx_read_tid_z;	 // "tx.read.tid.z"
        }
        break;
      }
      break;
    case 14:	 // 12 strings to match.
      switch (NameR[0]) {
      default: break;
      case 'p':	 // 5 strings to match.
        if (memcmp(NameR.data()+1, "c.altivec.", 10))
          break;
        switch (NameR[11]) {
        default: break;
        case 'd':	 // 2 strings to match.
          if (NameR[12] != 's')
            break;
          switch (NameR[13]) {
          default: break;
          case 's':	 // 1 string to match.
            return Intrinsic::ppc_altivec_dss;	 // "pc.altivec.dss"
          case 't':	 // 1 string to match.
            return Intrinsic::ppc_altivec_dst;	 // "pc.altivec.dst"
          }
          break;
        case 'l':	 // 1 string to match.
          if (memcmp(NameR.data()+12, "vx", 2))
            break;
          return Intrinsic::ppc_altivec_lvx;	 // "pc.altivec.lvx"
        case 'v':	 // 2 strings to match.
          if (NameR[12] != 's')
            break;
          switch (NameR[13]) {
          default: break;
          case 'l':	 // 1 string to match.
            return Intrinsic::ppc_altivec_vsl;	 // "pc.altivec.vsl"
          case 'r':	 // 1 string to match.
            return Intrinsic::ppc_altivec_vsr;	 // "pc.altivec.vsr"
          }
          break;
        }
        break;
      case 't':	 // 7 strings to match.
        if (memcmp(NameR.data()+1, "x.read.", 7))
          break;
        switch (NameR[8]) {
        default: break;
        case 'g':	 // 1 string to match.
          if (memcmp(NameR.data()+9, "ridid", 5))
            break;
          return Intrinsic::ptx_read_gridid;	 // "tx.read.gridid"
        case 'l':	 // 1 string to match.
          if (memcmp(NameR.data()+9, "aneid", 5))
            break;
          return Intrinsic::ptx_read_laneid;	 // "tx.read.laneid"
        case 'n':	 // 4 strings to match.
          if (memcmp(NameR.data()+9, "tid.", 4))
            break;
          switch (NameR[13]) {
          default: break;
          case 'w':	 // 1 string to match.
            return Intrinsic::ptx_read_ntid_w;	 // "tx.read.ntid.w"
          case 'x':	 // 1 string to match.
            return Intrinsic::ptx_read_ntid_x;	 // "tx.read.ntid.x"
          case 'y':	 // 1 string to match.
            return Intrinsic::ptx_read_ntid_y;	 // "tx.read.ntid.y"
          case 'z':	 // 1 string to match.
            return Intrinsic::ptx_read_ntid_z;	 // "tx.read.ntid.z"
          }
          break;
        case 'w':	 // 1 string to match.
          if (memcmp(NameR.data()+9, "arpid", 5))
            break;
          return Intrinsic::ptx_read_warpid;	 // "tx.read.warpid"
        }
        break;
      }
      break;
    case 15:	 // 23 strings to match.
      switch (NameR[0]) {
      default: break;
      case 'p':	 // 17 strings to match.
        if (memcmp(NameR.data()+1, "c.altivec.", 10))
          break;
        switch (NameR[11]) {
        default: break;
        case 'd':	 // 1 string to match.
          if (memcmp(NameR.data()+12, "stt", 3))
            break;
          return Intrinsic::ppc_altivec_dstt;	 // "pc.altivec.dstt"
        case 'l':	 // 3 strings to match.
          if (NameR[12] != 'v')
            break;
          switch (NameR[13]) {
          default: break;
          case 's':	 // 2 strings to match.
            switch (NameR[14]) {
            default: break;
            case 'l':	 // 1 string to match.
              return Intrinsic::ppc_altivec_lvsl;	 // "pc.altivec.lvsl"
            case 'r':	 // 1 string to match.
              return Intrinsic::ppc_altivec_lvsr;	 // "pc.altivec.lvsr"
            }
            break;
          case 'x':	 // 1 string to match.
            if (NameR[14] != 'l')
              break;
            return Intrinsic::ppc_altivec_lvxl;	 // "pc.altivec.lvxl"
          }
          break;
        case 's':	 // 1 string to match.
          if (memcmp(NameR.data()+12, "tvx", 3))
            break;
          return Intrinsic::ppc_altivec_stvx;	 // "pc.altivec.stvx"
        case 'v':	 // 12 strings to match.
          switch (NameR[12]) {
          default: break;
          case 'r':	 // 3 strings to match.
            if (NameR[13] != 'l')
              break;
            switch (NameR[14]) {
            default: break;
            case 'b':	 // 1 string to match.
              return Intrinsic::ppc_altivec_vrlb;	 // "pc.altivec.vrlb"
            case 'h':	 // 1 string to match.
              return Intrinsic::ppc_altivec_vrlh;	 // "pc.altivec.vrlh"
            case 'w':	 // 1 string to match.
              return Intrinsic::ppc_altivec_vrlw;	 // "pc.altivec.vrlw"
            }
            break;
          case 's':	 // 9 strings to match.
            switch (NameR[13]) {
            default: break;
            case 'e':	 // 1 string to match.
              if (NameR[14] != 'l')
                break;
              return Intrinsic::ppc_altivec_vsel;	 // "pc.altivec.vsel"
            case 'l':	 // 4 strings to match.
              switch (NameR[14]) {
              default: break;
              case 'b':	 // 1 string to match.
                return Intrinsic::ppc_altivec_vslb;	 // "pc.altivec.vslb"
              case 'h':	 // 1 string to match.
                return Intrinsic::ppc_altivec_vslh;	 // "pc.altivec.vslh"
              case 'o':	 // 1 string to match.
                return Intrinsic::ppc_altivec_vslo;	 // "pc.altivec.vslo"
              case 'w':	 // 1 string to match.
                return Intrinsic::ppc_altivec_vslw;	 // "pc.altivec.vslw"
              }
              break;
            case 'r':	 // 4 strings to match.
              switch (NameR[14]) {
              default: break;
              case 'b':	 // 1 string to match.
                return Intrinsic::ppc_altivec_vsrb;	 // "pc.altivec.vsrb"
              case 'h':	 // 1 string to match.
                return Intrinsic::ppc_altivec_vsrh;	 // "pc.altivec.vsrh"
              case 'o':	 // 1 string to match.
                return Intrinsic::ppc_altivec_vsro;	 // "pc.altivec.vsro"
              case 'w':	 // 1 string to match.
                return Intrinsic::ppc_altivec_vsrw;	 // "pc.altivec.vsrw"
              }
              break;
            }
            break;
          }
          break;
        }
        break;
      case 't':	 // 6 strings to match.
        if (memcmp(NameR.data()+1, "x.read.", 7))
          break;
        switch (NameR[8]) {
        default: break;
        case 'c':	 // 5 strings to match.
          switch (NameR[9]) {
          default: break;
          case 'l':	 // 1 string to match.
            if (memcmp(NameR.data()+10, "ock64", 5))
              break;
            return Intrinsic::ptx_read_clock64;	 // "tx.read.clock64"
          case 't':	 // 4 strings to match.
            if (memcmp(NameR.data()+10, "aid.", 4))
              break;
            switch (NameR[14]) {
            default: break;
            case 'w':	 // 1 string to match.
              return Intrinsic::ptx_read_ctaid_w;	 // "tx.read.ctaid.w"
            case 'x':	 // 1 string to match.
              return Intrinsic::ptx_read_ctaid_x;	 // "tx.read.ctaid.x"
            case 'y':	 // 1 string to match.
              return Intrinsic::ptx_read_ctaid_y;	 // "tx.read.ctaid.y"
            case 'z':	 // 1 string to match.
              return Intrinsic::ptx_read_ctaid_z;	 // "tx.read.ctaid.z"
            }
            break;
          }
          break;
        case 'n':	 // 1 string to match.
          if (memcmp(NameR.data()+9, "warpid", 6))
            break;
          return Intrinsic::ptx_read_nwarpid;	 // "tx.read.nwarpid"
        }
        break;
      }
      break;
    case 16:	 // 21 strings to match.
      switch (NameR[0]) {
      default: break;
      case 'p':	 // 17 strings to match.
        if (memcmp(NameR.data()+1, "c.altivec.", 10))
          break;
        switch (NameR[11]) {
        default: break;
        case 'd':	 // 1 string to match.
          if (memcmp(NameR.data()+12, "stst", 4))
            break;
          return Intrinsic::ppc_altivec_dstst;	 // "pc.altivec.dstst"
        case 'l':	 // 3 strings to match.
          if (memcmp(NameR.data()+12, "ve", 2))
            break;
          switch (NameR[14]) {
          default: break;
          case 'b':	 // 1 string to match.
            if (NameR[15] != 'x')
              break;
            return Intrinsic::ppc_altivec_lvebx;	 // "pc.altivec.lvebx"
          case 'h':	 // 1 string to match.
            if (NameR[15] != 'x')
              break;
            return Intrinsic::ppc_altivec_lvehx;	 // "pc.altivec.lvehx"
          case 'w':	 // 1 string to match.
            if (NameR[15] != 'x')
              break;
            return Intrinsic::ppc_altivec_lvewx;	 // "pc.altivec.lvewx"
          }
          break;
        case 's':	 // 1 string to match.
          if (memcmp(NameR.data()+12, "tvxl", 4))
            break;
          return Intrinsic::ppc_altivec_stvxl;	 // "pc.altivec.stvxl"
        case 'v':	 // 12 strings to match.
          switch (NameR[12]) {
          default: break;
          case 'c':	 // 2 strings to match.
            if (NameR[13] != 'f')
              break;
            switch (NameR[14]) {
            default: break;
            case 's':	 // 1 string to match.
              if (NameR[15] != 'x')
                break;
              return Intrinsic::ppc_altivec_vcfsx;	 // "pc.altivec.vcfsx"
            case 'u':	 // 1 string to match.
              if (NameR[15] != 'x')
                break;
              return Intrinsic::ppc_altivec_vcfux;	 // "pc.altivec.vcfux"
            }
            break;
          case 'p':	 // 2 strings to match.
            switch (NameR[13]) {
            default: break;
            case 'e':	 // 1 string to match.
              if (memcmp(NameR.data()+14, "rm", 2))
                break;
              return Intrinsic::ppc_altivec_vperm;	 // "pc.altivec.vperm"
            case 'k':	 // 1 string to match.
              if (memcmp(NameR.data()+14, "px", 2))
                break;
              return Intrinsic::ppc_altivec_vpkpx;	 // "pc.altivec.vpkpx"
            }
            break;
          case 'r':	 // 5 strings to match.
            switch (NameR[13]) {
            default: break;
            case 'e':	 // 1 string to match.
              if (memcmp(NameR.data()+14, "fp", 2))
                break;
              return Intrinsic::ppc_altivec_vrefp;	 // "pc.altivec.vrefp"
            case 'f':	 // 4 strings to match.
              if (NameR[14] != 'i')
                break;
              switch (NameR[15]) {
              default: break;
              case 'm':	 // 1 string to match.
                return Intrinsic::ppc_altivec_vrfim;	 // "pc.altivec.vrfim"
              case 'n':	 // 1 string to match.
                return Intrinsic::ppc_altivec_vrfin;	 // "pc.altivec.vrfin"
              case 'p':	 // 1 string to match.
                return Intrinsic::ppc_altivec_vrfip;	 // "pc.altivec.vrfip"
              case 'z':	 // 1 string to match.
                return Intrinsic::ppc_altivec_vrfiz;	 // "pc.altivec.vrfiz"
              }
              break;
            }
            break;
          case 's':	 // 3 strings to match.
            if (memcmp(NameR.data()+13, "ra", 2))
              break;
            switch (NameR[15]) {
            default: break;
            case 'b':	 // 1 string to match.
              return Intrinsic::ppc_altivec_vsrab;	 // "pc.altivec.vsrab"
            case 'h':	 // 1 string to match.
              return Intrinsic::ppc_altivec_vsrah;	 // "pc.altivec.vsrah"
            case 'w':	 // 1 string to match.
              return Intrinsic::ppc_altivec_vsraw;	 // "pc.altivec.vsraw"
            }
            break;
          }
          break;
        }
        break;
      case 't':	 // 4 strings to match.
        if (memcmp(NameR.data()+1, "x.read.nctaid.", 14))
          break;
        switch (NameR[15]) {
        default: break;
        case 'w':	 // 1 string to match.
          return Intrinsic::ptx_read_nctaid_w;	 // "tx.read.nctaid.w"
        case 'x':	 // 1 string to match.
          return Intrinsic::ptx_read_nctaid_x;	 // "tx.read.nctaid.x"
        case 'y':	 // 1 string to match.
          return Intrinsic::ptx_read_nctaid_y;	 // "tx.read.nctaid.y"
        case 'z':	 // 1 string to match.
          return Intrinsic::ptx_read_nctaid_z;	 // "tx.read.nctaid.z"
        }
        break;
      }
      break;
    case 17:	 // 29 strings to match.
      if (memcmp(NameR.data()+0, "pc.altivec.", 11))
        break;
      switch (NameR[11]) {
      default: break;
      case 'd':	 // 2 strings to match.
        if (NameR[12] != 's')
          break;
        switch (NameR[13]) {
        default: break;
        case 's':	 // 1 string to match.
          if (memcmp(NameR.data()+14, "all", 3))
            break;
          return Intrinsic::ppc_altivec_dssall;	 // "pc.altivec.dssall"
        case 't':	 // 1 string to match.
          if (memcmp(NameR.data()+14, "stt", 3))
            break;
          return Intrinsic::ppc_altivec_dststt;	 // "pc.altivec.dststt"
        }
        break;
      case 'm':	 // 2 strings to match.
        switch (NameR[12]) {
        default: break;
        case 'f':	 // 1 string to match.
          if (memcmp(NameR.data()+13, "vscr", 4))
            break;
          return Intrinsic::ppc_altivec_mfvscr;	 // "pc.altivec.mfvscr"
        case 't':	 // 1 string to match.
          if (memcmp(NameR.data()+13, "vscr", 4))
            break;
          return Intrinsic::ppc_altivec_mtvscr;	 // "pc.altivec.mtvscr"
        }
        break;
      case 's':	 // 3 strings to match.
        if (memcmp(NameR.data()+12, "tve", 3))
          break;
        switch (NameR[15]) {
        default: break;
        case 'b':	 // 1 string to match.
          if (NameR[16] != 'x')
            break;
          return Intrinsic::ppc_altivec_stvebx;	 // "pc.altivec.stvebx"
        case 'h':	 // 1 string to match.
          if (NameR[16] != 'x')
            break;
          return Intrinsic::ppc_altivec_stvehx;	 // "pc.altivec.stvehx"
        case 'w':	 // 1 string to match.
          if (NameR[16] != 'x')
            break;
          return Intrinsic::ppc_altivec_stvewx;	 // "pc.altivec.stvewx"
        }
        break;
      case 'v':	 // 22 strings to match.
        switch (NameR[12]) {
        default: break;
        case 'a':	 // 6 strings to match.
          if (memcmp(NameR.data()+13, "vg", 2))
            break;
          switch (NameR[15]) {
          default: break;
          case 's':	 // 3 strings to match.
            switch (NameR[16]) {
            default: break;
            case 'b':	 // 1 string to match.
              return Intrinsic::ppc_altivec_vavgsb;	 // "pc.altivec.vavgsb"
            case 'h':	 // 1 string to match.
              return Intrinsic::ppc_altivec_vavgsh;	 // "pc.altivec.vavgsh"
            case 'w':	 // 1 string to match.
              return Intrinsic::ppc_altivec_vavgsw;	 // "pc.altivec.vavgsw"
            }
            break;
          case 'u':	 // 3 strings to match.
            switch (NameR[16]) {
            default: break;
            case 'b':	 // 1 string to match.
              return Intrinsic::ppc_altivec_vavgub;	 // "pc.altivec.vavgub"
            case 'h':	 // 1 string to match.
              return Intrinsic::ppc_altivec_vavguh;	 // "pc.altivec.vavguh"
            case 'w':	 // 1 string to match.
              return Intrinsic::ppc_altivec_vavguw;	 // "pc.altivec.vavguw"
            }
            break;
          }
          break;
        case 'c':	 // 2 strings to match.
          if (NameR[13] != 't')
            break;
          switch (NameR[14]) {
          default: break;
          case 's':	 // 1 string to match.
            if (memcmp(NameR.data()+15, "xs", 2))
              break;
            return Intrinsic::ppc_altivec_vctsxs;	 // "pc.altivec.vctsxs"
          case 'u':	 // 1 string to match.
            if (memcmp(NameR.data()+15, "xs", 2))
              break;
            return Intrinsic::ppc_altivec_vctuxs;	 // "pc.altivec.vctuxs"
          }
          break;
        case 'm':	 // 14 strings to match.
          switch (NameR[13]) {
          default: break;
          case 'a':	 // 7 strings to match.
            if (NameR[14] != 'x')
              break;
            switch (NameR[15]) {
            default: break;
            case 'f':	 // 1 string to match.
              if (NameR[16] != 'p')
                break;
              return Intrinsic::ppc_altivec_vmaxfp;	 // "pc.altivec.vmaxfp"
            case 's':	 // 3 strings to match.
              switch (NameR[16]) {
              default: break;
              case 'b':	 // 1 string to match.
                return Intrinsic::ppc_altivec_vmaxsb;	 // "pc.altivec.vmaxsb"
              case 'h':	 // 1 string to match.
                return Intrinsic::ppc_altivec_vmaxsh;	 // "pc.altivec.vmaxsh"
              case 'w':	 // 1 string to match.
                return Intrinsic::ppc_altivec_vmaxsw;	 // "pc.altivec.vmaxsw"
              }
              break;
            case 'u':	 // 3 strings to match.
              switch (NameR[16]) {
              default: break;
              case 'b':	 // 1 string to match.
                return Intrinsic::ppc_altivec_vmaxub;	 // "pc.altivec.vmaxub"
              case 'h':	 // 1 string to match.
                return Intrinsic::ppc_altivec_vmaxuh;	 // "pc.altivec.vmaxuh"
              case 'w':	 // 1 string to match.
                return Intrinsic::ppc_altivec_vmaxuw;	 // "pc.altivec.vmaxuw"
              }
              break;
            }
            break;
          case 'i':	 // 7 strings to match.
            if (NameR[14] != 'n')
              break;
            switch (NameR[15]) {
            default: break;
            case 'f':	 // 1 string to match.
              if (NameR[16] != 'p')
                break;
              return Intrinsic::ppc_altivec_vminfp;	 // "pc.altivec.vminfp"
            case 's':	 // 3 strings to match.
              switch (NameR[16]) {
              default: break;
              case 'b':	 // 1 string to match.
                return Intrinsic::ppc_altivec_vminsb;	 // "pc.altivec.vminsb"
              case 'h':	 // 1 string to match.
                return Intrinsic::ppc_altivec_vminsh;	 // "pc.altivec.vminsh"
              case 'w':	 // 1 string to match.
                return Intrinsic::ppc_altivec_vminsw;	 // "pc.altivec.vminsw"
              }
              break;
            case 'u':	 // 3 strings to match.
              switch (NameR[16]) {
              default: break;
              case 'b':	 // 1 string to match.
                return Intrinsic::ppc_altivec_vminub;	 // "pc.altivec.vminub"
              case 'h':	 // 1 string to match.
                return Intrinsic::ppc_altivec_vminuh;	 // "pc.altivec.vminuh"
              case 'w':	 // 1 string to match.
                return Intrinsic::ppc_altivec_vminuw;	 // "pc.altivec.vminuw"
              }
              break;
            }
            break;
          }
          break;
        }
        break;
      }
      break;
    case 18:	 // 38 strings to match.
      if (memcmp(NameR.data()+0, "pc.altivec.v", 12))
        break;
      switch (NameR[12]) {
      default: break;
      case 'a':	 // 7 strings to match.
        if (memcmp(NameR.data()+13, "dd", 2))
          break;
        switch (NameR[15]) {
        default: break;
        case 'c':	 // 1 string to match.
          if (memcmp(NameR.data()+16, "uw", 2))
            break;
          return Intrinsic::ppc_altivec_vaddcuw;	 // "pc.altivec.vaddcuw"
        case 's':	 // 3 strings to match.
          switch (NameR[16]) {
          default: break;
          case 'b':	 // 1 string to match.
            if (NameR[17] != 's')
              break;
            return Intrinsic::ppc_altivec_vaddsbs;	 // "pc.altivec.vaddsbs"
          case 'h':	 // 1 string to match.
            if (NameR[17] != 's')
              break;
            return Intrinsic::ppc_altivec_vaddshs;	 // "pc.altivec.vaddshs"
          case 'w':	 // 1 string to match.
            if (NameR[17] != 's')
              break;
            return Intrinsic::ppc_altivec_vaddsws;	 // "pc.altivec.vaddsws"
          }
          break;
        case 'u':	 // 3 strings to match.
          switch (NameR[16]) {
          default: break;
          case 'b':	 // 1 string to match.
            if (NameR[17] != 's')
              break;
            return Intrinsic::ppc_altivec_vaddubs;	 // "pc.altivec.vaddubs"
          case 'h':	 // 1 string to match.
            if (NameR[17] != 's')
              break;
            return Intrinsic::ppc_altivec_vadduhs;	 // "pc.altivec.vadduhs"
          case 'w':	 // 1 string to match.
            if (NameR[17] != 's')
              break;
            return Intrinsic::ppc_altivec_vadduws;	 // "pc.altivec.vadduws"
          }
          break;
        }
        break;
      case 'c':	 // 1 string to match.
        if (memcmp(NameR.data()+13, "mpbfp", 5))
          break;
        return Intrinsic::ppc_altivec_vcmpbfp;	 // "pc.altivec.vcmpbfp"
      case 'l':	 // 1 string to match.
        if (memcmp(NameR.data()+13, "ogefp", 5))
          break;
        return Intrinsic::ppc_altivec_vlogefp;	 // "pc.altivec.vlogefp"
      case 'm':	 // 9 strings to match.
        switch (NameR[13]) {
        default: break;
        case 'a':	 // 1 string to match.
          if (memcmp(NameR.data()+14, "ddfp", 4))
            break;
          return Intrinsic::ppc_altivec_vmaddfp;	 // "pc.altivec.vmaddfp"
        case 'u':	 // 8 strings to match.
          if (NameR[14] != 'l')
            break;
          switch (NameR[15]) {
          default: break;
          case 'e':	 // 4 strings to match.
            switch (NameR[16]) {
            default: break;
            case 's':	 // 2 strings to match.
              switch (NameR[17]) {
              default: break;
              case 'b':	 // 1 string to match.
                return Intrinsic::ppc_altivec_vmulesb;	 // "pc.altivec.vmulesb"
              case 'h':	 // 1 string to match.
                return Intrinsic::ppc_altivec_vmulesh;	 // "pc.altivec.vmulesh"
              }
              break;
            case 'u':	 // 2 strings to match.
              switch (NameR[17]) {
              default: break;
              case 'b':	 // 1 string to match.
                return Intrinsic::ppc_altivec_vmuleub;	 // "pc.altivec.vmuleub"
              case 'h':	 // 1 string to match.
                return Intrinsic::ppc_altivec_vmuleuh;	 // "pc.altivec.vmuleuh"
              }
              break;
            }
            break;
          case 'o':	 // 4 strings to match.
            switch (NameR[16]) {
            default: break;
            case 's':	 // 2 strings to match.
              switch (NameR[17]) {
              default: break;
              case 'b':	 // 1 string to match.
                return Intrinsic::ppc_altivec_vmulosb;	 // "pc.altivec.vmulosb"
              case 'h':	 // 1 string to match.
                return Intrinsic::ppc_altivec_vmulosh;	 // "pc.altivec.vmulosh"
              }
              break;
            case 'u':	 // 2 strings to match.
              switch (NameR[17]) {
              default: break;
              case 'b':	 // 1 string to match.
                return Intrinsic::ppc_altivec_vmuloub;	 // "pc.altivec.vmuloub"
              case 'h':	 // 1 string to match.
                return Intrinsic::ppc_altivec_vmulouh;	 // "pc.altivec.vmulouh"
              }
              break;
            }
            break;
          }
          break;
        }
        break;
      case 'p':	 // 6 strings to match.
        if (NameR[13] != 'k')
          break;
        switch (NameR[14]) {
        default: break;
        case 's':	 // 4 strings to match.
          switch (NameR[15]) {
          default: break;
          case 'h':	 // 2 strings to match.
            switch (NameR[16]) {
            default: break;
            case 's':	 // 1 string to match.
              if (NameR[17] != 's')
                break;
              return Intrinsic::ppc_altivec_vpkshss;	 // "pc.altivec.vpkshss"
            case 'u':	 // 1 string to match.
              if (NameR[17] != 's')
                break;
              return Intrinsic::ppc_altivec_vpkshus;	 // "pc.altivec.vpkshus"
            }
            break;
          case 'w':	 // 2 strings to match.
            switch (NameR[16]) {
            default: break;
            case 's':	 // 1 string to match.
              if (NameR[17] != 's')
                break;
              return Intrinsic::ppc_altivec_vpkswss;	 // "pc.altivec.vpkswss"
            case 'u':	 // 1 string to match.
              if (NameR[17] != 's')
                break;
              return Intrinsic::ppc_altivec_vpkswus;	 // "pc.altivec.vpkswus"
            }
            break;
          }
          break;
        case 'u':	 // 2 strings to match.
          switch (NameR[15]) {
          default: break;
          case 'h':	 // 1 string to match.
            if (memcmp(NameR.data()+16, "us", 2))
              break;
            return Intrinsic::ppc_altivec_vpkuhus;	 // "pc.altivec.vpkuhus"
          case 'w':	 // 1 string to match.
            if (memcmp(NameR.data()+16, "us", 2))
              break;
            return Intrinsic::ppc_altivec_vpkuwus;	 // "pc.altivec.vpkuwus"
          }
          break;
        }
        break;
      case 's':	 // 8 strings to match.
        if (NameR[13] != 'u')
          break;
        switch (NameR[14]) {
        default: break;
        case 'b':	 // 7 strings to match.
          switch (NameR[15]) {
          default: break;
          case 'c':	 // 1 string to match.
            if (memcmp(NameR.data()+16, "uw", 2))
              break;
            return Intrinsic::ppc_altivec_vsubcuw;	 // "pc.altivec.vsubcuw"
          case 's':	 // 3 strings to match.
            switch (NameR[16]) {
            default: break;
            case 'b':	 // 1 string to match.
              if (NameR[17] != 's')
                break;
              return Intrinsic::ppc_altivec_vsubsbs;	 // "pc.altivec.vsubsbs"
            case 'h':	 // 1 string to match.
              if (NameR[17] != 's')
                break;
              return Intrinsic::ppc_altivec_vsubshs;	 // "pc.altivec.vsubshs"
            case 'w':	 // 1 string to match.
              if (NameR[17] != 's')
                break;
              return Intrinsic::ppc_altivec_vsubsws;	 // "pc.altivec.vsubsws"
            }
            break;
          case 'u':	 // 3 strings to match.
            switch (NameR[16]) {
            default: break;
            case 'b':	 // 1 string to match.
              if (NameR[17] != 's')
                break;
              return Intrinsic::ppc_altivec_vsububs;	 // "pc.altivec.vsububs"
            case 'h':	 // 1 string to match.
              if (NameR[17] != 's')
                break;
              return Intrinsic::ppc_altivec_vsubuhs;	 // "pc.altivec.vsubuhs"
            case 'w':	 // 1 string to match.
              if (NameR[17] != 's')
                break;
              return Intrinsic::ppc_altivec_vsubuws;	 // "pc.altivec.vsubuws"
            }
            break;
          }
          break;
        case 'm':	 // 1 string to match.
          if (memcmp(NameR.data()+15, "sws", 3))
            break;
          return Intrinsic::ppc_altivec_vsumsws;	 // "pc.altivec.vsumsws"
        }
        break;
      case 'u':	 // 6 strings to match.
        if (memcmp(NameR.data()+13, "pk", 2))
          break;
        switch (NameR[15]) {
        default: break;
        case 'h':	 // 3 strings to match.
          switch (NameR[16]) {
          default: break;
          case 'p':	 // 1 string to match.
            if (NameR[17] != 'x')
              break;
            return Intrinsic::ppc_altivec_vupkhpx;	 // "pc.altivec.vupkhpx"
          case 's':	 // 2 strings to match.
            switch (NameR[17]) {
            default: break;
            case 'b':	 // 1 string to match.
              return Intrinsic::ppc_altivec_vupkhsb;	 // "pc.altivec.vupkhsb"
            case 'h':	 // 1 string to match.
              return Intrinsic::ppc_altivec_vupkhsh;	 // "pc.altivec.vupkhsh"
            }
            break;
          }
          break;
        case 'l':	 // 3 strings to match.
          switch (NameR[16]) {
          default: break;
          case 'p':	 // 1 string to match.
            if (NameR[17] != 'x')
              break;
            return Intrinsic::ppc_altivec_vupklpx;	 // "pc.altivec.vupklpx"
          case 's':	 // 2 strings to match.
            switch (NameR[17]) {
            default: break;
            case 'b':	 // 1 string to match.
              return Intrinsic::ppc_altivec_vupklsb;	 // "pc.altivec.vupklsb"
            case 'h':	 // 1 string to match.
              return Intrinsic::ppc_altivec_vupklsh;	 // "pc.altivec.vupklsh"
            }
            break;
          }
          break;
        }
        break;
      }
      break;
    case 19:	 // 29 strings to match.
      switch (NameR[0]) {
      default: break;
      case 'p':	 // 24 strings to match.
        if (memcmp(NameR.data()+1, "c.altivec.v", 11))
          break;
        switch (NameR[12]) {
        default: break;
        case 'c':	 // 12 strings to match.
          if (memcmp(NameR.data()+13, "mp", 2))
            break;
          switch (NameR[15]) {
          default: break;
          case 'e':	 // 4 strings to match.
            if (NameR[16] != 'q')
              break;
            switch (NameR[17]) {
            default: break;
            case 'f':	 // 1 string to match.
              if (NameR[18] != 'p')
                break;
              return Intrinsic::ppc_altivec_vcmpeqfp;	 // "pc.altivec.vcmpeqfp"
            case 'u':	 // 3 strings to match.
              switch (NameR[18]) {
              default: break;
              case 'b':	 // 1 string to match.
                return Intrinsic::ppc_altivec_vcmpequb;	 // "pc.altivec.vcmpequb"
              case 'h':	 // 1 string to match.
                return Intrinsic::ppc_altivec_vcmpequh;	 // "pc.altivec.vcmpequh"
              case 'w':	 // 1 string to match.
                return Intrinsic::ppc_altivec_vcmpequw;	 // "pc.altivec.vcmpequw"
              }
              break;
            }
            break;
          case 'g':	 // 8 strings to match.
            switch (NameR[16]) {
            default: break;
            case 'e':	 // 1 string to match.
              if (memcmp(NameR.data()+17, "fp", 2))
                break;
              return Intrinsic::ppc_altivec_vcmpgefp;	 // "pc.altivec.vcmpgefp"
            case 't':	 // 7 strings to match.
              switch (NameR[17]) {
              default: break;
              case 'f':	 // 1 string to match.
                if (NameR[18] != 'p')
                  break;
                return Intrinsic::ppc_altivec_vcmpgtfp;	 // "pc.altivec.vcmpgtfp"
              case 's':	 // 3 strings to match.
                switch (NameR[18]) {
                default: break;
                case 'b':	 // 1 string to match.
                  return Intrinsic::ppc_altivec_vcmpgtsb;	 // "pc.altivec.vcmpgtsb"
                case 'h':	 // 1 string to match.
                  return Intrinsic::ppc_altivec_vcmpgtsh;	 // "pc.altivec.vcmpgtsh"
                case 'w':	 // 1 string to match.
                  return Intrinsic::ppc_altivec_vcmpgtsw;	 // "pc.altivec.vcmpgtsw"
                }
                break;
              case 'u':	 // 3 strings to match.
                switch (NameR[18]) {
                default: break;
                case 'b':	 // 1 string to match.
                  return Intrinsic::ppc_altivec_vcmpgtub;	 // "pc.altivec.vcmpgtub"
                case 'h':	 // 1 string to match.
                  return Intrinsic::ppc_altivec_vcmpgtuh;	 // "pc.altivec.vcmpgtuh"
                case 'w':	 // 1 string to match.
                  return Intrinsic::ppc_altivec_vcmpgtuw;	 // "pc.altivec.vcmpgtuw"
                }
                break;
              }
              break;
            }
            break;
          }
          break;
        case 'e':	 // 1 string to match.
          if (memcmp(NameR.data()+13, "xptefp", 6))
            break;
          return Intrinsic::ppc_altivec_vexptefp;	 // "pc.altivec.vexptefp"
        case 'm':	 // 6 strings to match.
          if (memcmp(NameR.data()+13, "sum", 3))
            break;
          switch (NameR[16]) {
          default: break;
          case 'm':	 // 1 string to match.
            if (memcmp(NameR.data()+17, "bm", 2))
              break;
            return Intrinsic::ppc_altivec_vmsummbm;	 // "pc.altivec.vmsummbm"
          case 's':	 // 2 strings to match.
            if (NameR[17] != 'h')
              break;
            switch (NameR[18]) {
            default: break;
            case 'm':	 // 1 string to match.
              return Intrinsic::ppc_altivec_vmsumshm;	 // "pc.altivec.vmsumshm"
            case 's':	 // 1 string to match.
              return Intrinsic::ppc_altivec_vmsumshs;	 // "pc.altivec.vmsumshs"
            }
            break;
          case 'u':	 // 3 strings to match.
            switch (NameR[17]) {
            default: break;
            case 'b':	 // 1 string to match.
              if (NameR[18] != 'm')
                break;
              return Intrinsic::ppc_altivec_vmsumubm;	 // "pc.altivec.vmsumubm"
            case 'h':	 // 2 strings to match.
              switch (NameR[18]) {
              default: break;
              case 'm':	 // 1 string to match.
                return Intrinsic::ppc_altivec_vmsumuhm;	 // "pc.altivec.vmsumuhm"
              case 's':	 // 1 string to match.
                return Intrinsic::ppc_altivec_vmsumuhs;	 // "pc.altivec.vmsumuhs"
              }
              break;
            }
            break;
          }
          break;
        case 'n':	 // 1 string to match.
          if (memcmp(NameR.data()+13, "msubfp", 6))
            break;
          return Intrinsic::ppc_altivec_vnmsubfp;	 // "pc.altivec.vnmsubfp"
        case 's':	 // 4 strings to match.
          if (memcmp(NameR.data()+13, "um", 2))
            break;
          switch (NameR[15]) {
          default: break;
          case '2':	 // 1 string to match.
            if (memcmp(NameR.data()+16, "sws", 3))
              break;
            return Intrinsic::ppc_altivec_vsum2sws;	 // "pc.altivec.vsum2sws"
          case '4':	 // 3 strings to match.
            switch (NameR[16]) {
            default: break;
            case 's':	 // 2 strings to match.
              switch (NameR[17]) {
              default: break;
              case 'b':	 // 1 string to match.
                if (NameR[18] != 's')
                  break;
                return Intrinsic::ppc_altivec_vsum4sbs;	 // "pc.altivec.vsum4sbs"
              case 'h':	 // 1 string to match.
                if (NameR[18] != 's')
                  break;
                return Intrinsic::ppc_altivec_vsum4shs;	 // "pc.altivec.vsum4shs"
              }
              break;
            case 'u':	 // 1 string to match.
              if (memcmp(NameR.data()+17, "bs", 2))
                break;
              return Intrinsic::ppc_altivec_vsum4ubs;	 // "pc.altivec.vsum4ubs"
            }
            break;
          }
          break;
        }
        break;
      case 't':	 // 5 strings to match.
        if (memcmp(NameR.data()+1, "x.read.lanemask.", 16))
          break;
        switch (NameR[17]) {
        default: break;
        case 'e':	 // 1 string to match.
          if (NameR[18] != 'q')
            break;
          return Intrinsic::ptx_read_lanemask_eq;	 // "tx.read.lanemask.eq"
        case 'g':	 // 2 strings to match.
          switch (NameR[18]) {
          default: break;
          case 'e':	 // 1 string to match.
            return Intrinsic::ptx_read_lanemask_ge;	 // "tx.read.lanemask.ge"
          case 't':	 // 1 string to match.
            return Intrinsic::ptx_read_lanemask_gt;	 // "tx.read.lanemask.gt"
          }
          break;
        case 'l':	 // 2 strings to match.
          switch (NameR[18]) {
          default: break;
          case 'e':	 // 1 string to match.
            return Intrinsic::ptx_read_lanemask_le;	 // "tx.read.lanemask.le"
          case 't':	 // 1 string to match.
            return Intrinsic::ptx_read_lanemask_lt;	 // "tx.read.lanemask.lt"
          }
          break;
        }
        break;
      }
      break;
    case 20:	 // 4 strings to match.
      if (memcmp(NameR.data()+0, "pc.altivec.v", 12))
        break;
      switch (NameR[12]) {
      default: break;
      case 'c':	 // 1 string to match.
        if (memcmp(NameR.data()+13, "mpbfp.p", 7))
          break;
        return Intrinsic::ppc_altivec_vcmpbfp_p;	 // "pc.altivec.vcmpbfp.p"
      case 'm':	 // 2 strings to match.
        switch (NameR[13]) {
        default: break;
        case 'h':	 // 1 string to match.
          if (memcmp(NameR.data()+14, "addshs", 6))
            break;
          return Intrinsic::ppc_altivec_vmhaddshs;	 // "pc.altivec.vmhaddshs"
        case 'l':	 // 1 string to match.
          if (memcmp(NameR.data()+14, "adduhm", 6))
            break;
          return Intrinsic::ppc_altivec_vmladduhm;	 // "pc.altivec.vmladduhm"
        }
        break;
      case 'r':	 // 1 string to match.
        if (memcmp(NameR.data()+13, "sqrtefp", 7))
          break;
        return Intrinsic::ppc_altivec_vrsqrtefp;	 // "pc.altivec.vrsqrtefp"
      }
      break;
    case 21:	 // 13 strings to match.
      if (memcmp(NameR.data()+0, "pc.altivec.v", 12))
        break;
      switch (NameR[12]) {
      default: break;
      case 'c':	 // 12 strings to match.
        if (memcmp(NameR.data()+13, "mp", 2))
          break;
        switch (NameR[15]) {
        default: break;
        case 'e':	 // 4 strings to match.
          if (NameR[16] != 'q')
            break;
          switch (NameR[17]) {
          default: break;
          case 'f':	 // 1 string to match.
            if (memcmp(NameR.data()+18, "p.p", 3))
              break;
            return Intrinsic::ppc_altivec_vcmpeqfp_p;	 // "pc.altivec.vcmpeqfp.p"
          case 'u':	 // 3 strings to match.
            switch (NameR[18]) {
            default: break;
            case 'b':	 // 1 string to match.
              if (memcmp(NameR.data()+19, ".p", 2))
                break;
              return Intrinsic::ppc_altivec_vcmpequb_p;	 // "pc.altivec.vcmpequb.p"
            case 'h':	 // 1 string to match.
              if (memcmp(NameR.data()+19, ".p", 2))
                break;
              return Intrinsic::ppc_altivec_vcmpequh_p;	 // "pc.altivec.vcmpequh.p"
            case 'w':	 // 1 string to match.
              if (memcmp(NameR.data()+19, ".p", 2))
                break;
              return Intrinsic::ppc_altivec_vcmpequw_p;	 // "pc.altivec.vcmpequw.p"
            }
            break;
          }
          break;
        case 'g':	 // 8 strings to match.
          switch (NameR[16]) {
          default: break;
          case 'e':	 // 1 string to match.
            if (memcmp(NameR.data()+17, "fp.p", 4))
              break;
            return Intrinsic::ppc_altivec_vcmpgefp_p;	 // "pc.altivec.vcmpgefp.p"
          case 't':	 // 7 strings to match.
            switch (NameR[17]) {
            default: break;
            case 'f':	 // 1 string to match.
              if (memcmp(NameR.data()+18, "p.p", 3))
                break;
              return Intrinsic::ppc_altivec_vcmpgtfp_p;	 // "pc.altivec.vcmpgtfp.p"
            case 's':	 // 3 strings to match.
              switch (NameR[18]) {
              default: break;
              case 'b':	 // 1 string to match.
                if (memcmp(NameR.data()+19, ".p", 2))
                  break;
                return Intrinsic::ppc_altivec_vcmpgtsb_p;	 // "pc.altivec.vcmpgtsb.p"
              case 'h':	 // 1 string to match.
                if (memcmp(NameR.data()+19, ".p", 2))
                  break;
                return Intrinsic::ppc_altivec_vcmpgtsh_p;	 // "pc.altivec.vcmpgtsh.p"
              case 'w':	 // 1 string to match.
                if (memcmp(NameR.data()+19, ".p", 2))
                  break;
                return Intrinsic::ppc_altivec_vcmpgtsw_p;	 // "pc.altivec.vcmpgtsw.p"
              }
              break;
            case 'u':	 // 3 strings to match.
              switch (NameR[18]) {
              default: break;
              case 'b':	 // 1 string to match.
                if (memcmp(NameR.data()+19, ".p", 2))
                  break;
                return Intrinsic::ppc_altivec_vcmpgtub_p;	 // "pc.altivec.vcmpgtub.p"
              case 'h':	 // 1 string to match.
                if (memcmp(NameR.data()+19, ".p", 2))
                  break;
                return Intrinsic::ppc_altivec_vcmpgtuh_p;	 // "pc.altivec.vcmpgtuh.p"
              case 'w':	 // 1 string to match.
                if (memcmp(NameR.data()+19, ".p", 2))
                  break;
                return Intrinsic::ppc_altivec_vcmpgtuw_p;	 // "pc.altivec.vcmpgtuw.p"
              }
              break;
            }
            break;
          }
          break;
        }
        break;
      case 'm':	 // 1 string to match.
        if (memcmp(NameR.data()+13, "hraddshs", 8))
          break;
        return Intrinsic::ppc_altivec_vmhraddshs;	 // "pc.altivec.vmhraddshs"
      }
      break;
    }
    break;  // end of 'p' case.
  case 'r':
    switch (NameR.size()) {
    default: break;
    case 12:	 // 1 string to match.
      if (memcmp(NameR.data()+0, "eturnaddress", 12))
        break;
      return Intrinsic::returnaddress;	 // "eturnaddress"
    case 15:	 // 1 string to match.
      if (memcmp(NameR.data()+0, "eadcyclecounter", 15))
        break;
      return Intrinsic::readcyclecounter;	 // "eadcyclecounter"
    }
    break;  // end of 'r' case.
  case 's':
    if (NameR.startswith("add.with.overflow.")) return Intrinsic::sadd_with_overflow;
    if (NameR.startswith("in.")) return Intrinsic::sin;
    if (NameR.startswith("mul.with.overflow.")) return Intrinsic::smul_with_overflow;
    if (NameR.startswith("qrt.")) return Intrinsic::sqrt;
    if (NameR.startswith("sub.with.overflow.")) return Intrinsic::ssub_with_overflow;
    switch (NameR.size()) {
    default: break;
    case 5:	 // 1 string to match.
      if (memcmp(NameR.data()+0, "etjmp", 5))
        break;
      return Intrinsic::setjmp;	 // "etjmp"
    case 7:	 // 1 string to match.
      if (memcmp(NameR.data()+0, "pu.si.a", 7))
        break;
      return Intrinsic::spu_si_a;	 // "pu.si.a"
    case 8:	 // 11 strings to match.
      switch (NameR[0]) {
      default: break;
      case 'i':	 // 1 string to match.
        if (memcmp(NameR.data()+1, "gsetjmp", 7))
          break;
        return Intrinsic::sigsetjmp;	 // "igsetjmp"
      case 'p':	 // 9 strings to match.
        if (memcmp(NameR.data()+1, "u.si.", 5))
          break;
        switch (NameR[6]) {
        default: break;
        case 'a':	 // 2 strings to match.
          switch (NameR[7]) {
          default: break;
          case 'h':	 // 1 string to match.
            return Intrinsic::spu_si_ah;	 // "pu.si.ah"
          case 'i':	 // 1 string to match.
            return Intrinsic::spu_si_ai;	 // "pu.si.ai"
          }
          break;
        case 'b':	 // 1 string to match.
          if (NameR[7] != 'g')
            break;
          return Intrinsic::spu_si_bg;	 // "pu.si.bg"
        case 'c':	 // 1 string to match.
          if (NameR[7] != 'g')
            break;
          return Intrinsic::spu_si_cg;	 // "pu.si.cg"
        case 'f':	 // 3 strings to match.
          switch (NameR[7]) {
          default: break;
          case 'a':	 // 1 string to match.
            return Intrinsic::spu_si_fa;	 // "pu.si.fa"
          case 'm':	 // 1 string to match.
            return Intrinsic::spu_si_fm;	 // "pu.si.fm"
          case 's':	 // 1 string to match.
            return Intrinsic::spu_si_fs;	 // "pu.si.fs"
          }
          break;
        case 'o':	 // 1 string to match.
          if (NameR[7] != 'r')
            break;
          return Intrinsic::spu_si_or;	 // "pu.si.or"
        case 's':	 // 1 string to match.
          if (NameR[7] != 'f')
            break;
          return Intrinsic::spu_si_sf;	 // "pu.si.sf"
        }
        break;
      case 't':	 // 1 string to match.
        if (memcmp(NameR.data()+1, "acksave", 7))
          break;
        return Intrinsic::stacksave;	 // "tacksave"
      }
      break;
    case 9:	 // 20 strings to match.
      switch (NameR[0]) {
      default: break;
      case 'i':	 // 1 string to match.
        if (memcmp(NameR.data()+1, "glongjmp", 8))
          break;
        return Intrinsic::siglongjmp;	 // "iglongjmp"
      case 'p':	 // 19 strings to match.
        if (memcmp(NameR.data()+1, "u.si.", 5))
          break;
        switch (NameR[6]) {
        default: break;
        case 'a':	 // 2 strings to match.
          switch (NameR[7]) {
          default: break;
          case 'h':	 // 1 string to match.
            if (NameR[8] != 'i')
              break;
            return Intrinsic::spu_si_ahi;	 // "pu.si.ahi"
          case 'n':	 // 1 string to match.
            if (NameR[8] != 'd')
              break;
            return Intrinsic::spu_si_and;	 // "pu.si.and"
          }
          break;
        case 'b':	 // 1 string to match.
          if (memcmp(NameR.data()+7, "gx", 2))
            break;
          return Intrinsic::spu_si_bgx;	 // "pu.si.bgx"
        case 'c':	 // 3 strings to match.
          switch (NameR[7]) {
          default: break;
          case 'e':	 // 1 string to match.
            if (NameR[8] != 'q')
              break;
            return Intrinsic::spu_si_ceq;	 // "pu.si.ceq"
          case 'g':	 // 2 strings to match.
            switch (NameR[8]) {
            default: break;
            case 't':	 // 1 string to match.
              return Intrinsic::spu_si_cgt;	 // "pu.si.cgt"
            case 'x':	 // 1 string to match.
              return Intrinsic::spu_si_cgx;	 // "pu.si.cgx"
            }
            break;
          }
          break;
        case 'd':	 // 3 strings to match.
          if (NameR[7] != 'f')
            break;
          switch (NameR[8]) {
          default: break;
          case 'a':	 // 1 string to match.
            return Intrinsic::spu_si_dfa;	 // "pu.si.dfa"
          case 'm':	 // 1 string to match.
            return Intrinsic::spu_si_dfm;	 // "pu.si.dfm"
          case 's':	 // 1 string to match.
            return Intrinsic::spu_si_dfs;	 // "pu.si.dfs"
          }
          break;
        case 'f':	 // 2 strings to match.
          if (NameR[7] != 'm')
            break;
          switch (NameR[8]) {
          default: break;
          case 'a':	 // 1 string to match.
            return Intrinsic::spu_si_fma;	 // "pu.si.fma"
          case 's':	 // 1 string to match.
            return Intrinsic::spu_si_fms;	 // "pu.si.fms"
          }
          break;
        case 'm':	 // 1 string to match.
          if (memcmp(NameR.data()+7, "py", 2))
            break;
          return Intrinsic::spu_si_mpy;	 // "pu.si.mpy"
        case 'n':	 // 1 string to match.
          if (memcmp(NameR.data()+7, "or", 2))
            break;
          return Intrinsic::spu_si_nor;	 // "pu.si.nor"
        case 'o':	 // 2 strings to match.
          if (NameR[7] != 'r')
            break;
          switch (NameR[8]) {
          default: break;
          case 'c':	 // 1 string to match.
            return Intrinsic::spu_si_orc;	 // "pu.si.orc"
          case 'i':	 // 1 string to match.
            return Intrinsic::spu_si_ori;	 // "pu.si.ori"
          }
          break;
        case 's':	 // 3 strings to match.
          if (NameR[7] != 'f')
            break;
          switch (NameR[8]) {
          default: break;
          case 'h':	 // 1 string to match.
            return Intrinsic::spu_si_sfh;	 // "pu.si.sfh"
          case 'i':	 // 1 string to match.
            return Intrinsic::spu_si_sfi;	 // "pu.si.sfi"
          case 'x':	 // 1 string to match.
            return Intrinsic::spu_si_sfx;	 // "pu.si.sfx"
          }
          break;
        case 'x':	 // 1 string to match.
          if (memcmp(NameR.data()+7, "or", 2))
            break;
          return Intrinsic::spu_si_xor;	 // "pu.si.xor"
        }
        break;
      }
      break;
    case 10:	 // 26 strings to match.
      if (memcmp(NameR.data()+0, "pu.si.", 6))
        break;
      switch (NameR[6]) {
      default: break;
      case 'a':	 // 3 strings to match.
        switch (NameR[7]) {
        default: break;
        case 'd':	 // 1 string to match.
          if (memcmp(NameR.data()+8, "dx", 2))
            break;
          return Intrinsic::spu_si_addx;	 // "pu.si.addx"
        case 'n':	 // 2 strings to match.
          if (NameR[8] != 'd')
            break;
          switch (NameR[9]) {
          default: break;
          case 'c':	 // 1 string to match.
            return Intrinsic::spu_si_andc;	 // "pu.si.andc"
          case 'i':	 // 1 string to match.
            return Intrinsic::spu_si_andi;	 // "pu.si.andi"
          }
          break;
        }
        break;
      case 'c':	 // 7 strings to match.
        switch (NameR[7]) {
        default: break;
        case 'e':	 // 3 strings to match.
          if (NameR[8] != 'q')
            break;
          switch (NameR[9]) {
          default: break;
          case 'b':	 // 1 string to match.
            return Intrinsic::spu_si_ceqb;	 // "pu.si.ceqb"
          case 'h':	 // 1 string to match.
            return Intrinsic::spu_si_ceqh;	 // "pu.si.ceqh"
          case 'i':	 // 1 string to match.
            return Intrinsic::spu_si_ceqi;	 // "pu.si.ceqi"
          }
          break;
        case 'g':	 // 3 strings to match.
          if (NameR[8] != 't')
            break;
          switch (NameR[9]) {
          default: break;
          case 'b':	 // 1 string to match.
            return Intrinsic::spu_si_cgtb;	 // "pu.si.cgtb"
          case 'h':	 // 1 string to match.
            return Intrinsic::spu_si_cgth;	 // "pu.si.cgth"
          case 'i':	 // 1 string to match.
            return Intrinsic::spu_si_cgti;	 // "pu.si.cgti"
          }
          break;
        case 'l':	 // 1 string to match.
          if (memcmp(NameR.data()+8, "gt", 2))
            break;
          return Intrinsic::spu_si_clgt;	 // "pu.si.clgt"
        }
        break;
      case 'd':	 // 2 strings to match.
        if (memcmp(NameR.data()+7, "fm", 2))
          break;
        switch (NameR[9]) {
        default: break;
        case 'a':	 // 1 string to match.
          return Intrinsic::spu_si_dfma;	 // "pu.si.dfma"
        case 's':	 // 1 string to match.
          return Intrinsic::spu_si_dfms;	 // "pu.si.dfms"
        }
        break;
      case 'f':	 // 3 strings to match.
        switch (NameR[7]) {
        default: break;
        case 'c':	 // 2 strings to match.
          switch (NameR[8]) {
          default: break;
          case 'e':	 // 1 string to match.
            if (NameR[9] != 'q')
              break;
            return Intrinsic::spu_si_fceq;	 // "pu.si.fceq"
          case 'g':	 // 1 string to match.
            if (NameR[9] != 't')
              break;
            return Intrinsic::spu_si_fcgt;	 // "pu.si.fcgt"
          }
          break;
        case 'n':	 // 1 string to match.
          if (memcmp(NameR.data()+8, "ms", 2))
            break;
          return Intrinsic::spu_si_fnms;	 // "pu.si.fnms"
        }
        break;
      case 'm':	 // 5 strings to match.
        if (memcmp(NameR.data()+7, "py", 2))
          break;
        switch (NameR[9]) {
        default: break;
        case 'a':	 // 1 string to match.
          return Intrinsic::spu_si_mpya;	 // "pu.si.mpya"
        case 'h':	 // 1 string to match.
          return Intrinsic::spu_si_mpyh;	 // "pu.si.mpyh"
        case 'i':	 // 1 string to match.
          return Intrinsic::spu_si_mpyi;	 // "pu.si.mpyi"
        case 's':	 // 1 string to match.
          return Intrinsic::spu_si_mpys;	 // "pu.si.mpys"
        case 'u':	 // 1 string to match.
          return Intrinsic::spu_si_mpyu;	 // "pu.si.mpyu"
        }
        break;
      case 'n':	 // 1 string to match.
        if (memcmp(NameR.data()+7, "and", 3))
          break;
        return Intrinsic::spu_si_nand;	 // "pu.si.nand"
      case 'o':	 // 2 strings to match.
        if (NameR[7] != 'r')
          break;
        switch (NameR[8]) {
        default: break;
        case 'b':	 // 1 string to match.
          if (NameR[9] != 'i')
            break;
          return Intrinsic::spu_si_orbi;	 // "pu.si.orbi"
        case 'h':	 // 1 string to match.
          if (NameR[9] != 'i')
            break;
          return Intrinsic::spu_si_orhi;	 // "pu.si.orhi"
        }
        break;
      case 's':	 // 2 strings to match.
        switch (NameR[7]) {
        default: break;
        case 'f':	 // 1 string to match.
          if (memcmp(NameR.data()+8, "hi", 2))
            break;
          return Intrinsic::spu_si_sfhi;	 // "pu.si.sfhi"
        case 'h':	 // 1 string to match.
          if (memcmp(NameR.data()+8, "li", 2))
            break;
          return Intrinsic::spu_si_shli;	 // "pu.si.shli"
        }
        break;
      case 'x':	 // 1 string to match.
        if (memcmp(NameR.data()+7, "ori", 3))
          break;
        return Intrinsic::spu_si_xori;	 // "pu.si.xori"
      }
      break;
    case 11:	 // 19 strings to match.
      switch (NameR[0]) {
      default: break;
      case 'p':	 // 18 strings to match.
        if (memcmp(NameR.data()+1, "u.si.", 5))
          break;
        switch (NameR[6]) {
        default: break;
        case 'a':	 // 2 strings to match.
          if (memcmp(NameR.data()+7, "nd", 2))
            break;
          switch (NameR[9]) {
          default: break;
          case 'b':	 // 1 string to match.
            if (NameR[10] != 'i')
              break;
            return Intrinsic::spu_si_andbi;	 // "pu.si.andbi"
          case 'h':	 // 1 string to match.
            if (NameR[10] != 'i')
              break;
            return Intrinsic::spu_si_andhi;	 // "pu.si.andhi"
          }
          break;
        case 'c':	 // 7 strings to match.
          switch (NameR[7]) {
          default: break;
          case 'e':	 // 2 strings to match.
            if (NameR[8] != 'q')
              break;
            switch (NameR[9]) {
            default: break;
            case 'b':	 // 1 string to match.
              if (NameR[10] != 'i')
                break;
              return Intrinsic::spu_si_ceqbi;	 // "pu.si.ceqbi"
            case 'h':	 // 1 string to match.
              if (NameR[10] != 'i')
                break;
              return Intrinsic::spu_si_ceqhi;	 // "pu.si.ceqhi"
            }
            break;
          case 'g':	 // 2 strings to match.
            if (NameR[8] != 't')
              break;
            switch (NameR[9]) {
            default: break;
            case 'b':	 // 1 string to match.
              if (NameR[10] != 'i')
                break;
              return Intrinsic::spu_si_cgtbi;	 // "pu.si.cgtbi"
            case 'h':	 // 1 string to match.
              if (NameR[10] != 'i')
                break;
              return Intrinsic::spu_si_cgthi;	 // "pu.si.cgthi"
            }
            break;
          case 'l':	 // 3 strings to match.
            if (memcmp(NameR.data()+8, "gt", 2))
              break;
            switch (NameR[10]) {
            default: break;
            case 'b':	 // 1 string to match.
              return Intrinsic::spu_si_clgtb;	 // "pu.si.clgtb"
            case 'h':	 // 1 string to match.
              return Intrinsic::spu_si_clgth;	 // "pu.si.clgth"
            case 'i':	 // 1 string to match.
              return Intrinsic::spu_si_clgti;	 // "pu.si.clgti"
            }
            break;
          }
          break;
        case 'd':	 // 2 strings to match.
          if (memcmp(NameR.data()+7, "fnm", 3))
            break;
          switch (NameR[10]) {
          default: break;
          case 'a':	 // 1 string to match.
            return Intrinsic::spu_si_dfnma;	 // "pu.si.dfnma"
          case 's':	 // 1 string to match.
            return Intrinsic::spu_si_dfnms;	 // "pu.si.dfnms"
          }
          break;
        case 'f':	 // 3 strings to match.
          switch (NameR[7]) {
          default: break;
          case 'c':	 // 2 strings to match.
            if (NameR[8] != 'm')
              break;
            switch (NameR[9]) {
            default: break;
            case 'e':	 // 1 string to match.
              if (NameR[10] != 'q')
                break;
              return Intrinsic::spu_si_fcmeq;	 // "pu.si.fcmeq"
            case 'g':	 // 1 string to match.
              if (NameR[10] != 't')
                break;
              return Intrinsic::spu_si_fcmgt;	 // "pu.si.fcmgt"
            }
            break;
          case 's':	 // 1 string to match.
            if (memcmp(NameR.data()+8, "mbi", 3))
              break;
            return Intrinsic::spu_si_fsmbi;	 // "pu.si.fsmbi"
          }
          break;
        case 'm':	 // 2 strings to match.
          if (memcmp(NameR.data()+7, "py", 2))
            break;
          switch (NameR[9]) {
          default: break;
          case 'h':	 // 1 string to match.
            if (NameR[10] != 'h')
              break;
            return Intrinsic::spu_si_mpyhh;	 // "pu.si.mpyhh"
          case 'u':	 // 1 string to match.
            if (NameR[10] != 'i')
              break;
            return Intrinsic::spu_si_mpyui;	 // "pu.si.mpyui"
          }
          break;
        case 'x':	 // 2 strings to match.
          if (memcmp(NameR.data()+7, "or", 2))
            break;
          switch (NameR[9]) {
          default: break;
          case 'b':	 // 1 string to match.
            if (NameR[10] != 'i')
              break;
            return Intrinsic::spu_si_xorbi;	 // "pu.si.xorbi"
          case 'h':	 // 1 string to match.
            if (NameR[10] != 'i')
              break;
            return Intrinsic::spu_si_xorhi;	 // "pu.si.xorhi"
          }
          break;
        }
        break;
      case 't':	 // 1 string to match.
        if (memcmp(NameR.data()+1, "ackrestore", 10))
          break;
        return Intrinsic::stackrestore;	 // "tackrestore"
      }
      break;
    case 12:	 // 6 strings to match.
      if (memcmp(NameR.data()+0, "pu.si.", 6))
        break;
      switch (NameR[6]) {
      default: break;
      case 'c':	 // 2 strings to match.
        if (memcmp(NameR.data()+7, "lgt", 3))
          break;
        switch (NameR[10]) {
        default: break;
        case 'b':	 // 1 string to match.
          if (NameR[11] != 'i')
            break;
          return Intrinsic::spu_si_clgtbi;	 // "pu.si.clgtbi"
        case 'h':	 // 1 string to match.
          if (NameR[11] != 'i')
            break;
          return Intrinsic::spu_si_clgthi;	 // "pu.si.clgthi"
        }
        break;
      case 'm':	 // 2 strings to match.
        if (memcmp(NameR.data()+7, "pyhh", 4))
          break;
        switch (NameR[11]) {
        default: break;
        case 'a':	 // 1 string to match.
          return Intrinsic::spu_si_mpyhha;	 // "pu.si.mpyhha"
        case 'u':	 // 1 string to match.
          return Intrinsic::spu_si_mpyhhu;	 // "pu.si.mpyhhu"
        }
        break;
      case 's':	 // 2 strings to match.
        if (memcmp(NameR.data()+7, "hlqb", 4))
          break;
        switch (NameR[11]) {
        default: break;
        case 'i':	 // 1 string to match.
          return Intrinsic::spu_si_shlqbi;	 // "pu.si.shlqbi"
        case 'y':	 // 1 string to match.
          return Intrinsic::spu_si_shlqby;	 // "pu.si.shlqby"
        }
        break;
      }
      break;
    case 13:	 // 4 strings to match.
      switch (NameR[0]) {
      default: break;
      case 'p':	 // 3 strings to match.
        if (memcmp(NameR.data()+1, "u.si.", 5))
          break;
        switch (NameR[6]) {
        default: break;
        case 'm':	 // 1 string to match.
          if (memcmp(NameR.data()+7, "pyhhau", 6))
            break;
          return Intrinsic::spu_si_mpyhhau;	 // "pu.si.mpyhhau"
        case 's':	 // 2 strings to match.
          if (memcmp(NameR.data()+7, "hlqb", 4))
            break;
          switch (NameR[11]) {
          default: break;
          case 'i':	 // 1 string to match.
            if (NameR[12] != 'i')
              break;
            return Intrinsic::spu_si_shlqbii;	 // "pu.si.shlqbii"
          case 'y':	 // 1 string to match.
            if (NameR[12] != 'i')
              break;
            return Intrinsic::spu_si_shlqbyi;	 // "pu.si.shlqbyi"
          }
          break;
        }
        break;
      case 't':	 // 1 string to match.
        if (memcmp(NameR.data()+1, "ackprotector", 12))
          break;
        return Intrinsic::stackprotector;	 // "tackprotector"
      }
      break;
    }
    break;  // end of 's' case.
  case 't':
    switch (NameR.size()) {
    default: break;
    case 3:	 // 1 string to match.
      if (memcmp(NameR.data()+0, "rap", 3))
        break;
      return Intrinsic::trap;	 // "rap"
    }
    break;  // end of 't' case.
  case 'u':
    if (NameR.startswith("add.with.overflow.")) return Intrinsic::uadd_with_overflow;
    if (NameR.startswith("mul.with.overflow.")) return Intrinsic::umul_with_overflow;
    if (NameR.startswith("sub.with.overflow.")) return Intrinsic::usub_with_overflow;
    break;  // end of 'u' case.
  case 'v':
    switch (NameR.size()) {
    default: break;
    case 5:	 // 1 string to match.
      if (memcmp(NameR.data()+0, "a_end", 5))
        break;
      return Intrinsic::vaend;	 // "a_end"
    case 6:	 // 1 string to match.
      if (memcmp(NameR.data()+0, "a_copy", 6))
        break;
      return Intrinsic::vacopy;	 // "a_copy"
    case 7:	 // 1 string to match.
      if (memcmp(NameR.data()+0, "a_start", 7))
        break;
      return Intrinsic::vastart;	 // "a_start"
    case 13:	 // 1 string to match.
      if (memcmp(NameR.data()+0, "ar.annotation", 13))
        break;
      return Intrinsic::var_annotation;	 // "ar.annotation"
    }
    break;  // end of 'v' case.
  case 'x':
    if (NameR.startswith("core.chkct.")) return Intrinsic::xcore_chkct;
    if (NameR.startswith("core.eeu.")) return Intrinsic::xcore_eeu;
    if (NameR.startswith("core.endin.")) return Intrinsic::xcore_endin;
    if (NameR.startswith("core.freer.")) return Intrinsic::xcore_freer;
    if (NameR.startswith("core.getr.")) return Intrinsic::xcore_getr;
    if (NameR.startswith("core.getst.")) return Intrinsic::xcore_getst;
    if (NameR.startswith("core.getts.")) return Intrinsic::xcore_getts;
    if (NameR.startswith("core.in.")) return Intrinsic::xcore_in;
    if (NameR.startswith("core.inct.")) return Intrinsic::xcore_inct;
    if (NameR.startswith("core.initcp.")) return Intrinsic::xcore_initcp;
    if (NameR.startswith("core.initdp.")) return Intrinsic::xcore_initdp;
    if (NameR.startswith("core.initlr.")) return Intrinsic::xcore_initlr;
    if (NameR.startswith("core.initpc.")) return Intrinsic::xcore_initpc;
    if (NameR.startswith("core.initsp.")) return Intrinsic::xcore_initsp;
    if (NameR.startswith("core.inshr.")) return Intrinsic::xcore_inshr;
    if (NameR.startswith("core.int.")) return Intrinsic::xcore_int;
    if (NameR.startswith("core.mjoin.")) return Intrinsic::xcore_mjoin;
    if (NameR.startswith("core.msync.")) return Intrinsic::xcore_msync;
    if (NameR.startswith("core.out.")) return Intrinsic::xcore_out;
    if (NameR.startswith("core.outct.")) return Intrinsic::xcore_outct;
    if (NameR.startswith("core.outshr.")) return Intrinsic::xcore_outshr;
    if (NameR.startswith("core.outt.")) return Intrinsic::xcore_outt;
    if (NameR.startswith("core.peek.")) return Intrinsic::xcore_peek;
    if (NameR.startswith("core.setc.")) return Intrinsic::xcore_setc;
    if (NameR.startswith("core.setclk.")) return Intrinsic::xcore_setclk;
    if (NameR.startswith("core.setd.")) return Intrinsic::xcore_setd;
    if (NameR.startswith("core.setev.")) return Intrinsic::xcore_setev;
    if (NameR.startswith("core.setpsc.")) return Intrinsic::xcore_setpsc;
    if (NameR.startswith("core.setpt.")) return Intrinsic::xcore_setpt;
    if (NameR.startswith("core.setrdy.")) return Intrinsic::xcore_setrdy;
    if (NameR.startswith("core.settw.")) return Intrinsic::xcore_settw;
    if (NameR.startswith("core.setv.")) return Intrinsic::xcore_setv;
    if (NameR.startswith("core.syncr.")) return Intrinsic::xcore_syncr;
    if (NameR.startswith("core.testct.")) return Intrinsic::xcore_testct;
    if (NameR.startswith("core.testwct.")) return Intrinsic::xcore_testwct;
    switch (NameR.size()) {
    default: break;
    case 6:	 // 1 string to match.
      if (memcmp(NameR.data()+0, "86.int", 6))
        break;
      return Intrinsic::x86_int;	 // "86.int"
    case 9:	 // 4 strings to match.
      if (memcmp(NameR.data()+0, "core.", 5))
        break;
      switch (NameR[5]) {
      default: break;
      case 'c':	 // 2 strings to match.
        switch (NameR[6]) {
        default: break;
        case 'l':	 // 1 string to match.
          if (memcmp(NameR.data()+7, "re", 2))
            break;
          return Intrinsic::xcore_clre;	 // "core.clre"
        case 'r':	 // 1 string to match.
          if (memcmp(NameR.data()+7, "c8", 2))
            break;
          return Intrinsic::xcore_crc8;	 // "core.crc8"
        }
        break;
      case 's':	 // 1 string to match.
        if (memcmp(NameR.data()+6, "ext", 3))
          break;
        return Intrinsic::xcore_sext;	 // "core.sext"
      case 'z':	 // 1 string to match.
        if (memcmp(NameR.data()+6, "ext", 3))
          break;
        return Intrinsic::xcore_zext;	 // "core.zext"
      }
      break;
    case 10:	 // 10 strings to match.
      switch (NameR[0]) {
      default: break;
      case '8':	 // 1 string to match.
        if (memcmp(NameR.data()+1, "6.mmx.por", 9))
          break;
        return Intrinsic::x86_mmx_por;	 // "86.mmx.por"
      case 'c':	 // 9 strings to match.
        if (memcmp(NameR.data()+1, "ore.", 4))
          break;
        switch (NameR[5]) {
        default: break;
        case 'c':	 // 2 strings to match.
          switch (NameR[6]) {
          default: break;
          case 'l':	 // 1 string to match.
            if (memcmp(NameR.data()+7, "rsr", 3))
              break;
            return Intrinsic::xcore_clrsr;	 // "core.clrsr"
          case 'r':	 // 1 string to match.
            if (memcmp(NameR.data()+7, "c32", 3))
              break;
            return Intrinsic::xcore_crc32;	 // "core.crc32"
          }
          break;
        case 'g':	 // 4 strings to match.
          if (memcmp(NameR.data()+6, "et", 2))
            break;
          switch (NameR[8]) {
          default: break;
          case 'e':	 // 2 strings to match.
            switch (NameR[9]) {
            default: break;
            case 'd':	 // 1 string to match.
              return Intrinsic::xcore_geted;	 // "core.geted"
            case 't':	 // 1 string to match.
              return Intrinsic::xcore_getet;	 // "core.getet"
            }
            break;
          case 'i':	 // 1 string to match.
            if (NameR[9] != 'd')
              break;
            return Intrinsic::xcore_getid;	 // "core.getid"
          case 'p':	 // 1 string to match.
            if (NameR[9] != 's')
              break;
            return Intrinsic::xcore_getps;	 // "core.getps"
          }
          break;
        case 's':	 // 3 strings to match.
          switch (NameR[6]) {
          default: break;
          case 'e':	 // 2 strings to match.
            if (NameR[7] != 't')
              break;
            switch (NameR[8]) {
            default: break;
            case 'p':	 // 1 string to match.
              if (NameR[9] != 's')
                break;
              return Intrinsic::xcore_setps;	 // "core.setps"
            case 's':	 // 1 string to match.
              if (NameR[9] != 'r')
                break;
              return Intrinsic::xcore_setsr;	 // "core.setsr"
            }
            break;
          case 's':	 // 1 string to match.
            if (memcmp(NameR.data()+7, "ync", 3))
              break;
            return Intrinsic::xcore_ssync;	 // "core.ssync"
          }
          break;
        }
        break;
      }
      break;
    case 11:	 // 4 strings to match.
      switch (NameR[0]) {
      default: break;
      case '8':	 // 3 strings to match.
        if (memcmp(NameR.data()+1, "6.mmx.", 6))
          break;
        switch (NameR[7]) {
        default: break;
        case 'e':	 // 1 string to match.
          if (memcmp(NameR.data()+8, "mms", 3))
            break;
          return Intrinsic::x86_mmx_emms;	 // "86.mmx.emms"
        case 'p':	 // 2 strings to match.
          switch (NameR[8]) {
          default: break;
          case 'a':	 // 1 string to match.
            if (memcmp(NameR.data()+9, "nd", 2))
              break;
            return Intrinsic::x86_mmx_pand;	 // "86.mmx.pand"
          case 'x':	 // 1 string to match.
            if (memcmp(NameR.data()+9, "or", 2))
              break;
            return Intrinsic::x86_mmx_pxor;	 // "86.mmx.pxor"
          }
          break;
        }
        break;
      case 'c':	 // 1 string to match.
        if (memcmp(NameR.data()+1, "ore.bitrev", 10))
          break;
        return Intrinsic::xcore_bitrev;	 // "core.bitrev"
      }
      break;
    case 12:	 // 6 strings to match.
      if (memcmp(NameR.data()+0, "86.", 3))
        break;
      switch (NameR[3]) {
      default: break;
      case 'm':	 // 2 strings to match.
        if (memcmp(NameR.data()+4, "mx.", 3))
          break;
        switch (NameR[7]) {
        default: break;
        case 'f':	 // 1 string to match.
          if (memcmp(NameR.data()+8, "emms", 4))
            break;
          return Intrinsic::x86_mmx_femms;	 // "86.mmx.femms"
        case 'p':	 // 1 string to match.
          if (memcmp(NameR.data()+8, "andn", 4))
            break;
          return Intrinsic::x86_mmx_pandn;	 // "86.mmx.pandn"
        }
        break;
      case 'p':	 // 1 string to match.
        if (memcmp(NameR.data()+4, "clmulqdq", 8))
          break;
        return Intrinsic::x86_pclmulqdq;	 // "86.pclmulqdq"
      case 'r':	 // 3 strings to match.
        if (memcmp(NameR.data()+4, "drand.", 6))
          break;
        switch (NameR[10]) {
        default: break;
        case '1':	 // 1 string to match.
          if (NameR[11] != '6')
            break;
          return Intrinsic::x86_rdrand_16;	 // "86.rdrand.16"
        case '3':	 // 1 string to match.
          if (NameR[11] != '2')
            break;
          return Intrinsic::x86_rdrand_32;	 // "86.rdrand.32"
        case '6':	 // 1 string to match.
          if (NameR[11] != '4')
            break;
          return Intrinsic::x86_rdrand_64;	 // "86.rdrand.64"
        }
        break;
      }
      break;
    case 13:	 // 53 strings to match.
      if (memcmp(NameR.data()+0, "86.", 3))
        break;
      switch (NameR[3]) {
      default: break;
      case 'a':	 // 1 string to match.
        if (memcmp(NameR.data()+4, "vx2.permd", 9))
          break;
        return Intrinsic::x86_avx2_permd;	 // "86.avx2.permd"
      case 'm':	 // 18 strings to match.
        if (memcmp(NameR.data()+4, "mx.p", 4))
          break;
        switch (NameR[8]) {
        default: break;
        case 'a':	 // 6 strings to match.
          switch (NameR[9]) {
          default: break;
          case 'd':	 // 4 strings to match.
            if (memcmp(NameR.data()+10, "d.", 2))
              break;
            switch (NameR[12]) {
            default: break;
            case 'b':	 // 1 string to match.
              return Intrinsic::x86_mmx_padd_b;	 // "86.mmx.padd.b"
            case 'd':	 // 1 string to match.
              return Intrinsic::x86_mmx_padd_d;	 // "86.mmx.padd.d"
            case 'q':	 // 1 string to match.
              return Intrinsic::x86_mmx_padd_q;	 // "86.mmx.padd.q"
            case 'w':	 // 1 string to match.
              return Intrinsic::x86_mmx_padd_w;	 // "86.mmx.padd.w"
            }
            break;
          case 'v':	 // 2 strings to match.
            if (memcmp(NameR.data()+10, "g.", 2))
              break;
            switch (NameR[12]) {
            default: break;
            case 'b':	 // 1 string to match.
              return Intrinsic::x86_mmx_pavg_b;	 // "86.mmx.pavg.b"
            case 'w':	 // 1 string to match.
              return Intrinsic::x86_mmx_pavg_w;	 // "86.mmx.pavg.w"
            }
            break;
          }
          break;
        case 's':	 // 12 strings to match.
          switch (NameR[9]) {
          default: break;
          case 'l':	 // 3 strings to match.
            if (memcmp(NameR.data()+10, "l.", 2))
              break;
            switch (NameR[12]) {
            default: break;
            case 'd':	 // 1 string to match.
              return Intrinsic::x86_mmx_psll_d;	 // "86.mmx.psll.d"
            case 'q':	 // 1 string to match.
              return Intrinsic::x86_mmx_psll_q;	 // "86.mmx.psll.q"
            case 'w':	 // 1 string to match.
              return Intrinsic::x86_mmx_psll_w;	 // "86.mmx.psll.w"
            }
            break;
          case 'r':	 // 5 strings to match.
            switch (NameR[10]) {
            default: break;
            case 'a':	 // 2 strings to match.
              if (NameR[11] != '.')
                break;
              switch (NameR[12]) {
              default: break;
              case 'd':	 // 1 string to match.
                return Intrinsic::x86_mmx_psra_d;	 // "86.mmx.psra.d"
              case 'w':	 // 1 string to match.
                return Intrinsic::x86_mmx_psra_w;	 // "86.mmx.psra.w"
              }
              break;
            case 'l':	 // 3 strings to match.
              if (NameR[11] != '.')
                break;
              switch (NameR[12]) {
              default: break;
              case 'd':	 // 1 string to match.
                return Intrinsic::x86_mmx_psrl_d;	 // "86.mmx.psrl.d"
              case 'q':	 // 1 string to match.
                return Intrinsic::x86_mmx_psrl_q;	 // "86.mmx.psrl.q"
              case 'w':	 // 1 string to match.
                return Intrinsic::x86_mmx_psrl_w;	 // "86.mmx.psrl.w"
              }
              break;
            }
            break;
          case 'u':	 // 4 strings to match.
            if (memcmp(NameR.data()+10, "b.", 2))
              break;
            switch (NameR[12]) {
            default: break;
            case 'b':	 // 1 string to match.
              return Intrinsic::x86_mmx_psub_b;	 // "86.mmx.psub.b"
            case 'd':	 // 1 string to match.
              return Intrinsic::x86_mmx_psub_d;	 // "86.mmx.psub.d"
            case 'q':	 // 1 string to match.
              return Intrinsic::x86_mmx_psub_q;	 // "86.mmx.psub.q"
            case 'w':	 // 1 string to match.
              return Intrinsic::x86_mmx_psub_w;	 // "86.mmx.psub.w"
            }
            break;
          }
          break;
        }
        break;
      case 's':	 // 16 strings to match.
        if (memcmp(NameR.data()+4, "se", 2))
          break;
        switch (NameR[6]) {
        default: break;
        case '.':	 // 13 strings to match.
          switch (NameR[7]) {
          default: break;
          case 'a':	 // 1 string to match.
            if (memcmp(NameR.data()+8, "dd.ss", 5))
              break;
            return Intrinsic::x86_sse_add_ss;	 // "86.sse.add.ss"
          case 'c':	 // 2 strings to match.
            if (memcmp(NameR.data()+8, "mp.", 3))
              break;
            switch (NameR[11]) {
            default: break;
            case 'p':	 // 1 string to match.
              if (NameR[12] != 's')
                break;
              return Intrinsic::x86_sse_cmp_ps;	 // "86.sse.cmp.ps"
            case 's':	 // 1 string to match.
              if (NameR[12] != 's')
                break;
              return Intrinsic::x86_sse_cmp_ss;	 // "86.sse.cmp.ss"
            }
            break;
          case 'd':	 // 1 string to match.
            if (memcmp(NameR.data()+8, "iv.ss", 5))
              break;
            return Intrinsic::x86_sse_div_ss;	 // "86.sse.div.ss"
          case 'm':	 // 5 strings to match.
            switch (NameR[8]) {
            default: break;
            case 'a':	 // 2 strings to match.
              if (memcmp(NameR.data()+9, "x.", 2))
                break;
              switch (NameR[11]) {
              default: break;
              case 'p':	 // 1 string to match.
                if (NameR[12] != 's')
                  break;
                return Intrinsic::x86_sse_max_ps;	 // "86.sse.max.ps"
              case 's':	 // 1 string to match.
                if (NameR[12] != 's')
                  break;
                return Intrinsic::x86_sse_max_ss;	 // "86.sse.max.ss"
              }
              break;
            case 'i':	 // 2 strings to match.
              if (memcmp(NameR.data()+9, "n.", 2))
                break;
              switch (NameR[11]) {
              default: break;
              case 'p':	 // 1 string to match.
                if (NameR[12] != 's')
                  break;
                return Intrinsic::x86_sse_min_ps;	 // "86.sse.min.ps"
              case 's':	 // 1 string to match.
                if (NameR[12] != 's')
                  break;
                return Intrinsic::x86_sse_min_ss;	 // "86.sse.min.ss"
              }
              break;
            case 'u':	 // 1 string to match.
              if (memcmp(NameR.data()+9, "l.ss", 4))
                break;
              return Intrinsic::x86_sse_mul_ss;	 // "86.sse.mul.ss"
            }
            break;
          case 'r':	 // 2 strings to match.
            if (memcmp(NameR.data()+8, "cp.", 3))
              break;
            switch (NameR[11]) {
            default: break;
            case 'p':	 // 1 string to match.
              if (NameR[12] != 's')
                break;
              return Intrinsic::x86_sse_rcp_ps;	 // "86.sse.rcp.ps"
            case 's':	 // 1 string to match.
              if (NameR[12] != 's')
                break;
              return Intrinsic::x86_sse_rcp_ss;	 // "86.sse.rcp.ss"
            }
            break;
          case 's':	 // 2 strings to match.
            switch (NameR[8]) {
            default: break;
            case 'f':	 // 1 string to match.
              if (memcmp(NameR.data()+9, "ence", 4))
                break;
              return Intrinsic::x86_sse_sfence;	 // "86.sse.sfence"
            case 'u':	 // 1 string to match.
              if (memcmp(NameR.data()+9, "b.ss", 4))
                break;
              return Intrinsic::x86_sse_sub_ss;	 // "86.sse.sub.ss"
            }
            break;
          }
          break;
        case '3':	 // 1 string to match.
          if (memcmp(NameR.data()+7, ".mwait", 6))
            break;
          return Intrinsic::x86_sse3_mwait;	 // "86.sse3.mwait"
        case '4':	 // 2 strings to match.
          if (memcmp(NameR.data()+7, "1.dpp", 5))
            break;
          switch (NameR[12]) {
          default: break;
          case 'd':	 // 1 string to match.
            return Intrinsic::x86_sse41_dppd;	 // "86.sse41.dppd"
          case 's':	 // 1 string to match.
            return Intrinsic::x86_sse41_dpps;	 // "86.sse41.dpps"
          }
          break;
        }
        break;
      case 'x':	 // 18 strings to match.
        if (memcmp(NameR.data()+4, "op.vp", 5))
          break;
        switch (NameR[9]) {
        default: break;
        case 'c':	 // 5 strings to match.
          switch (NameR[10]) {
          default: break;
          case 'm':	 // 1 string to match.
            if (memcmp(NameR.data()+11, "ov", 2))
              break;
            return Intrinsic::x86_xop_vpcmov;	 // "86.xop.vpcmov"
          case 'o':	 // 4 strings to match.
            if (NameR[11] != 'm')
              break;
            switch (NameR[12]) {
            default: break;
            case 'b':	 // 1 string to match.
              return Intrinsic::x86_xop_vpcomb;	 // "86.xop.vpcomb"
            case 'd':	 // 1 string to match.
              return Intrinsic::x86_xop_vpcomd;	 // "86.xop.vpcomd"
            case 'q':	 // 1 string to match.
              return Intrinsic::x86_xop_vpcomq;	 // "86.xop.vpcomq"
            case 'w':	 // 1 string to match.
              return Intrinsic::x86_xop_vpcomw;	 // "86.xop.vpcomw"
            }
            break;
          }
          break;
        case 'p':	 // 1 string to match.
          if (memcmp(NameR.data()+10, "erm", 3))
            break;
          return Intrinsic::x86_xop_vpperm;	 // "86.xop.vpperm"
        case 'r':	 // 4 strings to match.
          if (memcmp(NameR.data()+10, "ot", 2))
            break;
          switch (NameR[12]) {
          default: break;
          case 'b':	 // 1 string to match.
            return Intrinsic::x86_xop_vprotb;	 // "86.xop.vprotb"
          case 'd':	 // 1 string to match.
            return Intrinsic::x86_xop_vprotd;	 // "86.xop.vprotd"
          case 'q':	 // 1 string to match.
            return Intrinsic::x86_xop_vprotq;	 // "86.xop.vprotq"
          case 'w':	 // 1 string to match.
            return Intrinsic::x86_xop_vprotw;	 // "86.xop.vprotw"
          }
          break;
        case 's':	 // 8 strings to match.
          if (NameR[10] != 'h')
            break;
          switch (NameR[11]) {
          default: break;
          case 'a':	 // 4 strings to match.
            switch (NameR[12]) {
            default: break;
            case 'b':	 // 1 string to match.
              return Intrinsic::x86_xop_vpshab;	 // "86.xop.vpshab"
            case 'd':	 // 1 string to match.
              return Intrinsic::x86_xop_vpshad;	 // "86.xop.vpshad"
            case 'q':	 // 1 string to match.
              return Intrinsic::x86_xop_vpshaq;	 // "86.xop.vpshaq"
            case 'w':	 // 1 string to match.
              return Intrinsic::x86_xop_vpshaw;	 // "86.xop.vpshaw"
            }
            break;
          case 'l':	 // 4 strings to match.
            switch (NameR[12]) {
            default: break;
            case 'b':	 // 1 string to match.
              return Intrinsic::x86_xop_vpshlb;	 // "86.xop.vpshlb"
            case 'd':	 // 1 string to match.
              return Intrinsic::x86_xop_vpshld;	 // "86.xop.vpshld"
            case 'q':	 // 1 string to match.
              return Intrinsic::x86_xop_vpshlq;	 // "86.xop.vpshlq"
            case 'w':	 // 1 string to match.
              return Intrinsic::x86_xop_vpshlw;	 // "86.xop.vpshlw"
            }
            break;
          }
          break;
        }
        break;
      }
      break;
    case 14:	 // 96 strings to match.
      switch (NameR[0]) {
      default: break;
      case '8':	 // 95 strings to match.
        if (memcmp(NameR.data()+1, "6.", 2))
          break;
        switch (NameR[3]) {
        default: break;
        case '3':	 // 9 strings to match.
          if (memcmp(NameR.data()+4, "dnow.p", 6))
            break;
          switch (NameR[10]) {
          default: break;
          case 'f':	 // 8 strings to match.
            switch (NameR[11]) {
            default: break;
            case '2':	 // 1 string to match.
              if (memcmp(NameR.data()+12, "id", 2))
                break;
              return Intrinsic::x86_3dnow_pf2id;	 // "86.3dnow.pf2id"
            case 'a':	 // 2 strings to match.
              switch (NameR[12]) {
              default: break;
              case 'c':	 // 1 string to match.
                if (NameR[13] != 'c')
                  break;
                return Intrinsic::x86_3dnow_pfacc;	 // "86.3dnow.pfacc"
              case 'd':	 // 1 string to match.
                if (NameR[13] != 'd')
                  break;
                return Intrinsic::x86_3dnow_pfadd;	 // "86.3dnow.pfadd"
              }
              break;
            case 'm':	 // 3 strings to match.
              switch (NameR[12]) {
              default: break;
              case 'a':	 // 1 string to match.
                if (NameR[13] != 'x')
                  break;
                return Intrinsic::x86_3dnow_pfmax;	 // "86.3dnow.pfmax"
              case 'i':	 // 1 string to match.
                if (NameR[13] != 'n')
                  break;
                return Intrinsic::x86_3dnow_pfmin;	 // "86.3dnow.pfmin"
              case 'u':	 // 1 string to match.
                if (NameR[13] != 'l')
                  break;
                return Intrinsic::x86_3dnow_pfmul;	 // "86.3dnow.pfmul"
              }
              break;
            case 'r':	 // 1 string to match.
              if (memcmp(NameR.data()+12, "cp", 2))
                break;
              return Intrinsic::x86_3dnow_pfrcp;	 // "86.3dnow.pfrcp"
            case 's':	 // 1 string to match.
              if (memcmp(NameR.data()+12, "ub", 2))
                break;
              return Intrinsic::x86_3dnow_pfsub;	 // "86.3dnow.pfsub"
            }
            break;
          case 'i':	 // 1 string to match.
            if (memcmp(NameR.data()+11, "2fd", 3))
              break;
            return Intrinsic::x86_3dnow_pi2fd;	 // "86.3dnow.pi2fd"
          }
          break;
        case 'a':	 // 14 strings to match.
          if (memcmp(NameR.data()+4, "vx2.p", 5))
            break;
          switch (NameR[9]) {
          default: break;
          case 'a':	 // 5 strings to match.
            switch (NameR[10]) {
            default: break;
            case 'b':	 // 3 strings to match.
              if (memcmp(NameR.data()+11, "s.", 2))
                break;
              switch (NameR[13]) {
              default: break;
              case 'b':	 // 1 string to match.
                return Intrinsic::x86_avx2_pabs_b;	 // "86.avx2.pabs.b"
              case 'd':	 // 1 string to match.
                return Intrinsic::x86_avx2_pabs_d;	 // "86.avx2.pabs.d"
              case 'w':	 // 1 string to match.
                return Intrinsic::x86_avx2_pabs_w;	 // "86.avx2.pabs.w"
              }
              break;
            case 'v':	 // 2 strings to match.
              if (memcmp(NameR.data()+11, "g.", 2))
                break;
              switch (NameR[13]) {
              default: break;
              case 'b':	 // 1 string to match.
                return Intrinsic::x86_avx2_pavg_b;	 // "86.avx2.pavg.b"
              case 'w':	 // 1 string to match.
                return Intrinsic::x86_avx2_pavg_w;	 // "86.avx2.pavg.w"
              }
              break;
            }
            break;
          case 'e':	 // 1 string to match.
            if (memcmp(NameR.data()+10, "rmps", 4))
              break;
            return Intrinsic::x86_avx2_permps;	 // "86.avx2.permps"
          case 's':	 // 8 strings to match.
            switch (NameR[10]) {
            default: break;
            case 'l':	 // 3 strings to match.
              if (memcmp(NameR.data()+11, "l.", 2))
                break;
              switch (NameR[13]) {
              default: break;
              case 'd':	 // 1 string to match.
                return Intrinsic::x86_avx2_psll_d;	 // "86.avx2.psll.d"
              case 'q':	 // 1 string to match.
                return Intrinsic::x86_avx2_psll_q;	 // "86.avx2.psll.q"
              case 'w':	 // 1 string to match.
                return Intrinsic::x86_avx2_psll_w;	 // "86.avx2.psll.w"
              }
              break;
            case 'r':	 // 5 strings to match.
              switch (NameR[11]) {
              default: break;
              case 'a':	 // 2 strings to match.
                if (NameR[12] != '.')
                  break;
                switch (NameR[13]) {
                default: break;
                case 'd':	 // 1 string to match.
                  return Intrinsic::x86_avx2_psra_d;	 // "86.avx2.psra.d"
                case 'w':	 // 1 string to match.
                  return Intrinsic::x86_avx2_psra_w;	 // "86.avx2.psra.w"
                }
                break;
              case 'l':	 // 3 strings to match.
                if (NameR[12] != '.')
                  break;
                switch (NameR[13]) {
                default: break;
                case 'd':	 // 1 string to match.
                  return Intrinsic::x86_avx2_psrl_d;	 // "86.avx2.psrl.d"
                case 'q':	 // 1 string to match.
                  return Intrinsic::x86_avx2_psrl_q;	 // "86.avx2.psrl.q"
                case 'w':	 // 1 string to match.
                  return Intrinsic::x86_avx2_psrl_w;	 // "86.avx2.psrl.w"
                }
                break;
              }
              break;
            }
            break;
          }
          break;
        case 'b':	 // 6 strings to match.
          if (memcmp(NameR.data()+4, "mi.", 3))
            break;
          switch (NameR[7]) {
          default: break;
          case 'b':	 // 2 strings to match.
            if (memcmp(NameR.data()+8, "zhi.", 4))
              break;
            switch (NameR[12]) {
            default: break;
            case '3':	 // 1 string to match.
              if (NameR[13] != '2')
                break;
              return Intrinsic::x86_bmi_bzhi_32;	 // "86.bmi.bzhi.32"
            case '6':	 // 1 string to match.
              if (NameR[13] != '4')
                break;
              return Intrinsic::x86_bmi_bzhi_64;	 // "86.bmi.bzhi.64"
            }
            break;
          case 'p':	 // 4 strings to match.
            switch (NameR[8]) {
            default: break;
            case 'd':	 // 2 strings to match.
              if (memcmp(NameR.data()+9, "ep.", 3))
                break;
              switch (NameR[12]) {
              default: break;
              case '3':	 // 1 string to match.
                if (NameR[13] != '2')
                  break;
                return Intrinsic::x86_bmi_pdep_32;	 // "86.bmi.pdep.32"
              case '6':	 // 1 string to match.
                if (NameR[13] != '4')
                  break;
                return Intrinsic::x86_bmi_pdep_64;	 // "86.bmi.pdep.64"
              }
              break;
            case 'e':	 // 2 strings to match.
              if (memcmp(NameR.data()+9, "xt.", 3))
                break;
              switch (NameR[12]) {
              default: break;
              case '3':	 // 1 string to match.
                if (NameR[13] != '2')
                  break;
                return Intrinsic::x86_bmi_pext_32;	 // "86.bmi.pext.32"
              case '6':	 // 1 string to match.
                if (NameR[13] != '4')
                  break;
                return Intrinsic::x86_bmi_pext_64;	 // "86.bmi.pext.64"
              }
              break;
            }
            break;
          }
          break;
        case 'm':	 // 21 strings to match.
          if (memcmp(NameR.data()+4, "mx.p", 4))
            break;
          switch (NameR[8]) {
          default: break;
          case 'a':	 // 2 strings to match.
            if (memcmp(NameR.data()+9, "dds.", 4))
              break;
            switch (NameR[13]) {
            default: break;
            case 'b':	 // 1 string to match.
              return Intrinsic::x86_mmx_padds_b;	 // "86.mmx.padds.b"
            case 'w':	 // 1 string to match.
              return Intrinsic::x86_mmx_padds_w;	 // "86.mmx.padds.w"
            }
            break;
          case 'e':	 // 1 string to match.
            if (memcmp(NameR.data()+9, "xtr.w", 5))
              break;
            return Intrinsic::x86_mmx_pextr_w;	 // "86.mmx.pextr.w"
          case 'i':	 // 1 string to match.
            if (memcmp(NameR.data()+9, "nsr.w", 5))
              break;
            return Intrinsic::x86_mmx_pinsr_w;	 // "86.mmx.pinsr.w"
          case 'm':	 // 6 strings to match.
            switch (NameR[9]) {
            default: break;
            case 'a':	 // 2 strings to match.
              if (NameR[10] != 'x')
                break;
              switch (NameR[11]) {
              default: break;
              case 's':	 // 1 string to match.
                if (memcmp(NameR.data()+12, ".w", 2))
                  break;
                return Intrinsic::x86_mmx_pmaxs_w;	 // "86.mmx.pmaxs.w"
              case 'u':	 // 1 string to match.
                if (memcmp(NameR.data()+12, ".b", 2))
                  break;
                return Intrinsic::x86_mmx_pmaxu_b;	 // "86.mmx.pmaxu.b"
              }
              break;
            case 'i':	 // 2 strings to match.
              if (NameR[10] != 'n')
                break;
              switch (NameR[11]) {
              default: break;
              case 's':	 // 1 string to match.
                if (memcmp(NameR.data()+12, ".w", 2))
                  break;
                return Intrinsic::x86_mmx_pmins_w;	 // "86.mmx.pmins.w"
              case 'u':	 // 1 string to match.
                if (memcmp(NameR.data()+12, ".b", 2))
                  break;
                return Intrinsic::x86_mmx_pminu_b;	 // "86.mmx.pminu.b"
              }
              break;
            case 'u':	 // 2 strings to match.
              if (NameR[10] != 'l')
                break;
              switch (NameR[11]) {
              default: break;
              case 'h':	 // 1 string to match.
                if (memcmp(NameR.data()+12, ".w", 2))
                  break;
                return Intrinsic::x86_mmx_pmulh_w;	 // "86.mmx.pmulh.w"
              case 'l':	 // 1 string to match.
                if (memcmp(NameR.data()+12, ".w", 2))
                  break;
                return Intrinsic::x86_mmx_pmull_w;	 // "86.mmx.pmull.w"
              }
              break;
            }
            break;
          case 's':	 // 11 strings to match.
            switch (NameR[9]) {
            default: break;
            case 'a':	 // 1 string to match.
              if (memcmp(NameR.data()+10, "d.bw", 4))
                break;
              return Intrinsic::x86_mmx_psad_bw;	 // "86.mmx.psad.bw"
            case 'l':	 // 3 strings to match.
              if (memcmp(NameR.data()+10, "li.", 3))
                break;
              switch (NameR[13]) {
              default: break;
              case 'd':	 // 1 string to match.
                return Intrinsic::x86_mmx_pslli_d;	 // "86.mmx.pslli.d"
              case 'q':	 // 1 string to match.
                return Intrinsic::x86_mmx_pslli_q;	 // "86.mmx.pslli.q"
              case 'w':	 // 1 string to match.
                return Intrinsic::x86_mmx_pslli_w;	 // "86.mmx.pslli.w"
              }
              break;
            case 'r':	 // 5 strings to match.
              switch (NameR[10]) {
              default: break;
              case 'a':	 // 2 strings to match.
                if (memcmp(NameR.data()+11, "i.", 2))
                  break;
                switch (NameR[13]) {
                default: break;
                case 'd':	 // 1 string to match.
                  return Intrinsic::x86_mmx_psrai_d;	 // "86.mmx.psrai.d"
                case 'w':	 // 1 string to match.
                  return Intrinsic::x86_mmx_psrai_w;	 // "86.mmx.psrai.w"
                }
                break;
              case 'l':	 // 3 strings to match.
                if (memcmp(NameR.data()+11, "i.", 2))
                  break;
                switch (NameR[13]) {
                default: break;
                case 'd':	 // 1 string to match.
                  return Intrinsic::x86_mmx_psrli_d;	 // "86.mmx.psrli.d"
                case 'q':	 // 1 string to match.
                  return Intrinsic::x86_mmx_psrli_q;	 // "86.mmx.psrli.q"
                case 'w':	 // 1 string to match.
                  return Intrinsic::x86_mmx_psrli_w;	 // "86.mmx.psrli.w"
                }
                break;
              }
              break;
            case 'u':	 // 2 strings to match.
              if (memcmp(NameR.data()+10, "bs.", 3))
                break;
              switch (NameR[13]) {
              default: break;
              case 'b':	 // 1 string to match.
                return Intrinsic::x86_mmx_psubs_b;	 // "86.mmx.psubs.b"
              case 'w':	 // 1 string to match.
                return Intrinsic::x86_mmx_psubs_w;	 // "86.mmx.psubs.w"
              }
              break;
            }
            break;
          }
          break;
        case 'r':	 // 4 strings to match.
          if (NameR[4] != 'd')
            break;
          switch (NameR[5]) {
          default: break;
          case 'f':	 // 2 strings to match.
            if (memcmp(NameR.data()+6, "sbase.", 6))
              break;
            switch (NameR[12]) {
            default: break;
            case '3':	 // 1 string to match.
              if (NameR[13] != '2')
                break;
              return Intrinsic::x86_rdfsbase_32;	 // "86.rdfsbase.32"
            case '6':	 // 1 string to match.
              if (NameR[13] != '4')
                break;
              return Intrinsic::x86_rdfsbase_64;	 // "86.rdfsbase.64"
            }
            break;
          case 'g':	 // 2 strings to match.
            if (memcmp(NameR.data()+6, "sbase.", 6))
              break;
            switch (NameR[12]) {
            default: break;
            case '3':	 // 1 string to match.
              if (NameR[13] != '2')
                break;
              return Intrinsic::x86_rdgsbase_32;	 // "86.rdgsbase.32"
            case '6':	 // 1 string to match.
              if (NameR[13] != '4')
                break;
              return Intrinsic::x86_rdgsbase_64;	 // "86.rdgsbase.64"
            }
            break;
          }
          break;
        case 's':	 // 29 strings to match.
          if (memcmp(NameR.data()+4, "se", 2))
            break;
          switch (NameR[6]) {
          default: break;
          case '.':	 // 5 strings to match.
            switch (NameR[7]) {
            default: break;
            case 'l':	 // 1 string to match.
              if (memcmp(NameR.data()+8, "dmxcsr", 6))
                break;
              return Intrinsic::x86_sse_ldmxcsr;	 // "86.sse.ldmxcsr"
            case 'p':	 // 1 string to match.
              if (memcmp(NameR.data()+8, "shuf.w", 6))
                break;
              return Intrinsic::x86_sse_pshuf_w;	 // "86.sse.pshuf.w"
            case 's':	 // 3 strings to match.
              switch (NameR[8]) {
              default: break;
              case 'q':	 // 2 strings to match.
                if (memcmp(NameR.data()+9, "rt.", 3))
                  break;
                switch (NameR[12]) {
                default: break;
                case 'p':	 // 1 string to match.
                  if (NameR[13] != 's')
                    break;
                  return Intrinsic::x86_sse_sqrt_ps;	 // "86.sse.sqrt.ps"
                case 's':	 // 1 string to match.
                  if (NameR[13] != 's')
                    break;
                  return Intrinsic::x86_sse_sqrt_ss;	 // "86.sse.sqrt.ss"
                }
                break;
              case 't':	 // 1 string to match.
                if (memcmp(NameR.data()+9, "mxcsr", 5))
                  break;
                return Intrinsic::x86_sse_stmxcsr;	 // "86.sse.stmxcsr"
              }
              break;
            }
            break;
          case '2':	 // 22 strings to match.
            if (NameR[7] != '.')
              break;
            switch (NameR[8]) {
            default: break;
            case 'a':	 // 1 string to match.
              if (memcmp(NameR.data()+9, "dd.sd", 5))
                break;
              return Intrinsic::x86_sse2_add_sd;	 // "86.sse2.add.sd"
            case 'c':	 // 2 strings to match.
              if (memcmp(NameR.data()+9, "mp.", 3))
                break;
              switch (NameR[12]) {
              default: break;
              case 'p':	 // 1 string to match.
                if (NameR[13] != 'd')
                  break;
                return Intrinsic::x86_sse2_cmp_pd;	 // "86.sse2.cmp.pd"
              case 's':	 // 1 string to match.
                if (NameR[13] != 'd')
                  break;
                return Intrinsic::x86_sse2_cmp_sd;	 // "86.sse2.cmp.sd"
              }
              break;
            case 'd':	 // 1 string to match.
              if (memcmp(NameR.data()+9, "iv.sd", 5))
                break;
              return Intrinsic::x86_sse2_div_sd;	 // "86.sse2.div.sd"
            case 'l':	 // 1 string to match.
              if (memcmp(NameR.data()+9, "fence", 5))
                break;
              return Intrinsic::x86_sse2_lfence;	 // "86.sse2.lfence"
            case 'm':	 // 6 strings to match.
              switch (NameR[9]) {
              default: break;
              case 'a':	 // 2 strings to match.
                if (memcmp(NameR.data()+10, "x.", 2))
                  break;
                switch (NameR[12]) {
                default: break;
                case 'p':	 // 1 string to match.
                  if (NameR[13] != 'd')
                    break;
                  return Intrinsic::x86_sse2_max_pd;	 // "86.sse2.max.pd"
                case 's':	 // 1 string to match.
                  if (NameR[13] != 'd')
                    break;
                  return Intrinsic::x86_sse2_max_sd;	 // "86.sse2.max.sd"
                }
                break;
              case 'f':	 // 1 string to match.
                if (memcmp(NameR.data()+10, "ence", 4))
                  break;
                return Intrinsic::x86_sse2_mfence;	 // "86.sse2.mfence"
              case 'i':	 // 2 strings to match.
                if (memcmp(NameR.data()+10, "n.", 2))
                  break;
                switch (NameR[12]) {
                default: break;
                case 'p':	 // 1 string to match.
                  if (NameR[13] != 'd')
                    break;
                  return Intrinsic::x86_sse2_min_pd;	 // "86.sse2.min.pd"
                case 's':	 // 1 string to match.
                  if (NameR[13] != 'd')
                    break;
                  return Intrinsic::x86_sse2_min_sd;	 // "86.sse2.min.sd"
                }
                break;
              case 'u':	 // 1 string to match.
                if (memcmp(NameR.data()+10, "l.sd", 4))
                  break;
                return Intrinsic::x86_sse2_mul_sd;	 // "86.sse2.mul.sd"
              }
              break;
            case 'p':	 // 10 strings to match.
              switch (NameR[9]) {
              default: break;
              case 'a':	 // 2 strings to match.
                if (memcmp(NameR.data()+10, "vg.", 3))
                  break;
                switch (NameR[13]) {
                default: break;
                case 'b':	 // 1 string to match.
                  return Intrinsic::x86_sse2_pavg_b;	 // "86.sse2.pavg.b"
                case 'w':	 // 1 string to match.
                  return Intrinsic::x86_sse2_pavg_w;	 // "86.sse2.pavg.w"
                }
                break;
              case 's':	 // 8 strings to match.
                switch (NameR[10]) {
                default: break;
                case 'l':	 // 3 strings to match.
                  if (memcmp(NameR.data()+11, "l.", 2))
                    break;
                  switch (NameR[13]) {
                  default: break;
                  case 'd':	 // 1 string to match.
                    return Intrinsic::x86_sse2_psll_d;	 // "86.sse2.psll.d"
                  case 'q':	 // 1 string to match.
                    return Intrinsic::x86_sse2_psll_q;	 // "86.sse2.psll.q"
                  case 'w':	 // 1 string to match.
                    return Intrinsic::x86_sse2_psll_w;	 // "86.sse2.psll.w"
                  }
                  break;
                case 'r':	 // 5 strings to match.
                  switch (NameR[11]) {
                  default: break;
                  case 'a':	 // 2 strings to match.
                    if (NameR[12] != '.')
                      break;
                    switch (NameR[13]) {
                    default: break;
                    case 'd':	 // 1 string to match.
                      return Intrinsic::x86_sse2_psra_d;	 // "86.sse2.psra.d"
                    case 'w':	 // 1 string to match.
                      return Intrinsic::x86_sse2_psra_w;	 // "86.sse2.psra.w"
                    }
                    break;
                  case 'l':	 // 3 strings to match.
                    if (NameR[12] != '.')
                      break;
                    switch (NameR[13]) {
                    default: break;
                    case 'd':	 // 1 string to match.
                      return Intrinsic::x86_sse2_psrl_d;	 // "86.sse2.psrl.d"
                    case 'q':	 // 1 string to match.
                      return Intrinsic::x86_sse2_psrl_q;	 // "86.sse2.psrl.q"
                    case 'w':	 // 1 string to match.
                      return Intrinsic::x86_sse2_psrl_w;	 // "86.sse2.psrl.w"
                    }
                    break;
                  }
                  break;
                }
                break;
              }
              break;
            case 's':	 // 1 string to match.
              if (memcmp(NameR.data()+9, "ub.sd", 5))
                break;
              return Intrinsic::x86_sse2_sub_sd;	 // "86.sse2.sub.sd"
            }
            break;
          case '3':	 // 1 string to match.
            if (memcmp(NameR.data()+7, ".ldu.dq", 7))
              break;
            return Intrinsic::x86_sse3_ldu_dq;	 // "86.sse3.ldu.dq"
          case '4':	 // 1 string to match.
            if (memcmp(NameR.data()+7, "a.extrq", 7))
              break;
            return Intrinsic::x86_sse4a_extrq;	 // "86.sse4a.extrq"
          }
          break;
        case 'w':	 // 4 strings to match.
          if (NameR[4] != 'r')
            break;
          switch (NameR[5]) {
          default: break;
          case 'f':	 // 2 strings to match.
            if (memcmp(NameR.data()+6, "sbase.", 6))
              break;
            switch (NameR[12]) {
            default: break;
            case '3':	 // 1 string to match.
              if (NameR[13] != '2')
                break;
              return Intrinsic::x86_wrfsbase_32;	 // "86.wrfsbase.32"
            case '6':	 // 1 string to match.
              if (NameR[13] != '4')
                break;
              return Intrinsic::x86_wrfsbase_64;	 // "86.wrfsbase.64"
            }
            break;
          case 'g':	 // 2 strings to match.
            if (memcmp(NameR.data()+6, "sbase.", 6))
              break;
            switch (NameR[12]) {
            default: break;
            case '3':	 // 1 string to match.
              if (NameR[13] != '2')
                break;
              return Intrinsic::x86_wrgsbase_32;	 // "86.wrgsbase.32"
            case '6':	 // 1 string to match.
              if (NameR[13] != '4')
                break;
              return Intrinsic::x86_wrgsbase_64;	 // "86.wrgsbase.64"
            }
            break;
          }
          break;
        case 'x':	 // 8 strings to match.
          if (memcmp(NameR.data()+4, "op.vp", 5))
            break;
          switch (NameR[9]) {
          default: break;
          case 'c':	 // 4 strings to match.
            if (memcmp(NameR.data()+10, "omu", 3))
              break;
            switch (NameR[13]) {
            default: break;
            case 'b':	 // 1 string to match.
              return Intrinsic::x86_xop_vpcomub;	 // "86.xop.vpcomub"
            case 'd':	 // 1 string to match.
              return Intrinsic::x86_xop_vpcomud;	 // "86.xop.vpcomud"
            case 'q':	 // 1 string to match.
              return Intrinsic::x86_xop_vpcomuq;	 // "86.xop.vpcomuq"
            case 'w':	 // 1 string to match.
              return Intrinsic::x86_xop_vpcomuw;	 // "86.xop.vpcomuw"
            }
            break;
          case 'r':	 // 4 strings to match.
            if (memcmp(NameR.data()+10, "ot", 2))
              break;
            switch (NameR[12]) {
            default: break;
            case 'b':	 // 1 string to match.
              if (NameR[13] != 'i')
                break;
              return Intrinsic::x86_xop_vprotbi;	 // "86.xop.vprotbi"
            case 'd':	 // 1 string to match.
              if (NameR[13] != 'i')
                break;
              return Intrinsic::x86_xop_vprotdi;	 // "86.xop.vprotdi"
            case 'q':	 // 1 string to match.
              if (NameR[13] != 'i')
                break;
              return Intrinsic::x86_xop_vprotqi;	 // "86.xop.vprotqi"
            case 'w':	 // 1 string to match.
              if (NameR[13] != 'i')
                break;
              return Intrinsic::x86_xop_vprotwi;	 // "86.xop.vprotwi"
            }
            break;
          }
          break;
        }
        break;
      case 'c':	 // 1 string to match.
        if (memcmp(NameR.data()+1, "ore.waitevent", 13))
          break;
        return Intrinsic::xcore_waitevent;	 // "core.waitevent"
      }
      break;
    case 15:	 // 143 strings to match.
      switch (NameR[0]) {
      default: break;
      case '8':	 // 142 strings to match.
        if (memcmp(NameR.data()+1, "6.", 2))
          break;
        switch (NameR[3]) {
        default: break;
        case '3':	 // 3 strings to match.
          if (memcmp(NameR.data()+4, "dnow", 4))
            break;
          switch (NameR[8]) {
          default: break;
          case '.':	 // 1 string to match.
            if (memcmp(NameR.data()+9, "pfsubr", 6))
              break;
            return Intrinsic::x86_3dnow_pfsubr;	 // "86.3dnow.pfsubr"
          case 'a':	 // 2 strings to match.
            if (memcmp(NameR.data()+9, ".p", 2))
              break;
            switch (NameR[11]) {
            default: break;
            case 'f':	 // 1 string to match.
              if (memcmp(NameR.data()+12, "2iw", 3))
                break;
              return Intrinsic::x86_3dnowa_pf2iw;	 // "86.3dnowa.pf2iw"
            case 'i':	 // 1 string to match.
              if (memcmp(NameR.data()+12, "2fw", 3))
                break;
              return Intrinsic::x86_3dnowa_pi2fw;	 // "86.3dnowa.pi2fw"
            }
            break;
          }
          break;
        case 'a':	 // 48 strings to match.
          switch (NameR[4]) {
          default: break;
          case 'e':	 // 3 strings to match.
            if (memcmp(NameR.data()+5, "sni.aes", 7))
              break;
            switch (NameR[12]) {
            default: break;
            case 'd':	 // 1 string to match.
              if (memcmp(NameR.data()+13, "ec", 2))
                break;
              return Intrinsic::x86_aesni_aesdec;	 // "86.aesni.aesdec"
            case 'e':	 // 1 string to match.
              if (memcmp(NameR.data()+13, "nc", 2))
                break;
              return Intrinsic::x86_aesni_aesenc;	 // "86.aesni.aesenc"
            case 'i':	 // 1 string to match.
              if (memcmp(NameR.data()+13, "mc", 2))
                break;
              return Intrinsic::x86_aesni_aesimc;	 // "86.aesni.aesimc"
            }
            break;
          case 'v':	 // 45 strings to match.
            if (NameR[5] != 'x')
              break;
            switch (NameR[6]) {
            default: break;
            case '.':	 // 1 string to match.
              if (memcmp(NameR.data()+7, "vzeroall", 8))
                break;
              return Intrinsic::x86_avx_vzeroall;	 // "86.avx.vzeroall"
            case '2':	 // 44 strings to match.
              if (NameR[7] != '.')
                break;
              switch (NameR[8]) {
              default: break;
              case 'm':	 // 1 string to match.
                if (memcmp(NameR.data()+9, "psadbw", 6))
                  break;
                return Intrinsic::x86_avx2_mpsadbw;	 // "86.avx2.mpsadbw"
              case 'p':	 // 43 strings to match.
                switch (NameR[9]) {
                default: break;
                case 'a':	 // 2 strings to match.
                  if (memcmp(NameR.data()+10, "dds.", 4))
                    break;
                  switch (NameR[14]) {
                  default: break;
                  case 'b':	 // 1 string to match.
                    return Intrinsic::x86_avx2_padds_b;	 // "86.avx2.padds.b"
                  case 'w':	 // 1 string to match.
                    return Intrinsic::x86_avx2_padds_w;	 // "86.avx2.padds.w"
                  }
                  break;
                case 'b':	 // 1 string to match.
                  if (memcmp(NameR.data()+10, "lendw", 5))
                    break;
                  return Intrinsic::x86_avx2_pblendw;	 // "86.avx2.pblendw"
                case 'h':	 // 4 strings to match.
                  switch (NameR[10]) {
                  default: break;
                  case 'a':	 // 2 strings to match.
                    if (memcmp(NameR.data()+11, "dd.", 3))
                      break;
                    switch (NameR[14]) {
                    default: break;
                    case 'd':	 // 1 string to match.
                      return Intrinsic::x86_avx2_phadd_d;	 // "86.avx2.phadd.d"
                    case 'w':	 // 1 string to match.
                      return Intrinsic::x86_avx2_phadd_w;	 // "86.avx2.phadd.w"
                    }
                    break;
                  case 's':	 // 2 strings to match.
                    if (memcmp(NameR.data()+11, "ub.", 3))
                      break;
                    switch (NameR[14]) {
                    default: break;
                    case 'd':	 // 1 string to match.
                      return Intrinsic::x86_avx2_phsub_d;	 // "86.avx2.phsub.d"
                    case 'w':	 // 1 string to match.
                      return Intrinsic::x86_avx2_phsub_w;	 // "86.avx2.phsub.w"
                    }
                    break;
                  }
                  break;
                case 'm':	 // 14 strings to match.
                  switch (NameR[10]) {
                  default: break;
                  case 'a':	 // 6 strings to match.
                    if (NameR[11] != 'x')
                      break;
                    switch (NameR[12]) {
                    default: break;
                    case 's':	 // 3 strings to match.
                      if (NameR[13] != '.')
                        break;
                      switch (NameR[14]) {
                      default: break;
                      case 'b':	 // 1 string to match.
                        return Intrinsic::x86_avx2_pmaxs_b;	 // "86.avx2.pmaxs.b"
                      case 'd':	 // 1 string to match.
                        return Intrinsic::x86_avx2_pmaxs_d;	 // "86.avx2.pmaxs.d"
                      case 'w':	 // 1 string to match.
                        return Intrinsic::x86_avx2_pmaxs_w;	 // "86.avx2.pmaxs.w"
                      }
                      break;
                    case 'u':	 // 3 strings to match.
                      if (NameR[13] != '.')
                        break;
                      switch (NameR[14]) {
                      default: break;
                      case 'b':	 // 1 string to match.
                        return Intrinsic::x86_avx2_pmaxu_b;	 // "86.avx2.pmaxu.b"
                      case 'd':	 // 1 string to match.
                        return Intrinsic::x86_avx2_pmaxu_d;	 // "86.avx2.pmaxu.d"
                      case 'w':	 // 1 string to match.
                        return Intrinsic::x86_avx2_pmaxu_w;	 // "86.avx2.pmaxu.w"
                      }
                      break;
                    }
                    break;
                  case 'i':	 // 6 strings to match.
                    if (NameR[11] != 'n')
                      break;
                    switch (NameR[12]) {
                    default: break;
                    case 's':	 // 3 strings to match.
                      if (NameR[13] != '.')
                        break;
                      switch (NameR[14]) {
                      default: break;
                      case 'b':	 // 1 string to match.
                        return Intrinsic::x86_avx2_pmins_b;	 // "86.avx2.pmins.b"
                      case 'd':	 // 1 string to match.
                        return Intrinsic::x86_avx2_pmins_d;	 // "86.avx2.pmins.d"
                      case 'w':	 // 1 string to match.
                        return Intrinsic::x86_avx2_pmins_w;	 // "86.avx2.pmins.w"
                      }
                      break;
                    case 'u':	 // 3 strings to match.
                      if (NameR[13] != '.')
                        break;
                      switch (NameR[14]) {
                      default: break;
                      case 'b':	 // 1 string to match.
                        return Intrinsic::x86_avx2_pminu_b;	 // "86.avx2.pminu.b"
                      case 'd':	 // 1 string to match.
                        return Intrinsic::x86_avx2_pminu_d;	 // "86.avx2.pminu.d"
                      case 'w':	 // 1 string to match.
                        return Intrinsic::x86_avx2_pminu_w;	 // "86.avx2.pminu.w"
                      }
                      break;
                    }
                    break;
                  case 'u':	 // 2 strings to match.
                    if (NameR[11] != 'l')
                      break;
                    switch (NameR[12]) {
                    default: break;
                    case '.':	 // 1 string to match.
                      if (memcmp(NameR.data()+13, "dq", 2))
                        break;
                      return Intrinsic::x86_avx2_pmul_dq;	 // "86.avx2.pmul.dq"
                    case 'h':	 // 1 string to match.
                      if (memcmp(NameR.data()+13, ".w", 2))
                        break;
                      return Intrinsic::x86_avx2_pmulh_w;	 // "86.avx2.pmulh.w"
                    }
                    break;
                  }
                  break;
                case 's':	 // 22 strings to match.
                  switch (NameR[10]) {
                  default: break;
                  case 'a':	 // 1 string to match.
                    if (memcmp(NameR.data()+11, "d.bw", 4))
                      break;
                    return Intrinsic::x86_avx2_psad_bw;	 // "86.avx2.psad.bw"
                  case 'h':	 // 1 string to match.
                    if (memcmp(NameR.data()+11, "uf.b", 4))
                      break;
                    return Intrinsic::x86_avx2_pshuf_b;	 // "86.avx2.pshuf.b"
                  case 'i':	 // 3 strings to match.
                    if (memcmp(NameR.data()+11, "gn.", 3))
                      break;
                    switch (NameR[14]) {
                    default: break;
                    case 'b':	 // 1 string to match.
                      return Intrinsic::x86_avx2_psign_b;	 // "86.avx2.psign.b"
                    case 'd':	 // 1 string to match.
                      return Intrinsic::x86_avx2_psign_d;	 // "86.avx2.psign.d"
                    case 'w':	 // 1 string to match.
                      return Intrinsic::x86_avx2_psign_w;	 // "86.avx2.psign.w"
                    }
                    break;
                  case 'l':	 // 6 strings to match.
                    if (NameR[11] != 'l')
                      break;
                    switch (NameR[12]) {
                    default: break;
                    case '.':	 // 1 string to match.
                      if (memcmp(NameR.data()+13, "dq", 2))
                        break;
                      return Intrinsic::x86_avx2_psll_dq;	 // "86.avx2.psll.dq"
                    case 'i':	 // 3 strings to match.
                      if (NameR[13] != '.')
                        break;
                      switch (NameR[14]) {
                      default: break;
                      case 'd':	 // 1 string to match.
                        return Intrinsic::x86_avx2_pslli_d;	 // "86.avx2.pslli.d"
                      case 'q':	 // 1 string to match.
                        return Intrinsic::x86_avx2_pslli_q;	 // "86.avx2.pslli.q"
                      case 'w':	 // 1 string to match.
                        return Intrinsic::x86_avx2_pslli_w;	 // "86.avx2.pslli.w"
                      }
                      break;
                    case 'v':	 // 2 strings to match.
                      if (NameR[13] != '.')
                        break;
                      switch (NameR[14]) {
                      default: break;
                      case 'd':	 // 1 string to match.
                        return Intrinsic::x86_avx2_psllv_d;	 // "86.avx2.psllv.d"
                      case 'q':	 // 1 string to match.
                        return Intrinsic::x86_avx2_psllv_q;	 // "86.avx2.psllv.q"
                      }
                      break;
                    }
                    break;
                  case 'r':	 // 9 strings to match.
                    switch (NameR[11]) {
                    default: break;
                    case 'a':	 // 3 strings to match.
                      switch (NameR[12]) {
                      default: break;
                      case 'i':	 // 2 strings to match.
                        if (NameR[13] != '.')
                          break;
                        switch (NameR[14]) {
                        default: break;
                        case 'd':	 // 1 string to match.
                          return Intrinsic::x86_avx2_psrai_d;	 // "86.avx2.psrai.d"
                        case 'w':	 // 1 string to match.
                          return Intrinsic::x86_avx2_psrai_w;	 // "86.avx2.psrai.w"
                        }
                        break;
                      case 'v':	 // 1 string to match.
                        if (memcmp(NameR.data()+13, ".d", 2))
                          break;
                        return Intrinsic::x86_avx2_psrav_d;	 // "86.avx2.psrav.d"
                      }
                      break;
                    case 'l':	 // 6 strings to match.
                      switch (NameR[12]) {
                      default: break;
                      case '.':	 // 1 string to match.
                        if (memcmp(NameR.data()+13, "dq", 2))
                          break;
                        return Intrinsic::x86_avx2_psrl_dq;	 // "86.avx2.psrl.dq"
                      case 'i':	 // 3 strings to match.
                        if (NameR[13] != '.')
                          break;
                        switch (NameR[14]) {
                        default: break;
                        case 'd':	 // 1 string to match.
                          return Intrinsic::x86_avx2_psrli_d;	 // "86.avx2.psrli.d"
                        case 'q':	 // 1 string to match.
                          return Intrinsic::x86_avx2_psrli_q;	 // "86.avx2.psrli.q"
                        case 'w':	 // 1 string to match.
                          return Intrinsic::x86_avx2_psrli_w;	 // "86.avx2.psrli.w"
                        }
                        break;
                      case 'v':	 // 2 strings to match.
                        if (NameR[13] != '.')
                          break;
                        switch (NameR[14]) {
                        default: break;
                        case 'd':	 // 1 string to match.
                          return Intrinsic::x86_avx2_psrlv_d;	 // "86.avx2.psrlv.d"
                        case 'q':	 // 1 string to match.
                          return Intrinsic::x86_avx2_psrlv_q;	 // "86.avx2.psrlv.q"
                        }
                        break;
                      }
                      break;
                    }
                    break;
                  case 'u':	 // 2 strings to match.
                    if (memcmp(NameR.data()+11, "bs.", 3))
                      break;
                    switch (NameR[14]) {
                    default: break;
                    case 'b':	 // 1 string to match.
                      return Intrinsic::x86_avx2_psubs_b;	 // "86.avx2.psubs.b"
                    case 'w':	 // 1 string to match.
                      return Intrinsic::x86_avx2_psubs_w;	 // "86.avx2.psubs.w"
                    }
                    break;
                  }
                  break;
                }
                break;
              }
              break;
            }
            break;
          }
          break;
        case 'b':	 // 2 strings to match.
          if (memcmp(NameR.data()+4, "mi.bextr.", 9))
            break;
          switch (NameR[13]) {
          default: break;
          case '3':	 // 1 string to match.
            if (NameR[14] != '2')
              break;
            return Intrinsic::x86_bmi_bextr_32;	 // "86.bmi.bextr.32"
          case '6':	 // 1 string to match.
            if (NameR[14] != '4')
              break;
            return Intrinsic::x86_bmi_bextr_64;	 // "86.bmi.bextr.64"
          }
          break;
        case 'm':	 // 19 strings to match.
          if (memcmp(NameR.data()+4, "mx.", 3))
            break;
          switch (NameR[7]) {
          default: break;
          case 'm':	 // 2 strings to match.
            switch (NameR[8]) {
            default: break;
            case 'a':	 // 1 string to match.
              if (memcmp(NameR.data()+9, "skmovq", 6))
                break;
              return Intrinsic::x86_mmx_maskmovq;	 // "86.mmx.maskmovq"
            case 'o':	 // 1 string to match.
              if (memcmp(NameR.data()+9, "vnt.dq", 6))
                break;
              return Intrinsic::x86_mmx_movnt_dq;	 // "86.mmx.movnt.dq"
            }
            break;
          case 'p':	 // 17 strings to match.
            switch (NameR[8]) {
            default: break;
            case 'a':	 // 5 strings to match.
              switch (NameR[9]) {
              default: break;
              case 'c':	 // 3 strings to match.
                if (NameR[10] != 'k')
                  break;
                switch (NameR[11]) {
                default: break;
                case 's':	 // 2 strings to match.
                  if (NameR[12] != 's')
                    break;
                  switch (NameR[13]) {
                  default: break;
                  case 'd':	 // 1 string to match.
                    if (NameR[14] != 'w')
                      break;
                    return Intrinsic::x86_mmx_packssdw;	 // "86.mmx.packssdw"
                  case 'w':	 // 1 string to match.
                    if (NameR[14] != 'b')
                      break;
                    return Intrinsic::x86_mmx_packsswb;	 // "86.mmx.packsswb"
                  }
                  break;
                case 'u':	 // 1 string to match.
                  if (memcmp(NameR.data()+12, "swb", 3))
                    break;
                  return Intrinsic::x86_mmx_packuswb;	 // "86.mmx.packuswb"
                }
                break;
              case 'd':	 // 2 strings to match.
                if (memcmp(NameR.data()+10, "dus.", 4))
                  break;
                switch (NameR[14]) {
                default: break;
                case 'b':	 // 1 string to match.
                  return Intrinsic::x86_mmx_paddus_b;	 // "86.mmx.paddus.b"
                case 'w':	 // 1 string to match.
                  return Intrinsic::x86_mmx_paddus_w;	 // "86.mmx.paddus.w"
                }
                break;
              }
              break;
            case 'c':	 // 6 strings to match.
              if (memcmp(NameR.data()+9, "mp", 2))
                break;
              switch (NameR[11]) {
              default: break;
              case 'e':	 // 3 strings to match.
                if (memcmp(NameR.data()+12, "q.", 2))
                  break;
                switch (NameR[14]) {
                default: break;
                case 'b':	 // 1 string to match.
                  return Intrinsic::x86_mmx_pcmpeq_b;	 // "86.mmx.pcmpeq.b"
                case 'd':	 // 1 string to match.
                  return Intrinsic::x86_mmx_pcmpeq_d;	 // "86.mmx.pcmpeq.d"
                case 'w':	 // 1 string to match.
                  return Intrinsic::x86_mmx_pcmpeq_w;	 // "86.mmx.pcmpeq.w"
                }
                break;
              case 'g':	 // 3 strings to match.
                if (memcmp(NameR.data()+12, "t.", 2))
                  break;
                switch (NameR[14]) {
                default: break;
                case 'b':	 // 1 string to match.
                  return Intrinsic::x86_mmx_pcmpgt_b;	 // "86.mmx.pcmpgt.b"
                case 'd':	 // 1 string to match.
                  return Intrinsic::x86_mmx_pcmpgt_d;	 // "86.mmx.pcmpgt.d"
                case 'w':	 // 1 string to match.
                  return Intrinsic::x86_mmx_pcmpgt_w;	 // "86.mmx.pcmpgt.w"
                }
                break;
              }
              break;
            case 'm':	 // 4 strings to match.
              switch (NameR[9]) {
              default: break;
              case 'a':	 // 1 string to match.
                if (memcmp(NameR.data()+10, "dd.wd", 5))
                  break;
                return Intrinsic::x86_mmx_pmadd_wd;	 // "86.mmx.pmadd.wd"
              case 'o':	 // 1 string to match.
                if (memcmp(NameR.data()+10, "vmskb", 5))
                  break;
                return Intrinsic::x86_mmx_pmovmskb;	 // "86.mmx.pmovmskb"
              case 'u':	 // 2 strings to match.
                if (NameR[10] != 'l')
                  break;
                switch (NameR[11]) {
                default: break;
                case 'h':	 // 1 string to match.
                  if (memcmp(NameR.data()+12, "u.w", 3))
                    break;
                  return Intrinsic::x86_mmx_pmulhu_w;	 // "86.mmx.pmulhu.w"
                case 'u':	 // 1 string to match.
                  if (memcmp(NameR.data()+12, ".dq", 3))
                    break;
                  return Intrinsic::x86_mmx_pmulu_dq;	 // "86.mmx.pmulu.dq"
                }
                break;
              }
              break;
            case 's':	 // 2 strings to match.
              if (memcmp(NameR.data()+9, "ubus.", 5))
                break;
              switch (NameR[14]) {
              default: break;
              case 'b':	 // 1 string to match.
                return Intrinsic::x86_mmx_psubus_b;	 // "86.mmx.psubus.b"
              case 'w':	 // 1 string to match.
                return Intrinsic::x86_mmx_psubus_w;	 // "86.mmx.psubus.w"
              }
              break;
            }
            break;
          }
          break;
        case 's':	 // 54 strings to match.
          if (NameR[4] != 's')
            break;
          switch (NameR[5]) {
          default: break;
          case 'e':	 // 51 strings to match.
            switch (NameR[6]) {
            default: break;
            case '.':	 // 8 strings to match.
              switch (NameR[7]) {
              default: break;
              case 'c':	 // 6 strings to match.
                if (memcmp(NameR.data()+8, "vt", 2))
                  break;
                switch (NameR[10]) {
                default: break;
                case 'p':	 // 4 strings to match.
                  switch (NameR[11]) {
                  default: break;
                  case 'd':	 // 1 string to match.
                    if (memcmp(NameR.data()+12, "2pi", 3))
                      break;
                    return Intrinsic::x86_sse_cvtpd2pi;	 // "86.sse.cvtpd2pi"
                  case 'i':	 // 2 strings to match.
                    if (memcmp(NameR.data()+12, "2p", 2))
                      break;
                    switch (NameR[14]) {
                    default: break;
                    case 'd':	 // 1 string to match.
                      return Intrinsic::x86_sse_cvtpi2pd;	 // "86.sse.cvtpi2pd"
                    case 's':	 // 1 string to match.
                      return Intrinsic::x86_sse_cvtpi2ps;	 // "86.sse.cvtpi2ps"
                    }
                    break;
                  case 's':	 // 1 string to match.
                    if (memcmp(NameR.data()+12, "2pi", 3))
                      break;
                    return Intrinsic::x86_sse_cvtps2pi;	 // "86.sse.cvtps2pi"
                  }
                  break;
                case 's':	 // 2 strings to match.
                  switch (NameR[11]) {
                  default: break;
                  case 'i':	 // 1 string to match.
                    if (memcmp(NameR.data()+12, "2ss", 3))
                      break;
                    return Intrinsic::x86_sse_cvtsi2ss;	 // "86.sse.cvtsi2ss"
                  case 's':	 // 1 string to match.
                    if (memcmp(NameR.data()+12, "2si", 3))
                      break;
                    return Intrinsic::x86_sse_cvtss2si;	 // "86.sse.cvtss2si"
                  }
                  break;
                }
                break;
              case 'r':	 // 2 strings to match.
                if (memcmp(NameR.data()+8, "sqrt.", 5))
                  break;
                switch (NameR[13]) {
                default: break;
                case 'p':	 // 1 string to match.
                  if (NameR[14] != 's')
                    break;
                  return Intrinsic::x86_sse_rsqrt_ps;	 // "86.sse.rsqrt.ps"
                case 's':	 // 1 string to match.
                  if (NameR[14] != 's')
                    break;
                  return Intrinsic::x86_sse_rsqrt_ss;	 // "86.sse.rsqrt.ss"
                }
                break;
              }
              break;
            case '2':	 // 23 strings to match.
              if (NameR[7] != '.')
                break;
              switch (NameR[8]) {
              default: break;
              case 'c':	 // 1 string to match.
                if (memcmp(NameR.data()+9, "lflush", 6))
                  break;
                return Intrinsic::x86_sse2_clflush;	 // "86.sse2.clflush"
              case 'p':	 // 20 strings to match.
                switch (NameR[9]) {
                default: break;
                case 'a':	 // 2 strings to match.
                  if (memcmp(NameR.data()+10, "dds.", 4))
                    break;
                  switch (NameR[14]) {
                  default: break;
                  case 'b':	 // 1 string to match.
                    return Intrinsic::x86_sse2_padds_b;	 // "86.sse2.padds.b"
                  case 'w':	 // 1 string to match.
                    return Intrinsic::x86_sse2_padds_w;	 // "86.sse2.padds.w"
                  }
                  break;
                case 'm':	 // 5 strings to match.
                  switch (NameR[10]) {
                  default: break;
                  case 'a':	 // 2 strings to match.
                    if (NameR[11] != 'x')
                      break;
                    switch (NameR[12]) {
                    default: break;
                    case 's':	 // 1 string to match.
                      if (memcmp(NameR.data()+13, ".w", 2))
                        break;
                      return Intrinsic::x86_sse2_pmaxs_w;	 // "86.sse2.pmaxs.w"
                    case 'u':	 // 1 string to match.
                      if (memcmp(NameR.data()+13, ".b", 2))
                        break;
                      return Intrinsic::x86_sse2_pmaxu_b;	 // "86.sse2.pmaxu.b"
                    }
                    break;
                  case 'i':	 // 2 strings to match.
                    if (NameR[11] != 'n')
                      break;
                    switch (NameR[12]) {
                    default: break;
                    case 's':	 // 1 string to match.
                      if (memcmp(NameR.data()+13, ".w", 2))
                        break;
                      return Intrinsic::x86_sse2_pmins_w;	 // "86.sse2.pmins.w"
                    case 'u':	 // 1 string to match.
                      if (memcmp(NameR.data()+13, ".b", 2))
                        break;
                      return Intrinsic::x86_sse2_pminu_b;	 // "86.sse2.pminu.b"
                    }
                    break;
                  case 'u':	 // 1 string to match.
                    if (memcmp(NameR.data()+11, "lh.w", 4))
                      break;
                    return Intrinsic::x86_sse2_pmulh_w;	 // "86.sse2.pmulh.w"
                  }
                  break;
                case 's':	 // 13 strings to match.
                  switch (NameR[10]) {
                  default: break;
                  case 'a':	 // 1 string to match.
                    if (memcmp(NameR.data()+11, "d.bw", 4))
                      break;
                    return Intrinsic::x86_sse2_psad_bw;	 // "86.sse2.psad.bw"
                  case 'l':	 // 4 strings to match.
                    if (NameR[11] != 'l')
                      break;
                    switch (NameR[12]) {
                    default: break;
                    case '.':	 // 1 string to match.
                      if (memcmp(NameR.data()+13, "dq", 2))
                        break;
                      return Intrinsic::x86_sse2_psll_dq;	 // "86.sse2.psll.dq"
                    case 'i':	 // 3 strings to match.
                      if (NameR[13] != '.')
                        break;
                      switch (NameR[14]) {
                      default: break;
                      case 'd':	 // 1 string to match.
                        return Intrinsic::x86_sse2_pslli_d;	 // "86.sse2.pslli.d"
                      case 'q':	 // 1 string to match.
                        return Intrinsic::x86_sse2_pslli_q;	 // "86.sse2.pslli.q"
                      case 'w':	 // 1 string to match.
                        return Intrinsic::x86_sse2_pslli_w;	 // "86.sse2.pslli.w"
                      }
                      break;
                    }
                    break;
                  case 'r':	 // 6 strings to match.
                    switch (NameR[11]) {
                    default: break;
                    case 'a':	 // 2 strings to match.
                      if (memcmp(NameR.data()+12, "i.", 2))
                        break;
                      switch (NameR[14]) {
                      default: break;
                      case 'd':	 // 1 string to match.
                        return Intrinsic::x86_sse2_psrai_d;	 // "86.sse2.psrai.d"
                      case 'w':	 // 1 string to match.
                        return Intrinsic::x86_sse2_psrai_w;	 // "86.sse2.psrai.w"
                      }
                      break;
                    case 'l':	 // 4 strings to match.
                      switch (NameR[12]) {
                      default: break;
                      case '.':	 // 1 string to match.
                        if (memcmp(NameR.data()+13, "dq", 2))
                          break;
                        return Intrinsic::x86_sse2_psrl_dq;	 // "86.sse2.psrl.dq"
                      case 'i':	 // 3 strings to match.
                        if (NameR[13] != '.')
                          break;
                        switch (NameR[14]) {
                        default: break;
                        case 'd':	 // 1 string to match.
                          return Intrinsic::x86_sse2_psrli_d;	 // "86.sse2.psrli.d"
                        case 'q':	 // 1 string to match.
                          return Intrinsic::x86_sse2_psrli_q;	 // "86.sse2.psrli.q"
                        case 'w':	 // 1 string to match.
                          return Intrinsic::x86_sse2_psrli_w;	 // "86.sse2.psrli.w"
                        }
                        break;
                      }
                      break;
                    }
                    break;
                  case 'u':	 // 2 strings to match.
                    if (memcmp(NameR.data()+11, "bs.", 3))
                      break;
                    switch (NameR[14]) {
                    default: break;
                    case 'b':	 // 1 string to match.
                      return Intrinsic::x86_sse2_psubs_b;	 // "86.sse2.psubs.b"
                    case 'w':	 // 1 string to match.
                      return Intrinsic::x86_sse2_psubs_w;	 // "86.sse2.psubs.w"
                    }
                    break;
                  }
                  break;
                }
                break;
              case 's':	 // 2 strings to match.
                if (memcmp(NameR.data()+9, "qrt.", 4))
                  break;
                switch (NameR[13]) {
                default: break;
                case 'p':	 // 1 string to match.
                  if (NameR[14] != 'd')
                    break;
                  return Intrinsic::x86_sse2_sqrt_pd;	 // "86.sse2.sqrt.pd"
                case 's':	 // 1 string to match.
                  if (NameR[14] != 'd')
                    break;
                  return Intrinsic::x86_sse2_sqrt_sd;	 // "86.sse2.sqrt.sd"
                }
                break;
              }
              break;
            case '3':	 // 5 strings to match.
              if (NameR[7] != '.')
                break;
              switch (NameR[8]) {
              default: break;
              case 'h':	 // 4 strings to match.
                switch (NameR[9]) {
                default: break;
                case 'a':	 // 2 strings to match.
                  if (memcmp(NameR.data()+10, "dd.p", 4))
                    break;
                  switch (NameR[14]) {
                  default: break;
                  case 'd':	 // 1 string to match.
                    return Intrinsic::x86_sse3_hadd_pd;	 // "86.sse3.hadd.pd"
                  case 's':	 // 1 string to match.
                    return Intrinsic::x86_sse3_hadd_ps;	 // "86.sse3.hadd.ps"
                  }
                  break;
                case 's':	 // 2 strings to match.
                  if (memcmp(NameR.data()+10, "ub.p", 4))
                    break;
                  switch (NameR[14]) {
                  default: break;
                  case 'd':	 // 1 string to match.
                    return Intrinsic::x86_sse3_hsub_pd;	 // "86.sse3.hsub.pd"
                  case 's':	 // 1 string to match.
                    return Intrinsic::x86_sse3_hsub_ps;	 // "86.sse3.hsub.ps"
                  }
                  break;
                }
                break;
              case 'm':	 // 1 string to match.
                if (memcmp(NameR.data()+9, "onitor", 6))
                  break;
                return Intrinsic::x86_sse3_monitor;	 // "86.sse3.monitor"
              }
              break;
            case '4':	 // 15 strings to match.
              switch (NameR[7]) {
              default: break;
              case '1':	 // 14 strings to match.
                if (memcmp(NameR.data()+8, ".p", 2))
                  break;
                switch (NameR[10]) {
                default: break;
                case 'e':	 // 3 strings to match.
                  if (memcmp(NameR.data()+11, "xtr", 3))
                    break;
                  switch (NameR[14]) {
                  default: break;
                  case 'b':	 // 1 string to match.
                    return Intrinsic::x86_sse41_pextrb;	 // "86.sse41.pextrb"
                  case 'd':	 // 1 string to match.
                    return Intrinsic::x86_sse41_pextrd;	 // "86.sse41.pextrd"
                  case 'q':	 // 1 string to match.
                    return Intrinsic::x86_sse41_pextrq;	 // "86.sse41.pextrq"
                  }
                  break;
                case 'm':	 // 9 strings to match.
                  switch (NameR[11]) {
                  default: break;
                  case 'a':	 // 4 strings to match.
                    if (NameR[12] != 'x')
                      break;
                    switch (NameR[13]) {
                    default: break;
                    case 's':	 // 2 strings to match.
                      switch (NameR[14]) {
                      default: break;
                      case 'b':	 // 1 string to match.
                        return Intrinsic::x86_sse41_pmaxsb;	 // "86.sse41.pmaxsb"
                      case 'd':	 // 1 string to match.
                        return Intrinsic::x86_sse41_pmaxsd;	 // "86.sse41.pmaxsd"
                      }
                      break;
                    case 'u':	 // 2 strings to match.
                      switch (NameR[14]) {
                      default: break;
                      case 'd':	 // 1 string to match.
                        return Intrinsic::x86_sse41_pmaxud;	 // "86.sse41.pmaxud"
                      case 'w':	 // 1 string to match.
                        return Intrinsic::x86_sse41_pmaxuw;	 // "86.sse41.pmaxuw"
                      }
                      break;
                    }
                    break;
                  case 'i':	 // 4 strings to match.
                    if (NameR[12] != 'n')
                      break;
                    switch (NameR[13]) {
                    default: break;
                    case 's':	 // 2 strings to match.
                      switch (NameR[14]) {
                      default: break;
                      case 'b':	 // 1 string to match.
                        return Intrinsic::x86_sse41_pminsb;	 // "86.sse41.pminsb"
                      case 'd':	 // 1 string to match.
                        return Intrinsic::x86_sse41_pminsd;	 // "86.sse41.pminsd"
                      }
                      break;
                    case 'u':	 // 2 strings to match.
                      switch (NameR[14]) {
                      default: break;
                      case 'd':	 // 1 string to match.
                        return Intrinsic::x86_sse41_pminud;	 // "86.sse41.pminud"
                      case 'w':	 // 1 string to match.
                        return Intrinsic::x86_sse41_pminuw;	 // "86.sse41.pminuw"
                      }
                      break;
                    }
                    break;
                  case 'u':	 // 1 string to match.
                    if (memcmp(NameR.data()+12, "ldq", 3))
                      break;
                    return Intrinsic::x86_sse41_pmuldq;	 // "86.sse41.pmuldq"
                  }
                  break;
                case 't':	 // 2 strings to match.
                  if (memcmp(NameR.data()+11, "est", 3))
                    break;
                  switch (NameR[14]) {
                  default: break;
                  case 'c':	 // 1 string to match.
                    return Intrinsic::x86_sse41_ptestc;	 // "86.sse41.ptestc"
                  case 'z':	 // 1 string to match.
                    return Intrinsic::x86_sse41_ptestz;	 // "86.sse41.ptestz"
                  }
                  break;
                }
                break;
              case 'a':	 // 1 string to match.
                if (memcmp(NameR.data()+8, ".extrqi", 7))
                  break;
                return Intrinsic::x86_sse4a_extrqi;	 // "86.sse4a.extrqi"
              }
              break;
            }
            break;
          case 's':	 // 3 strings to match.
            if (memcmp(NameR.data()+6, "e3.pabs.", 8))
              break;
            switch (NameR[14]) {
            default: break;
            case 'b':	 // 1 string to match.
              return Intrinsic::x86_ssse3_pabs_b;	 // "86.ssse3.pabs.b"
            case 'd':	 // 1 string to match.
              return Intrinsic::x86_ssse3_pabs_d;	 // "86.ssse3.pabs.d"
            case 'w':	 // 1 string to match.
              return Intrinsic::x86_ssse3_pabs_w;	 // "86.ssse3.pabs.w"
            }
            break;
          }
          break;
        case 'x':	 // 16 strings to match.
          if (memcmp(NameR.data()+4, "op.v", 4))
            break;
          switch (NameR[8]) {
          default: break;
          case 'f':	 // 4 strings to match.
            if (memcmp(NameR.data()+9, "rcz.", 4))
              break;
            switch (NameR[13]) {
            default: break;
            case 'p':	 // 2 strings to match.
              switch (NameR[14]) {
              default: break;
              case 'd':	 // 1 string to match.
                return Intrinsic::x86_xop_vfrcz_pd;	 // "86.xop.vfrcz.pd"
              case 's':	 // 1 string to match.
                return Intrinsic::x86_xop_vfrcz_ps;	 // "86.xop.vfrcz.ps"
              }
              break;
            case 's':	 // 2 strings to match.
              switch (NameR[14]) {
              default: break;
              case 'd':	 // 1 string to match.
                return Intrinsic::x86_xop_vfrcz_sd;	 // "86.xop.vfrcz.sd"
              case 's':	 // 1 string to match.
                return Intrinsic::x86_xop_vfrcz_ss;	 // "86.xop.vfrcz.ss"
              }
              break;
            }
            break;
          case 'p':	 // 12 strings to match.
            switch (NameR[9]) {
            default: break;
            case 'h':	 // 9 strings to match.
              switch (NameR[10]) {
              default: break;
              case 'a':	 // 6 strings to match.
                if (memcmp(NameR.data()+11, "dd", 2))
                  break;
                switch (NameR[13]) {
                default: break;
                case 'b':	 // 3 strings to match.
                  switch (NameR[14]) {
                  default: break;
                  case 'd':	 // 1 string to match.
                    return Intrinsic::x86_xop_vphaddbd;	 // "86.xop.vphaddbd"
                  case 'q':	 // 1 string to match.
                    return Intrinsic::x86_xop_vphaddbq;	 // "86.xop.vphaddbq"
                  case 'w':	 // 1 string to match.
                    return Intrinsic::x86_xop_vphaddbw;	 // "86.xop.vphaddbw"
                  }
                  break;
                case 'd':	 // 1 string to match.
                  if (NameR[14] != 'q')
                    break;
                  return Intrinsic::x86_xop_vphadddq;	 // "86.xop.vphadddq"
                case 'w':	 // 2 strings to match.
                  switch (NameR[14]) {
                  default: break;
                  case 'd':	 // 1 string to match.
                    return Intrinsic::x86_xop_vphaddwd;	 // "86.xop.vphaddwd"
                  case 'q':	 // 1 string to match.
                    return Intrinsic::x86_xop_vphaddwq;	 // "86.xop.vphaddwq"
                  }
                  break;
                }
                break;
              case 's':	 // 3 strings to match.
                if (memcmp(NameR.data()+11, "ub", 2))
                  break;
                switch (NameR[13]) {
                default: break;
                case 'b':	 // 1 string to match.
                  if (NameR[14] != 'w')
                    break;
                  return Intrinsic::x86_xop_vphsubbw;	 // "86.xop.vphsubbw"
                case 'd':	 // 1 string to match.
                  if (NameR[14] != 'q')
                    break;
                  return Intrinsic::x86_xop_vphsubdq;	 // "86.xop.vphsubdq"
                case 'w':	 // 1 string to match.
                  if (NameR[14] != 'd')
                    break;
                  return Intrinsic::x86_xop_vphsubwd;	 // "86.xop.vphsubwd"
                }
                break;
              }
              break;
            case 'm':	 // 3 strings to match.
              if (memcmp(NameR.data()+10, "acs", 3))
                break;
              switch (NameR[13]) {
              default: break;
              case 'd':	 // 1 string to match.
                if (NameR[14] != 'd')
                  break;
                return Intrinsic::x86_xop_vpmacsdd;	 // "86.xop.vpmacsdd"
              case 'w':	 // 2 strings to match.
                switch (NameR[14]) {
                default: break;
                case 'd':	 // 1 string to match.
                  return Intrinsic::x86_xop_vpmacswd;	 // "86.xop.vpmacswd"
                case 'w':	 // 1 string to match.
                  return Intrinsic::x86_xop_vpmacsww;	 // "86.xop.vpmacsww"
                }
                break;
              }
              break;
            }
            break;
          }
          break;
        }
        break;
      case 'c':	 // 1 string to match.
        if (memcmp(NameR.data()+1, "ore.checkevent", 14))
          break;
        return Intrinsic::xcore_checkevent;	 // "core.checkevent"
      }
      break;
    case 16:	 // 112 strings to match.
      if (memcmp(NameR.data()+0, "86.", 3))
        break;
      switch (NameR[3]) {
      default: break;
      case '3':	 // 8 strings to match.
        if (memcmp(NameR.data()+4, "dnow", 4))
          break;
        switch (NameR[8]) {
        default: break;
        case '.':	 // 6 strings to match.
          if (NameR[9] != 'p')
            break;
          switch (NameR[10]) {
          default: break;
          case 'a':	 // 1 string to match.
            if (memcmp(NameR.data()+11, "vgusb", 5))
              break;
            return Intrinsic::x86_3dnow_pavgusb;	 // "86.3dnow.pavgusb"
          case 'f':	 // 4 strings to match.
            switch (NameR[11]) {
            default: break;
            case 'c':	 // 3 strings to match.
              if (memcmp(NameR.data()+12, "mp", 2))
                break;
              switch (NameR[14]) {
              default: break;
              case 'e':	 // 1 string to match.
                if (NameR[15] != 'q')
                  break;
                return Intrinsic::x86_3dnow_pfcmpeq;	 // "86.3dnow.pfcmpeq"
              case 'g':	 // 2 strings to match.
                switch (NameR[15]) {
                default: break;
                case 'e':	 // 1 string to match.
                  return Intrinsic::x86_3dnow_pfcmpge;	 // "86.3dnow.pfcmpge"
                case 't':	 // 1 string to match.
                  return Intrinsic::x86_3dnow_pfcmpgt;	 // "86.3dnow.pfcmpgt"
                }
                break;
              }
              break;
            case 'r':	 // 1 string to match.
              if (memcmp(NameR.data()+12, "sqrt", 4))
                break;
              return Intrinsic::x86_3dnow_pfrsqrt;	 // "86.3dnow.pfrsqrt"
            }
            break;
          case 'm':	 // 1 string to match.
            if (memcmp(NameR.data()+11, "ulhrw", 5))
              break;
            return Intrinsic::x86_3dnow_pmulhrw;	 // "86.3dnow.pmulhrw"
          }
          break;
        case 'a':	 // 2 strings to match.
          if (memcmp(NameR.data()+9, ".p", 2))
            break;
          switch (NameR[11]) {
          default: break;
          case 'f':	 // 1 string to match.
            if (memcmp(NameR.data()+12, "nacc", 4))
              break;
            return Intrinsic::x86_3dnowa_pfnacc;	 // "86.3dnowa.pfnacc"
          case 's':	 // 1 string to match.
            if (memcmp(NameR.data()+12, "wapd", 4))
              break;
            return Intrinsic::x86_3dnowa_pswapd;	 // "86.3dnowa.pswapd"
          }
          break;
        }
        break;
      case 'a':	 // 33 strings to match.
        if (memcmp(NameR.data()+4, "vx", 2))
          break;
        switch (NameR[6]) {
        default: break;
        case '.':	 // 5 strings to match.
          switch (NameR[7]) {
          default: break;
          case 'd':	 // 1 string to match.
            if (memcmp(NameR.data()+8, "p.ps.256", 8))
              break;
            return Intrinsic::x86_avx_dp_ps_256;	 // "86.avx.dp.ps.256"
          case 'v':	 // 4 strings to match.
            if (memcmp(NameR.data()+8, "test", 4))
              break;
            switch (NameR[12]) {
            default: break;
            case 'c':	 // 2 strings to match.
              if (memcmp(NameR.data()+13, ".p", 2))
                break;
              switch (NameR[15]) {
              default: break;
              case 'd':	 // 1 string to match.
                return Intrinsic::x86_avx_vtestc_pd;	 // "86.avx.vtestc.pd"
              case 's':	 // 1 string to match.
                return Intrinsic::x86_avx_vtestc_ps;	 // "86.avx.vtestc.ps"
              }
              break;
            case 'z':	 // 2 strings to match.
              if (memcmp(NameR.data()+13, ".p", 2))
                break;
              switch (NameR[15]) {
              default: break;
              case 'd':	 // 1 string to match.
                return Intrinsic::x86_avx_vtestz_pd;	 // "86.avx.vtestz.pd"
              case 's':	 // 1 string to match.
                return Intrinsic::x86_avx_vtestz_ps;	 // "86.avx.vtestz.ps"
              }
              break;
            }
            break;
          }
          break;
        case '2':	 // 28 strings to match.
          if (NameR[7] != '.')
            break;
          switch (NameR[8]) {
          default: break;
          case 'm':	 // 1 string to match.
            if (memcmp(NameR.data()+9, "ovntdqa", 7))
              break;
            return Intrinsic::x86_avx2_movntdqa;	 // "86.avx2.movntdqa"
          case 'p':	 // 27 strings to match.
            switch (NameR[9]) {
            default: break;
            case 'a':	 // 6 strings to match.
              switch (NameR[10]) {
              default: break;
              case 'c':	 // 4 strings to match.
                if (NameR[11] != 'k')
                  break;
                switch (NameR[12]) {
                default: break;
                case 's':	 // 2 strings to match.
                  if (NameR[13] != 's')
                    break;
                  switch (NameR[14]) {
                  default: break;
                  case 'd':	 // 1 string to match.
                    if (NameR[15] != 'w')
                      break;
                    return Intrinsic::x86_avx2_packssdw;	 // "86.avx2.packssdw"
                  case 'w':	 // 1 string to match.
                    if (NameR[15] != 'b')
                      break;
                    return Intrinsic::x86_avx2_packsswb;	 // "86.avx2.packsswb"
                  }
                  break;
                case 'u':	 // 2 strings to match.
                  if (NameR[13] != 's')
                    break;
                  switch (NameR[14]) {
                  default: break;
                  case 'd':	 // 1 string to match.
                    if (NameR[15] != 'w')
                      break;
                    return Intrinsic::x86_avx2_packusdw;	 // "86.avx2.packusdw"
                  case 'w':	 // 1 string to match.
                    if (NameR[15] != 'b')
                      break;
                    return Intrinsic::x86_avx2_packuswb;	 // "86.avx2.packuswb"
                  }
                  break;
                }
                break;
              case 'd':	 // 2 strings to match.
                if (memcmp(NameR.data()+11, "dus.", 4))
                  break;
                switch (NameR[15]) {
                default: break;
                case 'b':	 // 1 string to match.
                  return Intrinsic::x86_avx2_paddus_b;	 // "86.avx2.paddus.b"
                case 'w':	 // 1 string to match.
                  return Intrinsic::x86_avx2_paddus_w;	 // "86.avx2.paddus.w"
                }
                break;
              }
              break;
            case 'b':	 // 1 string to match.
              if (memcmp(NameR.data()+10, "lendvb", 6))
                break;
              return Intrinsic::x86_avx2_pblendvb;	 // "86.avx2.pblendvb"
            case 'h':	 // 2 strings to match.
              switch (NameR[10]) {
              default: break;
              case 'a':	 // 1 string to match.
                if (memcmp(NameR.data()+11, "dd.sw", 5))
                  break;
                return Intrinsic::x86_avx2_phadd_sw;	 // "86.avx2.phadd.sw"
              case 's':	 // 1 string to match.
                if (memcmp(NameR.data()+11, "ub.sw", 5))
                  break;
                return Intrinsic::x86_avx2_phsub_sw;	 // "86.avx2.phsub.sw"
              }
              break;
            case 'm':	 // 16 strings to match.
              switch (NameR[10]) {
              default: break;
              case 'a':	 // 1 string to match.
                if (memcmp(NameR.data()+11, "dd.wd", 5))
                  break;
                return Intrinsic::x86_avx2_pmadd_wd;	 // "86.avx2.pmadd.wd"
              case 'o':	 // 13 strings to match.
                if (NameR[11] != 'v')
                  break;
                switch (NameR[12]) {
                default: break;
                case 'm':	 // 1 string to match.
                  if (memcmp(NameR.data()+13, "skb", 3))
                    break;
                  return Intrinsic::x86_avx2_pmovmskb;	 // "86.avx2.pmovmskb"
                case 's':	 // 6 strings to match.
                  if (NameR[13] != 'x')
                    break;
                  switch (NameR[14]) {
                  default: break;
                  case 'b':	 // 3 strings to match.
                    switch (NameR[15]) {
                    default: break;
                    case 'd':	 // 1 string to match.
                      return Intrinsic::x86_avx2_pmovsxbd;	 // "86.avx2.pmovsxbd"
                    case 'q':	 // 1 string to match.
                      return Intrinsic::x86_avx2_pmovsxbq;	 // "86.avx2.pmovsxbq"
                    case 'w':	 // 1 string to match.
                      return Intrinsic::x86_avx2_pmovsxbw;	 // "86.avx2.pmovsxbw"
                    }
                    break;
                  case 'd':	 // 1 string to match.
                    if (NameR[15] != 'q')
                      break;
                    return Intrinsic::x86_avx2_pmovsxdq;	 // "86.avx2.pmovsxdq"
                  case 'w':	 // 2 strings to match.
                    switch (NameR[15]) {
                    default: break;
                    case 'd':	 // 1 string to match.
                      return Intrinsic::x86_avx2_pmovsxwd;	 // "86.avx2.pmovsxwd"
                    case 'q':	 // 1 string to match.
                      return Intrinsic::x86_avx2_pmovsxwq;	 // "86.avx2.pmovsxwq"
                    }
                    break;
                  }
                  break;
                case 'z':	 // 6 strings to match.
                  if (NameR[13] != 'x')
                    break;
                  switch (NameR[14]) {
                  default: break;
                  case 'b':	 // 3 strings to match.
                    switch (NameR[15]) {
                    default: break;
                    case 'd':	 // 1 string to match.
                      return Intrinsic::x86_avx2_pmovzxbd;	 // "86.avx2.pmovzxbd"
                    case 'q':	 // 1 string to match.
                      return Intrinsic::x86_avx2_pmovzxbq;	 // "86.avx2.pmovzxbq"
                    case 'w':	 // 1 string to match.
                      return Intrinsic::x86_avx2_pmovzxbw;	 // "86.avx2.pmovzxbw"
                    }
                    break;
                  case 'd':	 // 1 string to match.
                    if (NameR[15] != 'q')
                      break;
                    return Intrinsic::x86_avx2_pmovzxdq;	 // "86.avx2.pmovzxdq"
                  case 'w':	 // 2 strings to match.
                    switch (NameR[15]) {
                    default: break;
                    case 'd':	 // 1 string to match.
                      return Intrinsic::x86_avx2_pmovzxwd;	 // "86.avx2.pmovzxwd"
                    case 'q':	 // 1 string to match.
                      return Intrinsic::x86_avx2_pmovzxwq;	 // "86.avx2.pmovzxwq"
                    }
                    break;
                  }
                  break;
                }
                break;
              case 'u':	 // 2 strings to match.
                if (NameR[11] != 'l')
                  break;
                switch (NameR[12]) {
                default: break;
                case 'h':	 // 1 string to match.
                  if (memcmp(NameR.data()+13, "u.w", 3))
                    break;
                  return Intrinsic::x86_avx2_pmulhu_w;	 // "86.avx2.pmulhu.w"
                case 'u':	 // 1 string to match.
                  if (memcmp(NameR.data()+13, ".dq", 3))
                    break;
                  return Intrinsic::x86_avx2_pmulu_dq;	 // "86.avx2.pmulu.dq"
                }
                break;
              }
              break;
            case 's':	 // 2 strings to match.
              if (memcmp(NameR.data()+10, "ubus.", 5))
                break;
              switch (NameR[15]) {
              default: break;
              case 'b':	 // 1 string to match.
                return Intrinsic::x86_avx2_psubus_b;	 // "86.avx2.psubus.b"
              case 'w':	 // 1 string to match.
                return Intrinsic::x86_avx2_psubus_w;	 // "86.avx2.psubus.w"
              }
              break;
            }
            break;
          }
          break;
        }
        break;
      case 'f':	 // 8 strings to match.
        if (memcmp(NameR.data()+4, "ma.vfm", 6))
          break;
        switch (NameR[10]) {
        default: break;
        case 'a':	 // 4 strings to match.
          if (memcmp(NameR.data()+11, "dd.", 3))
            break;
          switch (NameR[14]) {
          default: break;
          case 'p':	 // 2 strings to match.
            switch (NameR[15]) {
            default: break;
            case 'd':	 // 1 string to match.
              return Intrinsic::x86_fma_vfmadd_pd;	 // "86.fma.vfmadd.pd"
            case 's':	 // 1 string to match.
              return Intrinsic::x86_fma_vfmadd_ps;	 // "86.fma.vfmadd.ps"
            }
            break;
          case 's':	 // 2 strings to match.
            switch (NameR[15]) {
            default: break;
            case 'd':	 // 1 string to match.
              return Intrinsic::x86_fma_vfmadd_sd;	 // "86.fma.vfmadd.sd"
            case 's':	 // 1 string to match.
              return Intrinsic::x86_fma_vfmadd_ss;	 // "86.fma.vfmadd.ss"
            }
            break;
          }
          break;
        case 's':	 // 4 strings to match.
          if (memcmp(NameR.data()+11, "ub.", 3))
            break;
          switch (NameR[14]) {
          default: break;
          case 'p':	 // 2 strings to match.
            switch (NameR[15]) {
            default: break;
            case 'd':	 // 1 string to match.
              return Intrinsic::x86_fma_vfmsub_pd;	 // "86.fma.vfmsub.pd"
            case 's':	 // 1 string to match.
              return Intrinsic::x86_fma_vfmsub_ps;	 // "86.fma.vfmsub.ps"
            }
            break;
          case 's':	 // 2 strings to match.
            switch (NameR[15]) {
            default: break;
            case 'd':	 // 1 string to match.
              return Intrinsic::x86_fma_vfmsub_sd;	 // "86.fma.vfmsub.sd"
            case 's':	 // 1 string to match.
              return Intrinsic::x86_fma_vfmsub_ss;	 // "86.fma.vfmsub.ss"
            }
            break;
          }
          break;
        }
        break;
      case 'm':	 // 7 strings to match.
        if (memcmp(NameR.data()+4, "mx.p", 4))
          break;
        switch (NameR[8]) {
        default: break;
        case 'a':	 // 1 string to match.
          if (memcmp(NameR.data()+9, "lignr.b", 7))
            break;
          return Intrinsic::x86_mmx_palignr_b;	 // "86.mmx.palignr.b"
        case 'u':	 // 6 strings to match.
          if (memcmp(NameR.data()+9, "npck", 4))
            break;
          switch (NameR[13]) {
          default: break;
          case 'h':	 // 3 strings to match.
            switch (NameR[14]) {
            default: break;
            case 'b':	 // 1 string to match.
              if (NameR[15] != 'w')
                break;
              return Intrinsic::x86_mmx_punpckhbw;	 // "86.mmx.punpckhbw"
            case 'd':	 // 1 string to match.
              if (NameR[15] != 'q')
                break;
              return Intrinsic::x86_mmx_punpckhdq;	 // "86.mmx.punpckhdq"
            case 'w':	 // 1 string to match.
              if (NameR[15] != 'd')
                break;
              return Intrinsic::x86_mmx_punpckhwd;	 // "86.mmx.punpckhwd"
            }
            break;
          case 'l':	 // 3 strings to match.
            switch (NameR[14]) {
            default: break;
            case 'b':	 // 1 string to match.
              if (NameR[15] != 'w')
                break;
              return Intrinsic::x86_mmx_punpcklbw;	 // "86.mmx.punpcklbw"
            case 'd':	 // 1 string to match.
              if (NameR[15] != 'q')
                break;
              return Intrinsic::x86_mmx_punpckldq;	 // "86.mmx.punpckldq"
            case 'w':	 // 1 string to match.
              if (NameR[15] != 'd')
                break;
              return Intrinsic::x86_mmx_punpcklwd;	 // "86.mmx.punpcklwd"
            }
            break;
          }
          break;
        }
        break;
      case 's':	 // 40 strings to match.
        if (NameR[4] != 's')
          break;
        switch (NameR[5]) {
        default: break;
        case 'e':	 // 32 strings to match.
          switch (NameR[6]) {
          default: break;
          case '.':	 // 10 strings to match.
            switch (NameR[7]) {
            default: break;
            case 'c':	 // 8 strings to match.
              switch (NameR[8]) {
              default: break;
              case 'o':	 // 5 strings to match.
                if (memcmp(NameR.data()+9, "mi", 2))
                  break;
                switch (NameR[11]) {
                default: break;
                case 'e':	 // 1 string to match.
                  if (memcmp(NameR.data()+12, "q.ss", 4))
                    break;
                  return Intrinsic::x86_sse_comieq_ss;	 // "86.sse.comieq.ss"
                case 'g':	 // 2 strings to match.
                  switch (NameR[12]) {
                  default: break;
                  case 'e':	 // 1 string to match.
                    if (memcmp(NameR.data()+13, ".ss", 3))
                      break;
                    return Intrinsic::x86_sse_comige_ss;	 // "86.sse.comige.ss"
                  case 't':	 // 1 string to match.
                    if (memcmp(NameR.data()+13, ".ss", 3))
                      break;
                    return Intrinsic::x86_sse_comigt_ss;	 // "86.sse.comigt.ss"
                  }
                  break;
                case 'l':	 // 2 strings to match.
                  switch (NameR[12]) {
                  default: break;
                  case 'e':	 // 1 string to match.
                    if (memcmp(NameR.data()+13, ".ss", 3))
                      break;
                    return Intrinsic::x86_sse_comile_ss;	 // "86.sse.comile.ss"
                  case 't':	 // 1 string to match.
                    if (memcmp(NameR.data()+13, ".ss", 3))
                      break;
                    return Intrinsic::x86_sse_comilt_ss;	 // "86.sse.comilt.ss"
                  }
                  break;
                }
                break;
              case 'v':	 // 3 strings to match.
                if (memcmp(NameR.data()+9, "tt", 2))
                  break;
                switch (NameR[11]) {
                default: break;
                case 'p':	 // 2 strings to match.
                  switch (NameR[12]) {
                  default: break;
                  case 'd':	 // 1 string to match.
                    if (memcmp(NameR.data()+13, "2pi", 3))
                      break;
                    return Intrinsic::x86_sse_cvttpd2pi;	 // "86.sse.cvttpd2pi"
                  case 's':	 // 1 string to match.
                    if (memcmp(NameR.data()+13, "2pi", 3))
                      break;
                    return Intrinsic::x86_sse_cvttps2pi;	 // "86.sse.cvttps2pi"
                  }
                  break;
                case 's':	 // 1 string to match.
                  if (memcmp(NameR.data()+12, "s2si", 4))
                    break;
                  return Intrinsic::x86_sse_cvttss2si;	 // "86.sse.cvttss2si"
                }
                break;
              }
              break;
            case 'm':	 // 1 string to match.
              if (memcmp(NameR.data()+8, "ovmsk.ps", 8))
                break;
              return Intrinsic::x86_sse_movmsk_ps;	 // "86.sse.movmsk.ps"
            case 's':	 // 1 string to match.
              if (memcmp(NameR.data()+8, "toreu.ps", 8))
                break;
              return Intrinsic::x86_sse_storeu_ps;	 // "86.sse.storeu.ps"
            }
            break;
          case '2':	 // 17 strings to match.
            if (NameR[7] != '.')
              break;
            switch (NameR[8]) {
            default: break;
            case 'c':	 // 10 strings to match.
              if (memcmp(NameR.data()+9, "vt", 2))
                break;
              switch (NameR[11]) {
              default: break;
              case 'd':	 // 2 strings to match.
                if (memcmp(NameR.data()+12, "q2p", 3))
                  break;
                switch (NameR[15]) {
                default: break;
                case 'd':	 // 1 string to match.
                  return Intrinsic::x86_sse2_cvtdq2pd;	 // "86.sse2.cvtdq2pd"
                case 's':	 // 1 string to match.
                  return Intrinsic::x86_sse2_cvtdq2ps;	 // "86.sse2.cvtdq2ps"
                }
                break;
              case 'p':	 // 4 strings to match.
                switch (NameR[12]) {
                default: break;
                case 'd':	 // 2 strings to match.
                  if (NameR[13] != '2')
                    break;
                  switch (NameR[14]) {
                  default: break;
                  case 'd':	 // 1 string to match.
                    if (NameR[15] != 'q')
                      break;
                    return Intrinsic::x86_sse2_cvtpd2dq;	 // "86.sse2.cvtpd2dq"
                  case 'p':	 // 1 string to match.
                    if (NameR[15] != 's')
                      break;
                    return Intrinsic::x86_sse2_cvtpd2ps;	 // "86.sse2.cvtpd2ps"
                  }
                  break;
                case 's':	 // 2 strings to match.
                  if (NameR[13] != '2')
                    break;
                  switch (NameR[14]) {
                  default: break;
                  case 'd':	 // 1 string to match.
                    if (NameR[15] != 'q')
                      break;
                    return Intrinsic::x86_sse2_cvtps2dq;	 // "86.sse2.cvtps2dq"
                  case 'p':	 // 1 string to match.
                    if (NameR[15] != 'd')
                      break;
                    return Intrinsic::x86_sse2_cvtps2pd;	 // "86.sse2.cvtps2pd"
                  }
                  break;
                }
                break;
              case 's':	 // 4 strings to match.
                switch (NameR[12]) {
                default: break;
                case 'd':	 // 2 strings to match.
                  if (memcmp(NameR.data()+13, "2s", 2))
                    break;
                  switch (NameR[15]) {
                  default: break;
                  case 'i':	 // 1 string to match.
                    return Intrinsic::x86_sse2_cvtsd2si;	 // "86.sse2.cvtsd2si"
                  case 's':	 // 1 string to match.
                    return Intrinsic::x86_sse2_cvtsd2ss;	 // "86.sse2.cvtsd2ss"
                  }
                  break;
                case 'i':	 // 1 string to match.
                  if (memcmp(NameR.data()+13, "2sd", 3))
                    break;
                  return Intrinsic::x86_sse2_cvtsi2sd;	 // "86.sse2.cvtsi2sd"
                case 's':	 // 1 string to match.
                  if (memcmp(NameR.data()+13, "2sd", 3))
                    break;
                  return Intrinsic::x86_sse2_cvtss2sd;	 // "86.sse2.cvtss2sd"
                }
                break;
              }
              break;
            case 'p':	 // 7 strings to match.
              switch (NameR[9]) {
              default: break;
              case 'a':	 // 2 strings to match.
                if (memcmp(NameR.data()+10, "ddus.", 5))
                  break;
                switch (NameR[15]) {
                default: break;
                case 'b':	 // 1 string to match.
                  return Intrinsic::x86_sse2_paddus_b;	 // "86.sse2.paddus.b"
                case 'w':	 // 1 string to match.
                  return Intrinsic::x86_sse2_paddus_w;	 // "86.sse2.paddus.w"
                }
                break;
              case 'm':	 // 3 strings to match.
                switch (NameR[10]) {
                default: break;
                case 'a':	 // 1 string to match.
                  if (memcmp(NameR.data()+11, "dd.wd", 5))
                    break;
                  return Intrinsic::x86_sse2_pmadd_wd;	 // "86.sse2.pmadd.wd"
                case 'u':	 // 2 strings to match.
                  if (NameR[11] != 'l')
                    break;
                  switch (NameR[12]) {
                  default: break;
                  case 'h':	 // 1 string to match.
                    if (memcmp(NameR.data()+13, "u.w", 3))
                      break;
                    return Intrinsic::x86_sse2_pmulhu_w;	 // "86.sse2.pmulhu.w"
                  case 'u':	 // 1 string to match.
                    if (memcmp(NameR.data()+13, ".dq", 3))
                      break;
                    return Intrinsic::x86_sse2_pmulu_dq;	 // "86.sse2.pmulu.dq"
                  }
                  break;
                }
                break;
              case 's':	 // 2 strings to match.
                if (memcmp(NameR.data()+10, "ubus.", 5))
                  break;
                switch (NameR[15]) {
                default: break;
                case 'b':	 // 1 string to match.
                  return Intrinsic::x86_sse2_psubus_b;	 // "86.sse2.psubus.b"
                case 'w':	 // 1 string to match.
                  return Intrinsic::x86_sse2_psubus_w;	 // "86.sse2.psubus.w"
                }
                break;
              }
              break;
            }
            break;
          case '4':	 // 5 strings to match.
            switch (NameR[7]) {
            default: break;
            case '1':	 // 4 strings to match.
              if (NameR[8] != '.')
                break;
              switch (NameR[9]) {
              default: break;
              case 'b':	 // 2 strings to match.
                if (memcmp(NameR.data()+10, "lendp", 5))
                  break;
                switch (NameR[15]) {
                default: break;
                case 'd':	 // 1 string to match.
                  return Intrinsic::x86_sse41_blendpd;	 // "86.sse41.blendpd"
                case 's':	 // 1 string to match.
                  return Intrinsic::x86_sse41_blendps;	 // "86.sse41.blendps"
                }
                break;
              case 'm':	 // 1 string to match.
                if (memcmp(NameR.data()+10, "psadbw", 6))
                  break;
                return Intrinsic::x86_sse41_mpsadbw;	 // "86.sse41.mpsadbw"
              case 'p':	 // 1 string to match.
                if (memcmp(NameR.data()+10, "blendw", 6))
                  break;
                return Intrinsic::x86_sse41_pblendw;	 // "86.sse41.pblendw"
              }
              break;
            case 'a':	 // 1 string to match.
              if (memcmp(NameR.data()+8, ".insertq", 8))
                break;
              return Intrinsic::x86_sse4a_insertq;	 // "86.sse4a.insertq"
            }
            break;
          }
          break;
        case 's':	 // 8 strings to match.
          if (memcmp(NameR.data()+6, "e3.p", 4))
            break;
          switch (NameR[10]) {
          default: break;
          case 'h':	 // 4 strings to match.
            switch (NameR[11]) {
            default: break;
            case 'a':	 // 2 strings to match.
              if (memcmp(NameR.data()+12, "dd.", 3))
                break;
              switch (NameR[15]) {
              default: break;
              case 'd':	 // 1 string to match.
                return Intrinsic::x86_ssse3_phadd_d;	 // "86.ssse3.phadd.d"
              case 'w':	 // 1 string to match.
                return Intrinsic::x86_ssse3_phadd_w;	 // "86.ssse3.phadd.w"
              }
              break;
            case 's':	 // 2 strings to match.
              if (memcmp(NameR.data()+12, "ub.", 3))
                break;
              switch (NameR[15]) {
              default: break;
              case 'd':	 // 1 string to match.
                return Intrinsic::x86_ssse3_phsub_d;	 // "86.ssse3.phsub.d"
              case 'w':	 // 1 string to match.
                return Intrinsic::x86_ssse3_phsub_w;	 // "86.ssse3.phsub.w"
              }
              break;
            }
            break;
          case 's':	 // 4 strings to match.
            switch (NameR[11]) {
            default: break;
            case 'h':	 // 1 string to match.
              if (memcmp(NameR.data()+12, "uf.b", 4))
                break;
              return Intrinsic::x86_ssse3_pshuf_b;	 // "86.ssse3.pshuf.b"
            case 'i':	 // 3 strings to match.
              if (memcmp(NameR.data()+12, "gn.", 3))
                break;
              switch (NameR[15]) {
              default: break;
              case 'b':	 // 1 string to match.
                return Intrinsic::x86_ssse3_psign_b;	 // "86.ssse3.psign.b"
              case 'd':	 // 1 string to match.
                return Intrinsic::x86_ssse3_psign_d;	 // "86.ssse3.psign.d"
              case 'w':	 // 1 string to match.
                return Intrinsic::x86_ssse3_psign_w;	 // "86.ssse3.psign.w"
              }
              break;
            }
            break;
          }
          break;
        }
        break;
      case 'v':	 // 4 strings to match.
        if (memcmp(NameR.data()+4, "cvtp", 4))
          break;
        switch (NameR[8]) {
        default: break;
        case 'h':	 // 2 strings to match.
          if (memcmp(NameR.data()+9, "2ps.", 4))
            break;
          switch (NameR[13]) {
          default: break;
          case '1':	 // 1 string to match.
            if (memcmp(NameR.data()+14, "28", 2))
              break;
            return Intrinsic::x86_vcvtph2ps_128;	 // "86.vcvtph2ps.128"
          case '2':	 // 1 string to match.
            if (memcmp(NameR.data()+14, "56", 2))
              break;
            return Intrinsic::x86_vcvtph2ps_256;	 // "86.vcvtph2ps.256"
          }
          break;
        case 's':	 // 2 strings to match.
          if (memcmp(NameR.data()+9, "2ph.", 4))
            break;
          switch (NameR[13]) {
          default: break;
          case '1':	 // 1 string to match.
            if (memcmp(NameR.data()+14, "28", 2))
              break;
            return Intrinsic::x86_vcvtps2ph_128;	 // "86.vcvtps2ph.128"
          case '2':	 // 1 string to match.
            if (memcmp(NameR.data()+14, "56", 2))
              break;
            return Intrinsic::x86_vcvtps2ph_256;	 // "86.vcvtps2ph.256"
          }
          break;
        }
        break;
      case 'x':	 // 12 strings to match.
        if (memcmp(NameR.data()+4, "op.vp", 5))
          break;
        switch (NameR[9]) {
        default: break;
        case 'h':	 // 6 strings to match.
          if (memcmp(NameR.data()+10, "addu", 4))
            break;
          switch (NameR[14]) {
          default: break;
          case 'b':	 // 3 strings to match.
            switch (NameR[15]) {
            default: break;
            case 'd':	 // 1 string to match.
              return Intrinsic::x86_xop_vphaddubd;	 // "86.xop.vphaddubd"
            case 'q':	 // 1 string to match.
              return Intrinsic::x86_xop_vphaddubq;	 // "86.xop.vphaddubq"
            case 'w':	 // 1 string to match.
              return Intrinsic::x86_xop_vphaddubw;	 // "86.xop.vphaddubw"
            }
            break;
          case 'd':	 // 1 string to match.
            if (NameR[15] != 'q')
              break;
            return Intrinsic::x86_xop_vphaddudq;	 // "86.xop.vphaddudq"
          case 'w':	 // 2 strings to match.
            switch (NameR[15]) {
            default: break;
            case 'd':	 // 1 string to match.
              return Intrinsic::x86_xop_vphadduwd;	 // "86.xop.vphadduwd"
            case 'q':	 // 1 string to match.
              return Intrinsic::x86_xop_vphadduwq;	 // "86.xop.vphadduwq"
            }
            break;
          }
          break;
        case 'm':	 // 6 strings to match.
          if (NameR[10] != 'a')
            break;
          switch (NameR[11]) {
          default: break;
          case 'c':	 // 5 strings to match.
            if (NameR[12] != 's')
              break;
            switch (NameR[13]) {
            default: break;
            case 'd':	 // 2 strings to match.
              if (NameR[14] != 'q')
                break;
              switch (NameR[15]) {
              default: break;
              case 'h':	 // 1 string to match.
                return Intrinsic::x86_xop_vpmacsdqh;	 // "86.xop.vpmacsdqh"
              case 'l':	 // 1 string to match.
                return Intrinsic::x86_xop_vpmacsdql;	 // "86.xop.vpmacsdql"
              }
              break;
            case 's':	 // 3 strings to match.
              switch (NameR[14]) {
              default: break;
              case 'd':	 // 1 string to match.
                if (NameR[15] != 'd')
                  break;
                return Intrinsic::x86_xop_vpmacssdd;	 // "86.xop.vpmacssdd"
              case 'w':	 // 2 strings to match.
                switch (NameR[15]) {
                default: break;
                case 'd':	 // 1 string to match.
                  return Intrinsic::x86_xop_vpmacsswd;	 // "86.xop.vpmacsswd"
                case 'w':	 // 1 string to match.
                  return Intrinsic::x86_xop_vpmacssww;	 // "86.xop.vpmacssww"
                }
                break;
              }
              break;
            }
            break;
          case 'd':	 // 1 string to match.
            if (memcmp(NameR.data()+12, "cswd", 4))
              break;
            return Intrinsic::x86_xop_vpmadcswd;	 // "86.xop.vpmadcswd"
          }
          break;
        }
        break;
      }
      break;
    case 17:	 // 79 strings to match.
      if (memcmp(NameR.data()+0, "86.", 3))
        break;
      switch (NameR[3]) {
      default: break;
      case '3':	 // 4 strings to match.
        if (memcmp(NameR.data()+4, "dnow", 4))
          break;
        switch (NameR[8]) {
        default: break;
        case '.':	 // 3 strings to match.
          if (memcmp(NameR.data()+9, "pfr", 3))
            break;
          switch (NameR[12]) {
          default: break;
          case 'c':	 // 2 strings to match.
            if (memcmp(NameR.data()+13, "pit", 3))
              break;
            switch (NameR[16]) {
            default: break;
            case '1':	 // 1 string to match.
              return Intrinsic::x86_3dnow_pfrcpit1;	 // "86.3dnow.pfrcpit1"
            case '2':	 // 1 string to match.
              return Intrinsic::x86_3dnow_pfrcpit2;	 // "86.3dnow.pfrcpit2"
            }
            break;
          case 's':	 // 1 string to match.
            if (memcmp(NameR.data()+13, "qit1", 4))
              break;
            return Intrinsic::x86_3dnow_pfrsqit1;	 // "86.3dnow.pfrsqit1"
          }
          break;
        case 'a':	 // 1 string to match.
          if (memcmp(NameR.data()+9, ".pfpnacc", 8))
            break;
          return Intrinsic::x86_3dnowa_pfpnacc;	 // "86.3dnowa.pfpnacc"
        }
        break;
      case 'a':	 // 11 strings to match.
        if (memcmp(NameR.data()+4, "vx.", 3))
          break;
        switch (NameR[7]) {
        default: break;
        case 'c':	 // 2 strings to match.
          if (memcmp(NameR.data()+8, "mp.p", 4))
            break;
          switch (NameR[12]) {
          default: break;
          case 'd':	 // 1 string to match.
            if (memcmp(NameR.data()+13, ".256", 4))
              break;
            return Intrinsic::x86_avx_cmp_pd_256;	 // "86.avx.cmp.pd.256"
          case 's':	 // 1 string to match.
            if (memcmp(NameR.data()+13, ".256", 4))
              break;
            return Intrinsic::x86_avx_cmp_ps_256;	 // "86.avx.cmp.ps.256"
          }
          break;
        case 'l':	 // 1 string to match.
          if (memcmp(NameR.data()+8, "du.dq.256", 9))
            break;
          return Intrinsic::x86_avx_ldu_dq_256;	 // "86.avx.ldu.dq.256"
        case 'm':	 // 4 strings to match.
          switch (NameR[8]) {
          default: break;
          case 'a':	 // 2 strings to match.
            if (memcmp(NameR.data()+9, "x.p", 3))
              break;
            switch (NameR[12]) {
            default: break;
            case 'd':	 // 1 string to match.
              if (memcmp(NameR.data()+13, ".256", 4))
                break;
              return Intrinsic::x86_avx_max_pd_256;	 // "86.avx.max.pd.256"
            case 's':	 // 1 string to match.
              if (memcmp(NameR.data()+13, ".256", 4))
                break;
              return Intrinsic::x86_avx_max_ps_256;	 // "86.avx.max.ps.256"
            }
            break;
          case 'i':	 // 2 strings to match.
            if (memcmp(NameR.data()+9, "n.p", 3))
              break;
            switch (NameR[12]) {
            default: break;
            case 'd':	 // 1 string to match.
              if (memcmp(NameR.data()+13, ".256", 4))
                break;
              return Intrinsic::x86_avx_min_pd_256;	 // "86.avx.min.pd.256"
            case 's':	 // 1 string to match.
              if (memcmp(NameR.data()+13, ".256", 4))
                break;
              return Intrinsic::x86_avx_min_ps_256;	 // "86.avx.min.ps.256"
            }
            break;
          }
          break;
        case 'p':	 // 2 strings to match.
          if (memcmp(NameR.data()+8, "test", 4))
            break;
          switch (NameR[12]) {
          default: break;
          case 'c':	 // 1 string to match.
            if (memcmp(NameR.data()+13, ".256", 4))
              break;
            return Intrinsic::x86_avx_ptestc_256;	 // "86.avx.ptestc.256"
          case 'z':	 // 1 string to match.
            if (memcmp(NameR.data()+13, ".256", 4))
              break;
            return Intrinsic::x86_avx_ptestz_256;	 // "86.avx.ptestz.256"
          }
          break;
        case 'r':	 // 1 string to match.
          if (memcmp(NameR.data()+8, "cp.ps.256", 9))
            break;
          return Intrinsic::x86_avx_rcp_ps_256;	 // "86.avx.rcp.ps.256"
        case 'v':	 // 1 string to match.
          if (memcmp(NameR.data()+8, "zeroupper", 9))
            break;
          return Intrinsic::x86_avx_vzeroupper;	 // "86.avx.vzeroupper"
        }
        break;
      case 'f':	 // 8 strings to match.
        if (memcmp(NameR.data()+4, "ma.vfnm", 7))
          break;
        switch (NameR[11]) {
        default: break;
        case 'a':	 // 4 strings to match.
          if (memcmp(NameR.data()+12, "dd.", 3))
            break;
          switch (NameR[15]) {
          default: break;
          case 'p':	 // 2 strings to match.
            switch (NameR[16]) {
            default: break;
            case 'd':	 // 1 string to match.
              return Intrinsic::x86_fma_vfnmadd_pd;	 // "86.fma.vfnmadd.pd"
            case 's':	 // 1 string to match.
              return Intrinsic::x86_fma_vfnmadd_ps;	 // "86.fma.vfnmadd.ps"
            }
            break;
          case 's':	 // 2 strings to match.
            switch (NameR[16]) {
            default: break;
            case 'd':	 // 1 string to match.
              return Intrinsic::x86_fma_vfnmadd_sd;	 // "86.fma.vfnmadd.sd"
            case 's':	 // 1 string to match.
              return Intrinsic::x86_fma_vfnmadd_ss;	 // "86.fma.vfnmadd.ss"
            }
            break;
          }
          break;
        case 's':	 // 4 strings to match.
          if (memcmp(NameR.data()+12, "ub.", 3))
            break;
          switch (NameR[15]) {
          default: break;
          case 'p':	 // 2 strings to match.
            switch (NameR[16]) {
            default: break;
            case 'd':	 // 1 string to match.
              return Intrinsic::x86_fma_vfnmsub_pd;	 // "86.fma.vfnmsub.pd"
            case 's':	 // 1 string to match.
              return Intrinsic::x86_fma_vfnmsub_ps;	 // "86.fma.vfnmsub.ps"
            }
            break;
          case 's':	 // 2 strings to match.
            switch (NameR[16]) {
            default: break;
            case 'd':	 // 1 string to match.
              return Intrinsic::x86_fma_vfnmsub_sd;	 // "86.fma.vfnmsub.sd"
            case 's':	 // 1 string to match.
              return Intrinsic::x86_fma_vfnmsub_ss;	 // "86.fma.vfnmsub.ss"
            }
            break;
          }
          break;
        }
        break;
      case 's':	 // 50 strings to match.
        if (NameR[4] != 's')
          break;
        switch (NameR[5]) {
        default: break;
        case 'e':	 // 48 strings to match.
          switch (NameR[6]) {
          default: break;
          case '.':	 // 8 strings to match.
            switch (NameR[7]) {
            default: break;
            case 'c':	 // 3 strings to match.
              switch (NameR[8]) {
              default: break;
              case 'o':	 // 1 string to match.
                if (memcmp(NameR.data()+9, "mineq.ss", 8))
                  break;
                return Intrinsic::x86_sse_comineq_ss;	 // "86.sse.comineq.ss"
              case 'v':	 // 2 strings to match.
                if (memcmp(NameR.data()+9, "ts", 2))
                  break;
                switch (NameR[11]) {
                default: break;
                case 'i':	 // 1 string to match.
                  if (memcmp(NameR.data()+12, "642ss", 5))
                    break;
                  return Intrinsic::x86_sse_cvtsi642ss;	 // "86.sse.cvtsi642ss"
                case 's':	 // 1 string to match.
                  if (memcmp(NameR.data()+12, "2si64", 5))
                    break;
                  return Intrinsic::x86_sse_cvtss2si64;	 // "86.sse.cvtss2si64"
                }
                break;
              }
              break;
            case 'u':	 // 5 strings to match.
              if (memcmp(NameR.data()+8, "comi", 4))
                break;
              switch (NameR[12]) {
              default: break;
              case 'e':	 // 1 string to match.
                if (memcmp(NameR.data()+13, "q.ss", 4))
                  break;
                return Intrinsic::x86_sse_ucomieq_ss;	 // "86.sse.ucomieq.ss"
              case 'g':	 // 2 strings to match.
                switch (NameR[13]) {
                default: break;
                case 'e':	 // 1 string to match.
                  if (memcmp(NameR.data()+14, ".ss", 3))
                    break;
                  return Intrinsic::x86_sse_ucomige_ss;	 // "86.sse.ucomige.ss"
                case 't':	 // 1 string to match.
                  if (memcmp(NameR.data()+14, ".ss", 3))
                    break;
                  return Intrinsic::x86_sse_ucomigt_ss;	 // "86.sse.ucomigt.ss"
                }
                break;
              case 'l':	 // 2 strings to match.
                switch (NameR[13]) {
                default: break;
                case 'e':	 // 1 string to match.
                  if (memcmp(NameR.data()+14, ".ss", 3))
                    break;
                  return Intrinsic::x86_sse_ucomile_ss;	 // "86.sse.ucomile.ss"
                case 't':	 // 1 string to match.
                  if (memcmp(NameR.data()+14, ".ss", 3))
                    break;
                  return Intrinsic::x86_sse_ucomilt_ss;	 // "86.sse.ucomilt.ss"
                }
                break;
              }
              break;
            }
            break;
          case '2':	 // 12 strings to match.
            if (NameR[7] != '.')
              break;
            switch (NameR[8]) {
            default: break;
            case 'c':	 // 8 strings to match.
              switch (NameR[9]) {
              default: break;
              case 'o':	 // 5 strings to match.
                if (memcmp(NameR.data()+10, "mi", 2))
                  break;
                switch (NameR[12]) {
                default: break;
                case 'e':	 // 1 string to match.
                  if (memcmp(NameR.data()+13, "q.sd", 4))
                    break;
                  return Intrinsic::x86_sse2_comieq_sd;	 // "86.sse2.comieq.sd"
                case 'g':	 // 2 strings to match.
                  switch (NameR[13]) {
                  default: break;
                  case 'e':	 // 1 string to match.
                    if (memcmp(NameR.data()+14, ".sd", 3))
                      break;
                    return Intrinsic::x86_sse2_comige_sd;	 // "86.sse2.comige.sd"
                  case 't':	 // 1 string to match.
                    if (memcmp(NameR.data()+14, ".sd", 3))
                      break;
                    return Intrinsic::x86_sse2_comigt_sd;	 // "86.sse2.comigt.sd"
                  }
                  break;
                case 'l':	 // 2 strings to match.
                  switch (NameR[13]) {
                  default: break;
                  case 'e':	 // 1 string to match.
                    if (memcmp(NameR.data()+14, ".sd", 3))
                      break;
                    return Intrinsic::x86_sse2_comile_sd;	 // "86.sse2.comile.sd"
                  case 't':	 // 1 string to match.
                    if (memcmp(NameR.data()+14, ".sd", 3))
                      break;
                    return Intrinsic::x86_sse2_comilt_sd;	 // "86.sse2.comilt.sd"
                  }
                  break;
                }
                break;
              case 'v':	 // 3 strings to match.
                if (memcmp(NameR.data()+10, "tt", 2))
                  break;
                switch (NameR[12]) {
                default: break;
                case 'p':	 // 2 strings to match.
                  switch (NameR[13]) {
                  default: break;
                  case 'd':	 // 1 string to match.
                    if (memcmp(NameR.data()+14, "2dq", 3))
                      break;
                    return Intrinsic::x86_sse2_cvttpd2dq;	 // "86.sse2.cvttpd2dq"
                  case 's':	 // 1 string to match.
                    if (memcmp(NameR.data()+14, "2dq", 3))
                      break;
                    return Intrinsic::x86_sse2_cvttps2dq;	 // "86.sse2.cvttps2dq"
                  }
                  break;
                case 's':	 // 1 string to match.
                  if (memcmp(NameR.data()+13, "d2si", 4))
                    break;
                  return Intrinsic::x86_sse2_cvttsd2si;	 // "86.sse2.cvttsd2si"
                }
                break;
              }
              break;
            case 'm':	 // 1 string to match.
              if (memcmp(NameR.data()+9, "ovmsk.pd", 8))
                break;
              return Intrinsic::x86_sse2_movmsk_pd;	 // "86.sse2.movmsk.pd"
            case 's':	 // 3 strings to match.
              if (memcmp(NameR.data()+9, "tore", 4))
                break;
              switch (NameR[13]) {
              default: break;
              case 'l':	 // 1 string to match.
                if (memcmp(NameR.data()+14, ".dq", 3))
                  break;
                return Intrinsic::x86_sse2_storel_dq;	 // "86.sse2.storel.dq"
              case 'u':	 // 2 strings to match.
                if (NameR[14] != '.')
                  break;
                switch (NameR[15]) {
                default: break;
                case 'd':	 // 1 string to match.
                  if (NameR[16] != 'q')
                    break;
                  return Intrinsic::x86_sse2_storeu_dq;	 // "86.sse2.storeu.dq"
                case 'p':	 // 1 string to match.
                  if (NameR[16] != 'd')
                    break;
                  return Intrinsic::x86_sse2_storeu_pd;	 // "86.sse2.storeu.pd"
                }
                break;
              }
              break;
            }
            break;
          case '3':	 // 2 strings to match.
            if (memcmp(NameR.data()+7, ".addsub.p", 9))
              break;
            switch (NameR[16]) {
            default: break;
            case 'd':	 // 1 string to match.
              return Intrinsic::x86_sse3_addsub_pd;	 // "86.sse3.addsub.pd"
            case 's':	 // 1 string to match.
              return Intrinsic::x86_sse3_addsub_ps;	 // "86.sse3.addsub.ps"
            }
            break;
          case '4':	 // 26 strings to match.
            switch (NameR[7]) {
            default: break;
            case '1':	 // 23 strings to match.
              if (NameR[8] != '.')
                break;
              switch (NameR[9]) {
              default: break;
              case 'b':	 // 2 strings to match.
                if (memcmp(NameR.data()+10, "lendvp", 6))
                  break;
                switch (NameR[16]) {
                default: break;
                case 'd':	 // 1 string to match.
                  return Intrinsic::x86_sse41_blendvpd;	 // "86.sse41.blendvpd"
                case 's':	 // 1 string to match.
                  return Intrinsic::x86_sse41_blendvps;	 // "86.sse41.blendvps"
                }
                break;
              case 'i':	 // 1 string to match.
                if (memcmp(NameR.data()+10, "nsertps", 7))
                  break;
                return Intrinsic::x86_sse41_insertps;	 // "86.sse41.insertps"
              case 'm':	 // 1 string to match.
                if (memcmp(NameR.data()+10, "ovntdqa", 7))
                  break;
                return Intrinsic::x86_sse41_movntdqa;	 // "86.sse41.movntdqa"
              case 'p':	 // 15 strings to match.
                switch (NameR[10]) {
                default: break;
                case 'a':	 // 1 string to match.
                  if (memcmp(NameR.data()+11, "ckusdw", 6))
                    break;
                  return Intrinsic::x86_sse41_packusdw;	 // "86.sse41.packusdw"
                case 'b':	 // 1 string to match.
                  if (memcmp(NameR.data()+11, "lendvb", 6))
                    break;
                  return Intrinsic::x86_sse41_pblendvb;	 // "86.sse41.pblendvb"
                case 'm':	 // 12 strings to match.
                  if (memcmp(NameR.data()+11, "ov", 2))
                    break;
                  switch (NameR[13]) {
                  default: break;
                  case 's':	 // 6 strings to match.
                    if (NameR[14] != 'x')
                      break;
                    switch (NameR[15]) {
                    default: break;
                    case 'b':	 // 3 strings to match.
                      switch (NameR[16]) {
                      default: break;
                      case 'd':	 // 1 string to match.
                        return Intrinsic::x86_sse41_pmovsxbd;	 // "86.sse41.pmovsxbd"
                      case 'q':	 // 1 string to match.
                        return Intrinsic::x86_sse41_pmovsxbq;	 // "86.sse41.pmovsxbq"
                      case 'w':	 // 1 string to match.
                        return Intrinsic::x86_sse41_pmovsxbw;	 // "86.sse41.pmovsxbw"
                      }
                      break;
                    case 'd':	 // 1 string to match.
                      if (NameR[16] != 'q')
                        break;
                      return Intrinsic::x86_sse41_pmovsxdq;	 // "86.sse41.pmovsxdq"
                    case 'w':	 // 2 strings to match.
                      switch (NameR[16]) {
                      default: break;
                      case 'd':	 // 1 string to match.
                        return Intrinsic::x86_sse41_pmovsxwd;	 // "86.sse41.pmovsxwd"
                      case 'q':	 // 1 string to match.
                        return Intrinsic::x86_sse41_pmovsxwq;	 // "86.sse41.pmovsxwq"
                      }
                      break;
                    }
                    break;
                  case 'z':	 // 6 strings to match.
                    if (NameR[14] != 'x')
                      break;
                    switch (NameR[15]) {
                    default: break;
                    case 'b':	 // 3 strings to match.
                      switch (NameR[16]) {
                      default: break;
                      case 'd':	 // 1 string to match.
                        return Intrinsic::x86_sse41_pmovzxbd;	 // "86.sse41.pmovzxbd"
                      case 'q':	 // 1 string to match.
                        return Intrinsic::x86_sse41_pmovzxbq;	 // "86.sse41.pmovzxbq"
                      case 'w':	 // 1 string to match.
                        return Intrinsic::x86_sse41_pmovzxbw;	 // "86.sse41.pmovzxbw"
                      }
                      break;
                    case 'd':	 // 1 string to match.
                      if (NameR[16] != 'q')
                        break;
                      return Intrinsic::x86_sse41_pmovzxdq;	 // "86.sse41.pmovzxdq"
                    case 'w':	 // 2 strings to match.
                      switch (NameR[16]) {
                      default: break;
                      case 'd':	 // 1 string to match.
                        return Intrinsic::x86_sse41_pmovzxwd;	 // "86.sse41.pmovzxwd"
                      case 'q':	 // 1 string to match.
                        return Intrinsic::x86_sse41_pmovzxwq;	 // "86.sse41.pmovzxwq"
                      }
                      break;
                    }
                    break;
                  }
                  break;
                case 't':	 // 1 string to match.
                  if (memcmp(NameR.data()+11, "estnzc", 6))
                    break;
                  return Intrinsic::x86_sse41_ptestnzc;	 // "86.sse41.ptestnzc"
                }
                break;
              case 'r':	 // 4 strings to match.
                if (memcmp(NameR.data()+10, "ound.", 5))
                  break;
                switch (NameR[15]) {
                default: break;
                case 'p':	 // 2 strings to match.
                  switch (NameR[16]) {
                  default: break;
                  case 'd':	 // 1 string to match.
                    return Intrinsic::x86_sse41_round_pd;	 // "86.sse41.round.pd"
                  case 's':	 // 1 string to match.
                    return Intrinsic::x86_sse41_round_ps;	 // "86.sse41.round.ps"
                  }
                  break;
                case 's':	 // 2 strings to match.
                  switch (NameR[16]) {
                  default: break;
                  case 'd':	 // 1 string to match.
                    return Intrinsic::x86_sse41_round_sd;	 // "86.sse41.round.sd"
                  case 's':	 // 1 string to match.
                    return Intrinsic::x86_sse41_round_ss;	 // "86.sse41.round.ss"
                  }
                  break;
                }
                break;
              }
              break;
            case 'a':	 // 3 strings to match.
              if (NameR[8] != '.')
                break;
              switch (NameR[9]) {
              default: break;
              case 'i':	 // 1 string to match.
                if (memcmp(NameR.data()+10, "nsertqi", 7))
                  break;
                return Intrinsic::x86_sse4a_insertqi;	 // "86.sse4a.insertqi"
              case 'm':	 // 2 strings to match.
                if (memcmp(NameR.data()+10, "ovnt.s", 6))
                  break;
                switch (NameR[16]) {
                default: break;
                case 'd':	 // 1 string to match.
                  return Intrinsic::x86_sse4a_movnt_sd;	 // "86.sse4a.movnt.sd"
                case 's':	 // 1 string to match.
                  return Intrinsic::x86_sse4a_movnt_ss;	 // "86.sse4a.movnt.ss"
                }
                break;
              }
              break;
            }
            break;
          }
          break;
        case 's':	 // 2 strings to match.
          if (memcmp(NameR.data()+6, "e3.ph", 5))
            break;
          switch (NameR[11]) {
          default: break;
          case 'a':	 // 1 string to match.
            if (memcmp(NameR.data()+12, "dd.sw", 5))
              break;
            return Intrinsic::x86_ssse3_phadd_sw;	 // "86.ssse3.phadd.sw"
          case 's':	 // 1 string to match.
            if (memcmp(NameR.data()+12, "ub.sw", 5))
              break;
            return Intrinsic::x86_ssse3_phsub_sw;	 // "86.ssse3.phsub.sw"
          }
          break;
        }
        break;
      case 'x':	 // 6 strings to match.
        if (memcmp(NameR.data()+4, "op.vp", 5))
          break;
        switch (NameR[9]) {
        default: break;
        case 'c':	 // 1 string to match.
          if (memcmp(NameR.data()+10, "mov.256", 7))
            break;
          return Intrinsic::x86_xop_vpcmov_256;	 // "86.xop.vpcmov.256"
        case 'e':	 // 2 strings to match.
          if (memcmp(NameR.data()+10, "rmil2p", 6))
            break;
          switch (NameR[16]) {
          default: break;
          case 'd':	 // 1 string to match.
            return Intrinsic::x86_xop_vpermil2pd;	 // "86.xop.vpermil2pd"
          case 's':	 // 1 string to match.
            return Intrinsic::x86_xop_vpermil2ps;	 // "86.xop.vpermil2ps"
          }
          break;
        case 'm':	 // 3 strings to match.
          if (NameR[10] != 'a')
            break;
          switch (NameR[11]) {
          default: break;
          case 'c':	 // 2 strings to match.
            if (memcmp(NameR.data()+12, "ssdq", 4))
              break;
            switch (NameR[16]) {
            default: break;
            case 'h':	 // 1 string to match.
              return Intrinsic::x86_xop_vpmacssdqh;	 // "86.xop.vpmacssdqh"
            case 'l':	 // 1 string to match.
              return Intrinsic::x86_xop_vpmacssdql;	 // "86.xop.vpmacssdql"
            }
            break;
          case 'd':	 // 1 string to match.
            if (memcmp(NameR.data()+12, "csswd", 5))
              break;
            return Intrinsic::x86_xop_vpmadcsswd;	 // "86.xop.vpmadcsswd"
          }
          break;
        }
        break;
      }
      break;
    case 18:	 // 33 strings to match.
      if (memcmp(NameR.data()+0, "86.", 3))
        break;
      switch (NameR[3]) {
      default: break;
      case 'a':	 // 20 strings to match.
        if (memcmp(NameR.data()+4, "vx", 2))
          break;
        switch (NameR[6]) {
        default: break;
        case '.':	 // 10 strings to match.
          switch (NameR[7]) {
          default: break;
          case 'h':	 // 4 strings to match.
            switch (NameR[8]) {
            default: break;
            case 'a':	 // 2 strings to match.
              if (memcmp(NameR.data()+9, "dd.p", 4))
                break;
              switch (NameR[13]) {
              default: break;
              case 'd':	 // 1 string to match.
                if (memcmp(NameR.data()+14, ".256", 4))
                  break;
                return Intrinsic::x86_avx_hadd_pd_256;	 // "86.avx.hadd.pd.256"
              case 's':	 // 1 string to match.
                if (memcmp(NameR.data()+14, ".256", 4))
                  break;
                return Intrinsic::x86_avx_hadd_ps_256;	 // "86.avx.hadd.ps.256"
              }
              break;
            case 's':	 // 2 strings to match.
              if (memcmp(NameR.data()+9, "ub.p", 4))
                break;
              switch (NameR[13]) {
              default: break;
              case 'd':	 // 1 string to match.
                if (memcmp(NameR.data()+14, ".256", 4))
                  break;
                return Intrinsic::x86_avx_hsub_pd_256;	 // "86.avx.hsub.pd.256"
              case 's':	 // 1 string to match.
                if (memcmp(NameR.data()+14, ".256", 4))
                  break;
                return Intrinsic::x86_avx_hsub_ps_256;	 // "86.avx.hsub.ps.256"
              }
              break;
            }
            break;
          case 'm':	 // 2 strings to match.
            if (memcmp(NameR.data()+8, "askload.p", 9))
              break;
            switch (NameR[17]) {
            default: break;
            case 'd':	 // 1 string to match.
              return Intrinsic::x86_avx_maskload_pd;	 // "86.avx.maskload.pd"
            case 's':	 // 1 string to match.
              return Intrinsic::x86_avx_maskload_ps;	 // "86.avx.maskload.ps"
            }
            break;
          case 's':	 // 2 strings to match.
            if (memcmp(NameR.data()+8, "qrt.p", 5))
              break;
            switch (NameR[13]) {
            default: break;
            case 'd':	 // 1 string to match.
              if (memcmp(NameR.data()+14, ".256", 4))
                break;
              return Intrinsic::x86_avx_sqrt_pd_256;	 // "86.avx.sqrt.pd.256"
            case 's':	 // 1 string to match.
              if (memcmp(NameR.data()+14, ".256", 4))
                break;
              return Intrinsic::x86_avx_sqrt_ps_256;	 // "86.avx.sqrt.ps.256"
            }
            break;
          case 'v':	 // 2 strings to match.
            if (memcmp(NameR.data()+8, "testnzc.p", 9))
              break;
            switch (NameR[17]) {
            default: break;
            case 'd':	 // 1 string to match.
              return Intrinsic::x86_avx_vtestnzc_pd;	 // "86.avx.vtestnzc.pd"
            case 's':	 // 1 string to match.
              return Intrinsic::x86_avx_vtestnzc_ps;	 // "86.avx.vtestnzc.ps"
            }
            break;
          }
          break;
        case '2':	 // 10 strings to match.
          if (NameR[7] != '.')
            break;
          switch (NameR[8]) {
          default: break;
          case 'g':	 // 4 strings to match.
            if (memcmp(NameR.data()+9, "ather.", 6))
              break;
            switch (NameR[15]) {
            default: break;
            case 'd':	 // 2 strings to match.
              if (NameR[16] != '.')
                break;
              switch (NameR[17]) {
              default: break;
              case 'd':	 // 1 string to match.
                return Intrinsic::x86_avx2_gather_d_d;	 // "86.avx2.gather.d.d"
              case 'q':	 // 1 string to match.
                return Intrinsic::x86_avx2_gather_d_q;	 // "86.avx2.gather.d.q"
              }
              break;
            case 'q':	 // 2 strings to match.
              if (NameR[16] != '.')
                break;
              switch (NameR[17]) {
              default: break;
              case 'd':	 // 1 string to match.
                return Intrinsic::x86_avx2_gather_q_d;	 // "86.avx2.gather.q.d"
              case 'q':	 // 1 string to match.
                return Intrinsic::x86_avx2_gather_q_q;	 // "86.avx2.gather.q.q"
              }
              break;
            }
            break;
          case 'm':	 // 2 strings to match.
            if (memcmp(NameR.data()+9, "askload.", 8))
              break;
            switch (NameR[17]) {
            default: break;
            case 'd':	 // 1 string to match.
              return Intrinsic::x86_avx2_maskload_d;	 // "86.avx2.maskload.d"
            case 'q':	 // 1 string to match.
              return Intrinsic::x86_avx2_maskload_q;	 // "86.avx2.maskload.q"
            }
            break;
          case 'p':	 // 3 strings to match.
            switch (NameR[9]) {
            default: break;
            case 'm':	 // 1 string to match.
              if (memcmp(NameR.data()+10, "ul.hr.sw", 8))
                break;
              return Intrinsic::x86_avx2_pmul_hr_sw;	 // "86.avx2.pmul.hr.sw"
            case 's':	 // 2 strings to match.
              switch (NameR[10]) {
              default: break;
              case 'l':	 // 1 string to match.
                if (memcmp(NameR.data()+11, "l.dq.bs", 7))
                  break;
                return Intrinsic::x86_avx2_psll_dq_bs;	 // "86.avx2.psll.dq.bs"
              case 'r':	 // 1 string to match.
                if (memcmp(NameR.data()+11, "l.dq.bs", 7))
                  break;
                return Intrinsic::x86_avx2_psrl_dq_bs;	 // "86.avx2.psrl.dq.bs"
              }
              break;
            }
            break;
          case 'v':	 // 1 string to match.
            if (memcmp(NameR.data()+9, "perm2i128", 9))
              break;
            return Intrinsic::x86_avx2_vperm2i128;	 // "86.avx2.vperm2i128"
          }
          break;
        }
        break;
      case 's':	 // 13 strings to match.
        if (memcmp(NameR.data()+4, "se", 2))
          break;
        switch (NameR[6]) {
        default: break;
        case '.':	 // 2 strings to match.
          switch (NameR[7]) {
          default: break;
          case 'c':	 // 1 string to match.
            if (memcmp(NameR.data()+8, "vttss2si64", 10))
              break;
            return Intrinsic::x86_sse_cvttss2si64;	 // "86.sse.cvttss2si64"
          case 'u':	 // 1 string to match.
            if (memcmp(NameR.data()+8, "comineq.ss", 10))
              break;
            return Intrinsic::x86_sse_ucomineq_ss;	 // "86.sse.ucomineq.ss"
          }
          break;
        case '2':	 // 10 strings to match.
          if (NameR[7] != '.')
            break;
          switch (NameR[8]) {
          default: break;
          case 'c':	 // 3 strings to match.
            switch (NameR[9]) {
            default: break;
            case 'o':	 // 1 string to match.
              if (memcmp(NameR.data()+10, "mineq.sd", 8))
                break;
              return Intrinsic::x86_sse2_comineq_sd;	 // "86.sse2.comineq.sd"
            case 'v':	 // 2 strings to match.
              if (memcmp(NameR.data()+10, "ts", 2))
                break;
              switch (NameR[12]) {
              default: break;
              case 'd':	 // 1 string to match.
                if (memcmp(NameR.data()+13, "2si64", 5))
                  break;
                return Intrinsic::x86_sse2_cvtsd2si64;	 // "86.sse2.cvtsd2si64"
              case 'i':	 // 1 string to match.
                if (memcmp(NameR.data()+13, "642sd", 5))
                  break;
                return Intrinsic::x86_sse2_cvtsi642sd;	 // "86.sse2.cvtsi642sd"
              }
              break;
            }
            break;
          case 'p':	 // 2 strings to match.
            if (NameR[9] != 's')
              break;
            switch (NameR[10]) {
            default: break;
            case 'l':	 // 1 string to match.
              if (memcmp(NameR.data()+11, "l.dq.bs", 7))
                break;
              return Intrinsic::x86_sse2_psll_dq_bs;	 // "86.sse2.psll.dq.bs"
            case 'r':	 // 1 string to match.
              if (memcmp(NameR.data()+11, "l.dq.bs", 7))
                break;
              return Intrinsic::x86_sse2_psrl_dq_bs;	 // "86.sse2.psrl.dq.bs"
            }
            break;
          case 'u':	 // 5 strings to match.
            if (memcmp(NameR.data()+9, "comi", 4))
              break;
            switch (NameR[13]) {
            default: break;
            case 'e':	 // 1 string to match.
              if (memcmp(NameR.data()+14, "q.sd", 4))
                break;
              return Intrinsic::x86_sse2_ucomieq_sd;	 // "86.sse2.ucomieq.sd"
            case 'g':	 // 2 strings to match.
              switch (NameR[14]) {
              default: break;
              case 'e':	 // 1 string to match.
                if (memcmp(NameR.data()+15, ".sd", 3))
                  break;
                return Intrinsic::x86_sse2_ucomige_sd;	 // "86.sse2.ucomige.sd"
              case 't':	 // 1 string to match.
                if (memcmp(NameR.data()+15, ".sd", 3))
                  break;
                return Intrinsic::x86_sse2_ucomigt_sd;	 // "86.sse2.ucomigt.sd"
              }
              break;
            case 'l':	 // 2 strings to match.
              switch (NameR[14]) {
              default: break;
              case 'e':	 // 1 string to match.
                if (memcmp(NameR.data()+15, ".sd", 3))
                  break;
                return Intrinsic::x86_sse2_ucomile_sd;	 // "86.sse2.ucomile.sd"
              case 't':	 // 1 string to match.
                if (memcmp(NameR.data()+15, ".sd", 3))
                  break;
                return Intrinsic::x86_sse2_ucomilt_sd;	 // "86.sse2.ucomilt.sd"
              }
              break;
            }
            break;
          }
          break;
        case '4':	 // 1 string to match.
          if (memcmp(NameR.data()+7, "1.extractps", 11))
            break;
          return Intrinsic::x86_sse41_extractps;	 // "86.sse41.extractps"
        }
        break;
      }
      break;
    case 19:	 // 41 strings to match.
      if (memcmp(NameR.data()+0, "86.", 3))
        break;
      switch (NameR[3]) {
      default: break;
      case 'a':	 // 25 strings to match.
        switch (NameR[4]) {
        default: break;
        case 'e':	 // 2 strings to match.
          if (memcmp(NameR.data()+5, "sni.aes", 7))
            break;
          switch (NameR[12]) {
          default: break;
          case 'd':	 // 1 string to match.
            if (memcmp(NameR.data()+13, "eclast", 6))
              break;
            return Intrinsic::x86_aesni_aesdeclast;	 // "86.aesni.aesdeclast"
          case 'e':	 // 1 string to match.
            if (memcmp(NameR.data()+13, "nclast", 6))
              break;
            return Intrinsic::x86_aesni_aesenclast;	 // "86.aesni.aesenclast"
          }
          break;
        case 'v':	 // 23 strings to match.
          if (NameR[5] != 'x')
            break;
          switch (NameR[6]) {
          default: break;
          case '.':	 // 8 strings to match.
            switch (NameR[7]) {
            default: break;
            case 'b':	 // 2 strings to match.
              if (memcmp(NameR.data()+8, "lend.p", 6))
                break;
              switch (NameR[14]) {
              default: break;
              case 'd':	 // 1 string to match.
                if (memcmp(NameR.data()+15, ".256", 4))
                  break;
                return Intrinsic::x86_avx_blend_pd_256;	 // "86.avx.blend.pd.256"
              case 's':	 // 1 string to match.
                if (memcmp(NameR.data()+15, ".256", 4))
                  break;
                return Intrinsic::x86_avx_blend_ps_256;	 // "86.avx.blend.ps.256"
              }
              break;
            case 'm':	 // 2 strings to match.
              if (memcmp(NameR.data()+8, "askstore.p", 10))
                break;
              switch (NameR[18]) {
              default: break;
              case 'd':	 // 1 string to match.
                return Intrinsic::x86_avx_maskstore_pd;	 // "86.avx.maskstore.pd"
              case 's':	 // 1 string to match.
                return Intrinsic::x86_avx_maskstore_ps;	 // "86.avx.maskstore.ps"
              }
              break;
            case 'p':	 // 1 string to match.
              if (memcmp(NameR.data()+8, "testnzc.256", 11))
                break;
              return Intrinsic::x86_avx_ptestnzc_256;	 // "86.avx.ptestnzc.256"
            case 'r':	 // 3 strings to match.
              switch (NameR[8]) {
              default: break;
              case 'o':	 // 2 strings to match.
                if (memcmp(NameR.data()+9, "und.p", 5))
                  break;
                switch (NameR[14]) {
                default: break;
                case 'd':	 // 1 string to match.
                  if (memcmp(NameR.data()+15, ".256", 4))
                    break;
                  return Intrinsic::x86_avx_round_pd_256;	 // "86.avx.round.pd.256"
                case 's':	 // 1 string to match.
                  if (memcmp(NameR.data()+15, ".256", 4))
                    break;
                  return Intrinsic::x86_avx_round_ps_256;	 // "86.avx.round.ps.256"
                }
                break;
              case 's':	 // 1 string to match.
                if (memcmp(NameR.data()+9, "qrt.ps.256", 10))
                  break;
                return Intrinsic::x86_avx_rsqrt_ps_256;	 // "86.avx.rsqrt.ps.256"
              }
              break;
            }
            break;
          case '2':	 // 15 strings to match.
            if (NameR[7] != '.')
              break;
            switch (NameR[8]) {
            default: break;
            case 'g':	 // 4 strings to match.
              if (memcmp(NameR.data()+9, "ather.", 6))
                break;
              switch (NameR[15]) {
              default: break;
              case 'd':	 // 2 strings to match.
                if (memcmp(NameR.data()+16, ".p", 2))
                  break;
                switch (NameR[18]) {
                default: break;
                case 'd':	 // 1 string to match.
                  return Intrinsic::x86_avx2_gather_d_pd;	 // "86.avx2.gather.d.pd"
                case 's':	 // 1 string to match.
                  return Intrinsic::x86_avx2_gather_d_ps;	 // "86.avx2.gather.d.ps"
                }
                break;
              case 'q':	 // 2 strings to match.
                if (memcmp(NameR.data()+16, ".p", 2))
                  break;
                switch (NameR[18]) {
                default: break;
                case 'd':	 // 1 string to match.
                  return Intrinsic::x86_avx2_gather_q_pd;	 // "86.avx2.gather.q.pd"
                case 's':	 // 1 string to match.
                  return Intrinsic::x86_avx2_gather_q_ps;	 // "86.avx2.gather.q.ps"
                }
                break;
              }
              break;
            case 'm':	 // 2 strings to match.
              if (memcmp(NameR.data()+9, "askstore.", 9))
                break;
              switch (NameR[18]) {
              default: break;
              case 'd':	 // 1 string to match.
                return Intrinsic::x86_avx2_maskstore_d;	 // "86.avx2.maskstore.d"
              case 'q':	 // 1 string to match.
                return Intrinsic::x86_avx2_maskstore_q;	 // "86.avx2.maskstore.q"
              }
              break;
            case 'p':	 // 8 strings to match.
              switch (NameR[9]) {
              default: break;
              case 'b':	 // 2 strings to match.
                if (memcmp(NameR.data()+10, "lendd.", 6))
                  break;
                switch (NameR[16]) {
                default: break;
                case '1':	 // 1 string to match.
                  if (memcmp(NameR.data()+17, "28", 2))
                    break;
                  return Intrinsic::x86_avx2_pblendd_128;	 // "86.avx2.pblendd.128"
                case '2':	 // 1 string to match.
                  if (memcmp(NameR.data()+17, "56", 2))
                    break;
                  return Intrinsic::x86_avx2_pblendd_256;	 // "86.avx2.pblendd.256"
                }
                break;
              case 'm':	 // 1 string to match.
                if (memcmp(NameR.data()+10, "add.ub.sw", 9))
                  break;
                return Intrinsic::x86_avx2_pmadd_ub_sw;	 // "86.avx2.pmadd.ub.sw"
              case 's':	 // 5 strings to match.
                switch (NameR[10]) {
                default: break;
                case 'l':	 // 2 strings to match.
                  if (memcmp(NameR.data()+11, "lv.", 3))
                    break;
                  switch (NameR[14]) {
                  default: break;
                  case 'd':	 // 1 string to match.
                    if (memcmp(NameR.data()+15, ".256", 4))
                      break;
                    return Intrinsic::x86_avx2_psllv_d_256;	 // "86.avx2.psllv.d.256"
                  case 'q':	 // 1 string to match.
                    if (memcmp(NameR.data()+15, ".256", 4))
                      break;
                    return Intrinsic::x86_avx2_psllv_q_256;	 // "86.avx2.psllv.q.256"
                  }
                  break;
                case 'r':	 // 3 strings to match.
                  switch (NameR[11]) {
                  default: break;
                  case 'a':	 // 1 string to match.
                    if (memcmp(NameR.data()+12, "v.d.256", 7))
                      break;
                    return Intrinsic::x86_avx2_psrav_d_256;	 // "86.avx2.psrav.d.256"
                  case 'l':	 // 2 strings to match.
                    if (memcmp(NameR.data()+12, "v.", 2))
                      break;
                    switch (NameR[14]) {
                    default: break;
                    case 'd':	 // 1 string to match.
                      if (memcmp(NameR.data()+15, ".256", 4))
                        break;
                      return Intrinsic::x86_avx2_psrlv_d_256;	 // "86.avx2.psrlv.d.256"
                    case 'q':	 // 1 string to match.
                      if (memcmp(NameR.data()+15, ".256", 4))
                        break;
                      return Intrinsic::x86_avx2_psrlv_q_256;	 // "86.avx2.psrlv.q.256"
                    }
                    break;
                  }
                  break;
                }
                break;
              }
              break;
            case 'v':	 // 1 string to match.
              if (memcmp(NameR.data()+9, "inserti128", 10))
                break;
              return Intrinsic::x86_avx2_vinserti128;	 // "86.avx2.vinserti128"
            }
            break;
          }
          break;
        }
        break;
      case 'f':	 // 4 strings to match.
        if (memcmp(NameR.data()+4, "ma.vfm", 6))
          break;
        switch (NameR[10]) {
        default: break;
        case 'a':	 // 2 strings to match.
          if (memcmp(NameR.data()+11, "ddsub.p", 7))
            break;
          switch (NameR[18]) {
          default: break;
          case 'd':	 // 1 string to match.
            return Intrinsic::x86_fma_vfmaddsub_pd;	 // "86.fma.vfmaddsub.pd"
          case 's':	 // 1 string to match.
            return Intrinsic::x86_fma_vfmaddsub_ps;	 // "86.fma.vfmaddsub.ps"
          }
          break;
        case 's':	 // 2 strings to match.
          if (memcmp(NameR.data()+11, "ubadd.p", 7))
            break;
          switch (NameR[18]) {
          default: break;
          case 'd':	 // 1 string to match.
            return Intrinsic::x86_fma_vfmsubadd_pd;	 // "86.fma.vfmsubadd.pd"
          case 's':	 // 1 string to match.
            return Intrinsic::x86_fma_vfmsubadd_ps;	 // "86.fma.vfmsubadd.ps"
          }
          break;
        }
        break;
      case 's':	 // 10 strings to match.
        if (NameR[4] != 's')
          break;
        switch (NameR[5]) {
        default: break;
        case 'e':	 // 6 strings to match.
          switch (NameR[6]) {
          default: break;
          case '2':	 // 3 strings to match.
            if (NameR[7] != '.')
              break;
            switch (NameR[8]) {
            default: break;
            case 'c':	 // 1 string to match.
              if (memcmp(NameR.data()+9, "vttsd2si64", 10))
                break;
              return Intrinsic::x86_sse2_cvttsd2si64;	 // "86.sse2.cvttsd2si64"
            case 'm':	 // 1 string to match.
              if (memcmp(NameR.data()+9, "askmov.dqu", 10))
                break;
              return Intrinsic::x86_sse2_maskmov_dqu;	 // "86.sse2.maskmov.dqu"
            case 'u':	 // 1 string to match.
              if (memcmp(NameR.data()+9, "comineq.sd", 10))
                break;
              return Intrinsic::x86_sse2_ucomineq_sd;	 // "86.sse2.ucomineq.sd"
            }
            break;
          case '4':	 // 3 strings to match.
            switch (NameR[7]) {
            default: break;
            case '1':	 // 1 string to match.
              if (memcmp(NameR.data()+8, ".phminposuw", 11))
                break;
              return Intrinsic::x86_sse41_phminposuw;	 // "86.sse41.phminposuw"
            case '2':	 // 2 strings to match.
              if (memcmp(NameR.data()+8, ".crc32.", 7))
                break;
              switch (NameR[15]) {
              default: break;
              case '3':	 // 1 string to match.
                if (memcmp(NameR.data()+16, "2.8", 3))
                  break;
                return Intrinsic::x86_sse42_crc32_32_8;	 // "86.sse42.crc32.32.8"
              case '6':	 // 1 string to match.
                if (memcmp(NameR.data()+16, "4.8", 3))
                  break;
                return Intrinsic::x86_sse42_crc32_64_8;	 // "86.sse42.crc32.64.8"
              }
              break;
            }
            break;
          }
          break;
        case 's':	 // 4 strings to match.
          if (memcmp(NameR.data()+6, "e3.p", 4))
            break;
          switch (NameR[10]) {
          default: break;
          case 'a':	 // 3 strings to match.
            if (memcmp(NameR.data()+11, "bs.", 3))
              break;
            switch (NameR[14]) {
            default: break;
            case 'b':	 // 1 string to match.
              if (memcmp(NameR.data()+15, ".128", 4))
                break;
              return Intrinsic::x86_ssse3_pabs_b_128;	 // "86.ssse3.pabs.b.128"
            case 'd':	 // 1 string to match.
              if (memcmp(NameR.data()+15, ".128", 4))
                break;
              return Intrinsic::x86_ssse3_pabs_d_128;	 // "86.ssse3.pabs.d.128"
            case 'w':	 // 1 string to match.
              if (memcmp(NameR.data()+15, ".128", 4))
                break;
              return Intrinsic::x86_ssse3_pabs_w_128;	 // "86.ssse3.pabs.w.128"
            }
            break;
          case 'm':	 // 1 string to match.
            if (memcmp(NameR.data()+11, "ul.hr.sw", 8))
              break;
            return Intrinsic::x86_ssse3_pmul_hr_sw;	 // "86.ssse3.pmul.hr.sw"
          }
          break;
        }
        break;
      case 'x':	 // 2 strings to match.
        if (memcmp(NameR.data()+4, "op.vfrcz.p", 10))
          break;
        switch (NameR[14]) {
        default: break;
        case 'd':	 // 1 string to match.
          if (memcmp(NameR.data()+15, ".256", 4))
            break;
          return Intrinsic::x86_xop_vfrcz_pd_256;	 // "86.xop.vfrcz.pd.256"
        case 's':	 // 1 string to match.
          if (memcmp(NameR.data()+15, ".256", 4))
            break;
          return Intrinsic::x86_xop_vfrcz_ps_256;	 // "86.xop.vfrcz.ps.256"
        }
        break;
      }
      break;
    case 20:	 // 41 strings to match.
      if (memcmp(NameR.data()+0, "86.", 3))
        break;
      switch (NameR[3]) {
      default: break;
      case 'a':	 // 21 strings to match.
        if (memcmp(NameR.data()+4, "vx", 2))
          break;
        switch (NameR[6]) {
        default: break;
        case '.':	 // 20 strings to match.
          switch (NameR[7]) {
          default: break;
          case 'a':	 // 2 strings to match.
            if (memcmp(NameR.data()+8, "ddsub.p", 7))
              break;
            switch (NameR[15]) {
            default: break;
            case 'd':	 // 1 string to match.
              if (memcmp(NameR.data()+16, ".256", 4))
                break;
              return Intrinsic::x86_avx_addsub_pd_256;	 // "86.avx.addsub.pd.256"
            case 's':	 // 1 string to match.
              if (memcmp(NameR.data()+16, ".256", 4))
                break;
              return Intrinsic::x86_avx_addsub_ps_256;	 // "86.avx.addsub.ps.256"
            }
            break;
          case 'b':	 // 2 strings to match.
            if (memcmp(NameR.data()+8, "lendv.p", 7))
              break;
            switch (NameR[15]) {
            default: break;
            case 'd':	 // 1 string to match.
              if (memcmp(NameR.data()+16, ".256", 4))
                break;
              return Intrinsic::x86_avx_blendv_pd_256;	 // "86.avx.blendv.pd.256"
            case 's':	 // 1 string to match.
              if (memcmp(NameR.data()+16, ".256", 4))
                break;
              return Intrinsic::x86_avx_blendv_ps_256;	 // "86.avx.blendv.ps.256"
            }
            break;
          case 'c':	 // 4 strings to match.
            if (memcmp(NameR.data()+8, "vt", 2))
              break;
            switch (NameR[10]) {
            default: break;
            case '.':	 // 2 strings to match.
              if (NameR[11] != 'p')
                break;
              switch (NameR[12]) {
              default: break;
              case 'd':	 // 1 string to match.
                if (memcmp(NameR.data()+13, "2dq.256", 7))
                  break;
                return Intrinsic::x86_avx_cvt_pd2dq_256;	 // "86.avx.cvt.pd2dq.256"
              case 's':	 // 1 string to match.
                if (memcmp(NameR.data()+13, "2dq.256", 7))
                  break;
                return Intrinsic::x86_avx_cvt_ps2dq_256;	 // "86.avx.cvt.ps2dq.256"
              }
              break;
            case 'd':	 // 2 strings to match.
              if (memcmp(NameR.data()+11, "q2.p", 4))
                break;
              switch (NameR[15]) {
              default: break;
              case 'd':	 // 1 string to match.
                if (memcmp(NameR.data()+16, ".256", 4))
                  break;
                return Intrinsic::x86_avx_cvtdq2_pd_256;	 // "86.avx.cvtdq2.pd.256"
              case 's':	 // 1 string to match.
                if (memcmp(NameR.data()+16, ".256", 4))
                  break;
                return Intrinsic::x86_avx_cvtdq2_ps_256;	 // "86.avx.cvtdq2.ps.256"
              }
              break;
            }
            break;
          case 'm':	 // 2 strings to match.
            if (memcmp(NameR.data()+8, "ovmsk.p", 7))
              break;
            switch (NameR[15]) {
            default: break;
            case 'd':	 // 1 string to match.
              if (memcmp(NameR.data()+16, ".256", 4))
                break;
              return Intrinsic::x86_avx_movmsk_pd_256;	 // "86.avx.movmsk.pd.256"
            case 's':	 // 1 string to match.
              if (memcmp(NameR.data()+16, ".256", 4))
                break;
              return Intrinsic::x86_avx_movmsk_ps_256;	 // "86.avx.movmsk.ps.256"
            }
            break;
          case 's':	 // 3 strings to match.
            if (memcmp(NameR.data()+8, "toreu.", 6))
              break;
            switch (NameR[14]) {
            default: break;
            case 'd':	 // 1 string to match.
              if (memcmp(NameR.data()+15, "q.256", 5))
                break;
              return Intrinsic::x86_avx_storeu_dq_256;	 // "86.avx.storeu.dq.256"
            case 'p':	 // 2 strings to match.
              switch (NameR[15]) {
              default: break;
              case 'd':	 // 1 string to match.
                if (memcmp(NameR.data()+16, ".256", 4))
                  break;
                return Intrinsic::x86_avx_storeu_pd_256;	 // "86.avx.storeu.pd.256"
              case 's':	 // 1 string to match.
                if (memcmp(NameR.data()+16, ".256", 4))
                  break;
                return Intrinsic::x86_avx_storeu_ps_256;	 // "86.avx.storeu.ps.256"
              }
              break;
            }
            break;
          case 'v':	 // 7 strings to match.
            switch (NameR[8]) {
            default: break;
            case 'b':	 // 1 string to match.
              if (memcmp(NameR.data()+9, "roadcast.ss", 11))
                break;
              return Intrinsic::x86_avx_vbroadcast_ss;	 // "86.avx.vbroadcast.ss"
            case 'p':	 // 2 strings to match.
              if (memcmp(NameR.data()+9, "ermilvar.p", 10))
                break;
              switch (NameR[19]) {
              default: break;
              case 'd':	 // 1 string to match.
                return Intrinsic::x86_avx_vpermilvar_pd;	 // "86.avx.vpermilvar.pd"
              case 's':	 // 1 string to match.
                return Intrinsic::x86_avx_vpermilvar_ps;	 // "86.avx.vpermilvar.ps"
              }
              break;
            case 't':	 // 4 strings to match.
              if (memcmp(NameR.data()+9, "est", 3))
                break;
              switch (NameR[12]) {
              default: break;
              case 'c':	 // 2 strings to match.
                if (memcmp(NameR.data()+13, ".p", 2))
                  break;
                switch (NameR[15]) {
                default: break;
                case 'd':	 // 1 string to match.
                  if (memcmp(NameR.data()+16, ".256", 4))
                    break;
                  return Intrinsic::x86_avx_vtestc_pd_256;	 // "86.avx.vtestc.pd.256"
                case 's':	 // 1 string to match.
                  if (memcmp(NameR.data()+16, ".256", 4))
                    break;
                  return Intrinsic::x86_avx_vtestc_ps_256;	 // "86.avx.vtestc.ps.256"
                }
                break;
              case 'z':	 // 2 strings to match.
                if (memcmp(NameR.data()+13, ".p", 2))
                  break;
                switch (NameR[15]) {
                default: break;
                case 'd':	 // 1 string to match.
                  if (memcmp(NameR.data()+16, ".256", 4))
                    break;
                  return Intrinsic::x86_avx_vtestz_pd_256;	 // "86.avx.vtestz.pd.256"
                case 's':	 // 1 string to match.
                  if (memcmp(NameR.data()+16, ".256", 4))
                    break;
                  return Intrinsic::x86_avx_vtestz_ps_256;	 // "86.avx.vtestz.ps.256"
                }
                break;
              }
              break;
            }
            break;
          }
          break;
        case '2':	 // 1 string to match.
          if (memcmp(NameR.data()+7, ".vextracti128", 13))
            break;
          return Intrinsic::x86_avx2_vextracti128;	 // "86.avx2.vextracti128"
        }
        break;
      case 'f':	 // 4 strings to match.
        if (memcmp(NameR.data()+4, "ma.vfm", 6))
          break;
        switch (NameR[10]) {
        default: break;
        case 'a':	 // 2 strings to match.
          if (memcmp(NameR.data()+11, "dd.p", 4))
            break;
          switch (NameR[15]) {
          default: break;
          case 'd':	 // 1 string to match.
            if (memcmp(NameR.data()+16, ".256", 4))
              break;
            return Intrinsic::x86_fma_vfmadd_pd_256;	 // "86.fma.vfmadd.pd.256"
          case 's':	 // 1 string to match.
            if (memcmp(NameR.data()+16, ".256", 4))
              break;
            return Intrinsic::x86_fma_vfmadd_ps_256;	 // "86.fma.vfmadd.ps.256"
          }
          break;
        case 's':	 // 2 strings to match.
          if (memcmp(NameR.data()+11, "ub.p", 4))
            break;
          switch (NameR[15]) {
          default: break;
          case 'd':	 // 1 string to match.
            if (memcmp(NameR.data()+16, ".256", 4))
              break;
            return Intrinsic::x86_fma_vfmsub_pd_256;	 // "86.fma.vfmsub.pd.256"
          case 's':	 // 1 string to match.
            if (memcmp(NameR.data()+16, ".256", 4))
              break;
            return Intrinsic::x86_fma_vfmsub_ps_256;	 // "86.fma.vfmsub.ps.256"
          }
          break;
        }
        break;
      case 's':	 // 16 strings to match.
        if (NameR[4] != 's')
          break;
        switch (NameR[5]) {
        default: break;
        case 'e':	 // 7 strings to match.
          switch (NameR[6]) {
          default: break;
          case '2':	 // 4 strings to match.
            if (memcmp(NameR.data()+7, ".p", 2))
              break;
            switch (NameR[9]) {
            default: break;
            case 'a':	 // 3 strings to match.
              if (memcmp(NameR.data()+10, "ck", 2))
                break;
              switch (NameR[12]) {
              default: break;
              case 's':	 // 2 strings to match.
                if (NameR[13] != 's')
                  break;
                switch (NameR[14]) {
                default: break;
                case 'd':	 // 1 string to match.
                  if (memcmp(NameR.data()+15, "w.128", 5))
                    break;
                  return Intrinsic::x86_sse2_packssdw_128;	 // "86.sse2.packssdw.128"
                case 'w':	 // 1 string to match.
                  if (memcmp(NameR.data()+15, "b.128", 5))
                    break;
                  return Intrinsic::x86_sse2_packsswb_128;	 // "86.sse2.packsswb.128"
                }
                break;
              case 'u':	 // 1 string to match.
                if (memcmp(NameR.data()+13, "swb.128", 7))
                  break;
                return Intrinsic::x86_sse2_packuswb_128;	 // "86.sse2.packuswb.128"
              }
              break;
            case 'm':	 // 1 string to match.
              if (memcmp(NameR.data()+10, "ovmskb.128", 10))
                break;
              return Intrinsic::x86_sse2_pmovmskb_128;	 // "86.sse2.pmovmskb.128"
            }
            break;
          case '4':	 // 3 strings to match.
            if (memcmp(NameR.data()+7, "2.crc32.", 8))
              break;
            switch (NameR[15]) {
            default: break;
            case '3':	 // 2 strings to match.
              if (memcmp(NameR.data()+16, "2.", 2))
                break;
              switch (NameR[18]) {
              default: break;
              case '1':	 // 1 string to match.
                if (NameR[19] != '6')
                  break;
                return Intrinsic::x86_sse42_crc32_32_16;	 // "86.sse42.crc32.32.16"
              case '3':	 // 1 string to match.
                if (NameR[19] != '2')
                  break;
                return Intrinsic::x86_sse42_crc32_32_32;	 // "86.sse42.crc32.32.32"
              }
              break;
            case '6':	 // 1 string to match.
              if (memcmp(NameR.data()+16, "4.64", 4))
                break;
              return Intrinsic::x86_sse42_crc32_64_64;	 // "86.sse42.crc32.64.64"
            }
            break;
          }
          break;
        case 's':	 // 9 strings to match.
          if (memcmp(NameR.data()+6, "e3.p", 4))
            break;
          switch (NameR[10]) {
          default: break;
          case 'h':	 // 4 strings to match.
            switch (NameR[11]) {
            default: break;
            case 'a':	 // 2 strings to match.
              if (memcmp(NameR.data()+12, "dd.", 3))
                break;
              switch (NameR[15]) {
              default: break;
              case 'd':	 // 1 string to match.
                if (memcmp(NameR.data()+16, ".128", 4))
                  break;
                return Intrinsic::x86_ssse3_phadd_d_128;	 // "86.ssse3.phadd.d.128"
              case 'w':	 // 1 string to match.
                if (memcmp(NameR.data()+16, ".128", 4))
                  break;
                return Intrinsic::x86_ssse3_phadd_w_128;	 // "86.ssse3.phadd.w.128"
              }
              break;
            case 's':	 // 2 strings to match.
              if (memcmp(NameR.data()+12, "ub.", 3))
                break;
              switch (NameR[15]) {
              default: break;
              case 'd':	 // 1 string to match.
                if (memcmp(NameR.data()+16, ".128", 4))
                  break;
                return Intrinsic::x86_ssse3_phsub_d_128;	 // "86.ssse3.phsub.d.128"
              case 'w':	 // 1 string to match.
                if (memcmp(NameR.data()+16, ".128", 4))
                  break;
                return Intrinsic::x86_ssse3_phsub_w_128;	 // "86.ssse3.phsub.w.128"
              }
              break;
            }
            break;
          case 'm':	 // 1 string to match.
            if (memcmp(NameR.data()+11, "add.ub.sw", 9))
              break;
            return Intrinsic::x86_ssse3_pmadd_ub_sw;	 // "86.ssse3.pmadd.ub.sw"
          case 's':	 // 4 strings to match.
            switch (NameR[11]) {
            default: break;
            case 'h':	 // 1 string to match.
              if (memcmp(NameR.data()+12, "uf.b.128", 8))
                break;
              return Intrinsic::x86_ssse3_pshuf_b_128;	 // "86.ssse3.pshuf.b.128"
            case 'i':	 // 3 strings to match.
              if (memcmp(NameR.data()+12, "gn.", 3))
                break;
              switch (NameR[15]) {
              default: break;
              case 'b':	 // 1 string to match.
                if (memcmp(NameR.data()+16, ".128", 4))
                  break;
                return Intrinsic::x86_ssse3_psign_b_128;	 // "86.ssse3.psign.b.128"
              case 'd':	 // 1 string to match.
                if (memcmp(NameR.data()+16, ".128", 4))
                  break;
                return Intrinsic::x86_ssse3_psign_d_128;	 // "86.ssse3.psign.d.128"
              case 'w':	 // 1 string to match.
                if (memcmp(NameR.data()+16, ".128", 4))
                  break;
                return Intrinsic::x86_ssse3_psign_w_128;	 // "86.ssse3.psign.w.128"
              }
              break;
            }
            break;
          }
          break;
        }
        break;
      }
      break;
    case 21:	 // 16 strings to match.
      if (memcmp(NameR.data()+0, "86.", 3))
        break;
      switch (NameR[3]) {
      default: break;
      case 'a':	 // 4 strings to match.
        if (memcmp(NameR.data()+4, "vx.cvt", 6))
          break;
        switch (NameR[10]) {
        default: break;
        case '.':	 // 2 strings to match.
          if (NameR[11] != 'p')
            break;
          switch (NameR[12]) {
          default: break;
          case 'd':	 // 1 string to match.
            if (memcmp(NameR.data()+13, "2.ps.256", 8))
              break;
            return Intrinsic::x86_avx_cvt_pd2_ps_256;	 // "86.avx.cvt.pd2.ps.256"
          case 's':	 // 1 string to match.
            if (memcmp(NameR.data()+13, "2.pd.256", 8))
              break;
            return Intrinsic::x86_avx_cvt_ps2_pd_256;	 // "86.avx.cvt.ps2.pd.256"
          }
          break;
        case 't':	 // 2 strings to match.
          if (memcmp(NameR.data()+11, ".p", 2))
            break;
          switch (NameR[13]) {
          default: break;
          case 'd':	 // 1 string to match.
            if (memcmp(NameR.data()+14, "2dq.256", 7))
              break;
            return Intrinsic::x86_avx_cvtt_pd2dq_256;	 // "86.avx.cvtt.pd2dq.256"
          case 's':	 // 1 string to match.
            if (memcmp(NameR.data()+14, "2dq.256", 7))
              break;
            return Intrinsic::x86_avx_cvtt_ps2dq_256;	 // "86.avx.cvtt.ps2dq.256"
          }
          break;
        }
        break;
      case 'f':	 // 4 strings to match.
        if (memcmp(NameR.data()+4, "ma.vfnm", 7))
          break;
        switch (NameR[11]) {
        default: break;
        case 'a':	 // 2 strings to match.
          if (memcmp(NameR.data()+12, "dd.p", 4))
            break;
          switch (NameR[16]) {
          default: break;
          case 'd':	 // 1 string to match.
            if (memcmp(NameR.data()+17, ".256", 4))
              break;
            return Intrinsic::x86_fma_vfnmadd_pd_256;	 // "86.fma.vfnmadd.pd.256"
          case 's':	 // 1 string to match.
            if (memcmp(NameR.data()+17, ".256", 4))
              break;
            return Intrinsic::x86_fma_vfnmadd_ps_256;	 // "86.fma.vfnmadd.ps.256"
          }
          break;
        case 's':	 // 2 strings to match.
          if (memcmp(NameR.data()+12, "ub.p", 4))
            break;
          switch (NameR[16]) {
          default: break;
          case 'd':	 // 1 string to match.
            if (memcmp(NameR.data()+17, ".256", 4))
              break;
            return Intrinsic::x86_fma_vfnmsub_pd_256;	 // "86.fma.vfnmsub.pd.256"
          case 's':	 // 1 string to match.
            if (memcmp(NameR.data()+17, ".256", 4))
              break;
            return Intrinsic::x86_fma_vfnmsub_ps_256;	 // "86.fma.vfnmsub.ps.256"
          }
          break;
        }
        break;
      case 's':	 // 6 strings to match.
        if (NameR[4] != 's')
          break;
        switch (NameR[5]) {
        default: break;
        case 'e':	 // 4 strings to match.
          if (memcmp(NameR.data()+6, "42.pcmp", 7))
            break;
          switch (NameR[13]) {
          default: break;
          case 'e':	 // 2 strings to match.
            if (memcmp(NameR.data()+14, "str", 3))
              break;
            switch (NameR[17]) {
            default: break;
            case 'i':	 // 1 string to match.
              if (memcmp(NameR.data()+18, "128", 3))
                break;
              return Intrinsic::x86_sse42_pcmpestri128;	 // "86.sse42.pcmpestri128"
            case 'm':	 // 1 string to match.
              if (memcmp(NameR.data()+18, "128", 3))
                break;
              return Intrinsic::x86_sse42_pcmpestrm128;	 // "86.sse42.pcmpestrm128"
            }
            break;
          case 'i':	 // 2 strings to match.
            if (memcmp(NameR.data()+14, "str", 3))
              break;
            switch (NameR[17]) {
            default: break;
            case 'i':	 // 1 string to match.
              if (memcmp(NameR.data()+18, "128", 3))
                break;
              return Intrinsic::x86_sse42_pcmpistri128;	 // "86.sse42.pcmpistri128"
            case 'm':	 // 1 string to match.
              if (memcmp(NameR.data()+18, "128", 3))
                break;
              return Intrinsic::x86_sse42_pcmpistrm128;	 // "86.sse42.pcmpistrm128"
            }
            break;
          }
          break;
        case 's':	 // 2 strings to match.
          if (memcmp(NameR.data()+6, "e3.ph", 5))
            break;
          switch (NameR[11]) {
          default: break;
          case 'a':	 // 1 string to match.
            if (memcmp(NameR.data()+12, "dd.sw.128", 9))
              break;
            return Intrinsic::x86_ssse3_phadd_sw_128;	 // "86.ssse3.phadd.sw.128"
          case 's':	 // 1 string to match.
            if (memcmp(NameR.data()+12, "ub.sw.128", 9))
              break;
            return Intrinsic::x86_ssse3_phsub_sw_128;	 // "86.ssse3.phsub.sw.128"
          }
          break;
        }
        break;
      case 'x':	 // 2 strings to match.
        if (memcmp(NameR.data()+4, "op.vpermil2p", 12))
          break;
        switch (NameR[16]) {
        default: break;
        case 'd':	 // 1 string to match.
          if (memcmp(NameR.data()+17, ".256", 4))
            break;
          return Intrinsic::x86_xop_vpermil2pd_256;	 // "86.xop.vpermil2pd.256"
        case 's':	 // 1 string to match.
          if (memcmp(NameR.data()+17, ".256", 4))
            break;
          return Intrinsic::x86_xop_vpermil2ps_256;	 // "86.xop.vpermil2ps.256"
        }
        break;
      }
      break;
    case 22:	 // 21 strings to match.
      if (memcmp(NameR.data()+0, "86.", 3))
        break;
      switch (NameR[3]) {
      default: break;
      case 'a':	 // 11 strings to match.
        if (memcmp(NameR.data()+4, "vx", 2))
          break;
        switch (NameR[6]) {
        default: break;
        case '.':	 // 4 strings to match.
          switch (NameR[7]) {
          default: break;
          case 'm':	 // 2 strings to match.
            if (memcmp(NameR.data()+8, "askload.p", 9))
              break;
            switch (NameR[17]) {
            default: break;
            case 'd':	 // 1 string to match.
              if (memcmp(NameR.data()+18, ".256", 4))
                break;
              return Intrinsic::x86_avx_maskload_pd_256;	 // "86.avx.maskload.pd.256"
            case 's':	 // 1 string to match.
              if (memcmp(NameR.data()+18, ".256", 4))
                break;
              return Intrinsic::x86_avx_maskload_ps_256;	 // "86.avx.maskload.ps.256"
            }
            break;
          case 'v':	 // 2 strings to match.
            if (memcmp(NameR.data()+8, "testnzc.p", 9))
              break;
            switch (NameR[17]) {
            default: break;
            case 'd':	 // 1 string to match.
              if (memcmp(NameR.data()+18, ".256", 4))
                break;
              return Intrinsic::x86_avx_vtestnzc_pd_256;	 // "86.avx.vtestnzc.pd.256"
            case 's':	 // 1 string to match.
              if (memcmp(NameR.data()+18, ".256", 4))
                break;
              return Intrinsic::x86_avx_vtestnzc_ps_256;	 // "86.avx.vtestnzc.ps.256"
            }
            break;
          }
          break;
        case '2':	 // 7 strings to match.
          if (NameR[7] != '.')
            break;
          switch (NameR[8]) {
          default: break;
          case 'g':	 // 4 strings to match.
            if (memcmp(NameR.data()+9, "ather.", 6))
              break;
            switch (NameR[15]) {
            default: break;
            case 'd':	 // 2 strings to match.
              if (NameR[16] != '.')
                break;
              switch (NameR[17]) {
              default: break;
              case 'd':	 // 1 string to match.
                if (memcmp(NameR.data()+18, ".256", 4))
                  break;
                return Intrinsic::x86_avx2_gather_d_d_256;	 // "86.avx2.gather.d.d.256"
              case 'q':	 // 1 string to match.
                if (memcmp(NameR.data()+18, ".256", 4))
                  break;
                return Intrinsic::x86_avx2_gather_d_q_256;	 // "86.avx2.gather.d.q.256"
              }
              break;
            case 'q':	 // 2 strings to match.
              if (NameR[16] != '.')
                break;
              switch (NameR[17]) {
              default: break;
              case 'd':	 // 1 string to match.
                if (memcmp(NameR.data()+18, ".256", 4))
                  break;
                return Intrinsic::x86_avx2_gather_q_d_256;	 // "86.avx2.gather.q.d.256"
              case 'q':	 // 1 string to match.
                if (memcmp(NameR.data()+18, ".256", 4))
                  break;
                return Intrinsic::x86_avx2_gather_q_q_256;	 // "86.avx2.gather.q.q.256"
              }
              break;
            }
            break;
          case 'm':	 // 2 strings to match.
            if (memcmp(NameR.data()+9, "askload.", 8))
              break;
            switch (NameR[17]) {
            default: break;
            case 'd':	 // 1 string to match.
              if (memcmp(NameR.data()+18, ".256", 4))
                break;
              return Intrinsic::x86_avx2_maskload_d_256;	 // "86.avx2.maskload.d.256"
            case 'q':	 // 1 string to match.
              if (memcmp(NameR.data()+18, ".256", 4))
                break;
              return Intrinsic::x86_avx2_maskload_q_256;	 // "86.avx2.maskload.q.256"
            }
            break;
          case 'v':	 // 1 string to match.
            if (memcmp(NameR.data()+9, "broadcasti128", 13))
              break;
            return Intrinsic::x86_avx2_vbroadcasti128;	 // "86.avx2.vbroadcasti128"
          }
          break;
        }
        break;
      case 's':	 // 10 strings to match.
        if (memcmp(NameR.data()+4, "se42.pcmp", 9))
          break;
        switch (NameR[13]) {
        default: break;
        case 'e':	 // 5 strings to match.
          if (memcmp(NameR.data()+14, "stri", 4))
            break;
          switch (NameR[18]) {
          default: break;
          case 'a':	 // 1 string to match.
            if (memcmp(NameR.data()+19, "128", 3))
              break;
            return Intrinsic::x86_sse42_pcmpestria128;	 // "86.sse42.pcmpestria128"
          case 'c':	 // 1 string to match.
            if (memcmp(NameR.data()+19, "128", 3))
              break;
            return Intrinsic::x86_sse42_pcmpestric128;	 // "86.sse42.pcmpestric128"
          case 'o':	 // 1 string to match.
            if (memcmp(NameR.data()+19, "128", 3))
              break;
            return Intrinsic::x86_sse42_pcmpestrio128;	 // "86.sse42.pcmpestrio128"
          case 's':	 // 1 string to match.
            if (memcmp(NameR.data()+19, "128", 3))
              break;
            return Intrinsic::x86_sse42_pcmpestris128;	 // "86.sse42.pcmpestris128"
          case 'z':	 // 1 string to match.
            if (memcmp(NameR.data()+19, "128", 3))
              break;
            return Intrinsic::x86_sse42_pcmpestriz128;	 // "86.sse42.pcmpestriz128"
          }
          break;
        case 'i':	 // 5 strings to match.
          if (memcmp(NameR.data()+14, "stri", 4))
            break;
          switch (NameR[18]) {
          default: break;
          case 'a':	 // 1 string to match.
            if (memcmp(NameR.data()+19, "128", 3))
              break;
            return Intrinsic::x86_sse42_pcmpistria128;	 // "86.sse42.pcmpistria128"
          case 'c':	 // 1 string to match.
            if (memcmp(NameR.data()+19, "128", 3))
              break;
            return Intrinsic::x86_sse42_pcmpistric128;	 // "86.sse42.pcmpistric128"
          case 'o':	 // 1 string to match.
            if (memcmp(NameR.data()+19, "128", 3))
              break;
            return Intrinsic::x86_sse42_pcmpistrio128;	 // "86.sse42.pcmpistrio128"
          case 's':	 // 1 string to match.
            if (memcmp(NameR.data()+19, "128", 3))
              break;
            return Intrinsic::x86_sse42_pcmpistris128;	 // "86.sse42.pcmpistris128"
          case 'z':	 // 1 string to match.
            if (memcmp(NameR.data()+19, "128", 3))
              break;
            return Intrinsic::x86_sse42_pcmpistriz128;	 // "86.sse42.pcmpistriz128"
          }
          break;
        }
        break;
      }
      break;
    case 23:	 // 21 strings to match.
      if (memcmp(NameR.data()+0, "86.", 3))
        break;
      switch (NameR[3]) {
      default: break;
      case 'a':	 // 16 strings to match.
        if (memcmp(NameR.data()+4, "vx", 2))
          break;
        switch (NameR[6]) {
        default: break;
        case '.':	 // 2 strings to match.
          if (memcmp(NameR.data()+7, "maskstore.p", 11))
            break;
          switch (NameR[18]) {
          default: break;
          case 'd':	 // 1 string to match.
            if (memcmp(NameR.data()+19, ".256", 4))
              break;
            return Intrinsic::x86_avx_maskstore_pd_256;	 // "86.avx.maskstore.pd.256"
          case 's':	 // 1 string to match.
            if (memcmp(NameR.data()+19, ".256", 4))
              break;
            return Intrinsic::x86_avx_maskstore_ps_256;	 // "86.avx.maskstore.ps.256"
          }
          break;
        case '2':	 // 14 strings to match.
          if (NameR[7] != '.')
            break;
          switch (NameR[8]) {
          default: break;
          case 'g':	 // 4 strings to match.
            if (memcmp(NameR.data()+9, "ather.", 6))
              break;
            switch (NameR[15]) {
            default: break;
            case 'd':	 // 2 strings to match.
              if (memcmp(NameR.data()+16, ".p", 2))
                break;
              switch (NameR[18]) {
              default: break;
              case 'd':	 // 1 string to match.
                if (memcmp(NameR.data()+19, ".256", 4))
                  break;
                return Intrinsic::x86_avx2_gather_d_pd_256;	 // "86.avx2.gather.d.pd.256"
              case 's':	 // 1 string to match.
                if (memcmp(NameR.data()+19, ".256", 4))
                  break;
                return Intrinsic::x86_avx2_gather_d_ps_256;	 // "86.avx2.gather.d.ps.256"
              }
              break;
            case 'q':	 // 2 strings to match.
              if (memcmp(NameR.data()+16, ".p", 2))
                break;
              switch (NameR[18]) {
              default: break;
              case 'd':	 // 1 string to match.
                if (memcmp(NameR.data()+19, ".256", 4))
                  break;
                return Intrinsic::x86_avx2_gather_q_pd_256;	 // "86.avx2.gather.q.pd.256"
              case 's':	 // 1 string to match.
                if (memcmp(NameR.data()+19, ".256", 4))
                  break;
                return Intrinsic::x86_avx2_gather_q_ps_256;	 // "86.avx2.gather.q.ps.256"
              }
              break;
            }
            break;
          case 'm':	 // 2 strings to match.
            if (memcmp(NameR.data()+9, "askstore.", 9))
              break;
            switch (NameR[18]) {
            default: break;
            case 'd':	 // 1 string to match.
              if (memcmp(NameR.data()+19, ".256", 4))
                break;
              return Intrinsic::x86_avx2_maskstore_d_256;	 // "86.avx2.maskstore.d.256"
            case 'q':	 // 1 string to match.
              if (memcmp(NameR.data()+19, ".256", 4))
                break;
              return Intrinsic::x86_avx2_maskstore_q_256;	 // "86.avx2.maskstore.q.256"
            }
            break;
          case 'p':	 // 8 strings to match.
            if (memcmp(NameR.data()+9, "broadcast", 9))
              break;
            switch (NameR[18]) {
            default: break;
            case 'b':	 // 2 strings to match.
              if (NameR[19] != '.')
                break;
              switch (NameR[20]) {
              default: break;
              case '1':	 // 1 string to match.
                if (memcmp(NameR.data()+21, "28", 2))
                  break;
                return Intrinsic::x86_avx2_pbroadcastb_128;	 // "86.avx2.pbroadcastb.128"
              case '2':	 // 1 string to match.
                if (memcmp(NameR.data()+21, "56", 2))
                  break;
                return Intrinsic::x86_avx2_pbroadcastb_256;	 // "86.avx2.pbroadcastb.256"
              }
              break;
            case 'd':	 // 2 strings to match.
              if (NameR[19] != '.')
                break;
              switch (NameR[20]) {
              default: break;
              case '1':	 // 1 string to match.
                if (memcmp(NameR.data()+21, "28", 2))
                  break;
                return Intrinsic::x86_avx2_pbroadcastd_128;	 // "86.avx2.pbroadcastd.128"
              case '2':	 // 1 string to match.
                if (memcmp(NameR.data()+21, "56", 2))
                  break;
                return Intrinsic::x86_avx2_pbroadcastd_256;	 // "86.avx2.pbroadcastd.256"
              }
              break;
            case 'q':	 // 2 strings to match.
              if (NameR[19] != '.')
                break;
              switch (NameR[20]) {
              default: break;
              case '1':	 // 1 string to match.
                if (memcmp(NameR.data()+21, "28", 2))
                  break;
                return Intrinsic::x86_avx2_pbroadcastq_128;	 // "86.avx2.pbroadcastq.128"
              case '2':	 // 1 string to match.
                if (memcmp(NameR.data()+21, "56", 2))
                  break;
                return Intrinsic::x86_avx2_pbroadcastq_256;	 // "86.avx2.pbroadcastq.256"
              }
              break;
            case 'w':	 // 2 strings to match.
              if (NameR[19] != '.')
                break;
              switch (NameR[20]) {
              default: break;
              case '1':	 // 1 string to match.
                if (memcmp(NameR.data()+21, "28", 2))
                  break;
                return Intrinsic::x86_avx2_pbroadcastw_128;	 // "86.avx2.pbroadcastw.128"
              case '2':	 // 1 string to match.
                if (memcmp(NameR.data()+21, "56", 2))
                  break;
                return Intrinsic::x86_avx2_pbroadcastw_256;	 // "86.avx2.pbroadcastw.256"
              }
              break;
            }
            break;
          }
          break;
        }
        break;
      case 'f':	 // 4 strings to match.
        if (memcmp(NameR.data()+4, "ma.vfm", 6))
          break;
        switch (NameR[10]) {
        default: break;
        case 'a':	 // 2 strings to match.
          if (memcmp(NameR.data()+11, "ddsub.p", 7))
            break;
          switch (NameR[18]) {
          default: break;
          case 'd':	 // 1 string to match.
            if (memcmp(NameR.data()+19, ".256", 4))
              break;
            return Intrinsic::x86_fma_vfmaddsub_pd_256;	 // "86.fma.vfmaddsub.pd.256"
          case 's':	 // 1 string to match.
            if (memcmp(NameR.data()+19, ".256", 4))
              break;
            return Intrinsic::x86_fma_vfmaddsub_ps_256;	 // "86.fma.vfmaddsub.ps.256"
          }
          break;
        case 's':	 // 2 strings to match.
          if (memcmp(NameR.data()+11, "ubadd.p", 7))
            break;
          switch (NameR[18]) {
          default: break;
          case 'd':	 // 1 string to match.
            if (memcmp(NameR.data()+19, ".256", 4))
              break;
            return Intrinsic::x86_fma_vfmsubadd_pd_256;	 // "86.fma.vfmsubadd.pd.256"
          case 's':	 // 1 string to match.
            if (memcmp(NameR.data()+19, ".256", 4))
              break;
            return Intrinsic::x86_fma_vfmsubadd_ps_256;	 // "86.fma.vfmsubadd.ps.256"
          }
          break;
        }
        break;
      case 's':	 // 1 string to match.
        if (memcmp(NameR.data()+4, "sse3.pmul.hr.sw.128", 19))
          break;
        return Intrinsic::x86_ssse3_pmul_hr_sw_128;	 // "86.ssse3.pmul.hr.sw.128"
      }
      break;
    case 24:	 // 10 strings to match.
      if (memcmp(NameR.data()+0, "86.", 3))
        break;
      switch (NameR[3]) {
      default: break;
      case 'a':	 // 9 strings to match.
        switch (NameR[4]) {
        default: break;
        case 'e':	 // 1 string to match.
          if (memcmp(NameR.data()+5, "sni.aeskeygenassist", 19))
            break;
          return Intrinsic::x86_aesni_aeskeygenassist;	 // "86.aesni.aeskeygenassist"
        case 'v':	 // 8 strings to match.
          if (NameR[5] != 'x')
            break;
          switch (NameR[6]) {
          default: break;
          case '.':	 // 7 strings to match.
            if (NameR[7] != 'v')
              break;
            switch (NameR[8]) {
            default: break;
            case 'b':	 // 2 strings to match.
              if (memcmp(NameR.data()+9, "roadcast.s", 10))
                break;
              switch (NameR[19]) {
              default: break;
              case 'd':	 // 1 string to match.
                if (memcmp(NameR.data()+20, ".256", 4))
                  break;
                return Intrinsic::x86_avx_vbroadcast_sd_256;	 // "86.avx.vbroadcast.sd.256"
              case 's':	 // 1 string to match.
                if (memcmp(NameR.data()+20, ".256", 4))
                  break;
                return Intrinsic::x86_avx_vbroadcast_ss_256;	 // "86.avx.vbroadcast.ss.256"
              }
              break;
            case 'p':	 // 5 strings to match.
              if (memcmp(NameR.data()+9, "erm", 3))
                break;
              switch (NameR[12]) {
              default: break;
              case '2':	 // 3 strings to match.
                if (memcmp(NameR.data()+13, "f128.", 5))
                  break;
                switch (NameR[18]) {
                default: break;
                case 'p':	 // 2 strings to match.
                  switch (NameR[19]) {
                  default: break;
                  case 'd':	 // 1 string to match.
                    if (memcmp(NameR.data()+20, ".256", 4))
                      break;
                    return Intrinsic::x86_avx_vperm2f128_pd_256;	 // "86.avx.vperm2f128.pd.256"
                  case 's':	 // 1 string to match.
                    if (memcmp(NameR.data()+20, ".256", 4))
                      break;
                    return Intrinsic::x86_avx_vperm2f128_ps_256;	 // "86.avx.vperm2f128.ps.256"
                  }
                  break;
                case 's':	 // 1 string to match.
                  if (memcmp(NameR.data()+19, "i.256", 5))
                    break;
                  return Intrinsic::x86_avx_vperm2f128_si_256;	 // "86.avx.vperm2f128.si.256"
                }
                break;
              case 'i':	 // 2 strings to match.
                if (memcmp(NameR.data()+13, "lvar.p", 6))
                  break;
                switch (NameR[19]) {
                default: break;
                case 'd':	 // 1 string to match.
                  if (memcmp(NameR.data()+20, ".256", 4))
                    break;
                  return Intrinsic::x86_avx_vpermilvar_pd_256;	 // "86.avx.vpermilvar.pd.256"
                case 's':	 // 1 string to match.
                  if (memcmp(NameR.data()+20, ".256", 4))
                    break;
                  return Intrinsic::x86_avx_vpermilvar_ps_256;	 // "86.avx.vpermilvar.ps.256"
                }
                break;
              }
              break;
            }
            break;
          case '2':	 // 1 string to match.
            if (memcmp(NameR.data()+7, ".vbroadcast.ss.ps", 17))
              break;
            return Intrinsic::x86_avx2_vbroadcast_ss_ps;	 // "86.avx2.vbroadcast.ss.ps"
          }
          break;
        }
        break;
      case 's':	 // 1 string to match.
        if (memcmp(NameR.data()+4, "sse3.pmadd.ub.sw.128", 20))
          break;
        return Intrinsic::x86_ssse3_pmadd_ub_sw_128;	 // "86.ssse3.pmadd.ub.sw.128"
      }
      break;
    case 25:	 // 3 strings to match.
      if (memcmp(NameR.data()+0, "86.avx.vinsertf128.", 19))
        break;
      switch (NameR[19]) {
      default: break;
      case 'p':	 // 2 strings to match.
        switch (NameR[20]) {
        default: break;
        case 'd':	 // 1 string to match.
          if (memcmp(NameR.data()+21, ".256", 4))
            break;
          return Intrinsic::x86_avx_vinsertf128_pd_256;	 // "86.avx.vinsertf128.pd.256"
        case 's':	 // 1 string to match.
          if (memcmp(NameR.data()+21, ".256", 4))
            break;
          return Intrinsic::x86_avx_vinsertf128_ps_256;	 // "86.avx.vinsertf128.ps.256"
        }
        break;
      case 's':	 // 1 string to match.
        if (memcmp(NameR.data()+20, "i.256", 5))
          break;
        return Intrinsic::x86_avx_vinsertf128_si_256;	 // "86.avx.vinsertf128.si.256"
      }
      break;
    case 26:	 // 3 strings to match.
      if (memcmp(NameR.data()+0, "86.avx.vextractf128.", 20))
        break;
      switch (NameR[20]) {
      default: break;
      case 'p':	 // 2 strings to match.
        switch (NameR[21]) {
        default: break;
        case 'd':	 // 1 string to match.
          if (memcmp(NameR.data()+22, ".256", 4))
            break;
          return Intrinsic::x86_avx_vextractf128_pd_256;	 // "86.avx.vextractf128.pd.256"
        case 's':	 // 1 string to match.
          if (memcmp(NameR.data()+22, ".256", 4))
            break;
          return Intrinsic::x86_avx_vextractf128_ps_256;	 // "86.avx.vextractf128.ps.256"
        }
        break;
      case 's':	 // 1 string to match.
        if (memcmp(NameR.data()+21, "i.256", 5))
          break;
        return Intrinsic::x86_avx_vextractf128_si_256;	 // "86.avx.vextractf128.si.256"
      }
      break;
    case 28:	 // 4 strings to match.
      if (memcmp(NameR.data()+0, "86.avx", 6))
        break;
      switch (NameR[6]) {
      default: break;
      case '.':	 // 2 strings to match.
        if (memcmp(NameR.data()+7, "vbroadcastf128.p", 16))
          break;
        switch (NameR[23]) {
        default: break;
        case 'd':	 // 1 string to match.
          if (memcmp(NameR.data()+24, ".256", 4))
            break;
          return Intrinsic::x86_avx_vbroadcastf128_pd_256;	 // "86.avx.vbroadcastf128.pd.256"
        case 's':	 // 1 string to match.
          if (memcmp(NameR.data()+24, ".256", 4))
            break;
          return Intrinsic::x86_avx_vbroadcastf128_ps_256;	 // "86.avx.vbroadcastf128.ps.256"
        }
        break;
      case '2':	 // 2 strings to match.
        if (memcmp(NameR.data()+7, ".vbroadcast.s", 13))
          break;
        switch (NameR[20]) {
        default: break;
        case 'd':	 // 1 string to match.
          if (memcmp(NameR.data()+21, ".pd.256", 7))
            break;
          return Intrinsic::x86_avx2_vbroadcast_sd_pd_256;	 // "86.avx2.vbroadcast.sd.pd.256"
        case 's':	 // 1 string to match.
          if (memcmp(NameR.data()+21, ".ps.256", 7))
            break;
          return Intrinsic::x86_avx2_vbroadcast_ss_ps_256;	 // "86.avx2.vbroadcast.ss.ps.256"
        }
        break;
      }
      break;
    }
    break;  // end of 'x' case.
  }
#endif

// Global intrinsic function declaration type table.
#ifdef GET_INTRINSIC_GENERATOR_GLOBAL
static const unsigned IIT_Table[] = {
  0x2E2E, (1U<<31) | 310, 0x4444440, 0x4444440, 0x4, (1U<<31) | 276, 0x4444440, 
  0x4444440, 0x444440, 0x444440, 0x444444, 0x444444, 0x2F2F2F, 0x2F2F2F, 0x2F2F, 
  0x686848, 0x696949, 0x686848, 0x696949, (1U<<31) | 294, 0x2F2F2F2F, 0x2F2F, 0x2F2F, 
  0x2F2F, 0x45F0F, 0x45F0F, 0x6939, 0x44F1F, 0x44F1F, 0x3969, 0x2F2F2F, 
  0x2F2F2F, 0x2F2F2F, 0x2F2F2F, 0x42E2F, (1U<<31) | 354, (1U<<31) | 401, (1U<<31) | 343, (1U<<31) | 427, 
  (1U<<31) | 330, (1U<<31) | 459, 0x2F2F2F, 0x2F2F2F, 0x2F2F2F, 0x2F2F2F, (1U<<31) | 303, (1U<<31) | 303, 
  (1U<<31) | 303, 0x2F2F2F, 0x6F2F2F, 0x6F2F2F, 0x2F2F2F, 0x6F2F, 0x6F2F, 0x2F2F2F, 
  0x2F2F2F, 0x2F2F2F, 0x2F2F2F, 0x2F2F, 0x2F2F2F, 0x2F2F2F, (1U<<31) | 301, (1U<<31) | 301, 
  0x2F2F2F, (1U<<31) | 303, (1U<<31) | 289, (1U<<31) | 289, (1U<<31) | 289, 0x2F2F, 0x2F2F2F, (1U<<31) | 294, 
  (1U<<31) | 294, (1U<<31) | 294, 0x2F2F2F, 0x2F2F2F, (1U<<31) | 294, (1U<<31) | 294, (1U<<31) | 294, 0x2F2F2F, 
  0x2F2F2F, 0x2F2F2F, 0x2F2F2F, 0x2F2F2F, (1U<<31) | 294, 0x2F2F, 0x2F2F2F, 0x2F2F2F, 
  0x2F2F2F, (1U<<31) | 294, 0x2F2F2F, 0x2F2F2F, 0x2F2F, 0x2F2F2F, (1U<<31) | 294, 0x2F2F2F2F, 
  (1U<<31) | 303, (1U<<31) | 303, (1U<<31) | 294, 0x2F2F2F, 0x2F2F2F, 0x42F2E0, 0x42F2F2E0, (1U<<31) | 391, 
  (1U<<31) | 363, (1U<<31) | 415, (1U<<31) | 374, (1U<<31) | 445, (1U<<31) | 294, 0x2A2A2A, 0x2A2A2A2A, (1U<<31) | 265, 
  (1U<<31) | 263, 0x2A2A2A2A, (1U<<31) | 265, (1U<<31) | 263, (1U<<31) | 261, 0x444, 0x444, 0x40, 
  0x444, 0x2E444, 0x2E, 0x444, 0x1F6, 0x1F6, 0xF0F, 0x36, 
  0x63, 0x445F1F, 0x444F1F, 0x444F1F, 0x445F0F, 0x444F0F, 0x444F0F, 0x445F0F, 
  0x444F0F, 0x444F0F, 0x1F1F, 0x10F0F, 0xF0F, 0x10F0F, 0x0, (1U<<31) | 501, 
  (1U<<31) | 496, 0x0, 0x0, 0x42E, 0x2E40, 0x2E50, 0x40, 0x2E0, 
  0x2E0, 0x2E, 0x2E4, 0x2E4, 0x0, 0x1F1F, 0x1F1F, 0xF0F0F, 
  0x1F1F, 0x1F1F, 0x4, 0x1F1F1F1F, 0x1F1F1F1F, 0x42E, 0x2EE2E2E, 0x2E2EE0, 
  0x2EE2E2E0, 0x44, 0x55, 0x44, 0x444, 0x444, 0x444, 0x444, 
  0x444, 0x444, 0x444, 0x444, 0x444, 0x444, 0x444, 0x444, 
  0x444, 0x444, 0x555, 0x555, 0x444, 0x545, 0x444, 0x444, 
  0x555, 0x44, 0x44, 0x444, 0x444, 0x444, 0x444, 0x445, 
  0x445, 0x444, 0x555, 0x444, 0x555, 0x444, 0x555, 0x444, 
  0x555, 0x44, 0x55, 0x44, 0x44, 0x55, 0x444, 0x444, 
  0x555, 0x54, 0x54, 0x44, 0x44, 0x44, 0x44, 0x444, 
  0x444, 0x444, 0x444, 0x444, 0x444, 0x444, 0x444, 0x444, 
  0x444, 0x444, 0x444, 0x444, 0x555, 0x444, 0x444, 0x444, 
  0x444, 0x444, 0x444, 0x444, 0x444, 0x444, 0x444, 0x444, 
  0x44, 0x44, 0x44, 0x45, 0x44, 0x444, 0x444, 0x55, 
  0x45, 0x44, 0x55, 0x55, 0x55, 0x55, 0x555, 0x555, 
  0x555, 0x555, 0x555, 0x555, 0x555, 0x555, 0x555, 0x555, 
  0x555, 0x555, 0x555, 0x555, 0x555, 0x555, 0x555, 0x555, 
  0x555, 0x555, 0x551, 0x551, 0x551, 0x551, 0x551, 0x551, 
  0x551, 0x551, 0x55, 0x555, 0x555, 0x555, 0x555, 0x555, 
  0x555, 0x555, 0x555, 0x555, 0x555, 0x555, 0x555, 0x555, 
  0x555, 0x555, 0x555, 0x555, 0x555, 0x555, 0x5555, 0x555, 
  0x5555, 0x555, 0x555, 0x555, 0x555, 0x555, 0x555, 0x555, 
  0x555, 0x444, 0x555, 0x44, 0x44, 0x444, 0x555, 0x445, 
  0x445, 0x541, 0x441, 0x441, 0x441, 0x441, 0x441, 0x441, 
  0x441, 0x441, 0x441, 0x441, 0x441, 0x441, 0x445, 0x445, 
  0x444, 0x444, 0x444, 0x444, 0x555, 0x444, 0x444, 0x444, 
  0x444, 0x444, 0x444, 0x444, 0x444, 0x451, 0x551, 0x451, 
  0x551, 0x451, 0x451, 0x451, 0x451, 0x451, 0x451, 0x451, 
  0x451, 0x4555, 0x4555, 0x4555, 0x4555, 0x4555, 0x4555, 0x4555, 
  0x4555, 0x554, 0x41, 0x441, 0x441, 0x41, 0x441, 0x441, 
  0x441, 0x441, 0x441, 0x551, 0x441, 0x441, 0x441, 0x441, 
  0x551, 0x441, 0x441, 0x551, 0x441, 0x441, 0x45, 0x4444, 
  0x4444, 0x4444, 0x4444, 0x41, 0x441, 0x441, 0x41, 0x44, 
  0x41, 0x444, 0x5545, 0x441, 0x4441, 0x4441, 0x4441, 0x4441, 
  0x441, 0x441, 0x441, 0x441, 0x441, 0x441, 0x441, 0x441, 
  0x441, 0x441, 0x441, 0x4441, 0x4441, 0x4441, 0x4441, 0x57, 
  0x56, 0x75, 0x75, 0x76, 0x75, 0x75, 0x74, 0x74, 
  0x74, 0x74, 0x65, 0x65, 0x67, 0x65, 0x65, 0x64, 
  0x64, 0x64, 0x64, 0x57, 0x56, 0x47, 0x46, 0x47, 
  0x46, 0x777, 0x471, 0x771, 0x771, 0x771, 0x771, 0x777, 
  0x777, 0x77, 0x7777, 0x7777, 0x47777, 0x7777, 0x7777, 0x47, 
  0x47, 0x777, 0x777, 0x777, 0x777, 0x666, 0x461, 0x661, 
  0x661, 0x661, 0x661, 0x666, 0x666, 0x66, 0x6666, 0x6666, 
  0x46666, 0x6666, 0x6666, 0x46, 0x46, 0x666, 0x666, 0x666, 
  0x666, 0x4444, 0x4444, 0x4455, 0x4455, 0x4455, 0x4455, 0x4455, 
  0x4455, 0x445, 0x445, 0x444, 0x444, 0x444, 0x444, 0x445, 
  0x445, 0x445, 0x445, 0x4455, 0x4455, 0x4455, 0x4455, 0x4455, 
  0x4455, 0x444, 0x445, 0x4455, 0x4455, 0x445, 0x444, 0x444, 
  0x444, 0x444, 0x4444, 0x4444, 0x4444, 0x5555, 0x5555, 0x5555, 
  0x5555, 0x5555, 0x5555, 0x5555, 0x5555, 0x5555, 0x5555, 0x5555, 
  0x5555, 0x5555, 0x5555, 0x5555, 0x5555, 0x555, 0x555, 0x555, 
  0x555, 0x555, 0x555, 0x555, 0x555, 0x555, 0x555, 0x555, 
  0x555, 0x555, 0x555, 0x555, 0x555, 0x4444, 0x4444, 0x4444, 
  0x4444, 0x4444, 0x4444, 0x4444, 0x4444, 0x4444, 0x4444, 0x4444, 
  0x4444, 0x4444, 0x4444, 0x4444, 0x4444, 0x444, 0x444, 0x444, 
  0x444, 0x444, 0x444, 0x444, 0x444, 0x4444, 0x4444, 0x4444, 
  0x4444, 0x4444, 0x4444, 0x4444, 0x4444, 0x4444, 0x4444, 0x4444, 
  0x4444, 0x4444, 0x4444, 0x4444, 0x4444, 0x444, 0x444, 0x444, 
  0x444, 0x444, 0x444, 0x444, 0x444, 0x444, 0x444, 0x444, 
  0x444, 0x444, 0x444, 0x444, 0x444, 0x444, 0x444, 0x444, 
  0x444, 0x444, 0x444, 0x444, 0x444, 0x444, 0x444, 0x444, 
  0x4455, 0x4455, 0x4455, 0x4455, 0x4455, 0x4455, 0x4455, 0x4455, 
  0x445, 0x445, 0x445, 0x445, 0x445, 0x445, 0x445, 0x445, 
  0x4455, 0x4455, 0x4455, 0x4455, 0x4455, 0x4455, 0x4455, 0x4455, 
  0x445, 0x445, 0x445, 0x445, 0x445, 0x445, 0x445, 0x445, 
  0x444, 0x444, 0x444, 0x4444, 0x4444, 0x4444, 0x4444, 0x4444, 
  0x4444, 0x4444, 0x4444, 0x444, 0x444, 0x444, 0x444, 0x444, 
  0x444, 0x444, 0x444, 0x4444, 0x4444, 0x4444, 0x4444, 0x4444, 
  0x4444, 0x4444, 0x4444, 0x444, 0x4455, 0x4455, 0x4455, 0x4455, 
  0x4455, 0x4455, 0x4455, 0x4455, 0x445, 0x445, 0x445, 0x445, 
  0x445, 0x445, 0x445, 0x445, 0x4455, 0x4455, 0x4455, 0x4455, 
  0x4455, 0x4455, 0x4455, 0x4455, 0x444, 0x4444, 0x4444, 0x4444, 
  0x555, 0x555, 0x5555, 0x5555, 0x555, 0x555, 0x555, 0x555, 
  0x5555, 0x5555, 0x554, 0x554, 0x555, 0x555, 0x4455, 0x5555, 
  0x5555, 0x5555, 0x4455, 0x4455, 0x4455, 0x4455, 0x555, 0x555, 
  0x445, 0x444, 0x445, 0x444, 0x445, 0x445, 0x554, 0x554, 
  0x5555, 0x5555, 0x5555, 0x5555, 0x555, 0x555, 0x555, 0x555, 
  0x4555, 0x455, 0x454, 0x5555, 0x555, 0x4444, 0x4444, 0x4444, 
  0x4444, 0x4444, 0x454, 0x454, 0x454, 0x454, 0x4444, 0x4444, 
  0x4444, 0x4444, 0x4444, 0x4444, 0x4444, 0x4444, 0x4444, 0x4444, 
  0x4444, 0x445, 0x4455, 0x445, 0x4455, 0x5555, 0x5555, 0x555, 
  0x555, 0x5555, 0x5555, 0x555, 0x555, 0x4444, 0x4444, 0x4444, 
  0x5555, 0x5555, 0x555, 0x4455, 0x4455, 0x445, 0x445, 0x5555, 
  0x5555, 0x555, 0x555, 0x4444, 0x455, 0x4555, 0x4555, 0x4555, 
  0x4555, 0x4555, 0x444, 0x4444, 0x4444, 0x4444, 0x4444, 0x444, 
  0x4444, 0x455, 0x455, 0x455, 0x4555, 0x4555, 0x4555, 0x4555, 
  0x4555, 0x444, 0x4444, 0x4444, 0x4444, 0x4444, 0x444, 0x455, 
  0x455, 0x455, 0x4555, 0x4555, 0x4555, 0x4555, 0x455, 0x455, 
  0x444, 0x4444, 0x4444, 0x4444, 0x4444, 0x444, 0x444, 0x454, 
  0x455, 0x455, 0x455, 0x4555, 0x4555, 0x4555, 0x4555, 0x4555, 
  0x444, 0x4444, 0x4444, 0x4444, 0x4444, 0x444, 0x454, 0x455, 
  0x455, 0x44, 0x55, 0x44, 0x54, 0x44, 0x54, 0x44, 
  0x44, 0x54, 0x444, 0x444, 0x44, 0x54, 0x44, 0x54, 
  0x55, 0x4444, 0x544, 0x4455, 0x555, 0x44444, 0x5444, 0x44555, 
  0x5555, 0x55, 0x555, 0x455, 0x4555, 0x4555, 0x4555, 0x4555, 
  0x4555, 0x444, 0x4444, 0x4444, 0x4444, 0x4444, 0x455, 0x455, 
  0x455, 0x4555, 0x4555, 0x4555, 0x4555, 0x4555, 0x444, 0x4444, 
  0x4444, 0x4444, 0x4444, 0x4444, 0x455, 0x455, 0x455, 0x4555, 
  0x4555, 0x4555, 0x4555, 0x4555, 0x444, 0x4444, 0x4444, 0x4444, 
  0x4444, 0x455, 0x455, 0x445, 0x554, 0x444, 0x444, 0x555, 
  0x555, 0x555, 0x555, 0x44, 0x44, 0x44444, 0x44444, 0x44444, 
  0x44444, 0x444, 0x444, 0x441, 0x441, 0x4555, 0x4555, 0x455, 
  0x455, 0x4555, 0x54, 0x54, 0x54, 0x55, 0x54, 0x55, 
  0x54, 0x55, 0x54, 0x55, 0x44, 0x45, 0x4555, 0x4555, 
  0x45, 0x45, 0x54, 0x555, 0x54, 0x555, 0x45, 0x45, 
  0x4444, 0x4444, 0x4444, 0x4444, 0x4444, 0x444, 0x454, 0x54, 
  0x4444, 0x544, 0x4455, 0x555, 0x444, 0x441, 0x441, 0x4444, 
  0x4444, 0x4444, 0x4444, 0x4444, 0x444, 0x4444, 0x4444, 0x4444, 
  0x4455, 0x44555, 0x555, 0x555, 0x555, 0x555, 0x555, 0x555, 
  0x454, 0x454, 0x54, 0x455, 0x44, 0x442E2E2E, 0x2E2E2E0, (1U<<31) | 282, 
  (1U<<31) | 283, 0x2E50, 0x2E50, 0x1F1F, 0x1F1F, 0x1F1F, 0x42E0, (1U<<31) | 9, 
  (1U<<31) | 9, 0x144F23F0, 0x3838, 0x2929, 0x44, 0x383838, 0x383838, 0x444, 
  0x383838, 0x383838, 0x444, 0x444, 0x444, 0x383838, 0x292929, 0x383838, 
  0x292929, 0x292929, 0x292929, 0x444, 0x4444, 0x4444, 0x44, 0x4, 
  0x38380, 0x38380, 0x38380, 0x29294, 0x29294, 0x29294, 0x29294, 0x29294, 
  0x29294, 0x29290, 0x29290, 0x29290, 0x383855, 0x383855, 0x4455, 0x383855, 
  0x383855, 0x292955, 0x292955, 0x383855, 0x383855, 0x383855, 0x4455, 0x383855, 
  0x383855, 0x292955, 0x292955, 0x383855, 0x454, 0x454, 0x454, 0x454, 
  0x454, 0x454, 0x444, 0x42E4, 0x42E4, 0x42E4, 0x4455, 0x4455, 
  0x383855, 0x383855, 0x383855, 0x383855, 0x444, 0x4455, 0x4455, 0x455, 
  0x383838, 0x383838, 0x38384, 0x38384, 0x382938, 0x382938, 0x383838, 0x444, 
  0x383838, 0x444, 0x383855, 0x383855, 0x445, 0x445, 0x383838, 0x383838, 
  0x292929, 0x384, 0x384, 0x2938, 0x2938, 0x2938, 0x2938, 0x2938, 
  0x2938, 0x2938, 0x2938, 0x383829, 0x44438, 0x44438, 0x4438, 0x383829, 
  0x4438, 0x383829, 0x4444, 0x294, 0x44, 0x438, 0x429, 0x455, 
  0x43838, 0x42929, 0x43838, 0x444, 0x43838, 0x42929, 0x43838, 0x42929, 
  0x444, 0x43838, 0x42929, 0x383838, 0x383838, 0x444, 0x383838, 0x383838, 
  0x444, 0x444, 0x383838, 0x292929, 0x383838, 0x292929, 0x292929, 0x292929, 
  0x440, 0x44, 0x55, 0x777, 0x666, 0x666, 0x777, 0x666, 
  0x666, 0x777, 0x666, 0x666, 0x777, 0x666, 0x666, 0x63F6, 
  0x43F4, 0x43F4, 0x0, 0x44, 0x44, 0x44, 0x75, 0x64, 
  0x46, 0x57, 0x44, 0x55, 0x77, 0x66, 0x66, 0x44, 
  0x54, 0x3F0, 0x3F0, 0x66, 0x66, 0x76, 0x76, 0x76, 
  0x76, 0x76, 0x76, 0x76, 0x76, 0x74, 0x74, 0x74, 
  0x74, 0x74, 0x74, 0x75, 0x75, 0x75, 0x75, 0x74, 
  0x74, 0x74, 0x74, 0x75, 0x75, 0x75, 0x75, 0x666, 
  0x666, 0x777, 0x666, 0x666, 0x777, 0x666, 0x666, 0x777, 
  0x666, 0x666, 0x777, 0x666, 0x666, 0x77, 0x66, 0x66, 
  0x63, 0x63, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 
  0x64, 0x64, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 
  0x65, 0x65, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 
  0x64, 0x64, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 
  0x65, 0x65, 0x77, 0x66, 0x66, 0x77, 0x66, 0x66, 
  0x7777, 0x6666, 0x6666, 0x7777, 0x6666, 0x6666, 0x7777, 0x6666, 
  0x6666, 0x7777, 0x6666, 0x6666, 0x777, 0x666, 0x666, 0x777, 
  0x666, 0x666, 0x36, 0x47, 0x47, 0x47, 0x47, 0x46, 
  0x46, 0x46, 0x46, 0x1FE1F, 0xFE0F, 0x3FE3F, 0x77, 0x66, 
  0x66, 0x57, 0x57, 0x57, 0x57, 0x56, 0x56, 0x56, 
  0x56, 0x447, 0x444, 0x555, 0x444, 0x555, 0x0, 0x0, 
  0x0, 0x444, 0x555, 0x444, 0x555, 0x77, 0x66, 0x33, 
  0x44, 0x55, 0x22, 0x7F3F, 0x444, 0x444, 0x777, 0x666, 
  0x666, 0x777, 0x666, 0x666, 0x777, 0x666, 0x666, 0x777, 
  0x666, 0x666, 0x444, 0x555, 0x444, 0x555, 0x44, 0x54, 
  0x4444, 0x7F3F, 0x7F3F, 0x7F3F, 0x7F3F, 0x7F3F, 0x7F3F, 0x7F3F, 
  0x7F3F, 0x7F3F, 0x77, 0x77, 0x66, 0x66, 0x77, 0x66, 
  0x66, 0x77, 0x66, 0x66, 0x77, 0x66, 0x66, 0x4, 
  0x4, 0x4, 0x4, 0x4, 0x4, 0x4, 0x4, 0x4, 
  0x4, 0x4, 0x4, 0x4, 0x77, 0x66, 0x66, 0x77, 
  0x66, 0x66, 0x4444, 0x4444, 0x77, 0x66, 0x66, 0x66, 
  0x66, 0x66, 0x66, 0x77, 0x66, 0x66, 0x77, 0x66, 
  0x66, 0x77, 0x66, 0x66, 0x77, 0x66, 0x66, 0x77, 
  0x66, 0x66, 0x47, 0x47, 0x47, 0x47, 0x46, 0x46, 
  0x46, 0x46, 0x57, 0x57, 0x57, 0x57, 0x56, 0x56, 
  0x56, 0x56, 0x12E0F, 0x40, 0x1F1F1F, 0x41F1F, 0x40, 0x0, 
  0x442E0, 0x442E0, 0x442E0, 0x442E0, 0x2E2B, 0x2E3A, 0x2E49, 0x2E2B, 
  0x2E2B, 0x2E49, 0x2E49, 0x3A, 0x490, 0x2E2B0, 0x2E3A0, 0x2E490, 
  0x2E490, 0x2E490, 0x494949, 0x2B2B2B, 0x3A3A3A, 0x494949, 0x2B2B2B, 0x3A3A3A, 
  0x494949, 0x2B2B2B, 0x3A3A3A, 0x494949, 0x2B2B2B, 0x3A3A3A, 0x494949, 0x44969, 
  0x44969, 0x696949, 0x696944, 0x696949, 0x696944, 0x2B2B2B, 0x2B2B44, 0x3A3A3A, 
  0x3A3A44, 0x494949, 0x494944, 0x696949, 0x696944, 0x696949, 0x696944, 0x2B2B2B, 
  0x2B2B44, 0x3A3A3A, 0x3A3A44, 0x494949, 0x494944, 0x2B2B2B, 0x2B2B44, 0x3A3A3A, 
  0x3A3A44, 0x494949, 0x494944, 0x46949, 0x46949, 0x6969, 0x6969, 0x69696969, 
  0x696969, 0x2B2B2B, 0x3A3A3A, 0x494949, 0x2B2B2B, 0x3A3A3A, 0x494949, 0x3A3A3A3A, 
  0x3A3A3A3A, 0x696969, 0x2B2B2B, 0x3A3A3A, 0x494949, 0x2B2B2B, 0x3A3A3A, 0x494949, 
  0x3A3A3A3A, 0x492B2B49, 0x493A3A49, 0x493A3A49, 0x492B2B49, 0x493A3A49, 0x493A3A49, 0x2B2B3A, 
  0x3A3A49, 0x2B2B3A, 0x3A3A49, 0x2B2B3A, 0x3A3A49, 0x2B2B3A, 0x3A3A49, 0x69696969, 
  0x2B494949, 0x49493A, 0x3A3A2B, 0x3A3A2B, 0x49492B, 0x49493A, 0x3A3A2B, 0x49493A, 
  0x6969, 0x6969, 0x6969, 0x6969, 0x6969, 0x2B2B2B, 0x3A3A3A, 0x494949, 
  0x6969, 0x49494949, 0x494949, 0x2B2B2B, 0x3A3A3A, 0x494949, 0x494949, 0x494949, 
  0x2B2B2B, 0x3A3A3A, 0x494949, 0x2B2B2B, 0x3A3A3A, 0x494949, 0x494949, 0x494949, 
  0x2B2B2B, 0x3A3A3A, 0x494949, 0x2B2B2B, 0x3A3A3A, 0x494949, 0x494949, 0x492B49, 
  0x493A49, 0x492B49, 0x494949, 0x3A49, 0x2B3A, 0x3A49, 0x3A49, 0x2B3A, 
  0x3A49, 0x2E0, 0x2E0, 0x2E0, 0x2E0, 0x2E0, 0x2E0, 0x2E0, 
  0x2E0, 0x0, 0x4442E0, (1U<<31) | 320, 0x40, 0x4, 0x5, 0x4, 
  0x4, 0x4, 0x4, 0x4, 0x4, 0x4, 0x4, 0x4, 
  0x4, 0x4, 0x4, 0x4, 0x4, 0x4, 0x4, 0x4, 
  0x4, 0x4, 0x4, 0x4, 0x4, 0x4, 0x4, 0x4, 
  0x4, 0x4, 0x4, 0x4, 0x4, 0x4, 0x5, 0x42E, 
  (1U<<31) | 0, 0x2E4, 0x42E0, 0x42E4, 0x1F1F, (1U<<31) | 0, 0x494949, 0x494949, 
  0x3A3A3A, 0x33A3A, 0x34949, 0x494949, 0x22B2B, 0x494949, 0x33A3A, 0x34949, 
  0x494949, 0x494949, 0x494949, 0x2B2B2B, 0x22B2B, 0x3A3A3A, 0x33A3A, 0x34949, 
  0x494949, 0x494949, 0x2B2B2B, 0x22B2B, 0x3A3A3A, 0x33A3A, 0x34949, 0x494949, 
  0x494949, 0x2B2B2B, 0x22B2B, 0x3A3A3A, 0x33A3A, 0x34949, 0x787878, 0x787878, 
  0x787878, 0x787878, 0x787878, 0x787878, 0x787878, 0x696969, 0x696969, 0x696969, 
  0x696969, 0x696969, 0x696969, 0x69696969, 0x69696969, 0x69696969, 0x696969, 0x33A3A, 
  0x3A3A49, 0x3A3A3A49, 0x3A4949, 0x3A3A49, 0x3A3A49, 0x3A3A49, 0x3A3A49, 0x33A49, 
  0x3A3A49, 0x3A3A49, 0x33A49, 0x494949, 0x494949, 0x494949, 0x22B2B, 0x494949, 
  0x33A3A, 0x34949, 0x494949, 0x3A3A3A, 0x33A3A, 0x34949, 0x494949, 0x24949, 
  0x43A3A, 0x22B2B, 0x43A3A, 0x22B2B, 0x494949, 0x22B2B, 0x33A3A, 0x34949, 
  0x1F1F, (1U<<31) | 0, 0x2EE2E0, 0x2E0, 0x2E, 0x0, (1U<<31) | 0, (1U<<31) | 0, 
  (1U<<31) | 0, 0x2E2E0, 0x2E0, 0x42E2E2E0, 0x2E0, 0xDDD, 0xDD, 0xDDD, 
  0xDDD, 0xDDD, 0xDDD, 0xDDD, 0xDDD, 0xDDD, 0xDDD, 0xDD, 
  0xDDD, 0xDDD, 0xDDD, 0xDD, 0xDDD, 0xDDD, 0xDD, 0xDDD, 
  0xDD, 0xDDD, 0xDDD, 0xDD, 0xDD, 0x585858, 0x585858, 0x585858, 
  0x585858, 0x5858, 0x25858, (1U<<31) | 29, (1U<<31) | 65, (1U<<31) | 193, (1U<<31) | 227, (1U<<31) | 125, 
  (1U<<31) | 171, (1U<<31) | 77, (1U<<31) | 101, (1U<<31) | 41, (1U<<31) | 53, (1U<<31) | 205, (1U<<31) | 239, (1U<<31) | 137, 
  (1U<<31) | 149, (1U<<31) | 89, (1U<<31) | 113, 0x492E49, 0x4A2E4A, 0x582E58, 0x592E59, 0x49492E0, 
  0x4A4A2E0, 0x58582E0, 0x59592E0, 0x2E59, 0x42C2C3B, 0x2C2C, 0x4A4A, 0x3B3B, 
  0x4A4A3B, 0x3B3B2C, 0x4A4A3B, 0x3B3B2C, 0x2C2C2C, 0x3B3B3B, 0x2C2C2C, 0x3B3B3B, 
  0x2C2C2C, 0x3B3B3B, 0x4494949, 0x44A4A4A, 0x2C2C2C2C, 0x43B3B3B, 0x2B2B, 0x2B2C, 
  0x4949, 0x494A, 0x5858, 0x5859, 0x3A3A, 0x3A3B, 0x4A4A4A, 0x6A6A6A, 
  0x4A4A4A, 0x3B3B3B, 0x3B3B3B, 0x4A4A4A, 0x3B3B3B, 0x3B3B3B, 0x2C2C3B, 0x3B3B4A, 
  0x2C2C2C, 0x4A4A4A, 0x3B3B3B, 0x2C2C2C, 0x4A4A4A, 0x3B3B3B, 0x2C2C2C, 0x4A4A4A, 
  0x3B3B3B, 0x2C2C2C, 0x4A4A4A, 0x3B3B3B, 0x2C4, 0x2B4A, 0x2B59, 0x2B3B, 
  0x4959, 0x3A4A, 0x3A59, 0x2B4A, 0x2B59, 0x2B3B, 0x4959, 0x3A4A, 
  0x3A59, 0x4A4A59, 0x3B3B3B, 0x3B3B3B, 0x3B3B3B, 0x4A4A59, 0x2C2C59, 0x2C2C2C, 
  0x2C2C2C, 0x4A4A4A, 0x3B3B3B, 0x494A4A, 0x45959, 0x45959, 0x585959, 0x3A3B3B, 
  0x44A4A, 0x45959, 0x43B3B, 0x494949, 0x4A4A4A, 0x585858, 0x595959, 0x494A4A, 
  0x3A3B3B, 0x44A4A, 0x43B3B, 0x494949, 0x4A4A4A, 0x494A4A, 0x45959, 0x45959, 
  0x585959, 0x3A3B3B, 0x44A4A, 0x45959, 0x43B3B, 0x494949, 0x4A4A4A, 0x585858, 
  0x595959, 0x2C2C2C, 0x3B3B3B, 0x2C2C2C, 0x3B3B3B, 0x7879, 0x6969, 0x696A, 
  0x2E59, 0x25958, 0x2585959, 0x2595959, 0x797979, 0x6A6A6A, 0x4797979, 0x46A6A6A, 
  0x79797979, 0x6A6A6A6A, 0x2797979, 0x26A6A6A, 0x7969, 0x7949, 0x6979, 0x6A4A, 
  0x4979, 0x4A6A, 0x7949, 0x6A4A, 0x46A6A6A, 0x797979, 0x6A6A6A, 0x797979, 
  0x6A6A6A, 0x2E2C, 0x782E78, 0x792E79, 0x692E69, 0x6A2E6A, 0x78782E0, 0x79792E0, 
  0x69692E0, 0x6A6A2E0, 0x797979, 0x6A6A6A, 0x797979, 0x6A6A6A, 0x794, 0x6A4, 
  0x59594, 0x59594, 0x59594, 0x6A6A, 0x47979, 0x46A6A, 0x6A6A, 0x7979, 
  0x6A6A, 0x2C2E0, 0x792E0, 0x6A2E0, 0x2E79, 0x2E69, 0x2E6A, 0x2E79, 
  0x2E6A, 0x27978, 0x26A69, 0x24A49, 0x2787979, 0x2696A6A, 0x2494A4A, 0x2797979, 
  0x26A6A6A, 0x24A4A4A, 0x587878, 0x597979, 0x496969, 0x4A6A6A, 0x78784, 0x79794, 
  0x69694, 0x6A6A4, 0x78784, 0x79794, 0x69694, 0x6A6A4, 0x78784, 0x79794, 
  0x69694, 0x6A6A4, 0x0, 0x0, 0x444, 0x555, 0x444, 0x555, 
  0x444, 0x555, 0x444, 0x555, 0x78787878, 0x79797979, 0x69696969, 0x6A6A6A6A, 
  0x78787878, 0x69696969, 0x78787878, 0x79797979, 0x69696969, 0x6A6A6A6A, 0x78787878, 0x79797979, 
  0x69696969, 0x6A6A6A6A, 0x78787878, 0x69696969, 0x78787878, 0x79797979, 0x69696969, 0x6A6A6A6A, 
  0x78787878, 0x79797979, 0x69696969, 0x6A6A6A6A, 0x78787878, 0x69696969, 0x78787878, 0x79797979, 
  0x69696969, 0x6A6A6A6A, 0x78787878, 0x69696969, 0x20, 0x0, 0x0, 0x2EDD0, 
  0xDDE0, 0xDDD, 0xDDD, 0xDDD, 0xDDD, 0xDDD, 0xDDD, 0xDDD, 
  0xDDD, 0xDDD, 0xDDD, 0xDDD, 0x2DDD, 0xDDD, 0xDDD, 0xDDD, 
  0xDDD, 0xDDD, 0xDDD, 0xDDD, 0xDDD, 0xDDD, 0xDDD, 0x4D4, 
  0x44DD, 0xDDD, 0xDDD, 0xDDD, 0xDDD, 0xDDD, 0xD4, 0xDDD, 
  0xDDD, 0xDDD, 0xDDD, 0xDDD, 0xDDD, 0xDDD, 0xDDD, 0xDDD, 
  0x4DD, 0x4DD, 0x4DD, 0xDDD, 0xDDD, 0x4DD, 0x4DD, 0xDDD, 
  0xDDD, 0xDDD, 0x4DD, 0x4DD, 0x4DD, 0xDDD, 0xDDD, 0xDDD, 
  0xDDD, 0xDDD, 0xDDD, 0xDDD, 0xDDD, 0xDDD, 0xDDD, 0xDDD, 
  0xDDD, 0xDDD, 0xDDD, 0xDDD, 0x2585858, 0x4, 0x5, 0x4, 
  0x5, (1U<<31) | 387, (1U<<31) | 488, (1U<<31) | 492, 0x787878, 0x2E0, 0x2787878, 0x2787878, 
  0x78784, 0x78784, 0x78784, 0x78784, 0x78784, 0x78784, 0x4978, 0x4969, 
  0x7849, 0x7869, 0x6949, 0x6978, 0x784, 0x785, 0x786969, 0x47878, 
  0x57878, 0x697878, 0x7849, 0x6949, 0x784, 0x785, 0x787878, 0x0, 
  0x2E2B2B0, 0x787878, 0x787878, 0x0, 0x787878, 0x787878, 0x784, 0x787878, 
  0x49493A, 0x3A3A2B, 0x3A3A2B, 0x2B2B2B, 0x3A3A3A, 0x2B2B2B, 0x3A3A3A, 0x2B2B2B, 
  0x3A3A3A, 0x3A3A49, 0x3A3A3A, 0x2B2B2B, 0x3A3A3A, 0x2B2B2B, 0x2B4, 0x3A3A3A, 
  0x3A3A3A, 0x494958, 0x2B2B58, 0x494949, 0x45858, 0x45858, 0x585858, 0x3A3A3A, 
  0x44949, 0x45858, 0x43A3A, 0x494949, 0x3A3A3A, 0x44949, 0x43A3A, 0x494949, 
  0x45858, 0x45858, 0x585858, 0x3A3A3A, 0x44949, 0x45858, 0x43A3A, 0x2B2B2B, 
  0x3A3A3A, 0x2B2B2B, 0x3A3A3A, 0x7878, 0x7878, 0x492E0, 0x2B2E0, 0x782E0, 
  0x787878, 0x78784, 0x78784, 0x78784, 0x78784, 0x78784, 0x78784, 0x787878, 
  0x696969, 0x787878, 0x696969, 0x787878, 0x696969, 0x2E2B, 0x442E0, 0x440, 
  0x4787878, 0x4696969, 0x78787878, 0x69696969, 0x4787878, 0x4696969, 0x4694, 0x4696969, 
  0x2E58, 0x42B2B3A, 0x49493A, 0x2B2B2B2B, 0x43A3A3A, 0x42B4, 0x4494, 0x4585, 
  0x3A3A, 0x2B2B2B, 0x494949, 0x494949, 0x3A3A3A, 0x2B2B2B, 0x494949, 0x494949, 
  0x3A3A3A, 0x2B49, 0x2B58, 0x2B3A, 0x4958, 0x3A49, 0x3A58, 0x2B49, 
  0x2B58, 0x2B3A, 0x4958, 0x3A49, 0x3A58, 0x494958, 0x58584, 0x58584, 
  0x58584, 0x47878, 0x46969, 0x4787878, 0x4696969, 0x344, 0x444, 0x244, 
  0x555, 0x255, 0x242B42B4, 0x242B42B4, 0x242B42B4, 0x242B42B4, 0x242B42B4, 0x242B42B4, 
  (1U<<31) | 19, 0x22B2B4, 0x22B2B4, 0x22B2B4, 0x22B2B4, 0x22B2B4, 0x22B2B4, 0x22B2B2B, 
  0x2B5858, 0x225858, 0x585858, 0x22585858, 0x782E0, 0x692E0, 0x696969, 0x2696969, 
  0x2696969, 0x69694, 0x69694, 0x69694, 0x69694, 0x69694, 0x69694, 0x78D, 
  0xD78, 0xD6969, 0x69D, 0x46969, 0x56969, 0x694, 0x695, 0x78D, 
  0x69D, 0x694, 0x695, 0x696969, 0x2E0, 0x696969, 0x696969, 0x696969, 
  0x696969, 0x694, 0x696969, 0x2DD, 0x6969, 0x6969, 0x6969, 0x6969, 
  0x0, 0x6969, 0x6969, 0x2E0, 0x692E0, 0x696969, 0x69694, 0x69694, 
  0x69694, 0x69694, 0x69694, 0x69694, 0xDD, 0x2B2B, 0xDD, 0x4949, 
  0xDD, 0x3A3A, 0xDDD, 0x494949, 0xDDD, 0x3A3A3A, 0xDDD, 0x3A3A3A, 
  0xDDD, 0x494949, 0xDDD, 0x3A3A3A, 0xDDD, 0x3A3A3A, 0xDDD, 0x2B2B3A, 
  0xDDD, 0x3A3A3A, 0xDDD, 0x2B2B2B, 0xDDD, 0x2B2B2B, 0xDDD, 0x494949, 
  0xDDD, 0x3A3A3A, 0x3A69, 0x3A6A, 0x4693A, 0x46A3A, 0x40, 0x50, 
  0x40, 0x50, 0x7878, 0x7979, 0x6969, 0x6A6A, 0x7878, 0x6969, 
  0x58585858, 0x59595959, 0x22B2B2B, 0x2494949, 0x2585858, 0x22B2B2B, 0x2494949, 0x2585858, 
  0x23A3A3A, 0x23A3A3A, (1U<<31) | 217, (1U<<31) | 251, (1U<<31) | 161, (1U<<31) | 183, 0x2B49, 0x2B58, 
  0x2B3A, 0x4958, 0x2B49, 0x2B58, 0x2B3A, 0x4958, 0x3A49, 0x3A58, 
  0x3A49, 0x3A58, 0x2B3A, 0x4958, 0x3A49, 0x49494949, 0x58494958, 0x58494958, 
  0x49494949, 0x58494958, 0x58494958, 0x493A3A49, 0x3A3A3A3A, 0x493A3A49, 0x3A3A3A3A, 0x493A3A49, 
  0x493A3A49, 0x2B2B2B2B, 0x2B2B2B, 0x22B2B, 0x494949, 0x24949, 0x585858, 0x25858, 
  0x3A3A3A, 0x23A3A, 0x2B2B2B, 0x494949, 0x585858, 0x3A3A3A, 0x2B2B2B, 0x494949, 
  0x585858, 0x3A3A3A, 0x44, 0x2E2E, 0x43F0, 0x0, 0x40, 0x4444, 
  (1U<<31) | 481, 0x3F0, 0x3F4, 0x3F0, 0x4, 0x4, 0x4, 0x44, 
  0x43F, 0x7F3F, 0x3F4, 0x3F4, 0x3F4, 0x2E3F0, 0x2E3F0, 0x2E3F0, 
  0x2E3F0, 0x2E3F0, 0x43F4, 0x3F4, 0x3F0, 0x3F0, 0x43F0, 0x43F0, 
  0x43F4, 0x43F0, 0x3F4, 0x43F0, 0x7F3F0, 0x43F0, 0x2E3F0, 0x440, 
  0x43F0, 0x43F0, 0x7F3F0, 0x40, 0x43F0, 0x2E3F0, 0x444, 0x0, 
  0x3F0, 0x3F4, 0x3F4, 0x2E, 0x444, 0
};

static const unsigned char IIT_LongEncodingTable[] = {
  /* 0 */ 18, 15, 0, 1, 15, 0, 15, 0, 0,
  /* 9 */ 0, 15, 3, 15, 7, 15, 8, 4, 1, 0,
  /* 19 */ 11, 2, 11, 2, 4, 11, 2, 4, 2, 0,
  /* 29 */ 9, 4, 9, 4, 14, 2, 9, 4, 9, 4, 2, 0,
  /* 41 */ 9, 4, 9, 4, 14, 2, 8, 5, 9, 4, 2, 0,
  /* 53 */ 9, 4, 9, 4, 14, 2, 9, 5, 9, 4, 2, 0,
  /* 65 */ 10, 4, 10, 4, 14, 2, 10, 4, 10, 4, 2, 0,
  /* 77 */ 8, 5, 8, 5, 14, 2, 9, 4, 8, 5, 2, 0,
  /* 89 */ 8, 5, 8, 5, 14, 2, 8, 5, 8, 5, 2, 0,
  /* 101 */ 9, 5, 9, 5, 14, 2, 9, 4, 9, 5, 2, 0,
  /* 113 */ 9, 5, 9, 5, 14, 2, 9, 5, 9, 5, 2, 0,
  /* 125 */ 9, 6, 9, 6, 14, 2, 9, 4, 9, 6, 2, 0,
  /* 137 */ 9, 6, 9, 6, 14, 2, 8, 5, 9, 6, 2, 0,
  /* 149 */ 9, 6, 9, 6, 14, 2, 9, 5, 9, 6, 2, 0,
  /* 161 */ 9, 6, 9, 6, 9, 6, 9, 6, 2, 0,
  /* 171 */ 10, 6, 10, 6, 14, 2, 10, 4, 10, 6, 2, 0,
  /* 183 */ 10, 6, 10, 6, 10, 6, 10, 6, 2, 0,
  /* 193 */ 8, 7, 8, 7, 14, 2, 9, 4, 8, 7, 2, 0,
  /* 205 */ 8, 7, 8, 7, 14, 2, 8, 5, 8, 7, 2, 0,
  /* 217 */ 8, 7, 8, 7, 8, 7, 8, 7, 2, 0,
  /* 227 */ 9, 7, 9, 7, 14, 2, 9, 4, 9, 7, 2, 0,
  /* 239 */ 9, 7, 9, 7, 14, 2, 9, 5, 9, 7, 2, 0,
  /* 251 */ 9, 7, 9, 7, 9, 7, 9, 7, 2, 0,
  /* 261 */ 10, 2, 10, 2, 10, 2, 10, 2, 10, 2, 10, 2, 10, 2, 0,
  /* 276 */ 18, 4, 4, 14, 2, 0,
  /* 282 */ 0, 14, 17, 5, 14, 2, 0,
  /* 289 */ 15, 2, 22, 2, 0,
  /* 294 */ 15, 2, 22, 2, 22, 2, 0,
  /* 301 */ 15, 2, 15, 2, 23, 2, 23, 2, 0,
  /* 310 */ 15, 0, 15, 0, 14, 2, 14, 2, 4, 0,
  /* 320 */ 15, 3, 15, 3, 14, 2, 14, 2, 4, 0,
  /* 330 */ 20, 15, 2, 15, 2, 15, 2, 15, 2, 14, 2, 4, 0,
  /* 343 */ 19, 15, 2, 15, 2, 15, 2, 14, 2, 4, 0,
  /* 354 */ 18, 15, 2, 15, 2, 14, 2, 4, 0,
  /* 363 */ 0, 14, 2, 15, 2, 15, 2, 15, 2, 4, 0,
  /* 374 */ 0, 14, 2, 15, 2, 15, 2, 15, 2, 15, 2, 4, 0,
  /* 387 */ 18, 3, 4, 0,
  /* 391 */ 0, 14, 2, 15, 2, 15, 2, 4, 4, 0,
  /* 401 */ 18, 15, 2, 15, 2, 14, 2, 15, 2, 15, 2, 4, 4, 0,
  /* 415 */ 0, 14, 2, 15, 2, 15, 2, 15, 2, 4, 4, 0,
  /* 427 */ 19, 15, 2, 15, 2, 15, 2, 14, 2, 15, 2, 15, 2, 15, 2, 4, 4, 0,
  /* 445 */ 0, 14, 2, 15, 2, 15, 2, 15, 2, 15, 2, 4, 4, 0,
  /* 459 */ 20, 15, 2, 15, 2, 15, 2, 15, 2, 14, 2, 15, 2, 15, 2, 15, 2, 15, 2, 4, 4, 0,
  /* 481 */ 18, 4, 4, 4, 4, 4, 0,
  /* 488 */ 18, 4, 4, 0,
  /* 492 */ 18, 5, 4, 0,
  /* 496 */ 0, 16, 5, 16, 0,
  /* 501 */ 0, 16, 16, 0,
  255
};

#endif

// Add parameter attributes that are not common to all intrinsics.
#ifdef GET_INTRINSIC_ATTRIBUTES
AttrListPtr Intrinsic::getAttributes(ID id) {
  static const uint8_t IntrinsicsToAttributesMap[] = {
    1, // llvm.adjust.trampoline
    2, // llvm.annotation
    2, // llvm.arm.cdp
    2, // llvm.arm.cdp2
    3, // llvm.arm.get.fpscr
    1, // llvm.arm.ldrexd
    2, // llvm.arm.mcr
    2, // llvm.arm.mcr2
    2, // llvm.arm.mcrr
    2, // llvm.arm.mcrr2
    2, // llvm.arm.mrc
    2, // llvm.arm.mrc2
    3, // llvm.arm.neon.vabds
    3, // llvm.arm.neon.vabdu
    3, // llvm.arm.neon.vabs
    3, // llvm.arm.neon.vacged
    3, // llvm.arm.neon.vacgeq
    3, // llvm.arm.neon.vacgtd
    3, // llvm.arm.neon.vacgtq
    3, // llvm.arm.neon.vaddhn
    3, // llvm.arm.neon.vbsl
    3, // llvm.arm.neon.vcls
    3, // llvm.arm.neon.vclz
    3, // llvm.arm.neon.vcnt
    3, // llvm.arm.neon.vcvtfp2fxs
    3, // llvm.arm.neon.vcvtfp2fxu
    3, // llvm.arm.neon.vcvtfp2hf
    3, // llvm.arm.neon.vcvtfxs2fp
    3, // llvm.arm.neon.vcvtfxu2fp
    3, // llvm.arm.neon.vcvthf2fp
    3, // llvm.arm.neon.vhadds
    3, // llvm.arm.neon.vhaddu
    3, // llvm.arm.neon.vhsubs
    3, // llvm.arm.neon.vhsubu
    1, // llvm.arm.neon.vld1
    1, // llvm.arm.neon.vld2
    1, // llvm.arm.neon.vld2lane
    1, // llvm.arm.neon.vld3
    1, // llvm.arm.neon.vld3lane
    1, // llvm.arm.neon.vld4
    1, // llvm.arm.neon.vld4lane
    3, // llvm.arm.neon.vmaxs
    3, // llvm.arm.neon.vmaxu
    3, // llvm.arm.neon.vmins
    3, // llvm.arm.neon.vminu
    3, // llvm.arm.neon.vmullp
    3, // llvm.arm.neon.vmulls
    3, // llvm.arm.neon.vmullu
    3, // llvm.arm.neon.vmulp
    3, // llvm.arm.neon.vpadals
    3, // llvm.arm.neon.vpadalu
    3, // llvm.arm.neon.vpadd
    3, // llvm.arm.neon.vpaddls
    3, // llvm.arm.neon.vpaddlu
    3, // llvm.arm.neon.vpmaxs
    3, // llvm.arm.neon.vpmaxu
    3, // llvm.arm.neon.vpmins
    3, // llvm.arm.neon.vpminu
    3, // llvm.arm.neon.vqabs
    3, // llvm.arm.neon.vqadds
    3, // llvm.arm.neon.vqaddu
    3, // llvm.arm.neon.vqdmlal
    3, // llvm.arm.neon.vqdmlsl
    3, // llvm.arm.neon.vqdmulh
    3, // llvm.arm.neon.vqdmull
    3, // llvm.arm.neon.vqmovns
    3, // llvm.arm.neon.vqmovnsu
    3, // llvm.arm.neon.vqmovnu
    3, // llvm.arm.neon.vqneg
    3, // llvm.arm.neon.vqrdmulh
    3, // llvm.arm.neon.vqrshiftns
    3, // llvm.arm.neon.vqrshiftnsu
    3, // llvm.arm.neon.vqrshiftnu
    3, // llvm.arm.neon.vqrshifts
    3, // llvm.arm.neon.vqrshiftu
    3, // llvm.arm.neon.vqshiftns
    3, // llvm.arm.neon.vqshiftnsu
    3, // llvm.arm.neon.vqshiftnu
    3, // llvm.arm.neon.vqshifts
    3, // llvm.arm.neon.vqshiftsu
    3, // llvm.arm.neon.vqshiftu
    3, // llvm.arm.neon.vqsubs
    3, // llvm.arm.neon.vqsubu
    3, // llvm.arm.neon.vraddhn
    3, // llvm.arm.neon.vrecpe
    3, // llvm.arm.neon.vrecps
    3, // llvm.arm.neon.vrhadds
    3, // llvm.arm.neon.vrhaddu
    3, // llvm.arm.neon.vrshiftn
    3, // llvm.arm.neon.vrshifts
    3, // llvm.arm.neon.vrshiftu
    3, // llvm.arm.neon.vrsqrte
    3, // llvm.arm.neon.vrsqrts
    3, // llvm.arm.neon.vrsubhn
    3, // llvm.arm.neon.vshiftins
    3, // llvm.arm.neon.vshiftls
    3, // llvm.arm.neon.vshiftlu
    3, // llvm.arm.neon.vshiftn
    3, // llvm.arm.neon.vshifts
    3, // llvm.arm.neon.vshiftu
    2, // llvm.arm.neon.vst1
    2, // llvm.arm.neon.vst2
    2, // llvm.arm.neon.vst2lane
    2, // llvm.arm.neon.vst3
    2, // llvm.arm.neon.vst3lane
    2, // llvm.arm.neon.vst4
    2, // llvm.arm.neon.vst4lane
    3, // llvm.arm.neon.vsubhn
    3, // llvm.arm.neon.vtbl1
    3, // llvm.arm.neon.vtbl2
    3, // llvm.arm.neon.vtbl3
    3, // llvm.arm.neon.vtbl4
    3, // llvm.arm.neon.vtbx1
    3, // llvm.arm.neon.vtbx2
    3, // llvm.arm.neon.vtbx3
    3, // llvm.arm.neon.vtbx4
    3, // llvm.arm.qadd
    3, // llvm.arm.qsub
    2, // llvm.arm.set.fpscr
    3, // llvm.arm.ssat
    2, // llvm.arm.strexd
    3, // llvm.arm.thread.pointer
    3, // llvm.arm.usat
    3, // llvm.arm.vcvtr
    3, // llvm.arm.vcvtru
    3, // llvm.bswap
    3, // llvm.convert.from.fp16
    3, // llvm.convert.to.fp16
    2, // llvm.convertff
    2, // llvm.convertfsi
    2, // llvm.convertfui
    2, // llvm.convertsif
    2, // llvm.convertss
    2, // llvm.convertsu
    2, // llvm.convertuif
    2, // llvm.convertus
    2, // llvm.convertuu
    1, // llvm.cos
    3, // llvm.ctlz
    3, // llvm.ctpop
    3, // llvm.cttz
    2, // llvm.cuda.syncthreads
    3, // llvm.dbg.declare
    3, // llvm.dbg.value
    2, // llvm.debugtrap
    3, // llvm.donothing
    2, // llvm.eh.dwarf.cfa
    2, // llvm.eh.return.i32
    2, // llvm.eh.return.i64
    3, // llvm.eh.sjlj.callsite
    2, // llvm.eh.sjlj.functioncontext
    2, // llvm.eh.sjlj.longjmp
    3, // llvm.eh.sjlj.lsda
    2, // llvm.eh.sjlj.setjmp
    3, // llvm.eh.typeid.for
    2, // llvm.eh.unwind.init
    1, // llvm.exp
    1, // llvm.exp2
    3, // llvm.expect
    1, // llvm.fabs
    1, // llvm.floor
    2, // llvm.flt.rounds
    3, // llvm.fma
    3, // llvm.fmuladd
    3, // llvm.frameaddress
    1, // llvm.gcread
    2, // llvm.gcroot
    4, // llvm.gcwrite
    3, // llvm.hexagon.A2.abs
    3, // llvm.hexagon.A2.absp
    3, // llvm.hexagon.A2.abssat
    3, // llvm.hexagon.A2.add
    3, // llvm.hexagon.A2.addh.h16.hh
    3, // llvm.hexagon.A2.addh.h16.hl
    3, // llvm.hexagon.A2.addh.h16.lh
    3, // llvm.hexagon.A2.addh.h16.ll
    3, // llvm.hexagon.A2.addh.h16.sat.hh
    3, // llvm.hexagon.A2.addh.h16.sat.hl
    3, // llvm.hexagon.A2.addh.h16.sat.lh
    3, // llvm.hexagon.A2.addh.h16.sat.ll
    3, // llvm.hexagon.A2.addh.l16.hl
    3, // llvm.hexagon.A2.addh.l16.ll
    3, // llvm.hexagon.A2.addh.l16.sat.hl
    3, // llvm.hexagon.A2.addh.l16.sat.ll
    3, // llvm.hexagon.A2.addi
    3, // llvm.hexagon.A2.addp
    3, // llvm.hexagon.A2.addpsat
    3, // llvm.hexagon.A2.addsat
    3, // llvm.hexagon.A2.addsp
    3, // llvm.hexagon.A2.and
    3, // llvm.hexagon.A2.andir
    3, // llvm.hexagon.A2.andp
    3, // llvm.hexagon.A2.aslh
    3, // llvm.hexagon.A2.asrh
    3, // llvm.hexagon.A2.combine.hh
    3, // llvm.hexagon.A2.combine.hl
    3, // llvm.hexagon.A2.combine.lh
    3, // llvm.hexagon.A2.combine.ll
    3, // llvm.hexagon.A2.combineii
    3, // llvm.hexagon.A2.combinew
    3, // llvm.hexagon.A2.max
    3, // llvm.hexagon.A2.maxp
    3, // llvm.hexagon.A2.maxu
    3, // llvm.hexagon.A2.maxup
    3, // llvm.hexagon.A2.min
    3, // llvm.hexagon.A2.minp
    3, // llvm.hexagon.A2.minu
    3, // llvm.hexagon.A2.minup
    3, // llvm.hexagon.A2.neg
    3, // llvm.hexagon.A2.negp
    3, // llvm.hexagon.A2.negsat
    3, // llvm.hexagon.A2.not
    3, // llvm.hexagon.A2.notp
    3, // llvm.hexagon.A2.or
    3, // llvm.hexagon.A2.orir
    3, // llvm.hexagon.A2.orp
    3, // llvm.hexagon.A2.roundsat
    3, // llvm.hexagon.A2.sat
    3, // llvm.hexagon.A2.satb
    3, // llvm.hexagon.A2.sath
    3, // llvm.hexagon.A2.satub
    3, // llvm.hexagon.A2.satuh
    3, // llvm.hexagon.A2.sub
    3, // llvm.hexagon.A2.subh.h16.hh
    3, // llvm.hexagon.A2.subh.h16.hl
    3, // llvm.hexagon.A2.subh.h16.lh
    3, // llvm.hexagon.A2.subh.h16.ll
    3, // llvm.hexagon.A2.subh.h16.sat.hh
    3, // llvm.hexagon.A2.subh.h16.sat.hl
    3, // llvm.hexagon.A2.subh.h16.sat.lh
    3, // llvm.hexagon.A2.subh.h16.sat.ll
    3, // llvm.hexagon.A2.subh.l16.hl
    3, // llvm.hexagon.A2.subh.l16.ll
    3, // llvm.hexagon.A2.subh.l16.sat.hl
    3, // llvm.hexagon.A2.subh.l16.sat.ll
    3, // llvm.hexagon.A2.subp
    3, // llvm.hexagon.A2.subri
    3, // llvm.hexagon.A2.subsat
    3, // llvm.hexagon.A2.svaddh
    3, // llvm.hexagon.A2.svaddhs
    3, // llvm.hexagon.A2.svadduhs
    3, // llvm.hexagon.A2.svavgh
    3, // llvm.hexagon.A2.svavghs
    3, // llvm.hexagon.A2.svnavgh
    3, // llvm.hexagon.A2.svsubh
    3, // llvm.hexagon.A2.svsubhs
    3, // llvm.hexagon.A2.svsubuhs
    3, // llvm.hexagon.A2.swiz
    3, // llvm.hexagon.A2.sxtb
    3, // llvm.hexagon.A2.sxth
    3, // llvm.hexagon.A2.sxtw
    3, // llvm.hexagon.A2.tfr
    3, // llvm.hexagon.A2.tfrih
    3, // llvm.hexagon.A2.tfril
    3, // llvm.hexagon.A2.tfrp
    3, // llvm.hexagon.A2.tfrpi
    3, // llvm.hexagon.A2.tfrsi
    3, // llvm.hexagon.A2.vabsh
    3, // llvm.hexagon.A2.vabshsat
    3, // llvm.hexagon.A2.vabsw
    3, // llvm.hexagon.A2.vabswsat
    3, // llvm.hexagon.A2.vaddb.map
    3, // llvm.hexagon.A2.vaddh
    3, // llvm.hexagon.A2.vaddhs
    3, // llvm.hexagon.A2.vaddub
    3, // llvm.hexagon.A2.vaddubs
    3, // llvm.hexagon.A2.vadduhs
    3, // llvm.hexagon.A2.vaddw
    3, // llvm.hexagon.A2.vaddws
    3, // llvm.hexagon.A2.vavgh
    3, // llvm.hexagon.A2.vavghcr
    3, // llvm.hexagon.A2.vavghr
    3, // llvm.hexagon.A2.vavgub
    3, // llvm.hexagon.A2.vavgubr
    3, // llvm.hexagon.A2.vavguh
    3, // llvm.hexagon.A2.vavguhr
    3, // llvm.hexagon.A2.vavguw
    3, // llvm.hexagon.A2.vavguwr
    3, // llvm.hexagon.A2.vavgw
    3, // llvm.hexagon.A2.vavgwcr
    3, // llvm.hexagon.A2.vavgwr
    3, // llvm.hexagon.A2.vcmpbeq
    3, // llvm.hexagon.A2.vcmpbgtu
    3, // llvm.hexagon.A2.vcmpheq
    3, // llvm.hexagon.A2.vcmphgt
    3, // llvm.hexagon.A2.vcmphgtu
    3, // llvm.hexagon.A2.vcmpweq
    3, // llvm.hexagon.A2.vcmpwgt
    3, // llvm.hexagon.A2.vcmpwgtu
    3, // llvm.hexagon.A2.vconj
    3, // llvm.hexagon.A2.vmaxb
    3, // llvm.hexagon.A2.vmaxh
    3, // llvm.hexagon.A2.vmaxub
    3, // llvm.hexagon.A2.vmaxuh
    3, // llvm.hexagon.A2.vmaxuw
    3, // llvm.hexagon.A2.vmaxw
    3, // llvm.hexagon.A2.vminb
    3, // llvm.hexagon.A2.vminh
    3, // llvm.hexagon.A2.vminub
    3, // llvm.hexagon.A2.vminuh
    3, // llvm.hexagon.A2.vminuw
    3, // llvm.hexagon.A2.vminw
    3, // llvm.hexagon.A2.vnavgh
    3, // llvm.hexagon.A2.vnavghcr
    3, // llvm.hexagon.A2.vnavghr
    3, // llvm.hexagon.A2.vnavgw
    3, // llvm.hexagon.A2.vnavgwcr
    3, // llvm.hexagon.A2.vnavgwr
    3, // llvm.hexagon.A2.vraddub
    3, // llvm.hexagon.A2.vraddub.acc
    3, // llvm.hexagon.A2.vrsadub
    3, // llvm.hexagon.A2.vrsadub.acc
    3, // llvm.hexagon.A2.vsubb.map
    3, // llvm.hexagon.A2.vsubh
    3, // llvm.hexagon.A2.vsubhs
    3, // llvm.hexagon.A2.vsubub
    3, // llvm.hexagon.A2.vsububs
    3, // llvm.hexagon.A2.vsubuhs
    3, // llvm.hexagon.A2.vsubw
    3, // llvm.hexagon.A2.vsubws
    3, // llvm.hexagon.A2.xor
    3, // llvm.hexagon.A2.xorp
    3, // llvm.hexagon.A2.zxtb
    3, // llvm.hexagon.A2.zxth
    3, // llvm.hexagon.A4.andn
    3, // llvm.hexagon.A4.andnp
    3, // llvm.hexagon.A4.bitsplit
    3, // llvm.hexagon.A4.bitspliti
    3, // llvm.hexagon.A4.boundscheck
    3, // llvm.hexagon.A4.cmpbeq
    3, // llvm.hexagon.A4.cmpbeqi
    3, // llvm.hexagon.A4.cmpbgt
    3, // llvm.hexagon.A4.cmpbgti
    3, // llvm.hexagon.A4.cmpbgtu
    3, // llvm.hexagon.A4.cmpbgtui
    3, // llvm.hexagon.A4.cmpheq
    3, // llvm.hexagon.A4.cmpheqi
    3, // llvm.hexagon.A4.cmphgt
    3, // llvm.hexagon.A4.cmphgti
    3, // llvm.hexagon.A4.cmphgtu
    3, // llvm.hexagon.A4.cmphgtui
    3, // llvm.hexagon.A4.combineir
    3, // llvm.hexagon.A4.combineri
    3, // llvm.hexagon.A4.cround.ri
    3, // llvm.hexagon.A4.cround.rr
    3, // llvm.hexagon.A4.modwrapu
    3, // llvm.hexagon.A4.orn
    3, // llvm.hexagon.A4.ornp
    3, // llvm.hexagon.A4.rcmpeq
    3, // llvm.hexagon.A4.rcmpeqi
    3, // llvm.hexagon.A4.rcmpneq
    3, // llvm.hexagon.A4.rcmpneqi
    3, // llvm.hexagon.A4.round.ri
    3, // llvm.hexagon.A4.round.ri.sat
    3, // llvm.hexagon.A4.round.rr
    3, // llvm.hexagon.A4.round.rr.sat
    3, // llvm.hexagon.A4.tlbmatch
    3, // llvm.hexagon.A4.vcmpbeq.any
    3, // llvm.hexagon.A4.vcmpbeqi
    3, // llvm.hexagon.A4.vcmpbgt
    3, // llvm.hexagon.A4.vcmpbgti
    3, // llvm.hexagon.A4.vcmpbgtui
    3, // llvm.hexagon.A4.vcmpheqi
    3, // llvm.hexagon.A4.vcmphgti
    3, // llvm.hexagon.A4.vcmphgtui
    3, // llvm.hexagon.A4.vcmpweqi
    3, // llvm.hexagon.A4.vcmpwgti
    3, // llvm.hexagon.A4.vcmpwgtui
    3, // llvm.hexagon.A4.vrmaxh
    3, // llvm.hexagon.A4.vrmaxuh
    3, // llvm.hexagon.A4.vrmaxuw
    3, // llvm.hexagon.A4.vrmaxw
    3, // llvm.hexagon.A4.vrminh
    3, // llvm.hexagon.A4.vrminuh
    3, // llvm.hexagon.A4.vrminuw
    3, // llvm.hexagon.A4.vrminw
    3, // llvm.hexagon.A5.vaddhubs
    3, // llvm.hexagon.C2.all8
    3, // llvm.hexagon.C2.and
    3, // llvm.hexagon.C2.andn
    3, // llvm.hexagon.C2.any8
    3, // llvm.hexagon.C2.bitsclr
    3, // llvm.hexagon.C2.bitsclri
    3, // llvm.hexagon.C2.bitsset
    3, // llvm.hexagon.C2.cmpeq
    3, // llvm.hexagon.C2.cmpeqi
    3, // llvm.hexagon.C2.cmpeqp
    3, // llvm.hexagon.C2.cmpgei
    3, // llvm.hexagon.C2.cmpgeui
    3, // llvm.hexagon.C2.cmpgt
    3, // llvm.hexagon.C2.cmpgti
    3, // llvm.hexagon.C2.cmpgtp
    3, // llvm.hexagon.C2.cmpgtu
    3, // llvm.hexagon.C2.cmpgtui
    3, // llvm.hexagon.C2.cmpgtup
    3, // llvm.hexagon.C2.cmplt
    3, // llvm.hexagon.C2.cmpltu
    3, // llvm.hexagon.C2.mask
    3, // llvm.hexagon.C2.mux
    3, // llvm.hexagon.C2.muxii
    3, // llvm.hexagon.C2.muxir
    3, // llvm.hexagon.C2.muxri
    3, // llvm.hexagon.C2.not
    3, // llvm.hexagon.C2.or
    3, // llvm.hexagon.C2.orn
    3, // llvm.hexagon.C2.pxfer.map
    3, // llvm.hexagon.C2.tfrpr
    3, // llvm.hexagon.C2.tfrrp
    3, // llvm.hexagon.C2.vitpack
    3, // llvm.hexagon.C2.vmux
    3, // llvm.hexagon.C2.xor
    3, // llvm.hexagon.C4.and.and
    3, // llvm.hexagon.C4.and.andn
    3, // llvm.hexagon.C4.and.or
    3, // llvm.hexagon.C4.and.orn
    3, // llvm.hexagon.C4.cmplte
    3, // llvm.hexagon.C4.cmpltei
    3, // llvm.hexagon.C4.cmplteu
    3, // llvm.hexagon.C4.cmplteui
    3, // llvm.hexagon.C4.cmpneq
    3, // llvm.hexagon.C4.cmpneqi
    3, // llvm.hexagon.C4.fastcorner9
    3, // llvm.hexagon.C4.fastcorner9.not
    3, // llvm.hexagon.C4.nbitsclr
    3, // llvm.hexagon.C4.nbitsclri
    3, // llvm.hexagon.C4.nbitsset
    3, // llvm.hexagon.C4.or.and
    3, // llvm.hexagon.C4.or.andn
    3, // llvm.hexagon.C4.or.or
    3, // llvm.hexagon.C4.or.orn
    3, // llvm.hexagon.F2.conv.d2df
    3, // llvm.hexagon.F2.conv.d2sf
    3, // llvm.hexagon.F2.conv.df2d
    3, // llvm.hexagon.F2.conv.df2d.chop
    3, // llvm.hexagon.F2.conv.df2sf
    3, // llvm.hexagon.F2.conv.df2ud
    3, // llvm.hexagon.F2.conv.df2ud.chop
    3, // llvm.hexagon.F2.conv.df2uw
    3, // llvm.hexagon.F2.conv.df2uw.chop
    3, // llvm.hexagon.F2.conv.df2w
    3, // llvm.hexagon.F2.conv.df2w.chop
    3, // llvm.hexagon.F2.conv.sf2d
    3, // llvm.hexagon.F2.conv.sf2d.chop
    3, // llvm.hexagon.F2.conv.sf2df
    3, // llvm.hexagon.F2.conv.sf2ud
    3, // llvm.hexagon.F2.conv.sf2ud.chop
    3, // llvm.hexagon.F2.conv.sf2uw
    3, // llvm.hexagon.F2.conv.sf2uw.chop
    3, // llvm.hexagon.F2.conv.sf2w
    3, // llvm.hexagon.F2.conv.sf2w.chop
    3, // llvm.hexagon.F2.conv.ud2df
    3, // llvm.hexagon.F2.conv.ud2sf
    3, // llvm.hexagon.F2.conv.uw2df
    3, // llvm.hexagon.F2.conv.uw2sf
    3, // llvm.hexagon.F2.conv.w2df
    3, // llvm.hexagon.F2.conv.w2sf
    3, // llvm.hexagon.F2.dfadd
    3, // llvm.hexagon.F2.dfclass
    3, // llvm.hexagon.F2.dfcmpeq
    3, // llvm.hexagon.F2.dfcmpge
    3, // llvm.hexagon.F2.dfcmpgt
    3, // llvm.hexagon.F2.dfcmpuo
    3, // llvm.hexagon.F2.dffixupd
    3, // llvm.hexagon.F2.dffixupn
    3, // llvm.hexagon.F2.dffixupr
    3, // llvm.hexagon.F2.dffma
    3, // llvm.hexagon.F2.dffma.lib
    3, // llvm.hexagon.F2.dffma.sc
    3, // llvm.hexagon.F2.dffms
    3, // llvm.hexagon.F2.dffms.lib
    3, // llvm.hexagon.F2.dfimm.n
    3, // llvm.hexagon.F2.dfimm.p
    3, // llvm.hexagon.F2.dfmax
    3, // llvm.hexagon.F2.dfmin
    3, // llvm.hexagon.F2.dfmpy
    3, // llvm.hexagon.F2.dfsub
    3, // llvm.hexagon.F2.sfadd
    3, // llvm.hexagon.F2.sfclass
    3, // llvm.hexagon.F2.sfcmpeq
    3, // llvm.hexagon.F2.sfcmpge
    3, // llvm.hexagon.F2.sfcmpgt
    3, // llvm.hexagon.F2.sfcmpuo
    3, // llvm.hexagon.F2.sffixupd
    3, // llvm.hexagon.F2.sffixupn
    3, // llvm.hexagon.F2.sffixupr
    3, // llvm.hexagon.F2.sffma
    3, // llvm.hexagon.F2.sffma.lib
    3, // llvm.hexagon.F2.sffma.sc
    3, // llvm.hexagon.F2.sffms
    3, // llvm.hexagon.F2.sffms.lib
    3, // llvm.hexagon.F2.sfimm.n
    3, // llvm.hexagon.F2.sfimm.p
    3, // llvm.hexagon.F2.sfmax
    3, // llvm.hexagon.F2.sfmin
    3, // llvm.hexagon.F2.sfmpy
    3, // llvm.hexagon.F2.sfsub
    3, // llvm.hexagon.M2.acci
    3, // llvm.hexagon.M2.accii
    3, // llvm.hexagon.M2.cmaci.s0
    3, // llvm.hexagon.M2.cmacr.s0
    3, // llvm.hexagon.M2.cmacs.s0
    3, // llvm.hexagon.M2.cmacs.s1
    3, // llvm.hexagon.M2.cmacsc.s0
    3, // llvm.hexagon.M2.cmacsc.s1
    3, // llvm.hexagon.M2.cmpyi.s0
    3, // llvm.hexagon.M2.cmpyr.s0
    3, // llvm.hexagon.M2.cmpyrs.s0
    3, // llvm.hexagon.M2.cmpyrs.s1
    3, // llvm.hexagon.M2.cmpyrsc.s0
    3, // llvm.hexagon.M2.cmpyrsc.s1
    3, // llvm.hexagon.M2.cmpys.s0
    3, // llvm.hexagon.M2.cmpys.s1
    3, // llvm.hexagon.M2.cmpysc.s0
    3, // llvm.hexagon.M2.cmpysc.s1
    3, // llvm.hexagon.M2.cnacs.s0
    3, // llvm.hexagon.M2.cnacs.s1
    3, // llvm.hexagon.M2.cnacsc.s0
    3, // llvm.hexagon.M2.cnacsc.s1
    3, // llvm.hexagon.M2.dpmpyss.acc.s0
    3, // llvm.hexagon.M2.dpmpyss.nac.s0
    3, // llvm.hexagon.M2.dpmpyss.rnd.s0
    3, // llvm.hexagon.M2.dpmpyss.s0
    3, // llvm.hexagon.M2.dpmpyuu.acc.s0
    3, // llvm.hexagon.M2.dpmpyuu.nac.s0
    3, // llvm.hexagon.M2.dpmpyuu.s0
    3, // llvm.hexagon.M2.hmmpyh.rs1
    3, // llvm.hexagon.M2.hmmpyh.s1
    3, // llvm.hexagon.M2.hmmpyl.rs1
    3, // llvm.hexagon.M2.hmmpyl.s1
    3, // llvm.hexagon.M2.maci
    3, // llvm.hexagon.M2.macsin
    3, // llvm.hexagon.M2.macsip
    3, // llvm.hexagon.M2.mmachs.rs0
    3, // llvm.hexagon.M2.mmachs.rs1
    3, // llvm.hexagon.M2.mmachs.s0
    3, // llvm.hexagon.M2.mmachs.s1
    3, // llvm.hexagon.M2.mmacls.rs0
    3, // llvm.hexagon.M2.mmacls.rs1
    3, // llvm.hexagon.M2.mmacls.s0
    3, // llvm.hexagon.M2.mmacls.s1
    3, // llvm.hexagon.M2.mmacuhs.rs0
    3, // llvm.hexagon.M2.mmacuhs.rs1
    3, // llvm.hexagon.M2.mmacuhs.s0
    3, // llvm.hexagon.M2.mmacuhs.s1
    3, // llvm.hexagon.M2.mmaculs.rs0
    3, // llvm.hexagon.M2.mmaculs.rs1
    3, // llvm.hexagon.M2.mmaculs.s0
    3, // llvm.hexagon.M2.mmaculs.s1
    3, // llvm.hexagon.M2.mmpyh.rs0
    3, // llvm.hexagon.M2.mmpyh.rs1
    3, // llvm.hexagon.M2.mmpyh.s0
    3, // llvm.hexagon.M2.mmpyh.s1
    3, // llvm.hexagon.M2.mmpyl.rs0
    3, // llvm.hexagon.M2.mmpyl.rs1
    3, // llvm.hexagon.M2.mmpyl.s0
    3, // llvm.hexagon.M2.mmpyl.s1
    3, // llvm.hexagon.M2.mmpyuh.rs0
    3, // llvm.hexagon.M2.mmpyuh.rs1
    3, // llvm.hexagon.M2.mmpyuh.s0
    3, // llvm.hexagon.M2.mmpyuh.s1
    3, // llvm.hexagon.M2.mmpyul.rs0
    3, // llvm.hexagon.M2.mmpyul.rs1
    3, // llvm.hexagon.M2.mmpyul.s0
    3, // llvm.hexagon.M2.mmpyul.s1
    3, // llvm.hexagon.M2.mpy.acc.hh.s0
    3, // llvm.hexagon.M2.mpy.acc.hh.s1
    3, // llvm.hexagon.M2.mpy.acc.hl.s0
    3, // llvm.hexagon.M2.mpy.acc.hl.s1
    3, // llvm.hexagon.M2.mpy.acc.lh.s0
    3, // llvm.hexagon.M2.mpy.acc.lh.s1
    3, // llvm.hexagon.M2.mpy.acc.ll.s0
    3, // llvm.hexagon.M2.mpy.acc.ll.s1
    3, // llvm.hexagon.M2.mpy.acc.sat.hh.s0
    3, // llvm.hexagon.M2.mpy.acc.sat.hh.s1
    3, // llvm.hexagon.M2.mpy.acc.sat.hl.s0
    3, // llvm.hexagon.M2.mpy.acc.sat.hl.s1
    3, // llvm.hexagon.M2.mpy.acc.sat.lh.s0
    3, // llvm.hexagon.M2.mpy.acc.sat.lh.s1
    3, // llvm.hexagon.M2.mpy.acc.sat.ll.s0
    3, // llvm.hexagon.M2.mpy.acc.sat.ll.s1
    3, // llvm.hexagon.M2.mpy.hh.s0
    3, // llvm.hexagon.M2.mpy.hh.s1
    3, // llvm.hexagon.M2.mpy.hl.s0
    3, // llvm.hexagon.M2.mpy.hl.s1
    3, // llvm.hexagon.M2.mpy.lh.s0
    3, // llvm.hexagon.M2.mpy.lh.s1
    3, // llvm.hexagon.M2.mpy.ll.s0
    3, // llvm.hexagon.M2.mpy.ll.s1
    3, // llvm.hexagon.M2.mpy.nac.hh.s0
    3, // llvm.hexagon.M2.mpy.nac.hh.s1
    3, // llvm.hexagon.M2.mpy.nac.hl.s0
    3, // llvm.hexagon.M2.mpy.nac.hl.s1
    3, // llvm.hexagon.M2.mpy.nac.lh.s0
    3, // llvm.hexagon.M2.mpy.nac.lh.s1
    3, // llvm.hexagon.M2.mpy.nac.ll.s0
    3, // llvm.hexagon.M2.mpy.nac.ll.s1
    3, // llvm.hexagon.M2.mpy.nac.sat.hh.s0
    3, // llvm.hexagon.M2.mpy.nac.sat.hh.s1
    3, // llvm.hexagon.M2.mpy.nac.sat.hl.s0
    3, // llvm.hexagon.M2.mpy.nac.sat.hl.s1
    3, // llvm.hexagon.M2.mpy.nac.sat.lh.s0
    3, // llvm.hexagon.M2.mpy.nac.sat.lh.s1
    3, // llvm.hexagon.M2.mpy.nac.sat.ll.s0
    3, // llvm.hexagon.M2.mpy.nac.sat.ll.s1
    3, // llvm.hexagon.M2.mpy.rnd.hh.s0
    3, // llvm.hexagon.M2.mpy.rnd.hh.s1
    3, // llvm.hexagon.M2.mpy.rnd.hl.s0
    3, // llvm.hexagon.M2.mpy.rnd.hl.s1
    3, // llvm.hexagon.M2.mpy.rnd.lh.s0
    3, // llvm.hexagon.M2.mpy.rnd.lh.s1
    3, // llvm.hexagon.M2.mpy.rnd.ll.s0
    3, // llvm.hexagon.M2.mpy.rnd.ll.s1
    3, // llvm.hexagon.M2.mpy.sat.hh.s0
    3, // llvm.hexagon.M2.mpy.sat.hh.s1
    3, // llvm.hexagon.M2.mpy.sat.hl.s0
    3, // llvm.hexagon.M2.mpy.sat.hl.s1
    3, // llvm.hexagon.M2.mpy.sat.lh.s0
    3, // llvm.hexagon.M2.mpy.sat.lh.s1
    3, // llvm.hexagon.M2.mpy.sat.ll.s0
    3, // llvm.hexagon.M2.mpy.sat.ll.s1
    3, // llvm.hexagon.M2.mpy.sat.rnd.hh.s0
    3, // llvm.hexagon.M2.mpy.sat.rnd.hh.s1
    3, // llvm.hexagon.M2.mpy.sat.rnd.hl.s0
    3, // llvm.hexagon.M2.mpy.sat.rnd.hl.s1
    3, // llvm.hexagon.M2.mpy.sat.rnd.lh.s0
    3, // llvm.hexagon.M2.mpy.sat.rnd.lh.s1
    3, // llvm.hexagon.M2.mpy.sat.rnd.ll.s0
    3, // llvm.hexagon.M2.mpy.sat.rnd.ll.s1
    3, // llvm.hexagon.M2.mpy.up
    3, // llvm.hexagon.M2.mpy.up.s1
    3, // llvm.hexagon.M2.mpy.up.s1.sat
    3, // llvm.hexagon.M2.mpyd.acc.hh.s0
    3, // llvm.hexagon.M2.mpyd.acc.hh.s1
    3, // llvm.hexagon.M2.mpyd.acc.hl.s0
    3, // llvm.hexagon.M2.mpyd.acc.hl.s1
    3, // llvm.hexagon.M2.mpyd.acc.lh.s0
    3, // llvm.hexagon.M2.mpyd.acc.lh.s1
    3, // llvm.hexagon.M2.mpyd.acc.ll.s0
    3, // llvm.hexagon.M2.mpyd.acc.ll.s1
    3, // llvm.hexagon.M2.mpyd.hh.s0
    3, // llvm.hexagon.M2.mpyd.hh.s1
    3, // llvm.hexagon.M2.mpyd.hl.s0
    3, // llvm.hexagon.M2.mpyd.hl.s1
    3, // llvm.hexagon.M2.mpyd.lh.s0
    3, // llvm.hexagon.M2.mpyd.lh.s1
    3, // llvm.hexagon.M2.mpyd.ll.s0
    3, // llvm.hexagon.M2.mpyd.ll.s1
    3, // llvm.hexagon.M2.mpyd.nac.hh.s0
    3, // llvm.hexagon.M2.mpyd.nac.hh.s1
    3, // llvm.hexagon.M2.mpyd.nac.hl.s0
    3, // llvm.hexagon.M2.mpyd.nac.hl.s1
    3, // llvm.hexagon.M2.mpyd.nac.lh.s0
    3, // llvm.hexagon.M2.mpyd.nac.lh.s1
    3, // llvm.hexagon.M2.mpyd.nac.ll.s0
    3, // llvm.hexagon.M2.mpyd.nac.ll.s1
    3, // llvm.hexagon.M2.mpyd.rnd.hh.s0
    3, // llvm.hexagon.M2.mpyd.rnd.hh.s1
    3, // llvm.hexagon.M2.mpyd.rnd.hl.s0
    3, // llvm.hexagon.M2.mpyd.rnd.hl.s1
    3, // llvm.hexagon.M2.mpyd.rnd.lh.s0
    3, // llvm.hexagon.M2.mpyd.rnd.lh.s1
    3, // llvm.hexagon.M2.mpyd.rnd.ll.s0
    3, // llvm.hexagon.M2.mpyd.rnd.ll.s1
    3, // llvm.hexagon.M2.mpyi
    3, // llvm.hexagon.M2.mpysmi
    3, // llvm.hexagon.M2.mpysu.up
    3, // llvm.hexagon.M2.mpyu.acc.hh.s0
    3, // llvm.hexagon.M2.mpyu.acc.hh.s1
    3, // llvm.hexagon.M2.mpyu.acc.hl.s0
    3, // llvm.hexagon.M2.mpyu.acc.hl.s1
    3, // llvm.hexagon.M2.mpyu.acc.lh.s0
    3, // llvm.hexagon.M2.mpyu.acc.lh.s1
    3, // llvm.hexagon.M2.mpyu.acc.ll.s0
    3, // llvm.hexagon.M2.mpyu.acc.ll.s1
    3, // llvm.hexagon.M2.mpyu.hh.s0
    3, // llvm.hexagon.M2.mpyu.hh.s1
    3, // llvm.hexagon.M2.mpyu.hl.s0
    3, // llvm.hexagon.M2.mpyu.hl.s1
    3, // llvm.hexagon.M2.mpyu.lh.s0
    3, // llvm.hexagon.M2.mpyu.lh.s1
    3, // llvm.hexagon.M2.mpyu.ll.s0
    3, // llvm.hexagon.M2.mpyu.ll.s1
    3, // llvm.hexagon.M2.mpyu.nac.hh.s0
    3, // llvm.hexagon.M2.mpyu.nac.hh.s1
    3, // llvm.hexagon.M2.mpyu.nac.hl.s0
    3, // llvm.hexagon.M2.mpyu.nac.hl.s1
    3, // llvm.hexagon.M2.mpyu.nac.lh.s0
    3, // llvm.hexagon.M2.mpyu.nac.lh.s1
    3, // llvm.hexagon.M2.mpyu.nac.ll.s0
    3, // llvm.hexagon.M2.mpyu.nac.ll.s1
    3, // llvm.hexagon.M2.mpyu.up
    3, // llvm.hexagon.M2.mpyud.acc.hh.s0
    3, // llvm.hexagon.M2.mpyud.acc.hh.s1
    3, // llvm.hexagon.M2.mpyud.acc.hl.s0
    3, // llvm.hexagon.M2.mpyud.acc.hl.s1
    3, // llvm.hexagon.M2.mpyud.acc.lh.s0
    3, // llvm.hexagon.M2.mpyud.acc.lh.s1
    3, // llvm.hexagon.M2.mpyud.acc.ll.s0
    3, // llvm.hexagon.M2.mpyud.acc.ll.s1
    3, // llvm.hexagon.M2.mpyud.hh.s0
    3, // llvm.hexagon.M2.mpyud.hh.s1
    3, // llvm.hexagon.M2.mpyud.hl.s0
    3, // llvm.hexagon.M2.mpyud.hl.s1
    3, // llvm.hexagon.M2.mpyud.lh.s0
    3, // llvm.hexagon.M2.mpyud.lh.s1
    3, // llvm.hexagon.M2.mpyud.ll.s0
    3, // llvm.hexagon.M2.mpyud.ll.s1
    3, // llvm.hexagon.M2.mpyud.nac.hh.s0
    3, // llvm.hexagon.M2.mpyud.nac.hh.s1
    3, // llvm.hexagon.M2.mpyud.nac.hl.s0
    3, // llvm.hexagon.M2.mpyud.nac.hl.s1
    3, // llvm.hexagon.M2.mpyud.nac.lh.s0
    3, // llvm.hexagon.M2.mpyud.nac.lh.s1
    3, // llvm.hexagon.M2.mpyud.nac.ll.s0
    3, // llvm.hexagon.M2.mpyud.nac.ll.s1
    3, // llvm.hexagon.M2.mpyui
    3, // llvm.hexagon.M2.nacci
    3, // llvm.hexagon.M2.naccii
    3, // llvm.hexagon.M2.subacc
    3, // llvm.hexagon.M2.vabsdiffh
    3, // llvm.hexagon.M2.vabsdiffw
    3, // llvm.hexagon.M2.vcmac.s0.sat.i
    3, // llvm.hexagon.M2.vcmac.s0.sat.r
    3, // llvm.hexagon.M2.vcmpy.s0.sat.i
    3, // llvm.hexagon.M2.vcmpy.s0.sat.r
    3, // llvm.hexagon.M2.vcmpy.s1.sat.i
    3, // llvm.hexagon.M2.vcmpy.s1.sat.r
    3, // llvm.hexagon.M2.vdmacs.s0
    3, // llvm.hexagon.M2.vdmacs.s1
    3, // llvm.hexagon.M2.vdmpyrs.s0
    3, // llvm.hexagon.M2.vdmpyrs.s1
    3, // llvm.hexagon.M2.vdmpys.s0
    3, // llvm.hexagon.M2.vdmpys.s1
    3, // llvm.hexagon.M2.vmac2
    3, // llvm.hexagon.M2.vmac2es
    3, // llvm.hexagon.M2.vmac2es.s0
    3, // llvm.hexagon.M2.vmac2es.s1
    3, // llvm.hexagon.M2.vmac2s.s0
    3, // llvm.hexagon.M2.vmac2s.s1
    3, // llvm.hexagon.M2.vmac2su.s0
    3, // llvm.hexagon.M2.vmac2su.s1
    3, // llvm.hexagon.M2.vmpy2es.s0
    3, // llvm.hexagon.M2.vmpy2es.s1
    3, // llvm.hexagon.M2.vmpy2s.s0
    3, // llvm.hexagon.M2.vmpy2s.s0pack
    3, // llvm.hexagon.M2.vmpy2s.s1
    3, // llvm.hexagon.M2.vmpy2s.s1pack
    3, // llvm.hexagon.M2.vmpy2su.s0
    3, // llvm.hexagon.M2.vmpy2su.s1
    3, // llvm.hexagon.M2.vraddh
    3, // llvm.hexagon.M2.vradduh
    3, // llvm.hexagon.M2.vrcmaci.s0
    3, // llvm.hexagon.M2.vrcmaci.s0c
    3, // llvm.hexagon.M2.vrcmacr.s0
    3, // llvm.hexagon.M2.vrcmacr.s0c
    3, // llvm.hexagon.M2.vrcmpyi.s0
    3, // llvm.hexagon.M2.vrcmpyi.s0c
    3, // llvm.hexagon.M2.vrcmpyr.s0
    3, // llvm.hexagon.M2.vrcmpyr.s0c
    3, // llvm.hexagon.M2.vrcmpys.acc.s1
    3, // llvm.hexagon.M2.vrcmpys.s1
    3, // llvm.hexagon.M2.vrcmpys.s1rp
    3, // llvm.hexagon.M2.vrmac.s0
    3, // llvm.hexagon.M2.vrmpy.s0
    3, // llvm.hexagon.M2.xor.xacc
    3, // llvm.hexagon.M4.and.and
    3, // llvm.hexagon.M4.and.andn
    3, // llvm.hexagon.M4.and.or
    3, // llvm.hexagon.M4.and.xor
    3, // llvm.hexagon.M4.cmpyi.wh
    3, // llvm.hexagon.M4.cmpyi.whc
    3, // llvm.hexagon.M4.cmpyr.wh
    3, // llvm.hexagon.M4.cmpyr.whc
    3, // llvm.hexagon.M4.mac.up.s1.sat
    3, // llvm.hexagon.M4.mpyri.addi
    3, // llvm.hexagon.M4.mpyri.addr
    3, // llvm.hexagon.M4.mpyri.addr.u2
    3, // llvm.hexagon.M4.mpyrr.addi
    3, // llvm.hexagon.M4.mpyrr.addr
    3, // llvm.hexagon.M4.nac.up.s1.sat
    3, // llvm.hexagon.M4.or.and
    3, // llvm.hexagon.M4.or.andn
    3, // llvm.hexagon.M4.or.or
    3, // llvm.hexagon.M4.or.xor
    3, // llvm.hexagon.M4.pmpyw
    3, // llvm.hexagon.M4.pmpyw.acc
    3, // llvm.hexagon.M4.vpmpyh
    3, // llvm.hexagon.M4.vpmpyh.acc
    3, // llvm.hexagon.M4.vrmpyeh.acc.s0
    3, // llvm.hexagon.M4.vrmpyeh.acc.s1
    3, // llvm.hexagon.M4.vrmpyeh.s0
    3, // llvm.hexagon.M4.vrmpyeh.s1
    3, // llvm.hexagon.M4.vrmpyoh.acc.s0
    3, // llvm.hexagon.M4.vrmpyoh.acc.s1
    3, // llvm.hexagon.M4.vrmpyoh.s0
    3, // llvm.hexagon.M4.vrmpyoh.s1
    3, // llvm.hexagon.M4.xor.and
    3, // llvm.hexagon.M4.xor.andn
    3, // llvm.hexagon.M4.xor.or
    3, // llvm.hexagon.M4.xor.xacc
    3, // llvm.hexagon.M5.vdmacbsu
    3, // llvm.hexagon.M5.vdmpybsu
    3, // llvm.hexagon.M5.vmacbsu
    3, // llvm.hexagon.M5.vmacbuu
    3, // llvm.hexagon.M5.vmpybsu
    3, // llvm.hexagon.M5.vmpybuu
    3, // llvm.hexagon.M5.vrmacbsu
    3, // llvm.hexagon.M5.vrmacbuu
    3, // llvm.hexagon.M5.vrmpybsu
    3, // llvm.hexagon.M5.vrmpybuu
    3, // llvm.hexagon.S2.addasl.rrri
    3, // llvm.hexagon.S2.asl.i.p
    3, // llvm.hexagon.S2.asl.i.p.acc
    3, // llvm.hexagon.S2.asl.i.p.and
    3, // llvm.hexagon.S2.asl.i.p.nac
    3, // llvm.hexagon.S2.asl.i.p.or
    3, // llvm.hexagon.S2.asl.i.p.xacc
    3, // llvm.hexagon.S2.asl.i.r
    3, // llvm.hexagon.S2.asl.i.r.acc
    3, // llvm.hexagon.S2.asl.i.r.and
    3, // llvm.hexagon.S2.asl.i.r.nac
    3, // llvm.hexagon.S2.asl.i.r.or
    3, // llvm.hexagon.S2.asl.i.r.sat
    3, // llvm.hexagon.S2.asl.i.r.xacc
    3, // llvm.hexagon.S2.asl.i.vh
    3, // llvm.hexagon.S2.asl.i.vw
    3, // llvm.hexagon.S2.asl.r.p
    3, // llvm.hexagon.S2.asl.r.p.acc
    3, // llvm.hexagon.S2.asl.r.p.and
    3, // llvm.hexagon.S2.asl.r.p.nac
    3, // llvm.hexagon.S2.asl.r.p.or
    3, // llvm.hexagon.S2.asl.r.p.xor
    3, // llvm.hexagon.S2.asl.r.r
    3, // llvm.hexagon.S2.asl.r.r.acc
    3, // llvm.hexagon.S2.asl.r.r.and
    3, // llvm.hexagon.S2.asl.r.r.nac
    3, // llvm.hexagon.S2.asl.r.r.or
    3, // llvm.hexagon.S2.asl.r.r.sat
    3, // llvm.hexagon.S2.asl.r.vh
    3, // llvm.hexagon.S2.asl.r.vw
    3, // llvm.hexagon.S2.asr.i.p
    3, // llvm.hexagon.S2.asr.i.p.acc
    3, // llvm.hexagon.S2.asr.i.p.and
    3, // llvm.hexagon.S2.asr.i.p.nac
    3, // llvm.hexagon.S2.asr.i.p.or
    3, // llvm.hexagon.S2.asr.i.p.rnd
    3, // llvm.hexagon.S2.asr.i.p.rnd.goodsyntax
    3, // llvm.hexagon.S2.asr.i.r
    3, // llvm.hexagon.S2.asr.i.r.acc
    3, // llvm.hexagon.S2.asr.i.r.and
    3, // llvm.hexagon.S2.asr.i.r.nac
    3, // llvm.hexagon.S2.asr.i.r.or
    3, // llvm.hexagon.S2.asr.i.r.rnd
    3, // llvm.hexagon.S2.asr.i.r.rnd.goodsyntax
    3, // llvm.hexagon.S2.asr.i.svw.trun
    3, // llvm.hexagon.S2.asr.i.vh
    3, // llvm.hexagon.S2.asr.i.vw
    3, // llvm.hexagon.S2.asr.r.p
    3, // llvm.hexagon.S2.asr.r.p.acc
    3, // llvm.hexagon.S2.asr.r.p.and
    3, // llvm.hexagon.S2.asr.r.p.nac
    3, // llvm.hexagon.S2.asr.r.p.or
    3, // llvm.hexagon.S2.asr.r.p.xor
    3, // llvm.hexagon.S2.asr.r.r
    3, // llvm.hexagon.S2.asr.r.r.acc
    3, // llvm.hexagon.S2.asr.r.r.and
    3, // llvm.hexagon.S2.asr.r.r.nac
    3, // llvm.hexagon.S2.asr.r.r.or
    3, // llvm.hexagon.S2.asr.r.r.sat
    3, // llvm.hexagon.S2.asr.r.svw.trun
    3, // llvm.hexagon.S2.asr.r.vh
    3, // llvm.hexagon.S2.asr.r.vw
    3, // llvm.hexagon.S2.brev
    3, // llvm.hexagon.S2.brevp
    3, // llvm.hexagon.S2.cl0
    3, // llvm.hexagon.S2.cl0p
    3, // llvm.hexagon.S2.cl1
    3, // llvm.hexagon.S2.cl1p
    3, // llvm.hexagon.S2.clb
    3, // llvm.hexagon.S2.clbnorm
    3, // llvm.hexagon.S2.clbp
    3, // llvm.hexagon.S2.clrbit.i
    3, // llvm.hexagon.S2.clrbit.r
    3, // llvm.hexagon.S2.ct0
    3, // llvm.hexagon.S2.ct0p
    3, // llvm.hexagon.S2.ct1
    3, // llvm.hexagon.S2.ct1p
    3, // llvm.hexagon.S2.deinterleave
    3, // llvm.hexagon.S2.extractu
    3, // llvm.hexagon.S2.extractu.rp
    3, // llvm.hexagon.S2.extractup
    3, // llvm.hexagon.S2.extractup.rp
    3, // llvm.hexagon.S2.insert
    3, // llvm.hexagon.S2.insert.rp
    3, // llvm.hexagon.S2.insertp
    3, // llvm.hexagon.S2.insertp.rp
    3, // llvm.hexagon.S2.interleave
    3, // llvm.hexagon.S2.lfsp
    3, // llvm.hexagon.S2.lsl.r.p
    3, // llvm.hexagon.S2.lsl.r.p.acc
    3, // llvm.hexagon.S2.lsl.r.p.and
    3, // llvm.hexagon.S2.lsl.r.p.nac
    3, // llvm.hexagon.S2.lsl.r.p.or
    3, // llvm.hexagon.S2.lsl.r.p.xor
    3, // llvm.hexagon.S2.lsl.r.r
    3, // llvm.hexagon.S2.lsl.r.r.acc
    3, // llvm.hexagon.S2.lsl.r.r.and
    3, // llvm.hexagon.S2.lsl.r.r.nac
    3, // llvm.hexagon.S2.lsl.r.r.or
    3, // llvm.hexagon.S2.lsl.r.vh
    3, // llvm.hexagon.S2.lsl.r.vw
    3, // llvm.hexagon.S2.lsr.i.p
    3, // llvm.hexagon.S2.lsr.i.p.acc
    3, // llvm.hexagon.S2.lsr.i.p.and
    3, // llvm.hexagon.S2.lsr.i.p.nac
    3, // llvm.hexagon.S2.lsr.i.p.or
    3, // llvm.hexagon.S2.lsr.i.p.xacc
    3, // llvm.hexagon.S2.lsr.i.r
    3, // llvm.hexagon.S2.lsr.i.r.acc
    3, // llvm.hexagon.S2.lsr.i.r.and
    3, // llvm.hexagon.S2.lsr.i.r.nac
    3, // llvm.hexagon.S2.lsr.i.r.or
    3, // llvm.hexagon.S2.lsr.i.r.xacc
    3, // llvm.hexagon.S2.lsr.i.vh
    3, // llvm.hexagon.S2.lsr.i.vw
    3, // llvm.hexagon.S2.lsr.r.p
    3, // llvm.hexagon.S2.lsr.r.p.acc
    3, // llvm.hexagon.S2.lsr.r.p.and
    3, // llvm.hexagon.S2.lsr.r.p.nac
    3, // llvm.hexagon.S2.lsr.r.p.or
    3, // llvm.hexagon.S2.lsr.r.p.xor
    3, // llvm.hexagon.S2.lsr.r.r
    3, // llvm.hexagon.S2.lsr.r.r.acc
    3, // llvm.hexagon.S2.lsr.r.r.and
    3, // llvm.hexagon.S2.lsr.r.r.nac
    3, // llvm.hexagon.S2.lsr.r.r.or
    3, // llvm.hexagon.S2.lsr.r.vh
    3, // llvm.hexagon.S2.lsr.r.vw
    3, // llvm.hexagon.S2.packhl
    3, // llvm.hexagon.S2.parityp
    3, // llvm.hexagon.S2.setbit.i
    3, // llvm.hexagon.S2.setbit.r
    3, // llvm.hexagon.S2.shuffeb
    3, // llvm.hexagon.S2.shuffeh
    3, // llvm.hexagon.S2.shuffob
    3, // llvm.hexagon.S2.shuffoh
    3, // llvm.hexagon.S2.svsathb
    3, // llvm.hexagon.S2.svsathub
    3, // llvm.hexagon.S2.tableidxb.goodsyntax
    3, // llvm.hexagon.S2.tableidxd.goodsyntax
    3, // llvm.hexagon.S2.tableidxh.goodsyntax
    3, // llvm.hexagon.S2.tableidxw.goodsyntax
    3, // llvm.hexagon.S2.togglebit.i
    3, // llvm.hexagon.S2.togglebit.r
    3, // llvm.hexagon.S2.tstbit.i
    3, // llvm.hexagon.S2.tstbit.r
    3, // llvm.hexagon.S2.valignib
    3, // llvm.hexagon.S2.valignrb
    3, // llvm.hexagon.S2.vcnegh
    3, // llvm.hexagon.S2.vcrotate
    3, // llvm.hexagon.S2.vrcnegh
    3, // llvm.hexagon.S2.vrndpackwh
    3, // llvm.hexagon.S2.vrndpackwhs
    3, // llvm.hexagon.S2.vsathb
    3, // llvm.hexagon.S2.vsathb.nopack
    3, // llvm.hexagon.S2.vsathub
    3, // llvm.hexagon.S2.vsathub.nopack
    3, // llvm.hexagon.S2.vsatwh
    3, // llvm.hexagon.S2.vsatwh.nopack
    3, // llvm.hexagon.S2.vsatwuh
    3, // llvm.hexagon.S2.vsatwuh.nopack
    3, // llvm.hexagon.S2.vsplatrb
    3, // llvm.hexagon.S2.vsplatrh
    3, // llvm.hexagon.S2.vspliceib
    3, // llvm.hexagon.S2.vsplicerb
    3, // llvm.hexagon.S2.vsxtbh
    3, // llvm.hexagon.S2.vsxthw
    3, // llvm.hexagon.S2.vtrunehb
    3, // llvm.hexagon.S2.vtrunewh
    3, // llvm.hexagon.S2.vtrunohb
    3, // llvm.hexagon.S2.vtrunowh
    3, // llvm.hexagon.S2.vzxtbh
    3, // llvm.hexagon.S2.vzxthw
    3, // llvm.hexagon.S4.addaddi
    3, // llvm.hexagon.S4.addi.asl.ri
    3, // llvm.hexagon.S4.addi.lsr.ri
    3, // llvm.hexagon.S4.andi.asl.ri
    3, // llvm.hexagon.S4.andi.lsr.ri
    3, // llvm.hexagon.S4.clbaddi
    3, // llvm.hexagon.S4.clbpaddi
    3, // llvm.hexagon.S4.clbpnorm
    3, // llvm.hexagon.S4.extract
    3, // llvm.hexagon.S4.extract.rp
    3, // llvm.hexagon.S4.extractp
    3, // llvm.hexagon.S4.extractp.rp
    3, // llvm.hexagon.S4.lsli
    3, // llvm.hexagon.S4.ntstbit.i
    3, // llvm.hexagon.S4.ntstbit.r
    3, // llvm.hexagon.S4.or.andi
    3, // llvm.hexagon.S4.or.andix
    3, // llvm.hexagon.S4.or.ori
    3, // llvm.hexagon.S4.ori.asl.ri
    3, // llvm.hexagon.S4.ori.lsr.ri
    3, // llvm.hexagon.S4.parity
    3, // llvm.hexagon.S4.subaddi
    3, // llvm.hexagon.S4.subi.asl.ri
    3, // llvm.hexagon.S4.subi.lsr.ri
    3, // llvm.hexagon.S4.vrcrotate
    3, // llvm.hexagon.S4.vrcrotate.acc
    3, // llvm.hexagon.S4.vxaddsubh
    3, // llvm.hexagon.S4.vxaddsubhr
    3, // llvm.hexagon.S4.vxaddsubw
    3, // llvm.hexagon.S4.vxsubaddh
    3, // llvm.hexagon.S4.vxsubaddhr
    3, // llvm.hexagon.S4.vxsubaddw
    3, // llvm.hexagon.S5.asrhub.rnd.sat.goodsyntax
    3, // llvm.hexagon.S5.asrhub.sat
    3, // llvm.hexagon.S5.popcountp
    3, // llvm.hexagon.S5.vasrhrnd.goodsyntax
    3, // llvm.hexagon.SI.to.SXTHI.asrh
    2, // llvm.hexagon.circ.ldd
    5, // llvm.init.trampoline
    6, // llvm.invariant.end
    7, // llvm.invariant.start
    7, // llvm.lifetime.end
    7, // llvm.lifetime.start
    1, // llvm.log
    1, // llvm.log10
    1, // llvm.log2
    2, // llvm.longjmp
    8, // llvm.memcpy
    8, // llvm.memmove
    5, // llvm.memset
    2, // llvm.mips.absq.s.ph
    2, // llvm.mips.absq.s.qb
    2, // llvm.mips.absq.s.w
    2, // llvm.mips.addq.ph
    2, // llvm.mips.addq.s.ph
    2, // llvm.mips.addq.s.w
    3, // llvm.mips.addqh.ph
    3, // llvm.mips.addqh.r.ph
    3, // llvm.mips.addqh.r.w
    3, // llvm.mips.addqh.w
    2, // llvm.mips.addsc
    2, // llvm.mips.addu.ph
    2, // llvm.mips.addu.qb
    2, // llvm.mips.addu.s.ph
    2, // llvm.mips.addu.s.qb
    3, // llvm.mips.adduh.qb
    3, // llvm.mips.adduh.r.qb
    2, // llvm.mips.addwc
    3, // llvm.mips.append
    3, // llvm.mips.balign
    3, // llvm.mips.bitrev
    1, // llvm.mips.bposge32
    2, // llvm.mips.cmp.eq.ph
    2, // llvm.mips.cmp.le.ph
    2, // llvm.mips.cmp.lt.ph
    2, // llvm.mips.cmpgdu.eq.qb
    2, // llvm.mips.cmpgdu.le.qb
    2, // llvm.mips.cmpgdu.lt.qb
    2, // llvm.mips.cmpgu.eq.qb
    2, // llvm.mips.cmpgu.le.qb
    2, // llvm.mips.cmpgu.lt.qb
    2, // llvm.mips.cmpu.eq.qb
    2, // llvm.mips.cmpu.le.qb
    2, // llvm.mips.cmpu.lt.qb
    3, // llvm.mips.dpa.w.ph
    2, // llvm.mips.dpaq.s.w.ph
    2, // llvm.mips.dpaq.sa.l.w
    2, // llvm.mips.dpaqx.s.w.ph
    2, // llvm.mips.dpaqx.sa.w.ph
    3, // llvm.mips.dpau.h.qbl
    3, // llvm.mips.dpau.h.qbr
    3, // llvm.mips.dpax.w.ph
    3, // llvm.mips.dps.w.ph
    2, // llvm.mips.dpsq.s.w.ph
    2, // llvm.mips.dpsq.sa.l.w
    2, // llvm.mips.dpsqx.s.w.ph
    2, // llvm.mips.dpsqx.sa.w.ph
    3, // llvm.mips.dpsu.h.qbl
    3, // llvm.mips.dpsu.h.qbr
    3, // llvm.mips.dpsx.w.ph
    2, // llvm.mips.extp
    2, // llvm.mips.extpdp
    2, // llvm.mips.extr.r.w
    2, // llvm.mips.extr.rs.w
    2, // llvm.mips.extr.s.h
    2, // llvm.mips.extr.w
    1, // llvm.mips.insv
    1, // llvm.mips.lbux
    1, // llvm.mips.lhx
    1, // llvm.mips.lwx
    3, // llvm.mips.madd
    3, // llvm.mips.maddu
    2, // llvm.mips.maq.s.w.phl
    2, // llvm.mips.maq.s.w.phr
    2, // llvm.mips.maq.sa.w.phl
    2, // llvm.mips.maq.sa.w.phr
    3, // llvm.mips.modsub
    3, // llvm.mips.msub
    3, // llvm.mips.msubu
    2, // llvm.mips.mthlip
    2, // llvm.mips.mul.ph
    2, // llvm.mips.mul.s.ph
    2, // llvm.mips.muleq.s.w.phl
    2, // llvm.mips.muleq.s.w.phr
    2, // llvm.mips.muleu.s.ph.qbl
    2, // llvm.mips.muleu.s.ph.qbr
    2, // llvm.mips.mulq.rs.ph
    2, // llvm.mips.mulq.rs.w
    2, // llvm.mips.mulq.s.ph
    2, // llvm.mips.mulq.s.w
    3, // llvm.mips.mulsa.w.ph
    2, // llvm.mips.mulsaq.s.w.ph
    3, // llvm.mips.mult
    3, // llvm.mips.multu
    3, // llvm.mips.packrl.ph
    1, // llvm.mips.pick.ph
    1, // llvm.mips.pick.qb
    3, // llvm.mips.preceq.w.phl
    3, // llvm.mips.preceq.w.phr
    3, // llvm.mips.precequ.ph.qbl
    3, // llvm.mips.precequ.ph.qbla
    3, // llvm.mips.precequ.ph.qbr
    3, // llvm.mips.precequ.ph.qbra
    3, // llvm.mips.preceu.ph.qbl
    3, // llvm.mips.preceu.ph.qbla
    3, // llvm.mips.preceu.ph.qbr
    3, // llvm.mips.preceu.ph.qbra
    2, // llvm.mips.precr.qb.ph
    3, // llvm.mips.precr.sra.ph.w
    3, // llvm.mips.precr.sra.r.ph.w
    3, // llvm.mips.precrq.ph.w
    3, // llvm.mips.precrq.qb.ph
    2, // llvm.mips.precrq.rs.ph.w
    2, // llvm.mips.precrqu.s.qb.ph
    3, // llvm.mips.prepend
    3, // llvm.mips.raddu.w.qb
    1, // llvm.mips.rddsp
    3, // llvm.mips.repl.ph
    3, // llvm.mips.repl.qb
    3, // llvm.mips.shilo
    2, // llvm.mips.shll.ph
    2, // llvm.mips.shll.qb
    2, // llvm.mips.shll.s.ph
    2, // llvm.mips.shll.s.w
    3, // llvm.mips.shra.ph
    3, // llvm.mips.shra.qb
    3, // llvm.mips.shra.r.ph
    3, // llvm.mips.shra.r.qb
    3, // llvm.mips.shra.r.w
    3, // llvm.mips.shrl.ph
    3, // llvm.mips.shrl.qb
    2, // llvm.mips.subq.ph
    2, // llvm.mips.subq.s.ph
    2, // llvm.mips.subq.s.w
    3, // llvm.mips.subqh.ph
    3, // llvm.mips.subqh.r.ph
    3, // llvm.mips.subqh.r.w
    3, // llvm.mips.subqh.w
    2, // llvm.mips.subu.ph
    2, // llvm.mips.subu.qb
    2, // llvm.mips.subu.s.ph
    2, // llvm.mips.subu.s.qb
    3, // llvm.mips.subuh.qb
    3, // llvm.mips.subuh.r.qb
    2, // llvm.mips.wrdsp
    3, // llvm.nvvm.abs.i
    3, // llvm.nvvm.abs.ll
    3, // llvm.nvvm.add.rm.d
    3, // llvm.nvvm.add.rm.f
    3, // llvm.nvvm.add.rm.ftz.f
    3, // llvm.nvvm.add.rn.d
    3, // llvm.nvvm.add.rn.f
    3, // llvm.nvvm.add.rn.ftz.f
    3, // llvm.nvvm.add.rp.d
    3, // llvm.nvvm.add.rp.f
    3, // llvm.nvvm.add.rp.ftz.f
    3, // llvm.nvvm.add.rz.d
    3, // llvm.nvvm.add.rz.f
    3, // llvm.nvvm.add.rz.ftz.f
    5, // llvm.nvvm.atomic.load.add.f32
    5, // llvm.nvvm.atomic.load.dec.32
    5, // llvm.nvvm.atomic.load.inc.32
    2, // llvm.nvvm.barrier0
    2, // llvm.nvvm.barrier0.and
    2, // llvm.nvvm.barrier0.or
    2, // llvm.nvvm.barrier0.popc
    3, // llvm.nvvm.bitcast.d2ll
    3, // llvm.nvvm.bitcast.f2i
    3, // llvm.nvvm.bitcast.i2f
    3, // llvm.nvvm.bitcast.ll2d
    3, // llvm.nvvm.brev32
    3, // llvm.nvvm.brev64
    3, // llvm.nvvm.ceil.d
    3, // llvm.nvvm.ceil.f
    3, // llvm.nvvm.ceil.ftz.f
    3, // llvm.nvvm.clz.i
    3, // llvm.nvvm.clz.ll
    2, // llvm.nvvm.compiler.error
    2, // llvm.nvvm.compiler.warn
    3, // llvm.nvvm.cos.approx.f
    3, // llvm.nvvm.cos.approx.ftz.f
    3, // llvm.nvvm.d2f.rm
    3, // llvm.nvvm.d2f.rm.ftz
    3, // llvm.nvvm.d2f.rn
    3, // llvm.nvvm.d2f.rn.ftz
    3, // llvm.nvvm.d2f.rp
    3, // llvm.nvvm.d2f.rp.ftz
    3, // llvm.nvvm.d2f.rz
    3, // llvm.nvvm.d2f.rz.ftz
    3, // llvm.nvvm.d2i.hi
    3, // llvm.nvvm.d2i.lo
    3, // llvm.nvvm.d2i.rm
    3, // llvm.nvvm.d2i.rn
    3, // llvm.nvvm.d2i.rp
    3, // llvm.nvvm.d2i.rz
    3, // llvm.nvvm.d2ll.rm
    3, // llvm.nvvm.d2ll.rn
    3, // llvm.nvvm.d2ll.rp
    3, // llvm.nvvm.d2ll.rz
    3, // llvm.nvvm.d2ui.rm
    3, // llvm.nvvm.d2ui.rn
    3, // llvm.nvvm.d2ui.rp
    3, // llvm.nvvm.d2ui.rz
    3, // llvm.nvvm.d2ull.rm
    3, // llvm.nvvm.d2ull.rn
    3, // llvm.nvvm.d2ull.rp
    3, // llvm.nvvm.d2ull.rz
    3, // llvm.nvvm.div.approx.f
    3, // llvm.nvvm.div.approx.ftz.f
    3, // llvm.nvvm.div.rm.d
    3, // llvm.nvvm.div.rm.f
    3, // llvm.nvvm.div.rm.ftz.f
    3, // llvm.nvvm.div.rn.d
    3, // llvm.nvvm.div.rn.f
    3, // llvm.nvvm.div.rn.ftz.f
    3, // llvm.nvvm.div.rp.d
    3, // llvm.nvvm.div.rp.f
    3, // llvm.nvvm.div.rp.ftz.f
    3, // llvm.nvvm.div.rz.d
    3, // llvm.nvvm.div.rz.f
    3, // llvm.nvvm.div.rz.ftz.f
    3, // llvm.nvvm.ex2.approx.d
    3, // llvm.nvvm.ex2.approx.f
    3, // llvm.nvvm.ex2.approx.ftz.f
    3, // llvm.nvvm.f2h.rn
    3, // llvm.nvvm.f2h.rn.ftz
    3, // llvm.nvvm.f2i.rm
    3, // llvm.nvvm.f2i.rm.ftz
    3, // llvm.nvvm.f2i.rn
    3, // llvm.nvvm.f2i.rn.ftz
    3, // llvm.nvvm.f2i.rp
    3, // llvm.nvvm.f2i.rp.ftz
    3, // llvm.nvvm.f2i.rz
    3, // llvm.nvvm.f2i.rz.ftz
    3, // llvm.nvvm.f2ll.rm
    3, // llvm.nvvm.f2ll.rm.ftz
    3, // llvm.nvvm.f2ll.rn
    3, // llvm.nvvm.f2ll.rn.ftz
    3, // llvm.nvvm.f2ll.rp
    3, // llvm.nvvm.f2ll.rp.ftz
    3, // llvm.nvvm.f2ll.rz
    3, // llvm.nvvm.f2ll.rz.ftz
    3, // llvm.nvvm.f2ui.rm
    3, // llvm.nvvm.f2ui.rm.ftz
    3, // llvm.nvvm.f2ui.rn
    3, // llvm.nvvm.f2ui.rn.ftz
    3, // llvm.nvvm.f2ui.rp
    3, // llvm.nvvm.f2ui.rp.ftz
    3, // llvm.nvvm.f2ui.rz
    3, // llvm.nvvm.f2ui.rz.ftz
    3, // llvm.nvvm.f2ull.rm
    3, // llvm.nvvm.f2ull.rm.ftz
    3, // llvm.nvvm.f2ull.rn
    3, // llvm.nvvm.f2ull.rn.ftz
    3, // llvm.nvvm.f2ull.rp
    3, // llvm.nvvm.f2ull.rp.ftz
    3, // llvm.nvvm.f2ull.rz
    3, // llvm.nvvm.f2ull.rz.ftz
    3, // llvm.nvvm.fabs.d
    3, // llvm.nvvm.fabs.f
    3, // llvm.nvvm.fabs.ftz.f
    3, // llvm.nvvm.floor.d
    3, // llvm.nvvm.floor.f
    3, // llvm.nvvm.floor.ftz.f
    3, // llvm.nvvm.fma.rm.d
    3, // llvm.nvvm.fma.rm.f
    3, // llvm.nvvm.fma.rm.ftz.f
    3, // llvm.nvvm.fma.rn.d
    3, // llvm.nvvm.fma.rn.f
    3, // llvm.nvvm.fma.rn.ftz.f
    3, // llvm.nvvm.fma.rp.d
    3, // llvm.nvvm.fma.rp.f
    3, // llvm.nvvm.fma.rp.ftz.f
    3, // llvm.nvvm.fma.rz.d
    3, // llvm.nvvm.fma.rz.f
    3, // llvm.nvvm.fma.rz.ftz.f
    3, // llvm.nvvm.fmax.d
    3, // llvm.nvvm.fmax.f
    3, // llvm.nvvm.fmax.ftz.f
    3, // llvm.nvvm.fmin.d
    3, // llvm.nvvm.fmin.f
    3, // llvm.nvvm.fmin.ftz.f
    3, // llvm.nvvm.h2f
    3, // llvm.nvvm.i2d.rm
    3, // llvm.nvvm.i2d.rn
    3, // llvm.nvvm.i2d.rp
    3, // llvm.nvvm.i2d.rz
    3, // llvm.nvvm.i2f.rm
    3, // llvm.nvvm.i2f.rn
    3, // llvm.nvvm.i2f.rp
    3, // llvm.nvvm.i2f.rz
    9, // llvm.nvvm.ldu.global.f
    9, // llvm.nvvm.ldu.global.i
    9, // llvm.nvvm.ldu.global.p
    3, // llvm.nvvm.lg2.approx.d
    3, // llvm.nvvm.lg2.approx.f
    3, // llvm.nvvm.lg2.approx.ftz.f
    3, // llvm.nvvm.ll2d.rm
    3, // llvm.nvvm.ll2d.rn
    3, // llvm.nvvm.ll2d.rp
    3, // llvm.nvvm.ll2d.rz
    3, // llvm.nvvm.ll2f.rm
    3, // llvm.nvvm.ll2f.rn
    3, // llvm.nvvm.ll2f.rp
    3, // llvm.nvvm.ll2f.rz
    3, // llvm.nvvm.lohi.i2d
    3, // llvm.nvvm.max.i
    3, // llvm.nvvm.max.ll
    3, // llvm.nvvm.max.ui
    3, // llvm.nvvm.max.ull
    2, // llvm.nvvm.membar.cta
    2, // llvm.nvvm.membar.gl
    2, // llvm.nvvm.membar.sys
    3, // llvm.nvvm.min.i
    3, // llvm.nvvm.min.ll
    3, // llvm.nvvm.min.ui
    3, // llvm.nvvm.min.ull
    3, // llvm.nvvm.move.double
    3, // llvm.nvvm.move.float
    3, // llvm.nvvm.move.i16
    3, // llvm.nvvm.move.i32
    3, // llvm.nvvm.move.i64
    3, // llvm.nvvm.move.i8
    10, // llvm.nvvm.move.ptr
    3, // llvm.nvvm.mul24.i
    3, // llvm.nvvm.mul24.ui
    3, // llvm.nvvm.mul.rm.d
    3, // llvm.nvvm.mul.rm.f
    3, // llvm.nvvm.mul.rm.ftz.f
    3, // llvm.nvvm.mul.rn.d
    3, // llvm.nvvm.mul.rn.f
    3, // llvm.nvvm.mul.rn.ftz.f
    3, // llvm.nvvm.mul.rp.d
    3, // llvm.nvvm.mul.rp.f
    3, // llvm.nvvm.mul.rp.ftz.f
    3, // llvm.nvvm.mul.rz.d
    3, // llvm.nvvm.mul.rz.f
    3, // llvm.nvvm.mul.rz.ftz.f
    3, // llvm.nvvm.mulhi.i
    3, // llvm.nvvm.mulhi.ll
    3, // llvm.nvvm.mulhi.ui
    3, // llvm.nvvm.mulhi.ull
    3, // llvm.nvvm.popc.i
    3, // llvm.nvvm.popc.ll
    3, // llvm.nvvm.prmt
    10, // llvm.nvvm.ptr.constant.to.gen
    10, // llvm.nvvm.ptr.gen.to.constant
    10, // llvm.nvvm.ptr.gen.to.global
    10, // llvm.nvvm.ptr.gen.to.local
    10, // llvm.nvvm.ptr.gen.to.param
    10, // llvm.nvvm.ptr.gen.to.shared
    10, // llvm.nvvm.ptr.global.to.gen
    10, // llvm.nvvm.ptr.local.to.gen
    10, // llvm.nvvm.ptr.shared.to.gen
    3, // llvm.nvvm.rcp.approx.ftz.d
    3, // llvm.nvvm.rcp.rm.d
    3, // llvm.nvvm.rcp.rm.f
    3, // llvm.nvvm.rcp.rm.ftz.f
    3, // llvm.nvvm.rcp.rn.d
    3, // llvm.nvvm.rcp.rn.f
    3, // llvm.nvvm.rcp.rn.ftz.f
    3, // llvm.nvvm.rcp.rp.d
    3, // llvm.nvvm.rcp.rp.f
    3, // llvm.nvvm.rcp.rp.ftz.f
    3, // llvm.nvvm.rcp.rz.d
    3, // llvm.nvvm.rcp.rz.f
    3, // llvm.nvvm.rcp.rz.ftz.f
    3, // llvm.nvvm.read.ptx.sreg.ctaid.x
    3, // llvm.nvvm.read.ptx.sreg.ctaid.y
    3, // llvm.nvvm.read.ptx.sreg.ctaid.z
    3, // llvm.nvvm.read.ptx.sreg.nctaid.x
    3, // llvm.nvvm.read.ptx.sreg.nctaid.y
    3, // llvm.nvvm.read.ptx.sreg.nctaid.z
    3, // llvm.nvvm.read.ptx.sreg.ntid.x
    3, // llvm.nvvm.read.ptx.sreg.ntid.y
    3, // llvm.nvvm.read.ptx.sreg.ntid.z
    3, // llvm.nvvm.read.ptx.sreg.tid.x
    3, // llvm.nvvm.read.ptx.sreg.tid.y
    3, // llvm.nvvm.read.ptx.sreg.tid.z
    3, // llvm.nvvm.read.ptx.sreg.warpsize
    3, // llvm.nvvm.round.d
    3, // llvm.nvvm.round.f
    3, // llvm.nvvm.round.ftz.f
    3, // llvm.nvvm.rsqrt.approx.d
    3, // llvm.nvvm.rsqrt.approx.f
    3, // llvm.nvvm.rsqrt.approx.ftz.f
    3, // llvm.nvvm.sad.i
    3, // llvm.nvvm.sad.ui
    3, // llvm.nvvm.saturate.d
    3, // llvm.nvvm.saturate.f
    3, // llvm.nvvm.saturate.ftz.f
    3, // llvm.nvvm.sin.approx.f
    3, // llvm.nvvm.sin.approx.ftz.f
    3, // llvm.nvvm.sqrt.approx.f
    3, // llvm.nvvm.sqrt.approx.ftz.f
    3, // llvm.nvvm.sqrt.rm.d
    3, // llvm.nvvm.sqrt.rm.f
    3, // llvm.nvvm.sqrt.rm.ftz.f
    3, // llvm.nvvm.sqrt.rn.d
    3, // llvm.nvvm.sqrt.rn.f
    3, // llvm.nvvm.sqrt.rn.ftz.f
    3, // llvm.nvvm.sqrt.rp.d
    3, // llvm.nvvm.sqrt.rp.f
    3, // llvm.nvvm.sqrt.rp.ftz.f
    3, // llvm.nvvm.sqrt.rz.d
    3, // llvm.nvvm.sqrt.rz.f
    3, // llvm.nvvm.sqrt.rz.ftz.f
    3, // llvm.nvvm.trunc.d
    3, // llvm.nvvm.trunc.f
    3, // llvm.nvvm.trunc.ftz.f
    3, // llvm.nvvm.ui2d.rm
    3, // llvm.nvvm.ui2d.rn
    3, // llvm.nvvm.ui2d.rp
    3, // llvm.nvvm.ui2d.rz
    3, // llvm.nvvm.ui2f.rm
    3, // llvm.nvvm.ui2f.rn
    3, // llvm.nvvm.ui2f.rp
    3, // llvm.nvvm.ui2f.rz
    3, // llvm.nvvm.ull2d.rm
    3, // llvm.nvvm.ull2d.rn
    3, // llvm.nvvm.ull2d.rp
    3, // llvm.nvvm.ull2d.rz
    3, // llvm.nvvm.ull2f.rm
    3, // llvm.nvvm.ull2f.rn
    3, // llvm.nvvm.ull2f.rp
    3, // llvm.nvvm.ull2f.rz
    3, // llvm.objectsize
    2, // llvm.pcmarker
    1, // llvm.pow
    1, // llvm.powi
    2, // llvm.ppc.altivec.dss
    2, // llvm.ppc.altivec.dssall
    2, // llvm.ppc.altivec.dst
    2, // llvm.ppc.altivec.dstst
    2, // llvm.ppc.altivec.dststt
    2, // llvm.ppc.altivec.dstt
    1, // llvm.ppc.altivec.lvebx
    1, // llvm.ppc.altivec.lvehx
    1, // llvm.ppc.altivec.lvewx
    3, // llvm.ppc.altivec.lvsl
    3, // llvm.ppc.altivec.lvsr
    1, // llvm.ppc.altivec.lvx
    1, // llvm.ppc.altivec.lvxl
    1, // llvm.ppc.altivec.mfvscr
    2, // llvm.ppc.altivec.mtvscr
    2, // llvm.ppc.altivec.stvebx
    2, // llvm.ppc.altivec.stvehx
    2, // llvm.ppc.altivec.stvewx
    2, // llvm.ppc.altivec.stvx
    2, // llvm.ppc.altivec.stvxl
    3, // llvm.ppc.altivec.vaddcuw
    3, // llvm.ppc.altivec.vaddsbs
    3, // llvm.ppc.altivec.vaddshs
    3, // llvm.ppc.altivec.vaddsws
    3, // llvm.ppc.altivec.vaddubs
    3, // llvm.ppc.altivec.vadduhs
    3, // llvm.ppc.altivec.vadduws
    3, // llvm.ppc.altivec.vavgsb
    3, // llvm.ppc.altivec.vavgsh
    3, // llvm.ppc.altivec.vavgsw
    3, // llvm.ppc.altivec.vavgub
    3, // llvm.ppc.altivec.vavguh
    3, // llvm.ppc.altivec.vavguw
    3, // llvm.ppc.altivec.vcfsx
    3, // llvm.ppc.altivec.vcfux
    3, // llvm.ppc.altivec.vcmpbfp
    3, // llvm.ppc.altivec.vcmpbfp.p
    3, // llvm.ppc.altivec.vcmpeqfp
    3, // llvm.ppc.altivec.vcmpeqfp.p
    3, // llvm.ppc.altivec.vcmpequb
    3, // llvm.ppc.altivec.vcmpequb.p
    3, // llvm.ppc.altivec.vcmpequh
    3, // llvm.ppc.altivec.vcmpequh.p
    3, // llvm.ppc.altivec.vcmpequw
    3, // llvm.ppc.altivec.vcmpequw.p
    3, // llvm.ppc.altivec.vcmpgefp
    3, // llvm.ppc.altivec.vcmpgefp.p
    3, // llvm.ppc.altivec.vcmpgtfp
    3, // llvm.ppc.altivec.vcmpgtfp.p
    3, // llvm.ppc.altivec.vcmpgtsb
    3, // llvm.ppc.altivec.vcmpgtsb.p
    3, // llvm.ppc.altivec.vcmpgtsh
    3, // llvm.ppc.altivec.vcmpgtsh.p
    3, // llvm.ppc.altivec.vcmpgtsw
    3, // llvm.ppc.altivec.vcmpgtsw.p
    3, // llvm.ppc.altivec.vcmpgtub
    3, // llvm.ppc.altivec.vcmpgtub.p
    3, // llvm.ppc.altivec.vcmpgtuh
    3, // llvm.ppc.altivec.vcmpgtuh.p
    3, // llvm.ppc.altivec.vcmpgtuw
    3, // llvm.ppc.altivec.vcmpgtuw.p
    3, // llvm.ppc.altivec.vctsxs
    3, // llvm.ppc.altivec.vctuxs
    3, // llvm.ppc.altivec.vexptefp
    3, // llvm.ppc.altivec.vlogefp
    3, // llvm.ppc.altivec.vmaddfp
    3, // llvm.ppc.altivec.vmaxfp
    3, // llvm.ppc.altivec.vmaxsb
    3, // llvm.ppc.altivec.vmaxsh
    3, // llvm.ppc.altivec.vmaxsw
    3, // llvm.ppc.altivec.vmaxub
    3, // llvm.ppc.altivec.vmaxuh
    3, // llvm.ppc.altivec.vmaxuw
    3, // llvm.ppc.altivec.vmhaddshs
    3, // llvm.ppc.altivec.vmhraddshs
    3, // llvm.ppc.altivec.vminfp
    3, // llvm.ppc.altivec.vminsb
    3, // llvm.ppc.altivec.vminsh
    3, // llvm.ppc.altivec.vminsw
    3, // llvm.ppc.altivec.vminub
    3, // llvm.ppc.altivec.vminuh
    3, // llvm.ppc.altivec.vminuw
    3, // llvm.ppc.altivec.vmladduhm
    3, // llvm.ppc.altivec.vmsummbm
    3, // llvm.ppc.altivec.vmsumshm
    3, // llvm.ppc.altivec.vmsumshs
    3, // llvm.ppc.altivec.vmsumubm
    3, // llvm.ppc.altivec.vmsumuhm
    3, // llvm.ppc.altivec.vmsumuhs
    3, // llvm.ppc.altivec.vmulesb
    3, // llvm.ppc.altivec.vmulesh
    3, // llvm.ppc.altivec.vmuleub
    3, // llvm.ppc.altivec.vmuleuh
    3, // llvm.ppc.altivec.vmulosb
    3, // llvm.ppc.altivec.vmulosh
    3, // llvm.ppc.altivec.vmuloub
    3, // llvm.ppc.altivec.vmulouh
    3, // llvm.ppc.altivec.vnmsubfp
    3, // llvm.ppc.altivec.vperm
    3, // llvm.ppc.altivec.vpkpx
    3, // llvm.ppc.altivec.vpkshss
    3, // llvm.ppc.altivec.vpkshus
    3, // llvm.ppc.altivec.vpkswss
    3, // llvm.ppc.altivec.vpkswus
    3, // llvm.ppc.altivec.vpkuhus
    3, // llvm.ppc.altivec.vpkuwus
    3, // llvm.ppc.altivec.vrefp
    3, // llvm.ppc.altivec.vrfim
    3, // llvm.ppc.altivec.vrfin
    3, // llvm.ppc.altivec.vrfip
    3, // llvm.ppc.altivec.vrfiz
    3, // llvm.ppc.altivec.vrlb
    3, // llvm.ppc.altivec.vrlh
    3, // llvm.ppc.altivec.vrlw
    3, // llvm.ppc.altivec.vrsqrtefp
    3, // llvm.ppc.altivec.vsel
    3, // llvm.ppc.altivec.vsl
    3, // llvm.ppc.altivec.vslb
    3, // llvm.ppc.altivec.vslh
    3, // llvm.ppc.altivec.vslo
    3, // llvm.ppc.altivec.vslw
    3, // llvm.ppc.altivec.vsr
    3, // llvm.ppc.altivec.vsrab
    3, // llvm.ppc.altivec.vsrah
    3, // llvm.ppc.altivec.vsraw
    3, // llvm.ppc.altivec.vsrb
    3, // llvm.ppc.altivec.vsrh
    3, // llvm.ppc.altivec.vsro
    3, // llvm.ppc.altivec.vsrw
    3, // llvm.ppc.altivec.vsubcuw
    3, // llvm.ppc.altivec.vsubsbs
    3, // llvm.ppc.altivec.vsubshs
    3, // llvm.ppc.altivec.vsubsws
    3, // llvm.ppc.altivec.vsububs
    3, // llvm.ppc.altivec.vsubuhs
    3, // llvm.ppc.altivec.vsubuws
    3, // llvm.ppc.altivec.vsum2sws
    3, // llvm.ppc.altivec.vsum4sbs
    3, // llvm.ppc.altivec.vsum4shs
    3, // llvm.ppc.altivec.vsum4ubs
    3, // llvm.ppc.altivec.vsumsws
    3, // llvm.ppc.altivec.vupkhpx
    3, // llvm.ppc.altivec.vupkhsb
    3, // llvm.ppc.altivec.vupkhsh
    3, // llvm.ppc.altivec.vupklpx
    3, // llvm.ppc.altivec.vupklsb
    3, // llvm.ppc.altivec.vupklsh
    2, // llvm.ppc.dcba
    2, // llvm.ppc.dcbf
    2, // llvm.ppc.dcbi
    2, // llvm.ppc.dcbst
    2, // llvm.ppc.dcbt
    2, // llvm.ppc.dcbtst
    2, // llvm.ppc.dcbz
    2, // llvm.ppc.dcbzl
    2, // llvm.ppc.sync
    5, // llvm.prefetch
    2, // llvm.ptr.annotation
    2, // llvm.ptx.bar.sync
    3, // llvm.ptx.read.clock
    3, // llvm.ptx.read.clock64
    3, // llvm.ptx.read.ctaid.w
    3, // llvm.ptx.read.ctaid.x
    3, // llvm.ptx.read.ctaid.y
    3, // llvm.ptx.read.ctaid.z
    3, // llvm.ptx.read.gridid
    3, // llvm.ptx.read.laneid
    3, // llvm.ptx.read.lanemask.eq
    3, // llvm.ptx.read.lanemask.ge
    3, // llvm.ptx.read.lanemask.gt
    3, // llvm.ptx.read.lanemask.le
    3, // llvm.ptx.read.lanemask.lt
    3, // llvm.ptx.read.nctaid.w
    3, // llvm.ptx.read.nctaid.x
    3, // llvm.ptx.read.nctaid.y
    3, // llvm.ptx.read.nctaid.z
    3, // llvm.ptx.read.nsmid
    3, // llvm.ptx.read.ntid.w
    3, // llvm.ptx.read.ntid.x
    3, // llvm.ptx.read.ntid.y
    3, // llvm.ptx.read.ntid.z
    3, // llvm.ptx.read.nwarpid
    3, // llvm.ptx.read.pm0
    3, // llvm.ptx.read.pm1
    3, // llvm.ptx.read.pm2
    3, // llvm.ptx.read.pm3
    3, // llvm.ptx.read.smid
    3, // llvm.ptx.read.tid.w
    3, // llvm.ptx.read.tid.x
    3, // llvm.ptx.read.tid.y
    3, // llvm.ptx.read.tid.z
    3, // llvm.ptx.read.warpid
    2, // llvm.readcyclecounter
    3, // llvm.returnaddress
    3, // llvm.sadd.with.overflow
    2, // llvm.setjmp
    2, // llvm.siglongjmp
    2, // llvm.sigsetjmp
    1, // llvm.sin
    3, // llvm.smul.with.overflow
    3, // llvm.spu.si.a
    3, // llvm.spu.si.addx
    3, // llvm.spu.si.ah
    3, // llvm.spu.si.ahi
    3, // llvm.spu.si.ai
    3, // llvm.spu.si.and
    3, // llvm.spu.si.andbi
    3, // llvm.spu.si.andc
    3, // llvm.spu.si.andhi
    3, // llvm.spu.si.andi
    3, // llvm.spu.si.bg
    3, // llvm.spu.si.bgx
    3, // llvm.spu.si.ceq
    3, // llvm.spu.si.ceqb
    3, // llvm.spu.si.ceqbi
    3, // llvm.spu.si.ceqh
    3, // llvm.spu.si.ceqhi
    3, // llvm.spu.si.ceqi
    3, // llvm.spu.si.cg
    3, // llvm.spu.si.cgt
    3, // llvm.spu.si.cgtb
    3, // llvm.spu.si.cgtbi
    3, // llvm.spu.si.cgth
    3, // llvm.spu.si.cgthi
    3, // llvm.spu.si.cgti
    3, // llvm.spu.si.cgx
    3, // llvm.spu.si.clgt
    3, // llvm.spu.si.clgtb
    3, // llvm.spu.si.clgtbi
    3, // llvm.spu.si.clgth
    3, // llvm.spu.si.clgthi
    3, // llvm.spu.si.clgti
    3, // llvm.spu.si.dfa
    3, // llvm.spu.si.dfm
    3, // llvm.spu.si.dfma
    3, // llvm.spu.si.dfms
    3, // llvm.spu.si.dfnma
    3, // llvm.spu.si.dfnms
    3, // llvm.spu.si.dfs
    3, // llvm.spu.si.fa
    3, // llvm.spu.si.fceq
    3, // llvm.spu.si.fcgt
    3, // llvm.spu.si.fcmeq
    3, // llvm.spu.si.fcmgt
    3, // llvm.spu.si.fm
    3, // llvm.spu.si.fma
    3, // llvm.spu.si.fms
    3, // llvm.spu.si.fnms
    3, // llvm.spu.si.fs
    3, // llvm.spu.si.fsmbi
    3, // llvm.spu.si.mpy
    3, // llvm.spu.si.mpya
    3, // llvm.spu.si.mpyh
    3, // llvm.spu.si.mpyhh
    3, // llvm.spu.si.mpyhha
    3, // llvm.spu.si.mpyhhau
    3, // llvm.spu.si.mpyhhu
    3, // llvm.spu.si.mpyi
    3, // llvm.spu.si.mpys
    3, // llvm.spu.si.mpyu
    3, // llvm.spu.si.mpyui
    3, // llvm.spu.si.nand
    3, // llvm.spu.si.nor
    3, // llvm.spu.si.or
    3, // llvm.spu.si.orbi
    3, // llvm.spu.si.orc
    3, // llvm.spu.si.orhi
    3, // llvm.spu.si.ori
    3, // llvm.spu.si.sf
    3, // llvm.spu.si.sfh
    3, // llvm.spu.si.sfhi
    3, // llvm.spu.si.sfi
    3, // llvm.spu.si.sfx
    3, // llvm.spu.si.shli
    3, // llvm.spu.si.shlqbi
    3, // llvm.spu.si.shlqbii
    3, // llvm.spu.si.shlqby
    3, // llvm.spu.si.shlqbyi
    3, // llvm.spu.si.xor
    3, // llvm.spu.si.xorbi
    3, // llvm.spu.si.xorhi
    3, // llvm.spu.si.xori
    1, // llvm.sqrt
    3, // llvm.ssub.with.overflow
    2, // llvm.stackprotector
    2, // llvm.stackrestore
    2, // llvm.stacksave
    11, // llvm.trap
    3, // llvm.uadd.with.overflow
    3, // llvm.umul.with.overflow
    3, // llvm.usub.with.overflow
    2, // llvm.va_copy
    2, // llvm.va_end
    2, // llvm.var.annotation
    2, // llvm.va_start
    3, // llvm.x86.3dnow.pavgusb
    3, // llvm.x86.3dnow.pf2id
    3, // llvm.x86.3dnow.pfacc
    3, // llvm.x86.3dnow.pfadd
    3, // llvm.x86.3dnow.pfcmpeq
    3, // llvm.x86.3dnow.pfcmpge
    3, // llvm.x86.3dnow.pfcmpgt
    3, // llvm.x86.3dnow.pfmax
    3, // llvm.x86.3dnow.pfmin
    3, // llvm.x86.3dnow.pfmul
    3, // llvm.x86.3dnow.pfrcp
    3, // llvm.x86.3dnow.pfrcpit1
    3, // llvm.x86.3dnow.pfrcpit2
    3, // llvm.x86.3dnow.pfrsqit1
    3, // llvm.x86.3dnow.pfrsqrt
    3, // llvm.x86.3dnow.pfsub
    3, // llvm.x86.3dnow.pfsubr
    3, // llvm.x86.3dnow.pi2fd
    3, // llvm.x86.3dnow.pmulhrw
    3, // llvm.x86.3dnowa.pf2iw
    3, // llvm.x86.3dnowa.pfnacc
    3, // llvm.x86.3dnowa.pfpnacc
    3, // llvm.x86.3dnowa.pi2fw
    3, // llvm.x86.3dnowa.pswapd
    3, // llvm.x86.aesni.aesdec
    3, // llvm.x86.aesni.aesdeclast
    3, // llvm.x86.aesni.aesenc
    3, // llvm.x86.aesni.aesenclast
    3, // llvm.x86.aesni.aesimc
    3, // llvm.x86.aesni.aeskeygenassist
    1, // llvm.x86.avx2.gather.d.d
    1, // llvm.x86.avx2.gather.d.d.256
    1, // llvm.x86.avx2.gather.d.pd
    1, // llvm.x86.avx2.gather.d.pd.256
    1, // llvm.x86.avx2.gather.d.ps
    1, // llvm.x86.avx2.gather.d.ps.256
    1, // llvm.x86.avx2.gather.d.q
    1, // llvm.x86.avx2.gather.d.q.256
    1, // llvm.x86.avx2.gather.q.d
    1, // llvm.x86.avx2.gather.q.d.256
    1, // llvm.x86.avx2.gather.q.pd
    1, // llvm.x86.avx2.gather.q.pd.256
    1, // llvm.x86.avx2.gather.q.ps
    1, // llvm.x86.avx2.gather.q.ps.256
    1, // llvm.x86.avx2.gather.q.q
    1, // llvm.x86.avx2.gather.q.q.256
    1, // llvm.x86.avx2.maskload.d
    1, // llvm.x86.avx2.maskload.d.256
    1, // llvm.x86.avx2.maskload.q
    1, // llvm.x86.avx2.maskload.q.256
    2, // llvm.x86.avx2.maskstore.d
    2, // llvm.x86.avx2.maskstore.d.256
    2, // llvm.x86.avx2.maskstore.q
    2, // llvm.x86.avx2.maskstore.q.256
    1, // llvm.x86.avx2.movntdqa
    3, // llvm.x86.avx2.mpsadbw
    3, // llvm.x86.avx2.pabs.b
    3, // llvm.x86.avx2.pabs.d
    3, // llvm.x86.avx2.pabs.w
    3, // llvm.x86.avx2.packssdw
    3, // llvm.x86.avx2.packsswb
    3, // llvm.x86.avx2.packusdw
    3, // llvm.x86.avx2.packuswb
    3, // llvm.x86.avx2.padds.b
    3, // llvm.x86.avx2.padds.w
    3, // llvm.x86.avx2.paddus.b
    3, // llvm.x86.avx2.paddus.w
    3, // llvm.x86.avx2.pavg.b
    3, // llvm.x86.avx2.pavg.w
    3, // llvm.x86.avx2.pblendd.128
    3, // llvm.x86.avx2.pblendd.256
    3, // llvm.x86.avx2.pblendvb
    3, // llvm.x86.avx2.pblendw
    3, // llvm.x86.avx2.pbroadcastb.128
    3, // llvm.x86.avx2.pbroadcastb.256
    3, // llvm.x86.avx2.pbroadcastd.128
    3, // llvm.x86.avx2.pbroadcastd.256
    3, // llvm.x86.avx2.pbroadcastq.128
    3, // llvm.x86.avx2.pbroadcastq.256
    3, // llvm.x86.avx2.pbroadcastw.128
    3, // llvm.x86.avx2.pbroadcastw.256
    3, // llvm.x86.avx2.permd
    3, // llvm.x86.avx2.permps
    3, // llvm.x86.avx2.phadd.d
    3, // llvm.x86.avx2.phadd.sw
    3, // llvm.x86.avx2.phadd.w
    3, // llvm.x86.avx2.phsub.d
    3, // llvm.x86.avx2.phsub.sw
    3, // llvm.x86.avx2.phsub.w
    3, // llvm.x86.avx2.pmadd.ub.sw
    3, // llvm.x86.avx2.pmadd.wd
    3, // llvm.x86.avx2.pmaxs.b
    3, // llvm.x86.avx2.pmaxs.d
    3, // llvm.x86.avx2.pmaxs.w
    3, // llvm.x86.avx2.pmaxu.b
    3, // llvm.x86.avx2.pmaxu.d
    3, // llvm.x86.avx2.pmaxu.w
    3, // llvm.x86.avx2.pmins.b
    3, // llvm.x86.avx2.pmins.d
    3, // llvm.x86.avx2.pmins.w
    3, // llvm.x86.avx2.pminu.b
    3, // llvm.x86.avx2.pminu.d
    3, // llvm.x86.avx2.pminu.w
    3, // llvm.x86.avx2.pmovmskb
    3, // llvm.x86.avx2.pmovsxbd
    3, // llvm.x86.avx2.pmovsxbq
    3, // llvm.x86.avx2.pmovsxbw
    3, // llvm.x86.avx2.pmovsxdq
    3, // llvm.x86.avx2.pmovsxwd
    3, // llvm.x86.avx2.pmovsxwq
    3, // llvm.x86.avx2.pmovzxbd
    3, // llvm.x86.avx2.pmovzxbq
    3, // llvm.x86.avx2.pmovzxbw
    3, // llvm.x86.avx2.pmovzxdq
    3, // llvm.x86.avx2.pmovzxwd
    3, // llvm.x86.avx2.pmovzxwq
    3, // llvm.x86.avx2.pmul.dq
    3, // llvm.x86.avx2.pmul.hr.sw
    3, // llvm.x86.avx2.pmulh.w
    3, // llvm.x86.avx2.pmulhu.w
    3, // llvm.x86.avx2.pmulu.dq
    3, // llvm.x86.avx2.psad.bw
    3, // llvm.x86.avx2.pshuf.b
    3, // llvm.x86.avx2.psign.b
    3, // llvm.x86.avx2.psign.d
    3, // llvm.x86.avx2.psign.w
    3, // llvm.x86.avx2.psll.d
    3, // llvm.x86.avx2.psll.dq
    3, // llvm.x86.avx2.psll.dq.bs
    3, // llvm.x86.avx2.psll.q
    3, // llvm.x86.avx2.psll.w
    3, // llvm.x86.avx2.pslli.d
    3, // llvm.x86.avx2.pslli.q
    3, // llvm.x86.avx2.pslli.w
    3, // llvm.x86.avx2.psllv.d
    3, // llvm.x86.avx2.psllv.d.256
    3, // llvm.x86.avx2.psllv.q
    3, // llvm.x86.avx2.psllv.q.256
    3, // llvm.x86.avx2.psra.d
    3, // llvm.x86.avx2.psra.w
    3, // llvm.x86.avx2.psrai.d
    3, // llvm.x86.avx2.psrai.w
    3, // llvm.x86.avx2.psrav.d
    3, // llvm.x86.avx2.psrav.d.256
    3, // llvm.x86.avx2.psrl.d
    3, // llvm.x86.avx2.psrl.dq
    3, // llvm.x86.avx2.psrl.dq.bs
    3, // llvm.x86.avx2.psrl.q
    3, // llvm.x86.avx2.psrl.w
    3, // llvm.x86.avx2.psrli.d
    3, // llvm.x86.avx2.psrli.q
    3, // llvm.x86.avx2.psrli.w
    3, // llvm.x86.avx2.psrlv.d
    3, // llvm.x86.avx2.psrlv.d.256
    3, // llvm.x86.avx2.psrlv.q
    3, // llvm.x86.avx2.psrlv.q.256
    3, // llvm.x86.avx2.psubs.b
    3, // llvm.x86.avx2.psubs.w
    3, // llvm.x86.avx2.psubus.b
    3, // llvm.x86.avx2.psubus.w
    3, // llvm.x86.avx2.vbroadcast.sd.pd.256
    3, // llvm.x86.avx2.vbroadcast.ss.ps
    3, // llvm.x86.avx2.vbroadcast.ss.ps.256
    1, // llvm.x86.avx2.vbroadcasti128
    3, // llvm.x86.avx2.vextracti128
    3, // llvm.x86.avx2.vinserti128
    3, // llvm.x86.avx2.vperm2i128
    3, // llvm.x86.avx.addsub.pd.256
    3, // llvm.x86.avx.addsub.ps.256
    3, // llvm.x86.avx.blend.pd.256
    3, // llvm.x86.avx.blend.ps.256
    3, // llvm.x86.avx.blendv.pd.256
    3, // llvm.x86.avx.blendv.ps.256
    3, // llvm.x86.avx.cmp.pd.256
    3, // llvm.x86.avx.cmp.ps.256
    3, // llvm.x86.avx.cvt.pd2.ps.256
    3, // llvm.x86.avx.cvt.pd2dq.256
    3, // llvm.x86.avx.cvt.ps2.pd.256
    3, // llvm.x86.avx.cvt.ps2dq.256
    3, // llvm.x86.avx.cvtdq2.pd.256
    3, // llvm.x86.avx.cvtdq2.ps.256
    3, // llvm.x86.avx.cvtt.pd2dq.256
    3, // llvm.x86.avx.cvtt.ps2dq.256
    3, // llvm.x86.avx.dp.ps.256
    3, // llvm.x86.avx.hadd.pd.256
    3, // llvm.x86.avx.hadd.ps.256
    3, // llvm.x86.avx.hsub.pd.256
    3, // llvm.x86.avx.hsub.ps.256
    1, // llvm.x86.avx.ldu.dq.256
    1, // llvm.x86.avx.maskload.pd
    1, // llvm.x86.avx.maskload.pd.256
    1, // llvm.x86.avx.maskload.ps
    1, // llvm.x86.avx.maskload.ps.256
    2, // llvm.x86.avx.maskstore.pd
    2, // llvm.x86.avx.maskstore.pd.256
    2, // llvm.x86.avx.maskstore.ps
    2, // llvm.x86.avx.maskstore.ps.256
    3, // llvm.x86.avx.max.pd.256
    3, // llvm.x86.avx.max.ps.256
    3, // llvm.x86.avx.min.pd.256
    3, // llvm.x86.avx.min.ps.256
    3, // llvm.x86.avx.movmsk.pd.256
    3, // llvm.x86.avx.movmsk.ps.256
    3, // llvm.x86.avx.ptestc.256
    3, // llvm.x86.avx.ptestnzc.256
    3, // llvm.x86.avx.ptestz.256
    3, // llvm.x86.avx.rcp.ps.256
    3, // llvm.x86.avx.round.pd.256
    3, // llvm.x86.avx.round.ps.256
    3, // llvm.x86.avx.rsqrt.ps.256
    3, // llvm.x86.avx.sqrt.pd.256
    3, // llvm.x86.avx.sqrt.ps.256
    2, // llvm.x86.avx.storeu.dq.256
    2, // llvm.x86.avx.storeu.pd.256
    2, // llvm.x86.avx.storeu.ps.256
    1, // llvm.x86.avx.vbroadcast.sd.256
    1, // llvm.x86.avx.vbroadcast.ss
    1, // llvm.x86.avx.vbroadcast.ss.256
    1, // llvm.x86.avx.vbroadcastf128.pd.256
    1, // llvm.x86.avx.vbroadcastf128.ps.256
    3, // llvm.x86.avx.vextractf128.pd.256
    3, // llvm.x86.avx.vextractf128.ps.256
    3, // llvm.x86.avx.vextractf128.si.256
    3, // llvm.x86.avx.vinsertf128.pd.256
    3, // llvm.x86.avx.vinsertf128.ps.256
    3, // llvm.x86.avx.vinsertf128.si.256
    3, // llvm.x86.avx.vperm2f128.pd.256
    3, // llvm.x86.avx.vperm2f128.ps.256
    3, // llvm.x86.avx.vperm2f128.si.256
    3, // llvm.x86.avx.vpermilvar.pd
    3, // llvm.x86.avx.vpermilvar.pd.256
    3, // llvm.x86.avx.vpermilvar.ps
    3, // llvm.x86.avx.vpermilvar.ps.256
    3, // llvm.x86.avx.vtestc.pd
    3, // llvm.x86.avx.vtestc.pd.256
    3, // llvm.x86.avx.vtestc.ps
    3, // llvm.x86.avx.vtestc.ps.256
    3, // llvm.x86.avx.vtestnzc.pd
    3, // llvm.x86.avx.vtestnzc.pd.256
    3, // llvm.x86.avx.vtestnzc.ps
    3, // llvm.x86.avx.vtestnzc.ps.256
    3, // llvm.x86.avx.vtestz.pd
    3, // llvm.x86.avx.vtestz.pd.256
    3, // llvm.x86.avx.vtestz.ps
    3, // llvm.x86.avx.vtestz.ps.256
    2, // llvm.x86.avx.vzeroall
    2, // llvm.x86.avx.vzeroupper
    3, // llvm.x86.bmi.bextr.32
    3, // llvm.x86.bmi.bextr.64
    3, // llvm.x86.bmi.bzhi.32
    3, // llvm.x86.bmi.bzhi.64
    3, // llvm.x86.bmi.pdep.32
    3, // llvm.x86.bmi.pdep.64
    3, // llvm.x86.bmi.pext.32
    3, // llvm.x86.bmi.pext.64
    3, // llvm.x86.fma.vfmadd.pd
    3, // llvm.x86.fma.vfmadd.pd.256
    3, // llvm.x86.fma.vfmadd.ps
    3, // llvm.x86.fma.vfmadd.ps.256
    3, // llvm.x86.fma.vfmadd.sd
    3, // llvm.x86.fma.vfmadd.ss
    3, // llvm.x86.fma.vfmaddsub.pd
    3, // llvm.x86.fma.vfmaddsub.pd.256
    3, // llvm.x86.fma.vfmaddsub.ps
    3, // llvm.x86.fma.vfmaddsub.ps.256
    3, // llvm.x86.fma.vfmsub.pd
    3, // llvm.x86.fma.vfmsub.pd.256
    3, // llvm.x86.fma.vfmsub.ps
    3, // llvm.x86.fma.vfmsub.ps.256
    3, // llvm.x86.fma.vfmsub.sd
    3, // llvm.x86.fma.vfmsub.ss
    3, // llvm.x86.fma.vfmsubadd.pd
    3, // llvm.x86.fma.vfmsubadd.pd.256
    3, // llvm.x86.fma.vfmsubadd.ps
    3, // llvm.x86.fma.vfmsubadd.ps.256
    3, // llvm.x86.fma.vfnmadd.pd
    3, // llvm.x86.fma.vfnmadd.pd.256
    3, // llvm.x86.fma.vfnmadd.ps
    3, // llvm.x86.fma.vfnmadd.ps.256
    3, // llvm.x86.fma.vfnmadd.sd
    3, // llvm.x86.fma.vfnmadd.ss
    3, // llvm.x86.fma.vfnmsub.pd
    3, // llvm.x86.fma.vfnmsub.pd.256
    3, // llvm.x86.fma.vfnmsub.ps
    3, // llvm.x86.fma.vfnmsub.ps.256
    3, // llvm.x86.fma.vfnmsub.sd
    3, // llvm.x86.fma.vfnmsub.ss
    2, // llvm.x86.int
    2, // llvm.x86.mmx.emms
    2, // llvm.x86.mmx.femms
    2, // llvm.x86.mmx.maskmovq
    2, // llvm.x86.mmx.movnt.dq
    3, // llvm.x86.mmx.packssdw
    3, // llvm.x86.mmx.packsswb
    3, // llvm.x86.mmx.packuswb
    3, // llvm.x86.mmx.padd.b
    3, // llvm.x86.mmx.padd.d
    3, // llvm.x86.mmx.padd.q
    3, // llvm.x86.mmx.padd.w
    3, // llvm.x86.mmx.padds.b
    3, // llvm.x86.mmx.padds.w
    3, // llvm.x86.mmx.paddus.b
    3, // llvm.x86.mmx.paddus.w
    3, // llvm.x86.mmx.palignr.b
    3, // llvm.x86.mmx.pand
    3, // llvm.x86.mmx.pandn
    3, // llvm.x86.mmx.pavg.b
    3, // llvm.x86.mmx.pavg.w
    3, // llvm.x86.mmx.pcmpeq.b
    3, // llvm.x86.mmx.pcmpeq.d
    3, // llvm.x86.mmx.pcmpeq.w
    3, // llvm.x86.mmx.pcmpgt.b
    3, // llvm.x86.mmx.pcmpgt.d
    3, // llvm.x86.mmx.pcmpgt.w
    3, // llvm.x86.mmx.pextr.w
    3, // llvm.x86.mmx.pinsr.w
    3, // llvm.x86.mmx.pmadd.wd
    3, // llvm.x86.mmx.pmaxs.w
    3, // llvm.x86.mmx.pmaxu.b
    3, // llvm.x86.mmx.pmins.w
    3, // llvm.x86.mmx.pminu.b
    3, // llvm.x86.mmx.pmovmskb
    3, // llvm.x86.mmx.pmulh.w
    3, // llvm.x86.mmx.pmulhu.w
    3, // llvm.x86.mmx.pmull.w
    3, // llvm.x86.mmx.pmulu.dq
    3, // llvm.x86.mmx.por
    3, // llvm.x86.mmx.psad.bw
    3, // llvm.x86.mmx.psll.d
    3, // llvm.x86.mmx.psll.q
    3, // llvm.x86.mmx.psll.w
    3, // llvm.x86.mmx.pslli.d
    3, // llvm.x86.mmx.pslli.q
    3, // llvm.x86.mmx.pslli.w
    3, // llvm.x86.mmx.psra.d
    3, // llvm.x86.mmx.psra.w
    3, // llvm.x86.mmx.psrai.d
    3, // llvm.x86.mmx.psrai.w
    3, // llvm.x86.mmx.psrl.d
    3, // llvm.x86.mmx.psrl.q
    3, // llvm.x86.mmx.psrl.w
    3, // llvm.x86.mmx.psrli.d
    3, // llvm.x86.mmx.psrli.q
    3, // llvm.x86.mmx.psrli.w
    3, // llvm.x86.mmx.psub.b
    3, // llvm.x86.mmx.psub.d
    3, // llvm.x86.mmx.psub.q
    3, // llvm.x86.mmx.psub.w
    3, // llvm.x86.mmx.psubs.b
    3, // llvm.x86.mmx.psubs.w
    3, // llvm.x86.mmx.psubus.b
    3, // llvm.x86.mmx.psubus.w
    3, // llvm.x86.mmx.punpckhbw
    3, // llvm.x86.mmx.punpckhdq
    3, // llvm.x86.mmx.punpckhwd
    3, // llvm.x86.mmx.punpcklbw
    3, // llvm.x86.mmx.punpckldq
    3, // llvm.x86.mmx.punpcklwd
    3, // llvm.x86.mmx.pxor
    3, // llvm.x86.pclmulqdq
    2, // llvm.x86.rdfsbase.32
    2, // llvm.x86.rdfsbase.64
    2, // llvm.x86.rdgsbase.32
    2, // llvm.x86.rdgsbase.64
    2, // llvm.x86.rdrand.16
    2, // llvm.x86.rdrand.32
    2, // llvm.x86.rdrand.64
    3, // llvm.x86.sse2.add.sd
    2, // llvm.x86.sse2.clflush
    3, // llvm.x86.sse2.cmp.pd
    3, // llvm.x86.sse2.cmp.sd
    3, // llvm.x86.sse2.comieq.sd
    3, // llvm.x86.sse2.comige.sd
    3, // llvm.x86.sse2.comigt.sd
    3, // llvm.x86.sse2.comile.sd
    3, // llvm.x86.sse2.comilt.sd
    3, // llvm.x86.sse2.comineq.sd
    3, // llvm.x86.sse2.cvtdq2pd
    3, // llvm.x86.sse2.cvtdq2ps
    3, // llvm.x86.sse2.cvtpd2dq
    3, // llvm.x86.sse2.cvtpd2ps
    3, // llvm.x86.sse2.cvtps2dq
    3, // llvm.x86.sse2.cvtps2pd
    3, // llvm.x86.sse2.cvtsd2si
    3, // llvm.x86.sse2.cvtsd2si64
    3, // llvm.x86.sse2.cvtsd2ss
    3, // llvm.x86.sse2.cvtsi2sd
    3, // llvm.x86.sse2.cvtsi642sd
    3, // llvm.x86.sse2.cvtss2sd
    3, // llvm.x86.sse2.cvttpd2dq
    3, // llvm.x86.sse2.cvttps2dq
    3, // llvm.x86.sse2.cvttsd2si
    3, // llvm.x86.sse2.cvttsd2si64
    3, // llvm.x86.sse2.div.sd
    2, // llvm.x86.sse2.lfence
    2, // llvm.x86.sse2.maskmov.dqu
    3, // llvm.x86.sse2.max.pd
    3, // llvm.x86.sse2.max.sd
    2, // llvm.x86.sse2.mfence
    3, // llvm.x86.sse2.min.pd
    3, // llvm.x86.sse2.min.sd
    3, // llvm.x86.sse2.movmsk.pd
    3, // llvm.x86.sse2.mul.sd
    3, // llvm.x86.sse2.packssdw.128
    3, // llvm.x86.sse2.packsswb.128
    3, // llvm.x86.sse2.packuswb.128
    3, // llvm.x86.sse2.padds.b
    3, // llvm.x86.sse2.padds.w
    3, // llvm.x86.sse2.paddus.b
    3, // llvm.x86.sse2.paddus.w
    3, // llvm.x86.sse2.pavg.b
    3, // llvm.x86.sse2.pavg.w
    3, // llvm.x86.sse2.pmadd.wd
    3, // llvm.x86.sse2.pmaxs.w
    3, // llvm.x86.sse2.pmaxu.b
    3, // llvm.x86.sse2.pmins.w
    3, // llvm.x86.sse2.pminu.b
    3, // llvm.x86.sse2.pmovmskb.128
    3, // llvm.x86.sse2.pmulh.w
    3, // llvm.x86.sse2.pmulhu.w
    3, // llvm.x86.sse2.pmulu.dq
    3, // llvm.x86.sse2.psad.bw
    3, // llvm.x86.sse2.psll.d
    3, // llvm.x86.sse2.psll.dq
    3, // llvm.x86.sse2.psll.dq.bs
    3, // llvm.x86.sse2.psll.q
    3, // llvm.x86.sse2.psll.w
    3, // llvm.x86.sse2.pslli.d
    3, // llvm.x86.sse2.pslli.q
    3, // llvm.x86.sse2.pslli.w
    3, // llvm.x86.sse2.psra.d
    3, // llvm.x86.sse2.psra.w
    3, // llvm.x86.sse2.psrai.d
    3, // llvm.x86.sse2.psrai.w
    3, // llvm.x86.sse2.psrl.d
    3, // llvm.x86.sse2.psrl.dq
    3, // llvm.x86.sse2.psrl.dq.bs
    3, // llvm.x86.sse2.psrl.q
    3, // llvm.x86.sse2.psrl.w
    3, // llvm.x86.sse2.psrli.d
    3, // llvm.x86.sse2.psrli.q
    3, // llvm.x86.sse2.psrli.w
    3, // llvm.x86.sse2.psubs.b
    3, // llvm.x86.sse2.psubs.w
    3, // llvm.x86.sse2.psubus.b
    3, // llvm.x86.sse2.psubus.w
    3, // llvm.x86.sse2.sqrt.pd
    3, // llvm.x86.sse2.sqrt.sd
    2, // llvm.x86.sse2.storel.dq
    2, // llvm.x86.sse2.storeu.dq
    2, // llvm.x86.sse2.storeu.pd
    3, // llvm.x86.sse2.sub.sd
    3, // llvm.x86.sse2.ucomieq.sd
    3, // llvm.x86.sse2.ucomige.sd
    3, // llvm.x86.sse2.ucomigt.sd
    3, // llvm.x86.sse2.ucomile.sd
    3, // llvm.x86.sse2.ucomilt.sd
    3, // llvm.x86.sse2.ucomineq.sd
    3, // llvm.x86.sse3.addsub.pd
    3, // llvm.x86.sse3.addsub.ps
    3, // llvm.x86.sse3.hadd.pd
    3, // llvm.x86.sse3.hadd.ps
    3, // llvm.x86.sse3.hsub.pd
    3, // llvm.x86.sse3.hsub.ps
    1, // llvm.x86.sse3.ldu.dq
    2, // llvm.x86.sse3.monitor
    2, // llvm.x86.sse3.mwait
    3, // llvm.x86.sse41.blendpd
    3, // llvm.x86.sse41.blendps
    3, // llvm.x86.sse41.blendvpd
    3, // llvm.x86.sse41.blendvps
    3, // llvm.x86.sse41.dppd
    3, // llvm.x86.sse41.dpps
    3, // llvm.x86.sse41.extractps
    3, // llvm.x86.sse41.insertps
    1, // llvm.x86.sse41.movntdqa
    3, // llvm.x86.sse41.mpsadbw
    3, // llvm.x86.sse41.packusdw
    3, // llvm.x86.sse41.pblendvb
    3, // llvm.x86.sse41.pblendw
    3, // llvm.x86.sse41.pextrb
    3, // llvm.x86.sse41.pextrd
    3, // llvm.x86.sse41.pextrq
    3, // llvm.x86.sse41.phminposuw
    3, // llvm.x86.sse41.pmaxsb
    3, // llvm.x86.sse41.pmaxsd
    3, // llvm.x86.sse41.pmaxud
    3, // llvm.x86.sse41.pmaxuw
    3, // llvm.x86.sse41.pminsb
    3, // llvm.x86.sse41.pminsd
    3, // llvm.x86.sse41.pminud
    3, // llvm.x86.sse41.pminuw
    3, // llvm.x86.sse41.pmovsxbd
    3, // llvm.x86.sse41.pmovsxbq
    3, // llvm.x86.sse41.pmovsxbw
    3, // llvm.x86.sse41.pmovsxdq
    3, // llvm.x86.sse41.pmovsxwd
    3, // llvm.x86.sse41.pmovsxwq
    3, // llvm.x86.sse41.pmovzxbd
    3, // llvm.x86.sse41.pmovzxbq
    3, // llvm.x86.sse41.pmovzxbw
    3, // llvm.x86.sse41.pmovzxdq
    3, // llvm.x86.sse41.pmovzxwd
    3, // llvm.x86.sse41.pmovzxwq
    3, // llvm.x86.sse41.pmuldq
    3, // llvm.x86.sse41.ptestc
    3, // llvm.x86.sse41.ptestnzc
    3, // llvm.x86.sse41.ptestz
    3, // llvm.x86.sse41.round.pd
    3, // llvm.x86.sse41.round.ps
    3, // llvm.x86.sse41.round.sd
    3, // llvm.x86.sse41.round.ss
    3, // llvm.x86.sse42.crc32.32.16
    3, // llvm.x86.sse42.crc32.32.32
    3, // llvm.x86.sse42.crc32.32.8
    3, // llvm.x86.sse42.crc32.64.64
    3, // llvm.x86.sse42.crc32.64.8
    3, // llvm.x86.sse42.pcmpestri128
    3, // llvm.x86.sse42.pcmpestria128
    3, // llvm.x86.sse42.pcmpestric128
    3, // llvm.x86.sse42.pcmpestrio128
    3, // llvm.x86.sse42.pcmpestris128
    3, // llvm.x86.sse42.pcmpestriz128
    3, // llvm.x86.sse42.pcmpestrm128
    3, // llvm.x86.sse42.pcmpistri128
    3, // llvm.x86.sse42.pcmpistria128
    3, // llvm.x86.sse42.pcmpistric128
    3, // llvm.x86.sse42.pcmpistrio128
    3, // llvm.x86.sse42.pcmpistris128
    3, // llvm.x86.sse42.pcmpistriz128
    3, // llvm.x86.sse42.pcmpistrm128
    3, // llvm.x86.sse4a.extrq
    3, // llvm.x86.sse4a.extrqi
    3, // llvm.x86.sse4a.insertq
    3, // llvm.x86.sse4a.insertqi
    2, // llvm.x86.sse4a.movnt.sd
    2, // llvm.x86.sse4a.movnt.ss
    3, // llvm.x86.sse.add.ss
    3, // llvm.x86.sse.cmp.ps
    3, // llvm.x86.sse.cmp.ss
    3, // llvm.x86.sse.comieq.ss
    3, // llvm.x86.sse.comige.ss
    3, // llvm.x86.sse.comigt.ss
    3, // llvm.x86.sse.comile.ss
    3, // llvm.x86.sse.comilt.ss
    3, // llvm.x86.sse.comineq.ss
    3, // llvm.x86.sse.cvtpd2pi
    3, // llvm.x86.sse.cvtpi2pd
    3, // llvm.x86.sse.cvtpi2ps
    3, // llvm.x86.sse.cvtps2pi
    3, // llvm.x86.sse.cvtsi2ss
    3, // llvm.x86.sse.cvtsi642ss
    3, // llvm.x86.sse.cvtss2si
    3, // llvm.x86.sse.cvtss2si64
    3, // llvm.x86.sse.cvttpd2pi
    3, // llvm.x86.sse.cvttps2pi
    3, // llvm.x86.sse.cvttss2si
    3, // llvm.x86.sse.cvttss2si64
    3, // llvm.x86.sse.div.ss
    2, // llvm.x86.sse.ldmxcsr
    3, // llvm.x86.sse.max.ps
    3, // llvm.x86.sse.max.ss
    3, // llvm.x86.sse.min.ps
    3, // llvm.x86.sse.min.ss
    3, // llvm.x86.sse.movmsk.ps
    3, // llvm.x86.sse.mul.ss
    3, // llvm.x86.sse.pshuf.w
    3, // llvm.x86.sse.rcp.ps
    3, // llvm.x86.sse.rcp.ss
    3, // llvm.x86.sse.rsqrt.ps
    3, // llvm.x86.sse.rsqrt.ss
    2, // llvm.x86.sse.sfence
    3, // llvm.x86.sse.sqrt.ps
    3, // llvm.x86.sse.sqrt.ss
    2, // llvm.x86.sse.stmxcsr
    2, // llvm.x86.sse.storeu.ps
    3, // llvm.x86.sse.sub.ss
    3, // llvm.x86.sse.ucomieq.ss
    3, // llvm.x86.sse.ucomige.ss
    3, // llvm.x86.sse.ucomigt.ss
    3, // llvm.x86.sse.ucomile.ss
    3, // llvm.x86.sse.ucomilt.ss
    3, // llvm.x86.sse.ucomineq.ss
    3, // llvm.x86.ssse3.pabs.b
    3, // llvm.x86.ssse3.pabs.b.128
    3, // llvm.x86.ssse3.pabs.d
    3, // llvm.x86.ssse3.pabs.d.128
    3, // llvm.x86.ssse3.pabs.w
    3, // llvm.x86.ssse3.pabs.w.128
    3, // llvm.x86.ssse3.phadd.d
    3, // llvm.x86.ssse3.phadd.d.128
    3, // llvm.x86.ssse3.phadd.sw
    3, // llvm.x86.ssse3.phadd.sw.128
    3, // llvm.x86.ssse3.phadd.w
    3, // llvm.x86.ssse3.phadd.w.128
    3, // llvm.x86.ssse3.phsub.d
    3, // llvm.x86.ssse3.phsub.d.128
    3, // llvm.x86.ssse3.phsub.sw
    3, // llvm.x86.ssse3.phsub.sw.128
    3, // llvm.x86.ssse3.phsub.w
    3, // llvm.x86.ssse3.phsub.w.128
    3, // llvm.x86.ssse3.pmadd.ub.sw
    3, // llvm.x86.ssse3.pmadd.ub.sw.128
    3, // llvm.x86.ssse3.pmul.hr.sw
    3, // llvm.x86.ssse3.pmul.hr.sw.128
    3, // llvm.x86.ssse3.pshuf.b
    3, // llvm.x86.ssse3.pshuf.b.128
    3, // llvm.x86.ssse3.psign.b
    3, // llvm.x86.ssse3.psign.b.128
    3, // llvm.x86.ssse3.psign.d
    3, // llvm.x86.ssse3.psign.d.128
    3, // llvm.x86.ssse3.psign.w
    3, // llvm.x86.ssse3.psign.w.128
    3, // llvm.x86.vcvtph2ps.128
    3, // llvm.x86.vcvtph2ps.256
    3, // llvm.x86.vcvtps2ph.128
    3, // llvm.x86.vcvtps2ph.256
    2, // llvm.x86.wrfsbase.32
    2, // llvm.x86.wrfsbase.64
    2, // llvm.x86.wrgsbase.32
    2, // llvm.x86.wrgsbase.64
    3, // llvm.x86.xop.vfrcz.pd
    3, // llvm.x86.xop.vfrcz.pd.256
    3, // llvm.x86.xop.vfrcz.ps
    3, // llvm.x86.xop.vfrcz.ps.256
    3, // llvm.x86.xop.vfrcz.sd
    3, // llvm.x86.xop.vfrcz.ss
    3, // llvm.x86.xop.vpcmov
    3, // llvm.x86.xop.vpcmov.256
    3, // llvm.x86.xop.vpcomb
    3, // llvm.x86.xop.vpcomd
    3, // llvm.x86.xop.vpcomq
    3, // llvm.x86.xop.vpcomub
    3, // llvm.x86.xop.vpcomud
    3, // llvm.x86.xop.vpcomuq
    3, // llvm.x86.xop.vpcomuw
    3, // llvm.x86.xop.vpcomw
    3, // llvm.x86.xop.vpermil2pd
    3, // llvm.x86.xop.vpermil2pd.256
    3, // llvm.x86.xop.vpermil2ps
    3, // llvm.x86.xop.vpermil2ps.256
    3, // llvm.x86.xop.vphaddbd
    3, // llvm.x86.xop.vphaddbq
    3, // llvm.x86.xop.vphaddbw
    3, // llvm.x86.xop.vphadddq
    3, // llvm.x86.xop.vphaddubd
    3, // llvm.x86.xop.vphaddubq
    3, // llvm.x86.xop.vphaddubw
    3, // llvm.x86.xop.vphaddudq
    3, // llvm.x86.xop.vphadduwd
    3, // llvm.x86.xop.vphadduwq
    3, // llvm.x86.xop.vphaddwd
    3, // llvm.x86.xop.vphaddwq
    3, // llvm.x86.xop.vphsubbw
    3, // llvm.x86.xop.vphsubdq
    3, // llvm.x86.xop.vphsubwd
    3, // llvm.x86.xop.vpmacsdd
    3, // llvm.x86.xop.vpmacsdqh
    3, // llvm.x86.xop.vpmacsdql
    3, // llvm.x86.xop.vpmacssdd
    3, // llvm.x86.xop.vpmacssdqh
    3, // llvm.x86.xop.vpmacssdql
    3, // llvm.x86.xop.vpmacsswd
    3, // llvm.x86.xop.vpmacssww
    3, // llvm.x86.xop.vpmacswd
    3, // llvm.x86.xop.vpmacsww
    3, // llvm.x86.xop.vpmadcsswd
    3, // llvm.x86.xop.vpmadcswd
    3, // llvm.x86.xop.vpperm
    3, // llvm.x86.xop.vprotb
    3, // llvm.x86.xop.vprotbi
    3, // llvm.x86.xop.vprotd
    3, // llvm.x86.xop.vprotdi
    3, // llvm.x86.xop.vprotq
    3, // llvm.x86.xop.vprotqi
    3, // llvm.x86.xop.vprotw
    3, // llvm.x86.xop.vprotwi
    3, // llvm.x86.xop.vpshab
    3, // llvm.x86.xop.vpshad
    3, // llvm.x86.xop.vpshaq
    3, // llvm.x86.xop.vpshaw
    3, // llvm.x86.xop.vpshlb
    3, // llvm.x86.xop.vpshld
    3, // llvm.x86.xop.vpshlq
    3, // llvm.x86.xop.vpshlw
    3, // llvm.xcore.bitrev
    2, // llvm.xcore.checkevent
    5, // llvm.xcore.chkct
    2, // llvm.xcore.clre
    2, // llvm.xcore.clrsr
    3, // llvm.xcore.crc32
    3, // llvm.xcore.crc8
    5, // llvm.xcore.eeu
    5, // llvm.xcore.endin
    5, // llvm.xcore.freer
    2, // llvm.xcore.geted
    2, // llvm.xcore.getet
    3, // llvm.xcore.getid
    2, // llvm.xcore.getps
    2, // llvm.xcore.getr
    5, // llvm.xcore.getst
    5, // llvm.xcore.getts
    5, // llvm.xcore.in
    5, // llvm.xcore.inct
    5, // llvm.xcore.initcp
    5, // llvm.xcore.initdp
    5, // llvm.xcore.initlr
    5, // llvm.xcore.initpc
    5, // llvm.xcore.initsp
    5, // llvm.xcore.inshr
    5, // llvm.xcore.int
    5, // llvm.xcore.mjoin
    5, // llvm.xcore.msync
    5, // llvm.xcore.out
    5, // llvm.xcore.outct
    5, // llvm.xcore.outshr
    5, // llvm.xcore.outt
    5, // llvm.xcore.peek
    5, // llvm.xcore.setc
    8, // llvm.xcore.setclk
    5, // llvm.xcore.setd
    5, // llvm.xcore.setev
    2, // llvm.xcore.setps
    5, // llvm.xcore.setpsc
    5, // llvm.xcore.setpt
    8, // llvm.xcore.setrdy
    2, // llvm.xcore.setsr
    5, // llvm.xcore.settw
    5, // llvm.xcore.setv
    3, // llvm.xcore.sext
    2, // llvm.xcore.ssync
    5, // llvm.xcore.syncr
    5, // llvm.xcore.testct
    5, // llvm.xcore.testwct
    1, // llvm.xcore.waitevent
    3, // llvm.xcore.zext
  };

  AttributeWithIndex AWI[3];
  unsigned NumAttrs = 0;
  if (id != 0) {
    switch(IntrinsicsToAttributesMap[id - 1]) {
    default: llvm_unreachable("Invalid attribute number");
    case 3:
      AWI[0] = AttributeWithIndex::get(~0, Attribute::NoUnwind|Attribute::ReadNone);
      NumAttrs = 1;
      break;
    case 10:
      AWI[0] = AttributeWithIndex::get(1, Attribute::NoCapture);
      AWI[1] = AttributeWithIndex::get(~0, Attribute::NoUnwind|Attribute::ReadNone);
      NumAttrs = 2;
      break;
    case 1:
      AWI[0] = AttributeWithIndex::get(~0, Attribute::NoUnwind|Attribute::ReadOnly);
      NumAttrs = 1;
      break;
    case 9:
      AWI[0] = AttributeWithIndex::get(1, Attribute::NoCapture);
      AWI[1] = AttributeWithIndex::get(~0, Attribute::NoUnwind|Attribute::ReadOnly);
      NumAttrs = 2;
      break;
    case 2:
      AWI[0] = AttributeWithIndex::get(~0, Attribute::NoUnwind);
      NumAttrs = 1;
      break;
    case 5:
      AWI[0] = AttributeWithIndex::get(1, Attribute::NoCapture);
      AWI[1] = AttributeWithIndex::get(~0, Attribute::NoUnwind);
      NumAttrs = 2;
      break;
    case 8:
      AWI[0] = AttributeWithIndex::get(1, Attribute::NoCapture);
      AWI[1] = AttributeWithIndex::get(2, Attribute::NoCapture);
      AWI[2] = AttributeWithIndex::get(~0, Attribute::NoUnwind);
      NumAttrs = 3;
      break;
    case 7:
      AWI[0] = AttributeWithIndex::get(2, Attribute::NoCapture);
      AWI[1] = AttributeWithIndex::get(~0, Attribute::NoUnwind);
      NumAttrs = 2;
      break;
    case 4:
      AWI[0] = AttributeWithIndex::get(2, Attribute::NoCapture);
      AWI[1] = AttributeWithIndex::get(3, Attribute::NoCapture);
      AWI[2] = AttributeWithIndex::get(~0, Attribute::NoUnwind);
      NumAttrs = 3;
      break;
    case 6:
      AWI[0] = AttributeWithIndex::get(3, Attribute::NoCapture);
      AWI[1] = AttributeWithIndex::get(~0, Attribute::NoUnwind);
      NumAttrs = 2;
      break;
    case 11:
      AWI[0] = AttributeWithIndex::get(~0, Attribute::NoUnwind|Attribute::NoReturn);
      NumAttrs = 1;
      break;
    }
  }
  return AttrListPtr::get(ArrayRef<AttributeWithIndex>(AWI, NumAttrs));
}
#endif // GET_INTRINSIC_ATTRIBUTES

// Determine intrinsic alias analysis mod/ref behavior.
#ifdef GET_INTRINSIC_MODREF_BEHAVIOR
assert(iid <= Intrinsic::xcore_zext && "Unknown intrinsic.");

static const uint8_t IntrinsicModRefBehavior[] = {
  /* invalid */ UnknownModRefBehavior,
  /* adjust_trampoline */ OnlyReadsArgumentPointees,
  /* annotation */ UnknownModRefBehavior,
  /* arm_cdp */ UnknownModRefBehavior,
  /* arm_cdp2 */ UnknownModRefBehavior,
  /* arm_get_fpscr */ DoesNotAccessMemory,
  /* arm_ldrexd */ OnlyReadsArgumentPointees,
  /* arm_mcr */ UnknownModRefBehavior,
  /* arm_mcr2 */ UnknownModRefBehavior,
  /* arm_mcrr */ UnknownModRefBehavior,
  /* arm_mcrr2 */ UnknownModRefBehavior,
  /* arm_mrc */ UnknownModRefBehavior,
  /* arm_mrc2 */ UnknownModRefBehavior,
  /* arm_neon_vabds */ DoesNotAccessMemory,
  /* arm_neon_vabdu */ DoesNotAccessMemory,
  /* arm_neon_vabs */ DoesNotAccessMemory,
  /* arm_neon_vacged */ DoesNotAccessMemory,
  /* arm_neon_vacgeq */ DoesNotAccessMemory,
  /* arm_neon_vacgtd */ DoesNotAccessMemory,
  /* arm_neon_vacgtq */ DoesNotAccessMemory,
  /* arm_neon_vaddhn */ DoesNotAccessMemory,
  /* arm_neon_vbsl */ DoesNotAccessMemory,
  /* arm_neon_vcls */ DoesNotAccessMemory,
  /* arm_neon_vclz */ DoesNotAccessMemory,
  /* arm_neon_vcnt */ DoesNotAccessMemory,
  /* arm_neon_vcvtfp2fxs */ DoesNotAccessMemory,
  /* arm_neon_vcvtfp2fxu */ DoesNotAccessMemory,
  /* arm_neon_vcvtfp2hf */ DoesNotAccessMemory,
  /* arm_neon_vcvtfxs2fp */ DoesNotAccessMemory,
  /* arm_neon_vcvtfxu2fp */ DoesNotAccessMemory,
  /* arm_neon_vcvthf2fp */ DoesNotAccessMemory,
  /* arm_neon_vhadds */ DoesNotAccessMemory,
  /* arm_neon_vhaddu */ DoesNotAccessMemory,
  /* arm_neon_vhsubs */ DoesNotAccessMemory,
  /* arm_neon_vhsubu */ DoesNotAccessMemory,
  /* arm_neon_vld1 */ OnlyReadsArgumentPointees,
  /* arm_neon_vld2 */ OnlyReadsArgumentPointees,
  /* arm_neon_vld2lane */ OnlyReadsArgumentPointees,
  /* arm_neon_vld3 */ OnlyReadsArgumentPointees,
  /* arm_neon_vld3lane */ OnlyReadsArgumentPointees,
  /* arm_neon_vld4 */ OnlyReadsArgumentPointees,
  /* arm_neon_vld4lane */ OnlyReadsArgumentPointees,
  /* arm_neon_vmaxs */ DoesNotAccessMemory,
  /* arm_neon_vmaxu */ DoesNotAccessMemory,
  /* arm_neon_vmins */ DoesNotAccessMemory,
  /* arm_neon_vminu */ DoesNotAccessMemory,
  /* arm_neon_vmullp */ DoesNotAccessMemory,
  /* arm_neon_vmulls */ DoesNotAccessMemory,
  /* arm_neon_vmullu */ DoesNotAccessMemory,
  /* arm_neon_vmulp */ DoesNotAccessMemory,
  /* arm_neon_vpadals */ DoesNotAccessMemory,
  /* arm_neon_vpadalu */ DoesNotAccessMemory,
  /* arm_neon_vpadd */ DoesNotAccessMemory,
  /* arm_neon_vpaddls */ DoesNotAccessMemory,
  /* arm_neon_vpaddlu */ DoesNotAccessMemory,
  /* arm_neon_vpmaxs */ DoesNotAccessMemory,
  /* arm_neon_vpmaxu */ DoesNotAccessMemory,
  /* arm_neon_vpmins */ DoesNotAccessMemory,
  /* arm_neon_vpminu */ DoesNotAccessMemory,
  /* arm_neon_vqabs */ DoesNotAccessMemory,
  /* arm_neon_vqadds */ DoesNotAccessMemory,
  /* arm_neon_vqaddu */ DoesNotAccessMemory,
  /* arm_neon_vqdmlal */ DoesNotAccessMemory,
  /* arm_neon_vqdmlsl */ DoesNotAccessMemory,
  /* arm_neon_vqdmulh */ DoesNotAccessMemory,
  /* arm_neon_vqdmull */ DoesNotAccessMemory,
  /* arm_neon_vqmovns */ DoesNotAccessMemory,
  /* arm_neon_vqmovnsu */ DoesNotAccessMemory,
  /* arm_neon_vqmovnu */ DoesNotAccessMemory,
  /* arm_neon_vqneg */ DoesNotAccessMemory,
  /* arm_neon_vqrdmulh */ DoesNotAccessMemory,
  /* arm_neon_vqrshiftns */ DoesNotAccessMemory,
  /* arm_neon_vqrshiftnsu */ DoesNotAccessMemory,
  /* arm_neon_vqrshiftnu */ DoesNotAccessMemory,
  /* arm_neon_vqrshifts */ DoesNotAccessMemory,
  /* arm_neon_vqrshiftu */ DoesNotAccessMemory,
  /* arm_neon_vqshiftns */ DoesNotAccessMemory,
  /* arm_neon_vqshiftnsu */ DoesNotAccessMemory,
  /* arm_neon_vqshiftnu */ DoesNotAccessMemory,
  /* arm_neon_vqshifts */ DoesNotAccessMemory,
  /* arm_neon_vqshiftsu */ DoesNotAccessMemory,
  /* arm_neon_vqshiftu */ DoesNotAccessMemory,
  /* arm_neon_vqsubs */ DoesNotAccessMemory,
  /* arm_neon_vqsubu */ DoesNotAccessMemory,
  /* arm_neon_vraddhn */ DoesNotAccessMemory,
  /* arm_neon_vrecpe */ DoesNotAccessMemory,
  /* arm_neon_vrecps */ DoesNotAccessMemory,
  /* arm_neon_vrhadds */ DoesNotAccessMemory,
  /* arm_neon_vrhaddu */ DoesNotAccessMemory,
  /* arm_neon_vrshiftn */ DoesNotAccessMemory,
  /* arm_neon_vrshifts */ DoesNotAccessMemory,
  /* arm_neon_vrshiftu */ DoesNotAccessMemory,
  /* arm_neon_vrsqrte */ DoesNotAccessMemory,
  /* arm_neon_vrsqrts */ DoesNotAccessMemory,
  /* arm_neon_vrsubhn */ DoesNotAccessMemory,
  /* arm_neon_vshiftins */ DoesNotAccessMemory,
  /* arm_neon_vshiftls */ DoesNotAccessMemory,
  /* arm_neon_vshiftlu */ DoesNotAccessMemory,
  /* arm_neon_vshiftn */ DoesNotAccessMemory,
  /* arm_neon_vshifts */ DoesNotAccessMemory,
  /* arm_neon_vshiftu */ DoesNotAccessMemory,
  /* arm_neon_vst1 */ OnlyAccessesArgumentPointees,
  /* arm_neon_vst2 */ OnlyAccessesArgumentPointees,
  /* arm_neon_vst2lane */ OnlyAccessesArgumentPointees,
  /* arm_neon_vst3 */ OnlyAccessesArgumentPointees,
  /* arm_neon_vst3lane */ OnlyAccessesArgumentPointees,
  /* arm_neon_vst4 */ OnlyAccessesArgumentPointees,
  /* arm_neon_vst4lane */ OnlyAccessesArgumentPointees,
  /* arm_neon_vsubhn */ DoesNotAccessMemory,
  /* arm_neon_vtbl1 */ DoesNotAccessMemory,
  /* arm_neon_vtbl2 */ DoesNotAccessMemory,
  /* arm_neon_vtbl3 */ DoesNotAccessMemory,
  /* arm_neon_vtbl4 */ DoesNotAccessMemory,
  /* arm_neon_vtbx1 */ DoesNotAccessMemory,
  /* arm_neon_vtbx2 */ DoesNotAccessMemory,
  /* arm_neon_vtbx3 */ DoesNotAccessMemory,
  /* arm_neon_vtbx4 */ DoesNotAccessMemory,
  /* arm_qadd */ DoesNotAccessMemory,
  /* arm_qsub */ DoesNotAccessMemory,
  /* arm_set_fpscr */ UnknownModRefBehavior,
  /* arm_ssat */ DoesNotAccessMemory,
  /* arm_strexd */ OnlyAccessesArgumentPointees,
  /* arm_thread_pointer */ DoesNotAccessMemory,
  /* arm_usat */ DoesNotAccessMemory,
  /* arm_vcvtr */ DoesNotAccessMemory,
  /* arm_vcvtru */ DoesNotAccessMemory,
  /* bswap */ DoesNotAccessMemory,
  /* convert_from_fp16 */ DoesNotAccessMemory,
  /* convert_to_fp16 */ DoesNotAccessMemory,
  /* convertff */ UnknownModRefBehavior,
  /* convertfsi */ UnknownModRefBehavior,
  /* convertfui */ UnknownModRefBehavior,
  /* convertsif */ UnknownModRefBehavior,
  /* convertss */ UnknownModRefBehavior,
  /* convertsu */ UnknownModRefBehavior,
  /* convertuif */ UnknownModRefBehavior,
  /* convertus */ UnknownModRefBehavior,
  /* convertuu */ UnknownModRefBehavior,
  /* cos */ OnlyReadsMemory,
  /* ctlz */ DoesNotAccessMemory,
  /* ctpop */ DoesNotAccessMemory,
  /* cttz */ DoesNotAccessMemory,
  /* cuda_syncthreads */ UnknownModRefBehavior,
  /* dbg_declare */ DoesNotAccessMemory,
  /* dbg_value */ DoesNotAccessMemory,
  /* debugtrap */ UnknownModRefBehavior,
  /* donothing */ DoesNotAccessMemory,
  /* eh_dwarf_cfa */ UnknownModRefBehavior,
  /* eh_return_i32 */ UnknownModRefBehavior,
  /* eh_return_i64 */ UnknownModRefBehavior,
  /* eh_sjlj_callsite */ DoesNotAccessMemory,
  /* eh_sjlj_functioncontext */ UnknownModRefBehavior,
  /* eh_sjlj_longjmp */ UnknownModRefBehavior,
  /* eh_sjlj_lsda */ DoesNotAccessMemory,
  /* eh_sjlj_setjmp */ UnknownModRefBehavior,
  /* eh_typeid_for */ DoesNotAccessMemory,
  /* eh_unwind_init */ UnknownModRefBehavior,
  /* exp */ OnlyReadsMemory,
  /* exp2 */ OnlyReadsMemory,
  /* expect */ DoesNotAccessMemory,
  /* fabs */ OnlyReadsMemory,
  /* floor */ OnlyReadsMemory,
  /* flt_rounds */ UnknownModRefBehavior,
  /* fma */ DoesNotAccessMemory,
  /* fmuladd */ DoesNotAccessMemory,
  /* frameaddress */ DoesNotAccessMemory,
  /* gcread */ OnlyReadsArgumentPointees,
  /* gcroot */ UnknownModRefBehavior,
  /* gcwrite */ OnlyAccessesArgumentPointees,
  /* hexagon_A2_abs */ DoesNotAccessMemory,
  /* hexagon_A2_absp */ DoesNotAccessMemory,
  /* hexagon_A2_abssat */ DoesNotAccessMemory,
  /* hexagon_A2_add */ DoesNotAccessMemory,
  /* hexagon_A2_addh_h16_hh */ DoesNotAccessMemory,
  /* hexagon_A2_addh_h16_hl */ DoesNotAccessMemory,
  /* hexagon_A2_addh_h16_lh */ DoesNotAccessMemory,
  /* hexagon_A2_addh_h16_ll */ DoesNotAccessMemory,
  /* hexagon_A2_addh_h16_sat_hh */ DoesNotAccessMemory,
  /* hexagon_A2_addh_h16_sat_hl */ DoesNotAccessMemory,
  /* hexagon_A2_addh_h16_sat_lh */ DoesNotAccessMemory,
  /* hexagon_A2_addh_h16_sat_ll */ DoesNotAccessMemory,
  /* hexagon_A2_addh_l16_hl */ DoesNotAccessMemory,
  /* hexagon_A2_addh_l16_ll */ DoesNotAccessMemory,
  /* hexagon_A2_addh_l16_sat_hl */ DoesNotAccessMemory,
  /* hexagon_A2_addh_l16_sat_ll */ DoesNotAccessMemory,
  /* hexagon_A2_addi */ DoesNotAccessMemory,
  /* hexagon_A2_addp */ DoesNotAccessMemory,
  /* hexagon_A2_addpsat */ DoesNotAccessMemory,
  /* hexagon_A2_addsat */ DoesNotAccessMemory,
  /* hexagon_A2_addsp */ DoesNotAccessMemory,
  /* hexagon_A2_and */ DoesNotAccessMemory,
  /* hexagon_A2_andir */ DoesNotAccessMemory,
  /* hexagon_A2_andp */ DoesNotAccessMemory,
  /* hexagon_A2_aslh */ DoesNotAccessMemory,
  /* hexagon_A2_asrh */ DoesNotAccessMemory,
  /* hexagon_A2_combine_hh */ DoesNotAccessMemory,
  /* hexagon_A2_combine_hl */ DoesNotAccessMemory,
  /* hexagon_A2_combine_lh */ DoesNotAccessMemory,
  /* hexagon_A2_combine_ll */ DoesNotAccessMemory,
  /* hexagon_A2_combineii */ DoesNotAccessMemory,
  /* hexagon_A2_combinew */ DoesNotAccessMemory,
  /* hexagon_A2_max */ DoesNotAccessMemory,
  /* hexagon_A2_maxp */ DoesNotAccessMemory,
  /* hexagon_A2_maxu */ DoesNotAccessMemory,
  /* hexagon_A2_maxup */ DoesNotAccessMemory,
  /* hexagon_A2_min */ DoesNotAccessMemory,
  /* hexagon_A2_minp */ DoesNotAccessMemory,
  /* hexagon_A2_minu */ DoesNotAccessMemory,
  /* hexagon_A2_minup */ DoesNotAccessMemory,
  /* hexagon_A2_neg */ DoesNotAccessMemory,
  /* hexagon_A2_negp */ DoesNotAccessMemory,
  /* hexagon_A2_negsat */ DoesNotAccessMemory,
  /* hexagon_A2_not */ DoesNotAccessMemory,
  /* hexagon_A2_notp */ DoesNotAccessMemory,
  /* hexagon_A2_or */ DoesNotAccessMemory,
  /* hexagon_A2_orir */ DoesNotAccessMemory,
  /* hexagon_A2_orp */ DoesNotAccessMemory,
  /* hexagon_A2_roundsat */ DoesNotAccessMemory,
  /* hexagon_A2_sat */ DoesNotAccessMemory,
  /* hexagon_A2_satb */ DoesNotAccessMemory,
  /* hexagon_A2_sath */ DoesNotAccessMemory,
  /* hexagon_A2_satub */ DoesNotAccessMemory,
  /* hexagon_A2_satuh */ DoesNotAccessMemory,
  /* hexagon_A2_sub */ DoesNotAccessMemory,
  /* hexagon_A2_subh_h16_hh */ DoesNotAccessMemory,
  /* hexagon_A2_subh_h16_hl */ DoesNotAccessMemory,
  /* hexagon_A2_subh_h16_lh */ DoesNotAccessMemory,
  /* hexagon_A2_subh_h16_ll */ DoesNotAccessMemory,
  /* hexagon_A2_subh_h16_sat_hh */ DoesNotAccessMemory,
  /* hexagon_A2_subh_h16_sat_hl */ DoesNotAccessMemory,
  /* hexagon_A2_subh_h16_sat_lh */ DoesNotAccessMemory,
  /* hexagon_A2_subh_h16_sat_ll */ DoesNotAccessMemory,
  /* hexagon_A2_subh_l16_hl */ DoesNotAccessMemory,
  /* hexagon_A2_subh_l16_ll */ DoesNotAccessMemory,
  /* hexagon_A2_subh_l16_sat_hl */ DoesNotAccessMemory,
  /* hexagon_A2_subh_l16_sat_ll */ DoesNotAccessMemory,
  /* hexagon_A2_subp */ DoesNotAccessMemory,
  /* hexagon_A2_subri */ DoesNotAccessMemory,
  /* hexagon_A2_subsat */ DoesNotAccessMemory,
  /* hexagon_A2_svaddh */ DoesNotAccessMemory,
  /* hexagon_A2_svaddhs */ DoesNotAccessMemory,
  /* hexagon_A2_svadduhs */ DoesNotAccessMemory,
  /* hexagon_A2_svavgh */ DoesNotAccessMemory,
  /* hexagon_A2_svavghs */ DoesNotAccessMemory,
  /* hexagon_A2_svnavgh */ DoesNotAccessMemory,
  /* hexagon_A2_svsubh */ DoesNotAccessMemory,
  /* hexagon_A2_svsubhs */ DoesNotAccessMemory,
  /* hexagon_A2_svsubuhs */ DoesNotAccessMemory,
  /* hexagon_A2_swiz */ DoesNotAccessMemory,
  /* hexagon_A2_sxtb */ DoesNotAccessMemory,
  /* hexagon_A2_sxth */ DoesNotAccessMemory,
  /* hexagon_A2_sxtw */ DoesNotAccessMemory,
  /* hexagon_A2_tfr */ DoesNotAccessMemory,
  /* hexagon_A2_tfrih */ DoesNotAccessMemory,
  /* hexagon_A2_tfril */ DoesNotAccessMemory,
  /* hexagon_A2_tfrp */ DoesNotAccessMemory,
  /* hexagon_A2_tfrpi */ DoesNotAccessMemory,
  /* hexagon_A2_tfrsi */ DoesNotAccessMemory,
  /* hexagon_A2_vabsh */ DoesNotAccessMemory,
  /* hexagon_A2_vabshsat */ DoesNotAccessMemory,
  /* hexagon_A2_vabsw */ DoesNotAccessMemory,
  /* hexagon_A2_vabswsat */ DoesNotAccessMemory,
  /* hexagon_A2_vaddb_map */ DoesNotAccessMemory,
  /* hexagon_A2_vaddh */ DoesNotAccessMemory,
  /* hexagon_A2_vaddhs */ DoesNotAccessMemory,
  /* hexagon_A2_vaddub */ DoesNotAccessMemory,
  /* hexagon_A2_vaddubs */ DoesNotAccessMemory,
  /* hexagon_A2_vadduhs */ DoesNotAccessMemory,
  /* hexagon_A2_vaddw */ DoesNotAccessMemory,
  /* hexagon_A2_vaddws */ DoesNotAccessMemory,
  /* hexagon_A2_vavgh */ DoesNotAccessMemory,
  /* hexagon_A2_vavghcr */ DoesNotAccessMemory,
  /* hexagon_A2_vavghr */ DoesNotAccessMemory,
  /* hexagon_A2_vavgub */ DoesNotAccessMemory,
  /* hexagon_A2_vavgubr */ DoesNotAccessMemory,
  /* hexagon_A2_vavguh */ DoesNotAccessMemory,
  /* hexagon_A2_vavguhr */ DoesNotAccessMemory,
  /* hexagon_A2_vavguw */ DoesNotAccessMemory,
  /* hexagon_A2_vavguwr */ DoesNotAccessMemory,
  /* hexagon_A2_vavgw */ DoesNotAccessMemory,
  /* hexagon_A2_vavgwcr */ DoesNotAccessMemory,
  /* hexagon_A2_vavgwr */ DoesNotAccessMemory,
  /* hexagon_A2_vcmpbeq */ DoesNotAccessMemory,
  /* hexagon_A2_vcmpbgtu */ DoesNotAccessMemory,
  /* hexagon_A2_vcmpheq */ DoesNotAccessMemory,
  /* hexagon_A2_vcmphgt */ DoesNotAccessMemory,
  /* hexagon_A2_vcmphgtu */ DoesNotAccessMemory,
  /* hexagon_A2_vcmpweq */ DoesNotAccessMemory,
  /* hexagon_A2_vcmpwgt */ DoesNotAccessMemory,
  /* hexagon_A2_vcmpwgtu */ DoesNotAccessMemory,
  /* hexagon_A2_vconj */ DoesNotAccessMemory,
  /* hexagon_A2_vmaxb */ DoesNotAccessMemory,
  /* hexagon_A2_vmaxh */ DoesNotAccessMemory,
  /* hexagon_A2_vmaxub */ DoesNotAccessMemory,
  /* hexagon_A2_vmaxuh */ DoesNotAccessMemory,
  /* hexagon_A2_vmaxuw */ DoesNotAccessMemory,
  /* hexagon_A2_vmaxw */ DoesNotAccessMemory,
  /* hexagon_A2_vminb */ DoesNotAccessMemory,
  /* hexagon_A2_vminh */ DoesNotAccessMemory,
  /* hexagon_A2_vminub */ DoesNotAccessMemory,
  /* hexagon_A2_vminuh */ DoesNotAccessMemory,
  /* hexagon_A2_vminuw */ DoesNotAccessMemory,
  /* hexagon_A2_vminw */ DoesNotAccessMemory,
  /* hexagon_A2_vnavgh */ DoesNotAccessMemory,
  /* hexagon_A2_vnavghcr */ DoesNotAccessMemory,
  /* hexagon_A2_vnavghr */ DoesNotAccessMemory,
  /* hexagon_A2_vnavgw */ DoesNotAccessMemory,
  /* hexagon_A2_vnavgwcr */ DoesNotAccessMemory,
  /* hexagon_A2_vnavgwr */ DoesNotAccessMemory,
  /* hexagon_A2_vraddub */ DoesNotAccessMemory,
  /* hexagon_A2_vraddub_acc */ DoesNotAccessMemory,
  /* hexagon_A2_vrsadub */ DoesNotAccessMemory,
  /* hexagon_A2_vrsadub_acc */ DoesNotAccessMemory,
  /* hexagon_A2_vsubb_map */ DoesNotAccessMemory,
  /* hexagon_A2_vsubh */ DoesNotAccessMemory,
  /* hexagon_A2_vsubhs */ DoesNotAccessMemory,
  /* hexagon_A2_vsubub */ DoesNotAccessMemory,
  /* hexagon_A2_vsububs */ DoesNotAccessMemory,
  /* hexagon_A2_vsubuhs */ DoesNotAccessMemory,
  /* hexagon_A2_vsubw */ DoesNotAccessMemory,
  /* hexagon_A2_vsubws */ DoesNotAccessMemory,
  /* hexagon_A2_xor */ DoesNotAccessMemory,
  /* hexagon_A2_xorp */ DoesNotAccessMemory,
  /* hexagon_A2_zxtb */ DoesNotAccessMemory,
  /* hexagon_A2_zxth */ DoesNotAccessMemory,
  /* hexagon_A4_andn */ DoesNotAccessMemory,
  /* hexagon_A4_andnp */ DoesNotAccessMemory,
  /* hexagon_A4_bitsplit */ DoesNotAccessMemory,
  /* hexagon_A4_bitspliti */ DoesNotAccessMemory,
  /* hexagon_A4_boundscheck */ DoesNotAccessMemory,
  /* hexagon_A4_cmpbeq */ DoesNotAccessMemory,
  /* hexagon_A4_cmpbeqi */ DoesNotAccessMemory,
  /* hexagon_A4_cmpbgt */ DoesNotAccessMemory,
  /* hexagon_A4_cmpbgti */ DoesNotAccessMemory,
  /* hexagon_A4_cmpbgtu */ DoesNotAccessMemory,
  /* hexagon_A4_cmpbgtui */ DoesNotAccessMemory,
  /* hexagon_A4_cmpheq */ DoesNotAccessMemory,
  /* hexagon_A4_cmpheqi */ DoesNotAccessMemory,
  /* hexagon_A4_cmphgt */ DoesNotAccessMemory,
  /* hexagon_A4_cmphgti */ DoesNotAccessMemory,
  /* hexagon_A4_cmphgtu */ DoesNotAccessMemory,
  /* hexagon_A4_cmphgtui */ DoesNotAccessMemory,
  /* hexagon_A4_combineir */ DoesNotAccessMemory,
  /* hexagon_A4_combineri */ DoesNotAccessMemory,
  /* hexagon_A4_cround_ri */ DoesNotAccessMemory,
  /* hexagon_A4_cround_rr */ DoesNotAccessMemory,
  /* hexagon_A4_modwrapu */ DoesNotAccessMemory,
  /* hexagon_A4_orn */ DoesNotAccessMemory,
  /* hexagon_A4_ornp */ DoesNotAccessMemory,
  /* hexagon_A4_rcmpeq */ DoesNotAccessMemory,
  /* hexagon_A4_rcmpeqi */ DoesNotAccessMemory,
  /* hexagon_A4_rcmpneq */ DoesNotAccessMemory,
  /* hexagon_A4_rcmpneqi */ DoesNotAccessMemory,
  /* hexagon_A4_round_ri */ DoesNotAccessMemory,
  /* hexagon_A4_round_ri_sat */ DoesNotAccessMemory,
  /* hexagon_A4_round_rr */ DoesNotAccessMemory,
  /* hexagon_A4_round_rr_sat */ DoesNotAccessMemory,
  /* hexagon_A4_tlbmatch */ DoesNotAccessMemory,
  /* hexagon_A4_vcmpbeq_any */ DoesNotAccessMemory,
  /* hexagon_A4_vcmpbeqi */ DoesNotAccessMemory,
  /* hexagon_A4_vcmpbgt */ DoesNotAccessMemory,
  /* hexagon_A4_vcmpbgti */ DoesNotAccessMemory,
  /* hexagon_A4_vcmpbgtui */ DoesNotAccessMemory,
  /* hexagon_A4_vcmpheqi */ DoesNotAccessMemory,
  /* hexagon_A4_vcmphgti */ DoesNotAccessMemory,
  /* hexagon_A4_vcmphgtui */ DoesNotAccessMemory,
  /* hexagon_A4_vcmpweqi */ DoesNotAccessMemory,
  /* hexagon_A4_vcmpwgti */ DoesNotAccessMemory,
  /* hexagon_A4_vcmpwgtui */ DoesNotAccessMemory,
  /* hexagon_A4_vrmaxh */ DoesNotAccessMemory,
  /* hexagon_A4_vrmaxuh */ DoesNotAccessMemory,
  /* hexagon_A4_vrmaxuw */ DoesNotAccessMemory,
  /* hexagon_A4_vrmaxw */ DoesNotAccessMemory,
  /* hexagon_A4_vrminh */ DoesNotAccessMemory,
  /* hexagon_A4_vrminuh */ DoesNotAccessMemory,
  /* hexagon_A4_vrminuw */ DoesNotAccessMemory,
  /* hexagon_A4_vrminw */ DoesNotAccessMemory,
  /* hexagon_A5_vaddhubs */ DoesNotAccessMemory,
  /* hexagon_C2_all8 */ DoesNotAccessMemory,
  /* hexagon_C2_and */ DoesNotAccessMemory,
  /* hexagon_C2_andn */ DoesNotAccessMemory,
  /* hexagon_C2_any8 */ DoesNotAccessMemory,
  /* hexagon_C2_bitsclr */ DoesNotAccessMemory,
  /* hexagon_C2_bitsclri */ DoesNotAccessMemory,
  /* hexagon_C2_bitsset */ DoesNotAccessMemory,
  /* hexagon_C2_cmpeq */ DoesNotAccessMemory,
  /* hexagon_C2_cmpeqi */ DoesNotAccessMemory,
  /* hexagon_C2_cmpeqp */ DoesNotAccessMemory,
  /* hexagon_C2_cmpgei */ DoesNotAccessMemory,
  /* hexagon_C2_cmpgeui */ DoesNotAccessMemory,
  /* hexagon_C2_cmpgt */ DoesNotAccessMemory,
  /* hexagon_C2_cmpgti */ DoesNotAccessMemory,
  /* hexagon_C2_cmpgtp */ DoesNotAccessMemory,
  /* hexagon_C2_cmpgtu */ DoesNotAccessMemory,
  /* hexagon_C2_cmpgtui */ DoesNotAccessMemory,
  /* hexagon_C2_cmpgtup */ DoesNotAccessMemory,
  /* hexagon_C2_cmplt */ DoesNotAccessMemory,
  /* hexagon_C2_cmpltu */ DoesNotAccessMemory,
  /* hexagon_C2_mask */ DoesNotAccessMemory,
  /* hexagon_C2_mux */ DoesNotAccessMemory,
  /* hexagon_C2_muxii */ DoesNotAccessMemory,
  /* hexagon_C2_muxir */ DoesNotAccessMemory,
  /* hexagon_C2_muxri */ DoesNotAccessMemory,
  /* hexagon_C2_not */ DoesNotAccessMemory,
  /* hexagon_C2_or */ DoesNotAccessMemory,
  /* hexagon_C2_orn */ DoesNotAccessMemory,
  /* hexagon_C2_pxfer_map */ DoesNotAccessMemory,
  /* hexagon_C2_tfrpr */ DoesNotAccessMemory,
  /* hexagon_C2_tfrrp */ DoesNotAccessMemory,
  /* hexagon_C2_vitpack */ DoesNotAccessMemory,
  /* hexagon_C2_vmux */ DoesNotAccessMemory,
  /* hexagon_C2_xor */ DoesNotAccessMemory,
  /* hexagon_C4_and_and */ DoesNotAccessMemory,
  /* hexagon_C4_and_andn */ DoesNotAccessMemory,
  /* hexagon_C4_and_or */ DoesNotAccessMemory,
  /* hexagon_C4_and_orn */ DoesNotAccessMemory,
  /* hexagon_C4_cmplte */ DoesNotAccessMemory,
  /* hexagon_C4_cmpltei */ DoesNotAccessMemory,
  /* hexagon_C4_cmplteu */ DoesNotAccessMemory,
  /* hexagon_C4_cmplteui */ DoesNotAccessMemory,
  /* hexagon_C4_cmpneq */ DoesNotAccessMemory,
  /* hexagon_C4_cmpneqi */ DoesNotAccessMemory,
  /* hexagon_C4_fastcorner9 */ DoesNotAccessMemory,
  /* hexagon_C4_fastcorner9_not */ DoesNotAccessMemory,
  /* hexagon_C4_nbitsclr */ DoesNotAccessMemory,
  /* hexagon_C4_nbitsclri */ DoesNotAccessMemory,
  /* hexagon_C4_nbitsset */ DoesNotAccessMemory,
  /* hexagon_C4_or_and */ DoesNotAccessMemory,
  /* hexagon_C4_or_andn */ DoesNotAccessMemory,
  /* hexagon_C4_or_or */ DoesNotAccessMemory,
  /* hexagon_C4_or_orn */ DoesNotAccessMemory,
  /* hexagon_F2_conv_d2df */ DoesNotAccessMemory,
  /* hexagon_F2_conv_d2sf */ DoesNotAccessMemory,
  /* hexagon_F2_conv_df2d */ DoesNotAccessMemory,
  /* hexagon_F2_conv_df2d_chop */ DoesNotAccessMemory,
  /* hexagon_F2_conv_df2sf */ DoesNotAccessMemory,
  /* hexagon_F2_conv_df2ud */ DoesNotAccessMemory,
  /* hexagon_F2_conv_df2ud_chop */ DoesNotAccessMemory,
  /* hexagon_F2_conv_df2uw */ DoesNotAccessMemory,
  /* hexagon_F2_conv_df2uw_chop */ DoesNotAccessMemory,
  /* hexagon_F2_conv_df2w */ DoesNotAccessMemory,
  /* hexagon_F2_conv_df2w_chop */ DoesNotAccessMemory,
  /* hexagon_F2_conv_sf2d */ DoesNotAccessMemory,
  /* hexagon_F2_conv_sf2d_chop */ DoesNotAccessMemory,
  /* hexagon_F2_conv_sf2df */ DoesNotAccessMemory,
  /* hexagon_F2_conv_sf2ud */ DoesNotAccessMemory,
  /* hexagon_F2_conv_sf2ud_chop */ DoesNotAccessMemory,
  /* hexagon_F2_conv_sf2uw */ DoesNotAccessMemory,
  /* hexagon_F2_conv_sf2uw_chop */ DoesNotAccessMemory,
  /* hexagon_F2_conv_sf2w */ DoesNotAccessMemory,
  /* hexagon_F2_conv_sf2w_chop */ DoesNotAccessMemory,
  /* hexagon_F2_conv_ud2df */ DoesNotAccessMemory,
  /* hexagon_F2_conv_ud2sf */ DoesNotAccessMemory,
  /* hexagon_F2_conv_uw2df */ DoesNotAccessMemory,
  /* hexagon_F2_conv_uw2sf */ DoesNotAccessMemory,
  /* hexagon_F2_conv_w2df */ DoesNotAccessMemory,
  /* hexagon_F2_conv_w2sf */ DoesNotAccessMemory,
  /* hexagon_F2_dfadd */ DoesNotAccessMemory,
  /* hexagon_F2_dfclass */ DoesNotAccessMemory,
  /* hexagon_F2_dfcmpeq */ DoesNotAccessMemory,
  /* hexagon_F2_dfcmpge */ DoesNotAccessMemory,
  /* hexagon_F2_dfcmpgt */ DoesNotAccessMemory,
  /* hexagon_F2_dfcmpuo */ DoesNotAccessMemory,
  /* hexagon_F2_dffixupd */ DoesNotAccessMemory,
  /* hexagon_F2_dffixupn */ DoesNotAccessMemory,
  /* hexagon_F2_dffixupr */ DoesNotAccessMemory,
  /* hexagon_F2_dffma */ DoesNotAccessMemory,
  /* hexagon_F2_dffma_lib */ DoesNotAccessMemory,
  /* hexagon_F2_dffma_sc */ DoesNotAccessMemory,
  /* hexagon_F2_dffms */ DoesNotAccessMemory,
  /* hexagon_F2_dffms_lib */ DoesNotAccessMemory,
  /* hexagon_F2_dfimm_n */ DoesNotAccessMemory,
  /* hexagon_F2_dfimm_p */ DoesNotAccessMemory,
  /* hexagon_F2_dfmax */ DoesNotAccessMemory,
  /* hexagon_F2_dfmin */ DoesNotAccessMemory,
  /* hexagon_F2_dfmpy */ DoesNotAccessMemory,
  /* hexagon_F2_dfsub */ DoesNotAccessMemory,
  /* hexagon_F2_sfadd */ DoesNotAccessMemory,
  /* hexagon_F2_sfclass */ DoesNotAccessMemory,
  /* hexagon_F2_sfcmpeq */ DoesNotAccessMemory,
  /* hexagon_F2_sfcmpge */ DoesNotAccessMemory,
  /* hexagon_F2_sfcmpgt */ DoesNotAccessMemory,
  /* hexagon_F2_sfcmpuo */ DoesNotAccessMemory,
  /* hexagon_F2_sffixupd */ DoesNotAccessMemory,
  /* hexagon_F2_sffixupn */ DoesNotAccessMemory,
  /* hexagon_F2_sffixupr */ DoesNotAccessMemory,
  /* hexagon_F2_sffma */ DoesNotAccessMemory,
  /* hexagon_F2_sffma_lib */ DoesNotAccessMemory,
  /* hexagon_F2_sffma_sc */ DoesNotAccessMemory,
  /* hexagon_F2_sffms */ DoesNotAccessMemory,
  /* hexagon_F2_sffms_lib */ DoesNotAccessMemory,
  /* hexagon_F2_sfimm_n */ DoesNotAccessMemory,
  /* hexagon_F2_sfimm_p */ DoesNotAccessMemory,
  /* hexagon_F2_sfmax */ DoesNotAccessMemory,
  /* hexagon_F2_sfmin */ DoesNotAccessMemory,
  /* hexagon_F2_sfmpy */ DoesNotAccessMemory,
  /* hexagon_F2_sfsub */ DoesNotAccessMemory,
  /* hexagon_M2_acci */ DoesNotAccessMemory,
  /* hexagon_M2_accii */ DoesNotAccessMemory,
  /* hexagon_M2_cmaci_s0 */ DoesNotAccessMemory,
  /* hexagon_M2_cmacr_s0 */ DoesNotAccessMemory,
  /* hexagon_M2_cmacs_s0 */ DoesNotAccessMemory,
  /* hexagon_M2_cmacs_s1 */ DoesNotAccessMemory,
  /* hexagon_M2_cmacsc_s0 */ DoesNotAccessMemory,
  /* hexagon_M2_cmacsc_s1 */ DoesNotAccessMemory,
  /* hexagon_M2_cmpyi_s0 */ DoesNotAccessMemory,
  /* hexagon_M2_cmpyr_s0 */ DoesNotAccessMemory,
  /* hexagon_M2_cmpyrs_s0 */ DoesNotAccessMemory,
  /* hexagon_M2_cmpyrs_s1 */ DoesNotAccessMemory,
  /* hexagon_M2_cmpyrsc_s0 */ DoesNotAccessMemory,
  /* hexagon_M2_cmpyrsc_s1 */ DoesNotAccessMemory,
  /* hexagon_M2_cmpys_s0 */ DoesNotAccessMemory,
  /* hexagon_M2_cmpys_s1 */ DoesNotAccessMemory,
  /* hexagon_M2_cmpysc_s0 */ DoesNotAccessMemory,
  /* hexagon_M2_cmpysc_s1 */ DoesNotAccessMemory,
  /* hexagon_M2_cnacs_s0 */ DoesNotAccessMemory,
  /* hexagon_M2_cnacs_s1 */ DoesNotAccessMemory,
  /* hexagon_M2_cnacsc_s0 */ DoesNotAccessMemory,
  /* hexagon_M2_cnacsc_s1 */ DoesNotAccessMemory,
  /* hexagon_M2_dpmpyss_acc_s0 */ DoesNotAccessMemory,
  /* hexagon_M2_dpmpyss_nac_s0 */ DoesNotAccessMemory,
  /* hexagon_M2_dpmpyss_rnd_s0 */ DoesNotAccessMemory,
  /* hexagon_M2_dpmpyss_s0 */ DoesNotAccessMemory,
  /* hexagon_M2_dpmpyuu_acc_s0 */ DoesNotAccessMemory,
  /* hexagon_M2_dpmpyuu_nac_s0 */ DoesNotAccessMemory,
  /* hexagon_M2_dpmpyuu_s0 */ DoesNotAccessMemory,
  /* hexagon_M2_hmmpyh_rs1 */ DoesNotAccessMemory,
  /* hexagon_M2_hmmpyh_s1 */ DoesNotAccessMemory,
  /* hexagon_M2_hmmpyl_rs1 */ DoesNotAccessMemory,
  /* hexagon_M2_hmmpyl_s1 */ DoesNotAccessMemory,
  /* hexagon_M2_maci */ DoesNotAccessMemory,
  /* hexagon_M2_macsin */ DoesNotAccessMemory,
  /* hexagon_M2_macsip */ DoesNotAccessMemory,
  /* hexagon_M2_mmachs_rs0 */ DoesNotAccessMemory,
  /* hexagon_M2_mmachs_rs1 */ DoesNotAccessMemory,
  /* hexagon_M2_mmachs_s0 */ DoesNotAccessMemory,
  /* hexagon_M2_mmachs_s1 */ DoesNotAccessMemory,
  /* hexagon_M2_mmacls_rs0 */ DoesNotAccessMemory,
  /* hexagon_M2_mmacls_rs1 */ DoesNotAccessMemory,
  /* hexagon_M2_mmacls_s0 */ DoesNotAccessMemory,
  /* hexagon_M2_mmacls_s1 */ DoesNotAccessMemory,
  /* hexagon_M2_mmacuhs_rs0 */ DoesNotAccessMemory,
  /* hexagon_M2_mmacuhs_rs1 */ DoesNotAccessMemory,
  /* hexagon_M2_mmacuhs_s0 */ DoesNotAccessMemory,
  /* hexagon_M2_mmacuhs_s1 */ DoesNotAccessMemory,
  /* hexagon_M2_mmaculs_rs0 */ DoesNotAccessMemory,
  /* hexagon_M2_mmaculs_rs1 */ DoesNotAccessMemory,
  /* hexagon_M2_mmaculs_s0 */ DoesNotAccessMemory,
  /* hexagon_M2_mmaculs_s1 */ DoesNotAccessMemory,
  /* hexagon_M2_mmpyh_rs0 */ DoesNotAccessMemory,
  /* hexagon_M2_mmpyh_rs1 */ DoesNotAccessMemory,
  /* hexagon_M2_mmpyh_s0 */ DoesNotAccessMemory,
  /* hexagon_M2_mmpyh_s1 */ DoesNotAccessMemory,
  /* hexagon_M2_mmpyl_rs0 */ DoesNotAccessMemory,
  /* hexagon_M2_mmpyl_rs1 */ DoesNotAccessMemory,
  /* hexagon_M2_mmpyl_s0 */ DoesNotAccessMemory,
  /* hexagon_M2_mmpyl_s1 */ DoesNotAccessMemory,
  /* hexagon_M2_mmpyuh_rs0 */ DoesNotAccessMemory,
  /* hexagon_M2_mmpyuh_rs1 */ DoesNotAccessMemory,
  /* hexagon_M2_mmpyuh_s0 */ DoesNotAccessMemory,
  /* hexagon_M2_mmpyuh_s1 */ DoesNotAccessMemory,
  /* hexagon_M2_mmpyul_rs0 */ DoesNotAccessMemory,
  /* hexagon_M2_mmpyul_rs1 */ DoesNotAccessMemory,
  /* hexagon_M2_mmpyul_s0 */ DoesNotAccessMemory,
  /* hexagon_M2_mmpyul_s1 */ DoesNotAccessMemory,
  /* hexagon_M2_mpy_acc_hh_s0 */ DoesNotAccessMemory,
  /* hexagon_M2_mpy_acc_hh_s1 */ DoesNotAccessMemory,
  /* hexagon_M2_mpy_acc_hl_s0 */ DoesNotAccessMemory,
  /* hexagon_M2_mpy_acc_hl_s1 */ DoesNotAccessMemory,
  /* hexagon_M2_mpy_acc_lh_s0 */ DoesNotAccessMemory,
  /* hexagon_M2_mpy_acc_lh_s1 */ DoesNotAccessMemory,
  /* hexagon_M2_mpy_acc_ll_s0 */ DoesNotAccessMemory,
  /* hexagon_M2_mpy_acc_ll_s1 */ DoesNotAccessMemory,
  /* hexagon_M2_mpy_acc_sat_hh_s0 */ DoesNotAccessMemory,
  /* hexagon_M2_mpy_acc_sat_hh_s1 */ DoesNotAccessMemory,
  /* hexagon_M2_mpy_acc_sat_hl_s0 */ DoesNotAccessMemory,
  /* hexagon_M2_mpy_acc_sat_hl_s1 */ DoesNotAccessMemory,
  /* hexagon_M2_mpy_acc_sat_lh_s0 */ DoesNotAccessMemory,
  /* hexagon_M2_mpy_acc_sat_lh_s1 */ DoesNotAccessMemory,
  /* hexagon_M2_mpy_acc_sat_ll_s0 */ DoesNotAccessMemory,
  /* hexagon_M2_mpy_acc_sat_ll_s1 */ DoesNotAccessMemory,
  /* hexagon_M2_mpy_hh_s0 */ DoesNotAccessMemory,
  /* hexagon_M2_mpy_hh_s1 */ DoesNotAccessMemory,
  /* hexagon_M2_mpy_hl_s0 */ DoesNotAccessMemory,
  /* hexagon_M2_mpy_hl_s1 */ DoesNotAccessMemory,
  /* hexagon_M2_mpy_lh_s0 */ DoesNotAccessMemory,
  /* hexagon_M2_mpy_lh_s1 */ DoesNotAccessMemory,
  /* hexagon_M2_mpy_ll_s0 */ DoesNotAccessMemory,
  /* hexagon_M2_mpy_ll_s1 */ DoesNotAccessMemory,
  /* hexagon_M2_mpy_nac_hh_s0 */ DoesNotAccessMemory,
  /* hexagon_M2_mpy_nac_hh_s1 */ DoesNotAccessMemory,
  /* hexagon_M2_mpy_nac_hl_s0 */ DoesNotAccessMemory,
  /* hexagon_M2_mpy_nac_hl_s1 */ DoesNotAccessMemory,
  /* hexagon_M2_mpy_nac_lh_s0 */ DoesNotAccessMemory,
  /* hexagon_M2_mpy_nac_lh_s1 */ DoesNotAccessMemory,
  /* hexagon_M2_mpy_nac_ll_s0 */ DoesNotAccessMemory,
  /* hexagon_M2_mpy_nac_ll_s1 */ DoesNotAccessMemory,
  /* hexagon_M2_mpy_nac_sat_hh_s0 */ DoesNotAccessMemory,
  /* hexagon_M2_mpy_nac_sat_hh_s1 */ DoesNotAccessMemory,
  /* hexagon_M2_mpy_nac_sat_hl_s0 */ DoesNotAccessMemory,
  /* hexagon_M2_mpy_nac_sat_hl_s1 */ DoesNotAccessMemory,
  /* hexagon_M2_mpy_nac_sat_lh_s0 */ DoesNotAccessMemory,
  /* hexagon_M2_mpy_nac_sat_lh_s1 */ DoesNotAccessMemory,
  /* hexagon_M2_mpy_nac_sat_ll_s0 */ DoesNotAccessMemory,
  /* hexagon_M2_mpy_nac_sat_ll_s1 */ DoesNotAccessMemory,
  /* hexagon_M2_mpy_rnd_hh_s0 */ DoesNotAccessMemory,
  /* hexagon_M2_mpy_rnd_hh_s1 */ DoesNotAccessMemory,
  /* hexagon_M2_mpy_rnd_hl_s0 */ DoesNotAccessMemory,
  /* hexagon_M2_mpy_rnd_hl_s1 */ DoesNotAccessMemory,
  /* hexagon_M2_mpy_rnd_lh_s0 */ DoesNotAccessMemory,
  /* hexagon_M2_mpy_rnd_lh_s1 */ DoesNotAccessMemory,
  /* hexagon_M2_mpy_rnd_ll_s0 */ DoesNotAccessMemory,
  /* hexagon_M2_mpy_rnd_ll_s1 */ DoesNotAccessMemory,
  /* hexagon_M2_mpy_sat_hh_s0 */ DoesNotAccessMemory,
  /* hexagon_M2_mpy_sat_hh_s1 */ DoesNotAccessMemory,
  /* hexagon_M2_mpy_sat_hl_s0 */ DoesNotAccessMemory,
  /* hexagon_M2_mpy_sat_hl_s1 */ DoesNotAccessMemory,
  /* hexagon_M2_mpy_sat_lh_s0 */ DoesNotAccessMemory,
  /* hexagon_M2_mpy_sat_lh_s1 */ DoesNotAccessMemory,
  /* hexagon_M2_mpy_sat_ll_s0 */ DoesNotAccessMemory,
  /* hexagon_M2_mpy_sat_ll_s1 */ DoesNotAccessMemory,
  /* hexagon_M2_mpy_sat_rnd_hh_s0 */ DoesNotAccessMemory,
  /* hexagon_M2_mpy_sat_rnd_hh_s1 */ DoesNotAccessMemory,
  /* hexagon_M2_mpy_sat_rnd_hl_s0 */ DoesNotAccessMemory,
  /* hexagon_M2_mpy_sat_rnd_hl_s1 */ DoesNotAccessMemory,
  /* hexagon_M2_mpy_sat_rnd_lh_s0 */ DoesNotAccessMemory,
  /* hexagon_M2_mpy_sat_rnd_lh_s1 */ DoesNotAccessMemory,
  /* hexagon_M2_mpy_sat_rnd_ll_s0 */ DoesNotAccessMemory,
  /* hexagon_M2_mpy_sat_rnd_ll_s1 */ DoesNotAccessMemory,
  /* hexagon_M2_mpy_up */ DoesNotAccessMemory,
  /* hexagon_M2_mpy_up_s1 */ DoesNotAccessMemory,
  /* hexagon_M2_mpy_up_s1_sat */ DoesNotAccessMemory,
  /* hexagon_M2_mpyd_acc_hh_s0 */ DoesNotAccessMemory,
  /* hexagon_M2_mpyd_acc_hh_s1 */ DoesNotAccessMemory,
  /* hexagon_M2_mpyd_acc_hl_s0 */ DoesNotAccessMemory,
  /* hexagon_M2_mpyd_acc_hl_s1 */ DoesNotAccessMemory,
  /* hexagon_M2_mpyd_acc_lh_s0 */ DoesNotAccessMemory,
  /* hexagon_M2_mpyd_acc_lh_s1 */ DoesNotAccessMemory,
  /* hexagon_M2_mpyd_acc_ll_s0 */ DoesNotAccessMemory,
  /* hexagon_M2_mpyd_acc_ll_s1 */ DoesNotAccessMemory,
  /* hexagon_M2_mpyd_hh_s0 */ DoesNotAccessMemory,
  /* hexagon_M2_mpyd_hh_s1 */ DoesNotAccessMemory,
  /* hexagon_M2_mpyd_hl_s0 */ DoesNotAccessMemory,
  /* hexagon_M2_mpyd_hl_s1 */ DoesNotAccessMemory,
  /* hexagon_M2_mpyd_lh_s0 */ DoesNotAccessMemory,
  /* hexagon_M2_mpyd_lh_s1 */ DoesNotAccessMemory,
  /* hexagon_M2_mpyd_ll_s0 */ DoesNotAccessMemory,
  /* hexagon_M2_mpyd_ll_s1 */ DoesNotAccessMemory,
  /* hexagon_M2_mpyd_nac_hh_s0 */ DoesNotAccessMemory,
  /* hexagon_M2_mpyd_nac_hh_s1 */ DoesNotAccessMemory,
  /* hexagon_M2_mpyd_nac_hl_s0 */ DoesNotAccessMemory,
  /* hexagon_M2_mpyd_nac_hl_s1 */ DoesNotAccessMemory,
  /* hexagon_M2_mpyd_nac_lh_s0 */ DoesNotAccessMemory,
  /* hexagon_M2_mpyd_nac_lh_s1 */ DoesNotAccessMemory,
  /* hexagon_M2_mpyd_nac_ll_s0 */ DoesNotAccessMemory,
  /* hexagon_M2_mpyd_nac_ll_s1 */ DoesNotAccessMemory,
  /* hexagon_M2_mpyd_rnd_hh_s0 */ DoesNotAccessMemory,
  /* hexagon_M2_mpyd_rnd_hh_s1 */ DoesNotAccessMemory,
  /* hexagon_M2_mpyd_rnd_hl_s0 */ DoesNotAccessMemory,
  /* hexagon_M2_mpyd_rnd_hl_s1 */ DoesNotAccessMemory,
  /* hexagon_M2_mpyd_rnd_lh_s0 */ DoesNotAccessMemory,
  /* hexagon_M2_mpyd_rnd_lh_s1 */ DoesNotAccessMemory,
  /* hexagon_M2_mpyd_rnd_ll_s0 */ DoesNotAccessMemory,
  /* hexagon_M2_mpyd_rnd_ll_s1 */ DoesNotAccessMemory,
  /* hexagon_M2_mpyi */ DoesNotAccessMemory,
  /* hexagon_M2_mpysmi */ DoesNotAccessMemory,
  /* hexagon_M2_mpysu_up */ DoesNotAccessMemory,
  /* hexagon_M2_mpyu_acc_hh_s0 */ DoesNotAccessMemory,
  /* hexagon_M2_mpyu_acc_hh_s1 */ DoesNotAccessMemory,
  /* hexagon_M2_mpyu_acc_hl_s0 */ DoesNotAccessMemory,
  /* hexagon_M2_mpyu_acc_hl_s1 */ DoesNotAccessMemory,
  /* hexagon_M2_mpyu_acc_lh_s0 */ DoesNotAccessMemory,
  /* hexagon_M2_mpyu_acc_lh_s1 */ DoesNotAccessMemory,
  /* hexagon_M2_mpyu_acc_ll_s0 */ DoesNotAccessMemory,
  /* hexagon_M2_mpyu_acc_ll_s1 */ DoesNotAccessMemory,
  /* hexagon_M2_mpyu_hh_s0 */ DoesNotAccessMemory,
  /* hexagon_M2_mpyu_hh_s1 */ DoesNotAccessMemory,
  /* hexagon_M2_mpyu_hl_s0 */ DoesNotAccessMemory,
  /* hexagon_M2_mpyu_hl_s1 */ DoesNotAccessMemory,
  /* hexagon_M2_mpyu_lh_s0 */ DoesNotAccessMemory,
  /* hexagon_M2_mpyu_lh_s1 */ DoesNotAccessMemory,
  /* hexagon_M2_mpyu_ll_s0 */ DoesNotAccessMemory,
  /* hexagon_M2_mpyu_ll_s1 */ DoesNotAccessMemory,
  /* hexagon_M2_mpyu_nac_hh_s0 */ DoesNotAccessMemory,
  /* hexagon_M2_mpyu_nac_hh_s1 */ DoesNotAccessMemory,
  /* hexagon_M2_mpyu_nac_hl_s0 */ DoesNotAccessMemory,
  /* hexagon_M2_mpyu_nac_hl_s1 */ DoesNotAccessMemory,
  /* hexagon_M2_mpyu_nac_lh_s0 */ DoesNotAccessMemory,
  /* hexagon_M2_mpyu_nac_lh_s1 */ DoesNotAccessMemory,
  /* hexagon_M2_mpyu_nac_ll_s0 */ DoesNotAccessMemory,
  /* hexagon_M2_mpyu_nac_ll_s1 */ DoesNotAccessMemory,
  /* hexagon_M2_mpyu_up */ DoesNotAccessMemory,
  /* hexagon_M2_mpyud_acc_hh_s0 */ DoesNotAccessMemory,
  /* hexagon_M2_mpyud_acc_hh_s1 */ DoesNotAccessMemory,
  /* hexagon_M2_mpyud_acc_hl_s0 */ DoesNotAccessMemory,
  /* hexagon_M2_mpyud_acc_hl_s1 */ DoesNotAccessMemory,
  /* hexagon_M2_mpyud_acc_lh_s0 */ DoesNotAccessMemory,
  /* hexagon_M2_mpyud_acc_lh_s1 */ DoesNotAccessMemory,
  /* hexagon_M2_mpyud_acc_ll_s0 */ DoesNotAccessMemory,
  /* hexagon_M2_mpyud_acc_ll_s1 */ DoesNotAccessMemory,
  /* hexagon_M2_mpyud_hh_s0 */ DoesNotAccessMemory,
  /* hexagon_M2_mpyud_hh_s1 */ DoesNotAccessMemory,
  /* hexagon_M2_mpyud_hl_s0 */ DoesNotAccessMemory,
  /* hexagon_M2_mpyud_hl_s1 */ DoesNotAccessMemory,
  /* hexagon_M2_mpyud_lh_s0 */ DoesNotAccessMemory,
  /* hexagon_M2_mpyud_lh_s1 */ DoesNotAccessMemory,
  /* hexagon_M2_mpyud_ll_s0 */ DoesNotAccessMemory,
  /* hexagon_M2_mpyud_ll_s1 */ DoesNotAccessMemory,
  /* hexagon_M2_mpyud_nac_hh_s0 */ DoesNotAccessMemory,
  /* hexagon_M2_mpyud_nac_hh_s1 */ DoesNotAccessMemory,
  /* hexagon_M2_mpyud_nac_hl_s0 */ DoesNotAccessMemory,
  /* hexagon_M2_mpyud_nac_hl_s1 */ DoesNotAccessMemory,
  /* hexagon_M2_mpyud_nac_lh_s0 */ DoesNotAccessMemory,
  /* hexagon_M2_mpyud_nac_lh_s1 */ DoesNotAccessMemory,
  /* hexagon_M2_mpyud_nac_ll_s0 */ DoesNotAccessMemory,
  /* hexagon_M2_mpyud_nac_ll_s1 */ DoesNotAccessMemory,
  /* hexagon_M2_mpyui */ DoesNotAccessMemory,
  /* hexagon_M2_nacci */ DoesNotAccessMemory,
  /* hexagon_M2_naccii */ DoesNotAccessMemory,
  /* hexagon_M2_subacc */ DoesNotAccessMemory,
  /* hexagon_M2_vabsdiffh */ DoesNotAccessMemory,
  /* hexagon_M2_vabsdiffw */ DoesNotAccessMemory,
  /* hexagon_M2_vcmac_s0_sat_i */ DoesNotAccessMemory,
  /* hexagon_M2_vcmac_s0_sat_r */ DoesNotAccessMemory,
  /* hexagon_M2_vcmpy_s0_sat_i */ DoesNotAccessMemory,
  /* hexagon_M2_vcmpy_s0_sat_r */ DoesNotAccessMemory,
  /* hexagon_M2_vcmpy_s1_sat_i */ DoesNotAccessMemory,
  /* hexagon_M2_vcmpy_s1_sat_r */ DoesNotAccessMemory,
  /* hexagon_M2_vdmacs_s0 */ DoesNotAccessMemory,
  /* hexagon_M2_vdmacs_s1 */ DoesNotAccessMemory,
  /* hexagon_M2_vdmpyrs_s0 */ DoesNotAccessMemory,
  /* hexagon_M2_vdmpyrs_s1 */ DoesNotAccessMemory,
  /* hexagon_M2_vdmpys_s0 */ DoesNotAccessMemory,
  /* hexagon_M2_vdmpys_s1 */ DoesNotAccessMemory,
  /* hexagon_M2_vmac2 */ DoesNotAccessMemory,
  /* hexagon_M2_vmac2es */ DoesNotAccessMemory,
  /* hexagon_M2_vmac2es_s0 */ DoesNotAccessMemory,
  /* hexagon_M2_vmac2es_s1 */ DoesNotAccessMemory,
  /* hexagon_M2_vmac2s_s0 */ DoesNotAccessMemory,
  /* hexagon_M2_vmac2s_s1 */ DoesNotAccessMemory,
  /* hexagon_M2_vmac2su_s0 */ DoesNotAccessMemory,
  /* hexagon_M2_vmac2su_s1 */ DoesNotAccessMemory,
  /* hexagon_M2_vmpy2es_s0 */ DoesNotAccessMemory,
  /* hexagon_M2_vmpy2es_s1 */ DoesNotAccessMemory,
  /* hexagon_M2_vmpy2s_s0 */ DoesNotAccessMemory,
  /* hexagon_M2_vmpy2s_s0pack */ DoesNotAccessMemory,
  /* hexagon_M2_vmpy2s_s1 */ DoesNotAccessMemory,
  /* hexagon_M2_vmpy2s_s1pack */ DoesNotAccessMemory,
  /* hexagon_M2_vmpy2su_s0 */ DoesNotAccessMemory,
  /* hexagon_M2_vmpy2su_s1 */ DoesNotAccessMemory,
  /* hexagon_M2_vraddh */ DoesNotAccessMemory,
  /* hexagon_M2_vradduh */ DoesNotAccessMemory,
  /* hexagon_M2_vrcmaci_s0 */ DoesNotAccessMemory,
  /* hexagon_M2_vrcmaci_s0c */ DoesNotAccessMemory,
  /* hexagon_M2_vrcmacr_s0 */ DoesNotAccessMemory,
  /* hexagon_M2_vrcmacr_s0c */ DoesNotAccessMemory,
  /* hexagon_M2_vrcmpyi_s0 */ DoesNotAccessMemory,
  /* hexagon_M2_vrcmpyi_s0c */ DoesNotAccessMemory,
  /* hexagon_M2_vrcmpyr_s0 */ DoesNotAccessMemory,
  /* hexagon_M2_vrcmpyr_s0c */ DoesNotAccessMemory,
  /* hexagon_M2_vrcmpys_acc_s1 */ DoesNotAccessMemory,
  /* hexagon_M2_vrcmpys_s1 */ DoesNotAccessMemory,
  /* hexagon_M2_vrcmpys_s1rp */ DoesNotAccessMemory,
  /* hexagon_M2_vrmac_s0 */ DoesNotAccessMemory,
  /* hexagon_M2_vrmpy_s0 */ DoesNotAccessMemory,
  /* hexagon_M2_xor_xacc */ DoesNotAccessMemory,
  /* hexagon_M4_and_and */ DoesNotAccessMemory,
  /* hexagon_M4_and_andn */ DoesNotAccessMemory,
  /* hexagon_M4_and_or */ DoesNotAccessMemory,
  /* hexagon_M4_and_xor */ DoesNotAccessMemory,
  /* hexagon_M4_cmpyi_wh */ DoesNotAccessMemory,
  /* hexagon_M4_cmpyi_whc */ DoesNotAccessMemory,
  /* hexagon_M4_cmpyr_wh */ DoesNotAccessMemory,
  /* hexagon_M4_cmpyr_whc */ DoesNotAccessMemory,
  /* hexagon_M4_mac_up_s1_sat */ DoesNotAccessMemory,
  /* hexagon_M4_mpyri_addi */ DoesNotAccessMemory,
  /* hexagon_M4_mpyri_addr */ DoesNotAccessMemory,
  /* hexagon_M4_mpyri_addr_u2 */ DoesNotAccessMemory,
  /* hexagon_M4_mpyrr_addi */ DoesNotAccessMemory,
  /* hexagon_M4_mpyrr_addr */ DoesNotAccessMemory,
  /* hexagon_M4_nac_up_s1_sat */ DoesNotAccessMemory,
  /* hexagon_M4_or_and */ DoesNotAccessMemory,
  /* hexagon_M4_or_andn */ DoesNotAccessMemory,
  /* hexagon_M4_or_or */ DoesNotAccessMemory,
  /* hexagon_M4_or_xor */ DoesNotAccessMemory,
  /* hexagon_M4_pmpyw */ DoesNotAccessMemory,
  /* hexagon_M4_pmpyw_acc */ DoesNotAccessMemory,
  /* hexagon_M4_vpmpyh */ DoesNotAccessMemory,
  /* hexagon_M4_vpmpyh_acc */ DoesNotAccessMemory,
  /* hexagon_M4_vrmpyeh_acc_s0 */ DoesNotAccessMemory,
  /* hexagon_M4_vrmpyeh_acc_s1 */ DoesNotAccessMemory,
  /* hexagon_M4_vrmpyeh_s0 */ DoesNotAccessMemory,
  /* hexagon_M4_vrmpyeh_s1 */ DoesNotAccessMemory,
  /* hexagon_M4_vrmpyoh_acc_s0 */ DoesNotAccessMemory,
  /* hexagon_M4_vrmpyoh_acc_s1 */ DoesNotAccessMemory,
  /* hexagon_M4_vrmpyoh_s0 */ DoesNotAccessMemory,
  /* hexagon_M4_vrmpyoh_s1 */ DoesNotAccessMemory,
  /* hexagon_M4_xor_and */ DoesNotAccessMemory,
  /* hexagon_M4_xor_andn */ DoesNotAccessMemory,
  /* hexagon_M4_xor_or */ DoesNotAccessMemory,
  /* hexagon_M4_xor_xacc */ DoesNotAccessMemory,
  /* hexagon_M5_vdmacbsu */ DoesNotAccessMemory,
  /* hexagon_M5_vdmpybsu */ DoesNotAccessMemory,
  /* hexagon_M5_vmacbsu */ DoesNotAccessMemory,
  /* hexagon_M5_vmacbuu */ DoesNotAccessMemory,
  /* hexagon_M5_vmpybsu */ DoesNotAccessMemory,
  /* hexagon_M5_vmpybuu */ DoesNotAccessMemory,
  /* hexagon_M5_vrmacbsu */ DoesNotAccessMemory,
  /* hexagon_M5_vrmacbuu */ DoesNotAccessMemory,
  /* hexagon_M5_vrmpybsu */ DoesNotAccessMemory,
  /* hexagon_M5_vrmpybuu */ DoesNotAccessMemory,
  /* hexagon_S2_addasl_rrri */ DoesNotAccessMemory,
  /* hexagon_S2_asl_i_p */ DoesNotAccessMemory,
  /* hexagon_S2_asl_i_p_acc */ DoesNotAccessMemory,
  /* hexagon_S2_asl_i_p_and */ DoesNotAccessMemory,
  /* hexagon_S2_asl_i_p_nac */ DoesNotAccessMemory,
  /* hexagon_S2_asl_i_p_or */ DoesNotAccessMemory,
  /* hexagon_S2_asl_i_p_xacc */ DoesNotAccessMemory,
  /* hexagon_S2_asl_i_r */ DoesNotAccessMemory,
  /* hexagon_S2_asl_i_r_acc */ DoesNotAccessMemory,
  /* hexagon_S2_asl_i_r_and */ DoesNotAccessMemory,
  /* hexagon_S2_asl_i_r_nac */ DoesNotAccessMemory,
  /* hexagon_S2_asl_i_r_or */ DoesNotAccessMemory,
  /* hexagon_S2_asl_i_r_sat */ DoesNotAccessMemory,
  /* hexagon_S2_asl_i_r_xacc */ DoesNotAccessMemory,
  /* hexagon_S2_asl_i_vh */ DoesNotAccessMemory,
  /* hexagon_S2_asl_i_vw */ DoesNotAccessMemory,
  /* hexagon_S2_asl_r_p */ DoesNotAccessMemory,
  /* hexagon_S2_asl_r_p_acc */ DoesNotAccessMemory,
  /* hexagon_S2_asl_r_p_and */ DoesNotAccessMemory,
  /* hexagon_S2_asl_r_p_nac */ DoesNotAccessMemory,
  /* hexagon_S2_asl_r_p_or */ DoesNotAccessMemory,
  /* hexagon_S2_asl_r_p_xor */ DoesNotAccessMemory,
  /* hexagon_S2_asl_r_r */ DoesNotAccessMemory,
  /* hexagon_S2_asl_r_r_acc */ DoesNotAccessMemory,
  /* hexagon_S2_asl_r_r_and */ DoesNotAccessMemory,
  /* hexagon_S2_asl_r_r_nac */ DoesNotAccessMemory,
  /* hexagon_S2_asl_r_r_or */ DoesNotAccessMemory,
  /* hexagon_S2_asl_r_r_sat */ DoesNotAccessMemory,
  /* hexagon_S2_asl_r_vh */ DoesNotAccessMemory,
  /* hexagon_S2_asl_r_vw */ DoesNotAccessMemory,
  /* hexagon_S2_asr_i_p */ DoesNotAccessMemory,
  /* hexagon_S2_asr_i_p_acc */ DoesNotAccessMemory,
  /* hexagon_S2_asr_i_p_and */ DoesNotAccessMemory,
  /* hexagon_S2_asr_i_p_nac */ DoesNotAccessMemory,
  /* hexagon_S2_asr_i_p_or */ DoesNotAccessMemory,
  /* hexagon_S2_asr_i_p_rnd */ DoesNotAccessMemory,
  /* hexagon_S2_asr_i_p_rnd_goodsyntax */ DoesNotAccessMemory,
  /* hexagon_S2_asr_i_r */ DoesNotAccessMemory,
  /* hexagon_S2_asr_i_r_acc */ DoesNotAccessMemory,
  /* hexagon_S2_asr_i_r_and */ DoesNotAccessMemory,
  /* hexagon_S2_asr_i_r_nac */ DoesNotAccessMemory,
  /* hexagon_S2_asr_i_r_or */ DoesNotAccessMemory,
  /* hexagon_S2_asr_i_r_rnd */ DoesNotAccessMemory,
  /* hexagon_S2_asr_i_r_rnd_goodsyntax */ DoesNotAccessMemory,
  /* hexagon_S2_asr_i_svw_trun */ DoesNotAccessMemory,
  /* hexagon_S2_asr_i_vh */ DoesNotAccessMemory,
  /* hexagon_S2_asr_i_vw */ DoesNotAccessMemory,
  /* hexagon_S2_asr_r_p */ DoesNotAccessMemory,
  /* hexagon_S2_asr_r_p_acc */ DoesNotAccessMemory,
  /* hexagon_S2_asr_r_p_and */ DoesNotAccessMemory,
  /* hexagon_S2_asr_r_p_nac */ DoesNotAccessMemory,
  /* hexagon_S2_asr_r_p_or */ DoesNotAccessMemory,
  /* hexagon_S2_asr_r_p_xor */ DoesNotAccessMemory,
  /* hexagon_S2_asr_r_r */ DoesNotAccessMemory,
  /* hexagon_S2_asr_r_r_acc */ DoesNotAccessMemory,
  /* hexagon_S2_asr_r_r_and */ DoesNotAccessMemory,
  /* hexagon_S2_asr_r_r_nac */ DoesNotAccessMemory,
  /* hexagon_S2_asr_r_r_or */ DoesNotAccessMemory,
  /* hexagon_S2_asr_r_r_sat */ DoesNotAccessMemory,
  /* hexagon_S2_asr_r_svw_trun */ DoesNotAccessMemory,
  /* hexagon_S2_asr_r_vh */ DoesNotAccessMemory,
  /* hexagon_S2_asr_r_vw */ DoesNotAccessMemory,
  /* hexagon_S2_brev */ DoesNotAccessMemory,
  /* hexagon_S2_brevp */ DoesNotAccessMemory,
  /* hexagon_S2_cl0 */ DoesNotAccessMemory,
  /* hexagon_S2_cl0p */ DoesNotAccessMemory,
  /* hexagon_S2_cl1 */ DoesNotAccessMemory,
  /* hexagon_S2_cl1p */ DoesNotAccessMemory,
  /* hexagon_S2_clb */ DoesNotAccessMemory,
  /* hexagon_S2_clbnorm */ DoesNotAccessMemory,
  /* hexagon_S2_clbp */ DoesNotAccessMemory,
  /* hexagon_S2_clrbit_i */ DoesNotAccessMemory,
  /* hexagon_S2_clrbit_r */ DoesNotAccessMemory,
  /* hexagon_S2_ct0 */ DoesNotAccessMemory,
  /* hexagon_S2_ct0p */ DoesNotAccessMemory,
  /* hexagon_S2_ct1 */ DoesNotAccessMemory,
  /* hexagon_S2_ct1p */ DoesNotAccessMemory,
  /* hexagon_S2_deinterleave */ DoesNotAccessMemory,
  /* hexagon_S2_extractu */ DoesNotAccessMemory,
  /* hexagon_S2_extractu_rp */ DoesNotAccessMemory,
  /* hexagon_S2_extractup */ DoesNotAccessMemory,
  /* hexagon_S2_extractup_rp */ DoesNotAccessMemory,
  /* hexagon_S2_insert */ DoesNotAccessMemory,
  /* hexagon_S2_insert_rp */ DoesNotAccessMemory,
  /* hexagon_S2_insertp */ DoesNotAccessMemory,
  /* hexagon_S2_insertp_rp */ DoesNotAccessMemory,
  /* hexagon_S2_interleave */ DoesNotAccessMemory,
  /* hexagon_S2_lfsp */ DoesNotAccessMemory,
  /* hexagon_S2_lsl_r_p */ DoesNotAccessMemory,
  /* hexagon_S2_lsl_r_p_acc */ DoesNotAccessMemory,
  /* hexagon_S2_lsl_r_p_and */ DoesNotAccessMemory,
  /* hexagon_S2_lsl_r_p_nac */ DoesNotAccessMemory,
  /* hexagon_S2_lsl_r_p_or */ DoesNotAccessMemory,
  /* hexagon_S2_lsl_r_p_xor */ DoesNotAccessMemory,
  /* hexagon_S2_lsl_r_r */ DoesNotAccessMemory,
  /* hexagon_S2_lsl_r_r_acc */ DoesNotAccessMemory,
  /* hexagon_S2_lsl_r_r_and */ DoesNotAccessMemory,
  /* hexagon_S2_lsl_r_r_nac */ DoesNotAccessMemory,
  /* hexagon_S2_lsl_r_r_or */ DoesNotAccessMemory,
  /* hexagon_S2_lsl_r_vh */ DoesNotAccessMemory,
  /* hexagon_S2_lsl_r_vw */ DoesNotAccessMemory,
  /* hexagon_S2_lsr_i_p */ DoesNotAccessMemory,
  /* hexagon_S2_lsr_i_p_acc */ DoesNotAccessMemory,
  /* hexagon_S2_lsr_i_p_and */ DoesNotAccessMemory,
  /* hexagon_S2_lsr_i_p_nac */ DoesNotAccessMemory,
  /* hexagon_S2_lsr_i_p_or */ DoesNotAccessMemory,
  /* hexagon_S2_lsr_i_p_xacc */ DoesNotAccessMemory,
  /* hexagon_S2_lsr_i_r */ DoesNotAccessMemory,
  /* hexagon_S2_lsr_i_r_acc */ DoesNotAccessMemory,
  /* hexagon_S2_lsr_i_r_and */ DoesNotAccessMemory,
  /* hexagon_S2_lsr_i_r_nac */ DoesNotAccessMemory,
  /* hexagon_S2_lsr_i_r_or */ DoesNotAccessMemory,
  /* hexagon_S2_lsr_i_r_xacc */ DoesNotAccessMemory,
  /* hexagon_S2_lsr_i_vh */ DoesNotAccessMemory,
  /* hexagon_S2_lsr_i_vw */ DoesNotAccessMemory,
  /* hexagon_S2_lsr_r_p */ DoesNotAccessMemory,
  /* hexagon_S2_lsr_r_p_acc */ DoesNotAccessMemory,
  /* hexagon_S2_lsr_r_p_and */ DoesNotAccessMemory,
  /* hexagon_S2_lsr_r_p_nac */ DoesNotAccessMemory,
  /* hexagon_S2_lsr_r_p_or */ DoesNotAccessMemory,
  /* hexagon_S2_lsr_r_p_xor */ DoesNotAccessMemory,
  /* hexagon_S2_lsr_r_r */ DoesNotAccessMemory,
  /* hexagon_S2_lsr_r_r_acc */ DoesNotAccessMemory,
  /* hexagon_S2_lsr_r_r_and */ DoesNotAccessMemory,
  /* hexagon_S2_lsr_r_r_nac */ DoesNotAccessMemory,
  /* hexagon_S2_lsr_r_r_or */ DoesNotAccessMemory,
  /* hexagon_S2_lsr_r_vh */ DoesNotAccessMemory,
  /* hexagon_S2_lsr_r_vw */ DoesNotAccessMemory,
  /* hexagon_S2_packhl */ DoesNotAccessMemory,
  /* hexagon_S2_parityp */ DoesNotAccessMemory,
  /* hexagon_S2_setbit_i */ DoesNotAccessMemory,
  /* hexagon_S2_setbit_r */ DoesNotAccessMemory,
  /* hexagon_S2_shuffeb */ DoesNotAccessMemory,
  /* hexagon_S2_shuffeh */ DoesNotAccessMemory,
  /* hexagon_S2_shuffob */ DoesNotAccessMemory,
  /* hexagon_S2_shuffoh */ DoesNotAccessMemory,
  /* hexagon_S2_svsathb */ DoesNotAccessMemory,
  /* hexagon_S2_svsathub */ DoesNotAccessMemory,
  /* hexagon_S2_tableidxb_goodsyntax */ DoesNotAccessMemory,
  /* hexagon_S2_tableidxd_goodsyntax */ DoesNotAccessMemory,
  /* hexagon_S2_tableidxh_goodsyntax */ DoesNotAccessMemory,
  /* hexagon_S2_tableidxw_goodsyntax */ DoesNotAccessMemory,
  /* hexagon_S2_togglebit_i */ DoesNotAccessMemory,
  /* hexagon_S2_togglebit_r */ DoesNotAccessMemory,
  /* hexagon_S2_tstbit_i */ DoesNotAccessMemory,
  /* hexagon_S2_tstbit_r */ DoesNotAccessMemory,
  /* hexagon_S2_valignib */ DoesNotAccessMemory,
  /* hexagon_S2_valignrb */ DoesNotAccessMemory,
  /* hexagon_S2_vcnegh */ DoesNotAccessMemory,
  /* hexagon_S2_vcrotate */ DoesNotAccessMemory,
  /* hexagon_S2_vrcnegh */ DoesNotAccessMemory,
  /* hexagon_S2_vrndpackwh */ DoesNotAccessMemory,
  /* hexagon_S2_vrndpackwhs */ DoesNotAccessMemory,
  /* hexagon_S2_vsathb */ DoesNotAccessMemory,
  /* hexagon_S2_vsathb_nopack */ DoesNotAccessMemory,
  /* hexagon_S2_vsathub */ DoesNotAccessMemory,
  /* hexagon_S2_vsathub_nopack */ DoesNotAccessMemory,
  /* hexagon_S2_vsatwh */ DoesNotAccessMemory,
  /* hexagon_S2_vsatwh_nopack */ DoesNotAccessMemory,
  /* hexagon_S2_vsatwuh */ DoesNotAccessMemory,
  /* hexagon_S2_vsatwuh_nopack */ DoesNotAccessMemory,
  /* hexagon_S2_vsplatrb */ DoesNotAccessMemory,
  /* hexagon_S2_vsplatrh */ DoesNotAccessMemory,
  /* hexagon_S2_vspliceib */ DoesNotAccessMemory,
  /* hexagon_S2_vsplicerb */ DoesNotAccessMemory,
  /* hexagon_S2_vsxtbh */ DoesNotAccessMemory,
  /* hexagon_S2_vsxthw */ DoesNotAccessMemory,
  /* hexagon_S2_vtrunehb */ DoesNotAccessMemory,
  /* hexagon_S2_vtrunewh */ DoesNotAccessMemory,
  /* hexagon_S2_vtrunohb */ DoesNotAccessMemory,
  /* hexagon_S2_vtrunowh */ DoesNotAccessMemory,
  /* hexagon_S2_vzxtbh */ DoesNotAccessMemory,
  /* hexagon_S2_vzxthw */ DoesNotAccessMemory,
  /* hexagon_S4_addaddi */ DoesNotAccessMemory,
  /* hexagon_S4_addi_asl_ri */ DoesNotAccessMemory,
  /* hexagon_S4_addi_lsr_ri */ DoesNotAccessMemory,
  /* hexagon_S4_andi_asl_ri */ DoesNotAccessMemory,
  /* hexagon_S4_andi_lsr_ri */ DoesNotAccessMemory,
  /* hexagon_S4_clbaddi */ DoesNotAccessMemory,
  /* hexagon_S4_clbpaddi */ DoesNotAccessMemory,
  /* hexagon_S4_clbpnorm */ DoesNotAccessMemory,
  /* hexagon_S4_extract */ DoesNotAccessMemory,
  /* hexagon_S4_extract_rp */ DoesNotAccessMemory,
  /* hexagon_S4_extractp */ DoesNotAccessMemory,
  /* hexagon_S4_extractp_rp */ DoesNotAccessMemory,
  /* hexagon_S4_lsli */ DoesNotAccessMemory,
  /* hexagon_S4_ntstbit_i */ DoesNotAccessMemory,
  /* hexagon_S4_ntstbit_r */ DoesNotAccessMemory,
  /* hexagon_S4_or_andi */ DoesNotAccessMemory,
  /* hexagon_S4_or_andix */ DoesNotAccessMemory,
  /* hexagon_S4_or_ori */ DoesNotAccessMemory,
  /* hexagon_S4_ori_asl_ri */ DoesNotAccessMemory,
  /* hexagon_S4_ori_lsr_ri */ DoesNotAccessMemory,
  /* hexagon_S4_parity */ DoesNotAccessMemory,
  /* hexagon_S4_subaddi */ DoesNotAccessMemory,
  /* hexagon_S4_subi_asl_ri */ DoesNotAccessMemory,
  /* hexagon_S4_subi_lsr_ri */ DoesNotAccessMemory,
  /* hexagon_S4_vrcrotate */ DoesNotAccessMemory,
  /* hexagon_S4_vrcrotate_acc */ DoesNotAccessMemory,
  /* hexagon_S4_vxaddsubh */ DoesNotAccessMemory,
  /* hexagon_S4_vxaddsubhr */ DoesNotAccessMemory,
  /* hexagon_S4_vxaddsubw */ DoesNotAccessMemory,
  /* hexagon_S4_vxsubaddh */ DoesNotAccessMemory,
  /* hexagon_S4_vxsubaddhr */ DoesNotAccessMemory,
  /* hexagon_S4_vxsubaddw */ DoesNotAccessMemory,
  /* hexagon_S5_asrhub_rnd_sat_goodsyntax */ DoesNotAccessMemory,
  /* hexagon_S5_asrhub_sat */ DoesNotAccessMemory,
  /* hexagon_S5_popcountp */ DoesNotAccessMemory,
  /* hexagon_S5_vasrhrnd_goodsyntax */ DoesNotAccessMemory,
  /* hexagon_SI_to_SXTHI_asrh */ DoesNotAccessMemory,
  /* hexagon_circ_ldd */ OnlyAccessesArgumentPointees,
  /* init_trampoline */ OnlyAccessesArgumentPointees,
  /* invariant_end */ OnlyAccessesArgumentPointees,
  /* invariant_start */ OnlyAccessesArgumentPointees,
  /* lifetime_end */ OnlyAccessesArgumentPointees,
  /* lifetime_start */ OnlyAccessesArgumentPointees,
  /* log */ OnlyReadsMemory,
  /* log10 */ OnlyReadsMemory,
  /* log2 */ OnlyReadsMemory,
  /* longjmp */ UnknownModRefBehavior,
  /* memcpy */ OnlyAccessesArgumentPointees,
  /* memmove */ OnlyAccessesArgumentPointees,
  /* memset */ OnlyAccessesArgumentPointees,
  /* mips_absq_s_ph */ UnknownModRefBehavior,
  /* mips_absq_s_qb */ UnknownModRefBehavior,
  /* mips_absq_s_w */ UnknownModRefBehavior,
  /* mips_addq_ph */ UnknownModRefBehavior,
  /* mips_addq_s_ph */ UnknownModRefBehavior,
  /* mips_addq_s_w */ UnknownModRefBehavior,
  /* mips_addqh_ph */ DoesNotAccessMemory,
  /* mips_addqh_r_ph */ DoesNotAccessMemory,
  /* mips_addqh_r_w */ DoesNotAccessMemory,
  /* mips_addqh_w */ DoesNotAccessMemory,
  /* mips_addsc */ UnknownModRefBehavior,
  /* mips_addu_ph */ UnknownModRefBehavior,
  /* mips_addu_qb */ UnknownModRefBehavior,
  /* mips_addu_s_ph */ UnknownModRefBehavior,
  /* mips_addu_s_qb */ UnknownModRefBehavior,
  /* mips_adduh_qb */ DoesNotAccessMemory,
  /* mips_adduh_r_qb */ DoesNotAccessMemory,
  /* mips_addwc */ UnknownModRefBehavior,
  /* mips_append */ DoesNotAccessMemory,
  /* mips_balign */ DoesNotAccessMemory,
  /* mips_bitrev */ DoesNotAccessMemory,
  /* mips_bposge32 */ OnlyReadsMemory,
  /* mips_cmp_eq_ph */ UnknownModRefBehavior,
  /* mips_cmp_le_ph */ UnknownModRefBehavior,
  /* mips_cmp_lt_ph */ UnknownModRefBehavior,
  /* mips_cmpgdu_eq_qb */ UnknownModRefBehavior,
  /* mips_cmpgdu_le_qb */ UnknownModRefBehavior,
  /* mips_cmpgdu_lt_qb */ UnknownModRefBehavior,
  /* mips_cmpgu_eq_qb */ UnknownModRefBehavior,
  /* mips_cmpgu_le_qb */ UnknownModRefBehavior,
  /* mips_cmpgu_lt_qb */ UnknownModRefBehavior,
  /* mips_cmpu_eq_qb */ UnknownModRefBehavior,
  /* mips_cmpu_le_qb */ UnknownModRefBehavior,
  /* mips_cmpu_lt_qb */ UnknownModRefBehavior,
  /* mips_dpa_w_ph */ DoesNotAccessMemory,
  /* mips_dpaq_s_w_ph */ UnknownModRefBehavior,
  /* mips_dpaq_sa_l_w */ UnknownModRefBehavior,
  /* mips_dpaqx_s_w_ph */ UnknownModRefBehavior,
  /* mips_dpaqx_sa_w_ph */ UnknownModRefBehavior,
  /* mips_dpau_h_qbl */ DoesNotAccessMemory,
  /* mips_dpau_h_qbr */ DoesNotAccessMemory,
  /* mips_dpax_w_ph */ DoesNotAccessMemory,
  /* mips_dps_w_ph */ DoesNotAccessMemory,
  /* mips_dpsq_s_w_ph */ UnknownModRefBehavior,
  /* mips_dpsq_sa_l_w */ UnknownModRefBehavior,
  /* mips_dpsqx_s_w_ph */ UnknownModRefBehavior,
  /* mips_dpsqx_sa_w_ph */ UnknownModRefBehavior,
  /* mips_dpsu_h_qbl */ DoesNotAccessMemory,
  /* mips_dpsu_h_qbr */ DoesNotAccessMemory,
  /* mips_dpsx_w_ph */ DoesNotAccessMemory,
  /* mips_extp */ UnknownModRefBehavior,
  /* mips_extpdp */ UnknownModRefBehavior,
  /* mips_extr_r_w */ UnknownModRefBehavior,
  /* mips_extr_rs_w */ UnknownModRefBehavior,
  /* mips_extr_s_h */ UnknownModRefBehavior,
  /* mips_extr_w */ UnknownModRefBehavior,
  /* mips_insv */ OnlyReadsMemory,
  /* mips_lbux */ OnlyReadsArgumentPointees,
  /* mips_lhx */ OnlyReadsArgumentPointees,
  /* mips_lwx */ OnlyReadsArgumentPointees,
  /* mips_madd */ DoesNotAccessMemory,
  /* mips_maddu */ DoesNotAccessMemory,
  /* mips_maq_s_w_phl */ UnknownModRefBehavior,
  /* mips_maq_s_w_phr */ UnknownModRefBehavior,
  /* mips_maq_sa_w_phl */ UnknownModRefBehavior,
  /* mips_maq_sa_w_phr */ UnknownModRefBehavior,
  /* mips_modsub */ DoesNotAccessMemory,
  /* mips_msub */ DoesNotAccessMemory,
  /* mips_msubu */ DoesNotAccessMemory,
  /* mips_mthlip */ UnknownModRefBehavior,
  /* mips_mul_ph */ UnknownModRefBehavior,
  /* mips_mul_s_ph */ UnknownModRefBehavior,
  /* mips_muleq_s_w_phl */ UnknownModRefBehavior,
  /* mips_muleq_s_w_phr */ UnknownModRefBehavior,
  /* mips_muleu_s_ph_qbl */ UnknownModRefBehavior,
  /* mips_muleu_s_ph_qbr */ UnknownModRefBehavior,
  /* mips_mulq_rs_ph */ UnknownModRefBehavior,
  /* mips_mulq_rs_w */ UnknownModRefBehavior,
  /* mips_mulq_s_ph */ UnknownModRefBehavior,
  /* mips_mulq_s_w */ UnknownModRefBehavior,
  /* mips_mulsa_w_ph */ DoesNotAccessMemory,
  /* mips_mulsaq_s_w_ph */ UnknownModRefBehavior,
  /* mips_mult */ DoesNotAccessMemory,
  /* mips_multu */ DoesNotAccessMemory,
  /* mips_packrl_ph */ DoesNotAccessMemory,
  /* mips_pick_ph */ OnlyReadsMemory,
  /* mips_pick_qb */ OnlyReadsMemory,
  /* mips_preceq_w_phl */ DoesNotAccessMemory,
  /* mips_preceq_w_phr */ DoesNotAccessMemory,
  /* mips_precequ_ph_qbl */ DoesNotAccessMemory,
  /* mips_precequ_ph_qbla */ DoesNotAccessMemory,
  /* mips_precequ_ph_qbr */ DoesNotAccessMemory,
  /* mips_precequ_ph_qbra */ DoesNotAccessMemory,
  /* mips_preceu_ph_qbl */ DoesNotAccessMemory,
  /* mips_preceu_ph_qbla */ DoesNotAccessMemory,
  /* mips_preceu_ph_qbr */ DoesNotAccessMemory,
  /* mips_preceu_ph_qbra */ DoesNotAccessMemory,
  /* mips_precr_qb_ph */ UnknownModRefBehavior,
  /* mips_precr_sra_ph_w */ DoesNotAccessMemory,
  /* mips_precr_sra_r_ph_w */ DoesNotAccessMemory,
  /* mips_precrq_ph_w */ DoesNotAccessMemory,
  /* mips_precrq_qb_ph */ DoesNotAccessMemory,
  /* mips_precrq_rs_ph_w */ UnknownModRefBehavior,
  /* mips_precrqu_s_qb_ph */ UnknownModRefBehavior,
  /* mips_prepend */ DoesNotAccessMemory,
  /* mips_raddu_w_qb */ DoesNotAccessMemory,
  /* mips_rddsp */ OnlyReadsMemory,
  /* mips_repl_ph */ DoesNotAccessMemory,
  /* mips_repl_qb */ DoesNotAccessMemory,
  /* mips_shilo */ DoesNotAccessMemory,
  /* mips_shll_ph */ UnknownModRefBehavior,
  /* mips_shll_qb */ UnknownModRefBehavior,
  /* mips_shll_s_ph */ UnknownModRefBehavior,
  /* mips_shll_s_w */ UnknownModRefBehavior,
  /* mips_shra_ph */ DoesNotAccessMemory,
  /* mips_shra_qb */ DoesNotAccessMemory,
  /* mips_shra_r_ph */ DoesNotAccessMemory,
  /* mips_shra_r_qb */ DoesNotAccessMemory,
  /* mips_shra_r_w */ DoesNotAccessMemory,
  /* mips_shrl_ph */ DoesNotAccessMemory,
  /* mips_shrl_qb */ DoesNotAccessMemory,
  /* mips_subq_ph */ UnknownModRefBehavior,
  /* mips_subq_s_ph */ UnknownModRefBehavior,
  /* mips_subq_s_w */ UnknownModRefBehavior,
  /* mips_subqh_ph */ DoesNotAccessMemory,
  /* mips_subqh_r_ph */ DoesNotAccessMemory,
  /* mips_subqh_r_w */ DoesNotAccessMemory,
  /* mips_subqh_w */ DoesNotAccessMemory,
  /* mips_subu_ph */ UnknownModRefBehavior,
  /* mips_subu_qb */ UnknownModRefBehavior,
  /* mips_subu_s_ph */ UnknownModRefBehavior,
  /* mips_subu_s_qb */ UnknownModRefBehavior,
  /* mips_subuh_qb */ DoesNotAccessMemory,
  /* mips_subuh_r_qb */ DoesNotAccessMemory,
  /* mips_wrdsp */ UnknownModRefBehavior,
  /* nvvm_abs_i */ DoesNotAccessMemory,
  /* nvvm_abs_ll */ DoesNotAccessMemory,
  /* nvvm_add_rm_d */ DoesNotAccessMemory,
  /* nvvm_add_rm_f */ DoesNotAccessMemory,
  /* nvvm_add_rm_ftz_f */ DoesNotAccessMemory,
  /* nvvm_add_rn_d */ DoesNotAccessMemory,
  /* nvvm_add_rn_f */ DoesNotAccessMemory,
  /* nvvm_add_rn_ftz_f */ DoesNotAccessMemory,
  /* nvvm_add_rp_d */ DoesNotAccessMemory,
  /* nvvm_add_rp_f */ DoesNotAccessMemory,
  /* nvvm_add_rp_ftz_f */ DoesNotAccessMemory,
  /* nvvm_add_rz_d */ DoesNotAccessMemory,
  /* nvvm_add_rz_f */ DoesNotAccessMemory,
  /* nvvm_add_rz_ftz_f */ DoesNotAccessMemory,
  /* nvvm_atomic_load_add_f32 */ OnlyAccessesArgumentPointees,
  /* nvvm_atomic_load_dec_32 */ OnlyAccessesArgumentPointees,
  /* nvvm_atomic_load_inc_32 */ OnlyAccessesArgumentPointees,
  /* nvvm_barrier0 */ UnknownModRefBehavior,
  /* nvvm_barrier0_and */ UnknownModRefBehavior,
  /* nvvm_barrier0_or */ UnknownModRefBehavior,
  /* nvvm_barrier0_popc */ UnknownModRefBehavior,
  /* nvvm_bitcast_d2ll */ DoesNotAccessMemory,
  /* nvvm_bitcast_f2i */ DoesNotAccessMemory,
  /* nvvm_bitcast_i2f */ DoesNotAccessMemory,
  /* nvvm_bitcast_ll2d */ DoesNotAccessMemory,
  /* nvvm_brev32 */ DoesNotAccessMemory,
  /* nvvm_brev64 */ DoesNotAccessMemory,
  /* nvvm_ceil_d */ DoesNotAccessMemory,
  /* nvvm_ceil_f */ DoesNotAccessMemory,
  /* nvvm_ceil_ftz_f */ DoesNotAccessMemory,
  /* nvvm_clz_i */ DoesNotAccessMemory,
  /* nvvm_clz_ll */ DoesNotAccessMemory,
  /* nvvm_compiler_error */ UnknownModRefBehavior,
  /* nvvm_compiler_warn */ UnknownModRefBehavior,
  /* nvvm_cos_approx_f */ DoesNotAccessMemory,
  /* nvvm_cos_approx_ftz_f */ DoesNotAccessMemory,
  /* nvvm_d2f_rm */ DoesNotAccessMemory,
  /* nvvm_d2f_rm_ftz */ DoesNotAccessMemory,
  /* nvvm_d2f_rn */ DoesNotAccessMemory,
  /* nvvm_d2f_rn_ftz */ DoesNotAccessMemory,
  /* nvvm_d2f_rp */ DoesNotAccessMemory,
  /* nvvm_d2f_rp_ftz */ DoesNotAccessMemory,
  /* nvvm_d2f_rz */ DoesNotAccessMemory,
  /* nvvm_d2f_rz_ftz */ DoesNotAccessMemory,
  /* nvvm_d2i_hi */ DoesNotAccessMemory,
  /* nvvm_d2i_lo */ DoesNotAccessMemory,
  /* nvvm_d2i_rm */ DoesNotAccessMemory,
  /* nvvm_d2i_rn */ DoesNotAccessMemory,
  /* nvvm_d2i_rp */ DoesNotAccessMemory,
  /* nvvm_d2i_rz */ DoesNotAccessMemory,
  /* nvvm_d2ll_rm */ DoesNotAccessMemory,
  /* nvvm_d2ll_rn */ DoesNotAccessMemory,
  /* nvvm_d2ll_rp */ DoesNotAccessMemory,
  /* nvvm_d2ll_rz */ DoesNotAccessMemory,
  /* nvvm_d2ui_rm */ DoesNotAccessMemory,
  /* nvvm_d2ui_rn */ DoesNotAccessMemory,
  /* nvvm_d2ui_rp */ DoesNotAccessMemory,
  /* nvvm_d2ui_rz */ DoesNotAccessMemory,
  /* nvvm_d2ull_rm */ DoesNotAccessMemory,
  /* nvvm_d2ull_rn */ DoesNotAccessMemory,
  /* nvvm_d2ull_rp */ DoesNotAccessMemory,
  /* nvvm_d2ull_rz */ DoesNotAccessMemory,
  /* nvvm_div_approx_f */ DoesNotAccessMemory,
  /* nvvm_div_approx_ftz_f */ DoesNotAccessMemory,
  /* nvvm_div_rm_d */ DoesNotAccessMemory,
  /* nvvm_div_rm_f */ DoesNotAccessMemory,
  /* nvvm_div_rm_ftz_f */ DoesNotAccessMemory,
  /* nvvm_div_rn_d */ DoesNotAccessMemory,
  /* nvvm_div_rn_f */ DoesNotAccessMemory,
  /* nvvm_div_rn_ftz_f */ DoesNotAccessMemory,
  /* nvvm_div_rp_d */ DoesNotAccessMemory,
  /* nvvm_div_rp_f */ DoesNotAccessMemory,
  /* nvvm_div_rp_ftz_f */ DoesNotAccessMemory,
  /* nvvm_div_rz_d */ DoesNotAccessMemory,
  /* nvvm_div_rz_f */ DoesNotAccessMemory,
  /* nvvm_div_rz_ftz_f */ DoesNotAccessMemory,
  /* nvvm_ex2_approx_d */ DoesNotAccessMemory,
  /* nvvm_ex2_approx_f */ DoesNotAccessMemory,
  /* nvvm_ex2_approx_ftz_f */ DoesNotAccessMemory,
  /* nvvm_f2h_rn */ DoesNotAccessMemory,
  /* nvvm_f2h_rn_ftz */ DoesNotAccessMemory,
  /* nvvm_f2i_rm */ DoesNotAccessMemory,
  /* nvvm_f2i_rm_ftz */ DoesNotAccessMemory,
  /* nvvm_f2i_rn */ DoesNotAccessMemory,
  /* nvvm_f2i_rn_ftz */ DoesNotAccessMemory,
  /* nvvm_f2i_rp */ DoesNotAccessMemory,
  /* nvvm_f2i_rp_ftz */ DoesNotAccessMemory,
  /* nvvm_f2i_rz */ DoesNotAccessMemory,
  /* nvvm_f2i_rz_ftz */ DoesNotAccessMemory,
  /* nvvm_f2ll_rm */ DoesNotAccessMemory,
  /* nvvm_f2ll_rm_ftz */ DoesNotAccessMemory,
  /* nvvm_f2ll_rn */ DoesNotAccessMemory,
  /* nvvm_f2ll_rn_ftz */ DoesNotAccessMemory,
  /* nvvm_f2ll_rp */ DoesNotAccessMemory,
  /* nvvm_f2ll_rp_ftz */ DoesNotAccessMemory,
  /* nvvm_f2ll_rz */ DoesNotAccessMemory,
  /* nvvm_f2ll_rz_ftz */ DoesNotAccessMemory,
  /* nvvm_f2ui_rm */ DoesNotAccessMemory,
  /* nvvm_f2ui_rm_ftz */ DoesNotAccessMemory,
  /* nvvm_f2ui_rn */ DoesNotAccessMemory,
  /* nvvm_f2ui_rn_ftz */ DoesNotAccessMemory,
  /* nvvm_f2ui_rp */ DoesNotAccessMemory,
  /* nvvm_f2ui_rp_ftz */ DoesNotAccessMemory,
  /* nvvm_f2ui_rz */ DoesNotAccessMemory,
  /* nvvm_f2ui_rz_ftz */ DoesNotAccessMemory,
  /* nvvm_f2ull_rm */ DoesNotAccessMemory,
  /* nvvm_f2ull_rm_ftz */ DoesNotAccessMemory,
  /* nvvm_f2ull_rn */ DoesNotAccessMemory,
  /* nvvm_f2ull_rn_ftz */ DoesNotAccessMemory,
  /* nvvm_f2ull_rp */ DoesNotAccessMemory,
  /* nvvm_f2ull_rp_ftz */ DoesNotAccessMemory,
  /* nvvm_f2ull_rz */ DoesNotAccessMemory,
  /* nvvm_f2ull_rz_ftz */ DoesNotAccessMemory,
  /* nvvm_fabs_d */ DoesNotAccessMemory,
  /* nvvm_fabs_f */ DoesNotAccessMemory,
  /* nvvm_fabs_ftz_f */ DoesNotAccessMemory,
  /* nvvm_floor_d */ DoesNotAccessMemory,
  /* nvvm_floor_f */ DoesNotAccessMemory,
  /* nvvm_floor_ftz_f */ DoesNotAccessMemory,
  /* nvvm_fma_rm_d */ DoesNotAccessMemory,
  /* nvvm_fma_rm_f */ DoesNotAccessMemory,
  /* nvvm_fma_rm_ftz_f */ DoesNotAccessMemory,
  /* nvvm_fma_rn_d */ DoesNotAccessMemory,
  /* nvvm_fma_rn_f */ DoesNotAccessMemory,
  /* nvvm_fma_rn_ftz_f */ DoesNotAccessMemory,
  /* nvvm_fma_rp_d */ DoesNotAccessMemory,
  /* nvvm_fma_rp_f */ DoesNotAccessMemory,
  /* nvvm_fma_rp_ftz_f */ DoesNotAccessMemory,
  /* nvvm_fma_rz_d */ DoesNotAccessMemory,
  /* nvvm_fma_rz_f */ DoesNotAccessMemory,
  /* nvvm_fma_rz_ftz_f */ DoesNotAccessMemory,
  /* nvvm_fmax_d */ DoesNotAccessMemory,
  /* nvvm_fmax_f */ DoesNotAccessMemory,
  /* nvvm_fmax_ftz_f */ DoesNotAccessMemory,
  /* nvvm_fmin_d */ DoesNotAccessMemory,
  /* nvvm_fmin_f */ DoesNotAccessMemory,
  /* nvvm_fmin_ftz_f */ DoesNotAccessMemory,
  /* nvvm_h2f */ DoesNotAccessMemory,
  /* nvvm_i2d_rm */ DoesNotAccessMemory,
  /* nvvm_i2d_rn */ DoesNotAccessMemory,
  /* nvvm_i2d_rp */ DoesNotAccessMemory,
  /* nvvm_i2d_rz */ DoesNotAccessMemory,
  /* nvvm_i2f_rm */ DoesNotAccessMemory,
  /* nvvm_i2f_rn */ DoesNotAccessMemory,
  /* nvvm_i2f_rp */ DoesNotAccessMemory,
  /* nvvm_i2f_rz */ DoesNotAccessMemory,
  /* nvvm_ldu_global_f */ OnlyReadsMemory,
  /* nvvm_ldu_global_i */ OnlyReadsMemory,
  /* nvvm_ldu_global_p */ OnlyReadsMemory,
  /* nvvm_lg2_approx_d */ DoesNotAccessMemory,
  /* nvvm_lg2_approx_f */ DoesNotAccessMemory,
  /* nvvm_lg2_approx_ftz_f */ DoesNotAccessMemory,
  /* nvvm_ll2d_rm */ DoesNotAccessMemory,
  /* nvvm_ll2d_rn */ DoesNotAccessMemory,
  /* nvvm_ll2d_rp */ DoesNotAccessMemory,
  /* nvvm_ll2d_rz */ DoesNotAccessMemory,
  /* nvvm_ll2f_rm */ DoesNotAccessMemory,
  /* nvvm_ll2f_rn */ DoesNotAccessMemory,
  /* nvvm_ll2f_rp */ DoesNotAccessMemory,
  /* nvvm_ll2f_rz */ DoesNotAccessMemory,
  /* nvvm_lohi_i2d */ DoesNotAccessMemory,
  /* nvvm_max_i */ DoesNotAccessMemory,
  /* nvvm_max_ll */ DoesNotAccessMemory,
  /* nvvm_max_ui */ DoesNotAccessMemory,
  /* nvvm_max_ull */ DoesNotAccessMemory,
  /* nvvm_membar_cta */ UnknownModRefBehavior,
  /* nvvm_membar_gl */ UnknownModRefBehavior,
  /* nvvm_membar_sys */ UnknownModRefBehavior,
  /* nvvm_min_i */ DoesNotAccessMemory,
  /* nvvm_min_ll */ DoesNotAccessMemory,
  /* nvvm_min_ui */ DoesNotAccessMemory,
  /* nvvm_min_ull */ DoesNotAccessMemory,
  /* nvvm_move_double */ DoesNotAccessMemory,
  /* nvvm_move_float */ DoesNotAccessMemory,
  /* nvvm_move_i16 */ DoesNotAccessMemory,
  /* nvvm_move_i32 */ DoesNotAccessMemory,
  /* nvvm_move_i64 */ DoesNotAccessMemory,
  /* nvvm_move_i8 */ DoesNotAccessMemory,
  /* nvvm_move_ptr */ DoesNotAccessMemory,
  /* nvvm_mul24_i */ DoesNotAccessMemory,
  /* nvvm_mul24_ui */ DoesNotAccessMemory,
  /* nvvm_mul_rm_d */ DoesNotAccessMemory,
  /* nvvm_mul_rm_f */ DoesNotAccessMemory,
  /* nvvm_mul_rm_ftz_f */ DoesNotAccessMemory,
  /* nvvm_mul_rn_d */ DoesNotAccessMemory,
  /* nvvm_mul_rn_f */ DoesNotAccessMemory,
  /* nvvm_mul_rn_ftz_f */ DoesNotAccessMemory,
  /* nvvm_mul_rp_d */ DoesNotAccessMemory,
  /* nvvm_mul_rp_f */ DoesNotAccessMemory,
  /* nvvm_mul_rp_ftz_f */ DoesNotAccessMemory,
  /* nvvm_mul_rz_d */ DoesNotAccessMemory,
  /* nvvm_mul_rz_f */ DoesNotAccessMemory,
  /* nvvm_mul_rz_ftz_f */ DoesNotAccessMemory,
  /* nvvm_mulhi_i */ DoesNotAccessMemory,
  /* nvvm_mulhi_ll */ DoesNotAccessMemory,
  /* nvvm_mulhi_ui */ DoesNotAccessMemory,
  /* nvvm_mulhi_ull */ DoesNotAccessMemory,
  /* nvvm_popc_i */ DoesNotAccessMemory,
  /* nvvm_popc_ll */ DoesNotAccessMemory,
  /* nvvm_prmt */ DoesNotAccessMemory,
  /* nvvm_ptr_constant_to_gen */ DoesNotAccessMemory,
  /* nvvm_ptr_gen_to_constant */ DoesNotAccessMemory,
  /* nvvm_ptr_gen_to_global */ DoesNotAccessMemory,
  /* nvvm_ptr_gen_to_local */ DoesNotAccessMemory,
  /* nvvm_ptr_gen_to_param */ DoesNotAccessMemory,
  /* nvvm_ptr_gen_to_shared */ DoesNotAccessMemory,
  /* nvvm_ptr_global_to_gen */ DoesNotAccessMemory,
  /* nvvm_ptr_local_to_gen */ DoesNotAccessMemory,
  /* nvvm_ptr_shared_to_gen */ DoesNotAccessMemory,
  /* nvvm_rcp_approx_ftz_d */ DoesNotAccessMemory,
  /* nvvm_rcp_rm_d */ DoesNotAccessMemory,
  /* nvvm_rcp_rm_f */ DoesNotAccessMemory,
  /* nvvm_rcp_rm_ftz_f */ DoesNotAccessMemory,
  /* nvvm_rcp_rn_d */ DoesNotAccessMemory,
  /* nvvm_rcp_rn_f */ DoesNotAccessMemory,
  /* nvvm_rcp_rn_ftz_f */ DoesNotAccessMemory,
  /* nvvm_rcp_rp_d */ DoesNotAccessMemory,
  /* nvvm_rcp_rp_f */ DoesNotAccessMemory,
  /* nvvm_rcp_rp_ftz_f */ DoesNotAccessMemory,
  /* nvvm_rcp_rz_d */ DoesNotAccessMemory,
  /* nvvm_rcp_rz_f */ DoesNotAccessMemory,
  /* nvvm_rcp_rz_ftz_f */ DoesNotAccessMemory,
  /* nvvm_read_ptx_sreg_ctaid_x */ DoesNotAccessMemory,
  /* nvvm_read_ptx_sreg_ctaid_y */ DoesNotAccessMemory,
  /* nvvm_read_ptx_sreg_ctaid_z */ DoesNotAccessMemory,
  /* nvvm_read_ptx_sreg_nctaid_x */ DoesNotAccessMemory,
  /* nvvm_read_ptx_sreg_nctaid_y */ DoesNotAccessMemory,
  /* nvvm_read_ptx_sreg_nctaid_z */ DoesNotAccessMemory,
  /* nvvm_read_ptx_sreg_ntid_x */ DoesNotAccessMemory,
  /* nvvm_read_ptx_sreg_ntid_y */ DoesNotAccessMemory,
  /* nvvm_read_ptx_sreg_ntid_z */ DoesNotAccessMemory,
  /* nvvm_read_ptx_sreg_tid_x */ DoesNotAccessMemory,
  /* nvvm_read_ptx_sreg_tid_y */ DoesNotAccessMemory,
  /* nvvm_read_ptx_sreg_tid_z */ DoesNotAccessMemory,
  /* nvvm_read_ptx_sreg_warpsize */ DoesNotAccessMemory,
  /* nvvm_round_d */ DoesNotAccessMemory,
  /* nvvm_round_f */ DoesNotAccessMemory,
  /* nvvm_round_ftz_f */ DoesNotAccessMemory,
  /* nvvm_rsqrt_approx_d */ DoesNotAccessMemory,
  /* nvvm_rsqrt_approx_f */ DoesNotAccessMemory,
  /* nvvm_rsqrt_approx_ftz_f */ DoesNotAccessMemory,
  /* nvvm_sad_i */ DoesNotAccessMemory,
  /* nvvm_sad_ui */ DoesNotAccessMemory,
  /* nvvm_saturate_d */ DoesNotAccessMemory,
  /* nvvm_saturate_f */ DoesNotAccessMemory,
  /* nvvm_saturate_ftz_f */ DoesNotAccessMemory,
  /* nvvm_sin_approx_f */ DoesNotAccessMemory,
  /* nvvm_sin_approx_ftz_f */ DoesNotAccessMemory,
  /* nvvm_sqrt_approx_f */ DoesNotAccessMemory,
  /* nvvm_sqrt_approx_ftz_f */ DoesNotAccessMemory,
  /* nvvm_sqrt_rm_d */ DoesNotAccessMemory,
  /* nvvm_sqrt_rm_f */ DoesNotAccessMemory,
  /* nvvm_sqrt_rm_ftz_f */ DoesNotAccessMemory,
  /* nvvm_sqrt_rn_d */ DoesNotAccessMemory,
  /* nvvm_sqrt_rn_f */ DoesNotAccessMemory,
  /* nvvm_sqrt_rn_ftz_f */ DoesNotAccessMemory,
  /* nvvm_sqrt_rp_d */ DoesNotAccessMemory,
  /* nvvm_sqrt_rp_f */ DoesNotAccessMemory,
  /* nvvm_sqrt_rp_ftz_f */ DoesNotAccessMemory,
  /* nvvm_sqrt_rz_d */ DoesNotAccessMemory,
  /* nvvm_sqrt_rz_f */ DoesNotAccessMemory,
  /* nvvm_sqrt_rz_ftz_f */ DoesNotAccessMemory,
  /* nvvm_trunc_d */ DoesNotAccessMemory,
  /* nvvm_trunc_f */ DoesNotAccessMemory,
  /* nvvm_trunc_ftz_f */ DoesNotAccessMemory,
  /* nvvm_ui2d_rm */ DoesNotAccessMemory,
  /* nvvm_ui2d_rn */ DoesNotAccessMemory,
  /* nvvm_ui2d_rp */ DoesNotAccessMemory,
  /* nvvm_ui2d_rz */ DoesNotAccessMemory,
  /* nvvm_ui2f_rm */ DoesNotAccessMemory,
  /* nvvm_ui2f_rn */ DoesNotAccessMemory,
  /* nvvm_ui2f_rp */ DoesNotAccessMemory,
  /* nvvm_ui2f_rz */ DoesNotAccessMemory,
  /* nvvm_ull2d_rm */ DoesNotAccessMemory,
  /* nvvm_ull2d_rn */ DoesNotAccessMemory,
  /* nvvm_ull2d_rp */ DoesNotAccessMemory,
  /* nvvm_ull2d_rz */ DoesNotAccessMemory,
  /* nvvm_ull2f_rm */ DoesNotAccessMemory,
  /* nvvm_ull2f_rn */ DoesNotAccessMemory,
  /* nvvm_ull2f_rp */ DoesNotAccessMemory,
  /* nvvm_ull2f_rz */ DoesNotAccessMemory,
  /* objectsize */ DoesNotAccessMemory,
  /* pcmarker */ UnknownModRefBehavior,
  /* pow */ OnlyReadsMemory,
  /* powi */ OnlyReadsMemory,
  /* ppc_altivec_dss */ UnknownModRefBehavior,
  /* ppc_altivec_dssall */ UnknownModRefBehavior,
  /* ppc_altivec_dst */ UnknownModRefBehavior,
  /* ppc_altivec_dstst */ UnknownModRefBehavior,
  /* ppc_altivec_dststt */ UnknownModRefBehavior,
  /* ppc_altivec_dstt */ UnknownModRefBehavior,
  /* ppc_altivec_lvebx */ OnlyReadsMemory,
  /* ppc_altivec_lvehx */ OnlyReadsMemory,
  /* ppc_altivec_lvewx */ OnlyReadsMemory,
  /* ppc_altivec_lvsl */ DoesNotAccessMemory,
  /* ppc_altivec_lvsr */ DoesNotAccessMemory,
  /* ppc_altivec_lvx */ OnlyReadsMemory,
  /* ppc_altivec_lvxl */ OnlyReadsMemory,
  /* ppc_altivec_mfvscr */ OnlyReadsMemory,
  /* ppc_altivec_mtvscr */ UnknownModRefBehavior,
  /* ppc_altivec_stvebx */ UnknownModRefBehavior,
  /* ppc_altivec_stvehx */ UnknownModRefBehavior,
  /* ppc_altivec_stvewx */ UnknownModRefBehavior,
  /* ppc_altivec_stvx */ UnknownModRefBehavior,
  /* ppc_altivec_stvxl */ UnknownModRefBehavior,
  /* ppc_altivec_vaddcuw */ DoesNotAccessMemory,
  /* ppc_altivec_vaddsbs */ DoesNotAccessMemory,
  /* ppc_altivec_vaddshs */ DoesNotAccessMemory,
  /* ppc_altivec_vaddsws */ DoesNotAccessMemory,
  /* ppc_altivec_vaddubs */ DoesNotAccessMemory,
  /* ppc_altivec_vadduhs */ DoesNotAccessMemory,
  /* ppc_altivec_vadduws */ DoesNotAccessMemory,
  /* ppc_altivec_vavgsb */ DoesNotAccessMemory,
  /* ppc_altivec_vavgsh */ DoesNotAccessMemory,
  /* ppc_altivec_vavgsw */ DoesNotAccessMemory,
  /* ppc_altivec_vavgub */ DoesNotAccessMemory,
  /* ppc_altivec_vavguh */ DoesNotAccessMemory,
  /* ppc_altivec_vavguw */ DoesNotAccessMemory,
  /* ppc_altivec_vcfsx */ DoesNotAccessMemory,
  /* ppc_altivec_vcfux */ DoesNotAccessMemory,
  /* ppc_altivec_vcmpbfp */ DoesNotAccessMemory,
  /* ppc_altivec_vcmpbfp_p */ DoesNotAccessMemory,
  /* ppc_altivec_vcmpeqfp */ DoesNotAccessMemory,
  /* ppc_altivec_vcmpeqfp_p */ DoesNotAccessMemory,
  /* ppc_altivec_vcmpequb */ DoesNotAccessMemory,
  /* ppc_altivec_vcmpequb_p */ DoesNotAccessMemory,
  /* ppc_altivec_vcmpequh */ DoesNotAccessMemory,
  /* ppc_altivec_vcmpequh_p */ DoesNotAccessMemory,
  /* ppc_altivec_vcmpequw */ DoesNotAccessMemory,
  /* ppc_altivec_vcmpequw_p */ DoesNotAccessMemory,
  /* ppc_altivec_vcmpgefp */ DoesNotAccessMemory,
  /* ppc_altivec_vcmpgefp_p */ DoesNotAccessMemory,
  /* ppc_altivec_vcmpgtfp */ DoesNotAccessMemory,
  /* ppc_altivec_vcmpgtfp_p */ DoesNotAccessMemory,
  /* ppc_altivec_vcmpgtsb */ DoesNotAccessMemory,
  /* ppc_altivec_vcmpgtsb_p */ DoesNotAccessMemory,
  /* ppc_altivec_vcmpgtsh */ DoesNotAccessMemory,
  /* ppc_altivec_vcmpgtsh_p */ DoesNotAccessMemory,
  /* ppc_altivec_vcmpgtsw */ DoesNotAccessMemory,
  /* ppc_altivec_vcmpgtsw_p */ DoesNotAccessMemory,
  /* ppc_altivec_vcmpgtub */ DoesNotAccessMemory,
  /* ppc_altivec_vcmpgtub_p */ DoesNotAccessMemory,
  /* ppc_altivec_vcmpgtuh */ DoesNotAccessMemory,
  /* ppc_altivec_vcmpgtuh_p */ DoesNotAccessMemory,
  /* ppc_altivec_vcmpgtuw */ DoesNotAccessMemory,
  /* ppc_altivec_vcmpgtuw_p */ DoesNotAccessMemory,
  /* ppc_altivec_vctsxs */ DoesNotAccessMemory,
  /* ppc_altivec_vctuxs */ DoesNotAccessMemory,
  /* ppc_altivec_vexptefp */ DoesNotAccessMemory,
  /* ppc_altivec_vlogefp */ DoesNotAccessMemory,
  /* ppc_altivec_vmaddfp */ DoesNotAccessMemory,
  /* ppc_altivec_vmaxfp */ DoesNotAccessMemory,
  /* ppc_altivec_vmaxsb */ DoesNotAccessMemory,
  /* ppc_altivec_vmaxsh */ DoesNotAccessMemory,
  /* ppc_altivec_vmaxsw */ DoesNotAccessMemory,
  /* ppc_altivec_vmaxub */ DoesNotAccessMemory,
  /* ppc_altivec_vmaxuh */ DoesNotAccessMemory,
  /* ppc_altivec_vmaxuw */ DoesNotAccessMemory,
  /* ppc_altivec_vmhaddshs */ DoesNotAccessMemory,
  /* ppc_altivec_vmhraddshs */ DoesNotAccessMemory,
  /* ppc_altivec_vminfp */ DoesNotAccessMemory,
  /* ppc_altivec_vminsb */ DoesNotAccessMemory,
  /* ppc_altivec_vminsh */ DoesNotAccessMemory,
  /* ppc_altivec_vminsw */ DoesNotAccessMemory,
  /* ppc_altivec_vminub */ DoesNotAccessMemory,
  /* ppc_altivec_vminuh */ DoesNotAccessMemory,
  /* ppc_altivec_vminuw */ DoesNotAccessMemory,
  /* ppc_altivec_vmladduhm */ DoesNotAccessMemory,
  /* ppc_altivec_vmsummbm */ DoesNotAccessMemory,
  /* ppc_altivec_vmsumshm */ DoesNotAccessMemory,
  /* ppc_altivec_vmsumshs */ DoesNotAccessMemory,
  /* ppc_altivec_vmsumubm */ DoesNotAccessMemory,
  /* ppc_altivec_vmsumuhm */ DoesNotAccessMemory,
  /* ppc_altivec_vmsumuhs */ DoesNotAccessMemory,
  /* ppc_altivec_vmulesb */ DoesNotAccessMemory,
  /* ppc_altivec_vmulesh */ DoesNotAccessMemory,
  /* ppc_altivec_vmuleub */ DoesNotAccessMemory,
  /* ppc_altivec_vmuleuh */ DoesNotAccessMemory,
  /* ppc_altivec_vmulosb */ DoesNotAccessMemory,
  /* ppc_altivec_vmulosh */ DoesNotAccessMemory,
  /* ppc_altivec_vmuloub */ DoesNotAccessMemory,
  /* ppc_altivec_vmulouh */ DoesNotAccessMemory,
  /* ppc_altivec_vnmsubfp */ DoesNotAccessMemory,
  /* ppc_altivec_vperm */ DoesNotAccessMemory,
  /* ppc_altivec_vpkpx */ DoesNotAccessMemory,
  /* ppc_altivec_vpkshss */ DoesNotAccessMemory,
  /* ppc_altivec_vpkshus */ DoesNotAccessMemory,
  /* ppc_altivec_vpkswss */ DoesNotAccessMemory,
  /* ppc_altivec_vpkswus */ DoesNotAccessMemory,
  /* ppc_altivec_vpkuhus */ DoesNotAccessMemory,
  /* ppc_altivec_vpkuwus */ DoesNotAccessMemory,
  /* ppc_altivec_vrefp */ DoesNotAccessMemory,
  /* ppc_altivec_vrfim */ DoesNotAccessMemory,
  /* ppc_altivec_vrfin */ DoesNotAccessMemory,
  /* ppc_altivec_vrfip */ DoesNotAccessMemory,
  /* ppc_altivec_vrfiz */ DoesNotAccessMemory,
  /* ppc_altivec_vrlb */ DoesNotAccessMemory,
  /* ppc_altivec_vrlh */ DoesNotAccessMemory,
  /* ppc_altivec_vrlw */ DoesNotAccessMemory,
  /* ppc_altivec_vrsqrtefp */ DoesNotAccessMemory,
  /* ppc_altivec_vsel */ DoesNotAccessMemory,
  /* ppc_altivec_vsl */ DoesNotAccessMemory,
  /* ppc_altivec_vslb */ DoesNotAccessMemory,
  /* ppc_altivec_vslh */ DoesNotAccessMemory,
  /* ppc_altivec_vslo */ DoesNotAccessMemory,
  /* ppc_altivec_vslw */ DoesNotAccessMemory,
  /* ppc_altivec_vsr */ DoesNotAccessMemory,
  /* ppc_altivec_vsrab */ DoesNotAccessMemory,
  /* ppc_altivec_vsrah */ DoesNotAccessMemory,
  /* ppc_altivec_vsraw */ DoesNotAccessMemory,
  /* ppc_altivec_vsrb */ DoesNotAccessMemory,
  /* ppc_altivec_vsrh */ DoesNotAccessMemory,
  /* ppc_altivec_vsro */ DoesNotAccessMemory,
  /* ppc_altivec_vsrw */ DoesNotAccessMemory,
  /* ppc_altivec_vsubcuw */ DoesNotAccessMemory,
  /* ppc_altivec_vsubsbs */ DoesNotAccessMemory,
  /* ppc_altivec_vsubshs */ DoesNotAccessMemory,
  /* ppc_altivec_vsubsws */ DoesNotAccessMemory,
  /* ppc_altivec_vsububs */ DoesNotAccessMemory,
  /* ppc_altivec_vsubuhs */ DoesNotAccessMemory,
  /* ppc_altivec_vsubuws */ DoesNotAccessMemory,
  /* ppc_altivec_vsum2sws */ DoesNotAccessMemory,
  /* ppc_altivec_vsum4sbs */ DoesNotAccessMemory,
  /* ppc_altivec_vsum4shs */ DoesNotAccessMemory,
  /* ppc_altivec_vsum4ubs */ DoesNotAccessMemory,
  /* ppc_altivec_vsumsws */ DoesNotAccessMemory,
  /* ppc_altivec_vupkhpx */ DoesNotAccessMemory,
  /* ppc_altivec_vupkhsb */ DoesNotAccessMemory,
  /* ppc_altivec_vupkhsh */ DoesNotAccessMemory,
  /* ppc_altivec_vupklpx */ DoesNotAccessMemory,
  /* ppc_altivec_vupklsb */ DoesNotAccessMemory,
  /* ppc_altivec_vupklsh */ DoesNotAccessMemory,
  /* ppc_dcba */ UnknownModRefBehavior,
  /* ppc_dcbf */ UnknownModRefBehavior,
  /* ppc_dcbi */ UnknownModRefBehavior,
  /* ppc_dcbst */ UnknownModRefBehavior,
  /* ppc_dcbt */ UnknownModRefBehavior,
  /* ppc_dcbtst */ UnknownModRefBehavior,
  /* ppc_dcbz */ UnknownModRefBehavior,
  /* ppc_dcbzl */ UnknownModRefBehavior,
  /* ppc_sync */ UnknownModRefBehavior,
  /* prefetch */ OnlyAccessesArgumentPointees,
  /* ptr_annotation */ UnknownModRefBehavior,
  /* ptx_bar_sync */ UnknownModRefBehavior,
  /* ptx_read_clock */ DoesNotAccessMemory,
  /* ptx_read_clock64 */ DoesNotAccessMemory,
  /* ptx_read_ctaid_w */ DoesNotAccessMemory,
  /* ptx_read_ctaid_x */ DoesNotAccessMemory,
  /* ptx_read_ctaid_y */ DoesNotAccessMemory,
  /* ptx_read_ctaid_z */ DoesNotAccessMemory,
  /* ptx_read_gridid */ DoesNotAccessMemory,
  /* ptx_read_laneid */ DoesNotAccessMemory,
  /* ptx_read_lanemask_eq */ DoesNotAccessMemory,
  /* ptx_read_lanemask_ge */ DoesNotAccessMemory,
  /* ptx_read_lanemask_gt */ DoesNotAccessMemory,
  /* ptx_read_lanemask_le */ DoesNotAccessMemory,
  /* ptx_read_lanemask_lt */ DoesNotAccessMemory,
  /* ptx_read_nctaid_w */ DoesNotAccessMemory,
  /* ptx_read_nctaid_x */ DoesNotAccessMemory,
  /* ptx_read_nctaid_y */ DoesNotAccessMemory,
  /* ptx_read_nctaid_z */ DoesNotAccessMemory,
  /* ptx_read_nsmid */ DoesNotAccessMemory,
  /* ptx_read_ntid_w */ DoesNotAccessMemory,
  /* ptx_read_ntid_x */ DoesNotAccessMemory,
  /* ptx_read_ntid_y */ DoesNotAccessMemory,
  /* ptx_read_ntid_z */ DoesNotAccessMemory,
  /* ptx_read_nwarpid */ DoesNotAccessMemory,
  /* ptx_read_pm0 */ DoesNotAccessMemory,
  /* ptx_read_pm1 */ DoesNotAccessMemory,
  /* ptx_read_pm2 */ DoesNotAccessMemory,
  /* ptx_read_pm3 */ DoesNotAccessMemory,
  /* ptx_read_smid */ DoesNotAccessMemory,
  /* ptx_read_tid_w */ DoesNotAccessMemory,
  /* ptx_read_tid_x */ DoesNotAccessMemory,
  /* ptx_read_tid_y */ DoesNotAccessMemory,
  /* ptx_read_tid_z */ DoesNotAccessMemory,
  /* ptx_read_warpid */ DoesNotAccessMemory,
  /* readcyclecounter */ UnknownModRefBehavior,
  /* returnaddress */ DoesNotAccessMemory,
  /* sadd_with_overflow */ DoesNotAccessMemory,
  /* setjmp */ UnknownModRefBehavior,
  /* siglongjmp */ UnknownModRefBehavior,
  /* sigsetjmp */ UnknownModRefBehavior,
  /* sin */ OnlyReadsMemory,
  /* smul_with_overflow */ DoesNotAccessMemory,
  /* spu_si_a */ DoesNotAccessMemory,
  /* spu_si_addx */ DoesNotAccessMemory,
  /* spu_si_ah */ DoesNotAccessMemory,
  /* spu_si_ahi */ DoesNotAccessMemory,
  /* spu_si_ai */ DoesNotAccessMemory,
  /* spu_si_and */ DoesNotAccessMemory,
  /* spu_si_andbi */ DoesNotAccessMemory,
  /* spu_si_andc */ DoesNotAccessMemory,
  /* spu_si_andhi */ DoesNotAccessMemory,
  /* spu_si_andi */ DoesNotAccessMemory,
  /* spu_si_bg */ DoesNotAccessMemory,
  /* spu_si_bgx */ DoesNotAccessMemory,
  /* spu_si_ceq */ DoesNotAccessMemory,
  /* spu_si_ceqb */ DoesNotAccessMemory,
  /* spu_si_ceqbi */ DoesNotAccessMemory,
  /* spu_si_ceqh */ DoesNotAccessMemory,
  /* spu_si_ceqhi */ DoesNotAccessMemory,
  /* spu_si_ceqi */ DoesNotAccessMemory,
  /* spu_si_cg */ DoesNotAccessMemory,
  /* spu_si_cgt */ DoesNotAccessMemory,
  /* spu_si_cgtb */ DoesNotAccessMemory,
  /* spu_si_cgtbi */ DoesNotAccessMemory,
  /* spu_si_cgth */ DoesNotAccessMemory,
  /* spu_si_cgthi */ DoesNotAccessMemory,
  /* spu_si_cgti */ DoesNotAccessMemory,
  /* spu_si_cgx */ DoesNotAccessMemory,
  /* spu_si_clgt */ DoesNotAccessMemory,
  /* spu_si_clgtb */ DoesNotAccessMemory,
  /* spu_si_clgtbi */ DoesNotAccessMemory,
  /* spu_si_clgth */ DoesNotAccessMemory,
  /* spu_si_clgthi */ DoesNotAccessMemory,
  /* spu_si_clgti */ DoesNotAccessMemory,
  /* spu_si_dfa */ DoesNotAccessMemory,
  /* spu_si_dfm */ DoesNotAccessMemory,
  /* spu_si_dfma */ DoesNotAccessMemory,
  /* spu_si_dfms */ DoesNotAccessMemory,
  /* spu_si_dfnma */ DoesNotAccessMemory,
  /* spu_si_dfnms */ DoesNotAccessMemory,
  /* spu_si_dfs */ DoesNotAccessMemory,
  /* spu_si_fa */ DoesNotAccessMemory,
  /* spu_si_fceq */ DoesNotAccessMemory,
  /* spu_si_fcgt */ DoesNotAccessMemory,
  /* spu_si_fcmeq */ DoesNotAccessMemory,
  /* spu_si_fcmgt */ DoesNotAccessMemory,
  /* spu_si_fm */ DoesNotAccessMemory,
  /* spu_si_fma */ DoesNotAccessMemory,
  /* spu_si_fms */ DoesNotAccessMemory,
  /* spu_si_fnms */ DoesNotAccessMemory,
  /* spu_si_fs */ DoesNotAccessMemory,
  /* spu_si_fsmbi */ DoesNotAccessMemory,
  /* spu_si_mpy */ DoesNotAccessMemory,
  /* spu_si_mpya */ DoesNotAccessMemory,
  /* spu_si_mpyh */ DoesNotAccessMemory,
  /* spu_si_mpyhh */ DoesNotAccessMemory,
  /* spu_si_mpyhha */ DoesNotAccessMemory,
  /* spu_si_mpyhhau */ DoesNotAccessMemory,
  /* spu_si_mpyhhu */ DoesNotAccessMemory,
  /* spu_si_mpyi */ DoesNotAccessMemory,
  /* spu_si_mpys */ DoesNotAccessMemory,
  /* spu_si_mpyu */ DoesNotAccessMemory,
  /* spu_si_mpyui */ DoesNotAccessMemory,
  /* spu_si_nand */ DoesNotAccessMemory,
  /* spu_si_nor */ DoesNotAccessMemory,
  /* spu_si_or */ DoesNotAccessMemory,
  /* spu_si_orbi */ DoesNotAccessMemory,
  /* spu_si_orc */ DoesNotAccessMemory,
  /* spu_si_orhi */ DoesNotAccessMemory,
  /* spu_si_ori */ DoesNotAccessMemory,
  /* spu_si_sf */ DoesNotAccessMemory,
  /* spu_si_sfh */ DoesNotAccessMemory,
  /* spu_si_sfhi */ DoesNotAccessMemory,
  /* spu_si_sfi */ DoesNotAccessMemory,
  /* spu_si_sfx */ DoesNotAccessMemory,
  /* spu_si_shli */ DoesNotAccessMemory,
  /* spu_si_shlqbi */ DoesNotAccessMemory,
  /* spu_si_shlqbii */ DoesNotAccessMemory,
  /* spu_si_shlqby */ DoesNotAccessMemory,
  /* spu_si_shlqbyi */ DoesNotAccessMemory,
  /* spu_si_xor */ DoesNotAccessMemory,
  /* spu_si_xorbi */ DoesNotAccessMemory,
  /* spu_si_xorhi */ DoesNotAccessMemory,
  /* spu_si_xori */ DoesNotAccessMemory,
  /* sqrt */ OnlyReadsMemory,
  /* ssub_with_overflow */ DoesNotAccessMemory,
  /* stackprotector */ UnknownModRefBehavior,
  /* stackrestore */ UnknownModRefBehavior,
  /* stacksave */ UnknownModRefBehavior,
  /* trap */ UnknownModRefBehavior,
  /* uadd_with_overflow */ DoesNotAccessMemory,
  /* umul_with_overflow */ DoesNotAccessMemory,
  /* usub_with_overflow */ DoesNotAccessMemory,
  /* vacopy */ UnknownModRefBehavior,
  /* vaend */ UnknownModRefBehavior,
  /* var_annotation */ UnknownModRefBehavior,
  /* vastart */ UnknownModRefBehavior,
  /* x86_3dnow_pavgusb */ DoesNotAccessMemory,
  /* x86_3dnow_pf2id */ DoesNotAccessMemory,
  /* x86_3dnow_pfacc */ DoesNotAccessMemory,
  /* x86_3dnow_pfadd */ DoesNotAccessMemory,
  /* x86_3dnow_pfcmpeq */ DoesNotAccessMemory,
  /* x86_3dnow_pfcmpge */ DoesNotAccessMemory,
  /* x86_3dnow_pfcmpgt */ DoesNotAccessMemory,
  /* x86_3dnow_pfmax */ DoesNotAccessMemory,
  /* x86_3dnow_pfmin */ DoesNotAccessMemory,
  /* x86_3dnow_pfmul */ DoesNotAccessMemory,
  /* x86_3dnow_pfrcp */ DoesNotAccessMemory,
  /* x86_3dnow_pfrcpit1 */ DoesNotAccessMemory,
  /* x86_3dnow_pfrcpit2 */ DoesNotAccessMemory,
  /* x86_3dnow_pfrsqit1 */ DoesNotAccessMemory,
  /* x86_3dnow_pfrsqrt */ DoesNotAccessMemory,
  /* x86_3dnow_pfsub */ DoesNotAccessMemory,
  /* x86_3dnow_pfsubr */ DoesNotAccessMemory,
  /* x86_3dnow_pi2fd */ DoesNotAccessMemory,
  /* x86_3dnow_pmulhrw */ DoesNotAccessMemory,
  /* x86_3dnowa_pf2iw */ DoesNotAccessMemory,
  /* x86_3dnowa_pfnacc */ DoesNotAccessMemory,
  /* x86_3dnowa_pfpnacc */ DoesNotAccessMemory,
  /* x86_3dnowa_pi2fw */ DoesNotAccessMemory,
  /* x86_3dnowa_pswapd */ DoesNotAccessMemory,
  /* x86_aesni_aesdec */ DoesNotAccessMemory,
  /* x86_aesni_aesdeclast */ DoesNotAccessMemory,
  /* x86_aesni_aesenc */ DoesNotAccessMemory,
  /* x86_aesni_aesenclast */ DoesNotAccessMemory,
  /* x86_aesni_aesimc */ DoesNotAccessMemory,
  /* x86_aesni_aeskeygenassist */ DoesNotAccessMemory,
  /* x86_avx2_gather_d_d */ OnlyReadsMemory,
  /* x86_avx2_gather_d_d_256 */ OnlyReadsMemory,
  /* x86_avx2_gather_d_pd */ OnlyReadsMemory,
  /* x86_avx2_gather_d_pd_256 */ OnlyReadsMemory,
  /* x86_avx2_gather_d_ps */ OnlyReadsMemory,
  /* x86_avx2_gather_d_ps_256 */ OnlyReadsMemory,
  /* x86_avx2_gather_d_q */ OnlyReadsMemory,
  /* x86_avx2_gather_d_q_256 */ OnlyReadsMemory,
  /* x86_avx2_gather_q_d */ OnlyReadsMemory,
  /* x86_avx2_gather_q_d_256 */ OnlyReadsMemory,
  /* x86_avx2_gather_q_pd */ OnlyReadsMemory,
  /* x86_avx2_gather_q_pd_256 */ OnlyReadsMemory,
  /* x86_avx2_gather_q_ps */ OnlyReadsMemory,
  /* x86_avx2_gather_q_ps_256 */ OnlyReadsMemory,
  /* x86_avx2_gather_q_q */ OnlyReadsMemory,
  /* x86_avx2_gather_q_q_256 */ OnlyReadsMemory,
  /* x86_avx2_maskload_d */ OnlyReadsArgumentPointees,
  /* x86_avx2_maskload_d_256 */ OnlyReadsArgumentPointees,
  /* x86_avx2_maskload_q */ OnlyReadsArgumentPointees,
  /* x86_avx2_maskload_q_256 */ OnlyReadsArgumentPointees,
  /* x86_avx2_maskstore_d */ OnlyAccessesArgumentPointees,
  /* x86_avx2_maskstore_d_256 */ OnlyAccessesArgumentPointees,
  /* x86_avx2_maskstore_q */ OnlyAccessesArgumentPointees,
  /* x86_avx2_maskstore_q_256 */ OnlyAccessesArgumentPointees,
  /* x86_avx2_movntdqa */ OnlyReadsMemory,
  /* x86_avx2_mpsadbw */ DoesNotAccessMemory,
  /* x86_avx2_pabs_b */ DoesNotAccessMemory,
  /* x86_avx2_pabs_d */ DoesNotAccessMemory,
  /* x86_avx2_pabs_w */ DoesNotAccessMemory,
  /* x86_avx2_packssdw */ DoesNotAccessMemory,
  /* x86_avx2_packsswb */ DoesNotAccessMemory,
  /* x86_avx2_packusdw */ DoesNotAccessMemory,
  /* x86_avx2_packuswb */ DoesNotAccessMemory,
  /* x86_avx2_padds_b */ DoesNotAccessMemory,
  /* x86_avx2_padds_w */ DoesNotAccessMemory,
  /* x86_avx2_paddus_b */ DoesNotAccessMemory,
  /* x86_avx2_paddus_w */ DoesNotAccessMemory,
  /* x86_avx2_pavg_b */ DoesNotAccessMemory,
  /* x86_avx2_pavg_w */ DoesNotAccessMemory,
  /* x86_avx2_pblendd_128 */ DoesNotAccessMemory,
  /* x86_avx2_pblendd_256 */ DoesNotAccessMemory,
  /* x86_avx2_pblendvb */ DoesNotAccessMemory,
  /* x86_avx2_pblendw */ DoesNotAccessMemory,
  /* x86_avx2_pbroadcastb_128 */ DoesNotAccessMemory,
  /* x86_avx2_pbroadcastb_256 */ DoesNotAccessMemory,
  /* x86_avx2_pbroadcastd_128 */ DoesNotAccessMemory,
  /* x86_avx2_pbroadcastd_256 */ DoesNotAccessMemory,
  /* x86_avx2_pbroadcastq_128 */ DoesNotAccessMemory,
  /* x86_avx2_pbroadcastq_256 */ DoesNotAccessMemory,
  /* x86_avx2_pbroadcastw_128 */ DoesNotAccessMemory,
  /* x86_avx2_pbroadcastw_256 */ DoesNotAccessMemory,
  /* x86_avx2_permd */ DoesNotAccessMemory,
  /* x86_avx2_permps */ DoesNotAccessMemory,
  /* x86_avx2_phadd_d */ DoesNotAccessMemory,
  /* x86_avx2_phadd_sw */ DoesNotAccessMemory,
  /* x86_avx2_phadd_w */ DoesNotAccessMemory,
  /* x86_avx2_phsub_d */ DoesNotAccessMemory,
  /* x86_avx2_phsub_sw */ DoesNotAccessMemory,
  /* x86_avx2_phsub_w */ DoesNotAccessMemory,
  /* x86_avx2_pmadd_ub_sw */ DoesNotAccessMemory,
  /* x86_avx2_pmadd_wd */ DoesNotAccessMemory,
  /* x86_avx2_pmaxs_b */ DoesNotAccessMemory,
  /* x86_avx2_pmaxs_d */ DoesNotAccessMemory,
  /* x86_avx2_pmaxs_w */ DoesNotAccessMemory,
  /* x86_avx2_pmaxu_b */ DoesNotAccessMemory,
  /* x86_avx2_pmaxu_d */ DoesNotAccessMemory,
  /* x86_avx2_pmaxu_w */ DoesNotAccessMemory,
  /* x86_avx2_pmins_b */ DoesNotAccessMemory,
  /* x86_avx2_pmins_d */ DoesNotAccessMemory,
  /* x86_avx2_pmins_w */ DoesNotAccessMemory,
  /* x86_avx2_pminu_b */ DoesNotAccessMemory,
  /* x86_avx2_pminu_d */ DoesNotAccessMemory,
  /* x86_avx2_pminu_w */ DoesNotAccessMemory,
  /* x86_avx2_pmovmskb */ DoesNotAccessMemory,
  /* x86_avx2_pmovsxbd */ DoesNotAccessMemory,
  /* x86_avx2_pmovsxbq */ DoesNotAccessMemory,
  /* x86_avx2_pmovsxbw */ DoesNotAccessMemory,
  /* x86_avx2_pmovsxdq */ DoesNotAccessMemory,
  /* x86_avx2_pmovsxwd */ DoesNotAccessMemory,
  /* x86_avx2_pmovsxwq */ DoesNotAccessMemory,
  /* x86_avx2_pmovzxbd */ DoesNotAccessMemory,
  /* x86_avx2_pmovzxbq */ DoesNotAccessMemory,
  /* x86_avx2_pmovzxbw */ DoesNotAccessMemory,
  /* x86_avx2_pmovzxdq */ DoesNotAccessMemory,
  /* x86_avx2_pmovzxwd */ DoesNotAccessMemory,
  /* x86_avx2_pmovzxwq */ DoesNotAccessMemory,
  /* x86_avx2_pmul_dq */ DoesNotAccessMemory,
  /* x86_avx2_pmul_hr_sw */ DoesNotAccessMemory,
  /* x86_avx2_pmulh_w */ DoesNotAccessMemory,
  /* x86_avx2_pmulhu_w */ DoesNotAccessMemory,
  /* x86_avx2_pmulu_dq */ DoesNotAccessMemory,
  /* x86_avx2_psad_bw */ DoesNotAccessMemory,
  /* x86_avx2_pshuf_b */ DoesNotAccessMemory,
  /* x86_avx2_psign_b */ DoesNotAccessMemory,
  /* x86_avx2_psign_d */ DoesNotAccessMemory,
  /* x86_avx2_psign_w */ DoesNotAccessMemory,
  /* x86_avx2_psll_d */ DoesNotAccessMemory,
  /* x86_avx2_psll_dq */ DoesNotAccessMemory,
  /* x86_avx2_psll_dq_bs */ DoesNotAccessMemory,
  /* x86_avx2_psll_q */ DoesNotAccessMemory,
  /* x86_avx2_psll_w */ DoesNotAccessMemory,
  /* x86_avx2_pslli_d */ DoesNotAccessMemory,
  /* x86_avx2_pslli_q */ DoesNotAccessMemory,
  /* x86_avx2_pslli_w */ DoesNotAccessMemory,
  /* x86_avx2_psllv_d */ DoesNotAccessMemory,
  /* x86_avx2_psllv_d_256 */ DoesNotAccessMemory,
  /* x86_avx2_psllv_q */ DoesNotAccessMemory,
  /* x86_avx2_psllv_q_256 */ DoesNotAccessMemory,
  /* x86_avx2_psra_d */ DoesNotAccessMemory,
  /* x86_avx2_psra_w */ DoesNotAccessMemory,
  /* x86_avx2_psrai_d */ DoesNotAccessMemory,
  /* x86_avx2_psrai_w */ DoesNotAccessMemory,
  /* x86_avx2_psrav_d */ DoesNotAccessMemory,
  /* x86_avx2_psrav_d_256 */ DoesNotAccessMemory,
  /* x86_avx2_psrl_d */ DoesNotAccessMemory,
  /* x86_avx2_psrl_dq */ DoesNotAccessMemory,
  /* x86_avx2_psrl_dq_bs */ DoesNotAccessMemory,
  /* x86_avx2_psrl_q */ DoesNotAccessMemory,
  /* x86_avx2_psrl_w */ DoesNotAccessMemory,
  /* x86_avx2_psrli_d */ DoesNotAccessMemory,
  /* x86_avx2_psrli_q */ DoesNotAccessMemory,
  /* x86_avx2_psrli_w */ DoesNotAccessMemory,
  /* x86_avx2_psrlv_d */ DoesNotAccessMemory,
  /* x86_avx2_psrlv_d_256 */ DoesNotAccessMemory,
  /* x86_avx2_psrlv_q */ DoesNotAccessMemory,
  /* x86_avx2_psrlv_q_256 */ DoesNotAccessMemory,
  /* x86_avx2_psubs_b */ DoesNotAccessMemory,
  /* x86_avx2_psubs_w */ DoesNotAccessMemory,
  /* x86_avx2_psubus_b */ DoesNotAccessMemory,
  /* x86_avx2_psubus_w */ DoesNotAccessMemory,
  /* x86_avx2_vbroadcast_sd_pd_256 */ DoesNotAccessMemory,
  /* x86_avx2_vbroadcast_ss_ps */ DoesNotAccessMemory,
  /* x86_avx2_vbroadcast_ss_ps_256 */ DoesNotAccessMemory,
  /* x86_avx2_vbroadcasti128 */ OnlyReadsArgumentPointees,
  /* x86_avx2_vextracti128 */ DoesNotAccessMemory,
  /* x86_avx2_vinserti128 */ DoesNotAccessMemory,
  /* x86_avx2_vperm2i128 */ DoesNotAccessMemory,
  /* x86_avx_addsub_pd_256 */ DoesNotAccessMemory,
  /* x86_avx_addsub_ps_256 */ DoesNotAccessMemory,
  /* x86_avx_blend_pd_256 */ DoesNotAccessMemory,
  /* x86_avx_blend_ps_256 */ DoesNotAccessMemory,
  /* x86_avx_blendv_pd_256 */ DoesNotAccessMemory,
  /* x86_avx_blendv_ps_256 */ DoesNotAccessMemory,
  /* x86_avx_cmp_pd_256 */ DoesNotAccessMemory,
  /* x86_avx_cmp_ps_256 */ DoesNotAccessMemory,
  /* x86_avx_cvt_pd2_ps_256 */ DoesNotAccessMemory,
  /* x86_avx_cvt_pd2dq_256 */ DoesNotAccessMemory,
  /* x86_avx_cvt_ps2_pd_256 */ DoesNotAccessMemory,
  /* x86_avx_cvt_ps2dq_256 */ DoesNotAccessMemory,
  /* x86_avx_cvtdq2_pd_256 */ DoesNotAccessMemory,
  /* x86_avx_cvtdq2_ps_256 */ DoesNotAccessMemory,
  /* x86_avx_cvtt_pd2dq_256 */ DoesNotAccessMemory,
  /* x86_avx_cvtt_ps2dq_256 */ DoesNotAccessMemory,
  /* x86_avx_dp_ps_256 */ DoesNotAccessMemory,
  /* x86_avx_hadd_pd_256 */ DoesNotAccessMemory,
  /* x86_avx_hadd_ps_256 */ DoesNotAccessMemory,
  /* x86_avx_hsub_pd_256 */ DoesNotAccessMemory,
  /* x86_avx_hsub_ps_256 */ DoesNotAccessMemory,
  /* x86_avx_ldu_dq_256 */ OnlyReadsMemory,
  /* x86_avx_maskload_pd */ OnlyReadsArgumentPointees,
  /* x86_avx_maskload_pd_256 */ OnlyReadsArgumentPointees,
  /* x86_avx_maskload_ps */ OnlyReadsArgumentPointees,
  /* x86_avx_maskload_ps_256 */ OnlyReadsArgumentPointees,
  /* x86_avx_maskstore_pd */ OnlyAccessesArgumentPointees,
  /* x86_avx_maskstore_pd_256 */ OnlyAccessesArgumentPointees,
  /* x86_avx_maskstore_ps */ OnlyAccessesArgumentPointees,
  /* x86_avx_maskstore_ps_256 */ OnlyAccessesArgumentPointees,
  /* x86_avx_max_pd_256 */ DoesNotAccessMemory,
  /* x86_avx_max_ps_256 */ DoesNotAccessMemory,
  /* x86_avx_min_pd_256 */ DoesNotAccessMemory,
  /* x86_avx_min_ps_256 */ DoesNotAccessMemory,
  /* x86_avx_movmsk_pd_256 */ DoesNotAccessMemory,
  /* x86_avx_movmsk_ps_256 */ DoesNotAccessMemory,
  /* x86_avx_ptestc_256 */ DoesNotAccessMemory,
  /* x86_avx_ptestnzc_256 */ DoesNotAccessMemory,
  /* x86_avx_ptestz_256 */ DoesNotAccessMemory,
  /* x86_avx_rcp_ps_256 */ DoesNotAccessMemory,
  /* x86_avx_round_pd_256 */ DoesNotAccessMemory,
  /* x86_avx_round_ps_256 */ DoesNotAccessMemory,
  /* x86_avx_rsqrt_ps_256 */ DoesNotAccessMemory,
  /* x86_avx_sqrt_pd_256 */ DoesNotAccessMemory,
  /* x86_avx_sqrt_ps_256 */ DoesNotAccessMemory,
  /* x86_avx_storeu_dq_256 */ OnlyAccessesArgumentPointees,
  /* x86_avx_storeu_pd_256 */ OnlyAccessesArgumentPointees,
  /* x86_avx_storeu_ps_256 */ OnlyAccessesArgumentPointees,
  /* x86_avx_vbroadcast_sd_256 */ OnlyReadsArgumentPointees,
  /* x86_avx_vbroadcast_ss */ OnlyReadsArgumentPointees,
  /* x86_avx_vbroadcast_ss_256 */ OnlyReadsArgumentPointees,
  /* x86_avx_vbroadcastf128_pd_256 */ OnlyReadsArgumentPointees,
  /* x86_avx_vbroadcastf128_ps_256 */ OnlyReadsArgumentPointees,
  /* x86_avx_vextractf128_pd_256 */ DoesNotAccessMemory,
  /* x86_avx_vextractf128_ps_256 */ DoesNotAccessMemory,
  /* x86_avx_vextractf128_si_256 */ DoesNotAccessMemory,
  /* x86_avx_vinsertf128_pd_256 */ DoesNotAccessMemory,
  /* x86_avx_vinsertf128_ps_256 */ DoesNotAccessMemory,
  /* x86_avx_vinsertf128_si_256 */ DoesNotAccessMemory,
  /* x86_avx_vperm2f128_pd_256 */ DoesNotAccessMemory,
  /* x86_avx_vperm2f128_ps_256 */ DoesNotAccessMemory,
  /* x86_avx_vperm2f128_si_256 */ DoesNotAccessMemory,
  /* x86_avx_vpermilvar_pd */ DoesNotAccessMemory,
  /* x86_avx_vpermilvar_pd_256 */ DoesNotAccessMemory,
  /* x86_avx_vpermilvar_ps */ DoesNotAccessMemory,
  /* x86_avx_vpermilvar_ps_256 */ DoesNotAccessMemory,
  /* x86_avx_vtestc_pd */ DoesNotAccessMemory,
  /* x86_avx_vtestc_pd_256 */ DoesNotAccessMemory,
  /* x86_avx_vtestc_ps */ DoesNotAccessMemory,
  /* x86_avx_vtestc_ps_256 */ DoesNotAccessMemory,
  /* x86_avx_vtestnzc_pd */ DoesNotAccessMemory,
  /* x86_avx_vtestnzc_pd_256 */ DoesNotAccessMemory,
  /* x86_avx_vtestnzc_ps */ DoesNotAccessMemory,
  /* x86_avx_vtestnzc_ps_256 */ DoesNotAccessMemory,
  /* x86_avx_vtestz_pd */ DoesNotAccessMemory,
  /* x86_avx_vtestz_pd_256 */ DoesNotAccessMemory,
  /* x86_avx_vtestz_ps */ DoesNotAccessMemory,
  /* x86_avx_vtestz_ps_256 */ DoesNotAccessMemory,
  /* x86_avx_vzeroall */ UnknownModRefBehavior,
  /* x86_avx_vzeroupper */ UnknownModRefBehavior,
  /* x86_bmi_bextr_32 */ DoesNotAccessMemory,
  /* x86_bmi_bextr_64 */ DoesNotAccessMemory,
  /* x86_bmi_bzhi_32 */ DoesNotAccessMemory,
  /* x86_bmi_bzhi_64 */ DoesNotAccessMemory,
  /* x86_bmi_pdep_32 */ DoesNotAccessMemory,
  /* x86_bmi_pdep_64 */ DoesNotAccessMemory,
  /* x86_bmi_pext_32 */ DoesNotAccessMemory,
  /* x86_bmi_pext_64 */ DoesNotAccessMemory,
  /* x86_fma_vfmadd_pd */ DoesNotAccessMemory,
  /* x86_fma_vfmadd_pd_256 */ DoesNotAccessMemory,
  /* x86_fma_vfmadd_ps */ DoesNotAccessMemory,
  /* x86_fma_vfmadd_ps_256 */ DoesNotAccessMemory,
  /* x86_fma_vfmadd_sd */ DoesNotAccessMemory,
  /* x86_fma_vfmadd_ss */ DoesNotAccessMemory,
  /* x86_fma_vfmaddsub_pd */ DoesNotAccessMemory,
  /* x86_fma_vfmaddsub_pd_256 */ DoesNotAccessMemory,
  /* x86_fma_vfmaddsub_ps */ DoesNotAccessMemory,
  /* x86_fma_vfmaddsub_ps_256 */ DoesNotAccessMemory,
  /* x86_fma_vfmsub_pd */ DoesNotAccessMemory,
  /* x86_fma_vfmsub_pd_256 */ DoesNotAccessMemory,
  /* x86_fma_vfmsub_ps */ DoesNotAccessMemory,
  /* x86_fma_vfmsub_ps_256 */ DoesNotAccessMemory,
  /* x86_fma_vfmsub_sd */ DoesNotAccessMemory,
  /* x86_fma_vfmsub_ss */ DoesNotAccessMemory,
  /* x86_fma_vfmsubadd_pd */ DoesNotAccessMemory,
  /* x86_fma_vfmsubadd_pd_256 */ DoesNotAccessMemory,
  /* x86_fma_vfmsubadd_ps */ DoesNotAccessMemory,
  /* x86_fma_vfmsubadd_ps_256 */ DoesNotAccessMemory,
  /* x86_fma_vfnmadd_pd */ DoesNotAccessMemory,
  /* x86_fma_vfnmadd_pd_256 */ DoesNotAccessMemory,
  /* x86_fma_vfnmadd_ps */ DoesNotAccessMemory,
  /* x86_fma_vfnmadd_ps_256 */ DoesNotAccessMemory,
  /* x86_fma_vfnmadd_sd */ DoesNotAccessMemory,
  /* x86_fma_vfnmadd_ss */ DoesNotAccessMemory,
  /* x86_fma_vfnmsub_pd */ DoesNotAccessMemory,
  /* x86_fma_vfnmsub_pd_256 */ DoesNotAccessMemory,
  /* x86_fma_vfnmsub_ps */ DoesNotAccessMemory,
  /* x86_fma_vfnmsub_ps_256 */ DoesNotAccessMemory,
  /* x86_fma_vfnmsub_sd */ DoesNotAccessMemory,
  /* x86_fma_vfnmsub_ss */ DoesNotAccessMemory,
  /* x86_int */ UnknownModRefBehavior,
  /* x86_mmx_emms */ UnknownModRefBehavior,
  /* x86_mmx_femms */ UnknownModRefBehavior,
  /* x86_mmx_maskmovq */ UnknownModRefBehavior,
  /* x86_mmx_movnt_dq */ UnknownModRefBehavior,
  /* x86_mmx_packssdw */ DoesNotAccessMemory,
  /* x86_mmx_packsswb */ DoesNotAccessMemory,
  /* x86_mmx_packuswb */ DoesNotAccessMemory,
  /* x86_mmx_padd_b */ DoesNotAccessMemory,
  /* x86_mmx_padd_d */ DoesNotAccessMemory,
  /* x86_mmx_padd_q */ DoesNotAccessMemory,
  /* x86_mmx_padd_w */ DoesNotAccessMemory,
  /* x86_mmx_padds_b */ DoesNotAccessMemory,
  /* x86_mmx_padds_w */ DoesNotAccessMemory,
  /* x86_mmx_paddus_b */ DoesNotAccessMemory,
  /* x86_mmx_paddus_w */ DoesNotAccessMemory,
  /* x86_mmx_palignr_b */ DoesNotAccessMemory,
  /* x86_mmx_pand */ DoesNotAccessMemory,
  /* x86_mmx_pandn */ DoesNotAccessMemory,
  /* x86_mmx_pavg_b */ DoesNotAccessMemory,
  /* x86_mmx_pavg_w */ DoesNotAccessMemory,
  /* x86_mmx_pcmpeq_b */ DoesNotAccessMemory,
  /* x86_mmx_pcmpeq_d */ DoesNotAccessMemory,
  /* x86_mmx_pcmpeq_w */ DoesNotAccessMemory,
  /* x86_mmx_pcmpgt_b */ DoesNotAccessMemory,
  /* x86_mmx_pcmpgt_d */ DoesNotAccessMemory,
  /* x86_mmx_pcmpgt_w */ DoesNotAccessMemory,
  /* x86_mmx_pextr_w */ DoesNotAccessMemory,
  /* x86_mmx_pinsr_w */ DoesNotAccessMemory,
  /* x86_mmx_pmadd_wd */ DoesNotAccessMemory,
  /* x86_mmx_pmaxs_w */ DoesNotAccessMemory,
  /* x86_mmx_pmaxu_b */ DoesNotAccessMemory,
  /* x86_mmx_pmins_w */ DoesNotAccessMemory,
  /* x86_mmx_pminu_b */ DoesNotAccessMemory,
  /* x86_mmx_pmovmskb */ DoesNotAccessMemory,
  /* x86_mmx_pmulh_w */ DoesNotAccessMemory,
  /* x86_mmx_pmulhu_w */ DoesNotAccessMemory,
  /* x86_mmx_pmull_w */ DoesNotAccessMemory,
  /* x86_mmx_pmulu_dq */ DoesNotAccessMemory,
  /* x86_mmx_por */ DoesNotAccessMemory,
  /* x86_mmx_psad_bw */ DoesNotAccessMemory,
  /* x86_mmx_psll_d */ DoesNotAccessMemory,
  /* x86_mmx_psll_q */ DoesNotAccessMemory,
  /* x86_mmx_psll_w */ DoesNotAccessMemory,
  /* x86_mmx_pslli_d */ DoesNotAccessMemory,
  /* x86_mmx_pslli_q */ DoesNotAccessMemory,
  /* x86_mmx_pslli_w */ DoesNotAccessMemory,
  /* x86_mmx_psra_d */ DoesNotAccessMemory,
  /* x86_mmx_psra_w */ DoesNotAccessMemory,
  /* x86_mmx_psrai_d */ DoesNotAccessMemory,
  /* x86_mmx_psrai_w */ DoesNotAccessMemory,
  /* x86_mmx_psrl_d */ DoesNotAccessMemory,
  /* x86_mmx_psrl_q */ DoesNotAccessMemory,
  /* x86_mmx_psrl_w */ DoesNotAccessMemory,
  /* x86_mmx_psrli_d */ DoesNotAccessMemory,
  /* x86_mmx_psrli_q */ DoesNotAccessMemory,
  /* x86_mmx_psrli_w */ DoesNotAccessMemory,
  /* x86_mmx_psub_b */ DoesNotAccessMemory,
  /* x86_mmx_psub_d */ DoesNotAccessMemory,
  /* x86_mmx_psub_q */ DoesNotAccessMemory,
  /* x86_mmx_psub_w */ DoesNotAccessMemory,
  /* x86_mmx_psubs_b */ DoesNotAccessMemory,
  /* x86_mmx_psubs_w */ DoesNotAccessMemory,
  /* x86_mmx_psubus_b */ DoesNotAccessMemory,
  /* x86_mmx_psubus_w */ DoesNotAccessMemory,
  /* x86_mmx_punpckhbw */ DoesNotAccessMemory,
  /* x86_mmx_punpckhdq */ DoesNotAccessMemory,
  /* x86_mmx_punpckhwd */ DoesNotAccessMemory,
  /* x86_mmx_punpcklbw */ DoesNotAccessMemory,
  /* x86_mmx_punpckldq */ DoesNotAccessMemory,
  /* x86_mmx_punpcklwd */ DoesNotAccessMemory,
  /* x86_mmx_pxor */ DoesNotAccessMemory,
  /* x86_pclmulqdq */ DoesNotAccessMemory,
  /* x86_rdfsbase_32 */ UnknownModRefBehavior,
  /* x86_rdfsbase_64 */ UnknownModRefBehavior,
  /* x86_rdgsbase_32 */ UnknownModRefBehavior,
  /* x86_rdgsbase_64 */ UnknownModRefBehavior,
  /* x86_rdrand_16 */ UnknownModRefBehavior,
  /* x86_rdrand_32 */ UnknownModRefBehavior,
  /* x86_rdrand_64 */ UnknownModRefBehavior,
  /* x86_sse2_add_sd */ DoesNotAccessMemory,
  /* x86_sse2_clflush */ UnknownModRefBehavior,
  /* x86_sse2_cmp_pd */ DoesNotAccessMemory,
  /* x86_sse2_cmp_sd */ DoesNotAccessMemory,
  /* x86_sse2_comieq_sd */ DoesNotAccessMemory,
  /* x86_sse2_comige_sd */ DoesNotAccessMemory,
  /* x86_sse2_comigt_sd */ DoesNotAccessMemory,
  /* x86_sse2_comile_sd */ DoesNotAccessMemory,
  /* x86_sse2_comilt_sd */ DoesNotAccessMemory,
  /* x86_sse2_comineq_sd */ DoesNotAccessMemory,
  /* x86_sse2_cvtdq2pd */ DoesNotAccessMemory,
  /* x86_sse2_cvtdq2ps */ DoesNotAccessMemory,
  /* x86_sse2_cvtpd2dq */ DoesNotAccessMemory,
  /* x86_sse2_cvtpd2ps */ DoesNotAccessMemory,
  /* x86_sse2_cvtps2dq */ DoesNotAccessMemory,
  /* x86_sse2_cvtps2pd */ DoesNotAccessMemory,
  /* x86_sse2_cvtsd2si */ DoesNotAccessMemory,
  /* x86_sse2_cvtsd2si64 */ DoesNotAccessMemory,
  /* x86_sse2_cvtsd2ss */ DoesNotAccessMemory,
  /* x86_sse2_cvtsi2sd */ DoesNotAccessMemory,
  /* x86_sse2_cvtsi642sd */ DoesNotAccessMemory,
  /* x86_sse2_cvtss2sd */ DoesNotAccessMemory,
  /* x86_sse2_cvttpd2dq */ DoesNotAccessMemory,
  /* x86_sse2_cvttps2dq */ DoesNotAccessMemory,
  /* x86_sse2_cvttsd2si */ DoesNotAccessMemory,
  /* x86_sse2_cvttsd2si64 */ DoesNotAccessMemory,
  /* x86_sse2_div_sd */ DoesNotAccessMemory,
  /* x86_sse2_lfence */ UnknownModRefBehavior,
  /* x86_sse2_maskmov_dqu */ UnknownModRefBehavior,
  /* x86_sse2_max_pd */ DoesNotAccessMemory,
  /* x86_sse2_max_sd */ DoesNotAccessMemory,
  /* x86_sse2_mfence */ UnknownModRefBehavior,
  /* x86_sse2_min_pd */ DoesNotAccessMemory,
  /* x86_sse2_min_sd */ DoesNotAccessMemory,
  /* x86_sse2_movmsk_pd */ DoesNotAccessMemory,
  /* x86_sse2_mul_sd */ DoesNotAccessMemory,
  /* x86_sse2_packssdw_128 */ DoesNotAccessMemory,
  /* x86_sse2_packsswb_128 */ DoesNotAccessMemory,
  /* x86_sse2_packuswb_128 */ DoesNotAccessMemory,
  /* x86_sse2_padds_b */ DoesNotAccessMemory,
  /* x86_sse2_padds_w */ DoesNotAccessMemory,
  /* x86_sse2_paddus_b */ DoesNotAccessMemory,
  /* x86_sse2_paddus_w */ DoesNotAccessMemory,
  /* x86_sse2_pavg_b */ DoesNotAccessMemory,
  /* x86_sse2_pavg_w */ DoesNotAccessMemory,
  /* x86_sse2_pmadd_wd */ DoesNotAccessMemory,
  /* x86_sse2_pmaxs_w */ DoesNotAccessMemory,
  /* x86_sse2_pmaxu_b */ DoesNotAccessMemory,
  /* x86_sse2_pmins_w */ DoesNotAccessMemory,
  /* x86_sse2_pminu_b */ DoesNotAccessMemory,
  /* x86_sse2_pmovmskb_128 */ DoesNotAccessMemory,
  /* x86_sse2_pmulh_w */ DoesNotAccessMemory,
  /* x86_sse2_pmulhu_w */ DoesNotAccessMemory,
  /* x86_sse2_pmulu_dq */ DoesNotAccessMemory,
  /* x86_sse2_psad_bw */ DoesNotAccessMemory,
  /* x86_sse2_psll_d */ DoesNotAccessMemory,
  /* x86_sse2_psll_dq */ DoesNotAccessMemory,
  /* x86_sse2_psll_dq_bs */ DoesNotAccessMemory,
  /* x86_sse2_psll_q */ DoesNotAccessMemory,
  /* x86_sse2_psll_w */ DoesNotAccessMemory,
  /* x86_sse2_pslli_d */ DoesNotAccessMemory,
  /* x86_sse2_pslli_q */ DoesNotAccessMemory,
  /* x86_sse2_pslli_w */ DoesNotAccessMemory,
  /* x86_sse2_psra_d */ DoesNotAccessMemory,
  /* x86_sse2_psra_w */ DoesNotAccessMemory,
  /* x86_sse2_psrai_d */ DoesNotAccessMemory,
  /* x86_sse2_psrai_w */ DoesNotAccessMemory,
  /* x86_sse2_psrl_d */ DoesNotAccessMemory,
  /* x86_sse2_psrl_dq */ DoesNotAccessMemory,
  /* x86_sse2_psrl_dq_bs */ DoesNotAccessMemory,
  /* x86_sse2_psrl_q */ DoesNotAccessMemory,
  /* x86_sse2_psrl_w */ DoesNotAccessMemory,
  /* x86_sse2_psrli_d */ DoesNotAccessMemory,
  /* x86_sse2_psrli_q */ DoesNotAccessMemory,
  /* x86_sse2_psrli_w */ DoesNotAccessMemory,
  /* x86_sse2_psubs_b */ DoesNotAccessMemory,
  /* x86_sse2_psubs_w */ DoesNotAccessMemory,
  /* x86_sse2_psubus_b */ DoesNotAccessMemory,
  /* x86_sse2_psubus_w */ DoesNotAccessMemory,
  /* x86_sse2_sqrt_pd */ DoesNotAccessMemory,
  /* x86_sse2_sqrt_sd */ DoesNotAccessMemory,
  /* x86_sse2_storel_dq */ OnlyAccessesArgumentPointees,
  /* x86_sse2_storeu_dq */ OnlyAccessesArgumentPointees,
  /* x86_sse2_storeu_pd */ OnlyAccessesArgumentPointees,
  /* x86_sse2_sub_sd */ DoesNotAccessMemory,
  /* x86_sse2_ucomieq_sd */ DoesNotAccessMemory,
  /* x86_sse2_ucomige_sd */ DoesNotAccessMemory,
  /* x86_sse2_ucomigt_sd */ DoesNotAccessMemory,
  /* x86_sse2_ucomile_sd */ DoesNotAccessMemory,
  /* x86_sse2_ucomilt_sd */ DoesNotAccessMemory,
  /* x86_sse2_ucomineq_sd */ DoesNotAccessMemory,
  /* x86_sse3_addsub_pd */ DoesNotAccessMemory,
  /* x86_sse3_addsub_ps */ DoesNotAccessMemory,
  /* x86_sse3_hadd_pd */ DoesNotAccessMemory,
  /* x86_sse3_hadd_ps */ DoesNotAccessMemory,
  /* x86_sse3_hsub_pd */ DoesNotAccessMemory,
  /* x86_sse3_hsub_ps */ DoesNotAccessMemory,
  /* x86_sse3_ldu_dq */ OnlyReadsMemory,
  /* x86_sse3_monitor */ UnknownModRefBehavior,
  /* x86_sse3_mwait */ UnknownModRefBehavior,
  /* x86_sse41_blendpd */ DoesNotAccessMemory,
  /* x86_sse41_blendps */ DoesNotAccessMemory,
  /* x86_sse41_blendvpd */ DoesNotAccessMemory,
  /* x86_sse41_blendvps */ DoesNotAccessMemory,
  /* x86_sse41_dppd */ DoesNotAccessMemory,
  /* x86_sse41_dpps */ DoesNotAccessMemory,
  /* x86_sse41_extractps */ DoesNotAccessMemory,
  /* x86_sse41_insertps */ DoesNotAccessMemory,
  /* x86_sse41_movntdqa */ OnlyReadsMemory,
  /* x86_sse41_mpsadbw */ DoesNotAccessMemory,
  /* x86_sse41_packusdw */ DoesNotAccessMemory,
  /* x86_sse41_pblendvb */ DoesNotAccessMemory,
  /* x86_sse41_pblendw */ DoesNotAccessMemory,
  /* x86_sse41_pextrb */ DoesNotAccessMemory,
  /* x86_sse41_pextrd */ DoesNotAccessMemory,
  /* x86_sse41_pextrq */ DoesNotAccessMemory,
  /* x86_sse41_phminposuw */ DoesNotAccessMemory,
  /* x86_sse41_pmaxsb */ DoesNotAccessMemory,
  /* x86_sse41_pmaxsd */ DoesNotAccessMemory,
  /* x86_sse41_pmaxud */ DoesNotAccessMemory,
  /* x86_sse41_pmaxuw */ DoesNotAccessMemory,
  /* x86_sse41_pminsb */ DoesNotAccessMemory,
  /* x86_sse41_pminsd */ DoesNotAccessMemory,
  /* x86_sse41_pminud */ DoesNotAccessMemory,
  /* x86_sse41_pminuw */ DoesNotAccessMemory,
  /* x86_sse41_pmovsxbd */ DoesNotAccessMemory,
  /* x86_sse41_pmovsxbq */ DoesNotAccessMemory,
  /* x86_sse41_pmovsxbw */ DoesNotAccessMemory,
  /* x86_sse41_pmovsxdq */ DoesNotAccessMemory,
  /* x86_sse41_pmovsxwd */ DoesNotAccessMemory,
  /* x86_sse41_pmovsxwq */ DoesNotAccessMemory,
  /* x86_sse41_pmovzxbd */ DoesNotAccessMemory,
  /* x86_sse41_pmovzxbq */ DoesNotAccessMemory,
  /* x86_sse41_pmovzxbw */ DoesNotAccessMemory,
  /* x86_sse41_pmovzxdq */ DoesNotAccessMemory,
  /* x86_sse41_pmovzxwd */ DoesNotAccessMemory,
  /* x86_sse41_pmovzxwq */ DoesNotAccessMemory,
  /* x86_sse41_pmuldq */ DoesNotAccessMemory,
  /* x86_sse41_ptestc */ DoesNotAccessMemory,
  /* x86_sse41_ptestnzc */ DoesNotAccessMemory,
  /* x86_sse41_ptestz */ DoesNotAccessMemory,
  /* x86_sse41_round_pd */ DoesNotAccessMemory,
  /* x86_sse41_round_ps */ DoesNotAccessMemory,
  /* x86_sse41_round_sd */ DoesNotAccessMemory,
  /* x86_sse41_round_ss */ DoesNotAccessMemory,
  /* x86_sse42_crc32_32_16 */ DoesNotAccessMemory,
  /* x86_sse42_crc32_32_32 */ DoesNotAccessMemory,
  /* x86_sse42_crc32_32_8 */ DoesNotAccessMemory,
  /* x86_sse42_crc32_64_64 */ DoesNotAccessMemory,
  /* x86_sse42_crc32_64_8 */ DoesNotAccessMemory,
  /* x86_sse42_pcmpestri128 */ DoesNotAccessMemory,
  /* x86_sse42_pcmpestria128 */ DoesNotAccessMemory,
  /* x86_sse42_pcmpestric128 */ DoesNotAccessMemory,
  /* x86_sse42_pcmpestrio128 */ DoesNotAccessMemory,
  /* x86_sse42_pcmpestris128 */ DoesNotAccessMemory,
  /* x86_sse42_pcmpestriz128 */ DoesNotAccessMemory,
  /* x86_sse42_pcmpestrm128 */ DoesNotAccessMemory,
  /* x86_sse42_pcmpistri128 */ DoesNotAccessMemory,
  /* x86_sse42_pcmpistria128 */ DoesNotAccessMemory,
  /* x86_sse42_pcmpistric128 */ DoesNotAccessMemory,
  /* x86_sse42_pcmpistrio128 */ DoesNotAccessMemory,
  /* x86_sse42_pcmpistris128 */ DoesNotAccessMemory,
  /* x86_sse42_pcmpistriz128 */ DoesNotAccessMemory,
  /* x86_sse42_pcmpistrm128 */ DoesNotAccessMemory,
  /* x86_sse4a_extrq */ DoesNotAccessMemory,
  /* x86_sse4a_extrqi */ DoesNotAccessMemory,
  /* x86_sse4a_insertq */ DoesNotAccessMemory,
  /* x86_sse4a_insertqi */ DoesNotAccessMemory,
  /* x86_sse4a_movnt_sd */ UnknownModRefBehavior,
  /* x86_sse4a_movnt_ss */ UnknownModRefBehavior,
  /* x86_sse_add_ss */ DoesNotAccessMemory,
  /* x86_sse_cmp_ps */ DoesNotAccessMemory,
  /* x86_sse_cmp_ss */ DoesNotAccessMemory,
  /* x86_sse_comieq_ss */ DoesNotAccessMemory,
  /* x86_sse_comige_ss */ DoesNotAccessMemory,
  /* x86_sse_comigt_ss */ DoesNotAccessMemory,
  /* x86_sse_comile_ss */ DoesNotAccessMemory,
  /* x86_sse_comilt_ss */ DoesNotAccessMemory,
  /* x86_sse_comineq_ss */ DoesNotAccessMemory,
  /* x86_sse_cvtpd2pi */ DoesNotAccessMemory,
  /* x86_sse_cvtpi2pd */ DoesNotAccessMemory,
  /* x86_sse_cvtpi2ps */ DoesNotAccessMemory,
  /* x86_sse_cvtps2pi */ DoesNotAccessMemory,
  /* x86_sse_cvtsi2ss */ DoesNotAccessMemory,
  /* x86_sse_cvtsi642ss */ DoesNotAccessMemory,
  /* x86_sse_cvtss2si */ DoesNotAccessMemory,
  /* x86_sse_cvtss2si64 */ DoesNotAccessMemory,
  /* x86_sse_cvttpd2pi */ DoesNotAccessMemory,
  /* x86_sse_cvttps2pi */ DoesNotAccessMemory,
  /* x86_sse_cvttss2si */ DoesNotAccessMemory,
  /* x86_sse_cvttss2si64 */ DoesNotAccessMemory,
  /* x86_sse_div_ss */ DoesNotAccessMemory,
  /* x86_sse_ldmxcsr */ UnknownModRefBehavior,
  /* x86_sse_max_ps */ DoesNotAccessMemory,
  /* x86_sse_max_ss */ DoesNotAccessMemory,
  /* x86_sse_min_ps */ DoesNotAccessMemory,
  /* x86_sse_min_ss */ DoesNotAccessMemory,
  /* x86_sse_movmsk_ps */ DoesNotAccessMemory,
  /* x86_sse_mul_ss */ DoesNotAccessMemory,
  /* x86_sse_pshuf_w */ DoesNotAccessMemory,
  /* x86_sse_rcp_ps */ DoesNotAccessMemory,
  /* x86_sse_rcp_ss */ DoesNotAccessMemory,
  /* x86_sse_rsqrt_ps */ DoesNotAccessMemory,
  /* x86_sse_rsqrt_ss */ DoesNotAccessMemory,
  /* x86_sse_sfence */ UnknownModRefBehavior,
  /* x86_sse_sqrt_ps */ DoesNotAccessMemory,
  /* x86_sse_sqrt_ss */ DoesNotAccessMemory,
  /* x86_sse_stmxcsr */ UnknownModRefBehavior,
  /* x86_sse_storeu_ps */ OnlyAccessesArgumentPointees,
  /* x86_sse_sub_ss */ DoesNotAccessMemory,
  /* x86_sse_ucomieq_ss */ DoesNotAccessMemory,
  /* x86_sse_ucomige_ss */ DoesNotAccessMemory,
  /* x86_sse_ucomigt_ss */ DoesNotAccessMemory,
  /* x86_sse_ucomile_ss */ DoesNotAccessMemory,
  /* x86_sse_ucomilt_ss */ DoesNotAccessMemory,
  /* x86_sse_ucomineq_ss */ DoesNotAccessMemory,
  /* x86_ssse3_pabs_b */ DoesNotAccessMemory,
  /* x86_ssse3_pabs_b_128 */ DoesNotAccessMemory,
  /* x86_ssse3_pabs_d */ DoesNotAccessMemory,
  /* x86_ssse3_pabs_d_128 */ DoesNotAccessMemory,
  /* x86_ssse3_pabs_w */ DoesNotAccessMemory,
  /* x86_ssse3_pabs_w_128 */ DoesNotAccessMemory,
  /* x86_ssse3_phadd_d */ DoesNotAccessMemory,
  /* x86_ssse3_phadd_d_128 */ DoesNotAccessMemory,
  /* x86_ssse3_phadd_sw */ DoesNotAccessMemory,
  /* x86_ssse3_phadd_sw_128 */ DoesNotAccessMemory,
  /* x86_ssse3_phadd_w */ DoesNotAccessMemory,
  /* x86_ssse3_phadd_w_128 */ DoesNotAccessMemory,
  /* x86_ssse3_phsub_d */ DoesNotAccessMemory,
  /* x86_ssse3_phsub_d_128 */ DoesNotAccessMemory,
  /* x86_ssse3_phsub_sw */ DoesNotAccessMemory,
  /* x86_ssse3_phsub_sw_128 */ DoesNotAccessMemory,
  /* x86_ssse3_phsub_w */ DoesNotAccessMemory,
  /* x86_ssse3_phsub_w_128 */ DoesNotAccessMemory,
  /* x86_ssse3_pmadd_ub_sw */ DoesNotAccessMemory,
  /* x86_ssse3_pmadd_ub_sw_128 */ DoesNotAccessMemory,
  /* x86_ssse3_pmul_hr_sw */ DoesNotAccessMemory,
  /* x86_ssse3_pmul_hr_sw_128 */ DoesNotAccessMemory,
  /* x86_ssse3_pshuf_b */ DoesNotAccessMemory,
  /* x86_ssse3_pshuf_b_128 */ DoesNotAccessMemory,
  /* x86_ssse3_psign_b */ DoesNotAccessMemory,
  /* x86_ssse3_psign_b_128 */ DoesNotAccessMemory,
  /* x86_ssse3_psign_d */ DoesNotAccessMemory,
  /* x86_ssse3_psign_d_128 */ DoesNotAccessMemory,
  /* x86_ssse3_psign_w */ DoesNotAccessMemory,
  /* x86_ssse3_psign_w_128 */ DoesNotAccessMemory,
  /* x86_vcvtph2ps_128 */ DoesNotAccessMemory,
  /* x86_vcvtph2ps_256 */ DoesNotAccessMemory,
  /* x86_vcvtps2ph_128 */ DoesNotAccessMemory,
  /* x86_vcvtps2ph_256 */ DoesNotAccessMemory,
  /* x86_wrfsbase_32 */ UnknownModRefBehavior,
  /* x86_wrfsbase_64 */ UnknownModRefBehavior,
  /* x86_wrgsbase_32 */ UnknownModRefBehavior,
  /* x86_wrgsbase_64 */ UnknownModRefBehavior,
  /* x86_xop_vfrcz_pd */ DoesNotAccessMemory,
  /* x86_xop_vfrcz_pd_256 */ DoesNotAccessMemory,
  /* x86_xop_vfrcz_ps */ DoesNotAccessMemory,
  /* x86_xop_vfrcz_ps_256 */ DoesNotAccessMemory,
  /* x86_xop_vfrcz_sd */ DoesNotAccessMemory,
  /* x86_xop_vfrcz_ss */ DoesNotAccessMemory,
  /* x86_xop_vpcmov */ DoesNotAccessMemory,
  /* x86_xop_vpcmov_256 */ DoesNotAccessMemory,
  /* x86_xop_vpcomb */ DoesNotAccessMemory,
  /* x86_xop_vpcomd */ DoesNotAccessMemory,
  /* x86_xop_vpcomq */ DoesNotAccessMemory,
  /* x86_xop_vpcomub */ DoesNotAccessMemory,
  /* x86_xop_vpcomud */ DoesNotAccessMemory,
  /* x86_xop_vpcomuq */ DoesNotAccessMemory,
  /* x86_xop_vpcomuw */ DoesNotAccessMemory,
  /* x86_xop_vpcomw */ DoesNotAccessMemory,
  /* x86_xop_vpermil2pd */ DoesNotAccessMemory,
  /* x86_xop_vpermil2pd_256 */ DoesNotAccessMemory,
  /* x86_xop_vpermil2ps */ DoesNotAccessMemory,
  /* x86_xop_vpermil2ps_256 */ DoesNotAccessMemory,
  /* x86_xop_vphaddbd */ DoesNotAccessMemory,
  /* x86_xop_vphaddbq */ DoesNotAccessMemory,
  /* x86_xop_vphaddbw */ DoesNotAccessMemory,
  /* x86_xop_vphadddq */ DoesNotAccessMemory,
  /* x86_xop_vphaddubd */ DoesNotAccessMemory,
  /* x86_xop_vphaddubq */ DoesNotAccessMemory,
  /* x86_xop_vphaddubw */ DoesNotAccessMemory,
  /* x86_xop_vphaddudq */ DoesNotAccessMemory,
  /* x86_xop_vphadduwd */ DoesNotAccessMemory,
  /* x86_xop_vphadduwq */ DoesNotAccessMemory,
  /* x86_xop_vphaddwd */ DoesNotAccessMemory,
  /* x86_xop_vphaddwq */ DoesNotAccessMemory,
  /* x86_xop_vphsubbw */ DoesNotAccessMemory,
  /* x86_xop_vphsubdq */ DoesNotAccessMemory,
  /* x86_xop_vphsubwd */ DoesNotAccessMemory,
  /* x86_xop_vpmacsdd */ DoesNotAccessMemory,
  /* x86_xop_vpmacsdqh */ DoesNotAccessMemory,
  /* x86_xop_vpmacsdql */ DoesNotAccessMemory,
  /* x86_xop_vpmacssdd */ DoesNotAccessMemory,
  /* x86_xop_vpmacssdqh */ DoesNotAccessMemory,
  /* x86_xop_vpmacssdql */ DoesNotAccessMemory,
  /* x86_xop_vpmacsswd */ DoesNotAccessMemory,
  /* x86_xop_vpmacssww */ DoesNotAccessMemory,
  /* x86_xop_vpmacswd */ DoesNotAccessMemory,
  /* x86_xop_vpmacsww */ DoesNotAccessMemory,
  /* x86_xop_vpmadcsswd */ DoesNotAccessMemory,
  /* x86_xop_vpmadcswd */ DoesNotAccessMemory,
  /* x86_xop_vpperm */ DoesNotAccessMemory,
  /* x86_xop_vprotb */ DoesNotAccessMemory,
  /* x86_xop_vprotbi */ DoesNotAccessMemory,
  /* x86_xop_vprotd */ DoesNotAccessMemory,
  /* x86_xop_vprotdi */ DoesNotAccessMemory,
  /* x86_xop_vprotq */ DoesNotAccessMemory,
  /* x86_xop_vprotqi */ DoesNotAccessMemory,
  /* x86_xop_vprotw */ DoesNotAccessMemory,
  /* x86_xop_vprotwi */ DoesNotAccessMemory,
  /* x86_xop_vpshab */ DoesNotAccessMemory,
  /* x86_xop_vpshad */ DoesNotAccessMemory,
  /* x86_xop_vpshaq */ DoesNotAccessMemory,
  /* x86_xop_vpshaw */ DoesNotAccessMemory,
  /* x86_xop_vpshlb */ DoesNotAccessMemory,
  /* x86_xop_vpshld */ DoesNotAccessMemory,
  /* x86_xop_vpshlq */ DoesNotAccessMemory,
  /* x86_xop_vpshlw */ DoesNotAccessMemory,
  /* xcore_bitrev */ DoesNotAccessMemory,
  /* xcore_checkevent */ UnknownModRefBehavior,
  /* xcore_chkct */ UnknownModRefBehavior,
  /* xcore_clre */ UnknownModRefBehavior,
  /* xcore_clrsr */ UnknownModRefBehavior,
  /* xcore_crc32 */ DoesNotAccessMemory,
  /* xcore_crc8 */ DoesNotAccessMemory,
  /* xcore_eeu */ UnknownModRefBehavior,
  /* xcore_endin */ UnknownModRefBehavior,
  /* xcore_freer */ UnknownModRefBehavior,
  /* xcore_geted */ UnknownModRefBehavior,
  /* xcore_getet */ UnknownModRefBehavior,
  /* xcore_getid */ DoesNotAccessMemory,
  /* xcore_getps */ UnknownModRefBehavior,
  /* xcore_getr */ UnknownModRefBehavior,
  /* xcore_getst */ UnknownModRefBehavior,
  /* xcore_getts */ UnknownModRefBehavior,
  /* xcore_in */ UnknownModRefBehavior,
  /* xcore_inct */ UnknownModRefBehavior,
  /* xcore_initcp */ UnknownModRefBehavior,
  /* xcore_initdp */ UnknownModRefBehavior,
  /* xcore_initlr */ UnknownModRefBehavior,
  /* xcore_initpc */ UnknownModRefBehavior,
  /* xcore_initsp */ UnknownModRefBehavior,
  /* xcore_inshr */ UnknownModRefBehavior,
  /* xcore_int */ UnknownModRefBehavior,
  /* xcore_mjoin */ UnknownModRefBehavior,
  /* xcore_msync */ UnknownModRefBehavior,
  /* xcore_out */ UnknownModRefBehavior,
  /* xcore_outct */ UnknownModRefBehavior,
  /* xcore_outshr */ UnknownModRefBehavior,
  /* xcore_outt */ UnknownModRefBehavior,
  /* xcore_peek */ UnknownModRefBehavior,
  /* xcore_setc */ UnknownModRefBehavior,
  /* xcore_setclk */ UnknownModRefBehavior,
  /* xcore_setd */ UnknownModRefBehavior,
  /* xcore_setev */ UnknownModRefBehavior,
  /* xcore_setps */ UnknownModRefBehavior,
  /* xcore_setpsc */ UnknownModRefBehavior,
  /* xcore_setpt */ UnknownModRefBehavior,
  /* xcore_setrdy */ UnknownModRefBehavior,
  /* xcore_setsr */ UnknownModRefBehavior,
  /* xcore_settw */ UnknownModRefBehavior,
  /* xcore_setv */ UnknownModRefBehavior,
  /* xcore_sext */ DoesNotAccessMemory,
  /* xcore_ssync */ UnknownModRefBehavior,
  /* xcore_syncr */ UnknownModRefBehavior,
  /* xcore_testct */ UnknownModRefBehavior,
  /* xcore_testwct */ UnknownModRefBehavior,
  /* xcore_waitevent */ OnlyReadsMemory,
  /* xcore_zext */ DoesNotAccessMemory,
};

return static_cast<ModRefBehavior>(IntrinsicModRefBehavior[iid]);
#endif // GET_INTRINSIC_MODREF_BEHAVIOR

// Get the LLVM intrinsic that corresponds to a GCC builtin.
// This is used by the C front-end.  The GCC builtin name is passed
// in as BuiltinName, and a target prefix (e.g. 'ppc') is passed
// in as TargetPrefix.  The result is assigned to 'IntrinsicID'.
#ifdef GET_LLVM_INTRINSIC_FOR_GCC_BUILTIN
Intrinsic::ID Intrinsic::getIntrinsicForGCCBuiltin(const char *TargetPrefixStr, const char *BuiltinNameStr) {
  StringRef BuiltinName(BuiltinNameStr);
  StringRef TargetPrefix(TargetPrefixStr);

  /* Target Independent Builtins */ {
  switch (BuiltinName.size()) {
  default: break;
  case 10:	 // 1 string to match.
    if (memcmp(BuiltinName.data()+0, "__nvvm_h2f", 10))
      break;
    return Intrinsic::nvvm_h2f;	 // "__nvvm_h2f"
  case 11:	 // 2 strings to match.
    if (memcmp(BuiltinName.data()+0, "__nvvm_", 7))
      break;
    switch (BuiltinName[7]) {
    default: break;
    case 'b':	 // 1 string to match.
      if (memcmp(BuiltinName.data()+8, "ar0", 3))
        break;
      return Intrinsic::nvvm_barrier0;	 // "__nvvm_bar0"
    case 'p':	 // 1 string to match.
      if (memcmp(BuiltinName.data()+8, "rmt", 3))
        break;
      return Intrinsic::nvvm_prmt;	 // "__nvvm_prmt"
    }
    break;
  case 12:	 // 5 strings to match.
    if (memcmp(BuiltinName.data()+0, "__nvvm_", 7))
      break;
    switch (BuiltinName[7]) {
    default: break;
    case 'a':	 // 1 string to match.
      if (memcmp(BuiltinName.data()+8, "bs_i", 4))
        break;
      return Intrinsic::nvvm_abs_i;	 // "__nvvm_abs_i"
    case 'c':	 // 1 string to match.
      if (memcmp(BuiltinName.data()+8, "lz_i", 4))
        break;
      return Intrinsic::nvvm_clz_i;	 // "__nvvm_clz_i"
    case 'm':	 // 2 strings to match.
      switch (BuiltinName[8]) {
      default: break;
      case 'a':	 // 1 string to match.
        if (memcmp(BuiltinName.data()+9, "x_i", 3))
          break;
        return Intrinsic::nvvm_max_i;	 // "__nvvm_max_i"
      case 'i':	 // 1 string to match.
        if (memcmp(BuiltinName.data()+9, "n_i", 3))
          break;
        return Intrinsic::nvvm_min_i;	 // "__nvvm_min_i"
      }
      break;
    case 's':	 // 1 string to match.
      if (memcmp(BuiltinName.data()+8, "ad_i", 4))
        break;
      return Intrinsic::nvvm_sad_i;	 // "__nvvm_sad_i"
    }
    break;
  case 13:	 // 42 strings to match.
    if (memcmp(BuiltinName.data()+0, "__", 2))
      break;
    switch (BuiltinName[2]) {
    default: break;
    case 'n':	 // 41 strings to match.
      if (memcmp(BuiltinName.data()+3, "vvm_", 4))
        break;
      switch (BuiltinName[7]) {
      default: break;
      case 'a':	 // 1 string to match.
        if (memcmp(BuiltinName.data()+8, "bs_ll", 5))
          break;
        return Intrinsic::nvvm_abs_ll;	 // "__nvvm_abs_ll"
      case 'b':	 // 2 strings to match.
        if (memcmp(BuiltinName.data()+8, "rev", 3))
          break;
        switch (BuiltinName[11]) {
        default: break;
        case '3':	 // 1 string to match.
          if (BuiltinName[12] != '2')
            break;
          return Intrinsic::nvvm_brev32;	 // "__nvvm_brev32"
        case '6':	 // 1 string to match.
          if (BuiltinName[12] != '4')
            break;
          return Intrinsic::nvvm_brev64;	 // "__nvvm_brev64"
        }
        break;
      case 'c':	 // 3 strings to match.
        switch (BuiltinName[8]) {
        default: break;
        case 'e':	 // 2 strings to match.
          if (memcmp(BuiltinName.data()+9, "il_", 3))
            break;
          switch (BuiltinName[12]) {
          default: break;
          case 'd':	 // 1 string to match.
            return Intrinsic::nvvm_ceil_d;	 // "__nvvm_ceil_d"
          case 'f':	 // 1 string to match.
            return Intrinsic::nvvm_ceil_f;	 // "__nvvm_ceil_f"
          }
          break;
        case 'l':	 // 1 string to match.
          if (memcmp(BuiltinName.data()+9, "z_ll", 4))
            break;
          return Intrinsic::nvvm_clz_ll;	 // "__nvvm_clz_ll"
        }
        break;
      case 'd':	 // 10 strings to match.
        if (BuiltinName[8] != '2')
          break;
        switch (BuiltinName[9]) {
        default: break;
        case 'f':	 // 4 strings to match.
          if (memcmp(BuiltinName.data()+10, "_r", 2))
            break;
          switch (BuiltinName[12]) {
          default: break;
          case 'm':	 // 1 string to match.
            return Intrinsic::nvvm_d2f_rm;	 // "__nvvm_d2f_rm"
          case 'n':	 // 1 string to match.
            return Intrinsic::nvvm_d2f_rn;	 // "__nvvm_d2f_rn"
          case 'p':	 // 1 string to match.
            return Intrinsic::nvvm_d2f_rp;	 // "__nvvm_d2f_rp"
          case 'z':	 // 1 string to match.
            return Intrinsic::nvvm_d2f_rz;	 // "__nvvm_d2f_rz"
          }
          break;
        case 'i':	 // 6 strings to match.
          if (BuiltinName[10] != '_')
            break;
          switch (BuiltinName[11]) {
          default: break;
          case 'h':	 // 1 string to match.
            if (BuiltinName[12] != 'i')
              break;
            return Intrinsic::nvvm_d2i_hi;	 // "__nvvm_d2i_hi"
          case 'l':	 // 1 string to match.
            if (BuiltinName[12] != 'o')
              break;
            return Intrinsic::nvvm_d2i_lo;	 // "__nvvm_d2i_lo"
          case 'r':	 // 4 strings to match.
            switch (BuiltinName[12]) {
            default: break;
            case 'm':	 // 1 string to match.
              return Intrinsic::nvvm_d2i_rm;	 // "__nvvm_d2i_rm"
            case 'n':	 // 1 string to match.
              return Intrinsic::nvvm_d2i_rn;	 // "__nvvm_d2i_rn"
            case 'p':	 // 1 string to match.
              return Intrinsic::nvvm_d2i_rp;	 // "__nvvm_d2i_rp"
            case 'z':	 // 1 string to match.
              return Intrinsic::nvvm_d2i_rz;	 // "__nvvm_d2i_rz"
            }
            break;
          }
          break;
        }
        break;
      case 'f':	 // 11 strings to match.
        switch (BuiltinName[8]) {
        default: break;
        case '2':	 // 5 strings to match.
          switch (BuiltinName[9]) {
          default: break;
          case 'h':	 // 1 string to match.
            if (memcmp(BuiltinName.data()+10, "_rn", 3))
              break;
            return Intrinsic::nvvm_f2h_rn;	 // "__nvvm_f2h_rn"
          case 'i':	 // 4 strings to match.
            if (memcmp(BuiltinName.data()+10, "_r", 2))
              break;
            switch (BuiltinName[12]) {
            default: break;
            case 'm':	 // 1 string to match.
              return Intrinsic::nvvm_f2i_rm;	 // "__nvvm_f2i_rm"
            case 'n':	 // 1 string to match.
              return Intrinsic::nvvm_f2i_rn;	 // "__nvvm_f2i_rn"
            case 'p':	 // 1 string to match.
              return Intrinsic::nvvm_f2i_rp;	 // "__nvvm_f2i_rp"
            case 'z':	 // 1 string to match.
              return Intrinsic::nvvm_f2i_rz;	 // "__nvvm_f2i_rz"
            }
            break;
          }
          break;
        case 'a':	 // 2 strings to match.
          if (memcmp(BuiltinName.data()+9, "bs_", 3))
            break;
          switch (BuiltinName[12]) {
          default: break;
          case 'd':	 // 1 string to match.
            return Intrinsic::nvvm_fabs_d;	 // "__nvvm_fabs_d"
          case 'f':	 // 1 string to match.
            return Intrinsic::nvvm_fabs_f;	 // "__nvvm_fabs_f"
          }
          break;
        case 'm':	 // 4 strings to match.
          switch (BuiltinName[9]) {
          default: break;
          case 'a':	 // 2 strings to match.
            if (memcmp(BuiltinName.data()+10, "x_", 2))
              break;
            switch (BuiltinName[12]) {
            default: break;
            case 'd':	 // 1 string to match.
              return Intrinsic::nvvm_fmax_d;	 // "__nvvm_fmax_d"
            case 'f':	 // 1 string to match.
              return Intrinsic::nvvm_fmax_f;	 // "__nvvm_fmax_f"
            }
            break;
          case 'i':	 // 2 strings to match.
            if (memcmp(BuiltinName.data()+10, "n_", 2))
              break;
            switch (BuiltinName[12]) {
            default: break;
            case 'd':	 // 1 string to match.
              return Intrinsic::nvvm_fmin_d;	 // "__nvvm_fmin_d"
            case 'f':	 // 1 string to match.
              return Intrinsic::nvvm_fmin_f;	 // "__nvvm_fmin_f"
            }
            break;
          }
          break;
        }
        break;
      case 'i':	 // 8 strings to match.
        if (BuiltinName[8] != '2')
          break;
        switch (BuiltinName[9]) {
        default: break;
        case 'd':	 // 4 strings to match.
          if (memcmp(BuiltinName.data()+10, "_r", 2))
            break;
          switch (BuiltinName[12]) {
          default: break;
          case 'm':	 // 1 string to match.
            return Intrinsic::nvvm_i2d_rm;	 // "__nvvm_i2d_rm"
          case 'n':	 // 1 string to match.
            return Intrinsic::nvvm_i2d_rn;	 // "__nvvm_i2d_rn"
          case 'p':	 // 1 string to match.
            return Intrinsic::nvvm_i2d_rp;	 // "__nvvm_i2d_rp"
          case 'z':	 // 1 string to match.
            return Intrinsic::nvvm_i2d_rz;	 // "__nvvm_i2d_rz"
          }
          break;
        case 'f':	 // 4 strings to match.
          if (memcmp(BuiltinName.data()+10, "_r", 2))
            break;
          switch (BuiltinName[12]) {
          default: break;
          case 'm':	 // 1 string to match.
            return Intrinsic::nvvm_i2f_rm;	 // "__nvvm_i2f_rm"
          case 'n':	 // 1 string to match.
            return Intrinsic::nvvm_i2f_rn;	 // "__nvvm_i2f_rn"
          case 'p':	 // 1 string to match.
            return Intrinsic::nvvm_i2f_rp;	 // "__nvvm_i2f_rp"
          case 'z':	 // 1 string to match.
            return Intrinsic::nvvm_i2f_rz;	 // "__nvvm_i2f_rz"
          }
          break;
        }
        break;
      case 'm':	 // 4 strings to match.
        switch (BuiltinName[8]) {
        default: break;
        case 'a':	 // 2 strings to match.
          if (memcmp(BuiltinName.data()+9, "x_", 2))
            break;
          switch (BuiltinName[11]) {
          default: break;
          case 'l':	 // 1 string to match.
            if (BuiltinName[12] != 'l')
              break;
            return Intrinsic::nvvm_max_ll;	 // "__nvvm_max_ll"
          case 'u':	 // 1 string to match.
            if (BuiltinName[12] != 'i')
              break;
            return Intrinsic::nvvm_max_ui;	 // "__nvvm_max_ui"
          }
          break;
        case 'i':	 // 2 strings to match.
          if (memcmp(BuiltinName.data()+9, "n_", 2))
            break;
          switch (BuiltinName[11]) {
          default: break;
          case 'l':	 // 1 string to match.
            if (BuiltinName[12] != 'l')
              break;
            return Intrinsic::nvvm_min_ll;	 // "__nvvm_min_ll"
          case 'u':	 // 1 string to match.
            if (BuiltinName[12] != 'i')
              break;
            return Intrinsic::nvvm_min_ui;	 // "__nvvm_min_ui"
          }
          break;
        }
        break;
      case 'p':	 // 1 string to match.
        if (memcmp(BuiltinName.data()+8, "opc_i", 5))
          break;
        return Intrinsic::nvvm_popc_i;	 // "__nvvm_popc_i"
      case 's':	 // 1 string to match.
        if (memcmp(BuiltinName.data()+8, "ad_ui", 5))
          break;
        return Intrinsic::nvvm_sad_ui;	 // "__nvvm_sad_ui"
      }
      break;
    case 's':	 // 1 string to match.
      if (memcmp(BuiltinName.data()+3, "yncthreads", 10))
        break;
      return Intrinsic::cuda_syncthreads;	 // "__syncthreads"
    }
    break;
  case 14:	 // 47 strings to match.
    if (memcmp(BuiltinName.data()+0, "__", 2))
      break;
    switch (BuiltinName[2]) {
    default: break;
    case 'b':	 // 1 string to match.
      if (memcmp(BuiltinName.data()+3, "uiltin_trap", 11))
        break;
      return Intrinsic::trap;	 // "__builtin_trap"
    case 'g':	 // 2 strings to match.
      if (memcmp(BuiltinName.data()+3, "nu_", 3))
        break;
      switch (BuiltinName[6]) {
      default: break;
      case 'f':	 // 1 string to match.
        if (memcmp(BuiltinName.data()+7, "2h_ieee", 7))
          break;
        return Intrinsic::convert_to_fp16;	 // "__gnu_f2h_ieee"
      case 'h':	 // 1 string to match.
        if (memcmp(BuiltinName.data()+7, "2f_ieee", 7))
          break;
        return Intrinsic::convert_from_fp16;	 // "__gnu_h2f_ieee"
      }
      break;
    case 'n':	 // 44 strings to match.
      if (memcmp(BuiltinName.data()+3, "vvm_", 4))
        break;
      switch (BuiltinName[7]) {
      default: break;
      case 'b':	 // 1 string to match.
        if (memcmp(BuiltinName.data()+8, "ar0_or", 6))
          break;
        return Intrinsic::nvvm_barrier0_or;	 // "__nvvm_bar0_or"
      case 'd':	 // 8 strings to match.
        if (BuiltinName[8] != '2')
          break;
        switch (BuiltinName[9]) {
        default: break;
        case 'l':	 // 4 strings to match.
          if (memcmp(BuiltinName.data()+10, "l_r", 3))
            break;
          switch (BuiltinName[13]) {
          default: break;
          case 'm':	 // 1 string to match.
            return Intrinsic::nvvm_d2ll_rm;	 // "__nvvm_d2ll_rm"
          case 'n':	 // 1 string to match.
            return Intrinsic::nvvm_d2ll_rn;	 // "__nvvm_d2ll_rn"
          case 'p':	 // 1 string to match.
            return Intrinsic::nvvm_d2ll_rp;	 // "__nvvm_d2ll_rp"
          case 'z':	 // 1 string to match.
            return Intrinsic::nvvm_d2ll_rz;	 // "__nvvm_d2ll_rz"
          }
          break;
        case 'u':	 // 4 strings to match.
          if (memcmp(BuiltinName.data()+10, "i_r", 3))
            break;
          switch (BuiltinName[13]) {
          default: break;
          case 'm':	 // 1 string to match.
            return Intrinsic::nvvm_d2ui_rm;	 // "__nvvm_d2ui_rm"
          case 'n':	 // 1 string to match.
            return Intrinsic::nvvm_d2ui_rn;	 // "__nvvm_d2ui_rn"
          case 'p':	 // 1 string to match.
            return Intrinsic::nvvm_d2ui_rp;	 // "__nvvm_d2ui_rp"
          case 'z':	 // 1 string to match.
            return Intrinsic::nvvm_d2ui_rz;	 // "__nvvm_d2ui_rz"
          }
          break;
        }
        break;
      case 'f':	 // 10 strings to match.
        switch (BuiltinName[8]) {
        default: break;
        case '2':	 // 8 strings to match.
          switch (BuiltinName[9]) {
          default: break;
          case 'l':	 // 4 strings to match.
            if (memcmp(BuiltinName.data()+10, "l_r", 3))
              break;
            switch (BuiltinName[13]) {
            default: break;
            case 'm':	 // 1 string to match.
              return Intrinsic::nvvm_f2ll_rm;	 // "__nvvm_f2ll_rm"
            case 'n':	 // 1 string to match.
              return Intrinsic::nvvm_f2ll_rn;	 // "__nvvm_f2ll_rn"
            case 'p':	 // 1 string to match.
              return Intrinsic::nvvm_f2ll_rp;	 // "__nvvm_f2ll_rp"
            case 'z':	 // 1 string to match.
              return Intrinsic::nvvm_f2ll_rz;	 // "__nvvm_f2ll_rz"
            }
            break;
          case 'u':	 // 4 strings to match.
            if (memcmp(BuiltinName.data()+10, "i_r", 3))
              break;
            switch (BuiltinName[13]) {
            default: break;
            case 'm':	 // 1 string to match.
              return Intrinsic::nvvm_f2ui_rm;	 // "__nvvm_f2ui_rm"
            case 'n':	 // 1 string to match.
              return Intrinsic::nvvm_f2ui_rn;	 // "__nvvm_f2ui_rn"
            case 'p':	 // 1 string to match.
              return Intrinsic::nvvm_f2ui_rp;	 // "__nvvm_f2ui_rp"
            case 'z':	 // 1 string to match.
              return Intrinsic::nvvm_f2ui_rz;	 // "__nvvm_f2ui_rz"
            }
            break;
          }
          break;
        case 'l':	 // 2 strings to match.
          if (memcmp(BuiltinName.data()+9, "oor_", 4))
            break;
          switch (BuiltinName[13]) {
          default: break;
          case 'd':	 // 1 string to match.
            return Intrinsic::nvvm_floor_d;	 // "__nvvm_floor_d"
          case 'f':	 // 1 string to match.
            return Intrinsic::nvvm_floor_f;	 // "__nvvm_floor_f"
          }
          break;
        }
        break;
      case 'l':	 // 8 strings to match.
        if (memcmp(BuiltinName.data()+8, "l2", 2))
          break;
        switch (BuiltinName[10]) {
        default: break;
        case 'd':	 // 4 strings to match.
          if (memcmp(BuiltinName.data()+11, "_r", 2))
            break;
          switch (BuiltinName[13]) {
          default: break;
          case 'm':	 // 1 string to match.
            return Intrinsic::nvvm_ll2d_rm;	 // "__nvvm_ll2d_rm"
          case 'n':	 // 1 string to match.
            return Intrinsic::nvvm_ll2d_rn;	 // "__nvvm_ll2d_rn"
          case 'p':	 // 1 string to match.
            return Intrinsic::nvvm_ll2d_rp;	 // "__nvvm_ll2d_rp"
          case 'z':	 // 1 string to match.
            return Intrinsic::nvvm_ll2d_rz;	 // "__nvvm_ll2d_rz"
          }
          break;
        case 'f':	 // 4 strings to match.
          if (memcmp(BuiltinName.data()+11, "_r", 2))
            break;
          switch (BuiltinName[13]) {
          default: break;
          case 'm':	 // 1 string to match.
            return Intrinsic::nvvm_ll2f_rm;	 // "__nvvm_ll2f_rm"
          case 'n':	 // 1 string to match.
            return Intrinsic::nvvm_ll2f_rn;	 // "__nvvm_ll2f_rn"
          case 'p':	 // 1 string to match.
            return Intrinsic::nvvm_ll2f_rp;	 // "__nvvm_ll2f_rp"
          case 'z':	 // 1 string to match.
            return Intrinsic::nvvm_ll2f_rz;	 // "__nvvm_ll2f_rz"
          }
          break;
        }
        break;
      case 'm':	 // 4 strings to match.
        switch (BuiltinName[8]) {
        default: break;
        case 'a':	 // 1 string to match.
          if (memcmp(BuiltinName.data()+9, "x_ull", 5))
            break;
          return Intrinsic::nvvm_max_ull;	 // "__nvvm_max_ull"
        case 'i':	 // 1 string to match.
          if (memcmp(BuiltinName.data()+9, "n_ull", 5))
            break;
          return Intrinsic::nvvm_min_ull;	 // "__nvvm_min_ull"
        case 'u':	 // 2 strings to match.
          if (BuiltinName[9] != 'l')
            break;
          switch (BuiltinName[10]) {
          default: break;
          case '2':	 // 1 string to match.
            if (memcmp(BuiltinName.data()+11, "4_i", 3))
              break;
            return Intrinsic::nvvm_mul24_i;	 // "__nvvm_mul24_i"
          case 'h':	 // 1 string to match.
            if (memcmp(BuiltinName.data()+11, "i_i", 3))
              break;
            return Intrinsic::nvvm_mulhi_i;	 // "__nvvm_mulhi_i"
          }
          break;
        }
        break;
      case 'p':	 // 1 string to match.
        if (memcmp(BuiltinName.data()+8, "opc_ll", 6))
          break;
        return Intrinsic::nvvm_popc_ll;	 // "__nvvm_popc_ll"
      case 'r':	 // 2 strings to match.
        if (memcmp(BuiltinName.data()+8, "ound_", 5))
          break;
        switch (BuiltinName[13]) {
        default: break;
        case 'd':	 // 1 string to match.
          return Intrinsic::nvvm_round_d;	 // "__nvvm_round_d"
        case 'f':	 // 1 string to match.
          return Intrinsic::nvvm_round_f;	 // "__nvvm_round_f"
        }
        break;
      case 't':	 // 2 strings to match.
        if (memcmp(BuiltinName.data()+8, "runc_", 5))
          break;
        switch (BuiltinName[13]) {
        default: break;
        case 'd':	 // 1 string to match.
          return Intrinsic::nvvm_trunc_d;	 // "__nvvm_trunc_d"
        case 'f':	 // 1 string to match.
          return Intrinsic::nvvm_trunc_f;	 // "__nvvm_trunc_f"
        }
        break;
      case 'u':	 // 8 strings to match.
        if (memcmp(BuiltinName.data()+8, "i2", 2))
          break;
        switch (BuiltinName[10]) {
        default: break;
        case 'd':	 // 4 strings to match.
          if (memcmp(BuiltinName.data()+11, "_r", 2))
            break;
          switch (BuiltinName[13]) {
          default: break;
          case 'm':	 // 1 string to match.
            return Intrinsic::nvvm_ui2d_rm;	 // "__nvvm_ui2d_rm"
          case 'n':	 // 1 string to match.
            return Intrinsic::nvvm_ui2d_rn;	 // "__nvvm_ui2d_rn"
          case 'p':	 // 1 string to match.
            return Intrinsic::nvvm_ui2d_rp;	 // "__nvvm_ui2d_rp"
          case 'z':	 // 1 string to match.
            return Intrinsic::nvvm_ui2d_rz;	 // "__nvvm_ui2d_rz"
          }
          break;
        case 'f':	 // 4 strings to match.
          if (memcmp(BuiltinName.data()+11, "_r", 2))
            break;
          switch (BuiltinName[13]) {
          default: break;
          case 'm':	 // 1 string to match.
            return Intrinsic::nvvm_ui2f_rm;	 // "__nvvm_ui2f_rm"
          case 'n':	 // 1 string to match.
            return Intrinsic::nvvm_ui2f_rn;	 // "__nvvm_ui2f_rn"
          case 'p':	 // 1 string to match.
            return Intrinsic::nvvm_ui2f_rp;	 // "__nvvm_ui2f_rp"
          case 'z':	 // 1 string to match.
            return Intrinsic::nvvm_ui2f_rz;	 // "__nvvm_ui2f_rz"
          }
          break;
        }
        break;
      }
      break;
    }
    break;
  case 15:	 // 61 strings to match.
    if (memcmp(BuiltinName.data()+0, "__nvvm_", 7))
      break;
    switch (BuiltinName[7]) {
    default: break;
    case 'a':	 // 8 strings to match.
      if (memcmp(BuiltinName.data()+8, "dd_r", 4))
        break;
      switch (BuiltinName[12]) {
      default: break;
      case 'm':	 // 2 strings to match.
        if (BuiltinName[13] != '_')
          break;
        switch (BuiltinName[14]) {
        default: break;
        case 'd':	 // 1 string to match.
          return Intrinsic::nvvm_add_rm_d;	 // "__nvvm_add_rm_d"
        case 'f':	 // 1 string to match.
          return Intrinsic::nvvm_add_rm_f;	 // "__nvvm_add_rm_f"
        }
        break;
      case 'n':	 // 2 strings to match.
        if (BuiltinName[13] != '_')
          break;
        switch (BuiltinName[14]) {
        default: break;
        case 'd':	 // 1 string to match.
          return Intrinsic::nvvm_add_rn_d;	 // "__nvvm_add_rn_d"
        case 'f':	 // 1 string to match.
          return Intrinsic::nvvm_add_rn_f;	 // "__nvvm_add_rn_f"
        }
        break;
      case 'p':	 // 2 strings to match.
        if (BuiltinName[13] != '_')
          break;
        switch (BuiltinName[14]) {
        default: break;
        case 'd':	 // 1 string to match.
          return Intrinsic::nvvm_add_rp_d;	 // "__nvvm_add_rp_d"
        case 'f':	 // 1 string to match.
          return Intrinsic::nvvm_add_rp_f;	 // "__nvvm_add_rp_f"
        }
        break;
      case 'z':	 // 2 strings to match.
        if (BuiltinName[13] != '_')
          break;
        switch (BuiltinName[14]) {
        default: break;
        case 'd':	 // 1 string to match.
          return Intrinsic::nvvm_add_rz_d;	 // "__nvvm_add_rz_d"
        case 'f':	 // 1 string to match.
          return Intrinsic::nvvm_add_rz_f;	 // "__nvvm_add_rz_f"
        }
        break;
      }
      break;
    case 'b':	 // 1 string to match.
      if (memcmp(BuiltinName.data()+8, "ar0_and", 7))
        break;
      return Intrinsic::nvvm_barrier0_and;	 // "__nvvm_bar0_and"
    case 'd':	 // 12 strings to match.
      switch (BuiltinName[8]) {
      default: break;
      case '2':	 // 4 strings to match.
        if (memcmp(BuiltinName.data()+9, "ull_r", 5))
          break;
        switch (BuiltinName[14]) {
        default: break;
        case 'm':	 // 1 string to match.
          return Intrinsic::nvvm_d2ull_rm;	 // "__nvvm_d2ull_rm"
        case 'n':	 // 1 string to match.
          return Intrinsic::nvvm_d2ull_rn;	 // "__nvvm_d2ull_rn"
        case 'p':	 // 1 string to match.
          return Intrinsic::nvvm_d2ull_rp;	 // "__nvvm_d2ull_rp"
        case 'z':	 // 1 string to match.
          return Intrinsic::nvvm_d2ull_rz;	 // "__nvvm_d2ull_rz"
        }
        break;
      case 'i':	 // 8 strings to match.
        if (memcmp(BuiltinName.data()+9, "v_r", 3))
          break;
        switch (BuiltinName[12]) {
        default: break;
        case 'm':	 // 2 strings to match.
          if (BuiltinName[13] != '_')
            break;
          switch (BuiltinName[14]) {
          default: break;
          case 'd':	 // 1 string to match.
            return Intrinsic::nvvm_div_rm_d;	 // "__nvvm_div_rm_d"
          case 'f':	 // 1 string to match.
            return Intrinsic::nvvm_div_rm_f;	 // "__nvvm_div_rm_f"
          }
          break;
        case 'n':	 // 2 strings to match.
          if (BuiltinName[13] != '_')
            break;
          switch (BuiltinName[14]) {
          default: break;
          case 'd':	 // 1 string to match.
            return Intrinsic::nvvm_div_rn_d;	 // "__nvvm_div_rn_d"
          case 'f':	 // 1 string to match.
            return Intrinsic::nvvm_div_rn_f;	 // "__nvvm_div_rn_f"
          }
          break;
        case 'p':	 // 2 strings to match.
          if (BuiltinName[13] != '_')
            break;
          switch (BuiltinName[14]) {
          default: break;
          case 'd':	 // 1 string to match.
            return Intrinsic::nvvm_div_rp_d;	 // "__nvvm_div_rp_d"
          case 'f':	 // 1 string to match.
            return Intrinsic::nvvm_div_rp_f;	 // "__nvvm_div_rp_f"
          }
          break;
        case 'z':	 // 2 strings to match.
          if (BuiltinName[13] != '_')
            break;
          switch (BuiltinName[14]) {
          default: break;
          case 'd':	 // 1 string to match.
            return Intrinsic::nvvm_div_rz_d;	 // "__nvvm_div_rz_d"
          case 'f':	 // 1 string to match.
            return Intrinsic::nvvm_div_rz_f;	 // "__nvvm_div_rz_f"
          }
          break;
        }
        break;
      }
      break;
    case 'f':	 // 12 strings to match.
      switch (BuiltinName[8]) {
      default: break;
      case '2':	 // 4 strings to match.
        if (memcmp(BuiltinName.data()+9, "ull_r", 5))
          break;
        switch (BuiltinName[14]) {
        default: break;
        case 'm':	 // 1 string to match.
          return Intrinsic::nvvm_f2ull_rm;	 // "__nvvm_f2ull_rm"
        case 'n':	 // 1 string to match.
          return Intrinsic::nvvm_f2ull_rn;	 // "__nvvm_f2ull_rn"
        case 'p':	 // 1 string to match.
          return Intrinsic::nvvm_f2ull_rp;	 // "__nvvm_f2ull_rp"
        case 'z':	 // 1 string to match.
          return Intrinsic::nvvm_f2ull_rz;	 // "__nvvm_f2ull_rz"
        }
        break;
      case 'm':	 // 8 strings to match.
        if (memcmp(BuiltinName.data()+9, "a_r", 3))
          break;
        switch (BuiltinName[12]) {
        default: break;
        case 'm':	 // 2 strings to match.
          if (BuiltinName[13] != '_')
            break;
          switch (BuiltinName[14]) {
          default: break;
          case 'd':	 // 1 string to match.
            return Intrinsic::nvvm_fma_rm_d;	 // "__nvvm_fma_rm_d"
          case 'f':	 // 1 string to match.
            return Intrinsic::nvvm_fma_rm_f;	 // "__nvvm_fma_rm_f"
          }
          break;
        case 'n':	 // 2 strings to match.
          if (BuiltinName[13] != '_')
            break;
          switch (BuiltinName[14]) {
          default: break;
          case 'd':	 // 1 string to match.
            return Intrinsic::nvvm_fma_rn_d;	 // "__nvvm_fma_rn_d"
          case 'f':	 // 1 string to match.
            return Intrinsic::nvvm_fma_rn_f;	 // "__nvvm_fma_rn_f"
          }
          break;
        case 'p':	 // 2 strings to match.
          if (BuiltinName[13] != '_')
            break;
          switch (BuiltinName[14]) {
          default: break;
          case 'd':	 // 1 string to match.
            return Intrinsic::nvvm_fma_rp_d;	 // "__nvvm_fma_rp_d"
          case 'f':	 // 1 string to match.
            return Intrinsic::nvvm_fma_rp_f;	 // "__nvvm_fma_rp_f"
          }
          break;
        case 'z':	 // 2 strings to match.
          if (BuiltinName[13] != '_')
            break;
          switch (BuiltinName[14]) {
          default: break;
          case 'd':	 // 1 string to match.
            return Intrinsic::nvvm_fma_rz_d;	 // "__nvvm_fma_rz_d"
          case 'f':	 // 1 string to match.
            return Intrinsic::nvvm_fma_rz_f;	 // "__nvvm_fma_rz_f"
          }
          break;
        }
        break;
      }
      break;
    case 'l':	 // 1 string to match.
      if (memcmp(BuiltinName.data()+8, "ohi_i2d", 7))
        break;
      return Intrinsic::nvvm_lohi_i2d;	 // "__nvvm_lohi_i2d"
    case 'm':	 // 11 strings to match.
      if (memcmp(BuiltinName.data()+8, "ul", 2))
        break;
      switch (BuiltinName[10]) {
      default: break;
      case '2':	 // 1 string to match.
        if (memcmp(BuiltinName.data()+11, "4_ui", 4))
          break;
        return Intrinsic::nvvm_mul24_ui;	 // "__nvvm_mul24_ui"
      case '_':	 // 8 strings to match.
        if (BuiltinName[11] != 'r')
          break;
        switch (BuiltinName[12]) {
        default: break;
        case 'm':	 // 2 strings to match.
          if (BuiltinName[13] != '_')
            break;
          switch (BuiltinName[14]) {
          default: break;
          case 'd':	 // 1 string to match.
            return Intrinsic::nvvm_mul_rm_d;	 // "__nvvm_mul_rm_d"
          case 'f':	 // 1 string to match.
            return Intrinsic::nvvm_mul_rm_f;	 // "__nvvm_mul_rm_f"
          }
          break;
        case 'n':	 // 2 strings to match.
          if (BuiltinName[13] != '_')
            break;
          switch (BuiltinName[14]) {
          default: break;
          case 'd':	 // 1 string to match.
            return Intrinsic::nvvm_mul_rn_d;	 // "__nvvm_mul_rn_d"
          case 'f':	 // 1 string to match.
            return Intrinsic::nvvm_mul_rn_f;	 // "__nvvm_mul_rn_f"
          }
          break;
        case 'p':	 // 2 strings to match.
          if (BuiltinName[13] != '_')
            break;
          switch (BuiltinName[14]) {
          default: break;
          case 'd':	 // 1 string to match.
            return Intrinsic::nvvm_mul_rp_d;	 // "__nvvm_mul_rp_d"
          case 'f':	 // 1 string to match.
            return Intrinsic::nvvm_mul_rp_f;	 // "__nvvm_mul_rp_f"
          }
          break;
        case 'z':	 // 2 strings to match.
          if (BuiltinName[13] != '_')
            break;
          switch (BuiltinName[14]) {
          default: break;
          case 'd':	 // 1 string to match.
            return Intrinsic::nvvm_mul_rz_d;	 // "__nvvm_mul_rz_d"
          case 'f':	 // 1 string to match.
            return Intrinsic::nvvm_mul_rz_f;	 // "__nvvm_mul_rz_f"
          }
          break;
        }
        break;
      case 'h':	 // 2 strings to match.
        if (memcmp(BuiltinName.data()+11, "i_", 2))
          break;
        switch (BuiltinName[13]) {
        default: break;
        case 'l':	 // 1 string to match.
          if (BuiltinName[14] != 'l')
            break;
          return Intrinsic::nvvm_mulhi_ll;	 // "__nvvm_mulhi_ll"
        case 'u':	 // 1 string to match.
          if (BuiltinName[14] != 'i')
            break;
          return Intrinsic::nvvm_mulhi_ui;	 // "__nvvm_mulhi_ui"
        }
        break;
      }
      break;
    case 'r':	 // 8 strings to match.
      if (memcmp(BuiltinName.data()+8, "cp_r", 4))
        break;
      switch (BuiltinName[12]) {
      default: break;
      case 'm':	 // 2 strings to match.
        if (BuiltinName[13] != '_')
          break;
        switch (BuiltinName[14]) {
        default: break;
        case 'd':	 // 1 string to match.
          return Intrinsic::nvvm_rcp_rm_d;	 // "__nvvm_rcp_rm_d"
        case 'f':	 // 1 string to match.
          return Intrinsic::nvvm_rcp_rm_f;	 // "__nvvm_rcp_rm_f"
        }
        break;
      case 'n':	 // 2 strings to match.
        if (BuiltinName[13] != '_')
          break;
        switch (BuiltinName[14]) {
        default: break;
        case 'd':	 // 1 string to match.
          return Intrinsic::nvvm_rcp_rn_d;	 // "__nvvm_rcp_rn_d"
        case 'f':	 // 1 string to match.
          return Intrinsic::nvvm_rcp_rn_f;	 // "__nvvm_rcp_rn_f"
        }
        break;
      case 'p':	 // 2 strings to match.
        if (BuiltinName[13] != '_')
          break;
        switch (BuiltinName[14]) {
        default: break;
        case 'd':	 // 1 string to match.
          return Intrinsic::nvvm_rcp_rp_d;	 // "__nvvm_rcp_rp_d"
        case 'f':	 // 1 string to match.
          return Intrinsic::nvvm_rcp_rp_f;	 // "__nvvm_rcp_rp_f"
        }
        break;
      case 'z':	 // 2 strings to match.
        if (BuiltinName[13] != '_')
          break;
        switch (BuiltinName[14]) {
        default: break;
        case 'd':	 // 1 string to match.
          return Intrinsic::nvvm_rcp_rz_d;	 // "__nvvm_rcp_rz_d"
        case 'f':	 // 1 string to match.
          return Intrinsic::nvvm_rcp_rz_f;	 // "__nvvm_rcp_rz_f"
        }
        break;
      }
      break;
    case 'u':	 // 8 strings to match.
      if (memcmp(BuiltinName.data()+8, "ll2", 3))
        break;
      switch (BuiltinName[11]) {
      default: break;
      case 'd':	 // 4 strings to match.
        if (memcmp(BuiltinName.data()+12, "_r", 2))
          break;
        switch (BuiltinName[14]) {
        default: break;
        case 'm':	 // 1 string to match.
          return Intrinsic::nvvm_ull2d_rm;	 // "__nvvm_ull2d_rm"
        case 'n':	 // 1 string to match.
          return Intrinsic::nvvm_ull2d_rn;	 // "__nvvm_ull2d_rn"
        case 'p':	 // 1 string to match.
          return Intrinsic::nvvm_ull2d_rp;	 // "__nvvm_ull2d_rp"
        case 'z':	 // 1 string to match.
          return Intrinsic::nvvm_ull2d_rz;	 // "__nvvm_ull2d_rz"
        }
        break;
      case 'f':	 // 4 strings to match.
        if (memcmp(BuiltinName.data()+12, "_r", 2))
          break;
        switch (BuiltinName[14]) {
        default: break;
        case 'm':	 // 1 string to match.
          return Intrinsic::nvvm_ull2f_rm;	 // "__nvvm_ull2f_rm"
        case 'n':	 // 1 string to match.
          return Intrinsic::nvvm_ull2f_rn;	 // "__nvvm_ull2f_rn"
        case 'p':	 // 1 string to match.
          return Intrinsic::nvvm_ull2f_rp;	 // "__nvvm_ull2f_rp"
        case 'z':	 // 1 string to match.
          return Intrinsic::nvvm_ull2f_rz;	 // "__nvvm_ull2f_rz"
        }
        break;
      }
      break;
    }
    break;
  case 16:	 // 11 strings to match.
    if (memcmp(BuiltinName.data()+0, "__nvvm_", 7))
      break;
    switch (BuiltinName[7]) {
    default: break;
    case 'b':	 // 1 string to match.
      if (memcmp(BuiltinName.data()+8, "ar0_popc", 8))
        break;
      return Intrinsic::nvvm_barrier0_popc;	 // "__nvvm_bar0_popc"
    case 'm':	 // 2 strings to match.
      switch (BuiltinName[8]) {
      default: break;
      case 'e':	 // 1 string to match.
        if (memcmp(BuiltinName.data()+9, "mbar_gl", 7))
          break;
        return Intrinsic::nvvm_membar_gl;	 // "__nvvm_membar_gl"
      case 'u':	 // 1 string to match.
        if (memcmp(BuiltinName.data()+9, "lhi_ull", 7))
          break;
        return Intrinsic::nvvm_mulhi_ull;	 // "__nvvm_mulhi_ull"
      }
      break;
    case 's':	 // 8 strings to match.
      if (memcmp(BuiltinName.data()+8, "qrt_r", 5))
        break;
      switch (BuiltinName[13]) {
      default: break;
      case 'm':	 // 2 strings to match.
        if (BuiltinName[14] != '_')
          break;
        switch (BuiltinName[15]) {
        default: break;
        case 'd':	 // 1 string to match.
          return Intrinsic::nvvm_sqrt_rm_d;	 // "__nvvm_sqrt_rm_d"
        case 'f':	 // 1 string to match.
          return Intrinsic::nvvm_sqrt_rm_f;	 // "__nvvm_sqrt_rm_f"
        }
        break;
      case 'n':	 // 2 strings to match.
        if (BuiltinName[14] != '_')
          break;
        switch (BuiltinName[15]) {
        default: break;
        case 'd':	 // 1 string to match.
          return Intrinsic::nvvm_sqrt_rn_d;	 // "__nvvm_sqrt_rn_d"
        case 'f':	 // 1 string to match.
          return Intrinsic::nvvm_sqrt_rn_f;	 // "__nvvm_sqrt_rn_f"
        }
        break;
      case 'p':	 // 2 strings to match.
        if (BuiltinName[14] != '_')
          break;
        switch (BuiltinName[15]) {
        default: break;
        case 'd':	 // 1 string to match.
          return Intrinsic::nvvm_sqrt_rp_d;	 // "__nvvm_sqrt_rp_d"
        case 'f':	 // 1 string to match.
          return Intrinsic::nvvm_sqrt_rp_f;	 // "__nvvm_sqrt_rp_f"
        }
        break;
      case 'z':	 // 2 strings to match.
        if (BuiltinName[14] != '_')
          break;
        switch (BuiltinName[15]) {
        default: break;
        case 'd':	 // 1 string to match.
          return Intrinsic::nvvm_sqrt_rz_d;	 // "__nvvm_sqrt_rz_d"
        case 'f':	 // 1 string to match.
          return Intrinsic::nvvm_sqrt_rz_f;	 // "__nvvm_sqrt_rz_f"
        }
        break;
      }
      break;
    }
    break;
  case 17:	 // 17 strings to match.
    if (memcmp(BuiltinName.data()+0, "__nvvm_", 7))
      break;
    switch (BuiltinName[7]) {
    default: break;
    case 'c':	 // 1 string to match.
      if (memcmp(BuiltinName.data()+8, "eil_ftz_f", 9))
        break;
      return Intrinsic::nvvm_ceil_ftz_f;	 // "__nvvm_ceil_ftz_f"
    case 'd':	 // 4 strings to match.
      if (memcmp(BuiltinName.data()+8, "2f_r", 4))
        break;
      switch (BuiltinName[12]) {
      default: break;
      case 'm':	 // 1 string to match.
        if (memcmp(BuiltinName.data()+13, "_ftz", 4))
          break;
        return Intrinsic::nvvm_d2f_rm_ftz;	 // "__nvvm_d2f_rm_ftz"
      case 'n':	 // 1 string to match.
        if (memcmp(BuiltinName.data()+13, "_ftz", 4))
          break;
        return Intrinsic::nvvm_d2f_rn_ftz;	 // "__nvvm_d2f_rn_ftz"
      case 'p':	 // 1 string to match.
        if (memcmp(BuiltinName.data()+13, "_ftz", 4))
          break;
        return Intrinsic::nvvm_d2f_rp_ftz;	 // "__nvvm_d2f_rp_ftz"
      case 'z':	 // 1 string to match.
        if (memcmp(BuiltinName.data()+13, "_ftz", 4))
          break;
        return Intrinsic::nvvm_d2f_rz_ftz;	 // "__nvvm_d2f_rz_ftz"
      }
      break;
    case 'f':	 // 8 strings to match.
      switch (BuiltinName[8]) {
      default: break;
      case '2':	 // 5 strings to match.
        switch (BuiltinName[9]) {
        default: break;
        case 'h':	 // 1 string to match.
          if (memcmp(BuiltinName.data()+10, "_rn_ftz", 7))
            break;
          return Intrinsic::nvvm_f2h_rn_ftz;	 // "__nvvm_f2h_rn_ftz"
        case 'i':	 // 4 strings to match.
          if (memcmp(BuiltinName.data()+10, "_r", 2))
            break;
          switch (BuiltinName[12]) {
          default: break;
          case 'm':	 // 1 string to match.
            if (memcmp(BuiltinName.data()+13, "_ftz", 4))
              break;
            return Intrinsic::nvvm_f2i_rm_ftz;	 // "__nvvm_f2i_rm_ftz"
          case 'n':	 // 1 string to match.
            if (memcmp(BuiltinName.data()+13, "_ftz", 4))
              break;
            return Intrinsic::nvvm_f2i_rn_ftz;	 // "__nvvm_f2i_rn_ftz"
          case 'p':	 // 1 string to match.
            if (memcmp(BuiltinName.data()+13, "_ftz", 4))
              break;
            return Intrinsic::nvvm_f2i_rp_ftz;	 // "__nvvm_f2i_rp_ftz"
          case 'z':	 // 1 string to match.
            if (memcmp(BuiltinName.data()+13, "_ftz", 4))
              break;
            return Intrinsic::nvvm_f2i_rz_ftz;	 // "__nvvm_f2i_rz_ftz"
          }
          break;
        }
        break;
      case 'a':	 // 1 string to match.
        if (memcmp(BuiltinName.data()+9, "bs_ftz_f", 8))
          break;
        return Intrinsic::nvvm_fabs_ftz_f;	 // "__nvvm_fabs_ftz_f"
      case 'm':	 // 2 strings to match.
        switch (BuiltinName[9]) {
        default: break;
        case 'a':	 // 1 string to match.
          if (memcmp(BuiltinName.data()+10, "x_ftz_f", 7))
            break;
          return Intrinsic::nvvm_fmax_ftz_f;	 // "__nvvm_fmax_ftz_f"
        case 'i':	 // 1 string to match.
          if (memcmp(BuiltinName.data()+10, "n_ftz_f", 7))
            break;
          return Intrinsic::nvvm_fmin_ftz_f;	 // "__nvvm_fmin_ftz_f"
        }
        break;
      }
      break;
    case 'm':	 // 2 strings to match.
      if (memcmp(BuiltinName.data()+8, "embar_", 6))
        break;
      switch (BuiltinName[14]) {
      default: break;
      case 'c':	 // 1 string to match.
        if (memcmp(BuiltinName.data()+15, "ta", 2))
          break;
        return Intrinsic::nvvm_membar_cta;	 // "__nvvm_membar_cta"
      case 's':	 // 1 string to match.
        if (memcmp(BuiltinName.data()+15, "ys", 2))
          break;
        return Intrinsic::nvvm_membar_sys;	 // "__nvvm_membar_sys"
      }
      break;
    case 's':	 // 2 strings to match.
      if (memcmp(BuiltinName.data()+8, "aturate_", 8))
        break;
      switch (BuiltinName[16]) {
      default: break;
      case 'd':	 // 1 string to match.
        return Intrinsic::nvvm_saturate_d;	 // "__nvvm_saturate_d"
      case 'f':	 // 1 string to match.
        return Intrinsic::nvvm_saturate_f;	 // "__nvvm_saturate_f"
      }
      break;
    }
    break;
  case 18:	 // 13 strings to match.
    if (memcmp(BuiltinName.data()+0, "__nvvm_", 7))
      break;
    switch (BuiltinName[7]) {
    default: break;
    case 'b':	 // 2 strings to match.
      if (memcmp(BuiltinName.data()+8, "itcast_", 7))
        break;
      switch (BuiltinName[15]) {
      default: break;
      case 'f':	 // 1 string to match.
        if (memcmp(BuiltinName.data()+16, "2i", 2))
          break;
        return Intrinsic::nvvm_bitcast_f2i;	 // "__nvvm_bitcast_f2i"
      case 'i':	 // 1 string to match.
        if (memcmp(BuiltinName.data()+16, "2f", 2))
          break;
        return Intrinsic::nvvm_bitcast_i2f;	 // "__nvvm_bitcast_i2f"
      }
      break;
    case 'f':	 // 9 strings to match.
      switch (BuiltinName[8]) {
      default: break;
      case '2':	 // 8 strings to match.
        switch (BuiltinName[9]) {
        default: break;
        case 'l':	 // 4 strings to match.
          if (memcmp(BuiltinName.data()+10, "l_r", 3))
            break;
          switch (BuiltinName[13]) {
          default: break;
          case 'm':	 // 1 string to match.
            if (memcmp(BuiltinName.data()+14, "_ftz", 4))
              break;
            return Intrinsic::nvvm_f2ll_rm_ftz;	 // "__nvvm_f2ll_rm_ftz"
          case 'n':	 // 1 string to match.
            if (memcmp(BuiltinName.data()+14, "_ftz", 4))
              break;
            return Intrinsic::nvvm_f2ll_rn_ftz;	 // "__nvvm_f2ll_rn_ftz"
          case 'p':	 // 1 string to match.
            if (memcmp(BuiltinName.data()+14, "_ftz", 4))
              break;
            return Intrinsic::nvvm_f2ll_rp_ftz;	 // "__nvvm_f2ll_rp_ftz"
          case 'z':	 // 1 string to match.
            if (memcmp(BuiltinName.data()+14, "_ftz", 4))
              break;
            return Intrinsic::nvvm_f2ll_rz_ftz;	 // "__nvvm_f2ll_rz_ftz"
          }
          break;
        case 'u':	 // 4 strings to match.
          if (memcmp(BuiltinName.data()+10, "i_r", 3))
            break;
          switch (BuiltinName[13]) {
          default: break;
          case 'm':	 // 1 string to match.
            if (memcmp(BuiltinName.data()+14, "_ftz", 4))
              break;
            return Intrinsic::nvvm_f2ui_rm_ftz;	 // "__nvvm_f2ui_rm_ftz"
          case 'n':	 // 1 string to match.
            if (memcmp(BuiltinName.data()+14, "_ftz", 4))
              break;
            return Intrinsic::nvvm_f2ui_rn_ftz;	 // "__nvvm_f2ui_rn_ftz"
          case 'p':	 // 1 string to match.
            if (memcmp(BuiltinName.data()+14, "_ftz", 4))
              break;
            return Intrinsic::nvvm_f2ui_rp_ftz;	 // "__nvvm_f2ui_rp_ftz"
          case 'z':	 // 1 string to match.
            if (memcmp(BuiltinName.data()+14, "_ftz", 4))
              break;
            return Intrinsic::nvvm_f2ui_rz_ftz;	 // "__nvvm_f2ui_rz_ftz"
          }
          break;
        }
        break;
      case 'l':	 // 1 string to match.
        if (memcmp(BuiltinName.data()+9, "oor_ftz_f", 9))
          break;
        return Intrinsic::nvvm_floor_ftz_f;	 // "__nvvm_floor_ftz_f"
      }
      break;
    case 'r':	 // 1 string to match.
      if (memcmp(BuiltinName.data()+8, "ound_ftz_f", 10))
        break;
      return Intrinsic::nvvm_round_ftz_f;	 // "__nvvm_round_ftz_f"
    case 't':	 // 1 string to match.
      if (memcmp(BuiltinName.data()+8, "runc_ftz_f", 10))
        break;
      return Intrinsic::nvvm_trunc_ftz_f;	 // "__nvvm_trunc_ftz_f"
    }
    break;
  case 19:	 // 34 strings to match.
    if (memcmp(BuiltinName.data()+0, "__", 2))
      break;
    switch (BuiltinName[2]) {
    default: break;
    case 'b':	 // 1 string to match.
      if (memcmp(BuiltinName.data()+3, "uiltin_debugtrap", 16))
        break;
      return Intrinsic::debugtrap;	 // "__builtin_debugtrap"
    case 'n':	 // 33 strings to match.
      if (memcmp(BuiltinName.data()+3, "vvm_", 4))
        break;
      switch (BuiltinName[7]) {
      default: break;
      case 'a':	 // 4 strings to match.
        if (memcmp(BuiltinName.data()+8, "dd_r", 4))
          break;
        switch (BuiltinName[12]) {
        default: break;
        case 'm':	 // 1 string to match.
          if (memcmp(BuiltinName.data()+13, "_ftz_f", 6))
            break;
          return Intrinsic::nvvm_add_rm_ftz_f;	 // "__nvvm_add_rm_ftz_f"
        case 'n':	 // 1 string to match.
          if (memcmp(BuiltinName.data()+13, "_ftz_f", 6))
            break;
          return Intrinsic::nvvm_add_rn_ftz_f;	 // "__nvvm_add_rn_ftz_f"
        case 'p':	 // 1 string to match.
          if (memcmp(BuiltinName.data()+13, "_ftz_f", 6))
            break;
          return Intrinsic::nvvm_add_rp_ftz_f;	 // "__nvvm_add_rp_ftz_f"
        case 'z':	 // 1 string to match.
          if (memcmp(BuiltinName.data()+13, "_ftz_f", 6))
            break;
          return Intrinsic::nvvm_add_rz_ftz_f;	 // "__nvvm_add_rz_ftz_f"
        }
        break;
      case 'b':	 // 2 strings to match.
        if (memcmp(BuiltinName.data()+8, "itcast_", 7))
          break;
        switch (BuiltinName[15]) {
        default: break;
        case 'd':	 // 1 string to match.
          if (memcmp(BuiltinName.data()+16, "2ll", 3))
            break;
          return Intrinsic::nvvm_bitcast_d2ll;	 // "__nvvm_bitcast_d2ll"
        case 'l':	 // 1 string to match.
          if (memcmp(BuiltinName.data()+16, "l2d", 3))
            break;
          return Intrinsic::nvvm_bitcast_ll2d;	 // "__nvvm_bitcast_ll2d"
        }
        break;
      case 'c':	 // 1 string to match.
        if (memcmp(BuiltinName.data()+8, "os_approx_f", 11))
          break;
        return Intrinsic::nvvm_cos_approx_f;	 // "__nvvm_cos_approx_f"
      case 'd':	 // 5 strings to match.
        if (memcmp(BuiltinName.data()+8, "iv_", 3))
          break;
        switch (BuiltinName[11]) {
        default: break;
        case 'a':	 // 1 string to match.
          if (memcmp(BuiltinName.data()+12, "pprox_f", 7))
            break;
          return Intrinsic::nvvm_div_approx_f;	 // "__nvvm_div_approx_f"
        case 'r':	 // 4 strings to match.
          switch (BuiltinName[12]) {
          default: break;
          case 'm':	 // 1 string to match.
            if (memcmp(BuiltinName.data()+13, "_ftz_f", 6))
              break;
            return Intrinsic::nvvm_div_rm_ftz_f;	 // "__nvvm_div_rm_ftz_f"
          case 'n':	 // 1 string to match.
            if (memcmp(BuiltinName.data()+13, "_ftz_f", 6))
              break;
            return Intrinsic::nvvm_div_rn_ftz_f;	 // "__nvvm_div_rn_ftz_f"
          case 'p':	 // 1 string to match.
            if (memcmp(BuiltinName.data()+13, "_ftz_f", 6))
              break;
            return Intrinsic::nvvm_div_rp_ftz_f;	 // "__nvvm_div_rp_ftz_f"
          case 'z':	 // 1 string to match.
            if (memcmp(BuiltinName.data()+13, "_ftz_f", 6))
              break;
            return Intrinsic::nvvm_div_rz_ftz_f;	 // "__nvvm_div_rz_ftz_f"
          }
          break;
        }
        break;
      case 'e':	 // 2 strings to match.
        if (memcmp(BuiltinName.data()+8, "x2_approx_", 10))
          break;
        switch (BuiltinName[18]) {
        default: break;
        case 'd':	 // 1 string to match.
          return Intrinsic::nvvm_ex2_approx_d;	 // "__nvvm_ex2_approx_d"
        case 'f':	 // 1 string to match.
          return Intrinsic::nvvm_ex2_approx_f;	 // "__nvvm_ex2_approx_f"
        }
        break;
      case 'f':	 // 8 strings to match.
        switch (BuiltinName[8]) {
        default: break;
        case '2':	 // 4 strings to match.
          if (memcmp(BuiltinName.data()+9, "ull_r", 5))
            break;
          switch (BuiltinName[14]) {
          default: break;
          case 'm':	 // 1 string to match.
            if (memcmp(BuiltinName.data()+15, "_ftz", 4))
              break;
            return Intrinsic::nvvm_f2ull_rm_ftz;	 // "__nvvm_f2ull_rm_ftz"
          case 'n':	 // 1 string to match.
            if (memcmp(BuiltinName.data()+15, "_ftz", 4))
              break;
            return Intrinsic::nvvm_f2ull_rn_ftz;	 // "__nvvm_f2ull_rn_ftz"
          case 'p':	 // 1 string to match.
            if (memcmp(BuiltinName.data()+15, "_ftz", 4))
              break;
            return Intrinsic::nvvm_f2ull_rp_ftz;	 // "__nvvm_f2ull_rp_ftz"
          case 'z':	 // 1 string to match.
            if (memcmp(BuiltinName.data()+15, "_ftz", 4))
              break;
            return Intrinsic::nvvm_f2ull_rz_ftz;	 // "__nvvm_f2ull_rz_ftz"
          }
          break;
        case 'm':	 // 4 strings to match.
          if (memcmp(BuiltinName.data()+9, "a_r", 3))
            break;
          switch (BuiltinName[12]) {
          default: break;
          case 'm':	 // 1 string to match.
            if (memcmp(BuiltinName.data()+13, "_ftz_f", 6))
              break;
            return Intrinsic::nvvm_fma_rm_ftz_f;	 // "__nvvm_fma_rm_ftz_f"
          case 'n':	 // 1 string to match.
            if (memcmp(BuiltinName.data()+13, "_ftz_f", 6))
              break;
            return Intrinsic::nvvm_fma_rn_ftz_f;	 // "__nvvm_fma_rn_ftz_f"
          case 'p':	 // 1 string to match.
            if (memcmp(BuiltinName.data()+13, "_ftz_f", 6))
              break;
            return Intrinsic::nvvm_fma_rp_ftz_f;	 // "__nvvm_fma_rp_ftz_f"
          case 'z':	 // 1 string to match.
            if (memcmp(BuiltinName.data()+13, "_ftz_f", 6))
              break;
            return Intrinsic::nvvm_fma_rz_ftz_f;	 // "__nvvm_fma_rz_ftz_f"
          }
          break;
        }
        break;
      case 'l':	 // 2 strings to match.
        if (memcmp(BuiltinName.data()+8, "g2_approx_", 10))
          break;
        switch (BuiltinName[18]) {
        default: break;
        case 'd':	 // 1 string to match.
          return Intrinsic::nvvm_lg2_approx_d;	 // "__nvvm_lg2_approx_d"
        case 'f':	 // 1 string to match.
          return Intrinsic::nvvm_lg2_approx_f;	 // "__nvvm_lg2_approx_f"
        }
        break;
      case 'm':	 // 4 strings to match.
        if (memcmp(BuiltinName.data()+8, "ul_r", 4))
          break;
        switch (BuiltinName[12]) {
        default: break;
        case 'm':	 // 1 string to match.
          if (memcmp(BuiltinName.data()+13, "_ftz_f", 6))
            break;
          return Intrinsic::nvvm_mul_rm_ftz_f;	 // "__nvvm_mul_rm_ftz_f"
        case 'n':	 // 1 string to match.
          if (memcmp(BuiltinName.data()+13, "_ftz_f", 6))
            break;
          return Intrinsic::nvvm_mul_rn_ftz_f;	 // "__nvvm_mul_rn_ftz_f"
        case 'p':	 // 1 string to match.
          if (memcmp(BuiltinName.data()+13, "_ftz_f", 6))
            break;
          return Intrinsic::nvvm_mul_rp_ftz_f;	 // "__nvvm_mul_rp_ftz_f"
        case 'z':	 // 1 string to match.
          if (memcmp(BuiltinName.data()+13, "_ftz_f", 6))
            break;
          return Intrinsic::nvvm_mul_rz_ftz_f;	 // "__nvvm_mul_rz_ftz_f"
        }
        break;
      case 'r':	 // 4 strings to match.
        if (memcmp(BuiltinName.data()+8, "cp_r", 4))
          break;
        switch (BuiltinName[12]) {
        default: break;
        case 'm':	 // 1 string to match.
          if (memcmp(BuiltinName.data()+13, "_ftz_f", 6))
            break;
          return Intrinsic::nvvm_rcp_rm_ftz_f;	 // "__nvvm_rcp_rm_ftz_f"
        case 'n':	 // 1 string to match.
          if (memcmp(BuiltinName.data()+13, "_ftz_f", 6))
            break;
          return Intrinsic::nvvm_rcp_rn_ftz_f;	 // "__nvvm_rcp_rn_ftz_f"
        case 'p':	 // 1 string to match.
          if (memcmp(BuiltinName.data()+13, "_ftz_f", 6))
            break;
          return Intrinsic::nvvm_rcp_rp_ftz_f;	 // "__nvvm_rcp_rp_ftz_f"
        case 'z':	 // 1 string to match.
          if (memcmp(BuiltinName.data()+13, "_ftz_f", 6))
            break;
          return Intrinsic::nvvm_rcp_rz_ftz_f;	 // "__nvvm_rcp_rz_ftz_f"
        }
        break;
      case 's':	 // 1 string to match.
        if (memcmp(BuiltinName.data()+8, "in_approx_f", 11))
          break;
        return Intrinsic::nvvm_sin_approx_f;	 // "__nvvm_sin_approx_f"
      }
      break;
    }
    break;
  case 20:	 // 7 strings to match.
    if (memcmp(BuiltinName.data()+0, "__", 2))
      break;
    switch (BuiltinName[2]) {
    default: break;
    case 'b':	 // 2 strings to match.
      if (memcmp(BuiltinName.data()+3, "uiltin_", 7))
        break;
      switch (BuiltinName[10]) {
      default: break;
      case 'f':	 // 1 string to match.
        if (memcmp(BuiltinName.data()+11, "lt_rounds", 9))
          break;
        return Intrinsic::flt_rounds;	 // "__builtin_flt_rounds"
      case 's':	 // 1 string to match.
        if (memcmp(BuiltinName.data()+11, "tack_save", 9))
          break;
        return Intrinsic::stacksave;	 // "__builtin_stack_save"
      }
      break;
    case 'n':	 // 5 strings to match.
      if (memcmp(BuiltinName.data()+3, "vvm_sqrt_", 9))
        break;
      switch (BuiltinName[12]) {
      default: break;
      case 'a':	 // 1 string to match.
        if (memcmp(BuiltinName.data()+13, "pprox_f", 7))
          break;
        return Intrinsic::nvvm_sqrt_approx_f;	 // "__nvvm_sqrt_approx_f"
      case 'r':	 // 4 strings to match.
        switch (BuiltinName[13]) {
        default: break;
        case 'm':	 // 1 string to match.
          if (memcmp(BuiltinName.data()+14, "_ftz_f", 6))
            break;
          return Intrinsic::nvvm_sqrt_rm_ftz_f;	 // "__nvvm_sqrt_rm_ftz_f"
        case 'n':	 // 1 string to match.
          if (memcmp(BuiltinName.data()+14, "_ftz_f", 6))
            break;
          return Intrinsic::nvvm_sqrt_rn_ftz_f;	 // "__nvvm_sqrt_rn_ftz_f"
        case 'p':	 // 1 string to match.
          if (memcmp(BuiltinName.data()+14, "_ftz_f", 6))
            break;
          return Intrinsic::nvvm_sqrt_rp_ftz_f;	 // "__nvvm_sqrt_rp_ftz_f"
        case 'z':	 // 1 string to match.
          if (memcmp(BuiltinName.data()+14, "_ftz_f", 6))
            break;
          return Intrinsic::nvvm_sqrt_rz_ftz_f;	 // "__nvvm_sqrt_rz_ftz_f"
        }
        break;
      }
      break;
    }
    break;
  case 21:	 // 23 strings to match.
    if (memcmp(BuiltinName.data()+0, "__", 2))
      break;
    switch (BuiltinName[2]) {
    default: break;
    case 'b':	 // 20 strings to match.
      if (memcmp(BuiltinName.data()+3, "uiltin_", 7))
        break;
      switch (BuiltinName[10]) {
      default: break;
      case 'i':	 // 18 strings to match.
        if (memcmp(BuiltinName.data()+11, "a32_vp", 6))
          break;
        switch (BuiltinName[17]) {
        default: break;
        case 'c':	 // 5 strings to match.
          switch (BuiltinName[18]) {
          default: break;
          case 'm':	 // 1 string to match.
            if (memcmp(BuiltinName.data()+19, "ov", 2))
              break;
            return Intrinsic::x86_xop_vpcmov;	 // "__builtin_ia32_vpcmov"
          case 'o':	 // 4 strings to match.
            if (BuiltinName[19] != 'm')
              break;
            switch (BuiltinName[20]) {
            default: break;
            case 'b':	 // 1 string to match.
              return Intrinsic::x86_xop_vpcomb;	 // "__builtin_ia32_vpcomb"
            case 'd':	 // 1 string to match.
              return Intrinsic::x86_xop_vpcomd;	 // "__builtin_ia32_vpcomd"
            case 'q':	 // 1 string to match.
              return Intrinsic::x86_xop_vpcomq;	 // "__builtin_ia32_vpcomq"
            case 'w':	 // 1 string to match.
              return Intrinsic::x86_xop_vpcomw;	 // "__builtin_ia32_vpcomw"
            }
            break;
          }
          break;
        case 'p':	 // 1 string to match.
          if (memcmp(BuiltinName.data()+18, "erm", 3))
            break;
          return Intrinsic::x86_xop_vpperm;	 // "__builtin_ia32_vpperm"
        case 'r':	 // 4 strings to match.
          if (memcmp(BuiltinName.data()+18, "ot", 2))
            break;
          switch (BuiltinName[20]) {
          default: break;
          case 'b':	 // 1 string to match.
            return Intrinsic::x86_xop_vprotb;	 // "__builtin_ia32_vprotb"
          case 'd':	 // 1 string to match.
            return Intrinsic::x86_xop_vprotd;	 // "__builtin_ia32_vprotd"
          case 'q':	 // 1 string to match.
            return Intrinsic::x86_xop_vprotq;	 // "__builtin_ia32_vprotq"
          case 'w':	 // 1 string to match.
            return Intrinsic::x86_xop_vprotw;	 // "__builtin_ia32_vprotw"
          }
          break;
        case 's':	 // 8 strings to match.
          if (BuiltinName[18] != 'h')
            break;
          switch (BuiltinName[19]) {
          default: break;
          case 'a':	 // 4 strings to match.
            switch (BuiltinName[20]) {
            default: break;
            case 'b':	 // 1 string to match.
              return Intrinsic::x86_xop_vpshab;	 // "__builtin_ia32_vpshab"
            case 'd':	 // 1 string to match.
              return Intrinsic::x86_xop_vpshad;	 // "__builtin_ia32_vpshad"
            case 'q':	 // 1 string to match.
              return Intrinsic::x86_xop_vpshaq;	 // "__builtin_ia32_vpshaq"
            case 'w':	 // 1 string to match.
              return Intrinsic::x86_xop_vpshaw;	 // "__builtin_ia32_vpshaw"
            }
            break;
          case 'l':	 // 4 strings to match.
            switch (BuiltinName[20]) {
            default: break;
            case 'b':	 // 1 string to match.
              return Intrinsic::x86_xop_vpshlb;	 // "__builtin_ia32_vpshlb"
            case 'd':	 // 1 string to match.
              return Intrinsic::x86_xop_vpshld;	 // "__builtin_ia32_vpshld"
            case 'q':	 // 1 string to match.
              return Intrinsic::x86_xop_vpshlq;	 // "__builtin_ia32_vpshlq"
            case 'w':	 // 1 string to match.
              return Intrinsic::x86_xop_vpshlw;	 // "__builtin_ia32_vpshlw"
            }
            break;
          }
          break;
        }
        break;
      case 'o':	 // 1 string to match.
        if (memcmp(BuiltinName.data()+11, "bject_size", 10))
          break;
        return Intrinsic::objectsize;	 // "__builtin_object_size"
      case 'u':	 // 1 string to match.
        if (memcmp(BuiltinName.data()+11, "nwind_init", 10))
          break;
        return Intrinsic::eh_unwind_init;	 // "__builtin_unwind_init"
      }
      break;
    case 'n':	 // 3 strings to match.
      if (memcmp(BuiltinName.data()+3, "vvm_", 4))
        break;
      switch (BuiltinName[7]) {
      default: break;
      case 'r':	 // 2 strings to match.
        if (memcmp(BuiltinName.data()+8, "sqrt_approx_", 12))
          break;
        switch (BuiltinName[20]) {
        default: break;
        case 'd':	 // 1 string to match.
          return Intrinsic::nvvm_rsqrt_approx_d;	 // "__nvvm_rsqrt_approx_d"
        case 'f':	 // 1 string to match.
          return Intrinsic::nvvm_rsqrt_approx_f;	 // "__nvvm_rsqrt_approx_f"
        }
        break;
      case 's':	 // 1 string to match.
        if (memcmp(BuiltinName.data()+8, "aturate_ftz_f", 13))
          break;
        return Intrinsic::nvvm_saturate_ftz_f;	 // "__nvvm_saturate_ftz_f"
      }
      break;
    }
    break;
  case 22:	 // 17 strings to match.
    if (memcmp(BuiltinName.data()+0, "__builtin_", 10))
      break;
    switch (BuiltinName[10]) {
    default: break;
    case 'i':	 // 12 strings to match.
      if (memcmp(BuiltinName.data()+11, "a32_v", 5))
        break;
      switch (BuiltinName[16]) {
      default: break;
      case 'f':	 // 4 strings to match.
        if (memcmp(BuiltinName.data()+17, "rcz", 3))
          break;
        switch (BuiltinName[20]) {
        default: break;
        case 'p':	 // 2 strings to match.
          switch (BuiltinName[21]) {
          default: break;
          case 'd':	 // 1 string to match.
            return Intrinsic::x86_xop_vfrcz_pd;	 // "__builtin_ia32_vfrczpd"
          case 's':	 // 1 string to match.
            return Intrinsic::x86_xop_vfrcz_ps;	 // "__builtin_ia32_vfrczps"
          }
          break;
        case 's':	 // 2 strings to match.
          switch (BuiltinName[21]) {
          default: break;
          case 'd':	 // 1 string to match.
            return Intrinsic::x86_xop_vfrcz_sd;	 // "__builtin_ia32_vfrczsd"
          case 's':	 // 1 string to match.
            return Intrinsic::x86_xop_vfrcz_ss;	 // "__builtin_ia32_vfrczss"
          }
          break;
        }
        break;
      case 'p':	 // 8 strings to match.
        switch (BuiltinName[17]) {
        default: break;
        case 'c':	 // 4 strings to match.
          if (memcmp(BuiltinName.data()+18, "omu", 3))
            break;
          switch (BuiltinName[21]) {
          default: break;
          case 'b':	 // 1 string to match.
            return Intrinsic::x86_xop_vpcomub;	 // "__builtin_ia32_vpcomub"
          case 'd':	 // 1 string to match.
            return Intrinsic::x86_xop_vpcomud;	 // "__builtin_ia32_vpcomud"
          case 'q':	 // 1 string to match.
            return Intrinsic::x86_xop_vpcomuq;	 // "__builtin_ia32_vpcomuq"
          case 'w':	 // 1 string to match.
            return Intrinsic::x86_xop_vpcomuw;	 // "__builtin_ia32_vpcomuw"
          }
          break;
        case 'r':	 // 4 strings to match.
          if (memcmp(BuiltinName.data()+18, "ot", 2))
            break;
          switch (BuiltinName[20]) {
          default: break;
          case 'b':	 // 1 string to match.
            if (BuiltinName[21] != 'i')
              break;
            return Intrinsic::x86_xop_vprotbi;	 // "__builtin_ia32_vprotbi"
          case 'd':	 // 1 string to match.
            if (BuiltinName[21] != 'i')
              break;
            return Intrinsic::x86_xop_vprotdi;	 // "__builtin_ia32_vprotdi"
          case 'q':	 // 1 string to match.
            if (BuiltinName[21] != 'i')
              break;
            return Intrinsic::x86_xop_vprotqi;	 // "__builtin_ia32_vprotqi"
          case 'w':	 // 1 string to match.
            if (BuiltinName[21] != 'i')
              break;
            return Intrinsic::x86_xop_vprotwi;	 // "__builtin_ia32_vprotwi"
          }
          break;
        }
        break;
      }
      break;
    case 'p':	 // 5 strings to match.
      if (memcmp(BuiltinName.data()+11, "tx_", 3))
        break;
      switch (BuiltinName[14]) {
      default: break;
      case 'b':	 // 1 string to match.
        if (memcmp(BuiltinName.data()+15, "ar_sync", 7))
          break;
        return Intrinsic::ptx_bar_sync;	 // "__builtin_ptx_bar_sync"
      case 'r':	 // 4 strings to match.
        if (memcmp(BuiltinName.data()+15, "ead_pm", 6))
          break;
        switch (BuiltinName[21]) {
        default: break;
        case '0':	 // 1 string to match.
          return Intrinsic::ptx_read_pm0;	 // "__builtin_ptx_read_pm0"
        case '1':	 // 1 string to match.
          return Intrinsic::ptx_read_pm1;	 // "__builtin_ptx_read_pm1"
        case '2':	 // 1 string to match.
          return Intrinsic::ptx_read_pm2;	 // "__builtin_ptx_read_pm2"
        case '3':	 // 1 string to match.
          return Intrinsic::ptx_read_pm3;	 // "__builtin_ptx_read_pm3"
        }
        break;
      }
      break;
    }
    break;
  case 23:	 // 20 strings to match.
    if (memcmp(BuiltinName.data()+0, "__", 2))
      break;
    switch (BuiltinName[2]) {
    default: break;
    case 'b':	 // 14 strings to match.
      if (memcmp(BuiltinName.data()+3, "uiltin_", 7))
        break;
      switch (BuiltinName[10]) {
      default: break;
      case 'i':	 // 12 strings to match.
        if (memcmp(BuiltinName.data()+11, "a32_vp", 6))
          break;
        switch (BuiltinName[17]) {
        default: break;
        case 'h':	 // 9 strings to match.
          switch (BuiltinName[18]) {
          default: break;
          case 'a':	 // 6 strings to match.
            if (memcmp(BuiltinName.data()+19, "dd", 2))
              break;
            switch (BuiltinName[21]) {
            default: break;
            case 'b':	 // 3 strings to match.
              switch (BuiltinName[22]) {
              default: break;
              case 'd':	 // 1 string to match.
                return Intrinsic::x86_xop_vphaddbd;	 // "__builtin_ia32_vphaddbd"
              case 'q':	 // 1 string to match.
                return Intrinsic::x86_xop_vphaddbq;	 // "__builtin_ia32_vphaddbq"
              case 'w':	 // 1 string to match.
                return Intrinsic::x86_xop_vphaddbw;	 // "__builtin_ia32_vphaddbw"
              }
              break;
            case 'd':	 // 1 string to match.
              if (BuiltinName[22] != 'q')
                break;
              return Intrinsic::x86_xop_vphadddq;	 // "__builtin_ia32_vphadddq"
            case 'w':	 // 2 strings to match.
              switch (BuiltinName[22]) {
              default: break;
              case 'd':	 // 1 string to match.
                return Intrinsic::x86_xop_vphaddwd;	 // "__builtin_ia32_vphaddwd"
              case 'q':	 // 1 string to match.
                return Intrinsic::x86_xop_vphaddwq;	 // "__builtin_ia32_vphaddwq"
              }
              break;
            }
            break;
          case 's':	 // 3 strings to match.
            if (memcmp(BuiltinName.data()+19, "ub", 2))
              break;
            switch (BuiltinName[21]) {
            default: break;
            case 'b':	 // 1 string to match.
              if (BuiltinName[22] != 'w')
                break;
              return Intrinsic::x86_xop_vphsubbw;	 // "__builtin_ia32_vphsubbw"
            case 'd':	 // 1 string to match.
              if (BuiltinName[22] != 'q')
                break;
              return Intrinsic::x86_xop_vphsubdq;	 // "__builtin_ia32_vphsubdq"
            case 'w':	 // 1 string to match.
              if (BuiltinName[22] != 'd')
                break;
              return Intrinsic::x86_xop_vphsubwd;	 // "__builtin_ia32_vphsubwd"
            }
            break;
          }
          break;
        case 'm':	 // 3 strings to match.
          if (memcmp(BuiltinName.data()+18, "acs", 3))
            break;
          switch (BuiltinName[21]) {
          default: break;
          case 'd':	 // 1 string to match.
            if (BuiltinName[22] != 'd')
              break;
            return Intrinsic::x86_xop_vpmacsdd;	 // "__builtin_ia32_vpmacsdd"
          case 'w':	 // 2 strings to match.
            switch (BuiltinName[22]) {
            default: break;
            case 'd':	 // 1 string to match.
              return Intrinsic::x86_xop_vpmacswd;	 // "__builtin_ia32_vpmacswd"
            case 'w':	 // 1 string to match.
              return Intrinsic::x86_xop_vpmacsww;	 // "__builtin_ia32_vpmacsww"
            }
            break;
          }
          break;
        }
        break;
      case 'p':	 // 1 string to match.
        if (memcmp(BuiltinName.data()+11, "tx_read_smid", 12))
          break;
        return Intrinsic::ptx_read_smid;	 // "__builtin_ptx_read_smid"
      case 's':	 // 1 string to match.
        if (memcmp(BuiltinName.data()+11, "tack_restore", 12))
          break;
        return Intrinsic::stackrestore;	 // "__builtin_stack_restore"
      }
      break;
    case 'n':	 // 6 strings to match.
      if (memcmp(BuiltinName.data()+3, "vvm_", 4))
        break;
      switch (BuiltinName[7]) {
      default: break;
      case 'c':	 // 1 string to match.
        if (memcmp(BuiltinName.data()+8, "os_approx_ftz_f", 15))
          break;
        return Intrinsic::nvvm_cos_approx_ftz_f;	 // "__nvvm_cos_approx_ftz_f"
      case 'd':	 // 1 string to match.
        if (memcmp(BuiltinName.data()+8, "iv_approx_ftz_f", 15))
          break;
        return Intrinsic::nvvm_div_approx_ftz_f;	 // "__nvvm_div_approx_ftz_f"
      case 'e':	 // 1 string to match.
        if (memcmp(BuiltinName.data()+8, "x2_approx_ftz_f", 15))
          break;
        return Intrinsic::nvvm_ex2_approx_ftz_f;	 // "__nvvm_ex2_approx_ftz_f"
      case 'l':	 // 1 string to match.
        if (memcmp(BuiltinName.data()+8, "g2_approx_ftz_f", 15))
          break;
        return Intrinsic::nvvm_lg2_approx_ftz_f;	 // "__nvvm_lg2_approx_ftz_f"
      case 'r':	 // 1 string to match.
        if (memcmp(BuiltinName.data()+8, "cp_approx_ftz_d", 15))
          break;
        return Intrinsic::nvvm_rcp_approx_ftz_d;	 // "__nvvm_rcp_approx_ftz_d"
      case 's':	 // 1 string to match.
        if (memcmp(BuiltinName.data()+8, "in_approx_ftz_f", 15))
          break;
        return Intrinsic::nvvm_sin_approx_ftz_f;	 // "__nvvm_sin_approx_ftz_f"
      }
      break;
    }
    break;
  case 24:	 // 19 strings to match.
    if (memcmp(BuiltinName.data()+0, "__", 2))
      break;
    switch (BuiltinName[2]) {
    default: break;
    case 'b':	 // 18 strings to match.
      if (memcmp(BuiltinName.data()+3, "uiltin_", 7))
        break;
      switch (BuiltinName[10]) {
      default: break;
      case 'i':	 // 12 strings to match.
        if (memcmp(BuiltinName.data()+11, "a32_vp", 6))
          break;
        switch (BuiltinName[17]) {
        default: break;
        case 'h':	 // 6 strings to match.
          if (memcmp(BuiltinName.data()+18, "addu", 4))
            break;
          switch (BuiltinName[22]) {
          default: break;
          case 'b':	 // 3 strings to match.
            switch (BuiltinName[23]) {
            default: break;
            case 'd':	 // 1 string to match.
              return Intrinsic::x86_xop_vphaddubd;	 // "__builtin_ia32_vphaddubd"
            case 'q':	 // 1 string to match.
              return Intrinsic::x86_xop_vphaddubq;	 // "__builtin_ia32_vphaddubq"
            case 'w':	 // 1 string to match.
              return Intrinsic::x86_xop_vphaddubw;	 // "__builtin_ia32_vphaddubw"
            }
            break;
          case 'd':	 // 1 string to match.
            if (BuiltinName[23] != 'q')
              break;
            return Intrinsic::x86_xop_vphaddudq;	 // "__builtin_ia32_vphaddudq"
          case 'w':	 // 2 strings to match.
            switch (BuiltinName[23]) {
            default: break;
            case 'd':	 // 1 string to match.
              return Intrinsic::x86_xop_vphadduwd;	 // "__builtin_ia32_vphadduwd"
            case 'q':	 // 1 string to match.
              return Intrinsic::x86_xop_vphadduwq;	 // "__builtin_ia32_vphadduwq"
            }
            break;
          }
          break;
        case 'm':	 // 6 strings to match.
          if (BuiltinName[18] != 'a')
            break;
          switch (BuiltinName[19]) {
          default: break;
          case 'c':	 // 5 strings to match.
            if (BuiltinName[20] != 's')
              break;
            switch (BuiltinName[21]) {
            default: break;
            case 'd':	 // 2 strings to match.
              if (BuiltinName[22] != 'q')
                break;
              switch (BuiltinName[23]) {
              default: break;
              case 'h':	 // 1 string to match.
                return Intrinsic::x86_xop_vpmacsdqh;	 // "__builtin_ia32_vpmacsdqh"
              case 'l':	 // 1 string to match.
                return Intrinsic::x86_xop_vpmacsdql;	 // "__builtin_ia32_vpmacsdql"
              }
              break;
            case 's':	 // 3 strings to match.
              switch (BuiltinName[22]) {
              default: break;
              case 'd':	 // 1 string to match.
                if (BuiltinName[23] != 'd')
                  break;
                return Intrinsic::x86_xop_vpmacssdd;	 // "__builtin_ia32_vpmacssdd"
              case 'w':	 // 2 strings to match.
                switch (BuiltinName[23]) {
                default: break;
                case 'd':	 // 1 string to match.
                  return Intrinsic::x86_xop_vpmacsswd;	 // "__builtin_ia32_vpmacsswd"
                case 'w':	 // 1 string to match.
                  return Intrinsic::x86_xop_vpmacssww;	 // "__builtin_ia32_vpmacssww"
                }
                break;
              }
              break;
            }
            break;
          case 'd':	 // 1 string to match.
            if (memcmp(BuiltinName.data()+20, "cswd", 4))
              break;
            return Intrinsic::x86_xop_vpmadcswd;	 // "__builtin_ia32_vpmadcswd"
          }
          break;
        }
        break;
      case 'p':	 // 6 strings to match.
        if (memcmp(BuiltinName.data()+11, "tx_read_", 8))
          break;
        switch (BuiltinName[19]) {
        default: break;
        case 'c':	 // 1 string to match.
          if (memcmp(BuiltinName.data()+20, "lock", 4))
            break;
          return Intrinsic::ptx_read_clock;	 // "__builtin_ptx_read_clock"
        case 'n':	 // 1 string to match.
          if (memcmp(BuiltinName.data()+20, "smid", 4))
            break;
          return Intrinsic::ptx_read_nsmid;	 // "__builtin_ptx_read_nsmid"
        case 't':	 // 4 strings to match.
          if (memcmp(BuiltinName.data()+20, "id_", 3))
            break;
          switch (BuiltinName[23]) {
          default: break;
          case 'w':	 // 1 string to match.
            return Intrinsic::ptx_read_tid_w;	 // "__builtin_ptx_read_tid_w"
          case 'x':	 // 1 string to match.
            return Intrinsic::ptx_read_tid_x;	 // "__builtin_ptx_read_tid_x"
          case 'y':	 // 1 string to match.
            return Intrinsic::ptx_read_tid_y;	 // "__builtin_ptx_read_tid_y"
          case 'z':	 // 1 string to match.
            return Intrinsic::ptx_read_tid_z;	 // "__builtin_ptx_read_tid_z"
          }
          break;
        }
        break;
      }
      break;
    case 'n':	 // 1 string to match.
      if (memcmp(BuiltinName.data()+3, "vvm_sqrt_approx_ftz_f", 21))
        break;
      return Intrinsic::nvvm_sqrt_approx_ftz_f;	 // "__nvvm_sqrt_approx_ftz_f"
    }
    break;
  case 25:	 // 17 strings to match.
    if (memcmp(BuiltinName.data()+0, "__", 2))
      break;
    switch (BuiltinName[2]) {
    default: break;
    case 'b':	 // 16 strings to match.
      if (memcmp(BuiltinName.data()+3, "uiltin_", 7))
        break;
      switch (BuiltinName[10]) {
      default: break;
      case 'i':	 // 9 strings to match.
        switch (BuiltinName[11]) {
        default: break;
        case 'a':	 // 8 strings to match.
          if (memcmp(BuiltinName.data()+12, "32_v", 4))
            break;
          switch (BuiltinName[16]) {
          default: break;
          case 'f':	 // 2 strings to match.
            if (memcmp(BuiltinName.data()+17, "rczp", 4))
              break;
            switch (BuiltinName[21]) {
            default: break;
            case 'd':	 // 1 string to match.
              if (memcmp(BuiltinName.data()+22, "256", 3))
                break;
              return Intrinsic::x86_xop_vfrcz_pd_256;	 // "__builtin_ia32_vfrczpd256"
            case 's':	 // 1 string to match.
              if (memcmp(BuiltinName.data()+22, "256", 3))
                break;
              return Intrinsic::x86_xop_vfrcz_ps_256;	 // "__builtin_ia32_vfrczps256"
            }
            break;
          case 'p':	 // 6 strings to match.
            switch (BuiltinName[17]) {
            default: break;
            case 'c':	 // 1 string to match.
              if (memcmp(BuiltinName.data()+18, "mov_256", 7))
                break;
              return Intrinsic::x86_xop_vpcmov_256;	 // "__builtin_ia32_vpcmov_256"
            case 'e':	 // 2 strings to match.
              if (memcmp(BuiltinName.data()+18, "rmil2p", 6))
                break;
              switch (BuiltinName[24]) {
              default: break;
              case 'd':	 // 1 string to match.
                return Intrinsic::x86_xop_vpermil2pd;	 // "__builtin_ia32_vpermil2pd"
              case 's':	 // 1 string to match.
                return Intrinsic::x86_xop_vpermil2ps;	 // "__builtin_ia32_vpermil2ps"
              }
              break;
            case 'm':	 // 3 strings to match.
              if (BuiltinName[18] != 'a')
                break;
              switch (BuiltinName[19]) {
              default: break;
              case 'c':	 // 2 strings to match.
                if (memcmp(BuiltinName.data()+20, "ssdq", 4))
                  break;
                switch (BuiltinName[24]) {
                default: break;
                case 'h':	 // 1 string to match.
                  return Intrinsic::x86_xop_vpmacssdqh;	 // "__builtin_ia32_vpmacssdqh"
                case 'l':	 // 1 string to match.
                  return Intrinsic::x86_xop_vpmacssdql;	 // "__builtin_ia32_vpmacssdql"
                }
                break;
              case 'd':	 // 1 string to match.
                if (memcmp(BuiltinName.data()+20, "csswd", 5))
                  break;
                return Intrinsic::x86_xop_vpmadcsswd;	 // "__builtin_ia32_vpmadcsswd"
              }
              break;
            }
            break;
          }
          break;
        case 'n':	 // 1 string to match.
          if (memcmp(BuiltinName.data()+12, "it_trampoline", 13))
            break;
          return Intrinsic::init_trampoline;	 // "__builtin_init_trampoline"
        }
        break;
      case 'p':	 // 7 strings to match.
        if (memcmp(BuiltinName.data()+11, "tx_read_", 8))
          break;
        switch (BuiltinName[19]) {
        default: break;
        case 'g':	 // 1 string to match.
          if (memcmp(BuiltinName.data()+20, "ridid", 5))
            break;
          return Intrinsic::ptx_read_gridid;	 // "__builtin_ptx_read_gridid"
        case 'l':	 // 1 string to match.
          if (memcmp(BuiltinName.data()+20, "aneid", 5))
            break;
          return Intrinsic::ptx_read_laneid;	 // "__builtin_ptx_read_laneid"
        case 'n':	 // 4 strings to match.
          if (memcmp(BuiltinName.data()+20, "tid_", 4))
            break;
          switch (BuiltinName[24]) {
          default: break;
          case 'w':	 // 1 string to match.
            return Intrinsic::ptx_read_ntid_w;	 // "__builtin_ptx_read_ntid_w"
          case 'x':	 // 1 string to match.
            return Intrinsic::ptx_read_ntid_x;	 // "__builtin_ptx_read_ntid_x"
          case 'y':	 // 1 string to match.
            return Intrinsic::ptx_read_ntid_y;	 // "__builtin_ptx_read_ntid_y"
          case 'z':	 // 1 string to match.
            return Intrinsic::ptx_read_ntid_z;	 // "__builtin_ptx_read_ntid_z"
          }
          break;
        case 'w':	 // 1 string to match.
          if (memcmp(BuiltinName.data()+20, "arpid", 5))
            break;
          return Intrinsic::ptx_read_warpid;	 // "__builtin_ptx_read_warpid"
        }
        break;
      }
      break;
    case 'n':	 // 1 string to match.
      if (memcmp(BuiltinName.data()+3, "vvm_rsqrt_approx_ftz_f", 22))
        break;
      return Intrinsic::nvvm_rsqrt_approx_ftz_f;	 // "__nvvm_rsqrt_approx_ftz_f"
    }
    break;
  case 26:	 // 9 strings to match.
    if (memcmp(BuiltinName.data()+0, "__", 2))
      break;
    switch (BuiltinName[2]) {
    default: break;
    case 'b':	 // 6 strings to match.
      if (memcmp(BuiltinName.data()+3, "uiltin_ptx_read_", 16))
        break;
      switch (BuiltinName[19]) {
      default: break;
      case 'c':	 // 5 strings to match.
        switch (BuiltinName[20]) {
        default: break;
        case 'l':	 // 1 string to match.
          if (memcmp(BuiltinName.data()+21, "ock64", 5))
            break;
          return Intrinsic::ptx_read_clock64;	 // "__builtin_ptx_read_clock64"
        case 't':	 // 4 strings to match.
          if (memcmp(BuiltinName.data()+21, "aid_", 4))
            break;
          switch (BuiltinName[25]) {
          default: break;
          case 'w':	 // 1 string to match.
            return Intrinsic::ptx_read_ctaid_w;	 // "__builtin_ptx_read_ctaid_w"
          case 'x':	 // 1 string to match.
            return Intrinsic::ptx_read_ctaid_x;	 // "__builtin_ptx_read_ctaid_x"
          case 'y':	 // 1 string to match.
            return Intrinsic::ptx_read_ctaid_y;	 // "__builtin_ptx_read_ctaid_y"
          case 'z':	 // 1 string to match.
            return Intrinsic::ptx_read_ctaid_z;	 // "__builtin_ptx_read_ctaid_z"
          }
          break;
        }
        break;
      case 'n':	 // 1 string to match.
        if (memcmp(BuiltinName.data()+20, "warpid", 6))
          break;
        return Intrinsic::ptx_read_nwarpid;	 // "__builtin_ptx_read_nwarpid"
      }
      break;
    case 'n':	 // 3 strings to match.
      if (memcmp(BuiltinName.data()+3, "vvm_read_ptx_sreg_tid_", 22))
        break;
      switch (BuiltinName[25]) {
      default: break;
      case 'x':	 // 1 string to match.
        return Intrinsic::nvvm_read_ptx_sreg_tid_x;	 // "__nvvm_read_ptx_sreg_tid_x"
      case 'y':	 // 1 string to match.
        return Intrinsic::nvvm_read_ptx_sreg_tid_y;	 // "__nvvm_read_ptx_sreg_tid_y"
      case 'z':	 // 1 string to match.
        return Intrinsic::nvvm_read_ptx_sreg_tid_z;	 // "__nvvm_read_ptx_sreg_tid_z"
      }
      break;
    }
    break;
  case 27:	 // 8 strings to match.
    if (memcmp(BuiltinName.data()+0, "__", 2))
      break;
    switch (BuiltinName[2]) {
    default: break;
    case 'b':	 // 5 strings to match.
      if (memcmp(BuiltinName.data()+3, "uiltin_", 7))
        break;
      switch (BuiltinName[10]) {
      default: break;
      case 'a':	 // 1 string to match.
        if (memcmp(BuiltinName.data()+11, "djust_trampoline", 16))
          break;
        return Intrinsic::adjust_trampoline;	 // "__builtin_adjust_trampoline"
      case 'p':	 // 4 strings to match.
        if (memcmp(BuiltinName.data()+11, "tx_read_nctaid_", 15))
          break;
        switch (BuiltinName[26]) {
        default: break;
        case 'w':	 // 1 string to match.
          return Intrinsic::ptx_read_nctaid_w;	 // "__builtin_ptx_read_nctaid_w"
        case 'x':	 // 1 string to match.
          return Intrinsic::ptx_read_nctaid_x;	 // "__builtin_ptx_read_nctaid_x"
        case 'y':	 // 1 string to match.
          return Intrinsic::ptx_read_nctaid_y;	 // "__builtin_ptx_read_nctaid_y"
        case 'z':	 // 1 string to match.
          return Intrinsic::ptx_read_nctaid_z;	 // "__builtin_ptx_read_nctaid_z"
        }
        break;
      }
      break;
    case 'n':	 // 3 strings to match.
      if (memcmp(BuiltinName.data()+3, "vvm_read_ptx_sreg_ntid_", 23))
        break;
      switch (BuiltinName[26]) {
      default: break;
      case 'x':	 // 1 string to match.
        return Intrinsic::nvvm_read_ptx_sreg_ntid_x;	 // "__nvvm_read_ptx_sreg_ntid_x"
      case 'y':	 // 1 string to match.
        return Intrinsic::nvvm_read_ptx_sreg_ntid_y;	 // "__nvvm_read_ptx_sreg_ntid_y"
      case 'z':	 // 1 string to match.
        return Intrinsic::nvvm_read_ptx_sreg_ntid_z;	 // "__nvvm_read_ptx_sreg_ntid_z"
      }
      break;
    }
    break;
  case 28:	 // 5 strings to match.
    if (memcmp(BuiltinName.data()+0, "__", 2))
      break;
    switch (BuiltinName[2]) {
    default: break;
    case 'b':	 // 2 strings to match.
      if (memcmp(BuiltinName.data()+3, "uiltin_ia32_vpermil2p", 21))
        break;
      switch (BuiltinName[24]) {
      default: break;
      case 'd':	 // 1 string to match.
        if (memcmp(BuiltinName.data()+25, "256", 3))
          break;
        return Intrinsic::x86_xop_vpermil2pd_256;	 // "__builtin_ia32_vpermil2pd256"
      case 's':	 // 1 string to match.
        if (memcmp(BuiltinName.data()+25, "256", 3))
          break;
        return Intrinsic::x86_xop_vpermil2ps_256;	 // "__builtin_ia32_vpermil2ps256"
      }
      break;
    case 'n':	 // 3 strings to match.
      if (memcmp(BuiltinName.data()+3, "vvm_read_ptx_sreg_ctaid_", 24))
        break;
      switch (BuiltinName[27]) {
      default: break;
      case 'x':	 // 1 string to match.
        return Intrinsic::nvvm_read_ptx_sreg_ctaid_x;	 // "__nvvm_read_ptx_sreg_ctaid_x"
      case 'y':	 // 1 string to match.
        return Intrinsic::nvvm_read_ptx_sreg_ctaid_y;	 // "__nvvm_read_ptx_sreg_ctaid_y"
      case 'z':	 // 1 string to match.
        return Intrinsic::nvvm_read_ptx_sreg_ctaid_z;	 // "__nvvm_read_ptx_sreg_ctaid_z"
      }
      break;
    }
    break;
  case 29:	 // 4 strings to match.
    if (memcmp(BuiltinName.data()+0, "__nvvm_read_ptx_sreg_", 21))
      break;
    switch (BuiltinName[21]) {
    default: break;
    case 'n':	 // 3 strings to match.
      if (memcmp(BuiltinName.data()+22, "ctaid_", 6))
        break;
      switch (BuiltinName[28]) {
      default: break;
      case 'x':	 // 1 string to match.
        return Intrinsic::nvvm_read_ptx_sreg_nctaid_x;	 // "__nvvm_read_ptx_sreg_nctaid_x"
      case 'y':	 // 1 string to match.
        return Intrinsic::nvvm_read_ptx_sreg_nctaid_y;	 // "__nvvm_read_ptx_sreg_nctaid_y"
      case 'z':	 // 1 string to match.
        return Intrinsic::nvvm_read_ptx_sreg_nctaid_z;	 // "__nvvm_read_ptx_sreg_nctaid_z"
      }
      break;
    case 'w':	 // 1 string to match.
      if (memcmp(BuiltinName.data()+22, "arpsize", 7))
        break;
      return Intrinsic::nvvm_read_ptx_sreg_warpsize;	 // "__nvvm_read_ptx_sreg_warpsize"
    }
    break;
  case 30:	 // 5 strings to match.
    if (memcmp(BuiltinName.data()+0, "__builtin_ptx_read_lanemask_", 28))
      break;
    switch (BuiltinName[28]) {
    default: break;
    case 'e':	 // 1 string to match.
      if (BuiltinName[29] != 'q')
        break;
      return Intrinsic::ptx_read_lanemask_eq;	 // "__builtin_ptx_read_lanemask_eq"
    case 'g':	 // 2 strings to match.
      switch (BuiltinName[29]) {
      default: break;
      case 'e':	 // 1 string to match.
        return Intrinsic::ptx_read_lanemask_ge;	 // "__builtin_ptx_read_lanemask_ge"
      case 't':	 // 1 string to match.
        return Intrinsic::ptx_read_lanemask_gt;	 // "__builtin_ptx_read_lanemask_gt"
      }
      break;
    case 'l':	 // 2 strings to match.
      switch (BuiltinName[29]) {
      default: break;
      case 'e':	 // 1 string to match.
        return Intrinsic::ptx_read_lanemask_le;	 // "__builtin_ptx_read_lanemask_le"
      case 't':	 // 1 string to match.
        return Intrinsic::ptx_read_lanemask_lt;	 // "__builtin_ptx_read_lanemask_lt"
      }
      break;
    }
    break;
  }
  }
  if (TargetPrefix == "arm") {
  switch (BuiltinName.size()) {
  default: break;
  case 17:	 // 3 strings to match.
    if (memcmp(BuiltinName.data()+0, "__builtin_arm_", 14))
      break;
    switch (BuiltinName[14]) {
    default: break;
    case 'c':	 // 1 string to match.
      if (memcmp(BuiltinName.data()+15, "dp", 2))
        break;
      return Intrinsic::arm_cdp;	 // "__builtin_arm_cdp"
    case 'm':	 // 2 strings to match.
      switch (BuiltinName[15]) {
      default: break;
      case 'c':	 // 1 string to match.
        if (BuiltinName[16] != 'r')
          break;
        return Intrinsic::arm_mcr;	 // "__builtin_arm_mcr"
      case 'r':	 // 1 string to match.
        if (BuiltinName[16] != 'c')
          break;
        return Intrinsic::arm_mrc;	 // "__builtin_arm_mrc"
      }
      break;
    }
    break;
  case 18:	 // 8 strings to match.
    if (memcmp(BuiltinName.data()+0, "__builtin_arm_", 14))
      break;
    switch (BuiltinName[14]) {
    default: break;
    case 'c':	 // 1 string to match.
      if (memcmp(BuiltinName.data()+15, "dp2", 3))
        break;
      return Intrinsic::arm_cdp2;	 // "__builtin_arm_cdp2"
    case 'm':	 // 3 strings to match.
      switch (BuiltinName[15]) {
      default: break;
      case 'c':	 // 2 strings to match.
        if (BuiltinName[16] != 'r')
          break;
        switch (BuiltinName[17]) {
        default: break;
        case '2':	 // 1 string to match.
          return Intrinsic::arm_mcr2;	 // "__builtin_arm_mcr2"
        case 'r':	 // 1 string to match.
          return Intrinsic::arm_mcrr;	 // "__builtin_arm_mcrr"
        }
        break;
      case 'r':	 // 1 string to match.
        if (memcmp(BuiltinName.data()+16, "c2", 2))
          break;
        return Intrinsic::arm_mrc2;	 // "__builtin_arm_mrc2"
      }
      break;
    case 'q':	 // 2 strings to match.
      switch (BuiltinName[15]) {
      default: break;
      case 'a':	 // 1 string to match.
        if (memcmp(BuiltinName.data()+16, "dd", 2))
          break;
        return Intrinsic::arm_qadd;	 // "__builtin_arm_qadd"
      case 's':	 // 1 string to match.
        if (memcmp(BuiltinName.data()+16, "ub", 2))
          break;
        return Intrinsic::arm_qsub;	 // "__builtin_arm_qsub"
      }
      break;
    case 's':	 // 1 string to match.
      if (memcmp(BuiltinName.data()+15, "sat", 3))
        break;
      return Intrinsic::arm_ssat;	 // "__builtin_arm_ssat"
    case 'u':	 // 1 string to match.
      if (memcmp(BuiltinName.data()+15, "sat", 3))
        break;
      return Intrinsic::arm_usat;	 // "__builtin_arm_usat"
    }
    break;
  case 19:	 // 1 string to match.
    if (memcmp(BuiltinName.data()+0, "__builtin_arm_mcrr2", 19))
      break;
    return Intrinsic::arm_mcrr2;	 // "__builtin_arm_mcrr2"
  case 23:	 // 2 strings to match.
    if (memcmp(BuiltinName.data()+0, "__builtin_arm_", 14))
      break;
    switch (BuiltinName[14]) {
    default: break;
    case 'g':	 // 1 string to match.
      if (memcmp(BuiltinName.data()+15, "et_fpscr", 8))
        break;
      return Intrinsic::arm_get_fpscr;	 // "__builtin_arm_get_fpscr"
    case 's':	 // 1 string to match.
      if (memcmp(BuiltinName.data()+15, "et_fpscr", 8))
        break;
      return Intrinsic::arm_set_fpscr;	 // "__builtin_arm_set_fpscr"
    }
    break;
  case 24:	 // 1 string to match.
    if (memcmp(BuiltinName.data()+0, "__builtin_thread_pointer", 24))
      break;
    return Intrinsic::arm_thread_pointer;	 // "__builtin_thread_pointer"
  }
  }
  if (TargetPrefix == "hexagon") {
  switch (BuiltinName.size()) {
  default: break;
  case 18:	 // 1 string to match.
    if (memcmp(BuiltinName.data()+0, "__builtin_circ_ldd", 18))
      break;
    return Intrinsic::hexagon_circ_ldd;	 // "__builtin_circ_ldd"
  case 23:	 // 2 strings to match.
    if (memcmp(BuiltinName.data()+0, "__builtin_HEXAGON_", 18))
      break;
    switch (BuiltinName[18]) {
    default: break;
    case 'A':	 // 1 string to match.
      if (memcmp(BuiltinName.data()+19, "2_or", 4))
        break;
      return Intrinsic::hexagon_A2_or;	 // "__builtin_HEXAGON_A2_or"
    case 'C':	 // 1 string to match.
      if (memcmp(BuiltinName.data()+19, "2_or", 4))
        break;
      return Intrinsic::hexagon_C2_or;	 // "__builtin_HEXAGON_C2_or"
    }
    break;
  case 24:	 // 23 strings to match.
    if (memcmp(BuiltinName.data()+0, "__builtin_HEXAGON_", 18))
      break;
    switch (BuiltinName[18]) {
    default: break;
    case 'A':	 // 13 strings to match.
      switch (BuiltinName[19]) {
      default: break;
      case '2':	 // 12 strings to match.
        if (BuiltinName[20] != '_')
          break;
        switch (BuiltinName[21]) {
        default: break;
        case 'a':	 // 3 strings to match.
          switch (BuiltinName[22]) {
          default: break;
          case 'b':	 // 1 string to match.
            if (BuiltinName[23] != 's')
              break;
            return Intrinsic::hexagon_A2_abs;	 // "__builtin_HEXAGON_A2_abs"
          case 'd':	 // 1 string to match.
            if (BuiltinName[23] != 'd')
              break;
            return Intrinsic::hexagon_A2_add;	 // "__builtin_HEXAGON_A2_add"
          case 'n':	 // 1 string to match.
            if (BuiltinName[23] != 'd')
              break;
            return Intrinsic::hexagon_A2_and;	 // "__builtin_HEXAGON_A2_and"
          }
          break;
        case 'm':	 // 2 strings to match.
          switch (BuiltinName[22]) {
          default: break;
          case 'a':	 // 1 string to match.
            if (BuiltinName[23] != 'x')
              break;
            return Intrinsic::hexagon_A2_max;	 // "__builtin_HEXAGON_A2_max"
          case 'i':	 // 1 string to match.
            if (BuiltinName[23] != 'n')
              break;
            return Intrinsic::hexagon_A2_min;	 // "__builtin_HEXAGON_A2_min"
          }
          break;
        case 'n':	 // 2 strings to match.
          switch (BuiltinName[22]) {
          default: break;
          case 'e':	 // 1 string to match.
            if (BuiltinName[23] != 'g')
              break;
            return Intrinsic::hexagon_A2_neg;	 // "__builtin_HEXAGON_A2_neg"
          case 'o':	 // 1 string to match.
            if (BuiltinName[23] != 't')
              break;
            return Intrinsic::hexagon_A2_not;	 // "__builtin_HEXAGON_A2_not"
          }
          break;
        case 'o':	 // 1 string to match.
          if (memcmp(BuiltinName.data()+22, "rp", 2))
            break;
          return Intrinsic::hexagon_A2_orp;	 // "__builtin_HEXAGON_A2_orp"
        case 's':	 // 2 strings to match.
          switch (BuiltinName[22]) {
          default: break;
          case 'a':	 // 1 string to match.
            if (BuiltinName[23] != 't')
              break;
            return Intrinsic::hexagon_A2_sat;	 // "__builtin_HEXAGON_A2_sat"
          case 'u':	 // 1 string to match.
            if (BuiltinName[23] != 'b')
              break;
            return Intrinsic::hexagon_A2_sub;	 // "__builtin_HEXAGON_A2_sub"
          }
          break;
        case 't':	 // 1 string to match.
          if (memcmp(BuiltinName.data()+22, "fr", 2))
            break;
          return Intrinsic::hexagon_A2_tfr;	 // "__builtin_HEXAGON_A2_tfr"
        case 'x':	 // 1 string to match.
          if (memcmp(BuiltinName.data()+22, "or", 2))
            break;
          return Intrinsic::hexagon_A2_xor;	 // "__builtin_HEXAGON_A2_xor"
        }
        break;
      case '4':	 // 1 string to match.
        if (memcmp(BuiltinName.data()+20, "_orn", 4))
          break;
        return Intrinsic::hexagon_A4_orn;	 // "__builtin_HEXAGON_A4_orn"
      }
      break;
    case 'C':	 // 5 strings to match.
      if (memcmp(BuiltinName.data()+19, "2_", 2))
        break;
      switch (BuiltinName[21]) {
      default: break;
      case 'a':	 // 1 string to match.
        if (memcmp(BuiltinName.data()+22, "nd", 2))
          break;
        return Intrinsic::hexagon_C2_and;	 // "__builtin_HEXAGON_C2_and"
      case 'm':	 // 1 string to match.
        if (memcmp(BuiltinName.data()+22, "ux", 2))
          break;
        return Intrinsic::hexagon_C2_mux;	 // "__builtin_HEXAGON_C2_mux"
      case 'n':	 // 1 string to match.
        if (memcmp(BuiltinName.data()+22, "ot", 2))
          break;
        return Intrinsic::hexagon_C2_not;	 // "__builtin_HEXAGON_C2_not"
      case 'o':	 // 1 string to match.
        if (memcmp(BuiltinName.data()+22, "rn", 2))
          break;
        return Intrinsic::hexagon_C2_orn;	 // "__builtin_HEXAGON_C2_orn"
      case 'x':	 // 1 string to match.
        if (memcmp(BuiltinName.data()+22, "or", 2))
          break;
        return Intrinsic::hexagon_C2_xor;	 // "__builtin_HEXAGON_C2_xor"
      }
      break;
    case 'S':	 // 5 strings to match.
      if (memcmp(BuiltinName.data()+19, "2_c", 3))
        break;
      switch (BuiltinName[22]) {
      default: break;
      case 'l':	 // 3 strings to match.
        switch (BuiltinName[23]) {
        default: break;
        case '0':	 // 1 string to match.
          return Intrinsic::hexagon_S2_cl0;	 // "__builtin_HEXAGON_S2_cl0"
        case '1':	 // 1 string to match.
          return Intrinsic::hexagon_S2_cl1;	 // "__builtin_HEXAGON_S2_cl1"
        case 'b':	 // 1 string to match.
          return Intrinsic::hexagon_S2_clb;	 // "__builtin_HEXAGON_S2_clb"
        }
        break;
      case 't':	 // 2 strings to match.
        switch (BuiltinName[23]) {
        default: break;
        case '0':	 // 1 string to match.
          return Intrinsic::hexagon_S2_ct0;	 // "__builtin_HEXAGON_S2_ct0"
        case '1':	 // 1 string to match.
          return Intrinsic::hexagon_S2_ct1;	 // "__builtin_HEXAGON_S2_ct1"
        }
        break;
      }
      break;
    }
    break;
  case 25:	 // 42 strings to match.
    if (memcmp(BuiltinName.data()+0, "__builtin_HEXAGON_", 18))
      break;
    switch (BuiltinName[18]) {
    default: break;
    case 'A':	 // 26 strings to match.
      switch (BuiltinName[19]) {
      default: break;
      case '2':	 // 24 strings to match.
        if (BuiltinName[20] != '_')
          break;
        switch (BuiltinName[21]) {
        default: break;
        case 'a':	 // 6 strings to match.
          switch (BuiltinName[22]) {
          default: break;
          case 'b':	 // 1 string to match.
            if (memcmp(BuiltinName.data()+23, "sp", 2))
              break;
            return Intrinsic::hexagon_A2_absp;	 // "__builtin_HEXAGON_A2_absp"
          case 'd':	 // 2 strings to match.
            if (BuiltinName[23] != 'd')
              break;
            switch (BuiltinName[24]) {
            default: break;
            case 'i':	 // 1 string to match.
              return Intrinsic::hexagon_A2_addi;	 // "__builtin_HEXAGON_A2_addi"
            case 'p':	 // 1 string to match.
              return Intrinsic::hexagon_A2_addp;	 // "__builtin_HEXAGON_A2_addp"
            }
            break;
          case 'n':	 // 1 string to match.
            if (memcmp(BuiltinName.data()+23, "dp", 2))
              break;
            return Intrinsic::hexagon_A2_andp;	 // "__builtin_HEXAGON_A2_andp"
          case 's':	 // 2 strings to match.
            switch (BuiltinName[23]) {
            default: break;
            case 'l':	 // 1 string to match.
              if (BuiltinName[24] != 'h')
                break;
              return Intrinsic::hexagon_A2_aslh;	 // "__builtin_HEXAGON_A2_aslh"
            case 'r':	 // 1 string to match.
              if (BuiltinName[24] != 'h')
                break;
              return Intrinsic::hexagon_A2_asrh;	 // "__builtin_HEXAGON_A2_asrh"
            }
            break;
          }
          break;
        case 'm':	 // 4 strings to match.
          switch (BuiltinName[22]) {
          default: break;
          case 'a':	 // 2 strings to match.
            if (BuiltinName[23] != 'x')
              break;
            switch (BuiltinName[24]) {
            default: break;
            case 'p':	 // 1 string to match.
              return Intrinsic::hexagon_A2_maxp;	 // "__builtin_HEXAGON_A2_maxp"
            case 'u':	 // 1 string to match.
              return Intrinsic::hexagon_A2_maxu;	 // "__builtin_HEXAGON_A2_maxu"
            }
            break;
          case 'i':	 // 2 strings to match.
            if (BuiltinName[23] != 'n')
              break;
            switch (BuiltinName[24]) {
            default: break;
            case 'p':	 // 1 string to match.
              return Intrinsic::hexagon_A2_minp;	 // "__builtin_HEXAGON_A2_minp"
            case 'u':	 // 1 string to match.
              return Intrinsic::hexagon_A2_minu;	 // "__builtin_HEXAGON_A2_minu"
            }
            break;
          }
          break;
        case 'n':	 // 2 strings to match.
          switch (BuiltinName[22]) {
          default: break;
          case 'e':	 // 1 string to match.
            if (memcmp(BuiltinName.data()+23, "gp", 2))
              break;
            return Intrinsic::hexagon_A2_negp;	 // "__builtin_HEXAGON_A2_negp"
          case 'o':	 // 1 string to match.
            if (memcmp(BuiltinName.data()+23, "tp", 2))
              break;
            return Intrinsic::hexagon_A2_notp;	 // "__builtin_HEXAGON_A2_notp"
          }
          break;
        case 'o':	 // 1 string to match.
          if (memcmp(BuiltinName.data()+22, "rir", 3))
            break;
          return Intrinsic::hexagon_A2_orir;	 // "__builtin_HEXAGON_A2_orir"
        case 's':	 // 7 strings to match.
          switch (BuiltinName[22]) {
          default: break;
          case 'a':	 // 2 strings to match.
            if (BuiltinName[23] != 't')
              break;
            switch (BuiltinName[24]) {
            default: break;
            case 'b':	 // 1 string to match.
              return Intrinsic::hexagon_A2_satb;	 // "__builtin_HEXAGON_A2_satb"
            case 'h':	 // 1 string to match.
              return Intrinsic::hexagon_A2_sath;	 // "__builtin_HEXAGON_A2_sath"
            }
            break;
          case 'u':	 // 1 string to match.
            if (memcmp(BuiltinName.data()+23, "bp", 2))
              break;
            return Intrinsic::hexagon_A2_subp;	 // "__builtin_HEXAGON_A2_subp"
          case 'w':	 // 1 string to match.
            if (memcmp(BuiltinName.data()+23, "iz", 2))
              break;
            return Intrinsic::hexagon_A2_swiz;	 // "__builtin_HEXAGON_A2_swiz"
          case 'x':	 // 3 strings to match.
            if (BuiltinName[23] != 't')
              break;
            switch (BuiltinName[24]) {
            default: break;
            case 'b':	 // 1 string to match.
              return Intrinsic::hexagon_A2_sxtb;	 // "__builtin_HEXAGON_A2_sxtb"
            case 'h':	 // 1 string to match.
              return Intrinsic::hexagon_A2_sxth;	 // "__builtin_HEXAGON_A2_sxth"
            case 'w':	 // 1 string to match.
              return Intrinsic::hexagon_A2_sxtw;	 // "__builtin_HEXAGON_A2_sxtw"
            }
            break;
          }
          break;
        case 't':	 // 1 string to match.
          if (memcmp(BuiltinName.data()+22, "frp", 3))
            break;
          return Intrinsic::hexagon_A2_tfrp;	 // "__builtin_HEXAGON_A2_tfrp"
        case 'x':	 // 1 string to match.
          if (memcmp(BuiltinName.data()+22, "orp", 3))
            break;
          return Intrinsic::hexagon_A2_xorp;	 // "__builtin_HEXAGON_A2_xorp"
        case 'z':	 // 2 strings to match.
          if (memcmp(BuiltinName.data()+22, "xt", 2))
            break;
          switch (BuiltinName[24]) {
          default: break;
          case 'b':	 // 1 string to match.
            return Intrinsic::hexagon_A2_zxtb;	 // "__builtin_HEXAGON_A2_zxtb"
          case 'h':	 // 1 string to match.
            return Intrinsic::hexagon_A2_zxth;	 // "__builtin_HEXAGON_A2_zxth"
          }
          break;
        }
        break;
      case '4':	 // 2 strings to match.
        if (BuiltinName[20] != '_')
          break;
        switch (BuiltinName[21]) {
        default: break;
        case 'a':	 // 1 string to match.
          if (memcmp(BuiltinName.data()+22, "ndn", 3))
            break;
          return Intrinsic::hexagon_A4_andn;	 // "__builtin_HEXAGON_A4_andn"
        case 'o':	 // 1 string to match.
          if (memcmp(BuiltinName.data()+22, "rnp", 3))
            break;
          return Intrinsic::hexagon_A4_ornp;	 // "__builtin_HEXAGON_A4_ornp"
        }
        break;
      }
      break;
    case 'C':	 // 5 strings to match.
      if (memcmp(BuiltinName.data()+19, "2_", 2))
        break;
      switch (BuiltinName[21]) {
      default: break;
      case 'a':	 // 3 strings to match.
        switch (BuiltinName[22]) {
        default: break;
        case 'l':	 // 1 string to match.
          if (memcmp(BuiltinName.data()+23, "l8", 2))
            break;
          return Intrinsic::hexagon_C2_all8;	 // "__builtin_HEXAGON_C2_all8"
        case 'n':	 // 2 strings to match.
          switch (BuiltinName[23]) {
          default: break;
          case 'd':	 // 1 string to match.
            if (BuiltinName[24] != 'n')
              break;
            return Intrinsic::hexagon_C2_andn;	 // "__builtin_HEXAGON_C2_andn"
          case 'y':	 // 1 string to match.
            if (BuiltinName[24] != '8')
              break;
            return Intrinsic::hexagon_C2_any8;	 // "__builtin_HEXAGON_C2_any8"
          }
          break;
        }
        break;
      case 'm':	 // 1 string to match.
        if (memcmp(BuiltinName.data()+22, "ask", 3))
          break;
        return Intrinsic::hexagon_C2_mask;	 // "__builtin_HEXAGON_C2_mask"
      case 'v':	 // 1 string to match.
        if (memcmp(BuiltinName.data()+22, "mux", 3))
          break;
        return Intrinsic::hexagon_C2_vmux;	 // "__builtin_HEXAGON_C2_vmux"
      }
      break;
    case 'M':	 // 3 strings to match.
      if (memcmp(BuiltinName.data()+19, "2_", 2))
        break;
      switch (BuiltinName[21]) {
      default: break;
      case 'a':	 // 1 string to match.
        if (memcmp(BuiltinName.data()+22, "cci", 3))
          break;
        return Intrinsic::hexagon_M2_acci;	 // "__builtin_HEXAGON_M2_acci"
      case 'm':	 // 2 strings to match.
        switch (BuiltinName[22]) {
        default: break;
        case 'a':	 // 1 string to match.
          if (memcmp(BuiltinName.data()+23, "ci", 2))
            break;
          return Intrinsic::hexagon_M2_maci;	 // "__builtin_HEXAGON_M2_maci"
        case 'p':	 // 1 string to match.
          if (memcmp(BuiltinName.data()+23, "yi", 2))
            break;
          return Intrinsic::hexagon_M2_mpyi;	 // "__builtin_HEXAGON_M2_mpyi"
        }
        break;
      }
      break;
    case 'S':	 // 8 strings to match.
      switch (BuiltinName[19]) {
      default: break;
      case '2':	 // 7 strings to match.
        if (BuiltinName[20] != '_')
          break;
        switch (BuiltinName[21]) {
        default: break;
        case 'b':	 // 1 string to match.
          if (memcmp(BuiltinName.data()+22, "rev", 3))
            break;
          return Intrinsic::hexagon_S2_brev;	 // "__builtin_HEXAGON_S2_brev"
        case 'c':	 // 5 strings to match.
          switch (BuiltinName[22]) {
          default: break;
          case 'l':	 // 3 strings to match.
            switch (BuiltinName[23]) {
            default: break;
            case '0':	 // 1 string to match.
              if (BuiltinName[24] != 'p')
                break;
              return Intrinsic::hexagon_S2_cl0p;	 // "__builtin_HEXAGON_S2_cl0p"
            case '1':	 // 1 string to match.
              if (BuiltinName[24] != 'p')
                break;
              return Intrinsic::hexagon_S2_cl1p;	 // "__builtin_HEXAGON_S2_cl1p"
            case 'b':	 // 1 string to match.
              if (BuiltinName[24] != 'p')
                break;
              return Intrinsic::hexagon_S2_clbp;	 // "__builtin_HEXAGON_S2_clbp"
            }
            break;
          case 't':	 // 2 strings to match.
            switch (BuiltinName[23]) {
            default: break;
            case '0':	 // 1 string to match.
              if (BuiltinName[24] != 'p')
                break;
              return Intrinsic::hexagon_S2_ct0p;	 // "__builtin_HEXAGON_S2_ct0p"
            case '1':	 // 1 string to match.
              if (BuiltinName[24] != 'p')
                break;
              return Intrinsic::hexagon_S2_ct1p;	 // "__builtin_HEXAGON_S2_ct1p"
            }
            break;
          }
          break;
        case 'l':	 // 1 string to match.
          if (memcmp(BuiltinName.data()+22, "fsp", 3))
            break;
          return Intrinsic::hexagon_S2_lfsp;	 // "__builtin_HEXAGON_S2_lfsp"
        }
        break;
      case '4':	 // 1 string to match.
        if (memcmp(BuiltinName.data()+20, "_lsli", 5))
          break;
        return Intrinsic::hexagon_S4_lsli;	 // "__builtin_HEXAGON_S4_lsli"
      }
      break;
    }
    break;
  case 26:	 // 58 strings to match.
    if (memcmp(BuiltinName.data()+0, "__builtin_", 10))
      break;
    switch (BuiltinName[10]) {
    default: break;
    case 'H':	 // 57 strings to match.
      if (memcmp(BuiltinName.data()+11, "EXAGON_", 7))
        break;
      switch (BuiltinName[18]) {
      default: break;
      case 'A':	 // 27 strings to match.
        switch (BuiltinName[19]) {
        default: break;
        case '2':	 // 26 strings to match.
          if (BuiltinName[20] != '_')
            break;
          switch (BuiltinName[21]) {
          default: break;
          case 'a':	 // 2 strings to match.
            switch (BuiltinName[22]) {
            default: break;
            case 'd':	 // 1 string to match.
              if (memcmp(BuiltinName.data()+23, "dsp", 3))
                break;
              return Intrinsic::hexagon_A2_addsp;	 // "__builtin_HEXAGON_A2_addsp"
            case 'n':	 // 1 string to match.
              if (memcmp(BuiltinName.data()+23, "dir", 3))
                break;
              return Intrinsic::hexagon_A2_andir;	 // "__builtin_HEXAGON_A2_andir"
            }
            break;
          case 'm':	 // 2 strings to match.
            switch (BuiltinName[22]) {
            default: break;
            case 'a':	 // 1 string to match.
              if (memcmp(BuiltinName.data()+23, "xup", 3))
                break;
              return Intrinsic::hexagon_A2_maxup;	 // "__builtin_HEXAGON_A2_maxup"
            case 'i':	 // 1 string to match.
              if (memcmp(BuiltinName.data()+23, "nup", 3))
                break;
              return Intrinsic::hexagon_A2_minup;	 // "__builtin_HEXAGON_A2_minup"
            }
            break;
          case 's':	 // 3 strings to match.
            switch (BuiltinName[22]) {
            default: break;
            case 'a':	 // 2 strings to match.
              if (memcmp(BuiltinName.data()+23, "tu", 2))
                break;
              switch (BuiltinName[25]) {
              default: break;
              case 'b':	 // 1 string to match.
                return Intrinsic::hexagon_A2_satub;	 // "__builtin_HEXAGON_A2_satub"
              case 'h':	 // 1 string to match.
                return Intrinsic::hexagon_A2_satuh;	 // "__builtin_HEXAGON_A2_satuh"
              }
              break;
            case 'u':	 // 1 string to match.
              if (memcmp(BuiltinName.data()+23, "bri", 3))
                break;
              return Intrinsic::hexagon_A2_subri;	 // "__builtin_HEXAGON_A2_subri"
            }
            break;
          case 't':	 // 4 strings to match.
            if (memcmp(BuiltinName.data()+22, "fr", 2))
              break;
            switch (BuiltinName[24]) {
            default: break;
            case 'i':	 // 2 strings to match.
              switch (BuiltinName[25]) {
              default: break;
              case 'h':	 // 1 string to match.
                return Intrinsic::hexagon_A2_tfrih;	 // "__builtin_HEXAGON_A2_tfrih"
              case 'l':	 // 1 string to match.
                return Intrinsic::hexagon_A2_tfril;	 // "__builtin_HEXAGON_A2_tfril"
              }
              break;
            case 'p':	 // 1 string to match.
              if (BuiltinName[25] != 'i')
                break;
              return Intrinsic::hexagon_A2_tfrpi;	 // "__builtin_HEXAGON_A2_tfrpi"
            case 's':	 // 1 string to match.
              if (BuiltinName[25] != 'i')
                break;
              return Intrinsic::hexagon_A2_tfrsi;	 // "__builtin_HEXAGON_A2_tfrsi"
            }
            break;
          case 'v':	 // 15 strings to match.
            switch (BuiltinName[22]) {
            default: break;
            case 'a':	 // 6 strings to match.
              switch (BuiltinName[23]) {
              default: break;
              case 'b':	 // 2 strings to match.
                if (BuiltinName[24] != 's')
                  break;
                switch (BuiltinName[25]) {
                default: break;
                case 'h':	 // 1 string to match.
                  return Intrinsic::hexagon_A2_vabsh;	 // "__builtin_HEXAGON_A2_vabsh"
                case 'w':	 // 1 string to match.
                  return Intrinsic::hexagon_A2_vabsw;	 // "__builtin_HEXAGON_A2_vabsw"
                }
                break;
              case 'd':	 // 2 strings to match.
                if (BuiltinName[24] != 'd')
                  break;
                switch (BuiltinName[25]) {
                default: break;
                case 'h':	 // 1 string to match.
                  return Intrinsic::hexagon_A2_vaddh;	 // "__builtin_HEXAGON_A2_vaddh"
                case 'w':	 // 1 string to match.
                  return Intrinsic::hexagon_A2_vaddw;	 // "__builtin_HEXAGON_A2_vaddw"
                }
                break;
              case 'v':	 // 2 strings to match.
                if (BuiltinName[24] != 'g')
                  break;
                switch (BuiltinName[25]) {
                default: break;
                case 'h':	 // 1 string to match.
                  return Intrinsic::hexagon_A2_vavgh;	 // "__builtin_HEXAGON_A2_vavgh"
                case 'w':	 // 1 string to match.
                  return Intrinsic::hexagon_A2_vavgw;	 // "__builtin_HEXAGON_A2_vavgw"
                }
                break;
              }
              break;
            case 'c':	 // 1 string to match.
              if (memcmp(BuiltinName.data()+23, "onj", 3))
                break;
              return Intrinsic::hexagon_A2_vconj;	 // "__builtin_HEXAGON_A2_vconj"
            case 'm':	 // 6 strings to match.
              switch (BuiltinName[23]) {
              default: break;
              case 'a':	 // 3 strings to match.
                if (BuiltinName[24] != 'x')
                  break;
                switch (BuiltinName[25]) {
                default: break;
                case 'b':	 // 1 string to match.
                  return Intrinsic::hexagon_A2_vmaxb;	 // "__builtin_HEXAGON_A2_vmaxb"
                case 'h':	 // 1 string to match.
                  return Intrinsic::hexagon_A2_vmaxh;	 // "__builtin_HEXAGON_A2_vmaxh"
                case 'w':	 // 1 string to match.
                  return Intrinsic::hexagon_A2_vmaxw;	 // "__builtin_HEXAGON_A2_vmaxw"
                }
                break;
              case 'i':	 // 3 strings to match.
                if (BuiltinName[24] != 'n')
                  break;
                switch (BuiltinName[25]) {
                default: break;
                case 'b':	 // 1 string to match.
                  return Intrinsic::hexagon_A2_vminb;	 // "__builtin_HEXAGON_A2_vminb"
                case 'h':	 // 1 string to match.
                  return Intrinsic::hexagon_A2_vminh;	 // "__builtin_HEXAGON_A2_vminh"
                case 'w':	 // 1 string to match.
                  return Intrinsic::hexagon_A2_vminw;	 // "__builtin_HEXAGON_A2_vminw"
                }
                break;
              }
              break;
            case 's':	 // 2 strings to match.
              if (memcmp(BuiltinName.data()+23, "ub", 2))
                break;
              switch (BuiltinName[25]) {
              default: break;
              case 'h':	 // 1 string to match.
                return Intrinsic::hexagon_A2_vsubh;	 // "__builtin_HEXAGON_A2_vsubh"
              case 'w':	 // 1 string to match.
                return Intrinsic::hexagon_A2_vsubw;	 // "__builtin_HEXAGON_A2_vsubw"
              }
              break;
            }
            break;
          }
          break;
        case '4':	 // 1 string to match.
          if (memcmp(BuiltinName.data()+20, "_andnp", 6))
            break;
          return Intrinsic::hexagon_A4_andnp;	 // "__builtin_HEXAGON_A4_andnp"
        }
        break;
      case 'C':	 // 9 strings to match.
        switch (BuiltinName[19]) {
        default: break;
        case '2':	 // 8 strings to match.
          if (BuiltinName[20] != '_')
            break;
          switch (BuiltinName[21]) {
          default: break;
          case 'c':	 // 3 strings to match.
            if (memcmp(BuiltinName.data()+22, "mp", 2))
              break;
            switch (BuiltinName[24]) {
            default: break;
            case 'e':	 // 1 string to match.
              if (BuiltinName[25] != 'q')
                break;
              return Intrinsic::hexagon_C2_cmpeq;	 // "__builtin_HEXAGON_C2_cmpeq"
            case 'g':	 // 1 string to match.
              if (BuiltinName[25] != 't')
                break;
              return Intrinsic::hexagon_C2_cmpgt;	 // "__builtin_HEXAGON_C2_cmpgt"
            case 'l':	 // 1 string to match.
              if (BuiltinName[25] != 't')
                break;
              return Intrinsic::hexagon_C2_cmplt;	 // "__builtin_HEXAGON_C2_cmplt"
            }
            break;
          case 'm':	 // 3 strings to match.
            if (memcmp(BuiltinName.data()+22, "ux", 2))
              break;
            switch (BuiltinName[24]) {
            default: break;
            case 'i':	 // 2 strings to match.
              switch (BuiltinName[25]) {
              default: break;
              case 'i':	 // 1 string to match.
                return Intrinsic::hexagon_C2_muxii;	 // "__builtin_HEXAGON_C2_muxii"
              case 'r':	 // 1 string to match.
                return Intrinsic::hexagon_C2_muxir;	 // "__builtin_HEXAGON_C2_muxir"
              }
              break;
            case 'r':	 // 1 string to match.
              if (BuiltinName[25] != 'i')
                break;
              return Intrinsic::hexagon_C2_muxri;	 // "__builtin_HEXAGON_C2_muxri"
            }
            break;
          case 't':	 // 2 strings to match.
            if (memcmp(BuiltinName.data()+22, "fr", 2))
              break;
            switch (BuiltinName[24]) {
            default: break;
            case 'p':	 // 1 string to match.
              if (BuiltinName[25] != 'r')
                break;
              return Intrinsic::hexagon_C2_tfrpr;	 // "__builtin_HEXAGON_C2_tfrpr"
            case 'r':	 // 1 string to match.
              if (BuiltinName[25] != 'p')
                break;
              return Intrinsic::hexagon_C2_tfrrp;	 // "__builtin_HEXAGON_C2_tfrrp"
            }
            break;
          }
          break;
        case '4':	 // 1 string to match.
          if (memcmp(BuiltinName.data()+20, "_or_or", 6))
            break;
          return Intrinsic::hexagon_C4_or_or;	 // "__builtin_HEXAGON_C4_or_or"
        }
        break;
      case 'F':	 // 14 strings to match.
        if (memcmp(BuiltinName.data()+19, "2_", 2))
          break;
        switch (BuiltinName[21]) {
        default: break;
        case 'd':	 // 7 strings to match.
          if (BuiltinName[22] != 'f')
            break;
          switch (BuiltinName[23]) {
          default: break;
          case 'a':	 // 1 string to match.
            if (memcmp(BuiltinName.data()+24, "dd", 2))
              break;
            return Intrinsic::hexagon_F2_dfadd;	 // "__builtin_HEXAGON_F2_dfadd"
          case 'f':	 // 2 strings to match.
            if (BuiltinName[24] != 'm')
              break;
            switch (BuiltinName[25]) {
            default: break;
            case 'a':	 // 1 string to match.
              return Intrinsic::hexagon_F2_dffma;	 // "__builtin_HEXAGON_F2_dffma"
            case 's':	 // 1 string to match.
              return Intrinsic::hexagon_F2_dffms;	 // "__builtin_HEXAGON_F2_dffms"
            }
            break;
          case 'm':	 // 3 strings to match.
            switch (BuiltinName[24]) {
            default: break;
            case 'a':	 // 1 string to match.
              if (BuiltinName[25] != 'x')
                break;
              return Intrinsic::hexagon_F2_dfmax;	 // "__builtin_HEXAGON_F2_dfmax"
            case 'i':	 // 1 string to match.
              if (BuiltinName[25] != 'n')
                break;
              return Intrinsic::hexagon_F2_dfmin;	 // "__builtin_HEXAGON_F2_dfmin"
            case 'p':	 // 1 string to match.
              if (BuiltinName[25] != 'y')
                break;
              return Intrinsic::hexagon_F2_dfmpy;	 // "__builtin_HEXAGON_F2_dfmpy"
            }
            break;
          case 's':	 // 1 string to match.
            if (memcmp(BuiltinName.data()+24, "ub", 2))
              break;
            return Intrinsic::hexagon_F2_dfsub;	 // "__builtin_HEXAGON_F2_dfsub"
          }
          break;
        case 's':	 // 7 strings to match.
          if (BuiltinName[22] != 'f')
            break;
          switch (BuiltinName[23]) {
          default: break;
          case 'a':	 // 1 string to match.
            if (memcmp(BuiltinName.data()+24, "dd", 2))
              break;
            return Intrinsic::hexagon_F2_sfadd;	 // "__builtin_HEXAGON_F2_sfadd"
          case 'f':	 // 2 strings to match.
            if (BuiltinName[24] != 'm')
              break;
            switch (BuiltinName[25]) {
            default: break;
            case 'a':	 // 1 string to match.
              return Intrinsic::hexagon_F2_sffma;	 // "__builtin_HEXAGON_F2_sffma"
            case 's':	 // 1 string to match.
              return Intrinsic::hexagon_F2_sffms;	 // "__builtin_HEXAGON_F2_sffms"
            }
            break;
          case 'm':	 // 3 strings to match.
            switch (BuiltinName[24]) {
            default: break;
            case 'a':	 // 1 string to match.
              if (BuiltinName[25] != 'x')
                break;
              return Intrinsic::hexagon_F2_sfmax;	 // "__builtin_HEXAGON_F2_sfmax"
            case 'i':	 // 1 string to match.
              if (BuiltinName[25] != 'n')
                break;
              return Intrinsic::hexagon_F2_sfmin;	 // "__builtin_HEXAGON_F2_sfmin"
            case 'p':	 // 1 string to match.
              if (BuiltinName[25] != 'y')
                break;
              return Intrinsic::hexagon_F2_sfmpy;	 // "__builtin_HEXAGON_F2_sfmpy"
            }
            break;
          case 's':	 // 1 string to match.
            if (memcmp(BuiltinName.data()+24, "ub", 2))
              break;
            return Intrinsic::hexagon_F2_sfsub;	 // "__builtin_HEXAGON_F2_sfsub"
          }
          break;
        }
        break;
      case 'M':	 // 6 strings to match.
        switch (BuiltinName[19]) {
        default: break;
        case '2':	 // 4 strings to match.
          if (BuiltinName[20] != '_')
            break;
          switch (BuiltinName[21]) {
          default: break;
          case 'a':	 // 1 string to match.
            if (memcmp(BuiltinName.data()+22, "ccii", 4))
              break;
            return Intrinsic::hexagon_M2_accii;	 // "__builtin_HEXAGON_M2_accii"
          case 'm':	 // 1 string to match.
            if (memcmp(BuiltinName.data()+22, "pyui", 4))
              break;
            return Intrinsic::hexagon_M2_mpyui;	 // "__builtin_HEXAGON_M2_mpyui"
          case 'n':	 // 1 string to match.
            if (memcmp(BuiltinName.data()+22, "acci", 4))
              break;
            return Intrinsic::hexagon_M2_nacci;	 // "__builtin_HEXAGON_M2_nacci"
          case 'v':	 // 1 string to match.
            if (memcmp(BuiltinName.data()+22, "mac2", 4))
              break;
            return Intrinsic::hexagon_M2_vmac2;	 // "__builtin_HEXAGON_M2_vmac2"
          }
          break;
        case '4':	 // 2 strings to match.
          if (BuiltinName[20] != '_')
            break;
          switch (BuiltinName[21]) {
          default: break;
          case 'o':	 // 1 string to match.
            if (memcmp(BuiltinName.data()+22, "r_or", 4))
              break;
            return Intrinsic::hexagon_M4_or_or;	 // "__builtin_HEXAGON_M4_or_or"
          case 'p':	 // 1 string to match.
            if (memcmp(BuiltinName.data()+22, "mpyw", 4))
              break;
            return Intrinsic::hexagon_M4_pmpyw;	 // "__builtin_HEXAGON_M4_pmpyw"
          }
          break;
        }
        break;
      case 'S':	 // 1 string to match.
        if (memcmp(BuiltinName.data()+19, "2_brevp", 7))
          break;
        return Intrinsic::hexagon_S2_brevp;	 // "__builtin_HEXAGON_S2_brevp"
      }
      break;
    case 'S':	 // 1 string to match.
      if (memcmp(BuiltinName.data()+11, "I_to_SXTHI_asrh", 15))
        break;
      return Intrinsic::hexagon_SI_to_SXTHI_asrh;	 // "__builtin_SI_to_SXTHI_asrh"
    }
    break;
  case 27:	 // 70 strings to match.
    if (memcmp(BuiltinName.data()+0, "__builtin_HEXAGON_", 18))
      break;
    switch (BuiltinName[18]) {
    default: break;
    case 'A':	 // 35 strings to match.
      switch (BuiltinName[19]) {
      default: break;
      case '2':	 // 26 strings to match.
        if (BuiltinName[20] != '_')
          break;
        switch (BuiltinName[21]) {
        default: break;
        case 'a':	 // 2 strings to match.
          switch (BuiltinName[22]) {
          default: break;
          case 'b':	 // 1 string to match.
            if (memcmp(BuiltinName.data()+23, "ssat", 4))
              break;
            return Intrinsic::hexagon_A2_abssat;	 // "__builtin_HEXAGON_A2_abssat"
          case 'd':	 // 1 string to match.
            if (memcmp(BuiltinName.data()+23, "dsat", 4))
              break;
            return Intrinsic::hexagon_A2_addsat;	 // "__builtin_HEXAGON_A2_addsat"
          }
          break;
        case 'n':	 // 1 string to match.
          if (memcmp(BuiltinName.data()+22, "egsat", 5))
            break;
          return Intrinsic::hexagon_A2_negsat;	 // "__builtin_HEXAGON_A2_negsat"
        case 's':	 // 4 strings to match.
          switch (BuiltinName[22]) {
          default: break;
          case 'u':	 // 1 string to match.
            if (memcmp(BuiltinName.data()+23, "bsat", 4))
              break;
            return Intrinsic::hexagon_A2_subsat;	 // "__builtin_HEXAGON_A2_subsat"
          case 'v':	 // 3 strings to match.
            switch (BuiltinName[23]) {
            default: break;
            case 'a':	 // 2 strings to match.
              switch (BuiltinName[24]) {
              default: break;
              case 'd':	 // 1 string to match.
                if (memcmp(BuiltinName.data()+25, "dh", 2))
                  break;
                return Intrinsic::hexagon_A2_svaddh;	 // "__builtin_HEXAGON_A2_svaddh"
              case 'v':	 // 1 string to match.
                if (memcmp(BuiltinName.data()+25, "gh", 2))
                  break;
                return Intrinsic::hexagon_A2_svavgh;	 // "__builtin_HEXAGON_A2_svavgh"
              }
              break;
            case 's':	 // 1 string to match.
              if (memcmp(BuiltinName.data()+24, "ubh", 3))
                break;
              return Intrinsic::hexagon_A2_svsubh;	 // "__builtin_HEXAGON_A2_svsubh"
            }
            break;
          }
          break;
        case 'v':	 // 19 strings to match.
          switch (BuiltinName[22]) {
          default: break;
          case 'a':	 // 8 strings to match.
            switch (BuiltinName[23]) {
            default: break;
            case 'd':	 // 3 strings to match.
              if (BuiltinName[24] != 'd')
                break;
              switch (BuiltinName[25]) {
              default: break;
              case 'h':	 // 1 string to match.
                if (BuiltinName[26] != 's')
                  break;
                return Intrinsic::hexagon_A2_vaddhs;	 // "__builtin_HEXAGON_A2_vaddhs"
              case 'u':	 // 1 string to match.
                if (BuiltinName[26] != 'b')
                  break;
                return Intrinsic::hexagon_A2_vaddub;	 // "__builtin_HEXAGON_A2_vaddub"
              case 'w':	 // 1 string to match.
                if (BuiltinName[26] != 's')
                  break;
                return Intrinsic::hexagon_A2_vaddws;	 // "__builtin_HEXAGON_A2_vaddws"
              }
              break;
            case 'v':	 // 5 strings to match.
              if (BuiltinName[24] != 'g')
                break;
              switch (BuiltinName[25]) {
              default: break;
              case 'h':	 // 1 string to match.
                if (BuiltinName[26] != 'r')
                  break;
                return Intrinsic::hexagon_A2_vavghr;	 // "__builtin_HEXAGON_A2_vavghr"
              case 'u':	 // 3 strings to match.
                switch (BuiltinName[26]) {
                default: break;
                case 'b':	 // 1 string to match.
                  return Intrinsic::hexagon_A2_vavgub;	 // "__builtin_HEXAGON_A2_vavgub"
                case 'h':	 // 1 string to match.
                  return Intrinsic::hexagon_A2_vavguh;	 // "__builtin_HEXAGON_A2_vavguh"
                case 'w':	 // 1 string to match.
                  return Intrinsic::hexagon_A2_vavguw;	 // "__builtin_HEXAGON_A2_vavguw"
                }
                break;
              case 'w':	 // 1 string to match.
                if (BuiltinName[26] != 'r')
                  break;
                return Intrinsic::hexagon_A2_vavgwr;	 // "__builtin_HEXAGON_A2_vavgwr"
              }
              break;
            }
            break;
          case 'm':	 // 6 strings to match.
            switch (BuiltinName[23]) {
            default: break;
            case 'a':	 // 3 strings to match.
              if (memcmp(BuiltinName.data()+24, "xu", 2))
                break;
              switch (BuiltinName[26]) {
              default: break;
              case 'b':	 // 1 string to match.
                return Intrinsic::hexagon_A2_vmaxub;	 // "__builtin_HEXAGON_A2_vmaxub"
              case 'h':	 // 1 string to match.
                return Intrinsic::hexagon_A2_vmaxuh;	 // "__builtin_HEXAGON_A2_vmaxuh"
              case 'w':	 // 1 string to match.
                return Intrinsic::hexagon_A2_vmaxuw;	 // "__builtin_HEXAGON_A2_vmaxuw"
              }
              break;
            case 'i':	 // 3 strings to match.
              if (memcmp(BuiltinName.data()+24, "nu", 2))
                break;
              switch (BuiltinName[26]) {
              default: break;
              case 'b':	 // 1 string to match.
                return Intrinsic::hexagon_A2_vminub;	 // "__builtin_HEXAGON_A2_vminub"
              case 'h':	 // 1 string to match.
                return Intrinsic::hexagon_A2_vminuh;	 // "__builtin_HEXAGON_A2_vminuh"
              case 'w':	 // 1 string to match.
                return Intrinsic::hexagon_A2_vminuw;	 // "__builtin_HEXAGON_A2_vminuw"
              }
              break;
            }
            break;
          case 'n':	 // 2 strings to match.
            if (memcmp(BuiltinName.data()+23, "avg", 3))
              break;
            switch (BuiltinName[26]) {
            default: break;
            case 'h':	 // 1 string to match.
              return Intrinsic::hexagon_A2_vnavgh;	 // "__builtin_HEXAGON_A2_vnavgh"
            case 'w':	 // 1 string to match.
              return Intrinsic::hexagon_A2_vnavgw;	 // "__builtin_HEXAGON_A2_vnavgw"
            }
            break;
          case 's':	 // 3 strings to match.
            if (memcmp(BuiltinName.data()+23, "ub", 2))
              break;
            switch (BuiltinName[25]) {
            default: break;
            case 'h':	 // 1 string to match.
              if (BuiltinName[26] != 's')
                break;
              return Intrinsic::hexagon_A2_vsubhs;	 // "__builtin_HEXAGON_A2_vsubhs"
            case 'u':	 // 1 string to match.
              if (BuiltinName[26] != 'b')
                break;
              return Intrinsic::hexagon_A2_vsubub;	 // "__builtin_HEXAGON_A2_vsubub"
            case 'w':	 // 1 string to match.
              if (BuiltinName[26] != 's')
                break;
              return Intrinsic::hexagon_A2_vsubws;	 // "__builtin_HEXAGON_A2_vsubws"
            }
            break;
          }
          break;
        }
        break;
      case '4':	 // 9 strings to match.
        if (BuiltinName[20] != '_')
          break;
        switch (BuiltinName[21]) {
        default: break;
        case 'c':	 // 4 strings to match.
          if (memcmp(BuiltinName.data()+22, "mp", 2))
            break;
          switch (BuiltinName[24]) {
          default: break;
          case 'b':	 // 2 strings to match.
            switch (BuiltinName[25]) {
            default: break;
            case 'e':	 // 1 string to match.
              if (BuiltinName[26] != 'q')
                break;
              return Intrinsic::hexagon_A4_cmpbeq;	 // "__builtin_HEXAGON_A4_cmpbeq"
            case 'g':	 // 1 string to match.
              if (BuiltinName[26] != 't')
                break;
              return Intrinsic::hexagon_A4_cmpbgt;	 // "__builtin_HEXAGON_A4_cmpbgt"
            }
            break;
          case 'h':	 // 2 strings to match.
            switch (BuiltinName[25]) {
            default: break;
            case 'e':	 // 1 string to match.
              if (BuiltinName[26] != 'q')
                break;
              return Intrinsic::hexagon_A4_cmpheq;	 // "__builtin_HEXAGON_A4_cmpheq"
            case 'g':	 // 1 string to match.
              if (BuiltinName[26] != 't')
                break;
              return Intrinsic::hexagon_A4_cmphgt;	 // "__builtin_HEXAGON_A4_cmphgt"
            }
            break;
          }
          break;
        case 'r':	 // 1 string to match.
          if (memcmp(BuiltinName.data()+22, "cmpeq", 5))
            break;
          return Intrinsic::hexagon_A4_rcmpeq;	 // "__builtin_HEXAGON_A4_rcmpeq"
        case 'v':	 // 4 strings to match.
          if (memcmp(BuiltinName.data()+22, "rm", 2))
            break;
          switch (BuiltinName[24]) {
          default: break;
          case 'a':	 // 2 strings to match.
            if (BuiltinName[25] != 'x')
              break;
            switch (BuiltinName[26]) {
            default: break;
            case 'h':	 // 1 string to match.
              return Intrinsic::hexagon_A4_vrmaxh;	 // "__builtin_HEXAGON_A4_vrmaxh"
            case 'w':	 // 1 string to match.
              return Intrinsic::hexagon_A4_vrmaxw;	 // "__builtin_HEXAGON_A4_vrmaxw"
            }
            break;
          case 'i':	 // 2 strings to match.
            if (BuiltinName[25] != 'n')
              break;
            switch (BuiltinName[26]) {
            default: break;
            case 'h':	 // 1 string to match.
              return Intrinsic::hexagon_A4_vrminh;	 // "__builtin_HEXAGON_A4_vrminh"
            case 'w':	 // 1 string to match.
              return Intrinsic::hexagon_A4_vrminw;	 // "__builtin_HEXAGON_A4_vrminw"
            }
            break;
          }
          break;
        }
        break;
      }
      break;
    case 'C':	 // 12 strings to match.
      switch (BuiltinName[19]) {
      default: break;
      case '2':	 // 7 strings to match.
        if (memcmp(BuiltinName.data()+20, "_cmp", 4))
          break;
        switch (BuiltinName[24]) {
        default: break;
        case 'e':	 // 2 strings to match.
          if (BuiltinName[25] != 'q')
            break;
          switch (BuiltinName[26]) {
          default: break;
          case 'i':	 // 1 string to match.
            return Intrinsic::hexagon_C2_cmpeqi;	 // "__builtin_HEXAGON_C2_cmpeqi"
          case 'p':	 // 1 string to match.
            return Intrinsic::hexagon_C2_cmpeqp;	 // "__builtin_HEXAGON_C2_cmpeqp"
          }
          break;
        case 'g':	 // 4 strings to match.
          switch (BuiltinName[25]) {
          default: break;
          case 'e':	 // 1 string to match.
            if (BuiltinName[26] != 'i')
              break;
            return Intrinsic::hexagon_C2_cmpgei;	 // "__builtin_HEXAGON_C2_cmpgei"
          case 't':	 // 3 strings to match.
            switch (BuiltinName[26]) {
            default: break;
            case 'i':	 // 1 string to match.
              return Intrinsic::hexagon_C2_cmpgti;	 // "__builtin_HEXAGON_C2_cmpgti"
            case 'p':	 // 1 string to match.
              return Intrinsic::hexagon_C2_cmpgtp;	 // "__builtin_HEXAGON_C2_cmpgtp"
            case 'u':	 // 1 string to match.
              return Intrinsic::hexagon_C2_cmpgtu;	 // "__builtin_HEXAGON_C2_cmpgtu"
            }
            break;
          }
          break;
        case 'l':	 // 1 string to match.
          if (memcmp(BuiltinName.data()+25, "tu", 2))
            break;
          return Intrinsic::hexagon_C2_cmpltu;	 // "__builtin_HEXAGON_C2_cmpltu"
        }
        break;
      case '4':	 // 5 strings to match.
        if (BuiltinName[20] != '_')
          break;
        switch (BuiltinName[21]) {
        default: break;
        case 'a':	 // 1 string to match.
          if (memcmp(BuiltinName.data()+22, "nd_or", 5))
            break;
          return Intrinsic::hexagon_C4_and_or;	 // "__builtin_HEXAGON_C4_and_or"
        case 'c':	 // 2 strings to match.
          if (memcmp(BuiltinName.data()+22, "mp", 2))
            break;
          switch (BuiltinName[24]) {
          default: break;
          case 'l':	 // 1 string to match.
            if (memcmp(BuiltinName.data()+25, "te", 2))
              break;
            return Intrinsic::hexagon_C4_cmplte;	 // "__builtin_HEXAGON_C4_cmplte"
          case 'n':	 // 1 string to match.
            if (memcmp(BuiltinName.data()+25, "eq", 2))
              break;
            return Intrinsic::hexagon_C4_cmpneq;	 // "__builtin_HEXAGON_C4_cmpneq"
          }
          break;
        case 'o':	 // 2 strings to match.
          if (memcmp(BuiltinName.data()+22, "r_", 2))
            break;
          switch (BuiltinName[24]) {
          default: break;
          case 'a':	 // 1 string to match.
            if (memcmp(BuiltinName.data()+25, "nd", 2))
              break;
            return Intrinsic::hexagon_C4_or_and;	 // "__builtin_HEXAGON_C4_or_and"
          case 'o':	 // 1 string to match.
            if (memcmp(BuiltinName.data()+25, "rn", 2))
              break;
            return Intrinsic::hexagon_C4_or_orn;	 // "__builtin_HEXAGON_C4_or_orn"
          }
          break;
        }
        break;
      }
      break;
    case 'M':	 // 12 strings to match.
      switch (BuiltinName[19]) {
      default: break;
      case '2':	 // 7 strings to match.
        if (BuiltinName[20] != '_')
          break;
        switch (BuiltinName[21]) {
        default: break;
        case 'm':	 // 4 strings to match.
          switch (BuiltinName[22]) {
          default: break;
          case 'a':	 // 2 strings to match.
            if (memcmp(BuiltinName.data()+23, "csi", 3))
              break;
            switch (BuiltinName[26]) {
            default: break;
            case 'n':	 // 1 string to match.
              return Intrinsic::hexagon_M2_macsin;	 // "__builtin_HEXAGON_M2_macsin"
            case 'p':	 // 1 string to match.
              return Intrinsic::hexagon_M2_macsip;	 // "__builtin_HEXAGON_M2_macsip"
            }
            break;
          case 'p':	 // 2 strings to match.
            if (BuiltinName[23] != 'y')
              break;
            switch (BuiltinName[24]) {
            default: break;
            case '_':	 // 1 string to match.
              if (memcmp(BuiltinName.data()+25, "up", 2))
                break;
              return Intrinsic::hexagon_M2_mpy_up;	 // "__builtin_HEXAGON_M2_mpy_up"
            case 's':	 // 1 string to match.
              if (memcmp(BuiltinName.data()+25, "mi", 2))
                break;
              return Intrinsic::hexagon_M2_mpysmi;	 // "__builtin_HEXAGON_M2_mpysmi"
            }
            break;
          }
          break;
        case 'n':	 // 1 string to match.
          if (memcmp(BuiltinName.data()+22, "accii", 5))
            break;
          return Intrinsic::hexagon_M2_naccii;	 // "__builtin_HEXAGON_M2_naccii"
        case 's':	 // 1 string to match.
          if (memcmp(BuiltinName.data()+22, "ubacc", 5))
            break;
          return Intrinsic::hexagon_M2_subacc;	 // "__builtin_HEXAGON_M2_subacc"
        case 'v':	 // 1 string to match.
          if (memcmp(BuiltinName.data()+22, "raddh", 5))
            break;
          return Intrinsic::hexagon_M2_vraddh;	 // "__builtin_HEXAGON_M2_vraddh"
        }
        break;
      case '4':	 // 5 strings to match.
        if (BuiltinName[20] != '_')
          break;
        switch (BuiltinName[21]) {
        default: break;
        case 'a':	 // 1 string to match.
          if (memcmp(BuiltinName.data()+22, "nd_or", 5))
            break;
          return Intrinsic::hexagon_M4_and_or;	 // "__builtin_HEXAGON_M4_and_or"
        case 'o':	 // 2 strings to match.
          if (memcmp(BuiltinName.data()+22, "r_", 2))
            break;
          switch (BuiltinName[24]) {
          default: break;
          case 'a':	 // 1 string to match.
            if (memcmp(BuiltinName.data()+25, "nd", 2))
              break;
            return Intrinsic::hexagon_M4_or_and;	 // "__builtin_HEXAGON_M4_or_and"
          case 'x':	 // 1 string to match.
            if (memcmp(BuiltinName.data()+25, "or", 2))
              break;
            return Intrinsic::hexagon_M4_or_xor;	 // "__builtin_HEXAGON_M4_or_xor"
          }
          break;
        case 'v':	 // 1 string to match.
          if (memcmp(BuiltinName.data()+22, "pmpyh", 5))
            break;
          return Intrinsic::hexagon_M4_vpmpyh;	 // "__builtin_HEXAGON_M4_vpmpyh"
        case 'x':	 // 1 string to match.
          if (memcmp(BuiltinName.data()+22, "or_or", 5))
            break;
          return Intrinsic::hexagon_M4_xor_or;	 // "__builtin_HEXAGON_M4_xor_or"
        }
        break;
      }
      break;
    case 'S':	 // 11 strings to match.
      switch (BuiltinName[19]) {
      default: break;
      case '2':	 // 9 strings to match.
        if (BuiltinName[20] != '_')
          break;
        switch (BuiltinName[21]) {
        default: break;
        case 'i':	 // 1 string to match.
          if (memcmp(BuiltinName.data()+22, "nsert", 5))
            break;
          return Intrinsic::hexagon_S2_insert;	 // "__builtin_HEXAGON_S2_insert"
        case 'p':	 // 1 string to match.
          if (memcmp(BuiltinName.data()+22, "ackhl", 5))
            break;
          return Intrinsic::hexagon_S2_packhl;	 // "__builtin_HEXAGON_S2_packhl"
        case 'v':	 // 7 strings to match.
          switch (BuiltinName[22]) {
          default: break;
          case 'c':	 // 1 string to match.
            if (memcmp(BuiltinName.data()+23, "negh", 4))
              break;
            return Intrinsic::hexagon_S2_vcnegh;	 // "__builtin_HEXAGON_S2_vcnegh"
          case 's':	 // 4 strings to match.
            switch (BuiltinName[23]) {
            default: break;
            case 'a':	 // 2 strings to match.
              if (BuiltinName[24] != 't')
                break;
              switch (BuiltinName[25]) {
              default: break;
              case 'h':	 // 1 string to match.
                if (BuiltinName[26] != 'b')
                  break;
                return Intrinsic::hexagon_S2_vsathb;	 // "__builtin_HEXAGON_S2_vsathb"
              case 'w':	 // 1 string to match.
                if (BuiltinName[26] != 'h')
                  break;
                return Intrinsic::hexagon_S2_vsatwh;	 // "__builtin_HEXAGON_S2_vsatwh"
              }
              break;
            case 'x':	 // 2 strings to match.
              if (BuiltinName[24] != 't')
                break;
              switch (BuiltinName[25]) {
              default: break;
              case 'b':	 // 1 string to match.
                if (BuiltinName[26] != 'h')
                  break;
                return Intrinsic::hexagon_S2_vsxtbh;	 // "__builtin_HEXAGON_S2_vsxtbh"
              case 'h':	 // 1 string to match.
                if (BuiltinName[26] != 'w')
                  break;
                return Intrinsic::hexagon_S2_vsxthw;	 // "__builtin_HEXAGON_S2_vsxthw"
              }
              break;
            }
            break;
          case 'z':	 // 2 strings to match.
            if (memcmp(BuiltinName.data()+23, "xt", 2))
              break;
            switch (BuiltinName[25]) {
            default: break;
            case 'b':	 // 1 string to match.
              if (BuiltinName[26] != 'h')
                break;
              return Intrinsic::hexagon_S2_vzxtbh;	 // "__builtin_HEXAGON_S2_vzxtbh"
            case 'h':	 // 1 string to match.
              if (BuiltinName[26] != 'w')
                break;
              return Intrinsic::hexagon_S2_vzxthw;	 // "__builtin_HEXAGON_S2_vzxthw"
            }
            break;
          }
          break;
        }
        break;
      case '4':	 // 2 strings to match.
        if (BuiltinName[20] != '_')
          break;
        switch (BuiltinName[21]) {
        default: break;
        case 'o':	 // 1 string to match.
          if (memcmp(BuiltinName.data()+22, "r_ori", 5))
            break;
          return Intrinsic::hexagon_S4_or_ori;	 // "__builtin_HEXAGON_S4_or_ori"
        case 'p':	 // 1 string to match.
          if (memcmp(BuiltinName.data()+22, "arity", 5))
            break;
          return Intrinsic::hexagon_S4_parity;	 // "__builtin_HEXAGON_S4_parity"
        }
        break;
      }
      break;
    }
    break;
  case 28:	 // 103 strings to match.
    if (memcmp(BuiltinName.data()+0, "__builtin_HEXAGON_", 18))
      break;
    switch (BuiltinName[18]) {
    default: break;
    case 'A':	 // 36 strings to match.
      switch (BuiltinName[19]) {
      default: break;
      case '2':	 // 23 strings to match.
        if (BuiltinName[20] != '_')
          break;
        switch (BuiltinName[21]) {
        default: break;
        case 'a':	 // 1 string to match.
          if (memcmp(BuiltinName.data()+22, "ddpsat", 6))
            break;
          return Intrinsic::hexagon_A2_addpsat;	 // "__builtin_HEXAGON_A2_addpsat"
        case 's':	 // 4 strings to match.
          if (BuiltinName[22] != 'v')
            break;
          switch (BuiltinName[23]) {
          default: break;
          case 'a':	 // 2 strings to match.
            switch (BuiltinName[24]) {
            default: break;
            case 'd':	 // 1 string to match.
              if (memcmp(BuiltinName.data()+25, "dhs", 3))
                break;
              return Intrinsic::hexagon_A2_svaddhs;	 // "__builtin_HEXAGON_A2_svaddhs"
            case 'v':	 // 1 string to match.
              if (memcmp(BuiltinName.data()+25, "ghs", 3))
                break;
              return Intrinsic::hexagon_A2_svavghs;	 // "__builtin_HEXAGON_A2_svavghs"
            }
            break;
          case 'n':	 // 1 string to match.
            if (memcmp(BuiltinName.data()+24, "avgh", 4))
              break;
            return Intrinsic::hexagon_A2_svnavgh;	 // "__builtin_HEXAGON_A2_svnavgh"
          case 's':	 // 1 string to match.
            if (memcmp(BuiltinName.data()+24, "ubhs", 4))
              break;
            return Intrinsic::hexagon_A2_svsubhs;	 // "__builtin_HEXAGON_A2_svsubhs"
          }
          break;
        case 'v':	 // 18 strings to match.
          switch (BuiltinName[22]) {
          default: break;
          case 'a':	 // 7 strings to match.
            switch (BuiltinName[23]) {
            default: break;
            case 'd':	 // 2 strings to match.
              if (memcmp(BuiltinName.data()+24, "du", 2))
                break;
              switch (BuiltinName[26]) {
              default: break;
              case 'b':	 // 1 string to match.
                if (BuiltinName[27] != 's')
                  break;
                return Intrinsic::hexagon_A2_vaddubs;	 // "__builtin_HEXAGON_A2_vaddubs"
              case 'h':	 // 1 string to match.
                if (BuiltinName[27] != 's')
                  break;
                return Intrinsic::hexagon_A2_vadduhs;	 // "__builtin_HEXAGON_A2_vadduhs"
              }
              break;
            case 'v':	 // 5 strings to match.
              if (BuiltinName[24] != 'g')
                break;
              switch (BuiltinName[25]) {
              default: break;
              case 'h':	 // 1 string to match.
                if (memcmp(BuiltinName.data()+26, "cr", 2))
                  break;
                return Intrinsic::hexagon_A2_vavghcr;	 // "__builtin_HEXAGON_A2_vavghcr"
              case 'u':	 // 3 strings to match.
                switch (BuiltinName[26]) {
                default: break;
                case 'b':	 // 1 string to match.
                  if (BuiltinName[27] != 'r')
                    break;
                  return Intrinsic::hexagon_A2_vavgubr;	 // "__builtin_HEXAGON_A2_vavgubr"
                case 'h':	 // 1 string to match.
                  if (BuiltinName[27] != 'r')
                    break;
                  return Intrinsic::hexagon_A2_vavguhr;	 // "__builtin_HEXAGON_A2_vavguhr"
                case 'w':	 // 1 string to match.
                  if (BuiltinName[27] != 'r')
                    break;
                  return Intrinsic::hexagon_A2_vavguwr;	 // "__builtin_HEXAGON_A2_vavguwr"
                }
                break;
              case 'w':	 // 1 string to match.
                if (memcmp(BuiltinName.data()+26, "cr", 2))
                  break;
                return Intrinsic::hexagon_A2_vavgwcr;	 // "__builtin_HEXAGON_A2_vavgwcr"
              }
              break;
            }
            break;
          case 'c':	 // 5 strings to match.
            if (memcmp(BuiltinName.data()+23, "mp", 2))
              break;
            switch (BuiltinName[25]) {
            default: break;
            case 'b':	 // 1 string to match.
              if (memcmp(BuiltinName.data()+26, "eq", 2))
                break;
              return Intrinsic::hexagon_A2_vcmpbeq;	 // "__builtin_HEXAGON_A2_vcmpbeq"
            case 'h':	 // 2 strings to match.
              switch (BuiltinName[26]) {
              default: break;
              case 'e':	 // 1 string to match.
                if (BuiltinName[27] != 'q')
                  break;
                return Intrinsic::hexagon_A2_vcmpheq;	 // "__builtin_HEXAGON_A2_vcmpheq"
              case 'g':	 // 1 string to match.
                if (BuiltinName[27] != 't')
                  break;
                return Intrinsic::hexagon_A2_vcmphgt;	 // "__builtin_HEXAGON_A2_vcmphgt"
              }
              break;
            case 'w':	 // 2 strings to match.
              switch (BuiltinName[26]) {
              default: break;
              case 'e':	 // 1 string to match.
                if (BuiltinName[27] != 'q')
                  break;
                return Intrinsic::hexagon_A2_vcmpweq;	 // "__builtin_HEXAGON_A2_vcmpweq"
              case 'g':	 // 1 string to match.
                if (BuiltinName[27] != 't')
                  break;
                return Intrinsic::hexagon_A2_vcmpwgt;	 // "__builtin_HEXAGON_A2_vcmpwgt"
              }
              break;
            }
            break;
          case 'n':	 // 2 strings to match.
            if (memcmp(BuiltinName.data()+23, "avg", 3))
              break;
            switch (BuiltinName[26]) {
            default: break;
            case 'h':	 // 1 string to match.
              if (BuiltinName[27] != 'r')
                break;
              return Intrinsic::hexagon_A2_vnavghr;	 // "__builtin_HEXAGON_A2_vnavghr"
            case 'w':	 // 1 string to match.
              if (BuiltinName[27] != 'r')
                break;
              return Intrinsic::hexagon_A2_vnavgwr;	 // "__builtin_HEXAGON_A2_vnavgwr"
            }
            break;
          case 'r':	 // 2 strings to match.
            switch (BuiltinName[23]) {
            default: break;
            case 'a':	 // 1 string to match.
              if (memcmp(BuiltinName.data()+24, "ddub", 4))
                break;
              return Intrinsic::hexagon_A2_vraddub;	 // "__builtin_HEXAGON_A2_vraddub"
            case 's':	 // 1 string to match.
              if (memcmp(BuiltinName.data()+24, "adub", 4))
                break;
              return Intrinsic::hexagon_A2_vrsadub;	 // "__builtin_HEXAGON_A2_vrsadub"
            }
            break;
          case 's':	 // 2 strings to match.
            if (memcmp(BuiltinName.data()+23, "ubu", 3))
              break;
            switch (BuiltinName[26]) {
            default: break;
            case 'b':	 // 1 string to match.
              if (BuiltinName[27] != 's')
                break;
              return Intrinsic::hexagon_A2_vsububs;	 // "__builtin_HEXAGON_A2_vsububs"
            case 'h':	 // 1 string to match.
              if (BuiltinName[27] != 's')
                break;
              return Intrinsic::hexagon_A2_vsubuhs;	 // "__builtin_HEXAGON_A2_vsubuhs"
            }
            break;
          }
          break;
        }
        break;
      case '4':	 // 13 strings to match.
        if (BuiltinName[20] != '_')
          break;
        switch (BuiltinName[21]) {
        default: break;
        case 'c':	 // 6 strings to match.
          if (memcmp(BuiltinName.data()+22, "mp", 2))
            break;
          switch (BuiltinName[24]) {
          default: break;
          case 'b':	 // 3 strings to match.
            switch (BuiltinName[25]) {
            default: break;
            case 'e':	 // 1 string to match.
              if (memcmp(BuiltinName.data()+26, "qi", 2))
                break;
              return Intrinsic::hexagon_A4_cmpbeqi;	 // "__builtin_HEXAGON_A4_cmpbeqi"
            case 'g':	 // 2 strings to match.
              if (BuiltinName[26] != 't')
                break;
              switch (BuiltinName[27]) {
              default: break;
              case 'i':	 // 1 string to match.
                return Intrinsic::hexagon_A4_cmpbgti;	 // "__builtin_HEXAGON_A4_cmpbgti"
              case 'u':	 // 1 string to match.
                return Intrinsic::hexagon_A4_cmpbgtu;	 // "__builtin_HEXAGON_A4_cmpbgtu"
              }
              break;
            }
            break;
          case 'h':	 // 3 strings to match.
            switch (BuiltinName[25]) {
            default: break;
            case 'e':	 // 1 string to match.
              if (memcmp(BuiltinName.data()+26, "qi", 2))
                break;
              return Intrinsic::hexagon_A4_cmpheqi;	 // "__builtin_HEXAGON_A4_cmpheqi"
            case 'g':	 // 2 strings to match.
              if (BuiltinName[26] != 't')
                break;
              switch (BuiltinName[27]) {
              default: break;
              case 'i':	 // 1 string to match.
                return Intrinsic::hexagon_A4_cmphgti;	 // "__builtin_HEXAGON_A4_cmphgti"
              case 'u':	 // 1 string to match.
                return Intrinsic::hexagon_A4_cmphgtu;	 // "__builtin_HEXAGON_A4_cmphgtu"
              }
              break;
            }
            break;
          }
          break;
        case 'r':	 // 2 strings to match.
          if (memcmp(BuiltinName.data()+22, "cmp", 3))
            break;
          switch (BuiltinName[25]) {
          default: break;
          case 'e':	 // 1 string to match.
            if (memcmp(BuiltinName.data()+26, "qi", 2))
              break;
            return Intrinsic::hexagon_A4_rcmpeqi;	 // "__builtin_HEXAGON_A4_rcmpeqi"
          case 'n':	 // 1 string to match.
            if (memcmp(BuiltinName.data()+26, "eq", 2))
              break;
            return Intrinsic::hexagon_A4_rcmpneq;	 // "__builtin_HEXAGON_A4_rcmpneq"
          }
          break;
        case 'v':	 // 5 strings to match.
          switch (BuiltinName[22]) {
          default: break;
          case 'c':	 // 1 string to match.
            if (memcmp(BuiltinName.data()+23, "mpbgt", 5))
              break;
            return Intrinsic::hexagon_A4_vcmpbgt;	 // "__builtin_HEXAGON_A4_vcmpbgt"
          case 'r':	 // 4 strings to match.
            if (BuiltinName[23] != 'm')
              break;
            switch (BuiltinName[24]) {
            default: break;
            case 'a':	 // 2 strings to match.
              if (memcmp(BuiltinName.data()+25, "xu", 2))
                break;
              switch (BuiltinName[27]) {
              default: break;
              case 'h':	 // 1 string to match.
                return Intrinsic::hexagon_A4_vrmaxuh;	 // "__builtin_HEXAGON_A4_vrmaxuh"
              case 'w':	 // 1 string to match.
                return Intrinsic::hexagon_A4_vrmaxuw;	 // "__builtin_HEXAGON_A4_vrmaxuw"
              }
              break;
            case 'i':	 // 2 strings to match.
              if (memcmp(BuiltinName.data()+25, "nu", 2))
                break;
              switch (BuiltinName[27]) {
              default: break;
              case 'h':	 // 1 string to match.
                return Intrinsic::hexagon_A4_vrminuh;	 // "__builtin_HEXAGON_A4_vrminuh"
              case 'w':	 // 1 string to match.
                return Intrinsic::hexagon_A4_vrminuw;	 // "__builtin_HEXAGON_A4_vrminuw"
              }
              break;
            }
            break;
          }
          break;
        }
        break;
      }
      break;
    case 'C':	 // 12 strings to match.
      switch (BuiltinName[19]) {
      default: break;
      case '2':	 // 6 strings to match.
        if (BuiltinName[20] != '_')
          break;
        switch (BuiltinName[21]) {
        default: break;
        case 'b':	 // 2 strings to match.
          if (memcmp(BuiltinName.data()+22, "its", 3))
            break;
          switch (BuiltinName[25]) {
          default: break;
          case 'c':	 // 1 string to match.
            if (memcmp(BuiltinName.data()+26, "lr", 2))
              break;
            return Intrinsic::hexagon_C2_bitsclr;	 // "__builtin_HEXAGON_C2_bitsclr"
          case 's':	 // 1 string to match.
            if (memcmp(BuiltinName.data()+26, "et", 2))
              break;
            return Intrinsic::hexagon_C2_bitsset;	 // "__builtin_HEXAGON_C2_bitsset"
          }
          break;
        case 'c':	 // 3 strings to match.
          if (memcmp(BuiltinName.data()+22, "mpg", 3))
            break;
          switch (BuiltinName[25]) {
          default: break;
          case 'e':	 // 1 string to match.
            if (memcmp(BuiltinName.data()+26, "ui", 2))
              break;
            return Intrinsic::hexagon_C2_cmpgeui;	 // "__builtin_HEXAGON_C2_cmpgeui"
          case 't':	 // 2 strings to match.
            if (BuiltinName[26] != 'u')
              break;
            switch (BuiltinName[27]) {
            default: break;
            case 'i':	 // 1 string to match.
              return Intrinsic::hexagon_C2_cmpgtui;	 // "__builtin_HEXAGON_C2_cmpgtui"
            case 'p':	 // 1 string to match.
              return Intrinsic::hexagon_C2_cmpgtup;	 // "__builtin_HEXAGON_C2_cmpgtup"
            }
            break;
          }
          break;
        case 'v':	 // 1 string to match.
          if (memcmp(BuiltinName.data()+22, "itpack", 6))
            break;
          return Intrinsic::hexagon_C2_vitpack;	 // "__builtin_HEXAGON_C2_vitpack"
        }
        break;
      case '4':	 // 6 strings to match.
        if (BuiltinName[20] != '_')
          break;
        switch (BuiltinName[21]) {
        default: break;
        case 'a':	 // 2 strings to match.
          if (memcmp(BuiltinName.data()+22, "nd_", 3))
            break;
          switch (BuiltinName[25]) {
          default: break;
          case 'a':	 // 1 string to match.
            if (memcmp(BuiltinName.data()+26, "nd", 2))
              break;
            return Intrinsic::hexagon_C4_and_and;	 // "__builtin_HEXAGON_C4_and_and"
          case 'o':	 // 1 string to match.
            if (memcmp(BuiltinName.data()+26, "rn", 2))
              break;
            return Intrinsic::hexagon_C4_and_orn;	 // "__builtin_HEXAGON_C4_and_orn"
          }
          break;
        case 'c':	 // 3 strings to match.
          if (memcmp(BuiltinName.data()+22, "mp", 2))
            break;
          switch (BuiltinName[24]) {
          default: break;
          case 'l':	 // 2 strings to match.
            if (memcmp(BuiltinName.data()+25, "te", 2))
              break;
            switch (BuiltinName[27]) {
            default: break;
            case 'i':	 // 1 string to match.
              return Intrinsic::hexagon_C4_cmpltei;	 // "__builtin_HEXAGON_C4_cmpltei"
            case 'u':	 // 1 string to match.
              return Intrinsic::hexagon_C4_cmplteu;	 // "__builtin_HEXAGON_C4_cmplteu"
            }
            break;
          case 'n':	 // 1 string to match.
            if (memcmp(BuiltinName.data()+25, "eqi", 3))
              break;
            return Intrinsic::hexagon_C4_cmpneqi;	 // "__builtin_HEXAGON_C4_cmpneqi"
          }
          break;
        case 'o':	 // 1 string to match.
          if (memcmp(BuiltinName.data()+22, "r_andn", 6))
            break;
          return Intrinsic::hexagon_C4_or_andn;	 // "__builtin_HEXAGON_C4_or_andn"
        }
        break;
      }
      break;
    case 'F':	 // 14 strings to match.
      if (memcmp(BuiltinName.data()+19, "2_", 2))
        break;
      switch (BuiltinName[21]) {
      default: break;
      case 'd':	 // 7 strings to match.
        if (BuiltinName[22] != 'f')
          break;
        switch (BuiltinName[23]) {
        default: break;
        case 'c':	 // 5 strings to match.
          switch (BuiltinName[24]) {
          default: break;
          case 'l':	 // 1 string to match.
            if (memcmp(BuiltinName.data()+25, "ass", 3))
              break;
            return Intrinsic::hexagon_F2_dfclass;	 // "__builtin_HEXAGON_F2_dfclass"
          case 'm':	 // 4 strings to match.
            if (BuiltinName[25] != 'p')
              break;
            switch (BuiltinName[26]) {
            default: break;
            case 'e':	 // 1 string to match.
              if (BuiltinName[27] != 'q')
                break;
              return Intrinsic::hexagon_F2_dfcmpeq;	 // "__builtin_HEXAGON_F2_dfcmpeq"
            case 'g':	 // 2 strings to match.
              switch (BuiltinName[27]) {
              default: break;
              case 'e':	 // 1 string to match.
                return Intrinsic::hexagon_F2_dfcmpge;	 // "__builtin_HEXAGON_F2_dfcmpge"
              case 't':	 // 1 string to match.
                return Intrinsic::hexagon_F2_dfcmpgt;	 // "__builtin_HEXAGON_F2_dfcmpgt"
              }
              break;
            case 'u':	 // 1 string to match.
              if (BuiltinName[27] != 'o')
                break;
              return Intrinsic::hexagon_F2_dfcmpuo;	 // "__builtin_HEXAGON_F2_dfcmpuo"
            }
            break;
          }
          break;
        case 'i':	 // 2 strings to match.
          if (memcmp(BuiltinName.data()+24, "mm_", 3))
            break;
          switch (BuiltinName[27]) {
          default: break;
          case 'n':	 // 1 string to match.
            return Intrinsic::hexagon_F2_dfimm_n;	 // "__builtin_HEXAGON_F2_dfimm_n"
          case 'p':	 // 1 string to match.
            return Intrinsic::hexagon_F2_dfimm_p;	 // "__builtin_HEXAGON_F2_dfimm_p"
          }
          break;
        }
        break;
      case 's':	 // 7 strings to match.
        if (BuiltinName[22] != 'f')
          break;
        switch (BuiltinName[23]) {
        default: break;
        case 'c':	 // 5 strings to match.
          switch (BuiltinName[24]) {
          default: break;
          case 'l':	 // 1 string to match.
            if (memcmp(BuiltinName.data()+25, "ass", 3))
              break;
            return Intrinsic::hexagon_F2_sfclass;	 // "__builtin_HEXAGON_F2_sfclass"
          case 'm':	 // 4 strings to match.
            if (BuiltinName[25] != 'p')
              break;
            switch (BuiltinName[26]) {
            default: break;
            case 'e':	 // 1 string to match.
              if (BuiltinName[27] != 'q')
                break;
              return Intrinsic::hexagon_F2_sfcmpeq;	 // "__builtin_HEXAGON_F2_sfcmpeq"
            case 'g':	 // 2 strings to match.
              switch (BuiltinName[27]) {
              default: break;
              case 'e':	 // 1 string to match.
                return Intrinsic::hexagon_F2_sfcmpge;	 // "__builtin_HEXAGON_F2_sfcmpge"
              case 't':	 // 1 string to match.
                return Intrinsic::hexagon_F2_sfcmpgt;	 // "__builtin_HEXAGON_F2_sfcmpgt"
              }
              break;
            case 'u':	 // 1 string to match.
              if (BuiltinName[27] != 'o')
                break;
              return Intrinsic::hexagon_F2_sfcmpuo;	 // "__builtin_HEXAGON_F2_sfcmpuo"
            }
            break;
          }
          break;
        case 'i':	 // 2 strings to match.
          if (memcmp(BuiltinName.data()+24, "mm_", 3))
            break;
          switch (BuiltinName[27]) {
          default: break;
          case 'n':	 // 1 string to match.
            return Intrinsic::hexagon_F2_sfimm_n;	 // "__builtin_HEXAGON_F2_sfimm_n"
          case 'p':	 // 1 string to match.
            return Intrinsic::hexagon_F2_sfimm_p;	 // "__builtin_HEXAGON_F2_sfimm_p"
          }
          break;
        }
        break;
      }
      break;
    case 'M':	 // 11 strings to match.
      switch (BuiltinName[19]) {
      default: break;
      case '2':	 // 3 strings to match.
        if (BuiltinName[20] != '_')
          break;
        switch (BuiltinName[21]) {
        default: break;
        case 'm':	 // 1 string to match.
          if (memcmp(BuiltinName.data()+22, "pyu_up", 6))
            break;
          return Intrinsic::hexagon_M2_mpyu_up;	 // "__builtin_HEXAGON_M2_mpyu_up"
        case 'v':	 // 2 strings to match.
          switch (BuiltinName[22]) {
          default: break;
          case 'm':	 // 1 string to match.
            if (memcmp(BuiltinName.data()+23, "ac2es", 5))
              break;
            return Intrinsic::hexagon_M2_vmac2es;	 // "__builtin_HEXAGON_M2_vmac2es"
          case 'r':	 // 1 string to match.
            if (memcmp(BuiltinName.data()+23, "adduh", 5))
              break;
            return Intrinsic::hexagon_M2_vradduh;	 // "__builtin_HEXAGON_M2_vradduh"
          }
          break;
        }
        break;
      case '4':	 // 4 strings to match.
        if (BuiltinName[20] != '_')
          break;
        switch (BuiltinName[21]) {
        default: break;
        case 'a':	 // 2 strings to match.
          if (memcmp(BuiltinName.data()+22, "nd_", 3))
            break;
          switch (BuiltinName[25]) {
          default: break;
          case 'a':	 // 1 string to match.
            if (memcmp(BuiltinName.data()+26, "nd", 2))
              break;
            return Intrinsic::hexagon_M4_and_and;	 // "__builtin_HEXAGON_M4_and_and"
          case 'x':	 // 1 string to match.
            if (memcmp(BuiltinName.data()+26, "or", 2))
              break;
            return Intrinsic::hexagon_M4_and_xor;	 // "__builtin_HEXAGON_M4_and_xor"
          }
          break;
        case 'o':	 // 1 string to match.
          if (memcmp(BuiltinName.data()+22, "r_andn", 6))
            break;
          return Intrinsic::hexagon_M4_or_andn;	 // "__builtin_HEXAGON_M4_or_andn"
        case 'x':	 // 1 string to match.
          if (memcmp(BuiltinName.data()+22, "or_and", 6))
            break;
          return Intrinsic::hexagon_M4_xor_and;	 // "__builtin_HEXAGON_M4_xor_and"
        }
        break;
      case '5':	 // 4 strings to match.
        if (memcmp(BuiltinName.data()+20, "_vm", 3))
          break;
        switch (BuiltinName[23]) {
        default: break;
        case 'a':	 // 2 strings to match.
          if (memcmp(BuiltinName.data()+24, "cb", 2))
            break;
          switch (BuiltinName[26]) {
          default: break;
          case 's':	 // 1 string to match.
            if (BuiltinName[27] != 'u')
              break;
            return Intrinsic::hexagon_M5_vmacbsu;	 // "__builtin_HEXAGON_M5_vmacbsu"
          case 'u':	 // 1 string to match.
            if (BuiltinName[27] != 'u')
              break;
            return Intrinsic::hexagon_M5_vmacbuu;	 // "__builtin_HEXAGON_M5_vmacbuu"
          }
          break;
        case 'p':	 // 2 strings to match.
          if (memcmp(BuiltinName.data()+24, "yb", 2))
            break;
          switch (BuiltinName[26]) {
          default: break;
          case 's':	 // 1 string to match.
            if (BuiltinName[27] != 'u')
              break;
            return Intrinsic::hexagon_M5_vmpybsu;	 // "__builtin_HEXAGON_M5_vmpybsu"
          case 'u':	 // 1 string to match.
            if (BuiltinName[27] != 'u')
              break;
            return Intrinsic::hexagon_M5_vmpybuu;	 // "__builtin_HEXAGON_M5_vmpybuu"
          }
          break;
        }
        break;
      }
      break;
    case 'S':	 // 30 strings to match.
      switch (BuiltinName[19]) {
      default: break;
      case '2':	 // 25 strings to match.
        if (BuiltinName[20] != '_')
          break;
        switch (BuiltinName[21]) {
        default: break;
        case 'a':	 // 8 strings to match.
          if (BuiltinName[22] != 's')
            break;
          switch (BuiltinName[23]) {
          default: break;
          case 'l':	 // 4 strings to match.
            if (BuiltinName[24] != '_')
              break;
            switch (BuiltinName[25]) {
            default: break;
            case 'i':	 // 2 strings to match.
              if (BuiltinName[26] != '_')
                break;
              switch (BuiltinName[27]) {
              default: break;
              case 'p':	 // 1 string to match.
                return Intrinsic::hexagon_S2_asl_i_p;	 // "__builtin_HEXAGON_S2_asl_i_p"
              case 'r':	 // 1 string to match.
                return Intrinsic::hexagon_S2_asl_i_r;	 // "__builtin_HEXAGON_S2_asl_i_r"
              }
              break;
            case 'r':	 // 2 strings to match.
              if (BuiltinName[26] != '_')
                break;
              switch (BuiltinName[27]) {
              default: break;
              case 'p':	 // 1 string to match.
                return Intrinsic::hexagon_S2_asl_r_p;	 // "__builtin_HEXAGON_S2_asl_r_p"
              case 'r':	 // 1 string to match.
                return Intrinsic::hexagon_S2_asl_r_r;	 // "__builtin_HEXAGON_S2_asl_r_r"
              }
              break;
            }
            break;
          case 'r':	 // 4 strings to match.
            if (BuiltinName[24] != '_')
              break;
            switch (BuiltinName[25]) {
            default: break;
            case 'i':	 // 2 strings to match.
              if (BuiltinName[26] != '_')
                break;
              switch (BuiltinName[27]) {
              default: break;
              case 'p':	 // 1 string to match.
                return Intrinsic::hexagon_S2_asr_i_p;	 // "__builtin_HEXAGON_S2_asr_i_p"
              case 'r':	 // 1 string to match.
                return Intrinsic::hexagon_S2_asr_i_r;	 // "__builtin_HEXAGON_S2_asr_i_r"
              }
              break;
            case 'r':	 // 2 strings to match.
              if (BuiltinName[26] != '_')
                break;
              switch (BuiltinName[27]) {
              default: break;
              case 'p':	 // 1 string to match.
                return Intrinsic::hexagon_S2_asr_r_p;	 // "__builtin_HEXAGON_S2_asr_r_p"
              case 'r':	 // 1 string to match.
                return Intrinsic::hexagon_S2_asr_r_r;	 // "__builtin_HEXAGON_S2_asr_r_r"
              }
              break;
            }
            break;
          }
          break;
        case 'c':	 // 1 string to match.
          if (memcmp(BuiltinName.data()+22, "lbnorm", 6))
            break;
          return Intrinsic::hexagon_S2_clbnorm;	 // "__builtin_HEXAGON_S2_clbnorm"
        case 'i':	 // 1 string to match.
          if (memcmp(BuiltinName.data()+22, "nsertp", 6))
            break;
          return Intrinsic::hexagon_S2_insertp;	 // "__builtin_HEXAGON_S2_insertp"
        case 'l':	 // 6 strings to match.
          if (BuiltinName[22] != 's')
            break;
          switch (BuiltinName[23]) {
          default: break;
          case 'l':	 // 2 strings to match.
            if (memcmp(BuiltinName.data()+24, "_r_", 3))
              break;
            switch (BuiltinName[27]) {
            default: break;
            case 'p':	 // 1 string to match.
              return Intrinsic::hexagon_S2_lsl_r_p;	 // "__builtin_HEXAGON_S2_lsl_r_p"
            case 'r':	 // 1 string to match.
              return Intrinsic::hexagon_S2_lsl_r_r;	 // "__builtin_HEXAGON_S2_lsl_r_r"
            }
            break;
          case 'r':	 // 4 strings to match.
            if (BuiltinName[24] != '_')
              break;
            switch (BuiltinName[25]) {
            default: break;
            case 'i':	 // 2 strings to match.
              if (BuiltinName[26] != '_')
                break;
              switch (BuiltinName[27]) {
              default: break;
              case 'p':	 // 1 string to match.
                return Intrinsic::hexagon_S2_lsr_i_p;	 // "__builtin_HEXAGON_S2_lsr_i_p"
              case 'r':	 // 1 string to match.
                return Intrinsic::hexagon_S2_lsr_i_r;	 // "__builtin_HEXAGON_S2_lsr_i_r"
              }
              break;
            case 'r':	 // 2 strings to match.
              if (BuiltinName[26] != '_')
                break;
              switch (BuiltinName[27]) {
              default: break;
              case 'p':	 // 1 string to match.
                return Intrinsic::hexagon_S2_lsr_r_p;	 // "__builtin_HEXAGON_S2_lsr_r_p"
              case 'r':	 // 1 string to match.
                return Intrinsic::hexagon_S2_lsr_r_r;	 // "__builtin_HEXAGON_S2_lsr_r_r"
              }
              break;
            }
            break;
          }
          break;
        case 'p':	 // 1 string to match.
          if (memcmp(BuiltinName.data()+22, "arityp", 6))
            break;
          return Intrinsic::hexagon_S2_parityp;	 // "__builtin_HEXAGON_S2_parityp"
        case 's':	 // 5 strings to match.
          switch (BuiltinName[22]) {
          default: break;
          case 'h':	 // 4 strings to match.
            if (memcmp(BuiltinName.data()+23, "uff", 3))
              break;
            switch (BuiltinName[26]) {
            default: break;
            case 'e':	 // 2 strings to match.
              switch (BuiltinName[27]) {
              default: break;
              case 'b':	 // 1 string to match.
                return Intrinsic::hexagon_S2_shuffeb;	 // "__builtin_HEXAGON_S2_shuffeb"
              case 'h':	 // 1 string to match.
                return Intrinsic::hexagon_S2_shuffeh;	 // "__builtin_HEXAGON_S2_shuffeh"
              }
              break;
            case 'o':	 // 2 strings to match.
              switch (BuiltinName[27]) {
              default: break;
              case 'b':	 // 1 string to match.
                return Intrinsic::hexagon_S2_shuffob;	 // "__builtin_HEXAGON_S2_shuffob"
              case 'h':	 // 1 string to match.
                return Intrinsic::hexagon_S2_shuffoh;	 // "__builtin_HEXAGON_S2_shuffoh"
              }
              break;
            }
            break;
          case 'v':	 // 1 string to match.
            if (memcmp(BuiltinName.data()+23, "sathb", 5))
              break;
            return Intrinsic::hexagon_S2_svsathb;	 // "__builtin_HEXAGON_S2_svsathb"
          }
          break;
        case 'v':	 // 3 strings to match.
          switch (BuiltinName[22]) {
          default: break;
          case 'r':	 // 1 string to match.
            if (memcmp(BuiltinName.data()+23, "cnegh", 5))
              break;
            return Intrinsic::hexagon_S2_vrcnegh;	 // "__builtin_HEXAGON_S2_vrcnegh"
          case 's':	 // 2 strings to match.
            if (memcmp(BuiltinName.data()+23, "at", 2))
              break;
            switch (BuiltinName[25]) {
            default: break;
            case 'h':	 // 1 string to match.
              if (memcmp(BuiltinName.data()+26, "ub", 2))
                break;
              return Intrinsic::hexagon_S2_vsathub;	 // "__builtin_HEXAGON_S2_vsathub"
            case 'w':	 // 1 string to match.
              if (memcmp(BuiltinName.data()+26, "uh", 2))
                break;
              return Intrinsic::hexagon_S2_vsatwuh;	 // "__builtin_HEXAGON_S2_vsatwuh"
            }
            break;
          }
          break;
        }
        break;
      case '4':	 // 5 strings to match.
        if (BuiltinName[20] != '_')
          break;
        switch (BuiltinName[21]) {
        default: break;
        case 'a':	 // 1 string to match.
          if (memcmp(BuiltinName.data()+22, "ddaddi", 6))
            break;
          return Intrinsic::hexagon_S4_addaddi;	 // "__builtin_HEXAGON_S4_addaddi"
        case 'c':	 // 1 string to match.
          if (memcmp(BuiltinName.data()+22, "lbaddi", 6))
            break;
          return Intrinsic::hexagon_S4_clbaddi;	 // "__builtin_HEXAGON_S4_clbaddi"
        case 'e':	 // 1 string to match.
          if (memcmp(BuiltinName.data()+22, "xtract", 6))
            break;
          return Intrinsic::hexagon_S4_extract;	 // "__builtin_HEXAGON_S4_extract"
        case 'o':	 // 1 string to match.
          if (memcmp(BuiltinName.data()+22, "r_andi", 6))
            break;
          return Intrinsic::hexagon_S4_or_andi;	 // "__builtin_HEXAGON_S4_or_andi"
        case 's':	 // 1 string to match.
          if (memcmp(BuiltinName.data()+22, "ubaddi", 6))
            break;
          return Intrinsic::hexagon_S4_subaddi;	 // "__builtin_HEXAGON_S4_subaddi"
        }
        break;
      }
      break;
    }
    break;
  case 29:	 // 103 strings to match.
    if (memcmp(BuiltinName.data()+0, "__builtin_HEXAGON_", 18))
      break;
    switch (BuiltinName[18]) {
    default: break;
    case 'A':	 // 26 strings to match.
      switch (BuiltinName[19]) {
      default: break;
      case '2':	 // 11 strings to match.
        if (BuiltinName[20] != '_')
          break;
        switch (BuiltinName[21]) {
        default: break;
        case 'c':	 // 1 string to match.
          if (memcmp(BuiltinName.data()+22, "ombinew", 7))
            break;
          return Intrinsic::hexagon_A2_combinew;	 // "__builtin_HEXAGON_A2_combinew"
        case 'r':	 // 1 string to match.
          if (memcmp(BuiltinName.data()+22, "oundsat", 7))
            break;
          return Intrinsic::hexagon_A2_roundsat;	 // "__builtin_HEXAGON_A2_roundsat"
        case 's':	 // 2 strings to match.
          if (BuiltinName[22] != 'v')
            break;
          switch (BuiltinName[23]) {
          default: break;
          case 'a':	 // 1 string to match.
            if (memcmp(BuiltinName.data()+24, "dduhs", 5))
              break;
            return Intrinsic::hexagon_A2_svadduhs;	 // "__builtin_HEXAGON_A2_svadduhs"
          case 's':	 // 1 string to match.
            if (memcmp(BuiltinName.data()+24, "ubuhs", 5))
              break;
            return Intrinsic::hexagon_A2_svsubuhs;	 // "__builtin_HEXAGON_A2_svsubuhs"
          }
          break;
        case 'v':	 // 7 strings to match.
          switch (BuiltinName[22]) {
          default: break;
          case 'a':	 // 2 strings to match.
            if (memcmp(BuiltinName.data()+23, "bs", 2))
              break;
            switch (BuiltinName[25]) {
            default: break;
            case 'h':	 // 1 string to match.
              if (memcmp(BuiltinName.data()+26, "sat", 3))
                break;
              return Intrinsic::hexagon_A2_vabshsat;	 // "__builtin_HEXAGON_A2_vabshsat"
            case 'w':	 // 1 string to match.
              if (memcmp(BuiltinName.data()+26, "sat", 3))
                break;
              return Intrinsic::hexagon_A2_vabswsat;	 // "__builtin_HEXAGON_A2_vabswsat"
            }
            break;
          case 'c':	 // 3 strings to match.
            if (memcmp(BuiltinName.data()+23, "mp", 2))
              break;
            switch (BuiltinName[25]) {
            default: break;
            case 'b':	 // 1 string to match.
              if (memcmp(BuiltinName.data()+26, "gtu", 3))
                break;
              return Intrinsic::hexagon_A2_vcmpbgtu;	 // "__builtin_HEXAGON_A2_vcmpbgtu"
            case 'h':	 // 1 string to match.
              if (memcmp(BuiltinName.data()+26, "gtu", 3))
                break;
              return Intrinsic::hexagon_A2_vcmphgtu;	 // "__builtin_HEXAGON_A2_vcmphgtu"
            case 'w':	 // 1 string to match.
              if (memcmp(BuiltinName.data()+26, "gtu", 3))
                break;
              return Intrinsic::hexagon_A2_vcmpwgtu;	 // "__builtin_HEXAGON_A2_vcmpwgtu"
            }
            break;
          case 'n':	 // 2 strings to match.
            if (memcmp(BuiltinName.data()+23, "avg", 3))
              break;
            switch (BuiltinName[26]) {
            default: break;
            case 'h':	 // 1 string to match.
              if (memcmp(BuiltinName.data()+27, "cr", 2))
                break;
              return Intrinsic::hexagon_A2_vnavghcr;	 // "__builtin_HEXAGON_A2_vnavghcr"
            case 'w':	 // 1 string to match.
              if (memcmp(BuiltinName.data()+27, "cr", 2))
                break;
              return Intrinsic::hexagon_A2_vnavgwcr;	 // "__builtin_HEXAGON_A2_vnavgwcr"
            }
            break;
          }
          break;
        }
        break;
      case '4':	 // 14 strings to match.
        if (BuiltinName[20] != '_')
          break;
        switch (BuiltinName[21]) {
        default: break;
        case 'b':	 // 1 string to match.
          if (memcmp(BuiltinName.data()+22, "itsplit", 7))
            break;
          return Intrinsic::hexagon_A4_bitsplit;	 // "__builtin_HEXAGON_A4_bitsplit"
        case 'c':	 // 2 strings to match.
          if (memcmp(BuiltinName.data()+22, "mp", 2))
            break;
          switch (BuiltinName[24]) {
          default: break;
          case 'b':	 // 1 string to match.
            if (memcmp(BuiltinName.data()+25, "gtui", 4))
              break;
            return Intrinsic::hexagon_A4_cmpbgtui;	 // "__builtin_HEXAGON_A4_cmpbgtui"
          case 'h':	 // 1 string to match.
            if (memcmp(BuiltinName.data()+25, "gtui", 4))
              break;
            return Intrinsic::hexagon_A4_cmphgtui;	 // "__builtin_HEXAGON_A4_cmphgtui"
          }
          break;
        case 'm':	 // 1 string to match.
          if (memcmp(BuiltinName.data()+22, "odwrapu", 7))
            break;
          return Intrinsic::hexagon_A4_modwrapu;	 // "__builtin_HEXAGON_A4_modwrapu"
        case 'r':	 // 3 strings to match.
          switch (BuiltinName[22]) {
          default: break;
          case 'c':	 // 1 string to match.
            if (memcmp(BuiltinName.data()+23, "mpneqi", 6))
              break;
            return Intrinsic::hexagon_A4_rcmpneqi;	 // "__builtin_HEXAGON_A4_rcmpneqi"
          case 'o':	 // 2 strings to match.
            if (memcmp(BuiltinName.data()+23, "und_r", 5))
              break;
            switch (BuiltinName[28]) {
            default: break;
            case 'i':	 // 1 string to match.
              return Intrinsic::hexagon_A4_round_ri;	 // "__builtin_HEXAGON_A4_round_ri"
            case 'r':	 // 1 string to match.
              return Intrinsic::hexagon_A4_round_rr;	 // "__builtin_HEXAGON_A4_round_rr"
            }
            break;
          }
          break;
        case 't':	 // 1 string to match.
          if (memcmp(BuiltinName.data()+22, "lbmatch", 7))
            break;
          return Intrinsic::hexagon_A4_tlbmatch;	 // "__builtin_HEXAGON_A4_tlbmatch"
        case 'v':	 // 6 strings to match.
          if (memcmp(BuiltinName.data()+22, "cmp", 3))
            break;
          switch (BuiltinName[25]) {
          default: break;
          case 'b':	 // 2 strings to match.
            switch (BuiltinName[26]) {
            default: break;
            case 'e':	 // 1 string to match.
              if (memcmp(BuiltinName.data()+27, "qi", 2))
                break;
              return Intrinsic::hexagon_A4_vcmpbeqi;	 // "__builtin_HEXAGON_A4_vcmpbeqi"
            case 'g':	 // 1 string to match.
              if (memcmp(BuiltinName.data()+27, "ti", 2))
                break;
              return Intrinsic::hexagon_A4_vcmpbgti;	 // "__builtin_HEXAGON_A4_vcmpbgti"
            }
            break;
          case 'h':	 // 2 strings to match.
            switch (BuiltinName[26]) {
            default: break;
            case 'e':	 // 1 string to match.
              if (memcmp(BuiltinName.data()+27, "qi", 2))
                break;
              return Intrinsic::hexagon_A4_vcmpheqi;	 // "__builtin_HEXAGON_A4_vcmpheqi"
            case 'g':	 // 1 string to match.
              if (memcmp(BuiltinName.data()+27, "ti", 2))
                break;
              return Intrinsic::hexagon_A4_vcmphgti;	 // "__builtin_HEXAGON_A4_vcmphgti"
            }
            break;
          case 'w':	 // 2 strings to match.
            switch (BuiltinName[26]) {
            default: break;
            case 'e':	 // 1 string to match.
              if (memcmp(BuiltinName.data()+27, "qi", 2))
                break;
              return Intrinsic::hexagon_A4_vcmpweqi;	 // "__builtin_HEXAGON_A4_vcmpweqi"
            case 'g':	 // 1 string to match.
              if (memcmp(BuiltinName.data()+27, "ti", 2))
                break;
              return Intrinsic::hexagon_A4_vcmpwgti;	 // "__builtin_HEXAGON_A4_vcmpwgti"
            }
            break;
          }
          break;
        }
        break;
      case '5':	 // 1 string to match.
        if (memcmp(BuiltinName.data()+20, "_vaddhubs", 9))
          break;
        return Intrinsic::hexagon_A5_vaddhubs;	 // "__builtin_HEXAGON_A5_vaddhubs"
      }
      break;
    case 'C':	 // 5 strings to match.
      switch (BuiltinName[19]) {
      default: break;
      case '2':	 // 1 string to match.
        if (memcmp(BuiltinName.data()+20, "_bitsclri", 9))
          break;
        return Intrinsic::hexagon_C2_bitsclri;	 // "__builtin_HEXAGON_C2_bitsclri"
      case '4':	 // 4 strings to match.
        if (BuiltinName[20] != '_')
          break;
        switch (BuiltinName[21]) {
        default: break;
        case 'a':	 // 1 string to match.
          if (memcmp(BuiltinName.data()+22, "nd_andn", 7))
            break;
          return Intrinsic::hexagon_C4_and_andn;	 // "__builtin_HEXAGON_C4_and_andn"
        case 'c':	 // 1 string to match.
          if (memcmp(BuiltinName.data()+22, "mplteui", 7))
            break;
          return Intrinsic::hexagon_C4_cmplteui;	 // "__builtin_HEXAGON_C4_cmplteui"
        case 'n':	 // 2 strings to match.
          if (memcmp(BuiltinName.data()+22, "bits", 4))
            break;
          switch (BuiltinName[26]) {
          default: break;
          case 'c':	 // 1 string to match.
            if (memcmp(BuiltinName.data()+27, "lr", 2))
              break;
            return Intrinsic::hexagon_C4_nbitsclr;	 // "__builtin_HEXAGON_C4_nbitsclr"
          case 's':	 // 1 string to match.
            if (memcmp(BuiltinName.data()+27, "et", 2))
              break;
            return Intrinsic::hexagon_C4_nbitsset;	 // "__builtin_HEXAGON_C4_nbitsset"
          }
          break;
        }
        break;
      }
      break;
    case 'F':	 // 8 strings to match.
      if (memcmp(BuiltinName.data()+19, "2_", 2))
        break;
      switch (BuiltinName[21]) {
      default: break;
      case 'd':	 // 4 strings to match.
        if (memcmp(BuiltinName.data()+22, "ff", 2))
          break;
        switch (BuiltinName[24]) {
        default: break;
        case 'i':	 // 3 strings to match.
          if (memcmp(BuiltinName.data()+25, "xup", 3))
            break;
          switch (BuiltinName[28]) {
          default: break;
          case 'd':	 // 1 string to match.
            return Intrinsic::hexagon_F2_dffixupd;	 // "__builtin_HEXAGON_F2_dffixupd"
          case 'n':	 // 1 string to match.
            return Intrinsic::hexagon_F2_dffixupn;	 // "__builtin_HEXAGON_F2_dffixupn"
          case 'r':	 // 1 string to match.
            return Intrinsic::hexagon_F2_dffixupr;	 // "__builtin_HEXAGON_F2_dffixupr"
          }
          break;
        case 'm':	 // 1 string to match.
          if (memcmp(BuiltinName.data()+25, "a_sc", 4))
            break;
          return Intrinsic::hexagon_F2_dffma_sc;	 // "__builtin_HEXAGON_F2_dffma_sc"
        }
        break;
      case 's':	 // 4 strings to match.
        if (memcmp(BuiltinName.data()+22, "ff", 2))
          break;
        switch (BuiltinName[24]) {
        default: break;
        case 'i':	 // 3 strings to match.
          if (memcmp(BuiltinName.data()+25, "xup", 3))
            break;
          switch (BuiltinName[28]) {
          default: break;
          case 'd':	 // 1 string to match.
            return Intrinsic::hexagon_F2_sffixupd;	 // "__builtin_HEXAGON_F2_sffixupd"
          case 'n':	 // 1 string to match.
            return Intrinsic::hexagon_F2_sffixupn;	 // "__builtin_HEXAGON_F2_sffixupn"
          case 'r':	 // 1 string to match.
            return Intrinsic::hexagon_F2_sffixupr;	 // "__builtin_HEXAGON_F2_sffixupr"
          }
          break;
        case 'm':	 // 1 string to match.
          if (memcmp(BuiltinName.data()+25, "a_sc", 4))
            break;
          return Intrinsic::hexagon_F2_sffma_sc;	 // "__builtin_HEXAGON_F2_sffma_sc"
        }
        break;
      }
      break;
    case 'M':	 // 29 strings to match.
      switch (BuiltinName[19]) {
      default: break;
      case '2':	 // 18 strings to match.
        if (BuiltinName[20] != '_')
          break;
        switch (BuiltinName[21]) {
        default: break;
        case 'c':	 // 10 strings to match.
          switch (BuiltinName[22]) {
          default: break;
          case 'm':	 // 8 strings to match.
            switch (BuiltinName[23]) {
            default: break;
            case 'a':	 // 4 strings to match.
              if (BuiltinName[24] != 'c')
                break;
              switch (BuiltinName[25]) {
              default: break;
              case 'i':	 // 1 string to match.
                if (memcmp(BuiltinName.data()+26, "_s0", 3))
                  break;
                return Intrinsic::hexagon_M2_cmaci_s0;	 // "__builtin_HEXAGON_M2_cmaci_s0"
              case 'r':	 // 1 string to match.
                if (memcmp(BuiltinName.data()+26, "_s0", 3))
                  break;
                return Intrinsic::hexagon_M2_cmacr_s0;	 // "__builtin_HEXAGON_M2_cmacr_s0"
              case 's':	 // 2 strings to match.
                if (memcmp(BuiltinName.data()+26, "_s", 2))
                  break;
                switch (BuiltinName[28]) {
                default: break;
                case '0':	 // 1 string to match.
                  return Intrinsic::hexagon_M2_cmacs_s0;	 // "__builtin_HEXAGON_M2_cmacs_s0"
                case '1':	 // 1 string to match.
                  return Intrinsic::hexagon_M2_cmacs_s1;	 // "__builtin_HEXAGON_M2_cmacs_s1"
                }
                break;
              }
              break;
            case 'p':	 // 4 strings to match.
              if (BuiltinName[24] != 'y')
                break;
              switch (BuiltinName[25]) {
              default: break;
              case 'i':	 // 1 string to match.
                if (memcmp(BuiltinName.data()+26, "_s0", 3))
                  break;
                return Intrinsic::hexagon_M2_cmpyi_s0;	 // "__builtin_HEXAGON_M2_cmpyi_s0"
              case 'r':	 // 1 string to match.
                if (memcmp(BuiltinName.data()+26, "_s0", 3))
                  break;
                return Intrinsic::hexagon_M2_cmpyr_s0;	 // "__builtin_HEXAGON_M2_cmpyr_s0"
              case 's':	 // 2 strings to match.
                if (memcmp(BuiltinName.data()+26, "_s", 2))
                  break;
                switch (BuiltinName[28]) {
                default: break;
                case '0':	 // 1 string to match.
                  return Intrinsic::hexagon_M2_cmpys_s0;	 // "__builtin_HEXAGON_M2_cmpys_s0"
                case '1':	 // 1 string to match.
                  return Intrinsic::hexagon_M2_cmpys_s1;	 // "__builtin_HEXAGON_M2_cmpys_s1"
                }
                break;
              }
              break;
            }
            break;
          case 'n':	 // 2 strings to match.
            if (memcmp(BuiltinName.data()+23, "acs_s", 5))
              break;
            switch (BuiltinName[28]) {
            default: break;
            case '0':	 // 1 string to match.
              return Intrinsic::hexagon_M2_cnacs_s0;	 // "__builtin_HEXAGON_M2_cnacs_s0"
            case '1':	 // 1 string to match.
              return Intrinsic::hexagon_M2_cnacs_s1;	 // "__builtin_HEXAGON_M2_cnacs_s1"
            }
            break;
          }
          break;
        case 'm':	 // 5 strings to match.
          switch (BuiltinName[22]) {
          default: break;
          case 'm':	 // 4 strings to match.
            if (memcmp(BuiltinName.data()+23, "py", 2))
              break;
            switch (BuiltinName[25]) {
            default: break;
            case 'h':	 // 2 strings to match.
              if (memcmp(BuiltinName.data()+26, "_s", 2))
                break;
              switch (BuiltinName[28]) {
              default: break;
              case '0':	 // 1 string to match.
                return Intrinsic::hexagon_M2_mmpyh_s0;	 // "__builtin_HEXAGON_M2_mmpyh_s0"
              case '1':	 // 1 string to match.
                return Intrinsic::hexagon_M2_mmpyh_s1;	 // "__builtin_HEXAGON_M2_mmpyh_s1"
              }
              break;
            case 'l':	 // 2 strings to match.
              if (memcmp(BuiltinName.data()+26, "_s", 2))
                break;
              switch (BuiltinName[28]) {
              default: break;
              case '0':	 // 1 string to match.
                return Intrinsic::hexagon_M2_mmpyl_s0;	 // "__builtin_HEXAGON_M2_mmpyl_s0"
              case '1':	 // 1 string to match.
                return Intrinsic::hexagon_M2_mmpyl_s1;	 // "__builtin_HEXAGON_M2_mmpyl_s1"
              }
              break;
            }
            break;
          case 'p':	 // 1 string to match.
            if (memcmp(BuiltinName.data()+23, "ysu_up", 6))
              break;
            return Intrinsic::hexagon_M2_mpysu_up;	 // "__builtin_HEXAGON_M2_mpysu_up"
          }
          break;
        case 'v':	 // 2 strings to match.
          if (memcmp(BuiltinName.data()+22, "rm", 2))
            break;
          switch (BuiltinName[24]) {
          default: break;
          case 'a':	 // 1 string to match.
            if (memcmp(BuiltinName.data()+25, "c_s0", 4))
              break;
            return Intrinsic::hexagon_M2_vrmac_s0;	 // "__builtin_HEXAGON_M2_vrmac_s0"
          case 'p':	 // 1 string to match.
            if (memcmp(BuiltinName.data()+25, "y_s0", 4))
              break;
            return Intrinsic::hexagon_M2_vrmpy_s0;	 // "__builtin_HEXAGON_M2_vrmpy_s0"
          }
          break;
        case 'x':	 // 1 string to match.
          if (memcmp(BuiltinName.data()+22, "or_xacc", 7))
            break;
          return Intrinsic::hexagon_M2_xor_xacc;	 // "__builtin_HEXAGON_M2_xor_xacc"
        }
        break;
      case '4':	 // 5 strings to match.
        if (BuiltinName[20] != '_')
          break;
        switch (BuiltinName[21]) {
        default: break;
        case 'a':	 // 1 string to match.
          if (memcmp(BuiltinName.data()+22, "nd_andn", 7))
            break;
          return Intrinsic::hexagon_M4_and_andn;	 // "__builtin_HEXAGON_M4_and_andn"
        case 'c':	 // 2 strings to match.
          if (memcmp(BuiltinName.data()+22, "mpy", 3))
            break;
          switch (BuiltinName[25]) {
          default: break;
          case 'i':	 // 1 string to match.
            if (memcmp(BuiltinName.data()+26, "_wh", 3))
              break;
            return Intrinsic::hexagon_M4_cmpyi_wh;	 // "__builtin_HEXAGON_M4_cmpyi_wh"
          case 'r':	 // 1 string to match.
            if (memcmp(BuiltinName.data()+26, "_wh", 3))
              break;
            return Intrinsic::hexagon_M4_cmpyr_wh;	 // "__builtin_HEXAGON_M4_cmpyr_wh"
          }
          break;
        case 'x':	 // 2 strings to match.
          if (memcmp(BuiltinName.data()+22, "or_", 3))
            break;
          switch (BuiltinName[25]) {
          default: break;
          case 'a':	 // 1 string to match.
            if (memcmp(BuiltinName.data()+26, "ndn", 3))
              break;
            return Intrinsic::hexagon_M4_xor_andn;	 // "__builtin_HEXAGON_M4_xor_andn"
          case 'x':	 // 1 string to match.
            if (memcmp(BuiltinName.data()+26, "acc", 3))
              break;
            return Intrinsic::hexagon_M4_xor_xacc;	 // "__builtin_HEXAGON_M4_xor_xacc"
          }
          break;
        }
        break;
      case '5':	 // 6 strings to match.
        if (memcmp(BuiltinName.data()+20, "_v", 2))
          break;
        switch (BuiltinName[22]) {
        default: break;
        case 'd':	 // 2 strings to match.
          if (BuiltinName[23] != 'm')
            break;
          switch (BuiltinName[24]) {
          default: break;
          case 'a':	 // 1 string to match.
            if (memcmp(BuiltinName.data()+25, "cbsu", 4))
              break;
            return Intrinsic::hexagon_M5_vdmacbsu;	 // "__builtin_HEXAGON_M5_vdmacbsu"
          case 'p':	 // 1 string to match.
            if (memcmp(BuiltinName.data()+25, "ybsu", 4))
              break;
            return Intrinsic::hexagon_M5_vdmpybsu;	 // "__builtin_HEXAGON_M5_vdmpybsu"
          }
          break;
        case 'r':	 // 4 strings to match.
          if (BuiltinName[23] != 'm')
            break;
          switch (BuiltinName[24]) {
          default: break;
          case 'a':	 // 2 strings to match.
            if (memcmp(BuiltinName.data()+25, "cb", 2))
              break;
            switch (BuiltinName[27]) {
            default: break;
            case 's':	 // 1 string to match.
              if (BuiltinName[28] != 'u')
                break;
              return Intrinsic::hexagon_M5_vrmacbsu;	 // "__builtin_HEXAGON_M5_vrmacbsu"
            case 'u':	 // 1 string to match.
              if (BuiltinName[28] != 'u')
                break;
              return Intrinsic::hexagon_M5_vrmacbuu;	 // "__builtin_HEXAGON_M5_vrmacbuu"
            }
            break;
          case 'p':	 // 2 strings to match.
            if (memcmp(BuiltinName.data()+25, "yb", 2))
              break;
            switch (BuiltinName[27]) {
            default: break;
            case 's':	 // 1 string to match.
              if (BuiltinName[28] != 'u')
                break;
              return Intrinsic::hexagon_M5_vrmpybsu;	 // "__builtin_HEXAGON_M5_vrmpybsu"
            case 'u':	 // 1 string to match.
              if (BuiltinName[28] != 'u')
                break;
              return Intrinsic::hexagon_M5_vrmpybuu;	 // "__builtin_HEXAGON_M5_vrmpybuu"
            }
            break;
          }
          break;
        }
        break;
      }
      break;
    case 'S':	 // 35 strings to match.
      switch (BuiltinName[19]) {
      default: break;
      case '2':	 // 31 strings to match.
        if (BuiltinName[20] != '_')
          break;
        switch (BuiltinName[21]) {
        default: break;
        case 'a':	 // 8 strings to match.
          if (BuiltinName[22] != 's')
            break;
          switch (BuiltinName[23]) {
          default: break;
          case 'l':	 // 4 strings to match.
            if (BuiltinName[24] != '_')
              break;
            switch (BuiltinName[25]) {
            default: break;
            case 'i':	 // 2 strings to match.
              if (memcmp(BuiltinName.data()+26, "_v", 2))
                break;
              switch (BuiltinName[28]) {
              default: break;
              case 'h':	 // 1 string to match.
                return Intrinsic::hexagon_S2_asl_i_vh;	 // "__builtin_HEXAGON_S2_asl_i_vh"
              case 'w':	 // 1 string to match.
                return Intrinsic::hexagon_S2_asl_i_vw;	 // "__builtin_HEXAGON_S2_asl_i_vw"
              }
              break;
            case 'r':	 // 2 strings to match.
              if (memcmp(BuiltinName.data()+26, "_v", 2))
                break;
              switch (BuiltinName[28]) {
              default: break;
              case 'h':	 // 1 string to match.
                return Intrinsic::hexagon_S2_asl_r_vh;	 // "__builtin_HEXAGON_S2_asl_r_vh"
              case 'w':	 // 1 string to match.
                return Intrinsic::hexagon_S2_asl_r_vw;	 // "__builtin_HEXAGON_S2_asl_r_vw"
              }
              break;
            }
            break;
          case 'r':	 // 4 strings to match.
            if (BuiltinName[24] != '_')
              break;
            switch (BuiltinName[25]) {
            default: break;
            case 'i':	 // 2 strings to match.
              if (memcmp(BuiltinName.data()+26, "_v", 2))
                break;
              switch (BuiltinName[28]) {
              default: break;
              case 'h':	 // 1 string to match.
                return Intrinsic::hexagon_S2_asr_i_vh;	 // "__builtin_HEXAGON_S2_asr_i_vh"
              case 'w':	 // 1 string to match.
                return Intrinsic::hexagon_S2_asr_i_vw;	 // "__builtin_HEXAGON_S2_asr_i_vw"
              }
              break;
            case 'r':	 // 2 strings to match.
              if (memcmp(BuiltinName.data()+26, "_v", 2))
                break;
              switch (BuiltinName[28]) {
              default: break;
              case 'h':	 // 1 string to match.
                return Intrinsic::hexagon_S2_asr_r_vh;	 // "__builtin_HEXAGON_S2_asr_r_vh"
              case 'w':	 // 1 string to match.
                return Intrinsic::hexagon_S2_asr_r_vw;	 // "__builtin_HEXAGON_S2_asr_r_vw"
              }
              break;
            }
            break;
          }
          break;
        case 'c':	 // 2 strings to match.
          if (memcmp(BuiltinName.data()+22, "lrbit_", 6))
            break;
          switch (BuiltinName[28]) {
          default: break;
          case 'i':	 // 1 string to match.
            return Intrinsic::hexagon_S2_clrbit_i;	 // "__builtin_HEXAGON_S2_clrbit_i"
          case 'r':	 // 1 string to match.
            return Intrinsic::hexagon_S2_clrbit_r;	 // "__builtin_HEXAGON_S2_clrbit_r"
          }
          break;
        case 'e':	 // 1 string to match.
          if (memcmp(BuiltinName.data()+22, "xtractu", 7))
            break;
          return Intrinsic::hexagon_S2_extractu;	 // "__builtin_HEXAGON_S2_extractu"
        case 'l':	 // 6 strings to match.
          if (BuiltinName[22] != 's')
            break;
          switch (BuiltinName[23]) {
          default: break;
          case 'l':	 // 2 strings to match.
            if (memcmp(BuiltinName.data()+24, "_r_v", 4))
              break;
            switch (BuiltinName[28]) {
            default: break;
            case 'h':	 // 1 string to match.
              return Intrinsic::hexagon_S2_lsl_r_vh;	 // "__builtin_HEXAGON_S2_lsl_r_vh"
            case 'w':	 // 1 string to match.
              return Intrinsic::hexagon_S2_lsl_r_vw;	 // "__builtin_HEXAGON_S2_lsl_r_vw"
            }
            break;
          case 'r':	 // 4 strings to match.
            if (BuiltinName[24] != '_')
              break;
            switch (BuiltinName[25]) {
            default: break;
            case 'i':	 // 2 strings to match.
              if (memcmp(BuiltinName.data()+26, "_v", 2))
                break;
              switch (BuiltinName[28]) {
              default: break;
              case 'h':	 // 1 string to match.
                return Intrinsic::hexagon_S2_lsr_i_vh;	 // "__builtin_HEXAGON_S2_lsr_i_vh"
              case 'w':	 // 1 string to match.
                return Intrinsic::hexagon_S2_lsr_i_vw;	 // "__builtin_HEXAGON_S2_lsr_i_vw"
              }
              break;
            case 'r':	 // 2 strings to match.
              if (memcmp(BuiltinName.data()+26, "_v", 2))
                break;
              switch (BuiltinName[28]) {
              default: break;
              case 'h':	 // 1 string to match.
                return Intrinsic::hexagon_S2_lsr_r_vh;	 // "__builtin_HEXAGON_S2_lsr_r_vh"
              case 'w':	 // 1 string to match.
                return Intrinsic::hexagon_S2_lsr_r_vw;	 // "__builtin_HEXAGON_S2_lsr_r_vw"
              }
              break;
            }
            break;
          }
          break;
        case 's':	 // 3 strings to match.
          switch (BuiltinName[22]) {
          default: break;
          case 'e':	 // 2 strings to match.
            if (memcmp(BuiltinName.data()+23, "tbit_", 5))
              break;
            switch (BuiltinName[28]) {
            default: break;
            case 'i':	 // 1 string to match.
              return Intrinsic::hexagon_S2_setbit_i;	 // "__builtin_HEXAGON_S2_setbit_i"
            case 'r':	 // 1 string to match.
              return Intrinsic::hexagon_S2_setbit_r;	 // "__builtin_HEXAGON_S2_setbit_r"
            }
            break;
          case 'v':	 // 1 string to match.
            if (memcmp(BuiltinName.data()+23, "sathub", 6))
              break;
            return Intrinsic::hexagon_S2_svsathub;	 // "__builtin_HEXAGON_S2_svsathub"
          }
          break;
        case 't':	 // 2 strings to match.
          if (memcmp(BuiltinName.data()+22, "stbit_", 6))
            break;
          switch (BuiltinName[28]) {
          default: break;
          case 'i':	 // 1 string to match.
            return Intrinsic::hexagon_S2_tstbit_i;	 // "__builtin_HEXAGON_S2_tstbit_i"
          case 'r':	 // 1 string to match.
            return Intrinsic::hexagon_S2_tstbit_r;	 // "__builtin_HEXAGON_S2_tstbit_r"
          }
          break;
        case 'v':	 // 9 strings to match.
          switch (BuiltinName[22]) {
          default: break;
          case 'a':	 // 2 strings to match.
            if (memcmp(BuiltinName.data()+23, "lign", 4))
              break;
            switch (BuiltinName[27]) {
            default: break;
            case 'i':	 // 1 string to match.
              if (BuiltinName[28] != 'b')
                break;
              return Intrinsic::hexagon_S2_valignib;	 // "__builtin_HEXAGON_S2_valignib"
            case 'r':	 // 1 string to match.
              if (BuiltinName[28] != 'b')
                break;
              return Intrinsic::hexagon_S2_valignrb;	 // "__builtin_HEXAGON_S2_valignrb"
            }
            break;
          case 'c':	 // 1 string to match.
            if (memcmp(BuiltinName.data()+23, "rotate", 6))
              break;
            return Intrinsic::hexagon_S2_vcrotate;	 // "__builtin_HEXAGON_S2_vcrotate"
          case 's':	 // 2 strings to match.
            if (memcmp(BuiltinName.data()+23, "platr", 5))
              break;
            switch (BuiltinName[28]) {
            default: break;
            case 'b':	 // 1 string to match.
              return Intrinsic::hexagon_S2_vsplatrb;	 // "__builtin_HEXAGON_S2_vsplatrb"
            case 'h':	 // 1 string to match.
              return Intrinsic::hexagon_S2_vsplatrh;	 // "__builtin_HEXAGON_S2_vsplatrh"
            }
            break;
          case 't':	 // 4 strings to match.
            if (memcmp(BuiltinName.data()+23, "run", 3))
              break;
            switch (BuiltinName[26]) {
            default: break;
            case 'e':	 // 2 strings to match.
              switch (BuiltinName[27]) {
              default: break;
              case 'h':	 // 1 string to match.
                if (BuiltinName[28] != 'b')
                  break;
                return Intrinsic::hexagon_S2_vtrunehb;	 // "__builtin_HEXAGON_S2_vtrunehb"
              case 'w':	 // 1 string to match.
                if (BuiltinName[28] != 'h')
                  break;
                return Intrinsic::hexagon_S2_vtrunewh;	 // "__builtin_HEXAGON_S2_vtrunewh"
              }
              break;
            case 'o':	 // 2 strings to match.
              switch (BuiltinName[27]) {
              default: break;
              case 'h':	 // 1 string to match.
                if (BuiltinName[28] != 'b')
                  break;
                return Intrinsic::hexagon_S2_vtrunohb;	 // "__builtin_HEXAGON_S2_vtrunohb"
              case 'w':	 // 1 string to match.
                if (BuiltinName[28] != 'h')
                  break;
                return Intrinsic::hexagon_S2_vtrunowh;	 // "__builtin_HEXAGON_S2_vtrunowh"
              }
              break;
            }
            break;
          }
          break;
        }
        break;
      case '4':	 // 4 strings to match.
        if (BuiltinName[20] != '_')
          break;
        switch (BuiltinName[21]) {
        default: break;
        case 'c':	 // 2 strings to match.
          if (memcmp(BuiltinName.data()+22, "lbp", 3))
            break;
          switch (BuiltinName[25]) {
          default: break;
          case 'a':	 // 1 string to match.
            if (memcmp(BuiltinName.data()+26, "ddi", 3))
              break;
            return Intrinsic::hexagon_S4_clbpaddi;	 // "__builtin_HEXAGON_S4_clbpaddi"
          case 'n':	 // 1 string to match.
            if (memcmp(BuiltinName.data()+26, "orm", 3))
              break;
            return Intrinsic::hexagon_S4_clbpnorm;	 // "__builtin_HEXAGON_S4_clbpnorm"
          }
          break;
        case 'e':	 // 1 string to match.
          if (memcmp(BuiltinName.data()+22, "xtractp", 7))
            break;
          return Intrinsic::hexagon_S4_extractp;	 // "__builtin_HEXAGON_S4_extractp"
        case 'o':	 // 1 string to match.
          if (memcmp(BuiltinName.data()+22, "r_andix", 7))
            break;
          return Intrinsic::hexagon_S4_or_andix;	 // "__builtin_HEXAGON_S4_or_andix"
        }
        break;
      }
      break;
    }
    break;
  case 30:	 // 81 strings to match.
    if (memcmp(BuiltinName.data()+0, "__builtin_HEXAGON_", 18))
      break;
    switch (BuiltinName[18]) {
    default: break;
    case 'A':	 // 11 strings to match.
      switch (BuiltinName[19]) {
      default: break;
      case '2':	 // 3 strings to match.
        if (BuiltinName[20] != '_')
          break;
        switch (BuiltinName[21]) {
        default: break;
        case 'c':	 // 1 string to match.
          if (memcmp(BuiltinName.data()+22, "ombineii", 8))
            break;
          return Intrinsic::hexagon_A2_combineii;	 // "__builtin_HEXAGON_A2_combineii"
        case 'v':	 // 2 strings to match.
          switch (BuiltinName[22]) {
          default: break;
          case 'a':	 // 1 string to match.
            if (memcmp(BuiltinName.data()+23, "ddb_map", 7))
              break;
            return Intrinsic::hexagon_A2_vaddb_map;	 // "__builtin_HEXAGON_A2_vaddb_map"
          case 's':	 // 1 string to match.
            if (memcmp(BuiltinName.data()+23, "ubb_map", 7))
              break;
            return Intrinsic::hexagon_A2_vsubb_map;	 // "__builtin_HEXAGON_A2_vsubb_map"
          }
          break;
        }
        break;
      case '4':	 // 8 strings to match.
        if (BuiltinName[20] != '_')
          break;
        switch (BuiltinName[21]) {
        default: break;
        case 'b':	 // 1 string to match.
          if (memcmp(BuiltinName.data()+22, "itspliti", 8))
            break;
          return Intrinsic::hexagon_A4_bitspliti;	 // "__builtin_HEXAGON_A4_bitspliti"
        case 'c':	 // 4 strings to match.
          switch (BuiltinName[22]) {
          default: break;
          case 'o':	 // 2 strings to match.
            if (memcmp(BuiltinName.data()+23, "mbine", 5))
              break;
            switch (BuiltinName[28]) {
            default: break;
            case 'i':	 // 1 string to match.
              if (BuiltinName[29] != 'r')
                break;
              return Intrinsic::hexagon_A4_combineir;	 // "__builtin_HEXAGON_A4_combineir"
            case 'r':	 // 1 string to match.
              if (BuiltinName[29] != 'i')
                break;
              return Intrinsic::hexagon_A4_combineri;	 // "__builtin_HEXAGON_A4_combineri"
            }
            break;
          case 'r':	 // 2 strings to match.
            if (memcmp(BuiltinName.data()+23, "ound_r", 6))
              break;
            switch (BuiltinName[29]) {
            default: break;
            case 'i':	 // 1 string to match.
              return Intrinsic::hexagon_A4_cround_ri;	 // "__builtin_HEXAGON_A4_cround_ri"
            case 'r':	 // 1 string to match.
              return Intrinsic::hexagon_A4_cround_rr;	 // "__builtin_HEXAGON_A4_cround_rr"
            }
            break;
          }
          break;
        case 'v':	 // 3 strings to match.
          if (memcmp(BuiltinName.data()+22, "cmp", 3))
            break;
          switch (BuiltinName[25]) {
          default: break;
          case 'b':	 // 1 string to match.
            if (memcmp(BuiltinName.data()+26, "gtui", 4))
              break;
            return Intrinsic::hexagon_A4_vcmpbgtui;	 // "__builtin_HEXAGON_A4_vcmpbgtui"
          case 'h':	 // 1 string to match.
            if (memcmp(BuiltinName.data()+26, "gtui", 4))
              break;
            return Intrinsic::hexagon_A4_vcmphgtui;	 // "__builtin_HEXAGON_A4_vcmphgtui"
          case 'w':	 // 1 string to match.
            if (memcmp(BuiltinName.data()+26, "gtui", 4))
              break;
            return Intrinsic::hexagon_A4_vcmpwgtui;	 // "__builtin_HEXAGON_A4_vcmpwgtui"
          }
          break;
        }
        break;
      }
      break;
    case 'C':	 // 2 strings to match.
      switch (BuiltinName[19]) {
      default: break;
      case '2':	 // 1 string to match.
        if (memcmp(BuiltinName.data()+20, "_pxfer_map", 10))
          break;
        return Intrinsic::hexagon_C2_pxfer_map;	 // "__builtin_HEXAGON_C2_pxfer_map"
      case '4':	 // 1 string to match.
        if (memcmp(BuiltinName.data()+20, "_nbitsclri", 10))
          break;
        return Intrinsic::hexagon_C4_nbitsclri;	 // "__builtin_HEXAGON_C4_nbitsclri"
      }
      break;
    case 'F':	 // 12 strings to match.
      if (memcmp(BuiltinName.data()+19, "2_", 2))
        break;
      switch (BuiltinName[21]) {
      default: break;
      case 'c':	 // 8 strings to match.
        if (memcmp(BuiltinName.data()+22, "onv_", 4))
          break;
        switch (BuiltinName[26]) {
        default: break;
        case 'd':	 // 4 strings to match.
          switch (BuiltinName[27]) {
          default: break;
          case '2':	 // 2 strings to match.
            switch (BuiltinName[28]) {
            default: break;
            case 'd':	 // 1 string to match.
              if (BuiltinName[29] != 'f')
                break;
              return Intrinsic::hexagon_F2_conv_d2df;	 // "__builtin_HEXAGON_F2_conv_d2df"
            case 's':	 // 1 string to match.
              if (BuiltinName[29] != 'f')
                break;
              return Intrinsic::hexagon_F2_conv_d2sf;	 // "__builtin_HEXAGON_F2_conv_d2sf"
            }
            break;
          case 'f':	 // 2 strings to match.
            if (BuiltinName[28] != '2')
              break;
            switch (BuiltinName[29]) {
            default: break;
            case 'd':	 // 1 string to match.
              return Intrinsic::hexagon_F2_conv_df2d;	 // "__builtin_HEXAGON_F2_conv_df2d"
            case 'w':	 // 1 string to match.
              return Intrinsic::hexagon_F2_conv_df2w;	 // "__builtin_HEXAGON_F2_conv_df2w"
            }
            break;
          }
          break;
        case 's':	 // 2 strings to match.
          if (memcmp(BuiltinName.data()+27, "f2", 2))
            break;
          switch (BuiltinName[29]) {
          default: break;
          case 'd':	 // 1 string to match.
            return Intrinsic::hexagon_F2_conv_sf2d;	 // "__builtin_HEXAGON_F2_conv_sf2d"
          case 'w':	 // 1 string to match.
            return Intrinsic::hexagon_F2_conv_sf2w;	 // "__builtin_HEXAGON_F2_conv_sf2w"
          }
          break;
        case 'w':	 // 2 strings to match.
          if (BuiltinName[27] != '2')
            break;
          switch (BuiltinName[28]) {
          default: break;
          case 'd':	 // 1 string to match.
            if (BuiltinName[29] != 'f')
              break;
            return Intrinsic::hexagon_F2_conv_w2df;	 // "__builtin_HEXAGON_F2_conv_w2df"
          case 's':	 // 1 string to match.
            if (BuiltinName[29] != 'f')
              break;
            return Intrinsic::hexagon_F2_conv_w2sf;	 // "__builtin_HEXAGON_F2_conv_w2sf"
          }
          break;
        }
        break;
      case 'd':	 // 2 strings to match.
        if (memcmp(BuiltinName.data()+22, "ffm", 3))
          break;
        switch (BuiltinName[25]) {
        default: break;
        case 'a':	 // 1 string to match.
          if (memcmp(BuiltinName.data()+26, "_lib", 4))
            break;
          return Intrinsic::hexagon_F2_dffma_lib;	 // "__builtin_HEXAGON_F2_dffma_lib"
        case 's':	 // 1 string to match.
          if (memcmp(BuiltinName.data()+26, "_lib", 4))
            break;
          return Intrinsic::hexagon_F2_dffms_lib;	 // "__builtin_HEXAGON_F2_dffms_lib"
        }
        break;
      case 's':	 // 2 strings to match.
        if (memcmp(BuiltinName.data()+22, "ffm", 3))
          break;
        switch (BuiltinName[25]) {
        default: break;
        case 'a':	 // 1 string to match.
          if (memcmp(BuiltinName.data()+26, "_lib", 4))
            break;
          return Intrinsic::hexagon_F2_sffma_lib;	 // "__builtin_HEXAGON_F2_sffma_lib"
        case 's':	 // 1 string to match.
          if (memcmp(BuiltinName.data()+26, "_lib", 4))
            break;
          return Intrinsic::hexagon_F2_sffms_lib;	 // "__builtin_HEXAGON_F2_sffms_lib"
        }
        break;
      }
      break;
    case 'M':	 // 44 strings to match.
      switch (BuiltinName[19]) {
      default: break;
      case '2':	 // 41 strings to match.
        if (BuiltinName[20] != '_')
          break;
        switch (BuiltinName[21]) {
        default: break;
        case 'c':	 // 8 strings to match.
          switch (BuiltinName[22]) {
          default: break;
          case 'm':	 // 6 strings to match.
            switch (BuiltinName[23]) {
            default: break;
            case 'a':	 // 2 strings to match.
              if (memcmp(BuiltinName.data()+24, "csc_s", 5))
                break;
              switch (BuiltinName[29]) {
              default: break;
              case '0':	 // 1 string to match.
                return Intrinsic::hexagon_M2_cmacsc_s0;	 // "__builtin_HEXAGON_M2_cmacsc_s0"
              case '1':	 // 1 string to match.
                return Intrinsic::hexagon_M2_cmacsc_s1;	 // "__builtin_HEXAGON_M2_cmacsc_s1"
              }
              break;
            case 'p':	 // 4 strings to match.
              if (BuiltinName[24] != 'y')
                break;
              switch (BuiltinName[25]) {
              default: break;
              case 'r':	 // 2 strings to match.
                if (memcmp(BuiltinName.data()+26, "s_s", 3))
                  break;
                switch (BuiltinName[29]) {
                default: break;
                case '0':	 // 1 string to match.
                  return Intrinsic::hexagon_M2_cmpyrs_s0;	 // "__builtin_HEXAGON_M2_cmpyrs_s0"
                case '1':	 // 1 string to match.
                  return Intrinsic::hexagon_M2_cmpyrs_s1;	 // "__builtin_HEXAGON_M2_cmpyrs_s1"
                }
                break;
              case 's':	 // 2 strings to match.
                if (memcmp(BuiltinName.data()+26, "c_s", 3))
                  break;
                switch (BuiltinName[29]) {
                default: break;
                case '0':	 // 1 string to match.
                  return Intrinsic::hexagon_M2_cmpysc_s0;	 // "__builtin_HEXAGON_M2_cmpysc_s0"
                case '1':	 // 1 string to match.
                  return Intrinsic::hexagon_M2_cmpysc_s1;	 // "__builtin_HEXAGON_M2_cmpysc_s1"
                }
                break;
              }
              break;
            }
            break;
          case 'n':	 // 2 strings to match.
            if (memcmp(BuiltinName.data()+23, "acsc_s", 6))
              break;
            switch (BuiltinName[29]) {
            default: break;
            case '0':	 // 1 string to match.
              return Intrinsic::hexagon_M2_cnacsc_s0;	 // "__builtin_HEXAGON_M2_cnacsc_s0"
            case '1':	 // 1 string to match.
              return Intrinsic::hexagon_M2_cnacsc_s1;	 // "__builtin_HEXAGON_M2_cnacsc_s1"
            }
            break;
          }
          break;
        case 'h':	 // 2 strings to match.
          if (memcmp(BuiltinName.data()+22, "mmpy", 4))
            break;
          switch (BuiltinName[26]) {
          default: break;
          case 'h':	 // 1 string to match.
            if (memcmp(BuiltinName.data()+27, "_s1", 3))
              break;
            return Intrinsic::hexagon_M2_hmmpyh_s1;	 // "__builtin_HEXAGON_M2_hmmpyh_s1"
          case 'l':	 // 1 string to match.
            if (memcmp(BuiltinName.data()+27, "_s1", 3))
              break;
            return Intrinsic::hexagon_M2_hmmpyl_s1;	 // "__builtin_HEXAGON_M2_hmmpyl_s1"
          }
          break;
        case 'm':	 // 21 strings to match.
          switch (BuiltinName[22]) {
          default: break;
          case 'm':	 // 12 strings to match.
            switch (BuiltinName[23]) {
            default: break;
            case 'a':	 // 4 strings to match.
              if (BuiltinName[24] != 'c')
                break;
              switch (BuiltinName[25]) {
              default: break;
              case 'h':	 // 2 strings to match.
                if (memcmp(BuiltinName.data()+26, "s_s", 3))
                  break;
                switch (BuiltinName[29]) {
                default: break;
                case '0':	 // 1 string to match.
                  return Intrinsic::hexagon_M2_mmachs_s0;	 // "__builtin_HEXAGON_M2_mmachs_s0"
                case '1':	 // 1 string to match.
                  return Intrinsic::hexagon_M2_mmachs_s1;	 // "__builtin_HEXAGON_M2_mmachs_s1"
                }
                break;
              case 'l':	 // 2 strings to match.
                if (memcmp(BuiltinName.data()+26, "s_s", 3))
                  break;
                switch (BuiltinName[29]) {
                default: break;
                case '0':	 // 1 string to match.
                  return Intrinsic::hexagon_M2_mmacls_s0;	 // "__builtin_HEXAGON_M2_mmacls_s0"
                case '1':	 // 1 string to match.
                  return Intrinsic::hexagon_M2_mmacls_s1;	 // "__builtin_HEXAGON_M2_mmacls_s1"
                }
                break;
              }
              break;
            case 'p':	 // 8 strings to match.
              if (BuiltinName[24] != 'y')
                break;
              switch (BuiltinName[25]) {
              default: break;
              case 'h':	 // 2 strings to match.
                if (memcmp(BuiltinName.data()+26, "_rs", 3))
                  break;
                switch (BuiltinName[29]) {
                default: break;
                case '0':	 // 1 string to match.
                  return Intrinsic::hexagon_M2_mmpyh_rs0;	 // "__builtin_HEXAGON_M2_mmpyh_rs0"
                case '1':	 // 1 string to match.
                  return Intrinsic::hexagon_M2_mmpyh_rs1;	 // "__builtin_HEXAGON_M2_mmpyh_rs1"
                }
                break;
              case 'l':	 // 2 strings to match.
                if (memcmp(BuiltinName.data()+26, "_rs", 3))
                  break;
                switch (BuiltinName[29]) {
                default: break;
                case '0':	 // 1 string to match.
                  return Intrinsic::hexagon_M2_mmpyl_rs0;	 // "__builtin_HEXAGON_M2_mmpyl_rs0"
                case '1':	 // 1 string to match.
                  return Intrinsic::hexagon_M2_mmpyl_rs1;	 // "__builtin_HEXAGON_M2_mmpyl_rs1"
                }
                break;
              case 'u':	 // 4 strings to match.
                switch (BuiltinName[26]) {
                default: break;
                case 'h':	 // 2 strings to match.
                  if (memcmp(BuiltinName.data()+27, "_s", 2))
                    break;
                  switch (BuiltinName[29]) {
                  default: break;
                  case '0':	 // 1 string to match.
                    return Intrinsic::hexagon_M2_mmpyuh_s0;	 // "__builtin_HEXAGON_M2_mmpyuh_s0"
                  case '1':	 // 1 string to match.
                    return Intrinsic::hexagon_M2_mmpyuh_s1;	 // "__builtin_HEXAGON_M2_mmpyuh_s1"
                  }
                  break;
                case 'l':	 // 2 strings to match.
                  if (memcmp(BuiltinName.data()+27, "_s", 2))
                    break;
                  switch (BuiltinName[29]) {
                  default: break;
                  case '0':	 // 1 string to match.
                    return Intrinsic::hexagon_M2_mmpyul_s0;	 // "__builtin_HEXAGON_M2_mmpyul_s0"
                  case '1':	 // 1 string to match.
                    return Intrinsic::hexagon_M2_mmpyul_s1;	 // "__builtin_HEXAGON_M2_mmpyul_s1"
                  }
                  break;
                }
                break;
              }
              break;
            }
            break;
          case 'p':	 // 9 strings to match.
            if (memcmp(BuiltinName.data()+23, "y_", 2))
              break;
            switch (BuiltinName[25]) {
            default: break;
            case 'h':	 // 4 strings to match.
              switch (BuiltinName[26]) {
              default: break;
              case 'h':	 // 2 strings to match.
                if (memcmp(BuiltinName.data()+27, "_s", 2))
                  break;
                switch (BuiltinName[29]) {
                default: break;
                case '0':	 // 1 string to match.
                  return Intrinsic::hexagon_M2_mpy_hh_s0;	 // "__builtin_HEXAGON_M2_mpy_hh_s0"
                case '1':	 // 1 string to match.
                  return Intrinsic::hexagon_M2_mpy_hh_s1;	 // "__builtin_HEXAGON_M2_mpy_hh_s1"
                }
                break;
              case 'l':	 // 2 strings to match.
                if (memcmp(BuiltinName.data()+27, "_s", 2))
                  break;
                switch (BuiltinName[29]) {
                default: break;
                case '0':	 // 1 string to match.
                  return Intrinsic::hexagon_M2_mpy_hl_s0;	 // "__builtin_HEXAGON_M2_mpy_hl_s0"
                case '1':	 // 1 string to match.
                  return Intrinsic::hexagon_M2_mpy_hl_s1;	 // "__builtin_HEXAGON_M2_mpy_hl_s1"
                }
                break;
              }
              break;
            case 'l':	 // 4 strings to match.
              switch (BuiltinName[26]) {
              default: break;
              case 'h':	 // 2 strings to match.
                if (memcmp(BuiltinName.data()+27, "_s", 2))
                  break;
                switch (BuiltinName[29]) {
                default: break;
                case '0':	 // 1 string to match.
                  return Intrinsic::hexagon_M2_mpy_lh_s0;	 // "__builtin_HEXAGON_M2_mpy_lh_s0"
                case '1':	 // 1 string to match.
                  return Intrinsic::hexagon_M2_mpy_lh_s1;	 // "__builtin_HEXAGON_M2_mpy_lh_s1"
                }
                break;
              case 'l':	 // 2 strings to match.
                if (memcmp(BuiltinName.data()+27, "_s", 2))
                  break;
                switch (BuiltinName[29]) {
                default: break;
                case '0':	 // 1 string to match.
                  return Intrinsic::hexagon_M2_mpy_ll_s0;	 // "__builtin_HEXAGON_M2_mpy_ll_s0"
                case '1':	 // 1 string to match.
                  return Intrinsic::hexagon_M2_mpy_ll_s1;	 // "__builtin_HEXAGON_M2_mpy_ll_s1"
                }
                break;
              }
              break;
            case 'u':	 // 1 string to match.
              if (memcmp(BuiltinName.data()+26, "p_s1", 4))
                break;
              return Intrinsic::hexagon_M2_mpy_up_s1;	 // "__builtin_HEXAGON_M2_mpy_up_s1"
            }
            break;
          }
          break;
        case 'v':	 // 10 strings to match.
          switch (BuiltinName[22]) {
          default: break;
          case 'a':	 // 2 strings to match.
            if (memcmp(BuiltinName.data()+23, "bsdiff", 6))
              break;
            switch (BuiltinName[29]) {
            default: break;
            case 'h':	 // 1 string to match.
              return Intrinsic::hexagon_M2_vabsdiffh;	 // "__builtin_HEXAGON_M2_vabsdiffh"
            case 'w':	 // 1 string to match.
              return Intrinsic::hexagon_M2_vabsdiffw;	 // "__builtin_HEXAGON_M2_vabsdiffw"
            }
            break;
          case 'd':	 // 4 strings to match.
            if (BuiltinName[23] != 'm')
              break;
            switch (BuiltinName[24]) {
            default: break;
            case 'a':	 // 2 strings to match.
              if (memcmp(BuiltinName.data()+25, "cs_s", 4))
                break;
              switch (BuiltinName[29]) {
              default: break;
              case '0':	 // 1 string to match.
                return Intrinsic::hexagon_M2_vdmacs_s0;	 // "__builtin_HEXAGON_M2_vdmacs_s0"
              case '1':	 // 1 string to match.
                return Intrinsic::hexagon_M2_vdmacs_s1;	 // "__builtin_HEXAGON_M2_vdmacs_s1"
              }
              break;
            case 'p':	 // 2 strings to match.
              if (memcmp(BuiltinName.data()+25, "ys_s", 4))
                break;
              switch (BuiltinName[29]) {
              default: break;
              case '0':	 // 1 string to match.
                return Intrinsic::hexagon_M2_vdmpys_s0;	 // "__builtin_HEXAGON_M2_vdmpys_s0"
              case '1':	 // 1 string to match.
                return Intrinsic::hexagon_M2_vdmpys_s1;	 // "__builtin_HEXAGON_M2_vdmpys_s1"
              }
              break;
            }
            break;
          case 'm':	 // 4 strings to match.
            switch (BuiltinName[23]) {
            default: break;
            case 'a':	 // 2 strings to match.
              if (memcmp(BuiltinName.data()+24, "c2s_s", 5))
                break;
              switch (BuiltinName[29]) {
              default: break;
              case '0':	 // 1 string to match.
                return Intrinsic::hexagon_M2_vmac2s_s0;	 // "__builtin_HEXAGON_M2_vmac2s_s0"
              case '1':	 // 1 string to match.
                return Intrinsic::hexagon_M2_vmac2s_s1;	 // "__builtin_HEXAGON_M2_vmac2s_s1"
              }
              break;
            case 'p':	 // 2 strings to match.
              if (memcmp(BuiltinName.data()+24, "y2s_s", 5))
                break;
              switch (BuiltinName[29]) {
              default: break;
              case '0':	 // 1 string to match.
                return Intrinsic::hexagon_M2_vmpy2s_s0;	 // "__builtin_HEXAGON_M2_vmpy2s_s0"
              case '1':	 // 1 string to match.
                return Intrinsic::hexagon_M2_vmpy2s_s1;	 // "__builtin_HEXAGON_M2_vmpy2s_s1"
              }
              break;
            }
            break;
          }
          break;
        }
        break;
      case '4':	 // 3 strings to match.
        if (BuiltinName[20] != '_')
          break;
        switch (BuiltinName[21]) {
        default: break;
        case 'c':	 // 2 strings to match.
          if (memcmp(BuiltinName.data()+22, "mpy", 3))
            break;
          switch (BuiltinName[25]) {
          default: break;
          case 'i':	 // 1 string to match.
            if (memcmp(BuiltinName.data()+26, "_whc", 4))
              break;
            return Intrinsic::hexagon_M4_cmpyi_whc;	 // "__builtin_HEXAGON_M4_cmpyi_whc"
          case 'r':	 // 1 string to match.
            if (memcmp(BuiltinName.data()+26, "_whc", 4))
              break;
            return Intrinsic::hexagon_M4_cmpyr_whc;	 // "__builtin_HEXAGON_M4_cmpyr_whc"
          }
          break;
        case 'p':	 // 1 string to match.
          if (memcmp(BuiltinName.data()+22, "mpyw_acc", 8))
            break;
          return Intrinsic::hexagon_M4_pmpyw_acc;	 // "__builtin_HEXAGON_M4_pmpyw_acc"
        }
        break;
      }
      break;
    case 'S':	 // 12 strings to match.
      switch (BuiltinName[19]) {
      default: break;
      case '2':	 // 4 strings to match.
        if (BuiltinName[20] != '_')
          break;
        switch (BuiltinName[21]) {
        default: break;
        case 'e':	 // 1 string to match.
          if (memcmp(BuiltinName.data()+22, "xtractup", 8))
            break;
          return Intrinsic::hexagon_S2_extractup;	 // "__builtin_HEXAGON_S2_extractup"
        case 'i':	 // 1 string to match.
          if (memcmp(BuiltinName.data()+22, "nsert_rp", 8))
            break;
          return Intrinsic::hexagon_S2_insert_rp;	 // "__builtin_HEXAGON_S2_insert_rp"
        case 'v':	 // 2 strings to match.
          if (memcmp(BuiltinName.data()+22, "splice", 6))
            break;
          switch (BuiltinName[28]) {
          default: break;
          case 'i':	 // 1 string to match.
            if (BuiltinName[29] != 'b')
              break;
            return Intrinsic::hexagon_S2_vspliceib;	 // "__builtin_HEXAGON_S2_vspliceib"
          case 'r':	 // 1 string to match.
            if (BuiltinName[29] != 'b')
              break;
            return Intrinsic::hexagon_S2_vsplicerb;	 // "__builtin_HEXAGON_S2_vsplicerb"
          }
          break;
        }
        break;
      case '4':	 // 7 strings to match.
        if (BuiltinName[20] != '_')
          break;
        switch (BuiltinName[21]) {
        default: break;
        case 'n':	 // 2 strings to match.
          if (memcmp(BuiltinName.data()+22, "tstbit_", 7))
            break;
          switch (BuiltinName[29]) {
          default: break;
          case 'i':	 // 1 string to match.
            return Intrinsic::hexagon_S4_ntstbit_i;	 // "__builtin_HEXAGON_S4_ntstbit_i"
          case 'r':	 // 1 string to match.
            return Intrinsic::hexagon_S4_ntstbit_r;	 // "__builtin_HEXAGON_S4_ntstbit_r"
          }
          break;
        case 'v':	 // 5 strings to match.
          switch (BuiltinName[22]) {
          default: break;
          case 'r':	 // 1 string to match.
            if (memcmp(BuiltinName.data()+23, "crotate", 7))
              break;
            return Intrinsic::hexagon_S4_vrcrotate;	 // "__builtin_HEXAGON_S4_vrcrotate"
          case 'x':	 // 4 strings to match.
            switch (BuiltinName[23]) {
            default: break;
            case 'a':	 // 2 strings to match.
              if (memcmp(BuiltinName.data()+24, "ddsub", 5))
                break;
              switch (BuiltinName[29]) {
              default: break;
              case 'h':	 // 1 string to match.
                return Intrinsic::hexagon_S4_vxaddsubh;	 // "__builtin_HEXAGON_S4_vxaddsubh"
              case 'w':	 // 1 string to match.
                return Intrinsic::hexagon_S4_vxaddsubw;	 // "__builtin_HEXAGON_S4_vxaddsubw"
              }
              break;
            case 's':	 // 2 strings to match.
              if (memcmp(BuiltinName.data()+24, "ubadd", 5))
                break;
              switch (BuiltinName[29]) {
              default: break;
              case 'h':	 // 1 string to match.
                return Intrinsic::hexagon_S4_vxsubaddh;	 // "__builtin_HEXAGON_S4_vxsubaddh"
              case 'w':	 // 1 string to match.
                return Intrinsic::hexagon_S4_vxsubaddw;	 // "__builtin_HEXAGON_S4_vxsubaddw"
              }
              break;
            }
            break;
          }
          break;
        }
        break;
      case '5':	 // 1 string to match.
        if (memcmp(BuiltinName.data()+20, "_popcountp", 10))
          break;
        return Intrinsic::hexagon_S5_popcountp;	 // "__builtin_HEXAGON_S5_popcountp"
      }
      break;
    }
    break;
  case 31:	 // 95 strings to match.
    if (memcmp(BuiltinName.data()+0, "__builtin_HEXAGON_", 18))
      break;
    switch (BuiltinName[18]) {
    default: break;
    case 'A':	 // 4 strings to match.
      if (memcmp(BuiltinName.data()+19, "2_combine_", 10))
        break;
      switch (BuiltinName[29]) {
      default: break;
      case 'h':	 // 2 strings to match.
        switch (BuiltinName[30]) {
        default: break;
        case 'h':	 // 1 string to match.
          return Intrinsic::hexagon_A2_combine_hh;	 // "__builtin_HEXAGON_A2_combine_hh"
        case 'l':	 // 1 string to match.
          return Intrinsic::hexagon_A2_combine_hl;	 // "__builtin_HEXAGON_A2_combine_hl"
        }
        break;
      case 'l':	 // 2 strings to match.
        switch (BuiltinName[30]) {
        default: break;
        case 'h':	 // 1 string to match.
          return Intrinsic::hexagon_A2_combine_lh;	 // "__builtin_HEXAGON_A2_combine_lh"
        case 'l':	 // 1 string to match.
          return Intrinsic::hexagon_A2_combine_ll;	 // "__builtin_HEXAGON_A2_combine_ll"
        }
        break;
      }
      break;
    case 'F':	 // 10 strings to match.
      if (memcmp(BuiltinName.data()+19, "2_conv_", 7))
        break;
      switch (BuiltinName[26]) {
      default: break;
      case 'd':	 // 3 strings to match.
        if (memcmp(BuiltinName.data()+27, "f2", 2))
          break;
        switch (BuiltinName[29]) {
        default: break;
        case 's':	 // 1 string to match.
          if (BuiltinName[30] != 'f')
            break;
          return Intrinsic::hexagon_F2_conv_df2sf;	 // "__builtin_HEXAGON_F2_conv_df2sf"
        case 'u':	 // 2 strings to match.
          switch (BuiltinName[30]) {
          default: break;
          case 'd':	 // 1 string to match.
            return Intrinsic::hexagon_F2_conv_df2ud;	 // "__builtin_HEXAGON_F2_conv_df2ud"
          case 'w':	 // 1 string to match.
            return Intrinsic::hexagon_F2_conv_df2uw;	 // "__builtin_HEXAGON_F2_conv_df2uw"
          }
          break;
        }
        break;
      case 's':	 // 3 strings to match.
        if (memcmp(BuiltinName.data()+27, "f2", 2))
          break;
        switch (BuiltinName[29]) {
        default: break;
        case 'd':	 // 1 string to match.
          if (BuiltinName[30] != 'f')
            break;
          return Intrinsic::hexagon_F2_conv_sf2df;	 // "__builtin_HEXAGON_F2_conv_sf2df"
        case 'u':	 // 2 strings to match.
          switch (BuiltinName[30]) {
          default: break;
          case 'd':	 // 1 string to match.
            return Intrinsic::hexagon_F2_conv_sf2ud;	 // "__builtin_HEXAGON_F2_conv_sf2ud"
          case 'w':	 // 1 string to match.
            return Intrinsic::hexagon_F2_conv_sf2uw;	 // "__builtin_HEXAGON_F2_conv_sf2uw"
          }
          break;
        }
        break;
      case 'u':	 // 4 strings to match.
        switch (BuiltinName[27]) {
        default: break;
        case 'd':	 // 2 strings to match.
          if (BuiltinName[28] != '2')
            break;
          switch (BuiltinName[29]) {
          default: break;
          case 'd':	 // 1 string to match.
            if (BuiltinName[30] != 'f')
              break;
            return Intrinsic::hexagon_F2_conv_ud2df;	 // "__builtin_HEXAGON_F2_conv_ud2df"
          case 's':	 // 1 string to match.
            if (BuiltinName[30] != 'f')
              break;
            return Intrinsic::hexagon_F2_conv_ud2sf;	 // "__builtin_HEXAGON_F2_conv_ud2sf"
          }
          break;
        case 'w':	 // 2 strings to match.
          if (BuiltinName[28] != '2')
            break;
          switch (BuiltinName[29]) {
          default: break;
          case 'd':	 // 1 string to match.
            if (BuiltinName[30] != 'f')
              break;
            return Intrinsic::hexagon_F2_conv_uw2df;	 // "__builtin_HEXAGON_F2_conv_uw2df"
          case 's':	 // 1 string to match.
            if (BuiltinName[30] != 'f')
              break;
            return Intrinsic::hexagon_F2_conv_uw2sf;	 // "__builtin_HEXAGON_F2_conv_uw2sf"
          }
          break;
        }
        break;
      }
      break;
    case 'M':	 // 58 strings to match.
      switch (BuiltinName[19]) {
      default: break;
      case '2':	 // 49 strings to match.
        if (BuiltinName[20] != '_')
          break;
        switch (BuiltinName[21]) {
        default: break;
        case 'c':	 // 2 strings to match.
          if (memcmp(BuiltinName.data()+22, "mpyrsc_s", 8))
            break;
          switch (BuiltinName[30]) {
          default: break;
          case '0':	 // 1 string to match.
            return Intrinsic::hexagon_M2_cmpyrsc_s0;	 // "__builtin_HEXAGON_M2_cmpyrsc_s0"
          case '1':	 // 1 string to match.
            return Intrinsic::hexagon_M2_cmpyrsc_s1;	 // "__builtin_HEXAGON_M2_cmpyrsc_s1"
          }
          break;
        case 'd':	 // 2 strings to match.
          if (memcmp(BuiltinName.data()+22, "pmpy", 4))
            break;
          switch (BuiltinName[26]) {
          default: break;
          case 's':	 // 1 string to match.
            if (memcmp(BuiltinName.data()+27, "s_s0", 4))
              break;
            return Intrinsic::hexagon_M2_dpmpyss_s0;	 // "__builtin_HEXAGON_M2_dpmpyss_s0"
          case 'u':	 // 1 string to match.
            if (memcmp(BuiltinName.data()+27, "u_s0", 4))
              break;
            return Intrinsic::hexagon_M2_dpmpyuu_s0;	 // "__builtin_HEXAGON_M2_dpmpyuu_s0"
          }
          break;
        case 'h':	 // 2 strings to match.
          if (memcmp(BuiltinName.data()+22, "mmpy", 4))
            break;
          switch (BuiltinName[26]) {
          default: break;
          case 'h':	 // 1 string to match.
            if (memcmp(BuiltinName.data()+27, "_rs1", 4))
              break;
            return Intrinsic::hexagon_M2_hmmpyh_rs1;	 // "__builtin_HEXAGON_M2_hmmpyh_rs1"
          case 'l':	 // 1 string to match.
            if (memcmp(BuiltinName.data()+27, "_rs1", 4))
              break;
            return Intrinsic::hexagon_M2_hmmpyl_rs1;	 // "__builtin_HEXAGON_M2_hmmpyl_rs1"
          }
          break;
        case 'm':	 // 28 strings to match.
          switch (BuiltinName[22]) {
          default: break;
          case 'm':	 // 12 strings to match.
            switch (BuiltinName[23]) {
            default: break;
            case 'a':	 // 8 strings to match.
              if (BuiltinName[24] != 'c')
                break;
              switch (BuiltinName[25]) {
              default: break;
              case 'h':	 // 2 strings to match.
                if (memcmp(BuiltinName.data()+26, "s_rs", 4))
                  break;
                switch (BuiltinName[30]) {
                default: break;
                case '0':	 // 1 string to match.
                  return Intrinsic::hexagon_M2_mmachs_rs0;	 // "__builtin_HEXAGON_M2_mmachs_rs0"
                case '1':	 // 1 string to match.
                  return Intrinsic::hexagon_M2_mmachs_rs1;	 // "__builtin_HEXAGON_M2_mmachs_rs1"
                }
                break;
              case 'l':	 // 2 strings to match.
                if (memcmp(BuiltinName.data()+26, "s_rs", 4))
                  break;
                switch (BuiltinName[30]) {
                default: break;
                case '0':	 // 1 string to match.
                  return Intrinsic::hexagon_M2_mmacls_rs0;	 // "__builtin_HEXAGON_M2_mmacls_rs0"
                case '1':	 // 1 string to match.
                  return Intrinsic::hexagon_M2_mmacls_rs1;	 // "__builtin_HEXAGON_M2_mmacls_rs1"
                }
                break;
              case 'u':	 // 4 strings to match.
                switch (BuiltinName[26]) {
                default: break;
                case 'h':	 // 2 strings to match.
                  if (memcmp(BuiltinName.data()+27, "s_s", 3))
                    break;
                  switch (BuiltinName[30]) {
                  default: break;
                  case '0':	 // 1 string to match.
                    return Intrinsic::hexagon_M2_mmacuhs_s0;	 // "__builtin_HEXAGON_M2_mmacuhs_s0"
                  case '1':	 // 1 string to match.
                    return Intrinsic::hexagon_M2_mmacuhs_s1;	 // "__builtin_HEXAGON_M2_mmacuhs_s1"
                  }
                  break;
                case 'l':	 // 2 strings to match.
                  if (memcmp(BuiltinName.data()+27, "s_s", 3))
                    break;
                  switch (BuiltinName[30]) {
                  default: break;
                  case '0':	 // 1 string to match.
                    return Intrinsic::hexagon_M2_mmaculs_s0;	 // "__builtin_HEXAGON_M2_mmaculs_s0"
                  case '1':	 // 1 string to match.
                    return Intrinsic::hexagon_M2_mmaculs_s1;	 // "__builtin_HEXAGON_M2_mmaculs_s1"
                  }
                  break;
                }
                break;
              }
              break;
            case 'p':	 // 4 strings to match.
              if (memcmp(BuiltinName.data()+24, "yu", 2))
                break;
              switch (BuiltinName[26]) {
              default: break;
              case 'h':	 // 2 strings to match.
                if (memcmp(BuiltinName.data()+27, "_rs", 3))
                  break;
                switch (BuiltinName[30]) {
                default: break;
                case '0':	 // 1 string to match.
                  return Intrinsic::hexagon_M2_mmpyuh_rs0;	 // "__builtin_HEXAGON_M2_mmpyuh_rs0"
                case '1':	 // 1 string to match.
                  return Intrinsic::hexagon_M2_mmpyuh_rs1;	 // "__builtin_HEXAGON_M2_mmpyuh_rs1"
                }
                break;
              case 'l':	 // 2 strings to match.
                if (memcmp(BuiltinName.data()+27, "_rs", 3))
                  break;
                switch (BuiltinName[30]) {
                default: break;
                case '0':	 // 1 string to match.
                  return Intrinsic::hexagon_M2_mmpyul_rs0;	 // "__builtin_HEXAGON_M2_mmpyul_rs0"
                case '1':	 // 1 string to match.
                  return Intrinsic::hexagon_M2_mmpyul_rs1;	 // "__builtin_HEXAGON_M2_mmpyul_rs1"
                }
                break;
              }
              break;
            }
            break;
          case 'p':	 // 16 strings to match.
            if (BuiltinName[23] != 'y')
              break;
            switch (BuiltinName[24]) {
            default: break;
            case 'd':	 // 8 strings to match.
              if (BuiltinName[25] != '_')
                break;
              switch (BuiltinName[26]) {
              default: break;
              case 'h':	 // 4 strings to match.
                switch (BuiltinName[27]) {
                default: break;
                case 'h':	 // 2 strings to match.
                  if (memcmp(BuiltinName.data()+28, "_s", 2))
                    break;
                  switch (BuiltinName[30]) {
                  default: break;
                  case '0':	 // 1 string to match.
                    return Intrinsic::hexagon_M2_mpyd_hh_s0;	 // "__builtin_HEXAGON_M2_mpyd_hh_s0"
                  case '1':	 // 1 string to match.
                    return Intrinsic::hexagon_M2_mpyd_hh_s1;	 // "__builtin_HEXAGON_M2_mpyd_hh_s1"
                  }
                  break;
                case 'l':	 // 2 strings to match.
                  if (memcmp(BuiltinName.data()+28, "_s", 2))
                    break;
                  switch (BuiltinName[30]) {
                  default: break;
                  case '0':	 // 1 string to match.
                    return Intrinsic::hexagon_M2_mpyd_hl_s0;	 // "__builtin_HEXAGON_M2_mpyd_hl_s0"
                  case '1':	 // 1 string to match.
                    return Intrinsic::hexagon_M2_mpyd_hl_s1;	 // "__builtin_HEXAGON_M2_mpyd_hl_s1"
                  }
                  break;
                }
                break;
              case 'l':	 // 4 strings to match.
                switch (BuiltinName[27]) {
                default: break;
                case 'h':	 // 2 strings to match.
                  if (memcmp(BuiltinName.data()+28, "_s", 2))
                    break;
                  switch (BuiltinName[30]) {
                  default: break;
                  case '0':	 // 1 string to match.
                    return Intrinsic::hexagon_M2_mpyd_lh_s0;	 // "__builtin_HEXAGON_M2_mpyd_lh_s0"
                  case '1':	 // 1 string to match.
                    return Intrinsic::hexagon_M2_mpyd_lh_s1;	 // "__builtin_HEXAGON_M2_mpyd_lh_s1"
                  }
                  break;
                case 'l':	 // 2 strings to match.
                  if (memcmp(BuiltinName.data()+28, "_s", 2))
                    break;
                  switch (BuiltinName[30]) {
                  default: break;
                  case '0':	 // 1 string to match.
                    return Intrinsic::hexagon_M2_mpyd_ll_s0;	 // "__builtin_HEXAGON_M2_mpyd_ll_s0"
                  case '1':	 // 1 string to match.
                    return Intrinsic::hexagon_M2_mpyd_ll_s1;	 // "__builtin_HEXAGON_M2_mpyd_ll_s1"
                  }
                  break;
                }
                break;
              }
              break;
            case 'u':	 // 8 strings to match.
              if (BuiltinName[25] != '_')
                break;
              switch (BuiltinName[26]) {
              default: break;
              case 'h':	 // 4 strings to match.
                switch (BuiltinName[27]) {
                default: break;
                case 'h':	 // 2 strings to match.
                  if (memcmp(BuiltinName.data()+28, "_s", 2))
                    break;
                  switch (BuiltinName[30]) {
                  default: break;
                  case '0':	 // 1 string to match.
                    return Intrinsic::hexagon_M2_mpyu_hh_s0;	 // "__builtin_HEXAGON_M2_mpyu_hh_s0"
                  case '1':	 // 1 string to match.
                    return Intrinsic::hexagon_M2_mpyu_hh_s1;	 // "__builtin_HEXAGON_M2_mpyu_hh_s1"
                  }
                  break;
                case 'l':	 // 2 strings to match.
                  if (memcmp(BuiltinName.data()+28, "_s", 2))
                    break;
                  switch (BuiltinName[30]) {
                  default: break;
                  case '0':	 // 1 string to match.
                    return Intrinsic::hexagon_M2_mpyu_hl_s0;	 // "__builtin_HEXAGON_M2_mpyu_hl_s0"
                  case '1':	 // 1 string to match.
                    return Intrinsic::hexagon_M2_mpyu_hl_s1;	 // "__builtin_HEXAGON_M2_mpyu_hl_s1"
                  }
                  break;
                }
                break;
              case 'l':	 // 4 strings to match.
                switch (BuiltinName[27]) {
                default: break;
                case 'h':	 // 2 strings to match.
                  if (memcmp(BuiltinName.data()+28, "_s", 2))
                    break;
                  switch (BuiltinName[30]) {
                  default: break;
                  case '0':	 // 1 string to match.
                    return Intrinsic::hexagon_M2_mpyu_lh_s0;	 // "__builtin_HEXAGON_M2_mpyu_lh_s0"
                  case '1':	 // 1 string to match.
                    return Intrinsic::hexagon_M2_mpyu_lh_s1;	 // "__builtin_HEXAGON_M2_mpyu_lh_s1"
                  }
                  break;
                case 'l':	 // 2 strings to match.
                  if (memcmp(BuiltinName.data()+28, "_s", 2))
                    break;
                  switch (BuiltinName[30]) {
                  default: break;
                  case '0':	 // 1 string to match.
                    return Intrinsic::hexagon_M2_mpyu_ll_s0;	 // "__builtin_HEXAGON_M2_mpyu_ll_s0"
                  case '1':	 // 1 string to match.
                    return Intrinsic::hexagon_M2_mpyu_ll_s1;	 // "__builtin_HEXAGON_M2_mpyu_ll_s1"
                  }
                  break;
                }
                break;
              }
              break;
            }
            break;
          }
          break;
        case 'v':	 // 15 strings to match.
          switch (BuiltinName[22]) {
          default: break;
          case 'd':	 // 2 strings to match.
            if (memcmp(BuiltinName.data()+23, "mpyrs_s", 7))
              break;
            switch (BuiltinName[30]) {
            default: break;
            case '0':	 // 1 string to match.
              return Intrinsic::hexagon_M2_vdmpyrs_s0;	 // "__builtin_HEXAGON_M2_vdmpyrs_s0"
            case '1':	 // 1 string to match.
              return Intrinsic::hexagon_M2_vdmpyrs_s1;	 // "__builtin_HEXAGON_M2_vdmpyrs_s1"
            }
            break;
          case 'm':	 // 8 strings to match.
            switch (BuiltinName[23]) {
            default: break;
            case 'a':	 // 4 strings to match.
              if (memcmp(BuiltinName.data()+24, "c2", 2))
                break;
              switch (BuiltinName[26]) {
              default: break;
              case 'e':	 // 2 strings to match.
                if (memcmp(BuiltinName.data()+27, "s_s", 3))
                  break;
                switch (BuiltinName[30]) {
                default: break;
                case '0':	 // 1 string to match.
                  return Intrinsic::hexagon_M2_vmac2es_s0;	 // "__builtin_HEXAGON_M2_vmac2es_s0"
                case '1':	 // 1 string to match.
                  return Intrinsic::hexagon_M2_vmac2es_s1;	 // "__builtin_HEXAGON_M2_vmac2es_s1"
                }
                break;
              case 's':	 // 2 strings to match.
                if (memcmp(BuiltinName.data()+27, "u_s", 3))
                  break;
                switch (BuiltinName[30]) {
                default: break;
                case '0':	 // 1 string to match.
                  return Intrinsic::hexagon_M2_vmac2su_s0;	 // "__builtin_HEXAGON_M2_vmac2su_s0"
                case '1':	 // 1 string to match.
                  return Intrinsic::hexagon_M2_vmac2su_s1;	 // "__builtin_HEXAGON_M2_vmac2su_s1"
                }
                break;
              }
              break;
            case 'p':	 // 4 strings to match.
              if (memcmp(BuiltinName.data()+24, "y2", 2))
                break;
              switch (BuiltinName[26]) {
              default: break;
              case 'e':	 // 2 strings to match.
                if (memcmp(BuiltinName.data()+27, "s_s", 3))
                  break;
                switch (BuiltinName[30]) {
                default: break;
                case '0':	 // 1 string to match.
                  return Intrinsic::hexagon_M2_vmpy2es_s0;	 // "__builtin_HEXAGON_M2_vmpy2es_s0"
                case '1':	 // 1 string to match.
                  return Intrinsic::hexagon_M2_vmpy2es_s1;	 // "__builtin_HEXAGON_M2_vmpy2es_s1"
                }
                break;
              case 's':	 // 2 strings to match.
                if (memcmp(BuiltinName.data()+27, "u_s", 3))
                  break;
                switch (BuiltinName[30]) {
                default: break;
                case '0':	 // 1 string to match.
                  return Intrinsic::hexagon_M2_vmpy2su_s0;	 // "__builtin_HEXAGON_M2_vmpy2su_s0"
                case '1':	 // 1 string to match.
                  return Intrinsic::hexagon_M2_vmpy2su_s1;	 // "__builtin_HEXAGON_M2_vmpy2su_s1"
                }
                break;
              }
              break;
            }
            break;
          case 'r':	 // 5 strings to match.
            if (memcmp(BuiltinName.data()+23, "cm", 2))
              break;
            switch (BuiltinName[25]) {
            default: break;
            case 'a':	 // 2 strings to match.
              if (BuiltinName[26] != 'c')
                break;
              switch (BuiltinName[27]) {
              default: break;
              case 'i':	 // 1 string to match.
                if (memcmp(BuiltinName.data()+28, "_s0", 3))
                  break;
                return Intrinsic::hexagon_M2_vrcmaci_s0;	 // "__builtin_HEXAGON_M2_vrcmaci_s0"
              case 'r':	 // 1 string to match.
                if (memcmp(BuiltinName.data()+28, "_s0", 3))
                  break;
                return Intrinsic::hexagon_M2_vrcmacr_s0;	 // "__builtin_HEXAGON_M2_vrcmacr_s0"
              }
              break;
            case 'p':	 // 3 strings to match.
              if (BuiltinName[26] != 'y')
                break;
              switch (BuiltinName[27]) {
              default: break;
              case 'i':	 // 1 string to match.
                if (memcmp(BuiltinName.data()+28, "_s0", 3))
                  break;
                return Intrinsic::hexagon_M2_vrcmpyi_s0;	 // "__builtin_HEXAGON_M2_vrcmpyi_s0"
              case 'r':	 // 1 string to match.
                if (memcmp(BuiltinName.data()+28, "_s0", 3))
                  break;
                return Intrinsic::hexagon_M2_vrcmpyr_s0;	 // "__builtin_HEXAGON_M2_vrcmpyr_s0"
              case 's':	 // 1 string to match.
                if (memcmp(BuiltinName.data()+28, "_s1", 3))
                  break;
                return Intrinsic::hexagon_M2_vrcmpys_s1;	 // "__builtin_HEXAGON_M2_vrcmpys_s1"
              }
              break;
            }
            break;
          }
          break;
        }
        break;
      case '4':	 // 9 strings to match.
        if (BuiltinName[20] != '_')
          break;
        switch (BuiltinName[21]) {
        default: break;
        case 'm':	 // 4 strings to match.
          if (memcmp(BuiltinName.data()+22, "pyr", 3))
            break;
          switch (BuiltinName[25]) {
          default: break;
          case 'i':	 // 2 strings to match.
            if (memcmp(BuiltinName.data()+26, "_add", 4))
              break;
            switch (BuiltinName[30]) {
            default: break;
            case 'i':	 // 1 string to match.
              return Intrinsic::hexagon_M4_mpyri_addi;	 // "__builtin_HEXAGON_M4_mpyri_addi"
            case 'r':	 // 1 string to match.
              return Intrinsic::hexagon_M4_mpyri_addr;	 // "__builtin_HEXAGON_M4_mpyri_addr"
            }
            break;
          case 'r':	 // 2 strings to match.
            if (memcmp(BuiltinName.data()+26, "_add", 4))
              break;
            switch (BuiltinName[30]) {
            default: break;
            case 'i':	 // 1 string to match.
              return Intrinsic::hexagon_M4_mpyrr_addi;	 // "__builtin_HEXAGON_M4_mpyrr_addi"
            case 'r':	 // 1 string to match.
              return Intrinsic::hexagon_M4_mpyrr_addr;	 // "__builtin_HEXAGON_M4_mpyrr_addr"
            }
            break;
          }
          break;
        case 'v':	 // 5 strings to match.
          switch (BuiltinName[22]) {
          default: break;
          case 'p':	 // 1 string to match.
            if (memcmp(BuiltinName.data()+23, "mpyh_acc", 8))
              break;
            return Intrinsic::hexagon_M4_vpmpyh_acc;	 // "__builtin_HEXAGON_M4_vpmpyh_acc"
          case 'r':	 // 4 strings to match.
            if (memcmp(BuiltinName.data()+23, "mpy", 3))
              break;
            switch (BuiltinName[26]) {
            default: break;
            case 'e':	 // 2 strings to match.
              if (memcmp(BuiltinName.data()+27, "h_s", 3))
                break;
              switch (BuiltinName[30]) {
              default: break;
              case '0':	 // 1 string to match.
                return Intrinsic::hexagon_M4_vrmpyeh_s0;	 // "__builtin_HEXAGON_M4_vrmpyeh_s0"
              case '1':	 // 1 string to match.
                return Intrinsic::hexagon_M4_vrmpyeh_s1;	 // "__builtin_HEXAGON_M4_vrmpyeh_s1"
              }
              break;
            case 'o':	 // 2 strings to match.
              if (memcmp(BuiltinName.data()+27, "h_s", 3))
                break;
              switch (BuiltinName[30]) {
              default: break;
              case '0':	 // 1 string to match.
                return Intrinsic::hexagon_M4_vrmpyoh_s0;	 // "__builtin_HEXAGON_M4_vrmpyoh_s0"
              case '1':	 // 1 string to match.
                return Intrinsic::hexagon_M4_vrmpyoh_s1;	 // "__builtin_HEXAGON_M4_vrmpyoh_s1"
              }
              break;
            }
            break;
          }
          break;
        }
        break;
      }
      break;
    case 'S':	 // 23 strings to match.
      switch (BuiltinName[19]) {
      default: break;
      case '2':	 // 17 strings to match.
        if (BuiltinName[20] != '_')
          break;
        switch (BuiltinName[21]) {
        default: break;
        case 'a':	 // 8 strings to match.
          if (BuiltinName[22] != 's')
            break;
          switch (BuiltinName[23]) {
          default: break;
          case 'l':	 // 4 strings to match.
            if (BuiltinName[24] != '_')
              break;
            switch (BuiltinName[25]) {
            default: break;
            case 'i':	 // 2 strings to match.
              if (BuiltinName[26] != '_')
                break;
              switch (BuiltinName[27]) {
              default: break;
              case 'p':	 // 1 string to match.
                if (memcmp(BuiltinName.data()+28, "_or", 3))
                  break;
                return Intrinsic::hexagon_S2_asl_i_p_or;	 // "__builtin_HEXAGON_S2_asl_i_p_or"
              case 'r':	 // 1 string to match.
                if (memcmp(BuiltinName.data()+28, "_or", 3))
                  break;
                return Intrinsic::hexagon_S2_asl_i_r_or;	 // "__builtin_HEXAGON_S2_asl_i_r_or"
              }
              break;
            case 'r':	 // 2 strings to match.
              if (BuiltinName[26] != '_')
                break;
              switch (BuiltinName[27]) {
              default: break;
              case 'p':	 // 1 string to match.
                if (memcmp(BuiltinName.data()+28, "_or", 3))
                  break;
                return Intrinsic::hexagon_S2_asl_r_p_or;	 // "__builtin_HEXAGON_S2_asl_r_p_or"
              case 'r':	 // 1 string to match.
                if (memcmp(BuiltinName.data()+28, "_or", 3))
                  break;
                return Intrinsic::hexagon_S2_asl_r_r_or;	 // "__builtin_HEXAGON_S2_asl_r_r_or"
              }
              break;
            }
            break;
          case 'r':	 // 4 strings to match.
            if (BuiltinName[24] != '_')
              break;
            switch (BuiltinName[25]) {
            default: break;
            case 'i':	 // 2 strings to match.
              if (BuiltinName[26] != '_')
                break;
              switch (BuiltinName[27]) {
              default: break;
              case 'p':	 // 1 string to match.
                if (memcmp(BuiltinName.data()+28, "_or", 3))
                  break;
                return Intrinsic::hexagon_S2_asr_i_p_or;	 // "__builtin_HEXAGON_S2_asr_i_p_or"
              case 'r':	 // 1 string to match.
                if (memcmp(BuiltinName.data()+28, "_or", 3))
                  break;
                return Intrinsic::hexagon_S2_asr_i_r_or;	 // "__builtin_HEXAGON_S2_asr_i_r_or"
              }
              break;
            case 'r':	 // 2 strings to match.
              if (BuiltinName[26] != '_')
                break;
              switch (BuiltinName[27]) {
              default: break;
              case 'p':	 // 1 string to match.
                if (memcmp(BuiltinName.data()+28, "_or", 3))
                  break;
                return Intrinsic::hexagon_S2_asr_r_p_or;	 // "__builtin_HEXAGON_S2_asr_r_p_or"
              case 'r':	 // 1 string to match.
                if (memcmp(BuiltinName.data()+28, "_or", 3))
                  break;
                return Intrinsic::hexagon_S2_asr_r_r_or;	 // "__builtin_HEXAGON_S2_asr_r_r_or"
              }
              break;
            }
            break;
          }
          break;
        case 'i':	 // 2 strings to match.
          if (BuiltinName[22] != 'n')
            break;
          switch (BuiltinName[23]) {
          default: break;
          case 's':	 // 1 string to match.
            if (memcmp(BuiltinName.data()+24, "ertp_rp", 7))
              break;
            return Intrinsic::hexagon_S2_insertp_rp;	 // "__builtin_HEXAGON_S2_insertp_rp"
          case 't':	 // 1 string to match.
            if (memcmp(BuiltinName.data()+24, "erleave", 7))
              break;
            return Intrinsic::hexagon_S2_interleave;	 // "__builtin_HEXAGON_S2_interleave"
          }
          break;
        case 'l':	 // 6 strings to match.
          if (BuiltinName[22] != 's')
            break;
          switch (BuiltinName[23]) {
          default: break;
          case 'l':	 // 2 strings to match.
            if (memcmp(BuiltinName.data()+24, "_r_", 3))
              break;
            switch (BuiltinName[27]) {
            default: break;
            case 'p':	 // 1 string to match.
              if (memcmp(BuiltinName.data()+28, "_or", 3))
                break;
              return Intrinsic::hexagon_S2_lsl_r_p_or;	 // "__builtin_HEXAGON_S2_lsl_r_p_or"
            case 'r':	 // 1 string to match.
              if (memcmp(BuiltinName.data()+28, "_or", 3))
                break;
              return Intrinsic::hexagon_S2_lsl_r_r_or;	 // "__builtin_HEXAGON_S2_lsl_r_r_or"
            }
            break;
          case 'r':	 // 4 strings to match.
            if (BuiltinName[24] != '_')
              break;
            switch (BuiltinName[25]) {
            default: break;
            case 'i':	 // 2 strings to match.
              if (BuiltinName[26] != '_')
                break;
              switch (BuiltinName[27]) {
              default: break;
              case 'p':	 // 1 string to match.
                if (memcmp(BuiltinName.data()+28, "_or", 3))
                  break;
                return Intrinsic::hexagon_S2_lsr_i_p_or;	 // "__builtin_HEXAGON_S2_lsr_i_p_or"
              case 'r':	 // 1 string to match.
                if (memcmp(BuiltinName.data()+28, "_or", 3))
                  break;
                return Intrinsic::hexagon_S2_lsr_i_r_or;	 // "__builtin_HEXAGON_S2_lsr_i_r_or"
              }
              break;
            case 'r':	 // 2 strings to match.
              if (BuiltinName[26] != '_')
                break;
              switch (BuiltinName[27]) {
              default: break;
              case 'p':	 // 1 string to match.
                if (memcmp(BuiltinName.data()+28, "_or", 3))
                  break;
                return Intrinsic::hexagon_S2_lsr_r_p_or;	 // "__builtin_HEXAGON_S2_lsr_r_p_or"
              case 'r':	 // 1 string to match.
                if (memcmp(BuiltinName.data()+28, "_or", 3))
                  break;
                return Intrinsic::hexagon_S2_lsr_r_r_or;	 // "__builtin_HEXAGON_S2_lsr_r_r_or"
              }
              break;
            }
            break;
          }
          break;
        case 'v':	 // 1 string to match.
          if (memcmp(BuiltinName.data()+22, "rndpackwh", 9))
            break;
          return Intrinsic::hexagon_S2_vrndpackwh;	 // "__builtin_HEXAGON_S2_vrndpackwh"
        }
        break;
      case '4':	 // 5 strings to match.
        if (BuiltinName[20] != '_')
          break;
        switch (BuiltinName[21]) {
        default: break;
        case 'e':	 // 1 string to match.
          if (memcmp(BuiltinName.data()+22, "xtract_rp", 9))
            break;
          return Intrinsic::hexagon_S4_extract_rp;	 // "__builtin_HEXAGON_S4_extract_rp"
        case 'o':	 // 2 strings to match.
          if (memcmp(BuiltinName.data()+22, "ri_", 3))
            break;
          switch (BuiltinName[25]) {
          default: break;
          case 'a':	 // 1 string to match.
            if (memcmp(BuiltinName.data()+26, "sl_ri", 5))
              break;
            return Intrinsic::hexagon_S4_ori_asl_ri;	 // "__builtin_HEXAGON_S4_ori_asl_ri"
          case 'l':	 // 1 string to match.
            if (memcmp(BuiltinName.data()+26, "sr_ri", 5))
              break;
            return Intrinsic::hexagon_S4_ori_lsr_ri;	 // "__builtin_HEXAGON_S4_ori_lsr_ri"
          }
          break;
        case 'v':	 // 2 strings to match.
          if (BuiltinName[22] != 'x')
            break;
          switch (BuiltinName[23]) {
          default: break;
          case 'a':	 // 1 string to match.
            if (memcmp(BuiltinName.data()+24, "ddsubhr", 7))
              break;
            return Intrinsic::hexagon_S4_vxaddsubhr;	 // "__builtin_HEXAGON_S4_vxaddsubhr"
          case 's':	 // 1 string to match.
            if (memcmp(BuiltinName.data()+24, "ubaddhr", 7))
              break;
            return Intrinsic::hexagon_S4_vxsubaddhr;	 // "__builtin_HEXAGON_S4_vxsubaddhr"
          }
          break;
        }
        break;
      case '5':	 // 1 string to match.
        if (memcmp(BuiltinName.data()+20, "_asrhub_sat", 11))
          break;
        return Intrinsic::hexagon_S5_asrhub_sat;	 // "__builtin_HEXAGON_S5_asrhub_sat"
      }
      break;
    }
    break;
  case 32:	 // 96 strings to match.
    if (memcmp(BuiltinName.data()+0, "__builtin_HEXAGON_", 18))
      break;
    switch (BuiltinName[18]) {
    default: break;
    case 'A':	 // 16 strings to match.
      switch (BuiltinName[19]) {
      default: break;
      case '2':	 // 14 strings to match.
        if (BuiltinName[20] != '_')
          break;
        switch (BuiltinName[21]) {
        default: break;
        case 'a':	 // 6 strings to match.
          if (memcmp(BuiltinName.data()+22, "ddh_", 4))
            break;
          switch (BuiltinName[26]) {
          default: break;
          case 'h':	 // 4 strings to match.
            if (memcmp(BuiltinName.data()+27, "16_", 3))
              break;
            switch (BuiltinName[30]) {
            default: break;
            case 'h':	 // 2 strings to match.
              switch (BuiltinName[31]) {
              default: break;
              case 'h':	 // 1 string to match.
                return Intrinsic::hexagon_A2_addh_h16_hh;	 // "__builtin_HEXAGON_A2_addh_h16_hh"
              case 'l':	 // 1 string to match.
                return Intrinsic::hexagon_A2_addh_h16_hl;	 // "__builtin_HEXAGON_A2_addh_h16_hl"
              }
              break;
            case 'l':	 // 2 strings to match.
              switch (BuiltinName[31]) {
              default: break;
              case 'h':	 // 1 string to match.
                return Intrinsic::hexagon_A2_addh_h16_lh;	 // "__builtin_HEXAGON_A2_addh_h16_lh"
              case 'l':	 // 1 string to match.
                return Intrinsic::hexagon_A2_addh_h16_ll;	 // "__builtin_HEXAGON_A2_addh_h16_ll"
              }
              break;
            }
            break;
          case 'l':	 // 2 strings to match.
            if (memcmp(BuiltinName.data()+27, "16_", 3))
              break;
            switch (BuiltinName[30]) {
            default: break;
            case 'h':	 // 1 string to match.
              if (BuiltinName[31] != 'l')
                break;
              return Intrinsic::hexagon_A2_addh_l16_hl;	 // "__builtin_HEXAGON_A2_addh_l16_hl"
            case 'l':	 // 1 string to match.
              if (BuiltinName[31] != 'l')
                break;
              return Intrinsic::hexagon_A2_addh_l16_ll;	 // "__builtin_HEXAGON_A2_addh_l16_ll"
            }
            break;
          }
          break;
        case 's':	 // 6 strings to match.
          if (memcmp(BuiltinName.data()+22, "ubh_", 4))
            break;
          switch (BuiltinName[26]) {
          default: break;
          case 'h':	 // 4 strings to match.
            if (memcmp(BuiltinName.data()+27, "16_", 3))
              break;
            switch (BuiltinName[30]) {
            default: break;
            case 'h':	 // 2 strings to match.
              switch (BuiltinName[31]) {
              default: break;
              case 'h':	 // 1 string to match.
                return Intrinsic::hexagon_A2_subh_h16_hh;	 // "__builtin_HEXAGON_A2_subh_h16_hh"
              case 'l':	 // 1 string to match.
                return Intrinsic::hexagon_A2_subh_h16_hl;	 // "__builtin_HEXAGON_A2_subh_h16_hl"
              }
              break;
            case 'l':	 // 2 strings to match.
              switch (BuiltinName[31]) {
              default: break;
              case 'h':	 // 1 string to match.
                return Intrinsic::hexagon_A2_subh_h16_lh;	 // "__builtin_HEXAGON_A2_subh_h16_lh"
              case 'l':	 // 1 string to match.
                return Intrinsic::hexagon_A2_subh_h16_ll;	 // "__builtin_HEXAGON_A2_subh_h16_ll"
              }
              break;
            }
            break;
          case 'l':	 // 2 strings to match.
            if (memcmp(BuiltinName.data()+27, "16_", 3))
              break;
            switch (BuiltinName[30]) {
            default: break;
            case 'h':	 // 1 string to match.
              if (BuiltinName[31] != 'l')
                break;
              return Intrinsic::hexagon_A2_subh_l16_hl;	 // "__builtin_HEXAGON_A2_subh_l16_hl"
            case 'l':	 // 1 string to match.
              if (BuiltinName[31] != 'l')
                break;
              return Intrinsic::hexagon_A2_subh_l16_ll;	 // "__builtin_HEXAGON_A2_subh_l16_ll"
            }
            break;
          }
          break;
        case 'v':	 // 2 strings to match.
          if (BuiltinName[22] != 'r')
            break;
          switch (BuiltinName[23]) {
          default: break;
          case 'a':	 // 1 string to match.
            if (memcmp(BuiltinName.data()+24, "ddub_acc", 8))
              break;
            return Intrinsic::hexagon_A2_vraddub_acc;	 // "__builtin_HEXAGON_A2_vraddub_acc"
          case 's':	 // 1 string to match.
            if (memcmp(BuiltinName.data()+24, "adub_acc", 8))
              break;
            return Intrinsic::hexagon_A2_vrsadub_acc;	 // "__builtin_HEXAGON_A2_vrsadub_acc"
          }
          break;
        }
        break;
      case '4':	 // 2 strings to match.
        if (BuiltinName[20] != '_')
          break;
        switch (BuiltinName[21]) {
        default: break;
        case 'b':	 // 1 string to match.
          if (memcmp(BuiltinName.data()+22, "oundscheck", 10))
            break;
          return Intrinsic::hexagon_A4_boundscheck;	 // "__builtin_HEXAGON_A4_boundscheck"
        case 'v':	 // 1 string to match.
          if (memcmp(BuiltinName.data()+22, "cmpbeq_any", 10))
            break;
          return Intrinsic::hexagon_A4_vcmpbeq_any;	 // "__builtin_HEXAGON_A4_vcmpbeq_any"
        }
        break;
      }
      break;
    case 'C':	 // 1 string to match.
      if (memcmp(BuiltinName.data()+19, "4_fastcorner9", 13))
        break;
      return Intrinsic::hexagon_C4_fastcorner9;	 // "__builtin_HEXAGON_C4_fastcorner9"
    case 'M':	 // 16 strings to match.
      if (memcmp(BuiltinName.data()+19, "2_", 2))
        break;
      switch (BuiltinName[21]) {
      default: break;
      case 'm':	 // 12 strings to match.
        switch (BuiltinName[22]) {
        default: break;
        case 'm':	 // 4 strings to match.
          if (memcmp(BuiltinName.data()+23, "acu", 3))
            break;
          switch (BuiltinName[26]) {
          default: break;
          case 'h':	 // 2 strings to match.
            if (memcmp(BuiltinName.data()+27, "s_rs", 4))
              break;
            switch (BuiltinName[31]) {
            default: break;
            case '0':	 // 1 string to match.
              return Intrinsic::hexagon_M2_mmacuhs_rs0;	 // "__builtin_HEXAGON_M2_mmacuhs_rs0"
            case '1':	 // 1 string to match.
              return Intrinsic::hexagon_M2_mmacuhs_rs1;	 // "__builtin_HEXAGON_M2_mmacuhs_rs1"
            }
            break;
          case 'l':	 // 2 strings to match.
            if (memcmp(BuiltinName.data()+27, "s_rs", 4))
              break;
            switch (BuiltinName[31]) {
            default: break;
            case '0':	 // 1 string to match.
              return Intrinsic::hexagon_M2_mmaculs_rs0;	 // "__builtin_HEXAGON_M2_mmaculs_rs0"
            case '1':	 // 1 string to match.
              return Intrinsic::hexagon_M2_mmaculs_rs1;	 // "__builtin_HEXAGON_M2_mmaculs_rs1"
            }
            break;
          }
          break;
        case 'p':	 // 8 strings to match.
          if (memcmp(BuiltinName.data()+23, "yud_", 4))
            break;
          switch (BuiltinName[27]) {
          default: break;
          case 'h':	 // 4 strings to match.
            switch (BuiltinName[28]) {
            default: break;
            case 'h':	 // 2 strings to match.
              if (memcmp(BuiltinName.data()+29, "_s", 2))
                break;
              switch (BuiltinName[31]) {
              default: break;
              case '0':	 // 1 string to match.
                return Intrinsic::hexagon_M2_mpyud_hh_s0;	 // "__builtin_HEXAGON_M2_mpyud_hh_s0"
              case '1':	 // 1 string to match.
                return Intrinsic::hexagon_M2_mpyud_hh_s1;	 // "__builtin_HEXAGON_M2_mpyud_hh_s1"
              }
              break;
            case 'l':	 // 2 strings to match.
              if (memcmp(BuiltinName.data()+29, "_s", 2))
                break;
              switch (BuiltinName[31]) {
              default: break;
              case '0':	 // 1 string to match.
                return Intrinsic::hexagon_M2_mpyud_hl_s0;	 // "__builtin_HEXAGON_M2_mpyud_hl_s0"
              case '1':	 // 1 string to match.
                return Intrinsic::hexagon_M2_mpyud_hl_s1;	 // "__builtin_HEXAGON_M2_mpyud_hl_s1"
              }
              break;
            }
            break;
          case 'l':	 // 4 strings to match.
            switch (BuiltinName[28]) {
            default: break;
            case 'h':	 // 2 strings to match.
              if (memcmp(BuiltinName.data()+29, "_s", 2))
                break;
              switch (BuiltinName[31]) {
              default: break;
              case '0':	 // 1 string to match.
                return Intrinsic::hexagon_M2_mpyud_lh_s0;	 // "__builtin_HEXAGON_M2_mpyud_lh_s0"
              case '1':	 // 1 string to match.
                return Intrinsic::hexagon_M2_mpyud_lh_s1;	 // "__builtin_HEXAGON_M2_mpyud_lh_s1"
              }
              break;
            case 'l':	 // 2 strings to match.
              if (memcmp(BuiltinName.data()+29, "_s", 2))
                break;
              switch (BuiltinName[31]) {
              default: break;
              case '0':	 // 1 string to match.
                return Intrinsic::hexagon_M2_mpyud_ll_s0;	 // "__builtin_HEXAGON_M2_mpyud_ll_s0"
              case '1':	 // 1 string to match.
                return Intrinsic::hexagon_M2_mpyud_ll_s1;	 // "__builtin_HEXAGON_M2_mpyud_ll_s1"
              }
              break;
            }
            break;
          }
          break;
        }
        break;
      case 'v':	 // 4 strings to match.
        if (memcmp(BuiltinName.data()+22, "rcm", 3))
          break;
        switch (BuiltinName[25]) {
        default: break;
        case 'a':	 // 2 strings to match.
          if (BuiltinName[26] != 'c')
            break;
          switch (BuiltinName[27]) {
          default: break;
          case 'i':	 // 1 string to match.
            if (memcmp(BuiltinName.data()+28, "_s0c", 4))
              break;
            return Intrinsic::hexagon_M2_vrcmaci_s0c;	 // "__builtin_HEXAGON_M2_vrcmaci_s0c"
          case 'r':	 // 1 string to match.
            if (memcmp(BuiltinName.data()+28, "_s0c", 4))
              break;
            return Intrinsic::hexagon_M2_vrcmacr_s0c;	 // "__builtin_HEXAGON_M2_vrcmacr_s0c"
          }
          break;
        case 'p':	 // 2 strings to match.
          if (BuiltinName[26] != 'y')
            break;
          switch (BuiltinName[27]) {
          default: break;
          case 'i':	 // 1 string to match.
            if (memcmp(BuiltinName.data()+28, "_s0c", 4))
              break;
            return Intrinsic::hexagon_M2_vrcmpyi_s0c;	 // "__builtin_HEXAGON_M2_vrcmpyi_s0c"
          case 'r':	 // 1 string to match.
            if (memcmp(BuiltinName.data()+28, "_s0c", 4))
              break;
            return Intrinsic::hexagon_M2_vrcmpyr_s0c;	 // "__builtin_HEXAGON_M2_vrcmpyr_s0c"
          }
          break;
        }
        break;
      }
      break;
    case 'S':	 // 63 strings to match.
      switch (BuiltinName[19]) {
      default: break;
      case '2':	 // 56 strings to match.
        if (BuiltinName[20] != '_')
          break;
        switch (BuiltinName[21]) {
        default: break;
        case 'a':	 // 32 strings to match.
          switch (BuiltinName[22]) {
          default: break;
          case 'd':	 // 1 string to match.
            if (memcmp(BuiltinName.data()+23, "dasl_rrri", 9))
              break;
            return Intrinsic::hexagon_S2_addasl_rrri;	 // "__builtin_HEXAGON_S2_addasl_rrri"
          case 's':	 // 31 strings to match.
            switch (BuiltinName[23]) {
            default: break;
            case 'l':	 // 15 strings to match.
              if (BuiltinName[24] != '_')
                break;
              switch (BuiltinName[25]) {
              default: break;
              case 'i':	 // 7 strings to match.
                if (BuiltinName[26] != '_')
                  break;
                switch (BuiltinName[27]) {
                default: break;
                case 'p':	 // 3 strings to match.
                  if (BuiltinName[28] != '_')
                    break;
                  switch (BuiltinName[29]) {
                  default: break;
                  case 'a':	 // 2 strings to match.
                    switch (BuiltinName[30]) {
                    default: break;
                    case 'c':	 // 1 string to match.
                      if (BuiltinName[31] != 'c')
                        break;
                      return Intrinsic::hexagon_S2_asl_i_p_acc;	 // "__builtin_HEXAGON_S2_asl_i_p_acc"
                    case 'n':	 // 1 string to match.
                      if (BuiltinName[31] != 'd')
                        break;
                      return Intrinsic::hexagon_S2_asl_i_p_and;	 // "__builtin_HEXAGON_S2_asl_i_p_and"
                    }
                    break;
                  case 'n':	 // 1 string to match.
                    if (memcmp(BuiltinName.data()+30, "ac", 2))
                      break;
                    return Intrinsic::hexagon_S2_asl_i_p_nac;	 // "__builtin_HEXAGON_S2_asl_i_p_nac"
                  }
                  break;
                case 'r':	 // 4 strings to match.
                  if (BuiltinName[28] != '_')
                    break;
                  switch (BuiltinName[29]) {
                  default: break;
                  case 'a':	 // 2 strings to match.
                    switch (BuiltinName[30]) {
                    default: break;
                    case 'c':	 // 1 string to match.
                      if (BuiltinName[31] != 'c')
                        break;
                      return Intrinsic::hexagon_S2_asl_i_r_acc;	 // "__builtin_HEXAGON_S2_asl_i_r_acc"
                    case 'n':	 // 1 string to match.
                      if (BuiltinName[31] != 'd')
                        break;
                      return Intrinsic::hexagon_S2_asl_i_r_and;	 // "__builtin_HEXAGON_S2_asl_i_r_and"
                    }
                    break;
                  case 'n':	 // 1 string to match.
                    if (memcmp(BuiltinName.data()+30, "ac", 2))
                      break;
                    return Intrinsic::hexagon_S2_asl_i_r_nac;	 // "__builtin_HEXAGON_S2_asl_i_r_nac"
                  case 's':	 // 1 string to match.
                    if (memcmp(BuiltinName.data()+30, "at", 2))
                      break;
                    return Intrinsic::hexagon_S2_asl_i_r_sat;	 // "__builtin_HEXAGON_S2_asl_i_r_sat"
                  }
                  break;
                }
                break;
              case 'r':	 // 8 strings to match.
                if (BuiltinName[26] != '_')
                  break;
                switch (BuiltinName[27]) {
                default: break;
                case 'p':	 // 4 strings to match.
                  if (BuiltinName[28] != '_')
                    break;
                  switch (BuiltinName[29]) {
                  default: break;
                  case 'a':	 // 2 strings to match.
                    switch (BuiltinName[30]) {
                    default: break;
                    case 'c':	 // 1 string to match.
                      if (BuiltinName[31] != 'c')
                        break;
                      return Intrinsic::hexagon_S2_asl_r_p_acc;	 // "__builtin_HEXAGON_S2_asl_r_p_acc"
                    case 'n':	 // 1 string to match.
                      if (BuiltinName[31] != 'd')
                        break;
                      return Intrinsic::hexagon_S2_asl_r_p_and;	 // "__builtin_HEXAGON_S2_asl_r_p_and"
                    }
                    break;
                  case 'n':	 // 1 string to match.
                    if (memcmp(BuiltinName.data()+30, "ac", 2))
                      break;
                    return Intrinsic::hexagon_S2_asl_r_p_nac;	 // "__builtin_HEXAGON_S2_asl_r_p_nac"
                  case 'x':	 // 1 string to match.
                    if (memcmp(BuiltinName.data()+30, "or", 2))
                      break;
                    return Intrinsic::hexagon_S2_asl_r_p_xor;	 // "__builtin_HEXAGON_S2_asl_r_p_xor"
                  }
                  break;
                case 'r':	 // 4 strings to match.
                  if (BuiltinName[28] != '_')
                    break;
                  switch (BuiltinName[29]) {
                  default: break;
                  case 'a':	 // 2 strings to match.
                    switch (BuiltinName[30]) {
                    default: break;
                    case 'c':	 // 1 string to match.
                      if (BuiltinName[31] != 'c')
                        break;
                      return Intrinsic::hexagon_S2_asl_r_r_acc;	 // "__builtin_HEXAGON_S2_asl_r_r_acc"
                    case 'n':	 // 1 string to match.
                      if (BuiltinName[31] != 'd')
                        break;
                      return Intrinsic::hexagon_S2_asl_r_r_and;	 // "__builtin_HEXAGON_S2_asl_r_r_and"
                    }
                    break;
                  case 'n':	 // 1 string to match.
                    if (memcmp(BuiltinName.data()+30, "ac", 2))
                      break;
                    return Intrinsic::hexagon_S2_asl_r_r_nac;	 // "__builtin_HEXAGON_S2_asl_r_r_nac"
                  case 's':	 // 1 string to match.
                    if (memcmp(BuiltinName.data()+30, "at", 2))
                      break;
                    return Intrinsic::hexagon_S2_asl_r_r_sat;	 // "__builtin_HEXAGON_S2_asl_r_r_sat"
                  }
                  break;
                }
                break;
              }
              break;
            case 'r':	 // 16 strings to match.
              if (BuiltinName[24] != '_')
                break;
              switch (BuiltinName[25]) {
              default: break;
              case 'i':	 // 8 strings to match.
                if (BuiltinName[26] != '_')
                  break;
                switch (BuiltinName[27]) {
                default: break;
                case 'p':	 // 4 strings to match.
                  if (BuiltinName[28] != '_')
                    break;
                  switch (BuiltinName[29]) {
                  default: break;
                  case 'a':	 // 2 strings to match.
                    switch (BuiltinName[30]) {
                    default: break;
                    case 'c':	 // 1 string to match.
                      if (BuiltinName[31] != 'c')
                        break;
                      return Intrinsic::hexagon_S2_asr_i_p_acc;	 // "__builtin_HEXAGON_S2_asr_i_p_acc"
                    case 'n':	 // 1 string to match.
                      if (BuiltinName[31] != 'd')
                        break;
                      return Intrinsic::hexagon_S2_asr_i_p_and;	 // "__builtin_HEXAGON_S2_asr_i_p_and"
                    }
                    break;
                  case 'n':	 // 1 string to match.
                    if (memcmp(BuiltinName.data()+30, "ac", 2))
                      break;
                    return Intrinsic::hexagon_S2_asr_i_p_nac;	 // "__builtin_HEXAGON_S2_asr_i_p_nac"
                  case 'r':	 // 1 string to match.
                    if (memcmp(BuiltinName.data()+30, "nd", 2))
                      break;
                    return Intrinsic::hexagon_S2_asr_i_p_rnd;	 // "__builtin_HEXAGON_S2_asr_i_p_rnd"
                  }
                  break;
                case 'r':	 // 4 strings to match.
                  if (BuiltinName[28] != '_')
                    break;
                  switch (BuiltinName[29]) {
                  default: break;
                  case 'a':	 // 2 strings to match.
                    switch (BuiltinName[30]) {
                    default: break;
                    case 'c':	 // 1 string to match.
                      if (BuiltinName[31] != 'c')
                        break;
                      return Intrinsic::hexagon_S2_asr_i_r_acc;	 // "__builtin_HEXAGON_S2_asr_i_r_acc"
                    case 'n':	 // 1 string to match.
                      if (BuiltinName[31] != 'd')
                        break;
                      return Intrinsic::hexagon_S2_asr_i_r_and;	 // "__builtin_HEXAGON_S2_asr_i_r_and"
                    }
                    break;
                  case 'n':	 // 1 string to match.
                    if (memcmp(BuiltinName.data()+30, "ac", 2))
                      break;
                    return Intrinsic::hexagon_S2_asr_i_r_nac;	 // "__builtin_HEXAGON_S2_asr_i_r_nac"
                  case 'r':	 // 1 string to match.
                    if (memcmp(BuiltinName.data()+30, "nd", 2))
                      break;
                    return Intrinsic::hexagon_S2_asr_i_r_rnd;	 // "__builtin_HEXAGON_S2_asr_i_r_rnd"
                  }
                  break;
                }
                break;
              case 'r':	 // 8 strings to match.
                if (BuiltinName[26] != '_')
                  break;
                switch (BuiltinName[27]) {
                default: break;
                case 'p':	 // 4 strings to match.
                  if (BuiltinName[28] != '_')
                    break;
                  switch (BuiltinName[29]) {
                  default: break;
                  case 'a':	 // 2 strings to match.
                    switch (BuiltinName[30]) {
                    default: break;
                    case 'c':	 // 1 string to match.
                      if (BuiltinName[31] != 'c')
                        break;
                      return Intrinsic::hexagon_S2_asr_r_p_acc;	 // "__builtin_HEXAGON_S2_asr_r_p_acc"
                    case 'n':	 // 1 string to match.
                      if (BuiltinName[31] != 'd')
                        break;
                      return Intrinsic::hexagon_S2_asr_r_p_and;	 // "__builtin_HEXAGON_S2_asr_r_p_and"
                    }
                    break;
                  case 'n':	 // 1 string to match.
                    if (memcmp(BuiltinName.data()+30, "ac", 2))
                      break;
                    return Intrinsic::hexagon_S2_asr_r_p_nac;	 // "__builtin_HEXAGON_S2_asr_r_p_nac"
                  case 'x':	 // 1 string to match.
                    if (memcmp(BuiltinName.data()+30, "or", 2))
                      break;
                    return Intrinsic::hexagon_S2_asr_r_p_xor;	 // "__builtin_HEXAGON_S2_asr_r_p_xor"
                  }
                  break;
                case 'r':	 // 4 strings to match.
                  if (BuiltinName[28] != '_')
                    break;
                  switch (BuiltinName[29]) {
                  default: break;
                  case 'a':	 // 2 strings to match.
                    switch (BuiltinName[30]) {
                    default: break;
                    case 'c':	 // 1 string to match.
                      if (BuiltinName[31] != 'c')
                        break;
                      return Intrinsic::hexagon_S2_asr_r_r_acc;	 // "__builtin_HEXAGON_S2_asr_r_r_acc"
                    case 'n':	 // 1 string to match.
                      if (BuiltinName[31] != 'd')
                        break;
                      return Intrinsic::hexagon_S2_asr_r_r_and;	 // "__builtin_HEXAGON_S2_asr_r_r_and"
                    }
                    break;
                  case 'n':	 // 1 string to match.
                    if (memcmp(BuiltinName.data()+30, "ac", 2))
                      break;
                    return Intrinsic::hexagon_S2_asr_r_r_nac;	 // "__builtin_HEXAGON_S2_asr_r_r_nac"
                  case 's':	 // 1 string to match.
                    if (memcmp(BuiltinName.data()+30, "at", 2))
                      break;
                    return Intrinsic::hexagon_S2_asr_r_r_sat;	 // "__builtin_HEXAGON_S2_asr_r_r_sat"
                  }
                  break;
                }
                break;
              }
              break;
            }
            break;
          }
          break;
        case 'e':	 // 1 string to match.
          if (memcmp(BuiltinName.data()+22, "xtractu_rp", 10))
            break;
          return Intrinsic::hexagon_S2_extractu_rp;	 // "__builtin_HEXAGON_S2_extractu_rp"
        case 'l':	 // 20 strings to match.
          if (BuiltinName[22] != 's')
            break;
          switch (BuiltinName[23]) {
          default: break;
          case 'l':	 // 7 strings to match.
            if (memcmp(BuiltinName.data()+24, "_r_", 3))
              break;
            switch (BuiltinName[27]) {
            default: break;
            case 'p':	 // 4 strings to match.
              if (BuiltinName[28] != '_')
                break;
              switch (BuiltinName[29]) {
              default: break;
              case 'a':	 // 2 strings to match.
                switch (BuiltinName[30]) {
                default: break;
                case 'c':	 // 1 string to match.
                  if (BuiltinName[31] != 'c')
                    break;
                  return Intrinsic::hexagon_S2_lsl_r_p_acc;	 // "__builtin_HEXAGON_S2_lsl_r_p_acc"
                case 'n':	 // 1 string to match.
                  if (BuiltinName[31] != 'd')
                    break;
                  return Intrinsic::hexagon_S2_lsl_r_p_and;	 // "__builtin_HEXAGON_S2_lsl_r_p_and"
                }
                break;
              case 'n':	 // 1 string to match.
                if (memcmp(BuiltinName.data()+30, "ac", 2))
                  break;
                return Intrinsic::hexagon_S2_lsl_r_p_nac;	 // "__builtin_HEXAGON_S2_lsl_r_p_nac"
              case 'x':	 // 1 string to match.
                if (memcmp(BuiltinName.data()+30, "or", 2))
                  break;
                return Intrinsic::hexagon_S2_lsl_r_p_xor;	 // "__builtin_HEXAGON_S2_lsl_r_p_xor"
              }
              break;
            case 'r':	 // 3 strings to match.
              if (BuiltinName[28] != '_')
                break;
              switch (BuiltinName[29]) {
              default: break;
              case 'a':	 // 2 strings to match.
                switch (BuiltinName[30]) {
                default: break;
                case 'c':	 // 1 string to match.
                  if (BuiltinName[31] != 'c')
                    break;
                  return Intrinsic::hexagon_S2_lsl_r_r_acc;	 // "__builtin_HEXAGON_S2_lsl_r_r_acc"
                case 'n':	 // 1 string to match.
                  if (BuiltinName[31] != 'd')
                    break;
                  return Intrinsic::hexagon_S2_lsl_r_r_and;	 // "__builtin_HEXAGON_S2_lsl_r_r_and"
                }
                break;
              case 'n':	 // 1 string to match.
                if (memcmp(BuiltinName.data()+30, "ac", 2))
                  break;
                return Intrinsic::hexagon_S2_lsl_r_r_nac;	 // "__builtin_HEXAGON_S2_lsl_r_r_nac"
              }
              break;
            }
            break;
          case 'r':	 // 13 strings to match.
            if (BuiltinName[24] != '_')
              break;
            switch (BuiltinName[25]) {
            default: break;
            case 'i':	 // 6 strings to match.
              if (BuiltinName[26] != '_')
                break;
              switch (BuiltinName[27]) {
              default: break;
              case 'p':	 // 3 strings to match.
                if (BuiltinName[28] != '_')
                  break;
                switch (BuiltinName[29]) {
                default: break;
                case 'a':	 // 2 strings to match.
                  switch (BuiltinName[30]) {
                  default: break;
                  case 'c':	 // 1 string to match.
                    if (BuiltinName[31] != 'c')
                      break;
                    return Intrinsic::hexagon_S2_lsr_i_p_acc;	 // "__builtin_HEXAGON_S2_lsr_i_p_acc"
                  case 'n':	 // 1 string to match.
                    if (BuiltinName[31] != 'd')
                      break;
                    return Intrinsic::hexagon_S2_lsr_i_p_and;	 // "__builtin_HEXAGON_S2_lsr_i_p_and"
                  }
                  break;
                case 'n':	 // 1 string to match.
                  if (memcmp(BuiltinName.data()+30, "ac", 2))
                    break;
                  return Intrinsic::hexagon_S2_lsr_i_p_nac;	 // "__builtin_HEXAGON_S2_lsr_i_p_nac"
                }
                break;
              case 'r':	 // 3 strings to match.
                if (BuiltinName[28] != '_')
                  break;
                switch (BuiltinName[29]) {
                default: break;
                case 'a':	 // 2 strings to match.
                  switch (BuiltinName[30]) {
                  default: break;
                  case 'c':	 // 1 string to match.
                    if (BuiltinName[31] != 'c')
                      break;
                    return Intrinsic::hexagon_S2_lsr_i_r_acc;	 // "__builtin_HEXAGON_S2_lsr_i_r_acc"
                  case 'n':	 // 1 string to match.
                    if (BuiltinName[31] != 'd')
                      break;
                    return Intrinsic::hexagon_S2_lsr_i_r_and;	 // "__builtin_HEXAGON_S2_lsr_i_r_and"
                  }
                  break;
                case 'n':	 // 1 string to match.
                  if (memcmp(BuiltinName.data()+30, "ac", 2))
                    break;
                  return Intrinsic::hexagon_S2_lsr_i_r_nac;	 // "__builtin_HEXAGON_S2_lsr_i_r_nac"
                }
                break;
              }
              break;
            case 'r':	 // 7 strings to match.
              if (BuiltinName[26] != '_')
                break;
              switch (BuiltinName[27]) {
              default: break;
              case 'p':	 // 4 strings to match.
                if (BuiltinName[28] != '_')
                  break;
                switch (BuiltinName[29]) {
                default: break;
                case 'a':	 // 2 strings to match.
                  switch (BuiltinName[30]) {
                  default: break;
                  case 'c':	 // 1 string to match.
                    if (BuiltinName[31] != 'c')
                      break;
                    return Intrinsic::hexagon_S2_lsr_r_p_acc;	 // "__builtin_HEXAGON_S2_lsr_r_p_acc"
                  case 'n':	 // 1 string to match.
                    if (BuiltinName[31] != 'd')
                      break;
                    return Intrinsic::hexagon_S2_lsr_r_p_and;	 // "__builtin_HEXAGON_S2_lsr_r_p_and"
                  }
                  break;
                case 'n':	 // 1 string to match.
                  if (memcmp(BuiltinName.data()+30, "ac", 2))
                    break;
                  return Intrinsic::hexagon_S2_lsr_r_p_nac;	 // "__builtin_HEXAGON_S2_lsr_r_p_nac"
                case 'x':	 // 1 string to match.
                  if (memcmp(BuiltinName.data()+30, "or", 2))
                    break;
                  return Intrinsic::hexagon_S2_lsr_r_p_xor;	 // "__builtin_HEXAGON_S2_lsr_r_p_xor"
                }
                break;
              case 'r':	 // 3 strings to match.
                if (BuiltinName[28] != '_')
                  break;
                switch (BuiltinName[29]) {
                default: break;
                case 'a':	 // 2 strings to match.
                  switch (BuiltinName[30]) {
                  default: break;
                  case 'c':	 // 1 string to match.
                    if (BuiltinName[31] != 'c')
                      break;
                    return Intrinsic::hexagon_S2_lsr_r_r_acc;	 // "__builtin_HEXAGON_S2_lsr_r_r_acc"
                  case 'n':	 // 1 string to match.
                    if (BuiltinName[31] != 'd')
                      break;
                    return Intrinsic::hexagon_S2_lsr_r_r_and;	 // "__builtin_HEXAGON_S2_lsr_r_r_and"
                  }
                  break;
                case 'n':	 // 1 string to match.
                  if (memcmp(BuiltinName.data()+30, "ac", 2))
                    break;
                  return Intrinsic::hexagon_S2_lsr_r_r_nac;	 // "__builtin_HEXAGON_S2_lsr_r_r_nac"
                }
                break;
              }
              break;
            }
            break;
          }
          break;
        case 't':	 // 2 strings to match.
          if (memcmp(BuiltinName.data()+22, "ogglebit_", 9))
            break;
          switch (BuiltinName[31]) {
          default: break;
          case 'i':	 // 1 string to match.
            return Intrinsic::hexagon_S2_togglebit_i;	 // "__builtin_HEXAGON_S2_togglebit_i"
          case 'r':	 // 1 string to match.
            return Intrinsic::hexagon_S2_togglebit_r;	 // "__builtin_HEXAGON_S2_togglebit_r"
          }
          break;
        case 'v':	 // 1 string to match.
          if (memcmp(BuiltinName.data()+22, "rndpackwhs", 10))
            break;
          return Intrinsic::hexagon_S2_vrndpackwhs;	 // "__builtin_HEXAGON_S2_vrndpackwhs"
        }
        break;
      case '4':	 // 7 strings to match.
        if (BuiltinName[20] != '_')
          break;
        switch (BuiltinName[21]) {
        default: break;
        case 'a':	 // 4 strings to match.
          switch (BuiltinName[22]) {
          default: break;
          case 'd':	 // 2 strings to match.
            if (memcmp(BuiltinName.data()+23, "di_", 3))
              break;
            switch (BuiltinName[26]) {
            default: break;
            case 'a':	 // 1 string to match.
              if (memcmp(BuiltinName.data()+27, "sl_ri", 5))
                break;
              return Intrinsic::hexagon_S4_addi_asl_ri;	 // "__builtin_HEXAGON_S4_addi_asl_ri"
            case 'l':	 // 1 string to match.
              if (memcmp(BuiltinName.data()+27, "sr_ri", 5))
                break;
              return Intrinsic::hexagon_S4_addi_lsr_ri;	 // "__builtin_HEXAGON_S4_addi_lsr_ri"
            }
            break;
          case 'n':	 // 2 strings to match.
            if (memcmp(BuiltinName.data()+23, "di_", 3))
              break;
            switch (BuiltinName[26]) {
            default: break;
            case 'a':	 // 1 string to match.
              if (memcmp(BuiltinName.data()+27, "sl_ri", 5))
                break;
              return Intrinsic::hexagon_S4_andi_asl_ri;	 // "__builtin_HEXAGON_S4_andi_asl_ri"
            case 'l':	 // 1 string to match.
              if (memcmp(BuiltinName.data()+27, "sr_ri", 5))
                break;
              return Intrinsic::hexagon_S4_andi_lsr_ri;	 // "__builtin_HEXAGON_S4_andi_lsr_ri"
            }
            break;
          }
          break;
        case 'e':	 // 1 string to match.
          if (memcmp(BuiltinName.data()+22, "xtractp_rp", 10))
            break;
          return Intrinsic::hexagon_S4_extractp_rp;	 // "__builtin_HEXAGON_S4_extractp_rp"
        case 's':	 // 2 strings to match.
          if (memcmp(BuiltinName.data()+22, "ubi_", 4))
            break;
          switch (BuiltinName[26]) {
          default: break;
          case 'a':	 // 1 string to match.
            if (memcmp(BuiltinName.data()+27, "sl_ri", 5))
              break;
            return Intrinsic::hexagon_S4_subi_asl_ri;	 // "__builtin_HEXAGON_S4_subi_asl_ri"
          case 'l':	 // 1 string to match.
            if (memcmp(BuiltinName.data()+27, "sr_ri", 5))
              break;
            return Intrinsic::hexagon_S4_subi_lsr_ri;	 // "__builtin_HEXAGON_S4_subi_lsr_ri"
          }
          break;
        }
        break;
      }
      break;
    }
    break;
  case 33:	 // 9 strings to match.
    if (memcmp(BuiltinName.data()+0, "__builtin_HEXAGON_", 18))
      break;
    switch (BuiltinName[18]) {
    default: break;
    case 'A':	 // 2 strings to match.
      if (memcmp(BuiltinName.data()+19, "4_round_r", 9))
        break;
      switch (BuiltinName[28]) {
      default: break;
      case 'i':	 // 1 string to match.
        if (memcmp(BuiltinName.data()+29, "_sat", 4))
          break;
        return Intrinsic::hexagon_A4_round_ri_sat;	 // "__builtin_HEXAGON_A4_round_ri_sat"
      case 'r':	 // 1 string to match.
        if (memcmp(BuiltinName.data()+29, "_sat", 4))
          break;
        return Intrinsic::hexagon_A4_round_rr_sat;	 // "__builtin_HEXAGON_A4_round_rr_sat"
      }
      break;
    case 'M':	 // 1 string to match.
      if (memcmp(BuiltinName.data()+19, "2_vrcmpys_s1rp", 14))
        break;
      return Intrinsic::hexagon_M2_vrcmpys_s1rp;	 // "__builtin_HEXAGON_M2_vrcmpys_s1rp"
    case 'S':	 // 6 strings to match.
      if (memcmp(BuiltinName.data()+19, "2_", 2))
        break;
      switch (BuiltinName[21]) {
      default: break;
      case 'a':	 // 2 strings to match.
        if (memcmp(BuiltinName.data()+22, "sl_i_", 5))
          break;
        switch (BuiltinName[27]) {
        default: break;
        case 'p':	 // 1 string to match.
          if (memcmp(BuiltinName.data()+28, "_xacc", 5))
            break;
          return Intrinsic::hexagon_S2_asl_i_p_xacc;	 // "__builtin_HEXAGON_S2_asl_i_p_xacc"
        case 'r':	 // 1 string to match.
          if (memcmp(BuiltinName.data()+28, "_xacc", 5))
            break;
          return Intrinsic::hexagon_S2_asl_i_r_xacc;	 // "__builtin_HEXAGON_S2_asl_i_r_xacc"
        }
        break;
      case 'd':	 // 1 string to match.
        if (memcmp(BuiltinName.data()+22, "einterleave", 11))
          break;
        return Intrinsic::hexagon_S2_deinterleave;	 // "__builtin_HEXAGON_S2_deinterleave"
      case 'e':	 // 1 string to match.
        if (memcmp(BuiltinName.data()+22, "xtractup_rp", 11))
          break;
        return Intrinsic::hexagon_S2_extractup_rp;	 // "__builtin_HEXAGON_S2_extractup_rp"
      case 'l':	 // 2 strings to match.
        if (memcmp(BuiltinName.data()+22, "sr_i_", 5))
          break;
        switch (BuiltinName[27]) {
        default: break;
        case 'p':	 // 1 string to match.
          if (memcmp(BuiltinName.data()+28, "_xacc", 5))
            break;
          return Intrinsic::hexagon_S2_lsr_i_p_xacc;	 // "__builtin_HEXAGON_S2_lsr_i_p_xacc"
        case 'r':	 // 1 string to match.
          if (memcmp(BuiltinName.data()+28, "_xacc", 5))
            break;
          return Intrinsic::hexagon_S2_lsr_i_r_xacc;	 // "__builtin_HEXAGON_S2_lsr_i_r_xacc"
        }
        break;
      }
      break;
    }
    break;
  case 34:	 // 41 strings to match.
    if (memcmp(BuiltinName.data()+0, "__builtin_HEXAGON_", 18))
      break;
    switch (BuiltinName[18]) {
    default: break;
    case 'M':	 // 38 strings to match.
      switch (BuiltinName[19]) {
      default: break;
      case '2':	 // 35 strings to match.
        if (BuiltinName[20] != '_')
          break;
        switch (BuiltinName[21]) {
        default: break;
        case 'm':	 // 33 strings to match.
          if (memcmp(BuiltinName.data()+22, "py_", 3))
            break;
          switch (BuiltinName[25]) {
          default: break;
          case 'a':	 // 8 strings to match.
            if (memcmp(BuiltinName.data()+26, "cc_", 3))
              break;
            switch (BuiltinName[29]) {
            default: break;
            case 'h':	 // 4 strings to match.
              switch (BuiltinName[30]) {
              default: break;
              case 'h':	 // 2 strings to match.
                if (memcmp(BuiltinName.data()+31, "_s", 2))
                  break;
                switch (BuiltinName[33]) {
                default: break;
                case '0':	 // 1 string to match.
                  return Intrinsic::hexagon_M2_mpy_acc_hh_s0;	 // "__builtin_HEXAGON_M2_mpy_acc_hh_s0"
                case '1':	 // 1 string to match.
                  return Intrinsic::hexagon_M2_mpy_acc_hh_s1;	 // "__builtin_HEXAGON_M2_mpy_acc_hh_s1"
                }
                break;
              case 'l':	 // 2 strings to match.
                if (memcmp(BuiltinName.data()+31, "_s", 2))
                  break;
                switch (BuiltinName[33]) {
                default: break;
                case '0':	 // 1 string to match.
                  return Intrinsic::hexagon_M2_mpy_acc_hl_s0;	 // "__builtin_HEXAGON_M2_mpy_acc_hl_s0"
                case '1':	 // 1 string to match.
                  return Intrinsic::hexagon_M2_mpy_acc_hl_s1;	 // "__builtin_HEXAGON_M2_mpy_acc_hl_s1"
                }
                break;
              }
              break;
            case 'l':	 // 4 strings to match.
              switch (BuiltinName[30]) {
              default: break;
              case 'h':	 // 2 strings to match.
                if (memcmp(BuiltinName.data()+31, "_s", 2))
                  break;
                switch (BuiltinName[33]) {
                default: break;
                case '0':	 // 1 string to match.
                  return Intrinsic::hexagon_M2_mpy_acc_lh_s0;	 // "__builtin_HEXAGON_M2_mpy_acc_lh_s0"
                case '1':	 // 1 string to match.
                  return Intrinsic::hexagon_M2_mpy_acc_lh_s1;	 // "__builtin_HEXAGON_M2_mpy_acc_lh_s1"
                }
                break;
              case 'l':	 // 2 strings to match.
                if (memcmp(BuiltinName.data()+31, "_s", 2))
                  break;
                switch (BuiltinName[33]) {
                default: break;
                case '0':	 // 1 string to match.
                  return Intrinsic::hexagon_M2_mpy_acc_ll_s0;	 // "__builtin_HEXAGON_M2_mpy_acc_ll_s0"
                case '1':	 // 1 string to match.
                  return Intrinsic::hexagon_M2_mpy_acc_ll_s1;	 // "__builtin_HEXAGON_M2_mpy_acc_ll_s1"
                }
                break;
              }
              break;
            }
            break;
          case 'n':	 // 8 strings to match.
            if (memcmp(BuiltinName.data()+26, "ac_", 3))
              break;
            switch (BuiltinName[29]) {
            default: break;
            case 'h':	 // 4 strings to match.
              switch (BuiltinName[30]) {
              default: break;
              case 'h':	 // 2 strings to match.
                if (memcmp(BuiltinName.data()+31, "_s", 2))
                  break;
                switch (BuiltinName[33]) {
                default: break;
                case '0':	 // 1 string to match.
                  return Intrinsic::hexagon_M2_mpy_nac_hh_s0;	 // "__builtin_HEXAGON_M2_mpy_nac_hh_s0"
                case '1':	 // 1 string to match.
                  return Intrinsic::hexagon_M2_mpy_nac_hh_s1;	 // "__builtin_HEXAGON_M2_mpy_nac_hh_s1"
                }
                break;
              case 'l':	 // 2 strings to match.
                if (memcmp(BuiltinName.data()+31, "_s", 2))
                  break;
                switch (BuiltinName[33]) {
                default: break;
                case '0':	 // 1 string to match.
                  return Intrinsic::hexagon_M2_mpy_nac_hl_s0;	 // "__builtin_HEXAGON_M2_mpy_nac_hl_s0"
                case '1':	 // 1 string to match.
                  return Intrinsic::hexagon_M2_mpy_nac_hl_s1;	 // "__builtin_HEXAGON_M2_mpy_nac_hl_s1"
                }
                break;
              }
              break;
            case 'l':	 // 4 strings to match.
              switch (BuiltinName[30]) {
              default: break;
              case 'h':	 // 2 strings to match.
                if (memcmp(BuiltinName.data()+31, "_s", 2))
                  break;
                switch (BuiltinName[33]) {
                default: break;
                case '0':	 // 1 string to match.
                  return Intrinsic::hexagon_M2_mpy_nac_lh_s0;	 // "__builtin_HEXAGON_M2_mpy_nac_lh_s0"
                case '1':	 // 1 string to match.
                  return Intrinsic::hexagon_M2_mpy_nac_lh_s1;	 // "__builtin_HEXAGON_M2_mpy_nac_lh_s1"
                }
                break;
              case 'l':	 // 2 strings to match.
                if (memcmp(BuiltinName.data()+31, "_s", 2))
                  break;
                switch (BuiltinName[33]) {
                default: break;
                case '0':	 // 1 string to match.
                  return Intrinsic::hexagon_M2_mpy_nac_ll_s0;	 // "__builtin_HEXAGON_M2_mpy_nac_ll_s0"
                case '1':	 // 1 string to match.
                  return Intrinsic::hexagon_M2_mpy_nac_ll_s1;	 // "__builtin_HEXAGON_M2_mpy_nac_ll_s1"
                }
                break;
              }
              break;
            }
            break;
          case 'r':	 // 8 strings to match.
            if (memcmp(BuiltinName.data()+26, "nd_", 3))
              break;
            switch (BuiltinName[29]) {
            default: break;
            case 'h':	 // 4 strings to match.
              switch (BuiltinName[30]) {
              default: break;
              case 'h':	 // 2 strings to match.
                if (memcmp(BuiltinName.data()+31, "_s", 2))
                  break;
                switch (BuiltinName[33]) {
                default: break;
                case '0':	 // 1 string to match.
                  return Intrinsic::hexagon_M2_mpy_rnd_hh_s0;	 // "__builtin_HEXAGON_M2_mpy_rnd_hh_s0"
                case '1':	 // 1 string to match.
                  return Intrinsic::hexagon_M2_mpy_rnd_hh_s1;	 // "__builtin_HEXAGON_M2_mpy_rnd_hh_s1"
                }
                break;
              case 'l':	 // 2 strings to match.
                if (memcmp(BuiltinName.data()+31, "_s", 2))
                  break;
                switch (BuiltinName[33]) {
                default: break;
                case '0':	 // 1 string to match.
                  return Intrinsic::hexagon_M2_mpy_rnd_hl_s0;	 // "__builtin_HEXAGON_M2_mpy_rnd_hl_s0"
                case '1':	 // 1 string to match.
                  return Intrinsic::hexagon_M2_mpy_rnd_hl_s1;	 // "__builtin_HEXAGON_M2_mpy_rnd_hl_s1"
                }
                break;
              }
              break;
            case 'l':	 // 4 strings to match.
              switch (BuiltinName[30]) {
              default: break;
              case 'h':	 // 2 strings to match.
                if (memcmp(BuiltinName.data()+31, "_s", 2))
                  break;
                switch (BuiltinName[33]) {
                default: break;
                case '0':	 // 1 string to match.
                  return Intrinsic::hexagon_M2_mpy_rnd_lh_s0;	 // "__builtin_HEXAGON_M2_mpy_rnd_lh_s0"
                case '1':	 // 1 string to match.
                  return Intrinsic::hexagon_M2_mpy_rnd_lh_s1;	 // "__builtin_HEXAGON_M2_mpy_rnd_lh_s1"
                }
                break;
              case 'l':	 // 2 strings to match.
                if (memcmp(BuiltinName.data()+31, "_s", 2))
                  break;
                switch (BuiltinName[33]) {
                default: break;
                case '0':	 // 1 string to match.
                  return Intrinsic::hexagon_M2_mpy_rnd_ll_s0;	 // "__builtin_HEXAGON_M2_mpy_rnd_ll_s0"
                case '1':	 // 1 string to match.
                  return Intrinsic::hexagon_M2_mpy_rnd_ll_s1;	 // "__builtin_HEXAGON_M2_mpy_rnd_ll_s1"
                }
                break;
              }
              break;
            }
            break;
          case 's':	 // 8 strings to match.
            if (memcmp(BuiltinName.data()+26, "at_", 3))
              break;
            switch (BuiltinName[29]) {
            default: break;
            case 'h':	 // 4 strings to match.
              switch (BuiltinName[30]) {
              default: break;
              case 'h':	 // 2 strings to match.
                if (memcmp(BuiltinName.data()+31, "_s", 2))
                  break;
                switch (BuiltinName[33]) {
                default: break;
                case '0':	 // 1 string to match.
                  return Intrinsic::hexagon_M2_mpy_sat_hh_s0;	 // "__builtin_HEXAGON_M2_mpy_sat_hh_s0"
                case '1':	 // 1 string to match.
                  return Intrinsic::hexagon_M2_mpy_sat_hh_s1;	 // "__builtin_HEXAGON_M2_mpy_sat_hh_s1"
                }
                break;
              case 'l':	 // 2 strings to match.
                if (memcmp(BuiltinName.data()+31, "_s", 2))
                  break;
                switch (BuiltinName[33]) {
                default: break;
                case '0':	 // 1 string to match.
                  return Intrinsic::hexagon_M2_mpy_sat_hl_s0;	 // "__builtin_HEXAGON_M2_mpy_sat_hl_s0"
                case '1':	 // 1 string to match.
                  return Intrinsic::hexagon_M2_mpy_sat_hl_s1;	 // "__builtin_HEXAGON_M2_mpy_sat_hl_s1"
                }
                break;
              }
              break;
            case 'l':	 // 4 strings to match.
              switch (BuiltinName[30]) {
              default: break;
              case 'h':	 // 2 strings to match.
                if (memcmp(BuiltinName.data()+31, "_s", 2))
                  break;
                switch (BuiltinName[33]) {
                default: break;
                case '0':	 // 1 string to match.
                  return Intrinsic::hexagon_M2_mpy_sat_lh_s0;	 // "__builtin_HEXAGON_M2_mpy_sat_lh_s0"
                case '1':	 // 1 string to match.
                  return Intrinsic::hexagon_M2_mpy_sat_lh_s1;	 // "__builtin_HEXAGON_M2_mpy_sat_lh_s1"
                }
                break;
              case 'l':	 // 2 strings to match.
                if (memcmp(BuiltinName.data()+31, "_s", 2))
                  break;
                switch (BuiltinName[33]) {
                default: break;
                case '0':	 // 1 string to match.
                  return Intrinsic::hexagon_M2_mpy_sat_ll_s0;	 // "__builtin_HEXAGON_M2_mpy_sat_ll_s0"
                case '1':	 // 1 string to match.
                  return Intrinsic::hexagon_M2_mpy_sat_ll_s1;	 // "__builtin_HEXAGON_M2_mpy_sat_ll_s1"
                }
                break;
              }
              break;
            }
            break;
          case 'u':	 // 1 string to match.
            if (memcmp(BuiltinName.data()+26, "p_s1_sat", 8))
              break;
            return Intrinsic::hexagon_M2_mpy_up_s1_sat;	 // "__builtin_HEXAGON_M2_mpy_up_s1_sat"
          }
          break;
        case 'v':	 // 2 strings to match.
          if (memcmp(BuiltinName.data()+22, "mpy2s_s", 7))
            break;
          switch (BuiltinName[29]) {
          default: break;
          case '0':	 // 1 string to match.
            if (memcmp(BuiltinName.data()+30, "pack", 4))
              break;
            return Intrinsic::hexagon_M2_vmpy2s_s0pack;	 // "__builtin_HEXAGON_M2_vmpy2s_s0pack"
          case '1':	 // 1 string to match.
            if (memcmp(BuiltinName.data()+30, "pack", 4))
              break;
            return Intrinsic::hexagon_M2_vmpy2s_s1pack;	 // "__builtin_HEXAGON_M2_vmpy2s_s1pack"
          }
          break;
        }
        break;
      case '4':	 // 3 strings to match.
        if (BuiltinName[20] != '_')
          break;
        switch (BuiltinName[21]) {
        default: break;
        case 'm':	 // 2 strings to match.
          switch (BuiltinName[22]) {
          default: break;
          case 'a':	 // 1 string to match.
            if (memcmp(BuiltinName.data()+23, "c_up_s1_sat", 11))
              break;
            return Intrinsic::hexagon_M4_mac_up_s1_sat;	 // "__builtin_HEXAGON_M4_mac_up_s1_sat"
          case 'p':	 // 1 string to match.
            if (memcmp(BuiltinName.data()+23, "yri_addr_u2", 11))
              break;
            return Intrinsic::hexagon_M4_mpyri_addr_u2;	 // "__builtin_HEXAGON_M4_mpyri_addr_u2"
          }
          break;
        case 'n':	 // 1 string to match.
          if (memcmp(BuiltinName.data()+22, "ac_up_s1_sat", 12))
            break;
          return Intrinsic::hexagon_M4_nac_up_s1_sat;	 // "__builtin_HEXAGON_M4_nac_up_s1_sat"
        }
        break;
      }
      break;
    case 'S':	 // 3 strings to match.
      switch (BuiltinName[19]) {
      default: break;
      case '2':	 // 2 strings to match.
        if (memcmp(BuiltinName.data()+20, "_vsat", 5))
          break;
        switch (BuiltinName[25]) {
        default: break;
        case 'h':	 // 1 string to match.
          if (memcmp(BuiltinName.data()+26, "b_nopack", 8))
            break;
          return Intrinsic::hexagon_S2_vsathb_nopack;	 // "__builtin_HEXAGON_S2_vsathb_nopack"
        case 'w':	 // 1 string to match.
          if (memcmp(BuiltinName.data()+26, "h_nopack", 8))
            break;
          return Intrinsic::hexagon_S2_vsatwh_nopack;	 // "__builtin_HEXAGON_S2_vsatwh_nopack"
        }
        break;
      case '4':	 // 1 string to match.
        if (memcmp(BuiltinName.data()+20, "_vrcrotate_acc", 14))
          break;
        return Intrinsic::hexagon_S4_vrcrotate_acc;	 // "__builtin_HEXAGON_S4_vrcrotate_acc"
      }
      break;
    }
    break;
  case 35:	 // 64 strings to match.
    if (memcmp(BuiltinName.data()+0, "__builtin_HEXAGON_", 18))
      break;
    switch (BuiltinName[18]) {
    default: break;
    case 'F':	 // 4 strings to match.
      if (memcmp(BuiltinName.data()+19, "2_conv_", 7))
        break;
      switch (BuiltinName[26]) {
      default: break;
      case 'd':	 // 2 strings to match.
        if (memcmp(BuiltinName.data()+27, "f2", 2))
          break;
        switch (BuiltinName[29]) {
        default: break;
        case 'd':	 // 1 string to match.
          if (memcmp(BuiltinName.data()+30, "_chop", 5))
            break;
          return Intrinsic::hexagon_F2_conv_df2d_chop;	 // "__builtin_HEXAGON_F2_conv_df2d_chop"
        case 'w':	 // 1 string to match.
          if (memcmp(BuiltinName.data()+30, "_chop", 5))
            break;
          return Intrinsic::hexagon_F2_conv_df2w_chop;	 // "__builtin_HEXAGON_F2_conv_df2w_chop"
        }
        break;
      case 's':	 // 2 strings to match.
        if (memcmp(BuiltinName.data()+27, "f2", 2))
          break;
        switch (BuiltinName[29]) {
        default: break;
        case 'd':	 // 1 string to match.
          if (memcmp(BuiltinName.data()+30, "_chop", 5))
            break;
          return Intrinsic::hexagon_F2_conv_sf2d_chop;	 // "__builtin_HEXAGON_F2_conv_sf2d_chop"
        case 'w':	 // 1 string to match.
          if (memcmp(BuiltinName.data()+30, "_chop", 5))
            break;
          return Intrinsic::hexagon_F2_conv_sf2w_chop;	 // "__builtin_HEXAGON_F2_conv_sf2w_chop"
        }
        break;
      }
      break;
    case 'M':	 // 56 strings to match.
      switch (BuiltinName[19]) {
      default: break;
      case '2':	 // 52 strings to match.
        if (BuiltinName[20] != '_')
          break;
        switch (BuiltinName[21]) {
        default: break;
        case 'd':	 // 5 strings to match.
          if (memcmp(BuiltinName.data()+22, "pmpy", 4))
            break;
          switch (BuiltinName[26]) {
          default: break;
          case 's':	 // 3 strings to match.
            if (memcmp(BuiltinName.data()+27, "s_", 2))
              break;
            switch (BuiltinName[29]) {
            default: break;
            case 'a':	 // 1 string to match.
              if (memcmp(BuiltinName.data()+30, "cc_s0", 5))
                break;
              return Intrinsic::hexagon_M2_dpmpyss_acc_s0;	 // "__builtin_HEXAGON_M2_dpmpyss_acc_s0"
            case 'n':	 // 1 string to match.
              if (memcmp(BuiltinName.data()+30, "ac_s0", 5))
                break;
              return Intrinsic::hexagon_M2_dpmpyss_nac_s0;	 // "__builtin_HEXAGON_M2_dpmpyss_nac_s0"
            case 'r':	 // 1 string to match.
              if (memcmp(BuiltinName.data()+30, "nd_s0", 5))
                break;
              return Intrinsic::hexagon_M2_dpmpyss_rnd_s0;	 // "__builtin_HEXAGON_M2_dpmpyss_rnd_s0"
            }
            break;
          case 'u':	 // 2 strings to match.
            if (memcmp(BuiltinName.data()+27, "u_", 2))
              break;
            switch (BuiltinName[29]) {
            default: break;
            case 'a':	 // 1 string to match.
              if (memcmp(BuiltinName.data()+30, "cc_s0", 5))
                break;
              return Intrinsic::hexagon_M2_dpmpyuu_acc_s0;	 // "__builtin_HEXAGON_M2_dpmpyuu_acc_s0"
            case 'n':	 // 1 string to match.
              if (memcmp(BuiltinName.data()+30, "ac_s0", 5))
                break;
              return Intrinsic::hexagon_M2_dpmpyuu_nac_s0;	 // "__builtin_HEXAGON_M2_dpmpyuu_nac_s0"
            }
            break;
          }
          break;
        case 'm':	 // 40 strings to match.
          if (memcmp(BuiltinName.data()+22, "py", 2))
            break;
          switch (BuiltinName[24]) {
          default: break;
          case 'd':	 // 24 strings to match.
            if (BuiltinName[25] != '_')
              break;
            switch (BuiltinName[26]) {
            default: break;
            case 'a':	 // 8 strings to match.
              if (memcmp(BuiltinName.data()+27, "cc_", 3))
                break;
              switch (BuiltinName[30]) {
              default: break;
              case 'h':	 // 4 strings to match.
                switch (BuiltinName[31]) {
                default: break;
                case 'h':	 // 2 strings to match.
                  if (memcmp(BuiltinName.data()+32, "_s", 2))
                    break;
                  switch (BuiltinName[34]) {
                  default: break;
                  case '0':	 // 1 string to match.
                    return Intrinsic::hexagon_M2_mpyd_acc_hh_s0;	 // "__builtin_HEXAGON_M2_mpyd_acc_hh_s0"
                  case '1':	 // 1 string to match.
                    return Intrinsic::hexagon_M2_mpyd_acc_hh_s1;	 // "__builtin_HEXAGON_M2_mpyd_acc_hh_s1"
                  }
                  break;
                case 'l':	 // 2 strings to match.
                  if (memcmp(BuiltinName.data()+32, "_s", 2))
                    break;
                  switch (BuiltinName[34]) {
                  default: break;
                  case '0':	 // 1 string to match.
                    return Intrinsic::hexagon_M2_mpyd_acc_hl_s0;	 // "__builtin_HEXAGON_M2_mpyd_acc_hl_s0"
                  case '1':	 // 1 string to match.
                    return Intrinsic::hexagon_M2_mpyd_acc_hl_s1;	 // "__builtin_HEXAGON_M2_mpyd_acc_hl_s1"
                  }
                  break;
                }
                break;
              case 'l':	 // 4 strings to match.
                switch (BuiltinName[31]) {
                default: break;
                case 'h':	 // 2 strings to match.
                  if (memcmp(BuiltinName.data()+32, "_s", 2))
                    break;
                  switch (BuiltinName[34]) {
                  default: break;
                  case '0':	 // 1 string to match.
                    return Intrinsic::hexagon_M2_mpyd_acc_lh_s0;	 // "__builtin_HEXAGON_M2_mpyd_acc_lh_s0"
                  case '1':	 // 1 string to match.
                    return Intrinsic::hexagon_M2_mpyd_acc_lh_s1;	 // "__builtin_HEXAGON_M2_mpyd_acc_lh_s1"
                  }
                  break;
                case 'l':	 // 2 strings to match.
                  if (memcmp(BuiltinName.data()+32, "_s", 2))
                    break;
                  switch (BuiltinName[34]) {
                  default: break;
                  case '0':	 // 1 string to match.
                    return Intrinsic::hexagon_M2_mpyd_acc_ll_s0;	 // "__builtin_HEXAGON_M2_mpyd_acc_ll_s0"
                  case '1':	 // 1 string to match.
                    return Intrinsic::hexagon_M2_mpyd_acc_ll_s1;	 // "__builtin_HEXAGON_M2_mpyd_acc_ll_s1"
                  }
                  break;
                }
                break;
              }
              break;
            case 'n':	 // 8 strings to match.
              if (memcmp(BuiltinName.data()+27, "ac_", 3))
                break;
              switch (BuiltinName[30]) {
              default: break;
              case 'h':	 // 4 strings to match.
                switch (BuiltinName[31]) {
                default: break;
                case 'h':	 // 2 strings to match.
                  if (memcmp(BuiltinName.data()+32, "_s", 2))
                    break;
                  switch (BuiltinName[34]) {
                  default: break;
                  case '0':	 // 1 string to match.
                    return Intrinsic::hexagon_M2_mpyd_nac_hh_s0;	 // "__builtin_HEXAGON_M2_mpyd_nac_hh_s0"
                  case '1':	 // 1 string to match.
                    return Intrinsic::hexagon_M2_mpyd_nac_hh_s1;	 // "__builtin_HEXAGON_M2_mpyd_nac_hh_s1"
                  }
                  break;
                case 'l':	 // 2 strings to match.
                  if (memcmp(BuiltinName.data()+32, "_s", 2))
                    break;
                  switch (BuiltinName[34]) {
                  default: break;
                  case '0':	 // 1 string to match.
                    return Intrinsic::hexagon_M2_mpyd_nac_hl_s0;	 // "__builtin_HEXAGON_M2_mpyd_nac_hl_s0"
                  case '1':	 // 1 string to match.
                    return Intrinsic::hexagon_M2_mpyd_nac_hl_s1;	 // "__builtin_HEXAGON_M2_mpyd_nac_hl_s1"
                  }
                  break;
                }
                break;
              case 'l':	 // 4 strings to match.
                switch (BuiltinName[31]) {
                default: break;
                case 'h':	 // 2 strings to match.
                  if (memcmp(BuiltinName.data()+32, "_s", 2))
                    break;
                  switch (BuiltinName[34]) {
                  default: break;
                  case '0':	 // 1 string to match.
                    return Intrinsic::hexagon_M2_mpyd_nac_lh_s0;	 // "__builtin_HEXAGON_M2_mpyd_nac_lh_s0"
                  case '1':	 // 1 string to match.
                    return Intrinsic::hexagon_M2_mpyd_nac_lh_s1;	 // "__builtin_HEXAGON_M2_mpyd_nac_lh_s1"
                  }
                  break;
                case 'l':	 // 2 strings to match.
                  if (memcmp(BuiltinName.data()+32, "_s", 2))
                    break;
                  switch (BuiltinName[34]) {
                  default: break;
                  case '0':	 // 1 string to match.
                    return Intrinsic::hexagon_M2_mpyd_nac_ll_s0;	 // "__builtin_HEXAGON_M2_mpyd_nac_ll_s0"
                  case '1':	 // 1 string to match.
                    return Intrinsic::hexagon_M2_mpyd_nac_ll_s1;	 // "__builtin_HEXAGON_M2_mpyd_nac_ll_s1"
                  }
                  break;
                }
                break;
              }
              break;
            case 'r':	 // 8 strings to match.
              if (memcmp(BuiltinName.data()+27, "nd_", 3))
                break;
              switch (BuiltinName[30]) {
              default: break;
              case 'h':	 // 4 strings to match.
                switch (BuiltinName[31]) {
                default: break;
                case 'h':	 // 2 strings to match.
                  if (memcmp(BuiltinName.data()+32, "_s", 2))
                    break;
                  switch (BuiltinName[34]) {
                  default: break;
                  case '0':	 // 1 string to match.
                    return Intrinsic::hexagon_M2_mpyd_rnd_hh_s0;	 // "__builtin_HEXAGON_M2_mpyd_rnd_hh_s0"
                  case '1':	 // 1 string to match.
                    return Intrinsic::hexagon_M2_mpyd_rnd_hh_s1;	 // "__builtin_HEXAGON_M2_mpyd_rnd_hh_s1"
                  }
                  break;
                case 'l':	 // 2 strings to match.
                  if (memcmp(BuiltinName.data()+32, "_s", 2))
                    break;
                  switch (BuiltinName[34]) {
                  default: break;
                  case '0':	 // 1 string to match.
                    return Intrinsic::hexagon_M2_mpyd_rnd_hl_s0;	 // "__builtin_HEXAGON_M2_mpyd_rnd_hl_s0"
                  case '1':	 // 1 string to match.
                    return Intrinsic::hexagon_M2_mpyd_rnd_hl_s1;	 // "__builtin_HEXAGON_M2_mpyd_rnd_hl_s1"
                  }
                  break;
                }
                break;
              case 'l':	 // 4 strings to match.
                switch (BuiltinName[31]) {
                default: break;
                case 'h':	 // 2 strings to match.
                  if (memcmp(BuiltinName.data()+32, "_s", 2))
                    break;
                  switch (BuiltinName[34]) {
                  default: break;
                  case '0':	 // 1 string to match.
                    return Intrinsic::hexagon_M2_mpyd_rnd_lh_s0;	 // "__builtin_HEXAGON_M2_mpyd_rnd_lh_s0"
                  case '1':	 // 1 string to match.
                    return Intrinsic::hexagon_M2_mpyd_rnd_lh_s1;	 // "__builtin_HEXAGON_M2_mpyd_rnd_lh_s1"
                  }
                  break;
                case 'l':	 // 2 strings to match.
                  if (memcmp(BuiltinName.data()+32, "_s", 2))
                    break;
                  switch (BuiltinName[34]) {
                  default: break;
                  case '0':	 // 1 string to match.
                    return Intrinsic::hexagon_M2_mpyd_rnd_ll_s0;	 // "__builtin_HEXAGON_M2_mpyd_rnd_ll_s0"
                  case '1':	 // 1 string to match.
                    return Intrinsic::hexagon_M2_mpyd_rnd_ll_s1;	 // "__builtin_HEXAGON_M2_mpyd_rnd_ll_s1"
                  }
                  break;
                }
                break;
              }
              break;
            }
            break;
          case 'u':	 // 16 strings to match.
            if (BuiltinName[25] != '_')
              break;
            switch (BuiltinName[26]) {
            default: break;
            case 'a':	 // 8 strings to match.
              if (memcmp(BuiltinName.data()+27, "cc_", 3))
                break;
              switch (BuiltinName[30]) {
              default: break;
              case 'h':	 // 4 strings to match.
                switch (BuiltinName[31]) {
                default: break;
                case 'h':	 // 2 strings to match.
                  if (memcmp(BuiltinName.data()+32, "_s", 2))
                    break;
                  switch (BuiltinName[34]) {
                  default: break;
                  case '0':	 // 1 string to match.
                    return Intrinsic::hexagon_M2_mpyu_acc_hh_s0;	 // "__builtin_HEXAGON_M2_mpyu_acc_hh_s0"
                  case '1':	 // 1 string to match.
                    return Intrinsic::hexagon_M2_mpyu_acc_hh_s1;	 // "__builtin_HEXAGON_M2_mpyu_acc_hh_s1"
                  }
                  break;
                case 'l':	 // 2 strings to match.
                  if (memcmp(BuiltinName.data()+32, "_s", 2))
                    break;
                  switch (BuiltinName[34]) {
                  default: break;
                  case '0':	 // 1 string to match.
                    return Intrinsic::hexagon_M2_mpyu_acc_hl_s0;	 // "__builtin_HEXAGON_M2_mpyu_acc_hl_s0"
                  case '1':	 // 1 string to match.
                    return Intrinsic::hexagon_M2_mpyu_acc_hl_s1;	 // "__builtin_HEXAGON_M2_mpyu_acc_hl_s1"
                  }
                  break;
                }
                break;
              case 'l':	 // 4 strings to match.
                switch (BuiltinName[31]) {
                default: break;
                case 'h':	 // 2 strings to match.
                  if (memcmp(BuiltinName.data()+32, "_s", 2))
                    break;
                  switch (BuiltinName[34]) {
                  default: break;
                  case '0':	 // 1 string to match.
                    return Intrinsic::hexagon_M2_mpyu_acc_lh_s0;	 // "__builtin_HEXAGON_M2_mpyu_acc_lh_s0"
                  case '1':	 // 1 string to match.
                    return Intrinsic::hexagon_M2_mpyu_acc_lh_s1;	 // "__builtin_HEXAGON_M2_mpyu_acc_lh_s1"
                  }
                  break;
                case 'l':	 // 2 strings to match.
                  if (memcmp(BuiltinName.data()+32, "_s", 2))
                    break;
                  switch (BuiltinName[34]) {
                  default: break;
                  case '0':	 // 1 string to match.
                    return Intrinsic::hexagon_M2_mpyu_acc_ll_s0;	 // "__builtin_HEXAGON_M2_mpyu_acc_ll_s0"
                  case '1':	 // 1 string to match.
                    return Intrinsic::hexagon_M2_mpyu_acc_ll_s1;	 // "__builtin_HEXAGON_M2_mpyu_acc_ll_s1"
                  }
                  break;
                }
                break;
              }
              break;
            case 'n':	 // 8 strings to match.
              if (memcmp(BuiltinName.data()+27, "ac_", 3))
                break;
              switch (BuiltinName[30]) {
              default: break;
              case 'h':	 // 4 strings to match.
                switch (BuiltinName[31]) {
                default: break;
                case 'h':	 // 2 strings to match.
                  if (memcmp(BuiltinName.data()+32, "_s", 2))
                    break;
                  switch (BuiltinName[34]) {
                  default: break;
                  case '0':	 // 1 string to match.
                    return Intrinsic::hexagon_M2_mpyu_nac_hh_s0;	 // "__builtin_HEXAGON_M2_mpyu_nac_hh_s0"
                  case '1':	 // 1 string to match.
                    return Intrinsic::hexagon_M2_mpyu_nac_hh_s1;	 // "__builtin_HEXAGON_M2_mpyu_nac_hh_s1"
                  }
                  break;
                case 'l':	 // 2 strings to match.
                  if (memcmp(BuiltinName.data()+32, "_s", 2))
                    break;
                  switch (BuiltinName[34]) {
                  default: break;
                  case '0':	 // 1 string to match.
                    return Intrinsic::hexagon_M2_mpyu_nac_hl_s0;	 // "__builtin_HEXAGON_M2_mpyu_nac_hl_s0"
                  case '1':	 // 1 string to match.
                    return Intrinsic::hexagon_M2_mpyu_nac_hl_s1;	 // "__builtin_HEXAGON_M2_mpyu_nac_hl_s1"
                  }
                  break;
                }
                break;
              case 'l':	 // 4 strings to match.
                switch (BuiltinName[31]) {
                default: break;
                case 'h':	 // 2 strings to match.
                  if (memcmp(BuiltinName.data()+32, "_s", 2))
                    break;
                  switch (BuiltinName[34]) {
                  default: break;
                  case '0':	 // 1 string to match.
                    return Intrinsic::hexagon_M2_mpyu_nac_lh_s0;	 // "__builtin_HEXAGON_M2_mpyu_nac_lh_s0"
                  case '1':	 // 1 string to match.
                    return Intrinsic::hexagon_M2_mpyu_nac_lh_s1;	 // "__builtin_HEXAGON_M2_mpyu_nac_lh_s1"
                  }
                  break;
                case 'l':	 // 2 strings to match.
                  if (memcmp(BuiltinName.data()+32, "_s", 2))
                    break;
                  switch (BuiltinName[34]) {
                  default: break;
                  case '0':	 // 1 string to match.
                    return Intrinsic::hexagon_M2_mpyu_nac_ll_s0;	 // "__builtin_HEXAGON_M2_mpyu_nac_ll_s0"
                  case '1':	 // 1 string to match.
                    return Intrinsic::hexagon_M2_mpyu_nac_ll_s1;	 // "__builtin_HEXAGON_M2_mpyu_nac_ll_s1"
                  }
                  break;
                }
                break;
              }
              break;
            }
            break;
          }
          break;
        case 'v':	 // 7 strings to match.
          switch (BuiltinName[22]) {
          default: break;
          case 'c':	 // 6 strings to match.
            if (BuiltinName[23] != 'm')
              break;
            switch (BuiltinName[24]) {
            default: break;
            case 'a':	 // 2 strings to match.
              if (memcmp(BuiltinName.data()+25, "c_s0_sat_", 9))
                break;
              switch (BuiltinName[34]) {
              default: break;
              case 'i':	 // 1 string to match.
                return Intrinsic::hexagon_M2_vcmac_s0_sat_i;	 // "__builtin_HEXAGON_M2_vcmac_s0_sat_i"
              case 'r':	 // 1 string to match.
                return Intrinsic::hexagon_M2_vcmac_s0_sat_r;	 // "__builtin_HEXAGON_M2_vcmac_s0_sat_r"
              }
              break;
            case 'p':	 // 4 strings to match.
              if (memcmp(BuiltinName.data()+25, "y_s", 3))
                break;
              switch (BuiltinName[28]) {
              default: break;
              case '0':	 // 2 strings to match.
                if (memcmp(BuiltinName.data()+29, "_sat_", 5))
                  break;
                switch (BuiltinName[34]) {
                default: break;
                case 'i':	 // 1 string to match.
                  return Intrinsic::hexagon_M2_vcmpy_s0_sat_i;	 // "__builtin_HEXAGON_M2_vcmpy_s0_sat_i"
                case 'r':	 // 1 string to match.
                  return Intrinsic::hexagon_M2_vcmpy_s0_sat_r;	 // "__builtin_HEXAGON_M2_vcmpy_s0_sat_r"
                }
                break;
              case '1':	 // 2 strings to match.
                if (memcmp(BuiltinName.data()+29, "_sat_", 5))
                  break;
                switch (BuiltinName[34]) {
                default: break;
                case 'i':	 // 1 string to match.
                  return Intrinsic::hexagon_M2_vcmpy_s1_sat_i;	 // "__builtin_HEXAGON_M2_vcmpy_s1_sat_i"
                case 'r':	 // 1 string to match.
                  return Intrinsic::hexagon_M2_vcmpy_s1_sat_r;	 // "__builtin_HEXAGON_M2_vcmpy_s1_sat_r"
                }
                break;
              }
              break;
            }
            break;
          case 'r':	 // 1 string to match.
            if (memcmp(BuiltinName.data()+23, "cmpys_acc_s1", 12))
              break;
            return Intrinsic::hexagon_M2_vrcmpys_acc_s1;	 // "__builtin_HEXAGON_M2_vrcmpys_acc_s1"
          }
          break;
        }
        break;
      case '4':	 // 4 strings to match.
        if (memcmp(BuiltinName.data()+20, "_vrmpy", 6))
          break;
        switch (BuiltinName[26]) {
        default: break;
        case 'e':	 // 2 strings to match.
          if (memcmp(BuiltinName.data()+27, "h_acc_s", 7))
            break;
          switch (BuiltinName[34]) {
          default: break;
          case '0':	 // 1 string to match.
            return Intrinsic::hexagon_M4_vrmpyeh_acc_s0;	 // "__builtin_HEXAGON_M4_vrmpyeh_acc_s0"
          case '1':	 // 1 string to match.
            return Intrinsic::hexagon_M4_vrmpyeh_acc_s1;	 // "__builtin_HEXAGON_M4_vrmpyeh_acc_s1"
          }
          break;
        case 'o':	 // 2 strings to match.
          if (memcmp(BuiltinName.data()+27, "h_acc_s", 7))
            break;
          switch (BuiltinName[34]) {
          default: break;
          case '0':	 // 1 string to match.
            return Intrinsic::hexagon_M4_vrmpyoh_acc_s0;	 // "__builtin_HEXAGON_M4_vrmpyoh_acc_s0"
          case '1':	 // 1 string to match.
            return Intrinsic::hexagon_M4_vrmpyoh_acc_s1;	 // "__builtin_HEXAGON_M4_vrmpyoh_acc_s1"
          }
          break;
        }
        break;
      }
      break;
    case 'S':	 // 4 strings to match.
      if (memcmp(BuiltinName.data()+19, "2_", 2))
        break;
      switch (BuiltinName[21]) {
      default: break;
      case 'a':	 // 2 strings to match.
        if (memcmp(BuiltinName.data()+22, "sr_", 3))
          break;
        switch (BuiltinName[25]) {
        default: break;
        case 'i':	 // 1 string to match.
          if (memcmp(BuiltinName.data()+26, "_svw_trun", 9))
            break;
          return Intrinsic::hexagon_S2_asr_i_svw_trun;	 // "__builtin_HEXAGON_S2_asr_i_svw_trun"
        case 'r':	 // 1 string to match.
          if (memcmp(BuiltinName.data()+26, "_svw_trun", 9))
            break;
          return Intrinsic::hexagon_S2_asr_r_svw_trun;	 // "__builtin_HEXAGON_S2_asr_r_svw_trun"
        }
        break;
      case 'v':	 // 2 strings to match.
        if (memcmp(BuiltinName.data()+22, "sat", 3))
          break;
        switch (BuiltinName[25]) {
        default: break;
        case 'h':	 // 1 string to match.
          if (memcmp(BuiltinName.data()+26, "ub_nopack", 9))
            break;
          return Intrinsic::hexagon_S2_vsathub_nopack;	 // "__builtin_HEXAGON_S2_vsathub_nopack"
        case 'w':	 // 1 string to match.
          if (memcmp(BuiltinName.data()+26, "uh_nopack", 9))
            break;
          return Intrinsic::hexagon_S2_vsatwuh_nopack;	 // "__builtin_HEXAGON_S2_vsatwuh_nopack"
        }
        break;
      }
      break;
    }
    break;
  case 36:	 // 33 strings to match.
    if (memcmp(BuiltinName.data()+0, "__builtin_HEXAGON_", 18))
      break;
    switch (BuiltinName[18]) {
    default: break;
    case 'A':	 // 12 strings to match.
      if (memcmp(BuiltinName.data()+19, "2_", 2))
        break;
      switch (BuiltinName[21]) {
      default: break;
      case 'a':	 // 6 strings to match.
        if (memcmp(BuiltinName.data()+22, "ddh_", 4))
          break;
        switch (BuiltinName[26]) {
        default: break;
        case 'h':	 // 4 strings to match.
          if (memcmp(BuiltinName.data()+27, "16_sat_", 7))
            break;
          switch (BuiltinName[34]) {
          default: break;
          case 'h':	 // 2 strings to match.
            switch (BuiltinName[35]) {
            default: break;
            case 'h':	 // 1 string to match.
              return Intrinsic::hexagon_A2_addh_h16_sat_hh;	 // "__builtin_HEXAGON_A2_addh_h16_sat_hh"
            case 'l':	 // 1 string to match.
              return Intrinsic::hexagon_A2_addh_h16_sat_hl;	 // "__builtin_HEXAGON_A2_addh_h16_sat_hl"
            }
            break;
          case 'l':	 // 2 strings to match.
            switch (BuiltinName[35]) {
            default: break;
            case 'h':	 // 1 string to match.
              return Intrinsic::hexagon_A2_addh_h16_sat_lh;	 // "__builtin_HEXAGON_A2_addh_h16_sat_lh"
            case 'l':	 // 1 string to match.
              return Intrinsic::hexagon_A2_addh_h16_sat_ll;	 // "__builtin_HEXAGON_A2_addh_h16_sat_ll"
            }
            break;
          }
          break;
        case 'l':	 // 2 strings to match.
          if (memcmp(BuiltinName.data()+27, "16_sat_", 7))
            break;
          switch (BuiltinName[34]) {
          default: break;
          case 'h':	 // 1 string to match.
            if (BuiltinName[35] != 'l')
              break;
            return Intrinsic::hexagon_A2_addh_l16_sat_hl;	 // "__builtin_HEXAGON_A2_addh_l16_sat_hl"
          case 'l':	 // 1 string to match.
            if (BuiltinName[35] != 'l')
              break;
            return Intrinsic::hexagon_A2_addh_l16_sat_ll;	 // "__builtin_HEXAGON_A2_addh_l16_sat_ll"
          }
          break;
        }
        break;
      case 's':	 // 6 strings to match.
        if (memcmp(BuiltinName.data()+22, "ubh_", 4))
          break;
        switch (BuiltinName[26]) {
        default: break;
        case 'h':	 // 4 strings to match.
          if (memcmp(BuiltinName.data()+27, "16_sat_", 7))
            break;
          switch (BuiltinName[34]) {
          default: break;
          case 'h':	 // 2 strings to match.
            switch (BuiltinName[35]) {
            default: break;
            case 'h':	 // 1 string to match.
              return Intrinsic::hexagon_A2_subh_h16_sat_hh;	 // "__builtin_HEXAGON_A2_subh_h16_sat_hh"
            case 'l':	 // 1 string to match.
              return Intrinsic::hexagon_A2_subh_h16_sat_hl;	 // "__builtin_HEXAGON_A2_subh_h16_sat_hl"
            }
            break;
          case 'l':	 // 2 strings to match.
            switch (BuiltinName[35]) {
            default: break;
            case 'h':	 // 1 string to match.
              return Intrinsic::hexagon_A2_subh_h16_sat_lh;	 // "__builtin_HEXAGON_A2_subh_h16_sat_lh"
            case 'l':	 // 1 string to match.
              return Intrinsic::hexagon_A2_subh_h16_sat_ll;	 // "__builtin_HEXAGON_A2_subh_h16_sat_ll"
            }
            break;
          }
          break;
        case 'l':	 // 2 strings to match.
          if (memcmp(BuiltinName.data()+27, "16_sat_", 7))
            break;
          switch (BuiltinName[34]) {
          default: break;
          case 'h':	 // 1 string to match.
            if (BuiltinName[35] != 'l')
              break;
            return Intrinsic::hexagon_A2_subh_l16_sat_hl;	 // "__builtin_HEXAGON_A2_subh_l16_sat_hl"
          case 'l':	 // 1 string to match.
            if (BuiltinName[35] != 'l')
              break;
            return Intrinsic::hexagon_A2_subh_l16_sat_ll;	 // "__builtin_HEXAGON_A2_subh_l16_sat_ll"
          }
          break;
        }
        break;
      }
      break;
    case 'C':	 // 1 string to match.
      if (memcmp(BuiltinName.data()+19, "4_fastcorner9_not", 17))
        break;
      return Intrinsic::hexagon_C4_fastcorner9_not;	 // "__builtin_HEXAGON_C4_fastcorner9_not"
    case 'F':	 // 4 strings to match.
      if (memcmp(BuiltinName.data()+19, "2_conv_", 7))
        break;
      switch (BuiltinName[26]) {
      default: break;
      case 'd':	 // 2 strings to match.
        if (memcmp(BuiltinName.data()+27, "f2u", 3))
          break;
        switch (BuiltinName[30]) {
        default: break;
        case 'd':	 // 1 string to match.
          if (memcmp(BuiltinName.data()+31, "_chop", 5))
            break;
          return Intrinsic::hexagon_F2_conv_df2ud_chop;	 // "__builtin_HEXAGON_F2_conv_df2ud_chop"
        case 'w':	 // 1 string to match.
          if (memcmp(BuiltinName.data()+31, "_chop", 5))
            break;
          return Intrinsic::hexagon_F2_conv_df2uw_chop;	 // "__builtin_HEXAGON_F2_conv_df2uw_chop"
        }
        break;
      case 's':	 // 2 strings to match.
        if (memcmp(BuiltinName.data()+27, "f2u", 3))
          break;
        switch (BuiltinName[30]) {
        default: break;
        case 'd':	 // 1 string to match.
          if (memcmp(BuiltinName.data()+31, "_chop", 5))
            break;
          return Intrinsic::hexagon_F2_conv_sf2ud_chop;	 // "__builtin_HEXAGON_F2_conv_sf2ud_chop"
        case 'w':	 // 1 string to match.
          if (memcmp(BuiltinName.data()+31, "_chop", 5))
            break;
          return Intrinsic::hexagon_F2_conv_sf2uw_chop;	 // "__builtin_HEXAGON_F2_conv_sf2uw_chop"
        }
        break;
      }
      break;
    case 'M':	 // 16 strings to match.
      if (memcmp(BuiltinName.data()+19, "2_mpyud_", 8))
        break;
      switch (BuiltinName[27]) {
      default: break;
      case 'a':	 // 8 strings to match.
        if (memcmp(BuiltinName.data()+28, "cc_", 3))
          break;
        switch (BuiltinName[31]) {
        default: break;
        case 'h':	 // 4 strings to match.
          switch (BuiltinName[32]) {
          default: break;
          case 'h':	 // 2 strings to match.
            if (memcmp(BuiltinName.data()+33, "_s", 2))
              break;
            switch (BuiltinName[35]) {
            default: break;
            case '0':	 // 1 string to match.
              return Intrinsic::hexagon_M2_mpyud_acc_hh_s0;	 // "__builtin_HEXAGON_M2_mpyud_acc_hh_s0"
            case '1':	 // 1 string to match.
              return Intrinsic::hexagon_M2_mpyud_acc_hh_s1;	 // "__builtin_HEXAGON_M2_mpyud_acc_hh_s1"
            }
            break;
          case 'l':	 // 2 strings to match.
            if (memcmp(BuiltinName.data()+33, "_s", 2))
              break;
            switch (BuiltinName[35]) {
            default: break;
            case '0':	 // 1 string to match.
              return Intrinsic::hexagon_M2_mpyud_acc_hl_s0;	 // "__builtin_HEXAGON_M2_mpyud_acc_hl_s0"
            case '1':	 // 1 string to match.
              return Intrinsic::hexagon_M2_mpyud_acc_hl_s1;	 // "__builtin_HEXAGON_M2_mpyud_acc_hl_s1"
            }
            break;
          }
          break;
        case 'l':	 // 4 strings to match.
          switch (BuiltinName[32]) {
          default: break;
          case 'h':	 // 2 strings to match.
            if (memcmp(BuiltinName.data()+33, "_s", 2))
              break;
            switch (BuiltinName[35]) {
            default: break;
            case '0':	 // 1 string to match.
              return Intrinsic::hexagon_M2_mpyud_acc_lh_s0;	 // "__builtin_HEXAGON_M2_mpyud_acc_lh_s0"
            case '1':	 // 1 string to match.
              return Intrinsic::hexagon_M2_mpyud_acc_lh_s1;	 // "__builtin_HEXAGON_M2_mpyud_acc_lh_s1"
            }
            break;
          case 'l':	 // 2 strings to match.
            if (memcmp(BuiltinName.data()+33, "_s", 2))
              break;
            switch (BuiltinName[35]) {
            default: break;
            case '0':	 // 1 string to match.
              return Intrinsic::hexagon_M2_mpyud_acc_ll_s0;	 // "__builtin_HEXAGON_M2_mpyud_acc_ll_s0"
            case '1':	 // 1 string to match.
              return Intrinsic::hexagon_M2_mpyud_acc_ll_s1;	 // "__builtin_HEXAGON_M2_mpyud_acc_ll_s1"
            }
            break;
          }
          break;
        }
        break;
      case 'n':	 // 8 strings to match.
        if (memcmp(BuiltinName.data()+28, "ac_", 3))
          break;
        switch (BuiltinName[31]) {
        default: break;
        case 'h':	 // 4 strings to match.
          switch (BuiltinName[32]) {
          default: break;
          case 'h':	 // 2 strings to match.
            if (memcmp(BuiltinName.data()+33, "_s", 2))
              break;
            switch (BuiltinName[35]) {
            default: break;
            case '0':	 // 1 string to match.
              return Intrinsic::hexagon_M2_mpyud_nac_hh_s0;	 // "__builtin_HEXAGON_M2_mpyud_nac_hh_s0"
            case '1':	 // 1 string to match.
              return Intrinsic::hexagon_M2_mpyud_nac_hh_s1;	 // "__builtin_HEXAGON_M2_mpyud_nac_hh_s1"
            }
            break;
          case 'l':	 // 2 strings to match.
            if (memcmp(BuiltinName.data()+33, "_s", 2))
              break;
            switch (BuiltinName[35]) {
            default: break;
            case '0':	 // 1 string to match.
              return Intrinsic::hexagon_M2_mpyud_nac_hl_s0;	 // "__builtin_HEXAGON_M2_mpyud_nac_hl_s0"
            case '1':	 // 1 string to match.
              return Intrinsic::hexagon_M2_mpyud_nac_hl_s1;	 // "__builtin_HEXAGON_M2_mpyud_nac_hl_s1"
            }
            break;
          }
          break;
        case 'l':	 // 4 strings to match.
          switch (BuiltinName[32]) {
          default: break;
          case 'h':	 // 2 strings to match.
            if (memcmp(BuiltinName.data()+33, "_s", 2))
              break;
            switch (BuiltinName[35]) {
            default: break;
            case '0':	 // 1 string to match.
              return Intrinsic::hexagon_M2_mpyud_nac_lh_s0;	 // "__builtin_HEXAGON_M2_mpyud_nac_lh_s0"
            case '1':	 // 1 string to match.
              return Intrinsic::hexagon_M2_mpyud_nac_lh_s1;	 // "__builtin_HEXAGON_M2_mpyud_nac_lh_s1"
            }
            break;
          case 'l':	 // 2 strings to match.
            if (memcmp(BuiltinName.data()+33, "_s", 2))
              break;
            switch (BuiltinName[35]) {
            default: break;
            case '0':	 // 1 string to match.
              return Intrinsic::hexagon_M2_mpyud_nac_ll_s0;	 // "__builtin_HEXAGON_M2_mpyud_nac_ll_s0"
            case '1':	 // 1 string to match.
              return Intrinsic::hexagon_M2_mpyud_nac_ll_s1;	 // "__builtin_HEXAGON_M2_mpyud_nac_ll_s1"
            }
            break;
          }
          break;
        }
        break;
      }
      break;
    }
    break;
  case 38:	 // 24 strings to match.
    if (memcmp(BuiltinName.data()+0, "__builtin_HEXAGON_M2_mpy_", 25))
      break;
    switch (BuiltinName[25]) {
    default: break;
    case 'a':	 // 8 strings to match.
      if (memcmp(BuiltinName.data()+26, "cc_sat_", 7))
        break;
      switch (BuiltinName[33]) {
      default: break;
      case 'h':	 // 4 strings to match.
        switch (BuiltinName[34]) {
        default: break;
        case 'h':	 // 2 strings to match.
          if (memcmp(BuiltinName.data()+35, "_s", 2))
            break;
          switch (BuiltinName[37]) {
          default: break;
          case '0':	 // 1 string to match.
            return Intrinsic::hexagon_M2_mpy_acc_sat_hh_s0;	 // "__builtin_HEXAGON_M2_mpy_acc_sat_hh_s0"
          case '1':	 // 1 string to match.
            return Intrinsic::hexagon_M2_mpy_acc_sat_hh_s1;	 // "__builtin_HEXAGON_M2_mpy_acc_sat_hh_s1"
          }
          break;
        case 'l':	 // 2 strings to match.
          if (memcmp(BuiltinName.data()+35, "_s", 2))
            break;
          switch (BuiltinName[37]) {
          default: break;
          case '0':	 // 1 string to match.
            return Intrinsic::hexagon_M2_mpy_acc_sat_hl_s0;	 // "__builtin_HEXAGON_M2_mpy_acc_sat_hl_s0"
          case '1':	 // 1 string to match.
            return Intrinsic::hexagon_M2_mpy_acc_sat_hl_s1;	 // "__builtin_HEXAGON_M2_mpy_acc_sat_hl_s1"
          }
          break;
        }
        break;
      case 'l':	 // 4 strings to match.
        switch (BuiltinName[34]) {
        default: break;
        case 'h':	 // 2 strings to match.
          if (memcmp(BuiltinName.data()+35, "_s", 2))
            break;
          switch (BuiltinName[37]) {
          default: break;
          case '0':	 // 1 string to match.
            return Intrinsic::hexagon_M2_mpy_acc_sat_lh_s0;	 // "__builtin_HEXAGON_M2_mpy_acc_sat_lh_s0"
          case '1':	 // 1 string to match.
            return Intrinsic::hexagon_M2_mpy_acc_sat_lh_s1;	 // "__builtin_HEXAGON_M2_mpy_acc_sat_lh_s1"
          }
          break;
        case 'l':	 // 2 strings to match.
          if (memcmp(BuiltinName.data()+35, "_s", 2))
            break;
          switch (BuiltinName[37]) {
          default: break;
          case '0':	 // 1 string to match.
            return Intrinsic::hexagon_M2_mpy_acc_sat_ll_s0;	 // "__builtin_HEXAGON_M2_mpy_acc_sat_ll_s0"
          case '1':	 // 1 string to match.
            return Intrinsic::hexagon_M2_mpy_acc_sat_ll_s1;	 // "__builtin_HEXAGON_M2_mpy_acc_sat_ll_s1"
          }
          break;
        }
        break;
      }
      break;
    case 'n':	 // 8 strings to match.
      if (memcmp(BuiltinName.data()+26, "ac_sat_", 7))
        break;
      switch (BuiltinName[33]) {
      default: break;
      case 'h':	 // 4 strings to match.
        switch (BuiltinName[34]) {
        default: break;
        case 'h':	 // 2 strings to match.
          if (memcmp(BuiltinName.data()+35, "_s", 2))
            break;
          switch (BuiltinName[37]) {
          default: break;
          case '0':	 // 1 string to match.
            return Intrinsic::hexagon_M2_mpy_nac_sat_hh_s0;	 // "__builtin_HEXAGON_M2_mpy_nac_sat_hh_s0"
          case '1':	 // 1 string to match.
            return Intrinsic::hexagon_M2_mpy_nac_sat_hh_s1;	 // "__builtin_HEXAGON_M2_mpy_nac_sat_hh_s1"
          }
          break;
        case 'l':	 // 2 strings to match.
          if (memcmp(BuiltinName.data()+35, "_s", 2))
            break;
          switch (BuiltinName[37]) {
          default: break;
          case '0':	 // 1 string to match.
            return Intrinsic::hexagon_M2_mpy_nac_sat_hl_s0;	 // "__builtin_HEXAGON_M2_mpy_nac_sat_hl_s0"
          case '1':	 // 1 string to match.
            return Intrinsic::hexagon_M2_mpy_nac_sat_hl_s1;	 // "__builtin_HEXAGON_M2_mpy_nac_sat_hl_s1"
          }
          break;
        }
        break;
      case 'l':	 // 4 strings to match.
        switch (BuiltinName[34]) {
        default: break;
        case 'h':	 // 2 strings to match.
          if (memcmp(BuiltinName.data()+35, "_s", 2))
            break;
          switch (BuiltinName[37]) {
          default: break;
          case '0':	 // 1 string to match.
            return Intrinsic::hexagon_M2_mpy_nac_sat_lh_s0;	 // "__builtin_HEXAGON_M2_mpy_nac_sat_lh_s0"
          case '1':	 // 1 string to match.
            return Intrinsic::hexagon_M2_mpy_nac_sat_lh_s1;	 // "__builtin_HEXAGON_M2_mpy_nac_sat_lh_s1"
          }
          break;
        case 'l':	 // 2 strings to match.
          if (memcmp(BuiltinName.data()+35, "_s", 2))
            break;
          switch (BuiltinName[37]) {
          default: break;
          case '0':	 // 1 string to match.
            return Intrinsic::hexagon_M2_mpy_nac_sat_ll_s0;	 // "__builtin_HEXAGON_M2_mpy_nac_sat_ll_s0"
          case '1':	 // 1 string to match.
            return Intrinsic::hexagon_M2_mpy_nac_sat_ll_s1;	 // "__builtin_HEXAGON_M2_mpy_nac_sat_ll_s1"
          }
          break;
        }
        break;
      }
      break;
    case 's':	 // 8 strings to match.
      if (memcmp(BuiltinName.data()+26, "at_rnd_", 7))
        break;
      switch (BuiltinName[33]) {
      default: break;
      case 'h':	 // 4 strings to match.
        switch (BuiltinName[34]) {
        default: break;
        case 'h':	 // 2 strings to match.
          if (memcmp(BuiltinName.data()+35, "_s", 2))
            break;
          switch (BuiltinName[37]) {
          default: break;
          case '0':	 // 1 string to match.
            return Intrinsic::hexagon_M2_mpy_sat_rnd_hh_s0;	 // "__builtin_HEXAGON_M2_mpy_sat_rnd_hh_s0"
          case '1':	 // 1 string to match.
            return Intrinsic::hexagon_M2_mpy_sat_rnd_hh_s1;	 // "__builtin_HEXAGON_M2_mpy_sat_rnd_hh_s1"
          }
          break;
        case 'l':	 // 2 strings to match.
          if (memcmp(BuiltinName.data()+35, "_s", 2))
            break;
          switch (BuiltinName[37]) {
          default: break;
          case '0':	 // 1 string to match.
            return Intrinsic::hexagon_M2_mpy_sat_rnd_hl_s0;	 // "__builtin_HEXAGON_M2_mpy_sat_rnd_hl_s0"
          case '1':	 // 1 string to match.
            return Intrinsic::hexagon_M2_mpy_sat_rnd_hl_s1;	 // "__builtin_HEXAGON_M2_mpy_sat_rnd_hl_s1"
          }
          break;
        }
        break;
      case 'l':	 // 4 strings to match.
        switch (BuiltinName[34]) {
        default: break;
        case 'h':	 // 2 strings to match.
          if (memcmp(BuiltinName.data()+35, "_s", 2))
            break;
          switch (BuiltinName[37]) {
          default: break;
          case '0':	 // 1 string to match.
            return Intrinsic::hexagon_M2_mpy_sat_rnd_lh_s0;	 // "__builtin_HEXAGON_M2_mpy_sat_rnd_lh_s0"
          case '1':	 // 1 string to match.
            return Intrinsic::hexagon_M2_mpy_sat_rnd_lh_s1;	 // "__builtin_HEXAGON_M2_mpy_sat_rnd_lh_s1"
          }
          break;
        case 'l':	 // 2 strings to match.
          if (memcmp(BuiltinName.data()+35, "_s", 2))
            break;
          switch (BuiltinName[37]) {
          default: break;
          case '0':	 // 1 string to match.
            return Intrinsic::hexagon_M2_mpy_sat_rnd_ll_s0;	 // "__builtin_HEXAGON_M2_mpy_sat_rnd_ll_s0"
          case '1':	 // 1 string to match.
            return Intrinsic::hexagon_M2_mpy_sat_rnd_ll_s1;	 // "__builtin_HEXAGON_M2_mpy_sat_rnd_ll_s1"
          }
          break;
        }
        break;
      }
      break;
    }
    break;
  case 40:	 // 1 string to match.
    if (memcmp(BuiltinName.data()+0, "__builtin_HEXAGON_S5_vasrhrnd_goodsyntax", 40))
      break;
    return Intrinsic::hexagon_S5_vasrhrnd_goodsyntax;	 // "__builtin_HEXAGON_S5_vasrhrnd_goodsyntax"
  case 41:	 // 4 strings to match.
    if (memcmp(BuiltinName.data()+0, "__builtin_HEXAGON_S2_tableidx", 29))
      break;
    switch (BuiltinName[29]) {
    default: break;
    case 'b':	 // 1 string to match.
      if (memcmp(BuiltinName.data()+30, "_goodsyntax", 11))
        break;
      return Intrinsic::hexagon_S2_tableidxb_goodsyntax;	 // "__builtin_HEXAGON_S2_tableidxb_goodsyntax"
    case 'd':	 // 1 string to match.
      if (memcmp(BuiltinName.data()+30, "_goodsyntax", 11))
        break;
      return Intrinsic::hexagon_S2_tableidxd_goodsyntax;	 // "__builtin_HEXAGON_S2_tableidxd_goodsyntax"
    case 'h':	 // 1 string to match.
      if (memcmp(BuiltinName.data()+30, "_goodsyntax", 11))
        break;
      return Intrinsic::hexagon_S2_tableidxh_goodsyntax;	 // "__builtin_HEXAGON_S2_tableidxh_goodsyntax"
    case 'w':	 // 1 string to match.
      if (memcmp(BuiltinName.data()+30, "_goodsyntax", 11))
        break;
      return Intrinsic::hexagon_S2_tableidxw_goodsyntax;	 // "__builtin_HEXAGON_S2_tableidxw_goodsyntax"
    }
    break;
  case 43:	 // 2 strings to match.
    if (memcmp(BuiltinName.data()+0, "__builtin_HEXAGON_S2_asr_i_", 27))
      break;
    switch (BuiltinName[27]) {
    default: break;
    case 'p':	 // 1 string to match.
      if (memcmp(BuiltinName.data()+28, "_rnd_goodsyntax", 15))
        break;
      return Intrinsic::hexagon_S2_asr_i_p_rnd_goodsyntax;	 // "__builtin_HEXAGON_S2_asr_i_p_rnd_goodsyntax"
    case 'r':	 // 1 string to match.
      if (memcmp(BuiltinName.data()+28, "_rnd_goodsyntax", 15))
        break;
      return Intrinsic::hexagon_S2_asr_i_r_rnd_goodsyntax;	 // "__builtin_HEXAGON_S2_asr_i_r_rnd_goodsyntax"
    }
    break;
  case 46:	 // 1 string to match.
    if (memcmp(BuiltinName.data()+0, "__builtin_HEXAGON_S5_asrhub_rnd_sat_goodsyntax", 46))
      break;
    return Intrinsic::hexagon_S5_asrhub_rnd_sat_goodsyntax;	 // "__builtin_HEXAGON_S5_asrhub_rnd_sat_goodsyntax"
  }
  }
  if (TargetPrefix == "mips") {
  switch (BuiltinName.size()) {
  default: break;
  case 18:	 // 2 strings to match.
    if (memcmp(BuiltinName.data()+0, "__builtin_mips_l", 16))
      break;
    switch (BuiltinName[16]) {
    default: break;
    case 'h':	 // 1 string to match.
      if (BuiltinName[17] != 'x')
        break;
      return Intrinsic::mips_lhx;	 // "__builtin_mips_lhx"
    case 'w':	 // 1 string to match.
      if (BuiltinName[17] != 'x')
        break;
      return Intrinsic::mips_lwx;	 // "__builtin_mips_lwx"
    }
    break;
  case 19:	 // 6 strings to match.
    if (memcmp(BuiltinName.data()+0, "__builtin_mips_", 15))
      break;
    switch (BuiltinName[15]) {
    default: break;
    case 'e':	 // 1 string to match.
      if (memcmp(BuiltinName.data()+16, "xtp", 3))
        break;
      return Intrinsic::mips_extp;	 // "__builtin_mips_extp"
    case 'i':	 // 1 string to match.
      if (memcmp(BuiltinName.data()+16, "nsv", 3))
        break;
      return Intrinsic::mips_insv;	 // "__builtin_mips_insv"
    case 'l':	 // 1 string to match.
      if (memcmp(BuiltinName.data()+16, "bux", 3))
        break;
      return Intrinsic::mips_lbux;	 // "__builtin_mips_lbux"
    case 'm':	 // 3 strings to match.
      switch (BuiltinName[16]) {
      default: break;
      case 'a':	 // 1 string to match.
        if (memcmp(BuiltinName.data()+17, "dd", 2))
          break;
        return Intrinsic::mips_madd;	 // "__builtin_mips_madd"
      case 's':	 // 1 string to match.
        if (memcmp(BuiltinName.data()+17, "ub", 2))
          break;
        return Intrinsic::mips_msub;	 // "__builtin_mips_msub"
      case 'u':	 // 1 string to match.
        if (memcmp(BuiltinName.data()+17, "lt", 2))
          break;
        return Intrinsic::mips_mult;	 // "__builtin_mips_mult"
      }
      break;
    }
    break;
  case 20:	 // 8 strings to match.
    if (memcmp(BuiltinName.data()+0, "__builtin_mips_", 15))
      break;
    switch (BuiltinName[15]) {
    default: break;
    case 'a':	 // 2 strings to match.
      if (memcmp(BuiltinName.data()+16, "dd", 2))
        break;
      switch (BuiltinName[18]) {
      default: break;
      case 's':	 // 1 string to match.
        if (BuiltinName[19] != 'c')
          break;
        return Intrinsic::mips_addsc;	 // "__builtin_mips_addsc"
      case 'w':	 // 1 string to match.
        if (BuiltinName[19] != 'c')
          break;
        return Intrinsic::mips_addwc;	 // "__builtin_mips_addwc"
      }
      break;
    case 'm':	 // 3 strings to match.
      switch (BuiltinName[16]) {
      default: break;
      case 'a':	 // 1 string to match.
        if (memcmp(BuiltinName.data()+17, "ddu", 3))
          break;
        return Intrinsic::mips_maddu;	 // "__builtin_mips_maddu"
      case 's':	 // 1 string to match.
        if (memcmp(BuiltinName.data()+17, "ubu", 3))
          break;
        return Intrinsic::mips_msubu;	 // "__builtin_mips_msubu"
      case 'u':	 // 1 string to match.
        if (memcmp(BuiltinName.data()+17, "ltu", 3))
          break;
        return Intrinsic::mips_multu;	 // "__builtin_mips_multu"
      }
      break;
    case 'r':	 // 1 string to match.
      if (memcmp(BuiltinName.data()+16, "ddsp", 4))
        break;
      return Intrinsic::mips_rddsp;	 // "__builtin_mips_rddsp"
    case 's':	 // 1 string to match.
      if (memcmp(BuiltinName.data()+16, "hilo", 4))
        break;
      return Intrinsic::mips_shilo;	 // "__builtin_mips_shilo"
    case 'w':	 // 1 string to match.
      if (memcmp(BuiltinName.data()+16, "rdsp", 4))
        break;
      return Intrinsic::mips_wrdsp;	 // "__builtin_mips_wrdsp"
    }
    break;
  case 21:	 // 8 strings to match.
    if (memcmp(BuiltinName.data()+0, "__builtin_mips_", 15))
      break;
    switch (BuiltinName[15]) {
    default: break;
    case 'a':	 // 1 string to match.
      if (memcmp(BuiltinName.data()+16, "ppend", 5))
        break;
      return Intrinsic::mips_append;	 // "__builtin_mips_append"
    case 'b':	 // 2 strings to match.
      switch (BuiltinName[16]) {
      default: break;
      case 'a':	 // 1 string to match.
        if (memcmp(BuiltinName.data()+17, "lign", 4))
          break;
        return Intrinsic::mips_balign;	 // "__builtin_mips_balign"
      case 'i':	 // 1 string to match.
        if (memcmp(BuiltinName.data()+17, "trev", 4))
          break;
        return Intrinsic::mips_bitrev;	 // "__builtin_mips_bitrev"
      }
      break;
    case 'e':	 // 2 strings to match.
      if (memcmp(BuiltinName.data()+16, "xt", 2))
        break;
      switch (BuiltinName[18]) {
      default: break;
      case 'p':	 // 1 string to match.
        if (memcmp(BuiltinName.data()+19, "dp", 2))
          break;
        return Intrinsic::mips_extpdp;	 // "__builtin_mips_extpdp"
      case 'r':	 // 1 string to match.
        if (memcmp(BuiltinName.data()+19, "_w", 2))
          break;
        return Intrinsic::mips_extr_w;	 // "__builtin_mips_extr_w"
      }
      break;
    case 'm':	 // 3 strings to match.
      switch (BuiltinName[16]) {
      default: break;
      case 'o':	 // 1 string to match.
        if (memcmp(BuiltinName.data()+17, "dsub", 4))
          break;
        return Intrinsic::mips_modsub;	 // "__builtin_mips_modsub"
      case 't':	 // 1 string to match.
        if (memcmp(BuiltinName.data()+17, "hlip", 4))
          break;
        return Intrinsic::mips_mthlip;	 // "__builtin_mips_mthlip"
      case 'u':	 // 1 string to match.
        if (memcmp(BuiltinName.data()+17, "l_ph", 4))
          break;
        return Intrinsic::mips_mul_ph;	 // "__builtin_mips_mul_ph"
      }
      break;
    }
    break;
  case 22:	 // 19 strings to match.
    if (memcmp(BuiltinName.data()+0, "__builtin_mips_", 15))
      break;
    switch (BuiltinName[15]) {
    default: break;
    case 'a':	 // 4 strings to match.
      if (memcmp(BuiltinName.data()+16, "dd", 2))
        break;
      switch (BuiltinName[18]) {
      default: break;
      case 'q':	 // 2 strings to match.
        switch (BuiltinName[19]) {
        default: break;
        case '_':	 // 1 string to match.
          if (memcmp(BuiltinName.data()+20, "ph", 2))
            break;
          return Intrinsic::mips_addq_ph;	 // "__builtin_mips_addq_ph"
        case 'h':	 // 1 string to match.
          if (memcmp(BuiltinName.data()+20, "_w", 2))
            break;
          return Intrinsic::mips_addqh_w;	 // "__builtin_mips_addqh_w"
        }
        break;
      case 'u':	 // 2 strings to match.
        if (BuiltinName[19] != '_')
          break;
        switch (BuiltinName[20]) {
        default: break;
        case 'p':	 // 1 string to match.
          if (BuiltinName[21] != 'h')
            break;
          return Intrinsic::mips_addu_ph;	 // "__builtin_mips_addu_ph"
        case 'q':	 // 1 string to match.
          if (BuiltinName[21] != 'b')
            break;
          return Intrinsic::mips_addu_qb;	 // "__builtin_mips_addu_qb"
        }
        break;
      }
      break;
    case 'p':	 // 3 strings to match.
      switch (BuiltinName[16]) {
      default: break;
      case 'i':	 // 2 strings to match.
        if (memcmp(BuiltinName.data()+17, "ck_", 3))
          break;
        switch (BuiltinName[20]) {
        default: break;
        case 'p':	 // 1 string to match.
          if (BuiltinName[21] != 'h')
            break;
          return Intrinsic::mips_pick_ph;	 // "__builtin_mips_pick_ph"
        case 'q':	 // 1 string to match.
          if (BuiltinName[21] != 'b')
            break;
          return Intrinsic::mips_pick_qb;	 // "__builtin_mips_pick_qb"
        }
        break;
      case 'r':	 // 1 string to match.
        if (memcmp(BuiltinName.data()+17, "epend", 5))
          break;
        return Intrinsic::mips_prepend;	 // "__builtin_mips_prepend"
      }
      break;
    case 'r':	 // 2 strings to match.
      if (memcmp(BuiltinName.data()+16, "epl_", 4))
        break;
      switch (BuiltinName[20]) {
      default: break;
      case 'p':	 // 1 string to match.
        if (BuiltinName[21] != 'h')
          break;
        return Intrinsic::mips_repl_ph;	 // "__builtin_mips_repl_ph"
      case 'q':	 // 1 string to match.
        if (BuiltinName[21] != 'b')
          break;
        return Intrinsic::mips_repl_qb;	 // "__builtin_mips_repl_qb"
      }
      break;
    case 's':	 // 10 strings to match.
      switch (BuiltinName[16]) {
      default: break;
      case 'h':	 // 6 strings to match.
        switch (BuiltinName[17]) {
        default: break;
        case 'l':	 // 2 strings to match.
          if (memcmp(BuiltinName.data()+18, "l_", 2))
            break;
          switch (BuiltinName[20]) {
          default: break;
          case 'p':	 // 1 string to match.
            if (BuiltinName[21] != 'h')
              break;
            return Intrinsic::mips_shll_ph;	 // "__builtin_mips_shll_ph"
          case 'q':	 // 1 string to match.
            if (BuiltinName[21] != 'b')
              break;
            return Intrinsic::mips_shll_qb;	 // "__builtin_mips_shll_qb"
          }
          break;
        case 'r':	 // 4 strings to match.
          switch (BuiltinName[18]) {
          default: break;
          case 'a':	 // 2 strings to match.
            if (BuiltinName[19] != '_')
              break;
            switch (BuiltinName[20]) {
            default: break;
            case 'p':	 // 1 string to match.
              if (BuiltinName[21] != 'h')
                break;
              return Intrinsic::mips_shra_ph;	 // "__builtin_mips_shra_ph"
            case 'q':	 // 1 string to match.
              if (BuiltinName[21] != 'b')
                break;
              return Intrinsic::mips_shra_qb;	 // "__builtin_mips_shra_qb"
            }
            break;
          case 'l':	 // 2 strings to match.
            if (BuiltinName[19] != '_')
              break;
            switch (BuiltinName[20]) {
            default: break;
            case 'p':	 // 1 string to match.
              if (BuiltinName[21] != 'h')
                break;
              return Intrinsic::mips_shrl_ph;	 // "__builtin_mips_shrl_ph"
            case 'q':	 // 1 string to match.
              if (BuiltinName[21] != 'b')
                break;
              return Intrinsic::mips_shrl_qb;	 // "__builtin_mips_shrl_qb"
            }
            break;
          }
          break;
        }
        break;
      case 'u':	 // 4 strings to match.
        if (BuiltinName[17] != 'b')
          break;
        switch (BuiltinName[18]) {
        default: break;
        case 'q':	 // 2 strings to match.
          switch (BuiltinName[19]) {
          default: break;
          case '_':	 // 1 string to match.
            if (memcmp(BuiltinName.data()+20, "ph", 2))
              break;
            return Intrinsic::mips_subq_ph;	 // "__builtin_mips_subq_ph"
          case 'h':	 // 1 string to match.
            if (memcmp(BuiltinName.data()+20, "_w", 2))
              break;
            return Intrinsic::mips_subqh_w;	 // "__builtin_mips_subqh_w"
          }
          break;
        case 'u':	 // 2 strings to match.
          if (BuiltinName[19] != '_')
            break;
          switch (BuiltinName[20]) {
          default: break;
          case 'p':	 // 1 string to match.
            if (BuiltinName[21] != 'h')
              break;
            return Intrinsic::mips_subu_ph;	 // "__builtin_mips_subu_ph"
          case 'q':	 // 1 string to match.
            if (BuiltinName[21] != 'b')
              break;
            return Intrinsic::mips_subu_qb;	 // "__builtin_mips_subu_qb"
          }
          break;
        }
        break;
      }
      break;
    }
    break;
  case 23:	 // 16 strings to match.
    if (memcmp(BuiltinName.data()+0, "__builtin_mips_", 15))
      break;
    switch (BuiltinName[15]) {
    default: break;
    case 'a':	 // 4 strings to match.
      switch (BuiltinName[16]) {
      default: break;
      case 'b':	 // 1 string to match.
        if (memcmp(BuiltinName.data()+17, "sq_s_w", 6))
          break;
        return Intrinsic::mips_absq_s_w;	 // "__builtin_mips_absq_s_w"
      case 'd':	 // 3 strings to match.
        if (BuiltinName[17] != 'd')
          break;
        switch (BuiltinName[18]) {
        default: break;
        case 'q':	 // 2 strings to match.
          switch (BuiltinName[19]) {
          default: break;
          case '_':	 // 1 string to match.
            if (memcmp(BuiltinName.data()+20, "s_w", 3))
              break;
            return Intrinsic::mips_addq_s_w;	 // "__builtin_mips_addq_s_w"
          case 'h':	 // 1 string to match.
            if (memcmp(BuiltinName.data()+20, "_ph", 3))
              break;
            return Intrinsic::mips_addqh_ph;	 // "__builtin_mips_addqh_ph"
          }
          break;
        case 'u':	 // 1 string to match.
          if (memcmp(BuiltinName.data()+19, "h_qb", 4))
            break;
          return Intrinsic::mips_adduh_qb;	 // "__builtin_mips_adduh_qb"
        }
        break;
      }
      break;
    case 'b':	 // 1 string to match.
      if (memcmp(BuiltinName.data()+16, "posge32", 7))
        break;
      return Intrinsic::mips_bposge32;	 // "__builtin_mips_bposge32"
    case 'd':	 // 2 strings to match.
      if (BuiltinName[16] != 'p')
        break;
      switch (BuiltinName[17]) {
      default: break;
      case 'a':	 // 1 string to match.
        if (memcmp(BuiltinName.data()+18, "_w_ph", 5))
          break;
        return Intrinsic::mips_dpa_w_ph;	 // "__builtin_mips_dpa_w_ph"
      case 's':	 // 1 string to match.
        if (memcmp(BuiltinName.data()+18, "_w_ph", 5))
          break;
        return Intrinsic::mips_dps_w_ph;	 // "__builtin_mips_dps_w_ph"
      }
      break;
    case 'e':	 // 2 strings to match.
      if (memcmp(BuiltinName.data()+16, "xtr_", 4))
        break;
      switch (BuiltinName[20]) {
      default: break;
      case 'r':	 // 1 string to match.
        if (memcmp(BuiltinName.data()+21, "_w", 2))
          break;
        return Intrinsic::mips_extr_r_w;	 // "__builtin_mips_extr_r_w"
      case 's':	 // 1 string to match.
        if (memcmp(BuiltinName.data()+21, "_h", 2))
          break;
        return Intrinsic::mips_extr_s_h;	 // "__builtin_mips_extr_s_h"
      }
      break;
    case 'm':	 // 2 strings to match.
      if (memcmp(BuiltinName.data()+16, "ul", 2))
        break;
      switch (BuiltinName[18]) {
      default: break;
      case '_':	 // 1 string to match.
        if (memcmp(BuiltinName.data()+19, "s_ph", 4))
          break;
        return Intrinsic::mips_mul_s_ph;	 // "__builtin_mips_mul_s_ph"
      case 'q':	 // 1 string to match.
        if (memcmp(BuiltinName.data()+19, "_s_w", 4))
          break;
        return Intrinsic::mips_mulq_s_w;	 // "__builtin_mips_mulq_s_w"
      }
      break;
    case 's':	 // 5 strings to match.
      switch (BuiltinName[16]) {
      default: break;
      case 'h':	 // 2 strings to match.
        switch (BuiltinName[17]) {
        default: break;
        case 'l':	 // 1 string to match.
          if (memcmp(BuiltinName.data()+18, "l_s_w", 5))
            break;
          return Intrinsic::mips_shll_s_w;	 // "__builtin_mips_shll_s_w"
        case 'r':	 // 1 string to match.
          if (memcmp(BuiltinName.data()+18, "a_r_w", 5))
            break;
          return Intrinsic::mips_shra_r_w;	 // "__builtin_mips_shra_r_w"
        }
        break;
      case 'u':	 // 3 strings to match.
        if (BuiltinName[17] != 'b')
          break;
        switch (BuiltinName[18]) {
        default: break;
        case 'q':	 // 2 strings to match.
          switch (BuiltinName[19]) {
          default: break;
          case '_':	 // 1 string to match.
            if (memcmp(BuiltinName.data()+20, "s_w", 3))
              break;
            return Intrinsic::mips_subq_s_w;	 // "__builtin_mips_subq_s_w"
          case 'h':	 // 1 string to match.
            if (memcmp(BuiltinName.data()+20, "_ph", 3))
              break;
            return Intrinsic::mips_subqh_ph;	 // "__builtin_mips_subqh_ph"
          }
          break;
        case 'u':	 // 1 string to match.
          if (memcmp(BuiltinName.data()+19, "h_qb", 4))
            break;
          return Intrinsic::mips_subuh_qb;	 // "__builtin_mips_subuh_qb"
        }
        break;
      }
      break;
    }
    break;
  case 24:	 // 22 strings to match.
    if (memcmp(BuiltinName.data()+0, "__builtin_mips_", 15))
      break;
    switch (BuiltinName[15]) {
    default: break;
    case 'a':	 // 6 strings to match.
      switch (BuiltinName[16]) {
      default: break;
      case 'b':	 // 2 strings to match.
        if (memcmp(BuiltinName.data()+17, "sq_s_", 5))
          break;
        switch (BuiltinName[22]) {
        default: break;
        case 'p':	 // 1 string to match.
          if (BuiltinName[23] != 'h')
            break;
          return Intrinsic::mips_absq_s_ph;	 // "__builtin_mips_absq_s_ph"
        case 'q':	 // 1 string to match.
          if (BuiltinName[23] != 'b')
            break;
          return Intrinsic::mips_absq_s_qb;	 // "__builtin_mips_absq_s_qb"
        }
        break;
      case 'd':	 // 4 strings to match.
        if (BuiltinName[17] != 'd')
          break;
        switch (BuiltinName[18]) {
        default: break;
        case 'q':	 // 2 strings to match.
          switch (BuiltinName[19]) {
          default: break;
          case '_':	 // 1 string to match.
            if (memcmp(BuiltinName.data()+20, "s_ph", 4))
              break;
            return Intrinsic::mips_addq_s_ph;	 // "__builtin_mips_addq_s_ph"
          case 'h':	 // 1 string to match.
            if (memcmp(BuiltinName.data()+20, "_r_w", 4))
              break;
            return Intrinsic::mips_addqh_r_w;	 // "__builtin_mips_addqh_r_w"
          }
          break;
        case 'u':	 // 2 strings to match.
          if (memcmp(BuiltinName.data()+19, "_s_", 3))
            break;
          switch (BuiltinName[22]) {
          default: break;
          case 'p':	 // 1 string to match.
            if (BuiltinName[23] != 'h')
              break;
            return Intrinsic::mips_addu_s_ph;	 // "__builtin_mips_addu_s_ph"
          case 'q':	 // 1 string to match.
            if (BuiltinName[23] != 'b')
              break;
            return Intrinsic::mips_addu_s_qb;	 // "__builtin_mips_addu_s_qb"
          }
          break;
        }
        break;
      }
      break;
    case 'c':	 // 3 strings to match.
      if (memcmp(BuiltinName.data()+16, "mp_", 3))
        break;
      switch (BuiltinName[19]) {
      default: break;
      case 'e':	 // 1 string to match.
        if (memcmp(BuiltinName.data()+20, "q_ph", 4))
          break;
        return Intrinsic::mips_cmp_eq_ph;	 // "__builtin_mips_cmp_eq_ph"
      case 'l':	 // 2 strings to match.
        switch (BuiltinName[20]) {
        default: break;
        case 'e':	 // 1 string to match.
          if (memcmp(BuiltinName.data()+21, "_ph", 3))
            break;
          return Intrinsic::mips_cmp_le_ph;	 // "__builtin_mips_cmp_le_ph"
        case 't':	 // 1 string to match.
          if (memcmp(BuiltinName.data()+21, "_ph", 3))
            break;
          return Intrinsic::mips_cmp_lt_ph;	 // "__builtin_mips_cmp_lt_ph"
        }
        break;
      }
      break;
    case 'd':	 // 2 strings to match.
      if (BuiltinName[16] != 'p')
        break;
      switch (BuiltinName[17]) {
      default: break;
      case 'a':	 // 1 string to match.
        if (memcmp(BuiltinName.data()+18, "x_w_ph", 6))
          break;
        return Intrinsic::mips_dpax_w_ph;	 // "__builtin_mips_dpax_w_ph"
      case 's':	 // 1 string to match.
        if (memcmp(BuiltinName.data()+18, "x_w_ph", 6))
          break;
        return Intrinsic::mips_dpsx_w_ph;	 // "__builtin_mips_dpsx_w_ph"
      }
      break;
    case 'e':	 // 1 string to match.
      if (memcmp(BuiltinName.data()+16, "xtr_rs_w", 8))
        break;
      return Intrinsic::mips_extr_rs_w;	 // "__builtin_mips_extr_rs_w"
    case 'm':	 // 2 strings to match.
      if (memcmp(BuiltinName.data()+16, "ulq_", 4))
        break;
      switch (BuiltinName[20]) {
      default: break;
      case 'r':	 // 1 string to match.
        if (memcmp(BuiltinName.data()+21, "s_w", 3))
          break;
        return Intrinsic::mips_mulq_rs_w;	 // "__builtin_mips_mulq_rs_w"
      case 's':	 // 1 string to match.
        if (memcmp(BuiltinName.data()+21, "_ph", 3))
          break;
        return Intrinsic::mips_mulq_s_ph;	 // "__builtin_mips_mulq_s_ph"
      }
      break;
    case 'p':	 // 1 string to match.
      if (memcmp(BuiltinName.data()+16, "ackrl_ph", 8))
        break;
      return Intrinsic::mips_packrl_ph;	 // "__builtin_mips_packrl_ph"
    case 's':	 // 7 strings to match.
      switch (BuiltinName[16]) {
      default: break;
      case 'h':	 // 3 strings to match.
        switch (BuiltinName[17]) {
        default: break;
        case 'l':	 // 1 string to match.
          if (memcmp(BuiltinName.data()+18, "l_s_ph", 6))
            break;
          return Intrinsic::mips_shll_s_ph;	 // "__builtin_mips_shll_s_ph"
        case 'r':	 // 2 strings to match.
          if (memcmp(BuiltinName.data()+18, "a_r_", 4))
            break;
          switch (BuiltinName[22]) {
          default: break;
          case 'p':	 // 1 string to match.
            if (BuiltinName[23] != 'h')
              break;
            return Intrinsic::mips_shra_r_ph;	 // "__builtin_mips_shra_r_ph"
          case 'q':	 // 1 string to match.
            if (BuiltinName[23] != 'b')
              break;
            return Intrinsic::mips_shra_r_qb;	 // "__builtin_mips_shra_r_qb"
          }
          break;
        }
        break;
      case 'u':	 // 4 strings to match.
        if (BuiltinName[17] != 'b')
          break;
        switch (BuiltinName[18]) {
        default: break;
        case 'q':	 // 2 strings to match.
          switch (BuiltinName[19]) {
          default: break;
          case '_':	 // 1 string to match.
            if (memcmp(BuiltinName.data()+20, "s_ph", 4))
              break;
            return Intrinsic::mips_subq_s_ph;	 // "__builtin_mips_subq_s_ph"
          case 'h':	 // 1 string to match.
            if (memcmp(BuiltinName.data()+20, "_r_w", 4))
              break;
            return Intrinsic::mips_subqh_r_w;	 // "__builtin_mips_subqh_r_w"
          }
          break;
        case 'u':	 // 2 strings to match.
          if (memcmp(BuiltinName.data()+19, "_s_", 3))
            break;
          switch (BuiltinName[22]) {
          default: break;
          case 'p':	 // 1 string to match.
            if (BuiltinName[23] != 'h')
              break;
            return Intrinsic::mips_subu_s_ph;	 // "__builtin_mips_subu_s_ph"
          case 'q':	 // 1 string to match.
            if (BuiltinName[23] != 'b')
              break;
            return Intrinsic::mips_subu_s_qb;	 // "__builtin_mips_subu_s_qb"
          }
          break;
        }
        break;
      }
      break;
    }
    break;
  case 25:	 // 14 strings to match.
    if (memcmp(BuiltinName.data()+0, "__builtin_mips_", 15))
      break;
    switch (BuiltinName[15]) {
    default: break;
    case 'a':	 // 2 strings to match.
      if (memcmp(BuiltinName.data()+16, "dd", 2))
        break;
      switch (BuiltinName[18]) {
      default: break;
      case 'q':	 // 1 string to match.
        if (memcmp(BuiltinName.data()+19, "h_r_ph", 6))
          break;
        return Intrinsic::mips_addqh_r_ph;	 // "__builtin_mips_addqh_r_ph"
      case 'u':	 // 1 string to match.
        if (memcmp(BuiltinName.data()+19, "h_r_qb", 6))
          break;
        return Intrinsic::mips_adduh_r_qb;	 // "__builtin_mips_adduh_r_qb"
      }
      break;
    case 'c':	 // 3 strings to match.
      if (memcmp(BuiltinName.data()+16, "mpu_", 4))
        break;
      switch (BuiltinName[20]) {
      default: break;
      case 'e':	 // 1 string to match.
        if (memcmp(BuiltinName.data()+21, "q_qb", 4))
          break;
        return Intrinsic::mips_cmpu_eq_qb;	 // "__builtin_mips_cmpu_eq_qb"
      case 'l':	 // 2 strings to match.
        switch (BuiltinName[21]) {
        default: break;
        case 'e':	 // 1 string to match.
          if (memcmp(BuiltinName.data()+22, "_qb", 3))
            break;
          return Intrinsic::mips_cmpu_le_qb;	 // "__builtin_mips_cmpu_le_qb"
        case 't':	 // 1 string to match.
          if (memcmp(BuiltinName.data()+22, "_qb", 3))
            break;
          return Intrinsic::mips_cmpu_lt_qb;	 // "__builtin_mips_cmpu_lt_qb"
        }
        break;
      }
      break;
    case 'd':	 // 4 strings to match.
      if (BuiltinName[16] != 'p')
        break;
      switch (BuiltinName[17]) {
      default: break;
      case 'a':	 // 2 strings to match.
        if (memcmp(BuiltinName.data()+18, "u_h_qb", 6))
          break;
        switch (BuiltinName[24]) {
        default: break;
        case 'l':	 // 1 string to match.
          return Intrinsic::mips_dpau_h_qbl;	 // "__builtin_mips_dpau_h_qbl"
        case 'r':	 // 1 string to match.
          return Intrinsic::mips_dpau_h_qbr;	 // "__builtin_mips_dpau_h_qbr"
        }
        break;
      case 's':	 // 2 strings to match.
        if (memcmp(BuiltinName.data()+18, "u_h_qb", 6))
          break;
        switch (BuiltinName[24]) {
        default: break;
        case 'l':	 // 1 string to match.
          return Intrinsic::mips_dpsu_h_qbl;	 // "__builtin_mips_dpsu_h_qbl"
        case 'r':	 // 1 string to match.
          return Intrinsic::mips_dpsu_h_qbr;	 // "__builtin_mips_dpsu_h_qbr"
        }
        break;
      }
      break;
    case 'm':	 // 2 strings to match.
      if (memcmp(BuiltinName.data()+16, "ul", 2))
        break;
      switch (BuiltinName[18]) {
      default: break;
      case 'q':	 // 1 string to match.
        if (memcmp(BuiltinName.data()+19, "_rs_ph", 6))
          break;
        return Intrinsic::mips_mulq_rs_ph;	 // "__builtin_mips_mulq_rs_ph"
      case 's':	 // 1 string to match.
        if (memcmp(BuiltinName.data()+19, "a_w_ph", 6))
          break;
        return Intrinsic::mips_mulsa_w_ph;	 // "__builtin_mips_mulsa_w_ph"
      }
      break;
    case 'r':	 // 1 string to match.
      if (memcmp(BuiltinName.data()+16, "addu_w_qb", 9))
        break;
      return Intrinsic::mips_raddu_w_qb;	 // "__builtin_mips_raddu_w_qb"
    case 's':	 // 2 strings to match.
      if (memcmp(BuiltinName.data()+16, "ub", 2))
        break;
      switch (BuiltinName[18]) {
      default: break;
      case 'q':	 // 1 string to match.
        if (memcmp(BuiltinName.data()+19, "h_r_ph", 6))
          break;
        return Intrinsic::mips_subqh_r_ph;	 // "__builtin_mips_subqh_r_ph"
      case 'u':	 // 1 string to match.
        if (memcmp(BuiltinName.data()+19, "h_r_qb", 6))
          break;
        return Intrinsic::mips_subuh_r_qb;	 // "__builtin_mips_subuh_r_qb"
      }
      break;
    }
    break;
  case 26:	 // 11 strings to match.
    if (memcmp(BuiltinName.data()+0, "__builtin_mips_", 15))
      break;
    switch (BuiltinName[15]) {
    default: break;
    case 'c':	 // 3 strings to match.
      if (memcmp(BuiltinName.data()+16, "mpgu_", 5))
        break;
      switch (BuiltinName[21]) {
      default: break;
      case 'e':	 // 1 string to match.
        if (memcmp(BuiltinName.data()+22, "q_qb", 4))
          break;
        return Intrinsic::mips_cmpgu_eq_qb;	 // "__builtin_mips_cmpgu_eq_qb"
      case 'l':	 // 2 strings to match.
        switch (BuiltinName[22]) {
        default: break;
        case 'e':	 // 1 string to match.
          if (memcmp(BuiltinName.data()+23, "_qb", 3))
            break;
          return Intrinsic::mips_cmpgu_le_qb;	 // "__builtin_mips_cmpgu_le_qb"
        case 't':	 // 1 string to match.
          if (memcmp(BuiltinName.data()+23, "_qb", 3))
            break;
          return Intrinsic::mips_cmpgu_lt_qb;	 // "__builtin_mips_cmpgu_lt_qb"
        }
        break;
      }
      break;
    case 'd':	 // 4 strings to match.
      if (BuiltinName[16] != 'p')
        break;
      switch (BuiltinName[17]) {
      default: break;
      case 'a':	 // 2 strings to match.
        if (memcmp(BuiltinName.data()+18, "q_s", 3))
          break;
        switch (BuiltinName[21]) {
        default: break;
        case '_':	 // 1 string to match.
          if (memcmp(BuiltinName.data()+22, "w_ph", 4))
            break;
          return Intrinsic::mips_dpaq_s_w_ph;	 // "__builtin_mips_dpaq_s_w_ph"
        case 'a':	 // 1 string to match.
          if (memcmp(BuiltinName.data()+22, "_l_w", 4))
            break;
          return Intrinsic::mips_dpaq_sa_l_w;	 // "__builtin_mips_dpaq_sa_l_w"
        }
        break;
      case 's':	 // 2 strings to match.
        if (memcmp(BuiltinName.data()+18, "q_s", 3))
          break;
        switch (BuiltinName[21]) {
        default: break;
        case '_':	 // 1 string to match.
          if (memcmp(BuiltinName.data()+22, "w_ph", 4))
            break;
          return Intrinsic::mips_dpsq_s_w_ph;	 // "__builtin_mips_dpsq_s_w_ph"
        case 'a':	 // 1 string to match.
          if (memcmp(BuiltinName.data()+22, "_l_w", 4))
            break;
          return Intrinsic::mips_dpsq_sa_l_w;	 // "__builtin_mips_dpsq_sa_l_w"
        }
        break;
      }
      break;
    case 'm':	 // 2 strings to match.
      if (memcmp(BuiltinName.data()+16, "aq_s_w_ph", 9))
        break;
      switch (BuiltinName[25]) {
      default: break;
      case 'l':	 // 1 string to match.
        return Intrinsic::mips_maq_s_w_phl;	 // "__builtin_mips_maq_s_w_phl"
      case 'r':	 // 1 string to match.
        return Intrinsic::mips_maq_s_w_phr;	 // "__builtin_mips_maq_s_w_phr"
      }
      break;
    case 'p':	 // 2 strings to match.
      if (memcmp(BuiltinName.data()+16, "recr", 4))
        break;
      switch (BuiltinName[20]) {
      default: break;
      case '_':	 // 1 string to match.
        if (memcmp(BuiltinName.data()+21, "qb_ph", 5))
          break;
        return Intrinsic::mips_precr_qb_ph;	 // "__builtin_mips_precr_qb_ph"
      case 'q':	 // 1 string to match.
        if (memcmp(BuiltinName.data()+21, "_ph_w", 5))
          break;
        return Intrinsic::mips_precrq_ph_w;	 // "__builtin_mips_precrq_ph_w"
      }
      break;
    }
    break;
  case 27:	 // 10 strings to match.
    if (memcmp(BuiltinName.data()+0, "__builtin_mips_", 15))
      break;
    switch (BuiltinName[15]) {
    default: break;
    case 'c':	 // 3 strings to match.
      if (memcmp(BuiltinName.data()+16, "mpgdu_", 6))
        break;
      switch (BuiltinName[22]) {
      default: break;
      case 'e':	 // 1 string to match.
        if (memcmp(BuiltinName.data()+23, "q_qb", 4))
          break;
        return Intrinsic::mips_cmpgdu_eq_qb;	 // "__builtin_mips_cmpgdu_eq_qb"
      case 'l':	 // 2 strings to match.
        switch (BuiltinName[23]) {
        default: break;
        case 'e':	 // 1 string to match.
          if (memcmp(BuiltinName.data()+24, "_qb", 3))
            break;
          return Intrinsic::mips_cmpgdu_le_qb;	 // "__builtin_mips_cmpgdu_le_qb"
        case 't':	 // 1 string to match.
          if (memcmp(BuiltinName.data()+24, "_qb", 3))
            break;
          return Intrinsic::mips_cmpgdu_lt_qb;	 // "__builtin_mips_cmpgdu_lt_qb"
        }
        break;
      }
      break;
    case 'd':	 // 2 strings to match.
      if (BuiltinName[16] != 'p')
        break;
      switch (BuiltinName[17]) {
      default: break;
      case 'a':	 // 1 string to match.
        if (memcmp(BuiltinName.data()+18, "qx_s_w_ph", 9))
          break;
        return Intrinsic::mips_dpaqx_s_w_ph;	 // "__builtin_mips_dpaqx_s_w_ph"
      case 's':	 // 1 string to match.
        if (memcmp(BuiltinName.data()+18, "qx_s_w_ph", 9))
          break;
        return Intrinsic::mips_dpsqx_s_w_ph;	 // "__builtin_mips_dpsqx_s_w_ph"
      }
      break;
    case 'm':	 // 2 strings to match.
      if (memcmp(BuiltinName.data()+16, "aq_sa_w_ph", 10))
        break;
      switch (BuiltinName[26]) {
      default: break;
      case 'l':	 // 1 string to match.
        return Intrinsic::mips_maq_sa_w_phl;	 // "__builtin_mips_maq_sa_w_phl"
      case 'r':	 // 1 string to match.
        return Intrinsic::mips_maq_sa_w_phr;	 // "__builtin_mips_maq_sa_w_phr"
      }
      break;
    case 'p':	 // 3 strings to match.
      if (memcmp(BuiltinName.data()+16, "rec", 3))
        break;
      switch (BuiltinName[19]) {
      default: break;
      case 'e':	 // 2 strings to match.
        if (memcmp(BuiltinName.data()+20, "q_w_ph", 6))
          break;
        switch (BuiltinName[26]) {
        default: break;
        case 'l':	 // 1 string to match.
          return Intrinsic::mips_preceq_w_phl;	 // "__builtin_mips_preceq_w_phl"
        case 'r':	 // 1 string to match.
          return Intrinsic::mips_preceq_w_phr;	 // "__builtin_mips_preceq_w_phr"
        }
        break;
      case 'r':	 // 1 string to match.
        if (memcmp(BuiltinName.data()+20, "q_qb_ph", 7))
          break;
        return Intrinsic::mips_precrq_qb_ph;	 // "__builtin_mips_precrq_qb_ph"
      }
      break;
    }
    break;
  case 28:	 // 7 strings to match.
    if (memcmp(BuiltinName.data()+0, "__builtin_mips_", 15))
      break;
    switch (BuiltinName[15]) {
    default: break;
    case 'd':	 // 2 strings to match.
      if (BuiltinName[16] != 'p')
        break;
      switch (BuiltinName[17]) {
      default: break;
      case 'a':	 // 1 string to match.
        if (memcmp(BuiltinName.data()+18, "qx_sa_w_ph", 10))
          break;
        return Intrinsic::mips_dpaqx_sa_w_ph;	 // "__builtin_mips_dpaqx_sa_w_ph"
      case 's':	 // 1 string to match.
        if (memcmp(BuiltinName.data()+18, "qx_sa_w_ph", 10))
          break;
        return Intrinsic::mips_dpsqx_sa_w_ph;	 // "__builtin_mips_dpsqx_sa_w_ph"
      }
      break;
    case 'm':	 // 3 strings to match.
      if (memcmp(BuiltinName.data()+16, "ul", 2))
        break;
      switch (BuiltinName[18]) {
      default: break;
      case 'e':	 // 2 strings to match.
        if (memcmp(BuiltinName.data()+19, "q_s_w_ph", 8))
          break;
        switch (BuiltinName[27]) {
        default: break;
        case 'l':	 // 1 string to match.
          return Intrinsic::mips_muleq_s_w_phl;	 // "__builtin_mips_muleq_s_w_phl"
        case 'r':	 // 1 string to match.
          return Intrinsic::mips_muleq_s_w_phr;	 // "__builtin_mips_muleq_s_w_phr"
        }
        break;
      case 's':	 // 1 string to match.
        if (memcmp(BuiltinName.data()+19, "aq_s_w_ph", 9))
          break;
        return Intrinsic::mips_mulsaq_s_w_ph;	 // "__builtin_mips_mulsaq_s_w_ph"
      }
      break;
    case 'p':	 // 2 strings to match.
      if (memcmp(BuiltinName.data()+16, "receu_ph_qb", 11))
        break;
      switch (BuiltinName[27]) {
      default: break;
      case 'l':	 // 1 string to match.
        return Intrinsic::mips_preceu_ph_qbl;	 // "__builtin_mips_preceu_ph_qbl"
      case 'r':	 // 1 string to match.
        return Intrinsic::mips_preceu_ph_qbr;	 // "__builtin_mips_preceu_ph_qbr"
      }
      break;
    }
    break;
  case 29:	 // 8 strings to match.
    if (memcmp(BuiltinName.data()+0, "__builtin_mips_", 15))
      break;
    switch (BuiltinName[15]) {
    default: break;
    case 'm':	 // 2 strings to match.
      if (memcmp(BuiltinName.data()+16, "uleu_s_ph_qb", 12))
        break;
      switch (BuiltinName[28]) {
      default: break;
      case 'l':	 // 1 string to match.
        return Intrinsic::mips_muleu_s_ph_qbl;	 // "__builtin_mips_muleu_s_ph_qbl"
      case 'r':	 // 1 string to match.
        return Intrinsic::mips_muleu_s_ph_qbr;	 // "__builtin_mips_muleu_s_ph_qbr"
      }
      break;
    case 'p':	 // 6 strings to match.
      if (memcmp(BuiltinName.data()+16, "rec", 3))
        break;
      switch (BuiltinName[19]) {
      default: break;
      case 'e':	 // 4 strings to match.
        switch (BuiltinName[20]) {
        default: break;
        case 'q':	 // 2 strings to match.
          if (memcmp(BuiltinName.data()+21, "u_ph_qb", 7))
            break;
          switch (BuiltinName[28]) {
          default: break;
          case 'l':	 // 1 string to match.
            return Intrinsic::mips_precequ_ph_qbl;	 // "__builtin_mips_precequ_ph_qbl"
          case 'r':	 // 1 string to match.
            return Intrinsic::mips_precequ_ph_qbr;	 // "__builtin_mips_precequ_ph_qbr"
          }
          break;
        case 'u':	 // 2 strings to match.
          if (memcmp(BuiltinName.data()+21, "_ph_qb", 6))
            break;
          switch (BuiltinName[27]) {
          default: break;
          case 'l':	 // 1 string to match.
            if (BuiltinName[28] != 'a')
              break;
            return Intrinsic::mips_preceu_ph_qbla;	 // "__builtin_mips_preceu_ph_qbla"
          case 'r':	 // 1 string to match.
            if (BuiltinName[28] != 'a')
              break;
            return Intrinsic::mips_preceu_ph_qbra;	 // "__builtin_mips_preceu_ph_qbra"
          }
          break;
        }
        break;
      case 'r':	 // 2 strings to match.
        switch (BuiltinName[20]) {
        default: break;
        case '_':	 // 1 string to match.
          if (memcmp(BuiltinName.data()+21, "sra_ph_w", 8))
            break;
          return Intrinsic::mips_precr_sra_ph_w;	 // "__builtin_mips_precr_sra_ph_w"
        case 'q':	 // 1 string to match.
          if (memcmp(BuiltinName.data()+21, "_rs_ph_w", 8))
            break;
          return Intrinsic::mips_precrq_rs_ph_w;	 // "__builtin_mips_precrq_rs_ph_w"
        }
        break;
      }
      break;
    }
    break;
  case 30:	 // 3 strings to match.
    if (memcmp(BuiltinName.data()+0, "__builtin_mips_prec", 19))
      break;
    switch (BuiltinName[19]) {
    default: break;
    case 'e':	 // 2 strings to match.
      if (memcmp(BuiltinName.data()+20, "qu_ph_qb", 8))
        break;
      switch (BuiltinName[28]) {
      default: break;
      case 'l':	 // 1 string to match.
        if (BuiltinName[29] != 'a')
          break;
        return Intrinsic::mips_precequ_ph_qbla;	 // "__builtin_mips_precequ_ph_qbla"
      case 'r':	 // 1 string to match.
        if (BuiltinName[29] != 'a')
          break;
        return Intrinsic::mips_precequ_ph_qbra;	 // "__builtin_mips_precequ_ph_qbra"
      }
      break;
    case 'r':	 // 1 string to match.
      if (memcmp(BuiltinName.data()+20, "qu_s_qb_ph", 10))
        break;
      return Intrinsic::mips_precrqu_s_qb_ph;	 // "__builtin_mips_precrqu_s_qb_ph"
    }
    break;
  case 31:	 // 1 string to match.
    if (memcmp(BuiltinName.data()+0, "__builtin_mips_precr_sra_r_ph_w", 31))
      break;
    return Intrinsic::mips_precr_sra_r_ph_w;	 // "__builtin_mips_precr_sra_r_ph_w"
  }
  }
  if (TargetPrefix == "ppc") {
  switch (BuiltinName.size()) {
  default: break;
  case 21:	 // 4 strings to match.
    if (memcmp(BuiltinName.data()+0, "__builtin_altivec_", 18))
      break;
    switch (BuiltinName[18]) {
    default: break;
    case 'd':	 // 2 strings to match.
      if (BuiltinName[19] != 's')
        break;
      switch (BuiltinName[20]) {
      default: break;
      case 's':	 // 1 string to match.
        return Intrinsic::ppc_altivec_dss;	 // "__builtin_altivec_dss"
      case 't':	 // 1 string to match.
        return Intrinsic::ppc_altivec_dst;	 // "__builtin_altivec_dst"
      }
      break;
    case 'v':	 // 2 strings to match.
      if (BuiltinName[19] != 's')
        break;
      switch (BuiltinName[20]) {
      default: break;
      case 'l':	 // 1 string to match.
        return Intrinsic::ppc_altivec_vsl;	 // "__builtin_altivec_vsl"
      case 'r':	 // 1 string to match.
        return Intrinsic::ppc_altivec_vsr;	 // "__builtin_altivec_vsr"
      }
      break;
    }
    break;
  case 22:	 // 12 strings to match.
    if (memcmp(BuiltinName.data()+0, "__builtin_altivec_", 18))
      break;
    switch (BuiltinName[18]) {
    default: break;
    case 'd':	 // 1 string to match.
      if (memcmp(BuiltinName.data()+19, "stt", 3))
        break;
      return Intrinsic::ppc_altivec_dstt;	 // "__builtin_altivec_dstt"
    case 'v':	 // 11 strings to match.
      switch (BuiltinName[19]) {
      default: break;
      case 'r':	 // 3 strings to match.
        if (BuiltinName[20] != 'l')
          break;
        switch (BuiltinName[21]) {
        default: break;
        case 'b':	 // 1 string to match.
          return Intrinsic::ppc_altivec_vrlb;	 // "__builtin_altivec_vrlb"
        case 'h':	 // 1 string to match.
          return Intrinsic::ppc_altivec_vrlh;	 // "__builtin_altivec_vrlh"
        case 'w':	 // 1 string to match.
          return Intrinsic::ppc_altivec_vrlw;	 // "__builtin_altivec_vrlw"
        }
        break;
      case 's':	 // 8 strings to match.
        switch (BuiltinName[20]) {
        default: break;
        case 'l':	 // 4 strings to match.
          switch (BuiltinName[21]) {
          default: break;
          case 'b':	 // 1 string to match.
            return Intrinsic::ppc_altivec_vslb;	 // "__builtin_altivec_vslb"
          case 'h':	 // 1 string to match.
            return Intrinsic::ppc_altivec_vslh;	 // "__builtin_altivec_vslh"
          case 'o':	 // 1 string to match.
            return Intrinsic::ppc_altivec_vslo;	 // "__builtin_altivec_vslo"
          case 'w':	 // 1 string to match.
            return Intrinsic::ppc_altivec_vslw;	 // "__builtin_altivec_vslw"
          }
          break;
        case 'r':	 // 4 strings to match.
          switch (BuiltinName[21]) {
          default: break;
          case 'b':	 // 1 string to match.
            return Intrinsic::ppc_altivec_vsrb;	 // "__builtin_altivec_vsrb"
          case 'h':	 // 1 string to match.
            return Intrinsic::ppc_altivec_vsrh;	 // "__builtin_altivec_vsrh"
          case 'o':	 // 1 string to match.
            return Intrinsic::ppc_altivec_vsro;	 // "__builtin_altivec_vsro"
          case 'w':	 // 1 string to match.
            return Intrinsic::ppc_altivec_vsrw;	 // "__builtin_altivec_vsrw"
          }
          break;
        }
        break;
      }
      break;
    }
    break;
  case 23:	 // 12 strings to match.
    if (memcmp(BuiltinName.data()+0, "__builtin_altivec_", 18))
      break;
    switch (BuiltinName[18]) {
    default: break;
    case 'd':	 // 1 string to match.
      if (memcmp(BuiltinName.data()+19, "stst", 4))
        break;
      return Intrinsic::ppc_altivec_dstst;	 // "__builtin_altivec_dstst"
    case 'v':	 // 11 strings to match.
      switch (BuiltinName[19]) {
      default: break;
      case 'c':	 // 2 strings to match.
        if (BuiltinName[20] != 'f')
          break;
        switch (BuiltinName[21]) {
        default: break;
        case 's':	 // 1 string to match.
          if (BuiltinName[22] != 'x')
            break;
          return Intrinsic::ppc_altivec_vcfsx;	 // "__builtin_altivec_vcfsx"
        case 'u':	 // 1 string to match.
          if (BuiltinName[22] != 'x')
            break;
          return Intrinsic::ppc_altivec_vcfux;	 // "__builtin_altivec_vcfux"
        }
        break;
      case 'p':	 // 1 string to match.
        if (memcmp(BuiltinName.data()+20, "kpx", 3))
          break;
        return Intrinsic::ppc_altivec_vpkpx;	 // "__builtin_altivec_vpkpx"
      case 'r':	 // 5 strings to match.
        switch (BuiltinName[20]) {
        default: break;
        case 'e':	 // 1 string to match.
          if (memcmp(BuiltinName.data()+21, "fp", 2))
            break;
          return Intrinsic::ppc_altivec_vrefp;	 // "__builtin_altivec_vrefp"
        case 'f':	 // 4 strings to match.
          if (BuiltinName[21] != 'i')
            break;
          switch (BuiltinName[22]) {
          default: break;
          case 'm':	 // 1 string to match.
            return Intrinsic::ppc_altivec_vrfim;	 // "__builtin_altivec_vrfim"
          case 'n':	 // 1 string to match.
            return Intrinsic::ppc_altivec_vrfin;	 // "__builtin_altivec_vrfin"
          case 'p':	 // 1 string to match.
            return Intrinsic::ppc_altivec_vrfip;	 // "__builtin_altivec_vrfip"
          case 'z':	 // 1 string to match.
            return Intrinsic::ppc_altivec_vrfiz;	 // "__builtin_altivec_vrfiz"
          }
          break;
        }
        break;
      case 's':	 // 3 strings to match.
        if (memcmp(BuiltinName.data()+20, "ra", 2))
          break;
        switch (BuiltinName[22]) {
        default: break;
        case 'b':	 // 1 string to match.
          return Intrinsic::ppc_altivec_vsrab;	 // "__builtin_altivec_vsrab"
        case 'h':	 // 1 string to match.
          return Intrinsic::ppc_altivec_vsrah;	 // "__builtin_altivec_vsrah"
        case 'w':	 // 1 string to match.
          return Intrinsic::ppc_altivec_vsraw;	 // "__builtin_altivec_vsraw"
        }
        break;
      }
      break;
    }
    break;
  case 24:	 // 26 strings to match.
    if (memcmp(BuiltinName.data()+0, "__builtin_altivec_", 18))
      break;
    switch (BuiltinName[18]) {
    default: break;
    case 'd':	 // 2 strings to match.
      if (BuiltinName[19] != 's')
        break;
      switch (BuiltinName[20]) {
      default: break;
      case 's':	 // 1 string to match.
        if (memcmp(BuiltinName.data()+21, "all", 3))
          break;
        return Intrinsic::ppc_altivec_dssall;	 // "__builtin_altivec_dssall"
      case 't':	 // 1 string to match.
        if (memcmp(BuiltinName.data()+21, "stt", 3))
          break;
        return Intrinsic::ppc_altivec_dststt;	 // "__builtin_altivec_dststt"
      }
      break;
    case 'm':	 // 2 strings to match.
      switch (BuiltinName[19]) {
      default: break;
      case 'f':	 // 1 string to match.
        if (memcmp(BuiltinName.data()+20, "vscr", 4))
          break;
        return Intrinsic::ppc_altivec_mfvscr;	 // "__builtin_altivec_mfvscr"
      case 't':	 // 1 string to match.
        if (memcmp(BuiltinName.data()+20, "vscr", 4))
          break;
        return Intrinsic::ppc_altivec_mtvscr;	 // "__builtin_altivec_mtvscr"
      }
      break;
    case 'v':	 // 22 strings to match.
      switch (BuiltinName[19]) {
      default: break;
      case 'a':	 // 6 strings to match.
        if (memcmp(BuiltinName.data()+20, "vg", 2))
          break;
        switch (BuiltinName[22]) {
        default: break;
        case 's':	 // 3 strings to match.
          switch (BuiltinName[23]) {
          default: break;
          case 'b':	 // 1 string to match.
            return Intrinsic::ppc_altivec_vavgsb;	 // "__builtin_altivec_vavgsb"
          case 'h':	 // 1 string to match.
            return Intrinsic::ppc_altivec_vavgsh;	 // "__builtin_altivec_vavgsh"
          case 'w':	 // 1 string to match.
            return Intrinsic::ppc_altivec_vavgsw;	 // "__builtin_altivec_vavgsw"
          }
          break;
        case 'u':	 // 3 strings to match.
          switch (BuiltinName[23]) {
          default: break;
          case 'b':	 // 1 string to match.
            return Intrinsic::ppc_altivec_vavgub;	 // "__builtin_altivec_vavgub"
          case 'h':	 // 1 string to match.
            return Intrinsic::ppc_altivec_vavguh;	 // "__builtin_altivec_vavguh"
          case 'w':	 // 1 string to match.
            return Intrinsic::ppc_altivec_vavguw;	 // "__builtin_altivec_vavguw"
          }
          break;
        }
        break;
      case 'c':	 // 2 strings to match.
        if (BuiltinName[20] != 't')
          break;
        switch (BuiltinName[21]) {
        default: break;
        case 's':	 // 1 string to match.
          if (memcmp(BuiltinName.data()+22, "xs", 2))
            break;
          return Intrinsic::ppc_altivec_vctsxs;	 // "__builtin_altivec_vctsxs"
        case 'u':	 // 1 string to match.
          if (memcmp(BuiltinName.data()+22, "xs", 2))
            break;
          return Intrinsic::ppc_altivec_vctuxs;	 // "__builtin_altivec_vctuxs"
        }
        break;
      case 'm':	 // 14 strings to match.
        switch (BuiltinName[20]) {
        default: break;
        case 'a':	 // 7 strings to match.
          if (BuiltinName[21] != 'x')
            break;
          switch (BuiltinName[22]) {
          default: break;
          case 'f':	 // 1 string to match.
            if (BuiltinName[23] != 'p')
              break;
            return Intrinsic::ppc_altivec_vmaxfp;	 // "__builtin_altivec_vmaxfp"
          case 's':	 // 3 strings to match.
            switch (BuiltinName[23]) {
            default: break;
            case 'b':	 // 1 string to match.
              return Intrinsic::ppc_altivec_vmaxsb;	 // "__builtin_altivec_vmaxsb"
            case 'h':	 // 1 string to match.
              return Intrinsic::ppc_altivec_vmaxsh;	 // "__builtin_altivec_vmaxsh"
            case 'w':	 // 1 string to match.
              return Intrinsic::ppc_altivec_vmaxsw;	 // "__builtin_altivec_vmaxsw"
            }
            break;
          case 'u':	 // 3 strings to match.
            switch (BuiltinName[23]) {
            default: break;
            case 'b':	 // 1 string to match.
              return Intrinsic::ppc_altivec_vmaxub;	 // "__builtin_altivec_vmaxub"
            case 'h':	 // 1 string to match.
              return Intrinsic::ppc_altivec_vmaxuh;	 // "__builtin_altivec_vmaxuh"
            case 'w':	 // 1 string to match.
              return Intrinsic::ppc_altivec_vmaxuw;	 // "__builtin_altivec_vmaxuw"
            }
            break;
          }
          break;
        case 'i':	 // 7 strings to match.
          if (BuiltinName[21] != 'n')
            break;
          switch (BuiltinName[22]) {
          default: break;
          case 'f':	 // 1 string to match.
            if (BuiltinName[23] != 'p')
              break;
            return Intrinsic::ppc_altivec_vminfp;	 // "__builtin_altivec_vminfp"
          case 's':	 // 3 strings to match.
            switch (BuiltinName[23]) {
            default: break;
            case 'b':	 // 1 string to match.
              return Intrinsic::ppc_altivec_vminsb;	 // "__builtin_altivec_vminsb"
            case 'h':	 // 1 string to match.
              return Intrinsic::ppc_altivec_vminsh;	 // "__builtin_altivec_vminsh"
            case 'w':	 // 1 string to match.
              return Intrinsic::ppc_altivec_vminsw;	 // "__builtin_altivec_vminsw"
            }
            break;
          case 'u':	 // 3 strings to match.
            switch (BuiltinName[23]) {
            default: break;
            case 'b':	 // 1 string to match.
              return Intrinsic::ppc_altivec_vminub;	 // "__builtin_altivec_vminub"
            case 'h':	 // 1 string to match.
              return Intrinsic::ppc_altivec_vminuh;	 // "__builtin_altivec_vminuh"
            case 'w':	 // 1 string to match.
              return Intrinsic::ppc_altivec_vminuw;	 // "__builtin_altivec_vminuw"
            }
            break;
          }
          break;
        }
        break;
      }
      break;
    }
    break;
  case 25:	 // 38 strings to match.
    if (memcmp(BuiltinName.data()+0, "__builtin_altivec_v", 19))
      break;
    switch (BuiltinName[19]) {
    default: break;
    case 'a':	 // 7 strings to match.
      if (memcmp(BuiltinName.data()+20, "dd", 2))
        break;
      switch (BuiltinName[22]) {
      default: break;
      case 'c':	 // 1 string to match.
        if (memcmp(BuiltinName.data()+23, "uw", 2))
          break;
        return Intrinsic::ppc_altivec_vaddcuw;	 // "__builtin_altivec_vaddcuw"
      case 's':	 // 3 strings to match.
        switch (BuiltinName[23]) {
        default: break;
        case 'b':	 // 1 string to match.
          if (BuiltinName[24] != 's')
            break;
          return Intrinsic::ppc_altivec_vaddsbs;	 // "__builtin_altivec_vaddsbs"
        case 'h':	 // 1 string to match.
          if (BuiltinName[24] != 's')
            break;
          return Intrinsic::ppc_altivec_vaddshs;	 // "__builtin_altivec_vaddshs"
        case 'w':	 // 1 string to match.
          if (BuiltinName[24] != 's')
            break;
          return Intrinsic::ppc_altivec_vaddsws;	 // "__builtin_altivec_vaddsws"
        }
        break;
      case 'u':	 // 3 strings to match.
        switch (BuiltinName[23]) {
        default: break;
        case 'b':	 // 1 string to match.
          if (BuiltinName[24] != 's')
            break;
          return Intrinsic::ppc_altivec_vaddubs;	 // "__builtin_altivec_vaddubs"
        case 'h':	 // 1 string to match.
          if (BuiltinName[24] != 's')
            break;
          return Intrinsic::ppc_altivec_vadduhs;	 // "__builtin_altivec_vadduhs"
        case 'w':	 // 1 string to match.
          if (BuiltinName[24] != 's')
            break;
          return Intrinsic::ppc_altivec_vadduws;	 // "__builtin_altivec_vadduws"
        }
        break;
      }
      break;
    case 'c':	 // 1 string to match.
      if (memcmp(BuiltinName.data()+20, "mpbfp", 5))
        break;
      return Intrinsic::ppc_altivec_vcmpbfp;	 // "__builtin_altivec_vcmpbfp"
    case 'l':	 // 1 string to match.
      if (memcmp(BuiltinName.data()+20, "ogefp", 5))
        break;
      return Intrinsic::ppc_altivec_vlogefp;	 // "__builtin_altivec_vlogefp"
    case 'm':	 // 9 strings to match.
      switch (BuiltinName[20]) {
      default: break;
      case 'a':	 // 1 string to match.
        if (memcmp(BuiltinName.data()+21, "ddfp", 4))
          break;
        return Intrinsic::ppc_altivec_vmaddfp;	 // "__builtin_altivec_vmaddfp"
      case 'u':	 // 8 strings to match.
        if (BuiltinName[21] != 'l')
          break;
        switch (BuiltinName[22]) {
        default: break;
        case 'e':	 // 4 strings to match.
          switch (BuiltinName[23]) {
          default: break;
          case 's':	 // 2 strings to match.
            switch (BuiltinName[24]) {
            default: break;
            case 'b':	 // 1 string to match.
              return Intrinsic::ppc_altivec_vmulesb;	 // "__builtin_altivec_vmulesb"
            case 'h':	 // 1 string to match.
              return Intrinsic::ppc_altivec_vmulesh;	 // "__builtin_altivec_vmulesh"
            }
            break;
          case 'u':	 // 2 strings to match.
            switch (BuiltinName[24]) {
            default: break;
            case 'b':	 // 1 string to match.
              return Intrinsic::ppc_altivec_vmuleub;	 // "__builtin_altivec_vmuleub"
            case 'h':	 // 1 string to match.
              return Intrinsic::ppc_altivec_vmuleuh;	 // "__builtin_altivec_vmuleuh"
            }
            break;
          }
          break;
        case 'o':	 // 4 strings to match.
          switch (BuiltinName[23]) {
          default: break;
          case 's':	 // 2 strings to match.
            switch (BuiltinName[24]) {
            default: break;
            case 'b':	 // 1 string to match.
              return Intrinsic::ppc_altivec_vmulosb;	 // "__builtin_altivec_vmulosb"
            case 'h':	 // 1 string to match.
              return Intrinsic::ppc_altivec_vmulosh;	 // "__builtin_altivec_vmulosh"
            }
            break;
          case 'u':	 // 2 strings to match.
            switch (BuiltinName[24]) {
            default: break;
            case 'b':	 // 1 string to match.
              return Intrinsic::ppc_altivec_vmuloub;	 // "__builtin_altivec_vmuloub"
            case 'h':	 // 1 string to match.
              return Intrinsic::ppc_altivec_vmulouh;	 // "__builtin_altivec_vmulouh"
            }
            break;
          }
          break;
        }
        break;
      }
      break;
    case 'p':	 // 6 strings to match.
      if (BuiltinName[20] != 'k')
        break;
      switch (BuiltinName[21]) {
      default: break;
      case 's':	 // 4 strings to match.
        switch (BuiltinName[22]) {
        default: break;
        case 'h':	 // 2 strings to match.
          switch (BuiltinName[23]) {
          default: break;
          case 's':	 // 1 string to match.
            if (BuiltinName[24] != 's')
              break;
            return Intrinsic::ppc_altivec_vpkshss;	 // "__builtin_altivec_vpkshss"
          case 'u':	 // 1 string to match.
            if (BuiltinName[24] != 's')
              break;
            return Intrinsic::ppc_altivec_vpkshus;	 // "__builtin_altivec_vpkshus"
          }
          break;
        case 'w':	 // 2 strings to match.
          switch (BuiltinName[23]) {
          default: break;
          case 's':	 // 1 string to match.
            if (BuiltinName[24] != 's')
              break;
            return Intrinsic::ppc_altivec_vpkswss;	 // "__builtin_altivec_vpkswss"
          case 'u':	 // 1 string to match.
            if (BuiltinName[24] != 's')
              break;
            return Intrinsic::ppc_altivec_vpkswus;	 // "__builtin_altivec_vpkswus"
          }
          break;
        }
        break;
      case 'u':	 // 2 strings to match.
        switch (BuiltinName[22]) {
        default: break;
        case 'h':	 // 1 string to match.
          if (memcmp(BuiltinName.data()+23, "us", 2))
            break;
          return Intrinsic::ppc_altivec_vpkuhus;	 // "__builtin_altivec_vpkuhus"
        case 'w':	 // 1 string to match.
          if (memcmp(BuiltinName.data()+23, "us", 2))
            break;
          return Intrinsic::ppc_altivec_vpkuwus;	 // "__builtin_altivec_vpkuwus"
        }
        break;
      }
      break;
    case 's':	 // 8 strings to match.
      if (BuiltinName[20] != 'u')
        break;
      switch (BuiltinName[21]) {
      default: break;
      case 'b':	 // 7 strings to match.
        switch (BuiltinName[22]) {
        default: break;
        case 'c':	 // 1 string to match.
          if (memcmp(BuiltinName.data()+23, "uw", 2))
            break;
          return Intrinsic::ppc_altivec_vsubcuw;	 // "__builtin_altivec_vsubcuw"
        case 's':	 // 3 strings to match.
          switch (BuiltinName[23]) {
          default: break;
          case 'b':	 // 1 string to match.
            if (BuiltinName[24] != 's')
              break;
            return Intrinsic::ppc_altivec_vsubsbs;	 // "__builtin_altivec_vsubsbs"
          case 'h':	 // 1 string to match.
            if (BuiltinName[24] != 's')
              break;
            return Intrinsic::ppc_altivec_vsubshs;	 // "__builtin_altivec_vsubshs"
          case 'w':	 // 1 string to match.
            if (BuiltinName[24] != 's')
              break;
            return Intrinsic::ppc_altivec_vsubsws;	 // "__builtin_altivec_vsubsws"
          }
          break;
        case 'u':	 // 3 strings to match.
          switch (BuiltinName[23]) {
          default: break;
          case 'b':	 // 1 string to match.
            if (BuiltinName[24] != 's')
              break;
            return Intrinsic::ppc_altivec_vsububs;	 // "__builtin_altivec_vsububs"
          case 'h':	 // 1 string to match.
            if (BuiltinName[24] != 's')
              break;
            return Intrinsic::ppc_altivec_vsubuhs;	 // "__builtin_altivec_vsubuhs"
          case 'w':	 // 1 string to match.
            if (BuiltinName[24] != 's')
              break;
            return Intrinsic::ppc_altivec_vsubuws;	 // "__builtin_altivec_vsubuws"
          }
          break;
        }
        break;
      case 'm':	 // 1 string to match.
        if (memcmp(BuiltinName.data()+22, "sws", 3))
          break;
        return Intrinsic::ppc_altivec_vsumsws;	 // "__builtin_altivec_vsumsws"
      }
      break;
    case 'u':	 // 6 strings to match.
      if (memcmp(BuiltinName.data()+20, "pk", 2))
        break;
      switch (BuiltinName[22]) {
      default: break;
      case 'h':	 // 3 strings to match.
        switch (BuiltinName[23]) {
        default: break;
        case 'p':	 // 1 string to match.
          if (BuiltinName[24] != 'x')
            break;
          return Intrinsic::ppc_altivec_vupkhpx;	 // "__builtin_altivec_vupkhpx"
        case 's':	 // 2 strings to match.
          switch (BuiltinName[24]) {
          default: break;
          case 'b':	 // 1 string to match.
            return Intrinsic::ppc_altivec_vupkhsb;	 // "__builtin_altivec_vupkhsb"
          case 'h':	 // 1 string to match.
            return Intrinsic::ppc_altivec_vupkhsh;	 // "__builtin_altivec_vupkhsh"
          }
          break;
        }
        break;
      case 'l':	 // 3 strings to match.
        switch (BuiltinName[23]) {
        default: break;
        case 'p':	 // 1 string to match.
          if (BuiltinName[24] != 'x')
            break;
          return Intrinsic::ppc_altivec_vupklpx;	 // "__builtin_altivec_vupklpx"
        case 's':	 // 2 strings to match.
          switch (BuiltinName[24]) {
          default: break;
          case 'b':	 // 1 string to match.
            return Intrinsic::ppc_altivec_vupklsb;	 // "__builtin_altivec_vupklsb"
          case 'h':	 // 1 string to match.
            return Intrinsic::ppc_altivec_vupklsh;	 // "__builtin_altivec_vupklsh"
          }
          break;
        }
        break;
      }
      break;
    }
    break;
  case 26:	 // 25 strings to match.
    if (memcmp(BuiltinName.data()+0, "__builtin_altivec_v", 19))
      break;
    switch (BuiltinName[19]) {
    default: break;
    case 'c':	 // 12 strings to match.
      if (memcmp(BuiltinName.data()+20, "mp", 2))
        break;
      switch (BuiltinName[22]) {
      default: break;
      case 'e':	 // 4 strings to match.
        if (BuiltinName[23] != 'q')
          break;
        switch (BuiltinName[24]) {
        default: break;
        case 'f':	 // 1 string to match.
          if (BuiltinName[25] != 'p')
            break;
          return Intrinsic::ppc_altivec_vcmpeqfp;	 // "__builtin_altivec_vcmpeqfp"
        case 'u':	 // 3 strings to match.
          switch (BuiltinName[25]) {
          default: break;
          case 'b':	 // 1 string to match.
            return Intrinsic::ppc_altivec_vcmpequb;	 // "__builtin_altivec_vcmpequb"
          case 'h':	 // 1 string to match.
            return Intrinsic::ppc_altivec_vcmpequh;	 // "__builtin_altivec_vcmpequh"
          case 'w':	 // 1 string to match.
            return Intrinsic::ppc_altivec_vcmpequw;	 // "__builtin_altivec_vcmpequw"
          }
          break;
        }
        break;
      case 'g':	 // 8 strings to match.
        switch (BuiltinName[23]) {
        default: break;
        case 'e':	 // 1 string to match.
          if (memcmp(BuiltinName.data()+24, "fp", 2))
            break;
          return Intrinsic::ppc_altivec_vcmpgefp;	 // "__builtin_altivec_vcmpgefp"
        case 't':	 // 7 strings to match.
          switch (BuiltinName[24]) {
          default: break;
          case 'f':	 // 1 string to match.
            if (BuiltinName[25] != 'p')
              break;
            return Intrinsic::ppc_altivec_vcmpgtfp;	 // "__builtin_altivec_vcmpgtfp"
          case 's':	 // 3 strings to match.
            switch (BuiltinName[25]) {
            default: break;
            case 'b':	 // 1 string to match.
              return Intrinsic::ppc_altivec_vcmpgtsb;	 // "__builtin_altivec_vcmpgtsb"
            case 'h':	 // 1 string to match.
              return Intrinsic::ppc_altivec_vcmpgtsh;	 // "__builtin_altivec_vcmpgtsh"
            case 'w':	 // 1 string to match.
              return Intrinsic::ppc_altivec_vcmpgtsw;	 // "__builtin_altivec_vcmpgtsw"
            }
            break;
          case 'u':	 // 3 strings to match.
            switch (BuiltinName[25]) {
            default: break;
            case 'b':	 // 1 string to match.
              return Intrinsic::ppc_altivec_vcmpgtub;	 // "__builtin_altivec_vcmpgtub"
            case 'h':	 // 1 string to match.
              return Intrinsic::ppc_altivec_vcmpgtuh;	 // "__builtin_altivec_vcmpgtuh"
            case 'w':	 // 1 string to match.
              return Intrinsic::ppc_altivec_vcmpgtuw;	 // "__builtin_altivec_vcmpgtuw"
            }
            break;
          }
          break;
        }
        break;
      }
      break;
    case 'e':	 // 1 string to match.
      if (memcmp(BuiltinName.data()+20, "xptefp", 6))
        break;
      return Intrinsic::ppc_altivec_vexptefp;	 // "__builtin_altivec_vexptefp"
    case 'm':	 // 6 strings to match.
      if (memcmp(BuiltinName.data()+20, "sum", 3))
        break;
      switch (BuiltinName[23]) {
      default: break;
      case 'm':	 // 1 string to match.
        if (memcmp(BuiltinName.data()+24, "bm", 2))
          break;
        return Intrinsic::ppc_altivec_vmsummbm;	 // "__builtin_altivec_vmsummbm"
      case 's':	 // 2 strings to match.
        if (BuiltinName[24] != 'h')
          break;
        switch (BuiltinName[25]) {
        default: break;
        case 'm':	 // 1 string to match.
          return Intrinsic::ppc_altivec_vmsumshm;	 // "__builtin_altivec_vmsumshm"
        case 's':	 // 1 string to match.
          return Intrinsic::ppc_altivec_vmsumshs;	 // "__builtin_altivec_vmsumshs"
        }
        break;
      case 'u':	 // 3 strings to match.
        switch (BuiltinName[24]) {
        default: break;
        case 'b':	 // 1 string to match.
          if (BuiltinName[25] != 'm')
            break;
          return Intrinsic::ppc_altivec_vmsumubm;	 // "__builtin_altivec_vmsumubm"
        case 'h':	 // 2 strings to match.
          switch (BuiltinName[25]) {
          default: break;
          case 'm':	 // 1 string to match.
            return Intrinsic::ppc_altivec_vmsumuhm;	 // "__builtin_altivec_vmsumuhm"
          case 's':	 // 1 string to match.
            return Intrinsic::ppc_altivec_vmsumuhs;	 // "__builtin_altivec_vmsumuhs"
          }
          break;
        }
        break;
      }
      break;
    case 'n':	 // 1 string to match.
      if (memcmp(BuiltinName.data()+20, "msubfp", 6))
        break;
      return Intrinsic::ppc_altivec_vnmsubfp;	 // "__builtin_altivec_vnmsubfp"
    case 's':	 // 5 strings to match.
      switch (BuiltinName[20]) {
      default: break;
      case 'e':	 // 1 string to match.
        if (memcmp(BuiltinName.data()+21, "l_4si", 5))
          break;
        return Intrinsic::ppc_altivec_vsel;	 // "__builtin_altivec_vsel_4si"
      case 'u':	 // 4 strings to match.
        if (BuiltinName[21] != 'm')
          break;
        switch (BuiltinName[22]) {
        default: break;
        case '2':	 // 1 string to match.
          if (memcmp(BuiltinName.data()+23, "sws", 3))
            break;
          return Intrinsic::ppc_altivec_vsum2sws;	 // "__builtin_altivec_vsum2sws"
        case '4':	 // 3 strings to match.
          switch (BuiltinName[23]) {
          default: break;
          case 's':	 // 2 strings to match.
            switch (BuiltinName[24]) {
            default: break;
            case 'b':	 // 1 string to match.
              if (BuiltinName[25] != 's')
                break;
              return Intrinsic::ppc_altivec_vsum4sbs;	 // "__builtin_altivec_vsum4sbs"
            case 'h':	 // 1 string to match.
              if (BuiltinName[25] != 's')
                break;
              return Intrinsic::ppc_altivec_vsum4shs;	 // "__builtin_altivec_vsum4shs"
            }
            break;
          case 'u':	 // 1 string to match.
            if (memcmp(BuiltinName.data()+24, "bs", 2))
              break;
            return Intrinsic::ppc_altivec_vsum4ubs;	 // "__builtin_altivec_vsum4ubs"
          }
          break;
        }
        break;
      }
      break;
    }
    break;
  case 27:	 // 5 strings to match.
    if (memcmp(BuiltinName.data()+0, "__builtin_altivec_v", 19))
      break;
    switch (BuiltinName[19]) {
    default: break;
    case 'c':	 // 1 string to match.
      if (memcmp(BuiltinName.data()+20, "mpbfp_p", 7))
        break;
      return Intrinsic::ppc_altivec_vcmpbfp_p;	 // "__builtin_altivec_vcmpbfp_p"
    case 'm':	 // 2 strings to match.
      switch (BuiltinName[20]) {
      default: break;
      case 'h':	 // 1 string to match.
        if (memcmp(BuiltinName.data()+21, "addshs", 6))
          break;
        return Intrinsic::ppc_altivec_vmhaddshs;	 // "__builtin_altivec_vmhaddshs"
      case 'l':	 // 1 string to match.
        if (memcmp(BuiltinName.data()+21, "adduhm", 6))
          break;
        return Intrinsic::ppc_altivec_vmladduhm;	 // "__builtin_altivec_vmladduhm"
      }
      break;
    case 'p':	 // 1 string to match.
      if (memcmp(BuiltinName.data()+20, "erm_4si", 7))
        break;
      return Intrinsic::ppc_altivec_vperm;	 // "__builtin_altivec_vperm_4si"
    case 'r':	 // 1 string to match.
      if (memcmp(BuiltinName.data()+20, "sqrtefp", 7))
        break;
      return Intrinsic::ppc_altivec_vrsqrtefp;	 // "__builtin_altivec_vrsqrtefp"
    }
    break;
  case 28:	 // 13 strings to match.
    if (memcmp(BuiltinName.data()+0, "__builtin_altivec_v", 19))
      break;
    switch (BuiltinName[19]) {
    default: break;
    case 'c':	 // 12 strings to match.
      if (memcmp(BuiltinName.data()+20, "mp", 2))
        break;
      switch (BuiltinName[22]) {
      default: break;
      case 'e':	 // 4 strings to match.
        if (BuiltinName[23] != 'q')
          break;
        switch (BuiltinName[24]) {
        default: break;
        case 'f':	 // 1 string to match.
          if (memcmp(BuiltinName.data()+25, "p_p", 3))
            break;
          return Intrinsic::ppc_altivec_vcmpeqfp_p;	 // "__builtin_altivec_vcmpeqfp_p"
        case 'u':	 // 3 strings to match.
          switch (BuiltinName[25]) {
          default: break;
          case 'b':	 // 1 string to match.
            if (memcmp(BuiltinName.data()+26, "_p", 2))
              break;
            return Intrinsic::ppc_altivec_vcmpequb_p;	 // "__builtin_altivec_vcmpequb_p"
          case 'h':	 // 1 string to match.
            if (memcmp(BuiltinName.data()+26, "_p", 2))
              break;
            return Intrinsic::ppc_altivec_vcmpequh_p;	 // "__builtin_altivec_vcmpequh_p"
          case 'w':	 // 1 string to match.
            if (memcmp(BuiltinName.data()+26, "_p", 2))
              break;
            return Intrinsic::ppc_altivec_vcmpequw_p;	 // "__builtin_altivec_vcmpequw_p"
          }
          break;
        }
        break;
      case 'g':	 // 8 strings to match.
        switch (BuiltinName[23]) {
        default: break;
        case 'e':	 // 1 string to match.
          if (memcmp(BuiltinName.data()+24, "fp_p", 4))
            break;
          return Intrinsic::ppc_altivec_vcmpgefp_p;	 // "__builtin_altivec_vcmpgefp_p"
        case 't':	 // 7 strings to match.
          switch (BuiltinName[24]) {
          default: break;
          case 'f':	 // 1 string to match.
            if (memcmp(BuiltinName.data()+25, "p_p", 3))
              break;
            return Intrinsic::ppc_altivec_vcmpgtfp_p;	 // "__builtin_altivec_vcmpgtfp_p"
          case 's':	 // 3 strings to match.
            switch (BuiltinName[25]) {
            default: break;
            case 'b':	 // 1 string to match.
              if (memcmp(BuiltinName.data()+26, "_p", 2))
                break;
              return Intrinsic::ppc_altivec_vcmpgtsb_p;	 // "__builtin_altivec_vcmpgtsb_p"
            case 'h':	 // 1 string to match.
              if (memcmp(BuiltinName.data()+26, "_p", 2))
                break;
              return Intrinsic::ppc_altivec_vcmpgtsh_p;	 // "__builtin_altivec_vcmpgtsh_p"
            case 'w':	 // 1 string to match.
              if (memcmp(BuiltinName.data()+26, "_p", 2))
                break;
              return Intrinsic::ppc_altivec_vcmpgtsw_p;	 // "__builtin_altivec_vcmpgtsw_p"
            }
            break;
          case 'u':	 // 3 strings to match.
            switch (BuiltinName[25]) {
            default: break;
            case 'b':	 // 1 string to match.
              if (memcmp(BuiltinName.data()+26, "_p", 2))
                break;
              return Intrinsic::ppc_altivec_vcmpgtub_p;	 // "__builtin_altivec_vcmpgtub_p"
            case 'h':	 // 1 string to match.
              if (memcmp(BuiltinName.data()+26, "_p", 2))
                break;
              return Intrinsic::ppc_altivec_vcmpgtuh_p;	 // "__builtin_altivec_vcmpgtuh_p"
            case 'w':	 // 1 string to match.
              if (memcmp(BuiltinName.data()+26, "_p", 2))
                break;
              return Intrinsic::ppc_altivec_vcmpgtuw_p;	 // "__builtin_altivec_vcmpgtuw_p"
            }
            break;
          }
          break;
        }
        break;
      }
      break;
    case 'm':	 // 1 string to match.
      if (memcmp(BuiltinName.data()+20, "hraddshs", 8))
        break;
      return Intrinsic::ppc_altivec_vmhraddshs;	 // "__builtin_altivec_vmhraddshs"
    }
    break;
  }
  }
  if (TargetPrefix == "spu") {
  switch (BuiltinName.size()) {
  default: break;
  case 14:	 // 1 string to match.
    if (memcmp(BuiltinName.data()+0, "__builtin_si_a", 14))
      break;
    return Intrinsic::spu_si_a;	 // "__builtin_si_a"
  case 15:	 // 9 strings to match.
    if (memcmp(BuiltinName.data()+0, "__builtin_si_", 13))
      break;
    switch (BuiltinName[13]) {
    default: break;
    case 'a':	 // 2 strings to match.
      switch (BuiltinName[14]) {
      default: break;
      case 'h':	 // 1 string to match.
        return Intrinsic::spu_si_ah;	 // "__builtin_si_ah"
      case 'i':	 // 1 string to match.
        return Intrinsic::spu_si_ai;	 // "__builtin_si_ai"
      }
      break;
    case 'b':	 // 1 string to match.
      if (BuiltinName[14] != 'g')
        break;
      return Intrinsic::spu_si_bg;	 // "__builtin_si_bg"
    case 'c':	 // 1 string to match.
      if (BuiltinName[14] != 'g')
        break;
      return Intrinsic::spu_si_cg;	 // "__builtin_si_cg"
    case 'f':	 // 3 strings to match.
      switch (BuiltinName[14]) {
      default: break;
      case 'a':	 // 1 string to match.
        return Intrinsic::spu_si_fa;	 // "__builtin_si_fa"
      case 'm':	 // 1 string to match.
        return Intrinsic::spu_si_fm;	 // "__builtin_si_fm"
      case 's':	 // 1 string to match.
        return Intrinsic::spu_si_fs;	 // "__builtin_si_fs"
      }
      break;
    case 'o':	 // 1 string to match.
      if (BuiltinName[14] != 'r')
        break;
      return Intrinsic::spu_si_or;	 // "__builtin_si_or"
    case 's':	 // 1 string to match.
      if (BuiltinName[14] != 'f')
        break;
      return Intrinsic::spu_si_sf;	 // "__builtin_si_sf"
    }
    break;
  case 16:	 // 19 strings to match.
    if (memcmp(BuiltinName.data()+0, "__builtin_si_", 13))
      break;
    switch (BuiltinName[13]) {
    default: break;
    case 'a':	 // 2 strings to match.
      switch (BuiltinName[14]) {
      default: break;
      case 'h':	 // 1 string to match.
        if (BuiltinName[15] != 'i')
          break;
        return Intrinsic::spu_si_ahi;	 // "__builtin_si_ahi"
      case 'n':	 // 1 string to match.
        if (BuiltinName[15] != 'd')
          break;
        return Intrinsic::spu_si_and;	 // "__builtin_si_and"
      }
      break;
    case 'b':	 // 1 string to match.
      if (memcmp(BuiltinName.data()+14, "gx", 2))
        break;
      return Intrinsic::spu_si_bgx;	 // "__builtin_si_bgx"
    case 'c':	 // 3 strings to match.
      switch (BuiltinName[14]) {
      default: break;
      case 'e':	 // 1 string to match.
        if (BuiltinName[15] != 'q')
          break;
        return Intrinsic::spu_si_ceq;	 // "__builtin_si_ceq"
      case 'g':	 // 2 strings to match.
        switch (BuiltinName[15]) {
        default: break;
        case 't':	 // 1 string to match.
          return Intrinsic::spu_si_cgt;	 // "__builtin_si_cgt"
        case 'x':	 // 1 string to match.
          return Intrinsic::spu_si_cgx;	 // "__builtin_si_cgx"
        }
        break;
      }
      break;
    case 'd':	 // 3 strings to match.
      if (BuiltinName[14] != 'f')
        break;
      switch (BuiltinName[15]) {
      default: break;
      case 'a':	 // 1 string to match.
        return Intrinsic::spu_si_dfa;	 // "__builtin_si_dfa"
      case 'm':	 // 1 string to match.
        return Intrinsic::spu_si_dfm;	 // "__builtin_si_dfm"
      case 's':	 // 1 string to match.
        return Intrinsic::spu_si_dfs;	 // "__builtin_si_dfs"
      }
      break;
    case 'f':	 // 2 strings to match.
      if (BuiltinName[14] != 'm')
        break;
      switch (BuiltinName[15]) {
      default: break;
      case 'a':	 // 1 string to match.
        return Intrinsic::spu_si_fma;	 // "__builtin_si_fma"
      case 's':	 // 1 string to match.
        return Intrinsic::spu_si_fms;	 // "__builtin_si_fms"
      }
      break;
    case 'm':	 // 1 string to match.
      if (memcmp(BuiltinName.data()+14, "py", 2))
        break;
      return Intrinsic::spu_si_mpy;	 // "__builtin_si_mpy"
    case 'n':	 // 1 string to match.
      if (memcmp(BuiltinName.data()+14, "or", 2))
        break;
      return Intrinsic::spu_si_nor;	 // "__builtin_si_nor"
    case 'o':	 // 2 strings to match.
      if (BuiltinName[14] != 'r')
        break;
      switch (BuiltinName[15]) {
      default: break;
      case 'c':	 // 1 string to match.
        return Intrinsic::spu_si_orc;	 // "__builtin_si_orc"
      case 'i':	 // 1 string to match.
        return Intrinsic::spu_si_ori;	 // "__builtin_si_ori"
      }
      break;
    case 's':	 // 3 strings to match.
      if (BuiltinName[14] != 'f')
        break;
      switch (BuiltinName[15]) {
      default: break;
      case 'h':	 // 1 string to match.
        return Intrinsic::spu_si_sfh;	 // "__builtin_si_sfh"
      case 'i':	 // 1 string to match.
        return Intrinsic::spu_si_sfi;	 // "__builtin_si_sfi"
      case 'x':	 // 1 string to match.
        return Intrinsic::spu_si_sfx;	 // "__builtin_si_sfx"
      }
      break;
    case 'x':	 // 1 string to match.
      if (memcmp(BuiltinName.data()+14, "or", 2))
        break;
      return Intrinsic::spu_si_xor;	 // "__builtin_si_xor"
    }
    break;
  case 17:	 // 26 strings to match.
    if (memcmp(BuiltinName.data()+0, "__builtin_si_", 13))
      break;
    switch (BuiltinName[13]) {
    default: break;
    case 'a':	 // 3 strings to match.
      switch (BuiltinName[14]) {
      default: break;
      case 'd':	 // 1 string to match.
        if (memcmp(BuiltinName.data()+15, "dx", 2))
          break;
        return Intrinsic::spu_si_addx;	 // "__builtin_si_addx"
      case 'n':	 // 2 strings to match.
        if (BuiltinName[15] != 'd')
          break;
        switch (BuiltinName[16]) {
        default: break;
        case 'c':	 // 1 string to match.
          return Intrinsic::spu_si_andc;	 // "__builtin_si_andc"
        case 'i':	 // 1 string to match.
          return Intrinsic::spu_si_andi;	 // "__builtin_si_andi"
        }
        break;
      }
      break;
    case 'c':	 // 7 strings to match.
      switch (BuiltinName[14]) {
      default: break;
      case 'e':	 // 3 strings to match.
        if (BuiltinName[15] != 'q')
          break;
        switch (BuiltinName[16]) {
        default: break;
        case 'b':	 // 1 string to match.
          return Intrinsic::spu_si_ceqb;	 // "__builtin_si_ceqb"
        case 'h':	 // 1 string to match.
          return Intrinsic::spu_si_ceqh;	 // "__builtin_si_ceqh"
        case 'i':	 // 1 string to match.
          return Intrinsic::spu_si_ceqi;	 // "__builtin_si_ceqi"
        }
        break;
      case 'g':	 // 3 strings to match.
        if (BuiltinName[15] != 't')
          break;
        switch (BuiltinName[16]) {
        default: break;
        case 'b':	 // 1 string to match.
          return Intrinsic::spu_si_cgtb;	 // "__builtin_si_cgtb"
        case 'h':	 // 1 string to match.
          return Intrinsic::spu_si_cgth;	 // "__builtin_si_cgth"
        case 'i':	 // 1 string to match.
          return Intrinsic::spu_si_cgti;	 // "__builtin_si_cgti"
        }
        break;
      case 'l':	 // 1 string to match.
        if (memcmp(BuiltinName.data()+15, "gt", 2))
          break;
        return Intrinsic::spu_si_clgt;	 // "__builtin_si_clgt"
      }
      break;
    case 'd':	 // 2 strings to match.
      if (memcmp(BuiltinName.data()+14, "fm", 2))
        break;
      switch (BuiltinName[16]) {
      default: break;
      case 'a':	 // 1 string to match.
        return Intrinsic::spu_si_dfma;	 // "__builtin_si_dfma"
      case 's':	 // 1 string to match.
        return Intrinsic::spu_si_dfms;	 // "__builtin_si_dfms"
      }
      break;
    case 'f':	 // 3 strings to match.
      switch (BuiltinName[14]) {
      default: break;
      case 'c':	 // 2 strings to match.
        switch (BuiltinName[15]) {
        default: break;
        case 'e':	 // 1 string to match.
          if (BuiltinName[16] != 'q')
            break;
          return Intrinsic::spu_si_fceq;	 // "__builtin_si_fceq"
        case 'g':	 // 1 string to match.
          if (BuiltinName[16] != 't')
            break;
          return Intrinsic::spu_si_fcgt;	 // "__builtin_si_fcgt"
        }
        break;
      case 'n':	 // 1 string to match.
        if (memcmp(BuiltinName.data()+15, "ms", 2))
          break;
        return Intrinsic::spu_si_fnms;	 // "__builtin_si_fnms"
      }
      break;
    case 'm':	 // 5 strings to match.
      if (memcmp(BuiltinName.data()+14, "py", 2))
        break;
      switch (BuiltinName[16]) {
      default: break;
      case 'a':	 // 1 string to match.
        return Intrinsic::spu_si_mpya;	 // "__builtin_si_mpya"
      case 'h':	 // 1 string to match.
        return Intrinsic::spu_si_mpyh;	 // "__builtin_si_mpyh"
      case 'i':	 // 1 string to match.
        return Intrinsic::spu_si_mpyi;	 // "__builtin_si_mpyi"
      case 's':	 // 1 string to match.
        return Intrinsic::spu_si_mpys;	 // "__builtin_si_mpys"
      case 'u':	 // 1 string to match.
        return Intrinsic::spu_si_mpyu;	 // "__builtin_si_mpyu"
      }
      break;
    case 'n':	 // 1 string to match.
      if (memcmp(BuiltinName.data()+14, "and", 3))
        break;
      return Intrinsic::spu_si_nand;	 // "__builtin_si_nand"
    case 'o':	 // 2 strings to match.
      if (BuiltinName[14] != 'r')
        break;
      switch (BuiltinName[15]) {
      default: break;
      case 'b':	 // 1 string to match.
        if (BuiltinName[16] != 'i')
          break;
        return Intrinsic::spu_si_orbi;	 // "__builtin_si_orbi"
      case 'h':	 // 1 string to match.
        if (BuiltinName[16] != 'i')
          break;
        return Intrinsic::spu_si_orhi;	 // "__builtin_si_orhi"
      }
      break;
    case 's':	 // 2 strings to match.
      switch (BuiltinName[14]) {
      default: break;
      case 'f':	 // 1 string to match.
        if (memcmp(BuiltinName.data()+15, "hi", 2))
          break;
        return Intrinsic::spu_si_sfhi;	 // "__builtin_si_sfhi"
      case 'h':	 // 1 string to match.
        if (memcmp(BuiltinName.data()+15, "li", 2))
          break;
        return Intrinsic::spu_si_shli;	 // "__builtin_si_shli"
      }
      break;
    case 'x':	 // 1 string to match.
      if (memcmp(BuiltinName.data()+14, "ori", 3))
        break;
      return Intrinsic::spu_si_xori;	 // "__builtin_si_xori"
    }
    break;
  case 18:	 // 18 strings to match.
    if (memcmp(BuiltinName.data()+0, "__builtin_si_", 13))
      break;
    switch (BuiltinName[13]) {
    default: break;
    case 'a':	 // 2 strings to match.
      if (memcmp(BuiltinName.data()+14, "nd", 2))
        break;
      switch (BuiltinName[16]) {
      default: break;
      case 'b':	 // 1 string to match.
        if (BuiltinName[17] != 'i')
          break;
        return Intrinsic::spu_si_andbi;	 // "__builtin_si_andbi"
      case 'h':	 // 1 string to match.
        if (BuiltinName[17] != 'i')
          break;
        return Intrinsic::spu_si_andhi;	 // "__builtin_si_andhi"
      }
      break;
    case 'c':	 // 7 strings to match.
      switch (BuiltinName[14]) {
      default: break;
      case 'e':	 // 2 strings to match.
        if (BuiltinName[15] != 'q')
          break;
        switch (BuiltinName[16]) {
        default: break;
        case 'b':	 // 1 string to match.
          if (BuiltinName[17] != 'i')
            break;
          return Intrinsic::spu_si_ceqbi;	 // "__builtin_si_ceqbi"
        case 'h':	 // 1 string to match.
          if (BuiltinName[17] != 'i')
            break;
          return Intrinsic::spu_si_ceqhi;	 // "__builtin_si_ceqhi"
        }
        break;
      case 'g':	 // 2 strings to match.
        if (BuiltinName[15] != 't')
          break;
        switch (BuiltinName[16]) {
        default: break;
        case 'b':	 // 1 string to match.
          if (BuiltinName[17] != 'i')
            break;
          return Intrinsic::spu_si_cgtbi;	 // "__builtin_si_cgtbi"
        case 'h':	 // 1 string to match.
          if (BuiltinName[17] != 'i')
            break;
          return Intrinsic::spu_si_cgthi;	 // "__builtin_si_cgthi"
        }
        break;
      case 'l':	 // 3 strings to match.
        if (memcmp(BuiltinName.data()+15, "gt", 2))
          break;
        switch (BuiltinName[17]) {
        default: break;
        case 'b':	 // 1 string to match.
          return Intrinsic::spu_si_clgtb;	 // "__builtin_si_clgtb"
        case 'h':	 // 1 string to match.
          return Intrinsic::spu_si_clgth;	 // "__builtin_si_clgth"
        case 'i':	 // 1 string to match.
          return Intrinsic::spu_si_clgti;	 // "__builtin_si_clgti"
        }
        break;
      }
      break;
    case 'd':	 // 2 strings to match.
      if (memcmp(BuiltinName.data()+14, "fnm", 3))
        break;
      switch (BuiltinName[17]) {
      default: break;
      case 'a':	 // 1 string to match.
        return Intrinsic::spu_si_dfnma;	 // "__builtin_si_dfnma"
      case 's':	 // 1 string to match.
        return Intrinsic::spu_si_dfnms;	 // "__builtin_si_dfnms"
      }
      break;
    case 'f':	 // 3 strings to match.
      switch (BuiltinName[14]) {
      default: break;
      case 'c':	 // 2 strings to match.
        if (BuiltinName[15] != 'm')
          break;
        switch (BuiltinName[16]) {
        default: break;
        case 'e':	 // 1 string to match.
          if (BuiltinName[17] != 'q')
            break;
          return Intrinsic::spu_si_fcmeq;	 // "__builtin_si_fcmeq"
        case 'g':	 // 1 string to match.
          if (BuiltinName[17] != 't')
            break;
          return Intrinsic::spu_si_fcmgt;	 // "__builtin_si_fcmgt"
        }
        break;
      case 's':	 // 1 string to match.
        if (memcmp(BuiltinName.data()+15, "mbi", 3))
          break;
        return Intrinsic::spu_si_fsmbi;	 // "__builtin_si_fsmbi"
      }
      break;
    case 'm':	 // 2 strings to match.
      if (memcmp(BuiltinName.data()+14, "py", 2))
        break;
      switch (BuiltinName[16]) {
      default: break;
      case 'h':	 // 1 string to match.
        if (BuiltinName[17] != 'h')
          break;
        return Intrinsic::spu_si_mpyhh;	 // "__builtin_si_mpyhh"
      case 'u':	 // 1 string to match.
        if (BuiltinName[17] != 'i')
          break;
        return Intrinsic::spu_si_mpyui;	 // "__builtin_si_mpyui"
      }
      break;
    case 'x':	 // 2 strings to match.
      if (memcmp(BuiltinName.data()+14, "or", 2))
        break;
      switch (BuiltinName[16]) {
      default: break;
      case 'b':	 // 1 string to match.
        if (BuiltinName[17] != 'i')
          break;
        return Intrinsic::spu_si_xorbi;	 // "__builtin_si_xorbi"
      case 'h':	 // 1 string to match.
        if (BuiltinName[17] != 'i')
          break;
        return Intrinsic::spu_si_xorhi;	 // "__builtin_si_xorhi"
      }
      break;
    }
    break;
  case 19:	 // 6 strings to match.
    if (memcmp(BuiltinName.data()+0, "__builtin_si_", 13))
      break;
    switch (BuiltinName[13]) {
    default: break;
    case 'c':	 // 2 strings to match.
      if (memcmp(BuiltinName.data()+14, "lgt", 3))
        break;
      switch (BuiltinName[17]) {
      default: break;
      case 'b':	 // 1 string to match.
        if (BuiltinName[18] != 'i')
          break;
        return Intrinsic::spu_si_clgtbi;	 // "__builtin_si_clgtbi"
      case 'h':	 // 1 string to match.
        if (BuiltinName[18] != 'i')
          break;
        return Intrinsic::spu_si_clgthi;	 // "__builtin_si_clgthi"
      }
      break;
    case 'm':	 // 2 strings to match.
      if (memcmp(BuiltinName.data()+14, "pyhh", 4))
        break;
      switch (BuiltinName[18]) {
      default: break;
      case 'a':	 // 1 string to match.
        return Intrinsic::spu_si_mpyhha;	 // "__builtin_si_mpyhha"
      case 'u':	 // 1 string to match.
        return Intrinsic::spu_si_mpyhhu;	 // "__builtin_si_mpyhhu"
      }
      break;
    case 's':	 // 2 strings to match.
      if (memcmp(BuiltinName.data()+14, "hlqb", 4))
        break;
      switch (BuiltinName[18]) {
      default: break;
      case 'i':	 // 1 string to match.
        return Intrinsic::spu_si_shlqbi;	 // "__builtin_si_shlqbi"
      case 'y':	 // 1 string to match.
        return Intrinsic::spu_si_shlqby;	 // "__builtin_si_shlqby"
      }
      break;
    }
    break;
  case 20:	 // 3 strings to match.
    if (memcmp(BuiltinName.data()+0, "__builtin_si_", 13))
      break;
    switch (BuiltinName[13]) {
    default: break;
    case 'm':	 // 1 string to match.
      if (memcmp(BuiltinName.data()+14, "pyhhau", 6))
        break;
      return Intrinsic::spu_si_mpyhhau;	 // "__builtin_si_mpyhhau"
    case 's':	 // 2 strings to match.
      if (memcmp(BuiltinName.data()+14, "hlqb", 4))
        break;
      switch (BuiltinName[18]) {
      default: break;
      case 'i':	 // 1 string to match.
        if (BuiltinName[19] != 'i')
          break;
        return Intrinsic::spu_si_shlqbii;	 // "__builtin_si_shlqbii"
      case 'y':	 // 1 string to match.
        if (BuiltinName[19] != 'i')
          break;
        return Intrinsic::spu_si_shlqbyi;	 // "__builtin_si_shlqbyi"
      }
      break;
    }
    break;
  }
  }
  if (TargetPrefix == "x86") {
  switch (BuiltinName.size()) {
  default: break;
  case 18:	 // 1 string to match.
    if (memcmp(BuiltinName.data()+0, "__builtin_ia32_por", 18))
      break;
    return Intrinsic::x86_mmx_por;	 // "__builtin_ia32_por"
  case 19:	 // 5 strings to match.
    if (memcmp(BuiltinName.data()+0, "__builtin_ia32_", 15))
      break;
    switch (BuiltinName[15]) {
    default: break;
    case 'd':	 // 2 strings to match.
      if (memcmp(BuiltinName.data()+16, "pp", 2))
        break;
      switch (BuiltinName[18]) {
      default: break;
      case 'd':	 // 1 string to match.
        return Intrinsic::x86_sse41_dppd;	 // "__builtin_ia32_dppd"
      case 's':	 // 1 string to match.
        return Intrinsic::x86_sse41_dpps;	 // "__builtin_ia32_dpps"
      }
      break;
    case 'e':	 // 1 string to match.
      if (memcmp(BuiltinName.data()+16, "mms", 3))
        break;
      return Intrinsic::x86_mmx_emms;	 // "__builtin_ia32_emms"
    case 'p':	 // 2 strings to match.
      switch (BuiltinName[16]) {
      default: break;
      case 'a':	 // 1 string to match.
        if (memcmp(BuiltinName.data()+17, "nd", 2))
          break;
        return Intrinsic::x86_mmx_pand;	 // "__builtin_ia32_pand"
      case 'x':	 // 1 string to match.
        if (memcmp(BuiltinName.data()+17, "or", 2))
          break;
        return Intrinsic::x86_mmx_pxor;	 // "__builtin_ia32_pxor"
      }
      break;
    }
    break;
  case 20:	 // 59 strings to match.
    if (memcmp(BuiltinName.data()+0, "__builtin_ia32_", 15))
      break;
    switch (BuiltinName[15]) {
    default: break;
    case 'a':	 // 2 strings to match.
      if (memcmp(BuiltinName.data()+16, "dds", 3))
        break;
      switch (BuiltinName[19]) {
      default: break;
      case 'd':	 // 1 string to match.
        return Intrinsic::x86_sse2_add_sd;	 // "__builtin_ia32_addsd"
      case 's':	 // 1 string to match.
        return Intrinsic::x86_sse_add_ss;	 // "__builtin_ia32_addss"
      }
      break;
    case 'c':	 // 4 strings to match.
      if (memcmp(BuiltinName.data()+16, "mp", 2))
        break;
      switch (BuiltinName[18]) {
      default: break;
      case 'p':	 // 2 strings to match.
        switch (BuiltinName[19]) {
        default: break;
        case 'd':	 // 1 string to match.
          return Intrinsic::x86_sse2_cmp_pd;	 // "__builtin_ia32_cmppd"
        case 's':	 // 1 string to match.
          return Intrinsic::x86_sse_cmp_ps;	 // "__builtin_ia32_cmpps"
        }
        break;
      case 's':	 // 2 strings to match.
        switch (BuiltinName[19]) {
        default: break;
        case 'd':	 // 1 string to match.
          return Intrinsic::x86_sse2_cmp_sd;	 // "__builtin_ia32_cmpsd"
        case 's':	 // 1 string to match.
          return Intrinsic::x86_sse_cmp_ss;	 // "__builtin_ia32_cmpss"
        }
        break;
      }
      break;
    case 'd':	 // 2 strings to match.
      if (memcmp(BuiltinName.data()+16, "ivs", 3))
        break;
      switch (BuiltinName[19]) {
      default: break;
      case 'd':	 // 1 string to match.
        return Intrinsic::x86_sse2_div_sd;	 // "__builtin_ia32_divsd"
      case 's':	 // 1 string to match.
        return Intrinsic::x86_sse_div_ss;	 // "__builtin_ia32_divss"
      }
      break;
    case 'e':	 // 1 string to match.
      if (memcmp(BuiltinName.data()+16, "xtrq", 4))
        break;
      return Intrinsic::x86_sse4a_extrq;	 // "__builtin_ia32_extrq"
    case 'f':	 // 1 string to match.
      if (memcmp(BuiltinName.data()+16, "emms", 4))
        break;
      return Intrinsic::x86_mmx_femms;	 // "__builtin_ia32_femms"
    case 'l':	 // 1 string to match.
      if (memcmp(BuiltinName.data()+16, "ddqu", 4))
        break;
      return Intrinsic::x86_sse3_ldu_dq;	 // "__builtin_ia32_lddqu"
    case 'm':	 // 11 strings to match.
      switch (BuiltinName[16]) {
      default: break;
      case 'a':	 // 4 strings to match.
        if (BuiltinName[17] != 'x')
          break;
        switch (BuiltinName[18]) {
        default: break;
        case 'p':	 // 2 strings to match.
          switch (BuiltinName[19]) {
          default: break;
          case 'd':	 // 1 string to match.
            return Intrinsic::x86_sse2_max_pd;	 // "__builtin_ia32_maxpd"
          case 's':	 // 1 string to match.
            return Intrinsic::x86_sse_max_ps;	 // "__builtin_ia32_maxps"
          }
          break;
        case 's':	 // 2 strings to match.
          switch (BuiltinName[19]) {
          default: break;
          case 'd':	 // 1 string to match.
            return Intrinsic::x86_sse2_max_sd;	 // "__builtin_ia32_maxsd"
          case 's':	 // 1 string to match.
            return Intrinsic::x86_sse_max_ss;	 // "__builtin_ia32_maxss"
          }
          break;
        }
        break;
      case 'i':	 // 4 strings to match.
        if (BuiltinName[17] != 'n')
          break;
        switch (BuiltinName[18]) {
        default: break;
        case 'p':	 // 2 strings to match.
          switch (BuiltinName[19]) {
          default: break;
          case 'd':	 // 1 string to match.
            return Intrinsic::x86_sse2_min_pd;	 // "__builtin_ia32_minpd"
          case 's':	 // 1 string to match.
            return Intrinsic::x86_sse_min_ps;	 // "__builtin_ia32_minps"
          }
          break;
        case 's':	 // 2 strings to match.
          switch (BuiltinName[19]) {
          default: break;
          case 'd':	 // 1 string to match.
            return Intrinsic::x86_sse2_min_sd;	 // "__builtin_ia32_minsd"
          case 's':	 // 1 string to match.
            return Intrinsic::x86_sse_min_ss;	 // "__builtin_ia32_minss"
          }
          break;
        }
        break;
      case 'u':	 // 2 strings to match.
        if (memcmp(BuiltinName.data()+17, "ls", 2))
          break;
        switch (BuiltinName[19]) {
        default: break;
        case 'd':	 // 1 string to match.
          return Intrinsic::x86_sse2_mul_sd;	 // "__builtin_ia32_mulsd"
        case 's':	 // 1 string to match.
          return Intrinsic::x86_sse_mul_ss;	 // "__builtin_ia32_mulss"
        }
        break;
      case 'w':	 // 1 string to match.
        if (memcmp(BuiltinName.data()+17, "ait", 3))
          break;
        return Intrinsic::x86_sse3_mwait;	 // "__builtin_ia32_mwait"
      }
      break;
    case 'p':	 // 33 strings to match.
      switch (BuiltinName[16]) {
      default: break;
      case 'a':	 // 10 strings to match.
        switch (BuiltinName[17]) {
        default: break;
        case 'b':	 // 3 strings to match.
          if (BuiltinName[18] != 's')
            break;
          switch (BuiltinName[19]) {
          default: break;
          case 'b':	 // 1 string to match.
            return Intrinsic::x86_ssse3_pabs_b;	 // "__builtin_ia32_pabsb"
          case 'd':	 // 1 string to match.
            return Intrinsic::x86_ssse3_pabs_d;	 // "__builtin_ia32_pabsd"
          case 'w':	 // 1 string to match.
            return Intrinsic::x86_ssse3_pabs_w;	 // "__builtin_ia32_pabsw"
          }
          break;
        case 'd':	 // 4 strings to match.
          if (BuiltinName[18] != 'd')
            break;
          switch (BuiltinName[19]) {
          default: break;
          case 'b':	 // 1 string to match.
            return Intrinsic::x86_mmx_padd_b;	 // "__builtin_ia32_paddb"
          case 'd':	 // 1 string to match.
            return Intrinsic::x86_mmx_padd_d;	 // "__builtin_ia32_paddd"
          case 'q':	 // 1 string to match.
            return Intrinsic::x86_mmx_padd_q;	 // "__builtin_ia32_paddq"
          case 'w':	 // 1 string to match.
            return Intrinsic::x86_mmx_padd_w;	 // "__builtin_ia32_paddw"
          }
          break;
        case 'n':	 // 1 string to match.
          if (memcmp(BuiltinName.data()+18, "dn", 2))
            break;
          return Intrinsic::x86_mmx_pandn;	 // "__builtin_ia32_pandn"
        case 'v':	 // 2 strings to match.
          if (BuiltinName[18] != 'g')
            break;
          switch (BuiltinName[19]) {
          default: break;
          case 'b':	 // 1 string to match.
            return Intrinsic::x86_mmx_pavg_b;	 // "__builtin_ia32_pavgb"
          case 'w':	 // 1 string to match.
            return Intrinsic::x86_mmx_pavg_w;	 // "__builtin_ia32_pavgw"
          }
          break;
        }
        break;
      case 'f':	 // 9 strings to match.
        switch (BuiltinName[17]) {
        default: break;
        case '2':	 // 2 strings to match.
          if (BuiltinName[18] != 'i')
            break;
          switch (BuiltinName[19]) {
          default: break;
          case 'd':	 // 1 string to match.
            return Intrinsic::x86_3dnow_pf2id;	 // "__builtin_ia32_pf2id"
          case 'w':	 // 1 string to match.
            return Intrinsic::x86_3dnowa_pf2iw;	 // "__builtin_ia32_pf2iw"
          }
          break;
        case 'a':	 // 2 strings to match.
          switch (BuiltinName[18]) {
          default: break;
          case 'c':	 // 1 string to match.
            if (BuiltinName[19] != 'c')
              break;
            return Intrinsic::x86_3dnow_pfacc;	 // "__builtin_ia32_pfacc"
          case 'd':	 // 1 string to match.
            if (BuiltinName[19] != 'd')
              break;
            return Intrinsic::x86_3dnow_pfadd;	 // "__builtin_ia32_pfadd"
          }
          break;
        case 'm':	 // 3 strings to match.
          switch (BuiltinName[18]) {
          default: break;
          case 'a':	 // 1 string to match.
            if (BuiltinName[19] != 'x')
              break;
            return Intrinsic::x86_3dnow_pfmax;	 // "__builtin_ia32_pfmax"
          case 'i':	 // 1 string to match.
            if (BuiltinName[19] != 'n')
              break;
            return Intrinsic::x86_3dnow_pfmin;	 // "__builtin_ia32_pfmin"
          case 'u':	 // 1 string to match.
            if (BuiltinName[19] != 'l')
              break;
            return Intrinsic::x86_3dnow_pfmul;	 // "__builtin_ia32_pfmul"
          }
          break;
        case 'r':	 // 1 string to match.
          if (memcmp(BuiltinName.data()+18, "cp", 2))
            break;
          return Intrinsic::x86_3dnow_pfrcp;	 // "__builtin_ia32_pfrcp"
        case 's':	 // 1 string to match.
          if (memcmp(BuiltinName.data()+18, "ub", 2))
            break;
          return Intrinsic::x86_3dnow_pfsub;	 // "__builtin_ia32_pfsub"
        }
        break;
      case 'i':	 // 2 strings to match.
        if (memcmp(BuiltinName.data()+17, "2f", 2))
          break;
        switch (BuiltinName[19]) {
        default: break;
        case 'd':	 // 1 string to match.
          return Intrinsic::x86_3dnow_pi2fd;	 // "__builtin_ia32_pi2fd"
        case 'w':	 // 1 string to match.
          return Intrinsic::x86_3dnowa_pi2fw;	 // "__builtin_ia32_pi2fw"
        }
        break;
      case 's':	 // 12 strings to match.
        switch (BuiltinName[17]) {
        default: break;
        case 'l':	 // 3 strings to match.
          if (BuiltinName[18] != 'l')
            break;
          switch (BuiltinName[19]) {
          default: break;
          case 'd':	 // 1 string to match.
            return Intrinsic::x86_mmx_psll_d;	 // "__builtin_ia32_pslld"
          case 'q':	 // 1 string to match.
            return Intrinsic::x86_mmx_psll_q;	 // "__builtin_ia32_psllq"
          case 'w':	 // 1 string to match.
            return Intrinsic::x86_mmx_psll_w;	 // "__builtin_ia32_psllw"
          }
          break;
        case 'r':	 // 5 strings to match.
          switch (BuiltinName[18]) {
          default: break;
          case 'a':	 // 2 strings to match.
            switch (BuiltinName[19]) {
            default: break;
            case 'd':	 // 1 string to match.
              return Intrinsic::x86_mmx_psra_d;	 // "__builtin_ia32_psrad"
            case 'w':	 // 1 string to match.
              return Intrinsic::x86_mmx_psra_w;	 // "__builtin_ia32_psraw"
            }
            break;
          case 'l':	 // 3 strings to match.
            switch (BuiltinName[19]) {
            default: break;
            case 'd':	 // 1 string to match.
              return Intrinsic::x86_mmx_psrl_d;	 // "__builtin_ia32_psrld"
            case 'q':	 // 1 string to match.
              return Intrinsic::x86_mmx_psrl_q;	 // "__builtin_ia32_psrlq"
            case 'w':	 // 1 string to match.
              return Intrinsic::x86_mmx_psrl_w;	 // "__builtin_ia32_psrlw"
            }
            break;
          }
          break;
        case 'u':	 // 4 strings to match.
          if (BuiltinName[18] != 'b')
            break;
          switch (BuiltinName[19]) {
          default: break;
          case 'b':	 // 1 string to match.
            return Intrinsic::x86_mmx_psub_b;	 // "__builtin_ia32_psubb"
          case 'd':	 // 1 string to match.
            return Intrinsic::x86_mmx_psub_d;	 // "__builtin_ia32_psubd"
          case 'q':	 // 1 string to match.
            return Intrinsic::x86_mmx_psub_q;	 // "__builtin_ia32_psubq"
          case 'w':	 // 1 string to match.
            return Intrinsic::x86_mmx_psub_w;	 // "__builtin_ia32_psubw"
          }
          break;
        }
        break;
      }
      break;
    case 'r':	 // 2 strings to match.
      if (memcmp(BuiltinName.data()+16, "cp", 2))
        break;
      switch (BuiltinName[18]) {
      default: break;
      case 'p':	 // 1 string to match.
        if (BuiltinName[19] != 's')
          break;
        return Intrinsic::x86_sse_rcp_ps;	 // "__builtin_ia32_rcpps"
      case 's':	 // 1 string to match.
        if (BuiltinName[19] != 's')
          break;
        return Intrinsic::x86_sse_rcp_ss;	 // "__builtin_ia32_rcpss"
      }
      break;
    case 's':	 // 2 strings to match.
      if (memcmp(BuiltinName.data()+16, "ubs", 3))
        break;
      switch (BuiltinName[19]) {
      default: break;
      case 'd':	 // 1 string to match.
        return Intrinsic::x86_sse2_sub_sd;	 // "__builtin_ia32_subsd"
      case 's':	 // 1 string to match.
        return Intrinsic::x86_sse_sub_ss;	 // "__builtin_ia32_subss"
      }
      break;
    }
    break;
  case 21:	 // 48 strings to match.
    if (memcmp(BuiltinName.data()+0, "__builtin_ia32_", 15))
      break;
    switch (BuiltinName[15]) {
    default: break;
    case 'c':	 // 5 strings to match.
      if (memcmp(BuiltinName.data()+16, "omi", 3))
        break;
      switch (BuiltinName[19]) {
      default: break;
      case 'e':	 // 1 string to match.
        if (BuiltinName[20] != 'q')
          break;
        return Intrinsic::x86_sse_comieq_ss;	 // "__builtin_ia32_comieq"
      case 'g':	 // 2 strings to match.
        switch (BuiltinName[20]) {
        default: break;
        case 'e':	 // 1 string to match.
          return Intrinsic::x86_sse_comige_ss;	 // "__builtin_ia32_comige"
        case 't':	 // 1 string to match.
          return Intrinsic::x86_sse_comigt_ss;	 // "__builtin_ia32_comigt"
        }
        break;
      case 'l':	 // 2 strings to match.
        switch (BuiltinName[20]) {
        default: break;
        case 'e':	 // 1 string to match.
          return Intrinsic::x86_sse_comile_ss;	 // "__builtin_ia32_comile"
        case 't':	 // 1 string to match.
          return Intrinsic::x86_sse_comilt_ss;	 // "__builtin_ia32_comilt"
        }
        break;
      }
      break;
    case 'e':	 // 1 string to match.
      if (memcmp(BuiltinName.data()+16, "xtrqi", 5))
        break;
      return Intrinsic::x86_sse4a_extrqi;	 // "__builtin_ia32_extrqi"
    case 'h':	 // 4 strings to match.
      switch (BuiltinName[16]) {
      default: break;
      case 'a':	 // 2 strings to match.
        if (memcmp(BuiltinName.data()+17, "ddp", 3))
          break;
        switch (BuiltinName[20]) {
        default: break;
        case 'd':	 // 1 string to match.
          return Intrinsic::x86_sse3_hadd_pd;	 // "__builtin_ia32_haddpd"
        case 's':	 // 1 string to match.
          return Intrinsic::x86_sse3_hadd_ps;	 // "__builtin_ia32_haddps"
        }
        break;
      case 's':	 // 2 strings to match.
        if (memcmp(BuiltinName.data()+17, "ubp", 3))
          break;
        switch (BuiltinName[20]) {
        default: break;
        case 'd':	 // 1 string to match.
          return Intrinsic::x86_sse3_hsub_pd;	 // "__builtin_ia32_hsubpd"
        case 's':	 // 1 string to match.
          return Intrinsic::x86_sse3_hsub_ps;	 // "__builtin_ia32_hsubps"
        }
        break;
      }
      break;
    case 'l':	 // 1 string to match.
      if (memcmp(BuiltinName.data()+16, "fence", 5))
        break;
      return Intrinsic::x86_sse2_lfence;	 // "__builtin_ia32_lfence"
    case 'm':	 // 2 strings to match.
      switch (BuiltinName[16]) {
      default: break;
      case 'f':	 // 1 string to match.
        if (memcmp(BuiltinName.data()+17, "ence", 4))
          break;
        return Intrinsic::x86_sse2_mfence;	 // "__builtin_ia32_mfence"
      case 'o':	 // 1 string to match.
        if (memcmp(BuiltinName.data()+17, "vntq", 4))
          break;
        return Intrinsic::x86_mmx_movnt_dq;	 // "__builtin_ia32_movntq"
      }
      break;
    case 'p':	 // 30 strings to match.
      switch (BuiltinName[16]) {
      default: break;
      case 'a':	 // 2 strings to match.
        if (memcmp(BuiltinName.data()+17, "dds", 3))
          break;
        switch (BuiltinName[20]) {
        default: break;
        case 'b':	 // 1 string to match.
          return Intrinsic::x86_mmx_padds_b;	 // "__builtin_ia32_paddsb"
        case 'w':	 // 1 string to match.
          return Intrinsic::x86_mmx_padds_w;	 // "__builtin_ia32_paddsw"
        }
        break;
      case 'f':	 // 2 strings to match.
        switch (BuiltinName[17]) {
        default: break;
        case 'n':	 // 1 string to match.
          if (memcmp(BuiltinName.data()+18, "acc", 3))
            break;
          return Intrinsic::x86_3dnowa_pfnacc;	 // "__builtin_ia32_pfnacc"
        case 's':	 // 1 string to match.
          if (memcmp(BuiltinName.data()+18, "ubr", 3))
            break;
          return Intrinsic::x86_3dnow_pfsubr;	 // "__builtin_ia32_pfsubr"
        }
        break;
      case 'h':	 // 4 strings to match.
        switch (BuiltinName[17]) {
        default: break;
        case 'a':	 // 2 strings to match.
          if (memcmp(BuiltinName.data()+18, "dd", 2))
            break;
          switch (BuiltinName[20]) {
          default: break;
          case 'd':	 // 1 string to match.
            return Intrinsic::x86_ssse3_phadd_d;	 // "__builtin_ia32_phaddd"
          case 'w':	 // 1 string to match.
            return Intrinsic::x86_ssse3_phadd_w;	 // "__builtin_ia32_phaddw"
          }
          break;
        case 's':	 // 2 strings to match.
          if (memcmp(BuiltinName.data()+18, "ub", 2))
            break;
          switch (BuiltinName[20]) {
          default: break;
          case 'd':	 // 1 string to match.
            return Intrinsic::x86_ssse3_phsub_d;	 // "__builtin_ia32_phsubd"
          case 'w':	 // 1 string to match.
            return Intrinsic::x86_ssse3_phsub_w;	 // "__builtin_ia32_phsubw"
          }
          break;
        }
        break;
      case 'm':	 // 6 strings to match.
        switch (BuiltinName[17]) {
        default: break;
        case 'a':	 // 2 strings to match.
          if (BuiltinName[18] != 'x')
            break;
          switch (BuiltinName[19]) {
          default: break;
          case 's':	 // 1 string to match.
            if (BuiltinName[20] != 'w')
              break;
            return Intrinsic::x86_mmx_pmaxs_w;	 // "__builtin_ia32_pmaxsw"
          case 'u':	 // 1 string to match.
            if (BuiltinName[20] != 'b')
              break;
            return Intrinsic::x86_mmx_pmaxu_b;	 // "__builtin_ia32_pmaxub"
          }
          break;
        case 'i':	 // 2 strings to match.
          if (BuiltinName[18] != 'n')
            break;
          switch (BuiltinName[19]) {
          default: break;
          case 's':	 // 1 string to match.
            if (BuiltinName[20] != 'w')
              break;
            return Intrinsic::x86_mmx_pmins_w;	 // "__builtin_ia32_pminsw"
          case 'u':	 // 1 string to match.
            if (BuiltinName[20] != 'b')
              break;
            return Intrinsic::x86_mmx_pminu_b;	 // "__builtin_ia32_pminub"
          }
          break;
        case 'u':	 // 2 strings to match.
          if (BuiltinName[18] != 'l')
            break;
          switch (BuiltinName[19]) {
          default: break;
          case 'h':	 // 1 string to match.
            if (BuiltinName[20] != 'w')
              break;
            return Intrinsic::x86_mmx_pmulh_w;	 // "__builtin_ia32_pmulhw"
          case 'l':	 // 1 string to match.
            if (BuiltinName[20] != 'w')
              break;
            return Intrinsic::x86_mmx_pmull_w;	 // "__builtin_ia32_pmullw"
          }
          break;
        }
        break;
      case 's':	 // 16 strings to match.
        switch (BuiltinName[17]) {
        default: break;
        case 'a':	 // 1 string to match.
          if (memcmp(BuiltinName.data()+18, "dbw", 3))
            break;
          return Intrinsic::x86_mmx_psad_bw;	 // "__builtin_ia32_psadbw"
        case 'h':	 // 2 strings to match.
          if (memcmp(BuiltinName.data()+18, "uf", 2))
            break;
          switch (BuiltinName[20]) {
          default: break;
          case 'b':	 // 1 string to match.
            return Intrinsic::x86_ssse3_pshuf_b;	 // "__builtin_ia32_pshufb"
          case 'w':	 // 1 string to match.
            return Intrinsic::x86_sse_pshuf_w;	 // "__builtin_ia32_pshufw"
          }
          break;
        case 'i':	 // 3 strings to match.
          if (memcmp(BuiltinName.data()+18, "gn", 2))
            break;
          switch (BuiltinName[20]) {
          default: break;
          case 'b':	 // 1 string to match.
            return Intrinsic::x86_ssse3_psign_b;	 // "__builtin_ia32_psignb"
          case 'd':	 // 1 string to match.
            return Intrinsic::x86_ssse3_psign_d;	 // "__builtin_ia32_psignd"
          case 'w':	 // 1 string to match.
            return Intrinsic::x86_ssse3_psign_w;	 // "__builtin_ia32_psignw"
          }
          break;
        case 'l':	 // 3 strings to match.
          if (BuiltinName[18] != 'l')
            break;
          switch (BuiltinName[19]) {
          default: break;
          case 'd':	 // 1 string to match.
            if (BuiltinName[20] != 'i')
              break;
            return Intrinsic::x86_mmx_pslli_d;	 // "__builtin_ia32_pslldi"
          case 'q':	 // 1 string to match.
            if (BuiltinName[20] != 'i')
              break;
            return Intrinsic::x86_mmx_pslli_q;	 // "__builtin_ia32_psllqi"
          case 'w':	 // 1 string to match.
            if (BuiltinName[20] != 'i')
              break;
            return Intrinsic::x86_mmx_pslli_w;	 // "__builtin_ia32_psllwi"
          }
          break;
        case 'r':	 // 5 strings to match.
          switch (BuiltinName[18]) {
          default: break;
          case 'a':	 // 2 strings to match.
            switch (BuiltinName[19]) {
            default: break;
            case 'd':	 // 1 string to match.
              if (BuiltinName[20] != 'i')
                break;
              return Intrinsic::x86_mmx_psrai_d;	 // "__builtin_ia32_psradi"
            case 'w':	 // 1 string to match.
              if (BuiltinName[20] != 'i')
                break;
              return Intrinsic::x86_mmx_psrai_w;	 // "__builtin_ia32_psrawi"
            }
            break;
          case 'l':	 // 3 strings to match.
            switch (BuiltinName[19]) {
            default: break;
            case 'd':	 // 1 string to match.
              if (BuiltinName[20] != 'i')
                break;
              return Intrinsic::x86_mmx_psrli_d;	 // "__builtin_ia32_psrldi"
            case 'q':	 // 1 string to match.
              if (BuiltinName[20] != 'i')
                break;
              return Intrinsic::x86_mmx_psrli_q;	 // "__builtin_ia32_psrlqi"
            case 'w':	 // 1 string to match.
              if (BuiltinName[20] != 'i')
                break;
              return Intrinsic::x86_mmx_psrli_w;	 // "__builtin_ia32_psrlwi"
            }
            break;
          }
          break;
        case 'u':	 // 2 strings to match.
          if (memcmp(BuiltinName.data()+18, "bs", 2))
            break;
          switch (BuiltinName[20]) {
          default: break;
          case 'b':	 // 1 string to match.
            return Intrinsic::x86_mmx_psubs_b;	 // "__builtin_ia32_psubsb"
          case 'w':	 // 1 string to match.
            return Intrinsic::x86_mmx_psubs_w;	 // "__builtin_ia32_psubsw"
          }
          break;
        }
        break;
      }
      break;
    case 's':	 // 5 strings to match.
      switch (BuiltinName[16]) {
      default: break;
      case 'f':	 // 1 string to match.
        if (memcmp(BuiltinName.data()+17, "ence", 4))
          break;
        return Intrinsic::x86_sse_sfence;	 // "__builtin_ia32_sfence"
      case 'q':	 // 4 strings to match.
        if (memcmp(BuiltinName.data()+17, "rt", 2))
          break;
        switch (BuiltinName[19]) {
        default: break;
        case 'p':	 // 2 strings to match.
          switch (BuiltinName[20]) {
          default: break;
          case 'd':	 // 1 string to match.
            return Intrinsic::x86_sse2_sqrt_pd;	 // "__builtin_ia32_sqrtpd"
          case 's':	 // 1 string to match.
            return Intrinsic::x86_sse_sqrt_ps;	 // "__builtin_ia32_sqrtps"
          }
          break;
        case 's':	 // 2 strings to match.
          switch (BuiltinName[20]) {
          default: break;
          case 'd':	 // 1 string to match.
            return Intrinsic::x86_sse2_sqrt_sd;	 // "__builtin_ia32_sqrtsd"
          case 's':	 // 1 string to match.
            return Intrinsic::x86_sse_sqrt_ss;	 // "__builtin_ia32_sqrtss"
          }
          break;
        }
        break;
      }
      break;
    }
    break;
  case 22:	 // 53 strings to match.
    if (memcmp(BuiltinName.data()+0, "__builtin_ia32_", 15))
      break;
    switch (BuiltinName[15]) {
    default: break;
    case 'b':	 // 4 strings to match.
      switch (BuiltinName[16]) {
      default: break;
      case 'l':	 // 2 strings to match.
        if (memcmp(BuiltinName.data()+17, "endp", 4))
          break;
        switch (BuiltinName[21]) {
        default: break;
        case 'd':	 // 1 string to match.
          return Intrinsic::x86_sse41_blendpd;	 // "__builtin_ia32_blendpd"
        case 's':	 // 1 string to match.
          return Intrinsic::x86_sse41_blendps;	 // "__builtin_ia32_blendps"
        }
        break;
      case 'z':	 // 2 strings to match.
        if (memcmp(BuiltinName.data()+17, "hi_", 3))
          break;
        switch (BuiltinName[20]) {
        default: break;
        case 'd':	 // 1 string to match.
          if (BuiltinName[21] != 'i')
            break;
          return Intrinsic::x86_bmi_bzhi_64;	 // "__builtin_ia32_bzhi_di"
        case 's':	 // 1 string to match.
          if (BuiltinName[21] != 'i')
            break;
          return Intrinsic::x86_bmi_bzhi_32;	 // "__builtin_ia32_bzhi_si"
        }
        break;
      }
      break;
    case 'c':	 // 6 strings to match.
      switch (BuiltinName[16]) {
      default: break;
      case 'l':	 // 1 string to match.
        if (memcmp(BuiltinName.data()+17, "flush", 5))
          break;
        return Intrinsic::x86_sse2_clflush;	 // "__builtin_ia32_clflush"
      case 'o':	 // 1 string to match.
        if (memcmp(BuiltinName.data()+17, "mineq", 5))
          break;
        return Intrinsic::x86_sse_comineq_ss;	 // "__builtin_ia32_comineq"
      case 'r':	 // 4 strings to match.
        if (memcmp(BuiltinName.data()+17, "c32", 3))
          break;
        switch (BuiltinName[20]) {
        default: break;
        case 'd':	 // 1 string to match.
          if (BuiltinName[21] != 'i')
            break;
          return Intrinsic::x86_sse42_crc32_64_64;	 // "__builtin_ia32_crc32di"
        case 'h':	 // 1 string to match.
          if (BuiltinName[21] != 'i')
            break;
          return Intrinsic::x86_sse42_crc32_32_16;	 // "__builtin_ia32_crc32hi"
        case 'q':	 // 1 string to match.
          if (BuiltinName[21] != 'i')
            break;
          return Intrinsic::x86_sse42_crc32_32_8;	 // "__builtin_ia32_crc32qi"
        case 's':	 // 1 string to match.
          if (BuiltinName[21] != 'i')
            break;
          return Intrinsic::x86_sse42_crc32_32_32;	 // "__builtin_ia32_crc32si"
        }
        break;
      }
      break;
    case 'd':	 // 1 string to match.
      if (memcmp(BuiltinName.data()+16, "pps256", 6))
        break;
      return Intrinsic::x86_avx_dp_ps_256;	 // "__builtin_ia32_dpps256"
    case 'i':	 // 1 string to match.
      if (memcmp(BuiltinName.data()+16, "nsertq", 6))
        break;
      return Intrinsic::x86_sse4a_insertq;	 // "__builtin_ia32_insertq"
    case 'm':	 // 3 strings to match.
      if (BuiltinName[16] != 'o')
        break;
      switch (BuiltinName[17]) {
      default: break;
      case 'n':	 // 1 string to match.
        if (memcmp(BuiltinName.data()+18, "itor", 4))
          break;
        return Intrinsic::x86_sse3_monitor;	 // "__builtin_ia32_monitor"
      case 'v':	 // 2 strings to match.
        if (memcmp(BuiltinName.data()+18, "nts", 3))
          break;
        switch (BuiltinName[21]) {
        default: break;
        case 'd':	 // 1 string to match.
          return Intrinsic::x86_sse4a_movnt_sd;	 // "__builtin_ia32_movntsd"
        case 's':	 // 1 string to match.
          return Intrinsic::x86_sse4a_movnt_ss;	 // "__builtin_ia32_movntss"
        }
        break;
      }
      break;
    case 'p':	 // 27 strings to match.
      switch (BuiltinName[16]) {
      default: break;
      case 'a':	 // 4 strings to match.
        switch (BuiltinName[17]) {
        default: break;
        case 'd':	 // 2 strings to match.
          if (memcmp(BuiltinName.data()+18, "dus", 3))
            break;
          switch (BuiltinName[21]) {
          default: break;
          case 'b':	 // 1 string to match.
            return Intrinsic::x86_mmx_paddus_b;	 // "__builtin_ia32_paddusb"
          case 'w':	 // 1 string to match.
            return Intrinsic::x86_mmx_paddus_w;	 // "__builtin_ia32_paddusw"
          }
          break;
        case 'l':	 // 1 string to match.
          if (memcmp(BuiltinName.data()+18, "ignr", 4))
            break;
          return Intrinsic::x86_mmx_palignr_b;	 // "__builtin_ia32_palignr"
        case 'v':	 // 1 string to match.
          if (memcmp(BuiltinName.data()+18, "gusb", 4))
            break;
          return Intrinsic::x86_3dnow_pavgusb;	 // "__builtin_ia32_pavgusb"
        }
        break;
      case 'c':	 // 6 strings to match.
        if (memcmp(BuiltinName.data()+17, "mp", 2))
          break;
        switch (BuiltinName[19]) {
        default: break;
        case 'e':	 // 3 strings to match.
          if (BuiltinName[20] != 'q')
            break;
          switch (BuiltinName[21]) {
          default: break;
          case 'b':	 // 1 string to match.
            return Intrinsic::x86_mmx_pcmpeq_b;	 // "__builtin_ia32_pcmpeqb"
          case 'd':	 // 1 string to match.
            return Intrinsic::x86_mmx_pcmpeq_d;	 // "__builtin_ia32_pcmpeqd"
          case 'w':	 // 1 string to match.
            return Intrinsic::x86_mmx_pcmpeq_w;	 // "__builtin_ia32_pcmpeqw"
          }
          break;
        case 'g':	 // 3 strings to match.
          if (BuiltinName[20] != 't')
            break;
          switch (BuiltinName[21]) {
          default: break;
          case 'b':	 // 1 string to match.
            return Intrinsic::x86_mmx_pcmpgt_b;	 // "__builtin_ia32_pcmpgtb"
          case 'd':	 // 1 string to match.
            return Intrinsic::x86_mmx_pcmpgt_d;	 // "__builtin_ia32_pcmpgtd"
          case 'w':	 // 1 string to match.
            return Intrinsic::x86_mmx_pcmpgt_w;	 // "__builtin_ia32_pcmpgtw"
          }
          break;
        }
        break;
      case 'd':	 // 2 strings to match.
        if (memcmp(BuiltinName.data()+17, "ep_", 3))
          break;
        switch (BuiltinName[20]) {
        default: break;
        case 'd':	 // 1 string to match.
          if (BuiltinName[21] != 'i')
            break;
          return Intrinsic::x86_bmi_pdep_64;	 // "__builtin_ia32_pdep_di"
        case 's':	 // 1 string to match.
          if (BuiltinName[21] != 'i')
            break;
          return Intrinsic::x86_bmi_pdep_32;	 // "__builtin_ia32_pdep_si"
        }
        break;
      case 'e':	 // 2 strings to match.
        if (memcmp(BuiltinName.data()+17, "xt_", 3))
          break;
        switch (BuiltinName[20]) {
        default: break;
        case 'd':	 // 1 string to match.
          if (BuiltinName[21] != 'i')
            break;
          return Intrinsic::x86_bmi_pext_64;	 // "__builtin_ia32_pext_di"
        case 's':	 // 1 string to match.
          if (BuiltinName[21] != 'i')
            break;
          return Intrinsic::x86_bmi_pext_32;	 // "__builtin_ia32_pext_si"
        }
        break;
      case 'f':	 // 5 strings to match.
        switch (BuiltinName[17]) {
        default: break;
        case 'c':	 // 3 strings to match.
          if (memcmp(BuiltinName.data()+18, "mp", 2))
            break;
          switch (BuiltinName[20]) {
          default: break;
          case 'e':	 // 1 string to match.
            if (BuiltinName[21] != 'q')
              break;
            return Intrinsic::x86_3dnow_pfcmpeq;	 // "__builtin_ia32_pfcmpeq"
          case 'g':	 // 2 strings to match.
            switch (BuiltinName[21]) {
            default: break;
            case 'e':	 // 1 string to match.
              return Intrinsic::x86_3dnow_pfcmpge;	 // "__builtin_ia32_pfcmpge"
            case 't':	 // 1 string to match.
              return Intrinsic::x86_3dnow_pfcmpgt;	 // "__builtin_ia32_pfcmpgt"
            }
            break;
          }
          break;
        case 'p':	 // 1 string to match.
          if (memcmp(BuiltinName.data()+18, "nacc", 4))
            break;
          return Intrinsic::x86_3dnowa_pfpnacc;	 // "__builtin_ia32_pfpnacc"
        case 'r':	 // 1 string to match.
          if (memcmp(BuiltinName.data()+18, "sqrt", 4))
            break;
          return Intrinsic::x86_3dnow_pfrsqrt;	 // "__builtin_ia32_pfrsqrt"
        }
        break;
      case 'h':	 // 2 strings to match.
        switch (BuiltinName[17]) {
        default: break;
        case 'a':	 // 1 string to match.
          if (memcmp(BuiltinName.data()+18, "ddsw", 4))
            break;
          return Intrinsic::x86_ssse3_phadd_sw;	 // "__builtin_ia32_phaddsw"
        case 's':	 // 1 string to match.
          if (memcmp(BuiltinName.data()+18, "ubsw", 4))
            break;
          return Intrinsic::x86_ssse3_phsub_sw;	 // "__builtin_ia32_phsubsw"
        }
        break;
      case 'm':	 // 4 strings to match.
        switch (BuiltinName[17]) {
        default: break;
        case 'a':	 // 1 string to match.
          if (memcmp(BuiltinName.data()+18, "ddwd", 4))
            break;
          return Intrinsic::x86_mmx_pmadd_wd;	 // "__builtin_ia32_pmaddwd"
        case 'u':	 // 3 strings to match.
          if (BuiltinName[18] != 'l')
            break;
          switch (BuiltinName[19]) {
          default: break;
          case 'h':	 // 2 strings to match.
            switch (BuiltinName[20]) {
            default: break;
            case 'r':	 // 1 string to match.
              if (BuiltinName[21] != 'w')
                break;
              return Intrinsic::x86_3dnow_pmulhrw;	 // "__builtin_ia32_pmulhrw"
            case 'u':	 // 1 string to match.
              if (BuiltinName[21] != 'w')
                break;
              return Intrinsic::x86_mmx_pmulhu_w;	 // "__builtin_ia32_pmulhuw"
            }
            break;
          case 'u':	 // 1 string to match.
            if (memcmp(BuiltinName.data()+20, "dq", 2))
              break;
            return Intrinsic::x86_mmx_pmulu_dq;	 // "__builtin_ia32_pmuludq"
          }
          break;
        }
        break;
      case 's':	 // 2 strings to match.
        if (memcmp(BuiltinName.data()+17, "ubus", 4))
          break;
        switch (BuiltinName[21]) {
        default: break;
        case 'b':	 // 1 string to match.
          return Intrinsic::x86_mmx_psubus_b;	 // "__builtin_ia32_psubusb"
        case 'w':	 // 1 string to match.
          return Intrinsic::x86_mmx_psubus_w;	 // "__builtin_ia32_psubusw"
        }
        break;
      }
      break;
    case 'r':	 // 6 strings to match.
      switch (BuiltinName[16]) {
      default: break;
      case 'o':	 // 4 strings to match.
        if (memcmp(BuiltinName.data()+17, "und", 3))
          break;
        switch (BuiltinName[20]) {
        default: break;
        case 'p':	 // 2 strings to match.
          switch (BuiltinName[21]) {
          default: break;
          case 'd':	 // 1 string to match.
            return Intrinsic::x86_sse41_round_pd;	 // "__builtin_ia32_roundpd"
          case 's':	 // 1 string to match.
            return Intrinsic::x86_sse41_round_ps;	 // "__builtin_ia32_roundps"
          }
          break;
        case 's':	 // 2 strings to match.
          switch (BuiltinName[21]) {
          default: break;
          case 'd':	 // 1 string to match.
            return Intrinsic::x86_sse41_round_sd;	 // "__builtin_ia32_roundsd"
          case 's':	 // 1 string to match.
            return Intrinsic::x86_sse41_round_ss;	 // "__builtin_ia32_roundss"
          }
          break;
        }
        break;
      case 's':	 // 2 strings to match.
        if (memcmp(BuiltinName.data()+17, "qrt", 3))
          break;
        switch (BuiltinName[20]) {
        default: break;
        case 'p':	 // 1 string to match.
          if (BuiltinName[21] != 's')
            break;
          return Intrinsic::x86_sse_rsqrt_ps;	 // "__builtin_ia32_rsqrtps"
        case 's':	 // 1 string to match.
          if (BuiltinName[21] != 's')
            break;
          return Intrinsic::x86_sse_rsqrt_ss;	 // "__builtin_ia32_rsqrtss"
        }
        break;
      }
      break;
    case 'u':	 // 5 strings to match.
      if (memcmp(BuiltinName.data()+16, "comi", 4))
        break;
      switch (BuiltinName[20]) {
      default: break;
      case 'e':	 // 1 string to match.
        if (BuiltinName[21] != 'q')
          break;
        return Intrinsic::x86_sse_ucomieq_ss;	 // "__builtin_ia32_ucomieq"
      case 'g':	 // 2 strings to match.
        switch (BuiltinName[21]) {
        default: break;
        case 'e':	 // 1 string to match.
          return Intrinsic::x86_sse_ucomige_ss;	 // "__builtin_ia32_ucomige"
        case 't':	 // 1 string to match.
          return Intrinsic::x86_sse_ucomigt_ss;	 // "__builtin_ia32_ucomigt"
        }
        break;
      case 'l':	 // 2 strings to match.
        switch (BuiltinName[21]) {
        default: break;
        case 'e':	 // 1 string to match.
          return Intrinsic::x86_sse_ucomile_ss;	 // "__builtin_ia32_ucomile"
        case 't':	 // 1 string to match.
          return Intrinsic::x86_sse_ucomilt_ss;	 // "__builtin_ia32_ucomilt"
        }
        break;
      }
      break;
    }
    break;
  case 23:	 // 99 strings to match.
    if (memcmp(BuiltinName.data()+0, "__builtin_ia32_", 15))
      break;
    switch (BuiltinName[15]) {
    default: break;
    case 'a':	 // 2 strings to match.
      if (memcmp(BuiltinName.data()+16, "ddsubp", 6))
        break;
      switch (BuiltinName[22]) {
      default: break;
      case 'd':	 // 1 string to match.
        return Intrinsic::x86_sse3_addsub_pd;	 // "__builtin_ia32_addsubpd"
      case 's':	 // 1 string to match.
        return Intrinsic::x86_sse3_addsub_ps;	 // "__builtin_ia32_addsubps"
      }
      break;
    case 'b':	 // 2 strings to match.
      if (memcmp(BuiltinName.data()+16, "lendvp", 6))
        break;
      switch (BuiltinName[22]) {
      default: break;
      case 'd':	 // 1 string to match.
        return Intrinsic::x86_sse41_blendvpd;	 // "__builtin_ia32_blendvpd"
      case 's':	 // 1 string to match.
        return Intrinsic::x86_sse41_blendvps;	 // "__builtin_ia32_blendvps"
      }
      break;
    case 'c':	 // 23 strings to match.
      switch (BuiltinName[16]) {
      default: break;
      case 'm':	 // 2 strings to match.
        if (memcmp(BuiltinName.data()+17, "pp", 2))
          break;
        switch (BuiltinName[19]) {
        default: break;
        case 'd':	 // 1 string to match.
          if (memcmp(BuiltinName.data()+20, "256", 3))
            break;
          return Intrinsic::x86_avx_cmp_pd_256;	 // "__builtin_ia32_cmppd256"
        case 's':	 // 1 string to match.
          if (memcmp(BuiltinName.data()+20, "256", 3))
            break;
          return Intrinsic::x86_avx_cmp_ps_256;	 // "__builtin_ia32_cmpps256"
        }
        break;
      case 'o':	 // 5 strings to match.
        if (memcmp(BuiltinName.data()+17, "misd", 4))
          break;
        switch (BuiltinName[21]) {
        default: break;
        case 'e':	 // 1 string to match.
          if (BuiltinName[22] != 'q')
            break;
          return Intrinsic::x86_sse2_comieq_sd;	 // "__builtin_ia32_comisdeq"
        case 'g':	 // 2 strings to match.
          switch (BuiltinName[22]) {
          default: break;
          case 'e':	 // 1 string to match.
            return Intrinsic::x86_sse2_comige_sd;	 // "__builtin_ia32_comisdge"
          case 't':	 // 1 string to match.
            return Intrinsic::x86_sse2_comigt_sd;	 // "__builtin_ia32_comisdgt"
          }
          break;
        case 'l':	 // 2 strings to match.
          switch (BuiltinName[22]) {
          default: break;
          case 'e':	 // 1 string to match.
            return Intrinsic::x86_sse2_comile_sd;	 // "__builtin_ia32_comisdle"
          case 't':	 // 1 string to match.
            return Intrinsic::x86_sse2_comilt_sd;	 // "__builtin_ia32_comisdlt"
          }
          break;
        }
        break;
      case 'v':	 // 16 strings to match.
        if (BuiltinName[17] != 't')
          break;
        switch (BuiltinName[18]) {
        default: break;
        case 'd':	 // 2 strings to match.
          if (memcmp(BuiltinName.data()+19, "q2p", 3))
            break;
          switch (BuiltinName[22]) {
          default: break;
          case 'd':	 // 1 string to match.
            return Intrinsic::x86_sse2_cvtdq2pd;	 // "__builtin_ia32_cvtdq2pd"
          case 's':	 // 1 string to match.
            return Intrinsic::x86_sse2_cvtdq2ps;	 // "__builtin_ia32_cvtdq2ps"
          }
          break;
        case 'p':	 // 8 strings to match.
          switch (BuiltinName[19]) {
          default: break;
          case 'd':	 // 3 strings to match.
            if (BuiltinName[20] != '2')
              break;
            switch (BuiltinName[21]) {
            default: break;
            case 'd':	 // 1 string to match.
              if (BuiltinName[22] != 'q')
                break;
              return Intrinsic::x86_sse2_cvtpd2dq;	 // "__builtin_ia32_cvtpd2dq"
            case 'p':	 // 2 strings to match.
              switch (BuiltinName[22]) {
              default: break;
              case 'i':	 // 1 string to match.
                return Intrinsic::x86_sse_cvtpd2pi;	 // "__builtin_ia32_cvtpd2pi"
              case 's':	 // 1 string to match.
                return Intrinsic::x86_sse2_cvtpd2ps;	 // "__builtin_ia32_cvtpd2ps"
              }
              break;
            }
            break;
          case 'i':	 // 2 strings to match.
            if (memcmp(BuiltinName.data()+20, "2p", 2))
              break;
            switch (BuiltinName[22]) {
            default: break;
            case 'd':	 // 1 string to match.
              return Intrinsic::x86_sse_cvtpi2pd;	 // "__builtin_ia32_cvtpi2pd"
            case 's':	 // 1 string to match.
              return Intrinsic::x86_sse_cvtpi2ps;	 // "__builtin_ia32_cvtpi2ps"
            }
            break;
          case 's':	 // 3 strings to match.
            if (BuiltinName[20] != '2')
              break;
            switch (BuiltinName[21]) {
            default: break;
            case 'd':	 // 1 string to match.
              if (BuiltinName[22] != 'q')
                break;
              return Intrinsic::x86_sse2_cvtps2dq;	 // "__builtin_ia32_cvtps2dq"
            case 'p':	 // 2 strings to match.
              switch (BuiltinName[22]) {
              default: break;
              case 'd':	 // 1 string to match.
                return Intrinsic::x86_sse2_cvtps2pd;	 // "__builtin_ia32_cvtps2pd"
              case 'i':	 // 1 string to match.
                return Intrinsic::x86_sse_cvtps2pi;	 // "__builtin_ia32_cvtps2pi"
              }
              break;
            }
            break;
          }
          break;
        case 's':	 // 6 strings to match.
          switch (BuiltinName[19]) {
          default: break;
          case 'd':	 // 2 strings to match.
            if (memcmp(BuiltinName.data()+20, "2s", 2))
              break;
            switch (BuiltinName[22]) {
            default: break;
            case 'i':	 // 1 string to match.
              return Intrinsic::x86_sse2_cvtsd2si;	 // "__builtin_ia32_cvtsd2si"
            case 's':	 // 1 string to match.
              return Intrinsic::x86_sse2_cvtsd2ss;	 // "__builtin_ia32_cvtsd2ss"
            }
            break;
          case 'i':	 // 2 strings to match.
            if (memcmp(BuiltinName.data()+20, "2s", 2))
              break;
            switch (BuiltinName[22]) {
            default: break;
            case 'd':	 // 1 string to match.
              return Intrinsic::x86_sse2_cvtsi2sd;	 // "__builtin_ia32_cvtsi2sd"
            case 's':	 // 1 string to match.
              return Intrinsic::x86_sse_cvtsi2ss;	 // "__builtin_ia32_cvtsi2ss"
            }
            break;
          case 's':	 // 2 strings to match.
            if (memcmp(BuiltinName.data()+20, "2s", 2))
              break;
            switch (BuiltinName[22]) {
            default: break;
            case 'd':	 // 1 string to match.
              return Intrinsic::x86_sse2_cvtss2sd;	 // "__builtin_ia32_cvtss2sd"
            case 'i':	 // 1 string to match.
              return Intrinsic::x86_sse_cvtss2si;	 // "__builtin_ia32_cvtss2si"
            }
            break;
          }
          break;
        }
        break;
      }
      break;
    case 'i':	 // 1 string to match.
      if (memcmp(BuiltinName.data()+16, "nsertqi", 7))
        break;
      return Intrinsic::x86_sse4a_insertqi;	 // "__builtin_ia32_insertqi"
    case 'l':	 // 1 string to match.
      if (memcmp(BuiltinName.data()+16, "ddqu256", 7))
        break;
      return Intrinsic::x86_avx_ldu_dq_256;	 // "__builtin_ia32_lddqu256"
    case 'm':	 // 8 strings to match.
      switch (BuiltinName[16]) {
      default: break;
      case 'a':	 // 3 strings to match.
        switch (BuiltinName[17]) {
        default: break;
        case 's':	 // 1 string to match.
          if (memcmp(BuiltinName.data()+18, "kmovq", 5))
            break;
          return Intrinsic::x86_mmx_maskmovq;	 // "__builtin_ia32_maskmovq"
        case 'x':	 // 2 strings to match.
          if (BuiltinName[18] != 'p')
            break;
          switch (BuiltinName[19]) {
          default: break;
          case 'd':	 // 1 string to match.
            if (memcmp(BuiltinName.data()+20, "256", 3))
              break;
            return Intrinsic::x86_avx_max_pd_256;	 // "__builtin_ia32_maxpd256"
          case 's':	 // 1 string to match.
            if (memcmp(BuiltinName.data()+20, "256", 3))
              break;
            return Intrinsic::x86_avx_max_ps_256;	 // "__builtin_ia32_maxps256"
          }
          break;
        }
        break;
      case 'i':	 // 2 strings to match.
        if (memcmp(BuiltinName.data()+17, "np", 2))
          break;
        switch (BuiltinName[19]) {
        default: break;
        case 'd':	 // 1 string to match.
          if (memcmp(BuiltinName.data()+20, "256", 3))
            break;
          return Intrinsic::x86_avx_min_pd_256;	 // "__builtin_ia32_minpd256"
        case 's':	 // 1 string to match.
          if (memcmp(BuiltinName.data()+20, "256", 3))
            break;
          return Intrinsic::x86_avx_min_ps_256;	 // "__builtin_ia32_minps256"
        }
        break;
      case 'o':	 // 3 strings to match.
        if (BuiltinName[17] != 'v')
          break;
        switch (BuiltinName[18]) {
        default: break;
        case 'm':	 // 2 strings to match.
          if (memcmp(BuiltinName.data()+19, "skp", 3))
            break;
          switch (BuiltinName[22]) {
          default: break;
          case 'd':	 // 1 string to match.
            return Intrinsic::x86_sse2_movmsk_pd;	 // "__builtin_ia32_movmskpd"
          case 's':	 // 1 string to match.
            return Intrinsic::x86_sse_movmsk_ps;	 // "__builtin_ia32_movmskps"
          }
          break;
        case 'n':	 // 1 string to match.
          if (memcmp(BuiltinName.data()+19, "tdqa", 4))
            break;
          return Intrinsic::x86_sse41_movntdqa;	 // "__builtin_ia32_movntdqa"
        }
        break;
      }
      break;
    case 'p':	 // 44 strings to match.
      switch (BuiltinName[16]) {
      default: break;
      case 'a':	 // 13 strings to match.
        switch (BuiltinName[17]) {
        default: break;
        case 'b':	 // 6 strings to match.
          if (BuiltinName[18] != 's')
            break;
          switch (BuiltinName[19]) {
          default: break;
          case 'b':	 // 2 strings to match.
            switch (BuiltinName[20]) {
            default: break;
            case '1':	 // 1 string to match.
              if (memcmp(BuiltinName.data()+21, "28", 2))
                break;
              return Intrinsic::x86_ssse3_pabs_b_128;	 // "__builtin_ia32_pabsb128"
            case '2':	 // 1 string to match.
              if (memcmp(BuiltinName.data()+21, "56", 2))
                break;
              return Intrinsic::x86_avx2_pabs_b;	 // "__builtin_ia32_pabsb256"
            }
            break;
          case 'd':	 // 2 strings to match.
            switch (BuiltinName[20]) {
            default: break;
            case '1':	 // 1 string to match.
              if (memcmp(BuiltinName.data()+21, "28", 2))
                break;
              return Intrinsic::x86_ssse3_pabs_d_128;	 // "__builtin_ia32_pabsd128"
            case '2':	 // 1 string to match.
              if (memcmp(BuiltinName.data()+21, "56", 2))
                break;
              return Intrinsic::x86_avx2_pabs_d;	 // "__builtin_ia32_pabsd256"
            }
            break;
          case 'w':	 // 2 strings to match.
            switch (BuiltinName[20]) {
            default: break;
            case '1':	 // 1 string to match.
              if (memcmp(BuiltinName.data()+21, "28", 2))
                break;
              return Intrinsic::x86_ssse3_pabs_w_128;	 // "__builtin_ia32_pabsw128"
            case '2':	 // 1 string to match.
              if (memcmp(BuiltinName.data()+21, "56", 2))
                break;
              return Intrinsic::x86_avx2_pabs_w;	 // "__builtin_ia32_pabsw256"
            }
            break;
          }
          break;
        case 'c':	 // 3 strings to match.
          if (BuiltinName[18] != 'k')
            break;
          switch (BuiltinName[19]) {
          default: break;
          case 's':	 // 2 strings to match.
            if (BuiltinName[20] != 's')
              break;
            switch (BuiltinName[21]) {
            default: break;
            case 'd':	 // 1 string to match.
              if (BuiltinName[22] != 'w')
                break;
              return Intrinsic::x86_mmx_packssdw;	 // "__builtin_ia32_packssdw"
            case 'w':	 // 1 string to match.
              if (BuiltinName[22] != 'b')
                break;
              return Intrinsic::x86_mmx_packsswb;	 // "__builtin_ia32_packsswb"
            }
            break;
          case 'u':	 // 1 string to match.
            if (memcmp(BuiltinName.data()+20, "swb", 3))
              break;
            return Intrinsic::x86_mmx_packuswb;	 // "__builtin_ia32_packuswb"
          }
          break;
        case 'v':	 // 4 strings to match.
          if (BuiltinName[18] != 'g')
            break;
          switch (BuiltinName[19]) {
          default: break;
          case 'b':	 // 2 strings to match.
            switch (BuiltinName[20]) {
            default: break;
            case '1':	 // 1 string to match.
              if (memcmp(BuiltinName.data()+21, "28", 2))
                break;
              return Intrinsic::x86_sse2_pavg_b;	 // "__builtin_ia32_pavgb128"
            case '2':	 // 1 string to match.
              if (memcmp(BuiltinName.data()+21, "56", 2))
                break;
              return Intrinsic::x86_avx2_pavg_b;	 // "__builtin_ia32_pavgb256"
            }
            break;
          case 'w':	 // 2 strings to match.
            switch (BuiltinName[20]) {
            default: break;
            case '1':	 // 1 string to match.
              if (memcmp(BuiltinName.data()+21, "28", 2))
                break;
              return Intrinsic::x86_sse2_pavg_w;	 // "__builtin_ia32_pavgw128"
            case '2':	 // 1 string to match.
              if (memcmp(BuiltinName.data()+21, "56", 2))
                break;
              return Intrinsic::x86_avx2_pavg_w;	 // "__builtin_ia32_pavgw256"
            }
            break;
          }
          break;
        }
        break;
      case 'f':	 // 3 strings to match.
        if (BuiltinName[17] != 'r')
          break;
        switch (BuiltinName[18]) {
        default: break;
        case 'c':	 // 2 strings to match.
          if (memcmp(BuiltinName.data()+19, "pit", 3))
            break;
          switch (BuiltinName[22]) {
          default: break;
          case '1':	 // 1 string to match.
            return Intrinsic::x86_3dnow_pfrcpit1;	 // "__builtin_ia32_pfrcpit1"
          case '2':	 // 1 string to match.
            return Intrinsic::x86_3dnow_pfrcpit2;	 // "__builtin_ia32_pfrcpit2"
          }
          break;
        case 's':	 // 1 string to match.
          if (memcmp(BuiltinName.data()+19, "qit1", 4))
            break;
          return Intrinsic::x86_3dnow_pfrsqit1;	 // "__builtin_ia32_pfrsqit1"
        }
        break;
      case 'm':	 // 2 strings to match.
        switch (BuiltinName[17]) {
        default: break;
        case 'o':	 // 1 string to match.
          if (memcmp(BuiltinName.data()+18, "vmskb", 5))
            break;
          return Intrinsic::x86_mmx_pmovmskb;	 // "__builtin_ia32_pmovmskb"
        case 'u':	 // 1 string to match.
          if (memcmp(BuiltinName.data()+18, "lhrsw", 5))
            break;
          return Intrinsic::x86_ssse3_pmul_hr_sw;	 // "__builtin_ia32_pmulhrsw"
        }
        break;
      case 's':	 // 26 strings to match.
        switch (BuiltinName[17]) {
        default: break;
        case 'l':	 // 10 strings to match.
          if (BuiltinName[18] != 'l')
            break;
          switch (BuiltinName[19]) {
          default: break;
          case 'd':	 // 2 strings to match.
            switch (BuiltinName[20]) {
            default: break;
            case '1':	 // 1 string to match.
              if (memcmp(BuiltinName.data()+21, "28", 2))
                break;
              return Intrinsic::x86_sse2_psll_d;	 // "__builtin_ia32_pslld128"
            case '2':	 // 1 string to match.
              if (memcmp(BuiltinName.data()+21, "56", 2))
                break;
              return Intrinsic::x86_avx2_psll_d;	 // "__builtin_ia32_pslld256"
            }
            break;
          case 'q':	 // 2 strings to match.
            switch (BuiltinName[20]) {
            default: break;
            case '1':	 // 1 string to match.
              if (memcmp(BuiltinName.data()+21, "28", 2))
                break;
              return Intrinsic::x86_sse2_psll_q;	 // "__builtin_ia32_psllq128"
            case '2':	 // 1 string to match.
              if (memcmp(BuiltinName.data()+21, "56", 2))
                break;
              return Intrinsic::x86_avx2_psll_q;	 // "__builtin_ia32_psllq256"
            }
            break;
          case 'v':	 // 4 strings to match.
            switch (BuiltinName[20]) {
            default: break;
            case '2':	 // 1 string to match.
              if (memcmp(BuiltinName.data()+21, "di", 2))
                break;
              return Intrinsic::x86_avx2_psllv_q;	 // "__builtin_ia32_psllv2di"
            case '4':	 // 2 strings to match.
              switch (BuiltinName[21]) {
              default: break;
              case 'd':	 // 1 string to match.
                if (BuiltinName[22] != 'i')
                  break;
                return Intrinsic::x86_avx2_psllv_q_256;	 // "__builtin_ia32_psllv4di"
              case 's':	 // 1 string to match.
                if (BuiltinName[22] != 'i')
                  break;
                return Intrinsic::x86_avx2_psllv_d;	 // "__builtin_ia32_psllv4si"
              }
              break;
            case '8':	 // 1 string to match.
              if (memcmp(BuiltinName.data()+21, "si", 2))
                break;
              return Intrinsic::x86_avx2_psllv_d_256;	 // "__builtin_ia32_psllv8si"
            }
            break;
          case 'w':	 // 2 strings to match.
            switch (BuiltinName[20]) {
            default: break;
            case '1':	 // 1 string to match.
              if (memcmp(BuiltinName.data()+21, "28", 2))
                break;
              return Intrinsic::x86_sse2_psll_w;	 // "__builtin_ia32_psllw128"
            case '2':	 // 1 string to match.
              if (memcmp(BuiltinName.data()+21, "56", 2))
                break;
              return Intrinsic::x86_avx2_psll_w;	 // "__builtin_ia32_psllw256"
            }
            break;
          }
          break;
        case 'r':	 // 16 strings to match.
          switch (BuiltinName[18]) {
          default: break;
          case 'a':	 // 6 strings to match.
            switch (BuiltinName[19]) {
            default: break;
            case 'd':	 // 2 strings to match.
              switch (BuiltinName[20]) {
              default: break;
              case '1':	 // 1 string to match.
                if (memcmp(BuiltinName.data()+21, "28", 2))
                  break;
                return Intrinsic::x86_sse2_psra_d;	 // "__builtin_ia32_psrad128"
              case '2':	 // 1 string to match.
                if (memcmp(BuiltinName.data()+21, "56", 2))
                  break;
                return Intrinsic::x86_avx2_psra_d;	 // "__builtin_ia32_psrad256"
              }
              break;
            case 'v':	 // 2 strings to match.
              switch (BuiltinName[20]) {
              default: break;
              case '4':	 // 1 string to match.
                if (memcmp(BuiltinName.data()+21, "si", 2))
                  break;
                return Intrinsic::x86_avx2_psrav_d;	 // "__builtin_ia32_psrav4si"
              case '8':	 // 1 string to match.
                if (memcmp(BuiltinName.data()+21, "si", 2))
                  break;
                return Intrinsic::x86_avx2_psrav_d_256;	 // "__builtin_ia32_psrav8si"
              }
              break;
            case 'w':	 // 2 strings to match.
              switch (BuiltinName[20]) {
              default: break;
              case '1':	 // 1 string to match.
                if (memcmp(BuiltinName.data()+21, "28", 2))
                  break;
                return Intrinsic::x86_sse2_psra_w;	 // "__builtin_ia32_psraw128"
              case '2':	 // 1 string to match.
                if (memcmp(BuiltinName.data()+21, "56", 2))
                  break;
                return Intrinsic::x86_avx2_psra_w;	 // "__builtin_ia32_psraw256"
              }
              break;
            }
            break;
          case 'l':	 // 10 strings to match.
            switch (BuiltinName[19]) {
            default: break;
            case 'd':	 // 2 strings to match.
              switch (BuiltinName[20]) {
              default: break;
              case '1':	 // 1 string to match.
                if (memcmp(BuiltinName.data()+21, "28", 2))
                  break;
                return Intrinsic::x86_sse2_psrl_d;	 // "__builtin_ia32_psrld128"
              case '2':	 // 1 string to match.
                if (memcmp(BuiltinName.data()+21, "56", 2))
                  break;
                return Intrinsic::x86_avx2_psrl_d;	 // "__builtin_ia32_psrld256"
              }
              break;
            case 'q':	 // 2 strings to match.
              switch (BuiltinName[20]) {
              default: break;
              case '1':	 // 1 string to match.
                if (memcmp(BuiltinName.data()+21, "28", 2))
                  break;
                return Intrinsic::x86_sse2_psrl_q;	 // "__builtin_ia32_psrlq128"
              case '2':	 // 1 string to match.
                if (memcmp(BuiltinName.data()+21, "56", 2))
                  break;
                return Intrinsic::x86_avx2_psrl_q;	 // "__builtin_ia32_psrlq256"
              }
              break;
            case 'v':	 // 4 strings to match.
              switch (BuiltinName[20]) {
              default: break;
              case '2':	 // 1 string to match.
                if (memcmp(BuiltinName.data()+21, "di", 2))
                  break;
                return Intrinsic::x86_avx2_psrlv_q;	 // "__builtin_ia32_psrlv2di"
              case '4':	 // 2 strings to match.
                switch (BuiltinName[21]) {
                default: break;
                case 'd':	 // 1 string to match.
                  if (BuiltinName[22] != 'i')
                    break;
                  return Intrinsic::x86_avx2_psrlv_q_256;	 // "__builtin_ia32_psrlv4di"
                case 's':	 // 1 string to match.
                  if (BuiltinName[22] != 'i')
                    break;
                  return Intrinsic::x86_avx2_psrlv_d;	 // "__builtin_ia32_psrlv4si"
                }
                break;
              case '8':	 // 1 string to match.
                if (memcmp(BuiltinName.data()+21, "si", 2))
                  break;
                return Intrinsic::x86_avx2_psrlv_d_256;	 // "__builtin_ia32_psrlv8si"
              }
              break;
            case 'w':	 // 2 strings to match.
              switch (BuiltinName[20]) {
              default: break;
              case '1':	 // 1 string to match.
                if (memcmp(BuiltinName.data()+21, "28", 2))
                  break;
                return Intrinsic::x86_sse2_psrl_w;	 // "__builtin_ia32_psrlw128"
              case '2':	 // 1 string to match.
                if (memcmp(BuiltinName.data()+21, "56", 2))
                  break;
                return Intrinsic::x86_avx2_psrl_w;	 // "__builtin_ia32_psrlw256"
              }
              break;
            }
            break;
          }
          break;
        }
        break;
      }
      break;
    case 'r':	 // 1 string to match.
      if (memcmp(BuiltinName.data()+16, "cpps256", 7))
        break;
      return Intrinsic::x86_avx_rcp_ps_256;	 // "__builtin_ia32_rcpps256"
    case 's':	 // 3 strings to match.
      if (memcmp(BuiltinName.data()+16, "tore", 4))
        break;
      switch (BuiltinName[20]) {
      default: break;
      case 'd':	 // 1 string to match.
        if (memcmp(BuiltinName.data()+21, "qu", 2))
          break;
        return Intrinsic::x86_sse2_storeu_dq;	 // "__builtin_ia32_storedqu"
      case 'u':	 // 2 strings to match.
        if (BuiltinName[21] != 'p')
          break;
        switch (BuiltinName[22]) {
        default: break;
        case 'd':	 // 1 string to match.
          return Intrinsic::x86_sse2_storeu_pd;	 // "__builtin_ia32_storeupd"
        case 's':	 // 1 string to match.
          return Intrinsic::x86_sse_storeu_ps;	 // "__builtin_ia32_storeups"
        }
        break;
      }
      break;
    case 'u':	 // 1 string to match.
      if (memcmp(BuiltinName.data()+16, "comineq", 7))
        break;
      return Intrinsic::x86_sse_ucomineq_ss;	 // "__builtin_ia32_ucomineq"
    case 'v':	 // 13 strings to match.
      switch (BuiltinName[16]) {
      default: break;
      case 'f':	 // 8 strings to match.
        if (BuiltinName[17] != 'm')
          break;
        switch (BuiltinName[18]) {
        default: break;
        case 'a':	 // 4 strings to match.
          if (memcmp(BuiltinName.data()+19, "dd", 2))
            break;
          switch (BuiltinName[21]) {
          default: break;
          case 'p':	 // 2 strings to match.
            switch (BuiltinName[22]) {
            default: break;
            case 'd':	 // 1 string to match.
              return Intrinsic::x86_fma_vfmadd_pd;	 // "__builtin_ia32_vfmaddpd"
            case 's':	 // 1 string to match.
              return Intrinsic::x86_fma_vfmadd_ps;	 // "__builtin_ia32_vfmaddps"
            }
            break;
          case 's':	 // 2 strings to match.
            switch (BuiltinName[22]) {
            default: break;
            case 'd':	 // 1 string to match.
              return Intrinsic::x86_fma_vfmadd_sd;	 // "__builtin_ia32_vfmaddsd"
            case 's':	 // 1 string to match.
              return Intrinsic::x86_fma_vfmadd_ss;	 // "__builtin_ia32_vfmaddss"
            }
            break;
          }
          break;
        case 's':	 // 4 strings to match.
          if (memcmp(BuiltinName.data()+19, "ub", 2))
            break;
          switch (BuiltinName[21]) {
          default: break;
          case 'p':	 // 2 strings to match.
            switch (BuiltinName[22]) {
            default: break;
            case 'd':	 // 1 string to match.
              return Intrinsic::x86_fma_vfmsub_pd;	 // "__builtin_ia32_vfmsubpd"
            case 's':	 // 1 string to match.
              return Intrinsic::x86_fma_vfmsub_ps;	 // "__builtin_ia32_vfmsubps"
            }
            break;
          case 's':	 // 2 strings to match.
            switch (BuiltinName[22]) {
            default: break;
            case 'd':	 // 1 string to match.
              return Intrinsic::x86_fma_vfmsub_sd;	 // "__builtin_ia32_vfmsubsd"
            case 's':	 // 1 string to match.
              return Intrinsic::x86_fma_vfmsub_ss;	 // "__builtin_ia32_vfmsubss"
            }
            break;
          }
          break;
        }
        break;
      case 't':	 // 4 strings to match.
        if (memcmp(BuiltinName.data()+17, "est", 3))
          break;
        switch (BuiltinName[20]) {
        default: break;
        case 'c':	 // 2 strings to match.
          if (BuiltinName[21] != 'p')
            break;
          switch (BuiltinName[22]) {
          default: break;
          case 'd':	 // 1 string to match.
            return Intrinsic::x86_avx_vtestc_pd;	 // "__builtin_ia32_vtestcpd"
          case 's':	 // 1 string to match.
            return Intrinsic::x86_avx_vtestc_ps;	 // "__builtin_ia32_vtestcps"
          }
          break;
        case 'z':	 // 2 strings to match.
          if (BuiltinName[21] != 'p')
            break;
          switch (BuiltinName[22]) {
          default: break;
          case 'd':	 // 1 string to match.
            return Intrinsic::x86_avx_vtestz_pd;	 // "__builtin_ia32_vtestzpd"
          case 's':	 // 1 string to match.
            return Intrinsic::x86_avx_vtestz_ps;	 // "__builtin_ia32_vtestzps"
          }
          break;
        }
        break;
      case 'z':	 // 1 string to match.
        if (memcmp(BuiltinName.data()+17, "eroall", 6))
          break;
        return Intrinsic::x86_avx_vzeroall;	 // "__builtin_ia32_vzeroall"
      }
      break;
    }
    break;
  case 24:	 // 121 strings to match.
    if (memcmp(BuiltinName.data()+0, "__builtin_ia32_", 15))
      break;
    switch (BuiltinName[15]) {
    default: break;
    case 'a':	 // 3 strings to match.
      if (memcmp(BuiltinName.data()+16, "es", 2))
        break;
      switch (BuiltinName[18]) {
      default: break;
      case 'd':	 // 1 string to match.
        if (memcmp(BuiltinName.data()+19, "ec128", 5))
          break;
        return Intrinsic::x86_aesni_aesdec;	 // "__builtin_ia32_aesdec128"
      case 'e':	 // 1 string to match.
        if (memcmp(BuiltinName.data()+19, "nc128", 5))
          break;
        return Intrinsic::x86_aesni_aesenc;	 // "__builtin_ia32_aesenc128"
      case 'i':	 // 1 string to match.
        if (memcmp(BuiltinName.data()+19, "mc128", 5))
          break;
        return Intrinsic::x86_aesni_aesimc;	 // "__builtin_ia32_aesimc128"
      }
      break;
    case 'b':	 // 2 strings to match.
      if (memcmp(BuiltinName.data()+16, "extr_u", 6))
        break;
      switch (BuiltinName[22]) {
      default: break;
      case '3':	 // 1 string to match.
        if (BuiltinName[23] != '2')
          break;
        return Intrinsic::x86_bmi_bextr_32;	 // "__builtin_ia32_bextr_u32"
      case '6':	 // 1 string to match.
        if (BuiltinName[23] != '4')
          break;
        return Intrinsic::x86_bmi_bextr_64;	 // "__builtin_ia32_bextr_u64"
      }
      break;
    case 'c':	 // 7 strings to match.
      switch (BuiltinName[16]) {
      default: break;
      case 'o':	 // 1 string to match.
        if (memcmp(BuiltinName.data()+17, "misdneq", 7))
          break;
        return Intrinsic::x86_sse2_comineq_sd;	 // "__builtin_ia32_comisdneq"
      case 'v':	 // 6 strings to match.
        if (memcmp(BuiltinName.data()+17, "tt", 2))
          break;
        switch (BuiltinName[19]) {
        default: break;
        case 'p':	 // 4 strings to match.
          switch (BuiltinName[20]) {
          default: break;
          case 'd':	 // 2 strings to match.
            if (BuiltinName[21] != '2')
              break;
            switch (BuiltinName[22]) {
            default: break;
            case 'd':	 // 1 string to match.
              if (BuiltinName[23] != 'q')
                break;
              return Intrinsic::x86_sse2_cvttpd2dq;	 // "__builtin_ia32_cvttpd2dq"
            case 'p':	 // 1 string to match.
              if (BuiltinName[23] != 'i')
                break;
              return Intrinsic::x86_sse_cvttpd2pi;	 // "__builtin_ia32_cvttpd2pi"
            }
            break;
          case 's':	 // 2 strings to match.
            if (BuiltinName[21] != '2')
              break;
            switch (BuiltinName[22]) {
            default: break;
            case 'd':	 // 1 string to match.
              if (BuiltinName[23] != 'q')
                break;
              return Intrinsic::x86_sse2_cvttps2dq;	 // "__builtin_ia32_cvttps2dq"
            case 'p':	 // 1 string to match.
              if (BuiltinName[23] != 'i')
                break;
              return Intrinsic::x86_sse_cvttps2pi;	 // "__builtin_ia32_cvttps2pi"
            }
            break;
          }
          break;
        case 's':	 // 2 strings to match.
          switch (BuiltinName[20]) {
          default: break;
          case 'd':	 // 1 string to match.
            if (memcmp(BuiltinName.data()+21, "2si", 3))
              break;
            return Intrinsic::x86_sse2_cvttsd2si;	 // "__builtin_ia32_cvttsd2si"
          case 's':	 // 1 string to match.
            if (memcmp(BuiltinName.data()+21, "2si", 3))
              break;
            return Intrinsic::x86_sse_cvttss2si;	 // "__builtin_ia32_cvttss2si"
          }
          break;
        }
        break;
      }
      break;
    case 'g':	 // 4 strings to match.
      if (memcmp(BuiltinName.data()+16, "ather", 5))
        break;
      switch (BuiltinName[21]) {
      default: break;
      case 'd':	 // 2 strings to match.
        if (BuiltinName[22] != '_')
          break;
        switch (BuiltinName[23]) {
        default: break;
        case 'd':	 // 1 string to match.
          return Intrinsic::x86_avx2_gather_d_d;	 // "__builtin_ia32_gatherd_d"
        case 'q':	 // 1 string to match.
          return Intrinsic::x86_avx2_gather_d_q;	 // "__builtin_ia32_gatherd_q"
        }
        break;
      case 'q':	 // 2 strings to match.
        if (BuiltinName[22] != '_')
          break;
        switch (BuiltinName[23]) {
        default: break;
        case 'd':	 // 1 string to match.
          return Intrinsic::x86_avx2_gather_q_d;	 // "__builtin_ia32_gatherq_d"
        case 'q':	 // 1 string to match.
          return Intrinsic::x86_avx2_gather_q_q;	 // "__builtin_ia32_gatherq_q"
        }
        break;
      }
      break;
    case 'h':	 // 4 strings to match.
      switch (BuiltinName[16]) {
      default: break;
      case 'a':	 // 2 strings to match.
        if (memcmp(BuiltinName.data()+17, "ddp", 3))
          break;
        switch (BuiltinName[20]) {
        default: break;
        case 'd':	 // 1 string to match.
          if (memcmp(BuiltinName.data()+21, "256", 3))
            break;
          return Intrinsic::x86_avx_hadd_pd_256;	 // "__builtin_ia32_haddpd256"
        case 's':	 // 1 string to match.
          if (memcmp(BuiltinName.data()+21, "256", 3))
            break;
          return Intrinsic::x86_avx_hadd_ps_256;	 // "__builtin_ia32_haddps256"
        }
        break;
      case 's':	 // 2 strings to match.
        if (memcmp(BuiltinName.data()+17, "ubp", 3))
          break;
        switch (BuiltinName[20]) {
        default: break;
        case 'd':	 // 1 string to match.
          if (memcmp(BuiltinName.data()+21, "256", 3))
            break;
          return Intrinsic::x86_avx_hsub_pd_256;	 // "__builtin_ia32_hsubpd256"
        case 's':	 // 1 string to match.
          if (memcmp(BuiltinName.data()+21, "256", 3))
            break;
          return Intrinsic::x86_avx_hsub_ps_256;	 // "__builtin_ia32_hsubps256"
        }
        break;
      }
      break;
    case 'm':	 // 2 strings to match.
      if (memcmp(BuiltinName.data()+16, "askload", 7))
        break;
      switch (BuiltinName[23]) {
      default: break;
      case 'd':	 // 1 string to match.
        return Intrinsic::x86_avx2_maskload_d;	 // "__builtin_ia32_maskloadd"
      case 'q':	 // 1 string to match.
        return Intrinsic::x86_avx2_maskload_q;	 // "__builtin_ia32_maskloadq"
      }
      break;
    case 'p':	 // 82 strings to match.
      switch (BuiltinName[16]) {
      default: break;
      case 'a':	 // 4 strings to match.
        if (memcmp(BuiltinName.data()+17, "dds", 3))
          break;
        switch (BuiltinName[20]) {
        default: break;
        case 'b':	 // 2 strings to match.
          switch (BuiltinName[21]) {
          default: break;
          case '1':	 // 1 string to match.
            if (memcmp(BuiltinName.data()+22, "28", 2))
              break;
            return Intrinsic::x86_sse2_padds_b;	 // "__builtin_ia32_paddsb128"
          case '2':	 // 1 string to match.
            if (memcmp(BuiltinName.data()+22, "56", 2))
              break;
            return Intrinsic::x86_avx2_padds_b;	 // "__builtin_ia32_paddsb256"
          }
          break;
        case 'w':	 // 2 strings to match.
          switch (BuiltinName[21]) {
          default: break;
          case '1':	 // 1 string to match.
            if (memcmp(BuiltinName.data()+22, "28", 2))
              break;
            return Intrinsic::x86_sse2_padds_w;	 // "__builtin_ia32_paddsw128"
          case '2':	 // 1 string to match.
            if (memcmp(BuiltinName.data()+22, "56", 2))
              break;
            return Intrinsic::x86_avx2_padds_w;	 // "__builtin_ia32_paddsw256"
          }
          break;
        }
        break;
      case 'e':	 // 1 string to match.
        if (memcmp(BuiltinName.data()+17, "rmti256", 7))
          break;
        return Intrinsic::x86_avx2_vperm2i128;	 // "__builtin_ia32_permti256"
      case 'h':	 // 8 strings to match.
        switch (BuiltinName[17]) {
        default: break;
        case 'a':	 // 4 strings to match.
          if (memcmp(BuiltinName.data()+18, "dd", 2))
            break;
          switch (BuiltinName[20]) {
          default: break;
          case 'd':	 // 2 strings to match.
            switch (BuiltinName[21]) {
            default: break;
            case '1':	 // 1 string to match.
              if (memcmp(BuiltinName.data()+22, "28", 2))
                break;
              return Intrinsic::x86_ssse3_phadd_d_128;	 // "__builtin_ia32_phaddd128"
            case '2':	 // 1 string to match.
              if (memcmp(BuiltinName.data()+22, "56", 2))
                break;
              return Intrinsic::x86_avx2_phadd_d;	 // "__builtin_ia32_phaddd256"
            }
            break;
          case 'w':	 // 2 strings to match.
            switch (BuiltinName[21]) {
            default: break;
            case '1':	 // 1 string to match.
              if (memcmp(BuiltinName.data()+22, "28", 2))
                break;
              return Intrinsic::x86_ssse3_phadd_w_128;	 // "__builtin_ia32_phaddw128"
            case '2':	 // 1 string to match.
              if (memcmp(BuiltinName.data()+22, "56", 2))
                break;
              return Intrinsic::x86_avx2_phadd_w;	 // "__builtin_ia32_phaddw256"
            }
            break;
          }
          break;
        case 's':	 // 4 strings to match.
          if (memcmp(BuiltinName.data()+18, "ub", 2))
            break;
          switch (BuiltinName[20]) {
          default: break;
          case 'd':	 // 2 strings to match.
            switch (BuiltinName[21]) {
            default: break;
            case '1':	 // 1 string to match.
              if (memcmp(BuiltinName.data()+22, "28", 2))
                break;
              return Intrinsic::x86_ssse3_phsub_d_128;	 // "__builtin_ia32_phsubd128"
            case '2':	 // 1 string to match.
              if (memcmp(BuiltinName.data()+22, "56", 2))
                break;
              return Intrinsic::x86_avx2_phsub_d;	 // "__builtin_ia32_phsubd256"
            }
            break;
          case 'w':	 // 2 strings to match.
            switch (BuiltinName[21]) {
            default: break;
            case '1':	 // 1 string to match.
              if (memcmp(BuiltinName.data()+22, "28", 2))
                break;
              return Intrinsic::x86_ssse3_phsub_w_128;	 // "__builtin_ia32_phsubw128"
            case '2':	 // 1 string to match.
              if (memcmp(BuiltinName.data()+22, "56", 2))
                break;
              return Intrinsic::x86_avx2_phsub_w;	 // "__builtin_ia32_phsubw256"
            }
            break;
          }
          break;
        }
        break;
      case 'm':	 // 29 strings to match.
        switch (BuiltinName[17]) {
        default: break;
        case 'a':	 // 13 strings to match.
          switch (BuiltinName[18]) {
          default: break;
          case 'd':	 // 1 string to match.
            if (memcmp(BuiltinName.data()+19, "dubsw", 5))
              break;
            return Intrinsic::x86_ssse3_pmadd_ub_sw;	 // "__builtin_ia32_pmaddubsw"
          case 'x':	 // 12 strings to match.
            switch (BuiltinName[19]) {
            default: break;
            case 's':	 // 6 strings to match.
              switch (BuiltinName[20]) {
              default: break;
              case 'b':	 // 2 strings to match.
                switch (BuiltinName[21]) {
                default: break;
                case '1':	 // 1 string to match.
                  if (memcmp(BuiltinName.data()+22, "28", 2))
                    break;
                  return Intrinsic::x86_sse41_pmaxsb;	 // "__builtin_ia32_pmaxsb128"
                case '2':	 // 1 string to match.
                  if (memcmp(BuiltinName.data()+22, "56", 2))
                    break;
                  return Intrinsic::x86_avx2_pmaxs_b;	 // "__builtin_ia32_pmaxsb256"
                }
                break;
              case 'd':	 // 2 strings to match.
                switch (BuiltinName[21]) {
                default: break;
                case '1':	 // 1 string to match.
                  if (memcmp(BuiltinName.data()+22, "28", 2))
                    break;
                  return Intrinsic::x86_sse41_pmaxsd;	 // "__builtin_ia32_pmaxsd128"
                case '2':	 // 1 string to match.
                  if (memcmp(BuiltinName.data()+22, "56", 2))
                    break;
                  return Intrinsic::x86_avx2_pmaxs_d;	 // "__builtin_ia32_pmaxsd256"
                }
                break;
              case 'w':	 // 2 strings to match.
                switch (BuiltinName[21]) {
                default: break;
                case '1':	 // 1 string to match.
                  if (memcmp(BuiltinName.data()+22, "28", 2))
                    break;
                  return Intrinsic::x86_sse2_pmaxs_w;	 // "__builtin_ia32_pmaxsw128"
                case '2':	 // 1 string to match.
                  if (memcmp(BuiltinName.data()+22, "56", 2))
                    break;
                  return Intrinsic::x86_avx2_pmaxs_w;	 // "__builtin_ia32_pmaxsw256"
                }
                break;
              }
              break;
            case 'u':	 // 6 strings to match.
              switch (BuiltinName[20]) {
              default: break;
              case 'b':	 // 2 strings to match.
                switch (BuiltinName[21]) {
                default: break;
                case '1':	 // 1 string to match.
                  if (memcmp(BuiltinName.data()+22, "28", 2))
                    break;
                  return Intrinsic::x86_sse2_pmaxu_b;	 // "__builtin_ia32_pmaxub128"
                case '2':	 // 1 string to match.
                  if (memcmp(BuiltinName.data()+22, "56", 2))
                    break;
                  return Intrinsic::x86_avx2_pmaxu_b;	 // "__builtin_ia32_pmaxub256"
                }
                break;
              case 'd':	 // 2 strings to match.
                switch (BuiltinName[21]) {
                default: break;
                case '1':	 // 1 string to match.
                  if (memcmp(BuiltinName.data()+22, "28", 2))
                    break;
                  return Intrinsic::x86_sse41_pmaxud;	 // "__builtin_ia32_pmaxud128"
                case '2':	 // 1 string to match.
                  if (memcmp(BuiltinName.data()+22, "56", 2))
                    break;
                  return Intrinsic::x86_avx2_pmaxu_d;	 // "__builtin_ia32_pmaxud256"
                }
                break;
              case 'w':	 // 2 strings to match.
                switch (BuiltinName[21]) {
                default: break;
                case '1':	 // 1 string to match.
                  if (memcmp(BuiltinName.data()+22, "28", 2))
                    break;
                  return Intrinsic::x86_sse41_pmaxuw;	 // "__builtin_ia32_pmaxuw128"
                case '2':	 // 1 string to match.
                  if (memcmp(BuiltinName.data()+22, "56", 2))
                    break;
                  return Intrinsic::x86_avx2_pmaxu_w;	 // "__builtin_ia32_pmaxuw256"
                }
                break;
              }
              break;
            }
            break;
          }
          break;
        case 'i':	 // 12 strings to match.
          if (BuiltinName[18] != 'n')
            break;
          switch (BuiltinName[19]) {
          default: break;
          case 's':	 // 6 strings to match.
            switch (BuiltinName[20]) {
            default: break;
            case 'b':	 // 2 strings to match.
              switch (BuiltinName[21]) {
              default: break;
              case '1':	 // 1 string to match.
                if (memcmp(BuiltinName.data()+22, "28", 2))
                  break;
                return Intrinsic::x86_sse41_pminsb;	 // "__builtin_ia32_pminsb128"
              case '2':	 // 1 string to match.
                if (memcmp(BuiltinName.data()+22, "56", 2))
                  break;
                return Intrinsic::x86_avx2_pmins_b;	 // "__builtin_ia32_pminsb256"
              }
              break;
            case 'd':	 // 2 strings to match.
              switch (BuiltinName[21]) {
              default: break;
              case '1':	 // 1 string to match.
                if (memcmp(BuiltinName.data()+22, "28", 2))
                  break;
                return Intrinsic::x86_sse41_pminsd;	 // "__builtin_ia32_pminsd128"
              case '2':	 // 1 string to match.
                if (memcmp(BuiltinName.data()+22, "56", 2))
                  break;
                return Intrinsic::x86_avx2_pmins_d;	 // "__builtin_ia32_pminsd256"
              }
              break;
            case 'w':	 // 2 strings to match.
              switch (BuiltinName[21]) {
              default: break;
              case '1':	 // 1 string to match.
                if (memcmp(BuiltinName.data()+22, "28", 2))
                  break;
                return Intrinsic::x86_sse2_pmins_w;	 // "__builtin_ia32_pminsw128"
              case '2':	 // 1 string to match.
                if (memcmp(BuiltinName.data()+22, "56", 2))
                  break;
                return Intrinsic::x86_avx2_pmins_w;	 // "__builtin_ia32_pminsw256"
              }
              break;
            }
            break;
          case 'u':	 // 6 strings to match.
            switch (BuiltinName[20]) {
            default: break;
            case 'b':	 // 2 strings to match.
              switch (BuiltinName[21]) {
              default: break;
              case '1':	 // 1 string to match.
                if (memcmp(BuiltinName.data()+22, "28", 2))
                  break;
                return Intrinsic::x86_sse2_pminu_b;	 // "__builtin_ia32_pminub128"
              case '2':	 // 1 string to match.
                if (memcmp(BuiltinName.data()+22, "56", 2))
                  break;
                return Intrinsic::x86_avx2_pminu_b;	 // "__builtin_ia32_pminub256"
              }
              break;
            case 'd':	 // 2 strings to match.
              switch (BuiltinName[21]) {
              default: break;
              case '1':	 // 1 string to match.
                if (memcmp(BuiltinName.data()+22, "28", 2))
                  break;
                return Intrinsic::x86_sse41_pminud;	 // "__builtin_ia32_pminud128"
              case '2':	 // 1 string to match.
                if (memcmp(BuiltinName.data()+22, "56", 2))
                  break;
                return Intrinsic::x86_avx2_pminu_d;	 // "__builtin_ia32_pminud256"
              }
              break;
            case 'w':	 // 2 strings to match.
              switch (BuiltinName[21]) {
              default: break;
              case '1':	 // 1 string to match.
                if (memcmp(BuiltinName.data()+22, "28", 2))
                  break;
                return Intrinsic::x86_sse41_pminuw;	 // "__builtin_ia32_pminuw128"
              case '2':	 // 1 string to match.
                if (memcmp(BuiltinName.data()+22, "56", 2))
                  break;
                return Intrinsic::x86_avx2_pminu_w;	 // "__builtin_ia32_pminuw256"
              }
              break;
            }
            break;
          }
          break;
        case 'u':	 // 4 strings to match.
          if (BuiltinName[18] != 'l')
            break;
          switch (BuiltinName[19]) {
          default: break;
          case 'd':	 // 2 strings to match.
            if (BuiltinName[20] != 'q')
              break;
            switch (BuiltinName[21]) {
            default: break;
            case '1':	 // 1 string to match.
              if (memcmp(BuiltinName.data()+22, "28", 2))
                break;
              return Intrinsic::x86_sse41_pmuldq;	 // "__builtin_ia32_pmuldq128"
            case '2':	 // 1 string to match.
              if (memcmp(BuiltinName.data()+22, "56", 2))
                break;
              return Intrinsic::x86_avx2_pmul_dq;	 // "__builtin_ia32_pmuldq256"
            }
            break;
          case 'h':	 // 2 strings to match.
            if (BuiltinName[20] != 'w')
              break;
            switch (BuiltinName[21]) {
            default: break;
            case '1':	 // 1 string to match.
              if (memcmp(BuiltinName.data()+22, "28", 2))
                break;
              return Intrinsic::x86_sse2_pmulh_w;	 // "__builtin_ia32_pmulhw128"
            case '2':	 // 1 string to match.
              if (memcmp(BuiltinName.data()+22, "56", 2))
                break;
              return Intrinsic::x86_avx2_pmulh_w;	 // "__builtin_ia32_pmulhw256"
            }
            break;
          }
          break;
        }
        break;
      case 's':	 // 30 strings to match.
        switch (BuiltinName[17]) {
        default: break;
        case 'a':	 // 2 strings to match.
          if (memcmp(BuiltinName.data()+18, "dbw", 3))
            break;
          switch (BuiltinName[21]) {
          default: break;
          case '1':	 // 1 string to match.
            if (memcmp(BuiltinName.data()+22, "28", 2))
              break;
            return Intrinsic::x86_sse2_psad_bw;	 // "__builtin_ia32_psadbw128"
          case '2':	 // 1 string to match.
            if (memcmp(BuiltinName.data()+22, "56", 2))
              break;
            return Intrinsic::x86_avx2_psad_bw;	 // "__builtin_ia32_psadbw256"
          }
          break;
        case 'h':	 // 2 strings to match.
          if (memcmp(BuiltinName.data()+18, "ufb", 3))
            break;
          switch (BuiltinName[21]) {
          default: break;
          case '1':	 // 1 string to match.
            if (memcmp(BuiltinName.data()+22, "28", 2))
              break;
            return Intrinsic::x86_ssse3_pshuf_b_128;	 // "__builtin_ia32_pshufb128"
          case '2':	 // 1 string to match.
            if (memcmp(BuiltinName.data()+22, "56", 2))
              break;
            return Intrinsic::x86_avx2_pshuf_b;	 // "__builtin_ia32_pshufb256"
          }
          break;
        case 'i':	 // 6 strings to match.
          if (memcmp(BuiltinName.data()+18, "gn", 2))
            break;
          switch (BuiltinName[20]) {
          default: break;
          case 'b':	 // 2 strings to match.
            switch (BuiltinName[21]) {
            default: break;
            case '1':	 // 1 string to match.
              if (memcmp(BuiltinName.data()+22, "28", 2))
                break;
              return Intrinsic::x86_ssse3_psign_b_128;	 // "__builtin_ia32_psignb128"
            case '2':	 // 1 string to match.
              if (memcmp(BuiltinName.data()+22, "56", 2))
                break;
              return Intrinsic::x86_avx2_psign_b;	 // "__builtin_ia32_psignb256"
            }
            break;
          case 'd':	 // 2 strings to match.
            switch (BuiltinName[21]) {
            default: break;
            case '1':	 // 1 string to match.
              if (memcmp(BuiltinName.data()+22, "28", 2))
                break;
              return Intrinsic::x86_ssse3_psign_d_128;	 // "__builtin_ia32_psignd128"
            case '2':	 // 1 string to match.
              if (memcmp(BuiltinName.data()+22, "56", 2))
                break;
              return Intrinsic::x86_avx2_psign_d;	 // "__builtin_ia32_psignd256"
            }
            break;
          case 'w':	 // 2 strings to match.
            switch (BuiltinName[21]) {
            default: break;
            case '1':	 // 1 string to match.
              if (memcmp(BuiltinName.data()+22, "28", 2))
                break;
              return Intrinsic::x86_ssse3_psign_w_128;	 // "__builtin_ia32_psignw128"
            case '2':	 // 1 string to match.
              if (memcmp(BuiltinName.data()+22, "56", 2))
                break;
              return Intrinsic::x86_avx2_psign_w;	 // "__builtin_ia32_psignw256"
            }
            break;
          }
          break;
        case 'l':	 // 6 strings to match.
          if (BuiltinName[18] != 'l')
            break;
          switch (BuiltinName[19]) {
          default: break;
          case 'd':	 // 2 strings to match.
            if (BuiltinName[20] != 'i')
              break;
            switch (BuiltinName[21]) {
            default: break;
            case '1':	 // 1 string to match.
              if (memcmp(BuiltinName.data()+22, "28", 2))
                break;
              return Intrinsic::x86_sse2_pslli_d;	 // "__builtin_ia32_pslldi128"
            case '2':	 // 1 string to match.
              if (memcmp(BuiltinName.data()+22, "56", 2))
                break;
              return Intrinsic::x86_avx2_pslli_d;	 // "__builtin_ia32_pslldi256"
            }
            break;
          case 'q':	 // 2 strings to match.
            if (BuiltinName[20] != 'i')
              break;
            switch (BuiltinName[21]) {
            default: break;
            case '1':	 // 1 string to match.
              if (memcmp(BuiltinName.data()+22, "28", 2))
                break;
              return Intrinsic::x86_sse2_pslli_q;	 // "__builtin_ia32_psllqi128"
            case '2':	 // 1 string to match.
              if (memcmp(BuiltinName.data()+22, "56", 2))
                break;
              return Intrinsic::x86_avx2_pslli_q;	 // "__builtin_ia32_psllqi256"
            }
            break;
          case 'w':	 // 2 strings to match.
            if (BuiltinName[20] != 'i')
              break;
            switch (BuiltinName[21]) {
            default: break;
            case '1':	 // 1 string to match.
              if (memcmp(BuiltinName.data()+22, "28", 2))
                break;
              return Intrinsic::x86_sse2_pslli_w;	 // "__builtin_ia32_psllwi128"
            case '2':	 // 1 string to match.
              if (memcmp(BuiltinName.data()+22, "56", 2))
                break;
              return Intrinsic::x86_avx2_pslli_w;	 // "__builtin_ia32_psllwi256"
            }
            break;
          }
          break;
        case 'r':	 // 10 strings to match.
          switch (BuiltinName[18]) {
          default: break;
          case 'a':	 // 4 strings to match.
            switch (BuiltinName[19]) {
            default: break;
            case 'd':	 // 2 strings to match.
              if (BuiltinName[20] != 'i')
                break;
              switch (BuiltinName[21]) {
              default: break;
              case '1':	 // 1 string to match.
                if (memcmp(BuiltinName.data()+22, "28", 2))
                  break;
                return Intrinsic::x86_sse2_psrai_d;	 // "__builtin_ia32_psradi128"
              case '2':	 // 1 string to match.
                if (memcmp(BuiltinName.data()+22, "56", 2))
                  break;
                return Intrinsic::x86_avx2_psrai_d;	 // "__builtin_ia32_psradi256"
              }
              break;
            case 'w':	 // 2 strings to match.
              if (BuiltinName[20] != 'i')
                break;
              switch (BuiltinName[21]) {
              default: break;
              case '1':	 // 1 string to match.
                if (memcmp(BuiltinName.data()+22, "28", 2))
                  break;
                return Intrinsic::x86_sse2_psrai_w;	 // "__builtin_ia32_psrawi128"
              case '2':	 // 1 string to match.
                if (memcmp(BuiltinName.data()+22, "56", 2))
                  break;
                return Intrinsic::x86_avx2_psrai_w;	 // "__builtin_ia32_psrawi256"
              }
              break;
            }
            break;
          case 'l':	 // 6 strings to match.
            switch (BuiltinName[19]) {
            default: break;
            case 'd':	 // 2 strings to match.
              if (BuiltinName[20] != 'i')
                break;
              switch (BuiltinName[21]) {
              default: break;
              case '1':	 // 1 string to match.
                if (memcmp(BuiltinName.data()+22, "28", 2))
                  break;
                return Intrinsic::x86_sse2_psrli_d;	 // "__builtin_ia32_psrldi128"
              case '2':	 // 1 string to match.
                if (memcmp(BuiltinName.data()+22, "56", 2))
                  break;
                return Intrinsic::x86_avx2_psrli_d;	 // "__builtin_ia32_psrldi256"
              }
              break;
            case 'q':	 // 2 strings to match.
              if (BuiltinName[20] != 'i')
                break;
              switch (BuiltinName[21]) {
              default: break;
              case '1':	 // 1 string to match.
                if (memcmp(BuiltinName.data()+22, "28", 2))
                  break;
                return Intrinsic::x86_sse2_psrli_q;	 // "__builtin_ia32_psrlqi128"
              case '2':	 // 1 string to match.
                if (memcmp(BuiltinName.data()+22, "56", 2))
                  break;
                return Intrinsic::x86_avx2_psrli_q;	 // "__builtin_ia32_psrlqi256"
              }
              break;
            case 'w':	 // 2 strings to match.
              if (BuiltinName[20] != 'i')
                break;
              switch (BuiltinName[21]) {
              default: break;
              case '1':	 // 1 string to match.
                if (memcmp(BuiltinName.data()+22, "28", 2))
                  break;
                return Intrinsic::x86_sse2_psrli_w;	 // "__builtin_ia32_psrlwi128"
              case '2':	 // 1 string to match.
                if (memcmp(BuiltinName.data()+22, "56", 2))
                  break;
                return Intrinsic::x86_avx2_psrli_w;	 // "__builtin_ia32_psrlwi256"
              }
              break;
            }
            break;
          }
          break;
        case 'u':	 // 4 strings to match.
          if (memcmp(BuiltinName.data()+18, "bs", 2))
            break;
          switch (BuiltinName[20]) {
          default: break;
          case 'b':	 // 2 strings to match.
            switch (BuiltinName[21]) {
            default: break;
            case '1':	 // 1 string to match.
              if (memcmp(BuiltinName.data()+22, "28", 2))
                break;
              return Intrinsic::x86_sse2_psubs_b;	 // "__builtin_ia32_psubsb128"
            case '2':	 // 1 string to match.
              if (memcmp(BuiltinName.data()+22, "56", 2))
                break;
              return Intrinsic::x86_avx2_psubs_b;	 // "__builtin_ia32_psubsb256"
            }
            break;
          case 'w':	 // 2 strings to match.
            switch (BuiltinName[21]) {
            default: break;
            case '1':	 // 1 string to match.
              if (memcmp(BuiltinName.data()+22, "28", 2))
                break;
              return Intrinsic::x86_sse2_psubs_w;	 // "__builtin_ia32_psubsw128"
            case '2':	 // 1 string to match.
              if (memcmp(BuiltinName.data()+22, "56", 2))
                break;
              return Intrinsic::x86_avx2_psubs_w;	 // "__builtin_ia32_psubsw256"
            }
            break;
          }
          break;
        }
        break;
      case 't':	 // 4 strings to match.
        if (memcmp(BuiltinName.data()+17, "est", 3))
          break;
        switch (BuiltinName[20]) {
        default: break;
        case 'c':	 // 2 strings to match.
          switch (BuiltinName[21]) {
          default: break;
          case '1':	 // 1 string to match.
            if (memcmp(BuiltinName.data()+22, "28", 2))
              break;
            return Intrinsic::x86_sse41_ptestc;	 // "__builtin_ia32_ptestc128"
          case '2':	 // 1 string to match.
            if (memcmp(BuiltinName.data()+22, "56", 2))
              break;
            return Intrinsic::x86_avx_ptestc_256;	 // "__builtin_ia32_ptestc256"
          }
          break;
        case 'z':	 // 2 strings to match.
          switch (BuiltinName[21]) {
          default: break;
          case '1':	 // 1 string to match.
            if (memcmp(BuiltinName.data()+22, "28", 2))
              break;
            return Intrinsic::x86_sse41_ptestz;	 // "__builtin_ia32_ptestz128"
          case '2':	 // 1 string to match.
            if (memcmp(BuiltinName.data()+22, "56", 2))
              break;
            return Intrinsic::x86_avx_ptestz_256;	 // "__builtin_ia32_ptestz256"
          }
          break;
        }
        break;
      case 'u':	 // 6 strings to match.
        if (memcmp(BuiltinName.data()+17, "npck", 4))
          break;
        switch (BuiltinName[21]) {
        default: break;
        case 'h':	 // 3 strings to match.
          switch (BuiltinName[22]) {
          default: break;
          case 'b':	 // 1 string to match.
            if (BuiltinName[23] != 'w')
              break;
            return Intrinsic::x86_mmx_punpckhbw;	 // "__builtin_ia32_punpckhbw"
          case 'd':	 // 1 string to match.
            if (BuiltinName[23] != 'q')
              break;
            return Intrinsic::x86_mmx_punpckhdq;	 // "__builtin_ia32_punpckhdq"
          case 'w':	 // 1 string to match.
            if (BuiltinName[23] != 'd')
              break;
            return Intrinsic::x86_mmx_punpckhwd;	 // "__builtin_ia32_punpckhwd"
          }
          break;
        case 'l':	 // 3 strings to match.
          switch (BuiltinName[22]) {
          default: break;
          case 'b':	 // 1 string to match.
            if (BuiltinName[23] != 'w')
              break;
            return Intrinsic::x86_mmx_punpcklbw;	 // "__builtin_ia32_punpcklbw"
          case 'd':	 // 1 string to match.
            if (BuiltinName[23] != 'q')
              break;
            return Intrinsic::x86_mmx_punpckldq;	 // "__builtin_ia32_punpckldq"
          case 'w':	 // 1 string to match.
            if (BuiltinName[23] != 'd')
              break;
            return Intrinsic::x86_mmx_punpcklwd;	 // "__builtin_ia32_punpcklwd"
          }
          break;
        }
        break;
      }
      break;
    case 's':	 // 2 strings to match.
      if (memcmp(BuiltinName.data()+16, "qrtp", 4))
        break;
      switch (BuiltinName[20]) {
      default: break;
      case 'd':	 // 1 string to match.
        if (memcmp(BuiltinName.data()+21, "256", 3))
          break;
        return Intrinsic::x86_avx_sqrt_pd_256;	 // "__builtin_ia32_sqrtpd256"
      case 's':	 // 1 string to match.
        if (memcmp(BuiltinName.data()+21, "256", 3))
          break;
        return Intrinsic::x86_avx_sqrt_ps_256;	 // "__builtin_ia32_sqrtps256"
      }
      break;
    case 'u':	 // 5 strings to match.
      if (memcmp(BuiltinName.data()+16, "comisd", 6))
        break;
      switch (BuiltinName[22]) {
      default: break;
      case 'e':	 // 1 string to match.
        if (BuiltinName[23] != 'q')
          break;
        return Intrinsic::x86_sse2_ucomieq_sd;	 // "__builtin_ia32_ucomisdeq"
      case 'g':	 // 2 strings to match.
        switch (BuiltinName[23]) {
        default: break;
        case 'e':	 // 1 string to match.
          return Intrinsic::x86_sse2_ucomige_sd;	 // "__builtin_ia32_ucomisdge"
        case 't':	 // 1 string to match.
          return Intrinsic::x86_sse2_ucomigt_sd;	 // "__builtin_ia32_ucomisdgt"
        }
        break;
      case 'l':	 // 2 strings to match.
        switch (BuiltinName[23]) {
        default: break;
        case 'e':	 // 1 string to match.
          return Intrinsic::x86_sse2_ucomile_sd;	 // "__builtin_ia32_ucomisdle"
        case 't':	 // 1 string to match.
          return Intrinsic::x86_sse2_ucomilt_sd;	 // "__builtin_ia32_ucomisdlt"
        }
        break;
      }
      break;
    case 'v':	 // 10 strings to match.
      switch (BuiltinName[16]) {
      default: break;
      case 'c':	 // 2 strings to match.
        if (memcmp(BuiltinName.data()+17, "vtp", 3))
          break;
        switch (BuiltinName[20]) {
        default: break;
        case 'h':	 // 1 string to match.
          if (memcmp(BuiltinName.data()+21, "2ps", 3))
            break;
          return Intrinsic::x86_vcvtph2ps_128;	 // "__builtin_ia32_vcvtph2ps"
        case 's':	 // 1 string to match.
          if (memcmp(BuiltinName.data()+21, "2ph", 3))
            break;
          return Intrinsic::x86_vcvtps2ph_128;	 // "__builtin_ia32_vcvtps2ph"
        }
        break;
      case 'f':	 // 8 strings to match.
        if (memcmp(BuiltinName.data()+17, "nm", 2))
          break;
        switch (BuiltinName[19]) {
        default: break;
        case 'a':	 // 4 strings to match.
          if (memcmp(BuiltinName.data()+20, "dd", 2))
            break;
          switch (BuiltinName[22]) {
          default: break;
          case 'p':	 // 2 strings to match.
            switch (BuiltinName[23]) {
            default: break;
            case 'd':	 // 1 string to match.
              return Intrinsic::x86_fma_vfnmadd_pd;	 // "__builtin_ia32_vfnmaddpd"
            case 's':	 // 1 string to match.
              return Intrinsic::x86_fma_vfnmadd_ps;	 // "__builtin_ia32_vfnmaddps"
            }
            break;
          case 's':	 // 2 strings to match.
            switch (BuiltinName[23]) {
            default: break;
            case 'd':	 // 1 string to match.
              return Intrinsic::x86_fma_vfnmadd_sd;	 // "__builtin_ia32_vfnmaddsd"
            case 's':	 // 1 string to match.
              return Intrinsic::x86_fma_vfnmadd_ss;	 // "__builtin_ia32_vfnmaddss"
            }
            break;
          }
          break;
        case 's':	 // 4 strings to match.
          if (memcmp(BuiltinName.data()+20, "ub", 2))
            break;
          switch (BuiltinName[22]) {
          default: break;
          case 'p':	 // 2 strings to match.
            switch (BuiltinName[23]) {
            default: break;
            case 'd':	 // 1 string to match.
              return Intrinsic::x86_fma_vfnmsub_pd;	 // "__builtin_ia32_vfnmsubpd"
            case 's':	 // 1 string to match.
              return Intrinsic::x86_fma_vfnmsub_ps;	 // "__builtin_ia32_vfnmsubps"
            }
            break;
          case 's':	 // 2 strings to match.
            switch (BuiltinName[23]) {
            default: break;
            case 'd':	 // 1 string to match.
              return Intrinsic::x86_fma_vfnmsub_sd;	 // "__builtin_ia32_vfnmsubsd"
            case 's':	 // 1 string to match.
              return Intrinsic::x86_fma_vfnmsub_ss;	 // "__builtin_ia32_vfnmsubss"
            }
            break;
          }
          break;
        }
        break;
      }
      break;
    }
    break;
  case 25:	 // 59 strings to match.
    if (memcmp(BuiltinName.data()+0, "__builtin_ia32_", 15))
      break;
    switch (BuiltinName[15]) {
    default: break;
    case 'b':	 // 2 strings to match.
      if (memcmp(BuiltinName.data()+16, "lendp", 5))
        break;
      switch (BuiltinName[21]) {
      default: break;
      case 'd':	 // 1 string to match.
        if (memcmp(BuiltinName.data()+22, "256", 3))
          break;
        return Intrinsic::x86_avx_blend_pd_256;	 // "__builtin_ia32_blendpd256"
      case 's':	 // 1 string to match.
        if (memcmp(BuiltinName.data()+22, "256", 3))
          break;
        return Intrinsic::x86_avx_blend_ps_256;	 // "__builtin_ia32_blendps256"
      }
      break;
    case 'c':	 // 4 strings to match.
      if (memcmp(BuiltinName.data()+16, "vts", 3))
        break;
      switch (BuiltinName[19]) {
      default: break;
      case 'd':	 // 1 string to match.
        if (memcmp(BuiltinName.data()+20, "2si64", 5))
          break;
        return Intrinsic::x86_sse2_cvtsd2si64;	 // "__builtin_ia32_cvtsd2si64"
      case 'i':	 // 2 strings to match.
        if (memcmp(BuiltinName.data()+20, "642s", 4))
          break;
        switch (BuiltinName[24]) {
        default: break;
        case 'd':	 // 1 string to match.
          return Intrinsic::x86_sse2_cvtsi642sd;	 // "__builtin_ia32_cvtsi642sd"
        case 's':	 // 1 string to match.
          return Intrinsic::x86_sse_cvtsi642ss;	 // "__builtin_ia32_cvtsi642ss"
        }
        break;
      case 's':	 // 1 string to match.
        if (memcmp(BuiltinName.data()+20, "2si64", 5))
          break;
        return Intrinsic::x86_sse_cvtss2si64;	 // "__builtin_ia32_cvtss2si64"
      }
      break;
    case 'g':	 // 4 strings to match.
      if (memcmp(BuiltinName.data()+16, "ather", 5))
        break;
      switch (BuiltinName[21]) {
      default: break;
      case 'd':	 // 2 strings to match.
        if (memcmp(BuiltinName.data()+22, "_p", 2))
          break;
        switch (BuiltinName[24]) {
        default: break;
        case 'd':	 // 1 string to match.
          return Intrinsic::x86_avx2_gather_d_pd;	 // "__builtin_ia32_gatherd_pd"
        case 's':	 // 1 string to match.
          return Intrinsic::x86_avx2_gather_d_ps;	 // "__builtin_ia32_gatherd_ps"
        }
        break;
      case 'q':	 // 2 strings to match.
        if (memcmp(BuiltinName.data()+22, "_p", 2))
          break;
        switch (BuiltinName[24]) {
        default: break;
        case 'd':	 // 1 string to match.
          return Intrinsic::x86_avx2_gather_q_pd;	 // "__builtin_ia32_gatherq_pd"
        case 's':	 // 1 string to match.
          return Intrinsic::x86_avx2_gather_q_ps;	 // "__builtin_ia32_gatherq_ps"
        }
        break;
      }
      break;
    case 'm':	 // 7 strings to match.
      switch (BuiltinName[16]) {
      default: break;
      case 'a':	 // 5 strings to match.
        if (memcmp(BuiltinName.data()+17, "sk", 2))
          break;
        switch (BuiltinName[19]) {
        default: break;
        case 'l':	 // 2 strings to match.
          if (memcmp(BuiltinName.data()+20, "oadp", 4))
            break;
          switch (BuiltinName[24]) {
          default: break;
          case 'd':	 // 1 string to match.
            return Intrinsic::x86_avx_maskload_pd;	 // "__builtin_ia32_maskloadpd"
          case 's':	 // 1 string to match.
            return Intrinsic::x86_avx_maskload_ps;	 // "__builtin_ia32_maskloadps"
          }
          break;
        case 'm':	 // 1 string to match.
          if (memcmp(BuiltinName.data()+20, "ovdqu", 5))
            break;
          return Intrinsic::x86_sse2_maskmov_dqu;	 // "__builtin_ia32_maskmovdqu"
        case 's':	 // 2 strings to match.
          if (memcmp(BuiltinName.data()+20, "tore", 4))
            break;
          switch (BuiltinName[24]) {
          default: break;
          case 'd':	 // 1 string to match.
            return Intrinsic::x86_avx2_maskstore_d;	 // "__builtin_ia32_maskstored"
          case 'q':	 // 1 string to match.
            return Intrinsic::x86_avx2_maskstore_q;	 // "__builtin_ia32_maskstoreq"
          }
          break;
        }
        break;
      case 'p':	 // 2 strings to match.
        if (memcmp(BuiltinName.data()+17, "sadbw", 5))
          break;
        switch (BuiltinName[22]) {
        default: break;
        case '1':	 // 1 string to match.
          if (memcmp(BuiltinName.data()+23, "28", 2))
            break;
          return Intrinsic::x86_sse41_mpsadbw;	 // "__builtin_ia32_mpsadbw128"
        case '2':	 // 1 string to match.
          if (memcmp(BuiltinName.data()+23, "56", 2))
            break;
          return Intrinsic::x86_avx2_mpsadbw;	 // "__builtin_ia32_mpsadbw256"
        }
        break;
      }
      break;
    case 'p':	 // 26 strings to match.
      switch (BuiltinName[16]) {
      default: break;
      case 'a':	 // 4 strings to match.
        if (memcmp(BuiltinName.data()+17, "ddus", 4))
          break;
        switch (BuiltinName[21]) {
        default: break;
        case 'b':	 // 2 strings to match.
          switch (BuiltinName[22]) {
          default: break;
          case '1':	 // 1 string to match.
            if (memcmp(BuiltinName.data()+23, "28", 2))
              break;
            return Intrinsic::x86_sse2_paddus_b;	 // "__builtin_ia32_paddusb128"
          case '2':	 // 1 string to match.
            if (memcmp(BuiltinName.data()+23, "56", 2))
              break;
            return Intrinsic::x86_avx2_paddus_b;	 // "__builtin_ia32_paddusb256"
          }
          break;
        case 'w':	 // 2 strings to match.
          switch (BuiltinName[22]) {
          default: break;
          case '1':	 // 1 string to match.
            if (memcmp(BuiltinName.data()+23, "28", 2))
              break;
            return Intrinsic::x86_sse2_paddus_w;	 // "__builtin_ia32_paddusw128"
          case '2':	 // 1 string to match.
            if (memcmp(BuiltinName.data()+23, "56", 2))
              break;
            return Intrinsic::x86_avx2_paddus_w;	 // "__builtin_ia32_paddusw256"
          }
          break;
        }
        break;
      case 'b':	 // 4 strings to match.
        if (memcmp(BuiltinName.data()+17, "lend", 4))
          break;
        switch (BuiltinName[21]) {
        default: break;
        case 'd':	 // 2 strings to match.
          switch (BuiltinName[22]) {
          default: break;
          case '1':	 // 1 string to match.
            if (memcmp(BuiltinName.data()+23, "28", 2))
              break;
            return Intrinsic::x86_avx2_pblendd_128;	 // "__builtin_ia32_pblendd128"
          case '2':	 // 1 string to match.
            if (memcmp(BuiltinName.data()+23, "56", 2))
              break;
            return Intrinsic::x86_avx2_pblendd_256;	 // "__builtin_ia32_pblendd256"
          }
          break;
        case 'w':	 // 2 strings to match.
          switch (BuiltinName[22]) {
          default: break;
          case '1':	 // 1 string to match.
            if (memcmp(BuiltinName.data()+23, "28", 2))
              break;
            return Intrinsic::x86_sse41_pblendw;	 // "__builtin_ia32_pblendw128"
          case '2':	 // 1 string to match.
            if (memcmp(BuiltinName.data()+23, "56", 2))
              break;
            return Intrinsic::x86_avx2_pblendw;	 // "__builtin_ia32_pblendw256"
          }
          break;
        }
        break;
      case 'h':	 // 4 strings to match.
        switch (BuiltinName[17]) {
        default: break;
        case 'a':	 // 2 strings to match.
          if (memcmp(BuiltinName.data()+18, "ddsw", 4))
            break;
          switch (BuiltinName[22]) {
          default: break;
          case '1':	 // 1 string to match.
            if (memcmp(BuiltinName.data()+23, "28", 2))
              break;
            return Intrinsic::x86_ssse3_phadd_sw_128;	 // "__builtin_ia32_phaddsw128"
          case '2':	 // 1 string to match.
            if (memcmp(BuiltinName.data()+23, "56", 2))
              break;
            return Intrinsic::x86_avx2_phadd_sw;	 // "__builtin_ia32_phaddsw256"
          }
          break;
        case 's':	 // 2 strings to match.
          if (memcmp(BuiltinName.data()+18, "ubsw", 4))
            break;
          switch (BuiltinName[22]) {
          default: break;
          case '1':	 // 1 string to match.
            if (memcmp(BuiltinName.data()+23, "28", 2))
              break;
            return Intrinsic::x86_ssse3_phsub_sw_128;	 // "__builtin_ia32_phsubsw128"
          case '2':	 // 1 string to match.
            if (memcmp(BuiltinName.data()+23, "56", 2))
              break;
            return Intrinsic::x86_avx2_phsub_sw;	 // "__builtin_ia32_phsubsw256"
          }
          break;
        }
        break;
      case 'm':	 // 6 strings to match.
        switch (BuiltinName[17]) {
        default: break;
        case 'a':	 // 2 strings to match.
          if (memcmp(BuiltinName.data()+18, "ddwd", 4))
            break;
          switch (BuiltinName[22]) {
          default: break;
          case '1':	 // 1 string to match.
            if (memcmp(BuiltinName.data()+23, "28", 2))
              break;
            return Intrinsic::x86_sse2_pmadd_wd;	 // "__builtin_ia32_pmaddwd128"
          case '2':	 // 1 string to match.
            if (memcmp(BuiltinName.data()+23, "56", 2))
              break;
            return Intrinsic::x86_avx2_pmadd_wd;	 // "__builtin_ia32_pmaddwd256"
          }
          break;
        case 'u':	 // 4 strings to match.
          if (BuiltinName[18] != 'l')
            break;
          switch (BuiltinName[19]) {
          default: break;
          case 'h':	 // 2 strings to match.
            if (memcmp(BuiltinName.data()+20, "uw", 2))
              break;
            switch (BuiltinName[22]) {
            default: break;
            case '1':	 // 1 string to match.
              if (memcmp(BuiltinName.data()+23, "28", 2))
                break;
              return Intrinsic::x86_sse2_pmulhu_w;	 // "__builtin_ia32_pmulhuw128"
            case '2':	 // 1 string to match.
              if (memcmp(BuiltinName.data()+23, "56", 2))
                break;
              return Intrinsic::x86_avx2_pmulhu_w;	 // "__builtin_ia32_pmulhuw256"
            }
            break;
          case 'u':	 // 2 strings to match.
            if (memcmp(BuiltinName.data()+20, "dq", 2))
              break;
            switch (BuiltinName[22]) {
            default: break;
            case '1':	 // 1 string to match.
              if (memcmp(BuiltinName.data()+23, "28", 2))
                break;
              return Intrinsic::x86_sse2_pmulu_dq;	 // "__builtin_ia32_pmuludq128"
            case '2':	 // 1 string to match.
              if (memcmp(BuiltinName.data()+23, "56", 2))
                break;
              return Intrinsic::x86_avx2_pmulu_dq;	 // "__builtin_ia32_pmuludq256"
            }
            break;
          }
          break;
        }
        break;
      case 's':	 // 8 strings to match.
        switch (BuiltinName[17]) {
        default: break;
        case 'l':	 // 2 strings to match.
          if (memcmp(BuiltinName.data()+18, "ldqi", 4))
            break;
          switch (BuiltinName[22]) {
          default: break;
          case '1':	 // 1 string to match.
            if (memcmp(BuiltinName.data()+23, "28", 2))
              break;
            return Intrinsic::x86_sse2_psll_dq;	 // "__builtin_ia32_pslldqi128"
          case '2':	 // 1 string to match.
            if (memcmp(BuiltinName.data()+23, "56", 2))
              break;
            return Intrinsic::x86_avx2_psll_dq;	 // "__builtin_ia32_pslldqi256"
          }
          break;
        case 'r':	 // 2 strings to match.
          if (memcmp(BuiltinName.data()+18, "ldqi", 4))
            break;
          switch (BuiltinName[22]) {
          default: break;
          case '1':	 // 1 string to match.
            if (memcmp(BuiltinName.data()+23, "28", 2))
              break;
            return Intrinsic::x86_sse2_psrl_dq;	 // "__builtin_ia32_psrldqi128"
          case '2':	 // 1 string to match.
            if (memcmp(BuiltinName.data()+23, "56", 2))
              break;
            return Intrinsic::x86_avx2_psrl_dq;	 // "__builtin_ia32_psrldqi256"
          }
          break;
        case 'u':	 // 4 strings to match.
          if (memcmp(BuiltinName.data()+18, "bus", 3))
            break;
          switch (BuiltinName[21]) {
          default: break;
          case 'b':	 // 2 strings to match.
            switch (BuiltinName[22]) {
            default: break;
            case '1':	 // 1 string to match.
              if (memcmp(BuiltinName.data()+23, "28", 2))
                break;
              return Intrinsic::x86_sse2_psubus_b;	 // "__builtin_ia32_psubusb128"
            case '2':	 // 1 string to match.
              if (memcmp(BuiltinName.data()+23, "56", 2))
                break;
              return Intrinsic::x86_avx2_psubus_b;	 // "__builtin_ia32_psubusb256"
            }
            break;
          case 'w':	 // 2 strings to match.
            switch (BuiltinName[22]) {
            default: break;
            case '1':	 // 1 string to match.
              if (memcmp(BuiltinName.data()+23, "28", 2))
                break;
              return Intrinsic::x86_sse2_psubus_w;	 // "__builtin_ia32_psubusw128"
            case '2':	 // 1 string to match.
              if (memcmp(BuiltinName.data()+23, "56", 2))
                break;
              return Intrinsic::x86_avx2_psubus_w;	 // "__builtin_ia32_psubusw256"
            }
            break;
          }
          break;
        }
        break;
      }
      break;
    case 'r':	 // 7 strings to match.
      switch (BuiltinName[16]) {
      default: break;
      case 'd':	 // 4 strings to match.
        switch (BuiltinName[17]) {
        default: break;
        case 'f':	 // 2 strings to match.
          if (memcmp(BuiltinName.data()+18, "sbase", 5))
            break;
          switch (BuiltinName[23]) {
          default: break;
          case '3':	 // 1 string to match.
            if (BuiltinName[24] != '2')
              break;
            return Intrinsic::x86_rdfsbase_32;	 // "__builtin_ia32_rdfsbase32"
          case '6':	 // 1 string to match.
            if (BuiltinName[24] != '4')
              break;
            return Intrinsic::x86_rdfsbase_64;	 // "__builtin_ia32_rdfsbase64"
          }
          break;
        case 'g':	 // 2 strings to match.
          if (memcmp(BuiltinName.data()+18, "sbase", 5))
            break;
          switch (BuiltinName[23]) {
          default: break;
          case '3':	 // 1 string to match.
            if (BuiltinName[24] != '2')
              break;
            return Intrinsic::x86_rdgsbase_32;	 // "__builtin_ia32_rdgsbase32"
          case '6':	 // 1 string to match.
            if (BuiltinName[24] != '4')
              break;
            return Intrinsic::x86_rdgsbase_64;	 // "__builtin_ia32_rdgsbase64"
          }
          break;
        }
        break;
      case 'o':	 // 2 strings to match.
        if (memcmp(BuiltinName.data()+17, "undp", 4))
          break;
        switch (BuiltinName[21]) {
        default: break;
        case 'd':	 // 1 string to match.
          if (memcmp(BuiltinName.data()+22, "256", 3))
            break;
          return Intrinsic::x86_avx_round_pd_256;	 // "__builtin_ia32_roundpd256"
        case 's':	 // 1 string to match.
          if (memcmp(BuiltinName.data()+22, "256", 3))
            break;
          return Intrinsic::x86_avx_round_ps_256;	 // "__builtin_ia32_roundps256"
        }
        break;
      case 's':	 // 1 string to match.
        if (memcmp(BuiltinName.data()+17, "qrtps256", 8))
          break;
        return Intrinsic::x86_avx_rsqrt_ps_256;	 // "__builtin_ia32_rsqrtps256"
      }
      break;
    case 's':	 // 1 string to match.
      if (memcmp(BuiltinName.data()+16, "torelv4si", 9))
        break;
      return Intrinsic::x86_sse2_storel_dq;	 // "__builtin_ia32_storelv4si"
    case 'u':	 // 1 string to match.
      if (memcmp(BuiltinName.data()+16, "comisdneq", 9))
        break;
      return Intrinsic::x86_sse2_ucomineq_sd;	 // "__builtin_ia32_ucomisdneq"
    case 'v':	 // 3 strings to match.
      switch (BuiltinName[16]) {
      default: break;
      case 't':	 // 2 strings to match.
        if (memcmp(BuiltinName.data()+17, "estnzcp", 7))
          break;
        switch (BuiltinName[24]) {
        default: break;
        case 'd':	 // 1 string to match.
          return Intrinsic::x86_avx_vtestnzc_pd;	 // "__builtin_ia32_vtestnzcpd"
        case 's':	 // 1 string to match.
          return Intrinsic::x86_avx_vtestnzc_ps;	 // "__builtin_ia32_vtestnzcps"
        }
        break;
      case 'z':	 // 1 string to match.
        if (memcmp(BuiltinName.data()+17, "eroupper", 8))
          break;
        return Intrinsic::x86_avx_vzeroupper;	 // "__builtin_ia32_vzeroupper"
      }
      break;
    case 'w':	 // 4 strings to match.
      if (BuiltinName[16] != 'r')
        break;
      switch (BuiltinName[17]) {
      default: break;
      case 'f':	 // 2 strings to match.
        if (memcmp(BuiltinName.data()+18, "sbase", 5))
          break;
        switch (BuiltinName[23]) {
        default: break;
        case '3':	 // 1 string to match.
          if (BuiltinName[24] != '2')
            break;
          return Intrinsic::x86_wrfsbase_32;	 // "__builtin_ia32_wrfsbase32"
        case '6':	 // 1 string to match.
          if (BuiltinName[24] != '4')
            break;
          return Intrinsic::x86_wrfsbase_64;	 // "__builtin_ia32_wrfsbase64"
        }
        break;
      case 'g':	 // 2 strings to match.
        if (memcmp(BuiltinName.data()+18, "sbase", 5))
          break;
        switch (BuiltinName[23]) {
        default: break;
        case '3':	 // 1 string to match.
          if (BuiltinName[24] != '2')
            break;
          return Intrinsic::x86_wrgsbase_32;	 // "__builtin_ia32_wrgsbase32"
        case '6':	 // 1 string to match.
          if (BuiltinName[24] != '4')
            break;
          return Intrinsic::x86_wrgsbase_64;	 // "__builtin_ia32_wrgsbase64"
        }
        break;
      }
      break;
    }
    break;
  case 26:	 // 73 strings to match.
    if (memcmp(BuiltinName.data()+0, "__builtin_ia32_", 15))
      break;
    switch (BuiltinName[15]) {
    default: break;
    case 'a':	 // 2 strings to match.
      if (memcmp(BuiltinName.data()+16, "ddsubp", 6))
        break;
      switch (BuiltinName[22]) {
      default: break;
      case 'd':	 // 1 string to match.
        if (memcmp(BuiltinName.data()+23, "256", 3))
          break;
        return Intrinsic::x86_avx_addsub_pd_256;	 // "__builtin_ia32_addsubpd256"
      case 's':	 // 1 string to match.
        if (memcmp(BuiltinName.data()+23, "256", 3))
          break;
        return Intrinsic::x86_avx_addsub_ps_256;	 // "__builtin_ia32_addsubps256"
      }
      break;
    case 'b':	 // 2 strings to match.
      if (memcmp(BuiltinName.data()+16, "lendvp", 6))
        break;
      switch (BuiltinName[22]) {
      default: break;
      case 'd':	 // 1 string to match.
        if (memcmp(BuiltinName.data()+23, "256", 3))
          break;
        return Intrinsic::x86_avx_blendv_pd_256;	 // "__builtin_ia32_blendvpd256"
      case 's':	 // 1 string to match.
        if (memcmp(BuiltinName.data()+23, "256", 3))
          break;
        return Intrinsic::x86_avx_blendv_ps_256;	 // "__builtin_ia32_blendvps256"
      }
      break;
    case 'c':	 // 8 strings to match.
      if (memcmp(BuiltinName.data()+16, "vt", 2))
        break;
      switch (BuiltinName[18]) {
      default: break;
      case 'd':	 // 2 strings to match.
        if (memcmp(BuiltinName.data()+19, "q2p", 3))
          break;
        switch (BuiltinName[22]) {
        default: break;
        case 'd':	 // 1 string to match.
          if (memcmp(BuiltinName.data()+23, "256", 3))
            break;
          return Intrinsic::x86_avx_cvtdq2_pd_256;	 // "__builtin_ia32_cvtdq2pd256"
        case 's':	 // 1 string to match.
          if (memcmp(BuiltinName.data()+23, "256", 3))
            break;
          return Intrinsic::x86_avx_cvtdq2_ps_256;	 // "__builtin_ia32_cvtdq2ps256"
        }
        break;
      case 'p':	 // 4 strings to match.
        switch (BuiltinName[19]) {
        default: break;
        case 'd':	 // 2 strings to match.
          if (BuiltinName[20] != '2')
            break;
          switch (BuiltinName[21]) {
          default: break;
          case 'd':	 // 1 string to match.
            if (memcmp(BuiltinName.data()+22, "q256", 4))
              break;
            return Intrinsic::x86_avx_cvt_pd2dq_256;	 // "__builtin_ia32_cvtpd2dq256"
          case 'p':	 // 1 string to match.
            if (memcmp(BuiltinName.data()+22, "s256", 4))
              break;
            return Intrinsic::x86_avx_cvt_pd2_ps_256;	 // "__builtin_ia32_cvtpd2ps256"
          }
          break;
        case 's':	 // 2 strings to match.
          if (BuiltinName[20] != '2')
            break;
          switch (BuiltinName[21]) {
          default: break;
          case 'd':	 // 1 string to match.
            if (memcmp(BuiltinName.data()+22, "q256", 4))
              break;
            return Intrinsic::x86_avx_cvt_ps2dq_256;	 // "__builtin_ia32_cvtps2dq256"
          case 'p':	 // 1 string to match.
            if (memcmp(BuiltinName.data()+22, "d256", 4))
              break;
            return Intrinsic::x86_avx_cvt_ps2_pd_256;	 // "__builtin_ia32_cvtps2pd256"
          }
          break;
        }
        break;
      case 't':	 // 2 strings to match.
        if (BuiltinName[19] != 's')
          break;
        switch (BuiltinName[20]) {
        default: break;
        case 'd':	 // 1 string to match.
          if (memcmp(BuiltinName.data()+21, "2si64", 5))
            break;
          return Intrinsic::x86_sse2_cvttsd2si64;	 // "__builtin_ia32_cvttsd2si64"
        case 's':	 // 1 string to match.
          if (memcmp(BuiltinName.data()+21, "2si64", 5))
            break;
          return Intrinsic::x86_sse_cvttss2si64;	 // "__builtin_ia32_cvttss2si64"
        }
        break;
      }
      break;
    case 'i':	 // 1 string to match.
      if (memcmp(BuiltinName.data()+16, "nsertps128", 10))
        break;
      return Intrinsic::x86_sse41_insertps;	 // "__builtin_ia32_insertps128"
    case 'm':	 // 5 strings to match.
      switch (BuiltinName[16]) {
      default: break;
      case 'a':	 // 2 strings to match.
        if (memcmp(BuiltinName.data()+17, "skstorep", 8))
          break;
        switch (BuiltinName[25]) {
        default: break;
        case 'd':	 // 1 string to match.
          return Intrinsic::x86_avx_maskstore_pd;	 // "__builtin_ia32_maskstorepd"
        case 's':	 // 1 string to match.
          return Intrinsic::x86_avx_maskstore_ps;	 // "__builtin_ia32_maskstoreps"
        }
        break;
      case 'o':	 // 3 strings to match.
        if (BuiltinName[17] != 'v')
          break;
        switch (BuiltinName[18]) {
        default: break;
        case 'm':	 // 2 strings to match.
          if (memcmp(BuiltinName.data()+19, "skp", 3))
            break;
          switch (BuiltinName[22]) {
          default: break;
          case 'd':	 // 1 string to match.
            if (memcmp(BuiltinName.data()+23, "256", 3))
              break;
            return Intrinsic::x86_avx_movmsk_pd_256;	 // "__builtin_ia32_movmskpd256"
          case 's':	 // 1 string to match.
            if (memcmp(BuiltinName.data()+23, "256", 3))
              break;
            return Intrinsic::x86_avx_movmsk_ps_256;	 // "__builtin_ia32_movmskps256"
          }
          break;
        case 'n':	 // 1 string to match.
          if (memcmp(BuiltinName.data()+19, "tdqa256", 7))
            break;
          return Intrinsic::x86_avx2_movntdqa;	 // "__builtin_ia32_movntdqa256"
        }
        break;
      }
      break;
    case 'p':	 // 40 strings to match.
      switch (BuiltinName[16]) {
      default: break;
      case 'a':	 // 8 strings to match.
        if (memcmp(BuiltinName.data()+17, "ck", 2))
          break;
        switch (BuiltinName[19]) {
        default: break;
        case 's':	 // 4 strings to match.
          if (BuiltinName[20] != 's')
            break;
          switch (BuiltinName[21]) {
          default: break;
          case 'd':	 // 2 strings to match.
            if (BuiltinName[22] != 'w')
              break;
            switch (BuiltinName[23]) {
            default: break;
            case '1':	 // 1 string to match.
              if (memcmp(BuiltinName.data()+24, "28", 2))
                break;
              return Intrinsic::x86_sse2_packssdw_128;	 // "__builtin_ia32_packssdw128"
            case '2':	 // 1 string to match.
              if (memcmp(BuiltinName.data()+24, "56", 2))
                break;
              return Intrinsic::x86_avx2_packssdw;	 // "__builtin_ia32_packssdw256"
            }
            break;
          case 'w':	 // 2 strings to match.
            if (BuiltinName[22] != 'b')
              break;
            switch (BuiltinName[23]) {
            default: break;
            case '1':	 // 1 string to match.
              if (memcmp(BuiltinName.data()+24, "28", 2))
                break;
              return Intrinsic::x86_sse2_packsswb_128;	 // "__builtin_ia32_packsswb128"
            case '2':	 // 1 string to match.
              if (memcmp(BuiltinName.data()+24, "56", 2))
                break;
              return Intrinsic::x86_avx2_packsswb;	 // "__builtin_ia32_packsswb256"
            }
            break;
          }
          break;
        case 'u':	 // 4 strings to match.
          if (BuiltinName[20] != 's')
            break;
          switch (BuiltinName[21]) {
          default: break;
          case 'd':	 // 2 strings to match.
            if (BuiltinName[22] != 'w')
              break;
            switch (BuiltinName[23]) {
            default: break;
            case '1':	 // 1 string to match.
              if (memcmp(BuiltinName.data()+24, "28", 2))
                break;
              return Intrinsic::x86_sse41_packusdw;	 // "__builtin_ia32_packusdw128"
            case '2':	 // 1 string to match.
              if (memcmp(BuiltinName.data()+24, "56", 2))
                break;
              return Intrinsic::x86_avx2_packusdw;	 // "__builtin_ia32_packusdw256"
            }
            break;
          case 'w':	 // 2 strings to match.
            if (BuiltinName[22] != 'b')
              break;
            switch (BuiltinName[23]) {
            default: break;
            case '1':	 // 1 string to match.
              if (memcmp(BuiltinName.data()+24, "28", 2))
                break;
              return Intrinsic::x86_sse2_packuswb_128;	 // "__builtin_ia32_packuswb128"
            case '2':	 // 1 string to match.
              if (memcmp(BuiltinName.data()+24, "56", 2))
                break;
              return Intrinsic::x86_avx2_packuswb;	 // "__builtin_ia32_packuswb256"
            }
            break;
          }
          break;
        }
        break;
      case 'b':	 // 2 strings to match.
        if (memcmp(BuiltinName.data()+17, "lendvb", 6))
          break;
        switch (BuiltinName[23]) {
        default: break;
        case '1':	 // 1 string to match.
          if (memcmp(BuiltinName.data()+24, "28", 2))
            break;
          return Intrinsic::x86_sse41_pblendvb;	 // "__builtin_ia32_pblendvb128"
        case '2':	 // 1 string to match.
          if (memcmp(BuiltinName.data()+24, "56", 2))
            break;
          return Intrinsic::x86_avx2_pblendvb;	 // "__builtin_ia32_pblendvb256"
        }
        break;
      case 'm':	 // 28 strings to match.
        switch (BuiltinName[17]) {
        default: break;
        case 'o':	 // 26 strings to match.
          if (BuiltinName[18] != 'v')
            break;
          switch (BuiltinName[19]) {
          default: break;
          case 'm':	 // 2 strings to match.
            if (memcmp(BuiltinName.data()+20, "skb", 3))
              break;
            switch (BuiltinName[23]) {
            default: break;
            case '1':	 // 1 string to match.
              if (memcmp(BuiltinName.data()+24, "28", 2))
                break;
              return Intrinsic::x86_sse2_pmovmskb_128;	 // "__builtin_ia32_pmovmskb128"
            case '2':	 // 1 string to match.
              if (memcmp(BuiltinName.data()+24, "56", 2))
                break;
              return Intrinsic::x86_avx2_pmovmskb;	 // "__builtin_ia32_pmovmskb256"
            }
            break;
          case 's':	 // 12 strings to match.
            if (BuiltinName[20] != 'x')
              break;
            switch (BuiltinName[21]) {
            default: break;
            case 'b':	 // 6 strings to match.
              switch (BuiltinName[22]) {
              default: break;
              case 'd':	 // 2 strings to match.
                switch (BuiltinName[23]) {
                default: break;
                case '1':	 // 1 string to match.
                  if (memcmp(BuiltinName.data()+24, "28", 2))
                    break;
                  return Intrinsic::x86_sse41_pmovsxbd;	 // "__builtin_ia32_pmovsxbd128"
                case '2':	 // 1 string to match.
                  if (memcmp(BuiltinName.data()+24, "56", 2))
                    break;
                  return Intrinsic::x86_avx2_pmovsxbd;	 // "__builtin_ia32_pmovsxbd256"
                }
                break;
              case 'q':	 // 2 strings to match.
                switch (BuiltinName[23]) {
                default: break;
                case '1':	 // 1 string to match.
                  if (memcmp(BuiltinName.data()+24, "28", 2))
                    break;
                  return Intrinsic::x86_sse41_pmovsxbq;	 // "__builtin_ia32_pmovsxbq128"
                case '2':	 // 1 string to match.
                  if (memcmp(BuiltinName.data()+24, "56", 2))
                    break;
                  return Intrinsic::x86_avx2_pmovsxbq;	 // "__builtin_ia32_pmovsxbq256"
                }
                break;
              case 'w':	 // 2 strings to match.
                switch (BuiltinName[23]) {
                default: break;
                case '1':	 // 1 string to match.
                  if (memcmp(BuiltinName.data()+24, "28", 2))
                    break;
                  return Intrinsic::x86_sse41_pmovsxbw;	 // "__builtin_ia32_pmovsxbw128"
                case '2':	 // 1 string to match.
                  if (memcmp(BuiltinName.data()+24, "56", 2))
                    break;
                  return Intrinsic::x86_avx2_pmovsxbw;	 // "__builtin_ia32_pmovsxbw256"
                }
                break;
              }
              break;
            case 'd':	 // 2 strings to match.
              if (BuiltinName[22] != 'q')
                break;
              switch (BuiltinName[23]) {
              default: break;
              case '1':	 // 1 string to match.
                if (memcmp(BuiltinName.data()+24, "28", 2))
                  break;
                return Intrinsic::x86_sse41_pmovsxdq;	 // "__builtin_ia32_pmovsxdq128"
              case '2':	 // 1 string to match.
                if (memcmp(BuiltinName.data()+24, "56", 2))
                  break;
                return Intrinsic::x86_avx2_pmovsxdq;	 // "__builtin_ia32_pmovsxdq256"
              }
              break;
            case 'w':	 // 4 strings to match.
              switch (BuiltinName[22]) {
              default: break;
              case 'd':	 // 2 strings to match.
                switch (BuiltinName[23]) {
                default: break;
                case '1':	 // 1 string to match.
                  if (memcmp(BuiltinName.data()+24, "28", 2))
                    break;
                  return Intrinsic::x86_sse41_pmovsxwd;	 // "__builtin_ia32_pmovsxwd128"
                case '2':	 // 1 string to match.
                  if (memcmp(BuiltinName.data()+24, "56", 2))
                    break;
                  return Intrinsic::x86_avx2_pmovsxwd;	 // "__builtin_ia32_pmovsxwd256"
                }
                break;
              case 'q':	 // 2 strings to match.
                switch (BuiltinName[23]) {
                default: break;
                case '1':	 // 1 string to match.
                  if (memcmp(BuiltinName.data()+24, "28", 2))
                    break;
                  return Intrinsic::x86_sse41_pmovsxwq;	 // "__builtin_ia32_pmovsxwq128"
                case '2':	 // 1 string to match.
                  if (memcmp(BuiltinName.data()+24, "56", 2))
                    break;
                  return Intrinsic::x86_avx2_pmovsxwq;	 // "__builtin_ia32_pmovsxwq256"
                }
                break;
              }
              break;
            }
            break;
          case 'z':	 // 12 strings to match.
            if (BuiltinName[20] != 'x')
              break;
            switch (BuiltinName[21]) {
            default: break;
            case 'b':	 // 6 strings to match.
              switch (BuiltinName[22]) {
              default: break;
              case 'd':	 // 2 strings to match.
                switch (BuiltinName[23]) {
                default: break;
                case '1':	 // 1 string to match.
                  if (memcmp(BuiltinName.data()+24, "28", 2))
                    break;
                  return Intrinsic::x86_sse41_pmovzxbd;	 // "__builtin_ia32_pmovzxbd128"
                case '2':	 // 1 string to match.
                  if (memcmp(BuiltinName.data()+24, "56", 2))
                    break;
                  return Intrinsic::x86_avx2_pmovzxbd;	 // "__builtin_ia32_pmovzxbd256"
                }
                break;
              case 'q':	 // 2 strings to match.
                switch (BuiltinName[23]) {
                default: break;
                case '1':	 // 1 string to match.
                  if (memcmp(BuiltinName.data()+24, "28", 2))
                    break;
                  return Intrinsic::x86_sse41_pmovzxbq;	 // "__builtin_ia32_pmovzxbq128"
                case '2':	 // 1 string to match.
                  if (memcmp(BuiltinName.data()+24, "56", 2))
                    break;
                  return Intrinsic::x86_avx2_pmovzxbq;	 // "__builtin_ia32_pmovzxbq256"
                }
                break;
              case 'w':	 // 2 strings to match.
                switch (BuiltinName[23]) {
                default: break;
                case '1':	 // 1 string to match.
                  if (memcmp(BuiltinName.data()+24, "28", 2))
                    break;
                  return Intrinsic::x86_sse41_pmovzxbw;	 // "__builtin_ia32_pmovzxbw128"
                case '2':	 // 1 string to match.
                  if (memcmp(BuiltinName.data()+24, "56", 2))
                    break;
                  return Intrinsic::x86_avx2_pmovzxbw;	 // "__builtin_ia32_pmovzxbw256"
                }
                break;
              }
              break;
            case 'd':	 // 2 strings to match.
              if (BuiltinName[22] != 'q')
                break;
              switch (BuiltinName[23]) {
              default: break;
              case '1':	 // 1 string to match.
                if (memcmp(BuiltinName.data()+24, "28", 2))
                  break;
                return Intrinsic::x86_sse41_pmovzxdq;	 // "__builtin_ia32_pmovzxdq128"
              case '2':	 // 1 string to match.
                if (memcmp(BuiltinName.data()+24, "56", 2))
                  break;
                return Intrinsic::x86_avx2_pmovzxdq;	 // "__builtin_ia32_pmovzxdq256"
              }
              break;
            case 'w':	 // 4 strings to match.
              switch (BuiltinName[22]) {
              default: break;
              case 'd':	 // 2 strings to match.
                switch (BuiltinName[23]) {
                default: break;
                case '1':	 // 1 string to match.
                  if (memcmp(BuiltinName.data()+24, "28", 2))
                    break;
                  return Intrinsic::x86_sse41_pmovzxwd;	 // "__builtin_ia32_pmovzxwd128"
                case '2':	 // 1 string to match.
                  if (memcmp(BuiltinName.data()+24, "56", 2))
                    break;
                  return Intrinsic::x86_avx2_pmovzxwd;	 // "__builtin_ia32_pmovzxwd256"
                }
                break;
              case 'q':	 // 2 strings to match.
                switch (BuiltinName[23]) {
                default: break;
                case '1':	 // 1 string to match.
                  if (memcmp(BuiltinName.data()+24, "28", 2))
                    break;
                  return Intrinsic::x86_sse41_pmovzxwq;	 // "__builtin_ia32_pmovzxwq128"
                case '2':	 // 1 string to match.
                  if (memcmp(BuiltinName.data()+24, "56", 2))
                    break;
                  return Intrinsic::x86_avx2_pmovzxwq;	 // "__builtin_ia32_pmovzxwq256"
                }
                break;
              }
              break;
            }
            break;
          }
          break;
        case 'u':	 // 2 strings to match.
          if (memcmp(BuiltinName.data()+18, "lhrsw", 5))
            break;
          switch (BuiltinName[23]) {
          default: break;
          case '1':	 // 1 string to match.
            if (memcmp(BuiltinName.data()+24, "28", 2))
              break;
            return Intrinsic::x86_ssse3_pmul_hr_sw_128;	 // "__builtin_ia32_pmulhrsw128"
          case '2':	 // 1 string to match.
            if (memcmp(BuiltinName.data()+24, "56", 2))
              break;
            return Intrinsic::x86_avx2_pmul_hr_sw;	 // "__builtin_ia32_pmulhrsw256"
          }
          break;
        }
        break;
      case 't':	 // 2 strings to match.
        if (memcmp(BuiltinName.data()+17, "estnzc", 6))
          break;
        switch (BuiltinName[23]) {
        default: break;
        case '1':	 // 1 string to match.
          if (memcmp(BuiltinName.data()+24, "28", 2))
            break;
          return Intrinsic::x86_sse41_ptestnzc;	 // "__builtin_ia32_ptestnzc128"
        case '2':	 // 1 string to match.
          if (memcmp(BuiltinName.data()+24, "56", 2))
            break;
          return Intrinsic::x86_avx_ptestnzc_256;	 // "__builtin_ia32_ptestnzc256"
        }
        break;
      }
      break;
    case 's':	 // 3 strings to match.
      if (memcmp(BuiltinName.data()+16, "tore", 4))
        break;
      switch (BuiltinName[20]) {
      default: break;
      case 'd':	 // 1 string to match.
        if (memcmp(BuiltinName.data()+21, "qu256", 5))
          break;
        return Intrinsic::x86_avx_storeu_dq_256;	 // "__builtin_ia32_storedqu256"
      case 'u':	 // 2 strings to match.
        if (BuiltinName[21] != 'p')
          break;
        switch (BuiltinName[22]) {
        default: break;
        case 'd':	 // 1 string to match.
          if (memcmp(BuiltinName.data()+23, "256", 3))
            break;
          return Intrinsic::x86_avx_storeu_pd_256;	 // "__builtin_ia32_storeupd256"
        case 's':	 // 1 string to match.
          if (memcmp(BuiltinName.data()+23, "256", 3))
            break;
          return Intrinsic::x86_avx_storeu_ps_256;	 // "__builtin_ia32_storeups256"
        }
        break;
      }
      break;
    case 'v':	 // 12 strings to match.
      switch (BuiltinName[16]) {
      default: break;
      case 'f':	 // 8 strings to match.
        if (BuiltinName[17] != 'm')
          break;
        switch (BuiltinName[18]) {
        default: break;
        case 'a':	 // 4 strings to match.
          if (memcmp(BuiltinName.data()+19, "dd", 2))
            break;
          switch (BuiltinName[21]) {
          default: break;
          case 'p':	 // 2 strings to match.
            switch (BuiltinName[22]) {
            default: break;
            case 'd':	 // 1 string to match.
              if (memcmp(BuiltinName.data()+23, "256", 3))
                break;
              return Intrinsic::x86_fma_vfmadd_pd_256;	 // "__builtin_ia32_vfmaddpd256"
            case 's':	 // 1 string to match.
              if (memcmp(BuiltinName.data()+23, "256", 3))
                break;
              return Intrinsic::x86_fma_vfmadd_ps_256;	 // "__builtin_ia32_vfmaddps256"
            }
            break;
          case 's':	 // 2 strings to match.
            if (memcmp(BuiltinName.data()+22, "ubp", 3))
              break;
            switch (BuiltinName[25]) {
            default: break;
            case 'd':	 // 1 string to match.
              return Intrinsic::x86_fma_vfmaddsub_pd;	 // "__builtin_ia32_vfmaddsubpd"
            case 's':	 // 1 string to match.
              return Intrinsic::x86_fma_vfmaddsub_ps;	 // "__builtin_ia32_vfmaddsubps"
            }
            break;
          }
          break;
        case 's':	 // 4 strings to match.
          if (memcmp(BuiltinName.data()+19, "ub", 2))
            break;
          switch (BuiltinName[21]) {
          default: break;
          case 'a':	 // 2 strings to match.
            if (memcmp(BuiltinName.data()+22, "ddp", 3))
              break;
            switch (BuiltinName[25]) {
            default: break;
            case 'd':	 // 1 string to match.
              return Intrinsic::x86_fma_vfmsubadd_pd;	 // "__builtin_ia32_vfmsubaddpd"
            case 's':	 // 1 string to match.
              return Intrinsic::x86_fma_vfmsubadd_ps;	 // "__builtin_ia32_vfmsubaddps"
            }
            break;
          case 'p':	 // 2 strings to match.
            switch (BuiltinName[22]) {
            default: break;
            case 'd':	 // 1 string to match.
              if (memcmp(BuiltinName.data()+23, "256", 3))
                break;
              return Intrinsic::x86_fma_vfmsub_pd_256;	 // "__builtin_ia32_vfmsubpd256"
            case 's':	 // 1 string to match.
              if (memcmp(BuiltinName.data()+23, "256", 3))
                break;
              return Intrinsic::x86_fma_vfmsub_ps_256;	 // "__builtin_ia32_vfmsubps256"
            }
            break;
          }
          break;
        }
        break;
      case 't':	 // 4 strings to match.
        if (memcmp(BuiltinName.data()+17, "est", 3))
          break;
        switch (BuiltinName[20]) {
        default: break;
        case 'c':	 // 2 strings to match.
          if (BuiltinName[21] != 'p')
            break;
          switch (BuiltinName[22]) {
          default: break;
          case 'd':	 // 1 string to match.
            if (memcmp(BuiltinName.data()+23, "256", 3))
              break;
            return Intrinsic::x86_avx_vtestc_pd_256;	 // "__builtin_ia32_vtestcpd256"
          case 's':	 // 1 string to match.
            if (memcmp(BuiltinName.data()+23, "256", 3))
              break;
            return Intrinsic::x86_avx_vtestc_ps_256;	 // "__builtin_ia32_vtestcps256"
          }
          break;
        case 'z':	 // 2 strings to match.
          if (BuiltinName[21] != 'p')
            break;
          switch (BuiltinName[22]) {
          default: break;
          case 'd':	 // 1 string to match.
            if (memcmp(BuiltinName.data()+23, "256", 3))
              break;
            return Intrinsic::x86_avx_vtestz_pd_256;	 // "__builtin_ia32_vtestzpd256"
          case 's':	 // 1 string to match.
            if (memcmp(BuiltinName.data()+23, "256", 3))
              break;
            return Intrinsic::x86_avx_vtestz_ps_256;	 // "__builtin_ia32_vtestzps256"
          }
          break;
        }
        break;
      }
      break;
    }
    break;
  case 27:	 // 29 strings to match.
    if (memcmp(BuiltinName.data()+0, "__builtin_ia32_", 15))
      break;
    switch (BuiltinName[15]) {
    default: break;
    case 'c':	 // 2 strings to match.
      if (memcmp(BuiltinName.data()+16, "vttp", 4))
        break;
      switch (BuiltinName[20]) {
      default: break;
      case 'd':	 // 1 string to match.
        if (memcmp(BuiltinName.data()+21, "2dq256", 6))
          break;
        return Intrinsic::x86_avx_cvtt_pd2dq_256;	 // "__builtin_ia32_cvttpd2dq256"
      case 's':	 // 1 string to match.
        if (memcmp(BuiltinName.data()+21, "2dq256", 6))
          break;
        return Intrinsic::x86_avx_cvtt_ps2dq_256;	 // "__builtin_ia32_cvttps2dq256"
      }
      break;
    case 'e':	 // 1 string to match.
      if (memcmp(BuiltinName.data()+16, "xtractps128", 11))
        break;
      return Intrinsic::x86_sse41_extractps;	 // "__builtin_ia32_extractps128"
    case 'g':	 // 4 strings to match.
      if (memcmp(BuiltinName.data()+16, "ather", 5))
        break;
      switch (BuiltinName[21]) {
      default: break;
      case 'd':	 // 2 strings to match.
        if (BuiltinName[22] != '_')
          break;
        switch (BuiltinName[23]) {
        default: break;
        case 'd':	 // 1 string to match.
          if (memcmp(BuiltinName.data()+24, "256", 3))
            break;
          return Intrinsic::x86_avx2_gather_d_d_256;	 // "__builtin_ia32_gatherd_d256"
        case 'q':	 // 1 string to match.
          if (memcmp(BuiltinName.data()+24, "256", 3))
            break;
          return Intrinsic::x86_avx2_gather_d_q_256;	 // "__builtin_ia32_gatherd_q256"
        }
        break;
      case 'q':	 // 2 strings to match.
        if (BuiltinName[22] != '_')
          break;
        switch (BuiltinName[23]) {
        default: break;
        case 'd':	 // 1 string to match.
          if (memcmp(BuiltinName.data()+24, "256", 3))
            break;
          return Intrinsic::x86_avx2_gather_q_d_256;	 // "__builtin_ia32_gatherq_d256"
        case 'q':	 // 1 string to match.
          if (memcmp(BuiltinName.data()+24, "256", 3))
            break;
          return Intrinsic::x86_avx2_gather_q_q_256;	 // "__builtin_ia32_gatherq_q256"
        }
        break;
      }
      break;
    case 'm':	 // 2 strings to match.
      if (memcmp(BuiltinName.data()+16, "askload", 7))
        break;
      switch (BuiltinName[23]) {
      default: break;
      case 'd':	 // 1 string to match.
        if (memcmp(BuiltinName.data()+24, "256", 3))
          break;
        return Intrinsic::x86_avx2_maskload_d_256;	 // "__builtin_ia32_maskloadd256"
      case 'q':	 // 1 string to match.
        if (memcmp(BuiltinName.data()+24, "256", 3))
          break;
        return Intrinsic::x86_avx2_maskload_q_256;	 // "__builtin_ia32_maskloadq256"
      }
      break;
    case 'p':	 // 9 strings to match.
      switch (BuiltinName[16]) {
      default: break;
      case 'c':	 // 5 strings to match.
        switch (BuiltinName[17]) {
        default: break;
        case 'l':	 // 1 string to match.
          if (memcmp(BuiltinName.data()+18, "mulqdq128", 9))
            break;
          return Intrinsic::x86_pclmulqdq;	 // "__builtin_ia32_pclmulqdq128"
        case 'm':	 // 4 strings to match.
          if (BuiltinName[18] != 'p')
            break;
          switch (BuiltinName[19]) {
          default: break;
          case 'e':	 // 2 strings to match.
            if (memcmp(BuiltinName.data()+20, "str", 3))
              break;
            switch (BuiltinName[23]) {
            default: break;
            case 'i':	 // 1 string to match.
              if (memcmp(BuiltinName.data()+24, "128", 3))
                break;
              return Intrinsic::x86_sse42_pcmpestri128;	 // "__builtin_ia32_pcmpestri128"
            case 'm':	 // 1 string to match.
              if (memcmp(BuiltinName.data()+24, "128", 3))
                break;
              return Intrinsic::x86_sse42_pcmpestrm128;	 // "__builtin_ia32_pcmpestrm128"
            }
            break;
          case 'i':	 // 2 strings to match.
            if (memcmp(BuiltinName.data()+20, "str", 3))
              break;
            switch (BuiltinName[23]) {
            default: break;
            case 'i':	 // 1 string to match.
              if (memcmp(BuiltinName.data()+24, "128", 3))
                break;
              return Intrinsic::x86_sse42_pcmpistri128;	 // "__builtin_ia32_pcmpistri128"
            case 'm':	 // 1 string to match.
              if (memcmp(BuiltinName.data()+24, "128", 3))
                break;
              return Intrinsic::x86_sse42_pcmpistrm128;	 // "__builtin_ia32_pcmpistrm128"
            }
            break;
          }
          break;
        }
        break;
      case 'e':	 // 2 strings to match.
        if (memcmp(BuiltinName.data()+17, "rmvars", 6))
          break;
        switch (BuiltinName[23]) {
        default: break;
        case 'f':	 // 1 string to match.
          if (memcmp(BuiltinName.data()+24, "256", 3))
            break;
          return Intrinsic::x86_avx2_permps;	 // "__builtin_ia32_permvarsf256"
        case 'i':	 // 1 string to match.
          if (memcmp(BuiltinName.data()+24, "256", 3))
            break;
          return Intrinsic::x86_avx2_permd;	 // "__builtin_ia32_permvarsi256"
        }
        break;
      case 'm':	 // 2 strings to match.
        if (memcmp(BuiltinName.data()+17, "addubsw", 7))
          break;
        switch (BuiltinName[24]) {
        default: break;
        case '1':	 // 1 string to match.
          if (memcmp(BuiltinName.data()+25, "28", 2))
            break;
          return Intrinsic::x86_ssse3_pmadd_ub_sw_128;	 // "__builtin_ia32_pmaddubsw128"
        case '2':	 // 1 string to match.
          if (memcmp(BuiltinName.data()+25, "56", 2))
            break;
          return Intrinsic::x86_avx2_pmadd_ub_sw;	 // "__builtin_ia32_pmaddubsw256"
        }
        break;
      }
      break;
    case 'v':	 // 11 strings to match.
      switch (BuiltinName[16]) {
      default: break;
      case 'b':	 // 1 string to match.
        if (memcmp(BuiltinName.data()+17, "roadcastss", 10))
          break;
        return Intrinsic::x86_avx_vbroadcast_ss;	 // "__builtin_ia32_vbroadcastss"
      case 'c':	 // 2 strings to match.
        if (memcmp(BuiltinName.data()+17, "vtp", 3))
          break;
        switch (BuiltinName[20]) {
        default: break;
        case 'h':	 // 1 string to match.
          if (memcmp(BuiltinName.data()+21, "2ps256", 6))
            break;
          return Intrinsic::x86_vcvtph2ps_256;	 // "__builtin_ia32_vcvtph2ps256"
        case 's':	 // 1 string to match.
          if (memcmp(BuiltinName.data()+21, "2ph256", 6))
            break;
          return Intrinsic::x86_vcvtps2ph_256;	 // "__builtin_ia32_vcvtps2ph256"
        }
        break;
      case 'e':	 // 2 strings to match.
        if (memcmp(BuiltinName.data()+17, "c_", 2))
          break;
        switch (BuiltinName[19]) {
        default: break;
        case 'e':	 // 1 string to match.
          if (memcmp(BuiltinName.data()+20, "xt_v4hi", 7))
            break;
          return Intrinsic::x86_mmx_pextr_w;	 // "__builtin_ia32_vec_ext_v4hi"
        case 's':	 // 1 string to match.
          if (memcmp(BuiltinName.data()+20, "et_v4hi", 7))
            break;
          return Intrinsic::x86_mmx_pinsr_w;	 // "__builtin_ia32_vec_set_v4hi"
        }
        break;
      case 'f':	 // 4 strings to match.
        if (memcmp(BuiltinName.data()+17, "nm", 2))
          break;
        switch (BuiltinName[19]) {
        default: break;
        case 'a':	 // 2 strings to match.
          if (memcmp(BuiltinName.data()+20, "ddp", 3))
            break;
          switch (BuiltinName[23]) {
          default: break;
          case 'd':	 // 1 string to match.
            if (memcmp(BuiltinName.data()+24, "256", 3))
              break;
            return Intrinsic::x86_fma_vfnmadd_pd_256;	 // "__builtin_ia32_vfnmaddpd256"
          case 's':	 // 1 string to match.
            if (memcmp(BuiltinName.data()+24, "256", 3))
              break;
            return Intrinsic::x86_fma_vfnmadd_ps_256;	 // "__builtin_ia32_vfnmaddps256"
          }
          break;
        case 's':	 // 2 strings to match.
          if (memcmp(BuiltinName.data()+20, "ubp", 3))
            break;
          switch (BuiltinName[23]) {
          default: break;
          case 'd':	 // 1 string to match.
            if (memcmp(BuiltinName.data()+24, "256", 3))
              break;
            return Intrinsic::x86_fma_vfnmsub_pd_256;	 // "__builtin_ia32_vfnmsubpd256"
          case 's':	 // 1 string to match.
            if (memcmp(BuiltinName.data()+24, "256", 3))
              break;
            return Intrinsic::x86_fma_vfnmsub_ps_256;	 // "__builtin_ia32_vfnmsubps256"
          }
          break;
        }
        break;
      case 'p':	 // 2 strings to match.
        if (memcmp(BuiltinName.data()+17, "ermilvarp", 9))
          break;
        switch (BuiltinName[26]) {
        default: break;
        case 'd':	 // 1 string to match.
          return Intrinsic::x86_avx_vpermilvar_pd;	 // "__builtin_ia32_vpermilvarpd"
        case 's':	 // 1 string to match.
          return Intrinsic::x86_avx_vpermilvar_ps;	 // "__builtin_ia32_vpermilvarps"
        }
        break;
      }
      break;
    }
    break;
  case 28:	 // 24 strings to match.
    if (memcmp(BuiltinName.data()+0, "__builtin_ia32_", 15))
      break;
    switch (BuiltinName[15]) {
    default: break;
    case 'a':	 // 2 strings to match.
      if (memcmp(BuiltinName.data()+16, "es", 2))
        break;
      switch (BuiltinName[18]) {
      default: break;
      case 'd':	 // 1 string to match.
        if (memcmp(BuiltinName.data()+19, "eclast128", 9))
          break;
        return Intrinsic::x86_aesni_aesdeclast;	 // "__builtin_ia32_aesdeclast128"
      case 'e':	 // 1 string to match.
        if (memcmp(BuiltinName.data()+19, "nclast128", 9))
          break;
        return Intrinsic::x86_aesni_aesenclast;	 // "__builtin_ia32_aesenclast128"
      }
      break;
    case 'g':	 // 4 strings to match.
      if (memcmp(BuiltinName.data()+16, "ather", 5))
        break;
      switch (BuiltinName[21]) {
      default: break;
      case 'd':	 // 2 strings to match.
        if (memcmp(BuiltinName.data()+22, "_p", 2))
          break;
        switch (BuiltinName[24]) {
        default: break;
        case 'd':	 // 1 string to match.
          if (memcmp(BuiltinName.data()+25, "256", 3))
            break;
          return Intrinsic::x86_avx2_gather_d_pd_256;	 // "__builtin_ia32_gatherd_pd256"
        case 's':	 // 1 string to match.
          if (memcmp(BuiltinName.data()+25, "256", 3))
            break;
          return Intrinsic::x86_avx2_gather_d_ps_256;	 // "__builtin_ia32_gatherd_ps256"
        }
        break;
      case 'q':	 // 2 strings to match.
        if (memcmp(BuiltinName.data()+22, "_p", 2))
          break;
        switch (BuiltinName[24]) {
        default: break;
        case 'd':	 // 1 string to match.
          if (memcmp(BuiltinName.data()+25, "256", 3))
            break;
          return Intrinsic::x86_avx2_gather_q_pd_256;	 // "__builtin_ia32_gatherq_pd256"
        case 's':	 // 1 string to match.
          if (memcmp(BuiltinName.data()+25, "256", 3))
            break;
          return Intrinsic::x86_avx2_gather_q_ps_256;	 // "__builtin_ia32_gatherq_ps256"
        }
        break;
      }
      break;
    case 'i':	 // 1 string to match.
      if (memcmp(BuiltinName.data()+16, "nsert128i256", 12))
        break;
      return Intrinsic::x86_avx2_vinserti128;	 // "__builtin_ia32_insert128i256"
    case 'm':	 // 4 strings to match.
      if (memcmp(BuiltinName.data()+16, "ask", 3))
        break;
      switch (BuiltinName[19]) {
      default: break;
      case 'l':	 // 2 strings to match.
        if (memcmp(BuiltinName.data()+20, "oadp", 4))
          break;
        switch (BuiltinName[24]) {
        default: break;
        case 'd':	 // 1 string to match.
          if (memcmp(BuiltinName.data()+25, "256", 3))
            break;
          return Intrinsic::x86_avx_maskload_pd_256;	 // "__builtin_ia32_maskloadpd256"
        case 's':	 // 1 string to match.
          if (memcmp(BuiltinName.data()+25, "256", 3))
            break;
          return Intrinsic::x86_avx_maskload_ps_256;	 // "__builtin_ia32_maskloadps256"
        }
        break;
      case 's':	 // 2 strings to match.
        if (memcmp(BuiltinName.data()+20, "tore", 4))
          break;
        switch (BuiltinName[24]) {
        default: break;
        case 'd':	 // 1 string to match.
          if (memcmp(BuiltinName.data()+25, "256", 3))
            break;
          return Intrinsic::x86_avx2_maskstore_d_256;	 // "__builtin_ia32_maskstored256"
        case 'q':	 // 1 string to match.
          if (memcmp(BuiltinName.data()+25, "256", 3))
            break;
          return Intrinsic::x86_avx2_maskstore_q_256;	 // "__builtin_ia32_maskstoreq256"
        }
        break;
      }
      break;
    case 'p':	 // 11 strings to match.
      switch (BuiltinName[16]) {
      default: break;
      case 'c':	 // 10 strings to match.
        if (memcmp(BuiltinName.data()+17, "mp", 2))
          break;
        switch (BuiltinName[19]) {
        default: break;
        case 'e':	 // 5 strings to match.
          if (memcmp(BuiltinName.data()+20, "stri", 4))
            break;
          switch (BuiltinName[24]) {
          default: break;
          case 'a':	 // 1 string to match.
            if (memcmp(BuiltinName.data()+25, "128", 3))
              break;
            return Intrinsic::x86_sse42_pcmpestria128;	 // "__builtin_ia32_pcmpestria128"
          case 'c':	 // 1 string to match.
            if (memcmp(BuiltinName.data()+25, "128", 3))
              break;
            return Intrinsic::x86_sse42_pcmpestric128;	 // "__builtin_ia32_pcmpestric128"
          case 'o':	 // 1 string to match.
            if (memcmp(BuiltinName.data()+25, "128", 3))
              break;
            return Intrinsic::x86_sse42_pcmpestrio128;	 // "__builtin_ia32_pcmpestrio128"
          case 's':	 // 1 string to match.
            if (memcmp(BuiltinName.data()+25, "128", 3))
              break;
            return Intrinsic::x86_sse42_pcmpestris128;	 // "__builtin_ia32_pcmpestris128"
          case 'z':	 // 1 string to match.
            if (memcmp(BuiltinName.data()+25, "128", 3))
              break;
            return Intrinsic::x86_sse42_pcmpestriz128;	 // "__builtin_ia32_pcmpestriz128"
          }
          break;
        case 'i':	 // 5 strings to match.
          if (memcmp(BuiltinName.data()+20, "stri", 4))
            break;
          switch (BuiltinName[24]) {
          default: break;
          case 'a':	 // 1 string to match.
            if (memcmp(BuiltinName.data()+25, "128", 3))
              break;
            return Intrinsic::x86_sse42_pcmpistria128;	 // "__builtin_ia32_pcmpistria128"
          case 'c':	 // 1 string to match.
            if (memcmp(BuiltinName.data()+25, "128", 3))
              break;
            return Intrinsic::x86_sse42_pcmpistric128;	 // "__builtin_ia32_pcmpistric128"
          case 'o':	 // 1 string to match.
            if (memcmp(BuiltinName.data()+25, "128", 3))
              break;
            return Intrinsic::x86_sse42_pcmpistrio128;	 // "__builtin_ia32_pcmpistrio128"
          case 's':	 // 1 string to match.
            if (memcmp(BuiltinName.data()+25, "128", 3))
              break;
            return Intrinsic::x86_sse42_pcmpistris128;	 // "__builtin_ia32_pcmpistris128"
          case 'z':	 // 1 string to match.
            if (memcmp(BuiltinName.data()+25, "128", 3))
              break;
            return Intrinsic::x86_sse42_pcmpistriz128;	 // "__builtin_ia32_pcmpistriz128"
          }
          break;
        }
        break;
      case 'h':	 // 1 string to match.
        if (memcmp(BuiltinName.data()+17, "minposuw128", 11))
          break;
        return Intrinsic::x86_sse41_phminposuw;	 // "__builtin_ia32_phminposuw128"
      }
      break;
    case 'v':	 // 2 strings to match.
      if (memcmp(BuiltinName.data()+16, "testnzcp", 8))
        break;
      switch (BuiltinName[24]) {
      default: break;
      case 'd':	 // 1 string to match.
        if (memcmp(BuiltinName.data()+25, "256", 3))
          break;
        return Intrinsic::x86_avx_vtestnzc_pd_256;	 // "__builtin_ia32_vtestnzcpd256"
      case 's':	 // 1 string to match.
        if (memcmp(BuiltinName.data()+25, "256", 3))
          break;
        return Intrinsic::x86_avx_vtestnzc_ps_256;	 // "__builtin_ia32_vtestnzcps256"
      }
      break;
    }
    break;
  case 29:	 // 15 strings to match.
    if (memcmp(BuiltinName.data()+0, "__builtin_ia32_", 15))
      break;
    switch (BuiltinName[15]) {
    default: break;
    case 'e':	 // 1 string to match.
      if (memcmp(BuiltinName.data()+16, "xtract128i256", 13))
        break;
      return Intrinsic::x86_avx2_vextracti128;	 // "__builtin_ia32_extract128i256"
    case 'm':	 // 2 strings to match.
      if (memcmp(BuiltinName.data()+16, "askstorep", 9))
        break;
      switch (BuiltinName[25]) {
      default: break;
      case 'd':	 // 1 string to match.
        if (memcmp(BuiltinName.data()+26, "256", 3))
          break;
        return Intrinsic::x86_avx_maskstore_pd_256;	 // "__builtin_ia32_maskstorepd256"
      case 's':	 // 1 string to match.
        if (memcmp(BuiltinName.data()+26, "256", 3))
          break;
        return Intrinsic::x86_avx_maskstore_ps_256;	 // "__builtin_ia32_maskstoreps256"
      }
      break;
    case 'p':	 // 8 strings to match.
      if (memcmp(BuiltinName.data()+16, "broadcast", 9))
        break;
      switch (BuiltinName[25]) {
      default: break;
      case 'b':	 // 2 strings to match.
        switch (BuiltinName[26]) {
        default: break;
        case '1':	 // 1 string to match.
          if (memcmp(BuiltinName.data()+27, "28", 2))
            break;
          return Intrinsic::x86_avx2_pbroadcastb_128;	 // "__builtin_ia32_pbroadcastb128"
        case '2':	 // 1 string to match.
          if (memcmp(BuiltinName.data()+27, "56", 2))
            break;
          return Intrinsic::x86_avx2_pbroadcastb_256;	 // "__builtin_ia32_pbroadcastb256"
        }
        break;
      case 'd':	 // 2 strings to match.
        switch (BuiltinName[26]) {
        default: break;
        case '1':	 // 1 string to match.
          if (memcmp(BuiltinName.data()+27, "28", 2))
            break;
          return Intrinsic::x86_avx2_pbroadcastd_128;	 // "__builtin_ia32_pbroadcastd128"
        case '2':	 // 1 string to match.
          if (memcmp(BuiltinName.data()+27, "56", 2))
            break;
          return Intrinsic::x86_avx2_pbroadcastd_256;	 // "__builtin_ia32_pbroadcastd256"
        }
        break;
      case 'q':	 // 2 strings to match.
        switch (BuiltinName[26]) {
        default: break;
        case '1':	 // 1 string to match.
          if (memcmp(BuiltinName.data()+27, "28", 2))
            break;
          return Intrinsic::x86_avx2_pbroadcastq_128;	 // "__builtin_ia32_pbroadcastq128"
        case '2':	 // 1 string to match.
          if (memcmp(BuiltinName.data()+27, "56", 2))
            break;
          return Intrinsic::x86_avx2_pbroadcastq_256;	 // "__builtin_ia32_pbroadcastq256"
        }
        break;
      case 'w':	 // 2 strings to match.
        switch (BuiltinName[26]) {
        default: break;
        case '1':	 // 1 string to match.
          if (memcmp(BuiltinName.data()+27, "28", 2))
            break;
          return Intrinsic::x86_avx2_pbroadcastw_128;	 // "__builtin_ia32_pbroadcastw128"
        case '2':	 // 1 string to match.
          if (memcmp(BuiltinName.data()+27, "56", 2))
            break;
          return Intrinsic::x86_avx2_pbroadcastw_256;	 // "__builtin_ia32_pbroadcastw256"
        }
        break;
      }
      break;
    case 'v':	 // 4 strings to match.
      if (memcmp(BuiltinName.data()+16, "fm", 2))
        break;
      switch (BuiltinName[18]) {
      default: break;
      case 'a':	 // 2 strings to match.
        if (memcmp(BuiltinName.data()+19, "ddsubp", 6))
          break;
        switch (BuiltinName[25]) {
        default: break;
        case 'd':	 // 1 string to match.
          if (memcmp(BuiltinName.data()+26, "256", 3))
            break;
          return Intrinsic::x86_fma_vfmaddsub_pd_256;	 // "__builtin_ia32_vfmaddsubpd256"
        case 's':	 // 1 string to match.
          if (memcmp(BuiltinName.data()+26, "256", 3))
            break;
          return Intrinsic::x86_fma_vfmaddsub_ps_256;	 // "__builtin_ia32_vfmaddsubps256"
        }
        break;
      case 's':	 // 2 strings to match.
        if (memcmp(BuiltinName.data()+19, "ubaddp", 6))
          break;
        switch (BuiltinName[25]) {
        default: break;
        case 'd':	 // 1 string to match.
          if (memcmp(BuiltinName.data()+26, "256", 3))
            break;
          return Intrinsic::x86_fma_vfmsubadd_pd_256;	 // "__builtin_ia32_vfmsubaddpd256"
        case 's':	 // 1 string to match.
          if (memcmp(BuiltinName.data()+26, "256", 3))
            break;
          return Intrinsic::x86_fma_vfmsubadd_ps_256;	 // "__builtin_ia32_vfmsubaddps256"
        }
        break;
      }
      break;
    }
    break;
  case 30:	 // 6 strings to match.
    if (memcmp(BuiltinName.data()+0, "__builtin_ia32_v", 16))
      break;
    switch (BuiltinName[16]) {
    default: break;
    case 'b':	 // 4 strings to match.
      if (memcmp(BuiltinName.data()+17, "roadcasts", 9))
        break;
      switch (BuiltinName[26]) {
      default: break;
      case 'd':	 // 1 string to match.
        if (memcmp(BuiltinName.data()+27, "256", 3))
          break;
        return Intrinsic::x86_avx_vbroadcast_sd_256;	 // "__builtin_ia32_vbroadcastsd256"
      case 'i':	 // 1 string to match.
        if (memcmp(BuiltinName.data()+27, "256", 3))
          break;
        return Intrinsic::x86_avx2_vbroadcasti128;	 // "__builtin_ia32_vbroadcastsi256"
      case 's':	 // 2 strings to match.
        switch (BuiltinName[27]) {
        default: break;
        case '2':	 // 1 string to match.
          if (memcmp(BuiltinName.data()+28, "56", 2))
            break;
          return Intrinsic::x86_avx_vbroadcast_ss_256;	 // "__builtin_ia32_vbroadcastss256"
        case '_':	 // 1 string to match.
          if (memcmp(BuiltinName.data()+28, "ps", 2))
            break;
          return Intrinsic::x86_avx2_vbroadcast_ss_ps;	 // "__builtin_ia32_vbroadcastss_ps"
        }
        break;
      }
      break;
    case 'p':	 // 2 strings to match.
      if (memcmp(BuiltinName.data()+17, "ermilvarp", 9))
        break;
      switch (BuiltinName[26]) {
      default: break;
      case 'd':	 // 1 string to match.
        if (memcmp(BuiltinName.data()+27, "256", 3))
          break;
        return Intrinsic::x86_avx_vpermilvar_pd_256;	 // "__builtin_ia32_vpermilvarpd256"
      case 's':	 // 1 string to match.
        if (memcmp(BuiltinName.data()+27, "256", 3))
          break;
        return Intrinsic::x86_avx_vpermilvar_ps_256;	 // "__builtin_ia32_vpermilvarps256"
      }
      break;
    }
    break;
  case 31:	 // 3 strings to match.
    if (memcmp(BuiltinName.data()+0, "__builtin_ia32_vperm2f128_", 26))
      break;
    switch (BuiltinName[26]) {
    default: break;
    case 'p':	 // 2 strings to match.
      switch (BuiltinName[27]) {
      default: break;
      case 'd':	 // 1 string to match.
        if (memcmp(BuiltinName.data()+28, "256", 3))
          break;
        return Intrinsic::x86_avx_vperm2f128_pd_256;	 // "__builtin_ia32_vperm2f128_pd256"
      case 's':	 // 1 string to match.
        if (memcmp(BuiltinName.data()+28, "256", 3))
          break;
        return Intrinsic::x86_avx_vperm2f128_ps_256;	 // "__builtin_ia32_vperm2f128_ps256"
      }
      break;
    case 's':	 // 1 string to match.
      if (memcmp(BuiltinName.data()+27, "i256", 4))
        break;
      return Intrinsic::x86_avx_vperm2f128_si_256;	 // "__builtin_ia32_vperm2f128_si256"
    }
    break;
  case 32:	 // 3 strings to match.
    if (memcmp(BuiltinName.data()+0, "__builtin_ia32_vinsertf128_", 27))
      break;
    switch (BuiltinName[27]) {
    default: break;
    case 'p':	 // 2 strings to match.
      switch (BuiltinName[28]) {
      default: break;
      case 'd':	 // 1 string to match.
        if (memcmp(BuiltinName.data()+29, "256", 3))
          break;
        return Intrinsic::x86_avx_vinsertf128_pd_256;	 // "__builtin_ia32_vinsertf128_pd256"
      case 's':	 // 1 string to match.
        if (memcmp(BuiltinName.data()+29, "256", 3))
          break;
        return Intrinsic::x86_avx_vinsertf128_ps_256;	 // "__builtin_ia32_vinsertf128_ps256"
      }
      break;
    case 's':	 // 1 string to match.
      if (memcmp(BuiltinName.data()+28, "i256", 4))
        break;
      return Intrinsic::x86_avx_vinsertf128_si_256;	 // "__builtin_ia32_vinsertf128_si256"
    }
    break;
  case 33:	 // 6 strings to match.
    if (memcmp(BuiltinName.data()+0, "__builtin_ia32_", 15))
      break;
    switch (BuiltinName[15]) {
    default: break;
    case 'a':	 // 1 string to match.
      if (memcmp(BuiltinName.data()+16, "eskeygenassist128", 17))
        break;
      return Intrinsic::x86_aesni_aeskeygenassist;	 // "__builtin_ia32_aeskeygenassist128"
    case 'v':	 // 5 strings to match.
      switch (BuiltinName[16]) {
      default: break;
      case 'b':	 // 2 strings to match.
        if (memcmp(BuiltinName.data()+17, "roadcasts", 9))
          break;
        switch (BuiltinName[26]) {
        default: break;
        case 'd':	 // 1 string to match.
          if (memcmp(BuiltinName.data()+27, "_pd256", 6))
            break;
          return Intrinsic::x86_avx2_vbroadcast_sd_pd_256;	 // "__builtin_ia32_vbroadcastsd_pd256"
        case 's':	 // 1 string to match.
          if (memcmp(BuiltinName.data()+27, "_ps256", 6))
            break;
          return Intrinsic::x86_avx2_vbroadcast_ss_ps_256;	 // "__builtin_ia32_vbroadcastss_ps256"
        }
        break;
      case 'e':	 // 3 strings to match.
        if (memcmp(BuiltinName.data()+17, "xtractf128_", 11))
          break;
        switch (BuiltinName[28]) {
        default: break;
        case 'p':	 // 2 strings to match.
          switch (BuiltinName[29]) {
          default: break;
          case 'd':	 // 1 string to match.
            if (memcmp(BuiltinName.data()+30, "256", 3))
              break;
            return Intrinsic::x86_avx_vextractf128_pd_256;	 // "__builtin_ia32_vextractf128_pd256"
          case 's':	 // 1 string to match.
            if (memcmp(BuiltinName.data()+30, "256", 3))
              break;
            return Intrinsic::x86_avx_vextractf128_ps_256;	 // "__builtin_ia32_vextractf128_ps256"
          }
          break;
        case 's':	 // 1 string to match.
          if (memcmp(BuiltinName.data()+29, "i256", 4))
            break;
          return Intrinsic::x86_avx_vextractf128_si_256;	 // "__builtin_ia32_vextractf128_si256"
        }
        break;
      }
      break;
    }
    break;
  case 35:	 // 6 strings to match.
    if (memcmp(BuiltinName.data()+0, "__builtin_ia32_", 15))
      break;
    switch (BuiltinName[15]) {
    default: break;
    case 'p':	 // 4 strings to match.
      if (BuiltinName[16] != 's')
        break;
      switch (BuiltinName[17]) {
      default: break;
      case 'l':	 // 2 strings to match.
        if (memcmp(BuiltinName.data()+18, "ldqi", 4))
          break;
        switch (BuiltinName[22]) {
        default: break;
        case '1':	 // 1 string to match.
          if (memcmp(BuiltinName.data()+23, "28_byteshift", 12))
            break;
          return Intrinsic::x86_sse2_psll_dq_bs;	 // "__builtin_ia32_pslldqi128_byteshift"
        case '2':	 // 1 string to match.
          if (memcmp(BuiltinName.data()+23, "56_byteshift", 12))
            break;
          return Intrinsic::x86_avx2_psll_dq_bs;	 // "__builtin_ia32_pslldqi256_byteshift"
        }
        break;
      case 'r':	 // 2 strings to match.
        if (memcmp(BuiltinName.data()+18, "ldqi", 4))
          break;
        switch (BuiltinName[22]) {
        default: break;
        case '1':	 // 1 string to match.
          if (memcmp(BuiltinName.data()+23, "28_byteshift", 12))
            break;
          return Intrinsic::x86_sse2_psrl_dq_bs;	 // "__builtin_ia32_psrldqi128_byteshift"
        case '2':	 // 1 string to match.
          if (memcmp(BuiltinName.data()+23, "56_byteshift", 12))
            break;
          return Intrinsic::x86_avx2_psrl_dq_bs;	 // "__builtin_ia32_psrldqi256_byteshift"
        }
        break;
      }
      break;
    case 'v':	 // 2 strings to match.
      if (memcmp(BuiltinName.data()+16, "broadcastf128_p", 15))
        break;
      switch (BuiltinName[31]) {
      default: break;
      case 'd':	 // 1 string to match.
        if (memcmp(BuiltinName.data()+32, "256", 3))
          break;
        return Intrinsic::x86_avx_vbroadcastf128_pd_256;	 // "__builtin_ia32_vbroadcastf128_pd256"
      case 's':	 // 1 string to match.
        if (memcmp(BuiltinName.data()+32, "256", 3))
          break;
        return Intrinsic::x86_avx_vbroadcastf128_ps_256;	 // "__builtin_ia32_vbroadcastf128_ps256"
      }
      break;
    }
    break;
  }
  }
  return Intrinsic::not_intrinsic;
}
#endif

#if defined(_MSC_VER) && defined(setjmp_undefined_for_msvc)
// let's return it to _setjmp state
#  pragma pop_macro("setjmp")
#  undef setjmp_undefined_for_msvc
#endif