Intrinsics.gen
//===- 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
CNOT, // llvm.CNOT
Fredkin, // llvm.Fredkin
H, // llvm.H
MeasX, // llvm.MeasX
MeasZ, // llvm.MeasZ
NOT, // llvm.rkqc.NOT
PrepX, // llvm.PrepX
PrepZ, // llvm.PrepZ
Rx, // llvm.Rx
Ry, // llvm.Ry
Rz, // llvm.Rz
S, // llvm.S
Sdag, // llvm.Sdag
T, // llvm.T
Tdag, // llvm.Tdag
Toffoli, // llvm.Toffoli
X, // llvm.X
Y, // llvm.Y
Z, // llvm.Z
a_eq_a_minus_b, // llvm.rkqc.a_eq_a_minus_b
a_eq_a_plus_b, // llvm.rkqc.a_eq_a_plus_b
a_eq_a_plus_b_times_c, // llvm.rkqc.a_eq_a_plus_b_times_c
a_swap_b, // llvm.rkqc.a_swap_b
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_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
assign_value_of_0_to_a, // llvm.rkqc.assign_value_of_0_to_a
assign_value_of_1_to_a, // llvm.rkqc.assign_value_of_1_to_a
assign_value_of_b_to_a, // llvm.rkqc.assign_value_of_b_to_a
bswap, // llvm.bswap
cnot, // llvm.rkqc.cnot
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
dbg_declare, // llvm.dbg.declare
dbg_value, // llvm.dbg.value
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
flt_rounds, // llvm.flt.rounds
fma, // llvm.fma
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_hh, // llvm.hexagon.A2.addh.l16.hh
hexagon_A2_addh_l16_hl, // llvm.hexagon.A2.addh.l16.hl
hexagon_A2_addh_l16_lh, // llvm.hexagon.A2.addh.l16.lh
hexagon_A2_addh_l16_ll, // llvm.hexagon.A2.addh.l16.ll
hexagon_A2_addh_l16_sat_hh, // llvm.hexagon.A2.addh.l16.sat.hh
hexagon_A2_addh_l16_sat_hl, // llvm.hexagon.A2.addh.l16.sat.hl
hexagon_A2_addh_l16_sat_lh, // llvm.hexagon.A2.addh.l16.sat.lh
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_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_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_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_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_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_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_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_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_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_hmmpyl_rs1, // llvm.hexagon.M2.hmmpyl.rs1
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_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_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_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_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_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_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_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_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_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_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_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_ct1, // llvm.hexagon.S2.ct1
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_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_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_vcrotate, // llvm.hexagon.S2.vcrotate
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_andnp, // llvm.hexagon.S4.andnp
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_ornp, // llvm.hexagon.S4.ornp
hexagon_S4_subaddi, // llvm.hexagon.S4.subaddi
hexagon_SI_to_SXTHI_asrh, // llvm.hexagon.SI.to.SXTHI.asrh
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
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
toffoli, // llvm.rkqc.toffoli
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_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_movnt_dq_256, // llvm.x86.avx.movnt.dq.256
x86_avx_movnt_pd_256, // llvm.x86.avx.movnt.pd.256
x86_avx_movnt_ps_256, // llvm.x86.avx.movnt.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_fma4_vfmadd_pd, // llvm.x86.fma4.vfmadd.pd
x86_fma4_vfmadd_pd_256, // llvm.x86.fma4.vfmadd.pd.256
x86_fma4_vfmadd_ps, // llvm.x86.fma4.vfmadd.ps
x86_fma4_vfmadd_ps_256, // llvm.x86.fma4.vfmadd.ps.256
x86_fma4_vfmadd_sd, // llvm.x86.fma4.vfmadd.sd
x86_fma4_vfmadd_ss, // llvm.x86.fma4.vfmadd.ss
x86_fma4_vfmaddsub_pd, // llvm.x86.fma4.vfmaddsub.pd
x86_fma4_vfmaddsub_pd_256, // llvm.x86.fma4.vfmaddsub.pd.256
x86_fma4_vfmaddsub_ps, // llvm.x86.fma4.vfmaddsub.ps
x86_fma4_vfmaddsub_ps_256, // llvm.x86.fma4.vfmaddsub.ps.256
x86_fma4_vfmsub_pd, // llvm.x86.fma4.vfmsub.pd
x86_fma4_vfmsub_pd_256, // llvm.x86.fma4.vfmsub.pd.256
x86_fma4_vfmsub_ps, // llvm.x86.fma4.vfmsub.ps
x86_fma4_vfmsub_ps_256, // llvm.x86.fma4.vfmsub.ps.256
x86_fma4_vfmsub_sd, // llvm.x86.fma4.vfmsub.sd
x86_fma4_vfmsub_ss, // llvm.x86.fma4.vfmsub.ss
x86_fma4_vfmsubadd_pd, // llvm.x86.fma4.vfmsubadd.pd
x86_fma4_vfmsubadd_pd_256, // llvm.x86.fma4.vfmsubadd.pd.256
x86_fma4_vfmsubadd_ps, // llvm.x86.fma4.vfmsubadd.ps
x86_fma4_vfmsubadd_ps_256, // llvm.x86.fma4.vfmsubadd.ps.256
x86_fma4_vfnmadd_pd, // llvm.x86.fma4.vfnmadd.pd
x86_fma4_vfnmadd_pd_256, // llvm.x86.fma4.vfnmadd.pd.256
x86_fma4_vfnmadd_ps, // llvm.x86.fma4.vfnmadd.ps
x86_fma4_vfnmadd_ps_256, // llvm.x86.fma4.vfnmadd.ps.256
x86_fma4_vfnmadd_sd, // llvm.x86.fma4.vfnmadd.sd
x86_fma4_vfnmadd_ss, // llvm.x86.fma4.vfnmadd.ss
x86_fma4_vfnmsub_pd, // llvm.x86.fma4.vfnmsub.pd
x86_fma4_vfnmsub_pd_256, // llvm.x86.fma4.vfnmsub.pd.256
x86_fma4_vfnmsub_ps, // llvm.x86.fma4.vfnmsub.ps
x86_fma4_vfnmsub_ps_256, // llvm.x86.fma4.vfnmsub.ps.256
x86_fma4_vfnmsub_sd, // llvm.x86.fma4.vfnmsub.sd
x86_fma4_vfnmsub_ss, // llvm.x86.fma4.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_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_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_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_vpcomeqb, // llvm.x86.xop.vpcomeqb
x86_xop_vpcomeqd, // llvm.x86.xop.vpcomeqd
x86_xop_vpcomeqq, // llvm.x86.xop.vpcomeqq
x86_xop_vpcomequb, // llvm.x86.xop.vpcomequb
x86_xop_vpcomequd, // llvm.x86.xop.vpcomequd
x86_xop_vpcomequq, // llvm.x86.xop.vpcomequq
x86_xop_vpcomequw, // llvm.x86.xop.vpcomequw
x86_xop_vpcomeqw, // llvm.x86.xop.vpcomeqw
x86_xop_vpcomfalseb, // llvm.x86.xop.vpcomfalseb
x86_xop_vpcomfalsed, // llvm.x86.xop.vpcomfalsed
x86_xop_vpcomfalseq, // llvm.x86.xop.vpcomfalseq
x86_xop_vpcomfalseub, // llvm.x86.xop.vpcomfalseub
x86_xop_vpcomfalseud, // llvm.x86.xop.vpcomfalseud
x86_xop_vpcomfalseuq, // llvm.x86.xop.vpcomfalseuq
x86_xop_vpcomfalseuw, // llvm.x86.xop.vpcomfalseuw
x86_xop_vpcomfalsew, // llvm.x86.xop.vpcomfalsew
x86_xop_vpcomgeb, // llvm.x86.xop.vpcomgeb
x86_xop_vpcomged, // llvm.x86.xop.vpcomged
x86_xop_vpcomgeq, // llvm.x86.xop.vpcomgeq
x86_xop_vpcomgeub, // llvm.x86.xop.vpcomgeub
x86_xop_vpcomgeud, // llvm.x86.xop.vpcomgeud
x86_xop_vpcomgeuq, // llvm.x86.xop.vpcomgeuq
x86_xop_vpcomgeuw, // llvm.x86.xop.vpcomgeuw
x86_xop_vpcomgew, // llvm.x86.xop.vpcomgew
x86_xop_vpcomgtb, // llvm.x86.xop.vpcomgtb
x86_xop_vpcomgtd, // llvm.x86.xop.vpcomgtd
x86_xop_vpcomgtq, // llvm.x86.xop.vpcomgtq
x86_xop_vpcomgtub, // llvm.x86.xop.vpcomgtub
x86_xop_vpcomgtud, // llvm.x86.xop.vpcomgtud
x86_xop_vpcomgtuq, // llvm.x86.xop.vpcomgtuq
x86_xop_vpcomgtuw, // llvm.x86.xop.vpcomgtuw
x86_xop_vpcomgtw, // llvm.x86.xop.vpcomgtw
x86_xop_vpcomleb, // llvm.x86.xop.vpcomleb
x86_xop_vpcomled, // llvm.x86.xop.vpcomled
x86_xop_vpcomleq, // llvm.x86.xop.vpcomleq
x86_xop_vpcomleub, // llvm.x86.xop.vpcomleub
x86_xop_vpcomleud, // llvm.x86.xop.vpcomleud
x86_xop_vpcomleuq, // llvm.x86.xop.vpcomleuq
x86_xop_vpcomleuw, // llvm.x86.xop.vpcomleuw
x86_xop_vpcomlew, // llvm.x86.xop.vpcomlew
x86_xop_vpcomltb, // llvm.x86.xop.vpcomltb
x86_xop_vpcomltd, // llvm.x86.xop.vpcomltd
x86_xop_vpcomltq, // llvm.x86.xop.vpcomltq
x86_xop_vpcomltub, // llvm.x86.xop.vpcomltub
x86_xop_vpcomltud, // llvm.x86.xop.vpcomltud
x86_xop_vpcomltuq, // llvm.x86.xop.vpcomltuq
x86_xop_vpcomltuw, // llvm.x86.xop.vpcomltuw
x86_xop_vpcomltw, // llvm.x86.xop.vpcomltw
x86_xop_vpcomneb, // llvm.x86.xop.vpcomneb
x86_xop_vpcomned, // llvm.x86.xop.vpcomned
x86_xop_vpcomneq, // llvm.x86.xop.vpcomneq
x86_xop_vpcomneub, // llvm.x86.xop.vpcomneub
x86_xop_vpcomneud, // llvm.x86.xop.vpcomneud
x86_xop_vpcomneuq, // llvm.x86.xop.vpcomneuq
x86_xop_vpcomneuw, // llvm.x86.xop.vpcomneuw
x86_xop_vpcomnew, // llvm.x86.xop.vpcomnew
x86_xop_vpcomtrueb, // llvm.x86.xop.vpcomtrueb
x86_xop_vpcomtrued, // llvm.x86.xop.vpcomtrued
x86_xop_vpcomtrueq, // llvm.x86.xop.vpcomtrueq
x86_xop_vpcomtrueub, // llvm.x86.xop.vpcomtrueub
x86_xop_vpcomtrueud, // llvm.x86.xop.vpcomtrueud
x86_xop_vpcomtrueuq, // llvm.x86.xop.vpcomtrueuq
x86_xop_vpcomtrueuw, // llvm.x86.xop.vpcomtrueuw
x86_xop_vpcomtruew, // llvm.x86.xop.vpcomtruew
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_vprotd, // llvm.x86.xop.vprotd
x86_xop_vprotq, // llvm.x86.xop.vprotq
x86_xop_vprotw, // llvm.x86.xop.vprotw
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.CNOT",
"llvm.Fredkin",
"llvm.H",
"llvm.MeasX",
"llvm.MeasZ",
"llvm.rkqc.NOT",
"llvm.PrepX",
"llvm.PrepZ",
"llvm.Rx",
"llvm.Ry",
"llvm.Rz",
"llvm.S",
"llvm.Sdag",
"llvm.T",
"llvm.Tdag",
"llvm.Toffoli",
"llvm.X",
"llvm.Y",
"llvm.Z",
"llvm.rkqc.a_eq_a_minus_b",
"llvm.rkqc.a_eq_a_plus_b",
"llvm.rkqc.a_eq_a_plus_b_times_c",
"llvm.rkqc.a_swap_b",
"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.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.rkqc.assign_value_of_0_to_a",
"llvm.rkqc.assign_value_of_1_to_a",
"llvm.rkqc.assign_value_of_b_to_a",
"llvm.bswap",
"llvm.rkqc.cnot",
"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.dbg.declare",
"llvm.dbg.value",
"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.flt.rounds",
"llvm.fma",
"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.hh",
"llvm.hexagon.A2.addh.l16.hl",
"llvm.hexagon.A2.addh.l16.lh",
"llvm.hexagon.A2.addh.l16.ll",
"llvm.hexagon.A2.addh.l16.sat.hh",
"llvm.hexagon.A2.addh.l16.sat.hl",
"llvm.hexagon.A2.addh.l16.sat.lh",
"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.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.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.vmaxh",
"llvm.hexagon.A2.vmaxub",
"llvm.hexagon.A2.vmaxuh",
"llvm.hexagon.A2.vmaxuw",
"llvm.hexagon.A2.vmaxw",
"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.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.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.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.or.and",
"llvm.hexagon.C4.or.andn",
"llvm.hexagon.C4.or.or",
"llvm.hexagon.C4.or.orn",
"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.hmmpyl.rs1",
"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.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.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.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.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.or.and",
"llvm.hexagon.M4.or.andn",
"llvm.hexagon.M4.or.or",
"llvm.hexagon.M4.or.xor",
"llvm.hexagon.M4.xor.and",
"llvm.hexagon.M4.xor.andn",
"llvm.hexagon.M4.xor.or",
"llvm.hexagon.M4.xor.xacc",
"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.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.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.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.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.ct1",
"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.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.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.vcrotate",
"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.andnp",
"llvm.hexagon.S4.or.andi",
"llvm.hexagon.S4.or.andix",
"llvm.hexagon.S4.or.ori",
"llvm.hexagon.S4.ornp",
"llvm.hexagon.S4.subaddi",
"llvm.hexagon.SI.to.SXTHI.asrh",
"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.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.rkqc.toffoli",
"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.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.movnt.dq.256",
"llvm.x86.avx.movnt.pd.256",
"llvm.x86.avx.movnt.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.fma4.vfmadd.pd",
"llvm.x86.fma4.vfmadd.pd.256",
"llvm.x86.fma4.vfmadd.ps",
"llvm.x86.fma4.vfmadd.ps.256",
"llvm.x86.fma4.vfmadd.sd",
"llvm.x86.fma4.vfmadd.ss",
"llvm.x86.fma4.vfmaddsub.pd",
"llvm.x86.fma4.vfmaddsub.pd.256",
"llvm.x86.fma4.vfmaddsub.ps",
"llvm.x86.fma4.vfmaddsub.ps.256",
"llvm.x86.fma4.vfmsub.pd",
"llvm.x86.fma4.vfmsub.pd.256",
"llvm.x86.fma4.vfmsub.ps",
"llvm.x86.fma4.vfmsub.ps.256",
"llvm.x86.fma4.vfmsub.sd",
"llvm.x86.fma4.vfmsub.ss",
"llvm.x86.fma4.vfmsubadd.pd",
"llvm.x86.fma4.vfmsubadd.pd.256",
"llvm.x86.fma4.vfmsubadd.ps",
"llvm.x86.fma4.vfmsubadd.ps.256",
"llvm.x86.fma4.vfnmadd.pd",
"llvm.x86.fma4.vfnmadd.pd.256",
"llvm.x86.fma4.vfnmadd.ps",
"llvm.x86.fma4.vfnmadd.ps.256",
"llvm.x86.fma4.vfnmadd.sd",
"llvm.x86.fma4.vfnmadd.ss",
"llvm.x86.fma4.vfnmsub.pd",
"llvm.x86.fma4.vfnmsub.pd.256",
"llvm.x86.fma4.vfnmsub.ps",
"llvm.x86.fma4.vfnmsub.ps.256",
"llvm.x86.fma4.vfnmsub.sd",
"llvm.x86.fma4.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.rdfsbase.32",
"llvm.x86.rdfsbase.64",
"llvm.x86.rdgsbase.32",
"llvm.x86.rdgsbase.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.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.vpcomeqb",
"llvm.x86.xop.vpcomeqd",
"llvm.x86.xop.vpcomeqq",
"llvm.x86.xop.vpcomequb",
"llvm.x86.xop.vpcomequd",
"llvm.x86.xop.vpcomequq",
"llvm.x86.xop.vpcomequw",
"llvm.x86.xop.vpcomeqw",
"llvm.x86.xop.vpcomfalseb",
"llvm.x86.xop.vpcomfalsed",
"llvm.x86.xop.vpcomfalseq",
"llvm.x86.xop.vpcomfalseub",
"llvm.x86.xop.vpcomfalseud",
"llvm.x86.xop.vpcomfalseuq",
"llvm.x86.xop.vpcomfalseuw",
"llvm.x86.xop.vpcomfalsew",
"llvm.x86.xop.vpcomgeb",
"llvm.x86.xop.vpcomged",
"llvm.x86.xop.vpcomgeq",
"llvm.x86.xop.vpcomgeub",
"llvm.x86.xop.vpcomgeud",
"llvm.x86.xop.vpcomgeuq",
"llvm.x86.xop.vpcomgeuw",
"llvm.x86.xop.vpcomgew",
"llvm.x86.xop.vpcomgtb",
"llvm.x86.xop.vpcomgtd",
"llvm.x86.xop.vpcomgtq",
"llvm.x86.xop.vpcomgtub",
"llvm.x86.xop.vpcomgtud",
"llvm.x86.xop.vpcomgtuq",
"llvm.x86.xop.vpcomgtuw",
"llvm.x86.xop.vpcomgtw",
"llvm.x86.xop.vpcomleb",
"llvm.x86.xop.vpcomled",
"llvm.x86.xop.vpcomleq",
"llvm.x86.xop.vpcomleub",
"llvm.x86.xop.vpcomleud",
"llvm.x86.xop.vpcomleuq",
"llvm.x86.xop.vpcomleuw",
"llvm.x86.xop.vpcomlew",
"llvm.x86.xop.vpcomltb",
"llvm.x86.xop.vpcomltd",
"llvm.x86.xop.vpcomltq",
"llvm.x86.xop.vpcomltub",
"llvm.x86.xop.vpcomltud",
"llvm.x86.xop.vpcomltuq",
"llvm.x86.xop.vpcomltuw",
"llvm.x86.xop.vpcomltw",
"llvm.x86.xop.vpcomneb",
"llvm.x86.xop.vpcomned",
"llvm.x86.xop.vpcomneq",
"llvm.x86.xop.vpcomneub",
"llvm.x86.xop.vpcomneud",
"llvm.x86.xop.vpcomneuq",
"llvm.x86.xop.vpcomneuw",
"llvm.x86.xop.vpcomnew",
"llvm.x86.xop.vpcomtrueb",
"llvm.x86.xop.vpcomtrued",
"llvm.x86.xop.vpcomtrueq",
"llvm.x86.xop.vpcomtrueub",
"llvm.x86.xop.vpcomtrueud",
"llvm.x86.xop.vpcomtrueuq",
"llvm.x86.xop.vpcomtrueuw",
"llvm.x86.xop.vpcomtruew",
"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.vprotd",
"llvm.x86.xop.vprotq",
"llvm.x86.xop.vprotw",
"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<<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<<1),
0 | (1<<4) | (1<<5) | (1<<6),
0 | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
0 | (1<<0) | (1<<2) | (1<<3) | (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) | (1<<5) | (1<<6) | (1<<7),
0 | (1<<0) | (1<<1) | (1<<2),
0,
0 | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
0 | (1<<0) | (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,
0 | (1<<4) | (1<<5) | (1<<6),
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 | (1<<1) | (1<<2) | (1<<3) | (1<<5) | (1<<6) | (1<<7),
0 | (1<<0) | (1<<2) | (1<<3),
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0 | (1<<1),
0,
0,
0,
0 | (1<<6),
0 | (1<<2) | (1<<3),
0,
0,
0,
0,
0,
0,
0,
0,
0,
0 | (1<<6) | (1<<7),
0 | (1<<3) | (1<<5) | (1<<6) | (1<<7),
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<<0) | (1<<5) | (1<<6) | (1<<7),
0 | (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<<4) | (1<<5) | (1<<6),
0 | (1<<0) | (1<<1) | (1<<4) | (1<<5) | (1<<6),
0
};
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 'C':
if (NameR.startswith("NOT.")) return Intrinsic::CNOT;
break; // end of 'C' case.
case 'F':
if (NameR.startswith("redkin.")) return Intrinsic::Fredkin;
break; // end of 'F' case.
case 'H':
if (NameR.startswith(".")) return Intrinsic::H;
break; // end of 'H' case.
case 'M':
if (NameR.startswith("easX.")) return Intrinsic::MeasX;
if (NameR.startswith("easZ.")) return Intrinsic::MeasZ;
break; // end of 'M' case.
case 'P':
if (NameR.startswith("repX.")) return Intrinsic::PrepX;
if (NameR.startswith("repZ.")) return Intrinsic::PrepZ;
break; // end of 'P' case.
case 'R':
if (NameR.startswith("x.")) return Intrinsic::Rx;
if (NameR.startswith("y.")) return Intrinsic::Ry;
if (NameR.startswith("z.")) return Intrinsic::Rz;
break; // end of 'R' case.
case 'S':
if (NameR.startswith(".")) return Intrinsic::S;
if (NameR.startswith("dag.")) return Intrinsic::Sdag;
break; // end of 'S' case.
case 'T':
if (NameR.startswith(".")) return Intrinsic::T;
if (NameR.startswith("dag.")) return Intrinsic::Tdag;
if (NameR.startswith("offoli.")) return Intrinsic::Toffoli;
break; // end of 'T' case.
case 'X':
if (NameR.startswith(".")) return Intrinsic::X;
break; // end of 'X' case.
case 'Y':
if (NameR.startswith(".")) return Intrinsic::Y;
break; // end of 'Y' case.
case 'Z':
if (NameR.startswith(".")) return Intrinsic::Z;
break; // end of 'Z' case.
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.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 (NameR.substr(0, 3) != "rm.")
break;
switch (NameR[3]) {
default: break;
case 'c': // 1 string to match.
if (NameR.substr(4, 2) != "dp")
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 (NameR.substr(0, 3) != "rm.")
break;
switch (NameR[3]) {
default: break;
case 'c': // 1 string to match.
if (NameR.substr(4, 3) != "dp2")
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 (NameR.substr(5, 2) != "c2")
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 (NameR.substr(5, 2) != "dd")
break;
return Intrinsic::arm_qadd; // "rm.qadd"
case 's': // 1 string to match.
if (NameR.substr(5, 2) != "ub")
break;
return Intrinsic::arm_qsub; // "rm.qsub"
}
break;
case 's': // 1 string to match.
if (NameR.substr(4, 3) != "sat")
break;
return Intrinsic::arm_ssat; // "rm.ssat"
case 'u': // 1 string to match.
if (NameR.substr(4, 3) != "sat")
break;
return Intrinsic::arm_usat; // "rm.usat"
}
break;
case 8: // 1 string to match.
if (NameR.substr(0, 8) != "rm.mcrr2")
break;
return Intrinsic::arm_mcrr2; // "rm.mcrr2"
case 9: // 2 strings to match.
if (NameR.substr(0, 3) != "rm.")
break;
switch (NameR[3]) {
default: break;
case 'l': // 1 string to match.
if (NameR.substr(4, 5) != "drexd")
break;
return Intrinsic::arm_ldrexd; // "rm.ldrexd"
case 's': // 1 string to match.
if (NameR.substr(4, 5) != "trexd")
break;
return Intrinsic::arm_strexd; // "rm.strexd"
}
break;
case 12: // 2 strings to match.
if (NameR.substr(0, 3) != "rm.")
break;
switch (NameR[3]) {
default: break;
case 'g': // 1 string to match.
if (NameR.substr(4, 8) != "et.fpscr")
break;
return Intrinsic::arm_get_fpscr; // "rm.get.fpscr"
case 's': // 1 string to match.
if (NameR.substr(4, 8) != "et.fpscr")
break;
return Intrinsic::arm_set_fpscr; // "rm.set.fpscr"
}
break;
case 13: // 8 strings to match.
if (NameR.substr(0, 11) != "rm.neon.vtb")
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 (NameR.substr(0, 12) != "rm.neon.vacg")
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 (NameR.substr(0, 16) != "djust.trampoline")
break;
return Intrinsic::adjust_trampoline; // "djust.trampoline"
case 17: // 3 strings to match.
if (NameR.substr(0, 3) != "rm.")
break;
switch (NameR[3]) {
default: break;
case 'n': // 2 strings to match.
if (NameR.substr(4, 8) != "eon.vcvt")
break;
switch (NameR[12]) {
default: break;
case 'f': // 1 string to match.
if (NameR.substr(13, 4) != "p2hf")
break;
return Intrinsic::arm_neon_vcvtfp2hf; // "rm.neon.vcvtfp2hf"
case 'h': // 1 string to match.
if (NameR.substr(13, 4) != "f2fp")
break;
return Intrinsic::arm_neon_vcvthf2fp; // "rm.neon.vcvthf2fp"
}
break;
case 't': // 1 string to match.
if (NameR.substr(4, 13) != "hread.pointer")
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 (NameR.substr(0, 14) != "onvert.to.fp16")
break;
return Intrinsic::convert_to_fp16; // "onvert.to.fp16"
case 16: // 1 string to match.
if (NameR.substr(0, 16) != "onvert.from.fp16")
break;
return Intrinsic::convert_from_fp16; // "onvert.from.fp16"
}
break; // end of 'c' case.
case 'd':
switch (NameR.size()) {
default: break;
case 8: // 1 string to match.
if (NameR.substr(0, 8) != "bg.value")
break;
return Intrinsic::dbg_value; // "bg.value"
case 10: // 1 string to match.
if (NameR.substr(0, 10) != "bg.declare")
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 (NameR.substr(0, 2) != "h.")
break;
switch (NameR[2]) {
default: break;
case 'd': // 1 string to match.
if (NameR.substr(3, 8) != "warf.cfa")
break;
return Intrinsic::eh_dwarf_cfa; // "h.dwarf.cfa"
case 's': // 1 string to match.
if (NameR.substr(3, 8) != "jlj.lsda")
break;
return Intrinsic::eh_sjlj_lsda; // "h.sjlj.lsda"
}
break;
case 12: // 3 strings to match.
if (NameR.substr(0, 2) != "h.")
break;
switch (NameR[2]) {
default: break;
case 'r': // 2 strings to match.
if (NameR.substr(3, 7) != "eturn.i")
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 (NameR.substr(3, 9) != "ypeid.for")
break;
return Intrinsic::eh_typeid_for; // "h.typeid.for"
}
break;
case 13: // 2 strings to match.
if (NameR.substr(0, 2) != "h.")
break;
switch (NameR[2]) {
default: break;
case 's': // 1 string to match.
if (NameR.substr(3, 10) != "jlj.setjmp")
break;
return Intrinsic::eh_sjlj_setjmp; // "h.sjlj.setjmp"
case 'u': // 1 string to match.
if (NameR.substr(3, 10) != "nwind.init")
break;
return Intrinsic::eh_unwind_init; // "h.unwind.init"
}
break;
case 14: // 1 string to match.
if (NameR.substr(0, 14) != "h.sjlj.longjmp")
break;
return Intrinsic::eh_sjlj_longjmp; // "h.sjlj.longjmp"
case 15: // 1 string to match.
if (NameR.substr(0, 15) != "h.sjlj.callsite")
break;
return Intrinsic::eh_sjlj_callsite; // "h.sjlj.callsite"
case 22: // 1 string to match.
if (NameR.substr(0, 22) != "h.sjlj.functioncontext")
break;
return Intrinsic::eh_sjlj_functioncontext; // "h.sjlj.functioncontext"
}
break; // end of 'e' case.
case 'f':
if (NameR.startswith("ma.")) return Intrinsic::fma;
switch (NameR.size()) {
default: break;
case 9: // 1 string to match.
if (NameR.substr(0, 9) != "lt.rounds")
break;
return Intrinsic::flt_rounds; // "lt.rounds"
case 11: // 1 string to match.
if (NameR.substr(0, 11) != "rameaddress")
break;
return Intrinsic::frameaddress; // "rameaddress"
}
break; // end of 'f' case.
case 'g':
switch (NameR.size()) {
default: break;
case 5: // 2 strings to match.
if (NameR.substr(0, 2) != "cr")
break;
switch (NameR[2]) {
default: break;
case 'e': // 1 string to match.
if (NameR.substr(3, 2) != "ad")
break;
return Intrinsic::gcread; // "cread"
case 'o': // 1 string to match.
if (NameR.substr(3, 2) != "ot")
break;
return Intrinsic::gcroot; // "croot"
}
break;
case 6: // 1 string to match.
if (NameR.substr(0, 6) != "cwrite")
break;
return Intrinsic::gcwrite; // "cwrite"
}
break; // end of 'g' case.
case 'h':
switch (NameR.size()) {
default: break;
case 12: // 2 strings to match.
if (NameR.substr(0, 7) != "exagon.")
break;
switch (NameR[7]) {
default: break;
case 'A': // 1 string to match.
if (NameR.substr(8, 4) != "2.or")
break;
return Intrinsic::hexagon_A2_or; // "exagon.A2.or"
case 'C': // 1 string to match.
if (NameR.substr(8, 4) != "2.or")
break;
return Intrinsic::hexagon_C2_or; // "exagon.C2.or"
}
break;
case 13: // 23 strings to match.
if (NameR.substr(0, 7) != "exagon.")
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 (NameR.substr(11, 2) != "rp")
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 (NameR.substr(11, 2) != "fr")
break;
return Intrinsic::hexagon_A2_tfr; // "exagon.A2.tfr"
case 'x': // 1 string to match.
if (NameR.substr(11, 2) != "or")
break;
return Intrinsic::hexagon_A2_xor; // "exagon.A2.xor"
}
break;
case '4': // 1 string to match.
if (NameR.substr(9, 4) != ".orn")
break;
return Intrinsic::hexagon_A4_orn; // "exagon.A4.orn"
}
break;
case 'C': // 5 strings to match.
if (NameR.substr(8, 2) != "2.")
break;
switch (NameR[10]) {
default: break;
case 'a': // 1 string to match.
if (NameR.substr(11, 2) != "nd")
break;
return Intrinsic::hexagon_C2_and; // "exagon.C2.and"
case 'm': // 1 string to match.
if (NameR.substr(11, 2) != "ux")
break;
return Intrinsic::hexagon_C2_mux; // "exagon.C2.mux"
case 'n': // 1 string to match.
if (NameR.substr(11, 2) != "ot")
break;
return Intrinsic::hexagon_C2_not; // "exagon.C2.not"
case 'o': // 1 string to match.
if (NameR.substr(11, 2) != "rn")
break;
return Intrinsic::hexagon_C2_orn; // "exagon.C2.orn"
case 'x': // 1 string to match.
if (NameR.substr(11, 2) != "or")
break;
return Intrinsic::hexagon_C2_xor; // "exagon.C2.xor"
}
break;
case 'S': // 5 strings to match.
if (NameR.substr(8, 3) != "2.c")
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: // 40 strings to match.
if (NameR.substr(0, 7) != "exagon.")
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 (NameR.substr(12, 2) != "sp")
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 (NameR.substr(12, 2) != "dp")
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 (NameR.substr(12, 2) != "gp")
break;
return Intrinsic::hexagon_A2_negp; // "exagon.A2.negp"
case 'o': // 1 string to match.
if (NameR.substr(12, 2) != "tp")
break;
return Intrinsic::hexagon_A2_notp; // "exagon.A2.notp"
}
break;
case 'o': // 1 string to match.
if (NameR.substr(11, 3) != "rir")
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 (NameR.substr(12, 2) != "bp")
break;
return Intrinsic::hexagon_A2_subp; // "exagon.A2.subp"
case 'w': // 1 string to match.
if (NameR.substr(12, 2) != "iz")
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 (NameR.substr(11, 3) != "frp")
break;
return Intrinsic::hexagon_A2_tfrp; // "exagon.A2.tfrp"
case 'x': // 1 string to match.
if (NameR.substr(11, 3) != "orp")
break;
return Intrinsic::hexagon_A2_xorp; // "exagon.A2.xorp"
case 'z': // 2 strings to match.
if (NameR.substr(11, 2) != "xt")
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 (NameR.substr(11, 3) != "ndn")
break;
return Intrinsic::hexagon_A4_andn; // "exagon.A4.andn"
case 'o': // 1 string to match.
if (NameR.substr(11, 3) != "rnp")
break;
return Intrinsic::hexagon_A4_ornp; // "exagon.A4.ornp"
}
break;
}
break;
case 'C': // 5 strings to match.
if (NameR.substr(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 (NameR.substr(12, 2) != "l8")
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 (NameR.substr(11, 3) != "ask")
break;
return Intrinsic::hexagon_C2_mask; // "exagon.C2.mask"
case 'v': // 1 string to match.
if (NameR.substr(11, 3) != "mux")
break;
return Intrinsic::hexagon_C2_vmux; // "exagon.C2.vmux"
}
break;
case 'M': // 3 strings to match.
if (NameR.substr(8, 2) != "2.")
break;
switch (NameR[10]) {
default: break;
case 'a': // 1 string to match.
if (NameR.substr(11, 3) != "cci")
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 (NameR.substr(12, 2) != "ci")
break;
return Intrinsic::hexagon_M2_maci; // "exagon.M2.maci"
case 'p': // 1 string to match.
if (NameR.substr(12, 2) != "yi")
break;
return Intrinsic::hexagon_M2_mpyi; // "exagon.M2.mpyi"
}
break;
}
break;
case 'S': // 6 strings to match.
switch (NameR[8]) {
default: break;
case '2': // 5 strings to match.
if (NameR[9] != '.')
break;
switch (NameR[10]) {
default: break;
case 'b': // 1 string to match.
if (NameR.substr(11, 3) != "rev")
break;
return Intrinsic::hexagon_S2_brev; // "exagon.S2.brev"
case 'c': // 3 strings to match.
if (NameR[11] != 'l')
break;
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 'l': // 1 string to match.
if (NameR.substr(11, 3) != "fsp")
break;
return Intrinsic::hexagon_S2_lfsp; // "exagon.S2.lfsp"
}
break;
case '4': // 1 string to match.
if (NameR.substr(9, 5) != ".ornp")
break;
return Intrinsic::hexagon_S4_ornp; // "exagon.S4.ornp"
}
break;
}
break;
case 15: // 40 strings to match.
if (NameR.substr(0, 7) != "exagon.")
break;
switch (NameR[7]) {
default: break;
case 'A': // 25 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': // 2 strings to match.
switch (NameR[11]) {
default: break;
case 'd': // 1 string to match.
if (NameR.substr(12, 3) != "dsp")
break;
return Intrinsic::hexagon_A2_addsp; // "exagon.A2.addsp"
case 'n': // 1 string to match.
if (NameR.substr(12, 3) != "dir")
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 (NameR.substr(12, 3) != "xup")
break;
return Intrinsic::hexagon_A2_maxup; // "exagon.A2.maxup"
case 'i': // 1 string to match.
if (NameR.substr(12, 3) != "nup")
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 (NameR.substr(12, 2) != "tu")
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 (NameR.substr(12, 3) != "bri")
break;
return Intrinsic::hexagon_A2_subri; // "exagon.A2.subri"
}
break;
case 't': // 4 strings to match.
if (NameR.substr(11, 2) != "fr")
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': // 13 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 (NameR.substr(12, 3) != "onj")
break;
return Intrinsic::hexagon_A2_vconj; // "exagon.A2.vconj"
case 'm': // 4 strings to match.
switch (NameR[12]) {
default: break;
case 'a': // 2 strings to match.
if (NameR[13] != 'x')
break;
switch (NameR[14]) {
default: break;
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': // 2 strings to match.
if (NameR[13] != 'n')
break;
switch (NameR[14]) {
default: break;
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 (NameR.substr(12, 2) != "ub")
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 (NameR.substr(9, 6) != ".andnp")
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 (NameR.substr(11, 2) != "mp")
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 (NameR.substr(11, 2) != "ux")
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 (NameR.substr(11, 2) != "fr")
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 (NameR.substr(9, 6) != ".or.or")
break;
return Intrinsic::hexagon_C4_or_or; // "exagon.C4.or.or"
}
break;
case 'M': // 5 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 (NameR.substr(11, 4) != "ccii")
break;
return Intrinsic::hexagon_M2_accii; // "exagon.M2.accii"
case 'm': // 1 string to match.
if (NameR.substr(11, 4) != "pyui")
break;
return Intrinsic::hexagon_M2_mpyui; // "exagon.M2.mpyui"
case 'n': // 1 string to match.
if (NameR.substr(11, 4) != "acci")
break;
return Intrinsic::hexagon_M2_nacci; // "exagon.M2.nacci"
case 'v': // 1 string to match.
if (NameR.substr(11, 4) != "mac2")
break;
return Intrinsic::hexagon_M2_vmac2; // "exagon.M2.vmac2"
}
break;
case '4': // 1 string to match.
if (NameR.substr(9, 6) != ".or.or")
break;
return Intrinsic::hexagon_M4_or_or; // "exagon.M4.or.or"
}
break;
case 'S': // 1 string to match.
if (NameR.substr(8, 7) != "4.andnp")
break;
return Intrinsic::hexagon_S4_andnp; // "exagon.S4.andnp"
}
break;
case 16: // 58 strings to match.
if (NameR.substr(0, 7) != "exagon.")
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 'b': // 1 string to match.
if (NameR.substr(12, 4) != "ssat")
break;
return Intrinsic::hexagon_A2_abssat; // "exagon.A2.abssat"
case 'd': // 1 string to match.
if (NameR.substr(12, 4) != "dsat")
break;
return Intrinsic::hexagon_A2_addsat; // "exagon.A2.addsat"
}
break;
case 'n': // 1 string to match.
if (NameR.substr(11, 5) != "egsat")
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 (NameR.substr(12, 4) != "bsat")
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 (NameR.substr(14, 2) != "dh")
break;
return Intrinsic::hexagon_A2_svaddh; // "exagon.A2.svaddh"
case 'v': // 1 string to match.
if (NameR.substr(14, 2) != "gh")
break;
return Intrinsic::hexagon_A2_svavgh; // "exagon.A2.svavgh"
}
break;
case 's': // 1 string to match.
if (NameR.substr(13, 3) != "ubh")
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 (NameR.substr(13, 2) != "xu")
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 (NameR.substr(13, 2) != "nu")
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 (NameR.substr(12, 3) != "avg")
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 (NameR.substr(12, 2) != "ub")
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': // 1 string to match.
if (NameR.substr(9, 7) != ".rcmpeq")
break;
return Intrinsic::hexagon_A4_rcmpeq; // "exagon.A4.rcmpeq"
}
break;
case 'C': // 12 strings to match.
switch (NameR[8]) {
default: break;
case '2': // 7 strings to match.
if (NameR.substr(9, 4) != ".cmp")
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 (NameR.substr(14, 2) != "tu")
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 (NameR.substr(11, 5) != "nd.or")
break;
return Intrinsic::hexagon_C4_and_or; // "exagon.C4.and.or"
case 'c': // 2 strings to match.
if (NameR.substr(11, 2) != "mp")
break;
switch (NameR[13]) {
default: break;
case 'l': // 1 string to match.
if (NameR.substr(14, 2) != "te")
break;
return Intrinsic::hexagon_C4_cmplte; // "exagon.C4.cmplte"
case 'n': // 1 string to match.
if (NameR.substr(14, 2) != "eq")
break;
return Intrinsic::hexagon_C4_cmpneq; // "exagon.C4.cmpneq"
}
break;
case 'o': // 2 strings to match.
if (NameR.substr(11, 2) != "r.")
break;
switch (NameR[13]) {
default: break;
case 'a': // 1 string to match.
if (NameR.substr(14, 2) != "nd")
break;
return Intrinsic::hexagon_C4_or_and; // "exagon.C4.or.and"
case 'o': // 1 string to match.
if (NameR.substr(14, 2) != "rn")
break;
return Intrinsic::hexagon_C4_or_orn; // "exagon.C4.or.orn"
}
break;
}
break;
}
break;
case 'M': // 10 strings to match.
switch (NameR[8]) {
default: break;
case '2': // 6 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 (NameR.substr(12, 3) != "csi")
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 (NameR.substr(14, 2) != "up")
break;
return Intrinsic::hexagon_M2_mpy_up; // "exagon.M2.mpy.up"
case 's': // 1 string to match.
if (NameR.substr(14, 2) != "mi")
break;
return Intrinsic::hexagon_M2_mpysmi; // "exagon.M2.mpysmi"
}
break;
}
break;
case 'n': // 1 string to match.
if (NameR.substr(11, 5) != "accii")
break;
return Intrinsic::hexagon_M2_naccii; // "exagon.M2.naccii"
case 's': // 1 string to match.
if (NameR.substr(11, 5) != "ubacc")
break;
return Intrinsic::hexagon_M2_subacc; // "exagon.M2.subacc"
}
break;
case '4': // 4 strings to match.
if (NameR[9] != '.')
break;
switch (NameR[10]) {
default: break;
case 'a': // 1 string to match.
if (NameR.substr(11, 5) != "nd.or")
break;
return Intrinsic::hexagon_M4_and_or; // "exagon.M4.and.or"
case 'o': // 2 strings to match.
if (NameR.substr(11, 2) != "r.")
break;
switch (NameR[13]) {
default: break;
case 'a': // 1 string to match.
if (NameR.substr(14, 2) != "nd")
break;
return Intrinsic::hexagon_M4_or_and; // "exagon.M4.or.and"
case 'x': // 1 string to match.
if (NameR.substr(14, 2) != "or")
break;
return Intrinsic::hexagon_M4_or_xor; // "exagon.M4.or.xor"
}
break;
case 'x': // 1 string to match.
if (NameR.substr(11, 5) != "or.or")
break;
return Intrinsic::hexagon_M4_xor_or; // "exagon.M4.xor.or"
}
break;
}
break;
case 'S': // 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 'i': // 1 string to match.
if (NameR.substr(11, 5) != "nsert")
break;
return Intrinsic::hexagon_S2_insert; // "exagon.S2.insert"
case 'p': // 1 string to match.
if (NameR.substr(11, 5) != "ackhl")
break;
return Intrinsic::hexagon_S2_packhl; // "exagon.S2.packhl"
case 'v': // 6 strings to match.
switch (NameR[11]) {
default: break;
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 (NameR.substr(12, 2) != "xt")
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': // 1 string to match.
if (NameR.substr(9, 7) != ".or.ori")
break;
return Intrinsic::hexagon_S4_or_ori; // "exagon.S4.or.ori"
}
break;
}
break;
case 17: // 71 strings to match.
if (NameR.substr(0, 7) != "exagon.")
break;
switch (NameR[7]) {
default: break;
case 'A': // 25 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 (NameR.substr(11, 6) != "ddpsat")
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 (NameR.substr(14, 3) != "dhs")
break;
return Intrinsic::hexagon_A2_svaddhs; // "exagon.A2.svaddhs"
case 'v': // 1 string to match.
if (NameR.substr(14, 3) != "ghs")
break;
return Intrinsic::hexagon_A2_svavghs; // "exagon.A2.svavghs"
}
break;
case 'n': // 1 string to match.
if (NameR.substr(13, 4) != "avgh")
break;
return Intrinsic::hexagon_A2_svnavgh; // "exagon.A2.svnavgh"
case 's': // 1 string to match.
if (NameR.substr(13, 4) != "ubhs")
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 (NameR.substr(13, 2) != "du")
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 (NameR.substr(15, 2) != "cr")
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 (NameR.substr(15, 2) != "cr")
break;
return Intrinsic::hexagon_A2_vavgwcr; // "exagon.A2.vavgwcr"
}
break;
}
break;
case 'c': // 5 strings to match.
if (NameR.substr(12, 2) != "mp")
break;
switch (NameR[14]) {
default: break;
case 'b': // 1 string to match.
if (NameR.substr(15, 2) != "eq")
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 (NameR.substr(12, 3) != "avg")
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 (NameR.substr(13, 4) != "ddub")
break;
return Intrinsic::hexagon_A2_vraddub; // "exagon.A2.vraddub"
case 's': // 1 string to match.
if (NameR.substr(13, 4) != "adub")
break;
return Intrinsic::hexagon_A2_vrsadub; // "exagon.A2.vrsadub"
}
break;
case 's': // 2 strings to match.
if (NameR.substr(12, 3) != "ubu")
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': // 2 strings to match.
if (NameR.substr(9, 5) != ".rcmp")
break;
switch (NameR[14]) {
default: break;
case 'e': // 1 string to match.
if (NameR.substr(15, 2) != "qi")
break;
return Intrinsic::hexagon_A4_rcmpeqi; // "exagon.A4.rcmpeqi"
case 'n': // 1 string to match.
if (NameR.substr(15, 2) != "eq")
break;
return Intrinsic::hexagon_A4_rcmpneq; // "exagon.A4.rcmpneq"
}
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 (NameR.substr(11, 3) != "its")
break;
switch (NameR[14]) {
default: break;
case 'c': // 1 string to match.
if (NameR.substr(15, 2) != "lr")
break;
return Intrinsic::hexagon_C2_bitsclr; // "exagon.C2.bitsclr"
case 's': // 1 string to match.
if (NameR.substr(15, 2) != "et")
break;
return Intrinsic::hexagon_C2_bitsset; // "exagon.C2.bitsset"
}
break;
case 'c': // 3 strings to match.
if (NameR.substr(11, 3) != "mpg")
break;
switch (NameR[14]) {
default: break;
case 'e': // 1 string to match.
if (NameR.substr(15, 2) != "ui")
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 (NameR.substr(11, 6) != "itpack")
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 (NameR.substr(11, 3) != "nd.")
break;
switch (NameR[14]) {
default: break;
case 'a': // 1 string to match.
if (NameR.substr(15, 2) != "nd")
break;
return Intrinsic::hexagon_C4_and_and; // "exagon.C4.and.and"
case 'o': // 1 string to match.
if (NameR.substr(15, 2) != "rn")
break;
return Intrinsic::hexagon_C4_and_orn; // "exagon.C4.and.orn"
}
break;
case 'c': // 3 strings to match.
if (NameR.substr(11, 2) != "mp")
break;
switch (NameR[13]) {
default: break;
case 'l': // 2 strings to match.
if (NameR.substr(14, 2) != "te")
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 (NameR.substr(14, 3) != "eqi")
break;
return Intrinsic::hexagon_C4_cmpneqi; // "exagon.C4.cmpneqi"
}
break;
case 'o': // 1 string to match.
if (NameR.substr(11, 6) != "r.andn")
break;
return Intrinsic::hexagon_C4_or_andn; // "exagon.C4.or.andn"
}
break;
}
break;
case 'M': // 7 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 (NameR.substr(11, 6) != "pyu.up")
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 (NameR.substr(12, 5) != "ac2es")
break;
return Intrinsic::hexagon_M2_vmac2es; // "exagon.M2.vmac2es"
case 'r': // 1 string to match.
if (NameR.substr(12, 5) != "adduh")
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 (NameR.substr(11, 3) != "nd.")
break;
switch (NameR[14]) {
default: break;
case 'a': // 1 string to match.
if (NameR.substr(15, 2) != "nd")
break;
return Intrinsic::hexagon_M4_and_and; // "exagon.M4.and.and"
case 'x': // 1 string to match.
if (NameR.substr(15, 2) != "or")
break;
return Intrinsic::hexagon_M4_and_xor; // "exagon.M4.and.xor"
}
break;
case 'o': // 1 string to match.
if (NameR.substr(11, 6) != "r.andn")
break;
return Intrinsic::hexagon_M4_or_andn; // "exagon.M4.or.andn"
case 'x': // 1 string to match.
if (NameR.substr(11, 6) != "or.and")
break;
return Intrinsic::hexagon_M4_xor_and; // "exagon.M4.xor.and"
}
break;
}
break;
case 'S': // 27 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': // 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 (NameR.substr(11, 6) != "lbnorm")
break;
return Intrinsic::hexagon_S2_clbnorm; // "exagon.S2.clbnorm"
case 'i': // 1 string to match.
if (NameR.substr(11, 6) != "nsertp")
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 (NameR.substr(13, 3) != ".r.")
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 (NameR.substr(11, 6) != "arityp")
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 (NameR.substr(12, 3) != "uff")
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 (NameR.substr(12, 5) != "sathb")
break;
return Intrinsic::hexagon_S2_svsathb; // "exagon.S2.svsathb"
}
break;
case 'v': // 2 strings to match.
if (NameR.substr(11, 3) != "sat")
break;
switch (NameR[14]) {
default: break;
case 'h': // 1 string to match.
if (NameR.substr(15, 2) != "ub")
break;
return Intrinsic::hexagon_S2_vsathub; // "exagon.S2.vsathub"
case 'w': // 1 string to match.
if (NameR.substr(15, 2) != "uh")
break;
return Intrinsic::hexagon_S2_vsatwuh; // "exagon.S2.vsatwuh"
}
break;
}
break;
case '4': // 3 strings to match.
if (NameR[9] != '.')
break;
switch (NameR[10]) {
default: break;
case 'a': // 1 string to match.
if (NameR.substr(11, 6) != "ddaddi")
break;
return Intrinsic::hexagon_S4_addaddi; // "exagon.S4.addaddi"
case 'o': // 1 string to match.
if (NameR.substr(11, 6) != "r.andi")
break;
return Intrinsic::hexagon_S4_or_andi; // "exagon.S4.or.andi"
case 's': // 1 string to match.
if (NameR.substr(11, 6) != "ubaddi")
break;
return Intrinsic::hexagon_S4_subaddi; // "exagon.S4.subaddi"
}
break;
}
break;
}
break;
case 18: // 69 strings to match.
if (NameR.substr(0, 7) != "exagon.")
break;
switch (NameR[7]) {
default: break;
case 'A': // 14 strings to match.
switch (NameR[8]) {
default: break;
case '2': // 10 strings to match.
if (NameR[9] != '.')
break;
switch (NameR[10]) {
default: break;
case 'c': // 1 string to match.
if (NameR.substr(11, 7) != "ombinew")
break;
return Intrinsic::hexagon_A2_combinew; // "exagon.A2.combinew"
case 's': // 2 strings to match.
if (NameR[11] != 'v')
break;
switch (NameR[12]) {
default: break;
case 'a': // 1 string to match.
if (NameR.substr(13, 5) != "dduhs")
break;
return Intrinsic::hexagon_A2_svadduhs; // "exagon.A2.svadduhs"
case 's': // 1 string to match.
if (NameR.substr(13, 5) != "ubuhs")
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 (NameR.substr(12, 2) != "bs")
break;
switch (NameR[14]) {
default: break;
case 'h': // 1 string to match.
if (NameR.substr(15, 3) != "sat")
break;
return Intrinsic::hexagon_A2_vabshsat; // "exagon.A2.vabshsat"
case 'w': // 1 string to match.
if (NameR.substr(15, 3) != "sat")
break;
return Intrinsic::hexagon_A2_vabswsat; // "exagon.A2.vabswsat"
}
break;
case 'c': // 3 strings to match.
if (NameR.substr(12, 2) != "mp")
break;
switch (NameR[14]) {
default: break;
case 'b': // 1 string to match.
if (NameR.substr(15, 3) != "gtu")
break;
return Intrinsic::hexagon_A2_vcmpbgtu; // "exagon.A2.vcmpbgtu"
case 'h': // 1 string to match.
if (NameR.substr(15, 3) != "gtu")
break;
return Intrinsic::hexagon_A2_vcmphgtu; // "exagon.A2.vcmphgtu"
case 'w': // 1 string to match.
if (NameR.substr(15, 3) != "gtu")
break;
return Intrinsic::hexagon_A2_vcmpwgtu; // "exagon.A2.vcmpwgtu"
}
break;
case 'n': // 2 strings to match.
if (NameR.substr(12, 3) != "avg")
break;
switch (NameR[15]) {
default: break;
case 'h': // 1 string to match.
if (NameR.substr(16, 2) != "cr")
break;
return Intrinsic::hexagon_A2_vnavghcr; // "exagon.A2.vnavghcr"
case 'w': // 1 string to match.
if (NameR.substr(16, 2) != "cr")
break;
return Intrinsic::hexagon_A2_vnavgwcr; // "exagon.A2.vnavgwcr"
}
break;
}
break;
}
break;
case '4': // 4 strings to match.
if (NameR[9] != '.')
break;
switch (NameR[10]) {
default: break;
case 'm': // 1 string to match.
if (NameR.substr(11, 7) != "odwrapu")
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 (NameR.substr(12, 6) != "mpneqi")
break;
return Intrinsic::hexagon_A4_rcmpneqi; // "exagon.A4.rcmpneqi"
case 'o': // 2 strings to match.
if (NameR.substr(12, 5) != "und.r")
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;
}
break;
}
break;
case 'C': // 3 strings to match.
switch (NameR[8]) {
default: break;
case '2': // 1 string to match.
if (NameR.substr(9, 9) != ".bitsclri")
break;
return Intrinsic::hexagon_C2_bitsclri; // "exagon.C2.bitsclri"
case '4': // 2 strings to match.
if (NameR[9] != '.')
break;
switch (NameR[10]) {
default: break;
case 'a': // 1 string to match.
if (NameR.substr(11, 7) != "nd.andn")
break;
return Intrinsic::hexagon_C4_and_andn; // "exagon.C4.and.andn"
case 'c': // 1 string to match.
if (NameR.substr(11, 7) != "mplteui")
break;
return Intrinsic::hexagon_C4_cmplteui; // "exagon.C4.cmplteui"
}
break;
}
break;
case 'M': // 20 strings to match.
switch (NameR[8]) {
default: break;
case '2': // 17 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 (NameR.substr(15, 3) != ".s0")
break;
return Intrinsic::hexagon_M2_cmaci_s0; // "exagon.M2.cmaci.s0"
case 'r': // 1 string to match.
if (NameR.substr(15, 3) != ".s0")
break;
return Intrinsic::hexagon_M2_cmacr_s0; // "exagon.M2.cmacr.s0"
case 's': // 2 strings to match.
if (NameR.substr(15, 2) != ".s")
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 (NameR.substr(15, 3) != ".s0")
break;
return Intrinsic::hexagon_M2_cmpyi_s0; // "exagon.M2.cmpyi.s0"
case 'r': // 1 string to match.
if (NameR.substr(15, 3) != ".s0")
break;
return Intrinsic::hexagon_M2_cmpyr_s0; // "exagon.M2.cmpyr.s0"
case 's': // 2 strings to match.
if (NameR.substr(15, 2) != ".s")
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 (NameR.substr(12, 5) != "acs.s")
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': // 4 strings to match.
if (NameR.substr(11, 3) != "mpy")
break;
switch (NameR[14]) {
default: break;
case 'h': // 2 strings to match.
if (NameR.substr(15, 2) != ".s")
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 (NameR.substr(15, 2) != ".s")
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 'v': // 2 strings to match.
if (NameR.substr(11, 2) != "rm")
break;
switch (NameR[13]) {
default: break;
case 'a': // 1 string to match.
if (NameR.substr(14, 4) != "c.s0")
break;
return Intrinsic::hexagon_M2_vrmac_s0; // "exagon.M2.vrmac.s0"
case 'p': // 1 string to match.
if (NameR.substr(14, 4) != "y.s0")
break;
return Intrinsic::hexagon_M2_vrmpy_s0; // "exagon.M2.vrmpy.s0"
}
break;
case 'x': // 1 string to match.
if (NameR.substr(11, 7) != "or.xacc")
break;
return Intrinsic::hexagon_M2_xor_xacc; // "exagon.M2.xor.xacc"
}
break;
case '4': // 3 strings to match.
if (NameR[9] != '.')
break;
switch (NameR[10]) {
default: break;
case 'a': // 1 string to match.
if (NameR.substr(11, 7) != "nd.andn")
break;
return Intrinsic::hexagon_M4_and_andn; // "exagon.M4.and.andn"
case 'x': // 2 strings to match.
if (NameR.substr(11, 3) != "or.")
break;
switch (NameR[14]) {
default: break;
case 'a': // 1 string to match.
if (NameR.substr(15, 3) != "ndn")
break;
return Intrinsic::hexagon_M4_xor_andn; // "exagon.M4.xor.andn"
case 'x': // 1 string to match.
if (NameR.substr(15, 3) != "acc")
break;
return Intrinsic::hexagon_M4_xor_xacc; // "exagon.M4.xor.xacc"
}
break;
}
break;
}
break;
case 'S': // 32 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 (NameR.substr(15, 2) != ".v")
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 (NameR.substr(15, 2) != ".v")
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 (NameR.substr(15, 2) != ".v")
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 (NameR.substr(15, 2) != ".v")
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 (NameR.substr(11, 6) != "lrbit.")
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 (NameR.substr(11, 7) != "xtractu")
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 (NameR.substr(13, 4) != ".r.v")
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 (NameR.substr(15, 2) != ".v")
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 (NameR.substr(15, 2) != ".v")
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 (NameR.substr(12, 5) != "tbit.")
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 (NameR.substr(12, 6) != "sathub")
break;
return Intrinsic::hexagon_S2_svsathub; // "exagon.S2.svsathub"
}
break;
case 't': // 2 strings to match.
if (NameR.substr(11, 6) != "stbit.")
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 (NameR.substr(12, 4) != "lign")
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 (NameR.substr(12, 6) != "rotate")
break;
return Intrinsic::hexagon_S2_vcrotate; // "exagon.S2.vcrotate"
case 's': // 2 strings to match.
if (NameR.substr(12, 5) != "platr")
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 (NameR.substr(12, 3) != "run")
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': // 1 string to match.
if (NameR.substr(9, 9) != ".or.andix")
break;
return Intrinsic::hexagon_S4_or_andix; // "exagon.S4.or.andix"
}
break;
}
break;
case 19: // 48 strings to match.
if (NameR.substr(0, 7) != "exagon.")
break;
switch (NameR[7]) {
default: break;
case 'A': // 5 strings to match.
switch (NameR[8]) {
default: break;
case '2': // 1 string to match.
if (NameR.substr(9, 10) != ".combineii")
break;
return Intrinsic::hexagon_A2_combineii; // "exagon.A2.combineii"
case '4': // 4 strings to match.
if (NameR.substr(9, 2) != ".c")
break;
switch (NameR[11]) {
default: break;
case 'o': // 2 strings to match.
if (NameR.substr(12, 5) != "mbine")
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 (NameR.substr(12, 6) != "ound.r")
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;
}
break;
case 'C': // 1 string to match.
if (NameR.substr(8, 11) != "2.pxfer.map")
break;
return Intrinsic::hexagon_C2_pxfer_map; // "exagon.C2.pxfer.map"
case 'M': // 38 strings to match.
if (NameR.substr(8, 2) != "2.")
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 (NameR.substr(13, 5) != "csc.s")
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 (NameR.substr(15, 3) != "s.s")
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 (NameR.substr(15, 3) != "c.s")
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 (NameR.substr(12, 6) != "acsc.s")
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 'm': // 20 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 (NameR.substr(15, 3) != "s.s")
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 (NameR.substr(15, 3) != "s.s")
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 (NameR.substr(15, 3) != ".rs")
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 (NameR.substr(15, 3) != ".rs")
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 (NameR.substr(16, 2) != ".s")
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 (NameR.substr(16, 2) != ".s")
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': // 8 strings to match.
if (NameR.substr(12, 2) != "y.")
break;
switch (NameR[14]) {
default: break;
case 'h': // 4 strings to match.
switch (NameR[15]) {
default: break;
case 'h': // 2 strings to match.
if (NameR.substr(16, 2) != ".s")
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 (NameR.substr(16, 2) != ".s")
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 (NameR.substr(16, 2) != ".s")
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 (NameR.substr(16, 2) != ".s")
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;
}
break;
}
break;
case 'v': // 10 strings to match.
switch (NameR[11]) {
default: break;
case 'a': // 2 strings to match.
if (NameR.substr(12, 6) != "bsdiff")
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 (NameR.substr(14, 4) != "cs.s")
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 (NameR.substr(14, 4) != "ys.s")
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 (NameR.substr(13, 5) != "c2s.s")
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 (NameR.substr(13, 5) != "y2s.s")
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 'S': // 4 strings to match.
if (NameR.substr(8, 2) != "2.")
break;
switch (NameR[10]) {
default: break;
case 'e': // 1 string to match.
if (NameR.substr(11, 8) != "xtractup")
break;
return Intrinsic::hexagon_S2_extractup; // "exagon.S2.extractup"
case 'i': // 1 string to match.
if (NameR.substr(11, 8) != "nsert.rp")
break;
return Intrinsic::hexagon_S2_insert_rp; // "exagon.S2.insert.rp"
case 'v': // 2 strings to match.
if (NameR.substr(11, 6) != "splice")
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;
}
break;
case 20: // 66 strings to match.
if (NameR.substr(0, 7) != "exagon.")
break;
switch (NameR[7]) {
default: break;
case 'A': // 4 strings to match.
if (NameR.substr(8, 10) != "2.combine.")
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 'M': // 45 strings to match.
if (NameR.substr(8, 2) != "2.")
break;
switch (NameR[10]) {
default: break;
case 'c': // 2 strings to match.
if (NameR.substr(11, 8) != "mpyrsc.s")
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 (NameR.substr(11, 4) != "pmpy")
break;
switch (NameR[15]) {
default: break;
case 's': // 1 string to match.
if (NameR.substr(16, 4) != "s.s0")
break;
return Intrinsic::hexagon_M2_dpmpyss_s0; // "exagon.M2.dpmpyss.s0"
case 'u': // 1 string to match.
if (NameR.substr(16, 4) != "u.s0")
break;
return Intrinsic::hexagon_M2_dpmpyuu_s0; // "exagon.M2.dpmpyuu.s0"
}
break;
case 'h': // 2 strings to match.
if (NameR.substr(11, 4) != "mmpy")
break;
switch (NameR[15]) {
default: break;
case 'h': // 1 string to match.
if (NameR.substr(16, 4) != ".rs1")
break;
return Intrinsic::hexagon_M2_hmmpyh_rs1; // "exagon.M2.hmmpyh.rs1"
case 'l': // 1 string to match.
if (NameR.substr(16, 4) != ".rs1")
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 (NameR.substr(15, 4) != "s.rs")
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 (NameR.substr(15, 4) != "s.rs")
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 (NameR.substr(16, 3) != "s.s")
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 (NameR.substr(16, 3) != "s.s")
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 (NameR.substr(13, 2) != "yu")
break;
switch (NameR[15]) {
default: break;
case 'h': // 2 strings to match.
if (NameR.substr(16, 3) != ".rs")
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 (NameR.substr(16, 3) != ".rs")
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 (NameR.substr(17, 2) != ".s")
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 (NameR.substr(17, 2) != ".s")
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 (NameR.substr(17, 2) != ".s")
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 (NameR.substr(17, 2) != ".s")
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 (NameR.substr(17, 2) != ".s")
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 (NameR.substr(17, 2) != ".s")
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 (NameR.substr(17, 2) != ".s")
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 (NameR.substr(17, 2) != ".s")
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': // 11 strings to match.
switch (NameR[11]) {
default: break;
case 'd': // 2 strings to match.
if (NameR.substr(12, 7) != "mpyrs.s")
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': // 4 strings to match.
switch (NameR[12]) {
default: break;
case 'a': // 2 strings to match.
if (NameR.substr(13, 6) != "c2es.s")
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 'p': // 2 strings to match.
if (NameR.substr(13, 6) != "y2es.s")
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;
}
break;
case 'r': // 5 strings to match.
if (NameR.substr(12, 2) != "cm")
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 (NameR.substr(17, 3) != ".s0")
break;
return Intrinsic::hexagon_M2_vrcmaci_s0; // "exagon.M2.vrcmaci.s0"
case 'r': // 1 string to match.
if (NameR.substr(17, 3) != ".s0")
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 (NameR.substr(17, 3) != ".s0")
break;
return Intrinsic::hexagon_M2_vrcmpyi_s0; // "exagon.M2.vrcmpyi.s0"
case 'r': // 1 string to match.
if (NameR.substr(17, 3) != ".s0")
break;
return Intrinsic::hexagon_M2_vrcmpyr_s0; // "exagon.M2.vrcmpyr.s0"
case 's': // 1 string to match.
if (NameR.substr(17, 3) != ".s1")
break;
return Intrinsic::hexagon_M2_vrcmpys_s1; // "exagon.M2.vrcmpys.s1"
}
break;
}
break;
}
break;
}
break;
case 'S': // 17 strings to match.
if (NameR.substr(8, 2) != "2.")
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 (NameR.substr(17, 3) != ".or")
break;
return Intrinsic::hexagon_S2_asl_i_p_or; // "exagon.S2.asl.i.p.or"
case 'r': // 1 string to match.
if (NameR.substr(17, 3) != ".or")
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 (NameR.substr(17, 3) != ".or")
break;
return Intrinsic::hexagon_S2_asl_r_p_or; // "exagon.S2.asl.r.p.or"
case 'r': // 1 string to match.
if (NameR.substr(17, 3) != ".or")
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 (NameR.substr(17, 3) != ".or")
break;
return Intrinsic::hexagon_S2_asr_i_p_or; // "exagon.S2.asr.i.p.or"
case 'r': // 1 string to match.
if (NameR.substr(17, 3) != ".or")
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 (NameR.substr(17, 3) != ".or")
break;
return Intrinsic::hexagon_S2_asr_r_p_or; // "exagon.S2.asr.r.p.or"
case 'r': // 1 string to match.
if (NameR.substr(17, 3) != ".or")
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 (NameR.substr(13, 7) != "ertp.rp")
break;
return Intrinsic::hexagon_S2_insertp_rp; // "exagon.S2.insertp.rp"
case 't': // 1 string to match.
if (NameR.substr(13, 7) != "erleave")
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 (NameR.substr(13, 3) != ".r.")
break;
switch (NameR[16]) {
default: break;
case 'p': // 1 string to match.
if (NameR.substr(17, 3) != ".or")
break;
return Intrinsic::hexagon_S2_lsl_r_p_or; // "exagon.S2.lsl.r.p.or"
case 'r': // 1 string to match.
if (NameR.substr(17, 3) != ".or")
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 (NameR.substr(17, 3) != ".or")
break;
return Intrinsic::hexagon_S2_lsr_i_p_or; // "exagon.S2.lsr.i.p.or"
case 'r': // 1 string to match.
if (NameR.substr(17, 3) != ".or")
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 (NameR.substr(17, 3) != ".or")
break;
return Intrinsic::hexagon_S2_lsr_r_p_or; // "exagon.S2.lsr.r.p.or"
case 'r': // 1 string to match.
if (NameR.substr(17, 3) != ".or")
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 (NameR.substr(11, 9) != "rndpackwh")
break;
return Intrinsic::hexagon_S2_vrndpackwh; // "exagon.S2.vrndpackwh"
}
break;
}
break;
case 21: // 84 strings to match.
if (NameR.substr(0, 7) != "exagon.")
break;
switch (NameR[7]) {
default: break;
case 'A': // 16 strings to match.
if (NameR.substr(8, 2) != "2.")
break;
switch (NameR[10]) {
default: break;
case 'a': // 8 strings to match.
if (NameR.substr(11, 4) != "ddh.")
break;
switch (NameR[15]) {
default: break;
case 'h': // 4 strings to match.
if (NameR.substr(16, 3) != "16.")
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': // 4 strings to match.
if (NameR.substr(16, 3) != "16.")
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_l16_hh; // "exagon.A2.addh.l16.hh"
case 'l': // 1 string to match.
return Intrinsic::hexagon_A2_addh_l16_hl; // "exagon.A2.addh.l16.hl"
}
break;
case 'l': // 2 strings to match.
switch (NameR[20]) {
default: break;
case 'h': // 1 string to match.
return Intrinsic::hexagon_A2_addh_l16_lh; // "exagon.A2.addh.l16.lh"
case 'l': // 1 string to match.
return Intrinsic::hexagon_A2_addh_l16_ll; // "exagon.A2.addh.l16.ll"
}
break;
}
break;
}
break;
case 's': // 6 strings to match.
if (NameR.substr(11, 4) != "ubh.")
break;
switch (NameR[15]) {
default: break;
case 'h': // 4 strings to match.
if (NameR.substr(16, 3) != "16.")
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 (NameR.substr(16, 3) != "16.")
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 (NameR.substr(13, 8) != "ddub.acc")
break;
return Intrinsic::hexagon_A2_vraddub_acc; // "exagon.A2.vraddub.acc"
case 's': // 1 string to match.
if (NameR.substr(13, 8) != "adub.acc")
break;
return Intrinsic::hexagon_A2_vrsadub_acc; // "exagon.A2.vrsadub.acc"
}
break;
}
break;
case 'C': // 1 string to match.
if (NameR.substr(8, 13) != "4.fastcorner9")
break;
return Intrinsic::hexagon_C4_fastcorner9; // "exagon.C4.fastcorner9"
case 'M': // 16 strings to match.
if (NameR.substr(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 (NameR.substr(12, 3) != "acu")
break;
switch (NameR[15]) {
default: break;
case 'h': // 2 strings to match.
if (NameR.substr(16, 4) != "s.rs")
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 (NameR.substr(16, 4) != "s.rs")
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 (NameR.substr(12, 4) != "yud.")
break;
switch (NameR[16]) {
default: break;
case 'h': // 4 strings to match.
switch (NameR[17]) {
default: break;
case 'h': // 2 strings to match.
if (NameR.substr(18, 2) != ".s")
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 (NameR.substr(18, 2) != ".s")
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 (NameR.substr(18, 2) != ".s")
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 (NameR.substr(18, 2) != ".s")
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 (NameR.substr(11, 3) != "rcm")
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 (NameR.substr(17, 4) != ".s0c")
break;
return Intrinsic::hexagon_M2_vrcmaci_s0c; // "exagon.M2.vrcmaci.s0c"
case 'r': // 1 string to match.
if (NameR.substr(17, 4) != ".s0c")
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 (NameR.substr(17, 4) != ".s0c")
break;
return Intrinsic::hexagon_M2_vrcmpyi_s0c; // "exagon.M2.vrcmpyi.s0c"
case 'r': // 1 string to match.
if (NameR.substr(17, 4) != ".s0c")
break;
return Intrinsic::hexagon_M2_vrcmpyr_s0c; // "exagon.M2.vrcmpyr.s0c"
}
break;
}
break;
}
break;
case 'S': // 51 strings to match.
if (NameR.substr(8, 2) != "2.")
break;
switch (NameR[10]) {
default: break;
case 'a': // 29 strings to match.
switch (NameR[11]) {
default: break;
case 'd': // 1 string to match.
if (NameR.substr(12, 9) != "dasl.rrri")
break;
return Intrinsic::hexagon_S2_addasl_rrri; // "exagon.S2.addasl.rrri"
case 's': // 28 strings to match.
switch (NameR[12]) {
default: break;
case 'l': // 14 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 (NameR.substr(19, 2) != "ac")
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 (NameR.substr(19, 2) != "ac")
break;
return Intrinsic::hexagon_S2_asl_i_r_nac; // "exagon.S2.asl.i.r.nac"
case 's': // 1 string to match.
if (NameR.substr(19, 2) != "at")
break;
return Intrinsic::hexagon_S2_asl_i_r_sat; // "exagon.S2.asl.i.r.sat"
}
break;
}
break;
case 'r': // 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_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 (NameR.substr(19, 2) != "ac")
break;
return Intrinsic::hexagon_S2_asl_r_p_nac; // "exagon.S2.asl.r.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_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 (NameR.substr(19, 2) != "ac")
break;
return Intrinsic::hexagon_S2_asl_r_r_nac; // "exagon.S2.asl.r.r.nac"
case 's': // 1 string to match.
if (NameR.substr(19, 2) != "at")
break;
return Intrinsic::hexagon_S2_asl_r_r_sat; // "exagon.S2.asl.r.r.sat"
}
break;
}
break;
}
break;
case 'r': // 14 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_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 (NameR.substr(19, 2) != "ac")
break;
return Intrinsic::hexagon_S2_asr_i_p_nac; // "exagon.S2.asr.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_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 (NameR.substr(19, 2) != "ac")
break;
return Intrinsic::hexagon_S2_asr_i_r_nac; // "exagon.S2.asr.i.r.nac"
case 'r': // 1 string to match.
if (NameR.substr(19, 2) != "nd")
break;
return Intrinsic::hexagon_S2_asr_i_r_rnd; // "exagon.S2.asr.i.r.rnd"
}
break;
}
break;
case 'r': // 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_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 (NameR.substr(19, 2) != "ac")
break;
return Intrinsic::hexagon_S2_asr_r_p_nac; // "exagon.S2.asr.r.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_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 (NameR.substr(19, 2) != "ac")
break;
return Intrinsic::hexagon_S2_asr_r_r_nac; // "exagon.S2.asr.r.r.nac"
case 's': // 1 string to match.
if (NameR.substr(19, 2) != "at")
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 (NameR.substr(11, 10) != "xtractu.rp")
break;
return Intrinsic::hexagon_S2_extractu_rp; // "exagon.S2.extractu.rp"
case 'l': // 18 strings to match.
if (NameR[11] != 's')
break;
switch (NameR[12]) {
default: break;
case 'l': // 6 strings to match.
if (NameR.substr(13, 3) != ".r.")
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_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 (NameR.substr(19, 2) != "ac")
break;
return Intrinsic::hexagon_S2_lsl_r_p_nac; // "exagon.S2.lsl.r.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_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 (NameR.substr(19, 2) != "ac")
break;
return Intrinsic::hexagon_S2_lsl_r_r_nac; // "exagon.S2.lsl.r.r.nac"
}
break;
}
break;
case 'r': // 12 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 (NameR.substr(19, 2) != "ac")
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 (NameR.substr(19, 2) != "ac")
break;
return Intrinsic::hexagon_S2_lsr_i_r_nac; // "exagon.S2.lsr.i.r.nac"
}
break;
}
break;
case 'r': // 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_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 (NameR.substr(19, 2) != "ac")
break;
return Intrinsic::hexagon_S2_lsr_r_p_nac; // "exagon.S2.lsr.r.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_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 (NameR.substr(19, 2) != "ac")
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 (NameR.substr(11, 9) != "ogglebit.")
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 (NameR.substr(11, 10) != "rndpackwhs")
break;
return Intrinsic::hexagon_S2_vrndpackwhs; // "exagon.S2.vrndpackwhs"
}
break;
}
break;
case 22: // 9 strings to match.
if (NameR.substr(0, 7) != "exagon.")
break;
switch (NameR[7]) {
default: break;
case 'A': // 2 strings to match.
if (NameR.substr(8, 9) != "4.round.r")
break;
switch (NameR[17]) {
default: break;
case 'i': // 1 string to match.
if (NameR.substr(18, 4) != ".sat")
break;
return Intrinsic::hexagon_A4_round_ri_sat; // "exagon.A4.round.ri.sat"
case 'r': // 1 string to match.
if (NameR.substr(18, 4) != ".sat")
break;
return Intrinsic::hexagon_A4_round_rr_sat; // "exagon.A4.round.rr.sat"
}
break;
case 'M': // 1 string to match.
if (NameR.substr(8, 14) != "2.vrcmpys.s1rp")
break;
return Intrinsic::hexagon_M2_vrcmpys_s1rp; // "exagon.M2.vrcmpys.s1rp"
case 'S': // 6 strings to match.
if (NameR.substr(8, 2) != "2.")
break;
switch (NameR[10]) {
default: break;
case 'a': // 2 strings to match.
if (NameR.substr(11, 5) != "sl.i.")
break;
switch (NameR[16]) {
default: break;
case 'p': // 1 string to match.
if (NameR.substr(17, 5) != ".xacc")
break;
return Intrinsic::hexagon_S2_asl_i_p_xacc; // "exagon.S2.asl.i.p.xacc"
case 'r': // 1 string to match.
if (NameR.substr(17, 5) != ".xacc")
break;
return Intrinsic::hexagon_S2_asl_i_r_xacc; // "exagon.S2.asl.i.r.xacc"
}
break;
case 'd': // 1 string to match.
if (NameR.substr(11, 11) != "einterleave")
break;
return Intrinsic::hexagon_S2_deinterleave; // "exagon.S2.deinterleave"
case 'e': // 1 string to match.
if (NameR.substr(11, 11) != "xtractup.rp")
break;
return Intrinsic::hexagon_S2_extractup_rp; // "exagon.S2.extractup.rp"
case 'l': // 2 strings to match.
if (NameR.substr(11, 5) != "sr.i.")
break;
switch (NameR[16]) {
default: break;
case 'p': // 1 string to match.
if (NameR.substr(17, 5) != ".xacc")
break;
return Intrinsic::hexagon_S2_lsr_i_p_xacc; // "exagon.S2.lsr.i.p.xacc"
case 'r': // 1 string to match.
if (NameR.substr(17, 5) != ".xacc")
break;
return Intrinsic::hexagon_S2_lsr_i_r_xacc; // "exagon.S2.lsr.i.r.xacc"
}
break;
}
break;
}
break;
case 23: // 37 strings to match.
if (NameR.substr(0, 7) != "exagon.")
break;
switch (NameR[7]) {
default: break;
case 'M': // 34 strings to match.
if (NameR.substr(8, 2) != "2.")
break;
switch (NameR[10]) {
default: break;
case 'm': // 32 strings to match.
if (NameR.substr(11, 3) != "py.")
break;
switch (NameR[14]) {
default: break;
case 'a': // 8 strings to match.
if (NameR.substr(15, 3) != "cc.")
break;
switch (NameR[18]) {
default: break;
case 'h': // 4 strings to match.
switch (NameR[19]) {
default: break;
case 'h': // 2 strings to match.
if (NameR.substr(20, 2) != ".s")
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 (NameR.substr(20, 2) != ".s")
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 (NameR.substr(20, 2) != ".s")
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 (NameR.substr(20, 2) != ".s")
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 (NameR.substr(15, 3) != "ac.")
break;
switch (NameR[18]) {
default: break;
case 'h': // 4 strings to match.
switch (NameR[19]) {
default: break;
case 'h': // 2 strings to match.
if (NameR.substr(20, 2) != ".s")
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 (NameR.substr(20, 2) != ".s")
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 (NameR.substr(20, 2) != ".s")
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 (NameR.substr(20, 2) != ".s")
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 (NameR.substr(15, 3) != "nd.")
break;
switch (NameR[18]) {
default: break;
case 'h': // 4 strings to match.
switch (NameR[19]) {
default: break;
case 'h': // 2 strings to match.
if (NameR.substr(20, 2) != ".s")
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 (NameR.substr(20, 2) != ".s")
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 (NameR.substr(20, 2) != ".s")
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 (NameR.substr(20, 2) != ".s")
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 (NameR.substr(15, 3) != "at.")
break;
switch (NameR[18]) {
default: break;
case 'h': // 4 strings to match.
switch (NameR[19]) {
default: break;
case 'h': // 2 strings to match.
if (NameR.substr(20, 2) != ".s")
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 (NameR.substr(20, 2) != ".s")
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 (NameR.substr(20, 2) != ".s")
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 (NameR.substr(20, 2) != ".s")
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;
}
break;
case 'v': // 2 strings to match.
if (NameR.substr(11, 7) != "mpy2s.s")
break;
switch (NameR[18]) {
default: break;
case '0': // 1 string to match.
if (NameR.substr(19, 4) != "pack")
break;
return Intrinsic::hexagon_M2_vmpy2s_s0pack; // "exagon.M2.vmpy2s.s0pack"
case '1': // 1 string to match.
if (NameR.substr(19, 4) != "pack")
break;
return Intrinsic::hexagon_M2_vmpy2s_s1pack; // "exagon.M2.vmpy2s.s1pack"
}
break;
}
break;
case 'S': // 3 strings to match.
switch (NameR[8]) {
default: break;
case '2': // 2 strings to match.
if (NameR.substr(9, 5) != ".vsat")
break;
switch (NameR[14]) {
default: break;
case 'h': // 1 string to match.
if (NameR.substr(15, 8) != "b.nopack")
break;
return Intrinsic::hexagon_S2_vsathb_nopack; // "exagon.S2.vsathb.nopack"
case 'w': // 1 string to match.
if (NameR.substr(15, 8) != "h.nopack")
break;
return Intrinsic::hexagon_S2_vsatwh_nopack; // "exagon.S2.vsatwh.nopack"
}
break;
case 'I': // 1 string to match.
if (NameR.substr(9, 14) != ".to.SXTHI.asrh")
break;
return Intrinsic::hexagon_SI_to_SXTHI_asrh; // "exagon.SI.to.SXTHI.asrh"
}
break;
}
break;
case 24: // 56 strings to match.
if (NameR.substr(0, 7) != "exagon.")
break;
switch (NameR[7]) {
default: break;
case 'M': // 52 strings to match.
if (NameR.substr(8, 2) != "2.")
break;
switch (NameR[10]) {
default: break;
case 'd': // 5 strings to match.
if (NameR.substr(11, 4) != "pmpy")
break;
switch (NameR[15]) {
default: break;
case 's': // 3 strings to match.
if (NameR.substr(16, 2) != "s.")
break;
switch (NameR[18]) {
default: break;
case 'a': // 1 string to match.
if (NameR.substr(19, 5) != "cc.s0")
break;
return Intrinsic::hexagon_M2_dpmpyss_acc_s0; // "exagon.M2.dpmpyss.acc.s0"
case 'n': // 1 string to match.
if (NameR.substr(19, 5) != "ac.s0")
break;
return Intrinsic::hexagon_M2_dpmpyss_nac_s0; // "exagon.M2.dpmpyss.nac.s0"
case 'r': // 1 string to match.
if (NameR.substr(19, 5) != "nd.s0")
break;
return Intrinsic::hexagon_M2_dpmpyss_rnd_s0; // "exagon.M2.dpmpyss.rnd.s0"
}
break;
case 'u': // 2 strings to match.
if (NameR.substr(16, 2) != "u.")
break;
switch (NameR[18]) {
default: break;
case 'a': // 1 string to match.
if (NameR.substr(19, 5) != "cc.s0")
break;
return Intrinsic::hexagon_M2_dpmpyuu_acc_s0; // "exagon.M2.dpmpyuu.acc.s0"
case 'n': // 1 string to match.
if (NameR.substr(19, 5) != "ac.s0")
break;
return Intrinsic::hexagon_M2_dpmpyuu_nac_s0; // "exagon.M2.dpmpyuu.nac.s0"
}
break;
}
break;
case 'm': // 40 strings to match.
if (NameR.substr(11, 2) != "py")
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 (NameR.substr(16, 3) != "cc.")
break;
switch (NameR[19]) {
default: break;
case 'h': // 4 strings to match.
switch (NameR[20]) {
default: break;
case 'h': // 2 strings to match.
if (NameR.substr(21, 2) != ".s")
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 (NameR.substr(21, 2) != ".s")
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 (NameR.substr(21, 2) != ".s")
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 (NameR.substr(21, 2) != ".s")
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 (NameR.substr(16, 3) != "ac.")
break;
switch (NameR[19]) {
default: break;
case 'h': // 4 strings to match.
switch (NameR[20]) {
default: break;
case 'h': // 2 strings to match.
if (NameR.substr(21, 2) != ".s")
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 (NameR.substr(21, 2) != ".s")
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 (NameR.substr(21, 2) != ".s")
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 (NameR.substr(21, 2) != ".s")
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 (NameR.substr(16, 3) != "nd.")
break;
switch (NameR[19]) {
default: break;
case 'h': // 4 strings to match.
switch (NameR[20]) {
default: break;
case 'h': // 2 strings to match.
if (NameR.substr(21, 2) != ".s")
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 (NameR.substr(21, 2) != ".s")
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 (NameR.substr(21, 2) != ".s")
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 (NameR.substr(21, 2) != ".s")
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 (NameR.substr(16, 3) != "cc.")
break;
switch (NameR[19]) {
default: break;
case 'h': // 4 strings to match.
switch (NameR[20]) {
default: break;
case 'h': // 2 strings to match.
if (NameR.substr(21, 2) != ".s")
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 (NameR.substr(21, 2) != ".s")
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 (NameR.substr(21, 2) != ".s")
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 (NameR.substr(21, 2) != ".s")
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 (NameR.substr(16, 3) != "ac.")
break;
switch (NameR[19]) {
default: break;
case 'h': // 4 strings to match.
switch (NameR[20]) {
default: break;
case 'h': // 2 strings to match.
if (NameR.substr(21, 2) != ".s")
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 (NameR.substr(21, 2) != ".s")
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 (NameR.substr(21, 2) != ".s")
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 (NameR.substr(21, 2) != ".s")
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 (NameR.substr(14, 9) != "c.s0.sat.")
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 (NameR.substr(14, 3) != "y.s")
break;
switch (NameR[17]) {
default: break;
case '0': // 2 strings to match.
if (NameR.substr(18, 5) != ".sat.")
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 (NameR.substr(18, 5) != ".sat.")
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 (NameR.substr(12, 12) != "cmpys.acc.s1")
break;
return Intrinsic::hexagon_M2_vrcmpys_acc_s1; // "exagon.M2.vrcmpys.acc.s1"
}
break;
}
break;
case 'S': // 4 strings to match.
if (NameR.substr(8, 2) != "2.")
break;
switch (NameR[10]) {
default: break;
case 'a': // 2 strings to match.
if (NameR.substr(11, 3) != "sr.")
break;
switch (NameR[14]) {
default: break;
case 'i': // 1 string to match.
if (NameR.substr(15, 9) != ".svw.trun")
break;
return Intrinsic::hexagon_S2_asr_i_svw_trun; // "exagon.S2.asr.i.svw.trun"
case 'r': // 1 string to match.
if (NameR.substr(15, 9) != ".svw.trun")
break;
return Intrinsic::hexagon_S2_asr_r_svw_trun; // "exagon.S2.asr.r.svw.trun"
}
break;
case 'v': // 2 strings to match.
if (NameR.substr(11, 3) != "sat")
break;
switch (NameR[14]) {
default: break;
case 'h': // 1 string to match.
if (NameR.substr(15, 9) != "ub.nopack")
break;
return Intrinsic::hexagon_S2_vsathub_nopack; // "exagon.S2.vsathub.nopack"
case 'w': // 1 string to match.
if (NameR.substr(15, 9) != "uh.nopack")
break;
return Intrinsic::hexagon_S2_vsatwuh_nopack; // "exagon.S2.vsatwuh.nopack"
}
break;
}
break;
}
break;
case 25: // 31 strings to match.
if (NameR.substr(0, 7) != "exagon.")
break;
switch (NameR[7]) {
default: break;
case 'A': // 14 strings to match.
if (NameR.substr(8, 2) != "2.")
break;
switch (NameR[10]) {
default: break;
case 'a': // 8 strings to match.
if (NameR.substr(11, 4) != "ddh.")
break;
switch (NameR[15]) {
default: break;
case 'h': // 4 strings to match.
if (NameR.substr(16, 7) != "16.sat.")
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': // 4 strings to match.
if (NameR.substr(16, 7) != "16.sat.")
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_l16_sat_hh; // "exagon.A2.addh.l16.sat.hh"
case 'l': // 1 string to match.
return Intrinsic::hexagon_A2_addh_l16_sat_hl; // "exagon.A2.addh.l16.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_l16_sat_lh; // "exagon.A2.addh.l16.sat.lh"
case 'l': // 1 string to match.
return Intrinsic::hexagon_A2_addh_l16_sat_ll; // "exagon.A2.addh.l16.sat.ll"
}
break;
}
break;
}
break;
case 's': // 6 strings to match.
if (NameR.substr(11, 4) != "ubh.")
break;
switch (NameR[15]) {
default: break;
case 'h': // 4 strings to match.
if (NameR.substr(16, 7) != "16.sat.")
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 (NameR.substr(16, 7) != "16.sat.")
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 (NameR.substr(8, 17) != "4.fastcorner9.not")
break;
return Intrinsic::hexagon_C4_fastcorner9_not; // "exagon.C4.fastcorner9.not"
case 'M': // 16 strings to match.
if (NameR.substr(8, 8) != "2.mpyud.")
break;
switch (NameR[16]) {
default: break;
case 'a': // 8 strings to match.
if (NameR.substr(17, 3) != "cc.")
break;
switch (NameR[20]) {
default: break;
case 'h': // 4 strings to match.
switch (NameR[21]) {
default: break;
case 'h': // 2 strings to match.
if (NameR.substr(22, 2) != ".s")
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 (NameR.substr(22, 2) != ".s")
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 (NameR.substr(22, 2) != ".s")
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 (NameR.substr(22, 2) != ".s")
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 (NameR.substr(17, 3) != "ac.")
break;
switch (NameR[20]) {
default: break;
case 'h': // 4 strings to match.
switch (NameR[21]) {
default: break;
case 'h': // 2 strings to match.
if (NameR.substr(22, 2) != ".s")
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 (NameR.substr(22, 2) != ".s")
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 (NameR.substr(22, 2) != ".s")
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 (NameR.substr(22, 2) != ".s")
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 (NameR.substr(0, 14) != "exagon.M2.mpy.")
break;
switch (NameR[14]) {
default: break;
case 'a': // 8 strings to match.
if (NameR.substr(15, 7) != "cc.sat.")
break;
switch (NameR[22]) {
default: break;
case 'h': // 4 strings to match.
switch (NameR[23]) {
default: break;
case 'h': // 2 strings to match.
if (NameR.substr(24, 2) != ".s")
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 (NameR.substr(24, 2) != ".s")
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 (NameR.substr(24, 2) != ".s")
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 (NameR.substr(24, 2) != ".s")
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 (NameR.substr(15, 7) != "ac.sat.")
break;
switch (NameR[22]) {
default: break;
case 'h': // 4 strings to match.
switch (NameR[23]) {
default: break;
case 'h': // 2 strings to match.
if (NameR.substr(24, 2) != ".s")
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 (NameR.substr(24, 2) != ".s")
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 (NameR.substr(24, 2) != ".s")
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 (NameR.substr(24, 2) != ".s")
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 (NameR.substr(15, 7) != "at.rnd.")
break;
switch (NameR[22]) {
default: break;
case 'h': // 4 strings to match.
switch (NameR[23]) {
default: break;
case 'h': // 2 strings to match.
if (NameR.substr(24, 2) != ".s")
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 (NameR.substr(24, 2) != ".s")
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 (NameR.substr(24, 2) != ".s")
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 (NameR.substr(24, 2) != ".s")
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 30: // 4 strings to match.
if (NameR.substr(0, 18) != "exagon.S2.tableidx")
break;
switch (NameR[18]) {
default: break;
case 'b': // 1 string to match.
if (NameR.substr(19, 11) != ".goodsyntax")
break;
return Intrinsic::hexagon_S2_tableidxb_goodsyntax; // "exagon.S2.tableidxb.goodsyntax"
case 'd': // 1 string to match.
if (NameR.substr(19, 11) != ".goodsyntax")
break;
return Intrinsic::hexagon_S2_tableidxd_goodsyntax; // "exagon.S2.tableidxd.goodsyntax"
case 'h': // 1 string to match.
if (NameR.substr(19, 11) != ".goodsyntax")
break;
return Intrinsic::hexagon_S2_tableidxh_goodsyntax; // "exagon.S2.tableidxh.goodsyntax"
case 'w': // 1 string to match.
if (NameR.substr(19, 11) != ".goodsyntax")
break;
return Intrinsic::hexagon_S2_tableidxw_goodsyntax; // "exagon.S2.tableidxw.goodsyntax"
}
break;
case 32: // 1 string to match.
if (NameR.substr(0, 32) != "exagon.S2.asr.i.r.rnd.goodsyntax")
break;
return Intrinsic::hexagon_S2_asr_i_r_rnd_goodsyntax; // "exagon.S2.asr.i.r.rnd.goodsyntax"
}
break; // end of 'h' case.
case 'i':
switch (NameR.size()) {
default: break;
case 12: // 1 string to match.
if (NameR.substr(0, 12) != "nvariant.end")
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 (NameR.substr(2, 12) != "t.trampoline")
break;
return Intrinsic::init_trampoline; // "nit.trampoline"
case 'v': // 1 string to match.
if (NameR.substr(2, 12) != "ariant.start")
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 (NameR.substr(0, 6) != "ongjmp")
break;
return Intrinsic::longjmp; // "ongjmp"
case 11: // 1 string to match.
if (NameR.substr(0, 11) != "ifetime.end")
break;
return Intrinsic::lifetime_end; // "ifetime.end"
case 13: // 1 string to match.
if (NameR.substr(0, 13) != "ifetime.start")
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;
break; // end of 'm' 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 (NameR.substr(1, 6) != "marker")
break;
return Intrinsic::pcmarker; // "cmarker"
case 'p': // 6 strings to match.
if (NameR.substr(1, 2) != "c.")
break;
switch (NameR[3]) {
default: break;
case 'd': // 5 strings to match.
if (NameR.substr(4, 2) != "cb")
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 (NameR.substr(4, 3) != "ync")
break;
return Intrinsic::ppc_sync; // "pc.sync"
}
break;
case 'r': // 1 string to match.
if (NameR.substr(1, 6) != "efetch")
break;
return Intrinsic::prefetch; // "refetch"
}
break;
case 8: // 2 strings to match.
if (NameR.substr(0, 6) != "pc.dcb")
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 (NameR.substr(0, 9) != "pc.dcbtst")
break;
return Intrinsic::ppc_dcbtst; // "pc.dcbtst"
case 11: // 5 strings to match.
if (NameR.substr(0, 3) != "tx.")
break;
switch (NameR[3]) {
default: break;
case 'b': // 1 string to match.
if (NameR.substr(4, 7) != "ar.sync")
break;
return Intrinsic::ptx_bar_sync; // "tx.bar.sync"
case 'r': // 4 strings to match.
if (NameR.substr(4, 6) != "ead.pm")
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 (NameR.substr(0, 12) != "tx.read.smid")
break;
return Intrinsic::ptx_read_smid; // "tx.read.smid"
case 13: // 6 strings to match.
if (NameR.substr(0, 8) != "tx.read.")
break;
switch (NameR[8]) {
default: break;
case 'c': // 1 string to match.
if (NameR.substr(9, 4) != "lock")
break;
return Intrinsic::ptx_read_clock; // "tx.read.clock"
case 'n': // 1 string to match.
if (NameR.substr(9, 4) != "smid")
break;
return Intrinsic::ptx_read_nsmid; // "tx.read.nsmid"
case 't': // 4 strings to match.
if (NameR.substr(9, 3) != "id.")
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 (NameR.substr(1, 10) != "c.altivec.")
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 (NameR.substr(12, 2) != "vx")
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 (NameR.substr(1, 7) != "x.read.")
break;
switch (NameR[8]) {
default: break;
case 'g': // 1 string to match.
if (NameR.substr(9, 5) != "ridid")
break;
return Intrinsic::ptx_read_gridid; // "tx.read.gridid"
case 'l': // 1 string to match.
if (NameR.substr(9, 5) != "aneid")
break;
return Intrinsic::ptx_read_laneid; // "tx.read.laneid"
case 'n': // 4 strings to match.
if (NameR.substr(9, 4) != "tid.")
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 (NameR.substr(9, 5) != "arpid")
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 (NameR.substr(1, 10) != "c.altivec.")
break;
switch (NameR[11]) {
default: break;
case 'd': // 1 string to match.
if (NameR.substr(12, 3) != "stt")
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 (NameR.substr(12, 3) != "tvx")
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 (NameR.substr(1, 7) != "x.read.")
break;
switch (NameR[8]) {
default: break;
case 'c': // 5 strings to match.
switch (NameR[9]) {
default: break;
case 'l': // 1 string to match.
if (NameR.substr(10, 5) != "ock64")
break;
return Intrinsic::ptx_read_clock64; // "tx.read.clock64"
case 't': // 4 strings to match.
if (NameR.substr(10, 4) != "aid.")
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 (NameR.substr(9, 6) != "warpid")
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 (NameR.substr(1, 10) != "c.altivec.")
break;
switch (NameR[11]) {
default: break;
case 'd': // 1 string to match.
if (NameR.substr(12, 4) != "stst")
break;
return Intrinsic::ppc_altivec_dstst; // "pc.altivec.dstst"
case 'l': // 3 strings to match.
if (NameR.substr(12, 2) != "ve")
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 (NameR.substr(12, 4) != "tvxl")
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 (NameR.substr(14, 2) != "rm")
break;
return Intrinsic::ppc_altivec_vperm; // "pc.altivec.vperm"
case 'k': // 1 string to match.
if (NameR.substr(14, 2) != "px")
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 (NameR.substr(14, 2) != "fp")
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 (NameR.substr(13, 2) != "ra")
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 (NameR.substr(1, 14) != "x.read.nctaid.")
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 (NameR.substr(0, 11) != "pc.altivec.")
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 (NameR.substr(14, 3) != "all")
break;
return Intrinsic::ppc_altivec_dssall; // "pc.altivec.dssall"
case 't': // 1 string to match.
if (NameR.substr(14, 3) != "stt")
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 (NameR.substr(13, 4) != "vscr")
break;
return Intrinsic::ppc_altivec_mfvscr; // "pc.altivec.mfvscr"
case 't': // 1 string to match.
if (NameR.substr(13, 4) != "vscr")
break;
return Intrinsic::ppc_altivec_mtvscr; // "pc.altivec.mtvscr"
}
break;
case 's': // 3 strings to match.
if (NameR.substr(12, 3) != "tve")
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 (NameR.substr(13, 2) != "vg")
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 (NameR.substr(15, 2) != "xs")
break;
return Intrinsic::ppc_altivec_vctsxs; // "pc.altivec.vctsxs"
case 'u': // 1 string to match.
if (NameR.substr(15, 2) != "xs")
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 (NameR.substr(0, 12) != "pc.altivec.v")
break;
switch (NameR[12]) {
default: break;
case 'a': // 7 strings to match.
if (NameR.substr(13, 2) != "dd")
break;
switch (NameR[15]) {
default: break;
case 'c': // 1 string to match.
if (NameR.substr(16, 2) != "uw")
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 (NameR.substr(13, 5) != "mpbfp")
break;
return Intrinsic::ppc_altivec_vcmpbfp; // "pc.altivec.vcmpbfp"
case 'l': // 1 string to match.
if (NameR.substr(13, 5) != "ogefp")
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 (NameR.substr(14, 4) != "ddfp")
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 (NameR.substr(16, 2) != "us")
break;
return Intrinsic::ppc_altivec_vpkuhus; // "pc.altivec.vpkuhus"
case 'w': // 1 string to match.
if (NameR.substr(16, 2) != "us")
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 (NameR.substr(16, 2) != "uw")
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 (NameR.substr(15, 3) != "sws")
break;
return Intrinsic::ppc_altivec_vsumsws; // "pc.altivec.vsumsws"
}
break;
case 'u': // 6 strings to match.
if (NameR.substr(13, 2) != "pk")
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 (NameR.substr(1, 11) != "c.altivec.v")
break;
switch (NameR[12]) {
default: break;
case 'c': // 12 strings to match.
if (NameR.substr(13, 2) != "mp")
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 (NameR.substr(17, 2) != "fp")
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 (NameR.substr(13, 6) != "xptefp")
break;
return Intrinsic::ppc_altivec_vexptefp; // "pc.altivec.vexptefp"
case 'm': // 6 strings to match.
if (NameR.substr(13, 3) != "sum")
break;
switch (NameR[16]) {
default: break;
case 'm': // 1 string to match.
if (NameR.substr(17, 2) != "bm")
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 (NameR.substr(13, 6) != "msubfp")
break;
return Intrinsic::ppc_altivec_vnmsubfp; // "pc.altivec.vnmsubfp"
case 's': // 4 strings to match.
if (NameR.substr(13, 2) != "um")
break;
switch (NameR[15]) {
default: break;
case '2': // 1 string to match.
if (NameR.substr(16, 3) != "sws")
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 (NameR.substr(17, 2) != "bs")
break;
return Intrinsic::ppc_altivec_vsum4ubs; // "pc.altivec.vsum4ubs"
}
break;
}
break;
}
break;
case 't': // 5 strings to match.
if (NameR.substr(1, 16) != "x.read.lanemask.")
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 (NameR.substr(0, 12) != "pc.altivec.v")
break;
switch (NameR[12]) {
default: break;
case 'c': // 1 string to match.
if (NameR.substr(13, 7) != "mpbfp.p")
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 (NameR.substr(14, 6) != "addshs")
break;
return Intrinsic::ppc_altivec_vmhaddshs; // "pc.altivec.vmhaddshs"
case 'l': // 1 string to match.
if (NameR.substr(14, 6) != "adduhm")
break;
return Intrinsic::ppc_altivec_vmladduhm; // "pc.altivec.vmladduhm"
}
break;
case 'r': // 1 string to match.
if (NameR.substr(13, 7) != "sqrtefp")
break;
return Intrinsic::ppc_altivec_vrsqrtefp; // "pc.altivec.vrsqrtefp"
}
break;
case 21: // 13 strings to match.
if (NameR.substr(0, 12) != "pc.altivec.v")
break;
switch (NameR[12]) {
default: break;
case 'c': // 12 strings to match.
if (NameR.substr(13, 2) != "mp")
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.substr(18, 3) != "p.p")
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 (NameR.substr(19, 2) != ".p")
break;
return Intrinsic::ppc_altivec_vcmpequb_p; // "pc.altivec.vcmpequb.p"
case 'h': // 1 string to match.
if (NameR.substr(19, 2) != ".p")
break;
return Intrinsic::ppc_altivec_vcmpequh_p; // "pc.altivec.vcmpequh.p"
case 'w': // 1 string to match.
if (NameR.substr(19, 2) != ".p")
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 (NameR.substr(17, 4) != "fp.p")
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 (NameR.substr(18, 3) != "p.p")
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 (NameR.substr(19, 2) != ".p")
break;
return Intrinsic::ppc_altivec_vcmpgtsb_p; // "pc.altivec.vcmpgtsb.p"
case 'h': // 1 string to match.
if (NameR.substr(19, 2) != ".p")
break;
return Intrinsic::ppc_altivec_vcmpgtsh_p; // "pc.altivec.vcmpgtsh.p"
case 'w': // 1 string to match.
if (NameR.substr(19, 2) != ".p")
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 (NameR.substr(19, 2) != ".p")
break;
return Intrinsic::ppc_altivec_vcmpgtub_p; // "pc.altivec.vcmpgtub.p"
case 'h': // 1 string to match.
if (NameR.substr(19, 2) != ".p")
break;
return Intrinsic::ppc_altivec_vcmpgtuh_p; // "pc.altivec.vcmpgtuh.p"
case 'w': // 1 string to match.
if (NameR.substr(19, 2) != ".p")
break;
return Intrinsic::ppc_altivec_vcmpgtuw_p; // "pc.altivec.vcmpgtuw.p"
}
break;
}
break;
}
break;
}
break;
case 'm': // 1 string to match.
if (NameR.substr(13, 8) != "hraddshs")
break;
return Intrinsic::ppc_altivec_vmhraddshs; // "pc.altivec.vmhraddshs"
}
break;
}
break; // end of 'p' case.
case 'r':
if (NameR.startswith("kqc.NOT.")) return Intrinsic::NOT;
if (NameR.startswith("kqc.a_eq_a_minus_b.")) return Intrinsic::a_eq_a_minus_b;
if (NameR.startswith("kqc.a_eq_a_plus_b.")) return Intrinsic::a_eq_a_plus_b;
if (NameR.startswith("kqc.a_eq_a_plus_b_times_c.")) return Intrinsic::a_eq_a_plus_b_times_c;
if (NameR.startswith("kqc.a_swap_b.")) return Intrinsic::a_swap_b;
if (NameR.startswith("kqc.assign_value_of_0_to_a.")) return Intrinsic::assign_value_of_0_to_a;
if (NameR.startswith("kqc.assign_value_of_1_to_a.")) return Intrinsic::assign_value_of_1_to_a;
if (NameR.startswith("kqc.assign_value_of_b_to_a.")) return Intrinsic::assign_value_of_b_to_a;
if (NameR.startswith("kqc.cnot.")) return Intrinsic::cnot;
if (NameR.startswith("kqc.toffoli.")) return Intrinsic::toffoli;
switch (NameR.size()) {
default: break;
case 12: // 1 string to match.
if (NameR.substr(0, 12) != "eturnaddress")
break;
return Intrinsic::returnaddress; // "eturnaddress"
case 15: // 1 string to match.
if (NameR.substr(0, 15) != "eadcyclecounter")
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 (NameR.substr(0, 5) != "etjmp")
break;
return Intrinsic::setjmp; // "etjmp"
case 7: // 1 string to match.
if (NameR.substr(0, 7) != "pu.si.a")
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 (NameR.substr(1, 7) != "gsetjmp")
break;
return Intrinsic::sigsetjmp; // "igsetjmp"
case 'p': // 9 strings to match.
if (NameR.substr(1, 5) != "u.si.")
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 (NameR.substr(1, 7) != "acksave")
break;
return Intrinsic::stacksave; // "tacksave"
}
break;
case 9: // 20 strings to match.
switch (NameR[0]) {
default: break;
case 'i': // 1 string to match.
if (NameR.substr(1, 8) != "glongjmp")
break;
return Intrinsic::siglongjmp; // "iglongjmp"
case 'p': // 19 strings to match.
if (NameR.substr(1, 5) != "u.si.")
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 (NameR.substr(7, 2) != "gx")
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 (NameR.substr(7, 2) != "py")
break;
return Intrinsic::spu_si_mpy; // "pu.si.mpy"
case 'n': // 1 string to match.
if (NameR.substr(7, 2) != "or")
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 (NameR.substr(7, 2) != "or")
break;
return Intrinsic::spu_si_xor; // "pu.si.xor"
}
break;
}
break;
case 10: // 26 strings to match.
if (NameR.substr(0, 6) != "pu.si.")
break;
switch (NameR[6]) {
default: break;
case 'a': // 3 strings to match.
switch (NameR[7]) {
default: break;
case 'd': // 1 string to match.
if (NameR.substr(8, 2) != "dx")
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 (NameR.substr(8, 2) != "gt")
break;
return Intrinsic::spu_si_clgt; // "pu.si.clgt"
}
break;
case 'd': // 2 strings to match.
if (NameR.substr(7, 2) != "fm")
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 (NameR.substr(8, 2) != "ms")
break;
return Intrinsic::spu_si_fnms; // "pu.si.fnms"
}
break;
case 'm': // 5 strings to match.
if (NameR.substr(7, 2) != "py")
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 (NameR.substr(7, 3) != "and")
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 (NameR.substr(8, 2) != "hi")
break;
return Intrinsic::spu_si_sfhi; // "pu.si.sfhi"
case 'h': // 1 string to match.
if (NameR.substr(8, 2) != "li")
break;
return Intrinsic::spu_si_shli; // "pu.si.shli"
}
break;
case 'x': // 1 string to match.
if (NameR.substr(7, 3) != "ori")
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 (NameR.substr(1, 5) != "u.si.")
break;
switch (NameR[6]) {
default: break;
case 'a': // 2 strings to match.
if (NameR.substr(7, 2) != "nd")
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 (NameR.substr(8, 2) != "gt")
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 (NameR.substr(7, 3) != "fnm")
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 (NameR.substr(8, 3) != "mbi")
break;
return Intrinsic::spu_si_fsmbi; // "pu.si.fsmbi"
}
break;
case 'm': // 2 strings to match.
if (NameR.substr(7, 2) != "py")
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 (NameR.substr(7, 2) != "or")
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 (NameR.substr(1, 10) != "ackrestore")
break;
return Intrinsic::stackrestore; // "tackrestore"
}
break;
case 12: // 6 strings to match.
if (NameR.substr(0, 6) != "pu.si.")
break;
switch (NameR[6]) {
default: break;
case 'c': // 2 strings to match.
if (NameR.substr(7, 3) != "lgt")
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 (NameR.substr(7, 4) != "pyhh")
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 (NameR.substr(7, 4) != "hlqb")
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 (NameR.substr(1, 5) != "u.si.")
break;
switch (NameR[6]) {
default: break;
case 'm': // 1 string to match.
if (NameR.substr(7, 6) != "pyhhau")
break;
return Intrinsic::spu_si_mpyhhau; // "pu.si.mpyhhau"
case 's': // 2 strings to match.
if (NameR.substr(7, 4) != "hlqb")
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 (NameR.substr(1, 12) != "ackprotector")
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 (NameR.substr(0, 3) != "rap")
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 (NameR.substr(0, 5) != "a_end")
break;
return Intrinsic::vaend; // "a_end"
case 6: // 1 string to match.
if (NameR.substr(0, 6) != "a_copy")
break;
return Intrinsic::vacopy; // "a_copy"
case 7: // 1 string to match.
if (NameR.substr(0, 7) != "a_start")
break;
return Intrinsic::vastart; // "a_start"
case 13: // 1 string to match.
if (NameR.substr(0, 13) != "ar.annotation")
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 (NameR.substr(0, 6) != "86.int")
break;
return Intrinsic::x86_int; // "86.int"
case 9: // 4 strings to match.
if (NameR.substr(0, 5) != "core.")
break;
switch (NameR[5]) {
default: break;
case 'c': // 2 strings to match.
switch (NameR[6]) {
default: break;
case 'l': // 1 string to match.
if (NameR.substr(7, 2) != "re")
break;
return Intrinsic::xcore_clre; // "core.clre"
case 'r': // 1 string to match.
if (NameR.substr(7, 2) != "c8")
break;
return Intrinsic::xcore_crc8; // "core.crc8"
}
break;
case 's': // 1 string to match.
if (NameR.substr(6, 3) != "ext")
break;
return Intrinsic::xcore_sext; // "core.sext"
case 'z': // 1 string to match.
if (NameR.substr(6, 3) != "ext")
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 (NameR.substr(1, 9) != "6.mmx.por")
break;
return Intrinsic::x86_mmx_por; // "86.mmx.por"
case 'c': // 9 strings to match.
if (NameR.substr(1, 4) != "ore.")
break;
switch (NameR[5]) {
default: break;
case 'c': // 2 strings to match.
switch (NameR[6]) {
default: break;
case 'l': // 1 string to match.
if (NameR.substr(7, 3) != "rsr")
break;
return Intrinsic::xcore_clrsr; // "core.clrsr"
case 'r': // 1 string to match.
if (NameR.substr(7, 3) != "c32")
break;
return Intrinsic::xcore_crc32; // "core.crc32"
}
break;
case 'g': // 4 strings to match.
if (NameR.substr(6, 2) != "et")
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 (NameR.substr(7, 3) != "ync")
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 (NameR.substr(1, 6) != "6.mmx.")
break;
switch (NameR[7]) {
default: break;
case 'e': // 1 string to match.
if (NameR.substr(8, 3) != "mms")
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 (NameR.substr(9, 2) != "nd")
break;
return Intrinsic::x86_mmx_pand; // "86.mmx.pand"
case 'x': // 1 string to match.
if (NameR.substr(9, 2) != "or")
break;
return Intrinsic::x86_mmx_pxor; // "86.mmx.pxor"
}
break;
}
break;
case 'c': // 1 string to match.
if (NameR.substr(1, 10) != "ore.bitrev")
break;
return Intrinsic::xcore_bitrev; // "core.bitrev"
}
break;
case 12: // 2 strings to match.
if (NameR.substr(0, 7) != "86.mmx.")
break;
switch (NameR[7]) {
default: break;
case 'f': // 1 string to match.
if (NameR.substr(8, 4) != "emms")
break;
return Intrinsic::x86_mmx_femms; // "86.mmx.femms"
case 'p': // 1 string to match.
if (NameR.substr(8, 4) != "andn")
break;
return Intrinsic::x86_mmx_pandn; // "86.mmx.pandn"
}
break;
case 13: // 49 strings to match.
if (NameR.substr(0, 3) != "86.")
break;
switch (NameR[3]) {
default: break;
case 'a': // 1 string to match.
if (NameR.substr(4, 9) != "vx2.permd")
break;
return Intrinsic::x86_avx2_permd; // "86.avx2.permd"
case 'm': // 18 strings to match.
if (NameR.substr(4, 4) != "mx.p")
break;
switch (NameR[8]) {
default: break;
case 'a': // 6 strings to match.
switch (NameR[9]) {
default: break;
case 'd': // 4 strings to match.
if (NameR.substr(10, 2) != "d.")
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 (NameR.substr(10, 2) != "g.")
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 (NameR.substr(10, 2) != "l.")
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 (NameR.substr(10, 2) != "b.")
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 (NameR.substr(4, 2) != "se")
break;
switch (NameR[6]) {
default: break;
case '.': // 13 strings to match.
switch (NameR[7]) {
default: break;
case 'a': // 1 string to match.
if (NameR.substr(8, 5) != "dd.ss")
break;
return Intrinsic::x86_sse_add_ss; // "86.sse.add.ss"
case 'c': // 2 strings to match.
if (NameR.substr(8, 3) != "mp.")
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 (NameR.substr(8, 5) != "iv.ss")
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 (NameR.substr(9, 2) != "x.")
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 (NameR.substr(9, 2) != "n.")
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 (NameR.substr(9, 4) != "l.ss")
break;
return Intrinsic::x86_sse_mul_ss; // "86.sse.mul.ss"
}
break;
case 'r': // 2 strings to match.
if (NameR.substr(8, 3) != "cp.")
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 (NameR.substr(9, 4) != "ence")
break;
return Intrinsic::x86_sse_sfence; // "86.sse.sfence"
case 'u': // 1 string to match.
if (NameR.substr(9, 4) != "b.ss")
break;
return Intrinsic::x86_sse_sub_ss; // "86.sse.sub.ss"
}
break;
}
break;
case '3': // 1 string to match.
if (NameR.substr(7, 6) != ".mwait")
break;
return Intrinsic::x86_sse3_mwait; // "86.sse3.mwait"
case '4': // 2 strings to match.
if (NameR.substr(7, 5) != "1.dpp")
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': // 14 strings to match.
if (NameR.substr(4, 5) != "op.vp")
break;
switch (NameR[9]) {
default: break;
case 'c': // 1 string to match.
if (NameR.substr(10, 3) != "mov")
break;
return Intrinsic::x86_xop_vpcmov; // "86.xop.vpcmov"
case 'p': // 1 string to match.
if (NameR.substr(10, 3) != "erm")
break;
return Intrinsic::x86_xop_vpperm; // "86.xop.vpperm"
case 'r': // 4 strings to match.
if (NameR.substr(10, 2) != "ot")
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: // 87 strings to match.
switch (NameR[0]) {
default: break;
case '8': // 86 strings to match.
if (NameR.substr(1, 2) != "6.")
break;
switch (NameR[3]) {
default: break;
case '3': // 9 strings to match.
if (NameR.substr(4, 6) != "dnow.p")
break;
switch (NameR[10]) {
default: break;
case 'f': // 8 strings to match.
switch (NameR[11]) {
default: break;
case '2': // 1 string to match.
if (NameR.substr(12, 2) != "id")
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 (NameR.substr(12, 2) != "cp")
break;
return Intrinsic::x86_3dnow_pfrcp; // "86.3dnow.pfrcp"
case 's': // 1 string to match.
if (NameR.substr(12, 2) != "ub")
break;
return Intrinsic::x86_3dnow_pfsub; // "86.3dnow.pfsub"
}
break;
case 'i': // 1 string to match.
if (NameR.substr(11, 3) != "2fd")
break;
return Intrinsic::x86_3dnow_pi2fd; // "86.3dnow.pi2fd"
}
break;
case 'a': // 14 strings to match.
if (NameR.substr(4, 5) != "vx2.p")
break;
switch (NameR[9]) {
default: break;
case 'a': // 5 strings to match.
switch (NameR[10]) {
default: break;
case 'b': // 3 strings to match.
if (NameR.substr(11, 2) != "s.")
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 (NameR.substr(11, 2) != "g.")
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 (NameR.substr(10, 4) != "rmps")
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 (NameR.substr(11, 2) != "l.")
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 (NameR.substr(4, 3) != "mi.")
break;
switch (NameR[7]) {
default: break;
case 'b': // 2 strings to match.
if (NameR.substr(8, 4) != "zhi.")
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 (NameR.substr(9, 3) != "ep.")
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 (NameR.substr(9, 3) != "xt.")
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 (NameR.substr(4, 4) != "mx.p")
break;
switch (NameR[8]) {
default: break;
case 'a': // 2 strings to match.
if (NameR.substr(9, 4) != "dds.")
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 (NameR.substr(9, 5) != "xtr.w")
break;
return Intrinsic::x86_mmx_pextr_w; // "86.mmx.pextr.w"
case 'i': // 1 string to match.
if (NameR.substr(9, 5) != "nsr.w")
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 (NameR.substr(12, 2) != ".w")
break;
return Intrinsic::x86_mmx_pmaxs_w; // "86.mmx.pmaxs.w"
case 'u': // 1 string to match.
if (NameR.substr(12, 2) != ".b")
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 (NameR.substr(12, 2) != ".w")
break;
return Intrinsic::x86_mmx_pmins_w; // "86.mmx.pmins.w"
case 'u': // 1 string to match.
if (NameR.substr(12, 2) != ".b")
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 (NameR.substr(12, 2) != ".w")
break;
return Intrinsic::x86_mmx_pmulh_w; // "86.mmx.pmulh.w"
case 'l': // 1 string to match.
if (NameR.substr(12, 2) != ".w")
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 (NameR.substr(10, 4) != "d.bw")
break;
return Intrinsic::x86_mmx_psad_bw; // "86.mmx.psad.bw"
case 'l': // 3 strings to match.
if (NameR.substr(10, 3) != "li.")
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 (NameR.substr(11, 2) != "i.")
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 (NameR.substr(11, 2) != "i.")
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 (NameR.substr(10, 3) != "bs.")
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 (NameR.substr(6, 6) != "sbase.")
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 (NameR.substr(6, 6) != "sbase.")
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': // 28 strings to match.
if (NameR.substr(4, 2) != "se")
break;
switch (NameR[6]) {
default: break;
case '.': // 5 strings to match.
switch (NameR[7]) {
default: break;
case 'l': // 1 string to match.
if (NameR.substr(8, 6) != "dmxcsr")
break;
return Intrinsic::x86_sse_ldmxcsr; // "86.sse.ldmxcsr"
case 'p': // 1 string to match.
if (NameR.substr(8, 6) != "shuf.w")
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 (NameR.substr(9, 3) != "rt.")
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 (NameR.substr(9, 5) != "mxcsr")
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 (NameR.substr(9, 5) != "dd.sd")
break;
return Intrinsic::x86_sse2_add_sd; // "86.sse2.add.sd"
case 'c': // 2 strings to match.
if (NameR.substr(9, 3) != "mp.")
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 (NameR.substr(9, 5) != "iv.sd")
break;
return Intrinsic::x86_sse2_div_sd; // "86.sse2.div.sd"
case 'l': // 1 string to match.
if (NameR.substr(9, 5) != "fence")
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 (NameR.substr(10, 2) != "x.")
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 (NameR.substr(10, 4) != "ence")
break;
return Intrinsic::x86_sse2_mfence; // "86.sse2.mfence"
case 'i': // 2 strings to match.
if (NameR.substr(10, 2) != "n.")
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 (NameR.substr(10, 4) != "l.sd")
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 (NameR.substr(10, 3) != "vg.")
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 (NameR.substr(11, 2) != "l.")
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 (NameR.substr(9, 5) != "ub.sd")
break;
return Intrinsic::x86_sse2_sub_sd; // "86.sse2.sub.sd"
}
break;
case '3': // 1 string to match.
if (NameR.substr(7, 7) != ".ldu.dq")
break;
return Intrinsic::x86_sse3_ldu_dq; // "86.sse3.ldu.dq"
}
break;
case 'w': // 4 strings to match.
if (NameR[4] != 'r')
break;
switch (NameR[5]) {
default: break;
case 'f': // 2 strings to match.
if (NameR.substr(6, 6) != "sbase.")
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 (NameR.substr(6, 6) != "sbase.")
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;
}
break;
case 'c': // 1 string to match.
if (NameR.substr(1, 13) != "ore.waitevent")
break;
return Intrinsic::xcore_waitevent; // "core.waitevent"
}
break;
case 15: // 166 strings to match.
switch (NameR[0]) {
default: break;
case '8': // 165 strings to match.
if (NameR.substr(1, 2) != "6.")
break;
switch (NameR[3]) {
default: break;
case '3': // 3 strings to match.
if (NameR.substr(4, 4) != "dnow")
break;
switch (NameR[8]) {
default: break;
case '.': // 1 string to match.
if (NameR.substr(9, 6) != "pfsubr")
break;
return Intrinsic::x86_3dnow_pfsubr; // "86.3dnow.pfsubr"
case 'a': // 2 strings to match.
if (NameR.substr(9, 2) != ".p")
break;
switch (NameR[11]) {
default: break;
case 'f': // 1 string to match.
if (NameR.substr(12, 3) != "2iw")
break;
return Intrinsic::x86_3dnowa_pf2iw; // "86.3dnowa.pf2iw"
case 'i': // 1 string to match.
if (NameR.substr(12, 3) != "2fw")
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 (NameR.substr(5, 7) != "sni.aes")
break;
switch (NameR[12]) {
default: break;
case 'd': // 1 string to match.
if (NameR.substr(13, 2) != "ec")
break;
return Intrinsic::x86_aesni_aesdec; // "86.aesni.aesdec"
case 'e': // 1 string to match.
if (NameR.substr(13, 2) != "nc")
break;
return Intrinsic::x86_aesni_aesenc; // "86.aesni.aesenc"
case 'i': // 1 string to match.
if (NameR.substr(13, 2) != "mc")
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 (NameR.substr(7, 8) != "vzeroall")
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 (NameR.substr(9, 6) != "psadbw")
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 (NameR.substr(10, 4) != "dds.")
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 (NameR.substr(10, 5) != "lendw")
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 (NameR.substr(11, 3) != "dd.")
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 (NameR.substr(11, 3) != "ub.")
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 (NameR.substr(13, 2) != "dq")
break;
return Intrinsic::x86_avx2_pmul_dq; // "86.avx2.pmul.dq"
case 'h': // 1 string to match.
if (NameR.substr(13, 2) != ".w")
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 (NameR.substr(11, 4) != "d.bw")
break;
return Intrinsic::x86_avx2_psad_bw; // "86.avx2.psad.bw"
case 'h': // 1 string to match.
if (NameR.substr(11, 4) != "uf.b")
break;
return Intrinsic::x86_avx2_pshuf_b; // "86.avx2.pshuf.b"
case 'i': // 3 strings to match.
if (NameR.substr(11, 3) != "gn.")
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 (NameR.substr(13, 2) != "dq")
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 (NameR.substr(13, 2) != ".d")
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 (NameR.substr(13, 2) != "dq")
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 (NameR.substr(11, 3) != "bs.")
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 (NameR.substr(4, 9) != "mi.bextr.")
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 (NameR.substr(4, 3) != "mx.")
break;
switch (NameR[7]) {
default: break;
case 'm': // 2 strings to match.
switch (NameR[8]) {
default: break;
case 'a': // 1 string to match.
if (NameR.substr(9, 6) != "skmovq")
break;
return Intrinsic::x86_mmx_maskmovq; // "86.mmx.maskmovq"
case 'o': // 1 string to match.
if (NameR.substr(9, 6) != "vnt.dq")
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 (NameR.substr(12, 3) != "swb")
break;
return Intrinsic::x86_mmx_packuswb; // "86.mmx.packuswb"
}
break;
case 'd': // 2 strings to match.
if (NameR.substr(10, 4) != "dus.")
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 (NameR.substr(9, 2) != "mp")
break;
switch (NameR[11]) {
default: break;
case 'e': // 3 strings to match.
if (NameR.substr(12, 2) != "q.")
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 (NameR.substr(12, 2) != "t.")
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 (NameR.substr(10, 5) != "dd.wd")
break;
return Intrinsic::x86_mmx_pmadd_wd; // "86.mmx.pmadd.wd"
case 'o': // 1 string to match.
if (NameR.substr(10, 5) != "vmskb")
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 (NameR.substr(12, 3) != "u.w")
break;
return Intrinsic::x86_mmx_pmulhu_w; // "86.mmx.pmulhu.w"
case 'u': // 1 string to match.
if (NameR.substr(12, 3) != ".dq")
break;
return Intrinsic::x86_mmx_pmulu_dq; // "86.mmx.pmulu.dq"
}
break;
}
break;
case 's': // 2 strings to match.
if (NameR.substr(9, 5) != "ubus.")
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': // 53 strings to match.
if (NameR[4] != 's')
break;
switch (NameR[5]) {
default: break;
case 'e': // 50 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 (NameR.substr(8, 2) != "vt")
break;
switch (NameR[10]) {
default: break;
case 'p': // 4 strings to match.
switch (NameR[11]) {
default: break;
case 'd': // 1 string to match.
if (NameR.substr(12, 3) != "2pi")
break;
return Intrinsic::x86_sse_cvtpd2pi; // "86.sse.cvtpd2pi"
case 'i': // 2 strings to match.
if (NameR.substr(12, 2) != "2p")
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 (NameR.substr(12, 3) != "2pi")
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 (NameR.substr(12, 3) != "2ss")
break;
return Intrinsic::x86_sse_cvtsi2ss; // "86.sse.cvtsi2ss"
case 's': // 1 string to match.
if (NameR.substr(12, 3) != "2si")
break;
return Intrinsic::x86_sse_cvtss2si; // "86.sse.cvtss2si"
}
break;
}
break;
case 'r': // 2 strings to match.
if (NameR.substr(8, 5) != "sqrt.")
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 (NameR.substr(9, 6) != "lflush")
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 (NameR.substr(10, 4) != "dds.")
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 (NameR.substr(13, 2) != ".w")
break;
return Intrinsic::x86_sse2_pmaxs_w; // "86.sse2.pmaxs.w"
case 'u': // 1 string to match.
if (NameR.substr(13, 2) != ".b")
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 (NameR.substr(13, 2) != ".w")
break;
return Intrinsic::x86_sse2_pmins_w; // "86.sse2.pmins.w"
case 'u': // 1 string to match.
if (NameR.substr(13, 2) != ".b")
break;
return Intrinsic::x86_sse2_pminu_b; // "86.sse2.pminu.b"
}
break;
case 'u': // 1 string to match.
if (NameR.substr(11, 4) != "lh.w")
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 (NameR.substr(11, 4) != "d.bw")
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 (NameR.substr(13, 2) != "dq")
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 (NameR.substr(12, 2) != "i.")
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 (NameR.substr(13, 2) != "dq")
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 (NameR.substr(11, 3) != "bs.")
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 (NameR.substr(9, 4) != "qrt.")
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 (NameR.substr(10, 4) != "dd.p")
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 (NameR.substr(10, 4) != "ub.p")
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 (NameR.substr(9, 6) != "onitor")
break;
return Intrinsic::x86_sse3_monitor; // "86.sse3.monitor"
}
break;
case '4': // 14 strings to match.
if (NameR.substr(7, 3) != "1.p")
break;
switch (NameR[10]) {
default: break;
case 'e': // 3 strings to match.
if (NameR.substr(11, 3) != "xtr")
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 (NameR.substr(12, 3) != "ldq")
break;
return Intrinsic::x86_sse41_pmuldq; // "86.sse41.pmuldq"
}
break;
case 't': // 2 strings to match.
if (NameR.substr(11, 3) != "est")
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;
}
break;
case 's': // 3 strings to match.
if (NameR.substr(6, 8) != "e3.pabs.")
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': // 40 strings to match.
if (NameR.substr(4, 4) != "op.v")
break;
switch (NameR[8]) {
default: break;
case 'f': // 4 strings to match.
if (NameR.substr(9, 4) != "rcz.")
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': // 36 strings to match.
switch (NameR[9]) {
default: break;
case 'c': // 24 strings to match.
if (NameR.substr(10, 2) != "om")
break;
switch (NameR[12]) {
default: break;
case 'e': // 4 strings to match.
if (NameR[13] != 'q')
break;
switch (NameR[14]) {
default: break;
case 'b': // 1 string to match.
return Intrinsic::x86_xop_vpcomeqb; // "86.xop.vpcomeqb"
case 'd': // 1 string to match.
return Intrinsic::x86_xop_vpcomeqd; // "86.xop.vpcomeqd"
case 'q': // 1 string to match.
return Intrinsic::x86_xop_vpcomeqq; // "86.xop.vpcomeqq"
case 'w': // 1 string to match.
return Intrinsic::x86_xop_vpcomeqw; // "86.xop.vpcomeqw"
}
break;
case 'g': // 8 strings to match.
switch (NameR[13]) {
default: break;
case 'e': // 4 strings to match.
switch (NameR[14]) {
default: break;
case 'b': // 1 string to match.
return Intrinsic::x86_xop_vpcomgeb; // "86.xop.vpcomgeb"
case 'd': // 1 string to match.
return Intrinsic::x86_xop_vpcomged; // "86.xop.vpcomged"
case 'q': // 1 string to match.
return Intrinsic::x86_xop_vpcomgeq; // "86.xop.vpcomgeq"
case 'w': // 1 string to match.
return Intrinsic::x86_xop_vpcomgew; // "86.xop.vpcomgew"
}
break;
case 't': // 4 strings to match.
switch (NameR[14]) {
default: break;
case 'b': // 1 string to match.
return Intrinsic::x86_xop_vpcomgtb; // "86.xop.vpcomgtb"
case 'd': // 1 string to match.
return Intrinsic::x86_xop_vpcomgtd; // "86.xop.vpcomgtd"
case 'q': // 1 string to match.
return Intrinsic::x86_xop_vpcomgtq; // "86.xop.vpcomgtq"
case 'w': // 1 string to match.
return Intrinsic::x86_xop_vpcomgtw; // "86.xop.vpcomgtw"
}
break;
}
break;
case 'l': // 8 strings to match.
switch (NameR[13]) {
default: break;
case 'e': // 4 strings to match.
switch (NameR[14]) {
default: break;
case 'b': // 1 string to match.
return Intrinsic::x86_xop_vpcomleb; // "86.xop.vpcomleb"
case 'd': // 1 string to match.
return Intrinsic::x86_xop_vpcomled; // "86.xop.vpcomled"
case 'q': // 1 string to match.
return Intrinsic::x86_xop_vpcomleq; // "86.xop.vpcomleq"
case 'w': // 1 string to match.
return Intrinsic::x86_xop_vpcomlew; // "86.xop.vpcomlew"
}
break;
case 't': // 4 strings to match.
switch (NameR[14]) {
default: break;
case 'b': // 1 string to match.
return Intrinsic::x86_xop_vpcomltb; // "86.xop.vpcomltb"
case 'd': // 1 string to match.
return Intrinsic::x86_xop_vpcomltd; // "86.xop.vpcomltd"
case 'q': // 1 string to match.
return Intrinsic::x86_xop_vpcomltq; // "86.xop.vpcomltq"
case 'w': // 1 string to match.
return Intrinsic::x86_xop_vpcomltw; // "86.xop.vpcomltw"
}
break;
}
break;
case 'n': // 4 strings to match.
if (NameR[13] != 'e')
break;
switch (NameR[14]) {
default: break;
case 'b': // 1 string to match.
return Intrinsic::x86_xop_vpcomneb; // "86.xop.vpcomneb"
case 'd': // 1 string to match.
return Intrinsic::x86_xop_vpcomned; // "86.xop.vpcomned"
case 'q': // 1 string to match.
return Intrinsic::x86_xop_vpcomneq; // "86.xop.vpcomneq"
case 'w': // 1 string to match.
return Intrinsic::x86_xop_vpcomnew; // "86.xop.vpcomnew"
}
break;
}
break;
case 'h': // 9 strings to match.
switch (NameR[10]) {
default: break;
case 'a': // 6 strings to match.
if (NameR.substr(11, 2) != "dd")
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 (NameR.substr(11, 2) != "ub")
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 (NameR.substr(10, 3) != "acs")
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 (NameR.substr(1, 14) != "ore.checkevent")
break;
return Intrinsic::xcore_checkevent; // "core.checkevent"
}
break;
case 16: // 127 strings to match.
if (NameR.substr(0, 3) != "86.")
break;
switch (NameR[3]) {
default: break;
case '3': // 8 strings to match.
if (NameR.substr(4, 4) != "dnow")
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 (NameR.substr(11, 5) != "vgusb")
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 (NameR.substr(12, 2) != "mp")
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 (NameR.substr(12, 4) != "sqrt")
break;
return Intrinsic::x86_3dnow_pfrsqrt; // "86.3dnow.pfrsqrt"
}
break;
case 'm': // 1 string to match.
if (NameR.substr(11, 5) != "ulhrw")
break;
return Intrinsic::x86_3dnow_pmulhrw; // "86.3dnow.pmulhrw"
}
break;
case 'a': // 2 strings to match.
if (NameR.substr(9, 2) != ".p")
break;
switch (NameR[11]) {
default: break;
case 'f': // 1 string to match.
if (NameR.substr(12, 4) != "nacc")
break;
return Intrinsic::x86_3dnowa_pfnacc; // "86.3dnowa.pfnacc"
case 's': // 1 string to match.
if (NameR.substr(12, 4) != "wapd")
break;
return Intrinsic::x86_3dnowa_pswapd; // "86.3dnowa.pswapd"
}
break;
}
break;
case 'a': // 33 strings to match.
if (NameR.substr(4, 2) != "vx")
break;
switch (NameR[6]) {
default: break;
case '.': // 5 strings to match.
switch (NameR[7]) {
default: break;
case 'd': // 1 string to match.
if (NameR.substr(8, 8) != "p.ps.256")
break;
return Intrinsic::x86_avx_dp_ps_256; // "86.avx.dp.ps.256"
case 'v': // 4 strings to match.
if (NameR.substr(8, 4) != "test")
break;
switch (NameR[12]) {
default: break;
case 'c': // 2 strings to match.
if (NameR.substr(13, 2) != ".p")
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 (NameR.substr(13, 2) != ".p")
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 (NameR.substr(9, 7) != "ovntdqa")
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 (NameR.substr(11, 4) != "dus.")
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 (NameR.substr(10, 6) != "lendvb")
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 (NameR.substr(11, 5) != "dd.sw")
break;
return Intrinsic::x86_avx2_phadd_sw; // "86.avx2.phadd.sw"
case 's': // 1 string to match.
if (NameR.substr(11, 5) != "ub.sw")
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 (NameR.substr(11, 5) != "dd.wd")
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 (NameR.substr(13, 3) != "skb")
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 (NameR.substr(13, 3) != "u.w")
break;
return Intrinsic::x86_avx2_pmulhu_w; // "86.avx2.pmulhu.w"
case 'u': // 1 string to match.
if (NameR.substr(13, 3) != ".dq")
break;
return Intrinsic::x86_avx2_pmulu_dq; // "86.avx2.pmulu.dq"
}
break;
}
break;
case 's': // 2 strings to match.
if (NameR.substr(10, 5) != "ubus.")
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 'm': // 7 strings to match.
if (NameR.substr(4, 4) != "mx.p")
break;
switch (NameR[8]) {
default: break;
case 'a': // 1 string to match.
if (NameR.substr(9, 7) != "lignr.b")
break;
return Intrinsic::x86_mmx_palignr_b; // "86.mmx.palignr.b"
case 'u': // 6 strings to match.
if (NameR.substr(9, 4) != "npck")
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': // 39 strings to match.
if (NameR[4] != 's')
break;
switch (NameR[5]) {
default: break;
case 'e': // 31 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 (NameR.substr(9, 2) != "mi")
break;
switch (NameR[11]) {
default: break;
case 'e': // 1 string to match.
if (NameR.substr(12, 4) != "q.ss")
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 (NameR.substr(13, 3) != ".ss")
break;
return Intrinsic::x86_sse_comige_ss; // "86.sse.comige.ss"
case 't': // 1 string to match.
if (NameR.substr(13, 3) != ".ss")
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 (NameR.substr(13, 3) != ".ss")
break;
return Intrinsic::x86_sse_comile_ss; // "86.sse.comile.ss"
case 't': // 1 string to match.
if (NameR.substr(13, 3) != ".ss")
break;
return Intrinsic::x86_sse_comilt_ss; // "86.sse.comilt.ss"
}
break;
}
break;
case 'v': // 3 strings to match.
if (NameR.substr(9, 2) != "tt")
break;
switch (NameR[11]) {
default: break;
case 'p': // 2 strings to match.
switch (NameR[12]) {
default: break;
case 'd': // 1 string to match.
if (NameR.substr(13, 3) != "2pi")
break;
return Intrinsic::x86_sse_cvttpd2pi; // "86.sse.cvttpd2pi"
case 's': // 1 string to match.
if (NameR.substr(13, 3) != "2pi")
break;
return Intrinsic::x86_sse_cvttps2pi; // "86.sse.cvttps2pi"
}
break;
case 's': // 1 string to match.
if (NameR.substr(12, 4) != "s2si")
break;
return Intrinsic::x86_sse_cvttss2si; // "86.sse.cvttss2si"
}
break;
}
break;
case 'm': // 1 string to match.
if (NameR.substr(8, 8) != "ovmsk.ps")
break;
return Intrinsic::x86_sse_movmsk_ps; // "86.sse.movmsk.ps"
case 's': // 1 string to match.
if (NameR.substr(8, 8) != "toreu.ps")
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 (NameR.substr(9, 2) != "vt")
break;
switch (NameR[11]) {
default: break;
case 'd': // 2 strings to match.
if (NameR.substr(12, 3) != "q2p")
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 (NameR.substr(13, 2) != "2s")
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 (NameR.substr(13, 3) != "2sd")
break;
return Intrinsic::x86_sse2_cvtsi2sd; // "86.sse2.cvtsi2sd"
case 's': // 1 string to match.
if (NameR.substr(13, 3) != "2sd")
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 (NameR.substr(10, 5) != "ddus.")
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 (NameR.substr(11, 5) != "dd.wd")
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 (NameR.substr(13, 3) != "u.w")
break;
return Intrinsic::x86_sse2_pmulhu_w; // "86.sse2.pmulhu.w"
case 'u': // 1 string to match.
if (NameR.substr(13, 3) != ".dq")
break;
return Intrinsic::x86_sse2_pmulu_dq; // "86.sse2.pmulu.dq"
}
break;
}
break;
case 's': // 2 strings to match.
if (NameR.substr(10, 5) != "ubus.")
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': // 4 strings to match.
if (NameR.substr(7, 2) != "1.")
break;
switch (NameR[9]) {
default: break;
case 'b': // 2 strings to match.
if (NameR.substr(10, 5) != "lendp")
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 (NameR.substr(10, 6) != "psadbw")
break;
return Intrinsic::x86_sse41_mpsadbw; // "86.sse41.mpsadbw"
case 'p': // 1 string to match.
if (NameR.substr(10, 6) != "blendw")
break;
return Intrinsic::x86_sse41_pblendw; // "86.sse41.pblendw"
}
break;
}
break;
case 's': // 8 strings to match.
if (NameR.substr(6, 4) != "e3.p")
break;
switch (NameR[10]) {
default: break;
case 'h': // 4 strings to match.
switch (NameR[11]) {
default: break;
case 'a': // 2 strings to match.
if (NameR.substr(12, 3) != "dd.")
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 (NameR.substr(12, 3) != "ub.")
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 (NameR.substr(12, 4) != "uf.b")
break;
return Intrinsic::x86_ssse3_pshuf_b; // "86.ssse3.pshuf.b"
case 'i': // 3 strings to match.
if (NameR.substr(12, 3) != "gn.")
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 (NameR.substr(4, 4) != "cvtp")
break;
switch (NameR[8]) {
default: break;
case 'h': // 2 strings to match.
if (NameR.substr(9, 4) != "2ps.")
break;
switch (NameR[13]) {
default: break;
case '1': // 1 string to match.
if (NameR.substr(14, 2) != "28")
break;
return Intrinsic::x86_vcvtph2ps_128; // "86.vcvtph2ps.128"
case '2': // 1 string to match.
if (NameR.substr(14, 2) != "56")
break;
return Intrinsic::x86_vcvtph2ps_256; // "86.vcvtph2ps.256"
}
break;
case 's': // 2 strings to match.
if (NameR.substr(9, 4) != "2ph.")
break;
switch (NameR[13]) {
default: break;
case '1': // 1 string to match.
if (NameR.substr(14, 2) != "28")
break;
return Intrinsic::x86_vcvtps2ph_128; // "86.vcvtps2ph.128"
case '2': // 1 string to match.
if (NameR.substr(14, 2) != "56")
break;
return Intrinsic::x86_vcvtps2ph_256; // "86.vcvtps2ph.256"
}
break;
}
break;
case 'x': // 36 strings to match.
if (NameR.substr(4, 5) != "op.vp")
break;
switch (NameR[9]) {
default: break;
case 'c': // 24 strings to match.
if (NameR.substr(10, 2) != "om")
break;
switch (NameR[12]) {
default: break;
case 'e': // 4 strings to match.
if (NameR.substr(13, 2) != "qu")
break;
switch (NameR[15]) {
default: break;
case 'b': // 1 string to match.
return Intrinsic::x86_xop_vpcomequb; // "86.xop.vpcomequb"
case 'd': // 1 string to match.
return Intrinsic::x86_xop_vpcomequd; // "86.xop.vpcomequd"
case 'q': // 1 string to match.
return Intrinsic::x86_xop_vpcomequq; // "86.xop.vpcomequq"
case 'w': // 1 string to match.
return Intrinsic::x86_xop_vpcomequw; // "86.xop.vpcomequw"
}
break;
case 'g': // 8 strings to match.
switch (NameR[13]) {
default: break;
case 'e': // 4 strings to match.
if (NameR[14] != 'u')
break;
switch (NameR[15]) {
default: break;
case 'b': // 1 string to match.
return Intrinsic::x86_xop_vpcomgeub; // "86.xop.vpcomgeub"
case 'd': // 1 string to match.
return Intrinsic::x86_xop_vpcomgeud; // "86.xop.vpcomgeud"
case 'q': // 1 string to match.
return Intrinsic::x86_xop_vpcomgeuq; // "86.xop.vpcomgeuq"
case 'w': // 1 string to match.
return Intrinsic::x86_xop_vpcomgeuw; // "86.xop.vpcomgeuw"
}
break;
case 't': // 4 strings to match.
if (NameR[14] != 'u')
break;
switch (NameR[15]) {
default: break;
case 'b': // 1 string to match.
return Intrinsic::x86_xop_vpcomgtub; // "86.xop.vpcomgtub"
case 'd': // 1 string to match.
return Intrinsic::x86_xop_vpcomgtud; // "86.xop.vpcomgtud"
case 'q': // 1 string to match.
return Intrinsic::x86_xop_vpcomgtuq; // "86.xop.vpcomgtuq"
case 'w': // 1 string to match.
return Intrinsic::x86_xop_vpcomgtuw; // "86.xop.vpcomgtuw"
}
break;
}
break;
case 'l': // 8 strings to match.
switch (NameR[13]) {
default: break;
case 'e': // 4 strings to match.
if (NameR[14] != 'u')
break;
switch (NameR[15]) {
default: break;
case 'b': // 1 string to match.
return Intrinsic::x86_xop_vpcomleub; // "86.xop.vpcomleub"
case 'd': // 1 string to match.
return Intrinsic::x86_xop_vpcomleud; // "86.xop.vpcomleud"
case 'q': // 1 string to match.
return Intrinsic::x86_xop_vpcomleuq; // "86.xop.vpcomleuq"
case 'w': // 1 string to match.
return Intrinsic::x86_xop_vpcomleuw; // "86.xop.vpcomleuw"
}
break;
case 't': // 4 strings to match.
if (NameR[14] != 'u')
break;
switch (NameR[15]) {
default: break;
case 'b': // 1 string to match.
return Intrinsic::x86_xop_vpcomltub; // "86.xop.vpcomltub"
case 'd': // 1 string to match.
return Intrinsic::x86_xop_vpcomltud; // "86.xop.vpcomltud"
case 'q': // 1 string to match.
return Intrinsic::x86_xop_vpcomltuq; // "86.xop.vpcomltuq"
case 'w': // 1 string to match.
return Intrinsic::x86_xop_vpcomltuw; // "86.xop.vpcomltuw"
}
break;
}
break;
case 'n': // 4 strings to match.
if (NameR.substr(13, 2) != "eu")
break;
switch (NameR[15]) {
default: break;
case 'b': // 1 string to match.
return Intrinsic::x86_xop_vpcomneub; // "86.xop.vpcomneub"
case 'd': // 1 string to match.
return Intrinsic::x86_xop_vpcomneud; // "86.xop.vpcomneud"
case 'q': // 1 string to match.
return Intrinsic::x86_xop_vpcomneuq; // "86.xop.vpcomneuq"
case 'w': // 1 string to match.
return Intrinsic::x86_xop_vpcomneuw; // "86.xop.vpcomneuw"
}
break;
}
break;
case 'h': // 6 strings to match.
if (NameR.substr(10, 4) != "addu")
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 (NameR.substr(12, 4) != "cswd")
break;
return Intrinsic::x86_xop_vpmadcswd; // "86.xop.vpmadcswd"
}
break;
}
break;
}
break;
case 17: // 80 strings to match.
if (NameR.substr(0, 3) != "86.")
break;
switch (NameR[3]) {
default: break;
case '3': // 4 strings to match.
if (NameR.substr(4, 4) != "dnow")
break;
switch (NameR[8]) {
default: break;
case '.': // 3 strings to match.
if (NameR.substr(9, 3) != "pfr")
break;
switch (NameR[12]) {
default: break;
case 'c': // 2 strings to match.
if (NameR.substr(13, 3) != "pit")
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 (NameR.substr(13, 4) != "qit1")
break;
return Intrinsic::x86_3dnow_pfrsqit1; // "86.3dnow.pfrsqit1"
}
break;
case 'a': // 1 string to match.
if (NameR.substr(9, 8) != ".pfpnacc")
break;
return Intrinsic::x86_3dnowa_pfpnacc; // "86.3dnowa.pfpnacc"
}
break;
case 'a': // 11 strings to match.
if (NameR.substr(4, 3) != "vx.")
break;
switch (NameR[7]) {
default: break;
case 'c': // 2 strings to match.
if (NameR.substr(8, 4) != "mp.p")
break;
switch (NameR[12]) {
default: break;
case 'd': // 1 string to match.
if (NameR.substr(13, 4) != ".256")
break;
return Intrinsic::x86_avx_cmp_pd_256; // "86.avx.cmp.pd.256"
case 's': // 1 string to match.
if (NameR.substr(13, 4) != ".256")
break;
return Intrinsic::x86_avx_cmp_ps_256; // "86.avx.cmp.ps.256"
}
break;
case 'l': // 1 string to match.
if (NameR.substr(8, 9) != "du.dq.256")
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 (NameR.substr(9, 3) != "x.p")
break;
switch (NameR[12]) {
default: break;
case 'd': // 1 string to match.
if (NameR.substr(13, 4) != ".256")
break;
return Intrinsic::x86_avx_max_pd_256; // "86.avx.max.pd.256"
case 's': // 1 string to match.
if (NameR.substr(13, 4) != ".256")
break;
return Intrinsic::x86_avx_max_ps_256; // "86.avx.max.ps.256"
}
break;
case 'i': // 2 strings to match.
if (NameR.substr(9, 3) != "n.p")
break;
switch (NameR[12]) {
default: break;
case 'd': // 1 string to match.
if (NameR.substr(13, 4) != ".256")
break;
return Intrinsic::x86_avx_min_pd_256; // "86.avx.min.pd.256"
case 's': // 1 string to match.
if (NameR.substr(13, 4) != ".256")
break;
return Intrinsic::x86_avx_min_ps_256; // "86.avx.min.ps.256"
}
break;
}
break;
case 'p': // 2 strings to match.
if (NameR.substr(8, 4) != "test")
break;
switch (NameR[12]) {
default: break;
case 'c': // 1 string to match.
if (NameR.substr(13, 4) != ".256")
break;
return Intrinsic::x86_avx_ptestc_256; // "86.avx.ptestc.256"
case 'z': // 1 string to match.
if (NameR.substr(13, 4) != ".256")
break;
return Intrinsic::x86_avx_ptestz_256; // "86.avx.ptestz.256"
}
break;
case 'r': // 1 string to match.
if (NameR.substr(8, 9) != "cp.ps.256")
break;
return Intrinsic::x86_avx_rcp_ps_256; // "86.avx.rcp.ps.256"
case 'v': // 1 string to match.
if (NameR.substr(8, 9) != "zeroupper")
break;
return Intrinsic::x86_avx_vzeroupper; // "86.avx.vzeroupper"
}
break;
case 'f': // 8 strings to match.
if (NameR.substr(4, 7) != "ma4.vfm")
break;
switch (NameR[11]) {
default: break;
case 'a': // 4 strings to match.
if (NameR.substr(12, 3) != "dd.")
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_fma4_vfmadd_pd; // "86.fma4.vfmadd.pd"
case 's': // 1 string to match.
return Intrinsic::x86_fma4_vfmadd_ps; // "86.fma4.vfmadd.ps"
}
break;
case 's': // 2 strings to match.
switch (NameR[16]) {
default: break;
case 'd': // 1 string to match.
return Intrinsic::x86_fma4_vfmadd_sd; // "86.fma4.vfmadd.sd"
case 's': // 1 string to match.
return Intrinsic::x86_fma4_vfmadd_ss; // "86.fma4.vfmadd.ss"
}
break;
}
break;
case 's': // 4 strings to match.
if (NameR.substr(12, 3) != "ub.")
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_fma4_vfmsub_pd; // "86.fma4.vfmsub.pd"
case 's': // 1 string to match.
return Intrinsic::x86_fma4_vfmsub_ps; // "86.fma4.vfmsub.ps"
}
break;
case 's': // 2 strings to match.
switch (NameR[16]) {
default: break;
case 'd': // 1 string to match.
return Intrinsic::x86_fma4_vfmsub_sd; // "86.fma4.vfmsub.sd"
case 's': // 1 string to match.
return Intrinsic::x86_fma4_vfmsub_ss; // "86.fma4.vfmsub.ss"
}
break;
}
break;
}
break;
case 's': // 47 strings to match.
if (NameR[4] != 's')
break;
switch (NameR[5]) {
default: break;
case 'e': // 45 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 (NameR.substr(9, 8) != "mineq.ss")
break;
return Intrinsic::x86_sse_comineq_ss; // "86.sse.comineq.ss"
case 'v': // 2 strings to match.
if (NameR.substr(9, 2) != "ts")
break;
switch (NameR[11]) {
default: break;
case 'i': // 1 string to match.
if (NameR.substr(12, 5) != "642ss")
break;
return Intrinsic::x86_sse_cvtsi642ss; // "86.sse.cvtsi642ss"
case 's': // 1 string to match.
if (NameR.substr(12, 5) != "2si64")
break;
return Intrinsic::x86_sse_cvtss2si64; // "86.sse.cvtss2si64"
}
break;
}
break;
case 'u': // 5 strings to match.
if (NameR.substr(8, 4) != "comi")
break;
switch (NameR[12]) {
default: break;
case 'e': // 1 string to match.
if (NameR.substr(13, 4) != "q.ss")
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 (NameR.substr(14, 3) != ".ss")
break;
return Intrinsic::x86_sse_ucomige_ss; // "86.sse.ucomige.ss"
case 't': // 1 string to match.
if (NameR.substr(14, 3) != ".ss")
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 (NameR.substr(14, 3) != ".ss")
break;
return Intrinsic::x86_sse_ucomile_ss; // "86.sse.ucomile.ss"
case 't': // 1 string to match.
if (NameR.substr(14, 3) != ".ss")
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 (NameR.substr(10, 2) != "mi")
break;
switch (NameR[12]) {
default: break;
case 'e': // 1 string to match.
if (NameR.substr(13, 4) != "q.sd")
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 (NameR.substr(14, 3) != ".sd")
break;
return Intrinsic::x86_sse2_comige_sd; // "86.sse2.comige.sd"
case 't': // 1 string to match.
if (NameR.substr(14, 3) != ".sd")
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 (NameR.substr(14, 3) != ".sd")
break;
return Intrinsic::x86_sse2_comile_sd; // "86.sse2.comile.sd"
case 't': // 1 string to match.
if (NameR.substr(14, 3) != ".sd")
break;
return Intrinsic::x86_sse2_comilt_sd; // "86.sse2.comilt.sd"
}
break;
}
break;
case 'v': // 3 strings to match.
if (NameR.substr(10, 2) != "tt")
break;
switch (NameR[12]) {
default: break;
case 'p': // 2 strings to match.
switch (NameR[13]) {
default: break;
case 'd': // 1 string to match.
if (NameR.substr(14, 3) != "2dq")
break;
return Intrinsic::x86_sse2_cvttpd2dq; // "86.sse2.cvttpd2dq"
case 's': // 1 string to match.
if (NameR.substr(14, 3) != "2dq")
break;
return Intrinsic::x86_sse2_cvttps2dq; // "86.sse2.cvttps2dq"
}
break;
case 's': // 1 string to match.
if (NameR.substr(13, 4) != "d2si")
break;
return Intrinsic::x86_sse2_cvttsd2si; // "86.sse2.cvttsd2si"
}
break;
}
break;
case 'm': // 1 string to match.
if (NameR.substr(9, 8) != "ovmsk.pd")
break;
return Intrinsic::x86_sse2_movmsk_pd; // "86.sse2.movmsk.pd"
case 's': // 3 strings to match.
if (NameR.substr(9, 4) != "tore")
break;
switch (NameR[13]) {
default: break;
case 'l': // 1 string to match.
if (NameR.substr(14, 3) != ".dq")
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 (NameR.substr(7, 9) != ".addsub.p")
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': // 23 strings to match.
if (NameR.substr(7, 2) != "1.")
break;
switch (NameR[9]) {
default: break;
case 'b': // 2 strings to match.
if (NameR.substr(10, 6) != "lendvp")
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 (NameR.substr(10, 7) != "nsertps")
break;
return Intrinsic::x86_sse41_insertps; // "86.sse41.insertps"
case 'm': // 1 string to match.
if (NameR.substr(10, 7) != "ovntdqa")
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 (NameR.substr(11, 6) != "ckusdw")
break;
return Intrinsic::x86_sse41_packusdw; // "86.sse41.packusdw"
case 'b': // 1 string to match.
if (NameR.substr(11, 6) != "lendvb")
break;
return Intrinsic::x86_sse41_pblendvb; // "86.sse41.pblendvb"
case 'm': // 12 strings to match.
if (NameR.substr(11, 2) != "ov")
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 (NameR.substr(11, 6) != "estnzc")
break;
return Intrinsic::x86_sse41_ptestnzc; // "86.sse41.ptestnzc"
}
break;
case 'r': // 4 strings to match.
if (NameR.substr(10, 5) != "ound.")
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;
}
break;
case 's': // 2 strings to match.
if (NameR.substr(6, 5) != "e3.ph")
break;
switch (NameR[11]) {
default: break;
case 'a': // 1 string to match.
if (NameR.substr(12, 5) != "dd.sw")
break;
return Intrinsic::x86_ssse3_phadd_sw; // "86.ssse3.phadd.sw"
case 's': // 1 string to match.
if (NameR.substr(12, 5) != "ub.sw")
break;
return Intrinsic::x86_ssse3_phsub_sw; // "86.ssse3.phsub.sw"
}
break;
}
break;
case 'x': // 10 strings to match.
if (NameR.substr(4, 5) != "op.vp")
break;
switch (NameR[9]) {
default: break;
case 'c': // 5 strings to match.
switch (NameR[10]) {
default: break;
case 'm': // 1 string to match.
if (NameR.substr(11, 6) != "ov.256")
break;
return Intrinsic::x86_xop_vpcmov_256; // "86.xop.vpcmov.256"
case 'o': // 4 strings to match.
if (NameR.substr(11, 5) != "mtrue")
break;
switch (NameR[16]) {
default: break;
case 'b': // 1 string to match.
return Intrinsic::x86_xop_vpcomtrueb; // "86.xop.vpcomtrueb"
case 'd': // 1 string to match.
return Intrinsic::x86_xop_vpcomtrued; // "86.xop.vpcomtrued"
case 'q': // 1 string to match.
return Intrinsic::x86_xop_vpcomtrueq; // "86.xop.vpcomtrueq"
case 'w': // 1 string to match.
return Intrinsic::x86_xop_vpcomtruew; // "86.xop.vpcomtruew"
}
break;
}
break;
case 'e': // 2 strings to match.
if (NameR.substr(10, 6) != "rmil2p")
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 (NameR.substr(12, 4) != "ssdq")
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 (NameR.substr(12, 5) != "csswd")
break;
return Intrinsic::x86_xop_vpmadcsswd; // "86.xop.vpmadcsswd"
}
break;
}
break;
}
break;
case 18: // 45 strings to match.
if (NameR.substr(0, 3) != "86.")
break;
switch (NameR[3]) {
default: break;
case 'a': // 16 strings to match.
if (NameR.substr(4, 2) != "vx")
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 (NameR.substr(9, 4) != "dd.p")
break;
switch (NameR[13]) {
default: break;
case 'd': // 1 string to match.
if (NameR.substr(14, 4) != ".256")
break;
return Intrinsic::x86_avx_hadd_pd_256; // "86.avx.hadd.pd.256"
case 's': // 1 string to match.
if (NameR.substr(14, 4) != ".256")
break;
return Intrinsic::x86_avx_hadd_ps_256; // "86.avx.hadd.ps.256"
}
break;
case 's': // 2 strings to match.
if (NameR.substr(9, 4) != "ub.p")
break;
switch (NameR[13]) {
default: break;
case 'd': // 1 string to match.
if (NameR.substr(14, 4) != ".256")
break;
return Intrinsic::x86_avx_hsub_pd_256; // "86.avx.hsub.pd.256"
case 's': // 1 string to match.
if (NameR.substr(14, 4) != ".256")
break;
return Intrinsic::x86_avx_hsub_ps_256; // "86.avx.hsub.ps.256"
}
break;
}
break;
case 'm': // 2 strings to match.
if (NameR.substr(8, 9) != "askload.p")
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 (NameR.substr(8, 5) != "qrt.p")
break;
switch (NameR[13]) {
default: break;
case 'd': // 1 string to match.
if (NameR.substr(14, 4) != ".256")
break;
return Intrinsic::x86_avx_sqrt_pd_256; // "86.avx.sqrt.pd.256"
case 's': // 1 string to match.
if (NameR.substr(14, 4) != ".256")
break;
return Intrinsic::x86_avx_sqrt_ps_256; // "86.avx.sqrt.ps.256"
}
break;
case 'v': // 2 strings to match.
if (NameR.substr(8, 9) != "testnzc.p")
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': // 6 strings to match.
if (NameR[7] != '.')
break;
switch (NameR[8]) {
default: break;
case 'm': // 2 strings to match.
if (NameR.substr(9, 8) != "askload.")
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 (NameR.substr(10, 8) != "ul.hr.sw")
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 (NameR.substr(11, 7) != "l.dq.bs")
break;
return Intrinsic::x86_avx2_psll_dq_bs; // "86.avx2.psll.dq.bs"
case 'r': // 1 string to match.
if (NameR.substr(11, 7) != "l.dq.bs")
break;
return Intrinsic::x86_avx2_psrl_dq_bs; // "86.avx2.psrl.dq.bs"
}
break;
}
break;
case 'v': // 1 string to match.
if (NameR.substr(9, 9) != "perm2i128")
break;
return Intrinsic::x86_avx2_vperm2i128; // "86.avx2.vperm2i128"
}
break;
}
break;
case 'f': // 8 strings to match.
if (NameR.substr(4, 8) != "ma4.vfnm")
break;
switch (NameR[12]) {
default: break;
case 'a': // 4 strings to match.
if (NameR.substr(13, 3) != "dd.")
break;
switch (NameR[16]) {
default: break;
case 'p': // 2 strings to match.
switch (NameR[17]) {
default: break;
case 'd': // 1 string to match.
return Intrinsic::x86_fma4_vfnmadd_pd; // "86.fma4.vfnmadd.pd"
case 's': // 1 string to match.
return Intrinsic::x86_fma4_vfnmadd_ps; // "86.fma4.vfnmadd.ps"
}
break;
case 's': // 2 strings to match.
switch (NameR[17]) {
default: break;
case 'd': // 1 string to match.
return Intrinsic::x86_fma4_vfnmadd_sd; // "86.fma4.vfnmadd.sd"
case 's': // 1 string to match.
return Intrinsic::x86_fma4_vfnmadd_ss; // "86.fma4.vfnmadd.ss"
}
break;
}
break;
case 's': // 4 strings to match.
if (NameR.substr(13, 3) != "ub.")
break;
switch (NameR[16]) {
default: break;
case 'p': // 2 strings to match.
switch (NameR[17]) {
default: break;
case 'd': // 1 string to match.
return Intrinsic::x86_fma4_vfnmsub_pd; // "86.fma4.vfnmsub.pd"
case 's': // 1 string to match.
return Intrinsic::x86_fma4_vfnmsub_ps; // "86.fma4.vfnmsub.ps"
}
break;
case 's': // 2 strings to match.
switch (NameR[17]) {
default: break;
case 'd': // 1 string to match.
return Intrinsic::x86_fma4_vfnmsub_sd; // "86.fma4.vfnmsub.sd"
case 's': // 1 string to match.
return Intrinsic::x86_fma4_vfnmsub_ss; // "86.fma4.vfnmsub.ss"
}
break;
}
break;
}
break;
case 's': // 13 strings to match.
if (NameR.substr(4, 2) != "se")
break;
switch (NameR[6]) {
default: break;
case '.': // 2 strings to match.
switch (NameR[7]) {
default: break;
case 'c': // 1 string to match.
if (NameR.substr(8, 10) != "vttss2si64")
break;
return Intrinsic::x86_sse_cvttss2si64; // "86.sse.cvttss2si64"
case 'u': // 1 string to match.
if (NameR.substr(8, 10) != "comineq.ss")
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 (NameR.substr(10, 8) != "mineq.sd")
break;
return Intrinsic::x86_sse2_comineq_sd; // "86.sse2.comineq.sd"
case 'v': // 2 strings to match.
if (NameR.substr(10, 2) != "ts")
break;
switch (NameR[12]) {
default: break;
case 'd': // 1 string to match.
if (NameR.substr(13, 5) != "2si64")
break;
return Intrinsic::x86_sse2_cvtsd2si64; // "86.sse2.cvtsd2si64"
case 'i': // 1 string to match.
if (NameR.substr(13, 5) != "642sd")
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 (NameR.substr(11, 7) != "l.dq.bs")
break;
return Intrinsic::x86_sse2_psll_dq_bs; // "86.sse2.psll.dq.bs"
case 'r': // 1 string to match.
if (NameR.substr(11, 7) != "l.dq.bs")
break;
return Intrinsic::x86_sse2_psrl_dq_bs; // "86.sse2.psrl.dq.bs"
}
break;
case 'u': // 5 strings to match.
if (NameR.substr(9, 4) != "comi")
break;
switch (NameR[13]) {
default: break;
case 'e': // 1 string to match.
if (NameR.substr(14, 4) != "q.sd")
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 (NameR.substr(15, 3) != ".sd")
break;
return Intrinsic::x86_sse2_ucomige_sd; // "86.sse2.ucomige.sd"
case 't': // 1 string to match.
if (NameR.substr(15, 3) != ".sd")
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 (NameR.substr(15, 3) != ".sd")
break;
return Intrinsic::x86_sse2_ucomile_sd; // "86.sse2.ucomile.sd"
case 't': // 1 string to match.
if (NameR.substr(15, 3) != ".sd")
break;
return Intrinsic::x86_sse2_ucomilt_sd; // "86.sse2.ucomilt.sd"
}
break;
}
break;
}
break;
case '4': // 1 string to match.
if (NameR.substr(7, 11) != "1.extractps")
break;
return Intrinsic::x86_sse41_extractps; // "86.sse41.extractps"
}
break;
case 'x': // 8 strings to match.
if (NameR.substr(4, 8) != "op.vpcom")
break;
switch (NameR[12]) {
default: break;
case 'f': // 4 strings to match.
if (NameR.substr(13, 4) != "alse")
break;
switch (NameR[17]) {
default: break;
case 'b': // 1 string to match.
return Intrinsic::x86_xop_vpcomfalseb; // "86.xop.vpcomfalseb"
case 'd': // 1 string to match.
return Intrinsic::x86_xop_vpcomfalsed; // "86.xop.vpcomfalsed"
case 'q': // 1 string to match.
return Intrinsic::x86_xop_vpcomfalseq; // "86.xop.vpcomfalseq"
case 'w': // 1 string to match.
return Intrinsic::x86_xop_vpcomfalsew; // "86.xop.vpcomfalsew"
}
break;
case 't': // 4 strings to match.
if (NameR.substr(13, 4) != "rueu")
break;
switch (NameR[17]) {
default: break;
case 'b': // 1 string to match.
return Intrinsic::x86_xop_vpcomtrueub; // "86.xop.vpcomtrueub"
case 'd': // 1 string to match.
return Intrinsic::x86_xop_vpcomtrueud; // "86.xop.vpcomtrueud"
case 'q': // 1 string to match.
return Intrinsic::x86_xop_vpcomtrueuq; // "86.xop.vpcomtrueuq"
case 'w': // 1 string to match.
return Intrinsic::x86_xop_vpcomtrueuw; // "86.xop.vpcomtrueuw"
}
break;
}
break;
}
break;
case 19: // 40 strings to match.
if (NameR.substr(0, 3) != "86.")
break;
switch (NameR[3]) {
default: break;
case 'a': // 24 strings to match.
switch (NameR[4]) {
default: break;
case 'e': // 2 strings to match.
if (NameR.substr(5, 7) != "sni.aes")
break;
switch (NameR[12]) {
default: break;
case 'd': // 1 string to match.
if (NameR.substr(13, 6) != "eclast")
break;
return Intrinsic::x86_aesni_aesdeclast; // "86.aesni.aesdeclast"
case 'e': // 1 string to match.
if (NameR.substr(13, 6) != "nclast")
break;
return Intrinsic::x86_aesni_aesenclast; // "86.aesni.aesenclast"
}
break;
case 'v': // 22 strings to match.
if (NameR[5] != 'x')
break;
switch (NameR[6]) {
default: break;
case '.': // 11 strings to match.
switch (NameR[7]) {
default: break;
case 'b': // 2 strings to match.
if (NameR.substr(8, 6) != "lend.p")
break;
switch (NameR[14]) {
default: break;
case 'd': // 1 string to match.
if (NameR.substr(15, 4) != ".256")
break;
return Intrinsic::x86_avx_blend_pd_256; // "86.avx.blend.pd.256"
case 's': // 1 string to match.
if (NameR.substr(15, 4) != ".256")
break;
return Intrinsic::x86_avx_blend_ps_256; // "86.avx.blend.ps.256"
}
break;
case 'm': // 5 strings to match.
switch (NameR[8]) {
default: break;
case 'a': // 2 strings to match.
if (NameR.substr(9, 9) != "skstore.p")
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 'o': // 3 strings to match.
if (NameR.substr(9, 4) != "vnt.")
break;
switch (NameR[13]) {
default: break;
case 'd': // 1 string to match.
if (NameR.substr(14, 5) != "q.256")
break;
return Intrinsic::x86_avx_movnt_dq_256; // "86.avx.movnt.dq.256"
case 'p': // 2 strings to match.
switch (NameR[14]) {
default: break;
case 'd': // 1 string to match.
if (NameR.substr(15, 4) != ".256")
break;
return Intrinsic::x86_avx_movnt_pd_256; // "86.avx.movnt.pd.256"
case 's': // 1 string to match.
if (NameR.substr(15, 4) != ".256")
break;
return Intrinsic::x86_avx_movnt_ps_256; // "86.avx.movnt.ps.256"
}
break;
}
break;
}
break;
case 'p': // 1 string to match.
if (NameR.substr(8, 11) != "testnzc.256")
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 (NameR.substr(9, 5) != "und.p")
break;
switch (NameR[14]) {
default: break;
case 'd': // 1 string to match.
if (NameR.substr(15, 4) != ".256")
break;
return Intrinsic::x86_avx_round_pd_256; // "86.avx.round.pd.256"
case 's': // 1 string to match.
if (NameR.substr(15, 4) != ".256")
break;
return Intrinsic::x86_avx_round_ps_256; // "86.avx.round.ps.256"
}
break;
case 's': // 1 string to match.
if (NameR.substr(9, 10) != "qrt.ps.256")
break;
return Intrinsic::x86_avx_rsqrt_ps_256; // "86.avx.rsqrt.ps.256"
}
break;
}
break;
case '2': // 11 strings to match.
if (NameR[7] != '.')
break;
switch (NameR[8]) {
default: break;
case 'm': // 2 strings to match.
if (NameR.substr(9, 9) != "askstore.")
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 (NameR.substr(10, 6) != "lendd.")
break;
switch (NameR[16]) {
default: break;
case '1': // 1 string to match.
if (NameR.substr(17, 2) != "28")
break;
return Intrinsic::x86_avx2_pblendd_128; // "86.avx2.pblendd.128"
case '2': // 1 string to match.
if (NameR.substr(17, 2) != "56")
break;
return Intrinsic::x86_avx2_pblendd_256; // "86.avx2.pblendd.256"
}
break;
case 'm': // 1 string to match.
if (NameR.substr(10, 9) != "add.ub.sw")
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 (NameR.substr(11, 3) != "lv.")
break;
switch (NameR[14]) {
default: break;
case 'd': // 1 string to match.
if (NameR.substr(15, 4) != ".256")
break;
return Intrinsic::x86_avx2_psllv_d_256; // "86.avx2.psllv.d.256"
case 'q': // 1 string to match.
if (NameR.substr(15, 4) != ".256")
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 (NameR.substr(12, 7) != "v.d.256")
break;
return Intrinsic::x86_avx2_psrav_d_256; // "86.avx2.psrav.d.256"
case 'l': // 2 strings to match.
if (NameR.substr(12, 2) != "v.")
break;
switch (NameR[14]) {
default: break;
case 'd': // 1 string to match.
if (NameR.substr(15, 4) != ".256")
break;
return Intrinsic::x86_avx2_psrlv_d_256; // "86.avx2.psrlv.d.256"
case 'q': // 1 string to match.
if (NameR.substr(15, 4) != ".256")
break;
return Intrinsic::x86_avx2_psrlv_q_256; // "86.avx2.psrlv.q.256"
}
break;
}
break;
}
break;
}
break;
case 'v': // 1 string to match.
if (NameR.substr(9, 10) != "inserti128")
break;
return Intrinsic::x86_avx2_vinserti128; // "86.avx2.vinserti128"
}
break;
}
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 (NameR.substr(9, 10) != "vttsd2si64")
break;
return Intrinsic::x86_sse2_cvttsd2si64; // "86.sse2.cvttsd2si64"
case 'm': // 1 string to match.
if (NameR.substr(9, 10) != "askmov.dqu")
break;
return Intrinsic::x86_sse2_maskmov_dqu; // "86.sse2.maskmov.dqu"
case 'u': // 1 string to match.
if (NameR.substr(9, 10) != "comineq.sd")
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 (NameR.substr(8, 11) != ".phminposuw")
break;
return Intrinsic::x86_sse41_phminposuw; // "86.sse41.phminposuw"
case '2': // 2 strings to match.
if (NameR.substr(8, 7) != ".crc32.")
break;
switch (NameR[15]) {
default: break;
case '3': // 1 string to match.
if (NameR.substr(16, 3) != "2.8")
break;
return Intrinsic::x86_sse42_crc32_32_8; // "86.sse42.crc32.32.8"
case '6': // 1 string to match.
if (NameR.substr(16, 3) != "4.8")
break;
return Intrinsic::x86_sse42_crc32_64_8; // "86.sse42.crc32.64.8"
}
break;
}
break;
}
break;
case 's': // 4 strings to match.
if (NameR.substr(6, 4) != "e3.p")
break;
switch (NameR[10]) {
default: break;
case 'a': // 3 strings to match.
if (NameR.substr(11, 3) != "bs.")
break;
switch (NameR[14]) {
default: break;
case 'b': // 1 string to match.
if (NameR.substr(15, 4) != ".128")
break;
return Intrinsic::x86_ssse3_pabs_b_128; // "86.ssse3.pabs.b.128"
case 'd': // 1 string to match.
if (NameR.substr(15, 4) != ".128")
break;
return Intrinsic::x86_ssse3_pabs_d_128; // "86.ssse3.pabs.d.128"
case 'w': // 1 string to match.
if (NameR.substr(15, 4) != ".128")
break;
return Intrinsic::x86_ssse3_pabs_w_128; // "86.ssse3.pabs.w.128"
}
break;
case 'm': // 1 string to match.
if (NameR.substr(11, 8) != "ul.hr.sw")
break;
return Intrinsic::x86_ssse3_pmul_hr_sw; // "86.ssse3.pmul.hr.sw"
}
break;
}
break;
case 'x': // 6 strings to match.
if (NameR.substr(4, 4) != "op.v")
break;
switch (NameR[8]) {
default: break;
case 'f': // 2 strings to match.
if (NameR.substr(9, 5) != "rcz.p")
break;
switch (NameR[14]) {
default: break;
case 'd': // 1 string to match.
if (NameR.substr(15, 4) != ".256")
break;
return Intrinsic::x86_xop_vfrcz_pd_256; // "86.xop.vfrcz.pd.256"
case 's': // 1 string to match.
if (NameR.substr(15, 4) != ".256")
break;
return Intrinsic::x86_xop_vfrcz_ps_256; // "86.xop.vfrcz.ps.256"
}
break;
case 'p': // 4 strings to match.
if (NameR.substr(9, 9) != "comfalseu")
break;
switch (NameR[18]) {
default: break;
case 'b': // 1 string to match.
return Intrinsic::x86_xop_vpcomfalseub; // "86.xop.vpcomfalseub"
case 'd': // 1 string to match.
return Intrinsic::x86_xop_vpcomfalseud; // "86.xop.vpcomfalseud"
case 'q': // 1 string to match.
return Intrinsic::x86_xop_vpcomfalseuq; // "86.xop.vpcomfalseuq"
case 'w': // 1 string to match.
return Intrinsic::x86_xop_vpcomfalseuw; // "86.xop.vpcomfalseuw"
}
break;
}
break;
}
break;
case 20: // 41 strings to match.
if (NameR.substr(0, 3) != "86.")
break;
switch (NameR[3]) {
default: break;
case 'a': // 21 strings to match.
if (NameR.substr(4, 2) != "vx")
break;
switch (NameR[6]) {
default: break;
case '.': // 20 strings to match.
switch (NameR[7]) {
default: break;
case 'a': // 2 strings to match.
if (NameR.substr(8, 7) != "ddsub.p")
break;
switch (NameR[15]) {
default: break;
case 'd': // 1 string to match.
if (NameR.substr(16, 4) != ".256")
break;
return Intrinsic::x86_avx_addsub_pd_256; // "86.avx.addsub.pd.256"
case 's': // 1 string to match.
if (NameR.substr(16, 4) != ".256")
break;
return Intrinsic::x86_avx_addsub_ps_256; // "86.avx.addsub.ps.256"
}
break;
case 'b': // 2 strings to match.
if (NameR.substr(8, 7) != "lendv.p")
break;
switch (NameR[15]) {
default: break;
case 'd': // 1 string to match.
if (NameR.substr(16, 4) != ".256")
break;
return Intrinsic::x86_avx_blendv_pd_256; // "86.avx.blendv.pd.256"
case 's': // 1 string to match.
if (NameR.substr(16, 4) != ".256")
break;
return Intrinsic::x86_avx_blendv_ps_256; // "86.avx.blendv.ps.256"
}
break;
case 'c': // 4 strings to match.
if (NameR.substr(8, 2) != "vt")
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 (NameR.substr(13, 7) != "2dq.256")
break;
return Intrinsic::x86_avx_cvt_pd2dq_256; // "86.avx.cvt.pd2dq.256"
case 's': // 1 string to match.
if (NameR.substr(13, 7) != "2dq.256")
break;
return Intrinsic::x86_avx_cvt_ps2dq_256; // "86.avx.cvt.ps2dq.256"
}
break;
case 'd': // 2 strings to match.
if (NameR.substr(11, 4) != "q2.p")
break;
switch (NameR[15]) {
default: break;
case 'd': // 1 string to match.
if (NameR.substr(16, 4) != ".256")
break;
return Intrinsic::x86_avx_cvtdq2_pd_256; // "86.avx.cvtdq2.pd.256"
case 's': // 1 string to match.
if (NameR.substr(16, 4) != ".256")
break;
return Intrinsic::x86_avx_cvtdq2_ps_256; // "86.avx.cvtdq2.ps.256"
}
break;
}
break;
case 'm': // 2 strings to match.
if (NameR.substr(8, 7) != "ovmsk.p")
break;
switch (NameR[15]) {
default: break;
case 'd': // 1 string to match.
if (NameR.substr(16, 4) != ".256")
break;
return Intrinsic::x86_avx_movmsk_pd_256; // "86.avx.movmsk.pd.256"
case 's': // 1 string to match.
if (NameR.substr(16, 4) != ".256")
break;
return Intrinsic::x86_avx_movmsk_ps_256; // "86.avx.movmsk.ps.256"
}
break;
case 's': // 3 strings to match.
if (NameR.substr(8, 6) != "toreu.")
break;
switch (NameR[14]) {
default: break;
case 'd': // 1 string to match.
if (NameR.substr(15, 5) != "q.256")
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 (NameR.substr(16, 4) != ".256")
break;
return Intrinsic::x86_avx_storeu_pd_256; // "86.avx.storeu.pd.256"
case 's': // 1 string to match.
if (NameR.substr(16, 4) != ".256")
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 (NameR.substr(9, 11) != "roadcast.ss")
break;
return Intrinsic::x86_avx_vbroadcast_ss; // "86.avx.vbroadcast.ss"
case 'p': // 2 strings to match.
if (NameR.substr(9, 10) != "ermilvar.p")
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 (NameR.substr(9, 3) != "est")
break;
switch (NameR[12]) {
default: break;
case 'c': // 2 strings to match.
if (NameR.substr(13, 2) != ".p")
break;
switch (NameR[15]) {
default: break;
case 'd': // 1 string to match.
if (NameR.substr(16, 4) != ".256")
break;
return Intrinsic::x86_avx_vtestc_pd_256; // "86.avx.vtestc.pd.256"
case 's': // 1 string to match.
if (NameR.substr(16, 4) != ".256")
break;
return Intrinsic::x86_avx_vtestc_ps_256; // "86.avx.vtestc.ps.256"
}
break;
case 'z': // 2 strings to match.
if (NameR.substr(13, 2) != ".p")
break;
switch (NameR[15]) {
default: break;
case 'd': // 1 string to match.
if (NameR.substr(16, 4) != ".256")
break;
return Intrinsic::x86_avx_vtestz_pd_256; // "86.avx.vtestz.pd.256"
case 's': // 1 string to match.
if (NameR.substr(16, 4) != ".256")
break;
return Intrinsic::x86_avx_vtestz_ps_256; // "86.avx.vtestz.ps.256"
}
break;
}
break;
}
break;
}
break;
case '2': // 1 string to match.
if (NameR.substr(7, 13) != ".vextracti128")
break;
return Intrinsic::x86_avx2_vextracti128; // "86.avx2.vextracti128"
}
break;
case 'f': // 4 strings to match.
if (NameR.substr(4, 7) != "ma4.vfm")
break;
switch (NameR[11]) {
default: break;
case 'a': // 2 strings to match.
if (NameR.substr(12, 7) != "ddsub.p")
break;
switch (NameR[19]) {
default: break;
case 'd': // 1 string to match.
return Intrinsic::x86_fma4_vfmaddsub_pd; // "86.fma4.vfmaddsub.pd"
case 's': // 1 string to match.
return Intrinsic::x86_fma4_vfmaddsub_ps; // "86.fma4.vfmaddsub.ps"
}
break;
case 's': // 2 strings to match.
if (NameR.substr(12, 7) != "ubadd.p")
break;
switch (NameR[19]) {
default: break;
case 'd': // 1 string to match.
return Intrinsic::x86_fma4_vfmsubadd_pd; // "86.fma4.vfmsubadd.pd"
case 's': // 1 string to match.
return Intrinsic::x86_fma4_vfmsubadd_ps; // "86.fma4.vfmsubadd.ps"
}
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 (NameR.substr(7, 2) != ".p")
break;
switch (NameR[9]) {
default: break;
case 'a': // 3 strings to match.
if (NameR.substr(10, 2) != "ck")
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.substr(15, 5) != "w.128")
break;
return Intrinsic::x86_sse2_packssdw_128; // "86.sse2.packssdw.128"
case 'w': // 1 string to match.
if (NameR.substr(15, 5) != "b.128")
break;
return Intrinsic::x86_sse2_packsswb_128; // "86.sse2.packsswb.128"
}
break;
case 'u': // 1 string to match.
if (NameR.substr(13, 7) != "swb.128")
break;
return Intrinsic::x86_sse2_packuswb_128; // "86.sse2.packuswb.128"
}
break;
case 'm': // 1 string to match.
if (NameR.substr(10, 10) != "ovmskb.128")
break;
return Intrinsic::x86_sse2_pmovmskb_128; // "86.sse2.pmovmskb.128"
}
break;
case '4': // 3 strings to match.
if (NameR.substr(7, 8) != "2.crc32.")
break;
switch (NameR[15]) {
default: break;
case '3': // 2 strings to match.
if (NameR.substr(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 (NameR.substr(16, 4) != "4.64")
break;
return Intrinsic::x86_sse42_crc32_64_64; // "86.sse42.crc32.64.64"
}
break;
}
break;
case 's': // 9 strings to match.
if (NameR.substr(6, 4) != "e3.p")
break;
switch (NameR[10]) {
default: break;
case 'h': // 4 strings to match.
switch (NameR[11]) {
default: break;
case 'a': // 2 strings to match.
if (NameR.substr(12, 3) != "dd.")
break;
switch (NameR[15]) {
default: break;
case 'd': // 1 string to match.
if (NameR.substr(16, 4) != ".128")
break;
return Intrinsic::x86_ssse3_phadd_d_128; // "86.ssse3.phadd.d.128"
case 'w': // 1 string to match.
if (NameR.substr(16, 4) != ".128")
break;
return Intrinsic::x86_ssse3_phadd_w_128; // "86.ssse3.phadd.w.128"
}
break;
case 's': // 2 strings to match.
if (NameR.substr(12, 3) != "ub.")
break;
switch (NameR[15]) {
default: break;
case 'd': // 1 string to match.
if (NameR.substr(16, 4) != ".128")
break;
return Intrinsic::x86_ssse3_phsub_d_128; // "86.ssse3.phsub.d.128"
case 'w': // 1 string to match.
if (NameR.substr(16, 4) != ".128")
break;
return Intrinsic::x86_ssse3_phsub_w_128; // "86.ssse3.phsub.w.128"
}
break;
}
break;
case 'm': // 1 string to match.
if (NameR.substr(11, 9) != "add.ub.sw")
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 (NameR.substr(12, 8) != "uf.b.128")
break;
return Intrinsic::x86_ssse3_pshuf_b_128; // "86.ssse3.pshuf.b.128"
case 'i': // 3 strings to match.
if (NameR.substr(12, 3) != "gn.")
break;
switch (NameR[15]) {
default: break;
case 'b': // 1 string to match.
if (NameR.substr(16, 4) != ".128")
break;
return Intrinsic::x86_ssse3_psign_b_128; // "86.ssse3.psign.b.128"
case 'd': // 1 string to match.
if (NameR.substr(16, 4) != ".128")
break;
return Intrinsic::x86_ssse3_psign_d_128; // "86.ssse3.psign.d.128"
case 'w': // 1 string to match.
if (NameR.substr(16, 4) != ".128")
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 (NameR.substr(0, 3) != "86.")
break;
switch (NameR[3]) {
default: break;
case 'a': // 4 strings to match.
if (NameR.substr(4, 6) != "vx.cvt")
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 (NameR.substr(13, 8) != "2.ps.256")
break;
return Intrinsic::x86_avx_cvt_pd2_ps_256; // "86.avx.cvt.pd2.ps.256"
case 's': // 1 string to match.
if (NameR.substr(13, 8) != "2.pd.256")
break;
return Intrinsic::x86_avx_cvt_ps2_pd_256; // "86.avx.cvt.ps2.pd.256"
}
break;
case 't': // 2 strings to match.
if (NameR.substr(11, 2) != ".p")
break;
switch (NameR[13]) {
default: break;
case 'd': // 1 string to match.
if (NameR.substr(14, 7) != "2dq.256")
break;
return Intrinsic::x86_avx_cvtt_pd2dq_256; // "86.avx.cvtt.pd2dq.256"
case 's': // 1 string to match.
if (NameR.substr(14, 7) != "2dq.256")
break;
return Intrinsic::x86_avx_cvtt_ps2dq_256; // "86.avx.cvtt.ps2dq.256"
}
break;
}
break;
case 'f': // 4 strings to match.
if (NameR.substr(4, 7) != "ma4.vfm")
break;
switch (NameR[11]) {
default: break;
case 'a': // 2 strings to match.
if (NameR.substr(12, 4) != "dd.p")
break;
switch (NameR[16]) {
default: break;
case 'd': // 1 string to match.
if (NameR.substr(17, 4) != ".256")
break;
return Intrinsic::x86_fma4_vfmadd_pd_256; // "86.fma4.vfmadd.pd.256"
case 's': // 1 string to match.
if (NameR.substr(17, 4) != ".256")
break;
return Intrinsic::x86_fma4_vfmadd_ps_256; // "86.fma4.vfmadd.ps.256"
}
break;
case 's': // 2 strings to match.
if (NameR.substr(12, 4) != "ub.p")
break;
switch (NameR[16]) {
default: break;
case 'd': // 1 string to match.
if (NameR.substr(17, 4) != ".256")
break;
return Intrinsic::x86_fma4_vfmsub_pd_256; // "86.fma4.vfmsub.pd.256"
case 's': // 1 string to match.
if (NameR.substr(17, 4) != ".256")
break;
return Intrinsic::x86_fma4_vfmsub_ps_256; // "86.fma4.vfmsub.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 (NameR.substr(6, 7) != "42.pcmp")
break;
switch (NameR[13]) {
default: break;
case 'e': // 2 strings to match.
if (NameR.substr(14, 3) != "str")
break;
switch (NameR[17]) {
default: break;
case 'i': // 1 string to match.
if (NameR.substr(18, 3) != "128")
break;
return Intrinsic::x86_sse42_pcmpestri128; // "86.sse42.pcmpestri128"
case 'm': // 1 string to match.
if (NameR.substr(18, 3) != "128")
break;
return Intrinsic::x86_sse42_pcmpestrm128; // "86.sse42.pcmpestrm128"
}
break;
case 'i': // 2 strings to match.
if (NameR.substr(14, 3) != "str")
break;
switch (NameR[17]) {
default: break;
case 'i': // 1 string to match.
if (NameR.substr(18, 3) != "128")
break;
return Intrinsic::x86_sse42_pcmpistri128; // "86.sse42.pcmpistri128"
case 'm': // 1 string to match.
if (NameR.substr(18, 3) != "128")
break;
return Intrinsic::x86_sse42_pcmpistrm128; // "86.sse42.pcmpistrm128"
}
break;
}
break;
case 's': // 2 strings to match.
if (NameR.substr(6, 5) != "e3.ph")
break;
switch (NameR[11]) {
default: break;
case 'a': // 1 string to match.
if (NameR.substr(12, 9) != "dd.sw.128")
break;
return Intrinsic::x86_ssse3_phadd_sw_128; // "86.ssse3.phadd.sw.128"
case 's': // 1 string to match.
if (NameR.substr(12, 9) != "ub.sw.128")
break;
return Intrinsic::x86_ssse3_phsub_sw_128; // "86.ssse3.phsub.sw.128"
}
break;
}
break;
case 'x': // 2 strings to match.
if (NameR.substr(4, 12) != "op.vpermil2p")
break;
switch (NameR[16]) {
default: break;
case 'd': // 1 string to match.
if (NameR.substr(17, 4) != ".256")
break;
return Intrinsic::x86_xop_vpermil2pd_256; // "86.xop.vpermil2pd.256"
case 's': // 1 string to match.
if (NameR.substr(17, 4) != ".256")
break;
return Intrinsic::x86_xop_vpermil2ps_256; // "86.xop.vpermil2ps.256"
}
break;
}
break;
case 22: // 21 strings to match.
if (NameR.substr(0, 3) != "86.")
break;
switch (NameR[3]) {
default: break;
case 'a': // 7 strings to match.
if (NameR.substr(4, 2) != "vx")
break;
switch (NameR[6]) {
default: break;
case '.': // 4 strings to match.
switch (NameR[7]) {
default: break;
case 'm': // 2 strings to match.
if (NameR.substr(8, 9) != "askload.p")
break;
switch (NameR[17]) {
default: break;
case 'd': // 1 string to match.
if (NameR.substr(18, 4) != ".256")
break;
return Intrinsic::x86_avx_maskload_pd_256; // "86.avx.maskload.pd.256"
case 's': // 1 string to match.
if (NameR.substr(18, 4) != ".256")
break;
return Intrinsic::x86_avx_maskload_ps_256; // "86.avx.maskload.ps.256"
}
break;
case 'v': // 2 strings to match.
if (NameR.substr(8, 9) != "testnzc.p")
break;
switch (NameR[17]) {
default: break;
case 'd': // 1 string to match.
if (NameR.substr(18, 4) != ".256")
break;
return Intrinsic::x86_avx_vtestnzc_pd_256; // "86.avx.vtestnzc.pd.256"
case 's': // 1 string to match.
if (NameR.substr(18, 4) != ".256")
break;
return Intrinsic::x86_avx_vtestnzc_ps_256; // "86.avx.vtestnzc.ps.256"
}
break;
}
break;
case '2': // 3 strings to match.
if (NameR[7] != '.')
break;
switch (NameR[8]) {
default: break;
case 'm': // 2 strings to match.
if (NameR.substr(9, 8) != "askload.")
break;
switch (NameR[17]) {
default: break;
case 'd': // 1 string to match.
if (NameR.substr(18, 4) != ".256")
break;
return Intrinsic::x86_avx2_maskload_d_256; // "86.avx2.maskload.d.256"
case 'q': // 1 string to match.
if (NameR.substr(18, 4) != ".256")
break;
return Intrinsic::x86_avx2_maskload_q_256; // "86.avx2.maskload.q.256"
}
break;
case 'v': // 1 string to match.
if (NameR.substr(9, 13) != "broadcasti128")
break;
return Intrinsic::x86_avx2_vbroadcasti128; // "86.avx2.vbroadcasti128"
}
break;
}
break;
case 'f': // 4 strings to match.
if (NameR.substr(4, 8) != "ma4.vfnm")
break;
switch (NameR[12]) {
default: break;
case 'a': // 2 strings to match.
if (NameR.substr(13, 4) != "dd.p")
break;
switch (NameR[17]) {
default: break;
case 'd': // 1 string to match.
if (NameR.substr(18, 4) != ".256")
break;
return Intrinsic::x86_fma4_vfnmadd_pd_256; // "86.fma4.vfnmadd.pd.256"
case 's': // 1 string to match.
if (NameR.substr(18, 4) != ".256")
break;
return Intrinsic::x86_fma4_vfnmadd_ps_256; // "86.fma4.vfnmadd.ps.256"
}
break;
case 's': // 2 strings to match.
if (NameR.substr(13, 4) != "ub.p")
break;
switch (NameR[17]) {
default: break;
case 'd': // 1 string to match.
if (NameR.substr(18, 4) != ".256")
break;
return Intrinsic::x86_fma4_vfnmsub_pd_256; // "86.fma4.vfnmsub.pd.256"
case 's': // 1 string to match.
if (NameR.substr(18, 4) != ".256")
break;
return Intrinsic::x86_fma4_vfnmsub_ps_256; // "86.fma4.vfnmsub.ps.256"
}
break;
}
break;
case 's': // 10 strings to match.
if (NameR.substr(4, 9) != "se42.pcmp")
break;
switch (NameR[13]) {
default: break;
case 'e': // 5 strings to match.
if (NameR.substr(14, 4) != "stri")
break;
switch (NameR[18]) {
default: break;
case 'a': // 1 string to match.
if (NameR.substr(19, 3) != "128")
break;
return Intrinsic::x86_sse42_pcmpestria128; // "86.sse42.pcmpestria128"
case 'c': // 1 string to match.
if (NameR.substr(19, 3) != "128")
break;
return Intrinsic::x86_sse42_pcmpestric128; // "86.sse42.pcmpestric128"
case 'o': // 1 string to match.
if (NameR.substr(19, 3) != "128")
break;
return Intrinsic::x86_sse42_pcmpestrio128; // "86.sse42.pcmpestrio128"
case 's': // 1 string to match.
if (NameR.substr(19, 3) != "128")
break;
return Intrinsic::x86_sse42_pcmpestris128; // "86.sse42.pcmpestris128"
case 'z': // 1 string to match.
if (NameR.substr(19, 3) != "128")
break;
return Intrinsic::x86_sse42_pcmpestriz128; // "86.sse42.pcmpestriz128"
}
break;
case 'i': // 5 strings to match.
if (NameR.substr(14, 4) != "stri")
break;
switch (NameR[18]) {
default: break;
case 'a': // 1 string to match.
if (NameR.substr(19, 3) != "128")
break;
return Intrinsic::x86_sse42_pcmpistria128; // "86.sse42.pcmpistria128"
case 'c': // 1 string to match.
if (NameR.substr(19, 3) != "128")
break;
return Intrinsic::x86_sse42_pcmpistric128; // "86.sse42.pcmpistric128"
case 'o': // 1 string to match.
if (NameR.substr(19, 3) != "128")
break;
return Intrinsic::x86_sse42_pcmpistrio128; // "86.sse42.pcmpistrio128"
case 's': // 1 string to match.
if (NameR.substr(19, 3) != "128")
break;
return Intrinsic::x86_sse42_pcmpistris128; // "86.sse42.pcmpistris128"
case 'z': // 1 string to match.
if (NameR.substr(19, 3) != "128")
break;
return Intrinsic::x86_sse42_pcmpistriz128; // "86.sse42.pcmpistriz128"
}
break;
}
break;
}
break;
case 23: // 13 strings to match.
if (NameR.substr(0, 3) != "86.")
break;
switch (NameR[3]) {
default: break;
case 'a': // 12 strings to match.
if (NameR.substr(4, 2) != "vx")
break;
switch (NameR[6]) {
default: break;
case '.': // 2 strings to match.
if (NameR.substr(7, 11) != "maskstore.p")
break;
switch (NameR[18]) {
default: break;
case 'd': // 1 string to match.
if (NameR.substr(19, 4) != ".256")
break;
return Intrinsic::x86_avx_maskstore_pd_256; // "86.avx.maskstore.pd.256"
case 's': // 1 string to match.
if (NameR.substr(19, 4) != ".256")
break;
return Intrinsic::x86_avx_maskstore_ps_256; // "86.avx.maskstore.ps.256"
}
break;
case '2': // 10 strings to match.
if (NameR[7] != '.')
break;
switch (NameR[8]) {
default: break;
case 'm': // 2 strings to match.
if (NameR.substr(9, 9) != "askstore.")
break;
switch (NameR[18]) {
default: break;
case 'd': // 1 string to match.
if (NameR.substr(19, 4) != ".256")
break;
return Intrinsic::x86_avx2_maskstore_d_256; // "86.avx2.maskstore.d.256"
case 'q': // 1 string to match.
if (NameR.substr(19, 4) != ".256")
break;
return Intrinsic::x86_avx2_maskstore_q_256; // "86.avx2.maskstore.q.256"
}
break;
case 'p': // 8 strings to match.
if (NameR.substr(9, 9) != "broadcast")
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 (NameR.substr(21, 2) != "28")
break;
return Intrinsic::x86_avx2_pbroadcastb_128; // "86.avx2.pbroadcastb.128"
case '2': // 1 string to match.
if (NameR.substr(21, 2) != "56")
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 (NameR.substr(21, 2) != "28")
break;
return Intrinsic::x86_avx2_pbroadcastd_128; // "86.avx2.pbroadcastd.128"
case '2': // 1 string to match.
if (NameR.substr(21, 2) != "56")
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 (NameR.substr(21, 2) != "28")
break;
return Intrinsic::x86_avx2_pbroadcastq_128; // "86.avx2.pbroadcastq.128"
case '2': // 1 string to match.
if (NameR.substr(21, 2) != "56")
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 (NameR.substr(21, 2) != "28")
break;
return Intrinsic::x86_avx2_pbroadcastw_128; // "86.avx2.pbroadcastw.128"
case '2': // 1 string to match.
if (NameR.substr(21, 2) != "56")
break;
return Intrinsic::x86_avx2_pbroadcastw_256; // "86.avx2.pbroadcastw.256"
}
break;
}
break;
}
break;
}
break;
case 's': // 1 string to match.
if (NameR.substr(4, 19) != "sse3.pmul.hr.sw.128")
break;
return Intrinsic::x86_ssse3_pmul_hr_sw_128; // "86.ssse3.pmul.hr.sw.128"
}
break;
case 24: // 14 strings to match.
if (NameR.substr(0, 3) != "86.")
break;
switch (NameR[3]) {
default: break;
case 'a': // 9 strings to match.
switch (NameR[4]) {
default: break;
case 'e': // 1 string to match.
if (NameR.substr(5, 19) != "sni.aeskeygenassist")
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 (NameR.substr(9, 10) != "roadcast.s")
break;
switch (NameR[19]) {
default: break;
case 'd': // 1 string to match.
if (NameR.substr(20, 4) != ".256")
break;
return Intrinsic::x86_avx_vbroadcast_sd_256; // "86.avx.vbroadcast.sd.256"
case 's': // 1 string to match.
if (NameR.substr(20, 4) != ".256")
break;
return Intrinsic::x86_avx_vbroadcast_ss_256; // "86.avx.vbroadcast.ss.256"
}
break;
case 'p': // 5 strings to match.
if (NameR.substr(9, 3) != "erm")
break;
switch (NameR[12]) {
default: break;
case '2': // 3 strings to match.
if (NameR.substr(13, 5) != "f128.")
break;
switch (NameR[18]) {
default: break;
case 'p': // 2 strings to match.
switch (NameR[19]) {
default: break;
case 'd': // 1 string to match.
if (NameR.substr(20, 4) != ".256")
break;
return Intrinsic::x86_avx_vperm2f128_pd_256; // "86.avx.vperm2f128.pd.256"
case 's': // 1 string to match.
if (NameR.substr(20, 4) != ".256")
break;
return Intrinsic::x86_avx_vperm2f128_ps_256; // "86.avx.vperm2f128.ps.256"
}
break;
case 's': // 1 string to match.
if (NameR.substr(19, 5) != "i.256")
break;
return Intrinsic::x86_avx_vperm2f128_si_256; // "86.avx.vperm2f128.si.256"
}
break;
case 'i': // 2 strings to match.
if (NameR.substr(13, 6) != "lvar.p")
break;
switch (NameR[19]) {
default: break;
case 'd': // 1 string to match.
if (NameR.substr(20, 4) != ".256")
break;
return Intrinsic::x86_avx_vpermilvar_pd_256; // "86.avx.vpermilvar.pd.256"
case 's': // 1 string to match.
if (NameR.substr(20, 4) != ".256")
break;
return Intrinsic::x86_avx_vpermilvar_ps_256; // "86.avx.vpermilvar.ps.256"
}
break;
}
break;
}
break;
case '2': // 1 string to match.
if (NameR.substr(7, 17) != ".vbroadcast.ss.ps")
break;
return Intrinsic::x86_avx2_vbroadcast_ss_ps; // "86.avx2.vbroadcast.ss.ps"
}
break;
}
break;
case 'f': // 4 strings to match.
if (NameR.substr(4, 7) != "ma4.vfm")
break;
switch (NameR[11]) {
default: break;
case 'a': // 2 strings to match.
if (NameR.substr(12, 7) != "ddsub.p")
break;
switch (NameR[19]) {
default: break;
case 'd': // 1 string to match.
if (NameR.substr(20, 4) != ".256")
break;
return Intrinsic::x86_fma4_vfmaddsub_pd_256; // "86.fma4.vfmaddsub.pd.256"
case 's': // 1 string to match.
if (NameR.substr(20, 4) != ".256")
break;
return Intrinsic::x86_fma4_vfmaddsub_ps_256; // "86.fma4.vfmaddsub.ps.256"
}
break;
case 's': // 2 strings to match.
if (NameR.substr(12, 7) != "ubadd.p")
break;
switch (NameR[19]) {
default: break;
case 'd': // 1 string to match.
if (NameR.substr(20, 4) != ".256")
break;
return Intrinsic::x86_fma4_vfmsubadd_pd_256; // "86.fma4.vfmsubadd.pd.256"
case 's': // 1 string to match.
if (NameR.substr(20, 4) != ".256")
break;
return Intrinsic::x86_fma4_vfmsubadd_ps_256; // "86.fma4.vfmsubadd.ps.256"
}
break;
}
break;
case 's': // 1 string to match.
if (NameR.substr(4, 20) != "sse3.pmadd.ub.sw.128")
break;
return Intrinsic::x86_ssse3_pmadd_ub_sw_128; // "86.ssse3.pmadd.ub.sw.128"
}
break;
case 25: // 3 strings to match.
if (NameR.substr(0, 19) != "86.avx.vinsertf128.")
break;
switch (NameR[19]) {
default: break;
case 'p': // 2 strings to match.
switch (NameR[20]) {
default: break;
case 'd': // 1 string to match.
if (NameR.substr(21, 4) != ".256")
break;
return Intrinsic::x86_avx_vinsertf128_pd_256; // "86.avx.vinsertf128.pd.256"
case 's': // 1 string to match.
if (NameR.substr(21, 4) != ".256")
break;
return Intrinsic::x86_avx_vinsertf128_ps_256; // "86.avx.vinsertf128.ps.256"
}
break;
case 's': // 1 string to match.
if (NameR.substr(20, 5) != "i.256")
break;
return Intrinsic::x86_avx_vinsertf128_si_256; // "86.avx.vinsertf128.si.256"
}
break;
case 26: // 3 strings to match.
if (NameR.substr(0, 20) != "86.avx.vextractf128.")
break;
switch (NameR[20]) {
default: break;
case 'p': // 2 strings to match.
switch (NameR[21]) {
default: break;
case 'd': // 1 string to match.
if (NameR.substr(22, 4) != ".256")
break;
return Intrinsic::x86_avx_vextractf128_pd_256; // "86.avx.vextractf128.pd.256"
case 's': // 1 string to match.
if (NameR.substr(22, 4) != ".256")
break;
return Intrinsic::x86_avx_vextractf128_ps_256; // "86.avx.vextractf128.ps.256"
}
break;
case 's': // 1 string to match.
if (NameR.substr(21, 5) != "i.256")
break;
return Intrinsic::x86_avx_vextractf128_si_256; // "86.avx.vextractf128.si.256"
}
break;
case 28: // 4 strings to match.
if (NameR.substr(0, 6) != "86.avx")
break;
switch (NameR[6]) {
default: break;
case '.': // 2 strings to match.
if (NameR.substr(7, 16) != "vbroadcastf128.p")
break;
switch (NameR[23]) {
default: break;
case 'd': // 1 string to match.
if (NameR.substr(24, 4) != ".256")
break;
return Intrinsic::x86_avx_vbroadcastf128_pd_256; // "86.avx.vbroadcastf128.pd.256"
case 's': // 1 string to match.
if (NameR.substr(24, 4) != ".256")
break;
return Intrinsic::x86_avx_vbroadcastf128_ps_256; // "86.avx.vbroadcastf128.ps.256"
}
break;
case '2': // 2 strings to match.
if (NameR.substr(7, 13) != ".vbroadcast.s")
break;
switch (NameR[20]) {
default: break;
case 'd': // 1 string to match.
if (NameR.substr(21, 7) != ".pd.256")
break;
return Intrinsic::x86_avx2_vbroadcast_sd_pd_256; // "86.avx2.vbroadcast.sd.pd.256"
case 's': // 1 string to match.
if (NameR.substr(21, 7) != ".ps.256")
break;
return Intrinsic::x86_avx2_vbroadcast_ss_ps_256; // "86.avx2.vbroadcast.ss.ps.256"
}
break;
}
break;
}
break; // end of 'x' case.
}
#endif
// Verifier::visitIntrinsicFunctionCall code.
#ifdef GET_INTRINSIC_VERIFIER
switch (ID) {
default: llvm_unreachable("Invalid intrinsic!");
case Intrinsic::eh_unwind_init: // llvm.eh.unwind.init
case Intrinsic::ppc_altivec_dssall: // llvm.ppc.altivec.dssall
case Intrinsic::ppc_sync: // llvm.ppc.sync
case Intrinsic::trap: // llvm.trap
case Intrinsic::x86_avx_vzeroall: // llvm.x86.avx.vzeroall
case Intrinsic::x86_avx_vzeroupper: // llvm.x86.avx.vzeroupper
case Intrinsic::x86_mmx_emms: // llvm.x86.mmx.emms
case Intrinsic::x86_mmx_femms: // llvm.x86.mmx.femms
case Intrinsic::x86_sse2_lfence: // llvm.x86.sse2.lfence
case Intrinsic::x86_sse2_mfence: // llvm.x86.sse2.mfence
case Intrinsic::x86_sse_sfence: // llvm.x86.sse.sfence
case Intrinsic::xcore_clre: // llvm.xcore.clre
case Intrinsic::xcore_ssync: // llvm.xcore.ssync
VerifyIntrinsicPrototype(ID, IF, 0, 0);
break;
case Intrinsic::H: // llvm.H
case Intrinsic::NOT: // llvm.rkqc.NOT
case Intrinsic::S: // llvm.S
case Intrinsic::Sdag: // llvm.Sdag
case Intrinsic::T: // llvm.T
case Intrinsic::Tdag: // llvm.Tdag
case Intrinsic::X: // llvm.X
case Intrinsic::Y: // llvm.Y
case Intrinsic::Z: // llvm.Z
VerifyIntrinsicPrototype(ID, IF, 0, 1, MVT::iAny);
break;
case Intrinsic::CNOT: // llvm.CNOT
case Intrinsic::cnot: // llvm.rkqc.cnot
VerifyIntrinsicPrototype(ID, IF, 0, 2, MVT::iAny, MVT::iAny);
break;
case Intrinsic::Fredkin: // llvm.Fredkin
case Intrinsic::Toffoli: // llvm.Toffoli
case Intrinsic::toffoli: // llvm.rkqc.toffoli
VerifyIntrinsicPrototype(ID, IF, 0, 3, MVT::iAny, MVT::iAny, MVT::iAny);
break;
case Intrinsic::a_eq_a_plus_b_times_c: // llvm.rkqc.a_eq_a_plus_b_times_c
VerifyIntrinsicPrototype(ID, IF, 0, 4, MVT::iAny, MVT::iAny, MVT::iAny, MVT::i32);
break;
case Intrinsic::a_eq_a_minus_b: // llvm.rkqc.a_eq_a_minus_b
case Intrinsic::a_eq_a_plus_b: // llvm.rkqc.a_eq_a_plus_b
case Intrinsic::a_swap_b: // llvm.rkqc.a_swap_b
case Intrinsic::assign_value_of_b_to_a: // llvm.rkqc.assign_value_of_b_to_a
VerifyIntrinsicPrototype(ID, IF, 0, 3, MVT::iAny, MVT::iAny, MVT::i32);
break;
case Intrinsic::Rx: // llvm.Rx
case Intrinsic::Ry: // llvm.Ry
case Intrinsic::Rz: // llvm.Rz
VerifyIntrinsicPrototype(ID, IF, 0, 2, MVT::iAny, MVT::f64);
break;
case Intrinsic::PrepX: // llvm.PrepX
case Intrinsic::PrepZ: // llvm.PrepZ
case Intrinsic::assign_value_of_0_to_a: // llvm.rkqc.assign_value_of_0_to_a
case Intrinsic::assign_value_of_1_to_a: // llvm.rkqc.assign_value_of_1_to_a
VerifyIntrinsicPrototype(ID, IF, 0, 2, MVT::iAny, MVT::i32);
break;
case Intrinsic::xcore_eeu: // llvm.xcore.eeu
case Intrinsic::xcore_freer: // llvm.xcore.freer
case Intrinsic::xcore_mjoin: // llvm.xcore.mjoin
case Intrinsic::xcore_msync: // llvm.xcore.msync
case Intrinsic::xcore_syncr: // llvm.xcore.syncr
VerifyIntrinsicPrototype(ID, IF, 0, 1, MVT::iPTRAny);
break;
case Intrinsic::xcore_setclk: // llvm.xcore.setclk
case Intrinsic::xcore_setrdy: // llvm.xcore.setrdy
VerifyIntrinsicPrototype(ID, IF, 0, 2, MVT::iPTRAny, MVT::iPTRAny);
break;
case Intrinsic::memcpy: // llvm.memcpy
case Intrinsic::memmove: // llvm.memmove
VerifyIntrinsicPrototype(ID, IF, 0, 5, MVT::iPTRAny, MVT::iPTRAny, MVT::iAny, MVT::i32, MVT::i1);
break;
case Intrinsic::xcore_chkct: // llvm.xcore.chkct
case Intrinsic::xcore_out: // llvm.xcore.out
case Intrinsic::xcore_outct: // llvm.xcore.outct
case Intrinsic::xcore_outt: // llvm.xcore.outt
case Intrinsic::xcore_setc: // llvm.xcore.setc
case Intrinsic::xcore_setd: // llvm.xcore.setd
case Intrinsic::xcore_setpsc: // llvm.xcore.setpsc
case Intrinsic::xcore_setpt: // llvm.xcore.setpt
case Intrinsic::xcore_settw: // llvm.xcore.settw
VerifyIntrinsicPrototype(ID, IF, 0, 2, MVT::iPTRAny, MVT::i32);
break;
case Intrinsic::memset: // llvm.memset
VerifyIntrinsicPrototype(ID, IF, 0, 5, MVT::iPTRAny, MVT::i8, MVT::iAny, MVT::i32, MVT::i1);
break;
case Intrinsic::xcore_initcp: // llvm.xcore.initcp
case Intrinsic::xcore_initdp: // llvm.xcore.initdp
case Intrinsic::xcore_initlr: // llvm.xcore.initlr
case Intrinsic::xcore_initpc: // llvm.xcore.initpc
case Intrinsic::xcore_initsp: // llvm.xcore.initsp
case Intrinsic::xcore_setev: // llvm.xcore.setev
case Intrinsic::xcore_setv: // llvm.xcore.setv
VerifyIntrinsicPrototype(ID, IF, 0, 2, MVT::iPTRAny, MVT::iPTR);
break;
case Intrinsic::invariant_end: // llvm.invariant.end
VerifyIntrinsicPrototype(ID, IF, 0, 3, MVT::iPTR, MVT::i64, MVT::iPTR);
break;
case Intrinsic::arm_set_fpscr: // llvm.arm.set.fpscr
case Intrinsic::eh_sjlj_callsite: // llvm.eh.sjlj.callsite
case Intrinsic::pcmarker: // llvm.pcmarker
case Intrinsic::ppc_altivec_dss: // llvm.ppc.altivec.dss
case Intrinsic::ptx_bar_sync: // llvm.ptx.bar.sync
case Intrinsic::x86_wrfsbase_32: // llvm.x86.wrfsbase.32
case Intrinsic::x86_wrgsbase_32: // llvm.x86.wrgsbase.32
case Intrinsic::xcore_clrsr: // llvm.xcore.clrsr
case Intrinsic::xcore_setsr: // llvm.xcore.setsr
VerifyIntrinsicPrototype(ID, IF, 0, 1, MVT::i32);
break;
case Intrinsic::x86_sse3_mwait: // llvm.x86.sse3.mwait
case Intrinsic::xcore_setps: // llvm.xcore.setps
VerifyIntrinsicPrototype(ID, IF, 0, 2, MVT::i32, MVT::i32);
break;
case Intrinsic::arm_mcrr: // llvm.arm.mcrr
case Intrinsic::arm_mcrr2: // llvm.arm.mcrr2
VerifyIntrinsicPrototype(ID, IF, 0, 5, MVT::i32, MVT::i32, MVT::i32, MVT::i32, MVT::i32);
break;
case Intrinsic::arm_cdp: // llvm.arm.cdp
case Intrinsic::arm_cdp2: // llvm.arm.cdp2
case Intrinsic::arm_mcr: // llvm.arm.mcr
case Intrinsic::arm_mcr2: // llvm.arm.mcr2
VerifyIntrinsicPrototype(ID, IF, 0, 6, MVT::i32, MVT::i32, MVT::i32, MVT::i32, MVT::i32, MVT::i32);
break;
case Intrinsic::eh_return_i32: // llvm.eh.return.i32
VerifyIntrinsicPrototype(ID, IF, 0, 2, MVT::i32, MVT::iPTR);
break;
case Intrinsic::x86_wrfsbase_64: // llvm.x86.wrfsbase.64
case Intrinsic::x86_wrgsbase_64: // llvm.x86.wrgsbase.64
VerifyIntrinsicPrototype(ID, IF, 0, 1, MVT::i64);
break;
case Intrinsic::eh_return_i64: // llvm.eh.return.i64
case Intrinsic::lifetime_end: // llvm.lifetime.end
case Intrinsic::lifetime_start: // llvm.lifetime.start
VerifyIntrinsicPrototype(ID, IF, 0, 2, MVT::i64, MVT::iPTR);
break;
case Intrinsic::x86_int: // llvm.x86.int
VerifyIntrinsicPrototype(ID, IF, 0, 1, MVT::i8);
break;
case Intrinsic::dbg_value: // llvm.dbg.value
VerifyIntrinsicPrototype(ID, IF, 0, 3, MVT::Metadata, MVT::i64, MVT::Metadata);
break;
case Intrinsic::dbg_declare: // llvm.dbg.declare
VerifyIntrinsicPrototype(ID, IF, 0, 2, MVT::Metadata, MVT::Metadata);
break;
case Intrinsic::eh_sjlj_functioncontext: // llvm.eh.sjlj.functioncontext
case Intrinsic::eh_sjlj_longjmp: // llvm.eh.sjlj.longjmp
case Intrinsic::ppc_dcba: // llvm.ppc.dcba
case Intrinsic::ppc_dcbf: // llvm.ppc.dcbf
case Intrinsic::ppc_dcbi: // llvm.ppc.dcbi
case Intrinsic::ppc_dcbst: // llvm.ppc.dcbst
case Intrinsic::ppc_dcbt: // llvm.ppc.dcbt
case Intrinsic::ppc_dcbtst: // llvm.ppc.dcbtst
case Intrinsic::ppc_dcbz: // llvm.ppc.dcbz
case Intrinsic::ppc_dcbzl: // llvm.ppc.dcbzl
case Intrinsic::stackrestore: // llvm.stackrestore
case Intrinsic::vaend: // llvm.va_end
case Intrinsic::vastart: // llvm.va_start
case Intrinsic::x86_sse2_clflush: // llvm.x86.sse2.clflush
case Intrinsic::x86_sse_ldmxcsr: // llvm.x86.sse.ldmxcsr
case Intrinsic::x86_sse_stmxcsr: // llvm.x86.sse.stmxcsr
VerifyIntrinsicPrototype(ID, IF, 0, 1, MVT::iPTR);
break;
case Intrinsic::arm_neon_vst2: // llvm.arm.neon.vst2
VerifyIntrinsicPrototype(ID, IF, 0, 4, MVT::iPTR, MVT::vAny, ~1, MVT::i32);
break;
case Intrinsic::arm_neon_vst3: // llvm.arm.neon.vst3
VerifyIntrinsicPrototype(ID, IF, 0, 5, MVT::iPTR, MVT::vAny, ~1, ~1, MVT::i32);
break;
case Intrinsic::arm_neon_vst4: // llvm.arm.neon.vst4
VerifyIntrinsicPrototype(ID, IF, 0, 6, MVT::iPTR, MVT::vAny, ~1, ~1, ~1, MVT::i32);
break;
case Intrinsic::arm_neon_vst2lane: // llvm.arm.neon.vst2lane
VerifyIntrinsicPrototype(ID, IF, 0, 5, MVT::iPTR, MVT::vAny, ~1, MVT::i32, MVT::i32);
break;
case Intrinsic::arm_neon_vst3lane: // llvm.arm.neon.vst3lane
VerifyIntrinsicPrototype(ID, IF, 0, 6, MVT::iPTR, MVT::vAny, ~1, ~1, MVT::i32, MVT::i32);
break;
case Intrinsic::arm_neon_vst4lane: // llvm.arm.neon.vst4lane
VerifyIntrinsicPrototype(ID, IF, 0, 7, MVT::iPTR, MVT::vAny, ~1, ~1, ~1, MVT::i32, MVT::i32);
break;
case Intrinsic::arm_neon_vst1: // llvm.arm.neon.vst1
VerifyIntrinsicPrototype(ID, IF, 0, 3, MVT::iPTR, MVT::vAny, MVT::i32);
break;
case Intrinsic::longjmp: // llvm.longjmp
case Intrinsic::siglongjmp: // llvm.siglongjmp
VerifyIntrinsicPrototype(ID, IF, 0, 2, MVT::iPTR, MVT::i32);
break;
case Intrinsic::ppc_altivec_dst: // llvm.ppc.altivec.dst
case Intrinsic::ppc_altivec_dstst: // llvm.ppc.altivec.dstst
case Intrinsic::ppc_altivec_dststt: // llvm.ppc.altivec.dststt
case Intrinsic::ppc_altivec_dstt: // llvm.ppc.altivec.dstt
case Intrinsic::x86_sse3_monitor: // llvm.x86.sse3.monitor
VerifyIntrinsicPrototype(ID, IF, 0, 3, MVT::iPTR, MVT::i32, MVT::i32);
break;
case Intrinsic::prefetch: // llvm.prefetch
VerifyIntrinsicPrototype(ID, IF, 0, 4, MVT::iPTR, MVT::i32, MVT::i32, MVT::i32);
break;
case Intrinsic::vacopy: // llvm.va_copy
VerifyIntrinsicPrototype(ID, IF, 0, 2, MVT::iPTR, MVT::iPTR);
break;
case Intrinsic::init_trampoline: // llvm.init.trampoline
VerifyIntrinsicPrototype(ID, IF, 0, 3, MVT::iPTR, MVT::iPTR, MVT::iPTR);
break;
case Intrinsic::var_annotation: // llvm.var.annotation
VerifyIntrinsicPrototype(ID, IF, 0, 4, MVT::iPTR, MVT::iPTR, MVT::iPTR, MVT::i32);
break;
case Intrinsic::gcwrite: // llvm.gcwrite
VerifyIntrinsicPrototype(ID, IF, 0, 3, MVT::iPTR, MVT::iPTR, MVT::iPTR);
break;
case Intrinsic::stackprotector: // llvm.stackprotector
VerifyIntrinsicPrototype(ID, IF, 0, 2, MVT::iPTR, MVT::iPTR);
break;
case Intrinsic::x86_sse2_storeu_dq: // llvm.x86.sse2.storeu.dq
VerifyIntrinsicPrototype(ID, IF, 0, 2, MVT::iPTR, MVT::v16i8);
break;
case Intrinsic::x86_sse2_storeu_pd: // llvm.x86.sse2.storeu.pd
VerifyIntrinsicPrototype(ID, IF, 0, 2, MVT::iPTR, MVT::v2f64);
break;
case Intrinsic::x86_avx_maskstore_pd: // llvm.x86.avx.maskstore.pd
VerifyIntrinsicPrototype(ID, IF, 0, 3, MVT::iPTR, MVT::v2f64, MVT::v2f64);
break;
case Intrinsic::x86_avx2_maskstore_q: // llvm.x86.avx2.maskstore.q
VerifyIntrinsicPrototype(ID, IF, 0, 3, MVT::iPTR, MVT::v2i64, MVT::v2i64);
break;
case Intrinsic::x86_avx_storeu_dq_256: // llvm.x86.avx.storeu.dq.256
VerifyIntrinsicPrototype(ID, IF, 0, 2, MVT::iPTR, MVT::v32i8);
break;
case Intrinsic::x86_sse_storeu_ps: // llvm.x86.sse.storeu.ps
VerifyIntrinsicPrototype(ID, IF, 0, 2, MVT::iPTR, MVT::v4f32);
break;
case Intrinsic::x86_avx_maskstore_ps: // llvm.x86.avx.maskstore.ps
VerifyIntrinsicPrototype(ID, IF, 0, 3, MVT::iPTR, MVT::v4f32, MVT::v4f32);
break;
case Intrinsic::x86_avx_movnt_pd_256: // llvm.x86.avx.movnt.pd.256
case Intrinsic::x86_avx_storeu_pd_256: // llvm.x86.avx.storeu.pd.256
VerifyIntrinsicPrototype(ID, IF, 0, 2, MVT::iPTR, MVT::v4f64);
break;
case Intrinsic::x86_avx_maskstore_pd_256: // llvm.x86.avx.maskstore.pd.256
VerifyIntrinsicPrototype(ID, IF, 0, 3, MVT::iPTR, MVT::v4f64, MVT::v4f64);
break;
case Intrinsic::x86_sse2_storel_dq: // llvm.x86.sse2.storel.dq
VerifyIntrinsicPrototype(ID, IF, 0, 2, MVT::iPTR, MVT::v4i32);
break;
case Intrinsic::x86_avx2_maskstore_d: // llvm.x86.avx2.maskstore.d
VerifyIntrinsicPrototype(ID, IF, 0, 3, MVT::iPTR, MVT::v4i32, MVT::v4i32);
break;
case Intrinsic::x86_avx_movnt_dq_256: // llvm.x86.avx.movnt.dq.256
VerifyIntrinsicPrototype(ID, IF, 0, 2, MVT::iPTR, MVT::v4i64);
break;
case Intrinsic::x86_avx2_maskstore_q_256: // llvm.x86.avx2.maskstore.q.256
VerifyIntrinsicPrototype(ID, IF, 0, 3, MVT::iPTR, MVT::v4i64, MVT::v4i64);
break;
case Intrinsic::x86_avx_movnt_ps_256: // llvm.x86.avx.movnt.ps.256
case Intrinsic::x86_avx_storeu_ps_256: // llvm.x86.avx.storeu.ps.256
VerifyIntrinsicPrototype(ID, IF, 0, 2, MVT::iPTR, MVT::v8f32);
break;
case Intrinsic::x86_avx_maskstore_ps_256: // llvm.x86.avx.maskstore.ps.256
VerifyIntrinsicPrototype(ID, IF, 0, 3, MVT::iPTR, MVT::v8f32, MVT::v8f32);
break;
case Intrinsic::x86_avx2_maskstore_d_256: // llvm.x86.avx2.maskstore.d.256
VerifyIntrinsicPrototype(ID, IF, 0, 3, MVT::iPTR, MVT::v8i32, MVT::v8i32);
break;
case Intrinsic::gcroot: // llvm.gcroot
VerifyIntrinsicPrototype(ID, IF, 0, 2, MVT::iPTR, MVT::iPTR);
break;
case Intrinsic::x86_mmx_movnt_dq: // llvm.x86.mmx.movnt.dq
VerifyIntrinsicPrototype(ID, IF, 0, 2, MVT::iPTR, MVT::x86mmx);
break;
case Intrinsic::ppc_altivec_stvebx: // llvm.ppc.altivec.stvebx
VerifyIntrinsicPrototype(ID, IF, 0, 2, MVT::v16i8, MVT::iPTR);
break;
case Intrinsic::x86_sse2_maskmov_dqu: // llvm.x86.sse2.maskmov.dqu
VerifyIntrinsicPrototype(ID, IF, 0, 3, MVT::v16i8, MVT::v16i8, MVT::iPTR);
break;
case Intrinsic::ppc_altivec_mtvscr: // llvm.ppc.altivec.mtvscr
VerifyIntrinsicPrototype(ID, IF, 0, 1, MVT::v4i32);
break;
case Intrinsic::ppc_altivec_stvewx: // llvm.ppc.altivec.stvewx
case Intrinsic::ppc_altivec_stvx: // llvm.ppc.altivec.stvx
case Intrinsic::ppc_altivec_stvxl: // llvm.ppc.altivec.stvxl
VerifyIntrinsicPrototype(ID, IF, 0, 2, MVT::v4i32, MVT::iPTR);
break;
case Intrinsic::ppc_altivec_stvehx: // llvm.ppc.altivec.stvehx
VerifyIntrinsicPrototype(ID, IF, 0, 2, MVT::v8i16, MVT::iPTR);
break;
case Intrinsic::x86_mmx_maskmovq: // llvm.x86.mmx.maskmovq
VerifyIntrinsicPrototype(ID, IF, 0, 3, MVT::x86mmx, MVT::x86mmx, MVT::iPTR);
break;
case Intrinsic::ptr_annotation: // llvm.ptr.annotation
VerifyIntrinsicPrototype(ID, IF, 1, 4, MVT::iPTRAny, ~0, MVT::iPTR, MVT::iPTR, MVT::i32);
break;
case Intrinsic::sin: // llvm.sin
VerifyIntrinsicPrototype(ID, IF, 1, 1, MVT::fAny, ~0);
break;
case Intrinsic::cos: // llvm.cos
VerifyIntrinsicPrototype(ID, IF, 1, 1, MVT::fAny, ~0);
break;
case Intrinsic::pow: // llvm.pow
VerifyIntrinsicPrototype(ID, IF, 1, 2, MVT::fAny, ~0, ~0);
break;
case Intrinsic::log: // llvm.log
VerifyIntrinsicPrototype(ID, IF, 1, 1, MVT::fAny, ~0);
break;
case Intrinsic::log10: // llvm.log10
VerifyIntrinsicPrototype(ID, IF, 1, 1, MVT::fAny, ~0);
break;
case Intrinsic::log2: // llvm.log2
VerifyIntrinsicPrototype(ID, IF, 1, 1, MVT::fAny, ~0);
break;
case Intrinsic::exp: // llvm.exp
VerifyIntrinsicPrototype(ID, IF, 1, 1, MVT::fAny, ~0);
break;
case Intrinsic::exp2: // llvm.exp2
VerifyIntrinsicPrototype(ID, IF, 1, 1, MVT::fAny, ~0);
break;
case Intrinsic::fma: // llvm.fma
VerifyIntrinsicPrototype(ID, IF, 1, 3, MVT::fAny, ~0, ~0, ~0);
break;
case Intrinsic::sqrt: // llvm.sqrt
VerifyIntrinsicPrototype(ID, IF, 1, 1, MVT::fAny, ~0);
break;
case Intrinsic::powi: // llvm.powi
VerifyIntrinsicPrototype(ID, IF, 1, 2, MVT::fAny, ~0, MVT::i32);
break;
case Intrinsic::convertff: // llvm.convertff
VerifyIntrinsicPrototype(ID, IF, 1, 3, MVT::fAny, MVT::fAny, MVT::i32, MVT::i32);
break;
case Intrinsic::arm_neon_vcvtfxs2fp: // llvm.arm.neon.vcvtfxs2fp
case Intrinsic::arm_neon_vcvtfxu2fp: // llvm.arm.neon.vcvtfxu2fp
VerifyIntrinsicPrototype(ID, IF, 1, 2, MVT::fAny, MVT::iAny, MVT::i32);
break;
case Intrinsic::convertfsi: // llvm.convertfsi
case Intrinsic::convertfui: // llvm.convertfui
VerifyIntrinsicPrototype(ID, IF, 1, 3, MVT::fAny, MVT::iAny, MVT::i32, MVT::i32);
break;
case Intrinsic::expect: // llvm.expect
VerifyIntrinsicPrototype(ID, IF, 1, 2, MVT::iAny, ~0, ~0);
break;
case Intrinsic::bswap: // llvm.bswap
VerifyIntrinsicPrototype(ID, IF, 1, 1, MVT::iAny, ~0);
break;
case Intrinsic::ctpop: // llvm.ctpop
VerifyIntrinsicPrototype(ID, IF, 1, 1, MVT::iAny, ~0);
break;
case Intrinsic::ctlz: // llvm.ctlz
VerifyIntrinsicPrototype(ID, IF, 1, 2, MVT::iAny, ~0, MVT::i1);
break;
case Intrinsic::cttz: // llvm.cttz
VerifyIntrinsicPrototype(ID, IF, 1, 2, MVT::iAny, ~0, MVT::i1);
break;
case Intrinsic::annotation: // llvm.annotation
VerifyIntrinsicPrototype(ID, IF, 1, 4, MVT::iAny, ~0, MVT::iPTR, MVT::iPTR, MVT::i32);
break;
case Intrinsic::arm_neon_vcvtfp2fxs: // llvm.arm.neon.vcvtfp2fxs
case Intrinsic::arm_neon_vcvtfp2fxu: // llvm.arm.neon.vcvtfp2fxu
VerifyIntrinsicPrototype(ID, IF, 1, 2, MVT::iAny, MVT::fAny, MVT::i32);
break;
case Intrinsic::convertsif: // llvm.convertsif
case Intrinsic::convertuif: // llvm.convertuif
VerifyIntrinsicPrototype(ID, IF, 1, 3, MVT::iAny, MVT::fAny, MVT::i32, MVT::i32);
break;
case Intrinsic::convertss: // llvm.convertss
case Intrinsic::convertsu: // llvm.convertsu
case Intrinsic::convertus: // llvm.convertus
case Intrinsic::convertuu: // llvm.convertuu
VerifyIntrinsicPrototype(ID, IF, 1, 3, MVT::iAny, MVT::iAny, MVT::i32, MVT::i32);
break;
case Intrinsic::objectsize: // llvm.objectsize
VerifyIntrinsicPrototype(ID, IF, 1, 2, MVT::iAny, MVT::iPTR, MVT::i1);
break;
case Intrinsic::sadd_with_overflow: // llvm.sadd.with.overflow
VerifyIntrinsicPrototype(ID, IF, 2, 2, MVT::iAny, MVT::i1, ~0, ~0);
break;
case Intrinsic::uadd_with_overflow: // llvm.uadd.with.overflow
VerifyIntrinsicPrototype(ID, IF, 2, 2, MVT::iAny, MVT::i1, ~0, ~0);
break;
case Intrinsic::ssub_with_overflow: // llvm.ssub.with.overflow
VerifyIntrinsicPrototype(ID, IF, 2, 2, MVT::iAny, MVT::i1, ~0, ~0);
break;
case Intrinsic::usub_with_overflow: // llvm.usub.with.overflow
VerifyIntrinsicPrototype(ID, IF, 2, 2, MVT::iAny, MVT::i1, ~0, ~0);
break;
case Intrinsic::smul_with_overflow: // llvm.smul.with.overflow
VerifyIntrinsicPrototype(ID, IF, 2, 2, MVT::iAny, MVT::i1, ~0, ~0);
break;
case Intrinsic::umul_with_overflow: // llvm.umul.with.overflow
VerifyIntrinsicPrototype(ID, IF, 2, 2, MVT::iAny, MVT::i1, ~0, ~0);
break;
case Intrinsic::xcore_getst: // llvm.xcore.getst
VerifyIntrinsicPrototype(ID, IF, 1, 1, MVT::iPTRAny, MVT::iPTRAny);
break;
case Intrinsic::xcore_getr: // llvm.xcore.getr
VerifyIntrinsicPrototype(ID, IF, 1, 1, MVT::iPTRAny, MVT::i32);
break;
case Intrinsic::arm_neon_vabs: // llvm.arm.neon.vabs
case Intrinsic::arm_neon_vcls: // llvm.arm.neon.vcls
case Intrinsic::arm_neon_vclz: // llvm.arm.neon.vclz
case Intrinsic::arm_neon_vcnt: // llvm.arm.neon.vcnt
case Intrinsic::arm_neon_vqabs: // llvm.arm.neon.vqabs
case Intrinsic::arm_neon_vqneg: // llvm.arm.neon.vqneg
case Intrinsic::arm_neon_vrecpe: // llvm.arm.neon.vrecpe
case Intrinsic::arm_neon_vrsqrte: // llvm.arm.neon.vrsqrte
VerifyIntrinsicPrototype(ID, IF, 1, 1, MVT::vAny, ~0);
break;
case Intrinsic::arm_neon_vqmovns: // llvm.arm.neon.vqmovns
case Intrinsic::arm_neon_vqmovnsu: // llvm.arm.neon.vqmovnsu
case Intrinsic::arm_neon_vqmovnu: // llvm.arm.neon.vqmovnu
VerifyIntrinsicPrototype(ID, IF, 1, 1, MVT::vAny, ~(ExtendedElementVectorType | 0));
break;
case Intrinsic::arm_neon_vabds: // llvm.arm.neon.vabds
case Intrinsic::arm_neon_vabdu: // llvm.arm.neon.vabdu
case Intrinsic::arm_neon_vhadds: // llvm.arm.neon.vhadds
case Intrinsic::arm_neon_vhaddu: // llvm.arm.neon.vhaddu
case Intrinsic::arm_neon_vhsubs: // llvm.arm.neon.vhsubs
case Intrinsic::arm_neon_vhsubu: // llvm.arm.neon.vhsubu
case Intrinsic::arm_neon_vmaxs: // llvm.arm.neon.vmaxs
case Intrinsic::arm_neon_vmaxu: // llvm.arm.neon.vmaxu
case Intrinsic::arm_neon_vmins: // llvm.arm.neon.vmins
case Intrinsic::arm_neon_vminu: // llvm.arm.neon.vminu
case Intrinsic::arm_neon_vmulp: // llvm.arm.neon.vmulp
case Intrinsic::arm_neon_vpadd: // llvm.arm.neon.vpadd
case Intrinsic::arm_neon_vpmaxs: // llvm.arm.neon.vpmaxs
case Intrinsic::arm_neon_vpmaxu: // llvm.arm.neon.vpmaxu
case Intrinsic::arm_neon_vpmins: // llvm.arm.neon.vpmins
case Intrinsic::arm_neon_vpminu: // llvm.arm.neon.vpminu
case Intrinsic::arm_neon_vqadds: // llvm.arm.neon.vqadds
case Intrinsic::arm_neon_vqaddu: // llvm.arm.neon.vqaddu
case Intrinsic::arm_neon_vqdmulh: // llvm.arm.neon.vqdmulh
case Intrinsic::arm_neon_vqrdmulh: // llvm.arm.neon.vqrdmulh
case Intrinsic::arm_neon_vqrshifts: // llvm.arm.neon.vqrshifts
case Intrinsic::arm_neon_vqrshiftu: // llvm.arm.neon.vqrshiftu
case Intrinsic::arm_neon_vqshifts: // llvm.arm.neon.vqshifts
case Intrinsic::arm_neon_vqshiftsu: // llvm.arm.neon.vqshiftsu
case Intrinsic::arm_neon_vqshiftu: // llvm.arm.neon.vqshiftu
case Intrinsic::arm_neon_vqsubs: // llvm.arm.neon.vqsubs
case Intrinsic::arm_neon_vqsubu: // llvm.arm.neon.vqsubu
case Intrinsic::arm_neon_vrecps: // llvm.arm.neon.vrecps
case Intrinsic::arm_neon_vrhadds: // llvm.arm.neon.vrhadds
case Intrinsic::arm_neon_vrhaddu: // llvm.arm.neon.vrhaddu
case Intrinsic::arm_neon_vrshifts: // llvm.arm.neon.vrshifts
case Intrinsic::arm_neon_vrshiftu: // llvm.arm.neon.vrshiftu
case Intrinsic::arm_neon_vrsqrts: // llvm.arm.neon.vrsqrts
case Intrinsic::arm_neon_vshifts: // llvm.arm.neon.vshifts
case Intrinsic::arm_neon_vshiftu: // llvm.arm.neon.vshiftu
VerifyIntrinsicPrototype(ID, IF, 1, 2, MVT::vAny, ~0, ~0);
break;
case Intrinsic::arm_neon_vaddhn: // llvm.arm.neon.vaddhn
case Intrinsic::arm_neon_vqrshiftns: // llvm.arm.neon.vqrshiftns
case Intrinsic::arm_neon_vqrshiftnsu: // llvm.arm.neon.vqrshiftnsu
case Intrinsic::arm_neon_vqrshiftnu: // llvm.arm.neon.vqrshiftnu
case Intrinsic::arm_neon_vqshiftns: // llvm.arm.neon.vqshiftns
case Intrinsic::arm_neon_vqshiftnsu: // llvm.arm.neon.vqshiftnsu
case Intrinsic::arm_neon_vqshiftnu: // llvm.arm.neon.vqshiftnu
case Intrinsic::arm_neon_vraddhn: // llvm.arm.neon.vraddhn
case Intrinsic::arm_neon_vrshiftn: // llvm.arm.neon.vrshiftn
case Intrinsic::arm_neon_vrsubhn: // llvm.arm.neon.vrsubhn
case Intrinsic::arm_neon_vshiftn: // llvm.arm.neon.vshiftn
case Intrinsic::arm_neon_vsubhn: // llvm.arm.neon.vsubhn
VerifyIntrinsicPrototype(ID, IF, 1, 2, MVT::vAny, ~(ExtendedElementVectorType | 0), ~(ExtendedElementVectorType | 0));
break;
case Intrinsic::arm_neon_vmullp: // llvm.arm.neon.vmullp
case Intrinsic::arm_neon_vmulls: // llvm.arm.neon.vmulls
case Intrinsic::arm_neon_vmullu: // llvm.arm.neon.vmullu
case Intrinsic::arm_neon_vqdmull: // llvm.arm.neon.vqdmull
case Intrinsic::arm_neon_vshiftls: // llvm.arm.neon.vshiftls
case Intrinsic::arm_neon_vshiftlu: // llvm.arm.neon.vshiftlu
VerifyIntrinsicPrototype(ID, IF, 1, 2, MVT::vAny, ~(TruncatedElementVectorType | 0), ~(TruncatedElementVectorType | 0));
break;
case Intrinsic::arm_neon_vshiftins: // llvm.arm.neon.vshiftins
VerifyIntrinsicPrototype(ID, IF, 1, 3, MVT::vAny, ~0, ~0, ~0);
break;
case Intrinsic::arm_neon_vqdmlal: // llvm.arm.neon.vqdmlal
case Intrinsic::arm_neon_vqdmlsl: // llvm.arm.neon.vqdmlsl
VerifyIntrinsicPrototype(ID, IF, 1, 3, MVT::vAny, ~0, ~(TruncatedElementVectorType | 0), ~(TruncatedElementVectorType | 0));
break;
case Intrinsic::arm_neon_vpadals: // llvm.arm.neon.vpadals
VerifyIntrinsicPrototype(ID, IF, 1, 2, MVT::vAny, ~0, MVT::vAny);
break;
case Intrinsic::arm_neon_vpadalu: // llvm.arm.neon.vpadalu
VerifyIntrinsicPrototype(ID, IF, 1, 2, MVT::vAny, ~0, MVT::vAny);
break;
case Intrinsic::arm_neon_vpaddls: // llvm.arm.neon.vpaddls
case Intrinsic::arm_neon_vpaddlu: // llvm.arm.neon.vpaddlu
VerifyIntrinsicPrototype(ID, IF, 1, 1, MVT::vAny, MVT::vAny);
break;
case Intrinsic::arm_neon_vld1: // llvm.arm.neon.vld1
VerifyIntrinsicPrototype(ID, IF, 1, 2, MVT::vAny, MVT::iPTR, MVT::i32);
break;
case Intrinsic::arm_neon_vld2: // llvm.arm.neon.vld2
VerifyIntrinsicPrototype(ID, IF, 2, 2, MVT::vAny, ~0, MVT::iPTR, MVT::i32);
break;
case Intrinsic::arm_neon_vld3: // llvm.arm.neon.vld3
VerifyIntrinsicPrototype(ID, IF, 3, 2, MVT::vAny, ~0, ~0, MVT::iPTR, MVT::i32);
break;
case Intrinsic::arm_neon_vld4: // llvm.arm.neon.vld4
VerifyIntrinsicPrototype(ID, IF, 4, 2, MVT::vAny, ~0, ~0, ~0, MVT::iPTR, MVT::i32);
break;
case Intrinsic::arm_neon_vld2lane: // llvm.arm.neon.vld2lane
VerifyIntrinsicPrototype(ID, IF, 2, 5, MVT::vAny, ~0, MVT::iPTR, ~0, ~0, MVT::i32, MVT::i32);
break;
case Intrinsic::arm_neon_vld3lane: // llvm.arm.neon.vld3lane
VerifyIntrinsicPrototype(ID, IF, 3, 6, MVT::vAny, ~0, ~0, MVT::iPTR, ~0, ~0, ~0, MVT::i32, MVT::i32);
break;
case Intrinsic::arm_neon_vld4lane: // llvm.arm.neon.vld4lane
VerifyIntrinsicPrototype(ID, IF, 4, 7, MVT::vAny, ~0, ~0, ~0, MVT::iPTR, ~0, ~0, ~0, ~0, MVT::i32, MVT::i32);
break;
case Intrinsic::MeasX: // llvm.MeasX
case Intrinsic::MeasZ: // llvm.MeasZ
VerifyIntrinsicPrototype(ID, IF, 1, 1, MVT::i1, MVT::iAny);
break;
case Intrinsic::invariant_start: // llvm.invariant.start
VerifyIntrinsicPrototype(ID, IF, 1, 2, MVT::iPTR, MVT::i64, MVT::iPTR);
break;
case Intrinsic::arm_vcvtr: // llvm.arm.vcvtr
case Intrinsic::arm_vcvtru: // llvm.arm.vcvtru
VerifyIntrinsicPrototype(ID, IF, 1, 1, MVT::f32, MVT::fAny);
break;
case Intrinsic::convert_from_fp16: // llvm.convert.from.fp16
VerifyIntrinsicPrototype(ID, IF, 1, 1, MVT::f32, MVT::i16);
break;
case Intrinsic::convert_to_fp16: // llvm.convert.to.fp16
VerifyIntrinsicPrototype(ID, IF, 1, 1, MVT::i16, MVT::f32);
break;
case Intrinsic::hexagon_C2_all8: // llvm.hexagon.C2.all8
case Intrinsic::hexagon_C2_any8: // llvm.hexagon.C2.any8
case Intrinsic::hexagon_C2_not: // llvm.hexagon.C2.not
case Intrinsic::hexagon_C2_pxfer_map: // llvm.hexagon.C2.pxfer.map
case Intrinsic::hexagon_C2_tfrrp: // llvm.hexagon.C2.tfrrp
VerifyIntrinsicPrototype(ID, IF, 1, 1, MVT::i1, MVT::i32);
break;
case Intrinsic::hexagon_C2_and: // llvm.hexagon.C2.and
case Intrinsic::hexagon_C2_andn: // llvm.hexagon.C2.andn
case Intrinsic::hexagon_C2_bitsclr: // llvm.hexagon.C2.bitsclr
case Intrinsic::hexagon_C2_bitsclri: // llvm.hexagon.C2.bitsclri
case Intrinsic::hexagon_C2_bitsset: // llvm.hexagon.C2.bitsset
case Intrinsic::hexagon_C2_cmpeq: // llvm.hexagon.C2.cmpeq
case Intrinsic::hexagon_C2_cmpeqi: // llvm.hexagon.C2.cmpeqi
case Intrinsic::hexagon_C2_cmpgei: // llvm.hexagon.C2.cmpgei
case Intrinsic::hexagon_C2_cmpgeui: // llvm.hexagon.C2.cmpgeui
case Intrinsic::hexagon_C2_cmpgt: // llvm.hexagon.C2.cmpgt
case Intrinsic::hexagon_C2_cmpgti: // llvm.hexagon.C2.cmpgti
case Intrinsic::hexagon_C2_cmpgtu: // llvm.hexagon.C2.cmpgtu
case Intrinsic::hexagon_C2_cmpgtui: // llvm.hexagon.C2.cmpgtui
case Intrinsic::hexagon_C2_cmplt: // llvm.hexagon.C2.cmplt
case Intrinsic::hexagon_C2_cmpltu: // llvm.hexagon.C2.cmpltu
case Intrinsic::hexagon_C2_or: // llvm.hexagon.C2.or
case Intrinsic::hexagon_C2_orn: // llvm.hexagon.C2.orn
case Intrinsic::hexagon_C2_xor: // llvm.hexagon.C2.xor
case Intrinsic::hexagon_C4_cmplte: // llvm.hexagon.C4.cmplte
case Intrinsic::hexagon_C4_cmpltei: // llvm.hexagon.C4.cmpltei
case Intrinsic::hexagon_C4_cmplteu: // llvm.hexagon.C4.cmplteu
case Intrinsic::hexagon_C4_cmplteui: // llvm.hexagon.C4.cmplteui
case Intrinsic::hexagon_C4_cmpneq: // llvm.hexagon.C4.cmpneq
case Intrinsic::hexagon_C4_cmpneqi: // llvm.hexagon.C4.cmpneqi
case Intrinsic::hexagon_C4_fastcorner9: // llvm.hexagon.C4.fastcorner9
case Intrinsic::hexagon_C4_fastcorner9_not: // llvm.hexagon.C4.fastcorner9.not
case Intrinsic::hexagon_S2_tstbit_i: // llvm.hexagon.S2.tstbit.i
case Intrinsic::hexagon_S2_tstbit_r: // llvm.hexagon.S2.tstbit.r
VerifyIntrinsicPrototype(ID, IF, 1, 2, MVT::i1, MVT::i32, MVT::i32);
break;
case Intrinsic::hexagon_C4_and_and: // llvm.hexagon.C4.and.and
case Intrinsic::hexagon_C4_and_andn: // llvm.hexagon.C4.and.andn
case Intrinsic::hexagon_C4_and_or: // llvm.hexagon.C4.and.or
case Intrinsic::hexagon_C4_and_orn: // llvm.hexagon.C4.and.orn
case Intrinsic::hexagon_C4_or_and: // llvm.hexagon.C4.or.and
case Intrinsic::hexagon_C4_or_andn: // llvm.hexagon.C4.or.andn
case Intrinsic::hexagon_C4_or_or: // llvm.hexagon.C4.or.or
case Intrinsic::hexagon_C4_or_orn: // llvm.hexagon.C4.or.orn
VerifyIntrinsicPrototype(ID, IF, 1, 3, MVT::i1, MVT::i32, MVT::i32, MVT::i32);
break;
case Intrinsic::hexagon_A2_vcmpbeq: // llvm.hexagon.A2.vcmpbeq
case Intrinsic::hexagon_A2_vcmpbgtu: // llvm.hexagon.A2.vcmpbgtu
case Intrinsic::hexagon_A2_vcmpheq: // llvm.hexagon.A2.vcmpheq
case Intrinsic::hexagon_A2_vcmphgt: // llvm.hexagon.A2.vcmphgt
case Intrinsic::hexagon_A2_vcmphgtu: // llvm.hexagon.A2.vcmphgtu
case Intrinsic::hexagon_A2_vcmpweq: // llvm.hexagon.A2.vcmpweq
case Intrinsic::hexagon_A2_vcmpwgt: // llvm.hexagon.A2.vcmpwgt
case Intrinsic::hexagon_A2_vcmpwgtu: // llvm.hexagon.A2.vcmpwgtu
case Intrinsic::hexagon_C2_cmpeqp: // llvm.hexagon.C2.cmpeqp
case Intrinsic::hexagon_C2_cmpgtp: // llvm.hexagon.C2.cmpgtp
case Intrinsic::hexagon_C2_cmpgtup: // llvm.hexagon.C2.cmpgtup
VerifyIntrinsicPrototype(ID, IF, 1, 2, MVT::i1, MVT::i64, MVT::i64);
break;
case Intrinsic::arm_get_fpscr: // llvm.arm.get.fpscr
case Intrinsic::flt_rounds: // llvm.flt.rounds
case Intrinsic::ptx_read_clock: // llvm.ptx.read.clock
case Intrinsic::ptx_read_ctaid_w: // llvm.ptx.read.ctaid.w
case Intrinsic::ptx_read_ctaid_x: // llvm.ptx.read.ctaid.x
case Intrinsic::ptx_read_ctaid_y: // llvm.ptx.read.ctaid.y
case Intrinsic::ptx_read_ctaid_z: // llvm.ptx.read.ctaid.z
case Intrinsic::ptx_read_gridid: // llvm.ptx.read.gridid
case Intrinsic::ptx_read_laneid: // llvm.ptx.read.laneid
case Intrinsic::ptx_read_lanemask_eq: // llvm.ptx.read.lanemask.eq
case Intrinsic::ptx_read_lanemask_ge: // llvm.ptx.read.lanemask.ge
case Intrinsic::ptx_read_lanemask_gt: // llvm.ptx.read.lanemask.gt
case Intrinsic::ptx_read_lanemask_le: // llvm.ptx.read.lanemask.le
case Intrinsic::ptx_read_lanemask_lt: // llvm.ptx.read.lanemask.lt
case Intrinsic::ptx_read_nctaid_w: // llvm.ptx.read.nctaid.w
case Intrinsic::ptx_read_nctaid_x: // llvm.ptx.read.nctaid.x
case Intrinsic::ptx_read_nctaid_y: // llvm.ptx.read.nctaid.y
case Intrinsic::ptx_read_nctaid_z: // llvm.ptx.read.nctaid.z
case Intrinsic::ptx_read_nsmid: // llvm.ptx.read.nsmid
case Intrinsic::ptx_read_ntid_w: // llvm.ptx.read.ntid.w
case Intrinsic::ptx_read_ntid_x: // llvm.ptx.read.ntid.x
case Intrinsic::ptx_read_ntid_y: // llvm.ptx.read.ntid.y
case Intrinsic::ptx_read_ntid_z: // llvm.ptx.read.ntid.z
case Intrinsic::ptx_read_nwarpid: // llvm.ptx.read.nwarpid
case Intrinsic::ptx_read_pm0: // llvm.ptx.read.pm0
case Intrinsic::ptx_read_pm1: // llvm.ptx.read.pm1
case Intrinsic::ptx_read_pm2: // llvm.ptx.read.pm2
case Intrinsic::ptx_read_pm3: // llvm.ptx.read.pm3
case Intrinsic::ptx_read_smid: // llvm.ptx.read.smid
case Intrinsic::ptx_read_tid_w: // llvm.ptx.read.tid.w
case Intrinsic::ptx_read_tid_x: // llvm.ptx.read.tid.x
case Intrinsic::ptx_read_tid_y: // llvm.ptx.read.tid.y
case Intrinsic::ptx_read_tid_z: // llvm.ptx.read.tid.z
case Intrinsic::ptx_read_warpid: // llvm.ptx.read.warpid
case Intrinsic::x86_rdfsbase_32: // llvm.x86.rdfsbase.32
case Intrinsic::x86_rdgsbase_32: // llvm.x86.rdgsbase.32
case Intrinsic::xcore_geted: // llvm.xcore.geted
case Intrinsic::xcore_getet: // llvm.xcore.getet
case Intrinsic::xcore_getid: // llvm.xcore.getid
VerifyIntrinsicPrototype(ID, IF, 1, 0, MVT::i32);
break;
case Intrinsic::xcore_endin: // llvm.xcore.endin
case Intrinsic::xcore_getts: // llvm.xcore.getts
case Intrinsic::xcore_in: // llvm.xcore.in
case Intrinsic::xcore_inct: // llvm.xcore.inct
case Intrinsic::xcore_int: // llvm.xcore.int
case Intrinsic::xcore_peek: // llvm.xcore.peek
case Intrinsic::xcore_testct: // llvm.xcore.testct
case Intrinsic::xcore_testwct: // llvm.xcore.testwct
VerifyIntrinsicPrototype(ID, IF, 1, 1, MVT::i32, MVT::iPTRAny);
break;
case Intrinsic::xcore_inshr: // llvm.xcore.inshr
case Intrinsic::xcore_outshr: // llvm.xcore.outshr
VerifyIntrinsicPrototype(ID, IF, 1, 2, MVT::i32, MVT::iPTRAny, MVT::i32);
break;
case Intrinsic::hexagon_A2_abs: // llvm.hexagon.A2.abs
case Intrinsic::hexagon_A2_abssat: // llvm.hexagon.A2.abssat
case Intrinsic::hexagon_A2_aslh: // llvm.hexagon.A2.aslh
case Intrinsic::hexagon_A2_asrh: // llvm.hexagon.A2.asrh
case Intrinsic::hexagon_A2_neg: // llvm.hexagon.A2.neg
case Intrinsic::hexagon_A2_negsat: // llvm.hexagon.A2.negsat
case Intrinsic::hexagon_A2_not: // llvm.hexagon.A2.not
case Intrinsic::hexagon_A2_satb: // llvm.hexagon.A2.satb
case Intrinsic::hexagon_A2_sath: // llvm.hexagon.A2.sath
case Intrinsic::hexagon_A2_satub: // llvm.hexagon.A2.satub
case Intrinsic::hexagon_A2_satuh: // llvm.hexagon.A2.satuh
case Intrinsic::hexagon_A2_swiz: // llvm.hexagon.A2.swiz
case Intrinsic::hexagon_A2_sxtb: // llvm.hexagon.A2.sxtb
case Intrinsic::hexagon_A2_sxth: // llvm.hexagon.A2.sxth
case Intrinsic::hexagon_A2_tfr: // llvm.hexagon.A2.tfr
case Intrinsic::hexagon_A2_tfrsi: // llvm.hexagon.A2.tfrsi
case Intrinsic::hexagon_A2_zxtb: // llvm.hexagon.A2.zxtb
case Intrinsic::hexagon_A2_zxth: // llvm.hexagon.A2.zxth
case Intrinsic::hexagon_C2_tfrpr: // llvm.hexagon.C2.tfrpr
case Intrinsic::hexagon_S2_brev: // llvm.hexagon.S2.brev
case Intrinsic::hexagon_S2_cl0: // llvm.hexagon.S2.cl0
case Intrinsic::hexagon_S2_cl1: // llvm.hexagon.S2.cl1
case Intrinsic::hexagon_S2_clb: // llvm.hexagon.S2.clb
case Intrinsic::hexagon_S2_clbnorm: // llvm.hexagon.S2.clbnorm
case Intrinsic::hexagon_S2_ct0: // llvm.hexagon.S2.ct0
case Intrinsic::hexagon_S2_ct1: // llvm.hexagon.S2.ct1
case Intrinsic::hexagon_S2_svsathb: // llvm.hexagon.S2.svsathb
case Intrinsic::hexagon_S2_svsathub: // llvm.hexagon.S2.svsathub
case Intrinsic::hexagon_S2_vsplatrb: // llvm.hexagon.S2.vsplatrb
case Intrinsic::hexagon_SI_to_SXTHI_asrh: // llvm.hexagon.SI.to.SXTHI.asrh
case Intrinsic::xcore_bitrev: // llvm.xcore.bitrev
case Intrinsic::xcore_getps: // llvm.xcore.getps
VerifyIntrinsicPrototype(ID, IF, 1, 1, MVT::i32, MVT::i32);
break;
case Intrinsic::x86_sse42_crc32_32_16: // llvm.x86.sse42.crc32.32.16
VerifyIntrinsicPrototype(ID, IF, 1, 2, MVT::i32, MVT::i32, MVT::i16);
break;
case Intrinsic::arm_qadd: // llvm.arm.qadd
case Intrinsic::arm_qsub: // llvm.arm.qsub
case Intrinsic::arm_ssat: // llvm.arm.ssat
case Intrinsic::arm_usat: // llvm.arm.usat
case Intrinsic::hexagon_A2_add: // llvm.hexagon.A2.add
case Intrinsic::hexagon_A2_addh_h16_hh: // llvm.hexagon.A2.addh.h16.hh
case Intrinsic::hexagon_A2_addh_h16_hl: // llvm.hexagon.A2.addh.h16.hl
case Intrinsic::hexagon_A2_addh_h16_lh: // llvm.hexagon.A2.addh.h16.lh
case Intrinsic::hexagon_A2_addh_h16_ll: // llvm.hexagon.A2.addh.h16.ll
case Intrinsic::hexagon_A2_addh_h16_sat_hh: // llvm.hexagon.A2.addh.h16.sat.hh
case Intrinsic::hexagon_A2_addh_h16_sat_hl: // llvm.hexagon.A2.addh.h16.sat.hl
case Intrinsic::hexagon_A2_addh_h16_sat_lh: // llvm.hexagon.A2.addh.h16.sat.lh
case Intrinsic::hexagon_A2_addh_h16_sat_ll: // llvm.hexagon.A2.addh.h16.sat.ll
case Intrinsic::hexagon_A2_addh_l16_hh: // llvm.hexagon.A2.addh.l16.hh
case Intrinsic::hexagon_A2_addh_l16_hl: // llvm.hexagon.A2.addh.l16.hl
case Intrinsic::hexagon_A2_addh_l16_lh: // llvm.hexagon.A2.addh.l16.lh
case Intrinsic::hexagon_A2_addh_l16_ll: // llvm.hexagon.A2.addh.l16.ll
case Intrinsic::hexagon_A2_addh_l16_sat_hh: // llvm.hexagon.A2.addh.l16.sat.hh
case Intrinsic::hexagon_A2_addh_l16_sat_hl: // llvm.hexagon.A2.addh.l16.sat.hl
case Intrinsic::hexagon_A2_addh_l16_sat_lh: // llvm.hexagon.A2.addh.l16.sat.lh
case Intrinsic::hexagon_A2_addh_l16_sat_ll: // llvm.hexagon.A2.addh.l16.sat.ll
case Intrinsic::hexagon_A2_addi: // llvm.hexagon.A2.addi
case Intrinsic::hexagon_A2_addsat: // llvm.hexagon.A2.addsat
case Intrinsic::hexagon_A2_and: // llvm.hexagon.A2.and
case Intrinsic::hexagon_A2_andir: // llvm.hexagon.A2.andir
case Intrinsic::hexagon_A2_combine_hh: // llvm.hexagon.A2.combine.hh
case Intrinsic::hexagon_A2_combine_hl: // llvm.hexagon.A2.combine.hl
case Intrinsic::hexagon_A2_combine_lh: // llvm.hexagon.A2.combine.lh
case Intrinsic::hexagon_A2_combine_ll: // llvm.hexagon.A2.combine.ll
case Intrinsic::hexagon_A2_max: // llvm.hexagon.A2.max
case Intrinsic::hexagon_A2_maxu: // llvm.hexagon.A2.maxu
case Intrinsic::hexagon_A2_min: // llvm.hexagon.A2.min
case Intrinsic::hexagon_A2_minu: // llvm.hexagon.A2.minu
case Intrinsic::hexagon_A2_or: // llvm.hexagon.A2.or
case Intrinsic::hexagon_A2_orir: // llvm.hexagon.A2.orir
case Intrinsic::hexagon_A2_sub: // llvm.hexagon.A2.sub
case Intrinsic::hexagon_A2_subh_h16_hh: // llvm.hexagon.A2.subh.h16.hh
case Intrinsic::hexagon_A2_subh_h16_hl: // llvm.hexagon.A2.subh.h16.hl
case Intrinsic::hexagon_A2_subh_h16_lh: // llvm.hexagon.A2.subh.h16.lh
case Intrinsic::hexagon_A2_subh_h16_ll: // llvm.hexagon.A2.subh.h16.ll
case Intrinsic::hexagon_A2_subh_h16_sat_hh: // llvm.hexagon.A2.subh.h16.sat.hh
case Intrinsic::hexagon_A2_subh_h16_sat_hl: // llvm.hexagon.A2.subh.h16.sat.hl
case Intrinsic::hexagon_A2_subh_h16_sat_lh: // llvm.hexagon.A2.subh.h16.sat.lh
case Intrinsic::hexagon_A2_subh_h16_sat_ll: // llvm.hexagon.A2.subh.h16.sat.ll
case Intrinsic::hexagon_A2_subh_l16_hl: // llvm.hexagon.A2.subh.l16.hl
case Intrinsic::hexagon_A2_subh_l16_ll: // llvm.hexagon.A2.subh.l16.ll
case Intrinsic::hexagon_A2_subh_l16_sat_hl: // llvm.hexagon.A2.subh.l16.sat.hl
case Intrinsic::hexagon_A2_subh_l16_sat_ll: // llvm.hexagon.A2.subh.l16.sat.ll
case Intrinsic::hexagon_A2_subri: // llvm.hexagon.A2.subri
case Intrinsic::hexagon_A2_subsat: // llvm.hexagon.A2.subsat
case Intrinsic::hexagon_A2_svaddh: // llvm.hexagon.A2.svaddh
case Intrinsic::hexagon_A2_svaddhs: // llvm.hexagon.A2.svaddhs
case Intrinsic::hexagon_A2_svadduhs: // llvm.hexagon.A2.svadduhs
case Intrinsic::hexagon_A2_svavgh: // llvm.hexagon.A2.svavgh
case Intrinsic::hexagon_A2_svavghs: // llvm.hexagon.A2.svavghs
case Intrinsic::hexagon_A2_svnavgh: // llvm.hexagon.A2.svnavgh
case Intrinsic::hexagon_A2_svsubh: // llvm.hexagon.A2.svsubh
case Intrinsic::hexagon_A2_svsubhs: // llvm.hexagon.A2.svsubhs
case Intrinsic::hexagon_A2_svsubuhs: // llvm.hexagon.A2.svsubuhs
case Intrinsic::hexagon_A2_tfrih: // llvm.hexagon.A2.tfrih
case Intrinsic::hexagon_A2_tfril: // llvm.hexagon.A2.tfril
case Intrinsic::hexagon_A2_xor: // llvm.hexagon.A2.xor
case Intrinsic::hexagon_A4_andn: // llvm.hexagon.A4.andn
case Intrinsic::hexagon_A4_cround_ri: // llvm.hexagon.A4.cround.ri
case Intrinsic::hexagon_A4_cround_rr: // llvm.hexagon.A4.cround.rr
case Intrinsic::hexagon_A4_modwrapu: // llvm.hexagon.A4.modwrapu
case Intrinsic::hexagon_A4_orn: // llvm.hexagon.A4.orn
case Intrinsic::hexagon_A4_rcmpeq: // llvm.hexagon.A4.rcmpeq
case Intrinsic::hexagon_A4_rcmpeqi: // llvm.hexagon.A4.rcmpeqi
case Intrinsic::hexagon_A4_rcmpneq: // llvm.hexagon.A4.rcmpneq
case Intrinsic::hexagon_A4_rcmpneqi: // llvm.hexagon.A4.rcmpneqi
case Intrinsic::hexagon_A4_round_ri: // llvm.hexagon.A4.round.ri
case Intrinsic::hexagon_A4_round_ri_sat: // llvm.hexagon.A4.round.ri.sat
case Intrinsic::hexagon_A4_round_rr: // llvm.hexagon.A4.round.rr
case Intrinsic::hexagon_A4_round_rr_sat: // llvm.hexagon.A4.round.rr.sat
case Intrinsic::hexagon_C2_vitpack: // llvm.hexagon.C2.vitpack
case Intrinsic::hexagon_M2_cmpyrs_s0: // llvm.hexagon.M2.cmpyrs.s0
case Intrinsic::hexagon_M2_cmpyrs_s1: // llvm.hexagon.M2.cmpyrs.s1
case Intrinsic::hexagon_M2_cmpyrsc_s0: // llvm.hexagon.M2.cmpyrsc.s0
case Intrinsic::hexagon_M2_cmpyrsc_s1: // llvm.hexagon.M2.cmpyrsc.s1
case Intrinsic::hexagon_M2_dpmpyss_rnd_s0: // llvm.hexagon.M2.dpmpyss.rnd.s0
case Intrinsic::hexagon_M2_hmmpyh_rs1: // llvm.hexagon.M2.hmmpyh.rs1
case Intrinsic::hexagon_M2_hmmpyl_rs1: // llvm.hexagon.M2.hmmpyl.rs1
case Intrinsic::hexagon_M2_mpy_hh_s0: // llvm.hexagon.M2.mpy.hh.s0
case Intrinsic::hexagon_M2_mpy_hh_s1: // llvm.hexagon.M2.mpy.hh.s1
case Intrinsic::hexagon_M2_mpy_hl_s0: // llvm.hexagon.M2.mpy.hl.s0
case Intrinsic::hexagon_M2_mpy_hl_s1: // llvm.hexagon.M2.mpy.hl.s1
case Intrinsic::hexagon_M2_mpy_lh_s0: // llvm.hexagon.M2.mpy.lh.s0
case Intrinsic::hexagon_M2_mpy_lh_s1: // llvm.hexagon.M2.mpy.lh.s1
case Intrinsic::hexagon_M2_mpy_ll_s0: // llvm.hexagon.M2.mpy.ll.s0
case Intrinsic::hexagon_M2_mpy_ll_s1: // llvm.hexagon.M2.mpy.ll.s1
case Intrinsic::hexagon_M2_mpy_rnd_hh_s0: // llvm.hexagon.M2.mpy.rnd.hh.s0
case Intrinsic::hexagon_M2_mpy_rnd_hh_s1: // llvm.hexagon.M2.mpy.rnd.hh.s1
case Intrinsic::hexagon_M2_mpy_rnd_hl_s0: // llvm.hexagon.M2.mpy.rnd.hl.s0
case Intrinsic::hexagon_M2_mpy_rnd_hl_s1: // llvm.hexagon.M2.mpy.rnd.hl.s1
case Intrinsic::hexagon_M2_mpy_rnd_lh_s0: // llvm.hexagon.M2.mpy.rnd.lh.s0
case Intrinsic::hexagon_M2_mpy_rnd_lh_s1: // llvm.hexagon.M2.mpy.rnd.lh.s1
case Intrinsic::hexagon_M2_mpy_rnd_ll_s0: // llvm.hexagon.M2.mpy.rnd.ll.s0
case Intrinsic::hexagon_M2_mpy_rnd_ll_s1: // llvm.hexagon.M2.mpy.rnd.ll.s1
case Intrinsic::hexagon_M2_mpy_sat_hh_s0: // llvm.hexagon.M2.mpy.sat.hh.s0
case Intrinsic::hexagon_M2_mpy_sat_hh_s1: // llvm.hexagon.M2.mpy.sat.hh.s1
case Intrinsic::hexagon_M2_mpy_sat_hl_s0: // llvm.hexagon.M2.mpy.sat.hl.s0
case Intrinsic::hexagon_M2_mpy_sat_hl_s1: // llvm.hexagon.M2.mpy.sat.hl.s1
case Intrinsic::hexagon_M2_mpy_sat_lh_s0: // llvm.hexagon.M2.mpy.sat.lh.s0
case Intrinsic::hexagon_M2_mpy_sat_lh_s1: // llvm.hexagon.M2.mpy.sat.lh.s1
case Intrinsic::hexagon_M2_mpy_sat_ll_s0: // llvm.hexagon.M2.mpy.sat.ll.s0
case Intrinsic::hexagon_M2_mpy_sat_ll_s1: // llvm.hexagon.M2.mpy.sat.ll.s1
case Intrinsic::hexagon_M2_mpy_sat_rnd_hh_s0: // llvm.hexagon.M2.mpy.sat.rnd.hh.s0
case Intrinsic::hexagon_M2_mpy_sat_rnd_hh_s1: // llvm.hexagon.M2.mpy.sat.rnd.hh.s1
case Intrinsic::hexagon_M2_mpy_sat_rnd_hl_s0: // llvm.hexagon.M2.mpy.sat.rnd.hl.s0
case Intrinsic::hexagon_M2_mpy_sat_rnd_hl_s1: // llvm.hexagon.M2.mpy.sat.rnd.hl.s1
case Intrinsic::hexagon_M2_mpy_sat_rnd_lh_s0: // llvm.hexagon.M2.mpy.sat.rnd.lh.s0
case Intrinsic::hexagon_M2_mpy_sat_rnd_lh_s1: // llvm.hexagon.M2.mpy.sat.rnd.lh.s1
case Intrinsic::hexagon_M2_mpy_sat_rnd_ll_s0: // llvm.hexagon.M2.mpy.sat.rnd.ll.s0
case Intrinsic::hexagon_M2_mpy_sat_rnd_ll_s1: // llvm.hexagon.M2.mpy.sat.rnd.ll.s1
case Intrinsic::hexagon_M2_mpy_up: // llvm.hexagon.M2.mpy.up
case Intrinsic::hexagon_M2_mpyi: // llvm.hexagon.M2.mpyi
case Intrinsic::hexagon_M2_mpysmi: // llvm.hexagon.M2.mpysmi
case Intrinsic::hexagon_M2_mpyu_hh_s0: // llvm.hexagon.M2.mpyu.hh.s0
case Intrinsic::hexagon_M2_mpyu_hh_s1: // llvm.hexagon.M2.mpyu.hh.s1
case Intrinsic::hexagon_M2_mpyu_hl_s0: // llvm.hexagon.M2.mpyu.hl.s0
case Intrinsic::hexagon_M2_mpyu_hl_s1: // llvm.hexagon.M2.mpyu.hl.s1
case Intrinsic::hexagon_M2_mpyu_lh_s0: // llvm.hexagon.M2.mpyu.lh.s0
case Intrinsic::hexagon_M2_mpyu_lh_s1: // llvm.hexagon.M2.mpyu.lh.s1
case Intrinsic::hexagon_M2_mpyu_ll_s0: // llvm.hexagon.M2.mpyu.ll.s0
case Intrinsic::hexagon_M2_mpyu_ll_s1: // llvm.hexagon.M2.mpyu.ll.s1
case Intrinsic::hexagon_M2_mpyu_up: // llvm.hexagon.M2.mpyu.up
case Intrinsic::hexagon_M2_mpyui: // llvm.hexagon.M2.mpyui
case Intrinsic::hexagon_M2_vmpy2s_s0pack: // llvm.hexagon.M2.vmpy2s.s0pack
case Intrinsic::hexagon_M2_vmpy2s_s1pack: // llvm.hexagon.M2.vmpy2s.s1pack
case Intrinsic::hexagon_S2_asl_i_r: // llvm.hexagon.S2.asl.i.r
case Intrinsic::hexagon_S2_asl_i_r_sat: // llvm.hexagon.S2.asl.i.r.sat
case Intrinsic::hexagon_S2_asl_r_r: // llvm.hexagon.S2.asl.r.r
case Intrinsic::hexagon_S2_asl_r_r_sat: // llvm.hexagon.S2.asl.r.r.sat
case Intrinsic::hexagon_S2_asr_i_r: // llvm.hexagon.S2.asr.i.r
case Intrinsic::hexagon_S2_asr_i_r_rnd: // llvm.hexagon.S2.asr.i.r.rnd
case Intrinsic::hexagon_S2_asr_i_r_rnd_goodsyntax: // llvm.hexagon.S2.asr.i.r.rnd.goodsyntax
case Intrinsic::hexagon_S2_asr_r_r: // llvm.hexagon.S2.asr.r.r
case Intrinsic::hexagon_S2_asr_r_r_sat: // llvm.hexagon.S2.asr.r.r.sat
case Intrinsic::hexagon_S2_clrbit_i: // llvm.hexagon.S2.clrbit.i
case Intrinsic::hexagon_S2_clrbit_r: // llvm.hexagon.S2.clrbit.r
case Intrinsic::hexagon_S2_lsl_r_r: // llvm.hexagon.S2.lsl.r.r
case Intrinsic::hexagon_S2_lsr_i_r: // llvm.hexagon.S2.lsr.i.r
case Intrinsic::hexagon_S2_lsr_r_r: // llvm.hexagon.S2.lsr.r.r
case Intrinsic::hexagon_S2_setbit_i: // llvm.hexagon.S2.setbit.i
case Intrinsic::hexagon_S2_setbit_r: // llvm.hexagon.S2.setbit.r
case Intrinsic::hexagon_S2_togglebit_i: // llvm.hexagon.S2.togglebit.i
case Intrinsic::hexagon_S2_togglebit_r: // llvm.hexagon.S2.togglebit.r
case Intrinsic::x86_bmi_bextr_32: // llvm.x86.bmi.bextr.32
case Intrinsic::x86_bmi_bzhi_32: // llvm.x86.bmi.bzhi.32
case Intrinsic::x86_bmi_pdep_32: // llvm.x86.bmi.pdep.32
case Intrinsic::x86_bmi_pext_32: // llvm.x86.bmi.pext.32
case Intrinsic::x86_sse42_crc32_32_32: // llvm.x86.sse42.crc32.32.32
case Intrinsic::xcore_sext: // llvm.xcore.sext
case Intrinsic::xcore_zext: // llvm.xcore.zext
VerifyIntrinsicPrototype(ID, IF, 1, 2, MVT::i32, MVT::i32, MVT::i32);
break;
case Intrinsic::hexagon_C2_mux: // llvm.hexagon.C2.mux
case Intrinsic::hexagon_C2_muxii: // llvm.hexagon.C2.muxii
case Intrinsic::hexagon_C2_muxir: // llvm.hexagon.C2.muxir
case Intrinsic::hexagon_C2_muxri: // llvm.hexagon.C2.muxri
case Intrinsic::hexagon_M2_acci: // llvm.hexagon.M2.acci
case Intrinsic::hexagon_M2_accii: // llvm.hexagon.M2.accii
case Intrinsic::hexagon_M2_maci: // llvm.hexagon.M2.maci
case Intrinsic::hexagon_M2_macsin: // llvm.hexagon.M2.macsin
case Intrinsic::hexagon_M2_macsip: // llvm.hexagon.M2.macsip
case Intrinsic::hexagon_M2_mpy_acc_hh_s0: // llvm.hexagon.M2.mpy.acc.hh.s0
case Intrinsic::hexagon_M2_mpy_acc_hh_s1: // llvm.hexagon.M2.mpy.acc.hh.s1
case Intrinsic::hexagon_M2_mpy_acc_hl_s0: // llvm.hexagon.M2.mpy.acc.hl.s0
case Intrinsic::hexagon_M2_mpy_acc_hl_s1: // llvm.hexagon.M2.mpy.acc.hl.s1
case Intrinsic::hexagon_M2_mpy_acc_lh_s0: // llvm.hexagon.M2.mpy.acc.lh.s0
case Intrinsic::hexagon_M2_mpy_acc_lh_s1: // llvm.hexagon.M2.mpy.acc.lh.s1
case Intrinsic::hexagon_M2_mpy_acc_ll_s0: // llvm.hexagon.M2.mpy.acc.ll.s0
case Intrinsic::hexagon_M2_mpy_acc_ll_s1: // llvm.hexagon.M2.mpy.acc.ll.s1
case Intrinsic::hexagon_M2_mpy_acc_sat_hh_s0: // llvm.hexagon.M2.mpy.acc.sat.hh.s0
case Intrinsic::hexagon_M2_mpy_acc_sat_hh_s1: // llvm.hexagon.M2.mpy.acc.sat.hh.s1
case Intrinsic::hexagon_M2_mpy_acc_sat_hl_s0: // llvm.hexagon.M2.mpy.acc.sat.hl.s0
case Intrinsic::hexagon_M2_mpy_acc_sat_hl_s1: // llvm.hexagon.M2.mpy.acc.sat.hl.s1
case Intrinsic::hexagon_M2_mpy_acc_sat_lh_s0: // llvm.hexagon.M2.mpy.acc.sat.lh.s0
case Intrinsic::hexagon_M2_mpy_acc_sat_lh_s1: // llvm.hexagon.M2.mpy.acc.sat.lh.s1
case Intrinsic::hexagon_M2_mpy_acc_sat_ll_s0: // llvm.hexagon.M2.mpy.acc.sat.ll.s0
case Intrinsic::hexagon_M2_mpy_acc_sat_ll_s1: // llvm.hexagon.M2.mpy.acc.sat.ll.s1
case Intrinsic::hexagon_M2_mpy_nac_hh_s0: // llvm.hexagon.M2.mpy.nac.hh.s0
case Intrinsic::hexagon_M2_mpy_nac_hh_s1: // llvm.hexagon.M2.mpy.nac.hh.s1
case Intrinsic::hexagon_M2_mpy_nac_hl_s0: // llvm.hexagon.M2.mpy.nac.hl.s0
case Intrinsic::hexagon_M2_mpy_nac_hl_s1: // llvm.hexagon.M2.mpy.nac.hl.s1
case Intrinsic::hexagon_M2_mpy_nac_lh_s0: // llvm.hexagon.M2.mpy.nac.lh.s0
case Intrinsic::hexagon_M2_mpy_nac_lh_s1: // llvm.hexagon.M2.mpy.nac.lh.s1
case Intrinsic::hexagon_M2_mpy_nac_ll_s0: // llvm.hexagon.M2.mpy.nac.ll.s0
case Intrinsic::hexagon_M2_mpy_nac_ll_s1: // llvm.hexagon.M2.mpy.nac.ll.s1
case Intrinsic::hexagon_M2_mpy_nac_sat_hh_s0: // llvm.hexagon.M2.mpy.nac.sat.hh.s0
case Intrinsic::hexagon_M2_mpy_nac_sat_hh_s1: // llvm.hexagon.M2.mpy.nac.sat.hh.s1
case Intrinsic::hexagon_M2_mpy_nac_sat_hl_s0: // llvm.hexagon.M2.mpy.nac.sat.hl.s0
case Intrinsic::hexagon_M2_mpy_nac_sat_hl_s1: // llvm.hexagon.M2.mpy.nac.sat.hl.s1
case Intrinsic::hexagon_M2_mpy_nac_sat_lh_s0: // llvm.hexagon.M2.mpy.nac.sat.lh.s0
case Intrinsic::hexagon_M2_mpy_nac_sat_lh_s1: // llvm.hexagon.M2.mpy.nac.sat.lh.s1
case Intrinsic::hexagon_M2_mpy_nac_sat_ll_s0: // llvm.hexagon.M2.mpy.nac.sat.ll.s0
case Intrinsic::hexagon_M2_mpy_nac_sat_ll_s1: // llvm.hexagon.M2.mpy.nac.sat.ll.s1
case Intrinsic::hexagon_M2_mpyu_acc_hh_s0: // llvm.hexagon.M2.mpyu.acc.hh.s0
case Intrinsic::hexagon_M2_mpyu_acc_hh_s1: // llvm.hexagon.M2.mpyu.acc.hh.s1
case Intrinsic::hexagon_M2_mpyu_acc_hl_s0: // llvm.hexagon.M2.mpyu.acc.hl.s0
case Intrinsic::hexagon_M2_mpyu_acc_hl_s1: // llvm.hexagon.M2.mpyu.acc.hl.s1
case Intrinsic::hexagon_M2_mpyu_acc_lh_s0: // llvm.hexagon.M2.mpyu.acc.lh.s0
case Intrinsic::hexagon_M2_mpyu_acc_lh_s1: // llvm.hexagon.M2.mpyu.acc.lh.s1
case Intrinsic::hexagon_M2_mpyu_acc_ll_s0: // llvm.hexagon.M2.mpyu.acc.ll.s0
case Intrinsic::hexagon_M2_mpyu_acc_ll_s1: // llvm.hexagon.M2.mpyu.acc.ll.s1
case Intrinsic::hexagon_M2_mpyu_nac_hh_s0: // llvm.hexagon.M2.mpyu.nac.hh.s0
case Intrinsic::hexagon_M2_mpyu_nac_hh_s1: // llvm.hexagon.M2.mpyu.nac.hh.s1
case Intrinsic::hexagon_M2_mpyu_nac_hl_s0: // llvm.hexagon.M2.mpyu.nac.hl.s0
case Intrinsic::hexagon_M2_mpyu_nac_hl_s1: // llvm.hexagon.M2.mpyu.nac.hl.s1
case Intrinsic::hexagon_M2_mpyu_nac_lh_s0: // llvm.hexagon.M2.mpyu.nac.lh.s0
case Intrinsic::hexagon_M2_mpyu_nac_lh_s1: // llvm.hexagon.M2.mpyu.nac.lh.s1
case Intrinsic::hexagon_M2_mpyu_nac_ll_s0: // llvm.hexagon.M2.mpyu.nac.ll.s0
case Intrinsic::hexagon_M2_mpyu_nac_ll_s1: // llvm.hexagon.M2.mpyu.nac.ll.s1
case Intrinsic::hexagon_M2_nacci: // llvm.hexagon.M2.nacci
case Intrinsic::hexagon_M2_naccii: // llvm.hexagon.M2.naccii
case Intrinsic::hexagon_M2_subacc: // llvm.hexagon.M2.subacc
case Intrinsic::hexagon_M2_xor_xacc: // llvm.hexagon.M2.xor.xacc
case Intrinsic::hexagon_M4_and_and: // llvm.hexagon.M4.and.and
case Intrinsic::hexagon_M4_and_andn: // llvm.hexagon.M4.and.andn
case Intrinsic::hexagon_M4_and_or: // llvm.hexagon.M4.and.or
case Intrinsic::hexagon_M4_and_xor: // llvm.hexagon.M4.and.xor
case Intrinsic::hexagon_M4_or_and: // llvm.hexagon.M4.or.and
case Intrinsic::hexagon_M4_or_andn: // llvm.hexagon.M4.or.andn
case Intrinsic::hexagon_M4_or_or: // llvm.hexagon.M4.or.or
case Intrinsic::hexagon_M4_or_xor: // llvm.hexagon.M4.or.xor
case Intrinsic::hexagon_M4_xor_and: // llvm.hexagon.M4.xor.and
case Intrinsic::hexagon_M4_xor_andn: // llvm.hexagon.M4.xor.andn
case Intrinsic::hexagon_M4_xor_or: // llvm.hexagon.M4.xor.or
case Intrinsic::hexagon_S2_addasl_rrri: // llvm.hexagon.S2.addasl.rrri
case Intrinsic::hexagon_S2_asl_i_r_acc: // llvm.hexagon.S2.asl.i.r.acc
case Intrinsic::hexagon_S2_asl_i_r_and: // llvm.hexagon.S2.asl.i.r.and
case Intrinsic::hexagon_S2_asl_i_r_nac: // llvm.hexagon.S2.asl.i.r.nac
case Intrinsic::hexagon_S2_asl_i_r_or: // llvm.hexagon.S2.asl.i.r.or
case Intrinsic::hexagon_S2_asl_i_r_xacc: // llvm.hexagon.S2.asl.i.r.xacc
case Intrinsic::hexagon_S2_asl_r_r_acc: // llvm.hexagon.S2.asl.r.r.acc
case Intrinsic::hexagon_S2_asl_r_r_and: // llvm.hexagon.S2.asl.r.r.and
case Intrinsic::hexagon_S2_asl_r_r_nac: // llvm.hexagon.S2.asl.r.r.nac
case Intrinsic::hexagon_S2_asl_r_r_or: // llvm.hexagon.S2.asl.r.r.or
case Intrinsic::hexagon_S2_asr_i_r_acc: // llvm.hexagon.S2.asr.i.r.acc
case Intrinsic::hexagon_S2_asr_i_r_and: // llvm.hexagon.S2.asr.i.r.and
case Intrinsic::hexagon_S2_asr_i_r_nac: // llvm.hexagon.S2.asr.i.r.nac
case Intrinsic::hexagon_S2_asr_i_r_or: // llvm.hexagon.S2.asr.i.r.or
case Intrinsic::hexagon_S2_asr_r_r_acc: // llvm.hexagon.S2.asr.r.r.acc
case Intrinsic::hexagon_S2_asr_r_r_and: // llvm.hexagon.S2.asr.r.r.and
case Intrinsic::hexagon_S2_asr_r_r_nac: // llvm.hexagon.S2.asr.r.r.nac
case Intrinsic::hexagon_S2_asr_r_r_or: // llvm.hexagon.S2.asr.r.r.or
case Intrinsic::hexagon_S2_extractu: // llvm.hexagon.S2.extractu
case Intrinsic::hexagon_S2_lsl_r_r_acc: // llvm.hexagon.S2.lsl.r.r.acc
case Intrinsic::hexagon_S2_lsl_r_r_and: // llvm.hexagon.S2.lsl.r.r.and
case Intrinsic::hexagon_S2_lsl_r_r_nac: // llvm.hexagon.S2.lsl.r.r.nac
case Intrinsic::hexagon_S2_lsl_r_r_or: // llvm.hexagon.S2.lsl.r.r.or
case Intrinsic::hexagon_S2_lsr_i_r_acc: // llvm.hexagon.S2.lsr.i.r.acc
case Intrinsic::hexagon_S2_lsr_i_r_and: // llvm.hexagon.S2.lsr.i.r.and
case Intrinsic::hexagon_S2_lsr_i_r_nac: // llvm.hexagon.S2.lsr.i.r.nac
case Intrinsic::hexagon_S2_lsr_i_r_or: // llvm.hexagon.S2.lsr.i.r.or
case Intrinsic::hexagon_S2_lsr_i_r_xacc: // llvm.hexagon.S2.lsr.i.r.xacc
case Intrinsic::hexagon_S2_lsr_r_r_acc: // llvm.hexagon.S2.lsr.r.r.acc
case Intrinsic::hexagon_S2_lsr_r_r_and: // llvm.hexagon.S2.lsr.r.r.and
case Intrinsic::hexagon_S2_lsr_r_r_nac: // llvm.hexagon.S2.lsr.r.r.nac
case Intrinsic::hexagon_S2_lsr_r_r_or: // llvm.hexagon.S2.lsr.r.r.or
case Intrinsic::hexagon_S4_addaddi: // llvm.hexagon.S4.addaddi
case Intrinsic::hexagon_S4_or_andi: // llvm.hexagon.S4.or.andi
case Intrinsic::hexagon_S4_or_andix: // llvm.hexagon.S4.or.andix
case Intrinsic::hexagon_S4_or_ori: // llvm.hexagon.S4.or.ori
case Intrinsic::hexagon_S4_subaddi: // llvm.hexagon.S4.subaddi
case Intrinsic::xcore_crc32: // llvm.xcore.crc32
VerifyIntrinsicPrototype(ID, IF, 1, 3, MVT::i32, MVT::i32, MVT::i32, MVT::i32);
break;
case Intrinsic::hexagon_S2_insert: // llvm.hexagon.S2.insert
case Intrinsic::hexagon_S2_tableidxb_goodsyntax: // llvm.hexagon.S2.tableidxb.goodsyntax
case Intrinsic::hexagon_S2_tableidxd_goodsyntax: // llvm.hexagon.S2.tableidxd.goodsyntax
case Intrinsic::hexagon_S2_tableidxh_goodsyntax: // llvm.hexagon.S2.tableidxh.goodsyntax
case Intrinsic::hexagon_S2_tableidxw_goodsyntax: // llvm.hexagon.S2.tableidxw.goodsyntax
VerifyIntrinsicPrototype(ID, IF, 1, 4, MVT::i32, MVT::i32, MVT::i32, MVT::i32, MVT::i32);
break;
case Intrinsic::arm_mrc: // llvm.arm.mrc
case Intrinsic::arm_mrc2: // llvm.arm.mrc2
VerifyIntrinsicPrototype(ID, IF, 1, 5, MVT::i32, MVT::i32, MVT::i32, MVT::i32, MVT::i32, MVT::i32);
break;
case Intrinsic::hexagon_S2_insert_rp: // llvm.hexagon.S2.insert.rp
VerifyIntrinsicPrototype(ID, IF, 1, 3, MVT::i32, MVT::i32, MVT::i32, MVT::i64);
break;
case Intrinsic::arm_strexd: // llvm.arm.strexd
VerifyIntrinsicPrototype(ID, IF, 1, 3, MVT::i32, MVT::i32, MVT::i32, MVT::iPTR);
break;
case Intrinsic::hexagon_S2_extractu_rp: // llvm.hexagon.S2.extractu.rp
VerifyIntrinsicPrototype(ID, IF, 1, 2, MVT::i32, MVT::i32, MVT::i64);
break;
case Intrinsic::x86_sse42_crc32_32_8: // llvm.x86.sse42.crc32.32.8
VerifyIntrinsicPrototype(ID, IF, 1, 2, MVT::i32, MVT::i32, MVT::i8);
break;
case Intrinsic::ppc_altivec_vcmpequb_p: // llvm.ppc.altivec.vcmpequb.p
case Intrinsic::ppc_altivec_vcmpgtsb_p: // llvm.ppc.altivec.vcmpgtsb.p
case Intrinsic::ppc_altivec_vcmpgtub_p: // llvm.ppc.altivec.vcmpgtub.p
VerifyIntrinsicPrototype(ID, IF, 1, 3, MVT::i32, MVT::i32, MVT::v16i8, MVT::v16i8);
break;
case Intrinsic::ppc_altivec_vcmpbfp_p: // llvm.ppc.altivec.vcmpbfp.p
case Intrinsic::ppc_altivec_vcmpeqfp_p: // llvm.ppc.altivec.vcmpeqfp.p
case Intrinsic::ppc_altivec_vcmpgefp_p: // llvm.ppc.altivec.vcmpgefp.p
case Intrinsic::ppc_altivec_vcmpgtfp_p: // llvm.ppc.altivec.vcmpgtfp.p
VerifyIntrinsicPrototype(ID, IF, 1, 3, MVT::i32, MVT::i32, MVT::v4f32, MVT::v4f32);
break;
case Intrinsic::ppc_altivec_vcmpequw_p: // llvm.ppc.altivec.vcmpequw.p
case Intrinsic::ppc_altivec_vcmpgtsw_p: // llvm.ppc.altivec.vcmpgtsw.p
case Intrinsic::ppc_altivec_vcmpgtuw_p: // llvm.ppc.altivec.vcmpgtuw.p
VerifyIntrinsicPrototype(ID, IF, 1, 3, MVT::i32, MVT::i32, MVT::v4i32, MVT::v4i32);
break;
case Intrinsic::ppc_altivec_vcmpequh_p: // llvm.ppc.altivec.vcmpequh.p
case Intrinsic::ppc_altivec_vcmpgtsh_p: // llvm.ppc.altivec.vcmpgtsh.p
case Intrinsic::ppc_altivec_vcmpgtuh_p: // llvm.ppc.altivec.vcmpgtuh.p
VerifyIntrinsicPrototype(ID, IF, 1, 3, MVT::i32, MVT::i32, MVT::v8i16, MVT::v8i16);
break;
case Intrinsic::hexagon_A2_sat: // llvm.hexagon.A2.sat
case Intrinsic::hexagon_S2_cl0p: // llvm.hexagon.S2.cl0p
case Intrinsic::hexagon_S2_cl1p: // llvm.hexagon.S2.cl1p
case Intrinsic::hexagon_S2_clbp: // llvm.hexagon.S2.clbp
case Intrinsic::hexagon_S2_vrndpackwh: // llvm.hexagon.S2.vrndpackwh
case Intrinsic::hexagon_S2_vrndpackwhs: // llvm.hexagon.S2.vrndpackwhs
case Intrinsic::hexagon_S2_vsathb: // llvm.hexagon.S2.vsathb
case Intrinsic::hexagon_S2_vsathub: // llvm.hexagon.S2.vsathub
case Intrinsic::hexagon_S2_vsatwh: // llvm.hexagon.S2.vsatwh
case Intrinsic::hexagon_S2_vsatwuh: // llvm.hexagon.S2.vsatwuh
case Intrinsic::hexagon_S2_vtrunehb: // llvm.hexagon.S2.vtrunehb
case Intrinsic::hexagon_S2_vtrunohb: // llvm.hexagon.S2.vtrunohb
VerifyIntrinsicPrototype(ID, IF, 1, 1, MVT::i32, MVT::i64);
break;
case Intrinsic::hexagon_M2_vrcmpys_s1rp: // llvm.hexagon.M2.vrcmpys.s1rp
case Intrinsic::hexagon_S2_asr_i_svw_trun: // llvm.hexagon.S2.asr.i.svw.trun
case Intrinsic::hexagon_S2_asr_r_svw_trun: // llvm.hexagon.S2.asr.r.svw.trun
VerifyIntrinsicPrototype(ID, IF, 1, 2, MVT::i32, MVT::i64, MVT::i32);
break;
case Intrinsic::hexagon_M2_vdmpyrs_s0: // llvm.hexagon.M2.vdmpyrs.s0
case Intrinsic::hexagon_M2_vdmpyrs_s1: // llvm.hexagon.M2.vdmpyrs.s1
case Intrinsic::hexagon_M2_vradduh: // llvm.hexagon.M2.vradduh
case Intrinsic::hexagon_S2_parityp: // llvm.hexagon.S2.parityp
VerifyIntrinsicPrototype(ID, IF, 1, 2, MVT::i32, MVT::i64, MVT::i64);
break;
case Intrinsic::eh_sjlj_setjmp: // llvm.eh.sjlj.setjmp
case Intrinsic::eh_typeid_for: // llvm.eh.typeid.for
case Intrinsic::setjmp: // llvm.setjmp
VerifyIntrinsicPrototype(ID, IF, 1, 1, MVT::i32, MVT::iPTR);
break;
case Intrinsic::sigsetjmp: // llvm.sigsetjmp
VerifyIntrinsicPrototype(ID, IF, 1, 2, MVT::i32, MVT::iPTR, MVT::i32);
break;
case Intrinsic::x86_sse2_pmovmskb_128: // llvm.x86.sse2.pmovmskb.128
VerifyIntrinsicPrototype(ID, IF, 1, 1, MVT::i32, MVT::v16i8);
break;
case Intrinsic::x86_sse41_pextrb: // llvm.x86.sse41.pextrb
VerifyIntrinsicPrototype(ID, IF, 1, 2, MVT::i32, MVT::v16i8, MVT::i32);
break;
case Intrinsic::x86_sse42_pcmpestri128: // llvm.x86.sse42.pcmpestri128
case Intrinsic::x86_sse42_pcmpestria128: // llvm.x86.sse42.pcmpestria128
case Intrinsic::x86_sse42_pcmpestric128: // llvm.x86.sse42.pcmpestric128
case Intrinsic::x86_sse42_pcmpestrio128: // llvm.x86.sse42.pcmpestrio128
case Intrinsic::x86_sse42_pcmpestris128: // llvm.x86.sse42.pcmpestris128
case Intrinsic::x86_sse42_pcmpestriz128: // llvm.x86.sse42.pcmpestriz128
VerifyIntrinsicPrototype(ID, IF, 1, 5, MVT::i32, MVT::v16i8, MVT::i32, MVT::v16i8, MVT::i32, MVT::i8);
break;
case Intrinsic::x86_sse42_pcmpistri128: // llvm.x86.sse42.pcmpistri128
case Intrinsic::x86_sse42_pcmpistria128: // llvm.x86.sse42.pcmpistria128
case Intrinsic::x86_sse42_pcmpistric128: // llvm.x86.sse42.pcmpistric128
case Intrinsic::x86_sse42_pcmpistrio128: // llvm.x86.sse42.pcmpistrio128
case Intrinsic::x86_sse42_pcmpistris128: // llvm.x86.sse42.pcmpistris128
case Intrinsic::x86_sse42_pcmpistriz128: // llvm.x86.sse42.pcmpistriz128
VerifyIntrinsicPrototype(ID, IF, 1, 3, MVT::i32, MVT::v16i8, MVT::v16i8, MVT::i8);
break;
case Intrinsic::x86_sse2_cvtsd2si: // llvm.x86.sse2.cvtsd2si
case Intrinsic::x86_sse2_cvttsd2si: // llvm.x86.sse2.cvttsd2si
case Intrinsic::x86_sse2_movmsk_pd: // llvm.x86.sse2.movmsk.pd
VerifyIntrinsicPrototype(ID, IF, 1, 1, MVT::i32, MVT::v2f64);
break;
case Intrinsic::x86_avx_vtestc_pd: // llvm.x86.avx.vtestc.pd
case Intrinsic::x86_avx_vtestnzc_pd: // llvm.x86.avx.vtestnzc.pd
case Intrinsic::x86_avx_vtestz_pd: // llvm.x86.avx.vtestz.pd
case Intrinsic::x86_sse2_comieq_sd: // llvm.x86.sse2.comieq.sd
case Intrinsic::x86_sse2_comige_sd: // llvm.x86.sse2.comige.sd
case Intrinsic::x86_sse2_comigt_sd: // llvm.x86.sse2.comigt.sd
case Intrinsic::x86_sse2_comile_sd: // llvm.x86.sse2.comile.sd
case Intrinsic::x86_sse2_comilt_sd: // llvm.x86.sse2.comilt.sd
case Intrinsic::x86_sse2_comineq_sd: // llvm.x86.sse2.comineq.sd
case Intrinsic::x86_sse2_ucomieq_sd: // llvm.x86.sse2.ucomieq.sd
case Intrinsic::x86_sse2_ucomige_sd: // llvm.x86.sse2.ucomige.sd
case Intrinsic::x86_sse2_ucomigt_sd: // llvm.x86.sse2.ucomigt.sd
case Intrinsic::x86_sse2_ucomile_sd: // llvm.x86.sse2.ucomile.sd
case Intrinsic::x86_sse2_ucomilt_sd: // llvm.x86.sse2.ucomilt.sd
case Intrinsic::x86_sse2_ucomineq_sd: // llvm.x86.sse2.ucomineq.sd
VerifyIntrinsicPrototype(ID, IF, 1, 2, MVT::i32, MVT::v2f64, MVT::v2f64);
break;
case Intrinsic::x86_sse41_ptestc: // llvm.x86.sse41.ptestc
case Intrinsic::x86_sse41_ptestnzc: // llvm.x86.sse41.ptestnzc
case Intrinsic::x86_sse41_ptestz: // llvm.x86.sse41.ptestz
VerifyIntrinsicPrototype(ID, IF, 1, 2, MVT::i32, MVT::v2i64, MVT::v2i64);
break;
case Intrinsic::x86_avx2_pmovmskb: // llvm.x86.avx2.pmovmskb
VerifyIntrinsicPrototype(ID, IF, 1, 1, MVT::i32, MVT::v32i8);
break;
case Intrinsic::x86_sse_cvtss2si: // llvm.x86.sse.cvtss2si
case Intrinsic::x86_sse_cvttss2si: // llvm.x86.sse.cvttss2si
case Intrinsic::x86_sse_movmsk_ps: // llvm.x86.sse.movmsk.ps
VerifyIntrinsicPrototype(ID, IF, 1, 1, MVT::i32, MVT::v4f32);
break;
case Intrinsic::x86_sse41_extractps: // llvm.x86.sse41.extractps
VerifyIntrinsicPrototype(ID, IF, 1, 2, MVT::i32, MVT::v4f32, MVT::i32);
break;
case Intrinsic::x86_avx_vtestc_ps: // llvm.x86.avx.vtestc.ps
case Intrinsic::x86_avx_vtestnzc_ps: // llvm.x86.avx.vtestnzc.ps
case Intrinsic::x86_avx_vtestz_ps: // llvm.x86.avx.vtestz.ps
case Intrinsic::x86_sse_comieq_ss: // llvm.x86.sse.comieq.ss
case Intrinsic::x86_sse_comige_ss: // llvm.x86.sse.comige.ss
case Intrinsic::x86_sse_comigt_ss: // llvm.x86.sse.comigt.ss
case Intrinsic::x86_sse_comile_ss: // llvm.x86.sse.comile.ss
case Intrinsic::x86_sse_comilt_ss: // llvm.x86.sse.comilt.ss
case Intrinsic::x86_sse_comineq_ss: // llvm.x86.sse.comineq.ss
case Intrinsic::x86_sse_ucomieq_ss: // llvm.x86.sse.ucomieq.ss
case Intrinsic::x86_sse_ucomige_ss: // llvm.x86.sse.ucomige.ss
case Intrinsic::x86_sse_ucomigt_ss: // llvm.x86.sse.ucomigt.ss
case Intrinsic::x86_sse_ucomile_ss: // llvm.x86.sse.ucomile.ss
case Intrinsic::x86_sse_ucomilt_ss: // llvm.x86.sse.ucomilt.ss
case Intrinsic::x86_sse_ucomineq_ss: // llvm.x86.sse.ucomineq.ss
VerifyIntrinsicPrototype(ID, IF, 1, 2, MVT::i32, MVT::v4f32, MVT::v4f32);
break;
case Intrinsic::x86_avx_movmsk_pd_256: // llvm.x86.avx.movmsk.pd.256
VerifyIntrinsicPrototype(ID, IF, 1, 1, MVT::i32, MVT::v4f64);
break;
case Intrinsic::x86_avx_vtestc_pd_256: // llvm.x86.avx.vtestc.pd.256
case Intrinsic::x86_avx_vtestnzc_pd_256: // llvm.x86.avx.vtestnzc.pd.256
case Intrinsic::x86_avx_vtestz_pd_256: // llvm.x86.avx.vtestz.pd.256
VerifyIntrinsicPrototype(ID, IF, 1, 2, MVT::i32, MVT::v4f64, MVT::v4f64);
break;
case Intrinsic::x86_sse41_pextrd: // llvm.x86.sse41.pextrd
VerifyIntrinsicPrototype(ID, IF, 1, 2, MVT::i32, MVT::v4i32, MVT::i32);
break;
case Intrinsic::x86_avx_ptestc_256: // llvm.x86.avx.ptestc.256
case Intrinsic::x86_avx_ptestnzc_256: // llvm.x86.avx.ptestnzc.256
case Intrinsic::x86_avx_ptestz_256: // llvm.x86.avx.ptestz.256
VerifyIntrinsicPrototype(ID, IF, 1, 2, MVT::i32, MVT::v4i64, MVT::v4i64);
break;
case Intrinsic::x86_avx_movmsk_ps_256: // llvm.x86.avx.movmsk.ps.256
VerifyIntrinsicPrototype(ID, IF, 1, 1, MVT::i32, MVT::v8f32);
break;
case Intrinsic::x86_avx_vtestc_ps_256: // llvm.x86.avx.vtestc.ps.256
case Intrinsic::x86_avx_vtestnzc_ps_256: // llvm.x86.avx.vtestnzc.ps.256
case Intrinsic::x86_avx_vtestz_ps_256: // llvm.x86.avx.vtestz.ps.256
VerifyIntrinsicPrototype(ID, IF, 1, 2, MVT::i32, MVT::v8f32, MVT::v8f32);
break;
case Intrinsic::x86_mmx_pmovmskb: // llvm.x86.mmx.pmovmskb
VerifyIntrinsicPrototype(ID, IF, 1, 1, MVT::i32, MVT::x86mmx);
break;
case Intrinsic::x86_mmx_pextr_w: // llvm.x86.mmx.pextr.w
VerifyIntrinsicPrototype(ID, IF, 1, 2, MVT::i32, MVT::x86mmx, MVT::i32);
break;
case Intrinsic::xcore_crc8: // llvm.xcore.crc8
VerifyIntrinsicPrototype(ID, IF, 2, 3, MVT::i32, MVT::i32, MVT::i32, MVT::i32, MVT::i32);
break;
case Intrinsic::arm_ldrexd: // llvm.arm.ldrexd
VerifyIntrinsicPrototype(ID, IF, 2, 1, MVT::i32, MVT::i32, MVT::iPTR);
break;
case Intrinsic::ptx_read_clock64: // llvm.ptx.read.clock64
case Intrinsic::readcyclecounter: // llvm.readcyclecounter
case Intrinsic::x86_rdfsbase_64: // llvm.x86.rdfsbase.64
case Intrinsic::x86_rdgsbase_64: // llvm.x86.rdgsbase.64
VerifyIntrinsicPrototype(ID, IF, 1, 0, MVT::i64);
break;
case Intrinsic::hexagon_A2_sxtw: // llvm.hexagon.A2.sxtw
case Intrinsic::hexagon_A2_tfrpi: // llvm.hexagon.A2.tfrpi
case Intrinsic::hexagon_C2_mask: // llvm.hexagon.C2.mask
case Intrinsic::hexagon_S2_vsplatrh: // llvm.hexagon.S2.vsplatrh
case Intrinsic::hexagon_S2_vsxtbh: // llvm.hexagon.S2.vsxtbh
case Intrinsic::hexagon_S2_vsxthw: // llvm.hexagon.S2.vsxthw
case Intrinsic::hexagon_S2_vzxtbh: // llvm.hexagon.S2.vzxtbh
case Intrinsic::hexagon_S2_vzxthw: // llvm.hexagon.S2.vzxthw
VerifyIntrinsicPrototype(ID, IF, 1, 1, MVT::i64, MVT::i32);
break;
case Intrinsic::hexagon_A2_combineii: // llvm.hexagon.A2.combineii
case Intrinsic::hexagon_A2_combinew: // llvm.hexagon.A2.combinew
case Intrinsic::hexagon_A4_combineir: // llvm.hexagon.A4.combineir
case Intrinsic::hexagon_A4_combineri: // llvm.hexagon.A4.combineri
case Intrinsic::hexagon_M2_cmpyi_s0: // llvm.hexagon.M2.cmpyi.s0
case Intrinsic::hexagon_M2_cmpyr_s0: // llvm.hexagon.M2.cmpyr.s0
case Intrinsic::hexagon_M2_cmpys_s0: // llvm.hexagon.M2.cmpys.s0
case Intrinsic::hexagon_M2_cmpys_s1: // llvm.hexagon.M2.cmpys.s1
case Intrinsic::hexagon_M2_cmpysc_s0: // llvm.hexagon.M2.cmpysc.s0
case Intrinsic::hexagon_M2_cmpysc_s1: // llvm.hexagon.M2.cmpysc.s1
case Intrinsic::hexagon_M2_dpmpyss_s0: // llvm.hexagon.M2.dpmpyss.s0
case Intrinsic::hexagon_M2_dpmpyuu_s0: // llvm.hexagon.M2.dpmpyuu.s0
case Intrinsic::hexagon_M2_mpyd_hh_s0: // llvm.hexagon.M2.mpyd.hh.s0
case Intrinsic::hexagon_M2_mpyd_hh_s1: // llvm.hexagon.M2.mpyd.hh.s1
case Intrinsic::hexagon_M2_mpyd_hl_s0: // llvm.hexagon.M2.mpyd.hl.s0
case Intrinsic::hexagon_M2_mpyd_hl_s1: // llvm.hexagon.M2.mpyd.hl.s1
case Intrinsic::hexagon_M2_mpyd_lh_s0: // llvm.hexagon.M2.mpyd.lh.s0
case Intrinsic::hexagon_M2_mpyd_lh_s1: // llvm.hexagon.M2.mpyd.lh.s1
case Intrinsic::hexagon_M2_mpyd_ll_s0: // llvm.hexagon.M2.mpyd.ll.s0
case Intrinsic::hexagon_M2_mpyd_ll_s1: // llvm.hexagon.M2.mpyd.ll.s1
case Intrinsic::hexagon_M2_mpyd_rnd_hh_s0: // llvm.hexagon.M2.mpyd.rnd.hh.s0
case Intrinsic::hexagon_M2_mpyd_rnd_hh_s1: // llvm.hexagon.M2.mpyd.rnd.hh.s1
case Intrinsic::hexagon_M2_mpyd_rnd_hl_s0: // llvm.hexagon.M2.mpyd.rnd.hl.s0
case Intrinsic::hexagon_M2_mpyd_rnd_hl_s1: // llvm.hexagon.M2.mpyd.rnd.hl.s1
case Intrinsic::hexagon_M2_mpyd_rnd_lh_s0: // llvm.hexagon.M2.mpyd.rnd.lh.s0
case Intrinsic::hexagon_M2_mpyd_rnd_lh_s1: // llvm.hexagon.M2.mpyd.rnd.lh.s1
case Intrinsic::hexagon_M2_mpyd_rnd_ll_s0: // llvm.hexagon.M2.mpyd.rnd.ll.s0
case Intrinsic::hexagon_M2_mpyd_rnd_ll_s1: // llvm.hexagon.M2.mpyd.rnd.ll.s1
case Intrinsic::hexagon_M2_mpyud_hh_s0: // llvm.hexagon.M2.mpyud.hh.s0
case Intrinsic::hexagon_M2_mpyud_hh_s1: // llvm.hexagon.M2.mpyud.hh.s1
case Intrinsic::hexagon_M2_mpyud_hl_s0: // llvm.hexagon.M2.mpyud.hl.s0
case Intrinsic::hexagon_M2_mpyud_hl_s1: // llvm.hexagon.M2.mpyud.hl.s1
case Intrinsic::hexagon_M2_mpyud_lh_s0: // llvm.hexagon.M2.mpyud.lh.s0
case Intrinsic::hexagon_M2_mpyud_lh_s1: // llvm.hexagon.M2.mpyud.lh.s1
case Intrinsic::hexagon_M2_mpyud_ll_s0: // llvm.hexagon.M2.mpyud.ll.s0
case Intrinsic::hexagon_M2_mpyud_ll_s1: // llvm.hexagon.M2.mpyud.ll.s1
case Intrinsic::hexagon_M2_vmpy2s_s0: // llvm.hexagon.M2.vmpy2s.s0
case Intrinsic::hexagon_M2_vmpy2s_s1: // llvm.hexagon.M2.vmpy2s.s1
case Intrinsic::hexagon_S2_packhl: // llvm.hexagon.S2.packhl
VerifyIntrinsicPrototype(ID, IF, 1, 2, MVT::i64, MVT::i32, MVT::i32);
break;
case Intrinsic::hexagon_A2_addsp: // llvm.hexagon.A2.addsp
VerifyIntrinsicPrototype(ID, IF, 1, 2, MVT::i64, MVT::i32, MVT::i64);
break;
case Intrinsic::hexagon_C2_vmux: // llvm.hexagon.C2.vmux
VerifyIntrinsicPrototype(ID, IF, 1, 3, MVT::i64, MVT::i32, MVT::i64, MVT::i64);
break;
case Intrinsic::hexagon_A2_absp: // llvm.hexagon.A2.absp
case Intrinsic::hexagon_A2_negp: // llvm.hexagon.A2.negp
case Intrinsic::hexagon_A2_notp: // llvm.hexagon.A2.notp
case Intrinsic::hexagon_A2_tfrp: // llvm.hexagon.A2.tfrp
case Intrinsic::hexagon_A2_vabsh: // llvm.hexagon.A2.vabsh
case Intrinsic::hexagon_A2_vabshsat: // llvm.hexagon.A2.vabshsat
case Intrinsic::hexagon_A2_vabsw: // llvm.hexagon.A2.vabsw
case Intrinsic::hexagon_A2_vabswsat: // llvm.hexagon.A2.vabswsat
case Intrinsic::hexagon_A2_vconj: // llvm.hexagon.A2.vconj
case Intrinsic::hexagon_S2_deinterleave: // llvm.hexagon.S2.deinterleave
case Intrinsic::hexagon_S2_interleave: // llvm.hexagon.S2.interleave
case Intrinsic::hexagon_S2_vsathb_nopack: // llvm.hexagon.S2.vsathb.nopack
case Intrinsic::hexagon_S2_vsathub_nopack: // llvm.hexagon.S2.vsathub.nopack
case Intrinsic::hexagon_S2_vsatwh_nopack: // llvm.hexagon.S2.vsatwh.nopack
case Intrinsic::hexagon_S2_vsatwuh_nopack: // llvm.hexagon.S2.vsatwuh.nopack
VerifyIntrinsicPrototype(ID, IF, 1, 1, MVT::i64, MVT::i64);
break;
case Intrinsic::hexagon_M2_vrcmpys_s1: // llvm.hexagon.M2.vrcmpys.s1
case Intrinsic::hexagon_S2_asl_i_p: // llvm.hexagon.S2.asl.i.p
case Intrinsic::hexagon_S2_asl_i_vh: // llvm.hexagon.S2.asl.i.vh
case Intrinsic::hexagon_S2_asl_i_vw: // llvm.hexagon.S2.asl.i.vw
case Intrinsic::hexagon_S2_asl_r_p: // llvm.hexagon.S2.asl.r.p
case Intrinsic::hexagon_S2_asl_r_vh: // llvm.hexagon.S2.asl.r.vh
case Intrinsic::hexagon_S2_asl_r_vw: // llvm.hexagon.S2.asl.r.vw
case Intrinsic::hexagon_S2_asr_i_p: // llvm.hexagon.S2.asr.i.p
case Intrinsic::hexagon_S2_asr_i_vh: // llvm.hexagon.S2.asr.i.vh
case Intrinsic::hexagon_S2_asr_i_vw: // llvm.hexagon.S2.asr.i.vw
case Intrinsic::hexagon_S2_asr_r_p: // llvm.hexagon.S2.asr.r.p
case Intrinsic::hexagon_S2_asr_r_vh: // llvm.hexagon.S2.asr.r.vh
case Intrinsic::hexagon_S2_asr_r_vw: // llvm.hexagon.S2.asr.r.vw
case Intrinsic::hexagon_S2_lsl_r_p: // llvm.hexagon.S2.lsl.r.p
case Intrinsic::hexagon_S2_lsl_r_vh: // llvm.hexagon.S2.lsl.r.vh
case Intrinsic::hexagon_S2_lsl_r_vw: // llvm.hexagon.S2.lsl.r.vw
case Intrinsic::hexagon_S2_lsr_i_p: // llvm.hexagon.S2.lsr.i.p
case Intrinsic::hexagon_S2_lsr_i_vh: // llvm.hexagon.S2.lsr.i.vh
case Intrinsic::hexagon_S2_lsr_i_vw: // llvm.hexagon.S2.lsr.i.vw
case Intrinsic::hexagon_S2_lsr_r_p: // llvm.hexagon.S2.lsr.r.p
case Intrinsic::hexagon_S2_lsr_r_vh: // llvm.hexagon.S2.lsr.r.vh
case Intrinsic::hexagon_S2_lsr_r_vw: // llvm.hexagon.S2.lsr.r.vw
case Intrinsic::hexagon_S2_vcrotate: // llvm.hexagon.S2.vcrotate
VerifyIntrinsicPrototype(ID, IF, 1, 2, MVT::i64, MVT::i64, MVT::i32);
break;
case Intrinsic::hexagon_M2_cmaci_s0: // llvm.hexagon.M2.cmaci.s0
case Intrinsic::hexagon_M2_cmacr_s0: // llvm.hexagon.M2.cmacr.s0
case Intrinsic::hexagon_M2_cmacs_s0: // llvm.hexagon.M2.cmacs.s0
case Intrinsic::hexagon_M2_cmacs_s1: // llvm.hexagon.M2.cmacs.s1
case Intrinsic::hexagon_M2_cmacsc_s0: // llvm.hexagon.M2.cmacsc.s0
case Intrinsic::hexagon_M2_cmacsc_s1: // llvm.hexagon.M2.cmacsc.s1
case Intrinsic::hexagon_M2_cnacs_s0: // llvm.hexagon.M2.cnacs.s0
case Intrinsic::hexagon_M2_cnacs_s1: // llvm.hexagon.M2.cnacs.s1
case Intrinsic::hexagon_M2_cnacsc_s0: // llvm.hexagon.M2.cnacsc.s0
case Intrinsic::hexagon_M2_cnacsc_s1: // llvm.hexagon.M2.cnacsc.s1
case Intrinsic::hexagon_M2_dpmpyss_acc_s0: // llvm.hexagon.M2.dpmpyss.acc.s0
case Intrinsic::hexagon_M2_dpmpyss_nac_s0: // llvm.hexagon.M2.dpmpyss.nac.s0
case Intrinsic::hexagon_M2_dpmpyuu_acc_s0: // llvm.hexagon.M2.dpmpyuu.acc.s0
case Intrinsic::hexagon_M2_dpmpyuu_nac_s0: // llvm.hexagon.M2.dpmpyuu.nac.s0
case Intrinsic::hexagon_M2_mpyd_acc_hh_s0: // llvm.hexagon.M2.mpyd.acc.hh.s0
case Intrinsic::hexagon_M2_mpyd_acc_hh_s1: // llvm.hexagon.M2.mpyd.acc.hh.s1
case Intrinsic::hexagon_M2_mpyd_acc_hl_s0: // llvm.hexagon.M2.mpyd.acc.hl.s0
case Intrinsic::hexagon_M2_mpyd_acc_hl_s1: // llvm.hexagon.M2.mpyd.acc.hl.s1
case Intrinsic::hexagon_M2_mpyd_acc_lh_s0: // llvm.hexagon.M2.mpyd.acc.lh.s0
case Intrinsic::hexagon_M2_mpyd_acc_lh_s1: // llvm.hexagon.M2.mpyd.acc.lh.s1
case Intrinsic::hexagon_M2_mpyd_acc_ll_s0: // llvm.hexagon.M2.mpyd.acc.ll.s0
case Intrinsic::hexagon_M2_mpyd_acc_ll_s1: // llvm.hexagon.M2.mpyd.acc.ll.s1
case Intrinsic::hexagon_M2_mpyd_nac_hh_s0: // llvm.hexagon.M2.mpyd.nac.hh.s0
case Intrinsic::hexagon_M2_mpyd_nac_hh_s1: // llvm.hexagon.M2.mpyd.nac.hh.s1
case Intrinsic::hexagon_M2_mpyd_nac_hl_s0: // llvm.hexagon.M2.mpyd.nac.hl.s0
case Intrinsic::hexagon_M2_mpyd_nac_hl_s1: // llvm.hexagon.M2.mpyd.nac.hl.s1
case Intrinsic::hexagon_M2_mpyd_nac_lh_s0: // llvm.hexagon.M2.mpyd.nac.lh.s0
case Intrinsic::hexagon_M2_mpyd_nac_lh_s1: // llvm.hexagon.M2.mpyd.nac.lh.s1
case Intrinsic::hexagon_M2_mpyd_nac_ll_s0: // llvm.hexagon.M2.mpyd.nac.ll.s0
case Intrinsic::hexagon_M2_mpyd_nac_ll_s1: // llvm.hexagon.M2.mpyd.nac.ll.s1
case Intrinsic::hexagon_M2_mpyud_acc_hh_s0: // llvm.hexagon.M2.mpyud.acc.hh.s0
case Intrinsic::hexagon_M2_mpyud_acc_hh_s1: // llvm.hexagon.M2.mpyud.acc.hh.s1
case Intrinsic::hexagon_M2_mpyud_acc_hl_s0: // llvm.hexagon.M2.mpyud.acc.hl.s0
case Intrinsic::hexagon_M2_mpyud_acc_hl_s1: // llvm.hexagon.M2.mpyud.acc.hl.s1
case Intrinsic::hexagon_M2_mpyud_acc_lh_s0: // llvm.hexagon.M2.mpyud.acc.lh.s0
case Intrinsic::hexagon_M2_mpyud_acc_lh_s1: // llvm.hexagon.M2.mpyud.acc.lh.s1
case Intrinsic::hexagon_M2_mpyud_acc_ll_s0: // llvm.hexagon.M2.mpyud.acc.ll.s0
case Intrinsic::hexagon_M2_mpyud_acc_ll_s1: // llvm.hexagon.M2.mpyud.acc.ll.s1
case Intrinsic::hexagon_M2_mpyud_nac_hh_s0: // llvm.hexagon.M2.mpyud.nac.hh.s0
case Intrinsic::hexagon_M2_mpyud_nac_hh_s1: // llvm.hexagon.M2.mpyud.nac.hh.s1
case Intrinsic::hexagon_M2_mpyud_nac_hl_s0: // llvm.hexagon.M2.mpyud.nac.hl.s0
case Intrinsic::hexagon_M2_mpyud_nac_hl_s1: // llvm.hexagon.M2.mpyud.nac.hl.s1
case Intrinsic::hexagon_M2_mpyud_nac_lh_s0: // llvm.hexagon.M2.mpyud.nac.lh.s0
case Intrinsic::hexagon_M2_mpyud_nac_lh_s1: // llvm.hexagon.M2.mpyud.nac.lh.s1
case Intrinsic::hexagon_M2_mpyud_nac_ll_s0: // llvm.hexagon.M2.mpyud.nac.ll.s0
case Intrinsic::hexagon_M2_mpyud_nac_ll_s1: // llvm.hexagon.M2.mpyud.nac.ll.s1
case Intrinsic::hexagon_M2_vmac2: // llvm.hexagon.M2.vmac2
case Intrinsic::hexagon_M2_vmac2s_s0: // llvm.hexagon.M2.vmac2s.s0
case Intrinsic::hexagon_M2_vmac2s_s1: // llvm.hexagon.M2.vmac2s.s1
case Intrinsic::hexagon_S2_extractup: // llvm.hexagon.S2.extractup
VerifyIntrinsicPrototype(ID, IF, 1, 3, MVT::i64, MVT::i64, MVT::i32, MVT::i32);
break;
case Intrinsic::hexagon_A2_addp: // llvm.hexagon.A2.addp
case Intrinsic::hexagon_A2_addpsat: // llvm.hexagon.A2.addpsat
case Intrinsic::hexagon_A2_andp: // llvm.hexagon.A2.andp
case Intrinsic::hexagon_A2_maxp: // llvm.hexagon.A2.maxp
case Intrinsic::hexagon_A2_maxup: // llvm.hexagon.A2.maxup
case Intrinsic::hexagon_A2_minp: // llvm.hexagon.A2.minp
case Intrinsic::hexagon_A2_minup: // llvm.hexagon.A2.minup
case Intrinsic::hexagon_A2_orp: // llvm.hexagon.A2.orp
case Intrinsic::hexagon_A2_subp: // llvm.hexagon.A2.subp
case Intrinsic::hexagon_A2_vaddh: // llvm.hexagon.A2.vaddh
case Intrinsic::hexagon_A2_vaddhs: // llvm.hexagon.A2.vaddhs
case Intrinsic::hexagon_A2_vaddub: // llvm.hexagon.A2.vaddub
case Intrinsic::hexagon_A2_vaddubs: // llvm.hexagon.A2.vaddubs
case Intrinsic::hexagon_A2_vadduhs: // llvm.hexagon.A2.vadduhs
case Intrinsic::hexagon_A2_vaddw: // llvm.hexagon.A2.vaddw
case Intrinsic::hexagon_A2_vaddws: // llvm.hexagon.A2.vaddws
case Intrinsic::hexagon_A2_vavgh: // llvm.hexagon.A2.vavgh
case Intrinsic::hexagon_A2_vavghcr: // llvm.hexagon.A2.vavghcr
case Intrinsic::hexagon_A2_vavghr: // llvm.hexagon.A2.vavghr
case Intrinsic::hexagon_A2_vavgub: // llvm.hexagon.A2.vavgub
case Intrinsic::hexagon_A2_vavgubr: // llvm.hexagon.A2.vavgubr
case Intrinsic::hexagon_A2_vavguh: // llvm.hexagon.A2.vavguh
case Intrinsic::hexagon_A2_vavguhr: // llvm.hexagon.A2.vavguhr
case Intrinsic::hexagon_A2_vavguw: // llvm.hexagon.A2.vavguw
case Intrinsic::hexagon_A2_vavguwr: // llvm.hexagon.A2.vavguwr
case Intrinsic::hexagon_A2_vavgw: // llvm.hexagon.A2.vavgw
case Intrinsic::hexagon_A2_vavgwcr: // llvm.hexagon.A2.vavgwcr
case Intrinsic::hexagon_A2_vavgwr: // llvm.hexagon.A2.vavgwr
case Intrinsic::hexagon_A2_vmaxh: // llvm.hexagon.A2.vmaxh
case Intrinsic::hexagon_A2_vmaxub: // llvm.hexagon.A2.vmaxub
case Intrinsic::hexagon_A2_vmaxuh: // llvm.hexagon.A2.vmaxuh
case Intrinsic::hexagon_A2_vmaxuw: // llvm.hexagon.A2.vmaxuw
case Intrinsic::hexagon_A2_vmaxw: // llvm.hexagon.A2.vmaxw
case Intrinsic::hexagon_A2_vminh: // llvm.hexagon.A2.vminh
case Intrinsic::hexagon_A2_vminub: // llvm.hexagon.A2.vminub
case Intrinsic::hexagon_A2_vminuh: // llvm.hexagon.A2.vminuh
case Intrinsic::hexagon_A2_vminuw: // llvm.hexagon.A2.vminuw
case Intrinsic::hexagon_A2_vminw: // llvm.hexagon.A2.vminw
case Intrinsic::hexagon_A2_vnavgh: // llvm.hexagon.A2.vnavgh
case Intrinsic::hexagon_A2_vnavghcr: // llvm.hexagon.A2.vnavghcr
case Intrinsic::hexagon_A2_vnavghr: // llvm.hexagon.A2.vnavghr
case Intrinsic::hexagon_A2_vnavgw: // llvm.hexagon.A2.vnavgw
case Intrinsic::hexagon_A2_vnavgwcr: // llvm.hexagon.A2.vnavgwcr
case Intrinsic::hexagon_A2_vnavgwr: // llvm.hexagon.A2.vnavgwr
case Intrinsic::hexagon_A2_vraddub: // llvm.hexagon.A2.vraddub
case Intrinsic::hexagon_A2_vrsadub: // llvm.hexagon.A2.vrsadub
case Intrinsic::hexagon_A2_vsubh: // llvm.hexagon.A2.vsubh
case Intrinsic::hexagon_A2_vsubhs: // llvm.hexagon.A2.vsubhs
case Intrinsic::hexagon_A2_vsubub: // llvm.hexagon.A2.vsubub
case Intrinsic::hexagon_A2_vsububs: // llvm.hexagon.A2.vsububs
case Intrinsic::hexagon_A2_vsubuhs: // llvm.hexagon.A2.vsubuhs
case Intrinsic::hexagon_A2_vsubw: // llvm.hexagon.A2.vsubw
case Intrinsic::hexagon_A2_vsubws: // llvm.hexagon.A2.vsubws
case Intrinsic::hexagon_A2_xorp: // llvm.hexagon.A2.xorp
case Intrinsic::hexagon_A4_andnp: // llvm.hexagon.A4.andnp
case Intrinsic::hexagon_A4_ornp: // llvm.hexagon.A4.ornp
case Intrinsic::hexagon_M2_mmpyh_rs0: // llvm.hexagon.M2.mmpyh.rs0
case Intrinsic::hexagon_M2_mmpyh_rs1: // llvm.hexagon.M2.mmpyh.rs1
case Intrinsic::hexagon_M2_mmpyh_s0: // llvm.hexagon.M2.mmpyh.s0
case Intrinsic::hexagon_M2_mmpyh_s1: // llvm.hexagon.M2.mmpyh.s1
case Intrinsic::hexagon_M2_mmpyl_rs0: // llvm.hexagon.M2.mmpyl.rs0
case Intrinsic::hexagon_M2_mmpyl_rs1: // llvm.hexagon.M2.mmpyl.rs1
case Intrinsic::hexagon_M2_mmpyl_s0: // llvm.hexagon.M2.mmpyl.s0
case Intrinsic::hexagon_M2_mmpyl_s1: // llvm.hexagon.M2.mmpyl.s1
case Intrinsic::hexagon_M2_mmpyuh_rs0: // llvm.hexagon.M2.mmpyuh.rs0
case Intrinsic::hexagon_M2_mmpyuh_rs1: // llvm.hexagon.M2.mmpyuh.rs1
case Intrinsic::hexagon_M2_mmpyuh_s0: // llvm.hexagon.M2.mmpyuh.s0
case Intrinsic::hexagon_M2_mmpyuh_s1: // llvm.hexagon.M2.mmpyuh.s1
case Intrinsic::hexagon_M2_mmpyul_rs0: // llvm.hexagon.M2.mmpyul.rs0
case Intrinsic::hexagon_M2_mmpyul_rs1: // llvm.hexagon.M2.mmpyul.rs1
case Intrinsic::hexagon_M2_mmpyul_s0: // llvm.hexagon.M2.mmpyul.s0
case Intrinsic::hexagon_M2_mmpyul_s1: // llvm.hexagon.M2.mmpyul.s1
case Intrinsic::hexagon_M2_vabsdiffh: // llvm.hexagon.M2.vabsdiffh
case Intrinsic::hexagon_M2_vabsdiffw: // llvm.hexagon.M2.vabsdiffw
case Intrinsic::hexagon_M2_vcmpy_s0_sat_i: // llvm.hexagon.M2.vcmpy.s0.sat.i
case Intrinsic::hexagon_M2_vcmpy_s0_sat_r: // llvm.hexagon.M2.vcmpy.s0.sat.r
case Intrinsic::hexagon_M2_vcmpy_s1_sat_i: // llvm.hexagon.M2.vcmpy.s1.sat.i
case Intrinsic::hexagon_M2_vcmpy_s1_sat_r: // llvm.hexagon.M2.vcmpy.s1.sat.r
case Intrinsic::hexagon_M2_vdmpys_s0: // llvm.hexagon.M2.vdmpys.s0
case Intrinsic::hexagon_M2_vdmpys_s1: // llvm.hexagon.M2.vdmpys.s1
case Intrinsic::hexagon_M2_vmpy2es_s0: // llvm.hexagon.M2.vmpy2es.s0
case Intrinsic::hexagon_M2_vmpy2es_s1: // llvm.hexagon.M2.vmpy2es.s1
case Intrinsic::hexagon_M2_vrcmpyi_s0: // llvm.hexagon.M2.vrcmpyi.s0
case Intrinsic::hexagon_M2_vrcmpyi_s0c: // llvm.hexagon.M2.vrcmpyi.s0c
case Intrinsic::hexagon_M2_vrcmpyr_s0: // llvm.hexagon.M2.vrcmpyr.s0
case Intrinsic::hexagon_M2_vrcmpyr_s0c: // llvm.hexagon.M2.vrcmpyr.s0c
case Intrinsic::hexagon_M2_vrmpy_s0: // llvm.hexagon.M2.vrmpy.s0
case Intrinsic::hexagon_S2_extractup_rp: // llvm.hexagon.S2.extractup.rp
case Intrinsic::hexagon_S2_lfsp: // llvm.hexagon.S2.lfsp
case Intrinsic::hexagon_S2_shuffeb: // llvm.hexagon.S2.shuffeb
case Intrinsic::hexagon_S2_shuffeh: // llvm.hexagon.S2.shuffeh
case Intrinsic::hexagon_S2_shuffob: // llvm.hexagon.S2.shuffob
case Intrinsic::hexagon_S2_shuffoh: // llvm.hexagon.S2.shuffoh
case Intrinsic::hexagon_S2_vtrunewh: // llvm.hexagon.S2.vtrunewh
case Intrinsic::hexagon_S2_vtrunowh: // llvm.hexagon.S2.vtrunowh
case Intrinsic::hexagon_S4_andnp: // llvm.hexagon.S4.andnp
case Intrinsic::hexagon_S4_ornp: // llvm.hexagon.S4.ornp
case Intrinsic::x86_bmi_bextr_64: // llvm.x86.bmi.bextr.64
case Intrinsic::x86_bmi_bzhi_64: // llvm.x86.bmi.bzhi.64
case Intrinsic::x86_bmi_pdep_64: // llvm.x86.bmi.pdep.64
case Intrinsic::x86_bmi_pext_64: // llvm.x86.bmi.pext.64
case Intrinsic::x86_sse42_crc32_64_64: // llvm.x86.sse42.crc32.64.64
VerifyIntrinsicPrototype(ID, IF, 1, 2, MVT::i64, MVT::i64, MVT::i64);
break;
case Intrinsic::hexagon_M2_vrcmpys_acc_s1: // llvm.hexagon.M2.vrcmpys.acc.s1
case Intrinsic::hexagon_S2_asl_i_p_acc: // llvm.hexagon.S2.asl.i.p.acc
case Intrinsic::hexagon_S2_asl_i_p_and: // llvm.hexagon.S2.asl.i.p.and
case Intrinsic::hexagon_S2_asl_i_p_nac: // llvm.hexagon.S2.asl.i.p.nac
case Intrinsic::hexagon_S2_asl_i_p_or: // llvm.hexagon.S2.asl.i.p.or
case Intrinsic::hexagon_S2_asl_i_p_xacc: // llvm.hexagon.S2.asl.i.p.xacc
case Intrinsic::hexagon_S2_asl_r_p_acc: // llvm.hexagon.S2.asl.r.p.acc
case Intrinsic::hexagon_S2_asl_r_p_and: // llvm.hexagon.S2.asl.r.p.and
case Intrinsic::hexagon_S2_asl_r_p_nac: // llvm.hexagon.S2.asl.r.p.nac
case Intrinsic::hexagon_S2_asl_r_p_or: // llvm.hexagon.S2.asl.r.p.or
case Intrinsic::hexagon_S2_asr_i_p_acc: // llvm.hexagon.S2.asr.i.p.acc
case Intrinsic::hexagon_S2_asr_i_p_and: // llvm.hexagon.S2.asr.i.p.and
case Intrinsic::hexagon_S2_asr_i_p_nac: // llvm.hexagon.S2.asr.i.p.nac
case Intrinsic::hexagon_S2_asr_i_p_or: // llvm.hexagon.S2.asr.i.p.or
case Intrinsic::hexagon_S2_asr_r_p_acc: // llvm.hexagon.S2.asr.r.p.acc
case Intrinsic::hexagon_S2_asr_r_p_and: // llvm.hexagon.S2.asr.r.p.and
case Intrinsic::hexagon_S2_asr_r_p_nac: // llvm.hexagon.S2.asr.r.p.nac
case Intrinsic::hexagon_S2_asr_r_p_or: // llvm.hexagon.S2.asr.r.p.or
case Intrinsic::hexagon_S2_lsl_r_p_acc: // llvm.hexagon.S2.lsl.r.p.acc
case Intrinsic::hexagon_S2_lsl_r_p_and: // llvm.hexagon.S2.lsl.r.p.and
case Intrinsic::hexagon_S2_lsl_r_p_nac: // llvm.hexagon.S2.lsl.r.p.nac
case Intrinsic::hexagon_S2_lsl_r_p_or: // llvm.hexagon.S2.lsl.r.p.or
case Intrinsic::hexagon_S2_lsr_i_p_acc: // llvm.hexagon.S2.lsr.i.p.acc
case Intrinsic::hexagon_S2_lsr_i_p_and: // llvm.hexagon.S2.lsr.i.p.and
case Intrinsic::hexagon_S2_lsr_i_p_nac: // llvm.hexagon.S2.lsr.i.p.nac
case Intrinsic::hexagon_S2_lsr_i_p_or: // llvm.hexagon.S2.lsr.i.p.or
case Intrinsic::hexagon_S2_lsr_i_p_xacc: // llvm.hexagon.S2.lsr.i.p.xacc
case Intrinsic::hexagon_S2_lsr_r_p_acc: // llvm.hexagon.S2.lsr.r.p.acc
case Intrinsic::hexagon_S2_lsr_r_p_and: // llvm.hexagon.S2.lsr.r.p.and
case Intrinsic::hexagon_S2_lsr_r_p_nac: // llvm.hexagon.S2.lsr.r.p.nac
case Intrinsic::hexagon_S2_lsr_r_p_or: // llvm.hexagon.S2.lsr.r.p.or
case Intrinsic::hexagon_S2_valignib: // llvm.hexagon.S2.valignib
case Intrinsic::hexagon_S2_valignrb: // llvm.hexagon.S2.valignrb
case Intrinsic::hexagon_S2_vspliceib: // llvm.hexagon.S2.vspliceib
case Intrinsic::hexagon_S2_vsplicerb: // llvm.hexagon.S2.vsplicerb
VerifyIntrinsicPrototype(ID, IF, 1, 3, MVT::i64, MVT::i64, MVT::i64, MVT::i32);
break;
case Intrinsic::hexagon_S2_insertp: // llvm.hexagon.S2.insertp
VerifyIntrinsicPrototype(ID, IF, 1, 4, MVT::i64, MVT::i64, MVT::i64, MVT::i32, MVT::i32);
break;
case Intrinsic::hexagon_A2_vraddub_acc: // llvm.hexagon.A2.vraddub.acc
case Intrinsic::hexagon_A2_vrsadub_acc: // llvm.hexagon.A2.vrsadub.acc
case Intrinsic::hexagon_M2_mmachs_rs0: // llvm.hexagon.M2.mmachs.rs0
case Intrinsic::hexagon_M2_mmachs_rs1: // llvm.hexagon.M2.mmachs.rs1
case Intrinsic::hexagon_M2_mmachs_s0: // llvm.hexagon.M2.mmachs.s0
case Intrinsic::hexagon_M2_mmachs_s1: // llvm.hexagon.M2.mmachs.s1
case Intrinsic::hexagon_M2_mmacls_rs0: // llvm.hexagon.M2.mmacls.rs0
case Intrinsic::hexagon_M2_mmacls_rs1: // llvm.hexagon.M2.mmacls.rs1
case Intrinsic::hexagon_M2_mmacls_s0: // llvm.hexagon.M2.mmacls.s0
case Intrinsic::hexagon_M2_mmacls_s1: // llvm.hexagon.M2.mmacls.s1
case Intrinsic::hexagon_M2_mmacuhs_rs0: // llvm.hexagon.M2.mmacuhs.rs0
case Intrinsic::hexagon_M2_mmacuhs_rs1: // llvm.hexagon.M2.mmacuhs.rs1
case Intrinsic::hexagon_M2_mmacuhs_s0: // llvm.hexagon.M2.mmacuhs.s0
case Intrinsic::hexagon_M2_mmacuhs_s1: // llvm.hexagon.M2.mmacuhs.s1
case Intrinsic::hexagon_M2_mmaculs_rs0: // llvm.hexagon.M2.mmaculs.rs0
case Intrinsic::hexagon_M2_mmaculs_rs1: // llvm.hexagon.M2.mmaculs.rs1
case Intrinsic::hexagon_M2_mmaculs_s0: // llvm.hexagon.M2.mmaculs.s0
case Intrinsic::hexagon_M2_mmaculs_s1: // llvm.hexagon.M2.mmaculs.s1
case Intrinsic::hexagon_M2_vcmac_s0_sat_i: // llvm.hexagon.M2.vcmac.s0.sat.i
case Intrinsic::hexagon_M2_vcmac_s0_sat_r: // llvm.hexagon.M2.vcmac.s0.sat.r
case Intrinsic::hexagon_M2_vdmacs_s0: // llvm.hexagon.M2.vdmacs.s0
case Intrinsic::hexagon_M2_vdmacs_s1: // llvm.hexagon.M2.vdmacs.s1
case Intrinsic::hexagon_M2_vmac2es: // llvm.hexagon.M2.vmac2es
case Intrinsic::hexagon_M2_vmac2es_s0: // llvm.hexagon.M2.vmac2es.s0
case Intrinsic::hexagon_M2_vmac2es_s1: // llvm.hexagon.M2.vmac2es.s1
case Intrinsic::hexagon_M2_vrcmaci_s0: // llvm.hexagon.M2.vrcmaci.s0
case Intrinsic::hexagon_M2_vrcmaci_s0c: // llvm.hexagon.M2.vrcmaci.s0c
case Intrinsic::hexagon_M2_vrcmacr_s0: // llvm.hexagon.M2.vrcmacr.s0
case Intrinsic::hexagon_M2_vrcmacr_s0c: // llvm.hexagon.M2.vrcmacr.s0c
case Intrinsic::hexagon_M2_vrmac_s0: // llvm.hexagon.M2.vrmac.s0
case Intrinsic::hexagon_M4_xor_xacc: // llvm.hexagon.M4.xor.xacc
case Intrinsic::hexagon_S2_insertp_rp: // llvm.hexagon.S2.insertp.rp
VerifyIntrinsicPrototype(ID, IF, 1, 3, MVT::i64, MVT::i64, MVT::i64, MVT::i64);
break;
case Intrinsic::x86_sse42_crc32_64_8: // llvm.x86.sse42.crc32.64.8
VerifyIntrinsicPrototype(ID, IF, 1, 2, MVT::i64, MVT::i64, MVT::i8);
break;
case Intrinsic::x86_sse2_cvtsd2si64: // llvm.x86.sse2.cvtsd2si64
case Intrinsic::x86_sse2_cvttsd2si64: // llvm.x86.sse2.cvttsd2si64
VerifyIntrinsicPrototype(ID, IF, 1, 1, MVT::i64, MVT::v2f64);
break;
case Intrinsic::x86_sse41_pextrq: // llvm.x86.sse41.pextrq
VerifyIntrinsicPrototype(ID, IF, 1, 2, MVT::i64, MVT::v2i64, MVT::i32);
break;
case Intrinsic::x86_sse_cvtss2si64: // llvm.x86.sse.cvtss2si64
case Intrinsic::x86_sse_cvttss2si64: // llvm.x86.sse.cvttss2si64
VerifyIntrinsicPrototype(ID, IF, 1, 1, MVT::i64, MVT::v4f32);
break;
case Intrinsic::arm_thread_pointer: // llvm.arm.thread.pointer
case Intrinsic::eh_sjlj_lsda: // llvm.eh.sjlj.lsda
case Intrinsic::stacksave: // llvm.stacksave
case Intrinsic::xcore_waitevent: // llvm.xcore.waitevent
VerifyIntrinsicPrototype(ID, IF, 1, 0, MVT::iPTR);
break;
case Intrinsic::eh_dwarf_cfa: // llvm.eh.dwarf.cfa
case Intrinsic::frameaddress: // llvm.frameaddress
case Intrinsic::returnaddress: // llvm.returnaddress
VerifyIntrinsicPrototype(ID, IF, 1, 1, MVT::iPTR, MVT::i32);
break;
case Intrinsic::adjust_trampoline: // llvm.adjust.trampoline
case Intrinsic::xcore_checkevent: // llvm.xcore.checkevent
VerifyIntrinsicPrototype(ID, IF, 1, 1, MVT::iPTR, MVT::iPTR);
break;
case Intrinsic::gcread: // llvm.gcread
VerifyIntrinsicPrototype(ID, IF, 1, 2, MVT::iPTR, MVT::iPTR, MVT::iPTR);
break;
case Intrinsic::x86_avx2_pabs_w: // llvm.x86.avx2.pabs.w
VerifyIntrinsicPrototype(ID, IF, 1, 1, MVT::v16i16, MVT::v16i16);
break;
case Intrinsic::x86_avx2_pslli_w: // llvm.x86.avx2.pslli.w
case Intrinsic::x86_avx2_psrai_w: // llvm.x86.avx2.psrai.w
case Intrinsic::x86_avx2_psrli_w: // llvm.x86.avx2.psrli.w
VerifyIntrinsicPrototype(ID, IF, 1, 2, MVT::v16i16, MVT::v16i16, MVT::i32);
break;
case Intrinsic::x86_avx2_padds_w: // llvm.x86.avx2.padds.w
case Intrinsic::x86_avx2_paddus_w: // llvm.x86.avx2.paddus.w
case Intrinsic::x86_avx2_pavg_w: // llvm.x86.avx2.pavg.w
case Intrinsic::x86_avx2_phadd_sw: // llvm.x86.avx2.phadd.sw
case Intrinsic::x86_avx2_phadd_w: // llvm.x86.avx2.phadd.w
case Intrinsic::x86_avx2_phsub_sw: // llvm.x86.avx2.phsub.sw
case Intrinsic::x86_avx2_phsub_w: // llvm.x86.avx2.phsub.w
case Intrinsic::x86_avx2_pmaxs_w: // llvm.x86.avx2.pmaxs.w
case Intrinsic::x86_avx2_pmaxu_w: // llvm.x86.avx2.pmaxu.w
case Intrinsic::x86_avx2_pmins_w: // llvm.x86.avx2.pmins.w
case Intrinsic::x86_avx2_pminu_w: // llvm.x86.avx2.pminu.w
case Intrinsic::x86_avx2_pmul_hr_sw: // llvm.x86.avx2.pmul.hr.sw
case Intrinsic::x86_avx2_pmulh_w: // llvm.x86.avx2.pmulh.w
case Intrinsic::x86_avx2_pmulhu_w: // llvm.x86.avx2.pmulhu.w
case Intrinsic::x86_avx2_psign_w: // llvm.x86.avx2.psign.w
case Intrinsic::x86_avx2_psubs_w: // llvm.x86.avx2.psubs.w
case Intrinsic::x86_avx2_psubus_w: // llvm.x86.avx2.psubus.w
VerifyIntrinsicPrototype(ID, IF, 1, 2, MVT::v16i16, MVT::v16i16, MVT::v16i16);
break;
case Intrinsic::x86_avx2_pblendw: // llvm.x86.avx2.pblendw
VerifyIntrinsicPrototype(ID, IF, 1, 3, MVT::v16i16, MVT::v16i16, MVT::v16i16, MVT::i32);
break;
case Intrinsic::x86_avx2_psll_w: // llvm.x86.avx2.psll.w
case Intrinsic::x86_avx2_psra_w: // llvm.x86.avx2.psra.w
case Intrinsic::x86_avx2_psrl_w: // llvm.x86.avx2.psrl.w
VerifyIntrinsicPrototype(ID, IF, 1, 2, MVT::v16i16, MVT::v16i16, MVT::v8i16);
break;
case Intrinsic::x86_avx2_pmovsxbw: // llvm.x86.avx2.pmovsxbw
case Intrinsic::x86_avx2_pmovzxbw: // llvm.x86.avx2.pmovzxbw
VerifyIntrinsicPrototype(ID, IF, 1, 1, MVT::v16i16, MVT::v16i8);
break;
case Intrinsic::x86_avx2_pmadd_ub_sw: // llvm.x86.avx2.pmadd.ub.sw
VerifyIntrinsicPrototype(ID, IF, 1, 2, MVT::v16i16, MVT::v32i8, MVT::v32i8);
break;
case Intrinsic::x86_avx2_mpsadbw: // llvm.x86.avx2.mpsadbw
VerifyIntrinsicPrototype(ID, IF, 1, 3, MVT::v16i16, MVT::v32i8, MVT::v32i8, MVT::i32);
break;
case Intrinsic::x86_avx2_pbroadcastw_256: // llvm.x86.avx2.pbroadcastw.256
VerifyIntrinsicPrototype(ID, IF, 1, 1, MVT::v16i16, MVT::v8i16);
break;
case Intrinsic::x86_avx2_packssdw: // llvm.x86.avx2.packssdw
case Intrinsic::x86_avx2_packusdw: // llvm.x86.avx2.packusdw
VerifyIntrinsicPrototype(ID, IF, 1, 2, MVT::v16i16, MVT::v8i32, MVT::v8i32);
break;
case Intrinsic::ppc_altivec_lvebx: // llvm.ppc.altivec.lvebx
case Intrinsic::ppc_altivec_lvsl: // llvm.ppc.altivec.lvsl
case Intrinsic::ppc_altivec_lvsr: // llvm.ppc.altivec.lvsr
case Intrinsic::x86_sse3_ldu_dq: // llvm.x86.sse3.ldu.dq
VerifyIntrinsicPrototype(ID, IF, 1, 1, MVT::v16i8, MVT::iPTR);
break;
case Intrinsic::x86_avx2_pbroadcastb_128: // llvm.x86.avx2.pbroadcastb.128
case Intrinsic::x86_ssse3_pabs_b_128: // llvm.x86.ssse3.pabs.b.128
VerifyIntrinsicPrototype(ID, IF, 1, 1, MVT::v16i8, MVT::v16i8);
break;
case Intrinsic::spu_si_shlqbii: // llvm.spu.si.shlqbii
case Intrinsic::spu_si_shlqbyi: // llvm.spu.si.shlqbyi
VerifyIntrinsicPrototype(ID, IF, 1, 2, MVT::v16i8, MVT::v16i8, MVT::i8);
break;
case Intrinsic::x86_sse42_pcmpestrm128: // llvm.x86.sse42.pcmpestrm128
VerifyIntrinsicPrototype(ID, IF, 1, 5, MVT::v16i8, MVT::v16i8, MVT::i32, MVT::v16i8, MVT::i32, MVT::i8);
break;
case Intrinsic::spu_si_andbi: // llvm.spu.si.andbi
case Intrinsic::spu_si_ceqbi: // llvm.spu.si.ceqbi
case Intrinsic::spu_si_cgtbi: // llvm.spu.si.cgtbi
case Intrinsic::spu_si_clgtbi: // llvm.spu.si.clgtbi
case Intrinsic::spu_si_orbi: // llvm.spu.si.orbi
case Intrinsic::spu_si_xorbi: // llvm.spu.si.xorbi
VerifyIntrinsicPrototype(ID, IF, 1, 2, MVT::v16i8, MVT::v16i8, MVT::i8);
break;
case Intrinsic::ppc_altivec_vaddsbs: // llvm.ppc.altivec.vaddsbs
case Intrinsic::ppc_altivec_vaddubs: // llvm.ppc.altivec.vaddubs
case Intrinsic::ppc_altivec_vavgsb: // llvm.ppc.altivec.vavgsb
case Intrinsic::ppc_altivec_vavgub: // llvm.ppc.altivec.vavgub
case Intrinsic::ppc_altivec_vcmpequb: // llvm.ppc.altivec.vcmpequb
case Intrinsic::ppc_altivec_vcmpgtsb: // llvm.ppc.altivec.vcmpgtsb
case Intrinsic::ppc_altivec_vcmpgtub: // llvm.ppc.altivec.vcmpgtub
case Intrinsic::ppc_altivec_vmaxsb: // llvm.ppc.altivec.vmaxsb
case Intrinsic::ppc_altivec_vmaxub: // llvm.ppc.altivec.vmaxub
case Intrinsic::ppc_altivec_vminsb: // llvm.ppc.altivec.vminsb
case Intrinsic::ppc_altivec_vminub: // llvm.ppc.altivec.vminub
case Intrinsic::ppc_altivec_vrlb: // llvm.ppc.altivec.vrlb
case Intrinsic::ppc_altivec_vslb: // llvm.ppc.altivec.vslb
case Intrinsic::ppc_altivec_vsrab: // llvm.ppc.altivec.vsrab
case Intrinsic::ppc_altivec_vsrb: // llvm.ppc.altivec.vsrb
case Intrinsic::ppc_altivec_vsubsbs: // llvm.ppc.altivec.vsubsbs
case Intrinsic::ppc_altivec_vsububs: // llvm.ppc.altivec.vsububs
case Intrinsic::spu_si_ceqb: // llvm.spu.si.ceqb
case Intrinsic::spu_si_cgtb: // llvm.spu.si.cgtb
case Intrinsic::spu_si_clgtb: // llvm.spu.si.clgtb
case Intrinsic::x86_sse2_padds_b: // llvm.x86.sse2.padds.b
case Intrinsic::x86_sse2_paddus_b: // llvm.x86.sse2.paddus.b
case Intrinsic::x86_sse2_pavg_b: // llvm.x86.sse2.pavg.b
case Intrinsic::x86_sse2_pmaxu_b: // llvm.x86.sse2.pmaxu.b
case Intrinsic::x86_sse2_pminu_b: // llvm.x86.sse2.pminu.b
case Intrinsic::x86_sse2_psubs_b: // llvm.x86.sse2.psubs.b
case Intrinsic::x86_sse2_psubus_b: // llvm.x86.sse2.psubus.b
case Intrinsic::x86_sse41_pmaxsb: // llvm.x86.sse41.pmaxsb
case Intrinsic::x86_sse41_pminsb: // llvm.x86.sse41.pminsb
case Intrinsic::x86_ssse3_pshuf_b_128: // llvm.x86.ssse3.pshuf.b.128
case Intrinsic::x86_ssse3_psign_b_128: // llvm.x86.ssse3.psign.b.128
case Intrinsic::x86_xop_vpcomeqb: // llvm.x86.xop.vpcomeqb
case Intrinsic::x86_xop_vpcomequb: // llvm.x86.xop.vpcomequb
case Intrinsic::x86_xop_vpcomfalseb: // llvm.x86.xop.vpcomfalseb
case Intrinsic::x86_xop_vpcomfalseub: // llvm.x86.xop.vpcomfalseub
case Intrinsic::x86_xop_vpcomgeb: // llvm.x86.xop.vpcomgeb
case Intrinsic::x86_xop_vpcomgeub: // llvm.x86.xop.vpcomgeub
case Intrinsic::x86_xop_vpcomgtb: // llvm.x86.xop.vpcomgtb
case Intrinsic::x86_xop_vpcomgtub: // llvm.x86.xop.vpcomgtub
case Intrinsic::x86_xop_vpcomleb: // llvm.x86.xop.vpcomleb
case Intrinsic::x86_xop_vpcomleub: // llvm.x86.xop.vpcomleub
case Intrinsic::x86_xop_vpcomltb: // llvm.x86.xop.vpcomltb
case Intrinsic::x86_xop_vpcomltub: // llvm.x86.xop.vpcomltub
case Intrinsic::x86_xop_vpcomneb: // llvm.x86.xop.vpcomneb
case Intrinsic::x86_xop_vpcomneub: // llvm.x86.xop.vpcomneub
case Intrinsic::x86_xop_vpcomtrueb: // llvm.x86.xop.vpcomtrueb
case Intrinsic::x86_xop_vpcomtrueub: // llvm.x86.xop.vpcomtrueub
case Intrinsic::x86_xop_vprotb: // llvm.x86.xop.vprotb
case Intrinsic::x86_xop_vpshab: // llvm.x86.xop.vpshab
case Intrinsic::x86_xop_vpshlb: // llvm.x86.xop.vpshlb
VerifyIntrinsicPrototype(ID, IF, 1, 2, MVT::v16i8, MVT::v16i8, MVT::v16i8);
break;
case Intrinsic::x86_sse42_pcmpistrm128: // llvm.x86.sse42.pcmpistrm128
VerifyIntrinsicPrototype(ID, IF, 1, 3, MVT::v16i8, MVT::v16i8, MVT::v16i8, MVT::i8);
break;
case Intrinsic::x86_sse41_pblendvb: // llvm.x86.sse41.pblendvb
case Intrinsic::x86_xop_vpperm: // llvm.x86.xop.vpperm
VerifyIntrinsicPrototype(ID, IF, 1, 3, MVT::v16i8, MVT::v16i8, MVT::v16i8, MVT::v16i8);
break;
case Intrinsic::ppc_altivec_vpkswss: // llvm.ppc.altivec.vpkswss
VerifyIntrinsicPrototype(ID, IF, 1, 2, MVT::v16i8, MVT::v4i32, MVT::v4i32);
break;
case Intrinsic::ppc_altivec_vpkshss: // llvm.ppc.altivec.vpkshss
case Intrinsic::ppc_altivec_vpkshus: // llvm.ppc.altivec.vpkshus
case Intrinsic::ppc_altivec_vpkuhus: // llvm.ppc.altivec.vpkuhus
case Intrinsic::x86_sse2_packsswb_128: // llvm.x86.sse2.packsswb.128
case Intrinsic::x86_sse2_packuswb_128: // llvm.x86.sse2.packuswb.128
VerifyIntrinsicPrototype(ID, IF, 1, 2, MVT::v16i8, MVT::v8i16, MVT::v8i16);
break;
case Intrinsic::x86_avx_maskload_pd: // llvm.x86.avx.maskload.pd
VerifyIntrinsicPrototype(ID, IF, 1, 2, MVT::v2f64, MVT::iPTR, MVT::v2f64);
break;
case Intrinsic::x86_sse2_sqrt_pd: // llvm.x86.sse2.sqrt.pd
case Intrinsic::x86_sse2_sqrt_sd: // llvm.x86.sse2.sqrt.sd
case Intrinsic::x86_xop_vfrcz_pd: // llvm.x86.xop.vfrcz.pd
VerifyIntrinsicPrototype(ID, IF, 1, 1, MVT::v2f64, MVT::v2f64);
break;
case Intrinsic::x86_sse2_cvtsi2sd: // llvm.x86.sse2.cvtsi2sd
case Intrinsic::x86_sse41_round_pd: // llvm.x86.sse41.round.pd
VerifyIntrinsicPrototype(ID, IF, 1, 2, MVT::v2f64, MVT::v2f64, MVT::i32);
break;
case Intrinsic::x86_sse2_cvtsi642sd: // llvm.x86.sse2.cvtsi642sd
VerifyIntrinsicPrototype(ID, IF, 1, 2, MVT::v2f64, MVT::v2f64, MVT::i64);
break;
case Intrinsic::spu_si_dfa: // llvm.spu.si.dfa
case Intrinsic::spu_si_dfm: // llvm.spu.si.dfm
case Intrinsic::spu_si_dfma: // llvm.spu.si.dfma
case Intrinsic::spu_si_dfms: // llvm.spu.si.dfms
case Intrinsic::spu_si_dfnma: // llvm.spu.si.dfnma
case Intrinsic::spu_si_dfnms: // llvm.spu.si.dfnms
case Intrinsic::spu_si_dfs: // llvm.spu.si.dfs
case Intrinsic::x86_sse2_add_sd: // llvm.x86.sse2.add.sd
case Intrinsic::x86_sse2_div_sd: // llvm.x86.sse2.div.sd
case Intrinsic::x86_sse2_max_pd: // llvm.x86.sse2.max.pd
case Intrinsic::x86_sse2_max_sd: // llvm.x86.sse2.max.sd
case Intrinsic::x86_sse2_min_pd: // llvm.x86.sse2.min.pd
case Intrinsic::x86_sse2_min_sd: // llvm.x86.sse2.min.sd
case Intrinsic::x86_sse2_mul_sd: // llvm.x86.sse2.mul.sd
case Intrinsic::x86_sse2_sub_sd: // llvm.x86.sse2.sub.sd
case Intrinsic::x86_sse3_addsub_pd: // llvm.x86.sse3.addsub.pd
case Intrinsic::x86_sse3_hadd_pd: // llvm.x86.sse3.hadd.pd
case Intrinsic::x86_sse3_hsub_pd: // llvm.x86.sse3.hsub.pd
case Intrinsic::x86_xop_vfrcz_sd: // llvm.x86.xop.vfrcz.sd
VerifyIntrinsicPrototype(ID, IF, 1, 2, MVT::v2f64, MVT::v2f64, MVT::v2f64);
break;
case Intrinsic::x86_sse41_blendpd: // llvm.x86.sse41.blendpd
case Intrinsic::x86_sse41_dppd: // llvm.x86.sse41.dppd
case Intrinsic::x86_sse41_round_sd: // llvm.x86.sse41.round.sd
VerifyIntrinsicPrototype(ID, IF, 1, 3, MVT::v2f64, MVT::v2f64, MVT::v2f64, MVT::i32);
break;
case Intrinsic::x86_sse2_cmp_pd: // llvm.x86.sse2.cmp.pd
case Intrinsic::x86_sse2_cmp_sd: // llvm.x86.sse2.cmp.sd
VerifyIntrinsicPrototype(ID, IF, 1, 3, MVT::v2f64, MVT::v2f64, MVT::v2f64, MVT::i8);
break;
case Intrinsic::x86_fma4_vfmadd_pd: // llvm.x86.fma4.vfmadd.pd
case Intrinsic::x86_fma4_vfmadd_sd: // llvm.x86.fma4.vfmadd.sd
case Intrinsic::x86_fma4_vfmaddsub_pd: // llvm.x86.fma4.vfmaddsub.pd
case Intrinsic::x86_fma4_vfmsub_pd: // llvm.x86.fma4.vfmsub.pd
case Intrinsic::x86_fma4_vfmsub_sd: // llvm.x86.fma4.vfmsub.sd
case Intrinsic::x86_fma4_vfmsubadd_pd: // llvm.x86.fma4.vfmsubadd.pd
case Intrinsic::x86_fma4_vfnmadd_pd: // llvm.x86.fma4.vfnmadd.pd
case Intrinsic::x86_fma4_vfnmadd_sd: // llvm.x86.fma4.vfnmadd.sd
case Intrinsic::x86_fma4_vfnmsub_pd: // llvm.x86.fma4.vfnmsub.pd
case Intrinsic::x86_fma4_vfnmsub_sd: // llvm.x86.fma4.vfnmsub.sd
case Intrinsic::x86_sse41_blendvpd: // llvm.x86.sse41.blendvpd
VerifyIntrinsicPrototype(ID, IF, 1, 3, MVT::v2f64, MVT::v2f64, MVT::v2f64, MVT::v2f64);
break;
case Intrinsic::x86_xop_vpermil2pd: // llvm.x86.xop.vpermil2pd
VerifyIntrinsicPrototype(ID, IF, 1, 4, MVT::v2f64, MVT::v2f64, MVT::v2f64, MVT::v2f64, MVT::i8);
break;
case Intrinsic::x86_avx_vpermilvar_pd: // llvm.x86.avx.vpermilvar.pd
VerifyIntrinsicPrototype(ID, IF, 1, 2, MVT::v2f64, MVT::v2f64, MVT::v2i64);
break;
case Intrinsic::x86_sse2_cvtss2sd: // llvm.x86.sse2.cvtss2sd
VerifyIntrinsicPrototype(ID, IF, 1, 2, MVT::v2f64, MVT::v2f64, MVT::v4f32);
break;
case Intrinsic::x86_sse2_cvtps2pd: // llvm.x86.sse2.cvtps2pd
VerifyIntrinsicPrototype(ID, IF, 1, 1, MVT::v2f64, MVT::v4f32);
break;
case Intrinsic::x86_avx_vextractf128_pd_256: // llvm.x86.avx.vextractf128.pd.256
VerifyIntrinsicPrototype(ID, IF, 1, 2, MVT::v2f64, MVT::v4f64, MVT::i8);
break;
case Intrinsic::x86_sse2_cvtdq2pd: // llvm.x86.sse2.cvtdq2pd
VerifyIntrinsicPrototype(ID, IF, 1, 1, MVT::v2f64, MVT::v4i32);
break;
case Intrinsic::x86_sse_cvtpi2pd: // llvm.x86.sse.cvtpi2pd
VerifyIntrinsicPrototype(ID, IF, 1, 1, MVT::v2f64, MVT::x86mmx);
break;
case Intrinsic::arm_neon_vacged: // llvm.arm.neon.vacged
case Intrinsic::arm_neon_vacgtd: // llvm.arm.neon.vacgtd
VerifyIntrinsicPrototype(ID, IF, 1, 2, MVT::v2i32, MVT::v2f32, MVT::v2f32);
break;
case Intrinsic::x86_sse41_movntdqa: // llvm.x86.sse41.movntdqa
VerifyIntrinsicPrototype(ID, IF, 1, 1, MVT::v2i64, MVT::iPTR);
break;
case Intrinsic::x86_avx2_maskload_q: // llvm.x86.avx2.maskload.q
VerifyIntrinsicPrototype(ID, IF, 1, 2, MVT::v2i64, MVT::iPTR, MVT::v2i64);
break;
case Intrinsic::x86_sse41_pmovsxbq: // llvm.x86.sse41.pmovsxbq
case Intrinsic::x86_sse41_pmovzxbq: // llvm.x86.sse41.pmovzxbq
case Intrinsic::x86_xop_vphaddbq: // llvm.x86.xop.vphaddbq
case Intrinsic::x86_xop_vphaddubq: // llvm.x86.xop.vphaddubq
VerifyIntrinsicPrototype(ID, IF, 1, 1, MVT::v2i64, MVT::v16i8);
break;
case Intrinsic::x86_sse2_psad_bw: // llvm.x86.sse2.psad.bw
VerifyIntrinsicPrototype(ID, IF, 1, 2, MVT::v2i64, MVT::v16i8, MVT::v16i8);
break;
case Intrinsic::x86_aesni_aesimc: // llvm.x86.aesni.aesimc
case Intrinsic::x86_avx2_pbroadcastq_128: // llvm.x86.avx2.pbroadcastq.128
VerifyIntrinsicPrototype(ID, IF, 1, 1, MVT::v2i64, MVT::v2i64);
break;
case Intrinsic::x86_sse2_psll_dq: // llvm.x86.sse2.psll.dq
case Intrinsic::x86_sse2_psll_dq_bs: // llvm.x86.sse2.psll.dq.bs
case Intrinsic::x86_sse2_pslli_q: // llvm.x86.sse2.pslli.q
case Intrinsic::x86_sse2_psrl_dq: // llvm.x86.sse2.psrl.dq
case Intrinsic::x86_sse2_psrl_dq_bs: // llvm.x86.sse2.psrl.dq.bs
case Intrinsic::x86_sse2_psrli_q: // llvm.x86.sse2.psrli.q
VerifyIntrinsicPrototype(ID, IF, 1, 2, MVT::v2i64, MVT::v2i64, MVT::i32);
break;
case Intrinsic::x86_aesni_aeskeygenassist: // llvm.x86.aesni.aeskeygenassist
VerifyIntrinsicPrototype(ID, IF, 1, 2, MVT::v2i64, MVT::v2i64, MVT::i8);
break;
case Intrinsic::x86_aesni_aesdec: // llvm.x86.aesni.aesdec
case Intrinsic::x86_aesni_aesdeclast: // llvm.x86.aesni.aesdeclast
case Intrinsic::x86_aesni_aesenc: // llvm.x86.aesni.aesenc
case Intrinsic::x86_aesni_aesenclast: // llvm.x86.aesni.aesenclast
case Intrinsic::x86_avx2_psllv_q: // llvm.x86.avx2.psllv.q
case Intrinsic::x86_avx2_psrlv_q: // llvm.x86.avx2.psrlv.q
case Intrinsic::x86_sse2_psll_q: // llvm.x86.sse2.psll.q
case Intrinsic::x86_sse2_psrl_q: // llvm.x86.sse2.psrl.q
case Intrinsic::x86_xop_vpcomeqq: // llvm.x86.xop.vpcomeqq
case Intrinsic::x86_xop_vpcomequq: // llvm.x86.xop.vpcomequq
case Intrinsic::x86_xop_vpcomfalseq: // llvm.x86.xop.vpcomfalseq
case Intrinsic::x86_xop_vpcomfalseuq: // llvm.x86.xop.vpcomfalseuq
case Intrinsic::x86_xop_vpcomgeq: // llvm.x86.xop.vpcomgeq
case Intrinsic::x86_xop_vpcomgeuq: // llvm.x86.xop.vpcomgeuq
case Intrinsic::x86_xop_vpcomgtq: // llvm.x86.xop.vpcomgtq
case Intrinsic::x86_xop_vpcomgtuq: // llvm.x86.xop.vpcomgtuq
case Intrinsic::x86_xop_vpcomleq: // llvm.x86.xop.vpcomleq
case Intrinsic::x86_xop_vpcomleuq: // llvm.x86.xop.vpcomleuq
case Intrinsic::x86_xop_vpcomltq: // llvm.x86.xop.vpcomltq
case Intrinsic::x86_xop_vpcomltuq: // llvm.x86.xop.vpcomltuq
case Intrinsic::x86_xop_vpcomneq: // llvm.x86.xop.vpcomneq
case Intrinsic::x86_xop_vpcomneuq: // llvm.x86.xop.vpcomneuq
case Intrinsic::x86_xop_vpcomtrueq: // llvm.x86.xop.vpcomtrueq
case Intrinsic::x86_xop_vpcomtrueuq: // llvm.x86.xop.vpcomtrueuq
case Intrinsic::x86_xop_vprotq: // llvm.x86.xop.vprotq
case Intrinsic::x86_xop_vpshaq: // llvm.x86.xop.vpshaq
case Intrinsic::x86_xop_vpshlq: // llvm.x86.xop.vpshlq
VerifyIntrinsicPrototype(ID, IF, 1, 2, MVT::v2i64, MVT::v2i64, MVT::v2i64);
break;
case Intrinsic::x86_xop_vpcmov: // llvm.x86.xop.vpcmov
VerifyIntrinsicPrototype(ID, IF, 1, 3, MVT::v2i64, MVT::v2i64, MVT::v2i64, MVT::v2i64);
break;
case Intrinsic::x86_sse41_pmovsxdq: // llvm.x86.sse41.pmovsxdq
case Intrinsic::x86_sse41_pmovzxdq: // llvm.x86.sse41.pmovzxdq
case Intrinsic::x86_xop_vphadddq: // llvm.x86.xop.vphadddq
case Intrinsic::x86_xop_vphaddudq: // llvm.x86.xop.vphaddudq
case Intrinsic::x86_xop_vphsubdq: // llvm.x86.xop.vphsubdq
VerifyIntrinsicPrototype(ID, IF, 1, 1, MVT::v2i64, MVT::v4i32);
break;
case Intrinsic::x86_sse2_pmulu_dq: // llvm.x86.sse2.pmulu.dq
case Intrinsic::x86_sse41_pmuldq: // llvm.x86.sse41.pmuldq
VerifyIntrinsicPrototype(ID, IF, 1, 2, MVT::v2i64, MVT::v4i32, MVT::v4i32);
break;
case Intrinsic::x86_xop_vpmacsdqh: // llvm.x86.xop.vpmacsdqh
case Intrinsic::x86_xop_vpmacsdql: // llvm.x86.xop.vpmacsdql
case Intrinsic::x86_xop_vpmacssdqh: // llvm.x86.xop.vpmacssdqh
case Intrinsic::x86_xop_vpmacssdql: // llvm.x86.xop.vpmacssdql
VerifyIntrinsicPrototype(ID, IF, 1, 3, MVT::v2i64, MVT::v4i32, MVT::v4i32, MVT::v2i64);
break;
case Intrinsic::x86_avx2_vextracti128: // llvm.x86.avx2.vextracti128
VerifyIntrinsicPrototype(ID, IF, 1, 2, MVT::v2i64, MVT::v4i64, MVT::i8);
break;
case Intrinsic::x86_sse41_pmovsxwq: // llvm.x86.sse41.pmovsxwq
case Intrinsic::x86_sse41_pmovzxwq: // llvm.x86.sse41.pmovzxwq
case Intrinsic::x86_xop_vphadduwq: // llvm.x86.xop.vphadduwq
case Intrinsic::x86_xop_vphaddwq: // llvm.x86.xop.vphaddwq
VerifyIntrinsicPrototype(ID, IF, 1, 1, MVT::v2i64, MVT::v8i16);
break;
case Intrinsic::x86_avx_ldu_dq_256: // llvm.x86.avx.ldu.dq.256
VerifyIntrinsicPrototype(ID, IF, 1, 1, MVT::v32i8, MVT::iPTR);
break;
case Intrinsic::x86_avx2_packsswb: // llvm.x86.avx2.packsswb
case Intrinsic::x86_avx2_packuswb: // llvm.x86.avx2.packuswb
VerifyIntrinsicPrototype(ID, IF, 1, 2, MVT::v32i8, MVT::v16i16, MVT::v16i16);
break;
case Intrinsic::x86_avx2_pbroadcastb_256: // llvm.x86.avx2.pbroadcastb.256
VerifyIntrinsicPrototype(ID, IF, 1, 1, MVT::v32i8, MVT::v16i8);
break;
case Intrinsic::x86_avx2_pabs_b: // llvm.x86.avx2.pabs.b
VerifyIntrinsicPrototype(ID, IF, 1, 1, MVT::v32i8, MVT::v32i8);
break;
case Intrinsic::x86_avx2_padds_b: // llvm.x86.avx2.padds.b
case Intrinsic::x86_avx2_paddus_b: // llvm.x86.avx2.paddus.b
case Intrinsic::x86_avx2_pavg_b: // llvm.x86.avx2.pavg.b
case Intrinsic::x86_avx2_pmaxs_b: // llvm.x86.avx2.pmaxs.b
case Intrinsic::x86_avx2_pmaxu_b: // llvm.x86.avx2.pmaxu.b
case Intrinsic::x86_avx2_pmins_b: // llvm.x86.avx2.pmins.b
case Intrinsic::x86_avx2_pminu_b: // llvm.x86.avx2.pminu.b
case Intrinsic::x86_avx2_pshuf_b: // llvm.x86.avx2.pshuf.b
case Intrinsic::x86_avx2_psign_b: // llvm.x86.avx2.psign.b
case Intrinsic::x86_avx2_psubs_b: // llvm.x86.avx2.psubs.b
case Intrinsic::x86_avx2_psubus_b: // llvm.x86.avx2.psubus.b
VerifyIntrinsicPrototype(ID, IF, 1, 2, MVT::v32i8, MVT::v32i8, MVT::v32i8);
break;
case Intrinsic::x86_avx2_pblendvb: // llvm.x86.avx2.pblendvb
VerifyIntrinsicPrototype(ID, IF, 1, 3, MVT::v32i8, MVT::v32i8, MVT::v32i8, MVT::v32i8);
break;
case Intrinsic::x86_avx_vbroadcast_ss: // llvm.x86.avx.vbroadcast.ss
VerifyIntrinsicPrototype(ID, IF, 1, 1, MVT::v4f32, MVT::iPTR);
break;
case Intrinsic::x86_avx_maskload_ps: // llvm.x86.avx.maskload.ps
VerifyIntrinsicPrototype(ID, IF, 1, 2, MVT::v4f32, MVT::iPTR, MVT::v4f32);
break;
case Intrinsic::x86_sse2_cvtpd2ps: // llvm.x86.sse2.cvtpd2ps
VerifyIntrinsicPrototype(ID, IF, 1, 1, MVT::v4f32, MVT::v2f64);
break;
case Intrinsic::ppc_altivec_vexptefp: // llvm.ppc.altivec.vexptefp
case Intrinsic::ppc_altivec_vlogefp: // llvm.ppc.altivec.vlogefp
case Intrinsic::ppc_altivec_vrefp: // llvm.ppc.altivec.vrefp
case Intrinsic::ppc_altivec_vrfim: // llvm.ppc.altivec.vrfim
case Intrinsic::ppc_altivec_vrfin: // llvm.ppc.altivec.vrfin
case Intrinsic::ppc_altivec_vrfip: // llvm.ppc.altivec.vrfip
case Intrinsic::ppc_altivec_vrfiz: // llvm.ppc.altivec.vrfiz
case Intrinsic::ppc_altivec_vrsqrtefp: // llvm.ppc.altivec.vrsqrtefp
case Intrinsic::x86_avx2_vbroadcast_ss_ps: // llvm.x86.avx2.vbroadcast.ss.ps
case Intrinsic::x86_sse_rcp_ps: // llvm.x86.sse.rcp.ps
case Intrinsic::x86_sse_rcp_ss: // llvm.x86.sse.rcp.ss
case Intrinsic::x86_sse_rsqrt_ps: // llvm.x86.sse.rsqrt.ps
case Intrinsic::x86_sse_rsqrt_ss: // llvm.x86.sse.rsqrt.ss
case Intrinsic::x86_sse_sqrt_ps: // llvm.x86.sse.sqrt.ps
case Intrinsic::x86_sse_sqrt_ss: // llvm.x86.sse.sqrt.ss
case Intrinsic::x86_xop_vfrcz_ps: // llvm.x86.xop.vfrcz.ps
VerifyIntrinsicPrototype(ID, IF, 1, 1, MVT::v4f32, MVT::v4f32);
break;
case Intrinsic::x86_sse41_round_ps: // llvm.x86.sse41.round.ps
case Intrinsic::x86_sse_cvtsi2ss: // llvm.x86.sse.cvtsi2ss
VerifyIntrinsicPrototype(ID, IF, 1, 2, MVT::v4f32, MVT::v4f32, MVT::i32);
break;
case Intrinsic::x86_sse_cvtsi642ss: // llvm.x86.sse.cvtsi642ss
VerifyIntrinsicPrototype(ID, IF, 1, 2, MVT::v4f32, MVT::v4f32, MVT::i64);
break;
case Intrinsic::x86_sse2_cvtsd2ss: // llvm.x86.sse2.cvtsd2ss
VerifyIntrinsicPrototype(ID, IF, 1, 2, MVT::v4f32, MVT::v4f32, MVT::v2f64);
break;
case Intrinsic::ppc_altivec_vmaxfp: // llvm.ppc.altivec.vmaxfp
case Intrinsic::ppc_altivec_vminfp: // llvm.ppc.altivec.vminfp
case Intrinsic::spu_si_fa: // llvm.spu.si.fa
case Intrinsic::spu_si_fceq: // llvm.spu.si.fceq
case Intrinsic::spu_si_fcgt: // llvm.spu.si.fcgt
case Intrinsic::spu_si_fcmeq: // llvm.spu.si.fcmeq
case Intrinsic::spu_si_fcmgt: // llvm.spu.si.fcmgt
case Intrinsic::spu_si_fm: // llvm.spu.si.fm
case Intrinsic::spu_si_fs: // llvm.spu.si.fs
case Intrinsic::x86_sse3_addsub_ps: // llvm.x86.sse3.addsub.ps
case Intrinsic::x86_sse3_hadd_ps: // llvm.x86.sse3.hadd.ps
case Intrinsic::x86_sse3_hsub_ps: // llvm.x86.sse3.hsub.ps
case Intrinsic::x86_sse_add_ss: // llvm.x86.sse.add.ss
case Intrinsic::x86_sse_div_ss: // llvm.x86.sse.div.ss
case Intrinsic::x86_sse_max_ps: // llvm.x86.sse.max.ps
case Intrinsic::x86_sse_max_ss: // llvm.x86.sse.max.ss
case Intrinsic::x86_sse_min_ps: // llvm.x86.sse.min.ps
case Intrinsic::x86_sse_min_ss: // llvm.x86.sse.min.ss
case Intrinsic::x86_sse_mul_ss: // llvm.x86.sse.mul.ss
case Intrinsic::x86_sse_sub_ss: // llvm.x86.sse.sub.ss
case Intrinsic::x86_xop_vfrcz_ss: // llvm.x86.xop.vfrcz.ss
VerifyIntrinsicPrototype(ID, IF, 1, 2, MVT::v4f32, MVT::v4f32, MVT::v4f32);
break;
case Intrinsic::x86_sse41_blendps: // llvm.x86.sse41.blendps
case Intrinsic::x86_sse41_dpps: // llvm.x86.sse41.dpps
case Intrinsic::x86_sse41_insertps: // llvm.x86.sse41.insertps
case Intrinsic::x86_sse41_round_ss: // llvm.x86.sse41.round.ss
VerifyIntrinsicPrototype(ID, IF, 1, 3, MVT::v4f32, MVT::v4f32, MVT::v4f32, MVT::i32);
break;
case Intrinsic::x86_sse_cmp_ps: // llvm.x86.sse.cmp.ps
case Intrinsic::x86_sse_cmp_ss: // llvm.x86.sse.cmp.ss
VerifyIntrinsicPrototype(ID, IF, 1, 3, MVT::v4f32, MVT::v4f32, MVT::v4f32, MVT::i8);
break;
case Intrinsic::ppc_altivec_vmaddfp: // llvm.ppc.altivec.vmaddfp
case Intrinsic::ppc_altivec_vnmsubfp: // llvm.ppc.altivec.vnmsubfp
case Intrinsic::spu_si_fma: // llvm.spu.si.fma
case Intrinsic::spu_si_fms: // llvm.spu.si.fms
case Intrinsic::spu_si_fnms: // llvm.spu.si.fnms
case Intrinsic::x86_fma4_vfmadd_ps: // llvm.x86.fma4.vfmadd.ps
case Intrinsic::x86_fma4_vfmadd_ss: // llvm.x86.fma4.vfmadd.ss
case Intrinsic::x86_fma4_vfmaddsub_ps: // llvm.x86.fma4.vfmaddsub.ps
case Intrinsic::x86_fma4_vfmsub_ps: // llvm.x86.fma4.vfmsub.ps
case Intrinsic::x86_fma4_vfmsub_ss: // llvm.x86.fma4.vfmsub.ss
case Intrinsic::x86_fma4_vfmsubadd_ps: // llvm.x86.fma4.vfmsubadd.ps
case Intrinsic::x86_fma4_vfnmadd_ps: // llvm.x86.fma4.vfnmadd.ps
case Intrinsic::x86_fma4_vfnmadd_ss: // llvm.x86.fma4.vfnmadd.ss
case Intrinsic::x86_fma4_vfnmsub_ps: // llvm.x86.fma4.vfnmsub.ps
case Intrinsic::x86_fma4_vfnmsub_ss: // llvm.x86.fma4.vfnmsub.ss
case Intrinsic::x86_sse41_blendvps: // llvm.x86.sse41.blendvps
VerifyIntrinsicPrototype(ID, IF, 1, 3, MVT::v4f32, MVT::v4f32, MVT::v4f32, MVT::v4f32);
break;
case Intrinsic::x86_xop_vpermil2ps: // llvm.x86.xop.vpermil2ps
VerifyIntrinsicPrototype(ID, IF, 1, 4, MVT::v4f32, MVT::v4f32, MVT::v4f32, MVT::v4f32, MVT::i8);
break;
case Intrinsic::x86_avx_vpermilvar_ps: // llvm.x86.avx.vpermilvar.ps
VerifyIntrinsicPrototype(ID, IF, 1, 2, MVT::v4f32, MVT::v4f32, MVT::v4i32);
break;
case Intrinsic::x86_sse_cvtpi2ps: // llvm.x86.sse.cvtpi2ps
VerifyIntrinsicPrototype(ID, IF, 1, 2, MVT::v4f32, MVT::v4f32, MVT::x86mmx);
break;
case Intrinsic::x86_avx_cvt_pd2_ps_256: // llvm.x86.avx.cvt.pd2.ps.256
VerifyIntrinsicPrototype(ID, IF, 1, 1, MVT::v4f32, MVT::v4f64);
break;
case Intrinsic::arm_neon_vcvthf2fp: // llvm.arm.neon.vcvthf2fp
VerifyIntrinsicPrototype(ID, IF, 1, 1, MVT::v4f32, MVT::v4i16);
break;
case Intrinsic::x86_sse2_cvtdq2ps: // llvm.x86.sse2.cvtdq2ps
VerifyIntrinsicPrototype(ID, IF, 1, 1, MVT::v4f32, MVT::v4i32);
break;
case Intrinsic::ppc_altivec_vcfsx: // llvm.ppc.altivec.vcfsx
case Intrinsic::ppc_altivec_vcfux: // llvm.ppc.altivec.vcfux
VerifyIntrinsicPrototype(ID, IF, 1, 2, MVT::v4f32, MVT::v4i32, MVT::i32);
break;
case Intrinsic::x86_avx_vextractf128_ps_256: // llvm.x86.avx.vextractf128.ps.256
VerifyIntrinsicPrototype(ID, IF, 1, 2, MVT::v4f32, MVT::v8f32, MVT::i8);
break;
case Intrinsic::x86_vcvtph2ps_128: // llvm.x86.vcvtph2ps.128
VerifyIntrinsicPrototype(ID, IF, 1, 1, MVT::v4f32, MVT::v8i16);
break;
case Intrinsic::x86_avx_vbroadcast_sd_256: // llvm.x86.avx.vbroadcast.sd.256
case Intrinsic::x86_avx_vbroadcastf128_pd_256: // llvm.x86.avx.vbroadcastf128.pd.256
VerifyIntrinsicPrototype(ID, IF, 1, 1, MVT::v4f64, MVT::iPTR);
break;
case Intrinsic::x86_avx_maskload_pd_256: // llvm.x86.avx.maskload.pd.256
VerifyIntrinsicPrototype(ID, IF, 1, 2, MVT::v4f64, MVT::iPTR, MVT::v4f64);
break;
case Intrinsic::x86_avx2_vbroadcast_sd_pd_256: // llvm.x86.avx2.vbroadcast.sd.pd.256
VerifyIntrinsicPrototype(ID, IF, 1, 1, MVT::v4f64, MVT::v2f64);
break;
case Intrinsic::x86_avx_cvt_ps2_pd_256: // llvm.x86.avx.cvt.ps2.pd.256
VerifyIntrinsicPrototype(ID, IF, 1, 1, MVT::v4f64, MVT::v4f32);
break;
case Intrinsic::x86_avx_sqrt_pd_256: // llvm.x86.avx.sqrt.pd.256
case Intrinsic::x86_xop_vfrcz_pd_256: // llvm.x86.xop.vfrcz.pd.256
VerifyIntrinsicPrototype(ID, IF, 1, 1, MVT::v4f64, MVT::v4f64);
break;
case Intrinsic::x86_avx_round_pd_256: // llvm.x86.avx.round.pd.256
VerifyIntrinsicPrototype(ID, IF, 1, 2, MVT::v4f64, MVT::v4f64, MVT::i32);
break;
case Intrinsic::x86_avx_vinsertf128_pd_256: // llvm.x86.avx.vinsertf128.pd.256
VerifyIntrinsicPrototype(ID, IF, 1, 3, MVT::v4f64, MVT::v4f64, MVT::v2f64, MVT::i8);
break;
case Intrinsic::x86_avx_addsub_pd_256: // llvm.x86.avx.addsub.pd.256
case Intrinsic::x86_avx_hadd_pd_256: // llvm.x86.avx.hadd.pd.256
case Intrinsic::x86_avx_hsub_pd_256: // llvm.x86.avx.hsub.pd.256
case Intrinsic::x86_avx_max_pd_256: // llvm.x86.avx.max.pd.256
case Intrinsic::x86_avx_min_pd_256: // llvm.x86.avx.min.pd.256
VerifyIntrinsicPrototype(ID, IF, 1, 2, MVT::v4f64, MVT::v4f64, MVT::v4f64);
break;
case Intrinsic::x86_avx_blend_pd_256: // llvm.x86.avx.blend.pd.256
VerifyIntrinsicPrototype(ID, IF, 1, 3, MVT::v4f64, MVT::v4f64, MVT::v4f64, MVT::i32);
break;
case Intrinsic::x86_avx_cmp_pd_256: // llvm.x86.avx.cmp.pd.256
case Intrinsic::x86_avx_vperm2f128_pd_256: // llvm.x86.avx.vperm2f128.pd.256
VerifyIntrinsicPrototype(ID, IF, 1, 3, MVT::v4f64, MVT::v4f64, MVT::v4f64, MVT::i8);
break;
case Intrinsic::x86_avx_blendv_pd_256: // llvm.x86.avx.blendv.pd.256
case Intrinsic::x86_fma4_vfmadd_pd_256: // llvm.x86.fma4.vfmadd.pd.256
case Intrinsic::x86_fma4_vfmaddsub_pd_256: // llvm.x86.fma4.vfmaddsub.pd.256
case Intrinsic::x86_fma4_vfmsub_pd_256: // llvm.x86.fma4.vfmsub.pd.256
case Intrinsic::x86_fma4_vfmsubadd_pd_256: // llvm.x86.fma4.vfmsubadd.pd.256
case Intrinsic::x86_fma4_vfnmadd_pd_256: // llvm.x86.fma4.vfnmadd.pd.256
case Intrinsic::x86_fma4_vfnmsub_pd_256: // llvm.x86.fma4.vfnmsub.pd.256
VerifyIntrinsicPrototype(ID, IF, 1, 3, MVT::v4f64, MVT::v4f64, MVT::v4f64, MVT::v4f64);
break;
case Intrinsic::x86_xop_vpermil2pd_256: // llvm.x86.xop.vpermil2pd.256
VerifyIntrinsicPrototype(ID, IF, 1, 4, MVT::v4f64, MVT::v4f64, MVT::v4f64, MVT::v4f64, MVT::i8);
break;
case Intrinsic::x86_avx_vpermilvar_pd_256: // llvm.x86.avx.vpermilvar.pd.256
VerifyIntrinsicPrototype(ID, IF, 1, 2, MVT::v4f64, MVT::v4f64, MVT::v4i64);
break;
case Intrinsic::x86_avx_cvtdq2_pd_256: // llvm.x86.avx.cvtdq2.pd.256
VerifyIntrinsicPrototype(ID, IF, 1, 1, MVT::v4f64, MVT::v4i32);
break;
case Intrinsic::arm_neon_vcvtfp2hf: // llvm.arm.neon.vcvtfp2hf
VerifyIntrinsicPrototype(ID, IF, 1, 1, MVT::v4i16, MVT::v4f32);
break;
case Intrinsic::ppc_altivec_lvewx: // llvm.ppc.altivec.lvewx
case Intrinsic::ppc_altivec_lvx: // llvm.ppc.altivec.lvx
case Intrinsic::ppc_altivec_lvxl: // llvm.ppc.altivec.lvxl
VerifyIntrinsicPrototype(ID, IF, 1, 1, MVT::v4i32, MVT::iPTR);
break;
case Intrinsic::x86_avx2_maskload_d: // llvm.x86.avx2.maskload.d
VerifyIntrinsicPrototype(ID, IF, 1, 2, MVT::v4i32, MVT::iPTR, MVT::v4i32);
break;
case Intrinsic::x86_sse41_pmovsxbd: // llvm.x86.sse41.pmovsxbd
case Intrinsic::x86_sse41_pmovzxbd: // llvm.x86.sse41.pmovzxbd
case Intrinsic::x86_xop_vphaddbd: // llvm.x86.xop.vphaddbd
case Intrinsic::x86_xop_vphaddubd: // llvm.x86.xop.vphaddubd
VerifyIntrinsicPrototype(ID, IF, 1, 1, MVT::v4i32, MVT::v16i8);
break;
case Intrinsic::ppc_altivec_vmsummbm: // llvm.ppc.altivec.vmsummbm
case Intrinsic::ppc_altivec_vmsumubm: // llvm.ppc.altivec.vmsumubm
VerifyIntrinsicPrototype(ID, IF, 1, 3, MVT::v4i32, MVT::v16i8, MVT::v16i8, MVT::v4i32);
break;
case Intrinsic::ppc_altivec_vsum4sbs: // llvm.ppc.altivec.vsum4sbs
case Intrinsic::ppc_altivec_vsum4ubs: // llvm.ppc.altivec.vsum4ubs
VerifyIntrinsicPrototype(ID, IF, 1, 2, MVT::v4i32, MVT::v16i8, MVT::v4i32);
break;
case Intrinsic::x86_sse2_cvtpd2dq: // llvm.x86.sse2.cvtpd2dq
case Intrinsic::x86_sse2_cvttpd2dq: // llvm.x86.sse2.cvttpd2dq
VerifyIntrinsicPrototype(ID, IF, 1, 1, MVT::v4i32, MVT::v2f64);
break;
case Intrinsic::x86_sse2_cvtps2dq: // llvm.x86.sse2.cvtps2dq
case Intrinsic::x86_sse2_cvttps2dq: // llvm.x86.sse2.cvttps2dq
VerifyIntrinsicPrototype(ID, IF, 1, 1, MVT::v4i32, MVT::v4f32);
break;
case Intrinsic::ppc_altivec_vctsxs: // llvm.ppc.altivec.vctsxs
case Intrinsic::ppc_altivec_vctuxs: // llvm.ppc.altivec.vctuxs
VerifyIntrinsicPrototype(ID, IF, 1, 2, MVT::v4i32, MVT::v4f32, MVT::i32);
break;
case Intrinsic::arm_neon_vacgeq: // llvm.arm.neon.vacgeq
case Intrinsic::arm_neon_vacgtq: // llvm.arm.neon.vacgtq
case Intrinsic::ppc_altivec_vcmpbfp: // llvm.ppc.altivec.vcmpbfp
case Intrinsic::ppc_altivec_vcmpeqfp: // llvm.ppc.altivec.vcmpeqfp
case Intrinsic::ppc_altivec_vcmpgefp: // llvm.ppc.altivec.vcmpgefp
case Intrinsic::ppc_altivec_vcmpgtfp: // llvm.ppc.altivec.vcmpgtfp
VerifyIntrinsicPrototype(ID, IF, 1, 2, MVT::v4i32, MVT::v4f32, MVT::v4f32);
break;
case Intrinsic::x86_avx_cvt_pd2dq_256: // llvm.x86.avx.cvt.pd2dq.256
case Intrinsic::x86_avx_cvtt_pd2dq_256: // llvm.x86.avx.cvtt.pd2dq.256
VerifyIntrinsicPrototype(ID, IF, 1, 1, MVT::v4i32, MVT::v4f64);
break;
case Intrinsic::x86_avx2_pbroadcastd_128: // llvm.x86.avx2.pbroadcastd.128
case Intrinsic::x86_ssse3_pabs_d_128: // llvm.x86.ssse3.pabs.d.128
VerifyIntrinsicPrototype(ID, IF, 1, 1, MVT::v4i32, MVT::v4i32);
break;
case Intrinsic::spu_si_shli: // llvm.spu.si.shli
VerifyIntrinsicPrototype(ID, IF, 1, 2, MVT::v4i32, MVT::v4i32, MVT::i8);
break;
case Intrinsic::spu_si_ai: // llvm.spu.si.ai
case Intrinsic::spu_si_andi: // llvm.spu.si.andi
case Intrinsic::spu_si_ceqi: // llvm.spu.si.ceqi
case Intrinsic::spu_si_cgti: // llvm.spu.si.cgti
case Intrinsic::spu_si_clgti: // llvm.spu.si.clgti
case Intrinsic::spu_si_ori: // llvm.spu.si.ori
case Intrinsic::spu_si_sfi: // llvm.spu.si.sfi
case Intrinsic::spu_si_xori: // llvm.spu.si.xori
VerifyIntrinsicPrototype(ID, IF, 1, 2, MVT::v4i32, MVT::v4i32, MVT::i16);
break;
case Intrinsic::x86_sse2_pslli_d: // llvm.x86.sse2.pslli.d
case Intrinsic::x86_sse2_psrai_d: // llvm.x86.sse2.psrai.d
case Intrinsic::x86_sse2_psrli_d: // llvm.x86.sse2.psrli.d
VerifyIntrinsicPrototype(ID, IF, 1, 2, MVT::v4i32, MVT::v4i32, MVT::i32);
break;
case Intrinsic::ppc_altivec_vaddcuw: // llvm.ppc.altivec.vaddcuw
case Intrinsic::ppc_altivec_vaddsws: // llvm.ppc.altivec.vaddsws
case Intrinsic::ppc_altivec_vadduws: // llvm.ppc.altivec.vadduws
case Intrinsic::ppc_altivec_vavgsw: // llvm.ppc.altivec.vavgsw
case Intrinsic::ppc_altivec_vavguw: // llvm.ppc.altivec.vavguw
case Intrinsic::ppc_altivec_vcmpequw: // llvm.ppc.altivec.vcmpequw
case Intrinsic::ppc_altivec_vcmpgtsw: // llvm.ppc.altivec.vcmpgtsw
case Intrinsic::ppc_altivec_vcmpgtuw: // llvm.ppc.altivec.vcmpgtuw
case Intrinsic::ppc_altivec_vmaxsw: // llvm.ppc.altivec.vmaxsw
case Intrinsic::ppc_altivec_vmaxuw: // llvm.ppc.altivec.vmaxuw
case Intrinsic::ppc_altivec_vminsw: // llvm.ppc.altivec.vminsw
case Intrinsic::ppc_altivec_vminuw: // llvm.ppc.altivec.vminuw
case Intrinsic::ppc_altivec_vrlw: // llvm.ppc.altivec.vrlw
case Intrinsic::ppc_altivec_vsl: // llvm.ppc.altivec.vsl
case Intrinsic::ppc_altivec_vslo: // llvm.ppc.altivec.vslo
case Intrinsic::ppc_altivec_vslw: // llvm.ppc.altivec.vslw
case Intrinsic::ppc_altivec_vsr: // llvm.ppc.altivec.vsr
case Intrinsic::ppc_altivec_vsraw: // llvm.ppc.altivec.vsraw
case Intrinsic::ppc_altivec_vsro: // llvm.ppc.altivec.vsro
case Intrinsic::ppc_altivec_vsrw: // llvm.ppc.altivec.vsrw
case Intrinsic::ppc_altivec_vsubcuw: // llvm.ppc.altivec.vsubcuw
case Intrinsic::ppc_altivec_vsubsws: // llvm.ppc.altivec.vsubsws
case Intrinsic::ppc_altivec_vsubuws: // llvm.ppc.altivec.vsubuws
case Intrinsic::ppc_altivec_vsum2sws: // llvm.ppc.altivec.vsum2sws
case Intrinsic::ppc_altivec_vsumsws: // llvm.ppc.altivec.vsumsws
case Intrinsic::spu_si_a: // llvm.spu.si.a
case Intrinsic::spu_si_addx: // llvm.spu.si.addx
case Intrinsic::spu_si_and: // llvm.spu.si.and
case Intrinsic::spu_si_andc: // llvm.spu.si.andc
case Intrinsic::spu_si_bg: // llvm.spu.si.bg
case Intrinsic::spu_si_bgx: // llvm.spu.si.bgx
case Intrinsic::spu_si_ceq: // llvm.spu.si.ceq
case Intrinsic::spu_si_cg: // llvm.spu.si.cg
case Intrinsic::spu_si_cgt: // llvm.spu.si.cgt
case Intrinsic::spu_si_cgx: // llvm.spu.si.cgx
case Intrinsic::spu_si_clgt: // llvm.spu.si.clgt
case Intrinsic::spu_si_nand: // llvm.spu.si.nand
case Intrinsic::spu_si_nor: // llvm.spu.si.nor
case Intrinsic::spu_si_or: // llvm.spu.si.or
case Intrinsic::spu_si_orc: // llvm.spu.si.orc
case Intrinsic::spu_si_sf: // llvm.spu.si.sf
case Intrinsic::spu_si_sfx: // llvm.spu.si.sfx
case Intrinsic::spu_si_xor: // llvm.spu.si.xor
case Intrinsic::x86_avx2_psllv_d: // llvm.x86.avx2.psllv.d
case Intrinsic::x86_avx2_psrav_d: // llvm.x86.avx2.psrav.d
case Intrinsic::x86_avx2_psrlv_d: // llvm.x86.avx2.psrlv.d
case Intrinsic::x86_sse2_psll_d: // llvm.x86.sse2.psll.d
case Intrinsic::x86_sse2_psra_d: // llvm.x86.sse2.psra.d
case Intrinsic::x86_sse2_psrl_d: // llvm.x86.sse2.psrl.d
case Intrinsic::x86_sse41_pmaxsd: // llvm.x86.sse41.pmaxsd
case Intrinsic::x86_sse41_pmaxud: // llvm.x86.sse41.pmaxud
case Intrinsic::x86_sse41_pminsd: // llvm.x86.sse41.pminsd
case Intrinsic::x86_sse41_pminud: // llvm.x86.sse41.pminud
case Intrinsic::x86_ssse3_phadd_d_128: // llvm.x86.ssse3.phadd.d.128
case Intrinsic::x86_ssse3_phsub_d_128: // llvm.x86.ssse3.phsub.d.128
case Intrinsic::x86_ssse3_psign_d_128: // llvm.x86.ssse3.psign.d.128
case Intrinsic::x86_xop_vpcomeqd: // llvm.x86.xop.vpcomeqd
case Intrinsic::x86_xop_vpcomequd: // llvm.x86.xop.vpcomequd
case Intrinsic::x86_xop_vpcomfalsed: // llvm.x86.xop.vpcomfalsed
case Intrinsic::x86_xop_vpcomfalseud: // llvm.x86.xop.vpcomfalseud
case Intrinsic::x86_xop_vpcomged: // llvm.x86.xop.vpcomged
case Intrinsic::x86_xop_vpcomgeud: // llvm.x86.xop.vpcomgeud
case Intrinsic::x86_xop_vpcomgtd: // llvm.x86.xop.vpcomgtd
case Intrinsic::x86_xop_vpcomgtud: // llvm.x86.xop.vpcomgtud
case Intrinsic::x86_xop_vpcomled: // llvm.x86.xop.vpcomled
case Intrinsic::x86_xop_vpcomleud: // llvm.x86.xop.vpcomleud
case Intrinsic::x86_xop_vpcomltd: // llvm.x86.xop.vpcomltd
case Intrinsic::x86_xop_vpcomltud: // llvm.x86.xop.vpcomltud
case Intrinsic::x86_xop_vpcomned: // llvm.x86.xop.vpcomned
case Intrinsic::x86_xop_vpcomneud: // llvm.x86.xop.vpcomneud
case Intrinsic::x86_xop_vpcomtrued: // llvm.x86.xop.vpcomtrued
case Intrinsic::x86_xop_vpcomtrueud: // llvm.x86.xop.vpcomtrueud
case Intrinsic::x86_xop_vprotd: // llvm.x86.xop.vprotd
case Intrinsic::x86_xop_vpshad: // llvm.x86.xop.vpshad
case Intrinsic::x86_xop_vpshld: // llvm.x86.xop.vpshld
VerifyIntrinsicPrototype(ID, IF, 1, 2, MVT::v4i32, MVT::v4i32, MVT::v4i32);
break;
case Intrinsic::x86_avx2_pblendd_128: // llvm.x86.avx2.pblendd.128
VerifyIntrinsicPrototype(ID, IF, 1, 3, MVT::v4i32, MVT::v4i32, MVT::v4i32, MVT::i32);
break;
case Intrinsic::ppc_altivec_vperm: // llvm.ppc.altivec.vperm
VerifyIntrinsicPrototype(ID, IF, 1, 3, MVT::v4i32, MVT::v4i32, MVT::v4i32, MVT::v16i8);
break;
case Intrinsic::ppc_altivec_vsel: // llvm.ppc.altivec.vsel
case Intrinsic::x86_xop_vpmacsdd: // llvm.x86.xop.vpmacsdd
case Intrinsic::x86_xop_vpmacssdd: // llvm.x86.xop.vpmacssdd
VerifyIntrinsicPrototype(ID, IF, 1, 3, MVT::v4i32, MVT::v4i32, MVT::v4i32, MVT::v4i32);
break;
case Intrinsic::spu_si_mpyh: // llvm.spu.si.mpyh
VerifyIntrinsicPrototype(ID, IF, 1, 2, MVT::v4i32, MVT::v4i32, MVT::v8i16);
break;
case Intrinsic::ppc_altivec_vupkhpx: // llvm.ppc.altivec.vupkhpx
case Intrinsic::ppc_altivec_vupkhsh: // llvm.ppc.altivec.vupkhsh
case Intrinsic::ppc_altivec_vupklpx: // llvm.ppc.altivec.vupklpx
case Intrinsic::ppc_altivec_vupklsh: // llvm.ppc.altivec.vupklsh
case Intrinsic::x86_sse41_pmovsxwd: // llvm.x86.sse41.pmovsxwd
case Intrinsic::x86_sse41_pmovzxwd: // llvm.x86.sse41.pmovzxwd
case Intrinsic::x86_xop_vphadduwd: // llvm.x86.xop.vphadduwd
case Intrinsic::x86_xop_vphaddwd: // llvm.x86.xop.vphaddwd
case Intrinsic::x86_xop_vphsubwd: // llvm.x86.xop.vphsubwd
VerifyIntrinsicPrototype(ID, IF, 1, 1, MVT::v4i32, MVT::v8i16);
break;
case Intrinsic::spu_si_mpyi: // llvm.spu.si.mpyi
case Intrinsic::spu_si_mpyui: // llvm.spu.si.mpyui
VerifyIntrinsicPrototype(ID, IF, 1, 2, MVT::v4i32, MVT::v8i16, MVT::i16);
break;
case Intrinsic::ppc_altivec_vsum4shs: // llvm.ppc.altivec.vsum4shs
VerifyIntrinsicPrototype(ID, IF, 1, 2, MVT::v4i32, MVT::v8i16, MVT::v4i32);
break;
case Intrinsic::ppc_altivec_vmulesh: // llvm.ppc.altivec.vmulesh
case Intrinsic::ppc_altivec_vmuleuh: // llvm.ppc.altivec.vmuleuh
case Intrinsic::ppc_altivec_vmulosh: // llvm.ppc.altivec.vmulosh
case Intrinsic::ppc_altivec_vmulouh: // llvm.ppc.altivec.vmulouh
case Intrinsic::spu_si_mpy: // llvm.spu.si.mpy
case Intrinsic::spu_si_mpyhh: // llvm.spu.si.mpyhh
case Intrinsic::spu_si_mpyhha: // llvm.spu.si.mpyhha
case Intrinsic::spu_si_mpyhhau: // llvm.spu.si.mpyhhau
case Intrinsic::spu_si_mpyhhu: // llvm.spu.si.mpyhhu
case Intrinsic::spu_si_mpys: // llvm.spu.si.mpys
case Intrinsic::spu_si_mpyu: // llvm.spu.si.mpyu
case Intrinsic::x86_sse2_pmadd_wd: // llvm.x86.sse2.pmadd.wd
VerifyIntrinsicPrototype(ID, IF, 1, 2, MVT::v4i32, MVT::v8i16, MVT::v8i16);
break;
case Intrinsic::ppc_altivec_vmsumshm: // llvm.ppc.altivec.vmsumshm
case Intrinsic::ppc_altivec_vmsumshs: // llvm.ppc.altivec.vmsumshs
case Intrinsic::ppc_altivec_vmsumuhm: // llvm.ppc.altivec.vmsumuhm
case Intrinsic::ppc_altivec_vmsumuhs: // llvm.ppc.altivec.vmsumuhs
case Intrinsic::x86_xop_vpmacsswd: // llvm.x86.xop.vpmacsswd
case Intrinsic::x86_xop_vpmacswd: // llvm.x86.xop.vpmacswd
case Intrinsic::x86_xop_vpmadcsswd: // llvm.x86.xop.vpmadcsswd
case Intrinsic::x86_xop_vpmadcswd: // llvm.x86.xop.vpmadcswd
VerifyIntrinsicPrototype(ID, IF, 1, 3, MVT::v4i32, MVT::v8i16, MVT::v8i16, MVT::v4i32);
break;
case Intrinsic::spu_si_mpya: // llvm.spu.si.mpya
VerifyIntrinsicPrototype(ID, IF, 1, 3, MVT::v4i32, MVT::v8i16, MVT::v8i16, MVT::v8i16);
break;
case Intrinsic::x86_avx_vextractf128_si_256: // llvm.x86.avx.vextractf128.si.256
VerifyIntrinsicPrototype(ID, IF, 1, 2, MVT::v4i32, MVT::v8i32, MVT::i8);
break;
case Intrinsic::x86_avx2_movntdqa: // llvm.x86.avx2.movntdqa
case Intrinsic::x86_avx2_vbroadcasti128: // llvm.x86.avx2.vbroadcasti128
VerifyIntrinsicPrototype(ID, IF, 1, 1, MVT::v4i64, MVT::iPTR);
break;
case Intrinsic::x86_avx2_maskload_q_256: // llvm.x86.avx2.maskload.q.256
VerifyIntrinsicPrototype(ID, IF, 1, 2, MVT::v4i64, MVT::iPTR, MVT::v4i64);
break;
case Intrinsic::x86_avx2_pmovsxbq: // llvm.x86.avx2.pmovsxbq
case Intrinsic::x86_avx2_pmovzxbq: // llvm.x86.avx2.pmovzxbq
VerifyIntrinsicPrototype(ID, IF, 1, 1, MVT::v4i64, MVT::v16i8);
break;
case Intrinsic::x86_avx2_pbroadcastq_256: // llvm.x86.avx2.pbroadcastq.256
VerifyIntrinsicPrototype(ID, IF, 1, 1, MVT::v4i64, MVT::v2i64);
break;
case Intrinsic::x86_avx2_psad_bw: // llvm.x86.avx2.psad.bw
VerifyIntrinsicPrototype(ID, IF, 1, 2, MVT::v4i64, MVT::v32i8, MVT::v32i8);
break;
case Intrinsic::x86_avx2_pmovsxdq: // llvm.x86.avx2.pmovsxdq
case Intrinsic::x86_avx2_pmovzxdq: // llvm.x86.avx2.pmovzxdq
VerifyIntrinsicPrototype(ID, IF, 1, 1, MVT::v4i64, MVT::v4i32);
break;
case Intrinsic::x86_avx2_psll_dq: // llvm.x86.avx2.psll.dq
case Intrinsic::x86_avx2_psll_dq_bs: // llvm.x86.avx2.psll.dq.bs
case Intrinsic::x86_avx2_pslli_q: // llvm.x86.avx2.pslli.q
case Intrinsic::x86_avx2_psrl_dq: // llvm.x86.avx2.psrl.dq
case Intrinsic::x86_avx2_psrl_dq_bs: // llvm.x86.avx2.psrl.dq.bs
case Intrinsic::x86_avx2_psrli_q: // llvm.x86.avx2.psrli.q
VerifyIntrinsicPrototype(ID, IF, 1, 2, MVT::v4i64, MVT::v4i64, MVT::i32);
break;
case Intrinsic::x86_avx2_psll_q: // llvm.x86.avx2.psll.q
case Intrinsic::x86_avx2_psrl_q: // llvm.x86.avx2.psrl.q
VerifyIntrinsicPrototype(ID, IF, 1, 2, MVT::v4i64, MVT::v4i64, MVT::v2i64);
break;
case Intrinsic::x86_avx2_vinserti128: // llvm.x86.avx2.vinserti128
VerifyIntrinsicPrototype(ID, IF, 1, 3, MVT::v4i64, MVT::v4i64, MVT::v2i64, MVT::i8);
break;
case Intrinsic::x86_avx2_psllv_q_256: // llvm.x86.avx2.psllv.q.256
case Intrinsic::x86_avx2_psrlv_q_256: // llvm.x86.avx2.psrlv.q.256
VerifyIntrinsicPrototype(ID, IF, 1, 2, MVT::v4i64, MVT::v4i64, MVT::v4i64);
break;
case Intrinsic::x86_avx2_vperm2i128: // llvm.x86.avx2.vperm2i128
VerifyIntrinsicPrototype(ID, IF, 1, 3, MVT::v4i64, MVT::v4i64, MVT::v4i64, MVT::i8);
break;
case Intrinsic::x86_xop_vpcmov_256: // llvm.x86.xop.vpcmov.256
VerifyIntrinsicPrototype(ID, IF, 1, 3, MVT::v4i64, MVT::v4i64, MVT::v4i64, MVT::v4i64);
break;
case Intrinsic::x86_avx2_pmovsxwq: // llvm.x86.avx2.pmovsxwq
case Intrinsic::x86_avx2_pmovzxwq: // llvm.x86.avx2.pmovzxwq
VerifyIntrinsicPrototype(ID, IF, 1, 1, MVT::v4i64, MVT::v8i16);
break;
case Intrinsic::x86_avx2_pmul_dq: // llvm.x86.avx2.pmul.dq
case Intrinsic::x86_avx2_pmulu_dq: // llvm.x86.avx2.pmulu.dq
VerifyIntrinsicPrototype(ID, IF, 1, 2, MVT::v4i64, MVT::v8i32, MVT::v8i32);
break;
case Intrinsic::x86_avx_vbroadcast_ss_256: // llvm.x86.avx.vbroadcast.ss.256
case Intrinsic::x86_avx_vbroadcastf128_ps_256: // llvm.x86.avx.vbroadcastf128.ps.256
VerifyIntrinsicPrototype(ID, IF, 1, 1, MVT::v8f32, MVT::iPTR);
break;
case Intrinsic::x86_avx_maskload_ps_256: // llvm.x86.avx.maskload.ps.256
VerifyIntrinsicPrototype(ID, IF, 1, 2, MVT::v8f32, MVT::iPTR, MVT::v8f32);
break;
case Intrinsic::x86_avx2_vbroadcast_ss_ps_256: // llvm.x86.avx2.vbroadcast.ss.ps.256
VerifyIntrinsicPrototype(ID, IF, 1, 1, MVT::v8f32, MVT::v4f32);
break;
case Intrinsic::x86_avx_rcp_ps_256: // llvm.x86.avx.rcp.ps.256
case Intrinsic::x86_avx_rsqrt_ps_256: // llvm.x86.avx.rsqrt.ps.256
case Intrinsic::x86_avx_sqrt_ps_256: // llvm.x86.avx.sqrt.ps.256
case Intrinsic::x86_xop_vfrcz_ps_256: // llvm.x86.xop.vfrcz.ps.256
VerifyIntrinsicPrototype(ID, IF, 1, 1, MVT::v8f32, MVT::v8f32);
break;
case Intrinsic::x86_avx_round_ps_256: // llvm.x86.avx.round.ps.256
VerifyIntrinsicPrototype(ID, IF, 1, 2, MVT::v8f32, MVT::v8f32, MVT::i32);
break;
case Intrinsic::x86_avx_vinsertf128_ps_256: // llvm.x86.avx.vinsertf128.ps.256
VerifyIntrinsicPrototype(ID, IF, 1, 3, MVT::v8f32, MVT::v8f32, MVT::v4f32, MVT::i8);
break;
case Intrinsic::x86_avx2_permps: // llvm.x86.avx2.permps
case Intrinsic::x86_avx_addsub_ps_256: // llvm.x86.avx.addsub.ps.256
case Intrinsic::x86_avx_hadd_ps_256: // llvm.x86.avx.hadd.ps.256
case Intrinsic::x86_avx_hsub_ps_256: // llvm.x86.avx.hsub.ps.256
case Intrinsic::x86_avx_max_ps_256: // llvm.x86.avx.max.ps.256
case Intrinsic::x86_avx_min_ps_256: // llvm.x86.avx.min.ps.256
VerifyIntrinsicPrototype(ID, IF, 1, 2, MVT::v8f32, MVT::v8f32, MVT::v8f32);
break;
case Intrinsic::x86_avx_blend_ps_256: // llvm.x86.avx.blend.ps.256
case Intrinsic::x86_avx_dp_ps_256: // llvm.x86.avx.dp.ps.256
VerifyIntrinsicPrototype(ID, IF, 1, 3, MVT::v8f32, MVT::v8f32, MVT::v8f32, MVT::i32);
break;
case Intrinsic::x86_avx_cmp_ps_256: // llvm.x86.avx.cmp.ps.256
case Intrinsic::x86_avx_vperm2f128_ps_256: // llvm.x86.avx.vperm2f128.ps.256
VerifyIntrinsicPrototype(ID, IF, 1, 3, MVT::v8f32, MVT::v8f32, MVT::v8f32, MVT::i8);
break;
case Intrinsic::x86_avx_blendv_ps_256: // llvm.x86.avx.blendv.ps.256
case Intrinsic::x86_fma4_vfmadd_ps_256: // llvm.x86.fma4.vfmadd.ps.256
case Intrinsic::x86_fma4_vfmaddsub_ps_256: // llvm.x86.fma4.vfmaddsub.ps.256
case Intrinsic::x86_fma4_vfmsub_ps_256: // llvm.x86.fma4.vfmsub.ps.256
case Intrinsic::x86_fma4_vfmsubadd_ps_256: // llvm.x86.fma4.vfmsubadd.ps.256
case Intrinsic::x86_fma4_vfnmadd_ps_256: // llvm.x86.fma4.vfnmadd.ps.256
case Intrinsic::x86_fma4_vfnmsub_ps_256: // llvm.x86.fma4.vfnmsub.ps.256
VerifyIntrinsicPrototype(ID, IF, 1, 3, MVT::v8f32, MVT::v8f32, MVT::v8f32, MVT::v8f32);
break;
case Intrinsic::x86_xop_vpermil2ps_256: // llvm.x86.xop.vpermil2ps.256
VerifyIntrinsicPrototype(ID, IF, 1, 4, MVT::v8f32, MVT::v8f32, MVT::v8f32, MVT::v8f32, MVT::i8);
break;
case Intrinsic::x86_avx_vpermilvar_ps_256: // llvm.x86.avx.vpermilvar.ps.256
VerifyIntrinsicPrototype(ID, IF, 1, 2, MVT::v8f32, MVT::v8f32, MVT::v8i32);
break;
case Intrinsic::x86_vcvtph2ps_256: // llvm.x86.vcvtph2ps.256
VerifyIntrinsicPrototype(ID, IF, 1, 1, MVT::v8f32, MVT::v8i16);
break;
case Intrinsic::x86_avx_cvtdq2_ps_256: // llvm.x86.avx.cvtdq2.ps.256
VerifyIntrinsicPrototype(ID, IF, 1, 1, MVT::v8f32, MVT::v8i32);
break;
case Intrinsic::ppc_altivec_mfvscr: // llvm.ppc.altivec.mfvscr
VerifyIntrinsicPrototype(ID, IF, 1, 0, MVT::v8i16);
break;
case Intrinsic::ppc_altivec_lvehx: // llvm.ppc.altivec.lvehx
VerifyIntrinsicPrototype(ID, IF, 1, 1, MVT::v8i16, MVT::iPTR);
break;
case Intrinsic::ppc_altivec_vupkhsb: // llvm.ppc.altivec.vupkhsb
case Intrinsic::ppc_altivec_vupklsb: // llvm.ppc.altivec.vupklsb
case Intrinsic::x86_sse41_pmovsxbw: // llvm.x86.sse41.pmovsxbw
case Intrinsic::x86_sse41_pmovzxbw: // llvm.x86.sse41.pmovzxbw
case Intrinsic::x86_xop_vphaddbw: // llvm.x86.xop.vphaddbw
case Intrinsic::x86_xop_vphaddubw: // llvm.x86.xop.vphaddubw
case Intrinsic::x86_xop_vphsubbw: // llvm.x86.xop.vphsubbw
VerifyIntrinsicPrototype(ID, IF, 1, 1, MVT::v8i16, MVT::v16i8);
break;
case Intrinsic::ppc_altivec_vmulesb: // llvm.ppc.altivec.vmulesb
case Intrinsic::ppc_altivec_vmuleub: // llvm.ppc.altivec.vmuleub
case Intrinsic::ppc_altivec_vmulosb: // llvm.ppc.altivec.vmulosb
case Intrinsic::ppc_altivec_vmuloub: // llvm.ppc.altivec.vmuloub
case Intrinsic::x86_ssse3_pmadd_ub_sw_128: // llvm.x86.ssse3.pmadd.ub.sw.128
VerifyIntrinsicPrototype(ID, IF, 1, 2, MVT::v8i16, MVT::v16i8, MVT::v16i8);
break;
case Intrinsic::x86_sse41_mpsadbw: // llvm.x86.sse41.mpsadbw
VerifyIntrinsicPrototype(ID, IF, 1, 3, MVT::v8i16, MVT::v16i8, MVT::v16i8, MVT::i32);
break;
case Intrinsic::x86_vcvtps2ph_128: // llvm.x86.vcvtps2ph.128
VerifyIntrinsicPrototype(ID, IF, 1, 2, MVT::v8i16, MVT::v4f32, MVT::i32);
break;
case Intrinsic::ppc_altivec_vpkpx: // llvm.ppc.altivec.vpkpx
case Intrinsic::ppc_altivec_vpkswus: // llvm.ppc.altivec.vpkswus
case Intrinsic::ppc_altivec_vpkuwus: // llvm.ppc.altivec.vpkuwus
case Intrinsic::x86_sse2_packssdw_128: // llvm.x86.sse2.packssdw.128
case Intrinsic::x86_sse41_packusdw: // llvm.x86.sse41.packusdw
VerifyIntrinsicPrototype(ID, IF, 1, 2, MVT::v8i16, MVT::v4i32, MVT::v4i32);
break;
case Intrinsic::x86_vcvtps2ph_256: // llvm.x86.vcvtps2ph.256
VerifyIntrinsicPrototype(ID, IF, 1, 2, MVT::v8i16, MVT::v8f32, MVT::i32);
break;
case Intrinsic::x86_avx2_pbroadcastw_128: // llvm.x86.avx2.pbroadcastw.128
case Intrinsic::x86_sse41_phminposuw: // llvm.x86.sse41.phminposuw
case Intrinsic::x86_ssse3_pabs_w_128: // llvm.x86.ssse3.pabs.w.128
VerifyIntrinsicPrototype(ID, IF, 1, 1, MVT::v8i16, MVT::v8i16);
break;
case Intrinsic::spu_si_ahi: // llvm.spu.si.ahi
case Intrinsic::spu_si_andhi: // llvm.spu.si.andhi
case Intrinsic::spu_si_ceqhi: // llvm.spu.si.ceqhi
case Intrinsic::spu_si_cgthi: // llvm.spu.si.cgthi
case Intrinsic::spu_si_clgthi: // llvm.spu.si.clgthi
case Intrinsic::spu_si_fsmbi: // llvm.spu.si.fsmbi
case Intrinsic::spu_si_orhi: // llvm.spu.si.orhi
case Intrinsic::spu_si_sfhi: // llvm.spu.si.sfhi
case Intrinsic::spu_si_xorhi: // llvm.spu.si.xorhi
VerifyIntrinsicPrototype(ID, IF, 1, 2, MVT::v8i16, MVT::v8i16, MVT::i16);
break;
case Intrinsic::spu_si_shlqbi: // llvm.spu.si.shlqbi
case Intrinsic::spu_si_shlqby: // llvm.spu.si.shlqby
case Intrinsic::x86_sse2_pslli_w: // llvm.x86.sse2.pslli.w
case Intrinsic::x86_sse2_psrai_w: // llvm.x86.sse2.psrai.w
case Intrinsic::x86_sse2_psrli_w: // llvm.x86.sse2.psrli.w
VerifyIntrinsicPrototype(ID, IF, 1, 2, MVT::v8i16, MVT::v8i16, MVT::i32);
break;
case Intrinsic::ppc_altivec_vaddshs: // llvm.ppc.altivec.vaddshs
case Intrinsic::ppc_altivec_vadduhs: // llvm.ppc.altivec.vadduhs
case Intrinsic::ppc_altivec_vavgsh: // llvm.ppc.altivec.vavgsh
case Intrinsic::ppc_altivec_vavguh: // llvm.ppc.altivec.vavguh
case Intrinsic::ppc_altivec_vcmpequh: // llvm.ppc.altivec.vcmpequh
case Intrinsic::ppc_altivec_vcmpgtsh: // llvm.ppc.altivec.vcmpgtsh
case Intrinsic::ppc_altivec_vcmpgtuh: // llvm.ppc.altivec.vcmpgtuh
case Intrinsic::ppc_altivec_vmaxsh: // llvm.ppc.altivec.vmaxsh
case Intrinsic::ppc_altivec_vmaxuh: // llvm.ppc.altivec.vmaxuh
case Intrinsic::ppc_altivec_vminsh: // llvm.ppc.altivec.vminsh
case Intrinsic::ppc_altivec_vminuh: // llvm.ppc.altivec.vminuh
case Intrinsic::ppc_altivec_vrlh: // llvm.ppc.altivec.vrlh
case Intrinsic::ppc_altivec_vslh: // llvm.ppc.altivec.vslh
case Intrinsic::ppc_altivec_vsrah: // llvm.ppc.altivec.vsrah
case Intrinsic::ppc_altivec_vsrh: // llvm.ppc.altivec.vsrh
case Intrinsic::ppc_altivec_vsubshs: // llvm.ppc.altivec.vsubshs
case Intrinsic::ppc_altivec_vsubuhs: // llvm.ppc.altivec.vsubuhs
case Intrinsic::spu_si_ah: // llvm.spu.si.ah
case Intrinsic::spu_si_ceqh: // llvm.spu.si.ceqh
case Intrinsic::spu_si_cgth: // llvm.spu.si.cgth
case Intrinsic::spu_si_clgth: // llvm.spu.si.clgth
case Intrinsic::spu_si_sfh: // llvm.spu.si.sfh
case Intrinsic::x86_sse2_padds_w: // llvm.x86.sse2.padds.w
case Intrinsic::x86_sse2_paddus_w: // llvm.x86.sse2.paddus.w
case Intrinsic::x86_sse2_pavg_w: // llvm.x86.sse2.pavg.w
case Intrinsic::x86_sse2_pmaxs_w: // llvm.x86.sse2.pmaxs.w
case Intrinsic::x86_sse2_pmins_w: // llvm.x86.sse2.pmins.w
case Intrinsic::x86_sse2_pmulh_w: // llvm.x86.sse2.pmulh.w
case Intrinsic::x86_sse2_pmulhu_w: // llvm.x86.sse2.pmulhu.w
case Intrinsic::x86_sse2_psll_w: // llvm.x86.sse2.psll.w
case Intrinsic::x86_sse2_psra_w: // llvm.x86.sse2.psra.w
case Intrinsic::x86_sse2_psrl_w: // llvm.x86.sse2.psrl.w
case Intrinsic::x86_sse2_psubs_w: // llvm.x86.sse2.psubs.w
case Intrinsic::x86_sse2_psubus_w: // llvm.x86.sse2.psubus.w
case Intrinsic::x86_sse41_pmaxuw: // llvm.x86.sse41.pmaxuw
case Intrinsic::x86_sse41_pminuw: // llvm.x86.sse41.pminuw
case Intrinsic::x86_ssse3_phadd_sw_128: // llvm.x86.ssse3.phadd.sw.128
case Intrinsic::x86_ssse3_phadd_w_128: // llvm.x86.ssse3.phadd.w.128
case Intrinsic::x86_ssse3_phsub_sw_128: // llvm.x86.ssse3.phsub.sw.128
case Intrinsic::x86_ssse3_phsub_w_128: // llvm.x86.ssse3.phsub.w.128
case Intrinsic::x86_ssse3_pmul_hr_sw_128: // llvm.x86.ssse3.pmul.hr.sw.128
case Intrinsic::x86_ssse3_psign_w_128: // llvm.x86.ssse3.psign.w.128
case Intrinsic::x86_xop_vpcomequw: // llvm.x86.xop.vpcomequw
case Intrinsic::x86_xop_vpcomeqw: // llvm.x86.xop.vpcomeqw
case Intrinsic::x86_xop_vpcomfalseuw: // llvm.x86.xop.vpcomfalseuw
case Intrinsic::x86_xop_vpcomfalsew: // llvm.x86.xop.vpcomfalsew
case Intrinsic::x86_xop_vpcomgeuw: // llvm.x86.xop.vpcomgeuw
case Intrinsic::x86_xop_vpcomgew: // llvm.x86.xop.vpcomgew
case Intrinsic::x86_xop_vpcomgtuw: // llvm.x86.xop.vpcomgtuw
case Intrinsic::x86_xop_vpcomgtw: // llvm.x86.xop.vpcomgtw
case Intrinsic::x86_xop_vpcomleuw: // llvm.x86.xop.vpcomleuw
case Intrinsic::x86_xop_vpcomlew: // llvm.x86.xop.vpcomlew
case Intrinsic::x86_xop_vpcomltuw: // llvm.x86.xop.vpcomltuw
case Intrinsic::x86_xop_vpcomltw: // llvm.x86.xop.vpcomltw
case Intrinsic::x86_xop_vpcomneuw: // llvm.x86.xop.vpcomneuw
case Intrinsic::x86_xop_vpcomnew: // llvm.x86.xop.vpcomnew
case Intrinsic::x86_xop_vpcomtrueuw: // llvm.x86.xop.vpcomtrueuw
case Intrinsic::x86_xop_vpcomtruew: // llvm.x86.xop.vpcomtruew
case Intrinsic::x86_xop_vprotw: // llvm.x86.xop.vprotw
case Intrinsic::x86_xop_vpshaw: // llvm.x86.xop.vpshaw
case Intrinsic::x86_xop_vpshlw: // llvm.x86.xop.vpshlw
VerifyIntrinsicPrototype(ID, IF, 1, 2, MVT::v8i16, MVT::v8i16, MVT::v8i16);
break;
case Intrinsic::x86_sse41_pblendw: // llvm.x86.sse41.pblendw
VerifyIntrinsicPrototype(ID, IF, 1, 3, MVT::v8i16, MVT::v8i16, MVT::v8i16, MVT::i32);
break;
case Intrinsic::ppc_altivec_vmhaddshs: // llvm.ppc.altivec.vmhaddshs
case Intrinsic::ppc_altivec_vmhraddshs: // llvm.ppc.altivec.vmhraddshs
case Intrinsic::ppc_altivec_vmladduhm: // llvm.ppc.altivec.vmladduhm
case Intrinsic::x86_xop_vpmacssww: // llvm.x86.xop.vpmacssww
case Intrinsic::x86_xop_vpmacsww: // llvm.x86.xop.vpmacsww
VerifyIntrinsicPrototype(ID, IF, 1, 3, MVT::v8i16, MVT::v8i16, MVT::v8i16, MVT::v8i16);
break;
case Intrinsic::x86_avx2_maskload_d_256: // llvm.x86.avx2.maskload.d.256
VerifyIntrinsicPrototype(ID, IF, 1, 2, MVT::v8i32, MVT::iPTR, MVT::v8i32);
break;
case Intrinsic::x86_avx2_pmadd_wd: // llvm.x86.avx2.pmadd.wd
VerifyIntrinsicPrototype(ID, IF, 1, 2, MVT::v8i32, MVT::v16i16, MVT::v16i16);
break;
case Intrinsic::x86_avx2_pmovsxbd: // llvm.x86.avx2.pmovsxbd
case Intrinsic::x86_avx2_pmovzxbd: // llvm.x86.avx2.pmovzxbd
VerifyIntrinsicPrototype(ID, IF, 1, 1, MVT::v8i32, MVT::v16i8);
break;
case Intrinsic::x86_avx2_pbroadcastd_256: // llvm.x86.avx2.pbroadcastd.256
VerifyIntrinsicPrototype(ID, IF, 1, 1, MVT::v8i32, MVT::v4i32);
break;
case Intrinsic::x86_avx_cvt_ps2dq_256: // llvm.x86.avx.cvt.ps2dq.256
case Intrinsic::x86_avx_cvtt_ps2dq_256: // llvm.x86.avx.cvtt.ps2dq.256
VerifyIntrinsicPrototype(ID, IF, 1, 1, MVT::v8i32, MVT::v8f32);
break;
case Intrinsic::x86_avx2_pmovsxwd: // llvm.x86.avx2.pmovsxwd
case Intrinsic::x86_avx2_pmovzxwd: // llvm.x86.avx2.pmovzxwd
VerifyIntrinsicPrototype(ID, IF, 1, 1, MVT::v8i32, MVT::v8i16);
break;
case Intrinsic::x86_avx2_pabs_d: // llvm.x86.avx2.pabs.d
VerifyIntrinsicPrototype(ID, IF, 1, 1, MVT::v8i32, MVT::v8i32);
break;
case Intrinsic::x86_avx2_pslli_d: // llvm.x86.avx2.pslli.d
case Intrinsic::x86_avx2_psrai_d: // llvm.x86.avx2.psrai.d
case Intrinsic::x86_avx2_psrli_d: // llvm.x86.avx2.psrli.d
VerifyIntrinsicPrototype(ID, IF, 1, 2, MVT::v8i32, MVT::v8i32, MVT::i32);
break;
case Intrinsic::x86_avx2_psll_d: // llvm.x86.avx2.psll.d
case Intrinsic::x86_avx2_psra_d: // llvm.x86.avx2.psra.d
case Intrinsic::x86_avx2_psrl_d: // llvm.x86.avx2.psrl.d
VerifyIntrinsicPrototype(ID, IF, 1, 2, MVT::v8i32, MVT::v8i32, MVT::v4i32);
break;
case Intrinsic::x86_avx_vinsertf128_si_256: // llvm.x86.avx.vinsertf128.si.256
VerifyIntrinsicPrototype(ID, IF, 1, 3, MVT::v8i32, MVT::v8i32, MVT::v4i32, MVT::i8);
break;
case Intrinsic::x86_avx2_permd: // llvm.x86.avx2.permd
case Intrinsic::x86_avx2_phadd_d: // llvm.x86.avx2.phadd.d
case Intrinsic::x86_avx2_phsub_d: // llvm.x86.avx2.phsub.d
case Intrinsic::x86_avx2_pmaxs_d: // llvm.x86.avx2.pmaxs.d
case Intrinsic::x86_avx2_pmaxu_d: // llvm.x86.avx2.pmaxu.d
case Intrinsic::x86_avx2_pmins_d: // llvm.x86.avx2.pmins.d
case Intrinsic::x86_avx2_pminu_d: // llvm.x86.avx2.pminu.d
case Intrinsic::x86_avx2_psign_d: // llvm.x86.avx2.psign.d
case Intrinsic::x86_avx2_psllv_d_256: // llvm.x86.avx2.psllv.d.256
case Intrinsic::x86_avx2_psrav_d_256: // llvm.x86.avx2.psrav.d.256
case Intrinsic::x86_avx2_psrlv_d_256: // llvm.x86.avx2.psrlv.d.256
VerifyIntrinsicPrototype(ID, IF, 1, 2, MVT::v8i32, MVT::v8i32, MVT::v8i32);
break;
case Intrinsic::x86_avx2_pblendd_256: // llvm.x86.avx2.pblendd.256
VerifyIntrinsicPrototype(ID, IF, 1, 3, MVT::v8i32, MVT::v8i32, MVT::v8i32, MVT::i32);
break;
case Intrinsic::x86_avx_vperm2f128_si_256: // llvm.x86.avx.vperm2f128.si.256
VerifyIntrinsicPrototype(ID, IF, 1, 3, MVT::v8i32, MVT::v8i32, MVT::v8i32, MVT::i8);
break;
case Intrinsic::arm_neon_vtbl1: // llvm.arm.neon.vtbl1
VerifyIntrinsicPrototype(ID, IF, 1, 2, MVT::v8i8, MVT::v8i8, MVT::v8i8);
break;
case Intrinsic::arm_neon_vtbl2: // llvm.arm.neon.vtbl2
case Intrinsic::arm_neon_vtbx1: // llvm.arm.neon.vtbx1
VerifyIntrinsicPrototype(ID, IF, 1, 3, MVT::v8i8, MVT::v8i8, MVT::v8i8, MVT::v8i8);
break;
case Intrinsic::arm_neon_vtbl3: // llvm.arm.neon.vtbl3
case Intrinsic::arm_neon_vtbx2: // llvm.arm.neon.vtbx2
VerifyIntrinsicPrototype(ID, IF, 1, 4, MVT::v8i8, MVT::v8i8, MVT::v8i8, MVT::v8i8, MVT::v8i8);
break;
case Intrinsic::arm_neon_vtbl4: // llvm.arm.neon.vtbl4
case Intrinsic::arm_neon_vtbx3: // llvm.arm.neon.vtbx3
VerifyIntrinsicPrototype(ID, IF, 1, 5, MVT::v8i8, MVT::v8i8, MVT::v8i8, MVT::v8i8, MVT::v8i8, MVT::v8i8);
break;
case Intrinsic::arm_neon_vtbx4: // llvm.arm.neon.vtbx4
VerifyIntrinsicPrototype(ID, IF, 1, 6, MVT::v8i8, MVT::v8i8, MVT::v8i8, MVT::v8i8, MVT::v8i8, MVT::v8i8, MVT::v8i8);
break;
case Intrinsic::x86_sse_cvtpd2pi: // llvm.x86.sse.cvtpd2pi
case Intrinsic::x86_sse_cvttpd2pi: // llvm.x86.sse.cvttpd2pi
VerifyIntrinsicPrototype(ID, IF, 1, 1, MVT::x86mmx, MVT::v2f64);
break;
case Intrinsic::x86_sse_cvtps2pi: // llvm.x86.sse.cvtps2pi
case Intrinsic::x86_sse_cvttps2pi: // llvm.x86.sse.cvttps2pi
VerifyIntrinsicPrototype(ID, IF, 1, 1, MVT::x86mmx, MVT::v4f32);
break;
case Intrinsic::x86_3dnow_pf2id: // llvm.x86.3dnow.pf2id
case Intrinsic::x86_3dnow_pfrcp: // llvm.x86.3dnow.pfrcp
case Intrinsic::x86_3dnow_pfrsqrt: // llvm.x86.3dnow.pfrsqrt
case Intrinsic::x86_3dnow_pi2fd: // llvm.x86.3dnow.pi2fd
case Intrinsic::x86_3dnowa_pf2iw: // llvm.x86.3dnowa.pf2iw
case Intrinsic::x86_3dnowa_pi2fw: // llvm.x86.3dnowa.pi2fw
case Intrinsic::x86_3dnowa_pswapd: // llvm.x86.3dnowa.pswapd
case Intrinsic::x86_ssse3_pabs_b: // llvm.x86.ssse3.pabs.b
case Intrinsic::x86_ssse3_pabs_d: // llvm.x86.ssse3.pabs.d
case Intrinsic::x86_ssse3_pabs_w: // llvm.x86.ssse3.pabs.w
VerifyIntrinsicPrototype(ID, IF, 1, 1, MVT::x86mmx, MVT::x86mmx);
break;
case Intrinsic::x86_mmx_pslli_d: // llvm.x86.mmx.pslli.d
case Intrinsic::x86_mmx_pslli_q: // llvm.x86.mmx.pslli.q
case Intrinsic::x86_mmx_pslli_w: // llvm.x86.mmx.pslli.w
case Intrinsic::x86_mmx_psrai_d: // llvm.x86.mmx.psrai.d
case Intrinsic::x86_mmx_psrai_w: // llvm.x86.mmx.psrai.w
case Intrinsic::x86_mmx_psrli_d: // llvm.x86.mmx.psrli.d
case Intrinsic::x86_mmx_psrli_q: // llvm.x86.mmx.psrli.q
case Intrinsic::x86_mmx_psrli_w: // llvm.x86.mmx.psrli.w
VerifyIntrinsicPrototype(ID, IF, 1, 2, MVT::x86mmx, MVT::x86mmx, MVT::i32);
break;
case Intrinsic::x86_mmx_pinsr_w: // llvm.x86.mmx.pinsr.w
VerifyIntrinsicPrototype(ID, IF, 1, 3, MVT::x86mmx, MVT::x86mmx, MVT::i32, MVT::i32);
break;
case Intrinsic::x86_sse_pshuf_w: // llvm.x86.sse.pshuf.w
VerifyIntrinsicPrototype(ID, IF, 1, 2, MVT::x86mmx, MVT::x86mmx, MVT::i8);
break;
case Intrinsic::x86_3dnow_pavgusb: // llvm.x86.3dnow.pavgusb
case Intrinsic::x86_3dnow_pfacc: // llvm.x86.3dnow.pfacc
case Intrinsic::x86_3dnow_pfadd: // llvm.x86.3dnow.pfadd
case Intrinsic::x86_3dnow_pfcmpeq: // llvm.x86.3dnow.pfcmpeq
case Intrinsic::x86_3dnow_pfcmpge: // llvm.x86.3dnow.pfcmpge
case Intrinsic::x86_3dnow_pfcmpgt: // llvm.x86.3dnow.pfcmpgt
case Intrinsic::x86_3dnow_pfmax: // llvm.x86.3dnow.pfmax
case Intrinsic::x86_3dnow_pfmin: // llvm.x86.3dnow.pfmin
case Intrinsic::x86_3dnow_pfmul: // llvm.x86.3dnow.pfmul
case Intrinsic::x86_3dnow_pfrcpit1: // llvm.x86.3dnow.pfrcpit1
case Intrinsic::x86_3dnow_pfrcpit2: // llvm.x86.3dnow.pfrcpit2
case Intrinsic::x86_3dnow_pfrsqit1: // llvm.x86.3dnow.pfrsqit1
case Intrinsic::x86_3dnow_pfsub: // llvm.x86.3dnow.pfsub
case Intrinsic::x86_3dnow_pfsubr: // llvm.x86.3dnow.pfsubr
case Intrinsic::x86_3dnow_pmulhrw: // llvm.x86.3dnow.pmulhrw
case Intrinsic::x86_3dnowa_pfnacc: // llvm.x86.3dnowa.pfnacc
case Intrinsic::x86_3dnowa_pfpnacc: // llvm.x86.3dnowa.pfpnacc
case Intrinsic::x86_mmx_packssdw: // llvm.x86.mmx.packssdw
case Intrinsic::x86_mmx_packsswb: // llvm.x86.mmx.packsswb
case Intrinsic::x86_mmx_packuswb: // llvm.x86.mmx.packuswb
case Intrinsic::x86_mmx_padd_b: // llvm.x86.mmx.padd.b
case Intrinsic::x86_mmx_padd_d: // llvm.x86.mmx.padd.d
case Intrinsic::x86_mmx_padd_q: // llvm.x86.mmx.padd.q
case Intrinsic::x86_mmx_padd_w: // llvm.x86.mmx.padd.w
case Intrinsic::x86_mmx_padds_b: // llvm.x86.mmx.padds.b
case Intrinsic::x86_mmx_padds_w: // llvm.x86.mmx.padds.w
case Intrinsic::x86_mmx_paddus_b: // llvm.x86.mmx.paddus.b
case Intrinsic::x86_mmx_paddus_w: // llvm.x86.mmx.paddus.w
case Intrinsic::x86_mmx_pand: // llvm.x86.mmx.pand
case Intrinsic::x86_mmx_pandn: // llvm.x86.mmx.pandn
case Intrinsic::x86_mmx_pavg_b: // llvm.x86.mmx.pavg.b
case Intrinsic::x86_mmx_pavg_w: // llvm.x86.mmx.pavg.w
case Intrinsic::x86_mmx_pcmpeq_b: // llvm.x86.mmx.pcmpeq.b
case Intrinsic::x86_mmx_pcmpeq_d: // llvm.x86.mmx.pcmpeq.d
case Intrinsic::x86_mmx_pcmpeq_w: // llvm.x86.mmx.pcmpeq.w
case Intrinsic::x86_mmx_pcmpgt_b: // llvm.x86.mmx.pcmpgt.b
case Intrinsic::x86_mmx_pcmpgt_d: // llvm.x86.mmx.pcmpgt.d
case Intrinsic::x86_mmx_pcmpgt_w: // llvm.x86.mmx.pcmpgt.w
case Intrinsic::x86_mmx_pmadd_wd: // llvm.x86.mmx.pmadd.wd
case Intrinsic::x86_mmx_pmaxs_w: // llvm.x86.mmx.pmaxs.w
case Intrinsic::x86_mmx_pmaxu_b: // llvm.x86.mmx.pmaxu.b
case Intrinsic::x86_mmx_pmins_w: // llvm.x86.mmx.pmins.w
case Intrinsic::x86_mmx_pminu_b: // llvm.x86.mmx.pminu.b
case Intrinsic::x86_mmx_pmulh_w: // llvm.x86.mmx.pmulh.w
case Intrinsic::x86_mmx_pmulhu_w: // llvm.x86.mmx.pmulhu.w
case Intrinsic::x86_mmx_pmull_w: // llvm.x86.mmx.pmull.w
case Intrinsic::x86_mmx_pmulu_dq: // llvm.x86.mmx.pmulu.dq
case Intrinsic::x86_mmx_por: // llvm.x86.mmx.por
case Intrinsic::x86_mmx_psad_bw: // llvm.x86.mmx.psad.bw
case Intrinsic::x86_mmx_psll_d: // llvm.x86.mmx.psll.d
case Intrinsic::x86_mmx_psll_q: // llvm.x86.mmx.psll.q
case Intrinsic::x86_mmx_psll_w: // llvm.x86.mmx.psll.w
case Intrinsic::x86_mmx_psra_d: // llvm.x86.mmx.psra.d
case Intrinsic::x86_mmx_psra_w: // llvm.x86.mmx.psra.w
case Intrinsic::x86_mmx_psrl_d: // llvm.x86.mmx.psrl.d
case Intrinsic::x86_mmx_psrl_q: // llvm.x86.mmx.psrl.q
case Intrinsic::x86_mmx_psrl_w: // llvm.x86.mmx.psrl.w
case Intrinsic::x86_mmx_psub_b: // llvm.x86.mmx.psub.b
case Intrinsic::x86_mmx_psub_d: // llvm.x86.mmx.psub.d
case Intrinsic::x86_mmx_psub_q: // llvm.x86.mmx.psub.q
case Intrinsic::x86_mmx_psub_w: // llvm.x86.mmx.psub.w
case Intrinsic::x86_mmx_psubs_b: // llvm.x86.mmx.psubs.b
case Intrinsic::x86_mmx_psubs_w: // llvm.x86.mmx.psubs.w
case Intrinsic::x86_mmx_psubus_b: // llvm.x86.mmx.psubus.b
case Intrinsic::x86_mmx_psubus_w: // llvm.x86.mmx.psubus.w
case Intrinsic::x86_mmx_punpckhbw: // llvm.x86.mmx.punpckhbw
case Intrinsic::x86_mmx_punpckhdq: // llvm.x86.mmx.punpckhdq
case Intrinsic::x86_mmx_punpckhwd: // llvm.x86.mmx.punpckhwd
case Intrinsic::x86_mmx_punpcklbw: // llvm.x86.mmx.punpcklbw
case Intrinsic::x86_mmx_punpckldq: // llvm.x86.mmx.punpckldq
case Intrinsic::x86_mmx_punpcklwd: // llvm.x86.mmx.punpcklwd
case Intrinsic::x86_mmx_pxor: // llvm.x86.mmx.pxor
case Intrinsic::x86_ssse3_phadd_d: // llvm.x86.ssse3.phadd.d
case Intrinsic::x86_ssse3_phadd_sw: // llvm.x86.ssse3.phadd.sw
case Intrinsic::x86_ssse3_phadd_w: // llvm.x86.ssse3.phadd.w
case Intrinsic::x86_ssse3_phsub_d: // llvm.x86.ssse3.phsub.d
case Intrinsic::x86_ssse3_phsub_sw: // llvm.x86.ssse3.phsub.sw
case Intrinsic::x86_ssse3_phsub_w: // llvm.x86.ssse3.phsub.w
case Intrinsic::x86_ssse3_pmadd_ub_sw: // llvm.x86.ssse3.pmadd.ub.sw
case Intrinsic::x86_ssse3_pmul_hr_sw: // llvm.x86.ssse3.pmul.hr.sw
case Intrinsic::x86_ssse3_pshuf_b: // llvm.x86.ssse3.pshuf.b
case Intrinsic::x86_ssse3_psign_b: // llvm.x86.ssse3.psign.b
case Intrinsic::x86_ssse3_psign_d: // llvm.x86.ssse3.psign.d
case Intrinsic::x86_ssse3_psign_w: // llvm.x86.ssse3.psign.w
VerifyIntrinsicPrototype(ID, IF, 1, 2, MVT::x86mmx, MVT::x86mmx, MVT::x86mmx);
break;
case Intrinsic::x86_mmx_palignr_b: // llvm.x86.mmx.palignr.b
VerifyIntrinsicPrototype(ID, IF, 1, 3, MVT::x86mmx, MVT::x86mmx, MVT::x86mmx, MVT::i8);
break;
}
#endif
// Code for generating Intrinsic function declarations.
#ifdef GET_INTRINSIC_GENERATOR
switch (id) {
default: llvm_unreachable("Invalid intrinsic!");
case Intrinsic::eh_unwind_init: // llvm.eh.unwind.init
case Intrinsic::ppc_altivec_dssall: // llvm.ppc.altivec.dssall
case Intrinsic::ppc_sync: // llvm.ppc.sync
case Intrinsic::trap: // llvm.trap
case Intrinsic::x86_avx_vzeroall: // llvm.x86.avx.vzeroall
case Intrinsic::x86_avx_vzeroupper: // llvm.x86.avx.vzeroupper
case Intrinsic::x86_mmx_emms: // llvm.x86.mmx.emms
case Intrinsic::x86_mmx_femms: // llvm.x86.mmx.femms
case Intrinsic::x86_sse2_lfence: // llvm.x86.sse2.lfence
case Intrinsic::x86_sse2_mfence: // llvm.x86.sse2.mfence
case Intrinsic::x86_sse_sfence: // llvm.x86.sse.sfence
case Intrinsic::xcore_clre: // llvm.xcore.clre
case Intrinsic::xcore_ssync: // llvm.xcore.ssync
ResultTy = Type::getVoidTy(Context);
break;
case Intrinsic::H: // llvm.H
case Intrinsic::NOT: // llvm.rkqc.NOT
case Intrinsic::S: // llvm.S
case Intrinsic::Sdag: // llvm.Sdag
case Intrinsic::T: // llvm.T
case Intrinsic::Tdag: // llvm.Tdag
case Intrinsic::X: // llvm.X
case Intrinsic::Y: // llvm.Y
case Intrinsic::Z: // llvm.Z
ResultTy = Type::getVoidTy(Context);
ArgTys.push_back(Tys[0]);
break;
case Intrinsic::CNOT: // llvm.CNOT
case Intrinsic::cnot: // llvm.rkqc.cnot
ResultTy = Type::getVoidTy(Context);
ArgTys.push_back(Tys[0]);
ArgTys.push_back(Tys[1]);
break;
case Intrinsic::Fredkin: // llvm.Fredkin
case Intrinsic::Toffoli: // llvm.Toffoli
case Intrinsic::toffoli: // llvm.rkqc.toffoli
ResultTy = Type::getVoidTy(Context);
ArgTys.push_back(Tys[0]);
ArgTys.push_back(Tys[1]);
ArgTys.push_back(Tys[2]);
break;
case Intrinsic::a_eq_a_plus_b_times_c: // llvm.rkqc.a_eq_a_plus_b_times_c
ResultTy = Type::getVoidTy(Context);
ArgTys.push_back(Tys[0]);
ArgTys.push_back(Tys[1]);
ArgTys.push_back(Tys[2]);
ArgTys.push_back(IntegerType::get(Context, 32));
break;
case Intrinsic::a_eq_a_minus_b: // llvm.rkqc.a_eq_a_minus_b
case Intrinsic::a_eq_a_plus_b: // llvm.rkqc.a_eq_a_plus_b
case Intrinsic::a_swap_b: // llvm.rkqc.a_swap_b
case Intrinsic::assign_value_of_b_to_a: // llvm.rkqc.assign_value_of_b_to_a
ResultTy = Type::getVoidTy(Context);
ArgTys.push_back(Tys[0]);
ArgTys.push_back(Tys[1]);
ArgTys.push_back(IntegerType::get(Context, 32));
break;
case Intrinsic::Rx: // llvm.Rx
case Intrinsic::Ry: // llvm.Ry
case Intrinsic::Rz: // llvm.Rz
ResultTy = Type::getVoidTy(Context);
ArgTys.push_back(Tys[0]);
ArgTys.push_back(Type::getDoubleTy(Context));
break;
case Intrinsic::PrepX: // llvm.PrepX
case Intrinsic::PrepZ: // llvm.PrepZ
case Intrinsic::assign_value_of_0_to_a: // llvm.rkqc.assign_value_of_0_to_a
case Intrinsic::assign_value_of_1_to_a: // llvm.rkqc.assign_value_of_1_to_a
ResultTy = Type::getVoidTy(Context);
ArgTys.push_back(Tys[0]);
ArgTys.push_back(IntegerType::get(Context, 32));
break;
case Intrinsic::xcore_eeu: // llvm.xcore.eeu
case Intrinsic::xcore_freer: // llvm.xcore.freer
case Intrinsic::xcore_mjoin: // llvm.xcore.mjoin
case Intrinsic::xcore_msync: // llvm.xcore.msync
case Intrinsic::xcore_syncr: // llvm.xcore.syncr
ResultTy = Type::getVoidTy(Context);
ArgTys.push_back((0 < Tys.size()) ? Tys[0] : PointerType::getUnqual(IntegerType::get(Context, 8)));
break;
case Intrinsic::xcore_setclk: // llvm.xcore.setclk
case Intrinsic::xcore_setrdy: // llvm.xcore.setrdy
ResultTy = Type::getVoidTy(Context);
ArgTys.push_back((0 < Tys.size()) ? Tys[0] : PointerType::getUnqual(IntegerType::get(Context, 8)));
ArgTys.push_back((1 < Tys.size()) ? Tys[1] : PointerType::getUnqual(IntegerType::get(Context, 8)));
break;
case Intrinsic::memcpy: // llvm.memcpy
case Intrinsic::memmove: // llvm.memmove
ResultTy = Type::getVoidTy(Context);
ArgTys.push_back((0 < Tys.size()) ? Tys[0] : PointerType::getUnqual(IntegerType::get(Context, 8)));
ArgTys.push_back((1 < Tys.size()) ? Tys[1] : PointerType::getUnqual(IntegerType::get(Context, 8)));
ArgTys.push_back(Tys[2]);
ArgTys.push_back(IntegerType::get(Context, 32));
ArgTys.push_back(IntegerType::get(Context, 1));
break;
case Intrinsic::xcore_chkct: // llvm.xcore.chkct
case Intrinsic::xcore_out: // llvm.xcore.out
case Intrinsic::xcore_outct: // llvm.xcore.outct
case Intrinsic::xcore_outt: // llvm.xcore.outt
case Intrinsic::xcore_setc: // llvm.xcore.setc
case Intrinsic::xcore_setd: // llvm.xcore.setd
case Intrinsic::xcore_setpsc: // llvm.xcore.setpsc
case Intrinsic::xcore_setpt: // llvm.xcore.setpt
case Intrinsic::xcore_settw: // llvm.xcore.settw
ResultTy = Type::getVoidTy(Context);
ArgTys.push_back((0 < Tys.size()) ? Tys[0] : PointerType::getUnqual(IntegerType::get(Context, 8)));
ArgTys.push_back(IntegerType::get(Context, 32));
break;
case Intrinsic::memset: // llvm.memset
ResultTy = Type::getVoidTy(Context);
ArgTys.push_back((0 < Tys.size()) ? Tys[0] : PointerType::getUnqual(IntegerType::get(Context, 8)));
ArgTys.push_back(IntegerType::get(Context, 8));
ArgTys.push_back(Tys[1]);
ArgTys.push_back(IntegerType::get(Context, 32));
ArgTys.push_back(IntegerType::get(Context, 1));
break;
case Intrinsic::xcore_initcp: // llvm.xcore.initcp
case Intrinsic::xcore_initdp: // llvm.xcore.initdp
case Intrinsic::xcore_initlr: // llvm.xcore.initlr
case Intrinsic::xcore_initpc: // llvm.xcore.initpc
case Intrinsic::xcore_initsp: // llvm.xcore.initsp
case Intrinsic::xcore_setev: // llvm.xcore.setev
case Intrinsic::xcore_setv: // llvm.xcore.setv
ResultTy = Type::getVoidTy(Context);
ArgTys.push_back((0 < Tys.size()) ? Tys[0] : PointerType::getUnqual(IntegerType::get(Context, 8)));
ArgTys.push_back(PointerType::getUnqual(IntegerType::get(Context, 8)));
break;
case Intrinsic::invariant_end: // llvm.invariant.end
ResultTy = Type::getVoidTy(Context);
ArgTys.push_back(PointerType::getUnqual(StructType::get(Context)));
ArgTys.push_back(IntegerType::get(Context, 64));
ArgTys.push_back(PointerType::getUnqual(IntegerType::get(Context, 8)));
break;
case Intrinsic::arm_set_fpscr: // llvm.arm.set.fpscr
case Intrinsic::eh_sjlj_callsite: // llvm.eh.sjlj.callsite
case Intrinsic::pcmarker: // llvm.pcmarker
case Intrinsic::ppc_altivec_dss: // llvm.ppc.altivec.dss
case Intrinsic::ptx_bar_sync: // llvm.ptx.bar.sync
case Intrinsic::x86_wrfsbase_32: // llvm.x86.wrfsbase.32
case Intrinsic::x86_wrgsbase_32: // llvm.x86.wrgsbase.32
case Intrinsic::xcore_clrsr: // llvm.xcore.clrsr
case Intrinsic::xcore_setsr: // llvm.xcore.setsr
ResultTy = Type::getVoidTy(Context);
ArgTys.push_back(IntegerType::get(Context, 32));
break;
case Intrinsic::x86_sse3_mwait: // llvm.x86.sse3.mwait
case Intrinsic::xcore_setps: // llvm.xcore.setps
ResultTy = Type::getVoidTy(Context);
ArgTys.push_back(IntegerType::get(Context, 32));
ArgTys.push_back(IntegerType::get(Context, 32));
break;
case Intrinsic::arm_mcrr: // llvm.arm.mcrr
case Intrinsic::arm_mcrr2: // llvm.arm.mcrr2
ResultTy = Type::getVoidTy(Context);
ArgTys.push_back(IntegerType::get(Context, 32));
ArgTys.push_back(IntegerType::get(Context, 32));
ArgTys.push_back(IntegerType::get(Context, 32));
ArgTys.push_back(IntegerType::get(Context, 32));
ArgTys.push_back(IntegerType::get(Context, 32));
break;
case Intrinsic::arm_cdp: // llvm.arm.cdp
case Intrinsic::arm_cdp2: // llvm.arm.cdp2
case Intrinsic::arm_mcr: // llvm.arm.mcr
case Intrinsic::arm_mcr2: // llvm.arm.mcr2
ResultTy = Type::getVoidTy(Context);
ArgTys.push_back(IntegerType::get(Context, 32));
ArgTys.push_back(IntegerType::get(Context, 32));
ArgTys.push_back(IntegerType::get(Context, 32));
ArgTys.push_back(IntegerType::get(Context, 32));
ArgTys.push_back(IntegerType::get(Context, 32));
ArgTys.push_back(IntegerType::get(Context, 32));
break;
case Intrinsic::eh_return_i32: // llvm.eh.return.i32
ResultTy = Type::getVoidTy(Context);
ArgTys.push_back(IntegerType::get(Context, 32));
ArgTys.push_back(PointerType::getUnqual(IntegerType::get(Context, 8)));
break;
case Intrinsic::x86_wrfsbase_64: // llvm.x86.wrfsbase.64
case Intrinsic::x86_wrgsbase_64: // llvm.x86.wrgsbase.64
ResultTy = Type::getVoidTy(Context);
ArgTys.push_back(IntegerType::get(Context, 64));
break;
case Intrinsic::eh_return_i64: // llvm.eh.return.i64
case Intrinsic::lifetime_end: // llvm.lifetime.end
case Intrinsic::lifetime_start: // llvm.lifetime.start
ResultTy = Type::getVoidTy(Context);
ArgTys.push_back(IntegerType::get(Context, 64));
ArgTys.push_back(PointerType::getUnqual(IntegerType::get(Context, 8)));
break;
case Intrinsic::x86_int: // llvm.x86.int
ResultTy = Type::getVoidTy(Context);
ArgTys.push_back(IntegerType::get(Context, 8));
break;
case Intrinsic::dbg_value: // llvm.dbg.value
ResultTy = Type::getVoidTy(Context);
ArgTys.push_back(Type::getMetadataTy(Context));
ArgTys.push_back(IntegerType::get(Context, 64));
ArgTys.push_back(Type::getMetadataTy(Context));
break;
case Intrinsic::dbg_declare: // llvm.dbg.declare
ResultTy = Type::getVoidTy(Context);
ArgTys.push_back(Type::getMetadataTy(Context));
ArgTys.push_back(Type::getMetadataTy(Context));
break;
case Intrinsic::eh_sjlj_functioncontext: // llvm.eh.sjlj.functioncontext
case Intrinsic::eh_sjlj_longjmp: // llvm.eh.sjlj.longjmp
case Intrinsic::ppc_dcba: // llvm.ppc.dcba
case Intrinsic::ppc_dcbf: // llvm.ppc.dcbf
case Intrinsic::ppc_dcbi: // llvm.ppc.dcbi
case Intrinsic::ppc_dcbst: // llvm.ppc.dcbst
case Intrinsic::ppc_dcbt: // llvm.ppc.dcbt
case Intrinsic::ppc_dcbtst: // llvm.ppc.dcbtst
case Intrinsic::ppc_dcbz: // llvm.ppc.dcbz
case Intrinsic::ppc_dcbzl: // llvm.ppc.dcbzl
case Intrinsic::stackrestore: // llvm.stackrestore
case Intrinsic::vaend: // llvm.va_end
case Intrinsic::vastart: // llvm.va_start
case Intrinsic::x86_sse2_clflush: // llvm.x86.sse2.clflush
case Intrinsic::x86_sse_ldmxcsr: // llvm.x86.sse.ldmxcsr
case Intrinsic::x86_sse_stmxcsr: // llvm.x86.sse.stmxcsr
ResultTy = Type::getVoidTy(Context);
ArgTys.push_back(PointerType::getUnqual(IntegerType::get(Context, 8)));
break;
case Intrinsic::arm_neon_vst2: // llvm.arm.neon.vst2
ResultTy = Type::getVoidTy(Context);
ArgTys.push_back(PointerType::getUnqual(IntegerType::get(Context, 8)));
ArgTys.push_back(Tys[0]);
ArgTys.push_back(Tys[0]);
ArgTys.push_back(IntegerType::get(Context, 32));
break;
case Intrinsic::arm_neon_vst3: // llvm.arm.neon.vst3
ResultTy = Type::getVoidTy(Context);
ArgTys.push_back(PointerType::getUnqual(IntegerType::get(Context, 8)));
ArgTys.push_back(Tys[0]);
ArgTys.push_back(Tys[0]);
ArgTys.push_back(Tys[0]);
ArgTys.push_back(IntegerType::get(Context, 32));
break;
case Intrinsic::arm_neon_vst4: // llvm.arm.neon.vst4
ResultTy = Type::getVoidTy(Context);
ArgTys.push_back(PointerType::getUnqual(IntegerType::get(Context, 8)));
ArgTys.push_back(Tys[0]);
ArgTys.push_back(Tys[0]);
ArgTys.push_back(Tys[0]);
ArgTys.push_back(Tys[0]);
ArgTys.push_back(IntegerType::get(Context, 32));
break;
case Intrinsic::arm_neon_vst2lane: // llvm.arm.neon.vst2lane
ResultTy = Type::getVoidTy(Context);
ArgTys.push_back(PointerType::getUnqual(IntegerType::get(Context, 8)));
ArgTys.push_back(Tys[0]);
ArgTys.push_back(Tys[0]);
ArgTys.push_back(IntegerType::get(Context, 32));
ArgTys.push_back(IntegerType::get(Context, 32));
break;
case Intrinsic::arm_neon_vst3lane: // llvm.arm.neon.vst3lane
ResultTy = Type::getVoidTy(Context);
ArgTys.push_back(PointerType::getUnqual(IntegerType::get(Context, 8)));
ArgTys.push_back(Tys[0]);
ArgTys.push_back(Tys[0]);
ArgTys.push_back(Tys[0]);
ArgTys.push_back(IntegerType::get(Context, 32));
ArgTys.push_back(IntegerType::get(Context, 32));
break;
case Intrinsic::arm_neon_vst4lane: // llvm.arm.neon.vst4lane
ResultTy = Type::getVoidTy(Context);
ArgTys.push_back(PointerType::getUnqual(IntegerType::get(Context, 8)));
ArgTys.push_back(Tys[0]);
ArgTys.push_back(Tys[0]);
ArgTys.push_back(Tys[0]);
ArgTys.push_back(Tys[0]);
ArgTys.push_back(IntegerType::get(Context, 32));
ArgTys.push_back(IntegerType::get(Context, 32));
break;
case Intrinsic::arm_neon_vst1: // llvm.arm.neon.vst1
ResultTy = Type::getVoidTy(Context);
ArgTys.push_back(PointerType::getUnqual(IntegerType::get(Context, 8)));
ArgTys.push_back(Tys[0]);
ArgTys.push_back(IntegerType::get(Context, 32));
break;
case Intrinsic::longjmp: // llvm.longjmp
case Intrinsic::siglongjmp: // llvm.siglongjmp
ResultTy = Type::getVoidTy(Context);
ArgTys.push_back(PointerType::getUnqual(IntegerType::get(Context, 8)));
ArgTys.push_back(IntegerType::get(Context, 32));
break;
case Intrinsic::ppc_altivec_dst: // llvm.ppc.altivec.dst
case Intrinsic::ppc_altivec_dstst: // llvm.ppc.altivec.dstst
case Intrinsic::ppc_altivec_dststt: // llvm.ppc.altivec.dststt
case Intrinsic::ppc_altivec_dstt: // llvm.ppc.altivec.dstt
case Intrinsic::x86_sse3_monitor: // llvm.x86.sse3.monitor
ResultTy = Type::getVoidTy(Context);
ArgTys.push_back(PointerType::getUnqual(IntegerType::get(Context, 8)));
ArgTys.push_back(IntegerType::get(Context, 32));
ArgTys.push_back(IntegerType::get(Context, 32));
break;
case Intrinsic::prefetch: // llvm.prefetch
ResultTy = Type::getVoidTy(Context);
ArgTys.push_back(PointerType::getUnqual(IntegerType::get(Context, 8)));
ArgTys.push_back(IntegerType::get(Context, 32));
ArgTys.push_back(IntegerType::get(Context, 32));
ArgTys.push_back(IntegerType::get(Context, 32));
break;
case Intrinsic::vacopy: // llvm.va_copy
ResultTy = Type::getVoidTy(Context);
ArgTys.push_back(PointerType::getUnqual(IntegerType::get(Context, 8)));
ArgTys.push_back(PointerType::getUnqual(IntegerType::get(Context, 8)));
break;
case Intrinsic::init_trampoline: // llvm.init.trampoline
ResultTy = Type::getVoidTy(Context);
ArgTys.push_back(PointerType::getUnqual(IntegerType::get(Context, 8)));
ArgTys.push_back(PointerType::getUnqual(IntegerType::get(Context, 8)));
ArgTys.push_back(PointerType::getUnqual(IntegerType::get(Context, 8)));
break;
case Intrinsic::var_annotation: // llvm.var.annotation
ResultTy = Type::getVoidTy(Context);
ArgTys.push_back(PointerType::getUnqual(IntegerType::get(Context, 8)));
ArgTys.push_back(PointerType::getUnqual(IntegerType::get(Context, 8)));
ArgTys.push_back(PointerType::getUnqual(IntegerType::get(Context, 8)));
ArgTys.push_back(IntegerType::get(Context, 32));
break;
case Intrinsic::gcwrite: // llvm.gcwrite
ResultTy = Type::getVoidTy(Context);
ArgTys.push_back(PointerType::getUnqual(IntegerType::get(Context, 8)));
ArgTys.push_back(PointerType::getUnqual(IntegerType::get(Context, 8)));
ArgTys.push_back(PointerType::getUnqual(PointerType::getUnqual(IntegerType::get(Context, 8))));
break;
case Intrinsic::stackprotector: // llvm.stackprotector
ResultTy = Type::getVoidTy(Context);
ArgTys.push_back(PointerType::getUnqual(IntegerType::get(Context, 8)));
ArgTys.push_back(PointerType::getUnqual(PointerType::getUnqual(IntegerType::get(Context, 8))));
break;
case Intrinsic::x86_sse2_storeu_dq: // llvm.x86.sse2.storeu.dq
ResultTy = Type::getVoidTy(Context);
ArgTys.push_back(PointerType::getUnqual(IntegerType::get(Context, 8)));
ArgTys.push_back(VectorType::get(IntegerType::get(Context, 8), 16));
break;
case Intrinsic::x86_sse2_storeu_pd: // llvm.x86.sse2.storeu.pd
ResultTy = Type::getVoidTy(Context);
ArgTys.push_back(PointerType::getUnqual(IntegerType::get(Context, 8)));
ArgTys.push_back(VectorType::get(Type::getDoubleTy(Context), 2));
break;
case Intrinsic::x86_avx_maskstore_pd: // llvm.x86.avx.maskstore.pd
ResultTy = Type::getVoidTy(Context);
ArgTys.push_back(PointerType::getUnqual(IntegerType::get(Context, 8)));
ArgTys.push_back(VectorType::get(Type::getDoubleTy(Context), 2));
ArgTys.push_back(VectorType::get(Type::getDoubleTy(Context), 2));
break;
case Intrinsic::x86_avx2_maskstore_q: // llvm.x86.avx2.maskstore.q
ResultTy = Type::getVoidTy(Context);
ArgTys.push_back(PointerType::getUnqual(IntegerType::get(Context, 8)));
ArgTys.push_back(VectorType::get(IntegerType::get(Context, 64), 2));
ArgTys.push_back(VectorType::get(IntegerType::get(Context, 64), 2));
break;
case Intrinsic::x86_avx_storeu_dq_256: // llvm.x86.avx.storeu.dq.256
ResultTy = Type::getVoidTy(Context);
ArgTys.push_back(PointerType::getUnqual(IntegerType::get(Context, 8)));
ArgTys.push_back(VectorType::get(IntegerType::get(Context, 8), 32));
break;
case Intrinsic::x86_sse_storeu_ps: // llvm.x86.sse.storeu.ps
ResultTy = Type::getVoidTy(Context);
ArgTys.push_back(PointerType::getUnqual(IntegerType::get(Context, 8)));
ArgTys.push_back(VectorType::get(Type::getFloatTy(Context), 4));
break;
case Intrinsic::x86_avx_maskstore_ps: // llvm.x86.avx.maskstore.ps
ResultTy = Type::getVoidTy(Context);
ArgTys.push_back(PointerType::getUnqual(IntegerType::get(Context, 8)));
ArgTys.push_back(VectorType::get(Type::getFloatTy(Context), 4));
ArgTys.push_back(VectorType::get(Type::getFloatTy(Context), 4));
break;
case Intrinsic::x86_avx_movnt_pd_256: // llvm.x86.avx.movnt.pd.256
case Intrinsic::x86_avx_storeu_pd_256: // llvm.x86.avx.storeu.pd.256
ResultTy = Type::getVoidTy(Context);
ArgTys.push_back(PointerType::getUnqual(IntegerType::get(Context, 8)));
ArgTys.push_back(VectorType::get(Type::getDoubleTy(Context), 4));
break;
case Intrinsic::x86_avx_maskstore_pd_256: // llvm.x86.avx.maskstore.pd.256
ResultTy = Type::getVoidTy(Context);
ArgTys.push_back(PointerType::getUnqual(IntegerType::get(Context, 8)));
ArgTys.push_back(VectorType::get(Type::getDoubleTy(Context), 4));
ArgTys.push_back(VectorType::get(Type::getDoubleTy(Context), 4));
break;
case Intrinsic::x86_sse2_storel_dq: // llvm.x86.sse2.storel.dq
ResultTy = Type::getVoidTy(Context);
ArgTys.push_back(PointerType::getUnqual(IntegerType::get(Context, 8)));
ArgTys.push_back(VectorType::get(IntegerType::get(Context, 32), 4));
break;
case Intrinsic::x86_avx2_maskstore_d: // llvm.x86.avx2.maskstore.d
ResultTy = Type::getVoidTy(Context);
ArgTys.push_back(PointerType::getUnqual(IntegerType::get(Context, 8)));
ArgTys.push_back(VectorType::get(IntegerType::get(Context, 32), 4));
ArgTys.push_back(VectorType::get(IntegerType::get(Context, 32), 4));
break;
case Intrinsic::x86_avx_movnt_dq_256: // llvm.x86.avx.movnt.dq.256
ResultTy = Type::getVoidTy(Context);
ArgTys.push_back(PointerType::getUnqual(IntegerType::get(Context, 8)));
ArgTys.push_back(VectorType::get(IntegerType::get(Context, 64), 4));
break;
case Intrinsic::x86_avx2_maskstore_q_256: // llvm.x86.avx2.maskstore.q.256
ResultTy = Type::getVoidTy(Context);
ArgTys.push_back(PointerType::getUnqual(IntegerType::get(Context, 8)));
ArgTys.push_back(VectorType::get(IntegerType::get(Context, 64), 4));
ArgTys.push_back(VectorType::get(IntegerType::get(Context, 64), 4));
break;
case Intrinsic::x86_avx_movnt_ps_256: // llvm.x86.avx.movnt.ps.256
case Intrinsic::x86_avx_storeu_ps_256: // llvm.x86.avx.storeu.ps.256
ResultTy = Type::getVoidTy(Context);
ArgTys.push_back(PointerType::getUnqual(IntegerType::get(Context, 8)));
ArgTys.push_back(VectorType::get(Type::getFloatTy(Context), 8));
break;
case Intrinsic::x86_avx_maskstore_ps_256: // llvm.x86.avx.maskstore.ps.256
ResultTy = Type::getVoidTy(Context);
ArgTys.push_back(PointerType::getUnqual(IntegerType::get(Context, 8)));
ArgTys.push_back(VectorType::get(Type::getFloatTy(Context), 8));
ArgTys.push_back(VectorType::get(Type::getFloatTy(Context), 8));
break;
case Intrinsic::x86_avx2_maskstore_d_256: // llvm.x86.avx2.maskstore.d.256
ResultTy = Type::getVoidTy(Context);
ArgTys.push_back(PointerType::getUnqual(IntegerType::get(Context, 8)));
ArgTys.push_back(VectorType::get(IntegerType::get(Context, 32), 8));
ArgTys.push_back(VectorType::get(IntegerType::get(Context, 32), 8));
break;
case Intrinsic::gcroot: // llvm.gcroot
ResultTy = Type::getVoidTy(Context);
ArgTys.push_back(PointerType::getUnqual(PointerType::getUnqual(IntegerType::get(Context, 8))));
ArgTys.push_back(PointerType::getUnqual(IntegerType::get(Context, 8)));
break;
case Intrinsic::x86_mmx_movnt_dq: // llvm.x86.mmx.movnt.dq
ResultTy = Type::getVoidTy(Context);
ArgTys.push_back(PointerType::getUnqual(Type::getX86_MMXTy(Context)));
ArgTys.push_back(Type::getX86_MMXTy(Context));
break;
case Intrinsic::ppc_altivec_stvebx: // llvm.ppc.altivec.stvebx
ResultTy = Type::getVoidTy(Context);
ArgTys.push_back(VectorType::get(IntegerType::get(Context, 8), 16));
ArgTys.push_back(PointerType::getUnqual(IntegerType::get(Context, 8)));
break;
case Intrinsic::x86_sse2_maskmov_dqu: // llvm.x86.sse2.maskmov.dqu
ResultTy = Type::getVoidTy(Context);
ArgTys.push_back(VectorType::get(IntegerType::get(Context, 8), 16));
ArgTys.push_back(VectorType::get(IntegerType::get(Context, 8), 16));
ArgTys.push_back(PointerType::getUnqual(IntegerType::get(Context, 8)));
break;
case Intrinsic::ppc_altivec_mtvscr: // llvm.ppc.altivec.mtvscr
ResultTy = Type::getVoidTy(Context);
ArgTys.push_back(VectorType::get(IntegerType::get(Context, 32), 4));
break;
case Intrinsic::ppc_altivec_stvewx: // llvm.ppc.altivec.stvewx
case Intrinsic::ppc_altivec_stvx: // llvm.ppc.altivec.stvx
case Intrinsic::ppc_altivec_stvxl: // llvm.ppc.altivec.stvxl
ResultTy = Type::getVoidTy(Context);
ArgTys.push_back(VectorType::get(IntegerType::get(Context, 32), 4));
ArgTys.push_back(PointerType::getUnqual(IntegerType::get(Context, 8)));
break;
case Intrinsic::ppc_altivec_stvehx: // llvm.ppc.altivec.stvehx
ResultTy = Type::getVoidTy(Context);
ArgTys.push_back(VectorType::get(IntegerType::get(Context, 16), 8));
ArgTys.push_back(PointerType::getUnqual(IntegerType::get(Context, 8)));
break;
case Intrinsic::x86_mmx_maskmovq: // llvm.x86.mmx.maskmovq
ResultTy = Type::getVoidTy(Context);
ArgTys.push_back(Type::getX86_MMXTy(Context));
ArgTys.push_back(Type::getX86_MMXTy(Context));
ArgTys.push_back(PointerType::getUnqual(IntegerType::get(Context, 8)));
break;
case Intrinsic::ptr_annotation: // llvm.ptr.annotation
ResultTy = (0 < Tys.size()) ? Tys[0] : PointerType::getUnqual(Tys[0]);
ArgTys.push_back(Tys[0]);
ArgTys.push_back(PointerType::getUnqual(IntegerType::get(Context, 8)));
ArgTys.push_back(PointerType::getUnqual(IntegerType::get(Context, 8)));
ArgTys.push_back(IntegerType::get(Context, 32));
break;
case Intrinsic::sin: // llvm.sin
ResultTy = Tys[0];
ArgTys.push_back(Tys[0]);
break;
case Intrinsic::cos: // llvm.cos
ResultTy = Tys[0];
ArgTys.push_back(Tys[0]);
break;
case Intrinsic::pow: // llvm.pow
ResultTy = Tys[0];
ArgTys.push_back(Tys[0]);
ArgTys.push_back(Tys[0]);
break;
case Intrinsic::log: // llvm.log
ResultTy = Tys[0];
ArgTys.push_back(Tys[0]);
break;
case Intrinsic::log10: // llvm.log10
ResultTy = Tys[0];
ArgTys.push_back(Tys[0]);
break;
case Intrinsic::log2: // llvm.log2
ResultTy = Tys[0];
ArgTys.push_back(Tys[0]);
break;
case Intrinsic::exp: // llvm.exp
ResultTy = Tys[0];
ArgTys.push_back(Tys[0]);
break;
case Intrinsic::exp2: // llvm.exp2
ResultTy = Tys[0];
ArgTys.push_back(Tys[0]);
break;
case Intrinsic::fma: // llvm.fma
ResultTy = Tys[0];
ArgTys.push_back(Tys[0]);
ArgTys.push_back(Tys[0]);
ArgTys.push_back(Tys[0]);
break;
case Intrinsic::sqrt: // llvm.sqrt
ResultTy = Tys[0];
ArgTys.push_back(Tys[0]);
break;
case Intrinsic::powi: // llvm.powi
ResultTy = Tys[0];
ArgTys.push_back(Tys[0]);
ArgTys.push_back(IntegerType::get(Context, 32));
break;
case Intrinsic::convertff: // llvm.convertff
ResultTy = Tys[0];
ArgTys.push_back(Tys[1]);
ArgTys.push_back(IntegerType::get(Context, 32));
ArgTys.push_back(IntegerType::get(Context, 32));
break;
case Intrinsic::arm_neon_vcvtfxs2fp: // llvm.arm.neon.vcvtfxs2fp
case Intrinsic::arm_neon_vcvtfxu2fp: // llvm.arm.neon.vcvtfxu2fp
ResultTy = Tys[0];
ArgTys.push_back(Tys[1]);
ArgTys.push_back(IntegerType::get(Context, 32));
break;
case Intrinsic::convertfsi: // llvm.convertfsi
case Intrinsic::convertfui: // llvm.convertfui
ResultTy = Tys[0];
ArgTys.push_back(Tys[1]);
ArgTys.push_back(IntegerType::get(Context, 32));
ArgTys.push_back(IntegerType::get(Context, 32));
break;
case Intrinsic::expect: // llvm.expect
ResultTy = Tys[0];
ArgTys.push_back(Tys[0]);
ArgTys.push_back(Tys[0]);
break;
case Intrinsic::bswap: // llvm.bswap
ResultTy = Tys[0];
ArgTys.push_back(Tys[0]);
break;
case Intrinsic::ctpop: // llvm.ctpop
ResultTy = Tys[0];
ArgTys.push_back(Tys[0]);
break;
case Intrinsic::ctlz: // llvm.ctlz
ResultTy = Tys[0];
ArgTys.push_back(Tys[0]);
ArgTys.push_back(IntegerType::get(Context, 1));
break;
case Intrinsic::cttz: // llvm.cttz
ResultTy = Tys[0];
ArgTys.push_back(Tys[0]);
ArgTys.push_back(IntegerType::get(Context, 1));
break;
case Intrinsic::annotation: // llvm.annotation
ResultTy = Tys[0];
ArgTys.push_back(Tys[0]);
ArgTys.push_back(PointerType::getUnqual(IntegerType::get(Context, 8)));
ArgTys.push_back(PointerType::getUnqual(IntegerType::get(Context, 8)));
ArgTys.push_back(IntegerType::get(Context, 32));
break;
case Intrinsic::arm_neon_vcvtfp2fxs: // llvm.arm.neon.vcvtfp2fxs
case Intrinsic::arm_neon_vcvtfp2fxu: // llvm.arm.neon.vcvtfp2fxu
ResultTy = Tys[0];
ArgTys.push_back(Tys[1]);
ArgTys.push_back(IntegerType::get(Context, 32));
break;
case Intrinsic::convertsif: // llvm.convertsif
case Intrinsic::convertuif: // llvm.convertuif
ResultTy = Tys[0];
ArgTys.push_back(Tys[1]);
ArgTys.push_back(IntegerType::get(Context, 32));
ArgTys.push_back(IntegerType::get(Context, 32));
break;
case Intrinsic::convertss: // llvm.convertss
case Intrinsic::convertsu: // llvm.convertsu
case Intrinsic::convertus: // llvm.convertus
case Intrinsic::convertuu: // llvm.convertuu
ResultTy = Tys[0];
ArgTys.push_back(Tys[1]);
ArgTys.push_back(IntegerType::get(Context, 32));
ArgTys.push_back(IntegerType::get(Context, 32));
break;
case Intrinsic::objectsize: // llvm.objectsize
ResultTy = Tys[0];
ArgTys.push_back(PointerType::getUnqual(IntegerType::get(Context, 8)));
ArgTys.push_back(IntegerType::get(Context, 1));
break;
case Intrinsic::sadd_with_overflow: // llvm.sadd.with.overflow
ResultTy = StructType::get(Tys[0], IntegerType::get(Context, 1), NULL);
ArgTys.push_back(Tys[0]);
ArgTys.push_back(Tys[0]);
break;
case Intrinsic::uadd_with_overflow: // llvm.uadd.with.overflow
ResultTy = StructType::get(Tys[0], IntegerType::get(Context, 1), NULL);
ArgTys.push_back(Tys[0]);
ArgTys.push_back(Tys[0]);
break;
case Intrinsic::ssub_with_overflow: // llvm.ssub.with.overflow
ResultTy = StructType::get(Tys[0], IntegerType::get(Context, 1), NULL);
ArgTys.push_back(Tys[0]);
ArgTys.push_back(Tys[0]);
break;
case Intrinsic::usub_with_overflow: // llvm.usub.with.overflow
ResultTy = StructType::get(Tys[0], IntegerType::get(Context, 1), NULL);
ArgTys.push_back(Tys[0]);
ArgTys.push_back(Tys[0]);
break;
case Intrinsic::smul_with_overflow: // llvm.smul.with.overflow
ResultTy = StructType::get(Tys[0], IntegerType::get(Context, 1), NULL);
ArgTys.push_back(Tys[0]);
ArgTys.push_back(Tys[0]);
break;
case Intrinsic::umul_with_overflow: // llvm.umul.with.overflow
ResultTy = StructType::get(Tys[0], IntegerType::get(Context, 1), NULL);
ArgTys.push_back(Tys[0]);
ArgTys.push_back(Tys[0]);
break;
case Intrinsic::xcore_getst: // llvm.xcore.getst
ResultTy = (0 < Tys.size()) ? Tys[0] : PointerType::getUnqual(IntegerType::get(Context, 8));
ArgTys.push_back((1 < Tys.size()) ? Tys[1] : PointerType::getUnqual(IntegerType::get(Context, 8)));
break;
case Intrinsic::xcore_getr: // llvm.xcore.getr
ResultTy = (0 < Tys.size()) ? Tys[0] : PointerType::getUnqual(IntegerType::get(Context, 8));
ArgTys.push_back(IntegerType::get(Context, 32));
break;
case Intrinsic::arm_neon_vabs: // llvm.arm.neon.vabs
case Intrinsic::arm_neon_vcls: // llvm.arm.neon.vcls
case Intrinsic::arm_neon_vclz: // llvm.arm.neon.vclz
case Intrinsic::arm_neon_vcnt: // llvm.arm.neon.vcnt
case Intrinsic::arm_neon_vqabs: // llvm.arm.neon.vqabs
case Intrinsic::arm_neon_vqneg: // llvm.arm.neon.vqneg
case Intrinsic::arm_neon_vrecpe: // llvm.arm.neon.vrecpe
case Intrinsic::arm_neon_vrsqrte: // llvm.arm.neon.vrsqrte
ResultTy = Tys[0];
ArgTys.push_back(Tys[0]);
break;
case Intrinsic::arm_neon_vqmovns: // llvm.arm.neon.vqmovns
case Intrinsic::arm_neon_vqmovnsu: // llvm.arm.neon.vqmovnsu
case Intrinsic::arm_neon_vqmovnu: // llvm.arm.neon.vqmovnu
ResultTy = Tys[0];
ArgTys.push_back(VectorType::getExtendedElementVectorType(dyn_cast<VectorType>(Tys[0])));
break;
case Intrinsic::arm_neon_vabds: // llvm.arm.neon.vabds
case Intrinsic::arm_neon_vabdu: // llvm.arm.neon.vabdu
case Intrinsic::arm_neon_vhadds: // llvm.arm.neon.vhadds
case Intrinsic::arm_neon_vhaddu: // llvm.arm.neon.vhaddu
case Intrinsic::arm_neon_vhsubs: // llvm.arm.neon.vhsubs
case Intrinsic::arm_neon_vhsubu: // llvm.arm.neon.vhsubu
case Intrinsic::arm_neon_vmaxs: // llvm.arm.neon.vmaxs
case Intrinsic::arm_neon_vmaxu: // llvm.arm.neon.vmaxu
case Intrinsic::arm_neon_vmins: // llvm.arm.neon.vmins
case Intrinsic::arm_neon_vminu: // llvm.arm.neon.vminu
case Intrinsic::arm_neon_vmulp: // llvm.arm.neon.vmulp
case Intrinsic::arm_neon_vpadd: // llvm.arm.neon.vpadd
case Intrinsic::arm_neon_vpmaxs: // llvm.arm.neon.vpmaxs
case Intrinsic::arm_neon_vpmaxu: // llvm.arm.neon.vpmaxu
case Intrinsic::arm_neon_vpmins: // llvm.arm.neon.vpmins
case Intrinsic::arm_neon_vpminu: // llvm.arm.neon.vpminu
case Intrinsic::arm_neon_vqadds: // llvm.arm.neon.vqadds
case Intrinsic::arm_neon_vqaddu: // llvm.arm.neon.vqaddu
case Intrinsic::arm_neon_vqdmulh: // llvm.arm.neon.vqdmulh
case Intrinsic::arm_neon_vqrdmulh: // llvm.arm.neon.vqrdmulh
case Intrinsic::arm_neon_vqrshifts: // llvm.arm.neon.vqrshifts
case Intrinsic::arm_neon_vqrshiftu: // llvm.arm.neon.vqrshiftu
case Intrinsic::arm_neon_vqshifts: // llvm.arm.neon.vqshifts
case Intrinsic::arm_neon_vqshiftsu: // llvm.arm.neon.vqshiftsu
case Intrinsic::arm_neon_vqshiftu: // llvm.arm.neon.vqshiftu
case Intrinsic::arm_neon_vqsubs: // llvm.arm.neon.vqsubs
case Intrinsic::arm_neon_vqsubu: // llvm.arm.neon.vqsubu
case Intrinsic::arm_neon_vrecps: // llvm.arm.neon.vrecps
case Intrinsic::arm_neon_vrhadds: // llvm.arm.neon.vrhadds
case Intrinsic::arm_neon_vrhaddu: // llvm.arm.neon.vrhaddu
case Intrinsic::arm_neon_vrshifts: // llvm.arm.neon.vrshifts
case Intrinsic::arm_neon_vrshiftu: // llvm.arm.neon.vrshiftu
case Intrinsic::arm_neon_vrsqrts: // llvm.arm.neon.vrsqrts
case Intrinsic::arm_neon_vshifts: // llvm.arm.neon.vshifts
case Intrinsic::arm_neon_vshiftu: // llvm.arm.neon.vshiftu
ResultTy = Tys[0];
ArgTys.push_back(Tys[0]);
ArgTys.push_back(Tys[0]);
break;
case Intrinsic::arm_neon_vaddhn: // llvm.arm.neon.vaddhn
case Intrinsic::arm_neon_vqrshiftns: // llvm.arm.neon.vqrshiftns
case Intrinsic::arm_neon_vqrshiftnsu: // llvm.arm.neon.vqrshiftnsu
case Intrinsic::arm_neon_vqrshiftnu: // llvm.arm.neon.vqrshiftnu
case Intrinsic::arm_neon_vqshiftns: // llvm.arm.neon.vqshiftns
case Intrinsic::arm_neon_vqshiftnsu: // llvm.arm.neon.vqshiftnsu
case Intrinsic::arm_neon_vqshiftnu: // llvm.arm.neon.vqshiftnu
case Intrinsic::arm_neon_vraddhn: // llvm.arm.neon.vraddhn
case Intrinsic::arm_neon_vrshiftn: // llvm.arm.neon.vrshiftn
case Intrinsic::arm_neon_vrsubhn: // llvm.arm.neon.vrsubhn
case Intrinsic::arm_neon_vshiftn: // llvm.arm.neon.vshiftn
case Intrinsic::arm_neon_vsubhn: // llvm.arm.neon.vsubhn
ResultTy = Tys[0];
ArgTys.push_back(VectorType::getExtendedElementVectorType(dyn_cast<VectorType>(Tys[0])));
ArgTys.push_back(VectorType::getExtendedElementVectorType(dyn_cast<VectorType>(Tys[0])));
break;
case Intrinsic::arm_neon_vmullp: // llvm.arm.neon.vmullp
case Intrinsic::arm_neon_vmulls: // llvm.arm.neon.vmulls
case Intrinsic::arm_neon_vmullu: // llvm.arm.neon.vmullu
case Intrinsic::arm_neon_vqdmull: // llvm.arm.neon.vqdmull
case Intrinsic::arm_neon_vshiftls: // llvm.arm.neon.vshiftls
case Intrinsic::arm_neon_vshiftlu: // llvm.arm.neon.vshiftlu
ResultTy = Tys[0];
ArgTys.push_back(VectorType::getTruncatedElementVectorType(dyn_cast<VectorType>(Tys[0])));
ArgTys.push_back(VectorType::getTruncatedElementVectorType(dyn_cast<VectorType>(Tys[0])));
break;
case Intrinsic::arm_neon_vshiftins: // llvm.arm.neon.vshiftins
ResultTy = Tys[0];
ArgTys.push_back(Tys[0]);
ArgTys.push_back(Tys[0]);
ArgTys.push_back(Tys[0]);
break;
case Intrinsic::arm_neon_vqdmlal: // llvm.arm.neon.vqdmlal
case Intrinsic::arm_neon_vqdmlsl: // llvm.arm.neon.vqdmlsl
ResultTy = Tys[0];
ArgTys.push_back(Tys[0]);
ArgTys.push_back(VectorType::getTruncatedElementVectorType(dyn_cast<VectorType>(Tys[0])));
ArgTys.push_back(VectorType::getTruncatedElementVectorType(dyn_cast<VectorType>(Tys[0])));
break;
case Intrinsic::arm_neon_vpadals: // llvm.arm.neon.vpadals
ResultTy = Tys[0];
ArgTys.push_back(Tys[0]);
ArgTys.push_back(Tys[1]);
break;
case Intrinsic::arm_neon_vpadalu: // llvm.arm.neon.vpadalu
ResultTy = Tys[0];
ArgTys.push_back(Tys[0]);
ArgTys.push_back(Tys[1]);
break;
case Intrinsic::arm_neon_vpaddls: // llvm.arm.neon.vpaddls
case Intrinsic::arm_neon_vpaddlu: // llvm.arm.neon.vpaddlu
ResultTy = Tys[0];
ArgTys.push_back(Tys[1]);
break;
case Intrinsic::arm_neon_vld1: // llvm.arm.neon.vld1
ResultTy = Tys[0];
ArgTys.push_back(PointerType::getUnqual(IntegerType::get(Context, 8)));
ArgTys.push_back(IntegerType::get(Context, 32));
break;
case Intrinsic::arm_neon_vld2: // llvm.arm.neon.vld2
ResultTy = StructType::get(Tys[0], Tys[0], NULL);
ArgTys.push_back(PointerType::getUnqual(IntegerType::get(Context, 8)));
ArgTys.push_back(IntegerType::get(Context, 32));
break;
case Intrinsic::arm_neon_vld3: // llvm.arm.neon.vld3
ResultTy = StructType::get(Tys[0], Tys[0], Tys[0], NULL);
ArgTys.push_back(PointerType::getUnqual(IntegerType::get(Context, 8)));
ArgTys.push_back(IntegerType::get(Context, 32));
break;
case Intrinsic::arm_neon_vld4: // llvm.arm.neon.vld4
ResultTy = StructType::get(Tys[0], Tys[0], Tys[0], Tys[0], NULL);
ArgTys.push_back(PointerType::getUnqual(IntegerType::get(Context, 8)));
ArgTys.push_back(IntegerType::get(Context, 32));
break;
case Intrinsic::arm_neon_vld2lane: // llvm.arm.neon.vld2lane
ResultTy = StructType::get(Tys[0], Tys[0], NULL);
ArgTys.push_back(PointerType::getUnqual(IntegerType::get(Context, 8)));
ArgTys.push_back(Tys[0]);
ArgTys.push_back(Tys[0]);
ArgTys.push_back(IntegerType::get(Context, 32));
ArgTys.push_back(IntegerType::get(Context, 32));
break;
case Intrinsic::arm_neon_vld3lane: // llvm.arm.neon.vld3lane
ResultTy = StructType::get(Tys[0], Tys[0], Tys[0], NULL);
ArgTys.push_back(PointerType::getUnqual(IntegerType::get(Context, 8)));
ArgTys.push_back(Tys[0]);
ArgTys.push_back(Tys[0]);
ArgTys.push_back(Tys[0]);
ArgTys.push_back(IntegerType::get(Context, 32));
ArgTys.push_back(IntegerType::get(Context, 32));
break;
case Intrinsic::arm_neon_vld4lane: // llvm.arm.neon.vld4lane
ResultTy = StructType::get(Tys[0], Tys[0], Tys[0], Tys[0], NULL);
ArgTys.push_back(PointerType::getUnqual(IntegerType::get(Context, 8)));
ArgTys.push_back(Tys[0]);
ArgTys.push_back(Tys[0]);
ArgTys.push_back(Tys[0]);
ArgTys.push_back(Tys[0]);
ArgTys.push_back(IntegerType::get(Context, 32));
ArgTys.push_back(IntegerType::get(Context, 32));
break;
case Intrinsic::MeasX: // llvm.MeasX
case Intrinsic::MeasZ: // llvm.MeasZ
ResultTy = IntegerType::get(Context, 1);
ArgTys.push_back(Tys[0]);
break;
case Intrinsic::invariant_start: // llvm.invariant.start
ResultTy = PointerType::getUnqual(StructType::get(Context));
ArgTys.push_back(IntegerType::get(Context, 64));
ArgTys.push_back(PointerType::getUnqual(IntegerType::get(Context, 8)));
break;
case Intrinsic::arm_vcvtr: // llvm.arm.vcvtr
case Intrinsic::arm_vcvtru: // llvm.arm.vcvtru
ResultTy = Type::getFloatTy(Context);
ArgTys.push_back(Tys[0]);
break;
case Intrinsic::convert_from_fp16: // llvm.convert.from.fp16
ResultTy = Type::getFloatTy(Context);
ArgTys.push_back(IntegerType::get(Context, 16));
break;
case Intrinsic::convert_to_fp16: // llvm.convert.to.fp16
ResultTy = IntegerType::get(Context, 16);
ArgTys.push_back(Type::getFloatTy(Context));
break;
case Intrinsic::hexagon_C2_all8: // llvm.hexagon.C2.all8
case Intrinsic::hexagon_C2_any8: // llvm.hexagon.C2.any8
case Intrinsic::hexagon_C2_not: // llvm.hexagon.C2.not
case Intrinsic::hexagon_C2_pxfer_map: // llvm.hexagon.C2.pxfer.map
case Intrinsic::hexagon_C2_tfrrp: // llvm.hexagon.C2.tfrrp
ResultTy = IntegerType::get(Context, 1);
ArgTys.push_back(IntegerType::get(Context, 32));
break;
case Intrinsic::hexagon_C2_and: // llvm.hexagon.C2.and
case Intrinsic::hexagon_C2_andn: // llvm.hexagon.C2.andn
case Intrinsic::hexagon_C2_bitsclr: // llvm.hexagon.C2.bitsclr
case Intrinsic::hexagon_C2_bitsclri: // llvm.hexagon.C2.bitsclri
case Intrinsic::hexagon_C2_bitsset: // llvm.hexagon.C2.bitsset
case Intrinsic::hexagon_C2_cmpeq: // llvm.hexagon.C2.cmpeq
case Intrinsic::hexagon_C2_cmpeqi: // llvm.hexagon.C2.cmpeqi
case Intrinsic::hexagon_C2_cmpgei: // llvm.hexagon.C2.cmpgei
case Intrinsic::hexagon_C2_cmpgeui: // llvm.hexagon.C2.cmpgeui
case Intrinsic::hexagon_C2_cmpgt: // llvm.hexagon.C2.cmpgt
case Intrinsic::hexagon_C2_cmpgti: // llvm.hexagon.C2.cmpgti
case Intrinsic::hexagon_C2_cmpgtu: // llvm.hexagon.C2.cmpgtu
case Intrinsic::hexagon_C2_cmpgtui: // llvm.hexagon.C2.cmpgtui
case Intrinsic::hexagon_C2_cmplt: // llvm.hexagon.C2.cmplt
case Intrinsic::hexagon_C2_cmpltu: // llvm.hexagon.C2.cmpltu
case Intrinsic::hexagon_C2_or: // llvm.hexagon.C2.or
case Intrinsic::hexagon_C2_orn: // llvm.hexagon.C2.orn
case Intrinsic::hexagon_C2_xor: // llvm.hexagon.C2.xor
case Intrinsic::hexagon_C4_cmplte: // llvm.hexagon.C4.cmplte
case Intrinsic::hexagon_C4_cmpltei: // llvm.hexagon.C4.cmpltei
case Intrinsic::hexagon_C4_cmplteu: // llvm.hexagon.C4.cmplteu
case Intrinsic::hexagon_C4_cmplteui: // llvm.hexagon.C4.cmplteui
case Intrinsic::hexagon_C4_cmpneq: // llvm.hexagon.C4.cmpneq
case Intrinsic::hexagon_C4_cmpneqi: // llvm.hexagon.C4.cmpneqi
case Intrinsic::hexagon_C4_fastcorner9: // llvm.hexagon.C4.fastcorner9
case Intrinsic::hexagon_C4_fastcorner9_not: // llvm.hexagon.C4.fastcorner9.not
case Intrinsic::hexagon_S2_tstbit_i: // llvm.hexagon.S2.tstbit.i
case Intrinsic::hexagon_S2_tstbit_r: // llvm.hexagon.S2.tstbit.r
ResultTy = IntegerType::get(Context, 1);
ArgTys.push_back(IntegerType::get(Context, 32));
ArgTys.push_back(IntegerType::get(Context, 32));
break;
case Intrinsic::hexagon_C4_and_and: // llvm.hexagon.C4.and.and
case Intrinsic::hexagon_C4_and_andn: // llvm.hexagon.C4.and.andn
case Intrinsic::hexagon_C4_and_or: // llvm.hexagon.C4.and.or
case Intrinsic::hexagon_C4_and_orn: // llvm.hexagon.C4.and.orn
case Intrinsic::hexagon_C4_or_and: // llvm.hexagon.C4.or.and
case Intrinsic::hexagon_C4_or_andn: // llvm.hexagon.C4.or.andn
case Intrinsic::hexagon_C4_or_or: // llvm.hexagon.C4.or.or
case Intrinsic::hexagon_C4_or_orn: // llvm.hexagon.C4.or.orn
ResultTy = IntegerType::get(Context, 1);
ArgTys.push_back(IntegerType::get(Context, 32));
ArgTys.push_back(IntegerType::get(Context, 32));
ArgTys.push_back(IntegerType::get(Context, 32));
break;
case Intrinsic::hexagon_A2_vcmpbeq: // llvm.hexagon.A2.vcmpbeq
case Intrinsic::hexagon_A2_vcmpbgtu: // llvm.hexagon.A2.vcmpbgtu
case Intrinsic::hexagon_A2_vcmpheq: // llvm.hexagon.A2.vcmpheq
case Intrinsic::hexagon_A2_vcmphgt: // llvm.hexagon.A2.vcmphgt
case Intrinsic::hexagon_A2_vcmphgtu: // llvm.hexagon.A2.vcmphgtu
case Intrinsic::hexagon_A2_vcmpweq: // llvm.hexagon.A2.vcmpweq
case Intrinsic::hexagon_A2_vcmpwgt: // llvm.hexagon.A2.vcmpwgt
case Intrinsic::hexagon_A2_vcmpwgtu: // llvm.hexagon.A2.vcmpwgtu
case Intrinsic::hexagon_C2_cmpeqp: // llvm.hexagon.C2.cmpeqp
case Intrinsic::hexagon_C2_cmpgtp: // llvm.hexagon.C2.cmpgtp
case Intrinsic::hexagon_C2_cmpgtup: // llvm.hexagon.C2.cmpgtup
ResultTy = IntegerType::get(Context, 1);
ArgTys.push_back(IntegerType::get(Context, 64));
ArgTys.push_back(IntegerType::get(Context, 64));
break;
case Intrinsic::arm_get_fpscr: // llvm.arm.get.fpscr
case Intrinsic::flt_rounds: // llvm.flt.rounds
case Intrinsic::ptx_read_clock: // llvm.ptx.read.clock
case Intrinsic::ptx_read_ctaid_w: // llvm.ptx.read.ctaid.w
case Intrinsic::ptx_read_ctaid_x: // llvm.ptx.read.ctaid.x
case Intrinsic::ptx_read_ctaid_y: // llvm.ptx.read.ctaid.y
case Intrinsic::ptx_read_ctaid_z: // llvm.ptx.read.ctaid.z
case Intrinsic::ptx_read_gridid: // llvm.ptx.read.gridid
case Intrinsic::ptx_read_laneid: // llvm.ptx.read.laneid
case Intrinsic::ptx_read_lanemask_eq: // llvm.ptx.read.lanemask.eq
case Intrinsic::ptx_read_lanemask_ge: // llvm.ptx.read.lanemask.ge
case Intrinsic::ptx_read_lanemask_gt: // llvm.ptx.read.lanemask.gt
case Intrinsic::ptx_read_lanemask_le: // llvm.ptx.read.lanemask.le
case Intrinsic::ptx_read_lanemask_lt: // llvm.ptx.read.lanemask.lt
case Intrinsic::ptx_read_nctaid_w: // llvm.ptx.read.nctaid.w
case Intrinsic::ptx_read_nctaid_x: // llvm.ptx.read.nctaid.x
case Intrinsic::ptx_read_nctaid_y: // llvm.ptx.read.nctaid.y
case Intrinsic::ptx_read_nctaid_z: // llvm.ptx.read.nctaid.z
case Intrinsic::ptx_read_nsmid: // llvm.ptx.read.nsmid
case Intrinsic::ptx_read_ntid_w: // llvm.ptx.read.ntid.w
case Intrinsic::ptx_read_ntid_x: // llvm.ptx.read.ntid.x
case Intrinsic::ptx_read_ntid_y: // llvm.ptx.read.ntid.y
case Intrinsic::ptx_read_ntid_z: // llvm.ptx.read.ntid.z
case Intrinsic::ptx_read_nwarpid: // llvm.ptx.read.nwarpid
case Intrinsic::ptx_read_pm0: // llvm.ptx.read.pm0
case Intrinsic::ptx_read_pm1: // llvm.ptx.read.pm1
case Intrinsic::ptx_read_pm2: // llvm.ptx.read.pm2
case Intrinsic::ptx_read_pm3: // llvm.ptx.read.pm3
case Intrinsic::ptx_read_smid: // llvm.ptx.read.smid
case Intrinsic::ptx_read_tid_w: // llvm.ptx.read.tid.w
case Intrinsic::ptx_read_tid_x: // llvm.ptx.read.tid.x
case Intrinsic::ptx_read_tid_y: // llvm.ptx.read.tid.y
case Intrinsic::ptx_read_tid_z: // llvm.ptx.read.tid.z
case Intrinsic::ptx_read_warpid: // llvm.ptx.read.warpid
case Intrinsic::x86_rdfsbase_32: // llvm.x86.rdfsbase.32
case Intrinsic::x86_rdgsbase_32: // llvm.x86.rdgsbase.32
case Intrinsic::xcore_geted: // llvm.xcore.geted
case Intrinsic::xcore_getet: // llvm.xcore.getet
case Intrinsic::xcore_getid: // llvm.xcore.getid
ResultTy = IntegerType::get(Context, 32);
break;
case Intrinsic::xcore_endin: // llvm.xcore.endin
case Intrinsic::xcore_getts: // llvm.xcore.getts
case Intrinsic::xcore_in: // llvm.xcore.in
case Intrinsic::xcore_inct: // llvm.xcore.inct
case Intrinsic::xcore_int: // llvm.xcore.int
case Intrinsic::xcore_peek: // llvm.xcore.peek
case Intrinsic::xcore_testct: // llvm.xcore.testct
case Intrinsic::xcore_testwct: // llvm.xcore.testwct
ResultTy = IntegerType::get(Context, 32);
ArgTys.push_back((0 < Tys.size()) ? Tys[0] : PointerType::getUnqual(IntegerType::get(Context, 8)));
break;
case Intrinsic::xcore_inshr: // llvm.xcore.inshr
case Intrinsic::xcore_outshr: // llvm.xcore.outshr
ResultTy = IntegerType::get(Context, 32);
ArgTys.push_back((0 < Tys.size()) ? Tys[0] : PointerType::getUnqual(IntegerType::get(Context, 8)));
ArgTys.push_back(IntegerType::get(Context, 32));
break;
case Intrinsic::hexagon_A2_abs: // llvm.hexagon.A2.abs
case Intrinsic::hexagon_A2_abssat: // llvm.hexagon.A2.abssat
case Intrinsic::hexagon_A2_aslh: // llvm.hexagon.A2.aslh
case Intrinsic::hexagon_A2_asrh: // llvm.hexagon.A2.asrh
case Intrinsic::hexagon_A2_neg: // llvm.hexagon.A2.neg
case Intrinsic::hexagon_A2_negsat: // llvm.hexagon.A2.negsat
case Intrinsic::hexagon_A2_not: // llvm.hexagon.A2.not
case Intrinsic::hexagon_A2_satb: // llvm.hexagon.A2.satb
case Intrinsic::hexagon_A2_sath: // llvm.hexagon.A2.sath
case Intrinsic::hexagon_A2_satub: // llvm.hexagon.A2.satub
case Intrinsic::hexagon_A2_satuh: // llvm.hexagon.A2.satuh
case Intrinsic::hexagon_A2_swiz: // llvm.hexagon.A2.swiz
case Intrinsic::hexagon_A2_sxtb: // llvm.hexagon.A2.sxtb
case Intrinsic::hexagon_A2_sxth: // llvm.hexagon.A2.sxth
case Intrinsic::hexagon_A2_tfr: // llvm.hexagon.A2.tfr
case Intrinsic::hexagon_A2_tfrsi: // llvm.hexagon.A2.tfrsi
case Intrinsic::hexagon_A2_zxtb: // llvm.hexagon.A2.zxtb
case Intrinsic::hexagon_A2_zxth: // llvm.hexagon.A2.zxth
case Intrinsic::hexagon_C2_tfrpr: // llvm.hexagon.C2.tfrpr
case Intrinsic::hexagon_S2_brev: // llvm.hexagon.S2.brev
case Intrinsic::hexagon_S2_cl0: // llvm.hexagon.S2.cl0
case Intrinsic::hexagon_S2_cl1: // llvm.hexagon.S2.cl1
case Intrinsic::hexagon_S2_clb: // llvm.hexagon.S2.clb
case Intrinsic::hexagon_S2_clbnorm: // llvm.hexagon.S2.clbnorm
case Intrinsic::hexagon_S2_ct0: // llvm.hexagon.S2.ct0
case Intrinsic::hexagon_S2_ct1: // llvm.hexagon.S2.ct1
case Intrinsic::hexagon_S2_svsathb: // llvm.hexagon.S2.svsathb
case Intrinsic::hexagon_S2_svsathub: // llvm.hexagon.S2.svsathub
case Intrinsic::hexagon_S2_vsplatrb: // llvm.hexagon.S2.vsplatrb
case Intrinsic::hexagon_SI_to_SXTHI_asrh: // llvm.hexagon.SI.to.SXTHI.asrh
case Intrinsic::xcore_bitrev: // llvm.xcore.bitrev
case Intrinsic::xcore_getps: // llvm.xcore.getps
ResultTy = IntegerType::get(Context, 32);
ArgTys.push_back(IntegerType::get(Context, 32));
break;
case Intrinsic::x86_sse42_crc32_32_16: // llvm.x86.sse42.crc32.32.16
ResultTy = IntegerType::get(Context, 32);
ArgTys.push_back(IntegerType::get(Context, 32));
ArgTys.push_back(IntegerType::get(Context, 16));
break;
case Intrinsic::arm_qadd: // llvm.arm.qadd
case Intrinsic::arm_qsub: // llvm.arm.qsub
case Intrinsic::arm_ssat: // llvm.arm.ssat
case Intrinsic::arm_usat: // llvm.arm.usat
case Intrinsic::hexagon_A2_add: // llvm.hexagon.A2.add
case Intrinsic::hexagon_A2_addh_h16_hh: // llvm.hexagon.A2.addh.h16.hh
case Intrinsic::hexagon_A2_addh_h16_hl: // llvm.hexagon.A2.addh.h16.hl
case Intrinsic::hexagon_A2_addh_h16_lh: // llvm.hexagon.A2.addh.h16.lh
case Intrinsic::hexagon_A2_addh_h16_ll: // llvm.hexagon.A2.addh.h16.ll
case Intrinsic::hexagon_A2_addh_h16_sat_hh: // llvm.hexagon.A2.addh.h16.sat.hh
case Intrinsic::hexagon_A2_addh_h16_sat_hl: // llvm.hexagon.A2.addh.h16.sat.hl
case Intrinsic::hexagon_A2_addh_h16_sat_lh: // llvm.hexagon.A2.addh.h16.sat.lh
case Intrinsic::hexagon_A2_addh_h16_sat_ll: // llvm.hexagon.A2.addh.h16.sat.ll
case Intrinsic::hexagon_A2_addh_l16_hh: // llvm.hexagon.A2.addh.l16.hh
case Intrinsic::hexagon_A2_addh_l16_hl: // llvm.hexagon.A2.addh.l16.hl
case Intrinsic::hexagon_A2_addh_l16_lh: // llvm.hexagon.A2.addh.l16.lh
case Intrinsic::hexagon_A2_addh_l16_ll: // llvm.hexagon.A2.addh.l16.ll
case Intrinsic::hexagon_A2_addh_l16_sat_hh: // llvm.hexagon.A2.addh.l16.sat.hh
case Intrinsic::hexagon_A2_addh_l16_sat_hl: // llvm.hexagon.A2.addh.l16.sat.hl
case Intrinsic::hexagon_A2_addh_l16_sat_lh: // llvm.hexagon.A2.addh.l16.sat.lh
case Intrinsic::hexagon_A2_addh_l16_sat_ll: // llvm.hexagon.A2.addh.l16.sat.ll
case Intrinsic::hexagon_A2_addi: // llvm.hexagon.A2.addi
case Intrinsic::hexagon_A2_addsat: // llvm.hexagon.A2.addsat
case Intrinsic::hexagon_A2_and: // llvm.hexagon.A2.and
case Intrinsic::hexagon_A2_andir: // llvm.hexagon.A2.andir
case Intrinsic::hexagon_A2_combine_hh: // llvm.hexagon.A2.combine.hh
case Intrinsic::hexagon_A2_combine_hl: // llvm.hexagon.A2.combine.hl
case Intrinsic::hexagon_A2_combine_lh: // llvm.hexagon.A2.combine.lh
case Intrinsic::hexagon_A2_combine_ll: // llvm.hexagon.A2.combine.ll
case Intrinsic::hexagon_A2_max: // llvm.hexagon.A2.max
case Intrinsic::hexagon_A2_maxu: // llvm.hexagon.A2.maxu
case Intrinsic::hexagon_A2_min: // llvm.hexagon.A2.min
case Intrinsic::hexagon_A2_minu: // llvm.hexagon.A2.minu
case Intrinsic::hexagon_A2_or: // llvm.hexagon.A2.or
case Intrinsic::hexagon_A2_orir: // llvm.hexagon.A2.orir
case Intrinsic::hexagon_A2_sub: // llvm.hexagon.A2.sub
case Intrinsic::hexagon_A2_subh_h16_hh: // llvm.hexagon.A2.subh.h16.hh
case Intrinsic::hexagon_A2_subh_h16_hl: // llvm.hexagon.A2.subh.h16.hl
case Intrinsic::hexagon_A2_subh_h16_lh: // llvm.hexagon.A2.subh.h16.lh
case Intrinsic::hexagon_A2_subh_h16_ll: // llvm.hexagon.A2.subh.h16.ll
case Intrinsic::hexagon_A2_subh_h16_sat_hh: // llvm.hexagon.A2.subh.h16.sat.hh
case Intrinsic::hexagon_A2_subh_h16_sat_hl: // llvm.hexagon.A2.subh.h16.sat.hl
case Intrinsic::hexagon_A2_subh_h16_sat_lh: // llvm.hexagon.A2.subh.h16.sat.lh
case Intrinsic::hexagon_A2_subh_h16_sat_ll: // llvm.hexagon.A2.subh.h16.sat.ll
case Intrinsic::hexagon_A2_subh_l16_hl: // llvm.hexagon.A2.subh.l16.hl
case Intrinsic::hexagon_A2_subh_l16_ll: // llvm.hexagon.A2.subh.l16.ll
case Intrinsic::hexagon_A2_subh_l16_sat_hl: // llvm.hexagon.A2.subh.l16.sat.hl
case Intrinsic::hexagon_A2_subh_l16_sat_ll: // llvm.hexagon.A2.subh.l16.sat.ll
case Intrinsic::hexagon_A2_subri: // llvm.hexagon.A2.subri
case Intrinsic::hexagon_A2_subsat: // llvm.hexagon.A2.subsat
case Intrinsic::hexagon_A2_svaddh: // llvm.hexagon.A2.svaddh
case Intrinsic::hexagon_A2_svaddhs: // llvm.hexagon.A2.svaddhs
case Intrinsic::hexagon_A2_svadduhs: // llvm.hexagon.A2.svadduhs
case Intrinsic::hexagon_A2_svavgh: // llvm.hexagon.A2.svavgh
case Intrinsic::hexagon_A2_svavghs: // llvm.hexagon.A2.svavghs
case Intrinsic::hexagon_A2_svnavgh: // llvm.hexagon.A2.svnavgh
case Intrinsic::hexagon_A2_svsubh: // llvm.hexagon.A2.svsubh
case Intrinsic::hexagon_A2_svsubhs: // llvm.hexagon.A2.svsubhs
case Intrinsic::hexagon_A2_svsubuhs: // llvm.hexagon.A2.svsubuhs
case Intrinsic::hexagon_A2_tfrih: // llvm.hexagon.A2.tfrih
case Intrinsic::hexagon_A2_tfril: // llvm.hexagon.A2.tfril
case Intrinsic::hexagon_A2_xor: // llvm.hexagon.A2.xor
case Intrinsic::hexagon_A4_andn: // llvm.hexagon.A4.andn
case Intrinsic::hexagon_A4_cround_ri: // llvm.hexagon.A4.cround.ri
case Intrinsic::hexagon_A4_cround_rr: // llvm.hexagon.A4.cround.rr
case Intrinsic::hexagon_A4_modwrapu: // llvm.hexagon.A4.modwrapu
case Intrinsic::hexagon_A4_orn: // llvm.hexagon.A4.orn
case Intrinsic::hexagon_A4_rcmpeq: // llvm.hexagon.A4.rcmpeq
case Intrinsic::hexagon_A4_rcmpeqi: // llvm.hexagon.A4.rcmpeqi
case Intrinsic::hexagon_A4_rcmpneq: // llvm.hexagon.A4.rcmpneq
case Intrinsic::hexagon_A4_rcmpneqi: // llvm.hexagon.A4.rcmpneqi
case Intrinsic::hexagon_A4_round_ri: // llvm.hexagon.A4.round.ri
case Intrinsic::hexagon_A4_round_ri_sat: // llvm.hexagon.A4.round.ri.sat
case Intrinsic::hexagon_A4_round_rr: // llvm.hexagon.A4.round.rr
case Intrinsic::hexagon_A4_round_rr_sat: // llvm.hexagon.A4.round.rr.sat
case Intrinsic::hexagon_C2_vitpack: // llvm.hexagon.C2.vitpack
case Intrinsic::hexagon_M2_cmpyrs_s0: // llvm.hexagon.M2.cmpyrs.s0
case Intrinsic::hexagon_M2_cmpyrs_s1: // llvm.hexagon.M2.cmpyrs.s1
case Intrinsic::hexagon_M2_cmpyrsc_s0: // llvm.hexagon.M2.cmpyrsc.s0
case Intrinsic::hexagon_M2_cmpyrsc_s1: // llvm.hexagon.M2.cmpyrsc.s1
case Intrinsic::hexagon_M2_dpmpyss_rnd_s0: // llvm.hexagon.M2.dpmpyss.rnd.s0
case Intrinsic::hexagon_M2_hmmpyh_rs1: // llvm.hexagon.M2.hmmpyh.rs1
case Intrinsic::hexagon_M2_hmmpyl_rs1: // llvm.hexagon.M2.hmmpyl.rs1
case Intrinsic::hexagon_M2_mpy_hh_s0: // llvm.hexagon.M2.mpy.hh.s0
case Intrinsic::hexagon_M2_mpy_hh_s1: // llvm.hexagon.M2.mpy.hh.s1
case Intrinsic::hexagon_M2_mpy_hl_s0: // llvm.hexagon.M2.mpy.hl.s0
case Intrinsic::hexagon_M2_mpy_hl_s1: // llvm.hexagon.M2.mpy.hl.s1
case Intrinsic::hexagon_M2_mpy_lh_s0: // llvm.hexagon.M2.mpy.lh.s0
case Intrinsic::hexagon_M2_mpy_lh_s1: // llvm.hexagon.M2.mpy.lh.s1
case Intrinsic::hexagon_M2_mpy_ll_s0: // llvm.hexagon.M2.mpy.ll.s0
case Intrinsic::hexagon_M2_mpy_ll_s1: // llvm.hexagon.M2.mpy.ll.s1
case Intrinsic::hexagon_M2_mpy_rnd_hh_s0: // llvm.hexagon.M2.mpy.rnd.hh.s0
case Intrinsic::hexagon_M2_mpy_rnd_hh_s1: // llvm.hexagon.M2.mpy.rnd.hh.s1
case Intrinsic::hexagon_M2_mpy_rnd_hl_s0: // llvm.hexagon.M2.mpy.rnd.hl.s0
case Intrinsic::hexagon_M2_mpy_rnd_hl_s1: // llvm.hexagon.M2.mpy.rnd.hl.s1
case Intrinsic::hexagon_M2_mpy_rnd_lh_s0: // llvm.hexagon.M2.mpy.rnd.lh.s0
case Intrinsic::hexagon_M2_mpy_rnd_lh_s1: // llvm.hexagon.M2.mpy.rnd.lh.s1
case Intrinsic::hexagon_M2_mpy_rnd_ll_s0: // llvm.hexagon.M2.mpy.rnd.ll.s0
case Intrinsic::hexagon_M2_mpy_rnd_ll_s1: // llvm.hexagon.M2.mpy.rnd.ll.s1
case Intrinsic::hexagon_M2_mpy_sat_hh_s0: // llvm.hexagon.M2.mpy.sat.hh.s0
case Intrinsic::hexagon_M2_mpy_sat_hh_s1: // llvm.hexagon.M2.mpy.sat.hh.s1
case Intrinsic::hexagon_M2_mpy_sat_hl_s0: // llvm.hexagon.M2.mpy.sat.hl.s0
case Intrinsic::hexagon_M2_mpy_sat_hl_s1: // llvm.hexagon.M2.mpy.sat.hl.s1
case Intrinsic::hexagon_M2_mpy_sat_lh_s0: // llvm.hexagon.M2.mpy.sat.lh.s0
case Intrinsic::hexagon_M2_mpy_sat_lh_s1: // llvm.hexagon.M2.mpy.sat.lh.s1
case Intrinsic::hexagon_M2_mpy_sat_ll_s0: // llvm.hexagon.M2.mpy.sat.ll.s0
case Intrinsic::hexagon_M2_mpy_sat_ll_s1: // llvm.hexagon.M2.mpy.sat.ll.s1
case Intrinsic::hexagon_M2_mpy_sat_rnd_hh_s0: // llvm.hexagon.M2.mpy.sat.rnd.hh.s0
case Intrinsic::hexagon_M2_mpy_sat_rnd_hh_s1: // llvm.hexagon.M2.mpy.sat.rnd.hh.s1
case Intrinsic::hexagon_M2_mpy_sat_rnd_hl_s0: // llvm.hexagon.M2.mpy.sat.rnd.hl.s0
case Intrinsic::hexagon_M2_mpy_sat_rnd_hl_s1: // llvm.hexagon.M2.mpy.sat.rnd.hl.s1
case Intrinsic::hexagon_M2_mpy_sat_rnd_lh_s0: // llvm.hexagon.M2.mpy.sat.rnd.lh.s0
case Intrinsic::hexagon_M2_mpy_sat_rnd_lh_s1: // llvm.hexagon.M2.mpy.sat.rnd.lh.s1
case Intrinsic::hexagon_M2_mpy_sat_rnd_ll_s0: // llvm.hexagon.M2.mpy.sat.rnd.ll.s0
case Intrinsic::hexagon_M2_mpy_sat_rnd_ll_s1: // llvm.hexagon.M2.mpy.sat.rnd.ll.s1
case Intrinsic::hexagon_M2_mpy_up: // llvm.hexagon.M2.mpy.up
case Intrinsic::hexagon_M2_mpyi: // llvm.hexagon.M2.mpyi
case Intrinsic::hexagon_M2_mpysmi: // llvm.hexagon.M2.mpysmi
case Intrinsic::hexagon_M2_mpyu_hh_s0: // llvm.hexagon.M2.mpyu.hh.s0
case Intrinsic::hexagon_M2_mpyu_hh_s1: // llvm.hexagon.M2.mpyu.hh.s1
case Intrinsic::hexagon_M2_mpyu_hl_s0: // llvm.hexagon.M2.mpyu.hl.s0
case Intrinsic::hexagon_M2_mpyu_hl_s1: // llvm.hexagon.M2.mpyu.hl.s1
case Intrinsic::hexagon_M2_mpyu_lh_s0: // llvm.hexagon.M2.mpyu.lh.s0
case Intrinsic::hexagon_M2_mpyu_lh_s1: // llvm.hexagon.M2.mpyu.lh.s1
case Intrinsic::hexagon_M2_mpyu_ll_s0: // llvm.hexagon.M2.mpyu.ll.s0
case Intrinsic::hexagon_M2_mpyu_ll_s1: // llvm.hexagon.M2.mpyu.ll.s1
case Intrinsic::hexagon_M2_mpyu_up: // llvm.hexagon.M2.mpyu.up
case Intrinsic::hexagon_M2_mpyui: // llvm.hexagon.M2.mpyui
case Intrinsic::hexagon_M2_vmpy2s_s0pack: // llvm.hexagon.M2.vmpy2s.s0pack
case Intrinsic::hexagon_M2_vmpy2s_s1pack: // llvm.hexagon.M2.vmpy2s.s1pack
case Intrinsic::hexagon_S2_asl_i_r: // llvm.hexagon.S2.asl.i.r
case Intrinsic::hexagon_S2_asl_i_r_sat: // llvm.hexagon.S2.asl.i.r.sat
case Intrinsic::hexagon_S2_asl_r_r: // llvm.hexagon.S2.asl.r.r
case Intrinsic::hexagon_S2_asl_r_r_sat: // llvm.hexagon.S2.asl.r.r.sat
case Intrinsic::hexagon_S2_asr_i_r: // llvm.hexagon.S2.asr.i.r
case Intrinsic::hexagon_S2_asr_i_r_rnd: // llvm.hexagon.S2.asr.i.r.rnd
case Intrinsic::hexagon_S2_asr_i_r_rnd_goodsyntax: // llvm.hexagon.S2.asr.i.r.rnd.goodsyntax
case Intrinsic::hexagon_S2_asr_r_r: // llvm.hexagon.S2.asr.r.r
case Intrinsic::hexagon_S2_asr_r_r_sat: // llvm.hexagon.S2.asr.r.r.sat
case Intrinsic::hexagon_S2_clrbit_i: // llvm.hexagon.S2.clrbit.i
case Intrinsic::hexagon_S2_clrbit_r: // llvm.hexagon.S2.clrbit.r
case Intrinsic::hexagon_S2_lsl_r_r: // llvm.hexagon.S2.lsl.r.r
case Intrinsic::hexagon_S2_lsr_i_r: // llvm.hexagon.S2.lsr.i.r
case Intrinsic::hexagon_S2_lsr_r_r: // llvm.hexagon.S2.lsr.r.r
case Intrinsic::hexagon_S2_setbit_i: // llvm.hexagon.S2.setbit.i
case Intrinsic::hexagon_S2_setbit_r: // llvm.hexagon.S2.setbit.r
case Intrinsic::hexagon_S2_togglebit_i: // llvm.hexagon.S2.togglebit.i
case Intrinsic::hexagon_S2_togglebit_r: // llvm.hexagon.S2.togglebit.r
case Intrinsic::x86_bmi_bextr_32: // llvm.x86.bmi.bextr.32
case Intrinsic::x86_bmi_bzhi_32: // llvm.x86.bmi.bzhi.32
case Intrinsic::x86_bmi_pdep_32: // llvm.x86.bmi.pdep.32
case Intrinsic::x86_bmi_pext_32: // llvm.x86.bmi.pext.32
case Intrinsic::x86_sse42_crc32_32_32: // llvm.x86.sse42.crc32.32.32
case Intrinsic::xcore_sext: // llvm.xcore.sext
case Intrinsic::xcore_zext: // llvm.xcore.zext
ResultTy = IntegerType::get(Context, 32);
ArgTys.push_back(IntegerType::get(Context, 32));
ArgTys.push_back(IntegerType::get(Context, 32));
break;
case Intrinsic::hexagon_C2_mux: // llvm.hexagon.C2.mux
case Intrinsic::hexagon_C2_muxii: // llvm.hexagon.C2.muxii
case Intrinsic::hexagon_C2_muxir: // llvm.hexagon.C2.muxir
case Intrinsic::hexagon_C2_muxri: // llvm.hexagon.C2.muxri
case Intrinsic::hexagon_M2_acci: // llvm.hexagon.M2.acci
case Intrinsic::hexagon_M2_accii: // llvm.hexagon.M2.accii
case Intrinsic::hexagon_M2_maci: // llvm.hexagon.M2.maci
case Intrinsic::hexagon_M2_macsin: // llvm.hexagon.M2.macsin
case Intrinsic::hexagon_M2_macsip: // llvm.hexagon.M2.macsip
case Intrinsic::hexagon_M2_mpy_acc_hh_s0: // llvm.hexagon.M2.mpy.acc.hh.s0
case Intrinsic::hexagon_M2_mpy_acc_hh_s1: // llvm.hexagon.M2.mpy.acc.hh.s1
case Intrinsic::hexagon_M2_mpy_acc_hl_s0: // llvm.hexagon.M2.mpy.acc.hl.s0
case Intrinsic::hexagon_M2_mpy_acc_hl_s1: // llvm.hexagon.M2.mpy.acc.hl.s1
case Intrinsic::hexagon_M2_mpy_acc_lh_s0: // llvm.hexagon.M2.mpy.acc.lh.s0
case Intrinsic::hexagon_M2_mpy_acc_lh_s1: // llvm.hexagon.M2.mpy.acc.lh.s1
case Intrinsic::hexagon_M2_mpy_acc_ll_s0: // llvm.hexagon.M2.mpy.acc.ll.s0
case Intrinsic::hexagon_M2_mpy_acc_ll_s1: // llvm.hexagon.M2.mpy.acc.ll.s1
case Intrinsic::hexagon_M2_mpy_acc_sat_hh_s0: // llvm.hexagon.M2.mpy.acc.sat.hh.s0
case Intrinsic::hexagon_M2_mpy_acc_sat_hh_s1: // llvm.hexagon.M2.mpy.acc.sat.hh.s1
case Intrinsic::hexagon_M2_mpy_acc_sat_hl_s0: // llvm.hexagon.M2.mpy.acc.sat.hl.s0
case Intrinsic::hexagon_M2_mpy_acc_sat_hl_s1: // llvm.hexagon.M2.mpy.acc.sat.hl.s1
case Intrinsic::hexagon_M2_mpy_acc_sat_lh_s0: // llvm.hexagon.M2.mpy.acc.sat.lh.s0
case Intrinsic::hexagon_M2_mpy_acc_sat_lh_s1: // llvm.hexagon.M2.mpy.acc.sat.lh.s1
case Intrinsic::hexagon_M2_mpy_acc_sat_ll_s0: // llvm.hexagon.M2.mpy.acc.sat.ll.s0
case Intrinsic::hexagon_M2_mpy_acc_sat_ll_s1: // llvm.hexagon.M2.mpy.acc.sat.ll.s1
case Intrinsic::hexagon_M2_mpy_nac_hh_s0: // llvm.hexagon.M2.mpy.nac.hh.s0
case Intrinsic::hexagon_M2_mpy_nac_hh_s1: // llvm.hexagon.M2.mpy.nac.hh.s1
case Intrinsic::hexagon_M2_mpy_nac_hl_s0: // llvm.hexagon.M2.mpy.nac.hl.s0
case Intrinsic::hexagon_M2_mpy_nac_hl_s1: // llvm.hexagon.M2.mpy.nac.hl.s1
case Intrinsic::hexagon_M2_mpy_nac_lh_s0: // llvm.hexagon.M2.mpy.nac.lh.s0
case Intrinsic::hexagon_M2_mpy_nac_lh_s1: // llvm.hexagon.M2.mpy.nac.lh.s1
case Intrinsic::hexagon_M2_mpy_nac_ll_s0: // llvm.hexagon.M2.mpy.nac.ll.s0
case Intrinsic::hexagon_M2_mpy_nac_ll_s1: // llvm.hexagon.M2.mpy.nac.ll.s1
case Intrinsic::hexagon_M2_mpy_nac_sat_hh_s0: // llvm.hexagon.M2.mpy.nac.sat.hh.s0
case Intrinsic::hexagon_M2_mpy_nac_sat_hh_s1: // llvm.hexagon.M2.mpy.nac.sat.hh.s1
case Intrinsic::hexagon_M2_mpy_nac_sat_hl_s0: // llvm.hexagon.M2.mpy.nac.sat.hl.s0
case Intrinsic::hexagon_M2_mpy_nac_sat_hl_s1: // llvm.hexagon.M2.mpy.nac.sat.hl.s1
case Intrinsic::hexagon_M2_mpy_nac_sat_lh_s0: // llvm.hexagon.M2.mpy.nac.sat.lh.s0
case Intrinsic::hexagon_M2_mpy_nac_sat_lh_s1: // llvm.hexagon.M2.mpy.nac.sat.lh.s1
case Intrinsic::hexagon_M2_mpy_nac_sat_ll_s0: // llvm.hexagon.M2.mpy.nac.sat.ll.s0
case Intrinsic::hexagon_M2_mpy_nac_sat_ll_s1: // llvm.hexagon.M2.mpy.nac.sat.ll.s1
case Intrinsic::hexagon_M2_mpyu_acc_hh_s0: // llvm.hexagon.M2.mpyu.acc.hh.s0
case Intrinsic::hexagon_M2_mpyu_acc_hh_s1: // llvm.hexagon.M2.mpyu.acc.hh.s1
case Intrinsic::hexagon_M2_mpyu_acc_hl_s0: // llvm.hexagon.M2.mpyu.acc.hl.s0
case Intrinsic::hexagon_M2_mpyu_acc_hl_s1: // llvm.hexagon.M2.mpyu.acc.hl.s1
case Intrinsic::hexagon_M2_mpyu_acc_lh_s0: // llvm.hexagon.M2.mpyu.acc.lh.s0
case Intrinsic::hexagon_M2_mpyu_acc_lh_s1: // llvm.hexagon.M2.mpyu.acc.lh.s1
case Intrinsic::hexagon_M2_mpyu_acc_ll_s0: // llvm.hexagon.M2.mpyu.acc.ll.s0
case Intrinsic::hexagon_M2_mpyu_acc_ll_s1: // llvm.hexagon.M2.mpyu.acc.ll.s1
case Intrinsic::hexagon_M2_mpyu_nac_hh_s0: // llvm.hexagon.M2.mpyu.nac.hh.s0
case Intrinsic::hexagon_M2_mpyu_nac_hh_s1: // llvm.hexagon.M2.mpyu.nac.hh.s1
case Intrinsic::hexagon_M2_mpyu_nac_hl_s0: // llvm.hexagon.M2.mpyu.nac.hl.s0
case Intrinsic::hexagon_M2_mpyu_nac_hl_s1: // llvm.hexagon.M2.mpyu.nac.hl.s1
case Intrinsic::hexagon_M2_mpyu_nac_lh_s0: // llvm.hexagon.M2.mpyu.nac.lh.s0
case Intrinsic::hexagon_M2_mpyu_nac_lh_s1: // llvm.hexagon.M2.mpyu.nac.lh.s1
case Intrinsic::hexagon_M2_mpyu_nac_ll_s0: // llvm.hexagon.M2.mpyu.nac.ll.s0
case Intrinsic::hexagon_M2_mpyu_nac_ll_s1: // llvm.hexagon.M2.mpyu.nac.ll.s1
case Intrinsic::hexagon_M2_nacci: // llvm.hexagon.M2.nacci
case Intrinsic::hexagon_M2_naccii: // llvm.hexagon.M2.naccii
case Intrinsic::hexagon_M2_subacc: // llvm.hexagon.M2.subacc
case Intrinsic::hexagon_M2_xor_xacc: // llvm.hexagon.M2.xor.xacc
case Intrinsic::hexagon_M4_and_and: // llvm.hexagon.M4.and.and
case Intrinsic::hexagon_M4_and_andn: // llvm.hexagon.M4.and.andn
case Intrinsic::hexagon_M4_and_or: // llvm.hexagon.M4.and.or
case Intrinsic::hexagon_M4_and_xor: // llvm.hexagon.M4.and.xor
case Intrinsic::hexagon_M4_or_and: // llvm.hexagon.M4.or.and
case Intrinsic::hexagon_M4_or_andn: // llvm.hexagon.M4.or.andn
case Intrinsic::hexagon_M4_or_or: // llvm.hexagon.M4.or.or
case Intrinsic::hexagon_M4_or_xor: // llvm.hexagon.M4.or.xor
case Intrinsic::hexagon_M4_xor_and: // llvm.hexagon.M4.xor.and
case Intrinsic::hexagon_M4_xor_andn: // llvm.hexagon.M4.xor.andn
case Intrinsic::hexagon_M4_xor_or: // llvm.hexagon.M4.xor.or
case Intrinsic::hexagon_S2_addasl_rrri: // llvm.hexagon.S2.addasl.rrri
case Intrinsic::hexagon_S2_asl_i_r_acc: // llvm.hexagon.S2.asl.i.r.acc
case Intrinsic::hexagon_S2_asl_i_r_and: // llvm.hexagon.S2.asl.i.r.and
case Intrinsic::hexagon_S2_asl_i_r_nac: // llvm.hexagon.S2.asl.i.r.nac
case Intrinsic::hexagon_S2_asl_i_r_or: // llvm.hexagon.S2.asl.i.r.or
case Intrinsic::hexagon_S2_asl_i_r_xacc: // llvm.hexagon.S2.asl.i.r.xacc
case Intrinsic::hexagon_S2_asl_r_r_acc: // llvm.hexagon.S2.asl.r.r.acc
case Intrinsic::hexagon_S2_asl_r_r_and: // llvm.hexagon.S2.asl.r.r.and
case Intrinsic::hexagon_S2_asl_r_r_nac: // llvm.hexagon.S2.asl.r.r.nac
case Intrinsic::hexagon_S2_asl_r_r_or: // llvm.hexagon.S2.asl.r.r.or
case Intrinsic::hexagon_S2_asr_i_r_acc: // llvm.hexagon.S2.asr.i.r.acc
case Intrinsic::hexagon_S2_asr_i_r_and: // llvm.hexagon.S2.asr.i.r.and
case Intrinsic::hexagon_S2_asr_i_r_nac: // llvm.hexagon.S2.asr.i.r.nac
case Intrinsic::hexagon_S2_asr_i_r_or: // llvm.hexagon.S2.asr.i.r.or
case Intrinsic::hexagon_S2_asr_r_r_acc: // llvm.hexagon.S2.asr.r.r.acc
case Intrinsic::hexagon_S2_asr_r_r_and: // llvm.hexagon.S2.asr.r.r.and
case Intrinsic::hexagon_S2_asr_r_r_nac: // llvm.hexagon.S2.asr.r.r.nac
case Intrinsic::hexagon_S2_asr_r_r_or: // llvm.hexagon.S2.asr.r.r.or
case Intrinsic::hexagon_S2_extractu: // llvm.hexagon.S2.extractu
case Intrinsic::hexagon_S2_lsl_r_r_acc: // llvm.hexagon.S2.lsl.r.r.acc
case Intrinsic::hexagon_S2_lsl_r_r_and: // llvm.hexagon.S2.lsl.r.r.and
case Intrinsic::hexagon_S2_lsl_r_r_nac: // llvm.hexagon.S2.lsl.r.r.nac
case Intrinsic::hexagon_S2_lsl_r_r_or: // llvm.hexagon.S2.lsl.r.r.or
case Intrinsic::hexagon_S2_lsr_i_r_acc: // llvm.hexagon.S2.lsr.i.r.acc
case Intrinsic::hexagon_S2_lsr_i_r_and: // llvm.hexagon.S2.lsr.i.r.and
case Intrinsic::hexagon_S2_lsr_i_r_nac: // llvm.hexagon.S2.lsr.i.r.nac
case Intrinsic::hexagon_S2_lsr_i_r_or: // llvm.hexagon.S2.lsr.i.r.or
case Intrinsic::hexagon_S2_lsr_i_r_xacc: // llvm.hexagon.S2.lsr.i.r.xacc
case Intrinsic::hexagon_S2_lsr_r_r_acc: // llvm.hexagon.S2.lsr.r.r.acc
case Intrinsic::hexagon_S2_lsr_r_r_and: // llvm.hexagon.S2.lsr.r.r.and
case Intrinsic::hexagon_S2_lsr_r_r_nac: // llvm.hexagon.S2.lsr.r.r.nac
case Intrinsic::hexagon_S2_lsr_r_r_or: // llvm.hexagon.S2.lsr.r.r.or
case Intrinsic::hexagon_S4_addaddi: // llvm.hexagon.S4.addaddi
case Intrinsic::hexagon_S4_or_andi: // llvm.hexagon.S4.or.andi
case Intrinsic::hexagon_S4_or_andix: // llvm.hexagon.S4.or.andix
case Intrinsic::hexagon_S4_or_ori: // llvm.hexagon.S4.or.ori
case Intrinsic::hexagon_S4_subaddi: // llvm.hexagon.S4.subaddi
case Intrinsic::xcore_crc32: // llvm.xcore.crc32
ResultTy = IntegerType::get(Context, 32);
ArgTys.push_back(IntegerType::get(Context, 32));
ArgTys.push_back(IntegerType::get(Context, 32));
ArgTys.push_back(IntegerType::get(Context, 32));
break;
case Intrinsic::hexagon_S2_insert: // llvm.hexagon.S2.insert
case Intrinsic::hexagon_S2_tableidxb_goodsyntax: // llvm.hexagon.S2.tableidxb.goodsyntax
case Intrinsic::hexagon_S2_tableidxd_goodsyntax: // llvm.hexagon.S2.tableidxd.goodsyntax
case Intrinsic::hexagon_S2_tableidxh_goodsyntax: // llvm.hexagon.S2.tableidxh.goodsyntax
case Intrinsic::hexagon_S2_tableidxw_goodsyntax: // llvm.hexagon.S2.tableidxw.goodsyntax
ResultTy = IntegerType::get(Context, 32);
ArgTys.push_back(IntegerType::get(Context, 32));
ArgTys.push_back(IntegerType::get(Context, 32));
ArgTys.push_back(IntegerType::get(Context, 32));
ArgTys.push_back(IntegerType::get(Context, 32));
break;
case Intrinsic::arm_mrc: // llvm.arm.mrc
case Intrinsic::arm_mrc2: // llvm.arm.mrc2
ResultTy = IntegerType::get(Context, 32);
ArgTys.push_back(IntegerType::get(Context, 32));
ArgTys.push_back(IntegerType::get(Context, 32));
ArgTys.push_back(IntegerType::get(Context, 32));
ArgTys.push_back(IntegerType::get(Context, 32));
ArgTys.push_back(IntegerType::get(Context, 32));
break;
case Intrinsic::hexagon_S2_insert_rp: // llvm.hexagon.S2.insert.rp
ResultTy = IntegerType::get(Context, 32);
ArgTys.push_back(IntegerType::get(Context, 32));
ArgTys.push_back(IntegerType::get(Context, 32));
ArgTys.push_back(IntegerType::get(Context, 64));
break;
case Intrinsic::arm_strexd: // llvm.arm.strexd
ResultTy = IntegerType::get(Context, 32);
ArgTys.push_back(IntegerType::get(Context, 32));
ArgTys.push_back(IntegerType::get(Context, 32));
ArgTys.push_back(PointerType::getUnqual(IntegerType::get(Context, 8)));
break;
case Intrinsic::hexagon_S2_extractu_rp: // llvm.hexagon.S2.extractu.rp
ResultTy = IntegerType::get(Context, 32);
ArgTys.push_back(IntegerType::get(Context, 32));
ArgTys.push_back(IntegerType::get(Context, 64));
break;
case Intrinsic::x86_sse42_crc32_32_8: // llvm.x86.sse42.crc32.32.8
ResultTy = IntegerType::get(Context, 32);
ArgTys.push_back(IntegerType::get(Context, 32));
ArgTys.push_back(IntegerType::get(Context, 8));
break;
case Intrinsic::ppc_altivec_vcmpequb_p: // llvm.ppc.altivec.vcmpequb.p
case Intrinsic::ppc_altivec_vcmpgtsb_p: // llvm.ppc.altivec.vcmpgtsb.p
case Intrinsic::ppc_altivec_vcmpgtub_p: // llvm.ppc.altivec.vcmpgtub.p
ResultTy = IntegerType::get(Context, 32);
ArgTys.push_back(IntegerType::get(Context, 32));
ArgTys.push_back(VectorType::get(IntegerType::get(Context, 8), 16));
ArgTys.push_back(VectorType::get(IntegerType::get(Context, 8), 16));
break;
case Intrinsic::ppc_altivec_vcmpbfp_p: // llvm.ppc.altivec.vcmpbfp.p
case Intrinsic::ppc_altivec_vcmpeqfp_p: // llvm.ppc.altivec.vcmpeqfp.p
case Intrinsic::ppc_altivec_vcmpgefp_p: // llvm.ppc.altivec.vcmpgefp.p
case Intrinsic::ppc_altivec_vcmpgtfp_p: // llvm.ppc.altivec.vcmpgtfp.p
ResultTy = IntegerType::get(Context, 32);
ArgTys.push_back(IntegerType::get(Context, 32));
ArgTys.push_back(VectorType::get(Type::getFloatTy(Context), 4));
ArgTys.push_back(VectorType::get(Type::getFloatTy(Context), 4));
break;
case Intrinsic::ppc_altivec_vcmpequw_p: // llvm.ppc.altivec.vcmpequw.p
case Intrinsic::ppc_altivec_vcmpgtsw_p: // llvm.ppc.altivec.vcmpgtsw.p
case Intrinsic::ppc_altivec_vcmpgtuw_p: // llvm.ppc.altivec.vcmpgtuw.p
ResultTy = IntegerType::get(Context, 32);
ArgTys.push_back(IntegerType::get(Context, 32));
ArgTys.push_back(VectorType::get(IntegerType::get(Context, 32), 4));
ArgTys.push_back(VectorType::get(IntegerType::get(Context, 32), 4));
break;
case Intrinsic::ppc_altivec_vcmpequh_p: // llvm.ppc.altivec.vcmpequh.p
case Intrinsic::ppc_altivec_vcmpgtsh_p: // llvm.ppc.altivec.vcmpgtsh.p
case Intrinsic::ppc_altivec_vcmpgtuh_p: // llvm.ppc.altivec.vcmpgtuh.p
ResultTy = IntegerType::get(Context, 32);
ArgTys.push_back(IntegerType::get(Context, 32));
ArgTys.push_back(VectorType::get(IntegerType::get(Context, 16), 8));
ArgTys.push_back(VectorType::get(IntegerType::get(Context, 16), 8));
break;
case Intrinsic::hexagon_A2_sat: // llvm.hexagon.A2.sat
case Intrinsic::hexagon_S2_cl0p: // llvm.hexagon.S2.cl0p
case Intrinsic::hexagon_S2_cl1p: // llvm.hexagon.S2.cl1p
case Intrinsic::hexagon_S2_clbp: // llvm.hexagon.S2.clbp
case Intrinsic::hexagon_S2_vrndpackwh: // llvm.hexagon.S2.vrndpackwh
case Intrinsic::hexagon_S2_vrndpackwhs: // llvm.hexagon.S2.vrndpackwhs
case Intrinsic::hexagon_S2_vsathb: // llvm.hexagon.S2.vsathb
case Intrinsic::hexagon_S2_vsathub: // llvm.hexagon.S2.vsathub
case Intrinsic::hexagon_S2_vsatwh: // llvm.hexagon.S2.vsatwh
case Intrinsic::hexagon_S2_vsatwuh: // llvm.hexagon.S2.vsatwuh
case Intrinsic::hexagon_S2_vtrunehb: // llvm.hexagon.S2.vtrunehb
case Intrinsic::hexagon_S2_vtrunohb: // llvm.hexagon.S2.vtrunohb
ResultTy = IntegerType::get(Context, 32);
ArgTys.push_back(IntegerType::get(Context, 64));
break;
case Intrinsic::hexagon_M2_vrcmpys_s1rp: // llvm.hexagon.M2.vrcmpys.s1rp
case Intrinsic::hexagon_S2_asr_i_svw_trun: // llvm.hexagon.S2.asr.i.svw.trun
case Intrinsic::hexagon_S2_asr_r_svw_trun: // llvm.hexagon.S2.asr.r.svw.trun
ResultTy = IntegerType::get(Context, 32);
ArgTys.push_back(IntegerType::get(Context, 64));
ArgTys.push_back(IntegerType::get(Context, 32));
break;
case Intrinsic::hexagon_M2_vdmpyrs_s0: // llvm.hexagon.M2.vdmpyrs.s0
case Intrinsic::hexagon_M2_vdmpyrs_s1: // llvm.hexagon.M2.vdmpyrs.s1
case Intrinsic::hexagon_M2_vradduh: // llvm.hexagon.M2.vradduh
case Intrinsic::hexagon_S2_parityp: // llvm.hexagon.S2.parityp
ResultTy = IntegerType::get(Context, 32);
ArgTys.push_back(IntegerType::get(Context, 64));
ArgTys.push_back(IntegerType::get(Context, 64));
break;
case Intrinsic::eh_sjlj_setjmp: // llvm.eh.sjlj.setjmp
case Intrinsic::eh_typeid_for: // llvm.eh.typeid.for
case Intrinsic::setjmp: // llvm.setjmp
ResultTy = IntegerType::get(Context, 32);
ArgTys.push_back(PointerType::getUnqual(IntegerType::get(Context, 8)));
break;
case Intrinsic::sigsetjmp: // llvm.sigsetjmp
ResultTy = IntegerType::get(Context, 32);
ArgTys.push_back(PointerType::getUnqual(IntegerType::get(Context, 8)));
ArgTys.push_back(IntegerType::get(Context, 32));
break;
case Intrinsic::x86_sse2_pmovmskb_128: // llvm.x86.sse2.pmovmskb.128
ResultTy = IntegerType::get(Context, 32);
ArgTys.push_back(VectorType::get(IntegerType::get(Context, 8), 16));
break;
case Intrinsic::x86_sse41_pextrb: // llvm.x86.sse41.pextrb
ResultTy = IntegerType::get(Context, 32);
ArgTys.push_back(VectorType::get(IntegerType::get(Context, 8), 16));
ArgTys.push_back(IntegerType::get(Context, 32));
break;
case Intrinsic::x86_sse42_pcmpestri128: // llvm.x86.sse42.pcmpestri128
case Intrinsic::x86_sse42_pcmpestria128: // llvm.x86.sse42.pcmpestria128
case Intrinsic::x86_sse42_pcmpestric128: // llvm.x86.sse42.pcmpestric128
case Intrinsic::x86_sse42_pcmpestrio128: // llvm.x86.sse42.pcmpestrio128
case Intrinsic::x86_sse42_pcmpestris128: // llvm.x86.sse42.pcmpestris128
case Intrinsic::x86_sse42_pcmpestriz128: // llvm.x86.sse42.pcmpestriz128
ResultTy = IntegerType::get(Context, 32);
ArgTys.push_back(VectorType::get(IntegerType::get(Context, 8), 16));
ArgTys.push_back(IntegerType::get(Context, 32));
ArgTys.push_back(VectorType::get(IntegerType::get(Context, 8), 16));
ArgTys.push_back(IntegerType::get(Context, 32));
ArgTys.push_back(IntegerType::get(Context, 8));
break;
case Intrinsic::x86_sse42_pcmpistri128: // llvm.x86.sse42.pcmpistri128
case Intrinsic::x86_sse42_pcmpistria128: // llvm.x86.sse42.pcmpistria128
case Intrinsic::x86_sse42_pcmpistric128: // llvm.x86.sse42.pcmpistric128
case Intrinsic::x86_sse42_pcmpistrio128: // llvm.x86.sse42.pcmpistrio128
case Intrinsic::x86_sse42_pcmpistris128: // llvm.x86.sse42.pcmpistris128
case Intrinsic::x86_sse42_pcmpistriz128: // llvm.x86.sse42.pcmpistriz128
ResultTy = IntegerType::get(Context, 32);
ArgTys.push_back(VectorType::get(IntegerType::get(Context, 8), 16));
ArgTys.push_back(VectorType::get(IntegerType::get(Context, 8), 16));
ArgTys.push_back(IntegerType::get(Context, 8));
break;
case Intrinsic::x86_sse2_cvtsd2si: // llvm.x86.sse2.cvtsd2si
case Intrinsic::x86_sse2_cvttsd2si: // llvm.x86.sse2.cvttsd2si
case Intrinsic::x86_sse2_movmsk_pd: // llvm.x86.sse2.movmsk.pd
ResultTy = IntegerType::get(Context, 32);
ArgTys.push_back(VectorType::get(Type::getDoubleTy(Context), 2));
break;
case Intrinsic::x86_avx_vtestc_pd: // llvm.x86.avx.vtestc.pd
case Intrinsic::x86_avx_vtestnzc_pd: // llvm.x86.avx.vtestnzc.pd
case Intrinsic::x86_avx_vtestz_pd: // llvm.x86.avx.vtestz.pd
case Intrinsic::x86_sse2_comieq_sd: // llvm.x86.sse2.comieq.sd
case Intrinsic::x86_sse2_comige_sd: // llvm.x86.sse2.comige.sd
case Intrinsic::x86_sse2_comigt_sd: // llvm.x86.sse2.comigt.sd
case Intrinsic::x86_sse2_comile_sd: // llvm.x86.sse2.comile.sd
case Intrinsic::x86_sse2_comilt_sd: // llvm.x86.sse2.comilt.sd
case Intrinsic::x86_sse2_comineq_sd: // llvm.x86.sse2.comineq.sd
case Intrinsic::x86_sse2_ucomieq_sd: // llvm.x86.sse2.ucomieq.sd
case Intrinsic::x86_sse2_ucomige_sd: // llvm.x86.sse2.ucomige.sd
case Intrinsic::x86_sse2_ucomigt_sd: // llvm.x86.sse2.ucomigt.sd
case Intrinsic::x86_sse2_ucomile_sd: // llvm.x86.sse2.ucomile.sd
case Intrinsic::x86_sse2_ucomilt_sd: // llvm.x86.sse2.ucomilt.sd
case Intrinsic::x86_sse2_ucomineq_sd: // llvm.x86.sse2.ucomineq.sd
ResultTy = IntegerType::get(Context, 32);
ArgTys.push_back(VectorType::get(Type::getDoubleTy(Context), 2));
ArgTys.push_back(VectorType::get(Type::getDoubleTy(Context), 2));
break;
case Intrinsic::x86_sse41_ptestc: // llvm.x86.sse41.ptestc
case Intrinsic::x86_sse41_ptestnzc: // llvm.x86.sse41.ptestnzc
case Intrinsic::x86_sse41_ptestz: // llvm.x86.sse41.ptestz
ResultTy = IntegerType::get(Context, 32);
ArgTys.push_back(VectorType::get(IntegerType::get(Context, 64), 2));
ArgTys.push_back(VectorType::get(IntegerType::get(Context, 64), 2));
break;
case Intrinsic::x86_avx2_pmovmskb: // llvm.x86.avx2.pmovmskb
ResultTy = IntegerType::get(Context, 32);
ArgTys.push_back(VectorType::get(IntegerType::get(Context, 8), 32));
break;
case Intrinsic::x86_sse_cvtss2si: // llvm.x86.sse.cvtss2si
case Intrinsic::x86_sse_cvttss2si: // llvm.x86.sse.cvttss2si
case Intrinsic::x86_sse_movmsk_ps: // llvm.x86.sse.movmsk.ps
ResultTy = IntegerType::get(Context, 32);
ArgTys.push_back(VectorType::get(Type::getFloatTy(Context), 4));
break;
case Intrinsic::x86_sse41_extractps: // llvm.x86.sse41.extractps
ResultTy = IntegerType::get(Context, 32);
ArgTys.push_back(VectorType::get(Type::getFloatTy(Context), 4));
ArgTys.push_back(IntegerType::get(Context, 32));
break;
case Intrinsic::x86_avx_vtestc_ps: // llvm.x86.avx.vtestc.ps
case Intrinsic::x86_avx_vtestnzc_ps: // llvm.x86.avx.vtestnzc.ps
case Intrinsic::x86_avx_vtestz_ps: // llvm.x86.avx.vtestz.ps
case Intrinsic::x86_sse_comieq_ss: // llvm.x86.sse.comieq.ss
case Intrinsic::x86_sse_comige_ss: // llvm.x86.sse.comige.ss
case Intrinsic::x86_sse_comigt_ss: // llvm.x86.sse.comigt.ss
case Intrinsic::x86_sse_comile_ss: // llvm.x86.sse.comile.ss
case Intrinsic::x86_sse_comilt_ss: // llvm.x86.sse.comilt.ss
case Intrinsic::x86_sse_comineq_ss: // llvm.x86.sse.comineq.ss
case Intrinsic::x86_sse_ucomieq_ss: // llvm.x86.sse.ucomieq.ss
case Intrinsic::x86_sse_ucomige_ss: // llvm.x86.sse.ucomige.ss
case Intrinsic::x86_sse_ucomigt_ss: // llvm.x86.sse.ucomigt.ss
case Intrinsic::x86_sse_ucomile_ss: // llvm.x86.sse.ucomile.ss
case Intrinsic::x86_sse_ucomilt_ss: // llvm.x86.sse.ucomilt.ss
case Intrinsic::x86_sse_ucomineq_ss: // llvm.x86.sse.ucomineq.ss
ResultTy = IntegerType::get(Context, 32);
ArgTys.push_back(VectorType::get(Type::getFloatTy(Context), 4));
ArgTys.push_back(VectorType::get(Type::getFloatTy(Context), 4));
break;
case Intrinsic::x86_avx_movmsk_pd_256: // llvm.x86.avx.movmsk.pd.256
ResultTy = IntegerType::get(Context, 32);
ArgTys.push_back(VectorType::get(Type::getDoubleTy(Context), 4));
break;
case Intrinsic::x86_avx_vtestc_pd_256: // llvm.x86.avx.vtestc.pd.256
case Intrinsic::x86_avx_vtestnzc_pd_256: // llvm.x86.avx.vtestnzc.pd.256
case Intrinsic::x86_avx_vtestz_pd_256: // llvm.x86.avx.vtestz.pd.256
ResultTy = IntegerType::get(Context, 32);
ArgTys.push_back(VectorType::get(Type::getDoubleTy(Context), 4));
ArgTys.push_back(VectorType::get(Type::getDoubleTy(Context), 4));
break;
case Intrinsic::x86_sse41_pextrd: // llvm.x86.sse41.pextrd
ResultTy = IntegerType::get(Context, 32);
ArgTys.push_back(VectorType::get(IntegerType::get(Context, 32), 4));
ArgTys.push_back(IntegerType::get(Context, 32));
break;
case Intrinsic::x86_avx_ptestc_256: // llvm.x86.avx.ptestc.256
case Intrinsic::x86_avx_ptestnzc_256: // llvm.x86.avx.ptestnzc.256
case Intrinsic::x86_avx_ptestz_256: // llvm.x86.avx.ptestz.256
ResultTy = IntegerType::get(Context, 32);
ArgTys.push_back(VectorType::get(IntegerType::get(Context, 64), 4));
ArgTys.push_back(VectorType::get(IntegerType::get(Context, 64), 4));
break;
case Intrinsic::x86_avx_movmsk_ps_256: // llvm.x86.avx.movmsk.ps.256
ResultTy = IntegerType::get(Context, 32);
ArgTys.push_back(VectorType::get(Type::getFloatTy(Context), 8));
break;
case Intrinsic::x86_avx_vtestc_ps_256: // llvm.x86.avx.vtestc.ps.256
case Intrinsic::x86_avx_vtestnzc_ps_256: // llvm.x86.avx.vtestnzc.ps.256
case Intrinsic::x86_avx_vtestz_ps_256: // llvm.x86.avx.vtestz.ps.256
ResultTy = IntegerType::get(Context, 32);
ArgTys.push_back(VectorType::get(Type::getFloatTy(Context), 8));
ArgTys.push_back(VectorType::get(Type::getFloatTy(Context), 8));
break;
case Intrinsic::x86_mmx_pmovmskb: // llvm.x86.mmx.pmovmskb
ResultTy = IntegerType::get(Context, 32);
ArgTys.push_back(Type::getX86_MMXTy(Context));
break;
case Intrinsic::x86_mmx_pextr_w: // llvm.x86.mmx.pextr.w
ResultTy = IntegerType::get(Context, 32);
ArgTys.push_back(Type::getX86_MMXTy(Context));
ArgTys.push_back(IntegerType::get(Context, 32));
break;
case Intrinsic::xcore_crc8: // llvm.xcore.crc8
ResultTy = StructType::get(IntegerType::get(Context, 32), IntegerType::get(Context, 32), NULL);
ArgTys.push_back(IntegerType::get(Context, 32));
ArgTys.push_back(IntegerType::get(Context, 32));
ArgTys.push_back(IntegerType::get(Context, 32));
break;
case Intrinsic::arm_ldrexd: // llvm.arm.ldrexd
ResultTy = StructType::get(IntegerType::get(Context, 32), IntegerType::get(Context, 32), NULL);
ArgTys.push_back(PointerType::getUnqual(IntegerType::get(Context, 8)));
break;
case Intrinsic::ptx_read_clock64: // llvm.ptx.read.clock64
case Intrinsic::readcyclecounter: // llvm.readcyclecounter
case Intrinsic::x86_rdfsbase_64: // llvm.x86.rdfsbase.64
case Intrinsic::x86_rdgsbase_64: // llvm.x86.rdgsbase.64
ResultTy = IntegerType::get(Context, 64);
break;
case Intrinsic::hexagon_A2_sxtw: // llvm.hexagon.A2.sxtw
case Intrinsic::hexagon_A2_tfrpi: // llvm.hexagon.A2.tfrpi
case Intrinsic::hexagon_C2_mask: // llvm.hexagon.C2.mask
case Intrinsic::hexagon_S2_vsplatrh: // llvm.hexagon.S2.vsplatrh
case Intrinsic::hexagon_S2_vsxtbh: // llvm.hexagon.S2.vsxtbh
case Intrinsic::hexagon_S2_vsxthw: // llvm.hexagon.S2.vsxthw
case Intrinsic::hexagon_S2_vzxtbh: // llvm.hexagon.S2.vzxtbh
case Intrinsic::hexagon_S2_vzxthw: // llvm.hexagon.S2.vzxthw
ResultTy = IntegerType::get(Context, 64);
ArgTys.push_back(IntegerType::get(Context, 32));
break;
case Intrinsic::hexagon_A2_combineii: // llvm.hexagon.A2.combineii
case Intrinsic::hexagon_A2_combinew: // llvm.hexagon.A2.combinew
case Intrinsic::hexagon_A4_combineir: // llvm.hexagon.A4.combineir
case Intrinsic::hexagon_A4_combineri: // llvm.hexagon.A4.combineri
case Intrinsic::hexagon_M2_cmpyi_s0: // llvm.hexagon.M2.cmpyi.s0
case Intrinsic::hexagon_M2_cmpyr_s0: // llvm.hexagon.M2.cmpyr.s0
case Intrinsic::hexagon_M2_cmpys_s0: // llvm.hexagon.M2.cmpys.s0
case Intrinsic::hexagon_M2_cmpys_s1: // llvm.hexagon.M2.cmpys.s1
case Intrinsic::hexagon_M2_cmpysc_s0: // llvm.hexagon.M2.cmpysc.s0
case Intrinsic::hexagon_M2_cmpysc_s1: // llvm.hexagon.M2.cmpysc.s1
case Intrinsic::hexagon_M2_dpmpyss_s0: // llvm.hexagon.M2.dpmpyss.s0
case Intrinsic::hexagon_M2_dpmpyuu_s0: // llvm.hexagon.M2.dpmpyuu.s0
case Intrinsic::hexagon_M2_mpyd_hh_s0: // llvm.hexagon.M2.mpyd.hh.s0
case Intrinsic::hexagon_M2_mpyd_hh_s1: // llvm.hexagon.M2.mpyd.hh.s1
case Intrinsic::hexagon_M2_mpyd_hl_s0: // llvm.hexagon.M2.mpyd.hl.s0
case Intrinsic::hexagon_M2_mpyd_hl_s1: // llvm.hexagon.M2.mpyd.hl.s1
case Intrinsic::hexagon_M2_mpyd_lh_s0: // llvm.hexagon.M2.mpyd.lh.s0
case Intrinsic::hexagon_M2_mpyd_lh_s1: // llvm.hexagon.M2.mpyd.lh.s1
case Intrinsic::hexagon_M2_mpyd_ll_s0: // llvm.hexagon.M2.mpyd.ll.s0
case Intrinsic::hexagon_M2_mpyd_ll_s1: // llvm.hexagon.M2.mpyd.ll.s1
case Intrinsic::hexagon_M2_mpyd_rnd_hh_s0: // llvm.hexagon.M2.mpyd.rnd.hh.s0
case Intrinsic::hexagon_M2_mpyd_rnd_hh_s1: // llvm.hexagon.M2.mpyd.rnd.hh.s1
case Intrinsic::hexagon_M2_mpyd_rnd_hl_s0: // llvm.hexagon.M2.mpyd.rnd.hl.s0
case Intrinsic::hexagon_M2_mpyd_rnd_hl_s1: // llvm.hexagon.M2.mpyd.rnd.hl.s1
case Intrinsic::hexagon_M2_mpyd_rnd_lh_s0: // llvm.hexagon.M2.mpyd.rnd.lh.s0
case Intrinsic::hexagon_M2_mpyd_rnd_lh_s1: // llvm.hexagon.M2.mpyd.rnd.lh.s1
case Intrinsic::hexagon_M2_mpyd_rnd_ll_s0: // llvm.hexagon.M2.mpyd.rnd.ll.s0
case Intrinsic::hexagon_M2_mpyd_rnd_ll_s1: // llvm.hexagon.M2.mpyd.rnd.ll.s1
case Intrinsic::hexagon_M2_mpyud_hh_s0: // llvm.hexagon.M2.mpyud.hh.s0
case Intrinsic::hexagon_M2_mpyud_hh_s1: // llvm.hexagon.M2.mpyud.hh.s1
case Intrinsic::hexagon_M2_mpyud_hl_s0: // llvm.hexagon.M2.mpyud.hl.s0
case Intrinsic::hexagon_M2_mpyud_hl_s1: // llvm.hexagon.M2.mpyud.hl.s1
case Intrinsic::hexagon_M2_mpyud_lh_s0: // llvm.hexagon.M2.mpyud.lh.s0
case Intrinsic::hexagon_M2_mpyud_lh_s1: // llvm.hexagon.M2.mpyud.lh.s1
case Intrinsic::hexagon_M2_mpyud_ll_s0: // llvm.hexagon.M2.mpyud.ll.s0
case Intrinsic::hexagon_M2_mpyud_ll_s1: // llvm.hexagon.M2.mpyud.ll.s1
case Intrinsic::hexagon_M2_vmpy2s_s0: // llvm.hexagon.M2.vmpy2s.s0
case Intrinsic::hexagon_M2_vmpy2s_s1: // llvm.hexagon.M2.vmpy2s.s1
case Intrinsic::hexagon_S2_packhl: // llvm.hexagon.S2.packhl
ResultTy = IntegerType::get(Context, 64);
ArgTys.push_back(IntegerType::get(Context, 32));
ArgTys.push_back(IntegerType::get(Context, 32));
break;
case Intrinsic::hexagon_A2_addsp: // llvm.hexagon.A2.addsp
ResultTy = IntegerType::get(Context, 64);
ArgTys.push_back(IntegerType::get(Context, 32));
ArgTys.push_back(IntegerType::get(Context, 64));
break;
case Intrinsic::hexagon_C2_vmux: // llvm.hexagon.C2.vmux
ResultTy = IntegerType::get(Context, 64);
ArgTys.push_back(IntegerType::get(Context, 32));
ArgTys.push_back(IntegerType::get(Context, 64));
ArgTys.push_back(IntegerType::get(Context, 64));
break;
case Intrinsic::hexagon_A2_absp: // llvm.hexagon.A2.absp
case Intrinsic::hexagon_A2_negp: // llvm.hexagon.A2.negp
case Intrinsic::hexagon_A2_notp: // llvm.hexagon.A2.notp
case Intrinsic::hexagon_A2_tfrp: // llvm.hexagon.A2.tfrp
case Intrinsic::hexagon_A2_vabsh: // llvm.hexagon.A2.vabsh
case Intrinsic::hexagon_A2_vabshsat: // llvm.hexagon.A2.vabshsat
case Intrinsic::hexagon_A2_vabsw: // llvm.hexagon.A2.vabsw
case Intrinsic::hexagon_A2_vabswsat: // llvm.hexagon.A2.vabswsat
case Intrinsic::hexagon_A2_vconj: // llvm.hexagon.A2.vconj
case Intrinsic::hexagon_S2_deinterleave: // llvm.hexagon.S2.deinterleave
case Intrinsic::hexagon_S2_interleave: // llvm.hexagon.S2.interleave
case Intrinsic::hexagon_S2_vsathb_nopack: // llvm.hexagon.S2.vsathb.nopack
case Intrinsic::hexagon_S2_vsathub_nopack: // llvm.hexagon.S2.vsathub.nopack
case Intrinsic::hexagon_S2_vsatwh_nopack: // llvm.hexagon.S2.vsatwh.nopack
case Intrinsic::hexagon_S2_vsatwuh_nopack: // llvm.hexagon.S2.vsatwuh.nopack
ResultTy = IntegerType::get(Context, 64);
ArgTys.push_back(IntegerType::get(Context, 64));
break;
case Intrinsic::hexagon_M2_vrcmpys_s1: // llvm.hexagon.M2.vrcmpys.s1
case Intrinsic::hexagon_S2_asl_i_p: // llvm.hexagon.S2.asl.i.p
case Intrinsic::hexagon_S2_asl_i_vh: // llvm.hexagon.S2.asl.i.vh
case Intrinsic::hexagon_S2_asl_i_vw: // llvm.hexagon.S2.asl.i.vw
case Intrinsic::hexagon_S2_asl_r_p: // llvm.hexagon.S2.asl.r.p
case Intrinsic::hexagon_S2_asl_r_vh: // llvm.hexagon.S2.asl.r.vh
case Intrinsic::hexagon_S2_asl_r_vw: // llvm.hexagon.S2.asl.r.vw
case Intrinsic::hexagon_S2_asr_i_p: // llvm.hexagon.S2.asr.i.p
case Intrinsic::hexagon_S2_asr_i_vh: // llvm.hexagon.S2.asr.i.vh
case Intrinsic::hexagon_S2_asr_i_vw: // llvm.hexagon.S2.asr.i.vw
case Intrinsic::hexagon_S2_asr_r_p: // llvm.hexagon.S2.asr.r.p
case Intrinsic::hexagon_S2_asr_r_vh: // llvm.hexagon.S2.asr.r.vh
case Intrinsic::hexagon_S2_asr_r_vw: // llvm.hexagon.S2.asr.r.vw
case Intrinsic::hexagon_S2_lsl_r_p: // llvm.hexagon.S2.lsl.r.p
case Intrinsic::hexagon_S2_lsl_r_vh: // llvm.hexagon.S2.lsl.r.vh
case Intrinsic::hexagon_S2_lsl_r_vw: // llvm.hexagon.S2.lsl.r.vw
case Intrinsic::hexagon_S2_lsr_i_p: // llvm.hexagon.S2.lsr.i.p
case Intrinsic::hexagon_S2_lsr_i_vh: // llvm.hexagon.S2.lsr.i.vh
case Intrinsic::hexagon_S2_lsr_i_vw: // llvm.hexagon.S2.lsr.i.vw
case Intrinsic::hexagon_S2_lsr_r_p: // llvm.hexagon.S2.lsr.r.p
case Intrinsic::hexagon_S2_lsr_r_vh: // llvm.hexagon.S2.lsr.r.vh
case Intrinsic::hexagon_S2_lsr_r_vw: // llvm.hexagon.S2.lsr.r.vw
case Intrinsic::hexagon_S2_vcrotate: // llvm.hexagon.S2.vcrotate
ResultTy = IntegerType::get(Context, 64);
ArgTys.push_back(IntegerType::get(Context, 64));
ArgTys.push_back(IntegerType::get(Context, 32));
break;
case Intrinsic::hexagon_M2_cmaci_s0: // llvm.hexagon.M2.cmaci.s0
case Intrinsic::hexagon_M2_cmacr_s0: // llvm.hexagon.M2.cmacr.s0
case Intrinsic::hexagon_M2_cmacs_s0: // llvm.hexagon.M2.cmacs.s0
case Intrinsic::hexagon_M2_cmacs_s1: // llvm.hexagon.M2.cmacs.s1
case Intrinsic::hexagon_M2_cmacsc_s0: // llvm.hexagon.M2.cmacsc.s0
case Intrinsic::hexagon_M2_cmacsc_s1: // llvm.hexagon.M2.cmacsc.s1
case Intrinsic::hexagon_M2_cnacs_s0: // llvm.hexagon.M2.cnacs.s0
case Intrinsic::hexagon_M2_cnacs_s1: // llvm.hexagon.M2.cnacs.s1
case Intrinsic::hexagon_M2_cnacsc_s0: // llvm.hexagon.M2.cnacsc.s0
case Intrinsic::hexagon_M2_cnacsc_s1: // llvm.hexagon.M2.cnacsc.s1
case Intrinsic::hexagon_M2_dpmpyss_acc_s0: // llvm.hexagon.M2.dpmpyss.acc.s0
case Intrinsic::hexagon_M2_dpmpyss_nac_s0: // llvm.hexagon.M2.dpmpyss.nac.s0
case Intrinsic::hexagon_M2_dpmpyuu_acc_s0: // llvm.hexagon.M2.dpmpyuu.acc.s0
case Intrinsic::hexagon_M2_dpmpyuu_nac_s0: // llvm.hexagon.M2.dpmpyuu.nac.s0
case Intrinsic::hexagon_M2_mpyd_acc_hh_s0: // llvm.hexagon.M2.mpyd.acc.hh.s0
case Intrinsic::hexagon_M2_mpyd_acc_hh_s1: // llvm.hexagon.M2.mpyd.acc.hh.s1
case Intrinsic::hexagon_M2_mpyd_acc_hl_s0: // llvm.hexagon.M2.mpyd.acc.hl.s0
case Intrinsic::hexagon_M2_mpyd_acc_hl_s1: // llvm.hexagon.M2.mpyd.acc.hl.s1
case Intrinsic::hexagon_M2_mpyd_acc_lh_s0: // llvm.hexagon.M2.mpyd.acc.lh.s0
case Intrinsic::hexagon_M2_mpyd_acc_lh_s1: // llvm.hexagon.M2.mpyd.acc.lh.s1
case Intrinsic::hexagon_M2_mpyd_acc_ll_s0: // llvm.hexagon.M2.mpyd.acc.ll.s0
case Intrinsic::hexagon_M2_mpyd_acc_ll_s1: // llvm.hexagon.M2.mpyd.acc.ll.s1
case Intrinsic::hexagon_M2_mpyd_nac_hh_s0: // llvm.hexagon.M2.mpyd.nac.hh.s0
case Intrinsic::hexagon_M2_mpyd_nac_hh_s1: // llvm.hexagon.M2.mpyd.nac.hh.s1
case Intrinsic::hexagon_M2_mpyd_nac_hl_s0: // llvm.hexagon.M2.mpyd.nac.hl.s0
case Intrinsic::hexagon_M2_mpyd_nac_hl_s1: // llvm.hexagon.M2.mpyd.nac.hl.s1
case Intrinsic::hexagon_M2_mpyd_nac_lh_s0: // llvm.hexagon.M2.mpyd.nac.lh.s0
case Intrinsic::hexagon_M2_mpyd_nac_lh_s1: // llvm.hexagon.M2.mpyd.nac.lh.s1
case Intrinsic::hexagon_M2_mpyd_nac_ll_s0: // llvm.hexagon.M2.mpyd.nac.ll.s0
case Intrinsic::hexagon_M2_mpyd_nac_ll_s1: // llvm.hexagon.M2.mpyd.nac.ll.s1
case Intrinsic::hexagon_M2_mpyud_acc_hh_s0: // llvm.hexagon.M2.mpyud.acc.hh.s0
case Intrinsic::hexagon_M2_mpyud_acc_hh_s1: // llvm.hexagon.M2.mpyud.acc.hh.s1
case Intrinsic::hexagon_M2_mpyud_acc_hl_s0: // llvm.hexagon.M2.mpyud.acc.hl.s0
case Intrinsic::hexagon_M2_mpyud_acc_hl_s1: // llvm.hexagon.M2.mpyud.acc.hl.s1
case Intrinsic::hexagon_M2_mpyud_acc_lh_s0: // llvm.hexagon.M2.mpyud.acc.lh.s0
case Intrinsic::hexagon_M2_mpyud_acc_lh_s1: // llvm.hexagon.M2.mpyud.acc.lh.s1
case Intrinsic::hexagon_M2_mpyud_acc_ll_s0: // llvm.hexagon.M2.mpyud.acc.ll.s0
case Intrinsic::hexagon_M2_mpyud_acc_ll_s1: // llvm.hexagon.M2.mpyud.acc.ll.s1
case Intrinsic::hexagon_M2_mpyud_nac_hh_s0: // llvm.hexagon.M2.mpyud.nac.hh.s0
case Intrinsic::hexagon_M2_mpyud_nac_hh_s1: // llvm.hexagon.M2.mpyud.nac.hh.s1
case Intrinsic::hexagon_M2_mpyud_nac_hl_s0: // llvm.hexagon.M2.mpyud.nac.hl.s0
case Intrinsic::hexagon_M2_mpyud_nac_hl_s1: // llvm.hexagon.M2.mpyud.nac.hl.s1
case Intrinsic::hexagon_M2_mpyud_nac_lh_s0: // llvm.hexagon.M2.mpyud.nac.lh.s0
case Intrinsic::hexagon_M2_mpyud_nac_lh_s1: // llvm.hexagon.M2.mpyud.nac.lh.s1
case Intrinsic::hexagon_M2_mpyud_nac_ll_s0: // llvm.hexagon.M2.mpyud.nac.ll.s0
case Intrinsic::hexagon_M2_mpyud_nac_ll_s1: // llvm.hexagon.M2.mpyud.nac.ll.s1
case Intrinsic::hexagon_M2_vmac2: // llvm.hexagon.M2.vmac2
case Intrinsic::hexagon_M2_vmac2s_s0: // llvm.hexagon.M2.vmac2s.s0
case Intrinsic::hexagon_M2_vmac2s_s1: // llvm.hexagon.M2.vmac2s.s1
case Intrinsic::hexagon_S2_extractup: // llvm.hexagon.S2.extractup
ResultTy = IntegerType::get(Context, 64);
ArgTys.push_back(IntegerType::get(Context, 64));
ArgTys.push_back(IntegerType::get(Context, 32));
ArgTys.push_back(IntegerType::get(Context, 32));
break;
case Intrinsic::hexagon_A2_addp: // llvm.hexagon.A2.addp
case Intrinsic::hexagon_A2_addpsat: // llvm.hexagon.A2.addpsat
case Intrinsic::hexagon_A2_andp: // llvm.hexagon.A2.andp
case Intrinsic::hexagon_A2_maxp: // llvm.hexagon.A2.maxp
case Intrinsic::hexagon_A2_maxup: // llvm.hexagon.A2.maxup
case Intrinsic::hexagon_A2_minp: // llvm.hexagon.A2.minp
case Intrinsic::hexagon_A2_minup: // llvm.hexagon.A2.minup
case Intrinsic::hexagon_A2_orp: // llvm.hexagon.A2.orp
case Intrinsic::hexagon_A2_subp: // llvm.hexagon.A2.subp
case Intrinsic::hexagon_A2_vaddh: // llvm.hexagon.A2.vaddh
case Intrinsic::hexagon_A2_vaddhs: // llvm.hexagon.A2.vaddhs
case Intrinsic::hexagon_A2_vaddub: // llvm.hexagon.A2.vaddub
case Intrinsic::hexagon_A2_vaddubs: // llvm.hexagon.A2.vaddubs
case Intrinsic::hexagon_A2_vadduhs: // llvm.hexagon.A2.vadduhs
case Intrinsic::hexagon_A2_vaddw: // llvm.hexagon.A2.vaddw
case Intrinsic::hexagon_A2_vaddws: // llvm.hexagon.A2.vaddws
case Intrinsic::hexagon_A2_vavgh: // llvm.hexagon.A2.vavgh
case Intrinsic::hexagon_A2_vavghcr: // llvm.hexagon.A2.vavghcr
case Intrinsic::hexagon_A2_vavghr: // llvm.hexagon.A2.vavghr
case Intrinsic::hexagon_A2_vavgub: // llvm.hexagon.A2.vavgub
case Intrinsic::hexagon_A2_vavgubr: // llvm.hexagon.A2.vavgubr
case Intrinsic::hexagon_A2_vavguh: // llvm.hexagon.A2.vavguh
case Intrinsic::hexagon_A2_vavguhr: // llvm.hexagon.A2.vavguhr
case Intrinsic::hexagon_A2_vavguw: // llvm.hexagon.A2.vavguw
case Intrinsic::hexagon_A2_vavguwr: // llvm.hexagon.A2.vavguwr
case Intrinsic::hexagon_A2_vavgw: // llvm.hexagon.A2.vavgw
case Intrinsic::hexagon_A2_vavgwcr: // llvm.hexagon.A2.vavgwcr
case Intrinsic::hexagon_A2_vavgwr: // llvm.hexagon.A2.vavgwr
case Intrinsic::hexagon_A2_vmaxh: // llvm.hexagon.A2.vmaxh
case Intrinsic::hexagon_A2_vmaxub: // llvm.hexagon.A2.vmaxub
case Intrinsic::hexagon_A2_vmaxuh: // llvm.hexagon.A2.vmaxuh
case Intrinsic::hexagon_A2_vmaxuw: // llvm.hexagon.A2.vmaxuw
case Intrinsic::hexagon_A2_vmaxw: // llvm.hexagon.A2.vmaxw
case Intrinsic::hexagon_A2_vminh: // llvm.hexagon.A2.vminh
case Intrinsic::hexagon_A2_vminub: // llvm.hexagon.A2.vminub
case Intrinsic::hexagon_A2_vminuh: // llvm.hexagon.A2.vminuh
case Intrinsic::hexagon_A2_vminuw: // llvm.hexagon.A2.vminuw
case Intrinsic::hexagon_A2_vminw: // llvm.hexagon.A2.vminw
case Intrinsic::hexagon_A2_vnavgh: // llvm.hexagon.A2.vnavgh
case Intrinsic::hexagon_A2_vnavghcr: // llvm.hexagon.A2.vnavghcr
case Intrinsic::hexagon_A2_vnavghr: // llvm.hexagon.A2.vnavghr
case Intrinsic::hexagon_A2_vnavgw: // llvm.hexagon.A2.vnavgw
case Intrinsic::hexagon_A2_vnavgwcr: // llvm.hexagon.A2.vnavgwcr
case Intrinsic::hexagon_A2_vnavgwr: // llvm.hexagon.A2.vnavgwr
case Intrinsic::hexagon_A2_vraddub: // llvm.hexagon.A2.vraddub
case Intrinsic::hexagon_A2_vrsadub: // llvm.hexagon.A2.vrsadub
case Intrinsic::hexagon_A2_vsubh: // llvm.hexagon.A2.vsubh
case Intrinsic::hexagon_A2_vsubhs: // llvm.hexagon.A2.vsubhs
case Intrinsic::hexagon_A2_vsubub: // llvm.hexagon.A2.vsubub
case Intrinsic::hexagon_A2_vsububs: // llvm.hexagon.A2.vsububs
case Intrinsic::hexagon_A2_vsubuhs: // llvm.hexagon.A2.vsubuhs
case Intrinsic::hexagon_A2_vsubw: // llvm.hexagon.A2.vsubw
case Intrinsic::hexagon_A2_vsubws: // llvm.hexagon.A2.vsubws
case Intrinsic::hexagon_A2_xorp: // llvm.hexagon.A2.xorp
case Intrinsic::hexagon_A4_andnp: // llvm.hexagon.A4.andnp
case Intrinsic::hexagon_A4_ornp: // llvm.hexagon.A4.ornp
case Intrinsic::hexagon_M2_mmpyh_rs0: // llvm.hexagon.M2.mmpyh.rs0
case Intrinsic::hexagon_M2_mmpyh_rs1: // llvm.hexagon.M2.mmpyh.rs1
case Intrinsic::hexagon_M2_mmpyh_s0: // llvm.hexagon.M2.mmpyh.s0
case Intrinsic::hexagon_M2_mmpyh_s1: // llvm.hexagon.M2.mmpyh.s1
case Intrinsic::hexagon_M2_mmpyl_rs0: // llvm.hexagon.M2.mmpyl.rs0
case Intrinsic::hexagon_M2_mmpyl_rs1: // llvm.hexagon.M2.mmpyl.rs1
case Intrinsic::hexagon_M2_mmpyl_s0: // llvm.hexagon.M2.mmpyl.s0
case Intrinsic::hexagon_M2_mmpyl_s1: // llvm.hexagon.M2.mmpyl.s1
case Intrinsic::hexagon_M2_mmpyuh_rs0: // llvm.hexagon.M2.mmpyuh.rs0
case Intrinsic::hexagon_M2_mmpyuh_rs1: // llvm.hexagon.M2.mmpyuh.rs1
case Intrinsic::hexagon_M2_mmpyuh_s0: // llvm.hexagon.M2.mmpyuh.s0
case Intrinsic::hexagon_M2_mmpyuh_s1: // llvm.hexagon.M2.mmpyuh.s1
case Intrinsic::hexagon_M2_mmpyul_rs0: // llvm.hexagon.M2.mmpyul.rs0
case Intrinsic::hexagon_M2_mmpyul_rs1: // llvm.hexagon.M2.mmpyul.rs1
case Intrinsic::hexagon_M2_mmpyul_s0: // llvm.hexagon.M2.mmpyul.s0
case Intrinsic::hexagon_M2_mmpyul_s1: // llvm.hexagon.M2.mmpyul.s1
case Intrinsic::hexagon_M2_vabsdiffh: // llvm.hexagon.M2.vabsdiffh
case Intrinsic::hexagon_M2_vabsdiffw: // llvm.hexagon.M2.vabsdiffw
case Intrinsic::hexagon_M2_vcmpy_s0_sat_i: // llvm.hexagon.M2.vcmpy.s0.sat.i
case Intrinsic::hexagon_M2_vcmpy_s0_sat_r: // llvm.hexagon.M2.vcmpy.s0.sat.r
case Intrinsic::hexagon_M2_vcmpy_s1_sat_i: // llvm.hexagon.M2.vcmpy.s1.sat.i
case Intrinsic::hexagon_M2_vcmpy_s1_sat_r: // llvm.hexagon.M2.vcmpy.s1.sat.r
case Intrinsic::hexagon_M2_vdmpys_s0: // llvm.hexagon.M2.vdmpys.s0
case Intrinsic::hexagon_M2_vdmpys_s1: // llvm.hexagon.M2.vdmpys.s1
case Intrinsic::hexagon_M2_vmpy2es_s0: // llvm.hexagon.M2.vmpy2es.s0
case Intrinsic::hexagon_M2_vmpy2es_s1: // llvm.hexagon.M2.vmpy2es.s1
case Intrinsic::hexagon_M2_vrcmpyi_s0: // llvm.hexagon.M2.vrcmpyi.s0
case Intrinsic::hexagon_M2_vrcmpyi_s0c: // llvm.hexagon.M2.vrcmpyi.s0c
case Intrinsic::hexagon_M2_vrcmpyr_s0: // llvm.hexagon.M2.vrcmpyr.s0
case Intrinsic::hexagon_M2_vrcmpyr_s0c: // llvm.hexagon.M2.vrcmpyr.s0c
case Intrinsic::hexagon_M2_vrmpy_s0: // llvm.hexagon.M2.vrmpy.s0
case Intrinsic::hexagon_S2_extractup_rp: // llvm.hexagon.S2.extractup.rp
case Intrinsic::hexagon_S2_lfsp: // llvm.hexagon.S2.lfsp
case Intrinsic::hexagon_S2_shuffeb: // llvm.hexagon.S2.shuffeb
case Intrinsic::hexagon_S2_shuffeh: // llvm.hexagon.S2.shuffeh
case Intrinsic::hexagon_S2_shuffob: // llvm.hexagon.S2.shuffob
case Intrinsic::hexagon_S2_shuffoh: // llvm.hexagon.S2.shuffoh
case Intrinsic::hexagon_S2_vtrunewh: // llvm.hexagon.S2.vtrunewh
case Intrinsic::hexagon_S2_vtrunowh: // llvm.hexagon.S2.vtrunowh
case Intrinsic::hexagon_S4_andnp: // llvm.hexagon.S4.andnp
case Intrinsic::hexagon_S4_ornp: // llvm.hexagon.S4.ornp
case Intrinsic::x86_bmi_bextr_64: // llvm.x86.bmi.bextr.64
case Intrinsic::x86_bmi_bzhi_64: // llvm.x86.bmi.bzhi.64
case Intrinsic::x86_bmi_pdep_64: // llvm.x86.bmi.pdep.64
case Intrinsic::x86_bmi_pext_64: // llvm.x86.bmi.pext.64
case Intrinsic::x86_sse42_crc32_64_64: // llvm.x86.sse42.crc32.64.64
ResultTy = IntegerType::get(Context, 64);
ArgTys.push_back(IntegerType::get(Context, 64));
ArgTys.push_back(IntegerType::get(Context, 64));
break;
case Intrinsic::hexagon_M2_vrcmpys_acc_s1: // llvm.hexagon.M2.vrcmpys.acc.s1
case Intrinsic::hexagon_S2_asl_i_p_acc: // llvm.hexagon.S2.asl.i.p.acc
case Intrinsic::hexagon_S2_asl_i_p_and: // llvm.hexagon.S2.asl.i.p.and
case Intrinsic::hexagon_S2_asl_i_p_nac: // llvm.hexagon.S2.asl.i.p.nac
case Intrinsic::hexagon_S2_asl_i_p_or: // llvm.hexagon.S2.asl.i.p.or
case Intrinsic::hexagon_S2_asl_i_p_xacc: // llvm.hexagon.S2.asl.i.p.xacc
case Intrinsic::hexagon_S2_asl_r_p_acc: // llvm.hexagon.S2.asl.r.p.acc
case Intrinsic::hexagon_S2_asl_r_p_and: // llvm.hexagon.S2.asl.r.p.and
case Intrinsic::hexagon_S2_asl_r_p_nac: // llvm.hexagon.S2.asl.r.p.nac
case Intrinsic::hexagon_S2_asl_r_p_or: // llvm.hexagon.S2.asl.r.p.or
case Intrinsic::hexagon_S2_asr_i_p_acc: // llvm.hexagon.S2.asr.i.p.acc
case Intrinsic::hexagon_S2_asr_i_p_and: // llvm.hexagon.S2.asr.i.p.and
case Intrinsic::hexagon_S2_asr_i_p_nac: // llvm.hexagon.S2.asr.i.p.nac
case Intrinsic::hexagon_S2_asr_i_p_or: // llvm.hexagon.S2.asr.i.p.or
case Intrinsic::hexagon_S2_asr_r_p_acc: // llvm.hexagon.S2.asr.r.p.acc
case Intrinsic::hexagon_S2_asr_r_p_and: // llvm.hexagon.S2.asr.r.p.and
case Intrinsic::hexagon_S2_asr_r_p_nac: // llvm.hexagon.S2.asr.r.p.nac
case Intrinsic::hexagon_S2_asr_r_p_or: // llvm.hexagon.S2.asr.r.p.or
case Intrinsic::hexagon_S2_lsl_r_p_acc: // llvm.hexagon.S2.lsl.r.p.acc
case Intrinsic::hexagon_S2_lsl_r_p_and: // llvm.hexagon.S2.lsl.r.p.and
case Intrinsic::hexagon_S2_lsl_r_p_nac: // llvm.hexagon.S2.lsl.r.p.nac
case Intrinsic::hexagon_S2_lsl_r_p_or: // llvm.hexagon.S2.lsl.r.p.or
case Intrinsic::hexagon_S2_lsr_i_p_acc: // llvm.hexagon.S2.lsr.i.p.acc
case Intrinsic::hexagon_S2_lsr_i_p_and: // llvm.hexagon.S2.lsr.i.p.and
case Intrinsic::hexagon_S2_lsr_i_p_nac: // llvm.hexagon.S2.lsr.i.p.nac
case Intrinsic::hexagon_S2_lsr_i_p_or: // llvm.hexagon.S2.lsr.i.p.or
case Intrinsic::hexagon_S2_lsr_i_p_xacc: // llvm.hexagon.S2.lsr.i.p.xacc
case Intrinsic::hexagon_S2_lsr_r_p_acc: // llvm.hexagon.S2.lsr.r.p.acc
case Intrinsic::hexagon_S2_lsr_r_p_and: // llvm.hexagon.S2.lsr.r.p.and
case Intrinsic::hexagon_S2_lsr_r_p_nac: // llvm.hexagon.S2.lsr.r.p.nac
case Intrinsic::hexagon_S2_lsr_r_p_or: // llvm.hexagon.S2.lsr.r.p.or
case Intrinsic::hexagon_S2_valignib: // llvm.hexagon.S2.valignib
case Intrinsic::hexagon_S2_valignrb: // llvm.hexagon.S2.valignrb
case Intrinsic::hexagon_S2_vspliceib: // llvm.hexagon.S2.vspliceib
case Intrinsic::hexagon_S2_vsplicerb: // llvm.hexagon.S2.vsplicerb
ResultTy = IntegerType::get(Context, 64);
ArgTys.push_back(IntegerType::get(Context, 64));
ArgTys.push_back(IntegerType::get(Context, 64));
ArgTys.push_back(IntegerType::get(Context, 32));
break;
case Intrinsic::hexagon_S2_insertp: // llvm.hexagon.S2.insertp
ResultTy = IntegerType::get(Context, 64);
ArgTys.push_back(IntegerType::get(Context, 64));
ArgTys.push_back(IntegerType::get(Context, 64));
ArgTys.push_back(IntegerType::get(Context, 32));
ArgTys.push_back(IntegerType::get(Context, 32));
break;
case Intrinsic::hexagon_A2_vraddub_acc: // llvm.hexagon.A2.vraddub.acc
case Intrinsic::hexagon_A2_vrsadub_acc: // llvm.hexagon.A2.vrsadub.acc
case Intrinsic::hexagon_M2_mmachs_rs0: // llvm.hexagon.M2.mmachs.rs0
case Intrinsic::hexagon_M2_mmachs_rs1: // llvm.hexagon.M2.mmachs.rs1
case Intrinsic::hexagon_M2_mmachs_s0: // llvm.hexagon.M2.mmachs.s0
case Intrinsic::hexagon_M2_mmachs_s1: // llvm.hexagon.M2.mmachs.s1
case Intrinsic::hexagon_M2_mmacls_rs0: // llvm.hexagon.M2.mmacls.rs0
case Intrinsic::hexagon_M2_mmacls_rs1: // llvm.hexagon.M2.mmacls.rs1
case Intrinsic::hexagon_M2_mmacls_s0: // llvm.hexagon.M2.mmacls.s0
case Intrinsic::hexagon_M2_mmacls_s1: // llvm.hexagon.M2.mmacls.s1
case Intrinsic::hexagon_M2_mmacuhs_rs0: // llvm.hexagon.M2.mmacuhs.rs0
case Intrinsic::hexagon_M2_mmacuhs_rs1: // llvm.hexagon.M2.mmacuhs.rs1
case Intrinsic::hexagon_M2_mmacuhs_s0: // llvm.hexagon.M2.mmacuhs.s0
case Intrinsic::hexagon_M2_mmacuhs_s1: // llvm.hexagon.M2.mmacuhs.s1
case Intrinsic::hexagon_M2_mmaculs_rs0: // llvm.hexagon.M2.mmaculs.rs0
case Intrinsic::hexagon_M2_mmaculs_rs1: // llvm.hexagon.M2.mmaculs.rs1
case Intrinsic::hexagon_M2_mmaculs_s0: // llvm.hexagon.M2.mmaculs.s0
case Intrinsic::hexagon_M2_mmaculs_s1: // llvm.hexagon.M2.mmaculs.s1
case Intrinsic::hexagon_M2_vcmac_s0_sat_i: // llvm.hexagon.M2.vcmac.s0.sat.i
case Intrinsic::hexagon_M2_vcmac_s0_sat_r: // llvm.hexagon.M2.vcmac.s0.sat.r
case Intrinsic::hexagon_M2_vdmacs_s0: // llvm.hexagon.M2.vdmacs.s0
case Intrinsic::hexagon_M2_vdmacs_s1: // llvm.hexagon.M2.vdmacs.s1
case Intrinsic::hexagon_M2_vmac2es: // llvm.hexagon.M2.vmac2es
case Intrinsic::hexagon_M2_vmac2es_s0: // llvm.hexagon.M2.vmac2es.s0
case Intrinsic::hexagon_M2_vmac2es_s1: // llvm.hexagon.M2.vmac2es.s1
case Intrinsic::hexagon_M2_vrcmaci_s0: // llvm.hexagon.M2.vrcmaci.s0
case Intrinsic::hexagon_M2_vrcmaci_s0c: // llvm.hexagon.M2.vrcmaci.s0c
case Intrinsic::hexagon_M2_vrcmacr_s0: // llvm.hexagon.M2.vrcmacr.s0
case Intrinsic::hexagon_M2_vrcmacr_s0c: // llvm.hexagon.M2.vrcmacr.s0c
case Intrinsic::hexagon_M2_vrmac_s0: // llvm.hexagon.M2.vrmac.s0
case Intrinsic::hexagon_M4_xor_xacc: // llvm.hexagon.M4.xor.xacc
case Intrinsic::hexagon_S2_insertp_rp: // llvm.hexagon.S2.insertp.rp
ResultTy = IntegerType::get(Context, 64);
ArgTys.push_back(IntegerType::get(Context, 64));
ArgTys.push_back(IntegerType::get(Context, 64));
ArgTys.push_back(IntegerType::get(Context, 64));
break;
case Intrinsic::x86_sse42_crc32_64_8: // llvm.x86.sse42.crc32.64.8
ResultTy = IntegerType::get(Context, 64);
ArgTys.push_back(IntegerType::get(Context, 64));
ArgTys.push_back(IntegerType::get(Context, 8));
break;
case Intrinsic::x86_sse2_cvtsd2si64: // llvm.x86.sse2.cvtsd2si64
case Intrinsic::x86_sse2_cvttsd2si64: // llvm.x86.sse2.cvttsd2si64
ResultTy = IntegerType::get(Context, 64);
ArgTys.push_back(VectorType::get(Type::getDoubleTy(Context), 2));
break;
case Intrinsic::x86_sse41_pextrq: // llvm.x86.sse41.pextrq
ResultTy = IntegerType::get(Context, 64);
ArgTys.push_back(VectorType::get(IntegerType::get(Context, 64), 2));
ArgTys.push_back(IntegerType::get(Context, 32));
break;
case Intrinsic::x86_sse_cvtss2si64: // llvm.x86.sse.cvtss2si64
case Intrinsic::x86_sse_cvttss2si64: // llvm.x86.sse.cvttss2si64
ResultTy = IntegerType::get(Context, 64);
ArgTys.push_back(VectorType::get(Type::getFloatTy(Context), 4));
break;
case Intrinsic::arm_thread_pointer: // llvm.arm.thread.pointer
case Intrinsic::eh_sjlj_lsda: // llvm.eh.sjlj.lsda
case Intrinsic::stacksave: // llvm.stacksave
case Intrinsic::xcore_waitevent: // llvm.xcore.waitevent
ResultTy = PointerType::getUnqual(IntegerType::get(Context, 8));
break;
case Intrinsic::eh_dwarf_cfa: // llvm.eh.dwarf.cfa
case Intrinsic::frameaddress: // llvm.frameaddress
case Intrinsic::returnaddress: // llvm.returnaddress
ResultTy = PointerType::getUnqual(IntegerType::get(Context, 8));
ArgTys.push_back(IntegerType::get(Context, 32));
break;
case Intrinsic::adjust_trampoline: // llvm.adjust.trampoline
case Intrinsic::xcore_checkevent: // llvm.xcore.checkevent
ResultTy = PointerType::getUnqual(IntegerType::get(Context, 8));
ArgTys.push_back(PointerType::getUnqual(IntegerType::get(Context, 8)));
break;
case Intrinsic::gcread: // llvm.gcread
ResultTy = PointerType::getUnqual(IntegerType::get(Context, 8));
ArgTys.push_back(PointerType::getUnqual(IntegerType::get(Context, 8)));
ArgTys.push_back(PointerType::getUnqual(PointerType::getUnqual(IntegerType::get(Context, 8))));
break;
case Intrinsic::x86_avx2_pabs_w: // llvm.x86.avx2.pabs.w
ResultTy = VectorType::get(IntegerType::get(Context, 16), 16);
ArgTys.push_back(VectorType::get(IntegerType::get(Context, 16), 16));
break;
case Intrinsic::x86_avx2_pslli_w: // llvm.x86.avx2.pslli.w
case Intrinsic::x86_avx2_psrai_w: // llvm.x86.avx2.psrai.w
case Intrinsic::x86_avx2_psrli_w: // llvm.x86.avx2.psrli.w
ResultTy = VectorType::get(IntegerType::get(Context, 16), 16);
ArgTys.push_back(VectorType::get(IntegerType::get(Context, 16), 16));
ArgTys.push_back(IntegerType::get(Context, 32));
break;
case Intrinsic::x86_avx2_padds_w: // llvm.x86.avx2.padds.w
case Intrinsic::x86_avx2_paddus_w: // llvm.x86.avx2.paddus.w
case Intrinsic::x86_avx2_pavg_w: // llvm.x86.avx2.pavg.w
case Intrinsic::x86_avx2_phadd_sw: // llvm.x86.avx2.phadd.sw
case Intrinsic::x86_avx2_phadd_w: // llvm.x86.avx2.phadd.w
case Intrinsic::x86_avx2_phsub_sw: // llvm.x86.avx2.phsub.sw
case Intrinsic::x86_avx2_phsub_w: // llvm.x86.avx2.phsub.w
case Intrinsic::x86_avx2_pmaxs_w: // llvm.x86.avx2.pmaxs.w
case Intrinsic::x86_avx2_pmaxu_w: // llvm.x86.avx2.pmaxu.w
case Intrinsic::x86_avx2_pmins_w: // llvm.x86.avx2.pmins.w
case Intrinsic::x86_avx2_pminu_w: // llvm.x86.avx2.pminu.w
case Intrinsic::x86_avx2_pmul_hr_sw: // llvm.x86.avx2.pmul.hr.sw
case Intrinsic::x86_avx2_pmulh_w: // llvm.x86.avx2.pmulh.w
case Intrinsic::x86_avx2_pmulhu_w: // llvm.x86.avx2.pmulhu.w
case Intrinsic::x86_avx2_psign_w: // llvm.x86.avx2.psign.w
case Intrinsic::x86_avx2_psubs_w: // llvm.x86.avx2.psubs.w
case Intrinsic::x86_avx2_psubus_w: // llvm.x86.avx2.psubus.w
ResultTy = VectorType::get(IntegerType::get(Context, 16), 16);
ArgTys.push_back(VectorType::get(IntegerType::get(Context, 16), 16));
ArgTys.push_back(VectorType::get(IntegerType::get(Context, 16), 16));
break;
case Intrinsic::x86_avx2_pblendw: // llvm.x86.avx2.pblendw
ResultTy = VectorType::get(IntegerType::get(Context, 16), 16);
ArgTys.push_back(VectorType::get(IntegerType::get(Context, 16), 16));
ArgTys.push_back(VectorType::get(IntegerType::get(Context, 16), 16));
ArgTys.push_back(IntegerType::get(Context, 32));
break;
case Intrinsic::x86_avx2_psll_w: // llvm.x86.avx2.psll.w
case Intrinsic::x86_avx2_psra_w: // llvm.x86.avx2.psra.w
case Intrinsic::x86_avx2_psrl_w: // llvm.x86.avx2.psrl.w
ResultTy = VectorType::get(IntegerType::get(Context, 16), 16);
ArgTys.push_back(VectorType::get(IntegerType::get(Context, 16), 16));
ArgTys.push_back(VectorType::get(IntegerType::get(Context, 16), 8));
break;
case Intrinsic::x86_avx2_pmovsxbw: // llvm.x86.avx2.pmovsxbw
case Intrinsic::x86_avx2_pmovzxbw: // llvm.x86.avx2.pmovzxbw
ResultTy = VectorType::get(IntegerType::get(Context, 16), 16);
ArgTys.push_back(VectorType::get(IntegerType::get(Context, 8), 16));
break;
case Intrinsic::x86_avx2_pmadd_ub_sw: // llvm.x86.avx2.pmadd.ub.sw
ResultTy = VectorType::get(IntegerType::get(Context, 16), 16);
ArgTys.push_back(VectorType::get(IntegerType::get(Context, 8), 32));
ArgTys.push_back(VectorType::get(IntegerType::get(Context, 8), 32));
break;
case Intrinsic::x86_avx2_mpsadbw: // llvm.x86.avx2.mpsadbw
ResultTy = VectorType::get(IntegerType::get(Context, 16), 16);
ArgTys.push_back(VectorType::get(IntegerType::get(Context, 8), 32));
ArgTys.push_back(VectorType::get(IntegerType::get(Context, 8), 32));
ArgTys.push_back(IntegerType::get(Context, 32));
break;
case Intrinsic::x86_avx2_pbroadcastw_256: // llvm.x86.avx2.pbroadcastw.256
ResultTy = VectorType::get(IntegerType::get(Context, 16), 16);
ArgTys.push_back(VectorType::get(IntegerType::get(Context, 16), 8));
break;
case Intrinsic::x86_avx2_packssdw: // llvm.x86.avx2.packssdw
case Intrinsic::x86_avx2_packusdw: // llvm.x86.avx2.packusdw
ResultTy = VectorType::get(IntegerType::get(Context, 16), 16);
ArgTys.push_back(VectorType::get(IntegerType::get(Context, 32), 8));
ArgTys.push_back(VectorType::get(IntegerType::get(Context, 32), 8));
break;
case Intrinsic::ppc_altivec_lvebx: // llvm.ppc.altivec.lvebx
case Intrinsic::ppc_altivec_lvsl: // llvm.ppc.altivec.lvsl
case Intrinsic::ppc_altivec_lvsr: // llvm.ppc.altivec.lvsr
case Intrinsic::x86_sse3_ldu_dq: // llvm.x86.sse3.ldu.dq
ResultTy = VectorType::get(IntegerType::get(Context, 8), 16);
ArgTys.push_back(PointerType::getUnqual(IntegerType::get(Context, 8)));
break;
case Intrinsic::x86_avx2_pbroadcastb_128: // llvm.x86.avx2.pbroadcastb.128
case Intrinsic::x86_ssse3_pabs_b_128: // llvm.x86.ssse3.pabs.b.128
ResultTy = VectorType::get(IntegerType::get(Context, 8), 16);
ArgTys.push_back(VectorType::get(IntegerType::get(Context, 8), 16));
break;
case Intrinsic::spu_si_shlqbii: // llvm.spu.si.shlqbii
case Intrinsic::spu_si_shlqbyi: // llvm.spu.si.shlqbyi
ResultTy = VectorType::get(IntegerType::get(Context, 8), 16);
ArgTys.push_back(VectorType::get(IntegerType::get(Context, 8), 16));
ArgTys.push_back(IntegerType::get(Context, 8));
break;
case Intrinsic::x86_sse42_pcmpestrm128: // llvm.x86.sse42.pcmpestrm128
ResultTy = VectorType::get(IntegerType::get(Context, 8), 16);
ArgTys.push_back(VectorType::get(IntegerType::get(Context, 8), 16));
ArgTys.push_back(IntegerType::get(Context, 32));
ArgTys.push_back(VectorType::get(IntegerType::get(Context, 8), 16));
ArgTys.push_back(IntegerType::get(Context, 32));
ArgTys.push_back(IntegerType::get(Context, 8));
break;
case Intrinsic::spu_si_andbi: // llvm.spu.si.andbi
case Intrinsic::spu_si_ceqbi: // llvm.spu.si.ceqbi
case Intrinsic::spu_si_cgtbi: // llvm.spu.si.cgtbi
case Intrinsic::spu_si_clgtbi: // llvm.spu.si.clgtbi
case Intrinsic::spu_si_orbi: // llvm.spu.si.orbi
case Intrinsic::spu_si_xorbi: // llvm.spu.si.xorbi
ResultTy = VectorType::get(IntegerType::get(Context, 8), 16);
ArgTys.push_back(VectorType::get(IntegerType::get(Context, 8), 16));
ArgTys.push_back(IntegerType::get(Context, 8));
break;
case Intrinsic::ppc_altivec_vaddsbs: // llvm.ppc.altivec.vaddsbs
case Intrinsic::ppc_altivec_vaddubs: // llvm.ppc.altivec.vaddubs
case Intrinsic::ppc_altivec_vavgsb: // llvm.ppc.altivec.vavgsb
case Intrinsic::ppc_altivec_vavgub: // llvm.ppc.altivec.vavgub
case Intrinsic::ppc_altivec_vcmpequb: // llvm.ppc.altivec.vcmpequb
case Intrinsic::ppc_altivec_vcmpgtsb: // llvm.ppc.altivec.vcmpgtsb
case Intrinsic::ppc_altivec_vcmpgtub: // llvm.ppc.altivec.vcmpgtub
case Intrinsic::ppc_altivec_vmaxsb: // llvm.ppc.altivec.vmaxsb
case Intrinsic::ppc_altivec_vmaxub: // llvm.ppc.altivec.vmaxub
case Intrinsic::ppc_altivec_vminsb: // llvm.ppc.altivec.vminsb
case Intrinsic::ppc_altivec_vminub: // llvm.ppc.altivec.vminub
case Intrinsic::ppc_altivec_vrlb: // llvm.ppc.altivec.vrlb
case Intrinsic::ppc_altivec_vslb: // llvm.ppc.altivec.vslb
case Intrinsic::ppc_altivec_vsrab: // llvm.ppc.altivec.vsrab
case Intrinsic::ppc_altivec_vsrb: // llvm.ppc.altivec.vsrb
case Intrinsic::ppc_altivec_vsubsbs: // llvm.ppc.altivec.vsubsbs
case Intrinsic::ppc_altivec_vsububs: // llvm.ppc.altivec.vsububs
case Intrinsic::spu_si_ceqb: // llvm.spu.si.ceqb
case Intrinsic::spu_si_cgtb: // llvm.spu.si.cgtb
case Intrinsic::spu_si_clgtb: // llvm.spu.si.clgtb
case Intrinsic::x86_sse2_padds_b: // llvm.x86.sse2.padds.b
case Intrinsic::x86_sse2_paddus_b: // llvm.x86.sse2.paddus.b
case Intrinsic::x86_sse2_pavg_b: // llvm.x86.sse2.pavg.b
case Intrinsic::x86_sse2_pmaxu_b: // llvm.x86.sse2.pmaxu.b
case Intrinsic::x86_sse2_pminu_b: // llvm.x86.sse2.pminu.b
case Intrinsic::x86_sse2_psubs_b: // llvm.x86.sse2.psubs.b
case Intrinsic::x86_sse2_psubus_b: // llvm.x86.sse2.psubus.b
case Intrinsic::x86_sse41_pmaxsb: // llvm.x86.sse41.pmaxsb
case Intrinsic::x86_sse41_pminsb: // llvm.x86.sse41.pminsb
case Intrinsic::x86_ssse3_pshuf_b_128: // llvm.x86.ssse3.pshuf.b.128
case Intrinsic::x86_ssse3_psign_b_128: // llvm.x86.ssse3.psign.b.128
case Intrinsic::x86_xop_vpcomeqb: // llvm.x86.xop.vpcomeqb
case Intrinsic::x86_xop_vpcomequb: // llvm.x86.xop.vpcomequb
case Intrinsic::x86_xop_vpcomfalseb: // llvm.x86.xop.vpcomfalseb
case Intrinsic::x86_xop_vpcomfalseub: // llvm.x86.xop.vpcomfalseub
case Intrinsic::x86_xop_vpcomgeb: // llvm.x86.xop.vpcomgeb
case Intrinsic::x86_xop_vpcomgeub: // llvm.x86.xop.vpcomgeub
case Intrinsic::x86_xop_vpcomgtb: // llvm.x86.xop.vpcomgtb
case Intrinsic::x86_xop_vpcomgtub: // llvm.x86.xop.vpcomgtub
case Intrinsic::x86_xop_vpcomleb: // llvm.x86.xop.vpcomleb
case Intrinsic::x86_xop_vpcomleub: // llvm.x86.xop.vpcomleub
case Intrinsic::x86_xop_vpcomltb: // llvm.x86.xop.vpcomltb
case Intrinsic::x86_xop_vpcomltub: // llvm.x86.xop.vpcomltub
case Intrinsic::x86_xop_vpcomneb: // llvm.x86.xop.vpcomneb
case Intrinsic::x86_xop_vpcomneub: // llvm.x86.xop.vpcomneub
case Intrinsic::x86_xop_vpcomtrueb: // llvm.x86.xop.vpcomtrueb
case Intrinsic::x86_xop_vpcomtrueub: // llvm.x86.xop.vpcomtrueub
case Intrinsic::x86_xop_vprotb: // llvm.x86.xop.vprotb
case Intrinsic::x86_xop_vpshab: // llvm.x86.xop.vpshab
case Intrinsic::x86_xop_vpshlb: // llvm.x86.xop.vpshlb
ResultTy = VectorType::get(IntegerType::get(Context, 8), 16);
ArgTys.push_back(VectorType::get(IntegerType::get(Context, 8), 16));
ArgTys.push_back(VectorType::get(IntegerType::get(Context, 8), 16));
break;
case Intrinsic::x86_sse42_pcmpistrm128: // llvm.x86.sse42.pcmpistrm128
ResultTy = VectorType::get(IntegerType::get(Context, 8), 16);
ArgTys.push_back(VectorType::get(IntegerType::get(Context, 8), 16));
ArgTys.push_back(VectorType::get(IntegerType::get(Context, 8), 16));
ArgTys.push_back(IntegerType::get(Context, 8));
break;
case Intrinsic::x86_sse41_pblendvb: // llvm.x86.sse41.pblendvb
case Intrinsic::x86_xop_vpperm: // llvm.x86.xop.vpperm
ResultTy = VectorType::get(IntegerType::get(Context, 8), 16);
ArgTys.push_back(VectorType::get(IntegerType::get(Context, 8), 16));
ArgTys.push_back(VectorType::get(IntegerType::get(Context, 8), 16));
ArgTys.push_back(VectorType::get(IntegerType::get(Context, 8), 16));
break;
case Intrinsic::ppc_altivec_vpkswss: // llvm.ppc.altivec.vpkswss
ResultTy = VectorType::get(IntegerType::get(Context, 8), 16);
ArgTys.push_back(VectorType::get(IntegerType::get(Context, 32), 4));
ArgTys.push_back(VectorType::get(IntegerType::get(Context, 32), 4));
break;
case Intrinsic::ppc_altivec_vpkshss: // llvm.ppc.altivec.vpkshss
case Intrinsic::ppc_altivec_vpkshus: // llvm.ppc.altivec.vpkshus
case Intrinsic::ppc_altivec_vpkuhus: // llvm.ppc.altivec.vpkuhus
case Intrinsic::x86_sse2_packsswb_128: // llvm.x86.sse2.packsswb.128
case Intrinsic::x86_sse2_packuswb_128: // llvm.x86.sse2.packuswb.128
ResultTy = VectorType::get(IntegerType::get(Context, 8), 16);
ArgTys.push_back(VectorType::get(IntegerType::get(Context, 16), 8));
ArgTys.push_back(VectorType::get(IntegerType::get(Context, 16), 8));
break;
case Intrinsic::x86_avx_maskload_pd: // llvm.x86.avx.maskload.pd
ResultTy = VectorType::get(Type::getDoubleTy(Context), 2);
ArgTys.push_back(PointerType::getUnqual(IntegerType::get(Context, 8)));
ArgTys.push_back(VectorType::get(Type::getDoubleTy(Context), 2));
break;
case Intrinsic::x86_sse2_sqrt_pd: // llvm.x86.sse2.sqrt.pd
case Intrinsic::x86_sse2_sqrt_sd: // llvm.x86.sse2.sqrt.sd
case Intrinsic::x86_xop_vfrcz_pd: // llvm.x86.xop.vfrcz.pd
ResultTy = VectorType::get(Type::getDoubleTy(Context), 2);
ArgTys.push_back(VectorType::get(Type::getDoubleTy(Context), 2));
break;
case Intrinsic::x86_sse2_cvtsi2sd: // llvm.x86.sse2.cvtsi2sd
case Intrinsic::x86_sse41_round_pd: // llvm.x86.sse41.round.pd
ResultTy = VectorType::get(Type::getDoubleTy(Context), 2);
ArgTys.push_back(VectorType::get(Type::getDoubleTy(Context), 2));
ArgTys.push_back(IntegerType::get(Context, 32));
break;
case Intrinsic::x86_sse2_cvtsi642sd: // llvm.x86.sse2.cvtsi642sd
ResultTy = VectorType::get(Type::getDoubleTy(Context), 2);
ArgTys.push_back(VectorType::get(Type::getDoubleTy(Context), 2));
ArgTys.push_back(IntegerType::get(Context, 64));
break;
case Intrinsic::spu_si_dfa: // llvm.spu.si.dfa
case Intrinsic::spu_si_dfm: // llvm.spu.si.dfm
case Intrinsic::spu_si_dfma: // llvm.spu.si.dfma
case Intrinsic::spu_si_dfms: // llvm.spu.si.dfms
case Intrinsic::spu_si_dfnma: // llvm.spu.si.dfnma
case Intrinsic::spu_si_dfnms: // llvm.spu.si.dfnms
case Intrinsic::spu_si_dfs: // llvm.spu.si.dfs
case Intrinsic::x86_sse2_add_sd: // llvm.x86.sse2.add.sd
case Intrinsic::x86_sse2_div_sd: // llvm.x86.sse2.div.sd
case Intrinsic::x86_sse2_max_pd: // llvm.x86.sse2.max.pd
case Intrinsic::x86_sse2_max_sd: // llvm.x86.sse2.max.sd
case Intrinsic::x86_sse2_min_pd: // llvm.x86.sse2.min.pd
case Intrinsic::x86_sse2_min_sd: // llvm.x86.sse2.min.sd
case Intrinsic::x86_sse2_mul_sd: // llvm.x86.sse2.mul.sd
case Intrinsic::x86_sse2_sub_sd: // llvm.x86.sse2.sub.sd
case Intrinsic::x86_sse3_addsub_pd: // llvm.x86.sse3.addsub.pd
case Intrinsic::x86_sse3_hadd_pd: // llvm.x86.sse3.hadd.pd
case Intrinsic::x86_sse3_hsub_pd: // llvm.x86.sse3.hsub.pd
case Intrinsic::x86_xop_vfrcz_sd: // llvm.x86.xop.vfrcz.sd
ResultTy = VectorType::get(Type::getDoubleTy(Context), 2);
ArgTys.push_back(VectorType::get(Type::getDoubleTy(Context), 2));
ArgTys.push_back(VectorType::get(Type::getDoubleTy(Context), 2));
break;
case Intrinsic::x86_sse41_blendpd: // llvm.x86.sse41.blendpd
case Intrinsic::x86_sse41_dppd: // llvm.x86.sse41.dppd
case Intrinsic::x86_sse41_round_sd: // llvm.x86.sse41.round.sd
ResultTy = VectorType::get(Type::getDoubleTy(Context), 2);
ArgTys.push_back(VectorType::get(Type::getDoubleTy(Context), 2));
ArgTys.push_back(VectorType::get(Type::getDoubleTy(Context), 2));
ArgTys.push_back(IntegerType::get(Context, 32));
break;
case Intrinsic::x86_sse2_cmp_pd: // llvm.x86.sse2.cmp.pd
case Intrinsic::x86_sse2_cmp_sd: // llvm.x86.sse2.cmp.sd
ResultTy = VectorType::get(Type::getDoubleTy(Context), 2);
ArgTys.push_back(VectorType::get(Type::getDoubleTy(Context), 2));
ArgTys.push_back(VectorType::get(Type::getDoubleTy(Context), 2));
ArgTys.push_back(IntegerType::get(Context, 8));
break;
case Intrinsic::x86_fma4_vfmadd_pd: // llvm.x86.fma4.vfmadd.pd
case Intrinsic::x86_fma4_vfmadd_sd: // llvm.x86.fma4.vfmadd.sd
case Intrinsic::x86_fma4_vfmaddsub_pd: // llvm.x86.fma4.vfmaddsub.pd
case Intrinsic::x86_fma4_vfmsub_pd: // llvm.x86.fma4.vfmsub.pd
case Intrinsic::x86_fma4_vfmsub_sd: // llvm.x86.fma4.vfmsub.sd
case Intrinsic::x86_fma4_vfmsubadd_pd: // llvm.x86.fma4.vfmsubadd.pd
case Intrinsic::x86_fma4_vfnmadd_pd: // llvm.x86.fma4.vfnmadd.pd
case Intrinsic::x86_fma4_vfnmadd_sd: // llvm.x86.fma4.vfnmadd.sd
case Intrinsic::x86_fma4_vfnmsub_pd: // llvm.x86.fma4.vfnmsub.pd
case Intrinsic::x86_fma4_vfnmsub_sd: // llvm.x86.fma4.vfnmsub.sd
case Intrinsic::x86_sse41_blendvpd: // llvm.x86.sse41.blendvpd
ResultTy = VectorType::get(Type::getDoubleTy(Context), 2);
ArgTys.push_back(VectorType::get(Type::getDoubleTy(Context), 2));
ArgTys.push_back(VectorType::get(Type::getDoubleTy(Context), 2));
ArgTys.push_back(VectorType::get(Type::getDoubleTy(Context), 2));
break;
case Intrinsic::x86_xop_vpermil2pd: // llvm.x86.xop.vpermil2pd
ResultTy = VectorType::get(Type::getDoubleTy(Context), 2);
ArgTys.push_back(VectorType::get(Type::getDoubleTy(Context), 2));
ArgTys.push_back(VectorType::get(Type::getDoubleTy(Context), 2));
ArgTys.push_back(VectorType::get(Type::getDoubleTy(Context), 2));
ArgTys.push_back(IntegerType::get(Context, 8));
break;
case Intrinsic::x86_avx_vpermilvar_pd: // llvm.x86.avx.vpermilvar.pd
ResultTy = VectorType::get(Type::getDoubleTy(Context), 2);
ArgTys.push_back(VectorType::get(Type::getDoubleTy(Context), 2));
ArgTys.push_back(VectorType::get(IntegerType::get(Context, 64), 2));
break;
case Intrinsic::x86_sse2_cvtss2sd: // llvm.x86.sse2.cvtss2sd
ResultTy = VectorType::get(Type::getDoubleTy(Context), 2);
ArgTys.push_back(VectorType::get(Type::getDoubleTy(Context), 2));
ArgTys.push_back(VectorType::get(Type::getFloatTy(Context), 4));
break;
case Intrinsic::x86_sse2_cvtps2pd: // llvm.x86.sse2.cvtps2pd
ResultTy = VectorType::get(Type::getDoubleTy(Context), 2);
ArgTys.push_back(VectorType::get(Type::getFloatTy(Context), 4));
break;
case Intrinsic::x86_avx_vextractf128_pd_256: // llvm.x86.avx.vextractf128.pd.256
ResultTy = VectorType::get(Type::getDoubleTy(Context), 2);
ArgTys.push_back(VectorType::get(Type::getDoubleTy(Context), 4));
ArgTys.push_back(IntegerType::get(Context, 8));
break;
case Intrinsic::x86_sse2_cvtdq2pd: // llvm.x86.sse2.cvtdq2pd
ResultTy = VectorType::get(Type::getDoubleTy(Context), 2);
ArgTys.push_back(VectorType::get(IntegerType::get(Context, 32), 4));
break;
case Intrinsic::x86_sse_cvtpi2pd: // llvm.x86.sse.cvtpi2pd
ResultTy = VectorType::get(Type::getDoubleTy(Context), 2);
ArgTys.push_back(Type::getX86_MMXTy(Context));
break;
case Intrinsic::arm_neon_vacged: // llvm.arm.neon.vacged
case Intrinsic::arm_neon_vacgtd: // llvm.arm.neon.vacgtd
ResultTy = VectorType::get(IntegerType::get(Context, 32), 2);
ArgTys.push_back(VectorType::get(Type::getFloatTy(Context), 2));
ArgTys.push_back(VectorType::get(Type::getFloatTy(Context), 2));
break;
case Intrinsic::x86_sse41_movntdqa: // llvm.x86.sse41.movntdqa
ResultTy = VectorType::get(IntegerType::get(Context, 64), 2);
ArgTys.push_back(PointerType::getUnqual(IntegerType::get(Context, 8)));
break;
case Intrinsic::x86_avx2_maskload_q: // llvm.x86.avx2.maskload.q
ResultTy = VectorType::get(IntegerType::get(Context, 64), 2);
ArgTys.push_back(PointerType::getUnqual(IntegerType::get(Context, 8)));
ArgTys.push_back(VectorType::get(IntegerType::get(Context, 64), 2));
break;
case Intrinsic::x86_sse41_pmovsxbq: // llvm.x86.sse41.pmovsxbq
case Intrinsic::x86_sse41_pmovzxbq: // llvm.x86.sse41.pmovzxbq
case Intrinsic::x86_xop_vphaddbq: // llvm.x86.xop.vphaddbq
case Intrinsic::x86_xop_vphaddubq: // llvm.x86.xop.vphaddubq
ResultTy = VectorType::get(IntegerType::get(Context, 64), 2);
ArgTys.push_back(VectorType::get(IntegerType::get(Context, 8), 16));
break;
case Intrinsic::x86_sse2_psad_bw: // llvm.x86.sse2.psad.bw
ResultTy = VectorType::get(IntegerType::get(Context, 64), 2);
ArgTys.push_back(VectorType::get(IntegerType::get(Context, 8), 16));
ArgTys.push_back(VectorType::get(IntegerType::get(Context, 8), 16));
break;
case Intrinsic::x86_aesni_aesimc: // llvm.x86.aesni.aesimc
case Intrinsic::x86_avx2_pbroadcastq_128: // llvm.x86.avx2.pbroadcastq.128
ResultTy = VectorType::get(IntegerType::get(Context, 64), 2);
ArgTys.push_back(VectorType::get(IntegerType::get(Context, 64), 2));
break;
case Intrinsic::x86_sse2_psll_dq: // llvm.x86.sse2.psll.dq
case Intrinsic::x86_sse2_psll_dq_bs: // llvm.x86.sse2.psll.dq.bs
case Intrinsic::x86_sse2_pslli_q: // llvm.x86.sse2.pslli.q
case Intrinsic::x86_sse2_psrl_dq: // llvm.x86.sse2.psrl.dq
case Intrinsic::x86_sse2_psrl_dq_bs: // llvm.x86.sse2.psrl.dq.bs
case Intrinsic::x86_sse2_psrli_q: // llvm.x86.sse2.psrli.q
ResultTy = VectorType::get(IntegerType::get(Context, 64), 2);
ArgTys.push_back(VectorType::get(IntegerType::get(Context, 64), 2));
ArgTys.push_back(IntegerType::get(Context, 32));
break;
case Intrinsic::x86_aesni_aeskeygenassist: // llvm.x86.aesni.aeskeygenassist
ResultTy = VectorType::get(IntegerType::get(Context, 64), 2);
ArgTys.push_back(VectorType::get(IntegerType::get(Context, 64), 2));
ArgTys.push_back(IntegerType::get(Context, 8));
break;
case Intrinsic::x86_aesni_aesdec: // llvm.x86.aesni.aesdec
case Intrinsic::x86_aesni_aesdeclast: // llvm.x86.aesni.aesdeclast
case Intrinsic::x86_aesni_aesenc: // llvm.x86.aesni.aesenc
case Intrinsic::x86_aesni_aesenclast: // llvm.x86.aesni.aesenclast
case Intrinsic::x86_avx2_psllv_q: // llvm.x86.avx2.psllv.q
case Intrinsic::x86_avx2_psrlv_q: // llvm.x86.avx2.psrlv.q
case Intrinsic::x86_sse2_psll_q: // llvm.x86.sse2.psll.q
case Intrinsic::x86_sse2_psrl_q: // llvm.x86.sse2.psrl.q
case Intrinsic::x86_xop_vpcomeqq: // llvm.x86.xop.vpcomeqq
case Intrinsic::x86_xop_vpcomequq: // llvm.x86.xop.vpcomequq
case Intrinsic::x86_xop_vpcomfalseq: // llvm.x86.xop.vpcomfalseq
case Intrinsic::x86_xop_vpcomfalseuq: // llvm.x86.xop.vpcomfalseuq
case Intrinsic::x86_xop_vpcomgeq: // llvm.x86.xop.vpcomgeq
case Intrinsic::x86_xop_vpcomgeuq: // llvm.x86.xop.vpcomgeuq
case Intrinsic::x86_xop_vpcomgtq: // llvm.x86.xop.vpcomgtq
case Intrinsic::x86_xop_vpcomgtuq: // llvm.x86.xop.vpcomgtuq
case Intrinsic::x86_xop_vpcomleq: // llvm.x86.xop.vpcomleq
case Intrinsic::x86_xop_vpcomleuq: // llvm.x86.xop.vpcomleuq
case Intrinsic::x86_xop_vpcomltq: // llvm.x86.xop.vpcomltq
case Intrinsic::x86_xop_vpcomltuq: // llvm.x86.xop.vpcomltuq
case Intrinsic::x86_xop_vpcomneq: // llvm.x86.xop.vpcomneq
case Intrinsic::x86_xop_vpcomneuq: // llvm.x86.xop.vpcomneuq
case Intrinsic::x86_xop_vpcomtrueq: // llvm.x86.xop.vpcomtrueq
case Intrinsic::x86_xop_vpcomtrueuq: // llvm.x86.xop.vpcomtrueuq
case Intrinsic::x86_xop_vprotq: // llvm.x86.xop.vprotq
case Intrinsic::x86_xop_vpshaq: // llvm.x86.xop.vpshaq
case Intrinsic::x86_xop_vpshlq: // llvm.x86.xop.vpshlq
ResultTy = VectorType::get(IntegerType::get(Context, 64), 2);
ArgTys.push_back(VectorType::get(IntegerType::get(Context, 64), 2));
ArgTys.push_back(VectorType::get(IntegerType::get(Context, 64), 2));
break;
case Intrinsic::x86_xop_vpcmov: // llvm.x86.xop.vpcmov
ResultTy = VectorType::get(IntegerType::get(Context, 64), 2);
ArgTys.push_back(VectorType::get(IntegerType::get(Context, 64), 2));
ArgTys.push_back(VectorType::get(IntegerType::get(Context, 64), 2));
ArgTys.push_back(VectorType::get(IntegerType::get(Context, 64), 2));
break;
case Intrinsic::x86_sse41_pmovsxdq: // llvm.x86.sse41.pmovsxdq
case Intrinsic::x86_sse41_pmovzxdq: // llvm.x86.sse41.pmovzxdq
case Intrinsic::x86_xop_vphadddq: // llvm.x86.xop.vphadddq
case Intrinsic::x86_xop_vphaddudq: // llvm.x86.xop.vphaddudq
case Intrinsic::x86_xop_vphsubdq: // llvm.x86.xop.vphsubdq
ResultTy = VectorType::get(IntegerType::get(Context, 64), 2);
ArgTys.push_back(VectorType::get(IntegerType::get(Context, 32), 4));
break;
case Intrinsic::x86_sse2_pmulu_dq: // llvm.x86.sse2.pmulu.dq
case Intrinsic::x86_sse41_pmuldq: // llvm.x86.sse41.pmuldq
ResultTy = VectorType::get(IntegerType::get(Context, 64), 2);
ArgTys.push_back(VectorType::get(IntegerType::get(Context, 32), 4));
ArgTys.push_back(VectorType::get(IntegerType::get(Context, 32), 4));
break;
case Intrinsic::x86_xop_vpmacsdqh: // llvm.x86.xop.vpmacsdqh
case Intrinsic::x86_xop_vpmacsdql: // llvm.x86.xop.vpmacsdql
case Intrinsic::x86_xop_vpmacssdqh: // llvm.x86.xop.vpmacssdqh
case Intrinsic::x86_xop_vpmacssdql: // llvm.x86.xop.vpmacssdql
ResultTy = VectorType::get(IntegerType::get(Context, 64), 2);
ArgTys.push_back(VectorType::get(IntegerType::get(Context, 32), 4));
ArgTys.push_back(VectorType::get(IntegerType::get(Context, 32), 4));
ArgTys.push_back(VectorType::get(IntegerType::get(Context, 64), 2));
break;
case Intrinsic::x86_avx2_vextracti128: // llvm.x86.avx2.vextracti128
ResultTy = VectorType::get(IntegerType::get(Context, 64), 2);
ArgTys.push_back(VectorType::get(IntegerType::get(Context, 64), 4));
ArgTys.push_back(IntegerType::get(Context, 8));
break;
case Intrinsic::x86_sse41_pmovsxwq: // llvm.x86.sse41.pmovsxwq
case Intrinsic::x86_sse41_pmovzxwq: // llvm.x86.sse41.pmovzxwq
case Intrinsic::x86_xop_vphadduwq: // llvm.x86.xop.vphadduwq
case Intrinsic::x86_xop_vphaddwq: // llvm.x86.xop.vphaddwq
ResultTy = VectorType::get(IntegerType::get(Context, 64), 2);
ArgTys.push_back(VectorType::get(IntegerType::get(Context, 16), 8));
break;
case Intrinsic::x86_avx_ldu_dq_256: // llvm.x86.avx.ldu.dq.256
ResultTy = VectorType::get(IntegerType::get(Context, 8), 32);
ArgTys.push_back(PointerType::getUnqual(IntegerType::get(Context, 8)));
break;
case Intrinsic::x86_avx2_packsswb: // llvm.x86.avx2.packsswb
case Intrinsic::x86_avx2_packuswb: // llvm.x86.avx2.packuswb
ResultTy = VectorType::get(IntegerType::get(Context, 8), 32);
ArgTys.push_back(VectorType::get(IntegerType::get(Context, 16), 16));
ArgTys.push_back(VectorType::get(IntegerType::get(Context, 16), 16));
break;
case Intrinsic::x86_avx2_pbroadcastb_256: // llvm.x86.avx2.pbroadcastb.256
ResultTy = VectorType::get(IntegerType::get(Context, 8), 32);
ArgTys.push_back(VectorType::get(IntegerType::get(Context, 8), 16));
break;
case Intrinsic::x86_avx2_pabs_b: // llvm.x86.avx2.pabs.b
ResultTy = VectorType::get(IntegerType::get(Context, 8), 32);
ArgTys.push_back(VectorType::get(IntegerType::get(Context, 8), 32));
break;
case Intrinsic::x86_avx2_padds_b: // llvm.x86.avx2.padds.b
case Intrinsic::x86_avx2_paddus_b: // llvm.x86.avx2.paddus.b
case Intrinsic::x86_avx2_pavg_b: // llvm.x86.avx2.pavg.b
case Intrinsic::x86_avx2_pmaxs_b: // llvm.x86.avx2.pmaxs.b
case Intrinsic::x86_avx2_pmaxu_b: // llvm.x86.avx2.pmaxu.b
case Intrinsic::x86_avx2_pmins_b: // llvm.x86.avx2.pmins.b
case Intrinsic::x86_avx2_pminu_b: // llvm.x86.avx2.pminu.b
case Intrinsic::x86_avx2_pshuf_b: // llvm.x86.avx2.pshuf.b
case Intrinsic::x86_avx2_psign_b: // llvm.x86.avx2.psign.b
case Intrinsic::x86_avx2_psubs_b: // llvm.x86.avx2.psubs.b
case Intrinsic::x86_avx2_psubus_b: // llvm.x86.avx2.psubus.b
ResultTy = VectorType::get(IntegerType::get(Context, 8), 32);
ArgTys.push_back(VectorType::get(IntegerType::get(Context, 8), 32));
ArgTys.push_back(VectorType::get(IntegerType::get(Context, 8), 32));
break;
case Intrinsic::x86_avx2_pblendvb: // llvm.x86.avx2.pblendvb
ResultTy = VectorType::get(IntegerType::get(Context, 8), 32);
ArgTys.push_back(VectorType::get(IntegerType::get(Context, 8), 32));
ArgTys.push_back(VectorType::get(IntegerType::get(Context, 8), 32));
ArgTys.push_back(VectorType::get(IntegerType::get(Context, 8), 32));
break;
case Intrinsic::x86_avx_vbroadcast_ss: // llvm.x86.avx.vbroadcast.ss
ResultTy = VectorType::get(Type::getFloatTy(Context), 4);
ArgTys.push_back(PointerType::getUnqual(IntegerType::get(Context, 8)));
break;
case Intrinsic::x86_avx_maskload_ps: // llvm.x86.avx.maskload.ps
ResultTy = VectorType::get(Type::getFloatTy(Context), 4);
ArgTys.push_back(PointerType::getUnqual(IntegerType::get(Context, 8)));
ArgTys.push_back(VectorType::get(Type::getFloatTy(Context), 4));
break;
case Intrinsic::x86_sse2_cvtpd2ps: // llvm.x86.sse2.cvtpd2ps
ResultTy = VectorType::get(Type::getFloatTy(Context), 4);
ArgTys.push_back(VectorType::get(Type::getDoubleTy(Context), 2));
break;
case Intrinsic::ppc_altivec_vexptefp: // llvm.ppc.altivec.vexptefp
case Intrinsic::ppc_altivec_vlogefp: // llvm.ppc.altivec.vlogefp
case Intrinsic::ppc_altivec_vrefp: // llvm.ppc.altivec.vrefp
case Intrinsic::ppc_altivec_vrfim: // llvm.ppc.altivec.vrfim
case Intrinsic::ppc_altivec_vrfin: // llvm.ppc.altivec.vrfin
case Intrinsic::ppc_altivec_vrfip: // llvm.ppc.altivec.vrfip
case Intrinsic::ppc_altivec_vrfiz: // llvm.ppc.altivec.vrfiz
case Intrinsic::ppc_altivec_vrsqrtefp: // llvm.ppc.altivec.vrsqrtefp
case Intrinsic::x86_avx2_vbroadcast_ss_ps: // llvm.x86.avx2.vbroadcast.ss.ps
case Intrinsic::x86_sse_rcp_ps: // llvm.x86.sse.rcp.ps
case Intrinsic::x86_sse_rcp_ss: // llvm.x86.sse.rcp.ss
case Intrinsic::x86_sse_rsqrt_ps: // llvm.x86.sse.rsqrt.ps
case Intrinsic::x86_sse_rsqrt_ss: // llvm.x86.sse.rsqrt.ss
case Intrinsic::x86_sse_sqrt_ps: // llvm.x86.sse.sqrt.ps
case Intrinsic::x86_sse_sqrt_ss: // llvm.x86.sse.sqrt.ss
case Intrinsic::x86_xop_vfrcz_ps: // llvm.x86.xop.vfrcz.ps
ResultTy = VectorType::get(Type::getFloatTy(Context), 4);
ArgTys.push_back(VectorType::get(Type::getFloatTy(Context), 4));
break;
case Intrinsic::x86_sse41_round_ps: // llvm.x86.sse41.round.ps
case Intrinsic::x86_sse_cvtsi2ss: // llvm.x86.sse.cvtsi2ss
ResultTy = VectorType::get(Type::getFloatTy(Context), 4);
ArgTys.push_back(VectorType::get(Type::getFloatTy(Context), 4));
ArgTys.push_back(IntegerType::get(Context, 32));
break;
case Intrinsic::x86_sse_cvtsi642ss: // llvm.x86.sse.cvtsi642ss
ResultTy = VectorType::get(Type::getFloatTy(Context), 4);
ArgTys.push_back(VectorType::get(Type::getFloatTy(Context), 4));
ArgTys.push_back(IntegerType::get(Context, 64));
break;
case Intrinsic::x86_sse2_cvtsd2ss: // llvm.x86.sse2.cvtsd2ss
ResultTy = VectorType::get(Type::getFloatTy(Context), 4);
ArgTys.push_back(VectorType::get(Type::getFloatTy(Context), 4));
ArgTys.push_back(VectorType::get(Type::getDoubleTy(Context), 2));
break;
case Intrinsic::ppc_altivec_vmaxfp: // llvm.ppc.altivec.vmaxfp
case Intrinsic::ppc_altivec_vminfp: // llvm.ppc.altivec.vminfp
case Intrinsic::spu_si_fa: // llvm.spu.si.fa
case Intrinsic::spu_si_fceq: // llvm.spu.si.fceq
case Intrinsic::spu_si_fcgt: // llvm.spu.si.fcgt
case Intrinsic::spu_si_fcmeq: // llvm.spu.si.fcmeq
case Intrinsic::spu_si_fcmgt: // llvm.spu.si.fcmgt
case Intrinsic::spu_si_fm: // llvm.spu.si.fm
case Intrinsic::spu_si_fs: // llvm.spu.si.fs
case Intrinsic::x86_sse3_addsub_ps: // llvm.x86.sse3.addsub.ps
case Intrinsic::x86_sse3_hadd_ps: // llvm.x86.sse3.hadd.ps
case Intrinsic::x86_sse3_hsub_ps: // llvm.x86.sse3.hsub.ps
case Intrinsic::x86_sse_add_ss: // llvm.x86.sse.add.ss
case Intrinsic::x86_sse_div_ss: // llvm.x86.sse.div.ss
case Intrinsic::x86_sse_max_ps: // llvm.x86.sse.max.ps
case Intrinsic::x86_sse_max_ss: // llvm.x86.sse.max.ss
case Intrinsic::x86_sse_min_ps: // llvm.x86.sse.min.ps
case Intrinsic::x86_sse_min_ss: // llvm.x86.sse.min.ss
case Intrinsic::x86_sse_mul_ss: // llvm.x86.sse.mul.ss
case Intrinsic::x86_sse_sub_ss: // llvm.x86.sse.sub.ss
case Intrinsic::x86_xop_vfrcz_ss: // llvm.x86.xop.vfrcz.ss
ResultTy = VectorType::get(Type::getFloatTy(Context), 4);
ArgTys.push_back(VectorType::get(Type::getFloatTy(Context), 4));
ArgTys.push_back(VectorType::get(Type::getFloatTy(Context), 4));
break;
case Intrinsic::x86_sse41_blendps: // llvm.x86.sse41.blendps
case Intrinsic::x86_sse41_dpps: // llvm.x86.sse41.dpps
case Intrinsic::x86_sse41_insertps: // llvm.x86.sse41.insertps
case Intrinsic::x86_sse41_round_ss: // llvm.x86.sse41.round.ss
ResultTy = VectorType::get(Type::getFloatTy(Context), 4);
ArgTys.push_back(VectorType::get(Type::getFloatTy(Context), 4));
ArgTys.push_back(VectorType::get(Type::getFloatTy(Context), 4));
ArgTys.push_back(IntegerType::get(Context, 32));
break;
case Intrinsic::x86_sse_cmp_ps: // llvm.x86.sse.cmp.ps
case Intrinsic::x86_sse_cmp_ss: // llvm.x86.sse.cmp.ss
ResultTy = VectorType::get(Type::getFloatTy(Context), 4);
ArgTys.push_back(VectorType::get(Type::getFloatTy(Context), 4));
ArgTys.push_back(VectorType::get(Type::getFloatTy(Context), 4));
ArgTys.push_back(IntegerType::get(Context, 8));
break;
case Intrinsic::ppc_altivec_vmaddfp: // llvm.ppc.altivec.vmaddfp
case Intrinsic::ppc_altivec_vnmsubfp: // llvm.ppc.altivec.vnmsubfp
case Intrinsic::spu_si_fma: // llvm.spu.si.fma
case Intrinsic::spu_si_fms: // llvm.spu.si.fms
case Intrinsic::spu_si_fnms: // llvm.spu.si.fnms
case Intrinsic::x86_fma4_vfmadd_ps: // llvm.x86.fma4.vfmadd.ps
case Intrinsic::x86_fma4_vfmadd_ss: // llvm.x86.fma4.vfmadd.ss
case Intrinsic::x86_fma4_vfmaddsub_ps: // llvm.x86.fma4.vfmaddsub.ps
case Intrinsic::x86_fma4_vfmsub_ps: // llvm.x86.fma4.vfmsub.ps
case Intrinsic::x86_fma4_vfmsub_ss: // llvm.x86.fma4.vfmsub.ss
case Intrinsic::x86_fma4_vfmsubadd_ps: // llvm.x86.fma4.vfmsubadd.ps
case Intrinsic::x86_fma4_vfnmadd_ps: // llvm.x86.fma4.vfnmadd.ps
case Intrinsic::x86_fma4_vfnmadd_ss: // llvm.x86.fma4.vfnmadd.ss
case Intrinsic::x86_fma4_vfnmsub_ps: // llvm.x86.fma4.vfnmsub.ps
case Intrinsic::x86_fma4_vfnmsub_ss: // llvm.x86.fma4.vfnmsub.ss
case Intrinsic::x86_sse41_blendvps: // llvm.x86.sse41.blendvps
ResultTy = VectorType::get(Type::getFloatTy(Context), 4);
ArgTys.push_back(VectorType::get(Type::getFloatTy(Context), 4));
ArgTys.push_back(VectorType::get(Type::getFloatTy(Context), 4));
ArgTys.push_back(VectorType::get(Type::getFloatTy(Context), 4));
break;
case Intrinsic::x86_xop_vpermil2ps: // llvm.x86.xop.vpermil2ps
ResultTy = VectorType::get(Type::getFloatTy(Context), 4);
ArgTys.push_back(VectorType::get(Type::getFloatTy(Context), 4));
ArgTys.push_back(VectorType::get(Type::getFloatTy(Context), 4));
ArgTys.push_back(VectorType::get(Type::getFloatTy(Context), 4));
ArgTys.push_back(IntegerType::get(Context, 8));
break;
case Intrinsic::x86_avx_vpermilvar_ps: // llvm.x86.avx.vpermilvar.ps
ResultTy = VectorType::get(Type::getFloatTy(Context), 4);
ArgTys.push_back(VectorType::get(Type::getFloatTy(Context), 4));
ArgTys.push_back(VectorType::get(IntegerType::get(Context, 32), 4));
break;
case Intrinsic::x86_sse_cvtpi2ps: // llvm.x86.sse.cvtpi2ps
ResultTy = VectorType::get(Type::getFloatTy(Context), 4);
ArgTys.push_back(VectorType::get(Type::getFloatTy(Context), 4));
ArgTys.push_back(Type::getX86_MMXTy(Context));
break;
case Intrinsic::x86_avx_cvt_pd2_ps_256: // llvm.x86.avx.cvt.pd2.ps.256
ResultTy = VectorType::get(Type::getFloatTy(Context), 4);
ArgTys.push_back(VectorType::get(Type::getDoubleTy(Context), 4));
break;
case Intrinsic::arm_neon_vcvthf2fp: // llvm.arm.neon.vcvthf2fp
ResultTy = VectorType::get(Type::getFloatTy(Context), 4);
ArgTys.push_back(VectorType::get(IntegerType::get(Context, 16), 4));
break;
case Intrinsic::x86_sse2_cvtdq2ps: // llvm.x86.sse2.cvtdq2ps
ResultTy = VectorType::get(Type::getFloatTy(Context), 4);
ArgTys.push_back(VectorType::get(IntegerType::get(Context, 32), 4));
break;
case Intrinsic::ppc_altivec_vcfsx: // llvm.ppc.altivec.vcfsx
case Intrinsic::ppc_altivec_vcfux: // llvm.ppc.altivec.vcfux
ResultTy = VectorType::get(Type::getFloatTy(Context), 4);
ArgTys.push_back(VectorType::get(IntegerType::get(Context, 32), 4));
ArgTys.push_back(IntegerType::get(Context, 32));
break;
case Intrinsic::x86_avx_vextractf128_ps_256: // llvm.x86.avx.vextractf128.ps.256
ResultTy = VectorType::get(Type::getFloatTy(Context), 4);
ArgTys.push_back(VectorType::get(Type::getFloatTy(Context), 8));
ArgTys.push_back(IntegerType::get(Context, 8));
break;
case Intrinsic::x86_vcvtph2ps_128: // llvm.x86.vcvtph2ps.128
ResultTy = VectorType::get(Type::getFloatTy(Context), 4);
ArgTys.push_back(VectorType::get(IntegerType::get(Context, 16), 8));
break;
case Intrinsic::x86_avx_vbroadcast_sd_256: // llvm.x86.avx.vbroadcast.sd.256
case Intrinsic::x86_avx_vbroadcastf128_pd_256: // llvm.x86.avx.vbroadcastf128.pd.256
ResultTy = VectorType::get(Type::getDoubleTy(Context), 4);
ArgTys.push_back(PointerType::getUnqual(IntegerType::get(Context, 8)));
break;
case Intrinsic::x86_avx_maskload_pd_256: // llvm.x86.avx.maskload.pd.256
ResultTy = VectorType::get(Type::getDoubleTy(Context), 4);
ArgTys.push_back(PointerType::getUnqual(IntegerType::get(Context, 8)));
ArgTys.push_back(VectorType::get(Type::getDoubleTy(Context), 4));
break;
case Intrinsic::x86_avx2_vbroadcast_sd_pd_256: // llvm.x86.avx2.vbroadcast.sd.pd.256
ResultTy = VectorType::get(Type::getDoubleTy(Context), 4);
ArgTys.push_back(VectorType::get(Type::getDoubleTy(Context), 2));
break;
case Intrinsic::x86_avx_cvt_ps2_pd_256: // llvm.x86.avx.cvt.ps2.pd.256
ResultTy = VectorType::get(Type::getDoubleTy(Context), 4);
ArgTys.push_back(VectorType::get(Type::getFloatTy(Context), 4));
break;
case Intrinsic::x86_avx_sqrt_pd_256: // llvm.x86.avx.sqrt.pd.256
case Intrinsic::x86_xop_vfrcz_pd_256: // llvm.x86.xop.vfrcz.pd.256
ResultTy = VectorType::get(Type::getDoubleTy(Context), 4);
ArgTys.push_back(VectorType::get(Type::getDoubleTy(Context), 4));
break;
case Intrinsic::x86_avx_round_pd_256: // llvm.x86.avx.round.pd.256
ResultTy = VectorType::get(Type::getDoubleTy(Context), 4);
ArgTys.push_back(VectorType::get(Type::getDoubleTy(Context), 4));
ArgTys.push_back(IntegerType::get(Context, 32));
break;
case Intrinsic::x86_avx_vinsertf128_pd_256: // llvm.x86.avx.vinsertf128.pd.256
ResultTy = VectorType::get(Type::getDoubleTy(Context), 4);
ArgTys.push_back(VectorType::get(Type::getDoubleTy(Context), 4));
ArgTys.push_back(VectorType::get(Type::getDoubleTy(Context), 2));
ArgTys.push_back(IntegerType::get(Context, 8));
break;
case Intrinsic::x86_avx_addsub_pd_256: // llvm.x86.avx.addsub.pd.256
case Intrinsic::x86_avx_hadd_pd_256: // llvm.x86.avx.hadd.pd.256
case Intrinsic::x86_avx_hsub_pd_256: // llvm.x86.avx.hsub.pd.256
case Intrinsic::x86_avx_max_pd_256: // llvm.x86.avx.max.pd.256
case Intrinsic::x86_avx_min_pd_256: // llvm.x86.avx.min.pd.256
ResultTy = VectorType::get(Type::getDoubleTy(Context), 4);
ArgTys.push_back(VectorType::get(Type::getDoubleTy(Context), 4));
ArgTys.push_back(VectorType::get(Type::getDoubleTy(Context), 4));
break;
case Intrinsic::x86_avx_blend_pd_256: // llvm.x86.avx.blend.pd.256
ResultTy = VectorType::get(Type::getDoubleTy(Context), 4);
ArgTys.push_back(VectorType::get(Type::getDoubleTy(Context), 4));
ArgTys.push_back(VectorType::get(Type::getDoubleTy(Context), 4));
ArgTys.push_back(IntegerType::get(Context, 32));
break;
case Intrinsic::x86_avx_cmp_pd_256: // llvm.x86.avx.cmp.pd.256
case Intrinsic::x86_avx_vperm2f128_pd_256: // llvm.x86.avx.vperm2f128.pd.256
ResultTy = VectorType::get(Type::getDoubleTy(Context), 4);
ArgTys.push_back(VectorType::get(Type::getDoubleTy(Context), 4));
ArgTys.push_back(VectorType::get(Type::getDoubleTy(Context), 4));
ArgTys.push_back(IntegerType::get(Context, 8));
break;
case Intrinsic::x86_avx_blendv_pd_256: // llvm.x86.avx.blendv.pd.256
case Intrinsic::x86_fma4_vfmadd_pd_256: // llvm.x86.fma4.vfmadd.pd.256
case Intrinsic::x86_fma4_vfmaddsub_pd_256: // llvm.x86.fma4.vfmaddsub.pd.256
case Intrinsic::x86_fma4_vfmsub_pd_256: // llvm.x86.fma4.vfmsub.pd.256
case Intrinsic::x86_fma4_vfmsubadd_pd_256: // llvm.x86.fma4.vfmsubadd.pd.256
case Intrinsic::x86_fma4_vfnmadd_pd_256: // llvm.x86.fma4.vfnmadd.pd.256
case Intrinsic::x86_fma4_vfnmsub_pd_256: // llvm.x86.fma4.vfnmsub.pd.256
ResultTy = VectorType::get(Type::getDoubleTy(Context), 4);
ArgTys.push_back(VectorType::get(Type::getDoubleTy(Context), 4));
ArgTys.push_back(VectorType::get(Type::getDoubleTy(Context), 4));
ArgTys.push_back(VectorType::get(Type::getDoubleTy(Context), 4));
break;
case Intrinsic::x86_xop_vpermil2pd_256: // llvm.x86.xop.vpermil2pd.256
ResultTy = VectorType::get(Type::getDoubleTy(Context), 4);
ArgTys.push_back(VectorType::get(Type::getDoubleTy(Context), 4));
ArgTys.push_back(VectorType::get(Type::getDoubleTy(Context), 4));
ArgTys.push_back(VectorType::get(Type::getDoubleTy(Context), 4));
ArgTys.push_back(IntegerType::get(Context, 8));
break;
case Intrinsic::x86_avx_vpermilvar_pd_256: // llvm.x86.avx.vpermilvar.pd.256
ResultTy = VectorType::get(Type::getDoubleTy(Context), 4);
ArgTys.push_back(VectorType::get(Type::getDoubleTy(Context), 4));
ArgTys.push_back(VectorType::get(IntegerType::get(Context, 64), 4));
break;
case Intrinsic::x86_avx_cvtdq2_pd_256: // llvm.x86.avx.cvtdq2.pd.256
ResultTy = VectorType::get(Type::getDoubleTy(Context), 4);
ArgTys.push_back(VectorType::get(IntegerType::get(Context, 32), 4));
break;
case Intrinsic::arm_neon_vcvtfp2hf: // llvm.arm.neon.vcvtfp2hf
ResultTy = VectorType::get(IntegerType::get(Context, 16), 4);
ArgTys.push_back(VectorType::get(Type::getFloatTy(Context), 4));
break;
case Intrinsic::ppc_altivec_lvewx: // llvm.ppc.altivec.lvewx
case Intrinsic::ppc_altivec_lvx: // llvm.ppc.altivec.lvx
case Intrinsic::ppc_altivec_lvxl: // llvm.ppc.altivec.lvxl
ResultTy = VectorType::get(IntegerType::get(Context, 32), 4);
ArgTys.push_back(PointerType::getUnqual(IntegerType::get(Context, 8)));
break;
case Intrinsic::x86_avx2_maskload_d: // llvm.x86.avx2.maskload.d
ResultTy = VectorType::get(IntegerType::get(Context, 32), 4);
ArgTys.push_back(PointerType::getUnqual(IntegerType::get(Context, 8)));
ArgTys.push_back(VectorType::get(IntegerType::get(Context, 32), 4));
break;
case Intrinsic::x86_sse41_pmovsxbd: // llvm.x86.sse41.pmovsxbd
case Intrinsic::x86_sse41_pmovzxbd: // llvm.x86.sse41.pmovzxbd
case Intrinsic::x86_xop_vphaddbd: // llvm.x86.xop.vphaddbd
case Intrinsic::x86_xop_vphaddubd: // llvm.x86.xop.vphaddubd
ResultTy = VectorType::get(IntegerType::get(Context, 32), 4);
ArgTys.push_back(VectorType::get(IntegerType::get(Context, 8), 16));
break;
case Intrinsic::ppc_altivec_vmsummbm: // llvm.ppc.altivec.vmsummbm
case Intrinsic::ppc_altivec_vmsumubm: // llvm.ppc.altivec.vmsumubm
ResultTy = VectorType::get(IntegerType::get(Context, 32), 4);
ArgTys.push_back(VectorType::get(IntegerType::get(Context, 8), 16));
ArgTys.push_back(VectorType::get(IntegerType::get(Context, 8), 16));
ArgTys.push_back(VectorType::get(IntegerType::get(Context, 32), 4));
break;
case Intrinsic::ppc_altivec_vsum4sbs: // llvm.ppc.altivec.vsum4sbs
case Intrinsic::ppc_altivec_vsum4ubs: // llvm.ppc.altivec.vsum4ubs
ResultTy = VectorType::get(IntegerType::get(Context, 32), 4);
ArgTys.push_back(VectorType::get(IntegerType::get(Context, 8), 16));
ArgTys.push_back(VectorType::get(IntegerType::get(Context, 32), 4));
break;
case Intrinsic::x86_sse2_cvtpd2dq: // llvm.x86.sse2.cvtpd2dq
case Intrinsic::x86_sse2_cvttpd2dq: // llvm.x86.sse2.cvttpd2dq
ResultTy = VectorType::get(IntegerType::get(Context, 32), 4);
ArgTys.push_back(VectorType::get(Type::getDoubleTy(Context), 2));
break;
case Intrinsic::x86_sse2_cvtps2dq: // llvm.x86.sse2.cvtps2dq
case Intrinsic::x86_sse2_cvttps2dq: // llvm.x86.sse2.cvttps2dq
ResultTy = VectorType::get(IntegerType::get(Context, 32), 4);
ArgTys.push_back(VectorType::get(Type::getFloatTy(Context), 4));
break;
case Intrinsic::ppc_altivec_vctsxs: // llvm.ppc.altivec.vctsxs
case Intrinsic::ppc_altivec_vctuxs: // llvm.ppc.altivec.vctuxs
ResultTy = VectorType::get(IntegerType::get(Context, 32), 4);
ArgTys.push_back(VectorType::get(Type::getFloatTy(Context), 4));
ArgTys.push_back(IntegerType::get(Context, 32));
break;
case Intrinsic::arm_neon_vacgeq: // llvm.arm.neon.vacgeq
case Intrinsic::arm_neon_vacgtq: // llvm.arm.neon.vacgtq
case Intrinsic::ppc_altivec_vcmpbfp: // llvm.ppc.altivec.vcmpbfp
case Intrinsic::ppc_altivec_vcmpeqfp: // llvm.ppc.altivec.vcmpeqfp
case Intrinsic::ppc_altivec_vcmpgefp: // llvm.ppc.altivec.vcmpgefp
case Intrinsic::ppc_altivec_vcmpgtfp: // llvm.ppc.altivec.vcmpgtfp
ResultTy = VectorType::get(IntegerType::get(Context, 32), 4);
ArgTys.push_back(VectorType::get(Type::getFloatTy(Context), 4));
ArgTys.push_back(VectorType::get(Type::getFloatTy(Context), 4));
break;
case Intrinsic::x86_avx_cvt_pd2dq_256: // llvm.x86.avx.cvt.pd2dq.256
case Intrinsic::x86_avx_cvtt_pd2dq_256: // llvm.x86.avx.cvtt.pd2dq.256
ResultTy = VectorType::get(IntegerType::get(Context, 32), 4);
ArgTys.push_back(VectorType::get(Type::getDoubleTy(Context), 4));
break;
case Intrinsic::x86_avx2_pbroadcastd_128: // llvm.x86.avx2.pbroadcastd.128
case Intrinsic::x86_ssse3_pabs_d_128: // llvm.x86.ssse3.pabs.d.128
ResultTy = VectorType::get(IntegerType::get(Context, 32), 4);
ArgTys.push_back(VectorType::get(IntegerType::get(Context, 32), 4));
break;
case Intrinsic::spu_si_shli: // llvm.spu.si.shli
ResultTy = VectorType::get(IntegerType::get(Context, 32), 4);
ArgTys.push_back(VectorType::get(IntegerType::get(Context, 32), 4));
ArgTys.push_back(IntegerType::get(Context, 8));
break;
case Intrinsic::spu_si_ai: // llvm.spu.si.ai
case Intrinsic::spu_si_andi: // llvm.spu.si.andi
case Intrinsic::spu_si_ceqi: // llvm.spu.si.ceqi
case Intrinsic::spu_si_cgti: // llvm.spu.si.cgti
case Intrinsic::spu_si_clgti: // llvm.spu.si.clgti
case Intrinsic::spu_si_ori: // llvm.spu.si.ori
case Intrinsic::spu_si_sfi: // llvm.spu.si.sfi
case Intrinsic::spu_si_xori: // llvm.spu.si.xori
ResultTy = VectorType::get(IntegerType::get(Context, 32), 4);
ArgTys.push_back(VectorType::get(IntegerType::get(Context, 32), 4));
ArgTys.push_back(IntegerType::get(Context, 16));
break;
case Intrinsic::x86_sse2_pslli_d: // llvm.x86.sse2.pslli.d
case Intrinsic::x86_sse2_psrai_d: // llvm.x86.sse2.psrai.d
case Intrinsic::x86_sse2_psrli_d: // llvm.x86.sse2.psrli.d
ResultTy = VectorType::get(IntegerType::get(Context, 32), 4);
ArgTys.push_back(VectorType::get(IntegerType::get(Context, 32), 4));
ArgTys.push_back(IntegerType::get(Context, 32));
break;
case Intrinsic::ppc_altivec_vaddcuw: // llvm.ppc.altivec.vaddcuw
case Intrinsic::ppc_altivec_vaddsws: // llvm.ppc.altivec.vaddsws
case Intrinsic::ppc_altivec_vadduws: // llvm.ppc.altivec.vadduws
case Intrinsic::ppc_altivec_vavgsw: // llvm.ppc.altivec.vavgsw
case Intrinsic::ppc_altivec_vavguw: // llvm.ppc.altivec.vavguw
case Intrinsic::ppc_altivec_vcmpequw: // llvm.ppc.altivec.vcmpequw
case Intrinsic::ppc_altivec_vcmpgtsw: // llvm.ppc.altivec.vcmpgtsw
case Intrinsic::ppc_altivec_vcmpgtuw: // llvm.ppc.altivec.vcmpgtuw
case Intrinsic::ppc_altivec_vmaxsw: // llvm.ppc.altivec.vmaxsw
case Intrinsic::ppc_altivec_vmaxuw: // llvm.ppc.altivec.vmaxuw
case Intrinsic::ppc_altivec_vminsw: // llvm.ppc.altivec.vminsw
case Intrinsic::ppc_altivec_vminuw: // llvm.ppc.altivec.vminuw
case Intrinsic::ppc_altivec_vrlw: // llvm.ppc.altivec.vrlw
case Intrinsic::ppc_altivec_vsl: // llvm.ppc.altivec.vsl
case Intrinsic::ppc_altivec_vslo: // llvm.ppc.altivec.vslo
case Intrinsic::ppc_altivec_vslw: // llvm.ppc.altivec.vslw
case Intrinsic::ppc_altivec_vsr: // llvm.ppc.altivec.vsr
case Intrinsic::ppc_altivec_vsraw: // llvm.ppc.altivec.vsraw
case Intrinsic::ppc_altivec_vsro: // llvm.ppc.altivec.vsro
case Intrinsic::ppc_altivec_vsrw: // llvm.ppc.altivec.vsrw
case Intrinsic::ppc_altivec_vsubcuw: // llvm.ppc.altivec.vsubcuw
case Intrinsic::ppc_altivec_vsubsws: // llvm.ppc.altivec.vsubsws
case Intrinsic::ppc_altivec_vsubuws: // llvm.ppc.altivec.vsubuws
case Intrinsic::ppc_altivec_vsum2sws: // llvm.ppc.altivec.vsum2sws
case Intrinsic::ppc_altivec_vsumsws: // llvm.ppc.altivec.vsumsws
case Intrinsic::spu_si_a: // llvm.spu.si.a
case Intrinsic::spu_si_addx: // llvm.spu.si.addx
case Intrinsic::spu_si_and: // llvm.spu.si.and
case Intrinsic::spu_si_andc: // llvm.spu.si.andc
case Intrinsic::spu_si_bg: // llvm.spu.si.bg
case Intrinsic::spu_si_bgx: // llvm.spu.si.bgx
case Intrinsic::spu_si_ceq: // llvm.spu.si.ceq
case Intrinsic::spu_si_cg: // llvm.spu.si.cg
case Intrinsic::spu_si_cgt: // llvm.spu.si.cgt
case Intrinsic::spu_si_cgx: // llvm.spu.si.cgx
case Intrinsic::spu_si_clgt: // llvm.spu.si.clgt
case Intrinsic::spu_si_nand: // llvm.spu.si.nand
case Intrinsic::spu_si_nor: // llvm.spu.si.nor
case Intrinsic::spu_si_or: // llvm.spu.si.or
case Intrinsic::spu_si_orc: // llvm.spu.si.orc
case Intrinsic::spu_si_sf: // llvm.spu.si.sf
case Intrinsic::spu_si_sfx: // llvm.spu.si.sfx
case Intrinsic::spu_si_xor: // llvm.spu.si.xor
case Intrinsic::x86_avx2_psllv_d: // llvm.x86.avx2.psllv.d
case Intrinsic::x86_avx2_psrav_d: // llvm.x86.avx2.psrav.d
case Intrinsic::x86_avx2_psrlv_d: // llvm.x86.avx2.psrlv.d
case Intrinsic::x86_sse2_psll_d: // llvm.x86.sse2.psll.d
case Intrinsic::x86_sse2_psra_d: // llvm.x86.sse2.psra.d
case Intrinsic::x86_sse2_psrl_d: // llvm.x86.sse2.psrl.d
case Intrinsic::x86_sse41_pmaxsd: // llvm.x86.sse41.pmaxsd
case Intrinsic::x86_sse41_pmaxud: // llvm.x86.sse41.pmaxud
case Intrinsic::x86_sse41_pminsd: // llvm.x86.sse41.pminsd
case Intrinsic::x86_sse41_pminud: // llvm.x86.sse41.pminud
case Intrinsic::x86_ssse3_phadd_d_128: // llvm.x86.ssse3.phadd.d.128
case Intrinsic::x86_ssse3_phsub_d_128: // llvm.x86.ssse3.phsub.d.128
case Intrinsic::x86_ssse3_psign_d_128: // llvm.x86.ssse3.psign.d.128
case Intrinsic::x86_xop_vpcomeqd: // llvm.x86.xop.vpcomeqd
case Intrinsic::x86_xop_vpcomequd: // llvm.x86.xop.vpcomequd
case Intrinsic::x86_xop_vpcomfalsed: // llvm.x86.xop.vpcomfalsed
case Intrinsic::x86_xop_vpcomfalseud: // llvm.x86.xop.vpcomfalseud
case Intrinsic::x86_xop_vpcomged: // llvm.x86.xop.vpcomged
case Intrinsic::x86_xop_vpcomgeud: // llvm.x86.xop.vpcomgeud
case Intrinsic::x86_xop_vpcomgtd: // llvm.x86.xop.vpcomgtd
case Intrinsic::x86_xop_vpcomgtud: // llvm.x86.xop.vpcomgtud
case Intrinsic::x86_xop_vpcomled: // llvm.x86.xop.vpcomled
case Intrinsic::x86_xop_vpcomleud: // llvm.x86.xop.vpcomleud
case Intrinsic::x86_xop_vpcomltd: // llvm.x86.xop.vpcomltd
case Intrinsic::x86_xop_vpcomltud: // llvm.x86.xop.vpcomltud
case Intrinsic::x86_xop_vpcomned: // llvm.x86.xop.vpcomned
case Intrinsic::x86_xop_vpcomneud: // llvm.x86.xop.vpcomneud
case Intrinsic::x86_xop_vpcomtrued: // llvm.x86.xop.vpcomtrued
case Intrinsic::x86_xop_vpcomtrueud: // llvm.x86.xop.vpcomtrueud
case Intrinsic::x86_xop_vprotd: // llvm.x86.xop.vprotd
case Intrinsic::x86_xop_vpshad: // llvm.x86.xop.vpshad
case Intrinsic::x86_xop_vpshld: // llvm.x86.xop.vpshld
ResultTy = VectorType::get(IntegerType::get(Context, 32), 4);
ArgTys.push_back(VectorType::get(IntegerType::get(Context, 32), 4));
ArgTys.push_back(VectorType::get(IntegerType::get(Context, 32), 4));
break;
case Intrinsic::x86_avx2_pblendd_128: // llvm.x86.avx2.pblendd.128
ResultTy = VectorType::get(IntegerType::get(Context, 32), 4);
ArgTys.push_back(VectorType::get(IntegerType::get(Context, 32), 4));
ArgTys.push_back(VectorType::get(IntegerType::get(Context, 32), 4));
ArgTys.push_back(IntegerType::get(Context, 32));
break;
case Intrinsic::ppc_altivec_vperm: // llvm.ppc.altivec.vperm
ResultTy = VectorType::get(IntegerType::get(Context, 32), 4);
ArgTys.push_back(VectorType::get(IntegerType::get(Context, 32), 4));
ArgTys.push_back(VectorType::get(IntegerType::get(Context, 32), 4));
ArgTys.push_back(VectorType::get(IntegerType::get(Context, 8), 16));
break;
case Intrinsic::ppc_altivec_vsel: // llvm.ppc.altivec.vsel
case Intrinsic::x86_xop_vpmacsdd: // llvm.x86.xop.vpmacsdd
case Intrinsic::x86_xop_vpmacssdd: // llvm.x86.xop.vpmacssdd
ResultTy = VectorType::get(IntegerType::get(Context, 32), 4);
ArgTys.push_back(VectorType::get(IntegerType::get(Context, 32), 4));
ArgTys.push_back(VectorType::get(IntegerType::get(Context, 32), 4));
ArgTys.push_back(VectorType::get(IntegerType::get(Context, 32), 4));
break;
case Intrinsic::spu_si_mpyh: // llvm.spu.si.mpyh
ResultTy = VectorType::get(IntegerType::get(Context, 32), 4);
ArgTys.push_back(VectorType::get(IntegerType::get(Context, 32), 4));
ArgTys.push_back(VectorType::get(IntegerType::get(Context, 16), 8));
break;
case Intrinsic::ppc_altivec_vupkhpx: // llvm.ppc.altivec.vupkhpx
case Intrinsic::ppc_altivec_vupkhsh: // llvm.ppc.altivec.vupkhsh
case Intrinsic::ppc_altivec_vupklpx: // llvm.ppc.altivec.vupklpx
case Intrinsic::ppc_altivec_vupklsh: // llvm.ppc.altivec.vupklsh
case Intrinsic::x86_sse41_pmovsxwd: // llvm.x86.sse41.pmovsxwd
case Intrinsic::x86_sse41_pmovzxwd: // llvm.x86.sse41.pmovzxwd
case Intrinsic::x86_xop_vphadduwd: // llvm.x86.xop.vphadduwd
case Intrinsic::x86_xop_vphaddwd: // llvm.x86.xop.vphaddwd
case Intrinsic::x86_xop_vphsubwd: // llvm.x86.xop.vphsubwd
ResultTy = VectorType::get(IntegerType::get(Context, 32), 4);
ArgTys.push_back(VectorType::get(IntegerType::get(Context, 16), 8));
break;
case Intrinsic::spu_si_mpyi: // llvm.spu.si.mpyi
case Intrinsic::spu_si_mpyui: // llvm.spu.si.mpyui
ResultTy = VectorType::get(IntegerType::get(Context, 32), 4);
ArgTys.push_back(VectorType::get(IntegerType::get(Context, 16), 8));
ArgTys.push_back(IntegerType::get(Context, 16));
break;
case Intrinsic::ppc_altivec_vsum4shs: // llvm.ppc.altivec.vsum4shs
ResultTy = VectorType::get(IntegerType::get(Context, 32), 4);
ArgTys.push_back(VectorType::get(IntegerType::get(Context, 16), 8));
ArgTys.push_back(VectorType::get(IntegerType::get(Context, 32), 4));
break;
case Intrinsic::ppc_altivec_vmulesh: // llvm.ppc.altivec.vmulesh
case Intrinsic::ppc_altivec_vmuleuh: // llvm.ppc.altivec.vmuleuh
case Intrinsic::ppc_altivec_vmulosh: // llvm.ppc.altivec.vmulosh
case Intrinsic::ppc_altivec_vmulouh: // llvm.ppc.altivec.vmulouh
case Intrinsic::spu_si_mpy: // llvm.spu.si.mpy
case Intrinsic::spu_si_mpyhh: // llvm.spu.si.mpyhh
case Intrinsic::spu_si_mpyhha: // llvm.spu.si.mpyhha
case Intrinsic::spu_si_mpyhhau: // llvm.spu.si.mpyhhau
case Intrinsic::spu_si_mpyhhu: // llvm.spu.si.mpyhhu
case Intrinsic::spu_si_mpys: // llvm.spu.si.mpys
case Intrinsic::spu_si_mpyu: // llvm.spu.si.mpyu
case Intrinsic::x86_sse2_pmadd_wd: // llvm.x86.sse2.pmadd.wd
ResultTy = VectorType::get(IntegerType::get(Context, 32), 4);
ArgTys.push_back(VectorType::get(IntegerType::get(Context, 16), 8));
ArgTys.push_back(VectorType::get(IntegerType::get(Context, 16), 8));
break;
case Intrinsic::ppc_altivec_vmsumshm: // llvm.ppc.altivec.vmsumshm
case Intrinsic::ppc_altivec_vmsumshs: // llvm.ppc.altivec.vmsumshs
case Intrinsic::ppc_altivec_vmsumuhm: // llvm.ppc.altivec.vmsumuhm
case Intrinsic::ppc_altivec_vmsumuhs: // llvm.ppc.altivec.vmsumuhs
case Intrinsic::x86_xop_vpmacsswd: // llvm.x86.xop.vpmacsswd
case Intrinsic::x86_xop_vpmacswd: // llvm.x86.xop.vpmacswd
case Intrinsic::x86_xop_vpmadcsswd: // llvm.x86.xop.vpmadcsswd
case Intrinsic::x86_xop_vpmadcswd: // llvm.x86.xop.vpmadcswd
ResultTy = VectorType::get(IntegerType::get(Context, 32), 4);
ArgTys.push_back(VectorType::get(IntegerType::get(Context, 16), 8));
ArgTys.push_back(VectorType::get(IntegerType::get(Context, 16), 8));
ArgTys.push_back(VectorType::get(IntegerType::get(Context, 32), 4));
break;
case Intrinsic::spu_si_mpya: // llvm.spu.si.mpya
ResultTy = VectorType::get(IntegerType::get(Context, 32), 4);
ArgTys.push_back(VectorType::get(IntegerType::get(Context, 16), 8));
ArgTys.push_back(VectorType::get(IntegerType::get(Context, 16), 8));
ArgTys.push_back(VectorType::get(IntegerType::get(Context, 16), 8));
break;
case Intrinsic::x86_avx_vextractf128_si_256: // llvm.x86.avx.vextractf128.si.256
ResultTy = VectorType::get(IntegerType::get(Context, 32), 4);
ArgTys.push_back(VectorType::get(IntegerType::get(Context, 32), 8));
ArgTys.push_back(IntegerType::get(Context, 8));
break;
case Intrinsic::x86_avx2_movntdqa: // llvm.x86.avx2.movntdqa
case Intrinsic::x86_avx2_vbroadcasti128: // llvm.x86.avx2.vbroadcasti128
ResultTy = VectorType::get(IntegerType::get(Context, 64), 4);
ArgTys.push_back(PointerType::getUnqual(IntegerType::get(Context, 8)));
break;
case Intrinsic::x86_avx2_maskload_q_256: // llvm.x86.avx2.maskload.q.256
ResultTy = VectorType::get(IntegerType::get(Context, 64), 4);
ArgTys.push_back(PointerType::getUnqual(IntegerType::get(Context, 8)));
ArgTys.push_back(VectorType::get(IntegerType::get(Context, 64), 4));
break;
case Intrinsic::x86_avx2_pmovsxbq: // llvm.x86.avx2.pmovsxbq
case Intrinsic::x86_avx2_pmovzxbq: // llvm.x86.avx2.pmovzxbq
ResultTy = VectorType::get(IntegerType::get(Context, 64), 4);
ArgTys.push_back(VectorType::get(IntegerType::get(Context, 8), 16));
break;
case Intrinsic::x86_avx2_pbroadcastq_256: // llvm.x86.avx2.pbroadcastq.256
ResultTy = VectorType::get(IntegerType::get(Context, 64), 4);
ArgTys.push_back(VectorType::get(IntegerType::get(Context, 64), 2));
break;
case Intrinsic::x86_avx2_psad_bw: // llvm.x86.avx2.psad.bw
ResultTy = VectorType::get(IntegerType::get(Context, 64), 4);
ArgTys.push_back(VectorType::get(IntegerType::get(Context, 8), 32));
ArgTys.push_back(VectorType::get(IntegerType::get(Context, 8), 32));
break;
case Intrinsic::x86_avx2_pmovsxdq: // llvm.x86.avx2.pmovsxdq
case Intrinsic::x86_avx2_pmovzxdq: // llvm.x86.avx2.pmovzxdq
ResultTy = VectorType::get(IntegerType::get(Context, 64), 4);
ArgTys.push_back(VectorType::get(IntegerType::get(Context, 32), 4));
break;
case Intrinsic::x86_avx2_psll_dq: // llvm.x86.avx2.psll.dq
case Intrinsic::x86_avx2_psll_dq_bs: // llvm.x86.avx2.psll.dq.bs
case Intrinsic::x86_avx2_pslli_q: // llvm.x86.avx2.pslli.q
case Intrinsic::x86_avx2_psrl_dq: // llvm.x86.avx2.psrl.dq
case Intrinsic::x86_avx2_psrl_dq_bs: // llvm.x86.avx2.psrl.dq.bs
case Intrinsic::x86_avx2_psrli_q: // llvm.x86.avx2.psrli.q
ResultTy = VectorType::get(IntegerType::get(Context, 64), 4);
ArgTys.push_back(VectorType::get(IntegerType::get(Context, 64), 4));
ArgTys.push_back(IntegerType::get(Context, 32));
break;
case Intrinsic::x86_avx2_psll_q: // llvm.x86.avx2.psll.q
case Intrinsic::x86_avx2_psrl_q: // llvm.x86.avx2.psrl.q
ResultTy = VectorType::get(IntegerType::get(Context, 64), 4);
ArgTys.push_back(VectorType::get(IntegerType::get(Context, 64), 4));
ArgTys.push_back(VectorType::get(IntegerType::get(Context, 64), 2));
break;
case Intrinsic::x86_avx2_vinserti128: // llvm.x86.avx2.vinserti128
ResultTy = VectorType::get(IntegerType::get(Context, 64), 4);
ArgTys.push_back(VectorType::get(IntegerType::get(Context, 64), 4));
ArgTys.push_back(VectorType::get(IntegerType::get(Context, 64), 2));
ArgTys.push_back(IntegerType::get(Context, 8));
break;
case Intrinsic::x86_avx2_psllv_q_256: // llvm.x86.avx2.psllv.q.256
case Intrinsic::x86_avx2_psrlv_q_256: // llvm.x86.avx2.psrlv.q.256
ResultTy = VectorType::get(IntegerType::get(Context, 64), 4);
ArgTys.push_back(VectorType::get(IntegerType::get(Context, 64), 4));
ArgTys.push_back(VectorType::get(IntegerType::get(Context, 64), 4));
break;
case Intrinsic::x86_avx2_vperm2i128: // llvm.x86.avx2.vperm2i128
ResultTy = VectorType::get(IntegerType::get(Context, 64), 4);
ArgTys.push_back(VectorType::get(IntegerType::get(Context, 64), 4));
ArgTys.push_back(VectorType::get(IntegerType::get(Context, 64), 4));
ArgTys.push_back(IntegerType::get(Context, 8));
break;
case Intrinsic::x86_xop_vpcmov_256: // llvm.x86.xop.vpcmov.256
ResultTy = VectorType::get(IntegerType::get(Context, 64), 4);
ArgTys.push_back(VectorType::get(IntegerType::get(Context, 64), 4));
ArgTys.push_back(VectorType::get(IntegerType::get(Context, 64), 4));
ArgTys.push_back(VectorType::get(IntegerType::get(Context, 64), 4));
break;
case Intrinsic::x86_avx2_pmovsxwq: // llvm.x86.avx2.pmovsxwq
case Intrinsic::x86_avx2_pmovzxwq: // llvm.x86.avx2.pmovzxwq
ResultTy = VectorType::get(IntegerType::get(Context, 64), 4);
ArgTys.push_back(VectorType::get(IntegerType::get(Context, 16), 8));
break;
case Intrinsic::x86_avx2_pmul_dq: // llvm.x86.avx2.pmul.dq
case Intrinsic::x86_avx2_pmulu_dq: // llvm.x86.avx2.pmulu.dq
ResultTy = VectorType::get(IntegerType::get(Context, 64), 4);
ArgTys.push_back(VectorType::get(IntegerType::get(Context, 32), 8));
ArgTys.push_back(VectorType::get(IntegerType::get(Context, 32), 8));
break;
case Intrinsic::x86_avx_vbroadcast_ss_256: // llvm.x86.avx.vbroadcast.ss.256
case Intrinsic::x86_avx_vbroadcastf128_ps_256: // llvm.x86.avx.vbroadcastf128.ps.256
ResultTy = VectorType::get(Type::getFloatTy(Context), 8);
ArgTys.push_back(PointerType::getUnqual(IntegerType::get(Context, 8)));
break;
case Intrinsic::x86_avx_maskload_ps_256: // llvm.x86.avx.maskload.ps.256
ResultTy = VectorType::get(Type::getFloatTy(Context), 8);
ArgTys.push_back(PointerType::getUnqual(IntegerType::get(Context, 8)));
ArgTys.push_back(VectorType::get(Type::getFloatTy(Context), 8));
break;
case Intrinsic::x86_avx2_vbroadcast_ss_ps_256: // llvm.x86.avx2.vbroadcast.ss.ps.256
ResultTy = VectorType::get(Type::getFloatTy(Context), 8);
ArgTys.push_back(VectorType::get(Type::getFloatTy(Context), 4));
break;
case Intrinsic::x86_avx_rcp_ps_256: // llvm.x86.avx.rcp.ps.256
case Intrinsic::x86_avx_rsqrt_ps_256: // llvm.x86.avx.rsqrt.ps.256
case Intrinsic::x86_avx_sqrt_ps_256: // llvm.x86.avx.sqrt.ps.256
case Intrinsic::x86_xop_vfrcz_ps_256: // llvm.x86.xop.vfrcz.ps.256
ResultTy = VectorType::get(Type::getFloatTy(Context), 8);
ArgTys.push_back(VectorType::get(Type::getFloatTy(Context), 8));
break;
case Intrinsic::x86_avx_round_ps_256: // llvm.x86.avx.round.ps.256
ResultTy = VectorType::get(Type::getFloatTy(Context), 8);
ArgTys.push_back(VectorType::get(Type::getFloatTy(Context), 8));
ArgTys.push_back(IntegerType::get(Context, 32));
break;
case Intrinsic::x86_avx_vinsertf128_ps_256: // llvm.x86.avx.vinsertf128.ps.256
ResultTy = VectorType::get(Type::getFloatTy(Context), 8);
ArgTys.push_back(VectorType::get(Type::getFloatTy(Context), 8));
ArgTys.push_back(VectorType::get(Type::getFloatTy(Context), 4));
ArgTys.push_back(IntegerType::get(Context, 8));
break;
case Intrinsic::x86_avx2_permps: // llvm.x86.avx2.permps
case Intrinsic::x86_avx_addsub_ps_256: // llvm.x86.avx.addsub.ps.256
case Intrinsic::x86_avx_hadd_ps_256: // llvm.x86.avx.hadd.ps.256
case Intrinsic::x86_avx_hsub_ps_256: // llvm.x86.avx.hsub.ps.256
case Intrinsic::x86_avx_max_ps_256: // llvm.x86.avx.max.ps.256
case Intrinsic::x86_avx_min_ps_256: // llvm.x86.avx.min.ps.256
ResultTy = VectorType::get(Type::getFloatTy(Context), 8);
ArgTys.push_back(VectorType::get(Type::getFloatTy(Context), 8));
ArgTys.push_back(VectorType::get(Type::getFloatTy(Context), 8));
break;
case Intrinsic::x86_avx_blend_ps_256: // llvm.x86.avx.blend.ps.256
case Intrinsic::x86_avx_dp_ps_256: // llvm.x86.avx.dp.ps.256
ResultTy = VectorType::get(Type::getFloatTy(Context), 8);
ArgTys.push_back(VectorType::get(Type::getFloatTy(Context), 8));
ArgTys.push_back(VectorType::get(Type::getFloatTy(Context), 8));
ArgTys.push_back(IntegerType::get(Context, 32));
break;
case Intrinsic::x86_avx_cmp_ps_256: // llvm.x86.avx.cmp.ps.256
case Intrinsic::x86_avx_vperm2f128_ps_256: // llvm.x86.avx.vperm2f128.ps.256
ResultTy = VectorType::get(Type::getFloatTy(Context), 8);
ArgTys.push_back(VectorType::get(Type::getFloatTy(Context), 8));
ArgTys.push_back(VectorType::get(Type::getFloatTy(Context), 8));
ArgTys.push_back(IntegerType::get(Context, 8));
break;
case Intrinsic::x86_avx_blendv_ps_256: // llvm.x86.avx.blendv.ps.256
case Intrinsic::x86_fma4_vfmadd_ps_256: // llvm.x86.fma4.vfmadd.ps.256
case Intrinsic::x86_fma4_vfmaddsub_ps_256: // llvm.x86.fma4.vfmaddsub.ps.256
case Intrinsic::x86_fma4_vfmsub_ps_256: // llvm.x86.fma4.vfmsub.ps.256
case Intrinsic::x86_fma4_vfmsubadd_ps_256: // llvm.x86.fma4.vfmsubadd.ps.256
case Intrinsic::x86_fma4_vfnmadd_ps_256: // llvm.x86.fma4.vfnmadd.ps.256
case Intrinsic::x86_fma4_vfnmsub_ps_256: // llvm.x86.fma4.vfnmsub.ps.256
ResultTy = VectorType::get(Type::getFloatTy(Context), 8);
ArgTys.push_back(VectorType::get(Type::getFloatTy(Context), 8));
ArgTys.push_back(VectorType::get(Type::getFloatTy(Context), 8));
ArgTys.push_back(VectorType::get(Type::getFloatTy(Context), 8));
break;
case Intrinsic::x86_xop_vpermil2ps_256: // llvm.x86.xop.vpermil2ps.256
ResultTy = VectorType::get(Type::getFloatTy(Context), 8);
ArgTys.push_back(VectorType::get(Type::getFloatTy(Context), 8));
ArgTys.push_back(VectorType::get(Type::getFloatTy(Context), 8));
ArgTys.push_back(VectorType::get(Type::getFloatTy(Context), 8));
ArgTys.push_back(IntegerType::get(Context, 8));
break;
case Intrinsic::x86_avx_vpermilvar_ps_256: // llvm.x86.avx.vpermilvar.ps.256
ResultTy = VectorType::get(Type::getFloatTy(Context), 8);
ArgTys.push_back(VectorType::get(Type::getFloatTy(Context), 8));
ArgTys.push_back(VectorType::get(IntegerType::get(Context, 32), 8));
break;
case Intrinsic::x86_vcvtph2ps_256: // llvm.x86.vcvtph2ps.256
ResultTy = VectorType::get(Type::getFloatTy(Context), 8);
ArgTys.push_back(VectorType::get(IntegerType::get(Context, 16), 8));
break;
case Intrinsic::x86_avx_cvtdq2_ps_256: // llvm.x86.avx.cvtdq2.ps.256
ResultTy = VectorType::get(Type::getFloatTy(Context), 8);
ArgTys.push_back(VectorType::get(IntegerType::get(Context, 32), 8));
break;
case Intrinsic::ppc_altivec_mfvscr: // llvm.ppc.altivec.mfvscr
ResultTy = VectorType::get(IntegerType::get(Context, 16), 8);
break;
case Intrinsic::ppc_altivec_lvehx: // llvm.ppc.altivec.lvehx
ResultTy = VectorType::get(IntegerType::get(Context, 16), 8);
ArgTys.push_back(PointerType::getUnqual(IntegerType::get(Context, 8)));
break;
case Intrinsic::ppc_altivec_vupkhsb: // llvm.ppc.altivec.vupkhsb
case Intrinsic::ppc_altivec_vupklsb: // llvm.ppc.altivec.vupklsb
case Intrinsic::x86_sse41_pmovsxbw: // llvm.x86.sse41.pmovsxbw
case Intrinsic::x86_sse41_pmovzxbw: // llvm.x86.sse41.pmovzxbw
case Intrinsic::x86_xop_vphaddbw: // llvm.x86.xop.vphaddbw
case Intrinsic::x86_xop_vphaddubw: // llvm.x86.xop.vphaddubw
case Intrinsic::x86_xop_vphsubbw: // llvm.x86.xop.vphsubbw
ResultTy = VectorType::get(IntegerType::get(Context, 16), 8);
ArgTys.push_back(VectorType::get(IntegerType::get(Context, 8), 16));
break;
case Intrinsic::ppc_altivec_vmulesb: // llvm.ppc.altivec.vmulesb
case Intrinsic::ppc_altivec_vmuleub: // llvm.ppc.altivec.vmuleub
case Intrinsic::ppc_altivec_vmulosb: // llvm.ppc.altivec.vmulosb
case Intrinsic::ppc_altivec_vmuloub: // llvm.ppc.altivec.vmuloub
case Intrinsic::x86_ssse3_pmadd_ub_sw_128: // llvm.x86.ssse3.pmadd.ub.sw.128
ResultTy = VectorType::get(IntegerType::get(Context, 16), 8);
ArgTys.push_back(VectorType::get(IntegerType::get(Context, 8), 16));
ArgTys.push_back(VectorType::get(IntegerType::get(Context, 8), 16));
break;
case Intrinsic::x86_sse41_mpsadbw: // llvm.x86.sse41.mpsadbw
ResultTy = VectorType::get(IntegerType::get(Context, 16), 8);
ArgTys.push_back(VectorType::get(IntegerType::get(Context, 8), 16));
ArgTys.push_back(VectorType::get(IntegerType::get(Context, 8), 16));
ArgTys.push_back(IntegerType::get(Context, 32));
break;
case Intrinsic::x86_vcvtps2ph_128: // llvm.x86.vcvtps2ph.128
ResultTy = VectorType::get(IntegerType::get(Context, 16), 8);
ArgTys.push_back(VectorType::get(Type::getFloatTy(Context), 4));
ArgTys.push_back(IntegerType::get(Context, 32));
break;
case Intrinsic::ppc_altivec_vpkpx: // llvm.ppc.altivec.vpkpx
case Intrinsic::ppc_altivec_vpkswus: // llvm.ppc.altivec.vpkswus
case Intrinsic::ppc_altivec_vpkuwus: // llvm.ppc.altivec.vpkuwus
case Intrinsic::x86_sse2_packssdw_128: // llvm.x86.sse2.packssdw.128
case Intrinsic::x86_sse41_packusdw: // llvm.x86.sse41.packusdw
ResultTy = VectorType::get(IntegerType::get(Context, 16), 8);
ArgTys.push_back(VectorType::get(IntegerType::get(Context, 32), 4));
ArgTys.push_back(VectorType::get(IntegerType::get(Context, 32), 4));
break;
case Intrinsic::x86_vcvtps2ph_256: // llvm.x86.vcvtps2ph.256
ResultTy = VectorType::get(IntegerType::get(Context, 16), 8);
ArgTys.push_back(VectorType::get(Type::getFloatTy(Context), 8));
ArgTys.push_back(IntegerType::get(Context, 32));
break;
case Intrinsic::x86_avx2_pbroadcastw_128: // llvm.x86.avx2.pbroadcastw.128
case Intrinsic::x86_sse41_phminposuw: // llvm.x86.sse41.phminposuw
case Intrinsic::x86_ssse3_pabs_w_128: // llvm.x86.ssse3.pabs.w.128
ResultTy = VectorType::get(IntegerType::get(Context, 16), 8);
ArgTys.push_back(VectorType::get(IntegerType::get(Context, 16), 8));
break;
case Intrinsic::spu_si_ahi: // llvm.spu.si.ahi
case Intrinsic::spu_si_andhi: // llvm.spu.si.andhi
case Intrinsic::spu_si_ceqhi: // llvm.spu.si.ceqhi
case Intrinsic::spu_si_cgthi: // llvm.spu.si.cgthi
case Intrinsic::spu_si_clgthi: // llvm.spu.si.clgthi
case Intrinsic::spu_si_fsmbi: // llvm.spu.si.fsmbi
case Intrinsic::spu_si_orhi: // llvm.spu.si.orhi
case Intrinsic::spu_si_sfhi: // llvm.spu.si.sfhi
case Intrinsic::spu_si_xorhi: // llvm.spu.si.xorhi
ResultTy = VectorType::get(IntegerType::get(Context, 16), 8);
ArgTys.push_back(VectorType::get(IntegerType::get(Context, 16), 8));
ArgTys.push_back(IntegerType::get(Context, 16));
break;
case Intrinsic::spu_si_shlqbi: // llvm.spu.si.shlqbi
case Intrinsic::spu_si_shlqby: // llvm.spu.si.shlqby
case Intrinsic::x86_sse2_pslli_w: // llvm.x86.sse2.pslli.w
case Intrinsic::x86_sse2_psrai_w: // llvm.x86.sse2.psrai.w
case Intrinsic::x86_sse2_psrli_w: // llvm.x86.sse2.psrli.w
ResultTy = VectorType::get(IntegerType::get(Context, 16), 8);
ArgTys.push_back(VectorType::get(IntegerType::get(Context, 16), 8));
ArgTys.push_back(IntegerType::get(Context, 32));
break;
case Intrinsic::ppc_altivec_vaddshs: // llvm.ppc.altivec.vaddshs
case Intrinsic::ppc_altivec_vadduhs: // llvm.ppc.altivec.vadduhs
case Intrinsic::ppc_altivec_vavgsh: // llvm.ppc.altivec.vavgsh
case Intrinsic::ppc_altivec_vavguh: // llvm.ppc.altivec.vavguh
case Intrinsic::ppc_altivec_vcmpequh: // llvm.ppc.altivec.vcmpequh
case Intrinsic::ppc_altivec_vcmpgtsh: // llvm.ppc.altivec.vcmpgtsh
case Intrinsic::ppc_altivec_vcmpgtuh: // llvm.ppc.altivec.vcmpgtuh
case Intrinsic::ppc_altivec_vmaxsh: // llvm.ppc.altivec.vmaxsh
case Intrinsic::ppc_altivec_vmaxuh: // llvm.ppc.altivec.vmaxuh
case Intrinsic::ppc_altivec_vminsh: // llvm.ppc.altivec.vminsh
case Intrinsic::ppc_altivec_vminuh: // llvm.ppc.altivec.vminuh
case Intrinsic::ppc_altivec_vrlh: // llvm.ppc.altivec.vrlh
case Intrinsic::ppc_altivec_vslh: // llvm.ppc.altivec.vslh
case Intrinsic::ppc_altivec_vsrah: // llvm.ppc.altivec.vsrah
case Intrinsic::ppc_altivec_vsrh: // llvm.ppc.altivec.vsrh
case Intrinsic::ppc_altivec_vsubshs: // llvm.ppc.altivec.vsubshs
case Intrinsic::ppc_altivec_vsubuhs: // llvm.ppc.altivec.vsubuhs
case Intrinsic::spu_si_ah: // llvm.spu.si.ah
case Intrinsic::spu_si_ceqh: // llvm.spu.si.ceqh
case Intrinsic::spu_si_cgth: // llvm.spu.si.cgth
case Intrinsic::spu_si_clgth: // llvm.spu.si.clgth
case Intrinsic::spu_si_sfh: // llvm.spu.si.sfh
case Intrinsic::x86_sse2_padds_w: // llvm.x86.sse2.padds.w
case Intrinsic::x86_sse2_paddus_w: // llvm.x86.sse2.paddus.w
case Intrinsic::x86_sse2_pavg_w: // llvm.x86.sse2.pavg.w
case Intrinsic::x86_sse2_pmaxs_w: // llvm.x86.sse2.pmaxs.w
case Intrinsic::x86_sse2_pmins_w: // llvm.x86.sse2.pmins.w
case Intrinsic::x86_sse2_pmulh_w: // llvm.x86.sse2.pmulh.w
case Intrinsic::x86_sse2_pmulhu_w: // llvm.x86.sse2.pmulhu.w
case Intrinsic::x86_sse2_psll_w: // llvm.x86.sse2.psll.w
case Intrinsic::x86_sse2_psra_w: // llvm.x86.sse2.psra.w
case Intrinsic::x86_sse2_psrl_w: // llvm.x86.sse2.psrl.w
case Intrinsic::x86_sse2_psubs_w: // llvm.x86.sse2.psubs.w
case Intrinsic::x86_sse2_psubus_w: // llvm.x86.sse2.psubus.w
case Intrinsic::x86_sse41_pmaxuw: // llvm.x86.sse41.pmaxuw
case Intrinsic::x86_sse41_pminuw: // llvm.x86.sse41.pminuw
case Intrinsic::x86_ssse3_phadd_sw_128: // llvm.x86.ssse3.phadd.sw.128
case Intrinsic::x86_ssse3_phadd_w_128: // llvm.x86.ssse3.phadd.w.128
case Intrinsic::x86_ssse3_phsub_sw_128: // llvm.x86.ssse3.phsub.sw.128
case Intrinsic::x86_ssse3_phsub_w_128: // llvm.x86.ssse3.phsub.w.128
case Intrinsic::x86_ssse3_pmul_hr_sw_128: // llvm.x86.ssse3.pmul.hr.sw.128
case Intrinsic::x86_ssse3_psign_w_128: // llvm.x86.ssse3.psign.w.128
case Intrinsic::x86_xop_vpcomequw: // llvm.x86.xop.vpcomequw
case Intrinsic::x86_xop_vpcomeqw: // llvm.x86.xop.vpcomeqw
case Intrinsic::x86_xop_vpcomfalseuw: // llvm.x86.xop.vpcomfalseuw
case Intrinsic::x86_xop_vpcomfalsew: // llvm.x86.xop.vpcomfalsew
case Intrinsic::x86_xop_vpcomgeuw: // llvm.x86.xop.vpcomgeuw
case Intrinsic::x86_xop_vpcomgew: // llvm.x86.xop.vpcomgew
case Intrinsic::x86_xop_vpcomgtuw: // llvm.x86.xop.vpcomgtuw
case Intrinsic::x86_xop_vpcomgtw: // llvm.x86.xop.vpcomgtw
case Intrinsic::x86_xop_vpcomleuw: // llvm.x86.xop.vpcomleuw
case Intrinsic::x86_xop_vpcomlew: // llvm.x86.xop.vpcomlew
case Intrinsic::x86_xop_vpcomltuw: // llvm.x86.xop.vpcomltuw
case Intrinsic::x86_xop_vpcomltw: // llvm.x86.xop.vpcomltw
case Intrinsic::x86_xop_vpcomneuw: // llvm.x86.xop.vpcomneuw
case Intrinsic::x86_xop_vpcomnew: // llvm.x86.xop.vpcomnew
case Intrinsic::x86_xop_vpcomtrueuw: // llvm.x86.xop.vpcomtrueuw
case Intrinsic::x86_xop_vpcomtruew: // llvm.x86.xop.vpcomtruew
case Intrinsic::x86_xop_vprotw: // llvm.x86.xop.vprotw
case Intrinsic::x86_xop_vpshaw: // llvm.x86.xop.vpshaw
case Intrinsic::x86_xop_vpshlw: // llvm.x86.xop.vpshlw
ResultTy = VectorType::get(IntegerType::get(Context, 16), 8);
ArgTys.push_back(VectorType::get(IntegerType::get(Context, 16), 8));
ArgTys.push_back(VectorType::get(IntegerType::get(Context, 16), 8));
break;
case Intrinsic::x86_sse41_pblendw: // llvm.x86.sse41.pblendw
ResultTy = VectorType::get(IntegerType::get(Context, 16), 8);
ArgTys.push_back(VectorType::get(IntegerType::get(Context, 16), 8));
ArgTys.push_back(VectorType::get(IntegerType::get(Context, 16), 8));
ArgTys.push_back(IntegerType::get(Context, 32));
break;
case Intrinsic::ppc_altivec_vmhaddshs: // llvm.ppc.altivec.vmhaddshs
case Intrinsic::ppc_altivec_vmhraddshs: // llvm.ppc.altivec.vmhraddshs
case Intrinsic::ppc_altivec_vmladduhm: // llvm.ppc.altivec.vmladduhm
case Intrinsic::x86_xop_vpmacssww: // llvm.x86.xop.vpmacssww
case Intrinsic::x86_xop_vpmacsww: // llvm.x86.xop.vpmacsww
ResultTy = VectorType::get(IntegerType::get(Context, 16), 8);
ArgTys.push_back(VectorType::get(IntegerType::get(Context, 16), 8));
ArgTys.push_back(VectorType::get(IntegerType::get(Context, 16), 8));
ArgTys.push_back(VectorType::get(IntegerType::get(Context, 16), 8));
break;
case Intrinsic::x86_avx2_maskload_d_256: // llvm.x86.avx2.maskload.d.256
ResultTy = VectorType::get(IntegerType::get(Context, 32), 8);
ArgTys.push_back(PointerType::getUnqual(IntegerType::get(Context, 8)));
ArgTys.push_back(VectorType::get(IntegerType::get(Context, 32), 8));
break;
case Intrinsic::x86_avx2_pmadd_wd: // llvm.x86.avx2.pmadd.wd
ResultTy = VectorType::get(IntegerType::get(Context, 32), 8);
ArgTys.push_back(VectorType::get(IntegerType::get(Context, 16), 16));
ArgTys.push_back(VectorType::get(IntegerType::get(Context, 16), 16));
break;
case Intrinsic::x86_avx2_pmovsxbd: // llvm.x86.avx2.pmovsxbd
case Intrinsic::x86_avx2_pmovzxbd: // llvm.x86.avx2.pmovzxbd
ResultTy = VectorType::get(IntegerType::get(Context, 32), 8);
ArgTys.push_back(VectorType::get(IntegerType::get(Context, 8), 16));
break;
case Intrinsic::x86_avx2_pbroadcastd_256: // llvm.x86.avx2.pbroadcastd.256
ResultTy = VectorType::get(IntegerType::get(Context, 32), 8);
ArgTys.push_back(VectorType::get(IntegerType::get(Context, 32), 4));
break;
case Intrinsic::x86_avx_cvt_ps2dq_256: // llvm.x86.avx.cvt.ps2dq.256
case Intrinsic::x86_avx_cvtt_ps2dq_256: // llvm.x86.avx.cvtt.ps2dq.256
ResultTy = VectorType::get(IntegerType::get(Context, 32), 8);
ArgTys.push_back(VectorType::get(Type::getFloatTy(Context), 8));
break;
case Intrinsic::x86_avx2_pmovsxwd: // llvm.x86.avx2.pmovsxwd
case Intrinsic::x86_avx2_pmovzxwd: // llvm.x86.avx2.pmovzxwd
ResultTy = VectorType::get(IntegerType::get(Context, 32), 8);
ArgTys.push_back(VectorType::get(IntegerType::get(Context, 16), 8));
break;
case Intrinsic::x86_avx2_pabs_d: // llvm.x86.avx2.pabs.d
ResultTy = VectorType::get(IntegerType::get(Context, 32), 8);
ArgTys.push_back(VectorType::get(IntegerType::get(Context, 32), 8));
break;
case Intrinsic::x86_avx2_pslli_d: // llvm.x86.avx2.pslli.d
case Intrinsic::x86_avx2_psrai_d: // llvm.x86.avx2.psrai.d
case Intrinsic::x86_avx2_psrli_d: // llvm.x86.avx2.psrli.d
ResultTy = VectorType::get(IntegerType::get(Context, 32), 8);
ArgTys.push_back(VectorType::get(IntegerType::get(Context, 32), 8));
ArgTys.push_back(IntegerType::get(Context, 32));
break;
case Intrinsic::x86_avx2_psll_d: // llvm.x86.avx2.psll.d
case Intrinsic::x86_avx2_psra_d: // llvm.x86.avx2.psra.d
case Intrinsic::x86_avx2_psrl_d: // llvm.x86.avx2.psrl.d
ResultTy = VectorType::get(IntegerType::get(Context, 32), 8);
ArgTys.push_back(VectorType::get(IntegerType::get(Context, 32), 8));
ArgTys.push_back(VectorType::get(IntegerType::get(Context, 32), 4));
break;
case Intrinsic::x86_avx_vinsertf128_si_256: // llvm.x86.avx.vinsertf128.si.256
ResultTy = VectorType::get(IntegerType::get(Context, 32), 8);
ArgTys.push_back(VectorType::get(IntegerType::get(Context, 32), 8));
ArgTys.push_back(VectorType::get(IntegerType::get(Context, 32), 4));
ArgTys.push_back(IntegerType::get(Context, 8));
break;
case Intrinsic::x86_avx2_permd: // llvm.x86.avx2.permd
case Intrinsic::x86_avx2_phadd_d: // llvm.x86.avx2.phadd.d
case Intrinsic::x86_avx2_phsub_d: // llvm.x86.avx2.phsub.d
case Intrinsic::x86_avx2_pmaxs_d: // llvm.x86.avx2.pmaxs.d
case Intrinsic::x86_avx2_pmaxu_d: // llvm.x86.avx2.pmaxu.d
case Intrinsic::x86_avx2_pmins_d: // llvm.x86.avx2.pmins.d
case Intrinsic::x86_avx2_pminu_d: // llvm.x86.avx2.pminu.d
case Intrinsic::x86_avx2_psign_d: // llvm.x86.avx2.psign.d
case Intrinsic::x86_avx2_psllv_d_256: // llvm.x86.avx2.psllv.d.256
case Intrinsic::x86_avx2_psrav_d_256: // llvm.x86.avx2.psrav.d.256
case Intrinsic::x86_avx2_psrlv_d_256: // llvm.x86.avx2.psrlv.d.256
ResultTy = VectorType::get(IntegerType::get(Context, 32), 8);
ArgTys.push_back(VectorType::get(IntegerType::get(Context, 32), 8));
ArgTys.push_back(VectorType::get(IntegerType::get(Context, 32), 8));
break;
case Intrinsic::x86_avx2_pblendd_256: // llvm.x86.avx2.pblendd.256
ResultTy = VectorType::get(IntegerType::get(Context, 32), 8);
ArgTys.push_back(VectorType::get(IntegerType::get(Context, 32), 8));
ArgTys.push_back(VectorType::get(IntegerType::get(Context, 32), 8));
ArgTys.push_back(IntegerType::get(Context, 32));
break;
case Intrinsic::x86_avx_vperm2f128_si_256: // llvm.x86.avx.vperm2f128.si.256
ResultTy = VectorType::get(IntegerType::get(Context, 32), 8);
ArgTys.push_back(VectorType::get(IntegerType::get(Context, 32), 8));
ArgTys.push_back(VectorType::get(IntegerType::get(Context, 32), 8));
ArgTys.push_back(IntegerType::get(Context, 8));
break;
case Intrinsic::arm_neon_vtbl1: // llvm.arm.neon.vtbl1
ResultTy = VectorType::get(IntegerType::get(Context, 8), 8);
ArgTys.push_back(VectorType::get(IntegerType::get(Context, 8), 8));
ArgTys.push_back(VectorType::get(IntegerType::get(Context, 8), 8));
break;
case Intrinsic::arm_neon_vtbl2: // llvm.arm.neon.vtbl2
case Intrinsic::arm_neon_vtbx1: // llvm.arm.neon.vtbx1
ResultTy = VectorType::get(IntegerType::get(Context, 8), 8);
ArgTys.push_back(VectorType::get(IntegerType::get(Context, 8), 8));
ArgTys.push_back(VectorType::get(IntegerType::get(Context, 8), 8));
ArgTys.push_back(VectorType::get(IntegerType::get(Context, 8), 8));
break;
case Intrinsic::arm_neon_vtbl3: // llvm.arm.neon.vtbl3
case Intrinsic::arm_neon_vtbx2: // llvm.arm.neon.vtbx2
ResultTy = VectorType::get(IntegerType::get(Context, 8), 8);
ArgTys.push_back(VectorType::get(IntegerType::get(Context, 8), 8));
ArgTys.push_back(VectorType::get(IntegerType::get(Context, 8), 8));
ArgTys.push_back(VectorType::get(IntegerType::get(Context, 8), 8));
ArgTys.push_back(VectorType::get(IntegerType::get(Context, 8), 8));
break;
case Intrinsic::arm_neon_vtbl4: // llvm.arm.neon.vtbl4
case Intrinsic::arm_neon_vtbx3: // llvm.arm.neon.vtbx3
ResultTy = VectorType::get(IntegerType::get(Context, 8), 8);
ArgTys.push_back(VectorType::get(IntegerType::get(Context, 8), 8));
ArgTys.push_back(VectorType::get(IntegerType::get(Context, 8), 8));
ArgTys.push_back(VectorType::get(IntegerType::get(Context, 8), 8));
ArgTys.push_back(VectorType::get(IntegerType::get(Context, 8), 8));
ArgTys.push_back(VectorType::get(IntegerType::get(Context, 8), 8));
break;
case Intrinsic::arm_neon_vtbx4: // llvm.arm.neon.vtbx4
ResultTy = VectorType::get(IntegerType::get(Context, 8), 8);
ArgTys.push_back(VectorType::get(IntegerType::get(Context, 8), 8));
ArgTys.push_back(VectorType::get(IntegerType::get(Context, 8), 8));
ArgTys.push_back(VectorType::get(IntegerType::get(Context, 8), 8));
ArgTys.push_back(VectorType::get(IntegerType::get(Context, 8), 8));
ArgTys.push_back(VectorType::get(IntegerType::get(Context, 8), 8));
ArgTys.push_back(VectorType::get(IntegerType::get(Context, 8), 8));
break;
case Intrinsic::x86_sse_cvtpd2pi: // llvm.x86.sse.cvtpd2pi
case Intrinsic::x86_sse_cvttpd2pi: // llvm.x86.sse.cvttpd2pi
ResultTy = Type::getX86_MMXTy(Context);
ArgTys.push_back(VectorType::get(Type::getDoubleTy(Context), 2));
break;
case Intrinsic::x86_sse_cvtps2pi: // llvm.x86.sse.cvtps2pi
case Intrinsic::x86_sse_cvttps2pi: // llvm.x86.sse.cvttps2pi
ResultTy = Type::getX86_MMXTy(Context);
ArgTys.push_back(VectorType::get(Type::getFloatTy(Context), 4));
break;
case Intrinsic::x86_3dnow_pf2id: // llvm.x86.3dnow.pf2id
case Intrinsic::x86_3dnow_pfrcp: // llvm.x86.3dnow.pfrcp
case Intrinsic::x86_3dnow_pfrsqrt: // llvm.x86.3dnow.pfrsqrt
case Intrinsic::x86_3dnow_pi2fd: // llvm.x86.3dnow.pi2fd
case Intrinsic::x86_3dnowa_pf2iw: // llvm.x86.3dnowa.pf2iw
case Intrinsic::x86_3dnowa_pi2fw: // llvm.x86.3dnowa.pi2fw
case Intrinsic::x86_3dnowa_pswapd: // llvm.x86.3dnowa.pswapd
case Intrinsic::x86_ssse3_pabs_b: // llvm.x86.ssse3.pabs.b
case Intrinsic::x86_ssse3_pabs_d: // llvm.x86.ssse3.pabs.d
case Intrinsic::x86_ssse3_pabs_w: // llvm.x86.ssse3.pabs.w
ResultTy = Type::getX86_MMXTy(Context);
ArgTys.push_back(Type::getX86_MMXTy(Context));
break;
case Intrinsic::x86_mmx_pslli_d: // llvm.x86.mmx.pslli.d
case Intrinsic::x86_mmx_pslli_q: // llvm.x86.mmx.pslli.q
case Intrinsic::x86_mmx_pslli_w: // llvm.x86.mmx.pslli.w
case Intrinsic::x86_mmx_psrai_d: // llvm.x86.mmx.psrai.d
case Intrinsic::x86_mmx_psrai_w: // llvm.x86.mmx.psrai.w
case Intrinsic::x86_mmx_psrli_d: // llvm.x86.mmx.psrli.d
case Intrinsic::x86_mmx_psrli_q: // llvm.x86.mmx.psrli.q
case Intrinsic::x86_mmx_psrli_w: // llvm.x86.mmx.psrli.w
ResultTy = Type::getX86_MMXTy(Context);
ArgTys.push_back(Type::getX86_MMXTy(Context));
ArgTys.push_back(IntegerType::get(Context, 32));
break;
case Intrinsic::x86_mmx_pinsr_w: // llvm.x86.mmx.pinsr.w
ResultTy = Type::getX86_MMXTy(Context);
ArgTys.push_back(Type::getX86_MMXTy(Context));
ArgTys.push_back(IntegerType::get(Context, 32));
ArgTys.push_back(IntegerType::get(Context, 32));
break;
case Intrinsic::x86_sse_pshuf_w: // llvm.x86.sse.pshuf.w
ResultTy = Type::getX86_MMXTy(Context);
ArgTys.push_back(Type::getX86_MMXTy(Context));
ArgTys.push_back(IntegerType::get(Context, 8));
break;
case Intrinsic::x86_3dnow_pavgusb: // llvm.x86.3dnow.pavgusb
case Intrinsic::x86_3dnow_pfacc: // llvm.x86.3dnow.pfacc
case Intrinsic::x86_3dnow_pfadd: // llvm.x86.3dnow.pfadd
case Intrinsic::x86_3dnow_pfcmpeq: // llvm.x86.3dnow.pfcmpeq
case Intrinsic::x86_3dnow_pfcmpge: // llvm.x86.3dnow.pfcmpge
case Intrinsic::x86_3dnow_pfcmpgt: // llvm.x86.3dnow.pfcmpgt
case Intrinsic::x86_3dnow_pfmax: // llvm.x86.3dnow.pfmax
case Intrinsic::x86_3dnow_pfmin: // llvm.x86.3dnow.pfmin
case Intrinsic::x86_3dnow_pfmul: // llvm.x86.3dnow.pfmul
case Intrinsic::x86_3dnow_pfrcpit1: // llvm.x86.3dnow.pfrcpit1
case Intrinsic::x86_3dnow_pfrcpit2: // llvm.x86.3dnow.pfrcpit2
case Intrinsic::x86_3dnow_pfrsqit1: // llvm.x86.3dnow.pfrsqit1
case Intrinsic::x86_3dnow_pfsub: // llvm.x86.3dnow.pfsub
case Intrinsic::x86_3dnow_pfsubr: // llvm.x86.3dnow.pfsubr
case Intrinsic::x86_3dnow_pmulhrw: // llvm.x86.3dnow.pmulhrw
case Intrinsic::x86_3dnowa_pfnacc: // llvm.x86.3dnowa.pfnacc
case Intrinsic::x86_3dnowa_pfpnacc: // llvm.x86.3dnowa.pfpnacc
case Intrinsic::x86_mmx_packssdw: // llvm.x86.mmx.packssdw
case Intrinsic::x86_mmx_packsswb: // llvm.x86.mmx.packsswb
case Intrinsic::x86_mmx_packuswb: // llvm.x86.mmx.packuswb
case Intrinsic::x86_mmx_padd_b: // llvm.x86.mmx.padd.b
case Intrinsic::x86_mmx_padd_d: // llvm.x86.mmx.padd.d
case Intrinsic::x86_mmx_padd_q: // llvm.x86.mmx.padd.q
case Intrinsic::x86_mmx_padd_w: // llvm.x86.mmx.padd.w
case Intrinsic::x86_mmx_padds_b: // llvm.x86.mmx.padds.b
case Intrinsic::x86_mmx_padds_w: // llvm.x86.mmx.padds.w
case Intrinsic::x86_mmx_paddus_b: // llvm.x86.mmx.paddus.b
case Intrinsic::x86_mmx_paddus_w: // llvm.x86.mmx.paddus.w
case Intrinsic::x86_mmx_pand: // llvm.x86.mmx.pand
case Intrinsic::x86_mmx_pandn: // llvm.x86.mmx.pandn
case Intrinsic::x86_mmx_pavg_b: // llvm.x86.mmx.pavg.b
case Intrinsic::x86_mmx_pavg_w: // llvm.x86.mmx.pavg.w
case Intrinsic::x86_mmx_pcmpeq_b: // llvm.x86.mmx.pcmpeq.b
case Intrinsic::x86_mmx_pcmpeq_d: // llvm.x86.mmx.pcmpeq.d
case Intrinsic::x86_mmx_pcmpeq_w: // llvm.x86.mmx.pcmpeq.w
case Intrinsic::x86_mmx_pcmpgt_b: // llvm.x86.mmx.pcmpgt.b
case Intrinsic::x86_mmx_pcmpgt_d: // llvm.x86.mmx.pcmpgt.d
case Intrinsic::x86_mmx_pcmpgt_w: // llvm.x86.mmx.pcmpgt.w
case Intrinsic::x86_mmx_pmadd_wd: // llvm.x86.mmx.pmadd.wd
case Intrinsic::x86_mmx_pmaxs_w: // llvm.x86.mmx.pmaxs.w
case Intrinsic::x86_mmx_pmaxu_b: // llvm.x86.mmx.pmaxu.b
case Intrinsic::x86_mmx_pmins_w: // llvm.x86.mmx.pmins.w
case Intrinsic::x86_mmx_pminu_b: // llvm.x86.mmx.pminu.b
case Intrinsic::x86_mmx_pmulh_w: // llvm.x86.mmx.pmulh.w
case Intrinsic::x86_mmx_pmulhu_w: // llvm.x86.mmx.pmulhu.w
case Intrinsic::x86_mmx_pmull_w: // llvm.x86.mmx.pmull.w
case Intrinsic::x86_mmx_pmulu_dq: // llvm.x86.mmx.pmulu.dq
case Intrinsic::x86_mmx_por: // llvm.x86.mmx.por
case Intrinsic::x86_mmx_psad_bw: // llvm.x86.mmx.psad.bw
case Intrinsic::x86_mmx_psll_d: // llvm.x86.mmx.psll.d
case Intrinsic::x86_mmx_psll_q: // llvm.x86.mmx.psll.q
case Intrinsic::x86_mmx_psll_w: // llvm.x86.mmx.psll.w
case Intrinsic::x86_mmx_psra_d: // llvm.x86.mmx.psra.d
case Intrinsic::x86_mmx_psra_w: // llvm.x86.mmx.psra.w
case Intrinsic::x86_mmx_psrl_d: // llvm.x86.mmx.psrl.d
case Intrinsic::x86_mmx_psrl_q: // llvm.x86.mmx.psrl.q
case Intrinsic::x86_mmx_psrl_w: // llvm.x86.mmx.psrl.w
case Intrinsic::x86_mmx_psub_b: // llvm.x86.mmx.psub.b
case Intrinsic::x86_mmx_psub_d: // llvm.x86.mmx.psub.d
case Intrinsic::x86_mmx_psub_q: // llvm.x86.mmx.psub.q
case Intrinsic::x86_mmx_psub_w: // llvm.x86.mmx.psub.w
case Intrinsic::x86_mmx_psubs_b: // llvm.x86.mmx.psubs.b
case Intrinsic::x86_mmx_psubs_w: // llvm.x86.mmx.psubs.w
case Intrinsic::x86_mmx_psubus_b: // llvm.x86.mmx.psubus.b
case Intrinsic::x86_mmx_psubus_w: // llvm.x86.mmx.psubus.w
case Intrinsic::x86_mmx_punpckhbw: // llvm.x86.mmx.punpckhbw
case Intrinsic::x86_mmx_punpckhdq: // llvm.x86.mmx.punpckhdq
case Intrinsic::x86_mmx_punpckhwd: // llvm.x86.mmx.punpckhwd
case Intrinsic::x86_mmx_punpcklbw: // llvm.x86.mmx.punpcklbw
case Intrinsic::x86_mmx_punpckldq: // llvm.x86.mmx.punpckldq
case Intrinsic::x86_mmx_punpcklwd: // llvm.x86.mmx.punpcklwd
case Intrinsic::x86_mmx_pxor: // llvm.x86.mmx.pxor
case Intrinsic::x86_ssse3_phadd_d: // llvm.x86.ssse3.phadd.d
case Intrinsic::x86_ssse3_phadd_sw: // llvm.x86.ssse3.phadd.sw
case Intrinsic::x86_ssse3_phadd_w: // llvm.x86.ssse3.phadd.w
case Intrinsic::x86_ssse3_phsub_d: // llvm.x86.ssse3.phsub.d
case Intrinsic::x86_ssse3_phsub_sw: // llvm.x86.ssse3.phsub.sw
case Intrinsic::x86_ssse3_phsub_w: // llvm.x86.ssse3.phsub.w
case Intrinsic::x86_ssse3_pmadd_ub_sw: // llvm.x86.ssse3.pmadd.ub.sw
case Intrinsic::x86_ssse3_pmul_hr_sw: // llvm.x86.ssse3.pmul.hr.sw
case Intrinsic::x86_ssse3_pshuf_b: // llvm.x86.ssse3.pshuf.b
case Intrinsic::x86_ssse3_psign_b: // llvm.x86.ssse3.psign.b
case Intrinsic::x86_ssse3_psign_d: // llvm.x86.ssse3.psign.d
case Intrinsic::x86_ssse3_psign_w: // llvm.x86.ssse3.psign.w
ResultTy = Type::getX86_MMXTy(Context);
ArgTys.push_back(Type::getX86_MMXTy(Context));
ArgTys.push_back(Type::getX86_MMXTy(Context));
break;
case Intrinsic::x86_mmx_palignr_b: // llvm.x86.mmx.palignr.b
ResultTy = Type::getX86_MMXTy(Context);
ArgTys.push_back(Type::getX86_MMXTy(Context));
ArgTys.push_back(Type::getX86_MMXTy(Context));
ArgTys.push_back(IntegerType::get(Context, 8));
break;
}
#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.CNOT
1, // llvm.Fredkin
1, // llvm.H
1, // llvm.MeasX
1, // llvm.MeasZ
1, // llvm.rkqc.NOT
1, // llvm.PrepX
1, // llvm.PrepZ
1, // llvm.Rx
1, // llvm.Ry
1, // llvm.Rz
1, // llvm.S
1, // llvm.Sdag
1, // llvm.T
1, // llvm.Tdag
1, // llvm.Toffoli
1, // llvm.X
1, // llvm.Y
1, // llvm.Z
1, // llvm.rkqc.a_eq_a_minus_b
1, // llvm.rkqc.a_eq_a_plus_b
1, // llvm.rkqc.a_eq_a_plus_b_times_c
1, // llvm.rkqc.a_swap_b
2, // llvm.adjust.trampoline
1, // llvm.annotation
1, // llvm.arm.cdp
1, // llvm.arm.cdp2
3, // llvm.arm.get.fpscr
2, // llvm.arm.ldrexd
1, // llvm.arm.mcr
1, // llvm.arm.mcr2
1, // llvm.arm.mcrr
1, // llvm.arm.mcrr2
1, // llvm.arm.mrc
1, // 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.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
2, // llvm.arm.neon.vld1
2, // llvm.arm.neon.vld2
2, // llvm.arm.neon.vld2lane
2, // llvm.arm.neon.vld3
2, // llvm.arm.neon.vld3lane
2, // llvm.arm.neon.vld4
2, // 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
1, // llvm.arm.neon.vst1
1, // llvm.arm.neon.vst2
1, // llvm.arm.neon.vst2lane
1, // llvm.arm.neon.vst3
1, // llvm.arm.neon.vst3lane
1, // llvm.arm.neon.vst4
1, // 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
1, // llvm.arm.set.fpscr
3, // llvm.arm.ssat
1, // llvm.arm.strexd
3, // llvm.arm.thread.pointer
3, // llvm.arm.usat
3, // llvm.arm.vcvtr
3, // llvm.arm.vcvtru
1, // llvm.rkqc.assign_value_of_0_to_a
1, // llvm.rkqc.assign_value_of_1_to_a
1, // llvm.rkqc.assign_value_of_b_to_a
3, // llvm.bswap
1, // llvm.rkqc.cnot
3, // llvm.convert.from.fp16
3, // llvm.convert.to.fp16
1, // llvm.convertff
1, // llvm.convertfsi
1, // llvm.convertfui
1, // llvm.convertsif
1, // llvm.convertss
1, // llvm.convertsu
1, // llvm.convertuif
1, // llvm.convertus
1, // llvm.convertuu
2, // llvm.cos
3, // llvm.ctlz
3, // llvm.ctpop
3, // llvm.cttz
3, // llvm.dbg.declare
3, // llvm.dbg.value
1, // llvm.eh.dwarf.cfa
1, // llvm.eh.return.i32
1, // llvm.eh.return.i64
3, // llvm.eh.sjlj.callsite
1, // llvm.eh.sjlj.functioncontext
1, // llvm.eh.sjlj.longjmp
3, // llvm.eh.sjlj.lsda
1, // llvm.eh.sjlj.setjmp
3, // llvm.eh.typeid.for
1, // llvm.eh.unwind.init
2, // llvm.exp
2, // llvm.exp2
3, // llvm.expect
1, // llvm.flt.rounds
3, // llvm.fma
3, // llvm.frameaddress
2, // llvm.gcread
1, // 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.hh
3, // llvm.hexagon.A2.addh.l16.hl
3, // llvm.hexagon.A2.addh.l16.lh
3, // llvm.hexagon.A2.addh.l16.ll
3, // llvm.hexagon.A2.addh.l16.sat.hh
3, // llvm.hexagon.A2.addh.l16.sat.hl
3, // llvm.hexagon.A2.addh.l16.sat.lh
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.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.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.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.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.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.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.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.or.and
3, // llvm.hexagon.C4.or.andn
3, // llvm.hexagon.C4.or.or
3, // llvm.hexagon.C4.or.orn
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.hmmpyl.rs1
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.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.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.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.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.or.and
3, // llvm.hexagon.M4.or.andn
3, // llvm.hexagon.M4.or.or
3, // llvm.hexagon.M4.or.xor
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.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.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.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.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.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.ct1
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.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.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.vcrotate
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.andnp
3, // llvm.hexagon.S4.or.andi
3, // llvm.hexagon.S4.or.andix
3, // llvm.hexagon.S4.or.ori
3, // llvm.hexagon.S4.ornp
3, // llvm.hexagon.S4.subaddi
3, // llvm.hexagon.SI.to.SXTHI.asrh
5, // llvm.init.trampoline
6, // llvm.invariant.end
7, // llvm.invariant.start
7, // llvm.lifetime.end
7, // llvm.lifetime.start
2, // llvm.log
2, // llvm.log10
2, // llvm.log2
1, // llvm.longjmp
8, // llvm.memcpy
8, // llvm.memmove
5, // llvm.memset
3, // llvm.objectsize
1, // llvm.pcmarker
2, // llvm.pow
2, // llvm.powi
1, // llvm.ppc.altivec.dss
1, // llvm.ppc.altivec.dssall
1, // llvm.ppc.altivec.dst
1, // llvm.ppc.altivec.dstst
1, // llvm.ppc.altivec.dststt
1, // llvm.ppc.altivec.dstt
2, // llvm.ppc.altivec.lvebx
2, // llvm.ppc.altivec.lvehx
2, // llvm.ppc.altivec.lvewx
3, // llvm.ppc.altivec.lvsl
3, // llvm.ppc.altivec.lvsr
2, // llvm.ppc.altivec.lvx
2, // llvm.ppc.altivec.lvxl
2, // llvm.ppc.altivec.mfvscr
1, // llvm.ppc.altivec.mtvscr
1, // llvm.ppc.altivec.stvebx
1, // llvm.ppc.altivec.stvehx
1, // llvm.ppc.altivec.stvewx
1, // llvm.ppc.altivec.stvx
1, // 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
1, // llvm.ppc.dcba
1, // llvm.ppc.dcbf
1, // llvm.ppc.dcbi
1, // llvm.ppc.dcbst
1, // llvm.ppc.dcbt
1, // llvm.ppc.dcbtst
1, // llvm.ppc.dcbz
1, // llvm.ppc.dcbzl
1, // llvm.ppc.sync
5, // llvm.prefetch
1, // llvm.ptr.annotation
1, // 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
1, // llvm.readcyclecounter
3, // llvm.returnaddress
3, // llvm.sadd.with.overflow
1, // llvm.setjmp
1, // llvm.siglongjmp
1, // llvm.sigsetjmp
2, // 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
2, // llvm.sqrt
3, // llvm.ssub.with.overflow
1, // llvm.stackprotector
1, // llvm.stackrestore
1, // llvm.stacksave
1, // llvm.rkqc.toffoli
1, // llvm.trap
3, // llvm.uadd.with.overflow
3, // llvm.umul.with.overflow
3, // llvm.usub.with.overflow
1, // llvm.va_copy
1, // llvm.va_end
1, // llvm.var.annotation
1, // 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
2, // llvm.x86.avx2.maskload.d
2, // llvm.x86.avx2.maskload.d.256
2, // llvm.x86.avx2.maskload.q
2, // llvm.x86.avx2.maskload.q.256
1, // llvm.x86.avx2.maskstore.d
1, // llvm.x86.avx2.maskstore.d.256
1, // llvm.x86.avx2.maskstore.q
1, // llvm.x86.avx2.maskstore.q.256
2, // 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
2, // 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
2, // llvm.x86.avx.ldu.dq.256
2, // llvm.x86.avx.maskload.pd
2, // llvm.x86.avx.maskload.pd.256
2, // llvm.x86.avx.maskload.ps
2, // llvm.x86.avx.maskload.ps.256
1, // llvm.x86.avx.maskstore.pd
1, // llvm.x86.avx.maskstore.pd.256
1, // llvm.x86.avx.maskstore.ps
1, // 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
1, // llvm.x86.avx.movnt.dq.256
1, // llvm.x86.avx.movnt.pd.256
1, // llvm.x86.avx.movnt.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
1, // llvm.x86.avx.storeu.dq.256
1, // llvm.x86.avx.storeu.pd.256
1, // llvm.x86.avx.storeu.ps.256
2, // llvm.x86.avx.vbroadcast.sd.256
2, // llvm.x86.avx.vbroadcast.ss
2, // llvm.x86.avx.vbroadcast.ss.256
2, // llvm.x86.avx.vbroadcastf128.pd.256
2, // 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
1, // llvm.x86.avx.vzeroall
1, // 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.fma4.vfmadd.pd
3, // llvm.x86.fma4.vfmadd.pd.256
3, // llvm.x86.fma4.vfmadd.ps
3, // llvm.x86.fma4.vfmadd.ps.256
3, // llvm.x86.fma4.vfmadd.sd
3, // llvm.x86.fma4.vfmadd.ss
3, // llvm.x86.fma4.vfmaddsub.pd
3, // llvm.x86.fma4.vfmaddsub.pd.256
3, // llvm.x86.fma4.vfmaddsub.ps
3, // llvm.x86.fma4.vfmaddsub.ps.256
3, // llvm.x86.fma4.vfmsub.pd
3, // llvm.x86.fma4.vfmsub.pd.256
3, // llvm.x86.fma4.vfmsub.ps
3, // llvm.x86.fma4.vfmsub.ps.256
3, // llvm.x86.fma4.vfmsub.sd
3, // llvm.x86.fma4.vfmsub.ss
3, // llvm.x86.fma4.vfmsubadd.pd
3, // llvm.x86.fma4.vfmsubadd.pd.256
3, // llvm.x86.fma4.vfmsubadd.ps
3, // llvm.x86.fma4.vfmsubadd.ps.256
3, // llvm.x86.fma4.vfnmadd.pd
3, // llvm.x86.fma4.vfnmadd.pd.256
3, // llvm.x86.fma4.vfnmadd.ps
3, // llvm.x86.fma4.vfnmadd.ps.256
3, // llvm.x86.fma4.vfnmadd.sd
3, // llvm.x86.fma4.vfnmadd.ss
3, // llvm.x86.fma4.vfnmsub.pd
3, // llvm.x86.fma4.vfnmsub.pd.256
3, // llvm.x86.fma4.vfnmsub.ps
3, // llvm.x86.fma4.vfnmsub.ps.256
3, // llvm.x86.fma4.vfnmsub.sd
3, // llvm.x86.fma4.vfnmsub.ss
1, // llvm.x86.int
1, // llvm.x86.mmx.emms
1, // llvm.x86.mmx.femms
1, // llvm.x86.mmx.maskmovq
1, // 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
1, // llvm.x86.rdfsbase.32
1, // llvm.x86.rdfsbase.64
1, // llvm.x86.rdgsbase.32
1, // llvm.x86.rdgsbase.64
3, // llvm.x86.sse2.add.sd
1, // 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
1, // llvm.x86.sse2.lfence
1, // llvm.x86.sse2.maskmov.dqu
3, // llvm.x86.sse2.max.pd
3, // llvm.x86.sse2.max.sd
1, // 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
1, // llvm.x86.sse2.storel.dq
1, // llvm.x86.sse2.storeu.dq
1, // 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
2, // llvm.x86.sse3.ldu.dq
1, // llvm.x86.sse3.monitor
1, // 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
2, // 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.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
1, // 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
1, // llvm.x86.sse.sfence
3, // llvm.x86.sse.sqrt.ps
3, // llvm.x86.sse.sqrt.ss
1, // llvm.x86.sse.stmxcsr
1, // 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
1, // llvm.x86.wrfsbase.32
1, // llvm.x86.wrfsbase.64
1, // llvm.x86.wrgsbase.32
1, // 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.vpcomeqb
3, // llvm.x86.xop.vpcomeqd
3, // llvm.x86.xop.vpcomeqq
3, // llvm.x86.xop.vpcomequb
3, // llvm.x86.xop.vpcomequd
3, // llvm.x86.xop.vpcomequq
3, // llvm.x86.xop.vpcomequw
3, // llvm.x86.xop.vpcomeqw
3, // llvm.x86.xop.vpcomfalseb
3, // llvm.x86.xop.vpcomfalsed
3, // llvm.x86.xop.vpcomfalseq
3, // llvm.x86.xop.vpcomfalseub
3, // llvm.x86.xop.vpcomfalseud
3, // llvm.x86.xop.vpcomfalseuq
3, // llvm.x86.xop.vpcomfalseuw
3, // llvm.x86.xop.vpcomfalsew
3, // llvm.x86.xop.vpcomgeb
3, // llvm.x86.xop.vpcomged
3, // llvm.x86.xop.vpcomgeq
3, // llvm.x86.xop.vpcomgeub
3, // llvm.x86.xop.vpcomgeud
3, // llvm.x86.xop.vpcomgeuq
3, // llvm.x86.xop.vpcomgeuw
3, // llvm.x86.xop.vpcomgew
3, // llvm.x86.xop.vpcomgtb
3, // llvm.x86.xop.vpcomgtd
3, // llvm.x86.xop.vpcomgtq
3, // llvm.x86.xop.vpcomgtub
3, // llvm.x86.xop.vpcomgtud
3, // llvm.x86.xop.vpcomgtuq
3, // llvm.x86.xop.vpcomgtuw
3, // llvm.x86.xop.vpcomgtw
3, // llvm.x86.xop.vpcomleb
3, // llvm.x86.xop.vpcomled
3, // llvm.x86.xop.vpcomleq
3, // llvm.x86.xop.vpcomleub
3, // llvm.x86.xop.vpcomleud
3, // llvm.x86.xop.vpcomleuq
3, // llvm.x86.xop.vpcomleuw
3, // llvm.x86.xop.vpcomlew
3, // llvm.x86.xop.vpcomltb
3, // llvm.x86.xop.vpcomltd
3, // llvm.x86.xop.vpcomltq
3, // llvm.x86.xop.vpcomltub
3, // llvm.x86.xop.vpcomltud
3, // llvm.x86.xop.vpcomltuq
3, // llvm.x86.xop.vpcomltuw
3, // llvm.x86.xop.vpcomltw
3, // llvm.x86.xop.vpcomneb
3, // llvm.x86.xop.vpcomned
3, // llvm.x86.xop.vpcomneq
3, // llvm.x86.xop.vpcomneub
3, // llvm.x86.xop.vpcomneud
3, // llvm.x86.xop.vpcomneuq
3, // llvm.x86.xop.vpcomneuw
3, // llvm.x86.xop.vpcomnew
3, // llvm.x86.xop.vpcomtrueb
3, // llvm.x86.xop.vpcomtrued
3, // llvm.x86.xop.vpcomtrueq
3, // llvm.x86.xop.vpcomtrueub
3, // llvm.x86.xop.vpcomtrueud
3, // llvm.x86.xop.vpcomtrueuq
3, // llvm.x86.xop.vpcomtrueuw
3, // llvm.x86.xop.vpcomtruew
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.vprotd
3, // llvm.x86.xop.vprotq
3, // llvm.x86.xop.vprotw
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
1, // llvm.xcore.checkevent
5, // llvm.xcore.chkct
1, // llvm.xcore.clre
1, // llvm.xcore.clrsr
3, // llvm.xcore.crc32
3, // llvm.xcore.crc8
5, // llvm.xcore.eeu
5, // llvm.xcore.endin
5, // llvm.xcore.freer
1, // llvm.xcore.geted
1, // llvm.xcore.getet
3, // llvm.xcore.getid
1, // llvm.xcore.getps
1, // 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
1, // llvm.xcore.setps
5, // llvm.xcore.setpsc
5, // llvm.xcore.setpt
8, // llvm.xcore.setrdy
1, // llvm.xcore.setsr
5, // llvm.xcore.settw
5, // llvm.xcore.setv
3, // llvm.xcore.sext
1, // llvm.xcore.ssync
5, // llvm.xcore.syncr
5, // llvm.xcore.testct
5, // llvm.xcore.testwct
2, // 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 2:
AWI[0] = AttributeWithIndex::get(~0, Attribute::NoUnwind|Attribute::ReadOnly);
NumAttrs = 1;
break;
case 1:
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;
}
}
return AttrListPtr::get(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,
/* CNOT */ UnknownModRefBehavior,
/* Fredkin */ UnknownModRefBehavior,
/* H */ UnknownModRefBehavior,
/* MeasX */ UnknownModRefBehavior,
/* MeasZ */ UnknownModRefBehavior,
/* NOT */ UnknownModRefBehavior,
/* PrepX */ UnknownModRefBehavior,
/* PrepZ */ UnknownModRefBehavior,
/* Rx */ UnknownModRefBehavior,
/* Ry */ UnknownModRefBehavior,
/* Rz */ UnknownModRefBehavior,
/* S */ UnknownModRefBehavior,
/* Sdag */ UnknownModRefBehavior,
/* T */ UnknownModRefBehavior,
/* Tdag */ UnknownModRefBehavior,
/* Toffoli */ UnknownModRefBehavior,
/* X */ UnknownModRefBehavior,
/* Y */ UnknownModRefBehavior,
/* Z */ UnknownModRefBehavior,
/* a_eq_a_minus_b */ UnknownModRefBehavior,
/* a_eq_a_plus_b */ UnknownModRefBehavior,
/* a_eq_a_plus_b_times_c */ UnknownModRefBehavior,
/* a_swap_b */ 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_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,
/* assign_value_of_0_to_a */ UnknownModRefBehavior,
/* assign_value_of_1_to_a */ UnknownModRefBehavior,
/* assign_value_of_b_to_a */ UnknownModRefBehavior,
/* bswap */ DoesNotAccessMemory,
/* cnot */ UnknownModRefBehavior,
/* 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,
/* dbg_declare */ DoesNotAccessMemory,
/* dbg_value */ 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,
/* flt_rounds */ UnknownModRefBehavior,
/* fma */ 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_hh */ DoesNotAccessMemory,
/* hexagon_A2_addh_l16_hl */ DoesNotAccessMemory,
/* hexagon_A2_addh_l16_lh */ DoesNotAccessMemory,
/* hexagon_A2_addh_l16_ll */ DoesNotAccessMemory,
/* hexagon_A2_addh_l16_sat_hh */ DoesNotAccessMemory,
/* hexagon_A2_addh_l16_sat_hl */ DoesNotAccessMemory,
/* hexagon_A2_addh_l16_sat_lh */ 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_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_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_vmaxh */ DoesNotAccessMemory,
/* hexagon_A2_vmaxub */ DoesNotAccessMemory,
/* hexagon_A2_vmaxuh */ DoesNotAccessMemory,
/* hexagon_A2_vmaxuw */ DoesNotAccessMemory,
/* hexagon_A2_vmaxw */ 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_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_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_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_or_and */ DoesNotAccessMemory,
/* hexagon_C4_or_andn */ DoesNotAccessMemory,
/* hexagon_C4_or_or */ DoesNotAccessMemory,
/* hexagon_C4_or_orn */ 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_hmmpyl_rs1 */ 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_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_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_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_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_or_and */ DoesNotAccessMemory,
/* hexagon_M4_or_andn */ DoesNotAccessMemory,
/* hexagon_M4_or_or */ DoesNotAccessMemory,
/* hexagon_M4_or_xor */ DoesNotAccessMemory,
/* hexagon_M4_xor_and */ DoesNotAccessMemory,
/* hexagon_M4_xor_andn */ DoesNotAccessMemory,
/* hexagon_M4_xor_or */ DoesNotAccessMemory,
/* hexagon_M4_xor_xacc */ 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_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_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_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_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_ct1 */ 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_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_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_vcrotate */ 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_andnp */ DoesNotAccessMemory,
/* hexagon_S4_or_andi */ DoesNotAccessMemory,
/* hexagon_S4_or_andix */ DoesNotAccessMemory,
/* hexagon_S4_or_ori */ DoesNotAccessMemory,
/* hexagon_S4_ornp */ DoesNotAccessMemory,
/* hexagon_S4_subaddi */ DoesNotAccessMemory,
/* hexagon_SI_to_SXTHI_asrh */ DoesNotAccessMemory,
/* 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,
/* 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,
/* toffoli */ 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_maskload_d */ OnlyReadsMemory,
/* x86_avx2_maskload_d_256 */ OnlyReadsMemory,
/* x86_avx2_maskload_q */ OnlyReadsMemory,
/* x86_avx2_maskload_q_256 */ OnlyReadsMemory,
/* x86_avx2_maskstore_d */ UnknownModRefBehavior,
/* x86_avx2_maskstore_d_256 */ UnknownModRefBehavior,
/* x86_avx2_maskstore_q */ UnknownModRefBehavior,
/* x86_avx2_maskstore_q_256 */ UnknownModRefBehavior,
/* 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 */ OnlyReadsMemory,
/* 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 */ OnlyReadsMemory,
/* x86_avx_maskload_pd_256 */ OnlyReadsMemory,
/* x86_avx_maskload_ps */ OnlyReadsMemory,
/* x86_avx_maskload_ps_256 */ OnlyReadsMemory,
/* x86_avx_maskstore_pd */ UnknownModRefBehavior,
/* x86_avx_maskstore_pd_256 */ UnknownModRefBehavior,
/* x86_avx_maskstore_ps */ UnknownModRefBehavior,
/* x86_avx_maskstore_ps_256 */ UnknownModRefBehavior,
/* 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_movnt_dq_256 */ UnknownModRefBehavior,
/* x86_avx_movnt_pd_256 */ UnknownModRefBehavior,
/* x86_avx_movnt_ps_256 */ UnknownModRefBehavior,
/* 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 */ UnknownModRefBehavior,
/* x86_avx_storeu_pd_256 */ UnknownModRefBehavior,
/* x86_avx_storeu_ps_256 */ UnknownModRefBehavior,
/* x86_avx_vbroadcast_sd_256 */ OnlyReadsMemory,
/* x86_avx_vbroadcast_ss */ OnlyReadsMemory,
/* x86_avx_vbroadcast_ss_256 */ OnlyReadsMemory,
/* x86_avx_vbroadcastf128_pd_256 */ OnlyReadsMemory,
/* x86_avx_vbroadcastf128_ps_256 */ OnlyReadsMemory,
/* 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_fma4_vfmadd_pd */ DoesNotAccessMemory,
/* x86_fma4_vfmadd_pd_256 */ DoesNotAccessMemory,
/* x86_fma4_vfmadd_ps */ DoesNotAccessMemory,
/* x86_fma4_vfmadd_ps_256 */ DoesNotAccessMemory,
/* x86_fma4_vfmadd_sd */ DoesNotAccessMemory,
/* x86_fma4_vfmadd_ss */ DoesNotAccessMemory,
/* x86_fma4_vfmaddsub_pd */ DoesNotAccessMemory,
/* x86_fma4_vfmaddsub_pd_256 */ DoesNotAccessMemory,
/* x86_fma4_vfmaddsub_ps */ DoesNotAccessMemory,
/* x86_fma4_vfmaddsub_ps_256 */ DoesNotAccessMemory,
/* x86_fma4_vfmsub_pd */ DoesNotAccessMemory,
/* x86_fma4_vfmsub_pd_256 */ DoesNotAccessMemory,
/* x86_fma4_vfmsub_ps */ DoesNotAccessMemory,
/* x86_fma4_vfmsub_ps_256 */ DoesNotAccessMemory,
/* x86_fma4_vfmsub_sd */ DoesNotAccessMemory,
/* x86_fma4_vfmsub_ss */ DoesNotAccessMemory,
/* x86_fma4_vfmsubadd_pd */ DoesNotAccessMemory,
/* x86_fma4_vfmsubadd_pd_256 */ DoesNotAccessMemory,
/* x86_fma4_vfmsubadd_ps */ DoesNotAccessMemory,
/* x86_fma4_vfmsubadd_ps_256 */ DoesNotAccessMemory,
/* x86_fma4_vfnmadd_pd */ DoesNotAccessMemory,
/* x86_fma4_vfnmadd_pd_256 */ DoesNotAccessMemory,
/* x86_fma4_vfnmadd_ps */ DoesNotAccessMemory,
/* x86_fma4_vfnmadd_ps_256 */ DoesNotAccessMemory,
/* x86_fma4_vfnmadd_sd */ DoesNotAccessMemory,
/* x86_fma4_vfnmadd_ss */ DoesNotAccessMemory,
/* x86_fma4_vfnmsub_pd */ DoesNotAccessMemory,
/* x86_fma4_vfnmsub_pd_256 */ DoesNotAccessMemory,
/* x86_fma4_vfnmsub_ps */ DoesNotAccessMemory,
/* x86_fma4_vfnmsub_ps_256 */ DoesNotAccessMemory,
/* x86_fma4_vfnmsub_sd */ DoesNotAccessMemory,
/* x86_fma4_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_rdfsbase_32 */ UnknownModRefBehavior,
/* x86_rdfsbase_64 */ UnknownModRefBehavior,
/* x86_rdgsbase_32 */ UnknownModRefBehavior,
/* x86_rdgsbase_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 */ UnknownModRefBehavior,
/* x86_sse2_storeu_dq */ UnknownModRefBehavior,
/* x86_sse2_storeu_pd */ UnknownModRefBehavior,
/* 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_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 */ UnknownModRefBehavior,
/* 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_vpcomeqb */ DoesNotAccessMemory,
/* x86_xop_vpcomeqd */ DoesNotAccessMemory,
/* x86_xop_vpcomeqq */ DoesNotAccessMemory,
/* x86_xop_vpcomequb */ DoesNotAccessMemory,
/* x86_xop_vpcomequd */ DoesNotAccessMemory,
/* x86_xop_vpcomequq */ DoesNotAccessMemory,
/* x86_xop_vpcomequw */ DoesNotAccessMemory,
/* x86_xop_vpcomeqw */ DoesNotAccessMemory,
/* x86_xop_vpcomfalseb */ DoesNotAccessMemory,
/* x86_xop_vpcomfalsed */ DoesNotAccessMemory,
/* x86_xop_vpcomfalseq */ DoesNotAccessMemory,
/* x86_xop_vpcomfalseub */ DoesNotAccessMemory,
/* x86_xop_vpcomfalseud */ DoesNotAccessMemory,
/* x86_xop_vpcomfalseuq */ DoesNotAccessMemory,
/* x86_xop_vpcomfalseuw */ DoesNotAccessMemory,
/* x86_xop_vpcomfalsew */ DoesNotAccessMemory,
/* x86_xop_vpcomgeb */ DoesNotAccessMemory,
/* x86_xop_vpcomged */ DoesNotAccessMemory,
/* x86_xop_vpcomgeq */ DoesNotAccessMemory,
/* x86_xop_vpcomgeub */ DoesNotAccessMemory,
/* x86_xop_vpcomgeud */ DoesNotAccessMemory,
/* x86_xop_vpcomgeuq */ DoesNotAccessMemory,
/* x86_xop_vpcomgeuw */ DoesNotAccessMemory,
/* x86_xop_vpcomgew */ DoesNotAccessMemory,
/* x86_xop_vpcomgtb */ DoesNotAccessMemory,
/* x86_xop_vpcomgtd */ DoesNotAccessMemory,
/* x86_xop_vpcomgtq */ DoesNotAccessMemory,
/* x86_xop_vpcomgtub */ DoesNotAccessMemory,
/* x86_xop_vpcomgtud */ DoesNotAccessMemory,
/* x86_xop_vpcomgtuq */ DoesNotAccessMemory,
/* x86_xop_vpcomgtuw */ DoesNotAccessMemory,
/* x86_xop_vpcomgtw */ DoesNotAccessMemory,
/* x86_xop_vpcomleb */ DoesNotAccessMemory,
/* x86_xop_vpcomled */ DoesNotAccessMemory,
/* x86_xop_vpcomleq */ DoesNotAccessMemory,
/* x86_xop_vpcomleub */ DoesNotAccessMemory,
/* x86_xop_vpcomleud */ DoesNotAccessMemory,
/* x86_xop_vpcomleuq */ DoesNotAccessMemory,
/* x86_xop_vpcomleuw */ DoesNotAccessMemory,
/* x86_xop_vpcomlew */ DoesNotAccessMemory,
/* x86_xop_vpcomltb */ DoesNotAccessMemory,
/* x86_xop_vpcomltd */ DoesNotAccessMemory,
/* x86_xop_vpcomltq */ DoesNotAccessMemory,
/* x86_xop_vpcomltub */ DoesNotAccessMemory,
/* x86_xop_vpcomltud */ DoesNotAccessMemory,
/* x86_xop_vpcomltuq */ DoesNotAccessMemory,
/* x86_xop_vpcomltuw */ DoesNotAccessMemory,
/* x86_xop_vpcomltw */ DoesNotAccessMemory,
/* x86_xop_vpcomneb */ DoesNotAccessMemory,
/* x86_xop_vpcomned */ DoesNotAccessMemory,
/* x86_xop_vpcomneq */ DoesNotAccessMemory,
/* x86_xop_vpcomneub */ DoesNotAccessMemory,
/* x86_xop_vpcomneud */ DoesNotAccessMemory,
/* x86_xop_vpcomneuq */ DoesNotAccessMemory,
/* x86_xop_vpcomneuw */ DoesNotAccessMemory,
/* x86_xop_vpcomnew */ DoesNotAccessMemory,
/* x86_xop_vpcomtrueb */ DoesNotAccessMemory,
/* x86_xop_vpcomtrued */ DoesNotAccessMemory,
/* x86_xop_vpcomtrueq */ DoesNotAccessMemory,
/* x86_xop_vpcomtrueub */ DoesNotAccessMemory,
/* x86_xop_vpcomtrueud */ DoesNotAccessMemory,
/* x86_xop_vpcomtrueuq */ DoesNotAccessMemory,
/* x86_xop_vpcomtrueuw */ DoesNotAccessMemory,
/* x86_xop_vpcomtruew */ 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_vprotd */ DoesNotAccessMemory,
/* x86_xop_vprotq */ DoesNotAccessMemory,
/* x86_xop_vprotw */ 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 14: // 3 strings to match.
if (BuiltinName.substr(0, 2) != "__")
break;
switch (BuiltinName[2]) {
default: break;
case 'b': // 1 string to match.
if (BuiltinName.substr(3, 11) != "uiltin_trap")
break;
return Intrinsic::trap; // "__builtin_trap"
case 'g': // 2 strings to match.
if (BuiltinName.substr(3, 3) != "nu_")
break;
switch (BuiltinName[6]) {
default: break;
case 'f': // 1 string to match.
if (BuiltinName.substr(7, 7) != "2h_ieee")
break;
return Intrinsic::convert_to_fp16; // "__gnu_f2h_ieee"
case 'h': // 1 string to match.
if (BuiltinName.substr(7, 7) != "2f_ieee")
break;
return Intrinsic::convert_from_fp16; // "__gnu_h2f_ieee"
}
break;
}
break;
case 20: // 2 strings to match.
if (BuiltinName.substr(0, 10) != "__builtin_")
break;
switch (BuiltinName[10]) {
default: break;
case 'f': // 1 string to match.
if (BuiltinName.substr(11, 9) != "lt_rounds")
break;
return Intrinsic::flt_rounds; // "__builtin_flt_rounds"
case 's': // 1 string to match.
if (BuiltinName.substr(11, 9) != "tack_save")
break;
return Intrinsic::stacksave; // "__builtin_stack_save"
}
break;
case 21: // 16 strings to match.
if (BuiltinName.substr(0, 10) != "__builtin_")
break;
switch (BuiltinName[10]) {
default: break;
case 'i': // 14 strings to match.
if (BuiltinName.substr(11, 6) != "a32_vp")
break;
switch (BuiltinName[17]) {
default: break;
case 'c': // 1 string to match.
if (BuiltinName.substr(18, 3) != "mov")
break;
return Intrinsic::x86_xop_vpcmov; // "__builtin_ia32_vpcmov"
case 'p': // 1 string to match.
if (BuiltinName.substr(18, 3) != "erm")
break;
return Intrinsic::x86_xop_vpperm; // "__builtin_ia32_vpperm"
case 'r': // 4 strings to match.
if (BuiltinName.substr(18, 2) != "ot")
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 (BuiltinName.substr(11, 10) != "bject_size")
break;
return Intrinsic::objectsize; // "__builtin_object_size"
case 'u': // 1 string to match.
if (BuiltinName.substr(11, 10) != "nwind_init")
break;
return Intrinsic::eh_unwind_init; // "__builtin_unwind_init"
}
break;
case 22: // 4 strings to match.
if (BuiltinName.substr(0, 20) != "__builtin_ia32_vfrcz")
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 23: // 37 strings to match.
if (BuiltinName.substr(0, 10) != "__builtin_")
break;
switch (BuiltinName[10]) {
default: break;
case 'i': // 36 strings to match.
if (BuiltinName.substr(11, 6) != "a32_vp")
break;
switch (BuiltinName[17]) {
default: break;
case 'c': // 24 strings to match.
if (BuiltinName.substr(18, 2) != "om")
break;
switch (BuiltinName[20]) {
default: break;
case 'e': // 4 strings to match.
if (BuiltinName[21] != 'q')
break;
switch (BuiltinName[22]) {
default: break;
case 'b': // 1 string to match.
return Intrinsic::x86_xop_vpcomeqb; // "__builtin_ia32_vpcomeqb"
case 'd': // 1 string to match.
return Intrinsic::x86_xop_vpcomeqd; // "__builtin_ia32_vpcomeqd"
case 'q': // 1 string to match.
return Intrinsic::x86_xop_vpcomeqq; // "__builtin_ia32_vpcomeqq"
case 'w': // 1 string to match.
return Intrinsic::x86_xop_vpcomeqw; // "__builtin_ia32_vpcomeqw"
}
break;
case 'g': // 8 strings to match.
switch (BuiltinName[21]) {
default: break;
case 'e': // 4 strings to match.
switch (BuiltinName[22]) {
default: break;
case 'b': // 1 string to match.
return Intrinsic::x86_xop_vpcomgeb; // "__builtin_ia32_vpcomgeb"
case 'd': // 1 string to match.
return Intrinsic::x86_xop_vpcomged; // "__builtin_ia32_vpcomged"
case 'q': // 1 string to match.
return Intrinsic::x86_xop_vpcomgeq; // "__builtin_ia32_vpcomgeq"
case 'w': // 1 string to match.
return Intrinsic::x86_xop_vpcomgew; // "__builtin_ia32_vpcomgew"
}
break;
case 't': // 4 strings to match.
switch (BuiltinName[22]) {
default: break;
case 'b': // 1 string to match.
return Intrinsic::x86_xop_vpcomgtb; // "__builtin_ia32_vpcomgtb"
case 'd': // 1 string to match.
return Intrinsic::x86_xop_vpcomgtd; // "__builtin_ia32_vpcomgtd"
case 'q': // 1 string to match.
return Intrinsic::x86_xop_vpcomgtq; // "__builtin_ia32_vpcomgtq"
case 'w': // 1 string to match.
return Intrinsic::x86_xop_vpcomgtw; // "__builtin_ia32_vpcomgtw"
}
break;
}
break;
case 'l': // 8 strings to match.
switch (BuiltinName[21]) {
default: break;
case 'e': // 4 strings to match.
switch (BuiltinName[22]) {
default: break;
case 'b': // 1 string to match.
return Intrinsic::x86_xop_vpcomleb; // "__builtin_ia32_vpcomleb"
case 'd': // 1 string to match.
return Intrinsic::x86_xop_vpcomled; // "__builtin_ia32_vpcomled"
case 'q': // 1 string to match.
return Intrinsic::x86_xop_vpcomleq; // "__builtin_ia32_vpcomleq"
case 'w': // 1 string to match.
return Intrinsic::x86_xop_vpcomlew; // "__builtin_ia32_vpcomlew"
}
break;
case 't': // 4 strings to match.
switch (BuiltinName[22]) {
default: break;
case 'b': // 1 string to match.
return Intrinsic::x86_xop_vpcomltb; // "__builtin_ia32_vpcomltb"
case 'd': // 1 string to match.
return Intrinsic::x86_xop_vpcomltd; // "__builtin_ia32_vpcomltd"
case 'q': // 1 string to match.
return Intrinsic::x86_xop_vpcomltq; // "__builtin_ia32_vpcomltq"
case 'w': // 1 string to match.
return Intrinsic::x86_xop_vpcomltw; // "__builtin_ia32_vpcomltw"
}
break;
}
break;
case 'n': // 4 strings to match.
if (BuiltinName[21] != 'e')
break;
switch (BuiltinName[22]) {
default: break;
case 'b': // 1 string to match.
return Intrinsic::x86_xop_vpcomneb; // "__builtin_ia32_vpcomneb"
case 'd': // 1 string to match.
return Intrinsic::x86_xop_vpcomned; // "__builtin_ia32_vpcomned"
case 'q': // 1 string to match.
return Intrinsic::x86_xop_vpcomneq; // "__builtin_ia32_vpcomneq"
case 'w': // 1 string to match.
return Intrinsic::x86_xop_vpcomnew; // "__builtin_ia32_vpcomnew"
}
break;
}
break;
case 'h': // 9 strings to match.
switch (BuiltinName[18]) {
default: break;
case 'a': // 6 strings to match.
if (BuiltinName.substr(19, 2) != "dd")
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 (BuiltinName.substr(19, 2) != "ub")
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 (BuiltinName.substr(18, 3) != "acs")
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 's': // 1 string to match.
if (BuiltinName.substr(11, 12) != "tack_restore")
break;
return Intrinsic::stackrestore; // "__builtin_stack_restore"
}
break;
case 24: // 36 strings to match.
if (BuiltinName.substr(0, 17) != "__builtin_ia32_vp")
break;
switch (BuiltinName[17]) {
default: break;
case 'c': // 24 strings to match.
if (BuiltinName.substr(18, 2) != "om")
break;
switch (BuiltinName[20]) {
default: break;
case 'e': // 4 strings to match.
if (BuiltinName.substr(21, 2) != "qu")
break;
switch (BuiltinName[23]) {
default: break;
case 'b': // 1 string to match.
return Intrinsic::x86_xop_vpcomequb; // "__builtin_ia32_vpcomequb"
case 'd': // 1 string to match.
return Intrinsic::x86_xop_vpcomequd; // "__builtin_ia32_vpcomequd"
case 'q': // 1 string to match.
return Intrinsic::x86_xop_vpcomequq; // "__builtin_ia32_vpcomequq"
case 'w': // 1 string to match.
return Intrinsic::x86_xop_vpcomequw; // "__builtin_ia32_vpcomequw"
}
break;
case 'g': // 8 strings to match.
switch (BuiltinName[21]) {
default: break;
case 'e': // 4 strings to match.
if (BuiltinName[22] != 'u')
break;
switch (BuiltinName[23]) {
default: break;
case 'b': // 1 string to match.
return Intrinsic::x86_xop_vpcomgeub; // "__builtin_ia32_vpcomgeub"
case 'd': // 1 string to match.
return Intrinsic::x86_xop_vpcomgeud; // "__builtin_ia32_vpcomgeud"
case 'q': // 1 string to match.
return Intrinsic::x86_xop_vpcomgeuq; // "__builtin_ia32_vpcomgeuq"
case 'w': // 1 string to match.
return Intrinsic::x86_xop_vpcomgeuw; // "__builtin_ia32_vpcomgeuw"
}
break;
case 't': // 4 strings to match.
if (BuiltinName[22] != 'u')
break;
switch (BuiltinName[23]) {
default: break;
case 'b': // 1 string to match.
return Intrinsic::x86_xop_vpcomgtub; // "__builtin_ia32_vpcomgtub"
case 'd': // 1 string to match.
return Intrinsic::x86_xop_vpcomgtud; // "__builtin_ia32_vpcomgtud"
case 'q': // 1 string to match.
return Intrinsic::x86_xop_vpcomgtuq; // "__builtin_ia32_vpcomgtuq"
case 'w': // 1 string to match.
return Intrinsic::x86_xop_vpcomgtuw; // "__builtin_ia32_vpcomgtuw"
}
break;
}
break;
case 'l': // 8 strings to match.
switch (BuiltinName[21]) {
default: break;
case 'e': // 4 strings to match.
if (BuiltinName[22] != 'u')
break;
switch (BuiltinName[23]) {
default: break;
case 'b': // 1 string to match.
return Intrinsic::x86_xop_vpcomleub; // "__builtin_ia32_vpcomleub"
case 'd': // 1 string to match.
return Intrinsic::x86_xop_vpcomleud; // "__builtin_ia32_vpcomleud"
case 'q': // 1 string to match.
return Intrinsic::x86_xop_vpcomleuq; // "__builtin_ia32_vpcomleuq"
case 'w': // 1 string to match.
return Intrinsic::x86_xop_vpcomleuw; // "__builtin_ia32_vpcomleuw"
}
break;
case 't': // 4 strings to match.
if (BuiltinName[22] != 'u')
break;
switch (BuiltinName[23]) {
default: break;
case 'b': // 1 string to match.
return Intrinsic::x86_xop_vpcomltub; // "__builtin_ia32_vpcomltub"
case 'd': // 1 string to match.
return Intrinsic::x86_xop_vpcomltud; // "__builtin_ia32_vpcomltud"
case 'q': // 1 string to match.
return Intrinsic::x86_xop_vpcomltuq; // "__builtin_ia32_vpcomltuq"
case 'w': // 1 string to match.
return Intrinsic::x86_xop_vpcomltuw; // "__builtin_ia32_vpcomltuw"
}
break;
}
break;
case 'n': // 4 strings to match.
if (BuiltinName.substr(21, 2) != "eu")
break;
switch (BuiltinName[23]) {
default: break;
case 'b': // 1 string to match.
return Intrinsic::x86_xop_vpcomneub; // "__builtin_ia32_vpcomneub"
case 'd': // 1 string to match.
return Intrinsic::x86_xop_vpcomneud; // "__builtin_ia32_vpcomneud"
case 'q': // 1 string to match.
return Intrinsic::x86_xop_vpcomneuq; // "__builtin_ia32_vpcomneuq"
case 'w': // 1 string to match.
return Intrinsic::x86_xop_vpcomneuw; // "__builtin_ia32_vpcomneuw"
}
break;
}
break;
case 'h': // 6 strings to match.
if (BuiltinName.substr(18, 4) != "addu")
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 (BuiltinName.substr(20, 4) != "cswd")
break;
return Intrinsic::x86_xop_vpmadcswd; // "__builtin_ia32_vpmadcswd"
}
break;
}
break;
case 25: // 13 strings to match.
if (BuiltinName.substr(0, 11) != "__builtin_i")
break;
switch (BuiltinName[11]) {
default: break;
case 'a': // 12 strings to match.
if (BuiltinName.substr(12, 4) != "32_v")
break;
switch (BuiltinName[16]) {
default: break;
case 'f': // 2 strings to match.
if (BuiltinName.substr(17, 4) != "rczp")
break;
switch (BuiltinName[21]) {
default: break;
case 'd': // 1 string to match.
if (BuiltinName.substr(22, 3) != "256")
break;
return Intrinsic::x86_xop_vfrcz_pd_256; // "__builtin_ia32_vfrczpd256"
case 's': // 1 string to match.
if (BuiltinName.substr(22, 3) != "256")
break;
return Intrinsic::x86_xop_vfrcz_ps_256; // "__builtin_ia32_vfrczps256"
}
break;
case 'p': // 10 strings to match.
switch (BuiltinName[17]) {
default: break;
case 'c': // 5 strings to match.
switch (BuiltinName[18]) {
default: break;
case 'm': // 1 string to match.
if (BuiltinName.substr(19, 6) != "ov_256")
break;
return Intrinsic::x86_xop_vpcmov_256; // "__builtin_ia32_vpcmov_256"
case 'o': // 4 strings to match.
if (BuiltinName.substr(19, 5) != "mtrue")
break;
switch (BuiltinName[24]) {
default: break;
case 'b': // 1 string to match.
return Intrinsic::x86_xop_vpcomtrueb; // "__builtin_ia32_vpcomtrueb"
case 'd': // 1 string to match.
return Intrinsic::x86_xop_vpcomtrued; // "__builtin_ia32_vpcomtrued"
case 'q': // 1 string to match.
return Intrinsic::x86_xop_vpcomtrueq; // "__builtin_ia32_vpcomtrueq"
case 'w': // 1 string to match.
return Intrinsic::x86_xop_vpcomtruew; // "__builtin_ia32_vpcomtruew"
}
break;
}
break;
case 'e': // 2 strings to match.
if (BuiltinName.substr(18, 6) != "rmil2p")
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 (BuiltinName.substr(20, 4) != "ssdq")
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 (BuiltinName.substr(20, 5) != "csswd")
break;
return Intrinsic::x86_xop_vpmadcsswd; // "__builtin_ia32_vpmadcsswd"
}
break;
}
break;
}
break;
case 'n': // 1 string to match.
if (BuiltinName.substr(12, 13) != "it_trampoline")
break;
return Intrinsic::init_trampoline; // "__builtin_init_trampoline"
}
break;
case 26: // 8 strings to match.
if (BuiltinName.substr(0, 20) != "__builtin_ia32_vpcom")
break;
switch (BuiltinName[20]) {
default: break;
case 'f': // 4 strings to match.
if (BuiltinName.substr(21, 4) != "alse")
break;
switch (BuiltinName[25]) {
default: break;
case 'b': // 1 string to match.
return Intrinsic::x86_xop_vpcomfalseb; // "__builtin_ia32_vpcomfalseb"
case 'd': // 1 string to match.
return Intrinsic::x86_xop_vpcomfalsed; // "__builtin_ia32_vpcomfalsed"
case 'q': // 1 string to match.
return Intrinsic::x86_xop_vpcomfalseq; // "__builtin_ia32_vpcomfalseq"
case 'w': // 1 string to match.
return Intrinsic::x86_xop_vpcomfalsew; // "__builtin_ia32_vpcomfalsew"
}
break;
case 't': // 4 strings to match.
if (BuiltinName.substr(21, 4) != "rueu")
break;
switch (BuiltinName[25]) {
default: break;
case 'b': // 1 string to match.
return Intrinsic::x86_xop_vpcomtrueub; // "__builtin_ia32_vpcomtrueub"
case 'd': // 1 string to match.
return Intrinsic::x86_xop_vpcomtrueud; // "__builtin_ia32_vpcomtrueud"
case 'q': // 1 string to match.
return Intrinsic::x86_xop_vpcomtrueuq; // "__builtin_ia32_vpcomtrueuq"
case 'w': // 1 string to match.
return Intrinsic::x86_xop_vpcomtrueuw; // "__builtin_ia32_vpcomtrueuw"
}
break;
}
break;
case 27: // 5 strings to match.
if (BuiltinName.substr(0, 10) != "__builtin_")
break;
switch (BuiltinName[10]) {
default: break;
case 'a': // 1 string to match.
if (BuiltinName.substr(11, 16) != "djust_trampoline")
break;
return Intrinsic::adjust_trampoline; // "__builtin_adjust_trampoline"
case 'i': // 4 strings to match.
if (BuiltinName.substr(11, 15) != "a32_vpcomfalseu")
break;
switch (BuiltinName[26]) {
default: break;
case 'b': // 1 string to match.
return Intrinsic::x86_xop_vpcomfalseub; // "__builtin_ia32_vpcomfalseub"
case 'd': // 1 string to match.
return Intrinsic::x86_xop_vpcomfalseud; // "__builtin_ia32_vpcomfalseud"
case 'q': // 1 string to match.
return Intrinsic::x86_xop_vpcomfalseuq; // "__builtin_ia32_vpcomfalseuq"
case 'w': // 1 string to match.
return Intrinsic::x86_xop_vpcomfalseuw; // "__builtin_ia32_vpcomfalseuw"
}
break;
}
break;
case 28: // 2 strings to match.
if (BuiltinName.substr(0, 24) != "__builtin_ia32_vpermil2p")
break;
switch (BuiltinName[24]) {
default: break;
case 'd': // 1 string to match.
if (BuiltinName.substr(25, 3) != "256")
break;
return Intrinsic::x86_xop_vpermil2pd_256; // "__builtin_ia32_vpermil2pd256"
case 's': // 1 string to match.
if (BuiltinName.substr(25, 3) != "256")
break;
return Intrinsic::x86_xop_vpermil2ps_256; // "__builtin_ia32_vpermil2ps256"
}
break;
}
}
if (TargetPrefix == "arm") {
switch (BuiltinName.size()) {
default: break;
case 17: // 3 strings to match.
if (BuiltinName.substr(0, 14) != "__builtin_arm_")
break;
switch (BuiltinName[14]) {
default: break;
case 'c': // 1 string to match.
if (BuiltinName.substr(15, 2) != "dp")
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 (BuiltinName.substr(0, 14) != "__builtin_arm_")
break;
switch (BuiltinName[14]) {
default: break;
case 'c': // 1 string to match.
if (BuiltinName.substr(15, 3) != "dp2")
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 (BuiltinName.substr(16, 2) != "c2")
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 (BuiltinName.substr(16, 2) != "dd")
break;
return Intrinsic::arm_qadd; // "__builtin_arm_qadd"
case 's': // 1 string to match.
if (BuiltinName.substr(16, 2) != "ub")
break;
return Intrinsic::arm_qsub; // "__builtin_arm_qsub"
}
break;
case 's': // 1 string to match.
if (BuiltinName.substr(15, 3) != "sat")
break;
return Intrinsic::arm_ssat; // "__builtin_arm_ssat"
case 'u': // 1 string to match.
if (BuiltinName.substr(15, 3) != "sat")
break;
return Intrinsic::arm_usat; // "__builtin_arm_usat"
}
break;
case 19: // 1 string to match.
if (BuiltinName.substr(0, 19) != "__builtin_arm_mcrr2")
break;
return Intrinsic::arm_mcrr2; // "__builtin_arm_mcrr2"
case 23: // 2 strings to match.
if (BuiltinName.substr(0, 14) != "__builtin_arm_")
break;
switch (BuiltinName[14]) {
default: break;
case 'g': // 1 string to match.
if (BuiltinName.substr(15, 8) != "et_fpscr")
break;
return Intrinsic::arm_get_fpscr; // "__builtin_arm_get_fpscr"
case 's': // 1 string to match.
if (BuiltinName.substr(15, 8) != "et_fpscr")
break;
return Intrinsic::arm_set_fpscr; // "__builtin_arm_set_fpscr"
}
break;
case 24: // 1 string to match.
if (BuiltinName.substr(0, 24) != "__builtin_thread_pointer")
break;
return Intrinsic::arm_thread_pointer; // "__builtin_thread_pointer"
}
}
if (TargetPrefix == "hexagon") {
switch (BuiltinName.size()) {
default: break;
case 23: // 2 strings to match.
if (BuiltinName.substr(0, 18) != "__builtin_HEXAGON.")
break;
switch (BuiltinName[18]) {
default: break;
case 'A': // 1 string to match.
if (BuiltinName.substr(19, 4) != "2.or")
break;
return Intrinsic::hexagon_A2_or; // "__builtin_HEXAGON.A2.or"
case 'C': // 1 string to match.
if (BuiltinName.substr(19, 4) != "2.or")
break;
return Intrinsic::hexagon_C2_or; // "__builtin_HEXAGON.C2.or"
}
break;
case 24: // 23 strings to match.
if (BuiltinName.substr(0, 18) != "__builtin_HEXAGON.")
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 (BuiltinName.substr(22, 2) != "rp")
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 (BuiltinName.substr(22, 2) != "fr")
break;
return Intrinsic::hexagon_A2_tfr; // "__builtin_HEXAGON.A2.tfr"
case 'x': // 1 string to match.
if (BuiltinName.substr(22, 2) != "or")
break;
return Intrinsic::hexagon_A2_xor; // "__builtin_HEXAGON.A2.xor"
}
break;
case '4': // 1 string to match.
if (BuiltinName.substr(20, 4) != ".orn")
break;
return Intrinsic::hexagon_A4_orn; // "__builtin_HEXAGON.A4.orn"
}
break;
case 'C': // 5 strings to match.
if (BuiltinName.substr(19, 2) != "2.")
break;
switch (BuiltinName[21]) {
default: break;
case 'a': // 1 string to match.
if (BuiltinName.substr(22, 2) != "nd")
break;
return Intrinsic::hexagon_C2_and; // "__builtin_HEXAGON.C2.and"
case 'm': // 1 string to match.
if (BuiltinName.substr(22, 2) != "ux")
break;
return Intrinsic::hexagon_C2_mux; // "__builtin_HEXAGON.C2.mux"
case 'n': // 1 string to match.
if (BuiltinName.substr(22, 2) != "ot")
break;
return Intrinsic::hexagon_C2_not; // "__builtin_HEXAGON.C2.not"
case 'o': // 1 string to match.
if (BuiltinName.substr(22, 2) != "rn")
break;
return Intrinsic::hexagon_C2_orn; // "__builtin_HEXAGON.C2.orn"
case 'x': // 1 string to match.
if (BuiltinName.substr(22, 2) != "or")
break;
return Intrinsic::hexagon_C2_xor; // "__builtin_HEXAGON.C2.xor"
}
break;
case 'S': // 5 strings to match.
if (BuiltinName.substr(19, 3) != "2.c")
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: // 40 strings to match.
if (BuiltinName.substr(0, 18) != "__builtin_HEXAGON.")
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 (BuiltinName.substr(23, 2) != "sp")
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 (BuiltinName.substr(23, 2) != "dp")
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 (BuiltinName.substr(23, 2) != "gp")
break;
return Intrinsic::hexagon_A2_negp; // "__builtin_HEXAGON.A2.negp"
case 'o': // 1 string to match.
if (BuiltinName.substr(23, 2) != "tp")
break;
return Intrinsic::hexagon_A2_notp; // "__builtin_HEXAGON.A2.notp"
}
break;
case 'o': // 1 string to match.
if (BuiltinName.substr(22, 3) != "rir")
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 (BuiltinName.substr(23, 2) != "bp")
break;
return Intrinsic::hexagon_A2_subp; // "__builtin_HEXAGON.A2.subp"
case 'w': // 1 string to match.
if (BuiltinName.substr(23, 2) != "iz")
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 (BuiltinName.substr(22, 3) != "frp")
break;
return Intrinsic::hexagon_A2_tfrp; // "__builtin_HEXAGON.A2.tfrp"
case 'x': // 1 string to match.
if (BuiltinName.substr(22, 3) != "orp")
break;
return Intrinsic::hexagon_A2_xorp; // "__builtin_HEXAGON.A2.xorp"
case 'z': // 2 strings to match.
if (BuiltinName.substr(22, 2) != "xt")
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 (BuiltinName.substr(22, 3) != "ndn")
break;
return Intrinsic::hexagon_A4_andn; // "__builtin_HEXAGON.A4.andn"
case 'o': // 1 string to match.
if (BuiltinName.substr(22, 3) != "rnp")
break;
return Intrinsic::hexagon_A4_ornp; // "__builtin_HEXAGON.A4.ornp"
}
break;
}
break;
case 'C': // 5 strings to match.
if (BuiltinName.substr(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 (BuiltinName.substr(23, 2) != "l8")
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 (BuiltinName.substr(22, 3) != "ask")
break;
return Intrinsic::hexagon_C2_mask; // "__builtin_HEXAGON.C2.mask"
case 'v': // 1 string to match.
if (BuiltinName.substr(22, 3) != "mux")
break;
return Intrinsic::hexagon_C2_vmux; // "__builtin_HEXAGON.C2.vmux"
}
break;
case 'M': // 3 strings to match.
if (BuiltinName.substr(19, 2) != "2.")
break;
switch (BuiltinName[21]) {
default: break;
case 'a': // 1 string to match.
if (BuiltinName.substr(22, 3) != "cci")
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 (BuiltinName.substr(23, 2) != "ci")
break;
return Intrinsic::hexagon_M2_maci; // "__builtin_HEXAGON.M2.maci"
case 'p': // 1 string to match.
if (BuiltinName.substr(23, 2) != "yi")
break;
return Intrinsic::hexagon_M2_mpyi; // "__builtin_HEXAGON.M2.mpyi"
}
break;
}
break;
case 'S': // 6 strings to match.
switch (BuiltinName[19]) {
default: break;
case '2': // 5 strings to match.
if (BuiltinName[20] != '.')
break;
switch (BuiltinName[21]) {
default: break;
case 'b': // 1 string to match.
if (BuiltinName.substr(22, 3) != "rev")
break;
return Intrinsic::hexagon_S2_brev; // "__builtin_HEXAGON.S2.brev"
case 'c': // 3 strings to match.
if (BuiltinName[22] != 'l')
break;
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 'l': // 1 string to match.
if (BuiltinName.substr(22, 3) != "fsp")
break;
return Intrinsic::hexagon_S2_lfsp; // "__builtin_HEXAGON.S2.lfsp"
}
break;
case '4': // 1 string to match.
if (BuiltinName.substr(20, 5) != ".ornp")
break;
return Intrinsic::hexagon_S4_ornp; // "__builtin_HEXAGON.S4.ornp"
}
break;
}
break;
case 26: // 41 strings to match.
if (BuiltinName.substr(0, 10) != "__builtin_")
break;
switch (BuiltinName[10]) {
default: break;
case 'H': // 40 strings to match.
if (BuiltinName.substr(11, 7) != "EXAGON.")
break;
switch (BuiltinName[18]) {
default: break;
case 'A': // 25 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': // 2 strings to match.
switch (BuiltinName[22]) {
default: break;
case 'd': // 1 string to match.
if (BuiltinName.substr(23, 3) != "dsp")
break;
return Intrinsic::hexagon_A2_addsp; // "__builtin_HEXAGON.A2.addsp"
case 'n': // 1 string to match.
if (BuiltinName.substr(23, 3) != "dir")
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 (BuiltinName.substr(23, 3) != "xup")
break;
return Intrinsic::hexagon_A2_maxup; // "__builtin_HEXAGON.A2.maxup"
case 'i': // 1 string to match.
if (BuiltinName.substr(23, 3) != "nup")
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 (BuiltinName.substr(23, 2) != "tu")
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 (BuiltinName.substr(23, 3) != "bri")
break;
return Intrinsic::hexagon_A2_subri; // "__builtin_HEXAGON.A2.subri"
}
break;
case 't': // 4 strings to match.
if (BuiltinName.substr(22, 2) != "fr")
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': // 13 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 (BuiltinName.substr(23, 3) != "onj")
break;
return Intrinsic::hexagon_A2_vconj; // "__builtin_HEXAGON.A2.vconj"
case 'm': // 4 strings to match.
switch (BuiltinName[23]) {
default: break;
case 'a': // 2 strings to match.
if (BuiltinName[24] != 'x')
break;
switch (BuiltinName[25]) {
default: break;
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': // 2 strings to match.
if (BuiltinName[24] != 'n')
break;
switch (BuiltinName[25]) {
default: break;
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 (BuiltinName.substr(23, 2) != "ub")
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 (BuiltinName.substr(20, 6) != ".andnp")
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 (BuiltinName.substr(22, 2) != "mp")
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 (BuiltinName.substr(22, 2) != "ux")
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 (BuiltinName.substr(22, 2) != "fr")
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 (BuiltinName.substr(20, 6) != ".or_or")
break;
return Intrinsic::hexagon_C4_or_or; // "__builtin_HEXAGON.C4.or_or"
}
break;
case 'M': // 5 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 (BuiltinName.substr(22, 4) != "ccii")
break;
return Intrinsic::hexagon_M2_accii; // "__builtin_HEXAGON.M2.accii"
case 'm': // 1 string to match.
if (BuiltinName.substr(22, 4) != "pyui")
break;
return Intrinsic::hexagon_M2_mpyui; // "__builtin_HEXAGON.M2.mpyui"
case 'n': // 1 string to match.
if (BuiltinName.substr(22, 4) != "acci")
break;
return Intrinsic::hexagon_M2_nacci; // "__builtin_HEXAGON.M2.nacci"
case 'v': // 1 string to match.
if (BuiltinName.substr(22, 4) != "mac2")
break;
return Intrinsic::hexagon_M2_vmac2; // "__builtin_HEXAGON.M2.vmac2"
}
break;
case '4': // 1 string to match.
if (BuiltinName.substr(20, 6) != ".or_or")
break;
return Intrinsic::hexagon_M4_or_or; // "__builtin_HEXAGON.M4.or_or"
}
break;
case 'S': // 1 string to match.
if (BuiltinName.substr(19, 7) != "4.andnp")
break;
return Intrinsic::hexagon_S4_andnp; // "__builtin_HEXAGON.S4.andnp"
}
break;
case 'S': // 1 string to match.
if (BuiltinName.substr(11, 15) != "I.to.SXTHI.asrh")
break;
return Intrinsic::hexagon_SI_to_SXTHI_asrh; // "__builtin_SI.to.SXTHI.asrh"
}
break;
case 27: // 58 strings to match.
if (BuiltinName.substr(0, 18) != "__builtin_HEXAGON.")
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 'b': // 1 string to match.
if (BuiltinName.substr(23, 4) != "ssat")
break;
return Intrinsic::hexagon_A2_abssat; // "__builtin_HEXAGON.A2.abssat"
case 'd': // 1 string to match.
if (BuiltinName.substr(23, 4) != "dsat")
break;
return Intrinsic::hexagon_A2_addsat; // "__builtin_HEXAGON.A2.addsat"
}
break;
case 'n': // 1 string to match.
if (BuiltinName.substr(22, 5) != "egsat")
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 (BuiltinName.substr(23, 4) != "bsat")
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 (BuiltinName.substr(25, 2) != "dh")
break;
return Intrinsic::hexagon_A2_svaddh; // "__builtin_HEXAGON.A2.svaddh"
case 'v': // 1 string to match.
if (BuiltinName.substr(25, 2) != "gh")
break;
return Intrinsic::hexagon_A2_svavgh; // "__builtin_HEXAGON.A2.svavgh"
}
break;
case 's': // 1 string to match.
if (BuiltinName.substr(24, 3) != "ubh")
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 (BuiltinName.substr(24, 2) != "xu")
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 (BuiltinName.substr(24, 2) != "nu")
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 (BuiltinName.substr(23, 3) != "avg")
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 (BuiltinName.substr(23, 2) != "ub")
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': // 1 string to match.
if (BuiltinName.substr(20, 7) != ".rcmpeq")
break;
return Intrinsic::hexagon_A4_rcmpeq; // "__builtin_HEXAGON.A4.rcmpeq"
}
break;
case 'C': // 12 strings to match.
switch (BuiltinName[19]) {
default: break;
case '2': // 7 strings to match.
if (BuiltinName.substr(20, 4) != ".cmp")
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 (BuiltinName.substr(25, 2) != "tu")
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 (BuiltinName.substr(22, 5) != "nd_or")
break;
return Intrinsic::hexagon_C4_and_or; // "__builtin_HEXAGON.C4.and_or"
case 'c': // 2 strings to match.
if (BuiltinName.substr(22, 2) != "mp")
break;
switch (BuiltinName[24]) {
default: break;
case 'l': // 1 string to match.
if (BuiltinName.substr(25, 2) != "te")
break;
return Intrinsic::hexagon_C4_cmplte; // "__builtin_HEXAGON.C4.cmplte"
case 'n': // 1 string to match.
if (BuiltinName.substr(25, 2) != "eq")
break;
return Intrinsic::hexagon_C4_cmpneq; // "__builtin_HEXAGON.C4.cmpneq"
}
break;
case 'o': // 2 strings to match.
if (BuiltinName.substr(22, 2) != "r_")
break;
switch (BuiltinName[24]) {
default: break;
case 'a': // 1 string to match.
if (BuiltinName.substr(25, 2) != "nd")
break;
return Intrinsic::hexagon_C4_or_and; // "__builtin_HEXAGON.C4.or_and"
case 'o': // 1 string to match.
if (BuiltinName.substr(25, 2) != "rn")
break;
return Intrinsic::hexagon_C4_or_orn; // "__builtin_HEXAGON.C4.or_orn"
}
break;
}
break;
}
break;
case 'M': // 10 strings to match.
switch (BuiltinName[19]) {
default: break;
case '2': // 6 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 (BuiltinName.substr(23, 3) != "csi")
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 (BuiltinName.substr(25, 2) != "up")
break;
return Intrinsic::hexagon_M2_mpy_up; // "__builtin_HEXAGON.M2.mpy.up"
case 's': // 1 string to match.
if (BuiltinName.substr(25, 2) != "mi")
break;
return Intrinsic::hexagon_M2_mpysmi; // "__builtin_HEXAGON.M2.mpysmi"
}
break;
}
break;
case 'n': // 1 string to match.
if (BuiltinName.substr(22, 5) != "accii")
break;
return Intrinsic::hexagon_M2_naccii; // "__builtin_HEXAGON.M2.naccii"
case 's': // 1 string to match.
if (BuiltinName.substr(22, 5) != "ubacc")
break;
return Intrinsic::hexagon_M2_subacc; // "__builtin_HEXAGON.M2.subacc"
}
break;
case '4': // 4 strings to match.
if (BuiltinName[20] != '.')
break;
switch (BuiltinName[21]) {
default: break;
case 'a': // 1 string to match.
if (BuiltinName.substr(22, 5) != "nd_or")
break;
return Intrinsic::hexagon_M4_and_or; // "__builtin_HEXAGON.M4.and_or"
case 'o': // 2 strings to match.
if (BuiltinName.substr(22, 2) != "r_")
break;
switch (BuiltinName[24]) {
default: break;
case 'a': // 1 string to match.
if (BuiltinName.substr(25, 2) != "nd")
break;
return Intrinsic::hexagon_M4_or_and; // "__builtin_HEXAGON.M4.or_and"
case 'x': // 1 string to match.
if (BuiltinName.substr(25, 2) != "or")
break;
return Intrinsic::hexagon_M4_or_xor; // "__builtin_HEXAGON.M4.or_xor"
}
break;
case 'x': // 1 string to match.
if (BuiltinName.substr(22, 5) != "or_or")
break;
return Intrinsic::hexagon_M4_xor_or; // "__builtin_HEXAGON.M4.xor_or"
}
break;
}
break;
case 'S': // 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 'i': // 1 string to match.
if (BuiltinName.substr(22, 5) != "nsert")
break;
return Intrinsic::hexagon_S2_insert; // "__builtin_HEXAGON.S2.insert"
case 'p': // 1 string to match.
if (BuiltinName.substr(22, 5) != "ackhl")
break;
return Intrinsic::hexagon_S2_packhl; // "__builtin_HEXAGON.S2.packhl"
case 'v': // 6 strings to match.
switch (BuiltinName[22]) {
default: break;
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 (BuiltinName.substr(23, 2) != "xt")
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': // 1 string to match.
if (BuiltinName.substr(20, 7) != ".or_ori")
break;
return Intrinsic::hexagon_S4_or_ori; // "__builtin_HEXAGON.S4.or_ori"
}
break;
}
break;
case 28: // 71 strings to match.
if (BuiltinName.substr(0, 18) != "__builtin_HEXAGON.")
break;
switch (BuiltinName[18]) {
default: break;
case 'A': // 25 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 (BuiltinName.substr(22, 6) != "ddpsat")
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 (BuiltinName.substr(25, 3) != "dhs")
break;
return Intrinsic::hexagon_A2_svaddhs; // "__builtin_HEXAGON.A2.svaddhs"
case 'v': // 1 string to match.
if (BuiltinName.substr(25, 3) != "ghs")
break;
return Intrinsic::hexagon_A2_svavghs; // "__builtin_HEXAGON.A2.svavghs"
}
break;
case 'n': // 1 string to match.
if (BuiltinName.substr(24, 4) != "avgh")
break;
return Intrinsic::hexagon_A2_svnavgh; // "__builtin_HEXAGON.A2.svnavgh"
case 's': // 1 string to match.
if (BuiltinName.substr(24, 4) != "ubhs")
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 (BuiltinName.substr(24, 2) != "du")
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 (BuiltinName.substr(26, 2) != "cr")
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 (BuiltinName.substr(26, 2) != "cr")
break;
return Intrinsic::hexagon_A2_vavgwcr; // "__builtin_HEXAGON.A2.vavgwcr"
}
break;
}
break;
case 'c': // 5 strings to match.
if (BuiltinName.substr(23, 2) != "mp")
break;
switch (BuiltinName[25]) {
default: break;
case 'b': // 1 string to match.
if (BuiltinName.substr(26, 2) != "eq")
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 (BuiltinName.substr(23, 3) != "avg")
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 (BuiltinName.substr(24, 4) != "ddub")
break;
return Intrinsic::hexagon_A2_vraddub; // "__builtin_HEXAGON.A2.vraddub"
case 's': // 1 string to match.
if (BuiltinName.substr(24, 4) != "adub")
break;
return Intrinsic::hexagon_A2_vrsadub; // "__builtin_HEXAGON.A2.vrsadub"
}
break;
case 's': // 2 strings to match.
if (BuiltinName.substr(23, 3) != "ubu")
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': // 2 strings to match.
if (BuiltinName.substr(20, 5) != ".rcmp")
break;
switch (BuiltinName[25]) {
default: break;
case 'e': // 1 string to match.
if (BuiltinName.substr(26, 2) != "qi")
break;
return Intrinsic::hexagon_A4_rcmpeqi; // "__builtin_HEXAGON.A4.rcmpeqi"
case 'n': // 1 string to match.
if (BuiltinName.substr(26, 2) != "eq")
break;
return Intrinsic::hexagon_A4_rcmpneq; // "__builtin_HEXAGON.A4.rcmpneq"
}
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 (BuiltinName.substr(22, 3) != "its")
break;
switch (BuiltinName[25]) {
default: break;
case 'c': // 1 string to match.
if (BuiltinName.substr(26, 2) != "lr")
break;
return Intrinsic::hexagon_C2_bitsclr; // "__builtin_HEXAGON.C2.bitsclr"
case 's': // 1 string to match.
if (BuiltinName.substr(26, 2) != "et")
break;
return Intrinsic::hexagon_C2_bitsset; // "__builtin_HEXAGON.C2.bitsset"
}
break;
case 'c': // 3 strings to match.
if (BuiltinName.substr(22, 3) != "mpg")
break;
switch (BuiltinName[25]) {
default: break;
case 'e': // 1 string to match.
if (BuiltinName.substr(26, 2) != "ui")
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 (BuiltinName.substr(22, 6) != "itpack")
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 (BuiltinName.substr(22, 3) != "nd_")
break;
switch (BuiltinName[25]) {
default: break;
case 'a': // 1 string to match.
if (BuiltinName.substr(26, 2) != "nd")
break;
return Intrinsic::hexagon_C4_and_and; // "__builtin_HEXAGON.C4.and_and"
case 'o': // 1 string to match.
if (BuiltinName.substr(26, 2) != "rn")
break;
return Intrinsic::hexagon_C4_and_orn; // "__builtin_HEXAGON.C4.and_orn"
}
break;
case 'c': // 3 strings to match.
if (BuiltinName.substr(22, 2) != "mp")
break;
switch (BuiltinName[24]) {
default: break;
case 'l': // 2 strings to match.
if (BuiltinName.substr(25, 2) != "te")
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 (BuiltinName.substr(25, 3) != "eqi")
break;
return Intrinsic::hexagon_C4_cmpneqi; // "__builtin_HEXAGON.C4.cmpneqi"
}
break;
case 'o': // 1 string to match.
if (BuiltinName.substr(22, 6) != "r_andn")
break;
return Intrinsic::hexagon_C4_or_andn; // "__builtin_HEXAGON.C4.or_andn"
}
break;
}
break;
case 'M': // 7 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 (BuiltinName.substr(22, 6) != "pyu.up")
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 (BuiltinName.substr(23, 5) != "ac2es")
break;
return Intrinsic::hexagon_M2_vmac2es; // "__builtin_HEXAGON.M2.vmac2es"
case 'r': // 1 string to match.
if (BuiltinName.substr(23, 5) != "adduh")
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 (BuiltinName.substr(22, 3) != "nd_")
break;
switch (BuiltinName[25]) {
default: break;
case 'a': // 1 string to match.
if (BuiltinName.substr(26, 2) != "nd")
break;
return Intrinsic::hexagon_M4_and_and; // "__builtin_HEXAGON.M4.and_and"
case 'x': // 1 string to match.
if (BuiltinName.substr(26, 2) != "or")
break;
return Intrinsic::hexagon_M4_and_xor; // "__builtin_HEXAGON.M4.and_xor"
}
break;
case 'o': // 1 string to match.
if (BuiltinName.substr(22, 6) != "r_andn")
break;
return Intrinsic::hexagon_M4_or_andn; // "__builtin_HEXAGON.M4.or_andn"
case 'x': // 1 string to match.
if (BuiltinName.substr(22, 6) != "or_and")
break;
return Intrinsic::hexagon_M4_xor_and; // "__builtin_HEXAGON.M4.xor_and"
}
break;
}
break;
case 'S': // 27 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': // 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 (BuiltinName.substr(22, 6) != "lbnorm")
break;
return Intrinsic::hexagon_S2_clbnorm; // "__builtin_HEXAGON.S2.clbnorm"
case 'i': // 1 string to match.
if (BuiltinName.substr(22, 6) != "nsertp")
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 (BuiltinName.substr(24, 3) != ".r.")
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 (BuiltinName.substr(22, 6) != "arityp")
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 (BuiltinName.substr(23, 3) != "uff")
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 (BuiltinName.substr(23, 5) != "sathb")
break;
return Intrinsic::hexagon_S2_svsathb; // "__builtin_HEXAGON.S2.svsathb"
}
break;
case 'v': // 2 strings to match.
if (BuiltinName.substr(22, 3) != "sat")
break;
switch (BuiltinName[25]) {
default: break;
case 'h': // 1 string to match.
if (BuiltinName.substr(26, 2) != "ub")
break;
return Intrinsic::hexagon_S2_vsathub; // "__builtin_HEXAGON.S2.vsathub"
case 'w': // 1 string to match.
if (BuiltinName.substr(26, 2) != "uh")
break;
return Intrinsic::hexagon_S2_vsatwuh; // "__builtin_HEXAGON.S2.vsatwuh"
}
break;
}
break;
case '4': // 3 strings to match.
if (BuiltinName[20] != '.')
break;
switch (BuiltinName[21]) {
default: break;
case 'a': // 1 string to match.
if (BuiltinName.substr(22, 6) != "ddaddi")
break;
return Intrinsic::hexagon_S4_addaddi; // "__builtin_HEXAGON.S4.addaddi"
case 'o': // 1 string to match.
if (BuiltinName.substr(22, 6) != "r_andi")
break;
return Intrinsic::hexagon_S4_or_andi; // "__builtin_HEXAGON.S4.or_andi"
case 's': // 1 string to match.
if (BuiltinName.substr(22, 6) != "ubaddi")
break;
return Intrinsic::hexagon_S4_subaddi; // "__builtin_HEXAGON.S4.subaddi"
}
break;
}
break;
}
break;
case 29: // 69 strings to match.
if (BuiltinName.substr(0, 18) != "__builtin_HEXAGON.")
break;
switch (BuiltinName[18]) {
default: break;
case 'A': // 14 strings to match.
switch (BuiltinName[19]) {
default: break;
case '2': // 10 strings to match.
if (BuiltinName[20] != '.')
break;
switch (BuiltinName[21]) {
default: break;
case 'c': // 1 string to match.
if (BuiltinName.substr(22, 7) != "ombinew")
break;
return Intrinsic::hexagon_A2_combinew; // "__builtin_HEXAGON.A2.combinew"
case 's': // 2 strings to match.
if (BuiltinName[22] != 'v')
break;
switch (BuiltinName[23]) {
default: break;
case 'a': // 1 string to match.
if (BuiltinName.substr(24, 5) != "dduhs")
break;
return Intrinsic::hexagon_A2_svadduhs; // "__builtin_HEXAGON.A2.svadduhs"
case 's': // 1 string to match.
if (BuiltinName.substr(24, 5) != "ubuhs")
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 (BuiltinName.substr(23, 2) != "bs")
break;
switch (BuiltinName[25]) {
default: break;
case 'h': // 1 string to match.
if (BuiltinName.substr(26, 3) != "sat")
break;
return Intrinsic::hexagon_A2_vabshsat; // "__builtin_HEXAGON.A2.vabshsat"
case 'w': // 1 string to match.
if (BuiltinName.substr(26, 3) != "sat")
break;
return Intrinsic::hexagon_A2_vabswsat; // "__builtin_HEXAGON.A2.vabswsat"
}
break;
case 'c': // 3 strings to match.
if (BuiltinName.substr(23, 2) != "mp")
break;
switch (BuiltinName[25]) {
default: break;
case 'b': // 1 string to match.
if (BuiltinName.substr(26, 3) != "gtu")
break;
return Intrinsic::hexagon_A2_vcmpbgtu; // "__builtin_HEXAGON.A2.vcmpbgtu"
case 'h': // 1 string to match.
if (BuiltinName.substr(26, 3) != "gtu")
break;
return Intrinsic::hexagon_A2_vcmphgtu; // "__builtin_HEXAGON.A2.vcmphgtu"
case 'w': // 1 string to match.
if (BuiltinName.substr(26, 3) != "gtu")
break;
return Intrinsic::hexagon_A2_vcmpwgtu; // "__builtin_HEXAGON.A2.vcmpwgtu"
}
break;
case 'n': // 2 strings to match.
if (BuiltinName.substr(23, 3) != "avg")
break;
switch (BuiltinName[26]) {
default: break;
case 'h': // 1 string to match.
if (BuiltinName.substr(27, 2) != "cr")
break;
return Intrinsic::hexagon_A2_vnavghcr; // "__builtin_HEXAGON.A2.vnavghcr"
case 'w': // 1 string to match.
if (BuiltinName.substr(27, 2) != "cr")
break;
return Intrinsic::hexagon_A2_vnavgwcr; // "__builtin_HEXAGON.A2.vnavgwcr"
}
break;
}
break;
}
break;
case '4': // 4 strings to match.
if (BuiltinName[20] != '.')
break;
switch (BuiltinName[21]) {
default: break;
case 'm': // 1 string to match.
if (BuiltinName.substr(22, 7) != "odwrapu")
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 (BuiltinName.substr(23, 6) != "mpneqi")
break;
return Intrinsic::hexagon_A4_rcmpneqi; // "__builtin_HEXAGON.A4.rcmpneqi"
case 'o': // 2 strings to match.
if (BuiltinName.substr(23, 5) != "und_r")
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;
}
break;
}
break;
case 'C': // 3 strings to match.
switch (BuiltinName[19]) {
default: break;
case '2': // 1 string to match.
if (BuiltinName.substr(20, 9) != ".bitsclri")
break;
return Intrinsic::hexagon_C2_bitsclri; // "__builtin_HEXAGON.C2.bitsclri"
case '4': // 2 strings to match.
if (BuiltinName[20] != '.')
break;
switch (BuiltinName[21]) {
default: break;
case 'a': // 1 string to match.
if (BuiltinName.substr(22, 7) != "nd_andn")
break;
return Intrinsic::hexagon_C4_and_andn; // "__builtin_HEXAGON.C4.and_andn"
case 'c': // 1 string to match.
if (BuiltinName.substr(22, 7) != "mplteui")
break;
return Intrinsic::hexagon_C4_cmplteui; // "__builtin_HEXAGON.C4.cmplteui"
}
break;
}
break;
case 'M': // 20 strings to match.
switch (BuiltinName[19]) {
default: break;
case '2': // 17 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 (BuiltinName.substr(26, 3) != ".s0")
break;
return Intrinsic::hexagon_M2_cmaci_s0; // "__builtin_HEXAGON.M2.cmaci.s0"
case 'r': // 1 string to match.
if (BuiltinName.substr(26, 3) != ".s0")
break;
return Intrinsic::hexagon_M2_cmacr_s0; // "__builtin_HEXAGON.M2.cmacr.s0"
case 's': // 2 strings to match.
if (BuiltinName.substr(26, 2) != ".s")
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 (BuiltinName.substr(26, 3) != ".s0")
break;
return Intrinsic::hexagon_M2_cmpyi_s0; // "__builtin_HEXAGON.M2.cmpyi.s0"
case 'r': // 1 string to match.
if (BuiltinName.substr(26, 3) != ".s0")
break;
return Intrinsic::hexagon_M2_cmpyr_s0; // "__builtin_HEXAGON.M2.cmpyr.s0"
case 's': // 2 strings to match.
if (BuiltinName.substr(26, 2) != ".s")
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 (BuiltinName.substr(23, 5) != "acs.s")
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': // 4 strings to match.
if (BuiltinName.substr(22, 3) != "mpy")
break;
switch (BuiltinName[25]) {
default: break;
case 'h': // 2 strings to match.
if (BuiltinName.substr(26, 2) != ".s")
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 (BuiltinName.substr(26, 2) != ".s")
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 'v': // 2 strings to match.
if (BuiltinName.substr(22, 2) != "rm")
break;
switch (BuiltinName[24]) {
default: break;
case 'a': // 1 string to match.
if (BuiltinName.substr(25, 4) != "c.s0")
break;
return Intrinsic::hexagon_M2_vrmac_s0; // "__builtin_HEXAGON.M2.vrmac.s0"
case 'p': // 1 string to match.
if (BuiltinName.substr(25, 4) != "y.s0")
break;
return Intrinsic::hexagon_M2_vrmpy_s0; // "__builtin_HEXAGON.M2.vrmpy.s0"
}
break;
case 'x': // 1 string to match.
if (BuiltinName.substr(22, 7) != "or.xacc")
break;
return Intrinsic::hexagon_M2_xor_xacc; // "__builtin_HEXAGON.M2.xor.xacc"
}
break;
case '4': // 3 strings to match.
if (BuiltinName[20] != '.')
break;
switch (BuiltinName[21]) {
default: break;
case 'a': // 1 string to match.
if (BuiltinName.substr(22, 7) != "nd_andn")
break;
return Intrinsic::hexagon_M4_and_andn; // "__builtin_HEXAGON.M4.and_andn"
case 'x': // 2 strings to match.
if (BuiltinName.substr(22, 3) != "or_")
break;
switch (BuiltinName[25]) {
default: break;
case 'a': // 1 string to match.
if (BuiltinName.substr(26, 3) != "ndn")
break;
return Intrinsic::hexagon_M4_xor_andn; // "__builtin_HEXAGON.M4.xor_andn"
case 'x': // 1 string to match.
if (BuiltinName.substr(26, 3) != "acc")
break;
return Intrinsic::hexagon_M4_xor_xacc; // "__builtin_HEXAGON.M4.xor_xacc"
}
break;
}
break;
}
break;
case 'S': // 32 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 (BuiltinName.substr(26, 2) != ".v")
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 (BuiltinName.substr(26, 2) != ".v")
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 (BuiltinName.substr(26, 2) != ".v")
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 (BuiltinName.substr(26, 2) != ".v")
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 (BuiltinName.substr(22, 6) != "lrbit.")
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 (BuiltinName.substr(22, 7) != "xtractu")
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 (BuiltinName.substr(24, 4) != ".r.v")
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 (BuiltinName.substr(26, 2) != ".v")
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 (BuiltinName.substr(26, 2) != ".v")
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 (BuiltinName.substr(23, 5) != "tbit.")
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 (BuiltinName.substr(23, 6) != "sathub")
break;
return Intrinsic::hexagon_S2_svsathub; // "__builtin_HEXAGON.S2.svsathub"
}
break;
case 't': // 2 strings to match.
if (BuiltinName.substr(22, 6) != "stbit.")
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 (BuiltinName.substr(23, 4) != "lign")
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 (BuiltinName.substr(23, 6) != "rotate")
break;
return Intrinsic::hexagon_S2_vcrotate; // "__builtin_HEXAGON.S2.vcrotate"
case 's': // 2 strings to match.
if (BuiltinName.substr(23, 5) != "platr")
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 (BuiltinName.substr(23, 3) != "run")
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': // 1 string to match.
if (BuiltinName.substr(20, 9) != ".or_andix")
break;
return Intrinsic::hexagon_S4_or_andix; // "__builtin_HEXAGON.S4.or_andix"
}
break;
}
break;
case 30: // 48 strings to match.
if (BuiltinName.substr(0, 18) != "__builtin_HEXAGON.")
break;
switch (BuiltinName[18]) {
default: break;
case 'A': // 5 strings to match.
switch (BuiltinName[19]) {
default: break;
case '2': // 1 string to match.
if (BuiltinName.substr(20, 10) != ".combineii")
break;
return Intrinsic::hexagon_A2_combineii; // "__builtin_HEXAGON.A2.combineii"
case '4': // 4 strings to match.
if (BuiltinName.substr(20, 2) != ".c")
break;
switch (BuiltinName[22]) {
default: break;
case 'o': // 2 strings to match.
if (BuiltinName.substr(23, 5) != "mbine")
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 (BuiltinName.substr(23, 6) != "ound_r")
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;
}
break;
case 'C': // 1 string to match.
if (BuiltinName.substr(19, 11) != "2.pxfer.map")
break;
return Intrinsic::hexagon_C2_pxfer_map; // "__builtin_HEXAGON.C2.pxfer.map"
case 'M': // 38 strings to match.
if (BuiltinName.substr(19, 2) != "2.")
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 (BuiltinName.substr(24, 5) != "csc.s")
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 (BuiltinName.substr(26, 3) != "s.s")
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 (BuiltinName.substr(26, 3) != "c.s")
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 (BuiltinName.substr(23, 6) != "acsc.s")
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 'm': // 20 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 (BuiltinName.substr(26, 3) != "s.s")
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 (BuiltinName.substr(26, 3) != "s.s")
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 (BuiltinName.substr(26, 3) != ".rs")
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 (BuiltinName.substr(26, 3) != ".rs")
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 (BuiltinName.substr(27, 2) != ".s")
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 (BuiltinName.substr(27, 2) != ".s")
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': // 8 strings to match.
if (BuiltinName.substr(23, 2) != "y.")
break;
switch (BuiltinName[25]) {
default: break;
case 'h': // 4 strings to match.
switch (BuiltinName[26]) {
default: break;
case 'h': // 2 strings to match.
if (BuiltinName.substr(27, 2) != ".s")
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 (BuiltinName.substr(27, 2) != ".s")
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 (BuiltinName.substr(27, 2) != ".s")
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 (BuiltinName.substr(27, 2) != ".s")
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;
}
break;
}
break;
case 'v': // 10 strings to match.
switch (BuiltinName[22]) {
default: break;
case 'a': // 2 strings to match.
if (BuiltinName.substr(23, 6) != "bsdiff")
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 (BuiltinName.substr(25, 4) != "cs.s")
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 (BuiltinName.substr(25, 4) != "ys.s")
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 (BuiltinName.substr(24, 5) != "c2s.s")
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 (BuiltinName.substr(24, 5) != "y2s.s")
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 'S': // 4 strings to match.
if (BuiltinName.substr(19, 2) != "2.")
break;
switch (BuiltinName[21]) {
default: break;
case 'e': // 1 string to match.
if (BuiltinName.substr(22, 8) != "xtractup")
break;
return Intrinsic::hexagon_S2_extractup; // "__builtin_HEXAGON.S2.extractup"
case 'i': // 1 string to match.
if (BuiltinName.substr(22, 8) != "nsert.rp")
break;
return Intrinsic::hexagon_S2_insert_rp; // "__builtin_HEXAGON.S2.insert.rp"
case 'v': // 2 strings to match.
if (BuiltinName.substr(22, 6) != "splice")
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;
}
break;
case 31: // 66 strings to match.
if (BuiltinName.substr(0, 18) != "__builtin_HEXAGON.")
break;
switch (BuiltinName[18]) {
default: break;
case 'A': // 4 strings to match.
if (BuiltinName.substr(19, 10) != "2.combine.")
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 'M': // 45 strings to match.
if (BuiltinName.substr(19, 2) != "2.")
break;
switch (BuiltinName[21]) {
default: break;
case 'c': // 2 strings to match.
if (BuiltinName.substr(22, 8) != "mpyrsc.s")
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 (BuiltinName.substr(22, 4) != "pmpy")
break;
switch (BuiltinName[26]) {
default: break;
case 's': // 1 string to match.
if (BuiltinName.substr(27, 4) != "s.s0")
break;
return Intrinsic::hexagon_M2_dpmpyss_s0; // "__builtin_HEXAGON.M2.dpmpyss.s0"
case 'u': // 1 string to match.
if (BuiltinName.substr(27, 4) != "u.s0")
break;
return Intrinsic::hexagon_M2_dpmpyuu_s0; // "__builtin_HEXAGON.M2.dpmpyuu.s0"
}
break;
case 'h': // 2 strings to match.
if (BuiltinName.substr(22, 4) != "mmpy")
break;
switch (BuiltinName[26]) {
default: break;
case 'h': // 1 string to match.
if (BuiltinName.substr(27, 4) != ".rs1")
break;
return Intrinsic::hexagon_M2_hmmpyh_rs1; // "__builtin_HEXAGON.M2.hmmpyh.rs1"
case 'l': // 1 string to match.
if (BuiltinName.substr(27, 4) != ".rs1")
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 (BuiltinName.substr(26, 4) != "s.rs")
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 (BuiltinName.substr(26, 4) != "s.rs")
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 (BuiltinName.substr(27, 3) != "s.s")
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 (BuiltinName.substr(27, 3) != "s.s")
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 (BuiltinName.substr(24, 2) != "yu")
break;
switch (BuiltinName[26]) {
default: break;
case 'h': // 2 strings to match.
if (BuiltinName.substr(27, 3) != ".rs")
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 (BuiltinName.substr(27, 3) != ".rs")
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 (BuiltinName.substr(28, 2) != ".s")
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 (BuiltinName.substr(28, 2) != ".s")
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 (BuiltinName.substr(28, 2) != ".s")
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 (BuiltinName.substr(28, 2) != ".s")
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 (BuiltinName.substr(28, 2) != ".s")
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 (BuiltinName.substr(28, 2) != ".s")
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 (BuiltinName.substr(28, 2) != ".s")
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 (BuiltinName.substr(28, 2) != ".s")
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': // 11 strings to match.
switch (BuiltinName[22]) {
default: break;
case 'd': // 2 strings to match.
if (BuiltinName.substr(23, 7) != "mpyrs.s")
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': // 4 strings to match.
switch (BuiltinName[23]) {
default: break;
case 'a': // 2 strings to match.
if (BuiltinName.substr(24, 6) != "c2es.s")
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 'p': // 2 strings to match.
if (BuiltinName.substr(24, 6) != "y2es.s")
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;
}
break;
case 'r': // 5 strings to match.
if (BuiltinName.substr(23, 2) != "cm")
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 (BuiltinName.substr(28, 3) != ".s0")
break;
return Intrinsic::hexagon_M2_vrcmaci_s0; // "__builtin_HEXAGON.M2.vrcmaci.s0"
case 'r': // 1 string to match.
if (BuiltinName.substr(28, 3) != ".s0")
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 (BuiltinName.substr(28, 3) != ".s0")
break;
return Intrinsic::hexagon_M2_vrcmpyi_s0; // "__builtin_HEXAGON.M2.vrcmpyi.s0"
case 'r': // 1 string to match.
if (BuiltinName.substr(28, 3) != ".s0")
break;
return Intrinsic::hexagon_M2_vrcmpyr_s0; // "__builtin_HEXAGON.M2.vrcmpyr.s0"
case 's': // 1 string to match.
if (BuiltinName.substr(28, 3) != ".s1")
break;
return Intrinsic::hexagon_M2_vrcmpys_s1; // "__builtin_HEXAGON.M2.vrcmpys.s1"
}
break;
}
break;
}
break;
}
break;
case 'S': // 17 strings to match.
if (BuiltinName.substr(19, 2) != "2.")
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 (BuiltinName.substr(28, 3) != ".or")
break;
return Intrinsic::hexagon_S2_asl_i_p_or; // "__builtin_HEXAGON.S2.asl.i.p.or"
case 'r': // 1 string to match.
if (BuiltinName.substr(28, 3) != ".or")
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 (BuiltinName.substr(28, 3) != ".or")
break;
return Intrinsic::hexagon_S2_asl_r_p_or; // "__builtin_HEXAGON.S2.asl.r.p.or"
case 'r': // 1 string to match.
if (BuiltinName.substr(28, 3) != ".or")
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 (BuiltinName.substr(28, 3) != ".or")
break;
return Intrinsic::hexagon_S2_asr_i_p_or; // "__builtin_HEXAGON.S2.asr.i.p.or"
case 'r': // 1 string to match.
if (BuiltinName.substr(28, 3) != ".or")
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 (BuiltinName.substr(28, 3) != ".or")
break;
return Intrinsic::hexagon_S2_asr_r_p_or; // "__builtin_HEXAGON.S2.asr.r.p.or"
case 'r': // 1 string to match.
if (BuiltinName.substr(28, 3) != ".or")
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 (BuiltinName.substr(24, 7) != "ertp.rp")
break;
return Intrinsic::hexagon_S2_insertp_rp; // "__builtin_HEXAGON.S2.insertp.rp"
case 't': // 1 string to match.
if (BuiltinName.substr(24, 7) != "erleave")
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 (BuiltinName.substr(24, 3) != ".r.")
break;
switch (BuiltinName[27]) {
default: break;
case 'p': // 1 string to match.
if (BuiltinName.substr(28, 3) != ".or")
break;
return Intrinsic::hexagon_S2_lsl_r_p_or; // "__builtin_HEXAGON.S2.lsl.r.p.or"
case 'r': // 1 string to match.
if (BuiltinName.substr(28, 3) != ".or")
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 (BuiltinName.substr(28, 3) != ".or")
break;
return Intrinsic::hexagon_S2_lsr_i_p_or; // "__builtin_HEXAGON.S2.lsr.i.p.or"
case 'r': // 1 string to match.
if (BuiltinName.substr(28, 3) != ".or")
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 (BuiltinName.substr(28, 3) != ".or")
break;
return Intrinsic::hexagon_S2_lsr_r_p_or; // "__builtin_HEXAGON.S2.lsr.r.p.or"
case 'r': // 1 string to match.
if (BuiltinName.substr(28, 3) != ".or")
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 (BuiltinName.substr(22, 9) != "rndpackwh")
break;
return Intrinsic::hexagon_S2_vrndpackwh; // "__builtin_HEXAGON.S2.vrndpackwh"
}
break;
}
break;
case 32: // 84 strings to match.
if (BuiltinName.substr(0, 18) != "__builtin_HEXAGON.")
break;
switch (BuiltinName[18]) {
default: break;
case 'A': // 16 strings to match.
if (BuiltinName.substr(19, 2) != "2.")
break;
switch (BuiltinName[21]) {
default: break;
case 'a': // 8 strings to match.
if (BuiltinName.substr(22, 4) != "ddh.")
break;
switch (BuiltinName[26]) {
default: break;
case 'h': // 4 strings to match.
if (BuiltinName.substr(27, 3) != "16.")
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': // 4 strings to match.
if (BuiltinName.substr(27, 3) != "16.")
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_l16_hh; // "__builtin_HEXAGON.A2.addh.l16.hh"
case 'l': // 1 string to match.
return Intrinsic::hexagon_A2_addh_l16_hl; // "__builtin_HEXAGON.A2.addh.l16.hl"
}
break;
case 'l': // 2 strings to match.
switch (BuiltinName[31]) {
default: break;
case 'h': // 1 string to match.
return Intrinsic::hexagon_A2_addh_l16_lh; // "__builtin_HEXAGON.A2.addh.l16.lh"
case 'l': // 1 string to match.
return Intrinsic::hexagon_A2_addh_l16_ll; // "__builtin_HEXAGON.A2.addh.l16.ll"
}
break;
}
break;
}
break;
case 's': // 6 strings to match.
if (BuiltinName.substr(22, 4) != "ubh.")
break;
switch (BuiltinName[26]) {
default: break;
case 'h': // 4 strings to match.
if (BuiltinName.substr(27, 3) != "16.")
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 (BuiltinName.substr(27, 3) != "16.")
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 (BuiltinName.substr(24, 8) != "ddub.acc")
break;
return Intrinsic::hexagon_A2_vraddub_acc; // "__builtin_HEXAGON.A2.vraddub.acc"
case 's': // 1 string to match.
if (BuiltinName.substr(24, 8) != "adub.acc")
break;
return Intrinsic::hexagon_A2_vrsadub_acc; // "__builtin_HEXAGON.A2.vrsadub.acc"
}
break;
}
break;
case 'C': // 1 string to match.
if (BuiltinName.substr(19, 13) != "4.fastcorner9")
break;
return Intrinsic::hexagon_C4_fastcorner9; // "__builtin_HEXAGON.C4.fastcorner9"
case 'M': // 16 strings to match.
if (BuiltinName.substr(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 (BuiltinName.substr(23, 3) != "acu")
break;
switch (BuiltinName[26]) {
default: break;
case 'h': // 2 strings to match.
if (BuiltinName.substr(27, 4) != "s.rs")
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 (BuiltinName.substr(27, 4) != "s.rs")
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 (BuiltinName.substr(23, 4) != "yud.")
break;
switch (BuiltinName[27]) {
default: break;
case 'h': // 4 strings to match.
switch (BuiltinName[28]) {
default: break;
case 'h': // 2 strings to match.
if (BuiltinName.substr(29, 2) != ".s")
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 (BuiltinName.substr(29, 2) != ".s")
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 (BuiltinName.substr(29, 2) != ".s")
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 (BuiltinName.substr(29, 2) != ".s")
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 (BuiltinName.substr(22, 3) != "rcm")
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 (BuiltinName.substr(28, 4) != ".s0c")
break;
return Intrinsic::hexagon_M2_vrcmaci_s0c; // "__builtin_HEXAGON.M2.vrcmaci.s0c"
case 'r': // 1 string to match.
if (BuiltinName.substr(28, 4) != ".s0c")
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 (BuiltinName.substr(28, 4) != ".s0c")
break;
return Intrinsic::hexagon_M2_vrcmpyi_s0c; // "__builtin_HEXAGON.M2.vrcmpyi.s0c"
case 'r': // 1 string to match.
if (BuiltinName.substr(28, 4) != ".s0c")
break;
return Intrinsic::hexagon_M2_vrcmpyr_s0c; // "__builtin_HEXAGON.M2.vrcmpyr.s0c"
}
break;
}
break;
}
break;
case 'S': // 51 strings to match.
if (BuiltinName.substr(19, 2) != "2.")
break;
switch (BuiltinName[21]) {
default: break;
case 'a': // 29 strings to match.
switch (BuiltinName[22]) {
default: break;
case 'd': // 1 string to match.
if (BuiltinName.substr(23, 9) != "dasl.rrri")
break;
return Intrinsic::hexagon_S2_addasl_rrri; // "__builtin_HEXAGON.S2.addasl.rrri"
case 's': // 28 strings to match.
switch (BuiltinName[23]) {
default: break;
case 'l': // 14 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 (BuiltinName.substr(30, 2) != "ac")
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 (BuiltinName.substr(30, 2) != "ac")
break;
return Intrinsic::hexagon_S2_asl_i_r_nac; // "__builtin_HEXAGON.S2.asl.i.r.nac"
case 's': // 1 string to match.
if (BuiltinName.substr(30, 2) != "at")
break;
return Intrinsic::hexagon_S2_asl_i_r_sat; // "__builtin_HEXAGON.S2.asl.i.r.sat"
}
break;
}
break;
case 'r': // 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_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 (BuiltinName.substr(30, 2) != "ac")
break;
return Intrinsic::hexagon_S2_asl_r_p_nac; // "__builtin_HEXAGON.S2.asl.r.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_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 (BuiltinName.substr(30, 2) != "ac")
break;
return Intrinsic::hexagon_S2_asl_r_r_nac; // "__builtin_HEXAGON.S2.asl.r.r.nac"
case 's': // 1 string to match.
if (BuiltinName.substr(30, 2) != "at")
break;
return Intrinsic::hexagon_S2_asl_r_r_sat; // "__builtin_HEXAGON.S2.asl.r.r.sat"
}
break;
}
break;
}
break;
case 'r': // 14 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_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 (BuiltinName.substr(30, 2) != "ac")
break;
return Intrinsic::hexagon_S2_asr_i_p_nac; // "__builtin_HEXAGON.S2.asr.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_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 (BuiltinName.substr(30, 2) != "ac")
break;
return Intrinsic::hexagon_S2_asr_i_r_nac; // "__builtin_HEXAGON.S2.asr.i.r.nac"
case 'r': // 1 string to match.
if (BuiltinName.substr(30, 2) != "nd")
break;
return Intrinsic::hexagon_S2_asr_i_r_rnd; // "__builtin_HEXAGON.S2.asr.i.r.rnd"
}
break;
}
break;
case 'r': // 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_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 (BuiltinName.substr(30, 2) != "ac")
break;
return Intrinsic::hexagon_S2_asr_r_p_nac; // "__builtin_HEXAGON.S2.asr.r.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_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 (BuiltinName.substr(30, 2) != "ac")
break;
return Intrinsic::hexagon_S2_asr_r_r_nac; // "__builtin_HEXAGON.S2.asr.r.r.nac"
case 's': // 1 string to match.
if (BuiltinName.substr(30, 2) != "at")
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 (BuiltinName.substr(22, 10) != "xtractu.rp")
break;
return Intrinsic::hexagon_S2_extractu_rp; // "__builtin_HEXAGON.S2.extractu.rp"
case 'l': // 18 strings to match.
if (BuiltinName[22] != 's')
break;
switch (BuiltinName[23]) {
default: break;
case 'l': // 6 strings to match.
if (BuiltinName.substr(24, 3) != ".r.")
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_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 (BuiltinName.substr(30, 2) != "ac")
break;
return Intrinsic::hexagon_S2_lsl_r_p_nac; // "__builtin_HEXAGON.S2.lsl.r.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_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 (BuiltinName.substr(30, 2) != "ac")
break;
return Intrinsic::hexagon_S2_lsl_r_r_nac; // "__builtin_HEXAGON.S2.lsl.r.r.nac"
}
break;
}
break;
case 'r': // 12 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 (BuiltinName.substr(30, 2) != "ac")
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 (BuiltinName.substr(30, 2) != "ac")
break;
return Intrinsic::hexagon_S2_lsr_i_r_nac; // "__builtin_HEXAGON.S2.lsr.i.r.nac"
}
break;
}
break;
case 'r': // 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_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 (BuiltinName.substr(30, 2) != "ac")
break;
return Intrinsic::hexagon_S2_lsr_r_p_nac; // "__builtin_HEXAGON.S2.lsr.r.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_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 (BuiltinName.substr(30, 2) != "ac")
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 (BuiltinName.substr(22, 9) != "ogglebit.")
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 (BuiltinName.substr(22, 10) != "rndpackwhs")
break;
return Intrinsic::hexagon_S2_vrndpackwhs; // "__builtin_HEXAGON.S2.vrndpackwhs"
}
break;
}
break;
case 33: // 9 strings to match.
if (BuiltinName.substr(0, 18) != "__builtin_HEXAGON.")
break;
switch (BuiltinName[18]) {
default: break;
case 'A': // 2 strings to match.
if (BuiltinName.substr(19, 9) != "4.round_r")
break;
switch (BuiltinName[28]) {
default: break;
case 'i': // 1 string to match.
if (BuiltinName.substr(29, 4) != "_sat")
break;
return Intrinsic::hexagon_A4_round_ri_sat; // "__builtin_HEXAGON.A4.round_ri_sat"
case 'r': // 1 string to match.
if (BuiltinName.substr(29, 4) != "_sat")
break;
return Intrinsic::hexagon_A4_round_rr_sat; // "__builtin_HEXAGON.A4.round_rr_sat"
}
break;
case 'M': // 1 string to match.
if (BuiltinName.substr(19, 14) != "2.vrcmpys.s1rp")
break;
return Intrinsic::hexagon_M2_vrcmpys_s1rp; // "__builtin_HEXAGON.M2.vrcmpys.s1rp"
case 'S': // 6 strings to match.
if (BuiltinName.substr(19, 2) != "2.")
break;
switch (BuiltinName[21]) {
default: break;
case 'a': // 2 strings to match.
if (BuiltinName.substr(22, 5) != "sl.i.")
break;
switch (BuiltinName[27]) {
default: break;
case 'p': // 1 string to match.
if (BuiltinName.substr(28, 5) != ".xacc")
break;
return Intrinsic::hexagon_S2_asl_i_p_xacc; // "__builtin_HEXAGON.S2.asl.i.p.xacc"
case 'r': // 1 string to match.
if (BuiltinName.substr(28, 5) != ".xacc")
break;
return Intrinsic::hexagon_S2_asl_i_r_xacc; // "__builtin_HEXAGON.S2.asl.i.r.xacc"
}
break;
case 'd': // 1 string to match.
if (BuiltinName.substr(22, 11) != "einterleave")
break;
return Intrinsic::hexagon_S2_deinterleave; // "__builtin_HEXAGON.S2.deinterleave"
case 'e': // 1 string to match.
if (BuiltinName.substr(22, 11) != "xtractup.rp")
break;
return Intrinsic::hexagon_S2_extractup_rp; // "__builtin_HEXAGON.S2.extractup.rp"
case 'l': // 2 strings to match.
if (BuiltinName.substr(22, 5) != "sr.i.")
break;
switch (BuiltinName[27]) {
default: break;
case 'p': // 1 string to match.
if (BuiltinName.substr(28, 5) != ".xacc")
break;
return Intrinsic::hexagon_S2_lsr_i_p_xacc; // "__builtin_HEXAGON.S2.lsr.i.p.xacc"
case 'r': // 1 string to match.
if (BuiltinName.substr(28, 5) != ".xacc")
break;
return Intrinsic::hexagon_S2_lsr_i_r_xacc; // "__builtin_HEXAGON.S2.lsr.i.r.xacc"
}
break;
}
break;
}
break;
case 34: // 36 strings to match.
if (BuiltinName.substr(0, 18) != "__builtin_HEXAGON.")
break;
switch (BuiltinName[18]) {
default: break;
case 'M': // 34 strings to match.
if (BuiltinName.substr(19, 2) != "2.")
break;
switch (BuiltinName[21]) {
default: break;
case 'm': // 32 strings to match.
if (BuiltinName.substr(22, 3) != "py.")
break;
switch (BuiltinName[25]) {
default: break;
case 'a': // 8 strings to match.
if (BuiltinName.substr(26, 3) != "cc.")
break;
switch (BuiltinName[29]) {
default: break;
case 'h': // 4 strings to match.
switch (BuiltinName[30]) {
default: break;
case 'h': // 2 strings to match.
if (BuiltinName.substr(31, 2) != ".s")
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 (BuiltinName.substr(31, 2) != ".s")
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 (BuiltinName.substr(31, 2) != ".s")
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 (BuiltinName.substr(31, 2) != ".s")
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 (BuiltinName.substr(26, 3) != "ac.")
break;
switch (BuiltinName[29]) {
default: break;
case 'h': // 4 strings to match.
switch (BuiltinName[30]) {
default: break;
case 'h': // 2 strings to match.
if (BuiltinName.substr(31, 2) != ".s")
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 (BuiltinName.substr(31, 2) != ".s")
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 (BuiltinName.substr(31, 2) != ".s")
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 (BuiltinName.substr(31, 2) != ".s")
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 (BuiltinName.substr(26, 3) != "nd.")
break;
switch (BuiltinName[29]) {
default: break;
case 'h': // 4 strings to match.
switch (BuiltinName[30]) {
default: break;
case 'h': // 2 strings to match.
if (BuiltinName.substr(31, 2) != ".s")
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 (BuiltinName.substr(31, 2) != ".s")
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 (BuiltinName.substr(31, 2) != ".s")
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 (BuiltinName.substr(31, 2) != ".s")
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 (BuiltinName.substr(26, 3) != "at.")
break;
switch (BuiltinName[29]) {
default: break;
case 'h': // 4 strings to match.
switch (BuiltinName[30]) {
default: break;
case 'h': // 2 strings to match.
if (BuiltinName.substr(31, 2) != ".s")
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 (BuiltinName.substr(31, 2) != ".s")
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 (BuiltinName.substr(31, 2) != ".s")
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 (BuiltinName.substr(31, 2) != ".s")
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;
}
break;
case 'v': // 2 strings to match.
if (BuiltinName.substr(22, 7) != "mpy2s.s")
break;
switch (BuiltinName[29]) {
default: break;
case '0': // 1 string to match.
if (BuiltinName.substr(30, 4) != "pack")
break;
return Intrinsic::hexagon_M2_vmpy2s_s0pack; // "__builtin_HEXAGON.M2.vmpy2s.s0pack"
case '1': // 1 string to match.
if (BuiltinName.substr(30, 4) != "pack")
break;
return Intrinsic::hexagon_M2_vmpy2s_s1pack; // "__builtin_HEXAGON.M2.vmpy2s.s1pack"
}
break;
}
break;
case 'S': // 2 strings to match.
if (BuiltinName.substr(19, 6) != "2.vsat")
break;
switch (BuiltinName[25]) {
default: break;
case 'h': // 1 string to match.
if (BuiltinName.substr(26, 8) != "b.nopack")
break;
return Intrinsic::hexagon_S2_vsathb_nopack; // "__builtin_HEXAGON.S2.vsathb.nopack"
case 'w': // 1 string to match.
if (BuiltinName.substr(26, 8) != "h.nopack")
break;
return Intrinsic::hexagon_S2_vsatwh_nopack; // "__builtin_HEXAGON.S2.vsatwh.nopack"
}
break;
}
break;
case 35: // 56 strings to match.
if (BuiltinName.substr(0, 18) != "__builtin_HEXAGON.")
break;
switch (BuiltinName[18]) {
default: break;
case 'M': // 52 strings to match.
if (BuiltinName.substr(19, 2) != "2.")
break;
switch (BuiltinName[21]) {
default: break;
case 'd': // 5 strings to match.
if (BuiltinName.substr(22, 4) != "pmpy")
break;
switch (BuiltinName[26]) {
default: break;
case 's': // 3 strings to match.
if (BuiltinName.substr(27, 2) != "s.")
break;
switch (BuiltinName[29]) {
default: break;
case 'a': // 1 string to match.
if (BuiltinName.substr(30, 5) != "cc.s0")
break;
return Intrinsic::hexagon_M2_dpmpyss_acc_s0; // "__builtin_HEXAGON.M2.dpmpyss.acc.s0"
case 'n': // 1 string to match.
if (BuiltinName.substr(30, 5) != "ac.s0")
break;
return Intrinsic::hexagon_M2_dpmpyss_nac_s0; // "__builtin_HEXAGON.M2.dpmpyss.nac.s0"
case 'r': // 1 string to match.
if (BuiltinName.substr(30, 5) != "nd.s0")
break;
return Intrinsic::hexagon_M2_dpmpyss_rnd_s0; // "__builtin_HEXAGON.M2.dpmpyss.rnd.s0"
}
break;
case 'u': // 2 strings to match.
if (BuiltinName.substr(27, 2) != "u.")
break;
switch (BuiltinName[29]) {
default: break;
case 'a': // 1 string to match.
if (BuiltinName.substr(30, 5) != "cc.s0")
break;
return Intrinsic::hexagon_M2_dpmpyuu_acc_s0; // "__builtin_HEXAGON.M2.dpmpyuu.acc.s0"
case 'n': // 1 string to match.
if (BuiltinName.substr(30, 5) != "ac.s0")
break;
return Intrinsic::hexagon_M2_dpmpyuu_nac_s0; // "__builtin_HEXAGON.M2.dpmpyuu.nac.s0"
}
break;
}
break;
case 'm': // 40 strings to match.
if (BuiltinName.substr(22, 2) != "py")
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 (BuiltinName.substr(27, 3) != "cc.")
break;
switch (BuiltinName[30]) {
default: break;
case 'h': // 4 strings to match.
switch (BuiltinName[31]) {
default: break;
case 'h': // 2 strings to match.
if (BuiltinName.substr(32, 2) != ".s")
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 (BuiltinName.substr(32, 2) != ".s")
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 (BuiltinName.substr(32, 2) != ".s")
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 (BuiltinName.substr(32, 2) != ".s")
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 (BuiltinName.substr(27, 3) != "ac.")
break;
switch (BuiltinName[30]) {
default: break;
case 'h': // 4 strings to match.
switch (BuiltinName[31]) {
default: break;
case 'h': // 2 strings to match.
if (BuiltinName.substr(32, 2) != ".s")
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 (BuiltinName.substr(32, 2) != ".s")
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 (BuiltinName.substr(32, 2) != ".s")
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 (BuiltinName.substr(32, 2) != ".s")
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 (BuiltinName.substr(27, 3) != "nd.")
break;
switch (BuiltinName[30]) {
default: break;
case 'h': // 4 strings to match.
switch (BuiltinName[31]) {
default: break;
case 'h': // 2 strings to match.
if (BuiltinName.substr(32, 2) != ".s")
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 (BuiltinName.substr(32, 2) != ".s")
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 (BuiltinName.substr(32, 2) != ".s")
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 (BuiltinName.substr(32, 2) != ".s")
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 (BuiltinName.substr(27, 3) != "cc.")
break;
switch (BuiltinName[30]) {
default: break;
case 'h': // 4 strings to match.
switch (BuiltinName[31]) {
default: break;
case 'h': // 2 strings to match.
if (BuiltinName.substr(32, 2) != ".s")
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 (BuiltinName.substr(32, 2) != ".s")
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 (BuiltinName.substr(32, 2) != ".s")
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 (BuiltinName.substr(32, 2) != ".s")
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 (BuiltinName.substr(27, 3) != "ac.")
break;
switch (BuiltinName[30]) {
default: break;
case 'h': // 4 strings to match.
switch (BuiltinName[31]) {
default: break;
case 'h': // 2 strings to match.
if (BuiltinName.substr(32, 2) != ".s")
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 (BuiltinName.substr(32, 2) != ".s")
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 (BuiltinName.substr(32, 2) != ".s")
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 (BuiltinName.substr(32, 2) != ".s")
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 (BuiltinName.substr(25, 9) != "c.s0.sat.")
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 (BuiltinName.substr(25, 3) != "y.s")
break;
switch (BuiltinName[28]) {
default: break;
case '0': // 2 strings to match.
if (BuiltinName.substr(29, 5) != ".sat.")
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 (BuiltinName.substr(29, 5) != ".sat.")
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 (BuiltinName.substr(23, 12) != "cmpys.acc.s1")
break;
return Intrinsic::hexagon_M2_vrcmpys_acc_s1; // "__builtin_HEXAGON.M2.vrcmpys.acc.s1"
}
break;
}
break;
case 'S': // 4 strings to match.
if (BuiltinName.substr(19, 2) != "2.")
break;
switch (BuiltinName[21]) {
default: break;
case 'a': // 2 strings to match.
if (BuiltinName.substr(22, 3) != "sr.")
break;
switch (BuiltinName[25]) {
default: break;
case 'i': // 1 string to match.
if (BuiltinName.substr(26, 9) != ".svw.trun")
break;
return Intrinsic::hexagon_S2_asr_i_svw_trun; // "__builtin_HEXAGON.S2.asr.i.svw.trun"
case 'r': // 1 string to match.
if (BuiltinName.substr(26, 9) != ".svw.trun")
break;
return Intrinsic::hexagon_S2_asr_r_svw_trun; // "__builtin_HEXAGON.S2.asr.r.svw.trun"
}
break;
case 'v': // 2 strings to match.
if (BuiltinName.substr(22, 3) != "sat")
break;
switch (BuiltinName[25]) {
default: break;
case 'h': // 1 string to match.
if (BuiltinName.substr(26, 9) != "ub.nopack")
break;
return Intrinsic::hexagon_S2_vsathub_nopack; // "__builtin_HEXAGON.S2.vsathub.nopack"
case 'w': // 1 string to match.
if (BuiltinName.substr(26, 9) != "uh.nopack")
break;
return Intrinsic::hexagon_S2_vsatwuh_nopack; // "__builtin_HEXAGON.S2.vsatwuh.nopack"
}
break;
}
break;
}
break;
case 36: // 31 strings to match.
if (BuiltinName.substr(0, 18) != "__builtin_HEXAGON.")
break;
switch (BuiltinName[18]) {
default: break;
case 'A': // 14 strings to match.
if (BuiltinName.substr(19, 2) != "2.")
break;
switch (BuiltinName[21]) {
default: break;
case 'a': // 8 strings to match.
if (BuiltinName.substr(22, 4) != "ddh.")
break;
switch (BuiltinName[26]) {
default: break;
case 'h': // 4 strings to match.
if (BuiltinName.substr(27, 7) != "16.sat.")
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': // 4 strings to match.
if (BuiltinName.substr(27, 7) != "16.sat.")
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_l16_sat_hh; // "__builtin_HEXAGON.A2.addh.l16.sat.hh"
case 'l': // 1 string to match.
return Intrinsic::hexagon_A2_addh_l16_sat_hl; // "__builtin_HEXAGON.A2.addh.l16.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_l16_sat_lh; // "__builtin_HEXAGON.A2.addh.l16.sat.lh"
case 'l': // 1 string to match.
return Intrinsic::hexagon_A2_addh_l16_sat_ll; // "__builtin_HEXAGON.A2.addh.l16.sat.ll"
}
break;
}
break;
}
break;
case 's': // 6 strings to match.
if (BuiltinName.substr(22, 4) != "ubh.")
break;
switch (BuiltinName[26]) {
default: break;
case 'h': // 4 strings to match.
if (BuiltinName.substr(27, 7) != "16.sat.")
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 (BuiltinName.substr(27, 7) != "16.sat.")
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 (BuiltinName.substr(19, 17) != "4.fastcorner9_not")
break;
return Intrinsic::hexagon_C4_fastcorner9_not; // "__builtin_HEXAGON.C4.fastcorner9_not"
case 'M': // 16 strings to match.
if (BuiltinName.substr(19, 8) != "2.mpyud.")
break;
switch (BuiltinName[27]) {
default: break;
case 'a': // 8 strings to match.
if (BuiltinName.substr(28, 3) != "cc.")
break;
switch (BuiltinName[31]) {
default: break;
case 'h': // 4 strings to match.
switch (BuiltinName[32]) {
default: break;
case 'h': // 2 strings to match.
if (BuiltinName.substr(33, 2) != ".s")
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 (BuiltinName.substr(33, 2) != ".s")
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 (BuiltinName.substr(33, 2) != ".s")
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 (BuiltinName.substr(33, 2) != ".s")
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 (BuiltinName.substr(28, 3) != "ac.")
break;
switch (BuiltinName[31]) {
default: break;
case 'h': // 4 strings to match.
switch (BuiltinName[32]) {
default: break;
case 'h': // 2 strings to match.
if (BuiltinName.substr(33, 2) != ".s")
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 (BuiltinName.substr(33, 2) != ".s")
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 (BuiltinName.substr(33, 2) != ".s")
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 (BuiltinName.substr(33, 2) != ".s")
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 (BuiltinName.substr(0, 25) != "__builtin_HEXAGON.M2.mpy.")
break;
switch (BuiltinName[25]) {
default: break;
case 'a': // 8 strings to match.
if (BuiltinName.substr(26, 7) != "cc.sat.")
break;
switch (BuiltinName[33]) {
default: break;
case 'h': // 4 strings to match.
switch (BuiltinName[34]) {
default: break;
case 'h': // 2 strings to match.
if (BuiltinName.substr(35, 2) != ".s")
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 (BuiltinName.substr(35, 2) != ".s")
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 (BuiltinName.substr(35, 2) != ".s")
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 (BuiltinName.substr(35, 2) != ".s")
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 (BuiltinName.substr(26, 7) != "ac.sat.")
break;
switch (BuiltinName[33]) {
default: break;
case 'h': // 4 strings to match.
switch (BuiltinName[34]) {
default: break;
case 'h': // 2 strings to match.
if (BuiltinName.substr(35, 2) != ".s")
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 (BuiltinName.substr(35, 2) != ".s")
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 (BuiltinName.substr(35, 2) != ".s")
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 (BuiltinName.substr(35, 2) != ".s")
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 (BuiltinName.substr(26, 7) != "at.rnd.")
break;
switch (BuiltinName[33]) {
default: break;
case 'h': // 4 strings to match.
switch (BuiltinName[34]) {
default: break;
case 'h': // 2 strings to match.
if (BuiltinName.substr(35, 2) != ".s")
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 (BuiltinName.substr(35, 2) != ".s")
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 (BuiltinName.substr(35, 2) != ".s")
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 (BuiltinName.substr(35, 2) != ".s")
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 41: // 4 strings to match.
if (BuiltinName.substr(0, 29) != "__builtin_HEXAGON.S2.tableidx")
break;
switch (BuiltinName[29]) {
default: break;
case 'b': // 1 string to match.
if (BuiltinName.substr(30, 11) != ".goodsyntax")
break;
return Intrinsic::hexagon_S2_tableidxb_goodsyntax; // "__builtin_HEXAGON.S2.tableidxb.goodsyntax"
case 'd': // 1 string to match.
if (BuiltinName.substr(30, 11) != ".goodsyntax")
break;
return Intrinsic::hexagon_S2_tableidxd_goodsyntax; // "__builtin_HEXAGON.S2.tableidxd.goodsyntax"
case 'h': // 1 string to match.
if (BuiltinName.substr(30, 11) != ".goodsyntax")
break;
return Intrinsic::hexagon_S2_tableidxh_goodsyntax; // "__builtin_HEXAGON.S2.tableidxh.goodsyntax"
case 'w': // 1 string to match.
if (BuiltinName.substr(30, 11) != ".goodsyntax")
break;
return Intrinsic::hexagon_S2_tableidxw_goodsyntax; // "__builtin_HEXAGON.S2.tableidxw.goodsyntax"
}
break;
case 43: // 1 string to match.
if (BuiltinName.substr(0, 43) != "__builtin_HEXAGON.S2.asr.i.r.rnd.goodsyntax")
break;
return Intrinsic::hexagon_S2_asr_i_r_rnd_goodsyntax; // "__builtin_HEXAGON.S2.asr.i.r.rnd.goodsyntax"
}
}
if (TargetPrefix == "ppc") {
switch (BuiltinName.size()) {
default: break;
case 21: // 4 strings to match.
if (BuiltinName.substr(0, 18) != "__builtin_altivec_")
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 (BuiltinName.substr(0, 18) != "__builtin_altivec_")
break;
switch (BuiltinName[18]) {
default: break;
case 'd': // 1 string to match.
if (BuiltinName.substr(19, 3) != "stt")
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 (BuiltinName.substr(0, 18) != "__builtin_altivec_")
break;
switch (BuiltinName[18]) {
default: break;
case 'd': // 1 string to match.
if (BuiltinName.substr(19, 4) != "stst")
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 (BuiltinName.substr(20, 3) != "kpx")
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 (BuiltinName.substr(21, 2) != "fp")
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 (BuiltinName.substr(20, 2) != "ra")
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 (BuiltinName.substr(0, 18) != "__builtin_altivec_")
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 (BuiltinName.substr(21, 3) != "all")
break;
return Intrinsic::ppc_altivec_dssall; // "__builtin_altivec_dssall"
case 't': // 1 string to match.
if (BuiltinName.substr(21, 3) != "stt")
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 (BuiltinName.substr(20, 4) != "vscr")
break;
return Intrinsic::ppc_altivec_mfvscr; // "__builtin_altivec_mfvscr"
case 't': // 1 string to match.
if (BuiltinName.substr(20, 4) != "vscr")
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 (BuiltinName.substr(20, 2) != "vg")
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 (BuiltinName.substr(22, 2) != "xs")
break;
return Intrinsic::ppc_altivec_vctsxs; // "__builtin_altivec_vctsxs"
case 'u': // 1 string to match.
if (BuiltinName.substr(22, 2) != "xs")
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 (BuiltinName.substr(0, 19) != "__builtin_altivec_v")
break;
switch (BuiltinName[19]) {
default: break;
case 'a': // 7 strings to match.
if (BuiltinName.substr(20, 2) != "dd")
break;
switch (BuiltinName[22]) {
default: break;
case 'c': // 1 string to match.
if (BuiltinName.substr(23, 2) != "uw")
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 (BuiltinName.substr(20, 5) != "mpbfp")
break;
return Intrinsic::ppc_altivec_vcmpbfp; // "__builtin_altivec_vcmpbfp"
case 'l': // 1 string to match.
if (BuiltinName.substr(20, 5) != "ogefp")
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 (BuiltinName.substr(21, 4) != "ddfp")
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 (BuiltinName.substr(23, 2) != "us")
break;
return Intrinsic::ppc_altivec_vpkuhus; // "__builtin_altivec_vpkuhus"
case 'w': // 1 string to match.
if (BuiltinName.substr(23, 2) != "us")
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 (BuiltinName.substr(23, 2) != "uw")
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 (BuiltinName.substr(22, 3) != "sws")
break;
return Intrinsic::ppc_altivec_vsumsws; // "__builtin_altivec_vsumsws"
}
break;
case 'u': // 6 strings to match.
if (BuiltinName.substr(20, 2) != "pk")
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 (BuiltinName.substr(0, 19) != "__builtin_altivec_v")
break;
switch (BuiltinName[19]) {
default: break;
case 'c': // 12 strings to match.
if (BuiltinName.substr(20, 2) != "mp")
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 (BuiltinName.substr(24, 2) != "fp")
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 (BuiltinName.substr(20, 6) != "xptefp")
break;
return Intrinsic::ppc_altivec_vexptefp; // "__builtin_altivec_vexptefp"
case 'm': // 6 strings to match.
if (BuiltinName.substr(20, 3) != "sum")
break;
switch (BuiltinName[23]) {
default: break;
case 'm': // 1 string to match.
if (BuiltinName.substr(24, 2) != "bm")
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 (BuiltinName.substr(20, 6) != "msubfp")
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 (BuiltinName.substr(21, 5) != "l_4si")
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 (BuiltinName.substr(23, 3) != "sws")
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 (BuiltinName.substr(24, 2) != "bs")
break;
return Intrinsic::ppc_altivec_vsum4ubs; // "__builtin_altivec_vsum4ubs"
}
break;
}
break;
}
break;
}
break;
case 27: // 5 strings to match.
if (BuiltinName.substr(0, 19) != "__builtin_altivec_v")
break;
switch (BuiltinName[19]) {
default: break;
case 'c': // 1 string to match.
if (BuiltinName.substr(20, 7) != "mpbfp_p")
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 (BuiltinName.substr(21, 6) != "addshs")
break;
return Intrinsic::ppc_altivec_vmhaddshs; // "__builtin_altivec_vmhaddshs"
case 'l': // 1 string to match.
if (BuiltinName.substr(21, 6) != "adduhm")
break;
return Intrinsic::ppc_altivec_vmladduhm; // "__builtin_altivec_vmladduhm"
}
break;
case 'p': // 1 string to match.
if (BuiltinName.substr(20, 7) != "erm_4si")
break;
return Intrinsic::ppc_altivec_vperm; // "__builtin_altivec_vperm_4si"
case 'r': // 1 string to match.
if (BuiltinName.substr(20, 7) != "sqrtefp")
break;
return Intrinsic::ppc_altivec_vrsqrtefp; // "__builtin_altivec_vrsqrtefp"
}
break;
case 28: // 13 strings to match.
if (BuiltinName.substr(0, 19) != "__builtin_altivec_v")
break;
switch (BuiltinName[19]) {
default: break;
case 'c': // 12 strings to match.
if (BuiltinName.substr(20, 2) != "mp")
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.substr(25, 3) != "p_p")
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 (BuiltinName.substr(26, 2) != "_p")
break;
return Intrinsic::ppc_altivec_vcmpequb_p; // "__builtin_altivec_vcmpequb_p"
case 'h': // 1 string to match.
if (BuiltinName.substr(26, 2) != "_p")
break;
return Intrinsic::ppc_altivec_vcmpequh_p; // "__builtin_altivec_vcmpequh_p"
case 'w': // 1 string to match.
if (BuiltinName.substr(26, 2) != "_p")
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 (BuiltinName.substr(24, 4) != "fp_p")
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 (BuiltinName.substr(25, 3) != "p_p")
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 (BuiltinName.substr(26, 2) != "_p")
break;
return Intrinsic::ppc_altivec_vcmpgtsb_p; // "__builtin_altivec_vcmpgtsb_p"
case 'h': // 1 string to match.
if (BuiltinName.substr(26, 2) != "_p")
break;
return Intrinsic::ppc_altivec_vcmpgtsh_p; // "__builtin_altivec_vcmpgtsh_p"
case 'w': // 1 string to match.
if (BuiltinName.substr(26, 2) != "_p")
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 (BuiltinName.substr(26, 2) != "_p")
break;
return Intrinsic::ppc_altivec_vcmpgtub_p; // "__builtin_altivec_vcmpgtub_p"
case 'h': // 1 string to match.
if (BuiltinName.substr(26, 2) != "_p")
break;
return Intrinsic::ppc_altivec_vcmpgtuh_p; // "__builtin_altivec_vcmpgtuh_p"
case 'w': // 1 string to match.
if (BuiltinName.substr(26, 2) != "_p")
break;
return Intrinsic::ppc_altivec_vcmpgtuw_p; // "__builtin_altivec_vcmpgtuw_p"
}
break;
}
break;
}
break;
}
break;
case 'm': // 1 string to match.
if (BuiltinName.substr(20, 8) != "hraddshs")
break;
return Intrinsic::ppc_altivec_vmhraddshs; // "__builtin_altivec_vmhraddshs"
}
break;
}
}
if (TargetPrefix == "ptx") {
switch (BuiltinName.size()) {
default: break;
case 22: // 5 strings to match.
if (BuiltinName.substr(0, 14) != "__builtin_ptx_")
break;
switch (BuiltinName[14]) {
default: break;
case 'b': // 1 string to match.
if (BuiltinName.substr(15, 7) != "ar_sync")
break;
return Intrinsic::ptx_bar_sync; // "__builtin_ptx_bar_sync"
case 'r': // 4 strings to match.
if (BuiltinName.substr(15, 6) != "ead_pm")
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;
case 23: // 1 string to match.
if (BuiltinName.substr(0, 23) != "__builtin_ptx_read_smid")
break;
return Intrinsic::ptx_read_smid; // "__builtin_ptx_read_smid"
case 24: // 6 strings to match.
if (BuiltinName.substr(0, 19) != "__builtin_ptx_read_")
break;
switch (BuiltinName[19]) {
default: break;
case 'c': // 1 string to match.
if (BuiltinName.substr(20, 4) != "lock")
break;
return Intrinsic::ptx_read_clock; // "__builtin_ptx_read_clock"
case 'n': // 1 string to match.
if (BuiltinName.substr(20, 4) != "smid")
break;
return Intrinsic::ptx_read_nsmid; // "__builtin_ptx_read_nsmid"
case 't': // 4 strings to match.
if (BuiltinName.substr(20, 3) != "id_")
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;
case 25: // 7 strings to match.
if (BuiltinName.substr(0, 19) != "__builtin_ptx_read_")
break;
switch (BuiltinName[19]) {
default: break;
case 'g': // 1 string to match.
if (BuiltinName.substr(20, 5) != "ridid")
break;
return Intrinsic::ptx_read_gridid; // "__builtin_ptx_read_gridid"
case 'l': // 1 string to match.
if (BuiltinName.substr(20, 5) != "aneid")
break;
return Intrinsic::ptx_read_laneid; // "__builtin_ptx_read_laneid"
case 'n': // 4 strings to match.
if (BuiltinName.substr(20, 4) != "tid_")
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 (BuiltinName.substr(20, 5) != "arpid")
break;
return Intrinsic::ptx_read_warpid; // "__builtin_ptx_read_warpid"
}
break;
case 26: // 6 strings to match.
if (BuiltinName.substr(0, 19) != "__builtin_ptx_read_")
break;
switch (BuiltinName[19]) {
default: break;
case 'c': // 5 strings to match.
switch (BuiltinName[20]) {
default: break;
case 'l': // 1 string to match.
if (BuiltinName.substr(21, 5) != "ock64")
break;
return Intrinsic::ptx_read_clock64; // "__builtin_ptx_read_clock64"
case 't': // 4 strings to match.
if (BuiltinName.substr(21, 4) != "aid_")
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 (BuiltinName.substr(20, 6) != "warpid")
break;
return Intrinsic::ptx_read_nwarpid; // "__builtin_ptx_read_nwarpid"
}
break;
case 27: // 4 strings to match.
if (BuiltinName.substr(0, 26) != "__builtin_ptx_read_nctaid_")
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;
case 30: // 5 strings to match.
if (BuiltinName.substr(0, 28) != "__builtin_ptx_read_lanemask_")
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 == "spu") {
switch (BuiltinName.size()) {
default: break;
case 14: // 1 string to match.
if (BuiltinName.substr(0, 14) != "__builtin_si_a")
break;
return Intrinsic::spu_si_a; // "__builtin_si_a"
case 15: // 9 strings to match.
if (BuiltinName.substr(0, 13) != "__builtin_si_")
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 (BuiltinName.substr(0, 13) != "__builtin_si_")
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 (BuiltinName.substr(14, 2) != "gx")
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 (BuiltinName.substr(14, 2) != "py")
break;
return Intrinsic::spu_si_mpy; // "__builtin_si_mpy"
case 'n': // 1 string to match.
if (BuiltinName.substr(14, 2) != "or")
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 (BuiltinName.substr(14, 2) != "or")
break;
return Intrinsic::spu_si_xor; // "__builtin_si_xor"
}
break;
case 17: // 26 strings to match.
if (BuiltinName.substr(0, 13) != "__builtin_si_")
break;
switch (BuiltinName[13]) {
default: break;
case 'a': // 3 strings to match.
switch (BuiltinName[14]) {
default: break;
case 'd': // 1 string to match.
if (BuiltinName.substr(15, 2) != "dx")
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 (BuiltinName.substr(15, 2) != "gt")
break;
return Intrinsic::spu_si_clgt; // "__builtin_si_clgt"
}
break;
case 'd': // 2 strings to match.
if (BuiltinName.substr(14, 2) != "fm")
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 (BuiltinName.substr(15, 2) != "ms")
break;
return Intrinsic::spu_si_fnms; // "__builtin_si_fnms"
}
break;
case 'm': // 5 strings to match.
if (BuiltinName.substr(14, 2) != "py")
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 (BuiltinName.substr(14, 3) != "and")
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 (BuiltinName.substr(15, 2) != "hi")
break;
return Intrinsic::spu_si_sfhi; // "__builtin_si_sfhi"
case 'h': // 1 string to match.
if (BuiltinName.substr(15, 2) != "li")
break;
return Intrinsic::spu_si_shli; // "__builtin_si_shli"
}
break;
case 'x': // 1 string to match.
if (BuiltinName.substr(14, 3) != "ori")
break;
return Intrinsic::spu_si_xori; // "__builtin_si_xori"
}
break;
case 18: // 18 strings to match.
if (BuiltinName.substr(0, 13) != "__builtin_si_")
break;
switch (BuiltinName[13]) {
default: break;
case 'a': // 2 strings to match.
if (BuiltinName.substr(14, 2) != "nd")
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 (BuiltinName.substr(15, 2) != "gt")
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 (BuiltinName.substr(14, 3) != "fnm")
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 (BuiltinName.substr(15, 3) != "mbi")
break;
return Intrinsic::spu_si_fsmbi; // "__builtin_si_fsmbi"
}
break;
case 'm': // 2 strings to match.
if (BuiltinName.substr(14, 2) != "py")
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 (BuiltinName.substr(14, 2) != "or")
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 (BuiltinName.substr(0, 13) != "__builtin_si_")
break;
switch (BuiltinName[13]) {
default: break;
case 'c': // 2 strings to match.
if (BuiltinName.substr(14, 3) != "lgt")
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 (BuiltinName.substr(14, 4) != "pyhh")
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 (BuiltinName.substr(14, 4) != "hlqb")
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 (BuiltinName.substr(0, 13) != "__builtin_si_")
break;
switch (BuiltinName[13]) {
default: break;
case 'm': // 1 string to match.
if (BuiltinName.substr(14, 6) != "pyhhau")
break;
return Intrinsic::spu_si_mpyhhau; // "__builtin_si_mpyhhau"
case 's': // 2 strings to match.
if (BuiltinName.substr(14, 4) != "hlqb")
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 (BuiltinName.substr(0, 18) != "__builtin_ia32_por")
break;
return Intrinsic::x86_mmx_por; // "__builtin_ia32_por"
case 19: // 5 strings to match.
if (BuiltinName.substr(0, 15) != "__builtin_ia32_")
break;
switch (BuiltinName[15]) {
default: break;
case 'd': // 2 strings to match.
if (BuiltinName.substr(16, 2) != "pp")
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 (BuiltinName.substr(16, 3) != "mms")
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 (BuiltinName.substr(17, 2) != "nd")
break;
return Intrinsic::x86_mmx_pand; // "__builtin_ia32_pand"
case 'x': // 1 string to match.
if (BuiltinName.substr(17, 2) != "or")
break;
return Intrinsic::x86_mmx_pxor; // "__builtin_ia32_pxor"
}
break;
}
break;
case 20: // 58 strings to match.
if (BuiltinName.substr(0, 15) != "__builtin_ia32_")
break;
switch (BuiltinName[15]) {
default: break;
case 'a': // 2 strings to match.
if (BuiltinName.substr(16, 3) != "dds")
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 (BuiltinName.substr(16, 2) != "mp")
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 (BuiltinName.substr(16, 3) != "ivs")
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 'f': // 1 string to match.
if (BuiltinName.substr(16, 4) != "emms")
break;
return Intrinsic::x86_mmx_femms; // "__builtin_ia32_femms"
case 'l': // 1 string to match.
if (BuiltinName.substr(16, 4) != "ddqu")
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 (BuiltinName.substr(17, 2) != "ls")
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 (BuiltinName.substr(17, 3) != "ait")
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 (BuiltinName.substr(18, 2) != "dn")
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 (BuiltinName.substr(18, 2) != "cp")
break;
return Intrinsic::x86_3dnow_pfrcp; // "__builtin_ia32_pfrcp"
case 's': // 1 string to match.
if (BuiltinName.substr(18, 2) != "ub")
break;
return Intrinsic::x86_3dnow_pfsub; // "__builtin_ia32_pfsub"
}
break;
case 'i': // 2 strings to match.
if (BuiltinName.substr(17, 2) != "2f")
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 (BuiltinName.substr(16, 2) != "cp")
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 (BuiltinName.substr(16, 3) != "ubs")
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: // 47 strings to match.
if (BuiltinName.substr(0, 15) != "__builtin_ia32_")
break;
switch (BuiltinName[15]) {
default: break;
case 'c': // 5 strings to match.
if (BuiltinName.substr(16, 3) != "omi")
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 'h': // 4 strings to match.
switch (BuiltinName[16]) {
default: break;
case 'a': // 2 strings to match.
if (BuiltinName.substr(17, 3) != "ddp")
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 (BuiltinName.substr(17, 3) != "ubp")
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 (BuiltinName.substr(16, 5) != "fence")
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 (BuiltinName.substr(17, 4) != "ence")
break;
return Intrinsic::x86_sse2_mfence; // "__builtin_ia32_mfence"
case 'o': // 1 string to match.
if (BuiltinName.substr(17, 4) != "vntq")
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 (BuiltinName.substr(17, 3) != "dds")
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 (BuiltinName.substr(18, 3) != "acc")
break;
return Intrinsic::x86_3dnowa_pfnacc; // "__builtin_ia32_pfnacc"
case 's': // 1 string to match.
if (BuiltinName.substr(18, 3) != "ubr")
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 (BuiltinName.substr(18, 2) != "dd")
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 (BuiltinName.substr(18, 2) != "ub")
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 (BuiltinName.substr(18, 3) != "dbw")
break;
return Intrinsic::x86_mmx_psad_bw; // "__builtin_ia32_psadbw"
case 'h': // 2 strings to match.
if (BuiltinName.substr(18, 2) != "uf")
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 (BuiltinName.substr(18, 2) != "gn")
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 (BuiltinName.substr(18, 2) != "bs")
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 (BuiltinName.substr(17, 4) != "ence")
break;
return Intrinsic::x86_sse_sfence; // "__builtin_ia32_sfence"
case 'q': // 4 strings to match.
if (BuiltinName.substr(17, 2) != "rt")
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: // 50 strings to match.
if (BuiltinName.substr(0, 15) != "__builtin_ia32_")
break;
switch (BuiltinName[15]) {
default: break;
case 'b': // 4 strings to match.
switch (BuiltinName[16]) {
default: break;
case 'l': // 2 strings to match.
if (BuiltinName.substr(17, 4) != "endp")
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 (BuiltinName.substr(17, 3) != "hi_")
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 (BuiltinName.substr(17, 5) != "flush")
break;
return Intrinsic::x86_sse2_clflush; // "__builtin_ia32_clflush"
case 'o': // 1 string to match.
if (BuiltinName.substr(17, 5) != "mineq")
break;
return Intrinsic::x86_sse_comineq_ss; // "__builtin_ia32_comineq"
case 'r': // 4 strings to match.
if (BuiltinName.substr(17, 3) != "c32")
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 (BuiltinName.substr(16, 6) != "pps256")
break;
return Intrinsic::x86_avx_dp_ps_256; // "__builtin_ia32_dpps256"
case 'm': // 1 string to match.
if (BuiltinName.substr(16, 6) != "onitor")
break;
return Intrinsic::x86_sse3_monitor; // "__builtin_ia32_monitor"
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 (BuiltinName.substr(18, 3) != "dus")
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 (BuiltinName.substr(18, 4) != "ignr")
break;
return Intrinsic::x86_mmx_palignr_b; // "__builtin_ia32_palignr"
case 'v': // 1 string to match.
if (BuiltinName.substr(18, 4) != "gusb")
break;
return Intrinsic::x86_3dnow_pavgusb; // "__builtin_ia32_pavgusb"
}
break;
case 'c': // 6 strings to match.
if (BuiltinName.substr(17, 2) != "mp")
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 (BuiltinName.substr(17, 3) != "ep_")
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 (BuiltinName.substr(17, 3) != "xt_")
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 (BuiltinName.substr(18, 2) != "mp")
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 (BuiltinName.substr(18, 4) != "nacc")
break;
return Intrinsic::x86_3dnowa_pfpnacc; // "__builtin_ia32_pfpnacc"
case 'r': // 1 string to match.
if (BuiltinName.substr(18, 4) != "sqrt")
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 (BuiltinName.substr(18, 4) != "ddsw")
break;
return Intrinsic::x86_ssse3_phadd_sw; // "__builtin_ia32_phaddsw"
case 's': // 1 string to match.
if (BuiltinName.substr(18, 4) != "ubsw")
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 (BuiltinName.substr(18, 4) != "ddwd")
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 (BuiltinName.substr(20, 2) != "dq")
break;
return Intrinsic::x86_mmx_pmulu_dq; // "__builtin_ia32_pmuludq"
}
break;
}
break;
case 's': // 2 strings to match.
if (BuiltinName.substr(17, 4) != "ubus")
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 (BuiltinName.substr(17, 3) != "und")
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 (BuiltinName.substr(17, 3) != "qrt")
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 (BuiltinName.substr(16, 4) != "comi")
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: // 98 strings to match.
if (BuiltinName.substr(0, 15) != "__builtin_ia32_")
break;
switch (BuiltinName[15]) {
default: break;
case 'a': // 2 strings to match.
if (BuiltinName.substr(16, 6) != "ddsubp")
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 (BuiltinName.substr(16, 6) != "lendvp")
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 (BuiltinName.substr(17, 2) != "pp")
break;
switch (BuiltinName[19]) {
default: break;
case 'd': // 1 string to match.
if (BuiltinName.substr(20, 3) != "256")
break;
return Intrinsic::x86_avx_cmp_pd_256; // "__builtin_ia32_cmppd256"
case 's': // 1 string to match.
if (BuiltinName.substr(20, 3) != "256")
break;
return Intrinsic::x86_avx_cmp_ps_256; // "__builtin_ia32_cmpps256"
}
break;
case 'o': // 5 strings to match.
if (BuiltinName.substr(17, 4) != "misd")
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 (BuiltinName.substr(19, 3) != "q2p")
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 (BuiltinName.substr(20, 2) != "2p")
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 (BuiltinName.substr(20, 2) != "2s")
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 (BuiltinName.substr(20, 2) != "2s")
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 (BuiltinName.substr(20, 2) != "2s")
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 'l': // 1 string to match.
if (BuiltinName.substr(16, 7) != "ddqu256")
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 (BuiltinName.substr(18, 5) != "kmovq")
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 (BuiltinName.substr(20, 3) != "256")
break;
return Intrinsic::x86_avx_max_pd_256; // "__builtin_ia32_maxpd256"
case 's': // 1 string to match.
if (BuiltinName.substr(20, 3) != "256")
break;
return Intrinsic::x86_avx_max_ps_256; // "__builtin_ia32_maxps256"
}
break;
}
break;
case 'i': // 2 strings to match.
if (BuiltinName.substr(17, 2) != "np")
break;
switch (BuiltinName[19]) {
default: break;
case 'd': // 1 string to match.
if (BuiltinName.substr(20, 3) != "256")
break;
return Intrinsic::x86_avx_min_pd_256; // "__builtin_ia32_minpd256"
case 's': // 1 string to match.
if (BuiltinName.substr(20, 3) != "256")
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 (BuiltinName.substr(19, 3) != "skp")
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 (BuiltinName.substr(19, 4) != "tdqa")
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 (BuiltinName.substr(21, 2) != "28")
break;
return Intrinsic::x86_ssse3_pabs_b_128; // "__builtin_ia32_pabsb128"
case '2': // 1 string to match.
if (BuiltinName.substr(21, 2) != "56")
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 (BuiltinName.substr(21, 2) != "28")
break;
return Intrinsic::x86_ssse3_pabs_d_128; // "__builtin_ia32_pabsd128"
case '2': // 1 string to match.
if (BuiltinName.substr(21, 2) != "56")
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 (BuiltinName.substr(21, 2) != "28")
break;
return Intrinsic::x86_ssse3_pabs_w_128; // "__builtin_ia32_pabsw128"
case '2': // 1 string to match.
if (BuiltinName.substr(21, 2) != "56")
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 (BuiltinName.substr(20, 3) != "swb")
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 (BuiltinName.substr(21, 2) != "28")
break;
return Intrinsic::x86_sse2_pavg_b; // "__builtin_ia32_pavgb128"
case '2': // 1 string to match.
if (BuiltinName.substr(21, 2) != "56")
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 (BuiltinName.substr(21, 2) != "28")
break;
return Intrinsic::x86_sse2_pavg_w; // "__builtin_ia32_pavgw128"
case '2': // 1 string to match.
if (BuiltinName.substr(21, 2) != "56")
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 (BuiltinName.substr(19, 3) != "pit")
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 (BuiltinName.substr(19, 4) != "qit1")
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 (BuiltinName.substr(18, 5) != "vmskb")
break;
return Intrinsic::x86_mmx_pmovmskb; // "__builtin_ia32_pmovmskb"
case 'u': // 1 string to match.
if (BuiltinName.substr(18, 5) != "lhrsw")
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 (BuiltinName.substr(21, 2) != "28")
break;
return Intrinsic::x86_sse2_psll_d; // "__builtin_ia32_pslld128"
case '2': // 1 string to match.
if (BuiltinName.substr(21, 2) != "56")
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 (BuiltinName.substr(21, 2) != "28")
break;
return Intrinsic::x86_sse2_psll_q; // "__builtin_ia32_psllq128"
case '2': // 1 string to match.
if (BuiltinName.substr(21, 2) != "56")
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 (BuiltinName.substr(21, 2) != "di")
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 (BuiltinName.substr(21, 2) != "si")
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 (BuiltinName.substr(21, 2) != "28")
break;
return Intrinsic::x86_sse2_psll_w; // "__builtin_ia32_psllw128"
case '2': // 1 string to match.
if (BuiltinName.substr(21, 2) != "56")
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 (BuiltinName.substr(21, 2) != "28")
break;
return Intrinsic::x86_sse2_psra_d; // "__builtin_ia32_psrad128"
case '2': // 1 string to match.
if (BuiltinName.substr(21, 2) != "56")
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 (BuiltinName.substr(21, 2) != "si")
break;
return Intrinsic::x86_avx2_psrav_d; // "__builtin_ia32_psrav4si"
case '8': // 1 string to match.
if (BuiltinName.substr(21, 2) != "si")
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 (BuiltinName.substr(21, 2) != "28")
break;
return Intrinsic::x86_sse2_psra_w; // "__builtin_ia32_psraw128"
case '2': // 1 string to match.
if (BuiltinName.substr(21, 2) != "56")
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 (BuiltinName.substr(21, 2) != "28")
break;
return Intrinsic::x86_sse2_psrl_d; // "__builtin_ia32_psrld128"
case '2': // 1 string to match.
if (BuiltinName.substr(21, 2) != "56")
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 (BuiltinName.substr(21, 2) != "28")
break;
return Intrinsic::x86_sse2_psrl_q; // "__builtin_ia32_psrlq128"
case '2': // 1 string to match.
if (BuiltinName.substr(21, 2) != "56")
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 (BuiltinName.substr(21, 2) != "di")
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 (BuiltinName.substr(21, 2) != "si")
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 (BuiltinName.substr(21, 2) != "28")
break;
return Intrinsic::x86_sse2_psrl_w; // "__builtin_ia32_psrlw128"
case '2': // 1 string to match.
if (BuiltinName.substr(21, 2) != "56")
break;
return Intrinsic::x86_avx2_psrl_w; // "__builtin_ia32_psrlw256"
}
break;
}
break;
}
break;
}
break;
}
break;
case 'r': // 1 string to match.
if (BuiltinName.substr(16, 7) != "cpps256")
break;
return Intrinsic::x86_avx_rcp_ps_256; // "__builtin_ia32_rcpps256"
case 's': // 3 strings to match.
if (BuiltinName.substr(16, 4) != "tore")
break;
switch (BuiltinName[20]) {
default: break;
case 'd': // 1 string to match.
if (BuiltinName.substr(21, 2) != "qu")
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 (BuiltinName.substr(16, 7) != "comineq")
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 (BuiltinName.substr(19, 2) != "dd")
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_fma4_vfmadd_pd; // "__builtin_ia32_vfmaddpd"
case 's': // 1 string to match.
return Intrinsic::x86_fma4_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_fma4_vfmadd_sd; // "__builtin_ia32_vfmaddsd"
case 's': // 1 string to match.
return Intrinsic::x86_fma4_vfmadd_ss; // "__builtin_ia32_vfmaddss"
}
break;
}
break;
case 's': // 4 strings to match.
if (BuiltinName.substr(19, 2) != "ub")
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_fma4_vfmsub_pd; // "__builtin_ia32_vfmsubpd"
case 's': // 1 string to match.
return Intrinsic::x86_fma4_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_fma4_vfmsub_sd; // "__builtin_ia32_vfmsubsd"
case 's': // 1 string to match.
return Intrinsic::x86_fma4_vfmsub_ss; // "__builtin_ia32_vfmsubss"
}
break;
}
break;
}
break;
case 't': // 4 strings to match.
if (BuiltinName.substr(17, 3) != "est")
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 (BuiltinName.substr(17, 6) != "eroall")
break;
return Intrinsic::x86_avx_vzeroall; // "__builtin_ia32_vzeroall"
}
break;
}
break;
case 24: // 117 strings to match.
if (BuiltinName.substr(0, 15) != "__builtin_ia32_")
break;
switch (BuiltinName[15]) {
default: break;
case 'a': // 3 strings to match.
if (BuiltinName.substr(16, 2) != "es")
break;
switch (BuiltinName[18]) {
default: break;
case 'd': // 1 string to match.
if (BuiltinName.substr(19, 5) != "ec128")
break;
return Intrinsic::x86_aesni_aesdec; // "__builtin_ia32_aesdec128"
case 'e': // 1 string to match.
if (BuiltinName.substr(19, 5) != "nc128")
break;
return Intrinsic::x86_aesni_aesenc; // "__builtin_ia32_aesenc128"
case 'i': // 1 string to match.
if (BuiltinName.substr(19, 5) != "mc128")
break;
return Intrinsic::x86_aesni_aesimc; // "__builtin_ia32_aesimc128"
}
break;
case 'b': // 2 strings to match.
if (BuiltinName.substr(16, 6) != "extr_u")
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 (BuiltinName.substr(17, 7) != "misdneq")
break;
return Intrinsic::x86_sse2_comineq_sd; // "__builtin_ia32_comisdneq"
case 'v': // 6 strings to match.
if (BuiltinName.substr(17, 2) != "tt")
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 (BuiltinName.substr(21, 3) != "2si")
break;
return Intrinsic::x86_sse2_cvttsd2si; // "__builtin_ia32_cvttsd2si"
case 's': // 1 string to match.
if (BuiltinName.substr(21, 3) != "2si")
break;
return Intrinsic::x86_sse_cvttss2si; // "__builtin_ia32_cvttss2si"
}
break;
}
break;
}
break;
case 'h': // 4 strings to match.
switch (BuiltinName[16]) {
default: break;
case 'a': // 2 strings to match.
if (BuiltinName.substr(17, 3) != "ddp")
break;
switch (BuiltinName[20]) {
default: break;
case 'd': // 1 string to match.
if (BuiltinName.substr(21, 3) != "256")
break;
return Intrinsic::x86_avx_hadd_pd_256; // "__builtin_ia32_haddpd256"
case 's': // 1 string to match.
if (BuiltinName.substr(21, 3) != "256")
break;
return Intrinsic::x86_avx_hadd_ps_256; // "__builtin_ia32_haddps256"
}
break;
case 's': // 2 strings to match.
if (BuiltinName.substr(17, 3) != "ubp")
break;
switch (BuiltinName[20]) {
default: break;
case 'd': // 1 string to match.
if (BuiltinName.substr(21, 3) != "256")
break;
return Intrinsic::x86_avx_hsub_pd_256; // "__builtin_ia32_hsubpd256"
case 's': // 1 string to match.
if (BuiltinName.substr(21, 3) != "256")
break;
return Intrinsic::x86_avx_hsub_ps_256; // "__builtin_ia32_hsubps256"
}
break;
}
break;
case 'm': // 2 strings to match.
if (BuiltinName.substr(16, 7) != "askload")
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 (BuiltinName.substr(17, 3) != "dds")
break;
switch (BuiltinName[20]) {
default: break;
case 'b': // 2 strings to match.
switch (BuiltinName[21]) {
default: break;
case '1': // 1 string to match.
if (BuiltinName.substr(22, 2) != "28")
break;
return Intrinsic::x86_sse2_padds_b; // "__builtin_ia32_paddsb128"
case '2': // 1 string to match.
if (BuiltinName.substr(22, 2) != "56")
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 (BuiltinName.substr(22, 2) != "28")
break;
return Intrinsic::x86_sse2_padds_w; // "__builtin_ia32_paddsw128"
case '2': // 1 string to match.
if (BuiltinName.substr(22, 2) != "56")
break;
return Intrinsic::x86_avx2_padds_w; // "__builtin_ia32_paddsw256"
}
break;
}
break;
case 'e': // 1 string to match.
if (BuiltinName.substr(17, 7) != "rmti256")
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 (BuiltinName.substr(18, 2) != "dd")
break;
switch (BuiltinName[20]) {
default: break;
case 'd': // 2 strings to match.
switch (BuiltinName[21]) {
default: break;
case '1': // 1 string to match.
if (BuiltinName.substr(22, 2) != "28")
break;
return Intrinsic::x86_ssse3_phadd_d_128; // "__builtin_ia32_phaddd128"
case '2': // 1 string to match.
if (BuiltinName.substr(22, 2) != "56")
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 (BuiltinName.substr(22, 2) != "28")
break;
return Intrinsic::x86_ssse3_phadd_w_128; // "__builtin_ia32_phaddw128"
case '2': // 1 string to match.
if (BuiltinName.substr(22, 2) != "56")
break;
return Intrinsic::x86_avx2_phadd_w; // "__builtin_ia32_phaddw256"
}
break;
}
break;
case 's': // 4 strings to match.
if (BuiltinName.substr(18, 2) != "ub")
break;
switch (BuiltinName[20]) {
default: break;
case 'd': // 2 strings to match.
switch (BuiltinName[21]) {
default: break;
case '1': // 1 string to match.
if (BuiltinName.substr(22, 2) != "28")
break;
return Intrinsic::x86_ssse3_phsub_d_128; // "__builtin_ia32_phsubd128"
case '2': // 1 string to match.
if (BuiltinName.substr(22, 2) != "56")
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 (BuiltinName.substr(22, 2) != "28")
break;
return Intrinsic::x86_ssse3_phsub_w_128; // "__builtin_ia32_phsubw128"
case '2': // 1 string to match.
if (BuiltinName.substr(22, 2) != "56")
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 (BuiltinName.substr(19, 5) != "dubsw")
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 (BuiltinName.substr(22, 2) != "28")
break;
return Intrinsic::x86_sse41_pmaxsb; // "__builtin_ia32_pmaxsb128"
case '2': // 1 string to match.
if (BuiltinName.substr(22, 2) != "56")
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 (BuiltinName.substr(22, 2) != "28")
break;
return Intrinsic::x86_sse41_pmaxsd; // "__builtin_ia32_pmaxsd128"
case '2': // 1 string to match.
if (BuiltinName.substr(22, 2) != "56")
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 (BuiltinName.substr(22, 2) != "28")
break;
return Intrinsic::x86_sse2_pmaxs_w; // "__builtin_ia32_pmaxsw128"
case '2': // 1 string to match.
if (BuiltinName.substr(22, 2) != "56")
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 (BuiltinName.substr(22, 2) != "28")
break;
return Intrinsic::x86_sse2_pmaxu_b; // "__builtin_ia32_pmaxub128"
case '2': // 1 string to match.
if (BuiltinName.substr(22, 2) != "56")
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 (BuiltinName.substr(22, 2) != "28")
break;
return Intrinsic::x86_sse41_pmaxud; // "__builtin_ia32_pmaxud128"
case '2': // 1 string to match.
if (BuiltinName.substr(22, 2) != "56")
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 (BuiltinName.substr(22, 2) != "28")
break;
return Intrinsic::x86_sse41_pmaxuw; // "__builtin_ia32_pmaxuw128"
case '2': // 1 string to match.
if (BuiltinName.substr(22, 2) != "56")
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 (BuiltinName.substr(22, 2) != "28")
break;
return Intrinsic::x86_sse41_pminsb; // "__builtin_ia32_pminsb128"
case '2': // 1 string to match.
if (BuiltinName.substr(22, 2) != "56")
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 (BuiltinName.substr(22, 2) != "28")
break;
return Intrinsic::x86_sse41_pminsd; // "__builtin_ia32_pminsd128"
case '2': // 1 string to match.
if (BuiltinName.substr(22, 2) != "56")
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 (BuiltinName.substr(22, 2) != "28")
break;
return Intrinsic::x86_sse2_pmins_w; // "__builtin_ia32_pminsw128"
case '2': // 1 string to match.
if (BuiltinName.substr(22, 2) != "56")
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 (BuiltinName.substr(22, 2) != "28")
break;
return Intrinsic::x86_sse2_pminu_b; // "__builtin_ia32_pminub128"
case '2': // 1 string to match.
if (BuiltinName.substr(22, 2) != "56")
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 (BuiltinName.substr(22, 2) != "28")
break;
return Intrinsic::x86_sse41_pminud; // "__builtin_ia32_pminud128"
case '2': // 1 string to match.
if (BuiltinName.substr(22, 2) != "56")
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 (BuiltinName.substr(22, 2) != "28")
break;
return Intrinsic::x86_sse41_pminuw; // "__builtin_ia32_pminuw128"
case '2': // 1 string to match.
if (BuiltinName.substr(22, 2) != "56")
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 (BuiltinName.substr(22, 2) != "28")
break;
return Intrinsic::x86_sse41_pmuldq; // "__builtin_ia32_pmuldq128"
case '2': // 1 string to match.
if (BuiltinName.substr(22, 2) != "56")
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 (BuiltinName.substr(22, 2) != "28")
break;
return Intrinsic::x86_sse2_pmulh_w; // "__builtin_ia32_pmulhw128"
case '2': // 1 string to match.
if (BuiltinName.substr(22, 2) != "56")
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 (BuiltinName.substr(18, 3) != "dbw")
break;
switch (BuiltinName[21]) {
default: break;
case '1': // 1 string to match.
if (BuiltinName.substr(22, 2) != "28")
break;
return Intrinsic::x86_sse2_psad_bw; // "__builtin_ia32_psadbw128"
case '2': // 1 string to match.
if (BuiltinName.substr(22, 2) != "56")
break;
return Intrinsic::x86_avx2_psad_bw; // "__builtin_ia32_psadbw256"
}
break;
case 'h': // 2 strings to match.
if (BuiltinName.substr(18, 3) != "ufb")
break;
switch (BuiltinName[21]) {
default: break;
case '1': // 1 string to match.
if (BuiltinName.substr(22, 2) != "28")
break;
return Intrinsic::x86_ssse3_pshuf_b_128; // "__builtin_ia32_pshufb128"
case '2': // 1 string to match.
if (BuiltinName.substr(22, 2) != "56")
break;
return Intrinsic::x86_avx2_pshuf_b; // "__builtin_ia32_pshufb256"
}
break;
case 'i': // 6 strings to match.
if (BuiltinName.substr(18, 2) != "gn")
break;
switch (BuiltinName[20]) {
default: break;
case 'b': // 2 strings to match.
switch (BuiltinName[21]) {
default: break;
case '1': // 1 string to match.
if (BuiltinName.substr(22, 2) != "28")
break;
return Intrinsic::x86_ssse3_psign_b_128; // "__builtin_ia32_psignb128"
case '2': // 1 string to match.
if (BuiltinName.substr(22, 2) != "56")
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 (BuiltinName.substr(22, 2) != "28")
break;
return Intrinsic::x86_ssse3_psign_d_128; // "__builtin_ia32_psignd128"
case '2': // 1 string to match.
if (BuiltinName.substr(22, 2) != "56")
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 (BuiltinName.substr(22, 2) != "28")
break;
return Intrinsic::x86_ssse3_psign_w_128; // "__builtin_ia32_psignw128"
case '2': // 1 string to match.
if (BuiltinName.substr(22, 2) != "56")
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 (BuiltinName.substr(22, 2) != "28")
break;
return Intrinsic::x86_sse2_pslli_d; // "__builtin_ia32_pslldi128"
case '2': // 1 string to match.
if (BuiltinName.substr(22, 2) != "56")
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 (BuiltinName.substr(22, 2) != "28")
break;
return Intrinsic::x86_sse2_pslli_q; // "__builtin_ia32_psllqi128"
case '2': // 1 string to match.
if (BuiltinName.substr(22, 2) != "56")
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 (BuiltinName.substr(22, 2) != "28")
break;
return Intrinsic::x86_sse2_pslli_w; // "__builtin_ia32_psllwi128"
case '2': // 1 string to match.
if (BuiltinName.substr(22, 2) != "56")
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 (BuiltinName.substr(22, 2) != "28")
break;
return Intrinsic::x86_sse2_psrai_d; // "__builtin_ia32_psradi128"
case '2': // 1 string to match.
if (BuiltinName.substr(22, 2) != "56")
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 (BuiltinName.substr(22, 2) != "28")
break;
return Intrinsic::x86_sse2_psrai_w; // "__builtin_ia32_psrawi128"
case '2': // 1 string to match.
if (BuiltinName.substr(22, 2) != "56")
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 (BuiltinName.substr(22, 2) != "28")
break;
return Intrinsic::x86_sse2_psrli_d; // "__builtin_ia32_psrldi128"
case '2': // 1 string to match.
if (BuiltinName.substr(22, 2) != "56")
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 (BuiltinName.substr(22, 2) != "28")
break;
return Intrinsic::x86_sse2_psrli_q; // "__builtin_ia32_psrlqi128"
case '2': // 1 string to match.
if (BuiltinName.substr(22, 2) != "56")
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 (BuiltinName.substr(22, 2) != "28")
break;
return Intrinsic::x86_sse2_psrli_w; // "__builtin_ia32_psrlwi128"
case '2': // 1 string to match.
if (BuiltinName.substr(22, 2) != "56")
break;
return Intrinsic::x86_avx2_psrli_w; // "__builtin_ia32_psrlwi256"
}
break;
}
break;
}
break;
case 'u': // 4 strings to match.
if (BuiltinName.substr(18, 2) != "bs")
break;
switch (BuiltinName[20]) {
default: break;
case 'b': // 2 strings to match.
switch (BuiltinName[21]) {
default: break;
case '1': // 1 string to match.
if (BuiltinName.substr(22, 2) != "28")
break;
return Intrinsic::x86_sse2_psubs_b; // "__builtin_ia32_psubsb128"
case '2': // 1 string to match.
if (BuiltinName.substr(22, 2) != "56")
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 (BuiltinName.substr(22, 2) != "28")
break;
return Intrinsic::x86_sse2_psubs_w; // "__builtin_ia32_psubsw128"
case '2': // 1 string to match.
if (BuiltinName.substr(22, 2) != "56")
break;
return Intrinsic::x86_avx2_psubs_w; // "__builtin_ia32_psubsw256"
}
break;
}
break;
}
break;
case 't': // 4 strings to match.
if (BuiltinName.substr(17, 3) != "est")
break;
switch (BuiltinName[20]) {
default: break;
case 'c': // 2 strings to match.
switch (BuiltinName[21]) {
default: break;
case '1': // 1 string to match.
if (BuiltinName.substr(22, 2) != "28")
break;
return Intrinsic::x86_sse41_ptestc; // "__builtin_ia32_ptestc128"
case '2': // 1 string to match.
if (BuiltinName.substr(22, 2) != "56")
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 (BuiltinName.substr(22, 2) != "28")
break;
return Intrinsic::x86_sse41_ptestz; // "__builtin_ia32_ptestz128"
case '2': // 1 string to match.
if (BuiltinName.substr(22, 2) != "56")
break;
return Intrinsic::x86_avx_ptestz_256; // "__builtin_ia32_ptestz256"
}
break;
}
break;
case 'u': // 6 strings to match.
if (BuiltinName.substr(17, 4) != "npck")
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 (BuiltinName.substr(16, 4) != "qrtp")
break;
switch (BuiltinName[20]) {
default: break;
case 'd': // 1 string to match.
if (BuiltinName.substr(21, 3) != "256")
break;
return Intrinsic::x86_avx_sqrt_pd_256; // "__builtin_ia32_sqrtpd256"
case 's': // 1 string to match.
if (BuiltinName.substr(21, 3) != "256")
break;
return Intrinsic::x86_avx_sqrt_ps_256; // "__builtin_ia32_sqrtps256"
}
break;
case 'u': // 5 strings to match.
if (BuiltinName.substr(16, 6) != "comisd")
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 (BuiltinName.substr(17, 3) != "vtp")
break;
switch (BuiltinName[20]) {
default: break;
case 'h': // 1 string to match.
if (BuiltinName.substr(21, 3) != "2ps")
break;
return Intrinsic::x86_vcvtph2ps_128; // "__builtin_ia32_vcvtph2ps"
case 's': // 1 string to match.
if (BuiltinName.substr(21, 3) != "2ph")
break;
return Intrinsic::x86_vcvtps2ph_128; // "__builtin_ia32_vcvtps2ph"
}
break;
case 'f': // 8 strings to match.
if (BuiltinName.substr(17, 2) != "nm")
break;
switch (BuiltinName[19]) {
default: break;
case 'a': // 4 strings to match.
if (BuiltinName.substr(20, 2) != "dd")
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_fma4_vfnmadd_pd; // "__builtin_ia32_vfnmaddpd"
case 's': // 1 string to match.
return Intrinsic::x86_fma4_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_fma4_vfnmadd_sd; // "__builtin_ia32_vfnmaddsd"
case 's': // 1 string to match.
return Intrinsic::x86_fma4_vfnmadd_ss; // "__builtin_ia32_vfnmaddss"
}
break;
}
break;
case 's': // 4 strings to match.
if (BuiltinName.substr(20, 2) != "ub")
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_fma4_vfnmsub_pd; // "__builtin_ia32_vfnmsubpd"
case 's': // 1 string to match.
return Intrinsic::x86_fma4_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_fma4_vfnmsub_sd; // "__builtin_ia32_vfnmsubsd"
case 's': // 1 string to match.
return Intrinsic::x86_fma4_vfnmsub_ss; // "__builtin_ia32_vfnmsubss"
}
break;
}
break;
}
break;
}
break;
}
break;
case 25: // 58 strings to match.
if (BuiltinName.substr(0, 15) != "__builtin_ia32_")
break;
switch (BuiltinName[15]) {
default: break;
case 'b': // 2 strings to match.
if (BuiltinName.substr(16, 5) != "lendp")
break;
switch (BuiltinName[21]) {
default: break;
case 'd': // 1 string to match.
if (BuiltinName.substr(22, 3) != "256")
break;
return Intrinsic::x86_avx_blend_pd_256; // "__builtin_ia32_blendpd256"
case 's': // 1 string to match.
if (BuiltinName.substr(22, 3) != "256")
break;
return Intrinsic::x86_avx_blend_ps_256; // "__builtin_ia32_blendps256"
}
break;
case 'c': // 4 strings to match.
if (BuiltinName.substr(16, 3) != "vts")
break;
switch (BuiltinName[19]) {
default: break;
case 'd': // 1 string to match.
if (BuiltinName.substr(20, 5) != "2si64")
break;
return Intrinsic::x86_sse2_cvtsd2si64; // "__builtin_ia32_cvtsd2si64"
case 'i': // 2 strings to match.
if (BuiltinName.substr(20, 4) != "642s")
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 (BuiltinName.substr(20, 5) != "2si64")
break;
return Intrinsic::x86_sse_cvtss2si64; // "__builtin_ia32_cvtss2si64"
}
break;
case 'm': // 10 strings to match.
switch (BuiltinName[16]) {
default: break;
case 'a': // 5 strings to match.
if (BuiltinName.substr(17, 2) != "sk")
break;
switch (BuiltinName[19]) {
default: break;
case 'l': // 2 strings to match.
if (BuiltinName.substr(20, 4) != "oadp")
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 (BuiltinName.substr(20, 5) != "ovdqu")
break;
return Intrinsic::x86_sse2_maskmov_dqu; // "__builtin_ia32_maskmovdqu"
case 's': // 2 strings to match.
if (BuiltinName.substr(20, 4) != "tore")
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 'o': // 3 strings to match.
if (BuiltinName.substr(17, 3) != "vnt")
break;
switch (BuiltinName[20]) {
default: break;
case 'd': // 1 string to match.
if (BuiltinName.substr(21, 4) != "q256")
break;
return Intrinsic::x86_avx_movnt_dq_256; // "__builtin_ia32_movntdq256"
case 'p': // 2 strings to match.
switch (BuiltinName[21]) {
default: break;
case 'd': // 1 string to match.
if (BuiltinName.substr(22, 3) != "256")
break;
return Intrinsic::x86_avx_movnt_pd_256; // "__builtin_ia32_movntpd256"
case 's': // 1 string to match.
if (BuiltinName.substr(22, 3) != "256")
break;
return Intrinsic::x86_avx_movnt_ps_256; // "__builtin_ia32_movntps256"
}
break;
}
break;
case 'p': // 2 strings to match.
if (BuiltinName.substr(17, 5) != "sadbw")
break;
switch (BuiltinName[22]) {
default: break;
case '1': // 1 string to match.
if (BuiltinName.substr(23, 2) != "28")
break;
return Intrinsic::x86_sse41_mpsadbw; // "__builtin_ia32_mpsadbw128"
case '2': // 1 string to match.
if (BuiltinName.substr(23, 2) != "56")
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 (BuiltinName.substr(17, 4) != "ddus")
break;
switch (BuiltinName[21]) {
default: break;
case 'b': // 2 strings to match.
switch (BuiltinName[22]) {
default: break;
case '1': // 1 string to match.
if (BuiltinName.substr(23, 2) != "28")
break;
return Intrinsic::x86_sse2_paddus_b; // "__builtin_ia32_paddusb128"
case '2': // 1 string to match.
if (BuiltinName.substr(23, 2) != "56")
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 (BuiltinName.substr(23, 2) != "28")
break;
return Intrinsic::x86_sse2_paddus_w; // "__builtin_ia32_paddusw128"
case '2': // 1 string to match.
if (BuiltinName.substr(23, 2) != "56")
break;
return Intrinsic::x86_avx2_paddus_w; // "__builtin_ia32_paddusw256"
}
break;
}
break;
case 'b': // 4 strings to match.
if (BuiltinName.substr(17, 4) != "lend")
break;
switch (BuiltinName[21]) {
default: break;
case 'd': // 2 strings to match.
switch (BuiltinName[22]) {
default: break;
case '1': // 1 string to match.
if (BuiltinName.substr(23, 2) != "28")
break;
return Intrinsic::x86_avx2_pblendd_128; // "__builtin_ia32_pblendd128"
case '2': // 1 string to match.
if (BuiltinName.substr(23, 2) != "56")
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 (BuiltinName.substr(23, 2) != "28")
break;
return Intrinsic::x86_sse41_pblendw; // "__builtin_ia32_pblendw128"
case '2': // 1 string to match.
if (BuiltinName.substr(23, 2) != "56")
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 (BuiltinName.substr(18, 4) != "ddsw")
break;
switch (BuiltinName[22]) {
default: break;
case '1': // 1 string to match.
if (BuiltinName.substr(23, 2) != "28")
break;
return Intrinsic::x86_ssse3_phadd_sw_128; // "__builtin_ia32_phaddsw128"
case '2': // 1 string to match.
if (BuiltinName.substr(23, 2) != "56")
break;
return Intrinsic::x86_avx2_phadd_sw; // "__builtin_ia32_phaddsw256"
}
break;
case 's': // 2 strings to match.
if (BuiltinName.substr(18, 4) != "ubsw")
break;
switch (BuiltinName[22]) {
default: break;
case '1': // 1 string to match.
if (BuiltinName.substr(23, 2) != "28")
break;
return Intrinsic::x86_ssse3_phsub_sw_128; // "__builtin_ia32_phsubsw128"
case '2': // 1 string to match.
if (BuiltinName.substr(23, 2) != "56")
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 (BuiltinName.substr(18, 4) != "ddwd")
break;
switch (BuiltinName[22]) {
default: break;
case '1': // 1 string to match.
if (BuiltinName.substr(23, 2) != "28")
break;
return Intrinsic::x86_sse2_pmadd_wd; // "__builtin_ia32_pmaddwd128"
case '2': // 1 string to match.
if (BuiltinName.substr(23, 2) != "56")
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 (BuiltinName.substr(20, 2) != "uw")
break;
switch (BuiltinName[22]) {
default: break;
case '1': // 1 string to match.
if (BuiltinName.substr(23, 2) != "28")
break;
return Intrinsic::x86_sse2_pmulhu_w; // "__builtin_ia32_pmulhuw128"
case '2': // 1 string to match.
if (BuiltinName.substr(23, 2) != "56")
break;
return Intrinsic::x86_avx2_pmulhu_w; // "__builtin_ia32_pmulhuw256"
}
break;
case 'u': // 2 strings to match.
if (BuiltinName.substr(20, 2) != "dq")
break;
switch (BuiltinName[22]) {
default: break;
case '1': // 1 string to match.
if (BuiltinName.substr(23, 2) != "28")
break;
return Intrinsic::x86_sse2_pmulu_dq; // "__builtin_ia32_pmuludq128"
case '2': // 1 string to match.
if (BuiltinName.substr(23, 2) != "56")
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 (BuiltinName.substr(18, 4) != "ldqi")
break;
switch (BuiltinName[22]) {
default: break;
case '1': // 1 string to match.
if (BuiltinName.substr(23, 2) != "28")
break;
return Intrinsic::x86_sse2_psll_dq; // "__builtin_ia32_pslldqi128"
case '2': // 1 string to match.
if (BuiltinName.substr(23, 2) != "56")
break;
return Intrinsic::x86_avx2_psll_dq; // "__builtin_ia32_pslldqi256"
}
break;
case 'r': // 2 strings to match.
if (BuiltinName.substr(18, 4) != "ldqi")
break;
switch (BuiltinName[22]) {
default: break;
case '1': // 1 string to match.
if (BuiltinName.substr(23, 2) != "28")
break;
return Intrinsic::x86_sse2_psrl_dq; // "__builtin_ia32_psrldqi128"
case '2': // 1 string to match.
if (BuiltinName.substr(23, 2) != "56")
break;
return Intrinsic::x86_avx2_psrl_dq; // "__builtin_ia32_psrldqi256"
}
break;
case 'u': // 4 strings to match.
if (BuiltinName.substr(18, 3) != "bus")
break;
switch (BuiltinName[21]) {
default: break;
case 'b': // 2 strings to match.
switch (BuiltinName[22]) {
default: break;
case '1': // 1 string to match.
if (BuiltinName.substr(23, 2) != "28")
break;
return Intrinsic::x86_sse2_psubus_b; // "__builtin_ia32_psubusb128"
case '2': // 1 string to match.
if (BuiltinName.substr(23, 2) != "56")
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 (BuiltinName.substr(23, 2) != "28")
break;
return Intrinsic::x86_sse2_psubus_w; // "__builtin_ia32_psubusw128"
case '2': // 1 string to match.
if (BuiltinName.substr(23, 2) != "56")
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 (BuiltinName.substr(18, 5) != "sbase")
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 (BuiltinName.substr(18, 5) != "sbase")
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 (BuiltinName.substr(17, 4) != "undp")
break;
switch (BuiltinName[21]) {
default: break;
case 'd': // 1 string to match.
if (BuiltinName.substr(22, 3) != "256")
break;
return Intrinsic::x86_avx_round_pd_256; // "__builtin_ia32_roundpd256"
case 's': // 1 string to match.
if (BuiltinName.substr(22, 3) != "256")
break;
return Intrinsic::x86_avx_round_ps_256; // "__builtin_ia32_roundps256"
}
break;
case 's': // 1 string to match.
if (BuiltinName.substr(17, 8) != "qrtps256")
break;
return Intrinsic::x86_avx_rsqrt_ps_256; // "__builtin_ia32_rsqrtps256"
}
break;
case 's': // 1 string to match.
if (BuiltinName.substr(16, 9) != "torelv4si")
break;
return Intrinsic::x86_sse2_storel_dq; // "__builtin_ia32_storelv4si"
case 'u': // 1 string to match.
if (BuiltinName.substr(16, 9) != "comisdneq")
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 (BuiltinName.substr(17, 7) != "estnzcp")
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 (BuiltinName.substr(17, 8) != "eroupper")
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 (BuiltinName.substr(18, 5) != "sbase")
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 (BuiltinName.substr(18, 5) != "sbase")
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 (BuiltinName.substr(0, 15) != "__builtin_ia32_")
break;
switch (BuiltinName[15]) {
default: break;
case 'a': // 2 strings to match.
if (BuiltinName.substr(16, 6) != "ddsubp")
break;
switch (BuiltinName[22]) {
default: break;
case 'd': // 1 string to match.
if (BuiltinName.substr(23, 3) != "256")
break;
return Intrinsic::x86_avx_addsub_pd_256; // "__builtin_ia32_addsubpd256"
case 's': // 1 string to match.
if (BuiltinName.substr(23, 3) != "256")
break;
return Intrinsic::x86_avx_addsub_ps_256; // "__builtin_ia32_addsubps256"
}
break;
case 'b': // 2 strings to match.
if (BuiltinName.substr(16, 6) != "lendvp")
break;
switch (BuiltinName[22]) {
default: break;
case 'd': // 1 string to match.
if (BuiltinName.substr(23, 3) != "256")
break;
return Intrinsic::x86_avx_blendv_pd_256; // "__builtin_ia32_blendvpd256"
case 's': // 1 string to match.
if (BuiltinName.substr(23, 3) != "256")
break;
return Intrinsic::x86_avx_blendv_ps_256; // "__builtin_ia32_blendvps256"
}
break;
case 'c': // 8 strings to match.
if (BuiltinName.substr(16, 2) != "vt")
break;
switch (BuiltinName[18]) {
default: break;
case 'd': // 2 strings to match.
if (BuiltinName.substr(19, 3) != "q2p")
break;
switch (BuiltinName[22]) {
default: break;
case 'd': // 1 string to match.
if (BuiltinName.substr(23, 3) != "256")
break;
return Intrinsic::x86_avx_cvtdq2_pd_256; // "__builtin_ia32_cvtdq2pd256"
case 's': // 1 string to match.
if (BuiltinName.substr(23, 3) != "256")
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 (BuiltinName.substr(22, 4) != "q256")
break;
return Intrinsic::x86_avx_cvt_pd2dq_256; // "__builtin_ia32_cvtpd2dq256"
case 'p': // 1 string to match.
if (BuiltinName.substr(22, 4) != "s256")
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 (BuiltinName.substr(22, 4) != "q256")
break;
return Intrinsic::x86_avx_cvt_ps2dq_256; // "__builtin_ia32_cvtps2dq256"
case 'p': // 1 string to match.
if (BuiltinName.substr(22, 4) != "d256")
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 (BuiltinName.substr(21, 5) != "2si64")
break;
return Intrinsic::x86_sse2_cvttsd2si64; // "__builtin_ia32_cvttsd2si64"
case 's': // 1 string to match.
if (BuiltinName.substr(21, 5) != "2si64")
break;
return Intrinsic::x86_sse_cvttss2si64; // "__builtin_ia32_cvttss2si64"
}
break;
}
break;
case 'i': // 1 string to match.
if (BuiltinName.substr(16, 10) != "nsertps128")
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 (BuiltinName.substr(17, 8) != "skstorep")
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 (BuiltinName.substr(19, 3) != "skp")
break;
switch (BuiltinName[22]) {
default: break;
case 'd': // 1 string to match.
if (BuiltinName.substr(23, 3) != "256")
break;
return Intrinsic::x86_avx_movmsk_pd_256; // "__builtin_ia32_movmskpd256"
case 's': // 1 string to match.
if (BuiltinName.substr(23, 3) != "256")
break;
return Intrinsic::x86_avx_movmsk_ps_256; // "__builtin_ia32_movmskps256"
}
break;
case 'n': // 1 string to match.
if (BuiltinName.substr(19, 7) != "tdqa256")
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 (BuiltinName.substr(17, 2) != "ck")
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 (BuiltinName.substr(24, 2) != "28")
break;
return Intrinsic::x86_sse2_packssdw_128; // "__builtin_ia32_packssdw128"
case '2': // 1 string to match.
if (BuiltinName.substr(24, 2) != "56")
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 (BuiltinName.substr(24, 2) != "28")
break;
return Intrinsic::x86_sse2_packsswb_128; // "__builtin_ia32_packsswb128"
case '2': // 1 string to match.
if (BuiltinName.substr(24, 2) != "56")
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 (BuiltinName.substr(24, 2) != "28")
break;
return Intrinsic::x86_sse41_packusdw; // "__builtin_ia32_packusdw128"
case '2': // 1 string to match.
if (BuiltinName.substr(24, 2) != "56")
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 (BuiltinName.substr(24, 2) != "28")
break;
return Intrinsic::x86_sse2_packuswb_128; // "__builtin_ia32_packuswb128"
case '2': // 1 string to match.
if (BuiltinName.substr(24, 2) != "56")
break;
return Intrinsic::x86_avx2_packuswb; // "__builtin_ia32_packuswb256"
}
break;
}
break;
}
break;
case 'b': // 2 strings to match.
if (BuiltinName.substr(17, 6) != "lendvb")
break;
switch (BuiltinName[23]) {
default: break;
case '1': // 1 string to match.
if (BuiltinName.substr(24, 2) != "28")
break;
return Intrinsic::x86_sse41_pblendvb; // "__builtin_ia32_pblendvb128"
case '2': // 1 string to match.
if (BuiltinName.substr(24, 2) != "56")
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 (BuiltinName.substr(20, 3) != "skb")
break;
switch (BuiltinName[23]) {
default: break;
case '1': // 1 string to match.
if (BuiltinName.substr(24, 2) != "28")
break;
return Intrinsic::x86_sse2_pmovmskb_128; // "__builtin_ia32_pmovmskb128"
case '2': // 1 string to match.
if (BuiltinName.substr(24, 2) != "56")
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 (BuiltinName.substr(24, 2) != "28")
break;
return Intrinsic::x86_sse41_pmovsxbd; // "__builtin_ia32_pmovsxbd128"
case '2': // 1 string to match.
if (BuiltinName.substr(24, 2) != "56")
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 (BuiltinName.substr(24, 2) != "28")
break;
return Intrinsic::x86_sse41_pmovsxbq; // "__builtin_ia32_pmovsxbq128"
case '2': // 1 string to match.
if (BuiltinName.substr(24, 2) != "56")
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 (BuiltinName.substr(24, 2) != "28")
break;
return Intrinsic::x86_sse41_pmovsxbw; // "__builtin_ia32_pmovsxbw128"
case '2': // 1 string to match.
if (BuiltinName.substr(24, 2) != "56")
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 (BuiltinName.substr(24, 2) != "28")
break;
return Intrinsic::x86_sse41_pmovsxdq; // "__builtin_ia32_pmovsxdq128"
case '2': // 1 string to match.
if (BuiltinName.substr(24, 2) != "56")
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 (BuiltinName.substr(24, 2) != "28")
break;
return Intrinsic::x86_sse41_pmovsxwd; // "__builtin_ia32_pmovsxwd128"
case '2': // 1 string to match.
if (BuiltinName.substr(24, 2) != "56")
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 (BuiltinName.substr(24, 2) != "28")
break;
return Intrinsic::x86_sse41_pmovsxwq; // "__builtin_ia32_pmovsxwq128"
case '2': // 1 string to match.
if (BuiltinName.substr(24, 2) != "56")
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 (BuiltinName.substr(24, 2) != "28")
break;
return Intrinsic::x86_sse41_pmovzxbd; // "__builtin_ia32_pmovzxbd128"
case '2': // 1 string to match.
if (BuiltinName.substr(24, 2) != "56")
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 (BuiltinName.substr(24, 2) != "28")
break;
return Intrinsic::x86_sse41_pmovzxbq; // "__builtin_ia32_pmovzxbq128"
case '2': // 1 string to match.
if (BuiltinName.substr(24, 2) != "56")
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 (BuiltinName.substr(24, 2) != "28")
break;
return Intrinsic::x86_sse41_pmovzxbw; // "__builtin_ia32_pmovzxbw128"
case '2': // 1 string to match.
if (BuiltinName.substr(24, 2) != "56")
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 (BuiltinName.substr(24, 2) != "28")
break;
return Intrinsic::x86_sse41_pmovzxdq; // "__builtin_ia32_pmovzxdq128"
case '2': // 1 string to match.
if (BuiltinName.substr(24, 2) != "56")
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 (BuiltinName.substr(24, 2) != "28")
break;
return Intrinsic::x86_sse41_pmovzxwd; // "__builtin_ia32_pmovzxwd128"
case '2': // 1 string to match.
if (BuiltinName.substr(24, 2) != "56")
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 (BuiltinName.substr(24, 2) != "28")
break;
return Intrinsic::x86_sse41_pmovzxwq; // "__builtin_ia32_pmovzxwq128"
case '2': // 1 string to match.
if (BuiltinName.substr(24, 2) != "56")
break;
return Intrinsic::x86_avx2_pmovzxwq; // "__builtin_ia32_pmovzxwq256"
}
break;
}
break;
}
break;
}
break;
case 'u': // 2 strings to match.
if (BuiltinName.substr(18, 5) != "lhrsw")
break;
switch (BuiltinName[23]) {
default: break;
case '1': // 1 string to match.
if (BuiltinName.substr(24, 2) != "28")
break;
return Intrinsic::x86_ssse3_pmul_hr_sw_128; // "__builtin_ia32_pmulhrsw128"
case '2': // 1 string to match.
if (BuiltinName.substr(24, 2) != "56")
break;
return Intrinsic::x86_avx2_pmul_hr_sw; // "__builtin_ia32_pmulhrsw256"
}
break;
}
break;
case 't': // 2 strings to match.
if (BuiltinName.substr(17, 6) != "estnzc")
break;
switch (BuiltinName[23]) {
default: break;
case '1': // 1 string to match.
if (BuiltinName.substr(24, 2) != "28")
break;
return Intrinsic::x86_sse41_ptestnzc; // "__builtin_ia32_ptestnzc128"
case '2': // 1 string to match.
if (BuiltinName.substr(24, 2) != "56")
break;
return Intrinsic::x86_avx_ptestnzc_256; // "__builtin_ia32_ptestnzc256"
}
break;
}
break;
case 's': // 3 strings to match.
if (BuiltinName.substr(16, 4) != "tore")
break;
switch (BuiltinName[20]) {
default: break;
case 'd': // 1 string to match.
if (BuiltinName.substr(21, 5) != "qu256")
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 (BuiltinName.substr(23, 3) != "256")
break;
return Intrinsic::x86_avx_storeu_pd_256; // "__builtin_ia32_storeupd256"
case 's': // 1 string to match.
if (BuiltinName.substr(23, 3) != "256")
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 (BuiltinName.substr(19, 2) != "dd")
break;
switch (BuiltinName[21]) {
default: break;
case 'p': // 2 strings to match.
switch (BuiltinName[22]) {
default: break;
case 'd': // 1 string to match.
if (BuiltinName.substr(23, 3) != "256")
break;
return Intrinsic::x86_fma4_vfmadd_pd_256; // "__builtin_ia32_vfmaddpd256"
case 's': // 1 string to match.
if (BuiltinName.substr(23, 3) != "256")
break;
return Intrinsic::x86_fma4_vfmadd_ps_256; // "__builtin_ia32_vfmaddps256"
}
break;
case 's': // 2 strings to match.
if (BuiltinName.substr(22, 3) != "ubp")
break;
switch (BuiltinName[25]) {
default: break;
case 'd': // 1 string to match.
return Intrinsic::x86_fma4_vfmaddsub_pd; // "__builtin_ia32_vfmaddsubpd"
case 's': // 1 string to match.
return Intrinsic::x86_fma4_vfmaddsub_ps; // "__builtin_ia32_vfmaddsubps"
}
break;
}
break;
case 's': // 4 strings to match.
if (BuiltinName.substr(19, 2) != "ub")
break;
switch (BuiltinName[21]) {
default: break;
case 'a': // 2 strings to match.
if (BuiltinName.substr(22, 3) != "ddp")
break;
switch (BuiltinName[25]) {
default: break;
case 'd': // 1 string to match.
return Intrinsic::x86_fma4_vfmsubadd_pd; // "__builtin_ia32_vfmsubaddpd"
case 's': // 1 string to match.
return Intrinsic::x86_fma4_vfmsubadd_ps; // "__builtin_ia32_vfmsubaddps"
}
break;
case 'p': // 2 strings to match.
switch (BuiltinName[22]) {
default: break;
case 'd': // 1 string to match.
if (BuiltinName.substr(23, 3) != "256")
break;
return Intrinsic::x86_fma4_vfmsub_pd_256; // "__builtin_ia32_vfmsubpd256"
case 's': // 1 string to match.
if (BuiltinName.substr(23, 3) != "256")
break;
return Intrinsic::x86_fma4_vfmsub_ps_256; // "__builtin_ia32_vfmsubps256"
}
break;
}
break;
}
break;
case 't': // 4 strings to match.
if (BuiltinName.substr(17, 3) != "est")
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 (BuiltinName.substr(23, 3) != "256")
break;
return Intrinsic::x86_avx_vtestc_pd_256; // "__builtin_ia32_vtestcpd256"
case 's': // 1 string to match.
if (BuiltinName.substr(23, 3) != "256")
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 (BuiltinName.substr(23, 3) != "256")
break;
return Intrinsic::x86_avx_vtestz_pd_256; // "__builtin_ia32_vtestzpd256"
case 's': // 1 string to match.
if (BuiltinName.substr(23, 3) != "256")
break;
return Intrinsic::x86_avx_vtestz_ps_256; // "__builtin_ia32_vtestzps256"
}
break;
}
break;
}
break;
}
break;
case 27: // 24 strings to match.
if (BuiltinName.substr(0, 15) != "__builtin_ia32_")
break;
switch (BuiltinName[15]) {
default: break;
case 'c': // 2 strings to match.
if (BuiltinName.substr(16, 4) != "vttp")
break;
switch (BuiltinName[20]) {
default: break;
case 'd': // 1 string to match.
if (BuiltinName.substr(21, 6) != "2dq256")
break;
return Intrinsic::x86_avx_cvtt_pd2dq_256; // "__builtin_ia32_cvttpd2dq256"
case 's': // 1 string to match.
if (BuiltinName.substr(21, 6) != "2dq256")
break;
return Intrinsic::x86_avx_cvtt_ps2dq_256; // "__builtin_ia32_cvttps2dq256"
}
break;
case 'e': // 1 string to match.
if (BuiltinName.substr(16, 11) != "xtractps128")
break;
return Intrinsic::x86_sse41_extractps; // "__builtin_ia32_extractps128"
case 'm': // 2 strings to match.
if (BuiltinName.substr(16, 7) != "askload")
break;
switch (BuiltinName[23]) {
default: break;
case 'd': // 1 string to match.
if (BuiltinName.substr(24, 3) != "256")
break;
return Intrinsic::x86_avx2_maskload_d_256; // "__builtin_ia32_maskloadd256"
case 'q': // 1 string to match.
if (BuiltinName.substr(24, 3) != "256")
break;
return Intrinsic::x86_avx2_maskload_q_256; // "__builtin_ia32_maskloadq256"
}
break;
case 'p': // 8 strings to match.
switch (BuiltinName[16]) {
default: break;
case 'c': // 4 strings to match.
if (BuiltinName.substr(17, 2) != "mp")
break;
switch (BuiltinName[19]) {
default: break;
case 'e': // 2 strings to match.
if (BuiltinName.substr(20, 3) != "str")
break;
switch (BuiltinName[23]) {
default: break;
case 'i': // 1 string to match.
if (BuiltinName.substr(24, 3) != "128")
break;
return Intrinsic::x86_sse42_pcmpestri128; // "__builtin_ia32_pcmpestri128"
case 'm': // 1 string to match.
if (BuiltinName.substr(24, 3) != "128")
break;
return Intrinsic::x86_sse42_pcmpestrm128; // "__builtin_ia32_pcmpestrm128"
}
break;
case 'i': // 2 strings to match.
if (BuiltinName.substr(20, 3) != "str")
break;
switch (BuiltinName[23]) {
default: break;
case 'i': // 1 string to match.
if (BuiltinName.substr(24, 3) != "128")
break;
return Intrinsic::x86_sse42_pcmpistri128; // "__builtin_ia32_pcmpistri128"
case 'm': // 1 string to match.
if (BuiltinName.substr(24, 3) != "128")
break;
return Intrinsic::x86_sse42_pcmpistrm128; // "__builtin_ia32_pcmpistrm128"
}
break;
}
break;
case 'e': // 2 strings to match.
if (BuiltinName.substr(17, 6) != "rmvars")
break;
switch (BuiltinName[23]) {
default: break;
case 'f': // 1 string to match.
if (BuiltinName.substr(24, 3) != "256")
break;
return Intrinsic::x86_avx2_permps; // "__builtin_ia32_permvarsf256"
case 'i': // 1 string to match.
if (BuiltinName.substr(24, 3) != "256")
break;
return Intrinsic::x86_avx2_permd; // "__builtin_ia32_permvarsi256"
}
break;
case 'm': // 2 strings to match.
if (BuiltinName.substr(17, 7) != "addubsw")
break;
switch (BuiltinName[24]) {
default: break;
case '1': // 1 string to match.
if (BuiltinName.substr(25, 2) != "28")
break;
return Intrinsic::x86_ssse3_pmadd_ub_sw_128; // "__builtin_ia32_pmaddubsw128"
case '2': // 1 string to match.
if (BuiltinName.substr(25, 2) != "56")
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 (BuiltinName.substr(17, 10) != "roadcastss")
break;
return Intrinsic::x86_avx_vbroadcast_ss; // "__builtin_ia32_vbroadcastss"
case 'c': // 2 strings to match.
if (BuiltinName.substr(17, 3) != "vtp")
break;
switch (BuiltinName[20]) {
default: break;
case 'h': // 1 string to match.
if (BuiltinName.substr(21, 6) != "2ps256")
break;
return Intrinsic::x86_vcvtph2ps_256; // "__builtin_ia32_vcvtph2ps256"
case 's': // 1 string to match.
if (BuiltinName.substr(21, 6) != "2ph256")
break;
return Intrinsic::x86_vcvtps2ph_256; // "__builtin_ia32_vcvtps2ph256"
}
break;
case 'e': // 2 strings to match.
if (BuiltinName.substr(17, 2) != "c_")
break;
switch (BuiltinName[19]) {
default: break;
case 'e': // 1 string to match.
if (BuiltinName.substr(20, 7) != "xt_v4hi")
break;
return Intrinsic::x86_mmx_pextr_w; // "__builtin_ia32_vec_ext_v4hi"
case 's': // 1 string to match.
if (BuiltinName.substr(20, 7) != "et_v4hi")
break;
return Intrinsic::x86_mmx_pinsr_w; // "__builtin_ia32_vec_set_v4hi"
}
break;
case 'f': // 4 strings to match.
if (BuiltinName.substr(17, 2) != "nm")
break;
switch (BuiltinName[19]) {
default: break;
case 'a': // 2 strings to match.
if (BuiltinName.substr(20, 3) != "ddp")
break;
switch (BuiltinName[23]) {
default: break;
case 'd': // 1 string to match.
if (BuiltinName.substr(24, 3) != "256")
break;
return Intrinsic::x86_fma4_vfnmadd_pd_256; // "__builtin_ia32_vfnmaddpd256"
case 's': // 1 string to match.
if (BuiltinName.substr(24, 3) != "256")
break;
return Intrinsic::x86_fma4_vfnmadd_ps_256; // "__builtin_ia32_vfnmaddps256"
}
break;
case 's': // 2 strings to match.
if (BuiltinName.substr(20, 3) != "ubp")
break;
switch (BuiltinName[23]) {
default: break;
case 'd': // 1 string to match.
if (BuiltinName.substr(24, 3) != "256")
break;
return Intrinsic::x86_fma4_vfnmsub_pd_256; // "__builtin_ia32_vfnmsubpd256"
case 's': // 1 string to match.
if (BuiltinName.substr(24, 3) != "256")
break;
return Intrinsic::x86_fma4_vfnmsub_ps_256; // "__builtin_ia32_vfnmsubps256"
}
break;
}
break;
case 'p': // 2 strings to match.
if (BuiltinName.substr(17, 9) != "ermilvarp")
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: // 20 strings to match.
if (BuiltinName.substr(0, 15) != "__builtin_ia32_")
break;
switch (BuiltinName[15]) {
default: break;
case 'a': // 2 strings to match.
if (BuiltinName.substr(16, 2) != "es")
break;
switch (BuiltinName[18]) {
default: break;
case 'd': // 1 string to match.
if (BuiltinName.substr(19, 9) != "eclast128")
break;
return Intrinsic::x86_aesni_aesdeclast; // "__builtin_ia32_aesdeclast128"
case 'e': // 1 string to match.
if (BuiltinName.substr(19, 9) != "nclast128")
break;
return Intrinsic::x86_aesni_aesenclast; // "__builtin_ia32_aesenclast128"
}
break;
case 'i': // 1 string to match.
if (BuiltinName.substr(16, 12) != "nsert128i256")
break;
return Intrinsic::x86_avx2_vinserti128; // "__builtin_ia32_insert128i256"
case 'm': // 4 strings to match.
if (BuiltinName.substr(16, 3) != "ask")
break;
switch (BuiltinName[19]) {
default: break;
case 'l': // 2 strings to match.
if (BuiltinName.substr(20, 4) != "oadp")
break;
switch (BuiltinName[24]) {
default: break;
case 'd': // 1 string to match.
if (BuiltinName.substr(25, 3) != "256")
break;
return Intrinsic::x86_avx_maskload_pd_256; // "__builtin_ia32_maskloadpd256"
case 's': // 1 string to match.
if (BuiltinName.substr(25, 3) != "256")
break;
return Intrinsic::x86_avx_maskload_ps_256; // "__builtin_ia32_maskloadps256"
}
break;
case 's': // 2 strings to match.
if (BuiltinName.substr(20, 4) != "tore")
break;
switch (BuiltinName[24]) {
default: break;
case 'd': // 1 string to match.
if (BuiltinName.substr(25, 3) != "256")
break;
return Intrinsic::x86_avx2_maskstore_d_256; // "__builtin_ia32_maskstored256"
case 'q': // 1 string to match.
if (BuiltinName.substr(25, 3) != "256")
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 (BuiltinName.substr(17, 2) != "mp")
break;
switch (BuiltinName[19]) {
default: break;
case 'e': // 5 strings to match.
if (BuiltinName.substr(20, 4) != "stri")
break;
switch (BuiltinName[24]) {
default: break;
case 'a': // 1 string to match.
if (BuiltinName.substr(25, 3) != "128")
break;
return Intrinsic::x86_sse42_pcmpestria128; // "__builtin_ia32_pcmpestria128"
case 'c': // 1 string to match.
if (BuiltinName.substr(25, 3) != "128")
break;
return Intrinsic::x86_sse42_pcmpestric128; // "__builtin_ia32_pcmpestric128"
case 'o': // 1 string to match.
if (BuiltinName.substr(25, 3) != "128")
break;
return Intrinsic::x86_sse42_pcmpestrio128; // "__builtin_ia32_pcmpestrio128"
case 's': // 1 string to match.
if (BuiltinName.substr(25, 3) != "128")
break;
return Intrinsic::x86_sse42_pcmpestris128; // "__builtin_ia32_pcmpestris128"
case 'z': // 1 string to match.
if (BuiltinName.substr(25, 3) != "128")
break;
return Intrinsic::x86_sse42_pcmpestriz128; // "__builtin_ia32_pcmpestriz128"
}
break;
case 'i': // 5 strings to match.
if (BuiltinName.substr(20, 4) != "stri")
break;
switch (BuiltinName[24]) {
default: break;
case 'a': // 1 string to match.
if (BuiltinName.substr(25, 3) != "128")
break;
return Intrinsic::x86_sse42_pcmpistria128; // "__builtin_ia32_pcmpistria128"
case 'c': // 1 string to match.
if (BuiltinName.substr(25, 3) != "128")
break;
return Intrinsic::x86_sse42_pcmpistric128; // "__builtin_ia32_pcmpistric128"
case 'o': // 1 string to match.
if (BuiltinName.substr(25, 3) != "128")
break;
return Intrinsic::x86_sse42_pcmpistrio128; // "__builtin_ia32_pcmpistrio128"
case 's': // 1 string to match.
if (BuiltinName.substr(25, 3) != "128")
break;
return Intrinsic::x86_sse42_pcmpistris128; // "__builtin_ia32_pcmpistris128"
case 'z': // 1 string to match.
if (BuiltinName.substr(25, 3) != "128")
break;
return Intrinsic::x86_sse42_pcmpistriz128; // "__builtin_ia32_pcmpistriz128"
}
break;
}
break;
case 'h': // 1 string to match.
if (BuiltinName.substr(17, 11) != "minposuw128")
break;
return Intrinsic::x86_sse41_phminposuw; // "__builtin_ia32_phminposuw128"
}
break;
case 'v': // 2 strings to match.
if (BuiltinName.substr(16, 8) != "testnzcp")
break;
switch (BuiltinName[24]) {
default: break;
case 'd': // 1 string to match.
if (BuiltinName.substr(25, 3) != "256")
break;
return Intrinsic::x86_avx_vtestnzc_pd_256; // "__builtin_ia32_vtestnzcpd256"
case 's': // 1 string to match.
if (BuiltinName.substr(25, 3) != "256")
break;
return Intrinsic::x86_avx_vtestnzc_ps_256; // "__builtin_ia32_vtestnzcps256"
}
break;
}
break;
case 29: // 15 strings to match.
if (BuiltinName.substr(0, 15) != "__builtin_ia32_")
break;
switch (BuiltinName[15]) {
default: break;
case 'e': // 1 string to match.
if (BuiltinName.substr(16, 13) != "xtract128i256")
break;
return Intrinsic::x86_avx2_vextracti128; // "__builtin_ia32_extract128i256"
case 'm': // 2 strings to match.
if (BuiltinName.substr(16, 9) != "askstorep")
break;
switch (BuiltinName[25]) {
default: break;
case 'd': // 1 string to match.
if (BuiltinName.substr(26, 3) != "256")
break;
return Intrinsic::x86_avx_maskstore_pd_256; // "__builtin_ia32_maskstorepd256"
case 's': // 1 string to match.
if (BuiltinName.substr(26, 3) != "256")
break;
return Intrinsic::x86_avx_maskstore_ps_256; // "__builtin_ia32_maskstoreps256"
}
break;
case 'p': // 8 strings to match.
if (BuiltinName.substr(16, 9) != "broadcast")
break;
switch (BuiltinName[25]) {
default: break;
case 'b': // 2 strings to match.
switch (BuiltinName[26]) {
default: break;
case '1': // 1 string to match.
if (BuiltinName.substr(27, 2) != "28")
break;
return Intrinsic::x86_avx2_pbroadcastb_128; // "__builtin_ia32_pbroadcastb128"
case '2': // 1 string to match.
if (BuiltinName.substr(27, 2) != "56")
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 (BuiltinName.substr(27, 2) != "28")
break;
return Intrinsic::x86_avx2_pbroadcastd_128; // "__builtin_ia32_pbroadcastd128"
case '2': // 1 string to match.
if (BuiltinName.substr(27, 2) != "56")
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 (BuiltinName.substr(27, 2) != "28")
break;
return Intrinsic::x86_avx2_pbroadcastq_128; // "__builtin_ia32_pbroadcastq128"
case '2': // 1 string to match.
if (BuiltinName.substr(27, 2) != "56")
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 (BuiltinName.substr(27, 2) != "28")
break;
return Intrinsic::x86_avx2_pbroadcastw_128; // "__builtin_ia32_pbroadcastw128"
case '2': // 1 string to match.
if (BuiltinName.substr(27, 2) != "56")
break;
return Intrinsic::x86_avx2_pbroadcastw_256; // "__builtin_ia32_pbroadcastw256"
}
break;
}
break;
case 'v': // 4 strings to match.
if (BuiltinName.substr(16, 2) != "fm")
break;
switch (BuiltinName[18]) {
default: break;
case 'a': // 2 strings to match.
if (BuiltinName.substr(19, 6) != "ddsubp")
break;
switch (BuiltinName[25]) {
default: break;
case 'd': // 1 string to match.
if (BuiltinName.substr(26, 3) != "256")
break;
return Intrinsic::x86_fma4_vfmaddsub_pd_256; // "__builtin_ia32_vfmaddsubpd256"
case 's': // 1 string to match.
if (BuiltinName.substr(26, 3) != "256")
break;
return Intrinsic::x86_fma4_vfmaddsub_ps_256; // "__builtin_ia32_vfmaddsubps256"
}
break;
case 's': // 2 strings to match.
if (BuiltinName.substr(19, 6) != "ubaddp")
break;
switch (BuiltinName[25]) {
default: break;
case 'd': // 1 string to match.
if (BuiltinName.substr(26, 3) != "256")
break;
return Intrinsic::x86_fma4_vfmsubadd_pd_256; // "__builtin_ia32_vfmsubaddpd256"
case 's': // 1 string to match.
if (BuiltinName.substr(26, 3) != "256")
break;
return Intrinsic::x86_fma4_vfmsubadd_ps_256; // "__builtin_ia32_vfmsubaddps256"
}
break;
}
break;
}
break;
case 30: // 6 strings to match.
if (BuiltinName.substr(0, 16) != "__builtin_ia32_v")
break;
switch (BuiltinName[16]) {
default: break;
case 'b': // 4 strings to match.
if (BuiltinName.substr(17, 9) != "roadcasts")
break;
switch (BuiltinName[26]) {
default: break;
case 'd': // 1 string to match.
if (BuiltinName.substr(27, 3) != "256")
break;
return Intrinsic::x86_avx_vbroadcast_sd_256; // "__builtin_ia32_vbroadcastsd256"
case 'i': // 1 string to match.
if (BuiltinName.substr(27, 3) != "256")
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 (BuiltinName.substr(28, 2) != "56")
break;
return Intrinsic::x86_avx_vbroadcast_ss_256; // "__builtin_ia32_vbroadcastss256"
case '_': // 1 string to match.
if (BuiltinName.substr(28, 2) != "ps")
break;
return Intrinsic::x86_avx2_vbroadcast_ss_ps; // "__builtin_ia32_vbroadcastss_ps"
}
break;
}
break;
case 'p': // 2 strings to match.
if (BuiltinName.substr(17, 9) != "ermilvarp")
break;
switch (BuiltinName[26]) {
default: break;
case 'd': // 1 string to match.
if (BuiltinName.substr(27, 3) != "256")
break;
return Intrinsic::x86_avx_vpermilvar_pd_256; // "__builtin_ia32_vpermilvarpd256"
case 's': // 1 string to match.
if (BuiltinName.substr(27, 3) != "256")
break;
return Intrinsic::x86_avx_vpermilvar_ps_256; // "__builtin_ia32_vpermilvarps256"
}
break;
}
break;
case 31: // 3 strings to match.
if (BuiltinName.substr(0, 26) != "__builtin_ia32_vperm2f128_")
break;
switch (BuiltinName[26]) {
default: break;
case 'p': // 2 strings to match.
switch (BuiltinName[27]) {
default: break;
case 'd': // 1 string to match.
if (BuiltinName.substr(28, 3) != "256")
break;
return Intrinsic::x86_avx_vperm2f128_pd_256; // "__builtin_ia32_vperm2f128_pd256"
case 's': // 1 string to match.
if (BuiltinName.substr(28, 3) != "256")
break;
return Intrinsic::x86_avx_vperm2f128_ps_256; // "__builtin_ia32_vperm2f128_ps256"
}
break;
case 's': // 1 string to match.
if (BuiltinName.substr(27, 4) != "i256")
break;
return Intrinsic::x86_avx_vperm2f128_si_256; // "__builtin_ia32_vperm2f128_si256"
}
break;
case 32: // 3 strings to match.
if (BuiltinName.substr(0, 27) != "__builtin_ia32_vinsertf128_")
break;
switch (BuiltinName[27]) {
default: break;
case 'p': // 2 strings to match.
switch (BuiltinName[28]) {
default: break;
case 'd': // 1 string to match.
if (BuiltinName.substr(29, 3) != "256")
break;
return Intrinsic::x86_avx_vinsertf128_pd_256; // "__builtin_ia32_vinsertf128_pd256"
case 's': // 1 string to match.
if (BuiltinName.substr(29, 3) != "256")
break;
return Intrinsic::x86_avx_vinsertf128_ps_256; // "__builtin_ia32_vinsertf128_ps256"
}
break;
case 's': // 1 string to match.
if (BuiltinName.substr(28, 4) != "i256")
break;
return Intrinsic::x86_avx_vinsertf128_si_256; // "__builtin_ia32_vinsertf128_si256"
}
break;
case 33: // 6 strings to match.
if (BuiltinName.substr(0, 15) != "__builtin_ia32_")
break;
switch (BuiltinName[15]) {
default: break;
case 'a': // 1 string to match.
if (BuiltinName.substr(16, 17) != "eskeygenassist128")
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 (BuiltinName.substr(17, 9) != "roadcasts")
break;
switch (BuiltinName[26]) {
default: break;
case 'd': // 1 string to match.
if (BuiltinName.substr(27, 6) != "_pd256")
break;
return Intrinsic::x86_avx2_vbroadcast_sd_pd_256; // "__builtin_ia32_vbroadcastsd_pd256"
case 's': // 1 string to match.
if (BuiltinName.substr(27, 6) != "_ps256")
break;
return Intrinsic::x86_avx2_vbroadcast_ss_ps_256; // "__builtin_ia32_vbroadcastss_ps256"
}
break;
case 'e': // 3 strings to match.
if (BuiltinName.substr(17, 11) != "xtractf128_")
break;
switch (BuiltinName[28]) {
default: break;
case 'p': // 2 strings to match.
switch (BuiltinName[29]) {
default: break;
case 'd': // 1 string to match.
if (BuiltinName.substr(30, 3) != "256")
break;
return Intrinsic::x86_avx_vextractf128_pd_256; // "__builtin_ia32_vextractf128_pd256"
case 's': // 1 string to match.
if (BuiltinName.substr(30, 3) != "256")
break;
return Intrinsic::x86_avx_vextractf128_ps_256; // "__builtin_ia32_vextractf128_ps256"
}
break;
case 's': // 1 string to match.
if (BuiltinName.substr(29, 4) != "i256")
break;
return Intrinsic::x86_avx_vextractf128_si_256; // "__builtin_ia32_vextractf128_si256"
}
break;
}
break;
}
break;
case 35: // 6 strings to match.
if (BuiltinName.substr(0, 15) != "__builtin_ia32_")
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 (BuiltinName.substr(18, 4) != "ldqi")
break;
switch (BuiltinName[22]) {
default: break;
case '1': // 1 string to match.
if (BuiltinName.substr(23, 12) != "28_byteshift")
break;
return Intrinsic::x86_sse2_psll_dq_bs; // "__builtin_ia32_pslldqi128_byteshift"
case '2': // 1 string to match.
if (BuiltinName.substr(23, 12) != "56_byteshift")
break;
return Intrinsic::x86_avx2_psll_dq_bs; // "__builtin_ia32_pslldqi256_byteshift"
}
break;
case 'r': // 2 strings to match.
if (BuiltinName.substr(18, 4) != "ldqi")
break;
switch (BuiltinName[22]) {
default: break;
case '1': // 1 string to match.
if (BuiltinName.substr(23, 12) != "28_byteshift")
break;
return Intrinsic::x86_sse2_psrl_dq_bs; // "__builtin_ia32_psrldqi128_byteshift"
case '2': // 1 string to match.
if (BuiltinName.substr(23, 12) != "56_byteshift")
break;
return Intrinsic::x86_avx2_psrl_dq_bs; // "__builtin_ia32_psrldqi256_byteshift"
}
break;
}
break;
case 'v': // 2 strings to match.
if (BuiltinName.substr(16, 15) != "broadcastf128_p")
break;
switch (BuiltinName[31]) {
default: break;
case 'd': // 1 string to match.
if (BuiltinName.substr(32, 3) != "256")
break;
return Intrinsic::x86_avx_vbroadcastf128_pd_256; // "__builtin_ia32_vbroadcastf128_pd256"
case 's': // 1 string to match.
if (BuiltinName.substr(32, 3) != "256")
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