summaryrefslogtreecommitdiff
path: root/include/llvm/IR/Intrinsics.gen
diff options
context:
space:
mode:
Diffstat (limited to 'include/llvm/IR/Intrinsics.gen')
-rw-r--r--include/llvm/IR/Intrinsics.gen66682
1 files changed, 66682 insertions, 0 deletions
diff --git a/include/llvm/IR/Intrinsics.gen b/include/llvm/IR/Intrinsics.gen
new file mode 100644
index 0000000..a99da7a
--- /dev/null
+++ b/include/llvm/IR/Intrinsics.gen
@@ -0,0 +1,66682 @@
+/*===- 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
+ AMDGPU_div_fixup, // llvm.AMDGPU.div.fixup
+ AMDGPU_div_fmas, // llvm.AMDGPU.div.fmas
+ AMDGPU_div_scale, // llvm.AMDGPU.div.scale
+ AMDGPU_rcp, // llvm.AMDGPU.rcp
+ AMDGPU_rsq, // llvm.AMDGPU.rsq
+ AMDGPU_rsq_clamped, // llvm.AMDGPU.rsq.clamped
+ AMDGPU_trig_preop, // llvm.AMDGPU.trig.preop
+ aarch64_clrex, // llvm.aarch64.clrex
+ aarch64_crc32b, // llvm.aarch64.crc32b
+ aarch64_crc32cb, // llvm.aarch64.crc32cb
+ aarch64_crc32ch, // llvm.aarch64.crc32ch
+ aarch64_crc32cw, // llvm.aarch64.crc32cw
+ aarch64_crc32cx, // llvm.aarch64.crc32cx
+ aarch64_crc32h, // llvm.aarch64.crc32h
+ aarch64_crc32w, // llvm.aarch64.crc32w
+ aarch64_crc32x, // llvm.aarch64.crc32x
+ aarch64_crypto_aesd, // llvm.aarch64.crypto.aesd
+ aarch64_crypto_aese, // llvm.aarch64.crypto.aese
+ aarch64_crypto_aesimc, // llvm.aarch64.crypto.aesimc
+ aarch64_crypto_aesmc, // llvm.aarch64.crypto.aesmc
+ aarch64_crypto_sha1c, // llvm.aarch64.crypto.sha1c
+ aarch64_crypto_sha1h, // llvm.aarch64.crypto.sha1h
+ aarch64_crypto_sha1m, // llvm.aarch64.crypto.sha1m
+ aarch64_crypto_sha1p, // llvm.aarch64.crypto.sha1p
+ aarch64_crypto_sha1su0, // llvm.aarch64.crypto.sha1su0
+ aarch64_crypto_sha1su1, // llvm.aarch64.crypto.sha1su1
+ aarch64_crypto_sha256h, // llvm.aarch64.crypto.sha256h
+ aarch64_crypto_sha256h2, // llvm.aarch64.crypto.sha256h2
+ aarch64_crypto_sha256su0, // llvm.aarch64.crypto.sha256su0
+ aarch64_crypto_sha256su1, // llvm.aarch64.crypto.sha256su1
+ aarch64_dmb, // llvm.aarch64.dmb
+ aarch64_dsb, // llvm.aarch64.dsb
+ aarch64_hint, // llvm.aarch64.hint
+ aarch64_isb, // llvm.aarch64.isb
+ aarch64_ldaxp, // llvm.aarch64.ldaxp
+ aarch64_ldaxr, // llvm.aarch64.ldaxr
+ aarch64_ldxp, // llvm.aarch64.ldxp
+ aarch64_ldxr, // llvm.aarch64.ldxr
+ aarch64_neon_abs, // llvm.aarch64.neon.abs
+ aarch64_neon_addhn, // llvm.aarch64.neon.addhn
+ aarch64_neon_addp, // llvm.aarch64.neon.addp
+ aarch64_neon_cls, // llvm.aarch64.neon.cls
+ aarch64_neon_fabd, // llvm.aarch64.neon.fabd
+ aarch64_neon_facge, // llvm.aarch64.neon.facge
+ aarch64_neon_facgt, // llvm.aarch64.neon.facgt
+ aarch64_neon_faddv, // llvm.aarch64.neon.faddv
+ aarch64_neon_fcvtas, // llvm.aarch64.neon.fcvtas
+ aarch64_neon_fcvtau, // llvm.aarch64.neon.fcvtau
+ aarch64_neon_fcvtms, // llvm.aarch64.neon.fcvtms
+ aarch64_neon_fcvtmu, // llvm.aarch64.neon.fcvtmu
+ aarch64_neon_fcvtns, // llvm.aarch64.neon.fcvtns
+ aarch64_neon_fcvtnu, // llvm.aarch64.neon.fcvtnu
+ aarch64_neon_fcvtps, // llvm.aarch64.neon.fcvtps
+ aarch64_neon_fcvtpu, // llvm.aarch64.neon.fcvtpu
+ aarch64_neon_fcvtxn, // llvm.aarch64.neon.fcvtxn
+ aarch64_neon_fcvtzs, // llvm.aarch64.neon.fcvtzs
+ aarch64_neon_fcvtzu, // llvm.aarch64.neon.fcvtzu
+ aarch64_neon_fmax, // llvm.aarch64.neon.fmax
+ aarch64_neon_fmaxnm, // llvm.aarch64.neon.fmaxnm
+ aarch64_neon_fmaxnmp, // llvm.aarch64.neon.fmaxnmp
+ aarch64_neon_fmaxnmv, // llvm.aarch64.neon.fmaxnmv
+ aarch64_neon_fmaxp, // llvm.aarch64.neon.fmaxp
+ aarch64_neon_fmaxv, // llvm.aarch64.neon.fmaxv
+ aarch64_neon_fmin, // llvm.aarch64.neon.fmin
+ aarch64_neon_fminnm, // llvm.aarch64.neon.fminnm
+ aarch64_neon_fminnmp, // llvm.aarch64.neon.fminnmp
+ aarch64_neon_fminnmv, // llvm.aarch64.neon.fminnmv
+ aarch64_neon_fminp, // llvm.aarch64.neon.fminp
+ aarch64_neon_fminv, // llvm.aarch64.neon.fminv
+ aarch64_neon_fmulx, // llvm.aarch64.neon.fmulx
+ aarch64_neon_frecpe, // llvm.aarch64.neon.frecpe
+ aarch64_neon_frecps, // llvm.aarch64.neon.frecps
+ aarch64_neon_frecpx, // llvm.aarch64.neon.frecpx
+ aarch64_neon_frintn, // llvm.aarch64.neon.frintn
+ aarch64_neon_frsqrte, // llvm.aarch64.neon.frsqrte
+ aarch64_neon_frsqrts, // llvm.aarch64.neon.frsqrts
+ aarch64_neon_ld1x2, // llvm.aarch64.neon.ld1x2
+ aarch64_neon_ld1x3, // llvm.aarch64.neon.ld1x3
+ aarch64_neon_ld1x4, // llvm.aarch64.neon.ld1x4
+ aarch64_neon_ld2, // llvm.aarch64.neon.ld2
+ aarch64_neon_ld2lane, // llvm.aarch64.neon.ld2lane
+ aarch64_neon_ld2r, // llvm.aarch64.neon.ld2r
+ aarch64_neon_ld3, // llvm.aarch64.neon.ld3
+ aarch64_neon_ld3lane, // llvm.aarch64.neon.ld3lane
+ aarch64_neon_ld3r, // llvm.aarch64.neon.ld3r
+ aarch64_neon_ld4, // llvm.aarch64.neon.ld4
+ aarch64_neon_ld4lane, // llvm.aarch64.neon.ld4lane
+ aarch64_neon_ld4r, // llvm.aarch64.neon.ld4r
+ aarch64_neon_pmul, // llvm.aarch64.neon.pmul
+ aarch64_neon_pmull, // llvm.aarch64.neon.pmull
+ aarch64_neon_pmull64, // llvm.aarch64.neon.pmull64
+ aarch64_neon_raddhn, // llvm.aarch64.neon.raddhn
+ aarch64_neon_rbit, // llvm.aarch64.neon.rbit
+ aarch64_neon_rshrn, // llvm.aarch64.neon.rshrn
+ aarch64_neon_rsubhn, // llvm.aarch64.neon.rsubhn
+ aarch64_neon_sabd, // llvm.aarch64.neon.sabd
+ aarch64_neon_saddlp, // llvm.aarch64.neon.saddlp
+ aarch64_neon_saddlv, // llvm.aarch64.neon.saddlv
+ aarch64_neon_saddv, // llvm.aarch64.neon.saddv
+ aarch64_neon_scalar_sqxtn, // llvm.aarch64.neon.scalar.sqxtn
+ aarch64_neon_scalar_sqxtun, // llvm.aarch64.neon.scalar.sqxtun
+ aarch64_neon_scalar_uqxtn, // llvm.aarch64.neon.scalar.uqxtn
+ aarch64_neon_shadd, // llvm.aarch64.neon.shadd
+ aarch64_neon_shll, // llvm.aarch64.neon.shll
+ aarch64_neon_shsub, // llvm.aarch64.neon.shsub
+ aarch64_neon_smax, // llvm.aarch64.neon.smax
+ aarch64_neon_smaxp, // llvm.aarch64.neon.smaxp
+ aarch64_neon_smaxv, // llvm.aarch64.neon.smaxv
+ aarch64_neon_smin, // llvm.aarch64.neon.smin
+ aarch64_neon_sminp, // llvm.aarch64.neon.sminp
+ aarch64_neon_sminv, // llvm.aarch64.neon.sminv
+ aarch64_neon_smull, // llvm.aarch64.neon.smull
+ aarch64_neon_sqabs, // llvm.aarch64.neon.sqabs
+ aarch64_neon_sqadd, // llvm.aarch64.neon.sqadd
+ aarch64_neon_sqdmulh, // llvm.aarch64.neon.sqdmulh
+ aarch64_neon_sqdmull, // llvm.aarch64.neon.sqdmull
+ aarch64_neon_sqdmulls_scalar, // llvm.aarch64.neon.sqdmulls.scalar
+ aarch64_neon_sqneg, // llvm.aarch64.neon.sqneg
+ aarch64_neon_sqrdmulh, // llvm.aarch64.neon.sqrdmulh
+ aarch64_neon_sqrshl, // llvm.aarch64.neon.sqrshl
+ aarch64_neon_sqrshrn, // llvm.aarch64.neon.sqrshrn
+ aarch64_neon_sqrshrun, // llvm.aarch64.neon.sqrshrun
+ aarch64_neon_sqshl, // llvm.aarch64.neon.sqshl
+ aarch64_neon_sqshlu, // llvm.aarch64.neon.sqshlu
+ aarch64_neon_sqshrn, // llvm.aarch64.neon.sqshrn
+ aarch64_neon_sqshrun, // llvm.aarch64.neon.sqshrun
+ aarch64_neon_sqsub, // llvm.aarch64.neon.sqsub
+ aarch64_neon_sqxtn, // llvm.aarch64.neon.sqxtn
+ aarch64_neon_sqxtun, // llvm.aarch64.neon.sqxtun
+ aarch64_neon_srhadd, // llvm.aarch64.neon.srhadd
+ aarch64_neon_srshl, // llvm.aarch64.neon.srshl
+ aarch64_neon_sshl, // llvm.aarch64.neon.sshl
+ aarch64_neon_sshll, // llvm.aarch64.neon.sshll
+ aarch64_neon_st1x2, // llvm.aarch64.neon.st1x2
+ aarch64_neon_st1x3, // llvm.aarch64.neon.st1x3
+ aarch64_neon_st1x4, // llvm.aarch64.neon.st1x4
+ aarch64_neon_st2, // llvm.aarch64.neon.st2
+ aarch64_neon_st2lane, // llvm.aarch64.neon.st2lane
+ aarch64_neon_st3, // llvm.aarch64.neon.st3
+ aarch64_neon_st3lane, // llvm.aarch64.neon.st3lane
+ aarch64_neon_st4, // llvm.aarch64.neon.st4
+ aarch64_neon_st4lane, // llvm.aarch64.neon.st4lane
+ aarch64_neon_subhn, // llvm.aarch64.neon.subhn
+ aarch64_neon_suqadd, // llvm.aarch64.neon.suqadd
+ aarch64_neon_tbl1, // llvm.aarch64.neon.tbl1
+ aarch64_neon_tbl2, // llvm.aarch64.neon.tbl2
+ aarch64_neon_tbl3, // llvm.aarch64.neon.tbl3
+ aarch64_neon_tbl4, // llvm.aarch64.neon.tbl4
+ aarch64_neon_tbx1, // llvm.aarch64.neon.tbx1
+ aarch64_neon_tbx2, // llvm.aarch64.neon.tbx2
+ aarch64_neon_tbx3, // llvm.aarch64.neon.tbx3
+ aarch64_neon_tbx4, // llvm.aarch64.neon.tbx4
+ aarch64_neon_uabd, // llvm.aarch64.neon.uabd
+ aarch64_neon_uaddlp, // llvm.aarch64.neon.uaddlp
+ aarch64_neon_uaddlv, // llvm.aarch64.neon.uaddlv
+ aarch64_neon_uaddv, // llvm.aarch64.neon.uaddv
+ aarch64_neon_uhadd, // llvm.aarch64.neon.uhadd
+ aarch64_neon_uhsub, // llvm.aarch64.neon.uhsub
+ aarch64_neon_umax, // llvm.aarch64.neon.umax
+ aarch64_neon_umaxp, // llvm.aarch64.neon.umaxp
+ aarch64_neon_umaxv, // llvm.aarch64.neon.umaxv
+ aarch64_neon_umin, // llvm.aarch64.neon.umin
+ aarch64_neon_uminp, // llvm.aarch64.neon.uminp
+ aarch64_neon_uminv, // llvm.aarch64.neon.uminv
+ aarch64_neon_umull, // llvm.aarch64.neon.umull
+ aarch64_neon_uqadd, // llvm.aarch64.neon.uqadd
+ aarch64_neon_uqrshl, // llvm.aarch64.neon.uqrshl
+ aarch64_neon_uqrshrn, // llvm.aarch64.neon.uqrshrn
+ aarch64_neon_uqshl, // llvm.aarch64.neon.uqshl
+ aarch64_neon_uqshrn, // llvm.aarch64.neon.uqshrn
+ aarch64_neon_uqsub, // llvm.aarch64.neon.uqsub
+ aarch64_neon_uqxtn, // llvm.aarch64.neon.uqxtn
+ aarch64_neon_urecpe, // llvm.aarch64.neon.urecpe
+ aarch64_neon_urhadd, // llvm.aarch64.neon.urhadd
+ aarch64_neon_urshl, // llvm.aarch64.neon.urshl
+ aarch64_neon_ursqrte, // llvm.aarch64.neon.ursqrte
+ aarch64_neon_ushl, // llvm.aarch64.neon.ushl
+ aarch64_neon_ushll, // llvm.aarch64.neon.ushll
+ aarch64_neon_usqadd, // llvm.aarch64.neon.usqadd
+ aarch64_neon_vcopy_lane, // llvm.aarch64.neon.vcopy.lane
+ aarch64_neon_vcvtfp2fxs, // llvm.aarch64.neon.vcvtfp2fxs
+ aarch64_neon_vcvtfp2fxu, // llvm.aarch64.neon.vcvtfp2fxu
+ aarch64_neon_vcvtfp2hf, // llvm.aarch64.neon.vcvtfp2hf
+ aarch64_neon_vcvtfxs2fp, // llvm.aarch64.neon.vcvtfxs2fp
+ aarch64_neon_vcvtfxu2fp, // llvm.aarch64.neon.vcvtfxu2fp
+ aarch64_neon_vcvthf2fp, // llvm.aarch64.neon.vcvthf2fp
+ aarch64_neon_vsli, // llvm.aarch64.neon.vsli
+ aarch64_neon_vsri, // llvm.aarch64.neon.vsri
+ aarch64_rbit, // llvm.aarch64.rbit
+ aarch64_sdiv, // llvm.aarch64.sdiv
+ aarch64_sisd_fabd, // llvm.aarch64.sisd.fabd
+ aarch64_sisd_fcvtxn, // llvm.aarch64.sisd.fcvtxn
+ aarch64_stlxp, // llvm.aarch64.stlxp
+ aarch64_stlxr, // llvm.aarch64.stlxr
+ aarch64_stxp, // llvm.aarch64.stxp
+ aarch64_stxr, // llvm.aarch64.stxr
+ aarch64_udiv, // llvm.aarch64.udiv
+ adjust_trampoline, // llvm.adjust.trampoline
+ annotation, // llvm.annotation
+ arm_cdp, // llvm.arm.cdp
+ arm_cdp2, // llvm.arm.cdp2
+ arm_clrex, // llvm.arm.clrex
+ arm_crc32b, // llvm.arm.crc32b
+ arm_crc32cb, // llvm.arm.crc32cb
+ arm_crc32ch, // llvm.arm.crc32ch
+ arm_crc32cw, // llvm.arm.crc32cw
+ arm_crc32h, // llvm.arm.crc32h
+ arm_crc32w, // llvm.arm.crc32w
+ arm_dmb, // llvm.arm.dmb
+ arm_dsb, // llvm.arm.dsb
+ arm_get_fpscr, // llvm.arm.get.fpscr
+ arm_hint, // llvm.arm.hint
+ arm_isb, // llvm.arm.isb
+ arm_ldaex, // llvm.arm.ldaex
+ arm_ldaexd, // llvm.arm.ldaexd
+ arm_ldrex, // llvm.arm.ldrex
+ 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_aesd, // llvm.arm.neon.aesd
+ arm_neon_aese, // llvm.arm.neon.aese
+ arm_neon_aesimc, // llvm.arm.neon.aesimc
+ arm_neon_aesmc, // llvm.arm.neon.aesmc
+ arm_neon_sha1c, // llvm.arm.neon.sha1c
+ arm_neon_sha1h, // llvm.arm.neon.sha1h
+ arm_neon_sha1m, // llvm.arm.neon.sha1m
+ arm_neon_sha1p, // llvm.arm.neon.sha1p
+ arm_neon_sha1su0, // llvm.arm.neon.sha1su0
+ arm_neon_sha1su1, // llvm.arm.neon.sha1su1
+ arm_neon_sha256h, // llvm.arm.neon.sha256h
+ arm_neon_sha256h2, // llvm.arm.neon.sha256h2
+ arm_neon_sha256su0, // llvm.arm.neon.sha256su0
+ arm_neon_sha256su1, // llvm.arm.neon.sha256su1
+ arm_neon_vabds, // llvm.arm.neon.vabds
+ arm_neon_vabdu, // llvm.arm.neon.vabdu
+ arm_neon_vabs, // llvm.arm.neon.vabs
+ arm_neon_vacge, // llvm.arm.neon.vacge
+ arm_neon_vacgt, // llvm.arm.neon.vacgt
+ arm_neon_vbsl, // llvm.arm.neon.vbsl
+ arm_neon_vcls, // llvm.arm.neon.vcls
+ arm_neon_vclz, // llvm.arm.neon.vclz
+ arm_neon_vcnt, // llvm.arm.neon.vcnt
+ arm_neon_vcvtas, // llvm.arm.neon.vcvtas
+ arm_neon_vcvtau, // llvm.arm.neon.vcvtau
+ 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_vcvtms, // llvm.arm.neon.vcvtms
+ arm_neon_vcvtmu, // llvm.arm.neon.vcvtmu
+ arm_neon_vcvtns, // llvm.arm.neon.vcvtns
+ arm_neon_vcvtnu, // llvm.arm.neon.vcvtnu
+ arm_neon_vcvtps, // llvm.arm.neon.vcvtps
+ arm_neon_vcvtpu, // llvm.arm.neon.vcvtpu
+ 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_vmaxnm, // llvm.arm.neon.vmaxnm
+ arm_neon_vmaxs, // llvm.arm.neon.vmaxs
+ arm_neon_vmaxu, // llvm.arm.neon.vmaxu
+ arm_neon_vminnm, // llvm.arm.neon.vminnm
+ 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_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_vrinta, // llvm.arm.neon.vrinta
+ arm_neon_vrintm, // llvm.arm.neon.vrintm
+ arm_neon_vrintn, // llvm.arm.neon.vrintn
+ arm_neon_vrintp, // llvm.arm.neon.vrintp
+ arm_neon_vrintx, // llvm.arm.neon.vrintx
+ arm_neon_vrintz, // llvm.arm.neon.vrintz
+ 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_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_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_rbit, // llvm.arm.rbit
+ arm_set_fpscr, // llvm.arm.set.fpscr
+ arm_ssat, // llvm.arm.ssat
+ arm_stlex, // llvm.arm.stlex
+ arm_stlexd, // llvm.arm.stlexd
+ arm_strex, // llvm.arm.strex
+ arm_strexd, // llvm.arm.strexd
+ arm_thread_pointer, // llvm.arm.thread.pointer
+ arm_undefined, // llvm.arm.undefined
+ arm_usat, // llvm.arm.usat
+ arm_vcvtr, // llvm.arm.vcvtr
+ arm_vcvtru, // llvm.arm.vcvtru
+ bswap, // llvm.bswap
+ ceil, // llvm.ceil
+ clear_cache, // llvm.clear_cache
+ 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
+ copysign, // llvm.copysign
+ cos, // llvm.cos
+ ctlz, // llvm.ctlz
+ ctpop, // llvm.ctpop
+ cttz, // llvm.cttz
+ cuda_syncthreads, // llvm.cuda.syncthreads
+ dbg_declare, // llvm.dbg.declare
+ dbg_value, // llvm.dbg.value
+ debugtrap, // llvm.debugtrap
+ donothing, // llvm.donothing
+ eh_dwarf_cfa, // llvm.eh.dwarf.cfa
+ eh_return_i32, // llvm.eh.return.i32
+ eh_return_i64, // llvm.eh.return.i64
+ eh_sjlj_callsite, // llvm.eh.sjlj.callsite
+ eh_sjlj_functioncontext, // llvm.eh.sjlj.functioncontext
+ eh_sjlj_longjmp, // llvm.eh.sjlj.longjmp
+ eh_sjlj_lsda, // llvm.eh.sjlj.lsda
+ eh_sjlj_setjmp, // llvm.eh.sjlj.setjmp
+ eh_typeid_for, // llvm.eh.typeid.for
+ eh_unwind_init, // llvm.eh.unwind.init
+ exp, // llvm.exp
+ exp2, // llvm.exp2
+ expect, // llvm.expect
+ experimental_patchpoint_i64, // llvm.experimental.patchpoint.i64
+ experimental_patchpoint_void, // llvm.experimental.patchpoint.void
+ experimental_stackmap, // llvm.experimental.stackmap
+ fabs, // llvm.fabs
+ floor, // llvm.floor
+ flt_rounds, // llvm.flt.rounds
+ fma, // llvm.fma
+ fmuladd, // llvm.fmuladd
+ frameaddress, // llvm.frameaddress
+ gcread, // llvm.gcread
+ gcroot, // llvm.gcroot
+ gcwrite, // llvm.gcwrite
+ hexagon_A2_abs, // llvm.hexagon.A2.abs
+ hexagon_A2_absp, // llvm.hexagon.A2.absp
+ hexagon_A2_abssat, // llvm.hexagon.A2.abssat
+ hexagon_A2_add, // llvm.hexagon.A2.add
+ hexagon_A2_addh_h16_hh, // llvm.hexagon.A2.addh.h16.hh
+ hexagon_A2_addh_h16_hl, // llvm.hexagon.A2.addh.h16.hl
+ hexagon_A2_addh_h16_lh, // llvm.hexagon.A2.addh.h16.lh
+ hexagon_A2_addh_h16_ll, // llvm.hexagon.A2.addh.h16.ll
+ hexagon_A2_addh_h16_sat_hh, // llvm.hexagon.A2.addh.h16.sat.hh
+ hexagon_A2_addh_h16_sat_hl, // llvm.hexagon.A2.addh.h16.sat.hl
+ hexagon_A2_addh_h16_sat_lh, // llvm.hexagon.A2.addh.h16.sat.lh
+ hexagon_A2_addh_h16_sat_ll, // llvm.hexagon.A2.addh.h16.sat.ll
+ hexagon_A2_addh_l16_hl, // llvm.hexagon.A2.addh.l16.hl
+ hexagon_A2_addh_l16_ll, // llvm.hexagon.A2.addh.l16.ll
+ hexagon_A2_addh_l16_sat_hl, // llvm.hexagon.A2.addh.l16.sat.hl
+ hexagon_A2_addh_l16_sat_ll, // llvm.hexagon.A2.addh.l16.sat.ll
+ hexagon_A2_addi, // llvm.hexagon.A2.addi
+ hexagon_A2_addp, // llvm.hexagon.A2.addp
+ hexagon_A2_addpsat, // llvm.hexagon.A2.addpsat
+ hexagon_A2_addsat, // llvm.hexagon.A2.addsat
+ hexagon_A2_addsp, // llvm.hexagon.A2.addsp
+ hexagon_A2_and, // llvm.hexagon.A2.and
+ hexagon_A2_andir, // llvm.hexagon.A2.andir
+ hexagon_A2_andp, // llvm.hexagon.A2.andp
+ hexagon_A2_aslh, // llvm.hexagon.A2.aslh
+ hexagon_A2_asrh, // llvm.hexagon.A2.asrh
+ hexagon_A2_combine_hh, // llvm.hexagon.A2.combine.hh
+ hexagon_A2_combine_hl, // llvm.hexagon.A2.combine.hl
+ hexagon_A2_combine_lh, // llvm.hexagon.A2.combine.lh
+ hexagon_A2_combine_ll, // llvm.hexagon.A2.combine.ll
+ hexagon_A2_combineii, // llvm.hexagon.A2.combineii
+ hexagon_A2_combinew, // llvm.hexagon.A2.combinew
+ hexagon_A2_max, // llvm.hexagon.A2.max
+ hexagon_A2_maxp, // llvm.hexagon.A2.maxp
+ hexagon_A2_maxu, // llvm.hexagon.A2.maxu
+ hexagon_A2_maxup, // llvm.hexagon.A2.maxup
+ hexagon_A2_min, // llvm.hexagon.A2.min
+ hexagon_A2_minp, // llvm.hexagon.A2.minp
+ hexagon_A2_minu, // llvm.hexagon.A2.minu
+ hexagon_A2_minup, // llvm.hexagon.A2.minup
+ hexagon_A2_neg, // llvm.hexagon.A2.neg
+ hexagon_A2_negp, // llvm.hexagon.A2.negp
+ hexagon_A2_negsat, // llvm.hexagon.A2.negsat
+ hexagon_A2_not, // llvm.hexagon.A2.not
+ hexagon_A2_notp, // llvm.hexagon.A2.notp
+ hexagon_A2_or, // llvm.hexagon.A2.or
+ hexagon_A2_orir, // llvm.hexagon.A2.orir
+ hexagon_A2_orp, // llvm.hexagon.A2.orp
+ hexagon_A2_roundsat, // llvm.hexagon.A2.roundsat
+ hexagon_A2_sat, // llvm.hexagon.A2.sat
+ hexagon_A2_satb, // llvm.hexagon.A2.satb
+ hexagon_A2_sath, // llvm.hexagon.A2.sath
+ hexagon_A2_satub, // llvm.hexagon.A2.satub
+ hexagon_A2_satuh, // llvm.hexagon.A2.satuh
+ hexagon_A2_sub, // llvm.hexagon.A2.sub
+ hexagon_A2_subh_h16_hh, // llvm.hexagon.A2.subh.h16.hh
+ hexagon_A2_subh_h16_hl, // llvm.hexagon.A2.subh.h16.hl
+ hexagon_A2_subh_h16_lh, // llvm.hexagon.A2.subh.h16.lh
+ hexagon_A2_subh_h16_ll, // llvm.hexagon.A2.subh.h16.ll
+ hexagon_A2_subh_h16_sat_hh, // llvm.hexagon.A2.subh.h16.sat.hh
+ hexagon_A2_subh_h16_sat_hl, // llvm.hexagon.A2.subh.h16.sat.hl
+ hexagon_A2_subh_h16_sat_lh, // llvm.hexagon.A2.subh.h16.sat.lh
+ hexagon_A2_subh_h16_sat_ll, // llvm.hexagon.A2.subh.h16.sat.ll
+ hexagon_A2_subh_l16_hl, // llvm.hexagon.A2.subh.l16.hl
+ hexagon_A2_subh_l16_ll, // llvm.hexagon.A2.subh.l16.ll
+ hexagon_A2_subh_l16_sat_hl, // llvm.hexagon.A2.subh.l16.sat.hl
+ hexagon_A2_subh_l16_sat_ll, // llvm.hexagon.A2.subh.l16.sat.ll
+ hexagon_A2_subp, // llvm.hexagon.A2.subp
+ hexagon_A2_subri, // llvm.hexagon.A2.subri
+ hexagon_A2_subsat, // llvm.hexagon.A2.subsat
+ hexagon_A2_svaddh, // llvm.hexagon.A2.svaddh
+ hexagon_A2_svaddhs, // llvm.hexagon.A2.svaddhs
+ hexagon_A2_svadduhs, // llvm.hexagon.A2.svadduhs
+ hexagon_A2_svavgh, // llvm.hexagon.A2.svavgh
+ hexagon_A2_svavghs, // llvm.hexagon.A2.svavghs
+ hexagon_A2_svnavgh, // llvm.hexagon.A2.svnavgh
+ hexagon_A2_svsubh, // llvm.hexagon.A2.svsubh
+ hexagon_A2_svsubhs, // llvm.hexagon.A2.svsubhs
+ hexagon_A2_svsubuhs, // llvm.hexagon.A2.svsubuhs
+ hexagon_A2_swiz, // llvm.hexagon.A2.swiz
+ hexagon_A2_sxtb, // llvm.hexagon.A2.sxtb
+ hexagon_A2_sxth, // llvm.hexagon.A2.sxth
+ hexagon_A2_sxtw, // llvm.hexagon.A2.sxtw
+ hexagon_A2_tfr, // llvm.hexagon.A2.tfr
+ hexagon_A2_tfrih, // llvm.hexagon.A2.tfrih
+ hexagon_A2_tfril, // llvm.hexagon.A2.tfril
+ hexagon_A2_tfrp, // llvm.hexagon.A2.tfrp
+ hexagon_A2_tfrpi, // llvm.hexagon.A2.tfrpi
+ hexagon_A2_tfrsi, // llvm.hexagon.A2.tfrsi
+ hexagon_A2_vabsh, // llvm.hexagon.A2.vabsh
+ hexagon_A2_vabshsat, // llvm.hexagon.A2.vabshsat
+ hexagon_A2_vabsw, // llvm.hexagon.A2.vabsw
+ hexagon_A2_vabswsat, // llvm.hexagon.A2.vabswsat
+ hexagon_A2_vaddb_map, // llvm.hexagon.A2.vaddb.map
+ hexagon_A2_vaddh, // llvm.hexagon.A2.vaddh
+ hexagon_A2_vaddhs, // llvm.hexagon.A2.vaddhs
+ hexagon_A2_vaddub, // llvm.hexagon.A2.vaddub
+ hexagon_A2_vaddubs, // llvm.hexagon.A2.vaddubs
+ hexagon_A2_vadduhs, // llvm.hexagon.A2.vadduhs
+ hexagon_A2_vaddw, // llvm.hexagon.A2.vaddw
+ hexagon_A2_vaddws, // llvm.hexagon.A2.vaddws
+ hexagon_A2_vavgh, // llvm.hexagon.A2.vavgh
+ hexagon_A2_vavghcr, // llvm.hexagon.A2.vavghcr
+ hexagon_A2_vavghr, // llvm.hexagon.A2.vavghr
+ hexagon_A2_vavgub, // llvm.hexagon.A2.vavgub
+ hexagon_A2_vavgubr, // llvm.hexagon.A2.vavgubr
+ hexagon_A2_vavguh, // llvm.hexagon.A2.vavguh
+ hexagon_A2_vavguhr, // llvm.hexagon.A2.vavguhr
+ hexagon_A2_vavguw, // llvm.hexagon.A2.vavguw
+ hexagon_A2_vavguwr, // llvm.hexagon.A2.vavguwr
+ hexagon_A2_vavgw, // llvm.hexagon.A2.vavgw
+ hexagon_A2_vavgwcr, // llvm.hexagon.A2.vavgwcr
+ hexagon_A2_vavgwr, // llvm.hexagon.A2.vavgwr
+ hexagon_A2_vcmpbeq, // llvm.hexagon.A2.vcmpbeq
+ hexagon_A2_vcmpbgtu, // llvm.hexagon.A2.vcmpbgtu
+ hexagon_A2_vcmpheq, // llvm.hexagon.A2.vcmpheq
+ hexagon_A2_vcmphgt, // llvm.hexagon.A2.vcmphgt
+ hexagon_A2_vcmphgtu, // llvm.hexagon.A2.vcmphgtu
+ hexagon_A2_vcmpweq, // llvm.hexagon.A2.vcmpweq
+ hexagon_A2_vcmpwgt, // llvm.hexagon.A2.vcmpwgt
+ hexagon_A2_vcmpwgtu, // llvm.hexagon.A2.vcmpwgtu
+ hexagon_A2_vconj, // llvm.hexagon.A2.vconj
+ hexagon_A2_vmaxb, // llvm.hexagon.A2.vmaxb
+ hexagon_A2_vmaxh, // llvm.hexagon.A2.vmaxh
+ hexagon_A2_vmaxub, // llvm.hexagon.A2.vmaxub
+ hexagon_A2_vmaxuh, // llvm.hexagon.A2.vmaxuh
+ hexagon_A2_vmaxuw, // llvm.hexagon.A2.vmaxuw
+ hexagon_A2_vmaxw, // llvm.hexagon.A2.vmaxw
+ hexagon_A2_vminb, // llvm.hexagon.A2.vminb
+ hexagon_A2_vminh, // llvm.hexagon.A2.vminh
+ hexagon_A2_vminub, // llvm.hexagon.A2.vminub
+ hexagon_A2_vminuh, // llvm.hexagon.A2.vminuh
+ hexagon_A2_vminuw, // llvm.hexagon.A2.vminuw
+ hexagon_A2_vminw, // llvm.hexagon.A2.vminw
+ hexagon_A2_vnavgh, // llvm.hexagon.A2.vnavgh
+ hexagon_A2_vnavghcr, // llvm.hexagon.A2.vnavghcr
+ hexagon_A2_vnavghr, // llvm.hexagon.A2.vnavghr
+ hexagon_A2_vnavgw, // llvm.hexagon.A2.vnavgw
+ hexagon_A2_vnavgwcr, // llvm.hexagon.A2.vnavgwcr
+ hexagon_A2_vnavgwr, // llvm.hexagon.A2.vnavgwr
+ hexagon_A2_vraddub, // llvm.hexagon.A2.vraddub
+ hexagon_A2_vraddub_acc, // llvm.hexagon.A2.vraddub.acc
+ hexagon_A2_vrsadub, // llvm.hexagon.A2.vrsadub
+ hexagon_A2_vrsadub_acc, // llvm.hexagon.A2.vrsadub.acc
+ hexagon_A2_vsubb_map, // llvm.hexagon.A2.vsubb.map
+ hexagon_A2_vsubh, // llvm.hexagon.A2.vsubh
+ hexagon_A2_vsubhs, // llvm.hexagon.A2.vsubhs
+ hexagon_A2_vsubub, // llvm.hexagon.A2.vsubub
+ hexagon_A2_vsububs, // llvm.hexagon.A2.vsububs
+ hexagon_A2_vsubuhs, // llvm.hexagon.A2.vsubuhs
+ hexagon_A2_vsubw, // llvm.hexagon.A2.vsubw
+ hexagon_A2_vsubws, // llvm.hexagon.A2.vsubws
+ hexagon_A2_xor, // llvm.hexagon.A2.xor
+ hexagon_A2_xorp, // llvm.hexagon.A2.xorp
+ hexagon_A2_zxtb, // llvm.hexagon.A2.zxtb
+ hexagon_A2_zxth, // llvm.hexagon.A2.zxth
+ hexagon_A4_andn, // llvm.hexagon.A4.andn
+ hexagon_A4_andnp, // llvm.hexagon.A4.andnp
+ hexagon_A4_bitsplit, // llvm.hexagon.A4.bitsplit
+ hexagon_A4_bitspliti, // llvm.hexagon.A4.bitspliti
+ hexagon_A4_boundscheck, // llvm.hexagon.A4.boundscheck
+ hexagon_A4_cmpbeq, // llvm.hexagon.A4.cmpbeq
+ hexagon_A4_cmpbeqi, // llvm.hexagon.A4.cmpbeqi
+ hexagon_A4_cmpbgt, // llvm.hexagon.A4.cmpbgt
+ hexagon_A4_cmpbgti, // llvm.hexagon.A4.cmpbgti
+ hexagon_A4_cmpbgtu, // llvm.hexagon.A4.cmpbgtu
+ hexagon_A4_cmpbgtui, // llvm.hexagon.A4.cmpbgtui
+ hexagon_A4_cmpheq, // llvm.hexagon.A4.cmpheq
+ hexagon_A4_cmpheqi, // llvm.hexagon.A4.cmpheqi
+ hexagon_A4_cmphgt, // llvm.hexagon.A4.cmphgt
+ hexagon_A4_cmphgti, // llvm.hexagon.A4.cmphgti
+ hexagon_A4_cmphgtu, // llvm.hexagon.A4.cmphgtu
+ hexagon_A4_cmphgtui, // llvm.hexagon.A4.cmphgtui
+ hexagon_A4_combineir, // llvm.hexagon.A4.combineir
+ hexagon_A4_combineri, // llvm.hexagon.A4.combineri
+ hexagon_A4_cround_ri, // llvm.hexagon.A4.cround.ri
+ hexagon_A4_cround_rr, // llvm.hexagon.A4.cround.rr
+ hexagon_A4_modwrapu, // llvm.hexagon.A4.modwrapu
+ hexagon_A4_orn, // llvm.hexagon.A4.orn
+ hexagon_A4_ornp, // llvm.hexagon.A4.ornp
+ hexagon_A4_rcmpeq, // llvm.hexagon.A4.rcmpeq
+ hexagon_A4_rcmpeqi, // llvm.hexagon.A4.rcmpeqi
+ hexagon_A4_rcmpneq, // llvm.hexagon.A4.rcmpneq
+ hexagon_A4_rcmpneqi, // llvm.hexagon.A4.rcmpneqi
+ hexagon_A4_round_ri, // llvm.hexagon.A4.round.ri
+ hexagon_A4_round_ri_sat, // llvm.hexagon.A4.round.ri.sat
+ hexagon_A4_round_rr, // llvm.hexagon.A4.round.rr
+ hexagon_A4_round_rr_sat, // llvm.hexagon.A4.round.rr.sat
+ hexagon_A4_tlbmatch, // llvm.hexagon.A4.tlbmatch
+ hexagon_A4_vcmpbeq_any, // llvm.hexagon.A4.vcmpbeq.any
+ hexagon_A4_vcmpbeqi, // llvm.hexagon.A4.vcmpbeqi
+ hexagon_A4_vcmpbgt, // llvm.hexagon.A4.vcmpbgt
+ hexagon_A4_vcmpbgti, // llvm.hexagon.A4.vcmpbgti
+ hexagon_A4_vcmpbgtui, // llvm.hexagon.A4.vcmpbgtui
+ hexagon_A4_vcmpheqi, // llvm.hexagon.A4.vcmpheqi
+ hexagon_A4_vcmphgti, // llvm.hexagon.A4.vcmphgti
+ hexagon_A4_vcmphgtui, // llvm.hexagon.A4.vcmphgtui
+ hexagon_A4_vcmpweqi, // llvm.hexagon.A4.vcmpweqi
+ hexagon_A4_vcmpwgti, // llvm.hexagon.A4.vcmpwgti
+ hexagon_A4_vcmpwgtui, // llvm.hexagon.A4.vcmpwgtui
+ hexagon_A4_vrmaxh, // llvm.hexagon.A4.vrmaxh
+ hexagon_A4_vrmaxuh, // llvm.hexagon.A4.vrmaxuh
+ hexagon_A4_vrmaxuw, // llvm.hexagon.A4.vrmaxuw
+ hexagon_A4_vrmaxw, // llvm.hexagon.A4.vrmaxw
+ hexagon_A4_vrminh, // llvm.hexagon.A4.vrminh
+ hexagon_A4_vrminuh, // llvm.hexagon.A4.vrminuh
+ hexagon_A4_vrminuw, // llvm.hexagon.A4.vrminuw
+ hexagon_A4_vrminw, // llvm.hexagon.A4.vrminw
+ hexagon_A5_vaddhubs, // llvm.hexagon.A5.vaddhubs
+ hexagon_C2_all8, // llvm.hexagon.C2.all8
+ hexagon_C2_and, // llvm.hexagon.C2.and
+ hexagon_C2_andn, // llvm.hexagon.C2.andn
+ hexagon_C2_any8, // llvm.hexagon.C2.any8
+ hexagon_C2_bitsclr, // llvm.hexagon.C2.bitsclr
+ hexagon_C2_bitsclri, // llvm.hexagon.C2.bitsclri
+ hexagon_C2_bitsset, // llvm.hexagon.C2.bitsset
+ hexagon_C2_cmpeq, // llvm.hexagon.C2.cmpeq
+ hexagon_C2_cmpeqi, // llvm.hexagon.C2.cmpeqi
+ hexagon_C2_cmpeqp, // llvm.hexagon.C2.cmpeqp
+ hexagon_C2_cmpgei, // llvm.hexagon.C2.cmpgei
+ hexagon_C2_cmpgeui, // llvm.hexagon.C2.cmpgeui
+ hexagon_C2_cmpgt, // llvm.hexagon.C2.cmpgt
+ hexagon_C2_cmpgti, // llvm.hexagon.C2.cmpgti
+ hexagon_C2_cmpgtp, // llvm.hexagon.C2.cmpgtp
+ hexagon_C2_cmpgtu, // llvm.hexagon.C2.cmpgtu
+ hexagon_C2_cmpgtui, // llvm.hexagon.C2.cmpgtui
+ hexagon_C2_cmpgtup, // llvm.hexagon.C2.cmpgtup
+ hexagon_C2_cmplt, // llvm.hexagon.C2.cmplt
+ hexagon_C2_cmpltu, // llvm.hexagon.C2.cmpltu
+ hexagon_C2_mask, // llvm.hexagon.C2.mask
+ hexagon_C2_mux, // llvm.hexagon.C2.mux
+ hexagon_C2_muxii, // llvm.hexagon.C2.muxii
+ hexagon_C2_muxir, // llvm.hexagon.C2.muxir
+ hexagon_C2_muxri, // llvm.hexagon.C2.muxri
+ hexagon_C2_not, // llvm.hexagon.C2.not
+ hexagon_C2_or, // llvm.hexagon.C2.or
+ hexagon_C2_orn, // llvm.hexagon.C2.orn
+ hexagon_C2_pxfer_map, // llvm.hexagon.C2.pxfer.map
+ hexagon_C2_tfrpr, // llvm.hexagon.C2.tfrpr
+ hexagon_C2_tfrrp, // llvm.hexagon.C2.tfrrp
+ hexagon_C2_vitpack, // llvm.hexagon.C2.vitpack
+ hexagon_C2_vmux, // llvm.hexagon.C2.vmux
+ hexagon_C2_xor, // llvm.hexagon.C2.xor
+ hexagon_C4_and_and, // llvm.hexagon.C4.and.and
+ hexagon_C4_and_andn, // llvm.hexagon.C4.and.andn
+ hexagon_C4_and_or, // llvm.hexagon.C4.and.or
+ hexagon_C4_and_orn, // llvm.hexagon.C4.and.orn
+ hexagon_C4_cmplte, // llvm.hexagon.C4.cmplte
+ hexagon_C4_cmpltei, // llvm.hexagon.C4.cmpltei
+ hexagon_C4_cmplteu, // llvm.hexagon.C4.cmplteu
+ hexagon_C4_cmplteui, // llvm.hexagon.C4.cmplteui
+ hexagon_C4_cmpneq, // llvm.hexagon.C4.cmpneq
+ hexagon_C4_cmpneqi, // llvm.hexagon.C4.cmpneqi
+ hexagon_C4_fastcorner9, // llvm.hexagon.C4.fastcorner9
+ hexagon_C4_fastcorner9_not, // llvm.hexagon.C4.fastcorner9.not
+ hexagon_C4_nbitsclr, // llvm.hexagon.C4.nbitsclr
+ hexagon_C4_nbitsclri, // llvm.hexagon.C4.nbitsclri
+ hexagon_C4_nbitsset, // llvm.hexagon.C4.nbitsset
+ hexagon_C4_or_and, // llvm.hexagon.C4.or.and
+ hexagon_C4_or_andn, // llvm.hexagon.C4.or.andn
+ hexagon_C4_or_or, // llvm.hexagon.C4.or.or
+ hexagon_C4_or_orn, // llvm.hexagon.C4.or.orn
+ hexagon_F2_conv_d2df, // llvm.hexagon.F2.conv.d2df
+ hexagon_F2_conv_d2sf, // llvm.hexagon.F2.conv.d2sf
+ hexagon_F2_conv_df2d, // llvm.hexagon.F2.conv.df2d
+ hexagon_F2_conv_df2d_chop, // llvm.hexagon.F2.conv.df2d.chop
+ hexagon_F2_conv_df2sf, // llvm.hexagon.F2.conv.df2sf
+ hexagon_F2_conv_df2ud, // llvm.hexagon.F2.conv.df2ud
+ hexagon_F2_conv_df2ud_chop, // llvm.hexagon.F2.conv.df2ud.chop
+ hexagon_F2_conv_df2uw, // llvm.hexagon.F2.conv.df2uw
+ hexagon_F2_conv_df2uw_chop, // llvm.hexagon.F2.conv.df2uw.chop
+ hexagon_F2_conv_df2w, // llvm.hexagon.F2.conv.df2w
+ hexagon_F2_conv_df2w_chop, // llvm.hexagon.F2.conv.df2w.chop
+ hexagon_F2_conv_sf2d, // llvm.hexagon.F2.conv.sf2d
+ hexagon_F2_conv_sf2d_chop, // llvm.hexagon.F2.conv.sf2d.chop
+ hexagon_F2_conv_sf2df, // llvm.hexagon.F2.conv.sf2df
+ hexagon_F2_conv_sf2ud, // llvm.hexagon.F2.conv.sf2ud
+ hexagon_F2_conv_sf2ud_chop, // llvm.hexagon.F2.conv.sf2ud.chop
+ hexagon_F2_conv_sf2uw, // llvm.hexagon.F2.conv.sf2uw
+ hexagon_F2_conv_sf2uw_chop, // llvm.hexagon.F2.conv.sf2uw.chop
+ hexagon_F2_conv_sf2w, // llvm.hexagon.F2.conv.sf2w
+ hexagon_F2_conv_sf2w_chop, // llvm.hexagon.F2.conv.sf2w.chop
+ hexagon_F2_conv_ud2df, // llvm.hexagon.F2.conv.ud2df
+ hexagon_F2_conv_ud2sf, // llvm.hexagon.F2.conv.ud2sf
+ hexagon_F2_conv_uw2df, // llvm.hexagon.F2.conv.uw2df
+ hexagon_F2_conv_uw2sf, // llvm.hexagon.F2.conv.uw2sf
+ hexagon_F2_conv_w2df, // llvm.hexagon.F2.conv.w2df
+ hexagon_F2_conv_w2sf, // llvm.hexagon.F2.conv.w2sf
+ hexagon_F2_dfadd, // llvm.hexagon.F2.dfadd
+ hexagon_F2_dfclass, // llvm.hexagon.F2.dfclass
+ hexagon_F2_dfcmpeq, // llvm.hexagon.F2.dfcmpeq
+ hexagon_F2_dfcmpge, // llvm.hexagon.F2.dfcmpge
+ hexagon_F2_dfcmpgt, // llvm.hexagon.F2.dfcmpgt
+ hexagon_F2_dfcmpuo, // llvm.hexagon.F2.dfcmpuo
+ hexagon_F2_dffixupd, // llvm.hexagon.F2.dffixupd
+ hexagon_F2_dffixupn, // llvm.hexagon.F2.dffixupn
+ hexagon_F2_dffixupr, // llvm.hexagon.F2.dffixupr
+ hexagon_F2_dffma, // llvm.hexagon.F2.dffma
+ hexagon_F2_dffma_lib, // llvm.hexagon.F2.dffma.lib
+ hexagon_F2_dffma_sc, // llvm.hexagon.F2.dffma.sc
+ hexagon_F2_dffms, // llvm.hexagon.F2.dffms
+ hexagon_F2_dffms_lib, // llvm.hexagon.F2.dffms.lib
+ hexagon_F2_dfimm_n, // llvm.hexagon.F2.dfimm.n
+ hexagon_F2_dfimm_p, // llvm.hexagon.F2.dfimm.p
+ hexagon_F2_dfmax, // llvm.hexagon.F2.dfmax
+ hexagon_F2_dfmin, // llvm.hexagon.F2.dfmin
+ hexagon_F2_dfmpy, // llvm.hexagon.F2.dfmpy
+ hexagon_F2_dfsub, // llvm.hexagon.F2.dfsub
+ hexagon_F2_sfadd, // llvm.hexagon.F2.sfadd
+ hexagon_F2_sfclass, // llvm.hexagon.F2.sfclass
+ hexagon_F2_sfcmpeq, // llvm.hexagon.F2.sfcmpeq
+ hexagon_F2_sfcmpge, // llvm.hexagon.F2.sfcmpge
+ hexagon_F2_sfcmpgt, // llvm.hexagon.F2.sfcmpgt
+ hexagon_F2_sfcmpuo, // llvm.hexagon.F2.sfcmpuo
+ hexagon_F2_sffixupd, // llvm.hexagon.F2.sffixupd
+ hexagon_F2_sffixupn, // llvm.hexagon.F2.sffixupn
+ hexagon_F2_sffixupr, // llvm.hexagon.F2.sffixupr
+ hexagon_F2_sffma, // llvm.hexagon.F2.sffma
+ hexagon_F2_sffma_lib, // llvm.hexagon.F2.sffma.lib
+ hexagon_F2_sffma_sc, // llvm.hexagon.F2.sffma.sc
+ hexagon_F2_sffms, // llvm.hexagon.F2.sffms
+ hexagon_F2_sffms_lib, // llvm.hexagon.F2.sffms.lib
+ hexagon_F2_sfimm_n, // llvm.hexagon.F2.sfimm.n
+ hexagon_F2_sfimm_p, // llvm.hexagon.F2.sfimm.p
+ hexagon_F2_sfmax, // llvm.hexagon.F2.sfmax
+ hexagon_F2_sfmin, // llvm.hexagon.F2.sfmin
+ hexagon_F2_sfmpy, // llvm.hexagon.F2.sfmpy
+ hexagon_F2_sfsub, // llvm.hexagon.F2.sfsub
+ hexagon_M2_acci, // llvm.hexagon.M2.acci
+ hexagon_M2_accii, // llvm.hexagon.M2.accii
+ hexagon_M2_cmaci_s0, // llvm.hexagon.M2.cmaci.s0
+ hexagon_M2_cmacr_s0, // llvm.hexagon.M2.cmacr.s0
+ hexagon_M2_cmacs_s0, // llvm.hexagon.M2.cmacs.s0
+ hexagon_M2_cmacs_s1, // llvm.hexagon.M2.cmacs.s1
+ hexagon_M2_cmacsc_s0, // llvm.hexagon.M2.cmacsc.s0
+ hexagon_M2_cmacsc_s1, // llvm.hexagon.M2.cmacsc.s1
+ hexagon_M2_cmpyi_s0, // llvm.hexagon.M2.cmpyi.s0
+ hexagon_M2_cmpyr_s0, // llvm.hexagon.M2.cmpyr.s0
+ hexagon_M2_cmpyrs_s0, // llvm.hexagon.M2.cmpyrs.s0
+ hexagon_M2_cmpyrs_s1, // llvm.hexagon.M2.cmpyrs.s1
+ hexagon_M2_cmpyrsc_s0, // llvm.hexagon.M2.cmpyrsc.s0
+ hexagon_M2_cmpyrsc_s1, // llvm.hexagon.M2.cmpyrsc.s1
+ hexagon_M2_cmpys_s0, // llvm.hexagon.M2.cmpys.s0
+ hexagon_M2_cmpys_s1, // llvm.hexagon.M2.cmpys.s1
+ hexagon_M2_cmpysc_s0, // llvm.hexagon.M2.cmpysc.s0
+ hexagon_M2_cmpysc_s1, // llvm.hexagon.M2.cmpysc.s1
+ hexagon_M2_cnacs_s0, // llvm.hexagon.M2.cnacs.s0
+ hexagon_M2_cnacs_s1, // llvm.hexagon.M2.cnacs.s1
+ hexagon_M2_cnacsc_s0, // llvm.hexagon.M2.cnacsc.s0
+ hexagon_M2_cnacsc_s1, // llvm.hexagon.M2.cnacsc.s1
+ hexagon_M2_dpmpyss_acc_s0, // llvm.hexagon.M2.dpmpyss.acc.s0
+ hexagon_M2_dpmpyss_nac_s0, // llvm.hexagon.M2.dpmpyss.nac.s0
+ hexagon_M2_dpmpyss_rnd_s0, // llvm.hexagon.M2.dpmpyss.rnd.s0
+ hexagon_M2_dpmpyss_s0, // llvm.hexagon.M2.dpmpyss.s0
+ hexagon_M2_dpmpyuu_acc_s0, // llvm.hexagon.M2.dpmpyuu.acc.s0
+ hexagon_M2_dpmpyuu_nac_s0, // llvm.hexagon.M2.dpmpyuu.nac.s0
+ hexagon_M2_dpmpyuu_s0, // llvm.hexagon.M2.dpmpyuu.s0
+ hexagon_M2_hmmpyh_rs1, // llvm.hexagon.M2.hmmpyh.rs1
+ hexagon_M2_hmmpyh_s1, // llvm.hexagon.M2.hmmpyh.s1
+ hexagon_M2_hmmpyl_rs1, // llvm.hexagon.M2.hmmpyl.rs1
+ hexagon_M2_hmmpyl_s1, // llvm.hexagon.M2.hmmpyl.s1
+ hexagon_M2_maci, // llvm.hexagon.M2.maci
+ hexagon_M2_macsin, // llvm.hexagon.M2.macsin
+ hexagon_M2_macsip, // llvm.hexagon.M2.macsip
+ hexagon_M2_mmachs_rs0, // llvm.hexagon.M2.mmachs.rs0
+ hexagon_M2_mmachs_rs1, // llvm.hexagon.M2.mmachs.rs1
+ hexagon_M2_mmachs_s0, // llvm.hexagon.M2.mmachs.s0
+ hexagon_M2_mmachs_s1, // llvm.hexagon.M2.mmachs.s1
+ hexagon_M2_mmacls_rs0, // llvm.hexagon.M2.mmacls.rs0
+ hexagon_M2_mmacls_rs1, // llvm.hexagon.M2.mmacls.rs1
+ hexagon_M2_mmacls_s0, // llvm.hexagon.M2.mmacls.s0
+ hexagon_M2_mmacls_s1, // llvm.hexagon.M2.mmacls.s1
+ hexagon_M2_mmacuhs_rs0, // llvm.hexagon.M2.mmacuhs.rs0
+ hexagon_M2_mmacuhs_rs1, // llvm.hexagon.M2.mmacuhs.rs1
+ hexagon_M2_mmacuhs_s0, // llvm.hexagon.M2.mmacuhs.s0
+ hexagon_M2_mmacuhs_s1, // llvm.hexagon.M2.mmacuhs.s1
+ hexagon_M2_mmaculs_rs0, // llvm.hexagon.M2.mmaculs.rs0
+ hexagon_M2_mmaculs_rs1, // llvm.hexagon.M2.mmaculs.rs1
+ hexagon_M2_mmaculs_s0, // llvm.hexagon.M2.mmaculs.s0
+ hexagon_M2_mmaculs_s1, // llvm.hexagon.M2.mmaculs.s1
+ hexagon_M2_mmpyh_rs0, // llvm.hexagon.M2.mmpyh.rs0
+ hexagon_M2_mmpyh_rs1, // llvm.hexagon.M2.mmpyh.rs1
+ hexagon_M2_mmpyh_s0, // llvm.hexagon.M2.mmpyh.s0
+ hexagon_M2_mmpyh_s1, // llvm.hexagon.M2.mmpyh.s1
+ hexagon_M2_mmpyl_rs0, // llvm.hexagon.M2.mmpyl.rs0
+ hexagon_M2_mmpyl_rs1, // llvm.hexagon.M2.mmpyl.rs1
+ hexagon_M2_mmpyl_s0, // llvm.hexagon.M2.mmpyl.s0
+ hexagon_M2_mmpyl_s1, // llvm.hexagon.M2.mmpyl.s1
+ hexagon_M2_mmpyuh_rs0, // llvm.hexagon.M2.mmpyuh.rs0
+ hexagon_M2_mmpyuh_rs1, // llvm.hexagon.M2.mmpyuh.rs1
+ hexagon_M2_mmpyuh_s0, // llvm.hexagon.M2.mmpyuh.s0
+ hexagon_M2_mmpyuh_s1, // llvm.hexagon.M2.mmpyuh.s1
+ hexagon_M2_mmpyul_rs0, // llvm.hexagon.M2.mmpyul.rs0
+ hexagon_M2_mmpyul_rs1, // llvm.hexagon.M2.mmpyul.rs1
+ hexagon_M2_mmpyul_s0, // llvm.hexagon.M2.mmpyul.s0
+ hexagon_M2_mmpyul_s1, // llvm.hexagon.M2.mmpyul.s1
+ hexagon_M2_mpy_acc_hh_s0, // llvm.hexagon.M2.mpy.acc.hh.s0
+ hexagon_M2_mpy_acc_hh_s1, // llvm.hexagon.M2.mpy.acc.hh.s1
+ hexagon_M2_mpy_acc_hl_s0, // llvm.hexagon.M2.mpy.acc.hl.s0
+ hexagon_M2_mpy_acc_hl_s1, // llvm.hexagon.M2.mpy.acc.hl.s1
+ hexagon_M2_mpy_acc_lh_s0, // llvm.hexagon.M2.mpy.acc.lh.s0
+ hexagon_M2_mpy_acc_lh_s1, // llvm.hexagon.M2.mpy.acc.lh.s1
+ hexagon_M2_mpy_acc_ll_s0, // llvm.hexagon.M2.mpy.acc.ll.s0
+ hexagon_M2_mpy_acc_ll_s1, // llvm.hexagon.M2.mpy.acc.ll.s1
+ hexagon_M2_mpy_acc_sat_hh_s0, // llvm.hexagon.M2.mpy.acc.sat.hh.s0
+ hexagon_M2_mpy_acc_sat_hh_s1, // llvm.hexagon.M2.mpy.acc.sat.hh.s1
+ hexagon_M2_mpy_acc_sat_hl_s0, // llvm.hexagon.M2.mpy.acc.sat.hl.s0
+ hexagon_M2_mpy_acc_sat_hl_s1, // llvm.hexagon.M2.mpy.acc.sat.hl.s1
+ hexagon_M2_mpy_acc_sat_lh_s0, // llvm.hexagon.M2.mpy.acc.sat.lh.s0
+ hexagon_M2_mpy_acc_sat_lh_s1, // llvm.hexagon.M2.mpy.acc.sat.lh.s1
+ hexagon_M2_mpy_acc_sat_ll_s0, // llvm.hexagon.M2.mpy.acc.sat.ll.s0
+ hexagon_M2_mpy_acc_sat_ll_s1, // llvm.hexagon.M2.mpy.acc.sat.ll.s1
+ hexagon_M2_mpy_hh_s0, // llvm.hexagon.M2.mpy.hh.s0
+ hexagon_M2_mpy_hh_s1, // llvm.hexagon.M2.mpy.hh.s1
+ hexagon_M2_mpy_hl_s0, // llvm.hexagon.M2.mpy.hl.s0
+ hexagon_M2_mpy_hl_s1, // llvm.hexagon.M2.mpy.hl.s1
+ hexagon_M2_mpy_lh_s0, // llvm.hexagon.M2.mpy.lh.s0
+ hexagon_M2_mpy_lh_s1, // llvm.hexagon.M2.mpy.lh.s1
+ hexagon_M2_mpy_ll_s0, // llvm.hexagon.M2.mpy.ll.s0
+ hexagon_M2_mpy_ll_s1, // llvm.hexagon.M2.mpy.ll.s1
+ hexagon_M2_mpy_nac_hh_s0, // llvm.hexagon.M2.mpy.nac.hh.s0
+ hexagon_M2_mpy_nac_hh_s1, // llvm.hexagon.M2.mpy.nac.hh.s1
+ hexagon_M2_mpy_nac_hl_s0, // llvm.hexagon.M2.mpy.nac.hl.s0
+ hexagon_M2_mpy_nac_hl_s1, // llvm.hexagon.M2.mpy.nac.hl.s1
+ hexagon_M2_mpy_nac_lh_s0, // llvm.hexagon.M2.mpy.nac.lh.s0
+ hexagon_M2_mpy_nac_lh_s1, // llvm.hexagon.M2.mpy.nac.lh.s1
+ hexagon_M2_mpy_nac_ll_s0, // llvm.hexagon.M2.mpy.nac.ll.s0
+ hexagon_M2_mpy_nac_ll_s1, // llvm.hexagon.M2.mpy.nac.ll.s1
+ hexagon_M2_mpy_nac_sat_hh_s0, // llvm.hexagon.M2.mpy.nac.sat.hh.s0
+ hexagon_M2_mpy_nac_sat_hh_s1, // llvm.hexagon.M2.mpy.nac.sat.hh.s1
+ hexagon_M2_mpy_nac_sat_hl_s0, // llvm.hexagon.M2.mpy.nac.sat.hl.s0
+ hexagon_M2_mpy_nac_sat_hl_s1, // llvm.hexagon.M2.mpy.nac.sat.hl.s1
+ hexagon_M2_mpy_nac_sat_lh_s0, // llvm.hexagon.M2.mpy.nac.sat.lh.s0
+ hexagon_M2_mpy_nac_sat_lh_s1, // llvm.hexagon.M2.mpy.nac.sat.lh.s1
+ hexagon_M2_mpy_nac_sat_ll_s0, // llvm.hexagon.M2.mpy.nac.sat.ll.s0
+ hexagon_M2_mpy_nac_sat_ll_s1, // llvm.hexagon.M2.mpy.nac.sat.ll.s1
+ hexagon_M2_mpy_rnd_hh_s0, // llvm.hexagon.M2.mpy.rnd.hh.s0
+ hexagon_M2_mpy_rnd_hh_s1, // llvm.hexagon.M2.mpy.rnd.hh.s1
+ hexagon_M2_mpy_rnd_hl_s0, // llvm.hexagon.M2.mpy.rnd.hl.s0
+ hexagon_M2_mpy_rnd_hl_s1, // llvm.hexagon.M2.mpy.rnd.hl.s1
+ hexagon_M2_mpy_rnd_lh_s0, // llvm.hexagon.M2.mpy.rnd.lh.s0
+ hexagon_M2_mpy_rnd_lh_s1, // llvm.hexagon.M2.mpy.rnd.lh.s1
+ hexagon_M2_mpy_rnd_ll_s0, // llvm.hexagon.M2.mpy.rnd.ll.s0
+ hexagon_M2_mpy_rnd_ll_s1, // llvm.hexagon.M2.mpy.rnd.ll.s1
+ hexagon_M2_mpy_sat_hh_s0, // llvm.hexagon.M2.mpy.sat.hh.s0
+ hexagon_M2_mpy_sat_hh_s1, // llvm.hexagon.M2.mpy.sat.hh.s1
+ hexagon_M2_mpy_sat_hl_s0, // llvm.hexagon.M2.mpy.sat.hl.s0
+ hexagon_M2_mpy_sat_hl_s1, // llvm.hexagon.M2.mpy.sat.hl.s1
+ hexagon_M2_mpy_sat_lh_s0, // llvm.hexagon.M2.mpy.sat.lh.s0
+ hexagon_M2_mpy_sat_lh_s1, // llvm.hexagon.M2.mpy.sat.lh.s1
+ hexagon_M2_mpy_sat_ll_s0, // llvm.hexagon.M2.mpy.sat.ll.s0
+ hexagon_M2_mpy_sat_ll_s1, // llvm.hexagon.M2.mpy.sat.ll.s1
+ hexagon_M2_mpy_sat_rnd_hh_s0, // llvm.hexagon.M2.mpy.sat.rnd.hh.s0
+ hexagon_M2_mpy_sat_rnd_hh_s1, // llvm.hexagon.M2.mpy.sat.rnd.hh.s1
+ hexagon_M2_mpy_sat_rnd_hl_s0, // llvm.hexagon.M2.mpy.sat.rnd.hl.s0
+ hexagon_M2_mpy_sat_rnd_hl_s1, // llvm.hexagon.M2.mpy.sat.rnd.hl.s1
+ hexagon_M2_mpy_sat_rnd_lh_s0, // llvm.hexagon.M2.mpy.sat.rnd.lh.s0
+ hexagon_M2_mpy_sat_rnd_lh_s1, // llvm.hexagon.M2.mpy.sat.rnd.lh.s1
+ hexagon_M2_mpy_sat_rnd_ll_s0, // llvm.hexagon.M2.mpy.sat.rnd.ll.s0
+ hexagon_M2_mpy_sat_rnd_ll_s1, // llvm.hexagon.M2.mpy.sat.rnd.ll.s1
+ hexagon_M2_mpy_up, // llvm.hexagon.M2.mpy.up
+ hexagon_M2_mpy_up_s1, // llvm.hexagon.M2.mpy.up.s1
+ hexagon_M2_mpy_up_s1_sat, // llvm.hexagon.M2.mpy.up.s1.sat
+ hexagon_M2_mpyd_acc_hh_s0, // llvm.hexagon.M2.mpyd.acc.hh.s0
+ hexagon_M2_mpyd_acc_hh_s1, // llvm.hexagon.M2.mpyd.acc.hh.s1
+ hexagon_M2_mpyd_acc_hl_s0, // llvm.hexagon.M2.mpyd.acc.hl.s0
+ hexagon_M2_mpyd_acc_hl_s1, // llvm.hexagon.M2.mpyd.acc.hl.s1
+ hexagon_M2_mpyd_acc_lh_s0, // llvm.hexagon.M2.mpyd.acc.lh.s0
+ hexagon_M2_mpyd_acc_lh_s1, // llvm.hexagon.M2.mpyd.acc.lh.s1
+ hexagon_M2_mpyd_acc_ll_s0, // llvm.hexagon.M2.mpyd.acc.ll.s0
+ hexagon_M2_mpyd_acc_ll_s1, // llvm.hexagon.M2.mpyd.acc.ll.s1
+ hexagon_M2_mpyd_hh_s0, // llvm.hexagon.M2.mpyd.hh.s0
+ hexagon_M2_mpyd_hh_s1, // llvm.hexagon.M2.mpyd.hh.s1
+ hexagon_M2_mpyd_hl_s0, // llvm.hexagon.M2.mpyd.hl.s0
+ hexagon_M2_mpyd_hl_s1, // llvm.hexagon.M2.mpyd.hl.s1
+ hexagon_M2_mpyd_lh_s0, // llvm.hexagon.M2.mpyd.lh.s0
+ hexagon_M2_mpyd_lh_s1, // llvm.hexagon.M2.mpyd.lh.s1
+ hexagon_M2_mpyd_ll_s0, // llvm.hexagon.M2.mpyd.ll.s0
+ hexagon_M2_mpyd_ll_s1, // llvm.hexagon.M2.mpyd.ll.s1
+ hexagon_M2_mpyd_nac_hh_s0, // llvm.hexagon.M2.mpyd.nac.hh.s0
+ hexagon_M2_mpyd_nac_hh_s1, // llvm.hexagon.M2.mpyd.nac.hh.s1
+ hexagon_M2_mpyd_nac_hl_s0, // llvm.hexagon.M2.mpyd.nac.hl.s0
+ hexagon_M2_mpyd_nac_hl_s1, // llvm.hexagon.M2.mpyd.nac.hl.s1
+ hexagon_M2_mpyd_nac_lh_s0, // llvm.hexagon.M2.mpyd.nac.lh.s0
+ hexagon_M2_mpyd_nac_lh_s1, // llvm.hexagon.M2.mpyd.nac.lh.s1
+ hexagon_M2_mpyd_nac_ll_s0, // llvm.hexagon.M2.mpyd.nac.ll.s0
+ hexagon_M2_mpyd_nac_ll_s1, // llvm.hexagon.M2.mpyd.nac.ll.s1
+ hexagon_M2_mpyd_rnd_hh_s0, // llvm.hexagon.M2.mpyd.rnd.hh.s0
+ hexagon_M2_mpyd_rnd_hh_s1, // llvm.hexagon.M2.mpyd.rnd.hh.s1
+ hexagon_M2_mpyd_rnd_hl_s0, // llvm.hexagon.M2.mpyd.rnd.hl.s0
+ hexagon_M2_mpyd_rnd_hl_s1, // llvm.hexagon.M2.mpyd.rnd.hl.s1
+ hexagon_M2_mpyd_rnd_lh_s0, // llvm.hexagon.M2.mpyd.rnd.lh.s0
+ hexagon_M2_mpyd_rnd_lh_s1, // llvm.hexagon.M2.mpyd.rnd.lh.s1
+ hexagon_M2_mpyd_rnd_ll_s0, // llvm.hexagon.M2.mpyd.rnd.ll.s0
+ hexagon_M2_mpyd_rnd_ll_s1, // llvm.hexagon.M2.mpyd.rnd.ll.s1
+ hexagon_M2_mpyi, // llvm.hexagon.M2.mpyi
+ hexagon_M2_mpysmi, // llvm.hexagon.M2.mpysmi
+ hexagon_M2_mpysu_up, // llvm.hexagon.M2.mpysu.up
+ hexagon_M2_mpyu_acc_hh_s0, // llvm.hexagon.M2.mpyu.acc.hh.s0
+ hexagon_M2_mpyu_acc_hh_s1, // llvm.hexagon.M2.mpyu.acc.hh.s1
+ hexagon_M2_mpyu_acc_hl_s0, // llvm.hexagon.M2.mpyu.acc.hl.s0
+ hexagon_M2_mpyu_acc_hl_s1, // llvm.hexagon.M2.mpyu.acc.hl.s1
+ hexagon_M2_mpyu_acc_lh_s0, // llvm.hexagon.M2.mpyu.acc.lh.s0
+ hexagon_M2_mpyu_acc_lh_s1, // llvm.hexagon.M2.mpyu.acc.lh.s1
+ hexagon_M2_mpyu_acc_ll_s0, // llvm.hexagon.M2.mpyu.acc.ll.s0
+ hexagon_M2_mpyu_acc_ll_s1, // llvm.hexagon.M2.mpyu.acc.ll.s1
+ hexagon_M2_mpyu_hh_s0, // llvm.hexagon.M2.mpyu.hh.s0
+ hexagon_M2_mpyu_hh_s1, // llvm.hexagon.M2.mpyu.hh.s1
+ hexagon_M2_mpyu_hl_s0, // llvm.hexagon.M2.mpyu.hl.s0
+ hexagon_M2_mpyu_hl_s1, // llvm.hexagon.M2.mpyu.hl.s1
+ hexagon_M2_mpyu_lh_s0, // llvm.hexagon.M2.mpyu.lh.s0
+ hexagon_M2_mpyu_lh_s1, // llvm.hexagon.M2.mpyu.lh.s1
+ hexagon_M2_mpyu_ll_s0, // llvm.hexagon.M2.mpyu.ll.s0
+ hexagon_M2_mpyu_ll_s1, // llvm.hexagon.M2.mpyu.ll.s1
+ hexagon_M2_mpyu_nac_hh_s0, // llvm.hexagon.M2.mpyu.nac.hh.s0
+ hexagon_M2_mpyu_nac_hh_s1, // llvm.hexagon.M2.mpyu.nac.hh.s1
+ hexagon_M2_mpyu_nac_hl_s0, // llvm.hexagon.M2.mpyu.nac.hl.s0
+ hexagon_M2_mpyu_nac_hl_s1, // llvm.hexagon.M2.mpyu.nac.hl.s1
+ hexagon_M2_mpyu_nac_lh_s0, // llvm.hexagon.M2.mpyu.nac.lh.s0
+ hexagon_M2_mpyu_nac_lh_s1, // llvm.hexagon.M2.mpyu.nac.lh.s1
+ hexagon_M2_mpyu_nac_ll_s0, // llvm.hexagon.M2.mpyu.nac.ll.s0
+ hexagon_M2_mpyu_nac_ll_s1, // llvm.hexagon.M2.mpyu.nac.ll.s1
+ hexagon_M2_mpyu_up, // llvm.hexagon.M2.mpyu.up
+ hexagon_M2_mpyud_acc_hh_s0, // llvm.hexagon.M2.mpyud.acc.hh.s0
+ hexagon_M2_mpyud_acc_hh_s1, // llvm.hexagon.M2.mpyud.acc.hh.s1
+ hexagon_M2_mpyud_acc_hl_s0, // llvm.hexagon.M2.mpyud.acc.hl.s0
+ hexagon_M2_mpyud_acc_hl_s1, // llvm.hexagon.M2.mpyud.acc.hl.s1
+ hexagon_M2_mpyud_acc_lh_s0, // llvm.hexagon.M2.mpyud.acc.lh.s0
+ hexagon_M2_mpyud_acc_lh_s1, // llvm.hexagon.M2.mpyud.acc.lh.s1
+ hexagon_M2_mpyud_acc_ll_s0, // llvm.hexagon.M2.mpyud.acc.ll.s0
+ hexagon_M2_mpyud_acc_ll_s1, // llvm.hexagon.M2.mpyud.acc.ll.s1
+ hexagon_M2_mpyud_hh_s0, // llvm.hexagon.M2.mpyud.hh.s0
+ hexagon_M2_mpyud_hh_s1, // llvm.hexagon.M2.mpyud.hh.s1
+ hexagon_M2_mpyud_hl_s0, // llvm.hexagon.M2.mpyud.hl.s0
+ hexagon_M2_mpyud_hl_s1, // llvm.hexagon.M2.mpyud.hl.s1
+ hexagon_M2_mpyud_lh_s0, // llvm.hexagon.M2.mpyud.lh.s0
+ hexagon_M2_mpyud_lh_s1, // llvm.hexagon.M2.mpyud.lh.s1
+ hexagon_M2_mpyud_ll_s0, // llvm.hexagon.M2.mpyud.ll.s0
+ hexagon_M2_mpyud_ll_s1, // llvm.hexagon.M2.mpyud.ll.s1
+ hexagon_M2_mpyud_nac_hh_s0, // llvm.hexagon.M2.mpyud.nac.hh.s0
+ hexagon_M2_mpyud_nac_hh_s1, // llvm.hexagon.M2.mpyud.nac.hh.s1
+ hexagon_M2_mpyud_nac_hl_s0, // llvm.hexagon.M2.mpyud.nac.hl.s0
+ hexagon_M2_mpyud_nac_hl_s1, // llvm.hexagon.M2.mpyud.nac.hl.s1
+ hexagon_M2_mpyud_nac_lh_s0, // llvm.hexagon.M2.mpyud.nac.lh.s0
+ hexagon_M2_mpyud_nac_lh_s1, // llvm.hexagon.M2.mpyud.nac.lh.s1
+ hexagon_M2_mpyud_nac_ll_s0, // llvm.hexagon.M2.mpyud.nac.ll.s0
+ hexagon_M2_mpyud_nac_ll_s1, // llvm.hexagon.M2.mpyud.nac.ll.s1
+ hexagon_M2_mpyui, // llvm.hexagon.M2.mpyui
+ hexagon_M2_nacci, // llvm.hexagon.M2.nacci
+ hexagon_M2_naccii, // llvm.hexagon.M2.naccii
+ hexagon_M2_subacc, // llvm.hexagon.M2.subacc
+ hexagon_M2_vabsdiffh, // llvm.hexagon.M2.vabsdiffh
+ hexagon_M2_vabsdiffw, // llvm.hexagon.M2.vabsdiffw
+ hexagon_M2_vcmac_s0_sat_i, // llvm.hexagon.M2.vcmac.s0.sat.i
+ hexagon_M2_vcmac_s0_sat_r, // llvm.hexagon.M2.vcmac.s0.sat.r
+ hexagon_M2_vcmpy_s0_sat_i, // llvm.hexagon.M2.vcmpy.s0.sat.i
+ hexagon_M2_vcmpy_s0_sat_r, // llvm.hexagon.M2.vcmpy.s0.sat.r
+ hexagon_M2_vcmpy_s1_sat_i, // llvm.hexagon.M2.vcmpy.s1.sat.i
+ hexagon_M2_vcmpy_s1_sat_r, // llvm.hexagon.M2.vcmpy.s1.sat.r
+ hexagon_M2_vdmacs_s0, // llvm.hexagon.M2.vdmacs.s0
+ hexagon_M2_vdmacs_s1, // llvm.hexagon.M2.vdmacs.s1
+ hexagon_M2_vdmpyrs_s0, // llvm.hexagon.M2.vdmpyrs.s0
+ hexagon_M2_vdmpyrs_s1, // llvm.hexagon.M2.vdmpyrs.s1
+ hexagon_M2_vdmpys_s0, // llvm.hexagon.M2.vdmpys.s0
+ hexagon_M2_vdmpys_s1, // llvm.hexagon.M2.vdmpys.s1
+ hexagon_M2_vmac2, // llvm.hexagon.M2.vmac2
+ hexagon_M2_vmac2es, // llvm.hexagon.M2.vmac2es
+ hexagon_M2_vmac2es_s0, // llvm.hexagon.M2.vmac2es.s0
+ hexagon_M2_vmac2es_s1, // llvm.hexagon.M2.vmac2es.s1
+ hexagon_M2_vmac2s_s0, // llvm.hexagon.M2.vmac2s.s0
+ hexagon_M2_vmac2s_s1, // llvm.hexagon.M2.vmac2s.s1
+ hexagon_M2_vmac2su_s0, // llvm.hexagon.M2.vmac2su.s0
+ hexagon_M2_vmac2su_s1, // llvm.hexagon.M2.vmac2su.s1
+ hexagon_M2_vmpy2es_s0, // llvm.hexagon.M2.vmpy2es.s0
+ hexagon_M2_vmpy2es_s1, // llvm.hexagon.M2.vmpy2es.s1
+ hexagon_M2_vmpy2s_s0, // llvm.hexagon.M2.vmpy2s.s0
+ hexagon_M2_vmpy2s_s0pack, // llvm.hexagon.M2.vmpy2s.s0pack
+ hexagon_M2_vmpy2s_s1, // llvm.hexagon.M2.vmpy2s.s1
+ hexagon_M2_vmpy2s_s1pack, // llvm.hexagon.M2.vmpy2s.s1pack
+ hexagon_M2_vmpy2su_s0, // llvm.hexagon.M2.vmpy2su.s0
+ hexagon_M2_vmpy2su_s1, // llvm.hexagon.M2.vmpy2su.s1
+ hexagon_M2_vraddh, // llvm.hexagon.M2.vraddh
+ hexagon_M2_vradduh, // llvm.hexagon.M2.vradduh
+ hexagon_M2_vrcmaci_s0, // llvm.hexagon.M2.vrcmaci.s0
+ hexagon_M2_vrcmaci_s0c, // llvm.hexagon.M2.vrcmaci.s0c
+ hexagon_M2_vrcmacr_s0, // llvm.hexagon.M2.vrcmacr.s0
+ hexagon_M2_vrcmacr_s0c, // llvm.hexagon.M2.vrcmacr.s0c
+ hexagon_M2_vrcmpyi_s0, // llvm.hexagon.M2.vrcmpyi.s0
+ hexagon_M2_vrcmpyi_s0c, // llvm.hexagon.M2.vrcmpyi.s0c
+ hexagon_M2_vrcmpyr_s0, // llvm.hexagon.M2.vrcmpyr.s0
+ hexagon_M2_vrcmpyr_s0c, // llvm.hexagon.M2.vrcmpyr.s0c
+ hexagon_M2_vrcmpys_acc_s1, // llvm.hexagon.M2.vrcmpys.acc.s1
+ hexagon_M2_vrcmpys_s1, // llvm.hexagon.M2.vrcmpys.s1
+ hexagon_M2_vrcmpys_s1rp, // llvm.hexagon.M2.vrcmpys.s1rp
+ hexagon_M2_vrmac_s0, // llvm.hexagon.M2.vrmac.s0
+ hexagon_M2_vrmpy_s0, // llvm.hexagon.M2.vrmpy.s0
+ hexagon_M2_xor_xacc, // llvm.hexagon.M2.xor.xacc
+ hexagon_M4_and_and, // llvm.hexagon.M4.and.and
+ hexagon_M4_and_andn, // llvm.hexagon.M4.and.andn
+ hexagon_M4_and_or, // llvm.hexagon.M4.and.or
+ hexagon_M4_and_xor, // llvm.hexagon.M4.and.xor
+ hexagon_M4_cmpyi_wh, // llvm.hexagon.M4.cmpyi.wh
+ hexagon_M4_cmpyi_whc, // llvm.hexagon.M4.cmpyi.whc
+ hexagon_M4_cmpyr_wh, // llvm.hexagon.M4.cmpyr.wh
+ hexagon_M4_cmpyr_whc, // llvm.hexagon.M4.cmpyr.whc
+ hexagon_M4_mac_up_s1_sat, // llvm.hexagon.M4.mac.up.s1.sat
+ hexagon_M4_mpyri_addi, // llvm.hexagon.M4.mpyri.addi
+ hexagon_M4_mpyri_addr, // llvm.hexagon.M4.mpyri.addr
+ hexagon_M4_mpyri_addr_u2, // llvm.hexagon.M4.mpyri.addr.u2
+ hexagon_M4_mpyrr_addi, // llvm.hexagon.M4.mpyrr.addi
+ hexagon_M4_mpyrr_addr, // llvm.hexagon.M4.mpyrr.addr
+ hexagon_M4_nac_up_s1_sat, // llvm.hexagon.M4.nac.up.s1.sat
+ hexagon_M4_or_and, // llvm.hexagon.M4.or.and
+ hexagon_M4_or_andn, // llvm.hexagon.M4.or.andn
+ hexagon_M4_or_or, // llvm.hexagon.M4.or.or
+ hexagon_M4_or_xor, // llvm.hexagon.M4.or.xor
+ hexagon_M4_pmpyw, // llvm.hexagon.M4.pmpyw
+ hexagon_M4_pmpyw_acc, // llvm.hexagon.M4.pmpyw.acc
+ hexagon_M4_vpmpyh, // llvm.hexagon.M4.vpmpyh
+ hexagon_M4_vpmpyh_acc, // llvm.hexagon.M4.vpmpyh.acc
+ hexagon_M4_vrmpyeh_acc_s0, // llvm.hexagon.M4.vrmpyeh.acc.s0
+ hexagon_M4_vrmpyeh_acc_s1, // llvm.hexagon.M4.vrmpyeh.acc.s1
+ hexagon_M4_vrmpyeh_s0, // llvm.hexagon.M4.vrmpyeh.s0
+ hexagon_M4_vrmpyeh_s1, // llvm.hexagon.M4.vrmpyeh.s1
+ hexagon_M4_vrmpyoh_acc_s0, // llvm.hexagon.M4.vrmpyoh.acc.s0
+ hexagon_M4_vrmpyoh_acc_s1, // llvm.hexagon.M4.vrmpyoh.acc.s1
+ hexagon_M4_vrmpyoh_s0, // llvm.hexagon.M4.vrmpyoh.s0
+ hexagon_M4_vrmpyoh_s1, // llvm.hexagon.M4.vrmpyoh.s1
+ hexagon_M4_xor_and, // llvm.hexagon.M4.xor.and
+ hexagon_M4_xor_andn, // llvm.hexagon.M4.xor.andn
+ hexagon_M4_xor_or, // llvm.hexagon.M4.xor.or
+ hexagon_M4_xor_xacc, // llvm.hexagon.M4.xor.xacc
+ hexagon_M5_vdmacbsu, // llvm.hexagon.M5.vdmacbsu
+ hexagon_M5_vdmpybsu, // llvm.hexagon.M5.vdmpybsu
+ hexagon_M5_vmacbsu, // llvm.hexagon.M5.vmacbsu
+ hexagon_M5_vmacbuu, // llvm.hexagon.M5.vmacbuu
+ hexagon_M5_vmpybsu, // llvm.hexagon.M5.vmpybsu
+ hexagon_M5_vmpybuu, // llvm.hexagon.M5.vmpybuu
+ hexagon_M5_vrmacbsu, // llvm.hexagon.M5.vrmacbsu
+ hexagon_M5_vrmacbuu, // llvm.hexagon.M5.vrmacbuu
+ hexagon_M5_vrmpybsu, // llvm.hexagon.M5.vrmpybsu
+ hexagon_M5_vrmpybuu, // llvm.hexagon.M5.vrmpybuu
+ hexagon_S2_addasl_rrri, // llvm.hexagon.S2.addasl.rrri
+ hexagon_S2_asl_i_p, // llvm.hexagon.S2.asl.i.p
+ hexagon_S2_asl_i_p_acc, // llvm.hexagon.S2.asl.i.p.acc
+ hexagon_S2_asl_i_p_and, // llvm.hexagon.S2.asl.i.p.and
+ hexagon_S2_asl_i_p_nac, // llvm.hexagon.S2.asl.i.p.nac
+ hexagon_S2_asl_i_p_or, // llvm.hexagon.S2.asl.i.p.or
+ hexagon_S2_asl_i_p_xacc, // llvm.hexagon.S2.asl.i.p.xacc
+ hexagon_S2_asl_i_r, // llvm.hexagon.S2.asl.i.r
+ hexagon_S2_asl_i_r_acc, // llvm.hexagon.S2.asl.i.r.acc
+ hexagon_S2_asl_i_r_and, // llvm.hexagon.S2.asl.i.r.and
+ hexagon_S2_asl_i_r_nac, // llvm.hexagon.S2.asl.i.r.nac
+ hexagon_S2_asl_i_r_or, // llvm.hexagon.S2.asl.i.r.or
+ hexagon_S2_asl_i_r_sat, // llvm.hexagon.S2.asl.i.r.sat
+ hexagon_S2_asl_i_r_xacc, // llvm.hexagon.S2.asl.i.r.xacc
+ hexagon_S2_asl_i_vh, // llvm.hexagon.S2.asl.i.vh
+ hexagon_S2_asl_i_vw, // llvm.hexagon.S2.asl.i.vw
+ hexagon_S2_asl_r_p, // llvm.hexagon.S2.asl.r.p
+ hexagon_S2_asl_r_p_acc, // llvm.hexagon.S2.asl.r.p.acc
+ hexagon_S2_asl_r_p_and, // llvm.hexagon.S2.asl.r.p.and
+ hexagon_S2_asl_r_p_nac, // llvm.hexagon.S2.asl.r.p.nac
+ hexagon_S2_asl_r_p_or, // llvm.hexagon.S2.asl.r.p.or
+ hexagon_S2_asl_r_p_xor, // llvm.hexagon.S2.asl.r.p.xor
+ hexagon_S2_asl_r_r, // llvm.hexagon.S2.asl.r.r
+ hexagon_S2_asl_r_r_acc, // llvm.hexagon.S2.asl.r.r.acc
+ hexagon_S2_asl_r_r_and, // llvm.hexagon.S2.asl.r.r.and
+ hexagon_S2_asl_r_r_nac, // llvm.hexagon.S2.asl.r.r.nac
+ hexagon_S2_asl_r_r_or, // llvm.hexagon.S2.asl.r.r.or
+ hexagon_S2_asl_r_r_sat, // llvm.hexagon.S2.asl.r.r.sat
+ hexagon_S2_asl_r_vh, // llvm.hexagon.S2.asl.r.vh
+ hexagon_S2_asl_r_vw, // llvm.hexagon.S2.asl.r.vw
+ hexagon_S2_asr_i_p, // llvm.hexagon.S2.asr.i.p
+ hexagon_S2_asr_i_p_acc, // llvm.hexagon.S2.asr.i.p.acc
+ hexagon_S2_asr_i_p_and, // llvm.hexagon.S2.asr.i.p.and
+ hexagon_S2_asr_i_p_nac, // llvm.hexagon.S2.asr.i.p.nac
+ hexagon_S2_asr_i_p_or, // llvm.hexagon.S2.asr.i.p.or
+ hexagon_S2_asr_i_p_rnd, // llvm.hexagon.S2.asr.i.p.rnd
+ hexagon_S2_asr_i_p_rnd_goodsyntax, // llvm.hexagon.S2.asr.i.p.rnd.goodsyntax
+ hexagon_S2_asr_i_r, // llvm.hexagon.S2.asr.i.r
+ hexagon_S2_asr_i_r_acc, // llvm.hexagon.S2.asr.i.r.acc
+ hexagon_S2_asr_i_r_and, // llvm.hexagon.S2.asr.i.r.and
+ hexagon_S2_asr_i_r_nac, // llvm.hexagon.S2.asr.i.r.nac
+ hexagon_S2_asr_i_r_or, // llvm.hexagon.S2.asr.i.r.or
+ hexagon_S2_asr_i_r_rnd, // llvm.hexagon.S2.asr.i.r.rnd
+ hexagon_S2_asr_i_r_rnd_goodsyntax, // llvm.hexagon.S2.asr.i.r.rnd.goodsyntax
+ hexagon_S2_asr_i_svw_trun, // llvm.hexagon.S2.asr.i.svw.trun
+ hexagon_S2_asr_i_vh, // llvm.hexagon.S2.asr.i.vh
+ hexagon_S2_asr_i_vw, // llvm.hexagon.S2.asr.i.vw
+ hexagon_S2_asr_r_p, // llvm.hexagon.S2.asr.r.p
+ hexagon_S2_asr_r_p_acc, // llvm.hexagon.S2.asr.r.p.acc
+ hexagon_S2_asr_r_p_and, // llvm.hexagon.S2.asr.r.p.and
+ hexagon_S2_asr_r_p_nac, // llvm.hexagon.S2.asr.r.p.nac
+ hexagon_S2_asr_r_p_or, // llvm.hexagon.S2.asr.r.p.or
+ hexagon_S2_asr_r_p_xor, // llvm.hexagon.S2.asr.r.p.xor
+ hexagon_S2_asr_r_r, // llvm.hexagon.S2.asr.r.r
+ hexagon_S2_asr_r_r_acc, // llvm.hexagon.S2.asr.r.r.acc
+ hexagon_S2_asr_r_r_and, // llvm.hexagon.S2.asr.r.r.and
+ hexagon_S2_asr_r_r_nac, // llvm.hexagon.S2.asr.r.r.nac
+ hexagon_S2_asr_r_r_or, // llvm.hexagon.S2.asr.r.r.or
+ hexagon_S2_asr_r_r_sat, // llvm.hexagon.S2.asr.r.r.sat
+ hexagon_S2_asr_r_svw_trun, // llvm.hexagon.S2.asr.r.svw.trun
+ hexagon_S2_asr_r_vh, // llvm.hexagon.S2.asr.r.vh
+ hexagon_S2_asr_r_vw, // llvm.hexagon.S2.asr.r.vw
+ hexagon_S2_brev, // llvm.hexagon.S2.brev
+ hexagon_S2_brevp, // llvm.hexagon.S2.brevp
+ hexagon_S2_cl0, // llvm.hexagon.S2.cl0
+ hexagon_S2_cl0p, // llvm.hexagon.S2.cl0p
+ hexagon_S2_cl1, // llvm.hexagon.S2.cl1
+ hexagon_S2_cl1p, // llvm.hexagon.S2.cl1p
+ hexagon_S2_clb, // llvm.hexagon.S2.clb
+ hexagon_S2_clbnorm, // llvm.hexagon.S2.clbnorm
+ hexagon_S2_clbp, // llvm.hexagon.S2.clbp
+ hexagon_S2_clrbit_i, // llvm.hexagon.S2.clrbit.i
+ hexagon_S2_clrbit_r, // llvm.hexagon.S2.clrbit.r
+ hexagon_S2_ct0, // llvm.hexagon.S2.ct0
+ hexagon_S2_ct0p, // llvm.hexagon.S2.ct0p
+ hexagon_S2_ct1, // llvm.hexagon.S2.ct1
+ hexagon_S2_ct1p, // llvm.hexagon.S2.ct1p
+ hexagon_S2_deinterleave, // llvm.hexagon.S2.deinterleave
+ hexagon_S2_extractu, // llvm.hexagon.S2.extractu
+ hexagon_S2_extractu_rp, // llvm.hexagon.S2.extractu.rp
+ hexagon_S2_extractup, // llvm.hexagon.S2.extractup
+ hexagon_S2_extractup_rp, // llvm.hexagon.S2.extractup.rp
+ hexagon_S2_insert, // llvm.hexagon.S2.insert
+ hexagon_S2_insert_rp, // llvm.hexagon.S2.insert.rp
+ hexagon_S2_insertp, // llvm.hexagon.S2.insertp
+ hexagon_S2_insertp_rp, // llvm.hexagon.S2.insertp.rp
+ hexagon_S2_interleave, // llvm.hexagon.S2.interleave
+ hexagon_S2_lfsp, // llvm.hexagon.S2.lfsp
+ hexagon_S2_lsl_r_p, // llvm.hexagon.S2.lsl.r.p
+ hexagon_S2_lsl_r_p_acc, // llvm.hexagon.S2.lsl.r.p.acc
+ hexagon_S2_lsl_r_p_and, // llvm.hexagon.S2.lsl.r.p.and
+ hexagon_S2_lsl_r_p_nac, // llvm.hexagon.S2.lsl.r.p.nac
+ hexagon_S2_lsl_r_p_or, // llvm.hexagon.S2.lsl.r.p.or
+ hexagon_S2_lsl_r_p_xor, // llvm.hexagon.S2.lsl.r.p.xor
+ hexagon_S2_lsl_r_r, // llvm.hexagon.S2.lsl.r.r
+ hexagon_S2_lsl_r_r_acc, // llvm.hexagon.S2.lsl.r.r.acc
+ hexagon_S2_lsl_r_r_and, // llvm.hexagon.S2.lsl.r.r.and
+ hexagon_S2_lsl_r_r_nac, // llvm.hexagon.S2.lsl.r.r.nac
+ hexagon_S2_lsl_r_r_or, // llvm.hexagon.S2.lsl.r.r.or
+ hexagon_S2_lsl_r_vh, // llvm.hexagon.S2.lsl.r.vh
+ hexagon_S2_lsl_r_vw, // llvm.hexagon.S2.lsl.r.vw
+ hexagon_S2_lsr_i_p, // llvm.hexagon.S2.lsr.i.p
+ hexagon_S2_lsr_i_p_acc, // llvm.hexagon.S2.lsr.i.p.acc
+ hexagon_S2_lsr_i_p_and, // llvm.hexagon.S2.lsr.i.p.and
+ hexagon_S2_lsr_i_p_nac, // llvm.hexagon.S2.lsr.i.p.nac
+ hexagon_S2_lsr_i_p_or, // llvm.hexagon.S2.lsr.i.p.or
+ hexagon_S2_lsr_i_p_xacc, // llvm.hexagon.S2.lsr.i.p.xacc
+ hexagon_S2_lsr_i_r, // llvm.hexagon.S2.lsr.i.r
+ hexagon_S2_lsr_i_r_acc, // llvm.hexagon.S2.lsr.i.r.acc
+ hexagon_S2_lsr_i_r_and, // llvm.hexagon.S2.lsr.i.r.and
+ hexagon_S2_lsr_i_r_nac, // llvm.hexagon.S2.lsr.i.r.nac
+ hexagon_S2_lsr_i_r_or, // llvm.hexagon.S2.lsr.i.r.or
+ hexagon_S2_lsr_i_r_xacc, // llvm.hexagon.S2.lsr.i.r.xacc
+ hexagon_S2_lsr_i_vh, // llvm.hexagon.S2.lsr.i.vh
+ hexagon_S2_lsr_i_vw, // llvm.hexagon.S2.lsr.i.vw
+ hexagon_S2_lsr_r_p, // llvm.hexagon.S2.lsr.r.p
+ hexagon_S2_lsr_r_p_acc, // llvm.hexagon.S2.lsr.r.p.acc
+ hexagon_S2_lsr_r_p_and, // llvm.hexagon.S2.lsr.r.p.and
+ hexagon_S2_lsr_r_p_nac, // llvm.hexagon.S2.lsr.r.p.nac
+ hexagon_S2_lsr_r_p_or, // llvm.hexagon.S2.lsr.r.p.or
+ hexagon_S2_lsr_r_p_xor, // llvm.hexagon.S2.lsr.r.p.xor
+ hexagon_S2_lsr_r_r, // llvm.hexagon.S2.lsr.r.r
+ hexagon_S2_lsr_r_r_acc, // llvm.hexagon.S2.lsr.r.r.acc
+ hexagon_S2_lsr_r_r_and, // llvm.hexagon.S2.lsr.r.r.and
+ hexagon_S2_lsr_r_r_nac, // llvm.hexagon.S2.lsr.r.r.nac
+ hexagon_S2_lsr_r_r_or, // llvm.hexagon.S2.lsr.r.r.or
+ hexagon_S2_lsr_r_vh, // llvm.hexagon.S2.lsr.r.vh
+ hexagon_S2_lsr_r_vw, // llvm.hexagon.S2.lsr.r.vw
+ hexagon_S2_packhl, // llvm.hexagon.S2.packhl
+ hexagon_S2_parityp, // llvm.hexagon.S2.parityp
+ hexagon_S2_setbit_i, // llvm.hexagon.S2.setbit.i
+ hexagon_S2_setbit_r, // llvm.hexagon.S2.setbit.r
+ hexagon_S2_shuffeb, // llvm.hexagon.S2.shuffeb
+ hexagon_S2_shuffeh, // llvm.hexagon.S2.shuffeh
+ hexagon_S2_shuffob, // llvm.hexagon.S2.shuffob
+ hexagon_S2_shuffoh, // llvm.hexagon.S2.shuffoh
+ hexagon_S2_svsathb, // llvm.hexagon.S2.svsathb
+ hexagon_S2_svsathub, // llvm.hexagon.S2.svsathub
+ hexagon_S2_tableidxb_goodsyntax, // llvm.hexagon.S2.tableidxb.goodsyntax
+ hexagon_S2_tableidxd_goodsyntax, // llvm.hexagon.S2.tableidxd.goodsyntax
+ hexagon_S2_tableidxh_goodsyntax, // llvm.hexagon.S2.tableidxh.goodsyntax
+ hexagon_S2_tableidxw_goodsyntax, // llvm.hexagon.S2.tableidxw.goodsyntax
+ hexagon_S2_togglebit_i, // llvm.hexagon.S2.togglebit.i
+ hexagon_S2_togglebit_r, // llvm.hexagon.S2.togglebit.r
+ hexagon_S2_tstbit_i, // llvm.hexagon.S2.tstbit.i
+ hexagon_S2_tstbit_r, // llvm.hexagon.S2.tstbit.r
+ hexagon_S2_valignib, // llvm.hexagon.S2.valignib
+ hexagon_S2_valignrb, // llvm.hexagon.S2.valignrb
+ hexagon_S2_vcnegh, // llvm.hexagon.S2.vcnegh
+ hexagon_S2_vcrotate, // llvm.hexagon.S2.vcrotate
+ hexagon_S2_vrcnegh, // llvm.hexagon.S2.vrcnegh
+ hexagon_S2_vrndpackwh, // llvm.hexagon.S2.vrndpackwh
+ hexagon_S2_vrndpackwhs, // llvm.hexagon.S2.vrndpackwhs
+ hexagon_S2_vsathb, // llvm.hexagon.S2.vsathb
+ hexagon_S2_vsathb_nopack, // llvm.hexagon.S2.vsathb.nopack
+ hexagon_S2_vsathub, // llvm.hexagon.S2.vsathub
+ hexagon_S2_vsathub_nopack, // llvm.hexagon.S2.vsathub.nopack
+ hexagon_S2_vsatwh, // llvm.hexagon.S2.vsatwh
+ hexagon_S2_vsatwh_nopack, // llvm.hexagon.S2.vsatwh.nopack
+ hexagon_S2_vsatwuh, // llvm.hexagon.S2.vsatwuh
+ hexagon_S2_vsatwuh_nopack, // llvm.hexagon.S2.vsatwuh.nopack
+ hexagon_S2_vsplatrb, // llvm.hexagon.S2.vsplatrb
+ hexagon_S2_vsplatrh, // llvm.hexagon.S2.vsplatrh
+ hexagon_S2_vspliceib, // llvm.hexagon.S2.vspliceib
+ hexagon_S2_vsplicerb, // llvm.hexagon.S2.vsplicerb
+ hexagon_S2_vsxtbh, // llvm.hexagon.S2.vsxtbh
+ hexagon_S2_vsxthw, // llvm.hexagon.S2.vsxthw
+ hexagon_S2_vtrunehb, // llvm.hexagon.S2.vtrunehb
+ hexagon_S2_vtrunewh, // llvm.hexagon.S2.vtrunewh
+ hexagon_S2_vtrunohb, // llvm.hexagon.S2.vtrunohb
+ hexagon_S2_vtrunowh, // llvm.hexagon.S2.vtrunowh
+ hexagon_S2_vzxtbh, // llvm.hexagon.S2.vzxtbh
+ hexagon_S2_vzxthw, // llvm.hexagon.S2.vzxthw
+ hexagon_S4_addaddi, // llvm.hexagon.S4.addaddi
+ hexagon_S4_addi_asl_ri, // llvm.hexagon.S4.addi.asl.ri
+ hexagon_S4_addi_lsr_ri, // llvm.hexagon.S4.addi.lsr.ri
+ hexagon_S4_andi_asl_ri, // llvm.hexagon.S4.andi.asl.ri
+ hexagon_S4_andi_lsr_ri, // llvm.hexagon.S4.andi.lsr.ri
+ hexagon_S4_clbaddi, // llvm.hexagon.S4.clbaddi
+ hexagon_S4_clbpaddi, // llvm.hexagon.S4.clbpaddi
+ hexagon_S4_clbpnorm, // llvm.hexagon.S4.clbpnorm
+ hexagon_S4_extract, // llvm.hexagon.S4.extract
+ hexagon_S4_extract_rp, // llvm.hexagon.S4.extract.rp
+ hexagon_S4_extractp, // llvm.hexagon.S4.extractp
+ hexagon_S4_extractp_rp, // llvm.hexagon.S4.extractp.rp
+ hexagon_S4_lsli, // llvm.hexagon.S4.lsli
+ hexagon_S4_ntstbit_i, // llvm.hexagon.S4.ntstbit.i
+ hexagon_S4_ntstbit_r, // llvm.hexagon.S4.ntstbit.r
+ hexagon_S4_or_andi, // llvm.hexagon.S4.or.andi
+ hexagon_S4_or_andix, // llvm.hexagon.S4.or.andix
+ hexagon_S4_or_ori, // llvm.hexagon.S4.or.ori
+ hexagon_S4_ori_asl_ri, // llvm.hexagon.S4.ori.asl.ri
+ hexagon_S4_ori_lsr_ri, // llvm.hexagon.S4.ori.lsr.ri
+ hexagon_S4_parity, // llvm.hexagon.S4.parity
+ hexagon_S4_subaddi, // llvm.hexagon.S4.subaddi
+ hexagon_S4_subi_asl_ri, // llvm.hexagon.S4.subi.asl.ri
+ hexagon_S4_subi_lsr_ri, // llvm.hexagon.S4.subi.lsr.ri
+ hexagon_S4_vrcrotate, // llvm.hexagon.S4.vrcrotate
+ hexagon_S4_vrcrotate_acc, // llvm.hexagon.S4.vrcrotate.acc
+ hexagon_S4_vxaddsubh, // llvm.hexagon.S4.vxaddsubh
+ hexagon_S4_vxaddsubhr, // llvm.hexagon.S4.vxaddsubhr
+ hexagon_S4_vxaddsubw, // llvm.hexagon.S4.vxaddsubw
+ hexagon_S4_vxsubaddh, // llvm.hexagon.S4.vxsubaddh
+ hexagon_S4_vxsubaddhr, // llvm.hexagon.S4.vxsubaddhr
+ hexagon_S4_vxsubaddw, // llvm.hexagon.S4.vxsubaddw
+ hexagon_S5_asrhub_rnd_sat_goodsyntax, // llvm.hexagon.S5.asrhub.rnd.sat.goodsyntax
+ hexagon_S5_asrhub_sat, // llvm.hexagon.S5.asrhub.sat
+ hexagon_S5_popcountp, // llvm.hexagon.S5.popcountp
+ hexagon_S5_vasrhrnd_goodsyntax, // llvm.hexagon.S5.vasrhrnd.goodsyntax
+ hexagon_SI_to_SXTHI_asrh, // llvm.hexagon.SI.to.SXTHI.asrh
+ hexagon_circ_ldd, // llvm.hexagon.circ.ldd
+ init_trampoline, // llvm.init.trampoline
+ invariant_end, // llvm.invariant.end
+ invariant_start, // llvm.invariant.start
+ lifetime_end, // llvm.lifetime.end
+ lifetime_start, // llvm.lifetime.start
+ log, // llvm.log
+ log10, // llvm.log10
+ log2, // llvm.log2
+ longjmp, // llvm.longjmp
+ memcpy, // llvm.memcpy
+ memmove, // llvm.memmove
+ memset, // llvm.memset
+ mips_absq_s_ph, // llvm.mips.absq.s.ph
+ mips_absq_s_qb, // llvm.mips.absq.s.qb
+ mips_absq_s_w, // llvm.mips.absq.s.w
+ mips_add_a_b, // llvm.mips.add.a.b
+ mips_add_a_d, // llvm.mips.add.a.d
+ mips_add_a_h, // llvm.mips.add.a.h
+ mips_add_a_w, // llvm.mips.add.a.w
+ mips_addq_ph, // llvm.mips.addq.ph
+ mips_addq_s_ph, // llvm.mips.addq.s.ph
+ mips_addq_s_w, // llvm.mips.addq.s.w
+ mips_addqh_ph, // llvm.mips.addqh.ph
+ mips_addqh_r_ph, // llvm.mips.addqh.r.ph
+ mips_addqh_r_w, // llvm.mips.addqh.r.w
+ mips_addqh_w, // llvm.mips.addqh.w
+ mips_adds_a_b, // llvm.mips.adds.a.b
+ mips_adds_a_d, // llvm.mips.adds.a.d
+ mips_adds_a_h, // llvm.mips.adds.a.h
+ mips_adds_a_w, // llvm.mips.adds.a.w
+ mips_adds_s_b, // llvm.mips.adds.s.b
+ mips_adds_s_d, // llvm.mips.adds.s.d
+ mips_adds_s_h, // llvm.mips.adds.s.h
+ mips_adds_s_w, // llvm.mips.adds.s.w
+ mips_adds_u_b, // llvm.mips.adds.u.b
+ mips_adds_u_d, // llvm.mips.adds.u.d
+ mips_adds_u_h, // llvm.mips.adds.u.h
+ mips_adds_u_w, // llvm.mips.adds.u.w
+ mips_addsc, // llvm.mips.addsc
+ mips_addu_ph, // llvm.mips.addu.ph
+ mips_addu_qb, // llvm.mips.addu.qb
+ mips_addu_s_ph, // llvm.mips.addu.s.ph
+ mips_addu_s_qb, // llvm.mips.addu.s.qb
+ mips_adduh_qb, // llvm.mips.adduh.qb
+ mips_adduh_r_qb, // llvm.mips.adduh.r.qb
+ mips_addv_b, // llvm.mips.addv.b
+ mips_addv_d, // llvm.mips.addv.d
+ mips_addv_h, // llvm.mips.addv.h
+ mips_addv_w, // llvm.mips.addv.w
+ mips_addvi_b, // llvm.mips.addvi.b
+ mips_addvi_d, // llvm.mips.addvi.d
+ mips_addvi_h, // llvm.mips.addvi.h
+ mips_addvi_w, // llvm.mips.addvi.w
+ mips_addwc, // llvm.mips.addwc
+ mips_and_v, // llvm.mips.and.v
+ mips_andi_b, // llvm.mips.andi.b
+ mips_append, // llvm.mips.append
+ mips_asub_s_b, // llvm.mips.asub.s.b
+ mips_asub_s_d, // llvm.mips.asub.s.d
+ mips_asub_s_h, // llvm.mips.asub.s.h
+ mips_asub_s_w, // llvm.mips.asub.s.w
+ mips_asub_u_b, // llvm.mips.asub.u.b
+ mips_asub_u_d, // llvm.mips.asub.u.d
+ mips_asub_u_h, // llvm.mips.asub.u.h
+ mips_asub_u_w, // llvm.mips.asub.u.w
+ mips_ave_s_b, // llvm.mips.ave.s.b
+ mips_ave_s_d, // llvm.mips.ave.s.d
+ mips_ave_s_h, // llvm.mips.ave.s.h
+ mips_ave_s_w, // llvm.mips.ave.s.w
+ mips_ave_u_b, // llvm.mips.ave.u.b
+ mips_ave_u_d, // llvm.mips.ave.u.d
+ mips_ave_u_h, // llvm.mips.ave.u.h
+ mips_ave_u_w, // llvm.mips.ave.u.w
+ mips_aver_s_b, // llvm.mips.aver.s.b
+ mips_aver_s_d, // llvm.mips.aver.s.d
+ mips_aver_s_h, // llvm.mips.aver.s.h
+ mips_aver_s_w, // llvm.mips.aver.s.w
+ mips_aver_u_b, // llvm.mips.aver.u.b
+ mips_aver_u_d, // llvm.mips.aver.u.d
+ mips_aver_u_h, // llvm.mips.aver.u.h
+ mips_aver_u_w, // llvm.mips.aver.u.w
+ mips_balign, // llvm.mips.balign
+ mips_bclr_b, // llvm.mips.bclr.b
+ mips_bclr_d, // llvm.mips.bclr.d
+ mips_bclr_h, // llvm.mips.bclr.h
+ mips_bclr_w, // llvm.mips.bclr.w
+ mips_bclri_b, // llvm.mips.bclri.b
+ mips_bclri_d, // llvm.mips.bclri.d
+ mips_bclri_h, // llvm.mips.bclri.h
+ mips_bclri_w, // llvm.mips.bclri.w
+ mips_binsl_b, // llvm.mips.binsl.b
+ mips_binsl_d, // llvm.mips.binsl.d
+ mips_binsl_h, // llvm.mips.binsl.h
+ mips_binsl_w, // llvm.mips.binsl.w
+ mips_binsli_b, // llvm.mips.binsli.b
+ mips_binsli_d, // llvm.mips.binsli.d
+ mips_binsli_h, // llvm.mips.binsli.h
+ mips_binsli_w, // llvm.mips.binsli.w
+ mips_binsr_b, // llvm.mips.binsr.b
+ mips_binsr_d, // llvm.mips.binsr.d
+ mips_binsr_h, // llvm.mips.binsr.h
+ mips_binsr_w, // llvm.mips.binsr.w
+ mips_binsri_b, // llvm.mips.binsri.b
+ mips_binsri_d, // llvm.mips.binsri.d
+ mips_binsri_h, // llvm.mips.binsri.h
+ mips_binsri_w, // llvm.mips.binsri.w
+ mips_bitrev, // llvm.mips.bitrev
+ mips_bmnz_v, // llvm.mips.bmnz.v
+ mips_bmnzi_b, // llvm.mips.bmnzi.b
+ mips_bmz_v, // llvm.mips.bmz.v
+ mips_bmzi_b, // llvm.mips.bmzi.b
+ mips_bneg_b, // llvm.mips.bneg.b
+ mips_bneg_d, // llvm.mips.bneg.d
+ mips_bneg_h, // llvm.mips.bneg.h
+ mips_bneg_w, // llvm.mips.bneg.w
+ mips_bnegi_b, // llvm.mips.bnegi.b
+ mips_bnegi_d, // llvm.mips.bnegi.d
+ mips_bnegi_h, // llvm.mips.bnegi.h
+ mips_bnegi_w, // llvm.mips.bnegi.w
+ mips_bnz_b, // llvm.mips.bnz.b
+ mips_bnz_d, // llvm.mips.bnz.d
+ mips_bnz_h, // llvm.mips.bnz.h
+ mips_bnz_v, // llvm.mips.bnz.v
+ mips_bnz_w, // llvm.mips.bnz.w
+ mips_bposge32, // llvm.mips.bposge32
+ mips_bsel_v, // llvm.mips.bsel.v
+ mips_bseli_b, // llvm.mips.bseli.b
+ mips_bset_b, // llvm.mips.bset.b
+ mips_bset_d, // llvm.mips.bset.d
+ mips_bset_h, // llvm.mips.bset.h
+ mips_bset_w, // llvm.mips.bset.w
+ mips_bseti_b, // llvm.mips.bseti.b
+ mips_bseti_d, // llvm.mips.bseti.d
+ mips_bseti_h, // llvm.mips.bseti.h
+ mips_bseti_w, // llvm.mips.bseti.w
+ mips_bz_b, // llvm.mips.bz.b
+ mips_bz_d, // llvm.mips.bz.d
+ mips_bz_h, // llvm.mips.bz.h
+ mips_bz_v, // llvm.mips.bz.v
+ mips_bz_w, // llvm.mips.bz.w
+ mips_ceq_b, // llvm.mips.ceq.b
+ mips_ceq_d, // llvm.mips.ceq.d
+ mips_ceq_h, // llvm.mips.ceq.h
+ mips_ceq_w, // llvm.mips.ceq.w
+ mips_ceqi_b, // llvm.mips.ceqi.b
+ mips_ceqi_d, // llvm.mips.ceqi.d
+ mips_ceqi_h, // llvm.mips.ceqi.h
+ mips_ceqi_w, // llvm.mips.ceqi.w
+ mips_cfcmsa, // llvm.mips.cfcmsa
+ mips_cle_s_b, // llvm.mips.cle.s.b
+ mips_cle_s_d, // llvm.mips.cle.s.d
+ mips_cle_s_h, // llvm.mips.cle.s.h
+ mips_cle_s_w, // llvm.mips.cle.s.w
+ mips_cle_u_b, // llvm.mips.cle.u.b
+ mips_cle_u_d, // llvm.mips.cle.u.d
+ mips_cle_u_h, // llvm.mips.cle.u.h
+ mips_cle_u_w, // llvm.mips.cle.u.w
+ mips_clei_s_b, // llvm.mips.clei.s.b
+ mips_clei_s_d, // llvm.mips.clei.s.d
+ mips_clei_s_h, // llvm.mips.clei.s.h
+ mips_clei_s_w, // llvm.mips.clei.s.w
+ mips_clei_u_b, // llvm.mips.clei.u.b
+ mips_clei_u_d, // llvm.mips.clei.u.d
+ mips_clei_u_h, // llvm.mips.clei.u.h
+ mips_clei_u_w, // llvm.mips.clei.u.w
+ mips_clt_s_b, // llvm.mips.clt.s.b
+ mips_clt_s_d, // llvm.mips.clt.s.d
+ mips_clt_s_h, // llvm.mips.clt.s.h
+ mips_clt_s_w, // llvm.mips.clt.s.w
+ mips_clt_u_b, // llvm.mips.clt.u.b
+ mips_clt_u_d, // llvm.mips.clt.u.d
+ mips_clt_u_h, // llvm.mips.clt.u.h
+ mips_clt_u_w, // llvm.mips.clt.u.w
+ mips_clti_s_b, // llvm.mips.clti.s.b
+ mips_clti_s_d, // llvm.mips.clti.s.d
+ mips_clti_s_h, // llvm.mips.clti.s.h
+ mips_clti_s_w, // llvm.mips.clti.s.w
+ mips_clti_u_b, // llvm.mips.clti.u.b
+ mips_clti_u_d, // llvm.mips.clti.u.d
+ mips_clti_u_h, // llvm.mips.clti.u.h
+ mips_clti_u_w, // llvm.mips.clti.u.w
+ mips_cmp_eq_ph, // llvm.mips.cmp.eq.ph
+ mips_cmp_le_ph, // llvm.mips.cmp.le.ph
+ mips_cmp_lt_ph, // llvm.mips.cmp.lt.ph
+ mips_cmpgdu_eq_qb, // llvm.mips.cmpgdu.eq.qb
+ mips_cmpgdu_le_qb, // llvm.mips.cmpgdu.le.qb
+ mips_cmpgdu_lt_qb, // llvm.mips.cmpgdu.lt.qb
+ mips_cmpgu_eq_qb, // llvm.mips.cmpgu.eq.qb
+ mips_cmpgu_le_qb, // llvm.mips.cmpgu.le.qb
+ mips_cmpgu_lt_qb, // llvm.mips.cmpgu.lt.qb
+ mips_cmpu_eq_qb, // llvm.mips.cmpu.eq.qb
+ mips_cmpu_le_qb, // llvm.mips.cmpu.le.qb
+ mips_cmpu_lt_qb, // llvm.mips.cmpu.lt.qb
+ mips_copy_s_b, // llvm.mips.copy.s.b
+ mips_copy_s_d, // llvm.mips.copy.s.d
+ mips_copy_s_h, // llvm.mips.copy.s.h
+ mips_copy_s_w, // llvm.mips.copy.s.w
+ mips_copy_u_b, // llvm.mips.copy.u.b
+ mips_copy_u_d, // llvm.mips.copy.u.d
+ mips_copy_u_h, // llvm.mips.copy.u.h
+ mips_copy_u_w, // llvm.mips.copy.u.w
+ mips_ctcmsa, // llvm.mips.ctcmsa
+ mips_div_s_b, // llvm.mips.div.s.b
+ mips_div_s_d, // llvm.mips.div.s.d
+ mips_div_s_h, // llvm.mips.div.s.h
+ mips_div_s_w, // llvm.mips.div.s.w
+ mips_div_u_b, // llvm.mips.div.u.b
+ mips_div_u_d, // llvm.mips.div.u.d
+ mips_div_u_h, // llvm.mips.div.u.h
+ mips_div_u_w, // llvm.mips.div.u.w
+ mips_dlsa, // llvm.mips.dlsa
+ mips_dotp_s_d, // llvm.mips.dotp.s.d
+ mips_dotp_s_h, // llvm.mips.dotp.s.h
+ mips_dotp_s_w, // llvm.mips.dotp.s.w
+ mips_dotp_u_d, // llvm.mips.dotp.u.d
+ mips_dotp_u_h, // llvm.mips.dotp.u.h
+ mips_dotp_u_w, // llvm.mips.dotp.u.w
+ mips_dpa_w_ph, // llvm.mips.dpa.w.ph
+ mips_dpadd_s_d, // llvm.mips.dpadd.s.d
+ mips_dpadd_s_h, // llvm.mips.dpadd.s.h
+ mips_dpadd_s_w, // llvm.mips.dpadd.s.w
+ mips_dpadd_u_d, // llvm.mips.dpadd.u.d
+ mips_dpadd_u_h, // llvm.mips.dpadd.u.h
+ mips_dpadd_u_w, // llvm.mips.dpadd.u.w
+ mips_dpaq_s_w_ph, // llvm.mips.dpaq.s.w.ph
+ mips_dpaq_sa_l_w, // llvm.mips.dpaq.sa.l.w
+ mips_dpaqx_s_w_ph, // llvm.mips.dpaqx.s.w.ph
+ mips_dpaqx_sa_w_ph, // llvm.mips.dpaqx.sa.w.ph
+ mips_dpau_h_qbl, // llvm.mips.dpau.h.qbl
+ mips_dpau_h_qbr, // llvm.mips.dpau.h.qbr
+ mips_dpax_w_ph, // llvm.mips.dpax.w.ph
+ mips_dps_w_ph, // llvm.mips.dps.w.ph
+ mips_dpsq_s_w_ph, // llvm.mips.dpsq.s.w.ph
+ mips_dpsq_sa_l_w, // llvm.mips.dpsq.sa.l.w
+ mips_dpsqx_s_w_ph, // llvm.mips.dpsqx.s.w.ph
+ mips_dpsqx_sa_w_ph, // llvm.mips.dpsqx.sa.w.ph
+ mips_dpsu_h_qbl, // llvm.mips.dpsu.h.qbl
+ mips_dpsu_h_qbr, // llvm.mips.dpsu.h.qbr
+ mips_dpsub_s_d, // llvm.mips.dpsub.s.d
+ mips_dpsub_s_h, // llvm.mips.dpsub.s.h
+ mips_dpsub_s_w, // llvm.mips.dpsub.s.w
+ mips_dpsub_u_d, // llvm.mips.dpsub.u.d
+ mips_dpsub_u_h, // llvm.mips.dpsub.u.h
+ mips_dpsub_u_w, // llvm.mips.dpsub.u.w
+ mips_dpsx_w_ph, // llvm.mips.dpsx.w.ph
+ mips_extp, // llvm.mips.extp
+ mips_extpdp, // llvm.mips.extpdp
+ mips_extr_r_w, // llvm.mips.extr.r.w
+ mips_extr_rs_w, // llvm.mips.extr.rs.w
+ mips_extr_s_h, // llvm.mips.extr.s.h
+ mips_extr_w, // llvm.mips.extr.w
+ mips_fadd_d, // llvm.mips.fadd.d
+ mips_fadd_w, // llvm.mips.fadd.w
+ mips_fcaf_d, // llvm.mips.fcaf.d
+ mips_fcaf_w, // llvm.mips.fcaf.w
+ mips_fceq_d, // llvm.mips.fceq.d
+ mips_fceq_w, // llvm.mips.fceq.w
+ mips_fclass_d, // llvm.mips.fclass.d
+ mips_fclass_w, // llvm.mips.fclass.w
+ mips_fcle_d, // llvm.mips.fcle.d
+ mips_fcle_w, // llvm.mips.fcle.w
+ mips_fclt_d, // llvm.mips.fclt.d
+ mips_fclt_w, // llvm.mips.fclt.w
+ mips_fcne_d, // llvm.mips.fcne.d
+ mips_fcne_w, // llvm.mips.fcne.w
+ mips_fcor_d, // llvm.mips.fcor.d
+ mips_fcor_w, // llvm.mips.fcor.w
+ mips_fcueq_d, // llvm.mips.fcueq.d
+ mips_fcueq_w, // llvm.mips.fcueq.w
+ mips_fcule_d, // llvm.mips.fcule.d
+ mips_fcule_w, // llvm.mips.fcule.w
+ mips_fcult_d, // llvm.mips.fcult.d
+ mips_fcult_w, // llvm.mips.fcult.w
+ mips_fcun_d, // llvm.mips.fcun.d
+ mips_fcun_w, // llvm.mips.fcun.w
+ mips_fcune_d, // llvm.mips.fcune.d
+ mips_fcune_w, // llvm.mips.fcune.w
+ mips_fdiv_d, // llvm.mips.fdiv.d
+ mips_fdiv_w, // llvm.mips.fdiv.w
+ mips_fexdo_h, // llvm.mips.fexdo.h
+ mips_fexdo_w, // llvm.mips.fexdo.w
+ mips_fexp2_d, // llvm.mips.fexp2.d
+ mips_fexp2_w, // llvm.mips.fexp2.w
+ mips_fexupl_d, // llvm.mips.fexupl.d
+ mips_fexupl_w, // llvm.mips.fexupl.w
+ mips_fexupr_d, // llvm.mips.fexupr.d
+ mips_fexupr_w, // llvm.mips.fexupr.w
+ mips_ffint_s_d, // llvm.mips.ffint.s.d
+ mips_ffint_s_w, // llvm.mips.ffint.s.w
+ mips_ffint_u_d, // llvm.mips.ffint.u.d
+ mips_ffint_u_w, // llvm.mips.ffint.u.w
+ mips_ffql_d, // llvm.mips.ffql.d
+ mips_ffql_w, // llvm.mips.ffql.w
+ mips_ffqr_d, // llvm.mips.ffqr.d
+ mips_ffqr_w, // llvm.mips.ffqr.w
+ mips_fill_b, // llvm.mips.fill.b
+ mips_fill_d, // llvm.mips.fill.d
+ mips_fill_h, // llvm.mips.fill.h
+ mips_fill_w, // llvm.mips.fill.w
+ mips_flog2_d, // llvm.mips.flog2.d
+ mips_flog2_w, // llvm.mips.flog2.w
+ mips_fmadd_d, // llvm.mips.fmadd.d
+ mips_fmadd_w, // llvm.mips.fmadd.w
+ mips_fmax_a_d, // llvm.mips.fmax.a.d
+ mips_fmax_a_w, // llvm.mips.fmax.a.w
+ mips_fmax_d, // llvm.mips.fmax.d
+ mips_fmax_w, // llvm.mips.fmax.w
+ mips_fmin_a_d, // llvm.mips.fmin.a.d
+ mips_fmin_a_w, // llvm.mips.fmin.a.w
+ mips_fmin_d, // llvm.mips.fmin.d
+ mips_fmin_w, // llvm.mips.fmin.w
+ mips_fmsub_d, // llvm.mips.fmsub.d
+ mips_fmsub_w, // llvm.mips.fmsub.w
+ mips_fmul_d, // llvm.mips.fmul.d
+ mips_fmul_w, // llvm.mips.fmul.w
+ mips_frcp_d, // llvm.mips.frcp.d
+ mips_frcp_w, // llvm.mips.frcp.w
+ mips_frint_d, // llvm.mips.frint.d
+ mips_frint_w, // llvm.mips.frint.w
+ mips_frsqrt_d, // llvm.mips.frsqrt.d
+ mips_frsqrt_w, // llvm.mips.frsqrt.w
+ mips_fsaf_d, // llvm.mips.fsaf.d
+ mips_fsaf_w, // llvm.mips.fsaf.w
+ mips_fseq_d, // llvm.mips.fseq.d
+ mips_fseq_w, // llvm.mips.fseq.w
+ mips_fsle_d, // llvm.mips.fsle.d
+ mips_fsle_w, // llvm.mips.fsle.w
+ mips_fslt_d, // llvm.mips.fslt.d
+ mips_fslt_w, // llvm.mips.fslt.w
+ mips_fsne_d, // llvm.mips.fsne.d
+ mips_fsne_w, // llvm.mips.fsne.w
+ mips_fsor_d, // llvm.mips.fsor.d
+ mips_fsor_w, // llvm.mips.fsor.w
+ mips_fsqrt_d, // llvm.mips.fsqrt.d
+ mips_fsqrt_w, // llvm.mips.fsqrt.w
+ mips_fsub_d, // llvm.mips.fsub.d
+ mips_fsub_w, // llvm.mips.fsub.w
+ mips_fsueq_d, // llvm.mips.fsueq.d
+ mips_fsueq_w, // llvm.mips.fsueq.w
+ mips_fsule_d, // llvm.mips.fsule.d
+ mips_fsule_w, // llvm.mips.fsule.w
+ mips_fsult_d, // llvm.mips.fsult.d
+ mips_fsult_w, // llvm.mips.fsult.w
+ mips_fsun_d, // llvm.mips.fsun.d
+ mips_fsun_w, // llvm.mips.fsun.w
+ mips_fsune_d, // llvm.mips.fsune.d
+ mips_fsune_w, // llvm.mips.fsune.w
+ mips_ftint_s_d, // llvm.mips.ftint.s.d
+ mips_ftint_s_w, // llvm.mips.ftint.s.w
+ mips_ftint_u_d, // llvm.mips.ftint.u.d
+ mips_ftint_u_w, // llvm.mips.ftint.u.w
+ mips_ftq_h, // llvm.mips.ftq.h
+ mips_ftq_w, // llvm.mips.ftq.w
+ mips_ftrunc_s_d, // llvm.mips.ftrunc.s.d
+ mips_ftrunc_s_w, // llvm.mips.ftrunc.s.w
+ mips_ftrunc_u_d, // llvm.mips.ftrunc.u.d
+ mips_ftrunc_u_w, // llvm.mips.ftrunc.u.w
+ mips_hadd_s_d, // llvm.mips.hadd.s.d
+ mips_hadd_s_h, // llvm.mips.hadd.s.h
+ mips_hadd_s_w, // llvm.mips.hadd.s.w
+ mips_hadd_u_d, // llvm.mips.hadd.u.d
+ mips_hadd_u_h, // llvm.mips.hadd.u.h
+ mips_hadd_u_w, // llvm.mips.hadd.u.w
+ mips_hsub_s_d, // llvm.mips.hsub.s.d
+ mips_hsub_s_h, // llvm.mips.hsub.s.h
+ mips_hsub_s_w, // llvm.mips.hsub.s.w
+ mips_hsub_u_d, // llvm.mips.hsub.u.d
+ mips_hsub_u_h, // llvm.mips.hsub.u.h
+ mips_hsub_u_w, // llvm.mips.hsub.u.w
+ mips_ilvev_b, // llvm.mips.ilvev.b
+ mips_ilvev_d, // llvm.mips.ilvev.d
+ mips_ilvev_h, // llvm.mips.ilvev.h
+ mips_ilvev_w, // llvm.mips.ilvev.w
+ mips_ilvl_b, // llvm.mips.ilvl.b
+ mips_ilvl_d, // llvm.mips.ilvl.d
+ mips_ilvl_h, // llvm.mips.ilvl.h
+ mips_ilvl_w, // llvm.mips.ilvl.w
+ mips_ilvod_b, // llvm.mips.ilvod.b
+ mips_ilvod_d, // llvm.mips.ilvod.d
+ mips_ilvod_h, // llvm.mips.ilvod.h
+ mips_ilvod_w, // llvm.mips.ilvod.w
+ mips_ilvr_b, // llvm.mips.ilvr.b
+ mips_ilvr_d, // llvm.mips.ilvr.d
+ mips_ilvr_h, // llvm.mips.ilvr.h
+ mips_ilvr_w, // llvm.mips.ilvr.w
+ mips_insert_b, // llvm.mips.insert.b
+ mips_insert_d, // llvm.mips.insert.d
+ mips_insert_h, // llvm.mips.insert.h
+ mips_insert_w, // llvm.mips.insert.w
+ mips_insv, // llvm.mips.insv
+ mips_insve_b, // llvm.mips.insve.b
+ mips_insve_d, // llvm.mips.insve.d
+ mips_insve_h, // llvm.mips.insve.h
+ mips_insve_w, // llvm.mips.insve.w
+ mips_lbux, // llvm.mips.lbux
+ mips_ld_b, // llvm.mips.ld.b
+ mips_ld_d, // llvm.mips.ld.d
+ mips_ld_h, // llvm.mips.ld.h
+ mips_ld_w, // llvm.mips.ld.w
+ mips_ldi_b, // llvm.mips.ldi.b
+ mips_ldi_d, // llvm.mips.ldi.d
+ mips_ldi_h, // llvm.mips.ldi.h
+ mips_ldi_w, // llvm.mips.ldi.w
+ mips_lhx, // llvm.mips.lhx
+ mips_lsa, // llvm.mips.lsa
+ mips_lwx, // llvm.mips.lwx
+ mips_madd, // llvm.mips.madd
+ mips_madd_q_h, // llvm.mips.madd.q.h
+ mips_madd_q_w, // llvm.mips.madd.q.w
+ mips_maddr_q_h, // llvm.mips.maddr.q.h
+ mips_maddr_q_w, // llvm.mips.maddr.q.w
+ mips_maddu, // llvm.mips.maddu
+ mips_maddv_b, // llvm.mips.maddv.b
+ mips_maddv_d, // llvm.mips.maddv.d
+ mips_maddv_h, // llvm.mips.maddv.h
+ mips_maddv_w, // llvm.mips.maddv.w
+ mips_maq_s_w_phl, // llvm.mips.maq.s.w.phl
+ mips_maq_s_w_phr, // llvm.mips.maq.s.w.phr
+ mips_maq_sa_w_phl, // llvm.mips.maq.sa.w.phl
+ mips_maq_sa_w_phr, // llvm.mips.maq.sa.w.phr
+ mips_max_a_b, // llvm.mips.max.a.b
+ mips_max_a_d, // llvm.mips.max.a.d
+ mips_max_a_h, // llvm.mips.max.a.h
+ mips_max_a_w, // llvm.mips.max.a.w
+ mips_max_s_b, // llvm.mips.max.s.b
+ mips_max_s_d, // llvm.mips.max.s.d
+ mips_max_s_h, // llvm.mips.max.s.h
+ mips_max_s_w, // llvm.mips.max.s.w
+ mips_max_u_b, // llvm.mips.max.u.b
+ mips_max_u_d, // llvm.mips.max.u.d
+ mips_max_u_h, // llvm.mips.max.u.h
+ mips_max_u_w, // llvm.mips.max.u.w
+ mips_maxi_s_b, // llvm.mips.maxi.s.b
+ mips_maxi_s_d, // llvm.mips.maxi.s.d
+ mips_maxi_s_h, // llvm.mips.maxi.s.h
+ mips_maxi_s_w, // llvm.mips.maxi.s.w
+ mips_maxi_u_b, // llvm.mips.maxi.u.b
+ mips_maxi_u_d, // llvm.mips.maxi.u.d
+ mips_maxi_u_h, // llvm.mips.maxi.u.h
+ mips_maxi_u_w, // llvm.mips.maxi.u.w
+ mips_min_a_b, // llvm.mips.min.a.b
+ mips_min_a_d, // llvm.mips.min.a.d
+ mips_min_a_h, // llvm.mips.min.a.h
+ mips_min_a_w, // llvm.mips.min.a.w
+ mips_min_s_b, // llvm.mips.min.s.b
+ mips_min_s_d, // llvm.mips.min.s.d
+ mips_min_s_h, // llvm.mips.min.s.h
+ mips_min_s_w, // llvm.mips.min.s.w
+ mips_min_u_b, // llvm.mips.min.u.b
+ mips_min_u_d, // llvm.mips.min.u.d
+ mips_min_u_h, // llvm.mips.min.u.h
+ mips_min_u_w, // llvm.mips.min.u.w
+ mips_mini_s_b, // llvm.mips.mini.s.b
+ mips_mini_s_d, // llvm.mips.mini.s.d
+ mips_mini_s_h, // llvm.mips.mini.s.h
+ mips_mini_s_w, // llvm.mips.mini.s.w
+ mips_mini_u_b, // llvm.mips.mini.u.b
+ mips_mini_u_d, // llvm.mips.mini.u.d
+ mips_mini_u_h, // llvm.mips.mini.u.h
+ mips_mini_u_w, // llvm.mips.mini.u.w
+ mips_mod_s_b, // llvm.mips.mod.s.b
+ mips_mod_s_d, // llvm.mips.mod.s.d
+ mips_mod_s_h, // llvm.mips.mod.s.h
+ mips_mod_s_w, // llvm.mips.mod.s.w
+ mips_mod_u_b, // llvm.mips.mod.u.b
+ mips_mod_u_d, // llvm.mips.mod.u.d
+ mips_mod_u_h, // llvm.mips.mod.u.h
+ mips_mod_u_w, // llvm.mips.mod.u.w
+ mips_modsub, // llvm.mips.modsub
+ mips_move_v, // llvm.mips.move.v
+ mips_msub, // llvm.mips.msub
+ mips_msub_q_h, // llvm.mips.msub.q.h
+ mips_msub_q_w, // llvm.mips.msub.q.w
+ mips_msubr_q_h, // llvm.mips.msubr.q.h
+ mips_msubr_q_w, // llvm.mips.msubr.q.w
+ mips_msubu, // llvm.mips.msubu
+ mips_msubv_b, // llvm.mips.msubv.b
+ mips_msubv_d, // llvm.mips.msubv.d
+ mips_msubv_h, // llvm.mips.msubv.h
+ mips_msubv_w, // llvm.mips.msubv.w
+ mips_mthlip, // llvm.mips.mthlip
+ mips_mul_ph, // llvm.mips.mul.ph
+ mips_mul_q_h, // llvm.mips.mul.q.h
+ mips_mul_q_w, // llvm.mips.mul.q.w
+ mips_mul_s_ph, // llvm.mips.mul.s.ph
+ mips_muleq_s_w_phl, // llvm.mips.muleq.s.w.phl
+ mips_muleq_s_w_phr, // llvm.mips.muleq.s.w.phr
+ mips_muleu_s_ph_qbl, // llvm.mips.muleu.s.ph.qbl
+ mips_muleu_s_ph_qbr, // llvm.mips.muleu.s.ph.qbr
+ mips_mulq_rs_ph, // llvm.mips.mulq.rs.ph
+ mips_mulq_rs_w, // llvm.mips.mulq.rs.w
+ mips_mulq_s_ph, // llvm.mips.mulq.s.ph
+ mips_mulq_s_w, // llvm.mips.mulq.s.w
+ mips_mulr_q_h, // llvm.mips.mulr.q.h
+ mips_mulr_q_w, // llvm.mips.mulr.q.w
+ mips_mulsa_w_ph, // llvm.mips.mulsa.w.ph
+ mips_mulsaq_s_w_ph, // llvm.mips.mulsaq.s.w.ph
+ mips_mult, // llvm.mips.mult
+ mips_multu, // llvm.mips.multu
+ mips_mulv_b, // llvm.mips.mulv.b
+ mips_mulv_d, // llvm.mips.mulv.d
+ mips_mulv_h, // llvm.mips.mulv.h
+ mips_mulv_w, // llvm.mips.mulv.w
+ mips_nloc_b, // llvm.mips.nloc.b
+ mips_nloc_d, // llvm.mips.nloc.d
+ mips_nloc_h, // llvm.mips.nloc.h
+ mips_nloc_w, // llvm.mips.nloc.w
+ mips_nlzc_b, // llvm.mips.nlzc.b
+ mips_nlzc_d, // llvm.mips.nlzc.d
+ mips_nlzc_h, // llvm.mips.nlzc.h
+ mips_nlzc_w, // llvm.mips.nlzc.w
+ mips_nor_v, // llvm.mips.nor.v
+ mips_nori_b, // llvm.mips.nori.b
+ mips_or_v, // llvm.mips.or.v
+ mips_ori_b, // llvm.mips.ori.b
+ mips_packrl_ph, // llvm.mips.packrl.ph
+ mips_pckev_b, // llvm.mips.pckev.b
+ mips_pckev_d, // llvm.mips.pckev.d
+ mips_pckev_h, // llvm.mips.pckev.h
+ mips_pckev_w, // llvm.mips.pckev.w
+ mips_pckod_b, // llvm.mips.pckod.b
+ mips_pckod_d, // llvm.mips.pckod.d
+ mips_pckod_h, // llvm.mips.pckod.h
+ mips_pckod_w, // llvm.mips.pckod.w
+ mips_pcnt_b, // llvm.mips.pcnt.b
+ mips_pcnt_d, // llvm.mips.pcnt.d
+ mips_pcnt_h, // llvm.mips.pcnt.h
+ mips_pcnt_w, // llvm.mips.pcnt.w
+ mips_pick_ph, // llvm.mips.pick.ph
+ mips_pick_qb, // llvm.mips.pick.qb
+ mips_preceq_w_phl, // llvm.mips.preceq.w.phl
+ mips_preceq_w_phr, // llvm.mips.preceq.w.phr
+ mips_precequ_ph_qbl, // llvm.mips.precequ.ph.qbl
+ mips_precequ_ph_qbla, // llvm.mips.precequ.ph.qbla
+ mips_precequ_ph_qbr, // llvm.mips.precequ.ph.qbr
+ mips_precequ_ph_qbra, // llvm.mips.precequ.ph.qbra
+ mips_preceu_ph_qbl, // llvm.mips.preceu.ph.qbl
+ mips_preceu_ph_qbla, // llvm.mips.preceu.ph.qbla
+ mips_preceu_ph_qbr, // llvm.mips.preceu.ph.qbr
+ mips_preceu_ph_qbra, // llvm.mips.preceu.ph.qbra
+ mips_precr_qb_ph, // llvm.mips.precr.qb.ph
+ mips_precr_sra_ph_w, // llvm.mips.precr.sra.ph.w
+ mips_precr_sra_r_ph_w, // llvm.mips.precr.sra.r.ph.w
+ mips_precrq_ph_w, // llvm.mips.precrq.ph.w
+ mips_precrq_qb_ph, // llvm.mips.precrq.qb.ph
+ mips_precrq_rs_ph_w, // llvm.mips.precrq.rs.ph.w
+ mips_precrqu_s_qb_ph, // llvm.mips.precrqu.s.qb.ph
+ mips_prepend, // llvm.mips.prepend
+ mips_raddu_w_qb, // llvm.mips.raddu.w.qb
+ mips_rddsp, // llvm.mips.rddsp
+ mips_repl_ph, // llvm.mips.repl.ph
+ mips_repl_qb, // llvm.mips.repl.qb
+ mips_sat_s_b, // llvm.mips.sat.s.b
+ mips_sat_s_d, // llvm.mips.sat.s.d
+ mips_sat_s_h, // llvm.mips.sat.s.h
+ mips_sat_s_w, // llvm.mips.sat.s.w
+ mips_sat_u_b, // llvm.mips.sat.u.b
+ mips_sat_u_d, // llvm.mips.sat.u.d
+ mips_sat_u_h, // llvm.mips.sat.u.h
+ mips_sat_u_w, // llvm.mips.sat.u.w
+ mips_shf_b, // llvm.mips.shf.b
+ mips_shf_h, // llvm.mips.shf.h
+ mips_shf_w, // llvm.mips.shf.w
+ mips_shilo, // llvm.mips.shilo
+ mips_shll_ph, // llvm.mips.shll.ph
+ mips_shll_qb, // llvm.mips.shll.qb
+ mips_shll_s_ph, // llvm.mips.shll.s.ph
+ mips_shll_s_w, // llvm.mips.shll.s.w
+ mips_shra_ph, // llvm.mips.shra.ph
+ mips_shra_qb, // llvm.mips.shra.qb
+ mips_shra_r_ph, // llvm.mips.shra.r.ph
+ mips_shra_r_qb, // llvm.mips.shra.r.qb
+ mips_shra_r_w, // llvm.mips.shra.r.w
+ mips_shrl_ph, // llvm.mips.shrl.ph
+ mips_shrl_qb, // llvm.mips.shrl.qb
+ mips_sld_b, // llvm.mips.sld.b
+ mips_sld_d, // llvm.mips.sld.d
+ mips_sld_h, // llvm.mips.sld.h
+ mips_sld_w, // llvm.mips.sld.w
+ mips_sldi_b, // llvm.mips.sldi.b
+ mips_sldi_d, // llvm.mips.sldi.d
+ mips_sldi_h, // llvm.mips.sldi.h
+ mips_sldi_w, // llvm.mips.sldi.w
+ mips_sll_b, // llvm.mips.sll.b
+ mips_sll_d, // llvm.mips.sll.d
+ mips_sll_h, // llvm.mips.sll.h
+ mips_sll_w, // llvm.mips.sll.w
+ mips_slli_b, // llvm.mips.slli.b
+ mips_slli_d, // llvm.mips.slli.d
+ mips_slli_h, // llvm.mips.slli.h
+ mips_slli_w, // llvm.mips.slli.w
+ mips_splat_b, // llvm.mips.splat.b
+ mips_splat_d, // llvm.mips.splat.d
+ mips_splat_h, // llvm.mips.splat.h
+ mips_splat_w, // llvm.mips.splat.w
+ mips_splati_b, // llvm.mips.splati.b
+ mips_splati_d, // llvm.mips.splati.d
+ mips_splati_h, // llvm.mips.splati.h
+ mips_splati_w, // llvm.mips.splati.w
+ mips_sra_b, // llvm.mips.sra.b
+ mips_sra_d, // llvm.mips.sra.d
+ mips_sra_h, // llvm.mips.sra.h
+ mips_sra_w, // llvm.mips.sra.w
+ mips_srai_b, // llvm.mips.srai.b
+ mips_srai_d, // llvm.mips.srai.d
+ mips_srai_h, // llvm.mips.srai.h
+ mips_srai_w, // llvm.mips.srai.w
+ mips_srar_b, // llvm.mips.srar.b
+ mips_srar_d, // llvm.mips.srar.d
+ mips_srar_h, // llvm.mips.srar.h
+ mips_srar_w, // llvm.mips.srar.w
+ mips_srari_b, // llvm.mips.srari.b
+ mips_srari_d, // llvm.mips.srari.d
+ mips_srari_h, // llvm.mips.srari.h
+ mips_srari_w, // llvm.mips.srari.w
+ mips_srl_b, // llvm.mips.srl.b
+ mips_srl_d, // llvm.mips.srl.d
+ mips_srl_h, // llvm.mips.srl.h
+ mips_srl_w, // llvm.mips.srl.w
+ mips_srli_b, // llvm.mips.srli.b
+ mips_srli_d, // llvm.mips.srli.d
+ mips_srli_h, // llvm.mips.srli.h
+ mips_srli_w, // llvm.mips.srli.w
+ mips_srlr_b, // llvm.mips.srlr.b
+ mips_srlr_d, // llvm.mips.srlr.d
+ mips_srlr_h, // llvm.mips.srlr.h
+ mips_srlr_w, // llvm.mips.srlr.w
+ mips_srlri_b, // llvm.mips.srlri.b
+ mips_srlri_d, // llvm.mips.srlri.d
+ mips_srlri_h, // llvm.mips.srlri.h
+ mips_srlri_w, // llvm.mips.srlri.w
+ mips_st_b, // llvm.mips.st.b
+ mips_st_d, // llvm.mips.st.d
+ mips_st_h, // llvm.mips.st.h
+ mips_st_w, // llvm.mips.st.w
+ mips_subq_ph, // llvm.mips.subq.ph
+ mips_subq_s_ph, // llvm.mips.subq.s.ph
+ mips_subq_s_w, // llvm.mips.subq.s.w
+ mips_subqh_ph, // llvm.mips.subqh.ph
+ mips_subqh_r_ph, // llvm.mips.subqh.r.ph
+ mips_subqh_r_w, // llvm.mips.subqh.r.w
+ mips_subqh_w, // llvm.mips.subqh.w
+ mips_subs_s_b, // llvm.mips.subs.s.b
+ mips_subs_s_d, // llvm.mips.subs.s.d
+ mips_subs_s_h, // llvm.mips.subs.s.h
+ mips_subs_s_w, // llvm.mips.subs.s.w
+ mips_subs_u_b, // llvm.mips.subs.u.b
+ mips_subs_u_d, // llvm.mips.subs.u.d
+ mips_subs_u_h, // llvm.mips.subs.u.h
+ mips_subs_u_w, // llvm.mips.subs.u.w
+ mips_subsus_u_b, // llvm.mips.subsus.u.b
+ mips_subsus_u_d, // llvm.mips.subsus.u.d
+ mips_subsus_u_h, // llvm.mips.subsus.u.h
+ mips_subsus_u_w, // llvm.mips.subsus.u.w
+ mips_subsuu_s_b, // llvm.mips.subsuu.s.b
+ mips_subsuu_s_d, // llvm.mips.subsuu.s.d
+ mips_subsuu_s_h, // llvm.mips.subsuu.s.h
+ mips_subsuu_s_w, // llvm.mips.subsuu.s.w
+ mips_subu_ph, // llvm.mips.subu.ph
+ mips_subu_qb, // llvm.mips.subu.qb
+ mips_subu_s_ph, // llvm.mips.subu.s.ph
+ mips_subu_s_qb, // llvm.mips.subu.s.qb
+ mips_subuh_qb, // llvm.mips.subuh.qb
+ mips_subuh_r_qb, // llvm.mips.subuh.r.qb
+ mips_subv_b, // llvm.mips.subv.b
+ mips_subv_d, // llvm.mips.subv.d
+ mips_subv_h, // llvm.mips.subv.h
+ mips_subv_w, // llvm.mips.subv.w
+ mips_subvi_b, // llvm.mips.subvi.b
+ mips_subvi_d, // llvm.mips.subvi.d
+ mips_subvi_h, // llvm.mips.subvi.h
+ mips_subvi_w, // llvm.mips.subvi.w
+ mips_vshf_b, // llvm.mips.vshf.b
+ mips_vshf_d, // llvm.mips.vshf.d
+ mips_vshf_h, // llvm.mips.vshf.h
+ mips_vshf_w, // llvm.mips.vshf.w
+ mips_wrdsp, // llvm.mips.wrdsp
+ mips_xor_v, // llvm.mips.xor.v
+ mips_xori_b, // llvm.mips.xori.b
+ nearbyint, // llvm.nearbyint
+ nvvm_abs_i, // llvm.nvvm.abs.i
+ nvvm_abs_ll, // llvm.nvvm.abs.ll
+ nvvm_add_rm_d, // llvm.nvvm.add.rm.d
+ nvvm_add_rm_f, // llvm.nvvm.add.rm.f
+ nvvm_add_rm_ftz_f, // llvm.nvvm.add.rm.ftz.f
+ nvvm_add_rn_d, // llvm.nvvm.add.rn.d
+ nvvm_add_rn_f, // llvm.nvvm.add.rn.f
+ nvvm_add_rn_ftz_f, // llvm.nvvm.add.rn.ftz.f
+ nvvm_add_rp_d, // llvm.nvvm.add.rp.d
+ nvvm_add_rp_f, // llvm.nvvm.add.rp.f
+ nvvm_add_rp_ftz_f, // llvm.nvvm.add.rp.ftz.f
+ nvvm_add_rz_d, // llvm.nvvm.add.rz.d
+ nvvm_add_rz_f, // llvm.nvvm.add.rz.f
+ nvvm_add_rz_ftz_f, // llvm.nvvm.add.rz.ftz.f
+ nvvm_atomic_load_add_f32, // llvm.nvvm.atomic.load.add.f32
+ nvvm_atomic_load_dec_32, // llvm.nvvm.atomic.load.dec.32
+ nvvm_atomic_load_inc_32, // llvm.nvvm.atomic.load.inc.32
+ nvvm_barrier0, // llvm.nvvm.barrier0
+ nvvm_barrier0_and, // llvm.nvvm.barrier0.and
+ nvvm_barrier0_or, // llvm.nvvm.barrier0.or
+ nvvm_barrier0_popc, // llvm.nvvm.barrier0.popc
+ nvvm_bitcast_d2ll, // llvm.nvvm.bitcast.d2ll
+ nvvm_bitcast_f2i, // llvm.nvvm.bitcast.f2i
+ nvvm_bitcast_i2f, // llvm.nvvm.bitcast.i2f
+ nvvm_bitcast_ll2d, // llvm.nvvm.bitcast.ll2d
+ nvvm_brev32, // llvm.nvvm.brev32
+ nvvm_brev64, // llvm.nvvm.brev64
+ nvvm_ceil_d, // llvm.nvvm.ceil.d
+ nvvm_ceil_f, // llvm.nvvm.ceil.f
+ nvvm_ceil_ftz_f, // llvm.nvvm.ceil.ftz.f
+ nvvm_clz_i, // llvm.nvvm.clz.i
+ nvvm_clz_ll, // llvm.nvvm.clz.ll
+ nvvm_compiler_error, // llvm.nvvm.compiler.error
+ nvvm_compiler_warn, // llvm.nvvm.compiler.warn
+ nvvm_cos_approx_f, // llvm.nvvm.cos.approx.f
+ nvvm_cos_approx_ftz_f, // llvm.nvvm.cos.approx.ftz.f
+ nvvm_d2f_rm, // llvm.nvvm.d2f.rm
+ nvvm_d2f_rm_ftz, // llvm.nvvm.d2f.rm.ftz
+ nvvm_d2f_rn, // llvm.nvvm.d2f.rn
+ nvvm_d2f_rn_ftz, // llvm.nvvm.d2f.rn.ftz
+ nvvm_d2f_rp, // llvm.nvvm.d2f.rp
+ nvvm_d2f_rp_ftz, // llvm.nvvm.d2f.rp.ftz
+ nvvm_d2f_rz, // llvm.nvvm.d2f.rz
+ nvvm_d2f_rz_ftz, // llvm.nvvm.d2f.rz.ftz
+ nvvm_d2i_hi, // llvm.nvvm.d2i.hi
+ nvvm_d2i_lo, // llvm.nvvm.d2i.lo
+ nvvm_d2i_rm, // llvm.nvvm.d2i.rm
+ nvvm_d2i_rn, // llvm.nvvm.d2i.rn
+ nvvm_d2i_rp, // llvm.nvvm.d2i.rp
+ nvvm_d2i_rz, // llvm.nvvm.d2i.rz
+ nvvm_d2ll_rm, // llvm.nvvm.d2ll.rm
+ nvvm_d2ll_rn, // llvm.nvvm.d2ll.rn
+ nvvm_d2ll_rp, // llvm.nvvm.d2ll.rp
+ nvvm_d2ll_rz, // llvm.nvvm.d2ll.rz
+ nvvm_d2ui_rm, // llvm.nvvm.d2ui.rm
+ nvvm_d2ui_rn, // llvm.nvvm.d2ui.rn
+ nvvm_d2ui_rp, // llvm.nvvm.d2ui.rp
+ nvvm_d2ui_rz, // llvm.nvvm.d2ui.rz
+ nvvm_d2ull_rm, // llvm.nvvm.d2ull.rm
+ nvvm_d2ull_rn, // llvm.nvvm.d2ull.rn
+ nvvm_d2ull_rp, // llvm.nvvm.d2ull.rp
+ nvvm_d2ull_rz, // llvm.nvvm.d2ull.rz
+ nvvm_div_approx_f, // llvm.nvvm.div.approx.f
+ nvvm_div_approx_ftz_f, // llvm.nvvm.div.approx.ftz.f
+ nvvm_div_rm_d, // llvm.nvvm.div.rm.d
+ nvvm_div_rm_f, // llvm.nvvm.div.rm.f
+ nvvm_div_rm_ftz_f, // llvm.nvvm.div.rm.ftz.f
+ nvvm_div_rn_d, // llvm.nvvm.div.rn.d
+ nvvm_div_rn_f, // llvm.nvvm.div.rn.f
+ nvvm_div_rn_ftz_f, // llvm.nvvm.div.rn.ftz.f
+ nvvm_div_rp_d, // llvm.nvvm.div.rp.d
+ nvvm_div_rp_f, // llvm.nvvm.div.rp.f
+ nvvm_div_rp_ftz_f, // llvm.nvvm.div.rp.ftz.f
+ nvvm_div_rz_d, // llvm.nvvm.div.rz.d
+ nvvm_div_rz_f, // llvm.nvvm.div.rz.f
+ nvvm_div_rz_ftz_f, // llvm.nvvm.div.rz.ftz.f
+ nvvm_ex2_approx_d, // llvm.nvvm.ex2.approx.d
+ nvvm_ex2_approx_f, // llvm.nvvm.ex2.approx.f
+ nvvm_ex2_approx_ftz_f, // llvm.nvvm.ex2.approx.ftz.f
+ nvvm_f2h_rn, // llvm.nvvm.f2h.rn
+ nvvm_f2h_rn_ftz, // llvm.nvvm.f2h.rn.ftz
+ nvvm_f2i_rm, // llvm.nvvm.f2i.rm
+ nvvm_f2i_rm_ftz, // llvm.nvvm.f2i.rm.ftz
+ nvvm_f2i_rn, // llvm.nvvm.f2i.rn
+ nvvm_f2i_rn_ftz, // llvm.nvvm.f2i.rn.ftz
+ nvvm_f2i_rp, // llvm.nvvm.f2i.rp
+ nvvm_f2i_rp_ftz, // llvm.nvvm.f2i.rp.ftz
+ nvvm_f2i_rz, // llvm.nvvm.f2i.rz
+ nvvm_f2i_rz_ftz, // llvm.nvvm.f2i.rz.ftz
+ nvvm_f2ll_rm, // llvm.nvvm.f2ll.rm
+ nvvm_f2ll_rm_ftz, // llvm.nvvm.f2ll.rm.ftz
+ nvvm_f2ll_rn, // llvm.nvvm.f2ll.rn
+ nvvm_f2ll_rn_ftz, // llvm.nvvm.f2ll.rn.ftz
+ nvvm_f2ll_rp, // llvm.nvvm.f2ll.rp
+ nvvm_f2ll_rp_ftz, // llvm.nvvm.f2ll.rp.ftz
+ nvvm_f2ll_rz, // llvm.nvvm.f2ll.rz
+ nvvm_f2ll_rz_ftz, // llvm.nvvm.f2ll.rz.ftz
+ nvvm_f2ui_rm, // llvm.nvvm.f2ui.rm
+ nvvm_f2ui_rm_ftz, // llvm.nvvm.f2ui.rm.ftz
+ nvvm_f2ui_rn, // llvm.nvvm.f2ui.rn
+ nvvm_f2ui_rn_ftz, // llvm.nvvm.f2ui.rn.ftz
+ nvvm_f2ui_rp, // llvm.nvvm.f2ui.rp
+ nvvm_f2ui_rp_ftz, // llvm.nvvm.f2ui.rp.ftz
+ nvvm_f2ui_rz, // llvm.nvvm.f2ui.rz
+ nvvm_f2ui_rz_ftz, // llvm.nvvm.f2ui.rz.ftz
+ nvvm_f2ull_rm, // llvm.nvvm.f2ull.rm
+ nvvm_f2ull_rm_ftz, // llvm.nvvm.f2ull.rm.ftz
+ nvvm_f2ull_rn, // llvm.nvvm.f2ull.rn
+ nvvm_f2ull_rn_ftz, // llvm.nvvm.f2ull.rn.ftz
+ nvvm_f2ull_rp, // llvm.nvvm.f2ull.rp
+ nvvm_f2ull_rp_ftz, // llvm.nvvm.f2ull.rp.ftz
+ nvvm_f2ull_rz, // llvm.nvvm.f2ull.rz
+ nvvm_f2ull_rz_ftz, // llvm.nvvm.f2ull.rz.ftz
+ nvvm_fabs_d, // llvm.nvvm.fabs.d
+ nvvm_fabs_f, // llvm.nvvm.fabs.f
+ nvvm_fabs_ftz_f, // llvm.nvvm.fabs.ftz.f
+ nvvm_floor_d, // llvm.nvvm.floor.d
+ nvvm_floor_f, // llvm.nvvm.floor.f
+ nvvm_floor_ftz_f, // llvm.nvvm.floor.ftz.f
+ nvvm_fma_rm_d, // llvm.nvvm.fma.rm.d
+ nvvm_fma_rm_f, // llvm.nvvm.fma.rm.f
+ nvvm_fma_rm_ftz_f, // llvm.nvvm.fma.rm.ftz.f
+ nvvm_fma_rn_d, // llvm.nvvm.fma.rn.d
+ nvvm_fma_rn_f, // llvm.nvvm.fma.rn.f
+ nvvm_fma_rn_ftz_f, // llvm.nvvm.fma.rn.ftz.f
+ nvvm_fma_rp_d, // llvm.nvvm.fma.rp.d
+ nvvm_fma_rp_f, // llvm.nvvm.fma.rp.f
+ nvvm_fma_rp_ftz_f, // llvm.nvvm.fma.rp.ftz.f
+ nvvm_fma_rz_d, // llvm.nvvm.fma.rz.d
+ nvvm_fma_rz_f, // llvm.nvvm.fma.rz.f
+ nvvm_fma_rz_ftz_f, // llvm.nvvm.fma.rz.ftz.f
+ nvvm_fmax_d, // llvm.nvvm.fmax.d
+ nvvm_fmax_f, // llvm.nvvm.fmax.f
+ nvvm_fmax_ftz_f, // llvm.nvvm.fmax.ftz.f
+ nvvm_fmin_d, // llvm.nvvm.fmin.d
+ nvvm_fmin_f, // llvm.nvvm.fmin.f
+ nvvm_fmin_ftz_f, // llvm.nvvm.fmin.ftz.f
+ nvvm_h2f, // llvm.nvvm.h2f
+ nvvm_i2d_rm, // llvm.nvvm.i2d.rm
+ nvvm_i2d_rn, // llvm.nvvm.i2d.rn
+ nvvm_i2d_rp, // llvm.nvvm.i2d.rp
+ nvvm_i2d_rz, // llvm.nvvm.i2d.rz
+ nvvm_i2f_rm, // llvm.nvvm.i2f.rm
+ nvvm_i2f_rn, // llvm.nvvm.i2f.rn
+ nvvm_i2f_rp, // llvm.nvvm.i2f.rp
+ nvvm_i2f_rz, // llvm.nvvm.i2f.rz
+ nvvm_isspacep_const, // llvm.nvvm.isspacep.const
+ nvvm_isspacep_global, // llvm.nvvm.isspacep.global
+ nvvm_isspacep_local, // llvm.nvvm.isspacep.local
+ nvvm_isspacep_shared, // llvm.nvvm.isspacep.shared
+ nvvm_istypep_sampler, // llvm.nvvm.istypep.sampler
+ nvvm_istypep_surface, // llvm.nvvm.istypep.surface
+ nvvm_istypep_texture, // llvm.nvvm.istypep.texture
+ nvvm_ldg_global_f, // llvm.nvvm.ldg.global.f
+ nvvm_ldg_global_i, // llvm.nvvm.ldg.global.i
+ nvvm_ldg_global_p, // llvm.nvvm.ldg.global.p
+ nvvm_ldu_global_f, // llvm.nvvm.ldu.global.f
+ nvvm_ldu_global_i, // llvm.nvvm.ldu.global.i
+ nvvm_ldu_global_p, // llvm.nvvm.ldu.global.p
+ nvvm_lg2_approx_d, // llvm.nvvm.lg2.approx.d
+ nvvm_lg2_approx_f, // llvm.nvvm.lg2.approx.f
+ nvvm_lg2_approx_ftz_f, // llvm.nvvm.lg2.approx.ftz.f
+ nvvm_ll2d_rm, // llvm.nvvm.ll2d.rm
+ nvvm_ll2d_rn, // llvm.nvvm.ll2d.rn
+ nvvm_ll2d_rp, // llvm.nvvm.ll2d.rp
+ nvvm_ll2d_rz, // llvm.nvvm.ll2d.rz
+ nvvm_ll2f_rm, // llvm.nvvm.ll2f.rm
+ nvvm_ll2f_rn, // llvm.nvvm.ll2f.rn
+ nvvm_ll2f_rp, // llvm.nvvm.ll2f.rp
+ nvvm_ll2f_rz, // llvm.nvvm.ll2f.rz
+ nvvm_lohi_i2d, // llvm.nvvm.lohi.i2d
+ nvvm_max_i, // llvm.nvvm.max.i
+ nvvm_max_ll, // llvm.nvvm.max.ll
+ nvvm_max_ui, // llvm.nvvm.max.ui
+ nvvm_max_ull, // llvm.nvvm.max.ull
+ nvvm_membar_cta, // llvm.nvvm.membar.cta
+ nvvm_membar_gl, // llvm.nvvm.membar.gl
+ nvvm_membar_sys, // llvm.nvvm.membar.sys
+ nvvm_min_i, // llvm.nvvm.min.i
+ nvvm_min_ll, // llvm.nvvm.min.ll
+ nvvm_min_ui, // llvm.nvvm.min.ui
+ nvvm_min_ull, // llvm.nvvm.min.ull
+ nvvm_move_double, // llvm.nvvm.move.double
+ nvvm_move_float, // llvm.nvvm.move.float
+ nvvm_move_i16, // llvm.nvvm.move.i16
+ nvvm_move_i32, // llvm.nvvm.move.i32
+ nvvm_move_i64, // llvm.nvvm.move.i64
+ nvvm_move_ptr, // llvm.nvvm.move.ptr
+ nvvm_mul24_i, // llvm.nvvm.mul24.i
+ nvvm_mul24_ui, // llvm.nvvm.mul24.ui
+ nvvm_mul_rm_d, // llvm.nvvm.mul.rm.d
+ nvvm_mul_rm_f, // llvm.nvvm.mul.rm.f
+ nvvm_mul_rm_ftz_f, // llvm.nvvm.mul.rm.ftz.f
+ nvvm_mul_rn_d, // llvm.nvvm.mul.rn.d
+ nvvm_mul_rn_f, // llvm.nvvm.mul.rn.f
+ nvvm_mul_rn_ftz_f, // llvm.nvvm.mul.rn.ftz.f
+ nvvm_mul_rp_d, // llvm.nvvm.mul.rp.d
+ nvvm_mul_rp_f, // llvm.nvvm.mul.rp.f
+ nvvm_mul_rp_ftz_f, // llvm.nvvm.mul.rp.ftz.f
+ nvvm_mul_rz_d, // llvm.nvvm.mul.rz.d
+ nvvm_mul_rz_f, // llvm.nvvm.mul.rz.f
+ nvvm_mul_rz_ftz_f, // llvm.nvvm.mul.rz.ftz.f
+ nvvm_mulhi_i, // llvm.nvvm.mulhi.i
+ nvvm_mulhi_ll, // llvm.nvvm.mulhi.ll
+ nvvm_mulhi_ui, // llvm.nvvm.mulhi.ui
+ nvvm_mulhi_ull, // llvm.nvvm.mulhi.ull
+ nvvm_popc_i, // llvm.nvvm.popc.i
+ nvvm_popc_ll, // llvm.nvvm.popc.ll
+ nvvm_prmt, // llvm.nvvm.prmt
+ nvvm_ptr_constant_to_gen, // llvm.nvvm.ptr.constant.to.gen
+ nvvm_ptr_gen_to_constant, // llvm.nvvm.ptr.gen.to.constant
+ nvvm_ptr_gen_to_global, // llvm.nvvm.ptr.gen.to.global
+ nvvm_ptr_gen_to_local, // llvm.nvvm.ptr.gen.to.local
+ nvvm_ptr_gen_to_param, // llvm.nvvm.ptr.gen.to.param
+ nvvm_ptr_gen_to_shared, // llvm.nvvm.ptr.gen.to.shared
+ nvvm_ptr_global_to_gen, // llvm.nvvm.ptr.global.to.gen
+ nvvm_ptr_local_to_gen, // llvm.nvvm.ptr.local.to.gen
+ nvvm_ptr_shared_to_gen, // llvm.nvvm.ptr.shared.to.gen
+ nvvm_rcp_approx_ftz_d, // llvm.nvvm.rcp.approx.ftz.d
+ nvvm_rcp_rm_d, // llvm.nvvm.rcp.rm.d
+ nvvm_rcp_rm_f, // llvm.nvvm.rcp.rm.f
+ nvvm_rcp_rm_ftz_f, // llvm.nvvm.rcp.rm.ftz.f
+ nvvm_rcp_rn_d, // llvm.nvvm.rcp.rn.d
+ nvvm_rcp_rn_f, // llvm.nvvm.rcp.rn.f
+ nvvm_rcp_rn_ftz_f, // llvm.nvvm.rcp.rn.ftz.f
+ nvvm_rcp_rp_d, // llvm.nvvm.rcp.rp.d
+ nvvm_rcp_rp_f, // llvm.nvvm.rcp.rp.f
+ nvvm_rcp_rp_ftz_f, // llvm.nvvm.rcp.rp.ftz.f
+ nvvm_rcp_rz_d, // llvm.nvvm.rcp.rz.d
+ nvvm_rcp_rz_f, // llvm.nvvm.rcp.rz.f
+ nvvm_rcp_rz_ftz_f, // llvm.nvvm.rcp.rz.ftz.f
+ nvvm_read_ptx_sreg_ctaid_x, // llvm.nvvm.read.ptx.sreg.ctaid.x
+ nvvm_read_ptx_sreg_ctaid_y, // llvm.nvvm.read.ptx.sreg.ctaid.y
+ nvvm_read_ptx_sreg_ctaid_z, // llvm.nvvm.read.ptx.sreg.ctaid.z
+ nvvm_read_ptx_sreg_envreg0, // llvm.nvvm.read.ptx.sreg.envreg0
+ nvvm_read_ptx_sreg_envreg1, // llvm.nvvm.read.ptx.sreg.envreg1
+ nvvm_read_ptx_sreg_envreg10, // llvm.nvvm.read.ptx.sreg.envreg10
+ nvvm_read_ptx_sreg_envreg11, // llvm.nvvm.read.ptx.sreg.envreg11
+ nvvm_read_ptx_sreg_envreg12, // llvm.nvvm.read.ptx.sreg.envreg12
+ nvvm_read_ptx_sreg_envreg13, // llvm.nvvm.read.ptx.sreg.envreg13
+ nvvm_read_ptx_sreg_envreg14, // llvm.nvvm.read.ptx.sreg.envreg14
+ nvvm_read_ptx_sreg_envreg15, // llvm.nvvm.read.ptx.sreg.envreg15
+ nvvm_read_ptx_sreg_envreg16, // llvm.nvvm.read.ptx.sreg.envreg16
+ nvvm_read_ptx_sreg_envreg17, // llvm.nvvm.read.ptx.sreg.envreg17
+ nvvm_read_ptx_sreg_envreg18, // llvm.nvvm.read.ptx.sreg.envreg18
+ nvvm_read_ptx_sreg_envreg19, // llvm.nvvm.read.ptx.sreg.envreg19
+ nvvm_read_ptx_sreg_envreg2, // llvm.nvvm.read.ptx.sreg.envreg2
+ nvvm_read_ptx_sreg_envreg20, // llvm.nvvm.read.ptx.sreg.envreg20
+ nvvm_read_ptx_sreg_envreg21, // llvm.nvvm.read.ptx.sreg.envreg21
+ nvvm_read_ptx_sreg_envreg22, // llvm.nvvm.read.ptx.sreg.envreg22
+ nvvm_read_ptx_sreg_envreg23, // llvm.nvvm.read.ptx.sreg.envreg23
+ nvvm_read_ptx_sreg_envreg24, // llvm.nvvm.read.ptx.sreg.envreg24
+ nvvm_read_ptx_sreg_envreg25, // llvm.nvvm.read.ptx.sreg.envreg25
+ nvvm_read_ptx_sreg_envreg26, // llvm.nvvm.read.ptx.sreg.envreg26
+ nvvm_read_ptx_sreg_envreg27, // llvm.nvvm.read.ptx.sreg.envreg27
+ nvvm_read_ptx_sreg_envreg28, // llvm.nvvm.read.ptx.sreg.envreg28
+ nvvm_read_ptx_sreg_envreg29, // llvm.nvvm.read.ptx.sreg.envreg29
+ nvvm_read_ptx_sreg_envreg3, // llvm.nvvm.read.ptx.sreg.envreg3
+ nvvm_read_ptx_sreg_envreg30, // llvm.nvvm.read.ptx.sreg.envreg30
+ nvvm_read_ptx_sreg_envreg31, // llvm.nvvm.read.ptx.sreg.envreg31
+ nvvm_read_ptx_sreg_envreg4, // llvm.nvvm.read.ptx.sreg.envreg4
+ nvvm_read_ptx_sreg_envreg5, // llvm.nvvm.read.ptx.sreg.envreg5
+ nvvm_read_ptx_sreg_envreg6, // llvm.nvvm.read.ptx.sreg.envreg6
+ nvvm_read_ptx_sreg_envreg7, // llvm.nvvm.read.ptx.sreg.envreg7
+ nvvm_read_ptx_sreg_envreg8, // llvm.nvvm.read.ptx.sreg.envreg8
+ nvvm_read_ptx_sreg_envreg9, // llvm.nvvm.read.ptx.sreg.envreg9
+ nvvm_read_ptx_sreg_nctaid_x, // llvm.nvvm.read.ptx.sreg.nctaid.x
+ nvvm_read_ptx_sreg_nctaid_y, // llvm.nvvm.read.ptx.sreg.nctaid.y
+ nvvm_read_ptx_sreg_nctaid_z, // llvm.nvvm.read.ptx.sreg.nctaid.z
+ nvvm_read_ptx_sreg_ntid_x, // llvm.nvvm.read.ptx.sreg.ntid.x
+ nvvm_read_ptx_sreg_ntid_y, // llvm.nvvm.read.ptx.sreg.ntid.y
+ nvvm_read_ptx_sreg_ntid_z, // llvm.nvvm.read.ptx.sreg.ntid.z
+ nvvm_read_ptx_sreg_tid_x, // llvm.nvvm.read.ptx.sreg.tid.x
+ nvvm_read_ptx_sreg_tid_y, // llvm.nvvm.read.ptx.sreg.tid.y
+ nvvm_read_ptx_sreg_tid_z, // llvm.nvvm.read.ptx.sreg.tid.z
+ nvvm_read_ptx_sreg_warpsize, // llvm.nvvm.read.ptx.sreg.warpsize
+ nvvm_reflect, // llvm.nvvm.reflect
+ nvvm_rotate_b32, // llvm.nvvm.rotate.b32
+ nvvm_rotate_b64, // llvm.nvvm.rotate.b64
+ nvvm_rotate_right_b64, // llvm.nvvm.rotate.right.b64
+ nvvm_round_d, // llvm.nvvm.round.d
+ nvvm_round_f, // llvm.nvvm.round.f
+ nvvm_round_ftz_f, // llvm.nvvm.round.ftz.f
+ nvvm_rsqrt_approx_d, // llvm.nvvm.rsqrt.approx.d
+ nvvm_rsqrt_approx_f, // llvm.nvvm.rsqrt.approx.f
+ nvvm_rsqrt_approx_ftz_f, // llvm.nvvm.rsqrt.approx.ftz.f
+ nvvm_sad_i, // llvm.nvvm.sad.i
+ nvvm_sad_ui, // llvm.nvvm.sad.ui
+ nvvm_saturate_d, // llvm.nvvm.saturate.d
+ nvvm_saturate_f, // llvm.nvvm.saturate.f
+ nvvm_saturate_ftz_f, // llvm.nvvm.saturate.ftz.f
+ nvvm_sin_approx_f, // llvm.nvvm.sin.approx.f
+ nvvm_sin_approx_ftz_f, // llvm.nvvm.sin.approx.ftz.f
+ nvvm_sqrt_approx_f, // llvm.nvvm.sqrt.approx.f
+ nvvm_sqrt_approx_ftz_f, // llvm.nvvm.sqrt.approx.ftz.f
+ nvvm_sqrt_f, // llvm.nvvm.sqrt.f
+ nvvm_sqrt_rm_d, // llvm.nvvm.sqrt.rm.d
+ nvvm_sqrt_rm_f, // llvm.nvvm.sqrt.rm.f
+ nvvm_sqrt_rm_ftz_f, // llvm.nvvm.sqrt.rm.ftz.f
+ nvvm_sqrt_rn_d, // llvm.nvvm.sqrt.rn.d
+ nvvm_sqrt_rn_f, // llvm.nvvm.sqrt.rn.f
+ nvvm_sqrt_rn_ftz_f, // llvm.nvvm.sqrt.rn.ftz.f
+ nvvm_sqrt_rp_d, // llvm.nvvm.sqrt.rp.d
+ nvvm_sqrt_rp_f, // llvm.nvvm.sqrt.rp.f
+ nvvm_sqrt_rp_ftz_f, // llvm.nvvm.sqrt.rp.ftz.f
+ nvvm_sqrt_rz_d, // llvm.nvvm.sqrt.rz.d
+ nvvm_sqrt_rz_f, // llvm.nvvm.sqrt.rz.f
+ nvvm_sqrt_rz_ftz_f, // llvm.nvvm.sqrt.rz.ftz.f
+ nvvm_suld_1d_array_i16_clamp, // llvm.nvvm.suld.1d.array.i16.clamp
+ nvvm_suld_1d_array_i16_trap, // llvm.nvvm.suld.1d.array.i16.trap
+ nvvm_suld_1d_array_i16_zero, // llvm.nvvm.suld.1d.array.i16.zero
+ nvvm_suld_1d_array_i32_clamp, // llvm.nvvm.suld.1d.array.i32.clamp
+ nvvm_suld_1d_array_i32_trap, // llvm.nvvm.suld.1d.array.i32.trap
+ nvvm_suld_1d_array_i32_zero, // llvm.nvvm.suld.1d.array.i32.zero
+ nvvm_suld_1d_array_i64_clamp, // llvm.nvvm.suld.1d.array.i64.clamp
+ nvvm_suld_1d_array_i64_trap, // llvm.nvvm.suld.1d.array.i64.trap
+ nvvm_suld_1d_array_i64_zero, // llvm.nvvm.suld.1d.array.i64.zero
+ nvvm_suld_1d_array_i8_clamp, // llvm.nvvm.suld.1d.array.i8.clamp
+ nvvm_suld_1d_array_i8_trap, // llvm.nvvm.suld.1d.array.i8.trap
+ nvvm_suld_1d_array_i8_zero, // llvm.nvvm.suld.1d.array.i8.zero
+ nvvm_suld_1d_array_v2i16_clamp, // llvm.nvvm.suld.1d.array.v2i16.clamp
+ nvvm_suld_1d_array_v2i16_trap, // llvm.nvvm.suld.1d.array.v2i16.trap
+ nvvm_suld_1d_array_v2i16_zero, // llvm.nvvm.suld.1d.array.v2i16.zero
+ nvvm_suld_1d_array_v2i32_clamp, // llvm.nvvm.suld.1d.array.v2i32.clamp
+ nvvm_suld_1d_array_v2i32_trap, // llvm.nvvm.suld.1d.array.v2i32.trap
+ nvvm_suld_1d_array_v2i32_zero, // llvm.nvvm.suld.1d.array.v2i32.zero
+ nvvm_suld_1d_array_v2i64_clamp, // llvm.nvvm.suld.1d.array.v2i64.clamp
+ nvvm_suld_1d_array_v2i64_trap, // llvm.nvvm.suld.1d.array.v2i64.trap
+ nvvm_suld_1d_array_v2i64_zero, // llvm.nvvm.suld.1d.array.v2i64.zero
+ nvvm_suld_1d_array_v2i8_clamp, // llvm.nvvm.suld.1d.array.v2i8.clamp
+ nvvm_suld_1d_array_v2i8_trap, // llvm.nvvm.suld.1d.array.v2i8.trap
+ nvvm_suld_1d_array_v2i8_zero, // llvm.nvvm.suld.1d.array.v2i8.zero
+ nvvm_suld_1d_array_v4i16_clamp, // llvm.nvvm.suld.1d.array.v4i16.clamp
+ nvvm_suld_1d_array_v4i16_trap, // llvm.nvvm.suld.1d.array.v4i16.trap
+ nvvm_suld_1d_array_v4i16_zero, // llvm.nvvm.suld.1d.array.v4i16.zero
+ nvvm_suld_1d_array_v4i32_clamp, // llvm.nvvm.suld.1d.array.v4i32.clamp
+ nvvm_suld_1d_array_v4i32_trap, // llvm.nvvm.suld.1d.array.v4i32.trap
+ nvvm_suld_1d_array_v4i32_zero, // llvm.nvvm.suld.1d.array.v4i32.zero
+ nvvm_suld_1d_array_v4i8_clamp, // llvm.nvvm.suld.1d.array.v4i8.clamp
+ nvvm_suld_1d_array_v4i8_trap, // llvm.nvvm.suld.1d.array.v4i8.trap
+ nvvm_suld_1d_array_v4i8_zero, // llvm.nvvm.suld.1d.array.v4i8.zero
+ nvvm_suld_1d_i16_clamp, // llvm.nvvm.suld.1d.i16.clamp
+ nvvm_suld_1d_i16_trap, // llvm.nvvm.suld.1d.i16.trap
+ nvvm_suld_1d_i16_zero, // llvm.nvvm.suld.1d.i16.zero
+ nvvm_suld_1d_i32_clamp, // llvm.nvvm.suld.1d.i32.clamp
+ nvvm_suld_1d_i32_trap, // llvm.nvvm.suld.1d.i32.trap
+ nvvm_suld_1d_i32_zero, // llvm.nvvm.suld.1d.i32.zero
+ nvvm_suld_1d_i64_clamp, // llvm.nvvm.suld.1d.i64.clamp
+ nvvm_suld_1d_i64_trap, // llvm.nvvm.suld.1d.i64.trap
+ nvvm_suld_1d_i64_zero, // llvm.nvvm.suld.1d.i64.zero
+ nvvm_suld_1d_i8_clamp, // llvm.nvvm.suld.1d.i8.clamp
+ nvvm_suld_1d_i8_trap, // llvm.nvvm.suld.1d.i8.trap
+ nvvm_suld_1d_i8_zero, // llvm.nvvm.suld.1d.i8.zero
+ nvvm_suld_1d_v2i16_clamp, // llvm.nvvm.suld.1d.v2i16.clamp
+ nvvm_suld_1d_v2i16_trap, // llvm.nvvm.suld.1d.v2i16.trap
+ nvvm_suld_1d_v2i16_zero, // llvm.nvvm.suld.1d.v2i16.zero
+ nvvm_suld_1d_v2i32_clamp, // llvm.nvvm.suld.1d.v2i32.clamp
+ nvvm_suld_1d_v2i32_trap, // llvm.nvvm.suld.1d.v2i32.trap
+ nvvm_suld_1d_v2i32_zero, // llvm.nvvm.suld.1d.v2i32.zero
+ nvvm_suld_1d_v2i64_clamp, // llvm.nvvm.suld.1d.v2i64.clamp
+ nvvm_suld_1d_v2i64_trap, // llvm.nvvm.suld.1d.v2i64.trap
+ nvvm_suld_1d_v2i64_zero, // llvm.nvvm.suld.1d.v2i64.zero
+ nvvm_suld_1d_v2i8_clamp, // llvm.nvvm.suld.1d.v2i8.clamp
+ nvvm_suld_1d_v2i8_trap, // llvm.nvvm.suld.1d.v2i8.trap
+ nvvm_suld_1d_v2i8_zero, // llvm.nvvm.suld.1d.v2i8.zero
+ nvvm_suld_1d_v4i16_clamp, // llvm.nvvm.suld.1d.v4i16.clamp
+ nvvm_suld_1d_v4i16_trap, // llvm.nvvm.suld.1d.v4i16.trap
+ nvvm_suld_1d_v4i16_zero, // llvm.nvvm.suld.1d.v4i16.zero
+ nvvm_suld_1d_v4i32_clamp, // llvm.nvvm.suld.1d.v4i32.clamp
+ nvvm_suld_1d_v4i32_trap, // llvm.nvvm.suld.1d.v4i32.trap
+ nvvm_suld_1d_v4i32_zero, // llvm.nvvm.suld.1d.v4i32.zero
+ nvvm_suld_1d_v4i8_clamp, // llvm.nvvm.suld.1d.v4i8.clamp
+ nvvm_suld_1d_v4i8_trap, // llvm.nvvm.suld.1d.v4i8.trap
+ nvvm_suld_1d_v4i8_zero, // llvm.nvvm.suld.1d.v4i8.zero
+ nvvm_suld_2d_array_i16_clamp, // llvm.nvvm.suld.2d.array.i16.clamp
+ nvvm_suld_2d_array_i16_trap, // llvm.nvvm.suld.2d.array.i16.trap
+ nvvm_suld_2d_array_i16_zero, // llvm.nvvm.suld.2d.array.i16.zero
+ nvvm_suld_2d_array_i32_clamp, // llvm.nvvm.suld.2d.array.i32.clamp
+ nvvm_suld_2d_array_i32_trap, // llvm.nvvm.suld.2d.array.i32.trap
+ nvvm_suld_2d_array_i32_zero, // llvm.nvvm.suld.2d.array.i32.zero
+ nvvm_suld_2d_array_i64_clamp, // llvm.nvvm.suld.2d.array.i64.clamp
+ nvvm_suld_2d_array_i64_trap, // llvm.nvvm.suld.2d.array.i64.trap
+ nvvm_suld_2d_array_i64_zero, // llvm.nvvm.suld.2d.array.i64.zero
+ nvvm_suld_2d_array_i8_clamp, // llvm.nvvm.suld.2d.array.i8.clamp
+ nvvm_suld_2d_array_i8_trap, // llvm.nvvm.suld.2d.array.i8.trap
+ nvvm_suld_2d_array_i8_zero, // llvm.nvvm.suld.2d.array.i8.zero
+ nvvm_suld_2d_array_v2i16_clamp, // llvm.nvvm.suld.2d.array.v2i16.clamp
+ nvvm_suld_2d_array_v2i16_trap, // llvm.nvvm.suld.2d.array.v2i16.trap
+ nvvm_suld_2d_array_v2i16_zero, // llvm.nvvm.suld.2d.array.v2i16.zero
+ nvvm_suld_2d_array_v2i32_clamp, // llvm.nvvm.suld.2d.array.v2i32.clamp
+ nvvm_suld_2d_array_v2i32_trap, // llvm.nvvm.suld.2d.array.v2i32.trap
+ nvvm_suld_2d_array_v2i32_zero, // llvm.nvvm.suld.2d.array.v2i32.zero
+ nvvm_suld_2d_array_v2i64_clamp, // llvm.nvvm.suld.2d.array.v2i64.clamp
+ nvvm_suld_2d_array_v2i64_trap, // llvm.nvvm.suld.2d.array.v2i64.trap
+ nvvm_suld_2d_array_v2i64_zero, // llvm.nvvm.suld.2d.array.v2i64.zero
+ nvvm_suld_2d_array_v2i8_clamp, // llvm.nvvm.suld.2d.array.v2i8.clamp
+ nvvm_suld_2d_array_v2i8_trap, // llvm.nvvm.suld.2d.array.v2i8.trap
+ nvvm_suld_2d_array_v2i8_zero, // llvm.nvvm.suld.2d.array.v2i8.zero
+ nvvm_suld_2d_array_v4i16_clamp, // llvm.nvvm.suld.2d.array.v4i16.clamp
+ nvvm_suld_2d_array_v4i16_trap, // llvm.nvvm.suld.2d.array.v4i16.trap
+ nvvm_suld_2d_array_v4i16_zero, // llvm.nvvm.suld.2d.array.v4i16.zero
+ nvvm_suld_2d_array_v4i32_clamp, // llvm.nvvm.suld.2d.array.v4i32.clamp
+ nvvm_suld_2d_array_v4i32_trap, // llvm.nvvm.suld.2d.array.v4i32.trap
+ nvvm_suld_2d_array_v4i32_zero, // llvm.nvvm.suld.2d.array.v4i32.zero
+ nvvm_suld_2d_array_v4i8_clamp, // llvm.nvvm.suld.2d.array.v4i8.clamp
+ nvvm_suld_2d_array_v4i8_trap, // llvm.nvvm.suld.2d.array.v4i8.trap
+ nvvm_suld_2d_array_v4i8_zero, // llvm.nvvm.suld.2d.array.v4i8.zero
+ nvvm_suld_2d_i16_clamp, // llvm.nvvm.suld.2d.i16.clamp
+ nvvm_suld_2d_i16_trap, // llvm.nvvm.suld.2d.i16.trap
+ nvvm_suld_2d_i16_zero, // llvm.nvvm.suld.2d.i16.zero
+ nvvm_suld_2d_i32_clamp, // llvm.nvvm.suld.2d.i32.clamp
+ nvvm_suld_2d_i32_trap, // llvm.nvvm.suld.2d.i32.trap
+ nvvm_suld_2d_i32_zero, // llvm.nvvm.suld.2d.i32.zero
+ nvvm_suld_2d_i64_clamp, // llvm.nvvm.suld.2d.i64.clamp
+ nvvm_suld_2d_i64_trap, // llvm.nvvm.suld.2d.i64.trap
+ nvvm_suld_2d_i64_zero, // llvm.nvvm.suld.2d.i64.zero
+ nvvm_suld_2d_i8_clamp, // llvm.nvvm.suld.2d.i8.clamp
+ nvvm_suld_2d_i8_trap, // llvm.nvvm.suld.2d.i8.trap
+ nvvm_suld_2d_i8_zero, // llvm.nvvm.suld.2d.i8.zero
+ nvvm_suld_2d_v2i16_clamp, // llvm.nvvm.suld.2d.v2i16.clamp
+ nvvm_suld_2d_v2i16_trap, // llvm.nvvm.suld.2d.v2i16.trap
+ nvvm_suld_2d_v2i16_zero, // llvm.nvvm.suld.2d.v2i16.zero
+ nvvm_suld_2d_v2i32_clamp, // llvm.nvvm.suld.2d.v2i32.clamp
+ nvvm_suld_2d_v2i32_trap, // llvm.nvvm.suld.2d.v2i32.trap
+ nvvm_suld_2d_v2i32_zero, // llvm.nvvm.suld.2d.v2i32.zero
+ nvvm_suld_2d_v2i64_clamp, // llvm.nvvm.suld.2d.v2i64.clamp
+ nvvm_suld_2d_v2i64_trap, // llvm.nvvm.suld.2d.v2i64.trap
+ nvvm_suld_2d_v2i64_zero, // llvm.nvvm.suld.2d.v2i64.zero
+ nvvm_suld_2d_v2i8_clamp, // llvm.nvvm.suld.2d.v2i8.clamp
+ nvvm_suld_2d_v2i8_trap, // llvm.nvvm.suld.2d.v2i8.trap
+ nvvm_suld_2d_v2i8_zero, // llvm.nvvm.suld.2d.v2i8.zero
+ nvvm_suld_2d_v4i16_clamp, // llvm.nvvm.suld.2d.v4i16.clamp
+ nvvm_suld_2d_v4i16_trap, // llvm.nvvm.suld.2d.v4i16.trap
+ nvvm_suld_2d_v4i16_zero, // llvm.nvvm.suld.2d.v4i16.zero
+ nvvm_suld_2d_v4i32_clamp, // llvm.nvvm.suld.2d.v4i32.clamp
+ nvvm_suld_2d_v4i32_trap, // llvm.nvvm.suld.2d.v4i32.trap
+ nvvm_suld_2d_v4i32_zero, // llvm.nvvm.suld.2d.v4i32.zero
+ nvvm_suld_2d_v4i8_clamp, // llvm.nvvm.suld.2d.v4i8.clamp
+ nvvm_suld_2d_v4i8_trap, // llvm.nvvm.suld.2d.v4i8.trap
+ nvvm_suld_2d_v4i8_zero, // llvm.nvvm.suld.2d.v4i8.zero
+ nvvm_suld_3d_i16_clamp, // llvm.nvvm.suld.3d.i16.clamp
+ nvvm_suld_3d_i16_trap, // llvm.nvvm.suld.3d.i16.trap
+ nvvm_suld_3d_i16_zero, // llvm.nvvm.suld.3d.i16.zero
+ nvvm_suld_3d_i32_clamp, // llvm.nvvm.suld.3d.i32.clamp
+ nvvm_suld_3d_i32_trap, // llvm.nvvm.suld.3d.i32.trap
+ nvvm_suld_3d_i32_zero, // llvm.nvvm.suld.3d.i32.zero
+ nvvm_suld_3d_i64_clamp, // llvm.nvvm.suld.3d.i64.clamp
+ nvvm_suld_3d_i64_trap, // llvm.nvvm.suld.3d.i64.trap
+ nvvm_suld_3d_i64_zero, // llvm.nvvm.suld.3d.i64.zero
+ nvvm_suld_3d_i8_clamp, // llvm.nvvm.suld.3d.i8.clamp
+ nvvm_suld_3d_i8_trap, // llvm.nvvm.suld.3d.i8.trap
+ nvvm_suld_3d_i8_zero, // llvm.nvvm.suld.3d.i8.zero
+ nvvm_suld_3d_v2i16_clamp, // llvm.nvvm.suld.3d.v2i16.clamp
+ nvvm_suld_3d_v2i16_trap, // llvm.nvvm.suld.3d.v2i16.trap
+ nvvm_suld_3d_v2i16_zero, // llvm.nvvm.suld.3d.v2i16.zero
+ nvvm_suld_3d_v2i32_clamp, // llvm.nvvm.suld.3d.v2i32.clamp
+ nvvm_suld_3d_v2i32_trap, // llvm.nvvm.suld.3d.v2i32.trap
+ nvvm_suld_3d_v2i32_zero, // llvm.nvvm.suld.3d.v2i32.zero
+ nvvm_suld_3d_v2i64_clamp, // llvm.nvvm.suld.3d.v2i64.clamp
+ nvvm_suld_3d_v2i64_trap, // llvm.nvvm.suld.3d.v2i64.trap
+ nvvm_suld_3d_v2i64_zero, // llvm.nvvm.suld.3d.v2i64.zero
+ nvvm_suld_3d_v2i8_clamp, // llvm.nvvm.suld.3d.v2i8.clamp
+ nvvm_suld_3d_v2i8_trap, // llvm.nvvm.suld.3d.v2i8.trap
+ nvvm_suld_3d_v2i8_zero, // llvm.nvvm.suld.3d.v2i8.zero
+ nvvm_suld_3d_v4i16_clamp, // llvm.nvvm.suld.3d.v4i16.clamp
+ nvvm_suld_3d_v4i16_trap, // llvm.nvvm.suld.3d.v4i16.trap
+ nvvm_suld_3d_v4i16_zero, // llvm.nvvm.suld.3d.v4i16.zero
+ nvvm_suld_3d_v4i32_clamp, // llvm.nvvm.suld.3d.v4i32.clamp
+ nvvm_suld_3d_v4i32_trap, // llvm.nvvm.suld.3d.v4i32.trap
+ nvvm_suld_3d_v4i32_zero, // llvm.nvvm.suld.3d.v4i32.zero
+ nvvm_suld_3d_v4i8_clamp, // llvm.nvvm.suld.3d.v4i8.clamp
+ nvvm_suld_3d_v4i8_trap, // llvm.nvvm.suld.3d.v4i8.trap
+ nvvm_suld_3d_v4i8_zero, // llvm.nvvm.suld.3d.v4i8.zero
+ nvvm_suq_array_size, // llvm.nvvm.suq.array.size
+ nvvm_suq_channel_data_type, // llvm.nvvm.suq.channel.data.type
+ nvvm_suq_channel_order, // llvm.nvvm.suq.channel.order
+ nvvm_suq_depth, // llvm.nvvm.suq.depth
+ nvvm_suq_height, // llvm.nvvm.suq.height
+ nvvm_suq_width, // llvm.nvvm.suq.width
+ nvvm_sust_b_1d_array_i16_clamp, // llvm.nvvm.sust.b.1d.array.i16.clamp
+ nvvm_sust_b_1d_array_i16_trap, // llvm.nvvm.sust.b.1d.array.i16.trap
+ nvvm_sust_b_1d_array_i16_zero, // llvm.nvvm.sust.b.1d.array.i16.zero
+ nvvm_sust_b_1d_array_i32_clamp, // llvm.nvvm.sust.b.1d.array.i32.clamp
+ nvvm_sust_b_1d_array_i32_trap, // llvm.nvvm.sust.b.1d.array.i32.trap
+ nvvm_sust_b_1d_array_i32_zero, // llvm.nvvm.sust.b.1d.array.i32.zero
+ nvvm_sust_b_1d_array_i64_clamp, // llvm.nvvm.sust.b.1d.array.i64.clamp
+ nvvm_sust_b_1d_array_i64_trap, // llvm.nvvm.sust.b.1d.array.i64.trap
+ nvvm_sust_b_1d_array_i64_zero, // llvm.nvvm.sust.b.1d.array.i64.zero
+ nvvm_sust_b_1d_array_i8_clamp, // llvm.nvvm.sust.b.1d.array.i8.clamp
+ nvvm_sust_b_1d_array_i8_trap, // llvm.nvvm.sust.b.1d.array.i8.trap
+ nvvm_sust_b_1d_array_i8_zero, // llvm.nvvm.sust.b.1d.array.i8.zero
+ nvvm_sust_b_1d_array_v2i16_clamp, // llvm.nvvm.sust.b.1d.array.v2i16.clamp
+ nvvm_sust_b_1d_array_v2i16_trap, // llvm.nvvm.sust.b.1d.array.v2i16.trap
+ nvvm_sust_b_1d_array_v2i16_zero, // llvm.nvvm.sust.b.1d.array.v2i16.zero
+ nvvm_sust_b_1d_array_v2i32_clamp, // llvm.nvvm.sust.b.1d.array.v2i32.clamp
+ nvvm_sust_b_1d_array_v2i32_trap, // llvm.nvvm.sust.b.1d.array.v2i32.trap
+ nvvm_sust_b_1d_array_v2i32_zero, // llvm.nvvm.sust.b.1d.array.v2i32.zero
+ nvvm_sust_b_1d_array_v2i64_clamp, // llvm.nvvm.sust.b.1d.array.v2i64.clamp
+ nvvm_sust_b_1d_array_v2i64_trap, // llvm.nvvm.sust.b.1d.array.v2i64.trap
+ nvvm_sust_b_1d_array_v2i64_zero, // llvm.nvvm.sust.b.1d.array.v2i64.zero
+ nvvm_sust_b_1d_array_v2i8_clamp, // llvm.nvvm.sust.b.1d.array.v2i8.clamp
+ nvvm_sust_b_1d_array_v2i8_trap, // llvm.nvvm.sust.b.1d.array.v2i8.trap
+ nvvm_sust_b_1d_array_v2i8_zero, // llvm.nvvm.sust.b.1d.array.v2i8.zero
+ nvvm_sust_b_1d_array_v4i16_clamp, // llvm.nvvm.sust.b.1d.array.v4i16.clamp
+ nvvm_sust_b_1d_array_v4i16_trap, // llvm.nvvm.sust.b.1d.array.v4i16.trap
+ nvvm_sust_b_1d_array_v4i16_zero, // llvm.nvvm.sust.b.1d.array.v4i16.zero
+ nvvm_sust_b_1d_array_v4i32_clamp, // llvm.nvvm.sust.b.1d.array.v4i32.clamp
+ nvvm_sust_b_1d_array_v4i32_trap, // llvm.nvvm.sust.b.1d.array.v4i32.trap
+ nvvm_sust_b_1d_array_v4i32_zero, // llvm.nvvm.sust.b.1d.array.v4i32.zero
+ nvvm_sust_b_1d_array_v4i8_clamp, // llvm.nvvm.sust.b.1d.array.v4i8.clamp
+ nvvm_sust_b_1d_array_v4i8_trap, // llvm.nvvm.sust.b.1d.array.v4i8.trap
+ nvvm_sust_b_1d_array_v4i8_zero, // llvm.nvvm.sust.b.1d.array.v4i8.zero
+ nvvm_sust_b_1d_i16_clamp, // llvm.nvvm.sust.b.1d.i16.clamp
+ nvvm_sust_b_1d_i16_trap, // llvm.nvvm.sust.b.1d.i16.trap
+ nvvm_sust_b_1d_i16_zero, // llvm.nvvm.sust.b.1d.i16.zero
+ nvvm_sust_b_1d_i32_clamp, // llvm.nvvm.sust.b.1d.i32.clamp
+ nvvm_sust_b_1d_i32_trap, // llvm.nvvm.sust.b.1d.i32.trap
+ nvvm_sust_b_1d_i32_zero, // llvm.nvvm.sust.b.1d.i32.zero
+ nvvm_sust_b_1d_i64_clamp, // llvm.nvvm.sust.b.1d.i64.clamp
+ nvvm_sust_b_1d_i64_trap, // llvm.nvvm.sust.b.1d.i64.trap
+ nvvm_sust_b_1d_i64_zero, // llvm.nvvm.sust.b.1d.i64.zero
+ nvvm_sust_b_1d_i8_clamp, // llvm.nvvm.sust.b.1d.i8.clamp
+ nvvm_sust_b_1d_i8_trap, // llvm.nvvm.sust.b.1d.i8.trap
+ nvvm_sust_b_1d_i8_zero, // llvm.nvvm.sust.b.1d.i8.zero
+ nvvm_sust_b_1d_v2i16_clamp, // llvm.nvvm.sust.b.1d.v2i16.clamp
+ nvvm_sust_b_1d_v2i16_trap, // llvm.nvvm.sust.b.1d.v2i16.trap
+ nvvm_sust_b_1d_v2i16_zero, // llvm.nvvm.sust.b.1d.v2i16.zero
+ nvvm_sust_b_1d_v2i32_clamp, // llvm.nvvm.sust.b.1d.v2i32.clamp
+ nvvm_sust_b_1d_v2i32_trap, // llvm.nvvm.sust.b.1d.v2i32.trap
+ nvvm_sust_b_1d_v2i32_zero, // llvm.nvvm.sust.b.1d.v2i32.zero
+ nvvm_sust_b_1d_v2i64_clamp, // llvm.nvvm.sust.b.1d.v2i64.clamp
+ nvvm_sust_b_1d_v2i64_trap, // llvm.nvvm.sust.b.1d.v2i64.trap
+ nvvm_sust_b_1d_v2i64_zero, // llvm.nvvm.sust.b.1d.v2i64.zero
+ nvvm_sust_b_1d_v2i8_clamp, // llvm.nvvm.sust.b.1d.v2i8.clamp
+ nvvm_sust_b_1d_v2i8_trap, // llvm.nvvm.sust.b.1d.v2i8.trap
+ nvvm_sust_b_1d_v2i8_zero, // llvm.nvvm.sust.b.1d.v2i8.zero
+ nvvm_sust_b_1d_v4i16_clamp, // llvm.nvvm.sust.b.1d.v4i16.clamp
+ nvvm_sust_b_1d_v4i16_trap, // llvm.nvvm.sust.b.1d.v4i16.trap
+ nvvm_sust_b_1d_v4i16_zero, // llvm.nvvm.sust.b.1d.v4i16.zero
+ nvvm_sust_b_1d_v4i32_clamp, // llvm.nvvm.sust.b.1d.v4i32.clamp
+ nvvm_sust_b_1d_v4i32_trap, // llvm.nvvm.sust.b.1d.v4i32.trap
+ nvvm_sust_b_1d_v4i32_zero, // llvm.nvvm.sust.b.1d.v4i32.zero
+ nvvm_sust_b_1d_v4i8_clamp, // llvm.nvvm.sust.b.1d.v4i8.clamp
+ nvvm_sust_b_1d_v4i8_trap, // llvm.nvvm.sust.b.1d.v4i8.trap
+ nvvm_sust_b_1d_v4i8_zero, // llvm.nvvm.sust.b.1d.v4i8.zero
+ nvvm_sust_b_2d_array_i16_clamp, // llvm.nvvm.sust.b.2d.array.i16.clamp
+ nvvm_sust_b_2d_array_i16_trap, // llvm.nvvm.sust.b.2d.array.i16.trap
+ nvvm_sust_b_2d_array_i16_zero, // llvm.nvvm.sust.b.2d.array.i16.zero
+ nvvm_sust_b_2d_array_i32_clamp, // llvm.nvvm.sust.b.2d.array.i32.clamp
+ nvvm_sust_b_2d_array_i32_trap, // llvm.nvvm.sust.b.2d.array.i32.trap
+ nvvm_sust_b_2d_array_i32_zero, // llvm.nvvm.sust.b.2d.array.i32.zero
+ nvvm_sust_b_2d_array_i64_clamp, // llvm.nvvm.sust.b.2d.array.i64.clamp
+ nvvm_sust_b_2d_array_i64_trap, // llvm.nvvm.sust.b.2d.array.i64.trap
+ nvvm_sust_b_2d_array_i64_zero, // llvm.nvvm.sust.b.2d.array.i64.zero
+ nvvm_sust_b_2d_array_i8_clamp, // llvm.nvvm.sust.b.2d.array.i8.clamp
+ nvvm_sust_b_2d_array_i8_trap, // llvm.nvvm.sust.b.2d.array.i8.trap
+ nvvm_sust_b_2d_array_i8_zero, // llvm.nvvm.sust.b.2d.array.i8.zero
+ nvvm_sust_b_2d_array_v2i16_clamp, // llvm.nvvm.sust.b.2d.array.v2i16.clamp
+ nvvm_sust_b_2d_array_v2i16_trap, // llvm.nvvm.sust.b.2d.array.v2i16.trap
+ nvvm_sust_b_2d_array_v2i16_zero, // llvm.nvvm.sust.b.2d.array.v2i16.zero
+ nvvm_sust_b_2d_array_v2i32_clamp, // llvm.nvvm.sust.b.2d.array.v2i32.clamp
+ nvvm_sust_b_2d_array_v2i32_trap, // llvm.nvvm.sust.b.2d.array.v2i32.trap
+ nvvm_sust_b_2d_array_v2i32_zero, // llvm.nvvm.sust.b.2d.array.v2i32.zero
+ nvvm_sust_b_2d_array_v2i64_clamp, // llvm.nvvm.sust.b.2d.array.v2i64.clamp
+ nvvm_sust_b_2d_array_v2i64_trap, // llvm.nvvm.sust.b.2d.array.v2i64.trap
+ nvvm_sust_b_2d_array_v2i64_zero, // llvm.nvvm.sust.b.2d.array.v2i64.zero
+ nvvm_sust_b_2d_array_v2i8_clamp, // llvm.nvvm.sust.b.2d.array.v2i8.clamp
+ nvvm_sust_b_2d_array_v2i8_trap, // llvm.nvvm.sust.b.2d.array.v2i8.trap
+ nvvm_sust_b_2d_array_v2i8_zero, // llvm.nvvm.sust.b.2d.array.v2i8.zero
+ nvvm_sust_b_2d_array_v4i16_clamp, // llvm.nvvm.sust.b.2d.array.v4i16.clamp
+ nvvm_sust_b_2d_array_v4i16_trap, // llvm.nvvm.sust.b.2d.array.v4i16.trap
+ nvvm_sust_b_2d_array_v4i16_zero, // llvm.nvvm.sust.b.2d.array.v4i16.zero
+ nvvm_sust_b_2d_array_v4i32_clamp, // llvm.nvvm.sust.b.2d.array.v4i32.clamp
+ nvvm_sust_b_2d_array_v4i32_trap, // llvm.nvvm.sust.b.2d.array.v4i32.trap
+ nvvm_sust_b_2d_array_v4i32_zero, // llvm.nvvm.sust.b.2d.array.v4i32.zero
+ nvvm_sust_b_2d_array_v4i8_clamp, // llvm.nvvm.sust.b.2d.array.v4i8.clamp
+ nvvm_sust_b_2d_array_v4i8_trap, // llvm.nvvm.sust.b.2d.array.v4i8.trap
+ nvvm_sust_b_2d_array_v4i8_zero, // llvm.nvvm.sust.b.2d.array.v4i8.zero
+ nvvm_sust_b_2d_i16_clamp, // llvm.nvvm.sust.b.2d.i16.clamp
+ nvvm_sust_b_2d_i16_trap, // llvm.nvvm.sust.b.2d.i16.trap
+ nvvm_sust_b_2d_i16_zero, // llvm.nvvm.sust.b.2d.i16.zero
+ nvvm_sust_b_2d_i32_clamp, // llvm.nvvm.sust.b.2d.i32.clamp
+ nvvm_sust_b_2d_i32_trap, // llvm.nvvm.sust.b.2d.i32.trap
+ nvvm_sust_b_2d_i32_zero, // llvm.nvvm.sust.b.2d.i32.zero
+ nvvm_sust_b_2d_i64_clamp, // llvm.nvvm.sust.b.2d.i64.clamp
+ nvvm_sust_b_2d_i64_trap, // llvm.nvvm.sust.b.2d.i64.trap
+ nvvm_sust_b_2d_i64_zero, // llvm.nvvm.sust.b.2d.i64.zero
+ nvvm_sust_b_2d_i8_clamp, // llvm.nvvm.sust.b.2d.i8.clamp
+ nvvm_sust_b_2d_i8_trap, // llvm.nvvm.sust.b.2d.i8.trap
+ nvvm_sust_b_2d_i8_zero, // llvm.nvvm.sust.b.2d.i8.zero
+ nvvm_sust_b_2d_v2i16_clamp, // llvm.nvvm.sust.b.2d.v2i16.clamp
+ nvvm_sust_b_2d_v2i16_trap, // llvm.nvvm.sust.b.2d.v2i16.trap
+ nvvm_sust_b_2d_v2i16_zero, // llvm.nvvm.sust.b.2d.v2i16.zero
+ nvvm_sust_b_2d_v2i32_clamp, // llvm.nvvm.sust.b.2d.v2i32.clamp
+ nvvm_sust_b_2d_v2i32_trap, // llvm.nvvm.sust.b.2d.v2i32.trap
+ nvvm_sust_b_2d_v2i32_zero, // llvm.nvvm.sust.b.2d.v2i32.zero
+ nvvm_sust_b_2d_v2i64_clamp, // llvm.nvvm.sust.b.2d.v2i64.clamp
+ nvvm_sust_b_2d_v2i64_trap, // llvm.nvvm.sust.b.2d.v2i64.trap
+ nvvm_sust_b_2d_v2i64_zero, // llvm.nvvm.sust.b.2d.v2i64.zero
+ nvvm_sust_b_2d_v2i8_clamp, // llvm.nvvm.sust.b.2d.v2i8.clamp
+ nvvm_sust_b_2d_v2i8_trap, // llvm.nvvm.sust.b.2d.v2i8.trap
+ nvvm_sust_b_2d_v2i8_zero, // llvm.nvvm.sust.b.2d.v2i8.zero
+ nvvm_sust_b_2d_v4i16_clamp, // llvm.nvvm.sust.b.2d.v4i16.clamp
+ nvvm_sust_b_2d_v4i16_trap, // llvm.nvvm.sust.b.2d.v4i16.trap
+ nvvm_sust_b_2d_v4i16_zero, // llvm.nvvm.sust.b.2d.v4i16.zero
+ nvvm_sust_b_2d_v4i32_clamp, // llvm.nvvm.sust.b.2d.v4i32.clamp
+ nvvm_sust_b_2d_v4i32_trap, // llvm.nvvm.sust.b.2d.v4i32.trap
+ nvvm_sust_b_2d_v4i32_zero, // llvm.nvvm.sust.b.2d.v4i32.zero
+ nvvm_sust_b_2d_v4i8_clamp, // llvm.nvvm.sust.b.2d.v4i8.clamp
+ nvvm_sust_b_2d_v4i8_trap, // llvm.nvvm.sust.b.2d.v4i8.trap
+ nvvm_sust_b_2d_v4i8_zero, // llvm.nvvm.sust.b.2d.v4i8.zero
+ nvvm_sust_b_3d_i16_clamp, // llvm.nvvm.sust.b.3d.i16.clamp
+ nvvm_sust_b_3d_i16_trap, // llvm.nvvm.sust.b.3d.i16.trap
+ nvvm_sust_b_3d_i16_zero, // llvm.nvvm.sust.b.3d.i16.zero
+ nvvm_sust_b_3d_i32_clamp, // llvm.nvvm.sust.b.3d.i32.clamp
+ nvvm_sust_b_3d_i32_trap, // llvm.nvvm.sust.b.3d.i32.trap
+ nvvm_sust_b_3d_i32_zero, // llvm.nvvm.sust.b.3d.i32.zero
+ nvvm_sust_b_3d_i64_clamp, // llvm.nvvm.sust.b.3d.i64.clamp
+ nvvm_sust_b_3d_i64_trap, // llvm.nvvm.sust.b.3d.i64.trap
+ nvvm_sust_b_3d_i64_zero, // llvm.nvvm.sust.b.3d.i64.zero
+ nvvm_sust_b_3d_i8_clamp, // llvm.nvvm.sust.b.3d.i8.clamp
+ nvvm_sust_b_3d_i8_trap, // llvm.nvvm.sust.b.3d.i8.trap
+ nvvm_sust_b_3d_i8_zero, // llvm.nvvm.sust.b.3d.i8.zero
+ nvvm_sust_b_3d_v2i16_clamp, // llvm.nvvm.sust.b.3d.v2i16.clamp
+ nvvm_sust_b_3d_v2i16_trap, // llvm.nvvm.sust.b.3d.v2i16.trap
+ nvvm_sust_b_3d_v2i16_zero, // llvm.nvvm.sust.b.3d.v2i16.zero
+ nvvm_sust_b_3d_v2i32_clamp, // llvm.nvvm.sust.b.3d.v2i32.clamp
+ nvvm_sust_b_3d_v2i32_trap, // llvm.nvvm.sust.b.3d.v2i32.trap
+ nvvm_sust_b_3d_v2i32_zero, // llvm.nvvm.sust.b.3d.v2i32.zero
+ nvvm_sust_b_3d_v2i64_clamp, // llvm.nvvm.sust.b.3d.v2i64.clamp
+ nvvm_sust_b_3d_v2i64_trap, // llvm.nvvm.sust.b.3d.v2i64.trap
+ nvvm_sust_b_3d_v2i64_zero, // llvm.nvvm.sust.b.3d.v2i64.zero
+ nvvm_sust_b_3d_v2i8_clamp, // llvm.nvvm.sust.b.3d.v2i8.clamp
+ nvvm_sust_b_3d_v2i8_trap, // llvm.nvvm.sust.b.3d.v2i8.trap
+ nvvm_sust_b_3d_v2i8_zero, // llvm.nvvm.sust.b.3d.v2i8.zero
+ nvvm_sust_b_3d_v4i16_clamp, // llvm.nvvm.sust.b.3d.v4i16.clamp
+ nvvm_sust_b_3d_v4i16_trap, // llvm.nvvm.sust.b.3d.v4i16.trap
+ nvvm_sust_b_3d_v4i16_zero, // llvm.nvvm.sust.b.3d.v4i16.zero
+ nvvm_sust_b_3d_v4i32_clamp, // llvm.nvvm.sust.b.3d.v4i32.clamp
+ nvvm_sust_b_3d_v4i32_trap, // llvm.nvvm.sust.b.3d.v4i32.trap
+ nvvm_sust_b_3d_v4i32_zero, // llvm.nvvm.sust.b.3d.v4i32.zero
+ nvvm_sust_b_3d_v4i8_clamp, // llvm.nvvm.sust.b.3d.v4i8.clamp
+ nvvm_sust_b_3d_v4i8_trap, // llvm.nvvm.sust.b.3d.v4i8.trap
+ nvvm_sust_b_3d_v4i8_zero, // llvm.nvvm.sust.b.3d.v4i8.zero
+ nvvm_sust_p_1d_array_i16_trap, // llvm.nvvm.sust.p.1d.array.i16.trap
+ nvvm_sust_p_1d_array_i32_trap, // llvm.nvvm.sust.p.1d.array.i32.trap
+ nvvm_sust_p_1d_array_i8_trap, // llvm.nvvm.sust.p.1d.array.i8.trap
+ nvvm_sust_p_1d_array_v2i16_trap, // llvm.nvvm.sust.p.1d.array.v2i16.trap
+ nvvm_sust_p_1d_array_v2i32_trap, // llvm.nvvm.sust.p.1d.array.v2i32.trap
+ nvvm_sust_p_1d_array_v2i8_trap, // llvm.nvvm.sust.p.1d.array.v2i8.trap
+ nvvm_sust_p_1d_array_v4i16_trap, // llvm.nvvm.sust.p.1d.array.v4i16.trap
+ nvvm_sust_p_1d_array_v4i32_trap, // llvm.nvvm.sust.p.1d.array.v4i32.trap
+ nvvm_sust_p_1d_array_v4i8_trap, // llvm.nvvm.sust.p.1d.array.v4i8.trap
+ nvvm_sust_p_1d_i16_trap, // llvm.nvvm.sust.p.1d.i16.trap
+ nvvm_sust_p_1d_i32_trap, // llvm.nvvm.sust.p.1d.i32.trap
+ nvvm_sust_p_1d_i8_trap, // llvm.nvvm.sust.p.1d.i8.trap
+ nvvm_sust_p_1d_v2i16_trap, // llvm.nvvm.sust.p.1d.v2i16.trap
+ nvvm_sust_p_1d_v2i32_trap, // llvm.nvvm.sust.p.1d.v2i32.trap
+ nvvm_sust_p_1d_v2i8_trap, // llvm.nvvm.sust.p.1d.v2i8.trap
+ nvvm_sust_p_1d_v4i16_trap, // llvm.nvvm.sust.p.1d.v4i16.trap
+ nvvm_sust_p_1d_v4i32_trap, // llvm.nvvm.sust.p.1d.v4i32.trap
+ nvvm_sust_p_1d_v4i8_trap, // llvm.nvvm.sust.p.1d.v4i8.trap
+ nvvm_sust_p_2d_array_i16_trap, // llvm.nvvm.sust.p.2d.array.i16.trap
+ nvvm_sust_p_2d_array_i32_trap, // llvm.nvvm.sust.p.2d.array.i32.trap
+ nvvm_sust_p_2d_array_i8_trap, // llvm.nvvm.sust.p.2d.array.i8.trap
+ nvvm_sust_p_2d_array_v2i16_trap, // llvm.nvvm.sust.p.2d.array.v2i16.trap
+ nvvm_sust_p_2d_array_v2i32_trap, // llvm.nvvm.sust.p.2d.array.v2i32.trap
+ nvvm_sust_p_2d_array_v2i8_trap, // llvm.nvvm.sust.p.2d.array.v2i8.trap
+ nvvm_sust_p_2d_array_v4i16_trap, // llvm.nvvm.sust.p.2d.array.v4i16.trap
+ nvvm_sust_p_2d_array_v4i32_trap, // llvm.nvvm.sust.p.2d.array.v4i32.trap
+ nvvm_sust_p_2d_array_v4i8_trap, // llvm.nvvm.sust.p.2d.array.v4i8.trap
+ nvvm_sust_p_2d_i16_trap, // llvm.nvvm.sust.p.2d.i16.trap
+ nvvm_sust_p_2d_i32_trap, // llvm.nvvm.sust.p.2d.i32.trap
+ nvvm_sust_p_2d_i8_trap, // llvm.nvvm.sust.p.2d.i8.trap
+ nvvm_sust_p_2d_v2i16_trap, // llvm.nvvm.sust.p.2d.v2i16.trap
+ nvvm_sust_p_2d_v2i32_trap, // llvm.nvvm.sust.p.2d.v2i32.trap
+ nvvm_sust_p_2d_v2i8_trap, // llvm.nvvm.sust.p.2d.v2i8.trap
+ nvvm_sust_p_2d_v4i16_trap, // llvm.nvvm.sust.p.2d.v4i16.trap
+ nvvm_sust_p_2d_v4i32_trap, // llvm.nvvm.sust.p.2d.v4i32.trap
+ nvvm_sust_p_2d_v4i8_trap, // llvm.nvvm.sust.p.2d.v4i8.trap
+ nvvm_sust_p_3d_i16_trap, // llvm.nvvm.sust.p.3d.i16.trap
+ nvvm_sust_p_3d_i32_trap, // llvm.nvvm.sust.p.3d.i32.trap
+ nvvm_sust_p_3d_i8_trap, // llvm.nvvm.sust.p.3d.i8.trap
+ nvvm_sust_p_3d_v2i16_trap, // llvm.nvvm.sust.p.3d.v2i16.trap
+ nvvm_sust_p_3d_v2i32_trap, // llvm.nvvm.sust.p.3d.v2i32.trap
+ nvvm_sust_p_3d_v2i8_trap, // llvm.nvvm.sust.p.3d.v2i8.trap
+ nvvm_sust_p_3d_v4i16_trap, // llvm.nvvm.sust.p.3d.v4i16.trap
+ nvvm_sust_p_3d_v4i32_trap, // llvm.nvvm.sust.p.3d.v4i32.trap
+ nvvm_sust_p_3d_v4i8_trap, // llvm.nvvm.sust.p.3d.v4i8.trap
+ nvvm_swap_lo_hi_b64, // llvm.nvvm.swap.lo.hi.b64
+ nvvm_tex_1d_array_grad_v4f32_f32, // llvm.nvvm.tex.1d.array.grad.v4f32.f32
+ nvvm_tex_1d_array_grad_v4s32_f32, // llvm.nvvm.tex.1d.array.grad.v4s32.f32
+ nvvm_tex_1d_array_grad_v4u32_f32, // llvm.nvvm.tex.1d.array.grad.v4u32.f32
+ nvvm_tex_1d_array_level_v4f32_f32, // llvm.nvvm.tex.1d.array.level.v4f32.f32
+ nvvm_tex_1d_array_level_v4s32_f32, // llvm.nvvm.tex.1d.array.level.v4s32.f32
+ nvvm_tex_1d_array_level_v4u32_f32, // llvm.nvvm.tex.1d.array.level.v4u32.f32
+ nvvm_tex_1d_array_v4f32_f32, // llvm.nvvm.tex.1d.array.v4f32.f32
+ nvvm_tex_1d_array_v4f32_s32, // llvm.nvvm.tex.1d.array.v4f32.s32
+ nvvm_tex_1d_array_v4s32_f32, // llvm.nvvm.tex.1d.array.v4s32.f32
+ nvvm_tex_1d_array_v4s32_s32, // llvm.nvvm.tex.1d.array.v4s32.s32
+ nvvm_tex_1d_array_v4u32_f32, // llvm.nvvm.tex.1d.array.v4u32.f32
+ nvvm_tex_1d_array_v4u32_s32, // llvm.nvvm.tex.1d.array.v4u32.s32
+ nvvm_tex_1d_grad_v4f32_f32, // llvm.nvvm.tex.1d.grad.v4f32.f32
+ nvvm_tex_1d_grad_v4s32_f32, // llvm.nvvm.tex.1d.grad.v4s32.f32
+ nvvm_tex_1d_grad_v4u32_f32, // llvm.nvvm.tex.1d.grad.v4u32.f32
+ nvvm_tex_1d_level_v4f32_f32, // llvm.nvvm.tex.1d.level.v4f32.f32
+ nvvm_tex_1d_level_v4s32_f32, // llvm.nvvm.tex.1d.level.v4s32.f32
+ nvvm_tex_1d_level_v4u32_f32, // llvm.nvvm.tex.1d.level.v4u32.f32
+ nvvm_tex_1d_v4f32_f32, // llvm.nvvm.tex.1d.v4f32.f32
+ nvvm_tex_1d_v4f32_s32, // llvm.nvvm.tex.1d.v4f32.s32
+ nvvm_tex_1d_v4s32_f32, // llvm.nvvm.tex.1d.v4s32.f32
+ nvvm_tex_1d_v4s32_s32, // llvm.nvvm.tex.1d.v4s32.s32
+ nvvm_tex_1d_v4u32_f32, // llvm.nvvm.tex.1d.v4u32.f32
+ nvvm_tex_1d_v4u32_s32, // llvm.nvvm.tex.1d.v4u32.s32
+ nvvm_tex_2d_array_grad_v4f32_f32, // llvm.nvvm.tex.2d.array.grad.v4f32.f32
+ nvvm_tex_2d_array_grad_v4s32_f32, // llvm.nvvm.tex.2d.array.grad.v4s32.f32
+ nvvm_tex_2d_array_grad_v4u32_f32, // llvm.nvvm.tex.2d.array.grad.v4u32.f32
+ nvvm_tex_2d_array_level_v4f32_f32, // llvm.nvvm.tex.2d.array.level.v4f32.f32
+ nvvm_tex_2d_array_level_v4s32_f32, // llvm.nvvm.tex.2d.array.level.v4s32.f32
+ nvvm_tex_2d_array_level_v4u32_f32, // llvm.nvvm.tex.2d.array.level.v4u32.f32
+ nvvm_tex_2d_array_v4f32_f32, // llvm.nvvm.tex.2d.array.v4f32.f32
+ nvvm_tex_2d_array_v4f32_s32, // llvm.nvvm.tex.2d.array.v4f32.s32
+ nvvm_tex_2d_array_v4s32_f32, // llvm.nvvm.tex.2d.array.v4s32.f32
+ nvvm_tex_2d_array_v4s32_s32, // llvm.nvvm.tex.2d.array.v4s32.s32
+ nvvm_tex_2d_array_v4u32_f32, // llvm.nvvm.tex.2d.array.v4u32.f32
+ nvvm_tex_2d_array_v4u32_s32, // llvm.nvvm.tex.2d.array.v4u32.s32
+ nvvm_tex_2d_grad_v4f32_f32, // llvm.nvvm.tex.2d.grad.v4f32.f32
+ nvvm_tex_2d_grad_v4s32_f32, // llvm.nvvm.tex.2d.grad.v4s32.f32
+ nvvm_tex_2d_grad_v4u32_f32, // llvm.nvvm.tex.2d.grad.v4u32.f32
+ nvvm_tex_2d_level_v4f32_f32, // llvm.nvvm.tex.2d.level.v4f32.f32
+ nvvm_tex_2d_level_v4s32_f32, // llvm.nvvm.tex.2d.level.v4s32.f32
+ nvvm_tex_2d_level_v4u32_f32, // llvm.nvvm.tex.2d.level.v4u32.f32
+ nvvm_tex_2d_v4f32_f32, // llvm.nvvm.tex.2d.v4f32.f32
+ nvvm_tex_2d_v4f32_s32, // llvm.nvvm.tex.2d.v4f32.s32
+ nvvm_tex_2d_v4s32_f32, // llvm.nvvm.tex.2d.v4s32.f32
+ nvvm_tex_2d_v4s32_s32, // llvm.nvvm.tex.2d.v4s32.s32
+ nvvm_tex_2d_v4u32_f32, // llvm.nvvm.tex.2d.v4u32.f32
+ nvvm_tex_2d_v4u32_s32, // llvm.nvvm.tex.2d.v4u32.s32
+ nvvm_tex_3d_grad_v4f32_f32, // llvm.nvvm.tex.3d.grad.v4f32.f32
+ nvvm_tex_3d_grad_v4s32_f32, // llvm.nvvm.tex.3d.grad.v4s32.f32
+ nvvm_tex_3d_grad_v4u32_f32, // llvm.nvvm.tex.3d.grad.v4u32.f32
+ nvvm_tex_3d_level_v4f32_f32, // llvm.nvvm.tex.3d.level.v4f32.f32
+ nvvm_tex_3d_level_v4s32_f32, // llvm.nvvm.tex.3d.level.v4s32.f32
+ nvvm_tex_3d_level_v4u32_f32, // llvm.nvvm.tex.3d.level.v4u32.f32
+ nvvm_tex_3d_v4f32_f32, // llvm.nvvm.tex.3d.v4f32.f32
+ nvvm_tex_3d_v4f32_s32, // llvm.nvvm.tex.3d.v4f32.s32
+ nvvm_tex_3d_v4s32_f32, // llvm.nvvm.tex.3d.v4s32.f32
+ nvvm_tex_3d_v4s32_s32, // llvm.nvvm.tex.3d.v4s32.s32
+ nvvm_tex_3d_v4u32_f32, // llvm.nvvm.tex.3d.v4u32.f32
+ nvvm_tex_3d_v4u32_s32, // llvm.nvvm.tex.3d.v4u32.s32
+ nvvm_tex_cube_array_level_v4f32_f32, // llvm.nvvm.tex.cube.array.level.v4f32.f32
+ nvvm_tex_cube_array_level_v4s32_f32, // llvm.nvvm.tex.cube.array.level.v4s32.f32
+ nvvm_tex_cube_array_level_v4u32_f32, // llvm.nvvm.tex.cube.array.level.v4u32.f32
+ nvvm_tex_cube_array_v4f32_f32, // llvm.nvvm.tex.cube.array.v4f32.f32
+ nvvm_tex_cube_array_v4s32_f32, // llvm.nvvm.tex.cube.array.v4s32.f32
+ nvvm_tex_cube_array_v4u32_f32, // llvm.nvvm.tex.cube.array.v4u32.f32
+ nvvm_tex_cube_level_v4f32_f32, // llvm.nvvm.tex.cube.level.v4f32.f32
+ nvvm_tex_cube_level_v4s32_f32, // llvm.nvvm.tex.cube.level.v4s32.f32
+ nvvm_tex_cube_level_v4u32_f32, // llvm.nvvm.tex.cube.level.v4u32.f32
+ nvvm_tex_cube_v4f32_f32, // llvm.nvvm.tex.cube.v4f32.f32
+ nvvm_tex_cube_v4s32_f32, // llvm.nvvm.tex.cube.v4s32.f32
+ nvvm_tex_cube_v4u32_f32, // llvm.nvvm.tex.cube.v4u32.f32
+ nvvm_tex_unified_1d_array_grad_v4f32_f32, // llvm.nvvm.tex.unified.1d.array.grad.v4f32.f32
+ nvvm_tex_unified_1d_array_grad_v4s32_f32, // llvm.nvvm.tex.unified.1d.array.grad.v4s32.f32
+ nvvm_tex_unified_1d_array_grad_v4u32_f32, // llvm.nvvm.tex.unified.1d.array.grad.v4u32.f32
+ nvvm_tex_unified_1d_array_level_v4f32_f32, // llvm.nvvm.tex.unified.1d.array.level.v4f32.f32
+ nvvm_tex_unified_1d_array_level_v4s32_f32, // llvm.nvvm.tex.unified.1d.array.level.v4s32.f32
+ nvvm_tex_unified_1d_array_level_v4u32_f32, // llvm.nvvm.tex.unified.1d.array.level.v4u32.f32
+ nvvm_tex_unified_1d_array_v4f32_f32, // llvm.nvvm.tex.unified.1d.array.v4f32.f32
+ nvvm_tex_unified_1d_array_v4f32_s32, // llvm.nvvm.tex.unified.1d.array.v4f32.s32
+ nvvm_tex_unified_1d_array_v4s32_f32, // llvm.nvvm.tex.unified.1d.array.v4s32.f32
+ nvvm_tex_unified_1d_array_v4s32_s32, // llvm.nvvm.tex.unified.1d.array.v4s32.s32
+ nvvm_tex_unified_1d_array_v4u32_f32, // llvm.nvvm.tex.unified.1d.array.v4u32.f32
+ nvvm_tex_unified_1d_array_v4u32_s32, // llvm.nvvm.tex.unified.1d.array.v4u32.s32
+ nvvm_tex_unified_1d_grad_v4f32_f32, // llvm.nvvm.tex.unified.1d.grad.v4f32.f32
+ nvvm_tex_unified_1d_grad_v4s32_f32, // llvm.nvvm.tex.unified.1d.grad.v4s32.f32
+ nvvm_tex_unified_1d_grad_v4u32_f32, // llvm.nvvm.tex.unified.1d.grad.v4u32.f32
+ nvvm_tex_unified_1d_level_v4f32_f32, // llvm.nvvm.tex.unified.1d.level.v4f32.f32
+ nvvm_tex_unified_1d_level_v4s32_f32, // llvm.nvvm.tex.unified.1d.level.v4s32.f32
+ nvvm_tex_unified_1d_level_v4u32_f32, // llvm.nvvm.tex.unified.1d.level.v4u32.f32
+ nvvm_tex_unified_1d_v4f32_f32, // llvm.nvvm.tex.unified.1d.v4f32.f32
+ nvvm_tex_unified_1d_v4f32_s32, // llvm.nvvm.tex.unified.1d.v4f32.s32
+ nvvm_tex_unified_1d_v4s32_f32, // llvm.nvvm.tex.unified.1d.v4s32.f32
+ nvvm_tex_unified_1d_v4s32_s32, // llvm.nvvm.tex.unified.1d.v4s32.s32
+ nvvm_tex_unified_1d_v4u32_f32, // llvm.nvvm.tex.unified.1d.v4u32.f32
+ nvvm_tex_unified_1d_v4u32_s32, // llvm.nvvm.tex.unified.1d.v4u32.s32
+ nvvm_tex_unified_2d_array_grad_v4f32_f32, // llvm.nvvm.tex.unified.2d.array.grad.v4f32.f32
+ nvvm_tex_unified_2d_array_grad_v4s32_f32, // llvm.nvvm.tex.unified.2d.array.grad.v4s32.f32
+ nvvm_tex_unified_2d_array_grad_v4u32_f32, // llvm.nvvm.tex.unified.2d.array.grad.v4u32.f32
+ nvvm_tex_unified_2d_array_level_v4f32_f32, // llvm.nvvm.tex.unified.2d.array.level.v4f32.f32
+ nvvm_tex_unified_2d_array_level_v4s32_f32, // llvm.nvvm.tex.unified.2d.array.level.v4s32.f32
+ nvvm_tex_unified_2d_array_level_v4u32_f32, // llvm.nvvm.tex.unified.2d.array.level.v4u32.f32
+ nvvm_tex_unified_2d_array_v4f32_f32, // llvm.nvvm.tex.unified.2d.array.v4f32.f32
+ nvvm_tex_unified_2d_array_v4f32_s32, // llvm.nvvm.tex.unified.2d.array.v4f32.s32
+ nvvm_tex_unified_2d_array_v4s32_f32, // llvm.nvvm.tex.unified.2d.array.v4s32.f32
+ nvvm_tex_unified_2d_array_v4s32_s32, // llvm.nvvm.tex.unified.2d.array.v4s32.s32
+ nvvm_tex_unified_2d_array_v4u32_f32, // llvm.nvvm.tex.unified.2d.array.v4u32.f32
+ nvvm_tex_unified_2d_array_v4u32_s32, // llvm.nvvm.tex.unified.2d.array.v4u32.s32
+ nvvm_tex_unified_2d_grad_v4f32_f32, // llvm.nvvm.tex.unified.2d.grad.v4f32.f32
+ nvvm_tex_unified_2d_grad_v4s32_f32, // llvm.nvvm.tex.unified.2d.grad.v4s32.f32
+ nvvm_tex_unified_2d_grad_v4u32_f32, // llvm.nvvm.tex.unified.2d.grad.v4u32.f32
+ nvvm_tex_unified_2d_level_v4f32_f32, // llvm.nvvm.tex.unified.2d.level.v4f32.f32
+ nvvm_tex_unified_2d_level_v4s32_f32, // llvm.nvvm.tex.unified.2d.level.v4s32.f32
+ nvvm_tex_unified_2d_level_v4u32_f32, // llvm.nvvm.tex.unified.2d.level.v4u32.f32
+ nvvm_tex_unified_2d_v4f32_f32, // llvm.nvvm.tex.unified.2d.v4f32.f32
+ nvvm_tex_unified_2d_v4f32_s32, // llvm.nvvm.tex.unified.2d.v4f32.s32
+ nvvm_tex_unified_2d_v4s32_f32, // llvm.nvvm.tex.unified.2d.v4s32.f32
+ nvvm_tex_unified_2d_v4s32_s32, // llvm.nvvm.tex.unified.2d.v4s32.s32
+ nvvm_tex_unified_2d_v4u32_f32, // llvm.nvvm.tex.unified.2d.v4u32.f32
+ nvvm_tex_unified_2d_v4u32_s32, // llvm.nvvm.tex.unified.2d.v4u32.s32
+ nvvm_tex_unified_3d_grad_v4f32_f32, // llvm.nvvm.tex.unified.3d.grad.v4f32.f32
+ nvvm_tex_unified_3d_grad_v4s32_f32, // llvm.nvvm.tex.unified.3d.grad.v4s32.f32
+ nvvm_tex_unified_3d_grad_v4u32_f32, // llvm.nvvm.tex.unified.3d.grad.v4u32.f32
+ nvvm_tex_unified_3d_level_v4f32_f32, // llvm.nvvm.tex.unified.3d.level.v4f32.f32
+ nvvm_tex_unified_3d_level_v4s32_f32, // llvm.nvvm.tex.unified.3d.level.v4s32.f32
+ nvvm_tex_unified_3d_level_v4u32_f32, // llvm.nvvm.tex.unified.3d.level.v4u32.f32
+ nvvm_tex_unified_3d_v4f32_f32, // llvm.nvvm.tex.unified.3d.v4f32.f32
+ nvvm_tex_unified_3d_v4f32_s32, // llvm.nvvm.tex.unified.3d.v4f32.s32
+ nvvm_tex_unified_3d_v4s32_f32, // llvm.nvvm.tex.unified.3d.v4s32.f32
+ nvvm_tex_unified_3d_v4s32_s32, // llvm.nvvm.tex.unified.3d.v4s32.s32
+ nvvm_tex_unified_3d_v4u32_f32, // llvm.nvvm.tex.unified.3d.v4u32.f32
+ nvvm_tex_unified_3d_v4u32_s32, // llvm.nvvm.tex.unified.3d.v4u32.s32
+ nvvm_tex_unified_cube_array_level_v4f32_f32, // llvm.nvvm.tex.unified.cube.array.level.v4f32.f32
+ nvvm_tex_unified_cube_array_level_v4s32_f32, // llvm.nvvm.tex.unified.cube.array.level.v4s32.f32
+ nvvm_tex_unified_cube_array_level_v4u32_f32, // llvm.nvvm.tex.unified.cube.array.level.v4u32.f32
+ nvvm_tex_unified_cube_array_v4f32_f32, // llvm.nvvm.tex.unified.cube.array.v4f32.f32
+ nvvm_tex_unified_cube_array_v4s32_f32, // llvm.nvvm.tex.unified.cube.array.v4s32.f32
+ nvvm_tex_unified_cube_array_v4u32_f32, // llvm.nvvm.tex.unified.cube.array.v4u32.f32
+ nvvm_tex_unified_cube_level_v4f32_f32, // llvm.nvvm.tex.unified.cube.level.v4f32.f32
+ nvvm_tex_unified_cube_level_v4s32_f32, // llvm.nvvm.tex.unified.cube.level.v4s32.f32
+ nvvm_tex_unified_cube_level_v4u32_f32, // llvm.nvvm.tex.unified.cube.level.v4u32.f32
+ nvvm_tex_unified_cube_v4f32_f32, // llvm.nvvm.tex.unified.cube.v4f32.f32
+ nvvm_tex_unified_cube_v4s32_f32, // llvm.nvvm.tex.unified.cube.v4s32.f32
+ nvvm_tex_unified_cube_v4u32_f32, // llvm.nvvm.tex.unified.cube.v4u32.f32
+ nvvm_texsurf_handle, // llvm.nvvm.texsurf.handle
+ nvvm_texsurf_handle_internal, // llvm.nvvm.texsurf.handle.internal
+ nvvm_tld4_a_2d_v4f32_f32, // llvm.nvvm.tld4.a.2d.v4f32.f32
+ nvvm_tld4_a_2d_v4s32_f32, // llvm.nvvm.tld4.a.2d.v4s32.f32
+ nvvm_tld4_a_2d_v4u32_f32, // llvm.nvvm.tld4.a.2d.v4u32.f32
+ nvvm_tld4_b_2d_v4f32_f32, // llvm.nvvm.tld4.b.2d.v4f32.f32
+ nvvm_tld4_b_2d_v4s32_f32, // llvm.nvvm.tld4.b.2d.v4s32.f32
+ nvvm_tld4_b_2d_v4u32_f32, // llvm.nvvm.tld4.b.2d.v4u32.f32
+ nvvm_tld4_g_2d_v4f32_f32, // llvm.nvvm.tld4.g.2d.v4f32.f32
+ nvvm_tld4_g_2d_v4s32_f32, // llvm.nvvm.tld4.g.2d.v4s32.f32
+ nvvm_tld4_g_2d_v4u32_f32, // llvm.nvvm.tld4.g.2d.v4u32.f32
+ nvvm_tld4_r_2d_v4f32_f32, // llvm.nvvm.tld4.r.2d.v4f32.f32
+ nvvm_tld4_r_2d_v4s32_f32, // llvm.nvvm.tld4.r.2d.v4s32.f32
+ nvvm_tld4_r_2d_v4u32_f32, // llvm.nvvm.tld4.r.2d.v4u32.f32
+ nvvm_tld4_unified_a_2d_v4f32_f32, // llvm.nvvm.tld4.unified.a.2d.v4f32.f32
+ nvvm_tld4_unified_a_2d_v4s32_f32, // llvm.nvvm.tld4.unified.a.2d.v4s32.f32
+ nvvm_tld4_unified_a_2d_v4u32_f32, // llvm.nvvm.tld4.unified.a.2d.v4u32.f32
+ nvvm_tld4_unified_b_2d_v4f32_f32, // llvm.nvvm.tld4.unified.b.2d.v4f32.f32
+ nvvm_tld4_unified_b_2d_v4s32_f32, // llvm.nvvm.tld4.unified.b.2d.v4s32.f32
+ nvvm_tld4_unified_b_2d_v4u32_f32, // llvm.nvvm.tld4.unified.b.2d.v4u32.f32
+ nvvm_tld4_unified_g_2d_v4f32_f32, // llvm.nvvm.tld4.unified.g.2d.v4f32.f32
+ nvvm_tld4_unified_g_2d_v4s32_f32, // llvm.nvvm.tld4.unified.g.2d.v4s32.f32
+ nvvm_tld4_unified_g_2d_v4u32_f32, // llvm.nvvm.tld4.unified.g.2d.v4u32.f32
+ nvvm_tld4_unified_r_2d_v4f32_f32, // llvm.nvvm.tld4.unified.r.2d.v4f32.f32
+ nvvm_tld4_unified_r_2d_v4s32_f32, // llvm.nvvm.tld4.unified.r.2d.v4s32.f32
+ nvvm_tld4_unified_r_2d_v4u32_f32, // llvm.nvvm.tld4.unified.r.2d.v4u32.f32
+ nvvm_trunc_d, // llvm.nvvm.trunc.d
+ nvvm_trunc_f, // llvm.nvvm.trunc.f
+ nvvm_trunc_ftz_f, // llvm.nvvm.trunc.ftz.f
+ nvvm_txq_array_size, // llvm.nvvm.txq.array.size
+ nvvm_txq_channel_data_type, // llvm.nvvm.txq.channel.data.type
+ nvvm_txq_channel_order, // llvm.nvvm.txq.channel.order
+ nvvm_txq_depth, // llvm.nvvm.txq.depth
+ nvvm_txq_height, // llvm.nvvm.txq.height
+ nvvm_txq_num_mipmap_levels, // llvm.nvvm.txq.num.mipmap.levels
+ nvvm_txq_num_samples, // llvm.nvvm.txq.num.samples
+ nvvm_txq_width, // llvm.nvvm.txq.width
+ nvvm_ui2d_rm, // llvm.nvvm.ui2d.rm
+ nvvm_ui2d_rn, // llvm.nvvm.ui2d.rn
+ nvvm_ui2d_rp, // llvm.nvvm.ui2d.rp
+ nvvm_ui2d_rz, // llvm.nvvm.ui2d.rz
+ nvvm_ui2f_rm, // llvm.nvvm.ui2f.rm
+ nvvm_ui2f_rn, // llvm.nvvm.ui2f.rn
+ nvvm_ui2f_rp, // llvm.nvvm.ui2f.rp
+ nvvm_ui2f_rz, // llvm.nvvm.ui2f.rz
+ nvvm_ull2d_rm, // llvm.nvvm.ull2d.rm
+ nvvm_ull2d_rn, // llvm.nvvm.ull2d.rn
+ nvvm_ull2d_rp, // llvm.nvvm.ull2d.rp
+ nvvm_ull2d_rz, // llvm.nvvm.ull2d.rz
+ nvvm_ull2f_rm, // llvm.nvvm.ull2f.rm
+ nvvm_ull2f_rn, // llvm.nvvm.ull2f.rn
+ nvvm_ull2f_rp, // llvm.nvvm.ull2f.rp
+ nvvm_ull2f_rz, // llvm.nvvm.ull2f.rz
+ objectsize, // llvm.objectsize
+ pcmarker, // llvm.pcmarker
+ pow, // llvm.pow
+ powi, // llvm.powi
+ ppc_altivec_dss, // llvm.ppc.altivec.dss
+ ppc_altivec_dssall, // llvm.ppc.altivec.dssall
+ ppc_altivec_dst, // llvm.ppc.altivec.dst
+ ppc_altivec_dstst, // llvm.ppc.altivec.dstst
+ ppc_altivec_dststt, // llvm.ppc.altivec.dststt
+ ppc_altivec_dstt, // llvm.ppc.altivec.dstt
+ ppc_altivec_lvebx, // llvm.ppc.altivec.lvebx
+ ppc_altivec_lvehx, // llvm.ppc.altivec.lvehx
+ ppc_altivec_lvewx, // llvm.ppc.altivec.lvewx
+ ppc_altivec_lvsl, // llvm.ppc.altivec.lvsl
+ ppc_altivec_lvsr, // llvm.ppc.altivec.lvsr
+ ppc_altivec_lvx, // llvm.ppc.altivec.lvx
+ ppc_altivec_lvxl, // llvm.ppc.altivec.lvxl
+ ppc_altivec_mfvscr, // llvm.ppc.altivec.mfvscr
+ ppc_altivec_mtvscr, // llvm.ppc.altivec.mtvscr
+ ppc_altivec_stvebx, // llvm.ppc.altivec.stvebx
+ ppc_altivec_stvehx, // llvm.ppc.altivec.stvehx
+ ppc_altivec_stvewx, // llvm.ppc.altivec.stvewx
+ ppc_altivec_stvx, // llvm.ppc.altivec.stvx
+ ppc_altivec_stvxl, // llvm.ppc.altivec.stvxl
+ ppc_altivec_vaddcuw, // llvm.ppc.altivec.vaddcuw
+ ppc_altivec_vaddsbs, // llvm.ppc.altivec.vaddsbs
+ ppc_altivec_vaddshs, // llvm.ppc.altivec.vaddshs
+ ppc_altivec_vaddsws, // llvm.ppc.altivec.vaddsws
+ ppc_altivec_vaddubs, // llvm.ppc.altivec.vaddubs
+ ppc_altivec_vadduhs, // llvm.ppc.altivec.vadduhs
+ ppc_altivec_vadduws, // llvm.ppc.altivec.vadduws
+ ppc_altivec_vavgsb, // llvm.ppc.altivec.vavgsb
+ ppc_altivec_vavgsh, // llvm.ppc.altivec.vavgsh
+ ppc_altivec_vavgsw, // llvm.ppc.altivec.vavgsw
+ ppc_altivec_vavgub, // llvm.ppc.altivec.vavgub
+ ppc_altivec_vavguh, // llvm.ppc.altivec.vavguh
+ ppc_altivec_vavguw, // llvm.ppc.altivec.vavguw
+ ppc_altivec_vcfsx, // llvm.ppc.altivec.vcfsx
+ ppc_altivec_vcfux, // llvm.ppc.altivec.vcfux
+ ppc_altivec_vcmpbfp, // llvm.ppc.altivec.vcmpbfp
+ ppc_altivec_vcmpbfp_p, // llvm.ppc.altivec.vcmpbfp.p
+ ppc_altivec_vcmpeqfp, // llvm.ppc.altivec.vcmpeqfp
+ ppc_altivec_vcmpeqfp_p, // llvm.ppc.altivec.vcmpeqfp.p
+ ppc_altivec_vcmpequb, // llvm.ppc.altivec.vcmpequb
+ ppc_altivec_vcmpequb_p, // llvm.ppc.altivec.vcmpequb.p
+ ppc_altivec_vcmpequh, // llvm.ppc.altivec.vcmpequh
+ ppc_altivec_vcmpequh_p, // llvm.ppc.altivec.vcmpequh.p
+ ppc_altivec_vcmpequw, // llvm.ppc.altivec.vcmpequw
+ ppc_altivec_vcmpequw_p, // llvm.ppc.altivec.vcmpequw.p
+ ppc_altivec_vcmpgefp, // llvm.ppc.altivec.vcmpgefp
+ ppc_altivec_vcmpgefp_p, // llvm.ppc.altivec.vcmpgefp.p
+ ppc_altivec_vcmpgtfp, // llvm.ppc.altivec.vcmpgtfp
+ ppc_altivec_vcmpgtfp_p, // llvm.ppc.altivec.vcmpgtfp.p
+ ppc_altivec_vcmpgtsb, // llvm.ppc.altivec.vcmpgtsb
+ ppc_altivec_vcmpgtsb_p, // llvm.ppc.altivec.vcmpgtsb.p
+ ppc_altivec_vcmpgtsh, // llvm.ppc.altivec.vcmpgtsh
+ ppc_altivec_vcmpgtsh_p, // llvm.ppc.altivec.vcmpgtsh.p
+ ppc_altivec_vcmpgtsw, // llvm.ppc.altivec.vcmpgtsw
+ ppc_altivec_vcmpgtsw_p, // llvm.ppc.altivec.vcmpgtsw.p
+ ppc_altivec_vcmpgtub, // llvm.ppc.altivec.vcmpgtub
+ ppc_altivec_vcmpgtub_p, // llvm.ppc.altivec.vcmpgtub.p
+ ppc_altivec_vcmpgtuh, // llvm.ppc.altivec.vcmpgtuh
+ ppc_altivec_vcmpgtuh_p, // llvm.ppc.altivec.vcmpgtuh.p
+ ppc_altivec_vcmpgtuw, // llvm.ppc.altivec.vcmpgtuw
+ ppc_altivec_vcmpgtuw_p, // llvm.ppc.altivec.vcmpgtuw.p
+ ppc_altivec_vctsxs, // llvm.ppc.altivec.vctsxs
+ ppc_altivec_vctuxs, // llvm.ppc.altivec.vctuxs
+ ppc_altivec_vexptefp, // llvm.ppc.altivec.vexptefp
+ ppc_altivec_vlogefp, // llvm.ppc.altivec.vlogefp
+ ppc_altivec_vmaddfp, // llvm.ppc.altivec.vmaddfp
+ ppc_altivec_vmaxfp, // llvm.ppc.altivec.vmaxfp
+ ppc_altivec_vmaxsb, // llvm.ppc.altivec.vmaxsb
+ ppc_altivec_vmaxsh, // llvm.ppc.altivec.vmaxsh
+ ppc_altivec_vmaxsw, // llvm.ppc.altivec.vmaxsw
+ ppc_altivec_vmaxub, // llvm.ppc.altivec.vmaxub
+ ppc_altivec_vmaxuh, // llvm.ppc.altivec.vmaxuh
+ ppc_altivec_vmaxuw, // llvm.ppc.altivec.vmaxuw
+ ppc_altivec_vmhaddshs, // llvm.ppc.altivec.vmhaddshs
+ ppc_altivec_vmhraddshs, // llvm.ppc.altivec.vmhraddshs
+ ppc_altivec_vminfp, // llvm.ppc.altivec.vminfp
+ ppc_altivec_vminsb, // llvm.ppc.altivec.vminsb
+ ppc_altivec_vminsh, // llvm.ppc.altivec.vminsh
+ ppc_altivec_vminsw, // llvm.ppc.altivec.vminsw
+ ppc_altivec_vminub, // llvm.ppc.altivec.vminub
+ ppc_altivec_vminuh, // llvm.ppc.altivec.vminuh
+ ppc_altivec_vminuw, // llvm.ppc.altivec.vminuw
+ ppc_altivec_vmladduhm, // llvm.ppc.altivec.vmladduhm
+ ppc_altivec_vmsummbm, // llvm.ppc.altivec.vmsummbm
+ ppc_altivec_vmsumshm, // llvm.ppc.altivec.vmsumshm
+ ppc_altivec_vmsumshs, // llvm.ppc.altivec.vmsumshs
+ ppc_altivec_vmsumubm, // llvm.ppc.altivec.vmsumubm
+ ppc_altivec_vmsumuhm, // llvm.ppc.altivec.vmsumuhm
+ ppc_altivec_vmsumuhs, // llvm.ppc.altivec.vmsumuhs
+ ppc_altivec_vmulesb, // llvm.ppc.altivec.vmulesb
+ ppc_altivec_vmulesh, // llvm.ppc.altivec.vmulesh
+ ppc_altivec_vmuleub, // llvm.ppc.altivec.vmuleub
+ ppc_altivec_vmuleuh, // llvm.ppc.altivec.vmuleuh
+ ppc_altivec_vmulosb, // llvm.ppc.altivec.vmulosb
+ ppc_altivec_vmulosh, // llvm.ppc.altivec.vmulosh
+ ppc_altivec_vmuloub, // llvm.ppc.altivec.vmuloub
+ ppc_altivec_vmulouh, // llvm.ppc.altivec.vmulouh
+ ppc_altivec_vnmsubfp, // llvm.ppc.altivec.vnmsubfp
+ ppc_altivec_vperm, // llvm.ppc.altivec.vperm
+ ppc_altivec_vpkpx, // llvm.ppc.altivec.vpkpx
+ ppc_altivec_vpkshss, // llvm.ppc.altivec.vpkshss
+ ppc_altivec_vpkshus, // llvm.ppc.altivec.vpkshus
+ ppc_altivec_vpkswss, // llvm.ppc.altivec.vpkswss
+ ppc_altivec_vpkswus, // llvm.ppc.altivec.vpkswus
+ ppc_altivec_vpkuhus, // llvm.ppc.altivec.vpkuhus
+ ppc_altivec_vpkuwus, // llvm.ppc.altivec.vpkuwus
+ ppc_altivec_vrefp, // llvm.ppc.altivec.vrefp
+ ppc_altivec_vrfim, // llvm.ppc.altivec.vrfim
+ ppc_altivec_vrfin, // llvm.ppc.altivec.vrfin
+ ppc_altivec_vrfip, // llvm.ppc.altivec.vrfip
+ ppc_altivec_vrfiz, // llvm.ppc.altivec.vrfiz
+ ppc_altivec_vrlb, // llvm.ppc.altivec.vrlb
+ ppc_altivec_vrlh, // llvm.ppc.altivec.vrlh
+ ppc_altivec_vrlw, // llvm.ppc.altivec.vrlw
+ ppc_altivec_vrsqrtefp, // llvm.ppc.altivec.vrsqrtefp
+ ppc_altivec_vsel, // llvm.ppc.altivec.vsel
+ ppc_altivec_vsl, // llvm.ppc.altivec.vsl
+ ppc_altivec_vslb, // llvm.ppc.altivec.vslb
+ ppc_altivec_vslh, // llvm.ppc.altivec.vslh
+ ppc_altivec_vslo, // llvm.ppc.altivec.vslo
+ ppc_altivec_vslw, // llvm.ppc.altivec.vslw
+ ppc_altivec_vsr, // llvm.ppc.altivec.vsr
+ ppc_altivec_vsrab, // llvm.ppc.altivec.vsrab
+ ppc_altivec_vsrah, // llvm.ppc.altivec.vsrah
+ ppc_altivec_vsraw, // llvm.ppc.altivec.vsraw
+ ppc_altivec_vsrb, // llvm.ppc.altivec.vsrb
+ ppc_altivec_vsrh, // llvm.ppc.altivec.vsrh
+ ppc_altivec_vsro, // llvm.ppc.altivec.vsro
+ ppc_altivec_vsrw, // llvm.ppc.altivec.vsrw
+ ppc_altivec_vsubcuw, // llvm.ppc.altivec.vsubcuw
+ ppc_altivec_vsubsbs, // llvm.ppc.altivec.vsubsbs
+ ppc_altivec_vsubshs, // llvm.ppc.altivec.vsubshs
+ ppc_altivec_vsubsws, // llvm.ppc.altivec.vsubsws
+ ppc_altivec_vsububs, // llvm.ppc.altivec.vsububs
+ ppc_altivec_vsubuhs, // llvm.ppc.altivec.vsubuhs
+ ppc_altivec_vsubuws, // llvm.ppc.altivec.vsubuws
+ ppc_altivec_vsum2sws, // llvm.ppc.altivec.vsum2sws
+ ppc_altivec_vsum4sbs, // llvm.ppc.altivec.vsum4sbs
+ ppc_altivec_vsum4shs, // llvm.ppc.altivec.vsum4shs
+ ppc_altivec_vsum4ubs, // llvm.ppc.altivec.vsum4ubs
+ ppc_altivec_vsumsws, // llvm.ppc.altivec.vsumsws
+ ppc_altivec_vupkhpx, // llvm.ppc.altivec.vupkhpx
+ ppc_altivec_vupkhsb, // llvm.ppc.altivec.vupkhsb
+ ppc_altivec_vupkhsh, // llvm.ppc.altivec.vupkhsh
+ ppc_altivec_vupklpx, // llvm.ppc.altivec.vupklpx
+ ppc_altivec_vupklsb, // llvm.ppc.altivec.vupklsb
+ ppc_altivec_vupklsh, // llvm.ppc.altivec.vupklsh
+ ppc_dcba, // llvm.ppc.dcba
+ ppc_dcbf, // llvm.ppc.dcbf
+ ppc_dcbi, // llvm.ppc.dcbi
+ ppc_dcbst, // llvm.ppc.dcbst
+ ppc_dcbt, // llvm.ppc.dcbt
+ ppc_dcbtst, // llvm.ppc.dcbtst
+ ppc_dcbz, // llvm.ppc.dcbz
+ ppc_dcbzl, // llvm.ppc.dcbzl
+ ppc_is_decremented_ctr_nonzero, // llvm.ppc.is.decremented.ctr.nonzero
+ ppc_mtctr, // llvm.ppc.mtctr
+ 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
+ r600_read_global_size_x, // llvm.r600.read.global.size.x
+ r600_read_global_size_y, // llvm.r600.read.global.size.y
+ r600_read_global_size_z, // llvm.r600.read.global.size.z
+ r600_read_local_size_x, // llvm.r600.read.local.size.x
+ r600_read_local_size_y, // llvm.r600.read.local.size.y
+ r600_read_local_size_z, // llvm.r600.read.local.size.z
+ r600_read_ngroups_x, // llvm.r600.read.ngroups.x
+ r600_read_ngroups_y, // llvm.r600.read.ngroups.y
+ r600_read_ngroups_z, // llvm.r600.read.ngroups.z
+ r600_read_tgid_x, // llvm.r600.read.tgid.x
+ r600_read_tgid_y, // llvm.r600.read.tgid.y
+ r600_read_tgid_z, // llvm.r600.read.tgid.z
+ r600_read_tidig_x, // llvm.r600.read.tidig.x
+ r600_read_tidig_y, // llvm.r600.read.tidig.y
+ r600_read_tidig_z, // llvm.r600.read.tidig.z
+ read_register, // llvm.read_register
+ readcyclecounter, // llvm.readcyclecounter
+ returnaddress, // llvm.returnaddress
+ rint, // llvm.rint
+ round, // llvm.round
+ 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
+ sqrt, // llvm.sqrt
+ ssub_with_overflow, // llvm.ssub.with.overflow
+ stackprotector, // llvm.stackprotector
+ stackprotectorcheck, // llvm.stackprotectorcheck
+ stackrestore, // llvm.stackrestore
+ stacksave, // llvm.stacksave
+ trap, // llvm.trap
+ trunc, // llvm.trunc
+ 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
+ write_register, // llvm.write_register
+ x86_3dnow_pavgusb, // llvm.x86.3dnow.pavgusb
+ x86_3dnow_pf2id, // llvm.x86.3dnow.pf2id
+ x86_3dnow_pfacc, // llvm.x86.3dnow.pfacc
+ x86_3dnow_pfadd, // llvm.x86.3dnow.pfadd
+ x86_3dnow_pfcmpeq, // llvm.x86.3dnow.pfcmpeq
+ x86_3dnow_pfcmpge, // llvm.x86.3dnow.pfcmpge
+ x86_3dnow_pfcmpgt, // llvm.x86.3dnow.pfcmpgt
+ x86_3dnow_pfmax, // llvm.x86.3dnow.pfmax
+ x86_3dnow_pfmin, // llvm.x86.3dnow.pfmin
+ x86_3dnow_pfmul, // llvm.x86.3dnow.pfmul
+ x86_3dnow_pfrcp, // llvm.x86.3dnow.pfrcp
+ x86_3dnow_pfrcpit1, // llvm.x86.3dnow.pfrcpit1
+ x86_3dnow_pfrcpit2, // llvm.x86.3dnow.pfrcpit2
+ x86_3dnow_pfrsqit1, // llvm.x86.3dnow.pfrsqit1
+ x86_3dnow_pfrsqrt, // llvm.x86.3dnow.pfrsqrt
+ x86_3dnow_pfsub, // llvm.x86.3dnow.pfsub
+ x86_3dnow_pfsubr, // llvm.x86.3dnow.pfsubr
+ x86_3dnow_pi2fd, // llvm.x86.3dnow.pi2fd
+ x86_3dnow_pmulhrw, // llvm.x86.3dnow.pmulhrw
+ x86_3dnowa_pf2iw, // llvm.x86.3dnowa.pf2iw
+ x86_3dnowa_pfnacc, // llvm.x86.3dnowa.pfnacc
+ x86_3dnowa_pfpnacc, // llvm.x86.3dnowa.pfpnacc
+ x86_3dnowa_pi2fw, // llvm.x86.3dnowa.pi2fw
+ x86_3dnowa_pswapd, // llvm.x86.3dnowa.pswapd
+ x86_aesni_aesdec, // llvm.x86.aesni.aesdec
+ x86_aesni_aesdeclast, // llvm.x86.aesni.aesdeclast
+ x86_aesni_aesenc, // llvm.x86.aesni.aesenc
+ x86_aesni_aesenclast, // llvm.x86.aesni.aesenclast
+ x86_aesni_aesimc, // llvm.x86.aesni.aesimc
+ x86_aesni_aeskeygenassist, // llvm.x86.aesni.aeskeygenassist
+ x86_avx2_gather_d_d, // llvm.x86.avx2.gather.d.d
+ x86_avx2_gather_d_d_256, // llvm.x86.avx2.gather.d.d.256
+ x86_avx2_gather_d_pd, // llvm.x86.avx2.gather.d.pd
+ x86_avx2_gather_d_pd_256, // llvm.x86.avx2.gather.d.pd.256
+ x86_avx2_gather_d_ps, // llvm.x86.avx2.gather.d.ps
+ x86_avx2_gather_d_ps_256, // llvm.x86.avx2.gather.d.ps.256
+ x86_avx2_gather_d_q, // llvm.x86.avx2.gather.d.q
+ x86_avx2_gather_d_q_256, // llvm.x86.avx2.gather.d.q.256
+ x86_avx2_gather_q_d, // llvm.x86.avx2.gather.q.d
+ x86_avx2_gather_q_d_256, // llvm.x86.avx2.gather.q.d.256
+ x86_avx2_gather_q_pd, // llvm.x86.avx2.gather.q.pd
+ x86_avx2_gather_q_pd_256, // llvm.x86.avx2.gather.q.pd.256
+ x86_avx2_gather_q_ps, // llvm.x86.avx2.gather.q.ps
+ x86_avx2_gather_q_ps_256, // llvm.x86.avx2.gather.q.ps.256
+ x86_avx2_gather_q_q, // llvm.x86.avx2.gather.q.q
+ x86_avx2_gather_q_q_256, // llvm.x86.avx2.gather.q.q.256
+ x86_avx2_maskload_d, // llvm.x86.avx2.maskload.d
+ x86_avx2_maskload_d_256, // llvm.x86.avx2.maskload.d.256
+ x86_avx2_maskload_q, // llvm.x86.avx2.maskload.q
+ x86_avx2_maskload_q_256, // llvm.x86.avx2.maskload.q.256
+ x86_avx2_maskstore_d, // llvm.x86.avx2.maskstore.d
+ x86_avx2_maskstore_d_256, // llvm.x86.avx2.maskstore.d.256
+ x86_avx2_maskstore_q, // llvm.x86.avx2.maskstore.q
+ x86_avx2_maskstore_q_256, // llvm.x86.avx2.maskstore.q.256
+ x86_avx2_movntdqa, // llvm.x86.avx2.movntdqa
+ x86_avx2_mpsadbw, // llvm.x86.avx2.mpsadbw
+ x86_avx2_pabs_b, // llvm.x86.avx2.pabs.b
+ x86_avx2_pabs_d, // llvm.x86.avx2.pabs.d
+ x86_avx2_pabs_w, // llvm.x86.avx2.pabs.w
+ x86_avx2_packssdw, // llvm.x86.avx2.packssdw
+ x86_avx2_packsswb, // llvm.x86.avx2.packsswb
+ x86_avx2_packusdw, // llvm.x86.avx2.packusdw
+ x86_avx2_packuswb, // llvm.x86.avx2.packuswb
+ x86_avx2_padds_b, // llvm.x86.avx2.padds.b
+ x86_avx2_padds_w, // llvm.x86.avx2.padds.w
+ x86_avx2_paddus_b, // llvm.x86.avx2.paddus.b
+ x86_avx2_paddus_w, // llvm.x86.avx2.paddus.w
+ x86_avx2_pavg_b, // llvm.x86.avx2.pavg.b
+ x86_avx2_pavg_w, // llvm.x86.avx2.pavg.w
+ x86_avx2_pblendd_128, // llvm.x86.avx2.pblendd.128
+ x86_avx2_pblendd_256, // llvm.x86.avx2.pblendd.256
+ x86_avx2_pblendvb, // llvm.x86.avx2.pblendvb
+ x86_avx2_pblendw, // llvm.x86.avx2.pblendw
+ x86_avx2_pbroadcastb_128, // llvm.x86.avx2.pbroadcastb.128
+ x86_avx2_pbroadcastb_256, // llvm.x86.avx2.pbroadcastb.256
+ x86_avx2_pbroadcastd_128, // llvm.x86.avx2.pbroadcastd.128
+ x86_avx2_pbroadcastd_256, // llvm.x86.avx2.pbroadcastd.256
+ x86_avx2_pbroadcastq_128, // llvm.x86.avx2.pbroadcastq.128
+ x86_avx2_pbroadcastq_256, // llvm.x86.avx2.pbroadcastq.256
+ x86_avx2_pbroadcastw_128, // llvm.x86.avx2.pbroadcastw.128
+ x86_avx2_pbroadcastw_256, // llvm.x86.avx2.pbroadcastw.256
+ x86_avx2_permd, // llvm.x86.avx2.permd
+ x86_avx2_permps, // llvm.x86.avx2.permps
+ x86_avx2_phadd_d, // llvm.x86.avx2.phadd.d
+ x86_avx2_phadd_sw, // llvm.x86.avx2.phadd.sw
+ x86_avx2_phadd_w, // llvm.x86.avx2.phadd.w
+ x86_avx2_phsub_d, // llvm.x86.avx2.phsub.d
+ x86_avx2_phsub_sw, // llvm.x86.avx2.phsub.sw
+ x86_avx2_phsub_w, // llvm.x86.avx2.phsub.w
+ x86_avx2_pmadd_ub_sw, // llvm.x86.avx2.pmadd.ub.sw
+ x86_avx2_pmadd_wd, // llvm.x86.avx2.pmadd.wd
+ x86_avx2_pmaxs_b, // llvm.x86.avx2.pmaxs.b
+ x86_avx2_pmaxs_d, // llvm.x86.avx2.pmaxs.d
+ x86_avx2_pmaxs_w, // llvm.x86.avx2.pmaxs.w
+ x86_avx2_pmaxu_b, // llvm.x86.avx2.pmaxu.b
+ x86_avx2_pmaxu_d, // llvm.x86.avx2.pmaxu.d
+ x86_avx2_pmaxu_w, // llvm.x86.avx2.pmaxu.w
+ x86_avx2_pmins_b, // llvm.x86.avx2.pmins.b
+ x86_avx2_pmins_d, // llvm.x86.avx2.pmins.d
+ x86_avx2_pmins_w, // llvm.x86.avx2.pmins.w
+ x86_avx2_pminu_b, // llvm.x86.avx2.pminu.b
+ x86_avx2_pminu_d, // llvm.x86.avx2.pminu.d
+ x86_avx2_pminu_w, // llvm.x86.avx2.pminu.w
+ x86_avx2_pmovmskb, // llvm.x86.avx2.pmovmskb
+ x86_avx2_pmovsxbd, // llvm.x86.avx2.pmovsxbd
+ x86_avx2_pmovsxbq, // llvm.x86.avx2.pmovsxbq
+ x86_avx2_pmovsxbw, // llvm.x86.avx2.pmovsxbw
+ x86_avx2_pmovsxdq, // llvm.x86.avx2.pmovsxdq
+ x86_avx2_pmovsxwd, // llvm.x86.avx2.pmovsxwd
+ x86_avx2_pmovsxwq, // llvm.x86.avx2.pmovsxwq
+ x86_avx2_pmovzxbd, // llvm.x86.avx2.pmovzxbd
+ x86_avx2_pmovzxbq, // llvm.x86.avx2.pmovzxbq
+ x86_avx2_pmovzxbw, // llvm.x86.avx2.pmovzxbw
+ x86_avx2_pmovzxdq, // llvm.x86.avx2.pmovzxdq
+ x86_avx2_pmovzxwd, // llvm.x86.avx2.pmovzxwd
+ x86_avx2_pmovzxwq, // llvm.x86.avx2.pmovzxwq
+ x86_avx2_pmul_dq, // llvm.x86.avx2.pmul.dq
+ x86_avx2_pmul_hr_sw, // llvm.x86.avx2.pmul.hr.sw
+ x86_avx2_pmulh_w, // llvm.x86.avx2.pmulh.w
+ x86_avx2_pmulhu_w, // llvm.x86.avx2.pmulhu.w
+ x86_avx2_pmulu_dq, // llvm.x86.avx2.pmulu.dq
+ x86_avx2_psad_bw, // llvm.x86.avx2.psad.bw
+ x86_avx2_pshuf_b, // llvm.x86.avx2.pshuf.b
+ x86_avx2_psign_b, // llvm.x86.avx2.psign.b
+ x86_avx2_psign_d, // llvm.x86.avx2.psign.d
+ x86_avx2_psign_w, // llvm.x86.avx2.psign.w
+ x86_avx2_psll_d, // llvm.x86.avx2.psll.d
+ x86_avx2_psll_dq, // llvm.x86.avx2.psll.dq
+ x86_avx2_psll_dq_bs, // llvm.x86.avx2.psll.dq.bs
+ x86_avx2_psll_q, // llvm.x86.avx2.psll.q
+ x86_avx2_psll_w, // llvm.x86.avx2.psll.w
+ x86_avx2_pslli_d, // llvm.x86.avx2.pslli.d
+ x86_avx2_pslli_q, // llvm.x86.avx2.pslli.q
+ x86_avx2_pslli_w, // llvm.x86.avx2.pslli.w
+ x86_avx2_psllv_d, // llvm.x86.avx2.psllv.d
+ x86_avx2_psllv_d_256, // llvm.x86.avx2.psllv.d.256
+ x86_avx2_psllv_q, // llvm.x86.avx2.psllv.q
+ x86_avx2_psllv_q_256, // llvm.x86.avx2.psllv.q.256
+ x86_avx2_psra_d, // llvm.x86.avx2.psra.d
+ x86_avx2_psra_w, // llvm.x86.avx2.psra.w
+ x86_avx2_psrai_d, // llvm.x86.avx2.psrai.d
+ x86_avx2_psrai_w, // llvm.x86.avx2.psrai.w
+ x86_avx2_psrav_d, // llvm.x86.avx2.psrav.d
+ x86_avx2_psrav_d_256, // llvm.x86.avx2.psrav.d.256
+ x86_avx2_psrl_d, // llvm.x86.avx2.psrl.d
+ x86_avx2_psrl_dq, // llvm.x86.avx2.psrl.dq
+ x86_avx2_psrl_dq_bs, // llvm.x86.avx2.psrl.dq.bs
+ x86_avx2_psrl_q, // llvm.x86.avx2.psrl.q
+ x86_avx2_psrl_w, // llvm.x86.avx2.psrl.w
+ x86_avx2_psrli_d, // llvm.x86.avx2.psrli.d
+ x86_avx2_psrli_q, // llvm.x86.avx2.psrli.q
+ x86_avx2_psrli_w, // llvm.x86.avx2.psrli.w
+ x86_avx2_psrlv_d, // llvm.x86.avx2.psrlv.d
+ x86_avx2_psrlv_d_256, // llvm.x86.avx2.psrlv.d.256
+ x86_avx2_psrlv_q, // llvm.x86.avx2.psrlv.q
+ x86_avx2_psrlv_q_256, // llvm.x86.avx2.psrlv.q.256
+ x86_avx2_psubs_b, // llvm.x86.avx2.psubs.b
+ x86_avx2_psubs_w, // llvm.x86.avx2.psubs.w
+ x86_avx2_psubus_b, // llvm.x86.avx2.psubus.b
+ x86_avx2_psubus_w, // llvm.x86.avx2.psubus.w
+ x86_avx2_vbroadcast_sd_pd_256, // llvm.x86.avx2.vbroadcast.sd.pd.256
+ x86_avx2_vbroadcast_ss_ps, // llvm.x86.avx2.vbroadcast.ss.ps
+ x86_avx2_vbroadcast_ss_ps_256, // llvm.x86.avx2.vbroadcast.ss.ps.256
+ x86_avx2_vbroadcasti128, // llvm.x86.avx2.vbroadcasti128
+ x86_avx2_vextracti128, // llvm.x86.avx2.vextracti128
+ x86_avx2_vinserti128, // llvm.x86.avx2.vinserti128
+ x86_avx2_vperm2i128, // llvm.x86.avx2.vperm2i128
+ x86_avx512_cvtsd2usi, // llvm.x86.avx512.cvtsd2usi
+ x86_avx512_cvtsd2usi64, // llvm.x86.avx512.cvtsd2usi64
+ x86_avx512_cvtss2usi, // llvm.x86.avx512.cvtss2usi
+ x86_avx512_cvtss2usi64, // llvm.x86.avx512.cvtss2usi64
+ x86_avx512_cvttsd2usi, // llvm.x86.avx512.cvttsd2usi
+ x86_avx512_cvttsd2usi64, // llvm.x86.avx512.cvttsd2usi64
+ x86_avx512_cvttss2usi, // llvm.x86.avx512.cvttss2usi
+ x86_avx512_cvttss2usi64, // llvm.x86.avx512.cvttss2usi64
+ x86_avx512_cvtusi2sd, // llvm.x86.avx512.cvtusi2sd
+ x86_avx512_cvtusi2ss, // llvm.x86.avx512.cvtusi2ss
+ x86_avx512_cvtusi642sd, // llvm.x86.avx512.cvtusi642sd
+ x86_avx512_cvtusi642ss, // llvm.x86.avx512.cvtusi642ss
+ x86_avx512_gather_dpd_512, // llvm.x86.avx512.gather.dpd.512
+ x86_avx512_gather_dpi_512, // llvm.x86.avx512.gather.dpi.512
+ x86_avx512_gather_dpq_512, // llvm.x86.avx512.gather.dpq.512
+ x86_avx512_gather_dps_512, // llvm.x86.avx512.gather.dps.512
+ x86_avx512_gather_qpd_512, // llvm.x86.avx512.gather.qpd.512
+ x86_avx512_gather_qpi_512, // llvm.x86.avx512.gather.qpi.512
+ x86_avx512_gather_qpq_512, // llvm.x86.avx512.gather.qpq.512
+ x86_avx512_gather_qps_512, // llvm.x86.avx512.gather.qps.512
+ x86_avx512_gatherpf_dpd_512, // llvm.x86.avx512.gatherpf.dpd.512
+ x86_avx512_gatherpf_dps_512, // llvm.x86.avx512.gatherpf.dps.512
+ x86_avx512_gatherpf_qpd_512, // llvm.x86.avx512.gatherpf.qpd.512
+ x86_avx512_gatherpf_qps_512, // llvm.x86.avx512.gatherpf.qps.512
+ x86_avx512_kand_w, // llvm.x86.avx512.kand.w
+ x86_avx512_kandn_w, // llvm.x86.avx512.kandn.w
+ x86_avx512_knot_w, // llvm.x86.avx512.knot.w
+ x86_avx512_kor_w, // llvm.x86.avx512.kor.w
+ x86_avx512_kortestc_w, // llvm.x86.avx512.kortestc.w
+ x86_avx512_kortestz_w, // llvm.x86.avx512.kortestz.w
+ x86_avx512_kunpck_bw, // llvm.x86.avx512.kunpck.bw
+ x86_avx512_kxnor_w, // llvm.x86.avx512.kxnor.w
+ x86_avx512_kxor_w, // llvm.x86.avx512.kxor.w
+ x86_avx512_mask_blend_d_512, // llvm.x86.avx512.mask.blend.d.512
+ x86_avx512_mask_blend_pd_512, // llvm.x86.avx512.mask.blend.pd.512
+ x86_avx512_mask_blend_ps_512, // llvm.x86.avx512.mask.blend.ps.512
+ x86_avx512_mask_blend_q_512, // llvm.x86.avx512.mask.blend.q.512
+ x86_avx512_mask_cmp_pd_512, // llvm.x86.avx512.mask.cmp.pd.512
+ x86_avx512_mask_cmp_ps_512, // llvm.x86.avx512.mask.cmp.ps.512
+ x86_avx512_mask_conflict_d_512, // llvm.x86.avx512.mask.conflict.d.512
+ x86_avx512_mask_conflict_q_512, // llvm.x86.avx512.mask.conflict.q.512
+ x86_avx512_mask_cvtdq2pd_512, // llvm.x86.avx512.mask.cvtdq2pd.512
+ x86_avx512_mask_cvtdq2ps_512, // llvm.x86.avx512.mask.cvtdq2ps.512
+ x86_avx512_mask_cvtpd2dq_512, // llvm.x86.avx512.mask.cvtpd2dq.512
+ x86_avx512_mask_cvtpd2ps_512, // llvm.x86.avx512.mask.cvtpd2ps.512
+ x86_avx512_mask_cvtpd2udq_512, // llvm.x86.avx512.mask.cvtpd2udq.512
+ x86_avx512_mask_cvtps2dq_512, // llvm.x86.avx512.mask.cvtps2dq.512
+ x86_avx512_mask_cvtps2udq_512, // llvm.x86.avx512.mask.cvtps2udq.512
+ x86_avx512_mask_cvttpd2dq_512, // llvm.x86.avx512.mask.cvttpd2dq.512
+ x86_avx512_mask_cvttpd2udq_512, // llvm.x86.avx512.mask.cvttpd2udq.512
+ x86_avx512_mask_cvttps2dq_512, // llvm.x86.avx512.mask.cvttps2dq.512
+ x86_avx512_mask_cvttps2udq_512, // llvm.x86.avx512.mask.cvttps2udq.512
+ x86_avx512_mask_cvtudq2pd_512, // llvm.x86.avx512.mask.cvtudq2pd.512
+ x86_avx512_mask_cvtudq2ps_512, // llvm.x86.avx512.mask.cvtudq2ps.512
+ x86_avx512_mask_loadu_d_512, // llvm.x86.avx512.mask.loadu.d.512
+ x86_avx512_mask_loadu_pd_512, // llvm.x86.avx512.mask.loadu.pd.512
+ x86_avx512_mask_loadu_ps_512, // llvm.x86.avx512.mask.loadu.ps.512
+ x86_avx512_mask_loadu_q_512, // llvm.x86.avx512.mask.loadu.q.512
+ x86_avx512_mask_lzcnt_d_512, // llvm.x86.avx512.mask.lzcnt.d.512
+ x86_avx512_mask_lzcnt_q_512, // llvm.x86.avx512.mask.lzcnt.q.512
+ x86_avx512_mask_max_pd_512, // llvm.x86.avx512.mask.max.pd.512
+ x86_avx512_mask_max_ps_512, // llvm.x86.avx512.mask.max.ps.512
+ x86_avx512_mask_min_pd_512, // llvm.x86.avx512.mask.min.pd.512
+ x86_avx512_mask_min_ps_512, // llvm.x86.avx512.mask.min.ps.512
+ x86_avx512_mask_pabs_d_512, // llvm.x86.avx512.mask.pabs.d.512
+ x86_avx512_mask_pabs_q_512, // llvm.x86.avx512.mask.pabs.q.512
+ x86_avx512_mask_pand_d_512, // llvm.x86.avx512.mask.pand.d.512
+ x86_avx512_mask_pand_q_512, // llvm.x86.avx512.mask.pand.q.512
+ x86_avx512_mask_pbroadcast_d_gpr_512, // llvm.x86.avx512.mask.pbroadcast.d.gpr.512
+ x86_avx512_mask_pbroadcast_q_gpr_512, // llvm.x86.avx512.mask.pbroadcast.q.gpr.512
+ x86_avx512_mask_pbroadcast_q_mem_512, // llvm.x86.avx512.mask.pbroadcast.q.mem.512
+ x86_avx512_mask_pcmpeq_d_512, // llvm.x86.avx512.mask.pcmpeq.d.512
+ x86_avx512_mask_pcmpeq_q_512, // llvm.x86.avx512.mask.pcmpeq.q.512
+ x86_avx512_mask_pmaxs_d_512, // llvm.x86.avx512.mask.pmaxs.d.512
+ x86_avx512_mask_pmaxs_q_512, // llvm.x86.avx512.mask.pmaxs.q.512
+ x86_avx512_mask_pmaxu_d_512, // llvm.x86.avx512.mask.pmaxu.d.512
+ x86_avx512_mask_pmaxu_q_512, // llvm.x86.avx512.mask.pmaxu.q.512
+ x86_avx512_mask_pmins_d_512, // llvm.x86.avx512.mask.pmins.d.512
+ x86_avx512_mask_pmins_q_512, // llvm.x86.avx512.mask.pmins.q.512
+ x86_avx512_mask_pminu_d_512, // llvm.x86.avx512.mask.pminu.d.512
+ x86_avx512_mask_pminu_q_512, // llvm.x86.avx512.mask.pminu.q.512
+ x86_avx512_mask_pmul_dq_512, // llvm.x86.avx512.mask.pmul.dq.512
+ x86_avx512_mask_pmulu_dq_512, // llvm.x86.avx512.mask.pmulu.dq.512
+ x86_avx512_mask_ptestm_d_512, // llvm.x86.avx512.mask.ptestm.d.512
+ x86_avx512_mask_ptestm_q_512, // llvm.x86.avx512.mask.ptestm.q.512
+ x86_avx512_mask_rndscale_pd_512, // llvm.x86.avx512.mask.rndscale.pd.512
+ x86_avx512_mask_rndscale_ps_512, // llvm.x86.avx512.mask.rndscale.ps.512
+ x86_avx512_mask_storeu_d_512, // llvm.x86.avx512.mask.storeu.d.512
+ x86_avx512_mask_storeu_pd_512, // llvm.x86.avx512.mask.storeu.pd.512
+ x86_avx512_mask_storeu_ps_512, // llvm.x86.avx512.mask.storeu.ps.512
+ x86_avx512_mask_storeu_q_512, // llvm.x86.avx512.mask.storeu.q.512
+ x86_avx512_mask_vcvtph2ps_512, // llvm.x86.avx512.mask.vcvtph2ps.512
+ x86_avx512_mask_vcvtps2ph_512, // llvm.x86.avx512.mask.vcvtps2ph.512
+ x86_avx512_mask_vpermt_d_512, // llvm.x86.avx512.mask.vpermt.d.512
+ x86_avx512_mask_vpermt_pd_512, // llvm.x86.avx512.mask.vpermt.pd.512
+ x86_avx512_mask_vpermt_ps_512, // llvm.x86.avx512.mask.vpermt.ps.512
+ x86_avx512_mask_vpermt_q_512, // llvm.x86.avx512.mask.vpermt.q.512
+ x86_avx512_movntdqa, // llvm.x86.avx512.movntdqa
+ x86_avx512_pbroadcastd_512, // llvm.x86.avx512.pbroadcastd.512
+ x86_avx512_pbroadcastd_i32_512, // llvm.x86.avx512.pbroadcastd.i32.512
+ x86_avx512_pbroadcastq_512, // llvm.x86.avx512.pbroadcastq.512
+ x86_avx512_pbroadcastq_i64_512, // llvm.x86.avx512.pbroadcastq.i64.512
+ x86_avx512_pmovzxbd, // llvm.x86.avx512.pmovzxbd
+ x86_avx512_pmovzxbq, // llvm.x86.avx512.pmovzxbq
+ x86_avx512_pmovzxdq, // llvm.x86.avx512.pmovzxdq
+ x86_avx512_pmovzxwd, // llvm.x86.avx512.pmovzxwd
+ x86_avx512_pmovzxwq, // llvm.x86.avx512.pmovzxwq
+ x86_avx512_psll_dq, // llvm.x86.avx512.psll.dq
+ x86_avx512_psll_dq_bs, // llvm.x86.avx512.psll.dq.bs
+ x86_avx512_psrl_dq, // llvm.x86.avx512.psrl.dq
+ x86_avx512_psrl_dq_bs, // llvm.x86.avx512.psrl.dq.bs
+ x86_avx512_rcp14_pd_512, // llvm.x86.avx512.rcp14.pd.512
+ x86_avx512_rcp14_ps_512, // llvm.x86.avx512.rcp14.ps.512
+ x86_avx512_rcp14_sd, // llvm.x86.avx512.rcp14.sd
+ x86_avx512_rcp14_ss, // llvm.x86.avx512.rcp14.ss
+ x86_avx512_rcp28_pd, // llvm.x86.avx512.rcp28.pd
+ x86_avx512_rcp28_ps, // llvm.x86.avx512.rcp28.ps
+ x86_avx512_rcp28_sd, // llvm.x86.avx512.rcp28.sd
+ x86_avx512_rcp28_ss, // llvm.x86.avx512.rcp28.ss
+ x86_avx512_rndscale_sd, // llvm.x86.avx512.rndscale.sd
+ x86_avx512_rndscale_ss, // llvm.x86.avx512.rndscale.ss
+ x86_avx512_rsqrt14_pd_512, // llvm.x86.avx512.rsqrt14.pd.512
+ x86_avx512_rsqrt14_ps_512, // llvm.x86.avx512.rsqrt14.ps.512
+ x86_avx512_rsqrt14_sd, // llvm.x86.avx512.rsqrt14.sd
+ x86_avx512_rsqrt14_ss, // llvm.x86.avx512.rsqrt14.ss
+ x86_avx512_rsqrt28_pd, // llvm.x86.avx512.rsqrt28.pd
+ x86_avx512_rsqrt28_ps, // llvm.x86.avx512.rsqrt28.ps
+ x86_avx512_rsqrt28_sd, // llvm.x86.avx512.rsqrt28.sd
+ x86_avx512_rsqrt28_ss, // llvm.x86.avx512.rsqrt28.ss
+ x86_avx512_scatter_dpd_512, // llvm.x86.avx512.scatter.dpd.512
+ x86_avx512_scatter_dpi_512, // llvm.x86.avx512.scatter.dpi.512
+ x86_avx512_scatter_dpq_512, // llvm.x86.avx512.scatter.dpq.512
+ x86_avx512_scatter_dps_512, // llvm.x86.avx512.scatter.dps.512
+ x86_avx512_scatter_qpd_512, // llvm.x86.avx512.scatter.qpd.512
+ x86_avx512_scatter_qpi_512, // llvm.x86.avx512.scatter.qpi.512
+ x86_avx512_scatter_qpq_512, // llvm.x86.avx512.scatter.qpq.512
+ x86_avx512_scatter_qps_512, // llvm.x86.avx512.scatter.qps.512
+ x86_avx512_scatterpf_dpd_512, // llvm.x86.avx512.scatterpf.dpd.512
+ x86_avx512_scatterpf_dps_512, // llvm.x86.avx512.scatterpf.dps.512
+ x86_avx512_scatterpf_qpd_512, // llvm.x86.avx512.scatterpf.qpd.512
+ x86_avx512_scatterpf_qps_512, // llvm.x86.avx512.scatterpf.qps.512
+ x86_avx512_sqrt_pd_512, // llvm.x86.avx512.sqrt.pd.512
+ x86_avx512_sqrt_ps_512, // llvm.x86.avx512.sqrt.ps.512
+ x86_avx512_sqrt_sd, // llvm.x86.avx512.sqrt.sd
+ x86_avx512_sqrt_ss, // llvm.x86.avx512.sqrt.ss
+ x86_avx512_vbroadcast_sd_512, // llvm.x86.avx512.vbroadcast.sd.512
+ x86_avx512_vbroadcast_sd_pd_512, // llvm.x86.avx512.vbroadcast.sd.pd.512
+ x86_avx512_vbroadcast_ss_512, // llvm.x86.avx512.vbroadcast.ss.512
+ x86_avx512_vbroadcast_ss_ps_512, // llvm.x86.avx512.vbroadcast.ss.ps.512
+ x86_avx_addsub_pd_256, // llvm.x86.avx.addsub.pd.256
+ x86_avx_addsub_ps_256, // llvm.x86.avx.addsub.ps.256
+ x86_avx_blend_pd_256, // llvm.x86.avx.blend.pd.256
+ x86_avx_blend_ps_256, // llvm.x86.avx.blend.ps.256
+ x86_avx_blendv_pd_256, // llvm.x86.avx.blendv.pd.256
+ x86_avx_blendv_ps_256, // llvm.x86.avx.blendv.ps.256
+ x86_avx_cmp_pd_256, // llvm.x86.avx.cmp.pd.256
+ x86_avx_cmp_ps_256, // llvm.x86.avx.cmp.ps.256
+ x86_avx_cvt_pd2_ps_256, // llvm.x86.avx.cvt.pd2.ps.256
+ x86_avx_cvt_pd2dq_256, // llvm.x86.avx.cvt.pd2dq.256
+ x86_avx_cvt_ps2_pd_256, // llvm.x86.avx.cvt.ps2.pd.256
+ x86_avx_cvt_ps2dq_256, // llvm.x86.avx.cvt.ps2dq.256
+ x86_avx_cvtdq2_pd_256, // llvm.x86.avx.cvtdq2.pd.256
+ x86_avx_cvtdq2_ps_256, // llvm.x86.avx.cvtdq2.ps.256
+ x86_avx_cvtt_pd2dq_256, // llvm.x86.avx.cvtt.pd2dq.256
+ x86_avx_cvtt_ps2dq_256, // llvm.x86.avx.cvtt.ps2dq.256
+ x86_avx_dp_ps_256, // llvm.x86.avx.dp.ps.256
+ x86_avx_hadd_pd_256, // llvm.x86.avx.hadd.pd.256
+ x86_avx_hadd_ps_256, // llvm.x86.avx.hadd.ps.256
+ x86_avx_hsub_pd_256, // llvm.x86.avx.hsub.pd.256
+ x86_avx_hsub_ps_256, // llvm.x86.avx.hsub.ps.256
+ x86_avx_ldu_dq_256, // llvm.x86.avx.ldu.dq.256
+ x86_avx_maskload_pd, // llvm.x86.avx.maskload.pd
+ x86_avx_maskload_pd_256, // llvm.x86.avx.maskload.pd.256
+ x86_avx_maskload_ps, // llvm.x86.avx.maskload.ps
+ x86_avx_maskload_ps_256, // llvm.x86.avx.maskload.ps.256
+ x86_avx_maskstore_pd, // llvm.x86.avx.maskstore.pd
+ x86_avx_maskstore_pd_256, // llvm.x86.avx.maskstore.pd.256
+ x86_avx_maskstore_ps, // llvm.x86.avx.maskstore.ps
+ x86_avx_maskstore_ps_256, // llvm.x86.avx.maskstore.ps.256
+ x86_avx_max_pd_256, // llvm.x86.avx.max.pd.256
+ x86_avx_max_ps_256, // llvm.x86.avx.max.ps.256
+ x86_avx_min_pd_256, // llvm.x86.avx.min.pd.256
+ x86_avx_min_ps_256, // llvm.x86.avx.min.ps.256
+ x86_avx_movmsk_pd_256, // llvm.x86.avx.movmsk.pd.256
+ x86_avx_movmsk_ps_256, // llvm.x86.avx.movmsk.ps.256
+ x86_avx_ptestc_256, // llvm.x86.avx.ptestc.256
+ x86_avx_ptestnzc_256, // llvm.x86.avx.ptestnzc.256
+ x86_avx_ptestz_256, // llvm.x86.avx.ptestz.256
+ x86_avx_rcp_ps_256, // llvm.x86.avx.rcp.ps.256
+ x86_avx_round_pd_256, // llvm.x86.avx.round.pd.256
+ x86_avx_round_ps_256, // llvm.x86.avx.round.ps.256
+ x86_avx_rsqrt_ps_256, // llvm.x86.avx.rsqrt.ps.256
+ x86_avx_sqrt_pd_256, // llvm.x86.avx.sqrt.pd.256
+ x86_avx_sqrt_ps_256, // llvm.x86.avx.sqrt.ps.256
+ x86_avx_storeu_dq_256, // llvm.x86.avx.storeu.dq.256
+ x86_avx_storeu_pd_256, // llvm.x86.avx.storeu.pd.256
+ x86_avx_storeu_ps_256, // llvm.x86.avx.storeu.ps.256
+ x86_avx_vbroadcastf128_pd_256, // llvm.x86.avx.vbroadcastf128.pd.256
+ x86_avx_vbroadcastf128_ps_256, // llvm.x86.avx.vbroadcastf128.ps.256
+ x86_avx_vextractf128_pd_256, // llvm.x86.avx.vextractf128.pd.256
+ x86_avx_vextractf128_ps_256, // llvm.x86.avx.vextractf128.ps.256
+ x86_avx_vextractf128_si_256, // llvm.x86.avx.vextractf128.si.256
+ x86_avx_vinsertf128_pd_256, // llvm.x86.avx.vinsertf128.pd.256
+ x86_avx_vinsertf128_ps_256, // llvm.x86.avx.vinsertf128.ps.256
+ x86_avx_vinsertf128_si_256, // llvm.x86.avx.vinsertf128.si.256
+ x86_avx_vperm2f128_pd_256, // llvm.x86.avx.vperm2f128.pd.256
+ x86_avx_vperm2f128_ps_256, // llvm.x86.avx.vperm2f128.ps.256
+ x86_avx_vperm2f128_si_256, // llvm.x86.avx.vperm2f128.si.256
+ x86_avx_vpermilvar_pd, // llvm.x86.avx.vpermilvar.pd
+ x86_avx_vpermilvar_pd_256, // llvm.x86.avx.vpermilvar.pd.256
+ x86_avx_vpermilvar_ps, // llvm.x86.avx.vpermilvar.ps
+ x86_avx_vpermilvar_ps_256, // llvm.x86.avx.vpermilvar.ps.256
+ x86_avx_vtestc_pd, // llvm.x86.avx.vtestc.pd
+ x86_avx_vtestc_pd_256, // llvm.x86.avx.vtestc.pd.256
+ x86_avx_vtestc_ps, // llvm.x86.avx.vtestc.ps
+ x86_avx_vtestc_ps_256, // llvm.x86.avx.vtestc.ps.256
+ x86_avx_vtestnzc_pd, // llvm.x86.avx.vtestnzc.pd
+ x86_avx_vtestnzc_pd_256, // llvm.x86.avx.vtestnzc.pd.256
+ x86_avx_vtestnzc_ps, // llvm.x86.avx.vtestnzc.ps
+ x86_avx_vtestnzc_ps_256, // llvm.x86.avx.vtestnzc.ps.256
+ x86_avx_vtestz_pd, // llvm.x86.avx.vtestz.pd
+ x86_avx_vtestz_pd_256, // llvm.x86.avx.vtestz.pd.256
+ x86_avx_vtestz_ps, // llvm.x86.avx.vtestz.ps
+ x86_avx_vtestz_ps_256, // llvm.x86.avx.vtestz.ps.256
+ x86_avx_vzeroall, // llvm.x86.avx.vzeroall
+ x86_avx_vzeroupper, // llvm.x86.avx.vzeroupper
+ x86_bmi_bextr_32, // llvm.x86.bmi.bextr.32
+ x86_bmi_bextr_64, // llvm.x86.bmi.bextr.64
+ x86_bmi_bzhi_32, // llvm.x86.bmi.bzhi.32
+ x86_bmi_bzhi_64, // llvm.x86.bmi.bzhi.64
+ x86_bmi_pdep_32, // llvm.x86.bmi.pdep.32
+ x86_bmi_pdep_64, // llvm.x86.bmi.pdep.64
+ x86_bmi_pext_32, // llvm.x86.bmi.pext.32
+ x86_bmi_pext_64, // llvm.x86.bmi.pext.64
+ x86_fma_vfmadd_pd, // llvm.x86.fma.vfmadd.pd
+ x86_fma_vfmadd_pd_256, // llvm.x86.fma.vfmadd.pd.256
+ x86_fma_vfmadd_pd_512, // llvm.x86.fma.vfmadd.pd.512
+ x86_fma_vfmadd_ps, // llvm.x86.fma.vfmadd.ps
+ x86_fma_vfmadd_ps_256, // llvm.x86.fma.vfmadd.ps.256
+ x86_fma_vfmadd_ps_512, // llvm.x86.fma.vfmadd.ps.512
+ x86_fma_vfmadd_sd, // llvm.x86.fma.vfmadd.sd
+ x86_fma_vfmadd_ss, // llvm.x86.fma.vfmadd.ss
+ x86_fma_vfmaddsub_pd, // llvm.x86.fma.vfmaddsub.pd
+ x86_fma_vfmaddsub_pd_256, // llvm.x86.fma.vfmaddsub.pd.256
+ x86_fma_vfmaddsub_pd_512, // llvm.x86.fma.vfmaddsub.pd.512
+ x86_fma_vfmaddsub_ps, // llvm.x86.fma.vfmaddsub.ps
+ x86_fma_vfmaddsub_ps_256, // llvm.x86.fma.vfmaddsub.ps.256
+ x86_fma_vfmaddsub_ps_512, // llvm.x86.fma.vfmaddsub.ps.512
+ x86_fma_vfmsub_pd, // llvm.x86.fma.vfmsub.pd
+ x86_fma_vfmsub_pd_256, // llvm.x86.fma.vfmsub.pd.256
+ x86_fma_vfmsub_pd_512, // llvm.x86.fma.vfmsub.pd.512
+ x86_fma_vfmsub_ps, // llvm.x86.fma.vfmsub.ps
+ x86_fma_vfmsub_ps_256, // llvm.x86.fma.vfmsub.ps.256
+ x86_fma_vfmsub_ps_512, // llvm.x86.fma.vfmsub.ps.512
+ x86_fma_vfmsub_sd, // llvm.x86.fma.vfmsub.sd
+ x86_fma_vfmsub_ss, // llvm.x86.fma.vfmsub.ss
+ x86_fma_vfmsubadd_pd, // llvm.x86.fma.vfmsubadd.pd
+ x86_fma_vfmsubadd_pd_256, // llvm.x86.fma.vfmsubadd.pd.256
+ x86_fma_vfmsubadd_pd_512, // llvm.x86.fma.vfmsubadd.pd.512
+ x86_fma_vfmsubadd_ps, // llvm.x86.fma.vfmsubadd.ps
+ x86_fma_vfmsubadd_ps_256, // llvm.x86.fma.vfmsubadd.ps.256
+ x86_fma_vfmsubadd_ps_512, // llvm.x86.fma.vfmsubadd.ps.512
+ x86_fma_vfnmadd_pd, // llvm.x86.fma.vfnmadd.pd
+ x86_fma_vfnmadd_pd_256, // llvm.x86.fma.vfnmadd.pd.256
+ x86_fma_vfnmadd_pd_512, // llvm.x86.fma.vfnmadd.pd.512
+ x86_fma_vfnmadd_ps, // llvm.x86.fma.vfnmadd.ps
+ x86_fma_vfnmadd_ps_256, // llvm.x86.fma.vfnmadd.ps.256
+ x86_fma_vfnmadd_ps_512, // llvm.x86.fma.vfnmadd.ps.512
+ x86_fma_vfnmadd_sd, // llvm.x86.fma.vfnmadd.sd
+ x86_fma_vfnmadd_ss, // llvm.x86.fma.vfnmadd.ss
+ x86_fma_vfnmsub_pd, // llvm.x86.fma.vfnmsub.pd
+ x86_fma_vfnmsub_pd_256, // llvm.x86.fma.vfnmsub.pd.256
+ x86_fma_vfnmsub_pd_512, // llvm.x86.fma.vfnmsub.pd.512
+ x86_fma_vfnmsub_ps, // llvm.x86.fma.vfnmsub.ps
+ x86_fma_vfnmsub_ps_256, // llvm.x86.fma.vfnmsub.ps.256
+ x86_fma_vfnmsub_ps_512, // llvm.x86.fma.vfnmsub.ps.512
+ x86_fma_vfnmsub_sd, // llvm.x86.fma.vfnmsub.sd
+ x86_fma_vfnmsub_ss, // llvm.x86.fma.vfnmsub.ss
+ x86_int, // llvm.x86.int
+ x86_mmx_emms, // llvm.x86.mmx.emms
+ x86_mmx_femms, // llvm.x86.mmx.femms
+ x86_mmx_maskmovq, // llvm.x86.mmx.maskmovq
+ x86_mmx_movnt_dq, // llvm.x86.mmx.movnt.dq
+ x86_mmx_packssdw, // llvm.x86.mmx.packssdw
+ x86_mmx_packsswb, // llvm.x86.mmx.packsswb
+ x86_mmx_packuswb, // llvm.x86.mmx.packuswb
+ x86_mmx_padd_b, // llvm.x86.mmx.padd.b
+ x86_mmx_padd_d, // llvm.x86.mmx.padd.d
+ x86_mmx_padd_q, // llvm.x86.mmx.padd.q
+ x86_mmx_padd_w, // llvm.x86.mmx.padd.w
+ x86_mmx_padds_b, // llvm.x86.mmx.padds.b
+ x86_mmx_padds_w, // llvm.x86.mmx.padds.w
+ x86_mmx_paddus_b, // llvm.x86.mmx.paddus.b
+ x86_mmx_paddus_w, // llvm.x86.mmx.paddus.w
+ x86_mmx_palignr_b, // llvm.x86.mmx.palignr.b
+ x86_mmx_pand, // llvm.x86.mmx.pand
+ x86_mmx_pandn, // llvm.x86.mmx.pandn
+ x86_mmx_pavg_b, // llvm.x86.mmx.pavg.b
+ x86_mmx_pavg_w, // llvm.x86.mmx.pavg.w
+ x86_mmx_pcmpeq_b, // llvm.x86.mmx.pcmpeq.b
+ x86_mmx_pcmpeq_d, // llvm.x86.mmx.pcmpeq.d
+ x86_mmx_pcmpeq_w, // llvm.x86.mmx.pcmpeq.w
+ x86_mmx_pcmpgt_b, // llvm.x86.mmx.pcmpgt.b
+ x86_mmx_pcmpgt_d, // llvm.x86.mmx.pcmpgt.d
+ x86_mmx_pcmpgt_w, // llvm.x86.mmx.pcmpgt.w
+ x86_mmx_pextr_w, // llvm.x86.mmx.pextr.w
+ x86_mmx_pinsr_w, // llvm.x86.mmx.pinsr.w
+ x86_mmx_pmadd_wd, // llvm.x86.mmx.pmadd.wd
+ x86_mmx_pmaxs_w, // llvm.x86.mmx.pmaxs.w
+ x86_mmx_pmaxu_b, // llvm.x86.mmx.pmaxu.b
+ x86_mmx_pmins_w, // llvm.x86.mmx.pmins.w
+ x86_mmx_pminu_b, // llvm.x86.mmx.pminu.b
+ x86_mmx_pmovmskb, // llvm.x86.mmx.pmovmskb
+ x86_mmx_pmulh_w, // llvm.x86.mmx.pmulh.w
+ x86_mmx_pmulhu_w, // llvm.x86.mmx.pmulhu.w
+ x86_mmx_pmull_w, // llvm.x86.mmx.pmull.w
+ x86_mmx_pmulu_dq, // llvm.x86.mmx.pmulu.dq
+ x86_mmx_por, // llvm.x86.mmx.por
+ x86_mmx_psad_bw, // llvm.x86.mmx.psad.bw
+ x86_mmx_psll_d, // llvm.x86.mmx.psll.d
+ x86_mmx_psll_q, // llvm.x86.mmx.psll.q
+ x86_mmx_psll_w, // llvm.x86.mmx.psll.w
+ x86_mmx_pslli_d, // llvm.x86.mmx.pslli.d
+ x86_mmx_pslli_q, // llvm.x86.mmx.pslli.q
+ x86_mmx_pslli_w, // llvm.x86.mmx.pslli.w
+ x86_mmx_psra_d, // llvm.x86.mmx.psra.d
+ x86_mmx_psra_w, // llvm.x86.mmx.psra.w
+ x86_mmx_psrai_d, // llvm.x86.mmx.psrai.d
+ x86_mmx_psrai_w, // llvm.x86.mmx.psrai.w
+ x86_mmx_psrl_d, // llvm.x86.mmx.psrl.d
+ x86_mmx_psrl_q, // llvm.x86.mmx.psrl.q
+ x86_mmx_psrl_w, // llvm.x86.mmx.psrl.w
+ x86_mmx_psrli_d, // llvm.x86.mmx.psrli.d
+ x86_mmx_psrli_q, // llvm.x86.mmx.psrli.q
+ x86_mmx_psrli_w, // llvm.x86.mmx.psrli.w
+ x86_mmx_psub_b, // llvm.x86.mmx.psub.b
+ x86_mmx_psub_d, // llvm.x86.mmx.psub.d
+ x86_mmx_psub_q, // llvm.x86.mmx.psub.q
+ x86_mmx_psub_w, // llvm.x86.mmx.psub.w
+ x86_mmx_psubs_b, // llvm.x86.mmx.psubs.b
+ x86_mmx_psubs_w, // llvm.x86.mmx.psubs.w
+ x86_mmx_psubus_b, // llvm.x86.mmx.psubus.b
+ x86_mmx_psubus_w, // llvm.x86.mmx.psubus.w
+ x86_mmx_punpckhbw, // llvm.x86.mmx.punpckhbw
+ x86_mmx_punpckhdq, // llvm.x86.mmx.punpckhdq
+ x86_mmx_punpckhwd, // llvm.x86.mmx.punpckhwd
+ x86_mmx_punpcklbw, // llvm.x86.mmx.punpcklbw
+ x86_mmx_punpckldq, // llvm.x86.mmx.punpckldq
+ x86_mmx_punpcklwd, // llvm.x86.mmx.punpcklwd
+ x86_mmx_pxor, // llvm.x86.mmx.pxor
+ x86_pclmulqdq, // llvm.x86.pclmulqdq
+ x86_rdfsbase_32, // llvm.x86.rdfsbase.32
+ x86_rdfsbase_64, // llvm.x86.rdfsbase.64
+ x86_rdgsbase_32, // llvm.x86.rdgsbase.32
+ x86_rdgsbase_64, // llvm.x86.rdgsbase.64
+ x86_rdpmc, // llvm.x86.rdpmc
+ x86_rdrand_16, // llvm.x86.rdrand.16
+ x86_rdrand_32, // llvm.x86.rdrand.32
+ x86_rdrand_64, // llvm.x86.rdrand.64
+ x86_rdseed_16, // llvm.x86.rdseed.16
+ x86_rdseed_32, // llvm.x86.rdseed.32
+ x86_rdseed_64, // llvm.x86.rdseed.64
+ x86_rdtsc, // llvm.x86.rdtsc
+ x86_rdtscp, // llvm.x86.rdtscp
+ x86_sha1msg1, // llvm.x86.sha1msg1
+ x86_sha1msg2, // llvm.x86.sha1msg2
+ x86_sha1nexte, // llvm.x86.sha1nexte
+ x86_sha1rnds4, // llvm.x86.sha1rnds4
+ x86_sha256msg1, // llvm.x86.sha256msg1
+ x86_sha256msg2, // llvm.x86.sha256msg2
+ x86_sha256rnds2, // llvm.x86.sha256rnds2
+ 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_pause, // llvm.x86.sse2.pause
+ 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_pshuf_d, // llvm.x86.sse2.pshuf.d
+ x86_sse2_pshufh_w, // llvm.x86.sse2.pshufh.w
+ x86_sse2_pshufl_w, // llvm.x86.sse2.pshufl.w
+ 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_pcmpestri128, // llvm.x86.sse42.pcmpestri128
+ x86_sse42_pcmpestria128, // llvm.x86.sse42.pcmpestria128
+ x86_sse42_pcmpestric128, // llvm.x86.sse42.pcmpestric128
+ x86_sse42_pcmpestrio128, // llvm.x86.sse42.pcmpestrio128
+ x86_sse42_pcmpestris128, // llvm.x86.sse42.pcmpestris128
+ x86_sse42_pcmpestriz128, // llvm.x86.sse42.pcmpestriz128
+ x86_sse42_pcmpestrm128, // llvm.x86.sse42.pcmpestrm128
+ x86_sse42_pcmpistri128, // llvm.x86.sse42.pcmpistri128
+ x86_sse42_pcmpistria128, // llvm.x86.sse42.pcmpistria128
+ x86_sse42_pcmpistric128, // llvm.x86.sse42.pcmpistric128
+ x86_sse42_pcmpistrio128, // llvm.x86.sse42.pcmpistrio128
+ x86_sse42_pcmpistris128, // llvm.x86.sse42.pcmpistris128
+ x86_sse42_pcmpistriz128, // llvm.x86.sse42.pcmpistriz128
+ x86_sse42_pcmpistrm128, // llvm.x86.sse42.pcmpistrm128
+ x86_sse4a_extrq, // llvm.x86.sse4a.extrq
+ x86_sse4a_extrqi, // llvm.x86.sse4a.extrqi
+ x86_sse4a_insertq, // llvm.x86.sse4a.insertq
+ x86_sse4a_insertqi, // llvm.x86.sse4a.insertqi
+ x86_sse4a_movnt_sd, // llvm.x86.sse4a.movnt.sd
+ x86_sse4a_movnt_ss, // llvm.x86.sse4a.movnt.ss
+ x86_sse_add_ss, // llvm.x86.sse.add.ss
+ x86_sse_cmp_ps, // llvm.x86.sse.cmp.ps
+ x86_sse_cmp_ss, // llvm.x86.sse.cmp.ss
+ x86_sse_comieq_ss, // llvm.x86.sse.comieq.ss
+ x86_sse_comige_ss, // llvm.x86.sse.comige.ss
+ x86_sse_comigt_ss, // llvm.x86.sse.comigt.ss
+ x86_sse_comile_ss, // llvm.x86.sse.comile.ss
+ x86_sse_comilt_ss, // llvm.x86.sse.comilt.ss
+ x86_sse_comineq_ss, // llvm.x86.sse.comineq.ss
+ x86_sse_cvtpd2pi, // llvm.x86.sse.cvtpd2pi
+ x86_sse_cvtpi2pd, // llvm.x86.sse.cvtpi2pd
+ x86_sse_cvtpi2ps, // llvm.x86.sse.cvtpi2ps
+ x86_sse_cvtps2pi, // llvm.x86.sse.cvtps2pi
+ x86_sse_cvtsi2ss, // llvm.x86.sse.cvtsi2ss
+ x86_sse_cvtsi642ss, // llvm.x86.sse.cvtsi642ss
+ x86_sse_cvtss2si, // llvm.x86.sse.cvtss2si
+ x86_sse_cvtss2si64, // llvm.x86.sse.cvtss2si64
+ x86_sse_cvttpd2pi, // llvm.x86.sse.cvttpd2pi
+ x86_sse_cvttps2pi, // llvm.x86.sse.cvttps2pi
+ x86_sse_cvttss2si, // llvm.x86.sse.cvttss2si
+ x86_sse_cvttss2si64, // llvm.x86.sse.cvttss2si64
+ x86_sse_div_ss, // llvm.x86.sse.div.ss
+ x86_sse_ldmxcsr, // llvm.x86.sse.ldmxcsr
+ x86_sse_max_ps, // llvm.x86.sse.max.ps
+ x86_sse_max_ss, // llvm.x86.sse.max.ss
+ x86_sse_min_ps, // llvm.x86.sse.min.ps
+ x86_sse_min_ss, // llvm.x86.sse.min.ss
+ x86_sse_movmsk_ps, // llvm.x86.sse.movmsk.ps
+ x86_sse_mul_ss, // llvm.x86.sse.mul.ss
+ x86_sse_pshuf_w, // llvm.x86.sse.pshuf.w
+ x86_sse_rcp_ps, // llvm.x86.sse.rcp.ps
+ x86_sse_rcp_ss, // llvm.x86.sse.rcp.ss
+ x86_sse_rsqrt_ps, // llvm.x86.sse.rsqrt.ps
+ x86_sse_rsqrt_ss, // llvm.x86.sse.rsqrt.ss
+ x86_sse_sfence, // llvm.x86.sse.sfence
+ x86_sse_sqrt_ps, // llvm.x86.sse.sqrt.ps
+ x86_sse_sqrt_ss, // llvm.x86.sse.sqrt.ss
+ x86_sse_stmxcsr, // llvm.x86.sse.stmxcsr
+ x86_sse_storeu_ps, // llvm.x86.sse.storeu.ps
+ x86_sse_sub_ss, // llvm.x86.sse.sub.ss
+ x86_sse_ucomieq_ss, // llvm.x86.sse.ucomieq.ss
+ x86_sse_ucomige_ss, // llvm.x86.sse.ucomige.ss
+ x86_sse_ucomigt_ss, // llvm.x86.sse.ucomigt.ss
+ x86_sse_ucomile_ss, // llvm.x86.sse.ucomile.ss
+ x86_sse_ucomilt_ss, // llvm.x86.sse.ucomilt.ss
+ x86_sse_ucomineq_ss, // llvm.x86.sse.ucomineq.ss
+ x86_ssse3_pabs_b, // llvm.x86.ssse3.pabs.b
+ x86_ssse3_pabs_b_128, // llvm.x86.ssse3.pabs.b.128
+ x86_ssse3_pabs_d, // llvm.x86.ssse3.pabs.d
+ x86_ssse3_pabs_d_128, // llvm.x86.ssse3.pabs.d.128
+ x86_ssse3_pabs_w, // llvm.x86.ssse3.pabs.w
+ x86_ssse3_pabs_w_128, // llvm.x86.ssse3.pabs.w.128
+ x86_ssse3_phadd_d, // llvm.x86.ssse3.phadd.d
+ x86_ssse3_phadd_d_128, // llvm.x86.ssse3.phadd.d.128
+ x86_ssse3_phadd_sw, // llvm.x86.ssse3.phadd.sw
+ x86_ssse3_phadd_sw_128, // llvm.x86.ssse3.phadd.sw.128
+ x86_ssse3_phadd_w, // llvm.x86.ssse3.phadd.w
+ x86_ssse3_phadd_w_128, // llvm.x86.ssse3.phadd.w.128
+ x86_ssse3_phsub_d, // llvm.x86.ssse3.phsub.d
+ x86_ssse3_phsub_d_128, // llvm.x86.ssse3.phsub.d.128
+ x86_ssse3_phsub_sw, // llvm.x86.ssse3.phsub.sw
+ x86_ssse3_phsub_sw_128, // llvm.x86.ssse3.phsub.sw.128
+ x86_ssse3_phsub_w, // llvm.x86.ssse3.phsub.w
+ x86_ssse3_phsub_w_128, // llvm.x86.ssse3.phsub.w.128
+ x86_ssse3_pmadd_ub_sw, // llvm.x86.ssse3.pmadd.ub.sw
+ x86_ssse3_pmadd_ub_sw_128, // llvm.x86.ssse3.pmadd.ub.sw.128
+ x86_ssse3_pmul_hr_sw, // llvm.x86.ssse3.pmul.hr.sw
+ x86_ssse3_pmul_hr_sw_128, // llvm.x86.ssse3.pmul.hr.sw.128
+ x86_ssse3_pshuf_b, // llvm.x86.ssse3.pshuf.b
+ x86_ssse3_pshuf_b_128, // llvm.x86.ssse3.pshuf.b.128
+ x86_ssse3_psign_b, // llvm.x86.ssse3.psign.b
+ x86_ssse3_psign_b_128, // llvm.x86.ssse3.psign.b.128
+ x86_ssse3_psign_d, // llvm.x86.ssse3.psign.d
+ x86_ssse3_psign_d_128, // llvm.x86.ssse3.psign.d.128
+ x86_ssse3_psign_w, // llvm.x86.ssse3.psign.w
+ x86_ssse3_psign_w_128, // llvm.x86.ssse3.psign.w.128
+ x86_tbm_bextri_u32, // llvm.x86.tbm.bextri.u32
+ x86_tbm_bextri_u64, // llvm.x86.tbm.bextri.u64
+ 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_xabort, // llvm.x86.xabort
+ x86_xbegin, // llvm.x86.xbegin
+ x86_xend, // llvm.x86.xend
+ x86_xop_vfrcz_pd, // llvm.x86.xop.vfrcz.pd
+ x86_xop_vfrcz_pd_256, // llvm.x86.xop.vfrcz.pd.256
+ x86_xop_vfrcz_ps, // llvm.x86.xop.vfrcz.ps
+ x86_xop_vfrcz_ps_256, // llvm.x86.xop.vfrcz.ps.256
+ x86_xop_vfrcz_sd, // llvm.x86.xop.vfrcz.sd
+ x86_xop_vfrcz_ss, // llvm.x86.xop.vfrcz.ss
+ x86_xop_vpcmov, // llvm.x86.xop.vpcmov
+ x86_xop_vpcmov_256, // llvm.x86.xop.vpcmov.256
+ x86_xop_vpcomb, // llvm.x86.xop.vpcomb
+ x86_xop_vpcomd, // llvm.x86.xop.vpcomd
+ x86_xop_vpcomq, // llvm.x86.xop.vpcomq
+ x86_xop_vpcomub, // llvm.x86.xop.vpcomub
+ x86_xop_vpcomud, // llvm.x86.xop.vpcomud
+ x86_xop_vpcomuq, // llvm.x86.xop.vpcomuq
+ x86_xop_vpcomuw, // llvm.x86.xop.vpcomuw
+ x86_xop_vpcomw, // llvm.x86.xop.vpcomw
+ x86_xop_vpermil2pd, // llvm.x86.xop.vpermil2pd
+ x86_xop_vpermil2pd_256, // llvm.x86.xop.vpermil2pd.256
+ x86_xop_vpermil2ps, // llvm.x86.xop.vpermil2ps
+ x86_xop_vpermil2ps_256, // llvm.x86.xop.vpermil2ps.256
+ x86_xop_vphaddbd, // llvm.x86.xop.vphaddbd
+ x86_xop_vphaddbq, // llvm.x86.xop.vphaddbq
+ x86_xop_vphaddbw, // llvm.x86.xop.vphaddbw
+ x86_xop_vphadddq, // llvm.x86.xop.vphadddq
+ x86_xop_vphaddubd, // llvm.x86.xop.vphaddubd
+ x86_xop_vphaddubq, // llvm.x86.xop.vphaddubq
+ x86_xop_vphaddubw, // llvm.x86.xop.vphaddubw
+ x86_xop_vphaddudq, // llvm.x86.xop.vphaddudq
+ x86_xop_vphadduwd, // llvm.x86.xop.vphadduwd
+ x86_xop_vphadduwq, // llvm.x86.xop.vphadduwq
+ x86_xop_vphaddwd, // llvm.x86.xop.vphaddwd
+ x86_xop_vphaddwq, // llvm.x86.xop.vphaddwq
+ x86_xop_vphsubbw, // llvm.x86.xop.vphsubbw
+ x86_xop_vphsubdq, // llvm.x86.xop.vphsubdq
+ x86_xop_vphsubwd, // llvm.x86.xop.vphsubwd
+ x86_xop_vpmacsdd, // llvm.x86.xop.vpmacsdd
+ x86_xop_vpmacsdqh, // llvm.x86.xop.vpmacsdqh
+ x86_xop_vpmacsdql, // llvm.x86.xop.vpmacsdql
+ x86_xop_vpmacssdd, // llvm.x86.xop.vpmacssdd
+ x86_xop_vpmacssdqh, // llvm.x86.xop.vpmacssdqh
+ x86_xop_vpmacssdql, // llvm.x86.xop.vpmacssdql
+ x86_xop_vpmacsswd, // llvm.x86.xop.vpmacsswd
+ x86_xop_vpmacssww, // llvm.x86.xop.vpmacssww
+ x86_xop_vpmacswd, // llvm.x86.xop.vpmacswd
+ x86_xop_vpmacsww, // llvm.x86.xop.vpmacsww
+ x86_xop_vpmadcsswd, // llvm.x86.xop.vpmadcsswd
+ x86_xop_vpmadcswd, // llvm.x86.xop.vpmadcswd
+ x86_xop_vpperm, // llvm.x86.xop.vpperm
+ x86_xop_vprotb, // llvm.x86.xop.vprotb
+ x86_xop_vprotbi, // llvm.x86.xop.vprotbi
+ x86_xop_vprotd, // llvm.x86.xop.vprotd
+ x86_xop_vprotdi, // llvm.x86.xop.vprotdi
+ x86_xop_vprotq, // llvm.x86.xop.vprotq
+ x86_xop_vprotqi, // llvm.x86.xop.vprotqi
+ x86_xop_vprotw, // llvm.x86.xop.vprotw
+ x86_xop_vprotwi, // llvm.x86.xop.vprotwi
+ x86_xop_vpshab, // llvm.x86.xop.vpshab
+ x86_xop_vpshad, // llvm.x86.xop.vpshad
+ x86_xop_vpshaq, // llvm.x86.xop.vpshaq
+ x86_xop_vpshaw, // llvm.x86.xop.vpshaw
+ x86_xop_vpshlb, // llvm.x86.xop.vpshlb
+ x86_xop_vpshld, // llvm.x86.xop.vpshld
+ x86_xop_vpshlq, // llvm.x86.xop.vpshlq
+ x86_xop_vpshlw, // llvm.x86.xop.vpshlw
+ x86_xtest, // llvm.x86.xtest
+ xcore_bitrev, // llvm.xcore.bitrev
+ xcore_checkevent, // llvm.xcore.checkevent
+ xcore_chkct, // llvm.xcore.chkct
+ xcore_clre, // llvm.xcore.clre
+ xcore_clrpt, // llvm.xcore.clrpt
+ xcore_clrsr, // llvm.xcore.clrsr
+ xcore_crc32, // llvm.xcore.crc32
+ xcore_crc8, // llvm.xcore.crc8
+ xcore_edu, // llvm.xcore.edu
+ 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.AMDGPU.div.fixup",
+ "llvm.AMDGPU.div.fmas",
+ "llvm.AMDGPU.div.scale",
+ "llvm.AMDGPU.rcp",
+ "llvm.AMDGPU.rsq",
+ "llvm.AMDGPU.rsq.clamped",
+ "llvm.AMDGPU.trig.preop",
+ "llvm.aarch64.clrex",
+ "llvm.aarch64.crc32b",
+ "llvm.aarch64.crc32cb",
+ "llvm.aarch64.crc32ch",
+ "llvm.aarch64.crc32cw",
+ "llvm.aarch64.crc32cx",
+ "llvm.aarch64.crc32h",
+ "llvm.aarch64.crc32w",
+ "llvm.aarch64.crc32x",
+ "llvm.aarch64.crypto.aesd",
+ "llvm.aarch64.crypto.aese",
+ "llvm.aarch64.crypto.aesimc",
+ "llvm.aarch64.crypto.aesmc",
+ "llvm.aarch64.crypto.sha1c",
+ "llvm.aarch64.crypto.sha1h",
+ "llvm.aarch64.crypto.sha1m",
+ "llvm.aarch64.crypto.sha1p",
+ "llvm.aarch64.crypto.sha1su0",
+ "llvm.aarch64.crypto.sha1su1",
+ "llvm.aarch64.crypto.sha256h",
+ "llvm.aarch64.crypto.sha256h2",
+ "llvm.aarch64.crypto.sha256su0",
+ "llvm.aarch64.crypto.sha256su1",
+ "llvm.aarch64.dmb",
+ "llvm.aarch64.dsb",
+ "llvm.aarch64.hint",
+ "llvm.aarch64.isb",
+ "llvm.aarch64.ldaxp",
+ "llvm.aarch64.ldaxr",
+ "llvm.aarch64.ldxp",
+ "llvm.aarch64.ldxr",
+ "llvm.aarch64.neon.abs",
+ "llvm.aarch64.neon.addhn",
+ "llvm.aarch64.neon.addp",
+ "llvm.aarch64.neon.cls",
+ "llvm.aarch64.neon.fabd",
+ "llvm.aarch64.neon.facge",
+ "llvm.aarch64.neon.facgt",
+ "llvm.aarch64.neon.faddv",
+ "llvm.aarch64.neon.fcvtas",
+ "llvm.aarch64.neon.fcvtau",
+ "llvm.aarch64.neon.fcvtms",
+ "llvm.aarch64.neon.fcvtmu",
+ "llvm.aarch64.neon.fcvtns",
+ "llvm.aarch64.neon.fcvtnu",
+ "llvm.aarch64.neon.fcvtps",
+ "llvm.aarch64.neon.fcvtpu",
+ "llvm.aarch64.neon.fcvtxn",
+ "llvm.aarch64.neon.fcvtzs",
+ "llvm.aarch64.neon.fcvtzu",
+ "llvm.aarch64.neon.fmax",
+ "llvm.aarch64.neon.fmaxnm",
+ "llvm.aarch64.neon.fmaxnmp",
+ "llvm.aarch64.neon.fmaxnmv",
+ "llvm.aarch64.neon.fmaxp",
+ "llvm.aarch64.neon.fmaxv",
+ "llvm.aarch64.neon.fmin",
+ "llvm.aarch64.neon.fminnm",
+ "llvm.aarch64.neon.fminnmp",
+ "llvm.aarch64.neon.fminnmv",
+ "llvm.aarch64.neon.fminp",
+ "llvm.aarch64.neon.fminv",
+ "llvm.aarch64.neon.fmulx",
+ "llvm.aarch64.neon.frecpe",
+ "llvm.aarch64.neon.frecps",
+ "llvm.aarch64.neon.frecpx",
+ "llvm.aarch64.neon.frintn",
+ "llvm.aarch64.neon.frsqrte",
+ "llvm.aarch64.neon.frsqrts",
+ "llvm.aarch64.neon.ld1x2",
+ "llvm.aarch64.neon.ld1x3",
+ "llvm.aarch64.neon.ld1x4",
+ "llvm.aarch64.neon.ld2",
+ "llvm.aarch64.neon.ld2lane",
+ "llvm.aarch64.neon.ld2r",
+ "llvm.aarch64.neon.ld3",
+ "llvm.aarch64.neon.ld3lane",
+ "llvm.aarch64.neon.ld3r",
+ "llvm.aarch64.neon.ld4",
+ "llvm.aarch64.neon.ld4lane",
+ "llvm.aarch64.neon.ld4r",
+ "llvm.aarch64.neon.pmul",
+ "llvm.aarch64.neon.pmull",
+ "llvm.aarch64.neon.pmull64",
+ "llvm.aarch64.neon.raddhn",
+ "llvm.aarch64.neon.rbit",
+ "llvm.aarch64.neon.rshrn",
+ "llvm.aarch64.neon.rsubhn",
+ "llvm.aarch64.neon.sabd",
+ "llvm.aarch64.neon.saddlp",
+ "llvm.aarch64.neon.saddlv",
+ "llvm.aarch64.neon.saddv",
+ "llvm.aarch64.neon.scalar.sqxtn",
+ "llvm.aarch64.neon.scalar.sqxtun",
+ "llvm.aarch64.neon.scalar.uqxtn",
+ "llvm.aarch64.neon.shadd",
+ "llvm.aarch64.neon.shll",
+ "llvm.aarch64.neon.shsub",
+ "llvm.aarch64.neon.smax",
+ "llvm.aarch64.neon.smaxp",
+ "llvm.aarch64.neon.smaxv",
+ "llvm.aarch64.neon.smin",
+ "llvm.aarch64.neon.sminp",
+ "llvm.aarch64.neon.sminv",
+ "llvm.aarch64.neon.smull",
+ "llvm.aarch64.neon.sqabs",
+ "llvm.aarch64.neon.sqadd",
+ "llvm.aarch64.neon.sqdmulh",
+ "llvm.aarch64.neon.sqdmull",
+ "llvm.aarch64.neon.sqdmulls.scalar",
+ "llvm.aarch64.neon.sqneg",
+ "llvm.aarch64.neon.sqrdmulh",
+ "llvm.aarch64.neon.sqrshl",
+ "llvm.aarch64.neon.sqrshrn",
+ "llvm.aarch64.neon.sqrshrun",
+ "llvm.aarch64.neon.sqshl",
+ "llvm.aarch64.neon.sqshlu",
+ "llvm.aarch64.neon.sqshrn",
+ "llvm.aarch64.neon.sqshrun",
+ "llvm.aarch64.neon.sqsub",
+ "llvm.aarch64.neon.sqxtn",
+ "llvm.aarch64.neon.sqxtun",
+ "llvm.aarch64.neon.srhadd",
+ "llvm.aarch64.neon.srshl",
+ "llvm.aarch64.neon.sshl",
+ "llvm.aarch64.neon.sshll",
+ "llvm.aarch64.neon.st1x2",
+ "llvm.aarch64.neon.st1x3",
+ "llvm.aarch64.neon.st1x4",
+ "llvm.aarch64.neon.st2",
+ "llvm.aarch64.neon.st2lane",
+ "llvm.aarch64.neon.st3",
+ "llvm.aarch64.neon.st3lane",
+ "llvm.aarch64.neon.st4",
+ "llvm.aarch64.neon.st4lane",
+ "llvm.aarch64.neon.subhn",
+ "llvm.aarch64.neon.suqadd",
+ "llvm.aarch64.neon.tbl1",
+ "llvm.aarch64.neon.tbl2",
+ "llvm.aarch64.neon.tbl3",
+ "llvm.aarch64.neon.tbl4",
+ "llvm.aarch64.neon.tbx1",
+ "llvm.aarch64.neon.tbx2",
+ "llvm.aarch64.neon.tbx3",
+ "llvm.aarch64.neon.tbx4",
+ "llvm.aarch64.neon.uabd",
+ "llvm.aarch64.neon.uaddlp",
+ "llvm.aarch64.neon.uaddlv",
+ "llvm.aarch64.neon.uaddv",
+ "llvm.aarch64.neon.uhadd",
+ "llvm.aarch64.neon.uhsub",
+ "llvm.aarch64.neon.umax",
+ "llvm.aarch64.neon.umaxp",
+ "llvm.aarch64.neon.umaxv",
+ "llvm.aarch64.neon.umin",
+ "llvm.aarch64.neon.uminp",
+ "llvm.aarch64.neon.uminv",
+ "llvm.aarch64.neon.umull",
+ "llvm.aarch64.neon.uqadd",
+ "llvm.aarch64.neon.uqrshl",
+ "llvm.aarch64.neon.uqrshrn",
+ "llvm.aarch64.neon.uqshl",
+ "llvm.aarch64.neon.uqshrn",
+ "llvm.aarch64.neon.uqsub",
+ "llvm.aarch64.neon.uqxtn",
+ "llvm.aarch64.neon.urecpe",
+ "llvm.aarch64.neon.urhadd",
+ "llvm.aarch64.neon.urshl",
+ "llvm.aarch64.neon.ursqrte",
+ "llvm.aarch64.neon.ushl",
+ "llvm.aarch64.neon.ushll",
+ "llvm.aarch64.neon.usqadd",
+ "llvm.aarch64.neon.vcopy.lane",
+ "llvm.aarch64.neon.vcvtfp2fxs",
+ "llvm.aarch64.neon.vcvtfp2fxu",
+ "llvm.aarch64.neon.vcvtfp2hf",
+ "llvm.aarch64.neon.vcvtfxs2fp",
+ "llvm.aarch64.neon.vcvtfxu2fp",
+ "llvm.aarch64.neon.vcvthf2fp",
+ "llvm.aarch64.neon.vsli",
+ "llvm.aarch64.neon.vsri",
+ "llvm.aarch64.rbit",
+ "llvm.aarch64.sdiv",
+ "llvm.aarch64.sisd.fabd",
+ "llvm.aarch64.sisd.fcvtxn",
+ "llvm.aarch64.stlxp",
+ "llvm.aarch64.stlxr",
+ "llvm.aarch64.stxp",
+ "llvm.aarch64.stxr",
+ "llvm.aarch64.udiv",
+ "llvm.adjust.trampoline",
+ "llvm.annotation",
+ "llvm.arm.cdp",
+ "llvm.arm.cdp2",
+ "llvm.arm.clrex",
+ "llvm.arm.crc32b",
+ "llvm.arm.crc32cb",
+ "llvm.arm.crc32ch",
+ "llvm.arm.crc32cw",
+ "llvm.arm.crc32h",
+ "llvm.arm.crc32w",
+ "llvm.arm.dmb",
+ "llvm.arm.dsb",
+ "llvm.arm.get.fpscr",
+ "llvm.arm.hint",
+ "llvm.arm.isb",
+ "llvm.arm.ldaex",
+ "llvm.arm.ldaexd",
+ "llvm.arm.ldrex",
+ "llvm.arm.ldrexd",
+ "llvm.arm.mcr",
+ "llvm.arm.mcr2",
+ "llvm.arm.mcrr",
+ "llvm.arm.mcrr2",
+ "llvm.arm.mrc",
+ "llvm.arm.mrc2",
+ "llvm.arm.neon.aesd",
+ "llvm.arm.neon.aese",
+ "llvm.arm.neon.aesimc",
+ "llvm.arm.neon.aesmc",
+ "llvm.arm.neon.sha1c",
+ "llvm.arm.neon.sha1h",
+ "llvm.arm.neon.sha1m",
+ "llvm.arm.neon.sha1p",
+ "llvm.arm.neon.sha1su0",
+ "llvm.arm.neon.sha1su1",
+ "llvm.arm.neon.sha256h",
+ "llvm.arm.neon.sha256h2",
+ "llvm.arm.neon.sha256su0",
+ "llvm.arm.neon.sha256su1",
+ "llvm.arm.neon.vabds",
+ "llvm.arm.neon.vabdu",
+ "llvm.arm.neon.vabs",
+ "llvm.arm.neon.vacge",
+ "llvm.arm.neon.vacgt",
+ "llvm.arm.neon.vbsl",
+ "llvm.arm.neon.vcls",
+ "llvm.arm.neon.vclz",
+ "llvm.arm.neon.vcnt",
+ "llvm.arm.neon.vcvtas",
+ "llvm.arm.neon.vcvtau",
+ "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.vcvtms",
+ "llvm.arm.neon.vcvtmu",
+ "llvm.arm.neon.vcvtns",
+ "llvm.arm.neon.vcvtnu",
+ "llvm.arm.neon.vcvtps",
+ "llvm.arm.neon.vcvtpu",
+ "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.vmaxnm",
+ "llvm.arm.neon.vmaxs",
+ "llvm.arm.neon.vmaxu",
+ "llvm.arm.neon.vminnm",
+ "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.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.vrinta",
+ "llvm.arm.neon.vrintm",
+ "llvm.arm.neon.vrintn",
+ "llvm.arm.neon.vrintp",
+ "llvm.arm.neon.vrintx",
+ "llvm.arm.neon.vrintz",
+ "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.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.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.rbit",
+ "llvm.arm.set.fpscr",
+ "llvm.arm.ssat",
+ "llvm.arm.stlex",
+ "llvm.arm.stlexd",
+ "llvm.arm.strex",
+ "llvm.arm.strexd",
+ "llvm.arm.thread.pointer",
+ "llvm.arm.undefined",
+ "llvm.arm.usat",
+ "llvm.arm.vcvtr",
+ "llvm.arm.vcvtru",
+ "llvm.bswap",
+ "llvm.ceil",
+ "llvm.clear_cache",
+ "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.copysign",
+ "llvm.cos",
+ "llvm.ctlz",
+ "llvm.ctpop",
+ "llvm.cttz",
+ "llvm.cuda.syncthreads",
+ "llvm.dbg.declare",
+ "llvm.dbg.value",
+ "llvm.debugtrap",
+ "llvm.donothing",
+ "llvm.eh.dwarf.cfa",
+ "llvm.eh.return.i32",
+ "llvm.eh.return.i64",
+ "llvm.eh.sjlj.callsite",
+ "llvm.eh.sjlj.functioncontext",
+ "llvm.eh.sjlj.longjmp",
+ "llvm.eh.sjlj.lsda",
+ "llvm.eh.sjlj.setjmp",
+ "llvm.eh.typeid.for",
+ "llvm.eh.unwind.init",
+ "llvm.exp",
+ "llvm.exp2",
+ "llvm.expect",
+ "llvm.experimental.patchpoint.i64",
+ "llvm.experimental.patchpoint.void",
+ "llvm.experimental.stackmap",
+ "llvm.fabs",
+ "llvm.floor",
+ "llvm.flt.rounds",
+ "llvm.fma",
+ "llvm.fmuladd",
+ "llvm.frameaddress",
+ "llvm.gcread",
+ "llvm.gcroot",
+ "llvm.gcwrite",
+ "llvm.hexagon.A2.abs",
+ "llvm.hexagon.A2.absp",
+ "llvm.hexagon.A2.abssat",
+ "llvm.hexagon.A2.add",
+ "llvm.hexagon.A2.addh.h16.hh",
+ "llvm.hexagon.A2.addh.h16.hl",
+ "llvm.hexagon.A2.addh.h16.lh",
+ "llvm.hexagon.A2.addh.h16.ll",
+ "llvm.hexagon.A2.addh.h16.sat.hh",
+ "llvm.hexagon.A2.addh.h16.sat.hl",
+ "llvm.hexagon.A2.addh.h16.sat.lh",
+ "llvm.hexagon.A2.addh.h16.sat.ll",
+ "llvm.hexagon.A2.addh.l16.hl",
+ "llvm.hexagon.A2.addh.l16.ll",
+ "llvm.hexagon.A2.addh.l16.sat.hl",
+ "llvm.hexagon.A2.addh.l16.sat.ll",
+ "llvm.hexagon.A2.addi",
+ "llvm.hexagon.A2.addp",
+ "llvm.hexagon.A2.addpsat",
+ "llvm.hexagon.A2.addsat",
+ "llvm.hexagon.A2.addsp",
+ "llvm.hexagon.A2.and",
+ "llvm.hexagon.A2.andir",
+ "llvm.hexagon.A2.andp",
+ "llvm.hexagon.A2.aslh",
+ "llvm.hexagon.A2.asrh",
+ "llvm.hexagon.A2.combine.hh",
+ "llvm.hexagon.A2.combine.hl",
+ "llvm.hexagon.A2.combine.lh",
+ "llvm.hexagon.A2.combine.ll",
+ "llvm.hexagon.A2.combineii",
+ "llvm.hexagon.A2.combinew",
+ "llvm.hexagon.A2.max",
+ "llvm.hexagon.A2.maxp",
+ "llvm.hexagon.A2.maxu",
+ "llvm.hexagon.A2.maxup",
+ "llvm.hexagon.A2.min",
+ "llvm.hexagon.A2.minp",
+ "llvm.hexagon.A2.minu",
+ "llvm.hexagon.A2.minup",
+ "llvm.hexagon.A2.neg",
+ "llvm.hexagon.A2.negp",
+ "llvm.hexagon.A2.negsat",
+ "llvm.hexagon.A2.not",
+ "llvm.hexagon.A2.notp",
+ "llvm.hexagon.A2.or",
+ "llvm.hexagon.A2.orir",
+ "llvm.hexagon.A2.orp",
+ "llvm.hexagon.A2.roundsat",
+ "llvm.hexagon.A2.sat",
+ "llvm.hexagon.A2.satb",
+ "llvm.hexagon.A2.sath",
+ "llvm.hexagon.A2.satub",
+ "llvm.hexagon.A2.satuh",
+ "llvm.hexagon.A2.sub",
+ "llvm.hexagon.A2.subh.h16.hh",
+ "llvm.hexagon.A2.subh.h16.hl",
+ "llvm.hexagon.A2.subh.h16.lh",
+ "llvm.hexagon.A2.subh.h16.ll",
+ "llvm.hexagon.A2.subh.h16.sat.hh",
+ "llvm.hexagon.A2.subh.h16.sat.hl",
+ "llvm.hexagon.A2.subh.h16.sat.lh",
+ "llvm.hexagon.A2.subh.h16.sat.ll",
+ "llvm.hexagon.A2.subh.l16.hl",
+ "llvm.hexagon.A2.subh.l16.ll",
+ "llvm.hexagon.A2.subh.l16.sat.hl",
+ "llvm.hexagon.A2.subh.l16.sat.ll",
+ "llvm.hexagon.A2.subp",
+ "llvm.hexagon.A2.subri",
+ "llvm.hexagon.A2.subsat",
+ "llvm.hexagon.A2.svaddh",
+ "llvm.hexagon.A2.svaddhs",
+ "llvm.hexagon.A2.svadduhs",
+ "llvm.hexagon.A2.svavgh",
+ "llvm.hexagon.A2.svavghs",
+ "llvm.hexagon.A2.svnavgh",
+ "llvm.hexagon.A2.svsubh",
+ "llvm.hexagon.A2.svsubhs",
+ "llvm.hexagon.A2.svsubuhs",
+ "llvm.hexagon.A2.swiz",
+ "llvm.hexagon.A2.sxtb",
+ "llvm.hexagon.A2.sxth",
+ "llvm.hexagon.A2.sxtw",
+ "llvm.hexagon.A2.tfr",
+ "llvm.hexagon.A2.tfrih",
+ "llvm.hexagon.A2.tfril",
+ "llvm.hexagon.A2.tfrp",
+ "llvm.hexagon.A2.tfrpi",
+ "llvm.hexagon.A2.tfrsi",
+ "llvm.hexagon.A2.vabsh",
+ "llvm.hexagon.A2.vabshsat",
+ "llvm.hexagon.A2.vabsw",
+ "llvm.hexagon.A2.vabswsat",
+ "llvm.hexagon.A2.vaddb.map",
+ "llvm.hexagon.A2.vaddh",
+ "llvm.hexagon.A2.vaddhs",
+ "llvm.hexagon.A2.vaddub",
+ "llvm.hexagon.A2.vaddubs",
+ "llvm.hexagon.A2.vadduhs",
+ "llvm.hexagon.A2.vaddw",
+ "llvm.hexagon.A2.vaddws",
+ "llvm.hexagon.A2.vavgh",
+ "llvm.hexagon.A2.vavghcr",
+ "llvm.hexagon.A2.vavghr",
+ "llvm.hexagon.A2.vavgub",
+ "llvm.hexagon.A2.vavgubr",
+ "llvm.hexagon.A2.vavguh",
+ "llvm.hexagon.A2.vavguhr",
+ "llvm.hexagon.A2.vavguw",
+ "llvm.hexagon.A2.vavguwr",
+ "llvm.hexagon.A2.vavgw",
+ "llvm.hexagon.A2.vavgwcr",
+ "llvm.hexagon.A2.vavgwr",
+ "llvm.hexagon.A2.vcmpbeq",
+ "llvm.hexagon.A2.vcmpbgtu",
+ "llvm.hexagon.A2.vcmpheq",
+ "llvm.hexagon.A2.vcmphgt",
+ "llvm.hexagon.A2.vcmphgtu",
+ "llvm.hexagon.A2.vcmpweq",
+ "llvm.hexagon.A2.vcmpwgt",
+ "llvm.hexagon.A2.vcmpwgtu",
+ "llvm.hexagon.A2.vconj",
+ "llvm.hexagon.A2.vmaxb",
+ "llvm.hexagon.A2.vmaxh",
+ "llvm.hexagon.A2.vmaxub",
+ "llvm.hexagon.A2.vmaxuh",
+ "llvm.hexagon.A2.vmaxuw",
+ "llvm.hexagon.A2.vmaxw",
+ "llvm.hexagon.A2.vminb",
+ "llvm.hexagon.A2.vminh",
+ "llvm.hexagon.A2.vminub",
+ "llvm.hexagon.A2.vminuh",
+ "llvm.hexagon.A2.vminuw",
+ "llvm.hexagon.A2.vminw",
+ "llvm.hexagon.A2.vnavgh",
+ "llvm.hexagon.A2.vnavghcr",
+ "llvm.hexagon.A2.vnavghr",
+ "llvm.hexagon.A2.vnavgw",
+ "llvm.hexagon.A2.vnavgwcr",
+ "llvm.hexagon.A2.vnavgwr",
+ "llvm.hexagon.A2.vraddub",
+ "llvm.hexagon.A2.vraddub.acc",
+ "llvm.hexagon.A2.vrsadub",
+ "llvm.hexagon.A2.vrsadub.acc",
+ "llvm.hexagon.A2.vsubb.map",
+ "llvm.hexagon.A2.vsubh",
+ "llvm.hexagon.A2.vsubhs",
+ "llvm.hexagon.A2.vsubub",
+ "llvm.hexagon.A2.vsububs",
+ "llvm.hexagon.A2.vsubuhs",
+ "llvm.hexagon.A2.vsubw",
+ "llvm.hexagon.A2.vsubws",
+ "llvm.hexagon.A2.xor",
+ "llvm.hexagon.A2.xorp",
+ "llvm.hexagon.A2.zxtb",
+ "llvm.hexagon.A2.zxth",
+ "llvm.hexagon.A4.andn",
+ "llvm.hexagon.A4.andnp",
+ "llvm.hexagon.A4.bitsplit",
+ "llvm.hexagon.A4.bitspliti",
+ "llvm.hexagon.A4.boundscheck",
+ "llvm.hexagon.A4.cmpbeq",
+ "llvm.hexagon.A4.cmpbeqi",
+ "llvm.hexagon.A4.cmpbgt",
+ "llvm.hexagon.A4.cmpbgti",
+ "llvm.hexagon.A4.cmpbgtu",
+ "llvm.hexagon.A4.cmpbgtui",
+ "llvm.hexagon.A4.cmpheq",
+ "llvm.hexagon.A4.cmpheqi",
+ "llvm.hexagon.A4.cmphgt",
+ "llvm.hexagon.A4.cmphgti",
+ "llvm.hexagon.A4.cmphgtu",
+ "llvm.hexagon.A4.cmphgtui",
+ "llvm.hexagon.A4.combineir",
+ "llvm.hexagon.A4.combineri",
+ "llvm.hexagon.A4.cround.ri",
+ "llvm.hexagon.A4.cround.rr",
+ "llvm.hexagon.A4.modwrapu",
+ "llvm.hexagon.A4.orn",
+ "llvm.hexagon.A4.ornp",
+ "llvm.hexagon.A4.rcmpeq",
+ "llvm.hexagon.A4.rcmpeqi",
+ "llvm.hexagon.A4.rcmpneq",
+ "llvm.hexagon.A4.rcmpneqi",
+ "llvm.hexagon.A4.round.ri",
+ "llvm.hexagon.A4.round.ri.sat",
+ "llvm.hexagon.A4.round.rr",
+ "llvm.hexagon.A4.round.rr.sat",
+ "llvm.hexagon.A4.tlbmatch",
+ "llvm.hexagon.A4.vcmpbeq.any",
+ "llvm.hexagon.A4.vcmpbeqi",
+ "llvm.hexagon.A4.vcmpbgt",
+ "llvm.hexagon.A4.vcmpbgti",
+ "llvm.hexagon.A4.vcmpbgtui",
+ "llvm.hexagon.A4.vcmpheqi",
+ "llvm.hexagon.A4.vcmphgti",
+ "llvm.hexagon.A4.vcmphgtui",
+ "llvm.hexagon.A4.vcmpweqi",
+ "llvm.hexagon.A4.vcmpwgti",
+ "llvm.hexagon.A4.vcmpwgtui",
+ "llvm.hexagon.A4.vrmaxh",
+ "llvm.hexagon.A4.vrmaxuh",
+ "llvm.hexagon.A4.vrmaxuw",
+ "llvm.hexagon.A4.vrmaxw",
+ "llvm.hexagon.A4.vrminh",
+ "llvm.hexagon.A4.vrminuh",
+ "llvm.hexagon.A4.vrminuw",
+ "llvm.hexagon.A4.vrminw",
+ "llvm.hexagon.A5.vaddhubs",
+ "llvm.hexagon.C2.all8",
+ "llvm.hexagon.C2.and",
+ "llvm.hexagon.C2.andn",
+ "llvm.hexagon.C2.any8",
+ "llvm.hexagon.C2.bitsclr",
+ "llvm.hexagon.C2.bitsclri",
+ "llvm.hexagon.C2.bitsset",
+ "llvm.hexagon.C2.cmpeq",
+ "llvm.hexagon.C2.cmpeqi",
+ "llvm.hexagon.C2.cmpeqp",
+ "llvm.hexagon.C2.cmpgei",
+ "llvm.hexagon.C2.cmpgeui",
+ "llvm.hexagon.C2.cmpgt",
+ "llvm.hexagon.C2.cmpgti",
+ "llvm.hexagon.C2.cmpgtp",
+ "llvm.hexagon.C2.cmpgtu",
+ "llvm.hexagon.C2.cmpgtui",
+ "llvm.hexagon.C2.cmpgtup",
+ "llvm.hexagon.C2.cmplt",
+ "llvm.hexagon.C2.cmpltu",
+ "llvm.hexagon.C2.mask",
+ "llvm.hexagon.C2.mux",
+ "llvm.hexagon.C2.muxii",
+ "llvm.hexagon.C2.muxir",
+ "llvm.hexagon.C2.muxri",
+ "llvm.hexagon.C2.not",
+ "llvm.hexagon.C2.or",
+ "llvm.hexagon.C2.orn",
+ "llvm.hexagon.C2.pxfer.map",
+ "llvm.hexagon.C2.tfrpr",
+ "llvm.hexagon.C2.tfrrp",
+ "llvm.hexagon.C2.vitpack",
+ "llvm.hexagon.C2.vmux",
+ "llvm.hexagon.C2.xor",
+ "llvm.hexagon.C4.and.and",
+ "llvm.hexagon.C4.and.andn",
+ "llvm.hexagon.C4.and.or",
+ "llvm.hexagon.C4.and.orn",
+ "llvm.hexagon.C4.cmplte",
+ "llvm.hexagon.C4.cmpltei",
+ "llvm.hexagon.C4.cmplteu",
+ "llvm.hexagon.C4.cmplteui",
+ "llvm.hexagon.C4.cmpneq",
+ "llvm.hexagon.C4.cmpneqi",
+ "llvm.hexagon.C4.fastcorner9",
+ "llvm.hexagon.C4.fastcorner9.not",
+ "llvm.hexagon.C4.nbitsclr",
+ "llvm.hexagon.C4.nbitsclri",
+ "llvm.hexagon.C4.nbitsset",
+ "llvm.hexagon.C4.or.and",
+ "llvm.hexagon.C4.or.andn",
+ "llvm.hexagon.C4.or.or",
+ "llvm.hexagon.C4.or.orn",
+ "llvm.hexagon.F2.conv.d2df",
+ "llvm.hexagon.F2.conv.d2sf",
+ "llvm.hexagon.F2.conv.df2d",
+ "llvm.hexagon.F2.conv.df2d.chop",
+ "llvm.hexagon.F2.conv.df2sf",
+ "llvm.hexagon.F2.conv.df2ud",
+ "llvm.hexagon.F2.conv.df2ud.chop",
+ "llvm.hexagon.F2.conv.df2uw",
+ "llvm.hexagon.F2.conv.df2uw.chop",
+ "llvm.hexagon.F2.conv.df2w",
+ "llvm.hexagon.F2.conv.df2w.chop",
+ "llvm.hexagon.F2.conv.sf2d",
+ "llvm.hexagon.F2.conv.sf2d.chop",
+ "llvm.hexagon.F2.conv.sf2df",
+ "llvm.hexagon.F2.conv.sf2ud",
+ "llvm.hexagon.F2.conv.sf2ud.chop",
+ "llvm.hexagon.F2.conv.sf2uw",
+ "llvm.hexagon.F2.conv.sf2uw.chop",
+ "llvm.hexagon.F2.conv.sf2w",
+ "llvm.hexagon.F2.conv.sf2w.chop",
+ "llvm.hexagon.F2.conv.ud2df",
+ "llvm.hexagon.F2.conv.ud2sf",
+ "llvm.hexagon.F2.conv.uw2df",
+ "llvm.hexagon.F2.conv.uw2sf",
+ "llvm.hexagon.F2.conv.w2df",
+ "llvm.hexagon.F2.conv.w2sf",
+ "llvm.hexagon.F2.dfadd",
+ "llvm.hexagon.F2.dfclass",
+ "llvm.hexagon.F2.dfcmpeq",
+ "llvm.hexagon.F2.dfcmpge",
+ "llvm.hexagon.F2.dfcmpgt",
+ "llvm.hexagon.F2.dfcmpuo",
+ "llvm.hexagon.F2.dffixupd",
+ "llvm.hexagon.F2.dffixupn",
+ "llvm.hexagon.F2.dffixupr",
+ "llvm.hexagon.F2.dffma",
+ "llvm.hexagon.F2.dffma.lib",
+ "llvm.hexagon.F2.dffma.sc",
+ "llvm.hexagon.F2.dffms",
+ "llvm.hexagon.F2.dffms.lib",
+ "llvm.hexagon.F2.dfimm.n",
+ "llvm.hexagon.F2.dfimm.p",
+ "llvm.hexagon.F2.dfmax",
+ "llvm.hexagon.F2.dfmin",
+ "llvm.hexagon.F2.dfmpy",
+ "llvm.hexagon.F2.dfsub",
+ "llvm.hexagon.F2.sfadd",
+ "llvm.hexagon.F2.sfclass",
+ "llvm.hexagon.F2.sfcmpeq",
+ "llvm.hexagon.F2.sfcmpge",
+ "llvm.hexagon.F2.sfcmpgt",
+ "llvm.hexagon.F2.sfcmpuo",
+ "llvm.hexagon.F2.sffixupd",
+ "llvm.hexagon.F2.sffixupn",
+ "llvm.hexagon.F2.sffixupr",
+ "llvm.hexagon.F2.sffma",
+ "llvm.hexagon.F2.sffma.lib",
+ "llvm.hexagon.F2.sffma.sc",
+ "llvm.hexagon.F2.sffms",
+ "llvm.hexagon.F2.sffms.lib",
+ "llvm.hexagon.F2.sfimm.n",
+ "llvm.hexagon.F2.sfimm.p",
+ "llvm.hexagon.F2.sfmax",
+ "llvm.hexagon.F2.sfmin",
+ "llvm.hexagon.F2.sfmpy",
+ "llvm.hexagon.F2.sfsub",
+ "llvm.hexagon.M2.acci",
+ "llvm.hexagon.M2.accii",
+ "llvm.hexagon.M2.cmaci.s0",
+ "llvm.hexagon.M2.cmacr.s0",
+ "llvm.hexagon.M2.cmacs.s0",
+ "llvm.hexagon.M2.cmacs.s1",
+ "llvm.hexagon.M2.cmacsc.s0",
+ "llvm.hexagon.M2.cmacsc.s1",
+ "llvm.hexagon.M2.cmpyi.s0",
+ "llvm.hexagon.M2.cmpyr.s0",
+ "llvm.hexagon.M2.cmpyrs.s0",
+ "llvm.hexagon.M2.cmpyrs.s1",
+ "llvm.hexagon.M2.cmpyrsc.s0",
+ "llvm.hexagon.M2.cmpyrsc.s1",
+ "llvm.hexagon.M2.cmpys.s0",
+ "llvm.hexagon.M2.cmpys.s1",
+ "llvm.hexagon.M2.cmpysc.s0",
+ "llvm.hexagon.M2.cmpysc.s1",
+ "llvm.hexagon.M2.cnacs.s0",
+ "llvm.hexagon.M2.cnacs.s1",
+ "llvm.hexagon.M2.cnacsc.s0",
+ "llvm.hexagon.M2.cnacsc.s1",
+ "llvm.hexagon.M2.dpmpyss.acc.s0",
+ "llvm.hexagon.M2.dpmpyss.nac.s0",
+ "llvm.hexagon.M2.dpmpyss.rnd.s0",
+ "llvm.hexagon.M2.dpmpyss.s0",
+ "llvm.hexagon.M2.dpmpyuu.acc.s0",
+ "llvm.hexagon.M2.dpmpyuu.nac.s0",
+ "llvm.hexagon.M2.dpmpyuu.s0",
+ "llvm.hexagon.M2.hmmpyh.rs1",
+ "llvm.hexagon.M2.hmmpyh.s1",
+ "llvm.hexagon.M2.hmmpyl.rs1",
+ "llvm.hexagon.M2.hmmpyl.s1",
+ "llvm.hexagon.M2.maci",
+ "llvm.hexagon.M2.macsin",
+ "llvm.hexagon.M2.macsip",
+ "llvm.hexagon.M2.mmachs.rs0",
+ "llvm.hexagon.M2.mmachs.rs1",
+ "llvm.hexagon.M2.mmachs.s0",
+ "llvm.hexagon.M2.mmachs.s1",
+ "llvm.hexagon.M2.mmacls.rs0",
+ "llvm.hexagon.M2.mmacls.rs1",
+ "llvm.hexagon.M2.mmacls.s0",
+ "llvm.hexagon.M2.mmacls.s1",
+ "llvm.hexagon.M2.mmacuhs.rs0",
+ "llvm.hexagon.M2.mmacuhs.rs1",
+ "llvm.hexagon.M2.mmacuhs.s0",
+ "llvm.hexagon.M2.mmacuhs.s1",
+ "llvm.hexagon.M2.mmaculs.rs0",
+ "llvm.hexagon.M2.mmaculs.rs1",
+ "llvm.hexagon.M2.mmaculs.s0",
+ "llvm.hexagon.M2.mmaculs.s1",
+ "llvm.hexagon.M2.mmpyh.rs0",
+ "llvm.hexagon.M2.mmpyh.rs1",
+ "llvm.hexagon.M2.mmpyh.s0",
+ "llvm.hexagon.M2.mmpyh.s1",
+ "llvm.hexagon.M2.mmpyl.rs0",
+ "llvm.hexagon.M2.mmpyl.rs1",
+ "llvm.hexagon.M2.mmpyl.s0",
+ "llvm.hexagon.M2.mmpyl.s1",
+ "llvm.hexagon.M2.mmpyuh.rs0",
+ "llvm.hexagon.M2.mmpyuh.rs1",
+ "llvm.hexagon.M2.mmpyuh.s0",
+ "llvm.hexagon.M2.mmpyuh.s1",
+ "llvm.hexagon.M2.mmpyul.rs0",
+ "llvm.hexagon.M2.mmpyul.rs1",
+ "llvm.hexagon.M2.mmpyul.s0",
+ "llvm.hexagon.M2.mmpyul.s1",
+ "llvm.hexagon.M2.mpy.acc.hh.s0",
+ "llvm.hexagon.M2.mpy.acc.hh.s1",
+ "llvm.hexagon.M2.mpy.acc.hl.s0",
+ "llvm.hexagon.M2.mpy.acc.hl.s1",
+ "llvm.hexagon.M2.mpy.acc.lh.s0",
+ "llvm.hexagon.M2.mpy.acc.lh.s1",
+ "llvm.hexagon.M2.mpy.acc.ll.s0",
+ "llvm.hexagon.M2.mpy.acc.ll.s1",
+ "llvm.hexagon.M2.mpy.acc.sat.hh.s0",
+ "llvm.hexagon.M2.mpy.acc.sat.hh.s1",
+ "llvm.hexagon.M2.mpy.acc.sat.hl.s0",
+ "llvm.hexagon.M2.mpy.acc.sat.hl.s1",
+ "llvm.hexagon.M2.mpy.acc.sat.lh.s0",
+ "llvm.hexagon.M2.mpy.acc.sat.lh.s1",
+ "llvm.hexagon.M2.mpy.acc.sat.ll.s0",
+ "llvm.hexagon.M2.mpy.acc.sat.ll.s1",
+ "llvm.hexagon.M2.mpy.hh.s0",
+ "llvm.hexagon.M2.mpy.hh.s1",
+ "llvm.hexagon.M2.mpy.hl.s0",
+ "llvm.hexagon.M2.mpy.hl.s1",
+ "llvm.hexagon.M2.mpy.lh.s0",
+ "llvm.hexagon.M2.mpy.lh.s1",
+ "llvm.hexagon.M2.mpy.ll.s0",
+ "llvm.hexagon.M2.mpy.ll.s1",
+ "llvm.hexagon.M2.mpy.nac.hh.s0",
+ "llvm.hexagon.M2.mpy.nac.hh.s1",
+ "llvm.hexagon.M2.mpy.nac.hl.s0",
+ "llvm.hexagon.M2.mpy.nac.hl.s1",
+ "llvm.hexagon.M2.mpy.nac.lh.s0",
+ "llvm.hexagon.M2.mpy.nac.lh.s1",
+ "llvm.hexagon.M2.mpy.nac.ll.s0",
+ "llvm.hexagon.M2.mpy.nac.ll.s1",
+ "llvm.hexagon.M2.mpy.nac.sat.hh.s0",
+ "llvm.hexagon.M2.mpy.nac.sat.hh.s1",
+ "llvm.hexagon.M2.mpy.nac.sat.hl.s0",
+ "llvm.hexagon.M2.mpy.nac.sat.hl.s1",
+ "llvm.hexagon.M2.mpy.nac.sat.lh.s0",
+ "llvm.hexagon.M2.mpy.nac.sat.lh.s1",
+ "llvm.hexagon.M2.mpy.nac.sat.ll.s0",
+ "llvm.hexagon.M2.mpy.nac.sat.ll.s1",
+ "llvm.hexagon.M2.mpy.rnd.hh.s0",
+ "llvm.hexagon.M2.mpy.rnd.hh.s1",
+ "llvm.hexagon.M2.mpy.rnd.hl.s0",
+ "llvm.hexagon.M2.mpy.rnd.hl.s1",
+ "llvm.hexagon.M2.mpy.rnd.lh.s0",
+ "llvm.hexagon.M2.mpy.rnd.lh.s1",
+ "llvm.hexagon.M2.mpy.rnd.ll.s0",
+ "llvm.hexagon.M2.mpy.rnd.ll.s1",
+ "llvm.hexagon.M2.mpy.sat.hh.s0",
+ "llvm.hexagon.M2.mpy.sat.hh.s1",
+ "llvm.hexagon.M2.mpy.sat.hl.s0",
+ "llvm.hexagon.M2.mpy.sat.hl.s1",
+ "llvm.hexagon.M2.mpy.sat.lh.s0",
+ "llvm.hexagon.M2.mpy.sat.lh.s1",
+ "llvm.hexagon.M2.mpy.sat.ll.s0",
+ "llvm.hexagon.M2.mpy.sat.ll.s1",
+ "llvm.hexagon.M2.mpy.sat.rnd.hh.s0",
+ "llvm.hexagon.M2.mpy.sat.rnd.hh.s1",
+ "llvm.hexagon.M2.mpy.sat.rnd.hl.s0",
+ "llvm.hexagon.M2.mpy.sat.rnd.hl.s1",
+ "llvm.hexagon.M2.mpy.sat.rnd.lh.s0",
+ "llvm.hexagon.M2.mpy.sat.rnd.lh.s1",
+ "llvm.hexagon.M2.mpy.sat.rnd.ll.s0",
+ "llvm.hexagon.M2.mpy.sat.rnd.ll.s1",
+ "llvm.hexagon.M2.mpy.up",
+ "llvm.hexagon.M2.mpy.up.s1",
+ "llvm.hexagon.M2.mpy.up.s1.sat",
+ "llvm.hexagon.M2.mpyd.acc.hh.s0",
+ "llvm.hexagon.M2.mpyd.acc.hh.s1",
+ "llvm.hexagon.M2.mpyd.acc.hl.s0",
+ "llvm.hexagon.M2.mpyd.acc.hl.s1",
+ "llvm.hexagon.M2.mpyd.acc.lh.s0",
+ "llvm.hexagon.M2.mpyd.acc.lh.s1",
+ "llvm.hexagon.M2.mpyd.acc.ll.s0",
+ "llvm.hexagon.M2.mpyd.acc.ll.s1",
+ "llvm.hexagon.M2.mpyd.hh.s0",
+ "llvm.hexagon.M2.mpyd.hh.s1",
+ "llvm.hexagon.M2.mpyd.hl.s0",
+ "llvm.hexagon.M2.mpyd.hl.s1",
+ "llvm.hexagon.M2.mpyd.lh.s0",
+ "llvm.hexagon.M2.mpyd.lh.s1",
+ "llvm.hexagon.M2.mpyd.ll.s0",
+ "llvm.hexagon.M2.mpyd.ll.s1",
+ "llvm.hexagon.M2.mpyd.nac.hh.s0",
+ "llvm.hexagon.M2.mpyd.nac.hh.s1",
+ "llvm.hexagon.M2.mpyd.nac.hl.s0",
+ "llvm.hexagon.M2.mpyd.nac.hl.s1",
+ "llvm.hexagon.M2.mpyd.nac.lh.s0",
+ "llvm.hexagon.M2.mpyd.nac.lh.s1",
+ "llvm.hexagon.M2.mpyd.nac.ll.s0",
+ "llvm.hexagon.M2.mpyd.nac.ll.s1",
+ "llvm.hexagon.M2.mpyd.rnd.hh.s0",
+ "llvm.hexagon.M2.mpyd.rnd.hh.s1",
+ "llvm.hexagon.M2.mpyd.rnd.hl.s0",
+ "llvm.hexagon.M2.mpyd.rnd.hl.s1",
+ "llvm.hexagon.M2.mpyd.rnd.lh.s0",
+ "llvm.hexagon.M2.mpyd.rnd.lh.s1",
+ "llvm.hexagon.M2.mpyd.rnd.ll.s0",
+ "llvm.hexagon.M2.mpyd.rnd.ll.s1",
+ "llvm.hexagon.M2.mpyi",
+ "llvm.hexagon.M2.mpysmi",
+ "llvm.hexagon.M2.mpysu.up",
+ "llvm.hexagon.M2.mpyu.acc.hh.s0",
+ "llvm.hexagon.M2.mpyu.acc.hh.s1",
+ "llvm.hexagon.M2.mpyu.acc.hl.s0",
+ "llvm.hexagon.M2.mpyu.acc.hl.s1",
+ "llvm.hexagon.M2.mpyu.acc.lh.s0",
+ "llvm.hexagon.M2.mpyu.acc.lh.s1",
+ "llvm.hexagon.M2.mpyu.acc.ll.s0",
+ "llvm.hexagon.M2.mpyu.acc.ll.s1",
+ "llvm.hexagon.M2.mpyu.hh.s0",
+ "llvm.hexagon.M2.mpyu.hh.s1",
+ "llvm.hexagon.M2.mpyu.hl.s0",
+ "llvm.hexagon.M2.mpyu.hl.s1",
+ "llvm.hexagon.M2.mpyu.lh.s0",
+ "llvm.hexagon.M2.mpyu.lh.s1",
+ "llvm.hexagon.M2.mpyu.ll.s0",
+ "llvm.hexagon.M2.mpyu.ll.s1",
+ "llvm.hexagon.M2.mpyu.nac.hh.s0",
+ "llvm.hexagon.M2.mpyu.nac.hh.s1",
+ "llvm.hexagon.M2.mpyu.nac.hl.s0",
+ "llvm.hexagon.M2.mpyu.nac.hl.s1",
+ "llvm.hexagon.M2.mpyu.nac.lh.s0",
+ "llvm.hexagon.M2.mpyu.nac.lh.s1",
+ "llvm.hexagon.M2.mpyu.nac.ll.s0",
+ "llvm.hexagon.M2.mpyu.nac.ll.s1",
+ "llvm.hexagon.M2.mpyu.up",
+ "llvm.hexagon.M2.mpyud.acc.hh.s0",
+ "llvm.hexagon.M2.mpyud.acc.hh.s1",
+ "llvm.hexagon.M2.mpyud.acc.hl.s0",
+ "llvm.hexagon.M2.mpyud.acc.hl.s1",
+ "llvm.hexagon.M2.mpyud.acc.lh.s0",
+ "llvm.hexagon.M2.mpyud.acc.lh.s1",
+ "llvm.hexagon.M2.mpyud.acc.ll.s0",
+ "llvm.hexagon.M2.mpyud.acc.ll.s1",
+ "llvm.hexagon.M2.mpyud.hh.s0",
+ "llvm.hexagon.M2.mpyud.hh.s1",
+ "llvm.hexagon.M2.mpyud.hl.s0",
+ "llvm.hexagon.M2.mpyud.hl.s1",
+ "llvm.hexagon.M2.mpyud.lh.s0",
+ "llvm.hexagon.M2.mpyud.lh.s1",
+ "llvm.hexagon.M2.mpyud.ll.s0",
+ "llvm.hexagon.M2.mpyud.ll.s1",
+ "llvm.hexagon.M2.mpyud.nac.hh.s0",
+ "llvm.hexagon.M2.mpyud.nac.hh.s1",
+ "llvm.hexagon.M2.mpyud.nac.hl.s0",
+ "llvm.hexagon.M2.mpyud.nac.hl.s1",
+ "llvm.hexagon.M2.mpyud.nac.lh.s0",
+ "llvm.hexagon.M2.mpyud.nac.lh.s1",
+ "llvm.hexagon.M2.mpyud.nac.ll.s0",
+ "llvm.hexagon.M2.mpyud.nac.ll.s1",
+ "llvm.hexagon.M2.mpyui",
+ "llvm.hexagon.M2.nacci",
+ "llvm.hexagon.M2.naccii",
+ "llvm.hexagon.M2.subacc",
+ "llvm.hexagon.M2.vabsdiffh",
+ "llvm.hexagon.M2.vabsdiffw",
+ "llvm.hexagon.M2.vcmac.s0.sat.i",
+ "llvm.hexagon.M2.vcmac.s0.sat.r",
+ "llvm.hexagon.M2.vcmpy.s0.sat.i",
+ "llvm.hexagon.M2.vcmpy.s0.sat.r",
+ "llvm.hexagon.M2.vcmpy.s1.sat.i",
+ "llvm.hexagon.M2.vcmpy.s1.sat.r",
+ "llvm.hexagon.M2.vdmacs.s0",
+ "llvm.hexagon.M2.vdmacs.s1",
+ "llvm.hexagon.M2.vdmpyrs.s0",
+ "llvm.hexagon.M2.vdmpyrs.s1",
+ "llvm.hexagon.M2.vdmpys.s0",
+ "llvm.hexagon.M2.vdmpys.s1",
+ "llvm.hexagon.M2.vmac2",
+ "llvm.hexagon.M2.vmac2es",
+ "llvm.hexagon.M2.vmac2es.s0",
+ "llvm.hexagon.M2.vmac2es.s1",
+ "llvm.hexagon.M2.vmac2s.s0",
+ "llvm.hexagon.M2.vmac2s.s1",
+ "llvm.hexagon.M2.vmac2su.s0",
+ "llvm.hexagon.M2.vmac2su.s1",
+ "llvm.hexagon.M2.vmpy2es.s0",
+ "llvm.hexagon.M2.vmpy2es.s1",
+ "llvm.hexagon.M2.vmpy2s.s0",
+ "llvm.hexagon.M2.vmpy2s.s0pack",
+ "llvm.hexagon.M2.vmpy2s.s1",
+ "llvm.hexagon.M2.vmpy2s.s1pack",
+ "llvm.hexagon.M2.vmpy2su.s0",
+ "llvm.hexagon.M2.vmpy2su.s1",
+ "llvm.hexagon.M2.vraddh",
+ "llvm.hexagon.M2.vradduh",
+ "llvm.hexagon.M2.vrcmaci.s0",
+ "llvm.hexagon.M2.vrcmaci.s0c",
+ "llvm.hexagon.M2.vrcmacr.s0",
+ "llvm.hexagon.M2.vrcmacr.s0c",
+ "llvm.hexagon.M2.vrcmpyi.s0",
+ "llvm.hexagon.M2.vrcmpyi.s0c",
+ "llvm.hexagon.M2.vrcmpyr.s0",
+ "llvm.hexagon.M2.vrcmpyr.s0c",
+ "llvm.hexagon.M2.vrcmpys.acc.s1",
+ "llvm.hexagon.M2.vrcmpys.s1",
+ "llvm.hexagon.M2.vrcmpys.s1rp",
+ "llvm.hexagon.M2.vrmac.s0",
+ "llvm.hexagon.M2.vrmpy.s0",
+ "llvm.hexagon.M2.xor.xacc",
+ "llvm.hexagon.M4.and.and",
+ "llvm.hexagon.M4.and.andn",
+ "llvm.hexagon.M4.and.or",
+ "llvm.hexagon.M4.and.xor",
+ "llvm.hexagon.M4.cmpyi.wh",
+ "llvm.hexagon.M4.cmpyi.whc",
+ "llvm.hexagon.M4.cmpyr.wh",
+ "llvm.hexagon.M4.cmpyr.whc",
+ "llvm.hexagon.M4.mac.up.s1.sat",
+ "llvm.hexagon.M4.mpyri.addi",
+ "llvm.hexagon.M4.mpyri.addr",
+ "llvm.hexagon.M4.mpyri.addr.u2",
+ "llvm.hexagon.M4.mpyrr.addi",
+ "llvm.hexagon.M4.mpyrr.addr",
+ "llvm.hexagon.M4.nac.up.s1.sat",
+ "llvm.hexagon.M4.or.and",
+ "llvm.hexagon.M4.or.andn",
+ "llvm.hexagon.M4.or.or",
+ "llvm.hexagon.M4.or.xor",
+ "llvm.hexagon.M4.pmpyw",
+ "llvm.hexagon.M4.pmpyw.acc",
+ "llvm.hexagon.M4.vpmpyh",
+ "llvm.hexagon.M4.vpmpyh.acc",
+ "llvm.hexagon.M4.vrmpyeh.acc.s0",
+ "llvm.hexagon.M4.vrmpyeh.acc.s1",
+ "llvm.hexagon.M4.vrmpyeh.s0",
+ "llvm.hexagon.M4.vrmpyeh.s1",
+ "llvm.hexagon.M4.vrmpyoh.acc.s0",
+ "llvm.hexagon.M4.vrmpyoh.acc.s1",
+ "llvm.hexagon.M4.vrmpyoh.s0",
+ "llvm.hexagon.M4.vrmpyoh.s1",
+ "llvm.hexagon.M4.xor.and",
+ "llvm.hexagon.M4.xor.andn",
+ "llvm.hexagon.M4.xor.or",
+ "llvm.hexagon.M4.xor.xacc",
+ "llvm.hexagon.M5.vdmacbsu",
+ "llvm.hexagon.M5.vdmpybsu",
+ "llvm.hexagon.M5.vmacbsu",
+ "llvm.hexagon.M5.vmacbuu",
+ "llvm.hexagon.M5.vmpybsu",
+ "llvm.hexagon.M5.vmpybuu",
+ "llvm.hexagon.M5.vrmacbsu",
+ "llvm.hexagon.M5.vrmacbuu",
+ "llvm.hexagon.M5.vrmpybsu",
+ "llvm.hexagon.M5.vrmpybuu",
+ "llvm.hexagon.S2.addasl.rrri",
+ "llvm.hexagon.S2.asl.i.p",
+ "llvm.hexagon.S2.asl.i.p.acc",
+ "llvm.hexagon.S2.asl.i.p.and",
+ "llvm.hexagon.S2.asl.i.p.nac",
+ "llvm.hexagon.S2.asl.i.p.or",
+ "llvm.hexagon.S2.asl.i.p.xacc",
+ "llvm.hexagon.S2.asl.i.r",
+ "llvm.hexagon.S2.asl.i.r.acc",
+ "llvm.hexagon.S2.asl.i.r.and",
+ "llvm.hexagon.S2.asl.i.r.nac",
+ "llvm.hexagon.S2.asl.i.r.or",
+ "llvm.hexagon.S2.asl.i.r.sat",
+ "llvm.hexagon.S2.asl.i.r.xacc",
+ "llvm.hexagon.S2.asl.i.vh",
+ "llvm.hexagon.S2.asl.i.vw",
+ "llvm.hexagon.S2.asl.r.p",
+ "llvm.hexagon.S2.asl.r.p.acc",
+ "llvm.hexagon.S2.asl.r.p.and",
+ "llvm.hexagon.S2.asl.r.p.nac",
+ "llvm.hexagon.S2.asl.r.p.or",
+ "llvm.hexagon.S2.asl.r.p.xor",
+ "llvm.hexagon.S2.asl.r.r",
+ "llvm.hexagon.S2.asl.r.r.acc",
+ "llvm.hexagon.S2.asl.r.r.and",
+ "llvm.hexagon.S2.asl.r.r.nac",
+ "llvm.hexagon.S2.asl.r.r.or",
+ "llvm.hexagon.S2.asl.r.r.sat",
+ "llvm.hexagon.S2.asl.r.vh",
+ "llvm.hexagon.S2.asl.r.vw",
+ "llvm.hexagon.S2.asr.i.p",
+ "llvm.hexagon.S2.asr.i.p.acc",
+ "llvm.hexagon.S2.asr.i.p.and",
+ "llvm.hexagon.S2.asr.i.p.nac",
+ "llvm.hexagon.S2.asr.i.p.or",
+ "llvm.hexagon.S2.asr.i.p.rnd",
+ "llvm.hexagon.S2.asr.i.p.rnd.goodsyntax",
+ "llvm.hexagon.S2.asr.i.r",
+ "llvm.hexagon.S2.asr.i.r.acc",
+ "llvm.hexagon.S2.asr.i.r.and",
+ "llvm.hexagon.S2.asr.i.r.nac",
+ "llvm.hexagon.S2.asr.i.r.or",
+ "llvm.hexagon.S2.asr.i.r.rnd",
+ "llvm.hexagon.S2.asr.i.r.rnd.goodsyntax",
+ "llvm.hexagon.S2.asr.i.svw.trun",
+ "llvm.hexagon.S2.asr.i.vh",
+ "llvm.hexagon.S2.asr.i.vw",
+ "llvm.hexagon.S2.asr.r.p",
+ "llvm.hexagon.S2.asr.r.p.acc",
+ "llvm.hexagon.S2.asr.r.p.and",
+ "llvm.hexagon.S2.asr.r.p.nac",
+ "llvm.hexagon.S2.asr.r.p.or",
+ "llvm.hexagon.S2.asr.r.p.xor",
+ "llvm.hexagon.S2.asr.r.r",
+ "llvm.hexagon.S2.asr.r.r.acc",
+ "llvm.hexagon.S2.asr.r.r.and",
+ "llvm.hexagon.S2.asr.r.r.nac",
+ "llvm.hexagon.S2.asr.r.r.or",
+ "llvm.hexagon.S2.asr.r.r.sat",
+ "llvm.hexagon.S2.asr.r.svw.trun",
+ "llvm.hexagon.S2.asr.r.vh",
+ "llvm.hexagon.S2.asr.r.vw",
+ "llvm.hexagon.S2.brev",
+ "llvm.hexagon.S2.brevp",
+ "llvm.hexagon.S2.cl0",
+ "llvm.hexagon.S2.cl0p",
+ "llvm.hexagon.S2.cl1",
+ "llvm.hexagon.S2.cl1p",
+ "llvm.hexagon.S2.clb",
+ "llvm.hexagon.S2.clbnorm",
+ "llvm.hexagon.S2.clbp",
+ "llvm.hexagon.S2.clrbit.i",
+ "llvm.hexagon.S2.clrbit.r",
+ "llvm.hexagon.S2.ct0",
+ "llvm.hexagon.S2.ct0p",
+ "llvm.hexagon.S2.ct1",
+ "llvm.hexagon.S2.ct1p",
+ "llvm.hexagon.S2.deinterleave",
+ "llvm.hexagon.S2.extractu",
+ "llvm.hexagon.S2.extractu.rp",
+ "llvm.hexagon.S2.extractup",
+ "llvm.hexagon.S2.extractup.rp",
+ "llvm.hexagon.S2.insert",
+ "llvm.hexagon.S2.insert.rp",
+ "llvm.hexagon.S2.insertp",
+ "llvm.hexagon.S2.insertp.rp",
+ "llvm.hexagon.S2.interleave",
+ "llvm.hexagon.S2.lfsp",
+ "llvm.hexagon.S2.lsl.r.p",
+ "llvm.hexagon.S2.lsl.r.p.acc",
+ "llvm.hexagon.S2.lsl.r.p.and",
+ "llvm.hexagon.S2.lsl.r.p.nac",
+ "llvm.hexagon.S2.lsl.r.p.or",
+ "llvm.hexagon.S2.lsl.r.p.xor",
+ "llvm.hexagon.S2.lsl.r.r",
+ "llvm.hexagon.S2.lsl.r.r.acc",
+ "llvm.hexagon.S2.lsl.r.r.and",
+ "llvm.hexagon.S2.lsl.r.r.nac",
+ "llvm.hexagon.S2.lsl.r.r.or",
+ "llvm.hexagon.S2.lsl.r.vh",
+ "llvm.hexagon.S2.lsl.r.vw",
+ "llvm.hexagon.S2.lsr.i.p",
+ "llvm.hexagon.S2.lsr.i.p.acc",
+ "llvm.hexagon.S2.lsr.i.p.and",
+ "llvm.hexagon.S2.lsr.i.p.nac",
+ "llvm.hexagon.S2.lsr.i.p.or",
+ "llvm.hexagon.S2.lsr.i.p.xacc",
+ "llvm.hexagon.S2.lsr.i.r",
+ "llvm.hexagon.S2.lsr.i.r.acc",
+ "llvm.hexagon.S2.lsr.i.r.and",
+ "llvm.hexagon.S2.lsr.i.r.nac",
+ "llvm.hexagon.S2.lsr.i.r.or",
+ "llvm.hexagon.S2.lsr.i.r.xacc",
+ "llvm.hexagon.S2.lsr.i.vh",
+ "llvm.hexagon.S2.lsr.i.vw",
+ "llvm.hexagon.S2.lsr.r.p",
+ "llvm.hexagon.S2.lsr.r.p.acc",
+ "llvm.hexagon.S2.lsr.r.p.and",
+ "llvm.hexagon.S2.lsr.r.p.nac",
+ "llvm.hexagon.S2.lsr.r.p.or",
+ "llvm.hexagon.S2.lsr.r.p.xor",
+ "llvm.hexagon.S2.lsr.r.r",
+ "llvm.hexagon.S2.lsr.r.r.acc",
+ "llvm.hexagon.S2.lsr.r.r.and",
+ "llvm.hexagon.S2.lsr.r.r.nac",
+ "llvm.hexagon.S2.lsr.r.r.or",
+ "llvm.hexagon.S2.lsr.r.vh",
+ "llvm.hexagon.S2.lsr.r.vw",
+ "llvm.hexagon.S2.packhl",
+ "llvm.hexagon.S2.parityp",
+ "llvm.hexagon.S2.setbit.i",
+ "llvm.hexagon.S2.setbit.r",
+ "llvm.hexagon.S2.shuffeb",
+ "llvm.hexagon.S2.shuffeh",
+ "llvm.hexagon.S2.shuffob",
+ "llvm.hexagon.S2.shuffoh",
+ "llvm.hexagon.S2.svsathb",
+ "llvm.hexagon.S2.svsathub",
+ "llvm.hexagon.S2.tableidxb.goodsyntax",
+ "llvm.hexagon.S2.tableidxd.goodsyntax",
+ "llvm.hexagon.S2.tableidxh.goodsyntax",
+ "llvm.hexagon.S2.tableidxw.goodsyntax",
+ "llvm.hexagon.S2.togglebit.i",
+ "llvm.hexagon.S2.togglebit.r",
+ "llvm.hexagon.S2.tstbit.i",
+ "llvm.hexagon.S2.tstbit.r",
+ "llvm.hexagon.S2.valignib",
+ "llvm.hexagon.S2.valignrb",
+ "llvm.hexagon.S2.vcnegh",
+ "llvm.hexagon.S2.vcrotate",
+ "llvm.hexagon.S2.vrcnegh",
+ "llvm.hexagon.S2.vrndpackwh",
+ "llvm.hexagon.S2.vrndpackwhs",
+ "llvm.hexagon.S2.vsathb",
+ "llvm.hexagon.S2.vsathb.nopack",
+ "llvm.hexagon.S2.vsathub",
+ "llvm.hexagon.S2.vsathub.nopack",
+ "llvm.hexagon.S2.vsatwh",
+ "llvm.hexagon.S2.vsatwh.nopack",
+ "llvm.hexagon.S2.vsatwuh",
+ "llvm.hexagon.S2.vsatwuh.nopack",
+ "llvm.hexagon.S2.vsplatrb",
+ "llvm.hexagon.S2.vsplatrh",
+ "llvm.hexagon.S2.vspliceib",
+ "llvm.hexagon.S2.vsplicerb",
+ "llvm.hexagon.S2.vsxtbh",
+ "llvm.hexagon.S2.vsxthw",
+ "llvm.hexagon.S2.vtrunehb",
+ "llvm.hexagon.S2.vtrunewh",
+ "llvm.hexagon.S2.vtrunohb",
+ "llvm.hexagon.S2.vtrunowh",
+ "llvm.hexagon.S2.vzxtbh",
+ "llvm.hexagon.S2.vzxthw",
+ "llvm.hexagon.S4.addaddi",
+ "llvm.hexagon.S4.addi.asl.ri",
+ "llvm.hexagon.S4.addi.lsr.ri",
+ "llvm.hexagon.S4.andi.asl.ri",
+ "llvm.hexagon.S4.andi.lsr.ri",
+ "llvm.hexagon.S4.clbaddi",
+ "llvm.hexagon.S4.clbpaddi",
+ "llvm.hexagon.S4.clbpnorm",
+ "llvm.hexagon.S4.extract",
+ "llvm.hexagon.S4.extract.rp",
+ "llvm.hexagon.S4.extractp",
+ "llvm.hexagon.S4.extractp.rp",
+ "llvm.hexagon.S4.lsli",
+ "llvm.hexagon.S4.ntstbit.i",
+ "llvm.hexagon.S4.ntstbit.r",
+ "llvm.hexagon.S4.or.andi",
+ "llvm.hexagon.S4.or.andix",
+ "llvm.hexagon.S4.or.ori",
+ "llvm.hexagon.S4.ori.asl.ri",
+ "llvm.hexagon.S4.ori.lsr.ri",
+ "llvm.hexagon.S4.parity",
+ "llvm.hexagon.S4.subaddi",
+ "llvm.hexagon.S4.subi.asl.ri",
+ "llvm.hexagon.S4.subi.lsr.ri",
+ "llvm.hexagon.S4.vrcrotate",
+ "llvm.hexagon.S4.vrcrotate.acc",
+ "llvm.hexagon.S4.vxaddsubh",
+ "llvm.hexagon.S4.vxaddsubhr",
+ "llvm.hexagon.S4.vxaddsubw",
+ "llvm.hexagon.S4.vxsubaddh",
+ "llvm.hexagon.S4.vxsubaddhr",
+ "llvm.hexagon.S4.vxsubaddw",
+ "llvm.hexagon.S5.asrhub.rnd.sat.goodsyntax",
+ "llvm.hexagon.S5.asrhub.sat",
+ "llvm.hexagon.S5.popcountp",
+ "llvm.hexagon.S5.vasrhrnd.goodsyntax",
+ "llvm.hexagon.SI.to.SXTHI.asrh",
+ "llvm.hexagon.circ.ldd",
+ "llvm.init.trampoline",
+ "llvm.invariant.end",
+ "llvm.invariant.start",
+ "llvm.lifetime.end",
+ "llvm.lifetime.start",
+ "llvm.log",
+ "llvm.log10",
+ "llvm.log2",
+ "llvm.longjmp",
+ "llvm.memcpy",
+ "llvm.memmove",
+ "llvm.memset",
+ "llvm.mips.absq.s.ph",
+ "llvm.mips.absq.s.qb",
+ "llvm.mips.absq.s.w",
+ "llvm.mips.add.a.b",
+ "llvm.mips.add.a.d",
+ "llvm.mips.add.a.h",
+ "llvm.mips.add.a.w",
+ "llvm.mips.addq.ph",
+ "llvm.mips.addq.s.ph",
+ "llvm.mips.addq.s.w",
+ "llvm.mips.addqh.ph",
+ "llvm.mips.addqh.r.ph",
+ "llvm.mips.addqh.r.w",
+ "llvm.mips.addqh.w",
+ "llvm.mips.adds.a.b",
+ "llvm.mips.adds.a.d",
+ "llvm.mips.adds.a.h",
+ "llvm.mips.adds.a.w",
+ "llvm.mips.adds.s.b",
+ "llvm.mips.adds.s.d",
+ "llvm.mips.adds.s.h",
+ "llvm.mips.adds.s.w",
+ "llvm.mips.adds.u.b",
+ "llvm.mips.adds.u.d",
+ "llvm.mips.adds.u.h",
+ "llvm.mips.adds.u.w",
+ "llvm.mips.addsc",
+ "llvm.mips.addu.ph",
+ "llvm.mips.addu.qb",
+ "llvm.mips.addu.s.ph",
+ "llvm.mips.addu.s.qb",
+ "llvm.mips.adduh.qb",
+ "llvm.mips.adduh.r.qb",
+ "llvm.mips.addv.b",
+ "llvm.mips.addv.d",
+ "llvm.mips.addv.h",
+ "llvm.mips.addv.w",
+ "llvm.mips.addvi.b",
+ "llvm.mips.addvi.d",
+ "llvm.mips.addvi.h",
+ "llvm.mips.addvi.w",
+ "llvm.mips.addwc",
+ "llvm.mips.and.v",
+ "llvm.mips.andi.b",
+ "llvm.mips.append",
+ "llvm.mips.asub.s.b",
+ "llvm.mips.asub.s.d",
+ "llvm.mips.asub.s.h",
+ "llvm.mips.asub.s.w",
+ "llvm.mips.asub.u.b",
+ "llvm.mips.asub.u.d",
+ "llvm.mips.asub.u.h",
+ "llvm.mips.asub.u.w",
+ "llvm.mips.ave.s.b",
+ "llvm.mips.ave.s.d",
+ "llvm.mips.ave.s.h",
+ "llvm.mips.ave.s.w",
+ "llvm.mips.ave.u.b",
+ "llvm.mips.ave.u.d",
+ "llvm.mips.ave.u.h",
+ "llvm.mips.ave.u.w",
+ "llvm.mips.aver.s.b",
+ "llvm.mips.aver.s.d",
+ "llvm.mips.aver.s.h",
+ "llvm.mips.aver.s.w",
+ "llvm.mips.aver.u.b",
+ "llvm.mips.aver.u.d",
+ "llvm.mips.aver.u.h",
+ "llvm.mips.aver.u.w",
+ "llvm.mips.balign",
+ "llvm.mips.bclr.b",
+ "llvm.mips.bclr.d",
+ "llvm.mips.bclr.h",
+ "llvm.mips.bclr.w",
+ "llvm.mips.bclri.b",
+ "llvm.mips.bclri.d",
+ "llvm.mips.bclri.h",
+ "llvm.mips.bclri.w",
+ "llvm.mips.binsl.b",
+ "llvm.mips.binsl.d",
+ "llvm.mips.binsl.h",
+ "llvm.mips.binsl.w",
+ "llvm.mips.binsli.b",
+ "llvm.mips.binsli.d",
+ "llvm.mips.binsli.h",
+ "llvm.mips.binsli.w",
+ "llvm.mips.binsr.b",
+ "llvm.mips.binsr.d",
+ "llvm.mips.binsr.h",
+ "llvm.mips.binsr.w",
+ "llvm.mips.binsri.b",
+ "llvm.mips.binsri.d",
+ "llvm.mips.binsri.h",
+ "llvm.mips.binsri.w",
+ "llvm.mips.bitrev",
+ "llvm.mips.bmnz.v",
+ "llvm.mips.bmnzi.b",
+ "llvm.mips.bmz.v",
+ "llvm.mips.bmzi.b",
+ "llvm.mips.bneg.b",
+ "llvm.mips.bneg.d",
+ "llvm.mips.bneg.h",
+ "llvm.mips.bneg.w",
+ "llvm.mips.bnegi.b",
+ "llvm.mips.bnegi.d",
+ "llvm.mips.bnegi.h",
+ "llvm.mips.bnegi.w",
+ "llvm.mips.bnz.b",
+ "llvm.mips.bnz.d",
+ "llvm.mips.bnz.h",
+ "llvm.mips.bnz.v",
+ "llvm.mips.bnz.w",
+ "llvm.mips.bposge32",
+ "llvm.mips.bsel.v",
+ "llvm.mips.bseli.b",
+ "llvm.mips.bset.b",
+ "llvm.mips.bset.d",
+ "llvm.mips.bset.h",
+ "llvm.mips.bset.w",
+ "llvm.mips.bseti.b",
+ "llvm.mips.bseti.d",
+ "llvm.mips.bseti.h",
+ "llvm.mips.bseti.w",
+ "llvm.mips.bz.b",
+ "llvm.mips.bz.d",
+ "llvm.mips.bz.h",
+ "llvm.mips.bz.v",
+ "llvm.mips.bz.w",
+ "llvm.mips.ceq.b",
+ "llvm.mips.ceq.d",
+ "llvm.mips.ceq.h",
+ "llvm.mips.ceq.w",
+ "llvm.mips.ceqi.b",
+ "llvm.mips.ceqi.d",
+ "llvm.mips.ceqi.h",
+ "llvm.mips.ceqi.w",
+ "llvm.mips.cfcmsa",
+ "llvm.mips.cle.s.b",
+ "llvm.mips.cle.s.d",
+ "llvm.mips.cle.s.h",
+ "llvm.mips.cle.s.w",
+ "llvm.mips.cle.u.b",
+ "llvm.mips.cle.u.d",
+ "llvm.mips.cle.u.h",
+ "llvm.mips.cle.u.w",
+ "llvm.mips.clei.s.b",
+ "llvm.mips.clei.s.d",
+ "llvm.mips.clei.s.h",
+ "llvm.mips.clei.s.w",
+ "llvm.mips.clei.u.b",
+ "llvm.mips.clei.u.d",
+ "llvm.mips.clei.u.h",
+ "llvm.mips.clei.u.w",
+ "llvm.mips.clt.s.b",
+ "llvm.mips.clt.s.d",
+ "llvm.mips.clt.s.h",
+ "llvm.mips.clt.s.w",
+ "llvm.mips.clt.u.b",
+ "llvm.mips.clt.u.d",
+ "llvm.mips.clt.u.h",
+ "llvm.mips.clt.u.w",
+ "llvm.mips.clti.s.b",
+ "llvm.mips.clti.s.d",
+ "llvm.mips.clti.s.h",
+ "llvm.mips.clti.s.w",
+ "llvm.mips.clti.u.b",
+ "llvm.mips.clti.u.d",
+ "llvm.mips.clti.u.h",
+ "llvm.mips.clti.u.w",
+ "llvm.mips.cmp.eq.ph",
+ "llvm.mips.cmp.le.ph",
+ "llvm.mips.cmp.lt.ph",
+ "llvm.mips.cmpgdu.eq.qb",
+ "llvm.mips.cmpgdu.le.qb",
+ "llvm.mips.cmpgdu.lt.qb",
+ "llvm.mips.cmpgu.eq.qb",
+ "llvm.mips.cmpgu.le.qb",
+ "llvm.mips.cmpgu.lt.qb",
+ "llvm.mips.cmpu.eq.qb",
+ "llvm.mips.cmpu.le.qb",
+ "llvm.mips.cmpu.lt.qb",
+ "llvm.mips.copy.s.b",
+ "llvm.mips.copy.s.d",
+ "llvm.mips.copy.s.h",
+ "llvm.mips.copy.s.w",
+ "llvm.mips.copy.u.b",
+ "llvm.mips.copy.u.d",
+ "llvm.mips.copy.u.h",
+ "llvm.mips.copy.u.w",
+ "llvm.mips.ctcmsa",
+ "llvm.mips.div.s.b",
+ "llvm.mips.div.s.d",
+ "llvm.mips.div.s.h",
+ "llvm.mips.div.s.w",
+ "llvm.mips.div.u.b",
+ "llvm.mips.div.u.d",
+ "llvm.mips.div.u.h",
+ "llvm.mips.div.u.w",
+ "llvm.mips.dlsa",
+ "llvm.mips.dotp.s.d",
+ "llvm.mips.dotp.s.h",
+ "llvm.mips.dotp.s.w",
+ "llvm.mips.dotp.u.d",
+ "llvm.mips.dotp.u.h",
+ "llvm.mips.dotp.u.w",
+ "llvm.mips.dpa.w.ph",
+ "llvm.mips.dpadd.s.d",
+ "llvm.mips.dpadd.s.h",
+ "llvm.mips.dpadd.s.w",
+ "llvm.mips.dpadd.u.d",
+ "llvm.mips.dpadd.u.h",
+ "llvm.mips.dpadd.u.w",
+ "llvm.mips.dpaq.s.w.ph",
+ "llvm.mips.dpaq.sa.l.w",
+ "llvm.mips.dpaqx.s.w.ph",
+ "llvm.mips.dpaqx.sa.w.ph",
+ "llvm.mips.dpau.h.qbl",
+ "llvm.mips.dpau.h.qbr",
+ "llvm.mips.dpax.w.ph",
+ "llvm.mips.dps.w.ph",
+ "llvm.mips.dpsq.s.w.ph",
+ "llvm.mips.dpsq.sa.l.w",
+ "llvm.mips.dpsqx.s.w.ph",
+ "llvm.mips.dpsqx.sa.w.ph",
+ "llvm.mips.dpsu.h.qbl",
+ "llvm.mips.dpsu.h.qbr",
+ "llvm.mips.dpsub.s.d",
+ "llvm.mips.dpsub.s.h",
+ "llvm.mips.dpsub.s.w",
+ "llvm.mips.dpsub.u.d",
+ "llvm.mips.dpsub.u.h",
+ "llvm.mips.dpsub.u.w",
+ "llvm.mips.dpsx.w.ph",
+ "llvm.mips.extp",
+ "llvm.mips.extpdp",
+ "llvm.mips.extr.r.w",
+ "llvm.mips.extr.rs.w",
+ "llvm.mips.extr.s.h",
+ "llvm.mips.extr.w",
+ "llvm.mips.fadd.d",
+ "llvm.mips.fadd.w",
+ "llvm.mips.fcaf.d",
+ "llvm.mips.fcaf.w",
+ "llvm.mips.fceq.d",
+ "llvm.mips.fceq.w",
+ "llvm.mips.fclass.d",
+ "llvm.mips.fclass.w",
+ "llvm.mips.fcle.d",
+ "llvm.mips.fcle.w",
+ "llvm.mips.fclt.d",
+ "llvm.mips.fclt.w",
+ "llvm.mips.fcne.d",
+ "llvm.mips.fcne.w",
+ "llvm.mips.fcor.d",
+ "llvm.mips.fcor.w",
+ "llvm.mips.fcueq.d",
+ "llvm.mips.fcueq.w",
+ "llvm.mips.fcule.d",
+ "llvm.mips.fcule.w",
+ "llvm.mips.fcult.d",
+ "llvm.mips.fcult.w",
+ "llvm.mips.fcun.d",
+ "llvm.mips.fcun.w",
+ "llvm.mips.fcune.d",
+ "llvm.mips.fcune.w",
+ "llvm.mips.fdiv.d",
+ "llvm.mips.fdiv.w",
+ "llvm.mips.fexdo.h",
+ "llvm.mips.fexdo.w",
+ "llvm.mips.fexp2.d",
+ "llvm.mips.fexp2.w",
+ "llvm.mips.fexupl.d",
+ "llvm.mips.fexupl.w",
+ "llvm.mips.fexupr.d",
+ "llvm.mips.fexupr.w",
+ "llvm.mips.ffint.s.d",
+ "llvm.mips.ffint.s.w",
+ "llvm.mips.ffint.u.d",
+ "llvm.mips.ffint.u.w",
+ "llvm.mips.ffql.d",
+ "llvm.mips.ffql.w",
+ "llvm.mips.ffqr.d",
+ "llvm.mips.ffqr.w",
+ "llvm.mips.fill.b",
+ "llvm.mips.fill.d",
+ "llvm.mips.fill.h",
+ "llvm.mips.fill.w",
+ "llvm.mips.flog2.d",
+ "llvm.mips.flog2.w",
+ "llvm.mips.fmadd.d",
+ "llvm.mips.fmadd.w",
+ "llvm.mips.fmax.a.d",
+ "llvm.mips.fmax.a.w",
+ "llvm.mips.fmax.d",
+ "llvm.mips.fmax.w",
+ "llvm.mips.fmin.a.d",
+ "llvm.mips.fmin.a.w",
+ "llvm.mips.fmin.d",
+ "llvm.mips.fmin.w",
+ "llvm.mips.fmsub.d",
+ "llvm.mips.fmsub.w",
+ "llvm.mips.fmul.d",
+ "llvm.mips.fmul.w",
+ "llvm.mips.frcp.d",
+ "llvm.mips.frcp.w",
+ "llvm.mips.frint.d",
+ "llvm.mips.frint.w",
+ "llvm.mips.frsqrt.d",
+ "llvm.mips.frsqrt.w",
+ "llvm.mips.fsaf.d",
+ "llvm.mips.fsaf.w",
+ "llvm.mips.fseq.d",
+ "llvm.mips.fseq.w",
+ "llvm.mips.fsle.d",
+ "llvm.mips.fsle.w",
+ "llvm.mips.fslt.d",
+ "llvm.mips.fslt.w",
+ "llvm.mips.fsne.d",
+ "llvm.mips.fsne.w",
+ "llvm.mips.fsor.d",
+ "llvm.mips.fsor.w",
+ "llvm.mips.fsqrt.d",
+ "llvm.mips.fsqrt.w",
+ "llvm.mips.fsub.d",
+ "llvm.mips.fsub.w",
+ "llvm.mips.fsueq.d",
+ "llvm.mips.fsueq.w",
+ "llvm.mips.fsule.d",
+ "llvm.mips.fsule.w",
+ "llvm.mips.fsult.d",
+ "llvm.mips.fsult.w",
+ "llvm.mips.fsun.d",
+ "llvm.mips.fsun.w",
+ "llvm.mips.fsune.d",
+ "llvm.mips.fsune.w",
+ "llvm.mips.ftint.s.d",
+ "llvm.mips.ftint.s.w",
+ "llvm.mips.ftint.u.d",
+ "llvm.mips.ftint.u.w",
+ "llvm.mips.ftq.h",
+ "llvm.mips.ftq.w",
+ "llvm.mips.ftrunc.s.d",
+ "llvm.mips.ftrunc.s.w",
+ "llvm.mips.ftrunc.u.d",
+ "llvm.mips.ftrunc.u.w",
+ "llvm.mips.hadd.s.d",
+ "llvm.mips.hadd.s.h",
+ "llvm.mips.hadd.s.w",
+ "llvm.mips.hadd.u.d",
+ "llvm.mips.hadd.u.h",
+ "llvm.mips.hadd.u.w",
+ "llvm.mips.hsub.s.d",
+ "llvm.mips.hsub.s.h",
+ "llvm.mips.hsub.s.w",
+ "llvm.mips.hsub.u.d",
+ "llvm.mips.hsub.u.h",
+ "llvm.mips.hsub.u.w",
+ "llvm.mips.ilvev.b",
+ "llvm.mips.ilvev.d",
+ "llvm.mips.ilvev.h",
+ "llvm.mips.ilvev.w",
+ "llvm.mips.ilvl.b",
+ "llvm.mips.ilvl.d",
+ "llvm.mips.ilvl.h",
+ "llvm.mips.ilvl.w",
+ "llvm.mips.ilvod.b",
+ "llvm.mips.ilvod.d",
+ "llvm.mips.ilvod.h",
+ "llvm.mips.ilvod.w",
+ "llvm.mips.ilvr.b",
+ "llvm.mips.ilvr.d",
+ "llvm.mips.ilvr.h",
+ "llvm.mips.ilvr.w",
+ "llvm.mips.insert.b",
+ "llvm.mips.insert.d",
+ "llvm.mips.insert.h",
+ "llvm.mips.insert.w",
+ "llvm.mips.insv",
+ "llvm.mips.insve.b",
+ "llvm.mips.insve.d",
+ "llvm.mips.insve.h",
+ "llvm.mips.insve.w",
+ "llvm.mips.lbux",
+ "llvm.mips.ld.b",
+ "llvm.mips.ld.d",
+ "llvm.mips.ld.h",
+ "llvm.mips.ld.w",
+ "llvm.mips.ldi.b",
+ "llvm.mips.ldi.d",
+ "llvm.mips.ldi.h",
+ "llvm.mips.ldi.w",
+ "llvm.mips.lhx",
+ "llvm.mips.lsa",
+ "llvm.mips.lwx",
+ "llvm.mips.madd",
+ "llvm.mips.madd.q.h",
+ "llvm.mips.madd.q.w",
+ "llvm.mips.maddr.q.h",
+ "llvm.mips.maddr.q.w",
+ "llvm.mips.maddu",
+ "llvm.mips.maddv.b",
+ "llvm.mips.maddv.d",
+ "llvm.mips.maddv.h",
+ "llvm.mips.maddv.w",
+ "llvm.mips.maq.s.w.phl",
+ "llvm.mips.maq.s.w.phr",
+ "llvm.mips.maq.sa.w.phl",
+ "llvm.mips.maq.sa.w.phr",
+ "llvm.mips.max.a.b",
+ "llvm.mips.max.a.d",
+ "llvm.mips.max.a.h",
+ "llvm.mips.max.a.w",
+ "llvm.mips.max.s.b",
+ "llvm.mips.max.s.d",
+ "llvm.mips.max.s.h",
+ "llvm.mips.max.s.w",
+ "llvm.mips.max.u.b",
+ "llvm.mips.max.u.d",
+ "llvm.mips.max.u.h",
+ "llvm.mips.max.u.w",
+ "llvm.mips.maxi.s.b",
+ "llvm.mips.maxi.s.d",
+ "llvm.mips.maxi.s.h",
+ "llvm.mips.maxi.s.w",
+ "llvm.mips.maxi.u.b",
+ "llvm.mips.maxi.u.d",
+ "llvm.mips.maxi.u.h",
+ "llvm.mips.maxi.u.w",
+ "llvm.mips.min.a.b",
+ "llvm.mips.min.a.d",
+ "llvm.mips.min.a.h",
+ "llvm.mips.min.a.w",
+ "llvm.mips.min.s.b",
+ "llvm.mips.min.s.d",
+ "llvm.mips.min.s.h",
+ "llvm.mips.min.s.w",
+ "llvm.mips.min.u.b",
+ "llvm.mips.min.u.d",
+ "llvm.mips.min.u.h",
+ "llvm.mips.min.u.w",
+ "llvm.mips.mini.s.b",
+ "llvm.mips.mini.s.d",
+ "llvm.mips.mini.s.h",
+ "llvm.mips.mini.s.w",
+ "llvm.mips.mini.u.b",
+ "llvm.mips.mini.u.d",
+ "llvm.mips.mini.u.h",
+ "llvm.mips.mini.u.w",
+ "llvm.mips.mod.s.b",
+ "llvm.mips.mod.s.d",
+ "llvm.mips.mod.s.h",
+ "llvm.mips.mod.s.w",
+ "llvm.mips.mod.u.b",
+ "llvm.mips.mod.u.d",
+ "llvm.mips.mod.u.h",
+ "llvm.mips.mod.u.w",
+ "llvm.mips.modsub",
+ "llvm.mips.move.v",
+ "llvm.mips.msub",
+ "llvm.mips.msub.q.h",
+ "llvm.mips.msub.q.w",
+ "llvm.mips.msubr.q.h",
+ "llvm.mips.msubr.q.w",
+ "llvm.mips.msubu",
+ "llvm.mips.msubv.b",
+ "llvm.mips.msubv.d",
+ "llvm.mips.msubv.h",
+ "llvm.mips.msubv.w",
+ "llvm.mips.mthlip",
+ "llvm.mips.mul.ph",
+ "llvm.mips.mul.q.h",
+ "llvm.mips.mul.q.w",
+ "llvm.mips.mul.s.ph",
+ "llvm.mips.muleq.s.w.phl",
+ "llvm.mips.muleq.s.w.phr",
+ "llvm.mips.muleu.s.ph.qbl",
+ "llvm.mips.muleu.s.ph.qbr",
+ "llvm.mips.mulq.rs.ph",
+ "llvm.mips.mulq.rs.w",
+ "llvm.mips.mulq.s.ph",
+ "llvm.mips.mulq.s.w",
+ "llvm.mips.mulr.q.h",
+ "llvm.mips.mulr.q.w",
+ "llvm.mips.mulsa.w.ph",
+ "llvm.mips.mulsaq.s.w.ph",
+ "llvm.mips.mult",
+ "llvm.mips.multu",
+ "llvm.mips.mulv.b",
+ "llvm.mips.mulv.d",
+ "llvm.mips.mulv.h",
+ "llvm.mips.mulv.w",
+ "llvm.mips.nloc.b",
+ "llvm.mips.nloc.d",
+ "llvm.mips.nloc.h",
+ "llvm.mips.nloc.w",
+ "llvm.mips.nlzc.b",
+ "llvm.mips.nlzc.d",
+ "llvm.mips.nlzc.h",
+ "llvm.mips.nlzc.w",
+ "llvm.mips.nor.v",
+ "llvm.mips.nori.b",
+ "llvm.mips.or.v",
+ "llvm.mips.ori.b",
+ "llvm.mips.packrl.ph",
+ "llvm.mips.pckev.b",
+ "llvm.mips.pckev.d",
+ "llvm.mips.pckev.h",
+ "llvm.mips.pckev.w",
+ "llvm.mips.pckod.b",
+ "llvm.mips.pckod.d",
+ "llvm.mips.pckod.h",
+ "llvm.mips.pckod.w",
+ "llvm.mips.pcnt.b",
+ "llvm.mips.pcnt.d",
+ "llvm.mips.pcnt.h",
+ "llvm.mips.pcnt.w",
+ "llvm.mips.pick.ph",
+ "llvm.mips.pick.qb",
+ "llvm.mips.preceq.w.phl",
+ "llvm.mips.preceq.w.phr",
+ "llvm.mips.precequ.ph.qbl",
+ "llvm.mips.precequ.ph.qbla",
+ "llvm.mips.precequ.ph.qbr",
+ "llvm.mips.precequ.ph.qbra",
+ "llvm.mips.preceu.ph.qbl",
+ "llvm.mips.preceu.ph.qbla",
+ "llvm.mips.preceu.ph.qbr",
+ "llvm.mips.preceu.ph.qbra",
+ "llvm.mips.precr.qb.ph",
+ "llvm.mips.precr.sra.ph.w",
+ "llvm.mips.precr.sra.r.ph.w",
+ "llvm.mips.precrq.ph.w",
+ "llvm.mips.precrq.qb.ph",
+ "llvm.mips.precrq.rs.ph.w",
+ "llvm.mips.precrqu.s.qb.ph",
+ "llvm.mips.prepend",
+ "llvm.mips.raddu.w.qb",
+ "llvm.mips.rddsp",
+ "llvm.mips.repl.ph",
+ "llvm.mips.repl.qb",
+ "llvm.mips.sat.s.b",
+ "llvm.mips.sat.s.d",
+ "llvm.mips.sat.s.h",
+ "llvm.mips.sat.s.w",
+ "llvm.mips.sat.u.b",
+ "llvm.mips.sat.u.d",
+ "llvm.mips.sat.u.h",
+ "llvm.mips.sat.u.w",
+ "llvm.mips.shf.b",
+ "llvm.mips.shf.h",
+ "llvm.mips.shf.w",
+ "llvm.mips.shilo",
+ "llvm.mips.shll.ph",
+ "llvm.mips.shll.qb",
+ "llvm.mips.shll.s.ph",
+ "llvm.mips.shll.s.w",
+ "llvm.mips.shra.ph",
+ "llvm.mips.shra.qb",
+ "llvm.mips.shra.r.ph",
+ "llvm.mips.shra.r.qb",
+ "llvm.mips.shra.r.w",
+ "llvm.mips.shrl.ph",
+ "llvm.mips.shrl.qb",
+ "llvm.mips.sld.b",
+ "llvm.mips.sld.d",
+ "llvm.mips.sld.h",
+ "llvm.mips.sld.w",
+ "llvm.mips.sldi.b",
+ "llvm.mips.sldi.d",
+ "llvm.mips.sldi.h",
+ "llvm.mips.sldi.w",
+ "llvm.mips.sll.b",
+ "llvm.mips.sll.d",
+ "llvm.mips.sll.h",
+ "llvm.mips.sll.w",
+ "llvm.mips.slli.b",
+ "llvm.mips.slli.d",
+ "llvm.mips.slli.h",
+ "llvm.mips.slli.w",
+ "llvm.mips.splat.b",
+ "llvm.mips.splat.d",
+ "llvm.mips.splat.h",
+ "llvm.mips.splat.w",
+ "llvm.mips.splati.b",
+ "llvm.mips.splati.d",
+ "llvm.mips.splati.h",
+ "llvm.mips.splati.w",
+ "llvm.mips.sra.b",
+ "llvm.mips.sra.d",
+ "llvm.mips.sra.h",
+ "llvm.mips.sra.w",
+ "llvm.mips.srai.b",
+ "llvm.mips.srai.d",
+ "llvm.mips.srai.h",
+ "llvm.mips.srai.w",
+ "llvm.mips.srar.b",
+ "llvm.mips.srar.d",
+ "llvm.mips.srar.h",
+ "llvm.mips.srar.w",
+ "llvm.mips.srari.b",
+ "llvm.mips.srari.d",
+ "llvm.mips.srari.h",
+ "llvm.mips.srari.w",
+ "llvm.mips.srl.b",
+ "llvm.mips.srl.d",
+ "llvm.mips.srl.h",
+ "llvm.mips.srl.w",
+ "llvm.mips.srli.b",
+ "llvm.mips.srli.d",
+ "llvm.mips.srli.h",
+ "llvm.mips.srli.w",
+ "llvm.mips.srlr.b",
+ "llvm.mips.srlr.d",
+ "llvm.mips.srlr.h",
+ "llvm.mips.srlr.w",
+ "llvm.mips.srlri.b",
+ "llvm.mips.srlri.d",
+ "llvm.mips.srlri.h",
+ "llvm.mips.srlri.w",
+ "llvm.mips.st.b",
+ "llvm.mips.st.d",
+ "llvm.mips.st.h",
+ "llvm.mips.st.w",
+ "llvm.mips.subq.ph",
+ "llvm.mips.subq.s.ph",
+ "llvm.mips.subq.s.w",
+ "llvm.mips.subqh.ph",
+ "llvm.mips.subqh.r.ph",
+ "llvm.mips.subqh.r.w",
+ "llvm.mips.subqh.w",
+ "llvm.mips.subs.s.b",
+ "llvm.mips.subs.s.d",
+ "llvm.mips.subs.s.h",
+ "llvm.mips.subs.s.w",
+ "llvm.mips.subs.u.b",
+ "llvm.mips.subs.u.d",
+ "llvm.mips.subs.u.h",
+ "llvm.mips.subs.u.w",
+ "llvm.mips.subsus.u.b",
+ "llvm.mips.subsus.u.d",
+ "llvm.mips.subsus.u.h",
+ "llvm.mips.subsus.u.w",
+ "llvm.mips.subsuu.s.b",
+ "llvm.mips.subsuu.s.d",
+ "llvm.mips.subsuu.s.h",
+ "llvm.mips.subsuu.s.w",
+ "llvm.mips.subu.ph",
+ "llvm.mips.subu.qb",
+ "llvm.mips.subu.s.ph",
+ "llvm.mips.subu.s.qb",
+ "llvm.mips.subuh.qb",
+ "llvm.mips.subuh.r.qb",
+ "llvm.mips.subv.b",
+ "llvm.mips.subv.d",
+ "llvm.mips.subv.h",
+ "llvm.mips.subv.w",
+ "llvm.mips.subvi.b",
+ "llvm.mips.subvi.d",
+ "llvm.mips.subvi.h",
+ "llvm.mips.subvi.w",
+ "llvm.mips.vshf.b",
+ "llvm.mips.vshf.d",
+ "llvm.mips.vshf.h",
+ "llvm.mips.vshf.w",
+ "llvm.mips.wrdsp",
+ "llvm.mips.xor.v",
+ "llvm.mips.xori.b",
+ "llvm.nearbyint",
+ "llvm.nvvm.abs.i",
+ "llvm.nvvm.abs.ll",
+ "llvm.nvvm.add.rm.d",
+ "llvm.nvvm.add.rm.f",
+ "llvm.nvvm.add.rm.ftz.f",
+ "llvm.nvvm.add.rn.d",
+ "llvm.nvvm.add.rn.f",
+ "llvm.nvvm.add.rn.ftz.f",
+ "llvm.nvvm.add.rp.d",
+ "llvm.nvvm.add.rp.f",
+ "llvm.nvvm.add.rp.ftz.f",
+ "llvm.nvvm.add.rz.d",
+ "llvm.nvvm.add.rz.f",
+ "llvm.nvvm.add.rz.ftz.f",
+ "llvm.nvvm.atomic.load.add.f32",
+ "llvm.nvvm.atomic.load.dec.32",
+ "llvm.nvvm.atomic.load.inc.32",
+ "llvm.nvvm.barrier0",
+ "llvm.nvvm.barrier0.and",
+ "llvm.nvvm.barrier0.or",
+ "llvm.nvvm.barrier0.popc",
+ "llvm.nvvm.bitcast.d2ll",
+ "llvm.nvvm.bitcast.f2i",
+ "llvm.nvvm.bitcast.i2f",
+ "llvm.nvvm.bitcast.ll2d",
+ "llvm.nvvm.brev32",
+ "llvm.nvvm.brev64",
+ "llvm.nvvm.ceil.d",
+ "llvm.nvvm.ceil.f",
+ "llvm.nvvm.ceil.ftz.f",
+ "llvm.nvvm.clz.i",
+ "llvm.nvvm.clz.ll",
+ "llvm.nvvm.compiler.error",
+ "llvm.nvvm.compiler.warn",
+ "llvm.nvvm.cos.approx.f",
+ "llvm.nvvm.cos.approx.ftz.f",
+ "llvm.nvvm.d2f.rm",
+ "llvm.nvvm.d2f.rm.ftz",
+ "llvm.nvvm.d2f.rn",
+ "llvm.nvvm.d2f.rn.ftz",
+ "llvm.nvvm.d2f.rp",
+ "llvm.nvvm.d2f.rp.ftz",
+ "llvm.nvvm.d2f.rz",
+ "llvm.nvvm.d2f.rz.ftz",
+ "llvm.nvvm.d2i.hi",
+ "llvm.nvvm.d2i.lo",
+ "llvm.nvvm.d2i.rm",
+ "llvm.nvvm.d2i.rn",
+ "llvm.nvvm.d2i.rp",
+ "llvm.nvvm.d2i.rz",
+ "llvm.nvvm.d2ll.rm",
+ "llvm.nvvm.d2ll.rn",
+ "llvm.nvvm.d2ll.rp",
+ "llvm.nvvm.d2ll.rz",
+ "llvm.nvvm.d2ui.rm",
+ "llvm.nvvm.d2ui.rn",
+ "llvm.nvvm.d2ui.rp",
+ "llvm.nvvm.d2ui.rz",
+ "llvm.nvvm.d2ull.rm",
+ "llvm.nvvm.d2ull.rn",
+ "llvm.nvvm.d2ull.rp",
+ "llvm.nvvm.d2ull.rz",
+ "llvm.nvvm.div.approx.f",
+ "llvm.nvvm.div.approx.ftz.f",
+ "llvm.nvvm.div.rm.d",
+ "llvm.nvvm.div.rm.f",
+ "llvm.nvvm.div.rm.ftz.f",
+ "llvm.nvvm.div.rn.d",
+ "llvm.nvvm.div.rn.f",
+ "llvm.nvvm.div.rn.ftz.f",
+ "llvm.nvvm.div.rp.d",
+ "llvm.nvvm.div.rp.f",
+ "llvm.nvvm.div.rp.ftz.f",
+ "llvm.nvvm.div.rz.d",
+ "llvm.nvvm.div.rz.f",
+ "llvm.nvvm.div.rz.ftz.f",
+ "llvm.nvvm.ex2.approx.d",
+ "llvm.nvvm.ex2.approx.f",
+ "llvm.nvvm.ex2.approx.ftz.f",
+ "llvm.nvvm.f2h.rn",
+ "llvm.nvvm.f2h.rn.ftz",
+ "llvm.nvvm.f2i.rm",
+ "llvm.nvvm.f2i.rm.ftz",
+ "llvm.nvvm.f2i.rn",
+ "llvm.nvvm.f2i.rn.ftz",
+ "llvm.nvvm.f2i.rp",
+ "llvm.nvvm.f2i.rp.ftz",
+ "llvm.nvvm.f2i.rz",
+ "llvm.nvvm.f2i.rz.ftz",
+ "llvm.nvvm.f2ll.rm",
+ "llvm.nvvm.f2ll.rm.ftz",
+ "llvm.nvvm.f2ll.rn",
+ "llvm.nvvm.f2ll.rn.ftz",
+ "llvm.nvvm.f2ll.rp",
+ "llvm.nvvm.f2ll.rp.ftz",
+ "llvm.nvvm.f2ll.rz",
+ "llvm.nvvm.f2ll.rz.ftz",
+ "llvm.nvvm.f2ui.rm",
+ "llvm.nvvm.f2ui.rm.ftz",
+ "llvm.nvvm.f2ui.rn",
+ "llvm.nvvm.f2ui.rn.ftz",
+ "llvm.nvvm.f2ui.rp",
+ "llvm.nvvm.f2ui.rp.ftz",
+ "llvm.nvvm.f2ui.rz",
+ "llvm.nvvm.f2ui.rz.ftz",
+ "llvm.nvvm.f2ull.rm",
+ "llvm.nvvm.f2ull.rm.ftz",
+ "llvm.nvvm.f2ull.rn",
+ "llvm.nvvm.f2ull.rn.ftz",
+ "llvm.nvvm.f2ull.rp",
+ "llvm.nvvm.f2ull.rp.ftz",
+ "llvm.nvvm.f2ull.rz",
+ "llvm.nvvm.f2ull.rz.ftz",
+ "llvm.nvvm.fabs.d",
+ "llvm.nvvm.fabs.f",
+ "llvm.nvvm.fabs.ftz.f",
+ "llvm.nvvm.floor.d",
+ "llvm.nvvm.floor.f",
+ "llvm.nvvm.floor.ftz.f",
+ "llvm.nvvm.fma.rm.d",
+ "llvm.nvvm.fma.rm.f",
+ "llvm.nvvm.fma.rm.ftz.f",
+ "llvm.nvvm.fma.rn.d",
+ "llvm.nvvm.fma.rn.f",
+ "llvm.nvvm.fma.rn.ftz.f",
+ "llvm.nvvm.fma.rp.d",
+ "llvm.nvvm.fma.rp.f",
+ "llvm.nvvm.fma.rp.ftz.f",
+ "llvm.nvvm.fma.rz.d",
+ "llvm.nvvm.fma.rz.f",
+ "llvm.nvvm.fma.rz.ftz.f",
+ "llvm.nvvm.fmax.d",
+ "llvm.nvvm.fmax.f",
+ "llvm.nvvm.fmax.ftz.f",
+ "llvm.nvvm.fmin.d",
+ "llvm.nvvm.fmin.f",
+ "llvm.nvvm.fmin.ftz.f",
+ "llvm.nvvm.h2f",
+ "llvm.nvvm.i2d.rm",
+ "llvm.nvvm.i2d.rn",
+ "llvm.nvvm.i2d.rp",
+ "llvm.nvvm.i2d.rz",
+ "llvm.nvvm.i2f.rm",
+ "llvm.nvvm.i2f.rn",
+ "llvm.nvvm.i2f.rp",
+ "llvm.nvvm.i2f.rz",
+ "llvm.nvvm.isspacep.const",
+ "llvm.nvvm.isspacep.global",
+ "llvm.nvvm.isspacep.local",
+ "llvm.nvvm.isspacep.shared",
+ "llvm.nvvm.istypep.sampler",
+ "llvm.nvvm.istypep.surface",
+ "llvm.nvvm.istypep.texture",
+ "llvm.nvvm.ldg.global.f",
+ "llvm.nvvm.ldg.global.i",
+ "llvm.nvvm.ldg.global.p",
+ "llvm.nvvm.ldu.global.f",
+ "llvm.nvvm.ldu.global.i",
+ "llvm.nvvm.ldu.global.p",
+ "llvm.nvvm.lg2.approx.d",
+ "llvm.nvvm.lg2.approx.f",
+ "llvm.nvvm.lg2.approx.ftz.f",
+ "llvm.nvvm.ll2d.rm",
+ "llvm.nvvm.ll2d.rn",
+ "llvm.nvvm.ll2d.rp",
+ "llvm.nvvm.ll2d.rz",
+ "llvm.nvvm.ll2f.rm",
+ "llvm.nvvm.ll2f.rn",
+ "llvm.nvvm.ll2f.rp",
+ "llvm.nvvm.ll2f.rz",
+ "llvm.nvvm.lohi.i2d",
+ "llvm.nvvm.max.i",
+ "llvm.nvvm.max.ll",
+ "llvm.nvvm.max.ui",
+ "llvm.nvvm.max.ull",
+ "llvm.nvvm.membar.cta",
+ "llvm.nvvm.membar.gl",
+ "llvm.nvvm.membar.sys",
+ "llvm.nvvm.min.i",
+ "llvm.nvvm.min.ll",
+ "llvm.nvvm.min.ui",
+ "llvm.nvvm.min.ull",
+ "llvm.nvvm.move.double",
+ "llvm.nvvm.move.float",
+ "llvm.nvvm.move.i16",
+ "llvm.nvvm.move.i32",
+ "llvm.nvvm.move.i64",
+ "llvm.nvvm.move.ptr",
+ "llvm.nvvm.mul24.i",
+ "llvm.nvvm.mul24.ui",
+ "llvm.nvvm.mul.rm.d",
+ "llvm.nvvm.mul.rm.f",
+ "llvm.nvvm.mul.rm.ftz.f",
+ "llvm.nvvm.mul.rn.d",
+ "llvm.nvvm.mul.rn.f",
+ "llvm.nvvm.mul.rn.ftz.f",
+ "llvm.nvvm.mul.rp.d",
+ "llvm.nvvm.mul.rp.f",
+ "llvm.nvvm.mul.rp.ftz.f",
+ "llvm.nvvm.mul.rz.d",
+ "llvm.nvvm.mul.rz.f",
+ "llvm.nvvm.mul.rz.ftz.f",
+ "llvm.nvvm.mulhi.i",
+ "llvm.nvvm.mulhi.ll",
+ "llvm.nvvm.mulhi.ui",
+ "llvm.nvvm.mulhi.ull",
+ "llvm.nvvm.popc.i",
+ "llvm.nvvm.popc.ll",
+ "llvm.nvvm.prmt",
+ "llvm.nvvm.ptr.constant.to.gen",
+ "llvm.nvvm.ptr.gen.to.constant",
+ "llvm.nvvm.ptr.gen.to.global",
+ "llvm.nvvm.ptr.gen.to.local",
+ "llvm.nvvm.ptr.gen.to.param",
+ "llvm.nvvm.ptr.gen.to.shared",
+ "llvm.nvvm.ptr.global.to.gen",
+ "llvm.nvvm.ptr.local.to.gen",
+ "llvm.nvvm.ptr.shared.to.gen",
+ "llvm.nvvm.rcp.approx.ftz.d",
+ "llvm.nvvm.rcp.rm.d",
+ "llvm.nvvm.rcp.rm.f",
+ "llvm.nvvm.rcp.rm.ftz.f",
+ "llvm.nvvm.rcp.rn.d",
+ "llvm.nvvm.rcp.rn.f",
+ "llvm.nvvm.rcp.rn.ftz.f",
+ "llvm.nvvm.rcp.rp.d",
+ "llvm.nvvm.rcp.rp.f",
+ "llvm.nvvm.rcp.rp.ftz.f",
+ "llvm.nvvm.rcp.rz.d",
+ "llvm.nvvm.rcp.rz.f",
+ "llvm.nvvm.rcp.rz.ftz.f",
+ "llvm.nvvm.read.ptx.sreg.ctaid.x",
+ "llvm.nvvm.read.ptx.sreg.ctaid.y",
+ "llvm.nvvm.read.ptx.sreg.ctaid.z",
+ "llvm.nvvm.read.ptx.sreg.envreg0",
+ "llvm.nvvm.read.ptx.sreg.envreg1",
+ "llvm.nvvm.read.ptx.sreg.envreg10",
+ "llvm.nvvm.read.ptx.sreg.envreg11",
+ "llvm.nvvm.read.ptx.sreg.envreg12",
+ "llvm.nvvm.read.ptx.sreg.envreg13",
+ "llvm.nvvm.read.ptx.sreg.envreg14",
+ "llvm.nvvm.read.ptx.sreg.envreg15",
+ "llvm.nvvm.read.ptx.sreg.envreg16",
+ "llvm.nvvm.read.ptx.sreg.envreg17",
+ "llvm.nvvm.read.ptx.sreg.envreg18",
+ "llvm.nvvm.read.ptx.sreg.envreg19",
+ "llvm.nvvm.read.ptx.sreg.envreg2",
+ "llvm.nvvm.read.ptx.sreg.envreg20",
+ "llvm.nvvm.read.ptx.sreg.envreg21",
+ "llvm.nvvm.read.ptx.sreg.envreg22",
+ "llvm.nvvm.read.ptx.sreg.envreg23",
+ "llvm.nvvm.read.ptx.sreg.envreg24",
+ "llvm.nvvm.read.ptx.sreg.envreg25",
+ "llvm.nvvm.read.ptx.sreg.envreg26",
+ "llvm.nvvm.read.ptx.sreg.envreg27",
+ "llvm.nvvm.read.ptx.sreg.envreg28",
+ "llvm.nvvm.read.ptx.sreg.envreg29",
+ "llvm.nvvm.read.ptx.sreg.envreg3",
+ "llvm.nvvm.read.ptx.sreg.envreg30",
+ "llvm.nvvm.read.ptx.sreg.envreg31",
+ "llvm.nvvm.read.ptx.sreg.envreg4",
+ "llvm.nvvm.read.ptx.sreg.envreg5",
+ "llvm.nvvm.read.ptx.sreg.envreg6",
+ "llvm.nvvm.read.ptx.sreg.envreg7",
+ "llvm.nvvm.read.ptx.sreg.envreg8",
+ "llvm.nvvm.read.ptx.sreg.envreg9",
+ "llvm.nvvm.read.ptx.sreg.nctaid.x",
+ "llvm.nvvm.read.ptx.sreg.nctaid.y",
+ "llvm.nvvm.read.ptx.sreg.nctaid.z",
+ "llvm.nvvm.read.ptx.sreg.ntid.x",
+ "llvm.nvvm.read.ptx.sreg.ntid.y",
+ "llvm.nvvm.read.ptx.sreg.ntid.z",
+ "llvm.nvvm.read.ptx.sreg.tid.x",
+ "llvm.nvvm.read.ptx.sreg.tid.y",
+ "llvm.nvvm.read.ptx.sreg.tid.z",
+ "llvm.nvvm.read.ptx.sreg.warpsize",
+ "llvm.nvvm.reflect",
+ "llvm.nvvm.rotate.b32",
+ "llvm.nvvm.rotate.b64",
+ "llvm.nvvm.rotate.right.b64",
+ "llvm.nvvm.round.d",
+ "llvm.nvvm.round.f",
+ "llvm.nvvm.round.ftz.f",
+ "llvm.nvvm.rsqrt.approx.d",
+ "llvm.nvvm.rsqrt.approx.f",
+ "llvm.nvvm.rsqrt.approx.ftz.f",
+ "llvm.nvvm.sad.i",
+ "llvm.nvvm.sad.ui",
+ "llvm.nvvm.saturate.d",
+ "llvm.nvvm.saturate.f",
+ "llvm.nvvm.saturate.ftz.f",
+ "llvm.nvvm.sin.approx.f",
+ "llvm.nvvm.sin.approx.ftz.f",
+ "llvm.nvvm.sqrt.approx.f",
+ "llvm.nvvm.sqrt.approx.ftz.f",
+ "llvm.nvvm.sqrt.f",
+ "llvm.nvvm.sqrt.rm.d",
+ "llvm.nvvm.sqrt.rm.f",
+ "llvm.nvvm.sqrt.rm.ftz.f",
+ "llvm.nvvm.sqrt.rn.d",
+ "llvm.nvvm.sqrt.rn.f",
+ "llvm.nvvm.sqrt.rn.ftz.f",
+ "llvm.nvvm.sqrt.rp.d",
+ "llvm.nvvm.sqrt.rp.f",
+ "llvm.nvvm.sqrt.rp.ftz.f",
+ "llvm.nvvm.sqrt.rz.d",
+ "llvm.nvvm.sqrt.rz.f",
+ "llvm.nvvm.sqrt.rz.ftz.f",
+ "llvm.nvvm.suld.1d.array.i16.clamp",
+ "llvm.nvvm.suld.1d.array.i16.trap",
+ "llvm.nvvm.suld.1d.array.i16.zero",
+ "llvm.nvvm.suld.1d.array.i32.clamp",
+ "llvm.nvvm.suld.1d.array.i32.trap",
+ "llvm.nvvm.suld.1d.array.i32.zero",
+ "llvm.nvvm.suld.1d.array.i64.clamp",
+ "llvm.nvvm.suld.1d.array.i64.trap",
+ "llvm.nvvm.suld.1d.array.i64.zero",
+ "llvm.nvvm.suld.1d.array.i8.clamp",
+ "llvm.nvvm.suld.1d.array.i8.trap",
+ "llvm.nvvm.suld.1d.array.i8.zero",
+ "llvm.nvvm.suld.1d.array.v2i16.clamp",
+ "llvm.nvvm.suld.1d.array.v2i16.trap",
+ "llvm.nvvm.suld.1d.array.v2i16.zero",
+ "llvm.nvvm.suld.1d.array.v2i32.clamp",
+ "llvm.nvvm.suld.1d.array.v2i32.trap",
+ "llvm.nvvm.suld.1d.array.v2i32.zero",
+ "llvm.nvvm.suld.1d.array.v2i64.clamp",
+ "llvm.nvvm.suld.1d.array.v2i64.trap",
+ "llvm.nvvm.suld.1d.array.v2i64.zero",
+ "llvm.nvvm.suld.1d.array.v2i8.clamp",
+ "llvm.nvvm.suld.1d.array.v2i8.trap",
+ "llvm.nvvm.suld.1d.array.v2i8.zero",
+ "llvm.nvvm.suld.1d.array.v4i16.clamp",
+ "llvm.nvvm.suld.1d.array.v4i16.trap",
+ "llvm.nvvm.suld.1d.array.v4i16.zero",
+ "llvm.nvvm.suld.1d.array.v4i32.clamp",
+ "llvm.nvvm.suld.1d.array.v4i32.trap",
+ "llvm.nvvm.suld.1d.array.v4i32.zero",
+ "llvm.nvvm.suld.1d.array.v4i8.clamp",
+ "llvm.nvvm.suld.1d.array.v4i8.trap",
+ "llvm.nvvm.suld.1d.array.v4i8.zero",
+ "llvm.nvvm.suld.1d.i16.clamp",
+ "llvm.nvvm.suld.1d.i16.trap",
+ "llvm.nvvm.suld.1d.i16.zero",
+ "llvm.nvvm.suld.1d.i32.clamp",
+ "llvm.nvvm.suld.1d.i32.trap",
+ "llvm.nvvm.suld.1d.i32.zero",
+ "llvm.nvvm.suld.1d.i64.clamp",
+ "llvm.nvvm.suld.1d.i64.trap",
+ "llvm.nvvm.suld.1d.i64.zero",
+ "llvm.nvvm.suld.1d.i8.clamp",
+ "llvm.nvvm.suld.1d.i8.trap",
+ "llvm.nvvm.suld.1d.i8.zero",
+ "llvm.nvvm.suld.1d.v2i16.clamp",
+ "llvm.nvvm.suld.1d.v2i16.trap",
+ "llvm.nvvm.suld.1d.v2i16.zero",
+ "llvm.nvvm.suld.1d.v2i32.clamp",
+ "llvm.nvvm.suld.1d.v2i32.trap",
+ "llvm.nvvm.suld.1d.v2i32.zero",
+ "llvm.nvvm.suld.1d.v2i64.clamp",
+ "llvm.nvvm.suld.1d.v2i64.trap",
+ "llvm.nvvm.suld.1d.v2i64.zero",
+ "llvm.nvvm.suld.1d.v2i8.clamp",
+ "llvm.nvvm.suld.1d.v2i8.trap",
+ "llvm.nvvm.suld.1d.v2i8.zero",
+ "llvm.nvvm.suld.1d.v4i16.clamp",
+ "llvm.nvvm.suld.1d.v4i16.trap",
+ "llvm.nvvm.suld.1d.v4i16.zero",
+ "llvm.nvvm.suld.1d.v4i32.clamp",
+ "llvm.nvvm.suld.1d.v4i32.trap",
+ "llvm.nvvm.suld.1d.v4i32.zero",
+ "llvm.nvvm.suld.1d.v4i8.clamp",
+ "llvm.nvvm.suld.1d.v4i8.trap",
+ "llvm.nvvm.suld.1d.v4i8.zero",
+ "llvm.nvvm.suld.2d.array.i16.clamp",
+ "llvm.nvvm.suld.2d.array.i16.trap",
+ "llvm.nvvm.suld.2d.array.i16.zero",
+ "llvm.nvvm.suld.2d.array.i32.clamp",
+ "llvm.nvvm.suld.2d.array.i32.trap",
+ "llvm.nvvm.suld.2d.array.i32.zero",
+ "llvm.nvvm.suld.2d.array.i64.clamp",
+ "llvm.nvvm.suld.2d.array.i64.trap",
+ "llvm.nvvm.suld.2d.array.i64.zero",
+ "llvm.nvvm.suld.2d.array.i8.clamp",
+ "llvm.nvvm.suld.2d.array.i8.trap",
+ "llvm.nvvm.suld.2d.array.i8.zero",
+ "llvm.nvvm.suld.2d.array.v2i16.clamp",
+ "llvm.nvvm.suld.2d.array.v2i16.trap",
+ "llvm.nvvm.suld.2d.array.v2i16.zero",
+ "llvm.nvvm.suld.2d.array.v2i32.clamp",
+ "llvm.nvvm.suld.2d.array.v2i32.trap",
+ "llvm.nvvm.suld.2d.array.v2i32.zero",
+ "llvm.nvvm.suld.2d.array.v2i64.clamp",
+ "llvm.nvvm.suld.2d.array.v2i64.trap",
+ "llvm.nvvm.suld.2d.array.v2i64.zero",
+ "llvm.nvvm.suld.2d.array.v2i8.clamp",
+ "llvm.nvvm.suld.2d.array.v2i8.trap",
+ "llvm.nvvm.suld.2d.array.v2i8.zero",
+ "llvm.nvvm.suld.2d.array.v4i16.clamp",
+ "llvm.nvvm.suld.2d.array.v4i16.trap",
+ "llvm.nvvm.suld.2d.array.v4i16.zero",
+ "llvm.nvvm.suld.2d.array.v4i32.clamp",
+ "llvm.nvvm.suld.2d.array.v4i32.trap",
+ "llvm.nvvm.suld.2d.array.v4i32.zero",
+ "llvm.nvvm.suld.2d.array.v4i8.clamp",
+ "llvm.nvvm.suld.2d.array.v4i8.trap",
+ "llvm.nvvm.suld.2d.array.v4i8.zero",
+ "llvm.nvvm.suld.2d.i16.clamp",
+ "llvm.nvvm.suld.2d.i16.trap",
+ "llvm.nvvm.suld.2d.i16.zero",
+ "llvm.nvvm.suld.2d.i32.clamp",
+ "llvm.nvvm.suld.2d.i32.trap",
+ "llvm.nvvm.suld.2d.i32.zero",
+ "llvm.nvvm.suld.2d.i64.clamp",
+ "llvm.nvvm.suld.2d.i64.trap",
+ "llvm.nvvm.suld.2d.i64.zero",
+ "llvm.nvvm.suld.2d.i8.clamp",
+ "llvm.nvvm.suld.2d.i8.trap",
+ "llvm.nvvm.suld.2d.i8.zero",
+ "llvm.nvvm.suld.2d.v2i16.clamp",
+ "llvm.nvvm.suld.2d.v2i16.trap",
+ "llvm.nvvm.suld.2d.v2i16.zero",
+ "llvm.nvvm.suld.2d.v2i32.clamp",
+ "llvm.nvvm.suld.2d.v2i32.trap",
+ "llvm.nvvm.suld.2d.v2i32.zero",
+ "llvm.nvvm.suld.2d.v2i64.clamp",
+ "llvm.nvvm.suld.2d.v2i64.trap",
+ "llvm.nvvm.suld.2d.v2i64.zero",
+ "llvm.nvvm.suld.2d.v2i8.clamp",
+ "llvm.nvvm.suld.2d.v2i8.trap",
+ "llvm.nvvm.suld.2d.v2i8.zero",
+ "llvm.nvvm.suld.2d.v4i16.clamp",
+ "llvm.nvvm.suld.2d.v4i16.trap",
+ "llvm.nvvm.suld.2d.v4i16.zero",
+ "llvm.nvvm.suld.2d.v4i32.clamp",
+ "llvm.nvvm.suld.2d.v4i32.trap",
+ "llvm.nvvm.suld.2d.v4i32.zero",
+ "llvm.nvvm.suld.2d.v4i8.clamp",
+ "llvm.nvvm.suld.2d.v4i8.trap",
+ "llvm.nvvm.suld.2d.v4i8.zero",
+ "llvm.nvvm.suld.3d.i16.clamp",
+ "llvm.nvvm.suld.3d.i16.trap",
+ "llvm.nvvm.suld.3d.i16.zero",
+ "llvm.nvvm.suld.3d.i32.clamp",
+ "llvm.nvvm.suld.3d.i32.trap",
+ "llvm.nvvm.suld.3d.i32.zero",
+ "llvm.nvvm.suld.3d.i64.clamp",
+ "llvm.nvvm.suld.3d.i64.trap",
+ "llvm.nvvm.suld.3d.i64.zero",
+ "llvm.nvvm.suld.3d.i8.clamp",
+ "llvm.nvvm.suld.3d.i8.trap",
+ "llvm.nvvm.suld.3d.i8.zero",
+ "llvm.nvvm.suld.3d.v2i16.clamp",
+ "llvm.nvvm.suld.3d.v2i16.trap",
+ "llvm.nvvm.suld.3d.v2i16.zero",
+ "llvm.nvvm.suld.3d.v2i32.clamp",
+ "llvm.nvvm.suld.3d.v2i32.trap",
+ "llvm.nvvm.suld.3d.v2i32.zero",
+ "llvm.nvvm.suld.3d.v2i64.clamp",
+ "llvm.nvvm.suld.3d.v2i64.trap",
+ "llvm.nvvm.suld.3d.v2i64.zero",
+ "llvm.nvvm.suld.3d.v2i8.clamp",
+ "llvm.nvvm.suld.3d.v2i8.trap",
+ "llvm.nvvm.suld.3d.v2i8.zero",
+ "llvm.nvvm.suld.3d.v4i16.clamp",
+ "llvm.nvvm.suld.3d.v4i16.trap",
+ "llvm.nvvm.suld.3d.v4i16.zero",
+ "llvm.nvvm.suld.3d.v4i32.clamp",
+ "llvm.nvvm.suld.3d.v4i32.trap",
+ "llvm.nvvm.suld.3d.v4i32.zero",
+ "llvm.nvvm.suld.3d.v4i8.clamp",
+ "llvm.nvvm.suld.3d.v4i8.trap",
+ "llvm.nvvm.suld.3d.v4i8.zero",
+ "llvm.nvvm.suq.array.size",
+ "llvm.nvvm.suq.channel.data.type",
+ "llvm.nvvm.suq.channel.order",
+ "llvm.nvvm.suq.depth",
+ "llvm.nvvm.suq.height",
+ "llvm.nvvm.suq.width",
+ "llvm.nvvm.sust.b.1d.array.i16.clamp",
+ "llvm.nvvm.sust.b.1d.array.i16.trap",
+ "llvm.nvvm.sust.b.1d.array.i16.zero",
+ "llvm.nvvm.sust.b.1d.array.i32.clamp",
+ "llvm.nvvm.sust.b.1d.array.i32.trap",
+ "llvm.nvvm.sust.b.1d.array.i32.zero",
+ "llvm.nvvm.sust.b.1d.array.i64.clamp",
+ "llvm.nvvm.sust.b.1d.array.i64.trap",
+ "llvm.nvvm.sust.b.1d.array.i64.zero",
+ "llvm.nvvm.sust.b.1d.array.i8.clamp",
+ "llvm.nvvm.sust.b.1d.array.i8.trap",
+ "llvm.nvvm.sust.b.1d.array.i8.zero",
+ "llvm.nvvm.sust.b.1d.array.v2i16.clamp",
+ "llvm.nvvm.sust.b.1d.array.v2i16.trap",
+ "llvm.nvvm.sust.b.1d.array.v2i16.zero",
+ "llvm.nvvm.sust.b.1d.array.v2i32.clamp",
+ "llvm.nvvm.sust.b.1d.array.v2i32.trap",
+ "llvm.nvvm.sust.b.1d.array.v2i32.zero",
+ "llvm.nvvm.sust.b.1d.array.v2i64.clamp",
+ "llvm.nvvm.sust.b.1d.array.v2i64.trap",
+ "llvm.nvvm.sust.b.1d.array.v2i64.zero",
+ "llvm.nvvm.sust.b.1d.array.v2i8.clamp",
+ "llvm.nvvm.sust.b.1d.array.v2i8.trap",
+ "llvm.nvvm.sust.b.1d.array.v2i8.zero",
+ "llvm.nvvm.sust.b.1d.array.v4i16.clamp",
+ "llvm.nvvm.sust.b.1d.array.v4i16.trap",
+ "llvm.nvvm.sust.b.1d.array.v4i16.zero",
+ "llvm.nvvm.sust.b.1d.array.v4i32.clamp",
+ "llvm.nvvm.sust.b.1d.array.v4i32.trap",
+ "llvm.nvvm.sust.b.1d.array.v4i32.zero",
+ "llvm.nvvm.sust.b.1d.array.v4i8.clamp",
+ "llvm.nvvm.sust.b.1d.array.v4i8.trap",
+ "llvm.nvvm.sust.b.1d.array.v4i8.zero",
+ "llvm.nvvm.sust.b.1d.i16.clamp",
+ "llvm.nvvm.sust.b.1d.i16.trap",
+ "llvm.nvvm.sust.b.1d.i16.zero",
+ "llvm.nvvm.sust.b.1d.i32.clamp",
+ "llvm.nvvm.sust.b.1d.i32.trap",
+ "llvm.nvvm.sust.b.1d.i32.zero",
+ "llvm.nvvm.sust.b.1d.i64.clamp",
+ "llvm.nvvm.sust.b.1d.i64.trap",
+ "llvm.nvvm.sust.b.1d.i64.zero",
+ "llvm.nvvm.sust.b.1d.i8.clamp",
+ "llvm.nvvm.sust.b.1d.i8.trap",
+ "llvm.nvvm.sust.b.1d.i8.zero",
+ "llvm.nvvm.sust.b.1d.v2i16.clamp",
+ "llvm.nvvm.sust.b.1d.v2i16.trap",
+ "llvm.nvvm.sust.b.1d.v2i16.zero",
+ "llvm.nvvm.sust.b.1d.v2i32.clamp",
+ "llvm.nvvm.sust.b.1d.v2i32.trap",
+ "llvm.nvvm.sust.b.1d.v2i32.zero",
+ "llvm.nvvm.sust.b.1d.v2i64.clamp",
+ "llvm.nvvm.sust.b.1d.v2i64.trap",
+ "llvm.nvvm.sust.b.1d.v2i64.zero",
+ "llvm.nvvm.sust.b.1d.v2i8.clamp",
+ "llvm.nvvm.sust.b.1d.v2i8.trap",
+ "llvm.nvvm.sust.b.1d.v2i8.zero",
+ "llvm.nvvm.sust.b.1d.v4i16.clamp",
+ "llvm.nvvm.sust.b.1d.v4i16.trap",
+ "llvm.nvvm.sust.b.1d.v4i16.zero",
+ "llvm.nvvm.sust.b.1d.v4i32.clamp",
+ "llvm.nvvm.sust.b.1d.v4i32.trap",
+ "llvm.nvvm.sust.b.1d.v4i32.zero",
+ "llvm.nvvm.sust.b.1d.v4i8.clamp",
+ "llvm.nvvm.sust.b.1d.v4i8.trap",
+ "llvm.nvvm.sust.b.1d.v4i8.zero",
+ "llvm.nvvm.sust.b.2d.array.i16.clamp",
+ "llvm.nvvm.sust.b.2d.array.i16.trap",
+ "llvm.nvvm.sust.b.2d.array.i16.zero",
+ "llvm.nvvm.sust.b.2d.array.i32.clamp",
+ "llvm.nvvm.sust.b.2d.array.i32.trap",
+ "llvm.nvvm.sust.b.2d.array.i32.zero",
+ "llvm.nvvm.sust.b.2d.array.i64.clamp",
+ "llvm.nvvm.sust.b.2d.array.i64.trap",
+ "llvm.nvvm.sust.b.2d.array.i64.zero",
+ "llvm.nvvm.sust.b.2d.array.i8.clamp",
+ "llvm.nvvm.sust.b.2d.array.i8.trap",
+ "llvm.nvvm.sust.b.2d.array.i8.zero",
+ "llvm.nvvm.sust.b.2d.array.v2i16.clamp",
+ "llvm.nvvm.sust.b.2d.array.v2i16.trap",
+ "llvm.nvvm.sust.b.2d.array.v2i16.zero",
+ "llvm.nvvm.sust.b.2d.array.v2i32.clamp",
+ "llvm.nvvm.sust.b.2d.array.v2i32.trap",
+ "llvm.nvvm.sust.b.2d.array.v2i32.zero",
+ "llvm.nvvm.sust.b.2d.array.v2i64.clamp",
+ "llvm.nvvm.sust.b.2d.array.v2i64.trap",
+ "llvm.nvvm.sust.b.2d.array.v2i64.zero",
+ "llvm.nvvm.sust.b.2d.array.v2i8.clamp",
+ "llvm.nvvm.sust.b.2d.array.v2i8.trap",
+ "llvm.nvvm.sust.b.2d.array.v2i8.zero",
+ "llvm.nvvm.sust.b.2d.array.v4i16.clamp",
+ "llvm.nvvm.sust.b.2d.array.v4i16.trap",
+ "llvm.nvvm.sust.b.2d.array.v4i16.zero",
+ "llvm.nvvm.sust.b.2d.array.v4i32.clamp",
+ "llvm.nvvm.sust.b.2d.array.v4i32.trap",
+ "llvm.nvvm.sust.b.2d.array.v4i32.zero",
+ "llvm.nvvm.sust.b.2d.array.v4i8.clamp",
+ "llvm.nvvm.sust.b.2d.array.v4i8.trap",
+ "llvm.nvvm.sust.b.2d.array.v4i8.zero",
+ "llvm.nvvm.sust.b.2d.i16.clamp",
+ "llvm.nvvm.sust.b.2d.i16.trap",
+ "llvm.nvvm.sust.b.2d.i16.zero",
+ "llvm.nvvm.sust.b.2d.i32.clamp",
+ "llvm.nvvm.sust.b.2d.i32.trap",
+ "llvm.nvvm.sust.b.2d.i32.zero",
+ "llvm.nvvm.sust.b.2d.i64.clamp",
+ "llvm.nvvm.sust.b.2d.i64.trap",
+ "llvm.nvvm.sust.b.2d.i64.zero",
+ "llvm.nvvm.sust.b.2d.i8.clamp",
+ "llvm.nvvm.sust.b.2d.i8.trap",
+ "llvm.nvvm.sust.b.2d.i8.zero",
+ "llvm.nvvm.sust.b.2d.v2i16.clamp",
+ "llvm.nvvm.sust.b.2d.v2i16.trap",
+ "llvm.nvvm.sust.b.2d.v2i16.zero",
+ "llvm.nvvm.sust.b.2d.v2i32.clamp",
+ "llvm.nvvm.sust.b.2d.v2i32.trap",
+ "llvm.nvvm.sust.b.2d.v2i32.zero",
+ "llvm.nvvm.sust.b.2d.v2i64.clamp",
+ "llvm.nvvm.sust.b.2d.v2i64.trap",
+ "llvm.nvvm.sust.b.2d.v2i64.zero",
+ "llvm.nvvm.sust.b.2d.v2i8.clamp",
+ "llvm.nvvm.sust.b.2d.v2i8.trap",
+ "llvm.nvvm.sust.b.2d.v2i8.zero",
+ "llvm.nvvm.sust.b.2d.v4i16.clamp",
+ "llvm.nvvm.sust.b.2d.v4i16.trap",
+ "llvm.nvvm.sust.b.2d.v4i16.zero",
+ "llvm.nvvm.sust.b.2d.v4i32.clamp",
+ "llvm.nvvm.sust.b.2d.v4i32.trap",
+ "llvm.nvvm.sust.b.2d.v4i32.zero",
+ "llvm.nvvm.sust.b.2d.v4i8.clamp",
+ "llvm.nvvm.sust.b.2d.v4i8.trap",
+ "llvm.nvvm.sust.b.2d.v4i8.zero",
+ "llvm.nvvm.sust.b.3d.i16.clamp",
+ "llvm.nvvm.sust.b.3d.i16.trap",
+ "llvm.nvvm.sust.b.3d.i16.zero",
+ "llvm.nvvm.sust.b.3d.i32.clamp",
+ "llvm.nvvm.sust.b.3d.i32.trap",
+ "llvm.nvvm.sust.b.3d.i32.zero",
+ "llvm.nvvm.sust.b.3d.i64.clamp",
+ "llvm.nvvm.sust.b.3d.i64.trap",
+ "llvm.nvvm.sust.b.3d.i64.zero",
+ "llvm.nvvm.sust.b.3d.i8.clamp",
+ "llvm.nvvm.sust.b.3d.i8.trap",
+ "llvm.nvvm.sust.b.3d.i8.zero",
+ "llvm.nvvm.sust.b.3d.v2i16.clamp",
+ "llvm.nvvm.sust.b.3d.v2i16.trap",
+ "llvm.nvvm.sust.b.3d.v2i16.zero",
+ "llvm.nvvm.sust.b.3d.v2i32.clamp",
+ "llvm.nvvm.sust.b.3d.v2i32.trap",
+ "llvm.nvvm.sust.b.3d.v2i32.zero",
+ "llvm.nvvm.sust.b.3d.v2i64.clamp",
+ "llvm.nvvm.sust.b.3d.v2i64.trap",
+ "llvm.nvvm.sust.b.3d.v2i64.zero",
+ "llvm.nvvm.sust.b.3d.v2i8.clamp",
+ "llvm.nvvm.sust.b.3d.v2i8.trap",
+ "llvm.nvvm.sust.b.3d.v2i8.zero",
+ "llvm.nvvm.sust.b.3d.v4i16.clamp",
+ "llvm.nvvm.sust.b.3d.v4i16.trap",
+ "llvm.nvvm.sust.b.3d.v4i16.zero",
+ "llvm.nvvm.sust.b.3d.v4i32.clamp",
+ "llvm.nvvm.sust.b.3d.v4i32.trap",
+ "llvm.nvvm.sust.b.3d.v4i32.zero",
+ "llvm.nvvm.sust.b.3d.v4i8.clamp",
+ "llvm.nvvm.sust.b.3d.v4i8.trap",
+ "llvm.nvvm.sust.b.3d.v4i8.zero",
+ "llvm.nvvm.sust.p.1d.array.i16.trap",
+ "llvm.nvvm.sust.p.1d.array.i32.trap",
+ "llvm.nvvm.sust.p.1d.array.i8.trap",
+ "llvm.nvvm.sust.p.1d.array.v2i16.trap",
+ "llvm.nvvm.sust.p.1d.array.v2i32.trap",
+ "llvm.nvvm.sust.p.1d.array.v2i8.trap",
+ "llvm.nvvm.sust.p.1d.array.v4i16.trap",
+ "llvm.nvvm.sust.p.1d.array.v4i32.trap",
+ "llvm.nvvm.sust.p.1d.array.v4i8.trap",
+ "llvm.nvvm.sust.p.1d.i16.trap",
+ "llvm.nvvm.sust.p.1d.i32.trap",
+ "llvm.nvvm.sust.p.1d.i8.trap",
+ "llvm.nvvm.sust.p.1d.v2i16.trap",
+ "llvm.nvvm.sust.p.1d.v2i32.trap",
+ "llvm.nvvm.sust.p.1d.v2i8.trap",
+ "llvm.nvvm.sust.p.1d.v4i16.trap",
+ "llvm.nvvm.sust.p.1d.v4i32.trap",
+ "llvm.nvvm.sust.p.1d.v4i8.trap",
+ "llvm.nvvm.sust.p.2d.array.i16.trap",
+ "llvm.nvvm.sust.p.2d.array.i32.trap",
+ "llvm.nvvm.sust.p.2d.array.i8.trap",
+ "llvm.nvvm.sust.p.2d.array.v2i16.trap",
+ "llvm.nvvm.sust.p.2d.array.v2i32.trap",
+ "llvm.nvvm.sust.p.2d.array.v2i8.trap",
+ "llvm.nvvm.sust.p.2d.array.v4i16.trap",
+ "llvm.nvvm.sust.p.2d.array.v4i32.trap",
+ "llvm.nvvm.sust.p.2d.array.v4i8.trap",
+ "llvm.nvvm.sust.p.2d.i16.trap",
+ "llvm.nvvm.sust.p.2d.i32.trap",
+ "llvm.nvvm.sust.p.2d.i8.trap",
+ "llvm.nvvm.sust.p.2d.v2i16.trap",
+ "llvm.nvvm.sust.p.2d.v2i32.trap",
+ "llvm.nvvm.sust.p.2d.v2i8.trap",
+ "llvm.nvvm.sust.p.2d.v4i16.trap",
+ "llvm.nvvm.sust.p.2d.v4i32.trap",
+ "llvm.nvvm.sust.p.2d.v4i8.trap",
+ "llvm.nvvm.sust.p.3d.i16.trap",
+ "llvm.nvvm.sust.p.3d.i32.trap",
+ "llvm.nvvm.sust.p.3d.i8.trap",
+ "llvm.nvvm.sust.p.3d.v2i16.trap",
+ "llvm.nvvm.sust.p.3d.v2i32.trap",
+ "llvm.nvvm.sust.p.3d.v2i8.trap",
+ "llvm.nvvm.sust.p.3d.v4i16.trap",
+ "llvm.nvvm.sust.p.3d.v4i32.trap",
+ "llvm.nvvm.sust.p.3d.v4i8.trap",
+ "llvm.nvvm.swap.lo.hi.b64",
+ "llvm.nvvm.tex.1d.array.grad.v4f32.f32",
+ "llvm.nvvm.tex.1d.array.grad.v4s32.f32",
+ "llvm.nvvm.tex.1d.array.grad.v4u32.f32",
+ "llvm.nvvm.tex.1d.array.level.v4f32.f32",
+ "llvm.nvvm.tex.1d.array.level.v4s32.f32",
+ "llvm.nvvm.tex.1d.array.level.v4u32.f32",
+ "llvm.nvvm.tex.1d.array.v4f32.f32",
+ "llvm.nvvm.tex.1d.array.v4f32.s32",
+ "llvm.nvvm.tex.1d.array.v4s32.f32",
+ "llvm.nvvm.tex.1d.array.v4s32.s32",
+ "llvm.nvvm.tex.1d.array.v4u32.f32",
+ "llvm.nvvm.tex.1d.array.v4u32.s32",
+ "llvm.nvvm.tex.1d.grad.v4f32.f32",
+ "llvm.nvvm.tex.1d.grad.v4s32.f32",
+ "llvm.nvvm.tex.1d.grad.v4u32.f32",
+ "llvm.nvvm.tex.1d.level.v4f32.f32",
+ "llvm.nvvm.tex.1d.level.v4s32.f32",
+ "llvm.nvvm.tex.1d.level.v4u32.f32",
+ "llvm.nvvm.tex.1d.v4f32.f32",
+ "llvm.nvvm.tex.1d.v4f32.s32",
+ "llvm.nvvm.tex.1d.v4s32.f32",
+ "llvm.nvvm.tex.1d.v4s32.s32",
+ "llvm.nvvm.tex.1d.v4u32.f32",
+ "llvm.nvvm.tex.1d.v4u32.s32",
+ "llvm.nvvm.tex.2d.array.grad.v4f32.f32",
+ "llvm.nvvm.tex.2d.array.grad.v4s32.f32",
+ "llvm.nvvm.tex.2d.array.grad.v4u32.f32",
+ "llvm.nvvm.tex.2d.array.level.v4f32.f32",
+ "llvm.nvvm.tex.2d.array.level.v4s32.f32",
+ "llvm.nvvm.tex.2d.array.level.v4u32.f32",
+ "llvm.nvvm.tex.2d.array.v4f32.f32",
+ "llvm.nvvm.tex.2d.array.v4f32.s32",
+ "llvm.nvvm.tex.2d.array.v4s32.f32",
+ "llvm.nvvm.tex.2d.array.v4s32.s32",
+ "llvm.nvvm.tex.2d.array.v4u32.f32",
+ "llvm.nvvm.tex.2d.array.v4u32.s32",
+ "llvm.nvvm.tex.2d.grad.v4f32.f32",
+ "llvm.nvvm.tex.2d.grad.v4s32.f32",
+ "llvm.nvvm.tex.2d.grad.v4u32.f32",
+ "llvm.nvvm.tex.2d.level.v4f32.f32",
+ "llvm.nvvm.tex.2d.level.v4s32.f32",
+ "llvm.nvvm.tex.2d.level.v4u32.f32",
+ "llvm.nvvm.tex.2d.v4f32.f32",
+ "llvm.nvvm.tex.2d.v4f32.s32",
+ "llvm.nvvm.tex.2d.v4s32.f32",
+ "llvm.nvvm.tex.2d.v4s32.s32",
+ "llvm.nvvm.tex.2d.v4u32.f32",
+ "llvm.nvvm.tex.2d.v4u32.s32",
+ "llvm.nvvm.tex.3d.grad.v4f32.f32",
+ "llvm.nvvm.tex.3d.grad.v4s32.f32",
+ "llvm.nvvm.tex.3d.grad.v4u32.f32",
+ "llvm.nvvm.tex.3d.level.v4f32.f32",
+ "llvm.nvvm.tex.3d.level.v4s32.f32",
+ "llvm.nvvm.tex.3d.level.v4u32.f32",
+ "llvm.nvvm.tex.3d.v4f32.f32",
+ "llvm.nvvm.tex.3d.v4f32.s32",
+ "llvm.nvvm.tex.3d.v4s32.f32",
+ "llvm.nvvm.tex.3d.v4s32.s32",
+ "llvm.nvvm.tex.3d.v4u32.f32",
+ "llvm.nvvm.tex.3d.v4u32.s32",
+ "llvm.nvvm.tex.cube.array.level.v4f32.f32",
+ "llvm.nvvm.tex.cube.array.level.v4s32.f32",
+ "llvm.nvvm.tex.cube.array.level.v4u32.f32",
+ "llvm.nvvm.tex.cube.array.v4f32.f32",
+ "llvm.nvvm.tex.cube.array.v4s32.f32",
+ "llvm.nvvm.tex.cube.array.v4u32.f32",
+ "llvm.nvvm.tex.cube.level.v4f32.f32",
+ "llvm.nvvm.tex.cube.level.v4s32.f32",
+ "llvm.nvvm.tex.cube.level.v4u32.f32",
+ "llvm.nvvm.tex.cube.v4f32.f32",
+ "llvm.nvvm.tex.cube.v4s32.f32",
+ "llvm.nvvm.tex.cube.v4u32.f32",
+ "llvm.nvvm.tex.unified.1d.array.grad.v4f32.f32",
+ "llvm.nvvm.tex.unified.1d.array.grad.v4s32.f32",
+ "llvm.nvvm.tex.unified.1d.array.grad.v4u32.f32",
+ "llvm.nvvm.tex.unified.1d.array.level.v4f32.f32",
+ "llvm.nvvm.tex.unified.1d.array.level.v4s32.f32",
+ "llvm.nvvm.tex.unified.1d.array.level.v4u32.f32",
+ "llvm.nvvm.tex.unified.1d.array.v4f32.f32",
+ "llvm.nvvm.tex.unified.1d.array.v4f32.s32",
+ "llvm.nvvm.tex.unified.1d.array.v4s32.f32",
+ "llvm.nvvm.tex.unified.1d.array.v4s32.s32",
+ "llvm.nvvm.tex.unified.1d.array.v4u32.f32",
+ "llvm.nvvm.tex.unified.1d.array.v4u32.s32",
+ "llvm.nvvm.tex.unified.1d.grad.v4f32.f32",
+ "llvm.nvvm.tex.unified.1d.grad.v4s32.f32",
+ "llvm.nvvm.tex.unified.1d.grad.v4u32.f32",
+ "llvm.nvvm.tex.unified.1d.level.v4f32.f32",
+ "llvm.nvvm.tex.unified.1d.level.v4s32.f32",
+ "llvm.nvvm.tex.unified.1d.level.v4u32.f32",
+ "llvm.nvvm.tex.unified.1d.v4f32.f32",
+ "llvm.nvvm.tex.unified.1d.v4f32.s32",
+ "llvm.nvvm.tex.unified.1d.v4s32.f32",
+ "llvm.nvvm.tex.unified.1d.v4s32.s32",
+ "llvm.nvvm.tex.unified.1d.v4u32.f32",
+ "llvm.nvvm.tex.unified.1d.v4u32.s32",
+ "llvm.nvvm.tex.unified.2d.array.grad.v4f32.f32",
+ "llvm.nvvm.tex.unified.2d.array.grad.v4s32.f32",
+ "llvm.nvvm.tex.unified.2d.array.grad.v4u32.f32",
+ "llvm.nvvm.tex.unified.2d.array.level.v4f32.f32",
+ "llvm.nvvm.tex.unified.2d.array.level.v4s32.f32",
+ "llvm.nvvm.tex.unified.2d.array.level.v4u32.f32",
+ "llvm.nvvm.tex.unified.2d.array.v4f32.f32",
+ "llvm.nvvm.tex.unified.2d.array.v4f32.s32",
+ "llvm.nvvm.tex.unified.2d.array.v4s32.f32",
+ "llvm.nvvm.tex.unified.2d.array.v4s32.s32",
+ "llvm.nvvm.tex.unified.2d.array.v4u32.f32",
+ "llvm.nvvm.tex.unified.2d.array.v4u32.s32",
+ "llvm.nvvm.tex.unified.2d.grad.v4f32.f32",
+ "llvm.nvvm.tex.unified.2d.grad.v4s32.f32",
+ "llvm.nvvm.tex.unified.2d.grad.v4u32.f32",
+ "llvm.nvvm.tex.unified.2d.level.v4f32.f32",
+ "llvm.nvvm.tex.unified.2d.level.v4s32.f32",
+ "llvm.nvvm.tex.unified.2d.level.v4u32.f32",
+ "llvm.nvvm.tex.unified.2d.v4f32.f32",
+ "llvm.nvvm.tex.unified.2d.v4f32.s32",
+ "llvm.nvvm.tex.unified.2d.v4s32.f32",
+ "llvm.nvvm.tex.unified.2d.v4s32.s32",
+ "llvm.nvvm.tex.unified.2d.v4u32.f32",
+ "llvm.nvvm.tex.unified.2d.v4u32.s32",
+ "llvm.nvvm.tex.unified.3d.grad.v4f32.f32",
+ "llvm.nvvm.tex.unified.3d.grad.v4s32.f32",
+ "llvm.nvvm.tex.unified.3d.grad.v4u32.f32",
+ "llvm.nvvm.tex.unified.3d.level.v4f32.f32",
+ "llvm.nvvm.tex.unified.3d.level.v4s32.f32",
+ "llvm.nvvm.tex.unified.3d.level.v4u32.f32",
+ "llvm.nvvm.tex.unified.3d.v4f32.f32",
+ "llvm.nvvm.tex.unified.3d.v4f32.s32",
+ "llvm.nvvm.tex.unified.3d.v4s32.f32",
+ "llvm.nvvm.tex.unified.3d.v4s32.s32",
+ "llvm.nvvm.tex.unified.3d.v4u32.f32",
+ "llvm.nvvm.tex.unified.3d.v4u32.s32",
+ "llvm.nvvm.tex.unified.cube.array.level.v4f32.f32",
+ "llvm.nvvm.tex.unified.cube.array.level.v4s32.f32",
+ "llvm.nvvm.tex.unified.cube.array.level.v4u32.f32",
+ "llvm.nvvm.tex.unified.cube.array.v4f32.f32",
+ "llvm.nvvm.tex.unified.cube.array.v4s32.f32",
+ "llvm.nvvm.tex.unified.cube.array.v4u32.f32",
+ "llvm.nvvm.tex.unified.cube.level.v4f32.f32",
+ "llvm.nvvm.tex.unified.cube.level.v4s32.f32",
+ "llvm.nvvm.tex.unified.cube.level.v4u32.f32",
+ "llvm.nvvm.tex.unified.cube.v4f32.f32",
+ "llvm.nvvm.tex.unified.cube.v4s32.f32",
+ "llvm.nvvm.tex.unified.cube.v4u32.f32",
+ "llvm.nvvm.texsurf.handle",
+ "llvm.nvvm.texsurf.handle.internal",
+ "llvm.nvvm.tld4.a.2d.v4f32.f32",
+ "llvm.nvvm.tld4.a.2d.v4s32.f32",
+ "llvm.nvvm.tld4.a.2d.v4u32.f32",
+ "llvm.nvvm.tld4.b.2d.v4f32.f32",
+ "llvm.nvvm.tld4.b.2d.v4s32.f32",
+ "llvm.nvvm.tld4.b.2d.v4u32.f32",
+ "llvm.nvvm.tld4.g.2d.v4f32.f32",
+ "llvm.nvvm.tld4.g.2d.v4s32.f32",
+ "llvm.nvvm.tld4.g.2d.v4u32.f32",
+ "llvm.nvvm.tld4.r.2d.v4f32.f32",
+ "llvm.nvvm.tld4.r.2d.v4s32.f32",
+ "llvm.nvvm.tld4.r.2d.v4u32.f32",
+ "llvm.nvvm.tld4.unified.a.2d.v4f32.f32",
+ "llvm.nvvm.tld4.unified.a.2d.v4s32.f32",
+ "llvm.nvvm.tld4.unified.a.2d.v4u32.f32",
+ "llvm.nvvm.tld4.unified.b.2d.v4f32.f32",
+ "llvm.nvvm.tld4.unified.b.2d.v4s32.f32",
+ "llvm.nvvm.tld4.unified.b.2d.v4u32.f32",
+ "llvm.nvvm.tld4.unified.g.2d.v4f32.f32",
+ "llvm.nvvm.tld4.unified.g.2d.v4s32.f32",
+ "llvm.nvvm.tld4.unified.g.2d.v4u32.f32",
+ "llvm.nvvm.tld4.unified.r.2d.v4f32.f32",
+ "llvm.nvvm.tld4.unified.r.2d.v4s32.f32",
+ "llvm.nvvm.tld4.unified.r.2d.v4u32.f32",
+ "llvm.nvvm.trunc.d",
+ "llvm.nvvm.trunc.f",
+ "llvm.nvvm.trunc.ftz.f",
+ "llvm.nvvm.txq.array.size",
+ "llvm.nvvm.txq.channel.data.type",
+ "llvm.nvvm.txq.channel.order",
+ "llvm.nvvm.txq.depth",
+ "llvm.nvvm.txq.height",
+ "llvm.nvvm.txq.num.mipmap.levels",
+ "llvm.nvvm.txq.num.samples",
+ "llvm.nvvm.txq.width",
+ "llvm.nvvm.ui2d.rm",
+ "llvm.nvvm.ui2d.rn",
+ "llvm.nvvm.ui2d.rp",
+ "llvm.nvvm.ui2d.rz",
+ "llvm.nvvm.ui2f.rm",
+ "llvm.nvvm.ui2f.rn",
+ "llvm.nvvm.ui2f.rp",
+ "llvm.nvvm.ui2f.rz",
+ "llvm.nvvm.ull2d.rm",
+ "llvm.nvvm.ull2d.rn",
+ "llvm.nvvm.ull2d.rp",
+ "llvm.nvvm.ull2d.rz",
+ "llvm.nvvm.ull2f.rm",
+ "llvm.nvvm.ull2f.rn",
+ "llvm.nvvm.ull2f.rp",
+ "llvm.nvvm.ull2f.rz",
+ "llvm.objectsize",
+ "llvm.pcmarker",
+ "llvm.pow",
+ "llvm.powi",
+ "llvm.ppc.altivec.dss",
+ "llvm.ppc.altivec.dssall",
+ "llvm.ppc.altivec.dst",
+ "llvm.ppc.altivec.dstst",
+ "llvm.ppc.altivec.dststt",
+ "llvm.ppc.altivec.dstt",
+ "llvm.ppc.altivec.lvebx",
+ "llvm.ppc.altivec.lvehx",
+ "llvm.ppc.altivec.lvewx",
+ "llvm.ppc.altivec.lvsl",
+ "llvm.ppc.altivec.lvsr",
+ "llvm.ppc.altivec.lvx",
+ "llvm.ppc.altivec.lvxl",
+ "llvm.ppc.altivec.mfvscr",
+ "llvm.ppc.altivec.mtvscr",
+ "llvm.ppc.altivec.stvebx",
+ "llvm.ppc.altivec.stvehx",
+ "llvm.ppc.altivec.stvewx",
+ "llvm.ppc.altivec.stvx",
+ "llvm.ppc.altivec.stvxl",
+ "llvm.ppc.altivec.vaddcuw",
+ "llvm.ppc.altivec.vaddsbs",
+ "llvm.ppc.altivec.vaddshs",
+ "llvm.ppc.altivec.vaddsws",
+ "llvm.ppc.altivec.vaddubs",
+ "llvm.ppc.altivec.vadduhs",
+ "llvm.ppc.altivec.vadduws",
+ "llvm.ppc.altivec.vavgsb",
+ "llvm.ppc.altivec.vavgsh",
+ "llvm.ppc.altivec.vavgsw",
+ "llvm.ppc.altivec.vavgub",
+ "llvm.ppc.altivec.vavguh",
+ "llvm.ppc.altivec.vavguw",
+ "llvm.ppc.altivec.vcfsx",
+ "llvm.ppc.altivec.vcfux",
+ "llvm.ppc.altivec.vcmpbfp",
+ "llvm.ppc.altivec.vcmpbfp.p",
+ "llvm.ppc.altivec.vcmpeqfp",
+ "llvm.ppc.altivec.vcmpeqfp.p",
+ "llvm.ppc.altivec.vcmpequb",
+ "llvm.ppc.altivec.vcmpequb.p",
+ "llvm.ppc.altivec.vcmpequh",
+ "llvm.ppc.altivec.vcmpequh.p",
+ "llvm.ppc.altivec.vcmpequw",
+ "llvm.ppc.altivec.vcmpequw.p",
+ "llvm.ppc.altivec.vcmpgefp",
+ "llvm.ppc.altivec.vcmpgefp.p",
+ "llvm.ppc.altivec.vcmpgtfp",
+ "llvm.ppc.altivec.vcmpgtfp.p",
+ "llvm.ppc.altivec.vcmpgtsb",
+ "llvm.ppc.altivec.vcmpgtsb.p",
+ "llvm.ppc.altivec.vcmpgtsh",
+ "llvm.ppc.altivec.vcmpgtsh.p",
+ "llvm.ppc.altivec.vcmpgtsw",
+ "llvm.ppc.altivec.vcmpgtsw.p",
+ "llvm.ppc.altivec.vcmpgtub",
+ "llvm.ppc.altivec.vcmpgtub.p",
+ "llvm.ppc.altivec.vcmpgtuh",
+ "llvm.ppc.altivec.vcmpgtuh.p",
+ "llvm.ppc.altivec.vcmpgtuw",
+ "llvm.ppc.altivec.vcmpgtuw.p",
+ "llvm.ppc.altivec.vctsxs",
+ "llvm.ppc.altivec.vctuxs",
+ "llvm.ppc.altivec.vexptefp",
+ "llvm.ppc.altivec.vlogefp",
+ "llvm.ppc.altivec.vmaddfp",
+ "llvm.ppc.altivec.vmaxfp",
+ "llvm.ppc.altivec.vmaxsb",
+ "llvm.ppc.altivec.vmaxsh",
+ "llvm.ppc.altivec.vmaxsw",
+ "llvm.ppc.altivec.vmaxub",
+ "llvm.ppc.altivec.vmaxuh",
+ "llvm.ppc.altivec.vmaxuw",
+ "llvm.ppc.altivec.vmhaddshs",
+ "llvm.ppc.altivec.vmhraddshs",
+ "llvm.ppc.altivec.vminfp",
+ "llvm.ppc.altivec.vminsb",
+ "llvm.ppc.altivec.vminsh",
+ "llvm.ppc.altivec.vminsw",
+ "llvm.ppc.altivec.vminub",
+ "llvm.ppc.altivec.vminuh",
+ "llvm.ppc.altivec.vminuw",
+ "llvm.ppc.altivec.vmladduhm",
+ "llvm.ppc.altivec.vmsummbm",
+ "llvm.ppc.altivec.vmsumshm",
+ "llvm.ppc.altivec.vmsumshs",
+ "llvm.ppc.altivec.vmsumubm",
+ "llvm.ppc.altivec.vmsumuhm",
+ "llvm.ppc.altivec.vmsumuhs",
+ "llvm.ppc.altivec.vmulesb",
+ "llvm.ppc.altivec.vmulesh",
+ "llvm.ppc.altivec.vmuleub",
+ "llvm.ppc.altivec.vmuleuh",
+ "llvm.ppc.altivec.vmulosb",
+ "llvm.ppc.altivec.vmulosh",
+ "llvm.ppc.altivec.vmuloub",
+ "llvm.ppc.altivec.vmulouh",
+ "llvm.ppc.altivec.vnmsubfp",
+ "llvm.ppc.altivec.vperm",
+ "llvm.ppc.altivec.vpkpx",
+ "llvm.ppc.altivec.vpkshss",
+ "llvm.ppc.altivec.vpkshus",
+ "llvm.ppc.altivec.vpkswss",
+ "llvm.ppc.altivec.vpkswus",
+ "llvm.ppc.altivec.vpkuhus",
+ "llvm.ppc.altivec.vpkuwus",
+ "llvm.ppc.altivec.vrefp",
+ "llvm.ppc.altivec.vrfim",
+ "llvm.ppc.altivec.vrfin",
+ "llvm.ppc.altivec.vrfip",
+ "llvm.ppc.altivec.vrfiz",
+ "llvm.ppc.altivec.vrlb",
+ "llvm.ppc.altivec.vrlh",
+ "llvm.ppc.altivec.vrlw",
+ "llvm.ppc.altivec.vrsqrtefp",
+ "llvm.ppc.altivec.vsel",
+ "llvm.ppc.altivec.vsl",
+ "llvm.ppc.altivec.vslb",
+ "llvm.ppc.altivec.vslh",
+ "llvm.ppc.altivec.vslo",
+ "llvm.ppc.altivec.vslw",
+ "llvm.ppc.altivec.vsr",
+ "llvm.ppc.altivec.vsrab",
+ "llvm.ppc.altivec.vsrah",
+ "llvm.ppc.altivec.vsraw",
+ "llvm.ppc.altivec.vsrb",
+ "llvm.ppc.altivec.vsrh",
+ "llvm.ppc.altivec.vsro",
+ "llvm.ppc.altivec.vsrw",
+ "llvm.ppc.altivec.vsubcuw",
+ "llvm.ppc.altivec.vsubsbs",
+ "llvm.ppc.altivec.vsubshs",
+ "llvm.ppc.altivec.vsubsws",
+ "llvm.ppc.altivec.vsububs",
+ "llvm.ppc.altivec.vsubuhs",
+ "llvm.ppc.altivec.vsubuws",
+ "llvm.ppc.altivec.vsum2sws",
+ "llvm.ppc.altivec.vsum4sbs",
+ "llvm.ppc.altivec.vsum4shs",
+ "llvm.ppc.altivec.vsum4ubs",
+ "llvm.ppc.altivec.vsumsws",
+ "llvm.ppc.altivec.vupkhpx",
+ "llvm.ppc.altivec.vupkhsb",
+ "llvm.ppc.altivec.vupkhsh",
+ "llvm.ppc.altivec.vupklpx",
+ "llvm.ppc.altivec.vupklsb",
+ "llvm.ppc.altivec.vupklsh",
+ "llvm.ppc.dcba",
+ "llvm.ppc.dcbf",
+ "llvm.ppc.dcbi",
+ "llvm.ppc.dcbst",
+ "llvm.ppc.dcbt",
+ "llvm.ppc.dcbtst",
+ "llvm.ppc.dcbz",
+ "llvm.ppc.dcbzl",
+ "llvm.ppc.is.decremented.ctr.nonzero",
+ "llvm.ppc.mtctr",
+ "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.r600.read.global.size.x",
+ "llvm.r600.read.global.size.y",
+ "llvm.r600.read.global.size.z",
+ "llvm.r600.read.local.size.x",
+ "llvm.r600.read.local.size.y",
+ "llvm.r600.read.local.size.z",
+ "llvm.r600.read.ngroups.x",
+ "llvm.r600.read.ngroups.y",
+ "llvm.r600.read.ngroups.z",
+ "llvm.r600.read.tgid.x",
+ "llvm.r600.read.tgid.y",
+ "llvm.r600.read.tgid.z",
+ "llvm.r600.read.tidig.x",
+ "llvm.r600.read.tidig.y",
+ "llvm.r600.read.tidig.z",
+ "llvm.read_register",
+ "llvm.readcyclecounter",
+ "llvm.returnaddress",
+ "llvm.rint",
+ "llvm.round",
+ "llvm.sadd.with.overflow",
+ "llvm.setjmp",
+ "llvm.siglongjmp",
+ "llvm.sigsetjmp",
+ "llvm.sin",
+ "llvm.smul.with.overflow",
+ "llvm.sqrt",
+ "llvm.ssub.with.overflow",
+ "llvm.stackprotector",
+ "llvm.stackprotectorcheck",
+ "llvm.stackrestore",
+ "llvm.stacksave",
+ "llvm.trap",
+ "llvm.trunc",
+ "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.write_register",
+ "llvm.x86.3dnow.pavgusb",
+ "llvm.x86.3dnow.pf2id",
+ "llvm.x86.3dnow.pfacc",
+ "llvm.x86.3dnow.pfadd",
+ "llvm.x86.3dnow.pfcmpeq",
+ "llvm.x86.3dnow.pfcmpge",
+ "llvm.x86.3dnow.pfcmpgt",
+ "llvm.x86.3dnow.pfmax",
+ "llvm.x86.3dnow.pfmin",
+ "llvm.x86.3dnow.pfmul",
+ "llvm.x86.3dnow.pfrcp",
+ "llvm.x86.3dnow.pfrcpit1",
+ "llvm.x86.3dnow.pfrcpit2",
+ "llvm.x86.3dnow.pfrsqit1",
+ "llvm.x86.3dnow.pfrsqrt",
+ "llvm.x86.3dnow.pfsub",
+ "llvm.x86.3dnow.pfsubr",
+ "llvm.x86.3dnow.pi2fd",
+ "llvm.x86.3dnow.pmulhrw",
+ "llvm.x86.3dnowa.pf2iw",
+ "llvm.x86.3dnowa.pfnacc",
+ "llvm.x86.3dnowa.pfpnacc",
+ "llvm.x86.3dnowa.pi2fw",
+ "llvm.x86.3dnowa.pswapd",
+ "llvm.x86.aesni.aesdec",
+ "llvm.x86.aesni.aesdeclast",
+ "llvm.x86.aesni.aesenc",
+ "llvm.x86.aesni.aesenclast",
+ "llvm.x86.aesni.aesimc",
+ "llvm.x86.aesni.aeskeygenassist",
+ "llvm.x86.avx2.gather.d.d",
+ "llvm.x86.avx2.gather.d.d.256",
+ "llvm.x86.avx2.gather.d.pd",
+ "llvm.x86.avx2.gather.d.pd.256",
+ "llvm.x86.avx2.gather.d.ps",
+ "llvm.x86.avx2.gather.d.ps.256",
+ "llvm.x86.avx2.gather.d.q",
+ "llvm.x86.avx2.gather.d.q.256",
+ "llvm.x86.avx2.gather.q.d",
+ "llvm.x86.avx2.gather.q.d.256",
+ "llvm.x86.avx2.gather.q.pd",
+ "llvm.x86.avx2.gather.q.pd.256",
+ "llvm.x86.avx2.gather.q.ps",
+ "llvm.x86.avx2.gather.q.ps.256",
+ "llvm.x86.avx2.gather.q.q",
+ "llvm.x86.avx2.gather.q.q.256",
+ "llvm.x86.avx2.maskload.d",
+ "llvm.x86.avx2.maskload.d.256",
+ "llvm.x86.avx2.maskload.q",
+ "llvm.x86.avx2.maskload.q.256",
+ "llvm.x86.avx2.maskstore.d",
+ "llvm.x86.avx2.maskstore.d.256",
+ "llvm.x86.avx2.maskstore.q",
+ "llvm.x86.avx2.maskstore.q.256",
+ "llvm.x86.avx2.movntdqa",
+ "llvm.x86.avx2.mpsadbw",
+ "llvm.x86.avx2.pabs.b",
+ "llvm.x86.avx2.pabs.d",
+ "llvm.x86.avx2.pabs.w",
+ "llvm.x86.avx2.packssdw",
+ "llvm.x86.avx2.packsswb",
+ "llvm.x86.avx2.packusdw",
+ "llvm.x86.avx2.packuswb",
+ "llvm.x86.avx2.padds.b",
+ "llvm.x86.avx2.padds.w",
+ "llvm.x86.avx2.paddus.b",
+ "llvm.x86.avx2.paddus.w",
+ "llvm.x86.avx2.pavg.b",
+ "llvm.x86.avx2.pavg.w",
+ "llvm.x86.avx2.pblendd.128",
+ "llvm.x86.avx2.pblendd.256",
+ "llvm.x86.avx2.pblendvb",
+ "llvm.x86.avx2.pblendw",
+ "llvm.x86.avx2.pbroadcastb.128",
+ "llvm.x86.avx2.pbroadcastb.256",
+ "llvm.x86.avx2.pbroadcastd.128",
+ "llvm.x86.avx2.pbroadcastd.256",
+ "llvm.x86.avx2.pbroadcastq.128",
+ "llvm.x86.avx2.pbroadcastq.256",
+ "llvm.x86.avx2.pbroadcastw.128",
+ "llvm.x86.avx2.pbroadcastw.256",
+ "llvm.x86.avx2.permd",
+ "llvm.x86.avx2.permps",
+ "llvm.x86.avx2.phadd.d",
+ "llvm.x86.avx2.phadd.sw",
+ "llvm.x86.avx2.phadd.w",
+ "llvm.x86.avx2.phsub.d",
+ "llvm.x86.avx2.phsub.sw",
+ "llvm.x86.avx2.phsub.w",
+ "llvm.x86.avx2.pmadd.ub.sw",
+ "llvm.x86.avx2.pmadd.wd",
+ "llvm.x86.avx2.pmaxs.b",
+ "llvm.x86.avx2.pmaxs.d",
+ "llvm.x86.avx2.pmaxs.w",
+ "llvm.x86.avx2.pmaxu.b",
+ "llvm.x86.avx2.pmaxu.d",
+ "llvm.x86.avx2.pmaxu.w",
+ "llvm.x86.avx2.pmins.b",
+ "llvm.x86.avx2.pmins.d",
+ "llvm.x86.avx2.pmins.w",
+ "llvm.x86.avx2.pminu.b",
+ "llvm.x86.avx2.pminu.d",
+ "llvm.x86.avx2.pminu.w",
+ "llvm.x86.avx2.pmovmskb",
+ "llvm.x86.avx2.pmovsxbd",
+ "llvm.x86.avx2.pmovsxbq",
+ "llvm.x86.avx2.pmovsxbw",
+ "llvm.x86.avx2.pmovsxdq",
+ "llvm.x86.avx2.pmovsxwd",
+ "llvm.x86.avx2.pmovsxwq",
+ "llvm.x86.avx2.pmovzxbd",
+ "llvm.x86.avx2.pmovzxbq",
+ "llvm.x86.avx2.pmovzxbw",
+ "llvm.x86.avx2.pmovzxdq",
+ "llvm.x86.avx2.pmovzxwd",
+ "llvm.x86.avx2.pmovzxwq",
+ "llvm.x86.avx2.pmul.dq",
+ "llvm.x86.avx2.pmul.hr.sw",
+ "llvm.x86.avx2.pmulh.w",
+ "llvm.x86.avx2.pmulhu.w",
+ "llvm.x86.avx2.pmulu.dq",
+ "llvm.x86.avx2.psad.bw",
+ "llvm.x86.avx2.pshuf.b",
+ "llvm.x86.avx2.psign.b",
+ "llvm.x86.avx2.psign.d",
+ "llvm.x86.avx2.psign.w",
+ "llvm.x86.avx2.psll.d",
+ "llvm.x86.avx2.psll.dq",
+ "llvm.x86.avx2.psll.dq.bs",
+ "llvm.x86.avx2.psll.q",
+ "llvm.x86.avx2.psll.w",
+ "llvm.x86.avx2.pslli.d",
+ "llvm.x86.avx2.pslli.q",
+ "llvm.x86.avx2.pslli.w",
+ "llvm.x86.avx2.psllv.d",
+ "llvm.x86.avx2.psllv.d.256",
+ "llvm.x86.avx2.psllv.q",
+ "llvm.x86.avx2.psllv.q.256",
+ "llvm.x86.avx2.psra.d",
+ "llvm.x86.avx2.psra.w",
+ "llvm.x86.avx2.psrai.d",
+ "llvm.x86.avx2.psrai.w",
+ "llvm.x86.avx2.psrav.d",
+ "llvm.x86.avx2.psrav.d.256",
+ "llvm.x86.avx2.psrl.d",
+ "llvm.x86.avx2.psrl.dq",
+ "llvm.x86.avx2.psrl.dq.bs",
+ "llvm.x86.avx2.psrl.q",
+ "llvm.x86.avx2.psrl.w",
+ "llvm.x86.avx2.psrli.d",
+ "llvm.x86.avx2.psrli.q",
+ "llvm.x86.avx2.psrli.w",
+ "llvm.x86.avx2.psrlv.d",
+ "llvm.x86.avx2.psrlv.d.256",
+ "llvm.x86.avx2.psrlv.q",
+ "llvm.x86.avx2.psrlv.q.256",
+ "llvm.x86.avx2.psubs.b",
+ "llvm.x86.avx2.psubs.w",
+ "llvm.x86.avx2.psubus.b",
+ "llvm.x86.avx2.psubus.w",
+ "llvm.x86.avx2.vbroadcast.sd.pd.256",
+ "llvm.x86.avx2.vbroadcast.ss.ps",
+ "llvm.x86.avx2.vbroadcast.ss.ps.256",
+ "llvm.x86.avx2.vbroadcasti128",
+ "llvm.x86.avx2.vextracti128",
+ "llvm.x86.avx2.vinserti128",
+ "llvm.x86.avx2.vperm2i128",
+ "llvm.x86.avx512.cvtsd2usi",
+ "llvm.x86.avx512.cvtsd2usi64",
+ "llvm.x86.avx512.cvtss2usi",
+ "llvm.x86.avx512.cvtss2usi64",
+ "llvm.x86.avx512.cvttsd2usi",
+ "llvm.x86.avx512.cvttsd2usi64",
+ "llvm.x86.avx512.cvttss2usi",
+ "llvm.x86.avx512.cvttss2usi64",
+ "llvm.x86.avx512.cvtusi2sd",
+ "llvm.x86.avx512.cvtusi2ss",
+ "llvm.x86.avx512.cvtusi642sd",
+ "llvm.x86.avx512.cvtusi642ss",
+ "llvm.x86.avx512.gather.dpd.512",
+ "llvm.x86.avx512.gather.dpi.512",
+ "llvm.x86.avx512.gather.dpq.512",
+ "llvm.x86.avx512.gather.dps.512",
+ "llvm.x86.avx512.gather.qpd.512",
+ "llvm.x86.avx512.gather.qpi.512",
+ "llvm.x86.avx512.gather.qpq.512",
+ "llvm.x86.avx512.gather.qps.512",
+ "llvm.x86.avx512.gatherpf.dpd.512",
+ "llvm.x86.avx512.gatherpf.dps.512",
+ "llvm.x86.avx512.gatherpf.qpd.512",
+ "llvm.x86.avx512.gatherpf.qps.512",
+ "llvm.x86.avx512.kand.w",
+ "llvm.x86.avx512.kandn.w",
+ "llvm.x86.avx512.knot.w",
+ "llvm.x86.avx512.kor.w",
+ "llvm.x86.avx512.kortestc.w",
+ "llvm.x86.avx512.kortestz.w",
+ "llvm.x86.avx512.kunpck.bw",
+ "llvm.x86.avx512.kxnor.w",
+ "llvm.x86.avx512.kxor.w",
+ "llvm.x86.avx512.mask.blend.d.512",
+ "llvm.x86.avx512.mask.blend.pd.512",
+ "llvm.x86.avx512.mask.blend.ps.512",
+ "llvm.x86.avx512.mask.blend.q.512",
+ "llvm.x86.avx512.mask.cmp.pd.512",
+ "llvm.x86.avx512.mask.cmp.ps.512",
+ "llvm.x86.avx512.mask.conflict.d.512",
+ "llvm.x86.avx512.mask.conflict.q.512",
+ "llvm.x86.avx512.mask.cvtdq2pd.512",
+ "llvm.x86.avx512.mask.cvtdq2ps.512",
+ "llvm.x86.avx512.mask.cvtpd2dq.512",
+ "llvm.x86.avx512.mask.cvtpd2ps.512",
+ "llvm.x86.avx512.mask.cvtpd2udq.512",
+ "llvm.x86.avx512.mask.cvtps2dq.512",
+ "llvm.x86.avx512.mask.cvtps2udq.512",
+ "llvm.x86.avx512.mask.cvttpd2dq.512",
+ "llvm.x86.avx512.mask.cvttpd2udq.512",
+ "llvm.x86.avx512.mask.cvttps2dq.512",
+ "llvm.x86.avx512.mask.cvttps2udq.512",
+ "llvm.x86.avx512.mask.cvtudq2pd.512",
+ "llvm.x86.avx512.mask.cvtudq2ps.512",
+ "llvm.x86.avx512.mask.loadu.d.512",
+ "llvm.x86.avx512.mask.loadu.pd.512",
+ "llvm.x86.avx512.mask.loadu.ps.512",
+ "llvm.x86.avx512.mask.loadu.q.512",
+ "llvm.x86.avx512.mask.lzcnt.d.512",
+ "llvm.x86.avx512.mask.lzcnt.q.512",
+ "llvm.x86.avx512.mask.max.pd.512",
+ "llvm.x86.avx512.mask.max.ps.512",
+ "llvm.x86.avx512.mask.min.pd.512",
+ "llvm.x86.avx512.mask.min.ps.512",
+ "llvm.x86.avx512.mask.pabs.d.512",
+ "llvm.x86.avx512.mask.pabs.q.512",
+ "llvm.x86.avx512.mask.pand.d.512",
+ "llvm.x86.avx512.mask.pand.q.512",
+ "llvm.x86.avx512.mask.pbroadcast.d.gpr.512",
+ "llvm.x86.avx512.mask.pbroadcast.q.gpr.512",
+ "llvm.x86.avx512.mask.pbroadcast.q.mem.512",
+ "llvm.x86.avx512.mask.pcmpeq.d.512",
+ "llvm.x86.avx512.mask.pcmpeq.q.512",
+ "llvm.x86.avx512.mask.pmaxs.d.512",
+ "llvm.x86.avx512.mask.pmaxs.q.512",
+ "llvm.x86.avx512.mask.pmaxu.d.512",
+ "llvm.x86.avx512.mask.pmaxu.q.512",
+ "llvm.x86.avx512.mask.pmins.d.512",
+ "llvm.x86.avx512.mask.pmins.q.512",
+ "llvm.x86.avx512.mask.pminu.d.512",
+ "llvm.x86.avx512.mask.pminu.q.512",
+ "llvm.x86.avx512.mask.pmul.dq.512",
+ "llvm.x86.avx512.mask.pmulu.dq.512",
+ "llvm.x86.avx512.mask.ptestm.d.512",
+ "llvm.x86.avx512.mask.ptestm.q.512",
+ "llvm.x86.avx512.mask.rndscale.pd.512",
+ "llvm.x86.avx512.mask.rndscale.ps.512",
+ "llvm.x86.avx512.mask.storeu.d.512",
+ "llvm.x86.avx512.mask.storeu.pd.512",
+ "llvm.x86.avx512.mask.storeu.ps.512",
+ "llvm.x86.avx512.mask.storeu.q.512",
+ "llvm.x86.avx512.mask.vcvtph2ps.512",
+ "llvm.x86.avx512.mask.vcvtps2ph.512",
+ "llvm.x86.avx512.mask.vpermt.d.512",
+ "llvm.x86.avx512.mask.vpermt.pd.512",
+ "llvm.x86.avx512.mask.vpermt.ps.512",
+ "llvm.x86.avx512.mask.vpermt.q.512",
+ "llvm.x86.avx512.movntdqa",
+ "llvm.x86.avx512.pbroadcastd.512",
+ "llvm.x86.avx512.pbroadcastd.i32.512",
+ "llvm.x86.avx512.pbroadcastq.512",
+ "llvm.x86.avx512.pbroadcastq.i64.512",
+ "llvm.x86.avx512.pmovzxbd",
+ "llvm.x86.avx512.pmovzxbq",
+ "llvm.x86.avx512.pmovzxdq",
+ "llvm.x86.avx512.pmovzxwd",
+ "llvm.x86.avx512.pmovzxwq",
+ "llvm.x86.avx512.psll.dq",
+ "llvm.x86.avx512.psll.dq.bs",
+ "llvm.x86.avx512.psrl.dq",
+ "llvm.x86.avx512.psrl.dq.bs",
+ "llvm.x86.avx512.rcp14.pd.512",
+ "llvm.x86.avx512.rcp14.ps.512",
+ "llvm.x86.avx512.rcp14.sd",
+ "llvm.x86.avx512.rcp14.ss",
+ "llvm.x86.avx512.rcp28.pd",
+ "llvm.x86.avx512.rcp28.ps",
+ "llvm.x86.avx512.rcp28.sd",
+ "llvm.x86.avx512.rcp28.ss",
+ "llvm.x86.avx512.rndscale.sd",
+ "llvm.x86.avx512.rndscale.ss",
+ "llvm.x86.avx512.rsqrt14.pd.512",
+ "llvm.x86.avx512.rsqrt14.ps.512",
+ "llvm.x86.avx512.rsqrt14.sd",
+ "llvm.x86.avx512.rsqrt14.ss",
+ "llvm.x86.avx512.rsqrt28.pd",
+ "llvm.x86.avx512.rsqrt28.ps",
+ "llvm.x86.avx512.rsqrt28.sd",
+ "llvm.x86.avx512.rsqrt28.ss",
+ "llvm.x86.avx512.scatter.dpd.512",
+ "llvm.x86.avx512.scatter.dpi.512",
+ "llvm.x86.avx512.scatter.dpq.512",
+ "llvm.x86.avx512.scatter.dps.512",
+ "llvm.x86.avx512.scatter.qpd.512",
+ "llvm.x86.avx512.scatter.qpi.512",
+ "llvm.x86.avx512.scatter.qpq.512",
+ "llvm.x86.avx512.scatter.qps.512",
+ "llvm.x86.avx512.scatterpf.dpd.512",
+ "llvm.x86.avx512.scatterpf.dps.512",
+ "llvm.x86.avx512.scatterpf.qpd.512",
+ "llvm.x86.avx512.scatterpf.qps.512",
+ "llvm.x86.avx512.sqrt.pd.512",
+ "llvm.x86.avx512.sqrt.ps.512",
+ "llvm.x86.avx512.sqrt.sd",
+ "llvm.x86.avx512.sqrt.ss",
+ "llvm.x86.avx512.vbroadcast.sd.512",
+ "llvm.x86.avx512.vbroadcast.sd.pd.512",
+ "llvm.x86.avx512.vbroadcast.ss.512",
+ "llvm.x86.avx512.vbroadcast.ss.ps.512",
+ "llvm.x86.avx.addsub.pd.256",
+ "llvm.x86.avx.addsub.ps.256",
+ "llvm.x86.avx.blend.pd.256",
+ "llvm.x86.avx.blend.ps.256",
+ "llvm.x86.avx.blendv.pd.256",
+ "llvm.x86.avx.blendv.ps.256",
+ "llvm.x86.avx.cmp.pd.256",
+ "llvm.x86.avx.cmp.ps.256",
+ "llvm.x86.avx.cvt.pd2.ps.256",
+ "llvm.x86.avx.cvt.pd2dq.256",
+ "llvm.x86.avx.cvt.ps2.pd.256",
+ "llvm.x86.avx.cvt.ps2dq.256",
+ "llvm.x86.avx.cvtdq2.pd.256",
+ "llvm.x86.avx.cvtdq2.ps.256",
+ "llvm.x86.avx.cvtt.pd2dq.256",
+ "llvm.x86.avx.cvtt.ps2dq.256",
+ "llvm.x86.avx.dp.ps.256",
+ "llvm.x86.avx.hadd.pd.256",
+ "llvm.x86.avx.hadd.ps.256",
+ "llvm.x86.avx.hsub.pd.256",
+ "llvm.x86.avx.hsub.ps.256",
+ "llvm.x86.avx.ldu.dq.256",
+ "llvm.x86.avx.maskload.pd",
+ "llvm.x86.avx.maskload.pd.256",
+ "llvm.x86.avx.maskload.ps",
+ "llvm.x86.avx.maskload.ps.256",
+ "llvm.x86.avx.maskstore.pd",
+ "llvm.x86.avx.maskstore.pd.256",
+ "llvm.x86.avx.maskstore.ps",
+ "llvm.x86.avx.maskstore.ps.256",
+ "llvm.x86.avx.max.pd.256",
+ "llvm.x86.avx.max.ps.256",
+ "llvm.x86.avx.min.pd.256",
+ "llvm.x86.avx.min.ps.256",
+ "llvm.x86.avx.movmsk.pd.256",
+ "llvm.x86.avx.movmsk.ps.256",
+ "llvm.x86.avx.ptestc.256",
+ "llvm.x86.avx.ptestnzc.256",
+ "llvm.x86.avx.ptestz.256",
+ "llvm.x86.avx.rcp.ps.256",
+ "llvm.x86.avx.round.pd.256",
+ "llvm.x86.avx.round.ps.256",
+ "llvm.x86.avx.rsqrt.ps.256",
+ "llvm.x86.avx.sqrt.pd.256",
+ "llvm.x86.avx.sqrt.ps.256",
+ "llvm.x86.avx.storeu.dq.256",
+ "llvm.x86.avx.storeu.pd.256",
+ "llvm.x86.avx.storeu.ps.256",
+ "llvm.x86.avx.vbroadcastf128.pd.256",
+ "llvm.x86.avx.vbroadcastf128.ps.256",
+ "llvm.x86.avx.vextractf128.pd.256",
+ "llvm.x86.avx.vextractf128.ps.256",
+ "llvm.x86.avx.vextractf128.si.256",
+ "llvm.x86.avx.vinsertf128.pd.256",
+ "llvm.x86.avx.vinsertf128.ps.256",
+ "llvm.x86.avx.vinsertf128.si.256",
+ "llvm.x86.avx.vperm2f128.pd.256",
+ "llvm.x86.avx.vperm2f128.ps.256",
+ "llvm.x86.avx.vperm2f128.si.256",
+ "llvm.x86.avx.vpermilvar.pd",
+ "llvm.x86.avx.vpermilvar.pd.256",
+ "llvm.x86.avx.vpermilvar.ps",
+ "llvm.x86.avx.vpermilvar.ps.256",
+ "llvm.x86.avx.vtestc.pd",
+ "llvm.x86.avx.vtestc.pd.256",
+ "llvm.x86.avx.vtestc.ps",
+ "llvm.x86.avx.vtestc.ps.256",
+ "llvm.x86.avx.vtestnzc.pd",
+ "llvm.x86.avx.vtestnzc.pd.256",
+ "llvm.x86.avx.vtestnzc.ps",
+ "llvm.x86.avx.vtestnzc.ps.256",
+ "llvm.x86.avx.vtestz.pd",
+ "llvm.x86.avx.vtestz.pd.256",
+ "llvm.x86.avx.vtestz.ps",
+ "llvm.x86.avx.vtestz.ps.256",
+ "llvm.x86.avx.vzeroall",
+ "llvm.x86.avx.vzeroupper",
+ "llvm.x86.bmi.bextr.32",
+ "llvm.x86.bmi.bextr.64",
+ "llvm.x86.bmi.bzhi.32",
+ "llvm.x86.bmi.bzhi.64",
+ "llvm.x86.bmi.pdep.32",
+ "llvm.x86.bmi.pdep.64",
+ "llvm.x86.bmi.pext.32",
+ "llvm.x86.bmi.pext.64",
+ "llvm.x86.fma.vfmadd.pd",
+ "llvm.x86.fma.vfmadd.pd.256",
+ "llvm.x86.fma.vfmadd.pd.512",
+ "llvm.x86.fma.vfmadd.ps",
+ "llvm.x86.fma.vfmadd.ps.256",
+ "llvm.x86.fma.vfmadd.ps.512",
+ "llvm.x86.fma.vfmadd.sd",
+ "llvm.x86.fma.vfmadd.ss",
+ "llvm.x86.fma.vfmaddsub.pd",
+ "llvm.x86.fma.vfmaddsub.pd.256",
+ "llvm.x86.fma.vfmaddsub.pd.512",
+ "llvm.x86.fma.vfmaddsub.ps",
+ "llvm.x86.fma.vfmaddsub.ps.256",
+ "llvm.x86.fma.vfmaddsub.ps.512",
+ "llvm.x86.fma.vfmsub.pd",
+ "llvm.x86.fma.vfmsub.pd.256",
+ "llvm.x86.fma.vfmsub.pd.512",
+ "llvm.x86.fma.vfmsub.ps",
+ "llvm.x86.fma.vfmsub.ps.256",
+ "llvm.x86.fma.vfmsub.ps.512",
+ "llvm.x86.fma.vfmsub.sd",
+ "llvm.x86.fma.vfmsub.ss",
+ "llvm.x86.fma.vfmsubadd.pd",
+ "llvm.x86.fma.vfmsubadd.pd.256",
+ "llvm.x86.fma.vfmsubadd.pd.512",
+ "llvm.x86.fma.vfmsubadd.ps",
+ "llvm.x86.fma.vfmsubadd.ps.256",
+ "llvm.x86.fma.vfmsubadd.ps.512",
+ "llvm.x86.fma.vfnmadd.pd",
+ "llvm.x86.fma.vfnmadd.pd.256",
+ "llvm.x86.fma.vfnmadd.pd.512",
+ "llvm.x86.fma.vfnmadd.ps",
+ "llvm.x86.fma.vfnmadd.ps.256",
+ "llvm.x86.fma.vfnmadd.ps.512",
+ "llvm.x86.fma.vfnmadd.sd",
+ "llvm.x86.fma.vfnmadd.ss",
+ "llvm.x86.fma.vfnmsub.pd",
+ "llvm.x86.fma.vfnmsub.pd.256",
+ "llvm.x86.fma.vfnmsub.pd.512",
+ "llvm.x86.fma.vfnmsub.ps",
+ "llvm.x86.fma.vfnmsub.ps.256",
+ "llvm.x86.fma.vfnmsub.ps.512",
+ "llvm.x86.fma.vfnmsub.sd",
+ "llvm.x86.fma.vfnmsub.ss",
+ "llvm.x86.int",
+ "llvm.x86.mmx.emms",
+ "llvm.x86.mmx.femms",
+ "llvm.x86.mmx.maskmovq",
+ "llvm.x86.mmx.movnt.dq",
+ "llvm.x86.mmx.packssdw",
+ "llvm.x86.mmx.packsswb",
+ "llvm.x86.mmx.packuswb",
+ "llvm.x86.mmx.padd.b",
+ "llvm.x86.mmx.padd.d",
+ "llvm.x86.mmx.padd.q",
+ "llvm.x86.mmx.padd.w",
+ "llvm.x86.mmx.padds.b",
+ "llvm.x86.mmx.padds.w",
+ "llvm.x86.mmx.paddus.b",
+ "llvm.x86.mmx.paddus.w",
+ "llvm.x86.mmx.palignr.b",
+ "llvm.x86.mmx.pand",
+ "llvm.x86.mmx.pandn",
+ "llvm.x86.mmx.pavg.b",
+ "llvm.x86.mmx.pavg.w",
+ "llvm.x86.mmx.pcmpeq.b",
+ "llvm.x86.mmx.pcmpeq.d",
+ "llvm.x86.mmx.pcmpeq.w",
+ "llvm.x86.mmx.pcmpgt.b",
+ "llvm.x86.mmx.pcmpgt.d",
+ "llvm.x86.mmx.pcmpgt.w",
+ "llvm.x86.mmx.pextr.w",
+ "llvm.x86.mmx.pinsr.w",
+ "llvm.x86.mmx.pmadd.wd",
+ "llvm.x86.mmx.pmaxs.w",
+ "llvm.x86.mmx.pmaxu.b",
+ "llvm.x86.mmx.pmins.w",
+ "llvm.x86.mmx.pminu.b",
+ "llvm.x86.mmx.pmovmskb",
+ "llvm.x86.mmx.pmulh.w",
+ "llvm.x86.mmx.pmulhu.w",
+ "llvm.x86.mmx.pmull.w",
+ "llvm.x86.mmx.pmulu.dq",
+ "llvm.x86.mmx.por",
+ "llvm.x86.mmx.psad.bw",
+ "llvm.x86.mmx.psll.d",
+ "llvm.x86.mmx.psll.q",
+ "llvm.x86.mmx.psll.w",
+ "llvm.x86.mmx.pslli.d",
+ "llvm.x86.mmx.pslli.q",
+ "llvm.x86.mmx.pslli.w",
+ "llvm.x86.mmx.psra.d",
+ "llvm.x86.mmx.psra.w",
+ "llvm.x86.mmx.psrai.d",
+ "llvm.x86.mmx.psrai.w",
+ "llvm.x86.mmx.psrl.d",
+ "llvm.x86.mmx.psrl.q",
+ "llvm.x86.mmx.psrl.w",
+ "llvm.x86.mmx.psrli.d",
+ "llvm.x86.mmx.psrli.q",
+ "llvm.x86.mmx.psrli.w",
+ "llvm.x86.mmx.psub.b",
+ "llvm.x86.mmx.psub.d",
+ "llvm.x86.mmx.psub.q",
+ "llvm.x86.mmx.psub.w",
+ "llvm.x86.mmx.psubs.b",
+ "llvm.x86.mmx.psubs.w",
+ "llvm.x86.mmx.psubus.b",
+ "llvm.x86.mmx.psubus.w",
+ "llvm.x86.mmx.punpckhbw",
+ "llvm.x86.mmx.punpckhdq",
+ "llvm.x86.mmx.punpckhwd",
+ "llvm.x86.mmx.punpcklbw",
+ "llvm.x86.mmx.punpckldq",
+ "llvm.x86.mmx.punpcklwd",
+ "llvm.x86.mmx.pxor",
+ "llvm.x86.pclmulqdq",
+ "llvm.x86.rdfsbase.32",
+ "llvm.x86.rdfsbase.64",
+ "llvm.x86.rdgsbase.32",
+ "llvm.x86.rdgsbase.64",
+ "llvm.x86.rdpmc",
+ "llvm.x86.rdrand.16",
+ "llvm.x86.rdrand.32",
+ "llvm.x86.rdrand.64",
+ "llvm.x86.rdseed.16",
+ "llvm.x86.rdseed.32",
+ "llvm.x86.rdseed.64",
+ "llvm.x86.rdtsc",
+ "llvm.x86.rdtscp",
+ "llvm.x86.sha1msg1",
+ "llvm.x86.sha1msg2",
+ "llvm.x86.sha1nexte",
+ "llvm.x86.sha1rnds4",
+ "llvm.x86.sha256msg1",
+ "llvm.x86.sha256msg2",
+ "llvm.x86.sha256rnds2",
+ "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.pause",
+ "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.pshuf.d",
+ "llvm.x86.sse2.pshufh.w",
+ "llvm.x86.sse2.pshufl.w",
+ "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.pcmpestri128",
+ "llvm.x86.sse42.pcmpestria128",
+ "llvm.x86.sse42.pcmpestric128",
+ "llvm.x86.sse42.pcmpestrio128",
+ "llvm.x86.sse42.pcmpestris128",
+ "llvm.x86.sse42.pcmpestriz128",
+ "llvm.x86.sse42.pcmpestrm128",
+ "llvm.x86.sse42.pcmpistri128",
+ "llvm.x86.sse42.pcmpistria128",
+ "llvm.x86.sse42.pcmpistric128",
+ "llvm.x86.sse42.pcmpistrio128",
+ "llvm.x86.sse42.pcmpistris128",
+ "llvm.x86.sse42.pcmpistriz128",
+ "llvm.x86.sse42.pcmpistrm128",
+ "llvm.x86.sse4a.extrq",
+ "llvm.x86.sse4a.extrqi",
+ "llvm.x86.sse4a.insertq",
+ "llvm.x86.sse4a.insertqi",
+ "llvm.x86.sse4a.movnt.sd",
+ "llvm.x86.sse4a.movnt.ss",
+ "llvm.x86.sse.add.ss",
+ "llvm.x86.sse.cmp.ps",
+ "llvm.x86.sse.cmp.ss",
+ "llvm.x86.sse.comieq.ss",
+ "llvm.x86.sse.comige.ss",
+ "llvm.x86.sse.comigt.ss",
+ "llvm.x86.sse.comile.ss",
+ "llvm.x86.sse.comilt.ss",
+ "llvm.x86.sse.comineq.ss",
+ "llvm.x86.sse.cvtpd2pi",
+ "llvm.x86.sse.cvtpi2pd",
+ "llvm.x86.sse.cvtpi2ps",
+ "llvm.x86.sse.cvtps2pi",
+ "llvm.x86.sse.cvtsi2ss",
+ "llvm.x86.sse.cvtsi642ss",
+ "llvm.x86.sse.cvtss2si",
+ "llvm.x86.sse.cvtss2si64",
+ "llvm.x86.sse.cvttpd2pi",
+ "llvm.x86.sse.cvttps2pi",
+ "llvm.x86.sse.cvttss2si",
+ "llvm.x86.sse.cvttss2si64",
+ "llvm.x86.sse.div.ss",
+ "llvm.x86.sse.ldmxcsr",
+ "llvm.x86.sse.max.ps",
+ "llvm.x86.sse.max.ss",
+ "llvm.x86.sse.min.ps",
+ "llvm.x86.sse.min.ss",
+ "llvm.x86.sse.movmsk.ps",
+ "llvm.x86.sse.mul.ss",
+ "llvm.x86.sse.pshuf.w",
+ "llvm.x86.sse.rcp.ps",
+ "llvm.x86.sse.rcp.ss",
+ "llvm.x86.sse.rsqrt.ps",
+ "llvm.x86.sse.rsqrt.ss",
+ "llvm.x86.sse.sfence",
+ "llvm.x86.sse.sqrt.ps",
+ "llvm.x86.sse.sqrt.ss",
+ "llvm.x86.sse.stmxcsr",
+ "llvm.x86.sse.storeu.ps",
+ "llvm.x86.sse.sub.ss",
+ "llvm.x86.sse.ucomieq.ss",
+ "llvm.x86.sse.ucomige.ss",
+ "llvm.x86.sse.ucomigt.ss",
+ "llvm.x86.sse.ucomile.ss",
+ "llvm.x86.sse.ucomilt.ss",
+ "llvm.x86.sse.ucomineq.ss",
+ "llvm.x86.ssse3.pabs.b",
+ "llvm.x86.ssse3.pabs.b.128",
+ "llvm.x86.ssse3.pabs.d",
+ "llvm.x86.ssse3.pabs.d.128",
+ "llvm.x86.ssse3.pabs.w",
+ "llvm.x86.ssse3.pabs.w.128",
+ "llvm.x86.ssse3.phadd.d",
+ "llvm.x86.ssse3.phadd.d.128",
+ "llvm.x86.ssse3.phadd.sw",
+ "llvm.x86.ssse3.phadd.sw.128",
+ "llvm.x86.ssse3.phadd.w",
+ "llvm.x86.ssse3.phadd.w.128",
+ "llvm.x86.ssse3.phsub.d",
+ "llvm.x86.ssse3.phsub.d.128",
+ "llvm.x86.ssse3.phsub.sw",
+ "llvm.x86.ssse3.phsub.sw.128",
+ "llvm.x86.ssse3.phsub.w",
+ "llvm.x86.ssse3.phsub.w.128",
+ "llvm.x86.ssse3.pmadd.ub.sw",
+ "llvm.x86.ssse3.pmadd.ub.sw.128",
+ "llvm.x86.ssse3.pmul.hr.sw",
+ "llvm.x86.ssse3.pmul.hr.sw.128",
+ "llvm.x86.ssse3.pshuf.b",
+ "llvm.x86.ssse3.pshuf.b.128",
+ "llvm.x86.ssse3.psign.b",
+ "llvm.x86.ssse3.psign.b.128",
+ "llvm.x86.ssse3.psign.d",
+ "llvm.x86.ssse3.psign.d.128",
+ "llvm.x86.ssse3.psign.w",
+ "llvm.x86.ssse3.psign.w.128",
+ "llvm.x86.tbm.bextri.u32",
+ "llvm.x86.tbm.bextri.u64",
+ "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.xabort",
+ "llvm.x86.xbegin",
+ "llvm.x86.xend",
+ "llvm.x86.xop.vfrcz.pd",
+ "llvm.x86.xop.vfrcz.pd.256",
+ "llvm.x86.xop.vfrcz.ps",
+ "llvm.x86.xop.vfrcz.ps.256",
+ "llvm.x86.xop.vfrcz.sd",
+ "llvm.x86.xop.vfrcz.ss",
+ "llvm.x86.xop.vpcmov",
+ "llvm.x86.xop.vpcmov.256",
+ "llvm.x86.xop.vpcomb",
+ "llvm.x86.xop.vpcomd",
+ "llvm.x86.xop.vpcomq",
+ "llvm.x86.xop.vpcomub",
+ "llvm.x86.xop.vpcomud",
+ "llvm.x86.xop.vpcomuq",
+ "llvm.x86.xop.vpcomuw",
+ "llvm.x86.xop.vpcomw",
+ "llvm.x86.xop.vpermil2pd",
+ "llvm.x86.xop.vpermil2pd.256",
+ "llvm.x86.xop.vpermil2ps",
+ "llvm.x86.xop.vpermil2ps.256",
+ "llvm.x86.xop.vphaddbd",
+ "llvm.x86.xop.vphaddbq",
+ "llvm.x86.xop.vphaddbw",
+ "llvm.x86.xop.vphadddq",
+ "llvm.x86.xop.vphaddubd",
+ "llvm.x86.xop.vphaddubq",
+ "llvm.x86.xop.vphaddubw",
+ "llvm.x86.xop.vphaddudq",
+ "llvm.x86.xop.vphadduwd",
+ "llvm.x86.xop.vphadduwq",
+ "llvm.x86.xop.vphaddwd",
+ "llvm.x86.xop.vphaddwq",
+ "llvm.x86.xop.vphsubbw",
+ "llvm.x86.xop.vphsubdq",
+ "llvm.x86.xop.vphsubwd",
+ "llvm.x86.xop.vpmacsdd",
+ "llvm.x86.xop.vpmacsdqh",
+ "llvm.x86.xop.vpmacsdql",
+ "llvm.x86.xop.vpmacssdd",
+ "llvm.x86.xop.vpmacssdqh",
+ "llvm.x86.xop.vpmacssdql",
+ "llvm.x86.xop.vpmacsswd",
+ "llvm.x86.xop.vpmacssww",
+ "llvm.x86.xop.vpmacswd",
+ "llvm.x86.xop.vpmacsww",
+ "llvm.x86.xop.vpmadcsswd",
+ "llvm.x86.xop.vpmadcswd",
+ "llvm.x86.xop.vpperm",
+ "llvm.x86.xop.vprotb",
+ "llvm.x86.xop.vprotbi",
+ "llvm.x86.xop.vprotd",
+ "llvm.x86.xop.vprotdi",
+ "llvm.x86.xop.vprotq",
+ "llvm.x86.xop.vprotqi",
+ "llvm.x86.xop.vprotw",
+ "llvm.x86.xop.vprotwi",
+ "llvm.x86.xop.vpshab",
+ "llvm.x86.xop.vpshad",
+ "llvm.x86.xop.vpshaq",
+ "llvm.x86.xop.vpshaw",
+ "llvm.x86.xop.vpshlb",
+ "llvm.x86.xop.vpshld",
+ "llvm.x86.xop.vpshlq",
+ "llvm.x86.xop.vpshlw",
+ "llvm.x86.xtest",
+ "llvm.xcore.bitrev",
+ "llvm.xcore.checkevent",
+ "llvm.xcore.chkct",
+ "llvm.xcore.clre",
+ "llvm.xcore.clrpt",
+ "llvm.xcore.clrsr",
+ "llvm.xcore.crc32",
+ "llvm.xcore.crc8",
+ "llvm.xcore.edu",
+ "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,
+ 0,
+ 0,
+ 0 | (1<<4) | (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<<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<<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),
+ 0 | (1<<0) | (1<<1) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
+ 0 | (1<<2) | (1<<4) | (1<<5) | (1<<7),
+ 0,
+ 0 | (1<<6),
+ 0 | (1<<0),
+ 0,
+ 0 | (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<<7),
+ 0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
+ 0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
+ 0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
+ 0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
+ 0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
+ 0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
+ 0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
+ 0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
+ 0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
+ 0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
+ 0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4),
+ 0,
+ 0 | (1<<2) | (1<<4),
+ 0 | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (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),
+ 0,
+ 0 | (1<<5) | (1<<6) | (1<<7),
+ 0 | (1<<3) | (1<<4) | (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,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0 | (1<<6) | (1<<7),
+ 0 | (1<<0) | (1<<2) | (1<<3) | (1<<4),
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0 | (1<<0),
+ 0 | (1<<7),
+ 0 | (1<<0) | (1<<1),
+ 0,
+ 0 | (1<<1) | (1<<2),
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0 | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
+ 0,
+ 0,
+ 0,
+ 0 | (1<<4),
+ 0,
+ 0,
+ 0 | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
+ 0 | (1<<0) | (1<<1) | (1<<2),
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0 | (1<<5),
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0 | (1<<3) | (1<<4),
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 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<<0) | (1<<3),
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0 | (1<<5),
+ 0 | (1<<0) | (1<<1) | (1<<2) | (1<<6) | (1<<7),
+ 0 | (1<<0) | (1<<1) | (1<<7),
+ 0 | (1<<0) | (1<<1) | (1<<2) | (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,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0 | (1<<3) | (1<<5),
+ 0 | (1<<1) | (1<<2) | (1<<3) | (1<<4),
+ 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) | (1<<2) | (1<<3) | (1<<5) | (1<<6),
+ 0 | (1<<1) | (1<<2) | (1<<3)
+};
+
+return (OTable[id/8] & (1 << (id%8))) != 0;
+#endif
+
+// Function name -> enum value recognizer code.
+#ifdef GET_FUNCTION_RECOGNIZER
+ StringRef NameR(Name+6, Len-6); // Skip over 'llvm.'
+ switch (Name[5]) { // Dispatch on first letter.
+ default: break;
+ case 'A':
+ if (NameR.startswith("MDGPU.trig.preop.")) return Intrinsic::AMDGPU_trig_preop;
+ if (NameR.startswith("MDGPU.rsq.clamped.")) return Intrinsic::AMDGPU_rsq_clamped;
+ if (NameR.startswith("MDGPU.rsq.")) return Intrinsic::AMDGPU_rsq;
+ if (NameR.startswith("MDGPU.rcp.")) return Intrinsic::AMDGPU_rcp;
+ if (NameR.startswith("MDGPU.div.scale.")) return Intrinsic::AMDGPU_div_scale;
+ if (NameR.startswith("MDGPU.div.fmas.")) return Intrinsic::AMDGPU_div_fmas;
+ if (NameR.startswith("MDGPU.div.fixup.")) return Intrinsic::AMDGPU_div_fixup;
+ break; // end of 'A' case.
+ case 'a':
+ if (NameR.startswith("rm.vcvtru.")) return Intrinsic::arm_vcvtru;
+ if (NameR.startswith("rm.vcvtr.")) return Intrinsic::arm_vcvtr;
+ if (NameR.startswith("rm.strex.")) return Intrinsic::arm_strex;
+ if (NameR.startswith("rm.stlex.")) return Intrinsic::arm_stlex;
+ if (NameR.startswith("rm.neon.vst4lane.")) return Intrinsic::arm_neon_vst4lane;
+ if (NameR.startswith("rm.neon.vst4.")) return Intrinsic::arm_neon_vst4;
+ if (NameR.startswith("rm.neon.vst3lane.")) return Intrinsic::arm_neon_vst3lane;
+ if (NameR.startswith("rm.neon.vst3.")) return Intrinsic::arm_neon_vst3;
+ if (NameR.startswith("rm.neon.vst2lane.")) return Intrinsic::arm_neon_vst2lane;
+ if (NameR.startswith("rm.neon.vst2.")) return Intrinsic::arm_neon_vst2;
+ if (NameR.startswith("rm.neon.vst1.")) return Intrinsic::arm_neon_vst1;
+ if (NameR.startswith("rm.neon.vshiftu.")) return Intrinsic::arm_neon_vshiftu;
+ if (NameR.startswith("rm.neon.vshifts.")) return Intrinsic::arm_neon_vshifts;
+ if (NameR.startswith("rm.neon.vshiftins.")) return Intrinsic::arm_neon_vshiftins;
+ if (NameR.startswith("rm.neon.vrsubhn.")) return Intrinsic::arm_neon_vrsubhn;
+ if (NameR.startswith("rm.neon.vrsqrts.")) return Intrinsic::arm_neon_vrsqrts;
+ if (NameR.startswith("rm.neon.vrsqrte.")) return Intrinsic::arm_neon_vrsqrte;
+ if (NameR.startswith("rm.neon.vrshiftu.")) return Intrinsic::arm_neon_vrshiftu;
+ if (NameR.startswith("rm.neon.vrshifts.")) return Intrinsic::arm_neon_vrshifts;
+ if (NameR.startswith("rm.neon.vrshiftn.")) return Intrinsic::arm_neon_vrshiftn;
+ if (NameR.startswith("rm.neon.vrintz.")) return Intrinsic::arm_neon_vrintz;
+ if (NameR.startswith("rm.neon.vrintx.")) return Intrinsic::arm_neon_vrintx;
+ if (NameR.startswith("rm.neon.vrintp.")) return Intrinsic::arm_neon_vrintp;
+ if (NameR.startswith("rm.neon.vrintn.")) return Intrinsic::arm_neon_vrintn;
+ if (NameR.startswith("rm.neon.vrintm.")) return Intrinsic::arm_neon_vrintm;
+ if (NameR.startswith("rm.neon.vrinta.")) return Intrinsic::arm_neon_vrinta;
+ if (NameR.startswith("rm.neon.vrhaddu.")) return Intrinsic::arm_neon_vrhaddu;
+ if (NameR.startswith("rm.neon.vrhadds.")) return Intrinsic::arm_neon_vrhadds;
+ if (NameR.startswith("rm.neon.vrecps.")) return Intrinsic::arm_neon_vrecps;
+ if (NameR.startswith("rm.neon.vrecpe.")) return Intrinsic::arm_neon_vrecpe;
+ if (NameR.startswith("rm.neon.vraddhn.")) return Intrinsic::arm_neon_vraddhn;
+ if (NameR.startswith("rm.neon.vqsubu.")) return Intrinsic::arm_neon_vqsubu;
+ if (NameR.startswith("rm.neon.vqsubs.")) return Intrinsic::arm_neon_vqsubs;
+ if (NameR.startswith("rm.neon.vqshiftu.")) return Intrinsic::arm_neon_vqshiftu;
+ if (NameR.startswith("rm.neon.vqshiftsu.")) return Intrinsic::arm_neon_vqshiftsu;
+ if (NameR.startswith("rm.neon.vqshifts.")) return Intrinsic::arm_neon_vqshifts;
+ if (NameR.startswith("rm.neon.vqshiftnu.")) return Intrinsic::arm_neon_vqshiftnu;
+ if (NameR.startswith("rm.neon.vqshiftnsu.")) return Intrinsic::arm_neon_vqshiftnsu;
+ if (NameR.startswith("rm.neon.vqshiftns.")) return Intrinsic::arm_neon_vqshiftns;
+ if (NameR.startswith("rm.neon.vqrshiftu.")) return Intrinsic::arm_neon_vqrshiftu;
+ if (NameR.startswith("rm.neon.vqrshifts.")) return Intrinsic::arm_neon_vqrshifts;
+ if (NameR.startswith("rm.neon.vqrshiftnu.")) return Intrinsic::arm_neon_vqrshiftnu;
+ if (NameR.startswith("rm.neon.vqrshiftnsu.")) return Intrinsic::arm_neon_vqrshiftnsu;
+ if (NameR.startswith("rm.neon.vqrshiftns.")) return Intrinsic::arm_neon_vqrshiftns;
+ if (NameR.startswith("rm.neon.vqrdmulh.")) return Intrinsic::arm_neon_vqrdmulh;
+ if (NameR.startswith("rm.neon.vqneg.")) return Intrinsic::arm_neon_vqneg;
+ if (NameR.startswith("rm.neon.vqmovnu.")) return Intrinsic::arm_neon_vqmovnu;
+ if (NameR.startswith("rm.neon.vqmovnsu.")) return Intrinsic::arm_neon_vqmovnsu;
+ if (NameR.startswith("rm.neon.vqmovns.")) return Intrinsic::arm_neon_vqmovns;
+ if (NameR.startswith("rm.neon.vqdmull.")) return Intrinsic::arm_neon_vqdmull;
+ if (NameR.startswith("rm.neon.vqdmulh.")) return Intrinsic::arm_neon_vqdmulh;
+ if (NameR.startswith("rm.neon.vqaddu.")) return Intrinsic::arm_neon_vqaddu;
+ if (NameR.startswith("rm.neon.vqadds.")) return Intrinsic::arm_neon_vqadds;
+ if (NameR.startswith("rm.neon.vqabs.")) return Intrinsic::arm_neon_vqabs;
+ if (NameR.startswith("rm.neon.vpminu.")) return Intrinsic::arm_neon_vpminu;
+ if (NameR.startswith("rm.neon.vpmins.")) return Intrinsic::arm_neon_vpmins;
+ if (NameR.startswith("rm.neon.vpmaxu.")) return Intrinsic::arm_neon_vpmaxu;
+ if (NameR.startswith("rm.neon.vpmaxs.")) return Intrinsic::arm_neon_vpmaxs;
+ if (NameR.startswith("rm.neon.vpaddlu.")) return Intrinsic::arm_neon_vpaddlu;
+ if (NameR.startswith("rm.neon.vpaddls.")) return Intrinsic::arm_neon_vpaddls;
+ if (NameR.startswith("rm.neon.vpadd.")) return Intrinsic::arm_neon_vpadd;
+ if (NameR.startswith("rm.neon.vpadalu.")) return Intrinsic::arm_neon_vpadalu;
+ if (NameR.startswith("rm.neon.vpadals.")) return Intrinsic::arm_neon_vpadals;
+ if (NameR.startswith("rm.neon.vmulp.")) return Intrinsic::arm_neon_vmulp;
+ if (NameR.startswith("rm.neon.vmullu.")) return Intrinsic::arm_neon_vmullu;
+ if (NameR.startswith("rm.neon.vmulls.")) return Intrinsic::arm_neon_vmulls;
+ if (NameR.startswith("rm.neon.vmullp.")) return Intrinsic::arm_neon_vmullp;
+ if (NameR.startswith("rm.neon.vminu.")) return Intrinsic::arm_neon_vminu;
+ if (NameR.startswith("rm.neon.vmins.")) return Intrinsic::arm_neon_vmins;
+ if (NameR.startswith("rm.neon.vminnm.")) return Intrinsic::arm_neon_vminnm;
+ if (NameR.startswith("rm.neon.vmaxu.")) return Intrinsic::arm_neon_vmaxu;
+ if (NameR.startswith("rm.neon.vmaxs.")) return Intrinsic::arm_neon_vmaxs;
+ if (NameR.startswith("rm.neon.vmaxnm.")) return Intrinsic::arm_neon_vmaxnm;
+ if (NameR.startswith("rm.neon.vld4lane.")) return Intrinsic::arm_neon_vld4lane;
+ if (NameR.startswith("rm.neon.vld4.")) return Intrinsic::arm_neon_vld4;
+ if (NameR.startswith("rm.neon.vld3lane.")) return Intrinsic::arm_neon_vld3lane;
+ if (NameR.startswith("rm.neon.vld3.")) return Intrinsic::arm_neon_vld3;
+ if (NameR.startswith("rm.neon.vld2lane.")) return Intrinsic::arm_neon_vld2lane;
+ if (NameR.startswith("rm.neon.vld2.")) return Intrinsic::arm_neon_vld2;
+ if (NameR.startswith("rm.neon.vld1.")) return Intrinsic::arm_neon_vld1;
+ if (NameR.startswith("rm.neon.vhsubu.")) return Intrinsic::arm_neon_vhsubu;
+ if (NameR.startswith("rm.neon.vhsubs.")) return Intrinsic::arm_neon_vhsubs;
+ if (NameR.startswith("rm.neon.vhaddu.")) return Intrinsic::arm_neon_vhaddu;
+ if (NameR.startswith("rm.neon.vhadds.")) return Intrinsic::arm_neon_vhadds;
+ if (NameR.startswith("rm.neon.vcvtpu.")) return Intrinsic::arm_neon_vcvtpu;
+ if (NameR.startswith("rm.neon.vcvtps.")) return Intrinsic::arm_neon_vcvtps;
+ if (NameR.startswith("rm.neon.vcvtnu.")) return Intrinsic::arm_neon_vcvtnu;
+ if (NameR.startswith("rm.neon.vcvtns.")) return Intrinsic::arm_neon_vcvtns;
+ if (NameR.startswith("rm.neon.vcvtmu.")) return Intrinsic::arm_neon_vcvtmu;
+ if (NameR.startswith("rm.neon.vcvtms.")) return Intrinsic::arm_neon_vcvtms;
+ if (NameR.startswith("rm.neon.vcvtfxu2fp.")) return Intrinsic::arm_neon_vcvtfxu2fp;
+ if (NameR.startswith("rm.neon.vcvtfxs2fp.")) return Intrinsic::arm_neon_vcvtfxs2fp;
+ if (NameR.startswith("rm.neon.vcvtfp2fxu.")) return Intrinsic::arm_neon_vcvtfp2fxu;
+ if (NameR.startswith("rm.neon.vcvtfp2fxs.")) return Intrinsic::arm_neon_vcvtfp2fxs;
+ if (NameR.startswith("rm.neon.vcvtau.")) return Intrinsic::arm_neon_vcvtau;
+ if (NameR.startswith("rm.neon.vcvtas.")) return Intrinsic::arm_neon_vcvtas;
+ if (NameR.startswith("rm.neon.vcnt.")) return Intrinsic::arm_neon_vcnt;
+ if (NameR.startswith("rm.neon.vclz.")) return Intrinsic::arm_neon_vclz;
+ if (NameR.startswith("rm.neon.vcls.")) return Intrinsic::arm_neon_vcls;
+ if (NameR.startswith("rm.neon.vbsl.")) return Intrinsic::arm_neon_vbsl;
+ if (NameR.startswith("rm.neon.vacgt.")) return Intrinsic::arm_neon_vacgt;
+ if (NameR.startswith("rm.neon.vacge.")) return Intrinsic::arm_neon_vacge;
+ if (NameR.startswith("rm.neon.vabs.")) return Intrinsic::arm_neon_vabs;
+ if (NameR.startswith("rm.neon.vabdu.")) return Intrinsic::arm_neon_vabdu;
+ if (NameR.startswith("rm.neon.vabds.")) return Intrinsic::arm_neon_vabds;
+ if (NameR.startswith("rm.ldrex.")) return Intrinsic::arm_ldrex;
+ if (NameR.startswith("rm.ldaex.")) return Intrinsic::arm_ldaex;
+ if (NameR.startswith("nnotation.")) return Intrinsic::annotation;
+ if (NameR.startswith("arch64.udiv.")) return Intrinsic::aarch64_udiv;
+ if (NameR.startswith("arch64.stxr.")) return Intrinsic::aarch64_stxr;
+ if (NameR.startswith("arch64.stlxr.")) return Intrinsic::aarch64_stlxr;
+ if (NameR.startswith("arch64.sisd.fabd.")) return Intrinsic::aarch64_sisd_fabd;
+ if (NameR.startswith("arch64.sdiv.")) return Intrinsic::aarch64_sdiv;
+ if (NameR.startswith("arch64.rbit.")) return Intrinsic::aarch64_rbit;
+ if (NameR.startswith("arch64.neon.vsri.")) return Intrinsic::aarch64_neon_vsri;
+ if (NameR.startswith("arch64.neon.vsli.")) return Intrinsic::aarch64_neon_vsli;
+ if (NameR.startswith("arch64.neon.vcvtfxu2fp.")) return Intrinsic::aarch64_neon_vcvtfxu2fp;
+ if (NameR.startswith("arch64.neon.vcvtfxs2fp.")) return Intrinsic::aarch64_neon_vcvtfxs2fp;
+ if (NameR.startswith("arch64.neon.vcvtfp2fxu.")) return Intrinsic::aarch64_neon_vcvtfp2fxu;
+ if (NameR.startswith("arch64.neon.vcvtfp2fxs.")) return Intrinsic::aarch64_neon_vcvtfp2fxs;
+ if (NameR.startswith("arch64.neon.vcopy.lane.")) return Intrinsic::aarch64_neon_vcopy_lane;
+ if (NameR.startswith("arch64.neon.usqadd.")) return Intrinsic::aarch64_neon_usqadd;
+ if (NameR.startswith("arch64.neon.ushll.")) return Intrinsic::aarch64_neon_ushll;
+ if (NameR.startswith("arch64.neon.ushl.")) return Intrinsic::aarch64_neon_ushl;
+ if (NameR.startswith("arch64.neon.ursqrte.")) return Intrinsic::aarch64_neon_ursqrte;
+ if (NameR.startswith("arch64.neon.urshl.")) return Intrinsic::aarch64_neon_urshl;
+ if (NameR.startswith("arch64.neon.urhadd.")) return Intrinsic::aarch64_neon_urhadd;
+ if (NameR.startswith("arch64.neon.urecpe.")) return Intrinsic::aarch64_neon_urecpe;
+ if (NameR.startswith("arch64.neon.uqxtn.")) return Intrinsic::aarch64_neon_uqxtn;
+ if (NameR.startswith("arch64.neon.uqsub.")) return Intrinsic::aarch64_neon_uqsub;
+ if (NameR.startswith("arch64.neon.uqshrn.")) return Intrinsic::aarch64_neon_uqshrn;
+ if (NameR.startswith("arch64.neon.uqshl.")) return Intrinsic::aarch64_neon_uqshl;
+ if (NameR.startswith("arch64.neon.uqrshrn.")) return Intrinsic::aarch64_neon_uqrshrn;
+ if (NameR.startswith("arch64.neon.uqrshl.")) return Intrinsic::aarch64_neon_uqrshl;
+ if (NameR.startswith("arch64.neon.uqadd.")) return Intrinsic::aarch64_neon_uqadd;
+ if (NameR.startswith("arch64.neon.umull.")) return Intrinsic::aarch64_neon_umull;
+ if (NameR.startswith("arch64.neon.uminv.")) return Intrinsic::aarch64_neon_uminv;
+ if (NameR.startswith("arch64.neon.uminp.")) return Intrinsic::aarch64_neon_uminp;
+ if (NameR.startswith("arch64.neon.umin.")) return Intrinsic::aarch64_neon_umin;
+ if (NameR.startswith("arch64.neon.umaxv.")) return Intrinsic::aarch64_neon_umaxv;
+ if (NameR.startswith("arch64.neon.umaxp.")) return Intrinsic::aarch64_neon_umaxp;
+ if (NameR.startswith("arch64.neon.umax.")) return Intrinsic::aarch64_neon_umax;
+ if (NameR.startswith("arch64.neon.uhsub.")) return Intrinsic::aarch64_neon_uhsub;
+ if (NameR.startswith("arch64.neon.uhadd.")) return Intrinsic::aarch64_neon_uhadd;
+ if (NameR.startswith("arch64.neon.uaddv.")) return Intrinsic::aarch64_neon_uaddv;
+ if (NameR.startswith("arch64.neon.uaddlv.")) return Intrinsic::aarch64_neon_uaddlv;
+ if (NameR.startswith("arch64.neon.uaddlp.")) return Intrinsic::aarch64_neon_uaddlp;
+ if (NameR.startswith("arch64.neon.uabd.")) return Intrinsic::aarch64_neon_uabd;
+ if (NameR.startswith("arch64.neon.tbx4.")) return Intrinsic::aarch64_neon_tbx4;
+ if (NameR.startswith("arch64.neon.tbx3.")) return Intrinsic::aarch64_neon_tbx3;
+ if (NameR.startswith("arch64.neon.tbx2.")) return Intrinsic::aarch64_neon_tbx2;
+ if (NameR.startswith("arch64.neon.tbx1.")) return Intrinsic::aarch64_neon_tbx1;
+ if (NameR.startswith("arch64.neon.tbl4.")) return Intrinsic::aarch64_neon_tbl4;
+ if (NameR.startswith("arch64.neon.tbl3.")) return Intrinsic::aarch64_neon_tbl3;
+ if (NameR.startswith("arch64.neon.tbl2.")) return Intrinsic::aarch64_neon_tbl2;
+ if (NameR.startswith("arch64.neon.tbl1.")) return Intrinsic::aarch64_neon_tbl1;
+ if (NameR.startswith("arch64.neon.suqadd.")) return Intrinsic::aarch64_neon_suqadd;
+ if (NameR.startswith("arch64.neon.subhn.")) return Intrinsic::aarch64_neon_subhn;
+ if (NameR.startswith("arch64.neon.st4lane.")) return Intrinsic::aarch64_neon_st4lane;
+ if (NameR.startswith("arch64.neon.st4.")) return Intrinsic::aarch64_neon_st4;
+ if (NameR.startswith("arch64.neon.st3lane.")) return Intrinsic::aarch64_neon_st3lane;
+ if (NameR.startswith("arch64.neon.st3.")) return Intrinsic::aarch64_neon_st3;
+ if (NameR.startswith("arch64.neon.st2lane.")) return Intrinsic::aarch64_neon_st2lane;
+ if (NameR.startswith("arch64.neon.st2.")) return Intrinsic::aarch64_neon_st2;
+ if (NameR.startswith("arch64.neon.st1x4.")) return Intrinsic::aarch64_neon_st1x4;
+ if (NameR.startswith("arch64.neon.st1x3.")) return Intrinsic::aarch64_neon_st1x3;
+ if (NameR.startswith("arch64.neon.st1x2.")) return Intrinsic::aarch64_neon_st1x2;
+ if (NameR.startswith("arch64.neon.sshll.")) return Intrinsic::aarch64_neon_sshll;
+ if (NameR.startswith("arch64.neon.sshl.")) return Intrinsic::aarch64_neon_sshl;
+ if (NameR.startswith("arch64.neon.srshl.")) return Intrinsic::aarch64_neon_srshl;
+ if (NameR.startswith("arch64.neon.srhadd.")) return Intrinsic::aarch64_neon_srhadd;
+ if (NameR.startswith("arch64.neon.sqxtun.")) return Intrinsic::aarch64_neon_sqxtun;
+ if (NameR.startswith("arch64.neon.sqxtn.")) return Intrinsic::aarch64_neon_sqxtn;
+ if (NameR.startswith("arch64.neon.sqsub.")) return Intrinsic::aarch64_neon_sqsub;
+ if (NameR.startswith("arch64.neon.sqshrun.")) return Intrinsic::aarch64_neon_sqshrun;
+ if (NameR.startswith("arch64.neon.sqshrn.")) return Intrinsic::aarch64_neon_sqshrn;
+ if (NameR.startswith("arch64.neon.sqshlu.")) return Intrinsic::aarch64_neon_sqshlu;
+ if (NameR.startswith("arch64.neon.sqshl.")) return Intrinsic::aarch64_neon_sqshl;
+ if (NameR.startswith("arch64.neon.sqrshrun.")) return Intrinsic::aarch64_neon_sqrshrun;
+ if (NameR.startswith("arch64.neon.sqrshrn.")) return Intrinsic::aarch64_neon_sqrshrn;
+ if (NameR.startswith("arch64.neon.sqrshl.")) return Intrinsic::aarch64_neon_sqrshl;
+ if (NameR.startswith("arch64.neon.sqrdmulh.")) return Intrinsic::aarch64_neon_sqrdmulh;
+ if (NameR.startswith("arch64.neon.sqneg.")) return Intrinsic::aarch64_neon_sqneg;
+ if (NameR.startswith("arch64.neon.sqdmull.")) return Intrinsic::aarch64_neon_sqdmull;
+ if (NameR.startswith("arch64.neon.sqdmulh.")) return Intrinsic::aarch64_neon_sqdmulh;
+ if (NameR.startswith("arch64.neon.sqadd.")) return Intrinsic::aarch64_neon_sqadd;
+ if (NameR.startswith("arch64.neon.sqabs.")) return Intrinsic::aarch64_neon_sqabs;
+ if (NameR.startswith("arch64.neon.smull.")) return Intrinsic::aarch64_neon_smull;
+ if (NameR.startswith("arch64.neon.sminv.")) return Intrinsic::aarch64_neon_sminv;
+ if (NameR.startswith("arch64.neon.sminp.")) return Intrinsic::aarch64_neon_sminp;
+ if (NameR.startswith("arch64.neon.smin.")) return Intrinsic::aarch64_neon_smin;
+ if (NameR.startswith("arch64.neon.smaxv.")) return Intrinsic::aarch64_neon_smaxv;
+ if (NameR.startswith("arch64.neon.smaxp.")) return Intrinsic::aarch64_neon_smaxp;
+ if (NameR.startswith("arch64.neon.smax.")) return Intrinsic::aarch64_neon_smax;
+ if (NameR.startswith("arch64.neon.shsub.")) return Intrinsic::aarch64_neon_shsub;
+ if (NameR.startswith("arch64.neon.shll.")) return Intrinsic::aarch64_neon_shll;
+ if (NameR.startswith("arch64.neon.shadd.")) return Intrinsic::aarch64_neon_shadd;
+ if (NameR.startswith("arch64.neon.scalar.uqxtn.")) return Intrinsic::aarch64_neon_scalar_uqxtn;
+ if (NameR.startswith("arch64.neon.scalar.sqxtun.")) return Intrinsic::aarch64_neon_scalar_sqxtun;
+ if (NameR.startswith("arch64.neon.scalar.sqxtn.")) return Intrinsic::aarch64_neon_scalar_sqxtn;
+ if (NameR.startswith("arch64.neon.saddv.")) return Intrinsic::aarch64_neon_saddv;
+ if (NameR.startswith("arch64.neon.saddlv.")) return Intrinsic::aarch64_neon_saddlv;
+ if (NameR.startswith("arch64.neon.saddlp.")) return Intrinsic::aarch64_neon_saddlp;
+ if (NameR.startswith("arch64.neon.sabd.")) return Intrinsic::aarch64_neon_sabd;
+ if (NameR.startswith("arch64.neon.rsubhn.")) return Intrinsic::aarch64_neon_rsubhn;
+ if (NameR.startswith("arch64.neon.rshrn.")) return Intrinsic::aarch64_neon_rshrn;
+ if (NameR.startswith("arch64.neon.rbit.")) return Intrinsic::aarch64_neon_rbit;
+ if (NameR.startswith("arch64.neon.raddhn.")) return Intrinsic::aarch64_neon_raddhn;
+ if (NameR.startswith("arch64.neon.pmull.")) return Intrinsic::aarch64_neon_pmull;
+ if (NameR.startswith("arch64.neon.pmul.")) return Intrinsic::aarch64_neon_pmul;
+ if (NameR.startswith("arch64.neon.ld4r.")) return Intrinsic::aarch64_neon_ld4r;
+ if (NameR.startswith("arch64.neon.ld4lane.")) return Intrinsic::aarch64_neon_ld4lane;
+ if (NameR.startswith("arch64.neon.ld4.")) return Intrinsic::aarch64_neon_ld4;
+ if (NameR.startswith("arch64.neon.ld3r.")) return Intrinsic::aarch64_neon_ld3r;
+ if (NameR.startswith("arch64.neon.ld3lane.")) return Intrinsic::aarch64_neon_ld3lane;
+ if (NameR.startswith("arch64.neon.ld3.")) return Intrinsic::aarch64_neon_ld3;
+ if (NameR.startswith("arch64.neon.ld2r.")) return Intrinsic::aarch64_neon_ld2r;
+ if (NameR.startswith("arch64.neon.ld2lane.")) return Intrinsic::aarch64_neon_ld2lane;
+ if (NameR.startswith("arch64.neon.ld2.")) return Intrinsic::aarch64_neon_ld2;
+ if (NameR.startswith("arch64.neon.ld1x4.")) return Intrinsic::aarch64_neon_ld1x4;
+ if (NameR.startswith("arch64.neon.ld1x3.")) return Intrinsic::aarch64_neon_ld1x3;
+ if (NameR.startswith("arch64.neon.ld1x2.")) return Intrinsic::aarch64_neon_ld1x2;
+ if (NameR.startswith("arch64.neon.frsqrts.")) return Intrinsic::aarch64_neon_frsqrts;
+ if (NameR.startswith("arch64.neon.frsqrte.")) return Intrinsic::aarch64_neon_frsqrte;
+ if (NameR.startswith("arch64.neon.frintn.")) return Intrinsic::aarch64_neon_frintn;
+ if (NameR.startswith("arch64.neon.frecpx.")) return Intrinsic::aarch64_neon_frecpx;
+ if (NameR.startswith("arch64.neon.frecps.")) return Intrinsic::aarch64_neon_frecps;
+ if (NameR.startswith("arch64.neon.frecpe.")) return Intrinsic::aarch64_neon_frecpe;
+ if (NameR.startswith("arch64.neon.fmulx.")) return Intrinsic::aarch64_neon_fmulx;
+ if (NameR.startswith("arch64.neon.fminv.")) return Intrinsic::aarch64_neon_fminv;
+ if (NameR.startswith("arch64.neon.fminp.")) return Intrinsic::aarch64_neon_fminp;
+ if (NameR.startswith("arch64.neon.fminnmv.")) return Intrinsic::aarch64_neon_fminnmv;
+ if (NameR.startswith("arch64.neon.fminnmp.")) return Intrinsic::aarch64_neon_fminnmp;
+ if (NameR.startswith("arch64.neon.fminnm.")) return Intrinsic::aarch64_neon_fminnm;
+ if (NameR.startswith("arch64.neon.fmin.")) return Intrinsic::aarch64_neon_fmin;
+ if (NameR.startswith("arch64.neon.fmaxv.")) return Intrinsic::aarch64_neon_fmaxv;
+ if (NameR.startswith("arch64.neon.fmaxp.")) return Intrinsic::aarch64_neon_fmaxp;
+ if (NameR.startswith("arch64.neon.fmaxnmv.")) return Intrinsic::aarch64_neon_fmaxnmv;
+ if (NameR.startswith("arch64.neon.fmaxnmp.")) return Intrinsic::aarch64_neon_fmaxnmp;
+ if (NameR.startswith("arch64.neon.fmaxnm.")) return Intrinsic::aarch64_neon_fmaxnm;
+ if (NameR.startswith("arch64.neon.fmax.")) return Intrinsic::aarch64_neon_fmax;
+ if (NameR.startswith("arch64.neon.fcvtzu.")) return Intrinsic::aarch64_neon_fcvtzu;
+ if (NameR.startswith("arch64.neon.fcvtzs.")) return Intrinsic::aarch64_neon_fcvtzs;
+ if (NameR.startswith("arch64.neon.fcvtxn.")) return Intrinsic::aarch64_neon_fcvtxn;
+ if (NameR.startswith("arch64.neon.fcvtpu.")) return Intrinsic::aarch64_neon_fcvtpu;
+ if (NameR.startswith("arch64.neon.fcvtps.")) return Intrinsic::aarch64_neon_fcvtps;
+ if (NameR.startswith("arch64.neon.fcvtnu.")) return Intrinsic::aarch64_neon_fcvtnu;
+ if (NameR.startswith("arch64.neon.fcvtns.")) return Intrinsic::aarch64_neon_fcvtns;
+ if (NameR.startswith("arch64.neon.fcvtmu.")) return Intrinsic::aarch64_neon_fcvtmu;
+ if (NameR.startswith("arch64.neon.fcvtms.")) return Intrinsic::aarch64_neon_fcvtms;
+ if (NameR.startswith("arch64.neon.fcvtau.")) return Intrinsic::aarch64_neon_fcvtau;
+ if (NameR.startswith("arch64.neon.fcvtas.")) return Intrinsic::aarch64_neon_fcvtas;
+ if (NameR.startswith("arch64.neon.faddv.")) return Intrinsic::aarch64_neon_faddv;
+ if (NameR.startswith("arch64.neon.facgt.")) return Intrinsic::aarch64_neon_facgt;
+ if (NameR.startswith("arch64.neon.facge.")) return Intrinsic::aarch64_neon_facge;
+ if (NameR.startswith("arch64.neon.fabd.")) return Intrinsic::aarch64_neon_fabd;
+ if (NameR.startswith("arch64.neon.cls.")) return Intrinsic::aarch64_neon_cls;
+ if (NameR.startswith("arch64.neon.addp.")) return Intrinsic::aarch64_neon_addp;
+ if (NameR.startswith("arch64.neon.addhn.")) return Intrinsic::aarch64_neon_addhn;
+ if (NameR.startswith("arch64.neon.abs.")) return Intrinsic::aarch64_neon_abs;
+ if (NameR.startswith("arch64.ldxr.")) return Intrinsic::aarch64_ldxr;
+ if (NameR.startswith("arch64.ldaxr.")) return Intrinsic::aarch64_ldaxr;
+ switch (NameR.size()) {
+ default: break;
+ case 6: // 6 strings to match.
+ if (memcmp(NameR.data()+0, "rm.", 3))
+ break;
+ switch (NameR[3]) {
+ default: break;
+ case 'c': // 1 string to match.
+ if (memcmp(NameR.data()+4, "dp", 2))
+ break;
+ return Intrinsic::arm_cdp; // "rm.cdp"
+ case 'd': // 2 strings to match.
+ switch (NameR[4]) {
+ default: break;
+ case 'm': // 1 string to match.
+ if (NameR[5] != 'b')
+ break;
+ return Intrinsic::arm_dmb; // "rm.dmb"
+ case 's': // 1 string to match.
+ if (NameR[5] != 'b')
+ break;
+ return Intrinsic::arm_dsb; // "rm.dsb"
+ }
+ break;
+ case 'i': // 1 string to match.
+ if (memcmp(NameR.data()+4, "sb", 2))
+ break;
+ return Intrinsic::arm_isb; // "rm.isb"
+ 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: // 10 strings to match.
+ if (memcmp(NameR.data()+0, "rm.", 3))
+ break;
+ switch (NameR[3]) {
+ default: break;
+ case 'c': // 1 string to match.
+ if (memcmp(NameR.data()+4, "dp2", 3))
+ break;
+ return Intrinsic::arm_cdp2; // "rm.cdp2"
+ case 'h': // 1 string to match.
+ if (memcmp(NameR.data()+4, "int", 3))
+ break;
+ return Intrinsic::arm_hint; // "rm.hint"
+ case 'm': // 3 strings to match.
+ switch (NameR[4]) {
+ default: break;
+ case 'c': // 2 strings to match.
+ if (NameR[5] != 'r')
+ break;
+ switch (NameR[6]) {
+ default: break;
+ case '2': // 1 string to match.
+ return Intrinsic::arm_mcr2; // "rm.mcr2"
+ case 'r': // 1 string to match.
+ return Intrinsic::arm_mcrr; // "rm.mcrr"
+ }
+ break;
+ case 'r': // 1 string to match.
+ if (memcmp(NameR.data()+5, "c2", 2))
+ break;
+ return Intrinsic::arm_mrc2; // "rm.mrc2"
+ }
+ break;
+ case 'q': // 2 strings to match.
+ switch (NameR[4]) {
+ default: break;
+ case 'a': // 1 string to match.
+ if (memcmp(NameR.data()+5, "dd", 2))
+ break;
+ return Intrinsic::arm_qadd; // "rm.qadd"
+ case 's': // 1 string to match.
+ if (memcmp(NameR.data()+5, "ub", 2))
+ break;
+ return Intrinsic::arm_qsub; // "rm.qsub"
+ }
+ break;
+ case 'r': // 1 string to match.
+ if (memcmp(NameR.data()+4, "bit", 3))
+ break;
+ return Intrinsic::arm_rbit; // "rm.rbit"
+ case 's': // 1 string to match.
+ if (memcmp(NameR.data()+4, "sat", 3))
+ break;
+ return Intrinsic::arm_ssat; // "rm.ssat"
+ case 'u': // 1 string to match.
+ if (memcmp(NameR.data()+4, "sat", 3))
+ break;
+ return Intrinsic::arm_usat; // "rm.usat"
+ }
+ break;
+ case 8: // 2 strings to match.
+ if (memcmp(NameR.data()+0, "rm.", 3))
+ break;
+ switch (NameR[3]) {
+ default: break;
+ case 'c': // 1 string to match.
+ if (memcmp(NameR.data()+4, "lrex", 4))
+ break;
+ return Intrinsic::arm_clrex; // "rm.clrex"
+ case 'm': // 1 string to match.
+ if (memcmp(NameR.data()+4, "crr2", 4))
+ break;
+ return Intrinsic::arm_mcrr2; // "rm.mcrr2"
+ }
+ break;
+ case 9: // 7 strings to match.
+ if (memcmp(NameR.data()+0, "rm.", 3))
+ break;
+ switch (NameR[3]) {
+ default: break;
+ case 'c': // 3 strings to match.
+ if (memcmp(NameR.data()+4, "rc32", 4))
+ break;
+ switch (NameR[8]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::arm_crc32b; // "rm.crc32b"
+ case 'h': // 1 string to match.
+ return Intrinsic::arm_crc32h; // "rm.crc32h"
+ case 'w': // 1 string to match.
+ return Intrinsic::arm_crc32w; // "rm.crc32w"
+ }
+ break;
+ case 'l': // 2 strings to match.
+ if (NameR[4] != 'd')
+ break;
+ switch (NameR[5]) {
+ default: break;
+ case 'a': // 1 string to match.
+ if (memcmp(NameR.data()+6, "exd", 3))
+ break;
+ return Intrinsic::arm_ldaexd; // "rm.ldaexd"
+ case 'r': // 1 string to match.
+ if (memcmp(NameR.data()+6, "exd", 3))
+ break;
+ return Intrinsic::arm_ldrexd; // "rm.ldrexd"
+ }
+ break;
+ case 's': // 2 strings to match.
+ if (NameR[4] != 't')
+ break;
+ switch (NameR[5]) {
+ default: break;
+ case 'l': // 1 string to match.
+ if (memcmp(NameR.data()+6, "exd", 3))
+ break;
+ return Intrinsic::arm_stlexd; // "rm.stlexd"
+ case 'r': // 1 string to match.
+ if (memcmp(NameR.data()+6, "exd", 3))
+ break;
+ return Intrinsic::arm_strexd; // "rm.strexd"
+ }
+ break;
+ }
+ break;
+ case 10: // 6 strings to match.
+ switch (NameR[0]) {
+ default: break;
+ case 'a': // 3 strings to match.
+ if (memcmp(NameR.data()+1, "rch64.", 6))
+ break;
+ switch (NameR[7]) {
+ default: break;
+ case 'd': // 2 strings to match.
+ switch (NameR[8]) {
+ default: break;
+ case 'm': // 1 string to match.
+ if (NameR[9] != 'b')
+ break;
+ return Intrinsic::aarch64_dmb; // "arch64.dmb"
+ case 's': // 1 string to match.
+ if (NameR[9] != 'b')
+ break;
+ return Intrinsic::aarch64_dsb; // "arch64.dsb"
+ }
+ break;
+ case 'i': // 1 string to match.
+ if (memcmp(NameR.data()+8, "sb", 2))
+ break;
+ return Intrinsic::aarch64_isb; // "arch64.isb"
+ }
+ break;
+ case 'r': // 3 strings to match.
+ if (memcmp(NameR.data()+1, "m.crc32c", 8))
+ break;
+ switch (NameR[9]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::arm_crc32cb; // "rm.crc32cb"
+ case 'h': // 1 string to match.
+ return Intrinsic::arm_crc32ch; // "rm.crc32ch"
+ case 'w': // 1 string to match.
+ return Intrinsic::arm_crc32cw; // "rm.crc32cw"
+ }
+ break;
+ }
+ break;
+ case 11: // 3 strings to match.
+ if (memcmp(NameR.data()+0, "arch64.", 7))
+ break;
+ switch (NameR[7]) {
+ default: break;
+ case 'h': // 1 string to match.
+ if (memcmp(NameR.data()+8, "int", 3))
+ break;
+ return Intrinsic::aarch64_hint; // "arch64.hint"
+ case 'l': // 1 string to match.
+ if (memcmp(NameR.data()+8, "dxp", 3))
+ break;
+ return Intrinsic::aarch64_ldxp; // "arch64.ldxp"
+ case 's': // 1 string to match.
+ if (memcmp(NameR.data()+8, "txp", 3))
+ break;
+ return Intrinsic::aarch64_stxp; // "arch64.stxp"
+ }
+ break;
+ case 12: // 8 strings to match.
+ switch (NameR[0]) {
+ default: break;
+ case 'a': // 3 strings to match.
+ if (memcmp(NameR.data()+1, "rch64.", 6))
+ break;
+ switch (NameR[7]) {
+ default: break;
+ case 'c': // 1 string to match.
+ if (memcmp(NameR.data()+8, "lrex", 4))
+ break;
+ return Intrinsic::aarch64_clrex; // "arch64.clrex"
+ case 'l': // 1 string to match.
+ if (memcmp(NameR.data()+8, "daxp", 4))
+ break;
+ return Intrinsic::aarch64_ldaxp; // "arch64.ldaxp"
+ case 's': // 1 string to match.
+ if (memcmp(NameR.data()+8, "tlxp", 4))
+ break;
+ return Intrinsic::aarch64_stlxp; // "arch64.stlxp"
+ }
+ break;
+ case 'r': // 5 strings to match.
+ if (memcmp(NameR.data()+1, "m.", 2))
+ break;
+ switch (NameR[3]) {
+ default: break;
+ case 'g': // 1 string to match.
+ if (memcmp(NameR.data()+4, "et.fpscr", 8))
+ break;
+ return Intrinsic::arm_get_fpscr; // "rm.get.fpscr"
+ case 'n': // 2 strings to match.
+ if (memcmp(NameR.data()+4, "eon.aes", 7))
+ break;
+ switch (NameR[11]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::arm_neon_aesd; // "rm.neon.aesd"
+ case 'e': // 1 string to match.
+ return Intrinsic::arm_neon_aese; // "rm.neon.aese"
+ }
+ break;
+ case 's': // 1 string to match.
+ if (memcmp(NameR.data()+4, "et.fpscr", 8))
+ break;
+ return Intrinsic::arm_set_fpscr; // "rm.set.fpscr"
+ case 'u': // 1 string to match.
+ if (memcmp(NameR.data()+4, "ndefined", 8))
+ break;
+ return Intrinsic::arm_undefined; // "rm.undefined"
+ }
+ break;
+ }
+ break;
+ case 13: // 17 strings to match.
+ switch (NameR[0]) {
+ default: break;
+ case 'a': // 4 strings to match.
+ if (memcmp(NameR.data()+1, "rch64.crc32", 11))
+ break;
+ switch (NameR[12]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::aarch64_crc32b; // "arch64.crc32b"
+ case 'h': // 1 string to match.
+ return Intrinsic::aarch64_crc32h; // "arch64.crc32h"
+ case 'w': // 1 string to match.
+ return Intrinsic::aarch64_crc32w; // "arch64.crc32w"
+ case 'x': // 1 string to match.
+ return Intrinsic::aarch64_crc32x; // "arch64.crc32x"
+ }
+ break;
+ case 'r': // 13 strings to match.
+ if (memcmp(NameR.data()+1, "m.neon.", 7))
+ break;
+ switch (NameR[8]) {
+ default: break;
+ case 'a': // 1 string to match.
+ if (memcmp(NameR.data()+9, "esmc", 4))
+ break;
+ return Intrinsic::arm_neon_aesmc; // "rm.neon.aesmc"
+ case 's': // 4 strings to match.
+ if (memcmp(NameR.data()+9, "ha1", 3))
+ break;
+ switch (NameR[12]) {
+ default: break;
+ case 'c': // 1 string to match.
+ return Intrinsic::arm_neon_sha1c; // "rm.neon.sha1c"
+ case 'h': // 1 string to match.
+ return Intrinsic::arm_neon_sha1h; // "rm.neon.sha1h"
+ case 'm': // 1 string to match.
+ return Intrinsic::arm_neon_sha1m; // "rm.neon.sha1m"
+ case 'p': // 1 string to match.
+ return Intrinsic::arm_neon_sha1p; // "rm.neon.sha1p"
+ }
+ break;
+ case 'v': // 8 strings to match.
+ if (memcmp(NameR.data()+9, "tb", 2))
+ 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;
+ }
+ break;
+ }
+ break;
+ case 14: // 5 strings to match.
+ switch (NameR[0]) {
+ default: break;
+ case 'a': // 4 strings to match.
+ if (memcmp(NameR.data()+1, "rch64.crc32c", 12))
+ break;
+ switch (NameR[13]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::aarch64_crc32cb; // "arch64.crc32cb"
+ case 'h': // 1 string to match.
+ return Intrinsic::aarch64_crc32ch; // "arch64.crc32ch"
+ case 'w': // 1 string to match.
+ return Intrinsic::aarch64_crc32cw; // "arch64.crc32cw"
+ case 'x': // 1 string to match.
+ return Intrinsic::aarch64_crc32cx; // "arch64.crc32cx"
+ }
+ break;
+ case 'r': // 1 string to match.
+ if (memcmp(NameR.data()+1, "m.neon.aesimc", 13))
+ break;
+ return Intrinsic::arm_neon_aesimc; // "rm.neon.aesimc"
+ }
+ break;
+ case 15: // 3 strings to match.
+ if (memcmp(NameR.data()+0, "rm.neon.sha", 11))
+ break;
+ switch (NameR[11]) {
+ default: break;
+ case '1': // 2 strings to match.
+ if (memcmp(NameR.data()+12, "su", 2))
+ break;
+ switch (NameR[14]) {
+ default: break;
+ case '0': // 1 string to match.
+ return Intrinsic::arm_neon_sha1su0; // "rm.neon.sha1su0"
+ case '1': // 1 string to match.
+ return Intrinsic::arm_neon_sha1su1; // "rm.neon.sha1su1"
+ }
+ break;
+ case '2': // 1 string to match.
+ if (memcmp(NameR.data()+12, "56h", 3))
+ break;
+ return Intrinsic::arm_neon_sha256h; // "rm.neon.sha256h"
+ }
+ break;
+ case 16: // 2 strings to match.
+ switch (NameR[0]) {
+ default: break;
+ case 'd': // 1 string to match.
+ if (memcmp(NameR.data()+1, "just.trampoline", 15))
+ break;
+ return Intrinsic::adjust_trampoline; // "djust.trampoline"
+ case 'r': // 1 string to match.
+ if (memcmp(NameR.data()+1, "m.neon.sha256h2", 15))
+ break;
+ return Intrinsic::arm_neon_sha256h2; // "rm.neon.sha256h2"
+ }
+ break;
+ case 17: // 5 strings to match.
+ if (memcmp(NameR.data()+0, "rm.", 3))
+ break;
+ switch (NameR[3]) {
+ default: break;
+ case 'n': // 4 strings to match.
+ if (memcmp(NameR.data()+4, "eon.", 4))
+ break;
+ switch (NameR[8]) {
+ default: break;
+ case 's': // 2 strings to match.
+ if (memcmp(NameR.data()+9, "ha256su", 7))
+ break;
+ switch (NameR[16]) {
+ default: break;
+ case '0': // 1 string to match.
+ return Intrinsic::arm_neon_sha256su0; // "rm.neon.sha256su0"
+ case '1': // 1 string to match.
+ return Intrinsic::arm_neon_sha256su1; // "rm.neon.sha256su1"
+ }
+ break;
+ case 'v': // 2 strings to match.
+ if (memcmp(NameR.data()+9, "cvt", 3))
+ break;
+ switch (NameR[12]) {
+ default: break;
+ case 'f': // 1 string to match.
+ if (memcmp(NameR.data()+13, "p2hf", 4))
+ break;
+ return Intrinsic::arm_neon_vcvtfp2hf; // "rm.neon.vcvtfp2hf"
+ case 'h': // 1 string to match.
+ if (memcmp(NameR.data()+13, "f2fp", 4))
+ break;
+ return Intrinsic::arm_neon_vcvthf2fp; // "rm.neon.vcvthf2fp"
+ }
+ break;
+ }
+ break;
+ case 't': // 1 string to match.
+ if (memcmp(NameR.data()+4, "hread.pointer", 13))
+ break;
+ return Intrinsic::arm_thread_pointer; // "rm.thread.pointer"
+ }
+ break;
+ case 18: // 3 strings to match.
+ if (memcmp(NameR.data()+0, "arch64.", 7))
+ break;
+ switch (NameR[7]) {
+ default: break;
+ case 'c': // 2 strings to match.
+ if (memcmp(NameR.data()+8, "rypto.aes", 9))
+ break;
+ switch (NameR[17]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::aarch64_crypto_aesd; // "arch64.crypto.aesd"
+ case 'e': // 1 string to match.
+ return Intrinsic::aarch64_crypto_aese; // "arch64.crypto.aese"
+ }
+ break;
+ case 's': // 1 string to match.
+ if (memcmp(NameR.data()+8, "isd.fcvtxn", 10))
+ break;
+ return Intrinsic::aarch64_sisd_fcvtxn; // "arch64.sisd.fcvtxn"
+ }
+ break;
+ case 19: // 6 strings to match.
+ if (memcmp(NameR.data()+0, "arch64.", 7))
+ break;
+ switch (NameR[7]) {
+ default: break;
+ case 'c': // 5 strings to match.
+ if (memcmp(NameR.data()+8, "rypto.", 6))
+ break;
+ switch (NameR[14]) {
+ default: break;
+ case 'a': // 1 string to match.
+ if (memcmp(NameR.data()+15, "esmc", 4))
+ break;
+ return Intrinsic::aarch64_crypto_aesmc; // "arch64.crypto.aesmc"
+ case 's': // 4 strings to match.
+ if (memcmp(NameR.data()+15, "ha1", 3))
+ break;
+ switch (NameR[18]) {
+ default: break;
+ case 'c': // 1 string to match.
+ return Intrinsic::aarch64_crypto_sha1c; // "arch64.crypto.sha1c"
+ case 'h': // 1 string to match.
+ return Intrinsic::aarch64_crypto_sha1h; // "arch64.crypto.sha1h"
+ case 'm': // 1 string to match.
+ return Intrinsic::aarch64_crypto_sha1m; // "arch64.crypto.sha1m"
+ case 'p': // 1 string to match.
+ return Intrinsic::aarch64_crypto_sha1p; // "arch64.crypto.sha1p"
+ }
+ break;
+ }
+ break;
+ case 'n': // 1 string to match.
+ if (memcmp(NameR.data()+8, "eon.pmull64", 11))
+ break;
+ return Intrinsic::aarch64_neon_pmull64; // "arch64.neon.pmull64"
+ }
+ break;
+ case 20: // 1 string to match.
+ if (memcmp(NameR.data()+0, "arch64.crypto.aesimc", 20))
+ break;
+ return Intrinsic::aarch64_crypto_aesimc; // "arch64.crypto.aesimc"
+ case 21: // 5 strings to match.
+ if (memcmp(NameR.data()+0, "arch64.", 7))
+ break;
+ switch (NameR[7]) {
+ default: break;
+ case 'c': // 3 strings to match.
+ if (memcmp(NameR.data()+8, "rypto.sha", 9))
+ break;
+ switch (NameR[17]) {
+ default: break;
+ case '1': // 2 strings to match.
+ if (memcmp(NameR.data()+18, "su", 2))
+ break;
+ switch (NameR[20]) {
+ default: break;
+ case '0': // 1 string to match.
+ return Intrinsic::aarch64_crypto_sha1su0; // "arch64.crypto.sha1su0"
+ case '1': // 1 string to match.
+ return Intrinsic::aarch64_crypto_sha1su1; // "arch64.crypto.sha1su1"
+ }
+ break;
+ case '2': // 1 string to match.
+ if (memcmp(NameR.data()+18, "56h", 3))
+ break;
+ return Intrinsic::aarch64_crypto_sha256h; // "arch64.crypto.sha256h"
+ }
+ break;
+ case 'n': // 2 strings to match.
+ if (memcmp(NameR.data()+8, "eon.vcvt", 8))
+ break;
+ switch (NameR[16]) {
+ default: break;
+ case 'f': // 1 string to match.
+ if (memcmp(NameR.data()+17, "p2hf", 4))
+ break;
+ return Intrinsic::aarch64_neon_vcvtfp2hf; // "arch64.neon.vcvtfp2hf"
+ case 'h': // 1 string to match.
+ if (memcmp(NameR.data()+17, "f2fp", 4))
+ break;
+ return Intrinsic::aarch64_neon_vcvthf2fp; // "arch64.neon.vcvthf2fp"
+ }
+ break;
+ }
+ break;
+ case 22: // 1 string to match.
+ if (memcmp(NameR.data()+0, "arch64.crypto.sha256h2", 22))
+ break;
+ return Intrinsic::aarch64_crypto_sha256h2; // "arch64.crypto.sha256h2"
+ case 23: // 2 strings to match.
+ if (memcmp(NameR.data()+0, "arch64.crypto.sha256su", 22))
+ break;
+ switch (NameR[22]) {
+ default: break;
+ case '0': // 1 string to match.
+ return Intrinsic::aarch64_crypto_sha256su0; // "arch64.crypto.sha256su0"
+ case '1': // 1 string to match.
+ return Intrinsic::aarch64_crypto_sha256su1; // "arch64.crypto.sha256su1"
+ }
+ break;
+ case 27: // 1 string to match.
+ if (memcmp(NameR.data()+0, "arch64.neon.sqdmulls.scalar", 27))
+ break;
+ return Intrinsic::aarch64_neon_sqdmulls_scalar; // "arch64.neon.sqdmulls.scalar"
+ }
+ break; // end of 'a' case.
+ case 'b':
+ if (NameR.startswith("swap.")) return Intrinsic::bswap;
+ break; // end of 'b' case.
+ case 'c':
+ if (NameR.startswith("ttz.")) return Intrinsic::cttz;
+ if (NameR.startswith("tpop.")) return Intrinsic::ctpop;
+ if (NameR.startswith("tlz.")) return Intrinsic::ctlz;
+ if (NameR.startswith("os.")) return Intrinsic::cos;
+ if (NameR.startswith("opysign.")) return Intrinsic::copysign;
+ if (NameR.startswith("onvertuu.")) return Intrinsic::convertuu;
+ if (NameR.startswith("onvertus.")) return Intrinsic::convertus;
+ if (NameR.startswith("onvertuif.")) return Intrinsic::convertuif;
+ if (NameR.startswith("onvertsu.")) return Intrinsic::convertsu;
+ if (NameR.startswith("onvertss.")) return Intrinsic::convertss;
+ if (NameR.startswith("onvertsif.")) return Intrinsic::convertsif;
+ if (NameR.startswith("onvertfui.")) return Intrinsic::convertfui;
+ if (NameR.startswith("onvertfsi.")) return Intrinsic::convertfsi;
+ if (NameR.startswith("onvertff.")) return Intrinsic::convertff;
+ if (NameR.startswith("onvert.to.fp16.")) return Intrinsic::convert_to_fp16;
+ if (NameR.startswith("onvert.from.fp16.")) return Intrinsic::convert_from_fp16;
+ if (NameR.startswith("eil.")) return Intrinsic::ceil;
+ switch (NameR.size()) {
+ default: break;
+ case 10: // 1 string to match.
+ if (memcmp(NameR.data()+0, "lear_cache", 10))
+ break;
+ return Intrinsic::clear_cache; // "lear_cache"
+ case 15: // 1 string to match.
+ if (memcmp(NameR.data()+0, "uda.syncthreads", 15))
+ break;
+ return Intrinsic::cuda_syncthreads; // "uda.syncthreads"
+ }
+ break; // end of 'c' case.
+ case 'd':
+ switch (NameR.size()) {
+ default: break;
+ case 8: // 3 strings to match.
+ switch (NameR[0]) {
+ default: break;
+ case 'b': // 1 string to match.
+ if (memcmp(NameR.data()+1, "g.value", 7))
+ break;
+ return Intrinsic::dbg_value; // "bg.value"
+ case 'e': // 1 string to match.
+ if (memcmp(NameR.data()+1, "bugtrap", 7))
+ break;
+ return Intrinsic::debugtrap; // "ebugtrap"
+ case 'o': // 1 string to match.
+ if (memcmp(NameR.data()+1, "nothing", 7))
+ break;
+ return Intrinsic::donothing; // "onothing"
+ }
+ break;
+ case 10: // 1 string to match.
+ if (memcmp(NameR.data()+0, "bg.declare", 10))
+ break;
+ return Intrinsic::dbg_declare; // "bg.declare"
+ }
+ break; // end of 'd' case.
+ case 'e':
+ if (NameR.startswith("xpect.")) return Intrinsic::expect;
+ if (NameR.startswith("xp2.")) return Intrinsic::exp2;
+ if (NameR.startswith("xp.")) return Intrinsic::exp;
+ switch (NameR.size()) {
+ default: break;
+ case 11: // 2 strings to match.
+ if (memcmp(NameR.data()+0, "h.", 2))
+ break;
+ switch (NameR[2]) {
+ default: break;
+ case 'd': // 1 string to match.
+ if (memcmp(NameR.data()+3, "warf.cfa", 8))
+ break;
+ return Intrinsic::eh_dwarf_cfa; // "h.dwarf.cfa"
+ case 's': // 1 string to match.
+ if (memcmp(NameR.data()+3, "jlj.lsda", 8))
+ break;
+ return Intrinsic::eh_sjlj_lsda; // "h.sjlj.lsda"
+ }
+ break;
+ case 12: // 3 strings to match.
+ if (memcmp(NameR.data()+0, "h.", 2))
+ break;
+ switch (NameR[2]) {
+ default: break;
+ case 'r': // 2 strings to match.
+ if (memcmp(NameR.data()+3, "eturn.i", 7))
+ break;
+ switch (NameR[10]) {
+ default: break;
+ case '3': // 1 string to match.
+ if (NameR[11] != '2')
+ break;
+ return Intrinsic::eh_return_i32; // "h.return.i32"
+ case '6': // 1 string to match.
+ if (NameR[11] != '4')
+ break;
+ return Intrinsic::eh_return_i64; // "h.return.i64"
+ }
+ break;
+ case 't': // 1 string to match.
+ if (memcmp(NameR.data()+3, "ypeid.for", 9))
+ break;
+ return Intrinsic::eh_typeid_for; // "h.typeid.for"
+ }
+ break;
+ case 13: // 2 strings to match.
+ if (memcmp(NameR.data()+0, "h.", 2))
+ break;
+ switch (NameR[2]) {
+ default: break;
+ case 's': // 1 string to match.
+ if (memcmp(NameR.data()+3, "jlj.setjmp", 10))
+ break;
+ return Intrinsic::eh_sjlj_setjmp; // "h.sjlj.setjmp"
+ case 'u': // 1 string to match.
+ if (memcmp(NameR.data()+3, "nwind.init", 10))
+ break;
+ return Intrinsic::eh_unwind_init; // "h.unwind.init"
+ }
+ break;
+ case 14: // 1 string to match.
+ if (memcmp(NameR.data()+0, "h.sjlj.longjmp", 14))
+ break;
+ return Intrinsic::eh_sjlj_longjmp; // "h.sjlj.longjmp"
+ case 15: // 1 string to match.
+ if (memcmp(NameR.data()+0, "h.sjlj.callsite", 15))
+ break;
+ return Intrinsic::eh_sjlj_callsite; // "h.sjlj.callsite"
+ case 20: // 1 string to match.
+ if (memcmp(NameR.data()+0, "xperimental.stackmap", 20))
+ break;
+ return Intrinsic::experimental_stackmap; // "xperimental.stackmap"
+ case 22: // 1 string to match.
+ if (memcmp(NameR.data()+0, "h.sjlj.functioncontext", 22))
+ break;
+ return Intrinsic::eh_sjlj_functioncontext; // "h.sjlj.functioncontext"
+ case 26: // 1 string to match.
+ if (memcmp(NameR.data()+0, "xperimental.patchpoint.i64", 26))
+ break;
+ return Intrinsic::experimental_patchpoint_i64; // "xperimental.patchpoint.i64"
+ case 27: // 1 string to match.
+ if (memcmp(NameR.data()+0, "xperimental.patchpoint.void", 27))
+ break;
+ return Intrinsic::experimental_patchpoint_void; // "xperimental.patchpoint.void"
+ }
+ break; // end of 'e' case.
+ case 'f':
+ if (NameR.startswith("muladd.")) return Intrinsic::fmuladd;
+ if (NameR.startswith("ma.")) return Intrinsic::fma;
+ if (NameR.startswith("loor.")) return Intrinsic::floor;
+ if (NameR.startswith("abs.")) return Intrinsic::fabs;
+ switch (NameR.size()) {
+ default: break;
+ case 9: // 1 string to match.
+ if (memcmp(NameR.data()+0, "lt.rounds", 9))
+ break;
+ return Intrinsic::flt_rounds; // "lt.rounds"
+ case 11: // 1 string to match.
+ if (memcmp(NameR.data()+0, "rameaddress", 11))
+ break;
+ return Intrinsic::frameaddress; // "rameaddress"
+ }
+ break; // end of 'f' case.
+ case 'g':
+ switch (NameR.size()) {
+ default: break;
+ case 5: // 2 strings to match.
+ if (memcmp(NameR.data()+0, "cr", 2))
+ break;
+ switch (NameR[2]) {
+ default: break;
+ case 'e': // 1 string to match.
+ if (memcmp(NameR.data()+3, "ad", 2))
+ break;
+ return Intrinsic::gcread; // "cread"
+ case 'o': // 1 string to match.
+ if (memcmp(NameR.data()+3, "ot", 2))
+ break;
+ return Intrinsic::gcroot; // "croot"
+ }
+ break;
+ case 6: // 1 string to match.
+ if (memcmp(NameR.data()+0, "cwrite", 6))
+ break;
+ return Intrinsic::gcwrite; // "cwrite"
+ }
+ break; // end of 'g' case.
+ case 'h':
+ switch (NameR.size()) {
+ default: break;
+ case 12: // 2 strings to match.
+ if (memcmp(NameR.data()+0, "exagon.", 7))
+ break;
+ switch (NameR[7]) {
+ default: break;
+ case 'A': // 1 string to match.
+ if (memcmp(NameR.data()+8, "2.or", 4))
+ break;
+ return Intrinsic::hexagon_A2_or; // "exagon.A2.or"
+ case 'C': // 1 string to match.
+ if (memcmp(NameR.data()+8, "2.or", 4))
+ break;
+ return Intrinsic::hexagon_C2_or; // "exagon.C2.or"
+ }
+ break;
+ case 13: // 23 strings to match.
+ if (memcmp(NameR.data()+0, "exagon.", 7))
+ break;
+ switch (NameR[7]) {
+ default: break;
+ case 'A': // 13 strings to match.
+ switch (NameR[8]) {
+ default: break;
+ case '2': // 12 strings to match.
+ if (NameR[9] != '.')
+ break;
+ switch (NameR[10]) {
+ default: break;
+ case 'a': // 3 strings to match.
+ switch (NameR[11]) {
+ default: break;
+ case 'b': // 1 string to match.
+ if (NameR[12] != 's')
+ break;
+ return Intrinsic::hexagon_A2_abs; // "exagon.A2.abs"
+ case 'd': // 1 string to match.
+ if (NameR[12] != 'd')
+ break;
+ return Intrinsic::hexagon_A2_add; // "exagon.A2.add"
+ case 'n': // 1 string to match.
+ if (NameR[12] != 'd')
+ break;
+ return Intrinsic::hexagon_A2_and; // "exagon.A2.and"
+ }
+ break;
+ case 'm': // 2 strings to match.
+ switch (NameR[11]) {
+ default: break;
+ case 'a': // 1 string to match.
+ if (NameR[12] != 'x')
+ break;
+ return Intrinsic::hexagon_A2_max; // "exagon.A2.max"
+ case 'i': // 1 string to match.
+ if (NameR[12] != 'n')
+ break;
+ return Intrinsic::hexagon_A2_min; // "exagon.A2.min"
+ }
+ break;
+ case 'n': // 2 strings to match.
+ switch (NameR[11]) {
+ default: break;
+ case 'e': // 1 string to match.
+ if (NameR[12] != 'g')
+ break;
+ return Intrinsic::hexagon_A2_neg; // "exagon.A2.neg"
+ case 'o': // 1 string to match.
+ if (NameR[12] != 't')
+ break;
+ return Intrinsic::hexagon_A2_not; // "exagon.A2.not"
+ }
+ break;
+ case 'o': // 1 string to match.
+ if (memcmp(NameR.data()+11, "rp", 2))
+ break;
+ return Intrinsic::hexagon_A2_orp; // "exagon.A2.orp"
+ case 's': // 2 strings to match.
+ switch (NameR[11]) {
+ default: break;
+ case 'a': // 1 string to match.
+ if (NameR[12] != 't')
+ break;
+ return Intrinsic::hexagon_A2_sat; // "exagon.A2.sat"
+ case 'u': // 1 string to match.
+ if (NameR[12] != 'b')
+ break;
+ return Intrinsic::hexagon_A2_sub; // "exagon.A2.sub"
+ }
+ break;
+ case 't': // 1 string to match.
+ if (memcmp(NameR.data()+11, "fr", 2))
+ break;
+ return Intrinsic::hexagon_A2_tfr; // "exagon.A2.tfr"
+ case 'x': // 1 string to match.
+ if (memcmp(NameR.data()+11, "or", 2))
+ break;
+ return Intrinsic::hexagon_A2_xor; // "exagon.A2.xor"
+ }
+ break;
+ case '4': // 1 string to match.
+ if (memcmp(NameR.data()+9, ".orn", 4))
+ break;
+ return Intrinsic::hexagon_A4_orn; // "exagon.A4.orn"
+ }
+ break;
+ case 'C': // 5 strings to match.
+ if (memcmp(NameR.data()+8, "2.", 2))
+ break;
+ switch (NameR[10]) {
+ default: break;
+ case 'a': // 1 string to match.
+ if (memcmp(NameR.data()+11, "nd", 2))
+ break;
+ return Intrinsic::hexagon_C2_and; // "exagon.C2.and"
+ case 'm': // 1 string to match.
+ if (memcmp(NameR.data()+11, "ux", 2))
+ break;
+ return Intrinsic::hexagon_C2_mux; // "exagon.C2.mux"
+ case 'n': // 1 string to match.
+ if (memcmp(NameR.data()+11, "ot", 2))
+ break;
+ return Intrinsic::hexagon_C2_not; // "exagon.C2.not"
+ case 'o': // 1 string to match.
+ if (memcmp(NameR.data()+11, "rn", 2))
+ break;
+ return Intrinsic::hexagon_C2_orn; // "exagon.C2.orn"
+ case 'x': // 1 string to match.
+ if (memcmp(NameR.data()+11, "or", 2))
+ break;
+ return Intrinsic::hexagon_C2_xor; // "exagon.C2.xor"
+ }
+ break;
+ case 'S': // 5 strings to match.
+ if (memcmp(NameR.data()+8, "2.c", 3))
+ break;
+ switch (NameR[11]) {
+ default: break;
+ case 'l': // 3 strings to match.
+ switch (NameR[12]) {
+ default: break;
+ case '0': // 1 string to match.
+ return Intrinsic::hexagon_S2_cl0; // "exagon.S2.cl0"
+ case '1': // 1 string to match.
+ return Intrinsic::hexagon_S2_cl1; // "exagon.S2.cl1"
+ case 'b': // 1 string to match.
+ return Intrinsic::hexagon_S2_clb; // "exagon.S2.clb"
+ }
+ break;
+ case 't': // 2 strings to match.
+ switch (NameR[12]) {
+ default: break;
+ case '0': // 1 string to match.
+ return Intrinsic::hexagon_S2_ct0; // "exagon.S2.ct0"
+ case '1': // 1 string to match.
+ return Intrinsic::hexagon_S2_ct1; // "exagon.S2.ct1"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 14: // 42 strings to match.
+ if (memcmp(NameR.data()+0, "exagon.", 7))
+ break;
+ switch (NameR[7]) {
+ default: break;
+ case 'A': // 26 strings to match.
+ switch (NameR[8]) {
+ default: break;
+ case '2': // 24 strings to match.
+ if (NameR[9] != '.')
+ break;
+ switch (NameR[10]) {
+ default: break;
+ case 'a': // 6 strings to match.
+ switch (NameR[11]) {
+ default: break;
+ case 'b': // 1 string to match.
+ if (memcmp(NameR.data()+12, "sp", 2))
+ break;
+ return Intrinsic::hexagon_A2_absp; // "exagon.A2.absp"
+ case 'd': // 2 strings to match.
+ if (NameR[12] != 'd')
+ break;
+ switch (NameR[13]) {
+ default: break;
+ case 'i': // 1 string to match.
+ return Intrinsic::hexagon_A2_addi; // "exagon.A2.addi"
+ case 'p': // 1 string to match.
+ return Intrinsic::hexagon_A2_addp; // "exagon.A2.addp"
+ }
+ break;
+ case 'n': // 1 string to match.
+ if (memcmp(NameR.data()+12, "dp", 2))
+ break;
+ return Intrinsic::hexagon_A2_andp; // "exagon.A2.andp"
+ case 's': // 2 strings to match.
+ switch (NameR[12]) {
+ default: break;
+ case 'l': // 1 string to match.
+ if (NameR[13] != 'h')
+ break;
+ return Intrinsic::hexagon_A2_aslh; // "exagon.A2.aslh"
+ case 'r': // 1 string to match.
+ if (NameR[13] != 'h')
+ break;
+ return Intrinsic::hexagon_A2_asrh; // "exagon.A2.asrh"
+ }
+ break;
+ }
+ break;
+ case 'm': // 4 strings to match.
+ switch (NameR[11]) {
+ default: break;
+ case 'a': // 2 strings to match.
+ if (NameR[12] != 'x')
+ break;
+ switch (NameR[13]) {
+ default: break;
+ case 'p': // 1 string to match.
+ return Intrinsic::hexagon_A2_maxp; // "exagon.A2.maxp"
+ case 'u': // 1 string to match.
+ return Intrinsic::hexagon_A2_maxu; // "exagon.A2.maxu"
+ }
+ break;
+ case 'i': // 2 strings to match.
+ if (NameR[12] != 'n')
+ break;
+ switch (NameR[13]) {
+ default: break;
+ case 'p': // 1 string to match.
+ return Intrinsic::hexagon_A2_minp; // "exagon.A2.minp"
+ case 'u': // 1 string to match.
+ return Intrinsic::hexagon_A2_minu; // "exagon.A2.minu"
+ }
+ break;
+ }
+ break;
+ case 'n': // 2 strings to match.
+ switch (NameR[11]) {
+ default: break;
+ case 'e': // 1 string to match.
+ if (memcmp(NameR.data()+12, "gp", 2))
+ break;
+ return Intrinsic::hexagon_A2_negp; // "exagon.A2.negp"
+ case 'o': // 1 string to match.
+ if (memcmp(NameR.data()+12, "tp", 2))
+ break;
+ return Intrinsic::hexagon_A2_notp; // "exagon.A2.notp"
+ }
+ break;
+ case 'o': // 1 string to match.
+ if (memcmp(NameR.data()+11, "rir", 3))
+ break;
+ return Intrinsic::hexagon_A2_orir; // "exagon.A2.orir"
+ case 's': // 7 strings to match.
+ switch (NameR[11]) {
+ default: break;
+ case 'a': // 2 strings to match.
+ if (NameR[12] != 't')
+ break;
+ switch (NameR[13]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::hexagon_A2_satb; // "exagon.A2.satb"
+ case 'h': // 1 string to match.
+ return Intrinsic::hexagon_A2_sath; // "exagon.A2.sath"
+ }
+ break;
+ case 'u': // 1 string to match.
+ if (memcmp(NameR.data()+12, "bp", 2))
+ break;
+ return Intrinsic::hexagon_A2_subp; // "exagon.A2.subp"
+ case 'w': // 1 string to match.
+ if (memcmp(NameR.data()+12, "iz", 2))
+ break;
+ return Intrinsic::hexagon_A2_swiz; // "exagon.A2.swiz"
+ case 'x': // 3 strings to match.
+ if (NameR[12] != 't')
+ break;
+ switch (NameR[13]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::hexagon_A2_sxtb; // "exagon.A2.sxtb"
+ case 'h': // 1 string to match.
+ return Intrinsic::hexagon_A2_sxth; // "exagon.A2.sxth"
+ case 'w': // 1 string to match.
+ return Intrinsic::hexagon_A2_sxtw; // "exagon.A2.sxtw"
+ }
+ break;
+ }
+ break;
+ case 't': // 1 string to match.
+ if (memcmp(NameR.data()+11, "frp", 3))
+ break;
+ return Intrinsic::hexagon_A2_tfrp; // "exagon.A2.tfrp"
+ case 'x': // 1 string to match.
+ if (memcmp(NameR.data()+11, "orp", 3))
+ break;
+ return Intrinsic::hexagon_A2_xorp; // "exagon.A2.xorp"
+ case 'z': // 2 strings to match.
+ if (memcmp(NameR.data()+11, "xt", 2))
+ break;
+ switch (NameR[13]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::hexagon_A2_zxtb; // "exagon.A2.zxtb"
+ case 'h': // 1 string to match.
+ return Intrinsic::hexagon_A2_zxth; // "exagon.A2.zxth"
+ }
+ break;
+ }
+ break;
+ case '4': // 2 strings to match.
+ if (NameR[9] != '.')
+ break;
+ switch (NameR[10]) {
+ default: break;
+ case 'a': // 1 string to match.
+ if (memcmp(NameR.data()+11, "ndn", 3))
+ break;
+ return Intrinsic::hexagon_A4_andn; // "exagon.A4.andn"
+ case 'o': // 1 string to match.
+ if (memcmp(NameR.data()+11, "rnp", 3))
+ break;
+ return Intrinsic::hexagon_A4_ornp; // "exagon.A4.ornp"
+ }
+ break;
+ }
+ break;
+ case 'C': // 5 strings to match.
+ if (memcmp(NameR.data()+8, "2.", 2))
+ break;
+ switch (NameR[10]) {
+ default: break;
+ case 'a': // 3 strings to match.
+ switch (NameR[11]) {
+ default: break;
+ case 'l': // 1 string to match.
+ if (memcmp(NameR.data()+12, "l8", 2))
+ break;
+ return Intrinsic::hexagon_C2_all8; // "exagon.C2.all8"
+ case 'n': // 2 strings to match.
+ switch (NameR[12]) {
+ default: break;
+ case 'd': // 1 string to match.
+ if (NameR[13] != 'n')
+ break;
+ return Intrinsic::hexagon_C2_andn; // "exagon.C2.andn"
+ case 'y': // 1 string to match.
+ if (NameR[13] != '8')
+ break;
+ return Intrinsic::hexagon_C2_any8; // "exagon.C2.any8"
+ }
+ break;
+ }
+ break;
+ case 'm': // 1 string to match.
+ if (memcmp(NameR.data()+11, "ask", 3))
+ break;
+ return Intrinsic::hexagon_C2_mask; // "exagon.C2.mask"
+ case 'v': // 1 string to match.
+ if (memcmp(NameR.data()+11, "mux", 3))
+ break;
+ return Intrinsic::hexagon_C2_vmux; // "exagon.C2.vmux"
+ }
+ break;
+ case 'M': // 3 strings to match.
+ if (memcmp(NameR.data()+8, "2.", 2))
+ break;
+ switch (NameR[10]) {
+ default: break;
+ case 'a': // 1 string to match.
+ if (memcmp(NameR.data()+11, "cci", 3))
+ break;
+ return Intrinsic::hexagon_M2_acci; // "exagon.M2.acci"
+ case 'm': // 2 strings to match.
+ switch (NameR[11]) {
+ default: break;
+ case 'a': // 1 string to match.
+ if (memcmp(NameR.data()+12, "ci", 2))
+ break;
+ return Intrinsic::hexagon_M2_maci; // "exagon.M2.maci"
+ case 'p': // 1 string to match.
+ if (memcmp(NameR.data()+12, "yi", 2))
+ break;
+ return Intrinsic::hexagon_M2_mpyi; // "exagon.M2.mpyi"
+ }
+ break;
+ }
+ break;
+ case 'S': // 8 strings to match.
+ switch (NameR[8]) {
+ default: break;
+ case '2': // 7 strings to match.
+ if (NameR[9] != '.')
+ break;
+ switch (NameR[10]) {
+ default: break;
+ case 'b': // 1 string to match.
+ if (memcmp(NameR.data()+11, "rev", 3))
+ break;
+ return Intrinsic::hexagon_S2_brev; // "exagon.S2.brev"
+ case 'c': // 5 strings to match.
+ switch (NameR[11]) {
+ default: break;
+ case 'l': // 3 strings to match.
+ switch (NameR[12]) {
+ default: break;
+ case '0': // 1 string to match.
+ if (NameR[13] != 'p')
+ break;
+ return Intrinsic::hexagon_S2_cl0p; // "exagon.S2.cl0p"
+ case '1': // 1 string to match.
+ if (NameR[13] != 'p')
+ break;
+ return Intrinsic::hexagon_S2_cl1p; // "exagon.S2.cl1p"
+ case 'b': // 1 string to match.
+ if (NameR[13] != 'p')
+ break;
+ return Intrinsic::hexagon_S2_clbp; // "exagon.S2.clbp"
+ }
+ break;
+ case 't': // 2 strings to match.
+ switch (NameR[12]) {
+ default: break;
+ case '0': // 1 string to match.
+ if (NameR[13] != 'p')
+ break;
+ return Intrinsic::hexagon_S2_ct0p; // "exagon.S2.ct0p"
+ case '1': // 1 string to match.
+ if (NameR[13] != 'p')
+ break;
+ return Intrinsic::hexagon_S2_ct1p; // "exagon.S2.ct1p"
+ }
+ break;
+ }
+ break;
+ case 'l': // 1 string to match.
+ if (memcmp(NameR.data()+11, "fsp", 3))
+ break;
+ return Intrinsic::hexagon_S2_lfsp; // "exagon.S2.lfsp"
+ }
+ break;
+ case '4': // 1 string to match.
+ if (memcmp(NameR.data()+9, ".lsli", 5))
+ break;
+ return Intrinsic::hexagon_S4_lsli; // "exagon.S4.lsli"
+ }
+ break;
+ }
+ break;
+ case 15: // 58 strings to match.
+ if (memcmp(NameR.data()+0, "exagon.", 7))
+ break;
+ switch (NameR[7]) {
+ default: break;
+ case 'A': // 27 strings to match.
+ switch (NameR[8]) {
+ default: break;
+ case '2': // 26 strings to match.
+ if (NameR[9] != '.')
+ break;
+ switch (NameR[10]) {
+ default: break;
+ case 'a': // 2 strings to match.
+ switch (NameR[11]) {
+ default: break;
+ case 'd': // 1 string to match.
+ if (memcmp(NameR.data()+12, "dsp", 3))
+ break;
+ return Intrinsic::hexagon_A2_addsp; // "exagon.A2.addsp"
+ case 'n': // 1 string to match.
+ if (memcmp(NameR.data()+12, "dir", 3))
+ break;
+ return Intrinsic::hexagon_A2_andir; // "exagon.A2.andir"
+ }
+ break;
+ case 'm': // 2 strings to match.
+ switch (NameR[11]) {
+ default: break;
+ case 'a': // 1 string to match.
+ if (memcmp(NameR.data()+12, "xup", 3))
+ break;
+ return Intrinsic::hexagon_A2_maxup; // "exagon.A2.maxup"
+ case 'i': // 1 string to match.
+ if (memcmp(NameR.data()+12, "nup", 3))
+ break;
+ return Intrinsic::hexagon_A2_minup; // "exagon.A2.minup"
+ }
+ break;
+ case 's': // 3 strings to match.
+ switch (NameR[11]) {
+ default: break;
+ case 'a': // 2 strings to match.
+ if (memcmp(NameR.data()+12, "tu", 2))
+ break;
+ switch (NameR[14]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::hexagon_A2_satub; // "exagon.A2.satub"
+ case 'h': // 1 string to match.
+ return Intrinsic::hexagon_A2_satuh; // "exagon.A2.satuh"
+ }
+ break;
+ case 'u': // 1 string to match.
+ if (memcmp(NameR.data()+12, "bri", 3))
+ break;
+ return Intrinsic::hexagon_A2_subri; // "exagon.A2.subri"
+ }
+ break;
+ case 't': // 4 strings to match.
+ if (memcmp(NameR.data()+11, "fr", 2))
+ break;
+ switch (NameR[13]) {
+ default: break;
+ case 'i': // 2 strings to match.
+ switch (NameR[14]) {
+ default: break;
+ case 'h': // 1 string to match.
+ return Intrinsic::hexagon_A2_tfrih; // "exagon.A2.tfrih"
+ case 'l': // 1 string to match.
+ return Intrinsic::hexagon_A2_tfril; // "exagon.A2.tfril"
+ }
+ break;
+ case 'p': // 1 string to match.
+ if (NameR[14] != 'i')
+ break;
+ return Intrinsic::hexagon_A2_tfrpi; // "exagon.A2.tfrpi"
+ case 's': // 1 string to match.
+ if (NameR[14] != 'i')
+ break;
+ return Intrinsic::hexagon_A2_tfrsi; // "exagon.A2.tfrsi"
+ }
+ break;
+ case 'v': // 15 strings to match.
+ switch (NameR[11]) {
+ default: break;
+ case 'a': // 6 strings to match.
+ switch (NameR[12]) {
+ default: break;
+ case 'b': // 2 strings to match.
+ if (NameR[13] != 's')
+ break;
+ switch (NameR[14]) {
+ default: break;
+ case 'h': // 1 string to match.
+ return Intrinsic::hexagon_A2_vabsh; // "exagon.A2.vabsh"
+ case 'w': // 1 string to match.
+ return Intrinsic::hexagon_A2_vabsw; // "exagon.A2.vabsw"
+ }
+ break;
+ case 'd': // 2 strings to match.
+ if (NameR[13] != 'd')
+ break;
+ switch (NameR[14]) {
+ default: break;
+ case 'h': // 1 string to match.
+ return Intrinsic::hexagon_A2_vaddh; // "exagon.A2.vaddh"
+ case 'w': // 1 string to match.
+ return Intrinsic::hexagon_A2_vaddw; // "exagon.A2.vaddw"
+ }
+ break;
+ case 'v': // 2 strings to match.
+ if (NameR[13] != 'g')
+ break;
+ switch (NameR[14]) {
+ default: break;
+ case 'h': // 1 string to match.
+ return Intrinsic::hexagon_A2_vavgh; // "exagon.A2.vavgh"
+ case 'w': // 1 string to match.
+ return Intrinsic::hexagon_A2_vavgw; // "exagon.A2.vavgw"
+ }
+ break;
+ }
+ break;
+ case 'c': // 1 string to match.
+ if (memcmp(NameR.data()+12, "onj", 3))
+ break;
+ return Intrinsic::hexagon_A2_vconj; // "exagon.A2.vconj"
+ case 'm': // 6 strings to match.
+ switch (NameR[12]) {
+ default: break;
+ case 'a': // 3 strings to match.
+ if (NameR[13] != 'x')
+ break;
+ switch (NameR[14]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::hexagon_A2_vmaxb; // "exagon.A2.vmaxb"
+ case 'h': // 1 string to match.
+ return Intrinsic::hexagon_A2_vmaxh; // "exagon.A2.vmaxh"
+ case 'w': // 1 string to match.
+ return Intrinsic::hexagon_A2_vmaxw; // "exagon.A2.vmaxw"
+ }
+ break;
+ case 'i': // 3 strings to match.
+ if (NameR[13] != 'n')
+ break;
+ switch (NameR[14]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::hexagon_A2_vminb; // "exagon.A2.vminb"
+ case 'h': // 1 string to match.
+ return Intrinsic::hexagon_A2_vminh; // "exagon.A2.vminh"
+ case 'w': // 1 string to match.
+ return Intrinsic::hexagon_A2_vminw; // "exagon.A2.vminw"
+ }
+ break;
+ }
+ break;
+ case 's': // 2 strings to match.
+ if (memcmp(NameR.data()+12, "ub", 2))
+ break;
+ switch (NameR[14]) {
+ default: break;
+ case 'h': // 1 string to match.
+ return Intrinsic::hexagon_A2_vsubh; // "exagon.A2.vsubh"
+ case 'w': // 1 string to match.
+ return Intrinsic::hexagon_A2_vsubw; // "exagon.A2.vsubw"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case '4': // 1 string to match.
+ if (memcmp(NameR.data()+9, ".andnp", 6))
+ break;
+ return Intrinsic::hexagon_A4_andnp; // "exagon.A4.andnp"
+ }
+ break;
+ case 'C': // 9 strings to match.
+ switch (NameR[8]) {
+ default: break;
+ case '2': // 8 strings to match.
+ if (NameR[9] != '.')
+ break;
+ switch (NameR[10]) {
+ default: break;
+ case 'c': // 3 strings to match.
+ if (memcmp(NameR.data()+11, "mp", 2))
+ break;
+ switch (NameR[13]) {
+ default: break;
+ case 'e': // 1 string to match.
+ if (NameR[14] != 'q')
+ break;
+ return Intrinsic::hexagon_C2_cmpeq; // "exagon.C2.cmpeq"
+ case 'g': // 1 string to match.
+ if (NameR[14] != 't')
+ break;
+ return Intrinsic::hexagon_C2_cmpgt; // "exagon.C2.cmpgt"
+ case 'l': // 1 string to match.
+ if (NameR[14] != 't')
+ break;
+ return Intrinsic::hexagon_C2_cmplt; // "exagon.C2.cmplt"
+ }
+ break;
+ case 'm': // 3 strings to match.
+ if (memcmp(NameR.data()+11, "ux", 2))
+ break;
+ switch (NameR[13]) {
+ default: break;
+ case 'i': // 2 strings to match.
+ switch (NameR[14]) {
+ default: break;
+ case 'i': // 1 string to match.
+ return Intrinsic::hexagon_C2_muxii; // "exagon.C2.muxii"
+ case 'r': // 1 string to match.
+ return Intrinsic::hexagon_C2_muxir; // "exagon.C2.muxir"
+ }
+ break;
+ case 'r': // 1 string to match.
+ if (NameR[14] != 'i')
+ break;
+ return Intrinsic::hexagon_C2_muxri; // "exagon.C2.muxri"
+ }
+ break;
+ case 't': // 2 strings to match.
+ if (memcmp(NameR.data()+11, "fr", 2))
+ break;
+ switch (NameR[13]) {
+ default: break;
+ case 'p': // 1 string to match.
+ if (NameR[14] != 'r')
+ break;
+ return Intrinsic::hexagon_C2_tfrpr; // "exagon.C2.tfrpr"
+ case 'r': // 1 string to match.
+ if (NameR[14] != 'p')
+ break;
+ return Intrinsic::hexagon_C2_tfrrp; // "exagon.C2.tfrrp"
+ }
+ break;
+ }
+ break;
+ case '4': // 1 string to match.
+ if (memcmp(NameR.data()+9, ".or.or", 6))
+ break;
+ return Intrinsic::hexagon_C4_or_or; // "exagon.C4.or.or"
+ }
+ break;
+ case 'F': // 14 strings to match.
+ if (memcmp(NameR.data()+8, "2.", 2))
+ break;
+ switch (NameR[10]) {
+ default: break;
+ case 'd': // 7 strings to match.
+ if (NameR[11] != 'f')
+ break;
+ switch (NameR[12]) {
+ default: break;
+ case 'a': // 1 string to match.
+ if (memcmp(NameR.data()+13, "dd", 2))
+ break;
+ return Intrinsic::hexagon_F2_dfadd; // "exagon.F2.dfadd"
+ case 'f': // 2 strings to match.
+ if (NameR[13] != 'm')
+ break;
+ switch (NameR[14]) {
+ default: break;
+ case 'a': // 1 string to match.
+ return Intrinsic::hexagon_F2_dffma; // "exagon.F2.dffma"
+ case 's': // 1 string to match.
+ return Intrinsic::hexagon_F2_dffms; // "exagon.F2.dffms"
+ }
+ break;
+ case 'm': // 3 strings to match.
+ switch (NameR[13]) {
+ default: break;
+ case 'a': // 1 string to match.
+ if (NameR[14] != 'x')
+ break;
+ return Intrinsic::hexagon_F2_dfmax; // "exagon.F2.dfmax"
+ case 'i': // 1 string to match.
+ if (NameR[14] != 'n')
+ break;
+ return Intrinsic::hexagon_F2_dfmin; // "exagon.F2.dfmin"
+ case 'p': // 1 string to match.
+ if (NameR[14] != 'y')
+ break;
+ return Intrinsic::hexagon_F2_dfmpy; // "exagon.F2.dfmpy"
+ }
+ break;
+ case 's': // 1 string to match.
+ if (memcmp(NameR.data()+13, "ub", 2))
+ break;
+ return Intrinsic::hexagon_F2_dfsub; // "exagon.F2.dfsub"
+ }
+ break;
+ case 's': // 7 strings to match.
+ if (NameR[11] != 'f')
+ break;
+ switch (NameR[12]) {
+ default: break;
+ case 'a': // 1 string to match.
+ if (memcmp(NameR.data()+13, "dd", 2))
+ break;
+ return Intrinsic::hexagon_F2_sfadd; // "exagon.F2.sfadd"
+ case 'f': // 2 strings to match.
+ if (NameR[13] != 'm')
+ break;
+ switch (NameR[14]) {
+ default: break;
+ case 'a': // 1 string to match.
+ return Intrinsic::hexagon_F2_sffma; // "exagon.F2.sffma"
+ case 's': // 1 string to match.
+ return Intrinsic::hexagon_F2_sffms; // "exagon.F2.sffms"
+ }
+ break;
+ case 'm': // 3 strings to match.
+ switch (NameR[13]) {
+ default: break;
+ case 'a': // 1 string to match.
+ if (NameR[14] != 'x')
+ break;
+ return Intrinsic::hexagon_F2_sfmax; // "exagon.F2.sfmax"
+ case 'i': // 1 string to match.
+ if (NameR[14] != 'n')
+ break;
+ return Intrinsic::hexagon_F2_sfmin; // "exagon.F2.sfmin"
+ case 'p': // 1 string to match.
+ if (NameR[14] != 'y')
+ break;
+ return Intrinsic::hexagon_F2_sfmpy; // "exagon.F2.sfmpy"
+ }
+ break;
+ case 's': // 1 string to match.
+ if (memcmp(NameR.data()+13, "ub", 2))
+ break;
+ return Intrinsic::hexagon_F2_sfsub; // "exagon.F2.sfsub"
+ }
+ break;
+ }
+ break;
+ case 'M': // 6 strings to match.
+ switch (NameR[8]) {
+ default: break;
+ case '2': // 4 strings to match.
+ if (NameR[9] != '.')
+ break;
+ switch (NameR[10]) {
+ default: break;
+ case 'a': // 1 string to match.
+ if (memcmp(NameR.data()+11, "ccii", 4))
+ break;
+ return Intrinsic::hexagon_M2_accii; // "exagon.M2.accii"
+ case 'm': // 1 string to match.
+ if (memcmp(NameR.data()+11, "pyui", 4))
+ break;
+ return Intrinsic::hexagon_M2_mpyui; // "exagon.M2.mpyui"
+ case 'n': // 1 string to match.
+ if (memcmp(NameR.data()+11, "acci", 4))
+ break;
+ return Intrinsic::hexagon_M2_nacci; // "exagon.M2.nacci"
+ case 'v': // 1 string to match.
+ if (memcmp(NameR.data()+11, "mac2", 4))
+ break;
+ return Intrinsic::hexagon_M2_vmac2; // "exagon.M2.vmac2"
+ }
+ break;
+ case '4': // 2 strings to match.
+ if (NameR[9] != '.')
+ break;
+ switch (NameR[10]) {
+ default: break;
+ case 'o': // 1 string to match.
+ if (memcmp(NameR.data()+11, "r.or", 4))
+ break;
+ return Intrinsic::hexagon_M4_or_or; // "exagon.M4.or.or"
+ case 'p': // 1 string to match.
+ if (memcmp(NameR.data()+11, "mpyw", 4))
+ break;
+ return Intrinsic::hexagon_M4_pmpyw; // "exagon.M4.pmpyw"
+ }
+ break;
+ }
+ break;
+ case 'S': // 1 string to match.
+ if (memcmp(NameR.data()+8, "2.brevp", 7))
+ break;
+ return Intrinsic::hexagon_S2_brevp; // "exagon.S2.brevp"
+ case 'c': // 1 string to match.
+ if (memcmp(NameR.data()+8, "irc.ldd", 7))
+ break;
+ return Intrinsic::hexagon_circ_ldd; // "exagon.circ.ldd"
+ }
+ break;
+ case 16: // 70 strings to match.
+ if (memcmp(NameR.data()+0, "exagon.", 7))
+ break;
+ switch (NameR[7]) {
+ default: break;
+ case 'A': // 35 strings to match.
+ switch (NameR[8]) {
+ default: break;
+ case '2': // 26 strings to match.
+ if (NameR[9] != '.')
+ break;
+ switch (NameR[10]) {
+ default: break;
+ case 'a': // 2 strings to match.
+ switch (NameR[11]) {
+ default: break;
+ case 'b': // 1 string to match.
+ if (memcmp(NameR.data()+12, "ssat", 4))
+ break;
+ return Intrinsic::hexagon_A2_abssat; // "exagon.A2.abssat"
+ case 'd': // 1 string to match.
+ if (memcmp(NameR.data()+12, "dsat", 4))
+ break;
+ return Intrinsic::hexagon_A2_addsat; // "exagon.A2.addsat"
+ }
+ break;
+ case 'n': // 1 string to match.
+ if (memcmp(NameR.data()+11, "egsat", 5))
+ break;
+ return Intrinsic::hexagon_A2_negsat; // "exagon.A2.negsat"
+ case 's': // 4 strings to match.
+ switch (NameR[11]) {
+ default: break;
+ case 'u': // 1 string to match.
+ if (memcmp(NameR.data()+12, "bsat", 4))
+ break;
+ return Intrinsic::hexagon_A2_subsat; // "exagon.A2.subsat"
+ case 'v': // 3 strings to match.
+ switch (NameR[12]) {
+ default: break;
+ case 'a': // 2 strings to match.
+ switch (NameR[13]) {
+ default: break;
+ case 'd': // 1 string to match.
+ if (memcmp(NameR.data()+14, "dh", 2))
+ break;
+ return Intrinsic::hexagon_A2_svaddh; // "exagon.A2.svaddh"
+ case 'v': // 1 string to match.
+ if (memcmp(NameR.data()+14, "gh", 2))
+ break;
+ return Intrinsic::hexagon_A2_svavgh; // "exagon.A2.svavgh"
+ }
+ break;
+ case 's': // 1 string to match.
+ if (memcmp(NameR.data()+13, "ubh", 3))
+ break;
+ return Intrinsic::hexagon_A2_svsubh; // "exagon.A2.svsubh"
+ }
+ break;
+ }
+ break;
+ case 'v': // 19 strings to match.
+ switch (NameR[11]) {
+ default: break;
+ case 'a': // 8 strings to match.
+ switch (NameR[12]) {
+ default: break;
+ case 'd': // 3 strings to match.
+ if (NameR[13] != 'd')
+ break;
+ switch (NameR[14]) {
+ default: break;
+ case 'h': // 1 string to match.
+ if (NameR[15] != 's')
+ break;
+ return Intrinsic::hexagon_A2_vaddhs; // "exagon.A2.vaddhs"
+ case 'u': // 1 string to match.
+ if (NameR[15] != 'b')
+ break;
+ return Intrinsic::hexagon_A2_vaddub; // "exagon.A2.vaddub"
+ case 'w': // 1 string to match.
+ if (NameR[15] != 's')
+ break;
+ return Intrinsic::hexagon_A2_vaddws; // "exagon.A2.vaddws"
+ }
+ break;
+ case 'v': // 5 strings to match.
+ if (NameR[13] != 'g')
+ break;
+ switch (NameR[14]) {
+ default: break;
+ case 'h': // 1 string to match.
+ if (NameR[15] != 'r')
+ break;
+ return Intrinsic::hexagon_A2_vavghr; // "exagon.A2.vavghr"
+ case 'u': // 3 strings to match.
+ switch (NameR[15]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::hexagon_A2_vavgub; // "exagon.A2.vavgub"
+ case 'h': // 1 string to match.
+ return Intrinsic::hexagon_A2_vavguh; // "exagon.A2.vavguh"
+ case 'w': // 1 string to match.
+ return Intrinsic::hexagon_A2_vavguw; // "exagon.A2.vavguw"
+ }
+ break;
+ case 'w': // 1 string to match.
+ if (NameR[15] != 'r')
+ break;
+ return Intrinsic::hexagon_A2_vavgwr; // "exagon.A2.vavgwr"
+ }
+ break;
+ }
+ break;
+ case 'm': // 6 strings to match.
+ switch (NameR[12]) {
+ default: break;
+ case 'a': // 3 strings to match.
+ if (memcmp(NameR.data()+13, "xu", 2))
+ break;
+ switch (NameR[15]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::hexagon_A2_vmaxub; // "exagon.A2.vmaxub"
+ case 'h': // 1 string to match.
+ return Intrinsic::hexagon_A2_vmaxuh; // "exagon.A2.vmaxuh"
+ case 'w': // 1 string to match.
+ return Intrinsic::hexagon_A2_vmaxuw; // "exagon.A2.vmaxuw"
+ }
+ break;
+ case 'i': // 3 strings to match.
+ if (memcmp(NameR.data()+13, "nu", 2))
+ break;
+ switch (NameR[15]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::hexagon_A2_vminub; // "exagon.A2.vminub"
+ case 'h': // 1 string to match.
+ return Intrinsic::hexagon_A2_vminuh; // "exagon.A2.vminuh"
+ case 'w': // 1 string to match.
+ return Intrinsic::hexagon_A2_vminuw; // "exagon.A2.vminuw"
+ }
+ break;
+ }
+ break;
+ case 'n': // 2 strings to match.
+ if (memcmp(NameR.data()+12, "avg", 3))
+ break;
+ switch (NameR[15]) {
+ default: break;
+ case 'h': // 1 string to match.
+ return Intrinsic::hexagon_A2_vnavgh; // "exagon.A2.vnavgh"
+ case 'w': // 1 string to match.
+ return Intrinsic::hexagon_A2_vnavgw; // "exagon.A2.vnavgw"
+ }
+ break;
+ case 's': // 3 strings to match.
+ if (memcmp(NameR.data()+12, "ub", 2))
+ break;
+ switch (NameR[14]) {
+ default: break;
+ case 'h': // 1 string to match.
+ if (NameR[15] != 's')
+ break;
+ return Intrinsic::hexagon_A2_vsubhs; // "exagon.A2.vsubhs"
+ case 'u': // 1 string to match.
+ if (NameR[15] != 'b')
+ break;
+ return Intrinsic::hexagon_A2_vsubub; // "exagon.A2.vsubub"
+ case 'w': // 1 string to match.
+ if (NameR[15] != 's')
+ break;
+ return Intrinsic::hexagon_A2_vsubws; // "exagon.A2.vsubws"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case '4': // 9 strings to match.
+ if (NameR[9] != '.')
+ break;
+ switch (NameR[10]) {
+ default: break;
+ case 'c': // 4 strings to match.
+ if (memcmp(NameR.data()+11, "mp", 2))
+ break;
+ switch (NameR[13]) {
+ default: break;
+ case 'b': // 2 strings to match.
+ switch (NameR[14]) {
+ default: break;
+ case 'e': // 1 string to match.
+ if (NameR[15] != 'q')
+ break;
+ return Intrinsic::hexagon_A4_cmpbeq; // "exagon.A4.cmpbeq"
+ case 'g': // 1 string to match.
+ if (NameR[15] != 't')
+ break;
+ return Intrinsic::hexagon_A4_cmpbgt; // "exagon.A4.cmpbgt"
+ }
+ break;
+ case 'h': // 2 strings to match.
+ switch (NameR[14]) {
+ default: break;
+ case 'e': // 1 string to match.
+ if (NameR[15] != 'q')
+ break;
+ return Intrinsic::hexagon_A4_cmpheq; // "exagon.A4.cmpheq"
+ case 'g': // 1 string to match.
+ if (NameR[15] != 't')
+ break;
+ return Intrinsic::hexagon_A4_cmphgt; // "exagon.A4.cmphgt"
+ }
+ break;
+ }
+ break;
+ case 'r': // 1 string to match.
+ if (memcmp(NameR.data()+11, "cmpeq", 5))
+ break;
+ return Intrinsic::hexagon_A4_rcmpeq; // "exagon.A4.rcmpeq"
+ case 'v': // 4 strings to match.
+ if (memcmp(NameR.data()+11, "rm", 2))
+ break;
+ switch (NameR[13]) {
+ default: break;
+ case 'a': // 2 strings to match.
+ if (NameR[14] != 'x')
+ break;
+ switch (NameR[15]) {
+ default: break;
+ case 'h': // 1 string to match.
+ return Intrinsic::hexagon_A4_vrmaxh; // "exagon.A4.vrmaxh"
+ case 'w': // 1 string to match.
+ return Intrinsic::hexagon_A4_vrmaxw; // "exagon.A4.vrmaxw"
+ }
+ break;
+ case 'i': // 2 strings to match.
+ if (NameR[14] != 'n')
+ break;
+ switch (NameR[15]) {
+ default: break;
+ case 'h': // 1 string to match.
+ return Intrinsic::hexagon_A4_vrminh; // "exagon.A4.vrminh"
+ case 'w': // 1 string to match.
+ return Intrinsic::hexagon_A4_vrminw; // "exagon.A4.vrminw"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 'C': // 12 strings to match.
+ switch (NameR[8]) {
+ default: break;
+ case '2': // 7 strings to match.
+ if (memcmp(NameR.data()+9, ".cmp", 4))
+ break;
+ switch (NameR[13]) {
+ default: break;
+ case 'e': // 2 strings to match.
+ if (NameR[14] != 'q')
+ break;
+ switch (NameR[15]) {
+ default: break;
+ case 'i': // 1 string to match.
+ return Intrinsic::hexagon_C2_cmpeqi; // "exagon.C2.cmpeqi"
+ case 'p': // 1 string to match.
+ return Intrinsic::hexagon_C2_cmpeqp; // "exagon.C2.cmpeqp"
+ }
+ break;
+ case 'g': // 4 strings to match.
+ switch (NameR[14]) {
+ default: break;
+ case 'e': // 1 string to match.
+ if (NameR[15] != 'i')
+ break;
+ return Intrinsic::hexagon_C2_cmpgei; // "exagon.C2.cmpgei"
+ case 't': // 3 strings to match.
+ switch (NameR[15]) {
+ default: break;
+ case 'i': // 1 string to match.
+ return Intrinsic::hexagon_C2_cmpgti; // "exagon.C2.cmpgti"
+ case 'p': // 1 string to match.
+ return Intrinsic::hexagon_C2_cmpgtp; // "exagon.C2.cmpgtp"
+ case 'u': // 1 string to match.
+ return Intrinsic::hexagon_C2_cmpgtu; // "exagon.C2.cmpgtu"
+ }
+ break;
+ }
+ break;
+ case 'l': // 1 string to match.
+ if (memcmp(NameR.data()+14, "tu", 2))
+ break;
+ return Intrinsic::hexagon_C2_cmpltu; // "exagon.C2.cmpltu"
+ }
+ break;
+ case '4': // 5 strings to match.
+ if (NameR[9] != '.')
+ break;
+ switch (NameR[10]) {
+ default: break;
+ case 'a': // 1 string to match.
+ if (memcmp(NameR.data()+11, "nd.or", 5))
+ break;
+ return Intrinsic::hexagon_C4_and_or; // "exagon.C4.and.or"
+ case 'c': // 2 strings to match.
+ if (memcmp(NameR.data()+11, "mp", 2))
+ break;
+ switch (NameR[13]) {
+ default: break;
+ case 'l': // 1 string to match.
+ if (memcmp(NameR.data()+14, "te", 2))
+ break;
+ return Intrinsic::hexagon_C4_cmplte; // "exagon.C4.cmplte"
+ case 'n': // 1 string to match.
+ if (memcmp(NameR.data()+14, "eq", 2))
+ break;
+ return Intrinsic::hexagon_C4_cmpneq; // "exagon.C4.cmpneq"
+ }
+ break;
+ case 'o': // 2 strings to match.
+ if (memcmp(NameR.data()+11, "r.", 2))
+ break;
+ switch (NameR[13]) {
+ default: break;
+ case 'a': // 1 string to match.
+ if (memcmp(NameR.data()+14, "nd", 2))
+ break;
+ return Intrinsic::hexagon_C4_or_and; // "exagon.C4.or.and"
+ case 'o': // 1 string to match.
+ if (memcmp(NameR.data()+14, "rn", 2))
+ break;
+ return Intrinsic::hexagon_C4_or_orn; // "exagon.C4.or.orn"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 'M': // 12 strings to match.
+ switch (NameR[8]) {
+ default: break;
+ case '2': // 7 strings to match.
+ if (NameR[9] != '.')
+ break;
+ switch (NameR[10]) {
+ default: break;
+ case 'm': // 4 strings to match.
+ switch (NameR[11]) {
+ default: break;
+ case 'a': // 2 strings to match.
+ if (memcmp(NameR.data()+12, "csi", 3))
+ break;
+ switch (NameR[15]) {
+ default: break;
+ case 'n': // 1 string to match.
+ return Intrinsic::hexagon_M2_macsin; // "exagon.M2.macsin"
+ case 'p': // 1 string to match.
+ return Intrinsic::hexagon_M2_macsip; // "exagon.M2.macsip"
+ }
+ break;
+ case 'p': // 2 strings to match.
+ if (NameR[12] != 'y')
+ break;
+ switch (NameR[13]) {
+ default: break;
+ case '.': // 1 string to match.
+ if (memcmp(NameR.data()+14, "up", 2))
+ break;
+ return Intrinsic::hexagon_M2_mpy_up; // "exagon.M2.mpy.up"
+ case 's': // 1 string to match.
+ if (memcmp(NameR.data()+14, "mi", 2))
+ break;
+ return Intrinsic::hexagon_M2_mpysmi; // "exagon.M2.mpysmi"
+ }
+ break;
+ }
+ break;
+ case 'n': // 1 string to match.
+ if (memcmp(NameR.data()+11, "accii", 5))
+ break;
+ return Intrinsic::hexagon_M2_naccii; // "exagon.M2.naccii"
+ case 's': // 1 string to match.
+ if (memcmp(NameR.data()+11, "ubacc", 5))
+ break;
+ return Intrinsic::hexagon_M2_subacc; // "exagon.M2.subacc"
+ case 'v': // 1 string to match.
+ if (memcmp(NameR.data()+11, "raddh", 5))
+ break;
+ return Intrinsic::hexagon_M2_vraddh; // "exagon.M2.vraddh"
+ }
+ break;
+ case '4': // 5 strings to match.
+ if (NameR[9] != '.')
+ break;
+ switch (NameR[10]) {
+ default: break;
+ case 'a': // 1 string to match.
+ if (memcmp(NameR.data()+11, "nd.or", 5))
+ break;
+ return Intrinsic::hexagon_M4_and_or; // "exagon.M4.and.or"
+ case 'o': // 2 strings to match.
+ if (memcmp(NameR.data()+11, "r.", 2))
+ break;
+ switch (NameR[13]) {
+ default: break;
+ case 'a': // 1 string to match.
+ if (memcmp(NameR.data()+14, "nd", 2))
+ break;
+ return Intrinsic::hexagon_M4_or_and; // "exagon.M4.or.and"
+ case 'x': // 1 string to match.
+ if (memcmp(NameR.data()+14, "or", 2))
+ break;
+ return Intrinsic::hexagon_M4_or_xor; // "exagon.M4.or.xor"
+ }
+ break;
+ case 'v': // 1 string to match.
+ if (memcmp(NameR.data()+11, "pmpyh", 5))
+ break;
+ return Intrinsic::hexagon_M4_vpmpyh; // "exagon.M4.vpmpyh"
+ case 'x': // 1 string to match.
+ if (memcmp(NameR.data()+11, "or.or", 5))
+ break;
+ return Intrinsic::hexagon_M4_xor_or; // "exagon.M4.xor.or"
+ }
+ break;
+ }
+ break;
+ case 'S': // 11 strings to match.
+ switch (NameR[8]) {
+ default: break;
+ case '2': // 9 strings to match.
+ if (NameR[9] != '.')
+ break;
+ switch (NameR[10]) {
+ default: break;
+ case 'i': // 1 string to match.
+ if (memcmp(NameR.data()+11, "nsert", 5))
+ break;
+ return Intrinsic::hexagon_S2_insert; // "exagon.S2.insert"
+ case 'p': // 1 string to match.
+ if (memcmp(NameR.data()+11, "ackhl", 5))
+ break;
+ return Intrinsic::hexagon_S2_packhl; // "exagon.S2.packhl"
+ case 'v': // 7 strings to match.
+ switch (NameR[11]) {
+ default: break;
+ case 'c': // 1 string to match.
+ if (memcmp(NameR.data()+12, "negh", 4))
+ break;
+ return Intrinsic::hexagon_S2_vcnegh; // "exagon.S2.vcnegh"
+ case 's': // 4 strings to match.
+ switch (NameR[12]) {
+ default: break;
+ case 'a': // 2 strings to match.
+ if (NameR[13] != 't')
+ break;
+ switch (NameR[14]) {
+ default: break;
+ case 'h': // 1 string to match.
+ if (NameR[15] != 'b')
+ break;
+ return Intrinsic::hexagon_S2_vsathb; // "exagon.S2.vsathb"
+ case 'w': // 1 string to match.
+ if (NameR[15] != 'h')
+ break;
+ return Intrinsic::hexagon_S2_vsatwh; // "exagon.S2.vsatwh"
+ }
+ break;
+ case 'x': // 2 strings to match.
+ if (NameR[13] != 't')
+ break;
+ switch (NameR[14]) {
+ default: break;
+ case 'b': // 1 string to match.
+ if (NameR[15] != 'h')
+ break;
+ return Intrinsic::hexagon_S2_vsxtbh; // "exagon.S2.vsxtbh"
+ case 'h': // 1 string to match.
+ if (NameR[15] != 'w')
+ break;
+ return Intrinsic::hexagon_S2_vsxthw; // "exagon.S2.vsxthw"
+ }
+ break;
+ }
+ break;
+ case 'z': // 2 strings to match.
+ if (memcmp(NameR.data()+12, "xt", 2))
+ break;
+ switch (NameR[14]) {
+ default: break;
+ case 'b': // 1 string to match.
+ if (NameR[15] != 'h')
+ break;
+ return Intrinsic::hexagon_S2_vzxtbh; // "exagon.S2.vzxtbh"
+ case 'h': // 1 string to match.
+ if (NameR[15] != 'w')
+ break;
+ return Intrinsic::hexagon_S2_vzxthw; // "exagon.S2.vzxthw"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case '4': // 2 strings to match.
+ if (NameR[9] != '.')
+ break;
+ switch (NameR[10]) {
+ default: break;
+ case 'o': // 1 string to match.
+ if (memcmp(NameR.data()+11, "r.ori", 5))
+ break;
+ return Intrinsic::hexagon_S4_or_ori; // "exagon.S4.or.ori"
+ case 'p': // 1 string to match.
+ if (memcmp(NameR.data()+11, "arity", 5))
+ break;
+ return Intrinsic::hexagon_S4_parity; // "exagon.S4.parity"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 17: // 103 strings to match.
+ if (memcmp(NameR.data()+0, "exagon.", 7))
+ break;
+ switch (NameR[7]) {
+ default: break;
+ case 'A': // 36 strings to match.
+ switch (NameR[8]) {
+ default: break;
+ case '2': // 23 strings to match.
+ if (NameR[9] != '.')
+ break;
+ switch (NameR[10]) {
+ default: break;
+ case 'a': // 1 string to match.
+ if (memcmp(NameR.data()+11, "ddpsat", 6))
+ break;
+ return Intrinsic::hexagon_A2_addpsat; // "exagon.A2.addpsat"
+ case 's': // 4 strings to match.
+ if (NameR[11] != 'v')
+ break;
+ switch (NameR[12]) {
+ default: break;
+ case 'a': // 2 strings to match.
+ switch (NameR[13]) {
+ default: break;
+ case 'd': // 1 string to match.
+ if (memcmp(NameR.data()+14, "dhs", 3))
+ break;
+ return Intrinsic::hexagon_A2_svaddhs; // "exagon.A2.svaddhs"
+ case 'v': // 1 string to match.
+ if (memcmp(NameR.data()+14, "ghs", 3))
+ break;
+ return Intrinsic::hexagon_A2_svavghs; // "exagon.A2.svavghs"
+ }
+ break;
+ case 'n': // 1 string to match.
+ if (memcmp(NameR.data()+13, "avgh", 4))
+ break;
+ return Intrinsic::hexagon_A2_svnavgh; // "exagon.A2.svnavgh"
+ case 's': // 1 string to match.
+ if (memcmp(NameR.data()+13, "ubhs", 4))
+ break;
+ return Intrinsic::hexagon_A2_svsubhs; // "exagon.A2.svsubhs"
+ }
+ break;
+ case 'v': // 18 strings to match.
+ switch (NameR[11]) {
+ default: break;
+ case 'a': // 7 strings to match.
+ switch (NameR[12]) {
+ default: break;
+ case 'd': // 2 strings to match.
+ if (memcmp(NameR.data()+13, "du", 2))
+ break;
+ switch (NameR[15]) {
+ default: break;
+ case 'b': // 1 string to match.
+ if (NameR[16] != 's')
+ break;
+ return Intrinsic::hexagon_A2_vaddubs; // "exagon.A2.vaddubs"
+ case 'h': // 1 string to match.
+ if (NameR[16] != 's')
+ break;
+ return Intrinsic::hexagon_A2_vadduhs; // "exagon.A2.vadduhs"
+ }
+ break;
+ case 'v': // 5 strings to match.
+ if (NameR[13] != 'g')
+ break;
+ switch (NameR[14]) {
+ default: break;
+ case 'h': // 1 string to match.
+ if (memcmp(NameR.data()+15, "cr", 2))
+ break;
+ return Intrinsic::hexagon_A2_vavghcr; // "exagon.A2.vavghcr"
+ case 'u': // 3 strings to match.
+ switch (NameR[15]) {
+ default: break;
+ case 'b': // 1 string to match.
+ if (NameR[16] != 'r')
+ break;
+ return Intrinsic::hexagon_A2_vavgubr; // "exagon.A2.vavgubr"
+ case 'h': // 1 string to match.
+ if (NameR[16] != 'r')
+ break;
+ return Intrinsic::hexagon_A2_vavguhr; // "exagon.A2.vavguhr"
+ case 'w': // 1 string to match.
+ if (NameR[16] != 'r')
+ break;
+ return Intrinsic::hexagon_A2_vavguwr; // "exagon.A2.vavguwr"
+ }
+ break;
+ case 'w': // 1 string to match.
+ if (memcmp(NameR.data()+15, "cr", 2))
+ break;
+ return Intrinsic::hexagon_A2_vavgwcr; // "exagon.A2.vavgwcr"
+ }
+ break;
+ }
+ break;
+ case 'c': // 5 strings to match.
+ if (memcmp(NameR.data()+12, "mp", 2))
+ break;
+ switch (NameR[14]) {
+ default: break;
+ case 'b': // 1 string to match.
+ if (memcmp(NameR.data()+15, "eq", 2))
+ break;
+ return Intrinsic::hexagon_A2_vcmpbeq; // "exagon.A2.vcmpbeq"
+ case 'h': // 2 strings to match.
+ switch (NameR[15]) {
+ default: break;
+ case 'e': // 1 string to match.
+ if (NameR[16] != 'q')
+ break;
+ return Intrinsic::hexagon_A2_vcmpheq; // "exagon.A2.vcmpheq"
+ case 'g': // 1 string to match.
+ if (NameR[16] != 't')
+ break;
+ return Intrinsic::hexagon_A2_vcmphgt; // "exagon.A2.vcmphgt"
+ }
+ break;
+ case 'w': // 2 strings to match.
+ switch (NameR[15]) {
+ default: break;
+ case 'e': // 1 string to match.
+ if (NameR[16] != 'q')
+ break;
+ return Intrinsic::hexagon_A2_vcmpweq; // "exagon.A2.vcmpweq"
+ case 'g': // 1 string to match.
+ if (NameR[16] != 't')
+ break;
+ return Intrinsic::hexagon_A2_vcmpwgt; // "exagon.A2.vcmpwgt"
+ }
+ break;
+ }
+ break;
+ case 'n': // 2 strings to match.
+ if (memcmp(NameR.data()+12, "avg", 3))
+ break;
+ switch (NameR[15]) {
+ default: break;
+ case 'h': // 1 string to match.
+ if (NameR[16] != 'r')
+ break;
+ return Intrinsic::hexagon_A2_vnavghr; // "exagon.A2.vnavghr"
+ case 'w': // 1 string to match.
+ if (NameR[16] != 'r')
+ break;
+ return Intrinsic::hexagon_A2_vnavgwr; // "exagon.A2.vnavgwr"
+ }
+ break;
+ case 'r': // 2 strings to match.
+ switch (NameR[12]) {
+ default: break;
+ case 'a': // 1 string to match.
+ if (memcmp(NameR.data()+13, "ddub", 4))
+ break;
+ return Intrinsic::hexagon_A2_vraddub; // "exagon.A2.vraddub"
+ case 's': // 1 string to match.
+ if (memcmp(NameR.data()+13, "adub", 4))
+ break;
+ return Intrinsic::hexagon_A2_vrsadub; // "exagon.A2.vrsadub"
+ }
+ break;
+ case 's': // 2 strings to match.
+ if (memcmp(NameR.data()+12, "ubu", 3))
+ break;
+ switch (NameR[15]) {
+ default: break;
+ case 'b': // 1 string to match.
+ if (NameR[16] != 's')
+ break;
+ return Intrinsic::hexagon_A2_vsububs; // "exagon.A2.vsububs"
+ case 'h': // 1 string to match.
+ if (NameR[16] != 's')
+ break;
+ return Intrinsic::hexagon_A2_vsubuhs; // "exagon.A2.vsubuhs"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case '4': // 13 strings to match.
+ if (NameR[9] != '.')
+ break;
+ switch (NameR[10]) {
+ default: break;
+ case 'c': // 6 strings to match.
+ if (memcmp(NameR.data()+11, "mp", 2))
+ break;
+ switch (NameR[13]) {
+ default: break;
+ case 'b': // 3 strings to match.
+ switch (NameR[14]) {
+ default: break;
+ case 'e': // 1 string to match.
+ if (memcmp(NameR.data()+15, "qi", 2))
+ break;
+ return Intrinsic::hexagon_A4_cmpbeqi; // "exagon.A4.cmpbeqi"
+ case 'g': // 2 strings to match.
+ if (NameR[15] != 't')
+ break;
+ switch (NameR[16]) {
+ default: break;
+ case 'i': // 1 string to match.
+ return Intrinsic::hexagon_A4_cmpbgti; // "exagon.A4.cmpbgti"
+ case 'u': // 1 string to match.
+ return Intrinsic::hexagon_A4_cmpbgtu; // "exagon.A4.cmpbgtu"
+ }
+ break;
+ }
+ break;
+ case 'h': // 3 strings to match.
+ switch (NameR[14]) {
+ default: break;
+ case 'e': // 1 string to match.
+ if (memcmp(NameR.data()+15, "qi", 2))
+ break;
+ return Intrinsic::hexagon_A4_cmpheqi; // "exagon.A4.cmpheqi"
+ case 'g': // 2 strings to match.
+ if (NameR[15] != 't')
+ break;
+ switch (NameR[16]) {
+ default: break;
+ case 'i': // 1 string to match.
+ return Intrinsic::hexagon_A4_cmphgti; // "exagon.A4.cmphgti"
+ case 'u': // 1 string to match.
+ return Intrinsic::hexagon_A4_cmphgtu; // "exagon.A4.cmphgtu"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 'r': // 2 strings to match.
+ if (memcmp(NameR.data()+11, "cmp", 3))
+ break;
+ switch (NameR[14]) {
+ default: break;
+ case 'e': // 1 string to match.
+ if (memcmp(NameR.data()+15, "qi", 2))
+ break;
+ return Intrinsic::hexagon_A4_rcmpeqi; // "exagon.A4.rcmpeqi"
+ case 'n': // 1 string to match.
+ if (memcmp(NameR.data()+15, "eq", 2))
+ break;
+ return Intrinsic::hexagon_A4_rcmpneq; // "exagon.A4.rcmpneq"
+ }
+ break;
+ case 'v': // 5 strings to match.
+ switch (NameR[11]) {
+ default: break;
+ case 'c': // 1 string to match.
+ if (memcmp(NameR.data()+12, "mpbgt", 5))
+ break;
+ return Intrinsic::hexagon_A4_vcmpbgt; // "exagon.A4.vcmpbgt"
+ case 'r': // 4 strings to match.
+ if (NameR[12] != 'm')
+ break;
+ switch (NameR[13]) {
+ default: break;
+ case 'a': // 2 strings to match.
+ if (memcmp(NameR.data()+14, "xu", 2))
+ break;
+ switch (NameR[16]) {
+ default: break;
+ case 'h': // 1 string to match.
+ return Intrinsic::hexagon_A4_vrmaxuh; // "exagon.A4.vrmaxuh"
+ case 'w': // 1 string to match.
+ return Intrinsic::hexagon_A4_vrmaxuw; // "exagon.A4.vrmaxuw"
+ }
+ break;
+ case 'i': // 2 strings to match.
+ if (memcmp(NameR.data()+14, "nu", 2))
+ break;
+ switch (NameR[16]) {
+ default: break;
+ case 'h': // 1 string to match.
+ return Intrinsic::hexagon_A4_vrminuh; // "exagon.A4.vrminuh"
+ case 'w': // 1 string to match.
+ return Intrinsic::hexagon_A4_vrminuw; // "exagon.A4.vrminuw"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 'C': // 12 strings to match.
+ switch (NameR[8]) {
+ default: break;
+ case '2': // 6 strings to match.
+ if (NameR[9] != '.')
+ break;
+ switch (NameR[10]) {
+ default: break;
+ case 'b': // 2 strings to match.
+ if (memcmp(NameR.data()+11, "its", 3))
+ break;
+ switch (NameR[14]) {
+ default: break;
+ case 'c': // 1 string to match.
+ if (memcmp(NameR.data()+15, "lr", 2))
+ break;
+ return Intrinsic::hexagon_C2_bitsclr; // "exagon.C2.bitsclr"
+ case 's': // 1 string to match.
+ if (memcmp(NameR.data()+15, "et", 2))
+ break;
+ return Intrinsic::hexagon_C2_bitsset; // "exagon.C2.bitsset"
+ }
+ break;
+ case 'c': // 3 strings to match.
+ if (memcmp(NameR.data()+11, "mpg", 3))
+ break;
+ switch (NameR[14]) {
+ default: break;
+ case 'e': // 1 string to match.
+ if (memcmp(NameR.data()+15, "ui", 2))
+ break;
+ return Intrinsic::hexagon_C2_cmpgeui; // "exagon.C2.cmpgeui"
+ case 't': // 2 strings to match.
+ if (NameR[15] != 'u')
+ break;
+ switch (NameR[16]) {
+ default: break;
+ case 'i': // 1 string to match.
+ return Intrinsic::hexagon_C2_cmpgtui; // "exagon.C2.cmpgtui"
+ case 'p': // 1 string to match.
+ return Intrinsic::hexagon_C2_cmpgtup; // "exagon.C2.cmpgtup"
+ }
+ break;
+ }
+ break;
+ case 'v': // 1 string to match.
+ if (memcmp(NameR.data()+11, "itpack", 6))
+ break;
+ return Intrinsic::hexagon_C2_vitpack; // "exagon.C2.vitpack"
+ }
+ break;
+ case '4': // 6 strings to match.
+ if (NameR[9] != '.')
+ break;
+ switch (NameR[10]) {
+ default: break;
+ case 'a': // 2 strings to match.
+ if (memcmp(NameR.data()+11, "nd.", 3))
+ break;
+ switch (NameR[14]) {
+ default: break;
+ case 'a': // 1 string to match.
+ if (memcmp(NameR.data()+15, "nd", 2))
+ break;
+ return Intrinsic::hexagon_C4_and_and; // "exagon.C4.and.and"
+ case 'o': // 1 string to match.
+ if (memcmp(NameR.data()+15, "rn", 2))
+ break;
+ return Intrinsic::hexagon_C4_and_orn; // "exagon.C4.and.orn"
+ }
+ break;
+ case 'c': // 3 strings to match.
+ if (memcmp(NameR.data()+11, "mp", 2))
+ break;
+ switch (NameR[13]) {
+ default: break;
+ case 'l': // 2 strings to match.
+ if (memcmp(NameR.data()+14, "te", 2))
+ break;
+ switch (NameR[16]) {
+ default: break;
+ case 'i': // 1 string to match.
+ return Intrinsic::hexagon_C4_cmpltei; // "exagon.C4.cmpltei"
+ case 'u': // 1 string to match.
+ return Intrinsic::hexagon_C4_cmplteu; // "exagon.C4.cmplteu"
+ }
+ break;
+ case 'n': // 1 string to match.
+ if (memcmp(NameR.data()+14, "eqi", 3))
+ break;
+ return Intrinsic::hexagon_C4_cmpneqi; // "exagon.C4.cmpneqi"
+ }
+ break;
+ case 'o': // 1 string to match.
+ if (memcmp(NameR.data()+11, "r.andn", 6))
+ break;
+ return Intrinsic::hexagon_C4_or_andn; // "exagon.C4.or.andn"
+ }
+ break;
+ }
+ break;
+ case 'F': // 14 strings to match.
+ if (memcmp(NameR.data()+8, "2.", 2))
+ break;
+ switch (NameR[10]) {
+ default: break;
+ case 'd': // 7 strings to match.
+ if (NameR[11] != 'f')
+ break;
+ switch (NameR[12]) {
+ default: break;
+ case 'c': // 5 strings to match.
+ switch (NameR[13]) {
+ default: break;
+ case 'l': // 1 string to match.
+ if (memcmp(NameR.data()+14, "ass", 3))
+ break;
+ return Intrinsic::hexagon_F2_dfclass; // "exagon.F2.dfclass"
+ case 'm': // 4 strings to match.
+ if (NameR[14] != 'p')
+ break;
+ switch (NameR[15]) {
+ default: break;
+ case 'e': // 1 string to match.
+ if (NameR[16] != 'q')
+ break;
+ return Intrinsic::hexagon_F2_dfcmpeq; // "exagon.F2.dfcmpeq"
+ case 'g': // 2 strings to match.
+ switch (NameR[16]) {
+ default: break;
+ case 'e': // 1 string to match.
+ return Intrinsic::hexagon_F2_dfcmpge; // "exagon.F2.dfcmpge"
+ case 't': // 1 string to match.
+ return Intrinsic::hexagon_F2_dfcmpgt; // "exagon.F2.dfcmpgt"
+ }
+ break;
+ case 'u': // 1 string to match.
+ if (NameR[16] != 'o')
+ break;
+ return Intrinsic::hexagon_F2_dfcmpuo; // "exagon.F2.dfcmpuo"
+ }
+ break;
+ }
+ break;
+ case 'i': // 2 strings to match.
+ if (memcmp(NameR.data()+13, "mm.", 3))
+ break;
+ switch (NameR[16]) {
+ default: break;
+ case 'n': // 1 string to match.
+ return Intrinsic::hexagon_F2_dfimm_n; // "exagon.F2.dfimm.n"
+ case 'p': // 1 string to match.
+ return Intrinsic::hexagon_F2_dfimm_p; // "exagon.F2.dfimm.p"
+ }
+ break;
+ }
+ break;
+ case 's': // 7 strings to match.
+ if (NameR[11] != 'f')
+ break;
+ switch (NameR[12]) {
+ default: break;
+ case 'c': // 5 strings to match.
+ switch (NameR[13]) {
+ default: break;
+ case 'l': // 1 string to match.
+ if (memcmp(NameR.data()+14, "ass", 3))
+ break;
+ return Intrinsic::hexagon_F2_sfclass; // "exagon.F2.sfclass"
+ case 'm': // 4 strings to match.
+ if (NameR[14] != 'p')
+ break;
+ switch (NameR[15]) {
+ default: break;
+ case 'e': // 1 string to match.
+ if (NameR[16] != 'q')
+ break;
+ return Intrinsic::hexagon_F2_sfcmpeq; // "exagon.F2.sfcmpeq"
+ case 'g': // 2 strings to match.
+ switch (NameR[16]) {
+ default: break;
+ case 'e': // 1 string to match.
+ return Intrinsic::hexagon_F2_sfcmpge; // "exagon.F2.sfcmpge"
+ case 't': // 1 string to match.
+ return Intrinsic::hexagon_F2_sfcmpgt; // "exagon.F2.sfcmpgt"
+ }
+ break;
+ case 'u': // 1 string to match.
+ if (NameR[16] != 'o')
+ break;
+ return Intrinsic::hexagon_F2_sfcmpuo; // "exagon.F2.sfcmpuo"
+ }
+ break;
+ }
+ break;
+ case 'i': // 2 strings to match.
+ if (memcmp(NameR.data()+13, "mm.", 3))
+ break;
+ switch (NameR[16]) {
+ default: break;
+ case 'n': // 1 string to match.
+ return Intrinsic::hexagon_F2_sfimm_n; // "exagon.F2.sfimm.n"
+ case 'p': // 1 string to match.
+ return Intrinsic::hexagon_F2_sfimm_p; // "exagon.F2.sfimm.p"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 'M': // 11 strings to match.
+ switch (NameR[8]) {
+ default: break;
+ case '2': // 3 strings to match.
+ if (NameR[9] != '.')
+ break;
+ switch (NameR[10]) {
+ default: break;
+ case 'm': // 1 string to match.
+ if (memcmp(NameR.data()+11, "pyu.up", 6))
+ break;
+ return Intrinsic::hexagon_M2_mpyu_up; // "exagon.M2.mpyu.up"
+ case 'v': // 2 strings to match.
+ switch (NameR[11]) {
+ default: break;
+ case 'm': // 1 string to match.
+ if (memcmp(NameR.data()+12, "ac2es", 5))
+ break;
+ return Intrinsic::hexagon_M2_vmac2es; // "exagon.M2.vmac2es"
+ case 'r': // 1 string to match.
+ if (memcmp(NameR.data()+12, "adduh", 5))
+ break;
+ return Intrinsic::hexagon_M2_vradduh; // "exagon.M2.vradduh"
+ }
+ break;
+ }
+ break;
+ case '4': // 4 strings to match.
+ if (NameR[9] != '.')
+ break;
+ switch (NameR[10]) {
+ default: break;
+ case 'a': // 2 strings to match.
+ if (memcmp(NameR.data()+11, "nd.", 3))
+ break;
+ switch (NameR[14]) {
+ default: break;
+ case 'a': // 1 string to match.
+ if (memcmp(NameR.data()+15, "nd", 2))
+ break;
+ return Intrinsic::hexagon_M4_and_and; // "exagon.M4.and.and"
+ case 'x': // 1 string to match.
+ if (memcmp(NameR.data()+15, "or", 2))
+ break;
+ return Intrinsic::hexagon_M4_and_xor; // "exagon.M4.and.xor"
+ }
+ break;
+ case 'o': // 1 string to match.
+ if (memcmp(NameR.data()+11, "r.andn", 6))
+ break;
+ return Intrinsic::hexagon_M4_or_andn; // "exagon.M4.or.andn"
+ case 'x': // 1 string to match.
+ if (memcmp(NameR.data()+11, "or.and", 6))
+ break;
+ return Intrinsic::hexagon_M4_xor_and; // "exagon.M4.xor.and"
+ }
+ break;
+ case '5': // 4 strings to match.
+ if (memcmp(NameR.data()+9, ".vm", 3))
+ break;
+ switch (NameR[12]) {
+ default: break;
+ case 'a': // 2 strings to match.
+ if (memcmp(NameR.data()+13, "cb", 2))
+ break;
+ switch (NameR[15]) {
+ default: break;
+ case 's': // 1 string to match.
+ if (NameR[16] != 'u')
+ break;
+ return Intrinsic::hexagon_M5_vmacbsu; // "exagon.M5.vmacbsu"
+ case 'u': // 1 string to match.
+ if (NameR[16] != 'u')
+ break;
+ return Intrinsic::hexagon_M5_vmacbuu; // "exagon.M5.vmacbuu"
+ }
+ break;
+ case 'p': // 2 strings to match.
+ if (memcmp(NameR.data()+13, "yb", 2))
+ break;
+ switch (NameR[15]) {
+ default: break;
+ case 's': // 1 string to match.
+ if (NameR[16] != 'u')
+ break;
+ return Intrinsic::hexagon_M5_vmpybsu; // "exagon.M5.vmpybsu"
+ case 'u': // 1 string to match.
+ if (NameR[16] != 'u')
+ break;
+ return Intrinsic::hexagon_M5_vmpybuu; // "exagon.M5.vmpybuu"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 'S': // 30 strings to match.
+ switch (NameR[8]) {
+ default: break;
+ case '2': // 25 strings to match.
+ if (NameR[9] != '.')
+ break;
+ switch (NameR[10]) {
+ default: break;
+ case 'a': // 8 strings to match.
+ if (NameR[11] != 's')
+ break;
+ switch (NameR[12]) {
+ default: break;
+ case 'l': // 4 strings to match.
+ if (NameR[13] != '.')
+ break;
+ switch (NameR[14]) {
+ default: break;
+ case 'i': // 2 strings to match.
+ if (NameR[15] != '.')
+ break;
+ switch (NameR[16]) {
+ default: break;
+ case 'p': // 1 string to match.
+ return Intrinsic::hexagon_S2_asl_i_p; // "exagon.S2.asl.i.p"
+ case 'r': // 1 string to match.
+ return Intrinsic::hexagon_S2_asl_i_r; // "exagon.S2.asl.i.r"
+ }
+ break;
+ case 'r': // 2 strings to match.
+ if (NameR[15] != '.')
+ break;
+ switch (NameR[16]) {
+ default: break;
+ case 'p': // 1 string to match.
+ return Intrinsic::hexagon_S2_asl_r_p; // "exagon.S2.asl.r.p"
+ case 'r': // 1 string to match.
+ return Intrinsic::hexagon_S2_asl_r_r; // "exagon.S2.asl.r.r"
+ }
+ break;
+ }
+ break;
+ case 'r': // 4 strings to match.
+ if (NameR[13] != '.')
+ break;
+ switch (NameR[14]) {
+ default: break;
+ case 'i': // 2 strings to match.
+ if (NameR[15] != '.')
+ break;
+ switch (NameR[16]) {
+ default: break;
+ case 'p': // 1 string to match.
+ return Intrinsic::hexagon_S2_asr_i_p; // "exagon.S2.asr.i.p"
+ case 'r': // 1 string to match.
+ return Intrinsic::hexagon_S2_asr_i_r; // "exagon.S2.asr.i.r"
+ }
+ break;
+ case 'r': // 2 strings to match.
+ if (NameR[15] != '.')
+ break;
+ switch (NameR[16]) {
+ default: break;
+ case 'p': // 1 string to match.
+ return Intrinsic::hexagon_S2_asr_r_p; // "exagon.S2.asr.r.p"
+ case 'r': // 1 string to match.
+ return Intrinsic::hexagon_S2_asr_r_r; // "exagon.S2.asr.r.r"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 'c': // 1 string to match.
+ if (memcmp(NameR.data()+11, "lbnorm", 6))
+ break;
+ return Intrinsic::hexagon_S2_clbnorm; // "exagon.S2.clbnorm"
+ case 'i': // 1 string to match.
+ if (memcmp(NameR.data()+11, "nsertp", 6))
+ break;
+ return Intrinsic::hexagon_S2_insertp; // "exagon.S2.insertp"
+ case 'l': // 6 strings to match.
+ if (NameR[11] != 's')
+ break;
+ switch (NameR[12]) {
+ default: break;
+ case 'l': // 2 strings to match.
+ if (memcmp(NameR.data()+13, ".r.", 3))
+ break;
+ switch (NameR[16]) {
+ default: break;
+ case 'p': // 1 string to match.
+ return Intrinsic::hexagon_S2_lsl_r_p; // "exagon.S2.lsl.r.p"
+ case 'r': // 1 string to match.
+ return Intrinsic::hexagon_S2_lsl_r_r; // "exagon.S2.lsl.r.r"
+ }
+ break;
+ case 'r': // 4 strings to match.
+ if (NameR[13] != '.')
+ break;
+ switch (NameR[14]) {
+ default: break;
+ case 'i': // 2 strings to match.
+ if (NameR[15] != '.')
+ break;
+ switch (NameR[16]) {
+ default: break;
+ case 'p': // 1 string to match.
+ return Intrinsic::hexagon_S2_lsr_i_p; // "exagon.S2.lsr.i.p"
+ case 'r': // 1 string to match.
+ return Intrinsic::hexagon_S2_lsr_i_r; // "exagon.S2.lsr.i.r"
+ }
+ break;
+ case 'r': // 2 strings to match.
+ if (NameR[15] != '.')
+ break;
+ switch (NameR[16]) {
+ default: break;
+ case 'p': // 1 string to match.
+ return Intrinsic::hexagon_S2_lsr_r_p; // "exagon.S2.lsr.r.p"
+ case 'r': // 1 string to match.
+ return Intrinsic::hexagon_S2_lsr_r_r; // "exagon.S2.lsr.r.r"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 'p': // 1 string to match.
+ if (memcmp(NameR.data()+11, "arityp", 6))
+ break;
+ return Intrinsic::hexagon_S2_parityp; // "exagon.S2.parityp"
+ case 's': // 5 strings to match.
+ switch (NameR[11]) {
+ default: break;
+ case 'h': // 4 strings to match.
+ if (memcmp(NameR.data()+12, "uff", 3))
+ break;
+ switch (NameR[15]) {
+ default: break;
+ case 'e': // 2 strings to match.
+ switch (NameR[16]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::hexagon_S2_shuffeb; // "exagon.S2.shuffeb"
+ case 'h': // 1 string to match.
+ return Intrinsic::hexagon_S2_shuffeh; // "exagon.S2.shuffeh"
+ }
+ break;
+ case 'o': // 2 strings to match.
+ switch (NameR[16]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::hexagon_S2_shuffob; // "exagon.S2.shuffob"
+ case 'h': // 1 string to match.
+ return Intrinsic::hexagon_S2_shuffoh; // "exagon.S2.shuffoh"
+ }
+ break;
+ }
+ break;
+ case 'v': // 1 string to match.
+ if (memcmp(NameR.data()+12, "sathb", 5))
+ break;
+ return Intrinsic::hexagon_S2_svsathb; // "exagon.S2.svsathb"
+ }
+ break;
+ case 'v': // 3 strings to match.
+ switch (NameR[11]) {
+ default: break;
+ case 'r': // 1 string to match.
+ if (memcmp(NameR.data()+12, "cnegh", 5))
+ break;
+ return Intrinsic::hexagon_S2_vrcnegh; // "exagon.S2.vrcnegh"
+ case 's': // 2 strings to match.
+ if (memcmp(NameR.data()+12, "at", 2))
+ break;
+ switch (NameR[14]) {
+ default: break;
+ case 'h': // 1 string to match.
+ if (memcmp(NameR.data()+15, "ub", 2))
+ break;
+ return Intrinsic::hexagon_S2_vsathub; // "exagon.S2.vsathub"
+ case 'w': // 1 string to match.
+ if (memcmp(NameR.data()+15, "uh", 2))
+ break;
+ return Intrinsic::hexagon_S2_vsatwuh; // "exagon.S2.vsatwuh"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case '4': // 5 strings to match.
+ if (NameR[9] != '.')
+ break;
+ switch (NameR[10]) {
+ default: break;
+ case 'a': // 1 string to match.
+ if (memcmp(NameR.data()+11, "ddaddi", 6))
+ break;
+ return Intrinsic::hexagon_S4_addaddi; // "exagon.S4.addaddi"
+ case 'c': // 1 string to match.
+ if (memcmp(NameR.data()+11, "lbaddi", 6))
+ break;
+ return Intrinsic::hexagon_S4_clbaddi; // "exagon.S4.clbaddi"
+ case 'e': // 1 string to match.
+ if (memcmp(NameR.data()+11, "xtract", 6))
+ break;
+ return Intrinsic::hexagon_S4_extract; // "exagon.S4.extract"
+ case 'o': // 1 string to match.
+ if (memcmp(NameR.data()+11, "r.andi", 6))
+ break;
+ return Intrinsic::hexagon_S4_or_andi; // "exagon.S4.or.andi"
+ case 's': // 1 string to match.
+ if (memcmp(NameR.data()+11, "ubaddi", 6))
+ break;
+ return Intrinsic::hexagon_S4_subaddi; // "exagon.S4.subaddi"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 18: // 103 strings to match.
+ if (memcmp(NameR.data()+0, "exagon.", 7))
+ break;
+ switch (NameR[7]) {
+ default: break;
+ case 'A': // 26 strings to match.
+ switch (NameR[8]) {
+ default: break;
+ case '2': // 11 strings to match.
+ if (NameR[9] != '.')
+ break;
+ switch (NameR[10]) {
+ default: break;
+ case 'c': // 1 string to match.
+ if (memcmp(NameR.data()+11, "ombinew", 7))
+ break;
+ return Intrinsic::hexagon_A2_combinew; // "exagon.A2.combinew"
+ case 'r': // 1 string to match.
+ if (memcmp(NameR.data()+11, "oundsat", 7))
+ break;
+ return Intrinsic::hexagon_A2_roundsat; // "exagon.A2.roundsat"
+ case 's': // 2 strings to match.
+ if (NameR[11] != 'v')
+ break;
+ switch (NameR[12]) {
+ default: break;
+ case 'a': // 1 string to match.
+ if (memcmp(NameR.data()+13, "dduhs", 5))
+ break;
+ return Intrinsic::hexagon_A2_svadduhs; // "exagon.A2.svadduhs"
+ case 's': // 1 string to match.
+ if (memcmp(NameR.data()+13, "ubuhs", 5))
+ break;
+ return Intrinsic::hexagon_A2_svsubuhs; // "exagon.A2.svsubuhs"
+ }
+ break;
+ case 'v': // 7 strings to match.
+ switch (NameR[11]) {
+ default: break;
+ case 'a': // 2 strings to match.
+ if (memcmp(NameR.data()+12, "bs", 2))
+ break;
+ switch (NameR[14]) {
+ default: break;
+ case 'h': // 1 string to match.
+ if (memcmp(NameR.data()+15, "sat", 3))
+ break;
+ return Intrinsic::hexagon_A2_vabshsat; // "exagon.A2.vabshsat"
+ case 'w': // 1 string to match.
+ if (memcmp(NameR.data()+15, "sat", 3))
+ break;
+ return Intrinsic::hexagon_A2_vabswsat; // "exagon.A2.vabswsat"
+ }
+ break;
+ case 'c': // 3 strings to match.
+ if (memcmp(NameR.data()+12, "mp", 2))
+ break;
+ switch (NameR[14]) {
+ default: break;
+ case 'b': // 1 string to match.
+ if (memcmp(NameR.data()+15, "gtu", 3))
+ break;
+ return Intrinsic::hexagon_A2_vcmpbgtu; // "exagon.A2.vcmpbgtu"
+ case 'h': // 1 string to match.
+ if (memcmp(NameR.data()+15, "gtu", 3))
+ break;
+ return Intrinsic::hexagon_A2_vcmphgtu; // "exagon.A2.vcmphgtu"
+ case 'w': // 1 string to match.
+ if (memcmp(NameR.data()+15, "gtu", 3))
+ break;
+ return Intrinsic::hexagon_A2_vcmpwgtu; // "exagon.A2.vcmpwgtu"
+ }
+ break;
+ case 'n': // 2 strings to match.
+ if (memcmp(NameR.data()+12, "avg", 3))
+ break;
+ switch (NameR[15]) {
+ default: break;
+ case 'h': // 1 string to match.
+ if (memcmp(NameR.data()+16, "cr", 2))
+ break;
+ return Intrinsic::hexagon_A2_vnavghcr; // "exagon.A2.vnavghcr"
+ case 'w': // 1 string to match.
+ if (memcmp(NameR.data()+16, "cr", 2))
+ break;
+ return Intrinsic::hexagon_A2_vnavgwcr; // "exagon.A2.vnavgwcr"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case '4': // 14 strings to match.
+ if (NameR[9] != '.')
+ break;
+ switch (NameR[10]) {
+ default: break;
+ case 'b': // 1 string to match.
+ if (memcmp(NameR.data()+11, "itsplit", 7))
+ break;
+ return Intrinsic::hexagon_A4_bitsplit; // "exagon.A4.bitsplit"
+ case 'c': // 2 strings to match.
+ if (memcmp(NameR.data()+11, "mp", 2))
+ break;
+ switch (NameR[13]) {
+ default: break;
+ case 'b': // 1 string to match.
+ if (memcmp(NameR.data()+14, "gtui", 4))
+ break;
+ return Intrinsic::hexagon_A4_cmpbgtui; // "exagon.A4.cmpbgtui"
+ case 'h': // 1 string to match.
+ if (memcmp(NameR.data()+14, "gtui", 4))
+ break;
+ return Intrinsic::hexagon_A4_cmphgtui; // "exagon.A4.cmphgtui"
+ }
+ break;
+ case 'm': // 1 string to match.
+ if (memcmp(NameR.data()+11, "odwrapu", 7))
+ break;
+ return Intrinsic::hexagon_A4_modwrapu; // "exagon.A4.modwrapu"
+ case 'r': // 3 strings to match.
+ switch (NameR[11]) {
+ default: break;
+ case 'c': // 1 string to match.
+ if (memcmp(NameR.data()+12, "mpneqi", 6))
+ break;
+ return Intrinsic::hexagon_A4_rcmpneqi; // "exagon.A4.rcmpneqi"
+ case 'o': // 2 strings to match.
+ if (memcmp(NameR.data()+12, "und.r", 5))
+ break;
+ switch (NameR[17]) {
+ default: break;
+ case 'i': // 1 string to match.
+ return Intrinsic::hexagon_A4_round_ri; // "exagon.A4.round.ri"
+ case 'r': // 1 string to match.
+ return Intrinsic::hexagon_A4_round_rr; // "exagon.A4.round.rr"
+ }
+ break;
+ }
+ break;
+ case 't': // 1 string to match.
+ if (memcmp(NameR.data()+11, "lbmatch", 7))
+ break;
+ return Intrinsic::hexagon_A4_tlbmatch; // "exagon.A4.tlbmatch"
+ case 'v': // 6 strings to match.
+ if (memcmp(NameR.data()+11, "cmp", 3))
+ break;
+ switch (NameR[14]) {
+ default: break;
+ case 'b': // 2 strings to match.
+ switch (NameR[15]) {
+ default: break;
+ case 'e': // 1 string to match.
+ if (memcmp(NameR.data()+16, "qi", 2))
+ break;
+ return Intrinsic::hexagon_A4_vcmpbeqi; // "exagon.A4.vcmpbeqi"
+ case 'g': // 1 string to match.
+ if (memcmp(NameR.data()+16, "ti", 2))
+ break;
+ return Intrinsic::hexagon_A4_vcmpbgti; // "exagon.A4.vcmpbgti"
+ }
+ break;
+ case 'h': // 2 strings to match.
+ switch (NameR[15]) {
+ default: break;
+ case 'e': // 1 string to match.
+ if (memcmp(NameR.data()+16, "qi", 2))
+ break;
+ return Intrinsic::hexagon_A4_vcmpheqi; // "exagon.A4.vcmpheqi"
+ case 'g': // 1 string to match.
+ if (memcmp(NameR.data()+16, "ti", 2))
+ break;
+ return Intrinsic::hexagon_A4_vcmphgti; // "exagon.A4.vcmphgti"
+ }
+ break;
+ case 'w': // 2 strings to match.
+ switch (NameR[15]) {
+ default: break;
+ case 'e': // 1 string to match.
+ if (memcmp(NameR.data()+16, "qi", 2))
+ break;
+ return Intrinsic::hexagon_A4_vcmpweqi; // "exagon.A4.vcmpweqi"
+ case 'g': // 1 string to match.
+ if (memcmp(NameR.data()+16, "ti", 2))
+ break;
+ return Intrinsic::hexagon_A4_vcmpwgti; // "exagon.A4.vcmpwgti"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case '5': // 1 string to match.
+ if (memcmp(NameR.data()+9, ".vaddhubs", 9))
+ break;
+ return Intrinsic::hexagon_A5_vaddhubs; // "exagon.A5.vaddhubs"
+ }
+ break;
+ case 'C': // 5 strings to match.
+ switch (NameR[8]) {
+ default: break;
+ case '2': // 1 string to match.
+ if (memcmp(NameR.data()+9, ".bitsclri", 9))
+ break;
+ return Intrinsic::hexagon_C2_bitsclri; // "exagon.C2.bitsclri"
+ case '4': // 4 strings to match.
+ if (NameR[9] != '.')
+ break;
+ switch (NameR[10]) {
+ default: break;
+ case 'a': // 1 string to match.
+ if (memcmp(NameR.data()+11, "nd.andn", 7))
+ break;
+ return Intrinsic::hexagon_C4_and_andn; // "exagon.C4.and.andn"
+ case 'c': // 1 string to match.
+ if (memcmp(NameR.data()+11, "mplteui", 7))
+ break;
+ return Intrinsic::hexagon_C4_cmplteui; // "exagon.C4.cmplteui"
+ case 'n': // 2 strings to match.
+ if (memcmp(NameR.data()+11, "bits", 4))
+ break;
+ switch (NameR[15]) {
+ default: break;
+ case 'c': // 1 string to match.
+ if (memcmp(NameR.data()+16, "lr", 2))
+ break;
+ return Intrinsic::hexagon_C4_nbitsclr; // "exagon.C4.nbitsclr"
+ case 's': // 1 string to match.
+ if (memcmp(NameR.data()+16, "et", 2))
+ break;
+ return Intrinsic::hexagon_C4_nbitsset; // "exagon.C4.nbitsset"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 'F': // 8 strings to match.
+ if (memcmp(NameR.data()+8, "2.", 2))
+ break;
+ switch (NameR[10]) {
+ default: break;
+ case 'd': // 4 strings to match.
+ if (memcmp(NameR.data()+11, "ff", 2))
+ break;
+ switch (NameR[13]) {
+ default: break;
+ case 'i': // 3 strings to match.
+ if (memcmp(NameR.data()+14, "xup", 3))
+ break;
+ switch (NameR[17]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::hexagon_F2_dffixupd; // "exagon.F2.dffixupd"
+ case 'n': // 1 string to match.
+ return Intrinsic::hexagon_F2_dffixupn; // "exagon.F2.dffixupn"
+ case 'r': // 1 string to match.
+ return Intrinsic::hexagon_F2_dffixupr; // "exagon.F2.dffixupr"
+ }
+ break;
+ case 'm': // 1 string to match.
+ if (memcmp(NameR.data()+14, "a.sc", 4))
+ break;
+ return Intrinsic::hexagon_F2_dffma_sc; // "exagon.F2.dffma.sc"
+ }
+ break;
+ case 's': // 4 strings to match.
+ if (memcmp(NameR.data()+11, "ff", 2))
+ break;
+ switch (NameR[13]) {
+ default: break;
+ case 'i': // 3 strings to match.
+ if (memcmp(NameR.data()+14, "xup", 3))
+ break;
+ switch (NameR[17]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::hexagon_F2_sffixupd; // "exagon.F2.sffixupd"
+ case 'n': // 1 string to match.
+ return Intrinsic::hexagon_F2_sffixupn; // "exagon.F2.sffixupn"
+ case 'r': // 1 string to match.
+ return Intrinsic::hexagon_F2_sffixupr; // "exagon.F2.sffixupr"
+ }
+ break;
+ case 'm': // 1 string to match.
+ if (memcmp(NameR.data()+14, "a.sc", 4))
+ break;
+ return Intrinsic::hexagon_F2_sffma_sc; // "exagon.F2.sffma.sc"
+ }
+ break;
+ }
+ break;
+ case 'M': // 29 strings to match.
+ switch (NameR[8]) {
+ default: break;
+ case '2': // 18 strings to match.
+ if (NameR[9] != '.')
+ break;
+ switch (NameR[10]) {
+ default: break;
+ case 'c': // 10 strings to match.
+ switch (NameR[11]) {
+ default: break;
+ case 'm': // 8 strings to match.
+ switch (NameR[12]) {
+ default: break;
+ case 'a': // 4 strings to match.
+ if (NameR[13] != 'c')
+ break;
+ switch (NameR[14]) {
+ default: break;
+ case 'i': // 1 string to match.
+ if (memcmp(NameR.data()+15, ".s0", 3))
+ break;
+ return Intrinsic::hexagon_M2_cmaci_s0; // "exagon.M2.cmaci.s0"
+ case 'r': // 1 string to match.
+ if (memcmp(NameR.data()+15, ".s0", 3))
+ break;
+ return Intrinsic::hexagon_M2_cmacr_s0; // "exagon.M2.cmacr.s0"
+ case 's': // 2 strings to match.
+ if (memcmp(NameR.data()+15, ".s", 2))
+ break;
+ switch (NameR[17]) {
+ default: break;
+ case '0': // 1 string to match.
+ return Intrinsic::hexagon_M2_cmacs_s0; // "exagon.M2.cmacs.s0"
+ case '1': // 1 string to match.
+ return Intrinsic::hexagon_M2_cmacs_s1; // "exagon.M2.cmacs.s1"
+ }
+ break;
+ }
+ break;
+ case 'p': // 4 strings to match.
+ if (NameR[13] != 'y')
+ break;
+ switch (NameR[14]) {
+ default: break;
+ case 'i': // 1 string to match.
+ if (memcmp(NameR.data()+15, ".s0", 3))
+ break;
+ return Intrinsic::hexagon_M2_cmpyi_s0; // "exagon.M2.cmpyi.s0"
+ case 'r': // 1 string to match.
+ if (memcmp(NameR.data()+15, ".s0", 3))
+ break;
+ return Intrinsic::hexagon_M2_cmpyr_s0; // "exagon.M2.cmpyr.s0"
+ case 's': // 2 strings to match.
+ if (memcmp(NameR.data()+15, ".s", 2))
+ break;
+ switch (NameR[17]) {
+ default: break;
+ case '0': // 1 string to match.
+ return Intrinsic::hexagon_M2_cmpys_s0; // "exagon.M2.cmpys.s0"
+ case '1': // 1 string to match.
+ return Intrinsic::hexagon_M2_cmpys_s1; // "exagon.M2.cmpys.s1"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 'n': // 2 strings to match.
+ if (memcmp(NameR.data()+12, "acs.s", 5))
+ break;
+ switch (NameR[17]) {
+ default: break;
+ case '0': // 1 string to match.
+ return Intrinsic::hexagon_M2_cnacs_s0; // "exagon.M2.cnacs.s0"
+ case '1': // 1 string to match.
+ return Intrinsic::hexagon_M2_cnacs_s1; // "exagon.M2.cnacs.s1"
+ }
+ break;
+ }
+ break;
+ case 'm': // 5 strings to match.
+ switch (NameR[11]) {
+ default: break;
+ case 'm': // 4 strings to match.
+ if (memcmp(NameR.data()+12, "py", 2))
+ break;
+ switch (NameR[14]) {
+ default: break;
+ case 'h': // 2 strings to match.
+ if (memcmp(NameR.data()+15, ".s", 2))
+ break;
+ switch (NameR[17]) {
+ default: break;
+ case '0': // 1 string to match.
+ return Intrinsic::hexagon_M2_mmpyh_s0; // "exagon.M2.mmpyh.s0"
+ case '1': // 1 string to match.
+ return Intrinsic::hexagon_M2_mmpyh_s1; // "exagon.M2.mmpyh.s1"
+ }
+ break;
+ case 'l': // 2 strings to match.
+ if (memcmp(NameR.data()+15, ".s", 2))
+ break;
+ switch (NameR[17]) {
+ default: break;
+ case '0': // 1 string to match.
+ return Intrinsic::hexagon_M2_mmpyl_s0; // "exagon.M2.mmpyl.s0"
+ case '1': // 1 string to match.
+ return Intrinsic::hexagon_M2_mmpyl_s1; // "exagon.M2.mmpyl.s1"
+ }
+ break;
+ }
+ break;
+ case 'p': // 1 string to match.
+ if (memcmp(NameR.data()+12, "ysu.up", 6))
+ break;
+ return Intrinsic::hexagon_M2_mpysu_up; // "exagon.M2.mpysu.up"
+ }
+ break;
+ case 'v': // 2 strings to match.
+ if (memcmp(NameR.data()+11, "rm", 2))
+ break;
+ switch (NameR[13]) {
+ default: break;
+ case 'a': // 1 string to match.
+ if (memcmp(NameR.data()+14, "c.s0", 4))
+ break;
+ return Intrinsic::hexagon_M2_vrmac_s0; // "exagon.M2.vrmac.s0"
+ case 'p': // 1 string to match.
+ if (memcmp(NameR.data()+14, "y.s0", 4))
+ break;
+ return Intrinsic::hexagon_M2_vrmpy_s0; // "exagon.M2.vrmpy.s0"
+ }
+ break;
+ case 'x': // 1 string to match.
+ if (memcmp(NameR.data()+11, "or.xacc", 7))
+ break;
+ return Intrinsic::hexagon_M2_xor_xacc; // "exagon.M2.xor.xacc"
+ }
+ break;
+ case '4': // 5 strings to match.
+ if (NameR[9] != '.')
+ break;
+ switch (NameR[10]) {
+ default: break;
+ case 'a': // 1 string to match.
+ if (memcmp(NameR.data()+11, "nd.andn", 7))
+ break;
+ return Intrinsic::hexagon_M4_and_andn; // "exagon.M4.and.andn"
+ case 'c': // 2 strings to match.
+ if (memcmp(NameR.data()+11, "mpy", 3))
+ break;
+ switch (NameR[14]) {
+ default: break;
+ case 'i': // 1 string to match.
+ if (memcmp(NameR.data()+15, ".wh", 3))
+ break;
+ return Intrinsic::hexagon_M4_cmpyi_wh; // "exagon.M4.cmpyi.wh"
+ case 'r': // 1 string to match.
+ if (memcmp(NameR.data()+15, ".wh", 3))
+ break;
+ return Intrinsic::hexagon_M4_cmpyr_wh; // "exagon.M4.cmpyr.wh"
+ }
+ break;
+ case 'x': // 2 strings to match.
+ if (memcmp(NameR.data()+11, "or.", 3))
+ break;
+ switch (NameR[14]) {
+ default: break;
+ case 'a': // 1 string to match.
+ if (memcmp(NameR.data()+15, "ndn", 3))
+ break;
+ return Intrinsic::hexagon_M4_xor_andn; // "exagon.M4.xor.andn"
+ case 'x': // 1 string to match.
+ if (memcmp(NameR.data()+15, "acc", 3))
+ break;
+ return Intrinsic::hexagon_M4_xor_xacc; // "exagon.M4.xor.xacc"
+ }
+ break;
+ }
+ break;
+ case '5': // 6 strings to match.
+ if (memcmp(NameR.data()+9, ".v", 2))
+ break;
+ switch (NameR[11]) {
+ default: break;
+ case 'd': // 2 strings to match.
+ if (NameR[12] != 'm')
+ break;
+ switch (NameR[13]) {
+ default: break;
+ case 'a': // 1 string to match.
+ if (memcmp(NameR.data()+14, "cbsu", 4))
+ break;
+ return Intrinsic::hexagon_M5_vdmacbsu; // "exagon.M5.vdmacbsu"
+ case 'p': // 1 string to match.
+ if (memcmp(NameR.data()+14, "ybsu", 4))
+ break;
+ return Intrinsic::hexagon_M5_vdmpybsu; // "exagon.M5.vdmpybsu"
+ }
+ break;
+ case 'r': // 4 strings to match.
+ if (NameR[12] != 'm')
+ break;
+ switch (NameR[13]) {
+ default: break;
+ case 'a': // 2 strings to match.
+ if (memcmp(NameR.data()+14, "cb", 2))
+ break;
+ switch (NameR[16]) {
+ default: break;
+ case 's': // 1 string to match.
+ if (NameR[17] != 'u')
+ break;
+ return Intrinsic::hexagon_M5_vrmacbsu; // "exagon.M5.vrmacbsu"
+ case 'u': // 1 string to match.
+ if (NameR[17] != 'u')
+ break;
+ return Intrinsic::hexagon_M5_vrmacbuu; // "exagon.M5.vrmacbuu"
+ }
+ break;
+ case 'p': // 2 strings to match.
+ if (memcmp(NameR.data()+14, "yb", 2))
+ break;
+ switch (NameR[16]) {
+ default: break;
+ case 's': // 1 string to match.
+ if (NameR[17] != 'u')
+ break;
+ return Intrinsic::hexagon_M5_vrmpybsu; // "exagon.M5.vrmpybsu"
+ case 'u': // 1 string to match.
+ if (NameR[17] != 'u')
+ break;
+ return Intrinsic::hexagon_M5_vrmpybuu; // "exagon.M5.vrmpybuu"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 'S': // 35 strings to match.
+ switch (NameR[8]) {
+ default: break;
+ case '2': // 31 strings to match.
+ if (NameR[9] != '.')
+ break;
+ switch (NameR[10]) {
+ default: break;
+ case 'a': // 8 strings to match.
+ if (NameR[11] != 's')
+ break;
+ switch (NameR[12]) {
+ default: break;
+ case 'l': // 4 strings to match.
+ if (NameR[13] != '.')
+ break;
+ switch (NameR[14]) {
+ default: break;
+ case 'i': // 2 strings to match.
+ if (memcmp(NameR.data()+15, ".v", 2))
+ break;
+ switch (NameR[17]) {
+ default: break;
+ case 'h': // 1 string to match.
+ return Intrinsic::hexagon_S2_asl_i_vh; // "exagon.S2.asl.i.vh"
+ case 'w': // 1 string to match.
+ return Intrinsic::hexagon_S2_asl_i_vw; // "exagon.S2.asl.i.vw"
+ }
+ break;
+ case 'r': // 2 strings to match.
+ if (memcmp(NameR.data()+15, ".v", 2))
+ break;
+ switch (NameR[17]) {
+ default: break;
+ case 'h': // 1 string to match.
+ return Intrinsic::hexagon_S2_asl_r_vh; // "exagon.S2.asl.r.vh"
+ case 'w': // 1 string to match.
+ return Intrinsic::hexagon_S2_asl_r_vw; // "exagon.S2.asl.r.vw"
+ }
+ break;
+ }
+ break;
+ case 'r': // 4 strings to match.
+ if (NameR[13] != '.')
+ break;
+ switch (NameR[14]) {
+ default: break;
+ case 'i': // 2 strings to match.
+ if (memcmp(NameR.data()+15, ".v", 2))
+ break;
+ switch (NameR[17]) {
+ default: break;
+ case 'h': // 1 string to match.
+ return Intrinsic::hexagon_S2_asr_i_vh; // "exagon.S2.asr.i.vh"
+ case 'w': // 1 string to match.
+ return Intrinsic::hexagon_S2_asr_i_vw; // "exagon.S2.asr.i.vw"
+ }
+ break;
+ case 'r': // 2 strings to match.
+ if (memcmp(NameR.data()+15, ".v", 2))
+ break;
+ switch (NameR[17]) {
+ default: break;
+ case 'h': // 1 string to match.
+ return Intrinsic::hexagon_S2_asr_r_vh; // "exagon.S2.asr.r.vh"
+ case 'w': // 1 string to match.
+ return Intrinsic::hexagon_S2_asr_r_vw; // "exagon.S2.asr.r.vw"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 'c': // 2 strings to match.
+ if (memcmp(NameR.data()+11, "lrbit.", 6))
+ break;
+ switch (NameR[17]) {
+ default: break;
+ case 'i': // 1 string to match.
+ return Intrinsic::hexagon_S2_clrbit_i; // "exagon.S2.clrbit.i"
+ case 'r': // 1 string to match.
+ return Intrinsic::hexagon_S2_clrbit_r; // "exagon.S2.clrbit.r"
+ }
+ break;
+ case 'e': // 1 string to match.
+ if (memcmp(NameR.data()+11, "xtractu", 7))
+ break;
+ return Intrinsic::hexagon_S2_extractu; // "exagon.S2.extractu"
+ case 'l': // 6 strings to match.
+ if (NameR[11] != 's')
+ break;
+ switch (NameR[12]) {
+ default: break;
+ case 'l': // 2 strings to match.
+ if (memcmp(NameR.data()+13, ".r.v", 4))
+ break;
+ switch (NameR[17]) {
+ default: break;
+ case 'h': // 1 string to match.
+ return Intrinsic::hexagon_S2_lsl_r_vh; // "exagon.S2.lsl.r.vh"
+ case 'w': // 1 string to match.
+ return Intrinsic::hexagon_S2_lsl_r_vw; // "exagon.S2.lsl.r.vw"
+ }
+ break;
+ case 'r': // 4 strings to match.
+ if (NameR[13] != '.')
+ break;
+ switch (NameR[14]) {
+ default: break;
+ case 'i': // 2 strings to match.
+ if (memcmp(NameR.data()+15, ".v", 2))
+ break;
+ switch (NameR[17]) {
+ default: break;
+ case 'h': // 1 string to match.
+ return Intrinsic::hexagon_S2_lsr_i_vh; // "exagon.S2.lsr.i.vh"
+ case 'w': // 1 string to match.
+ return Intrinsic::hexagon_S2_lsr_i_vw; // "exagon.S2.lsr.i.vw"
+ }
+ break;
+ case 'r': // 2 strings to match.
+ if (memcmp(NameR.data()+15, ".v", 2))
+ break;
+ switch (NameR[17]) {
+ default: break;
+ case 'h': // 1 string to match.
+ return Intrinsic::hexagon_S2_lsr_r_vh; // "exagon.S2.lsr.r.vh"
+ case 'w': // 1 string to match.
+ return Intrinsic::hexagon_S2_lsr_r_vw; // "exagon.S2.lsr.r.vw"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 's': // 3 strings to match.
+ switch (NameR[11]) {
+ default: break;
+ case 'e': // 2 strings to match.
+ if (memcmp(NameR.data()+12, "tbit.", 5))
+ break;
+ switch (NameR[17]) {
+ default: break;
+ case 'i': // 1 string to match.
+ return Intrinsic::hexagon_S2_setbit_i; // "exagon.S2.setbit.i"
+ case 'r': // 1 string to match.
+ return Intrinsic::hexagon_S2_setbit_r; // "exagon.S2.setbit.r"
+ }
+ break;
+ case 'v': // 1 string to match.
+ if (memcmp(NameR.data()+12, "sathub", 6))
+ break;
+ return Intrinsic::hexagon_S2_svsathub; // "exagon.S2.svsathub"
+ }
+ break;
+ case 't': // 2 strings to match.
+ if (memcmp(NameR.data()+11, "stbit.", 6))
+ break;
+ switch (NameR[17]) {
+ default: break;
+ case 'i': // 1 string to match.
+ return Intrinsic::hexagon_S2_tstbit_i; // "exagon.S2.tstbit.i"
+ case 'r': // 1 string to match.
+ return Intrinsic::hexagon_S2_tstbit_r; // "exagon.S2.tstbit.r"
+ }
+ break;
+ case 'v': // 9 strings to match.
+ switch (NameR[11]) {
+ default: break;
+ case 'a': // 2 strings to match.
+ if (memcmp(NameR.data()+12, "lign", 4))
+ break;
+ switch (NameR[16]) {
+ default: break;
+ case 'i': // 1 string to match.
+ if (NameR[17] != 'b')
+ break;
+ return Intrinsic::hexagon_S2_valignib; // "exagon.S2.valignib"
+ case 'r': // 1 string to match.
+ if (NameR[17] != 'b')
+ break;
+ return Intrinsic::hexagon_S2_valignrb; // "exagon.S2.valignrb"
+ }
+ break;
+ case 'c': // 1 string to match.
+ if (memcmp(NameR.data()+12, "rotate", 6))
+ break;
+ return Intrinsic::hexagon_S2_vcrotate; // "exagon.S2.vcrotate"
+ case 's': // 2 strings to match.
+ if (memcmp(NameR.data()+12, "platr", 5))
+ break;
+ switch (NameR[17]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::hexagon_S2_vsplatrb; // "exagon.S2.vsplatrb"
+ case 'h': // 1 string to match.
+ return Intrinsic::hexagon_S2_vsplatrh; // "exagon.S2.vsplatrh"
+ }
+ break;
+ case 't': // 4 strings to match.
+ if (memcmp(NameR.data()+12, "run", 3))
+ break;
+ switch (NameR[15]) {
+ default: break;
+ case 'e': // 2 strings to match.
+ switch (NameR[16]) {
+ default: break;
+ case 'h': // 1 string to match.
+ if (NameR[17] != 'b')
+ break;
+ return Intrinsic::hexagon_S2_vtrunehb; // "exagon.S2.vtrunehb"
+ case 'w': // 1 string to match.
+ if (NameR[17] != 'h')
+ break;
+ return Intrinsic::hexagon_S2_vtrunewh; // "exagon.S2.vtrunewh"
+ }
+ break;
+ case 'o': // 2 strings to match.
+ switch (NameR[16]) {
+ default: break;
+ case 'h': // 1 string to match.
+ if (NameR[17] != 'b')
+ break;
+ return Intrinsic::hexagon_S2_vtrunohb; // "exagon.S2.vtrunohb"
+ case 'w': // 1 string to match.
+ if (NameR[17] != 'h')
+ break;
+ return Intrinsic::hexagon_S2_vtrunowh; // "exagon.S2.vtrunowh"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case '4': // 4 strings to match.
+ if (NameR[9] != '.')
+ break;
+ switch (NameR[10]) {
+ default: break;
+ case 'c': // 2 strings to match.
+ if (memcmp(NameR.data()+11, "lbp", 3))
+ break;
+ switch (NameR[14]) {
+ default: break;
+ case 'a': // 1 string to match.
+ if (memcmp(NameR.data()+15, "ddi", 3))
+ break;
+ return Intrinsic::hexagon_S4_clbpaddi; // "exagon.S4.clbpaddi"
+ case 'n': // 1 string to match.
+ if (memcmp(NameR.data()+15, "orm", 3))
+ break;
+ return Intrinsic::hexagon_S4_clbpnorm; // "exagon.S4.clbpnorm"
+ }
+ break;
+ case 'e': // 1 string to match.
+ if (memcmp(NameR.data()+11, "xtractp", 7))
+ break;
+ return Intrinsic::hexagon_S4_extractp; // "exagon.S4.extractp"
+ case 'o': // 1 string to match.
+ if (memcmp(NameR.data()+11, "r.andix", 7))
+ break;
+ return Intrinsic::hexagon_S4_or_andix; // "exagon.S4.or.andix"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 19: // 81 strings to match.
+ if (memcmp(NameR.data()+0, "exagon.", 7))
+ break;
+ switch (NameR[7]) {
+ default: break;
+ case 'A': // 11 strings to match.
+ switch (NameR[8]) {
+ default: break;
+ case '2': // 3 strings to match.
+ if (NameR[9] != '.')
+ break;
+ switch (NameR[10]) {
+ default: break;
+ case 'c': // 1 string to match.
+ if (memcmp(NameR.data()+11, "ombineii", 8))
+ break;
+ return Intrinsic::hexagon_A2_combineii; // "exagon.A2.combineii"
+ case 'v': // 2 strings to match.
+ switch (NameR[11]) {
+ default: break;
+ case 'a': // 1 string to match.
+ if (memcmp(NameR.data()+12, "ddb.map", 7))
+ break;
+ return Intrinsic::hexagon_A2_vaddb_map; // "exagon.A2.vaddb.map"
+ case 's': // 1 string to match.
+ if (memcmp(NameR.data()+12, "ubb.map", 7))
+ break;
+ return Intrinsic::hexagon_A2_vsubb_map; // "exagon.A2.vsubb.map"
+ }
+ break;
+ }
+ break;
+ case '4': // 8 strings to match.
+ if (NameR[9] != '.')
+ break;
+ switch (NameR[10]) {
+ default: break;
+ case 'b': // 1 string to match.
+ if (memcmp(NameR.data()+11, "itspliti", 8))
+ break;
+ return Intrinsic::hexagon_A4_bitspliti; // "exagon.A4.bitspliti"
+ case 'c': // 4 strings to match.
+ switch (NameR[11]) {
+ default: break;
+ case 'o': // 2 strings to match.
+ if (memcmp(NameR.data()+12, "mbine", 5))
+ break;
+ switch (NameR[17]) {
+ default: break;
+ case 'i': // 1 string to match.
+ if (NameR[18] != 'r')
+ break;
+ return Intrinsic::hexagon_A4_combineir; // "exagon.A4.combineir"
+ case 'r': // 1 string to match.
+ if (NameR[18] != 'i')
+ break;
+ return Intrinsic::hexagon_A4_combineri; // "exagon.A4.combineri"
+ }
+ break;
+ case 'r': // 2 strings to match.
+ if (memcmp(NameR.data()+12, "ound.r", 6))
+ break;
+ switch (NameR[18]) {
+ default: break;
+ case 'i': // 1 string to match.
+ return Intrinsic::hexagon_A4_cround_ri; // "exagon.A4.cround.ri"
+ case 'r': // 1 string to match.
+ return Intrinsic::hexagon_A4_cround_rr; // "exagon.A4.cround.rr"
+ }
+ break;
+ }
+ break;
+ case 'v': // 3 strings to match.
+ if (memcmp(NameR.data()+11, "cmp", 3))
+ break;
+ switch (NameR[14]) {
+ default: break;
+ case 'b': // 1 string to match.
+ if (memcmp(NameR.data()+15, "gtui", 4))
+ break;
+ return Intrinsic::hexagon_A4_vcmpbgtui; // "exagon.A4.vcmpbgtui"
+ case 'h': // 1 string to match.
+ if (memcmp(NameR.data()+15, "gtui", 4))
+ break;
+ return Intrinsic::hexagon_A4_vcmphgtui; // "exagon.A4.vcmphgtui"
+ case 'w': // 1 string to match.
+ if (memcmp(NameR.data()+15, "gtui", 4))
+ break;
+ return Intrinsic::hexagon_A4_vcmpwgtui; // "exagon.A4.vcmpwgtui"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 'C': // 2 strings to match.
+ switch (NameR[8]) {
+ default: break;
+ case '2': // 1 string to match.
+ if (memcmp(NameR.data()+9, ".pxfer.map", 10))
+ break;
+ return Intrinsic::hexagon_C2_pxfer_map; // "exagon.C2.pxfer.map"
+ case '4': // 1 string to match.
+ if (memcmp(NameR.data()+9, ".nbitsclri", 10))
+ break;
+ return Intrinsic::hexagon_C4_nbitsclri; // "exagon.C4.nbitsclri"
+ }
+ break;
+ case 'F': // 12 strings to match.
+ if (memcmp(NameR.data()+8, "2.", 2))
+ break;
+ switch (NameR[10]) {
+ default: break;
+ case 'c': // 8 strings to match.
+ if (memcmp(NameR.data()+11, "onv.", 4))
+ break;
+ switch (NameR[15]) {
+ default: break;
+ case 'd': // 4 strings to match.
+ switch (NameR[16]) {
+ default: break;
+ case '2': // 2 strings to match.
+ switch (NameR[17]) {
+ default: break;
+ case 'd': // 1 string to match.
+ if (NameR[18] != 'f')
+ break;
+ return Intrinsic::hexagon_F2_conv_d2df; // "exagon.F2.conv.d2df"
+ case 's': // 1 string to match.
+ if (NameR[18] != 'f')
+ break;
+ return Intrinsic::hexagon_F2_conv_d2sf; // "exagon.F2.conv.d2sf"
+ }
+ break;
+ case 'f': // 2 strings to match.
+ if (NameR[17] != '2')
+ break;
+ switch (NameR[18]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::hexagon_F2_conv_df2d; // "exagon.F2.conv.df2d"
+ case 'w': // 1 string to match.
+ return Intrinsic::hexagon_F2_conv_df2w; // "exagon.F2.conv.df2w"
+ }
+ break;
+ }
+ break;
+ case 's': // 2 strings to match.
+ if (memcmp(NameR.data()+16, "f2", 2))
+ break;
+ switch (NameR[18]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::hexagon_F2_conv_sf2d; // "exagon.F2.conv.sf2d"
+ case 'w': // 1 string to match.
+ return Intrinsic::hexagon_F2_conv_sf2w; // "exagon.F2.conv.sf2w"
+ }
+ break;
+ case 'w': // 2 strings to match.
+ if (NameR[16] != '2')
+ break;
+ switch (NameR[17]) {
+ default: break;
+ case 'd': // 1 string to match.
+ if (NameR[18] != 'f')
+ break;
+ return Intrinsic::hexagon_F2_conv_w2df; // "exagon.F2.conv.w2df"
+ case 's': // 1 string to match.
+ if (NameR[18] != 'f')
+ break;
+ return Intrinsic::hexagon_F2_conv_w2sf; // "exagon.F2.conv.w2sf"
+ }
+ break;
+ }
+ break;
+ case 'd': // 2 strings to match.
+ if (memcmp(NameR.data()+11, "ffm", 3))
+ break;
+ switch (NameR[14]) {
+ default: break;
+ case 'a': // 1 string to match.
+ if (memcmp(NameR.data()+15, ".lib", 4))
+ break;
+ return Intrinsic::hexagon_F2_dffma_lib; // "exagon.F2.dffma.lib"
+ case 's': // 1 string to match.
+ if (memcmp(NameR.data()+15, ".lib", 4))
+ break;
+ return Intrinsic::hexagon_F2_dffms_lib; // "exagon.F2.dffms.lib"
+ }
+ break;
+ case 's': // 2 strings to match.
+ if (memcmp(NameR.data()+11, "ffm", 3))
+ break;
+ switch (NameR[14]) {
+ default: break;
+ case 'a': // 1 string to match.
+ if (memcmp(NameR.data()+15, ".lib", 4))
+ break;
+ return Intrinsic::hexagon_F2_sffma_lib; // "exagon.F2.sffma.lib"
+ case 's': // 1 string to match.
+ if (memcmp(NameR.data()+15, ".lib", 4))
+ break;
+ return Intrinsic::hexagon_F2_sffms_lib; // "exagon.F2.sffms.lib"
+ }
+ break;
+ }
+ break;
+ case 'M': // 44 strings to match.
+ switch (NameR[8]) {
+ default: break;
+ case '2': // 41 strings to match.
+ if (NameR[9] != '.')
+ break;
+ switch (NameR[10]) {
+ default: break;
+ case 'c': // 8 strings to match.
+ switch (NameR[11]) {
+ default: break;
+ case 'm': // 6 strings to match.
+ switch (NameR[12]) {
+ default: break;
+ case 'a': // 2 strings to match.
+ if (memcmp(NameR.data()+13, "csc.s", 5))
+ break;
+ switch (NameR[18]) {
+ default: break;
+ case '0': // 1 string to match.
+ return Intrinsic::hexagon_M2_cmacsc_s0; // "exagon.M2.cmacsc.s0"
+ case '1': // 1 string to match.
+ return Intrinsic::hexagon_M2_cmacsc_s1; // "exagon.M2.cmacsc.s1"
+ }
+ break;
+ case 'p': // 4 strings to match.
+ if (NameR[13] != 'y')
+ break;
+ switch (NameR[14]) {
+ default: break;
+ case 'r': // 2 strings to match.
+ if (memcmp(NameR.data()+15, "s.s", 3))
+ break;
+ switch (NameR[18]) {
+ default: break;
+ case '0': // 1 string to match.
+ return Intrinsic::hexagon_M2_cmpyrs_s0; // "exagon.M2.cmpyrs.s0"
+ case '1': // 1 string to match.
+ return Intrinsic::hexagon_M2_cmpyrs_s1; // "exagon.M2.cmpyrs.s1"
+ }
+ break;
+ case 's': // 2 strings to match.
+ if (memcmp(NameR.data()+15, "c.s", 3))
+ break;
+ switch (NameR[18]) {
+ default: break;
+ case '0': // 1 string to match.
+ return Intrinsic::hexagon_M2_cmpysc_s0; // "exagon.M2.cmpysc.s0"
+ case '1': // 1 string to match.
+ return Intrinsic::hexagon_M2_cmpysc_s1; // "exagon.M2.cmpysc.s1"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 'n': // 2 strings to match.
+ if (memcmp(NameR.data()+12, "acsc.s", 6))
+ break;
+ switch (NameR[18]) {
+ default: break;
+ case '0': // 1 string to match.
+ return Intrinsic::hexagon_M2_cnacsc_s0; // "exagon.M2.cnacsc.s0"
+ case '1': // 1 string to match.
+ return Intrinsic::hexagon_M2_cnacsc_s1; // "exagon.M2.cnacsc.s1"
+ }
+ break;
+ }
+ break;
+ case 'h': // 2 strings to match.
+ if (memcmp(NameR.data()+11, "mmpy", 4))
+ break;
+ switch (NameR[15]) {
+ default: break;
+ case 'h': // 1 string to match.
+ if (memcmp(NameR.data()+16, ".s1", 3))
+ break;
+ return Intrinsic::hexagon_M2_hmmpyh_s1; // "exagon.M2.hmmpyh.s1"
+ case 'l': // 1 string to match.
+ if (memcmp(NameR.data()+16, ".s1", 3))
+ break;
+ return Intrinsic::hexagon_M2_hmmpyl_s1; // "exagon.M2.hmmpyl.s1"
+ }
+ break;
+ case 'm': // 21 strings to match.
+ switch (NameR[11]) {
+ default: break;
+ case 'm': // 12 strings to match.
+ switch (NameR[12]) {
+ default: break;
+ case 'a': // 4 strings to match.
+ if (NameR[13] != 'c')
+ break;
+ switch (NameR[14]) {
+ default: break;
+ case 'h': // 2 strings to match.
+ if (memcmp(NameR.data()+15, "s.s", 3))
+ break;
+ switch (NameR[18]) {
+ default: break;
+ case '0': // 1 string to match.
+ return Intrinsic::hexagon_M2_mmachs_s0; // "exagon.M2.mmachs.s0"
+ case '1': // 1 string to match.
+ return Intrinsic::hexagon_M2_mmachs_s1; // "exagon.M2.mmachs.s1"
+ }
+ break;
+ case 'l': // 2 strings to match.
+ if (memcmp(NameR.data()+15, "s.s", 3))
+ break;
+ switch (NameR[18]) {
+ default: break;
+ case '0': // 1 string to match.
+ return Intrinsic::hexagon_M2_mmacls_s0; // "exagon.M2.mmacls.s0"
+ case '1': // 1 string to match.
+ return Intrinsic::hexagon_M2_mmacls_s1; // "exagon.M2.mmacls.s1"
+ }
+ break;
+ }
+ break;
+ case 'p': // 8 strings to match.
+ if (NameR[13] != 'y')
+ break;
+ switch (NameR[14]) {
+ default: break;
+ case 'h': // 2 strings to match.
+ if (memcmp(NameR.data()+15, ".rs", 3))
+ break;
+ switch (NameR[18]) {
+ default: break;
+ case '0': // 1 string to match.
+ return Intrinsic::hexagon_M2_mmpyh_rs0; // "exagon.M2.mmpyh.rs0"
+ case '1': // 1 string to match.
+ return Intrinsic::hexagon_M2_mmpyh_rs1; // "exagon.M2.mmpyh.rs1"
+ }
+ break;
+ case 'l': // 2 strings to match.
+ if (memcmp(NameR.data()+15, ".rs", 3))
+ break;
+ switch (NameR[18]) {
+ default: break;
+ case '0': // 1 string to match.
+ return Intrinsic::hexagon_M2_mmpyl_rs0; // "exagon.M2.mmpyl.rs0"
+ case '1': // 1 string to match.
+ return Intrinsic::hexagon_M2_mmpyl_rs1; // "exagon.M2.mmpyl.rs1"
+ }
+ break;
+ case 'u': // 4 strings to match.
+ switch (NameR[15]) {
+ default: break;
+ case 'h': // 2 strings to match.
+ if (memcmp(NameR.data()+16, ".s", 2))
+ break;
+ switch (NameR[18]) {
+ default: break;
+ case '0': // 1 string to match.
+ return Intrinsic::hexagon_M2_mmpyuh_s0; // "exagon.M2.mmpyuh.s0"
+ case '1': // 1 string to match.
+ return Intrinsic::hexagon_M2_mmpyuh_s1; // "exagon.M2.mmpyuh.s1"
+ }
+ break;
+ case 'l': // 2 strings to match.
+ if (memcmp(NameR.data()+16, ".s", 2))
+ break;
+ switch (NameR[18]) {
+ default: break;
+ case '0': // 1 string to match.
+ return Intrinsic::hexagon_M2_mmpyul_s0; // "exagon.M2.mmpyul.s0"
+ case '1': // 1 string to match.
+ return Intrinsic::hexagon_M2_mmpyul_s1; // "exagon.M2.mmpyul.s1"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 'p': // 9 strings to match.
+ if (memcmp(NameR.data()+12, "y.", 2))
+ break;
+ switch (NameR[14]) {
+ default: break;
+ case 'h': // 4 strings to match.
+ switch (NameR[15]) {
+ default: break;
+ case 'h': // 2 strings to match.
+ if (memcmp(NameR.data()+16, ".s", 2))
+ break;
+ switch (NameR[18]) {
+ default: break;
+ case '0': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpy_hh_s0; // "exagon.M2.mpy.hh.s0"
+ case '1': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpy_hh_s1; // "exagon.M2.mpy.hh.s1"
+ }
+ break;
+ case 'l': // 2 strings to match.
+ if (memcmp(NameR.data()+16, ".s", 2))
+ break;
+ switch (NameR[18]) {
+ default: break;
+ case '0': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpy_hl_s0; // "exagon.M2.mpy.hl.s0"
+ case '1': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpy_hl_s1; // "exagon.M2.mpy.hl.s1"
+ }
+ break;
+ }
+ break;
+ case 'l': // 4 strings to match.
+ switch (NameR[15]) {
+ default: break;
+ case 'h': // 2 strings to match.
+ if (memcmp(NameR.data()+16, ".s", 2))
+ break;
+ switch (NameR[18]) {
+ default: break;
+ case '0': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpy_lh_s0; // "exagon.M2.mpy.lh.s0"
+ case '1': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpy_lh_s1; // "exagon.M2.mpy.lh.s1"
+ }
+ break;
+ case 'l': // 2 strings to match.
+ if (memcmp(NameR.data()+16, ".s", 2))
+ break;
+ switch (NameR[18]) {
+ default: break;
+ case '0': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpy_ll_s0; // "exagon.M2.mpy.ll.s0"
+ case '1': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpy_ll_s1; // "exagon.M2.mpy.ll.s1"
+ }
+ break;
+ }
+ break;
+ case 'u': // 1 string to match.
+ if (memcmp(NameR.data()+15, "p.s1", 4))
+ break;
+ return Intrinsic::hexagon_M2_mpy_up_s1; // "exagon.M2.mpy.up.s1"
+ }
+ break;
+ }
+ break;
+ case 'v': // 10 strings to match.
+ switch (NameR[11]) {
+ default: break;
+ case 'a': // 2 strings to match.
+ if (memcmp(NameR.data()+12, "bsdiff", 6))
+ break;
+ switch (NameR[18]) {
+ default: break;
+ case 'h': // 1 string to match.
+ return Intrinsic::hexagon_M2_vabsdiffh; // "exagon.M2.vabsdiffh"
+ case 'w': // 1 string to match.
+ return Intrinsic::hexagon_M2_vabsdiffw; // "exagon.M2.vabsdiffw"
+ }
+ break;
+ case 'd': // 4 strings to match.
+ if (NameR[12] != 'm')
+ break;
+ switch (NameR[13]) {
+ default: break;
+ case 'a': // 2 strings to match.
+ if (memcmp(NameR.data()+14, "cs.s", 4))
+ break;
+ switch (NameR[18]) {
+ default: break;
+ case '0': // 1 string to match.
+ return Intrinsic::hexagon_M2_vdmacs_s0; // "exagon.M2.vdmacs.s0"
+ case '1': // 1 string to match.
+ return Intrinsic::hexagon_M2_vdmacs_s1; // "exagon.M2.vdmacs.s1"
+ }
+ break;
+ case 'p': // 2 strings to match.
+ if (memcmp(NameR.data()+14, "ys.s", 4))
+ break;
+ switch (NameR[18]) {
+ default: break;
+ case '0': // 1 string to match.
+ return Intrinsic::hexagon_M2_vdmpys_s0; // "exagon.M2.vdmpys.s0"
+ case '1': // 1 string to match.
+ return Intrinsic::hexagon_M2_vdmpys_s1; // "exagon.M2.vdmpys.s1"
+ }
+ break;
+ }
+ break;
+ case 'm': // 4 strings to match.
+ switch (NameR[12]) {
+ default: break;
+ case 'a': // 2 strings to match.
+ if (memcmp(NameR.data()+13, "c2s.s", 5))
+ break;
+ switch (NameR[18]) {
+ default: break;
+ case '0': // 1 string to match.
+ return Intrinsic::hexagon_M2_vmac2s_s0; // "exagon.M2.vmac2s.s0"
+ case '1': // 1 string to match.
+ return Intrinsic::hexagon_M2_vmac2s_s1; // "exagon.M2.vmac2s.s1"
+ }
+ break;
+ case 'p': // 2 strings to match.
+ if (memcmp(NameR.data()+13, "y2s.s", 5))
+ break;
+ switch (NameR[18]) {
+ default: break;
+ case '0': // 1 string to match.
+ return Intrinsic::hexagon_M2_vmpy2s_s0; // "exagon.M2.vmpy2s.s0"
+ case '1': // 1 string to match.
+ return Intrinsic::hexagon_M2_vmpy2s_s1; // "exagon.M2.vmpy2s.s1"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case '4': // 3 strings to match.
+ if (NameR[9] != '.')
+ break;
+ switch (NameR[10]) {
+ default: break;
+ case 'c': // 2 strings to match.
+ if (memcmp(NameR.data()+11, "mpy", 3))
+ break;
+ switch (NameR[14]) {
+ default: break;
+ case 'i': // 1 string to match.
+ if (memcmp(NameR.data()+15, ".whc", 4))
+ break;
+ return Intrinsic::hexagon_M4_cmpyi_whc; // "exagon.M4.cmpyi.whc"
+ case 'r': // 1 string to match.
+ if (memcmp(NameR.data()+15, ".whc", 4))
+ break;
+ return Intrinsic::hexagon_M4_cmpyr_whc; // "exagon.M4.cmpyr.whc"
+ }
+ break;
+ case 'p': // 1 string to match.
+ if (memcmp(NameR.data()+11, "mpyw.acc", 8))
+ break;
+ return Intrinsic::hexagon_M4_pmpyw_acc; // "exagon.M4.pmpyw.acc"
+ }
+ break;
+ }
+ break;
+ case 'S': // 12 strings to match.
+ switch (NameR[8]) {
+ default: break;
+ case '2': // 4 strings to match.
+ if (NameR[9] != '.')
+ break;
+ switch (NameR[10]) {
+ default: break;
+ case 'e': // 1 string to match.
+ if (memcmp(NameR.data()+11, "xtractup", 8))
+ break;
+ return Intrinsic::hexagon_S2_extractup; // "exagon.S2.extractup"
+ case 'i': // 1 string to match.
+ if (memcmp(NameR.data()+11, "nsert.rp", 8))
+ break;
+ return Intrinsic::hexagon_S2_insert_rp; // "exagon.S2.insert.rp"
+ case 'v': // 2 strings to match.
+ if (memcmp(NameR.data()+11, "splice", 6))
+ break;
+ switch (NameR[17]) {
+ default: break;
+ case 'i': // 1 string to match.
+ if (NameR[18] != 'b')
+ break;
+ return Intrinsic::hexagon_S2_vspliceib; // "exagon.S2.vspliceib"
+ case 'r': // 1 string to match.
+ if (NameR[18] != 'b')
+ break;
+ return Intrinsic::hexagon_S2_vsplicerb; // "exagon.S2.vsplicerb"
+ }
+ break;
+ }
+ break;
+ case '4': // 7 strings to match.
+ if (NameR[9] != '.')
+ break;
+ switch (NameR[10]) {
+ default: break;
+ case 'n': // 2 strings to match.
+ if (memcmp(NameR.data()+11, "tstbit.", 7))
+ break;
+ switch (NameR[18]) {
+ default: break;
+ case 'i': // 1 string to match.
+ return Intrinsic::hexagon_S4_ntstbit_i; // "exagon.S4.ntstbit.i"
+ case 'r': // 1 string to match.
+ return Intrinsic::hexagon_S4_ntstbit_r; // "exagon.S4.ntstbit.r"
+ }
+ break;
+ case 'v': // 5 strings to match.
+ switch (NameR[11]) {
+ default: break;
+ case 'r': // 1 string to match.
+ if (memcmp(NameR.data()+12, "crotate", 7))
+ break;
+ return Intrinsic::hexagon_S4_vrcrotate; // "exagon.S4.vrcrotate"
+ case 'x': // 4 strings to match.
+ switch (NameR[12]) {
+ default: break;
+ case 'a': // 2 strings to match.
+ if (memcmp(NameR.data()+13, "ddsub", 5))
+ break;
+ switch (NameR[18]) {
+ default: break;
+ case 'h': // 1 string to match.
+ return Intrinsic::hexagon_S4_vxaddsubh; // "exagon.S4.vxaddsubh"
+ case 'w': // 1 string to match.
+ return Intrinsic::hexagon_S4_vxaddsubw; // "exagon.S4.vxaddsubw"
+ }
+ break;
+ case 's': // 2 strings to match.
+ if (memcmp(NameR.data()+13, "ubadd", 5))
+ break;
+ switch (NameR[18]) {
+ default: break;
+ case 'h': // 1 string to match.
+ return Intrinsic::hexagon_S4_vxsubaddh; // "exagon.S4.vxsubaddh"
+ case 'w': // 1 string to match.
+ return Intrinsic::hexagon_S4_vxsubaddw; // "exagon.S4.vxsubaddw"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case '5': // 1 string to match.
+ if (memcmp(NameR.data()+9, ".popcountp", 10))
+ break;
+ return Intrinsic::hexagon_S5_popcountp; // "exagon.S5.popcountp"
+ }
+ break;
+ }
+ break;
+ case 20: // 95 strings to match.
+ if (memcmp(NameR.data()+0, "exagon.", 7))
+ break;
+ switch (NameR[7]) {
+ default: break;
+ case 'A': // 4 strings to match.
+ if (memcmp(NameR.data()+8, "2.combine.", 10))
+ break;
+ switch (NameR[18]) {
+ default: break;
+ case 'h': // 2 strings to match.
+ switch (NameR[19]) {
+ default: break;
+ case 'h': // 1 string to match.
+ return Intrinsic::hexagon_A2_combine_hh; // "exagon.A2.combine.hh"
+ case 'l': // 1 string to match.
+ return Intrinsic::hexagon_A2_combine_hl; // "exagon.A2.combine.hl"
+ }
+ break;
+ case 'l': // 2 strings to match.
+ switch (NameR[19]) {
+ default: break;
+ case 'h': // 1 string to match.
+ return Intrinsic::hexagon_A2_combine_lh; // "exagon.A2.combine.lh"
+ case 'l': // 1 string to match.
+ return Intrinsic::hexagon_A2_combine_ll; // "exagon.A2.combine.ll"
+ }
+ break;
+ }
+ break;
+ case 'F': // 10 strings to match.
+ if (memcmp(NameR.data()+8, "2.conv.", 7))
+ break;
+ switch (NameR[15]) {
+ default: break;
+ case 'd': // 3 strings to match.
+ if (memcmp(NameR.data()+16, "f2", 2))
+ break;
+ switch (NameR[18]) {
+ default: break;
+ case 's': // 1 string to match.
+ if (NameR[19] != 'f')
+ break;
+ return Intrinsic::hexagon_F2_conv_df2sf; // "exagon.F2.conv.df2sf"
+ case 'u': // 2 strings to match.
+ switch (NameR[19]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::hexagon_F2_conv_df2ud; // "exagon.F2.conv.df2ud"
+ case 'w': // 1 string to match.
+ return Intrinsic::hexagon_F2_conv_df2uw; // "exagon.F2.conv.df2uw"
+ }
+ break;
+ }
+ break;
+ case 's': // 3 strings to match.
+ if (memcmp(NameR.data()+16, "f2", 2))
+ break;
+ switch (NameR[18]) {
+ default: break;
+ case 'd': // 1 string to match.
+ if (NameR[19] != 'f')
+ break;
+ return Intrinsic::hexagon_F2_conv_sf2df; // "exagon.F2.conv.sf2df"
+ case 'u': // 2 strings to match.
+ switch (NameR[19]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::hexagon_F2_conv_sf2ud; // "exagon.F2.conv.sf2ud"
+ case 'w': // 1 string to match.
+ return Intrinsic::hexagon_F2_conv_sf2uw; // "exagon.F2.conv.sf2uw"
+ }
+ break;
+ }
+ break;
+ case 'u': // 4 strings to match.
+ switch (NameR[16]) {
+ default: break;
+ case 'd': // 2 strings to match.
+ if (NameR[17] != '2')
+ break;
+ switch (NameR[18]) {
+ default: break;
+ case 'd': // 1 string to match.
+ if (NameR[19] != 'f')
+ break;
+ return Intrinsic::hexagon_F2_conv_ud2df; // "exagon.F2.conv.ud2df"
+ case 's': // 1 string to match.
+ if (NameR[19] != 'f')
+ break;
+ return Intrinsic::hexagon_F2_conv_ud2sf; // "exagon.F2.conv.ud2sf"
+ }
+ break;
+ case 'w': // 2 strings to match.
+ if (NameR[17] != '2')
+ break;
+ switch (NameR[18]) {
+ default: break;
+ case 'd': // 1 string to match.
+ if (NameR[19] != 'f')
+ break;
+ return Intrinsic::hexagon_F2_conv_uw2df; // "exagon.F2.conv.uw2df"
+ case 's': // 1 string to match.
+ if (NameR[19] != 'f')
+ break;
+ return Intrinsic::hexagon_F2_conv_uw2sf; // "exagon.F2.conv.uw2sf"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 'M': // 58 strings to match.
+ switch (NameR[8]) {
+ default: break;
+ case '2': // 49 strings to match.
+ if (NameR[9] != '.')
+ break;
+ switch (NameR[10]) {
+ default: break;
+ case 'c': // 2 strings to match.
+ if (memcmp(NameR.data()+11, "mpyrsc.s", 8))
+ break;
+ switch (NameR[19]) {
+ default: break;
+ case '0': // 1 string to match.
+ return Intrinsic::hexagon_M2_cmpyrsc_s0; // "exagon.M2.cmpyrsc.s0"
+ case '1': // 1 string to match.
+ return Intrinsic::hexagon_M2_cmpyrsc_s1; // "exagon.M2.cmpyrsc.s1"
+ }
+ break;
+ case 'd': // 2 strings to match.
+ if (memcmp(NameR.data()+11, "pmpy", 4))
+ break;
+ switch (NameR[15]) {
+ default: break;
+ case 's': // 1 string to match.
+ if (memcmp(NameR.data()+16, "s.s0", 4))
+ break;
+ return Intrinsic::hexagon_M2_dpmpyss_s0; // "exagon.M2.dpmpyss.s0"
+ case 'u': // 1 string to match.
+ if (memcmp(NameR.data()+16, "u.s0", 4))
+ break;
+ return Intrinsic::hexagon_M2_dpmpyuu_s0; // "exagon.M2.dpmpyuu.s0"
+ }
+ break;
+ case 'h': // 2 strings to match.
+ if (memcmp(NameR.data()+11, "mmpy", 4))
+ break;
+ switch (NameR[15]) {
+ default: break;
+ case 'h': // 1 string to match.
+ if (memcmp(NameR.data()+16, ".rs1", 4))
+ break;
+ return Intrinsic::hexagon_M2_hmmpyh_rs1; // "exagon.M2.hmmpyh.rs1"
+ case 'l': // 1 string to match.
+ if (memcmp(NameR.data()+16, ".rs1", 4))
+ break;
+ return Intrinsic::hexagon_M2_hmmpyl_rs1; // "exagon.M2.hmmpyl.rs1"
+ }
+ break;
+ case 'm': // 28 strings to match.
+ switch (NameR[11]) {
+ default: break;
+ case 'm': // 12 strings to match.
+ switch (NameR[12]) {
+ default: break;
+ case 'a': // 8 strings to match.
+ if (NameR[13] != 'c')
+ break;
+ switch (NameR[14]) {
+ default: break;
+ case 'h': // 2 strings to match.
+ if (memcmp(NameR.data()+15, "s.rs", 4))
+ break;
+ switch (NameR[19]) {
+ default: break;
+ case '0': // 1 string to match.
+ return Intrinsic::hexagon_M2_mmachs_rs0; // "exagon.M2.mmachs.rs0"
+ case '1': // 1 string to match.
+ return Intrinsic::hexagon_M2_mmachs_rs1; // "exagon.M2.mmachs.rs1"
+ }
+ break;
+ case 'l': // 2 strings to match.
+ if (memcmp(NameR.data()+15, "s.rs", 4))
+ break;
+ switch (NameR[19]) {
+ default: break;
+ case '0': // 1 string to match.
+ return Intrinsic::hexagon_M2_mmacls_rs0; // "exagon.M2.mmacls.rs0"
+ case '1': // 1 string to match.
+ return Intrinsic::hexagon_M2_mmacls_rs1; // "exagon.M2.mmacls.rs1"
+ }
+ break;
+ case 'u': // 4 strings to match.
+ switch (NameR[15]) {
+ default: break;
+ case 'h': // 2 strings to match.
+ if (memcmp(NameR.data()+16, "s.s", 3))
+ break;
+ switch (NameR[19]) {
+ default: break;
+ case '0': // 1 string to match.
+ return Intrinsic::hexagon_M2_mmacuhs_s0; // "exagon.M2.mmacuhs.s0"
+ case '1': // 1 string to match.
+ return Intrinsic::hexagon_M2_mmacuhs_s1; // "exagon.M2.mmacuhs.s1"
+ }
+ break;
+ case 'l': // 2 strings to match.
+ if (memcmp(NameR.data()+16, "s.s", 3))
+ break;
+ switch (NameR[19]) {
+ default: break;
+ case '0': // 1 string to match.
+ return Intrinsic::hexagon_M2_mmaculs_s0; // "exagon.M2.mmaculs.s0"
+ case '1': // 1 string to match.
+ return Intrinsic::hexagon_M2_mmaculs_s1; // "exagon.M2.mmaculs.s1"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 'p': // 4 strings to match.
+ if (memcmp(NameR.data()+13, "yu", 2))
+ break;
+ switch (NameR[15]) {
+ default: break;
+ case 'h': // 2 strings to match.
+ if (memcmp(NameR.data()+16, ".rs", 3))
+ break;
+ switch (NameR[19]) {
+ default: break;
+ case '0': // 1 string to match.
+ return Intrinsic::hexagon_M2_mmpyuh_rs0; // "exagon.M2.mmpyuh.rs0"
+ case '1': // 1 string to match.
+ return Intrinsic::hexagon_M2_mmpyuh_rs1; // "exagon.M2.mmpyuh.rs1"
+ }
+ break;
+ case 'l': // 2 strings to match.
+ if (memcmp(NameR.data()+16, ".rs", 3))
+ break;
+ switch (NameR[19]) {
+ default: break;
+ case '0': // 1 string to match.
+ return Intrinsic::hexagon_M2_mmpyul_rs0; // "exagon.M2.mmpyul.rs0"
+ case '1': // 1 string to match.
+ return Intrinsic::hexagon_M2_mmpyul_rs1; // "exagon.M2.mmpyul.rs1"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 'p': // 16 strings to match.
+ if (NameR[12] != 'y')
+ break;
+ switch (NameR[13]) {
+ default: break;
+ case 'd': // 8 strings to match.
+ if (NameR[14] != '.')
+ break;
+ switch (NameR[15]) {
+ default: break;
+ case 'h': // 4 strings to match.
+ switch (NameR[16]) {
+ default: break;
+ case 'h': // 2 strings to match.
+ if (memcmp(NameR.data()+17, ".s", 2))
+ break;
+ switch (NameR[19]) {
+ default: break;
+ case '0': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpyd_hh_s0; // "exagon.M2.mpyd.hh.s0"
+ case '1': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpyd_hh_s1; // "exagon.M2.mpyd.hh.s1"
+ }
+ break;
+ case 'l': // 2 strings to match.
+ if (memcmp(NameR.data()+17, ".s", 2))
+ break;
+ switch (NameR[19]) {
+ default: break;
+ case '0': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpyd_hl_s0; // "exagon.M2.mpyd.hl.s0"
+ case '1': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpyd_hl_s1; // "exagon.M2.mpyd.hl.s1"
+ }
+ break;
+ }
+ break;
+ case 'l': // 4 strings to match.
+ switch (NameR[16]) {
+ default: break;
+ case 'h': // 2 strings to match.
+ if (memcmp(NameR.data()+17, ".s", 2))
+ break;
+ switch (NameR[19]) {
+ default: break;
+ case '0': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpyd_lh_s0; // "exagon.M2.mpyd.lh.s0"
+ case '1': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpyd_lh_s1; // "exagon.M2.mpyd.lh.s1"
+ }
+ break;
+ case 'l': // 2 strings to match.
+ if (memcmp(NameR.data()+17, ".s", 2))
+ break;
+ switch (NameR[19]) {
+ default: break;
+ case '0': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpyd_ll_s0; // "exagon.M2.mpyd.ll.s0"
+ case '1': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpyd_ll_s1; // "exagon.M2.mpyd.ll.s1"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 'u': // 8 strings to match.
+ if (NameR[14] != '.')
+ break;
+ switch (NameR[15]) {
+ default: break;
+ case 'h': // 4 strings to match.
+ switch (NameR[16]) {
+ default: break;
+ case 'h': // 2 strings to match.
+ if (memcmp(NameR.data()+17, ".s", 2))
+ break;
+ switch (NameR[19]) {
+ default: break;
+ case '0': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpyu_hh_s0; // "exagon.M2.mpyu.hh.s0"
+ case '1': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpyu_hh_s1; // "exagon.M2.mpyu.hh.s1"
+ }
+ break;
+ case 'l': // 2 strings to match.
+ if (memcmp(NameR.data()+17, ".s", 2))
+ break;
+ switch (NameR[19]) {
+ default: break;
+ case '0': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpyu_hl_s0; // "exagon.M2.mpyu.hl.s0"
+ case '1': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpyu_hl_s1; // "exagon.M2.mpyu.hl.s1"
+ }
+ break;
+ }
+ break;
+ case 'l': // 4 strings to match.
+ switch (NameR[16]) {
+ default: break;
+ case 'h': // 2 strings to match.
+ if (memcmp(NameR.data()+17, ".s", 2))
+ break;
+ switch (NameR[19]) {
+ default: break;
+ case '0': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpyu_lh_s0; // "exagon.M2.mpyu.lh.s0"
+ case '1': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpyu_lh_s1; // "exagon.M2.mpyu.lh.s1"
+ }
+ break;
+ case 'l': // 2 strings to match.
+ if (memcmp(NameR.data()+17, ".s", 2))
+ break;
+ switch (NameR[19]) {
+ default: break;
+ case '0': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpyu_ll_s0; // "exagon.M2.mpyu.ll.s0"
+ case '1': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpyu_ll_s1; // "exagon.M2.mpyu.ll.s1"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 'v': // 15 strings to match.
+ switch (NameR[11]) {
+ default: break;
+ case 'd': // 2 strings to match.
+ if (memcmp(NameR.data()+12, "mpyrs.s", 7))
+ break;
+ switch (NameR[19]) {
+ default: break;
+ case '0': // 1 string to match.
+ return Intrinsic::hexagon_M2_vdmpyrs_s0; // "exagon.M2.vdmpyrs.s0"
+ case '1': // 1 string to match.
+ return Intrinsic::hexagon_M2_vdmpyrs_s1; // "exagon.M2.vdmpyrs.s1"
+ }
+ break;
+ case 'm': // 8 strings to match.
+ switch (NameR[12]) {
+ default: break;
+ case 'a': // 4 strings to match.
+ if (memcmp(NameR.data()+13, "c2", 2))
+ break;
+ switch (NameR[15]) {
+ default: break;
+ case 'e': // 2 strings to match.
+ if (memcmp(NameR.data()+16, "s.s", 3))
+ break;
+ switch (NameR[19]) {
+ default: break;
+ case '0': // 1 string to match.
+ return Intrinsic::hexagon_M2_vmac2es_s0; // "exagon.M2.vmac2es.s0"
+ case '1': // 1 string to match.
+ return Intrinsic::hexagon_M2_vmac2es_s1; // "exagon.M2.vmac2es.s1"
+ }
+ break;
+ case 's': // 2 strings to match.
+ if (memcmp(NameR.data()+16, "u.s", 3))
+ break;
+ switch (NameR[19]) {
+ default: break;
+ case '0': // 1 string to match.
+ return Intrinsic::hexagon_M2_vmac2su_s0; // "exagon.M2.vmac2su.s0"
+ case '1': // 1 string to match.
+ return Intrinsic::hexagon_M2_vmac2su_s1; // "exagon.M2.vmac2su.s1"
+ }
+ break;
+ }
+ break;
+ case 'p': // 4 strings to match.
+ if (memcmp(NameR.data()+13, "y2", 2))
+ break;
+ switch (NameR[15]) {
+ default: break;
+ case 'e': // 2 strings to match.
+ if (memcmp(NameR.data()+16, "s.s", 3))
+ break;
+ switch (NameR[19]) {
+ default: break;
+ case '0': // 1 string to match.
+ return Intrinsic::hexagon_M2_vmpy2es_s0; // "exagon.M2.vmpy2es.s0"
+ case '1': // 1 string to match.
+ return Intrinsic::hexagon_M2_vmpy2es_s1; // "exagon.M2.vmpy2es.s1"
+ }
+ break;
+ case 's': // 2 strings to match.
+ if (memcmp(NameR.data()+16, "u.s", 3))
+ break;
+ switch (NameR[19]) {
+ default: break;
+ case '0': // 1 string to match.
+ return Intrinsic::hexagon_M2_vmpy2su_s0; // "exagon.M2.vmpy2su.s0"
+ case '1': // 1 string to match.
+ return Intrinsic::hexagon_M2_vmpy2su_s1; // "exagon.M2.vmpy2su.s1"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 'r': // 5 strings to match.
+ if (memcmp(NameR.data()+12, "cm", 2))
+ break;
+ switch (NameR[14]) {
+ default: break;
+ case 'a': // 2 strings to match.
+ if (NameR[15] != 'c')
+ break;
+ switch (NameR[16]) {
+ default: break;
+ case 'i': // 1 string to match.
+ if (memcmp(NameR.data()+17, ".s0", 3))
+ break;
+ return Intrinsic::hexagon_M2_vrcmaci_s0; // "exagon.M2.vrcmaci.s0"
+ case 'r': // 1 string to match.
+ if (memcmp(NameR.data()+17, ".s0", 3))
+ break;
+ return Intrinsic::hexagon_M2_vrcmacr_s0; // "exagon.M2.vrcmacr.s0"
+ }
+ break;
+ case 'p': // 3 strings to match.
+ if (NameR[15] != 'y')
+ break;
+ switch (NameR[16]) {
+ default: break;
+ case 'i': // 1 string to match.
+ if (memcmp(NameR.data()+17, ".s0", 3))
+ break;
+ return Intrinsic::hexagon_M2_vrcmpyi_s0; // "exagon.M2.vrcmpyi.s0"
+ case 'r': // 1 string to match.
+ if (memcmp(NameR.data()+17, ".s0", 3))
+ break;
+ return Intrinsic::hexagon_M2_vrcmpyr_s0; // "exagon.M2.vrcmpyr.s0"
+ case 's': // 1 string to match.
+ if (memcmp(NameR.data()+17, ".s1", 3))
+ break;
+ return Intrinsic::hexagon_M2_vrcmpys_s1; // "exagon.M2.vrcmpys.s1"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case '4': // 9 strings to match.
+ if (NameR[9] != '.')
+ break;
+ switch (NameR[10]) {
+ default: break;
+ case 'm': // 4 strings to match.
+ if (memcmp(NameR.data()+11, "pyr", 3))
+ break;
+ switch (NameR[14]) {
+ default: break;
+ case 'i': // 2 strings to match.
+ if (memcmp(NameR.data()+15, ".add", 4))
+ break;
+ switch (NameR[19]) {
+ default: break;
+ case 'i': // 1 string to match.
+ return Intrinsic::hexagon_M4_mpyri_addi; // "exagon.M4.mpyri.addi"
+ case 'r': // 1 string to match.
+ return Intrinsic::hexagon_M4_mpyri_addr; // "exagon.M4.mpyri.addr"
+ }
+ break;
+ case 'r': // 2 strings to match.
+ if (memcmp(NameR.data()+15, ".add", 4))
+ break;
+ switch (NameR[19]) {
+ default: break;
+ case 'i': // 1 string to match.
+ return Intrinsic::hexagon_M4_mpyrr_addi; // "exagon.M4.mpyrr.addi"
+ case 'r': // 1 string to match.
+ return Intrinsic::hexagon_M4_mpyrr_addr; // "exagon.M4.mpyrr.addr"
+ }
+ break;
+ }
+ break;
+ case 'v': // 5 strings to match.
+ switch (NameR[11]) {
+ default: break;
+ case 'p': // 1 string to match.
+ if (memcmp(NameR.data()+12, "mpyh.acc", 8))
+ break;
+ return Intrinsic::hexagon_M4_vpmpyh_acc; // "exagon.M4.vpmpyh.acc"
+ case 'r': // 4 strings to match.
+ if (memcmp(NameR.data()+12, "mpy", 3))
+ break;
+ switch (NameR[15]) {
+ default: break;
+ case 'e': // 2 strings to match.
+ if (memcmp(NameR.data()+16, "h.s", 3))
+ break;
+ switch (NameR[19]) {
+ default: break;
+ case '0': // 1 string to match.
+ return Intrinsic::hexagon_M4_vrmpyeh_s0; // "exagon.M4.vrmpyeh.s0"
+ case '1': // 1 string to match.
+ return Intrinsic::hexagon_M4_vrmpyeh_s1; // "exagon.M4.vrmpyeh.s1"
+ }
+ break;
+ case 'o': // 2 strings to match.
+ if (memcmp(NameR.data()+16, "h.s", 3))
+ break;
+ switch (NameR[19]) {
+ default: break;
+ case '0': // 1 string to match.
+ return Intrinsic::hexagon_M4_vrmpyoh_s0; // "exagon.M4.vrmpyoh.s0"
+ case '1': // 1 string to match.
+ return Intrinsic::hexagon_M4_vrmpyoh_s1; // "exagon.M4.vrmpyoh.s1"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 'S': // 23 strings to match.
+ switch (NameR[8]) {
+ default: break;
+ case '2': // 17 strings to match.
+ if (NameR[9] != '.')
+ break;
+ switch (NameR[10]) {
+ default: break;
+ case 'a': // 8 strings to match.
+ if (NameR[11] != 's')
+ break;
+ switch (NameR[12]) {
+ default: break;
+ case 'l': // 4 strings to match.
+ if (NameR[13] != '.')
+ break;
+ switch (NameR[14]) {
+ default: break;
+ case 'i': // 2 strings to match.
+ if (NameR[15] != '.')
+ break;
+ switch (NameR[16]) {
+ default: break;
+ case 'p': // 1 string to match.
+ if (memcmp(NameR.data()+17, ".or", 3))
+ break;
+ return Intrinsic::hexagon_S2_asl_i_p_or; // "exagon.S2.asl.i.p.or"
+ case 'r': // 1 string to match.
+ if (memcmp(NameR.data()+17, ".or", 3))
+ break;
+ return Intrinsic::hexagon_S2_asl_i_r_or; // "exagon.S2.asl.i.r.or"
+ }
+ break;
+ case 'r': // 2 strings to match.
+ if (NameR[15] != '.')
+ break;
+ switch (NameR[16]) {
+ default: break;
+ case 'p': // 1 string to match.
+ if (memcmp(NameR.data()+17, ".or", 3))
+ break;
+ return Intrinsic::hexagon_S2_asl_r_p_or; // "exagon.S2.asl.r.p.or"
+ case 'r': // 1 string to match.
+ if (memcmp(NameR.data()+17, ".or", 3))
+ break;
+ return Intrinsic::hexagon_S2_asl_r_r_or; // "exagon.S2.asl.r.r.or"
+ }
+ break;
+ }
+ break;
+ case 'r': // 4 strings to match.
+ if (NameR[13] != '.')
+ break;
+ switch (NameR[14]) {
+ default: break;
+ case 'i': // 2 strings to match.
+ if (NameR[15] != '.')
+ break;
+ switch (NameR[16]) {
+ default: break;
+ case 'p': // 1 string to match.
+ if (memcmp(NameR.data()+17, ".or", 3))
+ break;
+ return Intrinsic::hexagon_S2_asr_i_p_or; // "exagon.S2.asr.i.p.or"
+ case 'r': // 1 string to match.
+ if (memcmp(NameR.data()+17, ".or", 3))
+ break;
+ return Intrinsic::hexagon_S2_asr_i_r_or; // "exagon.S2.asr.i.r.or"
+ }
+ break;
+ case 'r': // 2 strings to match.
+ if (NameR[15] != '.')
+ break;
+ switch (NameR[16]) {
+ default: break;
+ case 'p': // 1 string to match.
+ if (memcmp(NameR.data()+17, ".or", 3))
+ break;
+ return Intrinsic::hexagon_S2_asr_r_p_or; // "exagon.S2.asr.r.p.or"
+ case 'r': // 1 string to match.
+ if (memcmp(NameR.data()+17, ".or", 3))
+ break;
+ return Intrinsic::hexagon_S2_asr_r_r_or; // "exagon.S2.asr.r.r.or"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 'i': // 2 strings to match.
+ if (NameR[11] != 'n')
+ break;
+ switch (NameR[12]) {
+ default: break;
+ case 's': // 1 string to match.
+ if (memcmp(NameR.data()+13, "ertp.rp", 7))
+ break;
+ return Intrinsic::hexagon_S2_insertp_rp; // "exagon.S2.insertp.rp"
+ case 't': // 1 string to match.
+ if (memcmp(NameR.data()+13, "erleave", 7))
+ break;
+ return Intrinsic::hexagon_S2_interleave; // "exagon.S2.interleave"
+ }
+ break;
+ case 'l': // 6 strings to match.
+ if (NameR[11] != 's')
+ break;
+ switch (NameR[12]) {
+ default: break;
+ case 'l': // 2 strings to match.
+ if (memcmp(NameR.data()+13, ".r.", 3))
+ break;
+ switch (NameR[16]) {
+ default: break;
+ case 'p': // 1 string to match.
+ if (memcmp(NameR.data()+17, ".or", 3))
+ break;
+ return Intrinsic::hexagon_S2_lsl_r_p_or; // "exagon.S2.lsl.r.p.or"
+ case 'r': // 1 string to match.
+ if (memcmp(NameR.data()+17, ".or", 3))
+ break;
+ return Intrinsic::hexagon_S2_lsl_r_r_or; // "exagon.S2.lsl.r.r.or"
+ }
+ break;
+ case 'r': // 4 strings to match.
+ if (NameR[13] != '.')
+ break;
+ switch (NameR[14]) {
+ default: break;
+ case 'i': // 2 strings to match.
+ if (NameR[15] != '.')
+ break;
+ switch (NameR[16]) {
+ default: break;
+ case 'p': // 1 string to match.
+ if (memcmp(NameR.data()+17, ".or", 3))
+ break;
+ return Intrinsic::hexagon_S2_lsr_i_p_or; // "exagon.S2.lsr.i.p.or"
+ case 'r': // 1 string to match.
+ if (memcmp(NameR.data()+17, ".or", 3))
+ break;
+ return Intrinsic::hexagon_S2_lsr_i_r_or; // "exagon.S2.lsr.i.r.or"
+ }
+ break;
+ case 'r': // 2 strings to match.
+ if (NameR[15] != '.')
+ break;
+ switch (NameR[16]) {
+ default: break;
+ case 'p': // 1 string to match.
+ if (memcmp(NameR.data()+17, ".or", 3))
+ break;
+ return Intrinsic::hexagon_S2_lsr_r_p_or; // "exagon.S2.lsr.r.p.or"
+ case 'r': // 1 string to match.
+ if (memcmp(NameR.data()+17, ".or", 3))
+ break;
+ return Intrinsic::hexagon_S2_lsr_r_r_or; // "exagon.S2.lsr.r.r.or"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 'v': // 1 string to match.
+ if (memcmp(NameR.data()+11, "rndpackwh", 9))
+ break;
+ return Intrinsic::hexagon_S2_vrndpackwh; // "exagon.S2.vrndpackwh"
+ }
+ break;
+ case '4': // 5 strings to match.
+ if (NameR[9] != '.')
+ break;
+ switch (NameR[10]) {
+ default: break;
+ case 'e': // 1 string to match.
+ if (memcmp(NameR.data()+11, "xtract.rp", 9))
+ break;
+ return Intrinsic::hexagon_S4_extract_rp; // "exagon.S4.extract.rp"
+ case 'o': // 2 strings to match.
+ if (memcmp(NameR.data()+11, "ri.", 3))
+ break;
+ switch (NameR[14]) {
+ default: break;
+ case 'a': // 1 string to match.
+ if (memcmp(NameR.data()+15, "sl.ri", 5))
+ break;
+ return Intrinsic::hexagon_S4_ori_asl_ri; // "exagon.S4.ori.asl.ri"
+ case 'l': // 1 string to match.
+ if (memcmp(NameR.data()+15, "sr.ri", 5))
+ break;
+ return Intrinsic::hexagon_S4_ori_lsr_ri; // "exagon.S4.ori.lsr.ri"
+ }
+ break;
+ case 'v': // 2 strings to match.
+ if (NameR[11] != 'x')
+ break;
+ switch (NameR[12]) {
+ default: break;
+ case 'a': // 1 string to match.
+ if (memcmp(NameR.data()+13, "ddsubhr", 7))
+ break;
+ return Intrinsic::hexagon_S4_vxaddsubhr; // "exagon.S4.vxaddsubhr"
+ case 's': // 1 string to match.
+ if (memcmp(NameR.data()+13, "ubaddhr", 7))
+ break;
+ return Intrinsic::hexagon_S4_vxsubaddhr; // "exagon.S4.vxsubaddhr"
+ }
+ break;
+ }
+ break;
+ case '5': // 1 string to match.
+ if (memcmp(NameR.data()+9, ".asrhub.sat", 11))
+ break;
+ return Intrinsic::hexagon_S5_asrhub_sat; // "exagon.S5.asrhub.sat"
+ }
+ break;
+ }
+ break;
+ case 21: // 96 strings to match.
+ if (memcmp(NameR.data()+0, "exagon.", 7))
+ break;
+ switch (NameR[7]) {
+ default: break;
+ case 'A': // 16 strings to match.
+ switch (NameR[8]) {
+ default: break;
+ case '2': // 14 strings to match.
+ if (NameR[9] != '.')
+ break;
+ switch (NameR[10]) {
+ default: break;
+ case 'a': // 6 strings to match.
+ if (memcmp(NameR.data()+11, "ddh.", 4))
+ break;
+ switch (NameR[15]) {
+ default: break;
+ case 'h': // 4 strings to match.
+ if (memcmp(NameR.data()+16, "16.", 3))
+ break;
+ switch (NameR[19]) {
+ default: break;
+ case 'h': // 2 strings to match.
+ switch (NameR[20]) {
+ default: break;
+ case 'h': // 1 string to match.
+ return Intrinsic::hexagon_A2_addh_h16_hh; // "exagon.A2.addh.h16.hh"
+ case 'l': // 1 string to match.
+ return Intrinsic::hexagon_A2_addh_h16_hl; // "exagon.A2.addh.h16.hl"
+ }
+ break;
+ case 'l': // 2 strings to match.
+ switch (NameR[20]) {
+ default: break;
+ case 'h': // 1 string to match.
+ return Intrinsic::hexagon_A2_addh_h16_lh; // "exagon.A2.addh.h16.lh"
+ case 'l': // 1 string to match.
+ return Intrinsic::hexagon_A2_addh_h16_ll; // "exagon.A2.addh.h16.ll"
+ }
+ break;
+ }
+ break;
+ case 'l': // 2 strings to match.
+ if (memcmp(NameR.data()+16, "16.", 3))
+ break;
+ switch (NameR[19]) {
+ default: break;
+ case 'h': // 1 string to match.
+ if (NameR[20] != 'l')
+ break;
+ return Intrinsic::hexagon_A2_addh_l16_hl; // "exagon.A2.addh.l16.hl"
+ case 'l': // 1 string to match.
+ if (NameR[20] != 'l')
+ break;
+ return Intrinsic::hexagon_A2_addh_l16_ll; // "exagon.A2.addh.l16.ll"
+ }
+ break;
+ }
+ break;
+ case 's': // 6 strings to match.
+ if (memcmp(NameR.data()+11, "ubh.", 4))
+ break;
+ switch (NameR[15]) {
+ default: break;
+ case 'h': // 4 strings to match.
+ if (memcmp(NameR.data()+16, "16.", 3))
+ break;
+ switch (NameR[19]) {
+ default: break;
+ case 'h': // 2 strings to match.
+ switch (NameR[20]) {
+ default: break;
+ case 'h': // 1 string to match.
+ return Intrinsic::hexagon_A2_subh_h16_hh; // "exagon.A2.subh.h16.hh"
+ case 'l': // 1 string to match.
+ return Intrinsic::hexagon_A2_subh_h16_hl; // "exagon.A2.subh.h16.hl"
+ }
+ break;
+ case 'l': // 2 strings to match.
+ switch (NameR[20]) {
+ default: break;
+ case 'h': // 1 string to match.
+ return Intrinsic::hexagon_A2_subh_h16_lh; // "exagon.A2.subh.h16.lh"
+ case 'l': // 1 string to match.
+ return Intrinsic::hexagon_A2_subh_h16_ll; // "exagon.A2.subh.h16.ll"
+ }
+ break;
+ }
+ break;
+ case 'l': // 2 strings to match.
+ if (memcmp(NameR.data()+16, "16.", 3))
+ break;
+ switch (NameR[19]) {
+ default: break;
+ case 'h': // 1 string to match.
+ if (NameR[20] != 'l')
+ break;
+ return Intrinsic::hexagon_A2_subh_l16_hl; // "exagon.A2.subh.l16.hl"
+ case 'l': // 1 string to match.
+ if (NameR[20] != 'l')
+ break;
+ return Intrinsic::hexagon_A2_subh_l16_ll; // "exagon.A2.subh.l16.ll"
+ }
+ break;
+ }
+ break;
+ case 'v': // 2 strings to match.
+ if (NameR[11] != 'r')
+ break;
+ switch (NameR[12]) {
+ default: break;
+ case 'a': // 1 string to match.
+ if (memcmp(NameR.data()+13, "ddub.acc", 8))
+ break;
+ return Intrinsic::hexagon_A2_vraddub_acc; // "exagon.A2.vraddub.acc"
+ case 's': // 1 string to match.
+ if (memcmp(NameR.data()+13, "adub.acc", 8))
+ break;
+ return Intrinsic::hexagon_A2_vrsadub_acc; // "exagon.A2.vrsadub.acc"
+ }
+ break;
+ }
+ break;
+ case '4': // 2 strings to match.
+ if (NameR[9] != '.')
+ break;
+ switch (NameR[10]) {
+ default: break;
+ case 'b': // 1 string to match.
+ if (memcmp(NameR.data()+11, "oundscheck", 10))
+ break;
+ return Intrinsic::hexagon_A4_boundscheck; // "exagon.A4.boundscheck"
+ case 'v': // 1 string to match.
+ if (memcmp(NameR.data()+11, "cmpbeq.any", 10))
+ break;
+ return Intrinsic::hexagon_A4_vcmpbeq_any; // "exagon.A4.vcmpbeq.any"
+ }
+ break;
+ }
+ break;
+ case 'C': // 1 string to match.
+ if (memcmp(NameR.data()+8, "4.fastcorner9", 13))
+ break;
+ return Intrinsic::hexagon_C4_fastcorner9; // "exagon.C4.fastcorner9"
+ case 'M': // 16 strings to match.
+ if (memcmp(NameR.data()+8, "2.", 2))
+ break;
+ switch (NameR[10]) {
+ default: break;
+ case 'm': // 12 strings to match.
+ switch (NameR[11]) {
+ default: break;
+ case 'm': // 4 strings to match.
+ if (memcmp(NameR.data()+12, "acu", 3))
+ break;
+ switch (NameR[15]) {
+ default: break;
+ case 'h': // 2 strings to match.
+ if (memcmp(NameR.data()+16, "s.rs", 4))
+ break;
+ switch (NameR[20]) {
+ default: break;
+ case '0': // 1 string to match.
+ return Intrinsic::hexagon_M2_mmacuhs_rs0; // "exagon.M2.mmacuhs.rs0"
+ case '1': // 1 string to match.
+ return Intrinsic::hexagon_M2_mmacuhs_rs1; // "exagon.M2.mmacuhs.rs1"
+ }
+ break;
+ case 'l': // 2 strings to match.
+ if (memcmp(NameR.data()+16, "s.rs", 4))
+ break;
+ switch (NameR[20]) {
+ default: break;
+ case '0': // 1 string to match.
+ return Intrinsic::hexagon_M2_mmaculs_rs0; // "exagon.M2.mmaculs.rs0"
+ case '1': // 1 string to match.
+ return Intrinsic::hexagon_M2_mmaculs_rs1; // "exagon.M2.mmaculs.rs1"
+ }
+ break;
+ }
+ break;
+ case 'p': // 8 strings to match.
+ if (memcmp(NameR.data()+12, "yud.", 4))
+ break;
+ switch (NameR[16]) {
+ default: break;
+ case 'h': // 4 strings to match.
+ switch (NameR[17]) {
+ default: break;
+ case 'h': // 2 strings to match.
+ if (memcmp(NameR.data()+18, ".s", 2))
+ break;
+ switch (NameR[20]) {
+ default: break;
+ case '0': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpyud_hh_s0; // "exagon.M2.mpyud.hh.s0"
+ case '1': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpyud_hh_s1; // "exagon.M2.mpyud.hh.s1"
+ }
+ break;
+ case 'l': // 2 strings to match.
+ if (memcmp(NameR.data()+18, ".s", 2))
+ break;
+ switch (NameR[20]) {
+ default: break;
+ case '0': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpyud_hl_s0; // "exagon.M2.mpyud.hl.s0"
+ case '1': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpyud_hl_s1; // "exagon.M2.mpyud.hl.s1"
+ }
+ break;
+ }
+ break;
+ case 'l': // 4 strings to match.
+ switch (NameR[17]) {
+ default: break;
+ case 'h': // 2 strings to match.
+ if (memcmp(NameR.data()+18, ".s", 2))
+ break;
+ switch (NameR[20]) {
+ default: break;
+ case '0': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpyud_lh_s0; // "exagon.M2.mpyud.lh.s0"
+ case '1': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpyud_lh_s1; // "exagon.M2.mpyud.lh.s1"
+ }
+ break;
+ case 'l': // 2 strings to match.
+ if (memcmp(NameR.data()+18, ".s", 2))
+ break;
+ switch (NameR[20]) {
+ default: break;
+ case '0': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpyud_ll_s0; // "exagon.M2.mpyud.ll.s0"
+ case '1': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpyud_ll_s1; // "exagon.M2.mpyud.ll.s1"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 'v': // 4 strings to match.
+ if (memcmp(NameR.data()+11, "rcm", 3))
+ break;
+ switch (NameR[14]) {
+ default: break;
+ case 'a': // 2 strings to match.
+ if (NameR[15] != 'c')
+ break;
+ switch (NameR[16]) {
+ default: break;
+ case 'i': // 1 string to match.
+ if (memcmp(NameR.data()+17, ".s0c", 4))
+ break;
+ return Intrinsic::hexagon_M2_vrcmaci_s0c; // "exagon.M2.vrcmaci.s0c"
+ case 'r': // 1 string to match.
+ if (memcmp(NameR.data()+17, ".s0c", 4))
+ break;
+ return Intrinsic::hexagon_M2_vrcmacr_s0c; // "exagon.M2.vrcmacr.s0c"
+ }
+ break;
+ case 'p': // 2 strings to match.
+ if (NameR[15] != 'y')
+ break;
+ switch (NameR[16]) {
+ default: break;
+ case 'i': // 1 string to match.
+ if (memcmp(NameR.data()+17, ".s0c", 4))
+ break;
+ return Intrinsic::hexagon_M2_vrcmpyi_s0c; // "exagon.M2.vrcmpyi.s0c"
+ case 'r': // 1 string to match.
+ if (memcmp(NameR.data()+17, ".s0c", 4))
+ break;
+ return Intrinsic::hexagon_M2_vrcmpyr_s0c; // "exagon.M2.vrcmpyr.s0c"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 'S': // 63 strings to match.
+ switch (NameR[8]) {
+ default: break;
+ case '2': // 56 strings to match.
+ if (NameR[9] != '.')
+ break;
+ switch (NameR[10]) {
+ default: break;
+ case 'a': // 32 strings to match.
+ switch (NameR[11]) {
+ default: break;
+ case 'd': // 1 string to match.
+ if (memcmp(NameR.data()+12, "dasl.rrri", 9))
+ break;
+ return Intrinsic::hexagon_S2_addasl_rrri; // "exagon.S2.addasl.rrri"
+ case 's': // 31 strings to match.
+ switch (NameR[12]) {
+ default: break;
+ case 'l': // 15 strings to match.
+ if (NameR[13] != '.')
+ break;
+ switch (NameR[14]) {
+ default: break;
+ case 'i': // 7 strings to match.
+ if (NameR[15] != '.')
+ break;
+ switch (NameR[16]) {
+ default: break;
+ case 'p': // 3 strings to match.
+ if (NameR[17] != '.')
+ break;
+ switch (NameR[18]) {
+ default: break;
+ case 'a': // 2 strings to match.
+ switch (NameR[19]) {
+ default: break;
+ case 'c': // 1 string to match.
+ if (NameR[20] != 'c')
+ break;
+ return Intrinsic::hexagon_S2_asl_i_p_acc; // "exagon.S2.asl.i.p.acc"
+ case 'n': // 1 string to match.
+ if (NameR[20] != 'd')
+ break;
+ return Intrinsic::hexagon_S2_asl_i_p_and; // "exagon.S2.asl.i.p.and"
+ }
+ break;
+ case 'n': // 1 string to match.
+ if (memcmp(NameR.data()+19, "ac", 2))
+ break;
+ return Intrinsic::hexagon_S2_asl_i_p_nac; // "exagon.S2.asl.i.p.nac"
+ }
+ break;
+ case 'r': // 4 strings to match.
+ if (NameR[17] != '.')
+ break;
+ switch (NameR[18]) {
+ default: break;
+ case 'a': // 2 strings to match.
+ switch (NameR[19]) {
+ default: break;
+ case 'c': // 1 string to match.
+ if (NameR[20] != 'c')
+ break;
+ return Intrinsic::hexagon_S2_asl_i_r_acc; // "exagon.S2.asl.i.r.acc"
+ case 'n': // 1 string to match.
+ if (NameR[20] != 'd')
+ break;
+ return Intrinsic::hexagon_S2_asl_i_r_and; // "exagon.S2.asl.i.r.and"
+ }
+ break;
+ case 'n': // 1 string to match.
+ if (memcmp(NameR.data()+19, "ac", 2))
+ break;
+ return Intrinsic::hexagon_S2_asl_i_r_nac; // "exagon.S2.asl.i.r.nac"
+ case 's': // 1 string to match.
+ if (memcmp(NameR.data()+19, "at", 2))
+ break;
+ return Intrinsic::hexagon_S2_asl_i_r_sat; // "exagon.S2.asl.i.r.sat"
+ }
+ break;
+ }
+ break;
+ case 'r': // 8 strings to match.
+ if (NameR[15] != '.')
+ break;
+ switch (NameR[16]) {
+ default: break;
+ case 'p': // 4 strings to match.
+ if (NameR[17] != '.')
+ break;
+ switch (NameR[18]) {
+ default: break;
+ case 'a': // 2 strings to match.
+ switch (NameR[19]) {
+ default: break;
+ case 'c': // 1 string to match.
+ if (NameR[20] != 'c')
+ break;
+ return Intrinsic::hexagon_S2_asl_r_p_acc; // "exagon.S2.asl.r.p.acc"
+ case 'n': // 1 string to match.
+ if (NameR[20] != 'd')
+ break;
+ return Intrinsic::hexagon_S2_asl_r_p_and; // "exagon.S2.asl.r.p.and"
+ }
+ break;
+ case 'n': // 1 string to match.
+ if (memcmp(NameR.data()+19, "ac", 2))
+ break;
+ return Intrinsic::hexagon_S2_asl_r_p_nac; // "exagon.S2.asl.r.p.nac"
+ case 'x': // 1 string to match.
+ if (memcmp(NameR.data()+19, "or", 2))
+ break;
+ return Intrinsic::hexagon_S2_asl_r_p_xor; // "exagon.S2.asl.r.p.xor"
+ }
+ break;
+ case 'r': // 4 strings to match.
+ if (NameR[17] != '.')
+ break;
+ switch (NameR[18]) {
+ default: break;
+ case 'a': // 2 strings to match.
+ switch (NameR[19]) {
+ default: break;
+ case 'c': // 1 string to match.
+ if (NameR[20] != 'c')
+ break;
+ return Intrinsic::hexagon_S2_asl_r_r_acc; // "exagon.S2.asl.r.r.acc"
+ case 'n': // 1 string to match.
+ if (NameR[20] != 'd')
+ break;
+ return Intrinsic::hexagon_S2_asl_r_r_and; // "exagon.S2.asl.r.r.and"
+ }
+ break;
+ case 'n': // 1 string to match.
+ if (memcmp(NameR.data()+19, "ac", 2))
+ break;
+ return Intrinsic::hexagon_S2_asl_r_r_nac; // "exagon.S2.asl.r.r.nac"
+ case 's': // 1 string to match.
+ if (memcmp(NameR.data()+19, "at", 2))
+ break;
+ return Intrinsic::hexagon_S2_asl_r_r_sat; // "exagon.S2.asl.r.r.sat"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 'r': // 16 strings to match.
+ if (NameR[13] != '.')
+ break;
+ switch (NameR[14]) {
+ default: break;
+ case 'i': // 8 strings to match.
+ if (NameR[15] != '.')
+ break;
+ switch (NameR[16]) {
+ default: break;
+ case 'p': // 4 strings to match.
+ if (NameR[17] != '.')
+ break;
+ switch (NameR[18]) {
+ default: break;
+ case 'a': // 2 strings to match.
+ switch (NameR[19]) {
+ default: break;
+ case 'c': // 1 string to match.
+ if (NameR[20] != 'c')
+ break;
+ return Intrinsic::hexagon_S2_asr_i_p_acc; // "exagon.S2.asr.i.p.acc"
+ case 'n': // 1 string to match.
+ if (NameR[20] != 'd')
+ break;
+ return Intrinsic::hexagon_S2_asr_i_p_and; // "exagon.S2.asr.i.p.and"
+ }
+ break;
+ case 'n': // 1 string to match.
+ if (memcmp(NameR.data()+19, "ac", 2))
+ break;
+ return Intrinsic::hexagon_S2_asr_i_p_nac; // "exagon.S2.asr.i.p.nac"
+ case 'r': // 1 string to match.
+ if (memcmp(NameR.data()+19, "nd", 2))
+ break;
+ return Intrinsic::hexagon_S2_asr_i_p_rnd; // "exagon.S2.asr.i.p.rnd"
+ }
+ break;
+ case 'r': // 4 strings to match.
+ if (NameR[17] != '.')
+ break;
+ switch (NameR[18]) {
+ default: break;
+ case 'a': // 2 strings to match.
+ switch (NameR[19]) {
+ default: break;
+ case 'c': // 1 string to match.
+ if (NameR[20] != 'c')
+ break;
+ return Intrinsic::hexagon_S2_asr_i_r_acc; // "exagon.S2.asr.i.r.acc"
+ case 'n': // 1 string to match.
+ if (NameR[20] != 'd')
+ break;
+ return Intrinsic::hexagon_S2_asr_i_r_and; // "exagon.S2.asr.i.r.and"
+ }
+ break;
+ case 'n': // 1 string to match.
+ if (memcmp(NameR.data()+19, "ac", 2))
+ break;
+ return Intrinsic::hexagon_S2_asr_i_r_nac; // "exagon.S2.asr.i.r.nac"
+ case 'r': // 1 string to match.
+ if (memcmp(NameR.data()+19, "nd", 2))
+ break;
+ return Intrinsic::hexagon_S2_asr_i_r_rnd; // "exagon.S2.asr.i.r.rnd"
+ }
+ break;
+ }
+ break;
+ case 'r': // 8 strings to match.
+ if (NameR[15] != '.')
+ break;
+ switch (NameR[16]) {
+ default: break;
+ case 'p': // 4 strings to match.
+ if (NameR[17] != '.')
+ break;
+ switch (NameR[18]) {
+ default: break;
+ case 'a': // 2 strings to match.
+ switch (NameR[19]) {
+ default: break;
+ case 'c': // 1 string to match.
+ if (NameR[20] != 'c')
+ break;
+ return Intrinsic::hexagon_S2_asr_r_p_acc; // "exagon.S2.asr.r.p.acc"
+ case 'n': // 1 string to match.
+ if (NameR[20] != 'd')
+ break;
+ return Intrinsic::hexagon_S2_asr_r_p_and; // "exagon.S2.asr.r.p.and"
+ }
+ break;
+ case 'n': // 1 string to match.
+ if (memcmp(NameR.data()+19, "ac", 2))
+ break;
+ return Intrinsic::hexagon_S2_asr_r_p_nac; // "exagon.S2.asr.r.p.nac"
+ case 'x': // 1 string to match.
+ if (memcmp(NameR.data()+19, "or", 2))
+ break;
+ return Intrinsic::hexagon_S2_asr_r_p_xor; // "exagon.S2.asr.r.p.xor"
+ }
+ break;
+ case 'r': // 4 strings to match.
+ if (NameR[17] != '.')
+ break;
+ switch (NameR[18]) {
+ default: break;
+ case 'a': // 2 strings to match.
+ switch (NameR[19]) {
+ default: break;
+ case 'c': // 1 string to match.
+ if (NameR[20] != 'c')
+ break;
+ return Intrinsic::hexagon_S2_asr_r_r_acc; // "exagon.S2.asr.r.r.acc"
+ case 'n': // 1 string to match.
+ if (NameR[20] != 'd')
+ break;
+ return Intrinsic::hexagon_S2_asr_r_r_and; // "exagon.S2.asr.r.r.and"
+ }
+ break;
+ case 'n': // 1 string to match.
+ if (memcmp(NameR.data()+19, "ac", 2))
+ break;
+ return Intrinsic::hexagon_S2_asr_r_r_nac; // "exagon.S2.asr.r.r.nac"
+ case 's': // 1 string to match.
+ if (memcmp(NameR.data()+19, "at", 2))
+ break;
+ return Intrinsic::hexagon_S2_asr_r_r_sat; // "exagon.S2.asr.r.r.sat"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 'e': // 1 string to match.
+ if (memcmp(NameR.data()+11, "xtractu.rp", 10))
+ break;
+ return Intrinsic::hexagon_S2_extractu_rp; // "exagon.S2.extractu.rp"
+ case 'l': // 20 strings to match.
+ if (NameR[11] != 's')
+ break;
+ switch (NameR[12]) {
+ default: break;
+ case 'l': // 7 strings to match.
+ if (memcmp(NameR.data()+13, ".r.", 3))
+ break;
+ switch (NameR[16]) {
+ default: break;
+ case 'p': // 4 strings to match.
+ if (NameR[17] != '.')
+ break;
+ switch (NameR[18]) {
+ default: break;
+ case 'a': // 2 strings to match.
+ switch (NameR[19]) {
+ default: break;
+ case 'c': // 1 string to match.
+ if (NameR[20] != 'c')
+ break;
+ return Intrinsic::hexagon_S2_lsl_r_p_acc; // "exagon.S2.lsl.r.p.acc"
+ case 'n': // 1 string to match.
+ if (NameR[20] != 'd')
+ break;
+ return Intrinsic::hexagon_S2_lsl_r_p_and; // "exagon.S2.lsl.r.p.and"
+ }
+ break;
+ case 'n': // 1 string to match.
+ if (memcmp(NameR.data()+19, "ac", 2))
+ break;
+ return Intrinsic::hexagon_S2_lsl_r_p_nac; // "exagon.S2.lsl.r.p.nac"
+ case 'x': // 1 string to match.
+ if (memcmp(NameR.data()+19, "or", 2))
+ break;
+ return Intrinsic::hexagon_S2_lsl_r_p_xor; // "exagon.S2.lsl.r.p.xor"
+ }
+ break;
+ case 'r': // 3 strings to match.
+ if (NameR[17] != '.')
+ break;
+ switch (NameR[18]) {
+ default: break;
+ case 'a': // 2 strings to match.
+ switch (NameR[19]) {
+ default: break;
+ case 'c': // 1 string to match.
+ if (NameR[20] != 'c')
+ break;
+ return Intrinsic::hexagon_S2_lsl_r_r_acc; // "exagon.S2.lsl.r.r.acc"
+ case 'n': // 1 string to match.
+ if (NameR[20] != 'd')
+ break;
+ return Intrinsic::hexagon_S2_lsl_r_r_and; // "exagon.S2.lsl.r.r.and"
+ }
+ break;
+ case 'n': // 1 string to match.
+ if (memcmp(NameR.data()+19, "ac", 2))
+ break;
+ return Intrinsic::hexagon_S2_lsl_r_r_nac; // "exagon.S2.lsl.r.r.nac"
+ }
+ break;
+ }
+ break;
+ case 'r': // 13 strings to match.
+ if (NameR[13] != '.')
+ break;
+ switch (NameR[14]) {
+ default: break;
+ case 'i': // 6 strings to match.
+ if (NameR[15] != '.')
+ break;
+ switch (NameR[16]) {
+ default: break;
+ case 'p': // 3 strings to match.
+ if (NameR[17] != '.')
+ break;
+ switch (NameR[18]) {
+ default: break;
+ case 'a': // 2 strings to match.
+ switch (NameR[19]) {
+ default: break;
+ case 'c': // 1 string to match.
+ if (NameR[20] != 'c')
+ break;
+ return Intrinsic::hexagon_S2_lsr_i_p_acc; // "exagon.S2.lsr.i.p.acc"
+ case 'n': // 1 string to match.
+ if (NameR[20] != 'd')
+ break;
+ return Intrinsic::hexagon_S2_lsr_i_p_and; // "exagon.S2.lsr.i.p.and"
+ }
+ break;
+ case 'n': // 1 string to match.
+ if (memcmp(NameR.data()+19, "ac", 2))
+ break;
+ return Intrinsic::hexagon_S2_lsr_i_p_nac; // "exagon.S2.lsr.i.p.nac"
+ }
+ break;
+ case 'r': // 3 strings to match.
+ if (NameR[17] != '.')
+ break;
+ switch (NameR[18]) {
+ default: break;
+ case 'a': // 2 strings to match.
+ switch (NameR[19]) {
+ default: break;
+ case 'c': // 1 string to match.
+ if (NameR[20] != 'c')
+ break;
+ return Intrinsic::hexagon_S2_lsr_i_r_acc; // "exagon.S2.lsr.i.r.acc"
+ case 'n': // 1 string to match.
+ if (NameR[20] != 'd')
+ break;
+ return Intrinsic::hexagon_S2_lsr_i_r_and; // "exagon.S2.lsr.i.r.and"
+ }
+ break;
+ case 'n': // 1 string to match.
+ if (memcmp(NameR.data()+19, "ac", 2))
+ break;
+ return Intrinsic::hexagon_S2_lsr_i_r_nac; // "exagon.S2.lsr.i.r.nac"
+ }
+ break;
+ }
+ break;
+ case 'r': // 7 strings to match.
+ if (NameR[15] != '.')
+ break;
+ switch (NameR[16]) {
+ default: break;
+ case 'p': // 4 strings to match.
+ if (NameR[17] != '.')
+ break;
+ switch (NameR[18]) {
+ default: break;
+ case 'a': // 2 strings to match.
+ switch (NameR[19]) {
+ default: break;
+ case 'c': // 1 string to match.
+ if (NameR[20] != 'c')
+ break;
+ return Intrinsic::hexagon_S2_lsr_r_p_acc; // "exagon.S2.lsr.r.p.acc"
+ case 'n': // 1 string to match.
+ if (NameR[20] != 'd')
+ break;
+ return Intrinsic::hexagon_S2_lsr_r_p_and; // "exagon.S2.lsr.r.p.and"
+ }
+ break;
+ case 'n': // 1 string to match.
+ if (memcmp(NameR.data()+19, "ac", 2))
+ break;
+ return Intrinsic::hexagon_S2_lsr_r_p_nac; // "exagon.S2.lsr.r.p.nac"
+ case 'x': // 1 string to match.
+ if (memcmp(NameR.data()+19, "or", 2))
+ break;
+ return Intrinsic::hexagon_S2_lsr_r_p_xor; // "exagon.S2.lsr.r.p.xor"
+ }
+ break;
+ case 'r': // 3 strings to match.
+ if (NameR[17] != '.')
+ break;
+ switch (NameR[18]) {
+ default: break;
+ case 'a': // 2 strings to match.
+ switch (NameR[19]) {
+ default: break;
+ case 'c': // 1 string to match.
+ if (NameR[20] != 'c')
+ break;
+ return Intrinsic::hexagon_S2_lsr_r_r_acc; // "exagon.S2.lsr.r.r.acc"
+ case 'n': // 1 string to match.
+ if (NameR[20] != 'd')
+ break;
+ return Intrinsic::hexagon_S2_lsr_r_r_and; // "exagon.S2.lsr.r.r.and"
+ }
+ break;
+ case 'n': // 1 string to match.
+ if (memcmp(NameR.data()+19, "ac", 2))
+ break;
+ return Intrinsic::hexagon_S2_lsr_r_r_nac; // "exagon.S2.lsr.r.r.nac"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 't': // 2 strings to match.
+ if (memcmp(NameR.data()+11, "ogglebit.", 9))
+ break;
+ switch (NameR[20]) {
+ default: break;
+ case 'i': // 1 string to match.
+ return Intrinsic::hexagon_S2_togglebit_i; // "exagon.S2.togglebit.i"
+ case 'r': // 1 string to match.
+ return Intrinsic::hexagon_S2_togglebit_r; // "exagon.S2.togglebit.r"
+ }
+ break;
+ case 'v': // 1 string to match.
+ if (memcmp(NameR.data()+11, "rndpackwhs", 10))
+ break;
+ return Intrinsic::hexagon_S2_vrndpackwhs; // "exagon.S2.vrndpackwhs"
+ }
+ break;
+ case '4': // 7 strings to match.
+ if (NameR[9] != '.')
+ break;
+ switch (NameR[10]) {
+ default: break;
+ case 'a': // 4 strings to match.
+ switch (NameR[11]) {
+ default: break;
+ case 'd': // 2 strings to match.
+ if (memcmp(NameR.data()+12, "di.", 3))
+ break;
+ switch (NameR[15]) {
+ default: break;
+ case 'a': // 1 string to match.
+ if (memcmp(NameR.data()+16, "sl.ri", 5))
+ break;
+ return Intrinsic::hexagon_S4_addi_asl_ri; // "exagon.S4.addi.asl.ri"
+ case 'l': // 1 string to match.
+ if (memcmp(NameR.data()+16, "sr.ri", 5))
+ break;
+ return Intrinsic::hexagon_S4_addi_lsr_ri; // "exagon.S4.addi.lsr.ri"
+ }
+ break;
+ case 'n': // 2 strings to match.
+ if (memcmp(NameR.data()+12, "di.", 3))
+ break;
+ switch (NameR[15]) {
+ default: break;
+ case 'a': // 1 string to match.
+ if (memcmp(NameR.data()+16, "sl.ri", 5))
+ break;
+ return Intrinsic::hexagon_S4_andi_asl_ri; // "exagon.S4.andi.asl.ri"
+ case 'l': // 1 string to match.
+ if (memcmp(NameR.data()+16, "sr.ri", 5))
+ break;
+ return Intrinsic::hexagon_S4_andi_lsr_ri; // "exagon.S4.andi.lsr.ri"
+ }
+ break;
+ }
+ break;
+ case 'e': // 1 string to match.
+ if (memcmp(NameR.data()+11, "xtractp.rp", 10))
+ break;
+ return Intrinsic::hexagon_S4_extractp_rp; // "exagon.S4.extractp.rp"
+ case 's': // 2 strings to match.
+ if (memcmp(NameR.data()+11, "ubi.", 4))
+ break;
+ switch (NameR[15]) {
+ default: break;
+ case 'a': // 1 string to match.
+ if (memcmp(NameR.data()+16, "sl.ri", 5))
+ break;
+ return Intrinsic::hexagon_S4_subi_asl_ri; // "exagon.S4.subi.asl.ri"
+ case 'l': // 1 string to match.
+ if (memcmp(NameR.data()+16, "sr.ri", 5))
+ break;
+ return Intrinsic::hexagon_S4_subi_lsr_ri; // "exagon.S4.subi.lsr.ri"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 22: // 9 strings to match.
+ if (memcmp(NameR.data()+0, "exagon.", 7))
+ break;
+ switch (NameR[7]) {
+ default: break;
+ case 'A': // 2 strings to match.
+ if (memcmp(NameR.data()+8, "4.round.r", 9))
+ break;
+ switch (NameR[17]) {
+ default: break;
+ case 'i': // 1 string to match.
+ if (memcmp(NameR.data()+18, ".sat", 4))
+ break;
+ return Intrinsic::hexagon_A4_round_ri_sat; // "exagon.A4.round.ri.sat"
+ case 'r': // 1 string to match.
+ if (memcmp(NameR.data()+18, ".sat", 4))
+ break;
+ return Intrinsic::hexagon_A4_round_rr_sat; // "exagon.A4.round.rr.sat"
+ }
+ break;
+ case 'M': // 1 string to match.
+ if (memcmp(NameR.data()+8, "2.vrcmpys.s1rp", 14))
+ break;
+ return Intrinsic::hexagon_M2_vrcmpys_s1rp; // "exagon.M2.vrcmpys.s1rp"
+ case 'S': // 6 strings to match.
+ if (memcmp(NameR.data()+8, "2.", 2))
+ break;
+ switch (NameR[10]) {
+ default: break;
+ case 'a': // 2 strings to match.
+ if (memcmp(NameR.data()+11, "sl.i.", 5))
+ break;
+ switch (NameR[16]) {
+ default: break;
+ case 'p': // 1 string to match.
+ if (memcmp(NameR.data()+17, ".xacc", 5))
+ break;
+ return Intrinsic::hexagon_S2_asl_i_p_xacc; // "exagon.S2.asl.i.p.xacc"
+ case 'r': // 1 string to match.
+ if (memcmp(NameR.data()+17, ".xacc", 5))
+ break;
+ return Intrinsic::hexagon_S2_asl_i_r_xacc; // "exagon.S2.asl.i.r.xacc"
+ }
+ break;
+ case 'd': // 1 string to match.
+ if (memcmp(NameR.data()+11, "einterleave", 11))
+ break;
+ return Intrinsic::hexagon_S2_deinterleave; // "exagon.S2.deinterleave"
+ case 'e': // 1 string to match.
+ if (memcmp(NameR.data()+11, "xtractup.rp", 11))
+ break;
+ return Intrinsic::hexagon_S2_extractup_rp; // "exagon.S2.extractup.rp"
+ case 'l': // 2 strings to match.
+ if (memcmp(NameR.data()+11, "sr.i.", 5))
+ break;
+ switch (NameR[16]) {
+ default: break;
+ case 'p': // 1 string to match.
+ if (memcmp(NameR.data()+17, ".xacc", 5))
+ break;
+ return Intrinsic::hexagon_S2_lsr_i_p_xacc; // "exagon.S2.lsr.i.p.xacc"
+ case 'r': // 1 string to match.
+ if (memcmp(NameR.data()+17, ".xacc", 5))
+ break;
+ return Intrinsic::hexagon_S2_lsr_i_r_xacc; // "exagon.S2.lsr.i.r.xacc"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 23: // 42 strings to match.
+ if (memcmp(NameR.data()+0, "exagon.", 7))
+ break;
+ switch (NameR[7]) {
+ default: break;
+ case 'M': // 38 strings to match.
+ switch (NameR[8]) {
+ default: break;
+ case '2': // 35 strings to match.
+ if (NameR[9] != '.')
+ break;
+ switch (NameR[10]) {
+ default: break;
+ case 'm': // 33 strings to match.
+ if (memcmp(NameR.data()+11, "py.", 3))
+ break;
+ switch (NameR[14]) {
+ default: break;
+ case 'a': // 8 strings to match.
+ if (memcmp(NameR.data()+15, "cc.", 3))
+ break;
+ switch (NameR[18]) {
+ default: break;
+ case 'h': // 4 strings to match.
+ switch (NameR[19]) {
+ default: break;
+ case 'h': // 2 strings to match.
+ if (memcmp(NameR.data()+20, ".s", 2))
+ break;
+ switch (NameR[22]) {
+ default: break;
+ case '0': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpy_acc_hh_s0; // "exagon.M2.mpy.acc.hh.s0"
+ case '1': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpy_acc_hh_s1; // "exagon.M2.mpy.acc.hh.s1"
+ }
+ break;
+ case 'l': // 2 strings to match.
+ if (memcmp(NameR.data()+20, ".s", 2))
+ break;
+ switch (NameR[22]) {
+ default: break;
+ case '0': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpy_acc_hl_s0; // "exagon.M2.mpy.acc.hl.s0"
+ case '1': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpy_acc_hl_s1; // "exagon.M2.mpy.acc.hl.s1"
+ }
+ break;
+ }
+ break;
+ case 'l': // 4 strings to match.
+ switch (NameR[19]) {
+ default: break;
+ case 'h': // 2 strings to match.
+ if (memcmp(NameR.data()+20, ".s", 2))
+ break;
+ switch (NameR[22]) {
+ default: break;
+ case '0': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpy_acc_lh_s0; // "exagon.M2.mpy.acc.lh.s0"
+ case '1': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpy_acc_lh_s1; // "exagon.M2.mpy.acc.lh.s1"
+ }
+ break;
+ case 'l': // 2 strings to match.
+ if (memcmp(NameR.data()+20, ".s", 2))
+ break;
+ switch (NameR[22]) {
+ default: break;
+ case '0': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpy_acc_ll_s0; // "exagon.M2.mpy.acc.ll.s0"
+ case '1': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpy_acc_ll_s1; // "exagon.M2.mpy.acc.ll.s1"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 'n': // 8 strings to match.
+ if (memcmp(NameR.data()+15, "ac.", 3))
+ break;
+ switch (NameR[18]) {
+ default: break;
+ case 'h': // 4 strings to match.
+ switch (NameR[19]) {
+ default: break;
+ case 'h': // 2 strings to match.
+ if (memcmp(NameR.data()+20, ".s", 2))
+ break;
+ switch (NameR[22]) {
+ default: break;
+ case '0': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpy_nac_hh_s0; // "exagon.M2.mpy.nac.hh.s0"
+ case '1': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpy_nac_hh_s1; // "exagon.M2.mpy.nac.hh.s1"
+ }
+ break;
+ case 'l': // 2 strings to match.
+ if (memcmp(NameR.data()+20, ".s", 2))
+ break;
+ switch (NameR[22]) {
+ default: break;
+ case '0': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpy_nac_hl_s0; // "exagon.M2.mpy.nac.hl.s0"
+ case '1': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpy_nac_hl_s1; // "exagon.M2.mpy.nac.hl.s1"
+ }
+ break;
+ }
+ break;
+ case 'l': // 4 strings to match.
+ switch (NameR[19]) {
+ default: break;
+ case 'h': // 2 strings to match.
+ if (memcmp(NameR.data()+20, ".s", 2))
+ break;
+ switch (NameR[22]) {
+ default: break;
+ case '0': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpy_nac_lh_s0; // "exagon.M2.mpy.nac.lh.s0"
+ case '1': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpy_nac_lh_s1; // "exagon.M2.mpy.nac.lh.s1"
+ }
+ break;
+ case 'l': // 2 strings to match.
+ if (memcmp(NameR.data()+20, ".s", 2))
+ break;
+ switch (NameR[22]) {
+ default: break;
+ case '0': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpy_nac_ll_s0; // "exagon.M2.mpy.nac.ll.s0"
+ case '1': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpy_nac_ll_s1; // "exagon.M2.mpy.nac.ll.s1"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 'r': // 8 strings to match.
+ if (memcmp(NameR.data()+15, "nd.", 3))
+ break;
+ switch (NameR[18]) {
+ default: break;
+ case 'h': // 4 strings to match.
+ switch (NameR[19]) {
+ default: break;
+ case 'h': // 2 strings to match.
+ if (memcmp(NameR.data()+20, ".s", 2))
+ break;
+ switch (NameR[22]) {
+ default: break;
+ case '0': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpy_rnd_hh_s0; // "exagon.M2.mpy.rnd.hh.s0"
+ case '1': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpy_rnd_hh_s1; // "exagon.M2.mpy.rnd.hh.s1"
+ }
+ break;
+ case 'l': // 2 strings to match.
+ if (memcmp(NameR.data()+20, ".s", 2))
+ break;
+ switch (NameR[22]) {
+ default: break;
+ case '0': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpy_rnd_hl_s0; // "exagon.M2.mpy.rnd.hl.s0"
+ case '1': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpy_rnd_hl_s1; // "exagon.M2.mpy.rnd.hl.s1"
+ }
+ break;
+ }
+ break;
+ case 'l': // 4 strings to match.
+ switch (NameR[19]) {
+ default: break;
+ case 'h': // 2 strings to match.
+ if (memcmp(NameR.data()+20, ".s", 2))
+ break;
+ switch (NameR[22]) {
+ default: break;
+ case '0': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpy_rnd_lh_s0; // "exagon.M2.mpy.rnd.lh.s0"
+ case '1': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpy_rnd_lh_s1; // "exagon.M2.mpy.rnd.lh.s1"
+ }
+ break;
+ case 'l': // 2 strings to match.
+ if (memcmp(NameR.data()+20, ".s", 2))
+ break;
+ switch (NameR[22]) {
+ default: break;
+ case '0': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpy_rnd_ll_s0; // "exagon.M2.mpy.rnd.ll.s0"
+ case '1': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpy_rnd_ll_s1; // "exagon.M2.mpy.rnd.ll.s1"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 's': // 8 strings to match.
+ if (memcmp(NameR.data()+15, "at.", 3))
+ break;
+ switch (NameR[18]) {
+ default: break;
+ case 'h': // 4 strings to match.
+ switch (NameR[19]) {
+ default: break;
+ case 'h': // 2 strings to match.
+ if (memcmp(NameR.data()+20, ".s", 2))
+ break;
+ switch (NameR[22]) {
+ default: break;
+ case '0': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpy_sat_hh_s0; // "exagon.M2.mpy.sat.hh.s0"
+ case '1': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpy_sat_hh_s1; // "exagon.M2.mpy.sat.hh.s1"
+ }
+ break;
+ case 'l': // 2 strings to match.
+ if (memcmp(NameR.data()+20, ".s", 2))
+ break;
+ switch (NameR[22]) {
+ default: break;
+ case '0': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpy_sat_hl_s0; // "exagon.M2.mpy.sat.hl.s0"
+ case '1': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpy_sat_hl_s1; // "exagon.M2.mpy.sat.hl.s1"
+ }
+ break;
+ }
+ break;
+ case 'l': // 4 strings to match.
+ switch (NameR[19]) {
+ default: break;
+ case 'h': // 2 strings to match.
+ if (memcmp(NameR.data()+20, ".s", 2))
+ break;
+ switch (NameR[22]) {
+ default: break;
+ case '0': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpy_sat_lh_s0; // "exagon.M2.mpy.sat.lh.s0"
+ case '1': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpy_sat_lh_s1; // "exagon.M2.mpy.sat.lh.s1"
+ }
+ break;
+ case 'l': // 2 strings to match.
+ if (memcmp(NameR.data()+20, ".s", 2))
+ break;
+ switch (NameR[22]) {
+ default: break;
+ case '0': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpy_sat_ll_s0; // "exagon.M2.mpy.sat.ll.s0"
+ case '1': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpy_sat_ll_s1; // "exagon.M2.mpy.sat.ll.s1"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 'u': // 1 string to match.
+ if (memcmp(NameR.data()+15, "p.s1.sat", 8))
+ break;
+ return Intrinsic::hexagon_M2_mpy_up_s1_sat; // "exagon.M2.mpy.up.s1.sat"
+ }
+ break;
+ case 'v': // 2 strings to match.
+ if (memcmp(NameR.data()+11, "mpy2s.s", 7))
+ break;
+ switch (NameR[18]) {
+ default: break;
+ case '0': // 1 string to match.
+ if (memcmp(NameR.data()+19, "pack", 4))
+ break;
+ return Intrinsic::hexagon_M2_vmpy2s_s0pack; // "exagon.M2.vmpy2s.s0pack"
+ case '1': // 1 string to match.
+ if (memcmp(NameR.data()+19, "pack", 4))
+ break;
+ return Intrinsic::hexagon_M2_vmpy2s_s1pack; // "exagon.M2.vmpy2s.s1pack"
+ }
+ break;
+ }
+ break;
+ case '4': // 3 strings to match.
+ if (NameR[9] != '.')
+ break;
+ switch (NameR[10]) {
+ default: break;
+ case 'm': // 2 strings to match.
+ switch (NameR[11]) {
+ default: break;
+ case 'a': // 1 string to match.
+ if (memcmp(NameR.data()+12, "c.up.s1.sat", 11))
+ break;
+ return Intrinsic::hexagon_M4_mac_up_s1_sat; // "exagon.M4.mac.up.s1.sat"
+ case 'p': // 1 string to match.
+ if (memcmp(NameR.data()+12, "yri.addr.u2", 11))
+ break;
+ return Intrinsic::hexagon_M4_mpyri_addr_u2; // "exagon.M4.mpyri.addr.u2"
+ }
+ break;
+ case 'n': // 1 string to match.
+ if (memcmp(NameR.data()+11, "ac.up.s1.sat", 12))
+ break;
+ return Intrinsic::hexagon_M4_nac_up_s1_sat; // "exagon.M4.nac.up.s1.sat"
+ }
+ break;
+ }
+ break;
+ case 'S': // 4 strings to match.
+ switch (NameR[8]) {
+ default: break;
+ case '2': // 2 strings to match.
+ if (memcmp(NameR.data()+9, ".vsat", 5))
+ break;
+ switch (NameR[14]) {
+ default: break;
+ case 'h': // 1 string to match.
+ if (memcmp(NameR.data()+15, "b.nopack", 8))
+ break;
+ return Intrinsic::hexagon_S2_vsathb_nopack; // "exagon.S2.vsathb.nopack"
+ case 'w': // 1 string to match.
+ if (memcmp(NameR.data()+15, "h.nopack", 8))
+ break;
+ return Intrinsic::hexagon_S2_vsatwh_nopack; // "exagon.S2.vsatwh.nopack"
+ }
+ break;
+ case '4': // 1 string to match.
+ if (memcmp(NameR.data()+9, ".vrcrotate.acc", 14))
+ break;
+ return Intrinsic::hexagon_S4_vrcrotate_acc; // "exagon.S4.vrcrotate.acc"
+ case 'I': // 1 string to match.
+ if (memcmp(NameR.data()+9, ".to.SXTHI.asrh", 14))
+ break;
+ return Intrinsic::hexagon_SI_to_SXTHI_asrh; // "exagon.SI.to.SXTHI.asrh"
+ }
+ break;
+ }
+ break;
+ case 24: // 64 strings to match.
+ if (memcmp(NameR.data()+0, "exagon.", 7))
+ break;
+ switch (NameR[7]) {
+ default: break;
+ case 'F': // 4 strings to match.
+ if (memcmp(NameR.data()+8, "2.conv.", 7))
+ break;
+ switch (NameR[15]) {
+ default: break;
+ case 'd': // 2 strings to match.
+ if (memcmp(NameR.data()+16, "f2", 2))
+ break;
+ switch (NameR[18]) {
+ default: break;
+ case 'd': // 1 string to match.
+ if (memcmp(NameR.data()+19, ".chop", 5))
+ break;
+ return Intrinsic::hexagon_F2_conv_df2d_chop; // "exagon.F2.conv.df2d.chop"
+ case 'w': // 1 string to match.
+ if (memcmp(NameR.data()+19, ".chop", 5))
+ break;
+ return Intrinsic::hexagon_F2_conv_df2w_chop; // "exagon.F2.conv.df2w.chop"
+ }
+ break;
+ case 's': // 2 strings to match.
+ if (memcmp(NameR.data()+16, "f2", 2))
+ break;
+ switch (NameR[18]) {
+ default: break;
+ case 'd': // 1 string to match.
+ if (memcmp(NameR.data()+19, ".chop", 5))
+ break;
+ return Intrinsic::hexagon_F2_conv_sf2d_chop; // "exagon.F2.conv.sf2d.chop"
+ case 'w': // 1 string to match.
+ if (memcmp(NameR.data()+19, ".chop", 5))
+ break;
+ return Intrinsic::hexagon_F2_conv_sf2w_chop; // "exagon.F2.conv.sf2w.chop"
+ }
+ break;
+ }
+ break;
+ case 'M': // 56 strings to match.
+ switch (NameR[8]) {
+ default: break;
+ case '2': // 52 strings to match.
+ if (NameR[9] != '.')
+ break;
+ switch (NameR[10]) {
+ default: break;
+ case 'd': // 5 strings to match.
+ if (memcmp(NameR.data()+11, "pmpy", 4))
+ break;
+ switch (NameR[15]) {
+ default: break;
+ case 's': // 3 strings to match.
+ if (memcmp(NameR.data()+16, "s.", 2))
+ break;
+ switch (NameR[18]) {
+ default: break;
+ case 'a': // 1 string to match.
+ if (memcmp(NameR.data()+19, "cc.s0", 5))
+ break;
+ return Intrinsic::hexagon_M2_dpmpyss_acc_s0; // "exagon.M2.dpmpyss.acc.s0"
+ case 'n': // 1 string to match.
+ if (memcmp(NameR.data()+19, "ac.s0", 5))
+ break;
+ return Intrinsic::hexagon_M2_dpmpyss_nac_s0; // "exagon.M2.dpmpyss.nac.s0"
+ case 'r': // 1 string to match.
+ if (memcmp(NameR.data()+19, "nd.s0", 5))
+ break;
+ return Intrinsic::hexagon_M2_dpmpyss_rnd_s0; // "exagon.M2.dpmpyss.rnd.s0"
+ }
+ break;
+ case 'u': // 2 strings to match.
+ if (memcmp(NameR.data()+16, "u.", 2))
+ break;
+ switch (NameR[18]) {
+ default: break;
+ case 'a': // 1 string to match.
+ if (memcmp(NameR.data()+19, "cc.s0", 5))
+ break;
+ return Intrinsic::hexagon_M2_dpmpyuu_acc_s0; // "exagon.M2.dpmpyuu.acc.s0"
+ case 'n': // 1 string to match.
+ if (memcmp(NameR.data()+19, "ac.s0", 5))
+ break;
+ return Intrinsic::hexagon_M2_dpmpyuu_nac_s0; // "exagon.M2.dpmpyuu.nac.s0"
+ }
+ break;
+ }
+ break;
+ case 'm': // 40 strings to match.
+ if (memcmp(NameR.data()+11, "py", 2))
+ break;
+ switch (NameR[13]) {
+ default: break;
+ case 'd': // 24 strings to match.
+ if (NameR[14] != '.')
+ break;
+ switch (NameR[15]) {
+ default: break;
+ case 'a': // 8 strings to match.
+ if (memcmp(NameR.data()+16, "cc.", 3))
+ break;
+ switch (NameR[19]) {
+ default: break;
+ case 'h': // 4 strings to match.
+ switch (NameR[20]) {
+ default: break;
+ case 'h': // 2 strings to match.
+ if (memcmp(NameR.data()+21, ".s", 2))
+ break;
+ switch (NameR[23]) {
+ default: break;
+ case '0': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpyd_acc_hh_s0; // "exagon.M2.mpyd.acc.hh.s0"
+ case '1': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpyd_acc_hh_s1; // "exagon.M2.mpyd.acc.hh.s1"
+ }
+ break;
+ case 'l': // 2 strings to match.
+ if (memcmp(NameR.data()+21, ".s", 2))
+ break;
+ switch (NameR[23]) {
+ default: break;
+ case '0': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpyd_acc_hl_s0; // "exagon.M2.mpyd.acc.hl.s0"
+ case '1': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpyd_acc_hl_s1; // "exagon.M2.mpyd.acc.hl.s1"
+ }
+ break;
+ }
+ break;
+ case 'l': // 4 strings to match.
+ switch (NameR[20]) {
+ default: break;
+ case 'h': // 2 strings to match.
+ if (memcmp(NameR.data()+21, ".s", 2))
+ break;
+ switch (NameR[23]) {
+ default: break;
+ case '0': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpyd_acc_lh_s0; // "exagon.M2.mpyd.acc.lh.s0"
+ case '1': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpyd_acc_lh_s1; // "exagon.M2.mpyd.acc.lh.s1"
+ }
+ break;
+ case 'l': // 2 strings to match.
+ if (memcmp(NameR.data()+21, ".s", 2))
+ break;
+ switch (NameR[23]) {
+ default: break;
+ case '0': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpyd_acc_ll_s0; // "exagon.M2.mpyd.acc.ll.s0"
+ case '1': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpyd_acc_ll_s1; // "exagon.M2.mpyd.acc.ll.s1"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 'n': // 8 strings to match.
+ if (memcmp(NameR.data()+16, "ac.", 3))
+ break;
+ switch (NameR[19]) {
+ default: break;
+ case 'h': // 4 strings to match.
+ switch (NameR[20]) {
+ default: break;
+ case 'h': // 2 strings to match.
+ if (memcmp(NameR.data()+21, ".s", 2))
+ break;
+ switch (NameR[23]) {
+ default: break;
+ case '0': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpyd_nac_hh_s0; // "exagon.M2.mpyd.nac.hh.s0"
+ case '1': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpyd_nac_hh_s1; // "exagon.M2.mpyd.nac.hh.s1"
+ }
+ break;
+ case 'l': // 2 strings to match.
+ if (memcmp(NameR.data()+21, ".s", 2))
+ break;
+ switch (NameR[23]) {
+ default: break;
+ case '0': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpyd_nac_hl_s0; // "exagon.M2.mpyd.nac.hl.s0"
+ case '1': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpyd_nac_hl_s1; // "exagon.M2.mpyd.nac.hl.s1"
+ }
+ break;
+ }
+ break;
+ case 'l': // 4 strings to match.
+ switch (NameR[20]) {
+ default: break;
+ case 'h': // 2 strings to match.
+ if (memcmp(NameR.data()+21, ".s", 2))
+ break;
+ switch (NameR[23]) {
+ default: break;
+ case '0': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpyd_nac_lh_s0; // "exagon.M2.mpyd.nac.lh.s0"
+ case '1': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpyd_nac_lh_s1; // "exagon.M2.mpyd.nac.lh.s1"
+ }
+ break;
+ case 'l': // 2 strings to match.
+ if (memcmp(NameR.data()+21, ".s", 2))
+ break;
+ switch (NameR[23]) {
+ default: break;
+ case '0': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpyd_nac_ll_s0; // "exagon.M2.mpyd.nac.ll.s0"
+ case '1': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpyd_nac_ll_s1; // "exagon.M2.mpyd.nac.ll.s1"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 'r': // 8 strings to match.
+ if (memcmp(NameR.data()+16, "nd.", 3))
+ break;
+ switch (NameR[19]) {
+ default: break;
+ case 'h': // 4 strings to match.
+ switch (NameR[20]) {
+ default: break;
+ case 'h': // 2 strings to match.
+ if (memcmp(NameR.data()+21, ".s", 2))
+ break;
+ switch (NameR[23]) {
+ default: break;
+ case '0': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpyd_rnd_hh_s0; // "exagon.M2.mpyd.rnd.hh.s0"
+ case '1': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpyd_rnd_hh_s1; // "exagon.M2.mpyd.rnd.hh.s1"
+ }
+ break;
+ case 'l': // 2 strings to match.
+ if (memcmp(NameR.data()+21, ".s", 2))
+ break;
+ switch (NameR[23]) {
+ default: break;
+ case '0': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpyd_rnd_hl_s0; // "exagon.M2.mpyd.rnd.hl.s0"
+ case '1': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpyd_rnd_hl_s1; // "exagon.M2.mpyd.rnd.hl.s1"
+ }
+ break;
+ }
+ break;
+ case 'l': // 4 strings to match.
+ switch (NameR[20]) {
+ default: break;
+ case 'h': // 2 strings to match.
+ if (memcmp(NameR.data()+21, ".s", 2))
+ break;
+ switch (NameR[23]) {
+ default: break;
+ case '0': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpyd_rnd_lh_s0; // "exagon.M2.mpyd.rnd.lh.s0"
+ case '1': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpyd_rnd_lh_s1; // "exagon.M2.mpyd.rnd.lh.s1"
+ }
+ break;
+ case 'l': // 2 strings to match.
+ if (memcmp(NameR.data()+21, ".s", 2))
+ break;
+ switch (NameR[23]) {
+ default: break;
+ case '0': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpyd_rnd_ll_s0; // "exagon.M2.mpyd.rnd.ll.s0"
+ case '1': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpyd_rnd_ll_s1; // "exagon.M2.mpyd.rnd.ll.s1"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 'u': // 16 strings to match.
+ if (NameR[14] != '.')
+ break;
+ switch (NameR[15]) {
+ default: break;
+ case 'a': // 8 strings to match.
+ if (memcmp(NameR.data()+16, "cc.", 3))
+ break;
+ switch (NameR[19]) {
+ default: break;
+ case 'h': // 4 strings to match.
+ switch (NameR[20]) {
+ default: break;
+ case 'h': // 2 strings to match.
+ if (memcmp(NameR.data()+21, ".s", 2))
+ break;
+ switch (NameR[23]) {
+ default: break;
+ case '0': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpyu_acc_hh_s0; // "exagon.M2.mpyu.acc.hh.s0"
+ case '1': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpyu_acc_hh_s1; // "exagon.M2.mpyu.acc.hh.s1"
+ }
+ break;
+ case 'l': // 2 strings to match.
+ if (memcmp(NameR.data()+21, ".s", 2))
+ break;
+ switch (NameR[23]) {
+ default: break;
+ case '0': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpyu_acc_hl_s0; // "exagon.M2.mpyu.acc.hl.s0"
+ case '1': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpyu_acc_hl_s1; // "exagon.M2.mpyu.acc.hl.s1"
+ }
+ break;
+ }
+ break;
+ case 'l': // 4 strings to match.
+ switch (NameR[20]) {
+ default: break;
+ case 'h': // 2 strings to match.
+ if (memcmp(NameR.data()+21, ".s", 2))
+ break;
+ switch (NameR[23]) {
+ default: break;
+ case '0': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpyu_acc_lh_s0; // "exagon.M2.mpyu.acc.lh.s0"
+ case '1': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpyu_acc_lh_s1; // "exagon.M2.mpyu.acc.lh.s1"
+ }
+ break;
+ case 'l': // 2 strings to match.
+ if (memcmp(NameR.data()+21, ".s", 2))
+ break;
+ switch (NameR[23]) {
+ default: break;
+ case '0': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpyu_acc_ll_s0; // "exagon.M2.mpyu.acc.ll.s0"
+ case '1': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpyu_acc_ll_s1; // "exagon.M2.mpyu.acc.ll.s1"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 'n': // 8 strings to match.
+ if (memcmp(NameR.data()+16, "ac.", 3))
+ break;
+ switch (NameR[19]) {
+ default: break;
+ case 'h': // 4 strings to match.
+ switch (NameR[20]) {
+ default: break;
+ case 'h': // 2 strings to match.
+ if (memcmp(NameR.data()+21, ".s", 2))
+ break;
+ switch (NameR[23]) {
+ default: break;
+ case '0': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpyu_nac_hh_s0; // "exagon.M2.mpyu.nac.hh.s0"
+ case '1': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpyu_nac_hh_s1; // "exagon.M2.mpyu.nac.hh.s1"
+ }
+ break;
+ case 'l': // 2 strings to match.
+ if (memcmp(NameR.data()+21, ".s", 2))
+ break;
+ switch (NameR[23]) {
+ default: break;
+ case '0': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpyu_nac_hl_s0; // "exagon.M2.mpyu.nac.hl.s0"
+ case '1': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpyu_nac_hl_s1; // "exagon.M2.mpyu.nac.hl.s1"
+ }
+ break;
+ }
+ break;
+ case 'l': // 4 strings to match.
+ switch (NameR[20]) {
+ default: break;
+ case 'h': // 2 strings to match.
+ if (memcmp(NameR.data()+21, ".s", 2))
+ break;
+ switch (NameR[23]) {
+ default: break;
+ case '0': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpyu_nac_lh_s0; // "exagon.M2.mpyu.nac.lh.s0"
+ case '1': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpyu_nac_lh_s1; // "exagon.M2.mpyu.nac.lh.s1"
+ }
+ break;
+ case 'l': // 2 strings to match.
+ if (memcmp(NameR.data()+21, ".s", 2))
+ break;
+ switch (NameR[23]) {
+ default: break;
+ case '0': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpyu_nac_ll_s0; // "exagon.M2.mpyu.nac.ll.s0"
+ case '1': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpyu_nac_ll_s1; // "exagon.M2.mpyu.nac.ll.s1"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 'v': // 7 strings to match.
+ switch (NameR[11]) {
+ default: break;
+ case 'c': // 6 strings to match.
+ if (NameR[12] != 'm')
+ break;
+ switch (NameR[13]) {
+ default: break;
+ case 'a': // 2 strings to match.
+ if (memcmp(NameR.data()+14, "c.s0.sat.", 9))
+ break;
+ switch (NameR[23]) {
+ default: break;
+ case 'i': // 1 string to match.
+ return Intrinsic::hexagon_M2_vcmac_s0_sat_i; // "exagon.M2.vcmac.s0.sat.i"
+ case 'r': // 1 string to match.
+ return Intrinsic::hexagon_M2_vcmac_s0_sat_r; // "exagon.M2.vcmac.s0.sat.r"
+ }
+ break;
+ case 'p': // 4 strings to match.
+ if (memcmp(NameR.data()+14, "y.s", 3))
+ break;
+ switch (NameR[17]) {
+ default: break;
+ case '0': // 2 strings to match.
+ if (memcmp(NameR.data()+18, ".sat.", 5))
+ break;
+ switch (NameR[23]) {
+ default: break;
+ case 'i': // 1 string to match.
+ return Intrinsic::hexagon_M2_vcmpy_s0_sat_i; // "exagon.M2.vcmpy.s0.sat.i"
+ case 'r': // 1 string to match.
+ return Intrinsic::hexagon_M2_vcmpy_s0_sat_r; // "exagon.M2.vcmpy.s0.sat.r"
+ }
+ break;
+ case '1': // 2 strings to match.
+ if (memcmp(NameR.data()+18, ".sat.", 5))
+ break;
+ switch (NameR[23]) {
+ default: break;
+ case 'i': // 1 string to match.
+ return Intrinsic::hexagon_M2_vcmpy_s1_sat_i; // "exagon.M2.vcmpy.s1.sat.i"
+ case 'r': // 1 string to match.
+ return Intrinsic::hexagon_M2_vcmpy_s1_sat_r; // "exagon.M2.vcmpy.s1.sat.r"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 'r': // 1 string to match.
+ if (memcmp(NameR.data()+12, "cmpys.acc.s1", 12))
+ break;
+ return Intrinsic::hexagon_M2_vrcmpys_acc_s1; // "exagon.M2.vrcmpys.acc.s1"
+ }
+ break;
+ }
+ break;
+ case '4': // 4 strings to match.
+ if (memcmp(NameR.data()+9, ".vrmpy", 6))
+ break;
+ switch (NameR[15]) {
+ default: break;
+ case 'e': // 2 strings to match.
+ if (memcmp(NameR.data()+16, "h.acc.s", 7))
+ break;
+ switch (NameR[23]) {
+ default: break;
+ case '0': // 1 string to match.
+ return Intrinsic::hexagon_M4_vrmpyeh_acc_s0; // "exagon.M4.vrmpyeh.acc.s0"
+ case '1': // 1 string to match.
+ return Intrinsic::hexagon_M4_vrmpyeh_acc_s1; // "exagon.M4.vrmpyeh.acc.s1"
+ }
+ break;
+ case 'o': // 2 strings to match.
+ if (memcmp(NameR.data()+16, "h.acc.s", 7))
+ break;
+ switch (NameR[23]) {
+ default: break;
+ case '0': // 1 string to match.
+ return Intrinsic::hexagon_M4_vrmpyoh_acc_s0; // "exagon.M4.vrmpyoh.acc.s0"
+ case '1': // 1 string to match.
+ return Intrinsic::hexagon_M4_vrmpyoh_acc_s1; // "exagon.M4.vrmpyoh.acc.s1"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 'S': // 4 strings to match.
+ if (memcmp(NameR.data()+8, "2.", 2))
+ break;
+ switch (NameR[10]) {
+ default: break;
+ case 'a': // 2 strings to match.
+ if (memcmp(NameR.data()+11, "sr.", 3))
+ break;
+ switch (NameR[14]) {
+ default: break;
+ case 'i': // 1 string to match.
+ if (memcmp(NameR.data()+15, ".svw.trun", 9))
+ break;
+ return Intrinsic::hexagon_S2_asr_i_svw_trun; // "exagon.S2.asr.i.svw.trun"
+ case 'r': // 1 string to match.
+ if (memcmp(NameR.data()+15, ".svw.trun", 9))
+ break;
+ return Intrinsic::hexagon_S2_asr_r_svw_trun; // "exagon.S2.asr.r.svw.trun"
+ }
+ break;
+ case 'v': // 2 strings to match.
+ if (memcmp(NameR.data()+11, "sat", 3))
+ break;
+ switch (NameR[14]) {
+ default: break;
+ case 'h': // 1 string to match.
+ if (memcmp(NameR.data()+15, "ub.nopack", 9))
+ break;
+ return Intrinsic::hexagon_S2_vsathub_nopack; // "exagon.S2.vsathub.nopack"
+ case 'w': // 1 string to match.
+ if (memcmp(NameR.data()+15, "uh.nopack", 9))
+ break;
+ return Intrinsic::hexagon_S2_vsatwuh_nopack; // "exagon.S2.vsatwuh.nopack"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 25: // 33 strings to match.
+ if (memcmp(NameR.data()+0, "exagon.", 7))
+ break;
+ switch (NameR[7]) {
+ default: break;
+ case 'A': // 12 strings to match.
+ if (memcmp(NameR.data()+8, "2.", 2))
+ break;
+ switch (NameR[10]) {
+ default: break;
+ case 'a': // 6 strings to match.
+ if (memcmp(NameR.data()+11, "ddh.", 4))
+ break;
+ switch (NameR[15]) {
+ default: break;
+ case 'h': // 4 strings to match.
+ if (memcmp(NameR.data()+16, "16.sat.", 7))
+ break;
+ switch (NameR[23]) {
+ default: break;
+ case 'h': // 2 strings to match.
+ switch (NameR[24]) {
+ default: break;
+ case 'h': // 1 string to match.
+ return Intrinsic::hexagon_A2_addh_h16_sat_hh; // "exagon.A2.addh.h16.sat.hh"
+ case 'l': // 1 string to match.
+ return Intrinsic::hexagon_A2_addh_h16_sat_hl; // "exagon.A2.addh.h16.sat.hl"
+ }
+ break;
+ case 'l': // 2 strings to match.
+ switch (NameR[24]) {
+ default: break;
+ case 'h': // 1 string to match.
+ return Intrinsic::hexagon_A2_addh_h16_sat_lh; // "exagon.A2.addh.h16.sat.lh"
+ case 'l': // 1 string to match.
+ return Intrinsic::hexagon_A2_addh_h16_sat_ll; // "exagon.A2.addh.h16.sat.ll"
+ }
+ break;
+ }
+ break;
+ case 'l': // 2 strings to match.
+ if (memcmp(NameR.data()+16, "16.sat.", 7))
+ break;
+ switch (NameR[23]) {
+ default: break;
+ case 'h': // 1 string to match.
+ if (NameR[24] != 'l')
+ break;
+ return Intrinsic::hexagon_A2_addh_l16_sat_hl; // "exagon.A2.addh.l16.sat.hl"
+ case 'l': // 1 string to match.
+ if (NameR[24] != 'l')
+ break;
+ return Intrinsic::hexagon_A2_addh_l16_sat_ll; // "exagon.A2.addh.l16.sat.ll"
+ }
+ break;
+ }
+ break;
+ case 's': // 6 strings to match.
+ if (memcmp(NameR.data()+11, "ubh.", 4))
+ break;
+ switch (NameR[15]) {
+ default: break;
+ case 'h': // 4 strings to match.
+ if (memcmp(NameR.data()+16, "16.sat.", 7))
+ break;
+ switch (NameR[23]) {
+ default: break;
+ case 'h': // 2 strings to match.
+ switch (NameR[24]) {
+ default: break;
+ case 'h': // 1 string to match.
+ return Intrinsic::hexagon_A2_subh_h16_sat_hh; // "exagon.A2.subh.h16.sat.hh"
+ case 'l': // 1 string to match.
+ return Intrinsic::hexagon_A2_subh_h16_sat_hl; // "exagon.A2.subh.h16.sat.hl"
+ }
+ break;
+ case 'l': // 2 strings to match.
+ switch (NameR[24]) {
+ default: break;
+ case 'h': // 1 string to match.
+ return Intrinsic::hexagon_A2_subh_h16_sat_lh; // "exagon.A2.subh.h16.sat.lh"
+ case 'l': // 1 string to match.
+ return Intrinsic::hexagon_A2_subh_h16_sat_ll; // "exagon.A2.subh.h16.sat.ll"
+ }
+ break;
+ }
+ break;
+ case 'l': // 2 strings to match.
+ if (memcmp(NameR.data()+16, "16.sat.", 7))
+ break;
+ switch (NameR[23]) {
+ default: break;
+ case 'h': // 1 string to match.
+ if (NameR[24] != 'l')
+ break;
+ return Intrinsic::hexagon_A2_subh_l16_sat_hl; // "exagon.A2.subh.l16.sat.hl"
+ case 'l': // 1 string to match.
+ if (NameR[24] != 'l')
+ break;
+ return Intrinsic::hexagon_A2_subh_l16_sat_ll; // "exagon.A2.subh.l16.sat.ll"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 'C': // 1 string to match.
+ if (memcmp(NameR.data()+8, "4.fastcorner9.not", 17))
+ break;
+ return Intrinsic::hexagon_C4_fastcorner9_not; // "exagon.C4.fastcorner9.not"
+ case 'F': // 4 strings to match.
+ if (memcmp(NameR.data()+8, "2.conv.", 7))
+ break;
+ switch (NameR[15]) {
+ default: break;
+ case 'd': // 2 strings to match.
+ if (memcmp(NameR.data()+16, "f2u", 3))
+ break;
+ switch (NameR[19]) {
+ default: break;
+ case 'd': // 1 string to match.
+ if (memcmp(NameR.data()+20, ".chop", 5))
+ break;
+ return Intrinsic::hexagon_F2_conv_df2ud_chop; // "exagon.F2.conv.df2ud.chop"
+ case 'w': // 1 string to match.
+ if (memcmp(NameR.data()+20, ".chop", 5))
+ break;
+ return Intrinsic::hexagon_F2_conv_df2uw_chop; // "exagon.F2.conv.df2uw.chop"
+ }
+ break;
+ case 's': // 2 strings to match.
+ if (memcmp(NameR.data()+16, "f2u", 3))
+ break;
+ switch (NameR[19]) {
+ default: break;
+ case 'd': // 1 string to match.
+ if (memcmp(NameR.data()+20, ".chop", 5))
+ break;
+ return Intrinsic::hexagon_F2_conv_sf2ud_chop; // "exagon.F2.conv.sf2ud.chop"
+ case 'w': // 1 string to match.
+ if (memcmp(NameR.data()+20, ".chop", 5))
+ break;
+ return Intrinsic::hexagon_F2_conv_sf2uw_chop; // "exagon.F2.conv.sf2uw.chop"
+ }
+ break;
+ }
+ break;
+ case 'M': // 16 strings to match.
+ if (memcmp(NameR.data()+8, "2.mpyud.", 8))
+ break;
+ switch (NameR[16]) {
+ default: break;
+ case 'a': // 8 strings to match.
+ if (memcmp(NameR.data()+17, "cc.", 3))
+ break;
+ switch (NameR[20]) {
+ default: break;
+ case 'h': // 4 strings to match.
+ switch (NameR[21]) {
+ default: break;
+ case 'h': // 2 strings to match.
+ if (memcmp(NameR.data()+22, ".s", 2))
+ break;
+ switch (NameR[24]) {
+ default: break;
+ case '0': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpyud_acc_hh_s0; // "exagon.M2.mpyud.acc.hh.s0"
+ case '1': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpyud_acc_hh_s1; // "exagon.M2.mpyud.acc.hh.s1"
+ }
+ break;
+ case 'l': // 2 strings to match.
+ if (memcmp(NameR.data()+22, ".s", 2))
+ break;
+ switch (NameR[24]) {
+ default: break;
+ case '0': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpyud_acc_hl_s0; // "exagon.M2.mpyud.acc.hl.s0"
+ case '1': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpyud_acc_hl_s1; // "exagon.M2.mpyud.acc.hl.s1"
+ }
+ break;
+ }
+ break;
+ case 'l': // 4 strings to match.
+ switch (NameR[21]) {
+ default: break;
+ case 'h': // 2 strings to match.
+ if (memcmp(NameR.data()+22, ".s", 2))
+ break;
+ switch (NameR[24]) {
+ default: break;
+ case '0': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpyud_acc_lh_s0; // "exagon.M2.mpyud.acc.lh.s0"
+ case '1': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpyud_acc_lh_s1; // "exagon.M2.mpyud.acc.lh.s1"
+ }
+ break;
+ case 'l': // 2 strings to match.
+ if (memcmp(NameR.data()+22, ".s", 2))
+ break;
+ switch (NameR[24]) {
+ default: break;
+ case '0': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpyud_acc_ll_s0; // "exagon.M2.mpyud.acc.ll.s0"
+ case '1': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpyud_acc_ll_s1; // "exagon.M2.mpyud.acc.ll.s1"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 'n': // 8 strings to match.
+ if (memcmp(NameR.data()+17, "ac.", 3))
+ break;
+ switch (NameR[20]) {
+ default: break;
+ case 'h': // 4 strings to match.
+ switch (NameR[21]) {
+ default: break;
+ case 'h': // 2 strings to match.
+ if (memcmp(NameR.data()+22, ".s", 2))
+ break;
+ switch (NameR[24]) {
+ default: break;
+ case '0': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpyud_nac_hh_s0; // "exagon.M2.mpyud.nac.hh.s0"
+ case '1': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpyud_nac_hh_s1; // "exagon.M2.mpyud.nac.hh.s1"
+ }
+ break;
+ case 'l': // 2 strings to match.
+ if (memcmp(NameR.data()+22, ".s", 2))
+ break;
+ switch (NameR[24]) {
+ default: break;
+ case '0': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpyud_nac_hl_s0; // "exagon.M2.mpyud.nac.hl.s0"
+ case '1': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpyud_nac_hl_s1; // "exagon.M2.mpyud.nac.hl.s1"
+ }
+ break;
+ }
+ break;
+ case 'l': // 4 strings to match.
+ switch (NameR[21]) {
+ default: break;
+ case 'h': // 2 strings to match.
+ if (memcmp(NameR.data()+22, ".s", 2))
+ break;
+ switch (NameR[24]) {
+ default: break;
+ case '0': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpyud_nac_lh_s0; // "exagon.M2.mpyud.nac.lh.s0"
+ case '1': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpyud_nac_lh_s1; // "exagon.M2.mpyud.nac.lh.s1"
+ }
+ break;
+ case 'l': // 2 strings to match.
+ if (memcmp(NameR.data()+22, ".s", 2))
+ break;
+ switch (NameR[24]) {
+ default: break;
+ case '0': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpyud_nac_ll_s0; // "exagon.M2.mpyud.nac.ll.s0"
+ case '1': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpyud_nac_ll_s1; // "exagon.M2.mpyud.nac.ll.s1"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 27: // 24 strings to match.
+ if (memcmp(NameR.data()+0, "exagon.M2.mpy.", 14))
+ break;
+ switch (NameR[14]) {
+ default: break;
+ case 'a': // 8 strings to match.
+ if (memcmp(NameR.data()+15, "cc.sat.", 7))
+ break;
+ switch (NameR[22]) {
+ default: break;
+ case 'h': // 4 strings to match.
+ switch (NameR[23]) {
+ default: break;
+ case 'h': // 2 strings to match.
+ if (memcmp(NameR.data()+24, ".s", 2))
+ break;
+ switch (NameR[26]) {
+ default: break;
+ case '0': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpy_acc_sat_hh_s0; // "exagon.M2.mpy.acc.sat.hh.s0"
+ case '1': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpy_acc_sat_hh_s1; // "exagon.M2.mpy.acc.sat.hh.s1"
+ }
+ break;
+ case 'l': // 2 strings to match.
+ if (memcmp(NameR.data()+24, ".s", 2))
+ break;
+ switch (NameR[26]) {
+ default: break;
+ case '0': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpy_acc_sat_hl_s0; // "exagon.M2.mpy.acc.sat.hl.s0"
+ case '1': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpy_acc_sat_hl_s1; // "exagon.M2.mpy.acc.sat.hl.s1"
+ }
+ break;
+ }
+ break;
+ case 'l': // 4 strings to match.
+ switch (NameR[23]) {
+ default: break;
+ case 'h': // 2 strings to match.
+ if (memcmp(NameR.data()+24, ".s", 2))
+ break;
+ switch (NameR[26]) {
+ default: break;
+ case '0': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpy_acc_sat_lh_s0; // "exagon.M2.mpy.acc.sat.lh.s0"
+ case '1': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpy_acc_sat_lh_s1; // "exagon.M2.mpy.acc.sat.lh.s1"
+ }
+ break;
+ case 'l': // 2 strings to match.
+ if (memcmp(NameR.data()+24, ".s", 2))
+ break;
+ switch (NameR[26]) {
+ default: break;
+ case '0': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpy_acc_sat_ll_s0; // "exagon.M2.mpy.acc.sat.ll.s0"
+ case '1': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpy_acc_sat_ll_s1; // "exagon.M2.mpy.acc.sat.ll.s1"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 'n': // 8 strings to match.
+ if (memcmp(NameR.data()+15, "ac.sat.", 7))
+ break;
+ switch (NameR[22]) {
+ default: break;
+ case 'h': // 4 strings to match.
+ switch (NameR[23]) {
+ default: break;
+ case 'h': // 2 strings to match.
+ if (memcmp(NameR.data()+24, ".s", 2))
+ break;
+ switch (NameR[26]) {
+ default: break;
+ case '0': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpy_nac_sat_hh_s0; // "exagon.M2.mpy.nac.sat.hh.s0"
+ case '1': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpy_nac_sat_hh_s1; // "exagon.M2.mpy.nac.sat.hh.s1"
+ }
+ break;
+ case 'l': // 2 strings to match.
+ if (memcmp(NameR.data()+24, ".s", 2))
+ break;
+ switch (NameR[26]) {
+ default: break;
+ case '0': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpy_nac_sat_hl_s0; // "exagon.M2.mpy.nac.sat.hl.s0"
+ case '1': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpy_nac_sat_hl_s1; // "exagon.M2.mpy.nac.sat.hl.s1"
+ }
+ break;
+ }
+ break;
+ case 'l': // 4 strings to match.
+ switch (NameR[23]) {
+ default: break;
+ case 'h': // 2 strings to match.
+ if (memcmp(NameR.data()+24, ".s", 2))
+ break;
+ switch (NameR[26]) {
+ default: break;
+ case '0': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpy_nac_sat_lh_s0; // "exagon.M2.mpy.nac.sat.lh.s0"
+ case '1': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpy_nac_sat_lh_s1; // "exagon.M2.mpy.nac.sat.lh.s1"
+ }
+ break;
+ case 'l': // 2 strings to match.
+ if (memcmp(NameR.data()+24, ".s", 2))
+ break;
+ switch (NameR[26]) {
+ default: break;
+ case '0': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpy_nac_sat_ll_s0; // "exagon.M2.mpy.nac.sat.ll.s0"
+ case '1': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpy_nac_sat_ll_s1; // "exagon.M2.mpy.nac.sat.ll.s1"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 's': // 8 strings to match.
+ if (memcmp(NameR.data()+15, "at.rnd.", 7))
+ break;
+ switch (NameR[22]) {
+ default: break;
+ case 'h': // 4 strings to match.
+ switch (NameR[23]) {
+ default: break;
+ case 'h': // 2 strings to match.
+ if (memcmp(NameR.data()+24, ".s", 2))
+ break;
+ switch (NameR[26]) {
+ default: break;
+ case '0': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpy_sat_rnd_hh_s0; // "exagon.M2.mpy.sat.rnd.hh.s0"
+ case '1': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpy_sat_rnd_hh_s1; // "exagon.M2.mpy.sat.rnd.hh.s1"
+ }
+ break;
+ case 'l': // 2 strings to match.
+ if (memcmp(NameR.data()+24, ".s", 2))
+ break;
+ switch (NameR[26]) {
+ default: break;
+ case '0': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpy_sat_rnd_hl_s0; // "exagon.M2.mpy.sat.rnd.hl.s0"
+ case '1': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpy_sat_rnd_hl_s1; // "exagon.M2.mpy.sat.rnd.hl.s1"
+ }
+ break;
+ }
+ break;
+ case 'l': // 4 strings to match.
+ switch (NameR[23]) {
+ default: break;
+ case 'h': // 2 strings to match.
+ if (memcmp(NameR.data()+24, ".s", 2))
+ break;
+ switch (NameR[26]) {
+ default: break;
+ case '0': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpy_sat_rnd_lh_s0; // "exagon.M2.mpy.sat.rnd.lh.s0"
+ case '1': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpy_sat_rnd_lh_s1; // "exagon.M2.mpy.sat.rnd.lh.s1"
+ }
+ break;
+ case 'l': // 2 strings to match.
+ if (memcmp(NameR.data()+24, ".s", 2))
+ break;
+ switch (NameR[26]) {
+ default: break;
+ case '0': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpy_sat_rnd_ll_s0; // "exagon.M2.mpy.sat.rnd.ll.s0"
+ case '1': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpy_sat_rnd_ll_s1; // "exagon.M2.mpy.sat.rnd.ll.s1"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 29: // 1 string to match.
+ if (memcmp(NameR.data()+0, "exagon.S5.vasrhrnd.goodsyntax", 29))
+ break;
+ return Intrinsic::hexagon_S5_vasrhrnd_goodsyntax; // "exagon.S5.vasrhrnd.goodsyntax"
+ case 30: // 4 strings to match.
+ if (memcmp(NameR.data()+0, "exagon.S2.tableidx", 18))
+ break;
+ switch (NameR[18]) {
+ default: break;
+ case 'b': // 1 string to match.
+ if (memcmp(NameR.data()+19, ".goodsyntax", 11))
+ break;
+ return Intrinsic::hexagon_S2_tableidxb_goodsyntax; // "exagon.S2.tableidxb.goodsyntax"
+ case 'd': // 1 string to match.
+ if (memcmp(NameR.data()+19, ".goodsyntax", 11))
+ break;
+ return Intrinsic::hexagon_S2_tableidxd_goodsyntax; // "exagon.S2.tableidxd.goodsyntax"
+ case 'h': // 1 string to match.
+ if (memcmp(NameR.data()+19, ".goodsyntax", 11))
+ break;
+ return Intrinsic::hexagon_S2_tableidxh_goodsyntax; // "exagon.S2.tableidxh.goodsyntax"
+ case 'w': // 1 string to match.
+ if (memcmp(NameR.data()+19, ".goodsyntax", 11))
+ break;
+ return Intrinsic::hexagon_S2_tableidxw_goodsyntax; // "exagon.S2.tableidxw.goodsyntax"
+ }
+ break;
+ case 32: // 2 strings to match.
+ if (memcmp(NameR.data()+0, "exagon.S2.asr.i.", 16))
+ break;
+ switch (NameR[16]) {
+ default: break;
+ case 'p': // 1 string to match.
+ if (memcmp(NameR.data()+17, ".rnd.goodsyntax", 15))
+ break;
+ return Intrinsic::hexagon_S2_asr_i_p_rnd_goodsyntax; // "exagon.S2.asr.i.p.rnd.goodsyntax"
+ case 'r': // 1 string to match.
+ if (memcmp(NameR.data()+17, ".rnd.goodsyntax", 15))
+ break;
+ return Intrinsic::hexagon_S2_asr_i_r_rnd_goodsyntax; // "exagon.S2.asr.i.r.rnd.goodsyntax"
+ }
+ break;
+ case 35: // 1 string to match.
+ if (memcmp(NameR.data()+0, "exagon.S5.asrhub.rnd.sat.goodsyntax", 35))
+ break;
+ return Intrinsic::hexagon_S5_asrhub_rnd_sat_goodsyntax; // "exagon.S5.asrhub.rnd.sat.goodsyntax"
+ }
+ break; // end of 'h' case.
+ case 'i':
+ switch (NameR.size()) {
+ default: break;
+ case 12: // 1 string to match.
+ if (memcmp(NameR.data()+0, "nvariant.end", 12))
+ break;
+ return Intrinsic::invariant_end; // "nvariant.end"
+ case 14: // 2 strings to match.
+ if (NameR[0] != 'n')
+ break;
+ switch (NameR[1]) {
+ default: break;
+ case 'i': // 1 string to match.
+ if (memcmp(NameR.data()+2, "t.trampoline", 12))
+ break;
+ return Intrinsic::init_trampoline; // "nit.trampoline"
+ case 'v': // 1 string to match.
+ if (memcmp(NameR.data()+2, "ariant.start", 12))
+ break;
+ return Intrinsic::invariant_start; // "nvariant.start"
+ }
+ break;
+ }
+ break; // end of 'i' case.
+ case 'l':
+ if (NameR.startswith("og2.")) return Intrinsic::log2;
+ if (NameR.startswith("og10.")) return Intrinsic::log10;
+ if (NameR.startswith("og.")) return Intrinsic::log;
+ switch (NameR.size()) {
+ default: break;
+ case 6: // 1 string to match.
+ if (memcmp(NameR.data()+0, "ongjmp", 6))
+ break;
+ return Intrinsic::longjmp; // "ongjmp"
+ case 11: // 1 string to match.
+ if (memcmp(NameR.data()+0, "ifetime.end", 11))
+ break;
+ return Intrinsic::lifetime_end; // "ifetime.end"
+ case 13: // 1 string to match.
+ if (memcmp(NameR.data()+0, "ifetime.start", 13))
+ break;
+ return Intrinsic::lifetime_start; // "ifetime.start"
+ }
+ break; // end of 'l' case.
+ case 'm':
+ if (NameR.startswith("emset.")) return Intrinsic::memset;
+ if (NameR.startswith("emmove.")) return Intrinsic::memmove;
+ if (NameR.startswith("emcpy.")) return Intrinsic::memcpy;
+ switch (NameR.size()) {
+ default: break;
+ case 7: // 3 strings to match.
+ if (memcmp(NameR.data()+0, "ips.l", 5))
+ break;
+ switch (NameR[5]) {
+ default: break;
+ case 'h': // 1 string to match.
+ if (NameR[6] != 'x')
+ break;
+ return Intrinsic::mips_lhx; // "ips.lhx"
+ case 's': // 1 string to match.
+ if (NameR[6] != 'a')
+ break;
+ return Intrinsic::mips_lsa; // "ips.lsa"
+ case 'w': // 1 string to match.
+ if (NameR[6] != 'x')
+ break;
+ return Intrinsic::mips_lwx; // "ips.lwx"
+ }
+ break;
+ case 8: // 21 strings to match.
+ if (memcmp(NameR.data()+0, "ips.", 4))
+ break;
+ switch (NameR[4]) {
+ default: break;
+ case 'b': // 5 strings to match.
+ if (memcmp(NameR.data()+5, "z.", 2))
+ break;
+ switch (NameR[7]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::mips_bz_b; // "ips.bz.b"
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_bz_d; // "ips.bz.d"
+ case 'h': // 1 string to match.
+ return Intrinsic::mips_bz_h; // "ips.bz.h"
+ case 'v': // 1 string to match.
+ return Intrinsic::mips_bz_v; // "ips.bz.v"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_bz_w; // "ips.bz.w"
+ }
+ break;
+ case 'd': // 1 string to match.
+ if (memcmp(NameR.data()+5, "lsa", 3))
+ break;
+ return Intrinsic::mips_dlsa; // "ips.dlsa"
+ case 'e': // 1 string to match.
+ if (memcmp(NameR.data()+5, "xtp", 3))
+ break;
+ return Intrinsic::mips_extp; // "ips.extp"
+ case 'i': // 1 string to match.
+ if (memcmp(NameR.data()+5, "nsv", 3))
+ break;
+ return Intrinsic::mips_insv; // "ips.insv"
+ case 'l': // 5 strings to match.
+ switch (NameR[5]) {
+ default: break;
+ case 'b': // 1 string to match.
+ if (memcmp(NameR.data()+6, "ux", 2))
+ break;
+ return Intrinsic::mips_lbux; // "ips.lbux"
+ case 'd': // 4 strings to match.
+ if (NameR[6] != '.')
+ break;
+ switch (NameR[7]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::mips_ld_b; // "ips.ld.b"
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_ld_d; // "ips.ld.d"
+ case 'h': // 1 string to match.
+ return Intrinsic::mips_ld_h; // "ips.ld.h"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_ld_w; // "ips.ld.w"
+ }
+ break;
+ }
+ break;
+ case 'm': // 3 strings to match.
+ switch (NameR[5]) {
+ default: break;
+ case 'a': // 1 string to match.
+ if (memcmp(NameR.data()+6, "dd", 2))
+ break;
+ return Intrinsic::mips_madd; // "ips.madd"
+ case 's': // 1 string to match.
+ if (memcmp(NameR.data()+6, "ub", 2))
+ break;
+ return Intrinsic::mips_msub; // "ips.msub"
+ case 'u': // 1 string to match.
+ if (memcmp(NameR.data()+6, "lt", 2))
+ break;
+ return Intrinsic::mips_mult; // "ips.mult"
+ }
+ break;
+ case 'o': // 1 string to match.
+ if (memcmp(NameR.data()+5, "r.v", 3))
+ break;
+ return Intrinsic::mips_or_v; // "ips.or.v"
+ case 's': // 4 strings to match.
+ if (memcmp(NameR.data()+5, "t.", 2))
+ break;
+ switch (NameR[7]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::mips_st_b; // "ips.st.b"
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_st_d; // "ips.st.d"
+ case 'h': // 1 string to match.
+ return Intrinsic::mips_st_h; // "ips.st.h"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_st_w; // "ips.st.w"
+ }
+ break;
+ }
+ break;
+ case 9: // 47 strings to match.
+ if (memcmp(NameR.data()+0, "ips.", 4))
+ break;
+ switch (NameR[4]) {
+ default: break;
+ case 'a': // 3 strings to match.
+ switch (NameR[5]) {
+ default: break;
+ case 'd': // 2 strings to match.
+ if (NameR[6] != 'd')
+ break;
+ switch (NameR[7]) {
+ default: break;
+ case 's': // 1 string to match.
+ if (NameR[8] != 'c')
+ break;
+ return Intrinsic::mips_addsc; // "ips.addsc"
+ case 'w': // 1 string to match.
+ if (NameR[8] != 'c')
+ break;
+ return Intrinsic::mips_addwc; // "ips.addwc"
+ }
+ break;
+ case 'n': // 1 string to match.
+ if (memcmp(NameR.data()+6, "d.v", 3))
+ break;
+ return Intrinsic::mips_and_v; // "ips.and.v"
+ }
+ break;
+ case 'b': // 6 strings to match.
+ switch (NameR[5]) {
+ default: break;
+ case 'm': // 1 string to match.
+ if (memcmp(NameR.data()+6, "z.v", 3))
+ break;
+ return Intrinsic::mips_bmz_v; // "ips.bmz.v"
+ case 'n': // 5 strings to match.
+ if (memcmp(NameR.data()+6, "z.", 2))
+ break;
+ switch (NameR[8]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::mips_bnz_b; // "ips.bnz.b"
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_bnz_d; // "ips.bnz.d"
+ case 'h': // 1 string to match.
+ return Intrinsic::mips_bnz_h; // "ips.bnz.h"
+ case 'v': // 1 string to match.
+ return Intrinsic::mips_bnz_v; // "ips.bnz.v"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_bnz_w; // "ips.bnz.w"
+ }
+ break;
+ }
+ break;
+ case 'c': // 4 strings to match.
+ if (memcmp(NameR.data()+5, "eq.", 3))
+ break;
+ switch (NameR[8]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::mips_ceq_b; // "ips.ceq.b"
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_ceq_d; // "ips.ceq.d"
+ case 'h': // 1 string to match.
+ return Intrinsic::mips_ceq_h; // "ips.ceq.h"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_ceq_w; // "ips.ceq.w"
+ }
+ break;
+ case 'f': // 2 strings to match.
+ if (memcmp(NameR.data()+5, "tq.", 3))
+ break;
+ switch (NameR[8]) {
+ default: break;
+ case 'h': // 1 string to match.
+ return Intrinsic::mips_ftq_h; // "ips.ftq.h"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_ftq_w; // "ips.ftq.w"
+ }
+ break;
+ case 'l': // 4 strings to match.
+ if (memcmp(NameR.data()+5, "di.", 3))
+ break;
+ switch (NameR[8]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::mips_ldi_b; // "ips.ldi.b"
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_ldi_d; // "ips.ldi.d"
+ case 'h': // 1 string to match.
+ return Intrinsic::mips_ldi_h; // "ips.ldi.h"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_ldi_w; // "ips.ldi.w"
+ }
+ break;
+ case 'm': // 3 strings to match.
+ switch (NameR[5]) {
+ default: break;
+ case 'a': // 1 string to match.
+ if (memcmp(NameR.data()+6, "ddu", 3))
+ break;
+ return Intrinsic::mips_maddu; // "ips.maddu"
+ case 's': // 1 string to match.
+ if (memcmp(NameR.data()+6, "ubu", 3))
+ break;
+ return Intrinsic::mips_msubu; // "ips.msubu"
+ case 'u': // 1 string to match.
+ if (memcmp(NameR.data()+6, "ltu", 3))
+ break;
+ return Intrinsic::mips_multu; // "ips.multu"
+ }
+ break;
+ case 'n': // 1 string to match.
+ if (memcmp(NameR.data()+5, "or.v", 4))
+ break;
+ return Intrinsic::mips_nor_v; // "ips.nor.v"
+ case 'o': // 1 string to match.
+ if (memcmp(NameR.data()+5, "ri.b", 4))
+ break;
+ return Intrinsic::mips_ori_b; // "ips.ori.b"
+ case 'r': // 1 string to match.
+ if (memcmp(NameR.data()+5, "ddsp", 4))
+ break;
+ return Intrinsic::mips_rddsp; // "ips.rddsp"
+ case 's': // 20 strings to match.
+ switch (NameR[5]) {
+ default: break;
+ case 'h': // 4 strings to match.
+ switch (NameR[6]) {
+ default: break;
+ case 'f': // 3 strings to match.
+ if (NameR[7] != '.')
+ break;
+ switch (NameR[8]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::mips_shf_b; // "ips.shf.b"
+ case 'h': // 1 string to match.
+ return Intrinsic::mips_shf_h; // "ips.shf.h"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_shf_w; // "ips.shf.w"
+ }
+ break;
+ case 'i': // 1 string to match.
+ if (memcmp(NameR.data()+7, "lo", 2))
+ break;
+ return Intrinsic::mips_shilo; // "ips.shilo"
+ }
+ break;
+ case 'l': // 8 strings to match.
+ switch (NameR[6]) {
+ default: break;
+ case 'd': // 4 strings to match.
+ if (NameR[7] != '.')
+ break;
+ switch (NameR[8]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::mips_sld_b; // "ips.sld.b"
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_sld_d; // "ips.sld.d"
+ case 'h': // 1 string to match.
+ return Intrinsic::mips_sld_h; // "ips.sld.h"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_sld_w; // "ips.sld.w"
+ }
+ break;
+ case 'l': // 4 strings to match.
+ if (NameR[7] != '.')
+ break;
+ switch (NameR[8]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::mips_sll_b; // "ips.sll.b"
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_sll_d; // "ips.sll.d"
+ case 'h': // 1 string to match.
+ return Intrinsic::mips_sll_h; // "ips.sll.h"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_sll_w; // "ips.sll.w"
+ }
+ break;
+ }
+ break;
+ case 'r': // 8 strings to match.
+ switch (NameR[6]) {
+ default: break;
+ case 'a': // 4 strings to match.
+ if (NameR[7] != '.')
+ break;
+ switch (NameR[8]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::mips_sra_b; // "ips.sra.b"
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_sra_d; // "ips.sra.d"
+ case 'h': // 1 string to match.
+ return Intrinsic::mips_sra_h; // "ips.sra.h"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_sra_w; // "ips.sra.w"
+ }
+ break;
+ case 'l': // 4 strings to match.
+ if (NameR[7] != '.')
+ break;
+ switch (NameR[8]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::mips_srl_b; // "ips.srl.b"
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_srl_d; // "ips.srl.d"
+ case 'h': // 1 string to match.
+ return Intrinsic::mips_srl_h; // "ips.srl.h"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_srl_w; // "ips.srl.w"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 'w': // 1 string to match.
+ if (memcmp(NameR.data()+5, "rdsp", 4))
+ break;
+ return Intrinsic::mips_wrdsp; // "ips.wrdsp"
+ case 'x': // 1 string to match.
+ if (memcmp(NameR.data()+5, "or.v", 4))
+ break;
+ return Intrinsic::mips_xor_v; // "ips.xor.v"
+ }
+ break;
+ case 10: // 143 strings to match.
+ if (memcmp(NameR.data()+0, "ips.", 4))
+ break;
+ switch (NameR[4]) {
+ default: break;
+ case 'a': // 6 strings to match.
+ switch (NameR[5]) {
+ default: break;
+ case 'd': // 4 strings to match.
+ if (memcmp(NameR.data()+6, "dv.", 3))
+ break;
+ switch (NameR[9]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::mips_addv_b; // "ips.addv.b"
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_addv_d; // "ips.addv.d"
+ case 'h': // 1 string to match.
+ return Intrinsic::mips_addv_h; // "ips.addv.h"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_addv_w; // "ips.addv.w"
+ }
+ break;
+ case 'n': // 1 string to match.
+ if (memcmp(NameR.data()+6, "di.b", 4))
+ break;
+ return Intrinsic::mips_andi_b; // "ips.andi.b"
+ case 'p': // 1 string to match.
+ if (memcmp(NameR.data()+6, "pend", 4))
+ break;
+ return Intrinsic::mips_append; // "ips.append"
+ }
+ break;
+ case 'b': // 17 strings to match.
+ switch (NameR[5]) {
+ default: break;
+ case 'a': // 1 string to match.
+ if (memcmp(NameR.data()+6, "lign", 4))
+ break;
+ return Intrinsic::mips_balign; // "ips.balign"
+ case 'c': // 4 strings to match.
+ if (memcmp(NameR.data()+6, "lr.", 3))
+ break;
+ switch (NameR[9]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::mips_bclr_b; // "ips.bclr.b"
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_bclr_d; // "ips.bclr.d"
+ case 'h': // 1 string to match.
+ return Intrinsic::mips_bclr_h; // "ips.bclr.h"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_bclr_w; // "ips.bclr.w"
+ }
+ break;
+ case 'i': // 1 string to match.
+ if (memcmp(NameR.data()+6, "trev", 4))
+ break;
+ return Intrinsic::mips_bitrev; // "ips.bitrev"
+ case 'm': // 2 strings to match.
+ switch (NameR[6]) {
+ default: break;
+ case 'n': // 1 string to match.
+ if (memcmp(NameR.data()+7, "z.v", 3))
+ break;
+ return Intrinsic::mips_bmnz_v; // "ips.bmnz.v"
+ case 'z': // 1 string to match.
+ if (memcmp(NameR.data()+7, "i.b", 3))
+ break;
+ return Intrinsic::mips_bmzi_b; // "ips.bmzi.b"
+ }
+ break;
+ case 'n': // 4 strings to match.
+ if (memcmp(NameR.data()+6, "eg.", 3))
+ break;
+ switch (NameR[9]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::mips_bneg_b; // "ips.bneg.b"
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_bneg_d; // "ips.bneg.d"
+ case 'h': // 1 string to match.
+ return Intrinsic::mips_bneg_h; // "ips.bneg.h"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_bneg_w; // "ips.bneg.w"
+ }
+ break;
+ case 's': // 5 strings to match.
+ if (NameR[6] != 'e')
+ break;
+ switch (NameR[7]) {
+ default: break;
+ case 'l': // 1 string to match.
+ if (memcmp(NameR.data()+8, ".v", 2))
+ break;
+ return Intrinsic::mips_bsel_v; // "ips.bsel.v"
+ case 't': // 4 strings to match.
+ if (NameR[8] != '.')
+ break;
+ switch (NameR[9]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::mips_bset_b; // "ips.bset.b"
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_bset_d; // "ips.bset.d"
+ case 'h': // 1 string to match.
+ return Intrinsic::mips_bset_h; // "ips.bset.h"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_bset_w; // "ips.bset.w"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 'c': // 6 strings to match.
+ switch (NameR[5]) {
+ default: break;
+ case 'e': // 4 strings to match.
+ if (memcmp(NameR.data()+6, "qi.", 3))
+ break;
+ switch (NameR[9]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::mips_ceqi_b; // "ips.ceqi.b"
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_ceqi_d; // "ips.ceqi.d"
+ case 'h': // 1 string to match.
+ return Intrinsic::mips_ceqi_h; // "ips.ceqi.h"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_ceqi_w; // "ips.ceqi.w"
+ }
+ break;
+ case 'f': // 1 string to match.
+ if (memcmp(NameR.data()+6, "cmsa", 4))
+ break;
+ return Intrinsic::mips_cfcmsa; // "ips.cfcmsa"
+ case 't': // 1 string to match.
+ if (memcmp(NameR.data()+6, "cmsa", 4))
+ break;
+ return Intrinsic::mips_ctcmsa; // "ips.ctcmsa"
+ }
+ break;
+ case 'e': // 2 strings to match.
+ if (memcmp(NameR.data()+5, "xt", 2))
+ break;
+ switch (NameR[7]) {
+ default: break;
+ case 'p': // 1 string to match.
+ if (memcmp(NameR.data()+8, "dp", 2))
+ break;
+ return Intrinsic::mips_extpdp; // "ips.extpdp"
+ case 'r': // 1 string to match.
+ if (memcmp(NameR.data()+8, ".w", 2))
+ break;
+ return Intrinsic::mips_extr_w; // "ips.extr.w"
+ }
+ break;
+ case 'f': // 50 strings to match.
+ switch (NameR[5]) {
+ default: break;
+ case 'a': // 2 strings to match.
+ if (memcmp(NameR.data()+6, "dd.", 3))
+ break;
+ switch (NameR[9]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_fadd_d; // "ips.fadd.d"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_fadd_w; // "ips.fadd.w"
+ }
+ break;
+ case 'c': // 14 strings to match.
+ switch (NameR[6]) {
+ default: break;
+ case 'a': // 2 strings to match.
+ if (memcmp(NameR.data()+7, "f.", 2))
+ break;
+ switch (NameR[9]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_fcaf_d; // "ips.fcaf.d"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_fcaf_w; // "ips.fcaf.w"
+ }
+ break;
+ case 'e': // 2 strings to match.
+ if (memcmp(NameR.data()+7, "q.", 2))
+ break;
+ switch (NameR[9]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_fceq_d; // "ips.fceq.d"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_fceq_w; // "ips.fceq.w"
+ }
+ break;
+ case 'l': // 4 strings to match.
+ switch (NameR[7]) {
+ default: break;
+ case 'e': // 2 strings to match.
+ if (NameR[8] != '.')
+ break;
+ switch (NameR[9]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_fcle_d; // "ips.fcle.d"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_fcle_w; // "ips.fcle.w"
+ }
+ break;
+ case 't': // 2 strings to match.
+ if (NameR[8] != '.')
+ break;
+ switch (NameR[9]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_fclt_d; // "ips.fclt.d"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_fclt_w; // "ips.fclt.w"
+ }
+ break;
+ }
+ break;
+ case 'n': // 2 strings to match.
+ if (memcmp(NameR.data()+7, "e.", 2))
+ break;
+ switch (NameR[9]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_fcne_d; // "ips.fcne.d"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_fcne_w; // "ips.fcne.w"
+ }
+ break;
+ case 'o': // 2 strings to match.
+ if (memcmp(NameR.data()+7, "r.", 2))
+ break;
+ switch (NameR[9]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_fcor_d; // "ips.fcor.d"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_fcor_w; // "ips.fcor.w"
+ }
+ break;
+ case 'u': // 2 strings to match.
+ if (memcmp(NameR.data()+7, "n.", 2))
+ break;
+ switch (NameR[9]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_fcun_d; // "ips.fcun.d"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_fcun_w; // "ips.fcun.w"
+ }
+ break;
+ }
+ break;
+ case 'd': // 2 strings to match.
+ if (memcmp(NameR.data()+6, "iv.", 3))
+ break;
+ switch (NameR[9]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_fdiv_d; // "ips.fdiv.d"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_fdiv_w; // "ips.fdiv.w"
+ }
+ break;
+ case 'f': // 4 strings to match.
+ if (NameR[6] != 'q')
+ break;
+ switch (NameR[7]) {
+ default: break;
+ case 'l': // 2 strings to match.
+ if (NameR[8] != '.')
+ break;
+ switch (NameR[9]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_ffql_d; // "ips.ffql.d"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_ffql_w; // "ips.ffql.w"
+ }
+ break;
+ case 'r': // 2 strings to match.
+ if (NameR[8] != '.')
+ break;
+ switch (NameR[9]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_ffqr_d; // "ips.ffqr.d"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_ffqr_w; // "ips.ffqr.w"
+ }
+ break;
+ }
+ break;
+ case 'i': // 4 strings to match.
+ if (memcmp(NameR.data()+6, "ll.", 3))
+ break;
+ switch (NameR[9]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::mips_fill_b; // "ips.fill.b"
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_fill_d; // "ips.fill.d"
+ case 'h': // 1 string to match.
+ return Intrinsic::mips_fill_h; // "ips.fill.h"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_fill_w; // "ips.fill.w"
+ }
+ break;
+ case 'm': // 6 strings to match.
+ switch (NameR[6]) {
+ default: break;
+ case 'a': // 2 strings to match.
+ if (memcmp(NameR.data()+7, "x.", 2))
+ break;
+ switch (NameR[9]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_fmax_d; // "ips.fmax.d"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_fmax_w; // "ips.fmax.w"
+ }
+ break;
+ case 'i': // 2 strings to match.
+ if (memcmp(NameR.data()+7, "n.", 2))
+ break;
+ switch (NameR[9]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_fmin_d; // "ips.fmin.d"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_fmin_w; // "ips.fmin.w"
+ }
+ break;
+ case 'u': // 2 strings to match.
+ if (memcmp(NameR.data()+7, "l.", 2))
+ break;
+ switch (NameR[9]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_fmul_d; // "ips.fmul.d"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_fmul_w; // "ips.fmul.w"
+ }
+ break;
+ }
+ break;
+ case 'r': // 2 strings to match.
+ if (memcmp(NameR.data()+6, "cp.", 3))
+ break;
+ switch (NameR[9]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_frcp_d; // "ips.frcp.d"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_frcp_w; // "ips.frcp.w"
+ }
+ break;
+ case 's': // 16 strings to match.
+ switch (NameR[6]) {
+ default: break;
+ case 'a': // 2 strings to match.
+ if (memcmp(NameR.data()+7, "f.", 2))
+ break;
+ switch (NameR[9]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_fsaf_d; // "ips.fsaf.d"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_fsaf_w; // "ips.fsaf.w"
+ }
+ break;
+ case 'e': // 2 strings to match.
+ if (memcmp(NameR.data()+7, "q.", 2))
+ break;
+ switch (NameR[9]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_fseq_d; // "ips.fseq.d"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_fseq_w; // "ips.fseq.w"
+ }
+ break;
+ case 'l': // 4 strings to match.
+ switch (NameR[7]) {
+ default: break;
+ case 'e': // 2 strings to match.
+ if (NameR[8] != '.')
+ break;
+ switch (NameR[9]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_fsle_d; // "ips.fsle.d"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_fsle_w; // "ips.fsle.w"
+ }
+ break;
+ case 't': // 2 strings to match.
+ if (NameR[8] != '.')
+ break;
+ switch (NameR[9]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_fslt_d; // "ips.fslt.d"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_fslt_w; // "ips.fslt.w"
+ }
+ break;
+ }
+ break;
+ case 'n': // 2 strings to match.
+ if (memcmp(NameR.data()+7, "e.", 2))
+ break;
+ switch (NameR[9]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_fsne_d; // "ips.fsne.d"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_fsne_w; // "ips.fsne.w"
+ }
+ break;
+ case 'o': // 2 strings to match.
+ if (memcmp(NameR.data()+7, "r.", 2))
+ break;
+ switch (NameR[9]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_fsor_d; // "ips.fsor.d"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_fsor_w; // "ips.fsor.w"
+ }
+ break;
+ case 'u': // 4 strings to match.
+ switch (NameR[7]) {
+ default: break;
+ case 'b': // 2 strings to match.
+ if (NameR[8] != '.')
+ break;
+ switch (NameR[9]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_fsub_d; // "ips.fsub.d"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_fsub_w; // "ips.fsub.w"
+ }
+ break;
+ case 'n': // 2 strings to match.
+ if (NameR[8] != '.')
+ break;
+ switch (NameR[9]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_fsun_d; // "ips.fsun.d"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_fsun_w; // "ips.fsun.w"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 'i': // 8 strings to match.
+ if (memcmp(NameR.data()+5, "lv", 2))
+ break;
+ switch (NameR[7]) {
+ default: break;
+ case 'l': // 4 strings to match.
+ if (NameR[8] != '.')
+ break;
+ switch (NameR[9]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::mips_ilvl_b; // "ips.ilvl.b"
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_ilvl_d; // "ips.ilvl.d"
+ case 'h': // 1 string to match.
+ return Intrinsic::mips_ilvl_h; // "ips.ilvl.h"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_ilvl_w; // "ips.ilvl.w"
+ }
+ break;
+ case 'r': // 4 strings to match.
+ if (NameR[8] != '.')
+ break;
+ switch (NameR[9]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::mips_ilvr_b; // "ips.ilvr.b"
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_ilvr_d; // "ips.ilvr.d"
+ case 'h': // 1 string to match.
+ return Intrinsic::mips_ilvr_h; // "ips.ilvr.h"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_ilvr_w; // "ips.ilvr.w"
+ }
+ break;
+ }
+ break;
+ case 'm': // 8 strings to match.
+ switch (NameR[5]) {
+ default: break;
+ case 'o': // 2 strings to match.
+ switch (NameR[6]) {
+ default: break;
+ case 'd': // 1 string to match.
+ if (memcmp(NameR.data()+7, "sub", 3))
+ break;
+ return Intrinsic::mips_modsub; // "ips.modsub"
+ case 'v': // 1 string to match.
+ if (memcmp(NameR.data()+7, "e.v", 3))
+ break;
+ return Intrinsic::mips_move_v; // "ips.move.v"
+ }
+ break;
+ case 't': // 1 string to match.
+ if (memcmp(NameR.data()+6, "hlip", 4))
+ break;
+ return Intrinsic::mips_mthlip; // "ips.mthlip"
+ case 'u': // 5 strings to match.
+ if (NameR[6] != 'l')
+ break;
+ switch (NameR[7]) {
+ default: break;
+ case '.': // 1 string to match.
+ if (memcmp(NameR.data()+8, "ph", 2))
+ break;
+ return Intrinsic::mips_mul_ph; // "ips.mul.ph"
+ case 'v': // 4 strings to match.
+ if (NameR[8] != '.')
+ break;
+ switch (NameR[9]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::mips_mulv_b; // "ips.mulv.b"
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_mulv_d; // "ips.mulv.d"
+ case 'h': // 1 string to match.
+ return Intrinsic::mips_mulv_h; // "ips.mulv.h"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_mulv_w; // "ips.mulv.w"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 'n': // 9 strings to match.
+ switch (NameR[5]) {
+ default: break;
+ case 'l': // 8 strings to match.
+ switch (NameR[6]) {
+ default: break;
+ case 'o': // 4 strings to match.
+ if (memcmp(NameR.data()+7, "c.", 2))
+ break;
+ switch (NameR[9]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::mips_nloc_b; // "ips.nloc.b"
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_nloc_d; // "ips.nloc.d"
+ case 'h': // 1 string to match.
+ return Intrinsic::mips_nloc_h; // "ips.nloc.h"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_nloc_w; // "ips.nloc.w"
+ }
+ break;
+ case 'z': // 4 strings to match.
+ if (memcmp(NameR.data()+7, "c.", 2))
+ break;
+ switch (NameR[9]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::mips_nlzc_b; // "ips.nlzc.b"
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_nlzc_d; // "ips.nlzc.d"
+ case 'h': // 1 string to match.
+ return Intrinsic::mips_nlzc_h; // "ips.nlzc.h"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_nlzc_w; // "ips.nlzc.w"
+ }
+ break;
+ }
+ break;
+ case 'o': // 1 string to match.
+ if (memcmp(NameR.data()+6, "ri.b", 4))
+ break;
+ return Intrinsic::mips_nori_b; // "ips.nori.b"
+ }
+ break;
+ case 'p': // 4 strings to match.
+ if (memcmp(NameR.data()+5, "cnt.", 4))
+ break;
+ switch (NameR[9]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::mips_pcnt_b; // "ips.pcnt.b"
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_pcnt_d; // "ips.pcnt.d"
+ case 'h': // 1 string to match.
+ return Intrinsic::mips_pcnt_h; // "ips.pcnt.h"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_pcnt_w; // "ips.pcnt.w"
+ }
+ break;
+ case 's': // 28 strings to match.
+ switch (NameR[5]) {
+ default: break;
+ case 'l': // 8 strings to match.
+ switch (NameR[6]) {
+ default: break;
+ case 'd': // 4 strings to match.
+ if (memcmp(NameR.data()+7, "i.", 2))
+ break;
+ switch (NameR[9]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::mips_sldi_b; // "ips.sldi.b"
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_sldi_d; // "ips.sldi.d"
+ case 'h': // 1 string to match.
+ return Intrinsic::mips_sldi_h; // "ips.sldi.h"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_sldi_w; // "ips.sldi.w"
+ }
+ break;
+ case 'l': // 4 strings to match.
+ if (memcmp(NameR.data()+7, "i.", 2))
+ break;
+ switch (NameR[9]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::mips_slli_b; // "ips.slli.b"
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_slli_d; // "ips.slli.d"
+ case 'h': // 1 string to match.
+ return Intrinsic::mips_slli_h; // "ips.slli.h"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_slli_w; // "ips.slli.w"
+ }
+ break;
+ }
+ break;
+ case 'r': // 16 strings to match.
+ switch (NameR[6]) {
+ default: break;
+ case 'a': // 8 strings to match.
+ switch (NameR[7]) {
+ default: break;
+ case 'i': // 4 strings to match.
+ if (NameR[8] != '.')
+ break;
+ switch (NameR[9]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::mips_srai_b; // "ips.srai.b"
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_srai_d; // "ips.srai.d"
+ case 'h': // 1 string to match.
+ return Intrinsic::mips_srai_h; // "ips.srai.h"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_srai_w; // "ips.srai.w"
+ }
+ break;
+ case 'r': // 4 strings to match.
+ if (NameR[8] != '.')
+ break;
+ switch (NameR[9]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::mips_srar_b; // "ips.srar.b"
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_srar_d; // "ips.srar.d"
+ case 'h': // 1 string to match.
+ return Intrinsic::mips_srar_h; // "ips.srar.h"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_srar_w; // "ips.srar.w"
+ }
+ break;
+ }
+ break;
+ case 'l': // 8 strings to match.
+ switch (NameR[7]) {
+ default: break;
+ case 'i': // 4 strings to match.
+ if (NameR[8] != '.')
+ break;
+ switch (NameR[9]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::mips_srli_b; // "ips.srli.b"
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_srli_d; // "ips.srli.d"
+ case 'h': // 1 string to match.
+ return Intrinsic::mips_srli_h; // "ips.srli.h"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_srli_w; // "ips.srli.w"
+ }
+ break;
+ case 'r': // 4 strings to match.
+ if (NameR[8] != '.')
+ break;
+ switch (NameR[9]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::mips_srlr_b; // "ips.srlr.b"
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_srlr_d; // "ips.srlr.d"
+ case 'h': // 1 string to match.
+ return Intrinsic::mips_srlr_h; // "ips.srlr.h"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_srlr_w; // "ips.srlr.w"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 'u': // 4 strings to match.
+ if (memcmp(NameR.data()+6, "bv.", 3))
+ break;
+ switch (NameR[9]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::mips_subv_b; // "ips.subv.b"
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_subv_d; // "ips.subv.d"
+ case 'h': // 1 string to match.
+ return Intrinsic::mips_subv_h; // "ips.subv.h"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_subv_w; // "ips.subv.w"
+ }
+ break;
+ }
+ break;
+ case 'v': // 4 strings to match.
+ if (memcmp(NameR.data()+5, "shf.", 4))
+ break;
+ switch (NameR[9]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::mips_vshf_b; // "ips.vshf.b"
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_vshf_d; // "ips.vshf.d"
+ case 'h': // 1 string to match.
+ return Intrinsic::mips_vshf_h; // "ips.vshf.h"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_vshf_w; // "ips.vshf.w"
+ }
+ break;
+ case 'x': // 1 string to match.
+ if (memcmp(NameR.data()+5, "ori.b", 5))
+ break;
+ return Intrinsic::mips_xori_b; // "ips.xori.b"
+ }
+ break;
+ case 11: // 197 strings to match.
+ if (memcmp(NameR.data()+0, "ips.", 4))
+ break;
+ switch (NameR[4]) {
+ default: break;
+ case 'a': // 20 strings to match.
+ switch (NameR[5]) {
+ default: break;
+ case 'd': // 12 strings to match.
+ if (NameR[6] != 'd')
+ break;
+ switch (NameR[7]) {
+ default: break;
+ case '.': // 4 strings to match.
+ if (memcmp(NameR.data()+8, "a.", 2))
+ break;
+ switch (NameR[10]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::mips_add_a_b; // "ips.add.a.b"
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_add_a_d; // "ips.add.a.d"
+ case 'h': // 1 string to match.
+ return Intrinsic::mips_add_a_h; // "ips.add.a.h"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_add_a_w; // "ips.add.a.w"
+ }
+ break;
+ case 'q': // 2 strings to match.
+ switch (NameR[8]) {
+ default: break;
+ case '.': // 1 string to match.
+ if (memcmp(NameR.data()+9, "ph", 2))
+ break;
+ return Intrinsic::mips_addq_ph; // "ips.addq.ph"
+ case 'h': // 1 string to match.
+ if (memcmp(NameR.data()+9, ".w", 2))
+ break;
+ return Intrinsic::mips_addqh_w; // "ips.addqh.w"
+ }
+ break;
+ case 'u': // 2 strings to match.
+ if (NameR[8] != '.')
+ break;
+ switch (NameR[9]) {
+ default: break;
+ case 'p': // 1 string to match.
+ if (NameR[10] != 'h')
+ break;
+ return Intrinsic::mips_addu_ph; // "ips.addu.ph"
+ case 'q': // 1 string to match.
+ if (NameR[10] != 'b')
+ break;
+ return Intrinsic::mips_addu_qb; // "ips.addu.qb"
+ }
+ break;
+ case 'v': // 4 strings to match.
+ if (memcmp(NameR.data()+8, "i.", 2))
+ break;
+ switch (NameR[10]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::mips_addvi_b; // "ips.addvi.b"
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_addvi_d; // "ips.addvi.d"
+ case 'h': // 1 string to match.
+ return Intrinsic::mips_addvi_h; // "ips.addvi.h"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_addvi_w; // "ips.addvi.w"
+ }
+ break;
+ }
+ break;
+ case 'v': // 8 strings to match.
+ if (memcmp(NameR.data()+6, "e.", 2))
+ break;
+ switch (NameR[8]) {
+ default: break;
+ case 's': // 4 strings to match.
+ if (NameR[9] != '.')
+ break;
+ switch (NameR[10]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::mips_ave_s_b; // "ips.ave.s.b"
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_ave_s_d; // "ips.ave.s.d"
+ case 'h': // 1 string to match.
+ return Intrinsic::mips_ave_s_h; // "ips.ave.s.h"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_ave_s_w; // "ips.ave.s.w"
+ }
+ break;
+ case 'u': // 4 strings to match.
+ if (NameR[9] != '.')
+ break;
+ switch (NameR[10]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::mips_ave_u_b; // "ips.ave.u.b"
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_ave_u_d; // "ips.ave.u.d"
+ case 'h': // 1 string to match.
+ return Intrinsic::mips_ave_u_h; // "ips.ave.u.h"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_ave_u_w; // "ips.ave.u.w"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 'b': // 22 strings to match.
+ switch (NameR[5]) {
+ default: break;
+ case 'c': // 4 strings to match.
+ if (memcmp(NameR.data()+6, "lri.", 4))
+ break;
+ switch (NameR[10]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::mips_bclri_b; // "ips.bclri.b"
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_bclri_d; // "ips.bclri.d"
+ case 'h': // 1 string to match.
+ return Intrinsic::mips_bclri_h; // "ips.bclri.h"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_bclri_w; // "ips.bclri.w"
+ }
+ break;
+ case 'i': // 8 strings to match.
+ if (memcmp(NameR.data()+6, "ns", 2))
+ break;
+ switch (NameR[8]) {
+ default: break;
+ case 'l': // 4 strings to match.
+ if (NameR[9] != '.')
+ break;
+ switch (NameR[10]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::mips_binsl_b; // "ips.binsl.b"
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_binsl_d; // "ips.binsl.d"
+ case 'h': // 1 string to match.
+ return Intrinsic::mips_binsl_h; // "ips.binsl.h"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_binsl_w; // "ips.binsl.w"
+ }
+ break;
+ case 'r': // 4 strings to match.
+ if (NameR[9] != '.')
+ break;
+ switch (NameR[10]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::mips_binsr_b; // "ips.binsr.b"
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_binsr_d; // "ips.binsr.d"
+ case 'h': // 1 string to match.
+ return Intrinsic::mips_binsr_h; // "ips.binsr.h"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_binsr_w; // "ips.binsr.w"
+ }
+ break;
+ }
+ break;
+ case 'm': // 1 string to match.
+ if (memcmp(NameR.data()+6, "nzi.b", 5))
+ break;
+ return Intrinsic::mips_bmnzi_b; // "ips.bmnzi.b"
+ case 'n': // 4 strings to match.
+ if (memcmp(NameR.data()+6, "egi.", 4))
+ break;
+ switch (NameR[10]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::mips_bnegi_b; // "ips.bnegi.b"
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_bnegi_d; // "ips.bnegi.d"
+ case 'h': // 1 string to match.
+ return Intrinsic::mips_bnegi_h; // "ips.bnegi.h"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_bnegi_w; // "ips.bnegi.w"
+ }
+ break;
+ case 's': // 5 strings to match.
+ if (NameR[6] != 'e')
+ break;
+ switch (NameR[7]) {
+ default: break;
+ case 'l': // 1 string to match.
+ if (memcmp(NameR.data()+8, "i.b", 3))
+ break;
+ return Intrinsic::mips_bseli_b; // "ips.bseli.b"
+ case 't': // 4 strings to match.
+ if (memcmp(NameR.data()+8, "i.", 2))
+ break;
+ switch (NameR[10]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::mips_bseti_b; // "ips.bseti.b"
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_bseti_d; // "ips.bseti.d"
+ case 'h': // 1 string to match.
+ return Intrinsic::mips_bseti_h; // "ips.bseti.h"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_bseti_w; // "ips.bseti.w"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 'c': // 16 strings to match.
+ if (NameR[5] != 'l')
+ break;
+ switch (NameR[6]) {
+ default: break;
+ case 'e': // 8 strings to match.
+ if (NameR[7] != '.')
+ break;
+ switch (NameR[8]) {
+ default: break;
+ case 's': // 4 strings to match.
+ if (NameR[9] != '.')
+ break;
+ switch (NameR[10]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::mips_cle_s_b; // "ips.cle.s.b"
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_cle_s_d; // "ips.cle.s.d"
+ case 'h': // 1 string to match.
+ return Intrinsic::mips_cle_s_h; // "ips.cle.s.h"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_cle_s_w; // "ips.cle.s.w"
+ }
+ break;
+ case 'u': // 4 strings to match.
+ if (NameR[9] != '.')
+ break;
+ switch (NameR[10]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::mips_cle_u_b; // "ips.cle.u.b"
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_cle_u_d; // "ips.cle.u.d"
+ case 'h': // 1 string to match.
+ return Intrinsic::mips_cle_u_h; // "ips.cle.u.h"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_cle_u_w; // "ips.cle.u.w"
+ }
+ break;
+ }
+ break;
+ case 't': // 8 strings to match.
+ if (NameR[7] != '.')
+ break;
+ switch (NameR[8]) {
+ default: break;
+ case 's': // 4 strings to match.
+ if (NameR[9] != '.')
+ break;
+ switch (NameR[10]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::mips_clt_s_b; // "ips.clt.s.b"
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_clt_s_d; // "ips.clt.s.d"
+ case 'h': // 1 string to match.
+ return Intrinsic::mips_clt_s_h; // "ips.clt.s.h"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_clt_s_w; // "ips.clt.s.w"
+ }
+ break;
+ case 'u': // 4 strings to match.
+ if (NameR[9] != '.')
+ break;
+ switch (NameR[10]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::mips_clt_u_b; // "ips.clt.u.b"
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_clt_u_d; // "ips.clt.u.d"
+ case 'h': // 1 string to match.
+ return Intrinsic::mips_clt_u_h; // "ips.clt.u.h"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_clt_u_w; // "ips.clt.u.w"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 'd': // 8 strings to match.
+ if (memcmp(NameR.data()+5, "iv.", 3))
+ break;
+ switch (NameR[8]) {
+ default: break;
+ case 's': // 4 strings to match.
+ if (NameR[9] != '.')
+ break;
+ switch (NameR[10]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::mips_div_s_b; // "ips.div.s.b"
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_div_s_d; // "ips.div.s.d"
+ case 'h': // 1 string to match.
+ return Intrinsic::mips_div_s_h; // "ips.div.s.h"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_div_s_w; // "ips.div.s.w"
+ }
+ break;
+ case 'u': // 4 strings to match.
+ if (NameR[9] != '.')
+ break;
+ switch (NameR[10]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::mips_div_u_b; // "ips.div.u.b"
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_div_u_d; // "ips.div.u.d"
+ case 'h': // 1 string to match.
+ return Intrinsic::mips_div_u_h; // "ips.div.u.h"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_div_u_w; // "ips.div.u.w"
+ }
+ break;
+ }
+ break;
+ case 'f': // 30 strings to match.
+ switch (NameR[5]) {
+ default: break;
+ case 'c': // 8 strings to match.
+ if (NameR[6] != 'u')
+ break;
+ switch (NameR[7]) {
+ default: break;
+ case 'e': // 2 strings to match.
+ if (memcmp(NameR.data()+8, "q.", 2))
+ break;
+ switch (NameR[10]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_fcueq_d; // "ips.fcueq.d"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_fcueq_w; // "ips.fcueq.w"
+ }
+ break;
+ case 'l': // 4 strings to match.
+ switch (NameR[8]) {
+ default: break;
+ case 'e': // 2 strings to match.
+ if (NameR[9] != '.')
+ break;
+ switch (NameR[10]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_fcule_d; // "ips.fcule.d"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_fcule_w; // "ips.fcule.w"
+ }
+ break;
+ case 't': // 2 strings to match.
+ if (NameR[9] != '.')
+ break;
+ switch (NameR[10]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_fcult_d; // "ips.fcult.d"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_fcult_w; // "ips.fcult.w"
+ }
+ break;
+ }
+ break;
+ case 'n': // 2 strings to match.
+ if (memcmp(NameR.data()+8, "e.", 2))
+ break;
+ switch (NameR[10]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_fcune_d; // "ips.fcune.d"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_fcune_w; // "ips.fcune.w"
+ }
+ break;
+ }
+ break;
+ case 'e': // 4 strings to match.
+ if (NameR[6] != 'x')
+ break;
+ switch (NameR[7]) {
+ default: break;
+ case 'd': // 2 strings to match.
+ if (memcmp(NameR.data()+8, "o.", 2))
+ break;
+ switch (NameR[10]) {
+ default: break;
+ case 'h': // 1 string to match.
+ return Intrinsic::mips_fexdo_h; // "ips.fexdo.h"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_fexdo_w; // "ips.fexdo.w"
+ }
+ break;
+ case 'p': // 2 strings to match.
+ if (memcmp(NameR.data()+8, "2.", 2))
+ break;
+ switch (NameR[10]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_fexp2_d; // "ips.fexp2.d"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_fexp2_w; // "ips.fexp2.w"
+ }
+ break;
+ }
+ break;
+ case 'l': // 2 strings to match.
+ if (memcmp(NameR.data()+6, "og2.", 4))
+ break;
+ switch (NameR[10]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_flog2_d; // "ips.flog2.d"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_flog2_w; // "ips.flog2.w"
+ }
+ break;
+ case 'm': // 4 strings to match.
+ switch (NameR[6]) {
+ default: break;
+ case 'a': // 2 strings to match.
+ if (memcmp(NameR.data()+7, "dd.", 3))
+ break;
+ switch (NameR[10]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_fmadd_d; // "ips.fmadd.d"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_fmadd_w; // "ips.fmadd.w"
+ }
+ break;
+ case 's': // 2 strings to match.
+ if (memcmp(NameR.data()+7, "ub.", 3))
+ break;
+ switch (NameR[10]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_fmsub_d; // "ips.fmsub.d"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_fmsub_w; // "ips.fmsub.w"
+ }
+ break;
+ }
+ break;
+ case 'r': // 2 strings to match.
+ if (memcmp(NameR.data()+6, "int.", 4))
+ break;
+ switch (NameR[10]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_frint_d; // "ips.frint.d"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_frint_w; // "ips.frint.w"
+ }
+ break;
+ case 's': // 10 strings to match.
+ switch (NameR[6]) {
+ default: break;
+ case 'q': // 2 strings to match.
+ if (memcmp(NameR.data()+7, "rt.", 3))
+ break;
+ switch (NameR[10]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_fsqrt_d; // "ips.fsqrt.d"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_fsqrt_w; // "ips.fsqrt.w"
+ }
+ break;
+ case 'u': // 8 strings to match.
+ switch (NameR[7]) {
+ default: break;
+ case 'e': // 2 strings to match.
+ if (memcmp(NameR.data()+8, "q.", 2))
+ break;
+ switch (NameR[10]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_fsueq_d; // "ips.fsueq.d"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_fsueq_w; // "ips.fsueq.w"
+ }
+ break;
+ case 'l': // 4 strings to match.
+ switch (NameR[8]) {
+ default: break;
+ case 'e': // 2 strings to match.
+ if (NameR[9] != '.')
+ break;
+ switch (NameR[10]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_fsule_d; // "ips.fsule.d"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_fsule_w; // "ips.fsule.w"
+ }
+ break;
+ case 't': // 2 strings to match.
+ if (NameR[9] != '.')
+ break;
+ switch (NameR[10]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_fsult_d; // "ips.fsult.d"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_fsult_w; // "ips.fsult.w"
+ }
+ break;
+ }
+ break;
+ case 'n': // 2 strings to match.
+ if (memcmp(NameR.data()+8, "e.", 2))
+ break;
+ switch (NameR[10]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_fsune_d; // "ips.fsune.d"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_fsune_w; // "ips.fsune.w"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 'i': // 12 strings to match.
+ switch (NameR[5]) {
+ default: break;
+ case 'l': // 8 strings to match.
+ if (NameR[6] != 'v')
+ break;
+ switch (NameR[7]) {
+ default: break;
+ case 'e': // 4 strings to match.
+ if (memcmp(NameR.data()+8, "v.", 2))
+ break;
+ switch (NameR[10]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::mips_ilvev_b; // "ips.ilvev.b"
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_ilvev_d; // "ips.ilvev.d"
+ case 'h': // 1 string to match.
+ return Intrinsic::mips_ilvev_h; // "ips.ilvev.h"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_ilvev_w; // "ips.ilvev.w"
+ }
+ break;
+ case 'o': // 4 strings to match.
+ if (memcmp(NameR.data()+8, "d.", 2))
+ break;
+ switch (NameR[10]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::mips_ilvod_b; // "ips.ilvod.b"
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_ilvod_d; // "ips.ilvod.d"
+ case 'h': // 1 string to match.
+ return Intrinsic::mips_ilvod_h; // "ips.ilvod.h"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_ilvod_w; // "ips.ilvod.w"
+ }
+ break;
+ }
+ break;
+ case 'n': // 4 strings to match.
+ if (memcmp(NameR.data()+6, "sve.", 4))
+ break;
+ switch (NameR[10]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::mips_insve_b; // "ips.insve.b"
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_insve_d; // "ips.insve.d"
+ case 'h': // 1 string to match.
+ return Intrinsic::mips_insve_h; // "ips.insve.h"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_insve_w; // "ips.insve.w"
+ }
+ break;
+ }
+ break;
+ case 'm': // 42 strings to match.
+ switch (NameR[5]) {
+ default: break;
+ case 'a': // 16 strings to match.
+ switch (NameR[6]) {
+ default: break;
+ case 'd': // 4 strings to match.
+ if (memcmp(NameR.data()+7, "dv.", 3))
+ break;
+ switch (NameR[10]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::mips_maddv_b; // "ips.maddv.b"
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_maddv_d; // "ips.maddv.d"
+ case 'h': // 1 string to match.
+ return Intrinsic::mips_maddv_h; // "ips.maddv.h"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_maddv_w; // "ips.maddv.w"
+ }
+ break;
+ case 'x': // 12 strings to match.
+ if (NameR[7] != '.')
+ break;
+ switch (NameR[8]) {
+ default: break;
+ case 'a': // 4 strings to match.
+ if (NameR[9] != '.')
+ break;
+ switch (NameR[10]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::mips_max_a_b; // "ips.max.a.b"
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_max_a_d; // "ips.max.a.d"
+ case 'h': // 1 string to match.
+ return Intrinsic::mips_max_a_h; // "ips.max.a.h"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_max_a_w; // "ips.max.a.w"
+ }
+ break;
+ case 's': // 4 strings to match.
+ if (NameR[9] != '.')
+ break;
+ switch (NameR[10]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::mips_max_s_b; // "ips.max.s.b"
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_max_s_d; // "ips.max.s.d"
+ case 'h': // 1 string to match.
+ return Intrinsic::mips_max_s_h; // "ips.max.s.h"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_max_s_w; // "ips.max.s.w"
+ }
+ break;
+ case 'u': // 4 strings to match.
+ if (NameR[9] != '.')
+ break;
+ switch (NameR[10]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::mips_max_u_b; // "ips.max.u.b"
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_max_u_d; // "ips.max.u.d"
+ case 'h': // 1 string to match.
+ return Intrinsic::mips_max_u_h; // "ips.max.u.h"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_max_u_w; // "ips.max.u.w"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 'i': // 12 strings to match.
+ if (memcmp(NameR.data()+6, "n.", 2))
+ break;
+ switch (NameR[8]) {
+ default: break;
+ case 'a': // 4 strings to match.
+ if (NameR[9] != '.')
+ break;
+ switch (NameR[10]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::mips_min_a_b; // "ips.min.a.b"
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_min_a_d; // "ips.min.a.d"
+ case 'h': // 1 string to match.
+ return Intrinsic::mips_min_a_h; // "ips.min.a.h"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_min_a_w; // "ips.min.a.w"
+ }
+ break;
+ case 's': // 4 strings to match.
+ if (NameR[9] != '.')
+ break;
+ switch (NameR[10]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::mips_min_s_b; // "ips.min.s.b"
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_min_s_d; // "ips.min.s.d"
+ case 'h': // 1 string to match.
+ return Intrinsic::mips_min_s_h; // "ips.min.s.h"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_min_s_w; // "ips.min.s.w"
+ }
+ break;
+ case 'u': // 4 strings to match.
+ if (NameR[9] != '.')
+ break;
+ switch (NameR[10]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::mips_min_u_b; // "ips.min.u.b"
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_min_u_d; // "ips.min.u.d"
+ case 'h': // 1 string to match.
+ return Intrinsic::mips_min_u_h; // "ips.min.u.h"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_min_u_w; // "ips.min.u.w"
+ }
+ break;
+ }
+ break;
+ case 'o': // 8 strings to match.
+ if (memcmp(NameR.data()+6, "d.", 2))
+ break;
+ switch (NameR[8]) {
+ default: break;
+ case 's': // 4 strings to match.
+ if (NameR[9] != '.')
+ break;
+ switch (NameR[10]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::mips_mod_s_b; // "ips.mod.s.b"
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_mod_s_d; // "ips.mod.s.d"
+ case 'h': // 1 string to match.
+ return Intrinsic::mips_mod_s_h; // "ips.mod.s.h"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_mod_s_w; // "ips.mod.s.w"
+ }
+ break;
+ case 'u': // 4 strings to match.
+ if (NameR[9] != '.')
+ break;
+ switch (NameR[10]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::mips_mod_u_b; // "ips.mod.u.b"
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_mod_u_d; // "ips.mod.u.d"
+ case 'h': // 1 string to match.
+ return Intrinsic::mips_mod_u_h; // "ips.mod.u.h"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_mod_u_w; // "ips.mod.u.w"
+ }
+ break;
+ }
+ break;
+ case 's': // 4 strings to match.
+ if (memcmp(NameR.data()+6, "ubv.", 4))
+ break;
+ switch (NameR[10]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::mips_msubv_b; // "ips.msubv.b"
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_msubv_d; // "ips.msubv.d"
+ case 'h': // 1 string to match.
+ return Intrinsic::mips_msubv_h; // "ips.msubv.h"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_msubv_w; // "ips.msubv.w"
+ }
+ break;
+ case 'u': // 2 strings to match.
+ if (memcmp(NameR.data()+6, "l.q.", 4))
+ break;
+ switch (NameR[10]) {
+ default: break;
+ case 'h': // 1 string to match.
+ return Intrinsic::mips_mul_q_h; // "ips.mul.q.h"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_mul_q_w; // "ips.mul.q.w"
+ }
+ break;
+ }
+ break;
+ case 'p': // 11 strings to match.
+ switch (NameR[5]) {
+ default: break;
+ case 'c': // 8 strings to match.
+ if (NameR[6] != 'k')
+ break;
+ switch (NameR[7]) {
+ default: break;
+ case 'e': // 4 strings to match.
+ if (memcmp(NameR.data()+8, "v.", 2))
+ break;
+ switch (NameR[10]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::mips_pckev_b; // "ips.pckev.b"
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_pckev_d; // "ips.pckev.d"
+ case 'h': // 1 string to match.
+ return Intrinsic::mips_pckev_h; // "ips.pckev.h"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_pckev_w; // "ips.pckev.w"
+ }
+ break;
+ case 'o': // 4 strings to match.
+ if (memcmp(NameR.data()+8, "d.", 2))
+ break;
+ switch (NameR[10]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::mips_pckod_b; // "ips.pckod.b"
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_pckod_d; // "ips.pckod.d"
+ case 'h': // 1 string to match.
+ return Intrinsic::mips_pckod_h; // "ips.pckod.h"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_pckod_w; // "ips.pckod.w"
+ }
+ break;
+ }
+ break;
+ case 'i': // 2 strings to match.
+ if (memcmp(NameR.data()+6, "ck.", 3))
+ break;
+ switch (NameR[9]) {
+ default: break;
+ case 'p': // 1 string to match.
+ if (NameR[10] != 'h')
+ break;
+ return Intrinsic::mips_pick_ph; // "ips.pick.ph"
+ case 'q': // 1 string to match.
+ if (NameR[10] != 'b')
+ break;
+ return Intrinsic::mips_pick_qb; // "ips.pick.qb"
+ }
+ break;
+ case 'r': // 1 string to match.
+ if (memcmp(NameR.data()+6, "epend", 5))
+ break;
+ return Intrinsic::mips_prepend; // "ips.prepend"
+ }
+ break;
+ case 'r': // 2 strings to match.
+ if (memcmp(NameR.data()+5, "epl.", 4))
+ break;
+ switch (NameR[9]) {
+ default: break;
+ case 'p': // 1 string to match.
+ if (NameR[10] != 'h')
+ break;
+ return Intrinsic::mips_repl_ph; // "ips.repl.ph"
+ case 'q': // 1 string to match.
+ if (NameR[10] != 'b')
+ break;
+ return Intrinsic::mips_repl_qb; // "ips.repl.qb"
+ }
+ break;
+ case 's': // 34 strings to match.
+ switch (NameR[5]) {
+ default: break;
+ case 'a': // 8 strings to match.
+ if (memcmp(NameR.data()+6, "t.", 2))
+ break;
+ switch (NameR[8]) {
+ default: break;
+ case 's': // 4 strings to match.
+ if (NameR[9] != '.')
+ break;
+ switch (NameR[10]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::mips_sat_s_b; // "ips.sat.s.b"
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_sat_s_d; // "ips.sat.s.d"
+ case 'h': // 1 string to match.
+ return Intrinsic::mips_sat_s_h; // "ips.sat.s.h"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_sat_s_w; // "ips.sat.s.w"
+ }
+ break;
+ case 'u': // 4 strings to match.
+ if (NameR[9] != '.')
+ break;
+ switch (NameR[10]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::mips_sat_u_b; // "ips.sat.u.b"
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_sat_u_d; // "ips.sat.u.d"
+ case 'h': // 1 string to match.
+ return Intrinsic::mips_sat_u_h; // "ips.sat.u.h"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_sat_u_w; // "ips.sat.u.w"
+ }
+ break;
+ }
+ break;
+ case 'h': // 6 strings to match.
+ switch (NameR[6]) {
+ default: break;
+ case 'l': // 2 strings to match.
+ if (memcmp(NameR.data()+7, "l.", 2))
+ break;
+ switch (NameR[9]) {
+ default: break;
+ case 'p': // 1 string to match.
+ if (NameR[10] != 'h')
+ break;
+ return Intrinsic::mips_shll_ph; // "ips.shll.ph"
+ case 'q': // 1 string to match.
+ if (NameR[10] != 'b')
+ break;
+ return Intrinsic::mips_shll_qb; // "ips.shll.qb"
+ }
+ break;
+ case 'r': // 4 strings to match.
+ switch (NameR[7]) {
+ default: break;
+ case 'a': // 2 strings to match.
+ if (NameR[8] != '.')
+ break;
+ switch (NameR[9]) {
+ default: break;
+ case 'p': // 1 string to match.
+ if (NameR[10] != 'h')
+ break;
+ return Intrinsic::mips_shra_ph; // "ips.shra.ph"
+ case 'q': // 1 string to match.
+ if (NameR[10] != 'b')
+ break;
+ return Intrinsic::mips_shra_qb; // "ips.shra.qb"
+ }
+ break;
+ case 'l': // 2 strings to match.
+ if (NameR[8] != '.')
+ break;
+ switch (NameR[9]) {
+ default: break;
+ case 'p': // 1 string to match.
+ if (NameR[10] != 'h')
+ break;
+ return Intrinsic::mips_shrl_ph; // "ips.shrl.ph"
+ case 'q': // 1 string to match.
+ if (NameR[10] != 'b')
+ break;
+ return Intrinsic::mips_shrl_qb; // "ips.shrl.qb"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 'p': // 4 strings to match.
+ if (memcmp(NameR.data()+6, "lat.", 4))
+ break;
+ switch (NameR[10]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::mips_splat_b; // "ips.splat.b"
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_splat_d; // "ips.splat.d"
+ case 'h': // 1 string to match.
+ return Intrinsic::mips_splat_h; // "ips.splat.h"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_splat_w; // "ips.splat.w"
+ }
+ break;
+ case 'r': // 8 strings to match.
+ switch (NameR[6]) {
+ default: break;
+ case 'a': // 4 strings to match.
+ if (memcmp(NameR.data()+7, "ri.", 3))
+ break;
+ switch (NameR[10]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::mips_srari_b; // "ips.srari.b"
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_srari_d; // "ips.srari.d"
+ case 'h': // 1 string to match.
+ return Intrinsic::mips_srari_h; // "ips.srari.h"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_srari_w; // "ips.srari.w"
+ }
+ break;
+ case 'l': // 4 strings to match.
+ if (memcmp(NameR.data()+7, "ri.", 3))
+ break;
+ switch (NameR[10]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::mips_srlri_b; // "ips.srlri.b"
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_srlri_d; // "ips.srlri.d"
+ case 'h': // 1 string to match.
+ return Intrinsic::mips_srlri_h; // "ips.srlri.h"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_srlri_w; // "ips.srlri.w"
+ }
+ break;
+ }
+ break;
+ case 'u': // 8 strings to match.
+ if (NameR[6] != 'b')
+ break;
+ switch (NameR[7]) {
+ default: break;
+ case 'q': // 2 strings to match.
+ switch (NameR[8]) {
+ default: break;
+ case '.': // 1 string to match.
+ if (memcmp(NameR.data()+9, "ph", 2))
+ break;
+ return Intrinsic::mips_subq_ph; // "ips.subq.ph"
+ case 'h': // 1 string to match.
+ if (memcmp(NameR.data()+9, ".w", 2))
+ break;
+ return Intrinsic::mips_subqh_w; // "ips.subqh.w"
+ }
+ break;
+ case 'u': // 2 strings to match.
+ if (NameR[8] != '.')
+ break;
+ switch (NameR[9]) {
+ default: break;
+ case 'p': // 1 string to match.
+ if (NameR[10] != 'h')
+ break;
+ return Intrinsic::mips_subu_ph; // "ips.subu.ph"
+ case 'q': // 1 string to match.
+ if (NameR[10] != 'b')
+ break;
+ return Intrinsic::mips_subu_qb; // "ips.subu.qb"
+ }
+ break;
+ case 'v': // 4 strings to match.
+ if (memcmp(NameR.data()+8, "i.", 2))
+ break;
+ switch (NameR[10]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::mips_subvi_b; // "ips.subvi.b"
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_subvi_d; // "ips.subvi.d"
+ case 'h': // 1 string to match.
+ return Intrinsic::mips_subvi_h; // "ips.subvi.h"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_subvi_w; // "ips.subvi.w"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 12: // 144 strings to match.
+ if (memcmp(NameR.data()+0, "ips.", 4))
+ break;
+ switch (NameR[4]) {
+ default: break;
+ case 'a': // 32 strings to match.
+ switch (NameR[5]) {
+ default: break;
+ case 'b': // 1 string to match.
+ if (memcmp(NameR.data()+6, "sq.s.w", 6))
+ break;
+ return Intrinsic::mips_absq_s_w; // "ips.absq.s.w"
+ case 'd': // 15 strings to match.
+ if (NameR[6] != 'd')
+ break;
+ switch (NameR[7]) {
+ default: break;
+ case 'q': // 2 strings to match.
+ switch (NameR[8]) {
+ default: break;
+ case '.': // 1 string to match.
+ if (memcmp(NameR.data()+9, "s.w", 3))
+ break;
+ return Intrinsic::mips_addq_s_w; // "ips.addq.s.w"
+ case 'h': // 1 string to match.
+ if (memcmp(NameR.data()+9, ".ph", 3))
+ break;
+ return Intrinsic::mips_addqh_ph; // "ips.addqh.ph"
+ }
+ break;
+ case 's': // 12 strings to match.
+ if (NameR[8] != '.')
+ break;
+ switch (NameR[9]) {
+ default: break;
+ case 'a': // 4 strings to match.
+ if (NameR[10] != '.')
+ break;
+ switch (NameR[11]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::mips_adds_a_b; // "ips.adds.a.b"
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_adds_a_d; // "ips.adds.a.d"
+ case 'h': // 1 string to match.
+ return Intrinsic::mips_adds_a_h; // "ips.adds.a.h"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_adds_a_w; // "ips.adds.a.w"
+ }
+ break;
+ case 's': // 4 strings to match.
+ if (NameR[10] != '.')
+ break;
+ switch (NameR[11]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::mips_adds_s_b; // "ips.adds.s.b"
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_adds_s_d; // "ips.adds.s.d"
+ case 'h': // 1 string to match.
+ return Intrinsic::mips_adds_s_h; // "ips.adds.s.h"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_adds_s_w; // "ips.adds.s.w"
+ }
+ break;
+ case 'u': // 4 strings to match.
+ if (NameR[10] != '.')
+ break;
+ switch (NameR[11]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::mips_adds_u_b; // "ips.adds.u.b"
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_adds_u_d; // "ips.adds.u.d"
+ case 'h': // 1 string to match.
+ return Intrinsic::mips_adds_u_h; // "ips.adds.u.h"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_adds_u_w; // "ips.adds.u.w"
+ }
+ break;
+ }
+ break;
+ case 'u': // 1 string to match.
+ if (memcmp(NameR.data()+8, "h.qb", 4))
+ break;
+ return Intrinsic::mips_adduh_qb; // "ips.adduh.qb"
+ }
+ break;
+ case 's': // 8 strings to match.
+ if (memcmp(NameR.data()+6, "ub.", 3))
+ break;
+ switch (NameR[9]) {
+ default: break;
+ case 's': // 4 strings to match.
+ if (NameR[10] != '.')
+ break;
+ switch (NameR[11]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::mips_asub_s_b; // "ips.asub.s.b"
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_asub_s_d; // "ips.asub.s.d"
+ case 'h': // 1 string to match.
+ return Intrinsic::mips_asub_s_h; // "ips.asub.s.h"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_asub_s_w; // "ips.asub.s.w"
+ }
+ break;
+ case 'u': // 4 strings to match.
+ if (NameR[10] != '.')
+ break;
+ switch (NameR[11]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::mips_asub_u_b; // "ips.asub.u.b"
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_asub_u_d; // "ips.asub.u.d"
+ case 'h': // 1 string to match.
+ return Intrinsic::mips_asub_u_h; // "ips.asub.u.h"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_asub_u_w; // "ips.asub.u.w"
+ }
+ break;
+ }
+ break;
+ case 'v': // 8 strings to match.
+ if (memcmp(NameR.data()+6, "er.", 3))
+ break;
+ switch (NameR[9]) {
+ default: break;
+ case 's': // 4 strings to match.
+ if (NameR[10] != '.')
+ break;
+ switch (NameR[11]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::mips_aver_s_b; // "ips.aver.s.b"
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_aver_s_d; // "ips.aver.s.d"
+ case 'h': // 1 string to match.
+ return Intrinsic::mips_aver_s_h; // "ips.aver.s.h"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_aver_s_w; // "ips.aver.s.w"
+ }
+ break;
+ case 'u': // 4 strings to match.
+ if (NameR[10] != '.')
+ break;
+ switch (NameR[11]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::mips_aver_u_b; // "ips.aver.u.b"
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_aver_u_d; // "ips.aver.u.d"
+ case 'h': // 1 string to match.
+ return Intrinsic::mips_aver_u_h; // "ips.aver.u.h"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_aver_u_w; // "ips.aver.u.w"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 'b': // 9 strings to match.
+ switch (NameR[5]) {
+ default: break;
+ case 'i': // 8 strings to match.
+ if (memcmp(NameR.data()+6, "ns", 2))
+ break;
+ switch (NameR[8]) {
+ default: break;
+ case 'l': // 4 strings to match.
+ if (memcmp(NameR.data()+9, "i.", 2))
+ break;
+ switch (NameR[11]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::mips_binsli_b; // "ips.binsli.b"
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_binsli_d; // "ips.binsli.d"
+ case 'h': // 1 string to match.
+ return Intrinsic::mips_binsli_h; // "ips.binsli.h"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_binsli_w; // "ips.binsli.w"
+ }
+ break;
+ case 'r': // 4 strings to match.
+ if (memcmp(NameR.data()+9, "i.", 2))
+ break;
+ switch (NameR[11]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::mips_binsri_b; // "ips.binsri.b"
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_binsri_d; // "ips.binsri.d"
+ case 'h': // 1 string to match.
+ return Intrinsic::mips_binsri_h; // "ips.binsri.h"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_binsri_w; // "ips.binsri.w"
+ }
+ break;
+ }
+ break;
+ case 'p': // 1 string to match.
+ if (memcmp(NameR.data()+6, "osge32", 6))
+ break;
+ return Intrinsic::mips_bposge32; // "ips.bposge32"
+ }
+ break;
+ case 'c': // 24 strings to match.
+ switch (NameR[5]) {
+ default: break;
+ case 'l': // 16 strings to match.
+ switch (NameR[6]) {
+ default: break;
+ case 'e': // 8 strings to match.
+ if (memcmp(NameR.data()+7, "i.", 2))
+ break;
+ switch (NameR[9]) {
+ default: break;
+ case 's': // 4 strings to match.
+ if (NameR[10] != '.')
+ break;
+ switch (NameR[11]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::mips_clei_s_b; // "ips.clei.s.b"
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_clei_s_d; // "ips.clei.s.d"
+ case 'h': // 1 string to match.
+ return Intrinsic::mips_clei_s_h; // "ips.clei.s.h"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_clei_s_w; // "ips.clei.s.w"
+ }
+ break;
+ case 'u': // 4 strings to match.
+ if (NameR[10] != '.')
+ break;
+ switch (NameR[11]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::mips_clei_u_b; // "ips.clei.u.b"
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_clei_u_d; // "ips.clei.u.d"
+ case 'h': // 1 string to match.
+ return Intrinsic::mips_clei_u_h; // "ips.clei.u.h"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_clei_u_w; // "ips.clei.u.w"
+ }
+ break;
+ }
+ break;
+ case 't': // 8 strings to match.
+ if (memcmp(NameR.data()+7, "i.", 2))
+ break;
+ switch (NameR[9]) {
+ default: break;
+ case 's': // 4 strings to match.
+ if (NameR[10] != '.')
+ break;
+ switch (NameR[11]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::mips_clti_s_b; // "ips.clti.s.b"
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_clti_s_d; // "ips.clti.s.d"
+ case 'h': // 1 string to match.
+ return Intrinsic::mips_clti_s_h; // "ips.clti.s.h"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_clti_s_w; // "ips.clti.s.w"
+ }
+ break;
+ case 'u': // 4 strings to match.
+ if (NameR[10] != '.')
+ break;
+ switch (NameR[11]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::mips_clti_u_b; // "ips.clti.u.b"
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_clti_u_d; // "ips.clti.u.d"
+ case 'h': // 1 string to match.
+ return Intrinsic::mips_clti_u_h; // "ips.clti.u.h"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_clti_u_w; // "ips.clti.u.w"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 'o': // 8 strings to match.
+ if (memcmp(NameR.data()+6, "py.", 3))
+ break;
+ switch (NameR[9]) {
+ default: break;
+ case 's': // 4 strings to match.
+ if (NameR[10] != '.')
+ break;
+ switch (NameR[11]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::mips_copy_s_b; // "ips.copy.s.b"
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_copy_s_d; // "ips.copy.s.d"
+ case 'h': // 1 string to match.
+ return Intrinsic::mips_copy_s_h; // "ips.copy.s.h"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_copy_s_w; // "ips.copy.s.w"
+ }
+ break;
+ case 'u': // 4 strings to match.
+ if (NameR[10] != '.')
+ break;
+ switch (NameR[11]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::mips_copy_u_b; // "ips.copy.u.b"
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_copy_u_d; // "ips.copy.u.d"
+ case 'h': // 1 string to match.
+ return Intrinsic::mips_copy_u_h; // "ips.copy.u.h"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_copy_u_w; // "ips.copy.u.w"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 'd': // 8 strings to match.
+ switch (NameR[5]) {
+ default: break;
+ case 'o': // 6 strings to match.
+ if (memcmp(NameR.data()+6, "tp.", 3))
+ break;
+ switch (NameR[9]) {
+ default: break;
+ case 's': // 3 strings to match.
+ if (NameR[10] != '.')
+ break;
+ switch (NameR[11]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_dotp_s_d; // "ips.dotp.s.d"
+ case 'h': // 1 string to match.
+ return Intrinsic::mips_dotp_s_h; // "ips.dotp.s.h"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_dotp_s_w; // "ips.dotp.s.w"
+ }
+ break;
+ case 'u': // 3 strings to match.
+ if (NameR[10] != '.')
+ break;
+ switch (NameR[11]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_dotp_u_d; // "ips.dotp.u.d"
+ case 'h': // 1 string to match.
+ return Intrinsic::mips_dotp_u_h; // "ips.dotp.u.h"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_dotp_u_w; // "ips.dotp.u.w"
+ }
+ break;
+ }
+ break;
+ case 'p': // 2 strings to match.
+ switch (NameR[6]) {
+ default: break;
+ case 'a': // 1 string to match.
+ if (memcmp(NameR.data()+7, ".w.ph", 5))
+ break;
+ return Intrinsic::mips_dpa_w_ph; // "ips.dpa.w.ph"
+ case 's': // 1 string to match.
+ if (memcmp(NameR.data()+7, ".w.ph", 5))
+ break;
+ return Intrinsic::mips_dps_w_ph; // "ips.dps.w.ph"
+ }
+ break;
+ }
+ break;
+ case 'e': // 2 strings to match.
+ if (memcmp(NameR.data()+5, "xtr.", 4))
+ break;
+ switch (NameR[9]) {
+ default: break;
+ case 'r': // 1 string to match.
+ if (memcmp(NameR.data()+10, ".w", 2))
+ break;
+ return Intrinsic::mips_extr_r_w; // "ips.extr.r.w"
+ case 's': // 1 string to match.
+ if (memcmp(NameR.data()+10, ".h", 2))
+ break;
+ return Intrinsic::mips_extr_s_h; // "ips.extr.s.h"
+ }
+ break;
+ case 'f': // 12 strings to match.
+ switch (NameR[5]) {
+ default: break;
+ case 'c': // 2 strings to match.
+ if (memcmp(NameR.data()+6, "lass.", 5))
+ break;
+ switch (NameR[11]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_fclass_d; // "ips.fclass.d"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_fclass_w; // "ips.fclass.w"
+ }
+ break;
+ case 'e': // 4 strings to match.
+ if (memcmp(NameR.data()+6, "xup", 3))
+ break;
+ switch (NameR[9]) {
+ default: break;
+ case 'l': // 2 strings to match.
+ if (NameR[10] != '.')
+ break;
+ switch (NameR[11]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_fexupl_d; // "ips.fexupl.d"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_fexupl_w; // "ips.fexupl.w"
+ }
+ break;
+ case 'r': // 2 strings to match.
+ if (NameR[10] != '.')
+ break;
+ switch (NameR[11]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_fexupr_d; // "ips.fexupr.d"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_fexupr_w; // "ips.fexupr.w"
+ }
+ break;
+ }
+ break;
+ case 'm': // 4 strings to match.
+ switch (NameR[6]) {
+ default: break;
+ case 'a': // 2 strings to match.
+ if (memcmp(NameR.data()+7, "x.a.", 4))
+ break;
+ switch (NameR[11]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_fmax_a_d; // "ips.fmax.a.d"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_fmax_a_w; // "ips.fmax.a.w"
+ }
+ break;
+ case 'i': // 2 strings to match.
+ if (memcmp(NameR.data()+7, "n.a.", 4))
+ break;
+ switch (NameR[11]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_fmin_a_d; // "ips.fmin.a.d"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_fmin_a_w; // "ips.fmin.a.w"
+ }
+ break;
+ }
+ break;
+ case 'r': // 2 strings to match.
+ if (memcmp(NameR.data()+6, "sqrt.", 5))
+ break;
+ switch (NameR[11]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_frsqrt_d; // "ips.frsqrt.d"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_frsqrt_w; // "ips.frsqrt.w"
+ }
+ break;
+ }
+ break;
+ case 'h': // 12 strings to match.
+ switch (NameR[5]) {
+ default: break;
+ case 'a': // 6 strings to match.
+ if (memcmp(NameR.data()+6, "dd.", 3))
+ break;
+ switch (NameR[9]) {
+ default: break;
+ case 's': // 3 strings to match.
+ if (NameR[10] != '.')
+ break;
+ switch (NameR[11]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_hadd_s_d; // "ips.hadd.s.d"
+ case 'h': // 1 string to match.
+ return Intrinsic::mips_hadd_s_h; // "ips.hadd.s.h"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_hadd_s_w; // "ips.hadd.s.w"
+ }
+ break;
+ case 'u': // 3 strings to match.
+ if (NameR[10] != '.')
+ break;
+ switch (NameR[11]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_hadd_u_d; // "ips.hadd.u.d"
+ case 'h': // 1 string to match.
+ return Intrinsic::mips_hadd_u_h; // "ips.hadd.u.h"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_hadd_u_w; // "ips.hadd.u.w"
+ }
+ break;
+ }
+ break;
+ case 's': // 6 strings to match.
+ if (memcmp(NameR.data()+6, "ub.", 3))
+ break;
+ switch (NameR[9]) {
+ default: break;
+ case 's': // 3 strings to match.
+ if (NameR[10] != '.')
+ break;
+ switch (NameR[11]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_hsub_s_d; // "ips.hsub.s.d"
+ case 'h': // 1 string to match.
+ return Intrinsic::mips_hsub_s_h; // "ips.hsub.s.h"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_hsub_s_w; // "ips.hsub.s.w"
+ }
+ break;
+ case 'u': // 3 strings to match.
+ if (NameR[10] != '.')
+ break;
+ switch (NameR[11]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_hsub_u_d; // "ips.hsub.u.d"
+ case 'h': // 1 string to match.
+ return Intrinsic::mips_hsub_u_h; // "ips.hsub.u.h"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_hsub_u_w; // "ips.hsub.u.w"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 'i': // 4 strings to match.
+ if (memcmp(NameR.data()+5, "nsert.", 6))
+ break;
+ switch (NameR[11]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::mips_insert_b; // "ips.insert.b"
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_insert_d; // "ips.insert.d"
+ case 'h': // 1 string to match.
+ return Intrinsic::mips_insert_h; // "ips.insert.h"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_insert_w; // "ips.insert.w"
+ }
+ break;
+ case 'm': // 24 strings to match.
+ switch (NameR[5]) {
+ default: break;
+ case 'a': // 10 strings to match.
+ switch (NameR[6]) {
+ default: break;
+ case 'd': // 2 strings to match.
+ if (memcmp(NameR.data()+7, "d.q.", 4))
+ break;
+ switch (NameR[11]) {
+ default: break;
+ case 'h': // 1 string to match.
+ return Intrinsic::mips_madd_q_h; // "ips.madd.q.h"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_madd_q_w; // "ips.madd.q.w"
+ }
+ break;
+ case 'x': // 8 strings to match.
+ if (memcmp(NameR.data()+7, "i.", 2))
+ break;
+ switch (NameR[9]) {
+ default: break;
+ case 's': // 4 strings to match.
+ if (NameR[10] != '.')
+ break;
+ switch (NameR[11]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::mips_maxi_s_b; // "ips.maxi.s.b"
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_maxi_s_d; // "ips.maxi.s.d"
+ case 'h': // 1 string to match.
+ return Intrinsic::mips_maxi_s_h; // "ips.maxi.s.h"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_maxi_s_w; // "ips.maxi.s.w"
+ }
+ break;
+ case 'u': // 4 strings to match.
+ if (NameR[10] != '.')
+ break;
+ switch (NameR[11]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::mips_maxi_u_b; // "ips.maxi.u.b"
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_maxi_u_d; // "ips.maxi.u.d"
+ case 'h': // 1 string to match.
+ return Intrinsic::mips_maxi_u_h; // "ips.maxi.u.h"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_maxi_u_w; // "ips.maxi.u.w"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 'i': // 8 strings to match.
+ if (memcmp(NameR.data()+6, "ni.", 3))
+ break;
+ switch (NameR[9]) {
+ default: break;
+ case 's': // 4 strings to match.
+ if (NameR[10] != '.')
+ break;
+ switch (NameR[11]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::mips_mini_s_b; // "ips.mini.s.b"
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_mini_s_d; // "ips.mini.s.d"
+ case 'h': // 1 string to match.
+ return Intrinsic::mips_mini_s_h; // "ips.mini.s.h"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_mini_s_w; // "ips.mini.s.w"
+ }
+ break;
+ case 'u': // 4 strings to match.
+ if (NameR[10] != '.')
+ break;
+ switch (NameR[11]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::mips_mini_u_b; // "ips.mini.u.b"
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_mini_u_d; // "ips.mini.u.d"
+ case 'h': // 1 string to match.
+ return Intrinsic::mips_mini_u_h; // "ips.mini.u.h"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_mini_u_w; // "ips.mini.u.w"
+ }
+ break;
+ }
+ break;
+ case 's': // 2 strings to match.
+ if (memcmp(NameR.data()+6, "ub.q.", 5))
+ break;
+ switch (NameR[11]) {
+ default: break;
+ case 'h': // 1 string to match.
+ return Intrinsic::mips_msub_q_h; // "ips.msub.q.h"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_msub_q_w; // "ips.msub.q.w"
+ }
+ break;
+ case 'u': // 4 strings to match.
+ if (NameR[6] != 'l')
+ break;
+ switch (NameR[7]) {
+ default: break;
+ case '.': // 1 string to match.
+ if (memcmp(NameR.data()+8, "s.ph", 4))
+ break;
+ return Intrinsic::mips_mul_s_ph; // "ips.mul.s.ph"
+ case 'q': // 1 string to match.
+ if (memcmp(NameR.data()+8, ".s.w", 4))
+ break;
+ return Intrinsic::mips_mulq_s_w; // "ips.mulq.s.w"
+ case 'r': // 2 strings to match.
+ if (memcmp(NameR.data()+8, ".q.", 3))
+ break;
+ switch (NameR[11]) {
+ default: break;
+ case 'h': // 1 string to match.
+ return Intrinsic::mips_mulr_q_h; // "ips.mulr.q.h"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_mulr_q_w; // "ips.mulr.q.w"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 's': // 17 strings to match.
+ switch (NameR[5]) {
+ default: break;
+ case 'h': // 2 strings to match.
+ switch (NameR[6]) {
+ default: break;
+ case 'l': // 1 string to match.
+ if (memcmp(NameR.data()+7, "l.s.w", 5))
+ break;
+ return Intrinsic::mips_shll_s_w; // "ips.shll.s.w"
+ case 'r': // 1 string to match.
+ if (memcmp(NameR.data()+7, "a.r.w", 5))
+ break;
+ return Intrinsic::mips_shra_r_w; // "ips.shra.r.w"
+ }
+ break;
+ case 'p': // 4 strings to match.
+ if (memcmp(NameR.data()+6, "lati.", 5))
+ break;
+ switch (NameR[11]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::mips_splati_b; // "ips.splati.b"
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_splati_d; // "ips.splati.d"
+ case 'h': // 1 string to match.
+ return Intrinsic::mips_splati_h; // "ips.splati.h"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_splati_w; // "ips.splati.w"
+ }
+ break;
+ case 'u': // 11 strings to match.
+ if (NameR[6] != 'b')
+ break;
+ switch (NameR[7]) {
+ default: break;
+ case 'q': // 2 strings to match.
+ switch (NameR[8]) {
+ default: break;
+ case '.': // 1 string to match.
+ if (memcmp(NameR.data()+9, "s.w", 3))
+ break;
+ return Intrinsic::mips_subq_s_w; // "ips.subq.s.w"
+ case 'h': // 1 string to match.
+ if (memcmp(NameR.data()+9, ".ph", 3))
+ break;
+ return Intrinsic::mips_subqh_ph; // "ips.subqh.ph"
+ }
+ break;
+ case 's': // 8 strings to match.
+ if (NameR[8] != '.')
+ break;
+ switch (NameR[9]) {
+ default: break;
+ case 's': // 4 strings to match.
+ if (NameR[10] != '.')
+ break;
+ switch (NameR[11]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::mips_subs_s_b; // "ips.subs.s.b"
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_subs_s_d; // "ips.subs.s.d"
+ case 'h': // 1 string to match.
+ return Intrinsic::mips_subs_s_h; // "ips.subs.s.h"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_subs_s_w; // "ips.subs.s.w"
+ }
+ break;
+ case 'u': // 4 strings to match.
+ if (NameR[10] != '.')
+ break;
+ switch (NameR[11]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::mips_subs_u_b; // "ips.subs.u.b"
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_subs_u_d; // "ips.subs.u.d"
+ case 'h': // 1 string to match.
+ return Intrinsic::mips_subs_u_h; // "ips.subs.u.h"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_subs_u_w; // "ips.subs.u.w"
+ }
+ break;
+ }
+ break;
+ case 'u': // 1 string to match.
+ if (memcmp(NameR.data()+8, "h.qb", 4))
+ break;
+ return Intrinsic::mips_subuh_qb; // "ips.subuh.qb"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 13: // 46 strings to match.
+ if (memcmp(NameR.data()+0, "ips.", 4))
+ break;
+ switch (NameR[4]) {
+ default: break;
+ case 'a': // 6 strings to match.
+ switch (NameR[5]) {
+ default: break;
+ case 'b': // 2 strings to match.
+ if (memcmp(NameR.data()+6, "sq.s.", 5))
+ break;
+ switch (NameR[11]) {
+ default: break;
+ case 'p': // 1 string to match.
+ if (NameR[12] != 'h')
+ break;
+ return Intrinsic::mips_absq_s_ph; // "ips.absq.s.ph"
+ case 'q': // 1 string to match.
+ if (NameR[12] != 'b')
+ break;
+ return Intrinsic::mips_absq_s_qb; // "ips.absq.s.qb"
+ }
+ break;
+ case 'd': // 4 strings to match.
+ if (NameR[6] != 'd')
+ break;
+ switch (NameR[7]) {
+ default: break;
+ case 'q': // 2 strings to match.
+ switch (NameR[8]) {
+ default: break;
+ case '.': // 1 string to match.
+ if (memcmp(NameR.data()+9, "s.ph", 4))
+ break;
+ return Intrinsic::mips_addq_s_ph; // "ips.addq.s.ph"
+ case 'h': // 1 string to match.
+ if (memcmp(NameR.data()+9, ".r.w", 4))
+ break;
+ return Intrinsic::mips_addqh_r_w; // "ips.addqh.r.w"
+ }
+ break;
+ case 'u': // 2 strings to match.
+ if (memcmp(NameR.data()+8, ".s.", 3))
+ break;
+ switch (NameR[11]) {
+ default: break;
+ case 'p': // 1 string to match.
+ if (NameR[12] != 'h')
+ break;
+ return Intrinsic::mips_addu_s_ph; // "ips.addu.s.ph"
+ case 'q': // 1 string to match.
+ if (NameR[12] != 'b')
+ break;
+ return Intrinsic::mips_addu_s_qb; // "ips.addu.s.qb"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 'c': // 3 strings to match.
+ if (memcmp(NameR.data()+5, "mp.", 3))
+ break;
+ switch (NameR[8]) {
+ default: break;
+ case 'e': // 1 string to match.
+ if (memcmp(NameR.data()+9, "q.ph", 4))
+ break;
+ return Intrinsic::mips_cmp_eq_ph; // "ips.cmp.eq.ph"
+ case 'l': // 2 strings to match.
+ switch (NameR[9]) {
+ default: break;
+ case 'e': // 1 string to match.
+ if (memcmp(NameR.data()+10, ".ph", 3))
+ break;
+ return Intrinsic::mips_cmp_le_ph; // "ips.cmp.le.ph"
+ case 't': // 1 string to match.
+ if (memcmp(NameR.data()+10, ".ph", 3))
+ break;
+ return Intrinsic::mips_cmp_lt_ph; // "ips.cmp.lt.ph"
+ }
+ break;
+ }
+ break;
+ case 'd': // 14 strings to match.
+ if (NameR[5] != 'p')
+ break;
+ switch (NameR[6]) {
+ default: break;
+ case 'a': // 7 strings to match.
+ switch (NameR[7]) {
+ default: break;
+ case 'd': // 6 strings to match.
+ if (memcmp(NameR.data()+8, "d.", 2))
+ break;
+ switch (NameR[10]) {
+ default: break;
+ case 's': // 3 strings to match.
+ if (NameR[11] != '.')
+ break;
+ switch (NameR[12]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_dpadd_s_d; // "ips.dpadd.s.d"
+ case 'h': // 1 string to match.
+ return Intrinsic::mips_dpadd_s_h; // "ips.dpadd.s.h"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_dpadd_s_w; // "ips.dpadd.s.w"
+ }
+ break;
+ case 'u': // 3 strings to match.
+ if (NameR[11] != '.')
+ break;
+ switch (NameR[12]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_dpadd_u_d; // "ips.dpadd.u.d"
+ case 'h': // 1 string to match.
+ return Intrinsic::mips_dpadd_u_h; // "ips.dpadd.u.h"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_dpadd_u_w; // "ips.dpadd.u.w"
+ }
+ break;
+ }
+ break;
+ case 'x': // 1 string to match.
+ if (memcmp(NameR.data()+8, ".w.ph", 5))
+ break;
+ return Intrinsic::mips_dpax_w_ph; // "ips.dpax.w.ph"
+ }
+ break;
+ case 's': // 7 strings to match.
+ switch (NameR[7]) {
+ default: break;
+ case 'u': // 6 strings to match.
+ if (memcmp(NameR.data()+8, "b.", 2))
+ break;
+ switch (NameR[10]) {
+ default: break;
+ case 's': // 3 strings to match.
+ if (NameR[11] != '.')
+ break;
+ switch (NameR[12]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_dpsub_s_d; // "ips.dpsub.s.d"
+ case 'h': // 1 string to match.
+ return Intrinsic::mips_dpsub_s_h; // "ips.dpsub.s.h"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_dpsub_s_w; // "ips.dpsub.s.w"
+ }
+ break;
+ case 'u': // 3 strings to match.
+ if (NameR[11] != '.')
+ break;
+ switch (NameR[12]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_dpsub_u_d; // "ips.dpsub.u.d"
+ case 'h': // 1 string to match.
+ return Intrinsic::mips_dpsub_u_h; // "ips.dpsub.u.h"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_dpsub_u_w; // "ips.dpsub.u.w"
+ }
+ break;
+ }
+ break;
+ case 'x': // 1 string to match.
+ if (memcmp(NameR.data()+8, ".w.ph", 5))
+ break;
+ return Intrinsic::mips_dpsx_w_ph; // "ips.dpsx.w.ph"
+ }
+ break;
+ }
+ break;
+ case 'e': // 1 string to match.
+ if (memcmp(NameR.data()+5, "xtr.rs.w", 8))
+ break;
+ return Intrinsic::mips_extr_rs_w; // "ips.extr.rs.w"
+ case 'f': // 8 strings to match.
+ switch (NameR[5]) {
+ default: break;
+ case 'f': // 4 strings to match.
+ if (memcmp(NameR.data()+6, "int.", 4))
+ break;
+ switch (NameR[10]) {
+ default: break;
+ case 's': // 2 strings to match.
+ if (NameR[11] != '.')
+ break;
+ switch (NameR[12]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_ffint_s_d; // "ips.ffint.s.d"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_ffint_s_w; // "ips.ffint.s.w"
+ }
+ break;
+ case 'u': // 2 strings to match.
+ if (NameR[11] != '.')
+ break;
+ switch (NameR[12]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_ffint_u_d; // "ips.ffint.u.d"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_ffint_u_w; // "ips.ffint.u.w"
+ }
+ break;
+ }
+ break;
+ case 't': // 4 strings to match.
+ if (memcmp(NameR.data()+6, "int.", 4))
+ break;
+ switch (NameR[10]) {
+ default: break;
+ case 's': // 2 strings to match.
+ if (NameR[11] != '.')
+ break;
+ switch (NameR[12]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_ftint_s_d; // "ips.ftint.s.d"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_ftint_s_w; // "ips.ftint.s.w"
+ }
+ break;
+ case 'u': // 2 strings to match.
+ if (NameR[11] != '.')
+ break;
+ switch (NameR[12]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_ftint_u_d; // "ips.ftint.u.d"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_ftint_u_w; // "ips.ftint.u.w"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 'm': // 6 strings to match.
+ switch (NameR[5]) {
+ default: break;
+ case 'a': // 2 strings to match.
+ if (memcmp(NameR.data()+6, "ddr.q.", 6))
+ break;
+ switch (NameR[12]) {
+ default: break;
+ case 'h': // 1 string to match.
+ return Intrinsic::mips_maddr_q_h; // "ips.maddr.q.h"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_maddr_q_w; // "ips.maddr.q.w"
+ }
+ break;
+ case 's': // 2 strings to match.
+ if (memcmp(NameR.data()+6, "ubr.q.", 6))
+ break;
+ switch (NameR[12]) {
+ default: break;
+ case 'h': // 1 string to match.
+ return Intrinsic::mips_msubr_q_h; // "ips.msubr.q.h"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_msubr_q_w; // "ips.msubr.q.w"
+ }
+ break;
+ case 'u': // 2 strings to match.
+ if (memcmp(NameR.data()+6, "lq.", 3))
+ break;
+ switch (NameR[9]) {
+ default: break;
+ case 'r': // 1 string to match.
+ if (memcmp(NameR.data()+10, "s.w", 3))
+ break;
+ return Intrinsic::mips_mulq_rs_w; // "ips.mulq.rs.w"
+ case 's': // 1 string to match.
+ if (memcmp(NameR.data()+10, ".ph", 3))
+ break;
+ return Intrinsic::mips_mulq_s_ph; // "ips.mulq.s.ph"
+ }
+ break;
+ }
+ break;
+ case 'p': // 1 string to match.
+ if (memcmp(NameR.data()+5, "ackrl.ph", 8))
+ break;
+ return Intrinsic::mips_packrl_ph; // "ips.packrl.ph"
+ case 's': // 7 strings to match.
+ switch (NameR[5]) {
+ default: break;
+ case 'h': // 3 strings to match.
+ switch (NameR[6]) {
+ default: break;
+ case 'l': // 1 string to match.
+ if (memcmp(NameR.data()+7, "l.s.ph", 6))
+ break;
+ return Intrinsic::mips_shll_s_ph; // "ips.shll.s.ph"
+ case 'r': // 2 strings to match.
+ if (memcmp(NameR.data()+7, "a.r.", 4))
+ break;
+ switch (NameR[11]) {
+ default: break;
+ case 'p': // 1 string to match.
+ if (NameR[12] != 'h')
+ break;
+ return Intrinsic::mips_shra_r_ph; // "ips.shra.r.ph"
+ case 'q': // 1 string to match.
+ if (NameR[12] != 'b')
+ break;
+ return Intrinsic::mips_shra_r_qb; // "ips.shra.r.qb"
+ }
+ break;
+ }
+ break;
+ case 'u': // 4 strings to match.
+ if (NameR[6] != 'b')
+ break;
+ switch (NameR[7]) {
+ default: break;
+ case 'q': // 2 strings to match.
+ switch (NameR[8]) {
+ default: break;
+ case '.': // 1 string to match.
+ if (memcmp(NameR.data()+9, "s.ph", 4))
+ break;
+ return Intrinsic::mips_subq_s_ph; // "ips.subq.s.ph"
+ case 'h': // 1 string to match.
+ if (memcmp(NameR.data()+9, ".r.w", 4))
+ break;
+ return Intrinsic::mips_subqh_r_w; // "ips.subqh.r.w"
+ }
+ break;
+ case 'u': // 2 strings to match.
+ if (memcmp(NameR.data()+8, ".s.", 3))
+ break;
+ switch (NameR[11]) {
+ default: break;
+ case 'p': // 1 string to match.
+ if (NameR[12] != 'h')
+ break;
+ return Intrinsic::mips_subu_s_ph; // "ips.subu.s.ph"
+ case 'q': // 1 string to match.
+ if (NameR[12] != 'b')
+ break;
+ return Intrinsic::mips_subu_s_qb; // "ips.subu.s.qb"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 14: // 26 strings to match.
+ if (memcmp(NameR.data()+0, "ips.", 4))
+ break;
+ switch (NameR[4]) {
+ default: break;
+ case 'a': // 2 strings to match.
+ if (memcmp(NameR.data()+5, "dd", 2))
+ break;
+ switch (NameR[7]) {
+ default: break;
+ case 'q': // 1 string to match.
+ if (memcmp(NameR.data()+8, "h.r.ph", 6))
+ break;
+ return Intrinsic::mips_addqh_r_ph; // "ips.addqh.r.ph"
+ case 'u': // 1 string to match.
+ if (memcmp(NameR.data()+8, "h.r.qb", 6))
+ break;
+ return Intrinsic::mips_adduh_r_qb; // "ips.adduh.r.qb"
+ }
+ break;
+ case 'c': // 3 strings to match.
+ if (memcmp(NameR.data()+5, "mpu.", 4))
+ break;
+ switch (NameR[9]) {
+ default: break;
+ case 'e': // 1 string to match.
+ if (memcmp(NameR.data()+10, "q.qb", 4))
+ break;
+ return Intrinsic::mips_cmpu_eq_qb; // "ips.cmpu.eq.qb"
+ case 'l': // 2 strings to match.
+ switch (NameR[10]) {
+ default: break;
+ case 'e': // 1 string to match.
+ if (memcmp(NameR.data()+11, ".qb", 3))
+ break;
+ return Intrinsic::mips_cmpu_le_qb; // "ips.cmpu.le.qb"
+ case 't': // 1 string to match.
+ if (memcmp(NameR.data()+11, ".qb", 3))
+ break;
+ return Intrinsic::mips_cmpu_lt_qb; // "ips.cmpu.lt.qb"
+ }
+ break;
+ }
+ break;
+ case 'd': // 4 strings to match.
+ if (NameR[5] != 'p')
+ break;
+ switch (NameR[6]) {
+ default: break;
+ case 'a': // 2 strings to match.
+ if (memcmp(NameR.data()+7, "u.h.qb", 6))
+ break;
+ switch (NameR[13]) {
+ default: break;
+ case 'l': // 1 string to match.
+ return Intrinsic::mips_dpau_h_qbl; // "ips.dpau.h.qbl"
+ case 'r': // 1 string to match.
+ return Intrinsic::mips_dpau_h_qbr; // "ips.dpau.h.qbr"
+ }
+ break;
+ case 's': // 2 strings to match.
+ if (memcmp(NameR.data()+7, "u.h.qb", 6))
+ break;
+ switch (NameR[13]) {
+ default: break;
+ case 'l': // 1 string to match.
+ return Intrinsic::mips_dpsu_h_qbl; // "ips.dpsu.h.qbl"
+ case 'r': // 1 string to match.
+ return Intrinsic::mips_dpsu_h_qbr; // "ips.dpsu.h.qbr"
+ }
+ break;
+ }
+ break;
+ case 'f': // 4 strings to match.
+ if (memcmp(NameR.data()+5, "trunc.", 6))
+ break;
+ switch (NameR[11]) {
+ default: break;
+ case 's': // 2 strings to match.
+ if (NameR[12] != '.')
+ break;
+ switch (NameR[13]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_ftrunc_s_d; // "ips.ftrunc.s.d"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_ftrunc_s_w; // "ips.ftrunc.s.w"
+ }
+ break;
+ case 'u': // 2 strings to match.
+ if (NameR[12] != '.')
+ break;
+ switch (NameR[13]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_ftrunc_u_d; // "ips.ftrunc.u.d"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_ftrunc_u_w; // "ips.ftrunc.u.w"
+ }
+ break;
+ }
+ break;
+ case 'm': // 2 strings to match.
+ if (memcmp(NameR.data()+5, "ul", 2))
+ break;
+ switch (NameR[7]) {
+ default: break;
+ case 'q': // 1 string to match.
+ if (memcmp(NameR.data()+8, ".rs.ph", 6))
+ break;
+ return Intrinsic::mips_mulq_rs_ph; // "ips.mulq.rs.ph"
+ case 's': // 1 string to match.
+ if (memcmp(NameR.data()+8, "a.w.ph", 6))
+ break;
+ return Intrinsic::mips_mulsa_w_ph; // "ips.mulsa.w.ph"
+ }
+ break;
+ case 'r': // 1 string to match.
+ if (memcmp(NameR.data()+5, "addu.w.qb", 9))
+ break;
+ return Intrinsic::mips_raddu_w_qb; // "ips.raddu.w.qb"
+ case 's': // 10 strings to match.
+ if (memcmp(NameR.data()+5, "ub", 2))
+ break;
+ switch (NameR[7]) {
+ default: break;
+ case 'q': // 1 string to match.
+ if (memcmp(NameR.data()+8, "h.r.ph", 6))
+ break;
+ return Intrinsic::mips_subqh_r_ph; // "ips.subqh.r.ph"
+ case 's': // 8 strings to match.
+ if (NameR[8] != 'u')
+ break;
+ switch (NameR[9]) {
+ default: break;
+ case 's': // 4 strings to match.
+ if (memcmp(NameR.data()+10, ".u.", 3))
+ break;
+ switch (NameR[13]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::mips_subsus_u_b; // "ips.subsus.u.b"
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_subsus_u_d; // "ips.subsus.u.d"
+ case 'h': // 1 string to match.
+ return Intrinsic::mips_subsus_u_h; // "ips.subsus.u.h"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_subsus_u_w; // "ips.subsus.u.w"
+ }
+ break;
+ case 'u': // 4 strings to match.
+ if (memcmp(NameR.data()+10, ".s.", 3))
+ break;
+ switch (NameR[13]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::mips_subsuu_s_b; // "ips.subsuu.s.b"
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_subsuu_s_d; // "ips.subsuu.s.d"
+ case 'h': // 1 string to match.
+ return Intrinsic::mips_subsuu_s_h; // "ips.subsuu.s.h"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_subsuu_s_w; // "ips.subsuu.s.w"
+ }
+ break;
+ }
+ break;
+ case 'u': // 1 string to match.
+ if (memcmp(NameR.data()+8, "h.r.qb", 6))
+ break;
+ return Intrinsic::mips_subuh_r_qb; // "ips.subuh.r.qb"
+ }
+ break;
+ }
+ break;
+ case 15: // 11 strings to match.
+ if (memcmp(NameR.data()+0, "ips.", 4))
+ break;
+ switch (NameR[4]) {
+ default: break;
+ case 'c': // 3 strings to match.
+ if (memcmp(NameR.data()+5, "mpgu.", 5))
+ break;
+ switch (NameR[10]) {
+ default: break;
+ case 'e': // 1 string to match.
+ if (memcmp(NameR.data()+11, "q.qb", 4))
+ break;
+ return Intrinsic::mips_cmpgu_eq_qb; // "ips.cmpgu.eq.qb"
+ case 'l': // 2 strings to match.
+ switch (NameR[11]) {
+ default: break;
+ case 'e': // 1 string to match.
+ if (memcmp(NameR.data()+12, ".qb", 3))
+ break;
+ return Intrinsic::mips_cmpgu_le_qb; // "ips.cmpgu.le.qb"
+ case 't': // 1 string to match.
+ if (memcmp(NameR.data()+12, ".qb", 3))
+ break;
+ return Intrinsic::mips_cmpgu_lt_qb; // "ips.cmpgu.lt.qb"
+ }
+ break;
+ }
+ break;
+ case 'd': // 4 strings to match.
+ if (NameR[5] != 'p')
+ break;
+ switch (NameR[6]) {
+ default: break;
+ case 'a': // 2 strings to match.
+ if (memcmp(NameR.data()+7, "q.s", 3))
+ break;
+ switch (NameR[10]) {
+ default: break;
+ case '.': // 1 string to match.
+ if (memcmp(NameR.data()+11, "w.ph", 4))
+ break;
+ return Intrinsic::mips_dpaq_s_w_ph; // "ips.dpaq.s.w.ph"
+ case 'a': // 1 string to match.
+ if (memcmp(NameR.data()+11, ".l.w", 4))
+ break;
+ return Intrinsic::mips_dpaq_sa_l_w; // "ips.dpaq.sa.l.w"
+ }
+ break;
+ case 's': // 2 strings to match.
+ if (memcmp(NameR.data()+7, "q.s", 3))
+ break;
+ switch (NameR[10]) {
+ default: break;
+ case '.': // 1 string to match.
+ if (memcmp(NameR.data()+11, "w.ph", 4))
+ break;
+ return Intrinsic::mips_dpsq_s_w_ph; // "ips.dpsq.s.w.ph"
+ case 'a': // 1 string to match.
+ if (memcmp(NameR.data()+11, ".l.w", 4))
+ break;
+ return Intrinsic::mips_dpsq_sa_l_w; // "ips.dpsq.sa.l.w"
+ }
+ break;
+ }
+ break;
+ case 'm': // 2 strings to match.
+ if (memcmp(NameR.data()+5, "aq.s.w.ph", 9))
+ break;
+ switch (NameR[14]) {
+ default: break;
+ case 'l': // 1 string to match.
+ return Intrinsic::mips_maq_s_w_phl; // "ips.maq.s.w.phl"
+ case 'r': // 1 string to match.
+ return Intrinsic::mips_maq_s_w_phr; // "ips.maq.s.w.phr"
+ }
+ break;
+ case 'p': // 2 strings to match.
+ if (memcmp(NameR.data()+5, "recr", 4))
+ break;
+ switch (NameR[9]) {
+ default: break;
+ case '.': // 1 string to match.
+ if (memcmp(NameR.data()+10, "qb.ph", 5))
+ break;
+ return Intrinsic::mips_precr_qb_ph; // "ips.precr.qb.ph"
+ case 'q': // 1 string to match.
+ if (memcmp(NameR.data()+10, ".ph.w", 5))
+ break;
+ return Intrinsic::mips_precrq_ph_w; // "ips.precrq.ph.w"
+ }
+ break;
+ }
+ break;
+ case 16: // 10 strings to match.
+ if (memcmp(NameR.data()+0, "ips.", 4))
+ break;
+ switch (NameR[4]) {
+ default: break;
+ case 'c': // 3 strings to match.
+ if (memcmp(NameR.data()+5, "mpgdu.", 6))
+ break;
+ switch (NameR[11]) {
+ default: break;
+ case 'e': // 1 string to match.
+ if (memcmp(NameR.data()+12, "q.qb", 4))
+ break;
+ return Intrinsic::mips_cmpgdu_eq_qb; // "ips.cmpgdu.eq.qb"
+ case 'l': // 2 strings to match.
+ switch (NameR[12]) {
+ default: break;
+ case 'e': // 1 string to match.
+ if (memcmp(NameR.data()+13, ".qb", 3))
+ break;
+ return Intrinsic::mips_cmpgdu_le_qb; // "ips.cmpgdu.le.qb"
+ case 't': // 1 string to match.
+ if (memcmp(NameR.data()+13, ".qb", 3))
+ break;
+ return Intrinsic::mips_cmpgdu_lt_qb; // "ips.cmpgdu.lt.qb"
+ }
+ break;
+ }
+ break;
+ case 'd': // 2 strings to match.
+ if (NameR[5] != 'p')
+ break;
+ switch (NameR[6]) {
+ default: break;
+ case 'a': // 1 string to match.
+ if (memcmp(NameR.data()+7, "qx.s.w.ph", 9))
+ break;
+ return Intrinsic::mips_dpaqx_s_w_ph; // "ips.dpaqx.s.w.ph"
+ case 's': // 1 string to match.
+ if (memcmp(NameR.data()+7, "qx.s.w.ph", 9))
+ break;
+ return Intrinsic::mips_dpsqx_s_w_ph; // "ips.dpsqx.s.w.ph"
+ }
+ break;
+ case 'm': // 2 strings to match.
+ if (memcmp(NameR.data()+5, "aq.sa.w.ph", 10))
+ break;
+ switch (NameR[15]) {
+ default: break;
+ case 'l': // 1 string to match.
+ return Intrinsic::mips_maq_sa_w_phl; // "ips.maq.sa.w.phl"
+ case 'r': // 1 string to match.
+ return Intrinsic::mips_maq_sa_w_phr; // "ips.maq.sa.w.phr"
+ }
+ break;
+ case 'p': // 3 strings to match.
+ if (memcmp(NameR.data()+5, "rec", 3))
+ break;
+ switch (NameR[8]) {
+ default: break;
+ case 'e': // 2 strings to match.
+ if (memcmp(NameR.data()+9, "q.w.ph", 6))
+ break;
+ switch (NameR[15]) {
+ default: break;
+ case 'l': // 1 string to match.
+ return Intrinsic::mips_preceq_w_phl; // "ips.preceq.w.phl"
+ case 'r': // 1 string to match.
+ return Intrinsic::mips_preceq_w_phr; // "ips.preceq.w.phr"
+ }
+ break;
+ case 'r': // 1 string to match.
+ if (memcmp(NameR.data()+9, "q.qb.ph", 7))
+ break;
+ return Intrinsic::mips_precrq_qb_ph; // "ips.precrq.qb.ph"
+ }
+ break;
+ }
+ break;
+ case 17: // 7 strings to match.
+ if (memcmp(NameR.data()+0, "ips.", 4))
+ break;
+ switch (NameR[4]) {
+ default: break;
+ case 'd': // 2 strings to match.
+ if (NameR[5] != 'p')
+ break;
+ switch (NameR[6]) {
+ default: break;
+ case 'a': // 1 string to match.
+ if (memcmp(NameR.data()+7, "qx.sa.w.ph", 10))
+ break;
+ return Intrinsic::mips_dpaqx_sa_w_ph; // "ips.dpaqx.sa.w.ph"
+ case 's': // 1 string to match.
+ if (memcmp(NameR.data()+7, "qx.sa.w.ph", 10))
+ break;
+ return Intrinsic::mips_dpsqx_sa_w_ph; // "ips.dpsqx.sa.w.ph"
+ }
+ break;
+ case 'm': // 3 strings to match.
+ if (memcmp(NameR.data()+5, "ul", 2))
+ break;
+ switch (NameR[7]) {
+ default: break;
+ case 'e': // 2 strings to match.
+ if (memcmp(NameR.data()+8, "q.s.w.ph", 8))
+ break;
+ switch (NameR[16]) {
+ default: break;
+ case 'l': // 1 string to match.
+ return Intrinsic::mips_muleq_s_w_phl; // "ips.muleq.s.w.phl"
+ case 'r': // 1 string to match.
+ return Intrinsic::mips_muleq_s_w_phr; // "ips.muleq.s.w.phr"
+ }
+ break;
+ case 's': // 1 string to match.
+ if (memcmp(NameR.data()+8, "aq.s.w.ph", 9))
+ break;
+ return Intrinsic::mips_mulsaq_s_w_ph; // "ips.mulsaq.s.w.ph"
+ }
+ break;
+ case 'p': // 2 strings to match.
+ if (memcmp(NameR.data()+5, "receu.ph.qb", 11))
+ break;
+ switch (NameR[16]) {
+ default: break;
+ case 'l': // 1 string to match.
+ return Intrinsic::mips_preceu_ph_qbl; // "ips.preceu.ph.qbl"
+ case 'r': // 1 string to match.
+ return Intrinsic::mips_preceu_ph_qbr; // "ips.preceu.ph.qbr"
+ }
+ break;
+ }
+ break;
+ case 18: // 8 strings to match.
+ if (memcmp(NameR.data()+0, "ips.", 4))
+ break;
+ switch (NameR[4]) {
+ default: break;
+ case 'm': // 2 strings to match.
+ if (memcmp(NameR.data()+5, "uleu.s.ph.qb", 12))
+ break;
+ switch (NameR[17]) {
+ default: break;
+ case 'l': // 1 string to match.
+ return Intrinsic::mips_muleu_s_ph_qbl; // "ips.muleu.s.ph.qbl"
+ case 'r': // 1 string to match.
+ return Intrinsic::mips_muleu_s_ph_qbr; // "ips.muleu.s.ph.qbr"
+ }
+ break;
+ case 'p': // 6 strings to match.
+ if (memcmp(NameR.data()+5, "rec", 3))
+ break;
+ switch (NameR[8]) {
+ default: break;
+ case 'e': // 4 strings to match.
+ switch (NameR[9]) {
+ default: break;
+ case 'q': // 2 strings to match.
+ if (memcmp(NameR.data()+10, "u.ph.qb", 7))
+ break;
+ switch (NameR[17]) {
+ default: break;
+ case 'l': // 1 string to match.
+ return Intrinsic::mips_precequ_ph_qbl; // "ips.precequ.ph.qbl"
+ case 'r': // 1 string to match.
+ return Intrinsic::mips_precequ_ph_qbr; // "ips.precequ.ph.qbr"
+ }
+ break;
+ case 'u': // 2 strings to match.
+ if (memcmp(NameR.data()+10, ".ph.qb", 6))
+ break;
+ switch (NameR[16]) {
+ default: break;
+ case 'l': // 1 string to match.
+ if (NameR[17] != 'a')
+ break;
+ return Intrinsic::mips_preceu_ph_qbla; // "ips.preceu.ph.qbla"
+ case 'r': // 1 string to match.
+ if (NameR[17] != 'a')
+ break;
+ return Intrinsic::mips_preceu_ph_qbra; // "ips.preceu.ph.qbra"
+ }
+ break;
+ }
+ break;
+ case 'r': // 2 strings to match.
+ switch (NameR[9]) {
+ default: break;
+ case '.': // 1 string to match.
+ if (memcmp(NameR.data()+10, "sra.ph.w", 8))
+ break;
+ return Intrinsic::mips_precr_sra_ph_w; // "ips.precr.sra.ph.w"
+ case 'q': // 1 string to match.
+ if (memcmp(NameR.data()+10, ".rs.ph.w", 8))
+ break;
+ return Intrinsic::mips_precrq_rs_ph_w; // "ips.precrq.rs.ph.w"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 19: // 3 strings to match.
+ if (memcmp(NameR.data()+0, "ips.prec", 8))
+ break;
+ switch (NameR[8]) {
+ default: break;
+ case 'e': // 2 strings to match.
+ if (memcmp(NameR.data()+9, "qu.ph.qb", 8))
+ break;
+ switch (NameR[17]) {
+ default: break;
+ case 'l': // 1 string to match.
+ if (NameR[18] != 'a')
+ break;
+ return Intrinsic::mips_precequ_ph_qbla; // "ips.precequ.ph.qbla"
+ case 'r': // 1 string to match.
+ if (NameR[18] != 'a')
+ break;
+ return Intrinsic::mips_precequ_ph_qbra; // "ips.precequ.ph.qbra"
+ }
+ break;
+ case 'r': // 1 string to match.
+ if (memcmp(NameR.data()+9, "qu.s.qb.ph", 10))
+ break;
+ return Intrinsic::mips_precrqu_s_qb_ph; // "ips.precrqu.s.qb.ph"
+ }
+ break;
+ case 20: // 1 string to match.
+ if (memcmp(NameR.data()+0, "ips.precr.sra.r.ph.w", 20))
+ break;
+ return Intrinsic::mips_precr_sra_r_ph_w; // "ips.precr.sra.r.ph.w"
+ }
+ break; // end of 'm' case.
+ case 'n':
+ if (NameR.startswith("vvm.texsurf.handle.internal.")) return Intrinsic::nvvm_texsurf_handle_internal;
+ if (NameR.startswith("vvm.texsurf.handle.")) return Intrinsic::nvvm_texsurf_handle;
+ if (NameR.startswith("vvm.reflect.")) return Intrinsic::nvvm_reflect;
+ if (NameR.startswith("vvm.ptr.shared.to.gen.")) return Intrinsic::nvvm_ptr_shared_to_gen;
+ if (NameR.startswith("vvm.ptr.local.to.gen.")) return Intrinsic::nvvm_ptr_local_to_gen;
+ if (NameR.startswith("vvm.ptr.global.to.gen.")) return Intrinsic::nvvm_ptr_global_to_gen;
+ if (NameR.startswith("vvm.ptr.gen.to.shared.")) return Intrinsic::nvvm_ptr_gen_to_shared;
+ if (NameR.startswith("vvm.ptr.gen.to.param.")) return Intrinsic::nvvm_ptr_gen_to_param;
+ if (NameR.startswith("vvm.ptr.gen.to.local.")) return Intrinsic::nvvm_ptr_gen_to_local;
+ if (NameR.startswith("vvm.ptr.gen.to.global.")) return Intrinsic::nvvm_ptr_gen_to_global;
+ if (NameR.startswith("vvm.ptr.gen.to.constant.")) return Intrinsic::nvvm_ptr_gen_to_constant;
+ if (NameR.startswith("vvm.ptr.constant.to.gen.")) return Intrinsic::nvvm_ptr_constant_to_gen;
+ if (NameR.startswith("vvm.move.ptr.")) return Intrinsic::nvvm_move_ptr;
+ if (NameR.startswith("vvm.ldu.global.p.")) return Intrinsic::nvvm_ldu_global_p;
+ if (NameR.startswith("vvm.ldu.global.i.")) return Intrinsic::nvvm_ldu_global_i;
+ if (NameR.startswith("vvm.ldu.global.f.")) return Intrinsic::nvvm_ldu_global_f;
+ if (NameR.startswith("vvm.ldg.global.p.")) return Intrinsic::nvvm_ldg_global_p;
+ if (NameR.startswith("vvm.ldg.global.i.")) return Intrinsic::nvvm_ldg_global_i;
+ if (NameR.startswith("vvm.ldg.global.f.")) return Intrinsic::nvvm_ldg_global_f;
+ if (NameR.startswith("vvm.compiler.warn.")) return Intrinsic::nvvm_compiler_warn;
+ if (NameR.startswith("vvm.compiler.error.")) return Intrinsic::nvvm_compiler_error;
+ if (NameR.startswith("vvm.atomic.load.inc.32.")) return Intrinsic::nvvm_atomic_load_inc_32;
+ if (NameR.startswith("vvm.atomic.load.dec.32.")) return Intrinsic::nvvm_atomic_load_dec_32;
+ if (NameR.startswith("vvm.atomic.load.add.f32.")) return Intrinsic::nvvm_atomic_load_add_f32;
+ if (NameR.startswith("earbyint.")) return Intrinsic::nearbyint;
+ switch (NameR.size()) {
+ default: break;
+ case 7: // 1 string to match.
+ if (memcmp(NameR.data()+0, "vvm.h2f", 7))
+ break;
+ return Intrinsic::nvvm_h2f; // "vvm.h2f"
+ case 8: // 1 string to match.
+ if (memcmp(NameR.data()+0, "vvm.prmt", 8))
+ break;
+ return Intrinsic::nvvm_prmt; // "vvm.prmt"
+ case 9: // 5 strings to match.
+ if (memcmp(NameR.data()+0, "vvm.", 4))
+ break;
+ switch (NameR[4]) {
+ default: break;
+ case 'a': // 1 string to match.
+ if (memcmp(NameR.data()+5, "bs.i", 4))
+ break;
+ return Intrinsic::nvvm_abs_i; // "vvm.abs.i"
+ case 'c': // 1 string to match.
+ if (memcmp(NameR.data()+5, "lz.i", 4))
+ break;
+ return Intrinsic::nvvm_clz_i; // "vvm.clz.i"
+ case 'm': // 2 strings to match.
+ switch (NameR[5]) {
+ default: break;
+ case 'a': // 1 string to match.
+ if (memcmp(NameR.data()+6, "x.i", 3))
+ break;
+ return Intrinsic::nvvm_max_i; // "vvm.max.i"
+ case 'i': // 1 string to match.
+ if (memcmp(NameR.data()+6, "n.i", 3))
+ break;
+ return Intrinsic::nvvm_min_i; // "vvm.min.i"
+ }
+ break;
+ case 's': // 1 string to match.
+ if (memcmp(NameR.data()+5, "ad.i", 4))
+ break;
+ return Intrinsic::nvvm_sad_i; // "vvm.sad.i"
+ }
+ break;
+ case 10: // 42 strings to match.
+ if (memcmp(NameR.data()+0, "vvm.", 4))
+ break;
+ switch (NameR[4]) {
+ default: break;
+ case 'a': // 1 string to match.
+ if (memcmp(NameR.data()+5, "bs.ll", 5))
+ break;
+ return Intrinsic::nvvm_abs_ll; // "vvm.abs.ll"
+ case 'b': // 2 strings to match.
+ if (memcmp(NameR.data()+5, "rev", 3))
+ break;
+ switch (NameR[8]) {
+ default: break;
+ case '3': // 1 string to match.
+ if (NameR[9] != '2')
+ break;
+ return Intrinsic::nvvm_brev32; // "vvm.brev32"
+ case '6': // 1 string to match.
+ if (NameR[9] != '4')
+ break;
+ return Intrinsic::nvvm_brev64; // "vvm.brev64"
+ }
+ break;
+ case 'c': // 3 strings to match.
+ switch (NameR[5]) {
+ default: break;
+ case 'e': // 2 strings to match.
+ if (memcmp(NameR.data()+6, "il.", 3))
+ break;
+ switch (NameR[9]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::nvvm_ceil_d; // "vvm.ceil.d"
+ case 'f': // 1 string to match.
+ return Intrinsic::nvvm_ceil_f; // "vvm.ceil.f"
+ }
+ break;
+ case 'l': // 1 string to match.
+ if (memcmp(NameR.data()+6, "z.ll", 4))
+ break;
+ return Intrinsic::nvvm_clz_ll; // "vvm.clz.ll"
+ }
+ break;
+ case 'd': // 10 strings to match.
+ if (NameR[5] != '2')
+ break;
+ switch (NameR[6]) {
+ default: break;
+ case 'f': // 4 strings to match.
+ if (memcmp(NameR.data()+7, ".r", 2))
+ break;
+ switch (NameR[9]) {
+ default: break;
+ case 'm': // 1 string to match.
+ return Intrinsic::nvvm_d2f_rm; // "vvm.d2f.rm"
+ case 'n': // 1 string to match.
+ return Intrinsic::nvvm_d2f_rn; // "vvm.d2f.rn"
+ case 'p': // 1 string to match.
+ return Intrinsic::nvvm_d2f_rp; // "vvm.d2f.rp"
+ case 'z': // 1 string to match.
+ return Intrinsic::nvvm_d2f_rz; // "vvm.d2f.rz"
+ }
+ break;
+ case 'i': // 6 strings to match.
+ if (NameR[7] != '.')
+ break;
+ switch (NameR[8]) {
+ default: break;
+ case 'h': // 1 string to match.
+ if (NameR[9] != 'i')
+ break;
+ return Intrinsic::nvvm_d2i_hi; // "vvm.d2i.hi"
+ case 'l': // 1 string to match.
+ if (NameR[9] != 'o')
+ break;
+ return Intrinsic::nvvm_d2i_lo; // "vvm.d2i.lo"
+ case 'r': // 4 strings to match.
+ switch (NameR[9]) {
+ default: break;
+ case 'm': // 1 string to match.
+ return Intrinsic::nvvm_d2i_rm; // "vvm.d2i.rm"
+ case 'n': // 1 string to match.
+ return Intrinsic::nvvm_d2i_rn; // "vvm.d2i.rn"
+ case 'p': // 1 string to match.
+ return Intrinsic::nvvm_d2i_rp; // "vvm.d2i.rp"
+ case 'z': // 1 string to match.
+ return Intrinsic::nvvm_d2i_rz; // "vvm.d2i.rz"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 'f': // 11 strings to match.
+ switch (NameR[5]) {
+ default: break;
+ case '2': // 5 strings to match.
+ switch (NameR[6]) {
+ default: break;
+ case 'h': // 1 string to match.
+ if (memcmp(NameR.data()+7, ".rn", 3))
+ break;
+ return Intrinsic::nvvm_f2h_rn; // "vvm.f2h.rn"
+ case 'i': // 4 strings to match.
+ if (memcmp(NameR.data()+7, ".r", 2))
+ break;
+ switch (NameR[9]) {
+ default: break;
+ case 'm': // 1 string to match.
+ return Intrinsic::nvvm_f2i_rm; // "vvm.f2i.rm"
+ case 'n': // 1 string to match.
+ return Intrinsic::nvvm_f2i_rn; // "vvm.f2i.rn"
+ case 'p': // 1 string to match.
+ return Intrinsic::nvvm_f2i_rp; // "vvm.f2i.rp"
+ case 'z': // 1 string to match.
+ return Intrinsic::nvvm_f2i_rz; // "vvm.f2i.rz"
+ }
+ break;
+ }
+ break;
+ case 'a': // 2 strings to match.
+ if (memcmp(NameR.data()+6, "bs.", 3))
+ break;
+ switch (NameR[9]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::nvvm_fabs_d; // "vvm.fabs.d"
+ case 'f': // 1 string to match.
+ return Intrinsic::nvvm_fabs_f; // "vvm.fabs.f"
+ }
+ break;
+ case 'm': // 4 strings to match.
+ switch (NameR[6]) {
+ default: break;
+ case 'a': // 2 strings to match.
+ if (memcmp(NameR.data()+7, "x.", 2))
+ break;
+ switch (NameR[9]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::nvvm_fmax_d; // "vvm.fmax.d"
+ case 'f': // 1 string to match.
+ return Intrinsic::nvvm_fmax_f; // "vvm.fmax.f"
+ }
+ break;
+ case 'i': // 2 strings to match.
+ if (memcmp(NameR.data()+7, "n.", 2))
+ break;
+ switch (NameR[9]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::nvvm_fmin_d; // "vvm.fmin.d"
+ case 'f': // 1 string to match.
+ return Intrinsic::nvvm_fmin_f; // "vvm.fmin.f"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 'i': // 8 strings to match.
+ if (NameR[5] != '2')
+ break;
+ switch (NameR[6]) {
+ default: break;
+ case 'd': // 4 strings to match.
+ if (memcmp(NameR.data()+7, ".r", 2))
+ break;
+ switch (NameR[9]) {
+ default: break;
+ case 'm': // 1 string to match.
+ return Intrinsic::nvvm_i2d_rm; // "vvm.i2d.rm"
+ case 'n': // 1 string to match.
+ return Intrinsic::nvvm_i2d_rn; // "vvm.i2d.rn"
+ case 'p': // 1 string to match.
+ return Intrinsic::nvvm_i2d_rp; // "vvm.i2d.rp"
+ case 'z': // 1 string to match.
+ return Intrinsic::nvvm_i2d_rz; // "vvm.i2d.rz"
+ }
+ break;
+ case 'f': // 4 strings to match.
+ if (memcmp(NameR.data()+7, ".r", 2))
+ break;
+ switch (NameR[9]) {
+ default: break;
+ case 'm': // 1 string to match.
+ return Intrinsic::nvvm_i2f_rm; // "vvm.i2f.rm"
+ case 'n': // 1 string to match.
+ return Intrinsic::nvvm_i2f_rn; // "vvm.i2f.rn"
+ case 'p': // 1 string to match.
+ return Intrinsic::nvvm_i2f_rp; // "vvm.i2f.rp"
+ case 'z': // 1 string to match.
+ return Intrinsic::nvvm_i2f_rz; // "vvm.i2f.rz"
+ }
+ break;
+ }
+ break;
+ case 'm': // 4 strings to match.
+ switch (NameR[5]) {
+ default: break;
+ case 'a': // 2 strings to match.
+ if (memcmp(NameR.data()+6, "x.", 2))
+ break;
+ switch (NameR[8]) {
+ default: break;
+ case 'l': // 1 string to match.
+ if (NameR[9] != 'l')
+ break;
+ return Intrinsic::nvvm_max_ll; // "vvm.max.ll"
+ case 'u': // 1 string to match.
+ if (NameR[9] != 'i')
+ break;
+ return Intrinsic::nvvm_max_ui; // "vvm.max.ui"
+ }
+ break;
+ case 'i': // 2 strings to match.
+ if (memcmp(NameR.data()+6, "n.", 2))
+ break;
+ switch (NameR[8]) {
+ default: break;
+ case 'l': // 1 string to match.
+ if (NameR[9] != 'l')
+ break;
+ return Intrinsic::nvvm_min_ll; // "vvm.min.ll"
+ case 'u': // 1 string to match.
+ if (NameR[9] != 'i')
+ break;
+ return Intrinsic::nvvm_min_ui; // "vvm.min.ui"
+ }
+ break;
+ }
+ break;
+ case 'p': // 1 string to match.
+ if (memcmp(NameR.data()+5, "opc.i", 5))
+ break;
+ return Intrinsic::nvvm_popc_i; // "vvm.popc.i"
+ case 's': // 2 strings to match.
+ switch (NameR[5]) {
+ default: break;
+ case 'a': // 1 string to match.
+ if (memcmp(NameR.data()+6, "d.ui", 4))
+ break;
+ return Intrinsic::nvvm_sad_ui; // "vvm.sad.ui"
+ case 'q': // 1 string to match.
+ if (memcmp(NameR.data()+6, "rt.f", 4))
+ break;
+ return Intrinsic::nvvm_sqrt_f; // "vvm.sqrt.f"
+ }
+ break;
+ }
+ break;
+ case 11: // 43 strings to match.
+ if (memcmp(NameR.data()+0, "vvm.", 4))
+ break;
+ switch (NameR[4]) {
+ default: break;
+ case 'd': // 8 strings to match.
+ if (NameR[5] != '2')
+ break;
+ switch (NameR[6]) {
+ default: break;
+ case 'l': // 4 strings to match.
+ if (memcmp(NameR.data()+7, "l.r", 3))
+ break;
+ switch (NameR[10]) {
+ default: break;
+ case 'm': // 1 string to match.
+ return Intrinsic::nvvm_d2ll_rm; // "vvm.d2ll.rm"
+ case 'n': // 1 string to match.
+ return Intrinsic::nvvm_d2ll_rn; // "vvm.d2ll.rn"
+ case 'p': // 1 string to match.
+ return Intrinsic::nvvm_d2ll_rp; // "vvm.d2ll.rp"
+ case 'z': // 1 string to match.
+ return Intrinsic::nvvm_d2ll_rz; // "vvm.d2ll.rz"
+ }
+ break;
+ case 'u': // 4 strings to match.
+ if (memcmp(NameR.data()+7, "i.r", 3))
+ break;
+ switch (NameR[10]) {
+ default: break;
+ case 'm': // 1 string to match.
+ return Intrinsic::nvvm_d2ui_rm; // "vvm.d2ui.rm"
+ case 'n': // 1 string to match.
+ return Intrinsic::nvvm_d2ui_rn; // "vvm.d2ui.rn"
+ case 'p': // 1 string to match.
+ return Intrinsic::nvvm_d2ui_rp; // "vvm.d2ui.rp"
+ case 'z': // 1 string to match.
+ return Intrinsic::nvvm_d2ui_rz; // "vvm.d2ui.rz"
+ }
+ break;
+ }
+ break;
+ case 'f': // 10 strings to match.
+ switch (NameR[5]) {
+ default: break;
+ case '2': // 8 strings to match.
+ switch (NameR[6]) {
+ default: break;
+ case 'l': // 4 strings to match.
+ if (memcmp(NameR.data()+7, "l.r", 3))
+ break;
+ switch (NameR[10]) {
+ default: break;
+ case 'm': // 1 string to match.
+ return Intrinsic::nvvm_f2ll_rm; // "vvm.f2ll.rm"
+ case 'n': // 1 string to match.
+ return Intrinsic::nvvm_f2ll_rn; // "vvm.f2ll.rn"
+ case 'p': // 1 string to match.
+ return Intrinsic::nvvm_f2ll_rp; // "vvm.f2ll.rp"
+ case 'z': // 1 string to match.
+ return Intrinsic::nvvm_f2ll_rz; // "vvm.f2ll.rz"
+ }
+ break;
+ case 'u': // 4 strings to match.
+ if (memcmp(NameR.data()+7, "i.r", 3))
+ break;
+ switch (NameR[10]) {
+ default: break;
+ case 'm': // 1 string to match.
+ return Intrinsic::nvvm_f2ui_rm; // "vvm.f2ui.rm"
+ case 'n': // 1 string to match.
+ return Intrinsic::nvvm_f2ui_rn; // "vvm.f2ui.rn"
+ case 'p': // 1 string to match.
+ return Intrinsic::nvvm_f2ui_rp; // "vvm.f2ui.rp"
+ case 'z': // 1 string to match.
+ return Intrinsic::nvvm_f2ui_rz; // "vvm.f2ui.rz"
+ }
+ break;
+ }
+ break;
+ case 'l': // 2 strings to match.
+ if (memcmp(NameR.data()+6, "oor.", 4))
+ break;
+ switch (NameR[10]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::nvvm_floor_d; // "vvm.floor.d"
+ case 'f': // 1 string to match.
+ return Intrinsic::nvvm_floor_f; // "vvm.floor.f"
+ }
+ break;
+ }
+ break;
+ case 'l': // 8 strings to match.
+ if (memcmp(NameR.data()+5, "l2", 2))
+ break;
+ switch (NameR[7]) {
+ default: break;
+ case 'd': // 4 strings to match.
+ if (memcmp(NameR.data()+8, ".r", 2))
+ break;
+ switch (NameR[10]) {
+ default: break;
+ case 'm': // 1 string to match.
+ return Intrinsic::nvvm_ll2d_rm; // "vvm.ll2d.rm"
+ case 'n': // 1 string to match.
+ return Intrinsic::nvvm_ll2d_rn; // "vvm.ll2d.rn"
+ case 'p': // 1 string to match.
+ return Intrinsic::nvvm_ll2d_rp; // "vvm.ll2d.rp"
+ case 'z': // 1 string to match.
+ return Intrinsic::nvvm_ll2d_rz; // "vvm.ll2d.rz"
+ }
+ break;
+ case 'f': // 4 strings to match.
+ if (memcmp(NameR.data()+8, ".r", 2))
+ break;
+ switch (NameR[10]) {
+ default: break;
+ case 'm': // 1 string to match.
+ return Intrinsic::nvvm_ll2f_rm; // "vvm.ll2f.rm"
+ case 'n': // 1 string to match.
+ return Intrinsic::nvvm_ll2f_rn; // "vvm.ll2f.rn"
+ case 'p': // 1 string to match.
+ return Intrinsic::nvvm_ll2f_rp; // "vvm.ll2f.rp"
+ case 'z': // 1 string to match.
+ return Intrinsic::nvvm_ll2f_rz; // "vvm.ll2f.rz"
+ }
+ break;
+ }
+ break;
+ case 'm': // 4 strings to match.
+ switch (NameR[5]) {
+ default: break;
+ case 'a': // 1 string to match.
+ if (memcmp(NameR.data()+6, "x.ull", 5))
+ break;
+ return Intrinsic::nvvm_max_ull; // "vvm.max.ull"
+ case 'i': // 1 string to match.
+ if (memcmp(NameR.data()+6, "n.ull", 5))
+ break;
+ return Intrinsic::nvvm_min_ull; // "vvm.min.ull"
+ case 'u': // 2 strings to match.
+ if (NameR[6] != 'l')
+ break;
+ switch (NameR[7]) {
+ default: break;
+ case '2': // 1 string to match.
+ if (memcmp(NameR.data()+8, "4.i", 3))
+ break;
+ return Intrinsic::nvvm_mul24_i; // "vvm.mul24.i"
+ case 'h': // 1 string to match.
+ if (memcmp(NameR.data()+8, "i.i", 3))
+ break;
+ return Intrinsic::nvvm_mulhi_i; // "vvm.mulhi.i"
+ }
+ break;
+ }
+ break;
+ case 'p': // 1 string to match.
+ if (memcmp(NameR.data()+5, "opc.ll", 6))
+ break;
+ return Intrinsic::nvvm_popc_ll; // "vvm.popc.ll"
+ case 'r': // 2 strings to match.
+ if (memcmp(NameR.data()+5, "ound.", 5))
+ break;
+ switch (NameR[10]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::nvvm_round_d; // "vvm.round.d"
+ case 'f': // 1 string to match.
+ return Intrinsic::nvvm_round_f; // "vvm.round.f"
+ }
+ break;
+ case 't': // 2 strings to match.
+ if (memcmp(NameR.data()+5, "runc.", 5))
+ break;
+ switch (NameR[10]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::nvvm_trunc_d; // "vvm.trunc.d"
+ case 'f': // 1 string to match.
+ return Intrinsic::nvvm_trunc_f; // "vvm.trunc.f"
+ }
+ break;
+ case 'u': // 8 strings to match.
+ if (memcmp(NameR.data()+5, "i2", 2))
+ break;
+ switch (NameR[7]) {
+ default: break;
+ case 'd': // 4 strings to match.
+ if (memcmp(NameR.data()+8, ".r", 2))
+ break;
+ switch (NameR[10]) {
+ default: break;
+ case 'm': // 1 string to match.
+ return Intrinsic::nvvm_ui2d_rm; // "vvm.ui2d.rm"
+ case 'n': // 1 string to match.
+ return Intrinsic::nvvm_ui2d_rn; // "vvm.ui2d.rn"
+ case 'p': // 1 string to match.
+ return Intrinsic::nvvm_ui2d_rp; // "vvm.ui2d.rp"
+ case 'z': // 1 string to match.
+ return Intrinsic::nvvm_ui2d_rz; // "vvm.ui2d.rz"
+ }
+ break;
+ case 'f': // 4 strings to match.
+ if (memcmp(NameR.data()+8, ".r", 2))
+ break;
+ switch (NameR[10]) {
+ default: break;
+ case 'm': // 1 string to match.
+ return Intrinsic::nvvm_ui2f_rm; // "vvm.ui2f.rm"
+ case 'n': // 1 string to match.
+ return Intrinsic::nvvm_ui2f_rn; // "vvm.ui2f.rn"
+ case 'p': // 1 string to match.
+ return Intrinsic::nvvm_ui2f_rp; // "vvm.ui2f.rp"
+ case 'z': // 1 string to match.
+ return Intrinsic::nvvm_ui2f_rz; // "vvm.ui2f.rz"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 12: // 64 strings to match.
+ if (memcmp(NameR.data()+0, "vvm.", 4))
+ break;
+ switch (NameR[4]) {
+ default: break;
+ case 'a': // 8 strings to match.
+ if (memcmp(NameR.data()+5, "dd.r", 4))
+ break;
+ switch (NameR[9]) {
+ default: break;
+ case 'm': // 2 strings to match.
+ if (NameR[10] != '.')
+ break;
+ switch (NameR[11]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::nvvm_add_rm_d; // "vvm.add.rm.d"
+ case 'f': // 1 string to match.
+ return Intrinsic::nvvm_add_rm_f; // "vvm.add.rm.f"
+ }
+ break;
+ case 'n': // 2 strings to match.
+ if (NameR[10] != '.')
+ break;
+ switch (NameR[11]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::nvvm_add_rn_d; // "vvm.add.rn.d"
+ case 'f': // 1 string to match.
+ return Intrinsic::nvvm_add_rn_f; // "vvm.add.rn.f"
+ }
+ break;
+ case 'p': // 2 strings to match.
+ if (NameR[10] != '.')
+ break;
+ switch (NameR[11]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::nvvm_add_rp_d; // "vvm.add.rp.d"
+ case 'f': // 1 string to match.
+ return Intrinsic::nvvm_add_rp_f; // "vvm.add.rp.f"
+ }
+ break;
+ case 'z': // 2 strings to match.
+ if (NameR[10] != '.')
+ break;
+ switch (NameR[11]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::nvvm_add_rz_d; // "vvm.add.rz.d"
+ case 'f': // 1 string to match.
+ return Intrinsic::nvvm_add_rz_f; // "vvm.add.rz.f"
+ }
+ break;
+ }
+ break;
+ case 'b': // 1 string to match.
+ if (memcmp(NameR.data()+5, "arrier0", 7))
+ break;
+ return Intrinsic::nvvm_barrier0; // "vvm.barrier0"
+ case 'd': // 12 strings to match.
+ switch (NameR[5]) {
+ default: break;
+ case '2': // 4 strings to match.
+ if (memcmp(NameR.data()+6, "ull.r", 5))
+ break;
+ switch (NameR[11]) {
+ default: break;
+ case 'm': // 1 string to match.
+ return Intrinsic::nvvm_d2ull_rm; // "vvm.d2ull.rm"
+ case 'n': // 1 string to match.
+ return Intrinsic::nvvm_d2ull_rn; // "vvm.d2ull.rn"
+ case 'p': // 1 string to match.
+ return Intrinsic::nvvm_d2ull_rp; // "vvm.d2ull.rp"
+ case 'z': // 1 string to match.
+ return Intrinsic::nvvm_d2ull_rz; // "vvm.d2ull.rz"
+ }
+ break;
+ case 'i': // 8 strings to match.
+ if (memcmp(NameR.data()+6, "v.r", 3))
+ break;
+ switch (NameR[9]) {
+ default: break;
+ case 'm': // 2 strings to match.
+ if (NameR[10] != '.')
+ break;
+ switch (NameR[11]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::nvvm_div_rm_d; // "vvm.div.rm.d"
+ case 'f': // 1 string to match.
+ return Intrinsic::nvvm_div_rm_f; // "vvm.div.rm.f"
+ }
+ break;
+ case 'n': // 2 strings to match.
+ if (NameR[10] != '.')
+ break;
+ switch (NameR[11]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::nvvm_div_rn_d; // "vvm.div.rn.d"
+ case 'f': // 1 string to match.
+ return Intrinsic::nvvm_div_rn_f; // "vvm.div.rn.f"
+ }
+ break;
+ case 'p': // 2 strings to match.
+ if (NameR[10] != '.')
+ break;
+ switch (NameR[11]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::nvvm_div_rp_d; // "vvm.div.rp.d"
+ case 'f': // 1 string to match.
+ return Intrinsic::nvvm_div_rp_f; // "vvm.div.rp.f"
+ }
+ break;
+ case 'z': // 2 strings to match.
+ if (NameR[10] != '.')
+ break;
+ switch (NameR[11]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::nvvm_div_rz_d; // "vvm.div.rz.d"
+ case 'f': // 1 string to match.
+ return Intrinsic::nvvm_div_rz_f; // "vvm.div.rz.f"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 'f': // 12 strings to match.
+ switch (NameR[5]) {
+ default: break;
+ case '2': // 4 strings to match.
+ if (memcmp(NameR.data()+6, "ull.r", 5))
+ break;
+ switch (NameR[11]) {
+ default: break;
+ case 'm': // 1 string to match.
+ return Intrinsic::nvvm_f2ull_rm; // "vvm.f2ull.rm"
+ case 'n': // 1 string to match.
+ return Intrinsic::nvvm_f2ull_rn; // "vvm.f2ull.rn"
+ case 'p': // 1 string to match.
+ return Intrinsic::nvvm_f2ull_rp; // "vvm.f2ull.rp"
+ case 'z': // 1 string to match.
+ return Intrinsic::nvvm_f2ull_rz; // "vvm.f2ull.rz"
+ }
+ break;
+ case 'm': // 8 strings to match.
+ if (memcmp(NameR.data()+6, "a.r", 3))
+ break;
+ switch (NameR[9]) {
+ default: break;
+ case 'm': // 2 strings to match.
+ if (NameR[10] != '.')
+ break;
+ switch (NameR[11]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::nvvm_fma_rm_d; // "vvm.fma.rm.d"
+ case 'f': // 1 string to match.
+ return Intrinsic::nvvm_fma_rm_f; // "vvm.fma.rm.f"
+ }
+ break;
+ case 'n': // 2 strings to match.
+ if (NameR[10] != '.')
+ break;
+ switch (NameR[11]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::nvvm_fma_rn_d; // "vvm.fma.rn.d"
+ case 'f': // 1 string to match.
+ return Intrinsic::nvvm_fma_rn_f; // "vvm.fma.rn.f"
+ }
+ break;
+ case 'p': // 2 strings to match.
+ if (NameR[10] != '.')
+ break;
+ switch (NameR[11]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::nvvm_fma_rp_d; // "vvm.fma.rp.d"
+ case 'f': // 1 string to match.
+ return Intrinsic::nvvm_fma_rp_f; // "vvm.fma.rp.f"
+ }
+ break;
+ case 'z': // 2 strings to match.
+ if (NameR[10] != '.')
+ break;
+ switch (NameR[11]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::nvvm_fma_rz_d; // "vvm.fma.rz.d"
+ case 'f': // 1 string to match.
+ return Intrinsic::nvvm_fma_rz_f; // "vvm.fma.rz.f"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 'l': // 1 string to match.
+ if (memcmp(NameR.data()+5, "ohi.i2d", 7))
+ break;
+ return Intrinsic::nvvm_lohi_i2d; // "vvm.lohi.i2d"
+ case 'm': // 14 strings to match.
+ switch (NameR[5]) {
+ default: break;
+ case 'o': // 3 strings to match.
+ if (memcmp(NameR.data()+6, "ve.i", 4))
+ break;
+ switch (NameR[10]) {
+ default: break;
+ case '1': // 1 string to match.
+ if (NameR[11] != '6')
+ break;
+ return Intrinsic::nvvm_move_i16; // "vvm.move.i16"
+ case '3': // 1 string to match.
+ if (NameR[11] != '2')
+ break;
+ return Intrinsic::nvvm_move_i32; // "vvm.move.i32"
+ case '6': // 1 string to match.
+ if (NameR[11] != '4')
+ break;
+ return Intrinsic::nvvm_move_i64; // "vvm.move.i64"
+ }
+ break;
+ case 'u': // 11 strings to match.
+ if (NameR[6] != 'l')
+ break;
+ switch (NameR[7]) {
+ default: break;
+ case '.': // 8 strings to match.
+ if (NameR[8] != 'r')
+ break;
+ switch (NameR[9]) {
+ default: break;
+ case 'm': // 2 strings to match.
+ if (NameR[10] != '.')
+ break;
+ switch (NameR[11]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::nvvm_mul_rm_d; // "vvm.mul.rm.d"
+ case 'f': // 1 string to match.
+ return Intrinsic::nvvm_mul_rm_f; // "vvm.mul.rm.f"
+ }
+ break;
+ case 'n': // 2 strings to match.
+ if (NameR[10] != '.')
+ break;
+ switch (NameR[11]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::nvvm_mul_rn_d; // "vvm.mul.rn.d"
+ case 'f': // 1 string to match.
+ return Intrinsic::nvvm_mul_rn_f; // "vvm.mul.rn.f"
+ }
+ break;
+ case 'p': // 2 strings to match.
+ if (NameR[10] != '.')
+ break;
+ switch (NameR[11]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::nvvm_mul_rp_d; // "vvm.mul.rp.d"
+ case 'f': // 1 string to match.
+ return Intrinsic::nvvm_mul_rp_f; // "vvm.mul.rp.f"
+ }
+ break;
+ case 'z': // 2 strings to match.
+ if (NameR[10] != '.')
+ break;
+ switch (NameR[11]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::nvvm_mul_rz_d; // "vvm.mul.rz.d"
+ case 'f': // 1 string to match.
+ return Intrinsic::nvvm_mul_rz_f; // "vvm.mul.rz.f"
+ }
+ break;
+ }
+ break;
+ case '2': // 1 string to match.
+ if (memcmp(NameR.data()+8, "4.ui", 4))
+ break;
+ return Intrinsic::nvvm_mul24_ui; // "vvm.mul24.ui"
+ case 'h': // 2 strings to match.
+ if (memcmp(NameR.data()+8, "i.", 2))
+ break;
+ switch (NameR[10]) {
+ default: break;
+ case 'l': // 1 string to match.
+ if (NameR[11] != 'l')
+ break;
+ return Intrinsic::nvvm_mulhi_ll; // "vvm.mulhi.ll"
+ case 'u': // 1 string to match.
+ if (NameR[11] != 'i')
+ break;
+ return Intrinsic::nvvm_mulhi_ui; // "vvm.mulhi.ui"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 'r': // 8 strings to match.
+ if (memcmp(NameR.data()+5, "cp.r", 4))
+ break;
+ switch (NameR[9]) {
+ default: break;
+ case 'm': // 2 strings to match.
+ if (NameR[10] != '.')
+ break;
+ switch (NameR[11]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::nvvm_rcp_rm_d; // "vvm.rcp.rm.d"
+ case 'f': // 1 string to match.
+ return Intrinsic::nvvm_rcp_rm_f; // "vvm.rcp.rm.f"
+ }
+ break;
+ case 'n': // 2 strings to match.
+ if (NameR[10] != '.')
+ break;
+ switch (NameR[11]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::nvvm_rcp_rn_d; // "vvm.rcp.rn.d"
+ case 'f': // 1 string to match.
+ return Intrinsic::nvvm_rcp_rn_f; // "vvm.rcp.rn.f"
+ }
+ break;
+ case 'p': // 2 strings to match.
+ if (NameR[10] != '.')
+ break;
+ switch (NameR[11]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::nvvm_rcp_rp_d; // "vvm.rcp.rp.d"
+ case 'f': // 1 string to match.
+ return Intrinsic::nvvm_rcp_rp_f; // "vvm.rcp.rp.f"
+ }
+ break;
+ case 'z': // 2 strings to match.
+ if (NameR[10] != '.')
+ break;
+ switch (NameR[11]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::nvvm_rcp_rz_d; // "vvm.rcp.rz.d"
+ case 'f': // 1 string to match.
+ return Intrinsic::nvvm_rcp_rz_f; // "vvm.rcp.rz.f"
+ }
+ break;
+ }
+ break;
+ case 'u': // 8 strings to match.
+ if (memcmp(NameR.data()+5, "ll2", 3))
+ break;
+ switch (NameR[8]) {
+ default: break;
+ case 'd': // 4 strings to match.
+ if (memcmp(NameR.data()+9, ".r", 2))
+ break;
+ switch (NameR[11]) {
+ default: break;
+ case 'm': // 1 string to match.
+ return Intrinsic::nvvm_ull2d_rm; // "vvm.ull2d.rm"
+ case 'n': // 1 string to match.
+ return Intrinsic::nvvm_ull2d_rn; // "vvm.ull2d.rn"
+ case 'p': // 1 string to match.
+ return Intrinsic::nvvm_ull2d_rp; // "vvm.ull2d.rp"
+ case 'z': // 1 string to match.
+ return Intrinsic::nvvm_ull2d_rz; // "vvm.ull2d.rz"
+ }
+ break;
+ case 'f': // 4 strings to match.
+ if (memcmp(NameR.data()+9, ".r", 2))
+ break;
+ switch (NameR[11]) {
+ default: break;
+ case 'm': // 1 string to match.
+ return Intrinsic::nvvm_ull2f_rm; // "vvm.ull2f.rm"
+ case 'n': // 1 string to match.
+ return Intrinsic::nvvm_ull2f_rn; // "vvm.ull2f.rn"
+ case 'p': // 1 string to match.
+ return Intrinsic::nvvm_ull2f_rp; // "vvm.ull2f.rp"
+ case 'z': // 1 string to match.
+ return Intrinsic::nvvm_ull2f_rz; // "vvm.ull2f.rz"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 13: // 14 strings to match.
+ if (memcmp(NameR.data()+0, "vvm.", 4))
+ break;
+ switch (NameR[4]) {
+ default: break;
+ case 'm': // 2 strings to match.
+ switch (NameR[5]) {
+ default: break;
+ case 'e': // 1 string to match.
+ if (memcmp(NameR.data()+6, "mbar.gl", 7))
+ break;
+ return Intrinsic::nvvm_membar_gl; // "vvm.membar.gl"
+ case 'u': // 1 string to match.
+ if (memcmp(NameR.data()+6, "lhi.ull", 7))
+ break;
+ return Intrinsic::nvvm_mulhi_ull; // "vvm.mulhi.ull"
+ }
+ break;
+ case 's': // 10 strings to match.
+ switch (NameR[5]) {
+ default: break;
+ case 'q': // 8 strings to match.
+ if (memcmp(NameR.data()+6, "rt.r", 4))
+ break;
+ switch (NameR[10]) {
+ default: break;
+ case 'm': // 2 strings to match.
+ if (NameR[11] != '.')
+ break;
+ switch (NameR[12]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::nvvm_sqrt_rm_d; // "vvm.sqrt.rm.d"
+ case 'f': // 1 string to match.
+ return Intrinsic::nvvm_sqrt_rm_f; // "vvm.sqrt.rm.f"
+ }
+ break;
+ case 'n': // 2 strings to match.
+ if (NameR[11] != '.')
+ break;
+ switch (NameR[12]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::nvvm_sqrt_rn_d; // "vvm.sqrt.rn.d"
+ case 'f': // 1 string to match.
+ return Intrinsic::nvvm_sqrt_rn_f; // "vvm.sqrt.rn.f"
+ }
+ break;
+ case 'p': // 2 strings to match.
+ if (NameR[11] != '.')
+ break;
+ switch (NameR[12]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::nvvm_sqrt_rp_d; // "vvm.sqrt.rp.d"
+ case 'f': // 1 string to match.
+ return Intrinsic::nvvm_sqrt_rp_f; // "vvm.sqrt.rp.f"
+ }
+ break;
+ case 'z': // 2 strings to match.
+ if (NameR[11] != '.')
+ break;
+ switch (NameR[12]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::nvvm_sqrt_rz_d; // "vvm.sqrt.rz.d"
+ case 'f': // 1 string to match.
+ return Intrinsic::nvvm_sqrt_rz_f; // "vvm.sqrt.rz.f"
+ }
+ break;
+ }
+ break;
+ case 'u': // 2 strings to match.
+ if (memcmp(NameR.data()+6, "q.", 2))
+ break;
+ switch (NameR[8]) {
+ default: break;
+ case 'd': // 1 string to match.
+ if (memcmp(NameR.data()+9, "epth", 4))
+ break;
+ return Intrinsic::nvvm_suq_depth; // "vvm.suq.depth"
+ case 'w': // 1 string to match.
+ if (memcmp(NameR.data()+9, "idth", 4))
+ break;
+ return Intrinsic::nvvm_suq_width; // "vvm.suq.width"
+ }
+ break;
+ }
+ break;
+ case 't': // 2 strings to match.
+ if (memcmp(NameR.data()+5, "xq.", 3))
+ break;
+ switch (NameR[8]) {
+ default: break;
+ case 'd': // 1 string to match.
+ if (memcmp(NameR.data()+9, "epth", 4))
+ break;
+ return Intrinsic::nvvm_txq_depth; // "vvm.txq.depth"
+ case 'w': // 1 string to match.
+ if (memcmp(NameR.data()+9, "idth", 4))
+ break;
+ return Intrinsic::nvvm_txq_width; // "vvm.txq.width"
+ }
+ break;
+ }
+ break;
+ case 14: // 22 strings to match.
+ if (memcmp(NameR.data()+0, "vvm.", 4))
+ break;
+ switch (NameR[4]) {
+ default: break;
+ case 'c': // 1 string to match.
+ if (memcmp(NameR.data()+5, "eil.ftz.f", 9))
+ break;
+ return Intrinsic::nvvm_ceil_ftz_f; // "vvm.ceil.ftz.f"
+ case 'd': // 4 strings to match.
+ if (memcmp(NameR.data()+5, "2f.r", 4))
+ break;
+ switch (NameR[9]) {
+ default: break;
+ case 'm': // 1 string to match.
+ if (memcmp(NameR.data()+10, ".ftz", 4))
+ break;
+ return Intrinsic::nvvm_d2f_rm_ftz; // "vvm.d2f.rm.ftz"
+ case 'n': // 1 string to match.
+ if (memcmp(NameR.data()+10, ".ftz", 4))
+ break;
+ return Intrinsic::nvvm_d2f_rn_ftz; // "vvm.d2f.rn.ftz"
+ case 'p': // 1 string to match.
+ if (memcmp(NameR.data()+10, ".ftz", 4))
+ break;
+ return Intrinsic::nvvm_d2f_rp_ftz; // "vvm.d2f.rp.ftz"
+ case 'z': // 1 string to match.
+ if (memcmp(NameR.data()+10, ".ftz", 4))
+ break;
+ return Intrinsic::nvvm_d2f_rz_ftz; // "vvm.d2f.rz.ftz"
+ }
+ break;
+ case 'f': // 8 strings to match.
+ switch (NameR[5]) {
+ default: break;
+ case '2': // 5 strings to match.
+ switch (NameR[6]) {
+ default: break;
+ case 'h': // 1 string to match.
+ if (memcmp(NameR.data()+7, ".rn.ftz", 7))
+ break;
+ return Intrinsic::nvvm_f2h_rn_ftz; // "vvm.f2h.rn.ftz"
+ case 'i': // 4 strings to match.
+ if (memcmp(NameR.data()+7, ".r", 2))
+ break;
+ switch (NameR[9]) {
+ default: break;
+ case 'm': // 1 string to match.
+ if (memcmp(NameR.data()+10, ".ftz", 4))
+ break;
+ return Intrinsic::nvvm_f2i_rm_ftz; // "vvm.f2i.rm.ftz"
+ case 'n': // 1 string to match.
+ if (memcmp(NameR.data()+10, ".ftz", 4))
+ break;
+ return Intrinsic::nvvm_f2i_rn_ftz; // "vvm.f2i.rn.ftz"
+ case 'p': // 1 string to match.
+ if (memcmp(NameR.data()+10, ".ftz", 4))
+ break;
+ return Intrinsic::nvvm_f2i_rp_ftz; // "vvm.f2i.rp.ftz"
+ case 'z': // 1 string to match.
+ if (memcmp(NameR.data()+10, ".ftz", 4))
+ break;
+ return Intrinsic::nvvm_f2i_rz_ftz; // "vvm.f2i.rz.ftz"
+ }
+ break;
+ }
+ break;
+ case 'a': // 1 string to match.
+ if (memcmp(NameR.data()+6, "bs.ftz.f", 8))
+ break;
+ return Intrinsic::nvvm_fabs_ftz_f; // "vvm.fabs.ftz.f"
+ case 'm': // 2 strings to match.
+ switch (NameR[6]) {
+ default: break;
+ case 'a': // 1 string to match.
+ if (memcmp(NameR.data()+7, "x.ftz.f", 7))
+ break;
+ return Intrinsic::nvvm_fmax_ftz_f; // "vvm.fmax.ftz.f"
+ case 'i': // 1 string to match.
+ if (memcmp(NameR.data()+7, "n.ftz.f", 7))
+ break;
+ return Intrinsic::nvvm_fmin_ftz_f; // "vvm.fmin.ftz.f"
+ }
+ break;
+ }
+ break;
+ case 'm': // 3 strings to match.
+ switch (NameR[5]) {
+ default: break;
+ case 'e': // 2 strings to match.
+ if (memcmp(NameR.data()+6, "mbar.", 5))
+ break;
+ switch (NameR[11]) {
+ default: break;
+ case 'c': // 1 string to match.
+ if (memcmp(NameR.data()+12, "ta", 2))
+ break;
+ return Intrinsic::nvvm_membar_cta; // "vvm.membar.cta"
+ case 's': // 1 string to match.
+ if (memcmp(NameR.data()+12, "ys", 2))
+ break;
+ return Intrinsic::nvvm_membar_sys; // "vvm.membar.sys"
+ }
+ break;
+ case 'o': // 1 string to match.
+ if (memcmp(NameR.data()+6, "ve.float", 8))
+ break;
+ return Intrinsic::nvvm_move_float; // "vvm.move.float"
+ }
+ break;
+ case 'r': // 2 strings to match.
+ if (memcmp(NameR.data()+5, "otate.b", 7))
+ break;
+ switch (NameR[12]) {
+ default: break;
+ case '3': // 1 string to match.
+ if (NameR[13] != '2')
+ break;
+ return Intrinsic::nvvm_rotate_b32; // "vvm.rotate.b32"
+ case '6': // 1 string to match.
+ if (NameR[13] != '4')
+ break;
+ return Intrinsic::nvvm_rotate_b64; // "vvm.rotate.b64"
+ }
+ break;
+ case 's': // 3 strings to match.
+ switch (NameR[5]) {
+ default: break;
+ case 'a': // 2 strings to match.
+ if (memcmp(NameR.data()+6, "turate.", 7))
+ break;
+ switch (NameR[13]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::nvvm_saturate_d; // "vvm.saturate.d"
+ case 'f': // 1 string to match.
+ return Intrinsic::nvvm_saturate_f; // "vvm.saturate.f"
+ }
+ break;
+ case 'u': // 1 string to match.
+ if (memcmp(NameR.data()+6, "q.height", 8))
+ break;
+ return Intrinsic::nvvm_suq_height; // "vvm.suq.height"
+ }
+ break;
+ case 't': // 1 string to match.
+ if (memcmp(NameR.data()+5, "xq.height", 9))
+ break;
+ return Intrinsic::nvvm_txq_height; // "vvm.txq.height"
+ }
+ break;
+ case 15: // 15 strings to match.
+ if (memcmp(NameR.data()+0, "vvm.", 4))
+ break;
+ switch (NameR[4]) {
+ default: break;
+ case 'b': // 3 strings to match.
+ switch (NameR[5]) {
+ default: break;
+ case 'a': // 1 string to match.
+ if (memcmp(NameR.data()+6, "rrier0.or", 9))
+ break;
+ return Intrinsic::nvvm_barrier0_or; // "vvm.barrier0.or"
+ case 'i': // 2 strings to match.
+ if (memcmp(NameR.data()+6, "tcast.", 6))
+ break;
+ switch (NameR[12]) {
+ default: break;
+ case 'f': // 1 string to match.
+ if (memcmp(NameR.data()+13, "2i", 2))
+ break;
+ return Intrinsic::nvvm_bitcast_f2i; // "vvm.bitcast.f2i"
+ case 'i': // 1 string to match.
+ if (memcmp(NameR.data()+13, "2f", 2))
+ break;
+ return Intrinsic::nvvm_bitcast_i2f; // "vvm.bitcast.i2f"
+ }
+ break;
+ }
+ break;
+ case 'f': // 9 strings to match.
+ switch (NameR[5]) {
+ default: break;
+ case '2': // 8 strings to match.
+ switch (NameR[6]) {
+ default: break;
+ case 'l': // 4 strings to match.
+ if (memcmp(NameR.data()+7, "l.r", 3))
+ break;
+ switch (NameR[10]) {
+ default: break;
+ case 'm': // 1 string to match.
+ if (memcmp(NameR.data()+11, ".ftz", 4))
+ break;
+ return Intrinsic::nvvm_f2ll_rm_ftz; // "vvm.f2ll.rm.ftz"
+ case 'n': // 1 string to match.
+ if (memcmp(NameR.data()+11, ".ftz", 4))
+ break;
+ return Intrinsic::nvvm_f2ll_rn_ftz; // "vvm.f2ll.rn.ftz"
+ case 'p': // 1 string to match.
+ if (memcmp(NameR.data()+11, ".ftz", 4))
+ break;
+ return Intrinsic::nvvm_f2ll_rp_ftz; // "vvm.f2ll.rp.ftz"
+ case 'z': // 1 string to match.
+ if (memcmp(NameR.data()+11, ".ftz", 4))
+ break;
+ return Intrinsic::nvvm_f2ll_rz_ftz; // "vvm.f2ll.rz.ftz"
+ }
+ break;
+ case 'u': // 4 strings to match.
+ if (memcmp(NameR.data()+7, "i.r", 3))
+ break;
+ switch (NameR[10]) {
+ default: break;
+ case 'm': // 1 string to match.
+ if (memcmp(NameR.data()+11, ".ftz", 4))
+ break;
+ return Intrinsic::nvvm_f2ui_rm_ftz; // "vvm.f2ui.rm.ftz"
+ case 'n': // 1 string to match.
+ if (memcmp(NameR.data()+11, ".ftz", 4))
+ break;
+ return Intrinsic::nvvm_f2ui_rn_ftz; // "vvm.f2ui.rn.ftz"
+ case 'p': // 1 string to match.
+ if (memcmp(NameR.data()+11, ".ftz", 4))
+ break;
+ return Intrinsic::nvvm_f2ui_rp_ftz; // "vvm.f2ui.rp.ftz"
+ case 'z': // 1 string to match.
+ if (memcmp(NameR.data()+11, ".ftz", 4))
+ break;
+ return Intrinsic::nvvm_f2ui_rz_ftz; // "vvm.f2ui.rz.ftz"
+ }
+ break;
+ }
+ break;
+ case 'l': // 1 string to match.
+ if (memcmp(NameR.data()+6, "oor.ftz.f", 9))
+ break;
+ return Intrinsic::nvvm_floor_ftz_f; // "vvm.floor.ftz.f"
+ }
+ break;
+ case 'm': // 1 string to match.
+ if (memcmp(NameR.data()+5, "ove.double", 10))
+ break;
+ return Intrinsic::nvvm_move_double; // "vvm.move.double"
+ case 'r': // 1 string to match.
+ if (memcmp(NameR.data()+5, "ound.ftz.f", 10))
+ break;
+ return Intrinsic::nvvm_round_ftz_f; // "vvm.round.ftz.f"
+ case 't': // 1 string to match.
+ if (memcmp(NameR.data()+5, "runc.ftz.f", 10))
+ break;
+ return Intrinsic::nvvm_trunc_ftz_f; // "vvm.trunc.ftz.f"
+ }
+ break;
+ case 16: // 34 strings to match.
+ if (memcmp(NameR.data()+0, "vvm.", 4))
+ break;
+ switch (NameR[4]) {
+ default: break;
+ case 'a': // 4 strings to match.
+ if (memcmp(NameR.data()+5, "dd.r", 4))
+ break;
+ switch (NameR[9]) {
+ default: break;
+ case 'm': // 1 string to match.
+ if (memcmp(NameR.data()+10, ".ftz.f", 6))
+ break;
+ return Intrinsic::nvvm_add_rm_ftz_f; // "vvm.add.rm.ftz.f"
+ case 'n': // 1 string to match.
+ if (memcmp(NameR.data()+10, ".ftz.f", 6))
+ break;
+ return Intrinsic::nvvm_add_rn_ftz_f; // "vvm.add.rn.ftz.f"
+ case 'p': // 1 string to match.
+ if (memcmp(NameR.data()+10, ".ftz.f", 6))
+ break;
+ return Intrinsic::nvvm_add_rp_ftz_f; // "vvm.add.rp.ftz.f"
+ case 'z': // 1 string to match.
+ if (memcmp(NameR.data()+10, ".ftz.f", 6))
+ break;
+ return Intrinsic::nvvm_add_rz_ftz_f; // "vvm.add.rz.ftz.f"
+ }
+ break;
+ case 'b': // 3 strings to match.
+ switch (NameR[5]) {
+ default: break;
+ case 'a': // 1 string to match.
+ if (memcmp(NameR.data()+6, "rrier0.and", 10))
+ break;
+ return Intrinsic::nvvm_barrier0_and; // "vvm.barrier0.and"
+ case 'i': // 2 strings to match.
+ if (memcmp(NameR.data()+6, "tcast.", 6))
+ break;
+ switch (NameR[12]) {
+ default: break;
+ case 'd': // 1 string to match.
+ if (memcmp(NameR.data()+13, "2ll", 3))
+ break;
+ return Intrinsic::nvvm_bitcast_d2ll; // "vvm.bitcast.d2ll"
+ case 'l': // 1 string to match.
+ if (memcmp(NameR.data()+13, "l2d", 3))
+ break;
+ return Intrinsic::nvvm_bitcast_ll2d; // "vvm.bitcast.ll2d"
+ }
+ break;
+ }
+ break;
+ case 'c': // 1 string to match.
+ if (memcmp(NameR.data()+5, "os.approx.f", 11))
+ break;
+ return Intrinsic::nvvm_cos_approx_f; // "vvm.cos.approx.f"
+ case 'd': // 5 strings to match.
+ if (memcmp(NameR.data()+5, "iv.", 3))
+ break;
+ switch (NameR[8]) {
+ default: break;
+ case 'a': // 1 string to match.
+ if (memcmp(NameR.data()+9, "pprox.f", 7))
+ break;
+ return Intrinsic::nvvm_div_approx_f; // "vvm.div.approx.f"
+ case 'r': // 4 strings to match.
+ switch (NameR[9]) {
+ default: break;
+ case 'm': // 1 string to match.
+ if (memcmp(NameR.data()+10, ".ftz.f", 6))
+ break;
+ return Intrinsic::nvvm_div_rm_ftz_f; // "vvm.div.rm.ftz.f"
+ case 'n': // 1 string to match.
+ if (memcmp(NameR.data()+10, ".ftz.f", 6))
+ break;
+ return Intrinsic::nvvm_div_rn_ftz_f; // "vvm.div.rn.ftz.f"
+ case 'p': // 1 string to match.
+ if (memcmp(NameR.data()+10, ".ftz.f", 6))
+ break;
+ return Intrinsic::nvvm_div_rp_ftz_f; // "vvm.div.rp.ftz.f"
+ case 'z': // 1 string to match.
+ if (memcmp(NameR.data()+10, ".ftz.f", 6))
+ break;
+ return Intrinsic::nvvm_div_rz_ftz_f; // "vvm.div.rz.ftz.f"
+ }
+ break;
+ }
+ break;
+ case 'e': // 2 strings to match.
+ if (memcmp(NameR.data()+5, "x2.approx.", 10))
+ break;
+ switch (NameR[15]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::nvvm_ex2_approx_d; // "vvm.ex2.approx.d"
+ case 'f': // 1 string to match.
+ return Intrinsic::nvvm_ex2_approx_f; // "vvm.ex2.approx.f"
+ }
+ break;
+ case 'f': // 8 strings to match.
+ switch (NameR[5]) {
+ default: break;
+ case '2': // 4 strings to match.
+ if (memcmp(NameR.data()+6, "ull.r", 5))
+ break;
+ switch (NameR[11]) {
+ default: break;
+ case 'm': // 1 string to match.
+ if (memcmp(NameR.data()+12, ".ftz", 4))
+ break;
+ return Intrinsic::nvvm_f2ull_rm_ftz; // "vvm.f2ull.rm.ftz"
+ case 'n': // 1 string to match.
+ if (memcmp(NameR.data()+12, ".ftz", 4))
+ break;
+ return Intrinsic::nvvm_f2ull_rn_ftz; // "vvm.f2ull.rn.ftz"
+ case 'p': // 1 string to match.
+ if (memcmp(NameR.data()+12, ".ftz", 4))
+ break;
+ return Intrinsic::nvvm_f2ull_rp_ftz; // "vvm.f2ull.rp.ftz"
+ case 'z': // 1 string to match.
+ if (memcmp(NameR.data()+12, ".ftz", 4))
+ break;
+ return Intrinsic::nvvm_f2ull_rz_ftz; // "vvm.f2ull.rz.ftz"
+ }
+ break;
+ case 'm': // 4 strings to match.
+ if (memcmp(NameR.data()+6, "a.r", 3))
+ break;
+ switch (NameR[9]) {
+ default: break;
+ case 'm': // 1 string to match.
+ if (memcmp(NameR.data()+10, ".ftz.f", 6))
+ break;
+ return Intrinsic::nvvm_fma_rm_ftz_f; // "vvm.fma.rm.ftz.f"
+ case 'n': // 1 string to match.
+ if (memcmp(NameR.data()+10, ".ftz.f", 6))
+ break;
+ return Intrinsic::nvvm_fma_rn_ftz_f; // "vvm.fma.rn.ftz.f"
+ case 'p': // 1 string to match.
+ if (memcmp(NameR.data()+10, ".ftz.f", 6))
+ break;
+ return Intrinsic::nvvm_fma_rp_ftz_f; // "vvm.fma.rp.ftz.f"
+ case 'z': // 1 string to match.
+ if (memcmp(NameR.data()+10, ".ftz.f", 6))
+ break;
+ return Intrinsic::nvvm_fma_rz_ftz_f; // "vvm.fma.rz.ftz.f"
+ }
+ break;
+ }
+ break;
+ case 'l': // 2 strings to match.
+ if (memcmp(NameR.data()+5, "g2.approx.", 10))
+ break;
+ switch (NameR[15]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::nvvm_lg2_approx_d; // "vvm.lg2.approx.d"
+ case 'f': // 1 string to match.
+ return Intrinsic::nvvm_lg2_approx_f; // "vvm.lg2.approx.f"
+ }
+ break;
+ case 'm': // 4 strings to match.
+ if (memcmp(NameR.data()+5, "ul.r", 4))
+ break;
+ switch (NameR[9]) {
+ default: break;
+ case 'm': // 1 string to match.
+ if (memcmp(NameR.data()+10, ".ftz.f", 6))
+ break;
+ return Intrinsic::nvvm_mul_rm_ftz_f; // "vvm.mul.rm.ftz.f"
+ case 'n': // 1 string to match.
+ if (memcmp(NameR.data()+10, ".ftz.f", 6))
+ break;
+ return Intrinsic::nvvm_mul_rn_ftz_f; // "vvm.mul.rn.ftz.f"
+ case 'p': // 1 string to match.
+ if (memcmp(NameR.data()+10, ".ftz.f", 6))
+ break;
+ return Intrinsic::nvvm_mul_rp_ftz_f; // "vvm.mul.rp.ftz.f"
+ case 'z': // 1 string to match.
+ if (memcmp(NameR.data()+10, ".ftz.f", 6))
+ break;
+ return Intrinsic::nvvm_mul_rz_ftz_f; // "vvm.mul.rz.ftz.f"
+ }
+ break;
+ case 'r': // 4 strings to match.
+ if (memcmp(NameR.data()+5, "cp.r", 4))
+ break;
+ switch (NameR[9]) {
+ default: break;
+ case 'm': // 1 string to match.
+ if (memcmp(NameR.data()+10, ".ftz.f", 6))
+ break;
+ return Intrinsic::nvvm_rcp_rm_ftz_f; // "vvm.rcp.rm.ftz.f"
+ case 'n': // 1 string to match.
+ if (memcmp(NameR.data()+10, ".ftz.f", 6))
+ break;
+ return Intrinsic::nvvm_rcp_rn_ftz_f; // "vvm.rcp.rn.ftz.f"
+ case 'p': // 1 string to match.
+ if (memcmp(NameR.data()+10, ".ftz.f", 6))
+ break;
+ return Intrinsic::nvvm_rcp_rp_ftz_f; // "vvm.rcp.rp.ftz.f"
+ case 'z': // 1 string to match.
+ if (memcmp(NameR.data()+10, ".ftz.f", 6))
+ break;
+ return Intrinsic::nvvm_rcp_rz_ftz_f; // "vvm.rcp.rz.ftz.f"
+ }
+ break;
+ case 's': // 1 string to match.
+ if (memcmp(NameR.data()+5, "in.approx.f", 11))
+ break;
+ return Intrinsic::nvvm_sin_approx_f; // "vvm.sin.approx.f"
+ }
+ break;
+ case 17: // 6 strings to match.
+ if (memcmp(NameR.data()+0, "vvm.", 4))
+ break;
+ switch (NameR[4]) {
+ default: break;
+ case 'b': // 1 string to match.
+ if (memcmp(NameR.data()+5, "arrier0.popc", 12))
+ break;
+ return Intrinsic::nvvm_barrier0_popc; // "vvm.barrier0.popc"
+ case 's': // 5 strings to match.
+ if (memcmp(NameR.data()+5, "qrt.", 4))
+ break;
+ switch (NameR[9]) {
+ default: break;
+ case 'a': // 1 string to match.
+ if (memcmp(NameR.data()+10, "pprox.f", 7))
+ break;
+ return Intrinsic::nvvm_sqrt_approx_f; // "vvm.sqrt.approx.f"
+ case 'r': // 4 strings to match.
+ switch (NameR[10]) {
+ default: break;
+ case 'm': // 1 string to match.
+ if (memcmp(NameR.data()+11, ".ftz.f", 6))
+ break;
+ return Intrinsic::nvvm_sqrt_rm_ftz_f; // "vvm.sqrt.rm.ftz.f"
+ case 'n': // 1 string to match.
+ if (memcmp(NameR.data()+11, ".ftz.f", 6))
+ break;
+ return Intrinsic::nvvm_sqrt_rn_ftz_f; // "vvm.sqrt.rn.ftz.f"
+ case 'p': // 1 string to match.
+ if (memcmp(NameR.data()+11, ".ftz.f", 6))
+ break;
+ return Intrinsic::nvvm_sqrt_rp_ftz_f; // "vvm.sqrt.rp.ftz.f"
+ case 'z': // 1 string to match.
+ if (memcmp(NameR.data()+11, ".ftz.f", 6))
+ break;
+ return Intrinsic::nvvm_sqrt_rz_ftz_f; // "vvm.sqrt.rz.ftz.f"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 18: // 8 strings to match.
+ if (memcmp(NameR.data()+0, "vvm.", 4))
+ break;
+ switch (NameR[4]) {
+ default: break;
+ case 'i': // 2 strings to match.
+ if (memcmp(NameR.data()+5, "sspacep.", 8))
+ break;
+ switch (NameR[13]) {
+ default: break;
+ case 'c': // 1 string to match.
+ if (memcmp(NameR.data()+14, "onst", 4))
+ break;
+ return Intrinsic::nvvm_isspacep_const; // "vvm.isspacep.const"
+ case 'l': // 1 string to match.
+ if (memcmp(NameR.data()+14, "ocal", 4))
+ break;
+ return Intrinsic::nvvm_isspacep_local; // "vvm.isspacep.local"
+ }
+ break;
+ case 'r': // 2 strings to match.
+ if (memcmp(NameR.data()+5, "sqrt.approx.", 12))
+ break;
+ switch (NameR[17]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::nvvm_rsqrt_approx_d; // "vvm.rsqrt.approx.d"
+ case 'f': // 1 string to match.
+ return Intrinsic::nvvm_rsqrt_approx_f; // "vvm.rsqrt.approx.f"
+ }
+ break;
+ case 's': // 3 strings to match.
+ switch (NameR[5]) {
+ default: break;
+ case 'a': // 1 string to match.
+ if (memcmp(NameR.data()+6, "turate.ftz.f", 12))
+ break;
+ return Intrinsic::nvvm_saturate_ftz_f; // "vvm.saturate.ftz.f"
+ case 'u': // 1 string to match.
+ if (memcmp(NameR.data()+6, "q.array.size", 12))
+ break;
+ return Intrinsic::nvvm_suq_array_size; // "vvm.suq.array.size"
+ case 'w': // 1 string to match.
+ if (memcmp(NameR.data()+6, "ap.lo.hi.b64", 12))
+ break;
+ return Intrinsic::nvvm_swap_lo_hi_b64; // "vvm.swap.lo.hi.b64"
+ }
+ break;
+ case 't': // 1 string to match.
+ if (memcmp(NameR.data()+5, "xq.array.size", 13))
+ break;
+ return Intrinsic::nvvm_txq_array_size; // "vvm.txq.array.size"
+ }
+ break;
+ case 19: // 12 strings to match.
+ if (memcmp(NameR.data()+0, "vvm.", 4))
+ break;
+ switch (NameR[4]) {
+ default: break;
+ case 'i': // 5 strings to match.
+ if (NameR[5] != 's')
+ break;
+ switch (NameR[6]) {
+ default: break;
+ case 's': // 2 strings to match.
+ if (memcmp(NameR.data()+7, "pacep.", 6))
+ break;
+ switch (NameR[13]) {
+ default: break;
+ case 'g': // 1 string to match.
+ if (memcmp(NameR.data()+14, "lobal", 5))
+ break;
+ return Intrinsic::nvvm_isspacep_global; // "vvm.isspacep.global"
+ case 's': // 1 string to match.
+ if (memcmp(NameR.data()+14, "hared", 5))
+ break;
+ return Intrinsic::nvvm_isspacep_shared; // "vvm.isspacep.shared"
+ }
+ break;
+ case 't': // 3 strings to match.
+ if (memcmp(NameR.data()+7, "ypep.", 5))
+ break;
+ switch (NameR[12]) {
+ default: break;
+ case 's': // 2 strings to match.
+ switch (NameR[13]) {
+ default: break;
+ case 'a': // 1 string to match.
+ if (memcmp(NameR.data()+14, "mpler", 5))
+ break;
+ return Intrinsic::nvvm_istypep_sampler; // "vvm.istypep.sampler"
+ case 'u': // 1 string to match.
+ if (memcmp(NameR.data()+14, "rface", 5))
+ break;
+ return Intrinsic::nvvm_istypep_surface; // "vvm.istypep.surface"
+ }
+ break;
+ case 't': // 1 string to match.
+ if (memcmp(NameR.data()+13, "exture", 6))
+ break;
+ return Intrinsic::nvvm_istypep_texture; // "vvm.istypep.texture"
+ }
+ break;
+ }
+ break;
+ case 's': // 6 strings to match.
+ if (memcmp(NameR.data()+5, "uld.", 4))
+ break;
+ switch (NameR[9]) {
+ default: break;
+ case '1': // 2 strings to match.
+ if (memcmp(NameR.data()+10, "d.i8.", 5))
+ break;
+ switch (NameR[15]) {
+ default: break;
+ case 't': // 1 string to match.
+ if (memcmp(NameR.data()+16, "rap", 3))
+ break;
+ return Intrinsic::nvvm_suld_1d_i8_trap; // "vvm.suld.1d.i8.trap"
+ case 'z': // 1 string to match.
+ if (memcmp(NameR.data()+16, "ero", 3))
+ break;
+ return Intrinsic::nvvm_suld_1d_i8_zero; // "vvm.suld.1d.i8.zero"
+ }
+ break;
+ case '2': // 2 strings to match.
+ if (memcmp(NameR.data()+10, "d.i8.", 5))
+ break;
+ switch (NameR[15]) {
+ default: break;
+ case 't': // 1 string to match.
+ if (memcmp(NameR.data()+16, "rap", 3))
+ break;
+ return Intrinsic::nvvm_suld_2d_i8_trap; // "vvm.suld.2d.i8.trap"
+ case 'z': // 1 string to match.
+ if (memcmp(NameR.data()+16, "ero", 3))
+ break;
+ return Intrinsic::nvvm_suld_2d_i8_zero; // "vvm.suld.2d.i8.zero"
+ }
+ break;
+ case '3': // 2 strings to match.
+ if (memcmp(NameR.data()+10, "d.i8.", 5))
+ break;
+ switch (NameR[15]) {
+ default: break;
+ case 't': // 1 string to match.
+ if (memcmp(NameR.data()+16, "rap", 3))
+ break;
+ return Intrinsic::nvvm_suld_3d_i8_trap; // "vvm.suld.3d.i8.trap"
+ case 'z': // 1 string to match.
+ if (memcmp(NameR.data()+16, "ero", 3))
+ break;
+ return Intrinsic::nvvm_suld_3d_i8_zero; // "vvm.suld.3d.i8.zero"
+ }
+ break;
+ }
+ break;
+ case 't': // 1 string to match.
+ if (memcmp(NameR.data()+5, "xq.num.samples", 14))
+ break;
+ return Intrinsic::nvvm_txq_num_samples; // "vvm.txq.num.samples"
+ }
+ break;
+ case 20: // 46 strings to match.
+ if (memcmp(NameR.data()+0, "vvm.", 4))
+ break;
+ switch (NameR[4]) {
+ default: break;
+ case 'c': // 1 string to match.
+ if (memcmp(NameR.data()+5, "os.approx.ftz.f", 15))
+ break;
+ return Intrinsic::nvvm_cos_approx_ftz_f; // "vvm.cos.approx.ftz.f"
+ case 'd': // 1 string to match.
+ if (memcmp(NameR.data()+5, "iv.approx.ftz.f", 15))
+ break;
+ return Intrinsic::nvvm_div_approx_ftz_f; // "vvm.div.approx.ftz.f"
+ case 'e': // 1 string to match.
+ if (memcmp(NameR.data()+5, "x2.approx.ftz.f", 15))
+ break;
+ return Intrinsic::nvvm_ex2_approx_ftz_f; // "vvm.ex2.approx.ftz.f"
+ case 'l': // 1 string to match.
+ if (memcmp(NameR.data()+5, "g2.approx.ftz.f", 15))
+ break;
+ return Intrinsic::nvvm_lg2_approx_ftz_f; // "vvm.lg2.approx.ftz.f"
+ case 'r': // 2 strings to match.
+ switch (NameR[5]) {
+ default: break;
+ case 'c': // 1 string to match.
+ if (memcmp(NameR.data()+6, "p.approx.ftz.d", 14))
+ break;
+ return Intrinsic::nvvm_rcp_approx_ftz_d; // "vvm.rcp.approx.ftz.d"
+ case 'o': // 1 string to match.
+ if (memcmp(NameR.data()+6, "tate.right.b64", 14))
+ break;
+ return Intrinsic::nvvm_rotate_right_b64; // "vvm.rotate.right.b64"
+ }
+ break;
+ case 's': // 22 strings to match.
+ switch (NameR[5]) {
+ default: break;
+ case 'i': // 1 string to match.
+ if (memcmp(NameR.data()+6, "n.approx.ftz.f", 14))
+ break;
+ return Intrinsic::nvvm_sin_approx_ftz_f; // "vvm.sin.approx.ftz.f"
+ case 'u': // 21 strings to match.
+ if (memcmp(NameR.data()+6, "ld.", 3))
+ break;
+ switch (NameR[9]) {
+ default: break;
+ case '1': // 7 strings to match.
+ if (memcmp(NameR.data()+10, "d.i", 3))
+ break;
+ switch (NameR[13]) {
+ default: break;
+ case '1': // 2 strings to match.
+ if (memcmp(NameR.data()+14, "6.", 2))
+ break;
+ switch (NameR[16]) {
+ default: break;
+ case 't': // 1 string to match.
+ if (memcmp(NameR.data()+17, "rap", 3))
+ break;
+ return Intrinsic::nvvm_suld_1d_i16_trap; // "vvm.suld.1d.i16.trap"
+ case 'z': // 1 string to match.
+ if (memcmp(NameR.data()+17, "ero", 3))
+ break;
+ return Intrinsic::nvvm_suld_1d_i16_zero; // "vvm.suld.1d.i16.zero"
+ }
+ break;
+ case '3': // 2 strings to match.
+ if (memcmp(NameR.data()+14, "2.", 2))
+ break;
+ switch (NameR[16]) {
+ default: break;
+ case 't': // 1 string to match.
+ if (memcmp(NameR.data()+17, "rap", 3))
+ break;
+ return Intrinsic::nvvm_suld_1d_i32_trap; // "vvm.suld.1d.i32.trap"
+ case 'z': // 1 string to match.
+ if (memcmp(NameR.data()+17, "ero", 3))
+ break;
+ return Intrinsic::nvvm_suld_1d_i32_zero; // "vvm.suld.1d.i32.zero"
+ }
+ break;
+ case '6': // 2 strings to match.
+ if (memcmp(NameR.data()+14, "4.", 2))
+ break;
+ switch (NameR[16]) {
+ default: break;
+ case 't': // 1 string to match.
+ if (memcmp(NameR.data()+17, "rap", 3))
+ break;
+ return Intrinsic::nvvm_suld_1d_i64_trap; // "vvm.suld.1d.i64.trap"
+ case 'z': // 1 string to match.
+ if (memcmp(NameR.data()+17, "ero", 3))
+ break;
+ return Intrinsic::nvvm_suld_1d_i64_zero; // "vvm.suld.1d.i64.zero"
+ }
+ break;
+ case '8': // 1 string to match.
+ if (memcmp(NameR.data()+14, ".clamp", 6))
+ break;
+ return Intrinsic::nvvm_suld_1d_i8_clamp; // "vvm.suld.1d.i8.clamp"
+ }
+ break;
+ case '2': // 7 strings to match.
+ if (memcmp(NameR.data()+10, "d.i", 3))
+ break;
+ switch (NameR[13]) {
+ default: break;
+ case '1': // 2 strings to match.
+ if (memcmp(NameR.data()+14, "6.", 2))
+ break;
+ switch (NameR[16]) {
+ default: break;
+ case 't': // 1 string to match.
+ if (memcmp(NameR.data()+17, "rap", 3))
+ break;
+ return Intrinsic::nvvm_suld_2d_i16_trap; // "vvm.suld.2d.i16.trap"
+ case 'z': // 1 string to match.
+ if (memcmp(NameR.data()+17, "ero", 3))
+ break;
+ return Intrinsic::nvvm_suld_2d_i16_zero; // "vvm.suld.2d.i16.zero"
+ }
+ break;
+ case '3': // 2 strings to match.
+ if (memcmp(NameR.data()+14, "2.", 2))
+ break;
+ switch (NameR[16]) {
+ default: break;
+ case 't': // 1 string to match.
+ if (memcmp(NameR.data()+17, "rap", 3))
+ break;
+ return Intrinsic::nvvm_suld_2d_i32_trap; // "vvm.suld.2d.i32.trap"
+ case 'z': // 1 string to match.
+ if (memcmp(NameR.data()+17, "ero", 3))
+ break;
+ return Intrinsic::nvvm_suld_2d_i32_zero; // "vvm.suld.2d.i32.zero"
+ }
+ break;
+ case '6': // 2 strings to match.
+ if (memcmp(NameR.data()+14, "4.", 2))
+ break;
+ switch (NameR[16]) {
+ default: break;
+ case 't': // 1 string to match.
+ if (memcmp(NameR.data()+17, "rap", 3))
+ break;
+ return Intrinsic::nvvm_suld_2d_i64_trap; // "vvm.suld.2d.i64.trap"
+ case 'z': // 1 string to match.
+ if (memcmp(NameR.data()+17, "ero", 3))
+ break;
+ return Intrinsic::nvvm_suld_2d_i64_zero; // "vvm.suld.2d.i64.zero"
+ }
+ break;
+ case '8': // 1 string to match.
+ if (memcmp(NameR.data()+14, ".clamp", 6))
+ break;
+ return Intrinsic::nvvm_suld_2d_i8_clamp; // "vvm.suld.2d.i8.clamp"
+ }
+ break;
+ case '3': // 7 strings to match.
+ if (memcmp(NameR.data()+10, "d.i", 3))
+ break;
+ switch (NameR[13]) {
+ default: break;
+ case '1': // 2 strings to match.
+ if (memcmp(NameR.data()+14, "6.", 2))
+ break;
+ switch (NameR[16]) {
+ default: break;
+ case 't': // 1 string to match.
+ if (memcmp(NameR.data()+17, "rap", 3))
+ break;
+ return Intrinsic::nvvm_suld_3d_i16_trap; // "vvm.suld.3d.i16.trap"
+ case 'z': // 1 string to match.
+ if (memcmp(NameR.data()+17, "ero", 3))
+ break;
+ return Intrinsic::nvvm_suld_3d_i16_zero; // "vvm.suld.3d.i16.zero"
+ }
+ break;
+ case '3': // 2 strings to match.
+ if (memcmp(NameR.data()+14, "2.", 2))
+ break;
+ switch (NameR[16]) {
+ default: break;
+ case 't': // 1 string to match.
+ if (memcmp(NameR.data()+17, "rap", 3))
+ break;
+ return Intrinsic::nvvm_suld_3d_i32_trap; // "vvm.suld.3d.i32.trap"
+ case 'z': // 1 string to match.
+ if (memcmp(NameR.data()+17, "ero", 3))
+ break;
+ return Intrinsic::nvvm_suld_3d_i32_zero; // "vvm.suld.3d.i32.zero"
+ }
+ break;
+ case '6': // 2 strings to match.
+ if (memcmp(NameR.data()+14, "4.", 2))
+ break;
+ switch (NameR[16]) {
+ default: break;
+ case 't': // 1 string to match.
+ if (memcmp(NameR.data()+17, "rap", 3))
+ break;
+ return Intrinsic::nvvm_suld_3d_i64_trap; // "vvm.suld.3d.i64.trap"
+ case 'z': // 1 string to match.
+ if (memcmp(NameR.data()+17, "ero", 3))
+ break;
+ return Intrinsic::nvvm_suld_3d_i64_zero; // "vvm.suld.3d.i64.zero"
+ }
+ break;
+ case '8': // 1 string to match.
+ if (memcmp(NameR.data()+14, ".clamp", 6))
+ break;
+ return Intrinsic::nvvm_suld_3d_i8_clamp; // "vvm.suld.3d.i8.clamp"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 't': // 18 strings to match.
+ if (memcmp(NameR.data()+5, "ex.", 3))
+ break;
+ switch (NameR[8]) {
+ default: break;
+ case '1': // 6 strings to match.
+ if (memcmp(NameR.data()+9, "d.v4", 4))
+ break;
+ switch (NameR[13]) {
+ default: break;
+ case 'f': // 2 strings to match.
+ if (memcmp(NameR.data()+14, "32.", 3))
+ break;
+ switch (NameR[17]) {
+ default: break;
+ case 'f': // 1 string to match.
+ if (memcmp(NameR.data()+18, "32", 2))
+ break;
+ return Intrinsic::nvvm_tex_1d_v4f32_f32; // "vvm.tex.1d.v4f32.f32"
+ case 's': // 1 string to match.
+ if (memcmp(NameR.data()+18, "32", 2))
+ break;
+ return Intrinsic::nvvm_tex_1d_v4f32_s32; // "vvm.tex.1d.v4f32.s32"
+ }
+ break;
+ case 's': // 2 strings to match.
+ if (memcmp(NameR.data()+14, "32.", 3))
+ break;
+ switch (NameR[17]) {
+ default: break;
+ case 'f': // 1 string to match.
+ if (memcmp(NameR.data()+18, "32", 2))
+ break;
+ return Intrinsic::nvvm_tex_1d_v4s32_f32; // "vvm.tex.1d.v4s32.f32"
+ case 's': // 1 string to match.
+ if (memcmp(NameR.data()+18, "32", 2))
+ break;
+ return Intrinsic::nvvm_tex_1d_v4s32_s32; // "vvm.tex.1d.v4s32.s32"
+ }
+ break;
+ case 'u': // 2 strings to match.
+ if (memcmp(NameR.data()+14, "32.", 3))
+ break;
+ switch (NameR[17]) {
+ default: break;
+ case 'f': // 1 string to match.
+ if (memcmp(NameR.data()+18, "32", 2))
+ break;
+ return Intrinsic::nvvm_tex_1d_v4u32_f32; // "vvm.tex.1d.v4u32.f32"
+ case 's': // 1 string to match.
+ if (memcmp(NameR.data()+18, "32", 2))
+ break;
+ return Intrinsic::nvvm_tex_1d_v4u32_s32; // "vvm.tex.1d.v4u32.s32"
+ }
+ break;
+ }
+ break;
+ case '2': // 6 strings to match.
+ if (memcmp(NameR.data()+9, "d.v4", 4))
+ break;
+ switch (NameR[13]) {
+ default: break;
+ case 'f': // 2 strings to match.
+ if (memcmp(NameR.data()+14, "32.", 3))
+ break;
+ switch (NameR[17]) {
+ default: break;
+ case 'f': // 1 string to match.
+ if (memcmp(NameR.data()+18, "32", 2))
+ break;
+ return Intrinsic::nvvm_tex_2d_v4f32_f32; // "vvm.tex.2d.v4f32.f32"
+ case 's': // 1 string to match.
+ if (memcmp(NameR.data()+18, "32", 2))
+ break;
+ return Intrinsic::nvvm_tex_2d_v4f32_s32; // "vvm.tex.2d.v4f32.s32"
+ }
+ break;
+ case 's': // 2 strings to match.
+ if (memcmp(NameR.data()+14, "32.", 3))
+ break;
+ switch (NameR[17]) {
+ default: break;
+ case 'f': // 1 string to match.
+ if (memcmp(NameR.data()+18, "32", 2))
+ break;
+ return Intrinsic::nvvm_tex_2d_v4s32_f32; // "vvm.tex.2d.v4s32.f32"
+ case 's': // 1 string to match.
+ if (memcmp(NameR.data()+18, "32", 2))
+ break;
+ return Intrinsic::nvvm_tex_2d_v4s32_s32; // "vvm.tex.2d.v4s32.s32"
+ }
+ break;
+ case 'u': // 2 strings to match.
+ if (memcmp(NameR.data()+14, "32.", 3))
+ break;
+ switch (NameR[17]) {
+ default: break;
+ case 'f': // 1 string to match.
+ if (memcmp(NameR.data()+18, "32", 2))
+ break;
+ return Intrinsic::nvvm_tex_2d_v4u32_f32; // "vvm.tex.2d.v4u32.f32"
+ case 's': // 1 string to match.
+ if (memcmp(NameR.data()+18, "32", 2))
+ break;
+ return Intrinsic::nvvm_tex_2d_v4u32_s32; // "vvm.tex.2d.v4u32.s32"
+ }
+ break;
+ }
+ break;
+ case '3': // 6 strings to match.
+ if (memcmp(NameR.data()+9, "d.v4", 4))
+ break;
+ switch (NameR[13]) {
+ default: break;
+ case 'f': // 2 strings to match.
+ if (memcmp(NameR.data()+14, "32.", 3))
+ break;
+ switch (NameR[17]) {
+ default: break;
+ case 'f': // 1 string to match.
+ if (memcmp(NameR.data()+18, "32", 2))
+ break;
+ return Intrinsic::nvvm_tex_3d_v4f32_f32; // "vvm.tex.3d.v4f32.f32"
+ case 's': // 1 string to match.
+ if (memcmp(NameR.data()+18, "32", 2))
+ break;
+ return Intrinsic::nvvm_tex_3d_v4f32_s32; // "vvm.tex.3d.v4f32.s32"
+ }
+ break;
+ case 's': // 2 strings to match.
+ if (memcmp(NameR.data()+14, "32.", 3))
+ break;
+ switch (NameR[17]) {
+ default: break;
+ case 'f': // 1 string to match.
+ if (memcmp(NameR.data()+18, "32", 2))
+ break;
+ return Intrinsic::nvvm_tex_3d_v4s32_f32; // "vvm.tex.3d.v4s32.f32"
+ case 's': // 1 string to match.
+ if (memcmp(NameR.data()+18, "32", 2))
+ break;
+ return Intrinsic::nvvm_tex_3d_v4s32_s32; // "vvm.tex.3d.v4s32.s32"
+ }
+ break;
+ case 'u': // 2 strings to match.
+ if (memcmp(NameR.data()+14, "32.", 3))
+ break;
+ switch (NameR[17]) {
+ default: break;
+ case 'f': // 1 string to match.
+ if (memcmp(NameR.data()+18, "32", 2))
+ break;
+ return Intrinsic::nvvm_tex_3d_v4u32_f32; // "vvm.tex.3d.v4u32.f32"
+ case 's': // 1 string to match.
+ if (memcmp(NameR.data()+18, "32", 2))
+ break;
+ return Intrinsic::nvvm_tex_3d_v4u32_s32; // "vvm.tex.3d.v4u32.s32"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 21: // 33 strings to match.
+ if (memcmp(NameR.data()+0, "vvm.", 4))
+ break;
+ switch (NameR[4]) {
+ default: break;
+ case 's': // 32 strings to match.
+ switch (NameR[5]) {
+ default: break;
+ case 'q': // 1 string to match.
+ if (memcmp(NameR.data()+6, "rt.approx.ftz.f", 15))
+ break;
+ return Intrinsic::nvvm_sqrt_approx_ftz_f; // "vvm.sqrt.approx.ftz.f"
+ case 'u': // 31 strings to match.
+ switch (NameR[6]) {
+ default: break;
+ case 'l': // 21 strings to match.
+ if (memcmp(NameR.data()+7, "d.", 2))
+ break;
+ switch (NameR[9]) {
+ default: break;
+ case '1': // 7 strings to match.
+ if (memcmp(NameR.data()+10, "d.", 2))
+ break;
+ switch (NameR[12]) {
+ default: break;
+ case 'i': // 3 strings to match.
+ switch (NameR[13]) {
+ default: break;
+ case '1': // 1 string to match.
+ if (memcmp(NameR.data()+14, "6.clamp", 7))
+ break;
+ return Intrinsic::nvvm_suld_1d_i16_clamp; // "vvm.suld.1d.i16.clamp"
+ case '3': // 1 string to match.
+ if (memcmp(NameR.data()+14, "2.clamp", 7))
+ break;
+ return Intrinsic::nvvm_suld_1d_i32_clamp; // "vvm.suld.1d.i32.clamp"
+ case '6': // 1 string to match.
+ if (memcmp(NameR.data()+14, "4.clamp", 7))
+ break;
+ return Intrinsic::nvvm_suld_1d_i64_clamp; // "vvm.suld.1d.i64.clamp"
+ }
+ break;
+ case 'v': // 4 strings to match.
+ switch (NameR[13]) {
+ default: break;
+ case '2': // 2 strings to match.
+ if (memcmp(NameR.data()+14, "i8.", 3))
+ break;
+ switch (NameR[17]) {
+ default: break;
+ case 't': // 1 string to match.
+ if (memcmp(NameR.data()+18, "rap", 3))
+ break;
+ return Intrinsic::nvvm_suld_1d_v2i8_trap; // "vvm.suld.1d.v2i8.trap"
+ case 'z': // 1 string to match.
+ if (memcmp(NameR.data()+18, "ero", 3))
+ break;
+ return Intrinsic::nvvm_suld_1d_v2i8_zero; // "vvm.suld.1d.v2i8.zero"
+ }
+ break;
+ case '4': // 2 strings to match.
+ if (memcmp(NameR.data()+14, "i8.", 3))
+ break;
+ switch (NameR[17]) {
+ default: break;
+ case 't': // 1 string to match.
+ if (memcmp(NameR.data()+18, "rap", 3))
+ break;
+ return Intrinsic::nvvm_suld_1d_v4i8_trap; // "vvm.suld.1d.v4i8.trap"
+ case 'z': // 1 string to match.
+ if (memcmp(NameR.data()+18, "ero", 3))
+ break;
+ return Intrinsic::nvvm_suld_1d_v4i8_zero; // "vvm.suld.1d.v4i8.zero"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case '2': // 7 strings to match.
+ if (memcmp(NameR.data()+10, "d.", 2))
+ break;
+ switch (NameR[12]) {
+ default: break;
+ case 'i': // 3 strings to match.
+ switch (NameR[13]) {
+ default: break;
+ case '1': // 1 string to match.
+ if (memcmp(NameR.data()+14, "6.clamp", 7))
+ break;
+ return Intrinsic::nvvm_suld_2d_i16_clamp; // "vvm.suld.2d.i16.clamp"
+ case '3': // 1 string to match.
+ if (memcmp(NameR.data()+14, "2.clamp", 7))
+ break;
+ return Intrinsic::nvvm_suld_2d_i32_clamp; // "vvm.suld.2d.i32.clamp"
+ case '6': // 1 string to match.
+ if (memcmp(NameR.data()+14, "4.clamp", 7))
+ break;
+ return Intrinsic::nvvm_suld_2d_i64_clamp; // "vvm.suld.2d.i64.clamp"
+ }
+ break;
+ case 'v': // 4 strings to match.
+ switch (NameR[13]) {
+ default: break;
+ case '2': // 2 strings to match.
+ if (memcmp(NameR.data()+14, "i8.", 3))
+ break;
+ switch (NameR[17]) {
+ default: break;
+ case 't': // 1 string to match.
+ if (memcmp(NameR.data()+18, "rap", 3))
+ break;
+ return Intrinsic::nvvm_suld_2d_v2i8_trap; // "vvm.suld.2d.v2i8.trap"
+ case 'z': // 1 string to match.
+ if (memcmp(NameR.data()+18, "ero", 3))
+ break;
+ return Intrinsic::nvvm_suld_2d_v2i8_zero; // "vvm.suld.2d.v2i8.zero"
+ }
+ break;
+ case '4': // 2 strings to match.
+ if (memcmp(NameR.data()+14, "i8.", 3))
+ break;
+ switch (NameR[17]) {
+ default: break;
+ case 't': // 1 string to match.
+ if (memcmp(NameR.data()+18, "rap", 3))
+ break;
+ return Intrinsic::nvvm_suld_2d_v4i8_trap; // "vvm.suld.2d.v4i8.trap"
+ case 'z': // 1 string to match.
+ if (memcmp(NameR.data()+18, "ero", 3))
+ break;
+ return Intrinsic::nvvm_suld_2d_v4i8_zero; // "vvm.suld.2d.v4i8.zero"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case '3': // 7 strings to match.
+ if (memcmp(NameR.data()+10, "d.", 2))
+ break;
+ switch (NameR[12]) {
+ default: break;
+ case 'i': // 3 strings to match.
+ switch (NameR[13]) {
+ default: break;
+ case '1': // 1 string to match.
+ if (memcmp(NameR.data()+14, "6.clamp", 7))
+ break;
+ return Intrinsic::nvvm_suld_3d_i16_clamp; // "vvm.suld.3d.i16.clamp"
+ case '3': // 1 string to match.
+ if (memcmp(NameR.data()+14, "2.clamp", 7))
+ break;
+ return Intrinsic::nvvm_suld_3d_i32_clamp; // "vvm.suld.3d.i32.clamp"
+ case '6': // 1 string to match.
+ if (memcmp(NameR.data()+14, "4.clamp", 7))
+ break;
+ return Intrinsic::nvvm_suld_3d_i64_clamp; // "vvm.suld.3d.i64.clamp"
+ }
+ break;
+ case 'v': // 4 strings to match.
+ switch (NameR[13]) {
+ default: break;
+ case '2': // 2 strings to match.
+ if (memcmp(NameR.data()+14, "i8.", 3))
+ break;
+ switch (NameR[17]) {
+ default: break;
+ case 't': // 1 string to match.
+ if (memcmp(NameR.data()+18, "rap", 3))
+ break;
+ return Intrinsic::nvvm_suld_3d_v2i8_trap; // "vvm.suld.3d.v2i8.trap"
+ case 'z': // 1 string to match.
+ if (memcmp(NameR.data()+18, "ero", 3))
+ break;
+ return Intrinsic::nvvm_suld_3d_v2i8_zero; // "vvm.suld.3d.v2i8.zero"
+ }
+ break;
+ case '4': // 2 strings to match.
+ if (memcmp(NameR.data()+14, "i8.", 3))
+ break;
+ switch (NameR[17]) {
+ default: break;
+ case 't': // 1 string to match.
+ if (memcmp(NameR.data()+18, "rap", 3))
+ break;
+ return Intrinsic::nvvm_suld_3d_v4i8_trap; // "vvm.suld.3d.v4i8.trap"
+ case 'z': // 1 string to match.
+ if (memcmp(NameR.data()+18, "ero", 3))
+ break;
+ return Intrinsic::nvvm_suld_3d_v4i8_zero; // "vvm.suld.3d.v4i8.zero"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 'q': // 1 string to match.
+ if (memcmp(NameR.data()+7, ".channel.order", 14))
+ break;
+ return Intrinsic::nvvm_suq_channel_order; // "vvm.suq.channel.order"
+ case 's': // 9 strings to match.
+ if (memcmp(NameR.data()+7, "t.", 2))
+ break;
+ switch (NameR[9]) {
+ default: break;
+ case 'b': // 6 strings to match.
+ if (NameR[10] != '.')
+ break;
+ switch (NameR[11]) {
+ default: break;
+ case '1': // 2 strings to match.
+ if (memcmp(NameR.data()+12, "d.i8.", 5))
+ break;
+ switch (NameR[17]) {
+ default: break;
+ case 't': // 1 string to match.
+ if (memcmp(NameR.data()+18, "rap", 3))
+ break;
+ return Intrinsic::nvvm_sust_b_1d_i8_trap; // "vvm.sust.b.1d.i8.trap"
+ case 'z': // 1 string to match.
+ if (memcmp(NameR.data()+18, "ero", 3))
+ break;
+ return Intrinsic::nvvm_sust_b_1d_i8_zero; // "vvm.sust.b.1d.i8.zero"
+ }
+ break;
+ case '2': // 2 strings to match.
+ if (memcmp(NameR.data()+12, "d.i8.", 5))
+ break;
+ switch (NameR[17]) {
+ default: break;
+ case 't': // 1 string to match.
+ if (memcmp(NameR.data()+18, "rap", 3))
+ break;
+ return Intrinsic::nvvm_sust_b_2d_i8_trap; // "vvm.sust.b.2d.i8.trap"
+ case 'z': // 1 string to match.
+ if (memcmp(NameR.data()+18, "ero", 3))
+ break;
+ return Intrinsic::nvvm_sust_b_2d_i8_zero; // "vvm.sust.b.2d.i8.zero"
+ }
+ break;
+ case '3': // 2 strings to match.
+ if (memcmp(NameR.data()+12, "d.i8.", 5))
+ break;
+ switch (NameR[17]) {
+ default: break;
+ case 't': // 1 string to match.
+ if (memcmp(NameR.data()+18, "rap", 3))
+ break;
+ return Intrinsic::nvvm_sust_b_3d_i8_trap; // "vvm.sust.b.3d.i8.trap"
+ case 'z': // 1 string to match.
+ if (memcmp(NameR.data()+18, "ero", 3))
+ break;
+ return Intrinsic::nvvm_sust_b_3d_i8_zero; // "vvm.sust.b.3d.i8.zero"
+ }
+ break;
+ }
+ break;
+ case 'p': // 3 strings to match.
+ if (NameR[10] != '.')
+ break;
+ switch (NameR[11]) {
+ default: break;
+ case '1': // 1 string to match.
+ if (memcmp(NameR.data()+12, "d.i8.trap", 9))
+ break;
+ return Intrinsic::nvvm_sust_p_1d_i8_trap; // "vvm.sust.p.1d.i8.trap"
+ case '2': // 1 string to match.
+ if (memcmp(NameR.data()+12, "d.i8.trap", 9))
+ break;
+ return Intrinsic::nvvm_sust_p_2d_i8_trap; // "vvm.sust.p.2d.i8.trap"
+ case '3': // 1 string to match.
+ if (memcmp(NameR.data()+12, "d.i8.trap", 9))
+ break;
+ return Intrinsic::nvvm_sust_p_3d_i8_trap; // "vvm.sust.p.3d.i8.trap"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 't': // 1 string to match.
+ if (memcmp(NameR.data()+5, "xq.channel.order", 16))
+ break;
+ return Intrinsic::nvvm_txq_channel_order; // "vvm.txq.channel.order"
+ }
+ break;
+ case 22: // 67 strings to match.
+ if (memcmp(NameR.data()+0, "vvm.", 4))
+ break;
+ switch (NameR[4]) {
+ default: break;
+ case 'r': // 1 string to match.
+ if (memcmp(NameR.data()+5, "sqrt.approx.ftz.f", 17))
+ break;
+ return Intrinsic::nvvm_rsqrt_approx_ftz_f; // "vvm.rsqrt.approx.ftz.f"
+ case 's': // 63 strings to match.
+ if (NameR[5] != 'u')
+ break;
+ switch (NameR[6]) {
+ default: break;
+ case 'l': // 36 strings to match.
+ if (memcmp(NameR.data()+7, "d.", 2))
+ break;
+ switch (NameR[9]) {
+ default: break;
+ case '1': // 12 strings to match.
+ if (memcmp(NameR.data()+10, "d.v", 3))
+ break;
+ switch (NameR[13]) {
+ default: break;
+ case '2': // 7 strings to match.
+ if (NameR[14] != 'i')
+ break;
+ switch (NameR[15]) {
+ default: break;
+ case '1': // 2 strings to match.
+ if (memcmp(NameR.data()+16, "6.", 2))
+ break;
+ switch (NameR[18]) {
+ default: break;
+ case 't': // 1 string to match.
+ if (memcmp(NameR.data()+19, "rap", 3))
+ break;
+ return Intrinsic::nvvm_suld_1d_v2i16_trap; // "vvm.suld.1d.v2i16.trap"
+ case 'z': // 1 string to match.
+ if (memcmp(NameR.data()+19, "ero", 3))
+ break;
+ return Intrinsic::nvvm_suld_1d_v2i16_zero; // "vvm.suld.1d.v2i16.zero"
+ }
+ break;
+ case '3': // 2 strings to match.
+ if (memcmp(NameR.data()+16, "2.", 2))
+ break;
+ switch (NameR[18]) {
+ default: break;
+ case 't': // 1 string to match.
+ if (memcmp(NameR.data()+19, "rap", 3))
+ break;
+ return Intrinsic::nvvm_suld_1d_v2i32_trap; // "vvm.suld.1d.v2i32.trap"
+ case 'z': // 1 string to match.
+ if (memcmp(NameR.data()+19, "ero", 3))
+ break;
+ return Intrinsic::nvvm_suld_1d_v2i32_zero; // "vvm.suld.1d.v2i32.zero"
+ }
+ break;
+ case '6': // 2 strings to match.
+ if (memcmp(NameR.data()+16, "4.", 2))
+ break;
+ switch (NameR[18]) {
+ default: break;
+ case 't': // 1 string to match.
+ if (memcmp(NameR.data()+19, "rap", 3))
+ break;
+ return Intrinsic::nvvm_suld_1d_v2i64_trap; // "vvm.suld.1d.v2i64.trap"
+ case 'z': // 1 string to match.
+ if (memcmp(NameR.data()+19, "ero", 3))
+ break;
+ return Intrinsic::nvvm_suld_1d_v2i64_zero; // "vvm.suld.1d.v2i64.zero"
+ }
+ break;
+ case '8': // 1 string to match.
+ if (memcmp(NameR.data()+16, ".clamp", 6))
+ break;
+ return Intrinsic::nvvm_suld_1d_v2i8_clamp; // "vvm.suld.1d.v2i8.clamp"
+ }
+ break;
+ case '4': // 5 strings to match.
+ if (NameR[14] != 'i')
+ break;
+ switch (NameR[15]) {
+ default: break;
+ case '1': // 2 strings to match.
+ if (memcmp(NameR.data()+16, "6.", 2))
+ break;
+ switch (NameR[18]) {
+ default: break;
+ case 't': // 1 string to match.
+ if (memcmp(NameR.data()+19, "rap", 3))
+ break;
+ return Intrinsic::nvvm_suld_1d_v4i16_trap; // "vvm.suld.1d.v4i16.trap"
+ case 'z': // 1 string to match.
+ if (memcmp(NameR.data()+19, "ero", 3))
+ break;
+ return Intrinsic::nvvm_suld_1d_v4i16_zero; // "vvm.suld.1d.v4i16.zero"
+ }
+ break;
+ case '3': // 2 strings to match.
+ if (memcmp(NameR.data()+16, "2.", 2))
+ break;
+ switch (NameR[18]) {
+ default: break;
+ case 't': // 1 string to match.
+ if (memcmp(NameR.data()+19, "rap", 3))
+ break;
+ return Intrinsic::nvvm_suld_1d_v4i32_trap; // "vvm.suld.1d.v4i32.trap"
+ case 'z': // 1 string to match.
+ if (memcmp(NameR.data()+19, "ero", 3))
+ break;
+ return Intrinsic::nvvm_suld_1d_v4i32_zero; // "vvm.suld.1d.v4i32.zero"
+ }
+ break;
+ case '8': // 1 string to match.
+ if (memcmp(NameR.data()+16, ".clamp", 6))
+ break;
+ return Intrinsic::nvvm_suld_1d_v4i8_clamp; // "vvm.suld.1d.v4i8.clamp"
+ }
+ break;
+ }
+ break;
+ case '2': // 12 strings to match.
+ if (memcmp(NameR.data()+10, "d.v", 3))
+ break;
+ switch (NameR[13]) {
+ default: break;
+ case '2': // 7 strings to match.
+ if (NameR[14] != 'i')
+ break;
+ switch (NameR[15]) {
+ default: break;
+ case '1': // 2 strings to match.
+ if (memcmp(NameR.data()+16, "6.", 2))
+ break;
+ switch (NameR[18]) {
+ default: break;
+ case 't': // 1 string to match.
+ if (memcmp(NameR.data()+19, "rap", 3))
+ break;
+ return Intrinsic::nvvm_suld_2d_v2i16_trap; // "vvm.suld.2d.v2i16.trap"
+ case 'z': // 1 string to match.
+ if (memcmp(NameR.data()+19, "ero", 3))
+ break;
+ return Intrinsic::nvvm_suld_2d_v2i16_zero; // "vvm.suld.2d.v2i16.zero"
+ }
+ break;
+ case '3': // 2 strings to match.
+ if (memcmp(NameR.data()+16, "2.", 2))
+ break;
+ switch (NameR[18]) {
+ default: break;
+ case 't': // 1 string to match.
+ if (memcmp(NameR.data()+19, "rap", 3))
+ break;
+ return Intrinsic::nvvm_suld_2d_v2i32_trap; // "vvm.suld.2d.v2i32.trap"
+ case 'z': // 1 string to match.
+ if (memcmp(NameR.data()+19, "ero", 3))
+ break;
+ return Intrinsic::nvvm_suld_2d_v2i32_zero; // "vvm.suld.2d.v2i32.zero"
+ }
+ break;
+ case '6': // 2 strings to match.
+ if (memcmp(NameR.data()+16, "4.", 2))
+ break;
+ switch (NameR[18]) {
+ default: break;
+ case 't': // 1 string to match.
+ if (memcmp(NameR.data()+19, "rap", 3))
+ break;
+ return Intrinsic::nvvm_suld_2d_v2i64_trap; // "vvm.suld.2d.v2i64.trap"
+ case 'z': // 1 string to match.
+ if (memcmp(NameR.data()+19, "ero", 3))
+ break;
+ return Intrinsic::nvvm_suld_2d_v2i64_zero; // "vvm.suld.2d.v2i64.zero"
+ }
+ break;
+ case '8': // 1 string to match.
+ if (memcmp(NameR.data()+16, ".clamp", 6))
+ break;
+ return Intrinsic::nvvm_suld_2d_v2i8_clamp; // "vvm.suld.2d.v2i8.clamp"
+ }
+ break;
+ case '4': // 5 strings to match.
+ if (NameR[14] != 'i')
+ break;
+ switch (NameR[15]) {
+ default: break;
+ case '1': // 2 strings to match.
+ if (memcmp(NameR.data()+16, "6.", 2))
+ break;
+ switch (NameR[18]) {
+ default: break;
+ case 't': // 1 string to match.
+ if (memcmp(NameR.data()+19, "rap", 3))
+ break;
+ return Intrinsic::nvvm_suld_2d_v4i16_trap; // "vvm.suld.2d.v4i16.trap"
+ case 'z': // 1 string to match.
+ if (memcmp(NameR.data()+19, "ero", 3))
+ break;
+ return Intrinsic::nvvm_suld_2d_v4i16_zero; // "vvm.suld.2d.v4i16.zero"
+ }
+ break;
+ case '3': // 2 strings to match.
+ if (memcmp(NameR.data()+16, "2.", 2))
+ break;
+ switch (NameR[18]) {
+ default: break;
+ case 't': // 1 string to match.
+ if (memcmp(NameR.data()+19, "rap", 3))
+ break;
+ return Intrinsic::nvvm_suld_2d_v4i32_trap; // "vvm.suld.2d.v4i32.trap"
+ case 'z': // 1 string to match.
+ if (memcmp(NameR.data()+19, "ero", 3))
+ break;
+ return Intrinsic::nvvm_suld_2d_v4i32_zero; // "vvm.suld.2d.v4i32.zero"
+ }
+ break;
+ case '8': // 1 string to match.
+ if (memcmp(NameR.data()+16, ".clamp", 6))
+ break;
+ return Intrinsic::nvvm_suld_2d_v4i8_clamp; // "vvm.suld.2d.v4i8.clamp"
+ }
+ break;
+ }
+ break;
+ case '3': // 12 strings to match.
+ if (memcmp(NameR.data()+10, "d.v", 3))
+ break;
+ switch (NameR[13]) {
+ default: break;
+ case '2': // 7 strings to match.
+ if (NameR[14] != 'i')
+ break;
+ switch (NameR[15]) {
+ default: break;
+ case '1': // 2 strings to match.
+ if (memcmp(NameR.data()+16, "6.", 2))
+ break;
+ switch (NameR[18]) {
+ default: break;
+ case 't': // 1 string to match.
+ if (memcmp(NameR.data()+19, "rap", 3))
+ break;
+ return Intrinsic::nvvm_suld_3d_v2i16_trap; // "vvm.suld.3d.v2i16.trap"
+ case 'z': // 1 string to match.
+ if (memcmp(NameR.data()+19, "ero", 3))
+ break;
+ return Intrinsic::nvvm_suld_3d_v2i16_zero; // "vvm.suld.3d.v2i16.zero"
+ }
+ break;
+ case '3': // 2 strings to match.
+ if (memcmp(NameR.data()+16, "2.", 2))
+ break;
+ switch (NameR[18]) {
+ default: break;
+ case 't': // 1 string to match.
+ if (memcmp(NameR.data()+19, "rap", 3))
+ break;
+ return Intrinsic::nvvm_suld_3d_v2i32_trap; // "vvm.suld.3d.v2i32.trap"
+ case 'z': // 1 string to match.
+ if (memcmp(NameR.data()+19, "ero", 3))
+ break;
+ return Intrinsic::nvvm_suld_3d_v2i32_zero; // "vvm.suld.3d.v2i32.zero"
+ }
+ break;
+ case '6': // 2 strings to match.
+ if (memcmp(NameR.data()+16, "4.", 2))
+ break;
+ switch (NameR[18]) {
+ default: break;
+ case 't': // 1 string to match.
+ if (memcmp(NameR.data()+19, "rap", 3))
+ break;
+ return Intrinsic::nvvm_suld_3d_v2i64_trap; // "vvm.suld.3d.v2i64.trap"
+ case 'z': // 1 string to match.
+ if (memcmp(NameR.data()+19, "ero", 3))
+ break;
+ return Intrinsic::nvvm_suld_3d_v2i64_zero; // "vvm.suld.3d.v2i64.zero"
+ }
+ break;
+ case '8': // 1 string to match.
+ if (memcmp(NameR.data()+16, ".clamp", 6))
+ break;
+ return Intrinsic::nvvm_suld_3d_v2i8_clamp; // "vvm.suld.3d.v2i8.clamp"
+ }
+ break;
+ case '4': // 5 strings to match.
+ if (NameR[14] != 'i')
+ break;
+ switch (NameR[15]) {
+ default: break;
+ case '1': // 2 strings to match.
+ if (memcmp(NameR.data()+16, "6.", 2))
+ break;
+ switch (NameR[18]) {
+ default: break;
+ case 't': // 1 string to match.
+ if (memcmp(NameR.data()+19, "rap", 3))
+ break;
+ return Intrinsic::nvvm_suld_3d_v4i16_trap; // "vvm.suld.3d.v4i16.trap"
+ case 'z': // 1 string to match.
+ if (memcmp(NameR.data()+19, "ero", 3))
+ break;
+ return Intrinsic::nvvm_suld_3d_v4i16_zero; // "vvm.suld.3d.v4i16.zero"
+ }
+ break;
+ case '3': // 2 strings to match.
+ if (memcmp(NameR.data()+16, "2.", 2))
+ break;
+ switch (NameR[18]) {
+ default: break;
+ case 't': // 1 string to match.
+ if (memcmp(NameR.data()+19, "rap", 3))
+ break;
+ return Intrinsic::nvvm_suld_3d_v4i32_trap; // "vvm.suld.3d.v4i32.trap"
+ case 'z': // 1 string to match.
+ if (memcmp(NameR.data()+19, "ero", 3))
+ break;
+ return Intrinsic::nvvm_suld_3d_v4i32_zero; // "vvm.suld.3d.v4i32.zero"
+ }
+ break;
+ case '8': // 1 string to match.
+ if (memcmp(NameR.data()+16, ".clamp", 6))
+ break;
+ return Intrinsic::nvvm_suld_3d_v4i8_clamp; // "vvm.suld.3d.v4i8.clamp"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 's': // 27 strings to match.
+ if (memcmp(NameR.data()+7, "t.", 2))
+ break;
+ switch (NameR[9]) {
+ default: break;
+ case 'b': // 21 strings to match.
+ if (NameR[10] != '.')
+ break;
+ switch (NameR[11]) {
+ default: break;
+ case '1': // 7 strings to match.
+ if (memcmp(NameR.data()+12, "d.i", 3))
+ break;
+ switch (NameR[15]) {
+ default: break;
+ case '1': // 2 strings to match.
+ if (memcmp(NameR.data()+16, "6.", 2))
+ break;
+ switch (NameR[18]) {
+ default: break;
+ case 't': // 1 string to match.
+ if (memcmp(NameR.data()+19, "rap", 3))
+ break;
+ return Intrinsic::nvvm_sust_b_1d_i16_trap; // "vvm.sust.b.1d.i16.trap"
+ case 'z': // 1 string to match.
+ if (memcmp(NameR.data()+19, "ero", 3))
+ break;
+ return Intrinsic::nvvm_sust_b_1d_i16_zero; // "vvm.sust.b.1d.i16.zero"
+ }
+ break;
+ case '3': // 2 strings to match.
+ if (memcmp(NameR.data()+16, "2.", 2))
+ break;
+ switch (NameR[18]) {
+ default: break;
+ case 't': // 1 string to match.
+ if (memcmp(NameR.data()+19, "rap", 3))
+ break;
+ return Intrinsic::nvvm_sust_b_1d_i32_trap; // "vvm.sust.b.1d.i32.trap"
+ case 'z': // 1 string to match.
+ if (memcmp(NameR.data()+19, "ero", 3))
+ break;
+ return Intrinsic::nvvm_sust_b_1d_i32_zero; // "vvm.sust.b.1d.i32.zero"
+ }
+ break;
+ case '6': // 2 strings to match.
+ if (memcmp(NameR.data()+16, "4.", 2))
+ break;
+ switch (NameR[18]) {
+ default: break;
+ case 't': // 1 string to match.
+ if (memcmp(NameR.data()+19, "rap", 3))
+ break;
+ return Intrinsic::nvvm_sust_b_1d_i64_trap; // "vvm.sust.b.1d.i64.trap"
+ case 'z': // 1 string to match.
+ if (memcmp(NameR.data()+19, "ero", 3))
+ break;
+ return Intrinsic::nvvm_sust_b_1d_i64_zero; // "vvm.sust.b.1d.i64.zero"
+ }
+ break;
+ case '8': // 1 string to match.
+ if (memcmp(NameR.data()+16, ".clamp", 6))
+ break;
+ return Intrinsic::nvvm_sust_b_1d_i8_clamp; // "vvm.sust.b.1d.i8.clamp"
+ }
+ break;
+ case '2': // 7 strings to match.
+ if (memcmp(NameR.data()+12, "d.i", 3))
+ break;
+ switch (NameR[15]) {
+ default: break;
+ case '1': // 2 strings to match.
+ if (memcmp(NameR.data()+16, "6.", 2))
+ break;
+ switch (NameR[18]) {
+ default: break;
+ case 't': // 1 string to match.
+ if (memcmp(NameR.data()+19, "rap", 3))
+ break;
+ return Intrinsic::nvvm_sust_b_2d_i16_trap; // "vvm.sust.b.2d.i16.trap"
+ case 'z': // 1 string to match.
+ if (memcmp(NameR.data()+19, "ero", 3))
+ break;
+ return Intrinsic::nvvm_sust_b_2d_i16_zero; // "vvm.sust.b.2d.i16.zero"
+ }
+ break;
+ case '3': // 2 strings to match.
+ if (memcmp(NameR.data()+16, "2.", 2))
+ break;
+ switch (NameR[18]) {
+ default: break;
+ case 't': // 1 string to match.
+ if (memcmp(NameR.data()+19, "rap", 3))
+ break;
+ return Intrinsic::nvvm_sust_b_2d_i32_trap; // "vvm.sust.b.2d.i32.trap"
+ case 'z': // 1 string to match.
+ if (memcmp(NameR.data()+19, "ero", 3))
+ break;
+ return Intrinsic::nvvm_sust_b_2d_i32_zero; // "vvm.sust.b.2d.i32.zero"
+ }
+ break;
+ case '6': // 2 strings to match.
+ if (memcmp(NameR.data()+16, "4.", 2))
+ break;
+ switch (NameR[18]) {
+ default: break;
+ case 't': // 1 string to match.
+ if (memcmp(NameR.data()+19, "rap", 3))
+ break;
+ return Intrinsic::nvvm_sust_b_2d_i64_trap; // "vvm.sust.b.2d.i64.trap"
+ case 'z': // 1 string to match.
+ if (memcmp(NameR.data()+19, "ero", 3))
+ break;
+ return Intrinsic::nvvm_sust_b_2d_i64_zero; // "vvm.sust.b.2d.i64.zero"
+ }
+ break;
+ case '8': // 1 string to match.
+ if (memcmp(NameR.data()+16, ".clamp", 6))
+ break;
+ return Intrinsic::nvvm_sust_b_2d_i8_clamp; // "vvm.sust.b.2d.i8.clamp"
+ }
+ break;
+ case '3': // 7 strings to match.
+ if (memcmp(NameR.data()+12, "d.i", 3))
+ break;
+ switch (NameR[15]) {
+ default: break;
+ case '1': // 2 strings to match.
+ if (memcmp(NameR.data()+16, "6.", 2))
+ break;
+ switch (NameR[18]) {
+ default: break;
+ case 't': // 1 string to match.
+ if (memcmp(NameR.data()+19, "rap", 3))
+ break;
+ return Intrinsic::nvvm_sust_b_3d_i16_trap; // "vvm.sust.b.3d.i16.trap"
+ case 'z': // 1 string to match.
+ if (memcmp(NameR.data()+19, "ero", 3))
+ break;
+ return Intrinsic::nvvm_sust_b_3d_i16_zero; // "vvm.sust.b.3d.i16.zero"
+ }
+ break;
+ case '3': // 2 strings to match.
+ if (memcmp(NameR.data()+16, "2.", 2))
+ break;
+ switch (NameR[18]) {
+ default: break;
+ case 't': // 1 string to match.
+ if (memcmp(NameR.data()+19, "rap", 3))
+ break;
+ return Intrinsic::nvvm_sust_b_3d_i32_trap; // "vvm.sust.b.3d.i32.trap"
+ case 'z': // 1 string to match.
+ if (memcmp(NameR.data()+19, "ero", 3))
+ break;
+ return Intrinsic::nvvm_sust_b_3d_i32_zero; // "vvm.sust.b.3d.i32.zero"
+ }
+ break;
+ case '6': // 2 strings to match.
+ if (memcmp(NameR.data()+16, "4.", 2))
+ break;
+ switch (NameR[18]) {
+ default: break;
+ case 't': // 1 string to match.
+ if (memcmp(NameR.data()+19, "rap", 3))
+ break;
+ return Intrinsic::nvvm_sust_b_3d_i64_trap; // "vvm.sust.b.3d.i64.trap"
+ case 'z': // 1 string to match.
+ if (memcmp(NameR.data()+19, "ero", 3))
+ break;
+ return Intrinsic::nvvm_sust_b_3d_i64_zero; // "vvm.sust.b.3d.i64.zero"
+ }
+ break;
+ case '8': // 1 string to match.
+ if (memcmp(NameR.data()+16, ".clamp", 6))
+ break;
+ return Intrinsic::nvvm_sust_b_3d_i8_clamp; // "vvm.sust.b.3d.i8.clamp"
+ }
+ break;
+ }
+ break;
+ case 'p': // 6 strings to match.
+ if (NameR[10] != '.')
+ break;
+ switch (NameR[11]) {
+ default: break;
+ case '1': // 2 strings to match.
+ if (memcmp(NameR.data()+12, "d.i", 3))
+ break;
+ switch (NameR[15]) {
+ default: break;
+ case '1': // 1 string to match.
+ if (memcmp(NameR.data()+16, "6.trap", 6))
+ break;
+ return Intrinsic::nvvm_sust_p_1d_i16_trap; // "vvm.sust.p.1d.i16.trap"
+ case '3': // 1 string to match.
+ if (memcmp(NameR.data()+16, "2.trap", 6))
+ break;
+ return Intrinsic::nvvm_sust_p_1d_i32_trap; // "vvm.sust.p.1d.i32.trap"
+ }
+ break;
+ case '2': // 2 strings to match.
+ if (memcmp(NameR.data()+12, "d.i", 3))
+ break;
+ switch (NameR[15]) {
+ default: break;
+ case '1': // 1 string to match.
+ if (memcmp(NameR.data()+16, "6.trap", 6))
+ break;
+ return Intrinsic::nvvm_sust_p_2d_i16_trap; // "vvm.sust.p.2d.i16.trap"
+ case '3': // 1 string to match.
+ if (memcmp(NameR.data()+16, "2.trap", 6))
+ break;
+ return Intrinsic::nvvm_sust_p_2d_i32_trap; // "vvm.sust.p.2d.i32.trap"
+ }
+ break;
+ case '3': // 2 strings to match.
+ if (memcmp(NameR.data()+12, "d.i", 3))
+ break;
+ switch (NameR[15]) {
+ default: break;
+ case '1': // 1 string to match.
+ if (memcmp(NameR.data()+16, "6.trap", 6))
+ break;
+ return Intrinsic::nvvm_sust_p_3d_i16_trap; // "vvm.sust.p.3d.i16.trap"
+ case '3': // 1 string to match.
+ if (memcmp(NameR.data()+16, "2.trap", 6))
+ break;
+ return Intrinsic::nvvm_sust_p_3d_i32_trap; // "vvm.sust.p.3d.i32.trap"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 't': // 3 strings to match.
+ if (memcmp(NameR.data()+5, "ex.cube.v4", 10))
+ break;
+ switch (NameR[15]) {
+ default: break;
+ case 'f': // 1 string to match.
+ if (memcmp(NameR.data()+16, "32.f32", 6))
+ break;
+ return Intrinsic::nvvm_tex_cube_v4f32_f32; // "vvm.tex.cube.v4f32.f32"
+ case 's': // 1 string to match.
+ if (memcmp(NameR.data()+16, "32.f32", 6))
+ break;
+ return Intrinsic::nvvm_tex_cube_v4s32_f32; // "vvm.tex.cube.v4s32.f32"
+ case 'u': // 1 string to match.
+ if (memcmp(NameR.data()+16, "32.f32", 6))
+ break;
+ return Intrinsic::nvvm_tex_cube_v4u32_f32; // "vvm.tex.cube.v4u32.f32"
+ }
+ break;
+ }
+ break;
+ case 23: // 57 strings to match.
+ if (memcmp(NameR.data()+0, "vvm.", 4))
+ break;
+ switch (NameR[4]) {
+ default: break;
+ case 'r': // 3 strings to match.
+ if (memcmp(NameR.data()+5, "ead.ptx.sreg.tid.", 17))
+ break;
+ switch (NameR[22]) {
+ default: break;
+ case 'x': // 1 string to match.
+ return Intrinsic::nvvm_read_ptx_sreg_tid_x; // "vvm.read.ptx.sreg.tid.x"
+ case 'y': // 1 string to match.
+ return Intrinsic::nvvm_read_ptx_sreg_tid_y; // "vvm.read.ptx.sreg.tid.y"
+ case 'z': // 1 string to match.
+ return Intrinsic::nvvm_read_ptx_sreg_tid_z; // "vvm.read.ptx.sreg.tid.z"
+ }
+ break;
+ case 's': // 42 strings to match.
+ if (NameR[5] != 'u')
+ break;
+ switch (NameR[6]) {
+ default: break;
+ case 'l': // 15 strings to match.
+ if (memcmp(NameR.data()+7, "d.", 2))
+ break;
+ switch (NameR[9]) {
+ default: break;
+ case '1': // 5 strings to match.
+ if (memcmp(NameR.data()+10, "d.v", 3))
+ break;
+ switch (NameR[13]) {
+ default: break;
+ case '2': // 3 strings to match.
+ if (NameR[14] != 'i')
+ break;
+ switch (NameR[15]) {
+ default: break;
+ case '1': // 1 string to match.
+ if (memcmp(NameR.data()+16, "6.clamp", 7))
+ break;
+ return Intrinsic::nvvm_suld_1d_v2i16_clamp; // "vvm.suld.1d.v2i16.clamp"
+ case '3': // 1 string to match.
+ if (memcmp(NameR.data()+16, "2.clamp", 7))
+ break;
+ return Intrinsic::nvvm_suld_1d_v2i32_clamp; // "vvm.suld.1d.v2i32.clamp"
+ case '6': // 1 string to match.
+ if (memcmp(NameR.data()+16, "4.clamp", 7))
+ break;
+ return Intrinsic::nvvm_suld_1d_v2i64_clamp; // "vvm.suld.1d.v2i64.clamp"
+ }
+ break;
+ case '4': // 2 strings to match.
+ if (NameR[14] != 'i')
+ break;
+ switch (NameR[15]) {
+ default: break;
+ case '1': // 1 string to match.
+ if (memcmp(NameR.data()+16, "6.clamp", 7))
+ break;
+ return Intrinsic::nvvm_suld_1d_v4i16_clamp; // "vvm.suld.1d.v4i16.clamp"
+ case '3': // 1 string to match.
+ if (memcmp(NameR.data()+16, "2.clamp", 7))
+ break;
+ return Intrinsic::nvvm_suld_1d_v4i32_clamp; // "vvm.suld.1d.v4i32.clamp"
+ }
+ break;
+ }
+ break;
+ case '2': // 5 strings to match.
+ if (memcmp(NameR.data()+10, "d.v", 3))
+ break;
+ switch (NameR[13]) {
+ default: break;
+ case '2': // 3 strings to match.
+ if (NameR[14] != 'i')
+ break;
+ switch (NameR[15]) {
+ default: break;
+ case '1': // 1 string to match.
+ if (memcmp(NameR.data()+16, "6.clamp", 7))
+ break;
+ return Intrinsic::nvvm_suld_2d_v2i16_clamp; // "vvm.suld.2d.v2i16.clamp"
+ case '3': // 1 string to match.
+ if (memcmp(NameR.data()+16, "2.clamp", 7))
+ break;
+ return Intrinsic::nvvm_suld_2d_v2i32_clamp; // "vvm.suld.2d.v2i32.clamp"
+ case '6': // 1 string to match.
+ if (memcmp(NameR.data()+16, "4.clamp", 7))
+ break;
+ return Intrinsic::nvvm_suld_2d_v2i64_clamp; // "vvm.suld.2d.v2i64.clamp"
+ }
+ break;
+ case '4': // 2 strings to match.
+ if (NameR[14] != 'i')
+ break;
+ switch (NameR[15]) {
+ default: break;
+ case '1': // 1 string to match.
+ if (memcmp(NameR.data()+16, "6.clamp", 7))
+ break;
+ return Intrinsic::nvvm_suld_2d_v4i16_clamp; // "vvm.suld.2d.v4i16.clamp"
+ case '3': // 1 string to match.
+ if (memcmp(NameR.data()+16, "2.clamp", 7))
+ break;
+ return Intrinsic::nvvm_suld_2d_v4i32_clamp; // "vvm.suld.2d.v4i32.clamp"
+ }
+ break;
+ }
+ break;
+ case '3': // 5 strings to match.
+ if (memcmp(NameR.data()+10, "d.v", 3))
+ break;
+ switch (NameR[13]) {
+ default: break;
+ case '2': // 3 strings to match.
+ if (NameR[14] != 'i')
+ break;
+ switch (NameR[15]) {
+ default: break;
+ case '1': // 1 string to match.
+ if (memcmp(NameR.data()+16, "6.clamp", 7))
+ break;
+ return Intrinsic::nvvm_suld_3d_v2i16_clamp; // "vvm.suld.3d.v2i16.clamp"
+ case '3': // 1 string to match.
+ if (memcmp(NameR.data()+16, "2.clamp", 7))
+ break;
+ return Intrinsic::nvvm_suld_3d_v2i32_clamp; // "vvm.suld.3d.v2i32.clamp"
+ case '6': // 1 string to match.
+ if (memcmp(NameR.data()+16, "4.clamp", 7))
+ break;
+ return Intrinsic::nvvm_suld_3d_v2i64_clamp; // "vvm.suld.3d.v2i64.clamp"
+ }
+ break;
+ case '4': // 2 strings to match.
+ if (NameR[14] != 'i')
+ break;
+ switch (NameR[15]) {
+ default: break;
+ case '1': // 1 string to match.
+ if (memcmp(NameR.data()+16, "6.clamp", 7))
+ break;
+ return Intrinsic::nvvm_suld_3d_v4i16_clamp; // "vvm.suld.3d.v4i16.clamp"
+ case '3': // 1 string to match.
+ if (memcmp(NameR.data()+16, "2.clamp", 7))
+ break;
+ return Intrinsic::nvvm_suld_3d_v4i32_clamp; // "vvm.suld.3d.v4i32.clamp"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 's': // 27 strings to match.
+ if (memcmp(NameR.data()+7, "t.", 2))
+ break;
+ switch (NameR[9]) {
+ default: break;
+ case 'b': // 21 strings to match.
+ if (NameR[10] != '.')
+ break;
+ switch (NameR[11]) {
+ default: break;
+ case '1': // 7 strings to match.
+ if (memcmp(NameR.data()+12, "d.", 2))
+ break;
+ switch (NameR[14]) {
+ default: break;
+ case 'i': // 3 strings to match.
+ switch (NameR[15]) {
+ default: break;
+ case '1': // 1 string to match.
+ if (memcmp(NameR.data()+16, "6.clamp", 7))
+ break;
+ return Intrinsic::nvvm_sust_b_1d_i16_clamp; // "vvm.sust.b.1d.i16.clamp"
+ case '3': // 1 string to match.
+ if (memcmp(NameR.data()+16, "2.clamp", 7))
+ break;
+ return Intrinsic::nvvm_sust_b_1d_i32_clamp; // "vvm.sust.b.1d.i32.clamp"
+ case '6': // 1 string to match.
+ if (memcmp(NameR.data()+16, "4.clamp", 7))
+ break;
+ return Intrinsic::nvvm_sust_b_1d_i64_clamp; // "vvm.sust.b.1d.i64.clamp"
+ }
+ break;
+ case 'v': // 4 strings to match.
+ switch (NameR[15]) {
+ default: break;
+ case '2': // 2 strings to match.
+ if (memcmp(NameR.data()+16, "i8.", 3))
+ break;
+ switch (NameR[19]) {
+ default: break;
+ case 't': // 1 string to match.
+ if (memcmp(NameR.data()+20, "rap", 3))
+ break;
+ return Intrinsic::nvvm_sust_b_1d_v2i8_trap; // "vvm.sust.b.1d.v2i8.trap"
+ case 'z': // 1 string to match.
+ if (memcmp(NameR.data()+20, "ero", 3))
+ break;
+ return Intrinsic::nvvm_sust_b_1d_v2i8_zero; // "vvm.sust.b.1d.v2i8.zero"
+ }
+ break;
+ case '4': // 2 strings to match.
+ if (memcmp(NameR.data()+16, "i8.", 3))
+ break;
+ switch (NameR[19]) {
+ default: break;
+ case 't': // 1 string to match.
+ if (memcmp(NameR.data()+20, "rap", 3))
+ break;
+ return Intrinsic::nvvm_sust_b_1d_v4i8_trap; // "vvm.sust.b.1d.v4i8.trap"
+ case 'z': // 1 string to match.
+ if (memcmp(NameR.data()+20, "ero", 3))
+ break;
+ return Intrinsic::nvvm_sust_b_1d_v4i8_zero; // "vvm.sust.b.1d.v4i8.zero"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case '2': // 7 strings to match.
+ if (memcmp(NameR.data()+12, "d.", 2))
+ break;
+ switch (NameR[14]) {
+ default: break;
+ case 'i': // 3 strings to match.
+ switch (NameR[15]) {
+ default: break;
+ case '1': // 1 string to match.
+ if (memcmp(NameR.data()+16, "6.clamp", 7))
+ break;
+ return Intrinsic::nvvm_sust_b_2d_i16_clamp; // "vvm.sust.b.2d.i16.clamp"
+ case '3': // 1 string to match.
+ if (memcmp(NameR.data()+16, "2.clamp", 7))
+ break;
+ return Intrinsic::nvvm_sust_b_2d_i32_clamp; // "vvm.sust.b.2d.i32.clamp"
+ case '6': // 1 string to match.
+ if (memcmp(NameR.data()+16, "4.clamp", 7))
+ break;
+ return Intrinsic::nvvm_sust_b_2d_i64_clamp; // "vvm.sust.b.2d.i64.clamp"
+ }
+ break;
+ case 'v': // 4 strings to match.
+ switch (NameR[15]) {
+ default: break;
+ case '2': // 2 strings to match.
+ if (memcmp(NameR.data()+16, "i8.", 3))
+ break;
+ switch (NameR[19]) {
+ default: break;
+ case 't': // 1 string to match.
+ if (memcmp(NameR.data()+20, "rap", 3))
+ break;
+ return Intrinsic::nvvm_sust_b_2d_v2i8_trap; // "vvm.sust.b.2d.v2i8.trap"
+ case 'z': // 1 string to match.
+ if (memcmp(NameR.data()+20, "ero", 3))
+ break;
+ return Intrinsic::nvvm_sust_b_2d_v2i8_zero; // "vvm.sust.b.2d.v2i8.zero"
+ }
+ break;
+ case '4': // 2 strings to match.
+ if (memcmp(NameR.data()+16, "i8.", 3))
+ break;
+ switch (NameR[19]) {
+ default: break;
+ case 't': // 1 string to match.
+ if (memcmp(NameR.data()+20, "rap", 3))
+ break;
+ return Intrinsic::nvvm_sust_b_2d_v4i8_trap; // "vvm.sust.b.2d.v4i8.trap"
+ case 'z': // 1 string to match.
+ if (memcmp(NameR.data()+20, "ero", 3))
+ break;
+ return Intrinsic::nvvm_sust_b_2d_v4i8_zero; // "vvm.sust.b.2d.v4i8.zero"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case '3': // 7 strings to match.
+ if (memcmp(NameR.data()+12, "d.", 2))
+ break;
+ switch (NameR[14]) {
+ default: break;
+ case 'i': // 3 strings to match.
+ switch (NameR[15]) {
+ default: break;
+ case '1': // 1 string to match.
+ if (memcmp(NameR.data()+16, "6.clamp", 7))
+ break;
+ return Intrinsic::nvvm_sust_b_3d_i16_clamp; // "vvm.sust.b.3d.i16.clamp"
+ case '3': // 1 string to match.
+ if (memcmp(NameR.data()+16, "2.clamp", 7))
+ break;
+ return Intrinsic::nvvm_sust_b_3d_i32_clamp; // "vvm.sust.b.3d.i32.clamp"
+ case '6': // 1 string to match.
+ if (memcmp(NameR.data()+16, "4.clamp", 7))
+ break;
+ return Intrinsic::nvvm_sust_b_3d_i64_clamp; // "vvm.sust.b.3d.i64.clamp"
+ }
+ break;
+ case 'v': // 4 strings to match.
+ switch (NameR[15]) {
+ default: break;
+ case '2': // 2 strings to match.
+ if (memcmp(NameR.data()+16, "i8.", 3))
+ break;
+ switch (NameR[19]) {
+ default: break;
+ case 't': // 1 string to match.
+ if (memcmp(NameR.data()+20, "rap", 3))
+ break;
+ return Intrinsic::nvvm_sust_b_3d_v2i8_trap; // "vvm.sust.b.3d.v2i8.trap"
+ case 'z': // 1 string to match.
+ if (memcmp(NameR.data()+20, "ero", 3))
+ break;
+ return Intrinsic::nvvm_sust_b_3d_v2i8_zero; // "vvm.sust.b.3d.v2i8.zero"
+ }
+ break;
+ case '4': // 2 strings to match.
+ if (memcmp(NameR.data()+16, "i8.", 3))
+ break;
+ switch (NameR[19]) {
+ default: break;
+ case 't': // 1 string to match.
+ if (memcmp(NameR.data()+20, "rap", 3))
+ break;
+ return Intrinsic::nvvm_sust_b_3d_v4i8_trap; // "vvm.sust.b.3d.v4i8.trap"
+ case 'z': // 1 string to match.
+ if (memcmp(NameR.data()+20, "ero", 3))
+ break;
+ return Intrinsic::nvvm_sust_b_3d_v4i8_zero; // "vvm.sust.b.3d.v4i8.zero"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 'p': // 6 strings to match.
+ if (NameR[10] != '.')
+ break;
+ switch (NameR[11]) {
+ default: break;
+ case '1': // 2 strings to match.
+ if (memcmp(NameR.data()+12, "d.v", 3))
+ break;
+ switch (NameR[15]) {
+ default: break;
+ case '2': // 1 string to match.
+ if (memcmp(NameR.data()+16, "i8.trap", 7))
+ break;
+ return Intrinsic::nvvm_sust_p_1d_v2i8_trap; // "vvm.sust.p.1d.v2i8.trap"
+ case '4': // 1 string to match.
+ if (memcmp(NameR.data()+16, "i8.trap", 7))
+ break;
+ return Intrinsic::nvvm_sust_p_1d_v4i8_trap; // "vvm.sust.p.1d.v4i8.trap"
+ }
+ break;
+ case '2': // 2 strings to match.
+ if (memcmp(NameR.data()+12, "d.v", 3))
+ break;
+ switch (NameR[15]) {
+ default: break;
+ case '2': // 1 string to match.
+ if (memcmp(NameR.data()+16, "i8.trap", 7))
+ break;
+ return Intrinsic::nvvm_sust_p_2d_v2i8_trap; // "vvm.sust.p.2d.v2i8.trap"
+ case '4': // 1 string to match.
+ if (memcmp(NameR.data()+16, "i8.trap", 7))
+ break;
+ return Intrinsic::nvvm_sust_p_2d_v4i8_trap; // "vvm.sust.p.2d.v4i8.trap"
+ }
+ break;
+ case '3': // 2 strings to match.
+ if (memcmp(NameR.data()+12, "d.v", 3))
+ break;
+ switch (NameR[15]) {
+ default: break;
+ case '2': // 1 string to match.
+ if (memcmp(NameR.data()+16, "i8.trap", 7))
+ break;
+ return Intrinsic::nvvm_sust_p_3d_v2i8_trap; // "vvm.sust.p.3d.v2i8.trap"
+ case '4': // 1 string to match.
+ if (memcmp(NameR.data()+16, "i8.trap", 7))
+ break;
+ return Intrinsic::nvvm_sust_p_3d_v4i8_trap; // "vvm.sust.p.3d.v4i8.trap"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 't': // 12 strings to match.
+ if (memcmp(NameR.data()+5, "ld4.", 4))
+ break;
+ switch (NameR[9]) {
+ default: break;
+ case 'a': // 3 strings to match.
+ if (memcmp(NameR.data()+10, ".2d.v4", 6))
+ break;
+ switch (NameR[16]) {
+ default: break;
+ case 'f': // 1 string to match.
+ if (memcmp(NameR.data()+17, "32.f32", 6))
+ break;
+ return Intrinsic::nvvm_tld4_a_2d_v4f32_f32; // "vvm.tld4.a.2d.v4f32.f32"
+ case 's': // 1 string to match.
+ if (memcmp(NameR.data()+17, "32.f32", 6))
+ break;
+ return Intrinsic::nvvm_tld4_a_2d_v4s32_f32; // "vvm.tld4.a.2d.v4s32.f32"
+ case 'u': // 1 string to match.
+ if (memcmp(NameR.data()+17, "32.f32", 6))
+ break;
+ return Intrinsic::nvvm_tld4_a_2d_v4u32_f32; // "vvm.tld4.a.2d.v4u32.f32"
+ }
+ break;
+ case 'b': // 3 strings to match.
+ if (memcmp(NameR.data()+10, ".2d.v4", 6))
+ break;
+ switch (NameR[16]) {
+ default: break;
+ case 'f': // 1 string to match.
+ if (memcmp(NameR.data()+17, "32.f32", 6))
+ break;
+ return Intrinsic::nvvm_tld4_b_2d_v4f32_f32; // "vvm.tld4.b.2d.v4f32.f32"
+ case 's': // 1 string to match.
+ if (memcmp(NameR.data()+17, "32.f32", 6))
+ break;
+ return Intrinsic::nvvm_tld4_b_2d_v4s32_f32; // "vvm.tld4.b.2d.v4s32.f32"
+ case 'u': // 1 string to match.
+ if (memcmp(NameR.data()+17, "32.f32", 6))
+ break;
+ return Intrinsic::nvvm_tld4_b_2d_v4u32_f32; // "vvm.tld4.b.2d.v4u32.f32"
+ }
+ break;
+ case 'g': // 3 strings to match.
+ if (memcmp(NameR.data()+10, ".2d.v4", 6))
+ break;
+ switch (NameR[16]) {
+ default: break;
+ case 'f': // 1 string to match.
+ if (memcmp(NameR.data()+17, "32.f32", 6))
+ break;
+ return Intrinsic::nvvm_tld4_g_2d_v4f32_f32; // "vvm.tld4.g.2d.v4f32.f32"
+ case 's': // 1 string to match.
+ if (memcmp(NameR.data()+17, "32.f32", 6))
+ break;
+ return Intrinsic::nvvm_tld4_g_2d_v4s32_f32; // "vvm.tld4.g.2d.v4s32.f32"
+ case 'u': // 1 string to match.
+ if (memcmp(NameR.data()+17, "32.f32", 6))
+ break;
+ return Intrinsic::nvvm_tld4_g_2d_v4u32_f32; // "vvm.tld4.g.2d.v4u32.f32"
+ }
+ break;
+ case 'r': // 3 strings to match.
+ if (memcmp(NameR.data()+10, ".2d.v4", 6))
+ break;
+ switch (NameR[16]) {
+ default: break;
+ case 'f': // 1 string to match.
+ if (memcmp(NameR.data()+17, "32.f32", 6))
+ break;
+ return Intrinsic::nvvm_tld4_r_2d_v4f32_f32; // "vvm.tld4.r.2d.v4f32.f32"
+ case 's': // 1 string to match.
+ if (memcmp(NameR.data()+17, "32.f32", 6))
+ break;
+ return Intrinsic::nvvm_tld4_r_2d_v4s32_f32; // "vvm.tld4.r.2d.v4s32.f32"
+ case 'u': // 1 string to match.
+ if (memcmp(NameR.data()+17, "32.f32", 6))
+ break;
+ return Intrinsic::nvvm_tld4_r_2d_v4u32_f32; // "vvm.tld4.r.2d.v4u32.f32"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 24: // 51 strings to match.
+ if (memcmp(NameR.data()+0, "vvm.", 4))
+ break;
+ switch (NameR[4]) {
+ default: break;
+ case 'r': // 3 strings to match.
+ if (memcmp(NameR.data()+5, "ead.ptx.sreg.ntid.", 18))
+ break;
+ switch (NameR[23]) {
+ default: break;
+ case 'x': // 1 string to match.
+ return Intrinsic::nvvm_read_ptx_sreg_ntid_x; // "vvm.read.ptx.sreg.ntid.x"
+ case 'y': // 1 string to match.
+ return Intrinsic::nvvm_read_ptx_sreg_ntid_y; // "vvm.read.ptx.sreg.ntid.y"
+ case 'z': // 1 string to match.
+ return Intrinsic::nvvm_read_ptx_sreg_ntid_z; // "vvm.read.ptx.sreg.ntid.z"
+ }
+ break;
+ case 's': // 48 strings to match.
+ if (memcmp(NameR.data()+5, "ust.", 4))
+ break;
+ switch (NameR[9]) {
+ default: break;
+ case 'b': // 36 strings to match.
+ if (NameR[10] != '.')
+ break;
+ switch (NameR[11]) {
+ default: break;
+ case '1': // 12 strings to match.
+ if (memcmp(NameR.data()+12, "d.v", 3))
+ break;
+ switch (NameR[15]) {
+ default: break;
+ case '2': // 7 strings to match.
+ if (NameR[16] != 'i')
+ break;
+ switch (NameR[17]) {
+ default: break;
+ case '1': // 2 strings to match.
+ if (memcmp(NameR.data()+18, "6.", 2))
+ break;
+ switch (NameR[20]) {
+ default: break;
+ case 't': // 1 string to match.
+ if (memcmp(NameR.data()+21, "rap", 3))
+ break;
+ return Intrinsic::nvvm_sust_b_1d_v2i16_trap; // "vvm.sust.b.1d.v2i16.trap"
+ case 'z': // 1 string to match.
+ if (memcmp(NameR.data()+21, "ero", 3))
+ break;
+ return Intrinsic::nvvm_sust_b_1d_v2i16_zero; // "vvm.sust.b.1d.v2i16.zero"
+ }
+ break;
+ case '3': // 2 strings to match.
+ if (memcmp(NameR.data()+18, "2.", 2))
+ break;
+ switch (NameR[20]) {
+ default: break;
+ case 't': // 1 string to match.
+ if (memcmp(NameR.data()+21, "rap", 3))
+ break;
+ return Intrinsic::nvvm_sust_b_1d_v2i32_trap; // "vvm.sust.b.1d.v2i32.trap"
+ case 'z': // 1 string to match.
+ if (memcmp(NameR.data()+21, "ero", 3))
+ break;
+ return Intrinsic::nvvm_sust_b_1d_v2i32_zero; // "vvm.sust.b.1d.v2i32.zero"
+ }
+ break;
+ case '6': // 2 strings to match.
+ if (memcmp(NameR.data()+18, "4.", 2))
+ break;
+ switch (NameR[20]) {
+ default: break;
+ case 't': // 1 string to match.
+ if (memcmp(NameR.data()+21, "rap", 3))
+ break;
+ return Intrinsic::nvvm_sust_b_1d_v2i64_trap; // "vvm.sust.b.1d.v2i64.trap"
+ case 'z': // 1 string to match.
+ if (memcmp(NameR.data()+21, "ero", 3))
+ break;
+ return Intrinsic::nvvm_sust_b_1d_v2i64_zero; // "vvm.sust.b.1d.v2i64.zero"
+ }
+ break;
+ case '8': // 1 string to match.
+ if (memcmp(NameR.data()+18, ".clamp", 6))
+ break;
+ return Intrinsic::nvvm_sust_b_1d_v2i8_clamp; // "vvm.sust.b.1d.v2i8.clamp"
+ }
+ break;
+ case '4': // 5 strings to match.
+ if (NameR[16] != 'i')
+ break;
+ switch (NameR[17]) {
+ default: break;
+ case '1': // 2 strings to match.
+ if (memcmp(NameR.data()+18, "6.", 2))
+ break;
+ switch (NameR[20]) {
+ default: break;
+ case 't': // 1 string to match.
+ if (memcmp(NameR.data()+21, "rap", 3))
+ break;
+ return Intrinsic::nvvm_sust_b_1d_v4i16_trap; // "vvm.sust.b.1d.v4i16.trap"
+ case 'z': // 1 string to match.
+ if (memcmp(NameR.data()+21, "ero", 3))
+ break;
+ return Intrinsic::nvvm_sust_b_1d_v4i16_zero; // "vvm.sust.b.1d.v4i16.zero"
+ }
+ break;
+ case '3': // 2 strings to match.
+ if (memcmp(NameR.data()+18, "2.", 2))
+ break;
+ switch (NameR[20]) {
+ default: break;
+ case 't': // 1 string to match.
+ if (memcmp(NameR.data()+21, "rap", 3))
+ break;
+ return Intrinsic::nvvm_sust_b_1d_v4i32_trap; // "vvm.sust.b.1d.v4i32.trap"
+ case 'z': // 1 string to match.
+ if (memcmp(NameR.data()+21, "ero", 3))
+ break;
+ return Intrinsic::nvvm_sust_b_1d_v4i32_zero; // "vvm.sust.b.1d.v4i32.zero"
+ }
+ break;
+ case '8': // 1 string to match.
+ if (memcmp(NameR.data()+18, ".clamp", 6))
+ break;
+ return Intrinsic::nvvm_sust_b_1d_v4i8_clamp; // "vvm.sust.b.1d.v4i8.clamp"
+ }
+ break;
+ }
+ break;
+ case '2': // 12 strings to match.
+ if (memcmp(NameR.data()+12, "d.v", 3))
+ break;
+ switch (NameR[15]) {
+ default: break;
+ case '2': // 7 strings to match.
+ if (NameR[16] != 'i')
+ break;
+ switch (NameR[17]) {
+ default: break;
+ case '1': // 2 strings to match.
+ if (memcmp(NameR.data()+18, "6.", 2))
+ break;
+ switch (NameR[20]) {
+ default: break;
+ case 't': // 1 string to match.
+ if (memcmp(NameR.data()+21, "rap", 3))
+ break;
+ return Intrinsic::nvvm_sust_b_2d_v2i16_trap; // "vvm.sust.b.2d.v2i16.trap"
+ case 'z': // 1 string to match.
+ if (memcmp(NameR.data()+21, "ero", 3))
+ break;
+ return Intrinsic::nvvm_sust_b_2d_v2i16_zero; // "vvm.sust.b.2d.v2i16.zero"
+ }
+ break;
+ case '3': // 2 strings to match.
+ if (memcmp(NameR.data()+18, "2.", 2))
+ break;
+ switch (NameR[20]) {
+ default: break;
+ case 't': // 1 string to match.
+ if (memcmp(NameR.data()+21, "rap", 3))
+ break;
+ return Intrinsic::nvvm_sust_b_2d_v2i32_trap; // "vvm.sust.b.2d.v2i32.trap"
+ case 'z': // 1 string to match.
+ if (memcmp(NameR.data()+21, "ero", 3))
+ break;
+ return Intrinsic::nvvm_sust_b_2d_v2i32_zero; // "vvm.sust.b.2d.v2i32.zero"
+ }
+ break;
+ case '6': // 2 strings to match.
+ if (memcmp(NameR.data()+18, "4.", 2))
+ break;
+ switch (NameR[20]) {
+ default: break;
+ case 't': // 1 string to match.
+ if (memcmp(NameR.data()+21, "rap", 3))
+ break;
+ return Intrinsic::nvvm_sust_b_2d_v2i64_trap; // "vvm.sust.b.2d.v2i64.trap"
+ case 'z': // 1 string to match.
+ if (memcmp(NameR.data()+21, "ero", 3))
+ break;
+ return Intrinsic::nvvm_sust_b_2d_v2i64_zero; // "vvm.sust.b.2d.v2i64.zero"
+ }
+ break;
+ case '8': // 1 string to match.
+ if (memcmp(NameR.data()+18, ".clamp", 6))
+ break;
+ return Intrinsic::nvvm_sust_b_2d_v2i8_clamp; // "vvm.sust.b.2d.v2i8.clamp"
+ }
+ break;
+ case '4': // 5 strings to match.
+ if (NameR[16] != 'i')
+ break;
+ switch (NameR[17]) {
+ default: break;
+ case '1': // 2 strings to match.
+ if (memcmp(NameR.data()+18, "6.", 2))
+ break;
+ switch (NameR[20]) {
+ default: break;
+ case 't': // 1 string to match.
+ if (memcmp(NameR.data()+21, "rap", 3))
+ break;
+ return Intrinsic::nvvm_sust_b_2d_v4i16_trap; // "vvm.sust.b.2d.v4i16.trap"
+ case 'z': // 1 string to match.
+ if (memcmp(NameR.data()+21, "ero", 3))
+ break;
+ return Intrinsic::nvvm_sust_b_2d_v4i16_zero; // "vvm.sust.b.2d.v4i16.zero"
+ }
+ break;
+ case '3': // 2 strings to match.
+ if (memcmp(NameR.data()+18, "2.", 2))
+ break;
+ switch (NameR[20]) {
+ default: break;
+ case 't': // 1 string to match.
+ if (memcmp(NameR.data()+21, "rap", 3))
+ break;
+ return Intrinsic::nvvm_sust_b_2d_v4i32_trap; // "vvm.sust.b.2d.v4i32.trap"
+ case 'z': // 1 string to match.
+ if (memcmp(NameR.data()+21, "ero", 3))
+ break;
+ return Intrinsic::nvvm_sust_b_2d_v4i32_zero; // "vvm.sust.b.2d.v4i32.zero"
+ }
+ break;
+ case '8': // 1 string to match.
+ if (memcmp(NameR.data()+18, ".clamp", 6))
+ break;
+ return Intrinsic::nvvm_sust_b_2d_v4i8_clamp; // "vvm.sust.b.2d.v4i8.clamp"
+ }
+ break;
+ }
+ break;
+ case '3': // 12 strings to match.
+ if (memcmp(NameR.data()+12, "d.v", 3))
+ break;
+ switch (NameR[15]) {
+ default: break;
+ case '2': // 7 strings to match.
+ if (NameR[16] != 'i')
+ break;
+ switch (NameR[17]) {
+ default: break;
+ case '1': // 2 strings to match.
+ if (memcmp(NameR.data()+18, "6.", 2))
+ break;
+ switch (NameR[20]) {
+ default: break;
+ case 't': // 1 string to match.
+ if (memcmp(NameR.data()+21, "rap", 3))
+ break;
+ return Intrinsic::nvvm_sust_b_3d_v2i16_trap; // "vvm.sust.b.3d.v2i16.trap"
+ case 'z': // 1 string to match.
+ if (memcmp(NameR.data()+21, "ero", 3))
+ break;
+ return Intrinsic::nvvm_sust_b_3d_v2i16_zero; // "vvm.sust.b.3d.v2i16.zero"
+ }
+ break;
+ case '3': // 2 strings to match.
+ if (memcmp(NameR.data()+18, "2.", 2))
+ break;
+ switch (NameR[20]) {
+ default: break;
+ case 't': // 1 string to match.
+ if (memcmp(NameR.data()+21, "rap", 3))
+ break;
+ return Intrinsic::nvvm_sust_b_3d_v2i32_trap; // "vvm.sust.b.3d.v2i32.trap"
+ case 'z': // 1 string to match.
+ if (memcmp(NameR.data()+21, "ero", 3))
+ break;
+ return Intrinsic::nvvm_sust_b_3d_v2i32_zero; // "vvm.sust.b.3d.v2i32.zero"
+ }
+ break;
+ case '6': // 2 strings to match.
+ if (memcmp(NameR.data()+18, "4.", 2))
+ break;
+ switch (NameR[20]) {
+ default: break;
+ case 't': // 1 string to match.
+ if (memcmp(NameR.data()+21, "rap", 3))
+ break;
+ return Intrinsic::nvvm_sust_b_3d_v2i64_trap; // "vvm.sust.b.3d.v2i64.trap"
+ case 'z': // 1 string to match.
+ if (memcmp(NameR.data()+21, "ero", 3))
+ break;
+ return Intrinsic::nvvm_sust_b_3d_v2i64_zero; // "vvm.sust.b.3d.v2i64.zero"
+ }
+ break;
+ case '8': // 1 string to match.
+ if (memcmp(NameR.data()+18, ".clamp", 6))
+ break;
+ return Intrinsic::nvvm_sust_b_3d_v2i8_clamp; // "vvm.sust.b.3d.v2i8.clamp"
+ }
+ break;
+ case '4': // 5 strings to match.
+ if (NameR[16] != 'i')
+ break;
+ switch (NameR[17]) {
+ default: break;
+ case '1': // 2 strings to match.
+ if (memcmp(NameR.data()+18, "6.", 2))
+ break;
+ switch (NameR[20]) {
+ default: break;
+ case 't': // 1 string to match.
+ if (memcmp(NameR.data()+21, "rap", 3))
+ break;
+ return Intrinsic::nvvm_sust_b_3d_v4i16_trap; // "vvm.sust.b.3d.v4i16.trap"
+ case 'z': // 1 string to match.
+ if (memcmp(NameR.data()+21, "ero", 3))
+ break;
+ return Intrinsic::nvvm_sust_b_3d_v4i16_zero; // "vvm.sust.b.3d.v4i16.zero"
+ }
+ break;
+ case '3': // 2 strings to match.
+ if (memcmp(NameR.data()+18, "2.", 2))
+ break;
+ switch (NameR[20]) {
+ default: break;
+ case 't': // 1 string to match.
+ if (memcmp(NameR.data()+21, "rap", 3))
+ break;
+ return Intrinsic::nvvm_sust_b_3d_v4i32_trap; // "vvm.sust.b.3d.v4i32.trap"
+ case 'z': // 1 string to match.
+ if (memcmp(NameR.data()+21, "ero", 3))
+ break;
+ return Intrinsic::nvvm_sust_b_3d_v4i32_zero; // "vvm.sust.b.3d.v4i32.zero"
+ }
+ break;
+ case '8': // 1 string to match.
+ if (memcmp(NameR.data()+18, ".clamp", 6))
+ break;
+ return Intrinsic::nvvm_sust_b_3d_v4i8_clamp; // "vvm.sust.b.3d.v4i8.clamp"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 'p': // 12 strings to match.
+ if (NameR[10] != '.')
+ break;
+ switch (NameR[11]) {
+ default: break;
+ case '1': // 4 strings to match.
+ if (memcmp(NameR.data()+12, "d.v", 3))
+ break;
+ switch (NameR[15]) {
+ default: break;
+ case '2': // 2 strings to match.
+ if (NameR[16] != 'i')
+ break;
+ switch (NameR[17]) {
+ default: break;
+ case '1': // 1 string to match.
+ if (memcmp(NameR.data()+18, "6.trap", 6))
+ break;
+ return Intrinsic::nvvm_sust_p_1d_v2i16_trap; // "vvm.sust.p.1d.v2i16.trap"
+ case '3': // 1 string to match.
+ if (memcmp(NameR.data()+18, "2.trap", 6))
+ break;
+ return Intrinsic::nvvm_sust_p_1d_v2i32_trap; // "vvm.sust.p.1d.v2i32.trap"
+ }
+ break;
+ case '4': // 2 strings to match.
+ if (NameR[16] != 'i')
+ break;
+ switch (NameR[17]) {
+ default: break;
+ case '1': // 1 string to match.
+ if (memcmp(NameR.data()+18, "6.trap", 6))
+ break;
+ return Intrinsic::nvvm_sust_p_1d_v4i16_trap; // "vvm.sust.p.1d.v4i16.trap"
+ case '3': // 1 string to match.
+ if (memcmp(NameR.data()+18, "2.trap", 6))
+ break;
+ return Intrinsic::nvvm_sust_p_1d_v4i32_trap; // "vvm.sust.p.1d.v4i32.trap"
+ }
+ break;
+ }
+ break;
+ case '2': // 4 strings to match.
+ if (memcmp(NameR.data()+12, "d.v", 3))
+ break;
+ switch (NameR[15]) {
+ default: break;
+ case '2': // 2 strings to match.
+ if (NameR[16] != 'i')
+ break;
+ switch (NameR[17]) {
+ default: break;
+ case '1': // 1 string to match.
+ if (memcmp(NameR.data()+18, "6.trap", 6))
+ break;
+ return Intrinsic::nvvm_sust_p_2d_v2i16_trap; // "vvm.sust.p.2d.v2i16.trap"
+ case '3': // 1 string to match.
+ if (memcmp(NameR.data()+18, "2.trap", 6))
+ break;
+ return Intrinsic::nvvm_sust_p_2d_v2i32_trap; // "vvm.sust.p.2d.v2i32.trap"
+ }
+ break;
+ case '4': // 2 strings to match.
+ if (NameR[16] != 'i')
+ break;
+ switch (NameR[17]) {
+ default: break;
+ case '1': // 1 string to match.
+ if (memcmp(NameR.data()+18, "6.trap", 6))
+ break;
+ return Intrinsic::nvvm_sust_p_2d_v4i16_trap; // "vvm.sust.p.2d.v4i16.trap"
+ case '3': // 1 string to match.
+ if (memcmp(NameR.data()+18, "2.trap", 6))
+ break;
+ return Intrinsic::nvvm_sust_p_2d_v4i32_trap; // "vvm.sust.p.2d.v4i32.trap"
+ }
+ break;
+ }
+ break;
+ case '3': // 4 strings to match.
+ if (memcmp(NameR.data()+12, "d.v", 3))
+ break;
+ switch (NameR[15]) {
+ default: break;
+ case '2': // 2 strings to match.
+ if (NameR[16] != 'i')
+ break;
+ switch (NameR[17]) {
+ default: break;
+ case '1': // 1 string to match.
+ if (memcmp(NameR.data()+18, "6.trap", 6))
+ break;
+ return Intrinsic::nvvm_sust_p_3d_v2i16_trap; // "vvm.sust.p.3d.v2i16.trap"
+ case '3': // 1 string to match.
+ if (memcmp(NameR.data()+18, "2.trap", 6))
+ break;
+ return Intrinsic::nvvm_sust_p_3d_v2i32_trap; // "vvm.sust.p.3d.v2i32.trap"
+ }
+ break;
+ case '4': // 2 strings to match.
+ if (NameR[16] != 'i')
+ break;
+ switch (NameR[17]) {
+ default: break;
+ case '1': // 1 string to match.
+ if (memcmp(NameR.data()+18, "6.trap", 6))
+ break;
+ return Intrinsic::nvvm_sust_p_3d_v4i16_trap; // "vvm.sust.p.3d.v4i16.trap"
+ case '3': // 1 string to match.
+ if (memcmp(NameR.data()+18, "2.trap", 6))
+ break;
+ return Intrinsic::nvvm_sust_p_3d_v4i32_trap; // "vvm.sust.p.3d.v4i32.trap"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 25: // 44 strings to match.
+ if (memcmp(NameR.data()+0, "vvm.", 4))
+ break;
+ switch (NameR[4]) {
+ default: break;
+ case 'r': // 13 strings to match.
+ if (memcmp(NameR.data()+5, "ead.ptx.sreg.", 13))
+ break;
+ switch (NameR[18]) {
+ default: break;
+ case 'c': // 3 strings to match.
+ if (memcmp(NameR.data()+19, "taid.", 5))
+ break;
+ switch (NameR[24]) {
+ default: break;
+ case 'x': // 1 string to match.
+ return Intrinsic::nvvm_read_ptx_sreg_ctaid_x; // "vvm.read.ptx.sreg.ctaid.x"
+ case 'y': // 1 string to match.
+ return Intrinsic::nvvm_read_ptx_sreg_ctaid_y; // "vvm.read.ptx.sreg.ctaid.y"
+ case 'z': // 1 string to match.
+ return Intrinsic::nvvm_read_ptx_sreg_ctaid_z; // "vvm.read.ptx.sreg.ctaid.z"
+ }
+ break;
+ case 'e': // 10 strings to match.
+ if (memcmp(NameR.data()+19, "nvreg", 5))
+ break;
+ switch (NameR[24]) {
+ default: break;
+ case '0': // 1 string to match.
+ return Intrinsic::nvvm_read_ptx_sreg_envreg0; // "vvm.read.ptx.sreg.envreg0"
+ case '1': // 1 string to match.
+ return Intrinsic::nvvm_read_ptx_sreg_envreg1; // "vvm.read.ptx.sreg.envreg1"
+ case '2': // 1 string to match.
+ return Intrinsic::nvvm_read_ptx_sreg_envreg2; // "vvm.read.ptx.sreg.envreg2"
+ case '3': // 1 string to match.
+ return Intrinsic::nvvm_read_ptx_sreg_envreg3; // "vvm.read.ptx.sreg.envreg3"
+ case '4': // 1 string to match.
+ return Intrinsic::nvvm_read_ptx_sreg_envreg4; // "vvm.read.ptx.sreg.envreg4"
+ case '5': // 1 string to match.
+ return Intrinsic::nvvm_read_ptx_sreg_envreg5; // "vvm.read.ptx.sreg.envreg5"
+ case '6': // 1 string to match.
+ return Intrinsic::nvvm_read_ptx_sreg_envreg6; // "vvm.read.ptx.sreg.envreg6"
+ case '7': // 1 string to match.
+ return Intrinsic::nvvm_read_ptx_sreg_envreg7; // "vvm.read.ptx.sreg.envreg7"
+ case '8': // 1 string to match.
+ return Intrinsic::nvvm_read_ptx_sreg_envreg8; // "vvm.read.ptx.sreg.envreg8"
+ case '9': // 1 string to match.
+ return Intrinsic::nvvm_read_ptx_sreg_envreg9; // "vvm.read.ptx.sreg.envreg9"
+ }
+ break;
+ }
+ break;
+ case 's': // 20 strings to match.
+ if (NameR[5] != 'u')
+ break;
+ switch (NameR[6]) {
+ default: break;
+ case 'l': // 4 strings to match.
+ if (memcmp(NameR.data()+7, "d.", 2))
+ break;
+ switch (NameR[9]) {
+ default: break;
+ case '1': // 2 strings to match.
+ if (memcmp(NameR.data()+10, "d.array.i8.", 11))
+ break;
+ switch (NameR[21]) {
+ default: break;
+ case 't': // 1 string to match.
+ if (memcmp(NameR.data()+22, "rap", 3))
+ break;
+ return Intrinsic::nvvm_suld_1d_array_i8_trap; // "vvm.suld.1d.array.i8.trap"
+ case 'z': // 1 string to match.
+ if (memcmp(NameR.data()+22, "ero", 3))
+ break;
+ return Intrinsic::nvvm_suld_1d_array_i8_zero; // "vvm.suld.1d.array.i8.zero"
+ }
+ break;
+ case '2': // 2 strings to match.
+ if (memcmp(NameR.data()+10, "d.array.i8.", 11))
+ break;
+ switch (NameR[21]) {
+ default: break;
+ case 't': // 1 string to match.
+ if (memcmp(NameR.data()+22, "rap", 3))
+ break;
+ return Intrinsic::nvvm_suld_2d_array_i8_trap; // "vvm.suld.2d.array.i8.trap"
+ case 'z': // 1 string to match.
+ if (memcmp(NameR.data()+22, "ero", 3))
+ break;
+ return Intrinsic::nvvm_suld_2d_array_i8_zero; // "vvm.suld.2d.array.i8.zero"
+ }
+ break;
+ }
+ break;
+ case 'q': // 1 string to match.
+ if (memcmp(NameR.data()+7, ".channel.data.type", 18))
+ break;
+ return Intrinsic::nvvm_suq_channel_data_type; // "vvm.suq.channel.data.type"
+ case 's': // 15 strings to match.
+ if (memcmp(NameR.data()+7, "t.b.", 4))
+ break;
+ switch (NameR[11]) {
+ default: break;
+ case '1': // 5 strings to match.
+ if (memcmp(NameR.data()+12, "d.v", 3))
+ break;
+ switch (NameR[15]) {
+ default: break;
+ case '2': // 3 strings to match.
+ if (NameR[16] != 'i')
+ break;
+ switch (NameR[17]) {
+ default: break;
+ case '1': // 1 string to match.
+ if (memcmp(NameR.data()+18, "6.clamp", 7))
+ break;
+ return Intrinsic::nvvm_sust_b_1d_v2i16_clamp; // "vvm.sust.b.1d.v2i16.clamp"
+ case '3': // 1 string to match.
+ if (memcmp(NameR.data()+18, "2.clamp", 7))
+ break;
+ return Intrinsic::nvvm_sust_b_1d_v2i32_clamp; // "vvm.sust.b.1d.v2i32.clamp"
+ case '6': // 1 string to match.
+ if (memcmp(NameR.data()+18, "4.clamp", 7))
+ break;
+ return Intrinsic::nvvm_sust_b_1d_v2i64_clamp; // "vvm.sust.b.1d.v2i64.clamp"
+ }
+ break;
+ case '4': // 2 strings to match.
+ if (NameR[16] != 'i')
+ break;
+ switch (NameR[17]) {
+ default: break;
+ case '1': // 1 string to match.
+ if (memcmp(NameR.data()+18, "6.clamp", 7))
+ break;
+ return Intrinsic::nvvm_sust_b_1d_v4i16_clamp; // "vvm.sust.b.1d.v4i16.clamp"
+ case '3': // 1 string to match.
+ if (memcmp(NameR.data()+18, "2.clamp", 7))
+ break;
+ return Intrinsic::nvvm_sust_b_1d_v4i32_clamp; // "vvm.sust.b.1d.v4i32.clamp"
+ }
+ break;
+ }
+ break;
+ case '2': // 5 strings to match.
+ if (memcmp(NameR.data()+12, "d.v", 3))
+ break;
+ switch (NameR[15]) {
+ default: break;
+ case '2': // 3 strings to match.
+ if (NameR[16] != 'i')
+ break;
+ switch (NameR[17]) {
+ default: break;
+ case '1': // 1 string to match.
+ if (memcmp(NameR.data()+18, "6.clamp", 7))
+ break;
+ return Intrinsic::nvvm_sust_b_2d_v2i16_clamp; // "vvm.sust.b.2d.v2i16.clamp"
+ case '3': // 1 string to match.
+ if (memcmp(NameR.data()+18, "2.clamp", 7))
+ break;
+ return Intrinsic::nvvm_sust_b_2d_v2i32_clamp; // "vvm.sust.b.2d.v2i32.clamp"
+ case '6': // 1 string to match.
+ if (memcmp(NameR.data()+18, "4.clamp", 7))
+ break;
+ return Intrinsic::nvvm_sust_b_2d_v2i64_clamp; // "vvm.sust.b.2d.v2i64.clamp"
+ }
+ break;
+ case '4': // 2 strings to match.
+ if (NameR[16] != 'i')
+ break;
+ switch (NameR[17]) {
+ default: break;
+ case '1': // 1 string to match.
+ if (memcmp(NameR.data()+18, "6.clamp", 7))
+ break;
+ return Intrinsic::nvvm_sust_b_2d_v4i16_clamp; // "vvm.sust.b.2d.v4i16.clamp"
+ case '3': // 1 string to match.
+ if (memcmp(NameR.data()+18, "2.clamp", 7))
+ break;
+ return Intrinsic::nvvm_sust_b_2d_v4i32_clamp; // "vvm.sust.b.2d.v4i32.clamp"
+ }
+ break;
+ }
+ break;
+ case '3': // 5 strings to match.
+ if (memcmp(NameR.data()+12, "d.v", 3))
+ break;
+ switch (NameR[15]) {
+ default: break;
+ case '2': // 3 strings to match.
+ if (NameR[16] != 'i')
+ break;
+ switch (NameR[17]) {
+ default: break;
+ case '1': // 1 string to match.
+ if (memcmp(NameR.data()+18, "6.clamp", 7))
+ break;
+ return Intrinsic::nvvm_sust_b_3d_v2i16_clamp; // "vvm.sust.b.3d.v2i16.clamp"
+ case '3': // 1 string to match.
+ if (memcmp(NameR.data()+18, "2.clamp", 7))
+ break;
+ return Intrinsic::nvvm_sust_b_3d_v2i32_clamp; // "vvm.sust.b.3d.v2i32.clamp"
+ case '6': // 1 string to match.
+ if (memcmp(NameR.data()+18, "4.clamp", 7))
+ break;
+ return Intrinsic::nvvm_sust_b_3d_v2i64_clamp; // "vvm.sust.b.3d.v2i64.clamp"
+ }
+ break;
+ case '4': // 2 strings to match.
+ if (NameR[16] != 'i')
+ break;
+ switch (NameR[17]) {
+ default: break;
+ case '1': // 1 string to match.
+ if (memcmp(NameR.data()+18, "6.clamp", 7))
+ break;
+ return Intrinsic::nvvm_sust_b_3d_v4i16_clamp; // "vvm.sust.b.3d.v4i16.clamp"
+ case '3': // 1 string to match.
+ if (memcmp(NameR.data()+18, "2.clamp", 7))
+ break;
+ return Intrinsic::nvvm_sust_b_3d_v4i32_clamp; // "vvm.sust.b.3d.v4i32.clamp"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 't': // 11 strings to match.
+ switch (NameR[5]) {
+ default: break;
+ case 'e': // 9 strings to match.
+ if (memcmp(NameR.data()+6, "x.", 2))
+ break;
+ switch (NameR[8]) {
+ default: break;
+ case '1': // 3 strings to match.
+ if (memcmp(NameR.data()+9, "d.grad.v4", 9))
+ break;
+ switch (NameR[18]) {
+ default: break;
+ case 'f': // 1 string to match.
+ if (memcmp(NameR.data()+19, "32.f32", 6))
+ break;
+ return Intrinsic::nvvm_tex_1d_grad_v4f32_f32; // "vvm.tex.1d.grad.v4f32.f32"
+ case 's': // 1 string to match.
+ if (memcmp(NameR.data()+19, "32.f32", 6))
+ break;
+ return Intrinsic::nvvm_tex_1d_grad_v4s32_f32; // "vvm.tex.1d.grad.v4s32.f32"
+ case 'u': // 1 string to match.
+ if (memcmp(NameR.data()+19, "32.f32", 6))
+ break;
+ return Intrinsic::nvvm_tex_1d_grad_v4u32_f32; // "vvm.tex.1d.grad.v4u32.f32"
+ }
+ break;
+ case '2': // 3 strings to match.
+ if (memcmp(NameR.data()+9, "d.grad.v4", 9))
+ break;
+ switch (NameR[18]) {
+ default: break;
+ case 'f': // 1 string to match.
+ if (memcmp(NameR.data()+19, "32.f32", 6))
+ break;
+ return Intrinsic::nvvm_tex_2d_grad_v4f32_f32; // "vvm.tex.2d.grad.v4f32.f32"
+ case 's': // 1 string to match.
+ if (memcmp(NameR.data()+19, "32.f32", 6))
+ break;
+ return Intrinsic::nvvm_tex_2d_grad_v4s32_f32; // "vvm.tex.2d.grad.v4s32.f32"
+ case 'u': // 1 string to match.
+ if (memcmp(NameR.data()+19, "32.f32", 6))
+ break;
+ return Intrinsic::nvvm_tex_2d_grad_v4u32_f32; // "vvm.tex.2d.grad.v4u32.f32"
+ }
+ break;
+ case '3': // 3 strings to match.
+ if (memcmp(NameR.data()+9, "d.grad.v4", 9))
+ break;
+ switch (NameR[18]) {
+ default: break;
+ case 'f': // 1 string to match.
+ if (memcmp(NameR.data()+19, "32.f32", 6))
+ break;
+ return Intrinsic::nvvm_tex_3d_grad_v4f32_f32; // "vvm.tex.3d.grad.v4f32.f32"
+ case 's': // 1 string to match.
+ if (memcmp(NameR.data()+19, "32.f32", 6))
+ break;
+ return Intrinsic::nvvm_tex_3d_grad_v4s32_f32; // "vvm.tex.3d.grad.v4s32.f32"
+ case 'u': // 1 string to match.
+ if (memcmp(NameR.data()+19, "32.f32", 6))
+ break;
+ return Intrinsic::nvvm_tex_3d_grad_v4u32_f32; // "vvm.tex.3d.grad.v4u32.f32"
+ }
+ break;
+ }
+ break;
+ case 'x': // 2 strings to match.
+ if (memcmp(NameR.data()+6, "q.", 2))
+ break;
+ switch (NameR[8]) {
+ default: break;
+ case 'c': // 1 string to match.
+ if (memcmp(NameR.data()+9, "hannel.data.type", 16))
+ break;
+ return Intrinsic::nvvm_txq_channel_data_type; // "vvm.txq.channel.data.type"
+ case 'n': // 1 string to match.
+ if (memcmp(NameR.data()+9, "um.mipmap.levels", 16))
+ break;
+ return Intrinsic::nvvm_txq_num_mipmap_levels; // "vvm.txq.num.mipmap.levels"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 26: // 61 strings to match.
+ if (memcmp(NameR.data()+0, "vvm.", 4))
+ break;
+ switch (NameR[4]) {
+ default: break;
+ case 'r': // 26 strings to match.
+ if (memcmp(NameR.data()+5, "ead.ptx.sreg.", 13))
+ break;
+ switch (NameR[18]) {
+ default: break;
+ case 'e': // 22 strings to match.
+ if (memcmp(NameR.data()+19, "nvreg", 5))
+ break;
+ switch (NameR[24]) {
+ default: break;
+ case '1': // 10 strings to match.
+ switch (NameR[25]) {
+ default: break;
+ case '0': // 1 string to match.
+ return Intrinsic::nvvm_read_ptx_sreg_envreg10; // "vvm.read.ptx.sreg.envreg10"
+ case '1': // 1 string to match.
+ return Intrinsic::nvvm_read_ptx_sreg_envreg11; // "vvm.read.ptx.sreg.envreg11"
+ case '2': // 1 string to match.
+ return Intrinsic::nvvm_read_ptx_sreg_envreg12; // "vvm.read.ptx.sreg.envreg12"
+ case '3': // 1 string to match.
+ return Intrinsic::nvvm_read_ptx_sreg_envreg13; // "vvm.read.ptx.sreg.envreg13"
+ case '4': // 1 string to match.
+ return Intrinsic::nvvm_read_ptx_sreg_envreg14; // "vvm.read.ptx.sreg.envreg14"
+ case '5': // 1 string to match.
+ return Intrinsic::nvvm_read_ptx_sreg_envreg15; // "vvm.read.ptx.sreg.envreg15"
+ case '6': // 1 string to match.
+ return Intrinsic::nvvm_read_ptx_sreg_envreg16; // "vvm.read.ptx.sreg.envreg16"
+ case '7': // 1 string to match.
+ return Intrinsic::nvvm_read_ptx_sreg_envreg17; // "vvm.read.ptx.sreg.envreg17"
+ case '8': // 1 string to match.
+ return Intrinsic::nvvm_read_ptx_sreg_envreg18; // "vvm.read.ptx.sreg.envreg18"
+ case '9': // 1 string to match.
+ return Intrinsic::nvvm_read_ptx_sreg_envreg19; // "vvm.read.ptx.sreg.envreg19"
+ }
+ break;
+ case '2': // 10 strings to match.
+ switch (NameR[25]) {
+ default: break;
+ case '0': // 1 string to match.
+ return Intrinsic::nvvm_read_ptx_sreg_envreg20; // "vvm.read.ptx.sreg.envreg20"
+ case '1': // 1 string to match.
+ return Intrinsic::nvvm_read_ptx_sreg_envreg21; // "vvm.read.ptx.sreg.envreg21"
+ case '2': // 1 string to match.
+ return Intrinsic::nvvm_read_ptx_sreg_envreg22; // "vvm.read.ptx.sreg.envreg22"
+ case '3': // 1 string to match.
+ return Intrinsic::nvvm_read_ptx_sreg_envreg23; // "vvm.read.ptx.sreg.envreg23"
+ case '4': // 1 string to match.
+ return Intrinsic::nvvm_read_ptx_sreg_envreg24; // "vvm.read.ptx.sreg.envreg24"
+ case '5': // 1 string to match.
+ return Intrinsic::nvvm_read_ptx_sreg_envreg25; // "vvm.read.ptx.sreg.envreg25"
+ case '6': // 1 string to match.
+ return Intrinsic::nvvm_read_ptx_sreg_envreg26; // "vvm.read.ptx.sreg.envreg26"
+ case '7': // 1 string to match.
+ return Intrinsic::nvvm_read_ptx_sreg_envreg27; // "vvm.read.ptx.sreg.envreg27"
+ case '8': // 1 string to match.
+ return Intrinsic::nvvm_read_ptx_sreg_envreg28; // "vvm.read.ptx.sreg.envreg28"
+ case '9': // 1 string to match.
+ return Intrinsic::nvvm_read_ptx_sreg_envreg29; // "vvm.read.ptx.sreg.envreg29"
+ }
+ break;
+ case '3': // 2 strings to match.
+ switch (NameR[25]) {
+ default: break;
+ case '0': // 1 string to match.
+ return Intrinsic::nvvm_read_ptx_sreg_envreg30; // "vvm.read.ptx.sreg.envreg30"
+ case '1': // 1 string to match.
+ return Intrinsic::nvvm_read_ptx_sreg_envreg31; // "vvm.read.ptx.sreg.envreg31"
+ }
+ break;
+ }
+ break;
+ case 'n': // 3 strings to match.
+ if (memcmp(NameR.data()+19, "ctaid.", 6))
+ break;
+ switch (NameR[25]) {
+ default: break;
+ case 'x': // 1 string to match.
+ return Intrinsic::nvvm_read_ptx_sreg_nctaid_x; // "vvm.read.ptx.sreg.nctaid.x"
+ case 'y': // 1 string to match.
+ return Intrinsic::nvvm_read_ptx_sreg_nctaid_y; // "vvm.read.ptx.sreg.nctaid.y"
+ case 'z': // 1 string to match.
+ return Intrinsic::nvvm_read_ptx_sreg_nctaid_z; // "vvm.read.ptx.sreg.nctaid.z"
+ }
+ break;
+ case 'w': // 1 string to match.
+ if (memcmp(NameR.data()+19, "arpsize", 7))
+ break;
+ return Intrinsic::nvvm_read_ptx_sreg_warpsize; // "vvm.read.ptx.sreg.warpsize"
+ }
+ break;
+ case 's': // 14 strings to match.
+ if (memcmp(NameR.data()+5, "uld.", 4))
+ break;
+ switch (NameR[9]) {
+ default: break;
+ case '1': // 7 strings to match.
+ if (memcmp(NameR.data()+10, "d.array.i", 9))
+ break;
+ switch (NameR[19]) {
+ default: break;
+ case '1': // 2 strings to match.
+ if (memcmp(NameR.data()+20, "6.", 2))
+ break;
+ switch (NameR[22]) {
+ default: break;
+ case 't': // 1 string to match.
+ if (memcmp(NameR.data()+23, "rap", 3))
+ break;
+ return Intrinsic::nvvm_suld_1d_array_i16_trap; // "vvm.suld.1d.array.i16.trap"
+ case 'z': // 1 string to match.
+ if (memcmp(NameR.data()+23, "ero", 3))
+ break;
+ return Intrinsic::nvvm_suld_1d_array_i16_zero; // "vvm.suld.1d.array.i16.zero"
+ }
+ break;
+ case '3': // 2 strings to match.
+ if (memcmp(NameR.data()+20, "2.", 2))
+ break;
+ switch (NameR[22]) {
+ default: break;
+ case 't': // 1 string to match.
+ if (memcmp(NameR.data()+23, "rap", 3))
+ break;
+ return Intrinsic::nvvm_suld_1d_array_i32_trap; // "vvm.suld.1d.array.i32.trap"
+ case 'z': // 1 string to match.
+ if (memcmp(NameR.data()+23, "ero", 3))
+ break;
+ return Intrinsic::nvvm_suld_1d_array_i32_zero; // "vvm.suld.1d.array.i32.zero"
+ }
+ break;
+ case '6': // 2 strings to match.
+ if (memcmp(NameR.data()+20, "4.", 2))
+ break;
+ switch (NameR[22]) {
+ default: break;
+ case 't': // 1 string to match.
+ if (memcmp(NameR.data()+23, "rap", 3))
+ break;
+ return Intrinsic::nvvm_suld_1d_array_i64_trap; // "vvm.suld.1d.array.i64.trap"
+ case 'z': // 1 string to match.
+ if (memcmp(NameR.data()+23, "ero", 3))
+ break;
+ return Intrinsic::nvvm_suld_1d_array_i64_zero; // "vvm.suld.1d.array.i64.zero"
+ }
+ break;
+ case '8': // 1 string to match.
+ if (memcmp(NameR.data()+20, ".clamp", 6))
+ break;
+ return Intrinsic::nvvm_suld_1d_array_i8_clamp; // "vvm.suld.1d.array.i8.clamp"
+ }
+ break;
+ case '2': // 7 strings to match.
+ if (memcmp(NameR.data()+10, "d.array.i", 9))
+ break;
+ switch (NameR[19]) {
+ default: break;
+ case '1': // 2 strings to match.
+ if (memcmp(NameR.data()+20, "6.", 2))
+ break;
+ switch (NameR[22]) {
+ default: break;
+ case 't': // 1 string to match.
+ if (memcmp(NameR.data()+23, "rap", 3))
+ break;
+ return Intrinsic::nvvm_suld_2d_array_i16_trap; // "vvm.suld.2d.array.i16.trap"
+ case 'z': // 1 string to match.
+ if (memcmp(NameR.data()+23, "ero", 3))
+ break;
+ return Intrinsic::nvvm_suld_2d_array_i16_zero; // "vvm.suld.2d.array.i16.zero"
+ }
+ break;
+ case '3': // 2 strings to match.
+ if (memcmp(NameR.data()+20, "2.", 2))
+ break;
+ switch (NameR[22]) {
+ default: break;
+ case 't': // 1 string to match.
+ if (memcmp(NameR.data()+23, "rap", 3))
+ break;
+ return Intrinsic::nvvm_suld_2d_array_i32_trap; // "vvm.suld.2d.array.i32.trap"
+ case 'z': // 1 string to match.
+ if (memcmp(NameR.data()+23, "ero", 3))
+ break;
+ return Intrinsic::nvvm_suld_2d_array_i32_zero; // "vvm.suld.2d.array.i32.zero"
+ }
+ break;
+ case '6': // 2 strings to match.
+ if (memcmp(NameR.data()+20, "4.", 2))
+ break;
+ switch (NameR[22]) {
+ default: break;
+ case 't': // 1 string to match.
+ if (memcmp(NameR.data()+23, "rap", 3))
+ break;
+ return Intrinsic::nvvm_suld_2d_array_i64_trap; // "vvm.suld.2d.array.i64.trap"
+ case 'z': // 1 string to match.
+ if (memcmp(NameR.data()+23, "ero", 3))
+ break;
+ return Intrinsic::nvvm_suld_2d_array_i64_zero; // "vvm.suld.2d.array.i64.zero"
+ }
+ break;
+ case '8': // 1 string to match.
+ if (memcmp(NameR.data()+20, ".clamp", 6))
+ break;
+ return Intrinsic::nvvm_suld_2d_array_i8_clamp; // "vvm.suld.2d.array.i8.clamp"
+ }
+ break;
+ }
+ break;
+ case 't': // 21 strings to match.
+ if (memcmp(NameR.data()+5, "ex.", 3))
+ break;
+ switch (NameR[8]) {
+ default: break;
+ case '1': // 9 strings to match.
+ if (memcmp(NameR.data()+9, "d.", 2))
+ break;
+ switch (NameR[11]) {
+ default: break;
+ case 'a': // 6 strings to match.
+ if (memcmp(NameR.data()+12, "rray.v4", 7))
+ break;
+ switch (NameR[19]) {
+ default: break;
+ case 'f': // 2 strings to match.
+ if (memcmp(NameR.data()+20, "32.", 3))
+ break;
+ switch (NameR[23]) {
+ default: break;
+ case 'f': // 1 string to match.
+ if (memcmp(NameR.data()+24, "32", 2))
+ break;
+ return Intrinsic::nvvm_tex_1d_array_v4f32_f32; // "vvm.tex.1d.array.v4f32.f32"
+ case 's': // 1 string to match.
+ if (memcmp(NameR.data()+24, "32", 2))
+ break;
+ return Intrinsic::nvvm_tex_1d_array_v4f32_s32; // "vvm.tex.1d.array.v4f32.s32"
+ }
+ break;
+ case 's': // 2 strings to match.
+ if (memcmp(NameR.data()+20, "32.", 3))
+ break;
+ switch (NameR[23]) {
+ default: break;
+ case 'f': // 1 string to match.
+ if (memcmp(NameR.data()+24, "32", 2))
+ break;
+ return Intrinsic::nvvm_tex_1d_array_v4s32_f32; // "vvm.tex.1d.array.v4s32.f32"
+ case 's': // 1 string to match.
+ if (memcmp(NameR.data()+24, "32", 2))
+ break;
+ return Intrinsic::nvvm_tex_1d_array_v4s32_s32; // "vvm.tex.1d.array.v4s32.s32"
+ }
+ break;
+ case 'u': // 2 strings to match.
+ if (memcmp(NameR.data()+20, "32.", 3))
+ break;
+ switch (NameR[23]) {
+ default: break;
+ case 'f': // 1 string to match.
+ if (memcmp(NameR.data()+24, "32", 2))
+ break;
+ return Intrinsic::nvvm_tex_1d_array_v4u32_f32; // "vvm.tex.1d.array.v4u32.f32"
+ case 's': // 1 string to match.
+ if (memcmp(NameR.data()+24, "32", 2))
+ break;
+ return Intrinsic::nvvm_tex_1d_array_v4u32_s32; // "vvm.tex.1d.array.v4u32.s32"
+ }
+ break;
+ }
+ break;
+ case 'l': // 3 strings to match.
+ if (memcmp(NameR.data()+12, "evel.v4", 7))
+ break;
+ switch (NameR[19]) {
+ default: break;
+ case 'f': // 1 string to match.
+ if (memcmp(NameR.data()+20, "32.f32", 6))
+ break;
+ return Intrinsic::nvvm_tex_1d_level_v4f32_f32; // "vvm.tex.1d.level.v4f32.f32"
+ case 's': // 1 string to match.
+ if (memcmp(NameR.data()+20, "32.f32", 6))
+ break;
+ return Intrinsic::nvvm_tex_1d_level_v4s32_f32; // "vvm.tex.1d.level.v4s32.f32"
+ case 'u': // 1 string to match.
+ if (memcmp(NameR.data()+20, "32.f32", 6))
+ break;
+ return Intrinsic::nvvm_tex_1d_level_v4u32_f32; // "vvm.tex.1d.level.v4u32.f32"
+ }
+ break;
+ }
+ break;
+ case '2': // 9 strings to match.
+ if (memcmp(NameR.data()+9, "d.", 2))
+ break;
+ switch (NameR[11]) {
+ default: break;
+ case 'a': // 6 strings to match.
+ if (memcmp(NameR.data()+12, "rray.v4", 7))
+ break;
+ switch (NameR[19]) {
+ default: break;
+ case 'f': // 2 strings to match.
+ if (memcmp(NameR.data()+20, "32.", 3))
+ break;
+ switch (NameR[23]) {
+ default: break;
+ case 'f': // 1 string to match.
+ if (memcmp(NameR.data()+24, "32", 2))
+ break;
+ return Intrinsic::nvvm_tex_2d_array_v4f32_f32; // "vvm.tex.2d.array.v4f32.f32"
+ case 's': // 1 string to match.
+ if (memcmp(NameR.data()+24, "32", 2))
+ break;
+ return Intrinsic::nvvm_tex_2d_array_v4f32_s32; // "vvm.tex.2d.array.v4f32.s32"
+ }
+ break;
+ case 's': // 2 strings to match.
+ if (memcmp(NameR.data()+20, "32.", 3))
+ break;
+ switch (NameR[23]) {
+ default: break;
+ case 'f': // 1 string to match.
+ if (memcmp(NameR.data()+24, "32", 2))
+ break;
+ return Intrinsic::nvvm_tex_2d_array_v4s32_f32; // "vvm.tex.2d.array.v4s32.f32"
+ case 's': // 1 string to match.
+ if (memcmp(NameR.data()+24, "32", 2))
+ break;
+ return Intrinsic::nvvm_tex_2d_array_v4s32_s32; // "vvm.tex.2d.array.v4s32.s32"
+ }
+ break;
+ case 'u': // 2 strings to match.
+ if (memcmp(NameR.data()+20, "32.", 3))
+ break;
+ switch (NameR[23]) {
+ default: break;
+ case 'f': // 1 string to match.
+ if (memcmp(NameR.data()+24, "32", 2))
+ break;
+ return Intrinsic::nvvm_tex_2d_array_v4u32_f32; // "vvm.tex.2d.array.v4u32.f32"
+ case 's': // 1 string to match.
+ if (memcmp(NameR.data()+24, "32", 2))
+ break;
+ return Intrinsic::nvvm_tex_2d_array_v4u32_s32; // "vvm.tex.2d.array.v4u32.s32"
+ }
+ break;
+ }
+ break;
+ case 'l': // 3 strings to match.
+ if (memcmp(NameR.data()+12, "evel.v4", 7))
+ break;
+ switch (NameR[19]) {
+ default: break;
+ case 'f': // 1 string to match.
+ if (memcmp(NameR.data()+20, "32.f32", 6))
+ break;
+ return Intrinsic::nvvm_tex_2d_level_v4f32_f32; // "vvm.tex.2d.level.v4f32.f32"
+ case 's': // 1 string to match.
+ if (memcmp(NameR.data()+20, "32.f32", 6))
+ break;
+ return Intrinsic::nvvm_tex_2d_level_v4s32_f32; // "vvm.tex.2d.level.v4s32.f32"
+ case 'u': // 1 string to match.
+ if (memcmp(NameR.data()+20, "32.f32", 6))
+ break;
+ return Intrinsic::nvvm_tex_2d_level_v4u32_f32; // "vvm.tex.2d.level.v4u32.f32"
+ }
+ break;
+ }
+ break;
+ case '3': // 3 strings to match.
+ if (memcmp(NameR.data()+9, "d.level.v4", 10))
+ break;
+ switch (NameR[19]) {
+ default: break;
+ case 'f': // 1 string to match.
+ if (memcmp(NameR.data()+20, "32.f32", 6))
+ break;
+ return Intrinsic::nvvm_tex_3d_level_v4f32_f32; // "vvm.tex.3d.level.v4f32.f32"
+ case 's': // 1 string to match.
+ if (memcmp(NameR.data()+20, "32.f32", 6))
+ break;
+ return Intrinsic::nvvm_tex_3d_level_v4s32_f32; // "vvm.tex.3d.level.v4s32.f32"
+ case 'u': // 1 string to match.
+ if (memcmp(NameR.data()+20, "32.f32", 6))
+ break;
+ return Intrinsic::nvvm_tex_3d_level_v4u32_f32; // "vvm.tex.3d.level.v4u32.f32"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 27: // 20 strings to match.
+ if (memcmp(NameR.data()+0, "vvm.su", 6))
+ break;
+ switch (NameR[6]) {
+ default: break;
+ case 'l': // 14 strings to match.
+ if (memcmp(NameR.data()+7, "d.", 2))
+ break;
+ switch (NameR[9]) {
+ default: break;
+ case '1': // 7 strings to match.
+ if (memcmp(NameR.data()+10, "d.array.", 8))
+ break;
+ switch (NameR[18]) {
+ default: break;
+ case 'i': // 3 strings to match.
+ switch (NameR[19]) {
+ default: break;
+ case '1': // 1 string to match.
+ if (memcmp(NameR.data()+20, "6.clamp", 7))
+ break;
+ return Intrinsic::nvvm_suld_1d_array_i16_clamp; // "vvm.suld.1d.array.i16.clamp"
+ case '3': // 1 string to match.
+ if (memcmp(NameR.data()+20, "2.clamp", 7))
+ break;
+ return Intrinsic::nvvm_suld_1d_array_i32_clamp; // "vvm.suld.1d.array.i32.clamp"
+ case '6': // 1 string to match.
+ if (memcmp(NameR.data()+20, "4.clamp", 7))
+ break;
+ return Intrinsic::nvvm_suld_1d_array_i64_clamp; // "vvm.suld.1d.array.i64.clamp"
+ }
+ break;
+ case 'v': // 4 strings to match.
+ switch (NameR[19]) {
+ default: break;
+ case '2': // 2 strings to match.
+ if (memcmp(NameR.data()+20, "i8.", 3))
+ break;
+ switch (NameR[23]) {
+ default: break;
+ case 't': // 1 string to match.
+ if (memcmp(NameR.data()+24, "rap", 3))
+ break;
+ return Intrinsic::nvvm_suld_1d_array_v2i8_trap; // "vvm.suld.1d.array.v2i8.trap"
+ case 'z': // 1 string to match.
+ if (memcmp(NameR.data()+24, "ero", 3))
+ break;
+ return Intrinsic::nvvm_suld_1d_array_v2i8_zero; // "vvm.suld.1d.array.v2i8.zero"
+ }
+ break;
+ case '4': // 2 strings to match.
+ if (memcmp(NameR.data()+20, "i8.", 3))
+ break;
+ switch (NameR[23]) {
+ default: break;
+ case 't': // 1 string to match.
+ if (memcmp(NameR.data()+24, "rap", 3))
+ break;
+ return Intrinsic::nvvm_suld_1d_array_v4i8_trap; // "vvm.suld.1d.array.v4i8.trap"
+ case 'z': // 1 string to match.
+ if (memcmp(NameR.data()+24, "ero", 3))
+ break;
+ return Intrinsic::nvvm_suld_1d_array_v4i8_zero; // "vvm.suld.1d.array.v4i8.zero"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case '2': // 7 strings to match.
+ if (memcmp(NameR.data()+10, "d.array.", 8))
+ break;
+ switch (NameR[18]) {
+ default: break;
+ case 'i': // 3 strings to match.
+ switch (NameR[19]) {
+ default: break;
+ case '1': // 1 string to match.
+ if (memcmp(NameR.data()+20, "6.clamp", 7))
+ break;
+ return Intrinsic::nvvm_suld_2d_array_i16_clamp; // "vvm.suld.2d.array.i16.clamp"
+ case '3': // 1 string to match.
+ if (memcmp(NameR.data()+20, "2.clamp", 7))
+ break;
+ return Intrinsic::nvvm_suld_2d_array_i32_clamp; // "vvm.suld.2d.array.i32.clamp"
+ case '6': // 1 string to match.
+ if (memcmp(NameR.data()+20, "4.clamp", 7))
+ break;
+ return Intrinsic::nvvm_suld_2d_array_i64_clamp; // "vvm.suld.2d.array.i64.clamp"
+ }
+ break;
+ case 'v': // 4 strings to match.
+ switch (NameR[19]) {
+ default: break;
+ case '2': // 2 strings to match.
+ if (memcmp(NameR.data()+20, "i8.", 3))
+ break;
+ switch (NameR[23]) {
+ default: break;
+ case 't': // 1 string to match.
+ if (memcmp(NameR.data()+24, "rap", 3))
+ break;
+ return Intrinsic::nvvm_suld_2d_array_v2i8_trap; // "vvm.suld.2d.array.v2i8.trap"
+ case 'z': // 1 string to match.
+ if (memcmp(NameR.data()+24, "ero", 3))
+ break;
+ return Intrinsic::nvvm_suld_2d_array_v2i8_zero; // "vvm.suld.2d.array.v2i8.zero"
+ }
+ break;
+ case '4': // 2 strings to match.
+ if (memcmp(NameR.data()+20, "i8.", 3))
+ break;
+ switch (NameR[23]) {
+ default: break;
+ case 't': // 1 string to match.
+ if (memcmp(NameR.data()+24, "rap", 3))
+ break;
+ return Intrinsic::nvvm_suld_2d_array_v4i8_trap; // "vvm.suld.2d.array.v4i8.trap"
+ case 'z': // 1 string to match.
+ if (memcmp(NameR.data()+24, "ero", 3))
+ break;
+ return Intrinsic::nvvm_suld_2d_array_v4i8_zero; // "vvm.suld.2d.array.v4i8.zero"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 's': // 6 strings to match.
+ if (memcmp(NameR.data()+7, "t.", 2))
+ break;
+ switch (NameR[9]) {
+ default: break;
+ case 'b': // 4 strings to match.
+ if (NameR[10] != '.')
+ break;
+ switch (NameR[11]) {
+ default: break;
+ case '1': // 2 strings to match.
+ if (memcmp(NameR.data()+12, "d.array.i8.", 11))
+ break;
+ switch (NameR[23]) {
+ default: break;
+ case 't': // 1 string to match.
+ if (memcmp(NameR.data()+24, "rap", 3))
+ break;
+ return Intrinsic::nvvm_sust_b_1d_array_i8_trap; // "vvm.sust.b.1d.array.i8.trap"
+ case 'z': // 1 string to match.
+ if (memcmp(NameR.data()+24, "ero", 3))
+ break;
+ return Intrinsic::nvvm_sust_b_1d_array_i8_zero; // "vvm.sust.b.1d.array.i8.zero"
+ }
+ break;
+ case '2': // 2 strings to match.
+ if (memcmp(NameR.data()+12, "d.array.i8.", 11))
+ break;
+ switch (NameR[23]) {
+ default: break;
+ case 't': // 1 string to match.
+ if (memcmp(NameR.data()+24, "rap", 3))
+ break;
+ return Intrinsic::nvvm_sust_b_2d_array_i8_trap; // "vvm.sust.b.2d.array.i8.trap"
+ case 'z': // 1 string to match.
+ if (memcmp(NameR.data()+24, "ero", 3))
+ break;
+ return Intrinsic::nvvm_sust_b_2d_array_i8_zero; // "vvm.sust.b.2d.array.i8.zero"
+ }
+ break;
+ }
+ break;
+ case 'p': // 2 strings to match.
+ if (NameR[10] != '.')
+ break;
+ switch (NameR[11]) {
+ default: break;
+ case '1': // 1 string to match.
+ if (memcmp(NameR.data()+12, "d.array.i8.trap", 15))
+ break;
+ return Intrinsic::nvvm_sust_p_1d_array_i8_trap; // "vvm.sust.p.1d.array.i8.trap"
+ case '2': // 1 string to match.
+ if (memcmp(NameR.data()+12, "d.array.i8.trap", 15))
+ break;
+ return Intrinsic::nvvm_sust_p_2d_array_i8_trap; // "vvm.sust.p.2d.array.i8.trap"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 28: // 66 strings to match.
+ if (memcmp(NameR.data()+0, "vvm.", 4))
+ break;
+ switch (NameR[4]) {
+ default: break;
+ case 's': // 42 strings to match.
+ if (NameR[5] != 'u')
+ break;
+ switch (NameR[6]) {
+ default: break;
+ case 'l': // 24 strings to match.
+ if (memcmp(NameR.data()+7, "d.", 2))
+ break;
+ switch (NameR[9]) {
+ default: break;
+ case '1': // 12 strings to match.
+ if (memcmp(NameR.data()+10, "d.array.v", 9))
+ break;
+ switch (NameR[19]) {
+ default: break;
+ case '2': // 7 strings to match.
+ if (NameR[20] != 'i')
+ break;
+ switch (NameR[21]) {
+ default: break;
+ case '1': // 2 strings to match.
+ if (memcmp(NameR.data()+22, "6.", 2))
+ break;
+ switch (NameR[24]) {
+ default: break;
+ case 't': // 1 string to match.
+ if (memcmp(NameR.data()+25, "rap", 3))
+ break;
+ return Intrinsic::nvvm_suld_1d_array_v2i16_trap; // "vvm.suld.1d.array.v2i16.trap"
+ case 'z': // 1 string to match.
+ if (memcmp(NameR.data()+25, "ero", 3))
+ break;
+ return Intrinsic::nvvm_suld_1d_array_v2i16_zero; // "vvm.suld.1d.array.v2i16.zero"
+ }
+ break;
+ case '3': // 2 strings to match.
+ if (memcmp(NameR.data()+22, "2.", 2))
+ break;
+ switch (NameR[24]) {
+ default: break;
+ case 't': // 1 string to match.
+ if (memcmp(NameR.data()+25, "rap", 3))
+ break;
+ return Intrinsic::nvvm_suld_1d_array_v2i32_trap; // "vvm.suld.1d.array.v2i32.trap"
+ case 'z': // 1 string to match.
+ if (memcmp(NameR.data()+25, "ero", 3))
+ break;
+ return Intrinsic::nvvm_suld_1d_array_v2i32_zero; // "vvm.suld.1d.array.v2i32.zero"
+ }
+ break;
+ case '6': // 2 strings to match.
+ if (memcmp(NameR.data()+22, "4.", 2))
+ break;
+ switch (NameR[24]) {
+ default: break;
+ case 't': // 1 string to match.
+ if (memcmp(NameR.data()+25, "rap", 3))
+ break;
+ return Intrinsic::nvvm_suld_1d_array_v2i64_trap; // "vvm.suld.1d.array.v2i64.trap"
+ case 'z': // 1 string to match.
+ if (memcmp(NameR.data()+25, "ero", 3))
+ break;
+ return Intrinsic::nvvm_suld_1d_array_v2i64_zero; // "vvm.suld.1d.array.v2i64.zero"
+ }
+ break;
+ case '8': // 1 string to match.
+ if (memcmp(NameR.data()+22, ".clamp", 6))
+ break;
+ return Intrinsic::nvvm_suld_1d_array_v2i8_clamp; // "vvm.suld.1d.array.v2i8.clamp"
+ }
+ break;
+ case '4': // 5 strings to match.
+ if (NameR[20] != 'i')
+ break;
+ switch (NameR[21]) {
+ default: break;
+ case '1': // 2 strings to match.
+ if (memcmp(NameR.data()+22, "6.", 2))
+ break;
+ switch (NameR[24]) {
+ default: break;
+ case 't': // 1 string to match.
+ if (memcmp(NameR.data()+25, "rap", 3))
+ break;
+ return Intrinsic::nvvm_suld_1d_array_v4i16_trap; // "vvm.suld.1d.array.v4i16.trap"
+ case 'z': // 1 string to match.
+ if (memcmp(NameR.data()+25, "ero", 3))
+ break;
+ return Intrinsic::nvvm_suld_1d_array_v4i16_zero; // "vvm.suld.1d.array.v4i16.zero"
+ }
+ break;
+ case '3': // 2 strings to match.
+ if (memcmp(NameR.data()+22, "2.", 2))
+ break;
+ switch (NameR[24]) {
+ default: break;
+ case 't': // 1 string to match.
+ if (memcmp(NameR.data()+25, "rap", 3))
+ break;
+ return Intrinsic::nvvm_suld_1d_array_v4i32_trap; // "vvm.suld.1d.array.v4i32.trap"
+ case 'z': // 1 string to match.
+ if (memcmp(NameR.data()+25, "ero", 3))
+ break;
+ return Intrinsic::nvvm_suld_1d_array_v4i32_zero; // "vvm.suld.1d.array.v4i32.zero"
+ }
+ break;
+ case '8': // 1 string to match.
+ if (memcmp(NameR.data()+22, ".clamp", 6))
+ break;
+ return Intrinsic::nvvm_suld_1d_array_v4i8_clamp; // "vvm.suld.1d.array.v4i8.clamp"
+ }
+ break;
+ }
+ break;
+ case '2': // 12 strings to match.
+ if (memcmp(NameR.data()+10, "d.array.v", 9))
+ break;
+ switch (NameR[19]) {
+ default: break;
+ case '2': // 7 strings to match.
+ if (NameR[20] != 'i')
+ break;
+ switch (NameR[21]) {
+ default: break;
+ case '1': // 2 strings to match.
+ if (memcmp(NameR.data()+22, "6.", 2))
+ break;
+ switch (NameR[24]) {
+ default: break;
+ case 't': // 1 string to match.
+ if (memcmp(NameR.data()+25, "rap", 3))
+ break;
+ return Intrinsic::nvvm_suld_2d_array_v2i16_trap; // "vvm.suld.2d.array.v2i16.trap"
+ case 'z': // 1 string to match.
+ if (memcmp(NameR.data()+25, "ero", 3))
+ break;
+ return Intrinsic::nvvm_suld_2d_array_v2i16_zero; // "vvm.suld.2d.array.v2i16.zero"
+ }
+ break;
+ case '3': // 2 strings to match.
+ if (memcmp(NameR.data()+22, "2.", 2))
+ break;
+ switch (NameR[24]) {
+ default: break;
+ case 't': // 1 string to match.
+ if (memcmp(NameR.data()+25, "rap", 3))
+ break;
+ return Intrinsic::nvvm_suld_2d_array_v2i32_trap; // "vvm.suld.2d.array.v2i32.trap"
+ case 'z': // 1 string to match.
+ if (memcmp(NameR.data()+25, "ero", 3))
+ break;
+ return Intrinsic::nvvm_suld_2d_array_v2i32_zero; // "vvm.suld.2d.array.v2i32.zero"
+ }
+ break;
+ case '6': // 2 strings to match.
+ if (memcmp(NameR.data()+22, "4.", 2))
+ break;
+ switch (NameR[24]) {
+ default: break;
+ case 't': // 1 string to match.
+ if (memcmp(NameR.data()+25, "rap", 3))
+ break;
+ return Intrinsic::nvvm_suld_2d_array_v2i64_trap; // "vvm.suld.2d.array.v2i64.trap"
+ case 'z': // 1 string to match.
+ if (memcmp(NameR.data()+25, "ero", 3))
+ break;
+ return Intrinsic::nvvm_suld_2d_array_v2i64_zero; // "vvm.suld.2d.array.v2i64.zero"
+ }
+ break;
+ case '8': // 1 string to match.
+ if (memcmp(NameR.data()+22, ".clamp", 6))
+ break;
+ return Intrinsic::nvvm_suld_2d_array_v2i8_clamp; // "vvm.suld.2d.array.v2i8.clamp"
+ }
+ break;
+ case '4': // 5 strings to match.
+ if (NameR[20] != 'i')
+ break;
+ switch (NameR[21]) {
+ default: break;
+ case '1': // 2 strings to match.
+ if (memcmp(NameR.data()+22, "6.", 2))
+ break;
+ switch (NameR[24]) {
+ default: break;
+ case 't': // 1 string to match.
+ if (memcmp(NameR.data()+25, "rap", 3))
+ break;
+ return Intrinsic::nvvm_suld_2d_array_v4i16_trap; // "vvm.suld.2d.array.v4i16.trap"
+ case 'z': // 1 string to match.
+ if (memcmp(NameR.data()+25, "ero", 3))
+ break;
+ return Intrinsic::nvvm_suld_2d_array_v4i16_zero; // "vvm.suld.2d.array.v4i16.zero"
+ }
+ break;
+ case '3': // 2 strings to match.
+ if (memcmp(NameR.data()+22, "2.", 2))
+ break;
+ switch (NameR[24]) {
+ default: break;
+ case 't': // 1 string to match.
+ if (memcmp(NameR.data()+25, "rap", 3))
+ break;
+ return Intrinsic::nvvm_suld_2d_array_v4i32_trap; // "vvm.suld.2d.array.v4i32.trap"
+ case 'z': // 1 string to match.
+ if (memcmp(NameR.data()+25, "ero", 3))
+ break;
+ return Intrinsic::nvvm_suld_2d_array_v4i32_zero; // "vvm.suld.2d.array.v4i32.zero"
+ }
+ break;
+ case '8': // 1 string to match.
+ if (memcmp(NameR.data()+22, ".clamp", 6))
+ break;
+ return Intrinsic::nvvm_suld_2d_array_v4i8_clamp; // "vvm.suld.2d.array.v4i8.clamp"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 's': // 18 strings to match.
+ if (memcmp(NameR.data()+7, "t.", 2))
+ break;
+ switch (NameR[9]) {
+ default: break;
+ case 'b': // 14 strings to match.
+ if (NameR[10] != '.')
+ break;
+ switch (NameR[11]) {
+ default: break;
+ case '1': // 7 strings to match.
+ if (memcmp(NameR.data()+12, "d.array.i", 9))
+ break;
+ switch (NameR[21]) {
+ default: break;
+ case '1': // 2 strings to match.
+ if (memcmp(NameR.data()+22, "6.", 2))
+ break;
+ switch (NameR[24]) {
+ default: break;
+ case 't': // 1 string to match.
+ if (memcmp(NameR.data()+25, "rap", 3))
+ break;
+ return Intrinsic::nvvm_sust_b_1d_array_i16_trap; // "vvm.sust.b.1d.array.i16.trap"
+ case 'z': // 1 string to match.
+ if (memcmp(NameR.data()+25, "ero", 3))
+ break;
+ return Intrinsic::nvvm_sust_b_1d_array_i16_zero; // "vvm.sust.b.1d.array.i16.zero"
+ }
+ break;
+ case '3': // 2 strings to match.
+ if (memcmp(NameR.data()+22, "2.", 2))
+ break;
+ switch (NameR[24]) {
+ default: break;
+ case 't': // 1 string to match.
+ if (memcmp(NameR.data()+25, "rap", 3))
+ break;
+ return Intrinsic::nvvm_sust_b_1d_array_i32_trap; // "vvm.sust.b.1d.array.i32.trap"
+ case 'z': // 1 string to match.
+ if (memcmp(NameR.data()+25, "ero", 3))
+ break;
+ return Intrinsic::nvvm_sust_b_1d_array_i32_zero; // "vvm.sust.b.1d.array.i32.zero"
+ }
+ break;
+ case '6': // 2 strings to match.
+ if (memcmp(NameR.data()+22, "4.", 2))
+ break;
+ switch (NameR[24]) {
+ default: break;
+ case 't': // 1 string to match.
+ if (memcmp(NameR.data()+25, "rap", 3))
+ break;
+ return Intrinsic::nvvm_sust_b_1d_array_i64_trap; // "vvm.sust.b.1d.array.i64.trap"
+ case 'z': // 1 string to match.
+ if (memcmp(NameR.data()+25, "ero", 3))
+ break;
+ return Intrinsic::nvvm_sust_b_1d_array_i64_zero; // "vvm.sust.b.1d.array.i64.zero"
+ }
+ break;
+ case '8': // 1 string to match.
+ if (memcmp(NameR.data()+22, ".clamp", 6))
+ break;
+ return Intrinsic::nvvm_sust_b_1d_array_i8_clamp; // "vvm.sust.b.1d.array.i8.clamp"
+ }
+ break;
+ case '2': // 7 strings to match.
+ if (memcmp(NameR.data()+12, "d.array.i", 9))
+ break;
+ switch (NameR[21]) {
+ default: break;
+ case '1': // 2 strings to match.
+ if (memcmp(NameR.data()+22, "6.", 2))
+ break;
+ switch (NameR[24]) {
+ default: break;
+ case 't': // 1 string to match.
+ if (memcmp(NameR.data()+25, "rap", 3))
+ break;
+ return Intrinsic::nvvm_sust_b_2d_array_i16_trap; // "vvm.sust.b.2d.array.i16.trap"
+ case 'z': // 1 string to match.
+ if (memcmp(NameR.data()+25, "ero", 3))
+ break;
+ return Intrinsic::nvvm_sust_b_2d_array_i16_zero; // "vvm.sust.b.2d.array.i16.zero"
+ }
+ break;
+ case '3': // 2 strings to match.
+ if (memcmp(NameR.data()+22, "2.", 2))
+ break;
+ switch (NameR[24]) {
+ default: break;
+ case 't': // 1 string to match.
+ if (memcmp(NameR.data()+25, "rap", 3))
+ break;
+ return Intrinsic::nvvm_sust_b_2d_array_i32_trap; // "vvm.sust.b.2d.array.i32.trap"
+ case 'z': // 1 string to match.
+ if (memcmp(NameR.data()+25, "ero", 3))
+ break;
+ return Intrinsic::nvvm_sust_b_2d_array_i32_zero; // "vvm.sust.b.2d.array.i32.zero"
+ }
+ break;
+ case '6': // 2 strings to match.
+ if (memcmp(NameR.data()+22, "4.", 2))
+ break;
+ switch (NameR[24]) {
+ default: break;
+ case 't': // 1 string to match.
+ if (memcmp(NameR.data()+25, "rap", 3))
+ break;
+ return Intrinsic::nvvm_sust_b_2d_array_i64_trap; // "vvm.sust.b.2d.array.i64.trap"
+ case 'z': // 1 string to match.
+ if (memcmp(NameR.data()+25, "ero", 3))
+ break;
+ return Intrinsic::nvvm_sust_b_2d_array_i64_zero; // "vvm.sust.b.2d.array.i64.zero"
+ }
+ break;
+ case '8': // 1 string to match.
+ if (memcmp(NameR.data()+22, ".clamp", 6))
+ break;
+ return Intrinsic::nvvm_sust_b_2d_array_i8_clamp; // "vvm.sust.b.2d.array.i8.clamp"
+ }
+ break;
+ }
+ break;
+ case 'p': // 4 strings to match.
+ if (NameR[10] != '.')
+ break;
+ switch (NameR[11]) {
+ default: break;
+ case '1': // 2 strings to match.
+ if (memcmp(NameR.data()+12, "d.array.i", 9))
+ break;
+ switch (NameR[21]) {
+ default: break;
+ case '1': // 1 string to match.
+ if (memcmp(NameR.data()+22, "6.trap", 6))
+ break;
+ return Intrinsic::nvvm_sust_p_1d_array_i16_trap; // "vvm.sust.p.1d.array.i16.trap"
+ case '3': // 1 string to match.
+ if (memcmp(NameR.data()+22, "2.trap", 6))
+ break;
+ return Intrinsic::nvvm_sust_p_1d_array_i32_trap; // "vvm.sust.p.1d.array.i32.trap"
+ }
+ break;
+ case '2': // 2 strings to match.
+ if (memcmp(NameR.data()+12, "d.array.i", 9))
+ break;
+ switch (NameR[21]) {
+ default: break;
+ case '1': // 1 string to match.
+ if (memcmp(NameR.data()+22, "6.trap", 6))
+ break;
+ return Intrinsic::nvvm_sust_p_2d_array_i16_trap; // "vvm.sust.p.2d.array.i16.trap"
+ case '3': // 1 string to match.
+ if (memcmp(NameR.data()+22, "2.trap", 6))
+ break;
+ return Intrinsic::nvvm_sust_p_2d_array_i32_trap; // "vvm.sust.p.2d.array.i32.trap"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 't': // 24 strings to match.
+ if (memcmp(NameR.data()+5, "ex.", 3))
+ break;
+ switch (NameR[8]) {
+ default: break;
+ case 'c': // 6 strings to match.
+ if (memcmp(NameR.data()+9, "ube.", 4))
+ break;
+ switch (NameR[13]) {
+ default: break;
+ case 'a': // 3 strings to match.
+ if (memcmp(NameR.data()+14, "rray.v4", 7))
+ break;
+ switch (NameR[21]) {
+ default: break;
+ case 'f': // 1 string to match.
+ if (memcmp(NameR.data()+22, "32.f32", 6))
+ break;
+ return Intrinsic::nvvm_tex_cube_array_v4f32_f32; // "vvm.tex.cube.array.v4f32.f32"
+ case 's': // 1 string to match.
+ if (memcmp(NameR.data()+22, "32.f32", 6))
+ break;
+ return Intrinsic::nvvm_tex_cube_array_v4s32_f32; // "vvm.tex.cube.array.v4s32.f32"
+ case 'u': // 1 string to match.
+ if (memcmp(NameR.data()+22, "32.f32", 6))
+ break;
+ return Intrinsic::nvvm_tex_cube_array_v4u32_f32; // "vvm.tex.cube.array.v4u32.f32"
+ }
+ break;
+ case 'l': // 3 strings to match.
+ if (memcmp(NameR.data()+14, "evel.v4", 7))
+ break;
+ switch (NameR[21]) {
+ default: break;
+ case 'f': // 1 string to match.
+ if (memcmp(NameR.data()+22, "32.f32", 6))
+ break;
+ return Intrinsic::nvvm_tex_cube_level_v4f32_f32; // "vvm.tex.cube.level.v4f32.f32"
+ case 's': // 1 string to match.
+ if (memcmp(NameR.data()+22, "32.f32", 6))
+ break;
+ return Intrinsic::nvvm_tex_cube_level_v4s32_f32; // "vvm.tex.cube.level.v4s32.f32"
+ case 'u': // 1 string to match.
+ if (memcmp(NameR.data()+22, "32.f32", 6))
+ break;
+ return Intrinsic::nvvm_tex_cube_level_v4u32_f32; // "vvm.tex.cube.level.v4u32.f32"
+ }
+ break;
+ }
+ break;
+ case 'u': // 18 strings to match.
+ if (memcmp(NameR.data()+9, "nified.", 7))
+ break;
+ switch (NameR[16]) {
+ default: break;
+ case '1': // 6 strings to match.
+ if (memcmp(NameR.data()+17, "d.v4", 4))
+ break;
+ switch (NameR[21]) {
+ default: break;
+ case 'f': // 2 strings to match.
+ if (memcmp(NameR.data()+22, "32.", 3))
+ break;
+ switch (NameR[25]) {
+ default: break;
+ case 'f': // 1 string to match.
+ if (memcmp(NameR.data()+26, "32", 2))
+ break;
+ return Intrinsic::nvvm_tex_unified_1d_v4f32_f32; // "vvm.tex.unified.1d.v4f32.f32"
+ case 's': // 1 string to match.
+ if (memcmp(NameR.data()+26, "32", 2))
+ break;
+ return Intrinsic::nvvm_tex_unified_1d_v4f32_s32; // "vvm.tex.unified.1d.v4f32.s32"
+ }
+ break;
+ case 's': // 2 strings to match.
+ if (memcmp(NameR.data()+22, "32.", 3))
+ break;
+ switch (NameR[25]) {
+ default: break;
+ case 'f': // 1 string to match.
+ if (memcmp(NameR.data()+26, "32", 2))
+ break;
+ return Intrinsic::nvvm_tex_unified_1d_v4s32_f32; // "vvm.tex.unified.1d.v4s32.f32"
+ case 's': // 1 string to match.
+ if (memcmp(NameR.data()+26, "32", 2))
+ break;
+ return Intrinsic::nvvm_tex_unified_1d_v4s32_s32; // "vvm.tex.unified.1d.v4s32.s32"
+ }
+ break;
+ case 'u': // 2 strings to match.
+ if (memcmp(NameR.data()+22, "32.", 3))
+ break;
+ switch (NameR[25]) {
+ default: break;
+ case 'f': // 1 string to match.
+ if (memcmp(NameR.data()+26, "32", 2))
+ break;
+ return Intrinsic::nvvm_tex_unified_1d_v4u32_f32; // "vvm.tex.unified.1d.v4u32.f32"
+ case 's': // 1 string to match.
+ if (memcmp(NameR.data()+26, "32", 2))
+ break;
+ return Intrinsic::nvvm_tex_unified_1d_v4u32_s32; // "vvm.tex.unified.1d.v4u32.s32"
+ }
+ break;
+ }
+ break;
+ case '2': // 6 strings to match.
+ if (memcmp(NameR.data()+17, "d.v4", 4))
+ break;
+ switch (NameR[21]) {
+ default: break;
+ case 'f': // 2 strings to match.
+ if (memcmp(NameR.data()+22, "32.", 3))
+ break;
+ switch (NameR[25]) {
+ default: break;
+ case 'f': // 1 string to match.
+ if (memcmp(NameR.data()+26, "32", 2))
+ break;
+ return Intrinsic::nvvm_tex_unified_2d_v4f32_f32; // "vvm.tex.unified.2d.v4f32.f32"
+ case 's': // 1 string to match.
+ if (memcmp(NameR.data()+26, "32", 2))
+ break;
+ return Intrinsic::nvvm_tex_unified_2d_v4f32_s32; // "vvm.tex.unified.2d.v4f32.s32"
+ }
+ break;
+ case 's': // 2 strings to match.
+ if (memcmp(NameR.data()+22, "32.", 3))
+ break;
+ switch (NameR[25]) {
+ default: break;
+ case 'f': // 1 string to match.
+ if (memcmp(NameR.data()+26, "32", 2))
+ break;
+ return Intrinsic::nvvm_tex_unified_2d_v4s32_f32; // "vvm.tex.unified.2d.v4s32.f32"
+ case 's': // 1 string to match.
+ if (memcmp(NameR.data()+26, "32", 2))
+ break;
+ return Intrinsic::nvvm_tex_unified_2d_v4s32_s32; // "vvm.tex.unified.2d.v4s32.s32"
+ }
+ break;
+ case 'u': // 2 strings to match.
+ if (memcmp(NameR.data()+22, "32.", 3))
+ break;
+ switch (NameR[25]) {
+ default: break;
+ case 'f': // 1 string to match.
+ if (memcmp(NameR.data()+26, "32", 2))
+ break;
+ return Intrinsic::nvvm_tex_unified_2d_v4u32_f32; // "vvm.tex.unified.2d.v4u32.f32"
+ case 's': // 1 string to match.
+ if (memcmp(NameR.data()+26, "32", 2))
+ break;
+ return Intrinsic::nvvm_tex_unified_2d_v4u32_s32; // "vvm.tex.unified.2d.v4u32.s32"
+ }
+ break;
+ }
+ break;
+ case '3': // 6 strings to match.
+ if (memcmp(NameR.data()+17, "d.v4", 4))
+ break;
+ switch (NameR[21]) {
+ default: break;
+ case 'f': // 2 strings to match.
+ if (memcmp(NameR.data()+22, "32.", 3))
+ break;
+ switch (NameR[25]) {
+ default: break;
+ case 'f': // 1 string to match.
+ if (memcmp(NameR.data()+26, "32", 2))
+ break;
+ return Intrinsic::nvvm_tex_unified_3d_v4f32_f32; // "vvm.tex.unified.3d.v4f32.f32"
+ case 's': // 1 string to match.
+ if (memcmp(NameR.data()+26, "32", 2))
+ break;
+ return Intrinsic::nvvm_tex_unified_3d_v4f32_s32; // "vvm.tex.unified.3d.v4f32.s32"
+ }
+ break;
+ case 's': // 2 strings to match.
+ if (memcmp(NameR.data()+22, "32.", 3))
+ break;
+ switch (NameR[25]) {
+ default: break;
+ case 'f': // 1 string to match.
+ if (memcmp(NameR.data()+26, "32", 2))
+ break;
+ return Intrinsic::nvvm_tex_unified_3d_v4s32_f32; // "vvm.tex.unified.3d.v4s32.f32"
+ case 's': // 1 string to match.
+ if (memcmp(NameR.data()+26, "32", 2))
+ break;
+ return Intrinsic::nvvm_tex_unified_3d_v4s32_s32; // "vvm.tex.unified.3d.v4s32.s32"
+ }
+ break;
+ case 'u': // 2 strings to match.
+ if (memcmp(NameR.data()+22, "32.", 3))
+ break;
+ switch (NameR[25]) {
+ default: break;
+ case 'f': // 1 string to match.
+ if (memcmp(NameR.data()+26, "32", 2))
+ break;
+ return Intrinsic::nvvm_tex_unified_3d_v4u32_f32; // "vvm.tex.unified.3d.v4u32.f32"
+ case 's': // 1 string to match.
+ if (memcmp(NameR.data()+26, "32", 2))
+ break;
+ return Intrinsic::nvvm_tex_unified_3d_v4u32_s32; // "vvm.tex.unified.3d.v4u32.s32"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 29: // 28 strings to match.
+ if (memcmp(NameR.data()+0, "vvm.su", 6))
+ break;
+ switch (NameR[6]) {
+ default: break;
+ case 'l': // 10 strings to match.
+ if (memcmp(NameR.data()+7, "d.", 2))
+ break;
+ switch (NameR[9]) {
+ default: break;
+ case '1': // 5 strings to match.
+ if (memcmp(NameR.data()+10, "d.array.v", 9))
+ break;
+ switch (NameR[19]) {
+ default: break;
+ case '2': // 3 strings to match.
+ if (NameR[20] != 'i')
+ break;
+ switch (NameR[21]) {
+ default: break;
+ case '1': // 1 string to match.
+ if (memcmp(NameR.data()+22, "6.clamp", 7))
+ break;
+ return Intrinsic::nvvm_suld_1d_array_v2i16_clamp; // "vvm.suld.1d.array.v2i16.clamp"
+ case '3': // 1 string to match.
+ if (memcmp(NameR.data()+22, "2.clamp", 7))
+ break;
+ return Intrinsic::nvvm_suld_1d_array_v2i32_clamp; // "vvm.suld.1d.array.v2i32.clamp"
+ case '6': // 1 string to match.
+ if (memcmp(NameR.data()+22, "4.clamp", 7))
+ break;
+ return Intrinsic::nvvm_suld_1d_array_v2i64_clamp; // "vvm.suld.1d.array.v2i64.clamp"
+ }
+ break;
+ case '4': // 2 strings to match.
+ if (NameR[20] != 'i')
+ break;
+ switch (NameR[21]) {
+ default: break;
+ case '1': // 1 string to match.
+ if (memcmp(NameR.data()+22, "6.clamp", 7))
+ break;
+ return Intrinsic::nvvm_suld_1d_array_v4i16_clamp; // "vvm.suld.1d.array.v4i16.clamp"
+ case '3': // 1 string to match.
+ if (memcmp(NameR.data()+22, "2.clamp", 7))
+ break;
+ return Intrinsic::nvvm_suld_1d_array_v4i32_clamp; // "vvm.suld.1d.array.v4i32.clamp"
+ }
+ break;
+ }
+ break;
+ case '2': // 5 strings to match.
+ if (memcmp(NameR.data()+10, "d.array.v", 9))
+ break;
+ switch (NameR[19]) {
+ default: break;
+ case '2': // 3 strings to match.
+ if (NameR[20] != 'i')
+ break;
+ switch (NameR[21]) {
+ default: break;
+ case '1': // 1 string to match.
+ if (memcmp(NameR.data()+22, "6.clamp", 7))
+ break;
+ return Intrinsic::nvvm_suld_2d_array_v2i16_clamp; // "vvm.suld.2d.array.v2i16.clamp"
+ case '3': // 1 string to match.
+ if (memcmp(NameR.data()+22, "2.clamp", 7))
+ break;
+ return Intrinsic::nvvm_suld_2d_array_v2i32_clamp; // "vvm.suld.2d.array.v2i32.clamp"
+ case '6': // 1 string to match.
+ if (memcmp(NameR.data()+22, "4.clamp", 7))
+ break;
+ return Intrinsic::nvvm_suld_2d_array_v2i64_clamp; // "vvm.suld.2d.array.v2i64.clamp"
+ }
+ break;
+ case '4': // 2 strings to match.
+ if (NameR[20] != 'i')
+ break;
+ switch (NameR[21]) {
+ default: break;
+ case '1': // 1 string to match.
+ if (memcmp(NameR.data()+22, "6.clamp", 7))
+ break;
+ return Intrinsic::nvvm_suld_2d_array_v4i16_clamp; // "vvm.suld.2d.array.v4i16.clamp"
+ case '3': // 1 string to match.
+ if (memcmp(NameR.data()+22, "2.clamp", 7))
+ break;
+ return Intrinsic::nvvm_suld_2d_array_v4i32_clamp; // "vvm.suld.2d.array.v4i32.clamp"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 's': // 18 strings to match.
+ if (memcmp(NameR.data()+7, "t.", 2))
+ break;
+ switch (NameR[9]) {
+ default: break;
+ case 'b': // 14 strings to match.
+ if (NameR[10] != '.')
+ break;
+ switch (NameR[11]) {
+ default: break;
+ case '1': // 7 strings to match.
+ if (memcmp(NameR.data()+12, "d.array.", 8))
+ break;
+ switch (NameR[20]) {
+ default: break;
+ case 'i': // 3 strings to match.
+ switch (NameR[21]) {
+ default: break;
+ case '1': // 1 string to match.
+ if (memcmp(NameR.data()+22, "6.clamp", 7))
+ break;
+ return Intrinsic::nvvm_sust_b_1d_array_i16_clamp; // "vvm.sust.b.1d.array.i16.clamp"
+ case '3': // 1 string to match.
+ if (memcmp(NameR.data()+22, "2.clamp", 7))
+ break;
+ return Intrinsic::nvvm_sust_b_1d_array_i32_clamp; // "vvm.sust.b.1d.array.i32.clamp"
+ case '6': // 1 string to match.
+ if (memcmp(NameR.data()+22, "4.clamp", 7))
+ break;
+ return Intrinsic::nvvm_sust_b_1d_array_i64_clamp; // "vvm.sust.b.1d.array.i64.clamp"
+ }
+ break;
+ case 'v': // 4 strings to match.
+ switch (NameR[21]) {
+ default: break;
+ case '2': // 2 strings to match.
+ if (memcmp(NameR.data()+22, "i8.", 3))
+ break;
+ switch (NameR[25]) {
+ default: break;
+ case 't': // 1 string to match.
+ if (memcmp(NameR.data()+26, "rap", 3))
+ break;
+ return Intrinsic::nvvm_sust_b_1d_array_v2i8_trap; // "vvm.sust.b.1d.array.v2i8.trap"
+ case 'z': // 1 string to match.
+ if (memcmp(NameR.data()+26, "ero", 3))
+ break;
+ return Intrinsic::nvvm_sust_b_1d_array_v2i8_zero; // "vvm.sust.b.1d.array.v2i8.zero"
+ }
+ break;
+ case '4': // 2 strings to match.
+ if (memcmp(NameR.data()+22, "i8.", 3))
+ break;
+ switch (NameR[25]) {
+ default: break;
+ case 't': // 1 string to match.
+ if (memcmp(NameR.data()+26, "rap", 3))
+ break;
+ return Intrinsic::nvvm_sust_b_1d_array_v4i8_trap; // "vvm.sust.b.1d.array.v4i8.trap"
+ case 'z': // 1 string to match.
+ if (memcmp(NameR.data()+26, "ero", 3))
+ break;
+ return Intrinsic::nvvm_sust_b_1d_array_v4i8_zero; // "vvm.sust.b.1d.array.v4i8.zero"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case '2': // 7 strings to match.
+ if (memcmp(NameR.data()+12, "d.array.", 8))
+ break;
+ switch (NameR[20]) {
+ default: break;
+ case 'i': // 3 strings to match.
+ switch (NameR[21]) {
+ default: break;
+ case '1': // 1 string to match.
+ if (memcmp(NameR.data()+22, "6.clamp", 7))
+ break;
+ return Intrinsic::nvvm_sust_b_2d_array_i16_clamp; // "vvm.sust.b.2d.array.i16.clamp"
+ case '3': // 1 string to match.
+ if (memcmp(NameR.data()+22, "2.clamp", 7))
+ break;
+ return Intrinsic::nvvm_sust_b_2d_array_i32_clamp; // "vvm.sust.b.2d.array.i32.clamp"
+ case '6': // 1 string to match.
+ if (memcmp(NameR.data()+22, "4.clamp", 7))
+ break;
+ return Intrinsic::nvvm_sust_b_2d_array_i64_clamp; // "vvm.sust.b.2d.array.i64.clamp"
+ }
+ break;
+ case 'v': // 4 strings to match.
+ switch (NameR[21]) {
+ default: break;
+ case '2': // 2 strings to match.
+ if (memcmp(NameR.data()+22, "i8.", 3))
+ break;
+ switch (NameR[25]) {
+ default: break;
+ case 't': // 1 string to match.
+ if (memcmp(NameR.data()+26, "rap", 3))
+ break;
+ return Intrinsic::nvvm_sust_b_2d_array_v2i8_trap; // "vvm.sust.b.2d.array.v2i8.trap"
+ case 'z': // 1 string to match.
+ if (memcmp(NameR.data()+26, "ero", 3))
+ break;
+ return Intrinsic::nvvm_sust_b_2d_array_v2i8_zero; // "vvm.sust.b.2d.array.v2i8.zero"
+ }
+ break;
+ case '4': // 2 strings to match.
+ if (memcmp(NameR.data()+22, "i8.", 3))
+ break;
+ switch (NameR[25]) {
+ default: break;
+ case 't': // 1 string to match.
+ if (memcmp(NameR.data()+26, "rap", 3))
+ break;
+ return Intrinsic::nvvm_sust_b_2d_array_v4i8_trap; // "vvm.sust.b.2d.array.v4i8.trap"
+ case 'z': // 1 string to match.
+ if (memcmp(NameR.data()+26, "ero", 3))
+ break;
+ return Intrinsic::nvvm_sust_b_2d_array_v4i8_zero; // "vvm.sust.b.2d.array.v4i8.zero"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 'p': // 4 strings to match.
+ if (NameR[10] != '.')
+ break;
+ switch (NameR[11]) {
+ default: break;
+ case '1': // 2 strings to match.
+ if (memcmp(NameR.data()+12, "d.array.v", 9))
+ break;
+ switch (NameR[21]) {
+ default: break;
+ case '2': // 1 string to match.
+ if (memcmp(NameR.data()+22, "i8.trap", 7))
+ break;
+ return Intrinsic::nvvm_sust_p_1d_array_v2i8_trap; // "vvm.sust.p.1d.array.v2i8.trap"
+ case '4': // 1 string to match.
+ if (memcmp(NameR.data()+22, "i8.trap", 7))
+ break;
+ return Intrinsic::nvvm_sust_p_1d_array_v4i8_trap; // "vvm.sust.p.1d.array.v4i8.trap"
+ }
+ break;
+ case '2': // 2 strings to match.
+ if (memcmp(NameR.data()+12, "d.array.v", 9))
+ break;
+ switch (NameR[21]) {
+ default: break;
+ case '2': // 1 string to match.
+ if (memcmp(NameR.data()+22, "i8.trap", 7))
+ break;
+ return Intrinsic::nvvm_sust_p_2d_array_v2i8_trap; // "vvm.sust.p.2d.array.v2i8.trap"
+ case '4': // 1 string to match.
+ if (memcmp(NameR.data()+22, "i8.trap", 7))
+ break;
+ return Intrinsic::nvvm_sust_p_2d_array_v4i8_trap; // "vvm.sust.p.2d.array.v4i8.trap"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 30: // 35 strings to match.
+ if (memcmp(NameR.data()+0, "vvm.", 4))
+ break;
+ switch (NameR[4]) {
+ default: break;
+ case 's': // 32 strings to match.
+ if (memcmp(NameR.data()+5, "ust.", 4))
+ break;
+ switch (NameR[9]) {
+ default: break;
+ case 'b': // 24 strings to match.
+ if (NameR[10] != '.')
+ break;
+ switch (NameR[11]) {
+ default: break;
+ case '1': // 12 strings to match.
+ if (memcmp(NameR.data()+12, "d.array.v", 9))
+ break;
+ switch (NameR[21]) {
+ default: break;
+ case '2': // 7 strings to match.
+ if (NameR[22] != 'i')
+ break;
+ switch (NameR[23]) {
+ default: break;
+ case '1': // 2 strings to match.
+ if (memcmp(NameR.data()+24, "6.", 2))
+ break;
+ switch (NameR[26]) {
+ default: break;
+ case 't': // 1 string to match.
+ if (memcmp(NameR.data()+27, "rap", 3))
+ break;
+ return Intrinsic::nvvm_sust_b_1d_array_v2i16_trap; // "vvm.sust.b.1d.array.v2i16.trap"
+ case 'z': // 1 string to match.
+ if (memcmp(NameR.data()+27, "ero", 3))
+ break;
+ return Intrinsic::nvvm_sust_b_1d_array_v2i16_zero; // "vvm.sust.b.1d.array.v2i16.zero"
+ }
+ break;
+ case '3': // 2 strings to match.
+ if (memcmp(NameR.data()+24, "2.", 2))
+ break;
+ switch (NameR[26]) {
+ default: break;
+ case 't': // 1 string to match.
+ if (memcmp(NameR.data()+27, "rap", 3))
+ break;
+ return Intrinsic::nvvm_sust_b_1d_array_v2i32_trap; // "vvm.sust.b.1d.array.v2i32.trap"
+ case 'z': // 1 string to match.
+ if (memcmp(NameR.data()+27, "ero", 3))
+ break;
+ return Intrinsic::nvvm_sust_b_1d_array_v2i32_zero; // "vvm.sust.b.1d.array.v2i32.zero"
+ }
+ break;
+ case '6': // 2 strings to match.
+ if (memcmp(NameR.data()+24, "4.", 2))
+ break;
+ switch (NameR[26]) {
+ default: break;
+ case 't': // 1 string to match.
+ if (memcmp(NameR.data()+27, "rap", 3))
+ break;
+ return Intrinsic::nvvm_sust_b_1d_array_v2i64_trap; // "vvm.sust.b.1d.array.v2i64.trap"
+ case 'z': // 1 string to match.
+ if (memcmp(NameR.data()+27, "ero", 3))
+ break;
+ return Intrinsic::nvvm_sust_b_1d_array_v2i64_zero; // "vvm.sust.b.1d.array.v2i64.zero"
+ }
+ break;
+ case '8': // 1 string to match.
+ if (memcmp(NameR.data()+24, ".clamp", 6))
+ break;
+ return Intrinsic::nvvm_sust_b_1d_array_v2i8_clamp; // "vvm.sust.b.1d.array.v2i8.clamp"
+ }
+ break;
+ case '4': // 5 strings to match.
+ if (NameR[22] != 'i')
+ break;
+ switch (NameR[23]) {
+ default: break;
+ case '1': // 2 strings to match.
+ if (memcmp(NameR.data()+24, "6.", 2))
+ break;
+ switch (NameR[26]) {
+ default: break;
+ case 't': // 1 string to match.
+ if (memcmp(NameR.data()+27, "rap", 3))
+ break;
+ return Intrinsic::nvvm_sust_b_1d_array_v4i16_trap; // "vvm.sust.b.1d.array.v4i16.trap"
+ case 'z': // 1 string to match.
+ if (memcmp(NameR.data()+27, "ero", 3))
+ break;
+ return Intrinsic::nvvm_sust_b_1d_array_v4i16_zero; // "vvm.sust.b.1d.array.v4i16.zero"
+ }
+ break;
+ case '3': // 2 strings to match.
+ if (memcmp(NameR.data()+24, "2.", 2))
+ break;
+ switch (NameR[26]) {
+ default: break;
+ case 't': // 1 string to match.
+ if (memcmp(NameR.data()+27, "rap", 3))
+ break;
+ return Intrinsic::nvvm_sust_b_1d_array_v4i32_trap; // "vvm.sust.b.1d.array.v4i32.trap"
+ case 'z': // 1 string to match.
+ if (memcmp(NameR.data()+27, "ero", 3))
+ break;
+ return Intrinsic::nvvm_sust_b_1d_array_v4i32_zero; // "vvm.sust.b.1d.array.v4i32.zero"
+ }
+ break;
+ case '8': // 1 string to match.
+ if (memcmp(NameR.data()+24, ".clamp", 6))
+ break;
+ return Intrinsic::nvvm_sust_b_1d_array_v4i8_clamp; // "vvm.sust.b.1d.array.v4i8.clamp"
+ }
+ break;
+ }
+ break;
+ case '2': // 12 strings to match.
+ if (memcmp(NameR.data()+12, "d.array.v", 9))
+ break;
+ switch (NameR[21]) {
+ default: break;
+ case '2': // 7 strings to match.
+ if (NameR[22] != 'i')
+ break;
+ switch (NameR[23]) {
+ default: break;
+ case '1': // 2 strings to match.
+ if (memcmp(NameR.data()+24, "6.", 2))
+ break;
+ switch (NameR[26]) {
+ default: break;
+ case 't': // 1 string to match.
+ if (memcmp(NameR.data()+27, "rap", 3))
+ break;
+ return Intrinsic::nvvm_sust_b_2d_array_v2i16_trap; // "vvm.sust.b.2d.array.v2i16.trap"
+ case 'z': // 1 string to match.
+ if (memcmp(NameR.data()+27, "ero", 3))
+ break;
+ return Intrinsic::nvvm_sust_b_2d_array_v2i16_zero; // "vvm.sust.b.2d.array.v2i16.zero"
+ }
+ break;
+ case '3': // 2 strings to match.
+ if (memcmp(NameR.data()+24, "2.", 2))
+ break;
+ switch (NameR[26]) {
+ default: break;
+ case 't': // 1 string to match.
+ if (memcmp(NameR.data()+27, "rap", 3))
+ break;
+ return Intrinsic::nvvm_sust_b_2d_array_v2i32_trap; // "vvm.sust.b.2d.array.v2i32.trap"
+ case 'z': // 1 string to match.
+ if (memcmp(NameR.data()+27, "ero", 3))
+ break;
+ return Intrinsic::nvvm_sust_b_2d_array_v2i32_zero; // "vvm.sust.b.2d.array.v2i32.zero"
+ }
+ break;
+ case '6': // 2 strings to match.
+ if (memcmp(NameR.data()+24, "4.", 2))
+ break;
+ switch (NameR[26]) {
+ default: break;
+ case 't': // 1 string to match.
+ if (memcmp(NameR.data()+27, "rap", 3))
+ break;
+ return Intrinsic::nvvm_sust_b_2d_array_v2i64_trap; // "vvm.sust.b.2d.array.v2i64.trap"
+ case 'z': // 1 string to match.
+ if (memcmp(NameR.data()+27, "ero", 3))
+ break;
+ return Intrinsic::nvvm_sust_b_2d_array_v2i64_zero; // "vvm.sust.b.2d.array.v2i64.zero"
+ }
+ break;
+ case '8': // 1 string to match.
+ if (memcmp(NameR.data()+24, ".clamp", 6))
+ break;
+ return Intrinsic::nvvm_sust_b_2d_array_v2i8_clamp; // "vvm.sust.b.2d.array.v2i8.clamp"
+ }
+ break;
+ case '4': // 5 strings to match.
+ if (NameR[22] != 'i')
+ break;
+ switch (NameR[23]) {
+ default: break;
+ case '1': // 2 strings to match.
+ if (memcmp(NameR.data()+24, "6.", 2))
+ break;
+ switch (NameR[26]) {
+ default: break;
+ case 't': // 1 string to match.
+ if (memcmp(NameR.data()+27, "rap", 3))
+ break;
+ return Intrinsic::nvvm_sust_b_2d_array_v4i16_trap; // "vvm.sust.b.2d.array.v4i16.trap"
+ case 'z': // 1 string to match.
+ if (memcmp(NameR.data()+27, "ero", 3))
+ break;
+ return Intrinsic::nvvm_sust_b_2d_array_v4i16_zero; // "vvm.sust.b.2d.array.v4i16.zero"
+ }
+ break;
+ case '3': // 2 strings to match.
+ if (memcmp(NameR.data()+24, "2.", 2))
+ break;
+ switch (NameR[26]) {
+ default: break;
+ case 't': // 1 string to match.
+ if (memcmp(NameR.data()+27, "rap", 3))
+ break;
+ return Intrinsic::nvvm_sust_b_2d_array_v4i32_trap; // "vvm.sust.b.2d.array.v4i32.trap"
+ case 'z': // 1 string to match.
+ if (memcmp(NameR.data()+27, "ero", 3))
+ break;
+ return Intrinsic::nvvm_sust_b_2d_array_v4i32_zero; // "vvm.sust.b.2d.array.v4i32.zero"
+ }
+ break;
+ case '8': // 1 string to match.
+ if (memcmp(NameR.data()+24, ".clamp", 6))
+ break;
+ return Intrinsic::nvvm_sust_b_2d_array_v4i8_clamp; // "vvm.sust.b.2d.array.v4i8.clamp"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 'p': // 8 strings to match.
+ if (NameR[10] != '.')
+ break;
+ switch (NameR[11]) {
+ default: break;
+ case '1': // 4 strings to match.
+ if (memcmp(NameR.data()+12, "d.array.v", 9))
+ break;
+ switch (NameR[21]) {
+ default: break;
+ case '2': // 2 strings to match.
+ if (NameR[22] != 'i')
+ break;
+ switch (NameR[23]) {
+ default: break;
+ case '1': // 1 string to match.
+ if (memcmp(NameR.data()+24, "6.trap", 6))
+ break;
+ return Intrinsic::nvvm_sust_p_1d_array_v2i16_trap; // "vvm.sust.p.1d.array.v2i16.trap"
+ case '3': // 1 string to match.
+ if (memcmp(NameR.data()+24, "2.trap", 6))
+ break;
+ return Intrinsic::nvvm_sust_p_1d_array_v2i32_trap; // "vvm.sust.p.1d.array.v2i32.trap"
+ }
+ break;
+ case '4': // 2 strings to match.
+ if (NameR[22] != 'i')
+ break;
+ switch (NameR[23]) {
+ default: break;
+ case '1': // 1 string to match.
+ if (memcmp(NameR.data()+24, "6.trap", 6))
+ break;
+ return Intrinsic::nvvm_sust_p_1d_array_v4i16_trap; // "vvm.sust.p.1d.array.v4i16.trap"
+ case '3': // 1 string to match.
+ if (memcmp(NameR.data()+24, "2.trap", 6))
+ break;
+ return Intrinsic::nvvm_sust_p_1d_array_v4i32_trap; // "vvm.sust.p.1d.array.v4i32.trap"
+ }
+ break;
+ }
+ break;
+ case '2': // 4 strings to match.
+ if (memcmp(NameR.data()+12, "d.array.v", 9))
+ break;
+ switch (NameR[21]) {
+ default: break;
+ case '2': // 2 strings to match.
+ if (NameR[22] != 'i')
+ break;
+ switch (NameR[23]) {
+ default: break;
+ case '1': // 1 string to match.
+ if (memcmp(NameR.data()+24, "6.trap", 6))
+ break;
+ return Intrinsic::nvvm_sust_p_2d_array_v2i16_trap; // "vvm.sust.p.2d.array.v2i16.trap"
+ case '3': // 1 string to match.
+ if (memcmp(NameR.data()+24, "2.trap", 6))
+ break;
+ return Intrinsic::nvvm_sust_p_2d_array_v2i32_trap; // "vvm.sust.p.2d.array.v2i32.trap"
+ }
+ break;
+ case '4': // 2 strings to match.
+ if (NameR[22] != 'i')
+ break;
+ switch (NameR[23]) {
+ default: break;
+ case '1': // 1 string to match.
+ if (memcmp(NameR.data()+24, "6.trap", 6))
+ break;
+ return Intrinsic::nvvm_sust_p_2d_array_v4i16_trap; // "vvm.sust.p.2d.array.v4i16.trap"
+ case '3': // 1 string to match.
+ if (memcmp(NameR.data()+24, "2.trap", 6))
+ break;
+ return Intrinsic::nvvm_sust_p_2d_array_v4i32_trap; // "vvm.sust.p.2d.array.v4i32.trap"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 't': // 3 strings to match.
+ if (memcmp(NameR.data()+5, "ex.unified.cube.v4", 18))
+ break;
+ switch (NameR[23]) {
+ default: break;
+ case 'f': // 1 string to match.
+ if (memcmp(NameR.data()+24, "32.f32", 6))
+ break;
+ return Intrinsic::nvvm_tex_unified_cube_v4f32_f32; // "vvm.tex.unified.cube.v4f32.f32"
+ case 's': // 1 string to match.
+ if (memcmp(NameR.data()+24, "32.f32", 6))
+ break;
+ return Intrinsic::nvvm_tex_unified_cube_v4s32_f32; // "vvm.tex.unified.cube.v4s32.f32"
+ case 'u': // 1 string to match.
+ if (memcmp(NameR.data()+24, "32.f32", 6))
+ break;
+ return Intrinsic::nvvm_tex_unified_cube_v4u32_f32; // "vvm.tex.unified.cube.v4u32.f32"
+ }
+ break;
+ }
+ break;
+ case 31: // 28 strings to match.
+ if (memcmp(NameR.data()+0, "vvm.", 4))
+ break;
+ switch (NameR[4]) {
+ default: break;
+ case 's': // 10 strings to match.
+ if (memcmp(NameR.data()+5, "ust.b.", 6))
+ break;
+ switch (NameR[11]) {
+ default: break;
+ case '1': // 5 strings to match.
+ if (memcmp(NameR.data()+12, "d.array.v", 9))
+ break;
+ switch (NameR[21]) {
+ default: break;
+ case '2': // 3 strings to match.
+ if (NameR[22] != 'i')
+ break;
+ switch (NameR[23]) {
+ default: break;
+ case '1': // 1 string to match.
+ if (memcmp(NameR.data()+24, "6.clamp", 7))
+ break;
+ return Intrinsic::nvvm_sust_b_1d_array_v2i16_clamp; // "vvm.sust.b.1d.array.v2i16.clamp"
+ case '3': // 1 string to match.
+ if (memcmp(NameR.data()+24, "2.clamp", 7))
+ break;
+ return Intrinsic::nvvm_sust_b_1d_array_v2i32_clamp; // "vvm.sust.b.1d.array.v2i32.clamp"
+ case '6': // 1 string to match.
+ if (memcmp(NameR.data()+24, "4.clamp", 7))
+ break;
+ return Intrinsic::nvvm_sust_b_1d_array_v2i64_clamp; // "vvm.sust.b.1d.array.v2i64.clamp"
+ }
+ break;
+ case '4': // 2 strings to match.
+ if (NameR[22] != 'i')
+ break;
+ switch (NameR[23]) {
+ default: break;
+ case '1': // 1 string to match.
+ if (memcmp(NameR.data()+24, "6.clamp", 7))
+ break;
+ return Intrinsic::nvvm_sust_b_1d_array_v4i16_clamp; // "vvm.sust.b.1d.array.v4i16.clamp"
+ case '3': // 1 string to match.
+ if (memcmp(NameR.data()+24, "2.clamp", 7))
+ break;
+ return Intrinsic::nvvm_sust_b_1d_array_v4i32_clamp; // "vvm.sust.b.1d.array.v4i32.clamp"
+ }
+ break;
+ }
+ break;
+ case '2': // 5 strings to match.
+ if (memcmp(NameR.data()+12, "d.array.v", 9))
+ break;
+ switch (NameR[21]) {
+ default: break;
+ case '2': // 3 strings to match.
+ if (NameR[22] != 'i')
+ break;
+ switch (NameR[23]) {
+ default: break;
+ case '1': // 1 string to match.
+ if (memcmp(NameR.data()+24, "6.clamp", 7))
+ break;
+ return Intrinsic::nvvm_sust_b_2d_array_v2i16_clamp; // "vvm.sust.b.2d.array.v2i16.clamp"
+ case '3': // 1 string to match.
+ if (memcmp(NameR.data()+24, "2.clamp", 7))
+ break;
+ return Intrinsic::nvvm_sust_b_2d_array_v2i32_clamp; // "vvm.sust.b.2d.array.v2i32.clamp"
+ case '6': // 1 string to match.
+ if (memcmp(NameR.data()+24, "4.clamp", 7))
+ break;
+ return Intrinsic::nvvm_sust_b_2d_array_v2i64_clamp; // "vvm.sust.b.2d.array.v2i64.clamp"
+ }
+ break;
+ case '4': // 2 strings to match.
+ if (NameR[22] != 'i')
+ break;
+ switch (NameR[23]) {
+ default: break;
+ case '1': // 1 string to match.
+ if (memcmp(NameR.data()+24, "6.clamp", 7))
+ break;
+ return Intrinsic::nvvm_sust_b_2d_array_v4i16_clamp; // "vvm.sust.b.2d.array.v4i16.clamp"
+ case '3': // 1 string to match.
+ if (memcmp(NameR.data()+24, "2.clamp", 7))
+ break;
+ return Intrinsic::nvvm_sust_b_2d_array_v4i32_clamp; // "vvm.sust.b.2d.array.v4i32.clamp"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 't': // 18 strings to match.
+ switch (NameR[5]) {
+ default: break;
+ case 'e': // 6 strings to match.
+ if (memcmp(NameR.data()+6, "x.", 2))
+ break;
+ switch (NameR[8]) {
+ default: break;
+ case '1': // 3 strings to match.
+ if (memcmp(NameR.data()+9, "d.array.grad.v4", 15))
+ break;
+ switch (NameR[24]) {
+ default: break;
+ case 'f': // 1 string to match.
+ if (memcmp(NameR.data()+25, "32.f32", 6))
+ break;
+ return Intrinsic::nvvm_tex_1d_array_grad_v4f32_f32; // "vvm.tex.1d.array.grad.v4f32.f32"
+ case 's': // 1 string to match.
+ if (memcmp(NameR.data()+25, "32.f32", 6))
+ break;
+ return Intrinsic::nvvm_tex_1d_array_grad_v4s32_f32; // "vvm.tex.1d.array.grad.v4s32.f32"
+ case 'u': // 1 string to match.
+ if (memcmp(NameR.data()+25, "32.f32", 6))
+ break;
+ return Intrinsic::nvvm_tex_1d_array_grad_v4u32_f32; // "vvm.tex.1d.array.grad.v4u32.f32"
+ }
+ break;
+ case '2': // 3 strings to match.
+ if (memcmp(NameR.data()+9, "d.array.grad.v4", 15))
+ break;
+ switch (NameR[24]) {
+ default: break;
+ case 'f': // 1 string to match.
+ if (memcmp(NameR.data()+25, "32.f32", 6))
+ break;
+ return Intrinsic::nvvm_tex_2d_array_grad_v4f32_f32; // "vvm.tex.2d.array.grad.v4f32.f32"
+ case 's': // 1 string to match.
+ if (memcmp(NameR.data()+25, "32.f32", 6))
+ break;
+ return Intrinsic::nvvm_tex_2d_array_grad_v4s32_f32; // "vvm.tex.2d.array.grad.v4s32.f32"
+ case 'u': // 1 string to match.
+ if (memcmp(NameR.data()+25, "32.f32", 6))
+ break;
+ return Intrinsic::nvvm_tex_2d_array_grad_v4u32_f32; // "vvm.tex.2d.array.grad.v4u32.f32"
+ }
+ break;
+ }
+ break;
+ case 'l': // 12 strings to match.
+ if (memcmp(NameR.data()+6, "d4.unified.", 11))
+ break;
+ switch (NameR[17]) {
+ default: break;
+ case 'a': // 3 strings to match.
+ if (memcmp(NameR.data()+18, ".2d.v4", 6))
+ break;
+ switch (NameR[24]) {
+ default: break;
+ case 'f': // 1 string to match.
+ if (memcmp(NameR.data()+25, "32.f32", 6))
+ break;
+ return Intrinsic::nvvm_tld4_unified_a_2d_v4f32_f32; // "vvm.tld4.unified.a.2d.v4f32.f32"
+ case 's': // 1 string to match.
+ if (memcmp(NameR.data()+25, "32.f32", 6))
+ break;
+ return Intrinsic::nvvm_tld4_unified_a_2d_v4s32_f32; // "vvm.tld4.unified.a.2d.v4s32.f32"
+ case 'u': // 1 string to match.
+ if (memcmp(NameR.data()+25, "32.f32", 6))
+ break;
+ return Intrinsic::nvvm_tld4_unified_a_2d_v4u32_f32; // "vvm.tld4.unified.a.2d.v4u32.f32"
+ }
+ break;
+ case 'b': // 3 strings to match.
+ if (memcmp(NameR.data()+18, ".2d.v4", 6))
+ break;
+ switch (NameR[24]) {
+ default: break;
+ case 'f': // 1 string to match.
+ if (memcmp(NameR.data()+25, "32.f32", 6))
+ break;
+ return Intrinsic::nvvm_tld4_unified_b_2d_v4f32_f32; // "vvm.tld4.unified.b.2d.v4f32.f32"
+ case 's': // 1 string to match.
+ if (memcmp(NameR.data()+25, "32.f32", 6))
+ break;
+ return Intrinsic::nvvm_tld4_unified_b_2d_v4s32_f32; // "vvm.tld4.unified.b.2d.v4s32.f32"
+ case 'u': // 1 string to match.
+ if (memcmp(NameR.data()+25, "32.f32", 6))
+ break;
+ return Intrinsic::nvvm_tld4_unified_b_2d_v4u32_f32; // "vvm.tld4.unified.b.2d.v4u32.f32"
+ }
+ break;
+ case 'g': // 3 strings to match.
+ if (memcmp(NameR.data()+18, ".2d.v4", 6))
+ break;
+ switch (NameR[24]) {
+ default: break;
+ case 'f': // 1 string to match.
+ if (memcmp(NameR.data()+25, "32.f32", 6))
+ break;
+ return Intrinsic::nvvm_tld4_unified_g_2d_v4f32_f32; // "vvm.tld4.unified.g.2d.v4f32.f32"
+ case 's': // 1 string to match.
+ if (memcmp(NameR.data()+25, "32.f32", 6))
+ break;
+ return Intrinsic::nvvm_tld4_unified_g_2d_v4s32_f32; // "vvm.tld4.unified.g.2d.v4s32.f32"
+ case 'u': // 1 string to match.
+ if (memcmp(NameR.data()+25, "32.f32", 6))
+ break;
+ return Intrinsic::nvvm_tld4_unified_g_2d_v4u32_f32; // "vvm.tld4.unified.g.2d.v4u32.f32"
+ }
+ break;
+ case 'r': // 3 strings to match.
+ if (memcmp(NameR.data()+18, ".2d.v4", 6))
+ break;
+ switch (NameR[24]) {
+ default: break;
+ case 'f': // 1 string to match.
+ if (memcmp(NameR.data()+25, "32.f32", 6))
+ break;
+ return Intrinsic::nvvm_tld4_unified_r_2d_v4f32_f32; // "vvm.tld4.unified.r.2d.v4f32.f32"
+ case 's': // 1 string to match.
+ if (memcmp(NameR.data()+25, "32.f32", 6))
+ break;
+ return Intrinsic::nvvm_tld4_unified_r_2d_v4s32_f32; // "vvm.tld4.unified.r.2d.v4s32.f32"
+ case 'u': // 1 string to match.
+ if (memcmp(NameR.data()+25, "32.f32", 6))
+ break;
+ return Intrinsic::nvvm_tld4_unified_r_2d_v4u32_f32; // "vvm.tld4.unified.r.2d.v4u32.f32"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 32: // 6 strings to match.
+ if (memcmp(NameR.data()+0, "vvm.tex.", 8))
+ break;
+ switch (NameR[8]) {
+ default: break;
+ case '1': // 3 strings to match.
+ if (memcmp(NameR.data()+9, "d.array.level.v4", 16))
+ break;
+ switch (NameR[25]) {
+ default: break;
+ case 'f': // 1 string to match.
+ if (memcmp(NameR.data()+26, "32.f32", 6))
+ break;
+ return Intrinsic::nvvm_tex_1d_array_level_v4f32_f32; // "vvm.tex.1d.array.level.v4f32.f32"
+ case 's': // 1 string to match.
+ if (memcmp(NameR.data()+26, "32.f32", 6))
+ break;
+ return Intrinsic::nvvm_tex_1d_array_level_v4s32_f32; // "vvm.tex.1d.array.level.v4s32.f32"
+ case 'u': // 1 string to match.
+ if (memcmp(NameR.data()+26, "32.f32", 6))
+ break;
+ return Intrinsic::nvvm_tex_1d_array_level_v4u32_f32; // "vvm.tex.1d.array.level.v4u32.f32"
+ }
+ break;
+ case '2': // 3 strings to match.
+ if (memcmp(NameR.data()+9, "d.array.level.v4", 16))
+ break;
+ switch (NameR[25]) {
+ default: break;
+ case 'f': // 1 string to match.
+ if (memcmp(NameR.data()+26, "32.f32", 6))
+ break;
+ return Intrinsic::nvvm_tex_2d_array_level_v4f32_f32; // "vvm.tex.2d.array.level.v4f32.f32"
+ case 's': // 1 string to match.
+ if (memcmp(NameR.data()+26, "32.f32", 6))
+ break;
+ return Intrinsic::nvvm_tex_2d_array_level_v4s32_f32; // "vvm.tex.2d.array.level.v4s32.f32"
+ case 'u': // 1 string to match.
+ if (memcmp(NameR.data()+26, "32.f32", 6))
+ break;
+ return Intrinsic::nvvm_tex_2d_array_level_v4u32_f32; // "vvm.tex.2d.array.level.v4u32.f32"
+ }
+ break;
+ }
+ break;
+ case 33: // 9 strings to match.
+ if (memcmp(NameR.data()+0, "vvm.tex.unified.", 16))
+ break;
+ switch (NameR[16]) {
+ default: break;
+ case '1': // 3 strings to match.
+ if (memcmp(NameR.data()+17, "d.grad.v4", 9))
+ break;
+ switch (NameR[26]) {
+ default: break;
+ case 'f': // 1 string to match.
+ if (memcmp(NameR.data()+27, "32.f32", 6))
+ break;
+ return Intrinsic::nvvm_tex_unified_1d_grad_v4f32_f32; // "vvm.tex.unified.1d.grad.v4f32.f32"
+ case 's': // 1 string to match.
+ if (memcmp(NameR.data()+27, "32.f32", 6))
+ break;
+ return Intrinsic::nvvm_tex_unified_1d_grad_v4s32_f32; // "vvm.tex.unified.1d.grad.v4s32.f32"
+ case 'u': // 1 string to match.
+ if (memcmp(NameR.data()+27, "32.f32", 6))
+ break;
+ return Intrinsic::nvvm_tex_unified_1d_grad_v4u32_f32; // "vvm.tex.unified.1d.grad.v4u32.f32"
+ }
+ break;
+ case '2': // 3 strings to match.
+ if (memcmp(NameR.data()+17, "d.grad.v4", 9))
+ break;
+ switch (NameR[26]) {
+ default: break;
+ case 'f': // 1 string to match.
+ if (memcmp(NameR.data()+27, "32.f32", 6))
+ break;
+ return Intrinsic::nvvm_tex_unified_2d_grad_v4f32_f32; // "vvm.tex.unified.2d.grad.v4f32.f32"
+ case 's': // 1 string to match.
+ if (memcmp(NameR.data()+27, "32.f32", 6))
+ break;
+ return Intrinsic::nvvm_tex_unified_2d_grad_v4s32_f32; // "vvm.tex.unified.2d.grad.v4s32.f32"
+ case 'u': // 1 string to match.
+ if (memcmp(NameR.data()+27, "32.f32", 6))
+ break;
+ return Intrinsic::nvvm_tex_unified_2d_grad_v4u32_f32; // "vvm.tex.unified.2d.grad.v4u32.f32"
+ }
+ break;
+ case '3': // 3 strings to match.
+ if (memcmp(NameR.data()+17, "d.grad.v4", 9))
+ break;
+ switch (NameR[26]) {
+ default: break;
+ case 'f': // 1 string to match.
+ if (memcmp(NameR.data()+27, "32.f32", 6))
+ break;
+ return Intrinsic::nvvm_tex_unified_3d_grad_v4f32_f32; // "vvm.tex.unified.3d.grad.v4f32.f32"
+ case 's': // 1 string to match.
+ if (memcmp(NameR.data()+27, "32.f32", 6))
+ break;
+ return Intrinsic::nvvm_tex_unified_3d_grad_v4s32_f32; // "vvm.tex.unified.3d.grad.v4s32.f32"
+ case 'u': // 1 string to match.
+ if (memcmp(NameR.data()+27, "32.f32", 6))
+ break;
+ return Intrinsic::nvvm_tex_unified_3d_grad_v4u32_f32; // "vvm.tex.unified.3d.grad.v4u32.f32"
+ }
+ break;
+ }
+ break;
+ case 34: // 24 strings to match.
+ if (memcmp(NameR.data()+0, "vvm.tex.", 8))
+ break;
+ switch (NameR[8]) {
+ default: break;
+ case 'c': // 3 strings to match.
+ if (memcmp(NameR.data()+9, "ube.array.level.v4", 18))
+ break;
+ switch (NameR[27]) {
+ default: break;
+ case 'f': // 1 string to match.
+ if (memcmp(NameR.data()+28, "32.f32", 6))
+ break;
+ return Intrinsic::nvvm_tex_cube_array_level_v4f32_f32; // "vvm.tex.cube.array.level.v4f32.f32"
+ case 's': // 1 string to match.
+ if (memcmp(NameR.data()+28, "32.f32", 6))
+ break;
+ return Intrinsic::nvvm_tex_cube_array_level_v4s32_f32; // "vvm.tex.cube.array.level.v4s32.f32"
+ case 'u': // 1 string to match.
+ if (memcmp(NameR.data()+28, "32.f32", 6))
+ break;
+ return Intrinsic::nvvm_tex_cube_array_level_v4u32_f32; // "vvm.tex.cube.array.level.v4u32.f32"
+ }
+ break;
+ case 'u': // 21 strings to match.
+ if (memcmp(NameR.data()+9, "nified.", 7))
+ break;
+ switch (NameR[16]) {
+ default: break;
+ case '1': // 9 strings to match.
+ if (memcmp(NameR.data()+17, "d.", 2))
+ break;
+ switch (NameR[19]) {
+ default: break;
+ case 'a': // 6 strings to match.
+ if (memcmp(NameR.data()+20, "rray.v4", 7))
+ break;
+ switch (NameR[27]) {
+ default: break;
+ case 'f': // 2 strings to match.
+ if (memcmp(NameR.data()+28, "32.", 3))
+ break;
+ switch (NameR[31]) {
+ default: break;
+ case 'f': // 1 string to match.
+ if (memcmp(NameR.data()+32, "32", 2))
+ break;
+ return Intrinsic::nvvm_tex_unified_1d_array_v4f32_f32; // "vvm.tex.unified.1d.array.v4f32.f32"
+ case 's': // 1 string to match.
+ if (memcmp(NameR.data()+32, "32", 2))
+ break;
+ return Intrinsic::nvvm_tex_unified_1d_array_v4f32_s32; // "vvm.tex.unified.1d.array.v4f32.s32"
+ }
+ break;
+ case 's': // 2 strings to match.
+ if (memcmp(NameR.data()+28, "32.", 3))
+ break;
+ switch (NameR[31]) {
+ default: break;
+ case 'f': // 1 string to match.
+ if (memcmp(NameR.data()+32, "32", 2))
+ break;
+ return Intrinsic::nvvm_tex_unified_1d_array_v4s32_f32; // "vvm.tex.unified.1d.array.v4s32.f32"
+ case 's': // 1 string to match.
+ if (memcmp(NameR.data()+32, "32", 2))
+ break;
+ return Intrinsic::nvvm_tex_unified_1d_array_v4s32_s32; // "vvm.tex.unified.1d.array.v4s32.s32"
+ }
+ break;
+ case 'u': // 2 strings to match.
+ if (memcmp(NameR.data()+28, "32.", 3))
+ break;
+ switch (NameR[31]) {
+ default: break;
+ case 'f': // 1 string to match.
+ if (memcmp(NameR.data()+32, "32", 2))
+ break;
+ return Intrinsic::nvvm_tex_unified_1d_array_v4u32_f32; // "vvm.tex.unified.1d.array.v4u32.f32"
+ case 's': // 1 string to match.
+ if (memcmp(NameR.data()+32, "32", 2))
+ break;
+ return Intrinsic::nvvm_tex_unified_1d_array_v4u32_s32; // "vvm.tex.unified.1d.array.v4u32.s32"
+ }
+ break;
+ }
+ break;
+ case 'l': // 3 strings to match.
+ if (memcmp(NameR.data()+20, "evel.v4", 7))
+ break;
+ switch (NameR[27]) {
+ default: break;
+ case 'f': // 1 string to match.
+ if (memcmp(NameR.data()+28, "32.f32", 6))
+ break;
+ return Intrinsic::nvvm_tex_unified_1d_level_v4f32_f32; // "vvm.tex.unified.1d.level.v4f32.f32"
+ case 's': // 1 string to match.
+ if (memcmp(NameR.data()+28, "32.f32", 6))
+ break;
+ return Intrinsic::nvvm_tex_unified_1d_level_v4s32_f32; // "vvm.tex.unified.1d.level.v4s32.f32"
+ case 'u': // 1 string to match.
+ if (memcmp(NameR.data()+28, "32.f32", 6))
+ break;
+ return Intrinsic::nvvm_tex_unified_1d_level_v4u32_f32; // "vvm.tex.unified.1d.level.v4u32.f32"
+ }
+ break;
+ }
+ break;
+ case '2': // 9 strings to match.
+ if (memcmp(NameR.data()+17, "d.", 2))
+ break;
+ switch (NameR[19]) {
+ default: break;
+ case 'a': // 6 strings to match.
+ if (memcmp(NameR.data()+20, "rray.v4", 7))
+ break;
+ switch (NameR[27]) {
+ default: break;
+ case 'f': // 2 strings to match.
+ if (memcmp(NameR.data()+28, "32.", 3))
+ break;
+ switch (NameR[31]) {
+ default: break;
+ case 'f': // 1 string to match.
+ if (memcmp(NameR.data()+32, "32", 2))
+ break;
+ return Intrinsic::nvvm_tex_unified_2d_array_v4f32_f32; // "vvm.tex.unified.2d.array.v4f32.f32"
+ case 's': // 1 string to match.
+ if (memcmp(NameR.data()+32, "32", 2))
+ break;
+ return Intrinsic::nvvm_tex_unified_2d_array_v4f32_s32; // "vvm.tex.unified.2d.array.v4f32.s32"
+ }
+ break;
+ case 's': // 2 strings to match.
+ if (memcmp(NameR.data()+28, "32.", 3))
+ break;
+ switch (NameR[31]) {
+ default: break;
+ case 'f': // 1 string to match.
+ if (memcmp(NameR.data()+32, "32", 2))
+ break;
+ return Intrinsic::nvvm_tex_unified_2d_array_v4s32_f32; // "vvm.tex.unified.2d.array.v4s32.f32"
+ case 's': // 1 string to match.
+ if (memcmp(NameR.data()+32, "32", 2))
+ break;
+ return Intrinsic::nvvm_tex_unified_2d_array_v4s32_s32; // "vvm.tex.unified.2d.array.v4s32.s32"
+ }
+ break;
+ case 'u': // 2 strings to match.
+ if (memcmp(NameR.data()+28, "32.", 3))
+ break;
+ switch (NameR[31]) {
+ default: break;
+ case 'f': // 1 string to match.
+ if (memcmp(NameR.data()+32, "32", 2))
+ break;
+ return Intrinsic::nvvm_tex_unified_2d_array_v4u32_f32; // "vvm.tex.unified.2d.array.v4u32.f32"
+ case 's': // 1 string to match.
+ if (memcmp(NameR.data()+32, "32", 2))
+ break;
+ return Intrinsic::nvvm_tex_unified_2d_array_v4u32_s32; // "vvm.tex.unified.2d.array.v4u32.s32"
+ }
+ break;
+ }
+ break;
+ case 'l': // 3 strings to match.
+ if (memcmp(NameR.data()+20, "evel.v4", 7))
+ break;
+ switch (NameR[27]) {
+ default: break;
+ case 'f': // 1 string to match.
+ if (memcmp(NameR.data()+28, "32.f32", 6))
+ break;
+ return Intrinsic::nvvm_tex_unified_2d_level_v4f32_f32; // "vvm.tex.unified.2d.level.v4f32.f32"
+ case 's': // 1 string to match.
+ if (memcmp(NameR.data()+28, "32.f32", 6))
+ break;
+ return Intrinsic::nvvm_tex_unified_2d_level_v4s32_f32; // "vvm.tex.unified.2d.level.v4s32.f32"
+ case 'u': // 1 string to match.
+ if (memcmp(NameR.data()+28, "32.f32", 6))
+ break;
+ return Intrinsic::nvvm_tex_unified_2d_level_v4u32_f32; // "vvm.tex.unified.2d.level.v4u32.f32"
+ }
+ break;
+ }
+ break;
+ case '3': // 3 strings to match.
+ if (memcmp(NameR.data()+17, "d.level.v4", 10))
+ break;
+ switch (NameR[27]) {
+ default: break;
+ case 'f': // 1 string to match.
+ if (memcmp(NameR.data()+28, "32.f32", 6))
+ break;
+ return Intrinsic::nvvm_tex_unified_3d_level_v4f32_f32; // "vvm.tex.unified.3d.level.v4f32.f32"
+ case 's': // 1 string to match.
+ if (memcmp(NameR.data()+28, "32.f32", 6))
+ break;
+ return Intrinsic::nvvm_tex_unified_3d_level_v4s32_f32; // "vvm.tex.unified.3d.level.v4s32.f32"
+ case 'u': // 1 string to match.
+ if (memcmp(NameR.data()+28, "32.f32", 6))
+ break;
+ return Intrinsic::nvvm_tex_unified_3d_level_v4u32_f32; // "vvm.tex.unified.3d.level.v4u32.f32"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 36: // 6 strings to match.
+ if (memcmp(NameR.data()+0, "vvm.tex.unified.cube.", 21))
+ break;
+ switch (NameR[21]) {
+ default: break;
+ case 'a': // 3 strings to match.
+ if (memcmp(NameR.data()+22, "rray.v4", 7))
+ break;
+ switch (NameR[29]) {
+ default: break;
+ case 'f': // 1 string to match.
+ if (memcmp(NameR.data()+30, "32.f32", 6))
+ break;
+ return Intrinsic::nvvm_tex_unified_cube_array_v4f32_f32; // "vvm.tex.unified.cube.array.v4f32.f32"
+ case 's': // 1 string to match.
+ if (memcmp(NameR.data()+30, "32.f32", 6))
+ break;
+ return Intrinsic::nvvm_tex_unified_cube_array_v4s32_f32; // "vvm.tex.unified.cube.array.v4s32.f32"
+ case 'u': // 1 string to match.
+ if (memcmp(NameR.data()+30, "32.f32", 6))
+ break;
+ return Intrinsic::nvvm_tex_unified_cube_array_v4u32_f32; // "vvm.tex.unified.cube.array.v4u32.f32"
+ }
+ break;
+ case 'l': // 3 strings to match.
+ if (memcmp(NameR.data()+22, "evel.v4", 7))
+ break;
+ switch (NameR[29]) {
+ default: break;
+ case 'f': // 1 string to match.
+ if (memcmp(NameR.data()+30, "32.f32", 6))
+ break;
+ return Intrinsic::nvvm_tex_unified_cube_level_v4f32_f32; // "vvm.tex.unified.cube.level.v4f32.f32"
+ case 's': // 1 string to match.
+ if (memcmp(NameR.data()+30, "32.f32", 6))
+ break;
+ return Intrinsic::nvvm_tex_unified_cube_level_v4s32_f32; // "vvm.tex.unified.cube.level.v4s32.f32"
+ case 'u': // 1 string to match.
+ if (memcmp(NameR.data()+30, "32.f32", 6))
+ break;
+ return Intrinsic::nvvm_tex_unified_cube_level_v4u32_f32; // "vvm.tex.unified.cube.level.v4u32.f32"
+ }
+ break;
+ }
+ break;
+ case 39: // 6 strings to match.
+ if (memcmp(NameR.data()+0, "vvm.tex.unified.", 16))
+ break;
+ switch (NameR[16]) {
+ default: break;
+ case '1': // 3 strings to match.
+ if (memcmp(NameR.data()+17, "d.array.grad.v4", 15))
+ break;
+ switch (NameR[32]) {
+ default: break;
+ case 'f': // 1 string to match.
+ if (memcmp(NameR.data()+33, "32.f32", 6))
+ break;
+ return Intrinsic::nvvm_tex_unified_1d_array_grad_v4f32_f32; // "vvm.tex.unified.1d.array.grad.v4f32.f32"
+ case 's': // 1 string to match.
+ if (memcmp(NameR.data()+33, "32.f32", 6))
+ break;
+ return Intrinsic::nvvm_tex_unified_1d_array_grad_v4s32_f32; // "vvm.tex.unified.1d.array.grad.v4s32.f32"
+ case 'u': // 1 string to match.
+ if (memcmp(NameR.data()+33, "32.f32", 6))
+ break;
+ return Intrinsic::nvvm_tex_unified_1d_array_grad_v4u32_f32; // "vvm.tex.unified.1d.array.grad.v4u32.f32"
+ }
+ break;
+ case '2': // 3 strings to match.
+ if (memcmp(NameR.data()+17, "d.array.grad.v4", 15))
+ break;
+ switch (NameR[32]) {
+ default: break;
+ case 'f': // 1 string to match.
+ if (memcmp(NameR.data()+33, "32.f32", 6))
+ break;
+ return Intrinsic::nvvm_tex_unified_2d_array_grad_v4f32_f32; // "vvm.tex.unified.2d.array.grad.v4f32.f32"
+ case 's': // 1 string to match.
+ if (memcmp(NameR.data()+33, "32.f32", 6))
+ break;
+ return Intrinsic::nvvm_tex_unified_2d_array_grad_v4s32_f32; // "vvm.tex.unified.2d.array.grad.v4s32.f32"
+ case 'u': // 1 string to match.
+ if (memcmp(NameR.data()+33, "32.f32", 6))
+ break;
+ return Intrinsic::nvvm_tex_unified_2d_array_grad_v4u32_f32; // "vvm.tex.unified.2d.array.grad.v4u32.f32"
+ }
+ break;
+ }
+ break;
+ case 40: // 6 strings to match.
+ if (memcmp(NameR.data()+0, "vvm.tex.unified.", 16))
+ break;
+ switch (NameR[16]) {
+ default: break;
+ case '1': // 3 strings to match.
+ if (memcmp(NameR.data()+17, "d.array.level.v4", 16))
+ break;
+ switch (NameR[33]) {
+ default: break;
+ case 'f': // 1 string to match.
+ if (memcmp(NameR.data()+34, "32.f32", 6))
+ break;
+ return Intrinsic::nvvm_tex_unified_1d_array_level_v4f32_f32; // "vvm.tex.unified.1d.array.level.v4f32.f32"
+ case 's': // 1 string to match.
+ if (memcmp(NameR.data()+34, "32.f32", 6))
+ break;
+ return Intrinsic::nvvm_tex_unified_1d_array_level_v4s32_f32; // "vvm.tex.unified.1d.array.level.v4s32.f32"
+ case 'u': // 1 string to match.
+ if (memcmp(NameR.data()+34, "32.f32", 6))
+ break;
+ return Intrinsic::nvvm_tex_unified_1d_array_level_v4u32_f32; // "vvm.tex.unified.1d.array.level.v4u32.f32"
+ }
+ break;
+ case '2': // 3 strings to match.
+ if (memcmp(NameR.data()+17, "d.array.level.v4", 16))
+ break;
+ switch (NameR[33]) {
+ default: break;
+ case 'f': // 1 string to match.
+ if (memcmp(NameR.data()+34, "32.f32", 6))
+ break;
+ return Intrinsic::nvvm_tex_unified_2d_array_level_v4f32_f32; // "vvm.tex.unified.2d.array.level.v4f32.f32"
+ case 's': // 1 string to match.
+ if (memcmp(NameR.data()+34, "32.f32", 6))
+ break;
+ return Intrinsic::nvvm_tex_unified_2d_array_level_v4s32_f32; // "vvm.tex.unified.2d.array.level.v4s32.f32"
+ case 'u': // 1 string to match.
+ if (memcmp(NameR.data()+34, "32.f32", 6))
+ break;
+ return Intrinsic::nvvm_tex_unified_2d_array_level_v4u32_f32; // "vvm.tex.unified.2d.array.level.v4u32.f32"
+ }
+ break;
+ }
+ break;
+ case 42: // 3 strings to match.
+ if (memcmp(NameR.data()+0, "vvm.tex.unified.cube.array.level.v4", 35))
+ break;
+ switch (NameR[35]) {
+ default: break;
+ case 'f': // 1 string to match.
+ if (memcmp(NameR.data()+36, "32.f32", 6))
+ break;
+ return Intrinsic::nvvm_tex_unified_cube_array_level_v4f32_f32; // "vvm.tex.unified.cube.array.level.v4f32.f32"
+ case 's': // 1 string to match.
+ if (memcmp(NameR.data()+36, "32.f32", 6))
+ break;
+ return Intrinsic::nvvm_tex_unified_cube_array_level_v4s32_f32; // "vvm.tex.unified.cube.array.level.v4s32.f32"
+ case 'u': // 1 string to match.
+ if (memcmp(NameR.data()+36, "32.f32", 6))
+ break;
+ return Intrinsic::nvvm_tex_unified_cube_array_level_v4u32_f32; // "vvm.tex.unified.cube.array.level.v4u32.f32"
+ }
+ break;
+ }
+ break; // end of 'n' case.
+ case 'o':
+ if (NameR.startswith("bjectsize.")) return Intrinsic::objectsize;
+ break; // end of 'o' case.
+ case 'p':
+ if (NameR.startswith("tr.annotation.")) return Intrinsic::ptr_annotation;
+ if (NameR.startswith("pc.mtctr.")) return Intrinsic::ppc_mtctr;
+ if (NameR.startswith("owi.")) return Intrinsic::powi;
+ if (NameR.startswith("ow.")) return Intrinsic::pow;
+ switch (NameR.size()) {
+ default: break;
+ case 7: // 8 strings to match.
+ switch (NameR[0]) {
+ default: break;
+ case 'c': // 1 string to match.
+ if (memcmp(NameR.data()+1, "marker", 6))
+ break;
+ return Intrinsic::pcmarker; // "cmarker"
+ case 'p': // 6 strings to match.
+ if (memcmp(NameR.data()+1, "c.", 2))
+ break;
+ switch (NameR[3]) {
+ default: break;
+ case 'd': // 5 strings to match.
+ if (memcmp(NameR.data()+4, "cb", 2))
+ break;
+ switch (NameR[6]) {
+ default: break;
+ case 'a': // 1 string to match.
+ return Intrinsic::ppc_dcba; // "pc.dcba"
+ case 'f': // 1 string to match.
+ return Intrinsic::ppc_dcbf; // "pc.dcbf"
+ case 'i': // 1 string to match.
+ return Intrinsic::ppc_dcbi; // "pc.dcbi"
+ case 't': // 1 string to match.
+ return Intrinsic::ppc_dcbt; // "pc.dcbt"
+ case 'z': // 1 string to match.
+ return Intrinsic::ppc_dcbz; // "pc.dcbz"
+ }
+ break;
+ case 's': // 1 string to match.
+ if (memcmp(NameR.data()+4, "ync", 3))
+ break;
+ return Intrinsic::ppc_sync; // "pc.sync"
+ }
+ break;
+ case 'r': // 1 string to match.
+ if (memcmp(NameR.data()+1, "efetch", 6))
+ break;
+ return Intrinsic::prefetch; // "refetch"
+ }
+ break;
+ case 8: // 2 strings to match.
+ if (memcmp(NameR.data()+0, "pc.dcb", 6))
+ break;
+ switch (NameR[6]) {
+ default: break;
+ case 's': // 1 string to match.
+ if (NameR[7] != 't')
+ break;
+ return Intrinsic::ppc_dcbst; // "pc.dcbst"
+ case 'z': // 1 string to match.
+ if (NameR[7] != 'l')
+ break;
+ return Intrinsic::ppc_dcbzl; // "pc.dcbzl"
+ }
+ break;
+ case 9: // 1 string to match.
+ if (memcmp(NameR.data()+0, "pc.dcbtst", 9))
+ break;
+ return Intrinsic::ppc_dcbtst; // "pc.dcbtst"
+ case 11: // 5 strings to match.
+ if (memcmp(NameR.data()+0, "tx.", 3))
+ break;
+ switch (NameR[3]) {
+ default: break;
+ case 'b': // 1 string to match.
+ if (memcmp(NameR.data()+4, "ar.sync", 7))
+ break;
+ return Intrinsic::ptx_bar_sync; // "tx.bar.sync"
+ case 'r': // 4 strings to match.
+ if (memcmp(NameR.data()+4, "ead.pm", 6))
+ break;
+ switch (NameR[10]) {
+ default: break;
+ case '0': // 1 string to match.
+ return Intrinsic::ptx_read_pm0; // "tx.read.pm0"
+ case '1': // 1 string to match.
+ return Intrinsic::ptx_read_pm1; // "tx.read.pm1"
+ case '2': // 1 string to match.
+ return Intrinsic::ptx_read_pm2; // "tx.read.pm2"
+ case '3': // 1 string to match.
+ return Intrinsic::ptx_read_pm3; // "tx.read.pm3"
+ }
+ break;
+ }
+ break;
+ case 12: // 1 string to match.
+ if (memcmp(NameR.data()+0, "tx.read.smid", 12))
+ break;
+ return Intrinsic::ptx_read_smid; // "tx.read.smid"
+ case 13: // 6 strings to match.
+ if (memcmp(NameR.data()+0, "tx.read.", 8))
+ break;
+ switch (NameR[8]) {
+ default: break;
+ case 'c': // 1 string to match.
+ if (memcmp(NameR.data()+9, "lock", 4))
+ break;
+ return Intrinsic::ptx_read_clock; // "tx.read.clock"
+ case 'n': // 1 string to match.
+ if (memcmp(NameR.data()+9, "smid", 4))
+ break;
+ return Intrinsic::ptx_read_nsmid; // "tx.read.nsmid"
+ case 't': // 4 strings to match.
+ if (memcmp(NameR.data()+9, "id.", 3))
+ break;
+ switch (NameR[12]) {
+ default: break;
+ case 'w': // 1 string to match.
+ return Intrinsic::ptx_read_tid_w; // "tx.read.tid.w"
+ case 'x': // 1 string to match.
+ return Intrinsic::ptx_read_tid_x; // "tx.read.tid.x"
+ case 'y': // 1 string to match.
+ return Intrinsic::ptx_read_tid_y; // "tx.read.tid.y"
+ case 'z': // 1 string to match.
+ return Intrinsic::ptx_read_tid_z; // "tx.read.tid.z"
+ }
+ break;
+ }
+ break;
+ case 14: // 12 strings to match.
+ switch (NameR[0]) {
+ default: break;
+ case 'p': // 5 strings to match.
+ if (memcmp(NameR.data()+1, "c.altivec.", 10))
+ break;
+ switch (NameR[11]) {
+ default: break;
+ case 'd': // 2 strings to match.
+ if (NameR[12] != 's')
+ break;
+ switch (NameR[13]) {
+ default: break;
+ case 's': // 1 string to match.
+ return Intrinsic::ppc_altivec_dss; // "pc.altivec.dss"
+ case 't': // 1 string to match.
+ return Intrinsic::ppc_altivec_dst; // "pc.altivec.dst"
+ }
+ break;
+ case 'l': // 1 string to match.
+ if (memcmp(NameR.data()+12, "vx", 2))
+ break;
+ return Intrinsic::ppc_altivec_lvx; // "pc.altivec.lvx"
+ case 'v': // 2 strings to match.
+ if (NameR[12] != 's')
+ break;
+ switch (NameR[13]) {
+ default: break;
+ case 'l': // 1 string to match.
+ return Intrinsic::ppc_altivec_vsl; // "pc.altivec.vsl"
+ case 'r': // 1 string to match.
+ return Intrinsic::ppc_altivec_vsr; // "pc.altivec.vsr"
+ }
+ break;
+ }
+ break;
+ case 't': // 7 strings to match.
+ if (memcmp(NameR.data()+1, "x.read.", 7))
+ break;
+ switch (NameR[8]) {
+ default: break;
+ case 'g': // 1 string to match.
+ if (memcmp(NameR.data()+9, "ridid", 5))
+ break;
+ return Intrinsic::ptx_read_gridid; // "tx.read.gridid"
+ case 'l': // 1 string to match.
+ if (memcmp(NameR.data()+9, "aneid", 5))
+ break;
+ return Intrinsic::ptx_read_laneid; // "tx.read.laneid"
+ case 'n': // 4 strings to match.
+ if (memcmp(NameR.data()+9, "tid.", 4))
+ break;
+ switch (NameR[13]) {
+ default: break;
+ case 'w': // 1 string to match.
+ return Intrinsic::ptx_read_ntid_w; // "tx.read.ntid.w"
+ case 'x': // 1 string to match.
+ return Intrinsic::ptx_read_ntid_x; // "tx.read.ntid.x"
+ case 'y': // 1 string to match.
+ return Intrinsic::ptx_read_ntid_y; // "tx.read.ntid.y"
+ case 'z': // 1 string to match.
+ return Intrinsic::ptx_read_ntid_z; // "tx.read.ntid.z"
+ }
+ break;
+ case 'w': // 1 string to match.
+ if (memcmp(NameR.data()+9, "arpid", 5))
+ break;
+ return Intrinsic::ptx_read_warpid; // "tx.read.warpid"
+ }
+ break;
+ }
+ break;
+ case 15: // 23 strings to match.
+ switch (NameR[0]) {
+ default: break;
+ case 'p': // 17 strings to match.
+ if (memcmp(NameR.data()+1, "c.altivec.", 10))
+ break;
+ switch (NameR[11]) {
+ default: break;
+ case 'd': // 1 string to match.
+ if (memcmp(NameR.data()+12, "stt", 3))
+ break;
+ return Intrinsic::ppc_altivec_dstt; // "pc.altivec.dstt"
+ case 'l': // 3 strings to match.
+ if (NameR[12] != 'v')
+ break;
+ switch (NameR[13]) {
+ default: break;
+ case 's': // 2 strings to match.
+ switch (NameR[14]) {
+ default: break;
+ case 'l': // 1 string to match.
+ return Intrinsic::ppc_altivec_lvsl; // "pc.altivec.lvsl"
+ case 'r': // 1 string to match.
+ return Intrinsic::ppc_altivec_lvsr; // "pc.altivec.lvsr"
+ }
+ break;
+ case 'x': // 1 string to match.
+ if (NameR[14] != 'l')
+ break;
+ return Intrinsic::ppc_altivec_lvxl; // "pc.altivec.lvxl"
+ }
+ break;
+ case 's': // 1 string to match.
+ if (memcmp(NameR.data()+12, "tvx", 3))
+ break;
+ return Intrinsic::ppc_altivec_stvx; // "pc.altivec.stvx"
+ case 'v': // 12 strings to match.
+ switch (NameR[12]) {
+ default: break;
+ case 'r': // 3 strings to match.
+ if (NameR[13] != 'l')
+ break;
+ switch (NameR[14]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::ppc_altivec_vrlb; // "pc.altivec.vrlb"
+ case 'h': // 1 string to match.
+ return Intrinsic::ppc_altivec_vrlh; // "pc.altivec.vrlh"
+ case 'w': // 1 string to match.
+ return Intrinsic::ppc_altivec_vrlw; // "pc.altivec.vrlw"
+ }
+ break;
+ case 's': // 9 strings to match.
+ switch (NameR[13]) {
+ default: break;
+ case 'e': // 1 string to match.
+ if (NameR[14] != 'l')
+ break;
+ return Intrinsic::ppc_altivec_vsel; // "pc.altivec.vsel"
+ case 'l': // 4 strings to match.
+ switch (NameR[14]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::ppc_altivec_vslb; // "pc.altivec.vslb"
+ case 'h': // 1 string to match.
+ return Intrinsic::ppc_altivec_vslh; // "pc.altivec.vslh"
+ case 'o': // 1 string to match.
+ return Intrinsic::ppc_altivec_vslo; // "pc.altivec.vslo"
+ case 'w': // 1 string to match.
+ return Intrinsic::ppc_altivec_vslw; // "pc.altivec.vslw"
+ }
+ break;
+ case 'r': // 4 strings to match.
+ switch (NameR[14]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::ppc_altivec_vsrb; // "pc.altivec.vsrb"
+ case 'h': // 1 string to match.
+ return Intrinsic::ppc_altivec_vsrh; // "pc.altivec.vsrh"
+ case 'o': // 1 string to match.
+ return Intrinsic::ppc_altivec_vsro; // "pc.altivec.vsro"
+ case 'w': // 1 string to match.
+ return Intrinsic::ppc_altivec_vsrw; // "pc.altivec.vsrw"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 't': // 6 strings to match.
+ if (memcmp(NameR.data()+1, "x.read.", 7))
+ break;
+ switch (NameR[8]) {
+ default: break;
+ case 'c': // 5 strings to match.
+ switch (NameR[9]) {
+ default: break;
+ case 'l': // 1 string to match.
+ if (memcmp(NameR.data()+10, "ock64", 5))
+ break;
+ return Intrinsic::ptx_read_clock64; // "tx.read.clock64"
+ case 't': // 4 strings to match.
+ if (memcmp(NameR.data()+10, "aid.", 4))
+ break;
+ switch (NameR[14]) {
+ default: break;
+ case 'w': // 1 string to match.
+ return Intrinsic::ptx_read_ctaid_w; // "tx.read.ctaid.w"
+ case 'x': // 1 string to match.
+ return Intrinsic::ptx_read_ctaid_x; // "tx.read.ctaid.x"
+ case 'y': // 1 string to match.
+ return Intrinsic::ptx_read_ctaid_y; // "tx.read.ctaid.y"
+ case 'z': // 1 string to match.
+ return Intrinsic::ptx_read_ctaid_z; // "tx.read.ctaid.z"
+ }
+ break;
+ }
+ break;
+ case 'n': // 1 string to match.
+ if (memcmp(NameR.data()+9, "warpid", 6))
+ break;
+ return Intrinsic::ptx_read_nwarpid; // "tx.read.nwarpid"
+ }
+ break;
+ }
+ break;
+ case 16: // 21 strings to match.
+ switch (NameR[0]) {
+ default: break;
+ case 'p': // 17 strings to match.
+ if (memcmp(NameR.data()+1, "c.altivec.", 10))
+ break;
+ switch (NameR[11]) {
+ default: break;
+ case 'd': // 1 string to match.
+ if (memcmp(NameR.data()+12, "stst", 4))
+ break;
+ return Intrinsic::ppc_altivec_dstst; // "pc.altivec.dstst"
+ case 'l': // 3 strings to match.
+ if (memcmp(NameR.data()+12, "ve", 2))
+ break;
+ switch (NameR[14]) {
+ default: break;
+ case 'b': // 1 string to match.
+ if (NameR[15] != 'x')
+ break;
+ return Intrinsic::ppc_altivec_lvebx; // "pc.altivec.lvebx"
+ case 'h': // 1 string to match.
+ if (NameR[15] != 'x')
+ break;
+ return Intrinsic::ppc_altivec_lvehx; // "pc.altivec.lvehx"
+ case 'w': // 1 string to match.
+ if (NameR[15] != 'x')
+ break;
+ return Intrinsic::ppc_altivec_lvewx; // "pc.altivec.lvewx"
+ }
+ break;
+ case 's': // 1 string to match.
+ if (memcmp(NameR.data()+12, "tvxl", 4))
+ break;
+ return Intrinsic::ppc_altivec_stvxl; // "pc.altivec.stvxl"
+ case 'v': // 12 strings to match.
+ switch (NameR[12]) {
+ default: break;
+ case 'c': // 2 strings to match.
+ if (NameR[13] != 'f')
+ break;
+ switch (NameR[14]) {
+ default: break;
+ case 's': // 1 string to match.
+ if (NameR[15] != 'x')
+ break;
+ return Intrinsic::ppc_altivec_vcfsx; // "pc.altivec.vcfsx"
+ case 'u': // 1 string to match.
+ if (NameR[15] != 'x')
+ break;
+ return Intrinsic::ppc_altivec_vcfux; // "pc.altivec.vcfux"
+ }
+ break;
+ case 'p': // 2 strings to match.
+ switch (NameR[13]) {
+ default: break;
+ case 'e': // 1 string to match.
+ if (memcmp(NameR.data()+14, "rm", 2))
+ break;
+ return Intrinsic::ppc_altivec_vperm; // "pc.altivec.vperm"
+ case 'k': // 1 string to match.
+ if (memcmp(NameR.data()+14, "px", 2))
+ break;
+ return Intrinsic::ppc_altivec_vpkpx; // "pc.altivec.vpkpx"
+ }
+ break;
+ case 'r': // 5 strings to match.
+ switch (NameR[13]) {
+ default: break;
+ case 'e': // 1 string to match.
+ if (memcmp(NameR.data()+14, "fp", 2))
+ break;
+ return Intrinsic::ppc_altivec_vrefp; // "pc.altivec.vrefp"
+ case 'f': // 4 strings to match.
+ if (NameR[14] != 'i')
+ break;
+ switch (NameR[15]) {
+ default: break;
+ case 'm': // 1 string to match.
+ return Intrinsic::ppc_altivec_vrfim; // "pc.altivec.vrfim"
+ case 'n': // 1 string to match.
+ return Intrinsic::ppc_altivec_vrfin; // "pc.altivec.vrfin"
+ case 'p': // 1 string to match.
+ return Intrinsic::ppc_altivec_vrfip; // "pc.altivec.vrfip"
+ case 'z': // 1 string to match.
+ return Intrinsic::ppc_altivec_vrfiz; // "pc.altivec.vrfiz"
+ }
+ break;
+ }
+ break;
+ case 's': // 3 strings to match.
+ if (memcmp(NameR.data()+13, "ra", 2))
+ break;
+ switch (NameR[15]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::ppc_altivec_vsrab; // "pc.altivec.vsrab"
+ case 'h': // 1 string to match.
+ return Intrinsic::ppc_altivec_vsrah; // "pc.altivec.vsrah"
+ case 'w': // 1 string to match.
+ return Intrinsic::ppc_altivec_vsraw; // "pc.altivec.vsraw"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 't': // 4 strings to match.
+ if (memcmp(NameR.data()+1, "x.read.nctaid.", 14))
+ break;
+ switch (NameR[15]) {
+ default: break;
+ case 'w': // 1 string to match.
+ return Intrinsic::ptx_read_nctaid_w; // "tx.read.nctaid.w"
+ case 'x': // 1 string to match.
+ return Intrinsic::ptx_read_nctaid_x; // "tx.read.nctaid.x"
+ case 'y': // 1 string to match.
+ return Intrinsic::ptx_read_nctaid_y; // "tx.read.nctaid.y"
+ case 'z': // 1 string to match.
+ return Intrinsic::ptx_read_nctaid_z; // "tx.read.nctaid.z"
+ }
+ break;
+ }
+ break;
+ case 17: // 29 strings to match.
+ if (memcmp(NameR.data()+0, "pc.altivec.", 11))
+ break;
+ switch (NameR[11]) {
+ default: break;
+ case 'd': // 2 strings to match.
+ if (NameR[12] != 's')
+ break;
+ switch (NameR[13]) {
+ default: break;
+ case 's': // 1 string to match.
+ if (memcmp(NameR.data()+14, "all", 3))
+ break;
+ return Intrinsic::ppc_altivec_dssall; // "pc.altivec.dssall"
+ case 't': // 1 string to match.
+ if (memcmp(NameR.data()+14, "stt", 3))
+ break;
+ return Intrinsic::ppc_altivec_dststt; // "pc.altivec.dststt"
+ }
+ break;
+ case 'm': // 2 strings to match.
+ switch (NameR[12]) {
+ default: break;
+ case 'f': // 1 string to match.
+ if (memcmp(NameR.data()+13, "vscr", 4))
+ break;
+ return Intrinsic::ppc_altivec_mfvscr; // "pc.altivec.mfvscr"
+ case 't': // 1 string to match.
+ if (memcmp(NameR.data()+13, "vscr", 4))
+ break;
+ return Intrinsic::ppc_altivec_mtvscr; // "pc.altivec.mtvscr"
+ }
+ break;
+ case 's': // 3 strings to match.
+ if (memcmp(NameR.data()+12, "tve", 3))
+ break;
+ switch (NameR[15]) {
+ default: break;
+ case 'b': // 1 string to match.
+ if (NameR[16] != 'x')
+ break;
+ return Intrinsic::ppc_altivec_stvebx; // "pc.altivec.stvebx"
+ case 'h': // 1 string to match.
+ if (NameR[16] != 'x')
+ break;
+ return Intrinsic::ppc_altivec_stvehx; // "pc.altivec.stvehx"
+ case 'w': // 1 string to match.
+ if (NameR[16] != 'x')
+ break;
+ return Intrinsic::ppc_altivec_stvewx; // "pc.altivec.stvewx"
+ }
+ break;
+ case 'v': // 22 strings to match.
+ switch (NameR[12]) {
+ default: break;
+ case 'a': // 6 strings to match.
+ if (memcmp(NameR.data()+13, "vg", 2))
+ break;
+ switch (NameR[15]) {
+ default: break;
+ case 's': // 3 strings to match.
+ switch (NameR[16]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::ppc_altivec_vavgsb; // "pc.altivec.vavgsb"
+ case 'h': // 1 string to match.
+ return Intrinsic::ppc_altivec_vavgsh; // "pc.altivec.vavgsh"
+ case 'w': // 1 string to match.
+ return Intrinsic::ppc_altivec_vavgsw; // "pc.altivec.vavgsw"
+ }
+ break;
+ case 'u': // 3 strings to match.
+ switch (NameR[16]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::ppc_altivec_vavgub; // "pc.altivec.vavgub"
+ case 'h': // 1 string to match.
+ return Intrinsic::ppc_altivec_vavguh; // "pc.altivec.vavguh"
+ case 'w': // 1 string to match.
+ return Intrinsic::ppc_altivec_vavguw; // "pc.altivec.vavguw"
+ }
+ break;
+ }
+ break;
+ case 'c': // 2 strings to match.
+ if (NameR[13] != 't')
+ break;
+ switch (NameR[14]) {
+ default: break;
+ case 's': // 1 string to match.
+ if (memcmp(NameR.data()+15, "xs", 2))
+ break;
+ return Intrinsic::ppc_altivec_vctsxs; // "pc.altivec.vctsxs"
+ case 'u': // 1 string to match.
+ if (memcmp(NameR.data()+15, "xs", 2))
+ break;
+ return Intrinsic::ppc_altivec_vctuxs; // "pc.altivec.vctuxs"
+ }
+ break;
+ case 'm': // 14 strings to match.
+ switch (NameR[13]) {
+ default: break;
+ case 'a': // 7 strings to match.
+ if (NameR[14] != 'x')
+ break;
+ switch (NameR[15]) {
+ default: break;
+ case 'f': // 1 string to match.
+ if (NameR[16] != 'p')
+ break;
+ return Intrinsic::ppc_altivec_vmaxfp; // "pc.altivec.vmaxfp"
+ case 's': // 3 strings to match.
+ switch (NameR[16]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::ppc_altivec_vmaxsb; // "pc.altivec.vmaxsb"
+ case 'h': // 1 string to match.
+ return Intrinsic::ppc_altivec_vmaxsh; // "pc.altivec.vmaxsh"
+ case 'w': // 1 string to match.
+ return Intrinsic::ppc_altivec_vmaxsw; // "pc.altivec.vmaxsw"
+ }
+ break;
+ case 'u': // 3 strings to match.
+ switch (NameR[16]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::ppc_altivec_vmaxub; // "pc.altivec.vmaxub"
+ case 'h': // 1 string to match.
+ return Intrinsic::ppc_altivec_vmaxuh; // "pc.altivec.vmaxuh"
+ case 'w': // 1 string to match.
+ return Intrinsic::ppc_altivec_vmaxuw; // "pc.altivec.vmaxuw"
+ }
+ break;
+ }
+ break;
+ case 'i': // 7 strings to match.
+ if (NameR[14] != 'n')
+ break;
+ switch (NameR[15]) {
+ default: break;
+ case 'f': // 1 string to match.
+ if (NameR[16] != 'p')
+ break;
+ return Intrinsic::ppc_altivec_vminfp; // "pc.altivec.vminfp"
+ case 's': // 3 strings to match.
+ switch (NameR[16]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::ppc_altivec_vminsb; // "pc.altivec.vminsb"
+ case 'h': // 1 string to match.
+ return Intrinsic::ppc_altivec_vminsh; // "pc.altivec.vminsh"
+ case 'w': // 1 string to match.
+ return Intrinsic::ppc_altivec_vminsw; // "pc.altivec.vminsw"
+ }
+ break;
+ case 'u': // 3 strings to match.
+ switch (NameR[16]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::ppc_altivec_vminub; // "pc.altivec.vminub"
+ case 'h': // 1 string to match.
+ return Intrinsic::ppc_altivec_vminuh; // "pc.altivec.vminuh"
+ case 'w': // 1 string to match.
+ return Intrinsic::ppc_altivec_vminuw; // "pc.altivec.vminuw"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 18: // 38 strings to match.
+ if (memcmp(NameR.data()+0, "pc.altivec.v", 12))
+ break;
+ switch (NameR[12]) {
+ default: break;
+ case 'a': // 7 strings to match.
+ if (memcmp(NameR.data()+13, "dd", 2))
+ break;
+ switch (NameR[15]) {
+ default: break;
+ case 'c': // 1 string to match.
+ if (memcmp(NameR.data()+16, "uw", 2))
+ break;
+ return Intrinsic::ppc_altivec_vaddcuw; // "pc.altivec.vaddcuw"
+ case 's': // 3 strings to match.
+ switch (NameR[16]) {
+ default: break;
+ case 'b': // 1 string to match.
+ if (NameR[17] != 's')
+ break;
+ return Intrinsic::ppc_altivec_vaddsbs; // "pc.altivec.vaddsbs"
+ case 'h': // 1 string to match.
+ if (NameR[17] != 's')
+ break;
+ return Intrinsic::ppc_altivec_vaddshs; // "pc.altivec.vaddshs"
+ case 'w': // 1 string to match.
+ if (NameR[17] != 's')
+ break;
+ return Intrinsic::ppc_altivec_vaddsws; // "pc.altivec.vaddsws"
+ }
+ break;
+ case 'u': // 3 strings to match.
+ switch (NameR[16]) {
+ default: break;
+ case 'b': // 1 string to match.
+ if (NameR[17] != 's')
+ break;
+ return Intrinsic::ppc_altivec_vaddubs; // "pc.altivec.vaddubs"
+ case 'h': // 1 string to match.
+ if (NameR[17] != 's')
+ break;
+ return Intrinsic::ppc_altivec_vadduhs; // "pc.altivec.vadduhs"
+ case 'w': // 1 string to match.
+ if (NameR[17] != 's')
+ break;
+ return Intrinsic::ppc_altivec_vadduws; // "pc.altivec.vadduws"
+ }
+ break;
+ }
+ break;
+ case 'c': // 1 string to match.
+ if (memcmp(NameR.data()+13, "mpbfp", 5))
+ break;
+ return Intrinsic::ppc_altivec_vcmpbfp; // "pc.altivec.vcmpbfp"
+ case 'l': // 1 string to match.
+ if (memcmp(NameR.data()+13, "ogefp", 5))
+ break;
+ return Intrinsic::ppc_altivec_vlogefp; // "pc.altivec.vlogefp"
+ case 'm': // 9 strings to match.
+ switch (NameR[13]) {
+ default: break;
+ case 'a': // 1 string to match.
+ if (memcmp(NameR.data()+14, "ddfp", 4))
+ break;
+ return Intrinsic::ppc_altivec_vmaddfp; // "pc.altivec.vmaddfp"
+ case 'u': // 8 strings to match.
+ if (NameR[14] != 'l')
+ break;
+ switch (NameR[15]) {
+ default: break;
+ case 'e': // 4 strings to match.
+ switch (NameR[16]) {
+ default: break;
+ case 's': // 2 strings to match.
+ switch (NameR[17]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::ppc_altivec_vmulesb; // "pc.altivec.vmulesb"
+ case 'h': // 1 string to match.
+ return Intrinsic::ppc_altivec_vmulesh; // "pc.altivec.vmulesh"
+ }
+ break;
+ case 'u': // 2 strings to match.
+ switch (NameR[17]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::ppc_altivec_vmuleub; // "pc.altivec.vmuleub"
+ case 'h': // 1 string to match.
+ return Intrinsic::ppc_altivec_vmuleuh; // "pc.altivec.vmuleuh"
+ }
+ break;
+ }
+ break;
+ case 'o': // 4 strings to match.
+ switch (NameR[16]) {
+ default: break;
+ case 's': // 2 strings to match.
+ switch (NameR[17]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::ppc_altivec_vmulosb; // "pc.altivec.vmulosb"
+ case 'h': // 1 string to match.
+ return Intrinsic::ppc_altivec_vmulosh; // "pc.altivec.vmulosh"
+ }
+ break;
+ case 'u': // 2 strings to match.
+ switch (NameR[17]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::ppc_altivec_vmuloub; // "pc.altivec.vmuloub"
+ case 'h': // 1 string to match.
+ return Intrinsic::ppc_altivec_vmulouh; // "pc.altivec.vmulouh"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 'p': // 6 strings to match.
+ if (NameR[13] != 'k')
+ break;
+ switch (NameR[14]) {
+ default: break;
+ case 's': // 4 strings to match.
+ switch (NameR[15]) {
+ default: break;
+ case 'h': // 2 strings to match.
+ switch (NameR[16]) {
+ default: break;
+ case 's': // 1 string to match.
+ if (NameR[17] != 's')
+ break;
+ return Intrinsic::ppc_altivec_vpkshss; // "pc.altivec.vpkshss"
+ case 'u': // 1 string to match.
+ if (NameR[17] != 's')
+ break;
+ return Intrinsic::ppc_altivec_vpkshus; // "pc.altivec.vpkshus"
+ }
+ break;
+ case 'w': // 2 strings to match.
+ switch (NameR[16]) {
+ default: break;
+ case 's': // 1 string to match.
+ if (NameR[17] != 's')
+ break;
+ return Intrinsic::ppc_altivec_vpkswss; // "pc.altivec.vpkswss"
+ case 'u': // 1 string to match.
+ if (NameR[17] != 's')
+ break;
+ return Intrinsic::ppc_altivec_vpkswus; // "pc.altivec.vpkswus"
+ }
+ break;
+ }
+ break;
+ case 'u': // 2 strings to match.
+ switch (NameR[15]) {
+ default: break;
+ case 'h': // 1 string to match.
+ if (memcmp(NameR.data()+16, "us", 2))
+ break;
+ return Intrinsic::ppc_altivec_vpkuhus; // "pc.altivec.vpkuhus"
+ case 'w': // 1 string to match.
+ if (memcmp(NameR.data()+16, "us", 2))
+ break;
+ return Intrinsic::ppc_altivec_vpkuwus; // "pc.altivec.vpkuwus"
+ }
+ break;
+ }
+ break;
+ case 's': // 8 strings to match.
+ if (NameR[13] != 'u')
+ break;
+ switch (NameR[14]) {
+ default: break;
+ case 'b': // 7 strings to match.
+ switch (NameR[15]) {
+ default: break;
+ case 'c': // 1 string to match.
+ if (memcmp(NameR.data()+16, "uw", 2))
+ break;
+ return Intrinsic::ppc_altivec_vsubcuw; // "pc.altivec.vsubcuw"
+ case 's': // 3 strings to match.
+ switch (NameR[16]) {
+ default: break;
+ case 'b': // 1 string to match.
+ if (NameR[17] != 's')
+ break;
+ return Intrinsic::ppc_altivec_vsubsbs; // "pc.altivec.vsubsbs"
+ case 'h': // 1 string to match.
+ if (NameR[17] != 's')
+ break;
+ return Intrinsic::ppc_altivec_vsubshs; // "pc.altivec.vsubshs"
+ case 'w': // 1 string to match.
+ if (NameR[17] != 's')
+ break;
+ return Intrinsic::ppc_altivec_vsubsws; // "pc.altivec.vsubsws"
+ }
+ break;
+ case 'u': // 3 strings to match.
+ switch (NameR[16]) {
+ default: break;
+ case 'b': // 1 string to match.
+ if (NameR[17] != 's')
+ break;
+ return Intrinsic::ppc_altivec_vsububs; // "pc.altivec.vsububs"
+ case 'h': // 1 string to match.
+ if (NameR[17] != 's')
+ break;
+ return Intrinsic::ppc_altivec_vsubuhs; // "pc.altivec.vsubuhs"
+ case 'w': // 1 string to match.
+ if (NameR[17] != 's')
+ break;
+ return Intrinsic::ppc_altivec_vsubuws; // "pc.altivec.vsubuws"
+ }
+ break;
+ }
+ break;
+ case 'm': // 1 string to match.
+ if (memcmp(NameR.data()+15, "sws", 3))
+ break;
+ return Intrinsic::ppc_altivec_vsumsws; // "pc.altivec.vsumsws"
+ }
+ break;
+ case 'u': // 6 strings to match.
+ if (memcmp(NameR.data()+13, "pk", 2))
+ break;
+ switch (NameR[15]) {
+ default: break;
+ case 'h': // 3 strings to match.
+ switch (NameR[16]) {
+ default: break;
+ case 'p': // 1 string to match.
+ if (NameR[17] != 'x')
+ break;
+ return Intrinsic::ppc_altivec_vupkhpx; // "pc.altivec.vupkhpx"
+ case 's': // 2 strings to match.
+ switch (NameR[17]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::ppc_altivec_vupkhsb; // "pc.altivec.vupkhsb"
+ case 'h': // 1 string to match.
+ return Intrinsic::ppc_altivec_vupkhsh; // "pc.altivec.vupkhsh"
+ }
+ break;
+ }
+ break;
+ case 'l': // 3 strings to match.
+ switch (NameR[16]) {
+ default: break;
+ case 'p': // 1 string to match.
+ if (NameR[17] != 'x')
+ break;
+ return Intrinsic::ppc_altivec_vupklpx; // "pc.altivec.vupklpx"
+ case 's': // 2 strings to match.
+ switch (NameR[17]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::ppc_altivec_vupklsb; // "pc.altivec.vupklsb"
+ case 'h': // 1 string to match.
+ return Intrinsic::ppc_altivec_vupklsh; // "pc.altivec.vupklsh"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 19: // 29 strings to match.
+ switch (NameR[0]) {
+ default: break;
+ case 'p': // 24 strings to match.
+ if (memcmp(NameR.data()+1, "c.altivec.v", 11))
+ break;
+ switch (NameR[12]) {
+ default: break;
+ case 'c': // 12 strings to match.
+ if (memcmp(NameR.data()+13, "mp", 2))
+ break;
+ switch (NameR[15]) {
+ default: break;
+ case 'e': // 4 strings to match.
+ if (NameR[16] != 'q')
+ break;
+ switch (NameR[17]) {
+ default: break;
+ case 'f': // 1 string to match.
+ if (NameR[18] != 'p')
+ break;
+ return Intrinsic::ppc_altivec_vcmpeqfp; // "pc.altivec.vcmpeqfp"
+ case 'u': // 3 strings to match.
+ switch (NameR[18]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::ppc_altivec_vcmpequb; // "pc.altivec.vcmpequb"
+ case 'h': // 1 string to match.
+ return Intrinsic::ppc_altivec_vcmpequh; // "pc.altivec.vcmpequh"
+ case 'w': // 1 string to match.
+ return Intrinsic::ppc_altivec_vcmpequw; // "pc.altivec.vcmpequw"
+ }
+ break;
+ }
+ break;
+ case 'g': // 8 strings to match.
+ switch (NameR[16]) {
+ default: break;
+ case 'e': // 1 string to match.
+ if (memcmp(NameR.data()+17, "fp", 2))
+ break;
+ return Intrinsic::ppc_altivec_vcmpgefp; // "pc.altivec.vcmpgefp"
+ case 't': // 7 strings to match.
+ switch (NameR[17]) {
+ default: break;
+ case 'f': // 1 string to match.
+ if (NameR[18] != 'p')
+ break;
+ return Intrinsic::ppc_altivec_vcmpgtfp; // "pc.altivec.vcmpgtfp"
+ case 's': // 3 strings to match.
+ switch (NameR[18]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::ppc_altivec_vcmpgtsb; // "pc.altivec.vcmpgtsb"
+ case 'h': // 1 string to match.
+ return Intrinsic::ppc_altivec_vcmpgtsh; // "pc.altivec.vcmpgtsh"
+ case 'w': // 1 string to match.
+ return Intrinsic::ppc_altivec_vcmpgtsw; // "pc.altivec.vcmpgtsw"
+ }
+ break;
+ case 'u': // 3 strings to match.
+ switch (NameR[18]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::ppc_altivec_vcmpgtub; // "pc.altivec.vcmpgtub"
+ case 'h': // 1 string to match.
+ return Intrinsic::ppc_altivec_vcmpgtuh; // "pc.altivec.vcmpgtuh"
+ case 'w': // 1 string to match.
+ return Intrinsic::ppc_altivec_vcmpgtuw; // "pc.altivec.vcmpgtuw"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 'e': // 1 string to match.
+ if (memcmp(NameR.data()+13, "xptefp", 6))
+ break;
+ return Intrinsic::ppc_altivec_vexptefp; // "pc.altivec.vexptefp"
+ case 'm': // 6 strings to match.
+ if (memcmp(NameR.data()+13, "sum", 3))
+ break;
+ switch (NameR[16]) {
+ default: break;
+ case 'm': // 1 string to match.
+ if (memcmp(NameR.data()+17, "bm", 2))
+ break;
+ return Intrinsic::ppc_altivec_vmsummbm; // "pc.altivec.vmsummbm"
+ case 's': // 2 strings to match.
+ if (NameR[17] != 'h')
+ break;
+ switch (NameR[18]) {
+ default: break;
+ case 'm': // 1 string to match.
+ return Intrinsic::ppc_altivec_vmsumshm; // "pc.altivec.vmsumshm"
+ case 's': // 1 string to match.
+ return Intrinsic::ppc_altivec_vmsumshs; // "pc.altivec.vmsumshs"
+ }
+ break;
+ case 'u': // 3 strings to match.
+ switch (NameR[17]) {
+ default: break;
+ case 'b': // 1 string to match.
+ if (NameR[18] != 'm')
+ break;
+ return Intrinsic::ppc_altivec_vmsumubm; // "pc.altivec.vmsumubm"
+ case 'h': // 2 strings to match.
+ switch (NameR[18]) {
+ default: break;
+ case 'm': // 1 string to match.
+ return Intrinsic::ppc_altivec_vmsumuhm; // "pc.altivec.vmsumuhm"
+ case 's': // 1 string to match.
+ return Intrinsic::ppc_altivec_vmsumuhs; // "pc.altivec.vmsumuhs"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 'n': // 1 string to match.
+ if (memcmp(NameR.data()+13, "msubfp", 6))
+ break;
+ return Intrinsic::ppc_altivec_vnmsubfp; // "pc.altivec.vnmsubfp"
+ case 's': // 4 strings to match.
+ if (memcmp(NameR.data()+13, "um", 2))
+ break;
+ switch (NameR[15]) {
+ default: break;
+ case '2': // 1 string to match.
+ if (memcmp(NameR.data()+16, "sws", 3))
+ break;
+ return Intrinsic::ppc_altivec_vsum2sws; // "pc.altivec.vsum2sws"
+ case '4': // 3 strings to match.
+ switch (NameR[16]) {
+ default: break;
+ case 's': // 2 strings to match.
+ switch (NameR[17]) {
+ default: break;
+ case 'b': // 1 string to match.
+ if (NameR[18] != 's')
+ break;
+ return Intrinsic::ppc_altivec_vsum4sbs; // "pc.altivec.vsum4sbs"
+ case 'h': // 1 string to match.
+ if (NameR[18] != 's')
+ break;
+ return Intrinsic::ppc_altivec_vsum4shs; // "pc.altivec.vsum4shs"
+ }
+ break;
+ case 'u': // 1 string to match.
+ if (memcmp(NameR.data()+17, "bs", 2))
+ break;
+ return Intrinsic::ppc_altivec_vsum4ubs; // "pc.altivec.vsum4ubs"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 't': // 5 strings to match.
+ if (memcmp(NameR.data()+1, "x.read.lanemask.", 16))
+ break;
+ switch (NameR[17]) {
+ default: break;
+ case 'e': // 1 string to match.
+ if (NameR[18] != 'q')
+ break;
+ return Intrinsic::ptx_read_lanemask_eq; // "tx.read.lanemask.eq"
+ case 'g': // 2 strings to match.
+ switch (NameR[18]) {
+ default: break;
+ case 'e': // 1 string to match.
+ return Intrinsic::ptx_read_lanemask_ge; // "tx.read.lanemask.ge"
+ case 't': // 1 string to match.
+ return Intrinsic::ptx_read_lanemask_gt; // "tx.read.lanemask.gt"
+ }
+ break;
+ case 'l': // 2 strings to match.
+ switch (NameR[18]) {
+ default: break;
+ case 'e': // 1 string to match.
+ return Intrinsic::ptx_read_lanemask_le; // "tx.read.lanemask.le"
+ case 't': // 1 string to match.
+ return Intrinsic::ptx_read_lanemask_lt; // "tx.read.lanemask.lt"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 20: // 4 strings to match.
+ if (memcmp(NameR.data()+0, "pc.altivec.v", 12))
+ break;
+ switch (NameR[12]) {
+ default: break;
+ case 'c': // 1 string to match.
+ if (memcmp(NameR.data()+13, "mpbfp.p", 7))
+ break;
+ return Intrinsic::ppc_altivec_vcmpbfp_p; // "pc.altivec.vcmpbfp.p"
+ case 'm': // 2 strings to match.
+ switch (NameR[13]) {
+ default: break;
+ case 'h': // 1 string to match.
+ if (memcmp(NameR.data()+14, "addshs", 6))
+ break;
+ return Intrinsic::ppc_altivec_vmhaddshs; // "pc.altivec.vmhaddshs"
+ case 'l': // 1 string to match.
+ if (memcmp(NameR.data()+14, "adduhm", 6))
+ break;
+ return Intrinsic::ppc_altivec_vmladduhm; // "pc.altivec.vmladduhm"
+ }
+ break;
+ case 'r': // 1 string to match.
+ if (memcmp(NameR.data()+13, "sqrtefp", 7))
+ break;
+ return Intrinsic::ppc_altivec_vrsqrtefp; // "pc.altivec.vrsqrtefp"
+ }
+ break;
+ case 21: // 13 strings to match.
+ if (memcmp(NameR.data()+0, "pc.altivec.v", 12))
+ break;
+ switch (NameR[12]) {
+ default: break;
+ case 'c': // 12 strings to match.
+ if (memcmp(NameR.data()+13, "mp", 2))
+ break;
+ switch (NameR[15]) {
+ default: break;
+ case 'e': // 4 strings to match.
+ if (NameR[16] != 'q')
+ break;
+ switch (NameR[17]) {
+ default: break;
+ case 'f': // 1 string to match.
+ if (memcmp(NameR.data()+18, "p.p", 3))
+ break;
+ return Intrinsic::ppc_altivec_vcmpeqfp_p; // "pc.altivec.vcmpeqfp.p"
+ case 'u': // 3 strings to match.
+ switch (NameR[18]) {
+ default: break;
+ case 'b': // 1 string to match.
+ if (memcmp(NameR.data()+19, ".p", 2))
+ break;
+ return Intrinsic::ppc_altivec_vcmpequb_p; // "pc.altivec.vcmpequb.p"
+ case 'h': // 1 string to match.
+ if (memcmp(NameR.data()+19, ".p", 2))
+ break;
+ return Intrinsic::ppc_altivec_vcmpequh_p; // "pc.altivec.vcmpequh.p"
+ case 'w': // 1 string to match.
+ if (memcmp(NameR.data()+19, ".p", 2))
+ break;
+ return Intrinsic::ppc_altivec_vcmpequw_p; // "pc.altivec.vcmpequw.p"
+ }
+ break;
+ }
+ break;
+ case 'g': // 8 strings to match.
+ switch (NameR[16]) {
+ default: break;
+ case 'e': // 1 string to match.
+ if (memcmp(NameR.data()+17, "fp.p", 4))
+ break;
+ return Intrinsic::ppc_altivec_vcmpgefp_p; // "pc.altivec.vcmpgefp.p"
+ case 't': // 7 strings to match.
+ switch (NameR[17]) {
+ default: break;
+ case 'f': // 1 string to match.
+ if (memcmp(NameR.data()+18, "p.p", 3))
+ break;
+ return Intrinsic::ppc_altivec_vcmpgtfp_p; // "pc.altivec.vcmpgtfp.p"
+ case 's': // 3 strings to match.
+ switch (NameR[18]) {
+ default: break;
+ case 'b': // 1 string to match.
+ if (memcmp(NameR.data()+19, ".p", 2))
+ break;
+ return Intrinsic::ppc_altivec_vcmpgtsb_p; // "pc.altivec.vcmpgtsb.p"
+ case 'h': // 1 string to match.
+ if (memcmp(NameR.data()+19, ".p", 2))
+ break;
+ return Intrinsic::ppc_altivec_vcmpgtsh_p; // "pc.altivec.vcmpgtsh.p"
+ case 'w': // 1 string to match.
+ if (memcmp(NameR.data()+19, ".p", 2))
+ break;
+ return Intrinsic::ppc_altivec_vcmpgtsw_p; // "pc.altivec.vcmpgtsw.p"
+ }
+ break;
+ case 'u': // 3 strings to match.
+ switch (NameR[18]) {
+ default: break;
+ case 'b': // 1 string to match.
+ if (memcmp(NameR.data()+19, ".p", 2))
+ break;
+ return Intrinsic::ppc_altivec_vcmpgtub_p; // "pc.altivec.vcmpgtub.p"
+ case 'h': // 1 string to match.
+ if (memcmp(NameR.data()+19, ".p", 2))
+ break;
+ return Intrinsic::ppc_altivec_vcmpgtuh_p; // "pc.altivec.vcmpgtuh.p"
+ case 'w': // 1 string to match.
+ if (memcmp(NameR.data()+19, ".p", 2))
+ break;
+ return Intrinsic::ppc_altivec_vcmpgtuw_p; // "pc.altivec.vcmpgtuw.p"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 'm': // 1 string to match.
+ if (memcmp(NameR.data()+13, "hraddshs", 8))
+ break;
+ return Intrinsic::ppc_altivec_vmhraddshs; // "pc.altivec.vmhraddshs"
+ }
+ break;
+ case 29: // 1 string to match.
+ if (memcmp(NameR.data()+0, "pc.is.decremented.ctr.nonzero", 29))
+ break;
+ return Intrinsic::ppc_is_decremented_ctr_nonzero; // "pc.is.decremented.ctr.nonzero"
+ }
+ break; // end of 'p' case.
+ case 'r':
+ if (NameR.startswith("ound.")) return Intrinsic::round;
+ if (NameR.startswith("int.")) return Intrinsic::rint;
+ if (NameR.startswith("ead_register.")) return Intrinsic::read_register;
+ switch (NameR.size()) {
+ default: break;
+ case 12: // 1 string to match.
+ if (memcmp(NameR.data()+0, "eturnaddress", 12))
+ break;
+ return Intrinsic::returnaddress; // "eturnaddress"
+ case 15: // 4 strings to match.
+ switch (NameR[0]) {
+ default: break;
+ case '6': // 3 strings to match.
+ if (memcmp(NameR.data()+1, "00.read.tgid.", 13))
+ break;
+ switch (NameR[14]) {
+ default: break;
+ case 'x': // 1 string to match.
+ return Intrinsic::r600_read_tgid_x; // "600.read.tgid.x"
+ case 'y': // 1 string to match.
+ return Intrinsic::r600_read_tgid_y; // "600.read.tgid.y"
+ case 'z': // 1 string to match.
+ return Intrinsic::r600_read_tgid_z; // "600.read.tgid.z"
+ }
+ break;
+ case 'e': // 1 string to match.
+ if (memcmp(NameR.data()+1, "adcyclecounter", 14))
+ break;
+ return Intrinsic::readcyclecounter; // "eadcyclecounter"
+ }
+ break;
+ case 16: // 3 strings to match.
+ if (memcmp(NameR.data()+0, "600.read.tidig.", 15))
+ break;
+ switch (NameR[15]) {
+ default: break;
+ case 'x': // 1 string to match.
+ return Intrinsic::r600_read_tidig_x; // "600.read.tidig.x"
+ case 'y': // 1 string to match.
+ return Intrinsic::r600_read_tidig_y; // "600.read.tidig.y"
+ case 'z': // 1 string to match.
+ return Intrinsic::r600_read_tidig_z; // "600.read.tidig.z"
+ }
+ break;
+ case 18: // 3 strings to match.
+ if (memcmp(NameR.data()+0, "600.read.ngroups.", 17))
+ break;
+ switch (NameR[17]) {
+ default: break;
+ case 'x': // 1 string to match.
+ return Intrinsic::r600_read_ngroups_x; // "600.read.ngroups.x"
+ case 'y': // 1 string to match.
+ return Intrinsic::r600_read_ngroups_y; // "600.read.ngroups.y"
+ case 'z': // 1 string to match.
+ return Intrinsic::r600_read_ngroups_z; // "600.read.ngroups.z"
+ }
+ break;
+ case 21: // 3 strings to match.
+ if (memcmp(NameR.data()+0, "600.read.local.size.", 20))
+ break;
+ switch (NameR[20]) {
+ default: break;
+ case 'x': // 1 string to match.
+ return Intrinsic::r600_read_local_size_x; // "600.read.local.size.x"
+ case 'y': // 1 string to match.
+ return Intrinsic::r600_read_local_size_y; // "600.read.local.size.y"
+ case 'z': // 1 string to match.
+ return Intrinsic::r600_read_local_size_z; // "600.read.local.size.z"
+ }
+ break;
+ case 22: // 3 strings to match.
+ if (memcmp(NameR.data()+0, "600.read.global.size.", 21))
+ break;
+ switch (NameR[21]) {
+ default: break;
+ case 'x': // 1 string to match.
+ return Intrinsic::r600_read_global_size_x; // "600.read.global.size.x"
+ case 'y': // 1 string to match.
+ return Intrinsic::r600_read_global_size_y; // "600.read.global.size.y"
+ case 'z': // 1 string to match.
+ return Intrinsic::r600_read_global_size_z; // "600.read.global.size.z"
+ }
+ break;
+ }
+ break; // end of 'r' case.
+ case 's':
+ if (NameR.startswith("sub.with.overflow.")) return Intrinsic::ssub_with_overflow;
+ if (NameR.startswith("qrt.")) return Intrinsic::sqrt;
+ if (NameR.startswith("mul.with.overflow.")) return Intrinsic::smul_with_overflow;
+ if (NameR.startswith("in.")) return Intrinsic::sin;
+ if (NameR.startswith("add.with.overflow.")) return Intrinsic::sadd_with_overflow;
+ switch (NameR.size()) {
+ default: break;
+ case 5: // 1 string to match.
+ if (memcmp(NameR.data()+0, "etjmp", 5))
+ break;
+ return Intrinsic::setjmp; // "etjmp"
+ case 8: // 2 strings to match.
+ switch (NameR[0]) {
+ default: break;
+ case 'i': // 1 string to match.
+ if (memcmp(NameR.data()+1, "gsetjmp", 7))
+ break;
+ return Intrinsic::sigsetjmp; // "igsetjmp"
+ case 't': // 1 string to match.
+ if (memcmp(NameR.data()+1, "acksave", 7))
+ break;
+ return Intrinsic::stacksave; // "tacksave"
+ }
+ break;
+ case 9: // 1 string to match.
+ if (memcmp(NameR.data()+0, "iglongjmp", 9))
+ break;
+ return Intrinsic::siglongjmp; // "iglongjmp"
+ case 11: // 1 string to match.
+ if (memcmp(NameR.data()+0, "tackrestore", 11))
+ break;
+ return Intrinsic::stackrestore; // "tackrestore"
+ case 13: // 1 string to match.
+ if (memcmp(NameR.data()+0, "tackprotector", 13))
+ break;
+ return Intrinsic::stackprotector; // "tackprotector"
+ case 18: // 1 string to match.
+ if (memcmp(NameR.data()+0, "tackprotectorcheck", 18))
+ break;
+ return Intrinsic::stackprotectorcheck; // "tackprotectorcheck"
+ }
+ break; // end of 's' case.
+ case 't':
+ if (NameR.startswith("runc.")) return Intrinsic::trunc;
+ switch (NameR.size()) {
+ default: break;
+ case 3: // 1 string to match.
+ if (memcmp(NameR.data()+0, "rap", 3))
+ break;
+ return Intrinsic::trap; // "rap"
+ }
+ break; // end of 't' case.
+ case 'u':
+ if (NameR.startswith("sub.with.overflow.")) return Intrinsic::usub_with_overflow;
+ if (NameR.startswith("mul.with.overflow.")) return Intrinsic::umul_with_overflow;
+ if (NameR.startswith("add.with.overflow.")) return Intrinsic::uadd_with_overflow;
+ break; // end of 'u' case.
+ case 'v':
+ switch (NameR.size()) {
+ default: break;
+ case 5: // 1 string to match.
+ if (memcmp(NameR.data()+0, "a_end", 5))
+ break;
+ return Intrinsic::vaend; // "a_end"
+ case 6: // 1 string to match.
+ if (memcmp(NameR.data()+0, "a_copy", 6))
+ break;
+ return Intrinsic::vacopy; // "a_copy"
+ case 7: // 1 string to match.
+ if (memcmp(NameR.data()+0, "a_start", 7))
+ break;
+ return Intrinsic::vastart; // "a_start"
+ case 13: // 1 string to match.
+ if (memcmp(NameR.data()+0, "ar.annotation", 13))
+ break;
+ return Intrinsic::var_annotation; // "ar.annotation"
+ }
+ break; // end of 'v' case.
+ case 'w':
+ if (NameR.startswith("rite_register.")) return Intrinsic::write_register;
+ break; // end of 'w' case.
+ case 'x':
+ if (NameR.startswith("core.testwct.")) return Intrinsic::xcore_testwct;
+ if (NameR.startswith("core.testct.")) return Intrinsic::xcore_testct;
+ if (NameR.startswith("core.syncr.")) return Intrinsic::xcore_syncr;
+ if (NameR.startswith("core.setv.")) return Intrinsic::xcore_setv;
+ if (NameR.startswith("core.settw.")) return Intrinsic::xcore_settw;
+ if (NameR.startswith("core.setrdy.")) return Intrinsic::xcore_setrdy;
+ if (NameR.startswith("core.setpt.")) return Intrinsic::xcore_setpt;
+ if (NameR.startswith("core.setpsc.")) return Intrinsic::xcore_setpsc;
+ if (NameR.startswith("core.setev.")) return Intrinsic::xcore_setev;
+ if (NameR.startswith("core.setd.")) return Intrinsic::xcore_setd;
+ if (NameR.startswith("core.setclk.")) return Intrinsic::xcore_setclk;
+ if (NameR.startswith("core.setc.")) return Intrinsic::xcore_setc;
+ if (NameR.startswith("core.peek.")) return Intrinsic::xcore_peek;
+ if (NameR.startswith("core.outt.")) return Intrinsic::xcore_outt;
+ if (NameR.startswith("core.outshr.")) return Intrinsic::xcore_outshr;
+ if (NameR.startswith("core.outct.")) return Intrinsic::xcore_outct;
+ if (NameR.startswith("core.out.")) return Intrinsic::xcore_out;
+ if (NameR.startswith("core.msync.")) return Intrinsic::xcore_msync;
+ if (NameR.startswith("core.mjoin.")) return Intrinsic::xcore_mjoin;
+ if (NameR.startswith("core.int.")) return Intrinsic::xcore_int;
+ if (NameR.startswith("core.inshr.")) return Intrinsic::xcore_inshr;
+ if (NameR.startswith("core.initsp.")) return Intrinsic::xcore_initsp;
+ if (NameR.startswith("core.initpc.")) return Intrinsic::xcore_initpc;
+ if (NameR.startswith("core.initlr.")) return Intrinsic::xcore_initlr;
+ if (NameR.startswith("core.initdp.")) return Intrinsic::xcore_initdp;
+ if (NameR.startswith("core.initcp.")) return Intrinsic::xcore_initcp;
+ if (NameR.startswith("core.inct.")) return Intrinsic::xcore_inct;
+ if (NameR.startswith("core.in.")) return Intrinsic::xcore_in;
+ if (NameR.startswith("core.getts.")) return Intrinsic::xcore_getts;
+ if (NameR.startswith("core.getst.")) return Intrinsic::xcore_getst;
+ if (NameR.startswith("core.getr.")) return Intrinsic::xcore_getr;
+ if (NameR.startswith("core.freer.")) return Intrinsic::xcore_freer;
+ if (NameR.startswith("core.endin.")) return Intrinsic::xcore_endin;
+ if (NameR.startswith("core.eeu.")) return Intrinsic::xcore_eeu;
+ if (NameR.startswith("core.edu.")) return Intrinsic::xcore_edu;
+ if (NameR.startswith("core.clrpt.")) return Intrinsic::xcore_clrpt;
+ if (NameR.startswith("core.chkct.")) return Intrinsic::xcore_chkct;
+ switch (NameR.size()) {
+ default: break;
+ case 6: // 1 string to match.
+ if (memcmp(NameR.data()+0, "86.int", 6))
+ break;
+ return Intrinsic::x86_int; // "86.int"
+ case 7: // 1 string to match.
+ if (memcmp(NameR.data()+0, "86.xend", 7))
+ break;
+ return Intrinsic::x86_xend; // "86.xend"
+ case 8: // 3 strings to match.
+ if (memcmp(NameR.data()+0, "86.", 3))
+ break;
+ switch (NameR[3]) {
+ default: break;
+ case 'r': // 2 strings to match.
+ if (NameR[4] != 'd')
+ break;
+ switch (NameR[5]) {
+ default: break;
+ case 'p': // 1 string to match.
+ if (memcmp(NameR.data()+6, "mc", 2))
+ break;
+ return Intrinsic::x86_rdpmc; // "86.rdpmc"
+ case 't': // 1 string to match.
+ if (memcmp(NameR.data()+6, "sc", 2))
+ break;
+ return Intrinsic::x86_rdtsc; // "86.rdtsc"
+ }
+ break;
+ case 'x': // 1 string to match.
+ if (memcmp(NameR.data()+4, "test", 4))
+ break;
+ return Intrinsic::x86_xtest; // "86.xtest"
+ }
+ break;
+ case 9: // 7 strings to match.
+ switch (NameR[0]) {
+ default: break;
+ case '8': // 3 strings to match.
+ if (memcmp(NameR.data()+1, "6.", 2))
+ break;
+ switch (NameR[3]) {
+ default: break;
+ case 'r': // 1 string to match.
+ if (memcmp(NameR.data()+4, "dtscp", 5))
+ break;
+ return Intrinsic::x86_rdtscp; // "86.rdtscp"
+ case 'x': // 2 strings to match.
+ switch (NameR[4]) {
+ default: break;
+ case 'a': // 1 string to match.
+ if (memcmp(NameR.data()+5, "bort", 4))
+ break;
+ return Intrinsic::x86_xabort; // "86.xabort"
+ case 'b': // 1 string to match.
+ if (memcmp(NameR.data()+5, "egin", 4))
+ break;
+ return Intrinsic::x86_xbegin; // "86.xbegin"
+ }
+ break;
+ }
+ break;
+ case 'c': // 4 strings to match.
+ if (memcmp(NameR.data()+1, "ore.", 4))
+ break;
+ switch (NameR[5]) {
+ default: break;
+ case 'c': // 2 strings to match.
+ switch (NameR[6]) {
+ default: break;
+ case 'l': // 1 string to match.
+ if (memcmp(NameR.data()+7, "re", 2))
+ break;
+ return Intrinsic::xcore_clre; // "core.clre"
+ case 'r': // 1 string to match.
+ if (memcmp(NameR.data()+7, "c8", 2))
+ break;
+ return Intrinsic::xcore_crc8; // "core.crc8"
+ }
+ break;
+ case 's': // 1 string to match.
+ if (memcmp(NameR.data()+6, "ext", 3))
+ break;
+ return Intrinsic::xcore_sext; // "core.sext"
+ case 'z': // 1 string to match.
+ if (memcmp(NameR.data()+6, "ext", 3))
+ break;
+ return Intrinsic::xcore_zext; // "core.zext"
+ }
+ break;
+ }
+ break;
+ case 10: // 10 strings to match.
+ switch (NameR[0]) {
+ default: break;
+ case '8': // 1 string to match.
+ if (memcmp(NameR.data()+1, "6.mmx.por", 9))
+ break;
+ return Intrinsic::x86_mmx_por; // "86.mmx.por"
+ case 'c': // 9 strings to match.
+ if (memcmp(NameR.data()+1, "ore.", 4))
+ break;
+ switch (NameR[5]) {
+ default: break;
+ case 'c': // 2 strings to match.
+ switch (NameR[6]) {
+ default: break;
+ case 'l': // 1 string to match.
+ if (memcmp(NameR.data()+7, "rsr", 3))
+ break;
+ return Intrinsic::xcore_clrsr; // "core.clrsr"
+ case 'r': // 1 string to match.
+ if (memcmp(NameR.data()+7, "c32", 3))
+ break;
+ return Intrinsic::xcore_crc32; // "core.crc32"
+ }
+ break;
+ case 'g': // 4 strings to match.
+ if (memcmp(NameR.data()+6, "et", 2))
+ break;
+ switch (NameR[8]) {
+ default: break;
+ case 'e': // 2 strings to match.
+ switch (NameR[9]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::xcore_geted; // "core.geted"
+ case 't': // 1 string to match.
+ return Intrinsic::xcore_getet; // "core.getet"
+ }
+ break;
+ case 'i': // 1 string to match.
+ if (NameR[9] != 'd')
+ break;
+ return Intrinsic::xcore_getid; // "core.getid"
+ case 'p': // 1 string to match.
+ if (NameR[9] != 's')
+ break;
+ return Intrinsic::xcore_getps; // "core.getps"
+ }
+ break;
+ case 's': // 3 strings to match.
+ switch (NameR[6]) {
+ default: break;
+ case 'e': // 2 strings to match.
+ if (NameR[7] != 't')
+ break;
+ switch (NameR[8]) {
+ default: break;
+ case 'p': // 1 string to match.
+ if (NameR[9] != 's')
+ break;
+ return Intrinsic::xcore_setps; // "core.setps"
+ case 's': // 1 string to match.
+ if (NameR[9] != 'r')
+ break;
+ return Intrinsic::xcore_setsr; // "core.setsr"
+ }
+ break;
+ case 's': // 1 string to match.
+ if (memcmp(NameR.data()+7, "ync", 3))
+ break;
+ return Intrinsic::xcore_ssync; // "core.ssync"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 11: // 6 strings to match.
+ switch (NameR[0]) {
+ default: break;
+ case '8': // 5 strings to match.
+ if (memcmp(NameR.data()+1, "6.", 2))
+ break;
+ switch (NameR[3]) {
+ default: break;
+ case 'm': // 3 strings to match.
+ if (memcmp(NameR.data()+4, "mx.", 3))
+ break;
+ switch (NameR[7]) {
+ default: break;
+ case 'e': // 1 string to match.
+ if (memcmp(NameR.data()+8, "mms", 3))
+ break;
+ return Intrinsic::x86_mmx_emms; // "86.mmx.emms"
+ case 'p': // 2 strings to match.
+ switch (NameR[8]) {
+ default: break;
+ case 'a': // 1 string to match.
+ if (memcmp(NameR.data()+9, "nd", 2))
+ break;
+ return Intrinsic::x86_mmx_pand; // "86.mmx.pand"
+ case 'x': // 1 string to match.
+ if (memcmp(NameR.data()+9, "or", 2))
+ break;
+ return Intrinsic::x86_mmx_pxor; // "86.mmx.pxor"
+ }
+ break;
+ }
+ break;
+ case 's': // 2 strings to match.
+ if (memcmp(NameR.data()+4, "ha1msg", 6))
+ break;
+ switch (NameR[10]) {
+ default: break;
+ case '1': // 1 string to match.
+ return Intrinsic::x86_sha1msg1; // "86.sha1msg1"
+ case '2': // 1 string to match.
+ return Intrinsic::x86_sha1msg2; // "86.sha1msg2"
+ }
+ break;
+ }
+ break;
+ case 'c': // 1 string to match.
+ if (memcmp(NameR.data()+1, "ore.bitrev", 10))
+ break;
+ return Intrinsic::xcore_bitrev; // "core.bitrev"
+ }
+ break;
+ case 12: // 11 strings to match.
+ if (memcmp(NameR.data()+0, "86.", 3))
+ break;
+ switch (NameR[3]) {
+ default: break;
+ case 'm': // 2 strings to match.
+ if (memcmp(NameR.data()+4, "mx.", 3))
+ break;
+ switch (NameR[7]) {
+ default: break;
+ case 'f': // 1 string to match.
+ if (memcmp(NameR.data()+8, "emms", 4))
+ break;
+ return Intrinsic::x86_mmx_femms; // "86.mmx.femms"
+ case 'p': // 1 string to match.
+ if (memcmp(NameR.data()+8, "andn", 4))
+ break;
+ return Intrinsic::x86_mmx_pandn; // "86.mmx.pandn"
+ }
+ break;
+ case 'p': // 1 string to match.
+ if (memcmp(NameR.data()+4, "clmulqdq", 8))
+ break;
+ return Intrinsic::x86_pclmulqdq; // "86.pclmulqdq"
+ case 'r': // 6 strings to match.
+ if (NameR[4] != 'd')
+ break;
+ switch (NameR[5]) {
+ default: break;
+ case 'r': // 3 strings to match.
+ if (memcmp(NameR.data()+6, "and.", 4))
+ break;
+ switch (NameR[10]) {
+ default: break;
+ case '1': // 1 string to match.
+ if (NameR[11] != '6')
+ break;
+ return Intrinsic::x86_rdrand_16; // "86.rdrand.16"
+ case '3': // 1 string to match.
+ if (NameR[11] != '2')
+ break;
+ return Intrinsic::x86_rdrand_32; // "86.rdrand.32"
+ case '6': // 1 string to match.
+ if (NameR[11] != '4')
+ break;
+ return Intrinsic::x86_rdrand_64; // "86.rdrand.64"
+ }
+ break;
+ case 's': // 3 strings to match.
+ if (memcmp(NameR.data()+6, "eed.", 4))
+ break;
+ switch (NameR[10]) {
+ default: break;
+ case '1': // 1 string to match.
+ if (NameR[11] != '6')
+ break;
+ return Intrinsic::x86_rdseed_16; // "86.rdseed.16"
+ case '3': // 1 string to match.
+ if (NameR[11] != '2')
+ break;
+ return Intrinsic::x86_rdseed_32; // "86.rdseed.32"
+ case '6': // 1 string to match.
+ if (NameR[11] != '4')
+ break;
+ return Intrinsic::x86_rdseed_64; // "86.rdseed.64"
+ }
+ break;
+ }
+ break;
+ case 's': // 2 strings to match.
+ if (memcmp(NameR.data()+4, "ha1", 3))
+ break;
+ switch (NameR[7]) {
+ default: break;
+ case 'n': // 1 string to match.
+ if (memcmp(NameR.data()+8, "exte", 4))
+ break;
+ return Intrinsic::x86_sha1nexte; // "86.sha1nexte"
+ case 'r': // 1 string to match.
+ if (memcmp(NameR.data()+8, "nds4", 4))
+ break;
+ return Intrinsic::x86_sha1rnds4; // "86.sha1rnds4"
+ }
+ break;
+ }
+ break;
+ case 13: // 56 strings to match.
+ if (memcmp(NameR.data()+0, "86.", 3))
+ break;
+ switch (NameR[3]) {
+ default: break;
+ case 'a': // 1 string to match.
+ if (memcmp(NameR.data()+4, "vx2.permd", 9))
+ break;
+ return Intrinsic::x86_avx2_permd; // "86.avx2.permd"
+ case 'm': // 18 strings to match.
+ if (memcmp(NameR.data()+4, "mx.p", 4))
+ break;
+ switch (NameR[8]) {
+ default: break;
+ case 'a': // 6 strings to match.
+ switch (NameR[9]) {
+ default: break;
+ case 'd': // 4 strings to match.
+ if (memcmp(NameR.data()+10, "d.", 2))
+ break;
+ switch (NameR[12]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::x86_mmx_padd_b; // "86.mmx.padd.b"
+ case 'd': // 1 string to match.
+ return Intrinsic::x86_mmx_padd_d; // "86.mmx.padd.d"
+ case 'q': // 1 string to match.
+ return Intrinsic::x86_mmx_padd_q; // "86.mmx.padd.q"
+ case 'w': // 1 string to match.
+ return Intrinsic::x86_mmx_padd_w; // "86.mmx.padd.w"
+ }
+ break;
+ case 'v': // 2 strings to match.
+ if (memcmp(NameR.data()+10, "g.", 2))
+ break;
+ switch (NameR[12]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::x86_mmx_pavg_b; // "86.mmx.pavg.b"
+ case 'w': // 1 string to match.
+ return Intrinsic::x86_mmx_pavg_w; // "86.mmx.pavg.w"
+ }
+ break;
+ }
+ break;
+ case 's': // 12 strings to match.
+ switch (NameR[9]) {
+ default: break;
+ case 'l': // 3 strings to match.
+ if (memcmp(NameR.data()+10, "l.", 2))
+ break;
+ switch (NameR[12]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::x86_mmx_psll_d; // "86.mmx.psll.d"
+ case 'q': // 1 string to match.
+ return Intrinsic::x86_mmx_psll_q; // "86.mmx.psll.q"
+ case 'w': // 1 string to match.
+ return Intrinsic::x86_mmx_psll_w; // "86.mmx.psll.w"
+ }
+ break;
+ case 'r': // 5 strings to match.
+ switch (NameR[10]) {
+ default: break;
+ case 'a': // 2 strings to match.
+ if (NameR[11] != '.')
+ break;
+ switch (NameR[12]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::x86_mmx_psra_d; // "86.mmx.psra.d"
+ case 'w': // 1 string to match.
+ return Intrinsic::x86_mmx_psra_w; // "86.mmx.psra.w"
+ }
+ break;
+ case 'l': // 3 strings to match.
+ if (NameR[11] != '.')
+ break;
+ switch (NameR[12]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::x86_mmx_psrl_d; // "86.mmx.psrl.d"
+ case 'q': // 1 string to match.
+ return Intrinsic::x86_mmx_psrl_q; // "86.mmx.psrl.q"
+ case 'w': // 1 string to match.
+ return Intrinsic::x86_mmx_psrl_w; // "86.mmx.psrl.w"
+ }
+ break;
+ }
+ break;
+ case 'u': // 4 strings to match.
+ if (memcmp(NameR.data()+10, "b.", 2))
+ break;
+ switch (NameR[12]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::x86_mmx_psub_b; // "86.mmx.psub.b"
+ case 'd': // 1 string to match.
+ return Intrinsic::x86_mmx_psub_d; // "86.mmx.psub.d"
+ case 'q': // 1 string to match.
+ return Intrinsic::x86_mmx_psub_q; // "86.mmx.psub.q"
+ case 'w': // 1 string to match.
+ return Intrinsic::x86_mmx_psub_w; // "86.mmx.psub.w"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 's': // 19 strings to match.
+ switch (NameR[4]) {
+ default: break;
+ case 'h': // 2 strings to match.
+ if (memcmp(NameR.data()+5, "a256msg", 7))
+ break;
+ switch (NameR[12]) {
+ default: break;
+ case '1': // 1 string to match.
+ return Intrinsic::x86_sha256msg1; // "86.sha256msg1"
+ case '2': // 1 string to match.
+ return Intrinsic::x86_sha256msg2; // "86.sha256msg2"
+ }
+ break;
+ case 's': // 17 strings to match.
+ if (NameR[5] != 'e')
+ break;
+ switch (NameR[6]) {
+ default: break;
+ case '.': // 13 strings to match.
+ switch (NameR[7]) {
+ default: break;
+ case 'a': // 1 string to match.
+ if (memcmp(NameR.data()+8, "dd.ss", 5))
+ break;
+ return Intrinsic::x86_sse_add_ss; // "86.sse.add.ss"
+ case 'c': // 2 strings to match.
+ if (memcmp(NameR.data()+8, "mp.", 3))
+ break;
+ switch (NameR[11]) {
+ default: break;
+ case 'p': // 1 string to match.
+ if (NameR[12] != 's')
+ break;
+ return Intrinsic::x86_sse_cmp_ps; // "86.sse.cmp.ps"
+ case 's': // 1 string to match.
+ if (NameR[12] != 's')
+ break;
+ return Intrinsic::x86_sse_cmp_ss; // "86.sse.cmp.ss"
+ }
+ break;
+ case 'd': // 1 string to match.
+ if (memcmp(NameR.data()+8, "iv.ss", 5))
+ break;
+ return Intrinsic::x86_sse_div_ss; // "86.sse.div.ss"
+ case 'm': // 5 strings to match.
+ switch (NameR[8]) {
+ default: break;
+ case 'a': // 2 strings to match.
+ if (memcmp(NameR.data()+9, "x.", 2))
+ break;
+ switch (NameR[11]) {
+ default: break;
+ case 'p': // 1 string to match.
+ if (NameR[12] != 's')
+ break;
+ return Intrinsic::x86_sse_max_ps; // "86.sse.max.ps"
+ case 's': // 1 string to match.
+ if (NameR[12] != 's')
+ break;
+ return Intrinsic::x86_sse_max_ss; // "86.sse.max.ss"
+ }
+ break;
+ case 'i': // 2 strings to match.
+ if (memcmp(NameR.data()+9, "n.", 2))
+ break;
+ switch (NameR[11]) {
+ default: break;
+ case 'p': // 1 string to match.
+ if (NameR[12] != 's')
+ break;
+ return Intrinsic::x86_sse_min_ps; // "86.sse.min.ps"
+ case 's': // 1 string to match.
+ if (NameR[12] != 's')
+ break;
+ return Intrinsic::x86_sse_min_ss; // "86.sse.min.ss"
+ }
+ break;
+ case 'u': // 1 string to match.
+ if (memcmp(NameR.data()+9, "l.ss", 4))
+ break;
+ return Intrinsic::x86_sse_mul_ss; // "86.sse.mul.ss"
+ }
+ break;
+ case 'r': // 2 strings to match.
+ if (memcmp(NameR.data()+8, "cp.", 3))
+ break;
+ switch (NameR[11]) {
+ default: break;
+ case 'p': // 1 string to match.
+ if (NameR[12] != 's')
+ break;
+ return Intrinsic::x86_sse_rcp_ps; // "86.sse.rcp.ps"
+ case 's': // 1 string to match.
+ if (NameR[12] != 's')
+ break;
+ return Intrinsic::x86_sse_rcp_ss; // "86.sse.rcp.ss"
+ }
+ break;
+ case 's': // 2 strings to match.
+ switch (NameR[8]) {
+ default: break;
+ case 'f': // 1 string to match.
+ if (memcmp(NameR.data()+9, "ence", 4))
+ break;
+ return Intrinsic::x86_sse_sfence; // "86.sse.sfence"
+ case 'u': // 1 string to match.
+ if (memcmp(NameR.data()+9, "b.ss", 4))
+ break;
+ return Intrinsic::x86_sse_sub_ss; // "86.sse.sub.ss"
+ }
+ break;
+ }
+ break;
+ case '2': // 1 string to match.
+ if (memcmp(NameR.data()+7, ".pause", 6))
+ break;
+ return Intrinsic::x86_sse2_pause; // "86.sse2.pause"
+ case '3': // 1 string to match.
+ if (memcmp(NameR.data()+7, ".mwait", 6))
+ break;
+ return Intrinsic::x86_sse3_mwait; // "86.sse3.mwait"
+ case '4': // 2 strings to match.
+ if (memcmp(NameR.data()+7, "1.dpp", 5))
+ break;
+ switch (NameR[12]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::x86_sse41_dppd; // "86.sse41.dppd"
+ case 's': // 1 string to match.
+ return Intrinsic::x86_sse41_dpps; // "86.sse41.dpps"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 'x': // 18 strings to match.
+ if (memcmp(NameR.data()+4, "op.vp", 5))
+ break;
+ switch (NameR[9]) {
+ default: break;
+ case 'c': // 5 strings to match.
+ switch (NameR[10]) {
+ default: break;
+ case 'm': // 1 string to match.
+ if (memcmp(NameR.data()+11, "ov", 2))
+ break;
+ return Intrinsic::x86_xop_vpcmov; // "86.xop.vpcmov"
+ case 'o': // 4 strings to match.
+ if (NameR[11] != 'm')
+ break;
+ switch (NameR[12]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::x86_xop_vpcomb; // "86.xop.vpcomb"
+ case 'd': // 1 string to match.
+ return Intrinsic::x86_xop_vpcomd; // "86.xop.vpcomd"
+ case 'q': // 1 string to match.
+ return Intrinsic::x86_xop_vpcomq; // "86.xop.vpcomq"
+ case 'w': // 1 string to match.
+ return Intrinsic::x86_xop_vpcomw; // "86.xop.vpcomw"
+ }
+ break;
+ }
+ break;
+ case 'p': // 1 string to match.
+ if (memcmp(NameR.data()+10, "erm", 3))
+ break;
+ return Intrinsic::x86_xop_vpperm; // "86.xop.vpperm"
+ case 'r': // 4 strings to match.
+ if (memcmp(NameR.data()+10, "ot", 2))
+ break;
+ switch (NameR[12]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::x86_xop_vprotb; // "86.xop.vprotb"
+ case 'd': // 1 string to match.
+ return Intrinsic::x86_xop_vprotd; // "86.xop.vprotd"
+ case 'q': // 1 string to match.
+ return Intrinsic::x86_xop_vprotq; // "86.xop.vprotq"
+ case 'w': // 1 string to match.
+ return Intrinsic::x86_xop_vprotw; // "86.xop.vprotw"
+ }
+ break;
+ case 's': // 8 strings to match.
+ if (NameR[10] != 'h')
+ break;
+ switch (NameR[11]) {
+ default: break;
+ case 'a': // 4 strings to match.
+ switch (NameR[12]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::x86_xop_vpshab; // "86.xop.vpshab"
+ case 'd': // 1 string to match.
+ return Intrinsic::x86_xop_vpshad; // "86.xop.vpshad"
+ case 'q': // 1 string to match.
+ return Intrinsic::x86_xop_vpshaq; // "86.xop.vpshaq"
+ case 'w': // 1 string to match.
+ return Intrinsic::x86_xop_vpshaw; // "86.xop.vpshaw"
+ }
+ break;
+ case 'l': // 4 strings to match.
+ switch (NameR[12]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::x86_xop_vpshlb; // "86.xop.vpshlb"
+ case 'd': // 1 string to match.
+ return Intrinsic::x86_xop_vpshld; // "86.xop.vpshld"
+ case 'q': // 1 string to match.
+ return Intrinsic::x86_xop_vpshlq; // "86.xop.vpshlq"
+ case 'w': // 1 string to match.
+ return Intrinsic::x86_xop_vpshlw; // "86.xop.vpshlw"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 14: // 97 strings to match.
+ switch (NameR[0]) {
+ default: break;
+ case '8': // 96 strings to match.
+ if (memcmp(NameR.data()+1, "6.", 2))
+ break;
+ switch (NameR[3]) {
+ default: break;
+ case '3': // 9 strings to match.
+ if (memcmp(NameR.data()+4, "dnow.p", 6))
+ break;
+ switch (NameR[10]) {
+ default: break;
+ case 'f': // 8 strings to match.
+ switch (NameR[11]) {
+ default: break;
+ case '2': // 1 string to match.
+ if (memcmp(NameR.data()+12, "id", 2))
+ break;
+ return Intrinsic::x86_3dnow_pf2id; // "86.3dnow.pf2id"
+ case 'a': // 2 strings to match.
+ switch (NameR[12]) {
+ default: break;
+ case 'c': // 1 string to match.
+ if (NameR[13] != 'c')
+ break;
+ return Intrinsic::x86_3dnow_pfacc; // "86.3dnow.pfacc"
+ case 'd': // 1 string to match.
+ if (NameR[13] != 'd')
+ break;
+ return Intrinsic::x86_3dnow_pfadd; // "86.3dnow.pfadd"
+ }
+ break;
+ case 'm': // 3 strings to match.
+ switch (NameR[12]) {
+ default: break;
+ case 'a': // 1 string to match.
+ if (NameR[13] != 'x')
+ break;
+ return Intrinsic::x86_3dnow_pfmax; // "86.3dnow.pfmax"
+ case 'i': // 1 string to match.
+ if (NameR[13] != 'n')
+ break;
+ return Intrinsic::x86_3dnow_pfmin; // "86.3dnow.pfmin"
+ case 'u': // 1 string to match.
+ if (NameR[13] != 'l')
+ break;
+ return Intrinsic::x86_3dnow_pfmul; // "86.3dnow.pfmul"
+ }
+ break;
+ case 'r': // 1 string to match.
+ if (memcmp(NameR.data()+12, "cp", 2))
+ break;
+ return Intrinsic::x86_3dnow_pfrcp; // "86.3dnow.pfrcp"
+ case 's': // 1 string to match.
+ if (memcmp(NameR.data()+12, "ub", 2))
+ break;
+ return Intrinsic::x86_3dnow_pfsub; // "86.3dnow.pfsub"
+ }
+ break;
+ case 'i': // 1 string to match.
+ if (memcmp(NameR.data()+11, "2fd", 3))
+ break;
+ return Intrinsic::x86_3dnow_pi2fd; // "86.3dnow.pi2fd"
+ }
+ break;
+ case 'a': // 14 strings to match.
+ if (memcmp(NameR.data()+4, "vx2.p", 5))
+ break;
+ switch (NameR[9]) {
+ default: break;
+ case 'a': // 5 strings to match.
+ switch (NameR[10]) {
+ default: break;
+ case 'b': // 3 strings to match.
+ if (memcmp(NameR.data()+11, "s.", 2))
+ break;
+ switch (NameR[13]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::x86_avx2_pabs_b; // "86.avx2.pabs.b"
+ case 'd': // 1 string to match.
+ return Intrinsic::x86_avx2_pabs_d; // "86.avx2.pabs.d"
+ case 'w': // 1 string to match.
+ return Intrinsic::x86_avx2_pabs_w; // "86.avx2.pabs.w"
+ }
+ break;
+ case 'v': // 2 strings to match.
+ if (memcmp(NameR.data()+11, "g.", 2))
+ break;
+ switch (NameR[13]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::x86_avx2_pavg_b; // "86.avx2.pavg.b"
+ case 'w': // 1 string to match.
+ return Intrinsic::x86_avx2_pavg_w; // "86.avx2.pavg.w"
+ }
+ break;
+ }
+ break;
+ case 'e': // 1 string to match.
+ if (memcmp(NameR.data()+10, "rmps", 4))
+ break;
+ return Intrinsic::x86_avx2_permps; // "86.avx2.permps"
+ case 's': // 8 strings to match.
+ switch (NameR[10]) {
+ default: break;
+ case 'l': // 3 strings to match.
+ if (memcmp(NameR.data()+11, "l.", 2))
+ break;
+ switch (NameR[13]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::x86_avx2_psll_d; // "86.avx2.psll.d"
+ case 'q': // 1 string to match.
+ return Intrinsic::x86_avx2_psll_q; // "86.avx2.psll.q"
+ case 'w': // 1 string to match.
+ return Intrinsic::x86_avx2_psll_w; // "86.avx2.psll.w"
+ }
+ break;
+ case 'r': // 5 strings to match.
+ switch (NameR[11]) {
+ default: break;
+ case 'a': // 2 strings to match.
+ if (NameR[12] != '.')
+ break;
+ switch (NameR[13]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::x86_avx2_psra_d; // "86.avx2.psra.d"
+ case 'w': // 1 string to match.
+ return Intrinsic::x86_avx2_psra_w; // "86.avx2.psra.w"
+ }
+ break;
+ case 'l': // 3 strings to match.
+ if (NameR[12] != '.')
+ break;
+ switch (NameR[13]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::x86_avx2_psrl_d; // "86.avx2.psrl.d"
+ case 'q': // 1 string to match.
+ return Intrinsic::x86_avx2_psrl_q; // "86.avx2.psrl.q"
+ case 'w': // 1 string to match.
+ return Intrinsic::x86_avx2_psrl_w; // "86.avx2.psrl.w"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 'b': // 6 strings to match.
+ if (memcmp(NameR.data()+4, "mi.", 3))
+ break;
+ switch (NameR[7]) {
+ default: break;
+ case 'b': // 2 strings to match.
+ if (memcmp(NameR.data()+8, "zhi.", 4))
+ break;
+ switch (NameR[12]) {
+ default: break;
+ case '3': // 1 string to match.
+ if (NameR[13] != '2')
+ break;
+ return Intrinsic::x86_bmi_bzhi_32; // "86.bmi.bzhi.32"
+ case '6': // 1 string to match.
+ if (NameR[13] != '4')
+ break;
+ return Intrinsic::x86_bmi_bzhi_64; // "86.bmi.bzhi.64"
+ }
+ break;
+ case 'p': // 4 strings to match.
+ switch (NameR[8]) {
+ default: break;
+ case 'd': // 2 strings to match.
+ if (memcmp(NameR.data()+9, "ep.", 3))
+ break;
+ switch (NameR[12]) {
+ default: break;
+ case '3': // 1 string to match.
+ if (NameR[13] != '2')
+ break;
+ return Intrinsic::x86_bmi_pdep_32; // "86.bmi.pdep.32"
+ case '6': // 1 string to match.
+ if (NameR[13] != '4')
+ break;
+ return Intrinsic::x86_bmi_pdep_64; // "86.bmi.pdep.64"
+ }
+ break;
+ case 'e': // 2 strings to match.
+ if (memcmp(NameR.data()+9, "xt.", 3))
+ break;
+ switch (NameR[12]) {
+ default: break;
+ case '3': // 1 string to match.
+ if (NameR[13] != '2')
+ break;
+ return Intrinsic::x86_bmi_pext_32; // "86.bmi.pext.32"
+ case '6': // 1 string to match.
+ if (NameR[13] != '4')
+ break;
+ return Intrinsic::x86_bmi_pext_64; // "86.bmi.pext.64"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 'm': // 21 strings to match.
+ if (memcmp(NameR.data()+4, "mx.p", 4))
+ break;
+ switch (NameR[8]) {
+ default: break;
+ case 'a': // 2 strings to match.
+ if (memcmp(NameR.data()+9, "dds.", 4))
+ break;
+ switch (NameR[13]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::x86_mmx_padds_b; // "86.mmx.padds.b"
+ case 'w': // 1 string to match.
+ return Intrinsic::x86_mmx_padds_w; // "86.mmx.padds.w"
+ }
+ break;
+ case 'e': // 1 string to match.
+ if (memcmp(NameR.data()+9, "xtr.w", 5))
+ break;
+ return Intrinsic::x86_mmx_pextr_w; // "86.mmx.pextr.w"
+ case 'i': // 1 string to match.
+ if (memcmp(NameR.data()+9, "nsr.w", 5))
+ break;
+ return Intrinsic::x86_mmx_pinsr_w; // "86.mmx.pinsr.w"
+ case 'm': // 6 strings to match.
+ switch (NameR[9]) {
+ default: break;
+ case 'a': // 2 strings to match.
+ if (NameR[10] != 'x')
+ break;
+ switch (NameR[11]) {
+ default: break;
+ case 's': // 1 string to match.
+ if (memcmp(NameR.data()+12, ".w", 2))
+ break;
+ return Intrinsic::x86_mmx_pmaxs_w; // "86.mmx.pmaxs.w"
+ case 'u': // 1 string to match.
+ if (memcmp(NameR.data()+12, ".b", 2))
+ break;
+ return Intrinsic::x86_mmx_pmaxu_b; // "86.mmx.pmaxu.b"
+ }
+ break;
+ case 'i': // 2 strings to match.
+ if (NameR[10] != 'n')
+ break;
+ switch (NameR[11]) {
+ default: break;
+ case 's': // 1 string to match.
+ if (memcmp(NameR.data()+12, ".w", 2))
+ break;
+ return Intrinsic::x86_mmx_pmins_w; // "86.mmx.pmins.w"
+ case 'u': // 1 string to match.
+ if (memcmp(NameR.data()+12, ".b", 2))
+ break;
+ return Intrinsic::x86_mmx_pminu_b; // "86.mmx.pminu.b"
+ }
+ break;
+ case 'u': // 2 strings to match.
+ if (NameR[10] != 'l')
+ break;
+ switch (NameR[11]) {
+ default: break;
+ case 'h': // 1 string to match.
+ if (memcmp(NameR.data()+12, ".w", 2))
+ break;
+ return Intrinsic::x86_mmx_pmulh_w; // "86.mmx.pmulh.w"
+ case 'l': // 1 string to match.
+ if (memcmp(NameR.data()+12, ".w", 2))
+ break;
+ return Intrinsic::x86_mmx_pmull_w; // "86.mmx.pmull.w"
+ }
+ break;
+ }
+ break;
+ case 's': // 11 strings to match.
+ switch (NameR[9]) {
+ default: break;
+ case 'a': // 1 string to match.
+ if (memcmp(NameR.data()+10, "d.bw", 4))
+ break;
+ return Intrinsic::x86_mmx_psad_bw; // "86.mmx.psad.bw"
+ case 'l': // 3 strings to match.
+ if (memcmp(NameR.data()+10, "li.", 3))
+ break;
+ switch (NameR[13]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::x86_mmx_pslli_d; // "86.mmx.pslli.d"
+ case 'q': // 1 string to match.
+ return Intrinsic::x86_mmx_pslli_q; // "86.mmx.pslli.q"
+ case 'w': // 1 string to match.
+ return Intrinsic::x86_mmx_pslli_w; // "86.mmx.pslli.w"
+ }
+ break;
+ case 'r': // 5 strings to match.
+ switch (NameR[10]) {
+ default: break;
+ case 'a': // 2 strings to match.
+ if (memcmp(NameR.data()+11, "i.", 2))
+ break;
+ switch (NameR[13]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::x86_mmx_psrai_d; // "86.mmx.psrai.d"
+ case 'w': // 1 string to match.
+ return Intrinsic::x86_mmx_psrai_w; // "86.mmx.psrai.w"
+ }
+ break;
+ case 'l': // 3 strings to match.
+ if (memcmp(NameR.data()+11, "i.", 2))
+ break;
+ switch (NameR[13]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::x86_mmx_psrli_d; // "86.mmx.psrli.d"
+ case 'q': // 1 string to match.
+ return Intrinsic::x86_mmx_psrli_q; // "86.mmx.psrli.q"
+ case 'w': // 1 string to match.
+ return Intrinsic::x86_mmx_psrli_w; // "86.mmx.psrli.w"
+ }
+ break;
+ }
+ break;
+ case 'u': // 2 strings to match.
+ if (memcmp(NameR.data()+10, "bs.", 3))
+ break;
+ switch (NameR[13]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::x86_mmx_psubs_b; // "86.mmx.psubs.b"
+ case 'w': // 1 string to match.
+ return Intrinsic::x86_mmx_psubs_w; // "86.mmx.psubs.w"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 'r': // 4 strings to match.
+ if (NameR[4] != 'd')
+ break;
+ switch (NameR[5]) {
+ default: break;
+ case 'f': // 2 strings to match.
+ if (memcmp(NameR.data()+6, "sbase.", 6))
+ break;
+ switch (NameR[12]) {
+ default: break;
+ case '3': // 1 string to match.
+ if (NameR[13] != '2')
+ break;
+ return Intrinsic::x86_rdfsbase_32; // "86.rdfsbase.32"
+ case '6': // 1 string to match.
+ if (NameR[13] != '4')
+ break;
+ return Intrinsic::x86_rdfsbase_64; // "86.rdfsbase.64"
+ }
+ break;
+ case 'g': // 2 strings to match.
+ if (memcmp(NameR.data()+6, "sbase.", 6))
+ break;
+ switch (NameR[12]) {
+ default: break;
+ case '3': // 1 string to match.
+ if (NameR[13] != '2')
+ break;
+ return Intrinsic::x86_rdgsbase_32; // "86.rdgsbase.32"
+ case '6': // 1 string to match.
+ if (NameR[13] != '4')
+ break;
+ return Intrinsic::x86_rdgsbase_64; // "86.rdgsbase.64"
+ }
+ break;
+ }
+ break;
+ case 's': // 30 strings to match.
+ switch (NameR[4]) {
+ default: break;
+ case 'h': // 1 string to match.
+ if (memcmp(NameR.data()+5, "a256rnds2", 9))
+ break;
+ return Intrinsic::x86_sha256rnds2; // "86.sha256rnds2"
+ case 's': // 29 strings to match.
+ if (NameR[5] != 'e')
+ break;
+ switch (NameR[6]) {
+ default: break;
+ case '.': // 5 strings to match.
+ switch (NameR[7]) {
+ default: break;
+ case 'l': // 1 string to match.
+ if (memcmp(NameR.data()+8, "dmxcsr", 6))
+ break;
+ return Intrinsic::x86_sse_ldmxcsr; // "86.sse.ldmxcsr"
+ case 'p': // 1 string to match.
+ if (memcmp(NameR.data()+8, "shuf.w", 6))
+ break;
+ return Intrinsic::x86_sse_pshuf_w; // "86.sse.pshuf.w"
+ case 's': // 3 strings to match.
+ switch (NameR[8]) {
+ default: break;
+ case 'q': // 2 strings to match.
+ if (memcmp(NameR.data()+9, "rt.", 3))
+ break;
+ switch (NameR[12]) {
+ default: break;
+ case 'p': // 1 string to match.
+ if (NameR[13] != 's')
+ break;
+ return Intrinsic::x86_sse_sqrt_ps; // "86.sse.sqrt.ps"
+ case 's': // 1 string to match.
+ if (NameR[13] != 's')
+ break;
+ return Intrinsic::x86_sse_sqrt_ss; // "86.sse.sqrt.ss"
+ }
+ break;
+ case 't': // 1 string to match.
+ if (memcmp(NameR.data()+9, "mxcsr", 5))
+ break;
+ return Intrinsic::x86_sse_stmxcsr; // "86.sse.stmxcsr"
+ }
+ break;
+ }
+ break;
+ case '2': // 22 strings to match.
+ if (NameR[7] != '.')
+ break;
+ switch (NameR[8]) {
+ default: break;
+ case 'a': // 1 string to match.
+ if (memcmp(NameR.data()+9, "dd.sd", 5))
+ break;
+ return Intrinsic::x86_sse2_add_sd; // "86.sse2.add.sd"
+ case 'c': // 2 strings to match.
+ if (memcmp(NameR.data()+9, "mp.", 3))
+ break;
+ switch (NameR[12]) {
+ default: break;
+ case 'p': // 1 string to match.
+ if (NameR[13] != 'd')
+ break;
+ return Intrinsic::x86_sse2_cmp_pd; // "86.sse2.cmp.pd"
+ case 's': // 1 string to match.
+ if (NameR[13] != 'd')
+ break;
+ return Intrinsic::x86_sse2_cmp_sd; // "86.sse2.cmp.sd"
+ }
+ break;
+ case 'd': // 1 string to match.
+ if (memcmp(NameR.data()+9, "iv.sd", 5))
+ break;
+ return Intrinsic::x86_sse2_div_sd; // "86.sse2.div.sd"
+ case 'l': // 1 string to match.
+ if (memcmp(NameR.data()+9, "fence", 5))
+ break;
+ return Intrinsic::x86_sse2_lfence; // "86.sse2.lfence"
+ case 'm': // 6 strings to match.
+ switch (NameR[9]) {
+ default: break;
+ case 'a': // 2 strings to match.
+ if (memcmp(NameR.data()+10, "x.", 2))
+ break;
+ switch (NameR[12]) {
+ default: break;
+ case 'p': // 1 string to match.
+ if (NameR[13] != 'd')
+ break;
+ return Intrinsic::x86_sse2_max_pd; // "86.sse2.max.pd"
+ case 's': // 1 string to match.
+ if (NameR[13] != 'd')
+ break;
+ return Intrinsic::x86_sse2_max_sd; // "86.sse2.max.sd"
+ }
+ break;
+ case 'f': // 1 string to match.
+ if (memcmp(NameR.data()+10, "ence", 4))
+ break;
+ return Intrinsic::x86_sse2_mfence; // "86.sse2.mfence"
+ case 'i': // 2 strings to match.
+ if (memcmp(NameR.data()+10, "n.", 2))
+ break;
+ switch (NameR[12]) {
+ default: break;
+ case 'p': // 1 string to match.
+ if (NameR[13] != 'd')
+ break;
+ return Intrinsic::x86_sse2_min_pd; // "86.sse2.min.pd"
+ case 's': // 1 string to match.
+ if (NameR[13] != 'd')
+ break;
+ return Intrinsic::x86_sse2_min_sd; // "86.sse2.min.sd"
+ }
+ break;
+ case 'u': // 1 string to match.
+ if (memcmp(NameR.data()+10, "l.sd", 4))
+ break;
+ return Intrinsic::x86_sse2_mul_sd; // "86.sse2.mul.sd"
+ }
+ break;
+ case 'p': // 10 strings to match.
+ switch (NameR[9]) {
+ default: break;
+ case 'a': // 2 strings to match.
+ if (memcmp(NameR.data()+10, "vg.", 3))
+ break;
+ switch (NameR[13]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::x86_sse2_pavg_b; // "86.sse2.pavg.b"
+ case 'w': // 1 string to match.
+ return Intrinsic::x86_sse2_pavg_w; // "86.sse2.pavg.w"
+ }
+ break;
+ case 's': // 8 strings to match.
+ switch (NameR[10]) {
+ default: break;
+ case 'l': // 3 strings to match.
+ if (memcmp(NameR.data()+11, "l.", 2))
+ break;
+ switch (NameR[13]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::x86_sse2_psll_d; // "86.sse2.psll.d"
+ case 'q': // 1 string to match.
+ return Intrinsic::x86_sse2_psll_q; // "86.sse2.psll.q"
+ case 'w': // 1 string to match.
+ return Intrinsic::x86_sse2_psll_w; // "86.sse2.psll.w"
+ }
+ break;
+ case 'r': // 5 strings to match.
+ switch (NameR[11]) {
+ default: break;
+ case 'a': // 2 strings to match.
+ if (NameR[12] != '.')
+ break;
+ switch (NameR[13]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::x86_sse2_psra_d; // "86.sse2.psra.d"
+ case 'w': // 1 string to match.
+ return Intrinsic::x86_sse2_psra_w; // "86.sse2.psra.w"
+ }
+ break;
+ case 'l': // 3 strings to match.
+ if (NameR[12] != '.')
+ break;
+ switch (NameR[13]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::x86_sse2_psrl_d; // "86.sse2.psrl.d"
+ case 'q': // 1 string to match.
+ return Intrinsic::x86_sse2_psrl_q; // "86.sse2.psrl.q"
+ case 'w': // 1 string to match.
+ return Intrinsic::x86_sse2_psrl_w; // "86.sse2.psrl.w"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 's': // 1 string to match.
+ if (memcmp(NameR.data()+9, "ub.sd", 5))
+ break;
+ return Intrinsic::x86_sse2_sub_sd; // "86.sse2.sub.sd"
+ }
+ break;
+ case '3': // 1 string to match.
+ if (memcmp(NameR.data()+7, ".ldu.dq", 7))
+ break;
+ return Intrinsic::x86_sse3_ldu_dq; // "86.sse3.ldu.dq"
+ case '4': // 1 string to match.
+ if (memcmp(NameR.data()+7, "a.extrq", 7))
+ break;
+ return Intrinsic::x86_sse4a_extrq; // "86.sse4a.extrq"
+ }
+ break;
+ }
+ break;
+ case 'w': // 4 strings to match.
+ if (NameR[4] != 'r')
+ break;
+ switch (NameR[5]) {
+ default: break;
+ case 'f': // 2 strings to match.
+ if (memcmp(NameR.data()+6, "sbase.", 6))
+ break;
+ switch (NameR[12]) {
+ default: break;
+ case '3': // 1 string to match.
+ if (NameR[13] != '2')
+ break;
+ return Intrinsic::x86_wrfsbase_32; // "86.wrfsbase.32"
+ case '6': // 1 string to match.
+ if (NameR[13] != '4')
+ break;
+ return Intrinsic::x86_wrfsbase_64; // "86.wrfsbase.64"
+ }
+ break;
+ case 'g': // 2 strings to match.
+ if (memcmp(NameR.data()+6, "sbase.", 6))
+ break;
+ switch (NameR[12]) {
+ default: break;
+ case '3': // 1 string to match.
+ if (NameR[13] != '2')
+ break;
+ return Intrinsic::x86_wrgsbase_32; // "86.wrgsbase.32"
+ case '6': // 1 string to match.
+ if (NameR[13] != '4')
+ break;
+ return Intrinsic::x86_wrgsbase_64; // "86.wrgsbase.64"
+ }
+ break;
+ }
+ break;
+ case 'x': // 8 strings to match.
+ if (memcmp(NameR.data()+4, "op.vp", 5))
+ break;
+ switch (NameR[9]) {
+ default: break;
+ case 'c': // 4 strings to match.
+ if (memcmp(NameR.data()+10, "omu", 3))
+ break;
+ switch (NameR[13]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::x86_xop_vpcomub; // "86.xop.vpcomub"
+ case 'd': // 1 string to match.
+ return Intrinsic::x86_xop_vpcomud; // "86.xop.vpcomud"
+ case 'q': // 1 string to match.
+ return Intrinsic::x86_xop_vpcomuq; // "86.xop.vpcomuq"
+ case 'w': // 1 string to match.
+ return Intrinsic::x86_xop_vpcomuw; // "86.xop.vpcomuw"
+ }
+ break;
+ case 'r': // 4 strings to match.
+ if (memcmp(NameR.data()+10, "ot", 2))
+ break;
+ switch (NameR[12]) {
+ default: break;
+ case 'b': // 1 string to match.
+ if (NameR[13] != 'i')
+ break;
+ return Intrinsic::x86_xop_vprotbi; // "86.xop.vprotbi"
+ case 'd': // 1 string to match.
+ if (NameR[13] != 'i')
+ break;
+ return Intrinsic::x86_xop_vprotdi; // "86.xop.vprotdi"
+ case 'q': // 1 string to match.
+ if (NameR[13] != 'i')
+ break;
+ return Intrinsic::x86_xop_vprotqi; // "86.xop.vprotqi"
+ case 'w': // 1 string to match.
+ if (NameR[13] != 'i')
+ break;
+ return Intrinsic::x86_xop_vprotwi; // "86.xop.vprotwi"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 'c': // 1 string to match.
+ if (memcmp(NameR.data()+1, "ore.waitevent", 13))
+ break;
+ return Intrinsic::xcore_waitevent; // "core.waitevent"
+ }
+ break;
+ case 15: // 145 strings to match.
+ switch (NameR[0]) {
+ default: break;
+ case '8': // 144 strings to match.
+ if (memcmp(NameR.data()+1, "6.", 2))
+ break;
+ switch (NameR[3]) {
+ default: break;
+ case '3': // 3 strings to match.
+ if (memcmp(NameR.data()+4, "dnow", 4))
+ break;
+ switch (NameR[8]) {
+ default: break;
+ case '.': // 1 string to match.
+ if (memcmp(NameR.data()+9, "pfsubr", 6))
+ break;
+ return Intrinsic::x86_3dnow_pfsubr; // "86.3dnow.pfsubr"
+ case 'a': // 2 strings to match.
+ if (memcmp(NameR.data()+9, ".p", 2))
+ break;
+ switch (NameR[11]) {
+ default: break;
+ case 'f': // 1 string to match.
+ if (memcmp(NameR.data()+12, "2iw", 3))
+ break;
+ return Intrinsic::x86_3dnowa_pf2iw; // "86.3dnowa.pf2iw"
+ case 'i': // 1 string to match.
+ if (memcmp(NameR.data()+12, "2fw", 3))
+ break;
+ return Intrinsic::x86_3dnowa_pi2fw; // "86.3dnowa.pi2fw"
+ }
+ break;
+ }
+ break;
+ case 'a': // 49 strings to match.
+ switch (NameR[4]) {
+ default: break;
+ case 'e': // 3 strings to match.
+ if (memcmp(NameR.data()+5, "sni.aes", 7))
+ break;
+ switch (NameR[12]) {
+ default: break;
+ case 'd': // 1 string to match.
+ if (memcmp(NameR.data()+13, "ec", 2))
+ break;
+ return Intrinsic::x86_aesni_aesdec; // "86.aesni.aesdec"
+ case 'e': // 1 string to match.
+ if (memcmp(NameR.data()+13, "nc", 2))
+ break;
+ return Intrinsic::x86_aesni_aesenc; // "86.aesni.aesenc"
+ case 'i': // 1 string to match.
+ if (memcmp(NameR.data()+13, "mc", 2))
+ break;
+ return Intrinsic::x86_aesni_aesimc; // "86.aesni.aesimc"
+ }
+ break;
+ case 'v': // 46 strings to match.
+ if (NameR[5] != 'x')
+ break;
+ switch (NameR[6]) {
+ default: break;
+ case '.': // 1 string to match.
+ if (memcmp(NameR.data()+7, "vzeroall", 8))
+ break;
+ return Intrinsic::x86_avx_vzeroall; // "86.avx.vzeroall"
+ case '2': // 44 strings to match.
+ if (NameR[7] != '.')
+ break;
+ switch (NameR[8]) {
+ default: break;
+ case 'm': // 1 string to match.
+ if (memcmp(NameR.data()+9, "psadbw", 6))
+ break;
+ return Intrinsic::x86_avx2_mpsadbw; // "86.avx2.mpsadbw"
+ case 'p': // 43 strings to match.
+ switch (NameR[9]) {
+ default: break;
+ case 'a': // 2 strings to match.
+ if (memcmp(NameR.data()+10, "dds.", 4))
+ break;
+ switch (NameR[14]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::x86_avx2_padds_b; // "86.avx2.padds.b"
+ case 'w': // 1 string to match.
+ return Intrinsic::x86_avx2_padds_w; // "86.avx2.padds.w"
+ }
+ break;
+ case 'b': // 1 string to match.
+ if (memcmp(NameR.data()+10, "lendw", 5))
+ break;
+ return Intrinsic::x86_avx2_pblendw; // "86.avx2.pblendw"
+ case 'h': // 4 strings to match.
+ switch (NameR[10]) {
+ default: break;
+ case 'a': // 2 strings to match.
+ if (memcmp(NameR.data()+11, "dd.", 3))
+ break;
+ switch (NameR[14]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::x86_avx2_phadd_d; // "86.avx2.phadd.d"
+ case 'w': // 1 string to match.
+ return Intrinsic::x86_avx2_phadd_w; // "86.avx2.phadd.w"
+ }
+ break;
+ case 's': // 2 strings to match.
+ if (memcmp(NameR.data()+11, "ub.", 3))
+ break;
+ switch (NameR[14]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::x86_avx2_phsub_d; // "86.avx2.phsub.d"
+ case 'w': // 1 string to match.
+ return Intrinsic::x86_avx2_phsub_w; // "86.avx2.phsub.w"
+ }
+ break;
+ }
+ break;
+ case 'm': // 14 strings to match.
+ switch (NameR[10]) {
+ default: break;
+ case 'a': // 6 strings to match.
+ if (NameR[11] != 'x')
+ break;
+ switch (NameR[12]) {
+ default: break;
+ case 's': // 3 strings to match.
+ if (NameR[13] != '.')
+ break;
+ switch (NameR[14]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::x86_avx2_pmaxs_b; // "86.avx2.pmaxs.b"
+ case 'd': // 1 string to match.
+ return Intrinsic::x86_avx2_pmaxs_d; // "86.avx2.pmaxs.d"
+ case 'w': // 1 string to match.
+ return Intrinsic::x86_avx2_pmaxs_w; // "86.avx2.pmaxs.w"
+ }
+ break;
+ case 'u': // 3 strings to match.
+ if (NameR[13] != '.')
+ break;
+ switch (NameR[14]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::x86_avx2_pmaxu_b; // "86.avx2.pmaxu.b"
+ case 'd': // 1 string to match.
+ return Intrinsic::x86_avx2_pmaxu_d; // "86.avx2.pmaxu.d"
+ case 'w': // 1 string to match.
+ return Intrinsic::x86_avx2_pmaxu_w; // "86.avx2.pmaxu.w"
+ }
+ break;
+ }
+ break;
+ case 'i': // 6 strings to match.
+ if (NameR[11] != 'n')
+ break;
+ switch (NameR[12]) {
+ default: break;
+ case 's': // 3 strings to match.
+ if (NameR[13] != '.')
+ break;
+ switch (NameR[14]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::x86_avx2_pmins_b; // "86.avx2.pmins.b"
+ case 'd': // 1 string to match.
+ return Intrinsic::x86_avx2_pmins_d; // "86.avx2.pmins.d"
+ case 'w': // 1 string to match.
+ return Intrinsic::x86_avx2_pmins_w; // "86.avx2.pmins.w"
+ }
+ break;
+ case 'u': // 3 strings to match.
+ if (NameR[13] != '.')
+ break;
+ switch (NameR[14]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::x86_avx2_pminu_b; // "86.avx2.pminu.b"
+ case 'd': // 1 string to match.
+ return Intrinsic::x86_avx2_pminu_d; // "86.avx2.pminu.d"
+ case 'w': // 1 string to match.
+ return Intrinsic::x86_avx2_pminu_w; // "86.avx2.pminu.w"
+ }
+ break;
+ }
+ break;
+ case 'u': // 2 strings to match.
+ if (NameR[11] != 'l')
+ break;
+ switch (NameR[12]) {
+ default: break;
+ case '.': // 1 string to match.
+ if (memcmp(NameR.data()+13, "dq", 2))
+ break;
+ return Intrinsic::x86_avx2_pmul_dq; // "86.avx2.pmul.dq"
+ case 'h': // 1 string to match.
+ if (memcmp(NameR.data()+13, ".w", 2))
+ break;
+ return Intrinsic::x86_avx2_pmulh_w; // "86.avx2.pmulh.w"
+ }
+ break;
+ }
+ break;
+ case 's': // 22 strings to match.
+ switch (NameR[10]) {
+ default: break;
+ case 'a': // 1 string to match.
+ if (memcmp(NameR.data()+11, "d.bw", 4))
+ break;
+ return Intrinsic::x86_avx2_psad_bw; // "86.avx2.psad.bw"
+ case 'h': // 1 string to match.
+ if (memcmp(NameR.data()+11, "uf.b", 4))
+ break;
+ return Intrinsic::x86_avx2_pshuf_b; // "86.avx2.pshuf.b"
+ case 'i': // 3 strings to match.
+ if (memcmp(NameR.data()+11, "gn.", 3))
+ break;
+ switch (NameR[14]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::x86_avx2_psign_b; // "86.avx2.psign.b"
+ case 'd': // 1 string to match.
+ return Intrinsic::x86_avx2_psign_d; // "86.avx2.psign.d"
+ case 'w': // 1 string to match.
+ return Intrinsic::x86_avx2_psign_w; // "86.avx2.psign.w"
+ }
+ break;
+ case 'l': // 6 strings to match.
+ if (NameR[11] != 'l')
+ break;
+ switch (NameR[12]) {
+ default: break;
+ case '.': // 1 string to match.
+ if (memcmp(NameR.data()+13, "dq", 2))
+ break;
+ return Intrinsic::x86_avx2_psll_dq; // "86.avx2.psll.dq"
+ case 'i': // 3 strings to match.
+ if (NameR[13] != '.')
+ break;
+ switch (NameR[14]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::x86_avx2_pslli_d; // "86.avx2.pslli.d"
+ case 'q': // 1 string to match.
+ return Intrinsic::x86_avx2_pslli_q; // "86.avx2.pslli.q"
+ case 'w': // 1 string to match.
+ return Intrinsic::x86_avx2_pslli_w; // "86.avx2.pslli.w"
+ }
+ break;
+ case 'v': // 2 strings to match.
+ if (NameR[13] != '.')
+ break;
+ switch (NameR[14]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::x86_avx2_psllv_d; // "86.avx2.psllv.d"
+ case 'q': // 1 string to match.
+ return Intrinsic::x86_avx2_psllv_q; // "86.avx2.psllv.q"
+ }
+ break;
+ }
+ break;
+ case 'r': // 9 strings to match.
+ switch (NameR[11]) {
+ default: break;
+ case 'a': // 3 strings to match.
+ switch (NameR[12]) {
+ default: break;
+ case 'i': // 2 strings to match.
+ if (NameR[13] != '.')
+ break;
+ switch (NameR[14]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::x86_avx2_psrai_d; // "86.avx2.psrai.d"
+ case 'w': // 1 string to match.
+ return Intrinsic::x86_avx2_psrai_w; // "86.avx2.psrai.w"
+ }
+ break;
+ case 'v': // 1 string to match.
+ if (memcmp(NameR.data()+13, ".d", 2))
+ break;
+ return Intrinsic::x86_avx2_psrav_d; // "86.avx2.psrav.d"
+ }
+ break;
+ case 'l': // 6 strings to match.
+ switch (NameR[12]) {
+ default: break;
+ case '.': // 1 string to match.
+ if (memcmp(NameR.data()+13, "dq", 2))
+ break;
+ return Intrinsic::x86_avx2_psrl_dq; // "86.avx2.psrl.dq"
+ case 'i': // 3 strings to match.
+ if (NameR[13] != '.')
+ break;
+ switch (NameR[14]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::x86_avx2_psrli_d; // "86.avx2.psrli.d"
+ case 'q': // 1 string to match.
+ return Intrinsic::x86_avx2_psrli_q; // "86.avx2.psrli.q"
+ case 'w': // 1 string to match.
+ return Intrinsic::x86_avx2_psrli_w; // "86.avx2.psrli.w"
+ }
+ break;
+ case 'v': // 2 strings to match.
+ if (NameR[13] != '.')
+ break;
+ switch (NameR[14]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::x86_avx2_psrlv_d; // "86.avx2.psrlv.d"
+ case 'q': // 1 string to match.
+ return Intrinsic::x86_avx2_psrlv_q; // "86.avx2.psrlv.q"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 'u': // 2 strings to match.
+ if (memcmp(NameR.data()+11, "bs.", 3))
+ break;
+ switch (NameR[14]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::x86_avx2_psubs_b; // "86.avx2.psubs.b"
+ case 'w': // 1 string to match.
+ return Intrinsic::x86_avx2_psubs_w; // "86.avx2.psubs.w"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case '5': // 1 string to match.
+ if (memcmp(NameR.data()+7, "12.kor.w", 8))
+ break;
+ return Intrinsic::x86_avx512_kor_w; // "86.avx512.kor.w"
+ }
+ break;
+ }
+ break;
+ case 'b': // 2 strings to match.
+ if (memcmp(NameR.data()+4, "mi.bextr.", 9))
+ break;
+ switch (NameR[13]) {
+ default: break;
+ case '3': // 1 string to match.
+ if (NameR[14] != '2')
+ break;
+ return Intrinsic::x86_bmi_bextr_32; // "86.bmi.bextr.32"
+ case '6': // 1 string to match.
+ if (NameR[14] != '4')
+ break;
+ return Intrinsic::x86_bmi_bextr_64; // "86.bmi.bextr.64"
+ }
+ break;
+ case 'm': // 19 strings to match.
+ if (memcmp(NameR.data()+4, "mx.", 3))
+ break;
+ switch (NameR[7]) {
+ default: break;
+ case 'm': // 2 strings to match.
+ switch (NameR[8]) {
+ default: break;
+ case 'a': // 1 string to match.
+ if (memcmp(NameR.data()+9, "skmovq", 6))
+ break;
+ return Intrinsic::x86_mmx_maskmovq; // "86.mmx.maskmovq"
+ case 'o': // 1 string to match.
+ if (memcmp(NameR.data()+9, "vnt.dq", 6))
+ break;
+ return Intrinsic::x86_mmx_movnt_dq; // "86.mmx.movnt.dq"
+ }
+ break;
+ case 'p': // 17 strings to match.
+ switch (NameR[8]) {
+ default: break;
+ case 'a': // 5 strings to match.
+ switch (NameR[9]) {
+ default: break;
+ case 'c': // 3 strings to match.
+ if (NameR[10] != 'k')
+ break;
+ switch (NameR[11]) {
+ default: break;
+ case 's': // 2 strings to match.
+ if (NameR[12] != 's')
+ break;
+ switch (NameR[13]) {
+ default: break;
+ case 'd': // 1 string to match.
+ if (NameR[14] != 'w')
+ break;
+ return Intrinsic::x86_mmx_packssdw; // "86.mmx.packssdw"
+ case 'w': // 1 string to match.
+ if (NameR[14] != 'b')
+ break;
+ return Intrinsic::x86_mmx_packsswb; // "86.mmx.packsswb"
+ }
+ break;
+ case 'u': // 1 string to match.
+ if (memcmp(NameR.data()+12, "swb", 3))
+ break;
+ return Intrinsic::x86_mmx_packuswb; // "86.mmx.packuswb"
+ }
+ break;
+ case 'd': // 2 strings to match.
+ if (memcmp(NameR.data()+10, "dus.", 4))
+ break;
+ switch (NameR[14]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::x86_mmx_paddus_b; // "86.mmx.paddus.b"
+ case 'w': // 1 string to match.
+ return Intrinsic::x86_mmx_paddus_w; // "86.mmx.paddus.w"
+ }
+ break;
+ }
+ break;
+ case 'c': // 6 strings to match.
+ if (memcmp(NameR.data()+9, "mp", 2))
+ break;
+ switch (NameR[11]) {
+ default: break;
+ case 'e': // 3 strings to match.
+ if (memcmp(NameR.data()+12, "q.", 2))
+ break;
+ switch (NameR[14]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::x86_mmx_pcmpeq_b; // "86.mmx.pcmpeq.b"
+ case 'd': // 1 string to match.
+ return Intrinsic::x86_mmx_pcmpeq_d; // "86.mmx.pcmpeq.d"
+ case 'w': // 1 string to match.
+ return Intrinsic::x86_mmx_pcmpeq_w; // "86.mmx.pcmpeq.w"
+ }
+ break;
+ case 'g': // 3 strings to match.
+ if (memcmp(NameR.data()+12, "t.", 2))
+ break;
+ switch (NameR[14]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::x86_mmx_pcmpgt_b; // "86.mmx.pcmpgt.b"
+ case 'd': // 1 string to match.
+ return Intrinsic::x86_mmx_pcmpgt_d; // "86.mmx.pcmpgt.d"
+ case 'w': // 1 string to match.
+ return Intrinsic::x86_mmx_pcmpgt_w; // "86.mmx.pcmpgt.w"
+ }
+ break;
+ }
+ break;
+ case 'm': // 4 strings to match.
+ switch (NameR[9]) {
+ default: break;
+ case 'a': // 1 string to match.
+ if (memcmp(NameR.data()+10, "dd.wd", 5))
+ break;
+ return Intrinsic::x86_mmx_pmadd_wd; // "86.mmx.pmadd.wd"
+ case 'o': // 1 string to match.
+ if (memcmp(NameR.data()+10, "vmskb", 5))
+ break;
+ return Intrinsic::x86_mmx_pmovmskb; // "86.mmx.pmovmskb"
+ case 'u': // 2 strings to match.
+ if (NameR[10] != 'l')
+ break;
+ switch (NameR[11]) {
+ default: break;
+ case 'h': // 1 string to match.
+ if (memcmp(NameR.data()+12, "u.w", 3))
+ break;
+ return Intrinsic::x86_mmx_pmulhu_w; // "86.mmx.pmulhu.w"
+ case 'u': // 1 string to match.
+ if (memcmp(NameR.data()+12, ".dq", 3))
+ break;
+ return Intrinsic::x86_mmx_pmulu_dq; // "86.mmx.pmulu.dq"
+ }
+ break;
+ }
+ break;
+ case 's': // 2 strings to match.
+ if (memcmp(NameR.data()+9, "ubus.", 5))
+ break;
+ switch (NameR[14]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::x86_mmx_psubus_b; // "86.mmx.psubus.b"
+ case 'w': // 1 string to match.
+ return Intrinsic::x86_mmx_psubus_w; // "86.mmx.psubus.w"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 's': // 55 strings to match.
+ if (NameR[4] != 's')
+ break;
+ switch (NameR[5]) {
+ default: break;
+ case 'e': // 52 strings to match.
+ switch (NameR[6]) {
+ default: break;
+ case '.': // 8 strings to match.
+ switch (NameR[7]) {
+ default: break;
+ case 'c': // 6 strings to match.
+ if (memcmp(NameR.data()+8, "vt", 2))
+ break;
+ switch (NameR[10]) {
+ default: break;
+ case 'p': // 4 strings to match.
+ switch (NameR[11]) {
+ default: break;
+ case 'd': // 1 string to match.
+ if (memcmp(NameR.data()+12, "2pi", 3))
+ break;
+ return Intrinsic::x86_sse_cvtpd2pi; // "86.sse.cvtpd2pi"
+ case 'i': // 2 strings to match.
+ if (memcmp(NameR.data()+12, "2p", 2))
+ break;
+ switch (NameR[14]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::x86_sse_cvtpi2pd; // "86.sse.cvtpi2pd"
+ case 's': // 1 string to match.
+ return Intrinsic::x86_sse_cvtpi2ps; // "86.sse.cvtpi2ps"
+ }
+ break;
+ case 's': // 1 string to match.
+ if (memcmp(NameR.data()+12, "2pi", 3))
+ break;
+ return Intrinsic::x86_sse_cvtps2pi; // "86.sse.cvtps2pi"
+ }
+ break;
+ case 's': // 2 strings to match.
+ switch (NameR[11]) {
+ default: break;
+ case 'i': // 1 string to match.
+ if (memcmp(NameR.data()+12, "2ss", 3))
+ break;
+ return Intrinsic::x86_sse_cvtsi2ss; // "86.sse.cvtsi2ss"
+ case 's': // 1 string to match.
+ if (memcmp(NameR.data()+12, "2si", 3))
+ break;
+ return Intrinsic::x86_sse_cvtss2si; // "86.sse.cvtss2si"
+ }
+ break;
+ }
+ break;
+ case 'r': // 2 strings to match.
+ if (memcmp(NameR.data()+8, "sqrt.", 5))
+ break;
+ switch (NameR[13]) {
+ default: break;
+ case 'p': // 1 string to match.
+ if (NameR[14] != 's')
+ break;
+ return Intrinsic::x86_sse_rsqrt_ps; // "86.sse.rsqrt.ps"
+ case 's': // 1 string to match.
+ if (NameR[14] != 's')
+ break;
+ return Intrinsic::x86_sse_rsqrt_ss; // "86.sse.rsqrt.ss"
+ }
+ break;
+ }
+ break;
+ case '2': // 24 strings to match.
+ if (NameR[7] != '.')
+ break;
+ switch (NameR[8]) {
+ default: break;
+ case 'c': // 1 string to match.
+ if (memcmp(NameR.data()+9, "lflush", 6))
+ break;
+ return Intrinsic::x86_sse2_clflush; // "86.sse2.clflush"
+ case 'p': // 21 strings to match.
+ switch (NameR[9]) {
+ default: break;
+ case 'a': // 2 strings to match.
+ if (memcmp(NameR.data()+10, "dds.", 4))
+ break;
+ switch (NameR[14]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::x86_sse2_padds_b; // "86.sse2.padds.b"
+ case 'w': // 1 string to match.
+ return Intrinsic::x86_sse2_padds_w; // "86.sse2.padds.w"
+ }
+ break;
+ case 'm': // 5 strings to match.
+ switch (NameR[10]) {
+ default: break;
+ case 'a': // 2 strings to match.
+ if (NameR[11] != 'x')
+ break;
+ switch (NameR[12]) {
+ default: break;
+ case 's': // 1 string to match.
+ if (memcmp(NameR.data()+13, ".w", 2))
+ break;
+ return Intrinsic::x86_sse2_pmaxs_w; // "86.sse2.pmaxs.w"
+ case 'u': // 1 string to match.
+ if (memcmp(NameR.data()+13, ".b", 2))
+ break;
+ return Intrinsic::x86_sse2_pmaxu_b; // "86.sse2.pmaxu.b"
+ }
+ break;
+ case 'i': // 2 strings to match.
+ if (NameR[11] != 'n')
+ break;
+ switch (NameR[12]) {
+ default: break;
+ case 's': // 1 string to match.
+ if (memcmp(NameR.data()+13, ".w", 2))
+ break;
+ return Intrinsic::x86_sse2_pmins_w; // "86.sse2.pmins.w"
+ case 'u': // 1 string to match.
+ if (memcmp(NameR.data()+13, ".b", 2))
+ break;
+ return Intrinsic::x86_sse2_pminu_b; // "86.sse2.pminu.b"
+ }
+ break;
+ case 'u': // 1 string to match.
+ if (memcmp(NameR.data()+11, "lh.w", 4))
+ break;
+ return Intrinsic::x86_sse2_pmulh_w; // "86.sse2.pmulh.w"
+ }
+ break;
+ case 's': // 14 strings to match.
+ switch (NameR[10]) {
+ default: break;
+ case 'a': // 1 string to match.
+ if (memcmp(NameR.data()+11, "d.bw", 4))
+ break;
+ return Intrinsic::x86_sse2_psad_bw; // "86.sse2.psad.bw"
+ case 'h': // 1 string to match.
+ if (memcmp(NameR.data()+11, "uf.d", 4))
+ break;
+ return Intrinsic::x86_sse2_pshuf_d; // "86.sse2.pshuf.d"
+ case 'l': // 4 strings to match.
+ if (NameR[11] != 'l')
+ break;
+ switch (NameR[12]) {
+ default: break;
+ case '.': // 1 string to match.
+ if (memcmp(NameR.data()+13, "dq", 2))
+ break;
+ return Intrinsic::x86_sse2_psll_dq; // "86.sse2.psll.dq"
+ case 'i': // 3 strings to match.
+ if (NameR[13] != '.')
+ break;
+ switch (NameR[14]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::x86_sse2_pslli_d; // "86.sse2.pslli.d"
+ case 'q': // 1 string to match.
+ return Intrinsic::x86_sse2_pslli_q; // "86.sse2.pslli.q"
+ case 'w': // 1 string to match.
+ return Intrinsic::x86_sse2_pslli_w; // "86.sse2.pslli.w"
+ }
+ break;
+ }
+ break;
+ case 'r': // 6 strings to match.
+ switch (NameR[11]) {
+ default: break;
+ case 'a': // 2 strings to match.
+ if (memcmp(NameR.data()+12, "i.", 2))
+ break;
+ switch (NameR[14]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::x86_sse2_psrai_d; // "86.sse2.psrai.d"
+ case 'w': // 1 string to match.
+ return Intrinsic::x86_sse2_psrai_w; // "86.sse2.psrai.w"
+ }
+ break;
+ case 'l': // 4 strings to match.
+ switch (NameR[12]) {
+ default: break;
+ case '.': // 1 string to match.
+ if (memcmp(NameR.data()+13, "dq", 2))
+ break;
+ return Intrinsic::x86_sse2_psrl_dq; // "86.sse2.psrl.dq"
+ case 'i': // 3 strings to match.
+ if (NameR[13] != '.')
+ break;
+ switch (NameR[14]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::x86_sse2_psrli_d; // "86.sse2.psrli.d"
+ case 'q': // 1 string to match.
+ return Intrinsic::x86_sse2_psrli_q; // "86.sse2.psrli.q"
+ case 'w': // 1 string to match.
+ return Intrinsic::x86_sse2_psrli_w; // "86.sse2.psrli.w"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 'u': // 2 strings to match.
+ if (memcmp(NameR.data()+11, "bs.", 3))
+ break;
+ switch (NameR[14]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::x86_sse2_psubs_b; // "86.sse2.psubs.b"
+ case 'w': // 1 string to match.
+ return Intrinsic::x86_sse2_psubs_w; // "86.sse2.psubs.w"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 's': // 2 strings to match.
+ if (memcmp(NameR.data()+9, "qrt.", 4))
+ break;
+ switch (NameR[13]) {
+ default: break;
+ case 'p': // 1 string to match.
+ if (NameR[14] != 'd')
+ break;
+ return Intrinsic::x86_sse2_sqrt_pd; // "86.sse2.sqrt.pd"
+ case 's': // 1 string to match.
+ if (NameR[14] != 'd')
+ break;
+ return Intrinsic::x86_sse2_sqrt_sd; // "86.sse2.sqrt.sd"
+ }
+ break;
+ }
+ break;
+ case '3': // 5 strings to match.
+ if (NameR[7] != '.')
+ break;
+ switch (NameR[8]) {
+ default: break;
+ case 'h': // 4 strings to match.
+ switch (NameR[9]) {
+ default: break;
+ case 'a': // 2 strings to match.
+ if (memcmp(NameR.data()+10, "dd.p", 4))
+ break;
+ switch (NameR[14]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::x86_sse3_hadd_pd; // "86.sse3.hadd.pd"
+ case 's': // 1 string to match.
+ return Intrinsic::x86_sse3_hadd_ps; // "86.sse3.hadd.ps"
+ }
+ break;
+ case 's': // 2 strings to match.
+ if (memcmp(NameR.data()+10, "ub.p", 4))
+ break;
+ switch (NameR[14]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::x86_sse3_hsub_pd; // "86.sse3.hsub.pd"
+ case 's': // 1 string to match.
+ return Intrinsic::x86_sse3_hsub_ps; // "86.sse3.hsub.ps"
+ }
+ break;
+ }
+ break;
+ case 'm': // 1 string to match.
+ if (memcmp(NameR.data()+9, "onitor", 6))
+ break;
+ return Intrinsic::x86_sse3_monitor; // "86.sse3.monitor"
+ }
+ break;
+ case '4': // 15 strings to match.
+ switch (NameR[7]) {
+ default: break;
+ case '1': // 14 strings to match.
+ if (memcmp(NameR.data()+8, ".p", 2))
+ break;
+ switch (NameR[10]) {
+ default: break;
+ case 'e': // 3 strings to match.
+ if (memcmp(NameR.data()+11, "xtr", 3))
+ break;
+ switch (NameR[14]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::x86_sse41_pextrb; // "86.sse41.pextrb"
+ case 'd': // 1 string to match.
+ return Intrinsic::x86_sse41_pextrd; // "86.sse41.pextrd"
+ case 'q': // 1 string to match.
+ return Intrinsic::x86_sse41_pextrq; // "86.sse41.pextrq"
+ }
+ break;
+ case 'm': // 9 strings to match.
+ switch (NameR[11]) {
+ default: break;
+ case 'a': // 4 strings to match.
+ if (NameR[12] != 'x')
+ break;
+ switch (NameR[13]) {
+ default: break;
+ case 's': // 2 strings to match.
+ switch (NameR[14]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::x86_sse41_pmaxsb; // "86.sse41.pmaxsb"
+ case 'd': // 1 string to match.
+ return Intrinsic::x86_sse41_pmaxsd; // "86.sse41.pmaxsd"
+ }
+ break;
+ case 'u': // 2 strings to match.
+ switch (NameR[14]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::x86_sse41_pmaxud; // "86.sse41.pmaxud"
+ case 'w': // 1 string to match.
+ return Intrinsic::x86_sse41_pmaxuw; // "86.sse41.pmaxuw"
+ }
+ break;
+ }
+ break;
+ case 'i': // 4 strings to match.
+ if (NameR[12] != 'n')
+ break;
+ switch (NameR[13]) {
+ default: break;
+ case 's': // 2 strings to match.
+ switch (NameR[14]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::x86_sse41_pminsb; // "86.sse41.pminsb"
+ case 'd': // 1 string to match.
+ return Intrinsic::x86_sse41_pminsd; // "86.sse41.pminsd"
+ }
+ break;
+ case 'u': // 2 strings to match.
+ switch (NameR[14]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::x86_sse41_pminud; // "86.sse41.pminud"
+ case 'w': // 1 string to match.
+ return Intrinsic::x86_sse41_pminuw; // "86.sse41.pminuw"
+ }
+ break;
+ }
+ break;
+ case 'u': // 1 string to match.
+ if (memcmp(NameR.data()+12, "ldq", 3))
+ break;
+ return Intrinsic::x86_sse41_pmuldq; // "86.sse41.pmuldq"
+ }
+ break;
+ case 't': // 2 strings to match.
+ if (memcmp(NameR.data()+11, "est", 3))
+ break;
+ switch (NameR[14]) {
+ default: break;
+ case 'c': // 1 string to match.
+ return Intrinsic::x86_sse41_ptestc; // "86.sse41.ptestc"
+ case 'z': // 1 string to match.
+ return Intrinsic::x86_sse41_ptestz; // "86.sse41.ptestz"
+ }
+ break;
+ }
+ break;
+ case 'a': // 1 string to match.
+ if (memcmp(NameR.data()+8, ".extrqi", 7))
+ break;
+ return Intrinsic::x86_sse4a_extrqi; // "86.sse4a.extrqi"
+ }
+ break;
+ }
+ break;
+ case 's': // 3 strings to match.
+ if (memcmp(NameR.data()+6, "e3.pabs.", 8))
+ break;
+ switch (NameR[14]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::x86_ssse3_pabs_b; // "86.ssse3.pabs.b"
+ case 'd': // 1 string to match.
+ return Intrinsic::x86_ssse3_pabs_d; // "86.ssse3.pabs.d"
+ case 'w': // 1 string to match.
+ return Intrinsic::x86_ssse3_pabs_w; // "86.ssse3.pabs.w"
+ }
+ break;
+ }
+ break;
+ case 'x': // 16 strings to match.
+ if (memcmp(NameR.data()+4, "op.v", 4))
+ break;
+ switch (NameR[8]) {
+ default: break;
+ case 'f': // 4 strings to match.
+ if (memcmp(NameR.data()+9, "rcz.", 4))
+ break;
+ switch (NameR[13]) {
+ default: break;
+ case 'p': // 2 strings to match.
+ switch (NameR[14]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::x86_xop_vfrcz_pd; // "86.xop.vfrcz.pd"
+ case 's': // 1 string to match.
+ return Intrinsic::x86_xop_vfrcz_ps; // "86.xop.vfrcz.ps"
+ }
+ break;
+ case 's': // 2 strings to match.
+ switch (NameR[14]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::x86_xop_vfrcz_sd; // "86.xop.vfrcz.sd"
+ case 's': // 1 string to match.
+ return Intrinsic::x86_xop_vfrcz_ss; // "86.xop.vfrcz.ss"
+ }
+ break;
+ }
+ break;
+ case 'p': // 12 strings to match.
+ switch (NameR[9]) {
+ default: break;
+ case 'h': // 9 strings to match.
+ switch (NameR[10]) {
+ default: break;
+ case 'a': // 6 strings to match.
+ if (memcmp(NameR.data()+11, "dd", 2))
+ break;
+ switch (NameR[13]) {
+ default: break;
+ case 'b': // 3 strings to match.
+ switch (NameR[14]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::x86_xop_vphaddbd; // "86.xop.vphaddbd"
+ case 'q': // 1 string to match.
+ return Intrinsic::x86_xop_vphaddbq; // "86.xop.vphaddbq"
+ case 'w': // 1 string to match.
+ return Intrinsic::x86_xop_vphaddbw; // "86.xop.vphaddbw"
+ }
+ break;
+ case 'd': // 1 string to match.
+ if (NameR[14] != 'q')
+ break;
+ return Intrinsic::x86_xop_vphadddq; // "86.xop.vphadddq"
+ case 'w': // 2 strings to match.
+ switch (NameR[14]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::x86_xop_vphaddwd; // "86.xop.vphaddwd"
+ case 'q': // 1 string to match.
+ return Intrinsic::x86_xop_vphaddwq; // "86.xop.vphaddwq"
+ }
+ break;
+ }
+ break;
+ case 's': // 3 strings to match.
+ if (memcmp(NameR.data()+11, "ub", 2))
+ break;
+ switch (NameR[13]) {
+ default: break;
+ case 'b': // 1 string to match.
+ if (NameR[14] != 'w')
+ break;
+ return Intrinsic::x86_xop_vphsubbw; // "86.xop.vphsubbw"
+ case 'd': // 1 string to match.
+ if (NameR[14] != 'q')
+ break;
+ return Intrinsic::x86_xop_vphsubdq; // "86.xop.vphsubdq"
+ case 'w': // 1 string to match.
+ if (NameR[14] != 'd')
+ break;
+ return Intrinsic::x86_xop_vphsubwd; // "86.xop.vphsubwd"
+ }
+ break;
+ }
+ break;
+ case 'm': // 3 strings to match.
+ if (memcmp(NameR.data()+10, "acs", 3))
+ break;
+ switch (NameR[13]) {
+ default: break;
+ case 'd': // 1 string to match.
+ if (NameR[14] != 'd')
+ break;
+ return Intrinsic::x86_xop_vpmacsdd; // "86.xop.vpmacsdd"
+ case 'w': // 2 strings to match.
+ switch (NameR[14]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::x86_xop_vpmacswd; // "86.xop.vpmacswd"
+ case 'w': // 1 string to match.
+ return Intrinsic::x86_xop_vpmacsww; // "86.xop.vpmacsww"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 'c': // 1 string to match.
+ if (memcmp(NameR.data()+1, "ore.checkevent", 14))
+ break;
+ return Intrinsic::xcore_checkevent; // "core.checkevent"
+ }
+ break;
+ case 16: // 117 strings to match.
+ if (memcmp(NameR.data()+0, "86.", 3))
+ break;
+ switch (NameR[3]) {
+ default: break;
+ case '3': // 8 strings to match.
+ if (memcmp(NameR.data()+4, "dnow", 4))
+ break;
+ switch (NameR[8]) {
+ default: break;
+ case '.': // 6 strings to match.
+ if (NameR[9] != 'p')
+ break;
+ switch (NameR[10]) {
+ default: break;
+ case 'a': // 1 string to match.
+ if (memcmp(NameR.data()+11, "vgusb", 5))
+ break;
+ return Intrinsic::x86_3dnow_pavgusb; // "86.3dnow.pavgusb"
+ case 'f': // 4 strings to match.
+ switch (NameR[11]) {
+ default: break;
+ case 'c': // 3 strings to match.
+ if (memcmp(NameR.data()+12, "mp", 2))
+ break;
+ switch (NameR[14]) {
+ default: break;
+ case 'e': // 1 string to match.
+ if (NameR[15] != 'q')
+ break;
+ return Intrinsic::x86_3dnow_pfcmpeq; // "86.3dnow.pfcmpeq"
+ case 'g': // 2 strings to match.
+ switch (NameR[15]) {
+ default: break;
+ case 'e': // 1 string to match.
+ return Intrinsic::x86_3dnow_pfcmpge; // "86.3dnow.pfcmpge"
+ case 't': // 1 string to match.
+ return Intrinsic::x86_3dnow_pfcmpgt; // "86.3dnow.pfcmpgt"
+ }
+ break;
+ }
+ break;
+ case 'r': // 1 string to match.
+ if (memcmp(NameR.data()+12, "sqrt", 4))
+ break;
+ return Intrinsic::x86_3dnow_pfrsqrt; // "86.3dnow.pfrsqrt"
+ }
+ break;
+ case 'm': // 1 string to match.
+ if (memcmp(NameR.data()+11, "ulhrw", 5))
+ break;
+ return Intrinsic::x86_3dnow_pmulhrw; // "86.3dnow.pmulhrw"
+ }
+ break;
+ case 'a': // 2 strings to match.
+ if (memcmp(NameR.data()+9, ".p", 2))
+ break;
+ switch (NameR[11]) {
+ default: break;
+ case 'f': // 1 string to match.
+ if (memcmp(NameR.data()+12, "nacc", 4))
+ break;
+ return Intrinsic::x86_3dnowa_pfnacc; // "86.3dnowa.pfnacc"
+ case 's': // 1 string to match.
+ if (memcmp(NameR.data()+12, "wapd", 4))
+ break;
+ return Intrinsic::x86_3dnowa_pswapd; // "86.3dnowa.pswapd"
+ }
+ break;
+ }
+ break;
+ case 'a': // 36 strings to match.
+ if (memcmp(NameR.data()+4, "vx", 2))
+ break;
+ switch (NameR[6]) {
+ default: break;
+ case '.': // 5 strings to match.
+ switch (NameR[7]) {
+ default: break;
+ case 'd': // 1 string to match.
+ if (memcmp(NameR.data()+8, "p.ps.256", 8))
+ break;
+ return Intrinsic::x86_avx_dp_ps_256; // "86.avx.dp.ps.256"
+ case 'v': // 4 strings to match.
+ if (memcmp(NameR.data()+8, "test", 4))
+ break;
+ switch (NameR[12]) {
+ default: break;
+ case 'c': // 2 strings to match.
+ if (memcmp(NameR.data()+13, ".p", 2))
+ break;
+ switch (NameR[15]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::x86_avx_vtestc_pd; // "86.avx.vtestc.pd"
+ case 's': // 1 string to match.
+ return Intrinsic::x86_avx_vtestc_ps; // "86.avx.vtestc.ps"
+ }
+ break;
+ case 'z': // 2 strings to match.
+ if (memcmp(NameR.data()+13, ".p", 2))
+ break;
+ switch (NameR[15]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::x86_avx_vtestz_pd; // "86.avx.vtestz.pd"
+ case 's': // 1 string to match.
+ return Intrinsic::x86_avx_vtestz_ps; // "86.avx.vtestz.ps"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case '2': // 28 strings to match.
+ if (NameR[7] != '.')
+ break;
+ switch (NameR[8]) {
+ default: break;
+ case 'm': // 1 string to match.
+ if (memcmp(NameR.data()+9, "ovntdqa", 7))
+ break;
+ return Intrinsic::x86_avx2_movntdqa; // "86.avx2.movntdqa"
+ case 'p': // 27 strings to match.
+ switch (NameR[9]) {
+ default: break;
+ case 'a': // 6 strings to match.
+ switch (NameR[10]) {
+ default: break;
+ case 'c': // 4 strings to match.
+ if (NameR[11] != 'k')
+ break;
+ switch (NameR[12]) {
+ default: break;
+ case 's': // 2 strings to match.
+ if (NameR[13] != 's')
+ break;
+ switch (NameR[14]) {
+ default: break;
+ case 'd': // 1 string to match.
+ if (NameR[15] != 'w')
+ break;
+ return Intrinsic::x86_avx2_packssdw; // "86.avx2.packssdw"
+ case 'w': // 1 string to match.
+ if (NameR[15] != 'b')
+ break;
+ return Intrinsic::x86_avx2_packsswb; // "86.avx2.packsswb"
+ }
+ break;
+ case 'u': // 2 strings to match.
+ if (NameR[13] != 's')
+ break;
+ switch (NameR[14]) {
+ default: break;
+ case 'd': // 1 string to match.
+ if (NameR[15] != 'w')
+ break;
+ return Intrinsic::x86_avx2_packusdw; // "86.avx2.packusdw"
+ case 'w': // 1 string to match.
+ if (NameR[15] != 'b')
+ break;
+ return Intrinsic::x86_avx2_packuswb; // "86.avx2.packuswb"
+ }
+ break;
+ }
+ break;
+ case 'd': // 2 strings to match.
+ if (memcmp(NameR.data()+11, "dus.", 4))
+ break;
+ switch (NameR[15]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::x86_avx2_paddus_b; // "86.avx2.paddus.b"
+ case 'w': // 1 string to match.
+ return Intrinsic::x86_avx2_paddus_w; // "86.avx2.paddus.w"
+ }
+ break;
+ }
+ break;
+ case 'b': // 1 string to match.
+ if (memcmp(NameR.data()+10, "lendvb", 6))
+ break;
+ return Intrinsic::x86_avx2_pblendvb; // "86.avx2.pblendvb"
+ case 'h': // 2 strings to match.
+ switch (NameR[10]) {
+ default: break;
+ case 'a': // 1 string to match.
+ if (memcmp(NameR.data()+11, "dd.sw", 5))
+ break;
+ return Intrinsic::x86_avx2_phadd_sw; // "86.avx2.phadd.sw"
+ case 's': // 1 string to match.
+ if (memcmp(NameR.data()+11, "ub.sw", 5))
+ break;
+ return Intrinsic::x86_avx2_phsub_sw; // "86.avx2.phsub.sw"
+ }
+ break;
+ case 'm': // 16 strings to match.
+ switch (NameR[10]) {
+ default: break;
+ case 'a': // 1 string to match.
+ if (memcmp(NameR.data()+11, "dd.wd", 5))
+ break;
+ return Intrinsic::x86_avx2_pmadd_wd; // "86.avx2.pmadd.wd"
+ case 'o': // 13 strings to match.
+ if (NameR[11] != 'v')
+ break;
+ switch (NameR[12]) {
+ default: break;
+ case 'm': // 1 string to match.
+ if (memcmp(NameR.data()+13, "skb", 3))
+ break;
+ return Intrinsic::x86_avx2_pmovmskb; // "86.avx2.pmovmskb"
+ case 's': // 6 strings to match.
+ if (NameR[13] != 'x')
+ break;
+ switch (NameR[14]) {
+ default: break;
+ case 'b': // 3 strings to match.
+ switch (NameR[15]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::x86_avx2_pmovsxbd; // "86.avx2.pmovsxbd"
+ case 'q': // 1 string to match.
+ return Intrinsic::x86_avx2_pmovsxbq; // "86.avx2.pmovsxbq"
+ case 'w': // 1 string to match.
+ return Intrinsic::x86_avx2_pmovsxbw; // "86.avx2.pmovsxbw"
+ }
+ break;
+ case 'd': // 1 string to match.
+ if (NameR[15] != 'q')
+ break;
+ return Intrinsic::x86_avx2_pmovsxdq; // "86.avx2.pmovsxdq"
+ case 'w': // 2 strings to match.
+ switch (NameR[15]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::x86_avx2_pmovsxwd; // "86.avx2.pmovsxwd"
+ case 'q': // 1 string to match.
+ return Intrinsic::x86_avx2_pmovsxwq; // "86.avx2.pmovsxwq"
+ }
+ break;
+ }
+ break;
+ case 'z': // 6 strings to match.
+ if (NameR[13] != 'x')
+ break;
+ switch (NameR[14]) {
+ default: break;
+ case 'b': // 3 strings to match.
+ switch (NameR[15]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::x86_avx2_pmovzxbd; // "86.avx2.pmovzxbd"
+ case 'q': // 1 string to match.
+ return Intrinsic::x86_avx2_pmovzxbq; // "86.avx2.pmovzxbq"
+ case 'w': // 1 string to match.
+ return Intrinsic::x86_avx2_pmovzxbw; // "86.avx2.pmovzxbw"
+ }
+ break;
+ case 'd': // 1 string to match.
+ if (NameR[15] != 'q')
+ break;
+ return Intrinsic::x86_avx2_pmovzxdq; // "86.avx2.pmovzxdq"
+ case 'w': // 2 strings to match.
+ switch (NameR[15]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::x86_avx2_pmovzxwd; // "86.avx2.pmovzxwd"
+ case 'q': // 1 string to match.
+ return Intrinsic::x86_avx2_pmovzxwq; // "86.avx2.pmovzxwq"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 'u': // 2 strings to match.
+ if (NameR[11] != 'l')
+ break;
+ switch (NameR[12]) {
+ default: break;
+ case 'h': // 1 string to match.
+ if (memcmp(NameR.data()+13, "u.w", 3))
+ break;
+ return Intrinsic::x86_avx2_pmulhu_w; // "86.avx2.pmulhu.w"
+ case 'u': // 1 string to match.
+ if (memcmp(NameR.data()+13, ".dq", 3))
+ break;
+ return Intrinsic::x86_avx2_pmulu_dq; // "86.avx2.pmulu.dq"
+ }
+ break;
+ }
+ break;
+ case 's': // 2 strings to match.
+ if (memcmp(NameR.data()+10, "ubus.", 5))
+ break;
+ switch (NameR[15]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::x86_avx2_psubus_b; // "86.avx2.psubus.b"
+ case 'w': // 1 string to match.
+ return Intrinsic::x86_avx2_psubus_w; // "86.avx2.psubus.w"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case '5': // 3 strings to match.
+ if (memcmp(NameR.data()+7, "12.k", 4))
+ break;
+ switch (NameR[11]) {
+ default: break;
+ case 'a': // 1 string to match.
+ if (memcmp(NameR.data()+12, "nd.w", 4))
+ break;
+ return Intrinsic::x86_avx512_kand_w; // "86.avx512.kand.w"
+ case 'n': // 1 string to match.
+ if (memcmp(NameR.data()+12, "ot.w", 4))
+ break;
+ return Intrinsic::x86_avx512_knot_w; // "86.avx512.knot.w"
+ case 'x': // 1 string to match.
+ if (memcmp(NameR.data()+12, "or.w", 4))
+ break;
+ return Intrinsic::x86_avx512_kxor_w; // "86.avx512.kxor.w"
+ }
+ break;
+ }
+ break;
+ case 'f': // 8 strings to match.
+ if (memcmp(NameR.data()+4, "ma.vfm", 6))
+ break;
+ switch (NameR[10]) {
+ default: break;
+ case 'a': // 4 strings to match.
+ if (memcmp(NameR.data()+11, "dd.", 3))
+ break;
+ switch (NameR[14]) {
+ default: break;
+ case 'p': // 2 strings to match.
+ switch (NameR[15]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::x86_fma_vfmadd_pd; // "86.fma.vfmadd.pd"
+ case 's': // 1 string to match.
+ return Intrinsic::x86_fma_vfmadd_ps; // "86.fma.vfmadd.ps"
+ }
+ break;
+ case 's': // 2 strings to match.
+ switch (NameR[15]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::x86_fma_vfmadd_sd; // "86.fma.vfmadd.sd"
+ case 's': // 1 string to match.
+ return Intrinsic::x86_fma_vfmadd_ss; // "86.fma.vfmadd.ss"
+ }
+ break;
+ }
+ break;
+ case 's': // 4 strings to match.
+ if (memcmp(NameR.data()+11, "ub.", 3))
+ break;
+ switch (NameR[14]) {
+ default: break;
+ case 'p': // 2 strings to match.
+ switch (NameR[15]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::x86_fma_vfmsub_pd; // "86.fma.vfmsub.pd"
+ case 's': // 1 string to match.
+ return Intrinsic::x86_fma_vfmsub_ps; // "86.fma.vfmsub.ps"
+ }
+ break;
+ case 's': // 2 strings to match.
+ switch (NameR[15]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::x86_fma_vfmsub_sd; // "86.fma.vfmsub.sd"
+ case 's': // 1 string to match.
+ return Intrinsic::x86_fma_vfmsub_ss; // "86.fma.vfmsub.ss"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 'm': // 7 strings to match.
+ if (memcmp(NameR.data()+4, "mx.p", 4))
+ break;
+ switch (NameR[8]) {
+ default: break;
+ case 'a': // 1 string to match.
+ if (memcmp(NameR.data()+9, "lignr.b", 7))
+ break;
+ return Intrinsic::x86_mmx_palignr_b; // "86.mmx.palignr.b"
+ case 'u': // 6 strings to match.
+ if (memcmp(NameR.data()+9, "npck", 4))
+ break;
+ switch (NameR[13]) {
+ default: break;
+ case 'h': // 3 strings to match.
+ switch (NameR[14]) {
+ default: break;
+ case 'b': // 1 string to match.
+ if (NameR[15] != 'w')
+ break;
+ return Intrinsic::x86_mmx_punpckhbw; // "86.mmx.punpckhbw"
+ case 'd': // 1 string to match.
+ if (NameR[15] != 'q')
+ break;
+ return Intrinsic::x86_mmx_punpckhdq; // "86.mmx.punpckhdq"
+ case 'w': // 1 string to match.
+ if (NameR[15] != 'd')
+ break;
+ return Intrinsic::x86_mmx_punpckhwd; // "86.mmx.punpckhwd"
+ }
+ break;
+ case 'l': // 3 strings to match.
+ switch (NameR[14]) {
+ default: break;
+ case 'b': // 1 string to match.
+ if (NameR[15] != 'w')
+ break;
+ return Intrinsic::x86_mmx_punpcklbw; // "86.mmx.punpcklbw"
+ case 'd': // 1 string to match.
+ if (NameR[15] != 'q')
+ break;
+ return Intrinsic::x86_mmx_punpckldq; // "86.mmx.punpckldq"
+ case 'w': // 1 string to match.
+ if (NameR[15] != 'd')
+ break;
+ return Intrinsic::x86_mmx_punpcklwd; // "86.mmx.punpcklwd"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 's': // 42 strings to match.
+ if (NameR[4] != 's')
+ break;
+ switch (NameR[5]) {
+ default: break;
+ case 'e': // 34 strings to match.
+ switch (NameR[6]) {
+ default: break;
+ case '.': // 10 strings to match.
+ switch (NameR[7]) {
+ default: break;
+ case 'c': // 8 strings to match.
+ switch (NameR[8]) {
+ default: break;
+ case 'o': // 5 strings to match.
+ if (memcmp(NameR.data()+9, "mi", 2))
+ break;
+ switch (NameR[11]) {
+ default: break;
+ case 'e': // 1 string to match.
+ if (memcmp(NameR.data()+12, "q.ss", 4))
+ break;
+ return Intrinsic::x86_sse_comieq_ss; // "86.sse.comieq.ss"
+ case 'g': // 2 strings to match.
+ switch (NameR[12]) {
+ default: break;
+ case 'e': // 1 string to match.
+ if (memcmp(NameR.data()+13, ".ss", 3))
+ break;
+ return Intrinsic::x86_sse_comige_ss; // "86.sse.comige.ss"
+ case 't': // 1 string to match.
+ if (memcmp(NameR.data()+13, ".ss", 3))
+ break;
+ return Intrinsic::x86_sse_comigt_ss; // "86.sse.comigt.ss"
+ }
+ break;
+ case 'l': // 2 strings to match.
+ switch (NameR[12]) {
+ default: break;
+ case 'e': // 1 string to match.
+ if (memcmp(NameR.data()+13, ".ss", 3))
+ break;
+ return Intrinsic::x86_sse_comile_ss; // "86.sse.comile.ss"
+ case 't': // 1 string to match.
+ if (memcmp(NameR.data()+13, ".ss", 3))
+ break;
+ return Intrinsic::x86_sse_comilt_ss; // "86.sse.comilt.ss"
+ }
+ break;
+ }
+ break;
+ case 'v': // 3 strings to match.
+ if (memcmp(NameR.data()+9, "tt", 2))
+ break;
+ switch (NameR[11]) {
+ default: break;
+ case 'p': // 2 strings to match.
+ switch (NameR[12]) {
+ default: break;
+ case 'd': // 1 string to match.
+ if (memcmp(NameR.data()+13, "2pi", 3))
+ break;
+ return Intrinsic::x86_sse_cvttpd2pi; // "86.sse.cvttpd2pi"
+ case 's': // 1 string to match.
+ if (memcmp(NameR.data()+13, "2pi", 3))
+ break;
+ return Intrinsic::x86_sse_cvttps2pi; // "86.sse.cvttps2pi"
+ }
+ break;
+ case 's': // 1 string to match.
+ if (memcmp(NameR.data()+12, "s2si", 4))
+ break;
+ return Intrinsic::x86_sse_cvttss2si; // "86.sse.cvttss2si"
+ }
+ break;
+ }
+ break;
+ case 'm': // 1 string to match.
+ if (memcmp(NameR.data()+8, "ovmsk.ps", 8))
+ break;
+ return Intrinsic::x86_sse_movmsk_ps; // "86.sse.movmsk.ps"
+ case 's': // 1 string to match.
+ if (memcmp(NameR.data()+8, "toreu.ps", 8))
+ break;
+ return Intrinsic::x86_sse_storeu_ps; // "86.sse.storeu.ps"
+ }
+ break;
+ case '2': // 19 strings to match.
+ if (NameR[7] != '.')
+ break;
+ switch (NameR[8]) {
+ default: break;
+ case 'c': // 10 strings to match.
+ if (memcmp(NameR.data()+9, "vt", 2))
+ break;
+ switch (NameR[11]) {
+ default: break;
+ case 'd': // 2 strings to match.
+ if (memcmp(NameR.data()+12, "q2p", 3))
+ break;
+ switch (NameR[15]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::x86_sse2_cvtdq2pd; // "86.sse2.cvtdq2pd"
+ case 's': // 1 string to match.
+ return Intrinsic::x86_sse2_cvtdq2ps; // "86.sse2.cvtdq2ps"
+ }
+ break;
+ case 'p': // 4 strings to match.
+ switch (NameR[12]) {
+ default: break;
+ case 'd': // 2 strings to match.
+ if (NameR[13] != '2')
+ break;
+ switch (NameR[14]) {
+ default: break;
+ case 'd': // 1 string to match.
+ if (NameR[15] != 'q')
+ break;
+ return Intrinsic::x86_sse2_cvtpd2dq; // "86.sse2.cvtpd2dq"
+ case 'p': // 1 string to match.
+ if (NameR[15] != 's')
+ break;
+ return Intrinsic::x86_sse2_cvtpd2ps; // "86.sse2.cvtpd2ps"
+ }
+ break;
+ case 's': // 2 strings to match.
+ if (NameR[13] != '2')
+ break;
+ switch (NameR[14]) {
+ default: break;
+ case 'd': // 1 string to match.
+ if (NameR[15] != 'q')
+ break;
+ return Intrinsic::x86_sse2_cvtps2dq; // "86.sse2.cvtps2dq"
+ case 'p': // 1 string to match.
+ if (NameR[15] != 'd')
+ break;
+ return Intrinsic::x86_sse2_cvtps2pd; // "86.sse2.cvtps2pd"
+ }
+ break;
+ }
+ break;
+ case 's': // 4 strings to match.
+ switch (NameR[12]) {
+ default: break;
+ case 'd': // 2 strings to match.
+ if (memcmp(NameR.data()+13, "2s", 2))
+ break;
+ switch (NameR[15]) {
+ default: break;
+ case 'i': // 1 string to match.
+ return Intrinsic::x86_sse2_cvtsd2si; // "86.sse2.cvtsd2si"
+ case 's': // 1 string to match.
+ return Intrinsic::x86_sse2_cvtsd2ss; // "86.sse2.cvtsd2ss"
+ }
+ break;
+ case 'i': // 1 string to match.
+ if (memcmp(NameR.data()+13, "2sd", 3))
+ break;
+ return Intrinsic::x86_sse2_cvtsi2sd; // "86.sse2.cvtsi2sd"
+ case 's': // 1 string to match.
+ if (memcmp(NameR.data()+13, "2sd", 3))
+ break;
+ return Intrinsic::x86_sse2_cvtss2sd; // "86.sse2.cvtss2sd"
+ }
+ break;
+ }
+ break;
+ case 'p': // 9 strings to match.
+ switch (NameR[9]) {
+ default: break;
+ case 'a': // 2 strings to match.
+ if (memcmp(NameR.data()+10, "ddus.", 5))
+ break;
+ switch (NameR[15]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::x86_sse2_paddus_b; // "86.sse2.paddus.b"
+ case 'w': // 1 string to match.
+ return Intrinsic::x86_sse2_paddus_w; // "86.sse2.paddus.w"
+ }
+ break;
+ case 'm': // 3 strings to match.
+ switch (NameR[10]) {
+ default: break;
+ case 'a': // 1 string to match.
+ if (memcmp(NameR.data()+11, "dd.wd", 5))
+ break;
+ return Intrinsic::x86_sse2_pmadd_wd; // "86.sse2.pmadd.wd"
+ case 'u': // 2 strings to match.
+ if (NameR[11] != 'l')
+ break;
+ switch (NameR[12]) {
+ default: break;
+ case 'h': // 1 string to match.
+ if (memcmp(NameR.data()+13, "u.w", 3))
+ break;
+ return Intrinsic::x86_sse2_pmulhu_w; // "86.sse2.pmulhu.w"
+ case 'u': // 1 string to match.
+ if (memcmp(NameR.data()+13, ".dq", 3))
+ break;
+ return Intrinsic::x86_sse2_pmulu_dq; // "86.sse2.pmulu.dq"
+ }
+ break;
+ }
+ break;
+ case 's': // 4 strings to match.
+ switch (NameR[10]) {
+ default: break;
+ case 'h': // 2 strings to match.
+ if (memcmp(NameR.data()+11, "uf", 2))
+ break;
+ switch (NameR[13]) {
+ default: break;
+ case 'h': // 1 string to match.
+ if (memcmp(NameR.data()+14, ".w", 2))
+ break;
+ return Intrinsic::x86_sse2_pshufh_w; // "86.sse2.pshufh.w"
+ case 'l': // 1 string to match.
+ if (memcmp(NameR.data()+14, ".w", 2))
+ break;
+ return Intrinsic::x86_sse2_pshufl_w; // "86.sse2.pshufl.w"
+ }
+ break;
+ case 'u': // 2 strings to match.
+ if (memcmp(NameR.data()+11, "bus.", 4))
+ 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;
+ }
+ break;
+ case '4': // 5 strings to match.
+ switch (NameR[7]) {
+ default: break;
+ case '1': // 4 strings to match.
+ if (NameR[8] != '.')
+ break;
+ switch (NameR[9]) {
+ default: break;
+ case 'b': // 2 strings to match.
+ if (memcmp(NameR.data()+10, "lendp", 5))
+ break;
+ switch (NameR[15]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::x86_sse41_blendpd; // "86.sse41.blendpd"
+ case 's': // 1 string to match.
+ return Intrinsic::x86_sse41_blendps; // "86.sse41.blendps"
+ }
+ break;
+ case 'm': // 1 string to match.
+ if (memcmp(NameR.data()+10, "psadbw", 6))
+ break;
+ return Intrinsic::x86_sse41_mpsadbw; // "86.sse41.mpsadbw"
+ case 'p': // 1 string to match.
+ if (memcmp(NameR.data()+10, "blendw", 6))
+ break;
+ return Intrinsic::x86_sse41_pblendw; // "86.sse41.pblendw"
+ }
+ break;
+ case 'a': // 1 string to match.
+ if (memcmp(NameR.data()+8, ".insertq", 8))
+ break;
+ return Intrinsic::x86_sse4a_insertq; // "86.sse4a.insertq"
+ }
+ break;
+ }
+ break;
+ case 's': // 8 strings to match.
+ if (memcmp(NameR.data()+6, "e3.p", 4))
+ break;
+ switch (NameR[10]) {
+ default: break;
+ case 'h': // 4 strings to match.
+ switch (NameR[11]) {
+ default: break;
+ case 'a': // 2 strings to match.
+ if (memcmp(NameR.data()+12, "dd.", 3))
+ break;
+ switch (NameR[15]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::x86_ssse3_phadd_d; // "86.ssse3.phadd.d"
+ case 'w': // 1 string to match.
+ return Intrinsic::x86_ssse3_phadd_w; // "86.ssse3.phadd.w"
+ }
+ break;
+ case 's': // 2 strings to match.
+ if (memcmp(NameR.data()+12, "ub.", 3))
+ break;
+ switch (NameR[15]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::x86_ssse3_phsub_d; // "86.ssse3.phsub.d"
+ case 'w': // 1 string to match.
+ return Intrinsic::x86_ssse3_phsub_w; // "86.ssse3.phsub.w"
+ }
+ break;
+ }
+ break;
+ case 's': // 4 strings to match.
+ switch (NameR[11]) {
+ default: break;
+ case 'h': // 1 string to match.
+ if (memcmp(NameR.data()+12, "uf.b", 4))
+ break;
+ return Intrinsic::x86_ssse3_pshuf_b; // "86.ssse3.pshuf.b"
+ case 'i': // 3 strings to match.
+ if (memcmp(NameR.data()+12, "gn.", 3))
+ break;
+ switch (NameR[15]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::x86_ssse3_psign_b; // "86.ssse3.psign.b"
+ case 'd': // 1 string to match.
+ return Intrinsic::x86_ssse3_psign_d; // "86.ssse3.psign.d"
+ case 'w': // 1 string to match.
+ return Intrinsic::x86_ssse3_psign_w; // "86.ssse3.psign.w"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 'v': // 4 strings to match.
+ if (memcmp(NameR.data()+4, "cvtp", 4))
+ break;
+ switch (NameR[8]) {
+ default: break;
+ case 'h': // 2 strings to match.
+ if (memcmp(NameR.data()+9, "2ps.", 4))
+ break;
+ switch (NameR[13]) {
+ default: break;
+ case '1': // 1 string to match.
+ if (memcmp(NameR.data()+14, "28", 2))
+ break;
+ return Intrinsic::x86_vcvtph2ps_128; // "86.vcvtph2ps.128"
+ case '2': // 1 string to match.
+ if (memcmp(NameR.data()+14, "56", 2))
+ break;
+ return Intrinsic::x86_vcvtph2ps_256; // "86.vcvtph2ps.256"
+ }
+ break;
+ case 's': // 2 strings to match.
+ if (memcmp(NameR.data()+9, "2ph.", 4))
+ break;
+ switch (NameR[13]) {
+ default: break;
+ case '1': // 1 string to match.
+ if (memcmp(NameR.data()+14, "28", 2))
+ break;
+ return Intrinsic::x86_vcvtps2ph_128; // "86.vcvtps2ph.128"
+ case '2': // 1 string to match.
+ if (memcmp(NameR.data()+14, "56", 2))
+ break;
+ return Intrinsic::x86_vcvtps2ph_256; // "86.vcvtps2ph.256"
+ }
+ break;
+ }
+ break;
+ case 'x': // 12 strings to match.
+ if (memcmp(NameR.data()+4, "op.vp", 5))
+ break;
+ switch (NameR[9]) {
+ default: break;
+ case 'h': // 6 strings to match.
+ if (memcmp(NameR.data()+10, "addu", 4))
+ break;
+ switch (NameR[14]) {
+ default: break;
+ case 'b': // 3 strings to match.
+ switch (NameR[15]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::x86_xop_vphaddubd; // "86.xop.vphaddubd"
+ case 'q': // 1 string to match.
+ return Intrinsic::x86_xop_vphaddubq; // "86.xop.vphaddubq"
+ case 'w': // 1 string to match.
+ return Intrinsic::x86_xop_vphaddubw; // "86.xop.vphaddubw"
+ }
+ break;
+ case 'd': // 1 string to match.
+ if (NameR[15] != 'q')
+ break;
+ return Intrinsic::x86_xop_vphaddudq; // "86.xop.vphaddudq"
+ case 'w': // 2 strings to match.
+ switch (NameR[15]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::x86_xop_vphadduwd; // "86.xop.vphadduwd"
+ case 'q': // 1 string to match.
+ return Intrinsic::x86_xop_vphadduwq; // "86.xop.vphadduwq"
+ }
+ break;
+ }
+ break;
+ case 'm': // 6 strings to match.
+ if (NameR[10] != 'a')
+ break;
+ switch (NameR[11]) {
+ default: break;
+ case 'c': // 5 strings to match.
+ if (NameR[12] != 's')
+ break;
+ switch (NameR[13]) {
+ default: break;
+ case 'd': // 2 strings to match.
+ if (NameR[14] != 'q')
+ break;
+ switch (NameR[15]) {
+ default: break;
+ case 'h': // 1 string to match.
+ return Intrinsic::x86_xop_vpmacsdqh; // "86.xop.vpmacsdqh"
+ case 'l': // 1 string to match.
+ return Intrinsic::x86_xop_vpmacsdql; // "86.xop.vpmacsdql"
+ }
+ break;
+ case 's': // 3 strings to match.
+ switch (NameR[14]) {
+ default: break;
+ case 'd': // 1 string to match.
+ if (NameR[15] != 'd')
+ break;
+ return Intrinsic::x86_xop_vpmacssdd; // "86.xop.vpmacssdd"
+ case 'w': // 2 strings to match.
+ switch (NameR[15]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::x86_xop_vpmacsswd; // "86.xop.vpmacsswd"
+ case 'w': // 1 string to match.
+ return Intrinsic::x86_xop_vpmacssww; // "86.xop.vpmacssww"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 'd': // 1 string to match.
+ if (memcmp(NameR.data()+12, "cswd", 4))
+ break;
+ return Intrinsic::x86_xop_vpmadcswd; // "86.xop.vpmadcswd"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 17: // 87 strings to match.
+ if (memcmp(NameR.data()+0, "86.", 3))
+ break;
+ switch (NameR[3]) {
+ default: break;
+ case '3': // 4 strings to match.
+ if (memcmp(NameR.data()+4, "dnow", 4))
+ break;
+ switch (NameR[8]) {
+ default: break;
+ case '.': // 3 strings to match.
+ if (memcmp(NameR.data()+9, "pfr", 3))
+ break;
+ switch (NameR[12]) {
+ default: break;
+ case 'c': // 2 strings to match.
+ if (memcmp(NameR.data()+13, "pit", 3))
+ break;
+ switch (NameR[16]) {
+ default: break;
+ case '1': // 1 string to match.
+ return Intrinsic::x86_3dnow_pfrcpit1; // "86.3dnow.pfrcpit1"
+ case '2': // 1 string to match.
+ return Intrinsic::x86_3dnow_pfrcpit2; // "86.3dnow.pfrcpit2"
+ }
+ break;
+ case 's': // 1 string to match.
+ if (memcmp(NameR.data()+13, "qit1", 4))
+ break;
+ return Intrinsic::x86_3dnow_pfrsqit1; // "86.3dnow.pfrsqit1"
+ }
+ break;
+ case 'a': // 1 string to match.
+ if (memcmp(NameR.data()+9, ".pfpnacc", 8))
+ break;
+ return Intrinsic::x86_3dnowa_pfpnacc; // "86.3dnowa.pfpnacc"
+ }
+ break;
+ case 'a': // 17 strings to match.
+ if (memcmp(NameR.data()+4, "vx", 2))
+ break;
+ switch (NameR[6]) {
+ default: break;
+ case '.': // 11 strings to match.
+ switch (NameR[7]) {
+ default: break;
+ case 'c': // 2 strings to match.
+ if (memcmp(NameR.data()+8, "mp.p", 4))
+ break;
+ switch (NameR[12]) {
+ default: break;
+ case 'd': // 1 string to match.
+ if (memcmp(NameR.data()+13, ".256", 4))
+ break;
+ return Intrinsic::x86_avx_cmp_pd_256; // "86.avx.cmp.pd.256"
+ case 's': // 1 string to match.
+ if (memcmp(NameR.data()+13, ".256", 4))
+ break;
+ return Intrinsic::x86_avx_cmp_ps_256; // "86.avx.cmp.ps.256"
+ }
+ break;
+ case 'l': // 1 string to match.
+ if (memcmp(NameR.data()+8, "du.dq.256", 9))
+ break;
+ return Intrinsic::x86_avx_ldu_dq_256; // "86.avx.ldu.dq.256"
+ case 'm': // 4 strings to match.
+ switch (NameR[8]) {
+ default: break;
+ case 'a': // 2 strings to match.
+ if (memcmp(NameR.data()+9, "x.p", 3))
+ break;
+ switch (NameR[12]) {
+ default: break;
+ case 'd': // 1 string to match.
+ if (memcmp(NameR.data()+13, ".256", 4))
+ break;
+ return Intrinsic::x86_avx_max_pd_256; // "86.avx.max.pd.256"
+ case 's': // 1 string to match.
+ if (memcmp(NameR.data()+13, ".256", 4))
+ break;
+ return Intrinsic::x86_avx_max_ps_256; // "86.avx.max.ps.256"
+ }
+ break;
+ case 'i': // 2 strings to match.
+ if (memcmp(NameR.data()+9, "n.p", 3))
+ break;
+ switch (NameR[12]) {
+ default: break;
+ case 'd': // 1 string to match.
+ if (memcmp(NameR.data()+13, ".256", 4))
+ break;
+ return Intrinsic::x86_avx_min_pd_256; // "86.avx.min.pd.256"
+ case 's': // 1 string to match.
+ if (memcmp(NameR.data()+13, ".256", 4))
+ break;
+ return Intrinsic::x86_avx_min_ps_256; // "86.avx.min.ps.256"
+ }
+ break;
+ }
+ break;
+ case 'p': // 2 strings to match.
+ if (memcmp(NameR.data()+8, "test", 4))
+ break;
+ switch (NameR[12]) {
+ default: break;
+ case 'c': // 1 string to match.
+ if (memcmp(NameR.data()+13, ".256", 4))
+ break;
+ return Intrinsic::x86_avx_ptestc_256; // "86.avx.ptestc.256"
+ case 'z': // 1 string to match.
+ if (memcmp(NameR.data()+13, ".256", 4))
+ break;
+ return Intrinsic::x86_avx_ptestz_256; // "86.avx.ptestz.256"
+ }
+ break;
+ case 'r': // 1 string to match.
+ if (memcmp(NameR.data()+8, "cp.ps.256", 9))
+ break;
+ return Intrinsic::x86_avx_rcp_ps_256; // "86.avx.rcp.ps.256"
+ case 'v': // 1 string to match.
+ if (memcmp(NameR.data()+8, "zeroupper", 9))
+ break;
+ return Intrinsic::x86_avx_vzeroupper; // "86.avx.vzeroupper"
+ }
+ break;
+ case '5': // 6 strings to match.
+ if (memcmp(NameR.data()+7, "12.", 3))
+ break;
+ switch (NameR[10]) {
+ default: break;
+ case 'k': // 2 strings to match.
+ switch (NameR[11]) {
+ default: break;
+ case 'a': // 1 string to match.
+ if (memcmp(NameR.data()+12, "ndn.w", 5))
+ break;
+ return Intrinsic::x86_avx512_kandn_w; // "86.avx512.kandn.w"
+ case 'x': // 1 string to match.
+ if (memcmp(NameR.data()+12, "nor.w", 5))
+ break;
+ return Intrinsic::x86_avx512_kxnor_w; // "86.avx512.kxnor.w"
+ }
+ break;
+ case 'p': // 2 strings to match.
+ if (NameR[11] != 's')
+ break;
+ switch (NameR[12]) {
+ default: break;
+ case 'l': // 1 string to match.
+ if (memcmp(NameR.data()+13, "l.dq", 4))
+ break;
+ return Intrinsic::x86_avx512_psll_dq; // "86.avx512.psll.dq"
+ case 'r': // 1 string to match.
+ if (memcmp(NameR.data()+13, "l.dq", 4))
+ break;
+ return Intrinsic::x86_avx512_psrl_dq; // "86.avx512.psrl.dq"
+ }
+ break;
+ case 's': // 2 strings to match.
+ if (memcmp(NameR.data()+11, "qrt.s", 5))
+ break;
+ switch (NameR[16]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::x86_avx512_sqrt_sd; // "86.avx512.sqrt.sd"
+ case 's': // 1 string to match.
+ return Intrinsic::x86_avx512_sqrt_ss; // "86.avx512.sqrt.ss"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 'f': // 8 strings to match.
+ if (memcmp(NameR.data()+4, "ma.vfnm", 7))
+ break;
+ switch (NameR[11]) {
+ default: break;
+ case 'a': // 4 strings to match.
+ if (memcmp(NameR.data()+12, "dd.", 3))
+ break;
+ switch (NameR[15]) {
+ default: break;
+ case 'p': // 2 strings to match.
+ switch (NameR[16]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::x86_fma_vfnmadd_pd; // "86.fma.vfnmadd.pd"
+ case 's': // 1 string to match.
+ return Intrinsic::x86_fma_vfnmadd_ps; // "86.fma.vfnmadd.ps"
+ }
+ break;
+ case 's': // 2 strings to match.
+ switch (NameR[16]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::x86_fma_vfnmadd_sd; // "86.fma.vfnmadd.sd"
+ case 's': // 1 string to match.
+ return Intrinsic::x86_fma_vfnmadd_ss; // "86.fma.vfnmadd.ss"
+ }
+ break;
+ }
+ break;
+ case 's': // 4 strings to match.
+ if (memcmp(NameR.data()+12, "ub.", 3))
+ break;
+ switch (NameR[15]) {
+ default: break;
+ case 'p': // 2 strings to match.
+ switch (NameR[16]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::x86_fma_vfnmsub_pd; // "86.fma.vfnmsub.pd"
+ case 's': // 1 string to match.
+ return Intrinsic::x86_fma_vfnmsub_ps; // "86.fma.vfnmsub.ps"
+ }
+ break;
+ case 's': // 2 strings to match.
+ switch (NameR[16]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::x86_fma_vfnmsub_sd; // "86.fma.vfnmsub.sd"
+ case 's': // 1 string to match.
+ return Intrinsic::x86_fma_vfnmsub_ss; // "86.fma.vfnmsub.ss"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 's': // 50 strings to match.
+ if (NameR[4] != 's')
+ break;
+ switch (NameR[5]) {
+ default: break;
+ case 'e': // 48 strings to match.
+ switch (NameR[6]) {
+ default: break;
+ case '.': // 8 strings to match.
+ switch (NameR[7]) {
+ default: break;
+ case 'c': // 3 strings to match.
+ switch (NameR[8]) {
+ default: break;
+ case 'o': // 1 string to match.
+ if (memcmp(NameR.data()+9, "mineq.ss", 8))
+ break;
+ return Intrinsic::x86_sse_comineq_ss; // "86.sse.comineq.ss"
+ case 'v': // 2 strings to match.
+ if (memcmp(NameR.data()+9, "ts", 2))
+ break;
+ switch (NameR[11]) {
+ default: break;
+ case 'i': // 1 string to match.
+ if (memcmp(NameR.data()+12, "642ss", 5))
+ break;
+ return Intrinsic::x86_sse_cvtsi642ss; // "86.sse.cvtsi642ss"
+ case 's': // 1 string to match.
+ if (memcmp(NameR.data()+12, "2si64", 5))
+ break;
+ return Intrinsic::x86_sse_cvtss2si64; // "86.sse.cvtss2si64"
+ }
+ break;
+ }
+ break;
+ case 'u': // 5 strings to match.
+ if (memcmp(NameR.data()+8, "comi", 4))
+ break;
+ switch (NameR[12]) {
+ default: break;
+ case 'e': // 1 string to match.
+ if (memcmp(NameR.data()+13, "q.ss", 4))
+ break;
+ return Intrinsic::x86_sse_ucomieq_ss; // "86.sse.ucomieq.ss"
+ case 'g': // 2 strings to match.
+ switch (NameR[13]) {
+ default: break;
+ case 'e': // 1 string to match.
+ if (memcmp(NameR.data()+14, ".ss", 3))
+ break;
+ return Intrinsic::x86_sse_ucomige_ss; // "86.sse.ucomige.ss"
+ case 't': // 1 string to match.
+ if (memcmp(NameR.data()+14, ".ss", 3))
+ break;
+ return Intrinsic::x86_sse_ucomigt_ss; // "86.sse.ucomigt.ss"
+ }
+ break;
+ case 'l': // 2 strings to match.
+ switch (NameR[13]) {
+ default: break;
+ case 'e': // 1 string to match.
+ if (memcmp(NameR.data()+14, ".ss", 3))
+ break;
+ return Intrinsic::x86_sse_ucomile_ss; // "86.sse.ucomile.ss"
+ case 't': // 1 string to match.
+ if (memcmp(NameR.data()+14, ".ss", 3))
+ break;
+ return Intrinsic::x86_sse_ucomilt_ss; // "86.sse.ucomilt.ss"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case '2': // 12 strings to match.
+ if (NameR[7] != '.')
+ break;
+ switch (NameR[8]) {
+ default: break;
+ case 'c': // 8 strings to match.
+ switch (NameR[9]) {
+ default: break;
+ case 'o': // 5 strings to match.
+ if (memcmp(NameR.data()+10, "mi", 2))
+ break;
+ switch (NameR[12]) {
+ default: break;
+ case 'e': // 1 string to match.
+ if (memcmp(NameR.data()+13, "q.sd", 4))
+ break;
+ return Intrinsic::x86_sse2_comieq_sd; // "86.sse2.comieq.sd"
+ case 'g': // 2 strings to match.
+ switch (NameR[13]) {
+ default: break;
+ case 'e': // 1 string to match.
+ if (memcmp(NameR.data()+14, ".sd", 3))
+ break;
+ return Intrinsic::x86_sse2_comige_sd; // "86.sse2.comige.sd"
+ case 't': // 1 string to match.
+ if (memcmp(NameR.data()+14, ".sd", 3))
+ break;
+ return Intrinsic::x86_sse2_comigt_sd; // "86.sse2.comigt.sd"
+ }
+ break;
+ case 'l': // 2 strings to match.
+ switch (NameR[13]) {
+ default: break;
+ case 'e': // 1 string to match.
+ if (memcmp(NameR.data()+14, ".sd", 3))
+ break;
+ return Intrinsic::x86_sse2_comile_sd; // "86.sse2.comile.sd"
+ case 't': // 1 string to match.
+ if (memcmp(NameR.data()+14, ".sd", 3))
+ break;
+ return Intrinsic::x86_sse2_comilt_sd; // "86.sse2.comilt.sd"
+ }
+ break;
+ }
+ break;
+ case 'v': // 3 strings to match.
+ if (memcmp(NameR.data()+10, "tt", 2))
+ break;
+ switch (NameR[12]) {
+ default: break;
+ case 'p': // 2 strings to match.
+ switch (NameR[13]) {
+ default: break;
+ case 'd': // 1 string to match.
+ if (memcmp(NameR.data()+14, "2dq", 3))
+ break;
+ return Intrinsic::x86_sse2_cvttpd2dq; // "86.sse2.cvttpd2dq"
+ case 's': // 1 string to match.
+ if (memcmp(NameR.data()+14, "2dq", 3))
+ break;
+ return Intrinsic::x86_sse2_cvttps2dq; // "86.sse2.cvttps2dq"
+ }
+ break;
+ case 's': // 1 string to match.
+ if (memcmp(NameR.data()+13, "d2si", 4))
+ break;
+ return Intrinsic::x86_sse2_cvttsd2si; // "86.sse2.cvttsd2si"
+ }
+ break;
+ }
+ break;
+ case 'm': // 1 string to match.
+ if (memcmp(NameR.data()+9, "ovmsk.pd", 8))
+ break;
+ return Intrinsic::x86_sse2_movmsk_pd; // "86.sse2.movmsk.pd"
+ case 's': // 3 strings to match.
+ if (memcmp(NameR.data()+9, "tore", 4))
+ break;
+ switch (NameR[13]) {
+ default: break;
+ case 'l': // 1 string to match.
+ if (memcmp(NameR.data()+14, ".dq", 3))
+ break;
+ return Intrinsic::x86_sse2_storel_dq; // "86.sse2.storel.dq"
+ case 'u': // 2 strings to match.
+ if (NameR[14] != '.')
+ break;
+ switch (NameR[15]) {
+ default: break;
+ case 'd': // 1 string to match.
+ if (NameR[16] != 'q')
+ break;
+ return Intrinsic::x86_sse2_storeu_dq; // "86.sse2.storeu.dq"
+ case 'p': // 1 string to match.
+ if (NameR[16] != 'd')
+ break;
+ return Intrinsic::x86_sse2_storeu_pd; // "86.sse2.storeu.pd"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case '3': // 2 strings to match.
+ if (memcmp(NameR.data()+7, ".addsub.p", 9))
+ break;
+ switch (NameR[16]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::x86_sse3_addsub_pd; // "86.sse3.addsub.pd"
+ case 's': // 1 string to match.
+ return Intrinsic::x86_sse3_addsub_ps; // "86.sse3.addsub.ps"
+ }
+ break;
+ case '4': // 26 strings to match.
+ switch (NameR[7]) {
+ default: break;
+ case '1': // 23 strings to match.
+ if (NameR[8] != '.')
+ break;
+ switch (NameR[9]) {
+ default: break;
+ case 'b': // 2 strings to match.
+ if (memcmp(NameR.data()+10, "lendvp", 6))
+ break;
+ switch (NameR[16]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::x86_sse41_blendvpd; // "86.sse41.blendvpd"
+ case 's': // 1 string to match.
+ return Intrinsic::x86_sse41_blendvps; // "86.sse41.blendvps"
+ }
+ break;
+ case 'i': // 1 string to match.
+ if (memcmp(NameR.data()+10, "nsertps", 7))
+ break;
+ return Intrinsic::x86_sse41_insertps; // "86.sse41.insertps"
+ case 'm': // 1 string to match.
+ if (memcmp(NameR.data()+10, "ovntdqa", 7))
+ break;
+ return Intrinsic::x86_sse41_movntdqa; // "86.sse41.movntdqa"
+ case 'p': // 15 strings to match.
+ switch (NameR[10]) {
+ default: break;
+ case 'a': // 1 string to match.
+ if (memcmp(NameR.data()+11, "ckusdw", 6))
+ break;
+ return Intrinsic::x86_sse41_packusdw; // "86.sse41.packusdw"
+ case 'b': // 1 string to match.
+ if (memcmp(NameR.data()+11, "lendvb", 6))
+ break;
+ return Intrinsic::x86_sse41_pblendvb; // "86.sse41.pblendvb"
+ case 'm': // 12 strings to match.
+ if (memcmp(NameR.data()+11, "ov", 2))
+ break;
+ switch (NameR[13]) {
+ default: break;
+ case 's': // 6 strings to match.
+ if (NameR[14] != 'x')
+ break;
+ switch (NameR[15]) {
+ default: break;
+ case 'b': // 3 strings to match.
+ switch (NameR[16]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::x86_sse41_pmovsxbd; // "86.sse41.pmovsxbd"
+ case 'q': // 1 string to match.
+ return Intrinsic::x86_sse41_pmovsxbq; // "86.sse41.pmovsxbq"
+ case 'w': // 1 string to match.
+ return Intrinsic::x86_sse41_pmovsxbw; // "86.sse41.pmovsxbw"
+ }
+ break;
+ case 'd': // 1 string to match.
+ if (NameR[16] != 'q')
+ break;
+ return Intrinsic::x86_sse41_pmovsxdq; // "86.sse41.pmovsxdq"
+ case 'w': // 2 strings to match.
+ switch (NameR[16]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::x86_sse41_pmovsxwd; // "86.sse41.pmovsxwd"
+ case 'q': // 1 string to match.
+ return Intrinsic::x86_sse41_pmovsxwq; // "86.sse41.pmovsxwq"
+ }
+ break;
+ }
+ break;
+ case 'z': // 6 strings to match.
+ if (NameR[14] != 'x')
+ break;
+ switch (NameR[15]) {
+ default: break;
+ case 'b': // 3 strings to match.
+ switch (NameR[16]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::x86_sse41_pmovzxbd; // "86.sse41.pmovzxbd"
+ case 'q': // 1 string to match.
+ return Intrinsic::x86_sse41_pmovzxbq; // "86.sse41.pmovzxbq"
+ case 'w': // 1 string to match.
+ return Intrinsic::x86_sse41_pmovzxbw; // "86.sse41.pmovzxbw"
+ }
+ break;
+ case 'd': // 1 string to match.
+ if (NameR[16] != 'q')
+ break;
+ return Intrinsic::x86_sse41_pmovzxdq; // "86.sse41.pmovzxdq"
+ case 'w': // 2 strings to match.
+ switch (NameR[16]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::x86_sse41_pmovzxwd; // "86.sse41.pmovzxwd"
+ case 'q': // 1 string to match.
+ return Intrinsic::x86_sse41_pmovzxwq; // "86.sse41.pmovzxwq"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 't': // 1 string to match.
+ if (memcmp(NameR.data()+11, "estnzc", 6))
+ break;
+ return Intrinsic::x86_sse41_ptestnzc; // "86.sse41.ptestnzc"
+ }
+ break;
+ case 'r': // 4 strings to match.
+ if (memcmp(NameR.data()+10, "ound.", 5))
+ break;
+ switch (NameR[15]) {
+ default: break;
+ case 'p': // 2 strings to match.
+ switch (NameR[16]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::x86_sse41_round_pd; // "86.sse41.round.pd"
+ case 's': // 1 string to match.
+ return Intrinsic::x86_sse41_round_ps; // "86.sse41.round.ps"
+ }
+ break;
+ case 's': // 2 strings to match.
+ switch (NameR[16]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::x86_sse41_round_sd; // "86.sse41.round.sd"
+ case 's': // 1 string to match.
+ return Intrinsic::x86_sse41_round_ss; // "86.sse41.round.ss"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 'a': // 3 strings to match.
+ if (NameR[8] != '.')
+ break;
+ switch (NameR[9]) {
+ default: break;
+ case 'i': // 1 string to match.
+ if (memcmp(NameR.data()+10, "nsertqi", 7))
+ break;
+ return Intrinsic::x86_sse4a_insertqi; // "86.sse4a.insertqi"
+ case 'm': // 2 strings to match.
+ if (memcmp(NameR.data()+10, "ovnt.s", 6))
+ break;
+ switch (NameR[16]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::x86_sse4a_movnt_sd; // "86.sse4a.movnt.sd"
+ case 's': // 1 string to match.
+ return Intrinsic::x86_sse4a_movnt_ss; // "86.sse4a.movnt.ss"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 's': // 2 strings to match.
+ if (memcmp(NameR.data()+6, "e3.ph", 5))
+ break;
+ switch (NameR[11]) {
+ default: break;
+ case 'a': // 1 string to match.
+ if (memcmp(NameR.data()+12, "dd.sw", 5))
+ break;
+ return Intrinsic::x86_ssse3_phadd_sw; // "86.ssse3.phadd.sw"
+ case 's': // 1 string to match.
+ if (memcmp(NameR.data()+12, "ub.sw", 5))
+ break;
+ return Intrinsic::x86_ssse3_phsub_sw; // "86.ssse3.phsub.sw"
+ }
+ break;
+ }
+ break;
+ case 't': // 2 strings to match.
+ if (memcmp(NameR.data()+4, "bm.bextri.u", 11))
+ break;
+ switch (NameR[15]) {
+ default: break;
+ case '3': // 1 string to match.
+ if (NameR[16] != '2')
+ break;
+ return Intrinsic::x86_tbm_bextri_u32; // "86.tbm.bextri.u32"
+ case '6': // 1 string to match.
+ if (NameR[16] != '4')
+ break;
+ return Intrinsic::x86_tbm_bextri_u64; // "86.tbm.bextri.u64"
+ }
+ break;
+ case 'x': // 6 strings to match.
+ if (memcmp(NameR.data()+4, "op.vp", 5))
+ break;
+ switch (NameR[9]) {
+ default: break;
+ case 'c': // 1 string to match.
+ if (memcmp(NameR.data()+10, "mov.256", 7))
+ break;
+ return Intrinsic::x86_xop_vpcmov_256; // "86.xop.vpcmov.256"
+ case 'e': // 2 strings to match.
+ if (memcmp(NameR.data()+10, "rmil2p", 6))
+ break;
+ switch (NameR[16]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::x86_xop_vpermil2pd; // "86.xop.vpermil2pd"
+ case 's': // 1 string to match.
+ return Intrinsic::x86_xop_vpermil2ps; // "86.xop.vpermil2ps"
+ }
+ break;
+ case 'm': // 3 strings to match.
+ if (NameR[10] != 'a')
+ break;
+ switch (NameR[11]) {
+ default: break;
+ case 'c': // 2 strings to match.
+ if (memcmp(NameR.data()+12, "ssdq", 4))
+ break;
+ switch (NameR[16]) {
+ default: break;
+ case 'h': // 1 string to match.
+ return Intrinsic::x86_xop_vpmacssdqh; // "86.xop.vpmacssdqh"
+ case 'l': // 1 string to match.
+ return Intrinsic::x86_xop_vpmacssdql; // "86.xop.vpmacssdql"
+ }
+ break;
+ case 'd': // 1 string to match.
+ if (memcmp(NameR.data()+12, "csswd", 5))
+ break;
+ return Intrinsic::x86_xop_vpmadcsswd; // "86.xop.vpmadcsswd"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 18: // 45 strings to match.
+ if (memcmp(NameR.data()+0, "86.", 3))
+ break;
+ switch (NameR[3]) {
+ default: break;
+ case 'a': // 32 strings to match.
+ if (memcmp(NameR.data()+4, "vx", 2))
+ break;
+ switch (NameR[6]) {
+ default: break;
+ case '.': // 10 strings to match.
+ switch (NameR[7]) {
+ default: break;
+ case 'h': // 4 strings to match.
+ switch (NameR[8]) {
+ default: break;
+ case 'a': // 2 strings to match.
+ if (memcmp(NameR.data()+9, "dd.p", 4))
+ break;
+ switch (NameR[13]) {
+ default: break;
+ case 'd': // 1 string to match.
+ if (memcmp(NameR.data()+14, ".256", 4))
+ break;
+ return Intrinsic::x86_avx_hadd_pd_256; // "86.avx.hadd.pd.256"
+ case 's': // 1 string to match.
+ if (memcmp(NameR.data()+14, ".256", 4))
+ break;
+ return Intrinsic::x86_avx_hadd_ps_256; // "86.avx.hadd.ps.256"
+ }
+ break;
+ case 's': // 2 strings to match.
+ if (memcmp(NameR.data()+9, "ub.p", 4))
+ break;
+ switch (NameR[13]) {
+ default: break;
+ case 'd': // 1 string to match.
+ if (memcmp(NameR.data()+14, ".256", 4))
+ break;
+ return Intrinsic::x86_avx_hsub_pd_256; // "86.avx.hsub.pd.256"
+ case 's': // 1 string to match.
+ if (memcmp(NameR.data()+14, ".256", 4))
+ break;
+ return Intrinsic::x86_avx_hsub_ps_256; // "86.avx.hsub.ps.256"
+ }
+ break;
+ }
+ break;
+ case 'm': // 2 strings to match.
+ if (memcmp(NameR.data()+8, "askload.p", 9))
+ break;
+ switch (NameR[17]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::x86_avx_maskload_pd; // "86.avx.maskload.pd"
+ case 's': // 1 string to match.
+ return Intrinsic::x86_avx_maskload_ps; // "86.avx.maskload.ps"
+ }
+ break;
+ case 's': // 2 strings to match.
+ if (memcmp(NameR.data()+8, "qrt.p", 5))
+ break;
+ switch (NameR[13]) {
+ default: break;
+ case 'd': // 1 string to match.
+ if (memcmp(NameR.data()+14, ".256", 4))
+ break;
+ return Intrinsic::x86_avx_sqrt_pd_256; // "86.avx.sqrt.pd.256"
+ case 's': // 1 string to match.
+ if (memcmp(NameR.data()+14, ".256", 4))
+ break;
+ return Intrinsic::x86_avx_sqrt_ps_256; // "86.avx.sqrt.ps.256"
+ }
+ break;
+ case 'v': // 2 strings to match.
+ if (memcmp(NameR.data()+8, "testnzc.p", 9))
+ break;
+ switch (NameR[17]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::x86_avx_vtestnzc_pd; // "86.avx.vtestnzc.pd"
+ case 's': // 1 string to match.
+ return Intrinsic::x86_avx_vtestnzc_ps; // "86.avx.vtestnzc.ps"
+ }
+ break;
+ }
+ break;
+ case '2': // 10 strings to match.
+ if (NameR[7] != '.')
+ break;
+ switch (NameR[8]) {
+ default: break;
+ case 'g': // 4 strings to match.
+ if (memcmp(NameR.data()+9, "ather.", 6))
+ break;
+ switch (NameR[15]) {
+ default: break;
+ case 'd': // 2 strings to match.
+ if (NameR[16] != '.')
+ break;
+ switch (NameR[17]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::x86_avx2_gather_d_d; // "86.avx2.gather.d.d"
+ case 'q': // 1 string to match.
+ return Intrinsic::x86_avx2_gather_d_q; // "86.avx2.gather.d.q"
+ }
+ break;
+ case 'q': // 2 strings to match.
+ if (NameR[16] != '.')
+ break;
+ switch (NameR[17]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::x86_avx2_gather_q_d; // "86.avx2.gather.q.d"
+ case 'q': // 1 string to match.
+ return Intrinsic::x86_avx2_gather_q_q; // "86.avx2.gather.q.q"
+ }
+ break;
+ }
+ break;
+ case 'm': // 2 strings to match.
+ if (memcmp(NameR.data()+9, "askload.", 8))
+ break;
+ switch (NameR[17]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::x86_avx2_maskload_d; // "86.avx2.maskload.d"
+ case 'q': // 1 string to match.
+ return Intrinsic::x86_avx2_maskload_q; // "86.avx2.maskload.q"
+ }
+ break;
+ case 'p': // 3 strings to match.
+ switch (NameR[9]) {
+ default: break;
+ case 'm': // 1 string to match.
+ if (memcmp(NameR.data()+10, "ul.hr.sw", 8))
+ break;
+ return Intrinsic::x86_avx2_pmul_hr_sw; // "86.avx2.pmul.hr.sw"
+ case 's': // 2 strings to match.
+ switch (NameR[10]) {
+ default: break;
+ case 'l': // 1 string to match.
+ if (memcmp(NameR.data()+11, "l.dq.bs", 7))
+ break;
+ return Intrinsic::x86_avx2_psll_dq_bs; // "86.avx2.psll.dq.bs"
+ case 'r': // 1 string to match.
+ if (memcmp(NameR.data()+11, "l.dq.bs", 7))
+ break;
+ return Intrinsic::x86_avx2_psrl_dq_bs; // "86.avx2.psrl.dq.bs"
+ }
+ break;
+ }
+ break;
+ case 'v': // 1 string to match.
+ if (memcmp(NameR.data()+9, "perm2i128", 9))
+ break;
+ return Intrinsic::x86_avx2_vperm2i128; // "86.avx2.vperm2i128"
+ }
+ break;
+ case '5': // 12 strings to match.
+ if (memcmp(NameR.data()+7, "12.", 3))
+ break;
+ switch (NameR[10]) {
+ default: break;
+ case 'm': // 1 string to match.
+ if (memcmp(NameR.data()+11, "ovntdqa", 7))
+ break;
+ return Intrinsic::x86_avx512_movntdqa; // "86.avx512.movntdqa"
+ case 'p': // 5 strings to match.
+ if (memcmp(NameR.data()+11, "movzx", 5))
+ break;
+ switch (NameR[16]) {
+ default: break;
+ case 'b': // 2 strings to match.
+ switch (NameR[17]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::x86_avx512_pmovzxbd; // "86.avx512.pmovzxbd"
+ case 'q': // 1 string to match.
+ return Intrinsic::x86_avx512_pmovzxbq; // "86.avx512.pmovzxbq"
+ }
+ break;
+ case 'd': // 1 string to match.
+ if (NameR[17] != 'q')
+ break;
+ return Intrinsic::x86_avx512_pmovzxdq; // "86.avx512.pmovzxdq"
+ case 'w': // 2 strings to match.
+ switch (NameR[17]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::x86_avx512_pmovzxwd; // "86.avx512.pmovzxwd"
+ case 'q': // 1 string to match.
+ return Intrinsic::x86_avx512_pmovzxwq; // "86.avx512.pmovzxwq"
+ }
+ break;
+ }
+ break;
+ case 'r': // 6 strings to match.
+ if (memcmp(NameR.data()+11, "cp", 2))
+ break;
+ switch (NameR[13]) {
+ default: break;
+ case '1': // 2 strings to match.
+ if (memcmp(NameR.data()+14, "4.s", 3))
+ break;
+ switch (NameR[17]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::x86_avx512_rcp14_sd; // "86.avx512.rcp14.sd"
+ case 's': // 1 string to match.
+ return Intrinsic::x86_avx512_rcp14_ss; // "86.avx512.rcp14.ss"
+ }
+ break;
+ case '2': // 4 strings to match.
+ if (memcmp(NameR.data()+14, "8.", 2))
+ 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_avx512_rcp28_pd; // "86.avx512.rcp28.pd"
+ case 's': // 1 string to match.
+ return Intrinsic::x86_avx512_rcp28_ps; // "86.avx512.rcp28.ps"
+ }
+ break;
+ case 's': // 2 strings to match.
+ switch (NameR[17]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::x86_avx512_rcp28_sd; // "86.avx512.rcp28.sd"
+ case 's': // 1 string to match.
+ return Intrinsic::x86_avx512_rcp28_ss; // "86.avx512.rcp28.ss"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 's': // 13 strings to match.
+ if (memcmp(NameR.data()+4, "se", 2))
+ break;
+ switch (NameR[6]) {
+ default: break;
+ case '.': // 2 strings to match.
+ switch (NameR[7]) {
+ default: break;
+ case 'c': // 1 string to match.
+ if (memcmp(NameR.data()+8, "vttss2si64", 10))
+ break;
+ return Intrinsic::x86_sse_cvttss2si64; // "86.sse.cvttss2si64"
+ case 'u': // 1 string to match.
+ if (memcmp(NameR.data()+8, "comineq.ss", 10))
+ break;
+ return Intrinsic::x86_sse_ucomineq_ss; // "86.sse.ucomineq.ss"
+ }
+ break;
+ case '2': // 10 strings to match.
+ if (NameR[7] != '.')
+ break;
+ switch (NameR[8]) {
+ default: break;
+ case 'c': // 3 strings to match.
+ switch (NameR[9]) {
+ default: break;
+ case 'o': // 1 string to match.
+ if (memcmp(NameR.data()+10, "mineq.sd", 8))
+ break;
+ return Intrinsic::x86_sse2_comineq_sd; // "86.sse2.comineq.sd"
+ case 'v': // 2 strings to match.
+ if (memcmp(NameR.data()+10, "ts", 2))
+ break;
+ switch (NameR[12]) {
+ default: break;
+ case 'd': // 1 string to match.
+ if (memcmp(NameR.data()+13, "2si64", 5))
+ break;
+ return Intrinsic::x86_sse2_cvtsd2si64; // "86.sse2.cvtsd2si64"
+ case 'i': // 1 string to match.
+ if (memcmp(NameR.data()+13, "642sd", 5))
+ break;
+ return Intrinsic::x86_sse2_cvtsi642sd; // "86.sse2.cvtsi642sd"
+ }
+ break;
+ }
+ break;
+ case 'p': // 2 strings to match.
+ if (NameR[9] != 's')
+ break;
+ switch (NameR[10]) {
+ default: break;
+ case 'l': // 1 string to match.
+ if (memcmp(NameR.data()+11, "l.dq.bs", 7))
+ break;
+ return Intrinsic::x86_sse2_psll_dq_bs; // "86.sse2.psll.dq.bs"
+ case 'r': // 1 string to match.
+ if (memcmp(NameR.data()+11, "l.dq.bs", 7))
+ break;
+ return Intrinsic::x86_sse2_psrl_dq_bs; // "86.sse2.psrl.dq.bs"
+ }
+ break;
+ case 'u': // 5 strings to match.
+ if (memcmp(NameR.data()+9, "comi", 4))
+ break;
+ switch (NameR[13]) {
+ default: break;
+ case 'e': // 1 string to match.
+ if (memcmp(NameR.data()+14, "q.sd", 4))
+ break;
+ return Intrinsic::x86_sse2_ucomieq_sd; // "86.sse2.ucomieq.sd"
+ case 'g': // 2 strings to match.
+ switch (NameR[14]) {
+ default: break;
+ case 'e': // 1 string to match.
+ if (memcmp(NameR.data()+15, ".sd", 3))
+ break;
+ return Intrinsic::x86_sse2_ucomige_sd; // "86.sse2.ucomige.sd"
+ case 't': // 1 string to match.
+ if (memcmp(NameR.data()+15, ".sd", 3))
+ break;
+ return Intrinsic::x86_sse2_ucomigt_sd; // "86.sse2.ucomigt.sd"
+ }
+ break;
+ case 'l': // 2 strings to match.
+ switch (NameR[14]) {
+ default: break;
+ case 'e': // 1 string to match.
+ if (memcmp(NameR.data()+15, ".sd", 3))
+ break;
+ return Intrinsic::x86_sse2_ucomile_sd; // "86.sse2.ucomile.sd"
+ case 't': // 1 string to match.
+ if (memcmp(NameR.data()+15, ".sd", 3))
+ break;
+ return Intrinsic::x86_sse2_ucomilt_sd; // "86.sse2.ucomilt.sd"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case '4': // 1 string to match.
+ if (memcmp(NameR.data()+7, "1.extractps", 11))
+ break;
+ return Intrinsic::x86_sse41_extractps; // "86.sse41.extractps"
+ }
+ break;
+ }
+ break;
+ case 19: // 45 strings to match.
+ if (memcmp(NameR.data()+0, "86.", 3))
+ break;
+ switch (NameR[3]) {
+ default: break;
+ case 'a': // 30 strings to match.
+ switch (NameR[4]) {
+ default: break;
+ case 'e': // 2 strings to match.
+ if (memcmp(NameR.data()+5, "sni.aes", 7))
+ break;
+ switch (NameR[12]) {
+ default: break;
+ case 'd': // 1 string to match.
+ if (memcmp(NameR.data()+13, "eclast", 6))
+ break;
+ return Intrinsic::x86_aesni_aesdeclast; // "86.aesni.aesdeclast"
+ case 'e': // 1 string to match.
+ if (memcmp(NameR.data()+13, "nclast", 6))
+ break;
+ return Intrinsic::x86_aesni_aesenclast; // "86.aesni.aesenclast"
+ }
+ break;
+ case 'v': // 28 strings to match.
+ if (NameR[5] != 'x')
+ break;
+ switch (NameR[6]) {
+ default: break;
+ case '.': // 8 strings to match.
+ switch (NameR[7]) {
+ default: break;
+ case 'b': // 2 strings to match.
+ if (memcmp(NameR.data()+8, "lend.p", 6))
+ break;
+ switch (NameR[14]) {
+ default: break;
+ case 'd': // 1 string to match.
+ if (memcmp(NameR.data()+15, ".256", 4))
+ break;
+ return Intrinsic::x86_avx_blend_pd_256; // "86.avx.blend.pd.256"
+ case 's': // 1 string to match.
+ if (memcmp(NameR.data()+15, ".256", 4))
+ break;
+ return Intrinsic::x86_avx_blend_ps_256; // "86.avx.blend.ps.256"
+ }
+ break;
+ case 'm': // 2 strings to match.
+ if (memcmp(NameR.data()+8, "askstore.p", 10))
+ break;
+ switch (NameR[18]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::x86_avx_maskstore_pd; // "86.avx.maskstore.pd"
+ case 's': // 1 string to match.
+ return Intrinsic::x86_avx_maskstore_ps; // "86.avx.maskstore.ps"
+ }
+ break;
+ case 'p': // 1 string to match.
+ if (memcmp(NameR.data()+8, "testnzc.256", 11))
+ break;
+ return Intrinsic::x86_avx_ptestnzc_256; // "86.avx.ptestnzc.256"
+ case 'r': // 3 strings to match.
+ switch (NameR[8]) {
+ default: break;
+ case 'o': // 2 strings to match.
+ if (memcmp(NameR.data()+9, "und.p", 5))
+ break;
+ switch (NameR[14]) {
+ default: break;
+ case 'd': // 1 string to match.
+ if (memcmp(NameR.data()+15, ".256", 4))
+ break;
+ return Intrinsic::x86_avx_round_pd_256; // "86.avx.round.pd.256"
+ case 's': // 1 string to match.
+ if (memcmp(NameR.data()+15, ".256", 4))
+ break;
+ return Intrinsic::x86_avx_round_ps_256; // "86.avx.round.ps.256"
+ }
+ break;
+ case 's': // 1 string to match.
+ if (memcmp(NameR.data()+9, "qrt.ps.256", 10))
+ break;
+ return Intrinsic::x86_avx_rsqrt_ps_256; // "86.avx.rsqrt.ps.256"
+ }
+ break;
+ }
+ break;
+ case '2': // 15 strings to match.
+ if (NameR[7] != '.')
+ break;
+ switch (NameR[8]) {
+ default: break;
+ case 'g': // 4 strings to match.
+ if (memcmp(NameR.data()+9, "ather.", 6))
+ break;
+ switch (NameR[15]) {
+ default: break;
+ case 'd': // 2 strings to match.
+ if (memcmp(NameR.data()+16, ".p", 2))
+ break;
+ switch (NameR[18]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::x86_avx2_gather_d_pd; // "86.avx2.gather.d.pd"
+ case 's': // 1 string to match.
+ return Intrinsic::x86_avx2_gather_d_ps; // "86.avx2.gather.d.ps"
+ }
+ break;
+ case 'q': // 2 strings to match.
+ if (memcmp(NameR.data()+16, ".p", 2))
+ break;
+ switch (NameR[18]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::x86_avx2_gather_q_pd; // "86.avx2.gather.q.pd"
+ case 's': // 1 string to match.
+ return Intrinsic::x86_avx2_gather_q_ps; // "86.avx2.gather.q.ps"
+ }
+ break;
+ }
+ break;
+ case 'm': // 2 strings to match.
+ if (memcmp(NameR.data()+9, "askstore.", 9))
+ break;
+ switch (NameR[18]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::x86_avx2_maskstore_d; // "86.avx2.maskstore.d"
+ case 'q': // 1 string to match.
+ return Intrinsic::x86_avx2_maskstore_q; // "86.avx2.maskstore.q"
+ }
+ break;
+ case 'p': // 8 strings to match.
+ switch (NameR[9]) {
+ default: break;
+ case 'b': // 2 strings to match.
+ if (memcmp(NameR.data()+10, "lendd.", 6))
+ break;
+ switch (NameR[16]) {
+ default: break;
+ case '1': // 1 string to match.
+ if (memcmp(NameR.data()+17, "28", 2))
+ break;
+ return Intrinsic::x86_avx2_pblendd_128; // "86.avx2.pblendd.128"
+ case '2': // 1 string to match.
+ if (memcmp(NameR.data()+17, "56", 2))
+ break;
+ return Intrinsic::x86_avx2_pblendd_256; // "86.avx2.pblendd.256"
+ }
+ break;
+ case 'm': // 1 string to match.
+ if (memcmp(NameR.data()+10, "add.ub.sw", 9))
+ break;
+ return Intrinsic::x86_avx2_pmadd_ub_sw; // "86.avx2.pmadd.ub.sw"
+ case 's': // 5 strings to match.
+ switch (NameR[10]) {
+ default: break;
+ case 'l': // 2 strings to match.
+ if (memcmp(NameR.data()+11, "lv.", 3))
+ break;
+ switch (NameR[14]) {
+ default: break;
+ case 'd': // 1 string to match.
+ if (memcmp(NameR.data()+15, ".256", 4))
+ break;
+ return Intrinsic::x86_avx2_psllv_d_256; // "86.avx2.psllv.d.256"
+ case 'q': // 1 string to match.
+ if (memcmp(NameR.data()+15, ".256", 4))
+ break;
+ return Intrinsic::x86_avx2_psllv_q_256; // "86.avx2.psllv.q.256"
+ }
+ break;
+ case 'r': // 3 strings to match.
+ switch (NameR[11]) {
+ default: break;
+ case 'a': // 1 string to match.
+ if (memcmp(NameR.data()+12, "v.d.256", 7))
+ break;
+ return Intrinsic::x86_avx2_psrav_d_256; // "86.avx2.psrav.d.256"
+ case 'l': // 2 strings to match.
+ if (memcmp(NameR.data()+12, "v.", 2))
+ break;
+ switch (NameR[14]) {
+ default: break;
+ case 'd': // 1 string to match.
+ if (memcmp(NameR.data()+15, ".256", 4))
+ break;
+ return Intrinsic::x86_avx2_psrlv_d_256; // "86.avx2.psrlv.d.256"
+ case 'q': // 1 string to match.
+ if (memcmp(NameR.data()+15, ".256", 4))
+ break;
+ return Intrinsic::x86_avx2_psrlv_q_256; // "86.avx2.psrlv.q.256"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 'v': // 1 string to match.
+ if (memcmp(NameR.data()+9, "inserti128", 10))
+ break;
+ return Intrinsic::x86_avx2_vinserti128; // "86.avx2.vinserti128"
+ }
+ break;
+ case '5': // 5 strings to match.
+ if (memcmp(NameR.data()+7, "12.", 3))
+ break;
+ switch (NameR[10]) {
+ default: break;
+ case 'c': // 4 strings to match.
+ if (memcmp(NameR.data()+11, "vt", 2))
+ break;
+ switch (NameR[13]) {
+ default: break;
+ case 's': // 2 strings to match.
+ switch (NameR[14]) {
+ default: break;
+ case 'd': // 1 string to match.
+ if (memcmp(NameR.data()+15, "2usi", 4))
+ break;
+ return Intrinsic::x86_avx512_cvtsd2usi; // "86.avx512.cvtsd2usi"
+ case 's': // 1 string to match.
+ if (memcmp(NameR.data()+15, "2usi", 4))
+ break;
+ return Intrinsic::x86_avx512_cvtss2usi; // "86.avx512.cvtss2usi"
+ }
+ break;
+ case 'u': // 2 strings to match.
+ if (memcmp(NameR.data()+14, "si2s", 4))
+ break;
+ switch (NameR[18]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::x86_avx512_cvtusi2sd; // "86.avx512.cvtusi2sd"
+ case 's': // 1 string to match.
+ return Intrinsic::x86_avx512_cvtusi2ss; // "86.avx512.cvtusi2ss"
+ }
+ break;
+ }
+ break;
+ case 'k': // 1 string to match.
+ if (memcmp(NameR.data()+11, "unpck.bw", 8))
+ break;
+ return Intrinsic::x86_avx512_kunpck_bw; // "86.avx512.kunpck.bw"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 'f': // 4 strings to match.
+ if (memcmp(NameR.data()+4, "ma.vfm", 6))
+ break;
+ switch (NameR[10]) {
+ default: break;
+ case 'a': // 2 strings to match.
+ if (memcmp(NameR.data()+11, "ddsub.p", 7))
+ break;
+ switch (NameR[18]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::x86_fma_vfmaddsub_pd; // "86.fma.vfmaddsub.pd"
+ case 's': // 1 string to match.
+ return Intrinsic::x86_fma_vfmaddsub_ps; // "86.fma.vfmaddsub.ps"
+ }
+ break;
+ case 's': // 2 strings to match.
+ if (memcmp(NameR.data()+11, "ubadd.p", 7))
+ break;
+ switch (NameR[18]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::x86_fma_vfmsubadd_pd; // "86.fma.vfmsubadd.pd"
+ case 's': // 1 string to match.
+ return Intrinsic::x86_fma_vfmsubadd_ps; // "86.fma.vfmsubadd.ps"
+ }
+ break;
+ }
+ break;
+ case 's': // 9 strings to match.
+ if (NameR[4] != 's')
+ break;
+ switch (NameR[5]) {
+ default: break;
+ case 'e': // 5 strings to match.
+ switch (NameR[6]) {
+ default: break;
+ case '2': // 3 strings to match.
+ if (NameR[7] != '.')
+ break;
+ switch (NameR[8]) {
+ default: break;
+ case 'c': // 1 string to match.
+ if (memcmp(NameR.data()+9, "vttsd2si64", 10))
+ break;
+ return Intrinsic::x86_sse2_cvttsd2si64; // "86.sse2.cvttsd2si64"
+ case 'm': // 1 string to match.
+ if (memcmp(NameR.data()+9, "askmov.dqu", 10))
+ break;
+ return Intrinsic::x86_sse2_maskmov_dqu; // "86.sse2.maskmov.dqu"
+ case 'u': // 1 string to match.
+ if (memcmp(NameR.data()+9, "comineq.sd", 10))
+ break;
+ return Intrinsic::x86_sse2_ucomineq_sd; // "86.sse2.ucomineq.sd"
+ }
+ break;
+ case '4': // 2 strings to match.
+ switch (NameR[7]) {
+ default: break;
+ case '1': // 1 string to match.
+ if (memcmp(NameR.data()+8, ".phminposuw", 11))
+ break;
+ return Intrinsic::x86_sse41_phminposuw; // "86.sse41.phminposuw"
+ case '2': // 1 string to match.
+ if (memcmp(NameR.data()+8, ".crc32.32.8", 11))
+ break;
+ return Intrinsic::x86_sse42_crc32_32_8; // "86.sse42.crc32.32.8"
+ }
+ break;
+ }
+ break;
+ case 's': // 4 strings to match.
+ if (memcmp(NameR.data()+6, "e3.p", 4))
+ break;
+ switch (NameR[10]) {
+ default: break;
+ case 'a': // 3 strings to match.
+ if (memcmp(NameR.data()+11, "bs.", 3))
+ break;
+ switch (NameR[14]) {
+ default: break;
+ case 'b': // 1 string to match.
+ if (memcmp(NameR.data()+15, ".128", 4))
+ break;
+ return Intrinsic::x86_ssse3_pabs_b_128; // "86.ssse3.pabs.b.128"
+ case 'd': // 1 string to match.
+ if (memcmp(NameR.data()+15, ".128", 4))
+ break;
+ return Intrinsic::x86_ssse3_pabs_d_128; // "86.ssse3.pabs.d.128"
+ case 'w': // 1 string to match.
+ if (memcmp(NameR.data()+15, ".128", 4))
+ break;
+ return Intrinsic::x86_ssse3_pabs_w_128; // "86.ssse3.pabs.w.128"
+ }
+ break;
+ case 'm': // 1 string to match.
+ if (memcmp(NameR.data()+11, "ul.hr.sw", 8))
+ break;
+ return Intrinsic::x86_ssse3_pmul_hr_sw; // "86.ssse3.pmul.hr.sw"
+ }
+ break;
+ }
+ break;
+ case 'x': // 2 strings to match.
+ if (memcmp(NameR.data()+4, "op.vfrcz.p", 10))
+ break;
+ switch (NameR[14]) {
+ default: break;
+ case 'd': // 1 string to match.
+ if (memcmp(NameR.data()+15, ".256", 4))
+ break;
+ return Intrinsic::x86_xop_vfrcz_pd_256; // "86.xop.vfrcz.pd.256"
+ case 's': // 1 string to match.
+ if (memcmp(NameR.data()+15, ".256", 4))
+ break;
+ return Intrinsic::x86_xop_vfrcz_ps_256; // "86.xop.vfrcz.ps.256"
+ }
+ break;
+ }
+ break;
+ case 20: // 56 strings to match.
+ if (memcmp(NameR.data()+0, "86.", 3))
+ break;
+ switch (NameR[3]) {
+ default: break;
+ case 'a': // 32 strings to match.
+ if (memcmp(NameR.data()+4, "vx", 2))
+ break;
+ switch (NameR[6]) {
+ default: break;
+ case '.': // 19 strings to match.
+ switch (NameR[7]) {
+ default: break;
+ case 'a': // 2 strings to match.
+ if (memcmp(NameR.data()+8, "ddsub.p", 7))
+ break;
+ switch (NameR[15]) {
+ default: break;
+ case 'd': // 1 string to match.
+ if (memcmp(NameR.data()+16, ".256", 4))
+ break;
+ return Intrinsic::x86_avx_addsub_pd_256; // "86.avx.addsub.pd.256"
+ case 's': // 1 string to match.
+ if (memcmp(NameR.data()+16, ".256", 4))
+ break;
+ return Intrinsic::x86_avx_addsub_ps_256; // "86.avx.addsub.ps.256"
+ }
+ break;
+ case 'b': // 2 strings to match.
+ if (memcmp(NameR.data()+8, "lendv.p", 7))
+ break;
+ switch (NameR[15]) {
+ default: break;
+ case 'd': // 1 string to match.
+ if (memcmp(NameR.data()+16, ".256", 4))
+ break;
+ return Intrinsic::x86_avx_blendv_pd_256; // "86.avx.blendv.pd.256"
+ case 's': // 1 string to match.
+ if (memcmp(NameR.data()+16, ".256", 4))
+ break;
+ return Intrinsic::x86_avx_blendv_ps_256; // "86.avx.blendv.ps.256"
+ }
+ break;
+ case 'c': // 4 strings to match.
+ if (memcmp(NameR.data()+8, "vt", 2))
+ break;
+ switch (NameR[10]) {
+ default: break;
+ case '.': // 2 strings to match.
+ if (NameR[11] != 'p')
+ break;
+ switch (NameR[12]) {
+ default: break;
+ case 'd': // 1 string to match.
+ if (memcmp(NameR.data()+13, "2dq.256", 7))
+ break;
+ return Intrinsic::x86_avx_cvt_pd2dq_256; // "86.avx.cvt.pd2dq.256"
+ case 's': // 1 string to match.
+ if (memcmp(NameR.data()+13, "2dq.256", 7))
+ break;
+ return Intrinsic::x86_avx_cvt_ps2dq_256; // "86.avx.cvt.ps2dq.256"
+ }
+ break;
+ case 'd': // 2 strings to match.
+ if (memcmp(NameR.data()+11, "q2.p", 4))
+ break;
+ switch (NameR[15]) {
+ default: break;
+ case 'd': // 1 string to match.
+ if (memcmp(NameR.data()+16, ".256", 4))
+ break;
+ return Intrinsic::x86_avx_cvtdq2_pd_256; // "86.avx.cvtdq2.pd.256"
+ case 's': // 1 string to match.
+ if (memcmp(NameR.data()+16, ".256", 4))
+ break;
+ return Intrinsic::x86_avx_cvtdq2_ps_256; // "86.avx.cvtdq2.ps.256"
+ }
+ break;
+ }
+ break;
+ case 'm': // 2 strings to match.
+ if (memcmp(NameR.data()+8, "ovmsk.p", 7))
+ break;
+ switch (NameR[15]) {
+ default: break;
+ case 'd': // 1 string to match.
+ if (memcmp(NameR.data()+16, ".256", 4))
+ break;
+ return Intrinsic::x86_avx_movmsk_pd_256; // "86.avx.movmsk.pd.256"
+ case 's': // 1 string to match.
+ if (memcmp(NameR.data()+16, ".256", 4))
+ break;
+ return Intrinsic::x86_avx_movmsk_ps_256; // "86.avx.movmsk.ps.256"
+ }
+ break;
+ case 's': // 3 strings to match.
+ if (memcmp(NameR.data()+8, "toreu.", 6))
+ break;
+ switch (NameR[14]) {
+ default: break;
+ case 'd': // 1 string to match.
+ if (memcmp(NameR.data()+15, "q.256", 5))
+ break;
+ return Intrinsic::x86_avx_storeu_dq_256; // "86.avx.storeu.dq.256"
+ case 'p': // 2 strings to match.
+ switch (NameR[15]) {
+ default: break;
+ case 'd': // 1 string to match.
+ if (memcmp(NameR.data()+16, ".256", 4))
+ break;
+ return Intrinsic::x86_avx_storeu_pd_256; // "86.avx.storeu.pd.256"
+ case 's': // 1 string to match.
+ if (memcmp(NameR.data()+16, ".256", 4))
+ break;
+ return Intrinsic::x86_avx_storeu_ps_256; // "86.avx.storeu.ps.256"
+ }
+ break;
+ }
+ break;
+ case 'v': // 6 strings to match.
+ switch (NameR[8]) {
+ default: break;
+ case 'p': // 2 strings to match.
+ if (memcmp(NameR.data()+9, "ermilvar.p", 10))
+ break;
+ switch (NameR[19]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::x86_avx_vpermilvar_pd; // "86.avx.vpermilvar.pd"
+ case 's': // 1 string to match.
+ return Intrinsic::x86_avx_vpermilvar_ps; // "86.avx.vpermilvar.ps"
+ }
+ break;
+ case 't': // 4 strings to match.
+ if (memcmp(NameR.data()+9, "est", 3))
+ break;
+ switch (NameR[12]) {
+ default: break;
+ case 'c': // 2 strings to match.
+ if (memcmp(NameR.data()+13, ".p", 2))
+ break;
+ switch (NameR[15]) {
+ default: break;
+ case 'd': // 1 string to match.
+ if (memcmp(NameR.data()+16, ".256", 4))
+ break;
+ return Intrinsic::x86_avx_vtestc_pd_256; // "86.avx.vtestc.pd.256"
+ case 's': // 1 string to match.
+ if (memcmp(NameR.data()+16, ".256", 4))
+ break;
+ return Intrinsic::x86_avx_vtestc_ps_256; // "86.avx.vtestc.ps.256"
+ }
+ break;
+ case 'z': // 2 strings to match.
+ if (memcmp(NameR.data()+13, ".p", 2))
+ break;
+ switch (NameR[15]) {
+ default: break;
+ case 'd': // 1 string to match.
+ if (memcmp(NameR.data()+16, ".256", 4))
+ break;
+ return Intrinsic::x86_avx_vtestz_pd_256; // "86.avx.vtestz.pd.256"
+ case 's': // 1 string to match.
+ if (memcmp(NameR.data()+16, ".256", 4))
+ break;
+ return Intrinsic::x86_avx_vtestz_ps_256; // "86.avx.vtestz.ps.256"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case '2': // 1 string to match.
+ if (memcmp(NameR.data()+7, ".vextracti128", 13))
+ break;
+ return Intrinsic::x86_avx2_vextracti128; // "86.avx2.vextracti128"
+ case '5': // 12 strings to match.
+ if (memcmp(NameR.data()+7, "12.", 3))
+ break;
+ switch (NameR[10]) {
+ default: break;
+ case 'c': // 2 strings to match.
+ if (memcmp(NameR.data()+11, "vtts", 4))
+ break;
+ switch (NameR[15]) {
+ default: break;
+ case 'd': // 1 string to match.
+ if (memcmp(NameR.data()+16, "2usi", 4))
+ break;
+ return Intrinsic::x86_avx512_cvttsd2usi; // "86.avx512.cvttsd2usi"
+ case 's': // 1 string to match.
+ if (memcmp(NameR.data()+16, "2usi", 4))
+ break;
+ return Intrinsic::x86_avx512_cvttss2usi; // "86.avx512.cvttss2usi"
+ }
+ break;
+ case 'k': // 2 strings to match.
+ if (memcmp(NameR.data()+11, "ortest", 6))
+ break;
+ switch (NameR[17]) {
+ default: break;
+ case 'c': // 1 string to match.
+ if (memcmp(NameR.data()+18, ".w", 2))
+ break;
+ return Intrinsic::x86_avx512_kortestc_w; // "86.avx512.kortestc.w"
+ case 'z': // 1 string to match.
+ if (memcmp(NameR.data()+18, ".w", 2))
+ break;
+ return Intrinsic::x86_avx512_kortestz_w; // "86.avx512.kortestz.w"
+ }
+ break;
+ case 'p': // 2 strings to match.
+ if (NameR[11] != 's')
+ break;
+ switch (NameR[12]) {
+ default: break;
+ case 'l': // 1 string to match.
+ if (memcmp(NameR.data()+13, "l.dq.bs", 7))
+ break;
+ return Intrinsic::x86_avx512_psll_dq_bs; // "86.avx512.psll.dq.bs"
+ case 'r': // 1 string to match.
+ if (memcmp(NameR.data()+13, "l.dq.bs", 7))
+ break;
+ return Intrinsic::x86_avx512_psrl_dq_bs; // "86.avx512.psrl.dq.bs"
+ }
+ break;
+ case 'r': // 6 strings to match.
+ if (memcmp(NameR.data()+11, "sqrt", 4))
+ break;
+ switch (NameR[15]) {
+ default: break;
+ case '1': // 2 strings to match.
+ if (memcmp(NameR.data()+16, "4.s", 3))
+ break;
+ switch (NameR[19]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::x86_avx512_rsqrt14_sd; // "86.avx512.rsqrt14.sd"
+ case 's': // 1 string to match.
+ return Intrinsic::x86_avx512_rsqrt14_ss; // "86.avx512.rsqrt14.ss"
+ }
+ break;
+ case '2': // 4 strings to match.
+ if (memcmp(NameR.data()+16, "8.", 2))
+ break;
+ switch (NameR[18]) {
+ default: break;
+ case 'p': // 2 strings to match.
+ switch (NameR[19]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::x86_avx512_rsqrt28_pd; // "86.avx512.rsqrt28.pd"
+ case 's': // 1 string to match.
+ return Intrinsic::x86_avx512_rsqrt28_ps; // "86.avx512.rsqrt28.ps"
+ }
+ break;
+ case 's': // 2 strings to match.
+ switch (NameR[19]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::x86_avx512_rsqrt28_sd; // "86.avx512.rsqrt28.sd"
+ case 's': // 1 string to match.
+ return Intrinsic::x86_avx512_rsqrt28_ss; // "86.avx512.rsqrt28.ss"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 'f': // 8 strings to match.
+ if (memcmp(NameR.data()+4, "ma.vfm", 6))
+ break;
+ switch (NameR[10]) {
+ default: break;
+ case 'a': // 4 strings to match.
+ if (memcmp(NameR.data()+11, "dd.p", 4))
+ break;
+ switch (NameR[15]) {
+ default: break;
+ case 'd': // 2 strings to match.
+ if (NameR[16] != '.')
+ break;
+ switch (NameR[17]) {
+ default: break;
+ case '2': // 1 string to match.
+ if (memcmp(NameR.data()+18, "56", 2))
+ break;
+ return Intrinsic::x86_fma_vfmadd_pd_256; // "86.fma.vfmadd.pd.256"
+ case '5': // 1 string to match.
+ if (memcmp(NameR.data()+18, "12", 2))
+ break;
+ return Intrinsic::x86_fma_vfmadd_pd_512; // "86.fma.vfmadd.pd.512"
+ }
+ break;
+ case 's': // 2 strings to match.
+ if (NameR[16] != '.')
+ break;
+ switch (NameR[17]) {
+ default: break;
+ case '2': // 1 string to match.
+ if (memcmp(NameR.data()+18, "56", 2))
+ break;
+ return Intrinsic::x86_fma_vfmadd_ps_256; // "86.fma.vfmadd.ps.256"
+ case '5': // 1 string to match.
+ if (memcmp(NameR.data()+18, "12", 2))
+ break;
+ return Intrinsic::x86_fma_vfmadd_ps_512; // "86.fma.vfmadd.ps.512"
+ }
+ break;
+ }
+ break;
+ case 's': // 4 strings to match.
+ if (memcmp(NameR.data()+11, "ub.p", 4))
+ break;
+ switch (NameR[15]) {
+ default: break;
+ case 'd': // 2 strings to match.
+ if (NameR[16] != '.')
+ break;
+ switch (NameR[17]) {
+ default: break;
+ case '2': // 1 string to match.
+ if (memcmp(NameR.data()+18, "56", 2))
+ break;
+ return Intrinsic::x86_fma_vfmsub_pd_256; // "86.fma.vfmsub.pd.256"
+ case '5': // 1 string to match.
+ if (memcmp(NameR.data()+18, "12", 2))
+ break;
+ return Intrinsic::x86_fma_vfmsub_pd_512; // "86.fma.vfmsub.pd.512"
+ }
+ break;
+ case 's': // 2 strings to match.
+ if (NameR[16] != '.')
+ break;
+ switch (NameR[17]) {
+ default: break;
+ case '2': // 1 string to match.
+ if (memcmp(NameR.data()+18, "56", 2))
+ break;
+ return Intrinsic::x86_fma_vfmsub_ps_256; // "86.fma.vfmsub.ps.256"
+ case '5': // 1 string to match.
+ if (memcmp(NameR.data()+18, "12", 2))
+ break;
+ return Intrinsic::x86_fma_vfmsub_ps_512; // "86.fma.vfmsub.ps.512"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 's': // 16 strings to match.
+ if (NameR[4] != 's')
+ break;
+ switch (NameR[5]) {
+ default: break;
+ case 'e': // 7 strings to match.
+ switch (NameR[6]) {
+ default: break;
+ case '2': // 4 strings to match.
+ if (memcmp(NameR.data()+7, ".p", 2))
+ break;
+ switch (NameR[9]) {
+ default: break;
+ case 'a': // 3 strings to match.
+ if (memcmp(NameR.data()+10, "ck", 2))
+ break;
+ switch (NameR[12]) {
+ default: break;
+ case 's': // 2 strings to match.
+ if (NameR[13] != 's')
+ break;
+ switch (NameR[14]) {
+ default: break;
+ case 'd': // 1 string to match.
+ if (memcmp(NameR.data()+15, "w.128", 5))
+ break;
+ return Intrinsic::x86_sse2_packssdw_128; // "86.sse2.packssdw.128"
+ case 'w': // 1 string to match.
+ if (memcmp(NameR.data()+15, "b.128", 5))
+ break;
+ return Intrinsic::x86_sse2_packsswb_128; // "86.sse2.packsswb.128"
+ }
+ break;
+ case 'u': // 1 string to match.
+ if (memcmp(NameR.data()+13, "swb.128", 7))
+ break;
+ return Intrinsic::x86_sse2_packuswb_128; // "86.sse2.packuswb.128"
+ }
+ break;
+ case 'm': // 1 string to match.
+ if (memcmp(NameR.data()+10, "ovmskb.128", 10))
+ break;
+ return Intrinsic::x86_sse2_pmovmskb_128; // "86.sse2.pmovmskb.128"
+ }
+ break;
+ case '4': // 3 strings to match.
+ if (memcmp(NameR.data()+7, "2.crc32.", 8))
+ break;
+ switch (NameR[15]) {
+ default: break;
+ case '3': // 2 strings to match.
+ if (memcmp(NameR.data()+16, "2.", 2))
+ break;
+ switch (NameR[18]) {
+ default: break;
+ case '1': // 1 string to match.
+ if (NameR[19] != '6')
+ break;
+ return Intrinsic::x86_sse42_crc32_32_16; // "86.sse42.crc32.32.16"
+ case '3': // 1 string to match.
+ if (NameR[19] != '2')
+ break;
+ return Intrinsic::x86_sse42_crc32_32_32; // "86.sse42.crc32.32.32"
+ }
+ break;
+ case '6': // 1 string to match.
+ if (memcmp(NameR.data()+16, "4.64", 4))
+ break;
+ return Intrinsic::x86_sse42_crc32_64_64; // "86.sse42.crc32.64.64"
+ }
+ break;
+ }
+ break;
+ case 's': // 9 strings to match.
+ if (memcmp(NameR.data()+6, "e3.p", 4))
+ break;
+ switch (NameR[10]) {
+ default: break;
+ case 'h': // 4 strings to match.
+ switch (NameR[11]) {
+ default: break;
+ case 'a': // 2 strings to match.
+ if (memcmp(NameR.data()+12, "dd.", 3))
+ break;
+ switch (NameR[15]) {
+ default: break;
+ case 'd': // 1 string to match.
+ if (memcmp(NameR.data()+16, ".128", 4))
+ break;
+ return Intrinsic::x86_ssse3_phadd_d_128; // "86.ssse3.phadd.d.128"
+ case 'w': // 1 string to match.
+ if (memcmp(NameR.data()+16, ".128", 4))
+ break;
+ return Intrinsic::x86_ssse3_phadd_w_128; // "86.ssse3.phadd.w.128"
+ }
+ break;
+ case 's': // 2 strings to match.
+ if (memcmp(NameR.data()+12, "ub.", 3))
+ break;
+ switch (NameR[15]) {
+ default: break;
+ case 'd': // 1 string to match.
+ if (memcmp(NameR.data()+16, ".128", 4))
+ break;
+ return Intrinsic::x86_ssse3_phsub_d_128; // "86.ssse3.phsub.d.128"
+ case 'w': // 1 string to match.
+ if (memcmp(NameR.data()+16, ".128", 4))
+ break;
+ return Intrinsic::x86_ssse3_phsub_w_128; // "86.ssse3.phsub.w.128"
+ }
+ break;
+ }
+ break;
+ case 'm': // 1 string to match.
+ if (memcmp(NameR.data()+11, "add.ub.sw", 9))
+ break;
+ return Intrinsic::x86_ssse3_pmadd_ub_sw; // "86.ssse3.pmadd.ub.sw"
+ case 's': // 4 strings to match.
+ switch (NameR[11]) {
+ default: break;
+ case 'h': // 1 string to match.
+ if (memcmp(NameR.data()+12, "uf.b.128", 8))
+ break;
+ return Intrinsic::x86_ssse3_pshuf_b_128; // "86.ssse3.pshuf.b.128"
+ case 'i': // 3 strings to match.
+ if (memcmp(NameR.data()+12, "gn.", 3))
+ break;
+ switch (NameR[15]) {
+ default: break;
+ case 'b': // 1 string to match.
+ if (memcmp(NameR.data()+16, ".128", 4))
+ break;
+ return Intrinsic::x86_ssse3_psign_b_128; // "86.ssse3.psign.b.128"
+ case 'd': // 1 string to match.
+ if (memcmp(NameR.data()+16, ".128", 4))
+ break;
+ return Intrinsic::x86_ssse3_psign_d_128; // "86.ssse3.psign.d.128"
+ case 'w': // 1 string to match.
+ if (memcmp(NameR.data()+16, ".128", 4))
+ break;
+ return Intrinsic::x86_ssse3_psign_w_128; // "86.ssse3.psign.w.128"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 21: // 28 strings to match.
+ if (memcmp(NameR.data()+0, "86.", 3))
+ break;
+ switch (NameR[3]) {
+ default: break;
+ case 'a': // 12 strings to match.
+ if (memcmp(NameR.data()+4, "vx", 2))
+ break;
+ switch (NameR[6]) {
+ default: break;
+ case '.': // 4 strings to match.
+ if (memcmp(NameR.data()+7, "cvt", 3))
+ break;
+ switch (NameR[10]) {
+ default: break;
+ case '.': // 2 strings to match.
+ if (NameR[11] != 'p')
+ break;
+ switch (NameR[12]) {
+ default: break;
+ case 'd': // 1 string to match.
+ if (memcmp(NameR.data()+13, "2.ps.256", 8))
+ break;
+ return Intrinsic::x86_avx_cvt_pd2_ps_256; // "86.avx.cvt.pd2.ps.256"
+ case 's': // 1 string to match.
+ if (memcmp(NameR.data()+13, "2.pd.256", 8))
+ break;
+ return Intrinsic::x86_avx_cvt_ps2_pd_256; // "86.avx.cvt.ps2.pd.256"
+ }
+ break;
+ case 't': // 2 strings to match.
+ if (memcmp(NameR.data()+11, ".p", 2))
+ break;
+ switch (NameR[13]) {
+ default: break;
+ case 'd': // 1 string to match.
+ if (memcmp(NameR.data()+14, "2dq.256", 7))
+ break;
+ return Intrinsic::x86_avx_cvtt_pd2dq_256; // "86.avx.cvtt.pd2dq.256"
+ case 's': // 1 string to match.
+ if (memcmp(NameR.data()+14, "2dq.256", 7))
+ break;
+ return Intrinsic::x86_avx_cvtt_ps2dq_256; // "86.avx.cvtt.ps2dq.256"
+ }
+ break;
+ }
+ break;
+ case '5': // 8 strings to match.
+ if (memcmp(NameR.data()+7, "12.", 3))
+ break;
+ switch (NameR[10]) {
+ default: break;
+ case 'c': // 4 strings to match.
+ if (memcmp(NameR.data()+11, "vt", 2))
+ break;
+ switch (NameR[13]) {
+ default: break;
+ case 's': // 2 strings to match.
+ switch (NameR[14]) {
+ default: break;
+ case 'd': // 1 string to match.
+ if (memcmp(NameR.data()+15, "2usi64", 6))
+ break;
+ return Intrinsic::x86_avx512_cvtsd2usi64; // "86.avx512.cvtsd2usi64"
+ case 's': // 1 string to match.
+ if (memcmp(NameR.data()+15, "2usi64", 6))
+ break;
+ return Intrinsic::x86_avx512_cvtss2usi64; // "86.avx512.cvtss2usi64"
+ }
+ break;
+ case 'u': // 2 strings to match.
+ if (memcmp(NameR.data()+14, "si642s", 6))
+ break;
+ switch (NameR[20]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::x86_avx512_cvtusi642sd; // "86.avx512.cvtusi642sd"
+ case 's': // 1 string to match.
+ return Intrinsic::x86_avx512_cvtusi642ss; // "86.avx512.cvtusi642ss"
+ }
+ break;
+ }
+ break;
+ case 'r': // 2 strings to match.
+ if (memcmp(NameR.data()+11, "ndscale.s", 9))
+ break;
+ switch (NameR[20]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::x86_avx512_rndscale_sd; // "86.avx512.rndscale.sd"
+ case 's': // 1 string to match.
+ return Intrinsic::x86_avx512_rndscale_ss; // "86.avx512.rndscale.ss"
+ }
+ break;
+ case 's': // 2 strings to match.
+ if (memcmp(NameR.data()+11, "qrt.p", 5))
+ break;
+ switch (NameR[16]) {
+ default: break;
+ case 'd': // 1 string to match.
+ if (memcmp(NameR.data()+17, ".512", 4))
+ break;
+ return Intrinsic::x86_avx512_sqrt_pd_512; // "86.avx512.sqrt.pd.512"
+ case 's': // 1 string to match.
+ if (memcmp(NameR.data()+17, ".512", 4))
+ break;
+ return Intrinsic::x86_avx512_sqrt_ps_512; // "86.avx512.sqrt.ps.512"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 'f': // 8 strings to match.
+ if (memcmp(NameR.data()+4, "ma.vfnm", 7))
+ break;
+ switch (NameR[11]) {
+ default: break;
+ case 'a': // 4 strings to match.
+ if (memcmp(NameR.data()+12, "dd.p", 4))
+ break;
+ switch (NameR[16]) {
+ default: break;
+ case 'd': // 2 strings to match.
+ if (NameR[17] != '.')
+ break;
+ switch (NameR[18]) {
+ default: break;
+ case '2': // 1 string to match.
+ if (memcmp(NameR.data()+19, "56", 2))
+ break;
+ return Intrinsic::x86_fma_vfnmadd_pd_256; // "86.fma.vfnmadd.pd.256"
+ case '5': // 1 string to match.
+ if (memcmp(NameR.data()+19, "12", 2))
+ break;
+ return Intrinsic::x86_fma_vfnmadd_pd_512; // "86.fma.vfnmadd.pd.512"
+ }
+ break;
+ case 's': // 2 strings to match.
+ if (NameR[17] != '.')
+ break;
+ switch (NameR[18]) {
+ default: break;
+ case '2': // 1 string to match.
+ if (memcmp(NameR.data()+19, "56", 2))
+ break;
+ return Intrinsic::x86_fma_vfnmadd_ps_256; // "86.fma.vfnmadd.ps.256"
+ case '5': // 1 string to match.
+ if (memcmp(NameR.data()+19, "12", 2))
+ break;
+ return Intrinsic::x86_fma_vfnmadd_ps_512; // "86.fma.vfnmadd.ps.512"
+ }
+ break;
+ }
+ break;
+ case 's': // 4 strings to match.
+ if (memcmp(NameR.data()+12, "ub.p", 4))
+ break;
+ switch (NameR[16]) {
+ default: break;
+ case 'd': // 2 strings to match.
+ if (NameR[17] != '.')
+ break;
+ switch (NameR[18]) {
+ default: break;
+ case '2': // 1 string to match.
+ if (memcmp(NameR.data()+19, "56", 2))
+ break;
+ return Intrinsic::x86_fma_vfnmsub_pd_256; // "86.fma.vfnmsub.pd.256"
+ case '5': // 1 string to match.
+ if (memcmp(NameR.data()+19, "12", 2))
+ break;
+ return Intrinsic::x86_fma_vfnmsub_pd_512; // "86.fma.vfnmsub.pd.512"
+ }
+ break;
+ case 's': // 2 strings to match.
+ if (NameR[17] != '.')
+ break;
+ switch (NameR[18]) {
+ default: break;
+ case '2': // 1 string to match.
+ if (memcmp(NameR.data()+19, "56", 2))
+ break;
+ return Intrinsic::x86_fma_vfnmsub_ps_256; // "86.fma.vfnmsub.ps.256"
+ case '5': // 1 string to match.
+ if (memcmp(NameR.data()+19, "12", 2))
+ break;
+ return Intrinsic::x86_fma_vfnmsub_ps_512; // "86.fma.vfnmsub.ps.512"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 's': // 6 strings to match.
+ if (NameR[4] != 's')
+ break;
+ switch (NameR[5]) {
+ default: break;
+ case 'e': // 4 strings to match.
+ if (memcmp(NameR.data()+6, "42.pcmp", 7))
+ break;
+ switch (NameR[13]) {
+ default: break;
+ case 'e': // 2 strings to match.
+ if (memcmp(NameR.data()+14, "str", 3))
+ break;
+ switch (NameR[17]) {
+ default: break;
+ case 'i': // 1 string to match.
+ if (memcmp(NameR.data()+18, "128", 3))
+ break;
+ return Intrinsic::x86_sse42_pcmpestri128; // "86.sse42.pcmpestri128"
+ case 'm': // 1 string to match.
+ if (memcmp(NameR.data()+18, "128", 3))
+ break;
+ return Intrinsic::x86_sse42_pcmpestrm128; // "86.sse42.pcmpestrm128"
+ }
+ break;
+ case 'i': // 2 strings to match.
+ if (memcmp(NameR.data()+14, "str", 3))
+ break;
+ switch (NameR[17]) {
+ default: break;
+ case 'i': // 1 string to match.
+ if (memcmp(NameR.data()+18, "128", 3))
+ break;
+ return Intrinsic::x86_sse42_pcmpistri128; // "86.sse42.pcmpistri128"
+ case 'm': // 1 string to match.
+ if (memcmp(NameR.data()+18, "128", 3))
+ break;
+ return Intrinsic::x86_sse42_pcmpistrm128; // "86.sse42.pcmpistrm128"
+ }
+ break;
+ }
+ break;
+ case 's': // 2 strings to match.
+ if (memcmp(NameR.data()+6, "e3.ph", 5))
+ break;
+ switch (NameR[11]) {
+ default: break;
+ case 'a': // 1 string to match.
+ if (memcmp(NameR.data()+12, "dd.sw.128", 9))
+ break;
+ return Intrinsic::x86_ssse3_phadd_sw_128; // "86.ssse3.phadd.sw.128"
+ case 's': // 1 string to match.
+ if (memcmp(NameR.data()+12, "ub.sw.128", 9))
+ break;
+ return Intrinsic::x86_ssse3_phsub_sw_128; // "86.ssse3.phsub.sw.128"
+ }
+ break;
+ }
+ break;
+ case 'x': // 2 strings to match.
+ if (memcmp(NameR.data()+4, "op.vpermil2p", 12))
+ break;
+ switch (NameR[16]) {
+ default: break;
+ case 'd': // 1 string to match.
+ if (memcmp(NameR.data()+17, ".256", 4))
+ break;
+ return Intrinsic::x86_xop_vpermil2pd_256; // "86.xop.vpermil2pd.256"
+ case 's': // 1 string to match.
+ if (memcmp(NameR.data()+17, ".256", 4))
+ break;
+ return Intrinsic::x86_xop_vpermil2ps_256; // "86.xop.vpermil2ps.256"
+ }
+ break;
+ }
+ break;
+ case 22: // 25 strings to match.
+ if (memcmp(NameR.data()+0, "86.", 3))
+ break;
+ switch (NameR[3]) {
+ default: break;
+ case 'a': // 15 strings to match.
+ if (memcmp(NameR.data()+4, "vx", 2))
+ break;
+ switch (NameR[6]) {
+ default: break;
+ case '.': // 4 strings to match.
+ switch (NameR[7]) {
+ default: break;
+ case 'm': // 2 strings to match.
+ if (memcmp(NameR.data()+8, "askload.p", 9))
+ break;
+ switch (NameR[17]) {
+ default: break;
+ case 'd': // 1 string to match.
+ if (memcmp(NameR.data()+18, ".256", 4))
+ break;
+ return Intrinsic::x86_avx_maskload_pd_256; // "86.avx.maskload.pd.256"
+ case 's': // 1 string to match.
+ if (memcmp(NameR.data()+18, ".256", 4))
+ break;
+ return Intrinsic::x86_avx_maskload_ps_256; // "86.avx.maskload.ps.256"
+ }
+ break;
+ case 'v': // 2 strings to match.
+ if (memcmp(NameR.data()+8, "testnzc.p", 9))
+ break;
+ switch (NameR[17]) {
+ default: break;
+ case 'd': // 1 string to match.
+ if (memcmp(NameR.data()+18, ".256", 4))
+ break;
+ return Intrinsic::x86_avx_vtestnzc_pd_256; // "86.avx.vtestnzc.pd.256"
+ case 's': // 1 string to match.
+ if (memcmp(NameR.data()+18, ".256", 4))
+ break;
+ return Intrinsic::x86_avx_vtestnzc_ps_256; // "86.avx.vtestnzc.ps.256"
+ }
+ break;
+ }
+ break;
+ case '2': // 7 strings to match.
+ if (NameR[7] != '.')
+ break;
+ switch (NameR[8]) {
+ default: break;
+ case 'g': // 4 strings to match.
+ if (memcmp(NameR.data()+9, "ather.", 6))
+ break;
+ switch (NameR[15]) {
+ default: break;
+ case 'd': // 2 strings to match.
+ if (NameR[16] != '.')
+ break;
+ switch (NameR[17]) {
+ default: break;
+ case 'd': // 1 string to match.
+ if (memcmp(NameR.data()+18, ".256", 4))
+ break;
+ return Intrinsic::x86_avx2_gather_d_d_256; // "86.avx2.gather.d.d.256"
+ case 'q': // 1 string to match.
+ if (memcmp(NameR.data()+18, ".256", 4))
+ break;
+ return Intrinsic::x86_avx2_gather_d_q_256; // "86.avx2.gather.d.q.256"
+ }
+ break;
+ case 'q': // 2 strings to match.
+ if (NameR[16] != '.')
+ break;
+ switch (NameR[17]) {
+ default: break;
+ case 'd': // 1 string to match.
+ if (memcmp(NameR.data()+18, ".256", 4))
+ break;
+ return Intrinsic::x86_avx2_gather_q_d_256; // "86.avx2.gather.q.d.256"
+ case 'q': // 1 string to match.
+ if (memcmp(NameR.data()+18, ".256", 4))
+ break;
+ return Intrinsic::x86_avx2_gather_q_q_256; // "86.avx2.gather.q.q.256"
+ }
+ break;
+ }
+ break;
+ case 'm': // 2 strings to match.
+ if (memcmp(NameR.data()+9, "askload.", 8))
+ break;
+ switch (NameR[17]) {
+ default: break;
+ case 'd': // 1 string to match.
+ if (memcmp(NameR.data()+18, ".256", 4))
+ break;
+ return Intrinsic::x86_avx2_maskload_d_256; // "86.avx2.maskload.d.256"
+ case 'q': // 1 string to match.
+ if (memcmp(NameR.data()+18, ".256", 4))
+ break;
+ return Intrinsic::x86_avx2_maskload_q_256; // "86.avx2.maskload.q.256"
+ }
+ break;
+ case 'v': // 1 string to match.
+ if (memcmp(NameR.data()+9, "broadcasti128", 13))
+ break;
+ return Intrinsic::x86_avx2_vbroadcasti128; // "86.avx2.vbroadcasti128"
+ }
+ break;
+ case '5': // 4 strings to match.
+ if (memcmp(NameR.data()+7, "12.", 3))
+ break;
+ switch (NameR[10]) {
+ default: break;
+ case 'c': // 2 strings to match.
+ if (memcmp(NameR.data()+11, "vtts", 4))
+ break;
+ switch (NameR[15]) {
+ default: break;
+ case 'd': // 1 string to match.
+ if (memcmp(NameR.data()+16, "2usi64", 6))
+ break;
+ return Intrinsic::x86_avx512_cvttsd2usi64; // "86.avx512.cvttsd2usi64"
+ case 's': // 1 string to match.
+ if (memcmp(NameR.data()+16, "2usi64", 6))
+ break;
+ return Intrinsic::x86_avx512_cvttss2usi64; // "86.avx512.cvttss2usi64"
+ }
+ break;
+ case 'r': // 2 strings to match.
+ if (memcmp(NameR.data()+11, "cp14.p", 6))
+ break;
+ switch (NameR[17]) {
+ default: break;
+ case 'd': // 1 string to match.
+ if (memcmp(NameR.data()+18, ".512", 4))
+ break;
+ return Intrinsic::x86_avx512_rcp14_pd_512; // "86.avx512.rcp14.pd.512"
+ case 's': // 1 string to match.
+ if (memcmp(NameR.data()+18, ".512", 4))
+ break;
+ return Intrinsic::x86_avx512_rcp14_ps_512; // "86.avx512.rcp14.ps.512"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 's': // 10 strings to match.
+ if (memcmp(NameR.data()+4, "se42.pcmp", 9))
+ break;
+ switch (NameR[13]) {
+ default: break;
+ case 'e': // 5 strings to match.
+ if (memcmp(NameR.data()+14, "stri", 4))
+ break;
+ switch (NameR[18]) {
+ default: break;
+ case 'a': // 1 string to match.
+ if (memcmp(NameR.data()+19, "128", 3))
+ break;
+ return Intrinsic::x86_sse42_pcmpestria128; // "86.sse42.pcmpestria128"
+ case 'c': // 1 string to match.
+ if (memcmp(NameR.data()+19, "128", 3))
+ break;
+ return Intrinsic::x86_sse42_pcmpestric128; // "86.sse42.pcmpestric128"
+ case 'o': // 1 string to match.
+ if (memcmp(NameR.data()+19, "128", 3))
+ break;
+ return Intrinsic::x86_sse42_pcmpestrio128; // "86.sse42.pcmpestrio128"
+ case 's': // 1 string to match.
+ if (memcmp(NameR.data()+19, "128", 3))
+ break;
+ return Intrinsic::x86_sse42_pcmpestris128; // "86.sse42.pcmpestris128"
+ case 'z': // 1 string to match.
+ if (memcmp(NameR.data()+19, "128", 3))
+ break;
+ return Intrinsic::x86_sse42_pcmpestriz128; // "86.sse42.pcmpestriz128"
+ }
+ break;
+ case 'i': // 5 strings to match.
+ if (memcmp(NameR.data()+14, "stri", 4))
+ break;
+ switch (NameR[18]) {
+ default: break;
+ case 'a': // 1 string to match.
+ if (memcmp(NameR.data()+19, "128", 3))
+ break;
+ return Intrinsic::x86_sse42_pcmpistria128; // "86.sse42.pcmpistria128"
+ case 'c': // 1 string to match.
+ if (memcmp(NameR.data()+19, "128", 3))
+ break;
+ return Intrinsic::x86_sse42_pcmpistric128; // "86.sse42.pcmpistric128"
+ case 'o': // 1 string to match.
+ if (memcmp(NameR.data()+19, "128", 3))
+ break;
+ return Intrinsic::x86_sse42_pcmpistrio128; // "86.sse42.pcmpistrio128"
+ case 's': // 1 string to match.
+ if (memcmp(NameR.data()+19, "128", 3))
+ break;
+ return Intrinsic::x86_sse42_pcmpistris128; // "86.sse42.pcmpistris128"
+ case 'z': // 1 string to match.
+ if (memcmp(NameR.data()+19, "128", 3))
+ break;
+ return Intrinsic::x86_sse42_pcmpistriz128; // "86.sse42.pcmpistriz128"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 23: // 25 strings to match.
+ if (memcmp(NameR.data()+0, "86.", 3))
+ break;
+ switch (NameR[3]) {
+ default: break;
+ case 'a': // 16 strings to match.
+ if (memcmp(NameR.data()+4, "vx", 2))
+ break;
+ switch (NameR[6]) {
+ default: break;
+ case '.': // 2 strings to match.
+ if (memcmp(NameR.data()+7, "maskstore.p", 11))
+ break;
+ switch (NameR[18]) {
+ default: break;
+ case 'd': // 1 string to match.
+ if (memcmp(NameR.data()+19, ".256", 4))
+ break;
+ return Intrinsic::x86_avx_maskstore_pd_256; // "86.avx.maskstore.pd.256"
+ case 's': // 1 string to match.
+ if (memcmp(NameR.data()+19, ".256", 4))
+ break;
+ return Intrinsic::x86_avx_maskstore_ps_256; // "86.avx.maskstore.ps.256"
+ }
+ break;
+ case '2': // 14 strings to match.
+ if (NameR[7] != '.')
+ break;
+ switch (NameR[8]) {
+ default: break;
+ case 'g': // 4 strings to match.
+ if (memcmp(NameR.data()+9, "ather.", 6))
+ break;
+ switch (NameR[15]) {
+ default: break;
+ case 'd': // 2 strings to match.
+ if (memcmp(NameR.data()+16, ".p", 2))
+ break;
+ switch (NameR[18]) {
+ default: break;
+ case 'd': // 1 string to match.
+ if (memcmp(NameR.data()+19, ".256", 4))
+ break;
+ return Intrinsic::x86_avx2_gather_d_pd_256; // "86.avx2.gather.d.pd.256"
+ case 's': // 1 string to match.
+ if (memcmp(NameR.data()+19, ".256", 4))
+ break;
+ return Intrinsic::x86_avx2_gather_d_ps_256; // "86.avx2.gather.d.ps.256"
+ }
+ break;
+ case 'q': // 2 strings to match.
+ if (memcmp(NameR.data()+16, ".p", 2))
+ break;
+ switch (NameR[18]) {
+ default: break;
+ case 'd': // 1 string to match.
+ if (memcmp(NameR.data()+19, ".256", 4))
+ break;
+ return Intrinsic::x86_avx2_gather_q_pd_256; // "86.avx2.gather.q.pd.256"
+ case 's': // 1 string to match.
+ if (memcmp(NameR.data()+19, ".256", 4))
+ break;
+ return Intrinsic::x86_avx2_gather_q_ps_256; // "86.avx2.gather.q.ps.256"
+ }
+ break;
+ }
+ break;
+ case 'm': // 2 strings to match.
+ if (memcmp(NameR.data()+9, "askstore.", 9))
+ break;
+ switch (NameR[18]) {
+ default: break;
+ case 'd': // 1 string to match.
+ if (memcmp(NameR.data()+19, ".256", 4))
+ break;
+ return Intrinsic::x86_avx2_maskstore_d_256; // "86.avx2.maskstore.d.256"
+ case 'q': // 1 string to match.
+ if (memcmp(NameR.data()+19, ".256", 4))
+ break;
+ return Intrinsic::x86_avx2_maskstore_q_256; // "86.avx2.maskstore.q.256"
+ }
+ break;
+ case 'p': // 8 strings to match.
+ if (memcmp(NameR.data()+9, "broadcast", 9))
+ break;
+ switch (NameR[18]) {
+ default: break;
+ case 'b': // 2 strings to match.
+ if (NameR[19] != '.')
+ break;
+ switch (NameR[20]) {
+ default: break;
+ case '1': // 1 string to match.
+ if (memcmp(NameR.data()+21, "28", 2))
+ break;
+ return Intrinsic::x86_avx2_pbroadcastb_128; // "86.avx2.pbroadcastb.128"
+ case '2': // 1 string to match.
+ if (memcmp(NameR.data()+21, "56", 2))
+ break;
+ return Intrinsic::x86_avx2_pbroadcastb_256; // "86.avx2.pbroadcastb.256"
+ }
+ break;
+ case 'd': // 2 strings to match.
+ if (NameR[19] != '.')
+ break;
+ switch (NameR[20]) {
+ default: break;
+ case '1': // 1 string to match.
+ if (memcmp(NameR.data()+21, "28", 2))
+ break;
+ return Intrinsic::x86_avx2_pbroadcastd_128; // "86.avx2.pbroadcastd.128"
+ case '2': // 1 string to match.
+ if (memcmp(NameR.data()+21, "56", 2))
+ break;
+ return Intrinsic::x86_avx2_pbroadcastd_256; // "86.avx2.pbroadcastd.256"
+ }
+ break;
+ case 'q': // 2 strings to match.
+ if (NameR[19] != '.')
+ break;
+ switch (NameR[20]) {
+ default: break;
+ case '1': // 1 string to match.
+ if (memcmp(NameR.data()+21, "28", 2))
+ break;
+ return Intrinsic::x86_avx2_pbroadcastq_128; // "86.avx2.pbroadcastq.128"
+ case '2': // 1 string to match.
+ if (memcmp(NameR.data()+21, "56", 2))
+ break;
+ return Intrinsic::x86_avx2_pbroadcastq_256; // "86.avx2.pbroadcastq.256"
+ }
+ break;
+ case 'w': // 2 strings to match.
+ if (NameR[19] != '.')
+ break;
+ switch (NameR[20]) {
+ default: break;
+ case '1': // 1 string to match.
+ if (memcmp(NameR.data()+21, "28", 2))
+ break;
+ return Intrinsic::x86_avx2_pbroadcastw_128; // "86.avx2.pbroadcastw.128"
+ case '2': // 1 string to match.
+ if (memcmp(NameR.data()+21, "56", 2))
+ break;
+ return Intrinsic::x86_avx2_pbroadcastw_256; // "86.avx2.pbroadcastw.256"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 'f': // 8 strings to match.
+ if (memcmp(NameR.data()+4, "ma.vfm", 6))
+ break;
+ switch (NameR[10]) {
+ default: break;
+ case 'a': // 4 strings to match.
+ if (memcmp(NameR.data()+11, "ddsub.p", 7))
+ break;
+ switch (NameR[18]) {
+ default: break;
+ case 'd': // 2 strings to match.
+ if (NameR[19] != '.')
+ break;
+ switch (NameR[20]) {
+ default: break;
+ case '2': // 1 string to match.
+ if (memcmp(NameR.data()+21, "56", 2))
+ break;
+ return Intrinsic::x86_fma_vfmaddsub_pd_256; // "86.fma.vfmaddsub.pd.256"
+ case '5': // 1 string to match.
+ if (memcmp(NameR.data()+21, "12", 2))
+ break;
+ return Intrinsic::x86_fma_vfmaddsub_pd_512; // "86.fma.vfmaddsub.pd.512"
+ }
+ break;
+ case 's': // 2 strings to match.
+ if (NameR[19] != '.')
+ break;
+ switch (NameR[20]) {
+ default: break;
+ case '2': // 1 string to match.
+ if (memcmp(NameR.data()+21, "56", 2))
+ break;
+ return Intrinsic::x86_fma_vfmaddsub_ps_256; // "86.fma.vfmaddsub.ps.256"
+ case '5': // 1 string to match.
+ if (memcmp(NameR.data()+21, "12", 2))
+ break;
+ return Intrinsic::x86_fma_vfmaddsub_ps_512; // "86.fma.vfmaddsub.ps.512"
+ }
+ break;
+ }
+ break;
+ case 's': // 4 strings to match.
+ if (memcmp(NameR.data()+11, "ubadd.p", 7))
+ break;
+ switch (NameR[18]) {
+ default: break;
+ case 'd': // 2 strings to match.
+ if (NameR[19] != '.')
+ break;
+ switch (NameR[20]) {
+ default: break;
+ case '2': // 1 string to match.
+ if (memcmp(NameR.data()+21, "56", 2))
+ break;
+ return Intrinsic::x86_fma_vfmsubadd_pd_256; // "86.fma.vfmsubadd.pd.256"
+ case '5': // 1 string to match.
+ if (memcmp(NameR.data()+21, "12", 2))
+ break;
+ return Intrinsic::x86_fma_vfmsubadd_pd_512; // "86.fma.vfmsubadd.pd.512"
+ }
+ break;
+ case 's': // 2 strings to match.
+ if (NameR[19] != '.')
+ break;
+ switch (NameR[20]) {
+ default: break;
+ case '2': // 1 string to match.
+ if (memcmp(NameR.data()+21, "56", 2))
+ break;
+ return Intrinsic::x86_fma_vfmsubadd_ps_256; // "86.fma.vfmsubadd.ps.256"
+ case '5': // 1 string to match.
+ if (memcmp(NameR.data()+21, "12", 2))
+ break;
+ return Intrinsic::x86_fma_vfmsubadd_ps_512; // "86.fma.vfmsubadd.ps.512"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 's': // 1 string to match.
+ if (memcmp(NameR.data()+4, "sse3.pmul.hr.sw.128", 19))
+ break;
+ return Intrinsic::x86_ssse3_pmul_hr_sw_128; // "86.ssse3.pmul.hr.sw.128"
+ }
+ break;
+ case 24: // 18 strings to match.
+ if (memcmp(NameR.data()+0, "86.", 3))
+ break;
+ switch (NameR[3]) {
+ default: break;
+ case 'a': // 17 strings to match.
+ switch (NameR[4]) {
+ default: break;
+ case 'e': // 1 string to match.
+ if (memcmp(NameR.data()+5, "sni.aeskeygenassist", 19))
+ break;
+ return Intrinsic::x86_aesni_aeskeygenassist; // "86.aesni.aeskeygenassist"
+ case 'v': // 16 strings to match.
+ if (NameR[5] != 'x')
+ break;
+ switch (NameR[6]) {
+ default: break;
+ case '.': // 5 strings to match.
+ if (memcmp(NameR.data()+7, "vperm", 5))
+ break;
+ switch (NameR[12]) {
+ default: break;
+ case '2': // 3 strings to match.
+ if (memcmp(NameR.data()+13, "f128.", 5))
+ break;
+ switch (NameR[18]) {
+ default: break;
+ case 'p': // 2 strings to match.
+ switch (NameR[19]) {
+ default: break;
+ case 'd': // 1 string to match.
+ if (memcmp(NameR.data()+20, ".256", 4))
+ break;
+ return Intrinsic::x86_avx_vperm2f128_pd_256; // "86.avx.vperm2f128.pd.256"
+ case 's': // 1 string to match.
+ if (memcmp(NameR.data()+20, ".256", 4))
+ break;
+ return Intrinsic::x86_avx_vperm2f128_ps_256; // "86.avx.vperm2f128.ps.256"
+ }
+ break;
+ case 's': // 1 string to match.
+ if (memcmp(NameR.data()+19, "i.256", 5))
+ break;
+ return Intrinsic::x86_avx_vperm2f128_si_256; // "86.avx.vperm2f128.si.256"
+ }
+ break;
+ case 'i': // 2 strings to match.
+ if (memcmp(NameR.data()+13, "lvar.p", 6))
+ break;
+ switch (NameR[19]) {
+ default: break;
+ case 'd': // 1 string to match.
+ if (memcmp(NameR.data()+20, ".256", 4))
+ break;
+ return Intrinsic::x86_avx_vpermilvar_pd_256; // "86.avx.vpermilvar.pd.256"
+ case 's': // 1 string to match.
+ if (memcmp(NameR.data()+20, ".256", 4))
+ break;
+ return Intrinsic::x86_avx_vpermilvar_ps_256; // "86.avx.vpermilvar.ps.256"
+ }
+ break;
+ }
+ break;
+ case '2': // 1 string to match.
+ if (memcmp(NameR.data()+7, ".vbroadcast.ss.ps", 17))
+ break;
+ return Intrinsic::x86_avx2_vbroadcast_ss_ps; // "86.avx2.vbroadcast.ss.ps"
+ case '5': // 10 strings to match.
+ if (memcmp(NameR.data()+7, "12.", 3))
+ break;
+ switch (NameR[10]) {
+ default: break;
+ case 'g': // 8 strings to match.
+ if (memcmp(NameR.data()+11, "ather.", 6))
+ break;
+ switch (NameR[17]) {
+ default: break;
+ case 'd': // 4 strings to match.
+ if (NameR[18] != 'p')
+ break;
+ switch (NameR[19]) {
+ default: break;
+ case 'd': // 1 string to match.
+ if (memcmp(NameR.data()+20, ".512", 4))
+ break;
+ return Intrinsic::x86_avx512_gather_dpd_512; // "86.avx512.gather.dpd.512"
+ case 'i': // 1 string to match.
+ if (memcmp(NameR.data()+20, ".512", 4))
+ break;
+ return Intrinsic::x86_avx512_gather_dpi_512; // "86.avx512.gather.dpi.512"
+ case 'q': // 1 string to match.
+ if (memcmp(NameR.data()+20, ".512", 4))
+ break;
+ return Intrinsic::x86_avx512_gather_dpq_512; // "86.avx512.gather.dpq.512"
+ case 's': // 1 string to match.
+ if (memcmp(NameR.data()+20, ".512", 4))
+ break;
+ return Intrinsic::x86_avx512_gather_dps_512; // "86.avx512.gather.dps.512"
+ }
+ break;
+ case 'q': // 4 strings to match.
+ if (NameR[18] != 'p')
+ break;
+ switch (NameR[19]) {
+ default: break;
+ case 'd': // 1 string to match.
+ if (memcmp(NameR.data()+20, ".512", 4))
+ break;
+ return Intrinsic::x86_avx512_gather_qpd_512; // "86.avx512.gather.qpd.512"
+ case 'i': // 1 string to match.
+ if (memcmp(NameR.data()+20, ".512", 4))
+ break;
+ return Intrinsic::x86_avx512_gather_qpi_512; // "86.avx512.gather.qpi.512"
+ case 'q': // 1 string to match.
+ if (memcmp(NameR.data()+20, ".512", 4))
+ break;
+ return Intrinsic::x86_avx512_gather_qpq_512; // "86.avx512.gather.qpq.512"
+ case 's': // 1 string to match.
+ if (memcmp(NameR.data()+20, ".512", 4))
+ break;
+ return Intrinsic::x86_avx512_gather_qps_512; // "86.avx512.gather.qps.512"
+ }
+ break;
+ }
+ break;
+ case 'r': // 2 strings to match.
+ if (memcmp(NameR.data()+11, "sqrt14.p", 8))
+ break;
+ switch (NameR[19]) {
+ default: break;
+ case 'd': // 1 string to match.
+ if (memcmp(NameR.data()+20, ".512", 4))
+ break;
+ return Intrinsic::x86_avx512_rsqrt14_pd_512; // "86.avx512.rsqrt14.pd.512"
+ case 's': // 1 string to match.
+ if (memcmp(NameR.data()+20, ".512", 4))
+ break;
+ return Intrinsic::x86_avx512_rsqrt14_ps_512; // "86.avx512.rsqrt14.ps.512"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 's': // 1 string to match.
+ if (memcmp(NameR.data()+4, "sse3.pmadd.ub.sw.128", 20))
+ break;
+ return Intrinsic::x86_ssse3_pmadd_ub_sw_128; // "86.ssse3.pmadd.ub.sw.128"
+ }
+ break;
+ case 25: // 23 strings to match.
+ if (memcmp(NameR.data()+0, "86.avx", 6))
+ break;
+ switch (NameR[6]) {
+ default: break;
+ case '.': // 3 strings to match.
+ if (memcmp(NameR.data()+7, "vinsertf128.", 12))
+ break;
+ switch (NameR[19]) {
+ default: break;
+ case 'p': // 2 strings to match.
+ switch (NameR[20]) {
+ default: break;
+ case 'd': // 1 string to match.
+ if (memcmp(NameR.data()+21, ".256", 4))
+ break;
+ return Intrinsic::x86_avx_vinsertf128_pd_256; // "86.avx.vinsertf128.pd.256"
+ case 's': // 1 string to match.
+ if (memcmp(NameR.data()+21, ".256", 4))
+ break;
+ return Intrinsic::x86_avx_vinsertf128_ps_256; // "86.avx.vinsertf128.ps.256"
+ }
+ break;
+ case 's': // 1 string to match.
+ if (memcmp(NameR.data()+20, "i.256", 5))
+ break;
+ return Intrinsic::x86_avx_vinsertf128_si_256; // "86.avx.vinsertf128.si.256"
+ }
+ break;
+ case '5': // 20 strings to match.
+ if (memcmp(NameR.data()+7, "12.", 3))
+ break;
+ switch (NameR[10]) {
+ default: break;
+ case 'm': // 10 strings to match.
+ if (memcmp(NameR.data()+11, "ask.", 4))
+ break;
+ switch (NameR[15]) {
+ default: break;
+ case 'c': // 2 strings to match.
+ if (memcmp(NameR.data()+16, "mp.p", 4))
+ break;
+ switch (NameR[20]) {
+ default: break;
+ case 'd': // 1 string to match.
+ if (memcmp(NameR.data()+21, ".512", 4))
+ break;
+ return Intrinsic::x86_avx512_mask_cmp_pd_512; // "86.avx512.mask.cmp.pd.512"
+ case 's': // 1 string to match.
+ if (memcmp(NameR.data()+21, ".512", 4))
+ break;
+ return Intrinsic::x86_avx512_mask_cmp_ps_512; // "86.avx512.mask.cmp.ps.512"
+ }
+ break;
+ case 'm': // 4 strings to match.
+ switch (NameR[16]) {
+ default: break;
+ case 'a': // 2 strings to match.
+ if (memcmp(NameR.data()+17, "x.p", 3))
+ break;
+ switch (NameR[20]) {
+ default: break;
+ case 'd': // 1 string to match.
+ if (memcmp(NameR.data()+21, ".512", 4))
+ break;
+ return Intrinsic::x86_avx512_mask_max_pd_512; // "86.avx512.mask.max.pd.512"
+ case 's': // 1 string to match.
+ if (memcmp(NameR.data()+21, ".512", 4))
+ break;
+ return Intrinsic::x86_avx512_mask_max_ps_512; // "86.avx512.mask.max.ps.512"
+ }
+ break;
+ case 'i': // 2 strings to match.
+ if (memcmp(NameR.data()+17, "n.p", 3))
+ break;
+ switch (NameR[20]) {
+ default: break;
+ case 'd': // 1 string to match.
+ if (memcmp(NameR.data()+21, ".512", 4))
+ break;
+ return Intrinsic::x86_avx512_mask_min_pd_512; // "86.avx512.mask.min.pd.512"
+ case 's': // 1 string to match.
+ if (memcmp(NameR.data()+21, ".512", 4))
+ break;
+ return Intrinsic::x86_avx512_mask_min_ps_512; // "86.avx512.mask.min.ps.512"
+ }
+ break;
+ }
+ break;
+ case 'p': // 4 strings to match.
+ if (NameR[16] != 'a')
+ break;
+ switch (NameR[17]) {
+ default: break;
+ case 'b': // 2 strings to match.
+ if (memcmp(NameR.data()+18, "s.", 2))
+ break;
+ switch (NameR[20]) {
+ default: break;
+ case 'd': // 1 string to match.
+ if (memcmp(NameR.data()+21, ".512", 4))
+ break;
+ return Intrinsic::x86_avx512_mask_pabs_d_512; // "86.avx512.mask.pabs.d.512"
+ case 'q': // 1 string to match.
+ if (memcmp(NameR.data()+21, ".512", 4))
+ break;
+ return Intrinsic::x86_avx512_mask_pabs_q_512; // "86.avx512.mask.pabs.q.512"
+ }
+ break;
+ case 'n': // 2 strings to match.
+ if (memcmp(NameR.data()+18, "d.", 2))
+ break;
+ switch (NameR[20]) {
+ default: break;
+ case 'd': // 1 string to match.
+ if (memcmp(NameR.data()+21, ".512", 4))
+ break;
+ return Intrinsic::x86_avx512_mask_pand_d_512; // "86.avx512.mask.pand.d.512"
+ case 'q': // 1 string to match.
+ if (memcmp(NameR.data()+21, ".512", 4))
+ break;
+ return Intrinsic::x86_avx512_mask_pand_q_512; // "86.avx512.mask.pand.q.512"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 'p': // 2 strings to match.
+ if (memcmp(NameR.data()+11, "broadcast", 9))
+ break;
+ switch (NameR[20]) {
+ default: break;
+ case 'd': // 1 string to match.
+ if (memcmp(NameR.data()+21, ".512", 4))
+ break;
+ return Intrinsic::x86_avx512_pbroadcastd_512; // "86.avx512.pbroadcastd.512"
+ case 'q': // 1 string to match.
+ if (memcmp(NameR.data()+21, ".512", 4))
+ break;
+ return Intrinsic::x86_avx512_pbroadcastq_512; // "86.avx512.pbroadcastq.512"
+ }
+ break;
+ case 's': // 8 strings to match.
+ if (memcmp(NameR.data()+11, "catter.", 7))
+ break;
+ switch (NameR[18]) {
+ default: break;
+ case 'd': // 4 strings to match.
+ if (NameR[19] != 'p')
+ break;
+ switch (NameR[20]) {
+ default: break;
+ case 'd': // 1 string to match.
+ if (memcmp(NameR.data()+21, ".512", 4))
+ break;
+ return Intrinsic::x86_avx512_scatter_dpd_512; // "86.avx512.scatter.dpd.512"
+ case 'i': // 1 string to match.
+ if (memcmp(NameR.data()+21, ".512", 4))
+ break;
+ return Intrinsic::x86_avx512_scatter_dpi_512; // "86.avx512.scatter.dpi.512"
+ case 'q': // 1 string to match.
+ if (memcmp(NameR.data()+21, ".512", 4))
+ break;
+ return Intrinsic::x86_avx512_scatter_dpq_512; // "86.avx512.scatter.dpq.512"
+ case 's': // 1 string to match.
+ if (memcmp(NameR.data()+21, ".512", 4))
+ break;
+ return Intrinsic::x86_avx512_scatter_dps_512; // "86.avx512.scatter.dps.512"
+ }
+ break;
+ case 'q': // 4 strings to match.
+ if (NameR[19] != 'p')
+ break;
+ switch (NameR[20]) {
+ default: break;
+ case 'd': // 1 string to match.
+ if (memcmp(NameR.data()+21, ".512", 4))
+ break;
+ return Intrinsic::x86_avx512_scatter_qpd_512; // "86.avx512.scatter.qpd.512"
+ case 'i': // 1 string to match.
+ if (memcmp(NameR.data()+21, ".512", 4))
+ break;
+ return Intrinsic::x86_avx512_scatter_qpi_512; // "86.avx512.scatter.qpi.512"
+ case 'q': // 1 string to match.
+ if (memcmp(NameR.data()+21, ".512", 4))
+ break;
+ return Intrinsic::x86_avx512_scatter_qpq_512; // "86.avx512.scatter.qpq.512"
+ case 's': // 1 string to match.
+ if (memcmp(NameR.data()+21, ".512", 4))
+ break;
+ return Intrinsic::x86_avx512_scatter_qps_512; // "86.avx512.scatter.qps.512"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 26: // 22 strings to match.
+ if (memcmp(NameR.data()+0, "86.avx", 6))
+ break;
+ switch (NameR[6]) {
+ default: break;
+ case '.': // 3 strings to match.
+ if (memcmp(NameR.data()+7, "vextractf128.", 13))
+ break;
+ switch (NameR[20]) {
+ default: break;
+ case 'p': // 2 strings to match.
+ switch (NameR[21]) {
+ default: break;
+ case 'd': // 1 string to match.
+ if (memcmp(NameR.data()+22, ".256", 4))
+ break;
+ return Intrinsic::x86_avx_vextractf128_pd_256; // "86.avx.vextractf128.pd.256"
+ case 's': // 1 string to match.
+ if (memcmp(NameR.data()+22, ".256", 4))
+ break;
+ return Intrinsic::x86_avx_vextractf128_ps_256; // "86.avx.vextractf128.ps.256"
+ }
+ break;
+ case 's': // 1 string to match.
+ if (memcmp(NameR.data()+21, "i.256", 5))
+ break;
+ return Intrinsic::x86_avx_vextractf128_si_256; // "86.avx.vextractf128.si.256"
+ }
+ break;
+ case '5': // 19 strings to match.
+ if (memcmp(NameR.data()+7, "12.", 3))
+ break;
+ switch (NameR[10]) {
+ default: break;
+ case 'g': // 4 strings to match.
+ if (memcmp(NameR.data()+11, "atherpf.", 8))
+ break;
+ switch (NameR[19]) {
+ default: break;
+ case 'd': // 2 strings to match.
+ if (NameR[20] != 'p')
+ break;
+ switch (NameR[21]) {
+ default: break;
+ case 'd': // 1 string to match.
+ if (memcmp(NameR.data()+22, ".512", 4))
+ break;
+ return Intrinsic::x86_avx512_gatherpf_dpd_512; // "86.avx512.gatherpf.dpd.512"
+ case 's': // 1 string to match.
+ if (memcmp(NameR.data()+22, ".512", 4))
+ break;
+ return Intrinsic::x86_avx512_gatherpf_dps_512; // "86.avx512.gatherpf.dps.512"
+ }
+ break;
+ case 'q': // 2 strings to match.
+ if (NameR[20] != 'p')
+ break;
+ switch (NameR[21]) {
+ default: break;
+ case 'd': // 1 string to match.
+ if (memcmp(NameR.data()+22, ".512", 4))
+ break;
+ return Intrinsic::x86_avx512_gatherpf_qpd_512; // "86.avx512.gatherpf.qpd.512"
+ case 's': // 1 string to match.
+ if (memcmp(NameR.data()+22, ".512", 4))
+ break;
+ return Intrinsic::x86_avx512_gatherpf_qps_512; // "86.avx512.gatherpf.qps.512"
+ }
+ break;
+ }
+ break;
+ case 'm': // 15 strings to match.
+ if (memcmp(NameR.data()+11, "ask.", 4))
+ break;
+ switch (NameR[15]) {
+ default: break;
+ case 'b': // 2 strings to match.
+ if (memcmp(NameR.data()+16, "lend.", 5))
+ break;
+ switch (NameR[21]) {
+ default: break;
+ case 'd': // 1 string to match.
+ if (memcmp(NameR.data()+22, ".512", 4))
+ break;
+ return Intrinsic::x86_avx512_mask_blend_d_512; // "86.avx512.mask.blend.d.512"
+ case 'q': // 1 string to match.
+ if (memcmp(NameR.data()+22, ".512", 4))
+ break;
+ return Intrinsic::x86_avx512_mask_blend_q_512; // "86.avx512.mask.blend.q.512"
+ }
+ break;
+ case 'l': // 4 strings to match.
+ switch (NameR[16]) {
+ default: break;
+ case 'o': // 2 strings to match.
+ if (memcmp(NameR.data()+17, "adu.", 4))
+ break;
+ switch (NameR[21]) {
+ default: break;
+ case 'd': // 1 string to match.
+ if (memcmp(NameR.data()+22, ".512", 4))
+ break;
+ return Intrinsic::x86_avx512_mask_loadu_d_512; // "86.avx512.mask.loadu.d.512"
+ case 'q': // 1 string to match.
+ if (memcmp(NameR.data()+22, ".512", 4))
+ break;
+ return Intrinsic::x86_avx512_mask_loadu_q_512; // "86.avx512.mask.loadu.q.512"
+ }
+ break;
+ case 'z': // 2 strings to match.
+ if (memcmp(NameR.data()+17, "cnt.", 4))
+ break;
+ switch (NameR[21]) {
+ default: break;
+ case 'd': // 1 string to match.
+ if (memcmp(NameR.data()+22, ".512", 4))
+ break;
+ return Intrinsic::x86_avx512_mask_lzcnt_d_512; // "86.avx512.mask.lzcnt.d.512"
+ case 'q': // 1 string to match.
+ if (memcmp(NameR.data()+22, ".512", 4))
+ break;
+ return Intrinsic::x86_avx512_mask_lzcnt_q_512; // "86.avx512.mask.lzcnt.q.512"
+ }
+ break;
+ }
+ break;
+ case 'p': // 9 strings to match.
+ if (NameR[16] != 'm')
+ break;
+ switch (NameR[17]) {
+ default: break;
+ case 'a': // 4 strings to match.
+ if (NameR[18] != 'x')
+ break;
+ switch (NameR[19]) {
+ default: break;
+ case 's': // 2 strings to match.
+ if (NameR[20] != '.')
+ break;
+ switch (NameR[21]) {
+ default: break;
+ case 'd': // 1 string to match.
+ if (memcmp(NameR.data()+22, ".512", 4))
+ break;
+ return Intrinsic::x86_avx512_mask_pmaxs_d_512; // "86.avx512.mask.pmaxs.d.512"
+ case 'q': // 1 string to match.
+ if (memcmp(NameR.data()+22, ".512", 4))
+ break;
+ return Intrinsic::x86_avx512_mask_pmaxs_q_512; // "86.avx512.mask.pmaxs.q.512"
+ }
+ break;
+ case 'u': // 2 strings to match.
+ if (NameR[20] != '.')
+ break;
+ switch (NameR[21]) {
+ default: break;
+ case 'd': // 1 string to match.
+ if (memcmp(NameR.data()+22, ".512", 4))
+ break;
+ return Intrinsic::x86_avx512_mask_pmaxu_d_512; // "86.avx512.mask.pmaxu.d.512"
+ case 'q': // 1 string to match.
+ if (memcmp(NameR.data()+22, ".512", 4))
+ break;
+ return Intrinsic::x86_avx512_mask_pmaxu_q_512; // "86.avx512.mask.pmaxu.q.512"
+ }
+ break;
+ }
+ break;
+ case 'i': // 4 strings to match.
+ if (NameR[18] != 'n')
+ break;
+ switch (NameR[19]) {
+ default: break;
+ case 's': // 2 strings to match.
+ if (NameR[20] != '.')
+ break;
+ switch (NameR[21]) {
+ default: break;
+ case 'd': // 1 string to match.
+ if (memcmp(NameR.data()+22, ".512", 4))
+ break;
+ return Intrinsic::x86_avx512_mask_pmins_d_512; // "86.avx512.mask.pmins.d.512"
+ case 'q': // 1 string to match.
+ if (memcmp(NameR.data()+22, ".512", 4))
+ break;
+ return Intrinsic::x86_avx512_mask_pmins_q_512; // "86.avx512.mask.pmins.q.512"
+ }
+ break;
+ case 'u': // 2 strings to match.
+ if (NameR[20] != '.')
+ break;
+ switch (NameR[21]) {
+ default: break;
+ case 'd': // 1 string to match.
+ if (memcmp(NameR.data()+22, ".512", 4))
+ break;
+ return Intrinsic::x86_avx512_mask_pminu_d_512; // "86.avx512.mask.pminu.d.512"
+ case 'q': // 1 string to match.
+ if (memcmp(NameR.data()+22, ".512", 4))
+ break;
+ return Intrinsic::x86_avx512_mask_pminu_q_512; // "86.avx512.mask.pminu.q.512"
+ }
+ break;
+ }
+ break;
+ case 'u': // 1 string to match.
+ if (memcmp(NameR.data()+18, "l.dq.512", 8))
+ break;
+ return Intrinsic::x86_avx512_mask_pmul_dq_512; // "86.avx512.mask.pmul.dq.512"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 27: // 24 strings to match.
+ if (memcmp(NameR.data()+0, "86.avx512.", 10))
+ break;
+ switch (NameR[10]) {
+ default: break;
+ case 'm': // 18 strings to match.
+ if (memcmp(NameR.data()+11, "ask.", 4))
+ break;
+ switch (NameR[15]) {
+ default: break;
+ case 'b': // 2 strings to match.
+ if (memcmp(NameR.data()+16, "lend.p", 6))
+ break;
+ switch (NameR[22]) {
+ default: break;
+ case 'd': // 1 string to match.
+ if (memcmp(NameR.data()+23, ".512", 4))
+ break;
+ return Intrinsic::x86_avx512_mask_blend_pd_512; // "86.avx512.mask.blend.pd.512"
+ case 's': // 1 string to match.
+ if (memcmp(NameR.data()+23, ".512", 4))
+ break;
+ return Intrinsic::x86_avx512_mask_blend_ps_512; // "86.avx512.mask.blend.ps.512"
+ }
+ break;
+ case 'c': // 5 strings to match.
+ if (memcmp(NameR.data()+16, "vt", 2))
+ break;
+ switch (NameR[18]) {
+ default: break;
+ case 'd': // 2 strings to match.
+ if (memcmp(NameR.data()+19, "q2p", 3))
+ break;
+ switch (NameR[22]) {
+ default: break;
+ case 'd': // 1 string to match.
+ if (memcmp(NameR.data()+23, ".512", 4))
+ break;
+ return Intrinsic::x86_avx512_mask_cvtdq2pd_512; // "86.avx512.mask.cvtdq2pd.512"
+ case 's': // 1 string to match.
+ if (memcmp(NameR.data()+23, ".512", 4))
+ break;
+ return Intrinsic::x86_avx512_mask_cvtdq2ps_512; // "86.avx512.mask.cvtdq2ps.512"
+ }
+ break;
+ case 'p': // 3 strings to match.
+ switch (NameR[19]) {
+ default: break;
+ case 'd': // 2 strings to match.
+ if (NameR[20] != '2')
+ break;
+ switch (NameR[21]) {
+ default: break;
+ case 'd': // 1 string to match.
+ if (memcmp(NameR.data()+22, "q.512", 5))
+ break;
+ return Intrinsic::x86_avx512_mask_cvtpd2dq_512; // "86.avx512.mask.cvtpd2dq.512"
+ case 'p': // 1 string to match.
+ if (memcmp(NameR.data()+22, "s.512", 5))
+ break;
+ return Intrinsic::x86_avx512_mask_cvtpd2ps_512; // "86.avx512.mask.cvtpd2ps.512"
+ }
+ break;
+ case 's': // 1 string to match.
+ if (memcmp(NameR.data()+20, "2dq.512", 7))
+ break;
+ return Intrinsic::x86_avx512_mask_cvtps2dq_512; // "86.avx512.mask.cvtps2dq.512"
+ }
+ break;
+ }
+ break;
+ case 'l': // 2 strings to match.
+ if (memcmp(NameR.data()+16, "oadu.p", 6))
+ break;
+ switch (NameR[22]) {
+ default: break;
+ case 'd': // 1 string to match.
+ if (memcmp(NameR.data()+23, ".512", 4))
+ break;
+ return Intrinsic::x86_avx512_mask_loadu_pd_512; // "86.avx512.mask.loadu.pd.512"
+ case 's': // 1 string to match.
+ if (memcmp(NameR.data()+23, ".512", 4))
+ break;
+ return Intrinsic::x86_avx512_mask_loadu_ps_512; // "86.avx512.mask.loadu.ps.512"
+ }
+ break;
+ case 'p': // 5 strings to match.
+ switch (NameR[16]) {
+ default: break;
+ case 'c': // 2 strings to match.
+ if (memcmp(NameR.data()+17, "mpeq.", 5))
+ break;
+ switch (NameR[22]) {
+ default: break;
+ case 'd': // 1 string to match.
+ if (memcmp(NameR.data()+23, ".512", 4))
+ break;
+ return Intrinsic::x86_avx512_mask_pcmpeq_d_512; // "86.avx512.mask.pcmpeq.d.512"
+ case 'q': // 1 string to match.
+ if (memcmp(NameR.data()+23, ".512", 4))
+ break;
+ return Intrinsic::x86_avx512_mask_pcmpeq_q_512; // "86.avx512.mask.pcmpeq.q.512"
+ }
+ break;
+ case 'm': // 1 string to match.
+ if (memcmp(NameR.data()+17, "ulu.dq.512", 10))
+ break;
+ return Intrinsic::x86_avx512_mask_pmulu_dq_512; // "86.avx512.mask.pmulu.dq.512"
+ case 't': // 2 strings to match.
+ if (memcmp(NameR.data()+17, "estm.", 5))
+ break;
+ switch (NameR[22]) {
+ default: break;
+ case 'd': // 1 string to match.
+ if (memcmp(NameR.data()+23, ".512", 4))
+ break;
+ return Intrinsic::x86_avx512_mask_ptestm_d_512; // "86.avx512.mask.ptestm.d.512"
+ case 'q': // 1 string to match.
+ if (memcmp(NameR.data()+23, ".512", 4))
+ break;
+ return Intrinsic::x86_avx512_mask_ptestm_q_512; // "86.avx512.mask.ptestm.q.512"
+ }
+ break;
+ }
+ break;
+ case 's': // 2 strings to match.
+ if (memcmp(NameR.data()+16, "toreu.", 6))
+ break;
+ switch (NameR[22]) {
+ default: break;
+ case 'd': // 1 string to match.
+ if (memcmp(NameR.data()+23, ".512", 4))
+ break;
+ return Intrinsic::x86_avx512_mask_storeu_d_512; // "86.avx512.mask.storeu.d.512"
+ case 'q': // 1 string to match.
+ if (memcmp(NameR.data()+23, ".512", 4))
+ break;
+ return Intrinsic::x86_avx512_mask_storeu_q_512; // "86.avx512.mask.storeu.q.512"
+ }
+ break;
+ case 'v': // 2 strings to match.
+ if (memcmp(NameR.data()+16, "permt.", 6))
+ break;
+ switch (NameR[22]) {
+ default: break;
+ case 'd': // 1 string to match.
+ if (memcmp(NameR.data()+23, ".512", 4))
+ break;
+ return Intrinsic::x86_avx512_mask_vpermt_d_512; // "86.avx512.mask.vpermt.d.512"
+ case 'q': // 1 string to match.
+ if (memcmp(NameR.data()+23, ".512", 4))
+ break;
+ return Intrinsic::x86_avx512_mask_vpermt_q_512; // "86.avx512.mask.vpermt.q.512"
+ }
+ break;
+ }
+ break;
+ case 's': // 4 strings to match.
+ if (memcmp(NameR.data()+11, "catterpf.", 9))
+ break;
+ switch (NameR[20]) {
+ default: break;
+ case 'd': // 2 strings to match.
+ if (NameR[21] != 'p')
+ break;
+ switch (NameR[22]) {
+ default: break;
+ case 'd': // 1 string to match.
+ if (memcmp(NameR.data()+23, ".512", 4))
+ break;
+ return Intrinsic::x86_avx512_scatterpf_dpd_512; // "86.avx512.scatterpf.dpd.512"
+ case 's': // 1 string to match.
+ if (memcmp(NameR.data()+23, ".512", 4))
+ break;
+ return Intrinsic::x86_avx512_scatterpf_dps_512; // "86.avx512.scatterpf.dps.512"
+ }
+ break;
+ case 'q': // 2 strings to match.
+ if (NameR[21] != 'p')
+ break;
+ switch (NameR[22]) {
+ default: break;
+ case 'd': // 1 string to match.
+ if (memcmp(NameR.data()+23, ".512", 4))
+ break;
+ return Intrinsic::x86_avx512_scatterpf_qpd_512; // "86.avx512.scatterpf.qpd.512"
+ case 's': // 1 string to match.
+ if (memcmp(NameR.data()+23, ".512", 4))
+ break;
+ return Intrinsic::x86_avx512_scatterpf_qps_512; // "86.avx512.scatterpf.qps.512"
+ }
+ break;
+ }
+ break;
+ case 'v': // 2 strings to match.
+ if (memcmp(NameR.data()+11, "broadcast.s", 11))
+ break;
+ switch (NameR[22]) {
+ default: break;
+ case 'd': // 1 string to match.
+ if (memcmp(NameR.data()+23, ".512", 4))
+ break;
+ return Intrinsic::x86_avx512_vbroadcast_sd_512; // "86.avx512.vbroadcast.sd.512"
+ case 's': // 1 string to match.
+ if (memcmp(NameR.data()+23, ".512", 4))
+ break;
+ return Intrinsic::x86_avx512_vbroadcast_ss_512; // "86.avx512.vbroadcast.ss.512"
+ }
+ break;
+ }
+ break;
+ case 28: // 16 strings to match.
+ if (memcmp(NameR.data()+0, "86.avx", 6))
+ break;
+ switch (NameR[6]) {
+ default: break;
+ case '.': // 2 strings to match.
+ if (memcmp(NameR.data()+7, "vbroadcastf128.p", 16))
+ break;
+ switch (NameR[23]) {
+ default: break;
+ case 'd': // 1 string to match.
+ if (memcmp(NameR.data()+24, ".256", 4))
+ break;
+ return Intrinsic::x86_avx_vbroadcastf128_pd_256; // "86.avx.vbroadcastf128.pd.256"
+ case 's': // 1 string to match.
+ if (memcmp(NameR.data()+24, ".256", 4))
+ break;
+ return Intrinsic::x86_avx_vbroadcastf128_ps_256; // "86.avx.vbroadcastf128.ps.256"
+ }
+ break;
+ case '2': // 2 strings to match.
+ if (memcmp(NameR.data()+7, ".vbroadcast.s", 13))
+ break;
+ switch (NameR[20]) {
+ default: break;
+ case 'd': // 1 string to match.
+ if (memcmp(NameR.data()+21, ".pd.256", 7))
+ break;
+ return Intrinsic::x86_avx2_vbroadcast_sd_pd_256; // "86.avx2.vbroadcast.sd.pd.256"
+ case 's': // 1 string to match.
+ if (memcmp(NameR.data()+21, ".ps.256", 7))
+ break;
+ return Intrinsic::x86_avx2_vbroadcast_ss_ps_256; // "86.avx2.vbroadcast.ss.ps.256"
+ }
+ break;
+ case '5': // 12 strings to match.
+ if (memcmp(NameR.data()+7, "12.mask.", 8))
+ break;
+ switch (NameR[15]) {
+ default: break;
+ case 'c': // 6 strings to match.
+ if (memcmp(NameR.data()+16, "vt", 2))
+ break;
+ switch (NameR[18]) {
+ default: break;
+ case 'p': // 2 strings to match.
+ switch (NameR[19]) {
+ default: break;
+ case 'd': // 1 string to match.
+ if (memcmp(NameR.data()+20, "2udq.512", 8))
+ break;
+ return Intrinsic::x86_avx512_mask_cvtpd2udq_512; // "86.avx512.mask.cvtpd2udq.512"
+ case 's': // 1 string to match.
+ if (memcmp(NameR.data()+20, "2udq.512", 8))
+ break;
+ return Intrinsic::x86_avx512_mask_cvtps2udq_512; // "86.avx512.mask.cvtps2udq.512"
+ }
+ break;
+ case 't': // 2 strings to match.
+ if (NameR[19] != 'p')
+ break;
+ switch (NameR[20]) {
+ default: break;
+ case 'd': // 1 string to match.
+ if (memcmp(NameR.data()+21, "2dq.512", 7))
+ break;
+ return Intrinsic::x86_avx512_mask_cvttpd2dq_512; // "86.avx512.mask.cvttpd2dq.512"
+ case 's': // 1 string to match.
+ if (memcmp(NameR.data()+21, "2dq.512", 7))
+ break;
+ return Intrinsic::x86_avx512_mask_cvttps2dq_512; // "86.avx512.mask.cvttps2dq.512"
+ }
+ break;
+ case 'u': // 2 strings to match.
+ if (memcmp(NameR.data()+19, "dq2p", 4))
+ break;
+ switch (NameR[23]) {
+ default: break;
+ case 'd': // 1 string to match.
+ if (memcmp(NameR.data()+24, ".512", 4))
+ break;
+ return Intrinsic::x86_avx512_mask_cvtudq2pd_512; // "86.avx512.mask.cvtudq2pd.512"
+ case 's': // 1 string to match.
+ if (memcmp(NameR.data()+24, ".512", 4))
+ break;
+ return Intrinsic::x86_avx512_mask_cvtudq2ps_512; // "86.avx512.mask.cvtudq2ps.512"
+ }
+ break;
+ }
+ break;
+ case 's': // 2 strings to match.
+ if (memcmp(NameR.data()+16, "toreu.p", 7))
+ break;
+ switch (NameR[23]) {
+ default: break;
+ case 'd': // 1 string to match.
+ if (memcmp(NameR.data()+24, ".512", 4))
+ break;
+ return Intrinsic::x86_avx512_mask_storeu_pd_512; // "86.avx512.mask.storeu.pd.512"
+ case 's': // 1 string to match.
+ if (memcmp(NameR.data()+24, ".512", 4))
+ break;
+ return Intrinsic::x86_avx512_mask_storeu_ps_512; // "86.avx512.mask.storeu.ps.512"
+ }
+ break;
+ case 'v': // 4 strings to match.
+ switch (NameR[16]) {
+ default: break;
+ case 'c': // 2 strings to match.
+ if (memcmp(NameR.data()+17, "vtp", 3))
+ break;
+ switch (NameR[20]) {
+ default: break;
+ case 'h': // 1 string to match.
+ if (memcmp(NameR.data()+21, "2ps.512", 7))
+ break;
+ return Intrinsic::x86_avx512_mask_vcvtph2ps_512; // "86.avx512.mask.vcvtph2ps.512"
+ case 's': // 1 string to match.
+ if (memcmp(NameR.data()+21, "2ph.512", 7))
+ break;
+ return Intrinsic::x86_avx512_mask_vcvtps2ph_512; // "86.avx512.mask.vcvtps2ph.512"
+ }
+ break;
+ case 'p': // 2 strings to match.
+ if (memcmp(NameR.data()+17, "ermt.p", 6))
+ break;
+ switch (NameR[23]) {
+ default: break;
+ case 'd': // 1 string to match.
+ if (memcmp(NameR.data()+24, ".512", 4))
+ break;
+ return Intrinsic::x86_avx512_mask_vpermt_pd_512; // "86.avx512.mask.vpermt.pd.512"
+ case 's': // 1 string to match.
+ if (memcmp(NameR.data()+24, ".512", 4))
+ break;
+ return Intrinsic::x86_avx512_mask_vpermt_ps_512; // "86.avx512.mask.vpermt.ps.512"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 29: // 6 strings to match.
+ if (memcmp(NameR.data()+0, "86.avx512.", 10))
+ break;
+ switch (NameR[10]) {
+ default: break;
+ case 'm': // 4 strings to match.
+ if (memcmp(NameR.data()+11, "ask.c", 5))
+ break;
+ switch (NameR[16]) {
+ default: break;
+ case 'o': // 2 strings to match.
+ if (memcmp(NameR.data()+17, "nflict.", 7))
+ break;
+ switch (NameR[24]) {
+ default: break;
+ case 'd': // 1 string to match.
+ if (memcmp(NameR.data()+25, ".512", 4))
+ break;
+ return Intrinsic::x86_avx512_mask_conflict_d_512; // "86.avx512.mask.conflict.d.512"
+ case 'q': // 1 string to match.
+ if (memcmp(NameR.data()+25, ".512", 4))
+ break;
+ return Intrinsic::x86_avx512_mask_conflict_q_512; // "86.avx512.mask.conflict.q.512"
+ }
+ break;
+ case 'v': // 2 strings to match.
+ if (memcmp(NameR.data()+17, "ttp", 3))
+ break;
+ switch (NameR[20]) {
+ default: break;
+ case 'd': // 1 string to match.
+ if (memcmp(NameR.data()+21, "2udq.512", 8))
+ break;
+ return Intrinsic::x86_avx512_mask_cvttpd2udq_512; // "86.avx512.mask.cvttpd2udq.512"
+ case 's': // 1 string to match.
+ if (memcmp(NameR.data()+21, "2udq.512", 8))
+ break;
+ return Intrinsic::x86_avx512_mask_cvttps2udq_512; // "86.avx512.mask.cvttps2udq.512"
+ }
+ break;
+ }
+ break;
+ case 'p': // 2 strings to match.
+ if (memcmp(NameR.data()+11, "broadcast", 9))
+ break;
+ switch (NameR[20]) {
+ default: break;
+ case 'd': // 1 string to match.
+ if (memcmp(NameR.data()+21, ".i32.512", 8))
+ break;
+ return Intrinsic::x86_avx512_pbroadcastd_i32_512; // "86.avx512.pbroadcastd.i32.512"
+ case 'q': // 1 string to match.
+ if (memcmp(NameR.data()+21, ".i64.512", 8))
+ break;
+ return Intrinsic::x86_avx512_pbroadcastq_i64_512; // "86.avx512.pbroadcastq.i64.512"
+ }
+ break;
+ }
+ break;
+ case 30: // 4 strings to match.
+ if (memcmp(NameR.data()+0, "86.avx512.", 10))
+ break;
+ switch (NameR[10]) {
+ default: break;
+ case 'm': // 2 strings to match.
+ if (memcmp(NameR.data()+11, "ask.rndscale.p", 14))
+ break;
+ switch (NameR[25]) {
+ default: break;
+ case 'd': // 1 string to match.
+ if (memcmp(NameR.data()+26, ".512", 4))
+ break;
+ return Intrinsic::x86_avx512_mask_rndscale_pd_512; // "86.avx512.mask.rndscale.pd.512"
+ case 's': // 1 string to match.
+ if (memcmp(NameR.data()+26, ".512", 4))
+ break;
+ return Intrinsic::x86_avx512_mask_rndscale_ps_512; // "86.avx512.mask.rndscale.ps.512"
+ }
+ break;
+ case 'v': // 2 strings to match.
+ if (memcmp(NameR.data()+11, "broadcast.s", 11))
+ break;
+ switch (NameR[22]) {
+ default: break;
+ case 'd': // 1 string to match.
+ if (memcmp(NameR.data()+23, ".pd.512", 7))
+ break;
+ return Intrinsic::x86_avx512_vbroadcast_sd_pd_512; // "86.avx512.vbroadcast.sd.pd.512"
+ case 's': // 1 string to match.
+ if (memcmp(NameR.data()+23, ".ps.512", 7))
+ break;
+ return Intrinsic::x86_avx512_vbroadcast_ss_ps_512; // "86.avx512.vbroadcast.ss.ps.512"
+ }
+ break;
+ }
+ break;
+ case 35: // 3 strings to match.
+ if (memcmp(NameR.data()+0, "86.avx512.mask.pbroadcast.", 26))
+ break;
+ switch (NameR[26]) {
+ default: break;
+ case 'd': // 1 string to match.
+ if (memcmp(NameR.data()+27, ".gpr.512", 8))
+ break;
+ return Intrinsic::x86_avx512_mask_pbroadcast_d_gpr_512; // "86.avx512.mask.pbroadcast.d.gpr.512"
+ case 'q': // 2 strings to match.
+ if (NameR[27] != '.')
+ break;
+ switch (NameR[28]) {
+ default: break;
+ case 'g': // 1 string to match.
+ if (memcmp(NameR.data()+29, "pr.512", 6))
+ break;
+ return Intrinsic::x86_avx512_mask_pbroadcast_q_gpr_512; // "86.avx512.mask.pbroadcast.q.gpr.512"
+ case 'm': // 1 string to match.
+ if (memcmp(NameR.data()+29, "em.512", 6))
+ break;
+ return Intrinsic::x86_avx512_mask_pbroadcast_q_mem_512; // "86.avx512.mask.pbroadcast.q.mem.512"
+ }
+ break;
+ }
+ break;
+ }
+ break; // end of 'x' case.
+ }
+#endif
+
+// Global intrinsic function declaration type table.
+#ifdef GET_INTRINSIC_GENERATOR_GLOBAL
+static const unsigned IIT_Table[] = {
+ 0x1F1F1F1F, 0x1F1F1F1F, (1U<<31) | 19, 0x1F1F, 0x1F1F, 0x1F1F, 0x41F1F,
+ 0x0, 0x444, 0x444, 0x444, 0x444, 0x544, 0x444, 0x444,
+ 0x544, 0x2C2C2C, 0x2C2C2C, 0x2C2C, 0x2C2C, 0x4A44A4A, 0x44, 0x4A44A4A,
+ 0x4A44A4A, 0x4A4A4A4A, 0x4A4A4A, 0x4A4A4A4A, 0x4A4A4A4A, 0x4A4A4A, 0x4A4A4A4A, 0x40,
+ 0x40, 0x40, 0x40, (1U<<31) | 332, 0x3F5, (1U<<31) | 332, 0x3F5, 0xF0F,
+ (1U<<31) | 400, 0x2F2F2F, 0x2F2F, 0x2F2F2F, 0x5F5F0F, 0x5F5F0F, 0x6F1F, 0x5F0F,
+ 0x5F0F, 0x5F0F, 0x5F0F, 0x5F0F, 0x5F0F, 0x5F0F, 0x5F0F, 0x6F2F,
+ 0x5F0F, 0x5F0F, 0x2F2F2F, 0x1F1F1F, 0x2F2F2F, 0x6F1F, 0x2F2F2F, 0x6F1F,
+ 0x2F2F2F, 0x1F1F1F, 0x2F2F2F, 0x6F1F, 0x2F2F2F, 0x6F1F, 0x1F1F1F, 0x1F1F,
+ 0x1F1F1F, 0x1F1F, 0x1F1F, 0x1F1F, 0x1F1F1F, (1U<<31) | 1673, (1U<<31) | 1663, (1U<<31) | 1651,
+ (1U<<31) | 1673, (1U<<31) | 1743, (1U<<31) | 1673, (1U<<31) | 1663, (1U<<31) | 1726, (1U<<31) | 1663, (1U<<31) | 1651, (1U<<31) | 1705,
+ (1U<<31) | 1651, 0x2F2F2F, (1U<<31) | 412, 0x552C, (1U<<31) | 400, 0x2F2F, (1U<<31) | 454, (1U<<31) | 400,
+ 0x2F2F2F, 0x6F2F, 0x6F0F, 0x6F0F, 0x4F0F, 0x4F0F, 0x4F0F, 0x2F2F2F,
+ (1U<<31) | 407, 0x2F2F2F, 0x2F2F2F, 0x2F2F2F, 0x6F0F, 0x2F2F2F, 0x2F2F2F, 0x6F0F,
+ (1U<<31) | 412, 0xF0F, 0xF0F0F, 0xF0F0F, (1U<<31) | 412, 0x445, 0xF0F, 0xF0F0F,
+ 0xF0F0F, (1U<<31) | 454, (1U<<31) | 454, 0xF0F0F, 0xF0F0F, (1U<<31) | 454, (1U<<31) | 454, 0xF0F0F,
+ (1U<<31) | 14, (1U<<31) | 14, 0x2F2F2F, 0xF0F0F, 0xF0F0F, (1U<<31) | 646, 0x7F2F2F0, (1U<<31) | 1629,
+ (1U<<31) | 1639, 0x7F2F2F0, 0x7F52F2F0, (1U<<31) | 1629, (1U<<31) | 1681, (1U<<31) | 1639, (1U<<31) | 1692, (1U<<31) | 400,
+ 0xF0F0F, 0x2F2C2F, 0x2F2C2C2F, (1U<<31) | 368, (1U<<31) | 353, 0x2F2C2F2F, (1U<<31) | 379, (1U<<31) | 366,
+ (1U<<31) | 351, 0x2F2F2F, 0x6F2F, 0x6F0F, 0x6F0F, 0x2F2F2F, 0x2F2F2F, 0x2F2F2F,
+ 0x2F2F2F, 0x6F0F, 0x2F2F2F, 0x2F2F2F, 0x6F0F, (1U<<31) | 412, 0xF0F0F, 0xF0F0F,
+ (1U<<31) | 454, 0xF0F0F, (1U<<31) | 454, 0xF0F0F, (1U<<31) | 14, 0x2F2F, 0x2F2F2F, 0xF0F0F,
+ 0x2F2F, 0xF0F0F, (1U<<31) | 646, 0xF0F0F, 0x52F56F2F, 0x45F0F, 0x45F0F, 0x7A3A,
+ 0x44F1F, 0x44F1F, 0x3A7A, 0x42F2F2F, 0x42F2F2F, 0xF0F, 0xF0F0F, 0x1F1F1F,
+ 0x87, 0x2E554, 0x3F54, 0x2E554, 0x3F54, 0xF0F0F, 0x2E2E, (1U<<31) | 569,
+ 0x4444440, 0x4444440, 0x0, 0x444, 0x444, 0x444, 0x444, 0x444,
+ 0x444, 0x40, 0x40, 0x4, 0x40, 0x40, 0x3F4, (1U<<31) | 326,
+ 0x3F4, (1U<<31) | 326, 0x4444440, 0x4444440, 0x444440, 0x444440, 0x444444, 0x444444,
+ 0x2C2C2C, 0x2C2C2C, 0x2C2C, 0x2C2C, 0x4A44A4A, 0x44, 0x4A44A4A, 0x4A44A4A,
+ 0x4A4A4A4A, 0x4A4A4A, 0x4A4A4A4A, 0x4A4A4A4A, 0x4A4A4A, 0x4A4A4A4A, 0x2F2F2F, 0x2F2F2F,
+ 0x2F2F, 0x6F6F2F, 0x6F6F2F, 0x2F2F2F2F, 0x2F2F, 0x2F2F, 0x2F2F, 0x6F2F,
+ 0x6F2F, 0x45F0F, 0x45F0F, 0x7A3A, 0x44F1F, 0x44F1F, 0x3A7A, 0x6F2F,
+ 0x6F2F, 0x6F2F, 0x6F2F, 0x6F2F, 0x6F2F, 0x2F2F2F, 0x2F2F2F, 0x2F2F2F,
+ 0x2F2F2F, 0x42E2F, (1U<<31) | 613, (1U<<31) | 709, (1U<<31) | 602, (1U<<31) | 735, (1U<<31) | 589, (1U<<31) | 767,
+ 0x2F2F2F, 0x2F2F2F, 0x2F2F2F, 0x2F2F2F, 0x2F2F2F, 0x2F2F2F, (1U<<31) | 412, (1U<<31) | 412,
+ (1U<<31) | 412, 0x2F2F2F, 0x6F2F2F, 0x6F2F2F, 0x2F2F2F, 0x6F2F, 0x6F2F, 0x2F2F2F,
+ 0x2F2F2F, 0x2F2F2F, 0x2F2F2F, 0x2F2F, 0x2F2F2F, 0x2F2F2F, 0x2F2F2F, (1U<<31) | 412,
+ (1U<<31) | 395, (1U<<31) | 395, (1U<<31) | 395, 0x2F2F, 0x2F2F2F, (1U<<31) | 400, (1U<<31) | 400, (1U<<31) | 400,
+ 0x2F2F2F, 0x2F2F2F, (1U<<31) | 400, (1U<<31) | 400, (1U<<31) | 400, 0x2F2F2F, 0x2F2F2F, 0x2F2F2F,
+ 0x2F2F2F, 0x2F2F2F, (1U<<31) | 400, 0x2F2F, 0x2F2F2F, 0x2F2F2F, 0x2F2F2F, 0x2F2F,
+ 0x2F2F, 0x2F2F, 0x2F2F, 0x2F2F, 0x2F2F, (1U<<31) | 400, 0x2F2F2F, 0x2F2F2F,
+ 0x2F2F, 0x2F2F2F, (1U<<31) | 400, 0x2F2F2F2F, 0x2F2F2F, 0x2F2F2F, 0x42F2E0, 0x42F2F2E0,
+ (1U<<31) | 699, (1U<<31) | 622, (1U<<31) | 723, (1U<<31) | 633, (1U<<31) | 753, 0x2B2B2B, 0x2B2B2B2B, (1U<<31) | 315,
+ (1U<<31) | 313, 0x2B2B2B2B, (1U<<31) | 315, (1U<<31) | 313, (1U<<31) | 311, 0x444, 0x444, 0x44,
+ 0x40, 0x444, 0x3F44, 0x2E444, 0x3F44, 0x2E444, 0x2E, 0x40,
+ 0x444, 0x1F7, 0x1F7, 0xF0F, 0x1F1F, 0x2E2E0, 0x31F, 0x1F3,
+ 0x445F1F, 0x444F1F, 0x444F1F, 0x445F0F, 0x444F0F, 0x444F0F, 0x445F0F, 0x444F0F,
+ 0x444F0F, 0x1F1F1F, 0x1F1F, 0x10F0F, 0xF0F, 0x10F0F, 0x0, (1U<<31) | 1818,
+ (1U<<31) | 1813, 0x0, 0x0, 0x42E, 0x2E40, 0x2E50, 0x40, 0x2E0,
+ 0x2E0, 0x2E, 0x2E4, 0x2E4, 0x0, 0x1F1F, 0x1F1F, 0xF0F0F,
+ (1U<<31) | 1830, (1U<<31) | 1822, (1U<<31) | 1838, 0x1F1F, 0x1F1F, 0x4, 0x1F1F1F1F, 0x1F1F1F1F,
+ 0x42E, 0x2EE2E2E, 0x2E2EE0, 0x2EE2E2E0, 0x44, 0x55, 0x44, 0x444,
+ 0x444, 0x444, 0x444, 0x444, 0x444, 0x444, 0x444, 0x444,
+ 0x444, 0x444, 0x444, 0x444, 0x444, 0x555, 0x555, 0x444,
+ 0x545, 0x444, 0x444, 0x555, 0x44, 0x44, 0x444, 0x444,
+ 0x444, 0x444, 0x445, 0x445, 0x444, 0x555, 0x444, 0x555,
+ 0x444, 0x555, 0x444, 0x555, 0x44, 0x55, 0x44, 0x44,
+ 0x55, 0x444, 0x444, 0x555, 0x54, 0x54, 0x44, 0x44,
+ 0x44, 0x44, 0x444, 0x444, 0x444, 0x444, 0x444, 0x444,
+ 0x444, 0x444, 0x444, 0x444, 0x444, 0x444, 0x444, 0x555,
+ 0x444, 0x444, 0x444, 0x444, 0x444, 0x444, 0x444, 0x444,
+ 0x444, 0x444, 0x444, 0x44, 0x44, 0x44, 0x45, 0x44,
+ 0x444, 0x444, 0x55, 0x45, 0x44, 0x55, 0x55, 0x55,
+ 0x55, 0x555, 0x555, 0x555, 0x555, 0x555, 0x555, 0x555,
+ 0x555, 0x555, 0x555, 0x555, 0x555, 0x555, 0x555, 0x555,
+ 0x555, 0x555, 0x555, 0x555, 0x555, 0x551, 0x551, 0x551,
+ 0x551, 0x551, 0x551, 0x551, 0x551, 0x55, 0x555, 0x555,
+ 0x555, 0x555, 0x555, 0x555, 0x555, 0x555, 0x555, 0x555,
+ 0x555, 0x555, 0x555, 0x555, 0x555, 0x555, 0x555, 0x555,
+ 0x555, 0x5555, 0x555, 0x5555, 0x555, 0x555, 0x555, 0x555,
+ 0x555, 0x555, 0x555, 0x555, 0x444, 0x555, 0x44, 0x44,
+ 0x444, 0x555, 0x445, 0x445, 0x541, 0x441, 0x441, 0x441,
+ 0x441, 0x441, 0x441, 0x441, 0x441, 0x441, 0x441, 0x441,
+ 0x441, 0x445, 0x445, 0x444, 0x444, 0x444, 0x444, 0x555,
+ 0x444, 0x444, 0x444, 0x444, 0x444, 0x444, 0x444, 0x444,
+ 0x451, 0x551, 0x451, 0x551, 0x451, 0x451, 0x451, 0x451,
+ 0x451, 0x451, 0x451, 0x451, 0x4555, 0x4555, 0x4555, 0x4555,
+ 0x4555, 0x4555, 0x4555, 0x4555, 0x554, 0x41, 0x441, 0x441,
+ 0x41, 0x441, 0x441, 0x441, 0x441, 0x441, 0x551, 0x441,
+ 0x441, 0x441, 0x441, 0x551, 0x441, 0x441, 0x551, 0x441,
+ 0x441, 0x45, 0x4444, 0x4444, 0x4444, 0x4444, 0x41, 0x441,
+ 0x441, 0x41, 0x44, 0x41, 0x444, 0x5545, 0x441, 0x4441,
+ 0x4441, 0x4441, 0x4441, 0x441, 0x441, 0x441, 0x441, 0x441,
+ 0x441, 0x441, 0x441, 0x441, 0x441, 0x441, 0x4441, 0x4441,
+ 0x4441, 0x4441, 0x58, 0x57, 0x85, 0x85, 0x87, 0x85,
+ 0x85, 0x84, 0x84, 0x84, 0x84, 0x75, 0x75, 0x78,
+ 0x75, 0x75, 0x74, 0x74, 0x74, 0x74, 0x58, 0x57,
+ 0x48, 0x47, 0x48, 0x47, 0x888, 0x481, 0x881, 0x881,
+ 0x881, 0x881, 0x888, 0x888, 0x88, 0x8888, 0x8888, 0x48888,
+ 0x8888, 0x8888, 0x48, 0x48, 0x888, 0x888, 0x888, 0x888,
+ 0x777, 0x471, 0x771, 0x771, 0x771, 0x771, 0x777, 0x777,
+ 0x77, 0x7777, 0x7777, 0x47777, 0x7777, 0x7777, 0x47, 0x47,
+ 0x777, 0x777, 0x777, 0x777, 0x4444, 0x4444, 0x4455, 0x4455,
+ 0x4455, 0x4455, 0x4455, 0x4455, 0x445, 0x445, 0x444, 0x444,
+ 0x444, 0x444, 0x445, 0x445, 0x445, 0x445, 0x4455, 0x4455,
+ 0x4455, 0x4455, 0x4455, 0x4455, 0x444, 0x445, 0x4455, 0x4455,
+ 0x445, 0x444, 0x444, 0x444, 0x444, 0x4444, 0x4444, 0x4444,
+ 0x5555, 0x5555, 0x5555, 0x5555, 0x5555, 0x5555, 0x5555, 0x5555,
+ 0x5555, 0x5555, 0x5555, 0x5555, 0x5555, 0x5555, 0x5555, 0x5555,
+ 0x555, 0x555, 0x555, 0x555, 0x555, 0x555, 0x555, 0x555,
+ 0x555, 0x555, 0x555, 0x555, 0x555, 0x555, 0x555, 0x555,
+ 0x4444, 0x4444, 0x4444, 0x4444, 0x4444, 0x4444, 0x4444, 0x4444,
+ 0x4444, 0x4444, 0x4444, 0x4444, 0x4444, 0x4444, 0x4444, 0x4444,
+ 0x444, 0x444, 0x444, 0x444, 0x444, 0x444, 0x444, 0x444,
+ 0x4444, 0x4444, 0x4444, 0x4444, 0x4444, 0x4444, 0x4444, 0x4444,
+ 0x4444, 0x4444, 0x4444, 0x4444, 0x4444, 0x4444, 0x4444, 0x4444,
+ 0x444, 0x444, 0x444, 0x444, 0x444, 0x444, 0x444, 0x444,
+ 0x444, 0x444, 0x444, 0x444, 0x444, 0x444, 0x444, 0x444,
+ 0x444, 0x444, 0x444, 0x444, 0x444, 0x444, 0x444, 0x444,
+ 0x444, 0x444, 0x444, 0x4455, 0x4455, 0x4455, 0x4455, 0x4455,
+ 0x4455, 0x4455, 0x4455, 0x445, 0x445, 0x445, 0x445, 0x445,
+ 0x445, 0x445, 0x445, 0x4455, 0x4455, 0x4455, 0x4455, 0x4455,
+ 0x4455, 0x4455, 0x4455, 0x445, 0x445, 0x445, 0x445, 0x445,
+ 0x445, 0x445, 0x445, 0x444, 0x444, 0x444, 0x4444, 0x4444,
+ 0x4444, 0x4444, 0x4444, 0x4444, 0x4444, 0x4444, 0x444, 0x444,
+ 0x444, 0x444, 0x444, 0x444, 0x444, 0x444, 0x4444, 0x4444,
+ 0x4444, 0x4444, 0x4444, 0x4444, 0x4444, 0x4444, 0x444, 0x4455,
+ 0x4455, 0x4455, 0x4455, 0x4455, 0x4455, 0x4455, 0x4455, 0x445,
+ 0x445, 0x445, 0x445, 0x445, 0x445, 0x445, 0x445, 0x4455,
+ 0x4455, 0x4455, 0x4455, 0x4455, 0x4455, 0x4455, 0x4455, 0x444,
+ 0x4444, 0x4444, 0x4444, 0x555, 0x555, 0x5555, 0x5555, 0x555,
+ 0x555, 0x555, 0x555, 0x5555, 0x5555, 0x554, 0x554, 0x555,
+ 0x555, 0x4455, 0x5555, 0x5555, 0x5555, 0x4455, 0x4455, 0x4455,
+ 0x4455, 0x555, 0x555, 0x445, 0x444, 0x445, 0x444, 0x445,
+ 0x445, 0x554, 0x554, 0x5555, 0x5555, 0x5555, 0x5555, 0x555,
+ 0x555, 0x555, 0x555, 0x4555, 0x455, 0x454, 0x5555, 0x555,
+ 0x4444, 0x4444, 0x4444, 0x4444, 0x4444, 0x454, 0x454, 0x454,
+ 0x454, 0x4444, 0x4444, 0x4444, 0x4444, 0x4444, 0x4444, 0x4444,
+ 0x4444, 0x4444, 0x4444, 0x4444, 0x445, 0x4455, 0x445, 0x4455,
+ 0x5555, 0x5555, 0x555, 0x555, 0x5555, 0x5555, 0x555, 0x555,
+ 0x4444, 0x4444, 0x4444, 0x5555, 0x5555, 0x555, 0x4455, 0x4455,
+ 0x445, 0x445, 0x5555, 0x5555, 0x555, 0x555, 0x4444, 0x455,
+ 0x4555, 0x4555, 0x4555, 0x4555, 0x4555, 0x444, 0x4444, 0x4444,
+ 0x4444, 0x4444, 0x444, 0x4444, 0x455, 0x455, 0x455, 0x4555,
+ 0x4555, 0x4555, 0x4555, 0x4555, 0x444, 0x4444, 0x4444, 0x4444,
+ 0x4444, 0x444, 0x455, 0x455, 0x455, 0x4555, 0x4555, 0x4555,
+ 0x4555, 0x455, 0x455, 0x444, 0x4444, 0x4444, 0x4444, 0x4444,
+ 0x444, 0x444, 0x454, 0x455, 0x455, 0x455, 0x4555, 0x4555,
+ 0x4555, 0x4555, 0x4555, 0x444, 0x4444, 0x4444, 0x4444, 0x4444,
+ 0x444, 0x454, 0x455, 0x455, 0x44, 0x55, 0x44, 0x54,
+ 0x44, 0x54, 0x44, 0x44, 0x54, 0x444, 0x444, 0x44,
+ 0x54, 0x44, 0x54, 0x55, 0x4444, 0x544, 0x4455, 0x555,
+ 0x44444, 0x5444, 0x44555, 0x5555, 0x55, 0x555, 0x455, 0x4555,
+ 0x4555, 0x4555, 0x4555, 0x4555, 0x444, 0x4444, 0x4444, 0x4444,
+ 0x4444, 0x455, 0x455, 0x455, 0x4555, 0x4555, 0x4555, 0x4555,
+ 0x4555, 0x444, 0x4444, 0x4444, 0x4444, 0x4444, 0x4444, 0x455,
+ 0x455, 0x455, 0x4555, 0x4555, 0x4555, 0x4555, 0x4555, 0x444,
+ 0x4444, 0x4444, 0x4444, 0x4444, 0x455, 0x455, 0x445, 0x554,
+ 0x444, 0x444, 0x555, 0x555, 0x555, 0x555, 0x44, 0x44,
+ 0x44444, 0x44444, 0x44444, 0x44444, 0x444, 0x444, 0x441, 0x441,
+ 0x4555, 0x4555, 0x455, 0x455, 0x4555, 0x54, 0x54, 0x54,
+ 0x55, 0x54, 0x55, 0x54, 0x55, 0x54, 0x55, 0x44,
+ 0x45, 0x4555, 0x4555, 0x45, 0x45, 0x54, 0x555, 0x54,
+ 0x555, 0x45, 0x45, 0x4444, 0x4444, 0x4444, 0x4444, 0x4444,
+ 0x444, 0x454, 0x54, 0x4444, 0x544, 0x4455, 0x555, 0x444,
+ 0x441, 0x441, 0x4444, 0x4444, 0x4444, 0x4444, 0x4444, 0x444,
+ 0x4444, 0x4444, 0x4444, 0x4455, 0x44555, 0x555, 0x555, 0x555,
+ 0x555, 0x555, 0x555, 0x454, 0x454, 0x54, 0x455, 0x44,
+ 0x442E2E2E, 0x2E2E2E0, (1U<<31) | 338, (1U<<31) | 339, 0x2E50, 0x2E50, 0x1F1F, 0x1F1F,
+ 0x1F1F, 0x42E0, (1U<<31) | 29, (1U<<31) | 29, 0x144F23F0, 0x3939, 0x2A2A, 0x44,
+ 0x2C2C2C, 0x595959, 0x3B3B3B, 0x4A4A4A, 0x393939, 0x393939, 0x444, 0x393939,
+ 0x393939, 0x444, 0x444, 0x2C2C2C, 0x595959, 0x3B3B3B, 0x4A4A4A, 0x2C2C2C,
+ 0x595959, 0x3B3B3B, 0x4A4A4A, 0x2C2C2C, 0x595959, 0x3B3B3B, 0x4A4A4A, 0x444,
+ 0x393939, 0x2A2A2A, 0x393939, 0x2A2A2A, 0x2A2A2A, 0x2A2A2A, 0x2C2C2C, 0x595959,
+ 0x3B3B3B, 0x4A4A4A, 0x42C2C, 0x45959, 0x43B3B, 0x44A4A, 0x444, 0x2C2C2C,
+ 0x42C2C, 0x4444, 0x2C2C2C, 0x595959, 0x3B3B3B, 0x4A4A4A, 0x2C2C2C, 0x595959,
+ 0x3B3B3B, 0x4A4A4A, 0x2C2C2C, 0x595959, 0x3B3B3B, 0x4A4A4A, 0x2C2C2C, 0x595959,
+ 0x3B3B3B, 0x4A4A4A, 0x2C2C2C, 0x595959, 0x3B3B3B, 0x4A4A4A, 0x2C2C2C, 0x595959,
+ 0x3B3B3B, 0x4A4A4A, 0x4444, 0x2C2C2C, 0x595959, 0x3B3B3B, 0x4A4A4A, 0x42C2C,
+ 0x45959, 0x43B3B, 0x44A4A, 0x2C2C2C2C, 0x59595959, 0x3B3B3B3B, 0x4A4A4A4A, 0x42C2C2C,
+ 0x4595959, 0x43B3B3B, 0x44A4A4A, 0x2C2C2C2C, 0x59595959, 0x3B3B3B3B, 0x4A4A4A4A, 0x42C2C2C,
+ 0x4595959, 0x43B3B3B, 0x44A4A4A, 0x44, 0x2C2C2C2C, 0x42C2C2C, 0x2C2C2C2C, 0x42C2C2C,
+ 0x2C2C2C, 0x595959, 0x3B3B3B, 0x4A4A4A, 0x42C2C, 0x45959, 0x43B3B, 0x44A4A,
+ 0x2C4, 0x594, 0x3B4, 0x2C4, 0x4A4, 0x4, 0x2C2C2C2C, 0x42C2C2C,
+ 0x2C2C2C, 0x595959, 0x3B3B3B, 0x4A4A4A, 0x42C2C, 0x45959, 0x43B3B, 0x44A4A,
+ 0x2C4, 0x594, 0x3B4, 0x2C4, 0x4A4, 0x2C2C2C, 0x595959, 0x3B3B3B,
+ 0x4A4A4A, 0x42C2C, 0x45959, 0x43B3B, 0x44A4A, 0x44, 0x2C2C2C, 0x595959,
+ 0x3B3B3B, 0x4A4A4A, 0x2C2C2C, 0x595959, 0x3B3B3B, 0x4A4A4A, 0x42C2C, 0x45959,
+ 0x43B3B, 0x44A4A, 0x42C2C, 0x45959, 0x43B3B, 0x44A4A, 0x2C2C2C, 0x595959,
+ 0x3B3B3B, 0x4A4A4A, 0x2C2C2C, 0x595959, 0x3B3B3B, 0x4A4A4A, 0x42C2C, 0x45959,
+ 0x43B3B, 0x44A4A, 0x42C2C, 0x45959, 0x43B3B, 0x44A4A, 0x39390, 0x39390,
+ 0x39390, 0x2A2A4, 0x2A2A4, 0x2A2A4, 0x2A2A4, 0x2A2A4, 0x2A2A4, 0x2A2A0,
+ 0x2A2A0, 0x2A2A0, 0x42C4, 0x4595, 0x43B4, 0x44A4, 0x42C4, 0x4595,
+ 0x43B4, 0x44A4, 0x440, 0x2C2C2C, 0x595959, 0x3B3B3B, 0x4A4A4A, 0x2C2C2C,
+ 0x595959, 0x3B3B3B, 0x4A4A4A, 0x4555, 0x4A4A59, 0x2C2C3B, 0x3B3B4A, 0x4A4A59,
+ 0x2C2C3B, 0x3B3B4A, 0x393955, 0x4A4A5959, 0x2C2C3B3B, 0x3B3B4A4A, 0x4A4A5959, 0x2C2C3B3B,
+ 0x3B3B4A4A, 0x393955, 0x4455, 0x393955, 0x393955, 0x2A2A55, 0x2A2A55, 0x393955,
+ 0x393955, 0x393955, 0x4455, 0x393955, 0x393955, 0x2A2A55, 0x2A2A55, 0x4A4A5959,
+ 0x2C2C3B3B, 0x3B3B4A4A, 0x4A4A5959, 0x2C2C3B3B, 0x3B3B4A4A, 0x393955, 0x454, 0x454,
+ 0x454, 0x454, 0x454, 0x454, 0x898989, 0x7A7A7A, 0x898959, 0x7A7A4A,
+ 0x898959, 0x7A7A4A, 0x8959, 0x7A4A, 0x898959, 0x7A7A4A, 0x898959, 0x7A7A4A,
+ 0x898959, 0x7A7A4A, 0x898959, 0x7A7A4A, 0x898959, 0x7A7A4A, 0x898959, 0x7A7A4A,
+ 0x898959, 0x7A7A4A, 0x898959, 0x7A7A4A, 0x898959, 0x7A7A4A, 0x898989, 0x7A7A7A,
+ 0x7A7A6B, 0x89897A, 0x598989, 0x4A7A7A, 0x7A89, 0x6B7A, 0x7A89, 0x6B7A,
+ 0x5989, 0x4A7A, 0x5989, 0x4A7A, 0x4A89, 0x3B7A, 0x4A89, 0x3B7A,
+ 0x42C, 0x559, 0x43B, 0x44A, 0x8989, 0x7A7A, (1U<<31) | 1756, 0x7A7A7A7A,
+ 0x898989, 0x7A7A7A, 0x898989, 0x7A7A7A, 0x898989, 0x7A7A7A, 0x898989, 0x7A7A7A,
+ (1U<<31) | 1756, 0x7A7A7A7A, 0x898989, 0x7A7A7A, 0x8989, 0x7A7A, 0x8989, 0x7A7A,
+ 0x8989, 0x7A7A, 0x898959, 0x7A7A4A, 0x898959, 0x7A7A4A, 0x898959, 0x7A7A4A,
+ 0x898959, 0x7A7A4A, 0x898959, 0x7A7A4A, 0x898959, 0x7A7A4A, 0x8989, 0x7A7A,
+ 0x898989, 0x7A7A7A, 0x898959, 0x7A7A4A, 0x898959, 0x7A7A4A, 0x898959, 0x7A7A4A,
+ 0x898959, 0x7A7A4A, 0x898959, 0x7A7A4A, 0x8959, 0x7A4A, 0x8959, 0x7A4A,
+ 0x7A7A3B, 0x89894A, 0x8959, 0x7A4A, 0x8959, 0x7A4A, 0x4A4A59, 0x2C2C3B,
+ 0x3B3B4A, 0x4A4A59, 0x2C2C3B, 0x3B3B4A, 0x4A4A59, 0x2C2C3B, 0x3B3B4A, 0x4A4A59,
+ 0x2C2C3B, 0x3B3B4A, 0x2C2C2C, 0x595959, 0x3B3B3B, 0x4A4A4A, 0x2C2C2C, 0x595959,
+ 0x3B3B3B, 0x4A4A4A, 0x2C2C2C, 0x595959, 0x3B3B3B, 0x4A4A4A, 0x2C2C2C, 0x595959,
+ 0x3B3B3B, 0x4A4A4A, 0x442C2C, 0x545959, 0x443B3B, 0x444A4A, 0x444, 0x2C42C2C,
+ 0x5945959, 0x3B43B3B, 0x4A44A4A, 0x42E4, 0x42E2C, 0x42E59, 0x42E3B, 0x42E4A,
+ 0x42C, 0x459, 0x43B, 0x44A, 0x42E4, 0x4444, 0x42E4, 0x4455,
+ 0x3B3B3B3B, 0x4A4A4A4A, 0x3B3B3B3B, 0x4A4A4A4A, 0x4455, 0x2C2C2C2C, 0x59595959, 0x3B3B3B3B,
+ 0x4A4A4A4A, 0x393955, 0x393955, 0x393955, 0x393955, 0x2C2C2C, 0x595959, 0x3B3B3B,
+ 0x4A4A4A, 0x2C2C2C, 0x595959, 0x3B3B3B, 0x4A4A4A, 0x2C2C2C, 0x595959, 0x3B3B3B,
+ 0x4A4A4A, 0x42C2C, 0x45959, 0x43B3B, 0x44A4A, 0x42C2C, 0x45959, 0x43B3B,
+ 0x44A4A, 0x2C2C2C, 0x595959, 0x3B3B3B, 0x4A4A4A, 0x2C2C2C, 0x595959, 0x3B3B3B,
+ 0x4A4A4A, 0x2C2C2C, 0x595959, 0x3B3B3B, 0x4A4A4A, 0x42C2C, 0x45959, 0x43B3B,
+ 0x44A4A, 0x42C2C, 0x45959, 0x43B3B, 0x44A4A, 0x2C2C2C, 0x595959, 0x3B3B3B,
+ 0x4A4A4A, 0x2C2C2C, 0x595959, 0x3B3B3B, 0x4A4A4A, 0x444, 0x2C2C, 0x4455,
+ 0x3B3B3B3B, 0x4A4A4A4A, 0x3B3B3B3B, 0x4A4A4A4A, 0x4455, 0x2C2C2C2C, 0x59595959, 0x3B3B3B3B,
+ 0x4A4A4A4A, 0x455, 0x393939, 0x3B3B3B, 0x4A4A4A, 0x393939, 0x39394, 0x39394,
+ 0x392A39, 0x392A39, 0x393939, 0x444, 0x393939, 0x444, 0x3B3B3B, 0x4A4A4A,
+ 0x393955, 0x393955, 0x445, 0x445, 0x2C2C2C, 0x595959, 0x3B3B3B, 0x4A4A4A,
+ 0x2C2C, 0x5959, 0x3B3B, 0x4A4A, 0x2C2C, 0x5959, 0x3B3B, 0x4A4A,
+ 0x2C2C2C, 0x42C2C, 0x2C2C2C, 0x42C2C, 0x393939, 0x2C2C2C, 0x595959, 0x3B3B3B,
+ 0x4A4A4A, 0x2C2C2C, 0x595959, 0x3B3B3B, 0x4A4A4A, 0x2C2C, 0x5959, 0x3B3B,
+ 0x4A4A, 0x393939, 0x2A2A2A, 0x394, 0x394, 0x2A39, 0x2A39, 0x2A39,
+ 0x2A39, 0x2A39, 0x2A39, 0x2A39, 0x2A39, 0x39392A, 0x44439, 0x44439,
+ 0x4439, 0x39392A, 0x4439, 0x39392A, 0x4444, 0x2A4, 0x44, 0x439,
+ 0x42A, 0x42C2C, 0x45959, 0x43B3B, 0x44A4A, 0x42C2C, 0x45959, 0x43B3B,
+ 0x44A4A, 0x42C2C, 0x43B3B, 0x44A4A, 0x455, 0x43939, 0x42A2A, 0x43939,
+ 0x444, 0x43939, 0x42A2A, 0x43939, 0x42A2A, 0x444, 0x43939, 0x42A2A,
+ 0x42C2C2C, 0x4595959, 0x43B3B3B, 0x44A4A4A, 0x42C2C2C, 0x4595959, 0x43B3B3B, 0x44A4A4A,
+ 0x2C2C2C, 0x595959, 0x3B3B3B, 0x4A4A4A, 0x42C2C, 0x45959, 0x43B3B, 0x44A4A,
+ 0x42C2C, 0x45959, 0x43B3B, 0x44A4A, 0x42C2C, 0x45959, 0x43B3B, 0x44A4A,
+ 0x2C2C2C, 0x595959, 0x3B3B3B, 0x4A4A4A, 0x42C2C, 0x45959, 0x43B3B, 0x44A4A,
+ 0x2C2C2C, 0x595959, 0x3B3B3B, 0x4A4A4A, 0x42C2C, 0x45959, 0x43B3B, 0x44A4A,
+ 0x2C2C2C, 0x595959, 0x3B3B3B, 0x4A4A4A, 0x42C2C, 0x45959, 0x43B3B, 0x44A4A,
+ 0x2C2C2C, 0x595959, 0x3B3B3B, 0x4A4A4A, 0x42C2C, 0x45959, 0x43B3B, 0x44A4A,
+ 0x42E2C0, 0x42E590, 0x42E3B0, 0x42E4A0, 0x393939, 0x393939, 0x444, 0x393939,
+ 0x393939, 0x444, 0x444, 0x2C2C2C, 0x595959, 0x3B3B3B, 0x4A4A4A, 0x2C2C2C,
+ 0x595959, 0x3B3B3B, 0x4A4A4A, 0x2C2C2C, 0x595959, 0x3B3B3B, 0x4A4A4A, 0x2C2C2C,
+ 0x595959, 0x3B3B3B, 0x4A4A4A, 0x393939, 0x2A2A2A, 0x393939, 0x2A2A2A, 0x2A2A2A,
+ 0x2A2A2A, 0x2C2C2C, 0x595959, 0x3B3B3B, 0x4A4A4A, 0x42C2C, 0x45959, 0x43B3B,
+ 0x44A4A, 0x2C2C2C2C, 0x59595959, 0x3B3B3B3B, 0x4A4A4A4A, 0x440, 0x2C2C2C, 0x42C2C,
+ 0x1F1F, 0x44, 0x55, 0x888, 0x777, 0x777, 0x888, 0x777,
+ 0x777, 0x888, 0x777, 0x777, 0x888, 0x777, 0x777, 0x73F7,
+ 0x43F4, 0x43F4, 0x0, 0x44, 0x44, 0x44, 0x85, 0x74,
+ 0x47, 0x58, 0x44, 0x55, 0x88, 0x77, 0x77, 0x44,
+ 0x54, 0x3F0, 0x3F0, 0x77, 0x77, 0x87, 0x87, 0x87,
+ 0x87, 0x87, 0x87, 0x87, 0x87, 0x84, 0x84, 0x84,
+ 0x84, 0x84, 0x84, 0x85, 0x85, 0x85, 0x85, 0x84,
+ 0x84, 0x84, 0x84, 0x85, 0x85, 0x85, 0x85, 0x777,
+ 0x777, 0x888, 0x777, 0x777, 0x888, 0x777, 0x777, 0x888,
+ 0x777, 0x777, 0x888, 0x777, 0x777, 0x88, 0x77, 0x77,
+ 0x73, 0x73, 0x74, 0x74, 0x74, 0x74, 0x74, 0x74,
+ 0x74, 0x74, 0x75, 0x75, 0x75, 0x75, 0x75, 0x75,
+ 0x75, 0x75, 0x74, 0x74, 0x74, 0x74, 0x74, 0x74,
+ 0x74, 0x74, 0x75, 0x75, 0x75, 0x75, 0x75, 0x75,
+ 0x75, 0x75, 0x88, 0x77, 0x77, 0x88, 0x77, 0x77,
+ 0x8888, 0x7777, 0x7777, 0x8888, 0x7777, 0x7777, 0x8888, 0x7777,
+ 0x7777, 0x8888, 0x7777, 0x7777, 0x888, 0x777, 0x777, 0x888,
+ 0x777, 0x777, 0x37, 0x48, 0x48, 0x48, 0x48, 0x47,
+ 0x47, 0x47, 0x47, 0x2E1, 0x2E1, 0x2E1, 0x2E1, 0x51,
+ 0x51, 0x51, 0x7F1F, 0x7F0F, 0x7F3F, 0x7F1F, 0x7F0F, 0x7F3F,
+ 0x88, 0x77, 0x77, 0x58, 0x58, 0x58, 0x58, 0x57,
+ 0x57, 0x57, 0x57, 0x448, 0x444, 0x555, 0x444, 0x555,
+ 0x0, 0x0, 0x0, 0x444, 0x555, 0x444, 0x555, 0x88,
+ 0x77, 0x33, 0x44, 0x55, 0x7F3F, 0x444, 0x444, 0x888,
+ 0x777, 0x777, 0x888, 0x777, 0x777, 0x888, 0x777, 0x777,
+ 0x888, 0x777, 0x777, 0x444, 0x555, 0x444, 0x555, 0x44,
+ 0x54, 0x4444, 0x7F3F, 0x7F3F, 0x7F3F, 0x7F3F, 0x7F3F, 0x7F3F,
+ 0x7F3F, 0x7F3F, 0x7F3F, 0x88, 0x88, 0x77, 0x77, 0x88,
+ 0x77, 0x77, 0x88, 0x77, 0x77, 0x88, 0x77, 0x77,
+ 0x4, 0x4, 0x4, 0x4, 0x4, 0x4, 0x4, 0x4,
+ 0x4, 0x4, 0x4, 0x4, 0x4, 0x4, 0x4, 0x4,
+ 0x4, 0x4, 0x4, 0x4, 0x4, 0x4, 0x4, 0x4,
+ 0x4, 0x4, 0x4, 0x4, 0x4, 0x4, 0x4, 0x4,
+ 0x4, 0x4, 0x4, 0x4, 0x4, 0x4, 0x4, 0x4,
+ 0x4, 0x4, 0x4, 0x4, 0x4, 0x3F4, 0x444, 0x455,
+ 0x455, 0x88, 0x77, 0x77, 0x88, 0x77, 0x77, 0x4444,
+ 0x4444, 0x88, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77,
+ 0x77, 0x88, 0x77, 0x77, 0x88, 0x77, 0x77, 0x88,
+ 0x77, 0x77, 0x88, 0x77, 0x77, 0x4453, 0x4453, 0x4453,
+ 0x4454, 0x4454, 0x4454, 0x4455, 0x4455, 0x4455, 0x4453, 0x4453,
+ 0x4453, (1U<<31) | 891, (1U<<31) | 891, (1U<<31) | 891, (1U<<31) | 907, (1U<<31) | 907, (1U<<31) | 907, (1U<<31) | 924,
+ (1U<<31) | 924, (1U<<31) | 924, (1U<<31) | 891, (1U<<31) | 891, (1U<<31) | 891, (1U<<31) | 882, (1U<<31) | 882, (1U<<31) | 882,
+ (1U<<31) | 898, (1U<<31) | 898, (1U<<31) | 898, (1U<<31) | 882, (1U<<31) | 882, (1U<<31) | 882, 0x453, 0x453,
+ 0x453, 0x454, 0x454, 0x454, 0x455, 0x455, 0x455, 0x453,
+ 0x453, 0x453, (1U<<31) | 987, (1U<<31) | 987, (1U<<31) | 987, (1U<<31) | 1001, (1U<<31) | 1001, (1U<<31) | 1001,
+ (1U<<31) | 1016, (1U<<31) | 1016, (1U<<31) | 1016, (1U<<31) | 987, (1U<<31) | 987, (1U<<31) | 987, (1U<<31) | 979, (1U<<31) | 979,
+ (1U<<31) | 979, (1U<<31) | 993, (1U<<31) | 993, (1U<<31) | 993, (1U<<31) | 979, (1U<<31) | 979, (1U<<31) | 979, 0x44453,
+ 0x44453, 0x44453, 0x44454, 0x44454, 0x44454, 0x44455, 0x44455, 0x44455,
+ 0x44453, 0x44453, 0x44453, (1U<<31) | 816, (1U<<31) | 816, (1U<<31) | 816, (1U<<31) | 834, (1U<<31) | 834,
+ (1U<<31) | 834, (1U<<31) | 853, (1U<<31) | 853, (1U<<31) | 853, (1U<<31) | 816, (1U<<31) | 816, (1U<<31) | 816, (1U<<31) | 806,
+ (1U<<31) | 806, (1U<<31) | 806, (1U<<31) | 824, (1U<<31) | 824, (1U<<31) | 824, (1U<<31) | 806, (1U<<31) | 806, (1U<<31) | 806,
+ 0x4453, 0x4453, 0x4453, 0x4454, 0x4454, 0x4454, 0x4455, 0x4455,
+ 0x4455, 0x4453, 0x4453, 0x4453, (1U<<31) | 891, (1U<<31) | 891, (1U<<31) | 891, (1U<<31) | 907,
+ (1U<<31) | 907, (1U<<31) | 907, (1U<<31) | 924, (1U<<31) | 924, (1U<<31) | 924, (1U<<31) | 891, (1U<<31) | 891, (1U<<31) | 891,
+ (1U<<31) | 882, (1U<<31) | 882, (1U<<31) | 882, (1U<<31) | 898, (1U<<31) | 898, (1U<<31) | 898, (1U<<31) | 882, (1U<<31) | 882,
+ (1U<<31) | 882, 0x44453, 0x44453, 0x44453, 0x44454, 0x44454, 0x44454, 0x44455,
+ 0x44455, 0x44455, 0x44453, 0x44453, 0x44453, (1U<<31) | 816, (1U<<31) | 816, (1U<<31) | 816,
+ (1U<<31) | 834, (1U<<31) | 834, (1U<<31) | 834, (1U<<31) | 853, (1U<<31) | 853, (1U<<31) | 853, (1U<<31) | 816, (1U<<31) | 816,
+ (1U<<31) | 816, (1U<<31) | 806, (1U<<31) | 806, (1U<<31) | 806, (1U<<31) | 824, (1U<<31) | 824, (1U<<31) | 824, (1U<<31) | 806,
+ (1U<<31) | 806, (1U<<31) | 806, 0x54, 0x54, 0x54, 0x54, 0x54, 0x54,
+ 0x34450, 0x34450, 0x34450, 0x44450, 0x44450, 0x44450, 0x54450, 0x54450,
+ 0x54450, 0x34450, 0x34450, 0x34450, 0x334450, 0x334450, 0x334450, 0x444450,
+ 0x444450, 0x444450, 0x554450, 0x554450, 0x554450, 0x334450, 0x334450, 0x334450,
+ 0x33334450, 0x33334450, 0x33334450, 0x44444450, 0x44444450, 0x44444450, 0x33334450, 0x33334450,
+ 0x33334450, 0x3450, 0x3450, 0x3450, 0x4450, 0x4450, 0x4450, 0x5450,
+ 0x5450, 0x5450, 0x3450, 0x3450, 0x3450, 0x33450, 0x33450, 0x33450,
+ 0x44450, 0x44450, 0x44450, 0x55450, 0x55450, 0x55450, 0x33450, 0x33450,
+ 0x33450, 0x3333450, 0x3333450, 0x3333450, 0x4444450, 0x4444450, 0x4444450, 0x3333450,
+ 0x3333450, 0x3333450, 0x344450, 0x344450, 0x344450, 0x444450, 0x444450, 0x444450,
+ 0x544450, 0x544450, 0x544450, 0x344450, 0x344450, 0x344450, 0x3344450, 0x3344450,
+ 0x3344450, 0x4444450, 0x4444450, 0x4444450, 0x5544450, 0x5544450, 0x5544450, 0x3344450,
+ 0x3344450, 0x3344450, (1U<<31) | 419, (1U<<31) | 419, (1U<<31) | 419, (1U<<31) | 789, (1U<<31) | 789, (1U<<31) | 789,
+ (1U<<31) | 419, (1U<<31) | 419, (1U<<31) | 419, 0x34450, 0x34450, 0x34450, 0x44450, 0x44450,
+ 0x44450, 0x54450, 0x54450, 0x54450, 0x34450, 0x34450, 0x34450, 0x334450,
+ 0x334450, 0x334450, 0x444450, 0x444450, 0x444450, 0x554450, 0x554450, 0x554450,
+ 0x334450, 0x334450, 0x334450, 0x33334450, 0x33334450, 0x33334450, 0x44444450, 0x44444450,
+ 0x44444450, 0x33334450, 0x33334450, 0x33334450, 0x344450, 0x344450, 0x344450, 0x444450,
+ 0x444450, 0x444450, 0x544450, 0x544450, 0x544450, 0x344450, 0x344450, 0x344450,
+ 0x3344450, 0x3344450, 0x3344450, 0x4444450, 0x4444450, 0x4444450, 0x5544450, 0x5544450,
+ 0x5544450, 0x3344450, 0x3344450, 0x3344450, (1U<<31) | 419, (1U<<31) | 419, (1U<<31) | 419, (1U<<31) | 789,
+ (1U<<31) | 789, (1U<<31) | 789, (1U<<31) | 419, (1U<<31) | 419, (1U<<31) | 419, 0x34450, 0x44450, 0x34450,
+ 0x334450, 0x444450, 0x334450, 0x33334450, 0x44444450, 0x33334450, 0x3450, 0x4450,
+ 0x3450, 0x33450, 0x44450, 0x33450, 0x3333450, 0x4444450, 0x3333450, 0x344450,
+ 0x444450, 0x344450, 0x3344450, 0x4444450, 0x3344450, (1U<<31) | 419, (1U<<31) | 789, (1U<<31) | 419,
+ 0x34450, 0x44450, 0x34450, 0x334450, 0x444450, 0x334450, 0x33334450, 0x44444450,
+ 0x33334450, 0x344450, 0x444450, 0x344450, 0x3344450, 0x4444450, 0x3344450, (1U<<31) | 419,
+ (1U<<31) | 789, (1U<<31) | 419, 0x55, (1U<<31) | 1286, (1U<<31) | 1274, (1U<<31) | 1274, (1U<<31) | 1204, (1U<<31) | 1193,
+ (1U<<31) | 1193, (1U<<31) | 1130, (1U<<31) | 931, (1U<<31) | 1120, (1U<<31) | 914, (1U<<31) | 1120, (1U<<31) | 914, (1U<<31) | 1330,
+ (1U<<31) | 1319, (1U<<31) | 1319, (1U<<31) | 1244, (1U<<31) | 1234, (1U<<31) | 1234, (1U<<31) | 1166, (1U<<31) | 1022, (1U<<31) | 1157,
+ (1U<<31) | 1007, (1U<<31) | 1157, (1U<<31) | 1007, (1U<<31) | 1476, (1U<<31) | 1461, (1U<<31) | 1461, (1U<<31) | 1286, (1U<<31) | 1274,
+ (1U<<31) | 1274, (1U<<31) | 1204, (1U<<31) | 861, (1U<<31) | 1193, (1U<<31) | 842, (1U<<31) | 1193, (1U<<31) | 842, (1U<<31) | 1532,
+ (1U<<31) | 1518, (1U<<31) | 1518, (1U<<31) | 1330, (1U<<31) | 1319, (1U<<31) | 1319, (1U<<31) | 1244, (1U<<31) | 931, (1U<<31) | 1234,
+ (1U<<31) | 914, (1U<<31) | 1234, (1U<<31) | 914, (1U<<31) | 1592, (1U<<31) | 1575, (1U<<31) | 1575, (1U<<31) | 1424, (1U<<31) | 1412,
+ (1U<<31) | 1412, (1U<<31) | 1330, (1U<<31) | 861, (1U<<31) | 1319, (1U<<31) | 842, (1U<<31) | 1319, (1U<<31) | 842, (1U<<31) | 1376,
+ (1U<<31) | 1363, (1U<<31) | 1363, (1U<<31) | 1286, (1U<<31) | 1274, (1U<<31) | 1274, (1U<<31) | 1424, (1U<<31) | 1412, (1U<<31) | 1412,
+ (1U<<31) | 1330, (1U<<31) | 1319, (1U<<31) | 1319, (1U<<31) | 1298, (1U<<31) | 1263, (1U<<31) | 1263, (1U<<31) | 1215, (1U<<31) | 1183,
+ (1U<<31) | 1183, (1U<<31) | 1140, (1U<<31) | 941, (1U<<31) | 1111, (1U<<31) | 898, (1U<<31) | 1111, (1U<<31) | 898, (1U<<31) | 1341,
+ (1U<<31) | 1309, (1U<<31) | 1309, (1U<<31) | 1254, (1U<<31) | 1225, (1U<<31) | 1225, (1U<<31) | 1175, (1U<<31) | 1031, (1U<<31) | 1149,
+ (1U<<31) | 993, (1U<<31) | 1149, (1U<<31) | 993, (1U<<31) | 1491, (1U<<31) | 1447, (1U<<31) | 1447, (1U<<31) | 1298, (1U<<31) | 1263,
+ (1U<<31) | 1263, (1U<<31) | 1215, (1U<<31) | 872, (1U<<31) | 1183, (1U<<31) | 824, (1U<<31) | 1183, (1U<<31) | 824, (1U<<31) | 1546,
+ (1U<<31) | 1505, (1U<<31) | 1505, (1U<<31) | 1341, (1U<<31) | 1309, (1U<<31) | 1309, (1U<<31) | 1254, (1U<<31) | 941, (1U<<31) | 1225,
+ (1U<<31) | 898, (1U<<31) | 1225, (1U<<31) | 898, (1U<<31) | 1609, (1U<<31) | 1559, (1U<<31) | 1559, (1U<<31) | 1436, (1U<<31) | 1401,
+ (1U<<31) | 1401, (1U<<31) | 1341, (1U<<31) | 872, (1U<<31) | 1309, (1U<<31) | 824, (1U<<31) | 1309, (1U<<31) | 824, (1U<<31) | 1389,
+ (1U<<31) | 1351, (1U<<31) | 1351, (1U<<31) | 1298, (1U<<31) | 1263, (1U<<31) | 1263, (1U<<31) | 1436, (1U<<31) | 1401, (1U<<31) | 1401,
+ (1U<<31) | 1341, (1U<<31) | 1309, (1U<<31) | 1309, (1U<<31) | 449, 0x3F5, (1U<<31) | 1244, (1U<<31) | 1234, (1U<<31) | 1234,
+ (1U<<31) | 1244, (1U<<31) | 1234, (1U<<31) | 1234, (1U<<31) | 1244, (1U<<31) | 1234, (1U<<31) | 1234, (1U<<31) | 1244, (1U<<31) | 1234,
+ (1U<<31) | 1234, (1U<<31) | 1254, (1U<<31) | 1225, (1U<<31) | 1225, (1U<<31) | 1254, (1U<<31) | 1225, (1U<<31) | 1225, (1U<<31) | 1254,
+ (1U<<31) | 1225, (1U<<31) | 1225, (1U<<31) | 1254, (1U<<31) | 1225, (1U<<31) | 1225, 0x88, 0x77, 0x77,
+ 0x54, 0x54, 0x54, 0x54, 0x54, 0x54, 0x54, 0x54,
+ 0x48, 0x48, 0x48, 0x48, 0x47, 0x47, 0x47, 0x47,
+ 0x58, 0x58, 0x58, 0x58, 0x57, 0x57, 0x57, 0x57,
+ 0x17F0F, 0x40, 0x1F1F1F, 0x41F1F, 0x40, 0x0, 0x442E0, 0x442E0,
+ 0x442E0, 0x442E0, 0x2E2C, 0x2E3B, 0x2E4A, 0x2E2C, 0x2E2C, 0x2E4A,
+ 0x2E4A, 0x3B, 0x4A0, 0x2E2C0, 0x2E3B0, 0x2E4A0, 0x2E4A0, 0x2E4A0,
+ 0x4A4A4A, 0x2C2C2C, 0x3B3B3B, 0x4A4A4A, 0x2C2C2C, 0x3B3B3B, 0x4A4A4A, 0x2C2C2C,
+ 0x3B3B3B, 0x4A4A4A, 0x2C2C2C, 0x3B3B3B, 0x4A4A4A, 0x44A7A, 0x44A7A, 0x7A7A4A,
+ 0x7A7A44, 0x7A7A4A, 0x7A7A44, 0x2C2C2C, 0x2C2C44, 0x3B3B3B, 0x3B3B44, 0x4A4A4A,
+ 0x4A4A44, 0x7A7A4A, 0x7A7A44, 0x7A7A4A, 0x7A7A44, 0x2C2C2C, 0x2C2C44, 0x3B3B3B,
+ 0x3B3B44, 0x4A4A4A, 0x4A4A44, 0x2C2C2C, 0x2C2C44, 0x3B3B3B, 0x3B3B44, 0x4A4A4A,
+ 0x4A4A44, 0x47A4A, 0x47A4A, 0x7A7A, 0x7A7A, 0x7A7A7A7A, 0x7A7A7A, 0x2C2C2C,
+ 0x3B3B3B, 0x4A4A4A, 0x2C2C2C, 0x3B3B3B, 0x4A4A4A, 0x3B3B3B3B, 0x3B3B3B3B, 0x7A7A7A,
+ 0x2C2C2C, 0x3B3B3B, 0x4A4A4A, 0x2C2C2C, 0x3B3B3B, 0x4A4A4A, 0x3B3B3B3B, 0x4A2C2C4A,
+ 0x4A3B3B4A, 0x4A3B3B4A, 0x4A2C2C4A, 0x4A3B3B4A, 0x4A3B3B4A, 0x2C2C3B, 0x3B3B4A, 0x2C2C3B,
+ 0x3B3B4A, 0x2C2C3B, 0x3B3B4A, 0x2C2C3B, 0x3B3B4A, 0x7A7A7A7A, 0x2C4A4A4A, 0x4A4A3B,
+ 0x3B3B2C, 0x3B3B2C, 0x4A4A2C, 0x4A4A3B, 0x3B3B2C, 0x4A4A3B, 0x7A7A, 0x7A7A,
+ 0x7A7A, 0x7A7A, 0x7A7A, 0x2C2C2C, 0x3B3B3B, 0x4A4A4A, 0x7A7A, 0x4A4A4A4A,
+ 0x4A4A4A, 0x2C2C2C, 0x3B3B3B, 0x4A4A4A, 0x4A4A4A, 0x4A4A4A, 0x2C2C2C, 0x3B3B3B,
+ 0x4A4A4A, 0x2C2C2C, 0x3B3B3B, 0x4A4A4A, 0x4A4A4A, 0x4A4A4A, 0x2C2C2C, 0x3B3B3B,
+ 0x4A4A4A, 0x2C2C2C, 0x3B3B3B, 0x4A4A4A, 0x4A4A4A, 0x4A2C4A, 0x4A3B4A, 0x4A2C4A,
+ 0x4A4A4A, 0x3B4A, 0x2C3B, 0x3B4A, 0x3B4A, 0x2C3B, 0x3B4A, 0x2E0,
+ 0x2E0, 0x2E0, 0x2E0, 0x2E0, 0x2E0, 0x2E0, 0x2E0, 0x1,
+ 0xF0, 0x0, 0x4442E0, (1U<<31) | 579, 0x40, 0x4, 0x5, 0x4,
+ 0x4, 0x4, 0x4, 0x4, 0x4, 0x4, 0x4, 0x4,
+ 0x4, 0x4, 0x4, 0x4, 0x4, 0x4, 0x4, 0x4,
+ 0x4, 0x4, 0x4, 0x4, 0x4, 0x4, 0x4, 0x4,
+ 0x4, 0x4, 0x4, 0x4, 0x4, 0x4, 0x4, 0x4,
+ 0x4, 0x4, 0x4, 0x4, 0x4, 0x4, 0x4, 0x4,
+ 0x4, 0x4, 0x4, 0x4, 0x4, (1U<<31) | 1809, 0x5, 0x42E,
+ 0x1F1F, 0x1F1F, (1U<<31) | 0, 0x2E4, 0x42E0, 0x42E4, 0x1F1F, (1U<<31) | 0,
+ 0x1F1F, (1U<<31) | 0, 0x2EE2E0, 0x2EE0, 0x2E0, 0x2E, 0x0, 0x1F1F,
+ (1U<<31) | 0, (1U<<31) | 0, (1U<<31) | 0, 0x2E2E0, 0x2E0, 0x42E2E2E0, 0x2E0, (1U<<31) | 9,
+ (1U<<31) | 1805, (1U<<31) | 1802, (1U<<31) | 1805, (1U<<31) | 1805, (1U<<31) | 1805, (1U<<31) | 1805, (1U<<31) | 1805, (1U<<31) | 1805,
+ (1U<<31) | 1805, (1U<<31) | 1805, (1U<<31) | 1802, (1U<<31) | 1805, (1U<<31) | 1805, (1U<<31) | 1805, (1U<<31) | 1802, (1U<<31) | 1805,
+ (1U<<31) | 1805, (1U<<31) | 1802, (1U<<31) | 1805, (1U<<31) | 1802, (1U<<31) | 1805, (1U<<31) | 1805, (1U<<31) | 1802, (1U<<31) | 1802,
+ 0x595959, 0x595959, 0x595959, 0x595959, 0x5959, 0x25959, (1U<<31) | 49, (1U<<31) | 85,
+ (1U<<31) | 233, (1U<<31) | 267, (1U<<31) | 165, (1U<<31) | 211, (1U<<31) | 97, (1U<<31) | 121, (1U<<31) | 61, (1U<<31) | 73,
+ (1U<<31) | 245, (1U<<31) | 279, (1U<<31) | 177, (1U<<31) | 189, (1U<<31) | 109, (1U<<31) | 133, 0x4A2E4A, 0x4B2E4B,
+ 0x592E59, 0x5A2E5A, 0x4A4A2E0, 0x4B4B2E0, 0x59592E0, 0x5A5A2E0, 0x2E5A, 0x42D2D3C,
+ 0x2D2D, 0x4B4B, 0x3C3C, 0x4B4B3C, 0x3C3C2D, 0x4B4B3C, 0x3C3C2D, 0x2D2D2D,
+ 0x3C3C3C, 0x2D2D2D, 0x3C3C3C, 0x2D2D2D, 0x3C3C3C, 0x44A4A4A, 0x44B4B4B, 0x2D2D2D2D,
+ 0x43C3C3C, 0x2C2C, 0x2C2D, 0x4A4A, 0x4A4B, 0x5959, 0x595A, 0x3B3B,
+ 0x3B3C, 0x4B4B4B, 0x7B7B7B, 0x4B4B4B, 0x3C3C3C, 0x3C3C3C, 0x4B4B4B, 0x3C3C3C,
+ 0x3C3C3C, 0x2D2D3C, 0x3C3C4B, 0x2D2D2D, 0x4B4B4B, 0x3C3C3C, 0x2D2D2D, 0x4B4B4B,
+ 0x3C3C3C, 0x2D2D2D, 0x4B4B4B, 0x3C3C3C, 0x2D2D2D, 0x4B4B4B, 0x3C3C3C, 0x2D4,
+ 0x2C4B, 0x2C5A, 0x2C3C, 0x4A5A, 0x3B4B, 0x3B5A, 0x2C4B, 0x2C5A,
+ 0x2C3C, 0x4A5A, 0x3B4B, 0x3B5A, 0x4B4B5A, 0x3C3C3C, 0x3C3C3C, 0x3C3C3C,
+ 0x4B4B5A, 0x2D2D5A, 0x2D2D2D, 0x2D2D2D, 0x4B4B4B, 0x3C3C3C, 0x4A4B4B, 0x45A5A,
+ 0x45A5A, 0x595A5A, 0x3B3C3C, 0x44B4B, 0x45A5A, 0x43C3C, 0x4A4A4A, 0x4B4B4B,
+ 0x595959, 0x5A5A5A, 0x4A4B4B, 0x3B3C3C, 0x44B4B, 0x43C3C, 0x4A4A4A, 0x4B4B4B,
+ 0x4A4B4B, 0x45A5A, 0x45A5A, 0x595A5A, 0x3B3C3C, 0x44B4B, 0x45A5A, 0x43C3C,
+ 0x4A4A4A, 0x4B4B4B, 0x595959, 0x5A5A5A, 0x2D2D2D, 0x3C3C3C, 0x2D2D2D, 0x3C3C3C,
+ 0x898A, 0x7A7A, 0x7A7B, 0x2E5A, 0x25A59, 0x2595A5A, 0x25A5A5A, 0x894,
+ 0x895, 0x7A4, 0x7A5, 0x894, 0x895, 0x7A4, 0x7A5, 0x48989,
+ 0x47A7A, 0x58989, 0x57A7A, (1U<<31) | 471, (1U<<31) | 652, (1U<<31) | 460, (1U<<31) | 663, (1U<<31) | 515,
+ (1U<<31) | 482, (1U<<31) | 493, (1U<<31) | 504, 0x442E4B20, 0x442E4C30, 0x442E5B20, 0x442E5B20, 0x333,
+ 0x333, 0x33, 0x333, 0x334, 0x334, 0x333, 0x333, 0x333,
+ 0x34C4C4C, 0x28B8B8B, 0x37C7C7C, 0x25B5B5B, 0x4248B8B2, 0x4347C7C3, 0x34C4C4C, 0x25B5B5B,
+ 0x28B4B8B, 0x437C4C7C, 0x424B8B4B, 0x427B8B7B, 0x424B8B4B, 0x434C7C4C, 0x434C7C4C, 0x424B8B4B,
+ 0x424B8B4B, 0x434C7C4C, 0x434C7C4C, 0x28B4B8B, 0x437C4C7C, 0x34C2E4C, 0x28B2E8B, 0x37C2E7C,
+ 0x25B2E5B, 0x34C4C4C, 0x25B5B5B, (1U<<31) | 558, (1U<<31) | 684, (1U<<31) | 558, (1U<<31) | 684, 0x34C4C4C,
+ 0x25B5B5B, (1U<<31) | 429, (1U<<31) | 155, 0x34C44C, 0x25B55B, 0x25B55B, 0x34C4C3, 0x25B5B2,
+ (1U<<31) | 429, (1U<<31) | 155, (1U<<31) | 429, (1U<<31) | 155, (1U<<31) | 429, (1U<<31) | 155, (1U<<31) | 429, (1U<<31) | 155,
+ (1U<<31) | 145, (1U<<31) | 145, 0x34C4C3, 0x25B5B2, (1U<<31) | 548, (1U<<31) | 674, 0x34C2E0, 0x28B2E0,
+ 0x37C2E0, 0x25B2E0, 0x437C3C7C, 0x33C47C3C, (1U<<31) | 429, (1U<<31) | 301, (1U<<31) | 439, (1U<<31) | 155,
+ 0x2E5B, 0x4A4C, 0x44C, 0x595B, 0x55B, 0x2C4C, 0x2C5B, 0x4B5B,
+ 0x3C4C, 0x3B5B, 0x45B5B, 0x45B5B, 0x45B5B, 0x45B5B, 0x28B8B8B, 0x37C7C7C,
+ (1U<<31) | 257, (1U<<31) | 201, 0x428B8B8B, 0x437C7C7C, (1U<<31) | 537, (1U<<31) | 526, 0x4898989, 0x47A7A7A,
+ 0x28B8B8B, 0x37C7C7C, (1U<<31) | 257, (1U<<31) | 201, 0x428B8B8B, 0x437C7C7C, (1U<<31) | 537, (1U<<31) | 526,
+ (1U<<31) | 1083, (1U<<31) | 960, (1U<<31) | 1039, (1U<<31) | 1073, (1U<<31) | 1093, (1U<<31) | 950, (1U<<31) | 1049, (1U<<31) | 1063,
+ 0x442E4B20, 0x442E4C30, 0x442E5B20, 0x442E5B20, 0x8B8B, 0x7C7C, 0x898989, 0x7A7A7A,
+ 0x2E8B, 0x898B, 0x2E7C, 0x7A7C, 0x8A8A8A, 0x7B7B7B, 0x48A8A8A, 0x47B7B7B,
+ (1U<<31) | 1769, 0x7B7B7B7B, 0x28A8A8A, 0x27B7B7B, 0x8A7A, 0x8A4A, 0x7A8A, 0x7B4B,
+ 0x4A8A, 0x4B7B, 0x8A4A, 0x7B4B, 0x47B7B7B, 0x8A8A8A, 0x7B7B7B, 0x8A8A8A,
+ 0x7B7B7B, 0x2E2D, 0x892E89, 0x8A2E8A, 0x7A2E7A, 0x7B2E7B, 0x89892E0, 0x8A8A2E0,
+ 0x7A7A2E0, 0x7B7B2E0, 0x8A8A8A, 0x7B7B7B, 0x8A8A8A, 0x7B7B7B, 0x8A4, 0x7B4,
+ 0x5A5A4, 0x5A5A4, 0x5A5A4, 0x7B7B, 0x48A8A, 0x47B7B, 0x7B7B, 0x8A8A,
+ 0x7B7B, 0x2D2E0, 0x8A2E0, 0x7B2E0, 0x2E8A, 0x2E7B, 0x28A89, 0x27B7A,
+ 0x24B4A, 0x2898A8A, 0x27A7B7B, 0x24A4B4B, 0x28A8A8A, 0x27B7B7B, 0x24B4B4B, 0x598989,
+ 0x5A8A8A, 0x4A7A7A, 0x4B7B7B, 0x89894, 0x8A8A4, 0x7A7A4, 0x7B7B4, 0x89894,
+ 0x8A8A4, 0x7A7A4, 0x7B7B4, 0x89894, 0x8A8A4, 0x7A7A4, 0x7B7B4, 0x0,
+ 0x0, 0x444, 0x555, 0x444, 0x555, 0x444, 0x555, 0x444,
+ 0x555, (1U<<31) | 1756, (1U<<31) | 1769, (1U<<31) | 1778, 0x7A7A7A7A, 0x7B7B7B7B, 0x7C7C7C7C, (1U<<31) | 1756,
+ 0x7A7A7A7A, (1U<<31) | 1756, (1U<<31) | 1769, (1U<<31) | 1778, 0x7A7A7A7A, 0x7B7B7B7B, 0x7C7C7C7C, (1U<<31) | 1756,
+ (1U<<31) | 1769, (1U<<31) | 1778, 0x7A7A7A7A, 0x7B7B7B7B, 0x7C7C7C7C, (1U<<31) | 1756, 0x7A7A7A7A, (1U<<31) | 1756,
+ (1U<<31) | 1769, (1U<<31) | 1778, 0x7A7A7A7A, 0x7B7B7B7B, 0x7C7C7C7C, (1U<<31) | 1756, (1U<<31) | 1769, (1U<<31) | 1778,
+ 0x7A7A7A7A, 0x7B7B7B7B, 0x7C7C7C7C, (1U<<31) | 1756, 0x7A7A7A7A, (1U<<31) | 1756, (1U<<31) | 1769, (1U<<31) | 1778,
+ 0x7A7A7A7A, 0x7B7B7B7B, 0x7C7C7C7C, (1U<<31) | 1756, 0x7A7A7A7A, 0x20, 0x0, 0x0,
+ (1U<<31) | 345, (1U<<31) | 1800, (1U<<31) | 1805, (1U<<31) | 1805, (1U<<31) | 1805, (1U<<31) | 1805, (1U<<31) | 1805, (1U<<31) | 1805,
+ (1U<<31) | 1805, (1U<<31) | 1805, (1U<<31) | 1805, (1U<<31) | 1805, (1U<<31) | 1805, (1U<<31) | 390, (1U<<31) | 1805, (1U<<31) | 1805,
+ (1U<<31) | 1805, (1U<<31) | 1805, (1U<<31) | 1805, (1U<<31) | 1805, (1U<<31) | 1805, (1U<<31) | 1805, (1U<<31) | 1805, (1U<<31) | 1805,
+ (1U<<31) | 1103, (1U<<31) | 970, (1U<<31) | 1805, (1U<<31) | 1805, (1U<<31) | 1805, (1U<<31) | 1805, (1U<<31) | 1805, (1U<<31) | 1787,
+ (1U<<31) | 1805, (1U<<31) | 1805, (1U<<31) | 1805, (1U<<31) | 1805, (1U<<31) | 1805, (1U<<31) | 1805, (1U<<31) | 1805, (1U<<31) | 1805,
+ (1U<<31) | 1805, (1U<<31) | 1107, (1U<<31) | 1107, (1U<<31) | 1107, (1U<<31) | 1805, (1U<<31) | 1805, (1U<<31) | 1107, (1U<<31) | 1107,
+ (1U<<31) | 1805, (1U<<31) | 1805, (1U<<31) | 1805, (1U<<31) | 1107, (1U<<31) | 1107, (1U<<31) | 1107, (1U<<31) | 1805, (1U<<31) | 1805,
+ (1U<<31) | 1805, (1U<<31) | 1805, (1U<<31) | 1805, (1U<<31) | 1805, (1U<<31) | 1805, (1U<<31) | 1805, (1U<<31) | 1805, (1U<<31) | 1805,
+ (1U<<31) | 1805, (1U<<31) | 1805, (1U<<31) | 1805, (1U<<31) | 1805, (1U<<31) | 1805, 0x2595959, 0x4, 0x5,
+ 0x4, 0x5, 0x45, (1U<<31) | 695, (1U<<31) | 975, (1U<<31) | 1059, (1U<<31) | 695, (1U<<31) | 975,
+ (1U<<31) | 1059, 0x5, 0x2E5, 0x4A4A4A, 0x4A4A4A, 0x4A4A4A, 0x24A4A4A, 0x4A4A4A,
+ 0x4A4A4A, 0x4A4A4A4A, 0x898989, 0x2E0, 0x2898989, 0x2898989, 0x89894, 0x89894,
+ 0x89894, 0x89894, 0x89894, 0x89894, 0x4A89, 0x4A7A, 0x894A, 0x897A,
+ 0x7A4A, 0x7A89, 0x894, 0x895, 0x897A7A, 0x48989, 0x58989, 0x7A8989,
+ 0x894A, 0x7A4A, 0x894, 0x895, 0x898989, 0x0, 0x2E2C2C0, 0x898989,
+ 0x898989, 0x0, 0x898989, 0x898989, 0x894, 0x898989, 0x4A4A3B, 0x3B3B2C,
+ 0x3B3B2C, 0x2C2C2C, 0x3B3B3B, 0x2C2C2C, 0x3B3B3B, 0x0, 0x2C2C2C, 0x3B3B3B,
+ 0x3B3B4A, 0x3B3B3B, 0x2C2C2C, 0x3B3B3B, 0x2C2C2C, 0x2C4, 0x3B3B3B, 0x3B3B3B,
+ 0x4A4A59, 0x2C2C59, 0x24A4A, 0x23B3B, 0x23B3B, 0x4A4A4A, 0x45959, 0x45959,
+ 0x595959, 0x3B3B3B, 0x44A4A, 0x45959, 0x43B3B, 0x4A4A4A, 0x3B3B3B, 0x44A4A,
+ 0x43B3B, 0x4A4A4A, 0x45959, 0x45959, 0x595959, 0x3B3B3B, 0x44A4A, 0x45959,
+ 0x43B3B, 0x2C2C2C, 0x3B3B3B, 0x2C2C2C, 0x3B3B3B, 0x8989, 0x8989, 0x4A2E0,
+ 0x2C2E0, 0x892E0, 0x898989, 0x89894, 0x89894, 0x89894, 0x89894, 0x89894,
+ 0x89894, 0x898989, 0x7A7A7A, 0x898989, 0x7A7A7A, 0x898989, 0x7A7A7A, 0x2E2C,
+ 0x442E0, 0x440, 0x4898989, 0x47A7A7A, (1U<<31) | 1756, 0x7A7A7A7A, 0x4898989, 0x47A7A7A,
+ 0x47A4, 0x47A7A7A, 0x2E59, 0x42C2C3B, 0x4A4A3B, 0x2C2C2C2C, 0x43B3B3B, 0x42C4,
+ 0x44A4, 0x4595, 0x3B3B, 0x2C2C2C, 0x4A4A4A, 0x4A4A4A, 0x3B3B3B, 0x2C2C2C,
+ 0x4A4A4A, 0x4A4A4A, 0x3B3B3B, 0x2C4A, 0x2C59, 0x2C3B, 0x4A59, 0x3B4A,
+ 0x3B59, 0x2C4A, 0x2C59, 0x2C3B, 0x4A59, 0x3B4A, 0x3B59, 0x4A4A59,
+ 0x59594, 0x59594, 0x59594, 0x48989, 0x47A7A, 0x4898989, 0x47A7A7A, 0x344,
+ 0x444, 0x244, 0x555, 0x242C42C4, 0x242C42C4, 0x242C42C4, 0x242C42C4, 0x242C42C4,
+ 0x242C42C4, (1U<<31) | 39, 0x22C2C4, 0x22C2C4, 0x22C2C4, 0x22C2C4, 0x22C2C4, 0x22C2C4,
+ 0x22C2C2C, 0x2C5959, 0x225959, 0x595959, 0x22595959, 0x892E0, 0x7A2E0, 0x7A7A7A,
+ 0x27A7A7A, 0x27A7A7A, 0x7A7A4, 0x7A7A4, 0x7A7A4, 0x7A7A4, 0x7A7A4, 0x7A7A4,
+ (1U<<31) | 1765, (1U<<31) | 1796, (1U<<31) | 1790, (1U<<31) | 1625, 0x47A7A, 0x57A7A, 0x7A4, 0x7A5,
+ (1U<<31) | 1765, (1U<<31) | 1625, 0x7A4, 0x7A5, 0x7A7A7A, 0x2E0, 0x7A7A7A, 0x7A7A7A,
+ 0x7A7A7A, 0x7A7A7A, 0x7A4, 0x7A7A7A, (1U<<31) | 391, 0x7A7A, 0x7A7A, 0x7A7A,
+ 0x7A7A, 0x0, 0x7A7A, 0x7A7A, 0x2E0, 0x7A2E0, 0x7A7A7A, 0x7A7A4,
+ 0x7A7A4, 0x7A7A4, 0x7A7A4, 0x7A7A4, 0x7A7A4, (1U<<31) | 1802, 0x2C2C, (1U<<31) | 1802,
+ 0x4A4A, (1U<<31) | 1802, 0x3B3B, (1U<<31) | 1805, 0x4A4A4A, (1U<<31) | 1805, 0x3B3B3B, (1U<<31) | 1805,
+ 0x3B3B3B, (1U<<31) | 1805, 0x4A4A4A, (1U<<31) | 1805, 0x3B3B3B, (1U<<31) | 1805, 0x3B3B3B, (1U<<31) | 1805,
+ 0x2C2C3B, (1U<<31) | 1805, 0x3B3B3B, (1U<<31) | 1805, 0x2C2C2C, (1U<<31) | 1805, 0x2C2C2C, (1U<<31) | 1805,
+ 0x4A4A4A, (1U<<31) | 1805, 0x3B3B3B, 0x444, 0x555, 0x3B7A, 0x3B7B, 0x47A3B,
+ 0x47B3B, 0x40, 0x50, 0x40, 0x50, 0x20, 0x4, 0x0,
+ 0x8989, 0x8A8A, 0x7A7A, 0x7B7B, 0x8989, 0x7A7A, 0x59595959, 0x5A5A5A5A,
+ 0x22C2C2C, 0x24A4A4A, 0x2595959, 0x22C2C2C, 0x24A4A4A, 0x2595959, 0x23B3B3B, 0x23B3B3B,
+ (1U<<31) | 257, (1U<<31) | 291, (1U<<31) | 201, (1U<<31) | 223, 0x2C4A, 0x2C59, 0x2C3B, 0x4A59,
+ 0x2C4A, 0x2C59, 0x2C3B, 0x4A59, 0x3B4A, 0x3B59, 0x3B4A, 0x3B59,
+ 0x2C3B, 0x4A59, 0x3B4A, 0x4A4A4A4A, 0x594A4A59, 0x594A4A59, 0x4A4A4A4A, 0x594A4A59,
+ 0x594A4A59, 0x4A3B3B4A, 0x3B3B3B3B, 0x4A3B3B4A, 0x3B3B3B3B, 0x4A3B3B4A, 0x4A3B3B4A, 0x2C2C2C2C,
+ 0x2C2C2C, 0x22C2C, 0x4A4A4A, 0x24A4A, 0x595959, 0x25959, 0x3B3B3B, 0x23B3B,
+ 0x2C2C2C, 0x4A4A4A, 0x595959, 0x3B3B3B, 0x2C2C2C, 0x4A4A4A, 0x595959, 0x3B3B3B,
+ 0x4, 0x44, 0x2E2E, 0x43F0, 0x0, 0x3F0, 0x40, 0x4444,
+ (1U<<31) | 799, 0x3F0, 0x3F0, 0x3F4, 0x3F0, 0x4, 0x4, 0x4,
+ 0x44, 0x43F, 0x7F3F, 0x3F4, 0x3F4, 0x3F4, 0x2E3F0, 0x2E3F0,
+ 0x2E3F0, 0x2E3F0, 0x2E3F0, 0x43F4, 0x3F4, 0x3F0, 0x3F0, 0x43F0,
+ 0x43F0, 0x43F4, 0x43F0, 0x3F4, 0x43F0, 0x7F3F0, 0x43F0, 0x2E3F0,
+ 0x440, 0x43F0, 0x43F0, 0x7F3F0, 0x40, 0x43F0, 0x2E3F0, 0x444,
+ 0x0, 0x3F0, 0x3F4, 0x3F4, 0x2E, 0x444, 0
+};
+
+static const unsigned char IIT_LongEncodingTable[] = {
+ /* 0 */ 19, 15, 0, 1, 15, 0, 15, 0, 0,
+ /* 9 */ 0, 17, 15, 0, 0,
+ /* 14 */ 15, 0, 23, 0, 0,
+ /* 19 */ 19, 15, 1, 1, 15, 1, 15, 1, 1, 0,
+ /* 29 */ 0, 15, 3, 15, 7, 15, 8, 4, 1, 0,
+ /* 39 */ 12, 2, 12, 2, 4, 12, 2, 4, 2, 0,
+ /* 49 */ 10, 4, 10, 4, 14, 2, 10, 4, 10, 4, 2, 0,
+ /* 61 */ 10, 4, 10, 4, 14, 2, 9, 5, 10, 4, 2, 0,
+ /* 73 */ 10, 4, 10, 4, 14, 2, 10, 5, 10, 4, 2, 0,
+ /* 85 */ 11, 4, 11, 4, 14, 2, 11, 4, 11, 4, 2, 0,
+ /* 97 */ 9, 5, 9, 5, 14, 2, 10, 4, 9, 5, 2, 0,
+ /* 109 */ 9, 5, 9, 5, 14, 2, 9, 5, 9, 5, 2, 0,
+ /* 121 */ 10, 5, 10, 5, 14, 2, 10, 4, 10, 5, 2, 0,
+ /* 133 */ 10, 5, 10, 5, 14, 2, 10, 5, 10, 5, 2, 0,
+ /* 145 */ 11, 5, 12, 4, 12, 4, 11, 5, 2, 0,
+ /* 155 */ 11, 5, 11, 5, 11, 5, 11, 5, 2, 0,
+ /* 165 */ 10, 7, 10, 7, 14, 2, 10, 4, 10, 7, 2, 0,
+ /* 177 */ 10, 7, 10, 7, 14, 2, 9, 5, 10, 7, 2, 0,
+ /* 189 */ 10, 7, 10, 7, 14, 2, 10, 5, 10, 7, 2, 0,
+ /* 201 */ 10, 7, 10, 7, 10, 7, 10, 7, 2, 0,
+ /* 211 */ 11, 7, 11, 7, 14, 2, 11, 4, 11, 7, 2, 0,
+ /* 223 */ 11, 7, 11, 7, 11, 7, 11, 7, 2, 0,
+ /* 233 */ 9, 8, 9, 8, 14, 2, 10, 4, 9, 8, 2, 0,
+ /* 245 */ 9, 8, 9, 8, 14, 2, 9, 5, 9, 8, 2, 0,
+ /* 257 */ 9, 8, 9, 8, 9, 8, 9, 8, 2, 0,
+ /* 267 */ 10, 8, 10, 8, 14, 2, 10, 4, 10, 8, 2, 0,
+ /* 279 */ 10, 8, 10, 8, 14, 2, 10, 5, 10, 8, 2, 0,
+ /* 291 */ 10, 8, 10, 8, 10, 8, 10, 8, 2, 0,
+ /* 301 */ 11, 8, 11, 5, 11, 8, 11, 8, 2, 0,
+ /* 311 */ 11, 2, 11, 2, 11, 2, 11, 2, 11, 2, 11, 2, 11, 2, 0,
+ /* 326 */ 19, 4, 4, 14, 2, 0,
+ /* 332 */ 19, 5, 5, 14, 2, 0,
+ /* 338 */ 0, 14, 18, 5, 14, 2, 0,
+ /* 345 */ 0, 16, 16, 14, 2, 0,
+ /* 351 */ 15, 2, 15, 2, 12, 2, 12, 2, 12, 2, 12, 2, 15, 2, 0,
+ /* 366 */ 15, 2, 15, 2, 12, 2, 12, 2, 12, 2, 15, 2, 0,
+ /* 379 */ 15, 2, 15, 2, 12, 2, 12, 2, 15, 2, 0,
+ /* 390 */ 16, 16, 16, 2, 0,
+ /* 395 */ 15, 2, 23, 2, 0,
+ /* 400 */ 15, 2, 23, 2, 23, 2, 0,
+ /* 407 */ 15, 2, 24, 2, 0,
+ /* 412 */ 15, 2, 24, 2, 24, 2, 0,
+ /* 419 */ 0, 5, 4, 4, 4, 3, 3, 3, 3, 0,
+ /* 429 */ 12, 4, 12, 4, 12, 4, 12, 4, 3, 0,
+ /* 439 */ 12, 7, 12, 4, 12, 7, 12, 7, 3, 0,
+ /* 449 */ 5, 17, 15, 3, 0,
+ /* 454 */ 15, 0, 23, 0, 4, 0,
+ /* 460 */ 11, 5, 11, 5, 14, 2, 11, 4, 2, 4, 0,
+ /* 471 */ 11, 8, 11, 8, 14, 2, 11, 4, 2, 4, 0,
+ /* 482 */ 11, 4, 11, 4, 14, 2, 11, 5, 2, 4, 0,
+ /* 493 */ 11, 5, 11, 5, 14, 2, 11, 5, 2, 4, 0,
+ /* 504 */ 11, 7, 11, 7, 14, 2, 11, 5, 2, 4, 0,
+ /* 515 */ 11, 8, 11, 8, 14, 2, 11, 5, 2, 4, 0,
+ /* 526 */ 10, 7, 10, 7, 10, 7, 10, 7, 2, 4, 0,
+ /* 537 */ 9, 8, 9, 8, 9, 8, 9, 8, 2, 4, 0,
+ /* 548 */ 11, 8, 11, 8, 4, 11, 8, 2, 4, 0,
+ /* 558 */ 11, 8, 11, 8, 11, 8, 11, 8, 2, 4, 0,
+ /* 569 */ 15, 0, 15, 0, 14, 2, 14, 2, 4, 0,
+ /* 579 */ 15, 3, 15, 3, 14, 2, 14, 2, 4, 0,
+ /* 589 */ 21, 15, 2, 15, 2, 15, 2, 15, 2, 14, 2, 4, 0,
+ /* 602 */ 20, 15, 2, 15, 2, 15, 2, 14, 2, 4, 0,
+ /* 613 */ 19, 15, 2, 15, 2, 14, 2, 4, 0,
+ /* 622 */ 0, 14, 2, 15, 2, 15, 2, 15, 2, 4, 0,
+ /* 633 */ 0, 14, 2, 15, 2, 15, 2, 15, 2, 15, 2, 4, 0,
+ /* 646 */ 15, 2, 24, 2, 4, 0,
+ /* 652 */ 12, 4, 12, 4, 14, 2, 12, 4, 3, 4, 0,
+ /* 663 */ 12, 7, 12, 7, 14, 2, 12, 4, 3, 4, 0,
+ /* 674 */ 12, 7, 12, 7, 4, 12, 7, 3, 4, 0,
+ /* 684 */ 12, 7, 12, 7, 12, 7, 12, 7, 3, 4, 0,
+ /* 695 */ 19, 3, 4, 0,
+ /* 699 */ 0, 14, 2, 15, 2, 15, 2, 4, 4, 0,
+ /* 709 */ 19, 15, 2, 15, 2, 14, 2, 15, 2, 15, 2, 4, 4, 0,
+ /* 723 */ 0, 14, 2, 15, 2, 15, 2, 15, 2, 4, 4, 0,
+ /* 735 */ 20, 15, 2, 15, 2, 15, 2, 14, 2, 15, 2, 15, 2, 15, 2, 4, 4, 0,
+ /* 753 */ 0, 14, 2, 15, 2, 15, 2, 15, 2, 15, 2, 4, 4, 0,
+ /* 767 */ 21, 15, 2, 15, 2, 15, 2, 15, 2, 14, 2, 15, 2, 15, 2, 15, 2, 15, 2, 4, 4, 0,
+ /* 789 */ 0, 5, 4, 4, 4, 4, 4, 4, 4, 0,
+ /* 799 */ 19, 4, 4, 4, 4, 4, 0,
+ /* 806 */ 21, 3, 3, 3, 3, 5, 4, 4, 4, 0,
+ /* 816 */ 19, 3, 3, 5, 4, 4, 4, 0,
+ /* 824 */ 21, 4, 4, 4, 4, 5, 4, 4, 4, 0,
+ /* 834 */ 19, 4, 4, 5, 4, 4, 4, 0,
+ /* 842 */ 21, 4, 4, 4, 4, 5, 5, 4, 4, 4, 0,
+ /* 853 */ 19, 5, 5, 5, 4, 4, 4, 0,
+ /* 861 */ 21, 7, 7, 7, 7, 5, 5, 4, 4, 4, 0,
+ /* 872 */ 21, 7, 7, 7, 7, 5, 4, 4, 4, 0,
+ /* 882 */ 21, 3, 3, 3, 3, 5, 4, 4, 0,
+ /* 891 */ 19, 3, 3, 5, 4, 4, 0,
+ /* 898 */ 21, 4, 4, 4, 4, 5, 4, 4, 0,
+ /* 907 */ 19, 4, 4, 5, 4, 4, 0,
+ /* 914 */ 21, 4, 4, 4, 4, 5, 5, 4, 4, 0,
+ /* 924 */ 19, 5, 5, 5, 4, 4, 0,
+ /* 931 */ 21, 7, 7, 7, 7, 5, 5, 4, 4, 0,
+ /* 941 */ 21, 7, 7, 7, 7, 5, 4, 4, 0,
+ /* 950 */ 0, 14, 2, 2, 11, 5, 11, 4, 4, 0,
+ /* 960 */ 0, 14, 2, 3, 12, 4, 12, 4, 4, 0,
+ /* 970 */ 16, 16, 4, 4, 0,
+ /* 975 */ 19, 4, 4, 0,
+ /* 979 */ 21, 3, 3, 3, 3, 5, 4, 0,
+ /* 987 */ 19, 3, 3, 5, 4, 0,
+ /* 993 */ 21, 4, 4, 4, 4, 5, 4, 0,
+ /* 1001 */ 19, 4, 4, 5, 4, 0,
+ /* 1007 */ 21, 4, 4, 4, 4, 5, 5, 4, 0,
+ /* 1016 */ 19, 5, 5, 5, 4, 0,
+ /* 1022 */ 21, 7, 7, 7, 7, 5, 5, 4, 0,
+ /* 1031 */ 21, 7, 7, 7, 7, 5, 4, 0,
+ /* 1039 */ 0, 14, 2, 2, 11, 4, 11, 5, 4, 0,
+ /* 1049 */ 0, 14, 2, 2, 11, 5, 11, 5, 4, 0,
+ /* 1059 */ 19, 5, 4, 0,
+ /* 1063 */ 0, 14, 2, 2, 11, 5, 11, 7, 4, 0,
+ /* 1073 */ 0, 14, 2, 3, 12, 4, 12, 7, 4, 0,
+ /* 1083 */ 0, 14, 2, 2, 11, 4, 11, 8, 4, 0,
+ /* 1093 */ 0, 14, 2, 2, 11, 5, 11, 8, 4, 0,
+ /* 1103 */ 4, 16, 4, 0,
+ /* 1107 */ 16, 16, 4, 0,
+ /* 1111 */ 21, 4, 4, 4, 4, 5, 4, 7, 0,
+ /* 1120 */ 21, 4, 4, 4, 4, 5, 5, 4, 7, 0,
+ /* 1130 */ 21, 7, 7, 7, 7, 5, 5, 4, 7, 0,
+ /* 1140 */ 21, 7, 7, 7, 7, 5, 4, 7, 0,
+ /* 1149 */ 21, 4, 4, 4, 4, 5, 7, 0,
+ /* 1157 */ 21, 4, 4, 4, 4, 5, 5, 7, 0,
+ /* 1166 */ 21, 7, 7, 7, 7, 5, 5, 7, 0,
+ /* 1175 */ 21, 7, 7, 7, 7, 5, 7, 0,
+ /* 1183 */ 21, 4, 4, 4, 4, 5, 4, 7, 7, 0,
+ /* 1193 */ 21, 4, 4, 4, 4, 5, 5, 4, 7, 7, 0,
+ /* 1204 */ 21, 7, 7, 7, 7, 5, 5, 4, 7, 7, 0,
+ /* 1215 */ 21, 7, 7, 7, 7, 5, 4, 7, 7, 0,
+ /* 1225 */ 21, 4, 4, 4, 4, 5, 7, 7, 0,
+ /* 1234 */ 21, 4, 4, 4, 4, 5, 5, 7, 7, 0,
+ /* 1244 */ 21, 7, 7, 7, 7, 5, 5, 7, 7, 0,
+ /* 1254 */ 21, 7, 7, 7, 7, 5, 7, 7, 0,
+ /* 1263 */ 21, 4, 4, 4, 4, 5, 4, 7, 7, 7, 0,
+ /* 1274 */ 21, 4, 4, 4, 4, 5, 5, 4, 7, 7, 7, 0,
+ /* 1286 */ 21, 7, 7, 7, 7, 5, 5, 4, 7, 7, 7, 0,
+ /* 1298 */ 21, 7, 7, 7, 7, 5, 4, 7, 7, 7, 0,
+ /* 1309 */ 21, 4, 4, 4, 4, 5, 7, 7, 7, 0,
+ /* 1319 */ 21, 4, 4, 4, 4, 5, 5, 7, 7, 7, 0,
+ /* 1330 */ 21, 7, 7, 7, 7, 5, 5, 7, 7, 7, 0,
+ /* 1341 */ 21, 7, 7, 7, 7, 5, 7, 7, 7, 0,
+ /* 1351 */ 21, 4, 4, 4, 4, 5, 4, 7, 7, 7, 7, 0,
+ /* 1363 */ 21, 4, 4, 4, 4, 5, 5, 4, 7, 7, 7, 7, 0,
+ /* 1376 */ 21, 7, 7, 7, 7, 5, 5, 4, 7, 7, 7, 7, 0,
+ /* 1389 */ 21, 7, 7, 7, 7, 5, 4, 7, 7, 7, 7, 0,
+ /* 1401 */ 21, 4, 4, 4, 4, 5, 7, 7, 7, 7, 0,
+ /* 1412 */ 21, 4, 4, 4, 4, 5, 5, 7, 7, 7, 7, 0,
+ /* 1424 */ 21, 7, 7, 7, 7, 5, 5, 7, 7, 7, 7, 0,
+ /* 1436 */ 21, 7, 7, 7, 7, 5, 7, 7, 7, 7, 0,
+ /* 1447 */ 21, 4, 4, 4, 4, 5, 4, 7, 7, 7, 7, 7, 7, 0,
+ /* 1461 */ 21, 4, 4, 4, 4, 5, 5, 4, 7, 7, 7, 7, 7, 7, 0,
+ /* 1476 */ 21, 7, 7, 7, 7, 5, 5, 4, 7, 7, 7, 7, 7, 7, 0,
+ /* 1491 */ 21, 7, 7, 7, 7, 5, 4, 7, 7, 7, 7, 7, 7, 0,
+ /* 1505 */ 21, 4, 4, 4, 4, 5, 7, 7, 7, 7, 7, 7, 0,
+ /* 1518 */ 21, 4, 4, 4, 4, 5, 5, 7, 7, 7, 7, 7, 7, 0,
+ /* 1532 */ 21, 7, 7, 7, 7, 5, 5, 7, 7, 7, 7, 7, 7, 0,
+ /* 1546 */ 21, 7, 7, 7, 7, 5, 7, 7, 7, 7, 7, 7, 0,
+ /* 1559 */ 21, 4, 4, 4, 4, 5, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0,
+ /* 1575 */ 21, 4, 4, 4, 4, 5, 5, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0,
+ /* 1592 */ 21, 7, 7, 7, 7, 5, 5, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0,
+ /* 1609 */ 21, 7, 7, 7, 7, 5, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0,
+ /* 1625 */ 16, 10, 7, 0,
+ /* 1629 */ 0, 15, 2, 15, 2, 15, 2, 15, 7, 0,
+ /* 1639 */ 0, 15, 2, 15, 2, 15, 2, 15, 2, 15, 7, 0,
+ /* 1651 */ 21, 15, 2, 15, 2, 15, 2, 15, 2, 15, 7, 0,
+ /* 1663 */ 20, 15, 2, 15, 2, 15, 2, 15, 7, 0,
+ /* 1673 */ 19, 15, 2, 15, 2, 15, 7, 0,
+ /* 1681 */ 0, 15, 2, 15, 2, 15, 2, 5, 15, 7, 0,
+ /* 1692 */ 0, 15, 2, 15, 2, 15, 2, 15, 2, 5, 15, 7, 0,
+ /* 1705 */ 21, 15, 2, 15, 2, 15, 2, 15, 2, 15, 2, 15, 2, 15, 2, 15, 2, 5, 15, 7, 0,
+ /* 1726 */ 20, 15, 2, 15, 2, 15, 2, 15, 2, 15, 2, 15, 2, 5, 15, 7, 0,
+ /* 1743 */ 19, 15, 2, 15, 2, 15, 2, 15, 2, 5, 15, 7, 0,
+ /* 1756 */ 9, 8, 9, 8, 9, 8, 9, 8, 0,
+ /* 1765 */ 16, 9, 8, 0,
+ /* 1769 */ 10, 8, 10, 8, 10, 8, 10, 8, 0,
+ /* 1778 */ 11, 8, 11, 8, 11, 8, 11, 8, 0,
+ /* 1787 */ 4, 16, 0,
+ /* 1790 */ 10, 7, 10, 7, 16, 0,
+ /* 1796 */ 9, 8, 16, 0,
+ /* 1800 */ 0, 14, 16, 16, 0,
+ /* 1805 */ 16, 16, 16, 0,
+ /* 1809 */ 15, 0, 17, 0,
+ /* 1813 */ 0, 17, 5, 17, 0,
+ /* 1818 */ 0, 17, 17, 0,
+ /* 1822 */ 0, 5, 4, 14, 2, 4, 27, 0,
+ /* 1830 */ 5, 5, 4, 14, 2, 4, 27, 0,
+ /* 1838 */ 0, 5, 4, 27, 0,
+ 255
+};
+
+#endif
+
+// Add parameter attributes that are not common to all intrinsics.
+#ifdef GET_INTRINSIC_ATTRIBUTES
+AttributeSet Intrinsic::getAttributes(LLVMContext &C, ID id) {
+ static const uint8_t IntrinsicsToAttributesMap[] = {
+ 1, // llvm.AMDGPU.div.fixup
+ 1, // llvm.AMDGPU.div.fmas
+ 1, // llvm.AMDGPU.div.scale
+ 1, // llvm.AMDGPU.rcp
+ 1, // llvm.AMDGPU.rsq
+ 1, // llvm.AMDGPU.rsq.clamped
+ 1, // llvm.AMDGPU.trig.preop
+ 2, // llvm.aarch64.clrex
+ 1, // llvm.aarch64.crc32b
+ 1, // llvm.aarch64.crc32cb
+ 1, // llvm.aarch64.crc32ch
+ 1, // llvm.aarch64.crc32cw
+ 1, // llvm.aarch64.crc32cx
+ 1, // llvm.aarch64.crc32h
+ 1, // llvm.aarch64.crc32w
+ 1, // llvm.aarch64.crc32x
+ 1, // llvm.aarch64.crypto.aesd
+ 1, // llvm.aarch64.crypto.aese
+ 1, // llvm.aarch64.crypto.aesimc
+ 1, // llvm.aarch64.crypto.aesmc
+ 1, // llvm.aarch64.crypto.sha1c
+ 1, // llvm.aarch64.crypto.sha1h
+ 1, // llvm.aarch64.crypto.sha1m
+ 1, // llvm.aarch64.crypto.sha1p
+ 1, // llvm.aarch64.crypto.sha1su0
+ 1, // llvm.aarch64.crypto.sha1su1
+ 1, // llvm.aarch64.crypto.sha256h
+ 1, // llvm.aarch64.crypto.sha256h2
+ 1, // llvm.aarch64.crypto.sha256su0
+ 1, // llvm.aarch64.crypto.sha256su1
+ 2, // llvm.aarch64.dmb
+ 2, // llvm.aarch64.dsb
+ 2, // llvm.aarch64.hint
+ 2, // llvm.aarch64.isb
+ 2, // llvm.aarch64.ldaxp
+ 2, // llvm.aarch64.ldaxr
+ 2, // llvm.aarch64.ldxp
+ 2, // llvm.aarch64.ldxr
+ 1, // llvm.aarch64.neon.abs
+ 1, // llvm.aarch64.neon.addhn
+ 1, // llvm.aarch64.neon.addp
+ 1, // llvm.aarch64.neon.cls
+ 1, // llvm.aarch64.neon.fabd
+ 1, // llvm.aarch64.neon.facge
+ 1, // llvm.aarch64.neon.facgt
+ 1, // llvm.aarch64.neon.faddv
+ 1, // llvm.aarch64.neon.fcvtas
+ 1, // llvm.aarch64.neon.fcvtau
+ 1, // llvm.aarch64.neon.fcvtms
+ 1, // llvm.aarch64.neon.fcvtmu
+ 1, // llvm.aarch64.neon.fcvtns
+ 1, // llvm.aarch64.neon.fcvtnu
+ 1, // llvm.aarch64.neon.fcvtps
+ 1, // llvm.aarch64.neon.fcvtpu
+ 1, // llvm.aarch64.neon.fcvtxn
+ 1, // llvm.aarch64.neon.fcvtzs
+ 1, // llvm.aarch64.neon.fcvtzu
+ 1, // llvm.aarch64.neon.fmax
+ 1, // llvm.aarch64.neon.fmaxnm
+ 1, // llvm.aarch64.neon.fmaxnmp
+ 1, // llvm.aarch64.neon.fmaxnmv
+ 1, // llvm.aarch64.neon.fmaxp
+ 1, // llvm.aarch64.neon.fmaxv
+ 1, // llvm.aarch64.neon.fmin
+ 1, // llvm.aarch64.neon.fminnm
+ 1, // llvm.aarch64.neon.fminnmp
+ 1, // llvm.aarch64.neon.fminnmv
+ 1, // llvm.aarch64.neon.fminp
+ 1, // llvm.aarch64.neon.fminv
+ 1, // llvm.aarch64.neon.fmulx
+ 1, // llvm.aarch64.neon.frecpe
+ 1, // llvm.aarch64.neon.frecps
+ 1, // llvm.aarch64.neon.frecpx
+ 1, // llvm.aarch64.neon.frintn
+ 1, // llvm.aarch64.neon.frsqrte
+ 1, // llvm.aarch64.neon.frsqrts
+ 3, // llvm.aarch64.neon.ld1x2
+ 3, // llvm.aarch64.neon.ld1x3
+ 3, // llvm.aarch64.neon.ld1x4
+ 3, // llvm.aarch64.neon.ld2
+ 3, // llvm.aarch64.neon.ld2lane
+ 3, // llvm.aarch64.neon.ld2r
+ 3, // llvm.aarch64.neon.ld3
+ 3, // llvm.aarch64.neon.ld3lane
+ 3, // llvm.aarch64.neon.ld3r
+ 3, // llvm.aarch64.neon.ld4
+ 3, // llvm.aarch64.neon.ld4lane
+ 3, // llvm.aarch64.neon.ld4r
+ 1, // llvm.aarch64.neon.pmul
+ 1, // llvm.aarch64.neon.pmull
+ 1, // llvm.aarch64.neon.pmull64
+ 1, // llvm.aarch64.neon.raddhn
+ 1, // llvm.aarch64.neon.rbit
+ 1, // llvm.aarch64.neon.rshrn
+ 1, // llvm.aarch64.neon.rsubhn
+ 1, // llvm.aarch64.neon.sabd
+ 1, // llvm.aarch64.neon.saddlp
+ 1, // llvm.aarch64.neon.saddlv
+ 1, // llvm.aarch64.neon.saddv
+ 1, // llvm.aarch64.neon.scalar.sqxtn
+ 1, // llvm.aarch64.neon.scalar.sqxtun
+ 1, // llvm.aarch64.neon.scalar.uqxtn
+ 1, // llvm.aarch64.neon.shadd
+ 1, // llvm.aarch64.neon.shll
+ 1, // llvm.aarch64.neon.shsub
+ 1, // llvm.aarch64.neon.smax
+ 1, // llvm.aarch64.neon.smaxp
+ 1, // llvm.aarch64.neon.smaxv
+ 1, // llvm.aarch64.neon.smin
+ 1, // llvm.aarch64.neon.sminp
+ 1, // llvm.aarch64.neon.sminv
+ 1, // llvm.aarch64.neon.smull
+ 1, // llvm.aarch64.neon.sqabs
+ 1, // llvm.aarch64.neon.sqadd
+ 1, // llvm.aarch64.neon.sqdmulh
+ 1, // llvm.aarch64.neon.sqdmull
+ 1, // llvm.aarch64.neon.sqdmulls.scalar
+ 1, // llvm.aarch64.neon.sqneg
+ 1, // llvm.aarch64.neon.sqrdmulh
+ 1, // llvm.aarch64.neon.sqrshl
+ 1, // llvm.aarch64.neon.sqrshrn
+ 1, // llvm.aarch64.neon.sqrshrun
+ 1, // llvm.aarch64.neon.sqshl
+ 1, // llvm.aarch64.neon.sqshlu
+ 1, // llvm.aarch64.neon.sqshrn
+ 1, // llvm.aarch64.neon.sqshrun
+ 1, // llvm.aarch64.neon.sqsub
+ 1, // llvm.aarch64.neon.sqxtn
+ 1, // llvm.aarch64.neon.sqxtun
+ 1, // llvm.aarch64.neon.srhadd
+ 1, // llvm.aarch64.neon.srshl
+ 1, // llvm.aarch64.neon.sshl
+ 1, // llvm.aarch64.neon.sshll
+ 4, // llvm.aarch64.neon.st1x2
+ 5, // llvm.aarch64.neon.st1x3
+ 6, // llvm.aarch64.neon.st1x4
+ 4, // llvm.aarch64.neon.st2
+ 5, // llvm.aarch64.neon.st2lane
+ 5, // llvm.aarch64.neon.st3
+ 6, // llvm.aarch64.neon.st3lane
+ 6, // llvm.aarch64.neon.st4
+ 7, // llvm.aarch64.neon.st4lane
+ 1, // llvm.aarch64.neon.subhn
+ 1, // llvm.aarch64.neon.suqadd
+ 1, // llvm.aarch64.neon.tbl1
+ 1, // llvm.aarch64.neon.tbl2
+ 1, // llvm.aarch64.neon.tbl3
+ 1, // llvm.aarch64.neon.tbl4
+ 1, // llvm.aarch64.neon.tbx1
+ 1, // llvm.aarch64.neon.tbx2
+ 1, // llvm.aarch64.neon.tbx3
+ 1, // llvm.aarch64.neon.tbx4
+ 1, // llvm.aarch64.neon.uabd
+ 1, // llvm.aarch64.neon.uaddlp
+ 1, // llvm.aarch64.neon.uaddlv
+ 1, // llvm.aarch64.neon.uaddv
+ 1, // llvm.aarch64.neon.uhadd
+ 1, // llvm.aarch64.neon.uhsub
+ 1, // llvm.aarch64.neon.umax
+ 1, // llvm.aarch64.neon.umaxp
+ 1, // llvm.aarch64.neon.umaxv
+ 1, // llvm.aarch64.neon.umin
+ 1, // llvm.aarch64.neon.uminp
+ 1, // llvm.aarch64.neon.uminv
+ 1, // llvm.aarch64.neon.umull
+ 1, // llvm.aarch64.neon.uqadd
+ 1, // llvm.aarch64.neon.uqrshl
+ 1, // llvm.aarch64.neon.uqrshrn
+ 1, // llvm.aarch64.neon.uqshl
+ 1, // llvm.aarch64.neon.uqshrn
+ 1, // llvm.aarch64.neon.uqsub
+ 1, // llvm.aarch64.neon.uqxtn
+ 1, // llvm.aarch64.neon.urecpe
+ 1, // llvm.aarch64.neon.urhadd
+ 1, // llvm.aarch64.neon.urshl
+ 1, // llvm.aarch64.neon.ursqrte
+ 1, // llvm.aarch64.neon.ushl
+ 1, // llvm.aarch64.neon.ushll
+ 1, // llvm.aarch64.neon.usqadd
+ 1, // llvm.aarch64.neon.vcopy.lane
+ 1, // llvm.aarch64.neon.vcvtfp2fxs
+ 1, // llvm.aarch64.neon.vcvtfp2fxu
+ 1, // llvm.aarch64.neon.vcvtfp2hf
+ 1, // llvm.aarch64.neon.vcvtfxs2fp
+ 1, // llvm.aarch64.neon.vcvtfxu2fp
+ 1, // llvm.aarch64.neon.vcvthf2fp
+ 1, // llvm.aarch64.neon.vsli
+ 1, // llvm.aarch64.neon.vsri
+ 1, // llvm.aarch64.rbit
+ 1, // llvm.aarch64.sdiv
+ 1, // llvm.aarch64.sisd.fabd
+ 1, // llvm.aarch64.sisd.fcvtxn
+ 2, // llvm.aarch64.stlxp
+ 2, // llvm.aarch64.stlxr
+ 2, // llvm.aarch64.stxp
+ 2, // llvm.aarch64.stxr
+ 1, // llvm.aarch64.udiv
+ 3, // llvm.adjust.trampoline
+ 2, // llvm.annotation
+ 2, // llvm.arm.cdp
+ 2, // llvm.arm.cdp2
+ 2, // llvm.arm.clrex
+ 1, // llvm.arm.crc32b
+ 1, // llvm.arm.crc32cb
+ 1, // llvm.arm.crc32ch
+ 1, // llvm.arm.crc32cw
+ 1, // llvm.arm.crc32h
+ 1, // llvm.arm.crc32w
+ 2, // llvm.arm.dmb
+ 2, // llvm.arm.dsb
+ 1, // llvm.arm.get.fpscr
+ 2, // llvm.arm.hint
+ 2, // llvm.arm.isb
+ 2, // llvm.arm.ldaex
+ 2, // llvm.arm.ldaexd
+ 2, // llvm.arm.ldrex
+ 2, // llvm.arm.ldrexd
+ 2, // llvm.arm.mcr
+ 2, // llvm.arm.mcr2
+ 2, // llvm.arm.mcrr
+ 2, // llvm.arm.mcrr2
+ 2, // llvm.arm.mrc
+ 2, // llvm.arm.mrc2
+ 1, // llvm.arm.neon.aesd
+ 1, // llvm.arm.neon.aese
+ 1, // llvm.arm.neon.aesimc
+ 1, // llvm.arm.neon.aesmc
+ 1, // llvm.arm.neon.sha1c
+ 1, // llvm.arm.neon.sha1h
+ 1, // llvm.arm.neon.sha1m
+ 1, // llvm.arm.neon.sha1p
+ 1, // llvm.arm.neon.sha1su0
+ 1, // llvm.arm.neon.sha1su1
+ 1, // llvm.arm.neon.sha256h
+ 1, // llvm.arm.neon.sha256h2
+ 1, // llvm.arm.neon.sha256su0
+ 1, // llvm.arm.neon.sha256su1
+ 1, // llvm.arm.neon.vabds
+ 1, // llvm.arm.neon.vabdu
+ 1, // llvm.arm.neon.vabs
+ 1, // llvm.arm.neon.vacge
+ 1, // llvm.arm.neon.vacgt
+ 1, // llvm.arm.neon.vbsl
+ 1, // llvm.arm.neon.vcls
+ 1, // llvm.arm.neon.vclz
+ 1, // llvm.arm.neon.vcnt
+ 1, // llvm.arm.neon.vcvtas
+ 1, // llvm.arm.neon.vcvtau
+ 1, // llvm.arm.neon.vcvtfp2fxs
+ 1, // llvm.arm.neon.vcvtfp2fxu
+ 1, // llvm.arm.neon.vcvtfp2hf
+ 1, // llvm.arm.neon.vcvtfxs2fp
+ 1, // llvm.arm.neon.vcvtfxu2fp
+ 1, // llvm.arm.neon.vcvthf2fp
+ 1, // llvm.arm.neon.vcvtms
+ 1, // llvm.arm.neon.vcvtmu
+ 1, // llvm.arm.neon.vcvtns
+ 1, // llvm.arm.neon.vcvtnu
+ 1, // llvm.arm.neon.vcvtps
+ 1, // llvm.arm.neon.vcvtpu
+ 1, // llvm.arm.neon.vhadds
+ 1, // llvm.arm.neon.vhaddu
+ 1, // llvm.arm.neon.vhsubs
+ 1, // llvm.arm.neon.vhsubu
+ 3, // llvm.arm.neon.vld1
+ 3, // llvm.arm.neon.vld2
+ 3, // llvm.arm.neon.vld2lane
+ 3, // llvm.arm.neon.vld3
+ 3, // llvm.arm.neon.vld3lane
+ 3, // llvm.arm.neon.vld4
+ 3, // llvm.arm.neon.vld4lane
+ 1, // llvm.arm.neon.vmaxnm
+ 1, // llvm.arm.neon.vmaxs
+ 1, // llvm.arm.neon.vmaxu
+ 1, // llvm.arm.neon.vminnm
+ 1, // llvm.arm.neon.vmins
+ 1, // llvm.arm.neon.vminu
+ 1, // llvm.arm.neon.vmullp
+ 1, // llvm.arm.neon.vmulls
+ 1, // llvm.arm.neon.vmullu
+ 1, // llvm.arm.neon.vmulp
+ 1, // llvm.arm.neon.vpadals
+ 1, // llvm.arm.neon.vpadalu
+ 1, // llvm.arm.neon.vpadd
+ 1, // llvm.arm.neon.vpaddls
+ 1, // llvm.arm.neon.vpaddlu
+ 1, // llvm.arm.neon.vpmaxs
+ 1, // llvm.arm.neon.vpmaxu
+ 1, // llvm.arm.neon.vpmins
+ 1, // llvm.arm.neon.vpminu
+ 1, // llvm.arm.neon.vqabs
+ 1, // llvm.arm.neon.vqadds
+ 1, // llvm.arm.neon.vqaddu
+ 1, // llvm.arm.neon.vqdmulh
+ 1, // llvm.arm.neon.vqdmull
+ 1, // llvm.arm.neon.vqmovns
+ 1, // llvm.arm.neon.vqmovnsu
+ 1, // llvm.arm.neon.vqmovnu
+ 1, // llvm.arm.neon.vqneg
+ 1, // llvm.arm.neon.vqrdmulh
+ 1, // llvm.arm.neon.vqrshiftns
+ 1, // llvm.arm.neon.vqrshiftnsu
+ 1, // llvm.arm.neon.vqrshiftnu
+ 1, // llvm.arm.neon.vqrshifts
+ 1, // llvm.arm.neon.vqrshiftu
+ 1, // llvm.arm.neon.vqshiftns
+ 1, // llvm.arm.neon.vqshiftnsu
+ 1, // llvm.arm.neon.vqshiftnu
+ 1, // llvm.arm.neon.vqshifts
+ 1, // llvm.arm.neon.vqshiftsu
+ 1, // llvm.arm.neon.vqshiftu
+ 1, // llvm.arm.neon.vqsubs
+ 1, // llvm.arm.neon.vqsubu
+ 1, // llvm.arm.neon.vraddhn
+ 1, // llvm.arm.neon.vrecpe
+ 1, // llvm.arm.neon.vrecps
+ 1, // llvm.arm.neon.vrhadds
+ 1, // llvm.arm.neon.vrhaddu
+ 1, // llvm.arm.neon.vrinta
+ 1, // llvm.arm.neon.vrintm
+ 1, // llvm.arm.neon.vrintn
+ 1, // llvm.arm.neon.vrintp
+ 1, // llvm.arm.neon.vrintx
+ 1, // llvm.arm.neon.vrintz
+ 1, // llvm.arm.neon.vrshiftn
+ 1, // llvm.arm.neon.vrshifts
+ 1, // llvm.arm.neon.vrshiftu
+ 1, // llvm.arm.neon.vrsqrte
+ 1, // llvm.arm.neon.vrsqrts
+ 1, // llvm.arm.neon.vrsubhn
+ 1, // llvm.arm.neon.vshiftins
+ 1, // llvm.arm.neon.vshifts
+ 1, // llvm.arm.neon.vshiftu
+ 2, // llvm.arm.neon.vst1
+ 2, // llvm.arm.neon.vst2
+ 2, // llvm.arm.neon.vst2lane
+ 2, // llvm.arm.neon.vst3
+ 2, // llvm.arm.neon.vst3lane
+ 2, // llvm.arm.neon.vst4
+ 2, // llvm.arm.neon.vst4lane
+ 1, // llvm.arm.neon.vtbl1
+ 1, // llvm.arm.neon.vtbl2
+ 1, // llvm.arm.neon.vtbl3
+ 1, // llvm.arm.neon.vtbl4
+ 1, // llvm.arm.neon.vtbx1
+ 1, // llvm.arm.neon.vtbx2
+ 1, // llvm.arm.neon.vtbx3
+ 1, // llvm.arm.neon.vtbx4
+ 1, // llvm.arm.qadd
+ 1, // llvm.arm.qsub
+ 1, // llvm.arm.rbit
+ 2, // llvm.arm.set.fpscr
+ 1, // llvm.arm.ssat
+ 2, // llvm.arm.stlex
+ 2, // llvm.arm.stlexd
+ 2, // llvm.arm.strex
+ 2, // llvm.arm.strexd
+ 1, // llvm.arm.thread.pointer
+ 2, // llvm.arm.undefined
+ 1, // llvm.arm.usat
+ 1, // llvm.arm.vcvtr
+ 1, // llvm.arm.vcvtru
+ 1, // llvm.bswap
+ 1, // llvm.ceil
+ 2, // llvm.clear_cache
+ 1, // llvm.convert.from.fp16
+ 1, // llvm.convert.to.fp16
+ 2, // llvm.convertff
+ 2, // llvm.convertfsi
+ 2, // llvm.convertfui
+ 2, // llvm.convertsif
+ 2, // llvm.convertss
+ 2, // llvm.convertsu
+ 2, // llvm.convertuif
+ 2, // llvm.convertus
+ 2, // llvm.convertuu
+ 1, // llvm.copysign
+ 1, // llvm.cos
+ 1, // llvm.ctlz
+ 1, // llvm.ctpop
+ 1, // llvm.cttz
+ 8, // llvm.cuda.syncthreads
+ 1, // llvm.dbg.declare
+ 1, // llvm.dbg.value
+ 2, // llvm.debugtrap
+ 1, // llvm.donothing
+ 2, // llvm.eh.dwarf.cfa
+ 2, // llvm.eh.return.i32
+ 2, // llvm.eh.return.i64
+ 1, // llvm.eh.sjlj.callsite
+ 2, // llvm.eh.sjlj.functioncontext
+ 9, // llvm.eh.sjlj.longjmp
+ 1, // llvm.eh.sjlj.lsda
+ 2, // llvm.eh.sjlj.setjmp
+ 1, // llvm.eh.typeid.for
+ 2, // llvm.eh.unwind.init
+ 1, // llvm.exp
+ 1, // llvm.exp2
+ 1, // llvm.expect
+ 2, // llvm.experimental.patchpoint.i64
+ 2, // llvm.experimental.patchpoint.void
+ 10, // llvm.experimental.stackmap
+ 1, // llvm.fabs
+ 1, // llvm.floor
+ 2, // llvm.flt.rounds
+ 1, // llvm.fma
+ 1, // llvm.fmuladd
+ 1, // llvm.frameaddress
+ 3, // llvm.gcread
+ 2, // llvm.gcroot
+ 11, // llvm.gcwrite
+ 1, // llvm.hexagon.A2.abs
+ 1, // llvm.hexagon.A2.absp
+ 1, // llvm.hexagon.A2.abssat
+ 1, // llvm.hexagon.A2.add
+ 1, // llvm.hexagon.A2.addh.h16.hh
+ 1, // llvm.hexagon.A2.addh.h16.hl
+ 1, // llvm.hexagon.A2.addh.h16.lh
+ 1, // llvm.hexagon.A2.addh.h16.ll
+ 1, // llvm.hexagon.A2.addh.h16.sat.hh
+ 1, // llvm.hexagon.A2.addh.h16.sat.hl
+ 1, // llvm.hexagon.A2.addh.h16.sat.lh
+ 1, // llvm.hexagon.A2.addh.h16.sat.ll
+ 1, // llvm.hexagon.A2.addh.l16.hl
+ 1, // llvm.hexagon.A2.addh.l16.ll
+ 1, // llvm.hexagon.A2.addh.l16.sat.hl
+ 1, // llvm.hexagon.A2.addh.l16.sat.ll
+ 1, // llvm.hexagon.A2.addi
+ 1, // llvm.hexagon.A2.addp
+ 1, // llvm.hexagon.A2.addpsat
+ 1, // llvm.hexagon.A2.addsat
+ 1, // llvm.hexagon.A2.addsp
+ 1, // llvm.hexagon.A2.and
+ 1, // llvm.hexagon.A2.andir
+ 1, // llvm.hexagon.A2.andp
+ 1, // llvm.hexagon.A2.aslh
+ 1, // llvm.hexagon.A2.asrh
+ 1, // llvm.hexagon.A2.combine.hh
+ 1, // llvm.hexagon.A2.combine.hl
+ 1, // llvm.hexagon.A2.combine.lh
+ 1, // llvm.hexagon.A2.combine.ll
+ 1, // llvm.hexagon.A2.combineii
+ 1, // llvm.hexagon.A2.combinew
+ 1, // llvm.hexagon.A2.max
+ 1, // llvm.hexagon.A2.maxp
+ 1, // llvm.hexagon.A2.maxu
+ 1, // llvm.hexagon.A2.maxup
+ 1, // llvm.hexagon.A2.min
+ 1, // llvm.hexagon.A2.minp
+ 1, // llvm.hexagon.A2.minu
+ 1, // llvm.hexagon.A2.minup
+ 1, // llvm.hexagon.A2.neg
+ 1, // llvm.hexagon.A2.negp
+ 1, // llvm.hexagon.A2.negsat
+ 1, // llvm.hexagon.A2.not
+ 1, // llvm.hexagon.A2.notp
+ 1, // llvm.hexagon.A2.or
+ 1, // llvm.hexagon.A2.orir
+ 1, // llvm.hexagon.A2.orp
+ 1, // llvm.hexagon.A2.roundsat
+ 1, // llvm.hexagon.A2.sat
+ 1, // llvm.hexagon.A2.satb
+ 1, // llvm.hexagon.A2.sath
+ 1, // llvm.hexagon.A2.satub
+ 1, // llvm.hexagon.A2.satuh
+ 1, // llvm.hexagon.A2.sub
+ 1, // llvm.hexagon.A2.subh.h16.hh
+ 1, // llvm.hexagon.A2.subh.h16.hl
+ 1, // llvm.hexagon.A2.subh.h16.lh
+ 1, // llvm.hexagon.A2.subh.h16.ll
+ 1, // llvm.hexagon.A2.subh.h16.sat.hh
+ 1, // llvm.hexagon.A2.subh.h16.sat.hl
+ 1, // llvm.hexagon.A2.subh.h16.sat.lh
+ 1, // llvm.hexagon.A2.subh.h16.sat.ll
+ 1, // llvm.hexagon.A2.subh.l16.hl
+ 1, // llvm.hexagon.A2.subh.l16.ll
+ 1, // llvm.hexagon.A2.subh.l16.sat.hl
+ 1, // llvm.hexagon.A2.subh.l16.sat.ll
+ 1, // llvm.hexagon.A2.subp
+ 1, // llvm.hexagon.A2.subri
+ 1, // llvm.hexagon.A2.subsat
+ 1, // llvm.hexagon.A2.svaddh
+ 1, // llvm.hexagon.A2.svaddhs
+ 1, // llvm.hexagon.A2.svadduhs
+ 1, // llvm.hexagon.A2.svavgh
+ 1, // llvm.hexagon.A2.svavghs
+ 1, // llvm.hexagon.A2.svnavgh
+ 1, // llvm.hexagon.A2.svsubh
+ 1, // llvm.hexagon.A2.svsubhs
+ 1, // llvm.hexagon.A2.svsubuhs
+ 1, // llvm.hexagon.A2.swiz
+ 1, // llvm.hexagon.A2.sxtb
+ 1, // llvm.hexagon.A2.sxth
+ 1, // llvm.hexagon.A2.sxtw
+ 1, // llvm.hexagon.A2.tfr
+ 1, // llvm.hexagon.A2.tfrih
+ 1, // llvm.hexagon.A2.tfril
+ 1, // llvm.hexagon.A2.tfrp
+ 1, // llvm.hexagon.A2.tfrpi
+ 1, // llvm.hexagon.A2.tfrsi
+ 1, // llvm.hexagon.A2.vabsh
+ 1, // llvm.hexagon.A2.vabshsat
+ 1, // llvm.hexagon.A2.vabsw
+ 1, // llvm.hexagon.A2.vabswsat
+ 1, // llvm.hexagon.A2.vaddb.map
+ 1, // llvm.hexagon.A2.vaddh
+ 1, // llvm.hexagon.A2.vaddhs
+ 1, // llvm.hexagon.A2.vaddub
+ 1, // llvm.hexagon.A2.vaddubs
+ 1, // llvm.hexagon.A2.vadduhs
+ 1, // llvm.hexagon.A2.vaddw
+ 1, // llvm.hexagon.A2.vaddws
+ 1, // llvm.hexagon.A2.vavgh
+ 1, // llvm.hexagon.A2.vavghcr
+ 1, // llvm.hexagon.A2.vavghr
+ 1, // llvm.hexagon.A2.vavgub
+ 1, // llvm.hexagon.A2.vavgubr
+ 1, // llvm.hexagon.A2.vavguh
+ 1, // llvm.hexagon.A2.vavguhr
+ 1, // llvm.hexagon.A2.vavguw
+ 1, // llvm.hexagon.A2.vavguwr
+ 1, // llvm.hexagon.A2.vavgw
+ 1, // llvm.hexagon.A2.vavgwcr
+ 1, // llvm.hexagon.A2.vavgwr
+ 1, // llvm.hexagon.A2.vcmpbeq
+ 1, // llvm.hexagon.A2.vcmpbgtu
+ 1, // llvm.hexagon.A2.vcmpheq
+ 1, // llvm.hexagon.A2.vcmphgt
+ 1, // llvm.hexagon.A2.vcmphgtu
+ 1, // llvm.hexagon.A2.vcmpweq
+ 1, // llvm.hexagon.A2.vcmpwgt
+ 1, // llvm.hexagon.A2.vcmpwgtu
+ 1, // llvm.hexagon.A2.vconj
+ 1, // llvm.hexagon.A2.vmaxb
+ 1, // llvm.hexagon.A2.vmaxh
+ 1, // llvm.hexagon.A2.vmaxub
+ 1, // llvm.hexagon.A2.vmaxuh
+ 1, // llvm.hexagon.A2.vmaxuw
+ 1, // llvm.hexagon.A2.vmaxw
+ 1, // llvm.hexagon.A2.vminb
+ 1, // llvm.hexagon.A2.vminh
+ 1, // llvm.hexagon.A2.vminub
+ 1, // llvm.hexagon.A2.vminuh
+ 1, // llvm.hexagon.A2.vminuw
+ 1, // llvm.hexagon.A2.vminw
+ 1, // llvm.hexagon.A2.vnavgh
+ 1, // llvm.hexagon.A2.vnavghcr
+ 1, // llvm.hexagon.A2.vnavghr
+ 1, // llvm.hexagon.A2.vnavgw
+ 1, // llvm.hexagon.A2.vnavgwcr
+ 1, // llvm.hexagon.A2.vnavgwr
+ 1, // llvm.hexagon.A2.vraddub
+ 1, // llvm.hexagon.A2.vraddub.acc
+ 1, // llvm.hexagon.A2.vrsadub
+ 1, // llvm.hexagon.A2.vrsadub.acc
+ 1, // llvm.hexagon.A2.vsubb.map
+ 1, // llvm.hexagon.A2.vsubh
+ 1, // llvm.hexagon.A2.vsubhs
+ 1, // llvm.hexagon.A2.vsubub
+ 1, // llvm.hexagon.A2.vsububs
+ 1, // llvm.hexagon.A2.vsubuhs
+ 1, // llvm.hexagon.A2.vsubw
+ 1, // llvm.hexagon.A2.vsubws
+ 1, // llvm.hexagon.A2.xor
+ 1, // llvm.hexagon.A2.xorp
+ 1, // llvm.hexagon.A2.zxtb
+ 1, // llvm.hexagon.A2.zxth
+ 1, // llvm.hexagon.A4.andn
+ 1, // llvm.hexagon.A4.andnp
+ 1, // llvm.hexagon.A4.bitsplit
+ 1, // llvm.hexagon.A4.bitspliti
+ 1, // llvm.hexagon.A4.boundscheck
+ 1, // llvm.hexagon.A4.cmpbeq
+ 1, // llvm.hexagon.A4.cmpbeqi
+ 1, // llvm.hexagon.A4.cmpbgt
+ 1, // llvm.hexagon.A4.cmpbgti
+ 1, // llvm.hexagon.A4.cmpbgtu
+ 1, // llvm.hexagon.A4.cmpbgtui
+ 1, // llvm.hexagon.A4.cmpheq
+ 1, // llvm.hexagon.A4.cmpheqi
+ 1, // llvm.hexagon.A4.cmphgt
+ 1, // llvm.hexagon.A4.cmphgti
+ 1, // llvm.hexagon.A4.cmphgtu
+ 1, // llvm.hexagon.A4.cmphgtui
+ 1, // llvm.hexagon.A4.combineir
+ 1, // llvm.hexagon.A4.combineri
+ 1, // llvm.hexagon.A4.cround.ri
+ 1, // llvm.hexagon.A4.cround.rr
+ 1, // llvm.hexagon.A4.modwrapu
+ 1, // llvm.hexagon.A4.orn
+ 1, // llvm.hexagon.A4.ornp
+ 1, // llvm.hexagon.A4.rcmpeq
+ 1, // llvm.hexagon.A4.rcmpeqi
+ 1, // llvm.hexagon.A4.rcmpneq
+ 1, // llvm.hexagon.A4.rcmpneqi
+ 1, // llvm.hexagon.A4.round.ri
+ 1, // llvm.hexagon.A4.round.ri.sat
+ 1, // llvm.hexagon.A4.round.rr
+ 1, // llvm.hexagon.A4.round.rr.sat
+ 1, // llvm.hexagon.A4.tlbmatch
+ 1, // llvm.hexagon.A4.vcmpbeq.any
+ 1, // llvm.hexagon.A4.vcmpbeqi
+ 1, // llvm.hexagon.A4.vcmpbgt
+ 1, // llvm.hexagon.A4.vcmpbgti
+ 1, // llvm.hexagon.A4.vcmpbgtui
+ 1, // llvm.hexagon.A4.vcmpheqi
+ 1, // llvm.hexagon.A4.vcmphgti
+ 1, // llvm.hexagon.A4.vcmphgtui
+ 1, // llvm.hexagon.A4.vcmpweqi
+ 1, // llvm.hexagon.A4.vcmpwgti
+ 1, // llvm.hexagon.A4.vcmpwgtui
+ 1, // llvm.hexagon.A4.vrmaxh
+ 1, // llvm.hexagon.A4.vrmaxuh
+ 1, // llvm.hexagon.A4.vrmaxuw
+ 1, // llvm.hexagon.A4.vrmaxw
+ 1, // llvm.hexagon.A4.vrminh
+ 1, // llvm.hexagon.A4.vrminuh
+ 1, // llvm.hexagon.A4.vrminuw
+ 1, // llvm.hexagon.A4.vrminw
+ 1, // llvm.hexagon.A5.vaddhubs
+ 1, // llvm.hexagon.C2.all8
+ 1, // llvm.hexagon.C2.and
+ 1, // llvm.hexagon.C2.andn
+ 1, // llvm.hexagon.C2.any8
+ 1, // llvm.hexagon.C2.bitsclr
+ 1, // llvm.hexagon.C2.bitsclri
+ 1, // llvm.hexagon.C2.bitsset
+ 1, // llvm.hexagon.C2.cmpeq
+ 1, // llvm.hexagon.C2.cmpeqi
+ 1, // llvm.hexagon.C2.cmpeqp
+ 1, // llvm.hexagon.C2.cmpgei
+ 1, // llvm.hexagon.C2.cmpgeui
+ 1, // llvm.hexagon.C2.cmpgt
+ 1, // llvm.hexagon.C2.cmpgti
+ 1, // llvm.hexagon.C2.cmpgtp
+ 1, // llvm.hexagon.C2.cmpgtu
+ 1, // llvm.hexagon.C2.cmpgtui
+ 1, // llvm.hexagon.C2.cmpgtup
+ 1, // llvm.hexagon.C2.cmplt
+ 1, // llvm.hexagon.C2.cmpltu
+ 1, // llvm.hexagon.C2.mask
+ 1, // llvm.hexagon.C2.mux
+ 1, // llvm.hexagon.C2.muxii
+ 1, // llvm.hexagon.C2.muxir
+ 1, // llvm.hexagon.C2.muxri
+ 1, // llvm.hexagon.C2.not
+ 1, // llvm.hexagon.C2.or
+ 1, // llvm.hexagon.C2.orn
+ 1, // llvm.hexagon.C2.pxfer.map
+ 1, // llvm.hexagon.C2.tfrpr
+ 1, // llvm.hexagon.C2.tfrrp
+ 1, // llvm.hexagon.C2.vitpack
+ 1, // llvm.hexagon.C2.vmux
+ 1, // llvm.hexagon.C2.xor
+ 1, // llvm.hexagon.C4.and.and
+ 1, // llvm.hexagon.C4.and.andn
+ 1, // llvm.hexagon.C4.and.or
+ 1, // llvm.hexagon.C4.and.orn
+ 1, // llvm.hexagon.C4.cmplte
+ 1, // llvm.hexagon.C4.cmpltei
+ 1, // llvm.hexagon.C4.cmplteu
+ 1, // llvm.hexagon.C4.cmplteui
+ 1, // llvm.hexagon.C4.cmpneq
+ 1, // llvm.hexagon.C4.cmpneqi
+ 1, // llvm.hexagon.C4.fastcorner9
+ 1, // llvm.hexagon.C4.fastcorner9.not
+ 1, // llvm.hexagon.C4.nbitsclr
+ 1, // llvm.hexagon.C4.nbitsclri
+ 1, // llvm.hexagon.C4.nbitsset
+ 1, // llvm.hexagon.C4.or.and
+ 1, // llvm.hexagon.C4.or.andn
+ 1, // llvm.hexagon.C4.or.or
+ 1, // llvm.hexagon.C4.or.orn
+ 1, // llvm.hexagon.F2.conv.d2df
+ 1, // llvm.hexagon.F2.conv.d2sf
+ 1, // llvm.hexagon.F2.conv.df2d
+ 1, // llvm.hexagon.F2.conv.df2d.chop
+ 1, // llvm.hexagon.F2.conv.df2sf
+ 1, // llvm.hexagon.F2.conv.df2ud
+ 1, // llvm.hexagon.F2.conv.df2ud.chop
+ 1, // llvm.hexagon.F2.conv.df2uw
+ 1, // llvm.hexagon.F2.conv.df2uw.chop
+ 1, // llvm.hexagon.F2.conv.df2w
+ 1, // llvm.hexagon.F2.conv.df2w.chop
+ 1, // llvm.hexagon.F2.conv.sf2d
+ 1, // llvm.hexagon.F2.conv.sf2d.chop
+ 1, // llvm.hexagon.F2.conv.sf2df
+ 1, // llvm.hexagon.F2.conv.sf2ud
+ 1, // llvm.hexagon.F2.conv.sf2ud.chop
+ 1, // llvm.hexagon.F2.conv.sf2uw
+ 1, // llvm.hexagon.F2.conv.sf2uw.chop
+ 1, // llvm.hexagon.F2.conv.sf2w
+ 1, // llvm.hexagon.F2.conv.sf2w.chop
+ 1, // llvm.hexagon.F2.conv.ud2df
+ 1, // llvm.hexagon.F2.conv.ud2sf
+ 1, // llvm.hexagon.F2.conv.uw2df
+ 1, // llvm.hexagon.F2.conv.uw2sf
+ 1, // llvm.hexagon.F2.conv.w2df
+ 1, // llvm.hexagon.F2.conv.w2sf
+ 1, // llvm.hexagon.F2.dfadd
+ 1, // llvm.hexagon.F2.dfclass
+ 1, // llvm.hexagon.F2.dfcmpeq
+ 1, // llvm.hexagon.F2.dfcmpge
+ 1, // llvm.hexagon.F2.dfcmpgt
+ 1, // llvm.hexagon.F2.dfcmpuo
+ 1, // llvm.hexagon.F2.dffixupd
+ 1, // llvm.hexagon.F2.dffixupn
+ 1, // llvm.hexagon.F2.dffixupr
+ 1, // llvm.hexagon.F2.dffma
+ 1, // llvm.hexagon.F2.dffma.lib
+ 1, // llvm.hexagon.F2.dffma.sc
+ 1, // llvm.hexagon.F2.dffms
+ 1, // llvm.hexagon.F2.dffms.lib
+ 1, // llvm.hexagon.F2.dfimm.n
+ 1, // llvm.hexagon.F2.dfimm.p
+ 1, // llvm.hexagon.F2.dfmax
+ 1, // llvm.hexagon.F2.dfmin
+ 1, // llvm.hexagon.F2.dfmpy
+ 1, // llvm.hexagon.F2.dfsub
+ 1, // llvm.hexagon.F2.sfadd
+ 1, // llvm.hexagon.F2.sfclass
+ 1, // llvm.hexagon.F2.sfcmpeq
+ 1, // llvm.hexagon.F2.sfcmpge
+ 1, // llvm.hexagon.F2.sfcmpgt
+ 1, // llvm.hexagon.F2.sfcmpuo
+ 1, // llvm.hexagon.F2.sffixupd
+ 1, // llvm.hexagon.F2.sffixupn
+ 1, // llvm.hexagon.F2.sffixupr
+ 1, // llvm.hexagon.F2.sffma
+ 1, // llvm.hexagon.F2.sffma.lib
+ 1, // llvm.hexagon.F2.sffma.sc
+ 1, // llvm.hexagon.F2.sffms
+ 1, // llvm.hexagon.F2.sffms.lib
+ 1, // llvm.hexagon.F2.sfimm.n
+ 1, // llvm.hexagon.F2.sfimm.p
+ 1, // llvm.hexagon.F2.sfmax
+ 1, // llvm.hexagon.F2.sfmin
+ 1, // llvm.hexagon.F2.sfmpy
+ 1, // llvm.hexagon.F2.sfsub
+ 1, // llvm.hexagon.M2.acci
+ 1, // llvm.hexagon.M2.accii
+ 1, // llvm.hexagon.M2.cmaci.s0
+ 1, // llvm.hexagon.M2.cmacr.s0
+ 1, // llvm.hexagon.M2.cmacs.s0
+ 1, // llvm.hexagon.M2.cmacs.s1
+ 1, // llvm.hexagon.M2.cmacsc.s0
+ 1, // llvm.hexagon.M2.cmacsc.s1
+ 1, // llvm.hexagon.M2.cmpyi.s0
+ 1, // llvm.hexagon.M2.cmpyr.s0
+ 1, // llvm.hexagon.M2.cmpyrs.s0
+ 1, // llvm.hexagon.M2.cmpyrs.s1
+ 1, // llvm.hexagon.M2.cmpyrsc.s0
+ 1, // llvm.hexagon.M2.cmpyrsc.s1
+ 1, // llvm.hexagon.M2.cmpys.s0
+ 1, // llvm.hexagon.M2.cmpys.s1
+ 1, // llvm.hexagon.M2.cmpysc.s0
+ 1, // llvm.hexagon.M2.cmpysc.s1
+ 1, // llvm.hexagon.M2.cnacs.s0
+ 1, // llvm.hexagon.M2.cnacs.s1
+ 1, // llvm.hexagon.M2.cnacsc.s0
+ 1, // llvm.hexagon.M2.cnacsc.s1
+ 1, // llvm.hexagon.M2.dpmpyss.acc.s0
+ 1, // llvm.hexagon.M2.dpmpyss.nac.s0
+ 1, // llvm.hexagon.M2.dpmpyss.rnd.s0
+ 1, // llvm.hexagon.M2.dpmpyss.s0
+ 1, // llvm.hexagon.M2.dpmpyuu.acc.s0
+ 1, // llvm.hexagon.M2.dpmpyuu.nac.s0
+ 1, // llvm.hexagon.M2.dpmpyuu.s0
+ 1, // llvm.hexagon.M2.hmmpyh.rs1
+ 1, // llvm.hexagon.M2.hmmpyh.s1
+ 1, // llvm.hexagon.M2.hmmpyl.rs1
+ 1, // llvm.hexagon.M2.hmmpyl.s1
+ 1, // llvm.hexagon.M2.maci
+ 1, // llvm.hexagon.M2.macsin
+ 1, // llvm.hexagon.M2.macsip
+ 1, // llvm.hexagon.M2.mmachs.rs0
+ 1, // llvm.hexagon.M2.mmachs.rs1
+ 1, // llvm.hexagon.M2.mmachs.s0
+ 1, // llvm.hexagon.M2.mmachs.s1
+ 1, // llvm.hexagon.M2.mmacls.rs0
+ 1, // llvm.hexagon.M2.mmacls.rs1
+ 1, // llvm.hexagon.M2.mmacls.s0
+ 1, // llvm.hexagon.M2.mmacls.s1
+ 1, // llvm.hexagon.M2.mmacuhs.rs0
+ 1, // llvm.hexagon.M2.mmacuhs.rs1
+ 1, // llvm.hexagon.M2.mmacuhs.s0
+ 1, // llvm.hexagon.M2.mmacuhs.s1
+ 1, // llvm.hexagon.M2.mmaculs.rs0
+ 1, // llvm.hexagon.M2.mmaculs.rs1
+ 1, // llvm.hexagon.M2.mmaculs.s0
+ 1, // llvm.hexagon.M2.mmaculs.s1
+ 1, // llvm.hexagon.M2.mmpyh.rs0
+ 1, // llvm.hexagon.M2.mmpyh.rs1
+ 1, // llvm.hexagon.M2.mmpyh.s0
+ 1, // llvm.hexagon.M2.mmpyh.s1
+ 1, // llvm.hexagon.M2.mmpyl.rs0
+ 1, // llvm.hexagon.M2.mmpyl.rs1
+ 1, // llvm.hexagon.M2.mmpyl.s0
+ 1, // llvm.hexagon.M2.mmpyl.s1
+ 1, // llvm.hexagon.M2.mmpyuh.rs0
+ 1, // llvm.hexagon.M2.mmpyuh.rs1
+ 1, // llvm.hexagon.M2.mmpyuh.s0
+ 1, // llvm.hexagon.M2.mmpyuh.s1
+ 1, // llvm.hexagon.M2.mmpyul.rs0
+ 1, // llvm.hexagon.M2.mmpyul.rs1
+ 1, // llvm.hexagon.M2.mmpyul.s0
+ 1, // llvm.hexagon.M2.mmpyul.s1
+ 1, // llvm.hexagon.M2.mpy.acc.hh.s0
+ 1, // llvm.hexagon.M2.mpy.acc.hh.s1
+ 1, // llvm.hexagon.M2.mpy.acc.hl.s0
+ 1, // llvm.hexagon.M2.mpy.acc.hl.s1
+ 1, // llvm.hexagon.M2.mpy.acc.lh.s0
+ 1, // llvm.hexagon.M2.mpy.acc.lh.s1
+ 1, // llvm.hexagon.M2.mpy.acc.ll.s0
+ 1, // llvm.hexagon.M2.mpy.acc.ll.s1
+ 1, // llvm.hexagon.M2.mpy.acc.sat.hh.s0
+ 1, // llvm.hexagon.M2.mpy.acc.sat.hh.s1
+ 1, // llvm.hexagon.M2.mpy.acc.sat.hl.s0
+ 1, // llvm.hexagon.M2.mpy.acc.sat.hl.s1
+ 1, // llvm.hexagon.M2.mpy.acc.sat.lh.s0
+ 1, // llvm.hexagon.M2.mpy.acc.sat.lh.s1
+ 1, // llvm.hexagon.M2.mpy.acc.sat.ll.s0
+ 1, // llvm.hexagon.M2.mpy.acc.sat.ll.s1
+ 1, // llvm.hexagon.M2.mpy.hh.s0
+ 1, // llvm.hexagon.M2.mpy.hh.s1
+ 1, // llvm.hexagon.M2.mpy.hl.s0
+ 1, // llvm.hexagon.M2.mpy.hl.s1
+ 1, // llvm.hexagon.M2.mpy.lh.s0
+ 1, // llvm.hexagon.M2.mpy.lh.s1
+ 1, // llvm.hexagon.M2.mpy.ll.s0
+ 1, // llvm.hexagon.M2.mpy.ll.s1
+ 1, // llvm.hexagon.M2.mpy.nac.hh.s0
+ 1, // llvm.hexagon.M2.mpy.nac.hh.s1
+ 1, // llvm.hexagon.M2.mpy.nac.hl.s0
+ 1, // llvm.hexagon.M2.mpy.nac.hl.s1
+ 1, // llvm.hexagon.M2.mpy.nac.lh.s0
+ 1, // llvm.hexagon.M2.mpy.nac.lh.s1
+ 1, // llvm.hexagon.M2.mpy.nac.ll.s0
+ 1, // llvm.hexagon.M2.mpy.nac.ll.s1
+ 1, // llvm.hexagon.M2.mpy.nac.sat.hh.s0
+ 1, // llvm.hexagon.M2.mpy.nac.sat.hh.s1
+ 1, // llvm.hexagon.M2.mpy.nac.sat.hl.s0
+ 1, // llvm.hexagon.M2.mpy.nac.sat.hl.s1
+ 1, // llvm.hexagon.M2.mpy.nac.sat.lh.s0
+ 1, // llvm.hexagon.M2.mpy.nac.sat.lh.s1
+ 1, // llvm.hexagon.M2.mpy.nac.sat.ll.s0
+ 1, // llvm.hexagon.M2.mpy.nac.sat.ll.s1
+ 1, // llvm.hexagon.M2.mpy.rnd.hh.s0
+ 1, // llvm.hexagon.M2.mpy.rnd.hh.s1
+ 1, // llvm.hexagon.M2.mpy.rnd.hl.s0
+ 1, // llvm.hexagon.M2.mpy.rnd.hl.s1
+ 1, // llvm.hexagon.M2.mpy.rnd.lh.s0
+ 1, // llvm.hexagon.M2.mpy.rnd.lh.s1
+ 1, // llvm.hexagon.M2.mpy.rnd.ll.s0
+ 1, // llvm.hexagon.M2.mpy.rnd.ll.s1
+ 1, // llvm.hexagon.M2.mpy.sat.hh.s0
+ 1, // llvm.hexagon.M2.mpy.sat.hh.s1
+ 1, // llvm.hexagon.M2.mpy.sat.hl.s0
+ 1, // llvm.hexagon.M2.mpy.sat.hl.s1
+ 1, // llvm.hexagon.M2.mpy.sat.lh.s0
+ 1, // llvm.hexagon.M2.mpy.sat.lh.s1
+ 1, // llvm.hexagon.M2.mpy.sat.ll.s0
+ 1, // llvm.hexagon.M2.mpy.sat.ll.s1
+ 1, // llvm.hexagon.M2.mpy.sat.rnd.hh.s0
+ 1, // llvm.hexagon.M2.mpy.sat.rnd.hh.s1
+ 1, // llvm.hexagon.M2.mpy.sat.rnd.hl.s0
+ 1, // llvm.hexagon.M2.mpy.sat.rnd.hl.s1
+ 1, // llvm.hexagon.M2.mpy.sat.rnd.lh.s0
+ 1, // llvm.hexagon.M2.mpy.sat.rnd.lh.s1
+ 1, // llvm.hexagon.M2.mpy.sat.rnd.ll.s0
+ 1, // llvm.hexagon.M2.mpy.sat.rnd.ll.s1
+ 1, // llvm.hexagon.M2.mpy.up
+ 1, // llvm.hexagon.M2.mpy.up.s1
+ 1, // llvm.hexagon.M2.mpy.up.s1.sat
+ 1, // llvm.hexagon.M2.mpyd.acc.hh.s0
+ 1, // llvm.hexagon.M2.mpyd.acc.hh.s1
+ 1, // llvm.hexagon.M2.mpyd.acc.hl.s0
+ 1, // llvm.hexagon.M2.mpyd.acc.hl.s1
+ 1, // llvm.hexagon.M2.mpyd.acc.lh.s0
+ 1, // llvm.hexagon.M2.mpyd.acc.lh.s1
+ 1, // llvm.hexagon.M2.mpyd.acc.ll.s0
+ 1, // llvm.hexagon.M2.mpyd.acc.ll.s1
+ 1, // llvm.hexagon.M2.mpyd.hh.s0
+ 1, // llvm.hexagon.M2.mpyd.hh.s1
+ 1, // llvm.hexagon.M2.mpyd.hl.s0
+ 1, // llvm.hexagon.M2.mpyd.hl.s1
+ 1, // llvm.hexagon.M2.mpyd.lh.s0
+ 1, // llvm.hexagon.M2.mpyd.lh.s1
+ 1, // llvm.hexagon.M2.mpyd.ll.s0
+ 1, // llvm.hexagon.M2.mpyd.ll.s1
+ 1, // llvm.hexagon.M2.mpyd.nac.hh.s0
+ 1, // llvm.hexagon.M2.mpyd.nac.hh.s1
+ 1, // llvm.hexagon.M2.mpyd.nac.hl.s0
+ 1, // llvm.hexagon.M2.mpyd.nac.hl.s1
+ 1, // llvm.hexagon.M2.mpyd.nac.lh.s0
+ 1, // llvm.hexagon.M2.mpyd.nac.lh.s1
+ 1, // llvm.hexagon.M2.mpyd.nac.ll.s0
+ 1, // llvm.hexagon.M2.mpyd.nac.ll.s1
+ 1, // llvm.hexagon.M2.mpyd.rnd.hh.s0
+ 1, // llvm.hexagon.M2.mpyd.rnd.hh.s1
+ 1, // llvm.hexagon.M2.mpyd.rnd.hl.s0
+ 1, // llvm.hexagon.M2.mpyd.rnd.hl.s1
+ 1, // llvm.hexagon.M2.mpyd.rnd.lh.s0
+ 1, // llvm.hexagon.M2.mpyd.rnd.lh.s1
+ 1, // llvm.hexagon.M2.mpyd.rnd.ll.s0
+ 1, // llvm.hexagon.M2.mpyd.rnd.ll.s1
+ 1, // llvm.hexagon.M2.mpyi
+ 1, // llvm.hexagon.M2.mpysmi
+ 1, // llvm.hexagon.M2.mpysu.up
+ 1, // llvm.hexagon.M2.mpyu.acc.hh.s0
+ 1, // llvm.hexagon.M2.mpyu.acc.hh.s1
+ 1, // llvm.hexagon.M2.mpyu.acc.hl.s0
+ 1, // llvm.hexagon.M2.mpyu.acc.hl.s1
+ 1, // llvm.hexagon.M2.mpyu.acc.lh.s0
+ 1, // llvm.hexagon.M2.mpyu.acc.lh.s1
+ 1, // llvm.hexagon.M2.mpyu.acc.ll.s0
+ 1, // llvm.hexagon.M2.mpyu.acc.ll.s1
+ 1, // llvm.hexagon.M2.mpyu.hh.s0
+ 1, // llvm.hexagon.M2.mpyu.hh.s1
+ 1, // llvm.hexagon.M2.mpyu.hl.s0
+ 1, // llvm.hexagon.M2.mpyu.hl.s1
+ 1, // llvm.hexagon.M2.mpyu.lh.s0
+ 1, // llvm.hexagon.M2.mpyu.lh.s1
+ 1, // llvm.hexagon.M2.mpyu.ll.s0
+ 1, // llvm.hexagon.M2.mpyu.ll.s1
+ 1, // llvm.hexagon.M2.mpyu.nac.hh.s0
+ 1, // llvm.hexagon.M2.mpyu.nac.hh.s1
+ 1, // llvm.hexagon.M2.mpyu.nac.hl.s0
+ 1, // llvm.hexagon.M2.mpyu.nac.hl.s1
+ 1, // llvm.hexagon.M2.mpyu.nac.lh.s0
+ 1, // llvm.hexagon.M2.mpyu.nac.lh.s1
+ 1, // llvm.hexagon.M2.mpyu.nac.ll.s0
+ 1, // llvm.hexagon.M2.mpyu.nac.ll.s1
+ 1, // llvm.hexagon.M2.mpyu.up
+ 1, // llvm.hexagon.M2.mpyud.acc.hh.s0
+ 1, // llvm.hexagon.M2.mpyud.acc.hh.s1
+ 1, // llvm.hexagon.M2.mpyud.acc.hl.s0
+ 1, // llvm.hexagon.M2.mpyud.acc.hl.s1
+ 1, // llvm.hexagon.M2.mpyud.acc.lh.s0
+ 1, // llvm.hexagon.M2.mpyud.acc.lh.s1
+ 1, // llvm.hexagon.M2.mpyud.acc.ll.s0
+ 1, // llvm.hexagon.M2.mpyud.acc.ll.s1
+ 1, // llvm.hexagon.M2.mpyud.hh.s0
+ 1, // llvm.hexagon.M2.mpyud.hh.s1
+ 1, // llvm.hexagon.M2.mpyud.hl.s0
+ 1, // llvm.hexagon.M2.mpyud.hl.s1
+ 1, // llvm.hexagon.M2.mpyud.lh.s0
+ 1, // llvm.hexagon.M2.mpyud.lh.s1
+ 1, // llvm.hexagon.M2.mpyud.ll.s0
+ 1, // llvm.hexagon.M2.mpyud.ll.s1
+ 1, // llvm.hexagon.M2.mpyud.nac.hh.s0
+ 1, // llvm.hexagon.M2.mpyud.nac.hh.s1
+ 1, // llvm.hexagon.M2.mpyud.nac.hl.s0
+ 1, // llvm.hexagon.M2.mpyud.nac.hl.s1
+ 1, // llvm.hexagon.M2.mpyud.nac.lh.s0
+ 1, // llvm.hexagon.M2.mpyud.nac.lh.s1
+ 1, // llvm.hexagon.M2.mpyud.nac.ll.s0
+ 1, // llvm.hexagon.M2.mpyud.nac.ll.s1
+ 1, // llvm.hexagon.M2.mpyui
+ 1, // llvm.hexagon.M2.nacci
+ 1, // llvm.hexagon.M2.naccii
+ 1, // llvm.hexagon.M2.subacc
+ 1, // llvm.hexagon.M2.vabsdiffh
+ 1, // llvm.hexagon.M2.vabsdiffw
+ 1, // llvm.hexagon.M2.vcmac.s0.sat.i
+ 1, // llvm.hexagon.M2.vcmac.s0.sat.r
+ 1, // llvm.hexagon.M2.vcmpy.s0.sat.i
+ 1, // llvm.hexagon.M2.vcmpy.s0.sat.r
+ 1, // llvm.hexagon.M2.vcmpy.s1.sat.i
+ 1, // llvm.hexagon.M2.vcmpy.s1.sat.r
+ 1, // llvm.hexagon.M2.vdmacs.s0
+ 1, // llvm.hexagon.M2.vdmacs.s1
+ 1, // llvm.hexagon.M2.vdmpyrs.s0
+ 1, // llvm.hexagon.M2.vdmpyrs.s1
+ 1, // llvm.hexagon.M2.vdmpys.s0
+ 1, // llvm.hexagon.M2.vdmpys.s1
+ 1, // llvm.hexagon.M2.vmac2
+ 1, // llvm.hexagon.M2.vmac2es
+ 1, // llvm.hexagon.M2.vmac2es.s0
+ 1, // llvm.hexagon.M2.vmac2es.s1
+ 1, // llvm.hexagon.M2.vmac2s.s0
+ 1, // llvm.hexagon.M2.vmac2s.s1
+ 1, // llvm.hexagon.M2.vmac2su.s0
+ 1, // llvm.hexagon.M2.vmac2su.s1
+ 1, // llvm.hexagon.M2.vmpy2es.s0
+ 1, // llvm.hexagon.M2.vmpy2es.s1
+ 1, // llvm.hexagon.M2.vmpy2s.s0
+ 1, // llvm.hexagon.M2.vmpy2s.s0pack
+ 1, // llvm.hexagon.M2.vmpy2s.s1
+ 1, // llvm.hexagon.M2.vmpy2s.s1pack
+ 1, // llvm.hexagon.M2.vmpy2su.s0
+ 1, // llvm.hexagon.M2.vmpy2su.s1
+ 1, // llvm.hexagon.M2.vraddh
+ 1, // llvm.hexagon.M2.vradduh
+ 1, // llvm.hexagon.M2.vrcmaci.s0
+ 1, // llvm.hexagon.M2.vrcmaci.s0c
+ 1, // llvm.hexagon.M2.vrcmacr.s0
+ 1, // llvm.hexagon.M2.vrcmacr.s0c
+ 1, // llvm.hexagon.M2.vrcmpyi.s0
+ 1, // llvm.hexagon.M2.vrcmpyi.s0c
+ 1, // llvm.hexagon.M2.vrcmpyr.s0
+ 1, // llvm.hexagon.M2.vrcmpyr.s0c
+ 1, // llvm.hexagon.M2.vrcmpys.acc.s1
+ 1, // llvm.hexagon.M2.vrcmpys.s1
+ 1, // llvm.hexagon.M2.vrcmpys.s1rp
+ 1, // llvm.hexagon.M2.vrmac.s0
+ 1, // llvm.hexagon.M2.vrmpy.s0
+ 1, // llvm.hexagon.M2.xor.xacc
+ 1, // llvm.hexagon.M4.and.and
+ 1, // llvm.hexagon.M4.and.andn
+ 1, // llvm.hexagon.M4.and.or
+ 1, // llvm.hexagon.M4.and.xor
+ 1, // llvm.hexagon.M4.cmpyi.wh
+ 1, // llvm.hexagon.M4.cmpyi.whc
+ 1, // llvm.hexagon.M4.cmpyr.wh
+ 1, // llvm.hexagon.M4.cmpyr.whc
+ 1, // llvm.hexagon.M4.mac.up.s1.sat
+ 1, // llvm.hexagon.M4.mpyri.addi
+ 1, // llvm.hexagon.M4.mpyri.addr
+ 1, // llvm.hexagon.M4.mpyri.addr.u2
+ 1, // llvm.hexagon.M4.mpyrr.addi
+ 1, // llvm.hexagon.M4.mpyrr.addr
+ 1, // llvm.hexagon.M4.nac.up.s1.sat
+ 1, // llvm.hexagon.M4.or.and
+ 1, // llvm.hexagon.M4.or.andn
+ 1, // llvm.hexagon.M4.or.or
+ 1, // llvm.hexagon.M4.or.xor
+ 1, // llvm.hexagon.M4.pmpyw
+ 1, // llvm.hexagon.M4.pmpyw.acc
+ 1, // llvm.hexagon.M4.vpmpyh
+ 1, // llvm.hexagon.M4.vpmpyh.acc
+ 1, // llvm.hexagon.M4.vrmpyeh.acc.s0
+ 1, // llvm.hexagon.M4.vrmpyeh.acc.s1
+ 1, // llvm.hexagon.M4.vrmpyeh.s0
+ 1, // llvm.hexagon.M4.vrmpyeh.s1
+ 1, // llvm.hexagon.M4.vrmpyoh.acc.s0
+ 1, // llvm.hexagon.M4.vrmpyoh.acc.s1
+ 1, // llvm.hexagon.M4.vrmpyoh.s0
+ 1, // llvm.hexagon.M4.vrmpyoh.s1
+ 1, // llvm.hexagon.M4.xor.and
+ 1, // llvm.hexagon.M4.xor.andn
+ 1, // llvm.hexagon.M4.xor.or
+ 1, // llvm.hexagon.M4.xor.xacc
+ 1, // llvm.hexagon.M5.vdmacbsu
+ 1, // llvm.hexagon.M5.vdmpybsu
+ 1, // llvm.hexagon.M5.vmacbsu
+ 1, // llvm.hexagon.M5.vmacbuu
+ 1, // llvm.hexagon.M5.vmpybsu
+ 1, // llvm.hexagon.M5.vmpybuu
+ 1, // llvm.hexagon.M5.vrmacbsu
+ 1, // llvm.hexagon.M5.vrmacbuu
+ 1, // llvm.hexagon.M5.vrmpybsu
+ 1, // llvm.hexagon.M5.vrmpybuu
+ 1, // llvm.hexagon.S2.addasl.rrri
+ 1, // llvm.hexagon.S2.asl.i.p
+ 1, // llvm.hexagon.S2.asl.i.p.acc
+ 1, // llvm.hexagon.S2.asl.i.p.and
+ 1, // llvm.hexagon.S2.asl.i.p.nac
+ 1, // llvm.hexagon.S2.asl.i.p.or
+ 1, // llvm.hexagon.S2.asl.i.p.xacc
+ 1, // llvm.hexagon.S2.asl.i.r
+ 1, // llvm.hexagon.S2.asl.i.r.acc
+ 1, // llvm.hexagon.S2.asl.i.r.and
+ 1, // llvm.hexagon.S2.asl.i.r.nac
+ 1, // llvm.hexagon.S2.asl.i.r.or
+ 1, // llvm.hexagon.S2.asl.i.r.sat
+ 1, // llvm.hexagon.S2.asl.i.r.xacc
+ 1, // llvm.hexagon.S2.asl.i.vh
+ 1, // llvm.hexagon.S2.asl.i.vw
+ 1, // llvm.hexagon.S2.asl.r.p
+ 1, // llvm.hexagon.S2.asl.r.p.acc
+ 1, // llvm.hexagon.S2.asl.r.p.and
+ 1, // llvm.hexagon.S2.asl.r.p.nac
+ 1, // llvm.hexagon.S2.asl.r.p.or
+ 1, // llvm.hexagon.S2.asl.r.p.xor
+ 1, // llvm.hexagon.S2.asl.r.r
+ 1, // llvm.hexagon.S2.asl.r.r.acc
+ 1, // llvm.hexagon.S2.asl.r.r.and
+ 1, // llvm.hexagon.S2.asl.r.r.nac
+ 1, // llvm.hexagon.S2.asl.r.r.or
+ 1, // llvm.hexagon.S2.asl.r.r.sat
+ 1, // llvm.hexagon.S2.asl.r.vh
+ 1, // llvm.hexagon.S2.asl.r.vw
+ 1, // llvm.hexagon.S2.asr.i.p
+ 1, // llvm.hexagon.S2.asr.i.p.acc
+ 1, // llvm.hexagon.S2.asr.i.p.and
+ 1, // llvm.hexagon.S2.asr.i.p.nac
+ 1, // llvm.hexagon.S2.asr.i.p.or
+ 1, // llvm.hexagon.S2.asr.i.p.rnd
+ 1, // llvm.hexagon.S2.asr.i.p.rnd.goodsyntax
+ 1, // llvm.hexagon.S2.asr.i.r
+ 1, // llvm.hexagon.S2.asr.i.r.acc
+ 1, // llvm.hexagon.S2.asr.i.r.and
+ 1, // llvm.hexagon.S2.asr.i.r.nac
+ 1, // llvm.hexagon.S2.asr.i.r.or
+ 1, // llvm.hexagon.S2.asr.i.r.rnd
+ 1, // llvm.hexagon.S2.asr.i.r.rnd.goodsyntax
+ 1, // llvm.hexagon.S2.asr.i.svw.trun
+ 1, // llvm.hexagon.S2.asr.i.vh
+ 1, // llvm.hexagon.S2.asr.i.vw
+ 1, // llvm.hexagon.S2.asr.r.p
+ 1, // llvm.hexagon.S2.asr.r.p.acc
+ 1, // llvm.hexagon.S2.asr.r.p.and
+ 1, // llvm.hexagon.S2.asr.r.p.nac
+ 1, // llvm.hexagon.S2.asr.r.p.or
+ 1, // llvm.hexagon.S2.asr.r.p.xor
+ 1, // llvm.hexagon.S2.asr.r.r
+ 1, // llvm.hexagon.S2.asr.r.r.acc
+ 1, // llvm.hexagon.S2.asr.r.r.and
+ 1, // llvm.hexagon.S2.asr.r.r.nac
+ 1, // llvm.hexagon.S2.asr.r.r.or
+ 1, // llvm.hexagon.S2.asr.r.r.sat
+ 1, // llvm.hexagon.S2.asr.r.svw.trun
+ 1, // llvm.hexagon.S2.asr.r.vh
+ 1, // llvm.hexagon.S2.asr.r.vw
+ 1, // llvm.hexagon.S2.brev
+ 1, // llvm.hexagon.S2.brevp
+ 1, // llvm.hexagon.S2.cl0
+ 1, // llvm.hexagon.S2.cl0p
+ 1, // llvm.hexagon.S2.cl1
+ 1, // llvm.hexagon.S2.cl1p
+ 1, // llvm.hexagon.S2.clb
+ 1, // llvm.hexagon.S2.clbnorm
+ 1, // llvm.hexagon.S2.clbp
+ 1, // llvm.hexagon.S2.clrbit.i
+ 1, // llvm.hexagon.S2.clrbit.r
+ 1, // llvm.hexagon.S2.ct0
+ 1, // llvm.hexagon.S2.ct0p
+ 1, // llvm.hexagon.S2.ct1
+ 1, // llvm.hexagon.S2.ct1p
+ 1, // llvm.hexagon.S2.deinterleave
+ 1, // llvm.hexagon.S2.extractu
+ 1, // llvm.hexagon.S2.extractu.rp
+ 1, // llvm.hexagon.S2.extractup
+ 1, // llvm.hexagon.S2.extractup.rp
+ 1, // llvm.hexagon.S2.insert
+ 1, // llvm.hexagon.S2.insert.rp
+ 1, // llvm.hexagon.S2.insertp
+ 1, // llvm.hexagon.S2.insertp.rp
+ 1, // llvm.hexagon.S2.interleave
+ 1, // llvm.hexagon.S2.lfsp
+ 1, // llvm.hexagon.S2.lsl.r.p
+ 1, // llvm.hexagon.S2.lsl.r.p.acc
+ 1, // llvm.hexagon.S2.lsl.r.p.and
+ 1, // llvm.hexagon.S2.lsl.r.p.nac
+ 1, // llvm.hexagon.S2.lsl.r.p.or
+ 1, // llvm.hexagon.S2.lsl.r.p.xor
+ 1, // llvm.hexagon.S2.lsl.r.r
+ 1, // llvm.hexagon.S2.lsl.r.r.acc
+ 1, // llvm.hexagon.S2.lsl.r.r.and
+ 1, // llvm.hexagon.S2.lsl.r.r.nac
+ 1, // llvm.hexagon.S2.lsl.r.r.or
+ 1, // llvm.hexagon.S2.lsl.r.vh
+ 1, // llvm.hexagon.S2.lsl.r.vw
+ 1, // llvm.hexagon.S2.lsr.i.p
+ 1, // llvm.hexagon.S2.lsr.i.p.acc
+ 1, // llvm.hexagon.S2.lsr.i.p.and
+ 1, // llvm.hexagon.S2.lsr.i.p.nac
+ 1, // llvm.hexagon.S2.lsr.i.p.or
+ 1, // llvm.hexagon.S2.lsr.i.p.xacc
+ 1, // llvm.hexagon.S2.lsr.i.r
+ 1, // llvm.hexagon.S2.lsr.i.r.acc
+ 1, // llvm.hexagon.S2.lsr.i.r.and
+ 1, // llvm.hexagon.S2.lsr.i.r.nac
+ 1, // llvm.hexagon.S2.lsr.i.r.or
+ 1, // llvm.hexagon.S2.lsr.i.r.xacc
+ 1, // llvm.hexagon.S2.lsr.i.vh
+ 1, // llvm.hexagon.S2.lsr.i.vw
+ 1, // llvm.hexagon.S2.lsr.r.p
+ 1, // llvm.hexagon.S2.lsr.r.p.acc
+ 1, // llvm.hexagon.S2.lsr.r.p.and
+ 1, // llvm.hexagon.S2.lsr.r.p.nac
+ 1, // llvm.hexagon.S2.lsr.r.p.or
+ 1, // llvm.hexagon.S2.lsr.r.p.xor
+ 1, // llvm.hexagon.S2.lsr.r.r
+ 1, // llvm.hexagon.S2.lsr.r.r.acc
+ 1, // llvm.hexagon.S2.lsr.r.r.and
+ 1, // llvm.hexagon.S2.lsr.r.r.nac
+ 1, // llvm.hexagon.S2.lsr.r.r.or
+ 1, // llvm.hexagon.S2.lsr.r.vh
+ 1, // llvm.hexagon.S2.lsr.r.vw
+ 1, // llvm.hexagon.S2.packhl
+ 1, // llvm.hexagon.S2.parityp
+ 1, // llvm.hexagon.S2.setbit.i
+ 1, // llvm.hexagon.S2.setbit.r
+ 1, // llvm.hexagon.S2.shuffeb
+ 1, // llvm.hexagon.S2.shuffeh
+ 1, // llvm.hexagon.S2.shuffob
+ 1, // llvm.hexagon.S2.shuffoh
+ 1, // llvm.hexagon.S2.svsathb
+ 1, // llvm.hexagon.S2.svsathub
+ 1, // llvm.hexagon.S2.tableidxb.goodsyntax
+ 1, // llvm.hexagon.S2.tableidxd.goodsyntax
+ 1, // llvm.hexagon.S2.tableidxh.goodsyntax
+ 1, // llvm.hexagon.S2.tableidxw.goodsyntax
+ 1, // llvm.hexagon.S2.togglebit.i
+ 1, // llvm.hexagon.S2.togglebit.r
+ 1, // llvm.hexagon.S2.tstbit.i
+ 1, // llvm.hexagon.S2.tstbit.r
+ 1, // llvm.hexagon.S2.valignib
+ 1, // llvm.hexagon.S2.valignrb
+ 1, // llvm.hexagon.S2.vcnegh
+ 1, // llvm.hexagon.S2.vcrotate
+ 1, // llvm.hexagon.S2.vrcnegh
+ 1, // llvm.hexagon.S2.vrndpackwh
+ 1, // llvm.hexagon.S2.vrndpackwhs
+ 1, // llvm.hexagon.S2.vsathb
+ 1, // llvm.hexagon.S2.vsathb.nopack
+ 1, // llvm.hexagon.S2.vsathub
+ 1, // llvm.hexagon.S2.vsathub.nopack
+ 1, // llvm.hexagon.S2.vsatwh
+ 1, // llvm.hexagon.S2.vsatwh.nopack
+ 1, // llvm.hexagon.S2.vsatwuh
+ 1, // llvm.hexagon.S2.vsatwuh.nopack
+ 1, // llvm.hexagon.S2.vsplatrb
+ 1, // llvm.hexagon.S2.vsplatrh
+ 1, // llvm.hexagon.S2.vspliceib
+ 1, // llvm.hexagon.S2.vsplicerb
+ 1, // llvm.hexagon.S2.vsxtbh
+ 1, // llvm.hexagon.S2.vsxthw
+ 1, // llvm.hexagon.S2.vtrunehb
+ 1, // llvm.hexagon.S2.vtrunewh
+ 1, // llvm.hexagon.S2.vtrunohb
+ 1, // llvm.hexagon.S2.vtrunowh
+ 1, // llvm.hexagon.S2.vzxtbh
+ 1, // llvm.hexagon.S2.vzxthw
+ 1, // llvm.hexagon.S4.addaddi
+ 1, // llvm.hexagon.S4.addi.asl.ri
+ 1, // llvm.hexagon.S4.addi.lsr.ri
+ 1, // llvm.hexagon.S4.andi.asl.ri
+ 1, // llvm.hexagon.S4.andi.lsr.ri
+ 1, // llvm.hexagon.S4.clbaddi
+ 1, // llvm.hexagon.S4.clbpaddi
+ 1, // llvm.hexagon.S4.clbpnorm
+ 1, // llvm.hexagon.S4.extract
+ 1, // llvm.hexagon.S4.extract.rp
+ 1, // llvm.hexagon.S4.extractp
+ 1, // llvm.hexagon.S4.extractp.rp
+ 1, // llvm.hexagon.S4.lsli
+ 1, // llvm.hexagon.S4.ntstbit.i
+ 1, // llvm.hexagon.S4.ntstbit.r
+ 1, // llvm.hexagon.S4.or.andi
+ 1, // llvm.hexagon.S4.or.andix
+ 1, // llvm.hexagon.S4.or.ori
+ 1, // llvm.hexagon.S4.ori.asl.ri
+ 1, // llvm.hexagon.S4.ori.lsr.ri
+ 1, // llvm.hexagon.S4.parity
+ 1, // llvm.hexagon.S4.subaddi
+ 1, // llvm.hexagon.S4.subi.asl.ri
+ 1, // llvm.hexagon.S4.subi.lsr.ri
+ 1, // llvm.hexagon.S4.vrcrotate
+ 1, // llvm.hexagon.S4.vrcrotate.acc
+ 1, // llvm.hexagon.S4.vxaddsubh
+ 1, // llvm.hexagon.S4.vxaddsubhr
+ 1, // llvm.hexagon.S4.vxaddsubw
+ 1, // llvm.hexagon.S4.vxsubaddh
+ 1, // llvm.hexagon.S4.vxsubaddhr
+ 1, // llvm.hexagon.S4.vxsubaddw
+ 1, // llvm.hexagon.S5.asrhub.rnd.sat.goodsyntax
+ 1, // llvm.hexagon.S5.asrhub.sat
+ 1, // llvm.hexagon.S5.popcountp
+ 1, // llvm.hexagon.S5.vasrhrnd.goodsyntax
+ 1, // llvm.hexagon.SI.to.SXTHI.asrh
+ 2, // llvm.hexagon.circ.ldd
+ 12, // llvm.init.trampoline
+ 4, // llvm.invariant.end
+ 13, // llvm.invariant.start
+ 13, // llvm.lifetime.end
+ 13, // llvm.lifetime.start
+ 1, // llvm.log
+ 1, // llvm.log10
+ 1, // llvm.log2
+ 9, // llvm.longjmp
+ 14, // llvm.memcpy
+ 14, // llvm.memmove
+ 12, // llvm.memset
+ 2, // llvm.mips.absq.s.ph
+ 2, // llvm.mips.absq.s.qb
+ 2, // llvm.mips.absq.s.w
+ 1, // llvm.mips.add.a.b
+ 1, // llvm.mips.add.a.d
+ 1, // llvm.mips.add.a.h
+ 1, // llvm.mips.add.a.w
+ 1, // llvm.mips.addq.ph
+ 1, // llvm.mips.addq.s.ph
+ 2, // llvm.mips.addq.s.w
+ 1, // llvm.mips.addqh.ph
+ 1, // llvm.mips.addqh.r.ph
+ 1, // llvm.mips.addqh.r.w
+ 1, // llvm.mips.addqh.w
+ 1, // llvm.mips.adds.a.b
+ 1, // llvm.mips.adds.a.d
+ 1, // llvm.mips.adds.a.h
+ 1, // llvm.mips.adds.a.w
+ 1, // llvm.mips.adds.s.b
+ 1, // llvm.mips.adds.s.d
+ 1, // llvm.mips.adds.s.h
+ 1, // llvm.mips.adds.s.w
+ 1, // llvm.mips.adds.u.b
+ 1, // llvm.mips.adds.u.d
+ 1, // llvm.mips.adds.u.h
+ 1, // llvm.mips.adds.u.w
+ 2, // llvm.mips.addsc
+ 2, // llvm.mips.addu.ph
+ 1, // llvm.mips.addu.qb
+ 2, // llvm.mips.addu.s.ph
+ 1, // llvm.mips.addu.s.qb
+ 1, // llvm.mips.adduh.qb
+ 1, // llvm.mips.adduh.r.qb
+ 1, // llvm.mips.addv.b
+ 1, // llvm.mips.addv.d
+ 1, // llvm.mips.addv.h
+ 1, // llvm.mips.addv.w
+ 1, // llvm.mips.addvi.b
+ 1, // llvm.mips.addvi.d
+ 1, // llvm.mips.addvi.h
+ 1, // llvm.mips.addvi.w
+ 2, // llvm.mips.addwc
+ 1, // llvm.mips.and.v
+ 1, // llvm.mips.andi.b
+ 1, // llvm.mips.append
+ 1, // llvm.mips.asub.s.b
+ 1, // llvm.mips.asub.s.d
+ 1, // llvm.mips.asub.s.h
+ 1, // llvm.mips.asub.s.w
+ 1, // llvm.mips.asub.u.b
+ 1, // llvm.mips.asub.u.d
+ 1, // llvm.mips.asub.u.h
+ 1, // llvm.mips.asub.u.w
+ 1, // llvm.mips.ave.s.b
+ 1, // llvm.mips.ave.s.d
+ 1, // llvm.mips.ave.s.h
+ 1, // llvm.mips.ave.s.w
+ 1, // llvm.mips.ave.u.b
+ 1, // llvm.mips.ave.u.d
+ 1, // llvm.mips.ave.u.h
+ 1, // llvm.mips.ave.u.w
+ 1, // llvm.mips.aver.s.b
+ 1, // llvm.mips.aver.s.d
+ 1, // llvm.mips.aver.s.h
+ 1, // llvm.mips.aver.s.w
+ 1, // llvm.mips.aver.u.b
+ 1, // llvm.mips.aver.u.d
+ 1, // llvm.mips.aver.u.h
+ 1, // llvm.mips.aver.u.w
+ 1, // llvm.mips.balign
+ 1, // llvm.mips.bclr.b
+ 1, // llvm.mips.bclr.d
+ 1, // llvm.mips.bclr.h
+ 1, // llvm.mips.bclr.w
+ 1, // llvm.mips.bclri.b
+ 1, // llvm.mips.bclri.d
+ 1, // llvm.mips.bclri.h
+ 1, // llvm.mips.bclri.w
+ 1, // llvm.mips.binsl.b
+ 1, // llvm.mips.binsl.d
+ 1, // llvm.mips.binsl.h
+ 1, // llvm.mips.binsl.w
+ 1, // llvm.mips.binsli.b
+ 1, // llvm.mips.binsli.d
+ 1, // llvm.mips.binsli.h
+ 1, // llvm.mips.binsli.w
+ 1, // llvm.mips.binsr.b
+ 1, // llvm.mips.binsr.d
+ 1, // llvm.mips.binsr.h
+ 1, // llvm.mips.binsr.w
+ 1, // llvm.mips.binsri.b
+ 1, // llvm.mips.binsri.d
+ 1, // llvm.mips.binsri.h
+ 1, // llvm.mips.binsri.w
+ 1, // llvm.mips.bitrev
+ 1, // llvm.mips.bmnz.v
+ 1, // llvm.mips.bmnzi.b
+ 1, // llvm.mips.bmz.v
+ 1, // llvm.mips.bmzi.b
+ 1, // llvm.mips.bneg.b
+ 1, // llvm.mips.bneg.d
+ 1, // llvm.mips.bneg.h
+ 1, // llvm.mips.bneg.w
+ 1, // llvm.mips.bnegi.b
+ 1, // llvm.mips.bnegi.d
+ 1, // llvm.mips.bnegi.h
+ 1, // llvm.mips.bnegi.w
+ 1, // llvm.mips.bnz.b
+ 1, // llvm.mips.bnz.d
+ 1, // llvm.mips.bnz.h
+ 1, // llvm.mips.bnz.v
+ 1, // llvm.mips.bnz.w
+ 3, // llvm.mips.bposge32
+ 1, // llvm.mips.bsel.v
+ 1, // llvm.mips.bseli.b
+ 1, // llvm.mips.bset.b
+ 1, // llvm.mips.bset.d
+ 1, // llvm.mips.bset.h
+ 1, // llvm.mips.bset.w
+ 1, // llvm.mips.bseti.b
+ 1, // llvm.mips.bseti.d
+ 1, // llvm.mips.bseti.h
+ 1, // llvm.mips.bseti.w
+ 1, // llvm.mips.bz.b
+ 1, // llvm.mips.bz.d
+ 1, // llvm.mips.bz.h
+ 1, // llvm.mips.bz.v
+ 1, // llvm.mips.bz.w
+ 1, // llvm.mips.ceq.b
+ 1, // llvm.mips.ceq.d
+ 1, // llvm.mips.ceq.h
+ 1, // llvm.mips.ceq.w
+ 1, // llvm.mips.ceqi.b
+ 1, // llvm.mips.ceqi.d
+ 1, // llvm.mips.ceqi.h
+ 1, // llvm.mips.ceqi.w
+ 2, // llvm.mips.cfcmsa
+ 1, // llvm.mips.cle.s.b
+ 1, // llvm.mips.cle.s.d
+ 1, // llvm.mips.cle.s.h
+ 1, // llvm.mips.cle.s.w
+ 1, // llvm.mips.cle.u.b
+ 1, // llvm.mips.cle.u.d
+ 1, // llvm.mips.cle.u.h
+ 1, // llvm.mips.cle.u.w
+ 1, // llvm.mips.clei.s.b
+ 1, // llvm.mips.clei.s.d
+ 1, // llvm.mips.clei.s.h
+ 1, // llvm.mips.clei.s.w
+ 1, // llvm.mips.clei.u.b
+ 1, // llvm.mips.clei.u.d
+ 1, // llvm.mips.clei.u.h
+ 1, // llvm.mips.clei.u.w
+ 1, // llvm.mips.clt.s.b
+ 1, // llvm.mips.clt.s.d
+ 1, // llvm.mips.clt.s.h
+ 1, // llvm.mips.clt.s.w
+ 1, // llvm.mips.clt.u.b
+ 1, // llvm.mips.clt.u.d
+ 1, // llvm.mips.clt.u.h
+ 1, // llvm.mips.clt.u.w
+ 1, // llvm.mips.clti.s.b
+ 1, // llvm.mips.clti.s.d
+ 1, // llvm.mips.clti.s.h
+ 1, // llvm.mips.clti.s.w
+ 1, // llvm.mips.clti.u.b
+ 1, // llvm.mips.clti.u.d
+ 1, // llvm.mips.clti.u.h
+ 1, // llvm.mips.clti.u.w
+ 2, // llvm.mips.cmp.eq.ph
+ 2, // llvm.mips.cmp.le.ph
+ 2, // llvm.mips.cmp.lt.ph
+ 2, // llvm.mips.cmpgdu.eq.qb
+ 2, // llvm.mips.cmpgdu.le.qb
+ 2, // llvm.mips.cmpgdu.lt.qb
+ 2, // llvm.mips.cmpgu.eq.qb
+ 2, // llvm.mips.cmpgu.le.qb
+ 2, // llvm.mips.cmpgu.lt.qb
+ 2, // llvm.mips.cmpu.eq.qb
+ 2, // llvm.mips.cmpu.le.qb
+ 2, // llvm.mips.cmpu.lt.qb
+ 1, // llvm.mips.copy.s.b
+ 1, // llvm.mips.copy.s.d
+ 1, // llvm.mips.copy.s.h
+ 1, // llvm.mips.copy.s.w
+ 1, // llvm.mips.copy.u.b
+ 1, // llvm.mips.copy.u.d
+ 1, // llvm.mips.copy.u.h
+ 1, // llvm.mips.copy.u.w
+ 2, // llvm.mips.ctcmsa
+ 1, // llvm.mips.div.s.b
+ 1, // llvm.mips.div.s.d
+ 1, // llvm.mips.div.s.h
+ 1, // llvm.mips.div.s.w
+ 1, // llvm.mips.div.u.b
+ 1, // llvm.mips.div.u.d
+ 1, // llvm.mips.div.u.h
+ 1, // llvm.mips.div.u.w
+ 1, // llvm.mips.dlsa
+ 1, // llvm.mips.dotp.s.d
+ 1, // llvm.mips.dotp.s.h
+ 1, // llvm.mips.dotp.s.w
+ 1, // llvm.mips.dotp.u.d
+ 1, // llvm.mips.dotp.u.h
+ 1, // llvm.mips.dotp.u.w
+ 1, // llvm.mips.dpa.w.ph
+ 1, // llvm.mips.dpadd.s.d
+ 1, // llvm.mips.dpadd.s.h
+ 1, // llvm.mips.dpadd.s.w
+ 1, // llvm.mips.dpadd.u.d
+ 1, // llvm.mips.dpadd.u.h
+ 1, // llvm.mips.dpadd.u.w
+ 2, // llvm.mips.dpaq.s.w.ph
+ 2, // llvm.mips.dpaq.sa.l.w
+ 2, // llvm.mips.dpaqx.s.w.ph
+ 2, // llvm.mips.dpaqx.sa.w.ph
+ 1, // llvm.mips.dpau.h.qbl
+ 1, // llvm.mips.dpau.h.qbr
+ 1, // llvm.mips.dpax.w.ph
+ 1, // llvm.mips.dps.w.ph
+ 2, // llvm.mips.dpsq.s.w.ph
+ 2, // llvm.mips.dpsq.sa.l.w
+ 2, // llvm.mips.dpsqx.s.w.ph
+ 2, // llvm.mips.dpsqx.sa.w.ph
+ 1, // llvm.mips.dpsu.h.qbl
+ 1, // llvm.mips.dpsu.h.qbr
+ 1, // llvm.mips.dpsub.s.d
+ 1, // llvm.mips.dpsub.s.h
+ 1, // llvm.mips.dpsub.s.w
+ 1, // llvm.mips.dpsub.u.d
+ 1, // llvm.mips.dpsub.u.h
+ 1, // llvm.mips.dpsub.u.w
+ 1, // llvm.mips.dpsx.w.ph
+ 2, // llvm.mips.extp
+ 2, // llvm.mips.extpdp
+ 2, // llvm.mips.extr.r.w
+ 2, // llvm.mips.extr.rs.w
+ 2, // llvm.mips.extr.s.h
+ 2, // llvm.mips.extr.w
+ 1, // llvm.mips.fadd.d
+ 1, // llvm.mips.fadd.w
+ 1, // llvm.mips.fcaf.d
+ 1, // llvm.mips.fcaf.w
+ 1, // llvm.mips.fceq.d
+ 1, // llvm.mips.fceq.w
+ 1, // llvm.mips.fclass.d
+ 1, // llvm.mips.fclass.w
+ 1, // llvm.mips.fcle.d
+ 1, // llvm.mips.fcle.w
+ 1, // llvm.mips.fclt.d
+ 1, // llvm.mips.fclt.w
+ 1, // llvm.mips.fcne.d
+ 1, // llvm.mips.fcne.w
+ 1, // llvm.mips.fcor.d
+ 1, // llvm.mips.fcor.w
+ 1, // llvm.mips.fcueq.d
+ 1, // llvm.mips.fcueq.w
+ 1, // llvm.mips.fcule.d
+ 1, // llvm.mips.fcule.w
+ 1, // llvm.mips.fcult.d
+ 1, // llvm.mips.fcult.w
+ 1, // llvm.mips.fcun.d
+ 1, // llvm.mips.fcun.w
+ 1, // llvm.mips.fcune.d
+ 1, // llvm.mips.fcune.w
+ 1, // llvm.mips.fdiv.d
+ 1, // llvm.mips.fdiv.w
+ 1, // llvm.mips.fexdo.h
+ 1, // llvm.mips.fexdo.w
+ 1, // llvm.mips.fexp2.d
+ 1, // llvm.mips.fexp2.w
+ 1, // llvm.mips.fexupl.d
+ 1, // llvm.mips.fexupl.w
+ 1, // llvm.mips.fexupr.d
+ 1, // llvm.mips.fexupr.w
+ 1, // llvm.mips.ffint.s.d
+ 1, // llvm.mips.ffint.s.w
+ 1, // llvm.mips.ffint.u.d
+ 1, // llvm.mips.ffint.u.w
+ 1, // llvm.mips.ffql.d
+ 1, // llvm.mips.ffql.w
+ 1, // llvm.mips.ffqr.d
+ 1, // llvm.mips.ffqr.w
+ 1, // llvm.mips.fill.b
+ 1, // llvm.mips.fill.d
+ 1, // llvm.mips.fill.h
+ 1, // llvm.mips.fill.w
+ 1, // llvm.mips.flog2.d
+ 1, // llvm.mips.flog2.w
+ 1, // llvm.mips.fmadd.d
+ 1, // llvm.mips.fmadd.w
+ 1, // llvm.mips.fmax.a.d
+ 1, // llvm.mips.fmax.a.w
+ 1, // llvm.mips.fmax.d
+ 1, // llvm.mips.fmax.w
+ 1, // llvm.mips.fmin.a.d
+ 1, // llvm.mips.fmin.a.w
+ 1, // llvm.mips.fmin.d
+ 1, // llvm.mips.fmin.w
+ 1, // llvm.mips.fmsub.d
+ 1, // llvm.mips.fmsub.w
+ 1, // llvm.mips.fmul.d
+ 1, // llvm.mips.fmul.w
+ 1, // llvm.mips.frcp.d
+ 1, // llvm.mips.frcp.w
+ 1, // llvm.mips.frint.d
+ 1, // llvm.mips.frint.w
+ 1, // llvm.mips.frsqrt.d
+ 1, // llvm.mips.frsqrt.w
+ 1, // llvm.mips.fsaf.d
+ 1, // llvm.mips.fsaf.w
+ 1, // llvm.mips.fseq.d
+ 1, // llvm.mips.fseq.w
+ 1, // llvm.mips.fsle.d
+ 1, // llvm.mips.fsle.w
+ 1, // llvm.mips.fslt.d
+ 1, // llvm.mips.fslt.w
+ 1, // llvm.mips.fsne.d
+ 1, // llvm.mips.fsne.w
+ 1, // llvm.mips.fsor.d
+ 1, // llvm.mips.fsor.w
+ 1, // llvm.mips.fsqrt.d
+ 1, // llvm.mips.fsqrt.w
+ 1, // llvm.mips.fsub.d
+ 1, // llvm.mips.fsub.w
+ 1, // llvm.mips.fsueq.d
+ 1, // llvm.mips.fsueq.w
+ 1, // llvm.mips.fsule.d
+ 1, // llvm.mips.fsule.w
+ 1, // llvm.mips.fsult.d
+ 1, // llvm.mips.fsult.w
+ 1, // llvm.mips.fsun.d
+ 1, // llvm.mips.fsun.w
+ 1, // llvm.mips.fsune.d
+ 1, // llvm.mips.fsune.w
+ 1, // llvm.mips.ftint.s.d
+ 1, // llvm.mips.ftint.s.w
+ 1, // llvm.mips.ftint.u.d
+ 1, // llvm.mips.ftint.u.w
+ 1, // llvm.mips.ftq.h
+ 1, // llvm.mips.ftq.w
+ 1, // llvm.mips.ftrunc.s.d
+ 1, // llvm.mips.ftrunc.s.w
+ 1, // llvm.mips.ftrunc.u.d
+ 1, // llvm.mips.ftrunc.u.w
+ 1, // llvm.mips.hadd.s.d
+ 1, // llvm.mips.hadd.s.h
+ 1, // llvm.mips.hadd.s.w
+ 1, // llvm.mips.hadd.u.d
+ 1, // llvm.mips.hadd.u.h
+ 1, // llvm.mips.hadd.u.w
+ 1, // llvm.mips.hsub.s.d
+ 1, // llvm.mips.hsub.s.h
+ 1, // llvm.mips.hsub.s.w
+ 1, // llvm.mips.hsub.u.d
+ 1, // llvm.mips.hsub.u.h
+ 1, // llvm.mips.hsub.u.w
+ 1, // llvm.mips.ilvev.b
+ 1, // llvm.mips.ilvev.d
+ 1, // llvm.mips.ilvev.h
+ 1, // llvm.mips.ilvev.w
+ 1, // llvm.mips.ilvl.b
+ 1, // llvm.mips.ilvl.d
+ 1, // llvm.mips.ilvl.h
+ 1, // llvm.mips.ilvl.w
+ 1, // llvm.mips.ilvod.b
+ 1, // llvm.mips.ilvod.d
+ 1, // llvm.mips.ilvod.h
+ 1, // llvm.mips.ilvod.w
+ 1, // llvm.mips.ilvr.b
+ 1, // llvm.mips.ilvr.d
+ 1, // llvm.mips.ilvr.h
+ 1, // llvm.mips.ilvr.w
+ 1, // llvm.mips.insert.b
+ 1, // llvm.mips.insert.d
+ 1, // llvm.mips.insert.h
+ 1, // llvm.mips.insert.w
+ 3, // llvm.mips.insv
+ 1, // llvm.mips.insve.b
+ 1, // llvm.mips.insve.d
+ 1, // llvm.mips.insve.h
+ 1, // llvm.mips.insve.w
+ 3, // llvm.mips.lbux
+ 3, // llvm.mips.ld.b
+ 3, // llvm.mips.ld.d
+ 3, // llvm.mips.ld.h
+ 3, // llvm.mips.ld.w
+ 1, // llvm.mips.ldi.b
+ 1, // llvm.mips.ldi.d
+ 1, // llvm.mips.ldi.h
+ 1, // llvm.mips.ldi.w
+ 3, // llvm.mips.lhx
+ 1, // llvm.mips.lsa
+ 3, // llvm.mips.lwx
+ 1, // llvm.mips.madd
+ 1, // llvm.mips.madd.q.h
+ 1, // llvm.mips.madd.q.w
+ 1, // llvm.mips.maddr.q.h
+ 1, // llvm.mips.maddr.q.w
+ 1, // llvm.mips.maddu
+ 1, // llvm.mips.maddv.b
+ 1, // llvm.mips.maddv.d
+ 1, // llvm.mips.maddv.h
+ 1, // llvm.mips.maddv.w
+ 2, // llvm.mips.maq.s.w.phl
+ 2, // llvm.mips.maq.s.w.phr
+ 2, // llvm.mips.maq.sa.w.phl
+ 2, // llvm.mips.maq.sa.w.phr
+ 1, // llvm.mips.max.a.b
+ 1, // llvm.mips.max.a.d
+ 1, // llvm.mips.max.a.h
+ 1, // llvm.mips.max.a.w
+ 1, // llvm.mips.max.s.b
+ 1, // llvm.mips.max.s.d
+ 1, // llvm.mips.max.s.h
+ 1, // llvm.mips.max.s.w
+ 1, // llvm.mips.max.u.b
+ 1, // llvm.mips.max.u.d
+ 1, // llvm.mips.max.u.h
+ 1, // llvm.mips.max.u.w
+ 1, // llvm.mips.maxi.s.b
+ 1, // llvm.mips.maxi.s.d
+ 1, // llvm.mips.maxi.s.h
+ 1, // llvm.mips.maxi.s.w
+ 1, // llvm.mips.maxi.u.b
+ 1, // llvm.mips.maxi.u.d
+ 1, // llvm.mips.maxi.u.h
+ 1, // llvm.mips.maxi.u.w
+ 1, // llvm.mips.min.a.b
+ 1, // llvm.mips.min.a.d
+ 1, // llvm.mips.min.a.h
+ 1, // llvm.mips.min.a.w
+ 1, // llvm.mips.min.s.b
+ 1, // llvm.mips.min.s.d
+ 1, // llvm.mips.min.s.h
+ 1, // llvm.mips.min.s.w
+ 1, // llvm.mips.min.u.b
+ 1, // llvm.mips.min.u.d
+ 1, // llvm.mips.min.u.h
+ 1, // llvm.mips.min.u.w
+ 1, // llvm.mips.mini.s.b
+ 1, // llvm.mips.mini.s.d
+ 1, // llvm.mips.mini.s.h
+ 1, // llvm.mips.mini.s.w
+ 1, // llvm.mips.mini.u.b
+ 1, // llvm.mips.mini.u.d
+ 1, // llvm.mips.mini.u.h
+ 1, // llvm.mips.mini.u.w
+ 1, // llvm.mips.mod.s.b
+ 1, // llvm.mips.mod.s.d
+ 1, // llvm.mips.mod.s.h
+ 1, // llvm.mips.mod.s.w
+ 1, // llvm.mips.mod.u.b
+ 1, // llvm.mips.mod.u.d
+ 1, // llvm.mips.mod.u.h
+ 1, // llvm.mips.mod.u.w
+ 1, // llvm.mips.modsub
+ 1, // llvm.mips.move.v
+ 1, // llvm.mips.msub
+ 1, // llvm.mips.msub.q.h
+ 1, // llvm.mips.msub.q.w
+ 1, // llvm.mips.msubr.q.h
+ 1, // llvm.mips.msubr.q.w
+ 1, // llvm.mips.msubu
+ 1, // llvm.mips.msubv.b
+ 1, // llvm.mips.msubv.d
+ 1, // llvm.mips.msubv.h
+ 1, // llvm.mips.msubv.w
+ 2, // llvm.mips.mthlip
+ 2, // llvm.mips.mul.ph
+ 1, // llvm.mips.mul.q.h
+ 1, // llvm.mips.mul.q.w
+ 2, // llvm.mips.mul.s.ph
+ 2, // llvm.mips.muleq.s.w.phl
+ 2, // llvm.mips.muleq.s.w.phr
+ 2, // llvm.mips.muleu.s.ph.qbl
+ 2, // llvm.mips.muleu.s.ph.qbr
+ 2, // llvm.mips.mulq.rs.ph
+ 2, // llvm.mips.mulq.rs.w
+ 2, // llvm.mips.mulq.s.ph
+ 2, // llvm.mips.mulq.s.w
+ 1, // llvm.mips.mulr.q.h
+ 1, // llvm.mips.mulr.q.w
+ 1, // llvm.mips.mulsa.w.ph
+ 2, // llvm.mips.mulsaq.s.w.ph
+ 1, // llvm.mips.mult
+ 1, // llvm.mips.multu
+ 1, // llvm.mips.mulv.b
+ 1, // llvm.mips.mulv.d
+ 1, // llvm.mips.mulv.h
+ 1, // llvm.mips.mulv.w
+ 1, // llvm.mips.nloc.b
+ 1, // llvm.mips.nloc.d
+ 1, // llvm.mips.nloc.h
+ 1, // llvm.mips.nloc.w
+ 1, // llvm.mips.nlzc.b
+ 1, // llvm.mips.nlzc.d
+ 1, // llvm.mips.nlzc.h
+ 1, // llvm.mips.nlzc.w
+ 1, // llvm.mips.nor.v
+ 1, // llvm.mips.nori.b
+ 1, // llvm.mips.or.v
+ 1, // llvm.mips.ori.b
+ 1, // llvm.mips.packrl.ph
+ 1, // llvm.mips.pckev.b
+ 1, // llvm.mips.pckev.d
+ 1, // llvm.mips.pckev.h
+ 1, // llvm.mips.pckev.w
+ 1, // llvm.mips.pckod.b
+ 1, // llvm.mips.pckod.d
+ 1, // llvm.mips.pckod.h
+ 1, // llvm.mips.pckod.w
+ 1, // llvm.mips.pcnt.b
+ 1, // llvm.mips.pcnt.d
+ 1, // llvm.mips.pcnt.h
+ 1, // llvm.mips.pcnt.w
+ 3, // llvm.mips.pick.ph
+ 3, // llvm.mips.pick.qb
+ 1, // llvm.mips.preceq.w.phl
+ 1, // llvm.mips.preceq.w.phr
+ 1, // llvm.mips.precequ.ph.qbl
+ 1, // llvm.mips.precequ.ph.qbla
+ 1, // llvm.mips.precequ.ph.qbr
+ 1, // llvm.mips.precequ.ph.qbra
+ 1, // llvm.mips.preceu.ph.qbl
+ 1, // llvm.mips.preceu.ph.qbla
+ 1, // llvm.mips.preceu.ph.qbr
+ 1, // llvm.mips.preceu.ph.qbra
+ 2, // llvm.mips.precr.qb.ph
+ 1, // llvm.mips.precr.sra.ph.w
+ 1, // llvm.mips.precr.sra.r.ph.w
+ 1, // llvm.mips.precrq.ph.w
+ 1, // llvm.mips.precrq.qb.ph
+ 2, // llvm.mips.precrq.rs.ph.w
+ 2, // llvm.mips.precrqu.s.qb.ph
+ 1, // llvm.mips.prepend
+ 1, // llvm.mips.raddu.w.qb
+ 3, // llvm.mips.rddsp
+ 1, // llvm.mips.repl.ph
+ 1, // llvm.mips.repl.qb
+ 1, // llvm.mips.sat.s.b
+ 1, // llvm.mips.sat.s.d
+ 1, // llvm.mips.sat.s.h
+ 1, // llvm.mips.sat.s.w
+ 1, // llvm.mips.sat.u.b
+ 1, // llvm.mips.sat.u.d
+ 1, // llvm.mips.sat.u.h
+ 1, // llvm.mips.sat.u.w
+ 1, // llvm.mips.shf.b
+ 1, // llvm.mips.shf.h
+ 1, // llvm.mips.shf.w
+ 1, // llvm.mips.shilo
+ 2, // llvm.mips.shll.ph
+ 2, // llvm.mips.shll.qb
+ 2, // llvm.mips.shll.s.ph
+ 2, // llvm.mips.shll.s.w
+ 1, // llvm.mips.shra.ph
+ 1, // llvm.mips.shra.qb
+ 1, // llvm.mips.shra.r.ph
+ 1, // llvm.mips.shra.r.qb
+ 1, // llvm.mips.shra.r.w
+ 1, // llvm.mips.shrl.ph
+ 1, // llvm.mips.shrl.qb
+ 1, // llvm.mips.sld.b
+ 1, // llvm.mips.sld.d
+ 1, // llvm.mips.sld.h
+ 1, // llvm.mips.sld.w
+ 1, // llvm.mips.sldi.b
+ 1, // llvm.mips.sldi.d
+ 1, // llvm.mips.sldi.h
+ 1, // llvm.mips.sldi.w
+ 1, // llvm.mips.sll.b
+ 1, // llvm.mips.sll.d
+ 1, // llvm.mips.sll.h
+ 1, // llvm.mips.sll.w
+ 1, // llvm.mips.slli.b
+ 1, // llvm.mips.slli.d
+ 1, // llvm.mips.slli.h
+ 1, // llvm.mips.slli.w
+ 1, // llvm.mips.splat.b
+ 1, // llvm.mips.splat.d
+ 1, // llvm.mips.splat.h
+ 1, // llvm.mips.splat.w
+ 1, // llvm.mips.splati.b
+ 1, // llvm.mips.splati.d
+ 1, // llvm.mips.splati.h
+ 1, // llvm.mips.splati.w
+ 1, // llvm.mips.sra.b
+ 1, // llvm.mips.sra.d
+ 1, // llvm.mips.sra.h
+ 1, // llvm.mips.sra.w
+ 1, // llvm.mips.srai.b
+ 1, // llvm.mips.srai.d
+ 1, // llvm.mips.srai.h
+ 1, // llvm.mips.srai.w
+ 1, // llvm.mips.srar.b
+ 1, // llvm.mips.srar.d
+ 1, // llvm.mips.srar.h
+ 1, // llvm.mips.srar.w
+ 1, // llvm.mips.srari.b
+ 1, // llvm.mips.srari.d
+ 1, // llvm.mips.srari.h
+ 1, // llvm.mips.srari.w
+ 1, // llvm.mips.srl.b
+ 1, // llvm.mips.srl.d
+ 1, // llvm.mips.srl.h
+ 1, // llvm.mips.srl.w
+ 1, // llvm.mips.srli.b
+ 1, // llvm.mips.srli.d
+ 1, // llvm.mips.srli.h
+ 1, // llvm.mips.srli.w
+ 1, // llvm.mips.srlr.b
+ 1, // llvm.mips.srlr.d
+ 1, // llvm.mips.srlr.h
+ 1, // llvm.mips.srlr.w
+ 1, // llvm.mips.srlri.b
+ 1, // llvm.mips.srlri.d
+ 1, // llvm.mips.srlri.h
+ 1, // llvm.mips.srlri.w
+ 2, // llvm.mips.st.b
+ 2, // llvm.mips.st.d
+ 2, // llvm.mips.st.h
+ 2, // llvm.mips.st.w
+ 1, // llvm.mips.subq.ph
+ 1, // llvm.mips.subq.s.ph
+ 2, // llvm.mips.subq.s.w
+ 1, // llvm.mips.subqh.ph
+ 1, // llvm.mips.subqh.r.ph
+ 1, // llvm.mips.subqh.r.w
+ 1, // llvm.mips.subqh.w
+ 1, // llvm.mips.subs.s.b
+ 1, // llvm.mips.subs.s.d
+ 1, // llvm.mips.subs.s.h
+ 1, // llvm.mips.subs.s.w
+ 1, // llvm.mips.subs.u.b
+ 1, // llvm.mips.subs.u.d
+ 1, // llvm.mips.subs.u.h
+ 1, // llvm.mips.subs.u.w
+ 1, // llvm.mips.subsus.u.b
+ 1, // llvm.mips.subsus.u.d
+ 1, // llvm.mips.subsus.u.h
+ 1, // llvm.mips.subsus.u.w
+ 1, // llvm.mips.subsuu.s.b
+ 1, // llvm.mips.subsuu.s.d
+ 1, // llvm.mips.subsuu.s.h
+ 1, // llvm.mips.subsuu.s.w
+ 2, // llvm.mips.subu.ph
+ 1, // llvm.mips.subu.qb
+ 2, // llvm.mips.subu.s.ph
+ 1, // llvm.mips.subu.s.qb
+ 1, // llvm.mips.subuh.qb
+ 1, // llvm.mips.subuh.r.qb
+ 1, // llvm.mips.subv.b
+ 1, // llvm.mips.subv.d
+ 1, // llvm.mips.subv.h
+ 1, // llvm.mips.subv.w
+ 1, // llvm.mips.subvi.b
+ 1, // llvm.mips.subvi.d
+ 1, // llvm.mips.subvi.h
+ 1, // llvm.mips.subvi.w
+ 1, // llvm.mips.vshf.b
+ 1, // llvm.mips.vshf.d
+ 1, // llvm.mips.vshf.h
+ 1, // llvm.mips.vshf.w
+ 2, // llvm.mips.wrdsp
+ 1, // llvm.mips.xor.v
+ 1, // llvm.mips.xori.b
+ 1, // llvm.nearbyint
+ 1, // llvm.nvvm.abs.i
+ 1, // llvm.nvvm.abs.ll
+ 1, // llvm.nvvm.add.rm.d
+ 1, // llvm.nvvm.add.rm.f
+ 1, // llvm.nvvm.add.rm.ftz.f
+ 1, // llvm.nvvm.add.rn.d
+ 1, // llvm.nvvm.add.rn.f
+ 1, // llvm.nvvm.add.rn.ftz.f
+ 1, // llvm.nvvm.add.rp.d
+ 1, // llvm.nvvm.add.rp.f
+ 1, // llvm.nvvm.add.rp.ftz.f
+ 1, // llvm.nvvm.add.rz.d
+ 1, // llvm.nvvm.add.rz.f
+ 1, // llvm.nvvm.add.rz.ftz.f
+ 12, // llvm.nvvm.atomic.load.add.f32
+ 12, // llvm.nvvm.atomic.load.dec.32
+ 12, // llvm.nvvm.atomic.load.inc.32
+ 8, // llvm.nvvm.barrier0
+ 8, // llvm.nvvm.barrier0.and
+ 8, // llvm.nvvm.barrier0.or
+ 8, // llvm.nvvm.barrier0.popc
+ 1, // llvm.nvvm.bitcast.d2ll
+ 1, // llvm.nvvm.bitcast.f2i
+ 1, // llvm.nvvm.bitcast.i2f
+ 1, // llvm.nvvm.bitcast.ll2d
+ 1, // llvm.nvvm.brev32
+ 1, // llvm.nvvm.brev64
+ 1, // llvm.nvvm.ceil.d
+ 1, // llvm.nvvm.ceil.f
+ 1, // llvm.nvvm.ceil.ftz.f
+ 1, // llvm.nvvm.clz.i
+ 1, // llvm.nvvm.clz.ll
+ 2, // llvm.nvvm.compiler.error
+ 2, // llvm.nvvm.compiler.warn
+ 1, // llvm.nvvm.cos.approx.f
+ 1, // llvm.nvvm.cos.approx.ftz.f
+ 1, // llvm.nvvm.d2f.rm
+ 1, // llvm.nvvm.d2f.rm.ftz
+ 1, // llvm.nvvm.d2f.rn
+ 1, // llvm.nvvm.d2f.rn.ftz
+ 1, // llvm.nvvm.d2f.rp
+ 1, // llvm.nvvm.d2f.rp.ftz
+ 1, // llvm.nvvm.d2f.rz
+ 1, // llvm.nvvm.d2f.rz.ftz
+ 1, // llvm.nvvm.d2i.hi
+ 1, // llvm.nvvm.d2i.lo
+ 1, // llvm.nvvm.d2i.rm
+ 1, // llvm.nvvm.d2i.rn
+ 1, // llvm.nvvm.d2i.rp
+ 1, // llvm.nvvm.d2i.rz
+ 1, // llvm.nvvm.d2ll.rm
+ 1, // llvm.nvvm.d2ll.rn
+ 1, // llvm.nvvm.d2ll.rp
+ 1, // llvm.nvvm.d2ll.rz
+ 1, // llvm.nvvm.d2ui.rm
+ 1, // llvm.nvvm.d2ui.rn
+ 1, // llvm.nvvm.d2ui.rp
+ 1, // llvm.nvvm.d2ui.rz
+ 1, // llvm.nvvm.d2ull.rm
+ 1, // llvm.nvvm.d2ull.rn
+ 1, // llvm.nvvm.d2ull.rp
+ 1, // llvm.nvvm.d2ull.rz
+ 1, // llvm.nvvm.div.approx.f
+ 1, // llvm.nvvm.div.approx.ftz.f
+ 1, // llvm.nvvm.div.rm.d
+ 1, // llvm.nvvm.div.rm.f
+ 1, // llvm.nvvm.div.rm.ftz.f
+ 1, // llvm.nvvm.div.rn.d
+ 1, // llvm.nvvm.div.rn.f
+ 1, // llvm.nvvm.div.rn.ftz.f
+ 1, // llvm.nvvm.div.rp.d
+ 1, // llvm.nvvm.div.rp.f
+ 1, // llvm.nvvm.div.rp.ftz.f
+ 1, // llvm.nvvm.div.rz.d
+ 1, // llvm.nvvm.div.rz.f
+ 1, // llvm.nvvm.div.rz.ftz.f
+ 1, // llvm.nvvm.ex2.approx.d
+ 1, // llvm.nvvm.ex2.approx.f
+ 1, // llvm.nvvm.ex2.approx.ftz.f
+ 1, // llvm.nvvm.f2h.rn
+ 1, // llvm.nvvm.f2h.rn.ftz
+ 1, // llvm.nvvm.f2i.rm
+ 1, // llvm.nvvm.f2i.rm.ftz
+ 1, // llvm.nvvm.f2i.rn
+ 1, // llvm.nvvm.f2i.rn.ftz
+ 1, // llvm.nvvm.f2i.rp
+ 1, // llvm.nvvm.f2i.rp.ftz
+ 1, // llvm.nvvm.f2i.rz
+ 1, // llvm.nvvm.f2i.rz.ftz
+ 1, // llvm.nvvm.f2ll.rm
+ 1, // llvm.nvvm.f2ll.rm.ftz
+ 1, // llvm.nvvm.f2ll.rn
+ 1, // llvm.nvvm.f2ll.rn.ftz
+ 1, // llvm.nvvm.f2ll.rp
+ 1, // llvm.nvvm.f2ll.rp.ftz
+ 1, // llvm.nvvm.f2ll.rz
+ 1, // llvm.nvvm.f2ll.rz.ftz
+ 1, // llvm.nvvm.f2ui.rm
+ 1, // llvm.nvvm.f2ui.rm.ftz
+ 1, // llvm.nvvm.f2ui.rn
+ 1, // llvm.nvvm.f2ui.rn.ftz
+ 1, // llvm.nvvm.f2ui.rp
+ 1, // llvm.nvvm.f2ui.rp.ftz
+ 1, // llvm.nvvm.f2ui.rz
+ 1, // llvm.nvvm.f2ui.rz.ftz
+ 1, // llvm.nvvm.f2ull.rm
+ 1, // llvm.nvvm.f2ull.rm.ftz
+ 1, // llvm.nvvm.f2ull.rn
+ 1, // llvm.nvvm.f2ull.rn.ftz
+ 1, // llvm.nvvm.f2ull.rp
+ 1, // llvm.nvvm.f2ull.rp.ftz
+ 1, // llvm.nvvm.f2ull.rz
+ 1, // llvm.nvvm.f2ull.rz.ftz
+ 1, // llvm.nvvm.fabs.d
+ 1, // llvm.nvvm.fabs.f
+ 1, // llvm.nvvm.fabs.ftz.f
+ 1, // llvm.nvvm.floor.d
+ 1, // llvm.nvvm.floor.f
+ 1, // llvm.nvvm.floor.ftz.f
+ 1, // llvm.nvvm.fma.rm.d
+ 1, // llvm.nvvm.fma.rm.f
+ 1, // llvm.nvvm.fma.rm.ftz.f
+ 1, // llvm.nvvm.fma.rn.d
+ 1, // llvm.nvvm.fma.rn.f
+ 1, // llvm.nvvm.fma.rn.ftz.f
+ 1, // llvm.nvvm.fma.rp.d
+ 1, // llvm.nvvm.fma.rp.f
+ 1, // llvm.nvvm.fma.rp.ftz.f
+ 1, // llvm.nvvm.fma.rz.d
+ 1, // llvm.nvvm.fma.rz.f
+ 1, // llvm.nvvm.fma.rz.ftz.f
+ 1, // llvm.nvvm.fmax.d
+ 1, // llvm.nvvm.fmax.f
+ 1, // llvm.nvvm.fmax.ftz.f
+ 1, // llvm.nvvm.fmin.d
+ 1, // llvm.nvvm.fmin.f
+ 1, // llvm.nvvm.fmin.ftz.f
+ 1, // llvm.nvvm.h2f
+ 1, // llvm.nvvm.i2d.rm
+ 1, // llvm.nvvm.i2d.rn
+ 1, // llvm.nvvm.i2d.rp
+ 1, // llvm.nvvm.i2d.rz
+ 1, // llvm.nvvm.i2f.rm
+ 1, // llvm.nvvm.i2f.rn
+ 1, // llvm.nvvm.i2f.rp
+ 1, // llvm.nvvm.i2f.rz
+ 1, // llvm.nvvm.isspacep.const
+ 1, // llvm.nvvm.isspacep.global
+ 1, // llvm.nvvm.isspacep.local
+ 1, // llvm.nvvm.isspacep.shared
+ 1, // llvm.nvvm.istypep.sampler
+ 1, // llvm.nvvm.istypep.surface
+ 1, // llvm.nvvm.istypep.texture
+ 15, // llvm.nvvm.ldg.global.f
+ 15, // llvm.nvvm.ldg.global.i
+ 15, // llvm.nvvm.ldg.global.p
+ 15, // llvm.nvvm.ldu.global.f
+ 15, // llvm.nvvm.ldu.global.i
+ 15, // llvm.nvvm.ldu.global.p
+ 1, // llvm.nvvm.lg2.approx.d
+ 1, // llvm.nvvm.lg2.approx.f
+ 1, // llvm.nvvm.lg2.approx.ftz.f
+ 1, // llvm.nvvm.ll2d.rm
+ 1, // llvm.nvvm.ll2d.rn
+ 1, // llvm.nvvm.ll2d.rp
+ 1, // llvm.nvvm.ll2d.rz
+ 1, // llvm.nvvm.ll2f.rm
+ 1, // llvm.nvvm.ll2f.rn
+ 1, // llvm.nvvm.ll2f.rp
+ 1, // llvm.nvvm.ll2f.rz
+ 1, // llvm.nvvm.lohi.i2d
+ 1, // llvm.nvvm.max.i
+ 1, // llvm.nvvm.max.ll
+ 1, // llvm.nvvm.max.ui
+ 1, // llvm.nvvm.max.ull
+ 2, // llvm.nvvm.membar.cta
+ 2, // llvm.nvvm.membar.gl
+ 2, // llvm.nvvm.membar.sys
+ 1, // llvm.nvvm.min.i
+ 1, // llvm.nvvm.min.ll
+ 1, // llvm.nvvm.min.ui
+ 1, // llvm.nvvm.min.ull
+ 1, // llvm.nvvm.move.double
+ 1, // llvm.nvvm.move.float
+ 1, // llvm.nvvm.move.i16
+ 1, // llvm.nvvm.move.i32
+ 1, // llvm.nvvm.move.i64
+ 16, // llvm.nvvm.move.ptr
+ 1, // llvm.nvvm.mul24.i
+ 1, // llvm.nvvm.mul24.ui
+ 1, // llvm.nvvm.mul.rm.d
+ 1, // llvm.nvvm.mul.rm.f
+ 1, // llvm.nvvm.mul.rm.ftz.f
+ 1, // llvm.nvvm.mul.rn.d
+ 1, // llvm.nvvm.mul.rn.f
+ 1, // llvm.nvvm.mul.rn.ftz.f
+ 1, // llvm.nvvm.mul.rp.d
+ 1, // llvm.nvvm.mul.rp.f
+ 1, // llvm.nvvm.mul.rp.ftz.f
+ 1, // llvm.nvvm.mul.rz.d
+ 1, // llvm.nvvm.mul.rz.f
+ 1, // llvm.nvvm.mul.rz.ftz.f
+ 1, // llvm.nvvm.mulhi.i
+ 1, // llvm.nvvm.mulhi.ll
+ 1, // llvm.nvvm.mulhi.ui
+ 1, // llvm.nvvm.mulhi.ull
+ 1, // llvm.nvvm.popc.i
+ 1, // llvm.nvvm.popc.ll
+ 1, // llvm.nvvm.prmt
+ 1, // llvm.nvvm.ptr.constant.to.gen
+ 1, // llvm.nvvm.ptr.gen.to.constant
+ 1, // llvm.nvvm.ptr.gen.to.global
+ 1, // llvm.nvvm.ptr.gen.to.local
+ 1, // llvm.nvvm.ptr.gen.to.param
+ 1, // llvm.nvvm.ptr.gen.to.shared
+ 1, // llvm.nvvm.ptr.global.to.gen
+ 1, // llvm.nvvm.ptr.local.to.gen
+ 1, // llvm.nvvm.ptr.shared.to.gen
+ 1, // llvm.nvvm.rcp.approx.ftz.d
+ 1, // llvm.nvvm.rcp.rm.d
+ 1, // llvm.nvvm.rcp.rm.f
+ 1, // llvm.nvvm.rcp.rm.ftz.f
+ 1, // llvm.nvvm.rcp.rn.d
+ 1, // llvm.nvvm.rcp.rn.f
+ 1, // llvm.nvvm.rcp.rn.ftz.f
+ 1, // llvm.nvvm.rcp.rp.d
+ 1, // llvm.nvvm.rcp.rp.f
+ 1, // llvm.nvvm.rcp.rp.ftz.f
+ 1, // llvm.nvvm.rcp.rz.d
+ 1, // llvm.nvvm.rcp.rz.f
+ 1, // llvm.nvvm.rcp.rz.ftz.f
+ 1, // llvm.nvvm.read.ptx.sreg.ctaid.x
+ 1, // llvm.nvvm.read.ptx.sreg.ctaid.y
+ 1, // llvm.nvvm.read.ptx.sreg.ctaid.z
+ 1, // llvm.nvvm.read.ptx.sreg.envreg0
+ 1, // llvm.nvvm.read.ptx.sreg.envreg1
+ 1, // llvm.nvvm.read.ptx.sreg.envreg10
+ 1, // llvm.nvvm.read.ptx.sreg.envreg11
+ 1, // llvm.nvvm.read.ptx.sreg.envreg12
+ 1, // llvm.nvvm.read.ptx.sreg.envreg13
+ 1, // llvm.nvvm.read.ptx.sreg.envreg14
+ 1, // llvm.nvvm.read.ptx.sreg.envreg15
+ 1, // llvm.nvvm.read.ptx.sreg.envreg16
+ 1, // llvm.nvvm.read.ptx.sreg.envreg17
+ 1, // llvm.nvvm.read.ptx.sreg.envreg18
+ 1, // llvm.nvvm.read.ptx.sreg.envreg19
+ 1, // llvm.nvvm.read.ptx.sreg.envreg2
+ 1, // llvm.nvvm.read.ptx.sreg.envreg20
+ 1, // llvm.nvvm.read.ptx.sreg.envreg21
+ 1, // llvm.nvvm.read.ptx.sreg.envreg22
+ 1, // llvm.nvvm.read.ptx.sreg.envreg23
+ 1, // llvm.nvvm.read.ptx.sreg.envreg24
+ 1, // llvm.nvvm.read.ptx.sreg.envreg25
+ 1, // llvm.nvvm.read.ptx.sreg.envreg26
+ 1, // llvm.nvvm.read.ptx.sreg.envreg27
+ 1, // llvm.nvvm.read.ptx.sreg.envreg28
+ 1, // llvm.nvvm.read.ptx.sreg.envreg29
+ 1, // llvm.nvvm.read.ptx.sreg.envreg3
+ 1, // llvm.nvvm.read.ptx.sreg.envreg30
+ 1, // llvm.nvvm.read.ptx.sreg.envreg31
+ 1, // llvm.nvvm.read.ptx.sreg.envreg4
+ 1, // llvm.nvvm.read.ptx.sreg.envreg5
+ 1, // llvm.nvvm.read.ptx.sreg.envreg6
+ 1, // llvm.nvvm.read.ptx.sreg.envreg7
+ 1, // llvm.nvvm.read.ptx.sreg.envreg8
+ 1, // llvm.nvvm.read.ptx.sreg.envreg9
+ 1, // llvm.nvvm.read.ptx.sreg.nctaid.x
+ 1, // llvm.nvvm.read.ptx.sreg.nctaid.y
+ 1, // llvm.nvvm.read.ptx.sreg.nctaid.z
+ 1, // llvm.nvvm.read.ptx.sreg.ntid.x
+ 1, // llvm.nvvm.read.ptx.sreg.ntid.y
+ 1, // llvm.nvvm.read.ptx.sreg.ntid.z
+ 1, // llvm.nvvm.read.ptx.sreg.tid.x
+ 1, // llvm.nvvm.read.ptx.sreg.tid.y
+ 1, // llvm.nvvm.read.ptx.sreg.tid.z
+ 1, // llvm.nvvm.read.ptx.sreg.warpsize
+ 1, // llvm.nvvm.reflect
+ 1, // llvm.nvvm.rotate.b32
+ 1, // llvm.nvvm.rotate.b64
+ 1, // llvm.nvvm.rotate.right.b64
+ 1, // llvm.nvvm.round.d
+ 1, // llvm.nvvm.round.f
+ 1, // llvm.nvvm.round.ftz.f
+ 1, // llvm.nvvm.rsqrt.approx.d
+ 1, // llvm.nvvm.rsqrt.approx.f
+ 1, // llvm.nvvm.rsqrt.approx.ftz.f
+ 1, // llvm.nvvm.sad.i
+ 1, // llvm.nvvm.sad.ui
+ 1, // llvm.nvvm.saturate.d
+ 1, // llvm.nvvm.saturate.f
+ 1, // llvm.nvvm.saturate.ftz.f
+ 1, // llvm.nvvm.sin.approx.f
+ 1, // llvm.nvvm.sin.approx.ftz.f
+ 1, // llvm.nvvm.sqrt.approx.f
+ 1, // llvm.nvvm.sqrt.approx.ftz.f
+ 1, // llvm.nvvm.sqrt.f
+ 1, // llvm.nvvm.sqrt.rm.d
+ 1, // llvm.nvvm.sqrt.rm.f
+ 1, // llvm.nvvm.sqrt.rm.ftz.f
+ 1, // llvm.nvvm.sqrt.rn.d
+ 1, // llvm.nvvm.sqrt.rn.f
+ 1, // llvm.nvvm.sqrt.rn.ftz.f
+ 1, // llvm.nvvm.sqrt.rp.d
+ 1, // llvm.nvvm.sqrt.rp.f
+ 1, // llvm.nvvm.sqrt.rp.ftz.f
+ 1, // llvm.nvvm.sqrt.rz.d
+ 1, // llvm.nvvm.sqrt.rz.f
+ 1, // llvm.nvvm.sqrt.rz.ftz.f
+ 2, // llvm.nvvm.suld.1d.array.i16.clamp
+ 2, // llvm.nvvm.suld.1d.array.i16.trap
+ 2, // llvm.nvvm.suld.1d.array.i16.zero
+ 2, // llvm.nvvm.suld.1d.array.i32.clamp
+ 2, // llvm.nvvm.suld.1d.array.i32.trap
+ 2, // llvm.nvvm.suld.1d.array.i32.zero
+ 2, // llvm.nvvm.suld.1d.array.i64.clamp
+ 2, // llvm.nvvm.suld.1d.array.i64.trap
+ 2, // llvm.nvvm.suld.1d.array.i64.zero
+ 2, // llvm.nvvm.suld.1d.array.i8.clamp
+ 2, // llvm.nvvm.suld.1d.array.i8.trap
+ 2, // llvm.nvvm.suld.1d.array.i8.zero
+ 2, // llvm.nvvm.suld.1d.array.v2i16.clamp
+ 2, // llvm.nvvm.suld.1d.array.v2i16.trap
+ 2, // llvm.nvvm.suld.1d.array.v2i16.zero
+ 2, // llvm.nvvm.suld.1d.array.v2i32.clamp
+ 2, // llvm.nvvm.suld.1d.array.v2i32.trap
+ 2, // llvm.nvvm.suld.1d.array.v2i32.zero
+ 2, // llvm.nvvm.suld.1d.array.v2i64.clamp
+ 2, // llvm.nvvm.suld.1d.array.v2i64.trap
+ 2, // llvm.nvvm.suld.1d.array.v2i64.zero
+ 2, // llvm.nvvm.suld.1d.array.v2i8.clamp
+ 2, // llvm.nvvm.suld.1d.array.v2i8.trap
+ 2, // llvm.nvvm.suld.1d.array.v2i8.zero
+ 2, // llvm.nvvm.suld.1d.array.v4i16.clamp
+ 2, // llvm.nvvm.suld.1d.array.v4i16.trap
+ 2, // llvm.nvvm.suld.1d.array.v4i16.zero
+ 2, // llvm.nvvm.suld.1d.array.v4i32.clamp
+ 2, // llvm.nvvm.suld.1d.array.v4i32.trap
+ 2, // llvm.nvvm.suld.1d.array.v4i32.zero
+ 2, // llvm.nvvm.suld.1d.array.v4i8.clamp
+ 2, // llvm.nvvm.suld.1d.array.v4i8.trap
+ 2, // llvm.nvvm.suld.1d.array.v4i8.zero
+ 2, // llvm.nvvm.suld.1d.i16.clamp
+ 2, // llvm.nvvm.suld.1d.i16.trap
+ 2, // llvm.nvvm.suld.1d.i16.zero
+ 2, // llvm.nvvm.suld.1d.i32.clamp
+ 2, // llvm.nvvm.suld.1d.i32.trap
+ 2, // llvm.nvvm.suld.1d.i32.zero
+ 2, // llvm.nvvm.suld.1d.i64.clamp
+ 2, // llvm.nvvm.suld.1d.i64.trap
+ 2, // llvm.nvvm.suld.1d.i64.zero
+ 2, // llvm.nvvm.suld.1d.i8.clamp
+ 2, // llvm.nvvm.suld.1d.i8.trap
+ 2, // llvm.nvvm.suld.1d.i8.zero
+ 2, // llvm.nvvm.suld.1d.v2i16.clamp
+ 2, // llvm.nvvm.suld.1d.v2i16.trap
+ 2, // llvm.nvvm.suld.1d.v2i16.zero
+ 2, // llvm.nvvm.suld.1d.v2i32.clamp
+ 2, // llvm.nvvm.suld.1d.v2i32.trap
+ 2, // llvm.nvvm.suld.1d.v2i32.zero
+ 2, // llvm.nvvm.suld.1d.v2i64.clamp
+ 2, // llvm.nvvm.suld.1d.v2i64.trap
+ 2, // llvm.nvvm.suld.1d.v2i64.zero
+ 2, // llvm.nvvm.suld.1d.v2i8.clamp
+ 2, // llvm.nvvm.suld.1d.v2i8.trap
+ 2, // llvm.nvvm.suld.1d.v2i8.zero
+ 2, // llvm.nvvm.suld.1d.v4i16.clamp
+ 2, // llvm.nvvm.suld.1d.v4i16.trap
+ 2, // llvm.nvvm.suld.1d.v4i16.zero
+ 2, // llvm.nvvm.suld.1d.v4i32.clamp
+ 2, // llvm.nvvm.suld.1d.v4i32.trap
+ 2, // llvm.nvvm.suld.1d.v4i32.zero
+ 2, // llvm.nvvm.suld.1d.v4i8.clamp
+ 2, // llvm.nvvm.suld.1d.v4i8.trap
+ 2, // llvm.nvvm.suld.1d.v4i8.zero
+ 2, // llvm.nvvm.suld.2d.array.i16.clamp
+ 2, // llvm.nvvm.suld.2d.array.i16.trap
+ 2, // llvm.nvvm.suld.2d.array.i16.zero
+ 2, // llvm.nvvm.suld.2d.array.i32.clamp
+ 2, // llvm.nvvm.suld.2d.array.i32.trap
+ 2, // llvm.nvvm.suld.2d.array.i32.zero
+ 2, // llvm.nvvm.suld.2d.array.i64.clamp
+ 2, // llvm.nvvm.suld.2d.array.i64.trap
+ 2, // llvm.nvvm.suld.2d.array.i64.zero
+ 2, // llvm.nvvm.suld.2d.array.i8.clamp
+ 2, // llvm.nvvm.suld.2d.array.i8.trap
+ 2, // llvm.nvvm.suld.2d.array.i8.zero
+ 2, // llvm.nvvm.suld.2d.array.v2i16.clamp
+ 2, // llvm.nvvm.suld.2d.array.v2i16.trap
+ 2, // llvm.nvvm.suld.2d.array.v2i16.zero
+ 2, // llvm.nvvm.suld.2d.array.v2i32.clamp
+ 2, // llvm.nvvm.suld.2d.array.v2i32.trap
+ 2, // llvm.nvvm.suld.2d.array.v2i32.zero
+ 2, // llvm.nvvm.suld.2d.array.v2i64.clamp
+ 2, // llvm.nvvm.suld.2d.array.v2i64.trap
+ 2, // llvm.nvvm.suld.2d.array.v2i64.zero
+ 2, // llvm.nvvm.suld.2d.array.v2i8.clamp
+ 2, // llvm.nvvm.suld.2d.array.v2i8.trap
+ 2, // llvm.nvvm.suld.2d.array.v2i8.zero
+ 2, // llvm.nvvm.suld.2d.array.v4i16.clamp
+ 2, // llvm.nvvm.suld.2d.array.v4i16.trap
+ 2, // llvm.nvvm.suld.2d.array.v4i16.zero
+ 2, // llvm.nvvm.suld.2d.array.v4i32.clamp
+ 2, // llvm.nvvm.suld.2d.array.v4i32.trap
+ 2, // llvm.nvvm.suld.2d.array.v4i32.zero
+ 2, // llvm.nvvm.suld.2d.array.v4i8.clamp
+ 2, // llvm.nvvm.suld.2d.array.v4i8.trap
+ 2, // llvm.nvvm.suld.2d.array.v4i8.zero
+ 2, // llvm.nvvm.suld.2d.i16.clamp
+ 2, // llvm.nvvm.suld.2d.i16.trap
+ 2, // llvm.nvvm.suld.2d.i16.zero
+ 2, // llvm.nvvm.suld.2d.i32.clamp
+ 2, // llvm.nvvm.suld.2d.i32.trap
+ 2, // llvm.nvvm.suld.2d.i32.zero
+ 2, // llvm.nvvm.suld.2d.i64.clamp
+ 2, // llvm.nvvm.suld.2d.i64.trap
+ 2, // llvm.nvvm.suld.2d.i64.zero
+ 2, // llvm.nvvm.suld.2d.i8.clamp
+ 2, // llvm.nvvm.suld.2d.i8.trap
+ 2, // llvm.nvvm.suld.2d.i8.zero
+ 2, // llvm.nvvm.suld.2d.v2i16.clamp
+ 2, // llvm.nvvm.suld.2d.v2i16.trap
+ 2, // llvm.nvvm.suld.2d.v2i16.zero
+ 2, // llvm.nvvm.suld.2d.v2i32.clamp
+ 2, // llvm.nvvm.suld.2d.v2i32.trap
+ 2, // llvm.nvvm.suld.2d.v2i32.zero
+ 2, // llvm.nvvm.suld.2d.v2i64.clamp
+ 2, // llvm.nvvm.suld.2d.v2i64.trap
+ 2, // llvm.nvvm.suld.2d.v2i64.zero
+ 2, // llvm.nvvm.suld.2d.v2i8.clamp
+ 2, // llvm.nvvm.suld.2d.v2i8.trap
+ 2, // llvm.nvvm.suld.2d.v2i8.zero
+ 2, // llvm.nvvm.suld.2d.v4i16.clamp
+ 2, // llvm.nvvm.suld.2d.v4i16.trap
+ 2, // llvm.nvvm.suld.2d.v4i16.zero
+ 2, // llvm.nvvm.suld.2d.v4i32.clamp
+ 2, // llvm.nvvm.suld.2d.v4i32.trap
+ 2, // llvm.nvvm.suld.2d.v4i32.zero
+ 2, // llvm.nvvm.suld.2d.v4i8.clamp
+ 2, // llvm.nvvm.suld.2d.v4i8.trap
+ 2, // llvm.nvvm.suld.2d.v4i8.zero
+ 2, // llvm.nvvm.suld.3d.i16.clamp
+ 2, // llvm.nvvm.suld.3d.i16.trap
+ 2, // llvm.nvvm.suld.3d.i16.zero
+ 2, // llvm.nvvm.suld.3d.i32.clamp
+ 2, // llvm.nvvm.suld.3d.i32.trap
+ 2, // llvm.nvvm.suld.3d.i32.zero
+ 2, // llvm.nvvm.suld.3d.i64.clamp
+ 2, // llvm.nvvm.suld.3d.i64.trap
+ 2, // llvm.nvvm.suld.3d.i64.zero
+ 2, // llvm.nvvm.suld.3d.i8.clamp
+ 2, // llvm.nvvm.suld.3d.i8.trap
+ 2, // llvm.nvvm.suld.3d.i8.zero
+ 2, // llvm.nvvm.suld.3d.v2i16.clamp
+ 2, // llvm.nvvm.suld.3d.v2i16.trap
+ 2, // llvm.nvvm.suld.3d.v2i16.zero
+ 2, // llvm.nvvm.suld.3d.v2i32.clamp
+ 2, // llvm.nvvm.suld.3d.v2i32.trap
+ 2, // llvm.nvvm.suld.3d.v2i32.zero
+ 2, // llvm.nvvm.suld.3d.v2i64.clamp
+ 2, // llvm.nvvm.suld.3d.v2i64.trap
+ 2, // llvm.nvvm.suld.3d.v2i64.zero
+ 2, // llvm.nvvm.suld.3d.v2i8.clamp
+ 2, // llvm.nvvm.suld.3d.v2i8.trap
+ 2, // llvm.nvvm.suld.3d.v2i8.zero
+ 2, // llvm.nvvm.suld.3d.v4i16.clamp
+ 2, // llvm.nvvm.suld.3d.v4i16.trap
+ 2, // llvm.nvvm.suld.3d.v4i16.zero
+ 2, // llvm.nvvm.suld.3d.v4i32.clamp
+ 2, // llvm.nvvm.suld.3d.v4i32.trap
+ 2, // llvm.nvvm.suld.3d.v4i32.zero
+ 2, // llvm.nvvm.suld.3d.v4i8.clamp
+ 2, // llvm.nvvm.suld.3d.v4i8.trap
+ 2, // llvm.nvvm.suld.3d.v4i8.zero
+ 1, // llvm.nvvm.suq.array.size
+ 1, // llvm.nvvm.suq.channel.data.type
+ 1, // llvm.nvvm.suq.channel.order
+ 1, // llvm.nvvm.suq.depth
+ 1, // llvm.nvvm.suq.height
+ 1, // llvm.nvvm.suq.width
+ 2, // llvm.nvvm.sust.b.1d.array.i16.clamp
+ 2, // llvm.nvvm.sust.b.1d.array.i16.trap
+ 2, // llvm.nvvm.sust.b.1d.array.i16.zero
+ 2, // llvm.nvvm.sust.b.1d.array.i32.clamp
+ 2, // llvm.nvvm.sust.b.1d.array.i32.trap
+ 2, // llvm.nvvm.sust.b.1d.array.i32.zero
+ 2, // llvm.nvvm.sust.b.1d.array.i64.clamp
+ 2, // llvm.nvvm.sust.b.1d.array.i64.trap
+ 2, // llvm.nvvm.sust.b.1d.array.i64.zero
+ 2, // llvm.nvvm.sust.b.1d.array.i8.clamp
+ 2, // llvm.nvvm.sust.b.1d.array.i8.trap
+ 2, // llvm.nvvm.sust.b.1d.array.i8.zero
+ 2, // llvm.nvvm.sust.b.1d.array.v2i16.clamp
+ 2, // llvm.nvvm.sust.b.1d.array.v2i16.trap
+ 2, // llvm.nvvm.sust.b.1d.array.v2i16.zero
+ 2, // llvm.nvvm.sust.b.1d.array.v2i32.clamp
+ 2, // llvm.nvvm.sust.b.1d.array.v2i32.trap
+ 2, // llvm.nvvm.sust.b.1d.array.v2i32.zero
+ 2, // llvm.nvvm.sust.b.1d.array.v2i64.clamp
+ 2, // llvm.nvvm.sust.b.1d.array.v2i64.trap
+ 2, // llvm.nvvm.sust.b.1d.array.v2i64.zero
+ 2, // llvm.nvvm.sust.b.1d.array.v2i8.clamp
+ 2, // llvm.nvvm.sust.b.1d.array.v2i8.trap
+ 2, // llvm.nvvm.sust.b.1d.array.v2i8.zero
+ 2, // llvm.nvvm.sust.b.1d.array.v4i16.clamp
+ 2, // llvm.nvvm.sust.b.1d.array.v4i16.trap
+ 2, // llvm.nvvm.sust.b.1d.array.v4i16.zero
+ 2, // llvm.nvvm.sust.b.1d.array.v4i32.clamp
+ 2, // llvm.nvvm.sust.b.1d.array.v4i32.trap
+ 2, // llvm.nvvm.sust.b.1d.array.v4i32.zero
+ 2, // llvm.nvvm.sust.b.1d.array.v4i8.clamp
+ 2, // llvm.nvvm.sust.b.1d.array.v4i8.trap
+ 2, // llvm.nvvm.sust.b.1d.array.v4i8.zero
+ 2, // llvm.nvvm.sust.b.1d.i16.clamp
+ 2, // llvm.nvvm.sust.b.1d.i16.trap
+ 2, // llvm.nvvm.sust.b.1d.i16.zero
+ 2, // llvm.nvvm.sust.b.1d.i32.clamp
+ 2, // llvm.nvvm.sust.b.1d.i32.trap
+ 2, // llvm.nvvm.sust.b.1d.i32.zero
+ 2, // llvm.nvvm.sust.b.1d.i64.clamp
+ 2, // llvm.nvvm.sust.b.1d.i64.trap
+ 2, // llvm.nvvm.sust.b.1d.i64.zero
+ 2, // llvm.nvvm.sust.b.1d.i8.clamp
+ 2, // llvm.nvvm.sust.b.1d.i8.trap
+ 2, // llvm.nvvm.sust.b.1d.i8.zero
+ 2, // llvm.nvvm.sust.b.1d.v2i16.clamp
+ 2, // llvm.nvvm.sust.b.1d.v2i16.trap
+ 2, // llvm.nvvm.sust.b.1d.v2i16.zero
+ 2, // llvm.nvvm.sust.b.1d.v2i32.clamp
+ 2, // llvm.nvvm.sust.b.1d.v2i32.trap
+ 2, // llvm.nvvm.sust.b.1d.v2i32.zero
+ 2, // llvm.nvvm.sust.b.1d.v2i64.clamp
+ 2, // llvm.nvvm.sust.b.1d.v2i64.trap
+ 2, // llvm.nvvm.sust.b.1d.v2i64.zero
+ 2, // llvm.nvvm.sust.b.1d.v2i8.clamp
+ 2, // llvm.nvvm.sust.b.1d.v2i8.trap
+ 2, // llvm.nvvm.sust.b.1d.v2i8.zero
+ 2, // llvm.nvvm.sust.b.1d.v4i16.clamp
+ 2, // llvm.nvvm.sust.b.1d.v4i16.trap
+ 2, // llvm.nvvm.sust.b.1d.v4i16.zero
+ 2, // llvm.nvvm.sust.b.1d.v4i32.clamp
+ 2, // llvm.nvvm.sust.b.1d.v4i32.trap
+ 2, // llvm.nvvm.sust.b.1d.v4i32.zero
+ 2, // llvm.nvvm.sust.b.1d.v4i8.clamp
+ 2, // llvm.nvvm.sust.b.1d.v4i8.trap
+ 2, // llvm.nvvm.sust.b.1d.v4i8.zero
+ 2, // llvm.nvvm.sust.b.2d.array.i16.clamp
+ 2, // llvm.nvvm.sust.b.2d.array.i16.trap
+ 2, // llvm.nvvm.sust.b.2d.array.i16.zero
+ 2, // llvm.nvvm.sust.b.2d.array.i32.clamp
+ 2, // llvm.nvvm.sust.b.2d.array.i32.trap
+ 2, // llvm.nvvm.sust.b.2d.array.i32.zero
+ 2, // llvm.nvvm.sust.b.2d.array.i64.clamp
+ 2, // llvm.nvvm.sust.b.2d.array.i64.trap
+ 2, // llvm.nvvm.sust.b.2d.array.i64.zero
+ 2, // llvm.nvvm.sust.b.2d.array.i8.clamp
+ 2, // llvm.nvvm.sust.b.2d.array.i8.trap
+ 2, // llvm.nvvm.sust.b.2d.array.i8.zero
+ 2, // llvm.nvvm.sust.b.2d.array.v2i16.clamp
+ 2, // llvm.nvvm.sust.b.2d.array.v2i16.trap
+ 2, // llvm.nvvm.sust.b.2d.array.v2i16.zero
+ 2, // llvm.nvvm.sust.b.2d.array.v2i32.clamp
+ 2, // llvm.nvvm.sust.b.2d.array.v2i32.trap
+ 2, // llvm.nvvm.sust.b.2d.array.v2i32.zero
+ 2, // llvm.nvvm.sust.b.2d.array.v2i64.clamp
+ 2, // llvm.nvvm.sust.b.2d.array.v2i64.trap
+ 2, // llvm.nvvm.sust.b.2d.array.v2i64.zero
+ 2, // llvm.nvvm.sust.b.2d.array.v2i8.clamp
+ 2, // llvm.nvvm.sust.b.2d.array.v2i8.trap
+ 2, // llvm.nvvm.sust.b.2d.array.v2i8.zero
+ 2, // llvm.nvvm.sust.b.2d.array.v4i16.clamp
+ 2, // llvm.nvvm.sust.b.2d.array.v4i16.trap
+ 2, // llvm.nvvm.sust.b.2d.array.v4i16.zero
+ 2, // llvm.nvvm.sust.b.2d.array.v4i32.clamp
+ 2, // llvm.nvvm.sust.b.2d.array.v4i32.trap
+ 2, // llvm.nvvm.sust.b.2d.array.v4i32.zero
+ 2, // llvm.nvvm.sust.b.2d.array.v4i8.clamp
+ 2, // llvm.nvvm.sust.b.2d.array.v4i8.trap
+ 2, // llvm.nvvm.sust.b.2d.array.v4i8.zero
+ 2, // llvm.nvvm.sust.b.2d.i16.clamp
+ 2, // llvm.nvvm.sust.b.2d.i16.trap
+ 2, // llvm.nvvm.sust.b.2d.i16.zero
+ 2, // llvm.nvvm.sust.b.2d.i32.clamp
+ 2, // llvm.nvvm.sust.b.2d.i32.trap
+ 2, // llvm.nvvm.sust.b.2d.i32.zero
+ 2, // llvm.nvvm.sust.b.2d.i64.clamp
+ 2, // llvm.nvvm.sust.b.2d.i64.trap
+ 2, // llvm.nvvm.sust.b.2d.i64.zero
+ 2, // llvm.nvvm.sust.b.2d.i8.clamp
+ 2, // llvm.nvvm.sust.b.2d.i8.trap
+ 2, // llvm.nvvm.sust.b.2d.i8.zero
+ 2, // llvm.nvvm.sust.b.2d.v2i16.clamp
+ 2, // llvm.nvvm.sust.b.2d.v2i16.trap
+ 2, // llvm.nvvm.sust.b.2d.v2i16.zero
+ 2, // llvm.nvvm.sust.b.2d.v2i32.clamp
+ 2, // llvm.nvvm.sust.b.2d.v2i32.trap
+ 2, // llvm.nvvm.sust.b.2d.v2i32.zero
+ 2, // llvm.nvvm.sust.b.2d.v2i64.clamp
+ 2, // llvm.nvvm.sust.b.2d.v2i64.trap
+ 2, // llvm.nvvm.sust.b.2d.v2i64.zero
+ 2, // llvm.nvvm.sust.b.2d.v2i8.clamp
+ 2, // llvm.nvvm.sust.b.2d.v2i8.trap
+ 2, // llvm.nvvm.sust.b.2d.v2i8.zero
+ 2, // llvm.nvvm.sust.b.2d.v4i16.clamp
+ 2, // llvm.nvvm.sust.b.2d.v4i16.trap
+ 2, // llvm.nvvm.sust.b.2d.v4i16.zero
+ 2, // llvm.nvvm.sust.b.2d.v4i32.clamp
+ 2, // llvm.nvvm.sust.b.2d.v4i32.trap
+ 2, // llvm.nvvm.sust.b.2d.v4i32.zero
+ 2, // llvm.nvvm.sust.b.2d.v4i8.clamp
+ 2, // llvm.nvvm.sust.b.2d.v4i8.trap
+ 2, // llvm.nvvm.sust.b.2d.v4i8.zero
+ 2, // llvm.nvvm.sust.b.3d.i16.clamp
+ 2, // llvm.nvvm.sust.b.3d.i16.trap
+ 2, // llvm.nvvm.sust.b.3d.i16.zero
+ 2, // llvm.nvvm.sust.b.3d.i32.clamp
+ 2, // llvm.nvvm.sust.b.3d.i32.trap
+ 2, // llvm.nvvm.sust.b.3d.i32.zero
+ 2, // llvm.nvvm.sust.b.3d.i64.clamp
+ 2, // llvm.nvvm.sust.b.3d.i64.trap
+ 2, // llvm.nvvm.sust.b.3d.i64.zero
+ 2, // llvm.nvvm.sust.b.3d.i8.clamp
+ 2, // llvm.nvvm.sust.b.3d.i8.trap
+ 2, // llvm.nvvm.sust.b.3d.i8.zero
+ 2, // llvm.nvvm.sust.b.3d.v2i16.clamp
+ 2, // llvm.nvvm.sust.b.3d.v2i16.trap
+ 2, // llvm.nvvm.sust.b.3d.v2i16.zero
+ 2, // llvm.nvvm.sust.b.3d.v2i32.clamp
+ 2, // llvm.nvvm.sust.b.3d.v2i32.trap
+ 2, // llvm.nvvm.sust.b.3d.v2i32.zero
+ 2, // llvm.nvvm.sust.b.3d.v2i64.clamp
+ 2, // llvm.nvvm.sust.b.3d.v2i64.trap
+ 2, // llvm.nvvm.sust.b.3d.v2i64.zero
+ 2, // llvm.nvvm.sust.b.3d.v2i8.clamp
+ 2, // llvm.nvvm.sust.b.3d.v2i8.trap
+ 2, // llvm.nvvm.sust.b.3d.v2i8.zero
+ 2, // llvm.nvvm.sust.b.3d.v4i16.clamp
+ 2, // llvm.nvvm.sust.b.3d.v4i16.trap
+ 2, // llvm.nvvm.sust.b.3d.v4i16.zero
+ 2, // llvm.nvvm.sust.b.3d.v4i32.clamp
+ 2, // llvm.nvvm.sust.b.3d.v4i32.trap
+ 2, // llvm.nvvm.sust.b.3d.v4i32.zero
+ 2, // llvm.nvvm.sust.b.3d.v4i8.clamp
+ 2, // llvm.nvvm.sust.b.3d.v4i8.trap
+ 2, // llvm.nvvm.sust.b.3d.v4i8.zero
+ 2, // llvm.nvvm.sust.p.1d.array.i16.trap
+ 2, // llvm.nvvm.sust.p.1d.array.i32.trap
+ 2, // llvm.nvvm.sust.p.1d.array.i8.trap
+ 2, // llvm.nvvm.sust.p.1d.array.v2i16.trap
+ 2, // llvm.nvvm.sust.p.1d.array.v2i32.trap
+ 2, // llvm.nvvm.sust.p.1d.array.v2i8.trap
+ 2, // llvm.nvvm.sust.p.1d.array.v4i16.trap
+ 2, // llvm.nvvm.sust.p.1d.array.v4i32.trap
+ 2, // llvm.nvvm.sust.p.1d.array.v4i8.trap
+ 2, // llvm.nvvm.sust.p.1d.i16.trap
+ 2, // llvm.nvvm.sust.p.1d.i32.trap
+ 2, // llvm.nvvm.sust.p.1d.i8.trap
+ 2, // llvm.nvvm.sust.p.1d.v2i16.trap
+ 2, // llvm.nvvm.sust.p.1d.v2i32.trap
+ 2, // llvm.nvvm.sust.p.1d.v2i8.trap
+ 2, // llvm.nvvm.sust.p.1d.v4i16.trap
+ 2, // llvm.nvvm.sust.p.1d.v4i32.trap
+ 2, // llvm.nvvm.sust.p.1d.v4i8.trap
+ 2, // llvm.nvvm.sust.p.2d.array.i16.trap
+ 2, // llvm.nvvm.sust.p.2d.array.i32.trap
+ 2, // llvm.nvvm.sust.p.2d.array.i8.trap
+ 2, // llvm.nvvm.sust.p.2d.array.v2i16.trap
+ 2, // llvm.nvvm.sust.p.2d.array.v2i32.trap
+ 2, // llvm.nvvm.sust.p.2d.array.v2i8.trap
+ 2, // llvm.nvvm.sust.p.2d.array.v4i16.trap
+ 2, // llvm.nvvm.sust.p.2d.array.v4i32.trap
+ 2, // llvm.nvvm.sust.p.2d.array.v4i8.trap
+ 2, // llvm.nvvm.sust.p.2d.i16.trap
+ 2, // llvm.nvvm.sust.p.2d.i32.trap
+ 2, // llvm.nvvm.sust.p.2d.i8.trap
+ 2, // llvm.nvvm.sust.p.2d.v2i16.trap
+ 2, // llvm.nvvm.sust.p.2d.v2i32.trap
+ 2, // llvm.nvvm.sust.p.2d.v2i8.trap
+ 2, // llvm.nvvm.sust.p.2d.v4i16.trap
+ 2, // llvm.nvvm.sust.p.2d.v4i32.trap
+ 2, // llvm.nvvm.sust.p.2d.v4i8.trap
+ 2, // llvm.nvvm.sust.p.3d.i16.trap
+ 2, // llvm.nvvm.sust.p.3d.i32.trap
+ 2, // llvm.nvvm.sust.p.3d.i8.trap
+ 2, // llvm.nvvm.sust.p.3d.v2i16.trap
+ 2, // llvm.nvvm.sust.p.3d.v2i32.trap
+ 2, // llvm.nvvm.sust.p.3d.v2i8.trap
+ 2, // llvm.nvvm.sust.p.3d.v4i16.trap
+ 2, // llvm.nvvm.sust.p.3d.v4i32.trap
+ 2, // llvm.nvvm.sust.p.3d.v4i8.trap
+ 1, // llvm.nvvm.swap.lo.hi.b64
+ 2, // llvm.nvvm.tex.1d.array.grad.v4f32.f32
+ 2, // llvm.nvvm.tex.1d.array.grad.v4s32.f32
+ 2, // llvm.nvvm.tex.1d.array.grad.v4u32.f32
+ 2, // llvm.nvvm.tex.1d.array.level.v4f32.f32
+ 2, // llvm.nvvm.tex.1d.array.level.v4s32.f32
+ 2, // llvm.nvvm.tex.1d.array.level.v4u32.f32
+ 2, // llvm.nvvm.tex.1d.array.v4f32.f32
+ 2, // llvm.nvvm.tex.1d.array.v4f32.s32
+ 2, // llvm.nvvm.tex.1d.array.v4s32.f32
+ 2, // llvm.nvvm.tex.1d.array.v4s32.s32
+ 2, // llvm.nvvm.tex.1d.array.v4u32.f32
+ 2, // llvm.nvvm.tex.1d.array.v4u32.s32
+ 2, // llvm.nvvm.tex.1d.grad.v4f32.f32
+ 2, // llvm.nvvm.tex.1d.grad.v4s32.f32
+ 2, // llvm.nvvm.tex.1d.grad.v4u32.f32
+ 2, // llvm.nvvm.tex.1d.level.v4f32.f32
+ 2, // llvm.nvvm.tex.1d.level.v4s32.f32
+ 2, // llvm.nvvm.tex.1d.level.v4u32.f32
+ 2, // llvm.nvvm.tex.1d.v4f32.f32
+ 2, // llvm.nvvm.tex.1d.v4f32.s32
+ 2, // llvm.nvvm.tex.1d.v4s32.f32
+ 2, // llvm.nvvm.tex.1d.v4s32.s32
+ 2, // llvm.nvvm.tex.1d.v4u32.f32
+ 2, // llvm.nvvm.tex.1d.v4u32.s32
+ 2, // llvm.nvvm.tex.2d.array.grad.v4f32.f32
+ 2, // llvm.nvvm.tex.2d.array.grad.v4s32.f32
+ 2, // llvm.nvvm.tex.2d.array.grad.v4u32.f32
+ 2, // llvm.nvvm.tex.2d.array.level.v4f32.f32
+ 2, // llvm.nvvm.tex.2d.array.level.v4s32.f32
+ 2, // llvm.nvvm.tex.2d.array.level.v4u32.f32
+ 2, // llvm.nvvm.tex.2d.array.v4f32.f32
+ 2, // llvm.nvvm.tex.2d.array.v4f32.s32
+ 2, // llvm.nvvm.tex.2d.array.v4s32.f32
+ 2, // llvm.nvvm.tex.2d.array.v4s32.s32
+ 2, // llvm.nvvm.tex.2d.array.v4u32.f32
+ 2, // llvm.nvvm.tex.2d.array.v4u32.s32
+ 2, // llvm.nvvm.tex.2d.grad.v4f32.f32
+ 2, // llvm.nvvm.tex.2d.grad.v4s32.f32
+ 2, // llvm.nvvm.tex.2d.grad.v4u32.f32
+ 2, // llvm.nvvm.tex.2d.level.v4f32.f32
+ 2, // llvm.nvvm.tex.2d.level.v4s32.f32
+ 2, // llvm.nvvm.tex.2d.level.v4u32.f32
+ 2, // llvm.nvvm.tex.2d.v4f32.f32
+ 2, // llvm.nvvm.tex.2d.v4f32.s32
+ 2, // llvm.nvvm.tex.2d.v4s32.f32
+ 2, // llvm.nvvm.tex.2d.v4s32.s32
+ 2, // llvm.nvvm.tex.2d.v4u32.f32
+ 2, // llvm.nvvm.tex.2d.v4u32.s32
+ 2, // llvm.nvvm.tex.3d.grad.v4f32.f32
+ 2, // llvm.nvvm.tex.3d.grad.v4s32.f32
+ 2, // llvm.nvvm.tex.3d.grad.v4u32.f32
+ 2, // llvm.nvvm.tex.3d.level.v4f32.f32
+ 2, // llvm.nvvm.tex.3d.level.v4s32.f32
+ 2, // llvm.nvvm.tex.3d.level.v4u32.f32
+ 2, // llvm.nvvm.tex.3d.v4f32.f32
+ 2, // llvm.nvvm.tex.3d.v4f32.s32
+ 2, // llvm.nvvm.tex.3d.v4s32.f32
+ 2, // llvm.nvvm.tex.3d.v4s32.s32
+ 2, // llvm.nvvm.tex.3d.v4u32.f32
+ 2, // llvm.nvvm.tex.3d.v4u32.s32
+ 2, // llvm.nvvm.tex.cube.array.level.v4f32.f32
+ 2, // llvm.nvvm.tex.cube.array.level.v4s32.f32
+ 2, // llvm.nvvm.tex.cube.array.level.v4u32.f32
+ 2, // llvm.nvvm.tex.cube.array.v4f32.f32
+ 2, // llvm.nvvm.tex.cube.array.v4s32.f32
+ 2, // llvm.nvvm.tex.cube.array.v4u32.f32
+ 2, // llvm.nvvm.tex.cube.level.v4f32.f32
+ 2, // llvm.nvvm.tex.cube.level.v4s32.f32
+ 2, // llvm.nvvm.tex.cube.level.v4u32.f32
+ 2, // llvm.nvvm.tex.cube.v4f32.f32
+ 2, // llvm.nvvm.tex.cube.v4s32.f32
+ 2, // llvm.nvvm.tex.cube.v4u32.f32
+ 2, // llvm.nvvm.tex.unified.1d.array.grad.v4f32.f32
+ 2, // llvm.nvvm.tex.unified.1d.array.grad.v4s32.f32
+ 2, // llvm.nvvm.tex.unified.1d.array.grad.v4u32.f32
+ 2, // llvm.nvvm.tex.unified.1d.array.level.v4f32.f32
+ 2, // llvm.nvvm.tex.unified.1d.array.level.v4s32.f32
+ 2, // llvm.nvvm.tex.unified.1d.array.level.v4u32.f32
+ 2, // llvm.nvvm.tex.unified.1d.array.v4f32.f32
+ 2, // llvm.nvvm.tex.unified.1d.array.v4f32.s32
+ 2, // llvm.nvvm.tex.unified.1d.array.v4s32.f32
+ 2, // llvm.nvvm.tex.unified.1d.array.v4s32.s32
+ 2, // llvm.nvvm.tex.unified.1d.array.v4u32.f32
+ 2, // llvm.nvvm.tex.unified.1d.array.v4u32.s32
+ 2, // llvm.nvvm.tex.unified.1d.grad.v4f32.f32
+ 2, // llvm.nvvm.tex.unified.1d.grad.v4s32.f32
+ 2, // llvm.nvvm.tex.unified.1d.grad.v4u32.f32
+ 2, // llvm.nvvm.tex.unified.1d.level.v4f32.f32
+ 2, // llvm.nvvm.tex.unified.1d.level.v4s32.f32
+ 2, // llvm.nvvm.tex.unified.1d.level.v4u32.f32
+ 2, // llvm.nvvm.tex.unified.1d.v4f32.f32
+ 2, // llvm.nvvm.tex.unified.1d.v4f32.s32
+ 2, // llvm.nvvm.tex.unified.1d.v4s32.f32
+ 2, // llvm.nvvm.tex.unified.1d.v4s32.s32
+ 2, // llvm.nvvm.tex.unified.1d.v4u32.f32
+ 2, // llvm.nvvm.tex.unified.1d.v4u32.s32
+ 2, // llvm.nvvm.tex.unified.2d.array.grad.v4f32.f32
+ 2, // llvm.nvvm.tex.unified.2d.array.grad.v4s32.f32
+ 2, // llvm.nvvm.tex.unified.2d.array.grad.v4u32.f32
+ 2, // llvm.nvvm.tex.unified.2d.array.level.v4f32.f32
+ 2, // llvm.nvvm.tex.unified.2d.array.level.v4s32.f32
+ 2, // llvm.nvvm.tex.unified.2d.array.level.v4u32.f32
+ 2, // llvm.nvvm.tex.unified.2d.array.v4f32.f32
+ 2, // llvm.nvvm.tex.unified.2d.array.v4f32.s32
+ 2, // llvm.nvvm.tex.unified.2d.array.v4s32.f32
+ 2, // llvm.nvvm.tex.unified.2d.array.v4s32.s32
+ 2, // llvm.nvvm.tex.unified.2d.array.v4u32.f32
+ 2, // llvm.nvvm.tex.unified.2d.array.v4u32.s32
+ 2, // llvm.nvvm.tex.unified.2d.grad.v4f32.f32
+ 2, // llvm.nvvm.tex.unified.2d.grad.v4s32.f32
+ 2, // llvm.nvvm.tex.unified.2d.grad.v4u32.f32
+ 2, // llvm.nvvm.tex.unified.2d.level.v4f32.f32
+ 2, // llvm.nvvm.tex.unified.2d.level.v4s32.f32
+ 2, // llvm.nvvm.tex.unified.2d.level.v4u32.f32
+ 2, // llvm.nvvm.tex.unified.2d.v4f32.f32
+ 2, // llvm.nvvm.tex.unified.2d.v4f32.s32
+ 2, // llvm.nvvm.tex.unified.2d.v4s32.f32
+ 2, // llvm.nvvm.tex.unified.2d.v4s32.s32
+ 2, // llvm.nvvm.tex.unified.2d.v4u32.f32
+ 2, // llvm.nvvm.tex.unified.2d.v4u32.s32
+ 2, // llvm.nvvm.tex.unified.3d.grad.v4f32.f32
+ 2, // llvm.nvvm.tex.unified.3d.grad.v4s32.f32
+ 2, // llvm.nvvm.tex.unified.3d.grad.v4u32.f32
+ 2, // llvm.nvvm.tex.unified.3d.level.v4f32.f32
+ 2, // llvm.nvvm.tex.unified.3d.level.v4s32.f32
+ 2, // llvm.nvvm.tex.unified.3d.level.v4u32.f32
+ 2, // llvm.nvvm.tex.unified.3d.v4f32.f32
+ 2, // llvm.nvvm.tex.unified.3d.v4f32.s32
+ 2, // llvm.nvvm.tex.unified.3d.v4s32.f32
+ 2, // llvm.nvvm.tex.unified.3d.v4s32.s32
+ 2, // llvm.nvvm.tex.unified.3d.v4u32.f32
+ 2, // llvm.nvvm.tex.unified.3d.v4u32.s32
+ 2, // llvm.nvvm.tex.unified.cube.array.level.v4f32.f32
+ 2, // llvm.nvvm.tex.unified.cube.array.level.v4s32.f32
+ 2, // llvm.nvvm.tex.unified.cube.array.level.v4u32.f32
+ 2, // llvm.nvvm.tex.unified.cube.array.v4f32.f32
+ 2, // llvm.nvvm.tex.unified.cube.array.v4s32.f32
+ 2, // llvm.nvvm.tex.unified.cube.array.v4u32.f32
+ 2, // llvm.nvvm.tex.unified.cube.level.v4f32.f32
+ 2, // llvm.nvvm.tex.unified.cube.level.v4s32.f32
+ 2, // llvm.nvvm.tex.unified.cube.level.v4u32.f32
+ 2, // llvm.nvvm.tex.unified.cube.v4f32.f32
+ 2, // llvm.nvvm.tex.unified.cube.v4s32.f32
+ 2, // llvm.nvvm.tex.unified.cube.v4u32.f32
+ 1, // llvm.nvvm.texsurf.handle
+ 1, // llvm.nvvm.texsurf.handle.internal
+ 2, // llvm.nvvm.tld4.a.2d.v4f32.f32
+ 2, // llvm.nvvm.tld4.a.2d.v4s32.f32
+ 2, // llvm.nvvm.tld4.a.2d.v4u32.f32
+ 2, // llvm.nvvm.tld4.b.2d.v4f32.f32
+ 2, // llvm.nvvm.tld4.b.2d.v4s32.f32
+ 2, // llvm.nvvm.tld4.b.2d.v4u32.f32
+ 2, // llvm.nvvm.tld4.g.2d.v4f32.f32
+ 2, // llvm.nvvm.tld4.g.2d.v4s32.f32
+ 2, // llvm.nvvm.tld4.g.2d.v4u32.f32
+ 2, // llvm.nvvm.tld4.r.2d.v4f32.f32
+ 2, // llvm.nvvm.tld4.r.2d.v4s32.f32
+ 2, // llvm.nvvm.tld4.r.2d.v4u32.f32
+ 2, // llvm.nvvm.tld4.unified.a.2d.v4f32.f32
+ 2, // llvm.nvvm.tld4.unified.a.2d.v4s32.f32
+ 2, // llvm.nvvm.tld4.unified.a.2d.v4u32.f32
+ 2, // llvm.nvvm.tld4.unified.b.2d.v4f32.f32
+ 2, // llvm.nvvm.tld4.unified.b.2d.v4s32.f32
+ 2, // llvm.nvvm.tld4.unified.b.2d.v4u32.f32
+ 2, // llvm.nvvm.tld4.unified.g.2d.v4f32.f32
+ 2, // llvm.nvvm.tld4.unified.g.2d.v4s32.f32
+ 2, // llvm.nvvm.tld4.unified.g.2d.v4u32.f32
+ 2, // llvm.nvvm.tld4.unified.r.2d.v4f32.f32
+ 2, // llvm.nvvm.tld4.unified.r.2d.v4s32.f32
+ 2, // llvm.nvvm.tld4.unified.r.2d.v4u32.f32
+ 1, // llvm.nvvm.trunc.d
+ 1, // llvm.nvvm.trunc.f
+ 1, // llvm.nvvm.trunc.ftz.f
+ 1, // llvm.nvvm.txq.array.size
+ 1, // llvm.nvvm.txq.channel.data.type
+ 1, // llvm.nvvm.txq.channel.order
+ 1, // llvm.nvvm.txq.depth
+ 1, // llvm.nvvm.txq.height
+ 1, // llvm.nvvm.txq.num.mipmap.levels
+ 1, // llvm.nvvm.txq.num.samples
+ 1, // llvm.nvvm.txq.width
+ 1, // llvm.nvvm.ui2d.rm
+ 1, // llvm.nvvm.ui2d.rn
+ 1, // llvm.nvvm.ui2d.rp
+ 1, // llvm.nvvm.ui2d.rz
+ 1, // llvm.nvvm.ui2f.rm
+ 1, // llvm.nvvm.ui2f.rn
+ 1, // llvm.nvvm.ui2f.rp
+ 1, // llvm.nvvm.ui2f.rz
+ 1, // llvm.nvvm.ull2d.rm
+ 1, // llvm.nvvm.ull2d.rn
+ 1, // llvm.nvvm.ull2d.rp
+ 1, // llvm.nvvm.ull2d.rz
+ 1, // llvm.nvvm.ull2f.rm
+ 1, // llvm.nvvm.ull2f.rn
+ 1, // llvm.nvvm.ull2f.rp
+ 1, // llvm.nvvm.ull2f.rz
+ 1, // llvm.objectsize
+ 2, // llvm.pcmarker
+ 1, // llvm.pow
+ 1, // llvm.powi
+ 2, // llvm.ppc.altivec.dss
+ 2, // llvm.ppc.altivec.dssall
+ 2, // llvm.ppc.altivec.dst
+ 2, // llvm.ppc.altivec.dstst
+ 2, // llvm.ppc.altivec.dststt
+ 2, // llvm.ppc.altivec.dstt
+ 3, // llvm.ppc.altivec.lvebx
+ 3, // llvm.ppc.altivec.lvehx
+ 3, // llvm.ppc.altivec.lvewx
+ 1, // llvm.ppc.altivec.lvsl
+ 1, // llvm.ppc.altivec.lvsr
+ 3, // llvm.ppc.altivec.lvx
+ 3, // llvm.ppc.altivec.lvxl
+ 3, // llvm.ppc.altivec.mfvscr
+ 2, // llvm.ppc.altivec.mtvscr
+ 2, // llvm.ppc.altivec.stvebx
+ 2, // llvm.ppc.altivec.stvehx
+ 2, // llvm.ppc.altivec.stvewx
+ 2, // llvm.ppc.altivec.stvx
+ 2, // llvm.ppc.altivec.stvxl
+ 1, // llvm.ppc.altivec.vaddcuw
+ 1, // llvm.ppc.altivec.vaddsbs
+ 1, // llvm.ppc.altivec.vaddshs
+ 1, // llvm.ppc.altivec.vaddsws
+ 1, // llvm.ppc.altivec.vaddubs
+ 1, // llvm.ppc.altivec.vadduhs
+ 1, // llvm.ppc.altivec.vadduws
+ 1, // llvm.ppc.altivec.vavgsb
+ 1, // llvm.ppc.altivec.vavgsh
+ 1, // llvm.ppc.altivec.vavgsw
+ 1, // llvm.ppc.altivec.vavgub
+ 1, // llvm.ppc.altivec.vavguh
+ 1, // llvm.ppc.altivec.vavguw
+ 1, // llvm.ppc.altivec.vcfsx
+ 1, // llvm.ppc.altivec.vcfux
+ 1, // llvm.ppc.altivec.vcmpbfp
+ 1, // llvm.ppc.altivec.vcmpbfp.p
+ 1, // llvm.ppc.altivec.vcmpeqfp
+ 1, // llvm.ppc.altivec.vcmpeqfp.p
+ 1, // llvm.ppc.altivec.vcmpequb
+ 1, // llvm.ppc.altivec.vcmpequb.p
+ 1, // llvm.ppc.altivec.vcmpequh
+ 1, // llvm.ppc.altivec.vcmpequh.p
+ 1, // llvm.ppc.altivec.vcmpequw
+ 1, // llvm.ppc.altivec.vcmpequw.p
+ 1, // llvm.ppc.altivec.vcmpgefp
+ 1, // llvm.ppc.altivec.vcmpgefp.p
+ 1, // llvm.ppc.altivec.vcmpgtfp
+ 1, // llvm.ppc.altivec.vcmpgtfp.p
+ 1, // llvm.ppc.altivec.vcmpgtsb
+ 1, // llvm.ppc.altivec.vcmpgtsb.p
+ 1, // llvm.ppc.altivec.vcmpgtsh
+ 1, // llvm.ppc.altivec.vcmpgtsh.p
+ 1, // llvm.ppc.altivec.vcmpgtsw
+ 1, // llvm.ppc.altivec.vcmpgtsw.p
+ 1, // llvm.ppc.altivec.vcmpgtub
+ 1, // llvm.ppc.altivec.vcmpgtub.p
+ 1, // llvm.ppc.altivec.vcmpgtuh
+ 1, // llvm.ppc.altivec.vcmpgtuh.p
+ 1, // llvm.ppc.altivec.vcmpgtuw
+ 1, // llvm.ppc.altivec.vcmpgtuw.p
+ 1, // llvm.ppc.altivec.vctsxs
+ 1, // llvm.ppc.altivec.vctuxs
+ 1, // llvm.ppc.altivec.vexptefp
+ 1, // llvm.ppc.altivec.vlogefp
+ 1, // llvm.ppc.altivec.vmaddfp
+ 1, // llvm.ppc.altivec.vmaxfp
+ 1, // llvm.ppc.altivec.vmaxsb
+ 1, // llvm.ppc.altivec.vmaxsh
+ 1, // llvm.ppc.altivec.vmaxsw
+ 1, // llvm.ppc.altivec.vmaxub
+ 1, // llvm.ppc.altivec.vmaxuh
+ 1, // llvm.ppc.altivec.vmaxuw
+ 1, // llvm.ppc.altivec.vmhaddshs
+ 1, // llvm.ppc.altivec.vmhraddshs
+ 1, // llvm.ppc.altivec.vminfp
+ 1, // llvm.ppc.altivec.vminsb
+ 1, // llvm.ppc.altivec.vminsh
+ 1, // llvm.ppc.altivec.vminsw
+ 1, // llvm.ppc.altivec.vminub
+ 1, // llvm.ppc.altivec.vminuh
+ 1, // llvm.ppc.altivec.vminuw
+ 1, // llvm.ppc.altivec.vmladduhm
+ 1, // llvm.ppc.altivec.vmsummbm
+ 1, // llvm.ppc.altivec.vmsumshm
+ 1, // llvm.ppc.altivec.vmsumshs
+ 1, // llvm.ppc.altivec.vmsumubm
+ 1, // llvm.ppc.altivec.vmsumuhm
+ 1, // llvm.ppc.altivec.vmsumuhs
+ 1, // llvm.ppc.altivec.vmulesb
+ 1, // llvm.ppc.altivec.vmulesh
+ 1, // llvm.ppc.altivec.vmuleub
+ 1, // llvm.ppc.altivec.vmuleuh
+ 1, // llvm.ppc.altivec.vmulosb
+ 1, // llvm.ppc.altivec.vmulosh
+ 1, // llvm.ppc.altivec.vmuloub
+ 1, // llvm.ppc.altivec.vmulouh
+ 1, // llvm.ppc.altivec.vnmsubfp
+ 1, // llvm.ppc.altivec.vperm
+ 1, // llvm.ppc.altivec.vpkpx
+ 1, // llvm.ppc.altivec.vpkshss
+ 1, // llvm.ppc.altivec.vpkshus
+ 1, // llvm.ppc.altivec.vpkswss
+ 1, // llvm.ppc.altivec.vpkswus
+ 1, // llvm.ppc.altivec.vpkuhus
+ 1, // llvm.ppc.altivec.vpkuwus
+ 1, // llvm.ppc.altivec.vrefp
+ 1, // llvm.ppc.altivec.vrfim
+ 1, // llvm.ppc.altivec.vrfin
+ 1, // llvm.ppc.altivec.vrfip
+ 1, // llvm.ppc.altivec.vrfiz
+ 1, // llvm.ppc.altivec.vrlb
+ 1, // llvm.ppc.altivec.vrlh
+ 1, // llvm.ppc.altivec.vrlw
+ 1, // llvm.ppc.altivec.vrsqrtefp
+ 1, // llvm.ppc.altivec.vsel
+ 1, // llvm.ppc.altivec.vsl
+ 1, // llvm.ppc.altivec.vslb
+ 1, // llvm.ppc.altivec.vslh
+ 1, // llvm.ppc.altivec.vslo
+ 1, // llvm.ppc.altivec.vslw
+ 1, // llvm.ppc.altivec.vsr
+ 1, // llvm.ppc.altivec.vsrab
+ 1, // llvm.ppc.altivec.vsrah
+ 1, // llvm.ppc.altivec.vsraw
+ 1, // llvm.ppc.altivec.vsrb
+ 1, // llvm.ppc.altivec.vsrh
+ 1, // llvm.ppc.altivec.vsro
+ 1, // llvm.ppc.altivec.vsrw
+ 1, // llvm.ppc.altivec.vsubcuw
+ 1, // llvm.ppc.altivec.vsubsbs
+ 1, // llvm.ppc.altivec.vsubshs
+ 1, // llvm.ppc.altivec.vsubsws
+ 1, // llvm.ppc.altivec.vsububs
+ 1, // llvm.ppc.altivec.vsubuhs
+ 1, // llvm.ppc.altivec.vsubuws
+ 1, // llvm.ppc.altivec.vsum2sws
+ 1, // llvm.ppc.altivec.vsum4sbs
+ 1, // llvm.ppc.altivec.vsum4shs
+ 1, // llvm.ppc.altivec.vsum4ubs
+ 1, // llvm.ppc.altivec.vsumsws
+ 1, // llvm.ppc.altivec.vupkhpx
+ 1, // llvm.ppc.altivec.vupkhsb
+ 1, // llvm.ppc.altivec.vupkhsh
+ 1, // llvm.ppc.altivec.vupklpx
+ 1, // llvm.ppc.altivec.vupklsb
+ 1, // llvm.ppc.altivec.vupklsh
+ 2, // llvm.ppc.dcba
+ 2, // llvm.ppc.dcbf
+ 2, // llvm.ppc.dcbi
+ 2, // llvm.ppc.dcbst
+ 12, // llvm.ppc.dcbt
+ 2, // llvm.ppc.dcbtst
+ 2, // llvm.ppc.dcbz
+ 2, // llvm.ppc.dcbzl
+ 2, // llvm.ppc.is.decremented.ctr.nonzero
+ 2, // llvm.ppc.mtctr
+ 2, // llvm.ppc.sync
+ 12, // llvm.prefetch
+ 2, // llvm.ptr.annotation
+ 2, // llvm.ptx.bar.sync
+ 1, // llvm.ptx.read.clock
+ 1, // llvm.ptx.read.clock64
+ 1, // llvm.ptx.read.ctaid.w
+ 1, // llvm.ptx.read.ctaid.x
+ 1, // llvm.ptx.read.ctaid.y
+ 1, // llvm.ptx.read.ctaid.z
+ 1, // llvm.ptx.read.gridid
+ 1, // llvm.ptx.read.laneid
+ 1, // llvm.ptx.read.lanemask.eq
+ 1, // llvm.ptx.read.lanemask.ge
+ 1, // llvm.ptx.read.lanemask.gt
+ 1, // llvm.ptx.read.lanemask.le
+ 1, // llvm.ptx.read.lanemask.lt
+ 1, // llvm.ptx.read.nctaid.w
+ 1, // llvm.ptx.read.nctaid.x
+ 1, // llvm.ptx.read.nctaid.y
+ 1, // llvm.ptx.read.nctaid.z
+ 1, // llvm.ptx.read.nsmid
+ 1, // llvm.ptx.read.ntid.w
+ 1, // llvm.ptx.read.ntid.x
+ 1, // llvm.ptx.read.ntid.y
+ 1, // llvm.ptx.read.ntid.z
+ 1, // llvm.ptx.read.nwarpid
+ 1, // llvm.ptx.read.pm0
+ 1, // llvm.ptx.read.pm1
+ 1, // llvm.ptx.read.pm2
+ 1, // llvm.ptx.read.pm3
+ 1, // llvm.ptx.read.smid
+ 1, // llvm.ptx.read.tid.w
+ 1, // llvm.ptx.read.tid.x
+ 1, // llvm.ptx.read.tid.y
+ 1, // llvm.ptx.read.tid.z
+ 1, // llvm.ptx.read.warpid
+ 1, // llvm.r600.read.global.size.x
+ 1, // llvm.r600.read.global.size.y
+ 1, // llvm.r600.read.global.size.z
+ 1, // llvm.r600.read.local.size.x
+ 1, // llvm.r600.read.local.size.y
+ 1, // llvm.r600.read.local.size.z
+ 1, // llvm.r600.read.ngroups.x
+ 1, // llvm.r600.read.ngroups.y
+ 1, // llvm.r600.read.ngroups.z
+ 1, // llvm.r600.read.tgid.x
+ 1, // llvm.r600.read.tgid.y
+ 1, // llvm.r600.read.tgid.z
+ 1, // llvm.r600.read.tidig.x
+ 1, // llvm.r600.read.tidig.y
+ 1, // llvm.r600.read.tidig.z
+ 1, // llvm.read_register
+ 2, // llvm.readcyclecounter
+ 1, // llvm.returnaddress
+ 1, // llvm.rint
+ 1, // llvm.round
+ 1, // llvm.sadd.with.overflow
+ 2, // llvm.setjmp
+ 9, // llvm.siglongjmp
+ 2, // llvm.sigsetjmp
+ 1, // llvm.sin
+ 1, // llvm.smul.with.overflow
+ 1, // llvm.sqrt
+ 1, // llvm.ssub.with.overflow
+ 2, // llvm.stackprotector
+ 2, // llvm.stackprotectorcheck
+ 2, // llvm.stackrestore
+ 2, // llvm.stacksave
+ 9, // llvm.trap
+ 1, // llvm.trunc
+ 1, // llvm.uadd.with.overflow
+ 1, // llvm.umul.with.overflow
+ 1, // llvm.usub.with.overflow
+ 2, // llvm.va_copy
+ 2, // llvm.va_end
+ 2, // llvm.var.annotation
+ 2, // llvm.va_start
+ 2, // llvm.write_register
+ 1, // llvm.x86.3dnow.pavgusb
+ 1, // llvm.x86.3dnow.pf2id
+ 1, // llvm.x86.3dnow.pfacc
+ 1, // llvm.x86.3dnow.pfadd
+ 1, // llvm.x86.3dnow.pfcmpeq
+ 1, // llvm.x86.3dnow.pfcmpge
+ 1, // llvm.x86.3dnow.pfcmpgt
+ 1, // llvm.x86.3dnow.pfmax
+ 1, // llvm.x86.3dnow.pfmin
+ 1, // llvm.x86.3dnow.pfmul
+ 1, // llvm.x86.3dnow.pfrcp
+ 1, // llvm.x86.3dnow.pfrcpit1
+ 1, // llvm.x86.3dnow.pfrcpit2
+ 1, // llvm.x86.3dnow.pfrsqit1
+ 1, // llvm.x86.3dnow.pfrsqrt
+ 1, // llvm.x86.3dnow.pfsub
+ 1, // llvm.x86.3dnow.pfsubr
+ 1, // llvm.x86.3dnow.pi2fd
+ 1, // llvm.x86.3dnow.pmulhrw
+ 1, // llvm.x86.3dnowa.pf2iw
+ 1, // llvm.x86.3dnowa.pfnacc
+ 1, // llvm.x86.3dnowa.pfpnacc
+ 1, // llvm.x86.3dnowa.pi2fw
+ 1, // llvm.x86.3dnowa.pswapd
+ 1, // llvm.x86.aesni.aesdec
+ 1, // llvm.x86.aesni.aesdeclast
+ 1, // llvm.x86.aesni.aesenc
+ 1, // llvm.x86.aesni.aesenclast
+ 1, // llvm.x86.aesni.aesimc
+ 1, // llvm.x86.aesni.aeskeygenassist
+ 3, // llvm.x86.avx2.gather.d.d
+ 3, // llvm.x86.avx2.gather.d.d.256
+ 3, // llvm.x86.avx2.gather.d.pd
+ 3, // llvm.x86.avx2.gather.d.pd.256
+ 3, // llvm.x86.avx2.gather.d.ps
+ 3, // llvm.x86.avx2.gather.d.ps.256
+ 3, // llvm.x86.avx2.gather.d.q
+ 3, // llvm.x86.avx2.gather.d.q.256
+ 3, // llvm.x86.avx2.gather.q.d
+ 3, // llvm.x86.avx2.gather.q.d.256
+ 3, // llvm.x86.avx2.gather.q.pd
+ 3, // llvm.x86.avx2.gather.q.pd.256
+ 3, // llvm.x86.avx2.gather.q.ps
+ 3, // llvm.x86.avx2.gather.q.ps.256
+ 3, // llvm.x86.avx2.gather.q.q
+ 3, // llvm.x86.avx2.gather.q.q.256
+ 3, // llvm.x86.avx2.maskload.d
+ 3, // llvm.x86.avx2.maskload.d.256
+ 3, // llvm.x86.avx2.maskload.q
+ 3, // llvm.x86.avx2.maskload.q.256
+ 2, // llvm.x86.avx2.maskstore.d
+ 2, // llvm.x86.avx2.maskstore.d.256
+ 2, // llvm.x86.avx2.maskstore.q
+ 2, // llvm.x86.avx2.maskstore.q.256
+ 3, // llvm.x86.avx2.movntdqa
+ 1, // llvm.x86.avx2.mpsadbw
+ 1, // llvm.x86.avx2.pabs.b
+ 1, // llvm.x86.avx2.pabs.d
+ 1, // llvm.x86.avx2.pabs.w
+ 1, // llvm.x86.avx2.packssdw
+ 1, // llvm.x86.avx2.packsswb
+ 1, // llvm.x86.avx2.packusdw
+ 1, // llvm.x86.avx2.packuswb
+ 1, // llvm.x86.avx2.padds.b
+ 1, // llvm.x86.avx2.padds.w
+ 1, // llvm.x86.avx2.paddus.b
+ 1, // llvm.x86.avx2.paddus.w
+ 1, // llvm.x86.avx2.pavg.b
+ 1, // llvm.x86.avx2.pavg.w
+ 1, // llvm.x86.avx2.pblendd.128
+ 1, // llvm.x86.avx2.pblendd.256
+ 1, // llvm.x86.avx2.pblendvb
+ 1, // llvm.x86.avx2.pblendw
+ 1, // llvm.x86.avx2.pbroadcastb.128
+ 1, // llvm.x86.avx2.pbroadcastb.256
+ 1, // llvm.x86.avx2.pbroadcastd.128
+ 1, // llvm.x86.avx2.pbroadcastd.256
+ 1, // llvm.x86.avx2.pbroadcastq.128
+ 1, // llvm.x86.avx2.pbroadcastq.256
+ 1, // llvm.x86.avx2.pbroadcastw.128
+ 1, // llvm.x86.avx2.pbroadcastw.256
+ 1, // llvm.x86.avx2.permd
+ 1, // llvm.x86.avx2.permps
+ 1, // llvm.x86.avx2.phadd.d
+ 1, // llvm.x86.avx2.phadd.sw
+ 1, // llvm.x86.avx2.phadd.w
+ 1, // llvm.x86.avx2.phsub.d
+ 1, // llvm.x86.avx2.phsub.sw
+ 1, // llvm.x86.avx2.phsub.w
+ 1, // llvm.x86.avx2.pmadd.ub.sw
+ 1, // llvm.x86.avx2.pmadd.wd
+ 1, // llvm.x86.avx2.pmaxs.b
+ 1, // llvm.x86.avx2.pmaxs.d
+ 1, // llvm.x86.avx2.pmaxs.w
+ 1, // llvm.x86.avx2.pmaxu.b
+ 1, // llvm.x86.avx2.pmaxu.d
+ 1, // llvm.x86.avx2.pmaxu.w
+ 1, // llvm.x86.avx2.pmins.b
+ 1, // llvm.x86.avx2.pmins.d
+ 1, // llvm.x86.avx2.pmins.w
+ 1, // llvm.x86.avx2.pminu.b
+ 1, // llvm.x86.avx2.pminu.d
+ 1, // llvm.x86.avx2.pminu.w
+ 1, // llvm.x86.avx2.pmovmskb
+ 1, // llvm.x86.avx2.pmovsxbd
+ 1, // llvm.x86.avx2.pmovsxbq
+ 1, // llvm.x86.avx2.pmovsxbw
+ 1, // llvm.x86.avx2.pmovsxdq
+ 1, // llvm.x86.avx2.pmovsxwd
+ 1, // llvm.x86.avx2.pmovsxwq
+ 1, // llvm.x86.avx2.pmovzxbd
+ 1, // llvm.x86.avx2.pmovzxbq
+ 1, // llvm.x86.avx2.pmovzxbw
+ 1, // llvm.x86.avx2.pmovzxdq
+ 1, // llvm.x86.avx2.pmovzxwd
+ 1, // llvm.x86.avx2.pmovzxwq
+ 1, // llvm.x86.avx2.pmul.dq
+ 1, // llvm.x86.avx2.pmul.hr.sw
+ 1, // llvm.x86.avx2.pmulh.w
+ 1, // llvm.x86.avx2.pmulhu.w
+ 1, // llvm.x86.avx2.pmulu.dq
+ 1, // llvm.x86.avx2.psad.bw
+ 1, // llvm.x86.avx2.pshuf.b
+ 1, // llvm.x86.avx2.psign.b
+ 1, // llvm.x86.avx2.psign.d
+ 1, // llvm.x86.avx2.psign.w
+ 1, // llvm.x86.avx2.psll.d
+ 1, // llvm.x86.avx2.psll.dq
+ 1, // llvm.x86.avx2.psll.dq.bs
+ 1, // llvm.x86.avx2.psll.q
+ 1, // llvm.x86.avx2.psll.w
+ 1, // llvm.x86.avx2.pslli.d
+ 1, // llvm.x86.avx2.pslli.q
+ 1, // llvm.x86.avx2.pslli.w
+ 1, // llvm.x86.avx2.psllv.d
+ 1, // llvm.x86.avx2.psllv.d.256
+ 1, // llvm.x86.avx2.psllv.q
+ 1, // llvm.x86.avx2.psllv.q.256
+ 1, // llvm.x86.avx2.psra.d
+ 1, // llvm.x86.avx2.psra.w
+ 1, // llvm.x86.avx2.psrai.d
+ 1, // llvm.x86.avx2.psrai.w
+ 1, // llvm.x86.avx2.psrav.d
+ 1, // llvm.x86.avx2.psrav.d.256
+ 1, // llvm.x86.avx2.psrl.d
+ 1, // llvm.x86.avx2.psrl.dq
+ 1, // llvm.x86.avx2.psrl.dq.bs
+ 1, // llvm.x86.avx2.psrl.q
+ 1, // llvm.x86.avx2.psrl.w
+ 1, // llvm.x86.avx2.psrli.d
+ 1, // llvm.x86.avx2.psrli.q
+ 1, // llvm.x86.avx2.psrli.w
+ 1, // llvm.x86.avx2.psrlv.d
+ 1, // llvm.x86.avx2.psrlv.d.256
+ 1, // llvm.x86.avx2.psrlv.q
+ 1, // llvm.x86.avx2.psrlv.q.256
+ 1, // llvm.x86.avx2.psubs.b
+ 1, // llvm.x86.avx2.psubs.w
+ 1, // llvm.x86.avx2.psubus.b
+ 1, // llvm.x86.avx2.psubus.w
+ 1, // llvm.x86.avx2.vbroadcast.sd.pd.256
+ 1, // llvm.x86.avx2.vbroadcast.ss.ps
+ 1, // llvm.x86.avx2.vbroadcast.ss.ps.256
+ 3, // llvm.x86.avx2.vbroadcasti128
+ 1, // llvm.x86.avx2.vextracti128
+ 1, // llvm.x86.avx2.vinserti128
+ 1, // llvm.x86.avx2.vperm2i128
+ 1, // llvm.x86.avx512.cvtsd2usi
+ 1, // llvm.x86.avx512.cvtsd2usi64
+ 1, // llvm.x86.avx512.cvtss2usi
+ 1, // llvm.x86.avx512.cvtss2usi64
+ 1, // llvm.x86.avx512.cvttsd2usi
+ 1, // llvm.x86.avx512.cvttsd2usi64
+ 1, // llvm.x86.avx512.cvttss2usi
+ 1, // llvm.x86.avx512.cvttss2usi64
+ 1, // llvm.x86.avx512.cvtusi2sd
+ 1, // llvm.x86.avx512.cvtusi2ss
+ 1, // llvm.x86.avx512.cvtusi642sd
+ 1, // llvm.x86.avx512.cvtusi642ss
+ 3, // llvm.x86.avx512.gather.dpd.512
+ 3, // llvm.x86.avx512.gather.dpi.512
+ 3, // llvm.x86.avx512.gather.dpq.512
+ 3, // llvm.x86.avx512.gather.dps.512
+ 3, // llvm.x86.avx512.gather.qpd.512
+ 3, // llvm.x86.avx512.gather.qpi.512
+ 3, // llvm.x86.avx512.gather.qpq.512
+ 3, // llvm.x86.avx512.gather.qps.512
+ 2, // llvm.x86.avx512.gatherpf.dpd.512
+ 2, // llvm.x86.avx512.gatherpf.dps.512
+ 2, // llvm.x86.avx512.gatherpf.qpd.512
+ 2, // llvm.x86.avx512.gatherpf.qps.512
+ 1, // llvm.x86.avx512.kand.w
+ 1, // llvm.x86.avx512.kandn.w
+ 1, // llvm.x86.avx512.knot.w
+ 1, // llvm.x86.avx512.kor.w
+ 1, // llvm.x86.avx512.kortestc.w
+ 1, // llvm.x86.avx512.kortestz.w
+ 1, // llvm.x86.avx512.kunpck.bw
+ 1, // llvm.x86.avx512.kxnor.w
+ 1, // llvm.x86.avx512.kxor.w
+ 1, // llvm.x86.avx512.mask.blend.d.512
+ 1, // llvm.x86.avx512.mask.blend.pd.512
+ 1, // llvm.x86.avx512.mask.blend.ps.512
+ 1, // llvm.x86.avx512.mask.blend.q.512
+ 1, // llvm.x86.avx512.mask.cmp.pd.512
+ 1, // llvm.x86.avx512.mask.cmp.ps.512
+ 2, // llvm.x86.avx512.mask.conflict.d.512
+ 2, // llvm.x86.avx512.mask.conflict.q.512
+ 1, // llvm.x86.avx512.mask.cvtdq2pd.512
+ 1, // llvm.x86.avx512.mask.cvtdq2ps.512
+ 1, // llvm.x86.avx512.mask.cvtpd2dq.512
+ 1, // llvm.x86.avx512.mask.cvtpd2ps.512
+ 1, // llvm.x86.avx512.mask.cvtpd2udq.512
+ 1, // llvm.x86.avx512.mask.cvtps2dq.512
+ 1, // llvm.x86.avx512.mask.cvtps2udq.512
+ 1, // llvm.x86.avx512.mask.cvttpd2dq.512
+ 1, // llvm.x86.avx512.mask.cvttpd2udq.512
+ 1, // llvm.x86.avx512.mask.cvttps2dq.512
+ 1, // llvm.x86.avx512.mask.cvttps2udq.512
+ 1, // llvm.x86.avx512.mask.cvtudq2pd.512
+ 1, // llvm.x86.avx512.mask.cvtudq2ps.512
+ 3, // llvm.x86.avx512.mask.loadu.d.512
+ 3, // llvm.x86.avx512.mask.loadu.pd.512
+ 3, // llvm.x86.avx512.mask.loadu.ps.512
+ 3, // llvm.x86.avx512.mask.loadu.q.512
+ 2, // llvm.x86.avx512.mask.lzcnt.d.512
+ 2, // llvm.x86.avx512.mask.lzcnt.q.512
+ 1, // llvm.x86.avx512.mask.max.pd.512
+ 1, // llvm.x86.avx512.mask.max.ps.512
+ 1, // llvm.x86.avx512.mask.min.pd.512
+ 1, // llvm.x86.avx512.mask.min.ps.512
+ 1, // llvm.x86.avx512.mask.pabs.d.512
+ 1, // llvm.x86.avx512.mask.pabs.q.512
+ 1, // llvm.x86.avx512.mask.pand.d.512
+ 1, // llvm.x86.avx512.mask.pand.q.512
+ 1, // llvm.x86.avx512.mask.pbroadcast.d.gpr.512
+ 1, // llvm.x86.avx512.mask.pbroadcast.q.gpr.512
+ 1, // llvm.x86.avx512.mask.pbroadcast.q.mem.512
+ 1, // llvm.x86.avx512.mask.pcmpeq.d.512
+ 1, // llvm.x86.avx512.mask.pcmpeq.q.512
+ 1, // llvm.x86.avx512.mask.pmaxs.d.512
+ 1, // llvm.x86.avx512.mask.pmaxs.q.512
+ 1, // llvm.x86.avx512.mask.pmaxu.d.512
+ 1, // llvm.x86.avx512.mask.pmaxu.q.512
+ 1, // llvm.x86.avx512.mask.pmins.d.512
+ 1, // llvm.x86.avx512.mask.pmins.q.512
+ 1, // llvm.x86.avx512.mask.pminu.d.512
+ 1, // llvm.x86.avx512.mask.pminu.q.512
+ 1, // llvm.x86.avx512.mask.pmul.dq.512
+ 1, // llvm.x86.avx512.mask.pmulu.dq.512
+ 1, // llvm.x86.avx512.mask.ptestm.d.512
+ 1, // llvm.x86.avx512.mask.ptestm.q.512
+ 1, // llvm.x86.avx512.mask.rndscale.pd.512
+ 1, // llvm.x86.avx512.mask.rndscale.ps.512
+ 2, // llvm.x86.avx512.mask.storeu.d.512
+ 2, // llvm.x86.avx512.mask.storeu.pd.512
+ 2, // llvm.x86.avx512.mask.storeu.ps.512
+ 2, // llvm.x86.avx512.mask.storeu.q.512
+ 1, // llvm.x86.avx512.mask.vcvtph2ps.512
+ 1, // llvm.x86.avx512.mask.vcvtps2ph.512
+ 1, // llvm.x86.avx512.mask.vpermt.d.512
+ 1, // llvm.x86.avx512.mask.vpermt.pd.512
+ 1, // llvm.x86.avx512.mask.vpermt.ps.512
+ 1, // llvm.x86.avx512.mask.vpermt.q.512
+ 3, // llvm.x86.avx512.movntdqa
+ 1, // llvm.x86.avx512.pbroadcastd.512
+ 1, // llvm.x86.avx512.pbroadcastd.i32.512
+ 1, // llvm.x86.avx512.pbroadcastq.512
+ 1, // llvm.x86.avx512.pbroadcastq.i64.512
+ 1, // llvm.x86.avx512.pmovzxbd
+ 1, // llvm.x86.avx512.pmovzxbq
+ 1, // llvm.x86.avx512.pmovzxdq
+ 1, // llvm.x86.avx512.pmovzxwd
+ 1, // llvm.x86.avx512.pmovzxwq
+ 1, // llvm.x86.avx512.psll.dq
+ 1, // llvm.x86.avx512.psll.dq.bs
+ 1, // llvm.x86.avx512.psrl.dq
+ 1, // llvm.x86.avx512.psrl.dq.bs
+ 1, // llvm.x86.avx512.rcp14.pd.512
+ 1, // llvm.x86.avx512.rcp14.ps.512
+ 1, // llvm.x86.avx512.rcp14.sd
+ 1, // llvm.x86.avx512.rcp14.ss
+ 1, // llvm.x86.avx512.rcp28.pd
+ 1, // llvm.x86.avx512.rcp28.ps
+ 1, // llvm.x86.avx512.rcp28.sd
+ 1, // llvm.x86.avx512.rcp28.ss
+ 1, // llvm.x86.avx512.rndscale.sd
+ 1, // llvm.x86.avx512.rndscale.ss
+ 1, // llvm.x86.avx512.rsqrt14.pd.512
+ 1, // llvm.x86.avx512.rsqrt14.ps.512
+ 1, // llvm.x86.avx512.rsqrt14.sd
+ 1, // llvm.x86.avx512.rsqrt14.ss
+ 1, // llvm.x86.avx512.rsqrt28.pd
+ 1, // llvm.x86.avx512.rsqrt28.ps
+ 1, // llvm.x86.avx512.rsqrt28.sd
+ 1, // llvm.x86.avx512.rsqrt28.ss
+ 2, // llvm.x86.avx512.scatter.dpd.512
+ 2, // llvm.x86.avx512.scatter.dpi.512
+ 2, // llvm.x86.avx512.scatter.dpq.512
+ 2, // llvm.x86.avx512.scatter.dps.512
+ 2, // llvm.x86.avx512.scatter.qpd.512
+ 2, // llvm.x86.avx512.scatter.qpi.512
+ 2, // llvm.x86.avx512.scatter.qpq.512
+ 2, // llvm.x86.avx512.scatter.qps.512
+ 2, // llvm.x86.avx512.scatterpf.dpd.512
+ 2, // llvm.x86.avx512.scatterpf.dps.512
+ 2, // llvm.x86.avx512.scatterpf.qpd.512
+ 2, // llvm.x86.avx512.scatterpf.qps.512
+ 1, // llvm.x86.avx512.sqrt.pd.512
+ 1, // llvm.x86.avx512.sqrt.ps.512
+ 1, // llvm.x86.avx512.sqrt.sd
+ 1, // llvm.x86.avx512.sqrt.ss
+ 3, // llvm.x86.avx512.vbroadcast.sd.512
+ 1, // llvm.x86.avx512.vbroadcast.sd.pd.512
+ 3, // llvm.x86.avx512.vbroadcast.ss.512
+ 1, // llvm.x86.avx512.vbroadcast.ss.ps.512
+ 1, // llvm.x86.avx.addsub.pd.256
+ 1, // llvm.x86.avx.addsub.ps.256
+ 1, // llvm.x86.avx.blend.pd.256
+ 1, // llvm.x86.avx.blend.ps.256
+ 1, // llvm.x86.avx.blendv.pd.256
+ 1, // llvm.x86.avx.blendv.ps.256
+ 1, // llvm.x86.avx.cmp.pd.256
+ 1, // llvm.x86.avx.cmp.ps.256
+ 1, // llvm.x86.avx.cvt.pd2.ps.256
+ 1, // llvm.x86.avx.cvt.pd2dq.256
+ 1, // llvm.x86.avx.cvt.ps2.pd.256
+ 1, // llvm.x86.avx.cvt.ps2dq.256
+ 1, // llvm.x86.avx.cvtdq2.pd.256
+ 1, // llvm.x86.avx.cvtdq2.ps.256
+ 1, // llvm.x86.avx.cvtt.pd2dq.256
+ 1, // llvm.x86.avx.cvtt.ps2dq.256
+ 1, // llvm.x86.avx.dp.ps.256
+ 1, // llvm.x86.avx.hadd.pd.256
+ 1, // llvm.x86.avx.hadd.ps.256
+ 1, // llvm.x86.avx.hsub.pd.256
+ 1, // llvm.x86.avx.hsub.ps.256
+ 3, // llvm.x86.avx.ldu.dq.256
+ 3, // llvm.x86.avx.maskload.pd
+ 3, // llvm.x86.avx.maskload.pd.256
+ 3, // llvm.x86.avx.maskload.ps
+ 3, // llvm.x86.avx.maskload.ps.256
+ 2, // llvm.x86.avx.maskstore.pd
+ 2, // llvm.x86.avx.maskstore.pd.256
+ 2, // llvm.x86.avx.maskstore.ps
+ 2, // llvm.x86.avx.maskstore.ps.256
+ 1, // llvm.x86.avx.max.pd.256
+ 1, // llvm.x86.avx.max.ps.256
+ 1, // llvm.x86.avx.min.pd.256
+ 1, // llvm.x86.avx.min.ps.256
+ 1, // llvm.x86.avx.movmsk.pd.256
+ 1, // llvm.x86.avx.movmsk.ps.256
+ 1, // llvm.x86.avx.ptestc.256
+ 1, // llvm.x86.avx.ptestnzc.256
+ 1, // llvm.x86.avx.ptestz.256
+ 1, // llvm.x86.avx.rcp.ps.256
+ 1, // llvm.x86.avx.round.pd.256
+ 1, // llvm.x86.avx.round.ps.256
+ 1, // llvm.x86.avx.rsqrt.ps.256
+ 1, // llvm.x86.avx.sqrt.pd.256
+ 1, // llvm.x86.avx.sqrt.ps.256
+ 2, // llvm.x86.avx.storeu.dq.256
+ 2, // llvm.x86.avx.storeu.pd.256
+ 2, // llvm.x86.avx.storeu.ps.256
+ 3, // llvm.x86.avx.vbroadcastf128.pd.256
+ 3, // llvm.x86.avx.vbroadcastf128.ps.256
+ 1, // llvm.x86.avx.vextractf128.pd.256
+ 1, // llvm.x86.avx.vextractf128.ps.256
+ 1, // llvm.x86.avx.vextractf128.si.256
+ 1, // llvm.x86.avx.vinsertf128.pd.256
+ 1, // llvm.x86.avx.vinsertf128.ps.256
+ 1, // llvm.x86.avx.vinsertf128.si.256
+ 1, // llvm.x86.avx.vperm2f128.pd.256
+ 1, // llvm.x86.avx.vperm2f128.ps.256
+ 1, // llvm.x86.avx.vperm2f128.si.256
+ 1, // llvm.x86.avx.vpermilvar.pd
+ 1, // llvm.x86.avx.vpermilvar.pd.256
+ 1, // llvm.x86.avx.vpermilvar.ps
+ 1, // llvm.x86.avx.vpermilvar.ps.256
+ 1, // llvm.x86.avx.vtestc.pd
+ 1, // llvm.x86.avx.vtestc.pd.256
+ 1, // llvm.x86.avx.vtestc.ps
+ 1, // llvm.x86.avx.vtestc.ps.256
+ 1, // llvm.x86.avx.vtestnzc.pd
+ 1, // llvm.x86.avx.vtestnzc.pd.256
+ 1, // llvm.x86.avx.vtestnzc.ps
+ 1, // llvm.x86.avx.vtestnzc.ps.256
+ 1, // llvm.x86.avx.vtestz.pd
+ 1, // llvm.x86.avx.vtestz.pd.256
+ 1, // llvm.x86.avx.vtestz.ps
+ 1, // llvm.x86.avx.vtestz.ps.256
+ 2, // llvm.x86.avx.vzeroall
+ 2, // llvm.x86.avx.vzeroupper
+ 1, // llvm.x86.bmi.bextr.32
+ 1, // llvm.x86.bmi.bextr.64
+ 1, // llvm.x86.bmi.bzhi.32
+ 1, // llvm.x86.bmi.bzhi.64
+ 1, // llvm.x86.bmi.pdep.32
+ 1, // llvm.x86.bmi.pdep.64
+ 1, // llvm.x86.bmi.pext.32
+ 1, // llvm.x86.bmi.pext.64
+ 1, // llvm.x86.fma.vfmadd.pd
+ 1, // llvm.x86.fma.vfmadd.pd.256
+ 1, // llvm.x86.fma.vfmadd.pd.512
+ 1, // llvm.x86.fma.vfmadd.ps
+ 1, // llvm.x86.fma.vfmadd.ps.256
+ 1, // llvm.x86.fma.vfmadd.ps.512
+ 1, // llvm.x86.fma.vfmadd.sd
+ 1, // llvm.x86.fma.vfmadd.ss
+ 1, // llvm.x86.fma.vfmaddsub.pd
+ 1, // llvm.x86.fma.vfmaddsub.pd.256
+ 1, // llvm.x86.fma.vfmaddsub.pd.512
+ 1, // llvm.x86.fma.vfmaddsub.ps
+ 1, // llvm.x86.fma.vfmaddsub.ps.256
+ 1, // llvm.x86.fma.vfmaddsub.ps.512
+ 1, // llvm.x86.fma.vfmsub.pd
+ 1, // llvm.x86.fma.vfmsub.pd.256
+ 1, // llvm.x86.fma.vfmsub.pd.512
+ 1, // llvm.x86.fma.vfmsub.ps
+ 1, // llvm.x86.fma.vfmsub.ps.256
+ 1, // llvm.x86.fma.vfmsub.ps.512
+ 1, // llvm.x86.fma.vfmsub.sd
+ 1, // llvm.x86.fma.vfmsub.ss
+ 1, // llvm.x86.fma.vfmsubadd.pd
+ 1, // llvm.x86.fma.vfmsubadd.pd.256
+ 1, // llvm.x86.fma.vfmsubadd.pd.512
+ 1, // llvm.x86.fma.vfmsubadd.ps
+ 1, // llvm.x86.fma.vfmsubadd.ps.256
+ 1, // llvm.x86.fma.vfmsubadd.ps.512
+ 1, // llvm.x86.fma.vfnmadd.pd
+ 1, // llvm.x86.fma.vfnmadd.pd.256
+ 1, // llvm.x86.fma.vfnmadd.pd.512
+ 1, // llvm.x86.fma.vfnmadd.ps
+ 1, // llvm.x86.fma.vfnmadd.ps.256
+ 1, // llvm.x86.fma.vfnmadd.ps.512
+ 1, // llvm.x86.fma.vfnmadd.sd
+ 1, // llvm.x86.fma.vfnmadd.ss
+ 1, // llvm.x86.fma.vfnmsub.pd
+ 1, // llvm.x86.fma.vfnmsub.pd.256
+ 1, // llvm.x86.fma.vfnmsub.pd.512
+ 1, // llvm.x86.fma.vfnmsub.ps
+ 1, // llvm.x86.fma.vfnmsub.ps.256
+ 1, // llvm.x86.fma.vfnmsub.ps.512
+ 1, // llvm.x86.fma.vfnmsub.sd
+ 1, // llvm.x86.fma.vfnmsub.ss
+ 2, // llvm.x86.int
+ 2, // llvm.x86.mmx.emms
+ 2, // llvm.x86.mmx.femms
+ 2, // llvm.x86.mmx.maskmovq
+ 2, // llvm.x86.mmx.movnt.dq
+ 1, // llvm.x86.mmx.packssdw
+ 1, // llvm.x86.mmx.packsswb
+ 1, // llvm.x86.mmx.packuswb
+ 1, // llvm.x86.mmx.padd.b
+ 1, // llvm.x86.mmx.padd.d
+ 1, // llvm.x86.mmx.padd.q
+ 1, // llvm.x86.mmx.padd.w
+ 1, // llvm.x86.mmx.padds.b
+ 1, // llvm.x86.mmx.padds.w
+ 1, // llvm.x86.mmx.paddus.b
+ 1, // llvm.x86.mmx.paddus.w
+ 1, // llvm.x86.mmx.palignr.b
+ 1, // llvm.x86.mmx.pand
+ 1, // llvm.x86.mmx.pandn
+ 1, // llvm.x86.mmx.pavg.b
+ 1, // llvm.x86.mmx.pavg.w
+ 1, // llvm.x86.mmx.pcmpeq.b
+ 1, // llvm.x86.mmx.pcmpeq.d
+ 1, // llvm.x86.mmx.pcmpeq.w
+ 1, // llvm.x86.mmx.pcmpgt.b
+ 1, // llvm.x86.mmx.pcmpgt.d
+ 1, // llvm.x86.mmx.pcmpgt.w
+ 1, // llvm.x86.mmx.pextr.w
+ 1, // llvm.x86.mmx.pinsr.w
+ 1, // llvm.x86.mmx.pmadd.wd
+ 1, // llvm.x86.mmx.pmaxs.w
+ 1, // llvm.x86.mmx.pmaxu.b
+ 1, // llvm.x86.mmx.pmins.w
+ 1, // llvm.x86.mmx.pminu.b
+ 1, // llvm.x86.mmx.pmovmskb
+ 1, // llvm.x86.mmx.pmulh.w
+ 1, // llvm.x86.mmx.pmulhu.w
+ 1, // llvm.x86.mmx.pmull.w
+ 1, // llvm.x86.mmx.pmulu.dq
+ 1, // llvm.x86.mmx.por
+ 1, // llvm.x86.mmx.psad.bw
+ 1, // llvm.x86.mmx.psll.d
+ 1, // llvm.x86.mmx.psll.q
+ 1, // llvm.x86.mmx.psll.w
+ 1, // llvm.x86.mmx.pslli.d
+ 1, // llvm.x86.mmx.pslli.q
+ 1, // llvm.x86.mmx.pslli.w
+ 1, // llvm.x86.mmx.psra.d
+ 1, // llvm.x86.mmx.psra.w
+ 1, // llvm.x86.mmx.psrai.d
+ 1, // llvm.x86.mmx.psrai.w
+ 1, // llvm.x86.mmx.psrl.d
+ 1, // llvm.x86.mmx.psrl.q
+ 1, // llvm.x86.mmx.psrl.w
+ 1, // llvm.x86.mmx.psrli.d
+ 1, // llvm.x86.mmx.psrli.q
+ 1, // llvm.x86.mmx.psrli.w
+ 1, // llvm.x86.mmx.psub.b
+ 1, // llvm.x86.mmx.psub.d
+ 1, // llvm.x86.mmx.psub.q
+ 1, // llvm.x86.mmx.psub.w
+ 1, // llvm.x86.mmx.psubs.b
+ 1, // llvm.x86.mmx.psubs.w
+ 1, // llvm.x86.mmx.psubus.b
+ 1, // llvm.x86.mmx.psubus.w
+ 1, // llvm.x86.mmx.punpckhbw
+ 1, // llvm.x86.mmx.punpckhdq
+ 1, // llvm.x86.mmx.punpckhwd
+ 1, // llvm.x86.mmx.punpcklbw
+ 1, // llvm.x86.mmx.punpckldq
+ 1, // llvm.x86.mmx.punpcklwd
+ 1, // llvm.x86.mmx.pxor
+ 1, // llvm.x86.pclmulqdq
+ 2, // llvm.x86.rdfsbase.32
+ 2, // llvm.x86.rdfsbase.64
+ 2, // llvm.x86.rdgsbase.32
+ 2, // llvm.x86.rdgsbase.64
+ 2, // llvm.x86.rdpmc
+ 2, // llvm.x86.rdrand.16
+ 2, // llvm.x86.rdrand.32
+ 2, // llvm.x86.rdrand.64
+ 2, // llvm.x86.rdseed.16
+ 2, // llvm.x86.rdseed.32
+ 2, // llvm.x86.rdseed.64
+ 2, // llvm.x86.rdtsc
+ 2, // llvm.x86.rdtscp
+ 1, // llvm.x86.sha1msg1
+ 1, // llvm.x86.sha1msg2
+ 1, // llvm.x86.sha1nexte
+ 1, // llvm.x86.sha1rnds4
+ 1, // llvm.x86.sha256msg1
+ 1, // llvm.x86.sha256msg2
+ 1, // llvm.x86.sha256rnds2
+ 1, // llvm.x86.sse2.add.sd
+ 2, // llvm.x86.sse2.clflush
+ 1, // llvm.x86.sse2.cmp.pd
+ 1, // llvm.x86.sse2.cmp.sd
+ 1, // llvm.x86.sse2.comieq.sd
+ 1, // llvm.x86.sse2.comige.sd
+ 1, // llvm.x86.sse2.comigt.sd
+ 1, // llvm.x86.sse2.comile.sd
+ 1, // llvm.x86.sse2.comilt.sd
+ 1, // llvm.x86.sse2.comineq.sd
+ 1, // llvm.x86.sse2.cvtdq2pd
+ 1, // llvm.x86.sse2.cvtdq2ps
+ 1, // llvm.x86.sse2.cvtpd2dq
+ 1, // llvm.x86.sse2.cvtpd2ps
+ 1, // llvm.x86.sse2.cvtps2dq
+ 1, // llvm.x86.sse2.cvtps2pd
+ 1, // llvm.x86.sse2.cvtsd2si
+ 1, // llvm.x86.sse2.cvtsd2si64
+ 1, // llvm.x86.sse2.cvtsd2ss
+ 1, // llvm.x86.sse2.cvtsi2sd
+ 1, // llvm.x86.sse2.cvtsi642sd
+ 1, // llvm.x86.sse2.cvtss2sd
+ 1, // llvm.x86.sse2.cvttpd2dq
+ 1, // llvm.x86.sse2.cvttps2dq
+ 1, // llvm.x86.sse2.cvttsd2si
+ 1, // llvm.x86.sse2.cvttsd2si64
+ 1, // llvm.x86.sse2.div.sd
+ 2, // llvm.x86.sse2.lfence
+ 2, // llvm.x86.sse2.maskmov.dqu
+ 1, // llvm.x86.sse2.max.pd
+ 1, // llvm.x86.sse2.max.sd
+ 2, // llvm.x86.sse2.mfence
+ 1, // llvm.x86.sse2.min.pd
+ 1, // llvm.x86.sse2.min.sd
+ 1, // llvm.x86.sse2.movmsk.pd
+ 1, // llvm.x86.sse2.mul.sd
+ 1, // llvm.x86.sse2.packssdw.128
+ 1, // llvm.x86.sse2.packsswb.128
+ 1, // llvm.x86.sse2.packuswb.128
+ 1, // llvm.x86.sse2.padds.b
+ 1, // llvm.x86.sse2.padds.w
+ 1, // llvm.x86.sse2.paddus.b
+ 1, // llvm.x86.sse2.paddus.w
+ 2, // llvm.x86.sse2.pause
+ 1, // llvm.x86.sse2.pavg.b
+ 1, // llvm.x86.sse2.pavg.w
+ 1, // llvm.x86.sse2.pmadd.wd
+ 1, // llvm.x86.sse2.pmaxs.w
+ 1, // llvm.x86.sse2.pmaxu.b
+ 1, // llvm.x86.sse2.pmins.w
+ 1, // llvm.x86.sse2.pminu.b
+ 1, // llvm.x86.sse2.pmovmskb.128
+ 1, // llvm.x86.sse2.pmulh.w
+ 1, // llvm.x86.sse2.pmulhu.w
+ 1, // llvm.x86.sse2.pmulu.dq
+ 1, // llvm.x86.sse2.psad.bw
+ 1, // llvm.x86.sse2.pshuf.d
+ 1, // llvm.x86.sse2.pshufh.w
+ 1, // llvm.x86.sse2.pshufl.w
+ 1, // llvm.x86.sse2.psll.d
+ 1, // llvm.x86.sse2.psll.dq
+ 1, // llvm.x86.sse2.psll.dq.bs
+ 1, // llvm.x86.sse2.psll.q
+ 1, // llvm.x86.sse2.psll.w
+ 1, // llvm.x86.sse2.pslli.d
+ 1, // llvm.x86.sse2.pslli.q
+ 1, // llvm.x86.sse2.pslli.w
+ 1, // llvm.x86.sse2.psra.d
+ 1, // llvm.x86.sse2.psra.w
+ 1, // llvm.x86.sse2.psrai.d
+ 1, // llvm.x86.sse2.psrai.w
+ 1, // llvm.x86.sse2.psrl.d
+ 1, // llvm.x86.sse2.psrl.dq
+ 1, // llvm.x86.sse2.psrl.dq.bs
+ 1, // llvm.x86.sse2.psrl.q
+ 1, // llvm.x86.sse2.psrl.w
+ 1, // llvm.x86.sse2.psrli.d
+ 1, // llvm.x86.sse2.psrli.q
+ 1, // llvm.x86.sse2.psrli.w
+ 1, // llvm.x86.sse2.psubs.b
+ 1, // llvm.x86.sse2.psubs.w
+ 1, // llvm.x86.sse2.psubus.b
+ 1, // llvm.x86.sse2.psubus.w
+ 1, // llvm.x86.sse2.sqrt.pd
+ 1, // llvm.x86.sse2.sqrt.sd
+ 2, // llvm.x86.sse2.storel.dq
+ 2, // llvm.x86.sse2.storeu.dq
+ 2, // llvm.x86.sse2.storeu.pd
+ 1, // llvm.x86.sse2.sub.sd
+ 1, // llvm.x86.sse2.ucomieq.sd
+ 1, // llvm.x86.sse2.ucomige.sd
+ 1, // llvm.x86.sse2.ucomigt.sd
+ 1, // llvm.x86.sse2.ucomile.sd
+ 1, // llvm.x86.sse2.ucomilt.sd
+ 1, // llvm.x86.sse2.ucomineq.sd
+ 1, // llvm.x86.sse3.addsub.pd
+ 1, // llvm.x86.sse3.addsub.ps
+ 1, // llvm.x86.sse3.hadd.pd
+ 1, // llvm.x86.sse3.hadd.ps
+ 1, // llvm.x86.sse3.hsub.pd
+ 1, // llvm.x86.sse3.hsub.ps
+ 3, // llvm.x86.sse3.ldu.dq
+ 2, // llvm.x86.sse3.monitor
+ 2, // llvm.x86.sse3.mwait
+ 1, // llvm.x86.sse41.blendpd
+ 1, // llvm.x86.sse41.blendps
+ 1, // llvm.x86.sse41.blendvpd
+ 1, // llvm.x86.sse41.blendvps
+ 1, // llvm.x86.sse41.dppd
+ 1, // llvm.x86.sse41.dpps
+ 1, // llvm.x86.sse41.extractps
+ 1, // llvm.x86.sse41.insertps
+ 3, // llvm.x86.sse41.movntdqa
+ 1, // llvm.x86.sse41.mpsadbw
+ 1, // llvm.x86.sse41.packusdw
+ 1, // llvm.x86.sse41.pblendvb
+ 1, // llvm.x86.sse41.pblendw
+ 1, // llvm.x86.sse41.pextrb
+ 1, // llvm.x86.sse41.pextrd
+ 1, // llvm.x86.sse41.pextrq
+ 1, // llvm.x86.sse41.phminposuw
+ 1, // llvm.x86.sse41.pmaxsb
+ 1, // llvm.x86.sse41.pmaxsd
+ 1, // llvm.x86.sse41.pmaxud
+ 1, // llvm.x86.sse41.pmaxuw
+ 1, // llvm.x86.sse41.pminsb
+ 1, // llvm.x86.sse41.pminsd
+ 1, // llvm.x86.sse41.pminud
+ 1, // llvm.x86.sse41.pminuw
+ 1, // llvm.x86.sse41.pmovsxbd
+ 1, // llvm.x86.sse41.pmovsxbq
+ 1, // llvm.x86.sse41.pmovsxbw
+ 1, // llvm.x86.sse41.pmovsxdq
+ 1, // llvm.x86.sse41.pmovsxwd
+ 1, // llvm.x86.sse41.pmovsxwq
+ 1, // llvm.x86.sse41.pmovzxbd
+ 1, // llvm.x86.sse41.pmovzxbq
+ 1, // llvm.x86.sse41.pmovzxbw
+ 1, // llvm.x86.sse41.pmovzxdq
+ 1, // llvm.x86.sse41.pmovzxwd
+ 1, // llvm.x86.sse41.pmovzxwq
+ 1, // llvm.x86.sse41.pmuldq
+ 1, // llvm.x86.sse41.ptestc
+ 1, // llvm.x86.sse41.ptestnzc
+ 1, // llvm.x86.sse41.ptestz
+ 1, // llvm.x86.sse41.round.pd
+ 1, // llvm.x86.sse41.round.ps
+ 1, // llvm.x86.sse41.round.sd
+ 1, // llvm.x86.sse41.round.ss
+ 1, // llvm.x86.sse42.crc32.32.16
+ 1, // llvm.x86.sse42.crc32.32.32
+ 1, // llvm.x86.sse42.crc32.32.8
+ 1, // llvm.x86.sse42.crc32.64.64
+ 1, // llvm.x86.sse42.pcmpestri128
+ 1, // llvm.x86.sse42.pcmpestria128
+ 1, // llvm.x86.sse42.pcmpestric128
+ 1, // llvm.x86.sse42.pcmpestrio128
+ 1, // llvm.x86.sse42.pcmpestris128
+ 1, // llvm.x86.sse42.pcmpestriz128
+ 1, // llvm.x86.sse42.pcmpestrm128
+ 1, // llvm.x86.sse42.pcmpistri128
+ 1, // llvm.x86.sse42.pcmpistria128
+ 1, // llvm.x86.sse42.pcmpistric128
+ 1, // llvm.x86.sse42.pcmpistrio128
+ 1, // llvm.x86.sse42.pcmpistris128
+ 1, // llvm.x86.sse42.pcmpistriz128
+ 1, // llvm.x86.sse42.pcmpistrm128
+ 1, // llvm.x86.sse4a.extrq
+ 1, // llvm.x86.sse4a.extrqi
+ 1, // llvm.x86.sse4a.insertq
+ 1, // llvm.x86.sse4a.insertqi
+ 2, // llvm.x86.sse4a.movnt.sd
+ 2, // llvm.x86.sse4a.movnt.ss
+ 1, // llvm.x86.sse.add.ss
+ 1, // llvm.x86.sse.cmp.ps
+ 1, // llvm.x86.sse.cmp.ss
+ 1, // llvm.x86.sse.comieq.ss
+ 1, // llvm.x86.sse.comige.ss
+ 1, // llvm.x86.sse.comigt.ss
+ 1, // llvm.x86.sse.comile.ss
+ 1, // llvm.x86.sse.comilt.ss
+ 1, // llvm.x86.sse.comineq.ss
+ 1, // llvm.x86.sse.cvtpd2pi
+ 1, // llvm.x86.sse.cvtpi2pd
+ 1, // llvm.x86.sse.cvtpi2ps
+ 1, // llvm.x86.sse.cvtps2pi
+ 1, // llvm.x86.sse.cvtsi2ss
+ 1, // llvm.x86.sse.cvtsi642ss
+ 1, // llvm.x86.sse.cvtss2si
+ 1, // llvm.x86.sse.cvtss2si64
+ 1, // llvm.x86.sse.cvttpd2pi
+ 1, // llvm.x86.sse.cvttps2pi
+ 1, // llvm.x86.sse.cvttss2si
+ 1, // llvm.x86.sse.cvttss2si64
+ 1, // llvm.x86.sse.div.ss
+ 2, // llvm.x86.sse.ldmxcsr
+ 1, // llvm.x86.sse.max.ps
+ 1, // llvm.x86.sse.max.ss
+ 1, // llvm.x86.sse.min.ps
+ 1, // llvm.x86.sse.min.ss
+ 1, // llvm.x86.sse.movmsk.ps
+ 1, // llvm.x86.sse.mul.ss
+ 1, // llvm.x86.sse.pshuf.w
+ 1, // llvm.x86.sse.rcp.ps
+ 1, // llvm.x86.sse.rcp.ss
+ 1, // llvm.x86.sse.rsqrt.ps
+ 1, // llvm.x86.sse.rsqrt.ss
+ 2, // llvm.x86.sse.sfence
+ 1, // llvm.x86.sse.sqrt.ps
+ 1, // llvm.x86.sse.sqrt.ss
+ 2, // llvm.x86.sse.stmxcsr
+ 2, // llvm.x86.sse.storeu.ps
+ 1, // llvm.x86.sse.sub.ss
+ 1, // llvm.x86.sse.ucomieq.ss
+ 1, // llvm.x86.sse.ucomige.ss
+ 1, // llvm.x86.sse.ucomigt.ss
+ 1, // llvm.x86.sse.ucomile.ss
+ 1, // llvm.x86.sse.ucomilt.ss
+ 1, // llvm.x86.sse.ucomineq.ss
+ 1, // llvm.x86.ssse3.pabs.b
+ 1, // llvm.x86.ssse3.pabs.b.128
+ 1, // llvm.x86.ssse3.pabs.d
+ 1, // llvm.x86.ssse3.pabs.d.128
+ 1, // llvm.x86.ssse3.pabs.w
+ 1, // llvm.x86.ssse3.pabs.w.128
+ 1, // llvm.x86.ssse3.phadd.d
+ 1, // llvm.x86.ssse3.phadd.d.128
+ 1, // llvm.x86.ssse3.phadd.sw
+ 1, // llvm.x86.ssse3.phadd.sw.128
+ 1, // llvm.x86.ssse3.phadd.w
+ 1, // llvm.x86.ssse3.phadd.w.128
+ 1, // llvm.x86.ssse3.phsub.d
+ 1, // llvm.x86.ssse3.phsub.d.128
+ 1, // llvm.x86.ssse3.phsub.sw
+ 1, // llvm.x86.ssse3.phsub.sw.128
+ 1, // llvm.x86.ssse3.phsub.w
+ 1, // llvm.x86.ssse3.phsub.w.128
+ 1, // llvm.x86.ssse3.pmadd.ub.sw
+ 1, // llvm.x86.ssse3.pmadd.ub.sw.128
+ 1, // llvm.x86.ssse3.pmul.hr.sw
+ 1, // llvm.x86.ssse3.pmul.hr.sw.128
+ 1, // llvm.x86.ssse3.pshuf.b
+ 1, // llvm.x86.ssse3.pshuf.b.128
+ 1, // llvm.x86.ssse3.psign.b
+ 1, // llvm.x86.ssse3.psign.b.128
+ 1, // llvm.x86.ssse3.psign.d
+ 1, // llvm.x86.ssse3.psign.d.128
+ 1, // llvm.x86.ssse3.psign.w
+ 1, // llvm.x86.ssse3.psign.w.128
+ 1, // llvm.x86.tbm.bextri.u32
+ 1, // llvm.x86.tbm.bextri.u64
+ 1, // llvm.x86.vcvtph2ps.128
+ 1, // llvm.x86.vcvtph2ps.256
+ 1, // llvm.x86.vcvtps2ph.128
+ 1, // llvm.x86.vcvtps2ph.256
+ 2, // llvm.x86.wrfsbase.32
+ 2, // llvm.x86.wrfsbase.64
+ 2, // llvm.x86.wrgsbase.32
+ 2, // llvm.x86.wrgsbase.64
+ 9, // llvm.x86.xabort
+ 2, // llvm.x86.xbegin
+ 2, // llvm.x86.xend
+ 1, // llvm.x86.xop.vfrcz.pd
+ 1, // llvm.x86.xop.vfrcz.pd.256
+ 1, // llvm.x86.xop.vfrcz.ps
+ 1, // llvm.x86.xop.vfrcz.ps.256
+ 1, // llvm.x86.xop.vfrcz.sd
+ 1, // llvm.x86.xop.vfrcz.ss
+ 1, // llvm.x86.xop.vpcmov
+ 1, // llvm.x86.xop.vpcmov.256
+ 1, // llvm.x86.xop.vpcomb
+ 1, // llvm.x86.xop.vpcomd
+ 1, // llvm.x86.xop.vpcomq
+ 1, // llvm.x86.xop.vpcomub
+ 1, // llvm.x86.xop.vpcomud
+ 1, // llvm.x86.xop.vpcomuq
+ 1, // llvm.x86.xop.vpcomuw
+ 1, // llvm.x86.xop.vpcomw
+ 1, // llvm.x86.xop.vpermil2pd
+ 1, // llvm.x86.xop.vpermil2pd.256
+ 1, // llvm.x86.xop.vpermil2ps
+ 1, // llvm.x86.xop.vpermil2ps.256
+ 1, // llvm.x86.xop.vphaddbd
+ 1, // llvm.x86.xop.vphaddbq
+ 1, // llvm.x86.xop.vphaddbw
+ 1, // llvm.x86.xop.vphadddq
+ 1, // llvm.x86.xop.vphaddubd
+ 1, // llvm.x86.xop.vphaddubq
+ 1, // llvm.x86.xop.vphaddubw
+ 1, // llvm.x86.xop.vphaddudq
+ 1, // llvm.x86.xop.vphadduwd
+ 1, // llvm.x86.xop.vphadduwq
+ 1, // llvm.x86.xop.vphaddwd
+ 1, // llvm.x86.xop.vphaddwq
+ 1, // llvm.x86.xop.vphsubbw
+ 1, // llvm.x86.xop.vphsubdq
+ 1, // llvm.x86.xop.vphsubwd
+ 1, // llvm.x86.xop.vpmacsdd
+ 1, // llvm.x86.xop.vpmacsdqh
+ 1, // llvm.x86.xop.vpmacsdql
+ 1, // llvm.x86.xop.vpmacssdd
+ 1, // llvm.x86.xop.vpmacssdqh
+ 1, // llvm.x86.xop.vpmacssdql
+ 1, // llvm.x86.xop.vpmacsswd
+ 1, // llvm.x86.xop.vpmacssww
+ 1, // llvm.x86.xop.vpmacswd
+ 1, // llvm.x86.xop.vpmacsww
+ 1, // llvm.x86.xop.vpmadcsswd
+ 1, // llvm.x86.xop.vpmadcswd
+ 1, // llvm.x86.xop.vpperm
+ 1, // llvm.x86.xop.vprotb
+ 1, // llvm.x86.xop.vprotbi
+ 1, // llvm.x86.xop.vprotd
+ 1, // llvm.x86.xop.vprotdi
+ 1, // llvm.x86.xop.vprotq
+ 1, // llvm.x86.xop.vprotqi
+ 1, // llvm.x86.xop.vprotw
+ 1, // llvm.x86.xop.vprotwi
+ 1, // llvm.x86.xop.vpshab
+ 1, // llvm.x86.xop.vpshad
+ 1, // llvm.x86.xop.vpshaq
+ 1, // llvm.x86.xop.vpshaw
+ 1, // llvm.x86.xop.vpshlb
+ 1, // llvm.x86.xop.vpshld
+ 1, // llvm.x86.xop.vpshlq
+ 1, // llvm.x86.xop.vpshlw
+ 2, // llvm.x86.xtest
+ 1, // llvm.xcore.bitrev
+ 2, // llvm.xcore.checkevent
+ 12, // llvm.xcore.chkct
+ 2, // llvm.xcore.clre
+ 12, // llvm.xcore.clrpt
+ 2, // llvm.xcore.clrsr
+ 1, // llvm.xcore.crc32
+ 1, // llvm.xcore.crc8
+ 12, // llvm.xcore.edu
+ 12, // llvm.xcore.eeu
+ 12, // llvm.xcore.endin
+ 12, // llvm.xcore.freer
+ 2, // llvm.xcore.geted
+ 2, // llvm.xcore.getet
+ 1, // llvm.xcore.getid
+ 2, // llvm.xcore.getps
+ 2, // llvm.xcore.getr
+ 12, // llvm.xcore.getst
+ 12, // llvm.xcore.getts
+ 12, // llvm.xcore.in
+ 12, // llvm.xcore.inct
+ 12, // llvm.xcore.initcp
+ 12, // llvm.xcore.initdp
+ 12, // llvm.xcore.initlr
+ 12, // llvm.xcore.initpc
+ 12, // llvm.xcore.initsp
+ 12, // llvm.xcore.inshr
+ 12, // llvm.xcore.int
+ 12, // llvm.xcore.mjoin
+ 12, // llvm.xcore.msync
+ 12, // llvm.xcore.out
+ 12, // llvm.xcore.outct
+ 12, // llvm.xcore.outshr
+ 12, // llvm.xcore.outt
+ 12, // llvm.xcore.peek
+ 12, // llvm.xcore.setc
+ 17, // llvm.xcore.setclk
+ 12, // llvm.xcore.setd
+ 12, // llvm.xcore.setev
+ 2, // llvm.xcore.setps
+ 12, // llvm.xcore.setpsc
+ 12, // llvm.xcore.setpt
+ 17, // llvm.xcore.setrdy
+ 2, // llvm.xcore.setsr
+ 12, // llvm.xcore.settw
+ 12, // llvm.xcore.setv
+ 1, // llvm.xcore.sext
+ 2, // llvm.xcore.ssync
+ 12, // llvm.xcore.syncr
+ 12, // llvm.xcore.testct
+ 12, // llvm.xcore.testwct
+ 3, // llvm.xcore.waitevent
+ 1, // llvm.xcore.zext
+ };
+
+ AttributeSet AS[4];
+ unsigned NumAttrs = 0;
+ if (id != 0) {
+ switch(IntrinsicsToAttributesMap[id - 1]) {
+ default: llvm_unreachable("Invalid attribute number");
+ case 1: {
+ const Attribute::AttrKind Atts[] = {Attribute::NoUnwind,Attribute::ReadNone};
+ AS[0] = AttributeSet::get(C, AttributeSet::FunctionIndex, Atts);
+ NumAttrs = 1;
+ break;
+ }
+ case 16: {
+ const Attribute::AttrKind AttrParam1[]= {Attribute::NoCapture};
+ AS[0] = AttributeSet::get(C, 1, AttrParam1);
+ const Attribute::AttrKind Atts[] = {Attribute::NoUnwind,Attribute::ReadNone};
+ AS[1] = AttributeSet::get(C, AttributeSet::FunctionIndex, Atts);
+ NumAttrs = 2;
+ break;
+ }
+ case 3: {
+ const Attribute::AttrKind Atts[] = {Attribute::NoUnwind,Attribute::ReadOnly};
+ AS[0] = AttributeSet::get(C, AttributeSet::FunctionIndex, Atts);
+ NumAttrs = 1;
+ break;
+ }
+ case 15: {
+ const Attribute::AttrKind AttrParam1[]= {Attribute::NoCapture};
+ AS[0] = AttributeSet::get(C, 1, AttrParam1);
+ const Attribute::AttrKind Atts[] = {Attribute::NoUnwind,Attribute::ReadOnly};
+ AS[1] = AttributeSet::get(C, AttributeSet::FunctionIndex, Atts);
+ NumAttrs = 2;
+ break;
+ }
+ case 2: {
+ const Attribute::AttrKind Atts[] = {Attribute::NoUnwind};
+ AS[0] = AttributeSet::get(C, AttributeSet::FunctionIndex, Atts);
+ NumAttrs = 1;
+ break;
+ }
+ case 12: {
+ const Attribute::AttrKind AttrParam1[]= {Attribute::NoCapture};
+ AS[0] = AttributeSet::get(C, 1, AttrParam1);
+ const Attribute::AttrKind Atts[] = {Attribute::NoUnwind};
+ AS[1] = AttributeSet::get(C, AttributeSet::FunctionIndex, Atts);
+ NumAttrs = 2;
+ break;
+ }
+ case 17: {
+ const Attribute::AttrKind AttrParam1[]= {Attribute::NoCapture};
+ AS[0] = AttributeSet::get(C, 1, AttrParam1);
+ const Attribute::AttrKind AttrParam2[]= {Attribute::NoCapture};
+ AS[1] = AttributeSet::get(C, 2, AttrParam2);
+ const Attribute::AttrKind Atts[] = {Attribute::NoUnwind};
+ AS[2] = AttributeSet::get(C, AttributeSet::FunctionIndex, Atts);
+ NumAttrs = 3;
+ break;
+ }
+ case 14: {
+ const Attribute::AttrKind AttrParam1[]= {Attribute::NoCapture};
+ AS[0] = AttributeSet::get(C, 1, AttrParam1);
+ const Attribute::AttrKind AttrParam2[]= {Attribute::NoCapture,Attribute::ReadOnly};
+ AS[1] = AttributeSet::get(C, 2, AttrParam2);
+ const Attribute::AttrKind Atts[] = {Attribute::NoUnwind};
+ AS[2] = AttributeSet::get(C, AttributeSet::FunctionIndex, Atts);
+ NumAttrs = 3;
+ break;
+ }
+ case 13: {
+ const Attribute::AttrKind AttrParam2[]= {Attribute::NoCapture};
+ AS[0] = AttributeSet::get(C, 2, AttrParam2);
+ const Attribute::AttrKind Atts[] = {Attribute::NoUnwind};
+ AS[1] = AttributeSet::get(C, AttributeSet::FunctionIndex, Atts);
+ NumAttrs = 2;
+ break;
+ }
+ case 11: {
+ const Attribute::AttrKind AttrParam2[]= {Attribute::NoCapture};
+ AS[0] = AttributeSet::get(C, 2, AttrParam2);
+ const Attribute::AttrKind AttrParam3[]= {Attribute::NoCapture};
+ AS[1] = AttributeSet::get(C, 3, AttrParam3);
+ const Attribute::AttrKind Atts[] = {Attribute::NoUnwind};
+ AS[2] = AttributeSet::get(C, AttributeSet::FunctionIndex, Atts);
+ NumAttrs = 3;
+ break;
+ }
+ case 4: {
+ const Attribute::AttrKind AttrParam3[]= {Attribute::NoCapture};
+ AS[0] = AttributeSet::get(C, 3, AttrParam3);
+ const Attribute::AttrKind Atts[] = {Attribute::NoUnwind};
+ AS[1] = AttributeSet::get(C, AttributeSet::FunctionIndex, Atts);
+ NumAttrs = 2;
+ break;
+ }
+ case 5: {
+ const Attribute::AttrKind AttrParam4[]= {Attribute::NoCapture};
+ AS[0] = AttributeSet::get(C, 4, AttrParam4);
+ const Attribute::AttrKind Atts[] = {Attribute::NoUnwind};
+ AS[1] = AttributeSet::get(C, AttributeSet::FunctionIndex, Atts);
+ NumAttrs = 2;
+ break;
+ }
+ case 6: {
+ const Attribute::AttrKind AttrParam5[]= {Attribute::NoCapture};
+ AS[0] = AttributeSet::get(C, 5, AttrParam5);
+ const Attribute::AttrKind Atts[] = {Attribute::NoUnwind};
+ AS[1] = AttributeSet::get(C, AttributeSet::FunctionIndex, Atts);
+ NumAttrs = 2;
+ break;
+ }
+ case 7: {
+ const Attribute::AttrKind AttrParam6[]= {Attribute::NoCapture};
+ AS[0] = AttributeSet::get(C, 6, AttrParam6);
+ const Attribute::AttrKind Atts[] = {Attribute::NoUnwind};
+ AS[1] = AttributeSet::get(C, AttributeSet::FunctionIndex, Atts);
+ NumAttrs = 2;
+ break;
+ }
+ case 9: {
+ const Attribute::AttrKind Atts[] = {Attribute::NoUnwind,Attribute::NoReturn};
+ AS[0] = AttributeSet::get(C, AttributeSet::FunctionIndex, Atts);
+ NumAttrs = 1;
+ break;
+ }
+ case 8: {
+ const Attribute::AttrKind Atts[] = {Attribute::NoUnwind,Attribute::NoDuplicate};
+ AS[0] = AttributeSet::get(C, AttributeSet::FunctionIndex, Atts);
+ NumAttrs = 1;
+ break;
+ }
+ case 10: {
+ return AttributeSet();
+ }
+ }
+ }
+ return AttributeSet::get(C, ArrayRef<AttributeSet>(AS, 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,
+ /* AMDGPU_div_fixup */ DoesNotAccessMemory,
+ /* AMDGPU_div_fmas */ DoesNotAccessMemory,
+ /* AMDGPU_div_scale */ DoesNotAccessMemory,
+ /* AMDGPU_rcp */ DoesNotAccessMemory,
+ /* AMDGPU_rsq */ DoesNotAccessMemory,
+ /* AMDGPU_rsq_clamped */ DoesNotAccessMemory,
+ /* AMDGPU_trig_preop */ DoesNotAccessMemory,
+ /* aarch64_clrex */ UnknownModRefBehavior,
+ /* aarch64_crc32b */ DoesNotAccessMemory,
+ /* aarch64_crc32cb */ DoesNotAccessMemory,
+ /* aarch64_crc32ch */ DoesNotAccessMemory,
+ /* aarch64_crc32cw */ DoesNotAccessMemory,
+ /* aarch64_crc32cx */ DoesNotAccessMemory,
+ /* aarch64_crc32h */ DoesNotAccessMemory,
+ /* aarch64_crc32w */ DoesNotAccessMemory,
+ /* aarch64_crc32x */ DoesNotAccessMemory,
+ /* aarch64_crypto_aesd */ DoesNotAccessMemory,
+ /* aarch64_crypto_aese */ DoesNotAccessMemory,
+ /* aarch64_crypto_aesimc */ DoesNotAccessMemory,
+ /* aarch64_crypto_aesmc */ DoesNotAccessMemory,
+ /* aarch64_crypto_sha1c */ DoesNotAccessMemory,
+ /* aarch64_crypto_sha1h */ DoesNotAccessMemory,
+ /* aarch64_crypto_sha1m */ DoesNotAccessMemory,
+ /* aarch64_crypto_sha1p */ DoesNotAccessMemory,
+ /* aarch64_crypto_sha1su0 */ DoesNotAccessMemory,
+ /* aarch64_crypto_sha1su1 */ DoesNotAccessMemory,
+ /* aarch64_crypto_sha256h */ DoesNotAccessMemory,
+ /* aarch64_crypto_sha256h2 */ DoesNotAccessMemory,
+ /* aarch64_crypto_sha256su0 */ DoesNotAccessMemory,
+ /* aarch64_crypto_sha256su1 */ DoesNotAccessMemory,
+ /* aarch64_dmb */ UnknownModRefBehavior,
+ /* aarch64_dsb */ UnknownModRefBehavior,
+ /* aarch64_hint */ UnknownModRefBehavior,
+ /* aarch64_isb */ UnknownModRefBehavior,
+ /* aarch64_ldaxp */ UnknownModRefBehavior,
+ /* aarch64_ldaxr */ UnknownModRefBehavior,
+ /* aarch64_ldxp */ UnknownModRefBehavior,
+ /* aarch64_ldxr */ UnknownModRefBehavior,
+ /* aarch64_neon_abs */ DoesNotAccessMemory,
+ /* aarch64_neon_addhn */ DoesNotAccessMemory,
+ /* aarch64_neon_addp */ DoesNotAccessMemory,
+ /* aarch64_neon_cls */ DoesNotAccessMemory,
+ /* aarch64_neon_fabd */ DoesNotAccessMemory,
+ /* aarch64_neon_facge */ DoesNotAccessMemory,
+ /* aarch64_neon_facgt */ DoesNotAccessMemory,
+ /* aarch64_neon_faddv */ DoesNotAccessMemory,
+ /* aarch64_neon_fcvtas */ DoesNotAccessMemory,
+ /* aarch64_neon_fcvtau */ DoesNotAccessMemory,
+ /* aarch64_neon_fcvtms */ DoesNotAccessMemory,
+ /* aarch64_neon_fcvtmu */ DoesNotAccessMemory,
+ /* aarch64_neon_fcvtns */ DoesNotAccessMemory,
+ /* aarch64_neon_fcvtnu */ DoesNotAccessMemory,
+ /* aarch64_neon_fcvtps */ DoesNotAccessMemory,
+ /* aarch64_neon_fcvtpu */ DoesNotAccessMemory,
+ /* aarch64_neon_fcvtxn */ DoesNotAccessMemory,
+ /* aarch64_neon_fcvtzs */ DoesNotAccessMemory,
+ /* aarch64_neon_fcvtzu */ DoesNotAccessMemory,
+ /* aarch64_neon_fmax */ DoesNotAccessMemory,
+ /* aarch64_neon_fmaxnm */ DoesNotAccessMemory,
+ /* aarch64_neon_fmaxnmp */ DoesNotAccessMemory,
+ /* aarch64_neon_fmaxnmv */ DoesNotAccessMemory,
+ /* aarch64_neon_fmaxp */ DoesNotAccessMemory,
+ /* aarch64_neon_fmaxv */ DoesNotAccessMemory,
+ /* aarch64_neon_fmin */ DoesNotAccessMemory,
+ /* aarch64_neon_fminnm */ DoesNotAccessMemory,
+ /* aarch64_neon_fminnmp */ DoesNotAccessMemory,
+ /* aarch64_neon_fminnmv */ DoesNotAccessMemory,
+ /* aarch64_neon_fminp */ DoesNotAccessMemory,
+ /* aarch64_neon_fminv */ DoesNotAccessMemory,
+ /* aarch64_neon_fmulx */ DoesNotAccessMemory,
+ /* aarch64_neon_frecpe */ DoesNotAccessMemory,
+ /* aarch64_neon_frecps */ DoesNotAccessMemory,
+ /* aarch64_neon_frecpx */ DoesNotAccessMemory,
+ /* aarch64_neon_frintn */ DoesNotAccessMemory,
+ /* aarch64_neon_frsqrte */ DoesNotAccessMemory,
+ /* aarch64_neon_frsqrts */ DoesNotAccessMemory,
+ /* aarch64_neon_ld1x2 */ OnlyReadsArgumentPointees,
+ /* aarch64_neon_ld1x3 */ OnlyReadsArgumentPointees,
+ /* aarch64_neon_ld1x4 */ OnlyReadsArgumentPointees,
+ /* aarch64_neon_ld2 */ OnlyReadsArgumentPointees,
+ /* aarch64_neon_ld2lane */ OnlyReadsArgumentPointees,
+ /* aarch64_neon_ld2r */ OnlyReadsArgumentPointees,
+ /* aarch64_neon_ld3 */ OnlyReadsArgumentPointees,
+ /* aarch64_neon_ld3lane */ OnlyReadsArgumentPointees,
+ /* aarch64_neon_ld3r */ OnlyReadsArgumentPointees,
+ /* aarch64_neon_ld4 */ OnlyReadsArgumentPointees,
+ /* aarch64_neon_ld4lane */ OnlyReadsArgumentPointees,
+ /* aarch64_neon_ld4r */ OnlyReadsArgumentPointees,
+ /* aarch64_neon_pmul */ DoesNotAccessMemory,
+ /* aarch64_neon_pmull */ DoesNotAccessMemory,
+ /* aarch64_neon_pmull64 */ DoesNotAccessMemory,
+ /* aarch64_neon_raddhn */ DoesNotAccessMemory,
+ /* aarch64_neon_rbit */ DoesNotAccessMemory,
+ /* aarch64_neon_rshrn */ DoesNotAccessMemory,
+ /* aarch64_neon_rsubhn */ DoesNotAccessMemory,
+ /* aarch64_neon_sabd */ DoesNotAccessMemory,
+ /* aarch64_neon_saddlp */ DoesNotAccessMemory,
+ /* aarch64_neon_saddlv */ DoesNotAccessMemory,
+ /* aarch64_neon_saddv */ DoesNotAccessMemory,
+ /* aarch64_neon_scalar_sqxtn */ DoesNotAccessMemory,
+ /* aarch64_neon_scalar_sqxtun */ DoesNotAccessMemory,
+ /* aarch64_neon_scalar_uqxtn */ DoesNotAccessMemory,
+ /* aarch64_neon_shadd */ DoesNotAccessMemory,
+ /* aarch64_neon_shll */ DoesNotAccessMemory,
+ /* aarch64_neon_shsub */ DoesNotAccessMemory,
+ /* aarch64_neon_smax */ DoesNotAccessMemory,
+ /* aarch64_neon_smaxp */ DoesNotAccessMemory,
+ /* aarch64_neon_smaxv */ DoesNotAccessMemory,
+ /* aarch64_neon_smin */ DoesNotAccessMemory,
+ /* aarch64_neon_sminp */ DoesNotAccessMemory,
+ /* aarch64_neon_sminv */ DoesNotAccessMemory,
+ /* aarch64_neon_smull */ DoesNotAccessMemory,
+ /* aarch64_neon_sqabs */ DoesNotAccessMemory,
+ /* aarch64_neon_sqadd */ DoesNotAccessMemory,
+ /* aarch64_neon_sqdmulh */ DoesNotAccessMemory,
+ /* aarch64_neon_sqdmull */ DoesNotAccessMemory,
+ /* aarch64_neon_sqdmulls_scalar */ DoesNotAccessMemory,
+ /* aarch64_neon_sqneg */ DoesNotAccessMemory,
+ /* aarch64_neon_sqrdmulh */ DoesNotAccessMemory,
+ /* aarch64_neon_sqrshl */ DoesNotAccessMemory,
+ /* aarch64_neon_sqrshrn */ DoesNotAccessMemory,
+ /* aarch64_neon_sqrshrun */ DoesNotAccessMemory,
+ /* aarch64_neon_sqshl */ DoesNotAccessMemory,
+ /* aarch64_neon_sqshlu */ DoesNotAccessMemory,
+ /* aarch64_neon_sqshrn */ DoesNotAccessMemory,
+ /* aarch64_neon_sqshrun */ DoesNotAccessMemory,
+ /* aarch64_neon_sqsub */ DoesNotAccessMemory,
+ /* aarch64_neon_sqxtn */ DoesNotAccessMemory,
+ /* aarch64_neon_sqxtun */ DoesNotAccessMemory,
+ /* aarch64_neon_srhadd */ DoesNotAccessMemory,
+ /* aarch64_neon_srshl */ DoesNotAccessMemory,
+ /* aarch64_neon_sshl */ DoesNotAccessMemory,
+ /* aarch64_neon_sshll */ DoesNotAccessMemory,
+ /* aarch64_neon_st1x2 */ OnlyAccessesArgumentPointees,
+ /* aarch64_neon_st1x3 */ OnlyAccessesArgumentPointees,
+ /* aarch64_neon_st1x4 */ OnlyAccessesArgumentPointees,
+ /* aarch64_neon_st2 */ OnlyAccessesArgumentPointees,
+ /* aarch64_neon_st2lane */ OnlyAccessesArgumentPointees,
+ /* aarch64_neon_st3 */ OnlyAccessesArgumentPointees,
+ /* aarch64_neon_st3lane */ OnlyAccessesArgumentPointees,
+ /* aarch64_neon_st4 */ OnlyAccessesArgumentPointees,
+ /* aarch64_neon_st4lane */ OnlyAccessesArgumentPointees,
+ /* aarch64_neon_subhn */ DoesNotAccessMemory,
+ /* aarch64_neon_suqadd */ DoesNotAccessMemory,
+ /* aarch64_neon_tbl1 */ DoesNotAccessMemory,
+ /* aarch64_neon_tbl2 */ DoesNotAccessMemory,
+ /* aarch64_neon_tbl3 */ DoesNotAccessMemory,
+ /* aarch64_neon_tbl4 */ DoesNotAccessMemory,
+ /* aarch64_neon_tbx1 */ DoesNotAccessMemory,
+ /* aarch64_neon_tbx2 */ DoesNotAccessMemory,
+ /* aarch64_neon_tbx3 */ DoesNotAccessMemory,
+ /* aarch64_neon_tbx4 */ DoesNotAccessMemory,
+ /* aarch64_neon_uabd */ DoesNotAccessMemory,
+ /* aarch64_neon_uaddlp */ DoesNotAccessMemory,
+ /* aarch64_neon_uaddlv */ DoesNotAccessMemory,
+ /* aarch64_neon_uaddv */ DoesNotAccessMemory,
+ /* aarch64_neon_uhadd */ DoesNotAccessMemory,
+ /* aarch64_neon_uhsub */ DoesNotAccessMemory,
+ /* aarch64_neon_umax */ DoesNotAccessMemory,
+ /* aarch64_neon_umaxp */ DoesNotAccessMemory,
+ /* aarch64_neon_umaxv */ DoesNotAccessMemory,
+ /* aarch64_neon_umin */ DoesNotAccessMemory,
+ /* aarch64_neon_uminp */ DoesNotAccessMemory,
+ /* aarch64_neon_uminv */ DoesNotAccessMemory,
+ /* aarch64_neon_umull */ DoesNotAccessMemory,
+ /* aarch64_neon_uqadd */ DoesNotAccessMemory,
+ /* aarch64_neon_uqrshl */ DoesNotAccessMemory,
+ /* aarch64_neon_uqrshrn */ DoesNotAccessMemory,
+ /* aarch64_neon_uqshl */ DoesNotAccessMemory,
+ /* aarch64_neon_uqshrn */ DoesNotAccessMemory,
+ /* aarch64_neon_uqsub */ DoesNotAccessMemory,
+ /* aarch64_neon_uqxtn */ DoesNotAccessMemory,
+ /* aarch64_neon_urecpe */ DoesNotAccessMemory,
+ /* aarch64_neon_urhadd */ DoesNotAccessMemory,
+ /* aarch64_neon_urshl */ DoesNotAccessMemory,
+ /* aarch64_neon_ursqrte */ DoesNotAccessMemory,
+ /* aarch64_neon_ushl */ DoesNotAccessMemory,
+ /* aarch64_neon_ushll */ DoesNotAccessMemory,
+ /* aarch64_neon_usqadd */ DoesNotAccessMemory,
+ /* aarch64_neon_vcopy_lane */ DoesNotAccessMemory,
+ /* aarch64_neon_vcvtfp2fxs */ DoesNotAccessMemory,
+ /* aarch64_neon_vcvtfp2fxu */ DoesNotAccessMemory,
+ /* aarch64_neon_vcvtfp2hf */ DoesNotAccessMemory,
+ /* aarch64_neon_vcvtfxs2fp */ DoesNotAccessMemory,
+ /* aarch64_neon_vcvtfxu2fp */ DoesNotAccessMemory,
+ /* aarch64_neon_vcvthf2fp */ DoesNotAccessMemory,
+ /* aarch64_neon_vsli */ DoesNotAccessMemory,
+ /* aarch64_neon_vsri */ DoesNotAccessMemory,
+ /* aarch64_rbit */ DoesNotAccessMemory,
+ /* aarch64_sdiv */ DoesNotAccessMemory,
+ /* aarch64_sisd_fabd */ DoesNotAccessMemory,
+ /* aarch64_sisd_fcvtxn */ DoesNotAccessMemory,
+ /* aarch64_stlxp */ UnknownModRefBehavior,
+ /* aarch64_stlxr */ UnknownModRefBehavior,
+ /* aarch64_stxp */ UnknownModRefBehavior,
+ /* aarch64_stxr */ UnknownModRefBehavior,
+ /* aarch64_udiv */ DoesNotAccessMemory,
+ /* adjust_trampoline */ OnlyReadsArgumentPointees,
+ /* annotation */ UnknownModRefBehavior,
+ /* arm_cdp */ UnknownModRefBehavior,
+ /* arm_cdp2 */ UnknownModRefBehavior,
+ /* arm_clrex */ UnknownModRefBehavior,
+ /* arm_crc32b */ DoesNotAccessMemory,
+ /* arm_crc32cb */ DoesNotAccessMemory,
+ /* arm_crc32ch */ DoesNotAccessMemory,
+ /* arm_crc32cw */ DoesNotAccessMemory,
+ /* arm_crc32h */ DoesNotAccessMemory,
+ /* arm_crc32w */ DoesNotAccessMemory,
+ /* arm_dmb */ UnknownModRefBehavior,
+ /* arm_dsb */ UnknownModRefBehavior,
+ /* arm_get_fpscr */ DoesNotAccessMemory,
+ /* arm_hint */ UnknownModRefBehavior,
+ /* arm_isb */ UnknownModRefBehavior,
+ /* arm_ldaex */ UnknownModRefBehavior,
+ /* arm_ldaexd */ UnknownModRefBehavior,
+ /* arm_ldrex */ UnknownModRefBehavior,
+ /* arm_ldrexd */ UnknownModRefBehavior,
+ /* arm_mcr */ UnknownModRefBehavior,
+ /* arm_mcr2 */ UnknownModRefBehavior,
+ /* arm_mcrr */ UnknownModRefBehavior,
+ /* arm_mcrr2 */ UnknownModRefBehavior,
+ /* arm_mrc */ UnknownModRefBehavior,
+ /* arm_mrc2 */ UnknownModRefBehavior,
+ /* arm_neon_aesd */ DoesNotAccessMemory,
+ /* arm_neon_aese */ DoesNotAccessMemory,
+ /* arm_neon_aesimc */ DoesNotAccessMemory,
+ /* arm_neon_aesmc */ DoesNotAccessMemory,
+ /* arm_neon_sha1c */ DoesNotAccessMemory,
+ /* arm_neon_sha1h */ DoesNotAccessMemory,
+ /* arm_neon_sha1m */ DoesNotAccessMemory,
+ /* arm_neon_sha1p */ DoesNotAccessMemory,
+ /* arm_neon_sha1su0 */ DoesNotAccessMemory,
+ /* arm_neon_sha1su1 */ DoesNotAccessMemory,
+ /* arm_neon_sha256h */ DoesNotAccessMemory,
+ /* arm_neon_sha256h2 */ DoesNotAccessMemory,
+ /* arm_neon_sha256su0 */ DoesNotAccessMemory,
+ /* arm_neon_sha256su1 */ DoesNotAccessMemory,
+ /* arm_neon_vabds */ DoesNotAccessMemory,
+ /* arm_neon_vabdu */ DoesNotAccessMemory,
+ /* arm_neon_vabs */ DoesNotAccessMemory,
+ /* arm_neon_vacge */ DoesNotAccessMemory,
+ /* arm_neon_vacgt */ DoesNotAccessMemory,
+ /* arm_neon_vbsl */ DoesNotAccessMemory,
+ /* arm_neon_vcls */ DoesNotAccessMemory,
+ /* arm_neon_vclz */ DoesNotAccessMemory,
+ /* arm_neon_vcnt */ DoesNotAccessMemory,
+ /* arm_neon_vcvtas */ DoesNotAccessMemory,
+ /* arm_neon_vcvtau */ 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_vcvtms */ DoesNotAccessMemory,
+ /* arm_neon_vcvtmu */ DoesNotAccessMemory,
+ /* arm_neon_vcvtns */ DoesNotAccessMemory,
+ /* arm_neon_vcvtnu */ DoesNotAccessMemory,
+ /* arm_neon_vcvtps */ DoesNotAccessMemory,
+ /* arm_neon_vcvtpu */ 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_vmaxnm */ DoesNotAccessMemory,
+ /* arm_neon_vmaxs */ DoesNotAccessMemory,
+ /* arm_neon_vmaxu */ DoesNotAccessMemory,
+ /* arm_neon_vminnm */ 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_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_vrinta */ DoesNotAccessMemory,
+ /* arm_neon_vrintm */ DoesNotAccessMemory,
+ /* arm_neon_vrintn */ DoesNotAccessMemory,
+ /* arm_neon_vrintp */ DoesNotAccessMemory,
+ /* arm_neon_vrintx */ DoesNotAccessMemory,
+ /* arm_neon_vrintz */ 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_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_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_rbit */ DoesNotAccessMemory,
+ /* arm_set_fpscr */ UnknownModRefBehavior,
+ /* arm_ssat */ DoesNotAccessMemory,
+ /* arm_stlex */ UnknownModRefBehavior,
+ /* arm_stlexd */ UnknownModRefBehavior,
+ /* arm_strex */ UnknownModRefBehavior,
+ /* arm_strexd */ UnknownModRefBehavior,
+ /* arm_thread_pointer */ DoesNotAccessMemory,
+ /* arm_undefined */ UnknownModRefBehavior,
+ /* arm_usat */ DoesNotAccessMemory,
+ /* arm_vcvtr */ DoesNotAccessMemory,
+ /* arm_vcvtru */ DoesNotAccessMemory,
+ /* bswap */ DoesNotAccessMemory,
+ /* ceil */ DoesNotAccessMemory,
+ /* clear_cache */ 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,
+ /* copysign */ DoesNotAccessMemory,
+ /* cos */ DoesNotAccessMemory,
+ /* ctlz */ DoesNotAccessMemory,
+ /* ctpop */ DoesNotAccessMemory,
+ /* cttz */ DoesNotAccessMemory,
+ /* cuda_syncthreads */ UnknownModRefBehavior,
+ /* dbg_declare */ DoesNotAccessMemory,
+ /* dbg_value */ DoesNotAccessMemory,
+ /* debugtrap */ UnknownModRefBehavior,
+ /* donothing */ DoesNotAccessMemory,
+ /* eh_dwarf_cfa */ UnknownModRefBehavior,
+ /* eh_return_i32 */ UnknownModRefBehavior,
+ /* eh_return_i64 */ UnknownModRefBehavior,
+ /* eh_sjlj_callsite */ DoesNotAccessMemory,
+ /* eh_sjlj_functioncontext */ UnknownModRefBehavior,
+ /* eh_sjlj_longjmp */ UnknownModRefBehavior,
+ /* eh_sjlj_lsda */ DoesNotAccessMemory,
+ /* eh_sjlj_setjmp */ UnknownModRefBehavior,
+ /* eh_typeid_for */ DoesNotAccessMemory,
+ /* eh_unwind_init */ UnknownModRefBehavior,
+ /* exp */ DoesNotAccessMemory,
+ /* exp2 */ DoesNotAccessMemory,
+ /* expect */ DoesNotAccessMemory,
+ /* experimental_patchpoint_i64 */ UnknownModRefBehavior,
+ /* experimental_patchpoint_void */ UnknownModRefBehavior,
+ /* experimental_stackmap */ UnknownModRefBehavior,
+ /* fabs */ DoesNotAccessMemory,
+ /* floor */ DoesNotAccessMemory,
+ /* flt_rounds */ UnknownModRefBehavior,
+ /* fma */ DoesNotAccessMemory,
+ /* fmuladd */ DoesNotAccessMemory,
+ /* frameaddress */ DoesNotAccessMemory,
+ /* gcread */ OnlyReadsArgumentPointees,
+ /* gcroot */ UnknownModRefBehavior,
+ /* gcwrite */ OnlyAccessesArgumentPointees,
+ /* hexagon_A2_abs */ DoesNotAccessMemory,
+ /* hexagon_A2_absp */ DoesNotAccessMemory,
+ /* hexagon_A2_abssat */ DoesNotAccessMemory,
+ /* hexagon_A2_add */ DoesNotAccessMemory,
+ /* hexagon_A2_addh_h16_hh */ DoesNotAccessMemory,
+ /* hexagon_A2_addh_h16_hl */ DoesNotAccessMemory,
+ /* hexagon_A2_addh_h16_lh */ DoesNotAccessMemory,
+ /* hexagon_A2_addh_h16_ll */ DoesNotAccessMemory,
+ /* hexagon_A2_addh_h16_sat_hh */ DoesNotAccessMemory,
+ /* hexagon_A2_addh_h16_sat_hl */ DoesNotAccessMemory,
+ /* hexagon_A2_addh_h16_sat_lh */ DoesNotAccessMemory,
+ /* hexagon_A2_addh_h16_sat_ll */ DoesNotAccessMemory,
+ /* hexagon_A2_addh_l16_hl */ DoesNotAccessMemory,
+ /* hexagon_A2_addh_l16_ll */ DoesNotAccessMemory,
+ /* hexagon_A2_addh_l16_sat_hl */ DoesNotAccessMemory,
+ /* hexagon_A2_addh_l16_sat_ll */ DoesNotAccessMemory,
+ /* hexagon_A2_addi */ DoesNotAccessMemory,
+ /* hexagon_A2_addp */ DoesNotAccessMemory,
+ /* hexagon_A2_addpsat */ DoesNotAccessMemory,
+ /* hexagon_A2_addsat */ DoesNotAccessMemory,
+ /* hexagon_A2_addsp */ DoesNotAccessMemory,
+ /* hexagon_A2_and */ DoesNotAccessMemory,
+ /* hexagon_A2_andir */ DoesNotAccessMemory,
+ /* hexagon_A2_andp */ DoesNotAccessMemory,
+ /* hexagon_A2_aslh */ DoesNotAccessMemory,
+ /* hexagon_A2_asrh */ DoesNotAccessMemory,
+ /* hexagon_A2_combine_hh */ DoesNotAccessMemory,
+ /* hexagon_A2_combine_hl */ DoesNotAccessMemory,
+ /* hexagon_A2_combine_lh */ DoesNotAccessMemory,
+ /* hexagon_A2_combine_ll */ DoesNotAccessMemory,
+ /* hexagon_A2_combineii */ DoesNotAccessMemory,
+ /* hexagon_A2_combinew */ DoesNotAccessMemory,
+ /* hexagon_A2_max */ DoesNotAccessMemory,
+ /* hexagon_A2_maxp */ DoesNotAccessMemory,
+ /* hexagon_A2_maxu */ DoesNotAccessMemory,
+ /* hexagon_A2_maxup */ DoesNotAccessMemory,
+ /* hexagon_A2_min */ DoesNotAccessMemory,
+ /* hexagon_A2_minp */ DoesNotAccessMemory,
+ /* hexagon_A2_minu */ DoesNotAccessMemory,
+ /* hexagon_A2_minup */ DoesNotAccessMemory,
+ /* hexagon_A2_neg */ DoesNotAccessMemory,
+ /* hexagon_A2_negp */ DoesNotAccessMemory,
+ /* hexagon_A2_negsat */ DoesNotAccessMemory,
+ /* hexagon_A2_not */ DoesNotAccessMemory,
+ /* hexagon_A2_notp */ DoesNotAccessMemory,
+ /* hexagon_A2_or */ DoesNotAccessMemory,
+ /* hexagon_A2_orir */ DoesNotAccessMemory,
+ /* hexagon_A2_orp */ DoesNotAccessMemory,
+ /* hexagon_A2_roundsat */ DoesNotAccessMemory,
+ /* hexagon_A2_sat */ DoesNotAccessMemory,
+ /* hexagon_A2_satb */ DoesNotAccessMemory,
+ /* hexagon_A2_sath */ DoesNotAccessMemory,
+ /* hexagon_A2_satub */ DoesNotAccessMemory,
+ /* hexagon_A2_satuh */ DoesNotAccessMemory,
+ /* hexagon_A2_sub */ DoesNotAccessMemory,
+ /* hexagon_A2_subh_h16_hh */ DoesNotAccessMemory,
+ /* hexagon_A2_subh_h16_hl */ DoesNotAccessMemory,
+ /* hexagon_A2_subh_h16_lh */ DoesNotAccessMemory,
+ /* hexagon_A2_subh_h16_ll */ DoesNotAccessMemory,
+ /* hexagon_A2_subh_h16_sat_hh */ DoesNotAccessMemory,
+ /* hexagon_A2_subh_h16_sat_hl */ DoesNotAccessMemory,
+ /* hexagon_A2_subh_h16_sat_lh */ DoesNotAccessMemory,
+ /* hexagon_A2_subh_h16_sat_ll */ DoesNotAccessMemory,
+ /* hexagon_A2_subh_l16_hl */ DoesNotAccessMemory,
+ /* hexagon_A2_subh_l16_ll */ DoesNotAccessMemory,
+ /* hexagon_A2_subh_l16_sat_hl */ DoesNotAccessMemory,
+ /* hexagon_A2_subh_l16_sat_ll */ DoesNotAccessMemory,
+ /* hexagon_A2_subp */ DoesNotAccessMemory,
+ /* hexagon_A2_subri */ DoesNotAccessMemory,
+ /* hexagon_A2_subsat */ DoesNotAccessMemory,
+ /* hexagon_A2_svaddh */ DoesNotAccessMemory,
+ /* hexagon_A2_svaddhs */ DoesNotAccessMemory,
+ /* hexagon_A2_svadduhs */ DoesNotAccessMemory,
+ /* hexagon_A2_svavgh */ DoesNotAccessMemory,
+ /* hexagon_A2_svavghs */ DoesNotAccessMemory,
+ /* hexagon_A2_svnavgh */ DoesNotAccessMemory,
+ /* hexagon_A2_svsubh */ DoesNotAccessMemory,
+ /* hexagon_A2_svsubhs */ DoesNotAccessMemory,
+ /* hexagon_A2_svsubuhs */ DoesNotAccessMemory,
+ /* hexagon_A2_swiz */ DoesNotAccessMemory,
+ /* hexagon_A2_sxtb */ DoesNotAccessMemory,
+ /* hexagon_A2_sxth */ DoesNotAccessMemory,
+ /* hexagon_A2_sxtw */ DoesNotAccessMemory,
+ /* hexagon_A2_tfr */ DoesNotAccessMemory,
+ /* hexagon_A2_tfrih */ DoesNotAccessMemory,
+ /* hexagon_A2_tfril */ DoesNotAccessMemory,
+ /* hexagon_A2_tfrp */ DoesNotAccessMemory,
+ /* hexagon_A2_tfrpi */ DoesNotAccessMemory,
+ /* hexagon_A2_tfrsi */ DoesNotAccessMemory,
+ /* hexagon_A2_vabsh */ DoesNotAccessMemory,
+ /* hexagon_A2_vabshsat */ DoesNotAccessMemory,
+ /* hexagon_A2_vabsw */ DoesNotAccessMemory,
+ /* hexagon_A2_vabswsat */ DoesNotAccessMemory,
+ /* hexagon_A2_vaddb_map */ DoesNotAccessMemory,
+ /* hexagon_A2_vaddh */ DoesNotAccessMemory,
+ /* hexagon_A2_vaddhs */ DoesNotAccessMemory,
+ /* hexagon_A2_vaddub */ DoesNotAccessMemory,
+ /* hexagon_A2_vaddubs */ DoesNotAccessMemory,
+ /* hexagon_A2_vadduhs */ DoesNotAccessMemory,
+ /* hexagon_A2_vaddw */ DoesNotAccessMemory,
+ /* hexagon_A2_vaddws */ DoesNotAccessMemory,
+ /* hexagon_A2_vavgh */ DoesNotAccessMemory,
+ /* hexagon_A2_vavghcr */ DoesNotAccessMemory,
+ /* hexagon_A2_vavghr */ DoesNotAccessMemory,
+ /* hexagon_A2_vavgub */ DoesNotAccessMemory,
+ /* hexagon_A2_vavgubr */ DoesNotAccessMemory,
+ /* hexagon_A2_vavguh */ DoesNotAccessMemory,
+ /* hexagon_A2_vavguhr */ DoesNotAccessMemory,
+ /* hexagon_A2_vavguw */ DoesNotAccessMemory,
+ /* hexagon_A2_vavguwr */ DoesNotAccessMemory,
+ /* hexagon_A2_vavgw */ DoesNotAccessMemory,
+ /* hexagon_A2_vavgwcr */ DoesNotAccessMemory,
+ /* hexagon_A2_vavgwr */ DoesNotAccessMemory,
+ /* hexagon_A2_vcmpbeq */ DoesNotAccessMemory,
+ /* hexagon_A2_vcmpbgtu */ DoesNotAccessMemory,
+ /* hexagon_A2_vcmpheq */ DoesNotAccessMemory,
+ /* hexagon_A2_vcmphgt */ DoesNotAccessMemory,
+ /* hexagon_A2_vcmphgtu */ DoesNotAccessMemory,
+ /* hexagon_A2_vcmpweq */ DoesNotAccessMemory,
+ /* hexagon_A2_vcmpwgt */ DoesNotAccessMemory,
+ /* hexagon_A2_vcmpwgtu */ DoesNotAccessMemory,
+ /* hexagon_A2_vconj */ DoesNotAccessMemory,
+ /* hexagon_A2_vmaxb */ DoesNotAccessMemory,
+ /* hexagon_A2_vmaxh */ DoesNotAccessMemory,
+ /* hexagon_A2_vmaxub */ DoesNotAccessMemory,
+ /* hexagon_A2_vmaxuh */ DoesNotAccessMemory,
+ /* hexagon_A2_vmaxuw */ DoesNotAccessMemory,
+ /* hexagon_A2_vmaxw */ DoesNotAccessMemory,
+ /* hexagon_A2_vminb */ DoesNotAccessMemory,
+ /* hexagon_A2_vminh */ DoesNotAccessMemory,
+ /* hexagon_A2_vminub */ DoesNotAccessMemory,
+ /* hexagon_A2_vminuh */ DoesNotAccessMemory,
+ /* hexagon_A2_vminuw */ DoesNotAccessMemory,
+ /* hexagon_A2_vminw */ DoesNotAccessMemory,
+ /* hexagon_A2_vnavgh */ DoesNotAccessMemory,
+ /* hexagon_A2_vnavghcr */ DoesNotAccessMemory,
+ /* hexagon_A2_vnavghr */ DoesNotAccessMemory,
+ /* hexagon_A2_vnavgw */ DoesNotAccessMemory,
+ /* hexagon_A2_vnavgwcr */ DoesNotAccessMemory,
+ /* hexagon_A2_vnavgwr */ DoesNotAccessMemory,
+ /* hexagon_A2_vraddub */ DoesNotAccessMemory,
+ /* hexagon_A2_vraddub_acc */ DoesNotAccessMemory,
+ /* hexagon_A2_vrsadub */ DoesNotAccessMemory,
+ /* hexagon_A2_vrsadub_acc */ DoesNotAccessMemory,
+ /* hexagon_A2_vsubb_map */ DoesNotAccessMemory,
+ /* hexagon_A2_vsubh */ DoesNotAccessMemory,
+ /* hexagon_A2_vsubhs */ DoesNotAccessMemory,
+ /* hexagon_A2_vsubub */ DoesNotAccessMemory,
+ /* hexagon_A2_vsububs */ DoesNotAccessMemory,
+ /* hexagon_A2_vsubuhs */ DoesNotAccessMemory,
+ /* hexagon_A2_vsubw */ DoesNotAccessMemory,
+ /* hexagon_A2_vsubws */ DoesNotAccessMemory,
+ /* hexagon_A2_xor */ DoesNotAccessMemory,
+ /* hexagon_A2_xorp */ DoesNotAccessMemory,
+ /* hexagon_A2_zxtb */ DoesNotAccessMemory,
+ /* hexagon_A2_zxth */ DoesNotAccessMemory,
+ /* hexagon_A4_andn */ DoesNotAccessMemory,
+ /* hexagon_A4_andnp */ DoesNotAccessMemory,
+ /* hexagon_A4_bitsplit */ DoesNotAccessMemory,
+ /* hexagon_A4_bitspliti */ DoesNotAccessMemory,
+ /* hexagon_A4_boundscheck */ DoesNotAccessMemory,
+ /* hexagon_A4_cmpbeq */ DoesNotAccessMemory,
+ /* hexagon_A4_cmpbeqi */ DoesNotAccessMemory,
+ /* hexagon_A4_cmpbgt */ DoesNotAccessMemory,
+ /* hexagon_A4_cmpbgti */ DoesNotAccessMemory,
+ /* hexagon_A4_cmpbgtu */ DoesNotAccessMemory,
+ /* hexagon_A4_cmpbgtui */ DoesNotAccessMemory,
+ /* hexagon_A4_cmpheq */ DoesNotAccessMemory,
+ /* hexagon_A4_cmpheqi */ DoesNotAccessMemory,
+ /* hexagon_A4_cmphgt */ DoesNotAccessMemory,
+ /* hexagon_A4_cmphgti */ DoesNotAccessMemory,
+ /* hexagon_A4_cmphgtu */ DoesNotAccessMemory,
+ /* hexagon_A4_cmphgtui */ DoesNotAccessMemory,
+ /* hexagon_A4_combineir */ DoesNotAccessMemory,
+ /* hexagon_A4_combineri */ DoesNotAccessMemory,
+ /* hexagon_A4_cround_ri */ DoesNotAccessMemory,
+ /* hexagon_A4_cround_rr */ DoesNotAccessMemory,
+ /* hexagon_A4_modwrapu */ DoesNotAccessMemory,
+ /* hexagon_A4_orn */ DoesNotAccessMemory,
+ /* hexagon_A4_ornp */ DoesNotAccessMemory,
+ /* hexagon_A4_rcmpeq */ DoesNotAccessMemory,
+ /* hexagon_A4_rcmpeqi */ DoesNotAccessMemory,
+ /* hexagon_A4_rcmpneq */ DoesNotAccessMemory,
+ /* hexagon_A4_rcmpneqi */ DoesNotAccessMemory,
+ /* hexagon_A4_round_ri */ DoesNotAccessMemory,
+ /* hexagon_A4_round_ri_sat */ DoesNotAccessMemory,
+ /* hexagon_A4_round_rr */ DoesNotAccessMemory,
+ /* hexagon_A4_round_rr_sat */ DoesNotAccessMemory,
+ /* hexagon_A4_tlbmatch */ DoesNotAccessMemory,
+ /* hexagon_A4_vcmpbeq_any */ DoesNotAccessMemory,
+ /* hexagon_A4_vcmpbeqi */ DoesNotAccessMemory,
+ /* hexagon_A4_vcmpbgt */ DoesNotAccessMemory,
+ /* hexagon_A4_vcmpbgti */ DoesNotAccessMemory,
+ /* hexagon_A4_vcmpbgtui */ DoesNotAccessMemory,
+ /* hexagon_A4_vcmpheqi */ DoesNotAccessMemory,
+ /* hexagon_A4_vcmphgti */ DoesNotAccessMemory,
+ /* hexagon_A4_vcmphgtui */ DoesNotAccessMemory,
+ /* hexagon_A4_vcmpweqi */ DoesNotAccessMemory,
+ /* hexagon_A4_vcmpwgti */ DoesNotAccessMemory,
+ /* hexagon_A4_vcmpwgtui */ DoesNotAccessMemory,
+ /* hexagon_A4_vrmaxh */ DoesNotAccessMemory,
+ /* hexagon_A4_vrmaxuh */ DoesNotAccessMemory,
+ /* hexagon_A4_vrmaxuw */ DoesNotAccessMemory,
+ /* hexagon_A4_vrmaxw */ DoesNotAccessMemory,
+ /* hexagon_A4_vrminh */ DoesNotAccessMemory,
+ /* hexagon_A4_vrminuh */ DoesNotAccessMemory,
+ /* hexagon_A4_vrminuw */ DoesNotAccessMemory,
+ /* hexagon_A4_vrminw */ DoesNotAccessMemory,
+ /* hexagon_A5_vaddhubs */ DoesNotAccessMemory,
+ /* hexagon_C2_all8 */ DoesNotAccessMemory,
+ /* hexagon_C2_and */ DoesNotAccessMemory,
+ /* hexagon_C2_andn */ DoesNotAccessMemory,
+ /* hexagon_C2_any8 */ DoesNotAccessMemory,
+ /* hexagon_C2_bitsclr */ DoesNotAccessMemory,
+ /* hexagon_C2_bitsclri */ DoesNotAccessMemory,
+ /* hexagon_C2_bitsset */ DoesNotAccessMemory,
+ /* hexagon_C2_cmpeq */ DoesNotAccessMemory,
+ /* hexagon_C2_cmpeqi */ DoesNotAccessMemory,
+ /* hexagon_C2_cmpeqp */ DoesNotAccessMemory,
+ /* hexagon_C2_cmpgei */ DoesNotAccessMemory,
+ /* hexagon_C2_cmpgeui */ DoesNotAccessMemory,
+ /* hexagon_C2_cmpgt */ DoesNotAccessMemory,
+ /* hexagon_C2_cmpgti */ DoesNotAccessMemory,
+ /* hexagon_C2_cmpgtp */ DoesNotAccessMemory,
+ /* hexagon_C2_cmpgtu */ DoesNotAccessMemory,
+ /* hexagon_C2_cmpgtui */ DoesNotAccessMemory,
+ /* hexagon_C2_cmpgtup */ DoesNotAccessMemory,
+ /* hexagon_C2_cmplt */ DoesNotAccessMemory,
+ /* hexagon_C2_cmpltu */ DoesNotAccessMemory,
+ /* hexagon_C2_mask */ DoesNotAccessMemory,
+ /* hexagon_C2_mux */ DoesNotAccessMemory,
+ /* hexagon_C2_muxii */ DoesNotAccessMemory,
+ /* hexagon_C2_muxir */ DoesNotAccessMemory,
+ /* hexagon_C2_muxri */ DoesNotAccessMemory,
+ /* hexagon_C2_not */ DoesNotAccessMemory,
+ /* hexagon_C2_or */ DoesNotAccessMemory,
+ /* hexagon_C2_orn */ DoesNotAccessMemory,
+ /* hexagon_C2_pxfer_map */ DoesNotAccessMemory,
+ /* hexagon_C2_tfrpr */ DoesNotAccessMemory,
+ /* hexagon_C2_tfrrp */ DoesNotAccessMemory,
+ /* hexagon_C2_vitpack */ DoesNotAccessMemory,
+ /* hexagon_C2_vmux */ DoesNotAccessMemory,
+ /* hexagon_C2_xor */ DoesNotAccessMemory,
+ /* hexagon_C4_and_and */ DoesNotAccessMemory,
+ /* hexagon_C4_and_andn */ DoesNotAccessMemory,
+ /* hexagon_C4_and_or */ DoesNotAccessMemory,
+ /* hexagon_C4_and_orn */ DoesNotAccessMemory,
+ /* hexagon_C4_cmplte */ DoesNotAccessMemory,
+ /* hexagon_C4_cmpltei */ DoesNotAccessMemory,
+ /* hexagon_C4_cmplteu */ DoesNotAccessMemory,
+ /* hexagon_C4_cmplteui */ DoesNotAccessMemory,
+ /* hexagon_C4_cmpneq */ DoesNotAccessMemory,
+ /* hexagon_C4_cmpneqi */ DoesNotAccessMemory,
+ /* hexagon_C4_fastcorner9 */ DoesNotAccessMemory,
+ /* hexagon_C4_fastcorner9_not */ DoesNotAccessMemory,
+ /* hexagon_C4_nbitsclr */ DoesNotAccessMemory,
+ /* hexagon_C4_nbitsclri */ DoesNotAccessMemory,
+ /* hexagon_C4_nbitsset */ DoesNotAccessMemory,
+ /* hexagon_C4_or_and */ DoesNotAccessMemory,
+ /* hexagon_C4_or_andn */ DoesNotAccessMemory,
+ /* hexagon_C4_or_or */ DoesNotAccessMemory,
+ /* hexagon_C4_or_orn */ DoesNotAccessMemory,
+ /* hexagon_F2_conv_d2df */ DoesNotAccessMemory,
+ /* hexagon_F2_conv_d2sf */ DoesNotAccessMemory,
+ /* hexagon_F2_conv_df2d */ DoesNotAccessMemory,
+ /* hexagon_F2_conv_df2d_chop */ DoesNotAccessMemory,
+ /* hexagon_F2_conv_df2sf */ DoesNotAccessMemory,
+ /* hexagon_F2_conv_df2ud */ DoesNotAccessMemory,
+ /* hexagon_F2_conv_df2ud_chop */ DoesNotAccessMemory,
+ /* hexagon_F2_conv_df2uw */ DoesNotAccessMemory,
+ /* hexagon_F2_conv_df2uw_chop */ DoesNotAccessMemory,
+ /* hexagon_F2_conv_df2w */ DoesNotAccessMemory,
+ /* hexagon_F2_conv_df2w_chop */ DoesNotAccessMemory,
+ /* hexagon_F2_conv_sf2d */ DoesNotAccessMemory,
+ /* hexagon_F2_conv_sf2d_chop */ DoesNotAccessMemory,
+ /* hexagon_F2_conv_sf2df */ DoesNotAccessMemory,
+ /* hexagon_F2_conv_sf2ud */ DoesNotAccessMemory,
+ /* hexagon_F2_conv_sf2ud_chop */ DoesNotAccessMemory,
+ /* hexagon_F2_conv_sf2uw */ DoesNotAccessMemory,
+ /* hexagon_F2_conv_sf2uw_chop */ DoesNotAccessMemory,
+ /* hexagon_F2_conv_sf2w */ DoesNotAccessMemory,
+ /* hexagon_F2_conv_sf2w_chop */ DoesNotAccessMemory,
+ /* hexagon_F2_conv_ud2df */ DoesNotAccessMemory,
+ /* hexagon_F2_conv_ud2sf */ DoesNotAccessMemory,
+ /* hexagon_F2_conv_uw2df */ DoesNotAccessMemory,
+ /* hexagon_F2_conv_uw2sf */ DoesNotAccessMemory,
+ /* hexagon_F2_conv_w2df */ DoesNotAccessMemory,
+ /* hexagon_F2_conv_w2sf */ DoesNotAccessMemory,
+ /* hexagon_F2_dfadd */ DoesNotAccessMemory,
+ /* hexagon_F2_dfclass */ DoesNotAccessMemory,
+ /* hexagon_F2_dfcmpeq */ DoesNotAccessMemory,
+ /* hexagon_F2_dfcmpge */ DoesNotAccessMemory,
+ /* hexagon_F2_dfcmpgt */ DoesNotAccessMemory,
+ /* hexagon_F2_dfcmpuo */ DoesNotAccessMemory,
+ /* hexagon_F2_dffixupd */ DoesNotAccessMemory,
+ /* hexagon_F2_dffixupn */ DoesNotAccessMemory,
+ /* hexagon_F2_dffixupr */ DoesNotAccessMemory,
+ /* hexagon_F2_dffma */ DoesNotAccessMemory,
+ /* hexagon_F2_dffma_lib */ DoesNotAccessMemory,
+ /* hexagon_F2_dffma_sc */ DoesNotAccessMemory,
+ /* hexagon_F2_dffms */ DoesNotAccessMemory,
+ /* hexagon_F2_dffms_lib */ DoesNotAccessMemory,
+ /* hexagon_F2_dfimm_n */ DoesNotAccessMemory,
+ /* hexagon_F2_dfimm_p */ DoesNotAccessMemory,
+ /* hexagon_F2_dfmax */ DoesNotAccessMemory,
+ /* hexagon_F2_dfmin */ DoesNotAccessMemory,
+ /* hexagon_F2_dfmpy */ DoesNotAccessMemory,
+ /* hexagon_F2_dfsub */ DoesNotAccessMemory,
+ /* hexagon_F2_sfadd */ DoesNotAccessMemory,
+ /* hexagon_F2_sfclass */ DoesNotAccessMemory,
+ /* hexagon_F2_sfcmpeq */ DoesNotAccessMemory,
+ /* hexagon_F2_sfcmpge */ DoesNotAccessMemory,
+ /* hexagon_F2_sfcmpgt */ DoesNotAccessMemory,
+ /* hexagon_F2_sfcmpuo */ DoesNotAccessMemory,
+ /* hexagon_F2_sffixupd */ DoesNotAccessMemory,
+ /* hexagon_F2_sffixupn */ DoesNotAccessMemory,
+ /* hexagon_F2_sffixupr */ DoesNotAccessMemory,
+ /* hexagon_F2_sffma */ DoesNotAccessMemory,
+ /* hexagon_F2_sffma_lib */ DoesNotAccessMemory,
+ /* hexagon_F2_sffma_sc */ DoesNotAccessMemory,
+ /* hexagon_F2_sffms */ DoesNotAccessMemory,
+ /* hexagon_F2_sffms_lib */ DoesNotAccessMemory,
+ /* hexagon_F2_sfimm_n */ DoesNotAccessMemory,
+ /* hexagon_F2_sfimm_p */ DoesNotAccessMemory,
+ /* hexagon_F2_sfmax */ DoesNotAccessMemory,
+ /* hexagon_F2_sfmin */ DoesNotAccessMemory,
+ /* hexagon_F2_sfmpy */ DoesNotAccessMemory,
+ /* hexagon_F2_sfsub */ DoesNotAccessMemory,
+ /* hexagon_M2_acci */ DoesNotAccessMemory,
+ /* hexagon_M2_accii */ DoesNotAccessMemory,
+ /* hexagon_M2_cmaci_s0 */ DoesNotAccessMemory,
+ /* hexagon_M2_cmacr_s0 */ DoesNotAccessMemory,
+ /* hexagon_M2_cmacs_s0 */ DoesNotAccessMemory,
+ /* hexagon_M2_cmacs_s1 */ DoesNotAccessMemory,
+ /* hexagon_M2_cmacsc_s0 */ DoesNotAccessMemory,
+ /* hexagon_M2_cmacsc_s1 */ DoesNotAccessMemory,
+ /* hexagon_M2_cmpyi_s0 */ DoesNotAccessMemory,
+ /* hexagon_M2_cmpyr_s0 */ DoesNotAccessMemory,
+ /* hexagon_M2_cmpyrs_s0 */ DoesNotAccessMemory,
+ /* hexagon_M2_cmpyrs_s1 */ DoesNotAccessMemory,
+ /* hexagon_M2_cmpyrsc_s0 */ DoesNotAccessMemory,
+ /* hexagon_M2_cmpyrsc_s1 */ DoesNotAccessMemory,
+ /* hexagon_M2_cmpys_s0 */ DoesNotAccessMemory,
+ /* hexagon_M2_cmpys_s1 */ DoesNotAccessMemory,
+ /* hexagon_M2_cmpysc_s0 */ DoesNotAccessMemory,
+ /* hexagon_M2_cmpysc_s1 */ DoesNotAccessMemory,
+ /* hexagon_M2_cnacs_s0 */ DoesNotAccessMemory,
+ /* hexagon_M2_cnacs_s1 */ DoesNotAccessMemory,
+ /* hexagon_M2_cnacsc_s0 */ DoesNotAccessMemory,
+ /* hexagon_M2_cnacsc_s1 */ DoesNotAccessMemory,
+ /* hexagon_M2_dpmpyss_acc_s0 */ DoesNotAccessMemory,
+ /* hexagon_M2_dpmpyss_nac_s0 */ DoesNotAccessMemory,
+ /* hexagon_M2_dpmpyss_rnd_s0 */ DoesNotAccessMemory,
+ /* hexagon_M2_dpmpyss_s0 */ DoesNotAccessMemory,
+ /* hexagon_M2_dpmpyuu_acc_s0 */ DoesNotAccessMemory,
+ /* hexagon_M2_dpmpyuu_nac_s0 */ DoesNotAccessMemory,
+ /* hexagon_M2_dpmpyuu_s0 */ DoesNotAccessMemory,
+ /* hexagon_M2_hmmpyh_rs1 */ DoesNotAccessMemory,
+ /* hexagon_M2_hmmpyh_s1 */ DoesNotAccessMemory,
+ /* hexagon_M2_hmmpyl_rs1 */ DoesNotAccessMemory,
+ /* hexagon_M2_hmmpyl_s1 */ DoesNotAccessMemory,
+ /* hexagon_M2_maci */ DoesNotAccessMemory,
+ /* hexagon_M2_macsin */ DoesNotAccessMemory,
+ /* hexagon_M2_macsip */ DoesNotAccessMemory,
+ /* hexagon_M2_mmachs_rs0 */ DoesNotAccessMemory,
+ /* hexagon_M2_mmachs_rs1 */ DoesNotAccessMemory,
+ /* hexagon_M2_mmachs_s0 */ DoesNotAccessMemory,
+ /* hexagon_M2_mmachs_s1 */ DoesNotAccessMemory,
+ /* hexagon_M2_mmacls_rs0 */ DoesNotAccessMemory,
+ /* hexagon_M2_mmacls_rs1 */ DoesNotAccessMemory,
+ /* hexagon_M2_mmacls_s0 */ DoesNotAccessMemory,
+ /* hexagon_M2_mmacls_s1 */ DoesNotAccessMemory,
+ /* hexagon_M2_mmacuhs_rs0 */ DoesNotAccessMemory,
+ /* hexagon_M2_mmacuhs_rs1 */ DoesNotAccessMemory,
+ /* hexagon_M2_mmacuhs_s0 */ DoesNotAccessMemory,
+ /* hexagon_M2_mmacuhs_s1 */ DoesNotAccessMemory,
+ /* hexagon_M2_mmaculs_rs0 */ DoesNotAccessMemory,
+ /* hexagon_M2_mmaculs_rs1 */ DoesNotAccessMemory,
+ /* hexagon_M2_mmaculs_s0 */ DoesNotAccessMemory,
+ /* hexagon_M2_mmaculs_s1 */ DoesNotAccessMemory,
+ /* hexagon_M2_mmpyh_rs0 */ DoesNotAccessMemory,
+ /* hexagon_M2_mmpyh_rs1 */ DoesNotAccessMemory,
+ /* hexagon_M2_mmpyh_s0 */ DoesNotAccessMemory,
+ /* hexagon_M2_mmpyh_s1 */ DoesNotAccessMemory,
+ /* hexagon_M2_mmpyl_rs0 */ DoesNotAccessMemory,
+ /* hexagon_M2_mmpyl_rs1 */ DoesNotAccessMemory,
+ /* hexagon_M2_mmpyl_s0 */ DoesNotAccessMemory,
+ /* hexagon_M2_mmpyl_s1 */ DoesNotAccessMemory,
+ /* hexagon_M2_mmpyuh_rs0 */ DoesNotAccessMemory,
+ /* hexagon_M2_mmpyuh_rs1 */ DoesNotAccessMemory,
+ /* hexagon_M2_mmpyuh_s0 */ DoesNotAccessMemory,
+ /* hexagon_M2_mmpyuh_s1 */ DoesNotAccessMemory,
+ /* hexagon_M2_mmpyul_rs0 */ DoesNotAccessMemory,
+ /* hexagon_M2_mmpyul_rs1 */ DoesNotAccessMemory,
+ /* hexagon_M2_mmpyul_s0 */ DoesNotAccessMemory,
+ /* hexagon_M2_mmpyul_s1 */ DoesNotAccessMemory,
+ /* hexagon_M2_mpy_acc_hh_s0 */ DoesNotAccessMemory,
+ /* hexagon_M2_mpy_acc_hh_s1 */ DoesNotAccessMemory,
+ /* hexagon_M2_mpy_acc_hl_s0 */ DoesNotAccessMemory,
+ /* hexagon_M2_mpy_acc_hl_s1 */ DoesNotAccessMemory,
+ /* hexagon_M2_mpy_acc_lh_s0 */ DoesNotAccessMemory,
+ /* hexagon_M2_mpy_acc_lh_s1 */ DoesNotAccessMemory,
+ /* hexagon_M2_mpy_acc_ll_s0 */ DoesNotAccessMemory,
+ /* hexagon_M2_mpy_acc_ll_s1 */ DoesNotAccessMemory,
+ /* hexagon_M2_mpy_acc_sat_hh_s0 */ DoesNotAccessMemory,
+ /* hexagon_M2_mpy_acc_sat_hh_s1 */ DoesNotAccessMemory,
+ /* hexagon_M2_mpy_acc_sat_hl_s0 */ DoesNotAccessMemory,
+ /* hexagon_M2_mpy_acc_sat_hl_s1 */ DoesNotAccessMemory,
+ /* hexagon_M2_mpy_acc_sat_lh_s0 */ DoesNotAccessMemory,
+ /* hexagon_M2_mpy_acc_sat_lh_s1 */ DoesNotAccessMemory,
+ /* hexagon_M2_mpy_acc_sat_ll_s0 */ DoesNotAccessMemory,
+ /* hexagon_M2_mpy_acc_sat_ll_s1 */ DoesNotAccessMemory,
+ /* hexagon_M2_mpy_hh_s0 */ DoesNotAccessMemory,
+ /* hexagon_M2_mpy_hh_s1 */ DoesNotAccessMemory,
+ /* hexagon_M2_mpy_hl_s0 */ DoesNotAccessMemory,
+ /* hexagon_M2_mpy_hl_s1 */ DoesNotAccessMemory,
+ /* hexagon_M2_mpy_lh_s0 */ DoesNotAccessMemory,
+ /* hexagon_M2_mpy_lh_s1 */ DoesNotAccessMemory,
+ /* hexagon_M2_mpy_ll_s0 */ DoesNotAccessMemory,
+ /* hexagon_M2_mpy_ll_s1 */ DoesNotAccessMemory,
+ /* hexagon_M2_mpy_nac_hh_s0 */ DoesNotAccessMemory,
+ /* hexagon_M2_mpy_nac_hh_s1 */ DoesNotAccessMemory,
+ /* hexagon_M2_mpy_nac_hl_s0 */ DoesNotAccessMemory,
+ /* hexagon_M2_mpy_nac_hl_s1 */ DoesNotAccessMemory,
+ /* hexagon_M2_mpy_nac_lh_s0 */ DoesNotAccessMemory,
+ /* hexagon_M2_mpy_nac_lh_s1 */ DoesNotAccessMemory,
+ /* hexagon_M2_mpy_nac_ll_s0 */ DoesNotAccessMemory,
+ /* hexagon_M2_mpy_nac_ll_s1 */ DoesNotAccessMemory,
+ /* hexagon_M2_mpy_nac_sat_hh_s0 */ DoesNotAccessMemory,
+ /* hexagon_M2_mpy_nac_sat_hh_s1 */ DoesNotAccessMemory,
+ /* hexagon_M2_mpy_nac_sat_hl_s0 */ DoesNotAccessMemory,
+ /* hexagon_M2_mpy_nac_sat_hl_s1 */ DoesNotAccessMemory,
+ /* hexagon_M2_mpy_nac_sat_lh_s0 */ DoesNotAccessMemory,
+ /* hexagon_M2_mpy_nac_sat_lh_s1 */ DoesNotAccessMemory,
+ /* hexagon_M2_mpy_nac_sat_ll_s0 */ DoesNotAccessMemory,
+ /* hexagon_M2_mpy_nac_sat_ll_s1 */ DoesNotAccessMemory,
+ /* hexagon_M2_mpy_rnd_hh_s0 */ DoesNotAccessMemory,
+ /* hexagon_M2_mpy_rnd_hh_s1 */ DoesNotAccessMemory,
+ /* hexagon_M2_mpy_rnd_hl_s0 */ DoesNotAccessMemory,
+ /* hexagon_M2_mpy_rnd_hl_s1 */ DoesNotAccessMemory,
+ /* hexagon_M2_mpy_rnd_lh_s0 */ DoesNotAccessMemory,
+ /* hexagon_M2_mpy_rnd_lh_s1 */ DoesNotAccessMemory,
+ /* hexagon_M2_mpy_rnd_ll_s0 */ DoesNotAccessMemory,
+ /* hexagon_M2_mpy_rnd_ll_s1 */ DoesNotAccessMemory,
+ /* hexagon_M2_mpy_sat_hh_s0 */ DoesNotAccessMemory,
+ /* hexagon_M2_mpy_sat_hh_s1 */ DoesNotAccessMemory,
+ /* hexagon_M2_mpy_sat_hl_s0 */ DoesNotAccessMemory,
+ /* hexagon_M2_mpy_sat_hl_s1 */ DoesNotAccessMemory,
+ /* hexagon_M2_mpy_sat_lh_s0 */ DoesNotAccessMemory,
+ /* hexagon_M2_mpy_sat_lh_s1 */ DoesNotAccessMemory,
+ /* hexagon_M2_mpy_sat_ll_s0 */ DoesNotAccessMemory,
+ /* hexagon_M2_mpy_sat_ll_s1 */ DoesNotAccessMemory,
+ /* hexagon_M2_mpy_sat_rnd_hh_s0 */ DoesNotAccessMemory,
+ /* hexagon_M2_mpy_sat_rnd_hh_s1 */ DoesNotAccessMemory,
+ /* hexagon_M2_mpy_sat_rnd_hl_s0 */ DoesNotAccessMemory,
+ /* hexagon_M2_mpy_sat_rnd_hl_s1 */ DoesNotAccessMemory,
+ /* hexagon_M2_mpy_sat_rnd_lh_s0 */ DoesNotAccessMemory,
+ /* hexagon_M2_mpy_sat_rnd_lh_s1 */ DoesNotAccessMemory,
+ /* hexagon_M2_mpy_sat_rnd_ll_s0 */ DoesNotAccessMemory,
+ /* hexagon_M2_mpy_sat_rnd_ll_s1 */ DoesNotAccessMemory,
+ /* hexagon_M2_mpy_up */ DoesNotAccessMemory,
+ /* hexagon_M2_mpy_up_s1 */ DoesNotAccessMemory,
+ /* hexagon_M2_mpy_up_s1_sat */ DoesNotAccessMemory,
+ /* hexagon_M2_mpyd_acc_hh_s0 */ DoesNotAccessMemory,
+ /* hexagon_M2_mpyd_acc_hh_s1 */ DoesNotAccessMemory,
+ /* hexagon_M2_mpyd_acc_hl_s0 */ DoesNotAccessMemory,
+ /* hexagon_M2_mpyd_acc_hl_s1 */ DoesNotAccessMemory,
+ /* hexagon_M2_mpyd_acc_lh_s0 */ DoesNotAccessMemory,
+ /* hexagon_M2_mpyd_acc_lh_s1 */ DoesNotAccessMemory,
+ /* hexagon_M2_mpyd_acc_ll_s0 */ DoesNotAccessMemory,
+ /* hexagon_M2_mpyd_acc_ll_s1 */ DoesNotAccessMemory,
+ /* hexagon_M2_mpyd_hh_s0 */ DoesNotAccessMemory,
+ /* hexagon_M2_mpyd_hh_s1 */ DoesNotAccessMemory,
+ /* hexagon_M2_mpyd_hl_s0 */ DoesNotAccessMemory,
+ /* hexagon_M2_mpyd_hl_s1 */ DoesNotAccessMemory,
+ /* hexagon_M2_mpyd_lh_s0 */ DoesNotAccessMemory,
+ /* hexagon_M2_mpyd_lh_s1 */ DoesNotAccessMemory,
+ /* hexagon_M2_mpyd_ll_s0 */ DoesNotAccessMemory,
+ /* hexagon_M2_mpyd_ll_s1 */ DoesNotAccessMemory,
+ /* hexagon_M2_mpyd_nac_hh_s0 */ DoesNotAccessMemory,
+ /* hexagon_M2_mpyd_nac_hh_s1 */ DoesNotAccessMemory,
+ /* hexagon_M2_mpyd_nac_hl_s0 */ DoesNotAccessMemory,
+ /* hexagon_M2_mpyd_nac_hl_s1 */ DoesNotAccessMemory,
+ /* hexagon_M2_mpyd_nac_lh_s0 */ DoesNotAccessMemory,
+ /* hexagon_M2_mpyd_nac_lh_s1 */ DoesNotAccessMemory,
+ /* hexagon_M2_mpyd_nac_ll_s0 */ DoesNotAccessMemory,
+ /* hexagon_M2_mpyd_nac_ll_s1 */ DoesNotAccessMemory,
+ /* hexagon_M2_mpyd_rnd_hh_s0 */ DoesNotAccessMemory,
+ /* hexagon_M2_mpyd_rnd_hh_s1 */ DoesNotAccessMemory,
+ /* hexagon_M2_mpyd_rnd_hl_s0 */ DoesNotAccessMemory,
+ /* hexagon_M2_mpyd_rnd_hl_s1 */ DoesNotAccessMemory,
+ /* hexagon_M2_mpyd_rnd_lh_s0 */ DoesNotAccessMemory,
+ /* hexagon_M2_mpyd_rnd_lh_s1 */ DoesNotAccessMemory,
+ /* hexagon_M2_mpyd_rnd_ll_s0 */ DoesNotAccessMemory,
+ /* hexagon_M2_mpyd_rnd_ll_s1 */ DoesNotAccessMemory,
+ /* hexagon_M2_mpyi */ DoesNotAccessMemory,
+ /* hexagon_M2_mpysmi */ DoesNotAccessMemory,
+ /* hexagon_M2_mpysu_up */ DoesNotAccessMemory,
+ /* hexagon_M2_mpyu_acc_hh_s0 */ DoesNotAccessMemory,
+ /* hexagon_M2_mpyu_acc_hh_s1 */ DoesNotAccessMemory,
+ /* hexagon_M2_mpyu_acc_hl_s0 */ DoesNotAccessMemory,
+ /* hexagon_M2_mpyu_acc_hl_s1 */ DoesNotAccessMemory,
+ /* hexagon_M2_mpyu_acc_lh_s0 */ DoesNotAccessMemory,
+ /* hexagon_M2_mpyu_acc_lh_s1 */ DoesNotAccessMemory,
+ /* hexagon_M2_mpyu_acc_ll_s0 */ DoesNotAccessMemory,
+ /* hexagon_M2_mpyu_acc_ll_s1 */ DoesNotAccessMemory,
+ /* hexagon_M2_mpyu_hh_s0 */ DoesNotAccessMemory,
+ /* hexagon_M2_mpyu_hh_s1 */ DoesNotAccessMemory,
+ /* hexagon_M2_mpyu_hl_s0 */ DoesNotAccessMemory,
+ /* hexagon_M2_mpyu_hl_s1 */ DoesNotAccessMemory,
+ /* hexagon_M2_mpyu_lh_s0 */ DoesNotAccessMemory,
+ /* hexagon_M2_mpyu_lh_s1 */ DoesNotAccessMemory,
+ /* hexagon_M2_mpyu_ll_s0 */ DoesNotAccessMemory,
+ /* hexagon_M2_mpyu_ll_s1 */ DoesNotAccessMemory,
+ /* hexagon_M2_mpyu_nac_hh_s0 */ DoesNotAccessMemory,
+ /* hexagon_M2_mpyu_nac_hh_s1 */ DoesNotAccessMemory,
+ /* hexagon_M2_mpyu_nac_hl_s0 */ DoesNotAccessMemory,
+ /* hexagon_M2_mpyu_nac_hl_s1 */ DoesNotAccessMemory,
+ /* hexagon_M2_mpyu_nac_lh_s0 */ DoesNotAccessMemory,
+ /* hexagon_M2_mpyu_nac_lh_s1 */ DoesNotAccessMemory,
+ /* hexagon_M2_mpyu_nac_ll_s0 */ DoesNotAccessMemory,
+ /* hexagon_M2_mpyu_nac_ll_s1 */ DoesNotAccessMemory,
+ /* hexagon_M2_mpyu_up */ DoesNotAccessMemory,
+ /* hexagon_M2_mpyud_acc_hh_s0 */ DoesNotAccessMemory,
+ /* hexagon_M2_mpyud_acc_hh_s1 */ DoesNotAccessMemory,
+ /* hexagon_M2_mpyud_acc_hl_s0 */ DoesNotAccessMemory,
+ /* hexagon_M2_mpyud_acc_hl_s1 */ DoesNotAccessMemory,
+ /* hexagon_M2_mpyud_acc_lh_s0 */ DoesNotAccessMemory,
+ /* hexagon_M2_mpyud_acc_lh_s1 */ DoesNotAccessMemory,
+ /* hexagon_M2_mpyud_acc_ll_s0 */ DoesNotAccessMemory,
+ /* hexagon_M2_mpyud_acc_ll_s1 */ DoesNotAccessMemory,
+ /* hexagon_M2_mpyud_hh_s0 */ DoesNotAccessMemory,
+ /* hexagon_M2_mpyud_hh_s1 */ DoesNotAccessMemory,
+ /* hexagon_M2_mpyud_hl_s0 */ DoesNotAccessMemory,
+ /* hexagon_M2_mpyud_hl_s1 */ DoesNotAccessMemory,
+ /* hexagon_M2_mpyud_lh_s0 */ DoesNotAccessMemory,
+ /* hexagon_M2_mpyud_lh_s1 */ DoesNotAccessMemory,
+ /* hexagon_M2_mpyud_ll_s0 */ DoesNotAccessMemory,
+ /* hexagon_M2_mpyud_ll_s1 */ DoesNotAccessMemory,
+ /* hexagon_M2_mpyud_nac_hh_s0 */ DoesNotAccessMemory,
+ /* hexagon_M2_mpyud_nac_hh_s1 */ DoesNotAccessMemory,
+ /* hexagon_M2_mpyud_nac_hl_s0 */ DoesNotAccessMemory,
+ /* hexagon_M2_mpyud_nac_hl_s1 */ DoesNotAccessMemory,
+ /* hexagon_M2_mpyud_nac_lh_s0 */ DoesNotAccessMemory,
+ /* hexagon_M2_mpyud_nac_lh_s1 */ DoesNotAccessMemory,
+ /* hexagon_M2_mpyud_nac_ll_s0 */ DoesNotAccessMemory,
+ /* hexagon_M2_mpyud_nac_ll_s1 */ DoesNotAccessMemory,
+ /* hexagon_M2_mpyui */ DoesNotAccessMemory,
+ /* hexagon_M2_nacci */ DoesNotAccessMemory,
+ /* hexagon_M2_naccii */ DoesNotAccessMemory,
+ /* hexagon_M2_subacc */ DoesNotAccessMemory,
+ /* hexagon_M2_vabsdiffh */ DoesNotAccessMemory,
+ /* hexagon_M2_vabsdiffw */ DoesNotAccessMemory,
+ /* hexagon_M2_vcmac_s0_sat_i */ DoesNotAccessMemory,
+ /* hexagon_M2_vcmac_s0_sat_r */ DoesNotAccessMemory,
+ /* hexagon_M2_vcmpy_s0_sat_i */ DoesNotAccessMemory,
+ /* hexagon_M2_vcmpy_s0_sat_r */ DoesNotAccessMemory,
+ /* hexagon_M2_vcmpy_s1_sat_i */ DoesNotAccessMemory,
+ /* hexagon_M2_vcmpy_s1_sat_r */ DoesNotAccessMemory,
+ /* hexagon_M2_vdmacs_s0 */ DoesNotAccessMemory,
+ /* hexagon_M2_vdmacs_s1 */ DoesNotAccessMemory,
+ /* hexagon_M2_vdmpyrs_s0 */ DoesNotAccessMemory,
+ /* hexagon_M2_vdmpyrs_s1 */ DoesNotAccessMemory,
+ /* hexagon_M2_vdmpys_s0 */ DoesNotAccessMemory,
+ /* hexagon_M2_vdmpys_s1 */ DoesNotAccessMemory,
+ /* hexagon_M2_vmac2 */ DoesNotAccessMemory,
+ /* hexagon_M2_vmac2es */ DoesNotAccessMemory,
+ /* hexagon_M2_vmac2es_s0 */ DoesNotAccessMemory,
+ /* hexagon_M2_vmac2es_s1 */ DoesNotAccessMemory,
+ /* hexagon_M2_vmac2s_s0 */ DoesNotAccessMemory,
+ /* hexagon_M2_vmac2s_s1 */ DoesNotAccessMemory,
+ /* hexagon_M2_vmac2su_s0 */ DoesNotAccessMemory,
+ /* hexagon_M2_vmac2su_s1 */ DoesNotAccessMemory,
+ /* hexagon_M2_vmpy2es_s0 */ DoesNotAccessMemory,
+ /* hexagon_M2_vmpy2es_s1 */ DoesNotAccessMemory,
+ /* hexagon_M2_vmpy2s_s0 */ DoesNotAccessMemory,
+ /* hexagon_M2_vmpy2s_s0pack */ DoesNotAccessMemory,
+ /* hexagon_M2_vmpy2s_s1 */ DoesNotAccessMemory,
+ /* hexagon_M2_vmpy2s_s1pack */ DoesNotAccessMemory,
+ /* hexagon_M2_vmpy2su_s0 */ DoesNotAccessMemory,
+ /* hexagon_M2_vmpy2su_s1 */ DoesNotAccessMemory,
+ /* hexagon_M2_vraddh */ DoesNotAccessMemory,
+ /* hexagon_M2_vradduh */ DoesNotAccessMemory,
+ /* hexagon_M2_vrcmaci_s0 */ DoesNotAccessMemory,
+ /* hexagon_M2_vrcmaci_s0c */ DoesNotAccessMemory,
+ /* hexagon_M2_vrcmacr_s0 */ DoesNotAccessMemory,
+ /* hexagon_M2_vrcmacr_s0c */ DoesNotAccessMemory,
+ /* hexagon_M2_vrcmpyi_s0 */ DoesNotAccessMemory,
+ /* hexagon_M2_vrcmpyi_s0c */ DoesNotAccessMemory,
+ /* hexagon_M2_vrcmpyr_s0 */ DoesNotAccessMemory,
+ /* hexagon_M2_vrcmpyr_s0c */ DoesNotAccessMemory,
+ /* hexagon_M2_vrcmpys_acc_s1 */ DoesNotAccessMemory,
+ /* hexagon_M2_vrcmpys_s1 */ DoesNotAccessMemory,
+ /* hexagon_M2_vrcmpys_s1rp */ DoesNotAccessMemory,
+ /* hexagon_M2_vrmac_s0 */ DoesNotAccessMemory,
+ /* hexagon_M2_vrmpy_s0 */ DoesNotAccessMemory,
+ /* hexagon_M2_xor_xacc */ DoesNotAccessMemory,
+ /* hexagon_M4_and_and */ DoesNotAccessMemory,
+ /* hexagon_M4_and_andn */ DoesNotAccessMemory,
+ /* hexagon_M4_and_or */ DoesNotAccessMemory,
+ /* hexagon_M4_and_xor */ DoesNotAccessMemory,
+ /* hexagon_M4_cmpyi_wh */ DoesNotAccessMemory,
+ /* hexagon_M4_cmpyi_whc */ DoesNotAccessMemory,
+ /* hexagon_M4_cmpyr_wh */ DoesNotAccessMemory,
+ /* hexagon_M4_cmpyr_whc */ DoesNotAccessMemory,
+ /* hexagon_M4_mac_up_s1_sat */ DoesNotAccessMemory,
+ /* hexagon_M4_mpyri_addi */ DoesNotAccessMemory,
+ /* hexagon_M4_mpyri_addr */ DoesNotAccessMemory,
+ /* hexagon_M4_mpyri_addr_u2 */ DoesNotAccessMemory,
+ /* hexagon_M4_mpyrr_addi */ DoesNotAccessMemory,
+ /* hexagon_M4_mpyrr_addr */ DoesNotAccessMemory,
+ /* hexagon_M4_nac_up_s1_sat */ DoesNotAccessMemory,
+ /* hexagon_M4_or_and */ DoesNotAccessMemory,
+ /* hexagon_M4_or_andn */ DoesNotAccessMemory,
+ /* hexagon_M4_or_or */ DoesNotAccessMemory,
+ /* hexagon_M4_or_xor */ DoesNotAccessMemory,
+ /* hexagon_M4_pmpyw */ DoesNotAccessMemory,
+ /* hexagon_M4_pmpyw_acc */ DoesNotAccessMemory,
+ /* hexagon_M4_vpmpyh */ DoesNotAccessMemory,
+ /* hexagon_M4_vpmpyh_acc */ DoesNotAccessMemory,
+ /* hexagon_M4_vrmpyeh_acc_s0 */ DoesNotAccessMemory,
+ /* hexagon_M4_vrmpyeh_acc_s1 */ DoesNotAccessMemory,
+ /* hexagon_M4_vrmpyeh_s0 */ DoesNotAccessMemory,
+ /* hexagon_M4_vrmpyeh_s1 */ DoesNotAccessMemory,
+ /* hexagon_M4_vrmpyoh_acc_s0 */ DoesNotAccessMemory,
+ /* hexagon_M4_vrmpyoh_acc_s1 */ DoesNotAccessMemory,
+ /* hexagon_M4_vrmpyoh_s0 */ DoesNotAccessMemory,
+ /* hexagon_M4_vrmpyoh_s1 */ DoesNotAccessMemory,
+ /* hexagon_M4_xor_and */ DoesNotAccessMemory,
+ /* hexagon_M4_xor_andn */ DoesNotAccessMemory,
+ /* hexagon_M4_xor_or */ DoesNotAccessMemory,
+ /* hexagon_M4_xor_xacc */ DoesNotAccessMemory,
+ /* hexagon_M5_vdmacbsu */ DoesNotAccessMemory,
+ /* hexagon_M5_vdmpybsu */ DoesNotAccessMemory,
+ /* hexagon_M5_vmacbsu */ DoesNotAccessMemory,
+ /* hexagon_M5_vmacbuu */ DoesNotAccessMemory,
+ /* hexagon_M5_vmpybsu */ DoesNotAccessMemory,
+ /* hexagon_M5_vmpybuu */ DoesNotAccessMemory,
+ /* hexagon_M5_vrmacbsu */ DoesNotAccessMemory,
+ /* hexagon_M5_vrmacbuu */ DoesNotAccessMemory,
+ /* hexagon_M5_vrmpybsu */ DoesNotAccessMemory,
+ /* hexagon_M5_vrmpybuu */ DoesNotAccessMemory,
+ /* hexagon_S2_addasl_rrri */ DoesNotAccessMemory,
+ /* hexagon_S2_asl_i_p */ DoesNotAccessMemory,
+ /* hexagon_S2_asl_i_p_acc */ DoesNotAccessMemory,
+ /* hexagon_S2_asl_i_p_and */ DoesNotAccessMemory,
+ /* hexagon_S2_asl_i_p_nac */ DoesNotAccessMemory,
+ /* hexagon_S2_asl_i_p_or */ DoesNotAccessMemory,
+ /* hexagon_S2_asl_i_p_xacc */ DoesNotAccessMemory,
+ /* hexagon_S2_asl_i_r */ DoesNotAccessMemory,
+ /* hexagon_S2_asl_i_r_acc */ DoesNotAccessMemory,
+ /* hexagon_S2_asl_i_r_and */ DoesNotAccessMemory,
+ /* hexagon_S2_asl_i_r_nac */ DoesNotAccessMemory,
+ /* hexagon_S2_asl_i_r_or */ DoesNotAccessMemory,
+ /* hexagon_S2_asl_i_r_sat */ DoesNotAccessMemory,
+ /* hexagon_S2_asl_i_r_xacc */ DoesNotAccessMemory,
+ /* hexagon_S2_asl_i_vh */ DoesNotAccessMemory,
+ /* hexagon_S2_asl_i_vw */ DoesNotAccessMemory,
+ /* hexagon_S2_asl_r_p */ DoesNotAccessMemory,
+ /* hexagon_S2_asl_r_p_acc */ DoesNotAccessMemory,
+ /* hexagon_S2_asl_r_p_and */ DoesNotAccessMemory,
+ /* hexagon_S2_asl_r_p_nac */ DoesNotAccessMemory,
+ /* hexagon_S2_asl_r_p_or */ DoesNotAccessMemory,
+ /* hexagon_S2_asl_r_p_xor */ DoesNotAccessMemory,
+ /* hexagon_S2_asl_r_r */ DoesNotAccessMemory,
+ /* hexagon_S2_asl_r_r_acc */ DoesNotAccessMemory,
+ /* hexagon_S2_asl_r_r_and */ DoesNotAccessMemory,
+ /* hexagon_S2_asl_r_r_nac */ DoesNotAccessMemory,
+ /* hexagon_S2_asl_r_r_or */ DoesNotAccessMemory,
+ /* hexagon_S2_asl_r_r_sat */ DoesNotAccessMemory,
+ /* hexagon_S2_asl_r_vh */ DoesNotAccessMemory,
+ /* hexagon_S2_asl_r_vw */ DoesNotAccessMemory,
+ /* hexagon_S2_asr_i_p */ DoesNotAccessMemory,
+ /* hexagon_S2_asr_i_p_acc */ DoesNotAccessMemory,
+ /* hexagon_S2_asr_i_p_and */ DoesNotAccessMemory,
+ /* hexagon_S2_asr_i_p_nac */ DoesNotAccessMemory,
+ /* hexagon_S2_asr_i_p_or */ DoesNotAccessMemory,
+ /* hexagon_S2_asr_i_p_rnd */ DoesNotAccessMemory,
+ /* hexagon_S2_asr_i_p_rnd_goodsyntax */ DoesNotAccessMemory,
+ /* hexagon_S2_asr_i_r */ DoesNotAccessMemory,
+ /* hexagon_S2_asr_i_r_acc */ DoesNotAccessMemory,
+ /* hexagon_S2_asr_i_r_and */ DoesNotAccessMemory,
+ /* hexagon_S2_asr_i_r_nac */ DoesNotAccessMemory,
+ /* hexagon_S2_asr_i_r_or */ DoesNotAccessMemory,
+ /* hexagon_S2_asr_i_r_rnd */ DoesNotAccessMemory,
+ /* hexagon_S2_asr_i_r_rnd_goodsyntax */ DoesNotAccessMemory,
+ /* hexagon_S2_asr_i_svw_trun */ DoesNotAccessMemory,
+ /* hexagon_S2_asr_i_vh */ DoesNotAccessMemory,
+ /* hexagon_S2_asr_i_vw */ DoesNotAccessMemory,
+ /* hexagon_S2_asr_r_p */ DoesNotAccessMemory,
+ /* hexagon_S2_asr_r_p_acc */ DoesNotAccessMemory,
+ /* hexagon_S2_asr_r_p_and */ DoesNotAccessMemory,
+ /* hexagon_S2_asr_r_p_nac */ DoesNotAccessMemory,
+ /* hexagon_S2_asr_r_p_or */ DoesNotAccessMemory,
+ /* hexagon_S2_asr_r_p_xor */ DoesNotAccessMemory,
+ /* hexagon_S2_asr_r_r */ DoesNotAccessMemory,
+ /* hexagon_S2_asr_r_r_acc */ DoesNotAccessMemory,
+ /* hexagon_S2_asr_r_r_and */ DoesNotAccessMemory,
+ /* hexagon_S2_asr_r_r_nac */ DoesNotAccessMemory,
+ /* hexagon_S2_asr_r_r_or */ DoesNotAccessMemory,
+ /* hexagon_S2_asr_r_r_sat */ DoesNotAccessMemory,
+ /* hexagon_S2_asr_r_svw_trun */ DoesNotAccessMemory,
+ /* hexagon_S2_asr_r_vh */ DoesNotAccessMemory,
+ /* hexagon_S2_asr_r_vw */ DoesNotAccessMemory,
+ /* hexagon_S2_brev */ DoesNotAccessMemory,
+ /* hexagon_S2_brevp */ DoesNotAccessMemory,
+ /* hexagon_S2_cl0 */ DoesNotAccessMemory,
+ /* hexagon_S2_cl0p */ DoesNotAccessMemory,
+ /* hexagon_S2_cl1 */ DoesNotAccessMemory,
+ /* hexagon_S2_cl1p */ DoesNotAccessMemory,
+ /* hexagon_S2_clb */ DoesNotAccessMemory,
+ /* hexagon_S2_clbnorm */ DoesNotAccessMemory,
+ /* hexagon_S2_clbp */ DoesNotAccessMemory,
+ /* hexagon_S2_clrbit_i */ DoesNotAccessMemory,
+ /* hexagon_S2_clrbit_r */ DoesNotAccessMemory,
+ /* hexagon_S2_ct0 */ DoesNotAccessMemory,
+ /* hexagon_S2_ct0p */ DoesNotAccessMemory,
+ /* hexagon_S2_ct1 */ DoesNotAccessMemory,
+ /* hexagon_S2_ct1p */ DoesNotAccessMemory,
+ /* hexagon_S2_deinterleave */ DoesNotAccessMemory,
+ /* hexagon_S2_extractu */ DoesNotAccessMemory,
+ /* hexagon_S2_extractu_rp */ DoesNotAccessMemory,
+ /* hexagon_S2_extractup */ DoesNotAccessMemory,
+ /* hexagon_S2_extractup_rp */ DoesNotAccessMemory,
+ /* hexagon_S2_insert */ DoesNotAccessMemory,
+ /* hexagon_S2_insert_rp */ DoesNotAccessMemory,
+ /* hexagon_S2_insertp */ DoesNotAccessMemory,
+ /* hexagon_S2_insertp_rp */ DoesNotAccessMemory,
+ /* hexagon_S2_interleave */ DoesNotAccessMemory,
+ /* hexagon_S2_lfsp */ DoesNotAccessMemory,
+ /* hexagon_S2_lsl_r_p */ DoesNotAccessMemory,
+ /* hexagon_S2_lsl_r_p_acc */ DoesNotAccessMemory,
+ /* hexagon_S2_lsl_r_p_and */ DoesNotAccessMemory,
+ /* hexagon_S2_lsl_r_p_nac */ DoesNotAccessMemory,
+ /* hexagon_S2_lsl_r_p_or */ DoesNotAccessMemory,
+ /* hexagon_S2_lsl_r_p_xor */ DoesNotAccessMemory,
+ /* hexagon_S2_lsl_r_r */ DoesNotAccessMemory,
+ /* hexagon_S2_lsl_r_r_acc */ DoesNotAccessMemory,
+ /* hexagon_S2_lsl_r_r_and */ DoesNotAccessMemory,
+ /* hexagon_S2_lsl_r_r_nac */ DoesNotAccessMemory,
+ /* hexagon_S2_lsl_r_r_or */ DoesNotAccessMemory,
+ /* hexagon_S2_lsl_r_vh */ DoesNotAccessMemory,
+ /* hexagon_S2_lsl_r_vw */ DoesNotAccessMemory,
+ /* hexagon_S2_lsr_i_p */ DoesNotAccessMemory,
+ /* hexagon_S2_lsr_i_p_acc */ DoesNotAccessMemory,
+ /* hexagon_S2_lsr_i_p_and */ DoesNotAccessMemory,
+ /* hexagon_S2_lsr_i_p_nac */ DoesNotAccessMemory,
+ /* hexagon_S2_lsr_i_p_or */ DoesNotAccessMemory,
+ /* hexagon_S2_lsr_i_p_xacc */ DoesNotAccessMemory,
+ /* hexagon_S2_lsr_i_r */ DoesNotAccessMemory,
+ /* hexagon_S2_lsr_i_r_acc */ DoesNotAccessMemory,
+ /* hexagon_S2_lsr_i_r_and */ DoesNotAccessMemory,
+ /* hexagon_S2_lsr_i_r_nac */ DoesNotAccessMemory,
+ /* hexagon_S2_lsr_i_r_or */ DoesNotAccessMemory,
+ /* hexagon_S2_lsr_i_r_xacc */ DoesNotAccessMemory,
+ /* hexagon_S2_lsr_i_vh */ DoesNotAccessMemory,
+ /* hexagon_S2_lsr_i_vw */ DoesNotAccessMemory,
+ /* hexagon_S2_lsr_r_p */ DoesNotAccessMemory,
+ /* hexagon_S2_lsr_r_p_acc */ DoesNotAccessMemory,
+ /* hexagon_S2_lsr_r_p_and */ DoesNotAccessMemory,
+ /* hexagon_S2_lsr_r_p_nac */ DoesNotAccessMemory,
+ /* hexagon_S2_lsr_r_p_or */ DoesNotAccessMemory,
+ /* hexagon_S2_lsr_r_p_xor */ DoesNotAccessMemory,
+ /* hexagon_S2_lsr_r_r */ DoesNotAccessMemory,
+ /* hexagon_S2_lsr_r_r_acc */ DoesNotAccessMemory,
+ /* hexagon_S2_lsr_r_r_and */ DoesNotAccessMemory,
+ /* hexagon_S2_lsr_r_r_nac */ DoesNotAccessMemory,
+ /* hexagon_S2_lsr_r_r_or */ DoesNotAccessMemory,
+ /* hexagon_S2_lsr_r_vh */ DoesNotAccessMemory,
+ /* hexagon_S2_lsr_r_vw */ DoesNotAccessMemory,
+ /* hexagon_S2_packhl */ DoesNotAccessMemory,
+ /* hexagon_S2_parityp */ DoesNotAccessMemory,
+ /* hexagon_S2_setbit_i */ DoesNotAccessMemory,
+ /* hexagon_S2_setbit_r */ DoesNotAccessMemory,
+ /* hexagon_S2_shuffeb */ DoesNotAccessMemory,
+ /* hexagon_S2_shuffeh */ DoesNotAccessMemory,
+ /* hexagon_S2_shuffob */ DoesNotAccessMemory,
+ /* hexagon_S2_shuffoh */ DoesNotAccessMemory,
+ /* hexagon_S2_svsathb */ DoesNotAccessMemory,
+ /* hexagon_S2_svsathub */ DoesNotAccessMemory,
+ /* hexagon_S2_tableidxb_goodsyntax */ DoesNotAccessMemory,
+ /* hexagon_S2_tableidxd_goodsyntax */ DoesNotAccessMemory,
+ /* hexagon_S2_tableidxh_goodsyntax */ DoesNotAccessMemory,
+ /* hexagon_S2_tableidxw_goodsyntax */ DoesNotAccessMemory,
+ /* hexagon_S2_togglebit_i */ DoesNotAccessMemory,
+ /* hexagon_S2_togglebit_r */ DoesNotAccessMemory,
+ /* hexagon_S2_tstbit_i */ DoesNotAccessMemory,
+ /* hexagon_S2_tstbit_r */ DoesNotAccessMemory,
+ /* hexagon_S2_valignib */ DoesNotAccessMemory,
+ /* hexagon_S2_valignrb */ DoesNotAccessMemory,
+ /* hexagon_S2_vcnegh */ DoesNotAccessMemory,
+ /* hexagon_S2_vcrotate */ DoesNotAccessMemory,
+ /* hexagon_S2_vrcnegh */ DoesNotAccessMemory,
+ /* hexagon_S2_vrndpackwh */ DoesNotAccessMemory,
+ /* hexagon_S2_vrndpackwhs */ DoesNotAccessMemory,
+ /* hexagon_S2_vsathb */ DoesNotAccessMemory,
+ /* hexagon_S2_vsathb_nopack */ DoesNotAccessMemory,
+ /* hexagon_S2_vsathub */ DoesNotAccessMemory,
+ /* hexagon_S2_vsathub_nopack */ DoesNotAccessMemory,
+ /* hexagon_S2_vsatwh */ DoesNotAccessMemory,
+ /* hexagon_S2_vsatwh_nopack */ DoesNotAccessMemory,
+ /* hexagon_S2_vsatwuh */ DoesNotAccessMemory,
+ /* hexagon_S2_vsatwuh_nopack */ DoesNotAccessMemory,
+ /* hexagon_S2_vsplatrb */ DoesNotAccessMemory,
+ /* hexagon_S2_vsplatrh */ DoesNotAccessMemory,
+ /* hexagon_S2_vspliceib */ DoesNotAccessMemory,
+ /* hexagon_S2_vsplicerb */ DoesNotAccessMemory,
+ /* hexagon_S2_vsxtbh */ DoesNotAccessMemory,
+ /* hexagon_S2_vsxthw */ DoesNotAccessMemory,
+ /* hexagon_S2_vtrunehb */ DoesNotAccessMemory,
+ /* hexagon_S2_vtrunewh */ DoesNotAccessMemory,
+ /* hexagon_S2_vtrunohb */ DoesNotAccessMemory,
+ /* hexagon_S2_vtrunowh */ DoesNotAccessMemory,
+ /* hexagon_S2_vzxtbh */ DoesNotAccessMemory,
+ /* hexagon_S2_vzxthw */ DoesNotAccessMemory,
+ /* hexagon_S4_addaddi */ DoesNotAccessMemory,
+ /* hexagon_S4_addi_asl_ri */ DoesNotAccessMemory,
+ /* hexagon_S4_addi_lsr_ri */ DoesNotAccessMemory,
+ /* hexagon_S4_andi_asl_ri */ DoesNotAccessMemory,
+ /* hexagon_S4_andi_lsr_ri */ DoesNotAccessMemory,
+ /* hexagon_S4_clbaddi */ DoesNotAccessMemory,
+ /* hexagon_S4_clbpaddi */ DoesNotAccessMemory,
+ /* hexagon_S4_clbpnorm */ DoesNotAccessMemory,
+ /* hexagon_S4_extract */ DoesNotAccessMemory,
+ /* hexagon_S4_extract_rp */ DoesNotAccessMemory,
+ /* hexagon_S4_extractp */ DoesNotAccessMemory,
+ /* hexagon_S4_extractp_rp */ DoesNotAccessMemory,
+ /* hexagon_S4_lsli */ DoesNotAccessMemory,
+ /* hexagon_S4_ntstbit_i */ DoesNotAccessMemory,
+ /* hexagon_S4_ntstbit_r */ DoesNotAccessMemory,
+ /* hexagon_S4_or_andi */ DoesNotAccessMemory,
+ /* hexagon_S4_or_andix */ DoesNotAccessMemory,
+ /* hexagon_S4_or_ori */ DoesNotAccessMemory,
+ /* hexagon_S4_ori_asl_ri */ DoesNotAccessMemory,
+ /* hexagon_S4_ori_lsr_ri */ DoesNotAccessMemory,
+ /* hexagon_S4_parity */ DoesNotAccessMemory,
+ /* hexagon_S4_subaddi */ DoesNotAccessMemory,
+ /* hexagon_S4_subi_asl_ri */ DoesNotAccessMemory,
+ /* hexagon_S4_subi_lsr_ri */ DoesNotAccessMemory,
+ /* hexagon_S4_vrcrotate */ DoesNotAccessMemory,
+ /* hexagon_S4_vrcrotate_acc */ DoesNotAccessMemory,
+ /* hexagon_S4_vxaddsubh */ DoesNotAccessMemory,
+ /* hexagon_S4_vxaddsubhr */ DoesNotAccessMemory,
+ /* hexagon_S4_vxaddsubw */ DoesNotAccessMemory,
+ /* hexagon_S4_vxsubaddh */ DoesNotAccessMemory,
+ /* hexagon_S4_vxsubaddhr */ DoesNotAccessMemory,
+ /* hexagon_S4_vxsubaddw */ DoesNotAccessMemory,
+ /* hexagon_S5_asrhub_rnd_sat_goodsyntax */ DoesNotAccessMemory,
+ /* hexagon_S5_asrhub_sat */ DoesNotAccessMemory,
+ /* hexagon_S5_popcountp */ DoesNotAccessMemory,
+ /* hexagon_S5_vasrhrnd_goodsyntax */ DoesNotAccessMemory,
+ /* hexagon_SI_to_SXTHI_asrh */ DoesNotAccessMemory,
+ /* hexagon_circ_ldd */ OnlyAccessesArgumentPointees,
+ /* init_trampoline */ OnlyAccessesArgumentPointees,
+ /* invariant_end */ OnlyAccessesArgumentPointees,
+ /* invariant_start */ OnlyAccessesArgumentPointees,
+ /* lifetime_end */ OnlyAccessesArgumentPointees,
+ /* lifetime_start */ OnlyAccessesArgumentPointees,
+ /* log */ DoesNotAccessMemory,
+ /* log10 */ DoesNotAccessMemory,
+ /* log2 */ DoesNotAccessMemory,
+ /* longjmp */ UnknownModRefBehavior,
+ /* memcpy */ OnlyAccessesArgumentPointees,
+ /* memmove */ OnlyAccessesArgumentPointees,
+ /* memset */ OnlyAccessesArgumentPointees,
+ /* mips_absq_s_ph */ UnknownModRefBehavior,
+ /* mips_absq_s_qb */ UnknownModRefBehavior,
+ /* mips_absq_s_w */ UnknownModRefBehavior,
+ /* mips_add_a_b */ DoesNotAccessMemory,
+ /* mips_add_a_d */ DoesNotAccessMemory,
+ /* mips_add_a_h */ DoesNotAccessMemory,
+ /* mips_add_a_w */ DoesNotAccessMemory,
+ /* mips_addq_ph */ DoesNotAccessMemory,
+ /* mips_addq_s_ph */ DoesNotAccessMemory,
+ /* mips_addq_s_w */ UnknownModRefBehavior,
+ /* mips_addqh_ph */ DoesNotAccessMemory,
+ /* mips_addqh_r_ph */ DoesNotAccessMemory,
+ /* mips_addqh_r_w */ DoesNotAccessMemory,
+ /* mips_addqh_w */ DoesNotAccessMemory,
+ /* mips_adds_a_b */ DoesNotAccessMemory,
+ /* mips_adds_a_d */ DoesNotAccessMemory,
+ /* mips_adds_a_h */ DoesNotAccessMemory,
+ /* mips_adds_a_w */ DoesNotAccessMemory,
+ /* mips_adds_s_b */ DoesNotAccessMemory,
+ /* mips_adds_s_d */ DoesNotAccessMemory,
+ /* mips_adds_s_h */ DoesNotAccessMemory,
+ /* mips_adds_s_w */ DoesNotAccessMemory,
+ /* mips_adds_u_b */ DoesNotAccessMemory,
+ /* mips_adds_u_d */ DoesNotAccessMemory,
+ /* mips_adds_u_h */ DoesNotAccessMemory,
+ /* mips_adds_u_w */ DoesNotAccessMemory,
+ /* mips_addsc */ UnknownModRefBehavior,
+ /* mips_addu_ph */ UnknownModRefBehavior,
+ /* mips_addu_qb */ DoesNotAccessMemory,
+ /* mips_addu_s_ph */ UnknownModRefBehavior,
+ /* mips_addu_s_qb */ DoesNotAccessMemory,
+ /* mips_adduh_qb */ DoesNotAccessMemory,
+ /* mips_adduh_r_qb */ DoesNotAccessMemory,
+ /* mips_addv_b */ DoesNotAccessMemory,
+ /* mips_addv_d */ DoesNotAccessMemory,
+ /* mips_addv_h */ DoesNotAccessMemory,
+ /* mips_addv_w */ DoesNotAccessMemory,
+ /* mips_addvi_b */ DoesNotAccessMemory,
+ /* mips_addvi_d */ DoesNotAccessMemory,
+ /* mips_addvi_h */ DoesNotAccessMemory,
+ /* mips_addvi_w */ DoesNotAccessMemory,
+ /* mips_addwc */ UnknownModRefBehavior,
+ /* mips_and_v */ DoesNotAccessMemory,
+ /* mips_andi_b */ DoesNotAccessMemory,
+ /* mips_append */ DoesNotAccessMemory,
+ /* mips_asub_s_b */ DoesNotAccessMemory,
+ /* mips_asub_s_d */ DoesNotAccessMemory,
+ /* mips_asub_s_h */ DoesNotAccessMemory,
+ /* mips_asub_s_w */ DoesNotAccessMemory,
+ /* mips_asub_u_b */ DoesNotAccessMemory,
+ /* mips_asub_u_d */ DoesNotAccessMemory,
+ /* mips_asub_u_h */ DoesNotAccessMemory,
+ /* mips_asub_u_w */ DoesNotAccessMemory,
+ /* mips_ave_s_b */ DoesNotAccessMemory,
+ /* mips_ave_s_d */ DoesNotAccessMemory,
+ /* mips_ave_s_h */ DoesNotAccessMemory,
+ /* mips_ave_s_w */ DoesNotAccessMemory,
+ /* mips_ave_u_b */ DoesNotAccessMemory,
+ /* mips_ave_u_d */ DoesNotAccessMemory,
+ /* mips_ave_u_h */ DoesNotAccessMemory,
+ /* mips_ave_u_w */ DoesNotAccessMemory,
+ /* mips_aver_s_b */ DoesNotAccessMemory,
+ /* mips_aver_s_d */ DoesNotAccessMemory,
+ /* mips_aver_s_h */ DoesNotAccessMemory,
+ /* mips_aver_s_w */ DoesNotAccessMemory,
+ /* mips_aver_u_b */ DoesNotAccessMemory,
+ /* mips_aver_u_d */ DoesNotAccessMemory,
+ /* mips_aver_u_h */ DoesNotAccessMemory,
+ /* mips_aver_u_w */ DoesNotAccessMemory,
+ /* mips_balign */ DoesNotAccessMemory,
+ /* mips_bclr_b */ DoesNotAccessMemory,
+ /* mips_bclr_d */ DoesNotAccessMemory,
+ /* mips_bclr_h */ DoesNotAccessMemory,
+ /* mips_bclr_w */ DoesNotAccessMemory,
+ /* mips_bclri_b */ DoesNotAccessMemory,
+ /* mips_bclri_d */ DoesNotAccessMemory,
+ /* mips_bclri_h */ DoesNotAccessMemory,
+ /* mips_bclri_w */ DoesNotAccessMemory,
+ /* mips_binsl_b */ DoesNotAccessMemory,
+ /* mips_binsl_d */ DoesNotAccessMemory,
+ /* mips_binsl_h */ DoesNotAccessMemory,
+ /* mips_binsl_w */ DoesNotAccessMemory,
+ /* mips_binsli_b */ DoesNotAccessMemory,
+ /* mips_binsli_d */ DoesNotAccessMemory,
+ /* mips_binsli_h */ DoesNotAccessMemory,
+ /* mips_binsli_w */ DoesNotAccessMemory,
+ /* mips_binsr_b */ DoesNotAccessMemory,
+ /* mips_binsr_d */ DoesNotAccessMemory,
+ /* mips_binsr_h */ DoesNotAccessMemory,
+ /* mips_binsr_w */ DoesNotAccessMemory,
+ /* mips_binsri_b */ DoesNotAccessMemory,
+ /* mips_binsri_d */ DoesNotAccessMemory,
+ /* mips_binsri_h */ DoesNotAccessMemory,
+ /* mips_binsri_w */ DoesNotAccessMemory,
+ /* mips_bitrev */ DoesNotAccessMemory,
+ /* mips_bmnz_v */ DoesNotAccessMemory,
+ /* mips_bmnzi_b */ DoesNotAccessMemory,
+ /* mips_bmz_v */ DoesNotAccessMemory,
+ /* mips_bmzi_b */ DoesNotAccessMemory,
+ /* mips_bneg_b */ DoesNotAccessMemory,
+ /* mips_bneg_d */ DoesNotAccessMemory,
+ /* mips_bneg_h */ DoesNotAccessMemory,
+ /* mips_bneg_w */ DoesNotAccessMemory,
+ /* mips_bnegi_b */ DoesNotAccessMemory,
+ /* mips_bnegi_d */ DoesNotAccessMemory,
+ /* mips_bnegi_h */ DoesNotAccessMemory,
+ /* mips_bnegi_w */ DoesNotAccessMemory,
+ /* mips_bnz_b */ DoesNotAccessMemory,
+ /* mips_bnz_d */ DoesNotAccessMemory,
+ /* mips_bnz_h */ DoesNotAccessMemory,
+ /* mips_bnz_v */ DoesNotAccessMemory,
+ /* mips_bnz_w */ DoesNotAccessMemory,
+ /* mips_bposge32 */ OnlyReadsMemory,
+ /* mips_bsel_v */ DoesNotAccessMemory,
+ /* mips_bseli_b */ DoesNotAccessMemory,
+ /* mips_bset_b */ DoesNotAccessMemory,
+ /* mips_bset_d */ DoesNotAccessMemory,
+ /* mips_bset_h */ DoesNotAccessMemory,
+ /* mips_bset_w */ DoesNotAccessMemory,
+ /* mips_bseti_b */ DoesNotAccessMemory,
+ /* mips_bseti_d */ DoesNotAccessMemory,
+ /* mips_bseti_h */ DoesNotAccessMemory,
+ /* mips_bseti_w */ DoesNotAccessMemory,
+ /* mips_bz_b */ DoesNotAccessMemory,
+ /* mips_bz_d */ DoesNotAccessMemory,
+ /* mips_bz_h */ DoesNotAccessMemory,
+ /* mips_bz_v */ DoesNotAccessMemory,
+ /* mips_bz_w */ DoesNotAccessMemory,
+ /* mips_ceq_b */ DoesNotAccessMemory,
+ /* mips_ceq_d */ DoesNotAccessMemory,
+ /* mips_ceq_h */ DoesNotAccessMemory,
+ /* mips_ceq_w */ DoesNotAccessMemory,
+ /* mips_ceqi_b */ DoesNotAccessMemory,
+ /* mips_ceqi_d */ DoesNotAccessMemory,
+ /* mips_ceqi_h */ DoesNotAccessMemory,
+ /* mips_ceqi_w */ DoesNotAccessMemory,
+ /* mips_cfcmsa */ UnknownModRefBehavior,
+ /* mips_cle_s_b */ DoesNotAccessMemory,
+ /* mips_cle_s_d */ DoesNotAccessMemory,
+ /* mips_cle_s_h */ DoesNotAccessMemory,
+ /* mips_cle_s_w */ DoesNotAccessMemory,
+ /* mips_cle_u_b */ DoesNotAccessMemory,
+ /* mips_cle_u_d */ DoesNotAccessMemory,
+ /* mips_cle_u_h */ DoesNotAccessMemory,
+ /* mips_cle_u_w */ DoesNotAccessMemory,
+ /* mips_clei_s_b */ DoesNotAccessMemory,
+ /* mips_clei_s_d */ DoesNotAccessMemory,
+ /* mips_clei_s_h */ DoesNotAccessMemory,
+ /* mips_clei_s_w */ DoesNotAccessMemory,
+ /* mips_clei_u_b */ DoesNotAccessMemory,
+ /* mips_clei_u_d */ DoesNotAccessMemory,
+ /* mips_clei_u_h */ DoesNotAccessMemory,
+ /* mips_clei_u_w */ DoesNotAccessMemory,
+ /* mips_clt_s_b */ DoesNotAccessMemory,
+ /* mips_clt_s_d */ DoesNotAccessMemory,
+ /* mips_clt_s_h */ DoesNotAccessMemory,
+ /* mips_clt_s_w */ DoesNotAccessMemory,
+ /* mips_clt_u_b */ DoesNotAccessMemory,
+ /* mips_clt_u_d */ DoesNotAccessMemory,
+ /* mips_clt_u_h */ DoesNotAccessMemory,
+ /* mips_clt_u_w */ DoesNotAccessMemory,
+ /* mips_clti_s_b */ DoesNotAccessMemory,
+ /* mips_clti_s_d */ DoesNotAccessMemory,
+ /* mips_clti_s_h */ DoesNotAccessMemory,
+ /* mips_clti_s_w */ DoesNotAccessMemory,
+ /* mips_clti_u_b */ DoesNotAccessMemory,
+ /* mips_clti_u_d */ DoesNotAccessMemory,
+ /* mips_clti_u_h */ DoesNotAccessMemory,
+ /* mips_clti_u_w */ DoesNotAccessMemory,
+ /* mips_cmp_eq_ph */ UnknownModRefBehavior,
+ /* mips_cmp_le_ph */ UnknownModRefBehavior,
+ /* mips_cmp_lt_ph */ UnknownModRefBehavior,
+ /* mips_cmpgdu_eq_qb */ UnknownModRefBehavior,
+ /* mips_cmpgdu_le_qb */ UnknownModRefBehavior,
+ /* mips_cmpgdu_lt_qb */ UnknownModRefBehavior,
+ /* mips_cmpgu_eq_qb */ UnknownModRefBehavior,
+ /* mips_cmpgu_le_qb */ UnknownModRefBehavior,
+ /* mips_cmpgu_lt_qb */ UnknownModRefBehavior,
+ /* mips_cmpu_eq_qb */ UnknownModRefBehavior,
+ /* mips_cmpu_le_qb */ UnknownModRefBehavior,
+ /* mips_cmpu_lt_qb */ UnknownModRefBehavior,
+ /* mips_copy_s_b */ DoesNotAccessMemory,
+ /* mips_copy_s_d */ DoesNotAccessMemory,
+ /* mips_copy_s_h */ DoesNotAccessMemory,
+ /* mips_copy_s_w */ DoesNotAccessMemory,
+ /* mips_copy_u_b */ DoesNotAccessMemory,
+ /* mips_copy_u_d */ DoesNotAccessMemory,
+ /* mips_copy_u_h */ DoesNotAccessMemory,
+ /* mips_copy_u_w */ DoesNotAccessMemory,
+ /* mips_ctcmsa */ UnknownModRefBehavior,
+ /* mips_div_s_b */ DoesNotAccessMemory,
+ /* mips_div_s_d */ DoesNotAccessMemory,
+ /* mips_div_s_h */ DoesNotAccessMemory,
+ /* mips_div_s_w */ DoesNotAccessMemory,
+ /* mips_div_u_b */ DoesNotAccessMemory,
+ /* mips_div_u_d */ DoesNotAccessMemory,
+ /* mips_div_u_h */ DoesNotAccessMemory,
+ /* mips_div_u_w */ DoesNotAccessMemory,
+ /* mips_dlsa */ DoesNotAccessMemory,
+ /* mips_dotp_s_d */ DoesNotAccessMemory,
+ /* mips_dotp_s_h */ DoesNotAccessMemory,
+ /* mips_dotp_s_w */ DoesNotAccessMemory,
+ /* mips_dotp_u_d */ DoesNotAccessMemory,
+ /* mips_dotp_u_h */ DoesNotAccessMemory,
+ /* mips_dotp_u_w */ DoesNotAccessMemory,
+ /* mips_dpa_w_ph */ DoesNotAccessMemory,
+ /* mips_dpadd_s_d */ DoesNotAccessMemory,
+ /* mips_dpadd_s_h */ DoesNotAccessMemory,
+ /* mips_dpadd_s_w */ DoesNotAccessMemory,
+ /* mips_dpadd_u_d */ DoesNotAccessMemory,
+ /* mips_dpadd_u_h */ DoesNotAccessMemory,
+ /* mips_dpadd_u_w */ DoesNotAccessMemory,
+ /* mips_dpaq_s_w_ph */ UnknownModRefBehavior,
+ /* mips_dpaq_sa_l_w */ UnknownModRefBehavior,
+ /* mips_dpaqx_s_w_ph */ UnknownModRefBehavior,
+ /* mips_dpaqx_sa_w_ph */ UnknownModRefBehavior,
+ /* mips_dpau_h_qbl */ DoesNotAccessMemory,
+ /* mips_dpau_h_qbr */ DoesNotAccessMemory,
+ /* mips_dpax_w_ph */ DoesNotAccessMemory,
+ /* mips_dps_w_ph */ DoesNotAccessMemory,
+ /* mips_dpsq_s_w_ph */ UnknownModRefBehavior,
+ /* mips_dpsq_sa_l_w */ UnknownModRefBehavior,
+ /* mips_dpsqx_s_w_ph */ UnknownModRefBehavior,
+ /* mips_dpsqx_sa_w_ph */ UnknownModRefBehavior,
+ /* mips_dpsu_h_qbl */ DoesNotAccessMemory,
+ /* mips_dpsu_h_qbr */ DoesNotAccessMemory,
+ /* mips_dpsub_s_d */ DoesNotAccessMemory,
+ /* mips_dpsub_s_h */ DoesNotAccessMemory,
+ /* mips_dpsub_s_w */ DoesNotAccessMemory,
+ /* mips_dpsub_u_d */ DoesNotAccessMemory,
+ /* mips_dpsub_u_h */ DoesNotAccessMemory,
+ /* mips_dpsub_u_w */ DoesNotAccessMemory,
+ /* mips_dpsx_w_ph */ DoesNotAccessMemory,
+ /* mips_extp */ UnknownModRefBehavior,
+ /* mips_extpdp */ UnknownModRefBehavior,
+ /* mips_extr_r_w */ UnknownModRefBehavior,
+ /* mips_extr_rs_w */ UnknownModRefBehavior,
+ /* mips_extr_s_h */ UnknownModRefBehavior,
+ /* mips_extr_w */ UnknownModRefBehavior,
+ /* mips_fadd_d */ DoesNotAccessMemory,
+ /* mips_fadd_w */ DoesNotAccessMemory,
+ /* mips_fcaf_d */ DoesNotAccessMemory,
+ /* mips_fcaf_w */ DoesNotAccessMemory,
+ /* mips_fceq_d */ DoesNotAccessMemory,
+ /* mips_fceq_w */ DoesNotAccessMemory,
+ /* mips_fclass_d */ DoesNotAccessMemory,
+ /* mips_fclass_w */ DoesNotAccessMemory,
+ /* mips_fcle_d */ DoesNotAccessMemory,
+ /* mips_fcle_w */ DoesNotAccessMemory,
+ /* mips_fclt_d */ DoesNotAccessMemory,
+ /* mips_fclt_w */ DoesNotAccessMemory,
+ /* mips_fcne_d */ DoesNotAccessMemory,
+ /* mips_fcne_w */ DoesNotAccessMemory,
+ /* mips_fcor_d */ DoesNotAccessMemory,
+ /* mips_fcor_w */ DoesNotAccessMemory,
+ /* mips_fcueq_d */ DoesNotAccessMemory,
+ /* mips_fcueq_w */ DoesNotAccessMemory,
+ /* mips_fcule_d */ DoesNotAccessMemory,
+ /* mips_fcule_w */ DoesNotAccessMemory,
+ /* mips_fcult_d */ DoesNotAccessMemory,
+ /* mips_fcult_w */ DoesNotAccessMemory,
+ /* mips_fcun_d */ DoesNotAccessMemory,
+ /* mips_fcun_w */ DoesNotAccessMemory,
+ /* mips_fcune_d */ DoesNotAccessMemory,
+ /* mips_fcune_w */ DoesNotAccessMemory,
+ /* mips_fdiv_d */ DoesNotAccessMemory,
+ /* mips_fdiv_w */ DoesNotAccessMemory,
+ /* mips_fexdo_h */ DoesNotAccessMemory,
+ /* mips_fexdo_w */ DoesNotAccessMemory,
+ /* mips_fexp2_d */ DoesNotAccessMemory,
+ /* mips_fexp2_w */ DoesNotAccessMemory,
+ /* mips_fexupl_d */ DoesNotAccessMemory,
+ /* mips_fexupl_w */ DoesNotAccessMemory,
+ /* mips_fexupr_d */ DoesNotAccessMemory,
+ /* mips_fexupr_w */ DoesNotAccessMemory,
+ /* mips_ffint_s_d */ DoesNotAccessMemory,
+ /* mips_ffint_s_w */ DoesNotAccessMemory,
+ /* mips_ffint_u_d */ DoesNotAccessMemory,
+ /* mips_ffint_u_w */ DoesNotAccessMemory,
+ /* mips_ffql_d */ DoesNotAccessMemory,
+ /* mips_ffql_w */ DoesNotAccessMemory,
+ /* mips_ffqr_d */ DoesNotAccessMemory,
+ /* mips_ffqr_w */ DoesNotAccessMemory,
+ /* mips_fill_b */ DoesNotAccessMemory,
+ /* mips_fill_d */ DoesNotAccessMemory,
+ /* mips_fill_h */ DoesNotAccessMemory,
+ /* mips_fill_w */ DoesNotAccessMemory,
+ /* mips_flog2_d */ DoesNotAccessMemory,
+ /* mips_flog2_w */ DoesNotAccessMemory,
+ /* mips_fmadd_d */ DoesNotAccessMemory,
+ /* mips_fmadd_w */ DoesNotAccessMemory,
+ /* mips_fmax_a_d */ DoesNotAccessMemory,
+ /* mips_fmax_a_w */ DoesNotAccessMemory,
+ /* mips_fmax_d */ DoesNotAccessMemory,
+ /* mips_fmax_w */ DoesNotAccessMemory,
+ /* mips_fmin_a_d */ DoesNotAccessMemory,
+ /* mips_fmin_a_w */ DoesNotAccessMemory,
+ /* mips_fmin_d */ DoesNotAccessMemory,
+ /* mips_fmin_w */ DoesNotAccessMemory,
+ /* mips_fmsub_d */ DoesNotAccessMemory,
+ /* mips_fmsub_w */ DoesNotAccessMemory,
+ /* mips_fmul_d */ DoesNotAccessMemory,
+ /* mips_fmul_w */ DoesNotAccessMemory,
+ /* mips_frcp_d */ DoesNotAccessMemory,
+ /* mips_frcp_w */ DoesNotAccessMemory,
+ /* mips_frint_d */ DoesNotAccessMemory,
+ /* mips_frint_w */ DoesNotAccessMemory,
+ /* mips_frsqrt_d */ DoesNotAccessMemory,
+ /* mips_frsqrt_w */ DoesNotAccessMemory,
+ /* mips_fsaf_d */ DoesNotAccessMemory,
+ /* mips_fsaf_w */ DoesNotAccessMemory,
+ /* mips_fseq_d */ DoesNotAccessMemory,
+ /* mips_fseq_w */ DoesNotAccessMemory,
+ /* mips_fsle_d */ DoesNotAccessMemory,
+ /* mips_fsle_w */ DoesNotAccessMemory,
+ /* mips_fslt_d */ DoesNotAccessMemory,
+ /* mips_fslt_w */ DoesNotAccessMemory,
+ /* mips_fsne_d */ DoesNotAccessMemory,
+ /* mips_fsne_w */ DoesNotAccessMemory,
+ /* mips_fsor_d */ DoesNotAccessMemory,
+ /* mips_fsor_w */ DoesNotAccessMemory,
+ /* mips_fsqrt_d */ DoesNotAccessMemory,
+ /* mips_fsqrt_w */ DoesNotAccessMemory,
+ /* mips_fsub_d */ DoesNotAccessMemory,
+ /* mips_fsub_w */ DoesNotAccessMemory,
+ /* mips_fsueq_d */ DoesNotAccessMemory,
+ /* mips_fsueq_w */ DoesNotAccessMemory,
+ /* mips_fsule_d */ DoesNotAccessMemory,
+ /* mips_fsule_w */ DoesNotAccessMemory,
+ /* mips_fsult_d */ DoesNotAccessMemory,
+ /* mips_fsult_w */ DoesNotAccessMemory,
+ /* mips_fsun_d */ DoesNotAccessMemory,
+ /* mips_fsun_w */ DoesNotAccessMemory,
+ /* mips_fsune_d */ DoesNotAccessMemory,
+ /* mips_fsune_w */ DoesNotAccessMemory,
+ /* mips_ftint_s_d */ DoesNotAccessMemory,
+ /* mips_ftint_s_w */ DoesNotAccessMemory,
+ /* mips_ftint_u_d */ DoesNotAccessMemory,
+ /* mips_ftint_u_w */ DoesNotAccessMemory,
+ /* mips_ftq_h */ DoesNotAccessMemory,
+ /* mips_ftq_w */ DoesNotAccessMemory,
+ /* mips_ftrunc_s_d */ DoesNotAccessMemory,
+ /* mips_ftrunc_s_w */ DoesNotAccessMemory,
+ /* mips_ftrunc_u_d */ DoesNotAccessMemory,
+ /* mips_ftrunc_u_w */ DoesNotAccessMemory,
+ /* mips_hadd_s_d */ DoesNotAccessMemory,
+ /* mips_hadd_s_h */ DoesNotAccessMemory,
+ /* mips_hadd_s_w */ DoesNotAccessMemory,
+ /* mips_hadd_u_d */ DoesNotAccessMemory,
+ /* mips_hadd_u_h */ DoesNotAccessMemory,
+ /* mips_hadd_u_w */ DoesNotAccessMemory,
+ /* mips_hsub_s_d */ DoesNotAccessMemory,
+ /* mips_hsub_s_h */ DoesNotAccessMemory,
+ /* mips_hsub_s_w */ DoesNotAccessMemory,
+ /* mips_hsub_u_d */ DoesNotAccessMemory,
+ /* mips_hsub_u_h */ DoesNotAccessMemory,
+ /* mips_hsub_u_w */ DoesNotAccessMemory,
+ /* mips_ilvev_b */ DoesNotAccessMemory,
+ /* mips_ilvev_d */ DoesNotAccessMemory,
+ /* mips_ilvev_h */ DoesNotAccessMemory,
+ /* mips_ilvev_w */ DoesNotAccessMemory,
+ /* mips_ilvl_b */ DoesNotAccessMemory,
+ /* mips_ilvl_d */ DoesNotAccessMemory,
+ /* mips_ilvl_h */ DoesNotAccessMemory,
+ /* mips_ilvl_w */ DoesNotAccessMemory,
+ /* mips_ilvod_b */ DoesNotAccessMemory,
+ /* mips_ilvod_d */ DoesNotAccessMemory,
+ /* mips_ilvod_h */ DoesNotAccessMemory,
+ /* mips_ilvod_w */ DoesNotAccessMemory,
+ /* mips_ilvr_b */ DoesNotAccessMemory,
+ /* mips_ilvr_d */ DoesNotAccessMemory,
+ /* mips_ilvr_h */ DoesNotAccessMemory,
+ /* mips_ilvr_w */ DoesNotAccessMemory,
+ /* mips_insert_b */ DoesNotAccessMemory,
+ /* mips_insert_d */ DoesNotAccessMemory,
+ /* mips_insert_h */ DoesNotAccessMemory,
+ /* mips_insert_w */ DoesNotAccessMemory,
+ /* mips_insv */ OnlyReadsMemory,
+ /* mips_insve_b */ DoesNotAccessMemory,
+ /* mips_insve_d */ DoesNotAccessMemory,
+ /* mips_insve_h */ DoesNotAccessMemory,
+ /* mips_insve_w */ DoesNotAccessMemory,
+ /* mips_lbux */ OnlyReadsArgumentPointees,
+ /* mips_ld_b */ OnlyReadsArgumentPointees,
+ /* mips_ld_d */ OnlyReadsArgumentPointees,
+ /* mips_ld_h */ OnlyReadsArgumentPointees,
+ /* mips_ld_w */ OnlyReadsArgumentPointees,
+ /* mips_ldi_b */ DoesNotAccessMemory,
+ /* mips_ldi_d */ DoesNotAccessMemory,
+ /* mips_ldi_h */ DoesNotAccessMemory,
+ /* mips_ldi_w */ DoesNotAccessMemory,
+ /* mips_lhx */ OnlyReadsArgumentPointees,
+ /* mips_lsa */ DoesNotAccessMemory,
+ /* mips_lwx */ OnlyReadsArgumentPointees,
+ /* mips_madd */ DoesNotAccessMemory,
+ /* mips_madd_q_h */ DoesNotAccessMemory,
+ /* mips_madd_q_w */ DoesNotAccessMemory,
+ /* mips_maddr_q_h */ DoesNotAccessMemory,
+ /* mips_maddr_q_w */ DoesNotAccessMemory,
+ /* mips_maddu */ DoesNotAccessMemory,
+ /* mips_maddv_b */ DoesNotAccessMemory,
+ /* mips_maddv_d */ DoesNotAccessMemory,
+ /* mips_maddv_h */ DoesNotAccessMemory,
+ /* mips_maddv_w */ DoesNotAccessMemory,
+ /* mips_maq_s_w_phl */ UnknownModRefBehavior,
+ /* mips_maq_s_w_phr */ UnknownModRefBehavior,
+ /* mips_maq_sa_w_phl */ UnknownModRefBehavior,
+ /* mips_maq_sa_w_phr */ UnknownModRefBehavior,
+ /* mips_max_a_b */ DoesNotAccessMemory,
+ /* mips_max_a_d */ DoesNotAccessMemory,
+ /* mips_max_a_h */ DoesNotAccessMemory,
+ /* mips_max_a_w */ DoesNotAccessMemory,
+ /* mips_max_s_b */ DoesNotAccessMemory,
+ /* mips_max_s_d */ DoesNotAccessMemory,
+ /* mips_max_s_h */ DoesNotAccessMemory,
+ /* mips_max_s_w */ DoesNotAccessMemory,
+ /* mips_max_u_b */ DoesNotAccessMemory,
+ /* mips_max_u_d */ DoesNotAccessMemory,
+ /* mips_max_u_h */ DoesNotAccessMemory,
+ /* mips_max_u_w */ DoesNotAccessMemory,
+ /* mips_maxi_s_b */ DoesNotAccessMemory,
+ /* mips_maxi_s_d */ DoesNotAccessMemory,
+ /* mips_maxi_s_h */ DoesNotAccessMemory,
+ /* mips_maxi_s_w */ DoesNotAccessMemory,
+ /* mips_maxi_u_b */ DoesNotAccessMemory,
+ /* mips_maxi_u_d */ DoesNotAccessMemory,
+ /* mips_maxi_u_h */ DoesNotAccessMemory,
+ /* mips_maxi_u_w */ DoesNotAccessMemory,
+ /* mips_min_a_b */ DoesNotAccessMemory,
+ /* mips_min_a_d */ DoesNotAccessMemory,
+ /* mips_min_a_h */ DoesNotAccessMemory,
+ /* mips_min_a_w */ DoesNotAccessMemory,
+ /* mips_min_s_b */ DoesNotAccessMemory,
+ /* mips_min_s_d */ DoesNotAccessMemory,
+ /* mips_min_s_h */ DoesNotAccessMemory,
+ /* mips_min_s_w */ DoesNotAccessMemory,
+ /* mips_min_u_b */ DoesNotAccessMemory,
+ /* mips_min_u_d */ DoesNotAccessMemory,
+ /* mips_min_u_h */ DoesNotAccessMemory,
+ /* mips_min_u_w */ DoesNotAccessMemory,
+ /* mips_mini_s_b */ DoesNotAccessMemory,
+ /* mips_mini_s_d */ DoesNotAccessMemory,
+ /* mips_mini_s_h */ DoesNotAccessMemory,
+ /* mips_mini_s_w */ DoesNotAccessMemory,
+ /* mips_mini_u_b */ DoesNotAccessMemory,
+ /* mips_mini_u_d */ DoesNotAccessMemory,
+ /* mips_mini_u_h */ DoesNotAccessMemory,
+ /* mips_mini_u_w */ DoesNotAccessMemory,
+ /* mips_mod_s_b */ DoesNotAccessMemory,
+ /* mips_mod_s_d */ DoesNotAccessMemory,
+ /* mips_mod_s_h */ DoesNotAccessMemory,
+ /* mips_mod_s_w */ DoesNotAccessMemory,
+ /* mips_mod_u_b */ DoesNotAccessMemory,
+ /* mips_mod_u_d */ DoesNotAccessMemory,
+ /* mips_mod_u_h */ DoesNotAccessMemory,
+ /* mips_mod_u_w */ DoesNotAccessMemory,
+ /* mips_modsub */ DoesNotAccessMemory,
+ /* mips_move_v */ DoesNotAccessMemory,
+ /* mips_msub */ DoesNotAccessMemory,
+ /* mips_msub_q_h */ DoesNotAccessMemory,
+ /* mips_msub_q_w */ DoesNotAccessMemory,
+ /* mips_msubr_q_h */ DoesNotAccessMemory,
+ /* mips_msubr_q_w */ DoesNotAccessMemory,
+ /* mips_msubu */ DoesNotAccessMemory,
+ /* mips_msubv_b */ DoesNotAccessMemory,
+ /* mips_msubv_d */ DoesNotAccessMemory,
+ /* mips_msubv_h */ DoesNotAccessMemory,
+ /* mips_msubv_w */ DoesNotAccessMemory,
+ /* mips_mthlip */ UnknownModRefBehavior,
+ /* mips_mul_ph */ UnknownModRefBehavior,
+ /* mips_mul_q_h */ DoesNotAccessMemory,
+ /* mips_mul_q_w */ DoesNotAccessMemory,
+ /* mips_mul_s_ph */ UnknownModRefBehavior,
+ /* mips_muleq_s_w_phl */ UnknownModRefBehavior,
+ /* mips_muleq_s_w_phr */ UnknownModRefBehavior,
+ /* mips_muleu_s_ph_qbl */ UnknownModRefBehavior,
+ /* mips_muleu_s_ph_qbr */ UnknownModRefBehavior,
+ /* mips_mulq_rs_ph */ UnknownModRefBehavior,
+ /* mips_mulq_rs_w */ UnknownModRefBehavior,
+ /* mips_mulq_s_ph */ UnknownModRefBehavior,
+ /* mips_mulq_s_w */ UnknownModRefBehavior,
+ /* mips_mulr_q_h */ DoesNotAccessMemory,
+ /* mips_mulr_q_w */ DoesNotAccessMemory,
+ /* mips_mulsa_w_ph */ DoesNotAccessMemory,
+ /* mips_mulsaq_s_w_ph */ UnknownModRefBehavior,
+ /* mips_mult */ DoesNotAccessMemory,
+ /* mips_multu */ DoesNotAccessMemory,
+ /* mips_mulv_b */ DoesNotAccessMemory,
+ /* mips_mulv_d */ DoesNotAccessMemory,
+ /* mips_mulv_h */ DoesNotAccessMemory,
+ /* mips_mulv_w */ DoesNotAccessMemory,
+ /* mips_nloc_b */ DoesNotAccessMemory,
+ /* mips_nloc_d */ DoesNotAccessMemory,
+ /* mips_nloc_h */ DoesNotAccessMemory,
+ /* mips_nloc_w */ DoesNotAccessMemory,
+ /* mips_nlzc_b */ DoesNotAccessMemory,
+ /* mips_nlzc_d */ DoesNotAccessMemory,
+ /* mips_nlzc_h */ DoesNotAccessMemory,
+ /* mips_nlzc_w */ DoesNotAccessMemory,
+ /* mips_nor_v */ DoesNotAccessMemory,
+ /* mips_nori_b */ DoesNotAccessMemory,
+ /* mips_or_v */ DoesNotAccessMemory,
+ /* mips_ori_b */ DoesNotAccessMemory,
+ /* mips_packrl_ph */ DoesNotAccessMemory,
+ /* mips_pckev_b */ DoesNotAccessMemory,
+ /* mips_pckev_d */ DoesNotAccessMemory,
+ /* mips_pckev_h */ DoesNotAccessMemory,
+ /* mips_pckev_w */ DoesNotAccessMemory,
+ /* mips_pckod_b */ DoesNotAccessMemory,
+ /* mips_pckod_d */ DoesNotAccessMemory,
+ /* mips_pckod_h */ DoesNotAccessMemory,
+ /* mips_pckod_w */ DoesNotAccessMemory,
+ /* mips_pcnt_b */ DoesNotAccessMemory,
+ /* mips_pcnt_d */ DoesNotAccessMemory,
+ /* mips_pcnt_h */ DoesNotAccessMemory,
+ /* mips_pcnt_w */ DoesNotAccessMemory,
+ /* mips_pick_ph */ OnlyReadsMemory,
+ /* mips_pick_qb */ OnlyReadsMemory,
+ /* mips_preceq_w_phl */ DoesNotAccessMemory,
+ /* mips_preceq_w_phr */ DoesNotAccessMemory,
+ /* mips_precequ_ph_qbl */ DoesNotAccessMemory,
+ /* mips_precequ_ph_qbla */ DoesNotAccessMemory,
+ /* mips_precequ_ph_qbr */ DoesNotAccessMemory,
+ /* mips_precequ_ph_qbra */ DoesNotAccessMemory,
+ /* mips_preceu_ph_qbl */ DoesNotAccessMemory,
+ /* mips_preceu_ph_qbla */ DoesNotAccessMemory,
+ /* mips_preceu_ph_qbr */ DoesNotAccessMemory,
+ /* mips_preceu_ph_qbra */ DoesNotAccessMemory,
+ /* mips_precr_qb_ph */ UnknownModRefBehavior,
+ /* mips_precr_sra_ph_w */ DoesNotAccessMemory,
+ /* mips_precr_sra_r_ph_w */ DoesNotAccessMemory,
+ /* mips_precrq_ph_w */ DoesNotAccessMemory,
+ /* mips_precrq_qb_ph */ DoesNotAccessMemory,
+ /* mips_precrq_rs_ph_w */ UnknownModRefBehavior,
+ /* mips_precrqu_s_qb_ph */ UnknownModRefBehavior,
+ /* mips_prepend */ DoesNotAccessMemory,
+ /* mips_raddu_w_qb */ DoesNotAccessMemory,
+ /* mips_rddsp */ OnlyReadsMemory,
+ /* mips_repl_ph */ DoesNotAccessMemory,
+ /* mips_repl_qb */ DoesNotAccessMemory,
+ /* mips_sat_s_b */ DoesNotAccessMemory,
+ /* mips_sat_s_d */ DoesNotAccessMemory,
+ /* mips_sat_s_h */ DoesNotAccessMemory,
+ /* mips_sat_s_w */ DoesNotAccessMemory,
+ /* mips_sat_u_b */ DoesNotAccessMemory,
+ /* mips_sat_u_d */ DoesNotAccessMemory,
+ /* mips_sat_u_h */ DoesNotAccessMemory,
+ /* mips_sat_u_w */ DoesNotAccessMemory,
+ /* mips_shf_b */ DoesNotAccessMemory,
+ /* mips_shf_h */ DoesNotAccessMemory,
+ /* mips_shf_w */ DoesNotAccessMemory,
+ /* mips_shilo */ DoesNotAccessMemory,
+ /* mips_shll_ph */ UnknownModRefBehavior,
+ /* mips_shll_qb */ UnknownModRefBehavior,
+ /* mips_shll_s_ph */ UnknownModRefBehavior,
+ /* mips_shll_s_w */ UnknownModRefBehavior,
+ /* mips_shra_ph */ DoesNotAccessMemory,
+ /* mips_shra_qb */ DoesNotAccessMemory,
+ /* mips_shra_r_ph */ DoesNotAccessMemory,
+ /* mips_shra_r_qb */ DoesNotAccessMemory,
+ /* mips_shra_r_w */ DoesNotAccessMemory,
+ /* mips_shrl_ph */ DoesNotAccessMemory,
+ /* mips_shrl_qb */ DoesNotAccessMemory,
+ /* mips_sld_b */ DoesNotAccessMemory,
+ /* mips_sld_d */ DoesNotAccessMemory,
+ /* mips_sld_h */ DoesNotAccessMemory,
+ /* mips_sld_w */ DoesNotAccessMemory,
+ /* mips_sldi_b */ DoesNotAccessMemory,
+ /* mips_sldi_d */ DoesNotAccessMemory,
+ /* mips_sldi_h */ DoesNotAccessMemory,
+ /* mips_sldi_w */ DoesNotAccessMemory,
+ /* mips_sll_b */ DoesNotAccessMemory,
+ /* mips_sll_d */ DoesNotAccessMemory,
+ /* mips_sll_h */ DoesNotAccessMemory,
+ /* mips_sll_w */ DoesNotAccessMemory,
+ /* mips_slli_b */ DoesNotAccessMemory,
+ /* mips_slli_d */ DoesNotAccessMemory,
+ /* mips_slli_h */ DoesNotAccessMemory,
+ /* mips_slli_w */ DoesNotAccessMemory,
+ /* mips_splat_b */ DoesNotAccessMemory,
+ /* mips_splat_d */ DoesNotAccessMemory,
+ /* mips_splat_h */ DoesNotAccessMemory,
+ /* mips_splat_w */ DoesNotAccessMemory,
+ /* mips_splati_b */ DoesNotAccessMemory,
+ /* mips_splati_d */ DoesNotAccessMemory,
+ /* mips_splati_h */ DoesNotAccessMemory,
+ /* mips_splati_w */ DoesNotAccessMemory,
+ /* mips_sra_b */ DoesNotAccessMemory,
+ /* mips_sra_d */ DoesNotAccessMemory,
+ /* mips_sra_h */ DoesNotAccessMemory,
+ /* mips_sra_w */ DoesNotAccessMemory,
+ /* mips_srai_b */ DoesNotAccessMemory,
+ /* mips_srai_d */ DoesNotAccessMemory,
+ /* mips_srai_h */ DoesNotAccessMemory,
+ /* mips_srai_w */ DoesNotAccessMemory,
+ /* mips_srar_b */ DoesNotAccessMemory,
+ /* mips_srar_d */ DoesNotAccessMemory,
+ /* mips_srar_h */ DoesNotAccessMemory,
+ /* mips_srar_w */ DoesNotAccessMemory,
+ /* mips_srari_b */ DoesNotAccessMemory,
+ /* mips_srari_d */ DoesNotAccessMemory,
+ /* mips_srari_h */ DoesNotAccessMemory,
+ /* mips_srari_w */ DoesNotAccessMemory,
+ /* mips_srl_b */ DoesNotAccessMemory,
+ /* mips_srl_d */ DoesNotAccessMemory,
+ /* mips_srl_h */ DoesNotAccessMemory,
+ /* mips_srl_w */ DoesNotAccessMemory,
+ /* mips_srli_b */ DoesNotAccessMemory,
+ /* mips_srli_d */ DoesNotAccessMemory,
+ /* mips_srli_h */ DoesNotAccessMemory,
+ /* mips_srli_w */ DoesNotAccessMemory,
+ /* mips_srlr_b */ DoesNotAccessMemory,
+ /* mips_srlr_d */ DoesNotAccessMemory,
+ /* mips_srlr_h */ DoesNotAccessMemory,
+ /* mips_srlr_w */ DoesNotAccessMemory,
+ /* mips_srlri_b */ DoesNotAccessMemory,
+ /* mips_srlri_d */ DoesNotAccessMemory,
+ /* mips_srlri_h */ DoesNotAccessMemory,
+ /* mips_srlri_w */ DoesNotAccessMemory,
+ /* mips_st_b */ OnlyAccessesArgumentPointees,
+ /* mips_st_d */ OnlyAccessesArgumentPointees,
+ /* mips_st_h */ OnlyAccessesArgumentPointees,
+ /* mips_st_w */ OnlyAccessesArgumentPointees,
+ /* mips_subq_ph */ DoesNotAccessMemory,
+ /* mips_subq_s_ph */ DoesNotAccessMemory,
+ /* mips_subq_s_w */ UnknownModRefBehavior,
+ /* mips_subqh_ph */ DoesNotAccessMemory,
+ /* mips_subqh_r_ph */ DoesNotAccessMemory,
+ /* mips_subqh_r_w */ DoesNotAccessMemory,
+ /* mips_subqh_w */ DoesNotAccessMemory,
+ /* mips_subs_s_b */ DoesNotAccessMemory,
+ /* mips_subs_s_d */ DoesNotAccessMemory,
+ /* mips_subs_s_h */ DoesNotAccessMemory,
+ /* mips_subs_s_w */ DoesNotAccessMemory,
+ /* mips_subs_u_b */ DoesNotAccessMemory,
+ /* mips_subs_u_d */ DoesNotAccessMemory,
+ /* mips_subs_u_h */ DoesNotAccessMemory,
+ /* mips_subs_u_w */ DoesNotAccessMemory,
+ /* mips_subsus_u_b */ DoesNotAccessMemory,
+ /* mips_subsus_u_d */ DoesNotAccessMemory,
+ /* mips_subsus_u_h */ DoesNotAccessMemory,
+ /* mips_subsus_u_w */ DoesNotAccessMemory,
+ /* mips_subsuu_s_b */ DoesNotAccessMemory,
+ /* mips_subsuu_s_d */ DoesNotAccessMemory,
+ /* mips_subsuu_s_h */ DoesNotAccessMemory,
+ /* mips_subsuu_s_w */ DoesNotAccessMemory,
+ /* mips_subu_ph */ UnknownModRefBehavior,
+ /* mips_subu_qb */ DoesNotAccessMemory,
+ /* mips_subu_s_ph */ UnknownModRefBehavior,
+ /* mips_subu_s_qb */ DoesNotAccessMemory,
+ /* mips_subuh_qb */ DoesNotAccessMemory,
+ /* mips_subuh_r_qb */ DoesNotAccessMemory,
+ /* mips_subv_b */ DoesNotAccessMemory,
+ /* mips_subv_d */ DoesNotAccessMemory,
+ /* mips_subv_h */ DoesNotAccessMemory,
+ /* mips_subv_w */ DoesNotAccessMemory,
+ /* mips_subvi_b */ DoesNotAccessMemory,
+ /* mips_subvi_d */ DoesNotAccessMemory,
+ /* mips_subvi_h */ DoesNotAccessMemory,
+ /* mips_subvi_w */ DoesNotAccessMemory,
+ /* mips_vshf_b */ DoesNotAccessMemory,
+ /* mips_vshf_d */ DoesNotAccessMemory,
+ /* mips_vshf_h */ DoesNotAccessMemory,
+ /* mips_vshf_w */ DoesNotAccessMemory,
+ /* mips_wrdsp */ UnknownModRefBehavior,
+ /* mips_xor_v */ DoesNotAccessMemory,
+ /* mips_xori_b */ DoesNotAccessMemory,
+ /* nearbyint */ DoesNotAccessMemory,
+ /* nvvm_abs_i */ DoesNotAccessMemory,
+ /* nvvm_abs_ll */ DoesNotAccessMemory,
+ /* nvvm_add_rm_d */ DoesNotAccessMemory,
+ /* nvvm_add_rm_f */ DoesNotAccessMemory,
+ /* nvvm_add_rm_ftz_f */ DoesNotAccessMemory,
+ /* nvvm_add_rn_d */ DoesNotAccessMemory,
+ /* nvvm_add_rn_f */ DoesNotAccessMemory,
+ /* nvvm_add_rn_ftz_f */ DoesNotAccessMemory,
+ /* nvvm_add_rp_d */ DoesNotAccessMemory,
+ /* nvvm_add_rp_f */ DoesNotAccessMemory,
+ /* nvvm_add_rp_ftz_f */ DoesNotAccessMemory,
+ /* nvvm_add_rz_d */ DoesNotAccessMemory,
+ /* nvvm_add_rz_f */ DoesNotAccessMemory,
+ /* nvvm_add_rz_ftz_f */ DoesNotAccessMemory,
+ /* nvvm_atomic_load_add_f32 */ OnlyAccessesArgumentPointees,
+ /* nvvm_atomic_load_dec_32 */ OnlyAccessesArgumentPointees,
+ /* nvvm_atomic_load_inc_32 */ OnlyAccessesArgumentPointees,
+ /* nvvm_barrier0 */ UnknownModRefBehavior,
+ /* nvvm_barrier0_and */ UnknownModRefBehavior,
+ /* nvvm_barrier0_or */ UnknownModRefBehavior,
+ /* nvvm_barrier0_popc */ UnknownModRefBehavior,
+ /* nvvm_bitcast_d2ll */ DoesNotAccessMemory,
+ /* nvvm_bitcast_f2i */ DoesNotAccessMemory,
+ /* nvvm_bitcast_i2f */ DoesNotAccessMemory,
+ /* nvvm_bitcast_ll2d */ DoesNotAccessMemory,
+ /* nvvm_brev32 */ DoesNotAccessMemory,
+ /* nvvm_brev64 */ DoesNotAccessMemory,
+ /* nvvm_ceil_d */ DoesNotAccessMemory,
+ /* nvvm_ceil_f */ DoesNotAccessMemory,
+ /* nvvm_ceil_ftz_f */ DoesNotAccessMemory,
+ /* nvvm_clz_i */ DoesNotAccessMemory,
+ /* nvvm_clz_ll */ DoesNotAccessMemory,
+ /* nvvm_compiler_error */ UnknownModRefBehavior,
+ /* nvvm_compiler_warn */ UnknownModRefBehavior,
+ /* nvvm_cos_approx_f */ DoesNotAccessMemory,
+ /* nvvm_cos_approx_ftz_f */ DoesNotAccessMemory,
+ /* nvvm_d2f_rm */ DoesNotAccessMemory,
+ /* nvvm_d2f_rm_ftz */ DoesNotAccessMemory,
+ /* nvvm_d2f_rn */ DoesNotAccessMemory,
+ /* nvvm_d2f_rn_ftz */ DoesNotAccessMemory,
+ /* nvvm_d2f_rp */ DoesNotAccessMemory,
+ /* nvvm_d2f_rp_ftz */ DoesNotAccessMemory,
+ /* nvvm_d2f_rz */ DoesNotAccessMemory,
+ /* nvvm_d2f_rz_ftz */ DoesNotAccessMemory,
+ /* nvvm_d2i_hi */ DoesNotAccessMemory,
+ /* nvvm_d2i_lo */ DoesNotAccessMemory,
+ /* nvvm_d2i_rm */ DoesNotAccessMemory,
+ /* nvvm_d2i_rn */ DoesNotAccessMemory,
+ /* nvvm_d2i_rp */ DoesNotAccessMemory,
+ /* nvvm_d2i_rz */ DoesNotAccessMemory,
+ /* nvvm_d2ll_rm */ DoesNotAccessMemory,
+ /* nvvm_d2ll_rn */ DoesNotAccessMemory,
+ /* nvvm_d2ll_rp */ DoesNotAccessMemory,
+ /* nvvm_d2ll_rz */ DoesNotAccessMemory,
+ /* nvvm_d2ui_rm */ DoesNotAccessMemory,
+ /* nvvm_d2ui_rn */ DoesNotAccessMemory,
+ /* nvvm_d2ui_rp */ DoesNotAccessMemory,
+ /* nvvm_d2ui_rz */ DoesNotAccessMemory,
+ /* nvvm_d2ull_rm */ DoesNotAccessMemory,
+ /* nvvm_d2ull_rn */ DoesNotAccessMemory,
+ /* nvvm_d2ull_rp */ DoesNotAccessMemory,
+ /* nvvm_d2ull_rz */ DoesNotAccessMemory,
+ /* nvvm_div_approx_f */ DoesNotAccessMemory,
+ /* nvvm_div_approx_ftz_f */ DoesNotAccessMemory,
+ /* nvvm_div_rm_d */ DoesNotAccessMemory,
+ /* nvvm_div_rm_f */ DoesNotAccessMemory,
+ /* nvvm_div_rm_ftz_f */ DoesNotAccessMemory,
+ /* nvvm_div_rn_d */ DoesNotAccessMemory,
+ /* nvvm_div_rn_f */ DoesNotAccessMemory,
+ /* nvvm_div_rn_ftz_f */ DoesNotAccessMemory,
+ /* nvvm_div_rp_d */ DoesNotAccessMemory,
+ /* nvvm_div_rp_f */ DoesNotAccessMemory,
+ /* nvvm_div_rp_ftz_f */ DoesNotAccessMemory,
+ /* nvvm_div_rz_d */ DoesNotAccessMemory,
+ /* nvvm_div_rz_f */ DoesNotAccessMemory,
+ /* nvvm_div_rz_ftz_f */ DoesNotAccessMemory,
+ /* nvvm_ex2_approx_d */ DoesNotAccessMemory,
+ /* nvvm_ex2_approx_f */ DoesNotAccessMemory,
+ /* nvvm_ex2_approx_ftz_f */ DoesNotAccessMemory,
+ /* nvvm_f2h_rn */ DoesNotAccessMemory,
+ /* nvvm_f2h_rn_ftz */ DoesNotAccessMemory,
+ /* nvvm_f2i_rm */ DoesNotAccessMemory,
+ /* nvvm_f2i_rm_ftz */ DoesNotAccessMemory,
+ /* nvvm_f2i_rn */ DoesNotAccessMemory,
+ /* nvvm_f2i_rn_ftz */ DoesNotAccessMemory,
+ /* nvvm_f2i_rp */ DoesNotAccessMemory,
+ /* nvvm_f2i_rp_ftz */ DoesNotAccessMemory,
+ /* nvvm_f2i_rz */ DoesNotAccessMemory,
+ /* nvvm_f2i_rz_ftz */ DoesNotAccessMemory,
+ /* nvvm_f2ll_rm */ DoesNotAccessMemory,
+ /* nvvm_f2ll_rm_ftz */ DoesNotAccessMemory,
+ /* nvvm_f2ll_rn */ DoesNotAccessMemory,
+ /* nvvm_f2ll_rn_ftz */ DoesNotAccessMemory,
+ /* nvvm_f2ll_rp */ DoesNotAccessMemory,
+ /* nvvm_f2ll_rp_ftz */ DoesNotAccessMemory,
+ /* nvvm_f2ll_rz */ DoesNotAccessMemory,
+ /* nvvm_f2ll_rz_ftz */ DoesNotAccessMemory,
+ /* nvvm_f2ui_rm */ DoesNotAccessMemory,
+ /* nvvm_f2ui_rm_ftz */ DoesNotAccessMemory,
+ /* nvvm_f2ui_rn */ DoesNotAccessMemory,
+ /* nvvm_f2ui_rn_ftz */ DoesNotAccessMemory,
+ /* nvvm_f2ui_rp */ DoesNotAccessMemory,
+ /* nvvm_f2ui_rp_ftz */ DoesNotAccessMemory,
+ /* nvvm_f2ui_rz */ DoesNotAccessMemory,
+ /* nvvm_f2ui_rz_ftz */ DoesNotAccessMemory,
+ /* nvvm_f2ull_rm */ DoesNotAccessMemory,
+ /* nvvm_f2ull_rm_ftz */ DoesNotAccessMemory,
+ /* nvvm_f2ull_rn */ DoesNotAccessMemory,
+ /* nvvm_f2ull_rn_ftz */ DoesNotAccessMemory,
+ /* nvvm_f2ull_rp */ DoesNotAccessMemory,
+ /* nvvm_f2ull_rp_ftz */ DoesNotAccessMemory,
+ /* nvvm_f2ull_rz */ DoesNotAccessMemory,
+ /* nvvm_f2ull_rz_ftz */ DoesNotAccessMemory,
+ /* nvvm_fabs_d */ DoesNotAccessMemory,
+ /* nvvm_fabs_f */ DoesNotAccessMemory,
+ /* nvvm_fabs_ftz_f */ DoesNotAccessMemory,
+ /* nvvm_floor_d */ DoesNotAccessMemory,
+ /* nvvm_floor_f */ DoesNotAccessMemory,
+ /* nvvm_floor_ftz_f */ DoesNotAccessMemory,
+ /* nvvm_fma_rm_d */ DoesNotAccessMemory,
+ /* nvvm_fma_rm_f */ DoesNotAccessMemory,
+ /* nvvm_fma_rm_ftz_f */ DoesNotAccessMemory,
+ /* nvvm_fma_rn_d */ DoesNotAccessMemory,
+ /* nvvm_fma_rn_f */ DoesNotAccessMemory,
+ /* nvvm_fma_rn_ftz_f */ DoesNotAccessMemory,
+ /* nvvm_fma_rp_d */ DoesNotAccessMemory,
+ /* nvvm_fma_rp_f */ DoesNotAccessMemory,
+ /* nvvm_fma_rp_ftz_f */ DoesNotAccessMemory,
+ /* nvvm_fma_rz_d */ DoesNotAccessMemory,
+ /* nvvm_fma_rz_f */ DoesNotAccessMemory,
+ /* nvvm_fma_rz_ftz_f */ DoesNotAccessMemory,
+ /* nvvm_fmax_d */ DoesNotAccessMemory,
+ /* nvvm_fmax_f */ DoesNotAccessMemory,
+ /* nvvm_fmax_ftz_f */ DoesNotAccessMemory,
+ /* nvvm_fmin_d */ DoesNotAccessMemory,
+ /* nvvm_fmin_f */ DoesNotAccessMemory,
+ /* nvvm_fmin_ftz_f */ DoesNotAccessMemory,
+ /* nvvm_h2f */ DoesNotAccessMemory,
+ /* nvvm_i2d_rm */ DoesNotAccessMemory,
+ /* nvvm_i2d_rn */ DoesNotAccessMemory,
+ /* nvvm_i2d_rp */ DoesNotAccessMemory,
+ /* nvvm_i2d_rz */ DoesNotAccessMemory,
+ /* nvvm_i2f_rm */ DoesNotAccessMemory,
+ /* nvvm_i2f_rn */ DoesNotAccessMemory,
+ /* nvvm_i2f_rp */ DoesNotAccessMemory,
+ /* nvvm_i2f_rz */ DoesNotAccessMemory,
+ /* nvvm_isspacep_const */ DoesNotAccessMemory,
+ /* nvvm_isspacep_global */ DoesNotAccessMemory,
+ /* nvvm_isspacep_local */ DoesNotAccessMemory,
+ /* nvvm_isspacep_shared */ DoesNotAccessMemory,
+ /* nvvm_istypep_sampler */ DoesNotAccessMemory,
+ /* nvvm_istypep_surface */ DoesNotAccessMemory,
+ /* nvvm_istypep_texture */ DoesNotAccessMemory,
+ /* nvvm_ldg_global_f */ OnlyReadsMemory,
+ /* nvvm_ldg_global_i */ OnlyReadsMemory,
+ /* nvvm_ldg_global_p */ OnlyReadsMemory,
+ /* nvvm_ldu_global_f */ OnlyReadsMemory,
+ /* nvvm_ldu_global_i */ OnlyReadsMemory,
+ /* nvvm_ldu_global_p */ OnlyReadsMemory,
+ /* nvvm_lg2_approx_d */ DoesNotAccessMemory,
+ /* nvvm_lg2_approx_f */ DoesNotAccessMemory,
+ /* nvvm_lg2_approx_ftz_f */ DoesNotAccessMemory,
+ /* nvvm_ll2d_rm */ DoesNotAccessMemory,
+ /* nvvm_ll2d_rn */ DoesNotAccessMemory,
+ /* nvvm_ll2d_rp */ DoesNotAccessMemory,
+ /* nvvm_ll2d_rz */ DoesNotAccessMemory,
+ /* nvvm_ll2f_rm */ DoesNotAccessMemory,
+ /* nvvm_ll2f_rn */ DoesNotAccessMemory,
+ /* nvvm_ll2f_rp */ DoesNotAccessMemory,
+ /* nvvm_ll2f_rz */ DoesNotAccessMemory,
+ /* nvvm_lohi_i2d */ DoesNotAccessMemory,
+ /* nvvm_max_i */ DoesNotAccessMemory,
+ /* nvvm_max_ll */ DoesNotAccessMemory,
+ /* nvvm_max_ui */ DoesNotAccessMemory,
+ /* nvvm_max_ull */ DoesNotAccessMemory,
+ /* nvvm_membar_cta */ UnknownModRefBehavior,
+ /* nvvm_membar_gl */ UnknownModRefBehavior,
+ /* nvvm_membar_sys */ UnknownModRefBehavior,
+ /* nvvm_min_i */ DoesNotAccessMemory,
+ /* nvvm_min_ll */ DoesNotAccessMemory,
+ /* nvvm_min_ui */ DoesNotAccessMemory,
+ /* nvvm_min_ull */ DoesNotAccessMemory,
+ /* nvvm_move_double */ DoesNotAccessMemory,
+ /* nvvm_move_float */ DoesNotAccessMemory,
+ /* nvvm_move_i16 */ DoesNotAccessMemory,
+ /* nvvm_move_i32 */ DoesNotAccessMemory,
+ /* nvvm_move_i64 */ DoesNotAccessMemory,
+ /* nvvm_move_ptr */ DoesNotAccessMemory,
+ /* nvvm_mul24_i */ DoesNotAccessMemory,
+ /* nvvm_mul24_ui */ DoesNotAccessMemory,
+ /* nvvm_mul_rm_d */ DoesNotAccessMemory,
+ /* nvvm_mul_rm_f */ DoesNotAccessMemory,
+ /* nvvm_mul_rm_ftz_f */ DoesNotAccessMemory,
+ /* nvvm_mul_rn_d */ DoesNotAccessMemory,
+ /* nvvm_mul_rn_f */ DoesNotAccessMemory,
+ /* nvvm_mul_rn_ftz_f */ DoesNotAccessMemory,
+ /* nvvm_mul_rp_d */ DoesNotAccessMemory,
+ /* nvvm_mul_rp_f */ DoesNotAccessMemory,
+ /* nvvm_mul_rp_ftz_f */ DoesNotAccessMemory,
+ /* nvvm_mul_rz_d */ DoesNotAccessMemory,
+ /* nvvm_mul_rz_f */ DoesNotAccessMemory,
+ /* nvvm_mul_rz_ftz_f */ DoesNotAccessMemory,
+ /* nvvm_mulhi_i */ DoesNotAccessMemory,
+ /* nvvm_mulhi_ll */ DoesNotAccessMemory,
+ /* nvvm_mulhi_ui */ DoesNotAccessMemory,
+ /* nvvm_mulhi_ull */ DoesNotAccessMemory,
+ /* nvvm_popc_i */ DoesNotAccessMemory,
+ /* nvvm_popc_ll */ DoesNotAccessMemory,
+ /* nvvm_prmt */ DoesNotAccessMemory,
+ /* nvvm_ptr_constant_to_gen */ DoesNotAccessMemory,
+ /* nvvm_ptr_gen_to_constant */ DoesNotAccessMemory,
+ /* nvvm_ptr_gen_to_global */ DoesNotAccessMemory,
+ /* nvvm_ptr_gen_to_local */ DoesNotAccessMemory,
+ /* nvvm_ptr_gen_to_param */ DoesNotAccessMemory,
+ /* nvvm_ptr_gen_to_shared */ DoesNotAccessMemory,
+ /* nvvm_ptr_global_to_gen */ DoesNotAccessMemory,
+ /* nvvm_ptr_local_to_gen */ DoesNotAccessMemory,
+ /* nvvm_ptr_shared_to_gen */ DoesNotAccessMemory,
+ /* nvvm_rcp_approx_ftz_d */ DoesNotAccessMemory,
+ /* nvvm_rcp_rm_d */ DoesNotAccessMemory,
+ /* nvvm_rcp_rm_f */ DoesNotAccessMemory,
+ /* nvvm_rcp_rm_ftz_f */ DoesNotAccessMemory,
+ /* nvvm_rcp_rn_d */ DoesNotAccessMemory,
+ /* nvvm_rcp_rn_f */ DoesNotAccessMemory,
+ /* nvvm_rcp_rn_ftz_f */ DoesNotAccessMemory,
+ /* nvvm_rcp_rp_d */ DoesNotAccessMemory,
+ /* nvvm_rcp_rp_f */ DoesNotAccessMemory,
+ /* nvvm_rcp_rp_ftz_f */ DoesNotAccessMemory,
+ /* nvvm_rcp_rz_d */ DoesNotAccessMemory,
+ /* nvvm_rcp_rz_f */ DoesNotAccessMemory,
+ /* nvvm_rcp_rz_ftz_f */ DoesNotAccessMemory,
+ /* nvvm_read_ptx_sreg_ctaid_x */ DoesNotAccessMemory,
+ /* nvvm_read_ptx_sreg_ctaid_y */ DoesNotAccessMemory,
+ /* nvvm_read_ptx_sreg_ctaid_z */ DoesNotAccessMemory,
+ /* nvvm_read_ptx_sreg_envreg0 */ DoesNotAccessMemory,
+ /* nvvm_read_ptx_sreg_envreg1 */ DoesNotAccessMemory,
+ /* nvvm_read_ptx_sreg_envreg10 */ DoesNotAccessMemory,
+ /* nvvm_read_ptx_sreg_envreg11 */ DoesNotAccessMemory,
+ /* nvvm_read_ptx_sreg_envreg12 */ DoesNotAccessMemory,
+ /* nvvm_read_ptx_sreg_envreg13 */ DoesNotAccessMemory,
+ /* nvvm_read_ptx_sreg_envreg14 */ DoesNotAccessMemory,
+ /* nvvm_read_ptx_sreg_envreg15 */ DoesNotAccessMemory,
+ /* nvvm_read_ptx_sreg_envreg16 */ DoesNotAccessMemory,
+ /* nvvm_read_ptx_sreg_envreg17 */ DoesNotAccessMemory,
+ /* nvvm_read_ptx_sreg_envreg18 */ DoesNotAccessMemory,
+ /* nvvm_read_ptx_sreg_envreg19 */ DoesNotAccessMemory,
+ /* nvvm_read_ptx_sreg_envreg2 */ DoesNotAccessMemory,
+ /* nvvm_read_ptx_sreg_envreg20 */ DoesNotAccessMemory,
+ /* nvvm_read_ptx_sreg_envreg21 */ DoesNotAccessMemory,
+ /* nvvm_read_ptx_sreg_envreg22 */ DoesNotAccessMemory,
+ /* nvvm_read_ptx_sreg_envreg23 */ DoesNotAccessMemory,
+ /* nvvm_read_ptx_sreg_envreg24 */ DoesNotAccessMemory,
+ /* nvvm_read_ptx_sreg_envreg25 */ DoesNotAccessMemory,
+ /* nvvm_read_ptx_sreg_envreg26 */ DoesNotAccessMemory,
+ /* nvvm_read_ptx_sreg_envreg27 */ DoesNotAccessMemory,
+ /* nvvm_read_ptx_sreg_envreg28 */ DoesNotAccessMemory,
+ /* nvvm_read_ptx_sreg_envreg29 */ DoesNotAccessMemory,
+ /* nvvm_read_ptx_sreg_envreg3 */ DoesNotAccessMemory,
+ /* nvvm_read_ptx_sreg_envreg30 */ DoesNotAccessMemory,
+ /* nvvm_read_ptx_sreg_envreg31 */ DoesNotAccessMemory,
+ /* nvvm_read_ptx_sreg_envreg4 */ DoesNotAccessMemory,
+ /* nvvm_read_ptx_sreg_envreg5 */ DoesNotAccessMemory,
+ /* nvvm_read_ptx_sreg_envreg6 */ DoesNotAccessMemory,
+ /* nvvm_read_ptx_sreg_envreg7 */ DoesNotAccessMemory,
+ /* nvvm_read_ptx_sreg_envreg8 */ DoesNotAccessMemory,
+ /* nvvm_read_ptx_sreg_envreg9 */ DoesNotAccessMemory,
+ /* nvvm_read_ptx_sreg_nctaid_x */ DoesNotAccessMemory,
+ /* nvvm_read_ptx_sreg_nctaid_y */ DoesNotAccessMemory,
+ /* nvvm_read_ptx_sreg_nctaid_z */ DoesNotAccessMemory,
+ /* nvvm_read_ptx_sreg_ntid_x */ DoesNotAccessMemory,
+ /* nvvm_read_ptx_sreg_ntid_y */ DoesNotAccessMemory,
+ /* nvvm_read_ptx_sreg_ntid_z */ DoesNotAccessMemory,
+ /* nvvm_read_ptx_sreg_tid_x */ DoesNotAccessMemory,
+ /* nvvm_read_ptx_sreg_tid_y */ DoesNotAccessMemory,
+ /* nvvm_read_ptx_sreg_tid_z */ DoesNotAccessMemory,
+ /* nvvm_read_ptx_sreg_warpsize */ DoesNotAccessMemory,
+ /* nvvm_reflect */ DoesNotAccessMemory,
+ /* nvvm_rotate_b32 */ DoesNotAccessMemory,
+ /* nvvm_rotate_b64 */ DoesNotAccessMemory,
+ /* nvvm_rotate_right_b64 */ DoesNotAccessMemory,
+ /* nvvm_round_d */ DoesNotAccessMemory,
+ /* nvvm_round_f */ DoesNotAccessMemory,
+ /* nvvm_round_ftz_f */ DoesNotAccessMemory,
+ /* nvvm_rsqrt_approx_d */ DoesNotAccessMemory,
+ /* nvvm_rsqrt_approx_f */ DoesNotAccessMemory,
+ /* nvvm_rsqrt_approx_ftz_f */ DoesNotAccessMemory,
+ /* nvvm_sad_i */ DoesNotAccessMemory,
+ /* nvvm_sad_ui */ DoesNotAccessMemory,
+ /* nvvm_saturate_d */ DoesNotAccessMemory,
+ /* nvvm_saturate_f */ DoesNotAccessMemory,
+ /* nvvm_saturate_ftz_f */ DoesNotAccessMemory,
+ /* nvvm_sin_approx_f */ DoesNotAccessMemory,
+ /* nvvm_sin_approx_ftz_f */ DoesNotAccessMemory,
+ /* nvvm_sqrt_approx_f */ DoesNotAccessMemory,
+ /* nvvm_sqrt_approx_ftz_f */ DoesNotAccessMemory,
+ /* nvvm_sqrt_f */ DoesNotAccessMemory,
+ /* nvvm_sqrt_rm_d */ DoesNotAccessMemory,
+ /* nvvm_sqrt_rm_f */ DoesNotAccessMemory,
+ /* nvvm_sqrt_rm_ftz_f */ DoesNotAccessMemory,
+ /* nvvm_sqrt_rn_d */ DoesNotAccessMemory,
+ /* nvvm_sqrt_rn_f */ DoesNotAccessMemory,
+ /* nvvm_sqrt_rn_ftz_f */ DoesNotAccessMemory,
+ /* nvvm_sqrt_rp_d */ DoesNotAccessMemory,
+ /* nvvm_sqrt_rp_f */ DoesNotAccessMemory,
+ /* nvvm_sqrt_rp_ftz_f */ DoesNotAccessMemory,
+ /* nvvm_sqrt_rz_d */ DoesNotAccessMemory,
+ /* nvvm_sqrt_rz_f */ DoesNotAccessMemory,
+ /* nvvm_sqrt_rz_ftz_f */ DoesNotAccessMemory,
+ /* nvvm_suld_1d_array_i16_clamp */ UnknownModRefBehavior,
+ /* nvvm_suld_1d_array_i16_trap */ UnknownModRefBehavior,
+ /* nvvm_suld_1d_array_i16_zero */ UnknownModRefBehavior,
+ /* nvvm_suld_1d_array_i32_clamp */ UnknownModRefBehavior,
+ /* nvvm_suld_1d_array_i32_trap */ UnknownModRefBehavior,
+ /* nvvm_suld_1d_array_i32_zero */ UnknownModRefBehavior,
+ /* nvvm_suld_1d_array_i64_clamp */ UnknownModRefBehavior,
+ /* nvvm_suld_1d_array_i64_trap */ UnknownModRefBehavior,
+ /* nvvm_suld_1d_array_i64_zero */ UnknownModRefBehavior,
+ /* nvvm_suld_1d_array_i8_clamp */ UnknownModRefBehavior,
+ /* nvvm_suld_1d_array_i8_trap */ UnknownModRefBehavior,
+ /* nvvm_suld_1d_array_i8_zero */ UnknownModRefBehavior,
+ /* nvvm_suld_1d_array_v2i16_clamp */ UnknownModRefBehavior,
+ /* nvvm_suld_1d_array_v2i16_trap */ UnknownModRefBehavior,
+ /* nvvm_suld_1d_array_v2i16_zero */ UnknownModRefBehavior,
+ /* nvvm_suld_1d_array_v2i32_clamp */ UnknownModRefBehavior,
+ /* nvvm_suld_1d_array_v2i32_trap */ UnknownModRefBehavior,
+ /* nvvm_suld_1d_array_v2i32_zero */ UnknownModRefBehavior,
+ /* nvvm_suld_1d_array_v2i64_clamp */ UnknownModRefBehavior,
+ /* nvvm_suld_1d_array_v2i64_trap */ UnknownModRefBehavior,
+ /* nvvm_suld_1d_array_v2i64_zero */ UnknownModRefBehavior,
+ /* nvvm_suld_1d_array_v2i8_clamp */ UnknownModRefBehavior,
+ /* nvvm_suld_1d_array_v2i8_trap */ UnknownModRefBehavior,
+ /* nvvm_suld_1d_array_v2i8_zero */ UnknownModRefBehavior,
+ /* nvvm_suld_1d_array_v4i16_clamp */ UnknownModRefBehavior,
+ /* nvvm_suld_1d_array_v4i16_trap */ UnknownModRefBehavior,
+ /* nvvm_suld_1d_array_v4i16_zero */ UnknownModRefBehavior,
+ /* nvvm_suld_1d_array_v4i32_clamp */ UnknownModRefBehavior,
+ /* nvvm_suld_1d_array_v4i32_trap */ UnknownModRefBehavior,
+ /* nvvm_suld_1d_array_v4i32_zero */ UnknownModRefBehavior,
+ /* nvvm_suld_1d_array_v4i8_clamp */ UnknownModRefBehavior,
+ /* nvvm_suld_1d_array_v4i8_trap */ UnknownModRefBehavior,
+ /* nvvm_suld_1d_array_v4i8_zero */ UnknownModRefBehavior,
+ /* nvvm_suld_1d_i16_clamp */ UnknownModRefBehavior,
+ /* nvvm_suld_1d_i16_trap */ UnknownModRefBehavior,
+ /* nvvm_suld_1d_i16_zero */ UnknownModRefBehavior,
+ /* nvvm_suld_1d_i32_clamp */ UnknownModRefBehavior,
+ /* nvvm_suld_1d_i32_trap */ UnknownModRefBehavior,
+ /* nvvm_suld_1d_i32_zero */ UnknownModRefBehavior,
+ /* nvvm_suld_1d_i64_clamp */ UnknownModRefBehavior,
+ /* nvvm_suld_1d_i64_trap */ UnknownModRefBehavior,
+ /* nvvm_suld_1d_i64_zero */ UnknownModRefBehavior,
+ /* nvvm_suld_1d_i8_clamp */ UnknownModRefBehavior,
+ /* nvvm_suld_1d_i8_trap */ UnknownModRefBehavior,
+ /* nvvm_suld_1d_i8_zero */ UnknownModRefBehavior,
+ /* nvvm_suld_1d_v2i16_clamp */ UnknownModRefBehavior,
+ /* nvvm_suld_1d_v2i16_trap */ UnknownModRefBehavior,
+ /* nvvm_suld_1d_v2i16_zero */ UnknownModRefBehavior,
+ /* nvvm_suld_1d_v2i32_clamp */ UnknownModRefBehavior,
+ /* nvvm_suld_1d_v2i32_trap */ UnknownModRefBehavior,
+ /* nvvm_suld_1d_v2i32_zero */ UnknownModRefBehavior,
+ /* nvvm_suld_1d_v2i64_clamp */ UnknownModRefBehavior,
+ /* nvvm_suld_1d_v2i64_trap */ UnknownModRefBehavior,
+ /* nvvm_suld_1d_v2i64_zero */ UnknownModRefBehavior,
+ /* nvvm_suld_1d_v2i8_clamp */ UnknownModRefBehavior,
+ /* nvvm_suld_1d_v2i8_trap */ UnknownModRefBehavior,
+ /* nvvm_suld_1d_v2i8_zero */ UnknownModRefBehavior,
+ /* nvvm_suld_1d_v4i16_clamp */ UnknownModRefBehavior,
+ /* nvvm_suld_1d_v4i16_trap */ UnknownModRefBehavior,
+ /* nvvm_suld_1d_v4i16_zero */ UnknownModRefBehavior,
+ /* nvvm_suld_1d_v4i32_clamp */ UnknownModRefBehavior,
+ /* nvvm_suld_1d_v4i32_trap */ UnknownModRefBehavior,
+ /* nvvm_suld_1d_v4i32_zero */ UnknownModRefBehavior,
+ /* nvvm_suld_1d_v4i8_clamp */ UnknownModRefBehavior,
+ /* nvvm_suld_1d_v4i8_trap */ UnknownModRefBehavior,
+ /* nvvm_suld_1d_v4i8_zero */ UnknownModRefBehavior,
+ /* nvvm_suld_2d_array_i16_clamp */ UnknownModRefBehavior,
+ /* nvvm_suld_2d_array_i16_trap */ UnknownModRefBehavior,
+ /* nvvm_suld_2d_array_i16_zero */ UnknownModRefBehavior,
+ /* nvvm_suld_2d_array_i32_clamp */ UnknownModRefBehavior,
+ /* nvvm_suld_2d_array_i32_trap */ UnknownModRefBehavior,
+ /* nvvm_suld_2d_array_i32_zero */ UnknownModRefBehavior,
+ /* nvvm_suld_2d_array_i64_clamp */ UnknownModRefBehavior,
+ /* nvvm_suld_2d_array_i64_trap */ UnknownModRefBehavior,
+ /* nvvm_suld_2d_array_i64_zero */ UnknownModRefBehavior,
+ /* nvvm_suld_2d_array_i8_clamp */ UnknownModRefBehavior,
+ /* nvvm_suld_2d_array_i8_trap */ UnknownModRefBehavior,
+ /* nvvm_suld_2d_array_i8_zero */ UnknownModRefBehavior,
+ /* nvvm_suld_2d_array_v2i16_clamp */ UnknownModRefBehavior,
+ /* nvvm_suld_2d_array_v2i16_trap */ UnknownModRefBehavior,
+ /* nvvm_suld_2d_array_v2i16_zero */ UnknownModRefBehavior,
+ /* nvvm_suld_2d_array_v2i32_clamp */ UnknownModRefBehavior,
+ /* nvvm_suld_2d_array_v2i32_trap */ UnknownModRefBehavior,
+ /* nvvm_suld_2d_array_v2i32_zero */ UnknownModRefBehavior,
+ /* nvvm_suld_2d_array_v2i64_clamp */ UnknownModRefBehavior,
+ /* nvvm_suld_2d_array_v2i64_trap */ UnknownModRefBehavior,
+ /* nvvm_suld_2d_array_v2i64_zero */ UnknownModRefBehavior,
+ /* nvvm_suld_2d_array_v2i8_clamp */ UnknownModRefBehavior,
+ /* nvvm_suld_2d_array_v2i8_trap */ UnknownModRefBehavior,
+ /* nvvm_suld_2d_array_v2i8_zero */ UnknownModRefBehavior,
+ /* nvvm_suld_2d_array_v4i16_clamp */ UnknownModRefBehavior,
+ /* nvvm_suld_2d_array_v4i16_trap */ UnknownModRefBehavior,
+ /* nvvm_suld_2d_array_v4i16_zero */ UnknownModRefBehavior,
+ /* nvvm_suld_2d_array_v4i32_clamp */ UnknownModRefBehavior,
+ /* nvvm_suld_2d_array_v4i32_trap */ UnknownModRefBehavior,
+ /* nvvm_suld_2d_array_v4i32_zero */ UnknownModRefBehavior,
+ /* nvvm_suld_2d_array_v4i8_clamp */ UnknownModRefBehavior,
+ /* nvvm_suld_2d_array_v4i8_trap */ UnknownModRefBehavior,
+ /* nvvm_suld_2d_array_v4i8_zero */ UnknownModRefBehavior,
+ /* nvvm_suld_2d_i16_clamp */ UnknownModRefBehavior,
+ /* nvvm_suld_2d_i16_trap */ UnknownModRefBehavior,
+ /* nvvm_suld_2d_i16_zero */ UnknownModRefBehavior,
+ /* nvvm_suld_2d_i32_clamp */ UnknownModRefBehavior,
+ /* nvvm_suld_2d_i32_trap */ UnknownModRefBehavior,
+ /* nvvm_suld_2d_i32_zero */ UnknownModRefBehavior,
+ /* nvvm_suld_2d_i64_clamp */ UnknownModRefBehavior,
+ /* nvvm_suld_2d_i64_trap */ UnknownModRefBehavior,
+ /* nvvm_suld_2d_i64_zero */ UnknownModRefBehavior,
+ /* nvvm_suld_2d_i8_clamp */ UnknownModRefBehavior,
+ /* nvvm_suld_2d_i8_trap */ UnknownModRefBehavior,
+ /* nvvm_suld_2d_i8_zero */ UnknownModRefBehavior,
+ /* nvvm_suld_2d_v2i16_clamp */ UnknownModRefBehavior,
+ /* nvvm_suld_2d_v2i16_trap */ UnknownModRefBehavior,
+ /* nvvm_suld_2d_v2i16_zero */ UnknownModRefBehavior,
+ /* nvvm_suld_2d_v2i32_clamp */ UnknownModRefBehavior,
+ /* nvvm_suld_2d_v2i32_trap */ UnknownModRefBehavior,
+ /* nvvm_suld_2d_v2i32_zero */ UnknownModRefBehavior,
+ /* nvvm_suld_2d_v2i64_clamp */ UnknownModRefBehavior,
+ /* nvvm_suld_2d_v2i64_trap */ UnknownModRefBehavior,
+ /* nvvm_suld_2d_v2i64_zero */ UnknownModRefBehavior,
+ /* nvvm_suld_2d_v2i8_clamp */ UnknownModRefBehavior,
+ /* nvvm_suld_2d_v2i8_trap */ UnknownModRefBehavior,
+ /* nvvm_suld_2d_v2i8_zero */ UnknownModRefBehavior,
+ /* nvvm_suld_2d_v4i16_clamp */ UnknownModRefBehavior,
+ /* nvvm_suld_2d_v4i16_trap */ UnknownModRefBehavior,
+ /* nvvm_suld_2d_v4i16_zero */ UnknownModRefBehavior,
+ /* nvvm_suld_2d_v4i32_clamp */ UnknownModRefBehavior,
+ /* nvvm_suld_2d_v4i32_trap */ UnknownModRefBehavior,
+ /* nvvm_suld_2d_v4i32_zero */ UnknownModRefBehavior,
+ /* nvvm_suld_2d_v4i8_clamp */ UnknownModRefBehavior,
+ /* nvvm_suld_2d_v4i8_trap */ UnknownModRefBehavior,
+ /* nvvm_suld_2d_v4i8_zero */ UnknownModRefBehavior,
+ /* nvvm_suld_3d_i16_clamp */ UnknownModRefBehavior,
+ /* nvvm_suld_3d_i16_trap */ UnknownModRefBehavior,
+ /* nvvm_suld_3d_i16_zero */ UnknownModRefBehavior,
+ /* nvvm_suld_3d_i32_clamp */ UnknownModRefBehavior,
+ /* nvvm_suld_3d_i32_trap */ UnknownModRefBehavior,
+ /* nvvm_suld_3d_i32_zero */ UnknownModRefBehavior,
+ /* nvvm_suld_3d_i64_clamp */ UnknownModRefBehavior,
+ /* nvvm_suld_3d_i64_trap */ UnknownModRefBehavior,
+ /* nvvm_suld_3d_i64_zero */ UnknownModRefBehavior,
+ /* nvvm_suld_3d_i8_clamp */ UnknownModRefBehavior,
+ /* nvvm_suld_3d_i8_trap */ UnknownModRefBehavior,
+ /* nvvm_suld_3d_i8_zero */ UnknownModRefBehavior,
+ /* nvvm_suld_3d_v2i16_clamp */ UnknownModRefBehavior,
+ /* nvvm_suld_3d_v2i16_trap */ UnknownModRefBehavior,
+ /* nvvm_suld_3d_v2i16_zero */ UnknownModRefBehavior,
+ /* nvvm_suld_3d_v2i32_clamp */ UnknownModRefBehavior,
+ /* nvvm_suld_3d_v2i32_trap */ UnknownModRefBehavior,
+ /* nvvm_suld_3d_v2i32_zero */ UnknownModRefBehavior,
+ /* nvvm_suld_3d_v2i64_clamp */ UnknownModRefBehavior,
+ /* nvvm_suld_3d_v2i64_trap */ UnknownModRefBehavior,
+ /* nvvm_suld_3d_v2i64_zero */ UnknownModRefBehavior,
+ /* nvvm_suld_3d_v2i8_clamp */ UnknownModRefBehavior,
+ /* nvvm_suld_3d_v2i8_trap */ UnknownModRefBehavior,
+ /* nvvm_suld_3d_v2i8_zero */ UnknownModRefBehavior,
+ /* nvvm_suld_3d_v4i16_clamp */ UnknownModRefBehavior,
+ /* nvvm_suld_3d_v4i16_trap */ UnknownModRefBehavior,
+ /* nvvm_suld_3d_v4i16_zero */ UnknownModRefBehavior,
+ /* nvvm_suld_3d_v4i32_clamp */ UnknownModRefBehavior,
+ /* nvvm_suld_3d_v4i32_trap */ UnknownModRefBehavior,
+ /* nvvm_suld_3d_v4i32_zero */ UnknownModRefBehavior,
+ /* nvvm_suld_3d_v4i8_clamp */ UnknownModRefBehavior,
+ /* nvvm_suld_3d_v4i8_trap */ UnknownModRefBehavior,
+ /* nvvm_suld_3d_v4i8_zero */ UnknownModRefBehavior,
+ /* nvvm_suq_array_size */ DoesNotAccessMemory,
+ /* nvvm_suq_channel_data_type */ DoesNotAccessMemory,
+ /* nvvm_suq_channel_order */ DoesNotAccessMemory,
+ /* nvvm_suq_depth */ DoesNotAccessMemory,
+ /* nvvm_suq_height */ DoesNotAccessMemory,
+ /* nvvm_suq_width */ DoesNotAccessMemory,
+ /* nvvm_sust_b_1d_array_i16_clamp */ UnknownModRefBehavior,
+ /* nvvm_sust_b_1d_array_i16_trap */ UnknownModRefBehavior,
+ /* nvvm_sust_b_1d_array_i16_zero */ UnknownModRefBehavior,
+ /* nvvm_sust_b_1d_array_i32_clamp */ UnknownModRefBehavior,
+ /* nvvm_sust_b_1d_array_i32_trap */ UnknownModRefBehavior,
+ /* nvvm_sust_b_1d_array_i32_zero */ UnknownModRefBehavior,
+ /* nvvm_sust_b_1d_array_i64_clamp */ UnknownModRefBehavior,
+ /* nvvm_sust_b_1d_array_i64_trap */ UnknownModRefBehavior,
+ /* nvvm_sust_b_1d_array_i64_zero */ UnknownModRefBehavior,
+ /* nvvm_sust_b_1d_array_i8_clamp */ UnknownModRefBehavior,
+ /* nvvm_sust_b_1d_array_i8_trap */ UnknownModRefBehavior,
+ /* nvvm_sust_b_1d_array_i8_zero */ UnknownModRefBehavior,
+ /* nvvm_sust_b_1d_array_v2i16_clamp */ UnknownModRefBehavior,
+ /* nvvm_sust_b_1d_array_v2i16_trap */ UnknownModRefBehavior,
+ /* nvvm_sust_b_1d_array_v2i16_zero */ UnknownModRefBehavior,
+ /* nvvm_sust_b_1d_array_v2i32_clamp */ UnknownModRefBehavior,
+ /* nvvm_sust_b_1d_array_v2i32_trap */ UnknownModRefBehavior,
+ /* nvvm_sust_b_1d_array_v2i32_zero */ UnknownModRefBehavior,
+ /* nvvm_sust_b_1d_array_v2i64_clamp */ UnknownModRefBehavior,
+ /* nvvm_sust_b_1d_array_v2i64_trap */ UnknownModRefBehavior,
+ /* nvvm_sust_b_1d_array_v2i64_zero */ UnknownModRefBehavior,
+ /* nvvm_sust_b_1d_array_v2i8_clamp */ UnknownModRefBehavior,
+ /* nvvm_sust_b_1d_array_v2i8_trap */ UnknownModRefBehavior,
+ /* nvvm_sust_b_1d_array_v2i8_zero */ UnknownModRefBehavior,
+ /* nvvm_sust_b_1d_array_v4i16_clamp */ UnknownModRefBehavior,
+ /* nvvm_sust_b_1d_array_v4i16_trap */ UnknownModRefBehavior,
+ /* nvvm_sust_b_1d_array_v4i16_zero */ UnknownModRefBehavior,
+ /* nvvm_sust_b_1d_array_v4i32_clamp */ UnknownModRefBehavior,
+ /* nvvm_sust_b_1d_array_v4i32_trap */ UnknownModRefBehavior,
+ /* nvvm_sust_b_1d_array_v4i32_zero */ UnknownModRefBehavior,
+ /* nvvm_sust_b_1d_array_v4i8_clamp */ UnknownModRefBehavior,
+ /* nvvm_sust_b_1d_array_v4i8_trap */ UnknownModRefBehavior,
+ /* nvvm_sust_b_1d_array_v4i8_zero */ UnknownModRefBehavior,
+ /* nvvm_sust_b_1d_i16_clamp */ UnknownModRefBehavior,
+ /* nvvm_sust_b_1d_i16_trap */ UnknownModRefBehavior,
+ /* nvvm_sust_b_1d_i16_zero */ UnknownModRefBehavior,
+ /* nvvm_sust_b_1d_i32_clamp */ UnknownModRefBehavior,
+ /* nvvm_sust_b_1d_i32_trap */ UnknownModRefBehavior,
+ /* nvvm_sust_b_1d_i32_zero */ UnknownModRefBehavior,
+ /* nvvm_sust_b_1d_i64_clamp */ UnknownModRefBehavior,
+ /* nvvm_sust_b_1d_i64_trap */ UnknownModRefBehavior,
+ /* nvvm_sust_b_1d_i64_zero */ UnknownModRefBehavior,
+ /* nvvm_sust_b_1d_i8_clamp */ UnknownModRefBehavior,
+ /* nvvm_sust_b_1d_i8_trap */ UnknownModRefBehavior,
+ /* nvvm_sust_b_1d_i8_zero */ UnknownModRefBehavior,
+ /* nvvm_sust_b_1d_v2i16_clamp */ UnknownModRefBehavior,
+ /* nvvm_sust_b_1d_v2i16_trap */ UnknownModRefBehavior,
+ /* nvvm_sust_b_1d_v2i16_zero */ UnknownModRefBehavior,
+ /* nvvm_sust_b_1d_v2i32_clamp */ UnknownModRefBehavior,
+ /* nvvm_sust_b_1d_v2i32_trap */ UnknownModRefBehavior,
+ /* nvvm_sust_b_1d_v2i32_zero */ UnknownModRefBehavior,
+ /* nvvm_sust_b_1d_v2i64_clamp */ UnknownModRefBehavior,
+ /* nvvm_sust_b_1d_v2i64_trap */ UnknownModRefBehavior,
+ /* nvvm_sust_b_1d_v2i64_zero */ UnknownModRefBehavior,
+ /* nvvm_sust_b_1d_v2i8_clamp */ UnknownModRefBehavior,
+ /* nvvm_sust_b_1d_v2i8_trap */ UnknownModRefBehavior,
+ /* nvvm_sust_b_1d_v2i8_zero */ UnknownModRefBehavior,
+ /* nvvm_sust_b_1d_v4i16_clamp */ UnknownModRefBehavior,
+ /* nvvm_sust_b_1d_v4i16_trap */ UnknownModRefBehavior,
+ /* nvvm_sust_b_1d_v4i16_zero */ UnknownModRefBehavior,
+ /* nvvm_sust_b_1d_v4i32_clamp */ UnknownModRefBehavior,
+ /* nvvm_sust_b_1d_v4i32_trap */ UnknownModRefBehavior,
+ /* nvvm_sust_b_1d_v4i32_zero */ UnknownModRefBehavior,
+ /* nvvm_sust_b_1d_v4i8_clamp */ UnknownModRefBehavior,
+ /* nvvm_sust_b_1d_v4i8_trap */ UnknownModRefBehavior,
+ /* nvvm_sust_b_1d_v4i8_zero */ UnknownModRefBehavior,
+ /* nvvm_sust_b_2d_array_i16_clamp */ UnknownModRefBehavior,
+ /* nvvm_sust_b_2d_array_i16_trap */ UnknownModRefBehavior,
+ /* nvvm_sust_b_2d_array_i16_zero */ UnknownModRefBehavior,
+ /* nvvm_sust_b_2d_array_i32_clamp */ UnknownModRefBehavior,
+ /* nvvm_sust_b_2d_array_i32_trap */ UnknownModRefBehavior,
+ /* nvvm_sust_b_2d_array_i32_zero */ UnknownModRefBehavior,
+ /* nvvm_sust_b_2d_array_i64_clamp */ UnknownModRefBehavior,
+ /* nvvm_sust_b_2d_array_i64_trap */ UnknownModRefBehavior,
+ /* nvvm_sust_b_2d_array_i64_zero */ UnknownModRefBehavior,
+ /* nvvm_sust_b_2d_array_i8_clamp */ UnknownModRefBehavior,
+ /* nvvm_sust_b_2d_array_i8_trap */ UnknownModRefBehavior,
+ /* nvvm_sust_b_2d_array_i8_zero */ UnknownModRefBehavior,
+ /* nvvm_sust_b_2d_array_v2i16_clamp */ UnknownModRefBehavior,
+ /* nvvm_sust_b_2d_array_v2i16_trap */ UnknownModRefBehavior,
+ /* nvvm_sust_b_2d_array_v2i16_zero */ UnknownModRefBehavior,
+ /* nvvm_sust_b_2d_array_v2i32_clamp */ UnknownModRefBehavior,
+ /* nvvm_sust_b_2d_array_v2i32_trap */ UnknownModRefBehavior,
+ /* nvvm_sust_b_2d_array_v2i32_zero */ UnknownModRefBehavior,
+ /* nvvm_sust_b_2d_array_v2i64_clamp */ UnknownModRefBehavior,
+ /* nvvm_sust_b_2d_array_v2i64_trap */ UnknownModRefBehavior,
+ /* nvvm_sust_b_2d_array_v2i64_zero */ UnknownModRefBehavior,
+ /* nvvm_sust_b_2d_array_v2i8_clamp */ UnknownModRefBehavior,
+ /* nvvm_sust_b_2d_array_v2i8_trap */ UnknownModRefBehavior,
+ /* nvvm_sust_b_2d_array_v2i8_zero */ UnknownModRefBehavior,
+ /* nvvm_sust_b_2d_array_v4i16_clamp */ UnknownModRefBehavior,
+ /* nvvm_sust_b_2d_array_v4i16_trap */ UnknownModRefBehavior,
+ /* nvvm_sust_b_2d_array_v4i16_zero */ UnknownModRefBehavior,
+ /* nvvm_sust_b_2d_array_v4i32_clamp */ UnknownModRefBehavior,
+ /* nvvm_sust_b_2d_array_v4i32_trap */ UnknownModRefBehavior,
+ /* nvvm_sust_b_2d_array_v4i32_zero */ UnknownModRefBehavior,
+ /* nvvm_sust_b_2d_array_v4i8_clamp */ UnknownModRefBehavior,
+ /* nvvm_sust_b_2d_array_v4i8_trap */ UnknownModRefBehavior,
+ /* nvvm_sust_b_2d_array_v4i8_zero */ UnknownModRefBehavior,
+ /* nvvm_sust_b_2d_i16_clamp */ UnknownModRefBehavior,
+ /* nvvm_sust_b_2d_i16_trap */ UnknownModRefBehavior,
+ /* nvvm_sust_b_2d_i16_zero */ UnknownModRefBehavior,
+ /* nvvm_sust_b_2d_i32_clamp */ UnknownModRefBehavior,
+ /* nvvm_sust_b_2d_i32_trap */ UnknownModRefBehavior,
+ /* nvvm_sust_b_2d_i32_zero */ UnknownModRefBehavior,
+ /* nvvm_sust_b_2d_i64_clamp */ UnknownModRefBehavior,
+ /* nvvm_sust_b_2d_i64_trap */ UnknownModRefBehavior,
+ /* nvvm_sust_b_2d_i64_zero */ UnknownModRefBehavior,
+ /* nvvm_sust_b_2d_i8_clamp */ UnknownModRefBehavior,
+ /* nvvm_sust_b_2d_i8_trap */ UnknownModRefBehavior,
+ /* nvvm_sust_b_2d_i8_zero */ UnknownModRefBehavior,
+ /* nvvm_sust_b_2d_v2i16_clamp */ UnknownModRefBehavior,
+ /* nvvm_sust_b_2d_v2i16_trap */ UnknownModRefBehavior,
+ /* nvvm_sust_b_2d_v2i16_zero */ UnknownModRefBehavior,
+ /* nvvm_sust_b_2d_v2i32_clamp */ UnknownModRefBehavior,
+ /* nvvm_sust_b_2d_v2i32_trap */ UnknownModRefBehavior,
+ /* nvvm_sust_b_2d_v2i32_zero */ UnknownModRefBehavior,
+ /* nvvm_sust_b_2d_v2i64_clamp */ UnknownModRefBehavior,
+ /* nvvm_sust_b_2d_v2i64_trap */ UnknownModRefBehavior,
+ /* nvvm_sust_b_2d_v2i64_zero */ UnknownModRefBehavior,
+ /* nvvm_sust_b_2d_v2i8_clamp */ UnknownModRefBehavior,
+ /* nvvm_sust_b_2d_v2i8_trap */ UnknownModRefBehavior,
+ /* nvvm_sust_b_2d_v2i8_zero */ UnknownModRefBehavior,
+ /* nvvm_sust_b_2d_v4i16_clamp */ UnknownModRefBehavior,
+ /* nvvm_sust_b_2d_v4i16_trap */ UnknownModRefBehavior,
+ /* nvvm_sust_b_2d_v4i16_zero */ UnknownModRefBehavior,
+ /* nvvm_sust_b_2d_v4i32_clamp */ UnknownModRefBehavior,
+ /* nvvm_sust_b_2d_v4i32_trap */ UnknownModRefBehavior,
+ /* nvvm_sust_b_2d_v4i32_zero */ UnknownModRefBehavior,
+ /* nvvm_sust_b_2d_v4i8_clamp */ UnknownModRefBehavior,
+ /* nvvm_sust_b_2d_v4i8_trap */ UnknownModRefBehavior,
+ /* nvvm_sust_b_2d_v4i8_zero */ UnknownModRefBehavior,
+ /* nvvm_sust_b_3d_i16_clamp */ UnknownModRefBehavior,
+ /* nvvm_sust_b_3d_i16_trap */ UnknownModRefBehavior,
+ /* nvvm_sust_b_3d_i16_zero */ UnknownModRefBehavior,
+ /* nvvm_sust_b_3d_i32_clamp */ UnknownModRefBehavior,
+ /* nvvm_sust_b_3d_i32_trap */ UnknownModRefBehavior,
+ /* nvvm_sust_b_3d_i32_zero */ UnknownModRefBehavior,
+ /* nvvm_sust_b_3d_i64_clamp */ UnknownModRefBehavior,
+ /* nvvm_sust_b_3d_i64_trap */ UnknownModRefBehavior,
+ /* nvvm_sust_b_3d_i64_zero */ UnknownModRefBehavior,
+ /* nvvm_sust_b_3d_i8_clamp */ UnknownModRefBehavior,
+ /* nvvm_sust_b_3d_i8_trap */ UnknownModRefBehavior,
+ /* nvvm_sust_b_3d_i8_zero */ UnknownModRefBehavior,
+ /* nvvm_sust_b_3d_v2i16_clamp */ UnknownModRefBehavior,
+ /* nvvm_sust_b_3d_v2i16_trap */ UnknownModRefBehavior,
+ /* nvvm_sust_b_3d_v2i16_zero */ UnknownModRefBehavior,
+ /* nvvm_sust_b_3d_v2i32_clamp */ UnknownModRefBehavior,
+ /* nvvm_sust_b_3d_v2i32_trap */ UnknownModRefBehavior,
+ /* nvvm_sust_b_3d_v2i32_zero */ UnknownModRefBehavior,
+ /* nvvm_sust_b_3d_v2i64_clamp */ UnknownModRefBehavior,
+ /* nvvm_sust_b_3d_v2i64_trap */ UnknownModRefBehavior,
+ /* nvvm_sust_b_3d_v2i64_zero */ UnknownModRefBehavior,
+ /* nvvm_sust_b_3d_v2i8_clamp */ UnknownModRefBehavior,
+ /* nvvm_sust_b_3d_v2i8_trap */ UnknownModRefBehavior,
+ /* nvvm_sust_b_3d_v2i8_zero */ UnknownModRefBehavior,
+ /* nvvm_sust_b_3d_v4i16_clamp */ UnknownModRefBehavior,
+ /* nvvm_sust_b_3d_v4i16_trap */ UnknownModRefBehavior,
+ /* nvvm_sust_b_3d_v4i16_zero */ UnknownModRefBehavior,
+ /* nvvm_sust_b_3d_v4i32_clamp */ UnknownModRefBehavior,
+ /* nvvm_sust_b_3d_v4i32_trap */ UnknownModRefBehavior,
+ /* nvvm_sust_b_3d_v4i32_zero */ UnknownModRefBehavior,
+ /* nvvm_sust_b_3d_v4i8_clamp */ UnknownModRefBehavior,
+ /* nvvm_sust_b_3d_v4i8_trap */ UnknownModRefBehavior,
+ /* nvvm_sust_b_3d_v4i8_zero */ UnknownModRefBehavior,
+ /* nvvm_sust_p_1d_array_i16_trap */ UnknownModRefBehavior,
+ /* nvvm_sust_p_1d_array_i32_trap */ UnknownModRefBehavior,
+ /* nvvm_sust_p_1d_array_i8_trap */ UnknownModRefBehavior,
+ /* nvvm_sust_p_1d_array_v2i16_trap */ UnknownModRefBehavior,
+ /* nvvm_sust_p_1d_array_v2i32_trap */ UnknownModRefBehavior,
+ /* nvvm_sust_p_1d_array_v2i8_trap */ UnknownModRefBehavior,
+ /* nvvm_sust_p_1d_array_v4i16_trap */ UnknownModRefBehavior,
+ /* nvvm_sust_p_1d_array_v4i32_trap */ UnknownModRefBehavior,
+ /* nvvm_sust_p_1d_array_v4i8_trap */ UnknownModRefBehavior,
+ /* nvvm_sust_p_1d_i16_trap */ UnknownModRefBehavior,
+ /* nvvm_sust_p_1d_i32_trap */ UnknownModRefBehavior,
+ /* nvvm_sust_p_1d_i8_trap */ UnknownModRefBehavior,
+ /* nvvm_sust_p_1d_v2i16_trap */ UnknownModRefBehavior,
+ /* nvvm_sust_p_1d_v2i32_trap */ UnknownModRefBehavior,
+ /* nvvm_sust_p_1d_v2i8_trap */ UnknownModRefBehavior,
+ /* nvvm_sust_p_1d_v4i16_trap */ UnknownModRefBehavior,
+ /* nvvm_sust_p_1d_v4i32_trap */ UnknownModRefBehavior,
+ /* nvvm_sust_p_1d_v4i8_trap */ UnknownModRefBehavior,
+ /* nvvm_sust_p_2d_array_i16_trap */ UnknownModRefBehavior,
+ /* nvvm_sust_p_2d_array_i32_trap */ UnknownModRefBehavior,
+ /* nvvm_sust_p_2d_array_i8_trap */ UnknownModRefBehavior,
+ /* nvvm_sust_p_2d_array_v2i16_trap */ UnknownModRefBehavior,
+ /* nvvm_sust_p_2d_array_v2i32_trap */ UnknownModRefBehavior,
+ /* nvvm_sust_p_2d_array_v2i8_trap */ UnknownModRefBehavior,
+ /* nvvm_sust_p_2d_array_v4i16_trap */ UnknownModRefBehavior,
+ /* nvvm_sust_p_2d_array_v4i32_trap */ UnknownModRefBehavior,
+ /* nvvm_sust_p_2d_array_v4i8_trap */ UnknownModRefBehavior,
+ /* nvvm_sust_p_2d_i16_trap */ UnknownModRefBehavior,
+ /* nvvm_sust_p_2d_i32_trap */ UnknownModRefBehavior,
+ /* nvvm_sust_p_2d_i8_trap */ UnknownModRefBehavior,
+ /* nvvm_sust_p_2d_v2i16_trap */ UnknownModRefBehavior,
+ /* nvvm_sust_p_2d_v2i32_trap */ UnknownModRefBehavior,
+ /* nvvm_sust_p_2d_v2i8_trap */ UnknownModRefBehavior,
+ /* nvvm_sust_p_2d_v4i16_trap */ UnknownModRefBehavior,
+ /* nvvm_sust_p_2d_v4i32_trap */ UnknownModRefBehavior,
+ /* nvvm_sust_p_2d_v4i8_trap */ UnknownModRefBehavior,
+ /* nvvm_sust_p_3d_i16_trap */ UnknownModRefBehavior,
+ /* nvvm_sust_p_3d_i32_trap */ UnknownModRefBehavior,
+ /* nvvm_sust_p_3d_i8_trap */ UnknownModRefBehavior,
+ /* nvvm_sust_p_3d_v2i16_trap */ UnknownModRefBehavior,
+ /* nvvm_sust_p_3d_v2i32_trap */ UnknownModRefBehavior,
+ /* nvvm_sust_p_3d_v2i8_trap */ UnknownModRefBehavior,
+ /* nvvm_sust_p_3d_v4i16_trap */ UnknownModRefBehavior,
+ /* nvvm_sust_p_3d_v4i32_trap */ UnknownModRefBehavior,
+ /* nvvm_sust_p_3d_v4i8_trap */ UnknownModRefBehavior,
+ /* nvvm_swap_lo_hi_b64 */ DoesNotAccessMemory,
+ /* nvvm_tex_1d_array_grad_v4f32_f32 */ UnknownModRefBehavior,
+ /* nvvm_tex_1d_array_grad_v4s32_f32 */ UnknownModRefBehavior,
+ /* nvvm_tex_1d_array_grad_v4u32_f32 */ UnknownModRefBehavior,
+ /* nvvm_tex_1d_array_level_v4f32_f32 */ UnknownModRefBehavior,
+ /* nvvm_tex_1d_array_level_v4s32_f32 */ UnknownModRefBehavior,
+ /* nvvm_tex_1d_array_level_v4u32_f32 */ UnknownModRefBehavior,
+ /* nvvm_tex_1d_array_v4f32_f32 */ UnknownModRefBehavior,
+ /* nvvm_tex_1d_array_v4f32_s32 */ UnknownModRefBehavior,
+ /* nvvm_tex_1d_array_v4s32_f32 */ UnknownModRefBehavior,
+ /* nvvm_tex_1d_array_v4s32_s32 */ UnknownModRefBehavior,
+ /* nvvm_tex_1d_array_v4u32_f32 */ UnknownModRefBehavior,
+ /* nvvm_tex_1d_array_v4u32_s32 */ UnknownModRefBehavior,
+ /* nvvm_tex_1d_grad_v4f32_f32 */ UnknownModRefBehavior,
+ /* nvvm_tex_1d_grad_v4s32_f32 */ UnknownModRefBehavior,
+ /* nvvm_tex_1d_grad_v4u32_f32 */ UnknownModRefBehavior,
+ /* nvvm_tex_1d_level_v4f32_f32 */ UnknownModRefBehavior,
+ /* nvvm_tex_1d_level_v4s32_f32 */ UnknownModRefBehavior,
+ /* nvvm_tex_1d_level_v4u32_f32 */ UnknownModRefBehavior,
+ /* nvvm_tex_1d_v4f32_f32 */ UnknownModRefBehavior,
+ /* nvvm_tex_1d_v4f32_s32 */ UnknownModRefBehavior,
+ /* nvvm_tex_1d_v4s32_f32 */ UnknownModRefBehavior,
+ /* nvvm_tex_1d_v4s32_s32 */ UnknownModRefBehavior,
+ /* nvvm_tex_1d_v4u32_f32 */ UnknownModRefBehavior,
+ /* nvvm_tex_1d_v4u32_s32 */ UnknownModRefBehavior,
+ /* nvvm_tex_2d_array_grad_v4f32_f32 */ UnknownModRefBehavior,
+ /* nvvm_tex_2d_array_grad_v4s32_f32 */ UnknownModRefBehavior,
+ /* nvvm_tex_2d_array_grad_v4u32_f32 */ UnknownModRefBehavior,
+ /* nvvm_tex_2d_array_level_v4f32_f32 */ UnknownModRefBehavior,
+ /* nvvm_tex_2d_array_level_v4s32_f32 */ UnknownModRefBehavior,
+ /* nvvm_tex_2d_array_level_v4u32_f32 */ UnknownModRefBehavior,
+ /* nvvm_tex_2d_array_v4f32_f32 */ UnknownModRefBehavior,
+ /* nvvm_tex_2d_array_v4f32_s32 */ UnknownModRefBehavior,
+ /* nvvm_tex_2d_array_v4s32_f32 */ UnknownModRefBehavior,
+ /* nvvm_tex_2d_array_v4s32_s32 */ UnknownModRefBehavior,
+ /* nvvm_tex_2d_array_v4u32_f32 */ UnknownModRefBehavior,
+ /* nvvm_tex_2d_array_v4u32_s32 */ UnknownModRefBehavior,
+ /* nvvm_tex_2d_grad_v4f32_f32 */ UnknownModRefBehavior,
+ /* nvvm_tex_2d_grad_v4s32_f32 */ UnknownModRefBehavior,
+ /* nvvm_tex_2d_grad_v4u32_f32 */ UnknownModRefBehavior,
+ /* nvvm_tex_2d_level_v4f32_f32 */ UnknownModRefBehavior,
+ /* nvvm_tex_2d_level_v4s32_f32 */ UnknownModRefBehavior,
+ /* nvvm_tex_2d_level_v4u32_f32 */ UnknownModRefBehavior,
+ /* nvvm_tex_2d_v4f32_f32 */ UnknownModRefBehavior,
+ /* nvvm_tex_2d_v4f32_s32 */ UnknownModRefBehavior,
+ /* nvvm_tex_2d_v4s32_f32 */ UnknownModRefBehavior,
+ /* nvvm_tex_2d_v4s32_s32 */ UnknownModRefBehavior,
+ /* nvvm_tex_2d_v4u32_f32 */ UnknownModRefBehavior,
+ /* nvvm_tex_2d_v4u32_s32 */ UnknownModRefBehavior,
+ /* nvvm_tex_3d_grad_v4f32_f32 */ UnknownModRefBehavior,
+ /* nvvm_tex_3d_grad_v4s32_f32 */ UnknownModRefBehavior,
+ /* nvvm_tex_3d_grad_v4u32_f32 */ UnknownModRefBehavior,
+ /* nvvm_tex_3d_level_v4f32_f32 */ UnknownModRefBehavior,
+ /* nvvm_tex_3d_level_v4s32_f32 */ UnknownModRefBehavior,
+ /* nvvm_tex_3d_level_v4u32_f32 */ UnknownModRefBehavior,
+ /* nvvm_tex_3d_v4f32_f32 */ UnknownModRefBehavior,
+ /* nvvm_tex_3d_v4f32_s32 */ UnknownModRefBehavior,
+ /* nvvm_tex_3d_v4s32_f32 */ UnknownModRefBehavior,
+ /* nvvm_tex_3d_v4s32_s32 */ UnknownModRefBehavior,
+ /* nvvm_tex_3d_v4u32_f32 */ UnknownModRefBehavior,
+ /* nvvm_tex_3d_v4u32_s32 */ UnknownModRefBehavior,
+ /* nvvm_tex_cube_array_level_v4f32_f32 */ UnknownModRefBehavior,
+ /* nvvm_tex_cube_array_level_v4s32_f32 */ UnknownModRefBehavior,
+ /* nvvm_tex_cube_array_level_v4u32_f32 */ UnknownModRefBehavior,
+ /* nvvm_tex_cube_array_v4f32_f32 */ UnknownModRefBehavior,
+ /* nvvm_tex_cube_array_v4s32_f32 */ UnknownModRefBehavior,
+ /* nvvm_tex_cube_array_v4u32_f32 */ UnknownModRefBehavior,
+ /* nvvm_tex_cube_level_v4f32_f32 */ UnknownModRefBehavior,
+ /* nvvm_tex_cube_level_v4s32_f32 */ UnknownModRefBehavior,
+ /* nvvm_tex_cube_level_v4u32_f32 */ UnknownModRefBehavior,
+ /* nvvm_tex_cube_v4f32_f32 */ UnknownModRefBehavior,
+ /* nvvm_tex_cube_v4s32_f32 */ UnknownModRefBehavior,
+ /* nvvm_tex_cube_v4u32_f32 */ UnknownModRefBehavior,
+ /* nvvm_tex_unified_1d_array_grad_v4f32_f32 */ UnknownModRefBehavior,
+ /* nvvm_tex_unified_1d_array_grad_v4s32_f32 */ UnknownModRefBehavior,
+ /* nvvm_tex_unified_1d_array_grad_v4u32_f32 */ UnknownModRefBehavior,
+ /* nvvm_tex_unified_1d_array_level_v4f32_f32 */ UnknownModRefBehavior,
+ /* nvvm_tex_unified_1d_array_level_v4s32_f32 */ UnknownModRefBehavior,
+ /* nvvm_tex_unified_1d_array_level_v4u32_f32 */ UnknownModRefBehavior,
+ /* nvvm_tex_unified_1d_array_v4f32_f32 */ UnknownModRefBehavior,
+ /* nvvm_tex_unified_1d_array_v4f32_s32 */ UnknownModRefBehavior,
+ /* nvvm_tex_unified_1d_array_v4s32_f32 */ UnknownModRefBehavior,
+ /* nvvm_tex_unified_1d_array_v4s32_s32 */ UnknownModRefBehavior,
+ /* nvvm_tex_unified_1d_array_v4u32_f32 */ UnknownModRefBehavior,
+ /* nvvm_tex_unified_1d_array_v4u32_s32 */ UnknownModRefBehavior,
+ /* nvvm_tex_unified_1d_grad_v4f32_f32 */ UnknownModRefBehavior,
+ /* nvvm_tex_unified_1d_grad_v4s32_f32 */ UnknownModRefBehavior,
+ /* nvvm_tex_unified_1d_grad_v4u32_f32 */ UnknownModRefBehavior,
+ /* nvvm_tex_unified_1d_level_v4f32_f32 */ UnknownModRefBehavior,
+ /* nvvm_tex_unified_1d_level_v4s32_f32 */ UnknownModRefBehavior,
+ /* nvvm_tex_unified_1d_level_v4u32_f32 */ UnknownModRefBehavior,
+ /* nvvm_tex_unified_1d_v4f32_f32 */ UnknownModRefBehavior,
+ /* nvvm_tex_unified_1d_v4f32_s32 */ UnknownModRefBehavior,
+ /* nvvm_tex_unified_1d_v4s32_f32 */ UnknownModRefBehavior,
+ /* nvvm_tex_unified_1d_v4s32_s32 */ UnknownModRefBehavior,
+ /* nvvm_tex_unified_1d_v4u32_f32 */ UnknownModRefBehavior,
+ /* nvvm_tex_unified_1d_v4u32_s32 */ UnknownModRefBehavior,
+ /* nvvm_tex_unified_2d_array_grad_v4f32_f32 */ UnknownModRefBehavior,
+ /* nvvm_tex_unified_2d_array_grad_v4s32_f32 */ UnknownModRefBehavior,
+ /* nvvm_tex_unified_2d_array_grad_v4u32_f32 */ UnknownModRefBehavior,
+ /* nvvm_tex_unified_2d_array_level_v4f32_f32 */ UnknownModRefBehavior,
+ /* nvvm_tex_unified_2d_array_level_v4s32_f32 */ UnknownModRefBehavior,
+ /* nvvm_tex_unified_2d_array_level_v4u32_f32 */ UnknownModRefBehavior,
+ /* nvvm_tex_unified_2d_array_v4f32_f32 */ UnknownModRefBehavior,
+ /* nvvm_tex_unified_2d_array_v4f32_s32 */ UnknownModRefBehavior,
+ /* nvvm_tex_unified_2d_array_v4s32_f32 */ UnknownModRefBehavior,
+ /* nvvm_tex_unified_2d_array_v4s32_s32 */ UnknownModRefBehavior,
+ /* nvvm_tex_unified_2d_array_v4u32_f32 */ UnknownModRefBehavior,
+ /* nvvm_tex_unified_2d_array_v4u32_s32 */ UnknownModRefBehavior,
+ /* nvvm_tex_unified_2d_grad_v4f32_f32 */ UnknownModRefBehavior,
+ /* nvvm_tex_unified_2d_grad_v4s32_f32 */ UnknownModRefBehavior,
+ /* nvvm_tex_unified_2d_grad_v4u32_f32 */ UnknownModRefBehavior,
+ /* nvvm_tex_unified_2d_level_v4f32_f32 */ UnknownModRefBehavior,
+ /* nvvm_tex_unified_2d_level_v4s32_f32 */ UnknownModRefBehavior,
+ /* nvvm_tex_unified_2d_level_v4u32_f32 */ UnknownModRefBehavior,
+ /* nvvm_tex_unified_2d_v4f32_f32 */ UnknownModRefBehavior,
+ /* nvvm_tex_unified_2d_v4f32_s32 */ UnknownModRefBehavior,
+ /* nvvm_tex_unified_2d_v4s32_f32 */ UnknownModRefBehavior,
+ /* nvvm_tex_unified_2d_v4s32_s32 */ UnknownModRefBehavior,
+ /* nvvm_tex_unified_2d_v4u32_f32 */ UnknownModRefBehavior,
+ /* nvvm_tex_unified_2d_v4u32_s32 */ UnknownModRefBehavior,
+ /* nvvm_tex_unified_3d_grad_v4f32_f32 */ UnknownModRefBehavior,
+ /* nvvm_tex_unified_3d_grad_v4s32_f32 */ UnknownModRefBehavior,
+ /* nvvm_tex_unified_3d_grad_v4u32_f32 */ UnknownModRefBehavior,
+ /* nvvm_tex_unified_3d_level_v4f32_f32 */ UnknownModRefBehavior,
+ /* nvvm_tex_unified_3d_level_v4s32_f32 */ UnknownModRefBehavior,
+ /* nvvm_tex_unified_3d_level_v4u32_f32 */ UnknownModRefBehavior,
+ /* nvvm_tex_unified_3d_v4f32_f32 */ UnknownModRefBehavior,
+ /* nvvm_tex_unified_3d_v4f32_s32 */ UnknownModRefBehavior,
+ /* nvvm_tex_unified_3d_v4s32_f32 */ UnknownModRefBehavior,
+ /* nvvm_tex_unified_3d_v4s32_s32 */ UnknownModRefBehavior,
+ /* nvvm_tex_unified_3d_v4u32_f32 */ UnknownModRefBehavior,
+ /* nvvm_tex_unified_3d_v4u32_s32 */ UnknownModRefBehavior,
+ /* nvvm_tex_unified_cube_array_level_v4f32_f32 */ UnknownModRefBehavior,
+ /* nvvm_tex_unified_cube_array_level_v4s32_f32 */ UnknownModRefBehavior,
+ /* nvvm_tex_unified_cube_array_level_v4u32_f32 */ UnknownModRefBehavior,
+ /* nvvm_tex_unified_cube_array_v4f32_f32 */ UnknownModRefBehavior,
+ /* nvvm_tex_unified_cube_array_v4s32_f32 */ UnknownModRefBehavior,
+ /* nvvm_tex_unified_cube_array_v4u32_f32 */ UnknownModRefBehavior,
+ /* nvvm_tex_unified_cube_level_v4f32_f32 */ UnknownModRefBehavior,
+ /* nvvm_tex_unified_cube_level_v4s32_f32 */ UnknownModRefBehavior,
+ /* nvvm_tex_unified_cube_level_v4u32_f32 */ UnknownModRefBehavior,
+ /* nvvm_tex_unified_cube_v4f32_f32 */ UnknownModRefBehavior,
+ /* nvvm_tex_unified_cube_v4s32_f32 */ UnknownModRefBehavior,
+ /* nvvm_tex_unified_cube_v4u32_f32 */ UnknownModRefBehavior,
+ /* nvvm_texsurf_handle */ DoesNotAccessMemory,
+ /* nvvm_texsurf_handle_internal */ DoesNotAccessMemory,
+ /* nvvm_tld4_a_2d_v4f32_f32 */ UnknownModRefBehavior,
+ /* nvvm_tld4_a_2d_v4s32_f32 */ UnknownModRefBehavior,
+ /* nvvm_tld4_a_2d_v4u32_f32 */ UnknownModRefBehavior,
+ /* nvvm_tld4_b_2d_v4f32_f32 */ UnknownModRefBehavior,
+ /* nvvm_tld4_b_2d_v4s32_f32 */ UnknownModRefBehavior,
+ /* nvvm_tld4_b_2d_v4u32_f32 */ UnknownModRefBehavior,
+ /* nvvm_tld4_g_2d_v4f32_f32 */ UnknownModRefBehavior,
+ /* nvvm_tld4_g_2d_v4s32_f32 */ UnknownModRefBehavior,
+ /* nvvm_tld4_g_2d_v4u32_f32 */ UnknownModRefBehavior,
+ /* nvvm_tld4_r_2d_v4f32_f32 */ UnknownModRefBehavior,
+ /* nvvm_tld4_r_2d_v4s32_f32 */ UnknownModRefBehavior,
+ /* nvvm_tld4_r_2d_v4u32_f32 */ UnknownModRefBehavior,
+ /* nvvm_tld4_unified_a_2d_v4f32_f32 */ UnknownModRefBehavior,
+ /* nvvm_tld4_unified_a_2d_v4s32_f32 */ UnknownModRefBehavior,
+ /* nvvm_tld4_unified_a_2d_v4u32_f32 */ UnknownModRefBehavior,
+ /* nvvm_tld4_unified_b_2d_v4f32_f32 */ UnknownModRefBehavior,
+ /* nvvm_tld4_unified_b_2d_v4s32_f32 */ UnknownModRefBehavior,
+ /* nvvm_tld4_unified_b_2d_v4u32_f32 */ UnknownModRefBehavior,
+ /* nvvm_tld4_unified_g_2d_v4f32_f32 */ UnknownModRefBehavior,
+ /* nvvm_tld4_unified_g_2d_v4s32_f32 */ UnknownModRefBehavior,
+ /* nvvm_tld4_unified_g_2d_v4u32_f32 */ UnknownModRefBehavior,
+ /* nvvm_tld4_unified_r_2d_v4f32_f32 */ UnknownModRefBehavior,
+ /* nvvm_tld4_unified_r_2d_v4s32_f32 */ UnknownModRefBehavior,
+ /* nvvm_tld4_unified_r_2d_v4u32_f32 */ UnknownModRefBehavior,
+ /* nvvm_trunc_d */ DoesNotAccessMemory,
+ /* nvvm_trunc_f */ DoesNotAccessMemory,
+ /* nvvm_trunc_ftz_f */ DoesNotAccessMemory,
+ /* nvvm_txq_array_size */ DoesNotAccessMemory,
+ /* nvvm_txq_channel_data_type */ DoesNotAccessMemory,
+ /* nvvm_txq_channel_order */ DoesNotAccessMemory,
+ /* nvvm_txq_depth */ DoesNotAccessMemory,
+ /* nvvm_txq_height */ DoesNotAccessMemory,
+ /* nvvm_txq_num_mipmap_levels */ DoesNotAccessMemory,
+ /* nvvm_txq_num_samples */ DoesNotAccessMemory,
+ /* nvvm_txq_width */ DoesNotAccessMemory,
+ /* nvvm_ui2d_rm */ DoesNotAccessMemory,
+ /* nvvm_ui2d_rn */ DoesNotAccessMemory,
+ /* nvvm_ui2d_rp */ DoesNotAccessMemory,
+ /* nvvm_ui2d_rz */ DoesNotAccessMemory,
+ /* nvvm_ui2f_rm */ DoesNotAccessMemory,
+ /* nvvm_ui2f_rn */ DoesNotAccessMemory,
+ /* nvvm_ui2f_rp */ DoesNotAccessMemory,
+ /* nvvm_ui2f_rz */ DoesNotAccessMemory,
+ /* nvvm_ull2d_rm */ DoesNotAccessMemory,
+ /* nvvm_ull2d_rn */ DoesNotAccessMemory,
+ /* nvvm_ull2d_rp */ DoesNotAccessMemory,
+ /* nvvm_ull2d_rz */ DoesNotAccessMemory,
+ /* nvvm_ull2f_rm */ DoesNotAccessMemory,
+ /* nvvm_ull2f_rn */ DoesNotAccessMemory,
+ /* nvvm_ull2f_rp */ DoesNotAccessMemory,
+ /* nvvm_ull2f_rz */ DoesNotAccessMemory,
+ /* objectsize */ DoesNotAccessMemory,
+ /* pcmarker */ UnknownModRefBehavior,
+ /* pow */ DoesNotAccessMemory,
+ /* powi */ DoesNotAccessMemory,
+ /* 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 */ OnlyReadsArgumentPointees,
+ /* ppc_altivec_lvehx */ OnlyReadsArgumentPointees,
+ /* ppc_altivec_lvewx */ OnlyReadsArgumentPointees,
+ /* ppc_altivec_lvsl */ DoesNotAccessMemory,
+ /* ppc_altivec_lvsr */ DoesNotAccessMemory,
+ /* ppc_altivec_lvx */ OnlyReadsArgumentPointees,
+ /* ppc_altivec_lvxl */ OnlyReadsArgumentPointees,
+ /* ppc_altivec_mfvscr */ OnlyReadsMemory,
+ /* ppc_altivec_mtvscr */ UnknownModRefBehavior,
+ /* ppc_altivec_stvebx */ OnlyAccessesArgumentPointees,
+ /* ppc_altivec_stvehx */ OnlyAccessesArgumentPointees,
+ /* ppc_altivec_stvewx */ OnlyAccessesArgumentPointees,
+ /* ppc_altivec_stvx */ OnlyAccessesArgumentPointees,
+ /* ppc_altivec_stvxl */ OnlyAccessesArgumentPointees,
+ /* 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 */ OnlyAccessesArgumentPointees,
+ /* ppc_dcbtst */ UnknownModRefBehavior,
+ /* ppc_dcbz */ UnknownModRefBehavior,
+ /* ppc_dcbzl */ UnknownModRefBehavior,
+ /* ppc_is_decremented_ctr_nonzero */ UnknownModRefBehavior,
+ /* ppc_mtctr */ 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,
+ /* r600_read_global_size_x */ DoesNotAccessMemory,
+ /* r600_read_global_size_y */ DoesNotAccessMemory,
+ /* r600_read_global_size_z */ DoesNotAccessMemory,
+ /* r600_read_local_size_x */ DoesNotAccessMemory,
+ /* r600_read_local_size_y */ DoesNotAccessMemory,
+ /* r600_read_local_size_z */ DoesNotAccessMemory,
+ /* r600_read_ngroups_x */ DoesNotAccessMemory,
+ /* r600_read_ngroups_y */ DoesNotAccessMemory,
+ /* r600_read_ngroups_z */ DoesNotAccessMemory,
+ /* r600_read_tgid_x */ DoesNotAccessMemory,
+ /* r600_read_tgid_y */ DoesNotAccessMemory,
+ /* r600_read_tgid_z */ DoesNotAccessMemory,
+ /* r600_read_tidig_x */ DoesNotAccessMemory,
+ /* r600_read_tidig_y */ DoesNotAccessMemory,
+ /* r600_read_tidig_z */ DoesNotAccessMemory,
+ /* read_register */ DoesNotAccessMemory,
+ /* readcyclecounter */ UnknownModRefBehavior,
+ /* returnaddress */ DoesNotAccessMemory,
+ /* rint */ DoesNotAccessMemory,
+ /* round */ DoesNotAccessMemory,
+ /* sadd_with_overflow */ DoesNotAccessMemory,
+ /* setjmp */ UnknownModRefBehavior,
+ /* siglongjmp */ UnknownModRefBehavior,
+ /* sigsetjmp */ UnknownModRefBehavior,
+ /* sin */ DoesNotAccessMemory,
+ /* smul_with_overflow */ DoesNotAccessMemory,
+ /* sqrt */ DoesNotAccessMemory,
+ /* ssub_with_overflow */ DoesNotAccessMemory,
+ /* stackprotector */ UnknownModRefBehavior,
+ /* stackprotectorcheck */ OnlyAccessesArgumentPointees,
+ /* stackrestore */ UnknownModRefBehavior,
+ /* stacksave */ UnknownModRefBehavior,
+ /* trap */ UnknownModRefBehavior,
+ /* trunc */ DoesNotAccessMemory,
+ /* uadd_with_overflow */ DoesNotAccessMemory,
+ /* umul_with_overflow */ DoesNotAccessMemory,
+ /* usub_with_overflow */ DoesNotAccessMemory,
+ /* vacopy */ UnknownModRefBehavior,
+ /* vaend */ UnknownModRefBehavior,
+ /* var_annotation */ UnknownModRefBehavior,
+ /* vastart */ UnknownModRefBehavior,
+ /* write_register */ UnknownModRefBehavior,
+ /* x86_3dnow_pavgusb */ DoesNotAccessMemory,
+ /* x86_3dnow_pf2id */ DoesNotAccessMemory,
+ /* x86_3dnow_pfacc */ DoesNotAccessMemory,
+ /* x86_3dnow_pfadd */ DoesNotAccessMemory,
+ /* x86_3dnow_pfcmpeq */ DoesNotAccessMemory,
+ /* x86_3dnow_pfcmpge */ DoesNotAccessMemory,
+ /* x86_3dnow_pfcmpgt */ DoesNotAccessMemory,
+ /* x86_3dnow_pfmax */ DoesNotAccessMemory,
+ /* x86_3dnow_pfmin */ DoesNotAccessMemory,
+ /* x86_3dnow_pfmul */ DoesNotAccessMemory,
+ /* x86_3dnow_pfrcp */ DoesNotAccessMemory,
+ /* x86_3dnow_pfrcpit1 */ DoesNotAccessMemory,
+ /* x86_3dnow_pfrcpit2 */ DoesNotAccessMemory,
+ /* x86_3dnow_pfrsqit1 */ DoesNotAccessMemory,
+ /* x86_3dnow_pfrsqrt */ DoesNotAccessMemory,
+ /* x86_3dnow_pfsub */ DoesNotAccessMemory,
+ /* x86_3dnow_pfsubr */ DoesNotAccessMemory,
+ /* x86_3dnow_pi2fd */ DoesNotAccessMemory,
+ /* x86_3dnow_pmulhrw */ DoesNotAccessMemory,
+ /* x86_3dnowa_pf2iw */ DoesNotAccessMemory,
+ /* x86_3dnowa_pfnacc */ DoesNotAccessMemory,
+ /* x86_3dnowa_pfpnacc */ DoesNotAccessMemory,
+ /* x86_3dnowa_pi2fw */ DoesNotAccessMemory,
+ /* x86_3dnowa_pswapd */ DoesNotAccessMemory,
+ /* x86_aesni_aesdec */ DoesNotAccessMemory,
+ /* x86_aesni_aesdeclast */ DoesNotAccessMemory,
+ /* x86_aesni_aesenc */ DoesNotAccessMemory,
+ /* x86_aesni_aesenclast */ DoesNotAccessMemory,
+ /* x86_aesni_aesimc */ DoesNotAccessMemory,
+ /* x86_aesni_aeskeygenassist */ DoesNotAccessMemory,
+ /* x86_avx2_gather_d_d */ OnlyReadsArgumentPointees,
+ /* x86_avx2_gather_d_d_256 */ OnlyReadsArgumentPointees,
+ /* x86_avx2_gather_d_pd */ OnlyReadsArgumentPointees,
+ /* x86_avx2_gather_d_pd_256 */ OnlyReadsArgumentPointees,
+ /* x86_avx2_gather_d_ps */ OnlyReadsArgumentPointees,
+ /* x86_avx2_gather_d_ps_256 */ OnlyReadsArgumentPointees,
+ /* x86_avx2_gather_d_q */ OnlyReadsArgumentPointees,
+ /* x86_avx2_gather_d_q_256 */ OnlyReadsArgumentPointees,
+ /* x86_avx2_gather_q_d */ OnlyReadsArgumentPointees,
+ /* x86_avx2_gather_q_d_256 */ OnlyReadsArgumentPointees,
+ /* x86_avx2_gather_q_pd */ OnlyReadsArgumentPointees,
+ /* x86_avx2_gather_q_pd_256 */ OnlyReadsArgumentPointees,
+ /* x86_avx2_gather_q_ps */ OnlyReadsArgumentPointees,
+ /* x86_avx2_gather_q_ps_256 */ OnlyReadsArgumentPointees,
+ /* x86_avx2_gather_q_q */ OnlyReadsArgumentPointees,
+ /* x86_avx2_gather_q_q_256 */ OnlyReadsArgumentPointees,
+ /* x86_avx2_maskload_d */ OnlyReadsArgumentPointees,
+ /* x86_avx2_maskload_d_256 */ OnlyReadsArgumentPointees,
+ /* x86_avx2_maskload_q */ OnlyReadsArgumentPointees,
+ /* x86_avx2_maskload_q_256 */ OnlyReadsArgumentPointees,
+ /* x86_avx2_maskstore_d */ OnlyAccessesArgumentPointees,
+ /* x86_avx2_maskstore_d_256 */ OnlyAccessesArgumentPointees,
+ /* x86_avx2_maskstore_q */ OnlyAccessesArgumentPointees,
+ /* x86_avx2_maskstore_q_256 */ OnlyAccessesArgumentPointees,
+ /* x86_avx2_movntdqa */ OnlyReadsMemory,
+ /* x86_avx2_mpsadbw */ DoesNotAccessMemory,
+ /* x86_avx2_pabs_b */ DoesNotAccessMemory,
+ /* x86_avx2_pabs_d */ DoesNotAccessMemory,
+ /* x86_avx2_pabs_w */ DoesNotAccessMemory,
+ /* x86_avx2_packssdw */ DoesNotAccessMemory,
+ /* x86_avx2_packsswb */ DoesNotAccessMemory,
+ /* x86_avx2_packusdw */ DoesNotAccessMemory,
+ /* x86_avx2_packuswb */ DoesNotAccessMemory,
+ /* x86_avx2_padds_b */ DoesNotAccessMemory,
+ /* x86_avx2_padds_w */ DoesNotAccessMemory,
+ /* x86_avx2_paddus_b */ DoesNotAccessMemory,
+ /* x86_avx2_paddus_w */ DoesNotAccessMemory,
+ /* x86_avx2_pavg_b */ DoesNotAccessMemory,
+ /* x86_avx2_pavg_w */ DoesNotAccessMemory,
+ /* x86_avx2_pblendd_128 */ DoesNotAccessMemory,
+ /* x86_avx2_pblendd_256 */ DoesNotAccessMemory,
+ /* x86_avx2_pblendvb */ DoesNotAccessMemory,
+ /* x86_avx2_pblendw */ DoesNotAccessMemory,
+ /* x86_avx2_pbroadcastb_128 */ DoesNotAccessMemory,
+ /* x86_avx2_pbroadcastb_256 */ DoesNotAccessMemory,
+ /* x86_avx2_pbroadcastd_128 */ DoesNotAccessMemory,
+ /* x86_avx2_pbroadcastd_256 */ DoesNotAccessMemory,
+ /* x86_avx2_pbroadcastq_128 */ DoesNotAccessMemory,
+ /* x86_avx2_pbroadcastq_256 */ DoesNotAccessMemory,
+ /* x86_avx2_pbroadcastw_128 */ DoesNotAccessMemory,
+ /* x86_avx2_pbroadcastw_256 */ DoesNotAccessMemory,
+ /* x86_avx2_permd */ DoesNotAccessMemory,
+ /* x86_avx2_permps */ DoesNotAccessMemory,
+ /* x86_avx2_phadd_d */ DoesNotAccessMemory,
+ /* x86_avx2_phadd_sw */ DoesNotAccessMemory,
+ /* x86_avx2_phadd_w */ DoesNotAccessMemory,
+ /* x86_avx2_phsub_d */ DoesNotAccessMemory,
+ /* x86_avx2_phsub_sw */ DoesNotAccessMemory,
+ /* x86_avx2_phsub_w */ DoesNotAccessMemory,
+ /* x86_avx2_pmadd_ub_sw */ DoesNotAccessMemory,
+ /* x86_avx2_pmadd_wd */ DoesNotAccessMemory,
+ /* x86_avx2_pmaxs_b */ DoesNotAccessMemory,
+ /* x86_avx2_pmaxs_d */ DoesNotAccessMemory,
+ /* x86_avx2_pmaxs_w */ DoesNotAccessMemory,
+ /* x86_avx2_pmaxu_b */ DoesNotAccessMemory,
+ /* x86_avx2_pmaxu_d */ DoesNotAccessMemory,
+ /* x86_avx2_pmaxu_w */ DoesNotAccessMemory,
+ /* x86_avx2_pmins_b */ DoesNotAccessMemory,
+ /* x86_avx2_pmins_d */ DoesNotAccessMemory,
+ /* x86_avx2_pmins_w */ DoesNotAccessMemory,
+ /* x86_avx2_pminu_b */ DoesNotAccessMemory,
+ /* x86_avx2_pminu_d */ DoesNotAccessMemory,
+ /* x86_avx2_pminu_w */ DoesNotAccessMemory,
+ /* x86_avx2_pmovmskb */ DoesNotAccessMemory,
+ /* x86_avx2_pmovsxbd */ DoesNotAccessMemory,
+ /* x86_avx2_pmovsxbq */ DoesNotAccessMemory,
+ /* x86_avx2_pmovsxbw */ DoesNotAccessMemory,
+ /* x86_avx2_pmovsxdq */ DoesNotAccessMemory,
+ /* x86_avx2_pmovsxwd */ DoesNotAccessMemory,
+ /* x86_avx2_pmovsxwq */ DoesNotAccessMemory,
+ /* x86_avx2_pmovzxbd */ DoesNotAccessMemory,
+ /* x86_avx2_pmovzxbq */ DoesNotAccessMemory,
+ /* x86_avx2_pmovzxbw */ DoesNotAccessMemory,
+ /* x86_avx2_pmovzxdq */ DoesNotAccessMemory,
+ /* x86_avx2_pmovzxwd */ DoesNotAccessMemory,
+ /* x86_avx2_pmovzxwq */ DoesNotAccessMemory,
+ /* x86_avx2_pmul_dq */ DoesNotAccessMemory,
+ /* x86_avx2_pmul_hr_sw */ DoesNotAccessMemory,
+ /* x86_avx2_pmulh_w */ DoesNotAccessMemory,
+ /* x86_avx2_pmulhu_w */ DoesNotAccessMemory,
+ /* x86_avx2_pmulu_dq */ DoesNotAccessMemory,
+ /* x86_avx2_psad_bw */ DoesNotAccessMemory,
+ /* x86_avx2_pshuf_b */ DoesNotAccessMemory,
+ /* x86_avx2_psign_b */ DoesNotAccessMemory,
+ /* x86_avx2_psign_d */ DoesNotAccessMemory,
+ /* x86_avx2_psign_w */ DoesNotAccessMemory,
+ /* x86_avx2_psll_d */ DoesNotAccessMemory,
+ /* x86_avx2_psll_dq */ DoesNotAccessMemory,
+ /* x86_avx2_psll_dq_bs */ DoesNotAccessMemory,
+ /* x86_avx2_psll_q */ DoesNotAccessMemory,
+ /* x86_avx2_psll_w */ DoesNotAccessMemory,
+ /* x86_avx2_pslli_d */ DoesNotAccessMemory,
+ /* x86_avx2_pslli_q */ DoesNotAccessMemory,
+ /* x86_avx2_pslli_w */ DoesNotAccessMemory,
+ /* x86_avx2_psllv_d */ DoesNotAccessMemory,
+ /* x86_avx2_psllv_d_256 */ DoesNotAccessMemory,
+ /* x86_avx2_psllv_q */ DoesNotAccessMemory,
+ /* x86_avx2_psllv_q_256 */ DoesNotAccessMemory,
+ /* x86_avx2_psra_d */ DoesNotAccessMemory,
+ /* x86_avx2_psra_w */ DoesNotAccessMemory,
+ /* x86_avx2_psrai_d */ DoesNotAccessMemory,
+ /* x86_avx2_psrai_w */ DoesNotAccessMemory,
+ /* x86_avx2_psrav_d */ DoesNotAccessMemory,
+ /* x86_avx2_psrav_d_256 */ DoesNotAccessMemory,
+ /* x86_avx2_psrl_d */ DoesNotAccessMemory,
+ /* x86_avx2_psrl_dq */ DoesNotAccessMemory,
+ /* x86_avx2_psrl_dq_bs */ DoesNotAccessMemory,
+ /* x86_avx2_psrl_q */ DoesNotAccessMemory,
+ /* x86_avx2_psrl_w */ DoesNotAccessMemory,
+ /* x86_avx2_psrli_d */ DoesNotAccessMemory,
+ /* x86_avx2_psrli_q */ DoesNotAccessMemory,
+ /* x86_avx2_psrli_w */ DoesNotAccessMemory,
+ /* x86_avx2_psrlv_d */ DoesNotAccessMemory,
+ /* x86_avx2_psrlv_d_256 */ DoesNotAccessMemory,
+ /* x86_avx2_psrlv_q */ DoesNotAccessMemory,
+ /* x86_avx2_psrlv_q_256 */ DoesNotAccessMemory,
+ /* x86_avx2_psubs_b */ DoesNotAccessMemory,
+ /* x86_avx2_psubs_w */ DoesNotAccessMemory,
+ /* x86_avx2_psubus_b */ DoesNotAccessMemory,
+ /* x86_avx2_psubus_w */ DoesNotAccessMemory,
+ /* x86_avx2_vbroadcast_sd_pd_256 */ DoesNotAccessMemory,
+ /* x86_avx2_vbroadcast_ss_ps */ DoesNotAccessMemory,
+ /* x86_avx2_vbroadcast_ss_ps_256 */ DoesNotAccessMemory,
+ /* x86_avx2_vbroadcasti128 */ OnlyReadsArgumentPointees,
+ /* x86_avx2_vextracti128 */ DoesNotAccessMemory,
+ /* x86_avx2_vinserti128 */ DoesNotAccessMemory,
+ /* x86_avx2_vperm2i128 */ DoesNotAccessMemory,
+ /* x86_avx512_cvtsd2usi */ DoesNotAccessMemory,
+ /* x86_avx512_cvtsd2usi64 */ DoesNotAccessMemory,
+ /* x86_avx512_cvtss2usi */ DoesNotAccessMemory,
+ /* x86_avx512_cvtss2usi64 */ DoesNotAccessMemory,
+ /* x86_avx512_cvttsd2usi */ DoesNotAccessMemory,
+ /* x86_avx512_cvttsd2usi64 */ DoesNotAccessMemory,
+ /* x86_avx512_cvttss2usi */ DoesNotAccessMemory,
+ /* x86_avx512_cvttss2usi64 */ DoesNotAccessMemory,
+ /* x86_avx512_cvtusi2sd */ DoesNotAccessMemory,
+ /* x86_avx512_cvtusi2ss */ DoesNotAccessMemory,
+ /* x86_avx512_cvtusi642sd */ DoesNotAccessMemory,
+ /* x86_avx512_cvtusi642ss */ DoesNotAccessMemory,
+ /* x86_avx512_gather_dpd_512 */ OnlyReadsArgumentPointees,
+ /* x86_avx512_gather_dpi_512 */ OnlyReadsArgumentPointees,
+ /* x86_avx512_gather_dpq_512 */ OnlyReadsArgumentPointees,
+ /* x86_avx512_gather_dps_512 */ OnlyReadsArgumentPointees,
+ /* x86_avx512_gather_qpd_512 */ OnlyReadsArgumentPointees,
+ /* x86_avx512_gather_qpi_512 */ OnlyReadsArgumentPointees,
+ /* x86_avx512_gather_qpq_512 */ OnlyReadsArgumentPointees,
+ /* x86_avx512_gather_qps_512 */ OnlyReadsArgumentPointees,
+ /* x86_avx512_gatherpf_dpd_512 */ OnlyAccessesArgumentPointees,
+ /* x86_avx512_gatherpf_dps_512 */ OnlyAccessesArgumentPointees,
+ /* x86_avx512_gatherpf_qpd_512 */ OnlyAccessesArgumentPointees,
+ /* x86_avx512_gatherpf_qps_512 */ OnlyAccessesArgumentPointees,
+ /* x86_avx512_kand_w */ DoesNotAccessMemory,
+ /* x86_avx512_kandn_w */ DoesNotAccessMemory,
+ /* x86_avx512_knot_w */ DoesNotAccessMemory,
+ /* x86_avx512_kor_w */ DoesNotAccessMemory,
+ /* x86_avx512_kortestc_w */ DoesNotAccessMemory,
+ /* x86_avx512_kortestz_w */ DoesNotAccessMemory,
+ /* x86_avx512_kunpck_bw */ DoesNotAccessMemory,
+ /* x86_avx512_kxnor_w */ DoesNotAccessMemory,
+ /* x86_avx512_kxor_w */ DoesNotAccessMemory,
+ /* x86_avx512_mask_blend_d_512 */ DoesNotAccessMemory,
+ /* x86_avx512_mask_blend_pd_512 */ DoesNotAccessMemory,
+ /* x86_avx512_mask_blend_ps_512 */ DoesNotAccessMemory,
+ /* x86_avx512_mask_blend_q_512 */ DoesNotAccessMemory,
+ /* x86_avx512_mask_cmp_pd_512 */ DoesNotAccessMemory,
+ /* x86_avx512_mask_cmp_ps_512 */ DoesNotAccessMemory,
+ /* x86_avx512_mask_conflict_d_512 */ UnknownModRefBehavior,
+ /* x86_avx512_mask_conflict_q_512 */ UnknownModRefBehavior,
+ /* x86_avx512_mask_cvtdq2pd_512 */ DoesNotAccessMemory,
+ /* x86_avx512_mask_cvtdq2ps_512 */ DoesNotAccessMemory,
+ /* x86_avx512_mask_cvtpd2dq_512 */ DoesNotAccessMemory,
+ /* x86_avx512_mask_cvtpd2ps_512 */ DoesNotAccessMemory,
+ /* x86_avx512_mask_cvtpd2udq_512 */ DoesNotAccessMemory,
+ /* x86_avx512_mask_cvtps2dq_512 */ DoesNotAccessMemory,
+ /* x86_avx512_mask_cvtps2udq_512 */ DoesNotAccessMemory,
+ /* x86_avx512_mask_cvttpd2dq_512 */ DoesNotAccessMemory,
+ /* x86_avx512_mask_cvttpd2udq_512 */ DoesNotAccessMemory,
+ /* x86_avx512_mask_cvttps2dq_512 */ DoesNotAccessMemory,
+ /* x86_avx512_mask_cvttps2udq_512 */ DoesNotAccessMemory,
+ /* x86_avx512_mask_cvtudq2pd_512 */ DoesNotAccessMemory,
+ /* x86_avx512_mask_cvtudq2ps_512 */ DoesNotAccessMemory,
+ /* x86_avx512_mask_loadu_d_512 */ OnlyReadsArgumentPointees,
+ /* x86_avx512_mask_loadu_pd_512 */ OnlyReadsArgumentPointees,
+ /* x86_avx512_mask_loadu_ps_512 */ OnlyReadsArgumentPointees,
+ /* x86_avx512_mask_loadu_q_512 */ OnlyReadsArgumentPointees,
+ /* x86_avx512_mask_lzcnt_d_512 */ UnknownModRefBehavior,
+ /* x86_avx512_mask_lzcnt_q_512 */ UnknownModRefBehavior,
+ /* x86_avx512_mask_max_pd_512 */ DoesNotAccessMemory,
+ /* x86_avx512_mask_max_ps_512 */ DoesNotAccessMemory,
+ /* x86_avx512_mask_min_pd_512 */ DoesNotAccessMemory,
+ /* x86_avx512_mask_min_ps_512 */ DoesNotAccessMemory,
+ /* x86_avx512_mask_pabs_d_512 */ DoesNotAccessMemory,
+ /* x86_avx512_mask_pabs_q_512 */ DoesNotAccessMemory,
+ /* x86_avx512_mask_pand_d_512 */ DoesNotAccessMemory,
+ /* x86_avx512_mask_pand_q_512 */ DoesNotAccessMemory,
+ /* x86_avx512_mask_pbroadcast_d_gpr_512 */ DoesNotAccessMemory,
+ /* x86_avx512_mask_pbroadcast_q_gpr_512 */ DoesNotAccessMemory,
+ /* x86_avx512_mask_pbroadcast_q_mem_512 */ DoesNotAccessMemory,
+ /* x86_avx512_mask_pcmpeq_d_512 */ DoesNotAccessMemory,
+ /* x86_avx512_mask_pcmpeq_q_512 */ DoesNotAccessMemory,
+ /* x86_avx512_mask_pmaxs_d_512 */ DoesNotAccessMemory,
+ /* x86_avx512_mask_pmaxs_q_512 */ DoesNotAccessMemory,
+ /* x86_avx512_mask_pmaxu_d_512 */ DoesNotAccessMemory,
+ /* x86_avx512_mask_pmaxu_q_512 */ DoesNotAccessMemory,
+ /* x86_avx512_mask_pmins_d_512 */ DoesNotAccessMemory,
+ /* x86_avx512_mask_pmins_q_512 */ DoesNotAccessMemory,
+ /* x86_avx512_mask_pminu_d_512 */ DoesNotAccessMemory,
+ /* x86_avx512_mask_pminu_q_512 */ DoesNotAccessMemory,
+ /* x86_avx512_mask_pmul_dq_512 */ DoesNotAccessMemory,
+ /* x86_avx512_mask_pmulu_dq_512 */ DoesNotAccessMemory,
+ /* x86_avx512_mask_ptestm_d_512 */ DoesNotAccessMemory,
+ /* x86_avx512_mask_ptestm_q_512 */ DoesNotAccessMemory,
+ /* x86_avx512_mask_rndscale_pd_512 */ DoesNotAccessMemory,
+ /* x86_avx512_mask_rndscale_ps_512 */ DoesNotAccessMemory,
+ /* x86_avx512_mask_storeu_d_512 */ OnlyAccessesArgumentPointees,
+ /* x86_avx512_mask_storeu_pd_512 */ OnlyAccessesArgumentPointees,
+ /* x86_avx512_mask_storeu_ps_512 */ OnlyAccessesArgumentPointees,
+ /* x86_avx512_mask_storeu_q_512 */ OnlyAccessesArgumentPointees,
+ /* x86_avx512_mask_vcvtph2ps_512 */ DoesNotAccessMemory,
+ /* x86_avx512_mask_vcvtps2ph_512 */ DoesNotAccessMemory,
+ /* x86_avx512_mask_vpermt_d_512 */ DoesNotAccessMemory,
+ /* x86_avx512_mask_vpermt_pd_512 */ DoesNotAccessMemory,
+ /* x86_avx512_mask_vpermt_ps_512 */ DoesNotAccessMemory,
+ /* x86_avx512_mask_vpermt_q_512 */ DoesNotAccessMemory,
+ /* x86_avx512_movntdqa */ OnlyReadsMemory,
+ /* x86_avx512_pbroadcastd_512 */ DoesNotAccessMemory,
+ /* x86_avx512_pbroadcastd_i32_512 */ DoesNotAccessMemory,
+ /* x86_avx512_pbroadcastq_512 */ DoesNotAccessMemory,
+ /* x86_avx512_pbroadcastq_i64_512 */ DoesNotAccessMemory,
+ /* x86_avx512_pmovzxbd */ DoesNotAccessMemory,
+ /* x86_avx512_pmovzxbq */ DoesNotAccessMemory,
+ /* x86_avx512_pmovzxdq */ DoesNotAccessMemory,
+ /* x86_avx512_pmovzxwd */ DoesNotAccessMemory,
+ /* x86_avx512_pmovzxwq */ DoesNotAccessMemory,
+ /* x86_avx512_psll_dq */ DoesNotAccessMemory,
+ /* x86_avx512_psll_dq_bs */ DoesNotAccessMemory,
+ /* x86_avx512_psrl_dq */ DoesNotAccessMemory,
+ /* x86_avx512_psrl_dq_bs */ DoesNotAccessMemory,
+ /* x86_avx512_rcp14_pd_512 */ DoesNotAccessMemory,
+ /* x86_avx512_rcp14_ps_512 */ DoesNotAccessMemory,
+ /* x86_avx512_rcp14_sd */ DoesNotAccessMemory,
+ /* x86_avx512_rcp14_ss */ DoesNotAccessMemory,
+ /* x86_avx512_rcp28_pd */ DoesNotAccessMemory,
+ /* x86_avx512_rcp28_ps */ DoesNotAccessMemory,
+ /* x86_avx512_rcp28_sd */ DoesNotAccessMemory,
+ /* x86_avx512_rcp28_ss */ DoesNotAccessMemory,
+ /* x86_avx512_rndscale_sd */ DoesNotAccessMemory,
+ /* x86_avx512_rndscale_ss */ DoesNotAccessMemory,
+ /* x86_avx512_rsqrt14_pd_512 */ DoesNotAccessMemory,
+ /* x86_avx512_rsqrt14_ps_512 */ DoesNotAccessMemory,
+ /* x86_avx512_rsqrt14_sd */ DoesNotAccessMemory,
+ /* x86_avx512_rsqrt14_ss */ DoesNotAccessMemory,
+ /* x86_avx512_rsqrt28_pd */ DoesNotAccessMemory,
+ /* x86_avx512_rsqrt28_ps */ DoesNotAccessMemory,
+ /* x86_avx512_rsqrt28_sd */ DoesNotAccessMemory,
+ /* x86_avx512_rsqrt28_ss */ DoesNotAccessMemory,
+ /* x86_avx512_scatter_dpd_512 */ OnlyAccessesArgumentPointees,
+ /* x86_avx512_scatter_dpi_512 */ OnlyAccessesArgumentPointees,
+ /* x86_avx512_scatter_dpq_512 */ OnlyAccessesArgumentPointees,
+ /* x86_avx512_scatter_dps_512 */ OnlyAccessesArgumentPointees,
+ /* x86_avx512_scatter_qpd_512 */ OnlyAccessesArgumentPointees,
+ /* x86_avx512_scatter_qpi_512 */ OnlyAccessesArgumentPointees,
+ /* x86_avx512_scatter_qpq_512 */ OnlyAccessesArgumentPointees,
+ /* x86_avx512_scatter_qps_512 */ OnlyAccessesArgumentPointees,
+ /* x86_avx512_scatterpf_dpd_512 */ OnlyAccessesArgumentPointees,
+ /* x86_avx512_scatterpf_dps_512 */ OnlyAccessesArgumentPointees,
+ /* x86_avx512_scatterpf_qpd_512 */ OnlyAccessesArgumentPointees,
+ /* x86_avx512_scatterpf_qps_512 */ OnlyAccessesArgumentPointees,
+ /* x86_avx512_sqrt_pd_512 */ DoesNotAccessMemory,
+ /* x86_avx512_sqrt_ps_512 */ DoesNotAccessMemory,
+ /* x86_avx512_sqrt_sd */ DoesNotAccessMemory,
+ /* x86_avx512_sqrt_ss */ DoesNotAccessMemory,
+ /* x86_avx512_vbroadcast_sd_512 */ OnlyReadsArgumentPointees,
+ /* x86_avx512_vbroadcast_sd_pd_512 */ DoesNotAccessMemory,
+ /* x86_avx512_vbroadcast_ss_512 */ OnlyReadsArgumentPointees,
+ /* x86_avx512_vbroadcast_ss_ps_512 */ DoesNotAccessMemory,
+ /* x86_avx_addsub_pd_256 */ DoesNotAccessMemory,
+ /* x86_avx_addsub_ps_256 */ DoesNotAccessMemory,
+ /* x86_avx_blend_pd_256 */ DoesNotAccessMemory,
+ /* x86_avx_blend_ps_256 */ DoesNotAccessMemory,
+ /* x86_avx_blendv_pd_256 */ DoesNotAccessMemory,
+ /* x86_avx_blendv_ps_256 */ DoesNotAccessMemory,
+ /* x86_avx_cmp_pd_256 */ DoesNotAccessMemory,
+ /* x86_avx_cmp_ps_256 */ DoesNotAccessMemory,
+ /* x86_avx_cvt_pd2_ps_256 */ DoesNotAccessMemory,
+ /* x86_avx_cvt_pd2dq_256 */ DoesNotAccessMemory,
+ /* x86_avx_cvt_ps2_pd_256 */ DoesNotAccessMemory,
+ /* x86_avx_cvt_ps2dq_256 */ DoesNotAccessMemory,
+ /* x86_avx_cvtdq2_pd_256 */ DoesNotAccessMemory,
+ /* x86_avx_cvtdq2_ps_256 */ DoesNotAccessMemory,
+ /* x86_avx_cvtt_pd2dq_256 */ DoesNotAccessMemory,
+ /* x86_avx_cvtt_ps2dq_256 */ DoesNotAccessMemory,
+ /* x86_avx_dp_ps_256 */ DoesNotAccessMemory,
+ /* x86_avx_hadd_pd_256 */ DoesNotAccessMemory,
+ /* x86_avx_hadd_ps_256 */ DoesNotAccessMemory,
+ /* x86_avx_hsub_pd_256 */ DoesNotAccessMemory,
+ /* x86_avx_hsub_ps_256 */ DoesNotAccessMemory,
+ /* x86_avx_ldu_dq_256 */ OnlyReadsMemory,
+ /* x86_avx_maskload_pd */ OnlyReadsArgumentPointees,
+ /* x86_avx_maskload_pd_256 */ OnlyReadsArgumentPointees,
+ /* x86_avx_maskload_ps */ OnlyReadsArgumentPointees,
+ /* x86_avx_maskload_ps_256 */ OnlyReadsArgumentPointees,
+ /* x86_avx_maskstore_pd */ OnlyAccessesArgumentPointees,
+ /* x86_avx_maskstore_pd_256 */ OnlyAccessesArgumentPointees,
+ /* x86_avx_maskstore_ps */ OnlyAccessesArgumentPointees,
+ /* x86_avx_maskstore_ps_256 */ OnlyAccessesArgumentPointees,
+ /* x86_avx_max_pd_256 */ DoesNotAccessMemory,
+ /* x86_avx_max_ps_256 */ DoesNotAccessMemory,
+ /* x86_avx_min_pd_256 */ DoesNotAccessMemory,
+ /* x86_avx_min_ps_256 */ DoesNotAccessMemory,
+ /* x86_avx_movmsk_pd_256 */ DoesNotAccessMemory,
+ /* x86_avx_movmsk_ps_256 */ DoesNotAccessMemory,
+ /* x86_avx_ptestc_256 */ DoesNotAccessMemory,
+ /* x86_avx_ptestnzc_256 */ DoesNotAccessMemory,
+ /* x86_avx_ptestz_256 */ DoesNotAccessMemory,
+ /* x86_avx_rcp_ps_256 */ DoesNotAccessMemory,
+ /* x86_avx_round_pd_256 */ DoesNotAccessMemory,
+ /* x86_avx_round_ps_256 */ DoesNotAccessMemory,
+ /* x86_avx_rsqrt_ps_256 */ DoesNotAccessMemory,
+ /* x86_avx_sqrt_pd_256 */ DoesNotAccessMemory,
+ /* x86_avx_sqrt_ps_256 */ DoesNotAccessMemory,
+ /* x86_avx_storeu_dq_256 */ OnlyAccessesArgumentPointees,
+ /* x86_avx_storeu_pd_256 */ OnlyAccessesArgumentPointees,
+ /* x86_avx_storeu_ps_256 */ OnlyAccessesArgumentPointees,
+ /* x86_avx_vbroadcastf128_pd_256 */ OnlyReadsArgumentPointees,
+ /* x86_avx_vbroadcastf128_ps_256 */ OnlyReadsArgumentPointees,
+ /* x86_avx_vextractf128_pd_256 */ DoesNotAccessMemory,
+ /* x86_avx_vextractf128_ps_256 */ DoesNotAccessMemory,
+ /* x86_avx_vextractf128_si_256 */ DoesNotAccessMemory,
+ /* x86_avx_vinsertf128_pd_256 */ DoesNotAccessMemory,
+ /* x86_avx_vinsertf128_ps_256 */ DoesNotAccessMemory,
+ /* x86_avx_vinsertf128_si_256 */ DoesNotAccessMemory,
+ /* x86_avx_vperm2f128_pd_256 */ DoesNotAccessMemory,
+ /* x86_avx_vperm2f128_ps_256 */ DoesNotAccessMemory,
+ /* x86_avx_vperm2f128_si_256 */ DoesNotAccessMemory,
+ /* x86_avx_vpermilvar_pd */ DoesNotAccessMemory,
+ /* x86_avx_vpermilvar_pd_256 */ DoesNotAccessMemory,
+ /* x86_avx_vpermilvar_ps */ DoesNotAccessMemory,
+ /* x86_avx_vpermilvar_ps_256 */ DoesNotAccessMemory,
+ /* x86_avx_vtestc_pd */ DoesNotAccessMemory,
+ /* x86_avx_vtestc_pd_256 */ DoesNotAccessMemory,
+ /* x86_avx_vtestc_ps */ DoesNotAccessMemory,
+ /* x86_avx_vtestc_ps_256 */ DoesNotAccessMemory,
+ /* x86_avx_vtestnzc_pd */ DoesNotAccessMemory,
+ /* x86_avx_vtestnzc_pd_256 */ DoesNotAccessMemory,
+ /* x86_avx_vtestnzc_ps */ DoesNotAccessMemory,
+ /* x86_avx_vtestnzc_ps_256 */ DoesNotAccessMemory,
+ /* x86_avx_vtestz_pd */ DoesNotAccessMemory,
+ /* x86_avx_vtestz_pd_256 */ DoesNotAccessMemory,
+ /* x86_avx_vtestz_ps */ DoesNotAccessMemory,
+ /* x86_avx_vtestz_ps_256 */ DoesNotAccessMemory,
+ /* x86_avx_vzeroall */ UnknownModRefBehavior,
+ /* x86_avx_vzeroupper */ UnknownModRefBehavior,
+ /* x86_bmi_bextr_32 */ DoesNotAccessMemory,
+ /* x86_bmi_bextr_64 */ DoesNotAccessMemory,
+ /* x86_bmi_bzhi_32 */ DoesNotAccessMemory,
+ /* x86_bmi_bzhi_64 */ DoesNotAccessMemory,
+ /* x86_bmi_pdep_32 */ DoesNotAccessMemory,
+ /* x86_bmi_pdep_64 */ DoesNotAccessMemory,
+ /* x86_bmi_pext_32 */ DoesNotAccessMemory,
+ /* x86_bmi_pext_64 */ DoesNotAccessMemory,
+ /* x86_fma_vfmadd_pd */ DoesNotAccessMemory,
+ /* x86_fma_vfmadd_pd_256 */ DoesNotAccessMemory,
+ /* x86_fma_vfmadd_pd_512 */ DoesNotAccessMemory,
+ /* x86_fma_vfmadd_ps */ DoesNotAccessMemory,
+ /* x86_fma_vfmadd_ps_256 */ DoesNotAccessMemory,
+ /* x86_fma_vfmadd_ps_512 */ DoesNotAccessMemory,
+ /* x86_fma_vfmadd_sd */ DoesNotAccessMemory,
+ /* x86_fma_vfmadd_ss */ DoesNotAccessMemory,
+ /* x86_fma_vfmaddsub_pd */ DoesNotAccessMemory,
+ /* x86_fma_vfmaddsub_pd_256 */ DoesNotAccessMemory,
+ /* x86_fma_vfmaddsub_pd_512 */ DoesNotAccessMemory,
+ /* x86_fma_vfmaddsub_ps */ DoesNotAccessMemory,
+ /* x86_fma_vfmaddsub_ps_256 */ DoesNotAccessMemory,
+ /* x86_fma_vfmaddsub_ps_512 */ DoesNotAccessMemory,
+ /* x86_fma_vfmsub_pd */ DoesNotAccessMemory,
+ /* x86_fma_vfmsub_pd_256 */ DoesNotAccessMemory,
+ /* x86_fma_vfmsub_pd_512 */ DoesNotAccessMemory,
+ /* x86_fma_vfmsub_ps */ DoesNotAccessMemory,
+ /* x86_fma_vfmsub_ps_256 */ DoesNotAccessMemory,
+ /* x86_fma_vfmsub_ps_512 */ DoesNotAccessMemory,
+ /* x86_fma_vfmsub_sd */ DoesNotAccessMemory,
+ /* x86_fma_vfmsub_ss */ DoesNotAccessMemory,
+ /* x86_fma_vfmsubadd_pd */ DoesNotAccessMemory,
+ /* x86_fma_vfmsubadd_pd_256 */ DoesNotAccessMemory,
+ /* x86_fma_vfmsubadd_pd_512 */ DoesNotAccessMemory,
+ /* x86_fma_vfmsubadd_ps */ DoesNotAccessMemory,
+ /* x86_fma_vfmsubadd_ps_256 */ DoesNotAccessMemory,
+ /* x86_fma_vfmsubadd_ps_512 */ DoesNotAccessMemory,
+ /* x86_fma_vfnmadd_pd */ DoesNotAccessMemory,
+ /* x86_fma_vfnmadd_pd_256 */ DoesNotAccessMemory,
+ /* x86_fma_vfnmadd_pd_512 */ DoesNotAccessMemory,
+ /* x86_fma_vfnmadd_ps */ DoesNotAccessMemory,
+ /* x86_fma_vfnmadd_ps_256 */ DoesNotAccessMemory,
+ /* x86_fma_vfnmadd_ps_512 */ DoesNotAccessMemory,
+ /* x86_fma_vfnmadd_sd */ DoesNotAccessMemory,
+ /* x86_fma_vfnmadd_ss */ DoesNotAccessMemory,
+ /* x86_fma_vfnmsub_pd */ DoesNotAccessMemory,
+ /* x86_fma_vfnmsub_pd_256 */ DoesNotAccessMemory,
+ /* x86_fma_vfnmsub_pd_512 */ DoesNotAccessMemory,
+ /* x86_fma_vfnmsub_ps */ DoesNotAccessMemory,
+ /* x86_fma_vfnmsub_ps_256 */ DoesNotAccessMemory,
+ /* x86_fma_vfnmsub_ps_512 */ DoesNotAccessMemory,
+ /* x86_fma_vfnmsub_sd */ DoesNotAccessMemory,
+ /* x86_fma_vfnmsub_ss */ DoesNotAccessMemory,
+ /* x86_int */ UnknownModRefBehavior,
+ /* x86_mmx_emms */ UnknownModRefBehavior,
+ /* x86_mmx_femms */ UnknownModRefBehavior,
+ /* x86_mmx_maskmovq */ UnknownModRefBehavior,
+ /* x86_mmx_movnt_dq */ UnknownModRefBehavior,
+ /* x86_mmx_packssdw */ DoesNotAccessMemory,
+ /* x86_mmx_packsswb */ DoesNotAccessMemory,
+ /* x86_mmx_packuswb */ DoesNotAccessMemory,
+ /* x86_mmx_padd_b */ DoesNotAccessMemory,
+ /* x86_mmx_padd_d */ DoesNotAccessMemory,
+ /* x86_mmx_padd_q */ DoesNotAccessMemory,
+ /* x86_mmx_padd_w */ DoesNotAccessMemory,
+ /* x86_mmx_padds_b */ DoesNotAccessMemory,
+ /* x86_mmx_padds_w */ DoesNotAccessMemory,
+ /* x86_mmx_paddus_b */ DoesNotAccessMemory,
+ /* x86_mmx_paddus_w */ DoesNotAccessMemory,
+ /* x86_mmx_palignr_b */ DoesNotAccessMemory,
+ /* x86_mmx_pand */ DoesNotAccessMemory,
+ /* x86_mmx_pandn */ DoesNotAccessMemory,
+ /* x86_mmx_pavg_b */ DoesNotAccessMemory,
+ /* x86_mmx_pavg_w */ DoesNotAccessMemory,
+ /* x86_mmx_pcmpeq_b */ DoesNotAccessMemory,
+ /* x86_mmx_pcmpeq_d */ DoesNotAccessMemory,
+ /* x86_mmx_pcmpeq_w */ DoesNotAccessMemory,
+ /* x86_mmx_pcmpgt_b */ DoesNotAccessMemory,
+ /* x86_mmx_pcmpgt_d */ DoesNotAccessMemory,
+ /* x86_mmx_pcmpgt_w */ DoesNotAccessMemory,
+ /* x86_mmx_pextr_w */ DoesNotAccessMemory,
+ /* x86_mmx_pinsr_w */ DoesNotAccessMemory,
+ /* x86_mmx_pmadd_wd */ DoesNotAccessMemory,
+ /* x86_mmx_pmaxs_w */ DoesNotAccessMemory,
+ /* x86_mmx_pmaxu_b */ DoesNotAccessMemory,
+ /* x86_mmx_pmins_w */ DoesNotAccessMemory,
+ /* x86_mmx_pminu_b */ DoesNotAccessMemory,
+ /* x86_mmx_pmovmskb */ DoesNotAccessMemory,
+ /* x86_mmx_pmulh_w */ DoesNotAccessMemory,
+ /* x86_mmx_pmulhu_w */ DoesNotAccessMemory,
+ /* x86_mmx_pmull_w */ DoesNotAccessMemory,
+ /* x86_mmx_pmulu_dq */ DoesNotAccessMemory,
+ /* x86_mmx_por */ DoesNotAccessMemory,
+ /* x86_mmx_psad_bw */ DoesNotAccessMemory,
+ /* x86_mmx_psll_d */ DoesNotAccessMemory,
+ /* x86_mmx_psll_q */ DoesNotAccessMemory,
+ /* x86_mmx_psll_w */ DoesNotAccessMemory,
+ /* x86_mmx_pslli_d */ DoesNotAccessMemory,
+ /* x86_mmx_pslli_q */ DoesNotAccessMemory,
+ /* x86_mmx_pslli_w */ DoesNotAccessMemory,
+ /* x86_mmx_psra_d */ DoesNotAccessMemory,
+ /* x86_mmx_psra_w */ DoesNotAccessMemory,
+ /* x86_mmx_psrai_d */ DoesNotAccessMemory,
+ /* x86_mmx_psrai_w */ DoesNotAccessMemory,
+ /* x86_mmx_psrl_d */ DoesNotAccessMemory,
+ /* x86_mmx_psrl_q */ DoesNotAccessMemory,
+ /* x86_mmx_psrl_w */ DoesNotAccessMemory,
+ /* x86_mmx_psrli_d */ DoesNotAccessMemory,
+ /* x86_mmx_psrli_q */ DoesNotAccessMemory,
+ /* x86_mmx_psrli_w */ DoesNotAccessMemory,
+ /* x86_mmx_psub_b */ DoesNotAccessMemory,
+ /* x86_mmx_psub_d */ DoesNotAccessMemory,
+ /* x86_mmx_psub_q */ DoesNotAccessMemory,
+ /* x86_mmx_psub_w */ DoesNotAccessMemory,
+ /* x86_mmx_psubs_b */ DoesNotAccessMemory,
+ /* x86_mmx_psubs_w */ DoesNotAccessMemory,
+ /* x86_mmx_psubus_b */ DoesNotAccessMemory,
+ /* x86_mmx_psubus_w */ DoesNotAccessMemory,
+ /* x86_mmx_punpckhbw */ DoesNotAccessMemory,
+ /* x86_mmx_punpckhdq */ DoesNotAccessMemory,
+ /* x86_mmx_punpckhwd */ DoesNotAccessMemory,
+ /* x86_mmx_punpcklbw */ DoesNotAccessMemory,
+ /* x86_mmx_punpckldq */ DoesNotAccessMemory,
+ /* x86_mmx_punpcklwd */ DoesNotAccessMemory,
+ /* x86_mmx_pxor */ DoesNotAccessMemory,
+ /* x86_pclmulqdq */ DoesNotAccessMemory,
+ /* x86_rdfsbase_32 */ UnknownModRefBehavior,
+ /* x86_rdfsbase_64 */ UnknownModRefBehavior,
+ /* x86_rdgsbase_32 */ UnknownModRefBehavior,
+ /* x86_rdgsbase_64 */ UnknownModRefBehavior,
+ /* x86_rdpmc */ UnknownModRefBehavior,
+ /* x86_rdrand_16 */ UnknownModRefBehavior,
+ /* x86_rdrand_32 */ UnknownModRefBehavior,
+ /* x86_rdrand_64 */ UnknownModRefBehavior,
+ /* x86_rdseed_16 */ UnknownModRefBehavior,
+ /* x86_rdseed_32 */ UnknownModRefBehavior,
+ /* x86_rdseed_64 */ UnknownModRefBehavior,
+ /* x86_rdtsc */ UnknownModRefBehavior,
+ /* x86_rdtscp */ OnlyAccessesArgumentPointees,
+ /* x86_sha1msg1 */ DoesNotAccessMemory,
+ /* x86_sha1msg2 */ DoesNotAccessMemory,
+ /* x86_sha1nexte */ DoesNotAccessMemory,
+ /* x86_sha1rnds4 */ DoesNotAccessMemory,
+ /* x86_sha256msg1 */ DoesNotAccessMemory,
+ /* x86_sha256msg2 */ DoesNotAccessMemory,
+ /* x86_sha256rnds2 */ DoesNotAccessMemory,
+ /* 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_pause */ UnknownModRefBehavior,
+ /* 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_pshuf_d */ DoesNotAccessMemory,
+ /* x86_sse2_pshufh_w */ DoesNotAccessMemory,
+ /* x86_sse2_pshufl_w */ DoesNotAccessMemory,
+ /* x86_sse2_psll_d */ DoesNotAccessMemory,
+ /* x86_sse2_psll_dq */ DoesNotAccessMemory,
+ /* x86_sse2_psll_dq_bs */ DoesNotAccessMemory,
+ /* x86_sse2_psll_q */ DoesNotAccessMemory,
+ /* x86_sse2_psll_w */ DoesNotAccessMemory,
+ /* x86_sse2_pslli_d */ DoesNotAccessMemory,
+ /* x86_sse2_pslli_q */ DoesNotAccessMemory,
+ /* x86_sse2_pslli_w */ DoesNotAccessMemory,
+ /* x86_sse2_psra_d */ DoesNotAccessMemory,
+ /* x86_sse2_psra_w */ DoesNotAccessMemory,
+ /* x86_sse2_psrai_d */ DoesNotAccessMemory,
+ /* x86_sse2_psrai_w */ DoesNotAccessMemory,
+ /* x86_sse2_psrl_d */ DoesNotAccessMemory,
+ /* x86_sse2_psrl_dq */ DoesNotAccessMemory,
+ /* x86_sse2_psrl_dq_bs */ DoesNotAccessMemory,
+ /* x86_sse2_psrl_q */ DoesNotAccessMemory,
+ /* x86_sse2_psrl_w */ DoesNotAccessMemory,
+ /* x86_sse2_psrli_d */ DoesNotAccessMemory,
+ /* x86_sse2_psrli_q */ DoesNotAccessMemory,
+ /* x86_sse2_psrli_w */ DoesNotAccessMemory,
+ /* x86_sse2_psubs_b */ DoesNotAccessMemory,
+ /* x86_sse2_psubs_w */ DoesNotAccessMemory,
+ /* x86_sse2_psubus_b */ DoesNotAccessMemory,
+ /* x86_sse2_psubus_w */ DoesNotAccessMemory,
+ /* x86_sse2_sqrt_pd */ DoesNotAccessMemory,
+ /* x86_sse2_sqrt_sd */ DoesNotAccessMemory,
+ /* x86_sse2_storel_dq */ OnlyAccessesArgumentPointees,
+ /* x86_sse2_storeu_dq */ OnlyAccessesArgumentPointees,
+ /* x86_sse2_storeu_pd */ OnlyAccessesArgumentPointees,
+ /* x86_sse2_sub_sd */ DoesNotAccessMemory,
+ /* x86_sse2_ucomieq_sd */ DoesNotAccessMemory,
+ /* x86_sse2_ucomige_sd */ DoesNotAccessMemory,
+ /* x86_sse2_ucomigt_sd */ DoesNotAccessMemory,
+ /* x86_sse2_ucomile_sd */ DoesNotAccessMemory,
+ /* x86_sse2_ucomilt_sd */ DoesNotAccessMemory,
+ /* x86_sse2_ucomineq_sd */ DoesNotAccessMemory,
+ /* x86_sse3_addsub_pd */ DoesNotAccessMemory,
+ /* x86_sse3_addsub_ps */ DoesNotAccessMemory,
+ /* x86_sse3_hadd_pd */ DoesNotAccessMemory,
+ /* x86_sse3_hadd_ps */ DoesNotAccessMemory,
+ /* x86_sse3_hsub_pd */ DoesNotAccessMemory,
+ /* x86_sse3_hsub_ps */ DoesNotAccessMemory,
+ /* x86_sse3_ldu_dq */ OnlyReadsMemory,
+ /* x86_sse3_monitor */ UnknownModRefBehavior,
+ /* x86_sse3_mwait */ UnknownModRefBehavior,
+ /* x86_sse41_blendpd */ DoesNotAccessMemory,
+ /* x86_sse41_blendps */ DoesNotAccessMemory,
+ /* x86_sse41_blendvpd */ DoesNotAccessMemory,
+ /* x86_sse41_blendvps */ DoesNotAccessMemory,
+ /* x86_sse41_dppd */ DoesNotAccessMemory,
+ /* x86_sse41_dpps */ DoesNotAccessMemory,
+ /* x86_sse41_extractps */ DoesNotAccessMemory,
+ /* x86_sse41_insertps */ DoesNotAccessMemory,
+ /* x86_sse41_movntdqa */ OnlyReadsMemory,
+ /* x86_sse41_mpsadbw */ DoesNotAccessMemory,
+ /* x86_sse41_packusdw */ DoesNotAccessMemory,
+ /* x86_sse41_pblendvb */ DoesNotAccessMemory,
+ /* x86_sse41_pblendw */ DoesNotAccessMemory,
+ /* x86_sse41_pextrb */ DoesNotAccessMemory,
+ /* x86_sse41_pextrd */ DoesNotAccessMemory,
+ /* x86_sse41_pextrq */ DoesNotAccessMemory,
+ /* x86_sse41_phminposuw */ DoesNotAccessMemory,
+ /* x86_sse41_pmaxsb */ DoesNotAccessMemory,
+ /* x86_sse41_pmaxsd */ DoesNotAccessMemory,
+ /* x86_sse41_pmaxud */ DoesNotAccessMemory,
+ /* x86_sse41_pmaxuw */ DoesNotAccessMemory,
+ /* x86_sse41_pminsb */ DoesNotAccessMemory,
+ /* x86_sse41_pminsd */ DoesNotAccessMemory,
+ /* x86_sse41_pminud */ DoesNotAccessMemory,
+ /* x86_sse41_pminuw */ DoesNotAccessMemory,
+ /* x86_sse41_pmovsxbd */ DoesNotAccessMemory,
+ /* x86_sse41_pmovsxbq */ DoesNotAccessMemory,
+ /* x86_sse41_pmovsxbw */ DoesNotAccessMemory,
+ /* x86_sse41_pmovsxdq */ DoesNotAccessMemory,
+ /* x86_sse41_pmovsxwd */ DoesNotAccessMemory,
+ /* x86_sse41_pmovsxwq */ DoesNotAccessMemory,
+ /* x86_sse41_pmovzxbd */ DoesNotAccessMemory,
+ /* x86_sse41_pmovzxbq */ DoesNotAccessMemory,
+ /* x86_sse41_pmovzxbw */ DoesNotAccessMemory,
+ /* x86_sse41_pmovzxdq */ DoesNotAccessMemory,
+ /* x86_sse41_pmovzxwd */ DoesNotAccessMemory,
+ /* x86_sse41_pmovzxwq */ DoesNotAccessMemory,
+ /* x86_sse41_pmuldq */ DoesNotAccessMemory,
+ /* x86_sse41_ptestc */ DoesNotAccessMemory,
+ /* x86_sse41_ptestnzc */ DoesNotAccessMemory,
+ /* x86_sse41_ptestz */ DoesNotAccessMemory,
+ /* x86_sse41_round_pd */ DoesNotAccessMemory,
+ /* x86_sse41_round_ps */ DoesNotAccessMemory,
+ /* x86_sse41_round_sd */ DoesNotAccessMemory,
+ /* x86_sse41_round_ss */ DoesNotAccessMemory,
+ /* x86_sse42_crc32_32_16 */ DoesNotAccessMemory,
+ /* x86_sse42_crc32_32_32 */ DoesNotAccessMemory,
+ /* x86_sse42_crc32_32_8 */ DoesNotAccessMemory,
+ /* x86_sse42_crc32_64_64 */ DoesNotAccessMemory,
+ /* x86_sse42_pcmpestri128 */ DoesNotAccessMemory,
+ /* x86_sse42_pcmpestria128 */ DoesNotAccessMemory,
+ /* x86_sse42_pcmpestric128 */ DoesNotAccessMemory,
+ /* x86_sse42_pcmpestrio128 */ DoesNotAccessMemory,
+ /* x86_sse42_pcmpestris128 */ DoesNotAccessMemory,
+ /* x86_sse42_pcmpestriz128 */ DoesNotAccessMemory,
+ /* x86_sse42_pcmpestrm128 */ DoesNotAccessMemory,
+ /* x86_sse42_pcmpistri128 */ DoesNotAccessMemory,
+ /* x86_sse42_pcmpistria128 */ DoesNotAccessMemory,
+ /* x86_sse42_pcmpistric128 */ DoesNotAccessMemory,
+ /* x86_sse42_pcmpistrio128 */ DoesNotAccessMemory,
+ /* x86_sse42_pcmpistris128 */ DoesNotAccessMemory,
+ /* x86_sse42_pcmpistriz128 */ DoesNotAccessMemory,
+ /* x86_sse42_pcmpistrm128 */ DoesNotAccessMemory,
+ /* x86_sse4a_extrq */ DoesNotAccessMemory,
+ /* x86_sse4a_extrqi */ DoesNotAccessMemory,
+ /* x86_sse4a_insertq */ DoesNotAccessMemory,
+ /* x86_sse4a_insertqi */ DoesNotAccessMemory,
+ /* x86_sse4a_movnt_sd */ UnknownModRefBehavior,
+ /* x86_sse4a_movnt_ss */ UnknownModRefBehavior,
+ /* x86_sse_add_ss */ DoesNotAccessMemory,
+ /* x86_sse_cmp_ps */ DoesNotAccessMemory,
+ /* x86_sse_cmp_ss */ DoesNotAccessMemory,
+ /* x86_sse_comieq_ss */ DoesNotAccessMemory,
+ /* x86_sse_comige_ss */ DoesNotAccessMemory,
+ /* x86_sse_comigt_ss */ DoesNotAccessMemory,
+ /* x86_sse_comile_ss */ DoesNotAccessMemory,
+ /* x86_sse_comilt_ss */ DoesNotAccessMemory,
+ /* x86_sse_comineq_ss */ DoesNotAccessMemory,
+ /* x86_sse_cvtpd2pi */ DoesNotAccessMemory,
+ /* x86_sse_cvtpi2pd */ DoesNotAccessMemory,
+ /* x86_sse_cvtpi2ps */ DoesNotAccessMemory,
+ /* x86_sse_cvtps2pi */ DoesNotAccessMemory,
+ /* x86_sse_cvtsi2ss */ DoesNotAccessMemory,
+ /* x86_sse_cvtsi642ss */ DoesNotAccessMemory,
+ /* x86_sse_cvtss2si */ DoesNotAccessMemory,
+ /* x86_sse_cvtss2si64 */ DoesNotAccessMemory,
+ /* x86_sse_cvttpd2pi */ DoesNotAccessMemory,
+ /* x86_sse_cvttps2pi */ DoesNotAccessMemory,
+ /* x86_sse_cvttss2si */ DoesNotAccessMemory,
+ /* x86_sse_cvttss2si64 */ DoesNotAccessMemory,
+ /* x86_sse_div_ss */ DoesNotAccessMemory,
+ /* x86_sse_ldmxcsr */ UnknownModRefBehavior,
+ /* x86_sse_max_ps */ DoesNotAccessMemory,
+ /* x86_sse_max_ss */ DoesNotAccessMemory,
+ /* x86_sse_min_ps */ DoesNotAccessMemory,
+ /* x86_sse_min_ss */ DoesNotAccessMemory,
+ /* x86_sse_movmsk_ps */ DoesNotAccessMemory,
+ /* x86_sse_mul_ss */ DoesNotAccessMemory,
+ /* x86_sse_pshuf_w */ DoesNotAccessMemory,
+ /* x86_sse_rcp_ps */ DoesNotAccessMemory,
+ /* x86_sse_rcp_ss */ DoesNotAccessMemory,
+ /* x86_sse_rsqrt_ps */ DoesNotAccessMemory,
+ /* x86_sse_rsqrt_ss */ DoesNotAccessMemory,
+ /* x86_sse_sfence */ UnknownModRefBehavior,
+ /* x86_sse_sqrt_ps */ DoesNotAccessMemory,
+ /* x86_sse_sqrt_ss */ DoesNotAccessMemory,
+ /* x86_sse_stmxcsr */ UnknownModRefBehavior,
+ /* x86_sse_storeu_ps */ OnlyAccessesArgumentPointees,
+ /* x86_sse_sub_ss */ DoesNotAccessMemory,
+ /* x86_sse_ucomieq_ss */ DoesNotAccessMemory,
+ /* x86_sse_ucomige_ss */ DoesNotAccessMemory,
+ /* x86_sse_ucomigt_ss */ DoesNotAccessMemory,
+ /* x86_sse_ucomile_ss */ DoesNotAccessMemory,
+ /* x86_sse_ucomilt_ss */ DoesNotAccessMemory,
+ /* x86_sse_ucomineq_ss */ DoesNotAccessMemory,
+ /* x86_ssse3_pabs_b */ DoesNotAccessMemory,
+ /* x86_ssse3_pabs_b_128 */ DoesNotAccessMemory,
+ /* x86_ssse3_pabs_d */ DoesNotAccessMemory,
+ /* x86_ssse3_pabs_d_128 */ DoesNotAccessMemory,
+ /* x86_ssse3_pabs_w */ DoesNotAccessMemory,
+ /* x86_ssse3_pabs_w_128 */ DoesNotAccessMemory,
+ /* x86_ssse3_phadd_d */ DoesNotAccessMemory,
+ /* x86_ssse3_phadd_d_128 */ DoesNotAccessMemory,
+ /* x86_ssse3_phadd_sw */ DoesNotAccessMemory,
+ /* x86_ssse3_phadd_sw_128 */ DoesNotAccessMemory,
+ /* x86_ssse3_phadd_w */ DoesNotAccessMemory,
+ /* x86_ssse3_phadd_w_128 */ DoesNotAccessMemory,
+ /* x86_ssse3_phsub_d */ DoesNotAccessMemory,
+ /* x86_ssse3_phsub_d_128 */ DoesNotAccessMemory,
+ /* x86_ssse3_phsub_sw */ DoesNotAccessMemory,
+ /* x86_ssse3_phsub_sw_128 */ DoesNotAccessMemory,
+ /* x86_ssse3_phsub_w */ DoesNotAccessMemory,
+ /* x86_ssse3_phsub_w_128 */ DoesNotAccessMemory,
+ /* x86_ssse3_pmadd_ub_sw */ DoesNotAccessMemory,
+ /* x86_ssse3_pmadd_ub_sw_128 */ DoesNotAccessMemory,
+ /* x86_ssse3_pmul_hr_sw */ DoesNotAccessMemory,
+ /* x86_ssse3_pmul_hr_sw_128 */ DoesNotAccessMemory,
+ /* x86_ssse3_pshuf_b */ DoesNotAccessMemory,
+ /* x86_ssse3_pshuf_b_128 */ DoesNotAccessMemory,
+ /* x86_ssse3_psign_b */ DoesNotAccessMemory,
+ /* x86_ssse3_psign_b_128 */ DoesNotAccessMemory,
+ /* x86_ssse3_psign_d */ DoesNotAccessMemory,
+ /* x86_ssse3_psign_d_128 */ DoesNotAccessMemory,
+ /* x86_ssse3_psign_w */ DoesNotAccessMemory,
+ /* x86_ssse3_psign_w_128 */ DoesNotAccessMemory,
+ /* x86_tbm_bextri_u32 */ DoesNotAccessMemory,
+ /* x86_tbm_bextri_u64 */ 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_xabort */ UnknownModRefBehavior,
+ /* x86_xbegin */ UnknownModRefBehavior,
+ /* x86_xend */ UnknownModRefBehavior,
+ /* x86_xop_vfrcz_pd */ DoesNotAccessMemory,
+ /* x86_xop_vfrcz_pd_256 */ DoesNotAccessMemory,
+ /* x86_xop_vfrcz_ps */ DoesNotAccessMemory,
+ /* x86_xop_vfrcz_ps_256 */ DoesNotAccessMemory,
+ /* x86_xop_vfrcz_sd */ DoesNotAccessMemory,
+ /* x86_xop_vfrcz_ss */ DoesNotAccessMemory,
+ /* x86_xop_vpcmov */ DoesNotAccessMemory,
+ /* x86_xop_vpcmov_256 */ DoesNotAccessMemory,
+ /* x86_xop_vpcomb */ DoesNotAccessMemory,
+ /* x86_xop_vpcomd */ DoesNotAccessMemory,
+ /* x86_xop_vpcomq */ DoesNotAccessMemory,
+ /* x86_xop_vpcomub */ DoesNotAccessMemory,
+ /* x86_xop_vpcomud */ DoesNotAccessMemory,
+ /* x86_xop_vpcomuq */ DoesNotAccessMemory,
+ /* x86_xop_vpcomuw */ DoesNotAccessMemory,
+ /* x86_xop_vpcomw */ DoesNotAccessMemory,
+ /* x86_xop_vpermil2pd */ DoesNotAccessMemory,
+ /* x86_xop_vpermil2pd_256 */ DoesNotAccessMemory,
+ /* x86_xop_vpermil2ps */ DoesNotAccessMemory,
+ /* x86_xop_vpermil2ps_256 */ DoesNotAccessMemory,
+ /* x86_xop_vphaddbd */ DoesNotAccessMemory,
+ /* x86_xop_vphaddbq */ DoesNotAccessMemory,
+ /* x86_xop_vphaddbw */ DoesNotAccessMemory,
+ /* x86_xop_vphadddq */ DoesNotAccessMemory,
+ /* x86_xop_vphaddubd */ DoesNotAccessMemory,
+ /* x86_xop_vphaddubq */ DoesNotAccessMemory,
+ /* x86_xop_vphaddubw */ DoesNotAccessMemory,
+ /* x86_xop_vphaddudq */ DoesNotAccessMemory,
+ /* x86_xop_vphadduwd */ DoesNotAccessMemory,
+ /* x86_xop_vphadduwq */ DoesNotAccessMemory,
+ /* x86_xop_vphaddwd */ DoesNotAccessMemory,
+ /* x86_xop_vphaddwq */ DoesNotAccessMemory,
+ /* x86_xop_vphsubbw */ DoesNotAccessMemory,
+ /* x86_xop_vphsubdq */ DoesNotAccessMemory,
+ /* x86_xop_vphsubwd */ DoesNotAccessMemory,
+ /* x86_xop_vpmacsdd */ DoesNotAccessMemory,
+ /* x86_xop_vpmacsdqh */ DoesNotAccessMemory,
+ /* x86_xop_vpmacsdql */ DoesNotAccessMemory,
+ /* x86_xop_vpmacssdd */ DoesNotAccessMemory,
+ /* x86_xop_vpmacssdqh */ DoesNotAccessMemory,
+ /* x86_xop_vpmacssdql */ DoesNotAccessMemory,
+ /* x86_xop_vpmacsswd */ DoesNotAccessMemory,
+ /* x86_xop_vpmacssww */ DoesNotAccessMemory,
+ /* x86_xop_vpmacswd */ DoesNotAccessMemory,
+ /* x86_xop_vpmacsww */ DoesNotAccessMemory,
+ /* x86_xop_vpmadcsswd */ DoesNotAccessMemory,
+ /* x86_xop_vpmadcswd */ DoesNotAccessMemory,
+ /* x86_xop_vpperm */ DoesNotAccessMemory,
+ /* x86_xop_vprotb */ DoesNotAccessMemory,
+ /* x86_xop_vprotbi */ DoesNotAccessMemory,
+ /* x86_xop_vprotd */ DoesNotAccessMemory,
+ /* x86_xop_vprotdi */ DoesNotAccessMemory,
+ /* x86_xop_vprotq */ DoesNotAccessMemory,
+ /* x86_xop_vprotqi */ DoesNotAccessMemory,
+ /* x86_xop_vprotw */ DoesNotAccessMemory,
+ /* x86_xop_vprotwi */ DoesNotAccessMemory,
+ /* x86_xop_vpshab */ DoesNotAccessMemory,
+ /* x86_xop_vpshad */ DoesNotAccessMemory,
+ /* x86_xop_vpshaq */ DoesNotAccessMemory,
+ /* x86_xop_vpshaw */ DoesNotAccessMemory,
+ /* x86_xop_vpshlb */ DoesNotAccessMemory,
+ /* x86_xop_vpshld */ DoesNotAccessMemory,
+ /* x86_xop_vpshlq */ DoesNotAccessMemory,
+ /* x86_xop_vpshlw */ DoesNotAccessMemory,
+ /* x86_xtest */ UnknownModRefBehavior,
+ /* xcore_bitrev */ DoesNotAccessMemory,
+ /* xcore_checkevent */ UnknownModRefBehavior,
+ /* xcore_chkct */ UnknownModRefBehavior,
+ /* xcore_clre */ UnknownModRefBehavior,
+ /* xcore_clrpt */ UnknownModRefBehavior,
+ /* xcore_clrsr */ UnknownModRefBehavior,
+ /* xcore_crc32 */ DoesNotAccessMemory,
+ /* xcore_crc8 */ DoesNotAccessMemory,
+ /* xcore_edu */ UnknownModRefBehavior,
+ /* xcore_eeu */ UnknownModRefBehavior,
+ /* xcore_endin */ UnknownModRefBehavior,
+ /* xcore_freer */ UnknownModRefBehavior,
+ /* xcore_geted */ UnknownModRefBehavior,
+ /* xcore_getet */ UnknownModRefBehavior,
+ /* xcore_getid */ DoesNotAccessMemory,
+ /* xcore_getps */ UnknownModRefBehavior,
+ /* xcore_getr */ UnknownModRefBehavior,
+ /* xcore_getst */ UnknownModRefBehavior,
+ /* xcore_getts */ UnknownModRefBehavior,
+ /* xcore_in */ UnknownModRefBehavior,
+ /* xcore_inct */ UnknownModRefBehavior,
+ /* xcore_initcp */ UnknownModRefBehavior,
+ /* xcore_initdp */ UnknownModRefBehavior,
+ /* xcore_initlr */ UnknownModRefBehavior,
+ /* xcore_initpc */ UnknownModRefBehavior,
+ /* xcore_initsp */ UnknownModRefBehavior,
+ /* xcore_inshr */ UnknownModRefBehavior,
+ /* xcore_int */ UnknownModRefBehavior,
+ /* xcore_mjoin */ UnknownModRefBehavior,
+ /* xcore_msync */ UnknownModRefBehavior,
+ /* xcore_out */ UnknownModRefBehavior,
+ /* xcore_outct */ UnknownModRefBehavior,
+ /* xcore_outshr */ UnknownModRefBehavior,
+ /* xcore_outt */ UnknownModRefBehavior,
+ /* xcore_peek */ UnknownModRefBehavior,
+ /* xcore_setc */ UnknownModRefBehavior,
+ /* xcore_setclk */ UnknownModRefBehavior,
+ /* xcore_setd */ UnknownModRefBehavior,
+ /* xcore_setev */ UnknownModRefBehavior,
+ /* xcore_setps */ UnknownModRefBehavior,
+ /* xcore_setpsc */ UnknownModRefBehavior,
+ /* xcore_setpt */ UnknownModRefBehavior,
+ /* xcore_setrdy */ UnknownModRefBehavior,
+ /* xcore_setsr */ UnknownModRefBehavior,
+ /* xcore_settw */ UnknownModRefBehavior,
+ /* xcore_setv */ UnknownModRefBehavior,
+ /* xcore_sext */ DoesNotAccessMemory,
+ /* xcore_ssync */ UnknownModRefBehavior,
+ /* xcore_syncr */ UnknownModRefBehavior,
+ /* xcore_testct */ UnknownModRefBehavior,
+ /* xcore_testwct */ UnknownModRefBehavior,
+ /* xcore_waitevent */ OnlyReadsMemory,
+ /* xcore_zext */ DoesNotAccessMemory,
+};
+
+return static_cast<ModRefBehavior>(IntrinsicModRefBehavior[iid]);
+#endif // GET_INTRINSIC_MODREF_BEHAVIOR
+
+// Get the LLVM intrinsic that corresponds to a GCC builtin.
+// This is used by the C front-end. The GCC builtin name is passed
+// in as BuiltinName, and a target prefix (e.g. 'ppc') is passed
+// in as TargetPrefix. The result is assigned to 'IntrinsicID'.
+#ifdef GET_LLVM_INTRINSIC_FOR_GCC_BUILTIN
+Intrinsic::ID Intrinsic::getIntrinsicForGCCBuiltin(const char *TargetPrefixStr, const char *BuiltinNameStr) {
+ StringRef BuiltinName(BuiltinNameStr);
+ StringRef TargetPrefix(TargetPrefixStr);
+
+ /* Target Independent Builtins */ {
+ switch (BuiltinName.size()) {
+ default: break;
+ case 10: // 1 string to match.
+ if (memcmp(BuiltinName.data()+0, "__nvvm_h2f", 10))
+ break;
+ return Intrinsic::nvvm_h2f; // "__nvvm_h2f"
+ case 11: // 2 strings to match.
+ if (memcmp(BuiltinName.data()+0, "__nvvm_", 7))
+ break;
+ switch (BuiltinName[7]) {
+ default: break;
+ case 'b': // 1 string to match.
+ if (memcmp(BuiltinName.data()+8, "ar0", 3))
+ break;
+ return Intrinsic::nvvm_barrier0; // "__nvvm_bar0"
+ case 'p': // 1 string to match.
+ if (memcmp(BuiltinName.data()+8, "rmt", 3))
+ break;
+ return Intrinsic::nvvm_prmt; // "__nvvm_prmt"
+ }
+ break;
+ case 12: // 5 strings to match.
+ if (memcmp(BuiltinName.data()+0, "__nvvm_", 7))
+ break;
+ switch (BuiltinName[7]) {
+ default: break;
+ case 'a': // 1 string to match.
+ if (memcmp(BuiltinName.data()+8, "bs_i", 4))
+ break;
+ return Intrinsic::nvvm_abs_i; // "__nvvm_abs_i"
+ case 'c': // 1 string to match.
+ if (memcmp(BuiltinName.data()+8, "lz_i", 4))
+ break;
+ return Intrinsic::nvvm_clz_i; // "__nvvm_clz_i"
+ case 'm': // 2 strings to match.
+ switch (BuiltinName[8]) {
+ default: break;
+ case 'a': // 1 string to match.
+ if (memcmp(BuiltinName.data()+9, "x_i", 3))
+ break;
+ return Intrinsic::nvvm_max_i; // "__nvvm_max_i"
+ case 'i': // 1 string to match.
+ if (memcmp(BuiltinName.data()+9, "n_i", 3))
+ break;
+ return Intrinsic::nvvm_min_i; // "__nvvm_min_i"
+ }
+ break;
+ case 's': // 1 string to match.
+ if (memcmp(BuiltinName.data()+8, "ad_i", 4))
+ break;
+ return Intrinsic::nvvm_sad_i; // "__nvvm_sad_i"
+ }
+ break;
+ case 13: // 43 strings to match.
+ if (memcmp(BuiltinName.data()+0, "__", 2))
+ break;
+ switch (BuiltinName[2]) {
+ default: break;
+ case 'n': // 42 strings to match.
+ if (memcmp(BuiltinName.data()+3, "vvm_", 4))
+ break;
+ switch (BuiltinName[7]) {
+ default: break;
+ case 'a': // 1 string to match.
+ if (memcmp(BuiltinName.data()+8, "bs_ll", 5))
+ break;
+ return Intrinsic::nvvm_abs_ll; // "__nvvm_abs_ll"
+ case 'b': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+8, "rev", 3))
+ break;
+ switch (BuiltinName[11]) {
+ default: break;
+ case '3': // 1 string to match.
+ if (BuiltinName[12] != '2')
+ break;
+ return Intrinsic::nvvm_brev32; // "__nvvm_brev32"
+ case '6': // 1 string to match.
+ if (BuiltinName[12] != '4')
+ break;
+ return Intrinsic::nvvm_brev64; // "__nvvm_brev64"
+ }
+ break;
+ case 'c': // 3 strings to match.
+ switch (BuiltinName[8]) {
+ default: break;
+ case 'e': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+9, "il_", 3))
+ break;
+ switch (BuiltinName[12]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::nvvm_ceil_d; // "__nvvm_ceil_d"
+ case 'f': // 1 string to match.
+ return Intrinsic::nvvm_ceil_f; // "__nvvm_ceil_f"
+ }
+ break;
+ case 'l': // 1 string to match.
+ if (memcmp(BuiltinName.data()+9, "z_ll", 4))
+ break;
+ return Intrinsic::nvvm_clz_ll; // "__nvvm_clz_ll"
+ }
+ break;
+ case 'd': // 10 strings to match.
+ if (BuiltinName[8] != '2')
+ break;
+ switch (BuiltinName[9]) {
+ default: break;
+ case 'f': // 4 strings to match.
+ if (memcmp(BuiltinName.data()+10, "_r", 2))
+ break;
+ switch (BuiltinName[12]) {
+ default: break;
+ case 'm': // 1 string to match.
+ return Intrinsic::nvvm_d2f_rm; // "__nvvm_d2f_rm"
+ case 'n': // 1 string to match.
+ return Intrinsic::nvvm_d2f_rn; // "__nvvm_d2f_rn"
+ case 'p': // 1 string to match.
+ return Intrinsic::nvvm_d2f_rp; // "__nvvm_d2f_rp"
+ case 'z': // 1 string to match.
+ return Intrinsic::nvvm_d2f_rz; // "__nvvm_d2f_rz"
+ }
+ break;
+ case 'i': // 6 strings to match.
+ if (BuiltinName[10] != '_')
+ break;
+ switch (BuiltinName[11]) {
+ default: break;
+ case 'h': // 1 string to match.
+ if (BuiltinName[12] != 'i')
+ break;
+ return Intrinsic::nvvm_d2i_hi; // "__nvvm_d2i_hi"
+ case 'l': // 1 string to match.
+ if (BuiltinName[12] != 'o')
+ break;
+ return Intrinsic::nvvm_d2i_lo; // "__nvvm_d2i_lo"
+ case 'r': // 4 strings to match.
+ switch (BuiltinName[12]) {
+ default: break;
+ case 'm': // 1 string to match.
+ return Intrinsic::nvvm_d2i_rm; // "__nvvm_d2i_rm"
+ case 'n': // 1 string to match.
+ return Intrinsic::nvvm_d2i_rn; // "__nvvm_d2i_rn"
+ case 'p': // 1 string to match.
+ return Intrinsic::nvvm_d2i_rp; // "__nvvm_d2i_rp"
+ case 'z': // 1 string to match.
+ return Intrinsic::nvvm_d2i_rz; // "__nvvm_d2i_rz"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 'f': // 11 strings to match.
+ switch (BuiltinName[8]) {
+ default: break;
+ case '2': // 5 strings to match.
+ switch (BuiltinName[9]) {
+ default: break;
+ case 'h': // 1 string to match.
+ if (memcmp(BuiltinName.data()+10, "_rn", 3))
+ break;
+ return Intrinsic::nvvm_f2h_rn; // "__nvvm_f2h_rn"
+ case 'i': // 4 strings to match.
+ if (memcmp(BuiltinName.data()+10, "_r", 2))
+ break;
+ switch (BuiltinName[12]) {
+ default: break;
+ case 'm': // 1 string to match.
+ return Intrinsic::nvvm_f2i_rm; // "__nvvm_f2i_rm"
+ case 'n': // 1 string to match.
+ return Intrinsic::nvvm_f2i_rn; // "__nvvm_f2i_rn"
+ case 'p': // 1 string to match.
+ return Intrinsic::nvvm_f2i_rp; // "__nvvm_f2i_rp"
+ case 'z': // 1 string to match.
+ return Intrinsic::nvvm_f2i_rz; // "__nvvm_f2i_rz"
+ }
+ break;
+ }
+ break;
+ case 'a': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+9, "bs_", 3))
+ break;
+ switch (BuiltinName[12]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::nvvm_fabs_d; // "__nvvm_fabs_d"
+ case 'f': // 1 string to match.
+ return Intrinsic::nvvm_fabs_f; // "__nvvm_fabs_f"
+ }
+ break;
+ case 'm': // 4 strings to match.
+ switch (BuiltinName[9]) {
+ default: break;
+ case 'a': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+10, "x_", 2))
+ break;
+ switch (BuiltinName[12]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::nvvm_fmax_d; // "__nvvm_fmax_d"
+ case 'f': // 1 string to match.
+ return Intrinsic::nvvm_fmax_f; // "__nvvm_fmax_f"
+ }
+ break;
+ case 'i': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+10, "n_", 2))
+ break;
+ switch (BuiltinName[12]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::nvvm_fmin_d; // "__nvvm_fmin_d"
+ case 'f': // 1 string to match.
+ return Intrinsic::nvvm_fmin_f; // "__nvvm_fmin_f"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 'i': // 8 strings to match.
+ if (BuiltinName[8] != '2')
+ break;
+ switch (BuiltinName[9]) {
+ default: break;
+ case 'd': // 4 strings to match.
+ if (memcmp(BuiltinName.data()+10, "_r", 2))
+ break;
+ switch (BuiltinName[12]) {
+ default: break;
+ case 'm': // 1 string to match.
+ return Intrinsic::nvvm_i2d_rm; // "__nvvm_i2d_rm"
+ case 'n': // 1 string to match.
+ return Intrinsic::nvvm_i2d_rn; // "__nvvm_i2d_rn"
+ case 'p': // 1 string to match.
+ return Intrinsic::nvvm_i2d_rp; // "__nvvm_i2d_rp"
+ case 'z': // 1 string to match.
+ return Intrinsic::nvvm_i2d_rz; // "__nvvm_i2d_rz"
+ }
+ break;
+ case 'f': // 4 strings to match.
+ if (memcmp(BuiltinName.data()+10, "_r", 2))
+ break;
+ switch (BuiltinName[12]) {
+ default: break;
+ case 'm': // 1 string to match.
+ return Intrinsic::nvvm_i2f_rm; // "__nvvm_i2f_rm"
+ case 'n': // 1 string to match.
+ return Intrinsic::nvvm_i2f_rn; // "__nvvm_i2f_rn"
+ case 'p': // 1 string to match.
+ return Intrinsic::nvvm_i2f_rp; // "__nvvm_i2f_rp"
+ case 'z': // 1 string to match.
+ return Intrinsic::nvvm_i2f_rz; // "__nvvm_i2f_rz"
+ }
+ break;
+ }
+ break;
+ case 'm': // 4 strings to match.
+ switch (BuiltinName[8]) {
+ default: break;
+ case 'a': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+9, "x_", 2))
+ break;
+ switch (BuiltinName[11]) {
+ default: break;
+ case 'l': // 1 string to match.
+ if (BuiltinName[12] != 'l')
+ break;
+ return Intrinsic::nvvm_max_ll; // "__nvvm_max_ll"
+ case 'u': // 1 string to match.
+ if (BuiltinName[12] != 'i')
+ break;
+ return Intrinsic::nvvm_max_ui; // "__nvvm_max_ui"
+ }
+ break;
+ case 'i': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+9, "n_", 2))
+ break;
+ switch (BuiltinName[11]) {
+ default: break;
+ case 'l': // 1 string to match.
+ if (BuiltinName[12] != 'l')
+ break;
+ return Intrinsic::nvvm_min_ll; // "__nvvm_min_ll"
+ case 'u': // 1 string to match.
+ if (BuiltinName[12] != 'i')
+ break;
+ return Intrinsic::nvvm_min_ui; // "__nvvm_min_ui"
+ }
+ break;
+ }
+ break;
+ case 'p': // 1 string to match.
+ if (memcmp(BuiltinName.data()+8, "opc_i", 5))
+ break;
+ return Intrinsic::nvvm_popc_i; // "__nvvm_popc_i"
+ case 's': // 2 strings to match.
+ switch (BuiltinName[8]) {
+ default: break;
+ case 'a': // 1 string to match.
+ if (memcmp(BuiltinName.data()+9, "d_ui", 4))
+ break;
+ return Intrinsic::nvvm_sad_ui; // "__nvvm_sad_ui"
+ case 'q': // 1 string to match.
+ if (memcmp(BuiltinName.data()+9, "rt_f", 4))
+ break;
+ return Intrinsic::nvvm_sqrt_f; // "__nvvm_sqrt_f"
+ }
+ break;
+ }
+ break;
+ case 's': // 1 string to match.
+ if (memcmp(BuiltinName.data()+3, "yncthreads", 10))
+ break;
+ return Intrinsic::cuda_syncthreads; // "__syncthreads"
+ }
+ break;
+ case 14: // 45 strings to match.
+ if (memcmp(BuiltinName.data()+0, "__", 2))
+ break;
+ switch (BuiltinName[2]) {
+ default: break;
+ case 'b': // 1 string to match.
+ if (memcmp(BuiltinName.data()+3, "uiltin_trap", 11))
+ break;
+ return Intrinsic::trap; // "__builtin_trap"
+ case 'n': // 44 strings to match.
+ if (memcmp(BuiltinName.data()+3, "vvm_", 4))
+ break;
+ switch (BuiltinName[7]) {
+ default: break;
+ case 'b': // 1 string to match.
+ if (memcmp(BuiltinName.data()+8, "ar0_or", 6))
+ break;
+ return Intrinsic::nvvm_barrier0_or; // "__nvvm_bar0_or"
+ case 'd': // 8 strings to match.
+ if (BuiltinName[8] != '2')
+ break;
+ switch (BuiltinName[9]) {
+ default: break;
+ case 'l': // 4 strings to match.
+ if (memcmp(BuiltinName.data()+10, "l_r", 3))
+ break;
+ switch (BuiltinName[13]) {
+ default: break;
+ case 'm': // 1 string to match.
+ return Intrinsic::nvvm_d2ll_rm; // "__nvvm_d2ll_rm"
+ case 'n': // 1 string to match.
+ return Intrinsic::nvvm_d2ll_rn; // "__nvvm_d2ll_rn"
+ case 'p': // 1 string to match.
+ return Intrinsic::nvvm_d2ll_rp; // "__nvvm_d2ll_rp"
+ case 'z': // 1 string to match.
+ return Intrinsic::nvvm_d2ll_rz; // "__nvvm_d2ll_rz"
+ }
+ break;
+ case 'u': // 4 strings to match.
+ if (memcmp(BuiltinName.data()+10, "i_r", 3))
+ break;
+ switch (BuiltinName[13]) {
+ default: break;
+ case 'm': // 1 string to match.
+ return Intrinsic::nvvm_d2ui_rm; // "__nvvm_d2ui_rm"
+ case 'n': // 1 string to match.
+ return Intrinsic::nvvm_d2ui_rn; // "__nvvm_d2ui_rn"
+ case 'p': // 1 string to match.
+ return Intrinsic::nvvm_d2ui_rp; // "__nvvm_d2ui_rp"
+ case 'z': // 1 string to match.
+ return Intrinsic::nvvm_d2ui_rz; // "__nvvm_d2ui_rz"
+ }
+ break;
+ }
+ break;
+ case 'f': // 10 strings to match.
+ switch (BuiltinName[8]) {
+ default: break;
+ case '2': // 8 strings to match.
+ switch (BuiltinName[9]) {
+ default: break;
+ case 'l': // 4 strings to match.
+ if (memcmp(BuiltinName.data()+10, "l_r", 3))
+ break;
+ switch (BuiltinName[13]) {
+ default: break;
+ case 'm': // 1 string to match.
+ return Intrinsic::nvvm_f2ll_rm; // "__nvvm_f2ll_rm"
+ case 'n': // 1 string to match.
+ return Intrinsic::nvvm_f2ll_rn; // "__nvvm_f2ll_rn"
+ case 'p': // 1 string to match.
+ return Intrinsic::nvvm_f2ll_rp; // "__nvvm_f2ll_rp"
+ case 'z': // 1 string to match.
+ return Intrinsic::nvvm_f2ll_rz; // "__nvvm_f2ll_rz"
+ }
+ break;
+ case 'u': // 4 strings to match.
+ if (memcmp(BuiltinName.data()+10, "i_r", 3))
+ break;
+ switch (BuiltinName[13]) {
+ default: break;
+ case 'm': // 1 string to match.
+ return Intrinsic::nvvm_f2ui_rm; // "__nvvm_f2ui_rm"
+ case 'n': // 1 string to match.
+ return Intrinsic::nvvm_f2ui_rn; // "__nvvm_f2ui_rn"
+ case 'p': // 1 string to match.
+ return Intrinsic::nvvm_f2ui_rp; // "__nvvm_f2ui_rp"
+ case 'z': // 1 string to match.
+ return Intrinsic::nvvm_f2ui_rz; // "__nvvm_f2ui_rz"
+ }
+ break;
+ }
+ break;
+ case 'l': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+9, "oor_", 4))
+ break;
+ switch (BuiltinName[13]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::nvvm_floor_d; // "__nvvm_floor_d"
+ case 'f': // 1 string to match.
+ return Intrinsic::nvvm_floor_f; // "__nvvm_floor_f"
+ }
+ break;
+ }
+ break;
+ case 'l': // 8 strings to match.
+ if (memcmp(BuiltinName.data()+8, "l2", 2))
+ break;
+ switch (BuiltinName[10]) {
+ default: break;
+ case 'd': // 4 strings to match.
+ if (memcmp(BuiltinName.data()+11, "_r", 2))
+ break;
+ switch (BuiltinName[13]) {
+ default: break;
+ case 'm': // 1 string to match.
+ return Intrinsic::nvvm_ll2d_rm; // "__nvvm_ll2d_rm"
+ case 'n': // 1 string to match.
+ return Intrinsic::nvvm_ll2d_rn; // "__nvvm_ll2d_rn"
+ case 'p': // 1 string to match.
+ return Intrinsic::nvvm_ll2d_rp; // "__nvvm_ll2d_rp"
+ case 'z': // 1 string to match.
+ return Intrinsic::nvvm_ll2d_rz; // "__nvvm_ll2d_rz"
+ }
+ break;
+ case 'f': // 4 strings to match.
+ if (memcmp(BuiltinName.data()+11, "_r", 2))
+ break;
+ switch (BuiltinName[13]) {
+ default: break;
+ case 'm': // 1 string to match.
+ return Intrinsic::nvvm_ll2f_rm; // "__nvvm_ll2f_rm"
+ case 'n': // 1 string to match.
+ return Intrinsic::nvvm_ll2f_rn; // "__nvvm_ll2f_rn"
+ case 'p': // 1 string to match.
+ return Intrinsic::nvvm_ll2f_rp; // "__nvvm_ll2f_rp"
+ case 'z': // 1 string to match.
+ return Intrinsic::nvvm_ll2f_rz; // "__nvvm_ll2f_rz"
+ }
+ break;
+ }
+ break;
+ case 'm': // 4 strings to match.
+ switch (BuiltinName[8]) {
+ default: break;
+ case 'a': // 1 string to match.
+ if (memcmp(BuiltinName.data()+9, "x_ull", 5))
+ break;
+ return Intrinsic::nvvm_max_ull; // "__nvvm_max_ull"
+ case 'i': // 1 string to match.
+ if (memcmp(BuiltinName.data()+9, "n_ull", 5))
+ break;
+ return Intrinsic::nvvm_min_ull; // "__nvvm_min_ull"
+ case 'u': // 2 strings to match.
+ if (BuiltinName[9] != 'l')
+ break;
+ switch (BuiltinName[10]) {
+ default: break;
+ case '2': // 1 string to match.
+ if (memcmp(BuiltinName.data()+11, "4_i", 3))
+ break;
+ return Intrinsic::nvvm_mul24_i; // "__nvvm_mul24_i"
+ case 'h': // 1 string to match.
+ if (memcmp(BuiltinName.data()+11, "i_i", 3))
+ break;
+ return Intrinsic::nvvm_mulhi_i; // "__nvvm_mulhi_i"
+ }
+ break;
+ }
+ break;
+ case 'p': // 1 string to match.
+ if (memcmp(BuiltinName.data()+8, "opc_ll", 6))
+ break;
+ return Intrinsic::nvvm_popc_ll; // "__nvvm_popc_ll"
+ case 'r': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+8, "ound_", 5))
+ break;
+ switch (BuiltinName[13]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::nvvm_round_d; // "__nvvm_round_d"
+ case 'f': // 1 string to match.
+ return Intrinsic::nvvm_round_f; // "__nvvm_round_f"
+ }
+ break;
+ case 't': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+8, "runc_", 5))
+ break;
+ switch (BuiltinName[13]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::nvvm_trunc_d; // "__nvvm_trunc_d"
+ case 'f': // 1 string to match.
+ return Intrinsic::nvvm_trunc_f; // "__nvvm_trunc_f"
+ }
+ break;
+ case 'u': // 8 strings to match.
+ if (memcmp(BuiltinName.data()+8, "i2", 2))
+ break;
+ switch (BuiltinName[10]) {
+ default: break;
+ case 'd': // 4 strings to match.
+ if (memcmp(BuiltinName.data()+11, "_r", 2))
+ break;
+ switch (BuiltinName[13]) {
+ default: break;
+ case 'm': // 1 string to match.
+ return Intrinsic::nvvm_ui2d_rm; // "__nvvm_ui2d_rm"
+ case 'n': // 1 string to match.
+ return Intrinsic::nvvm_ui2d_rn; // "__nvvm_ui2d_rn"
+ case 'p': // 1 string to match.
+ return Intrinsic::nvvm_ui2d_rp; // "__nvvm_ui2d_rp"
+ case 'z': // 1 string to match.
+ return Intrinsic::nvvm_ui2d_rz; // "__nvvm_ui2d_rz"
+ }
+ break;
+ case 'f': // 4 strings to match.
+ if (memcmp(BuiltinName.data()+11, "_r", 2))
+ break;
+ switch (BuiltinName[13]) {
+ default: break;
+ case 'm': // 1 string to match.
+ return Intrinsic::nvvm_ui2f_rm; // "__nvvm_ui2f_rm"
+ case 'n': // 1 string to match.
+ return Intrinsic::nvvm_ui2f_rn; // "__nvvm_ui2f_rn"
+ case 'p': // 1 string to match.
+ return Intrinsic::nvvm_ui2f_rp; // "__nvvm_ui2f_rp"
+ case 'z': // 1 string to match.
+ return Intrinsic::nvvm_ui2f_rz; // "__nvvm_ui2f_rz"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 15: // 61 strings to match.
+ if (memcmp(BuiltinName.data()+0, "__nvvm_", 7))
+ break;
+ switch (BuiltinName[7]) {
+ default: break;
+ case 'a': // 8 strings to match.
+ if (memcmp(BuiltinName.data()+8, "dd_r", 4))
+ break;
+ switch (BuiltinName[12]) {
+ default: break;
+ case 'm': // 2 strings to match.
+ if (BuiltinName[13] != '_')
+ break;
+ switch (BuiltinName[14]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::nvvm_add_rm_d; // "__nvvm_add_rm_d"
+ case 'f': // 1 string to match.
+ return Intrinsic::nvvm_add_rm_f; // "__nvvm_add_rm_f"
+ }
+ break;
+ case 'n': // 2 strings to match.
+ if (BuiltinName[13] != '_')
+ break;
+ switch (BuiltinName[14]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::nvvm_add_rn_d; // "__nvvm_add_rn_d"
+ case 'f': // 1 string to match.
+ return Intrinsic::nvvm_add_rn_f; // "__nvvm_add_rn_f"
+ }
+ break;
+ case 'p': // 2 strings to match.
+ if (BuiltinName[13] != '_')
+ break;
+ switch (BuiltinName[14]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::nvvm_add_rp_d; // "__nvvm_add_rp_d"
+ case 'f': // 1 string to match.
+ return Intrinsic::nvvm_add_rp_f; // "__nvvm_add_rp_f"
+ }
+ break;
+ case 'z': // 2 strings to match.
+ if (BuiltinName[13] != '_')
+ break;
+ switch (BuiltinName[14]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::nvvm_add_rz_d; // "__nvvm_add_rz_d"
+ case 'f': // 1 string to match.
+ return Intrinsic::nvvm_add_rz_f; // "__nvvm_add_rz_f"
+ }
+ break;
+ }
+ break;
+ case 'b': // 1 string to match.
+ if (memcmp(BuiltinName.data()+8, "ar0_and", 7))
+ break;
+ return Intrinsic::nvvm_barrier0_and; // "__nvvm_bar0_and"
+ case 'd': // 12 strings to match.
+ switch (BuiltinName[8]) {
+ default: break;
+ case '2': // 4 strings to match.
+ if (memcmp(BuiltinName.data()+9, "ull_r", 5))
+ break;
+ switch (BuiltinName[14]) {
+ default: break;
+ case 'm': // 1 string to match.
+ return Intrinsic::nvvm_d2ull_rm; // "__nvvm_d2ull_rm"
+ case 'n': // 1 string to match.
+ return Intrinsic::nvvm_d2ull_rn; // "__nvvm_d2ull_rn"
+ case 'p': // 1 string to match.
+ return Intrinsic::nvvm_d2ull_rp; // "__nvvm_d2ull_rp"
+ case 'z': // 1 string to match.
+ return Intrinsic::nvvm_d2ull_rz; // "__nvvm_d2ull_rz"
+ }
+ break;
+ case 'i': // 8 strings to match.
+ if (memcmp(BuiltinName.data()+9, "v_r", 3))
+ break;
+ switch (BuiltinName[12]) {
+ default: break;
+ case 'm': // 2 strings to match.
+ if (BuiltinName[13] != '_')
+ break;
+ switch (BuiltinName[14]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::nvvm_div_rm_d; // "__nvvm_div_rm_d"
+ case 'f': // 1 string to match.
+ return Intrinsic::nvvm_div_rm_f; // "__nvvm_div_rm_f"
+ }
+ break;
+ case 'n': // 2 strings to match.
+ if (BuiltinName[13] != '_')
+ break;
+ switch (BuiltinName[14]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::nvvm_div_rn_d; // "__nvvm_div_rn_d"
+ case 'f': // 1 string to match.
+ return Intrinsic::nvvm_div_rn_f; // "__nvvm_div_rn_f"
+ }
+ break;
+ case 'p': // 2 strings to match.
+ if (BuiltinName[13] != '_')
+ break;
+ switch (BuiltinName[14]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::nvvm_div_rp_d; // "__nvvm_div_rp_d"
+ case 'f': // 1 string to match.
+ return Intrinsic::nvvm_div_rp_f; // "__nvvm_div_rp_f"
+ }
+ break;
+ case 'z': // 2 strings to match.
+ if (BuiltinName[13] != '_')
+ break;
+ switch (BuiltinName[14]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::nvvm_div_rz_d; // "__nvvm_div_rz_d"
+ case 'f': // 1 string to match.
+ return Intrinsic::nvvm_div_rz_f; // "__nvvm_div_rz_f"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 'f': // 12 strings to match.
+ switch (BuiltinName[8]) {
+ default: break;
+ case '2': // 4 strings to match.
+ if (memcmp(BuiltinName.data()+9, "ull_r", 5))
+ break;
+ switch (BuiltinName[14]) {
+ default: break;
+ case 'm': // 1 string to match.
+ return Intrinsic::nvvm_f2ull_rm; // "__nvvm_f2ull_rm"
+ case 'n': // 1 string to match.
+ return Intrinsic::nvvm_f2ull_rn; // "__nvvm_f2ull_rn"
+ case 'p': // 1 string to match.
+ return Intrinsic::nvvm_f2ull_rp; // "__nvvm_f2ull_rp"
+ case 'z': // 1 string to match.
+ return Intrinsic::nvvm_f2ull_rz; // "__nvvm_f2ull_rz"
+ }
+ break;
+ case 'm': // 8 strings to match.
+ if (memcmp(BuiltinName.data()+9, "a_r", 3))
+ break;
+ switch (BuiltinName[12]) {
+ default: break;
+ case 'm': // 2 strings to match.
+ if (BuiltinName[13] != '_')
+ break;
+ switch (BuiltinName[14]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::nvvm_fma_rm_d; // "__nvvm_fma_rm_d"
+ case 'f': // 1 string to match.
+ return Intrinsic::nvvm_fma_rm_f; // "__nvvm_fma_rm_f"
+ }
+ break;
+ case 'n': // 2 strings to match.
+ if (BuiltinName[13] != '_')
+ break;
+ switch (BuiltinName[14]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::nvvm_fma_rn_d; // "__nvvm_fma_rn_d"
+ case 'f': // 1 string to match.
+ return Intrinsic::nvvm_fma_rn_f; // "__nvvm_fma_rn_f"
+ }
+ break;
+ case 'p': // 2 strings to match.
+ if (BuiltinName[13] != '_')
+ break;
+ switch (BuiltinName[14]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::nvvm_fma_rp_d; // "__nvvm_fma_rp_d"
+ case 'f': // 1 string to match.
+ return Intrinsic::nvvm_fma_rp_f; // "__nvvm_fma_rp_f"
+ }
+ break;
+ case 'z': // 2 strings to match.
+ if (BuiltinName[13] != '_')
+ break;
+ switch (BuiltinName[14]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::nvvm_fma_rz_d; // "__nvvm_fma_rz_d"
+ case 'f': // 1 string to match.
+ return Intrinsic::nvvm_fma_rz_f; // "__nvvm_fma_rz_f"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 'l': // 1 string to match.
+ if (memcmp(BuiltinName.data()+8, "ohi_i2d", 7))
+ break;
+ return Intrinsic::nvvm_lohi_i2d; // "__nvvm_lohi_i2d"
+ case 'm': // 11 strings to match.
+ if (memcmp(BuiltinName.data()+8, "ul", 2))
+ break;
+ switch (BuiltinName[10]) {
+ default: break;
+ case '2': // 1 string to match.
+ if (memcmp(BuiltinName.data()+11, "4_ui", 4))
+ break;
+ return Intrinsic::nvvm_mul24_ui; // "__nvvm_mul24_ui"
+ case '_': // 8 strings to match.
+ if (BuiltinName[11] != 'r')
+ break;
+ switch (BuiltinName[12]) {
+ default: break;
+ case 'm': // 2 strings to match.
+ if (BuiltinName[13] != '_')
+ break;
+ switch (BuiltinName[14]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::nvvm_mul_rm_d; // "__nvvm_mul_rm_d"
+ case 'f': // 1 string to match.
+ return Intrinsic::nvvm_mul_rm_f; // "__nvvm_mul_rm_f"
+ }
+ break;
+ case 'n': // 2 strings to match.
+ if (BuiltinName[13] != '_')
+ break;
+ switch (BuiltinName[14]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::nvvm_mul_rn_d; // "__nvvm_mul_rn_d"
+ case 'f': // 1 string to match.
+ return Intrinsic::nvvm_mul_rn_f; // "__nvvm_mul_rn_f"
+ }
+ break;
+ case 'p': // 2 strings to match.
+ if (BuiltinName[13] != '_')
+ break;
+ switch (BuiltinName[14]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::nvvm_mul_rp_d; // "__nvvm_mul_rp_d"
+ case 'f': // 1 string to match.
+ return Intrinsic::nvvm_mul_rp_f; // "__nvvm_mul_rp_f"
+ }
+ break;
+ case 'z': // 2 strings to match.
+ if (BuiltinName[13] != '_')
+ break;
+ switch (BuiltinName[14]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::nvvm_mul_rz_d; // "__nvvm_mul_rz_d"
+ case 'f': // 1 string to match.
+ return Intrinsic::nvvm_mul_rz_f; // "__nvvm_mul_rz_f"
+ }
+ break;
+ }
+ break;
+ case 'h': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+11, "i_", 2))
+ break;
+ switch (BuiltinName[13]) {
+ default: break;
+ case 'l': // 1 string to match.
+ if (BuiltinName[14] != 'l')
+ break;
+ return Intrinsic::nvvm_mulhi_ll; // "__nvvm_mulhi_ll"
+ case 'u': // 1 string to match.
+ if (BuiltinName[14] != 'i')
+ break;
+ return Intrinsic::nvvm_mulhi_ui; // "__nvvm_mulhi_ui"
+ }
+ break;
+ }
+ break;
+ case 'r': // 8 strings to match.
+ if (memcmp(BuiltinName.data()+8, "cp_r", 4))
+ break;
+ switch (BuiltinName[12]) {
+ default: break;
+ case 'm': // 2 strings to match.
+ if (BuiltinName[13] != '_')
+ break;
+ switch (BuiltinName[14]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::nvvm_rcp_rm_d; // "__nvvm_rcp_rm_d"
+ case 'f': // 1 string to match.
+ return Intrinsic::nvvm_rcp_rm_f; // "__nvvm_rcp_rm_f"
+ }
+ break;
+ case 'n': // 2 strings to match.
+ if (BuiltinName[13] != '_')
+ break;
+ switch (BuiltinName[14]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::nvvm_rcp_rn_d; // "__nvvm_rcp_rn_d"
+ case 'f': // 1 string to match.
+ return Intrinsic::nvvm_rcp_rn_f; // "__nvvm_rcp_rn_f"
+ }
+ break;
+ case 'p': // 2 strings to match.
+ if (BuiltinName[13] != '_')
+ break;
+ switch (BuiltinName[14]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::nvvm_rcp_rp_d; // "__nvvm_rcp_rp_d"
+ case 'f': // 1 string to match.
+ return Intrinsic::nvvm_rcp_rp_f; // "__nvvm_rcp_rp_f"
+ }
+ break;
+ case 'z': // 2 strings to match.
+ if (BuiltinName[13] != '_')
+ break;
+ switch (BuiltinName[14]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::nvvm_rcp_rz_d; // "__nvvm_rcp_rz_d"
+ case 'f': // 1 string to match.
+ return Intrinsic::nvvm_rcp_rz_f; // "__nvvm_rcp_rz_f"
+ }
+ break;
+ }
+ break;
+ case 'u': // 8 strings to match.
+ if (memcmp(BuiltinName.data()+8, "ll2", 3))
+ break;
+ switch (BuiltinName[11]) {
+ default: break;
+ case 'd': // 4 strings to match.
+ if (memcmp(BuiltinName.data()+12, "_r", 2))
+ break;
+ switch (BuiltinName[14]) {
+ default: break;
+ case 'm': // 1 string to match.
+ return Intrinsic::nvvm_ull2d_rm; // "__nvvm_ull2d_rm"
+ case 'n': // 1 string to match.
+ return Intrinsic::nvvm_ull2d_rn; // "__nvvm_ull2d_rn"
+ case 'p': // 1 string to match.
+ return Intrinsic::nvvm_ull2d_rp; // "__nvvm_ull2d_rp"
+ case 'z': // 1 string to match.
+ return Intrinsic::nvvm_ull2d_rz; // "__nvvm_ull2d_rz"
+ }
+ break;
+ case 'f': // 4 strings to match.
+ if (memcmp(BuiltinName.data()+12, "_r", 2))
+ break;
+ switch (BuiltinName[14]) {
+ default: break;
+ case 'm': // 1 string to match.
+ return Intrinsic::nvvm_ull2f_rm; // "__nvvm_ull2f_rm"
+ case 'n': // 1 string to match.
+ return Intrinsic::nvvm_ull2f_rn; // "__nvvm_ull2f_rn"
+ case 'p': // 1 string to match.
+ return Intrinsic::nvvm_ull2f_rp; // "__nvvm_ull2f_rp"
+ case 'z': // 1 string to match.
+ return Intrinsic::nvvm_ull2f_rz; // "__nvvm_ull2f_rz"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 16: // 15 strings to match.
+ if (memcmp(BuiltinName.data()+0, "__nvvm_", 7))
+ break;
+ switch (BuiltinName[7]) {
+ default: break;
+ case 'b': // 1 string to match.
+ if (memcmp(BuiltinName.data()+8, "ar0_popc", 8))
+ break;
+ return Intrinsic::nvvm_barrier0_popc; // "__nvvm_bar0_popc"
+ case 'm': // 2 strings to match.
+ switch (BuiltinName[8]) {
+ default: break;
+ case 'e': // 1 string to match.
+ if (memcmp(BuiltinName.data()+9, "mbar_gl", 7))
+ break;
+ return Intrinsic::nvvm_membar_gl; // "__nvvm_membar_gl"
+ case 'u': // 1 string to match.
+ if (memcmp(BuiltinName.data()+9, "lhi_ull", 7))
+ break;
+ return Intrinsic::nvvm_mulhi_ull; // "__nvvm_mulhi_ull"
+ }
+ break;
+ case 's': // 10 strings to match.
+ switch (BuiltinName[8]) {
+ default: break;
+ case 'q': // 8 strings to match.
+ if (memcmp(BuiltinName.data()+9, "rt_r", 4))
+ break;
+ switch (BuiltinName[13]) {
+ default: break;
+ case 'm': // 2 strings to match.
+ if (BuiltinName[14] != '_')
+ break;
+ switch (BuiltinName[15]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::nvvm_sqrt_rm_d; // "__nvvm_sqrt_rm_d"
+ case 'f': // 1 string to match.
+ return Intrinsic::nvvm_sqrt_rm_f; // "__nvvm_sqrt_rm_f"
+ }
+ break;
+ case 'n': // 2 strings to match.
+ if (BuiltinName[14] != '_')
+ break;
+ switch (BuiltinName[15]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::nvvm_sqrt_rn_d; // "__nvvm_sqrt_rn_d"
+ case 'f': // 1 string to match.
+ return Intrinsic::nvvm_sqrt_rn_f; // "__nvvm_sqrt_rn_f"
+ }
+ break;
+ case 'p': // 2 strings to match.
+ if (BuiltinName[14] != '_')
+ break;
+ switch (BuiltinName[15]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::nvvm_sqrt_rp_d; // "__nvvm_sqrt_rp_d"
+ case 'f': // 1 string to match.
+ return Intrinsic::nvvm_sqrt_rp_f; // "__nvvm_sqrt_rp_f"
+ }
+ break;
+ case 'z': // 2 strings to match.
+ if (BuiltinName[14] != '_')
+ break;
+ switch (BuiltinName[15]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::nvvm_sqrt_rz_d; // "__nvvm_sqrt_rz_d"
+ case 'f': // 1 string to match.
+ return Intrinsic::nvvm_sqrt_rz_f; // "__nvvm_sqrt_rz_f"
+ }
+ break;
+ }
+ break;
+ case 'u': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+9, "q_", 2))
+ break;
+ switch (BuiltinName[11]) {
+ default: break;
+ case 'd': // 1 string to match.
+ if (memcmp(BuiltinName.data()+12, "epth", 4))
+ break;
+ return Intrinsic::nvvm_suq_depth; // "__nvvm_suq_depth"
+ case 'w': // 1 string to match.
+ if (memcmp(BuiltinName.data()+12, "idth", 4))
+ break;
+ return Intrinsic::nvvm_suq_width; // "__nvvm_suq_width"
+ }
+ break;
+ }
+ break;
+ case 't': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+8, "xq_", 3))
+ break;
+ switch (BuiltinName[11]) {
+ default: break;
+ case 'd': // 1 string to match.
+ if (memcmp(BuiltinName.data()+12, "epth", 4))
+ break;
+ return Intrinsic::nvvm_txq_depth; // "__nvvm_txq_depth"
+ case 'w': // 1 string to match.
+ if (memcmp(BuiltinName.data()+12, "idth", 4))
+ break;
+ return Intrinsic::nvvm_txq_width; // "__nvvm_txq_width"
+ }
+ break;
+ }
+ break;
+ case 17: // 21 strings to match.
+ if (memcmp(BuiltinName.data()+0, "__nvvm_", 7))
+ break;
+ switch (BuiltinName[7]) {
+ default: break;
+ case 'c': // 1 string to match.
+ if (memcmp(BuiltinName.data()+8, "eil_ftz_f", 9))
+ break;
+ return Intrinsic::nvvm_ceil_ftz_f; // "__nvvm_ceil_ftz_f"
+ case 'd': // 4 strings to match.
+ if (memcmp(BuiltinName.data()+8, "2f_r", 4))
+ break;
+ switch (BuiltinName[12]) {
+ default: break;
+ case 'm': // 1 string to match.
+ if (memcmp(BuiltinName.data()+13, "_ftz", 4))
+ break;
+ return Intrinsic::nvvm_d2f_rm_ftz; // "__nvvm_d2f_rm_ftz"
+ case 'n': // 1 string to match.
+ if (memcmp(BuiltinName.data()+13, "_ftz", 4))
+ break;
+ return Intrinsic::nvvm_d2f_rn_ftz; // "__nvvm_d2f_rn_ftz"
+ case 'p': // 1 string to match.
+ if (memcmp(BuiltinName.data()+13, "_ftz", 4))
+ break;
+ return Intrinsic::nvvm_d2f_rp_ftz; // "__nvvm_d2f_rp_ftz"
+ case 'z': // 1 string to match.
+ if (memcmp(BuiltinName.data()+13, "_ftz", 4))
+ break;
+ return Intrinsic::nvvm_d2f_rz_ftz; // "__nvvm_d2f_rz_ftz"
+ }
+ break;
+ case 'f': // 8 strings to match.
+ switch (BuiltinName[8]) {
+ default: break;
+ case '2': // 5 strings to match.
+ switch (BuiltinName[9]) {
+ default: break;
+ case 'h': // 1 string to match.
+ if (memcmp(BuiltinName.data()+10, "_rn_ftz", 7))
+ break;
+ return Intrinsic::nvvm_f2h_rn_ftz; // "__nvvm_f2h_rn_ftz"
+ case 'i': // 4 strings to match.
+ if (memcmp(BuiltinName.data()+10, "_r", 2))
+ break;
+ switch (BuiltinName[12]) {
+ default: break;
+ case 'm': // 1 string to match.
+ if (memcmp(BuiltinName.data()+13, "_ftz", 4))
+ break;
+ return Intrinsic::nvvm_f2i_rm_ftz; // "__nvvm_f2i_rm_ftz"
+ case 'n': // 1 string to match.
+ if (memcmp(BuiltinName.data()+13, "_ftz", 4))
+ break;
+ return Intrinsic::nvvm_f2i_rn_ftz; // "__nvvm_f2i_rn_ftz"
+ case 'p': // 1 string to match.
+ if (memcmp(BuiltinName.data()+13, "_ftz", 4))
+ break;
+ return Intrinsic::nvvm_f2i_rp_ftz; // "__nvvm_f2i_rp_ftz"
+ case 'z': // 1 string to match.
+ if (memcmp(BuiltinName.data()+13, "_ftz", 4))
+ break;
+ return Intrinsic::nvvm_f2i_rz_ftz; // "__nvvm_f2i_rz_ftz"
+ }
+ break;
+ }
+ break;
+ case 'a': // 1 string to match.
+ if (memcmp(BuiltinName.data()+9, "bs_ftz_f", 8))
+ break;
+ return Intrinsic::nvvm_fabs_ftz_f; // "__nvvm_fabs_ftz_f"
+ case 'm': // 2 strings to match.
+ switch (BuiltinName[9]) {
+ default: break;
+ case 'a': // 1 string to match.
+ if (memcmp(BuiltinName.data()+10, "x_ftz_f", 7))
+ break;
+ return Intrinsic::nvvm_fmax_ftz_f; // "__nvvm_fmax_ftz_f"
+ case 'i': // 1 string to match.
+ if (memcmp(BuiltinName.data()+10, "n_ftz_f", 7))
+ break;
+ return Intrinsic::nvvm_fmin_ftz_f; // "__nvvm_fmin_ftz_f"
+ }
+ break;
+ }
+ break;
+ case 'm': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+8, "embar_", 6))
+ break;
+ switch (BuiltinName[14]) {
+ default: break;
+ case 'c': // 1 string to match.
+ if (memcmp(BuiltinName.data()+15, "ta", 2))
+ break;
+ return Intrinsic::nvvm_membar_cta; // "__nvvm_membar_cta"
+ case 's': // 1 string to match.
+ if (memcmp(BuiltinName.data()+15, "ys", 2))
+ break;
+ return Intrinsic::nvvm_membar_sys; // "__nvvm_membar_sys"
+ }
+ break;
+ case 'r': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+8, "otate_b", 7))
+ break;
+ switch (BuiltinName[15]) {
+ default: break;
+ case '3': // 1 string to match.
+ if (BuiltinName[16] != '2')
+ break;
+ return Intrinsic::nvvm_rotate_b32; // "__nvvm_rotate_b32"
+ case '6': // 1 string to match.
+ if (BuiltinName[16] != '4')
+ break;
+ return Intrinsic::nvvm_rotate_b64; // "__nvvm_rotate_b64"
+ }
+ break;
+ case 's': // 3 strings to match.
+ switch (BuiltinName[8]) {
+ default: break;
+ case 'a': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+9, "turate_", 7))
+ break;
+ switch (BuiltinName[16]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::nvvm_saturate_d; // "__nvvm_saturate_d"
+ case 'f': // 1 string to match.
+ return Intrinsic::nvvm_saturate_f; // "__nvvm_saturate_f"
+ }
+ break;
+ case 'u': // 1 string to match.
+ if (memcmp(BuiltinName.data()+9, "q_height", 8))
+ break;
+ return Intrinsic::nvvm_suq_height; // "__nvvm_suq_height"
+ }
+ break;
+ case 't': // 1 string to match.
+ if (memcmp(BuiltinName.data()+8, "xq_height", 9))
+ break;
+ return Intrinsic::nvvm_txq_height; // "__nvvm_txq_height"
+ }
+ break;
+ case 18: // 13 strings to match.
+ if (memcmp(BuiltinName.data()+0, "__nvvm_", 7))
+ break;
+ switch (BuiltinName[7]) {
+ default: break;
+ case 'b': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+8, "itcast_", 7))
+ break;
+ switch (BuiltinName[15]) {
+ default: break;
+ case 'f': // 1 string to match.
+ if (memcmp(BuiltinName.data()+16, "2i", 2))
+ break;
+ return Intrinsic::nvvm_bitcast_f2i; // "__nvvm_bitcast_f2i"
+ case 'i': // 1 string to match.
+ if (memcmp(BuiltinName.data()+16, "2f", 2))
+ break;
+ return Intrinsic::nvvm_bitcast_i2f; // "__nvvm_bitcast_i2f"
+ }
+ break;
+ case 'f': // 9 strings to match.
+ switch (BuiltinName[8]) {
+ default: break;
+ case '2': // 8 strings to match.
+ switch (BuiltinName[9]) {
+ default: break;
+ case 'l': // 4 strings to match.
+ if (memcmp(BuiltinName.data()+10, "l_r", 3))
+ break;
+ switch (BuiltinName[13]) {
+ default: break;
+ case 'm': // 1 string to match.
+ if (memcmp(BuiltinName.data()+14, "_ftz", 4))
+ break;
+ return Intrinsic::nvvm_f2ll_rm_ftz; // "__nvvm_f2ll_rm_ftz"
+ case 'n': // 1 string to match.
+ if (memcmp(BuiltinName.data()+14, "_ftz", 4))
+ break;
+ return Intrinsic::nvvm_f2ll_rn_ftz; // "__nvvm_f2ll_rn_ftz"
+ case 'p': // 1 string to match.
+ if (memcmp(BuiltinName.data()+14, "_ftz", 4))
+ break;
+ return Intrinsic::nvvm_f2ll_rp_ftz; // "__nvvm_f2ll_rp_ftz"
+ case 'z': // 1 string to match.
+ if (memcmp(BuiltinName.data()+14, "_ftz", 4))
+ break;
+ return Intrinsic::nvvm_f2ll_rz_ftz; // "__nvvm_f2ll_rz_ftz"
+ }
+ break;
+ case 'u': // 4 strings to match.
+ if (memcmp(BuiltinName.data()+10, "i_r", 3))
+ break;
+ switch (BuiltinName[13]) {
+ default: break;
+ case 'm': // 1 string to match.
+ if (memcmp(BuiltinName.data()+14, "_ftz", 4))
+ break;
+ return Intrinsic::nvvm_f2ui_rm_ftz; // "__nvvm_f2ui_rm_ftz"
+ case 'n': // 1 string to match.
+ if (memcmp(BuiltinName.data()+14, "_ftz", 4))
+ break;
+ return Intrinsic::nvvm_f2ui_rn_ftz; // "__nvvm_f2ui_rn_ftz"
+ case 'p': // 1 string to match.
+ if (memcmp(BuiltinName.data()+14, "_ftz", 4))
+ break;
+ return Intrinsic::nvvm_f2ui_rp_ftz; // "__nvvm_f2ui_rp_ftz"
+ case 'z': // 1 string to match.
+ if (memcmp(BuiltinName.data()+14, "_ftz", 4))
+ break;
+ return Intrinsic::nvvm_f2ui_rz_ftz; // "__nvvm_f2ui_rz_ftz"
+ }
+ break;
+ }
+ break;
+ case 'l': // 1 string to match.
+ if (memcmp(BuiltinName.data()+9, "oor_ftz_f", 9))
+ break;
+ return Intrinsic::nvvm_floor_ftz_f; // "__nvvm_floor_ftz_f"
+ }
+ break;
+ case 'r': // 1 string to match.
+ if (memcmp(BuiltinName.data()+8, "ound_ftz_f", 10))
+ break;
+ return Intrinsic::nvvm_round_ftz_f; // "__nvvm_round_ftz_f"
+ case 't': // 1 string to match.
+ if (memcmp(BuiltinName.data()+8, "runc_ftz_f", 10))
+ break;
+ return Intrinsic::nvvm_trunc_ftz_f; // "__nvvm_trunc_ftz_f"
+ }
+ break;
+ case 19: // 34 strings to match.
+ if (memcmp(BuiltinName.data()+0, "__", 2))
+ break;
+ switch (BuiltinName[2]) {
+ default: break;
+ case 'b': // 1 string to match.
+ if (memcmp(BuiltinName.data()+3, "uiltin_debugtrap", 16))
+ break;
+ return Intrinsic::debugtrap; // "__builtin_debugtrap"
+ case 'n': // 33 strings to match.
+ if (memcmp(BuiltinName.data()+3, "vvm_", 4))
+ break;
+ switch (BuiltinName[7]) {
+ default: break;
+ case 'a': // 4 strings to match.
+ if (memcmp(BuiltinName.data()+8, "dd_r", 4))
+ break;
+ switch (BuiltinName[12]) {
+ default: break;
+ case 'm': // 1 string to match.
+ if (memcmp(BuiltinName.data()+13, "_ftz_f", 6))
+ break;
+ return Intrinsic::nvvm_add_rm_ftz_f; // "__nvvm_add_rm_ftz_f"
+ case 'n': // 1 string to match.
+ if (memcmp(BuiltinName.data()+13, "_ftz_f", 6))
+ break;
+ return Intrinsic::nvvm_add_rn_ftz_f; // "__nvvm_add_rn_ftz_f"
+ case 'p': // 1 string to match.
+ if (memcmp(BuiltinName.data()+13, "_ftz_f", 6))
+ break;
+ return Intrinsic::nvvm_add_rp_ftz_f; // "__nvvm_add_rp_ftz_f"
+ case 'z': // 1 string to match.
+ if (memcmp(BuiltinName.data()+13, "_ftz_f", 6))
+ break;
+ return Intrinsic::nvvm_add_rz_ftz_f; // "__nvvm_add_rz_ftz_f"
+ }
+ break;
+ case 'b': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+8, "itcast_", 7))
+ break;
+ switch (BuiltinName[15]) {
+ default: break;
+ case 'd': // 1 string to match.
+ if (memcmp(BuiltinName.data()+16, "2ll", 3))
+ break;
+ return Intrinsic::nvvm_bitcast_d2ll; // "__nvvm_bitcast_d2ll"
+ case 'l': // 1 string to match.
+ if (memcmp(BuiltinName.data()+16, "l2d", 3))
+ break;
+ return Intrinsic::nvvm_bitcast_ll2d; // "__nvvm_bitcast_ll2d"
+ }
+ break;
+ case 'c': // 1 string to match.
+ if (memcmp(BuiltinName.data()+8, "os_approx_f", 11))
+ break;
+ return Intrinsic::nvvm_cos_approx_f; // "__nvvm_cos_approx_f"
+ case 'd': // 5 strings to match.
+ if (memcmp(BuiltinName.data()+8, "iv_", 3))
+ break;
+ switch (BuiltinName[11]) {
+ default: break;
+ case 'a': // 1 string to match.
+ if (memcmp(BuiltinName.data()+12, "pprox_f", 7))
+ break;
+ return Intrinsic::nvvm_div_approx_f; // "__nvvm_div_approx_f"
+ case 'r': // 4 strings to match.
+ switch (BuiltinName[12]) {
+ default: break;
+ case 'm': // 1 string to match.
+ if (memcmp(BuiltinName.data()+13, "_ftz_f", 6))
+ break;
+ return Intrinsic::nvvm_div_rm_ftz_f; // "__nvvm_div_rm_ftz_f"
+ case 'n': // 1 string to match.
+ if (memcmp(BuiltinName.data()+13, "_ftz_f", 6))
+ break;
+ return Intrinsic::nvvm_div_rn_ftz_f; // "__nvvm_div_rn_ftz_f"
+ case 'p': // 1 string to match.
+ if (memcmp(BuiltinName.data()+13, "_ftz_f", 6))
+ break;
+ return Intrinsic::nvvm_div_rp_ftz_f; // "__nvvm_div_rp_ftz_f"
+ case 'z': // 1 string to match.
+ if (memcmp(BuiltinName.data()+13, "_ftz_f", 6))
+ break;
+ return Intrinsic::nvvm_div_rz_ftz_f; // "__nvvm_div_rz_ftz_f"
+ }
+ break;
+ }
+ break;
+ case 'e': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+8, "x2_approx_", 10))
+ break;
+ switch (BuiltinName[18]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::nvvm_ex2_approx_d; // "__nvvm_ex2_approx_d"
+ case 'f': // 1 string to match.
+ return Intrinsic::nvvm_ex2_approx_f; // "__nvvm_ex2_approx_f"
+ }
+ break;
+ case 'f': // 8 strings to match.
+ switch (BuiltinName[8]) {
+ default: break;
+ case '2': // 4 strings to match.
+ if (memcmp(BuiltinName.data()+9, "ull_r", 5))
+ break;
+ switch (BuiltinName[14]) {
+ default: break;
+ case 'm': // 1 string to match.
+ if (memcmp(BuiltinName.data()+15, "_ftz", 4))
+ break;
+ return Intrinsic::nvvm_f2ull_rm_ftz; // "__nvvm_f2ull_rm_ftz"
+ case 'n': // 1 string to match.
+ if (memcmp(BuiltinName.data()+15, "_ftz", 4))
+ break;
+ return Intrinsic::nvvm_f2ull_rn_ftz; // "__nvvm_f2ull_rn_ftz"
+ case 'p': // 1 string to match.
+ if (memcmp(BuiltinName.data()+15, "_ftz", 4))
+ break;
+ return Intrinsic::nvvm_f2ull_rp_ftz; // "__nvvm_f2ull_rp_ftz"
+ case 'z': // 1 string to match.
+ if (memcmp(BuiltinName.data()+15, "_ftz", 4))
+ break;
+ return Intrinsic::nvvm_f2ull_rz_ftz; // "__nvvm_f2ull_rz_ftz"
+ }
+ break;
+ case 'm': // 4 strings to match.
+ if (memcmp(BuiltinName.data()+9, "a_r", 3))
+ break;
+ switch (BuiltinName[12]) {
+ default: break;
+ case 'm': // 1 string to match.
+ if (memcmp(BuiltinName.data()+13, "_ftz_f", 6))
+ break;
+ return Intrinsic::nvvm_fma_rm_ftz_f; // "__nvvm_fma_rm_ftz_f"
+ case 'n': // 1 string to match.
+ if (memcmp(BuiltinName.data()+13, "_ftz_f", 6))
+ break;
+ return Intrinsic::nvvm_fma_rn_ftz_f; // "__nvvm_fma_rn_ftz_f"
+ case 'p': // 1 string to match.
+ if (memcmp(BuiltinName.data()+13, "_ftz_f", 6))
+ break;
+ return Intrinsic::nvvm_fma_rp_ftz_f; // "__nvvm_fma_rp_ftz_f"
+ case 'z': // 1 string to match.
+ if (memcmp(BuiltinName.data()+13, "_ftz_f", 6))
+ break;
+ return Intrinsic::nvvm_fma_rz_ftz_f; // "__nvvm_fma_rz_ftz_f"
+ }
+ break;
+ }
+ break;
+ case 'l': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+8, "g2_approx_", 10))
+ break;
+ switch (BuiltinName[18]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::nvvm_lg2_approx_d; // "__nvvm_lg2_approx_d"
+ case 'f': // 1 string to match.
+ return Intrinsic::nvvm_lg2_approx_f; // "__nvvm_lg2_approx_f"
+ }
+ break;
+ case 'm': // 4 strings to match.
+ if (memcmp(BuiltinName.data()+8, "ul_r", 4))
+ break;
+ switch (BuiltinName[12]) {
+ default: break;
+ case 'm': // 1 string to match.
+ if (memcmp(BuiltinName.data()+13, "_ftz_f", 6))
+ break;
+ return Intrinsic::nvvm_mul_rm_ftz_f; // "__nvvm_mul_rm_ftz_f"
+ case 'n': // 1 string to match.
+ if (memcmp(BuiltinName.data()+13, "_ftz_f", 6))
+ break;
+ return Intrinsic::nvvm_mul_rn_ftz_f; // "__nvvm_mul_rn_ftz_f"
+ case 'p': // 1 string to match.
+ if (memcmp(BuiltinName.data()+13, "_ftz_f", 6))
+ break;
+ return Intrinsic::nvvm_mul_rp_ftz_f; // "__nvvm_mul_rp_ftz_f"
+ case 'z': // 1 string to match.
+ if (memcmp(BuiltinName.data()+13, "_ftz_f", 6))
+ break;
+ return Intrinsic::nvvm_mul_rz_ftz_f; // "__nvvm_mul_rz_ftz_f"
+ }
+ break;
+ case 'r': // 4 strings to match.
+ if (memcmp(BuiltinName.data()+8, "cp_r", 4))
+ break;
+ switch (BuiltinName[12]) {
+ default: break;
+ case 'm': // 1 string to match.
+ if (memcmp(BuiltinName.data()+13, "_ftz_f", 6))
+ break;
+ return Intrinsic::nvvm_rcp_rm_ftz_f; // "__nvvm_rcp_rm_ftz_f"
+ case 'n': // 1 string to match.
+ if (memcmp(BuiltinName.data()+13, "_ftz_f", 6))
+ break;
+ return Intrinsic::nvvm_rcp_rn_ftz_f; // "__nvvm_rcp_rn_ftz_f"
+ case 'p': // 1 string to match.
+ if (memcmp(BuiltinName.data()+13, "_ftz_f", 6))
+ break;
+ return Intrinsic::nvvm_rcp_rp_ftz_f; // "__nvvm_rcp_rp_ftz_f"
+ case 'z': // 1 string to match.
+ if (memcmp(BuiltinName.data()+13, "_ftz_f", 6))
+ break;
+ return Intrinsic::nvvm_rcp_rz_ftz_f; // "__nvvm_rcp_rz_ftz_f"
+ }
+ break;
+ case 's': // 1 string to match.
+ if (memcmp(BuiltinName.data()+8, "in_approx_f", 11))
+ break;
+ return Intrinsic::nvvm_sin_approx_f; // "__nvvm_sin_approx_f"
+ }
+ break;
+ }
+ break;
+ case 20: // 7 strings to match.
+ if (memcmp(BuiltinName.data()+0, "__", 2))
+ break;
+ switch (BuiltinName[2]) {
+ default: break;
+ case 'b': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+3, "uiltin_", 7))
+ break;
+ switch (BuiltinName[10]) {
+ default: break;
+ case 'f': // 1 string to match.
+ if (memcmp(BuiltinName.data()+11, "lt_rounds", 9))
+ break;
+ return Intrinsic::flt_rounds; // "__builtin_flt_rounds"
+ case 's': // 1 string to match.
+ if (memcmp(BuiltinName.data()+11, "tack_save", 9))
+ break;
+ return Intrinsic::stacksave; // "__builtin_stack_save"
+ }
+ break;
+ case 'n': // 5 strings to match.
+ if (memcmp(BuiltinName.data()+3, "vvm_sqrt_", 9))
+ break;
+ switch (BuiltinName[12]) {
+ default: break;
+ case 'a': // 1 string to match.
+ if (memcmp(BuiltinName.data()+13, "pprox_f", 7))
+ break;
+ return Intrinsic::nvvm_sqrt_approx_f; // "__nvvm_sqrt_approx_f"
+ case 'r': // 4 strings to match.
+ switch (BuiltinName[13]) {
+ default: break;
+ case 'm': // 1 string to match.
+ if (memcmp(BuiltinName.data()+14, "_ftz_f", 6))
+ break;
+ return Intrinsic::nvvm_sqrt_rm_ftz_f; // "__nvvm_sqrt_rm_ftz_f"
+ case 'n': // 1 string to match.
+ if (memcmp(BuiltinName.data()+14, "_ftz_f", 6))
+ break;
+ return Intrinsic::nvvm_sqrt_rn_ftz_f; // "__nvvm_sqrt_rn_ftz_f"
+ case 'p': // 1 string to match.
+ if (memcmp(BuiltinName.data()+14, "_ftz_f", 6))
+ break;
+ return Intrinsic::nvvm_sqrt_rp_ftz_f; // "__nvvm_sqrt_rp_ftz_f"
+ case 'z': // 1 string to match.
+ if (memcmp(BuiltinName.data()+14, "_ftz_f", 6))
+ break;
+ return Intrinsic::nvvm_sqrt_rz_ftz_f; // "__nvvm_sqrt_rz_ftz_f"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 21: // 28 strings to match.
+ if (memcmp(BuiltinName.data()+0, "__", 2))
+ break;
+ switch (BuiltinName[2]) {
+ default: break;
+ case 'b': // 20 strings to match.
+ if (memcmp(BuiltinName.data()+3, "uiltin_", 7))
+ break;
+ switch (BuiltinName[10]) {
+ default: break;
+ case 'i': // 18 strings to match.
+ if (memcmp(BuiltinName.data()+11, "a32_vp", 6))
+ break;
+ switch (BuiltinName[17]) {
+ default: break;
+ case 'c': // 5 strings to match.
+ switch (BuiltinName[18]) {
+ default: break;
+ case 'm': // 1 string to match.
+ if (memcmp(BuiltinName.data()+19, "ov", 2))
+ break;
+ return Intrinsic::x86_xop_vpcmov; // "__builtin_ia32_vpcmov"
+ case 'o': // 4 strings to match.
+ if (BuiltinName[19] != 'm')
+ break;
+ switch (BuiltinName[20]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::x86_xop_vpcomb; // "__builtin_ia32_vpcomb"
+ case 'd': // 1 string to match.
+ return Intrinsic::x86_xop_vpcomd; // "__builtin_ia32_vpcomd"
+ case 'q': // 1 string to match.
+ return Intrinsic::x86_xop_vpcomq; // "__builtin_ia32_vpcomq"
+ case 'w': // 1 string to match.
+ return Intrinsic::x86_xop_vpcomw; // "__builtin_ia32_vpcomw"
+ }
+ break;
+ }
+ break;
+ case 'p': // 1 string to match.
+ if (memcmp(BuiltinName.data()+18, "erm", 3))
+ break;
+ return Intrinsic::x86_xop_vpperm; // "__builtin_ia32_vpperm"
+ case 'r': // 4 strings to match.
+ if (memcmp(BuiltinName.data()+18, "ot", 2))
+ break;
+ switch (BuiltinName[20]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::x86_xop_vprotb; // "__builtin_ia32_vprotb"
+ case 'd': // 1 string to match.
+ return Intrinsic::x86_xop_vprotd; // "__builtin_ia32_vprotd"
+ case 'q': // 1 string to match.
+ return Intrinsic::x86_xop_vprotq; // "__builtin_ia32_vprotq"
+ case 'w': // 1 string to match.
+ return Intrinsic::x86_xop_vprotw; // "__builtin_ia32_vprotw"
+ }
+ break;
+ case 's': // 8 strings to match.
+ if (BuiltinName[18] != 'h')
+ break;
+ switch (BuiltinName[19]) {
+ default: break;
+ case 'a': // 4 strings to match.
+ switch (BuiltinName[20]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::x86_xop_vpshab; // "__builtin_ia32_vpshab"
+ case 'd': // 1 string to match.
+ return Intrinsic::x86_xop_vpshad; // "__builtin_ia32_vpshad"
+ case 'q': // 1 string to match.
+ return Intrinsic::x86_xop_vpshaq; // "__builtin_ia32_vpshaq"
+ case 'w': // 1 string to match.
+ return Intrinsic::x86_xop_vpshaw; // "__builtin_ia32_vpshaw"
+ }
+ break;
+ case 'l': // 4 strings to match.
+ switch (BuiltinName[20]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::x86_xop_vpshlb; // "__builtin_ia32_vpshlb"
+ case 'd': // 1 string to match.
+ return Intrinsic::x86_xop_vpshld; // "__builtin_ia32_vpshld"
+ case 'q': // 1 string to match.
+ return Intrinsic::x86_xop_vpshlq; // "__builtin_ia32_vpshlq"
+ case 'w': // 1 string to match.
+ return Intrinsic::x86_xop_vpshlw; // "__builtin_ia32_vpshlw"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 'o': // 1 string to match.
+ if (memcmp(BuiltinName.data()+11, "bject_size", 10))
+ break;
+ return Intrinsic::objectsize; // "__builtin_object_size"
+ case 'u': // 1 string to match.
+ if (memcmp(BuiltinName.data()+11, "nwind_init", 10))
+ break;
+ return Intrinsic::eh_unwind_init; // "__builtin_unwind_init"
+ }
+ break;
+ case 'n': // 8 strings to match.
+ if (memcmp(BuiltinName.data()+3, "vvm_", 4))
+ break;
+ switch (BuiltinName[7]) {
+ default: break;
+ case 'i': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+8, "sspacep_", 8))
+ break;
+ switch (BuiltinName[16]) {
+ default: break;
+ case 'c': // 1 string to match.
+ if (memcmp(BuiltinName.data()+17, "onst", 4))
+ break;
+ return Intrinsic::nvvm_isspacep_const; // "__nvvm_isspacep_const"
+ case 'l': // 1 string to match.
+ if (memcmp(BuiltinName.data()+17, "ocal", 4))
+ break;
+ return Intrinsic::nvvm_isspacep_local; // "__nvvm_isspacep_local"
+ }
+ break;
+ case 'r': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+8, "sqrt_approx_", 12))
+ break;
+ switch (BuiltinName[20]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::nvvm_rsqrt_approx_d; // "__nvvm_rsqrt_approx_d"
+ case 'f': // 1 string to match.
+ return Intrinsic::nvvm_rsqrt_approx_f; // "__nvvm_rsqrt_approx_f"
+ }
+ break;
+ case 's': // 3 strings to match.
+ switch (BuiltinName[8]) {
+ default: break;
+ case 'a': // 1 string to match.
+ if (memcmp(BuiltinName.data()+9, "turate_ftz_f", 12))
+ break;
+ return Intrinsic::nvvm_saturate_ftz_f; // "__nvvm_saturate_ftz_f"
+ case 'u': // 1 string to match.
+ if (memcmp(BuiltinName.data()+9, "q_array_size", 12))
+ break;
+ return Intrinsic::nvvm_suq_array_size; // "__nvvm_suq_array_size"
+ case 'w': // 1 string to match.
+ if (memcmp(BuiltinName.data()+9, "ap_lo_hi_b64", 12))
+ break;
+ return Intrinsic::nvvm_swap_lo_hi_b64; // "__nvvm_swap_lo_hi_b64"
+ }
+ break;
+ case 't': // 1 string to match.
+ if (memcmp(BuiltinName.data()+8, "xq_array_size", 13))
+ break;
+ return Intrinsic::nvvm_txq_array_size; // "__nvvm_txq_array_size"
+ }
+ break;
+ }
+ break;
+ case 22: // 23 strings to match.
+ if (memcmp(BuiltinName.data()+0, "__", 2))
+ break;
+ switch (BuiltinName[2]) {
+ default: break;
+ case 'b': // 17 strings to match.
+ if (memcmp(BuiltinName.data()+3, "uiltin_", 7))
+ break;
+ switch (BuiltinName[10]) {
+ default: break;
+ case 'i': // 12 strings to match.
+ if (memcmp(BuiltinName.data()+11, "a32_v", 5))
+ break;
+ switch (BuiltinName[16]) {
+ default: break;
+ case 'f': // 4 strings to match.
+ if (memcmp(BuiltinName.data()+17, "rcz", 3))
+ break;
+ switch (BuiltinName[20]) {
+ default: break;
+ case 'p': // 2 strings to match.
+ switch (BuiltinName[21]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::x86_xop_vfrcz_pd; // "__builtin_ia32_vfrczpd"
+ case 's': // 1 string to match.
+ return Intrinsic::x86_xop_vfrcz_ps; // "__builtin_ia32_vfrczps"
+ }
+ break;
+ case 's': // 2 strings to match.
+ switch (BuiltinName[21]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::x86_xop_vfrcz_sd; // "__builtin_ia32_vfrczsd"
+ case 's': // 1 string to match.
+ return Intrinsic::x86_xop_vfrcz_ss; // "__builtin_ia32_vfrczss"
+ }
+ break;
+ }
+ break;
+ case 'p': // 8 strings to match.
+ switch (BuiltinName[17]) {
+ default: break;
+ case 'c': // 4 strings to match.
+ if (memcmp(BuiltinName.data()+18, "omu", 3))
+ break;
+ switch (BuiltinName[21]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::x86_xop_vpcomub; // "__builtin_ia32_vpcomub"
+ case 'd': // 1 string to match.
+ return Intrinsic::x86_xop_vpcomud; // "__builtin_ia32_vpcomud"
+ case 'q': // 1 string to match.
+ return Intrinsic::x86_xop_vpcomuq; // "__builtin_ia32_vpcomuq"
+ case 'w': // 1 string to match.
+ return Intrinsic::x86_xop_vpcomuw; // "__builtin_ia32_vpcomuw"
+ }
+ break;
+ case 'r': // 4 strings to match.
+ if (memcmp(BuiltinName.data()+18, "ot", 2))
+ break;
+ switch (BuiltinName[20]) {
+ default: break;
+ case 'b': // 1 string to match.
+ if (BuiltinName[21] != 'i')
+ break;
+ return Intrinsic::x86_xop_vprotbi; // "__builtin_ia32_vprotbi"
+ case 'd': // 1 string to match.
+ if (BuiltinName[21] != 'i')
+ break;
+ return Intrinsic::x86_xop_vprotdi; // "__builtin_ia32_vprotdi"
+ case 'q': // 1 string to match.
+ if (BuiltinName[21] != 'i')
+ break;
+ return Intrinsic::x86_xop_vprotqi; // "__builtin_ia32_vprotqi"
+ case 'w': // 1 string to match.
+ if (BuiltinName[21] != 'i')
+ break;
+ return Intrinsic::x86_xop_vprotwi; // "__builtin_ia32_vprotwi"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 'p': // 5 strings to match.
+ if (memcmp(BuiltinName.data()+11, "tx_", 3))
+ break;
+ switch (BuiltinName[14]) {
+ default: break;
+ case 'b': // 1 string to match.
+ if (memcmp(BuiltinName.data()+15, "ar_sync", 7))
+ break;
+ return Intrinsic::ptx_bar_sync; // "__builtin_ptx_bar_sync"
+ case 'r': // 4 strings to match.
+ if (memcmp(BuiltinName.data()+15, "ead_pm", 6))
+ break;
+ switch (BuiltinName[21]) {
+ default: break;
+ case '0': // 1 string to match.
+ return Intrinsic::ptx_read_pm0; // "__builtin_ptx_read_pm0"
+ case '1': // 1 string to match.
+ return Intrinsic::ptx_read_pm1; // "__builtin_ptx_read_pm1"
+ case '2': // 1 string to match.
+ return Intrinsic::ptx_read_pm2; // "__builtin_ptx_read_pm2"
+ case '3': // 1 string to match.
+ return Intrinsic::ptx_read_pm3; // "__builtin_ptx_read_pm3"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 'n': // 6 strings to match.
+ if (memcmp(BuiltinName.data()+3, "vvm_", 4))
+ break;
+ switch (BuiltinName[7]) {
+ default: break;
+ case 'i': // 5 strings to match.
+ if (BuiltinName[8] != 's')
+ break;
+ switch (BuiltinName[9]) {
+ default: break;
+ case 's': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+10, "pacep_", 6))
+ break;
+ switch (BuiltinName[16]) {
+ default: break;
+ case 'g': // 1 string to match.
+ if (memcmp(BuiltinName.data()+17, "lobal", 5))
+ break;
+ return Intrinsic::nvvm_isspacep_global; // "__nvvm_isspacep_global"
+ case 's': // 1 string to match.
+ if (memcmp(BuiltinName.data()+17, "hared", 5))
+ break;
+ return Intrinsic::nvvm_isspacep_shared; // "__nvvm_isspacep_shared"
+ }
+ break;
+ case 't': // 3 strings to match.
+ if (memcmp(BuiltinName.data()+10, "ypep_", 5))
+ break;
+ switch (BuiltinName[15]) {
+ default: break;
+ case 's': // 2 strings to match.
+ switch (BuiltinName[16]) {
+ default: break;
+ case 'a': // 1 string to match.
+ if (memcmp(BuiltinName.data()+17, "mpler", 5))
+ break;
+ return Intrinsic::nvvm_istypep_sampler; // "__nvvm_istypep_sampler"
+ case 'u': // 1 string to match.
+ if (memcmp(BuiltinName.data()+17, "rface", 5))
+ break;
+ return Intrinsic::nvvm_istypep_surface; // "__nvvm_istypep_surface"
+ }
+ break;
+ case 't': // 1 string to match.
+ if (memcmp(BuiltinName.data()+16, "exture", 6))
+ break;
+ return Intrinsic::nvvm_istypep_texture; // "__nvvm_istypep_texture"
+ }
+ break;
+ }
+ break;
+ case 't': // 1 string to match.
+ if (memcmp(BuiltinName.data()+8, "xq_num_samples", 14))
+ break;
+ return Intrinsic::nvvm_txq_num_samples; // "__nvvm_txq_num_samples"
+ }
+ break;
+ }
+ break;
+ case 23: // 21 strings to match.
+ if (memcmp(BuiltinName.data()+0, "__", 2))
+ break;
+ switch (BuiltinName[2]) {
+ default: break;
+ case 'b': // 14 strings to match.
+ if (memcmp(BuiltinName.data()+3, "uiltin_", 7))
+ break;
+ switch (BuiltinName[10]) {
+ default: break;
+ case 'i': // 12 strings to match.
+ if (memcmp(BuiltinName.data()+11, "a32_vp", 6))
+ break;
+ switch (BuiltinName[17]) {
+ default: break;
+ case 'h': // 9 strings to match.
+ switch (BuiltinName[18]) {
+ default: break;
+ case 'a': // 6 strings to match.
+ if (memcmp(BuiltinName.data()+19, "dd", 2))
+ break;
+ switch (BuiltinName[21]) {
+ default: break;
+ case 'b': // 3 strings to match.
+ switch (BuiltinName[22]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::x86_xop_vphaddbd; // "__builtin_ia32_vphaddbd"
+ case 'q': // 1 string to match.
+ return Intrinsic::x86_xop_vphaddbq; // "__builtin_ia32_vphaddbq"
+ case 'w': // 1 string to match.
+ return Intrinsic::x86_xop_vphaddbw; // "__builtin_ia32_vphaddbw"
+ }
+ break;
+ case 'd': // 1 string to match.
+ if (BuiltinName[22] != 'q')
+ break;
+ return Intrinsic::x86_xop_vphadddq; // "__builtin_ia32_vphadddq"
+ case 'w': // 2 strings to match.
+ switch (BuiltinName[22]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::x86_xop_vphaddwd; // "__builtin_ia32_vphaddwd"
+ case 'q': // 1 string to match.
+ return Intrinsic::x86_xop_vphaddwq; // "__builtin_ia32_vphaddwq"
+ }
+ break;
+ }
+ break;
+ case 's': // 3 strings to match.
+ if (memcmp(BuiltinName.data()+19, "ub", 2))
+ break;
+ switch (BuiltinName[21]) {
+ default: break;
+ case 'b': // 1 string to match.
+ if (BuiltinName[22] != 'w')
+ break;
+ return Intrinsic::x86_xop_vphsubbw; // "__builtin_ia32_vphsubbw"
+ case 'd': // 1 string to match.
+ if (BuiltinName[22] != 'q')
+ break;
+ return Intrinsic::x86_xop_vphsubdq; // "__builtin_ia32_vphsubdq"
+ case 'w': // 1 string to match.
+ if (BuiltinName[22] != 'd')
+ break;
+ return Intrinsic::x86_xop_vphsubwd; // "__builtin_ia32_vphsubwd"
+ }
+ break;
+ }
+ break;
+ case 'm': // 3 strings to match.
+ if (memcmp(BuiltinName.data()+18, "acs", 3))
+ break;
+ switch (BuiltinName[21]) {
+ default: break;
+ case 'd': // 1 string to match.
+ if (BuiltinName[22] != 'd')
+ break;
+ return Intrinsic::x86_xop_vpmacsdd; // "__builtin_ia32_vpmacsdd"
+ case 'w': // 2 strings to match.
+ switch (BuiltinName[22]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::x86_xop_vpmacswd; // "__builtin_ia32_vpmacswd"
+ case 'w': // 1 string to match.
+ return Intrinsic::x86_xop_vpmacsww; // "__builtin_ia32_vpmacsww"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 'p': // 1 string to match.
+ if (memcmp(BuiltinName.data()+11, "tx_read_smid", 12))
+ break;
+ return Intrinsic::ptx_read_smid; // "__builtin_ptx_read_smid"
+ case 's': // 1 string to match.
+ if (memcmp(BuiltinName.data()+11, "tack_restore", 12))
+ break;
+ return Intrinsic::stackrestore; // "__builtin_stack_restore"
+ }
+ break;
+ case 'n': // 7 strings to match.
+ if (memcmp(BuiltinName.data()+3, "vvm_", 4))
+ break;
+ switch (BuiltinName[7]) {
+ default: break;
+ case 'c': // 1 string to match.
+ if (memcmp(BuiltinName.data()+8, "os_approx_ftz_f", 15))
+ break;
+ return Intrinsic::nvvm_cos_approx_ftz_f; // "__nvvm_cos_approx_ftz_f"
+ case 'd': // 1 string to match.
+ if (memcmp(BuiltinName.data()+8, "iv_approx_ftz_f", 15))
+ break;
+ return Intrinsic::nvvm_div_approx_ftz_f; // "__nvvm_div_approx_ftz_f"
+ case 'e': // 1 string to match.
+ if (memcmp(BuiltinName.data()+8, "x2_approx_ftz_f", 15))
+ break;
+ return Intrinsic::nvvm_ex2_approx_ftz_f; // "__nvvm_ex2_approx_ftz_f"
+ case 'l': // 1 string to match.
+ if (memcmp(BuiltinName.data()+8, "g2_approx_ftz_f", 15))
+ break;
+ return Intrinsic::nvvm_lg2_approx_ftz_f; // "__nvvm_lg2_approx_ftz_f"
+ case 'r': // 2 strings to match.
+ switch (BuiltinName[8]) {
+ default: break;
+ case 'c': // 1 string to match.
+ if (memcmp(BuiltinName.data()+9, "p_approx_ftz_d", 14))
+ break;
+ return Intrinsic::nvvm_rcp_approx_ftz_d; // "__nvvm_rcp_approx_ftz_d"
+ case 'o': // 1 string to match.
+ if (memcmp(BuiltinName.data()+9, "tate_right_b64", 14))
+ break;
+ return Intrinsic::nvvm_rotate_right_b64; // "__nvvm_rotate_right_b64"
+ }
+ break;
+ case 's': // 1 string to match.
+ if (memcmp(BuiltinName.data()+8, "in_approx_ftz_f", 15))
+ break;
+ return Intrinsic::nvvm_sin_approx_ftz_f; // "__nvvm_sin_approx_ftz_f"
+ }
+ break;
+ }
+ break;
+ case 24: // 30 strings to match.
+ if (memcmp(BuiltinName.data()+0, "__", 2))
+ break;
+ switch (BuiltinName[2]) {
+ default: break;
+ case 'b': // 18 strings to match.
+ if (memcmp(BuiltinName.data()+3, "uiltin_", 7))
+ break;
+ switch (BuiltinName[10]) {
+ default: break;
+ case 'i': // 12 strings to match.
+ if (memcmp(BuiltinName.data()+11, "a32_vp", 6))
+ break;
+ switch (BuiltinName[17]) {
+ default: break;
+ case 'h': // 6 strings to match.
+ if (memcmp(BuiltinName.data()+18, "addu", 4))
+ break;
+ switch (BuiltinName[22]) {
+ default: break;
+ case 'b': // 3 strings to match.
+ switch (BuiltinName[23]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::x86_xop_vphaddubd; // "__builtin_ia32_vphaddubd"
+ case 'q': // 1 string to match.
+ return Intrinsic::x86_xop_vphaddubq; // "__builtin_ia32_vphaddubq"
+ case 'w': // 1 string to match.
+ return Intrinsic::x86_xop_vphaddubw; // "__builtin_ia32_vphaddubw"
+ }
+ break;
+ case 'd': // 1 string to match.
+ if (BuiltinName[23] != 'q')
+ break;
+ return Intrinsic::x86_xop_vphaddudq; // "__builtin_ia32_vphaddudq"
+ case 'w': // 2 strings to match.
+ switch (BuiltinName[23]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::x86_xop_vphadduwd; // "__builtin_ia32_vphadduwd"
+ case 'q': // 1 string to match.
+ return Intrinsic::x86_xop_vphadduwq; // "__builtin_ia32_vphadduwq"
+ }
+ break;
+ }
+ break;
+ case 'm': // 6 strings to match.
+ if (BuiltinName[18] != 'a')
+ break;
+ switch (BuiltinName[19]) {
+ default: break;
+ case 'c': // 5 strings to match.
+ if (BuiltinName[20] != 's')
+ break;
+ switch (BuiltinName[21]) {
+ default: break;
+ case 'd': // 2 strings to match.
+ if (BuiltinName[22] != 'q')
+ break;
+ switch (BuiltinName[23]) {
+ default: break;
+ case 'h': // 1 string to match.
+ return Intrinsic::x86_xop_vpmacsdqh; // "__builtin_ia32_vpmacsdqh"
+ case 'l': // 1 string to match.
+ return Intrinsic::x86_xop_vpmacsdql; // "__builtin_ia32_vpmacsdql"
+ }
+ break;
+ case 's': // 3 strings to match.
+ switch (BuiltinName[22]) {
+ default: break;
+ case 'd': // 1 string to match.
+ if (BuiltinName[23] != 'd')
+ break;
+ return Intrinsic::x86_xop_vpmacssdd; // "__builtin_ia32_vpmacssdd"
+ case 'w': // 2 strings to match.
+ switch (BuiltinName[23]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::x86_xop_vpmacsswd; // "__builtin_ia32_vpmacsswd"
+ case 'w': // 1 string to match.
+ return Intrinsic::x86_xop_vpmacssww; // "__builtin_ia32_vpmacssww"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 'd': // 1 string to match.
+ if (memcmp(BuiltinName.data()+20, "cswd", 4))
+ break;
+ return Intrinsic::x86_xop_vpmadcswd; // "__builtin_ia32_vpmadcswd"
+ }
+ break;
+ }
+ break;
+ case 'p': // 6 strings to match.
+ if (memcmp(BuiltinName.data()+11, "tx_read_", 8))
+ break;
+ switch (BuiltinName[19]) {
+ default: break;
+ case 'c': // 1 string to match.
+ if (memcmp(BuiltinName.data()+20, "lock", 4))
+ break;
+ return Intrinsic::ptx_read_clock; // "__builtin_ptx_read_clock"
+ case 'n': // 1 string to match.
+ if (memcmp(BuiltinName.data()+20, "smid", 4))
+ break;
+ return Intrinsic::ptx_read_nsmid; // "__builtin_ptx_read_nsmid"
+ case 't': // 4 strings to match.
+ if (memcmp(BuiltinName.data()+20, "id_", 3))
+ break;
+ switch (BuiltinName[23]) {
+ default: break;
+ case 'w': // 1 string to match.
+ return Intrinsic::ptx_read_tid_w; // "__builtin_ptx_read_tid_w"
+ case 'x': // 1 string to match.
+ return Intrinsic::ptx_read_tid_x; // "__builtin_ptx_read_tid_x"
+ case 'y': // 1 string to match.
+ return Intrinsic::ptx_read_tid_y; // "__builtin_ptx_read_tid_y"
+ case 'z': // 1 string to match.
+ return Intrinsic::ptx_read_tid_z; // "__builtin_ptx_read_tid_z"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 'n': // 12 strings to match.
+ if (memcmp(BuiltinName.data()+3, "vvm_", 4))
+ break;
+ switch (BuiltinName[7]) {
+ default: break;
+ case 's': // 11 strings to match.
+ switch (BuiltinName[8]) {
+ default: break;
+ case 'q': // 1 string to match.
+ if (memcmp(BuiltinName.data()+9, "rt_approx_ftz_f", 15))
+ break;
+ return Intrinsic::nvvm_sqrt_approx_ftz_f; // "__nvvm_sqrt_approx_ftz_f"
+ case 'u': // 10 strings to match.
+ switch (BuiltinName[9]) {
+ default: break;
+ case 'q': // 1 string to match.
+ if (memcmp(BuiltinName.data()+10, "_channel_order", 14))
+ break;
+ return Intrinsic::nvvm_suq_channel_order; // "__nvvm_suq_channel_order"
+ case 's': // 9 strings to match.
+ if (memcmp(BuiltinName.data()+10, "t_", 2))
+ break;
+ switch (BuiltinName[12]) {
+ default: break;
+ case 'b': // 6 strings to match.
+ if (BuiltinName[13] != '_')
+ break;
+ switch (BuiltinName[14]) {
+ default: break;
+ case '1': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+15, "d_i8_", 5))
+ break;
+ switch (BuiltinName[20]) {
+ default: break;
+ case 't': // 1 string to match.
+ if (memcmp(BuiltinName.data()+21, "rap", 3))
+ break;
+ return Intrinsic::nvvm_sust_b_1d_i8_trap; // "__nvvm_sust_b_1d_i8_trap"
+ case 'z': // 1 string to match.
+ if (memcmp(BuiltinName.data()+21, "ero", 3))
+ break;
+ return Intrinsic::nvvm_sust_b_1d_i8_zero; // "__nvvm_sust_b_1d_i8_zero"
+ }
+ break;
+ case '2': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+15, "d_i8_", 5))
+ break;
+ switch (BuiltinName[20]) {
+ default: break;
+ case 't': // 1 string to match.
+ if (memcmp(BuiltinName.data()+21, "rap", 3))
+ break;
+ return Intrinsic::nvvm_sust_b_2d_i8_trap; // "__nvvm_sust_b_2d_i8_trap"
+ case 'z': // 1 string to match.
+ if (memcmp(BuiltinName.data()+21, "ero", 3))
+ break;
+ return Intrinsic::nvvm_sust_b_2d_i8_zero; // "__nvvm_sust_b_2d_i8_zero"
+ }
+ break;
+ case '3': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+15, "d_i8_", 5))
+ break;
+ switch (BuiltinName[20]) {
+ default: break;
+ case 't': // 1 string to match.
+ if (memcmp(BuiltinName.data()+21, "rap", 3))
+ break;
+ return Intrinsic::nvvm_sust_b_3d_i8_trap; // "__nvvm_sust_b_3d_i8_trap"
+ case 'z': // 1 string to match.
+ if (memcmp(BuiltinName.data()+21, "ero", 3))
+ break;
+ return Intrinsic::nvvm_sust_b_3d_i8_zero; // "__nvvm_sust_b_3d_i8_zero"
+ }
+ break;
+ }
+ break;
+ case 'p': // 3 strings to match.
+ if (BuiltinName[13] != '_')
+ break;
+ switch (BuiltinName[14]) {
+ default: break;
+ case '1': // 1 string to match.
+ if (memcmp(BuiltinName.data()+15, "d_i8_trap", 9))
+ break;
+ return Intrinsic::nvvm_sust_p_1d_i8_trap; // "__nvvm_sust_p_1d_i8_trap"
+ case '2': // 1 string to match.
+ if (memcmp(BuiltinName.data()+15, "d_i8_trap", 9))
+ break;
+ return Intrinsic::nvvm_sust_p_2d_i8_trap; // "__nvvm_sust_p_2d_i8_trap"
+ case '3': // 1 string to match.
+ if (memcmp(BuiltinName.data()+15, "d_i8_trap", 9))
+ break;
+ return Intrinsic::nvvm_sust_p_3d_i8_trap; // "__nvvm_sust_p_3d_i8_trap"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 't': // 1 string to match.
+ if (memcmp(BuiltinName.data()+8, "xq_channel_order", 16))
+ break;
+ return Intrinsic::nvvm_txq_channel_order; // "__nvvm_txq_channel_order"
+ }
+ break;
+ }
+ break;
+ case 25: // 44 strings to match.
+ if (memcmp(BuiltinName.data()+0, "__", 2))
+ break;
+ switch (BuiltinName[2]) {
+ default: break;
+ case 'b': // 16 strings to match.
+ if (memcmp(BuiltinName.data()+3, "uiltin_", 7))
+ break;
+ switch (BuiltinName[10]) {
+ default: break;
+ case 'i': // 9 strings to match.
+ switch (BuiltinName[11]) {
+ default: break;
+ case 'a': // 8 strings to match.
+ if (memcmp(BuiltinName.data()+12, "32_v", 4))
+ break;
+ switch (BuiltinName[16]) {
+ default: break;
+ case 'f': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+17, "rczp", 4))
+ break;
+ switch (BuiltinName[21]) {
+ default: break;
+ case 'd': // 1 string to match.
+ if (memcmp(BuiltinName.data()+22, "256", 3))
+ break;
+ return Intrinsic::x86_xop_vfrcz_pd_256; // "__builtin_ia32_vfrczpd256"
+ case 's': // 1 string to match.
+ if (memcmp(BuiltinName.data()+22, "256", 3))
+ break;
+ return Intrinsic::x86_xop_vfrcz_ps_256; // "__builtin_ia32_vfrczps256"
+ }
+ break;
+ case 'p': // 6 strings to match.
+ switch (BuiltinName[17]) {
+ default: break;
+ case 'c': // 1 string to match.
+ if (memcmp(BuiltinName.data()+18, "mov_256", 7))
+ break;
+ return Intrinsic::x86_xop_vpcmov_256; // "__builtin_ia32_vpcmov_256"
+ case 'e': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+18, "rmil2p", 6))
+ break;
+ switch (BuiltinName[24]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::x86_xop_vpermil2pd; // "__builtin_ia32_vpermil2pd"
+ case 's': // 1 string to match.
+ return Intrinsic::x86_xop_vpermil2ps; // "__builtin_ia32_vpermil2ps"
+ }
+ break;
+ case 'm': // 3 strings to match.
+ if (BuiltinName[18] != 'a')
+ break;
+ switch (BuiltinName[19]) {
+ default: break;
+ case 'c': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+20, "ssdq", 4))
+ break;
+ switch (BuiltinName[24]) {
+ default: break;
+ case 'h': // 1 string to match.
+ return Intrinsic::x86_xop_vpmacssdqh; // "__builtin_ia32_vpmacssdqh"
+ case 'l': // 1 string to match.
+ return Intrinsic::x86_xop_vpmacssdql; // "__builtin_ia32_vpmacssdql"
+ }
+ break;
+ case 'd': // 1 string to match.
+ if (memcmp(BuiltinName.data()+20, "csswd", 5))
+ break;
+ return Intrinsic::x86_xop_vpmadcsswd; // "__builtin_ia32_vpmadcsswd"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 'n': // 1 string to match.
+ if (memcmp(BuiltinName.data()+12, "it_trampoline", 13))
+ break;
+ return Intrinsic::init_trampoline; // "__builtin_init_trampoline"
+ }
+ break;
+ case 'p': // 7 strings to match.
+ if (memcmp(BuiltinName.data()+11, "tx_read_", 8))
+ break;
+ switch (BuiltinName[19]) {
+ default: break;
+ case 'g': // 1 string to match.
+ if (memcmp(BuiltinName.data()+20, "ridid", 5))
+ break;
+ return Intrinsic::ptx_read_gridid; // "__builtin_ptx_read_gridid"
+ case 'l': // 1 string to match.
+ if (memcmp(BuiltinName.data()+20, "aneid", 5))
+ break;
+ return Intrinsic::ptx_read_laneid; // "__builtin_ptx_read_laneid"
+ case 'n': // 4 strings to match.
+ if (memcmp(BuiltinName.data()+20, "tid_", 4))
+ break;
+ switch (BuiltinName[24]) {
+ default: break;
+ case 'w': // 1 string to match.
+ return Intrinsic::ptx_read_ntid_w; // "__builtin_ptx_read_ntid_w"
+ case 'x': // 1 string to match.
+ return Intrinsic::ptx_read_ntid_x; // "__builtin_ptx_read_ntid_x"
+ case 'y': // 1 string to match.
+ return Intrinsic::ptx_read_ntid_y; // "__builtin_ptx_read_ntid_y"
+ case 'z': // 1 string to match.
+ return Intrinsic::ptx_read_ntid_z; // "__builtin_ptx_read_ntid_z"
+ }
+ break;
+ case 'w': // 1 string to match.
+ if (memcmp(BuiltinName.data()+20, "arpid", 5))
+ break;
+ return Intrinsic::ptx_read_warpid; // "__builtin_ptx_read_warpid"
+ }
+ break;
+ }
+ break;
+ case 'n': // 28 strings to match.
+ if (memcmp(BuiltinName.data()+3, "vvm_", 4))
+ break;
+ switch (BuiltinName[7]) {
+ default: break;
+ case 'r': // 1 string to match.
+ if (memcmp(BuiltinName.data()+8, "sqrt_approx_ftz_f", 17))
+ break;
+ return Intrinsic::nvvm_rsqrt_approx_ftz_f; // "__nvvm_rsqrt_approx_ftz_f"
+ case 's': // 27 strings to match.
+ if (memcmp(BuiltinName.data()+8, "ust_", 4))
+ break;
+ switch (BuiltinName[12]) {
+ default: break;
+ case 'b': // 21 strings to match.
+ if (BuiltinName[13] != '_')
+ break;
+ switch (BuiltinName[14]) {
+ default: break;
+ case '1': // 7 strings to match.
+ if (memcmp(BuiltinName.data()+15, "d_i", 3))
+ break;
+ switch (BuiltinName[18]) {
+ default: break;
+ case '1': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+19, "6_", 2))
+ break;
+ switch (BuiltinName[21]) {
+ default: break;
+ case 't': // 1 string to match.
+ if (memcmp(BuiltinName.data()+22, "rap", 3))
+ break;
+ return Intrinsic::nvvm_sust_b_1d_i16_trap; // "__nvvm_sust_b_1d_i16_trap"
+ case 'z': // 1 string to match.
+ if (memcmp(BuiltinName.data()+22, "ero", 3))
+ break;
+ return Intrinsic::nvvm_sust_b_1d_i16_zero; // "__nvvm_sust_b_1d_i16_zero"
+ }
+ break;
+ case '3': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+19, "2_", 2))
+ break;
+ switch (BuiltinName[21]) {
+ default: break;
+ case 't': // 1 string to match.
+ if (memcmp(BuiltinName.data()+22, "rap", 3))
+ break;
+ return Intrinsic::nvvm_sust_b_1d_i32_trap; // "__nvvm_sust_b_1d_i32_trap"
+ case 'z': // 1 string to match.
+ if (memcmp(BuiltinName.data()+22, "ero", 3))
+ break;
+ return Intrinsic::nvvm_sust_b_1d_i32_zero; // "__nvvm_sust_b_1d_i32_zero"
+ }
+ break;
+ case '6': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+19, "4_", 2))
+ break;
+ switch (BuiltinName[21]) {
+ default: break;
+ case 't': // 1 string to match.
+ if (memcmp(BuiltinName.data()+22, "rap", 3))
+ break;
+ return Intrinsic::nvvm_sust_b_1d_i64_trap; // "__nvvm_sust_b_1d_i64_trap"
+ case 'z': // 1 string to match.
+ if (memcmp(BuiltinName.data()+22, "ero", 3))
+ break;
+ return Intrinsic::nvvm_sust_b_1d_i64_zero; // "__nvvm_sust_b_1d_i64_zero"
+ }
+ break;
+ case '8': // 1 string to match.
+ if (memcmp(BuiltinName.data()+19, "_clamp", 6))
+ break;
+ return Intrinsic::nvvm_sust_b_1d_i8_clamp; // "__nvvm_sust_b_1d_i8_clamp"
+ }
+ break;
+ case '2': // 7 strings to match.
+ if (memcmp(BuiltinName.data()+15, "d_i", 3))
+ break;
+ switch (BuiltinName[18]) {
+ default: break;
+ case '1': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+19, "6_", 2))
+ break;
+ switch (BuiltinName[21]) {
+ default: break;
+ case 't': // 1 string to match.
+ if (memcmp(BuiltinName.data()+22, "rap", 3))
+ break;
+ return Intrinsic::nvvm_sust_b_2d_i16_trap; // "__nvvm_sust_b_2d_i16_trap"
+ case 'z': // 1 string to match.
+ if (memcmp(BuiltinName.data()+22, "ero", 3))
+ break;
+ return Intrinsic::nvvm_sust_b_2d_i16_zero; // "__nvvm_sust_b_2d_i16_zero"
+ }
+ break;
+ case '3': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+19, "2_", 2))
+ break;
+ switch (BuiltinName[21]) {
+ default: break;
+ case 't': // 1 string to match.
+ if (memcmp(BuiltinName.data()+22, "rap", 3))
+ break;
+ return Intrinsic::nvvm_sust_b_2d_i32_trap; // "__nvvm_sust_b_2d_i32_trap"
+ case 'z': // 1 string to match.
+ if (memcmp(BuiltinName.data()+22, "ero", 3))
+ break;
+ return Intrinsic::nvvm_sust_b_2d_i32_zero; // "__nvvm_sust_b_2d_i32_zero"
+ }
+ break;
+ case '6': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+19, "4_", 2))
+ break;
+ switch (BuiltinName[21]) {
+ default: break;
+ case 't': // 1 string to match.
+ if (memcmp(BuiltinName.data()+22, "rap", 3))
+ break;
+ return Intrinsic::nvvm_sust_b_2d_i64_trap; // "__nvvm_sust_b_2d_i64_trap"
+ case 'z': // 1 string to match.
+ if (memcmp(BuiltinName.data()+22, "ero", 3))
+ break;
+ return Intrinsic::nvvm_sust_b_2d_i64_zero; // "__nvvm_sust_b_2d_i64_zero"
+ }
+ break;
+ case '8': // 1 string to match.
+ if (memcmp(BuiltinName.data()+19, "_clamp", 6))
+ break;
+ return Intrinsic::nvvm_sust_b_2d_i8_clamp; // "__nvvm_sust_b_2d_i8_clamp"
+ }
+ break;
+ case '3': // 7 strings to match.
+ if (memcmp(BuiltinName.data()+15, "d_i", 3))
+ break;
+ switch (BuiltinName[18]) {
+ default: break;
+ case '1': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+19, "6_", 2))
+ break;
+ switch (BuiltinName[21]) {
+ default: break;
+ case 't': // 1 string to match.
+ if (memcmp(BuiltinName.data()+22, "rap", 3))
+ break;
+ return Intrinsic::nvvm_sust_b_3d_i16_trap; // "__nvvm_sust_b_3d_i16_trap"
+ case 'z': // 1 string to match.
+ if (memcmp(BuiltinName.data()+22, "ero", 3))
+ break;
+ return Intrinsic::nvvm_sust_b_3d_i16_zero; // "__nvvm_sust_b_3d_i16_zero"
+ }
+ break;
+ case '3': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+19, "2_", 2))
+ break;
+ switch (BuiltinName[21]) {
+ default: break;
+ case 't': // 1 string to match.
+ if (memcmp(BuiltinName.data()+22, "rap", 3))
+ break;
+ return Intrinsic::nvvm_sust_b_3d_i32_trap; // "__nvvm_sust_b_3d_i32_trap"
+ case 'z': // 1 string to match.
+ if (memcmp(BuiltinName.data()+22, "ero", 3))
+ break;
+ return Intrinsic::nvvm_sust_b_3d_i32_zero; // "__nvvm_sust_b_3d_i32_zero"
+ }
+ break;
+ case '6': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+19, "4_", 2))
+ break;
+ switch (BuiltinName[21]) {
+ default: break;
+ case 't': // 1 string to match.
+ if (memcmp(BuiltinName.data()+22, "rap", 3))
+ break;
+ return Intrinsic::nvvm_sust_b_3d_i64_trap; // "__nvvm_sust_b_3d_i64_trap"
+ case 'z': // 1 string to match.
+ if (memcmp(BuiltinName.data()+22, "ero", 3))
+ break;
+ return Intrinsic::nvvm_sust_b_3d_i64_zero; // "__nvvm_sust_b_3d_i64_zero"
+ }
+ break;
+ case '8': // 1 string to match.
+ if (memcmp(BuiltinName.data()+19, "_clamp", 6))
+ break;
+ return Intrinsic::nvvm_sust_b_3d_i8_clamp; // "__nvvm_sust_b_3d_i8_clamp"
+ }
+ break;
+ }
+ break;
+ case 'p': // 6 strings to match.
+ if (BuiltinName[13] != '_')
+ break;
+ switch (BuiltinName[14]) {
+ default: break;
+ case '1': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+15, "d_i", 3))
+ break;
+ switch (BuiltinName[18]) {
+ default: break;
+ case '1': // 1 string to match.
+ if (memcmp(BuiltinName.data()+19, "6_trap", 6))
+ break;
+ return Intrinsic::nvvm_sust_p_1d_i16_trap; // "__nvvm_sust_p_1d_i16_trap"
+ case '3': // 1 string to match.
+ if (memcmp(BuiltinName.data()+19, "2_trap", 6))
+ break;
+ return Intrinsic::nvvm_sust_p_1d_i32_trap; // "__nvvm_sust_p_1d_i32_trap"
+ }
+ break;
+ case '2': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+15, "d_i", 3))
+ break;
+ switch (BuiltinName[18]) {
+ default: break;
+ case '1': // 1 string to match.
+ if (memcmp(BuiltinName.data()+19, "6_trap", 6))
+ break;
+ return Intrinsic::nvvm_sust_p_2d_i16_trap; // "__nvvm_sust_p_2d_i16_trap"
+ case '3': // 1 string to match.
+ if (memcmp(BuiltinName.data()+19, "2_trap", 6))
+ break;
+ return Intrinsic::nvvm_sust_p_2d_i32_trap; // "__nvvm_sust_p_2d_i32_trap"
+ }
+ break;
+ case '3': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+15, "d_i", 3))
+ break;
+ switch (BuiltinName[18]) {
+ default: break;
+ case '1': // 1 string to match.
+ if (memcmp(BuiltinName.data()+19, "6_trap", 6))
+ break;
+ return Intrinsic::nvvm_sust_p_3d_i16_trap; // "__nvvm_sust_p_3d_i16_trap"
+ case '3': // 1 string to match.
+ if (memcmp(BuiltinName.data()+19, "2_trap", 6))
+ break;
+ return Intrinsic::nvvm_sust_p_3d_i32_trap; // "__nvvm_sust_p_3d_i32_trap"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 26: // 36 strings to match.
+ if (memcmp(BuiltinName.data()+0, "__", 2))
+ break;
+ switch (BuiltinName[2]) {
+ default: break;
+ case 'b': // 6 strings to match.
+ if (memcmp(BuiltinName.data()+3, "uiltin_ptx_read_", 16))
+ break;
+ switch (BuiltinName[19]) {
+ default: break;
+ case 'c': // 5 strings to match.
+ switch (BuiltinName[20]) {
+ default: break;
+ case 'l': // 1 string to match.
+ if (memcmp(BuiltinName.data()+21, "ock64", 5))
+ break;
+ return Intrinsic::ptx_read_clock64; // "__builtin_ptx_read_clock64"
+ case 't': // 4 strings to match.
+ if (memcmp(BuiltinName.data()+21, "aid_", 4))
+ break;
+ switch (BuiltinName[25]) {
+ default: break;
+ case 'w': // 1 string to match.
+ return Intrinsic::ptx_read_ctaid_w; // "__builtin_ptx_read_ctaid_w"
+ case 'x': // 1 string to match.
+ return Intrinsic::ptx_read_ctaid_x; // "__builtin_ptx_read_ctaid_x"
+ case 'y': // 1 string to match.
+ return Intrinsic::ptx_read_ctaid_y; // "__builtin_ptx_read_ctaid_y"
+ case 'z': // 1 string to match.
+ return Intrinsic::ptx_read_ctaid_z; // "__builtin_ptx_read_ctaid_z"
+ }
+ break;
+ }
+ break;
+ case 'n': // 1 string to match.
+ if (memcmp(BuiltinName.data()+20, "warpid", 6))
+ break;
+ return Intrinsic::ptx_read_nwarpid; // "__builtin_ptx_read_nwarpid"
+ }
+ break;
+ case 'n': // 30 strings to match.
+ if (memcmp(BuiltinName.data()+3, "vvm_", 4))
+ break;
+ switch (BuiltinName[7]) {
+ default: break;
+ case 'r': // 3 strings to match.
+ if (memcmp(BuiltinName.data()+8, "ead_ptx_sreg_tid_", 17))
+ break;
+ switch (BuiltinName[25]) {
+ default: break;
+ case 'x': // 1 string to match.
+ return Intrinsic::nvvm_read_ptx_sreg_tid_x; // "__nvvm_read_ptx_sreg_tid_x"
+ case 'y': // 1 string to match.
+ return Intrinsic::nvvm_read_ptx_sreg_tid_y; // "__nvvm_read_ptx_sreg_tid_y"
+ case 'z': // 1 string to match.
+ return Intrinsic::nvvm_read_ptx_sreg_tid_z; // "__nvvm_read_ptx_sreg_tid_z"
+ }
+ break;
+ case 's': // 27 strings to match.
+ if (memcmp(BuiltinName.data()+8, "ust_", 4))
+ break;
+ switch (BuiltinName[12]) {
+ default: break;
+ case 'b': // 21 strings to match.
+ if (BuiltinName[13] != '_')
+ break;
+ switch (BuiltinName[14]) {
+ default: break;
+ case '1': // 7 strings to match.
+ if (memcmp(BuiltinName.data()+15, "d_", 2))
+ break;
+ switch (BuiltinName[17]) {
+ default: break;
+ case 'i': // 3 strings to match.
+ switch (BuiltinName[18]) {
+ default: break;
+ case '1': // 1 string to match.
+ if (memcmp(BuiltinName.data()+19, "6_clamp", 7))
+ break;
+ return Intrinsic::nvvm_sust_b_1d_i16_clamp; // "__nvvm_sust_b_1d_i16_clamp"
+ case '3': // 1 string to match.
+ if (memcmp(BuiltinName.data()+19, "2_clamp", 7))
+ break;
+ return Intrinsic::nvvm_sust_b_1d_i32_clamp; // "__nvvm_sust_b_1d_i32_clamp"
+ case '6': // 1 string to match.
+ if (memcmp(BuiltinName.data()+19, "4_clamp", 7))
+ break;
+ return Intrinsic::nvvm_sust_b_1d_i64_clamp; // "__nvvm_sust_b_1d_i64_clamp"
+ }
+ break;
+ case 'v': // 4 strings to match.
+ switch (BuiltinName[18]) {
+ default: break;
+ case '2': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+19, "i8_", 3))
+ break;
+ switch (BuiltinName[22]) {
+ default: break;
+ case 't': // 1 string to match.
+ if (memcmp(BuiltinName.data()+23, "rap", 3))
+ break;
+ return Intrinsic::nvvm_sust_b_1d_v2i8_trap; // "__nvvm_sust_b_1d_v2i8_trap"
+ case 'z': // 1 string to match.
+ if (memcmp(BuiltinName.data()+23, "ero", 3))
+ break;
+ return Intrinsic::nvvm_sust_b_1d_v2i8_zero; // "__nvvm_sust_b_1d_v2i8_zero"
+ }
+ break;
+ case '4': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+19, "i8_", 3))
+ break;
+ switch (BuiltinName[22]) {
+ default: break;
+ case 't': // 1 string to match.
+ if (memcmp(BuiltinName.data()+23, "rap", 3))
+ break;
+ return Intrinsic::nvvm_sust_b_1d_v4i8_trap; // "__nvvm_sust_b_1d_v4i8_trap"
+ case 'z': // 1 string to match.
+ if (memcmp(BuiltinName.data()+23, "ero", 3))
+ break;
+ return Intrinsic::nvvm_sust_b_1d_v4i8_zero; // "__nvvm_sust_b_1d_v4i8_zero"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case '2': // 7 strings to match.
+ if (memcmp(BuiltinName.data()+15, "d_", 2))
+ break;
+ switch (BuiltinName[17]) {
+ default: break;
+ case 'i': // 3 strings to match.
+ switch (BuiltinName[18]) {
+ default: break;
+ case '1': // 1 string to match.
+ if (memcmp(BuiltinName.data()+19, "6_clamp", 7))
+ break;
+ return Intrinsic::nvvm_sust_b_2d_i16_clamp; // "__nvvm_sust_b_2d_i16_clamp"
+ case '3': // 1 string to match.
+ if (memcmp(BuiltinName.data()+19, "2_clamp", 7))
+ break;
+ return Intrinsic::nvvm_sust_b_2d_i32_clamp; // "__nvvm_sust_b_2d_i32_clamp"
+ case '6': // 1 string to match.
+ if (memcmp(BuiltinName.data()+19, "4_clamp", 7))
+ break;
+ return Intrinsic::nvvm_sust_b_2d_i64_clamp; // "__nvvm_sust_b_2d_i64_clamp"
+ }
+ break;
+ case 'v': // 4 strings to match.
+ switch (BuiltinName[18]) {
+ default: break;
+ case '2': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+19, "i8_", 3))
+ break;
+ switch (BuiltinName[22]) {
+ default: break;
+ case 't': // 1 string to match.
+ if (memcmp(BuiltinName.data()+23, "rap", 3))
+ break;
+ return Intrinsic::nvvm_sust_b_2d_v2i8_trap; // "__nvvm_sust_b_2d_v2i8_trap"
+ case 'z': // 1 string to match.
+ if (memcmp(BuiltinName.data()+23, "ero", 3))
+ break;
+ return Intrinsic::nvvm_sust_b_2d_v2i8_zero; // "__nvvm_sust_b_2d_v2i8_zero"
+ }
+ break;
+ case '4': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+19, "i8_", 3))
+ break;
+ switch (BuiltinName[22]) {
+ default: break;
+ case 't': // 1 string to match.
+ if (memcmp(BuiltinName.data()+23, "rap", 3))
+ break;
+ return Intrinsic::nvvm_sust_b_2d_v4i8_trap; // "__nvvm_sust_b_2d_v4i8_trap"
+ case 'z': // 1 string to match.
+ if (memcmp(BuiltinName.data()+23, "ero", 3))
+ break;
+ return Intrinsic::nvvm_sust_b_2d_v4i8_zero; // "__nvvm_sust_b_2d_v4i8_zero"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case '3': // 7 strings to match.
+ if (memcmp(BuiltinName.data()+15, "d_", 2))
+ break;
+ switch (BuiltinName[17]) {
+ default: break;
+ case 'i': // 3 strings to match.
+ switch (BuiltinName[18]) {
+ default: break;
+ case '1': // 1 string to match.
+ if (memcmp(BuiltinName.data()+19, "6_clamp", 7))
+ break;
+ return Intrinsic::nvvm_sust_b_3d_i16_clamp; // "__nvvm_sust_b_3d_i16_clamp"
+ case '3': // 1 string to match.
+ if (memcmp(BuiltinName.data()+19, "2_clamp", 7))
+ break;
+ return Intrinsic::nvvm_sust_b_3d_i32_clamp; // "__nvvm_sust_b_3d_i32_clamp"
+ case '6': // 1 string to match.
+ if (memcmp(BuiltinName.data()+19, "4_clamp", 7))
+ break;
+ return Intrinsic::nvvm_sust_b_3d_i64_clamp; // "__nvvm_sust_b_3d_i64_clamp"
+ }
+ break;
+ case 'v': // 4 strings to match.
+ switch (BuiltinName[18]) {
+ default: break;
+ case '2': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+19, "i8_", 3))
+ break;
+ switch (BuiltinName[22]) {
+ default: break;
+ case 't': // 1 string to match.
+ if (memcmp(BuiltinName.data()+23, "rap", 3))
+ break;
+ return Intrinsic::nvvm_sust_b_3d_v2i8_trap; // "__nvvm_sust_b_3d_v2i8_trap"
+ case 'z': // 1 string to match.
+ if (memcmp(BuiltinName.data()+23, "ero", 3))
+ break;
+ return Intrinsic::nvvm_sust_b_3d_v2i8_zero; // "__nvvm_sust_b_3d_v2i8_zero"
+ }
+ break;
+ case '4': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+19, "i8_", 3))
+ break;
+ switch (BuiltinName[22]) {
+ default: break;
+ case 't': // 1 string to match.
+ if (memcmp(BuiltinName.data()+23, "rap", 3))
+ break;
+ return Intrinsic::nvvm_sust_b_3d_v4i8_trap; // "__nvvm_sust_b_3d_v4i8_trap"
+ case 'z': // 1 string to match.
+ if (memcmp(BuiltinName.data()+23, "ero", 3))
+ break;
+ return Intrinsic::nvvm_sust_b_3d_v4i8_zero; // "__nvvm_sust_b_3d_v4i8_zero"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 'p': // 6 strings to match.
+ if (BuiltinName[13] != '_')
+ break;
+ switch (BuiltinName[14]) {
+ default: break;
+ case '1': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+15, "d_v", 3))
+ break;
+ switch (BuiltinName[18]) {
+ default: break;
+ case '2': // 1 string to match.
+ if (memcmp(BuiltinName.data()+19, "i8_trap", 7))
+ break;
+ return Intrinsic::nvvm_sust_p_1d_v2i8_trap; // "__nvvm_sust_p_1d_v2i8_trap"
+ case '4': // 1 string to match.
+ if (memcmp(BuiltinName.data()+19, "i8_trap", 7))
+ break;
+ return Intrinsic::nvvm_sust_p_1d_v4i8_trap; // "__nvvm_sust_p_1d_v4i8_trap"
+ }
+ break;
+ case '2': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+15, "d_v", 3))
+ break;
+ switch (BuiltinName[18]) {
+ default: break;
+ case '2': // 1 string to match.
+ if (memcmp(BuiltinName.data()+19, "i8_trap", 7))
+ break;
+ return Intrinsic::nvvm_sust_p_2d_v2i8_trap; // "__nvvm_sust_p_2d_v2i8_trap"
+ case '4': // 1 string to match.
+ if (memcmp(BuiltinName.data()+19, "i8_trap", 7))
+ break;
+ return Intrinsic::nvvm_sust_p_2d_v4i8_trap; // "__nvvm_sust_p_2d_v4i8_trap"
+ }
+ break;
+ case '3': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+15, "d_v", 3))
+ break;
+ switch (BuiltinName[18]) {
+ default: break;
+ case '2': // 1 string to match.
+ if (memcmp(BuiltinName.data()+19, "i8_trap", 7))
+ break;
+ return Intrinsic::nvvm_sust_p_3d_v2i8_trap; // "__nvvm_sust_p_3d_v2i8_trap"
+ case '4': // 1 string to match.
+ if (memcmp(BuiltinName.data()+19, "i8_trap", 7))
+ break;
+ return Intrinsic::nvvm_sust_p_3d_v4i8_trap; // "__nvvm_sust_p_3d_v4i8_trap"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 27: // 56 strings to match.
+ if (memcmp(BuiltinName.data()+0, "__", 2))
+ break;
+ switch (BuiltinName[2]) {
+ default: break;
+ case 'b': // 5 strings to match.
+ if (memcmp(BuiltinName.data()+3, "uiltin_", 7))
+ break;
+ switch (BuiltinName[10]) {
+ default: break;
+ case 'a': // 1 string to match.
+ if (memcmp(BuiltinName.data()+11, "djust_trampoline", 16))
+ break;
+ return Intrinsic::adjust_trampoline; // "__builtin_adjust_trampoline"
+ case 'p': // 4 strings to match.
+ if (memcmp(BuiltinName.data()+11, "tx_read_nctaid_", 15))
+ break;
+ switch (BuiltinName[26]) {
+ default: break;
+ case 'w': // 1 string to match.
+ return Intrinsic::ptx_read_nctaid_w; // "__builtin_ptx_read_nctaid_w"
+ case 'x': // 1 string to match.
+ return Intrinsic::ptx_read_nctaid_x; // "__builtin_ptx_read_nctaid_x"
+ case 'y': // 1 string to match.
+ return Intrinsic::ptx_read_nctaid_y; // "__builtin_ptx_read_nctaid_y"
+ case 'z': // 1 string to match.
+ return Intrinsic::ptx_read_nctaid_z; // "__builtin_ptx_read_nctaid_z"
+ }
+ break;
+ }
+ break;
+ case 'n': // 51 strings to match.
+ if (memcmp(BuiltinName.data()+3, "vvm_", 4))
+ break;
+ switch (BuiltinName[7]) {
+ default: break;
+ case 'r': // 3 strings to match.
+ if (memcmp(BuiltinName.data()+8, "ead_ptx_sreg_ntid_", 18))
+ break;
+ switch (BuiltinName[26]) {
+ default: break;
+ case 'x': // 1 string to match.
+ return Intrinsic::nvvm_read_ptx_sreg_ntid_x; // "__nvvm_read_ptx_sreg_ntid_x"
+ case 'y': // 1 string to match.
+ return Intrinsic::nvvm_read_ptx_sreg_ntid_y; // "__nvvm_read_ptx_sreg_ntid_y"
+ case 'z': // 1 string to match.
+ return Intrinsic::nvvm_read_ptx_sreg_ntid_z; // "__nvvm_read_ptx_sreg_ntid_z"
+ }
+ break;
+ case 's': // 48 strings to match.
+ if (memcmp(BuiltinName.data()+8, "ust_", 4))
+ break;
+ switch (BuiltinName[12]) {
+ default: break;
+ case 'b': // 36 strings to match.
+ if (BuiltinName[13] != '_')
+ break;
+ switch (BuiltinName[14]) {
+ default: break;
+ case '1': // 12 strings to match.
+ if (memcmp(BuiltinName.data()+15, "d_v", 3))
+ break;
+ switch (BuiltinName[18]) {
+ default: break;
+ case '2': // 7 strings to match.
+ if (BuiltinName[19] != 'i')
+ break;
+ switch (BuiltinName[20]) {
+ default: break;
+ case '1': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+21, "6_", 2))
+ break;
+ switch (BuiltinName[23]) {
+ default: break;
+ case 't': // 1 string to match.
+ if (memcmp(BuiltinName.data()+24, "rap", 3))
+ break;
+ return Intrinsic::nvvm_sust_b_1d_v2i16_trap; // "__nvvm_sust_b_1d_v2i16_trap"
+ case 'z': // 1 string to match.
+ if (memcmp(BuiltinName.data()+24, "ero", 3))
+ break;
+ return Intrinsic::nvvm_sust_b_1d_v2i16_zero; // "__nvvm_sust_b_1d_v2i16_zero"
+ }
+ break;
+ case '3': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+21, "2_", 2))
+ break;
+ switch (BuiltinName[23]) {
+ default: break;
+ case 't': // 1 string to match.
+ if (memcmp(BuiltinName.data()+24, "rap", 3))
+ break;
+ return Intrinsic::nvvm_sust_b_1d_v2i32_trap; // "__nvvm_sust_b_1d_v2i32_trap"
+ case 'z': // 1 string to match.
+ if (memcmp(BuiltinName.data()+24, "ero", 3))
+ break;
+ return Intrinsic::nvvm_sust_b_1d_v2i32_zero; // "__nvvm_sust_b_1d_v2i32_zero"
+ }
+ break;
+ case '6': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+21, "4_", 2))
+ break;
+ switch (BuiltinName[23]) {
+ default: break;
+ case 't': // 1 string to match.
+ if (memcmp(BuiltinName.data()+24, "rap", 3))
+ break;
+ return Intrinsic::nvvm_sust_b_1d_v2i64_trap; // "__nvvm_sust_b_1d_v2i64_trap"
+ case 'z': // 1 string to match.
+ if (memcmp(BuiltinName.data()+24, "ero", 3))
+ break;
+ return Intrinsic::nvvm_sust_b_1d_v2i64_zero; // "__nvvm_sust_b_1d_v2i64_zero"
+ }
+ break;
+ case '8': // 1 string to match.
+ if (memcmp(BuiltinName.data()+21, "_clamp", 6))
+ break;
+ return Intrinsic::nvvm_sust_b_1d_v2i8_clamp; // "__nvvm_sust_b_1d_v2i8_clamp"
+ }
+ break;
+ case '4': // 5 strings to match.
+ if (BuiltinName[19] != 'i')
+ break;
+ switch (BuiltinName[20]) {
+ default: break;
+ case '1': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+21, "6_", 2))
+ break;
+ switch (BuiltinName[23]) {
+ default: break;
+ case 't': // 1 string to match.
+ if (memcmp(BuiltinName.data()+24, "rap", 3))
+ break;
+ return Intrinsic::nvvm_sust_b_1d_v4i16_trap; // "__nvvm_sust_b_1d_v4i16_trap"
+ case 'z': // 1 string to match.
+ if (memcmp(BuiltinName.data()+24, "ero", 3))
+ break;
+ return Intrinsic::nvvm_sust_b_1d_v4i16_zero; // "__nvvm_sust_b_1d_v4i16_zero"
+ }
+ break;
+ case '3': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+21, "2_", 2))
+ break;
+ switch (BuiltinName[23]) {
+ default: break;
+ case 't': // 1 string to match.
+ if (memcmp(BuiltinName.data()+24, "rap", 3))
+ break;
+ return Intrinsic::nvvm_sust_b_1d_v4i32_trap; // "__nvvm_sust_b_1d_v4i32_trap"
+ case 'z': // 1 string to match.
+ if (memcmp(BuiltinName.data()+24, "ero", 3))
+ break;
+ return Intrinsic::nvvm_sust_b_1d_v4i32_zero; // "__nvvm_sust_b_1d_v4i32_zero"
+ }
+ break;
+ case '8': // 1 string to match.
+ if (memcmp(BuiltinName.data()+21, "_clamp", 6))
+ break;
+ return Intrinsic::nvvm_sust_b_1d_v4i8_clamp; // "__nvvm_sust_b_1d_v4i8_clamp"
+ }
+ break;
+ }
+ break;
+ case '2': // 12 strings to match.
+ if (memcmp(BuiltinName.data()+15, "d_v", 3))
+ break;
+ switch (BuiltinName[18]) {
+ default: break;
+ case '2': // 7 strings to match.
+ if (BuiltinName[19] != 'i')
+ break;
+ switch (BuiltinName[20]) {
+ default: break;
+ case '1': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+21, "6_", 2))
+ break;
+ switch (BuiltinName[23]) {
+ default: break;
+ case 't': // 1 string to match.
+ if (memcmp(BuiltinName.data()+24, "rap", 3))
+ break;
+ return Intrinsic::nvvm_sust_b_2d_v2i16_trap; // "__nvvm_sust_b_2d_v2i16_trap"
+ case 'z': // 1 string to match.
+ if (memcmp(BuiltinName.data()+24, "ero", 3))
+ break;
+ return Intrinsic::nvvm_sust_b_2d_v2i16_zero; // "__nvvm_sust_b_2d_v2i16_zero"
+ }
+ break;
+ case '3': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+21, "2_", 2))
+ break;
+ switch (BuiltinName[23]) {
+ default: break;
+ case 't': // 1 string to match.
+ if (memcmp(BuiltinName.data()+24, "rap", 3))
+ break;
+ return Intrinsic::nvvm_sust_b_2d_v2i32_trap; // "__nvvm_sust_b_2d_v2i32_trap"
+ case 'z': // 1 string to match.
+ if (memcmp(BuiltinName.data()+24, "ero", 3))
+ break;
+ return Intrinsic::nvvm_sust_b_2d_v2i32_zero; // "__nvvm_sust_b_2d_v2i32_zero"
+ }
+ break;
+ case '6': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+21, "4_", 2))
+ break;
+ switch (BuiltinName[23]) {
+ default: break;
+ case 't': // 1 string to match.
+ if (memcmp(BuiltinName.data()+24, "rap", 3))
+ break;
+ return Intrinsic::nvvm_sust_b_2d_v2i64_trap; // "__nvvm_sust_b_2d_v2i64_trap"
+ case 'z': // 1 string to match.
+ if (memcmp(BuiltinName.data()+24, "ero", 3))
+ break;
+ return Intrinsic::nvvm_sust_b_2d_v2i64_zero; // "__nvvm_sust_b_2d_v2i64_zero"
+ }
+ break;
+ case '8': // 1 string to match.
+ if (memcmp(BuiltinName.data()+21, "_clamp", 6))
+ break;
+ return Intrinsic::nvvm_sust_b_2d_v2i8_clamp; // "__nvvm_sust_b_2d_v2i8_clamp"
+ }
+ break;
+ case '4': // 5 strings to match.
+ if (BuiltinName[19] != 'i')
+ break;
+ switch (BuiltinName[20]) {
+ default: break;
+ case '1': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+21, "6_", 2))
+ break;
+ switch (BuiltinName[23]) {
+ default: break;
+ case 't': // 1 string to match.
+ if (memcmp(BuiltinName.data()+24, "rap", 3))
+ break;
+ return Intrinsic::nvvm_sust_b_2d_v4i16_trap; // "__nvvm_sust_b_2d_v4i16_trap"
+ case 'z': // 1 string to match.
+ if (memcmp(BuiltinName.data()+24, "ero", 3))
+ break;
+ return Intrinsic::nvvm_sust_b_2d_v4i16_zero; // "__nvvm_sust_b_2d_v4i16_zero"
+ }
+ break;
+ case '3': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+21, "2_", 2))
+ break;
+ switch (BuiltinName[23]) {
+ default: break;
+ case 't': // 1 string to match.
+ if (memcmp(BuiltinName.data()+24, "rap", 3))
+ break;
+ return Intrinsic::nvvm_sust_b_2d_v4i32_trap; // "__nvvm_sust_b_2d_v4i32_trap"
+ case 'z': // 1 string to match.
+ if (memcmp(BuiltinName.data()+24, "ero", 3))
+ break;
+ return Intrinsic::nvvm_sust_b_2d_v4i32_zero; // "__nvvm_sust_b_2d_v4i32_zero"
+ }
+ break;
+ case '8': // 1 string to match.
+ if (memcmp(BuiltinName.data()+21, "_clamp", 6))
+ break;
+ return Intrinsic::nvvm_sust_b_2d_v4i8_clamp; // "__nvvm_sust_b_2d_v4i8_clamp"
+ }
+ break;
+ }
+ break;
+ case '3': // 12 strings to match.
+ if (memcmp(BuiltinName.data()+15, "d_v", 3))
+ break;
+ switch (BuiltinName[18]) {
+ default: break;
+ case '2': // 7 strings to match.
+ if (BuiltinName[19] != 'i')
+ break;
+ switch (BuiltinName[20]) {
+ default: break;
+ case '1': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+21, "6_", 2))
+ break;
+ switch (BuiltinName[23]) {
+ default: break;
+ case 't': // 1 string to match.
+ if (memcmp(BuiltinName.data()+24, "rap", 3))
+ break;
+ return Intrinsic::nvvm_sust_b_3d_v2i16_trap; // "__nvvm_sust_b_3d_v2i16_trap"
+ case 'z': // 1 string to match.
+ if (memcmp(BuiltinName.data()+24, "ero", 3))
+ break;
+ return Intrinsic::nvvm_sust_b_3d_v2i16_zero; // "__nvvm_sust_b_3d_v2i16_zero"
+ }
+ break;
+ case '3': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+21, "2_", 2))
+ break;
+ switch (BuiltinName[23]) {
+ default: break;
+ case 't': // 1 string to match.
+ if (memcmp(BuiltinName.data()+24, "rap", 3))
+ break;
+ return Intrinsic::nvvm_sust_b_3d_v2i32_trap; // "__nvvm_sust_b_3d_v2i32_trap"
+ case 'z': // 1 string to match.
+ if (memcmp(BuiltinName.data()+24, "ero", 3))
+ break;
+ return Intrinsic::nvvm_sust_b_3d_v2i32_zero; // "__nvvm_sust_b_3d_v2i32_zero"
+ }
+ break;
+ case '6': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+21, "4_", 2))
+ break;
+ switch (BuiltinName[23]) {
+ default: break;
+ case 't': // 1 string to match.
+ if (memcmp(BuiltinName.data()+24, "rap", 3))
+ break;
+ return Intrinsic::nvvm_sust_b_3d_v2i64_trap; // "__nvvm_sust_b_3d_v2i64_trap"
+ case 'z': // 1 string to match.
+ if (memcmp(BuiltinName.data()+24, "ero", 3))
+ break;
+ return Intrinsic::nvvm_sust_b_3d_v2i64_zero; // "__nvvm_sust_b_3d_v2i64_zero"
+ }
+ break;
+ case '8': // 1 string to match.
+ if (memcmp(BuiltinName.data()+21, "_clamp", 6))
+ break;
+ return Intrinsic::nvvm_sust_b_3d_v2i8_clamp; // "__nvvm_sust_b_3d_v2i8_clamp"
+ }
+ break;
+ case '4': // 5 strings to match.
+ if (BuiltinName[19] != 'i')
+ break;
+ switch (BuiltinName[20]) {
+ default: break;
+ case '1': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+21, "6_", 2))
+ break;
+ switch (BuiltinName[23]) {
+ default: break;
+ case 't': // 1 string to match.
+ if (memcmp(BuiltinName.data()+24, "rap", 3))
+ break;
+ return Intrinsic::nvvm_sust_b_3d_v4i16_trap; // "__nvvm_sust_b_3d_v4i16_trap"
+ case 'z': // 1 string to match.
+ if (memcmp(BuiltinName.data()+24, "ero", 3))
+ break;
+ return Intrinsic::nvvm_sust_b_3d_v4i16_zero; // "__nvvm_sust_b_3d_v4i16_zero"
+ }
+ break;
+ case '3': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+21, "2_", 2))
+ break;
+ switch (BuiltinName[23]) {
+ default: break;
+ case 't': // 1 string to match.
+ if (memcmp(BuiltinName.data()+24, "rap", 3))
+ break;
+ return Intrinsic::nvvm_sust_b_3d_v4i32_trap; // "__nvvm_sust_b_3d_v4i32_trap"
+ case 'z': // 1 string to match.
+ if (memcmp(BuiltinName.data()+24, "ero", 3))
+ break;
+ return Intrinsic::nvvm_sust_b_3d_v4i32_zero; // "__nvvm_sust_b_3d_v4i32_zero"
+ }
+ break;
+ case '8': // 1 string to match.
+ if (memcmp(BuiltinName.data()+21, "_clamp", 6))
+ break;
+ return Intrinsic::nvvm_sust_b_3d_v4i8_clamp; // "__nvvm_sust_b_3d_v4i8_clamp"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 'p': // 12 strings to match.
+ if (BuiltinName[13] != '_')
+ break;
+ switch (BuiltinName[14]) {
+ default: break;
+ case '1': // 4 strings to match.
+ if (memcmp(BuiltinName.data()+15, "d_v", 3))
+ break;
+ switch (BuiltinName[18]) {
+ default: break;
+ case '2': // 2 strings to match.
+ if (BuiltinName[19] != 'i')
+ break;
+ switch (BuiltinName[20]) {
+ default: break;
+ case '1': // 1 string to match.
+ if (memcmp(BuiltinName.data()+21, "6_trap", 6))
+ break;
+ return Intrinsic::nvvm_sust_p_1d_v2i16_trap; // "__nvvm_sust_p_1d_v2i16_trap"
+ case '3': // 1 string to match.
+ if (memcmp(BuiltinName.data()+21, "2_trap", 6))
+ break;
+ return Intrinsic::nvvm_sust_p_1d_v2i32_trap; // "__nvvm_sust_p_1d_v2i32_trap"
+ }
+ break;
+ case '4': // 2 strings to match.
+ if (BuiltinName[19] != 'i')
+ break;
+ switch (BuiltinName[20]) {
+ default: break;
+ case '1': // 1 string to match.
+ if (memcmp(BuiltinName.data()+21, "6_trap", 6))
+ break;
+ return Intrinsic::nvvm_sust_p_1d_v4i16_trap; // "__nvvm_sust_p_1d_v4i16_trap"
+ case '3': // 1 string to match.
+ if (memcmp(BuiltinName.data()+21, "2_trap", 6))
+ break;
+ return Intrinsic::nvvm_sust_p_1d_v4i32_trap; // "__nvvm_sust_p_1d_v4i32_trap"
+ }
+ break;
+ }
+ break;
+ case '2': // 4 strings to match.
+ if (memcmp(BuiltinName.data()+15, "d_v", 3))
+ break;
+ switch (BuiltinName[18]) {
+ default: break;
+ case '2': // 2 strings to match.
+ if (BuiltinName[19] != 'i')
+ break;
+ switch (BuiltinName[20]) {
+ default: break;
+ case '1': // 1 string to match.
+ if (memcmp(BuiltinName.data()+21, "6_trap", 6))
+ break;
+ return Intrinsic::nvvm_sust_p_2d_v2i16_trap; // "__nvvm_sust_p_2d_v2i16_trap"
+ case '3': // 1 string to match.
+ if (memcmp(BuiltinName.data()+21, "2_trap", 6))
+ break;
+ return Intrinsic::nvvm_sust_p_2d_v2i32_trap; // "__nvvm_sust_p_2d_v2i32_trap"
+ }
+ break;
+ case '4': // 2 strings to match.
+ if (BuiltinName[19] != 'i')
+ break;
+ switch (BuiltinName[20]) {
+ default: break;
+ case '1': // 1 string to match.
+ if (memcmp(BuiltinName.data()+21, "6_trap", 6))
+ break;
+ return Intrinsic::nvvm_sust_p_2d_v4i16_trap; // "__nvvm_sust_p_2d_v4i16_trap"
+ case '3': // 1 string to match.
+ if (memcmp(BuiltinName.data()+21, "2_trap", 6))
+ break;
+ return Intrinsic::nvvm_sust_p_2d_v4i32_trap; // "__nvvm_sust_p_2d_v4i32_trap"
+ }
+ break;
+ }
+ break;
+ case '3': // 4 strings to match.
+ if (memcmp(BuiltinName.data()+15, "d_v", 3))
+ break;
+ switch (BuiltinName[18]) {
+ default: break;
+ case '2': // 2 strings to match.
+ if (BuiltinName[19] != 'i')
+ break;
+ switch (BuiltinName[20]) {
+ default: break;
+ case '1': // 1 string to match.
+ if (memcmp(BuiltinName.data()+21, "6_trap", 6))
+ break;
+ return Intrinsic::nvvm_sust_p_3d_v2i16_trap; // "__nvvm_sust_p_3d_v2i16_trap"
+ case '3': // 1 string to match.
+ if (memcmp(BuiltinName.data()+21, "2_trap", 6))
+ break;
+ return Intrinsic::nvvm_sust_p_3d_v2i32_trap; // "__nvvm_sust_p_3d_v2i32_trap"
+ }
+ break;
+ case '4': // 2 strings to match.
+ if (BuiltinName[19] != 'i')
+ break;
+ switch (BuiltinName[20]) {
+ default: break;
+ case '1': // 1 string to match.
+ if (memcmp(BuiltinName.data()+21, "6_trap", 6))
+ break;
+ return Intrinsic::nvvm_sust_p_3d_v4i16_trap; // "__nvvm_sust_p_3d_v4i16_trap"
+ case '3': // 1 string to match.
+ if (memcmp(BuiltinName.data()+21, "2_trap", 6))
+ break;
+ return Intrinsic::nvvm_sust_p_3d_v4i32_trap; // "__nvvm_sust_p_3d_v4i32_trap"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 28: // 33 strings to match.
+ if (memcmp(BuiltinName.data()+0, "__", 2))
+ break;
+ switch (BuiltinName[2]) {
+ default: break;
+ case 'b': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+3, "uiltin_ia32_vpermil2p", 21))
+ break;
+ switch (BuiltinName[24]) {
+ default: break;
+ case 'd': // 1 string to match.
+ if (memcmp(BuiltinName.data()+25, "256", 3))
+ break;
+ return Intrinsic::x86_xop_vpermil2pd_256; // "__builtin_ia32_vpermil2pd256"
+ case 's': // 1 string to match.
+ if (memcmp(BuiltinName.data()+25, "256", 3))
+ break;
+ return Intrinsic::x86_xop_vpermil2ps_256; // "__builtin_ia32_vpermil2ps256"
+ }
+ break;
+ case 'n': // 31 strings to match.
+ if (memcmp(BuiltinName.data()+3, "vvm_", 4))
+ break;
+ switch (BuiltinName[7]) {
+ default: break;
+ case 'r': // 13 strings to match.
+ if (memcmp(BuiltinName.data()+8, "ead_ptx_sreg_", 13))
+ break;
+ switch (BuiltinName[21]) {
+ default: break;
+ case 'c': // 3 strings to match.
+ if (memcmp(BuiltinName.data()+22, "taid_", 5))
+ break;
+ switch (BuiltinName[27]) {
+ default: break;
+ case 'x': // 1 string to match.
+ return Intrinsic::nvvm_read_ptx_sreg_ctaid_x; // "__nvvm_read_ptx_sreg_ctaid_x"
+ case 'y': // 1 string to match.
+ return Intrinsic::nvvm_read_ptx_sreg_ctaid_y; // "__nvvm_read_ptx_sreg_ctaid_y"
+ case 'z': // 1 string to match.
+ return Intrinsic::nvvm_read_ptx_sreg_ctaid_z; // "__nvvm_read_ptx_sreg_ctaid_z"
+ }
+ break;
+ case 'e': // 10 strings to match.
+ if (memcmp(BuiltinName.data()+22, "nvreg", 5))
+ break;
+ switch (BuiltinName[27]) {
+ default: break;
+ case '0': // 1 string to match.
+ return Intrinsic::nvvm_read_ptx_sreg_envreg0; // "__nvvm_read_ptx_sreg_envreg0"
+ case '1': // 1 string to match.
+ return Intrinsic::nvvm_read_ptx_sreg_envreg1; // "__nvvm_read_ptx_sreg_envreg1"
+ case '2': // 1 string to match.
+ return Intrinsic::nvvm_read_ptx_sreg_envreg2; // "__nvvm_read_ptx_sreg_envreg2"
+ case '3': // 1 string to match.
+ return Intrinsic::nvvm_read_ptx_sreg_envreg3; // "__nvvm_read_ptx_sreg_envreg3"
+ case '4': // 1 string to match.
+ return Intrinsic::nvvm_read_ptx_sreg_envreg4; // "__nvvm_read_ptx_sreg_envreg4"
+ case '5': // 1 string to match.
+ return Intrinsic::nvvm_read_ptx_sreg_envreg5; // "__nvvm_read_ptx_sreg_envreg5"
+ case '6': // 1 string to match.
+ return Intrinsic::nvvm_read_ptx_sreg_envreg6; // "__nvvm_read_ptx_sreg_envreg6"
+ case '7': // 1 string to match.
+ return Intrinsic::nvvm_read_ptx_sreg_envreg7; // "__nvvm_read_ptx_sreg_envreg7"
+ case '8': // 1 string to match.
+ return Intrinsic::nvvm_read_ptx_sreg_envreg8; // "__nvvm_read_ptx_sreg_envreg8"
+ case '9': // 1 string to match.
+ return Intrinsic::nvvm_read_ptx_sreg_envreg9; // "__nvvm_read_ptx_sreg_envreg9"
+ }
+ break;
+ }
+ break;
+ case 's': // 16 strings to match.
+ if (BuiltinName[8] != 'u')
+ break;
+ switch (BuiltinName[9]) {
+ default: break;
+ case 'q': // 1 string to match.
+ if (memcmp(BuiltinName.data()+10, "_channel_data_type", 18))
+ break;
+ return Intrinsic::nvvm_suq_channel_data_type; // "__nvvm_suq_channel_data_type"
+ case 's': // 15 strings to match.
+ if (memcmp(BuiltinName.data()+10, "t_b_", 4))
+ break;
+ switch (BuiltinName[14]) {
+ default: break;
+ case '1': // 5 strings to match.
+ if (memcmp(BuiltinName.data()+15, "d_v", 3))
+ break;
+ switch (BuiltinName[18]) {
+ default: break;
+ case '2': // 3 strings to match.
+ if (BuiltinName[19] != 'i')
+ break;
+ switch (BuiltinName[20]) {
+ default: break;
+ case '1': // 1 string to match.
+ if (memcmp(BuiltinName.data()+21, "6_clamp", 7))
+ break;
+ return Intrinsic::nvvm_sust_b_1d_v2i16_clamp; // "__nvvm_sust_b_1d_v2i16_clamp"
+ case '3': // 1 string to match.
+ if (memcmp(BuiltinName.data()+21, "2_clamp", 7))
+ break;
+ return Intrinsic::nvvm_sust_b_1d_v2i32_clamp; // "__nvvm_sust_b_1d_v2i32_clamp"
+ case '6': // 1 string to match.
+ if (memcmp(BuiltinName.data()+21, "4_clamp", 7))
+ break;
+ return Intrinsic::nvvm_sust_b_1d_v2i64_clamp; // "__nvvm_sust_b_1d_v2i64_clamp"
+ }
+ break;
+ case '4': // 2 strings to match.
+ if (BuiltinName[19] != 'i')
+ break;
+ switch (BuiltinName[20]) {
+ default: break;
+ case '1': // 1 string to match.
+ if (memcmp(BuiltinName.data()+21, "6_clamp", 7))
+ break;
+ return Intrinsic::nvvm_sust_b_1d_v4i16_clamp; // "__nvvm_sust_b_1d_v4i16_clamp"
+ case '3': // 1 string to match.
+ if (memcmp(BuiltinName.data()+21, "2_clamp", 7))
+ break;
+ return Intrinsic::nvvm_sust_b_1d_v4i32_clamp; // "__nvvm_sust_b_1d_v4i32_clamp"
+ }
+ break;
+ }
+ break;
+ case '2': // 5 strings to match.
+ if (memcmp(BuiltinName.data()+15, "d_v", 3))
+ break;
+ switch (BuiltinName[18]) {
+ default: break;
+ case '2': // 3 strings to match.
+ if (BuiltinName[19] != 'i')
+ break;
+ switch (BuiltinName[20]) {
+ default: break;
+ case '1': // 1 string to match.
+ if (memcmp(BuiltinName.data()+21, "6_clamp", 7))
+ break;
+ return Intrinsic::nvvm_sust_b_2d_v2i16_clamp; // "__nvvm_sust_b_2d_v2i16_clamp"
+ case '3': // 1 string to match.
+ if (memcmp(BuiltinName.data()+21, "2_clamp", 7))
+ break;
+ return Intrinsic::nvvm_sust_b_2d_v2i32_clamp; // "__nvvm_sust_b_2d_v2i32_clamp"
+ case '6': // 1 string to match.
+ if (memcmp(BuiltinName.data()+21, "4_clamp", 7))
+ break;
+ return Intrinsic::nvvm_sust_b_2d_v2i64_clamp; // "__nvvm_sust_b_2d_v2i64_clamp"
+ }
+ break;
+ case '4': // 2 strings to match.
+ if (BuiltinName[19] != 'i')
+ break;
+ switch (BuiltinName[20]) {
+ default: break;
+ case '1': // 1 string to match.
+ if (memcmp(BuiltinName.data()+21, "6_clamp", 7))
+ break;
+ return Intrinsic::nvvm_sust_b_2d_v4i16_clamp; // "__nvvm_sust_b_2d_v4i16_clamp"
+ case '3': // 1 string to match.
+ if (memcmp(BuiltinName.data()+21, "2_clamp", 7))
+ break;
+ return Intrinsic::nvvm_sust_b_2d_v4i32_clamp; // "__nvvm_sust_b_2d_v4i32_clamp"
+ }
+ break;
+ }
+ break;
+ case '3': // 5 strings to match.
+ if (memcmp(BuiltinName.data()+15, "d_v", 3))
+ break;
+ switch (BuiltinName[18]) {
+ default: break;
+ case '2': // 3 strings to match.
+ if (BuiltinName[19] != 'i')
+ break;
+ switch (BuiltinName[20]) {
+ default: break;
+ case '1': // 1 string to match.
+ if (memcmp(BuiltinName.data()+21, "6_clamp", 7))
+ break;
+ return Intrinsic::nvvm_sust_b_3d_v2i16_clamp; // "__nvvm_sust_b_3d_v2i16_clamp"
+ case '3': // 1 string to match.
+ if (memcmp(BuiltinName.data()+21, "2_clamp", 7))
+ break;
+ return Intrinsic::nvvm_sust_b_3d_v2i32_clamp; // "__nvvm_sust_b_3d_v2i32_clamp"
+ case '6': // 1 string to match.
+ if (memcmp(BuiltinName.data()+21, "4_clamp", 7))
+ break;
+ return Intrinsic::nvvm_sust_b_3d_v2i64_clamp; // "__nvvm_sust_b_3d_v2i64_clamp"
+ }
+ break;
+ case '4': // 2 strings to match.
+ if (BuiltinName[19] != 'i')
+ break;
+ switch (BuiltinName[20]) {
+ default: break;
+ case '1': // 1 string to match.
+ if (memcmp(BuiltinName.data()+21, "6_clamp", 7))
+ break;
+ return Intrinsic::nvvm_sust_b_3d_v4i16_clamp; // "__nvvm_sust_b_3d_v4i16_clamp"
+ case '3': // 1 string to match.
+ if (memcmp(BuiltinName.data()+21, "2_clamp", 7))
+ break;
+ return Intrinsic::nvvm_sust_b_3d_v4i32_clamp; // "__nvvm_sust_b_3d_v4i32_clamp"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 't': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+8, "xq_", 3))
+ break;
+ switch (BuiltinName[11]) {
+ default: break;
+ case 'c': // 1 string to match.
+ if (memcmp(BuiltinName.data()+12, "hannel_data_type", 16))
+ break;
+ return Intrinsic::nvvm_txq_channel_data_type; // "__nvvm_txq_channel_data_type"
+ case 'n': // 1 string to match.
+ if (memcmp(BuiltinName.data()+12, "um_mipmap_levels", 16))
+ break;
+ return Intrinsic::nvvm_txq_num_mipmap_levels; // "__nvvm_txq_num_mipmap_levels"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 29: // 26 strings to match.
+ if (memcmp(BuiltinName.data()+0, "__nvvm_read_ptx_sreg_", 21))
+ break;
+ switch (BuiltinName[21]) {
+ default: break;
+ case 'e': // 22 strings to match.
+ if (memcmp(BuiltinName.data()+22, "nvreg", 5))
+ break;
+ switch (BuiltinName[27]) {
+ default: break;
+ case '1': // 10 strings to match.
+ switch (BuiltinName[28]) {
+ default: break;
+ case '0': // 1 string to match.
+ return Intrinsic::nvvm_read_ptx_sreg_envreg10; // "__nvvm_read_ptx_sreg_envreg10"
+ case '1': // 1 string to match.
+ return Intrinsic::nvvm_read_ptx_sreg_envreg11; // "__nvvm_read_ptx_sreg_envreg11"
+ case '2': // 1 string to match.
+ return Intrinsic::nvvm_read_ptx_sreg_envreg12; // "__nvvm_read_ptx_sreg_envreg12"
+ case '3': // 1 string to match.
+ return Intrinsic::nvvm_read_ptx_sreg_envreg13; // "__nvvm_read_ptx_sreg_envreg13"
+ case '4': // 1 string to match.
+ return Intrinsic::nvvm_read_ptx_sreg_envreg14; // "__nvvm_read_ptx_sreg_envreg14"
+ case '5': // 1 string to match.
+ return Intrinsic::nvvm_read_ptx_sreg_envreg15; // "__nvvm_read_ptx_sreg_envreg15"
+ case '6': // 1 string to match.
+ return Intrinsic::nvvm_read_ptx_sreg_envreg16; // "__nvvm_read_ptx_sreg_envreg16"
+ case '7': // 1 string to match.
+ return Intrinsic::nvvm_read_ptx_sreg_envreg17; // "__nvvm_read_ptx_sreg_envreg17"
+ case '8': // 1 string to match.
+ return Intrinsic::nvvm_read_ptx_sreg_envreg18; // "__nvvm_read_ptx_sreg_envreg18"
+ case '9': // 1 string to match.
+ return Intrinsic::nvvm_read_ptx_sreg_envreg19; // "__nvvm_read_ptx_sreg_envreg19"
+ }
+ break;
+ case '2': // 10 strings to match.
+ switch (BuiltinName[28]) {
+ default: break;
+ case '0': // 1 string to match.
+ return Intrinsic::nvvm_read_ptx_sreg_envreg20; // "__nvvm_read_ptx_sreg_envreg20"
+ case '1': // 1 string to match.
+ return Intrinsic::nvvm_read_ptx_sreg_envreg21; // "__nvvm_read_ptx_sreg_envreg21"
+ case '2': // 1 string to match.
+ return Intrinsic::nvvm_read_ptx_sreg_envreg22; // "__nvvm_read_ptx_sreg_envreg22"
+ case '3': // 1 string to match.
+ return Intrinsic::nvvm_read_ptx_sreg_envreg23; // "__nvvm_read_ptx_sreg_envreg23"
+ case '4': // 1 string to match.
+ return Intrinsic::nvvm_read_ptx_sreg_envreg24; // "__nvvm_read_ptx_sreg_envreg24"
+ case '5': // 1 string to match.
+ return Intrinsic::nvvm_read_ptx_sreg_envreg25; // "__nvvm_read_ptx_sreg_envreg25"
+ case '6': // 1 string to match.
+ return Intrinsic::nvvm_read_ptx_sreg_envreg26; // "__nvvm_read_ptx_sreg_envreg26"
+ case '7': // 1 string to match.
+ return Intrinsic::nvvm_read_ptx_sreg_envreg27; // "__nvvm_read_ptx_sreg_envreg27"
+ case '8': // 1 string to match.
+ return Intrinsic::nvvm_read_ptx_sreg_envreg28; // "__nvvm_read_ptx_sreg_envreg28"
+ case '9': // 1 string to match.
+ return Intrinsic::nvvm_read_ptx_sreg_envreg29; // "__nvvm_read_ptx_sreg_envreg29"
+ }
+ break;
+ case '3': // 2 strings to match.
+ switch (BuiltinName[28]) {
+ default: break;
+ case '0': // 1 string to match.
+ return Intrinsic::nvvm_read_ptx_sreg_envreg30; // "__nvvm_read_ptx_sreg_envreg30"
+ case '1': // 1 string to match.
+ return Intrinsic::nvvm_read_ptx_sreg_envreg31; // "__nvvm_read_ptx_sreg_envreg31"
+ }
+ break;
+ }
+ break;
+ case 'n': // 3 strings to match.
+ if (memcmp(BuiltinName.data()+22, "ctaid_", 6))
+ break;
+ switch (BuiltinName[28]) {
+ default: break;
+ case 'x': // 1 string to match.
+ return Intrinsic::nvvm_read_ptx_sreg_nctaid_x; // "__nvvm_read_ptx_sreg_nctaid_x"
+ case 'y': // 1 string to match.
+ return Intrinsic::nvvm_read_ptx_sreg_nctaid_y; // "__nvvm_read_ptx_sreg_nctaid_y"
+ case 'z': // 1 string to match.
+ return Intrinsic::nvvm_read_ptx_sreg_nctaid_z; // "__nvvm_read_ptx_sreg_nctaid_z"
+ }
+ break;
+ case 'w': // 1 string to match.
+ if (memcmp(BuiltinName.data()+22, "arpsize", 7))
+ break;
+ return Intrinsic::nvvm_read_ptx_sreg_warpsize; // "__nvvm_read_ptx_sreg_warpsize"
+ }
+ break;
+ case 30: // 11 strings to match.
+ if (memcmp(BuiltinName.data()+0, "__", 2))
+ break;
+ switch (BuiltinName[2]) {
+ default: break;
+ case 'b': // 5 strings to match.
+ if (memcmp(BuiltinName.data()+3, "uiltin_ptx_read_lanemask_", 25))
+ 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;
+ case 'n': // 6 strings to match.
+ if (memcmp(BuiltinName.data()+3, "vvm_sust_", 9))
+ break;
+ switch (BuiltinName[12]) {
+ default: break;
+ case 'b': // 4 strings to match.
+ if (BuiltinName[13] != '_')
+ break;
+ switch (BuiltinName[14]) {
+ default: break;
+ case '1': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+15, "d_array_i8_", 11))
+ break;
+ switch (BuiltinName[26]) {
+ default: break;
+ case 't': // 1 string to match.
+ if (memcmp(BuiltinName.data()+27, "rap", 3))
+ break;
+ return Intrinsic::nvvm_sust_b_1d_array_i8_trap; // "__nvvm_sust_b_1d_array_i8_trap"
+ case 'z': // 1 string to match.
+ if (memcmp(BuiltinName.data()+27, "ero", 3))
+ break;
+ return Intrinsic::nvvm_sust_b_1d_array_i8_zero; // "__nvvm_sust_b_1d_array_i8_zero"
+ }
+ break;
+ case '2': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+15, "d_array_i8_", 11))
+ break;
+ switch (BuiltinName[26]) {
+ default: break;
+ case 't': // 1 string to match.
+ if (memcmp(BuiltinName.data()+27, "rap", 3))
+ break;
+ return Intrinsic::nvvm_sust_b_2d_array_i8_trap; // "__nvvm_sust_b_2d_array_i8_trap"
+ case 'z': // 1 string to match.
+ if (memcmp(BuiltinName.data()+27, "ero", 3))
+ break;
+ return Intrinsic::nvvm_sust_b_2d_array_i8_zero; // "__nvvm_sust_b_2d_array_i8_zero"
+ }
+ break;
+ }
+ break;
+ case 'p': // 2 strings to match.
+ if (BuiltinName[13] != '_')
+ break;
+ switch (BuiltinName[14]) {
+ default: break;
+ case '1': // 1 string to match.
+ if (memcmp(BuiltinName.data()+15, "d_array_i8_trap", 15))
+ break;
+ return Intrinsic::nvvm_sust_p_1d_array_i8_trap; // "__nvvm_sust_p_1d_array_i8_trap"
+ case '2': // 1 string to match.
+ if (memcmp(BuiltinName.data()+15, "d_array_i8_trap", 15))
+ break;
+ return Intrinsic::nvvm_sust_p_2d_array_i8_trap; // "__nvvm_sust_p_2d_array_i8_trap"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 31: // 18 strings to match.
+ if (memcmp(BuiltinName.data()+0, "__nvvm_sust_", 12))
+ break;
+ switch (BuiltinName[12]) {
+ default: break;
+ case 'b': // 14 strings to match.
+ if (BuiltinName[13] != '_')
+ break;
+ switch (BuiltinName[14]) {
+ default: break;
+ case '1': // 7 strings to match.
+ if (memcmp(BuiltinName.data()+15, "d_array_i", 9))
+ break;
+ switch (BuiltinName[24]) {
+ default: break;
+ case '1': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+25, "6_", 2))
+ break;
+ switch (BuiltinName[27]) {
+ default: break;
+ case 't': // 1 string to match.
+ if (memcmp(BuiltinName.data()+28, "rap", 3))
+ break;
+ return Intrinsic::nvvm_sust_b_1d_array_i16_trap; // "__nvvm_sust_b_1d_array_i16_trap"
+ case 'z': // 1 string to match.
+ if (memcmp(BuiltinName.data()+28, "ero", 3))
+ break;
+ return Intrinsic::nvvm_sust_b_1d_array_i16_zero; // "__nvvm_sust_b_1d_array_i16_zero"
+ }
+ break;
+ case '3': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+25, "2_", 2))
+ break;
+ switch (BuiltinName[27]) {
+ default: break;
+ case 't': // 1 string to match.
+ if (memcmp(BuiltinName.data()+28, "rap", 3))
+ break;
+ return Intrinsic::nvvm_sust_b_1d_array_i32_trap; // "__nvvm_sust_b_1d_array_i32_trap"
+ case 'z': // 1 string to match.
+ if (memcmp(BuiltinName.data()+28, "ero", 3))
+ break;
+ return Intrinsic::nvvm_sust_b_1d_array_i32_zero; // "__nvvm_sust_b_1d_array_i32_zero"
+ }
+ break;
+ case '6': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+25, "4_", 2))
+ break;
+ switch (BuiltinName[27]) {
+ default: break;
+ case 't': // 1 string to match.
+ if (memcmp(BuiltinName.data()+28, "rap", 3))
+ break;
+ return Intrinsic::nvvm_sust_b_1d_array_i64_trap; // "__nvvm_sust_b_1d_array_i64_trap"
+ case 'z': // 1 string to match.
+ if (memcmp(BuiltinName.data()+28, "ero", 3))
+ break;
+ return Intrinsic::nvvm_sust_b_1d_array_i64_zero; // "__nvvm_sust_b_1d_array_i64_zero"
+ }
+ break;
+ case '8': // 1 string to match.
+ if (memcmp(BuiltinName.data()+25, "_clamp", 6))
+ break;
+ return Intrinsic::nvvm_sust_b_1d_array_i8_clamp; // "__nvvm_sust_b_1d_array_i8_clamp"
+ }
+ break;
+ case '2': // 7 strings to match.
+ if (memcmp(BuiltinName.data()+15, "d_array_i", 9))
+ break;
+ switch (BuiltinName[24]) {
+ default: break;
+ case '1': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+25, "6_", 2))
+ break;
+ switch (BuiltinName[27]) {
+ default: break;
+ case 't': // 1 string to match.
+ if (memcmp(BuiltinName.data()+28, "rap", 3))
+ break;
+ return Intrinsic::nvvm_sust_b_2d_array_i16_trap; // "__nvvm_sust_b_2d_array_i16_trap"
+ case 'z': // 1 string to match.
+ if (memcmp(BuiltinName.data()+28, "ero", 3))
+ break;
+ return Intrinsic::nvvm_sust_b_2d_array_i16_zero; // "__nvvm_sust_b_2d_array_i16_zero"
+ }
+ break;
+ case '3': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+25, "2_", 2))
+ break;
+ switch (BuiltinName[27]) {
+ default: break;
+ case 't': // 1 string to match.
+ if (memcmp(BuiltinName.data()+28, "rap", 3))
+ break;
+ return Intrinsic::nvvm_sust_b_2d_array_i32_trap; // "__nvvm_sust_b_2d_array_i32_trap"
+ case 'z': // 1 string to match.
+ if (memcmp(BuiltinName.data()+28, "ero", 3))
+ break;
+ return Intrinsic::nvvm_sust_b_2d_array_i32_zero; // "__nvvm_sust_b_2d_array_i32_zero"
+ }
+ break;
+ case '6': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+25, "4_", 2))
+ break;
+ switch (BuiltinName[27]) {
+ default: break;
+ case 't': // 1 string to match.
+ if (memcmp(BuiltinName.data()+28, "rap", 3))
+ break;
+ return Intrinsic::nvvm_sust_b_2d_array_i64_trap; // "__nvvm_sust_b_2d_array_i64_trap"
+ case 'z': // 1 string to match.
+ if (memcmp(BuiltinName.data()+28, "ero", 3))
+ break;
+ return Intrinsic::nvvm_sust_b_2d_array_i64_zero; // "__nvvm_sust_b_2d_array_i64_zero"
+ }
+ break;
+ case '8': // 1 string to match.
+ if (memcmp(BuiltinName.data()+25, "_clamp", 6))
+ break;
+ return Intrinsic::nvvm_sust_b_2d_array_i8_clamp; // "__nvvm_sust_b_2d_array_i8_clamp"
+ }
+ break;
+ }
+ break;
+ case 'p': // 4 strings to match.
+ if (BuiltinName[13] != '_')
+ break;
+ switch (BuiltinName[14]) {
+ default: break;
+ case '1': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+15, "d_array_i", 9))
+ break;
+ switch (BuiltinName[24]) {
+ default: break;
+ case '1': // 1 string to match.
+ if (memcmp(BuiltinName.data()+25, "6_trap", 6))
+ break;
+ return Intrinsic::nvvm_sust_p_1d_array_i16_trap; // "__nvvm_sust_p_1d_array_i16_trap"
+ case '3': // 1 string to match.
+ if (memcmp(BuiltinName.data()+25, "2_trap", 6))
+ break;
+ return Intrinsic::nvvm_sust_p_1d_array_i32_trap; // "__nvvm_sust_p_1d_array_i32_trap"
+ }
+ break;
+ case '2': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+15, "d_array_i", 9))
+ break;
+ switch (BuiltinName[24]) {
+ default: break;
+ case '1': // 1 string to match.
+ if (memcmp(BuiltinName.data()+25, "6_trap", 6))
+ break;
+ return Intrinsic::nvvm_sust_p_2d_array_i16_trap; // "__nvvm_sust_p_2d_array_i16_trap"
+ case '3': // 1 string to match.
+ if (memcmp(BuiltinName.data()+25, "2_trap", 6))
+ break;
+ return Intrinsic::nvvm_sust_p_2d_array_i32_trap; // "__nvvm_sust_p_2d_array_i32_trap"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 32: // 18 strings to match.
+ if (memcmp(BuiltinName.data()+0, "__nvvm_sust_", 12))
+ break;
+ switch (BuiltinName[12]) {
+ default: break;
+ case 'b': // 14 strings to match.
+ if (BuiltinName[13] != '_')
+ break;
+ switch (BuiltinName[14]) {
+ default: break;
+ case '1': // 7 strings to match.
+ if (memcmp(BuiltinName.data()+15, "d_array_", 8))
+ break;
+ switch (BuiltinName[23]) {
+ default: break;
+ case 'i': // 3 strings to match.
+ switch (BuiltinName[24]) {
+ default: break;
+ case '1': // 1 string to match.
+ if (memcmp(BuiltinName.data()+25, "6_clamp", 7))
+ break;
+ return Intrinsic::nvvm_sust_b_1d_array_i16_clamp; // "__nvvm_sust_b_1d_array_i16_clamp"
+ case '3': // 1 string to match.
+ if (memcmp(BuiltinName.data()+25, "2_clamp", 7))
+ break;
+ return Intrinsic::nvvm_sust_b_1d_array_i32_clamp; // "__nvvm_sust_b_1d_array_i32_clamp"
+ case '6': // 1 string to match.
+ if (memcmp(BuiltinName.data()+25, "4_clamp", 7))
+ break;
+ return Intrinsic::nvvm_sust_b_1d_array_i64_clamp; // "__nvvm_sust_b_1d_array_i64_clamp"
+ }
+ break;
+ case 'v': // 4 strings to match.
+ switch (BuiltinName[24]) {
+ default: break;
+ case '2': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+25, "i8_", 3))
+ break;
+ switch (BuiltinName[28]) {
+ default: break;
+ case 't': // 1 string to match.
+ if (memcmp(BuiltinName.data()+29, "rap", 3))
+ break;
+ return Intrinsic::nvvm_sust_b_1d_array_v2i8_trap; // "__nvvm_sust_b_1d_array_v2i8_trap"
+ case 'z': // 1 string to match.
+ if (memcmp(BuiltinName.data()+29, "ero", 3))
+ break;
+ return Intrinsic::nvvm_sust_b_1d_array_v2i8_zero; // "__nvvm_sust_b_1d_array_v2i8_zero"
+ }
+ break;
+ case '4': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+25, "i8_", 3))
+ break;
+ switch (BuiltinName[28]) {
+ default: break;
+ case 't': // 1 string to match.
+ if (memcmp(BuiltinName.data()+29, "rap", 3))
+ break;
+ return Intrinsic::nvvm_sust_b_1d_array_v4i8_trap; // "__nvvm_sust_b_1d_array_v4i8_trap"
+ case 'z': // 1 string to match.
+ if (memcmp(BuiltinName.data()+29, "ero", 3))
+ break;
+ return Intrinsic::nvvm_sust_b_1d_array_v4i8_zero; // "__nvvm_sust_b_1d_array_v4i8_zero"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case '2': // 7 strings to match.
+ if (memcmp(BuiltinName.data()+15, "d_array_", 8))
+ break;
+ switch (BuiltinName[23]) {
+ default: break;
+ case 'i': // 3 strings to match.
+ switch (BuiltinName[24]) {
+ default: break;
+ case '1': // 1 string to match.
+ if (memcmp(BuiltinName.data()+25, "6_clamp", 7))
+ break;
+ return Intrinsic::nvvm_sust_b_2d_array_i16_clamp; // "__nvvm_sust_b_2d_array_i16_clamp"
+ case '3': // 1 string to match.
+ if (memcmp(BuiltinName.data()+25, "2_clamp", 7))
+ break;
+ return Intrinsic::nvvm_sust_b_2d_array_i32_clamp; // "__nvvm_sust_b_2d_array_i32_clamp"
+ case '6': // 1 string to match.
+ if (memcmp(BuiltinName.data()+25, "4_clamp", 7))
+ break;
+ return Intrinsic::nvvm_sust_b_2d_array_i64_clamp; // "__nvvm_sust_b_2d_array_i64_clamp"
+ }
+ break;
+ case 'v': // 4 strings to match.
+ switch (BuiltinName[24]) {
+ default: break;
+ case '2': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+25, "i8_", 3))
+ break;
+ switch (BuiltinName[28]) {
+ default: break;
+ case 't': // 1 string to match.
+ if (memcmp(BuiltinName.data()+29, "rap", 3))
+ break;
+ return Intrinsic::nvvm_sust_b_2d_array_v2i8_trap; // "__nvvm_sust_b_2d_array_v2i8_trap"
+ case 'z': // 1 string to match.
+ if (memcmp(BuiltinName.data()+29, "ero", 3))
+ break;
+ return Intrinsic::nvvm_sust_b_2d_array_v2i8_zero; // "__nvvm_sust_b_2d_array_v2i8_zero"
+ }
+ break;
+ case '4': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+25, "i8_", 3))
+ break;
+ switch (BuiltinName[28]) {
+ default: break;
+ case 't': // 1 string to match.
+ if (memcmp(BuiltinName.data()+29, "rap", 3))
+ break;
+ return Intrinsic::nvvm_sust_b_2d_array_v4i8_trap; // "__nvvm_sust_b_2d_array_v4i8_trap"
+ case 'z': // 1 string to match.
+ if (memcmp(BuiltinName.data()+29, "ero", 3))
+ break;
+ return Intrinsic::nvvm_sust_b_2d_array_v4i8_zero; // "__nvvm_sust_b_2d_array_v4i8_zero"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 'p': // 4 strings to match.
+ if (BuiltinName[13] != '_')
+ break;
+ switch (BuiltinName[14]) {
+ default: break;
+ case '1': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+15, "d_array_v", 9))
+ break;
+ switch (BuiltinName[24]) {
+ default: break;
+ case '2': // 1 string to match.
+ if (memcmp(BuiltinName.data()+25, "i8_trap", 7))
+ break;
+ return Intrinsic::nvvm_sust_p_1d_array_v2i8_trap; // "__nvvm_sust_p_1d_array_v2i8_trap"
+ case '4': // 1 string to match.
+ if (memcmp(BuiltinName.data()+25, "i8_trap", 7))
+ break;
+ return Intrinsic::nvvm_sust_p_1d_array_v4i8_trap; // "__nvvm_sust_p_1d_array_v4i8_trap"
+ }
+ break;
+ case '2': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+15, "d_array_v", 9))
+ break;
+ switch (BuiltinName[24]) {
+ default: break;
+ case '2': // 1 string to match.
+ if (memcmp(BuiltinName.data()+25, "i8_trap", 7))
+ break;
+ return Intrinsic::nvvm_sust_p_2d_array_v2i8_trap; // "__nvvm_sust_p_2d_array_v2i8_trap"
+ case '4': // 1 string to match.
+ if (memcmp(BuiltinName.data()+25, "i8_trap", 7))
+ break;
+ return Intrinsic::nvvm_sust_p_2d_array_v4i8_trap; // "__nvvm_sust_p_2d_array_v4i8_trap"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 33: // 32 strings to match.
+ if (memcmp(BuiltinName.data()+0, "__nvvm_sust_", 12))
+ break;
+ switch (BuiltinName[12]) {
+ default: break;
+ case 'b': // 24 strings to match.
+ if (BuiltinName[13] != '_')
+ break;
+ switch (BuiltinName[14]) {
+ default: break;
+ case '1': // 12 strings to match.
+ if (memcmp(BuiltinName.data()+15, "d_array_v", 9))
+ break;
+ switch (BuiltinName[24]) {
+ default: break;
+ case '2': // 7 strings to match.
+ if (BuiltinName[25] != 'i')
+ break;
+ switch (BuiltinName[26]) {
+ default: break;
+ case '1': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+27, "6_", 2))
+ break;
+ switch (BuiltinName[29]) {
+ default: break;
+ case 't': // 1 string to match.
+ if (memcmp(BuiltinName.data()+30, "rap", 3))
+ break;
+ return Intrinsic::nvvm_sust_b_1d_array_v2i16_trap; // "__nvvm_sust_b_1d_array_v2i16_trap"
+ case 'z': // 1 string to match.
+ if (memcmp(BuiltinName.data()+30, "ero", 3))
+ break;
+ return Intrinsic::nvvm_sust_b_1d_array_v2i16_zero; // "__nvvm_sust_b_1d_array_v2i16_zero"
+ }
+ break;
+ case '3': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+27, "2_", 2))
+ break;
+ switch (BuiltinName[29]) {
+ default: break;
+ case 't': // 1 string to match.
+ if (memcmp(BuiltinName.data()+30, "rap", 3))
+ break;
+ return Intrinsic::nvvm_sust_b_1d_array_v2i32_trap; // "__nvvm_sust_b_1d_array_v2i32_trap"
+ case 'z': // 1 string to match.
+ if (memcmp(BuiltinName.data()+30, "ero", 3))
+ break;
+ return Intrinsic::nvvm_sust_b_1d_array_v2i32_zero; // "__nvvm_sust_b_1d_array_v2i32_zero"
+ }
+ break;
+ case '6': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+27, "4_", 2))
+ break;
+ switch (BuiltinName[29]) {
+ default: break;
+ case 't': // 1 string to match.
+ if (memcmp(BuiltinName.data()+30, "rap", 3))
+ break;
+ return Intrinsic::nvvm_sust_b_1d_array_v2i64_trap; // "__nvvm_sust_b_1d_array_v2i64_trap"
+ case 'z': // 1 string to match.
+ if (memcmp(BuiltinName.data()+30, "ero", 3))
+ break;
+ return Intrinsic::nvvm_sust_b_1d_array_v2i64_zero; // "__nvvm_sust_b_1d_array_v2i64_zero"
+ }
+ break;
+ case '8': // 1 string to match.
+ if (memcmp(BuiltinName.data()+27, "_clamp", 6))
+ break;
+ return Intrinsic::nvvm_sust_b_1d_array_v2i8_clamp; // "__nvvm_sust_b_1d_array_v2i8_clamp"
+ }
+ break;
+ case '4': // 5 strings to match.
+ if (BuiltinName[25] != 'i')
+ break;
+ switch (BuiltinName[26]) {
+ default: break;
+ case '1': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+27, "6_", 2))
+ break;
+ switch (BuiltinName[29]) {
+ default: break;
+ case 't': // 1 string to match.
+ if (memcmp(BuiltinName.data()+30, "rap", 3))
+ break;
+ return Intrinsic::nvvm_sust_b_1d_array_v4i16_trap; // "__nvvm_sust_b_1d_array_v4i16_trap"
+ case 'z': // 1 string to match.
+ if (memcmp(BuiltinName.data()+30, "ero", 3))
+ break;
+ return Intrinsic::nvvm_sust_b_1d_array_v4i16_zero; // "__nvvm_sust_b_1d_array_v4i16_zero"
+ }
+ break;
+ case '3': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+27, "2_", 2))
+ break;
+ switch (BuiltinName[29]) {
+ default: break;
+ case 't': // 1 string to match.
+ if (memcmp(BuiltinName.data()+30, "rap", 3))
+ break;
+ return Intrinsic::nvvm_sust_b_1d_array_v4i32_trap; // "__nvvm_sust_b_1d_array_v4i32_trap"
+ case 'z': // 1 string to match.
+ if (memcmp(BuiltinName.data()+30, "ero", 3))
+ break;
+ return Intrinsic::nvvm_sust_b_1d_array_v4i32_zero; // "__nvvm_sust_b_1d_array_v4i32_zero"
+ }
+ break;
+ case '8': // 1 string to match.
+ if (memcmp(BuiltinName.data()+27, "_clamp", 6))
+ break;
+ return Intrinsic::nvvm_sust_b_1d_array_v4i8_clamp; // "__nvvm_sust_b_1d_array_v4i8_clamp"
+ }
+ break;
+ }
+ break;
+ case '2': // 12 strings to match.
+ if (memcmp(BuiltinName.data()+15, "d_array_v", 9))
+ break;
+ switch (BuiltinName[24]) {
+ default: break;
+ case '2': // 7 strings to match.
+ if (BuiltinName[25] != 'i')
+ break;
+ switch (BuiltinName[26]) {
+ default: break;
+ case '1': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+27, "6_", 2))
+ break;
+ switch (BuiltinName[29]) {
+ default: break;
+ case 't': // 1 string to match.
+ if (memcmp(BuiltinName.data()+30, "rap", 3))
+ break;
+ return Intrinsic::nvvm_sust_b_2d_array_v2i16_trap; // "__nvvm_sust_b_2d_array_v2i16_trap"
+ case 'z': // 1 string to match.
+ if (memcmp(BuiltinName.data()+30, "ero", 3))
+ break;
+ return Intrinsic::nvvm_sust_b_2d_array_v2i16_zero; // "__nvvm_sust_b_2d_array_v2i16_zero"
+ }
+ break;
+ case '3': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+27, "2_", 2))
+ break;
+ switch (BuiltinName[29]) {
+ default: break;
+ case 't': // 1 string to match.
+ if (memcmp(BuiltinName.data()+30, "rap", 3))
+ break;
+ return Intrinsic::nvvm_sust_b_2d_array_v2i32_trap; // "__nvvm_sust_b_2d_array_v2i32_trap"
+ case 'z': // 1 string to match.
+ if (memcmp(BuiltinName.data()+30, "ero", 3))
+ break;
+ return Intrinsic::nvvm_sust_b_2d_array_v2i32_zero; // "__nvvm_sust_b_2d_array_v2i32_zero"
+ }
+ break;
+ case '6': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+27, "4_", 2))
+ break;
+ switch (BuiltinName[29]) {
+ default: break;
+ case 't': // 1 string to match.
+ if (memcmp(BuiltinName.data()+30, "rap", 3))
+ break;
+ return Intrinsic::nvvm_sust_b_2d_array_v2i64_trap; // "__nvvm_sust_b_2d_array_v2i64_trap"
+ case 'z': // 1 string to match.
+ if (memcmp(BuiltinName.data()+30, "ero", 3))
+ break;
+ return Intrinsic::nvvm_sust_b_2d_array_v2i64_zero; // "__nvvm_sust_b_2d_array_v2i64_zero"
+ }
+ break;
+ case '8': // 1 string to match.
+ if (memcmp(BuiltinName.data()+27, "_clamp", 6))
+ break;
+ return Intrinsic::nvvm_sust_b_2d_array_v2i8_clamp; // "__nvvm_sust_b_2d_array_v2i8_clamp"
+ }
+ break;
+ case '4': // 5 strings to match.
+ if (BuiltinName[25] != 'i')
+ break;
+ switch (BuiltinName[26]) {
+ default: break;
+ case '1': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+27, "6_", 2))
+ break;
+ switch (BuiltinName[29]) {
+ default: break;
+ case 't': // 1 string to match.
+ if (memcmp(BuiltinName.data()+30, "rap", 3))
+ break;
+ return Intrinsic::nvvm_sust_b_2d_array_v4i16_trap; // "__nvvm_sust_b_2d_array_v4i16_trap"
+ case 'z': // 1 string to match.
+ if (memcmp(BuiltinName.data()+30, "ero", 3))
+ break;
+ return Intrinsic::nvvm_sust_b_2d_array_v4i16_zero; // "__nvvm_sust_b_2d_array_v4i16_zero"
+ }
+ break;
+ case '3': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+27, "2_", 2))
+ break;
+ switch (BuiltinName[29]) {
+ default: break;
+ case 't': // 1 string to match.
+ if (memcmp(BuiltinName.data()+30, "rap", 3))
+ break;
+ return Intrinsic::nvvm_sust_b_2d_array_v4i32_trap; // "__nvvm_sust_b_2d_array_v4i32_trap"
+ case 'z': // 1 string to match.
+ if (memcmp(BuiltinName.data()+30, "ero", 3))
+ break;
+ return Intrinsic::nvvm_sust_b_2d_array_v4i32_zero; // "__nvvm_sust_b_2d_array_v4i32_zero"
+ }
+ break;
+ case '8': // 1 string to match.
+ if (memcmp(BuiltinName.data()+27, "_clamp", 6))
+ break;
+ return Intrinsic::nvvm_sust_b_2d_array_v4i8_clamp; // "__nvvm_sust_b_2d_array_v4i8_clamp"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 'p': // 8 strings to match.
+ if (BuiltinName[13] != '_')
+ break;
+ switch (BuiltinName[14]) {
+ default: break;
+ case '1': // 4 strings to match.
+ if (memcmp(BuiltinName.data()+15, "d_array_v", 9))
+ break;
+ switch (BuiltinName[24]) {
+ default: break;
+ case '2': // 2 strings to match.
+ if (BuiltinName[25] != 'i')
+ break;
+ switch (BuiltinName[26]) {
+ default: break;
+ case '1': // 1 string to match.
+ if (memcmp(BuiltinName.data()+27, "6_trap", 6))
+ break;
+ return Intrinsic::nvvm_sust_p_1d_array_v2i16_trap; // "__nvvm_sust_p_1d_array_v2i16_trap"
+ case '3': // 1 string to match.
+ if (memcmp(BuiltinName.data()+27, "2_trap", 6))
+ break;
+ return Intrinsic::nvvm_sust_p_1d_array_v2i32_trap; // "__nvvm_sust_p_1d_array_v2i32_trap"
+ }
+ break;
+ case '4': // 2 strings to match.
+ if (BuiltinName[25] != 'i')
+ break;
+ switch (BuiltinName[26]) {
+ default: break;
+ case '1': // 1 string to match.
+ if (memcmp(BuiltinName.data()+27, "6_trap", 6))
+ break;
+ return Intrinsic::nvvm_sust_p_1d_array_v4i16_trap; // "__nvvm_sust_p_1d_array_v4i16_trap"
+ case '3': // 1 string to match.
+ if (memcmp(BuiltinName.data()+27, "2_trap", 6))
+ break;
+ return Intrinsic::nvvm_sust_p_1d_array_v4i32_trap; // "__nvvm_sust_p_1d_array_v4i32_trap"
+ }
+ break;
+ }
+ break;
+ case '2': // 4 strings to match.
+ if (memcmp(BuiltinName.data()+15, "d_array_v", 9))
+ break;
+ switch (BuiltinName[24]) {
+ default: break;
+ case '2': // 2 strings to match.
+ if (BuiltinName[25] != 'i')
+ break;
+ switch (BuiltinName[26]) {
+ default: break;
+ case '1': // 1 string to match.
+ if (memcmp(BuiltinName.data()+27, "6_trap", 6))
+ break;
+ return Intrinsic::nvvm_sust_p_2d_array_v2i16_trap; // "__nvvm_sust_p_2d_array_v2i16_trap"
+ case '3': // 1 string to match.
+ if (memcmp(BuiltinName.data()+27, "2_trap", 6))
+ break;
+ return Intrinsic::nvvm_sust_p_2d_array_v2i32_trap; // "__nvvm_sust_p_2d_array_v2i32_trap"
+ }
+ break;
+ case '4': // 2 strings to match.
+ if (BuiltinName[25] != 'i')
+ break;
+ switch (BuiltinName[26]) {
+ default: break;
+ case '1': // 1 string to match.
+ if (memcmp(BuiltinName.data()+27, "6_trap", 6))
+ break;
+ return Intrinsic::nvvm_sust_p_2d_array_v4i16_trap; // "__nvvm_sust_p_2d_array_v4i16_trap"
+ case '3': // 1 string to match.
+ if (memcmp(BuiltinName.data()+27, "2_trap", 6))
+ break;
+ return Intrinsic::nvvm_sust_p_2d_array_v4i32_trap; // "__nvvm_sust_p_2d_array_v4i32_trap"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 34: // 10 strings to match.
+ if (memcmp(BuiltinName.data()+0, "__nvvm_sust_b_", 14))
+ break;
+ switch (BuiltinName[14]) {
+ default: break;
+ case '1': // 5 strings to match.
+ if (memcmp(BuiltinName.data()+15, "d_array_v", 9))
+ break;
+ switch (BuiltinName[24]) {
+ default: break;
+ case '2': // 3 strings to match.
+ if (BuiltinName[25] != 'i')
+ break;
+ switch (BuiltinName[26]) {
+ default: break;
+ case '1': // 1 string to match.
+ if (memcmp(BuiltinName.data()+27, "6_clamp", 7))
+ break;
+ return Intrinsic::nvvm_sust_b_1d_array_v2i16_clamp; // "__nvvm_sust_b_1d_array_v2i16_clamp"
+ case '3': // 1 string to match.
+ if (memcmp(BuiltinName.data()+27, "2_clamp", 7))
+ break;
+ return Intrinsic::nvvm_sust_b_1d_array_v2i32_clamp; // "__nvvm_sust_b_1d_array_v2i32_clamp"
+ case '6': // 1 string to match.
+ if (memcmp(BuiltinName.data()+27, "4_clamp", 7))
+ break;
+ return Intrinsic::nvvm_sust_b_1d_array_v2i64_clamp; // "__nvvm_sust_b_1d_array_v2i64_clamp"
+ }
+ break;
+ case '4': // 2 strings to match.
+ if (BuiltinName[25] != 'i')
+ break;
+ switch (BuiltinName[26]) {
+ default: break;
+ case '1': // 1 string to match.
+ if (memcmp(BuiltinName.data()+27, "6_clamp", 7))
+ break;
+ return Intrinsic::nvvm_sust_b_1d_array_v4i16_clamp; // "__nvvm_sust_b_1d_array_v4i16_clamp"
+ case '3': // 1 string to match.
+ if (memcmp(BuiltinName.data()+27, "2_clamp", 7))
+ break;
+ return Intrinsic::nvvm_sust_b_1d_array_v4i32_clamp; // "__nvvm_sust_b_1d_array_v4i32_clamp"
+ }
+ break;
+ }
+ break;
+ case '2': // 5 strings to match.
+ if (memcmp(BuiltinName.data()+15, "d_array_v", 9))
+ break;
+ switch (BuiltinName[24]) {
+ default: break;
+ case '2': // 3 strings to match.
+ if (BuiltinName[25] != 'i')
+ break;
+ switch (BuiltinName[26]) {
+ default: break;
+ case '1': // 1 string to match.
+ if (memcmp(BuiltinName.data()+27, "6_clamp", 7))
+ break;
+ return Intrinsic::nvvm_sust_b_2d_array_v2i16_clamp; // "__nvvm_sust_b_2d_array_v2i16_clamp"
+ case '3': // 1 string to match.
+ if (memcmp(BuiltinName.data()+27, "2_clamp", 7))
+ break;
+ return Intrinsic::nvvm_sust_b_2d_array_v2i32_clamp; // "__nvvm_sust_b_2d_array_v2i32_clamp"
+ case '6': // 1 string to match.
+ if (memcmp(BuiltinName.data()+27, "4_clamp", 7))
+ break;
+ return Intrinsic::nvvm_sust_b_2d_array_v2i64_clamp; // "__nvvm_sust_b_2d_array_v2i64_clamp"
+ }
+ break;
+ case '4': // 2 strings to match.
+ if (BuiltinName[25] != 'i')
+ break;
+ switch (BuiltinName[26]) {
+ default: break;
+ case '1': // 1 string to match.
+ if (memcmp(BuiltinName.data()+27, "6_clamp", 7))
+ break;
+ return Intrinsic::nvvm_sust_b_2d_array_v4i16_clamp; // "__nvvm_sust_b_2d_array_v4i16_clamp"
+ case '3': // 1 string to match.
+ if (memcmp(BuiltinName.data()+27, "2_clamp", 7))
+ break;
+ return Intrinsic::nvvm_sust_b_2d_array_v4i32_clamp; // "__nvvm_sust_b_2d_array_v4i32_clamp"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ }
+ }
+ if (TargetPrefix == "AMDGPU") {
+ switch (BuiltinName.size()) {
+ default: break;
+ case 20: // 2 strings to match.
+ if (memcmp(BuiltinName.data()+0, "__builtin_amdgpu_r", 18))
+ break;
+ switch (BuiltinName[18]) {
+ default: break;
+ case 'c': // 1 string to match.
+ if (BuiltinName[19] != 'p')
+ break;
+ return Intrinsic::AMDGPU_rcp; // "__builtin_amdgpu_rcp"
+ case 's': // 1 string to match.
+ if (BuiltinName[19] != 'q')
+ break;
+ return Intrinsic::AMDGPU_rsq; // "__builtin_amdgpu_rsq"
+ }
+ break;
+ case 25: // 1 string to match.
+ if (memcmp(BuiltinName.data()+0, "__builtin_amdgpu_div_fmas", 25))
+ break;
+ return Intrinsic::AMDGPU_div_fmas; // "__builtin_amdgpu_div_fmas"
+ case 26: // 2 strings to match.
+ if (memcmp(BuiltinName.data()+0, "__builtin_amdgpu_div_", 21))
+ break;
+ switch (BuiltinName[21]) {
+ default: break;
+ case 'f': // 1 string to match.
+ if (memcmp(BuiltinName.data()+22, "ixup", 4))
+ break;
+ return Intrinsic::AMDGPU_div_fixup; // "__builtin_amdgpu_div_fixup"
+ case 's': // 1 string to match.
+ if (memcmp(BuiltinName.data()+22, "cale", 4))
+ break;
+ return Intrinsic::AMDGPU_div_scale; // "__builtin_amdgpu_div_scale"
+ }
+ break;
+ case 27: // 1 string to match.
+ if (memcmp(BuiltinName.data()+0, "__builtin_amdgpu_trig_preop", 27))
+ break;
+ return Intrinsic::AMDGPU_trig_preop; // "__builtin_amdgpu_trig_preop"
+ case 28: // 1 string to match.
+ if (memcmp(BuiltinName.data()+0, "__builtin_amdgpu_rsq_clamped", 28))
+ break;
+ return Intrinsic::AMDGPU_rsq_clamped; // "__builtin_amdgpu_rsq_clamped"
+ }
+ }
+ if (TargetPrefix == "aarch64") {
+ switch (BuiltinName.size()) {
+ default: break;
+ case 17: // 3 strings to match.
+ if (memcmp(BuiltinName.data()+0, "__builtin_arm_", 14))
+ break;
+ switch (BuiltinName[14]) {
+ default: break;
+ case 'd': // 2 strings to match.
+ switch (BuiltinName[15]) {
+ default: break;
+ case 'm': // 1 string to match.
+ if (BuiltinName[16] != 'b')
+ break;
+ return Intrinsic::aarch64_dmb; // "__builtin_arm_dmb"
+ case 's': // 1 string to match.
+ if (BuiltinName[16] != 'b')
+ break;
+ return Intrinsic::aarch64_dsb; // "__builtin_arm_dsb"
+ }
+ break;
+ case 'i': // 1 string to match.
+ if (memcmp(BuiltinName.data()+15, "sb", 2))
+ break;
+ return Intrinsic::aarch64_isb; // "__builtin_arm_isb"
+ }
+ break;
+ }
+ }
+ if (TargetPrefix == "arm") {
+ switch (BuiltinName.size()) {
+ default: break;
+ case 17: // 6 strings to match.
+ if (memcmp(BuiltinName.data()+0, "__builtin_arm_", 14))
+ break;
+ switch (BuiltinName[14]) {
+ default: break;
+ case 'c': // 1 string to match.
+ if (memcmp(BuiltinName.data()+15, "dp", 2))
+ break;
+ return Intrinsic::arm_cdp; // "__builtin_arm_cdp"
+ case 'd': // 2 strings to match.
+ switch (BuiltinName[15]) {
+ default: break;
+ case 'm': // 1 string to match.
+ if (BuiltinName[16] != 'b')
+ break;
+ return Intrinsic::arm_dmb; // "__builtin_arm_dmb"
+ case 's': // 1 string to match.
+ if (BuiltinName[16] != 'b')
+ break;
+ return Intrinsic::arm_dsb; // "__builtin_arm_dsb"
+ }
+ break;
+ case 'i': // 1 string to match.
+ if (memcmp(BuiltinName.data()+15, "sb", 2))
+ break;
+ return Intrinsic::arm_isb; // "__builtin_arm_isb"
+ case 'm': // 2 strings to match.
+ switch (BuiltinName[15]) {
+ default: break;
+ case 'c': // 1 string to match.
+ if (BuiltinName[16] != 'r')
+ break;
+ return Intrinsic::arm_mcr; // "__builtin_arm_mcr"
+ case 'r': // 1 string to match.
+ if (BuiltinName[16] != 'c')
+ break;
+ return Intrinsic::arm_mrc; // "__builtin_arm_mrc"
+ }
+ break;
+ }
+ break;
+ case 18: // 8 strings to match.
+ if (memcmp(BuiltinName.data()+0, "__builtin_arm_", 14))
+ break;
+ switch (BuiltinName[14]) {
+ default: break;
+ case 'c': // 1 string to match.
+ if (memcmp(BuiltinName.data()+15, "dp2", 3))
+ break;
+ return Intrinsic::arm_cdp2; // "__builtin_arm_cdp2"
+ case 'm': // 3 strings to match.
+ switch (BuiltinName[15]) {
+ default: break;
+ case 'c': // 2 strings to match.
+ if (BuiltinName[16] != 'r')
+ break;
+ switch (BuiltinName[17]) {
+ default: break;
+ case '2': // 1 string to match.
+ return Intrinsic::arm_mcr2; // "__builtin_arm_mcr2"
+ case 'r': // 1 string to match.
+ return Intrinsic::arm_mcrr; // "__builtin_arm_mcrr"
+ }
+ break;
+ case 'r': // 1 string to match.
+ if (memcmp(BuiltinName.data()+16, "c2", 2))
+ break;
+ return Intrinsic::arm_mrc2; // "__builtin_arm_mrc2"
+ }
+ break;
+ case 'q': // 2 strings to match.
+ switch (BuiltinName[15]) {
+ default: break;
+ case 'a': // 1 string to match.
+ if (memcmp(BuiltinName.data()+16, "dd", 2))
+ break;
+ return Intrinsic::arm_qadd; // "__builtin_arm_qadd"
+ case 's': // 1 string to match.
+ if (memcmp(BuiltinName.data()+16, "ub", 2))
+ break;
+ return Intrinsic::arm_qsub; // "__builtin_arm_qsub"
+ }
+ break;
+ case 's': // 1 string to match.
+ if (memcmp(BuiltinName.data()+15, "sat", 3))
+ break;
+ return Intrinsic::arm_ssat; // "__builtin_arm_ssat"
+ case 'u': // 1 string to match.
+ if (memcmp(BuiltinName.data()+15, "sat", 3))
+ break;
+ return Intrinsic::arm_usat; // "__builtin_arm_usat"
+ }
+ break;
+ case 19: // 1 string to match.
+ if (memcmp(BuiltinName.data()+0, "__builtin_arm_mcrr2", 19))
+ break;
+ return Intrinsic::arm_mcrr2; // "__builtin_arm_mcrr2"
+ case 23: // 2 strings to match.
+ if (memcmp(BuiltinName.data()+0, "__builtin_arm_", 14))
+ break;
+ switch (BuiltinName[14]) {
+ default: break;
+ case 'g': // 1 string to match.
+ if (memcmp(BuiltinName.data()+15, "et_fpscr", 8))
+ break;
+ return Intrinsic::arm_get_fpscr; // "__builtin_arm_get_fpscr"
+ case 's': // 1 string to match.
+ if (memcmp(BuiltinName.data()+15, "et_fpscr", 8))
+ break;
+ return Intrinsic::arm_set_fpscr; // "__builtin_arm_set_fpscr"
+ }
+ break;
+ case 24: // 1 string to match.
+ if (memcmp(BuiltinName.data()+0, "__builtin_thread_pointer", 24))
+ break;
+ return Intrinsic::arm_thread_pointer; // "__builtin_thread_pointer"
+ }
+ }
+ if (TargetPrefix == "hexagon") {
+ switch (BuiltinName.size()) {
+ default: break;
+ case 18: // 1 string to match.
+ if (memcmp(BuiltinName.data()+0, "__builtin_circ_ldd", 18))
+ break;
+ return Intrinsic::hexagon_circ_ldd; // "__builtin_circ_ldd"
+ case 23: // 2 strings to match.
+ if (memcmp(BuiltinName.data()+0, "__builtin_HEXAGON_", 18))
+ break;
+ switch (BuiltinName[18]) {
+ default: break;
+ case 'A': // 1 string to match.
+ if (memcmp(BuiltinName.data()+19, "2_or", 4))
+ break;
+ return Intrinsic::hexagon_A2_or; // "__builtin_HEXAGON_A2_or"
+ case 'C': // 1 string to match.
+ if (memcmp(BuiltinName.data()+19, "2_or", 4))
+ break;
+ return Intrinsic::hexagon_C2_or; // "__builtin_HEXAGON_C2_or"
+ }
+ break;
+ case 24: // 23 strings to match.
+ if (memcmp(BuiltinName.data()+0, "__builtin_HEXAGON_", 18))
+ break;
+ switch (BuiltinName[18]) {
+ default: break;
+ case 'A': // 13 strings to match.
+ switch (BuiltinName[19]) {
+ default: break;
+ case '2': // 12 strings to match.
+ if (BuiltinName[20] != '_')
+ break;
+ switch (BuiltinName[21]) {
+ default: break;
+ case 'a': // 3 strings to match.
+ switch (BuiltinName[22]) {
+ default: break;
+ case 'b': // 1 string to match.
+ if (BuiltinName[23] != 's')
+ break;
+ return Intrinsic::hexagon_A2_abs; // "__builtin_HEXAGON_A2_abs"
+ case 'd': // 1 string to match.
+ if (BuiltinName[23] != 'd')
+ break;
+ return Intrinsic::hexagon_A2_add; // "__builtin_HEXAGON_A2_add"
+ case 'n': // 1 string to match.
+ if (BuiltinName[23] != 'd')
+ break;
+ return Intrinsic::hexagon_A2_and; // "__builtin_HEXAGON_A2_and"
+ }
+ break;
+ case 'm': // 2 strings to match.
+ switch (BuiltinName[22]) {
+ default: break;
+ case 'a': // 1 string to match.
+ if (BuiltinName[23] != 'x')
+ break;
+ return Intrinsic::hexagon_A2_max; // "__builtin_HEXAGON_A2_max"
+ case 'i': // 1 string to match.
+ if (BuiltinName[23] != 'n')
+ break;
+ return Intrinsic::hexagon_A2_min; // "__builtin_HEXAGON_A2_min"
+ }
+ break;
+ case 'n': // 2 strings to match.
+ switch (BuiltinName[22]) {
+ default: break;
+ case 'e': // 1 string to match.
+ if (BuiltinName[23] != 'g')
+ break;
+ return Intrinsic::hexagon_A2_neg; // "__builtin_HEXAGON_A2_neg"
+ case 'o': // 1 string to match.
+ if (BuiltinName[23] != 't')
+ break;
+ return Intrinsic::hexagon_A2_not; // "__builtin_HEXAGON_A2_not"
+ }
+ break;
+ case 'o': // 1 string to match.
+ if (memcmp(BuiltinName.data()+22, "rp", 2))
+ break;
+ return Intrinsic::hexagon_A2_orp; // "__builtin_HEXAGON_A2_orp"
+ case 's': // 2 strings to match.
+ switch (BuiltinName[22]) {
+ default: break;
+ case 'a': // 1 string to match.
+ if (BuiltinName[23] != 't')
+ break;
+ return Intrinsic::hexagon_A2_sat; // "__builtin_HEXAGON_A2_sat"
+ case 'u': // 1 string to match.
+ if (BuiltinName[23] != 'b')
+ break;
+ return Intrinsic::hexagon_A2_sub; // "__builtin_HEXAGON_A2_sub"
+ }
+ break;
+ case 't': // 1 string to match.
+ if (memcmp(BuiltinName.data()+22, "fr", 2))
+ break;
+ return Intrinsic::hexagon_A2_tfr; // "__builtin_HEXAGON_A2_tfr"
+ case 'x': // 1 string to match.
+ if (memcmp(BuiltinName.data()+22, "or", 2))
+ break;
+ return Intrinsic::hexagon_A2_xor; // "__builtin_HEXAGON_A2_xor"
+ }
+ break;
+ case '4': // 1 string to match.
+ if (memcmp(BuiltinName.data()+20, "_orn", 4))
+ break;
+ return Intrinsic::hexagon_A4_orn; // "__builtin_HEXAGON_A4_orn"
+ }
+ break;
+ case 'C': // 5 strings to match.
+ if (memcmp(BuiltinName.data()+19, "2_", 2))
+ break;
+ switch (BuiltinName[21]) {
+ default: break;
+ case 'a': // 1 string to match.
+ if (memcmp(BuiltinName.data()+22, "nd", 2))
+ break;
+ return Intrinsic::hexagon_C2_and; // "__builtin_HEXAGON_C2_and"
+ case 'm': // 1 string to match.
+ if (memcmp(BuiltinName.data()+22, "ux", 2))
+ break;
+ return Intrinsic::hexagon_C2_mux; // "__builtin_HEXAGON_C2_mux"
+ case 'n': // 1 string to match.
+ if (memcmp(BuiltinName.data()+22, "ot", 2))
+ break;
+ return Intrinsic::hexagon_C2_not; // "__builtin_HEXAGON_C2_not"
+ case 'o': // 1 string to match.
+ if (memcmp(BuiltinName.data()+22, "rn", 2))
+ break;
+ return Intrinsic::hexagon_C2_orn; // "__builtin_HEXAGON_C2_orn"
+ case 'x': // 1 string to match.
+ if (memcmp(BuiltinName.data()+22, "or", 2))
+ break;
+ return Intrinsic::hexagon_C2_xor; // "__builtin_HEXAGON_C2_xor"
+ }
+ break;
+ case 'S': // 5 strings to match.
+ if (memcmp(BuiltinName.data()+19, "2_c", 3))
+ break;
+ switch (BuiltinName[22]) {
+ default: break;
+ case 'l': // 3 strings to match.
+ switch (BuiltinName[23]) {
+ default: break;
+ case '0': // 1 string to match.
+ return Intrinsic::hexagon_S2_cl0; // "__builtin_HEXAGON_S2_cl0"
+ case '1': // 1 string to match.
+ return Intrinsic::hexagon_S2_cl1; // "__builtin_HEXAGON_S2_cl1"
+ case 'b': // 1 string to match.
+ return Intrinsic::hexagon_S2_clb; // "__builtin_HEXAGON_S2_clb"
+ }
+ break;
+ case 't': // 2 strings to match.
+ switch (BuiltinName[23]) {
+ default: break;
+ case '0': // 1 string to match.
+ return Intrinsic::hexagon_S2_ct0; // "__builtin_HEXAGON_S2_ct0"
+ case '1': // 1 string to match.
+ return Intrinsic::hexagon_S2_ct1; // "__builtin_HEXAGON_S2_ct1"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 25: // 42 strings to match.
+ if (memcmp(BuiltinName.data()+0, "__builtin_HEXAGON_", 18))
+ break;
+ switch (BuiltinName[18]) {
+ default: break;
+ case 'A': // 26 strings to match.
+ switch (BuiltinName[19]) {
+ default: break;
+ case '2': // 24 strings to match.
+ if (BuiltinName[20] != '_')
+ break;
+ switch (BuiltinName[21]) {
+ default: break;
+ case 'a': // 6 strings to match.
+ switch (BuiltinName[22]) {
+ default: break;
+ case 'b': // 1 string to match.
+ if (memcmp(BuiltinName.data()+23, "sp", 2))
+ break;
+ return Intrinsic::hexagon_A2_absp; // "__builtin_HEXAGON_A2_absp"
+ case 'd': // 2 strings to match.
+ if (BuiltinName[23] != 'd')
+ break;
+ switch (BuiltinName[24]) {
+ default: break;
+ case 'i': // 1 string to match.
+ return Intrinsic::hexagon_A2_addi; // "__builtin_HEXAGON_A2_addi"
+ case 'p': // 1 string to match.
+ return Intrinsic::hexagon_A2_addp; // "__builtin_HEXAGON_A2_addp"
+ }
+ break;
+ case 'n': // 1 string to match.
+ if (memcmp(BuiltinName.data()+23, "dp", 2))
+ break;
+ return Intrinsic::hexagon_A2_andp; // "__builtin_HEXAGON_A2_andp"
+ case 's': // 2 strings to match.
+ switch (BuiltinName[23]) {
+ default: break;
+ case 'l': // 1 string to match.
+ if (BuiltinName[24] != 'h')
+ break;
+ return Intrinsic::hexagon_A2_aslh; // "__builtin_HEXAGON_A2_aslh"
+ case 'r': // 1 string to match.
+ if (BuiltinName[24] != 'h')
+ break;
+ return Intrinsic::hexagon_A2_asrh; // "__builtin_HEXAGON_A2_asrh"
+ }
+ break;
+ }
+ break;
+ case 'm': // 4 strings to match.
+ switch (BuiltinName[22]) {
+ default: break;
+ case 'a': // 2 strings to match.
+ if (BuiltinName[23] != 'x')
+ break;
+ switch (BuiltinName[24]) {
+ default: break;
+ case 'p': // 1 string to match.
+ return Intrinsic::hexagon_A2_maxp; // "__builtin_HEXAGON_A2_maxp"
+ case 'u': // 1 string to match.
+ return Intrinsic::hexagon_A2_maxu; // "__builtin_HEXAGON_A2_maxu"
+ }
+ break;
+ case 'i': // 2 strings to match.
+ if (BuiltinName[23] != 'n')
+ break;
+ switch (BuiltinName[24]) {
+ default: break;
+ case 'p': // 1 string to match.
+ return Intrinsic::hexagon_A2_minp; // "__builtin_HEXAGON_A2_minp"
+ case 'u': // 1 string to match.
+ return Intrinsic::hexagon_A2_minu; // "__builtin_HEXAGON_A2_minu"
+ }
+ break;
+ }
+ break;
+ case 'n': // 2 strings to match.
+ switch (BuiltinName[22]) {
+ default: break;
+ case 'e': // 1 string to match.
+ if (memcmp(BuiltinName.data()+23, "gp", 2))
+ break;
+ return Intrinsic::hexagon_A2_negp; // "__builtin_HEXAGON_A2_negp"
+ case 'o': // 1 string to match.
+ if (memcmp(BuiltinName.data()+23, "tp", 2))
+ break;
+ return Intrinsic::hexagon_A2_notp; // "__builtin_HEXAGON_A2_notp"
+ }
+ break;
+ case 'o': // 1 string to match.
+ if (memcmp(BuiltinName.data()+22, "rir", 3))
+ break;
+ return Intrinsic::hexagon_A2_orir; // "__builtin_HEXAGON_A2_orir"
+ case 's': // 7 strings to match.
+ switch (BuiltinName[22]) {
+ default: break;
+ case 'a': // 2 strings to match.
+ if (BuiltinName[23] != 't')
+ break;
+ switch (BuiltinName[24]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::hexagon_A2_satb; // "__builtin_HEXAGON_A2_satb"
+ case 'h': // 1 string to match.
+ return Intrinsic::hexagon_A2_sath; // "__builtin_HEXAGON_A2_sath"
+ }
+ break;
+ case 'u': // 1 string to match.
+ if (memcmp(BuiltinName.data()+23, "bp", 2))
+ break;
+ return Intrinsic::hexagon_A2_subp; // "__builtin_HEXAGON_A2_subp"
+ case 'w': // 1 string to match.
+ if (memcmp(BuiltinName.data()+23, "iz", 2))
+ break;
+ return Intrinsic::hexagon_A2_swiz; // "__builtin_HEXAGON_A2_swiz"
+ case 'x': // 3 strings to match.
+ if (BuiltinName[23] != 't')
+ break;
+ switch (BuiltinName[24]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::hexagon_A2_sxtb; // "__builtin_HEXAGON_A2_sxtb"
+ case 'h': // 1 string to match.
+ return Intrinsic::hexagon_A2_sxth; // "__builtin_HEXAGON_A2_sxth"
+ case 'w': // 1 string to match.
+ return Intrinsic::hexagon_A2_sxtw; // "__builtin_HEXAGON_A2_sxtw"
+ }
+ break;
+ }
+ break;
+ case 't': // 1 string to match.
+ if (memcmp(BuiltinName.data()+22, "frp", 3))
+ break;
+ return Intrinsic::hexagon_A2_tfrp; // "__builtin_HEXAGON_A2_tfrp"
+ case 'x': // 1 string to match.
+ if (memcmp(BuiltinName.data()+22, "orp", 3))
+ break;
+ return Intrinsic::hexagon_A2_xorp; // "__builtin_HEXAGON_A2_xorp"
+ case 'z': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+22, "xt", 2))
+ break;
+ switch (BuiltinName[24]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::hexagon_A2_zxtb; // "__builtin_HEXAGON_A2_zxtb"
+ case 'h': // 1 string to match.
+ return Intrinsic::hexagon_A2_zxth; // "__builtin_HEXAGON_A2_zxth"
+ }
+ break;
+ }
+ break;
+ case '4': // 2 strings to match.
+ if (BuiltinName[20] != '_')
+ break;
+ switch (BuiltinName[21]) {
+ default: break;
+ case 'a': // 1 string to match.
+ if (memcmp(BuiltinName.data()+22, "ndn", 3))
+ break;
+ return Intrinsic::hexagon_A4_andn; // "__builtin_HEXAGON_A4_andn"
+ case 'o': // 1 string to match.
+ if (memcmp(BuiltinName.data()+22, "rnp", 3))
+ break;
+ return Intrinsic::hexagon_A4_ornp; // "__builtin_HEXAGON_A4_ornp"
+ }
+ break;
+ }
+ break;
+ case 'C': // 5 strings to match.
+ if (memcmp(BuiltinName.data()+19, "2_", 2))
+ break;
+ switch (BuiltinName[21]) {
+ default: break;
+ case 'a': // 3 strings to match.
+ switch (BuiltinName[22]) {
+ default: break;
+ case 'l': // 1 string to match.
+ if (memcmp(BuiltinName.data()+23, "l8", 2))
+ break;
+ return Intrinsic::hexagon_C2_all8; // "__builtin_HEXAGON_C2_all8"
+ case 'n': // 2 strings to match.
+ switch (BuiltinName[23]) {
+ default: break;
+ case 'd': // 1 string to match.
+ if (BuiltinName[24] != 'n')
+ break;
+ return Intrinsic::hexagon_C2_andn; // "__builtin_HEXAGON_C2_andn"
+ case 'y': // 1 string to match.
+ if (BuiltinName[24] != '8')
+ break;
+ return Intrinsic::hexagon_C2_any8; // "__builtin_HEXAGON_C2_any8"
+ }
+ break;
+ }
+ break;
+ case 'm': // 1 string to match.
+ if (memcmp(BuiltinName.data()+22, "ask", 3))
+ break;
+ return Intrinsic::hexagon_C2_mask; // "__builtin_HEXAGON_C2_mask"
+ case 'v': // 1 string to match.
+ if (memcmp(BuiltinName.data()+22, "mux", 3))
+ break;
+ return Intrinsic::hexagon_C2_vmux; // "__builtin_HEXAGON_C2_vmux"
+ }
+ break;
+ case 'M': // 3 strings to match.
+ if (memcmp(BuiltinName.data()+19, "2_", 2))
+ break;
+ switch (BuiltinName[21]) {
+ default: break;
+ case 'a': // 1 string to match.
+ if (memcmp(BuiltinName.data()+22, "cci", 3))
+ break;
+ return Intrinsic::hexagon_M2_acci; // "__builtin_HEXAGON_M2_acci"
+ case 'm': // 2 strings to match.
+ switch (BuiltinName[22]) {
+ default: break;
+ case 'a': // 1 string to match.
+ if (memcmp(BuiltinName.data()+23, "ci", 2))
+ break;
+ return Intrinsic::hexagon_M2_maci; // "__builtin_HEXAGON_M2_maci"
+ case 'p': // 1 string to match.
+ if (memcmp(BuiltinName.data()+23, "yi", 2))
+ break;
+ return Intrinsic::hexagon_M2_mpyi; // "__builtin_HEXAGON_M2_mpyi"
+ }
+ break;
+ }
+ break;
+ case 'S': // 8 strings to match.
+ switch (BuiltinName[19]) {
+ default: break;
+ case '2': // 7 strings to match.
+ if (BuiltinName[20] != '_')
+ break;
+ switch (BuiltinName[21]) {
+ default: break;
+ case 'b': // 1 string to match.
+ if (memcmp(BuiltinName.data()+22, "rev", 3))
+ break;
+ return Intrinsic::hexagon_S2_brev; // "__builtin_HEXAGON_S2_brev"
+ case 'c': // 5 strings to match.
+ switch (BuiltinName[22]) {
+ default: break;
+ case 'l': // 3 strings to match.
+ switch (BuiltinName[23]) {
+ default: break;
+ case '0': // 1 string to match.
+ if (BuiltinName[24] != 'p')
+ break;
+ return Intrinsic::hexagon_S2_cl0p; // "__builtin_HEXAGON_S2_cl0p"
+ case '1': // 1 string to match.
+ if (BuiltinName[24] != 'p')
+ break;
+ return Intrinsic::hexagon_S2_cl1p; // "__builtin_HEXAGON_S2_cl1p"
+ case 'b': // 1 string to match.
+ if (BuiltinName[24] != 'p')
+ break;
+ return Intrinsic::hexagon_S2_clbp; // "__builtin_HEXAGON_S2_clbp"
+ }
+ break;
+ case 't': // 2 strings to match.
+ switch (BuiltinName[23]) {
+ default: break;
+ case '0': // 1 string to match.
+ if (BuiltinName[24] != 'p')
+ break;
+ return Intrinsic::hexagon_S2_ct0p; // "__builtin_HEXAGON_S2_ct0p"
+ case '1': // 1 string to match.
+ if (BuiltinName[24] != 'p')
+ break;
+ return Intrinsic::hexagon_S2_ct1p; // "__builtin_HEXAGON_S2_ct1p"
+ }
+ break;
+ }
+ break;
+ case 'l': // 1 string to match.
+ if (memcmp(BuiltinName.data()+22, "fsp", 3))
+ break;
+ return Intrinsic::hexagon_S2_lfsp; // "__builtin_HEXAGON_S2_lfsp"
+ }
+ break;
+ case '4': // 1 string to match.
+ if (memcmp(BuiltinName.data()+20, "_lsli", 5))
+ break;
+ return Intrinsic::hexagon_S4_lsli; // "__builtin_HEXAGON_S4_lsli"
+ }
+ break;
+ }
+ break;
+ case 26: // 58 strings to match.
+ if (memcmp(BuiltinName.data()+0, "__builtin_", 10))
+ break;
+ switch (BuiltinName[10]) {
+ default: break;
+ case 'H': // 57 strings to match.
+ if (memcmp(BuiltinName.data()+11, "EXAGON_", 7))
+ break;
+ switch (BuiltinName[18]) {
+ default: break;
+ case 'A': // 27 strings to match.
+ switch (BuiltinName[19]) {
+ default: break;
+ case '2': // 26 strings to match.
+ if (BuiltinName[20] != '_')
+ break;
+ switch (BuiltinName[21]) {
+ default: break;
+ case 'a': // 2 strings to match.
+ switch (BuiltinName[22]) {
+ default: break;
+ case 'd': // 1 string to match.
+ if (memcmp(BuiltinName.data()+23, "dsp", 3))
+ break;
+ return Intrinsic::hexagon_A2_addsp; // "__builtin_HEXAGON_A2_addsp"
+ case 'n': // 1 string to match.
+ if (memcmp(BuiltinName.data()+23, "dir", 3))
+ break;
+ return Intrinsic::hexagon_A2_andir; // "__builtin_HEXAGON_A2_andir"
+ }
+ break;
+ case 'm': // 2 strings to match.
+ switch (BuiltinName[22]) {
+ default: break;
+ case 'a': // 1 string to match.
+ if (memcmp(BuiltinName.data()+23, "xup", 3))
+ break;
+ return Intrinsic::hexagon_A2_maxup; // "__builtin_HEXAGON_A2_maxup"
+ case 'i': // 1 string to match.
+ if (memcmp(BuiltinName.data()+23, "nup", 3))
+ break;
+ return Intrinsic::hexagon_A2_minup; // "__builtin_HEXAGON_A2_minup"
+ }
+ break;
+ case 's': // 3 strings to match.
+ switch (BuiltinName[22]) {
+ default: break;
+ case 'a': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+23, "tu", 2))
+ break;
+ switch (BuiltinName[25]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::hexagon_A2_satub; // "__builtin_HEXAGON_A2_satub"
+ case 'h': // 1 string to match.
+ return Intrinsic::hexagon_A2_satuh; // "__builtin_HEXAGON_A2_satuh"
+ }
+ break;
+ case 'u': // 1 string to match.
+ if (memcmp(BuiltinName.data()+23, "bri", 3))
+ break;
+ return Intrinsic::hexagon_A2_subri; // "__builtin_HEXAGON_A2_subri"
+ }
+ break;
+ case 't': // 4 strings to match.
+ if (memcmp(BuiltinName.data()+22, "fr", 2))
+ break;
+ switch (BuiltinName[24]) {
+ default: break;
+ case 'i': // 2 strings to match.
+ switch (BuiltinName[25]) {
+ default: break;
+ case 'h': // 1 string to match.
+ return Intrinsic::hexagon_A2_tfrih; // "__builtin_HEXAGON_A2_tfrih"
+ case 'l': // 1 string to match.
+ return Intrinsic::hexagon_A2_tfril; // "__builtin_HEXAGON_A2_tfril"
+ }
+ break;
+ case 'p': // 1 string to match.
+ if (BuiltinName[25] != 'i')
+ break;
+ return Intrinsic::hexagon_A2_tfrpi; // "__builtin_HEXAGON_A2_tfrpi"
+ case 's': // 1 string to match.
+ if (BuiltinName[25] != 'i')
+ break;
+ return Intrinsic::hexagon_A2_tfrsi; // "__builtin_HEXAGON_A2_tfrsi"
+ }
+ break;
+ case 'v': // 15 strings to match.
+ switch (BuiltinName[22]) {
+ default: break;
+ case 'a': // 6 strings to match.
+ switch (BuiltinName[23]) {
+ default: break;
+ case 'b': // 2 strings to match.
+ if (BuiltinName[24] != 's')
+ break;
+ switch (BuiltinName[25]) {
+ default: break;
+ case 'h': // 1 string to match.
+ return Intrinsic::hexagon_A2_vabsh; // "__builtin_HEXAGON_A2_vabsh"
+ case 'w': // 1 string to match.
+ return Intrinsic::hexagon_A2_vabsw; // "__builtin_HEXAGON_A2_vabsw"
+ }
+ break;
+ case 'd': // 2 strings to match.
+ if (BuiltinName[24] != 'd')
+ break;
+ switch (BuiltinName[25]) {
+ default: break;
+ case 'h': // 1 string to match.
+ return Intrinsic::hexagon_A2_vaddh; // "__builtin_HEXAGON_A2_vaddh"
+ case 'w': // 1 string to match.
+ return Intrinsic::hexagon_A2_vaddw; // "__builtin_HEXAGON_A2_vaddw"
+ }
+ break;
+ case 'v': // 2 strings to match.
+ if (BuiltinName[24] != 'g')
+ break;
+ switch (BuiltinName[25]) {
+ default: break;
+ case 'h': // 1 string to match.
+ return Intrinsic::hexagon_A2_vavgh; // "__builtin_HEXAGON_A2_vavgh"
+ case 'w': // 1 string to match.
+ return Intrinsic::hexagon_A2_vavgw; // "__builtin_HEXAGON_A2_vavgw"
+ }
+ break;
+ }
+ break;
+ case 'c': // 1 string to match.
+ if (memcmp(BuiltinName.data()+23, "onj", 3))
+ break;
+ return Intrinsic::hexagon_A2_vconj; // "__builtin_HEXAGON_A2_vconj"
+ case 'm': // 6 strings to match.
+ switch (BuiltinName[23]) {
+ default: break;
+ case 'a': // 3 strings to match.
+ if (BuiltinName[24] != 'x')
+ break;
+ switch (BuiltinName[25]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::hexagon_A2_vmaxb; // "__builtin_HEXAGON_A2_vmaxb"
+ case 'h': // 1 string to match.
+ return Intrinsic::hexagon_A2_vmaxh; // "__builtin_HEXAGON_A2_vmaxh"
+ case 'w': // 1 string to match.
+ return Intrinsic::hexagon_A2_vmaxw; // "__builtin_HEXAGON_A2_vmaxw"
+ }
+ break;
+ case 'i': // 3 strings to match.
+ if (BuiltinName[24] != 'n')
+ break;
+ switch (BuiltinName[25]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::hexagon_A2_vminb; // "__builtin_HEXAGON_A2_vminb"
+ case 'h': // 1 string to match.
+ return Intrinsic::hexagon_A2_vminh; // "__builtin_HEXAGON_A2_vminh"
+ case 'w': // 1 string to match.
+ return Intrinsic::hexagon_A2_vminw; // "__builtin_HEXAGON_A2_vminw"
+ }
+ break;
+ }
+ break;
+ case 's': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+23, "ub", 2))
+ break;
+ switch (BuiltinName[25]) {
+ default: break;
+ case 'h': // 1 string to match.
+ return Intrinsic::hexagon_A2_vsubh; // "__builtin_HEXAGON_A2_vsubh"
+ case 'w': // 1 string to match.
+ return Intrinsic::hexagon_A2_vsubw; // "__builtin_HEXAGON_A2_vsubw"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case '4': // 1 string to match.
+ if (memcmp(BuiltinName.data()+20, "_andnp", 6))
+ break;
+ return Intrinsic::hexagon_A4_andnp; // "__builtin_HEXAGON_A4_andnp"
+ }
+ break;
+ case 'C': // 9 strings to match.
+ switch (BuiltinName[19]) {
+ default: break;
+ case '2': // 8 strings to match.
+ if (BuiltinName[20] != '_')
+ break;
+ switch (BuiltinName[21]) {
+ default: break;
+ case 'c': // 3 strings to match.
+ if (memcmp(BuiltinName.data()+22, "mp", 2))
+ break;
+ switch (BuiltinName[24]) {
+ default: break;
+ case 'e': // 1 string to match.
+ if (BuiltinName[25] != 'q')
+ break;
+ return Intrinsic::hexagon_C2_cmpeq; // "__builtin_HEXAGON_C2_cmpeq"
+ case 'g': // 1 string to match.
+ if (BuiltinName[25] != 't')
+ break;
+ return Intrinsic::hexagon_C2_cmpgt; // "__builtin_HEXAGON_C2_cmpgt"
+ case 'l': // 1 string to match.
+ if (BuiltinName[25] != 't')
+ break;
+ return Intrinsic::hexagon_C2_cmplt; // "__builtin_HEXAGON_C2_cmplt"
+ }
+ break;
+ case 'm': // 3 strings to match.
+ if (memcmp(BuiltinName.data()+22, "ux", 2))
+ break;
+ switch (BuiltinName[24]) {
+ default: break;
+ case 'i': // 2 strings to match.
+ switch (BuiltinName[25]) {
+ default: break;
+ case 'i': // 1 string to match.
+ return Intrinsic::hexagon_C2_muxii; // "__builtin_HEXAGON_C2_muxii"
+ case 'r': // 1 string to match.
+ return Intrinsic::hexagon_C2_muxir; // "__builtin_HEXAGON_C2_muxir"
+ }
+ break;
+ case 'r': // 1 string to match.
+ if (BuiltinName[25] != 'i')
+ break;
+ return Intrinsic::hexagon_C2_muxri; // "__builtin_HEXAGON_C2_muxri"
+ }
+ break;
+ case 't': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+22, "fr", 2))
+ break;
+ switch (BuiltinName[24]) {
+ default: break;
+ case 'p': // 1 string to match.
+ if (BuiltinName[25] != 'r')
+ break;
+ return Intrinsic::hexagon_C2_tfrpr; // "__builtin_HEXAGON_C2_tfrpr"
+ case 'r': // 1 string to match.
+ if (BuiltinName[25] != 'p')
+ break;
+ return Intrinsic::hexagon_C2_tfrrp; // "__builtin_HEXAGON_C2_tfrrp"
+ }
+ break;
+ }
+ break;
+ case '4': // 1 string to match.
+ if (memcmp(BuiltinName.data()+20, "_or_or", 6))
+ break;
+ return Intrinsic::hexagon_C4_or_or; // "__builtin_HEXAGON_C4_or_or"
+ }
+ break;
+ case 'F': // 14 strings to match.
+ if (memcmp(BuiltinName.data()+19, "2_", 2))
+ break;
+ switch (BuiltinName[21]) {
+ default: break;
+ case 'd': // 7 strings to match.
+ if (BuiltinName[22] != 'f')
+ break;
+ switch (BuiltinName[23]) {
+ default: break;
+ case 'a': // 1 string to match.
+ if (memcmp(BuiltinName.data()+24, "dd", 2))
+ break;
+ return Intrinsic::hexagon_F2_dfadd; // "__builtin_HEXAGON_F2_dfadd"
+ case 'f': // 2 strings to match.
+ if (BuiltinName[24] != 'm')
+ break;
+ switch (BuiltinName[25]) {
+ default: break;
+ case 'a': // 1 string to match.
+ return Intrinsic::hexagon_F2_dffma; // "__builtin_HEXAGON_F2_dffma"
+ case 's': // 1 string to match.
+ return Intrinsic::hexagon_F2_dffms; // "__builtin_HEXAGON_F2_dffms"
+ }
+ break;
+ case 'm': // 3 strings to match.
+ switch (BuiltinName[24]) {
+ default: break;
+ case 'a': // 1 string to match.
+ if (BuiltinName[25] != 'x')
+ break;
+ return Intrinsic::hexagon_F2_dfmax; // "__builtin_HEXAGON_F2_dfmax"
+ case 'i': // 1 string to match.
+ if (BuiltinName[25] != 'n')
+ break;
+ return Intrinsic::hexagon_F2_dfmin; // "__builtin_HEXAGON_F2_dfmin"
+ case 'p': // 1 string to match.
+ if (BuiltinName[25] != 'y')
+ break;
+ return Intrinsic::hexagon_F2_dfmpy; // "__builtin_HEXAGON_F2_dfmpy"
+ }
+ break;
+ case 's': // 1 string to match.
+ if (memcmp(BuiltinName.data()+24, "ub", 2))
+ break;
+ return Intrinsic::hexagon_F2_dfsub; // "__builtin_HEXAGON_F2_dfsub"
+ }
+ break;
+ case 's': // 7 strings to match.
+ if (BuiltinName[22] != 'f')
+ break;
+ switch (BuiltinName[23]) {
+ default: break;
+ case 'a': // 1 string to match.
+ if (memcmp(BuiltinName.data()+24, "dd", 2))
+ break;
+ return Intrinsic::hexagon_F2_sfadd; // "__builtin_HEXAGON_F2_sfadd"
+ case 'f': // 2 strings to match.
+ if (BuiltinName[24] != 'm')
+ break;
+ switch (BuiltinName[25]) {
+ default: break;
+ case 'a': // 1 string to match.
+ return Intrinsic::hexagon_F2_sffma; // "__builtin_HEXAGON_F2_sffma"
+ case 's': // 1 string to match.
+ return Intrinsic::hexagon_F2_sffms; // "__builtin_HEXAGON_F2_sffms"
+ }
+ break;
+ case 'm': // 3 strings to match.
+ switch (BuiltinName[24]) {
+ default: break;
+ case 'a': // 1 string to match.
+ if (BuiltinName[25] != 'x')
+ break;
+ return Intrinsic::hexagon_F2_sfmax; // "__builtin_HEXAGON_F2_sfmax"
+ case 'i': // 1 string to match.
+ if (BuiltinName[25] != 'n')
+ break;
+ return Intrinsic::hexagon_F2_sfmin; // "__builtin_HEXAGON_F2_sfmin"
+ case 'p': // 1 string to match.
+ if (BuiltinName[25] != 'y')
+ break;
+ return Intrinsic::hexagon_F2_sfmpy; // "__builtin_HEXAGON_F2_sfmpy"
+ }
+ break;
+ case 's': // 1 string to match.
+ if (memcmp(BuiltinName.data()+24, "ub", 2))
+ break;
+ return Intrinsic::hexagon_F2_sfsub; // "__builtin_HEXAGON_F2_sfsub"
+ }
+ break;
+ }
+ break;
+ case 'M': // 6 strings to match.
+ switch (BuiltinName[19]) {
+ default: break;
+ case '2': // 4 strings to match.
+ if (BuiltinName[20] != '_')
+ break;
+ switch (BuiltinName[21]) {
+ default: break;
+ case 'a': // 1 string to match.
+ if (memcmp(BuiltinName.data()+22, "ccii", 4))
+ break;
+ return Intrinsic::hexagon_M2_accii; // "__builtin_HEXAGON_M2_accii"
+ case 'm': // 1 string to match.
+ if (memcmp(BuiltinName.data()+22, "pyui", 4))
+ break;
+ return Intrinsic::hexagon_M2_mpyui; // "__builtin_HEXAGON_M2_mpyui"
+ case 'n': // 1 string to match.
+ if (memcmp(BuiltinName.data()+22, "acci", 4))
+ break;
+ return Intrinsic::hexagon_M2_nacci; // "__builtin_HEXAGON_M2_nacci"
+ case 'v': // 1 string to match.
+ if (memcmp(BuiltinName.data()+22, "mac2", 4))
+ break;
+ return Intrinsic::hexagon_M2_vmac2; // "__builtin_HEXAGON_M2_vmac2"
+ }
+ break;
+ case '4': // 2 strings to match.
+ if (BuiltinName[20] != '_')
+ break;
+ switch (BuiltinName[21]) {
+ default: break;
+ case 'o': // 1 string to match.
+ if (memcmp(BuiltinName.data()+22, "r_or", 4))
+ break;
+ return Intrinsic::hexagon_M4_or_or; // "__builtin_HEXAGON_M4_or_or"
+ case 'p': // 1 string to match.
+ if (memcmp(BuiltinName.data()+22, "mpyw", 4))
+ break;
+ return Intrinsic::hexagon_M4_pmpyw; // "__builtin_HEXAGON_M4_pmpyw"
+ }
+ break;
+ }
+ break;
+ case 'S': // 1 string to match.
+ if (memcmp(BuiltinName.data()+19, "2_brevp", 7))
+ break;
+ return Intrinsic::hexagon_S2_brevp; // "__builtin_HEXAGON_S2_brevp"
+ }
+ break;
+ case 'S': // 1 string to match.
+ if (memcmp(BuiltinName.data()+11, "I_to_SXTHI_asrh", 15))
+ break;
+ return Intrinsic::hexagon_SI_to_SXTHI_asrh; // "__builtin_SI_to_SXTHI_asrh"
+ }
+ break;
+ case 27: // 70 strings to match.
+ if (memcmp(BuiltinName.data()+0, "__builtin_HEXAGON_", 18))
+ break;
+ switch (BuiltinName[18]) {
+ default: break;
+ case 'A': // 35 strings to match.
+ switch (BuiltinName[19]) {
+ default: break;
+ case '2': // 26 strings to match.
+ if (BuiltinName[20] != '_')
+ break;
+ switch (BuiltinName[21]) {
+ default: break;
+ case 'a': // 2 strings to match.
+ switch (BuiltinName[22]) {
+ default: break;
+ case 'b': // 1 string to match.
+ if (memcmp(BuiltinName.data()+23, "ssat", 4))
+ break;
+ return Intrinsic::hexagon_A2_abssat; // "__builtin_HEXAGON_A2_abssat"
+ case 'd': // 1 string to match.
+ if (memcmp(BuiltinName.data()+23, "dsat", 4))
+ break;
+ return Intrinsic::hexagon_A2_addsat; // "__builtin_HEXAGON_A2_addsat"
+ }
+ break;
+ case 'n': // 1 string to match.
+ if (memcmp(BuiltinName.data()+22, "egsat", 5))
+ break;
+ return Intrinsic::hexagon_A2_negsat; // "__builtin_HEXAGON_A2_negsat"
+ case 's': // 4 strings to match.
+ switch (BuiltinName[22]) {
+ default: break;
+ case 'u': // 1 string to match.
+ if (memcmp(BuiltinName.data()+23, "bsat", 4))
+ break;
+ return Intrinsic::hexagon_A2_subsat; // "__builtin_HEXAGON_A2_subsat"
+ case 'v': // 3 strings to match.
+ switch (BuiltinName[23]) {
+ default: break;
+ case 'a': // 2 strings to match.
+ switch (BuiltinName[24]) {
+ default: break;
+ case 'd': // 1 string to match.
+ if (memcmp(BuiltinName.data()+25, "dh", 2))
+ break;
+ return Intrinsic::hexagon_A2_svaddh; // "__builtin_HEXAGON_A2_svaddh"
+ case 'v': // 1 string to match.
+ if (memcmp(BuiltinName.data()+25, "gh", 2))
+ break;
+ return Intrinsic::hexagon_A2_svavgh; // "__builtin_HEXAGON_A2_svavgh"
+ }
+ break;
+ case 's': // 1 string to match.
+ if (memcmp(BuiltinName.data()+24, "ubh", 3))
+ break;
+ return Intrinsic::hexagon_A2_svsubh; // "__builtin_HEXAGON_A2_svsubh"
+ }
+ break;
+ }
+ break;
+ case 'v': // 19 strings to match.
+ switch (BuiltinName[22]) {
+ default: break;
+ case 'a': // 8 strings to match.
+ switch (BuiltinName[23]) {
+ default: break;
+ case 'd': // 3 strings to match.
+ if (BuiltinName[24] != 'd')
+ break;
+ switch (BuiltinName[25]) {
+ default: break;
+ case 'h': // 1 string to match.
+ if (BuiltinName[26] != 's')
+ break;
+ return Intrinsic::hexagon_A2_vaddhs; // "__builtin_HEXAGON_A2_vaddhs"
+ case 'u': // 1 string to match.
+ if (BuiltinName[26] != 'b')
+ break;
+ return Intrinsic::hexagon_A2_vaddub; // "__builtin_HEXAGON_A2_vaddub"
+ case 'w': // 1 string to match.
+ if (BuiltinName[26] != 's')
+ break;
+ return Intrinsic::hexagon_A2_vaddws; // "__builtin_HEXAGON_A2_vaddws"
+ }
+ break;
+ case 'v': // 5 strings to match.
+ if (BuiltinName[24] != 'g')
+ break;
+ switch (BuiltinName[25]) {
+ default: break;
+ case 'h': // 1 string to match.
+ if (BuiltinName[26] != 'r')
+ break;
+ return Intrinsic::hexagon_A2_vavghr; // "__builtin_HEXAGON_A2_vavghr"
+ case 'u': // 3 strings to match.
+ switch (BuiltinName[26]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::hexagon_A2_vavgub; // "__builtin_HEXAGON_A2_vavgub"
+ case 'h': // 1 string to match.
+ return Intrinsic::hexagon_A2_vavguh; // "__builtin_HEXAGON_A2_vavguh"
+ case 'w': // 1 string to match.
+ return Intrinsic::hexagon_A2_vavguw; // "__builtin_HEXAGON_A2_vavguw"
+ }
+ break;
+ case 'w': // 1 string to match.
+ if (BuiltinName[26] != 'r')
+ break;
+ return Intrinsic::hexagon_A2_vavgwr; // "__builtin_HEXAGON_A2_vavgwr"
+ }
+ break;
+ }
+ break;
+ case 'm': // 6 strings to match.
+ switch (BuiltinName[23]) {
+ default: break;
+ case 'a': // 3 strings to match.
+ if (memcmp(BuiltinName.data()+24, "xu", 2))
+ break;
+ switch (BuiltinName[26]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::hexagon_A2_vmaxub; // "__builtin_HEXAGON_A2_vmaxub"
+ case 'h': // 1 string to match.
+ return Intrinsic::hexagon_A2_vmaxuh; // "__builtin_HEXAGON_A2_vmaxuh"
+ case 'w': // 1 string to match.
+ return Intrinsic::hexagon_A2_vmaxuw; // "__builtin_HEXAGON_A2_vmaxuw"
+ }
+ break;
+ case 'i': // 3 strings to match.
+ if (memcmp(BuiltinName.data()+24, "nu", 2))
+ break;
+ switch (BuiltinName[26]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::hexagon_A2_vminub; // "__builtin_HEXAGON_A2_vminub"
+ case 'h': // 1 string to match.
+ return Intrinsic::hexagon_A2_vminuh; // "__builtin_HEXAGON_A2_vminuh"
+ case 'w': // 1 string to match.
+ return Intrinsic::hexagon_A2_vminuw; // "__builtin_HEXAGON_A2_vminuw"
+ }
+ break;
+ }
+ break;
+ case 'n': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+23, "avg", 3))
+ break;
+ switch (BuiltinName[26]) {
+ default: break;
+ case 'h': // 1 string to match.
+ return Intrinsic::hexagon_A2_vnavgh; // "__builtin_HEXAGON_A2_vnavgh"
+ case 'w': // 1 string to match.
+ return Intrinsic::hexagon_A2_vnavgw; // "__builtin_HEXAGON_A2_vnavgw"
+ }
+ break;
+ case 's': // 3 strings to match.
+ if (memcmp(BuiltinName.data()+23, "ub", 2))
+ break;
+ switch (BuiltinName[25]) {
+ default: break;
+ case 'h': // 1 string to match.
+ if (BuiltinName[26] != 's')
+ break;
+ return Intrinsic::hexagon_A2_vsubhs; // "__builtin_HEXAGON_A2_vsubhs"
+ case 'u': // 1 string to match.
+ if (BuiltinName[26] != 'b')
+ break;
+ return Intrinsic::hexagon_A2_vsubub; // "__builtin_HEXAGON_A2_vsubub"
+ case 'w': // 1 string to match.
+ if (BuiltinName[26] != 's')
+ break;
+ return Intrinsic::hexagon_A2_vsubws; // "__builtin_HEXAGON_A2_vsubws"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case '4': // 9 strings to match.
+ if (BuiltinName[20] != '_')
+ break;
+ switch (BuiltinName[21]) {
+ default: break;
+ case 'c': // 4 strings to match.
+ if (memcmp(BuiltinName.data()+22, "mp", 2))
+ break;
+ switch (BuiltinName[24]) {
+ default: break;
+ case 'b': // 2 strings to match.
+ switch (BuiltinName[25]) {
+ default: break;
+ case 'e': // 1 string to match.
+ if (BuiltinName[26] != 'q')
+ break;
+ return Intrinsic::hexagon_A4_cmpbeq; // "__builtin_HEXAGON_A4_cmpbeq"
+ case 'g': // 1 string to match.
+ if (BuiltinName[26] != 't')
+ break;
+ return Intrinsic::hexagon_A4_cmpbgt; // "__builtin_HEXAGON_A4_cmpbgt"
+ }
+ break;
+ case 'h': // 2 strings to match.
+ switch (BuiltinName[25]) {
+ default: break;
+ case 'e': // 1 string to match.
+ if (BuiltinName[26] != 'q')
+ break;
+ return Intrinsic::hexagon_A4_cmpheq; // "__builtin_HEXAGON_A4_cmpheq"
+ case 'g': // 1 string to match.
+ if (BuiltinName[26] != 't')
+ break;
+ return Intrinsic::hexagon_A4_cmphgt; // "__builtin_HEXAGON_A4_cmphgt"
+ }
+ break;
+ }
+ break;
+ case 'r': // 1 string to match.
+ if (memcmp(BuiltinName.data()+22, "cmpeq", 5))
+ break;
+ return Intrinsic::hexagon_A4_rcmpeq; // "__builtin_HEXAGON_A4_rcmpeq"
+ case 'v': // 4 strings to match.
+ if (memcmp(BuiltinName.data()+22, "rm", 2))
+ break;
+ switch (BuiltinName[24]) {
+ default: break;
+ case 'a': // 2 strings to match.
+ if (BuiltinName[25] != 'x')
+ break;
+ switch (BuiltinName[26]) {
+ default: break;
+ case 'h': // 1 string to match.
+ return Intrinsic::hexagon_A4_vrmaxh; // "__builtin_HEXAGON_A4_vrmaxh"
+ case 'w': // 1 string to match.
+ return Intrinsic::hexagon_A4_vrmaxw; // "__builtin_HEXAGON_A4_vrmaxw"
+ }
+ break;
+ case 'i': // 2 strings to match.
+ if (BuiltinName[25] != 'n')
+ break;
+ switch (BuiltinName[26]) {
+ default: break;
+ case 'h': // 1 string to match.
+ return Intrinsic::hexagon_A4_vrminh; // "__builtin_HEXAGON_A4_vrminh"
+ case 'w': // 1 string to match.
+ return Intrinsic::hexagon_A4_vrminw; // "__builtin_HEXAGON_A4_vrminw"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 'C': // 12 strings to match.
+ switch (BuiltinName[19]) {
+ default: break;
+ case '2': // 7 strings to match.
+ if (memcmp(BuiltinName.data()+20, "_cmp", 4))
+ break;
+ switch (BuiltinName[24]) {
+ default: break;
+ case 'e': // 2 strings to match.
+ if (BuiltinName[25] != 'q')
+ break;
+ switch (BuiltinName[26]) {
+ default: break;
+ case 'i': // 1 string to match.
+ return Intrinsic::hexagon_C2_cmpeqi; // "__builtin_HEXAGON_C2_cmpeqi"
+ case 'p': // 1 string to match.
+ return Intrinsic::hexagon_C2_cmpeqp; // "__builtin_HEXAGON_C2_cmpeqp"
+ }
+ break;
+ case 'g': // 4 strings to match.
+ switch (BuiltinName[25]) {
+ default: break;
+ case 'e': // 1 string to match.
+ if (BuiltinName[26] != 'i')
+ break;
+ return Intrinsic::hexagon_C2_cmpgei; // "__builtin_HEXAGON_C2_cmpgei"
+ case 't': // 3 strings to match.
+ switch (BuiltinName[26]) {
+ default: break;
+ case 'i': // 1 string to match.
+ return Intrinsic::hexagon_C2_cmpgti; // "__builtin_HEXAGON_C2_cmpgti"
+ case 'p': // 1 string to match.
+ return Intrinsic::hexagon_C2_cmpgtp; // "__builtin_HEXAGON_C2_cmpgtp"
+ case 'u': // 1 string to match.
+ return Intrinsic::hexagon_C2_cmpgtu; // "__builtin_HEXAGON_C2_cmpgtu"
+ }
+ break;
+ }
+ break;
+ case 'l': // 1 string to match.
+ if (memcmp(BuiltinName.data()+25, "tu", 2))
+ break;
+ return Intrinsic::hexagon_C2_cmpltu; // "__builtin_HEXAGON_C2_cmpltu"
+ }
+ break;
+ case '4': // 5 strings to match.
+ if (BuiltinName[20] != '_')
+ break;
+ switch (BuiltinName[21]) {
+ default: break;
+ case 'a': // 1 string to match.
+ if (memcmp(BuiltinName.data()+22, "nd_or", 5))
+ break;
+ return Intrinsic::hexagon_C4_and_or; // "__builtin_HEXAGON_C4_and_or"
+ case 'c': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+22, "mp", 2))
+ break;
+ switch (BuiltinName[24]) {
+ default: break;
+ case 'l': // 1 string to match.
+ if (memcmp(BuiltinName.data()+25, "te", 2))
+ break;
+ return Intrinsic::hexagon_C4_cmplte; // "__builtin_HEXAGON_C4_cmplte"
+ case 'n': // 1 string to match.
+ if (memcmp(BuiltinName.data()+25, "eq", 2))
+ break;
+ return Intrinsic::hexagon_C4_cmpneq; // "__builtin_HEXAGON_C4_cmpneq"
+ }
+ break;
+ case 'o': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+22, "r_", 2))
+ break;
+ switch (BuiltinName[24]) {
+ default: break;
+ case 'a': // 1 string to match.
+ if (memcmp(BuiltinName.data()+25, "nd", 2))
+ break;
+ return Intrinsic::hexagon_C4_or_and; // "__builtin_HEXAGON_C4_or_and"
+ case 'o': // 1 string to match.
+ if (memcmp(BuiltinName.data()+25, "rn", 2))
+ break;
+ return Intrinsic::hexagon_C4_or_orn; // "__builtin_HEXAGON_C4_or_orn"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 'M': // 12 strings to match.
+ switch (BuiltinName[19]) {
+ default: break;
+ case '2': // 7 strings to match.
+ if (BuiltinName[20] != '_')
+ break;
+ switch (BuiltinName[21]) {
+ default: break;
+ case 'm': // 4 strings to match.
+ switch (BuiltinName[22]) {
+ default: break;
+ case 'a': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+23, "csi", 3))
+ break;
+ switch (BuiltinName[26]) {
+ default: break;
+ case 'n': // 1 string to match.
+ return Intrinsic::hexagon_M2_macsin; // "__builtin_HEXAGON_M2_macsin"
+ case 'p': // 1 string to match.
+ return Intrinsic::hexagon_M2_macsip; // "__builtin_HEXAGON_M2_macsip"
+ }
+ break;
+ case 'p': // 2 strings to match.
+ if (BuiltinName[23] != 'y')
+ break;
+ switch (BuiltinName[24]) {
+ default: break;
+ case '_': // 1 string to match.
+ if (memcmp(BuiltinName.data()+25, "up", 2))
+ break;
+ return Intrinsic::hexagon_M2_mpy_up; // "__builtin_HEXAGON_M2_mpy_up"
+ case 's': // 1 string to match.
+ if (memcmp(BuiltinName.data()+25, "mi", 2))
+ break;
+ return Intrinsic::hexagon_M2_mpysmi; // "__builtin_HEXAGON_M2_mpysmi"
+ }
+ break;
+ }
+ break;
+ case 'n': // 1 string to match.
+ if (memcmp(BuiltinName.data()+22, "accii", 5))
+ break;
+ return Intrinsic::hexagon_M2_naccii; // "__builtin_HEXAGON_M2_naccii"
+ case 's': // 1 string to match.
+ if (memcmp(BuiltinName.data()+22, "ubacc", 5))
+ break;
+ return Intrinsic::hexagon_M2_subacc; // "__builtin_HEXAGON_M2_subacc"
+ case 'v': // 1 string to match.
+ if (memcmp(BuiltinName.data()+22, "raddh", 5))
+ break;
+ return Intrinsic::hexagon_M2_vraddh; // "__builtin_HEXAGON_M2_vraddh"
+ }
+ break;
+ case '4': // 5 strings to match.
+ if (BuiltinName[20] != '_')
+ break;
+ switch (BuiltinName[21]) {
+ default: break;
+ case 'a': // 1 string to match.
+ if (memcmp(BuiltinName.data()+22, "nd_or", 5))
+ break;
+ return Intrinsic::hexagon_M4_and_or; // "__builtin_HEXAGON_M4_and_or"
+ case 'o': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+22, "r_", 2))
+ break;
+ switch (BuiltinName[24]) {
+ default: break;
+ case 'a': // 1 string to match.
+ if (memcmp(BuiltinName.data()+25, "nd", 2))
+ break;
+ return Intrinsic::hexagon_M4_or_and; // "__builtin_HEXAGON_M4_or_and"
+ case 'x': // 1 string to match.
+ if (memcmp(BuiltinName.data()+25, "or", 2))
+ break;
+ return Intrinsic::hexagon_M4_or_xor; // "__builtin_HEXAGON_M4_or_xor"
+ }
+ break;
+ case 'v': // 1 string to match.
+ if (memcmp(BuiltinName.data()+22, "pmpyh", 5))
+ break;
+ return Intrinsic::hexagon_M4_vpmpyh; // "__builtin_HEXAGON_M4_vpmpyh"
+ case 'x': // 1 string to match.
+ if (memcmp(BuiltinName.data()+22, "or_or", 5))
+ break;
+ return Intrinsic::hexagon_M4_xor_or; // "__builtin_HEXAGON_M4_xor_or"
+ }
+ break;
+ }
+ break;
+ case 'S': // 11 strings to match.
+ switch (BuiltinName[19]) {
+ default: break;
+ case '2': // 9 strings to match.
+ if (BuiltinName[20] != '_')
+ break;
+ switch (BuiltinName[21]) {
+ default: break;
+ case 'i': // 1 string to match.
+ if (memcmp(BuiltinName.data()+22, "nsert", 5))
+ break;
+ return Intrinsic::hexagon_S2_insert; // "__builtin_HEXAGON_S2_insert"
+ case 'p': // 1 string to match.
+ if (memcmp(BuiltinName.data()+22, "ackhl", 5))
+ break;
+ return Intrinsic::hexagon_S2_packhl; // "__builtin_HEXAGON_S2_packhl"
+ case 'v': // 7 strings to match.
+ switch (BuiltinName[22]) {
+ default: break;
+ case 'c': // 1 string to match.
+ if (memcmp(BuiltinName.data()+23, "negh", 4))
+ break;
+ return Intrinsic::hexagon_S2_vcnegh; // "__builtin_HEXAGON_S2_vcnegh"
+ case 's': // 4 strings to match.
+ switch (BuiltinName[23]) {
+ default: break;
+ case 'a': // 2 strings to match.
+ if (BuiltinName[24] != 't')
+ break;
+ switch (BuiltinName[25]) {
+ default: break;
+ case 'h': // 1 string to match.
+ if (BuiltinName[26] != 'b')
+ break;
+ return Intrinsic::hexagon_S2_vsathb; // "__builtin_HEXAGON_S2_vsathb"
+ case 'w': // 1 string to match.
+ if (BuiltinName[26] != 'h')
+ break;
+ return Intrinsic::hexagon_S2_vsatwh; // "__builtin_HEXAGON_S2_vsatwh"
+ }
+ break;
+ case 'x': // 2 strings to match.
+ if (BuiltinName[24] != 't')
+ break;
+ switch (BuiltinName[25]) {
+ default: break;
+ case 'b': // 1 string to match.
+ if (BuiltinName[26] != 'h')
+ break;
+ return Intrinsic::hexagon_S2_vsxtbh; // "__builtin_HEXAGON_S2_vsxtbh"
+ case 'h': // 1 string to match.
+ if (BuiltinName[26] != 'w')
+ break;
+ return Intrinsic::hexagon_S2_vsxthw; // "__builtin_HEXAGON_S2_vsxthw"
+ }
+ break;
+ }
+ break;
+ case 'z': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+23, "xt", 2))
+ break;
+ switch (BuiltinName[25]) {
+ default: break;
+ case 'b': // 1 string to match.
+ if (BuiltinName[26] != 'h')
+ break;
+ return Intrinsic::hexagon_S2_vzxtbh; // "__builtin_HEXAGON_S2_vzxtbh"
+ case 'h': // 1 string to match.
+ if (BuiltinName[26] != 'w')
+ break;
+ return Intrinsic::hexagon_S2_vzxthw; // "__builtin_HEXAGON_S2_vzxthw"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case '4': // 2 strings to match.
+ if (BuiltinName[20] != '_')
+ break;
+ switch (BuiltinName[21]) {
+ default: break;
+ case 'o': // 1 string to match.
+ if (memcmp(BuiltinName.data()+22, "r_ori", 5))
+ break;
+ return Intrinsic::hexagon_S4_or_ori; // "__builtin_HEXAGON_S4_or_ori"
+ case 'p': // 1 string to match.
+ if (memcmp(BuiltinName.data()+22, "arity", 5))
+ break;
+ return Intrinsic::hexagon_S4_parity; // "__builtin_HEXAGON_S4_parity"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 28: // 103 strings to match.
+ if (memcmp(BuiltinName.data()+0, "__builtin_HEXAGON_", 18))
+ break;
+ switch (BuiltinName[18]) {
+ default: break;
+ case 'A': // 36 strings to match.
+ switch (BuiltinName[19]) {
+ default: break;
+ case '2': // 23 strings to match.
+ if (BuiltinName[20] != '_')
+ break;
+ switch (BuiltinName[21]) {
+ default: break;
+ case 'a': // 1 string to match.
+ if (memcmp(BuiltinName.data()+22, "ddpsat", 6))
+ break;
+ return Intrinsic::hexagon_A2_addpsat; // "__builtin_HEXAGON_A2_addpsat"
+ case 's': // 4 strings to match.
+ if (BuiltinName[22] != 'v')
+ break;
+ switch (BuiltinName[23]) {
+ default: break;
+ case 'a': // 2 strings to match.
+ switch (BuiltinName[24]) {
+ default: break;
+ case 'd': // 1 string to match.
+ if (memcmp(BuiltinName.data()+25, "dhs", 3))
+ break;
+ return Intrinsic::hexagon_A2_svaddhs; // "__builtin_HEXAGON_A2_svaddhs"
+ case 'v': // 1 string to match.
+ if (memcmp(BuiltinName.data()+25, "ghs", 3))
+ break;
+ return Intrinsic::hexagon_A2_svavghs; // "__builtin_HEXAGON_A2_svavghs"
+ }
+ break;
+ case 'n': // 1 string to match.
+ if (memcmp(BuiltinName.data()+24, "avgh", 4))
+ break;
+ return Intrinsic::hexagon_A2_svnavgh; // "__builtin_HEXAGON_A2_svnavgh"
+ case 's': // 1 string to match.
+ if (memcmp(BuiltinName.data()+24, "ubhs", 4))
+ break;
+ return Intrinsic::hexagon_A2_svsubhs; // "__builtin_HEXAGON_A2_svsubhs"
+ }
+ break;
+ case 'v': // 18 strings to match.
+ switch (BuiltinName[22]) {
+ default: break;
+ case 'a': // 7 strings to match.
+ switch (BuiltinName[23]) {
+ default: break;
+ case 'd': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+24, "du", 2))
+ break;
+ switch (BuiltinName[26]) {
+ default: break;
+ case 'b': // 1 string to match.
+ if (BuiltinName[27] != 's')
+ break;
+ return Intrinsic::hexagon_A2_vaddubs; // "__builtin_HEXAGON_A2_vaddubs"
+ case 'h': // 1 string to match.
+ if (BuiltinName[27] != 's')
+ break;
+ return Intrinsic::hexagon_A2_vadduhs; // "__builtin_HEXAGON_A2_vadduhs"
+ }
+ break;
+ case 'v': // 5 strings to match.
+ if (BuiltinName[24] != 'g')
+ break;
+ switch (BuiltinName[25]) {
+ default: break;
+ case 'h': // 1 string to match.
+ if (memcmp(BuiltinName.data()+26, "cr", 2))
+ break;
+ return Intrinsic::hexagon_A2_vavghcr; // "__builtin_HEXAGON_A2_vavghcr"
+ case 'u': // 3 strings to match.
+ switch (BuiltinName[26]) {
+ default: break;
+ case 'b': // 1 string to match.
+ if (BuiltinName[27] != 'r')
+ break;
+ return Intrinsic::hexagon_A2_vavgubr; // "__builtin_HEXAGON_A2_vavgubr"
+ case 'h': // 1 string to match.
+ if (BuiltinName[27] != 'r')
+ break;
+ return Intrinsic::hexagon_A2_vavguhr; // "__builtin_HEXAGON_A2_vavguhr"
+ case 'w': // 1 string to match.
+ if (BuiltinName[27] != 'r')
+ break;
+ return Intrinsic::hexagon_A2_vavguwr; // "__builtin_HEXAGON_A2_vavguwr"
+ }
+ break;
+ case 'w': // 1 string to match.
+ if (memcmp(BuiltinName.data()+26, "cr", 2))
+ break;
+ return Intrinsic::hexagon_A2_vavgwcr; // "__builtin_HEXAGON_A2_vavgwcr"
+ }
+ break;
+ }
+ break;
+ case 'c': // 5 strings to match.
+ if (memcmp(BuiltinName.data()+23, "mp", 2))
+ break;
+ switch (BuiltinName[25]) {
+ default: break;
+ case 'b': // 1 string to match.
+ if (memcmp(BuiltinName.data()+26, "eq", 2))
+ break;
+ return Intrinsic::hexagon_A2_vcmpbeq; // "__builtin_HEXAGON_A2_vcmpbeq"
+ case 'h': // 2 strings to match.
+ switch (BuiltinName[26]) {
+ default: break;
+ case 'e': // 1 string to match.
+ if (BuiltinName[27] != 'q')
+ break;
+ return Intrinsic::hexagon_A2_vcmpheq; // "__builtin_HEXAGON_A2_vcmpheq"
+ case 'g': // 1 string to match.
+ if (BuiltinName[27] != 't')
+ break;
+ return Intrinsic::hexagon_A2_vcmphgt; // "__builtin_HEXAGON_A2_vcmphgt"
+ }
+ break;
+ case 'w': // 2 strings to match.
+ switch (BuiltinName[26]) {
+ default: break;
+ case 'e': // 1 string to match.
+ if (BuiltinName[27] != 'q')
+ break;
+ return Intrinsic::hexagon_A2_vcmpweq; // "__builtin_HEXAGON_A2_vcmpweq"
+ case 'g': // 1 string to match.
+ if (BuiltinName[27] != 't')
+ break;
+ return Intrinsic::hexagon_A2_vcmpwgt; // "__builtin_HEXAGON_A2_vcmpwgt"
+ }
+ break;
+ }
+ break;
+ case 'n': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+23, "avg", 3))
+ break;
+ switch (BuiltinName[26]) {
+ default: break;
+ case 'h': // 1 string to match.
+ if (BuiltinName[27] != 'r')
+ break;
+ return Intrinsic::hexagon_A2_vnavghr; // "__builtin_HEXAGON_A2_vnavghr"
+ case 'w': // 1 string to match.
+ if (BuiltinName[27] != 'r')
+ break;
+ return Intrinsic::hexagon_A2_vnavgwr; // "__builtin_HEXAGON_A2_vnavgwr"
+ }
+ break;
+ case 'r': // 2 strings to match.
+ switch (BuiltinName[23]) {
+ default: break;
+ case 'a': // 1 string to match.
+ if (memcmp(BuiltinName.data()+24, "ddub", 4))
+ break;
+ return Intrinsic::hexagon_A2_vraddub; // "__builtin_HEXAGON_A2_vraddub"
+ case 's': // 1 string to match.
+ if (memcmp(BuiltinName.data()+24, "adub", 4))
+ break;
+ return Intrinsic::hexagon_A2_vrsadub; // "__builtin_HEXAGON_A2_vrsadub"
+ }
+ break;
+ case 's': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+23, "ubu", 3))
+ break;
+ switch (BuiltinName[26]) {
+ default: break;
+ case 'b': // 1 string to match.
+ if (BuiltinName[27] != 's')
+ break;
+ return Intrinsic::hexagon_A2_vsububs; // "__builtin_HEXAGON_A2_vsububs"
+ case 'h': // 1 string to match.
+ if (BuiltinName[27] != 's')
+ break;
+ return Intrinsic::hexagon_A2_vsubuhs; // "__builtin_HEXAGON_A2_vsubuhs"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case '4': // 13 strings to match.
+ if (BuiltinName[20] != '_')
+ break;
+ switch (BuiltinName[21]) {
+ default: break;
+ case 'c': // 6 strings to match.
+ if (memcmp(BuiltinName.data()+22, "mp", 2))
+ break;
+ switch (BuiltinName[24]) {
+ default: break;
+ case 'b': // 3 strings to match.
+ switch (BuiltinName[25]) {
+ default: break;
+ case 'e': // 1 string to match.
+ if (memcmp(BuiltinName.data()+26, "qi", 2))
+ break;
+ return Intrinsic::hexagon_A4_cmpbeqi; // "__builtin_HEXAGON_A4_cmpbeqi"
+ case 'g': // 2 strings to match.
+ if (BuiltinName[26] != 't')
+ break;
+ switch (BuiltinName[27]) {
+ default: break;
+ case 'i': // 1 string to match.
+ return Intrinsic::hexagon_A4_cmpbgti; // "__builtin_HEXAGON_A4_cmpbgti"
+ case 'u': // 1 string to match.
+ return Intrinsic::hexagon_A4_cmpbgtu; // "__builtin_HEXAGON_A4_cmpbgtu"
+ }
+ break;
+ }
+ break;
+ case 'h': // 3 strings to match.
+ switch (BuiltinName[25]) {
+ default: break;
+ case 'e': // 1 string to match.
+ if (memcmp(BuiltinName.data()+26, "qi", 2))
+ break;
+ return Intrinsic::hexagon_A4_cmpheqi; // "__builtin_HEXAGON_A4_cmpheqi"
+ case 'g': // 2 strings to match.
+ if (BuiltinName[26] != 't')
+ break;
+ switch (BuiltinName[27]) {
+ default: break;
+ case 'i': // 1 string to match.
+ return Intrinsic::hexagon_A4_cmphgti; // "__builtin_HEXAGON_A4_cmphgti"
+ case 'u': // 1 string to match.
+ return Intrinsic::hexagon_A4_cmphgtu; // "__builtin_HEXAGON_A4_cmphgtu"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 'r': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+22, "cmp", 3))
+ break;
+ switch (BuiltinName[25]) {
+ default: break;
+ case 'e': // 1 string to match.
+ if (memcmp(BuiltinName.data()+26, "qi", 2))
+ break;
+ return Intrinsic::hexagon_A4_rcmpeqi; // "__builtin_HEXAGON_A4_rcmpeqi"
+ case 'n': // 1 string to match.
+ if (memcmp(BuiltinName.data()+26, "eq", 2))
+ break;
+ return Intrinsic::hexagon_A4_rcmpneq; // "__builtin_HEXAGON_A4_rcmpneq"
+ }
+ break;
+ case 'v': // 5 strings to match.
+ switch (BuiltinName[22]) {
+ default: break;
+ case 'c': // 1 string to match.
+ if (memcmp(BuiltinName.data()+23, "mpbgt", 5))
+ break;
+ return Intrinsic::hexagon_A4_vcmpbgt; // "__builtin_HEXAGON_A4_vcmpbgt"
+ case 'r': // 4 strings to match.
+ if (BuiltinName[23] != 'm')
+ break;
+ switch (BuiltinName[24]) {
+ default: break;
+ case 'a': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+25, "xu", 2))
+ break;
+ switch (BuiltinName[27]) {
+ default: break;
+ case 'h': // 1 string to match.
+ return Intrinsic::hexagon_A4_vrmaxuh; // "__builtin_HEXAGON_A4_vrmaxuh"
+ case 'w': // 1 string to match.
+ return Intrinsic::hexagon_A4_vrmaxuw; // "__builtin_HEXAGON_A4_vrmaxuw"
+ }
+ break;
+ case 'i': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+25, "nu", 2))
+ break;
+ switch (BuiltinName[27]) {
+ default: break;
+ case 'h': // 1 string to match.
+ return Intrinsic::hexagon_A4_vrminuh; // "__builtin_HEXAGON_A4_vrminuh"
+ case 'w': // 1 string to match.
+ return Intrinsic::hexagon_A4_vrminuw; // "__builtin_HEXAGON_A4_vrminuw"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 'C': // 12 strings to match.
+ switch (BuiltinName[19]) {
+ default: break;
+ case '2': // 6 strings to match.
+ if (BuiltinName[20] != '_')
+ break;
+ switch (BuiltinName[21]) {
+ default: break;
+ case 'b': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+22, "its", 3))
+ break;
+ switch (BuiltinName[25]) {
+ default: break;
+ case 'c': // 1 string to match.
+ if (memcmp(BuiltinName.data()+26, "lr", 2))
+ break;
+ return Intrinsic::hexagon_C2_bitsclr; // "__builtin_HEXAGON_C2_bitsclr"
+ case 's': // 1 string to match.
+ if (memcmp(BuiltinName.data()+26, "et", 2))
+ break;
+ return Intrinsic::hexagon_C2_bitsset; // "__builtin_HEXAGON_C2_bitsset"
+ }
+ break;
+ case 'c': // 3 strings to match.
+ if (memcmp(BuiltinName.data()+22, "mpg", 3))
+ break;
+ switch (BuiltinName[25]) {
+ default: break;
+ case 'e': // 1 string to match.
+ if (memcmp(BuiltinName.data()+26, "ui", 2))
+ break;
+ return Intrinsic::hexagon_C2_cmpgeui; // "__builtin_HEXAGON_C2_cmpgeui"
+ case 't': // 2 strings to match.
+ if (BuiltinName[26] != 'u')
+ break;
+ switch (BuiltinName[27]) {
+ default: break;
+ case 'i': // 1 string to match.
+ return Intrinsic::hexagon_C2_cmpgtui; // "__builtin_HEXAGON_C2_cmpgtui"
+ case 'p': // 1 string to match.
+ return Intrinsic::hexagon_C2_cmpgtup; // "__builtin_HEXAGON_C2_cmpgtup"
+ }
+ break;
+ }
+ break;
+ case 'v': // 1 string to match.
+ if (memcmp(BuiltinName.data()+22, "itpack", 6))
+ break;
+ return Intrinsic::hexagon_C2_vitpack; // "__builtin_HEXAGON_C2_vitpack"
+ }
+ break;
+ case '4': // 6 strings to match.
+ if (BuiltinName[20] != '_')
+ break;
+ switch (BuiltinName[21]) {
+ default: break;
+ case 'a': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+22, "nd_", 3))
+ break;
+ switch (BuiltinName[25]) {
+ default: break;
+ case 'a': // 1 string to match.
+ if (memcmp(BuiltinName.data()+26, "nd", 2))
+ break;
+ return Intrinsic::hexagon_C4_and_and; // "__builtin_HEXAGON_C4_and_and"
+ case 'o': // 1 string to match.
+ if (memcmp(BuiltinName.data()+26, "rn", 2))
+ break;
+ return Intrinsic::hexagon_C4_and_orn; // "__builtin_HEXAGON_C4_and_orn"
+ }
+ break;
+ case 'c': // 3 strings to match.
+ if (memcmp(BuiltinName.data()+22, "mp", 2))
+ break;
+ switch (BuiltinName[24]) {
+ default: break;
+ case 'l': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+25, "te", 2))
+ break;
+ switch (BuiltinName[27]) {
+ default: break;
+ case 'i': // 1 string to match.
+ return Intrinsic::hexagon_C4_cmpltei; // "__builtin_HEXAGON_C4_cmpltei"
+ case 'u': // 1 string to match.
+ return Intrinsic::hexagon_C4_cmplteu; // "__builtin_HEXAGON_C4_cmplteu"
+ }
+ break;
+ case 'n': // 1 string to match.
+ if (memcmp(BuiltinName.data()+25, "eqi", 3))
+ break;
+ return Intrinsic::hexagon_C4_cmpneqi; // "__builtin_HEXAGON_C4_cmpneqi"
+ }
+ break;
+ case 'o': // 1 string to match.
+ if (memcmp(BuiltinName.data()+22, "r_andn", 6))
+ break;
+ return Intrinsic::hexagon_C4_or_andn; // "__builtin_HEXAGON_C4_or_andn"
+ }
+ break;
+ }
+ break;
+ case 'F': // 14 strings to match.
+ if (memcmp(BuiltinName.data()+19, "2_", 2))
+ break;
+ switch (BuiltinName[21]) {
+ default: break;
+ case 'd': // 7 strings to match.
+ if (BuiltinName[22] != 'f')
+ break;
+ switch (BuiltinName[23]) {
+ default: break;
+ case 'c': // 5 strings to match.
+ switch (BuiltinName[24]) {
+ default: break;
+ case 'l': // 1 string to match.
+ if (memcmp(BuiltinName.data()+25, "ass", 3))
+ break;
+ return Intrinsic::hexagon_F2_dfclass; // "__builtin_HEXAGON_F2_dfclass"
+ case 'm': // 4 strings to match.
+ if (BuiltinName[25] != 'p')
+ break;
+ switch (BuiltinName[26]) {
+ default: break;
+ case 'e': // 1 string to match.
+ if (BuiltinName[27] != 'q')
+ break;
+ return Intrinsic::hexagon_F2_dfcmpeq; // "__builtin_HEXAGON_F2_dfcmpeq"
+ case 'g': // 2 strings to match.
+ switch (BuiltinName[27]) {
+ default: break;
+ case 'e': // 1 string to match.
+ return Intrinsic::hexagon_F2_dfcmpge; // "__builtin_HEXAGON_F2_dfcmpge"
+ case 't': // 1 string to match.
+ return Intrinsic::hexagon_F2_dfcmpgt; // "__builtin_HEXAGON_F2_dfcmpgt"
+ }
+ break;
+ case 'u': // 1 string to match.
+ if (BuiltinName[27] != 'o')
+ break;
+ return Intrinsic::hexagon_F2_dfcmpuo; // "__builtin_HEXAGON_F2_dfcmpuo"
+ }
+ break;
+ }
+ break;
+ case 'i': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+24, "mm_", 3))
+ break;
+ switch (BuiltinName[27]) {
+ default: break;
+ case 'n': // 1 string to match.
+ return Intrinsic::hexagon_F2_dfimm_n; // "__builtin_HEXAGON_F2_dfimm_n"
+ case 'p': // 1 string to match.
+ return Intrinsic::hexagon_F2_dfimm_p; // "__builtin_HEXAGON_F2_dfimm_p"
+ }
+ break;
+ }
+ break;
+ case 's': // 7 strings to match.
+ if (BuiltinName[22] != 'f')
+ break;
+ switch (BuiltinName[23]) {
+ default: break;
+ case 'c': // 5 strings to match.
+ switch (BuiltinName[24]) {
+ default: break;
+ case 'l': // 1 string to match.
+ if (memcmp(BuiltinName.data()+25, "ass", 3))
+ break;
+ return Intrinsic::hexagon_F2_sfclass; // "__builtin_HEXAGON_F2_sfclass"
+ case 'm': // 4 strings to match.
+ if (BuiltinName[25] != 'p')
+ break;
+ switch (BuiltinName[26]) {
+ default: break;
+ case 'e': // 1 string to match.
+ if (BuiltinName[27] != 'q')
+ break;
+ return Intrinsic::hexagon_F2_sfcmpeq; // "__builtin_HEXAGON_F2_sfcmpeq"
+ case 'g': // 2 strings to match.
+ switch (BuiltinName[27]) {
+ default: break;
+ case 'e': // 1 string to match.
+ return Intrinsic::hexagon_F2_sfcmpge; // "__builtin_HEXAGON_F2_sfcmpge"
+ case 't': // 1 string to match.
+ return Intrinsic::hexagon_F2_sfcmpgt; // "__builtin_HEXAGON_F2_sfcmpgt"
+ }
+ break;
+ case 'u': // 1 string to match.
+ if (BuiltinName[27] != 'o')
+ break;
+ return Intrinsic::hexagon_F2_sfcmpuo; // "__builtin_HEXAGON_F2_sfcmpuo"
+ }
+ break;
+ }
+ break;
+ case 'i': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+24, "mm_", 3))
+ break;
+ switch (BuiltinName[27]) {
+ default: break;
+ case 'n': // 1 string to match.
+ return Intrinsic::hexagon_F2_sfimm_n; // "__builtin_HEXAGON_F2_sfimm_n"
+ case 'p': // 1 string to match.
+ return Intrinsic::hexagon_F2_sfimm_p; // "__builtin_HEXAGON_F2_sfimm_p"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 'M': // 11 strings to match.
+ switch (BuiltinName[19]) {
+ default: break;
+ case '2': // 3 strings to match.
+ if (BuiltinName[20] != '_')
+ break;
+ switch (BuiltinName[21]) {
+ default: break;
+ case 'm': // 1 string to match.
+ if (memcmp(BuiltinName.data()+22, "pyu_up", 6))
+ break;
+ return Intrinsic::hexagon_M2_mpyu_up; // "__builtin_HEXAGON_M2_mpyu_up"
+ case 'v': // 2 strings to match.
+ switch (BuiltinName[22]) {
+ default: break;
+ case 'm': // 1 string to match.
+ if (memcmp(BuiltinName.data()+23, "ac2es", 5))
+ break;
+ return Intrinsic::hexagon_M2_vmac2es; // "__builtin_HEXAGON_M2_vmac2es"
+ case 'r': // 1 string to match.
+ if (memcmp(BuiltinName.data()+23, "adduh", 5))
+ break;
+ return Intrinsic::hexagon_M2_vradduh; // "__builtin_HEXAGON_M2_vradduh"
+ }
+ break;
+ }
+ break;
+ case '4': // 4 strings to match.
+ if (BuiltinName[20] != '_')
+ break;
+ switch (BuiltinName[21]) {
+ default: break;
+ case 'a': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+22, "nd_", 3))
+ break;
+ switch (BuiltinName[25]) {
+ default: break;
+ case 'a': // 1 string to match.
+ if (memcmp(BuiltinName.data()+26, "nd", 2))
+ break;
+ return Intrinsic::hexagon_M4_and_and; // "__builtin_HEXAGON_M4_and_and"
+ case 'x': // 1 string to match.
+ if (memcmp(BuiltinName.data()+26, "or", 2))
+ break;
+ return Intrinsic::hexagon_M4_and_xor; // "__builtin_HEXAGON_M4_and_xor"
+ }
+ break;
+ case 'o': // 1 string to match.
+ if (memcmp(BuiltinName.data()+22, "r_andn", 6))
+ break;
+ return Intrinsic::hexagon_M4_or_andn; // "__builtin_HEXAGON_M4_or_andn"
+ case 'x': // 1 string to match.
+ if (memcmp(BuiltinName.data()+22, "or_and", 6))
+ break;
+ return Intrinsic::hexagon_M4_xor_and; // "__builtin_HEXAGON_M4_xor_and"
+ }
+ break;
+ case '5': // 4 strings to match.
+ if (memcmp(BuiltinName.data()+20, "_vm", 3))
+ break;
+ switch (BuiltinName[23]) {
+ default: break;
+ case 'a': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+24, "cb", 2))
+ break;
+ switch (BuiltinName[26]) {
+ default: break;
+ case 's': // 1 string to match.
+ if (BuiltinName[27] != 'u')
+ break;
+ return Intrinsic::hexagon_M5_vmacbsu; // "__builtin_HEXAGON_M5_vmacbsu"
+ case 'u': // 1 string to match.
+ if (BuiltinName[27] != 'u')
+ break;
+ return Intrinsic::hexagon_M5_vmacbuu; // "__builtin_HEXAGON_M5_vmacbuu"
+ }
+ break;
+ case 'p': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+24, "yb", 2))
+ break;
+ switch (BuiltinName[26]) {
+ default: break;
+ case 's': // 1 string to match.
+ if (BuiltinName[27] != 'u')
+ break;
+ return Intrinsic::hexagon_M5_vmpybsu; // "__builtin_HEXAGON_M5_vmpybsu"
+ case 'u': // 1 string to match.
+ if (BuiltinName[27] != 'u')
+ break;
+ return Intrinsic::hexagon_M5_vmpybuu; // "__builtin_HEXAGON_M5_vmpybuu"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 'S': // 30 strings to match.
+ switch (BuiltinName[19]) {
+ default: break;
+ case '2': // 25 strings to match.
+ if (BuiltinName[20] != '_')
+ break;
+ switch (BuiltinName[21]) {
+ default: break;
+ case 'a': // 8 strings to match.
+ if (BuiltinName[22] != 's')
+ break;
+ switch (BuiltinName[23]) {
+ default: break;
+ case 'l': // 4 strings to match.
+ if (BuiltinName[24] != '_')
+ break;
+ switch (BuiltinName[25]) {
+ default: break;
+ case 'i': // 2 strings to match.
+ if (BuiltinName[26] != '_')
+ break;
+ switch (BuiltinName[27]) {
+ default: break;
+ case 'p': // 1 string to match.
+ return Intrinsic::hexagon_S2_asl_i_p; // "__builtin_HEXAGON_S2_asl_i_p"
+ case 'r': // 1 string to match.
+ return Intrinsic::hexagon_S2_asl_i_r; // "__builtin_HEXAGON_S2_asl_i_r"
+ }
+ break;
+ case 'r': // 2 strings to match.
+ if (BuiltinName[26] != '_')
+ break;
+ switch (BuiltinName[27]) {
+ default: break;
+ case 'p': // 1 string to match.
+ return Intrinsic::hexagon_S2_asl_r_p; // "__builtin_HEXAGON_S2_asl_r_p"
+ case 'r': // 1 string to match.
+ return Intrinsic::hexagon_S2_asl_r_r; // "__builtin_HEXAGON_S2_asl_r_r"
+ }
+ break;
+ }
+ break;
+ case 'r': // 4 strings to match.
+ if (BuiltinName[24] != '_')
+ break;
+ switch (BuiltinName[25]) {
+ default: break;
+ case 'i': // 2 strings to match.
+ if (BuiltinName[26] != '_')
+ break;
+ switch (BuiltinName[27]) {
+ default: break;
+ case 'p': // 1 string to match.
+ return Intrinsic::hexagon_S2_asr_i_p; // "__builtin_HEXAGON_S2_asr_i_p"
+ case 'r': // 1 string to match.
+ return Intrinsic::hexagon_S2_asr_i_r; // "__builtin_HEXAGON_S2_asr_i_r"
+ }
+ break;
+ case 'r': // 2 strings to match.
+ if (BuiltinName[26] != '_')
+ break;
+ switch (BuiltinName[27]) {
+ default: break;
+ case 'p': // 1 string to match.
+ return Intrinsic::hexagon_S2_asr_r_p; // "__builtin_HEXAGON_S2_asr_r_p"
+ case 'r': // 1 string to match.
+ return Intrinsic::hexagon_S2_asr_r_r; // "__builtin_HEXAGON_S2_asr_r_r"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 'c': // 1 string to match.
+ if (memcmp(BuiltinName.data()+22, "lbnorm", 6))
+ break;
+ return Intrinsic::hexagon_S2_clbnorm; // "__builtin_HEXAGON_S2_clbnorm"
+ case 'i': // 1 string to match.
+ if (memcmp(BuiltinName.data()+22, "nsertp", 6))
+ break;
+ return Intrinsic::hexagon_S2_insertp; // "__builtin_HEXAGON_S2_insertp"
+ case 'l': // 6 strings to match.
+ if (BuiltinName[22] != 's')
+ break;
+ switch (BuiltinName[23]) {
+ default: break;
+ case 'l': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+24, "_r_", 3))
+ break;
+ switch (BuiltinName[27]) {
+ default: break;
+ case 'p': // 1 string to match.
+ return Intrinsic::hexagon_S2_lsl_r_p; // "__builtin_HEXAGON_S2_lsl_r_p"
+ case 'r': // 1 string to match.
+ return Intrinsic::hexagon_S2_lsl_r_r; // "__builtin_HEXAGON_S2_lsl_r_r"
+ }
+ break;
+ case 'r': // 4 strings to match.
+ if (BuiltinName[24] != '_')
+ break;
+ switch (BuiltinName[25]) {
+ default: break;
+ case 'i': // 2 strings to match.
+ if (BuiltinName[26] != '_')
+ break;
+ switch (BuiltinName[27]) {
+ default: break;
+ case 'p': // 1 string to match.
+ return Intrinsic::hexagon_S2_lsr_i_p; // "__builtin_HEXAGON_S2_lsr_i_p"
+ case 'r': // 1 string to match.
+ return Intrinsic::hexagon_S2_lsr_i_r; // "__builtin_HEXAGON_S2_lsr_i_r"
+ }
+ break;
+ case 'r': // 2 strings to match.
+ if (BuiltinName[26] != '_')
+ break;
+ switch (BuiltinName[27]) {
+ default: break;
+ case 'p': // 1 string to match.
+ return Intrinsic::hexagon_S2_lsr_r_p; // "__builtin_HEXAGON_S2_lsr_r_p"
+ case 'r': // 1 string to match.
+ return Intrinsic::hexagon_S2_lsr_r_r; // "__builtin_HEXAGON_S2_lsr_r_r"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 'p': // 1 string to match.
+ if (memcmp(BuiltinName.data()+22, "arityp", 6))
+ break;
+ return Intrinsic::hexagon_S2_parityp; // "__builtin_HEXAGON_S2_parityp"
+ case 's': // 5 strings to match.
+ switch (BuiltinName[22]) {
+ default: break;
+ case 'h': // 4 strings to match.
+ if (memcmp(BuiltinName.data()+23, "uff", 3))
+ break;
+ switch (BuiltinName[26]) {
+ default: break;
+ case 'e': // 2 strings to match.
+ switch (BuiltinName[27]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::hexagon_S2_shuffeb; // "__builtin_HEXAGON_S2_shuffeb"
+ case 'h': // 1 string to match.
+ return Intrinsic::hexagon_S2_shuffeh; // "__builtin_HEXAGON_S2_shuffeh"
+ }
+ break;
+ case 'o': // 2 strings to match.
+ switch (BuiltinName[27]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::hexagon_S2_shuffob; // "__builtin_HEXAGON_S2_shuffob"
+ case 'h': // 1 string to match.
+ return Intrinsic::hexagon_S2_shuffoh; // "__builtin_HEXAGON_S2_shuffoh"
+ }
+ break;
+ }
+ break;
+ case 'v': // 1 string to match.
+ if (memcmp(BuiltinName.data()+23, "sathb", 5))
+ break;
+ return Intrinsic::hexagon_S2_svsathb; // "__builtin_HEXAGON_S2_svsathb"
+ }
+ break;
+ case 'v': // 3 strings to match.
+ switch (BuiltinName[22]) {
+ default: break;
+ case 'r': // 1 string to match.
+ if (memcmp(BuiltinName.data()+23, "cnegh", 5))
+ break;
+ return Intrinsic::hexagon_S2_vrcnegh; // "__builtin_HEXAGON_S2_vrcnegh"
+ case 's': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+23, "at", 2))
+ break;
+ switch (BuiltinName[25]) {
+ default: break;
+ case 'h': // 1 string to match.
+ if (memcmp(BuiltinName.data()+26, "ub", 2))
+ break;
+ return Intrinsic::hexagon_S2_vsathub; // "__builtin_HEXAGON_S2_vsathub"
+ case 'w': // 1 string to match.
+ if (memcmp(BuiltinName.data()+26, "uh", 2))
+ break;
+ return Intrinsic::hexagon_S2_vsatwuh; // "__builtin_HEXAGON_S2_vsatwuh"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case '4': // 5 strings to match.
+ if (BuiltinName[20] != '_')
+ break;
+ switch (BuiltinName[21]) {
+ default: break;
+ case 'a': // 1 string to match.
+ if (memcmp(BuiltinName.data()+22, "ddaddi", 6))
+ break;
+ return Intrinsic::hexagon_S4_addaddi; // "__builtin_HEXAGON_S4_addaddi"
+ case 'c': // 1 string to match.
+ if (memcmp(BuiltinName.data()+22, "lbaddi", 6))
+ break;
+ return Intrinsic::hexagon_S4_clbaddi; // "__builtin_HEXAGON_S4_clbaddi"
+ case 'e': // 1 string to match.
+ if (memcmp(BuiltinName.data()+22, "xtract", 6))
+ break;
+ return Intrinsic::hexagon_S4_extract; // "__builtin_HEXAGON_S4_extract"
+ case 'o': // 1 string to match.
+ if (memcmp(BuiltinName.data()+22, "r_andi", 6))
+ break;
+ return Intrinsic::hexagon_S4_or_andi; // "__builtin_HEXAGON_S4_or_andi"
+ case 's': // 1 string to match.
+ if (memcmp(BuiltinName.data()+22, "ubaddi", 6))
+ break;
+ return Intrinsic::hexagon_S4_subaddi; // "__builtin_HEXAGON_S4_subaddi"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 29: // 103 strings to match.
+ if (memcmp(BuiltinName.data()+0, "__builtin_HEXAGON_", 18))
+ break;
+ switch (BuiltinName[18]) {
+ default: break;
+ case 'A': // 26 strings to match.
+ switch (BuiltinName[19]) {
+ default: break;
+ case '2': // 11 strings to match.
+ if (BuiltinName[20] != '_')
+ break;
+ switch (BuiltinName[21]) {
+ default: break;
+ case 'c': // 1 string to match.
+ if (memcmp(BuiltinName.data()+22, "ombinew", 7))
+ break;
+ return Intrinsic::hexagon_A2_combinew; // "__builtin_HEXAGON_A2_combinew"
+ case 'r': // 1 string to match.
+ if (memcmp(BuiltinName.data()+22, "oundsat", 7))
+ break;
+ return Intrinsic::hexagon_A2_roundsat; // "__builtin_HEXAGON_A2_roundsat"
+ case 's': // 2 strings to match.
+ if (BuiltinName[22] != 'v')
+ break;
+ switch (BuiltinName[23]) {
+ default: break;
+ case 'a': // 1 string to match.
+ if (memcmp(BuiltinName.data()+24, "dduhs", 5))
+ break;
+ return Intrinsic::hexagon_A2_svadduhs; // "__builtin_HEXAGON_A2_svadduhs"
+ case 's': // 1 string to match.
+ if (memcmp(BuiltinName.data()+24, "ubuhs", 5))
+ break;
+ return Intrinsic::hexagon_A2_svsubuhs; // "__builtin_HEXAGON_A2_svsubuhs"
+ }
+ break;
+ case 'v': // 7 strings to match.
+ switch (BuiltinName[22]) {
+ default: break;
+ case 'a': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+23, "bs", 2))
+ break;
+ switch (BuiltinName[25]) {
+ default: break;
+ case 'h': // 1 string to match.
+ if (memcmp(BuiltinName.data()+26, "sat", 3))
+ break;
+ return Intrinsic::hexagon_A2_vabshsat; // "__builtin_HEXAGON_A2_vabshsat"
+ case 'w': // 1 string to match.
+ if (memcmp(BuiltinName.data()+26, "sat", 3))
+ break;
+ return Intrinsic::hexagon_A2_vabswsat; // "__builtin_HEXAGON_A2_vabswsat"
+ }
+ break;
+ case 'c': // 3 strings to match.
+ if (memcmp(BuiltinName.data()+23, "mp", 2))
+ break;
+ switch (BuiltinName[25]) {
+ default: break;
+ case 'b': // 1 string to match.
+ if (memcmp(BuiltinName.data()+26, "gtu", 3))
+ break;
+ return Intrinsic::hexagon_A2_vcmpbgtu; // "__builtin_HEXAGON_A2_vcmpbgtu"
+ case 'h': // 1 string to match.
+ if (memcmp(BuiltinName.data()+26, "gtu", 3))
+ break;
+ return Intrinsic::hexagon_A2_vcmphgtu; // "__builtin_HEXAGON_A2_vcmphgtu"
+ case 'w': // 1 string to match.
+ if (memcmp(BuiltinName.data()+26, "gtu", 3))
+ break;
+ return Intrinsic::hexagon_A2_vcmpwgtu; // "__builtin_HEXAGON_A2_vcmpwgtu"
+ }
+ break;
+ case 'n': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+23, "avg", 3))
+ break;
+ switch (BuiltinName[26]) {
+ default: break;
+ case 'h': // 1 string to match.
+ if (memcmp(BuiltinName.data()+27, "cr", 2))
+ break;
+ return Intrinsic::hexagon_A2_vnavghcr; // "__builtin_HEXAGON_A2_vnavghcr"
+ case 'w': // 1 string to match.
+ if (memcmp(BuiltinName.data()+27, "cr", 2))
+ break;
+ return Intrinsic::hexagon_A2_vnavgwcr; // "__builtin_HEXAGON_A2_vnavgwcr"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case '4': // 14 strings to match.
+ if (BuiltinName[20] != '_')
+ break;
+ switch (BuiltinName[21]) {
+ default: break;
+ case 'b': // 1 string to match.
+ if (memcmp(BuiltinName.data()+22, "itsplit", 7))
+ break;
+ return Intrinsic::hexagon_A4_bitsplit; // "__builtin_HEXAGON_A4_bitsplit"
+ case 'c': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+22, "mp", 2))
+ break;
+ switch (BuiltinName[24]) {
+ default: break;
+ case 'b': // 1 string to match.
+ if (memcmp(BuiltinName.data()+25, "gtui", 4))
+ break;
+ return Intrinsic::hexagon_A4_cmpbgtui; // "__builtin_HEXAGON_A4_cmpbgtui"
+ case 'h': // 1 string to match.
+ if (memcmp(BuiltinName.data()+25, "gtui", 4))
+ break;
+ return Intrinsic::hexagon_A4_cmphgtui; // "__builtin_HEXAGON_A4_cmphgtui"
+ }
+ break;
+ case 'm': // 1 string to match.
+ if (memcmp(BuiltinName.data()+22, "odwrapu", 7))
+ break;
+ return Intrinsic::hexagon_A4_modwrapu; // "__builtin_HEXAGON_A4_modwrapu"
+ case 'r': // 3 strings to match.
+ switch (BuiltinName[22]) {
+ default: break;
+ case 'c': // 1 string to match.
+ if (memcmp(BuiltinName.data()+23, "mpneqi", 6))
+ break;
+ return Intrinsic::hexagon_A4_rcmpneqi; // "__builtin_HEXAGON_A4_rcmpneqi"
+ case 'o': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+23, "und_r", 5))
+ break;
+ switch (BuiltinName[28]) {
+ default: break;
+ case 'i': // 1 string to match.
+ return Intrinsic::hexagon_A4_round_ri; // "__builtin_HEXAGON_A4_round_ri"
+ case 'r': // 1 string to match.
+ return Intrinsic::hexagon_A4_round_rr; // "__builtin_HEXAGON_A4_round_rr"
+ }
+ break;
+ }
+ break;
+ case 't': // 1 string to match.
+ if (memcmp(BuiltinName.data()+22, "lbmatch", 7))
+ break;
+ return Intrinsic::hexagon_A4_tlbmatch; // "__builtin_HEXAGON_A4_tlbmatch"
+ case 'v': // 6 strings to match.
+ if (memcmp(BuiltinName.data()+22, "cmp", 3))
+ break;
+ switch (BuiltinName[25]) {
+ default: break;
+ case 'b': // 2 strings to match.
+ switch (BuiltinName[26]) {
+ default: break;
+ case 'e': // 1 string to match.
+ if (memcmp(BuiltinName.data()+27, "qi", 2))
+ break;
+ return Intrinsic::hexagon_A4_vcmpbeqi; // "__builtin_HEXAGON_A4_vcmpbeqi"
+ case 'g': // 1 string to match.
+ if (memcmp(BuiltinName.data()+27, "ti", 2))
+ break;
+ return Intrinsic::hexagon_A4_vcmpbgti; // "__builtin_HEXAGON_A4_vcmpbgti"
+ }
+ break;
+ case 'h': // 2 strings to match.
+ switch (BuiltinName[26]) {
+ default: break;
+ case 'e': // 1 string to match.
+ if (memcmp(BuiltinName.data()+27, "qi", 2))
+ break;
+ return Intrinsic::hexagon_A4_vcmpheqi; // "__builtin_HEXAGON_A4_vcmpheqi"
+ case 'g': // 1 string to match.
+ if (memcmp(BuiltinName.data()+27, "ti", 2))
+ break;
+ return Intrinsic::hexagon_A4_vcmphgti; // "__builtin_HEXAGON_A4_vcmphgti"
+ }
+ break;
+ case 'w': // 2 strings to match.
+ switch (BuiltinName[26]) {
+ default: break;
+ case 'e': // 1 string to match.
+ if (memcmp(BuiltinName.data()+27, "qi", 2))
+ break;
+ return Intrinsic::hexagon_A4_vcmpweqi; // "__builtin_HEXAGON_A4_vcmpweqi"
+ case 'g': // 1 string to match.
+ if (memcmp(BuiltinName.data()+27, "ti", 2))
+ break;
+ return Intrinsic::hexagon_A4_vcmpwgti; // "__builtin_HEXAGON_A4_vcmpwgti"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case '5': // 1 string to match.
+ if (memcmp(BuiltinName.data()+20, "_vaddhubs", 9))
+ break;
+ return Intrinsic::hexagon_A5_vaddhubs; // "__builtin_HEXAGON_A5_vaddhubs"
+ }
+ break;
+ case 'C': // 5 strings to match.
+ switch (BuiltinName[19]) {
+ default: break;
+ case '2': // 1 string to match.
+ if (memcmp(BuiltinName.data()+20, "_bitsclri", 9))
+ break;
+ return Intrinsic::hexagon_C2_bitsclri; // "__builtin_HEXAGON_C2_bitsclri"
+ case '4': // 4 strings to match.
+ if (BuiltinName[20] != '_')
+ break;
+ switch (BuiltinName[21]) {
+ default: break;
+ case 'a': // 1 string to match.
+ if (memcmp(BuiltinName.data()+22, "nd_andn", 7))
+ break;
+ return Intrinsic::hexagon_C4_and_andn; // "__builtin_HEXAGON_C4_and_andn"
+ case 'c': // 1 string to match.
+ if (memcmp(BuiltinName.data()+22, "mplteui", 7))
+ break;
+ return Intrinsic::hexagon_C4_cmplteui; // "__builtin_HEXAGON_C4_cmplteui"
+ case 'n': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+22, "bits", 4))
+ break;
+ switch (BuiltinName[26]) {
+ default: break;
+ case 'c': // 1 string to match.
+ if (memcmp(BuiltinName.data()+27, "lr", 2))
+ break;
+ return Intrinsic::hexagon_C4_nbitsclr; // "__builtin_HEXAGON_C4_nbitsclr"
+ case 's': // 1 string to match.
+ if (memcmp(BuiltinName.data()+27, "et", 2))
+ break;
+ return Intrinsic::hexagon_C4_nbitsset; // "__builtin_HEXAGON_C4_nbitsset"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 'F': // 8 strings to match.
+ if (memcmp(BuiltinName.data()+19, "2_", 2))
+ break;
+ switch (BuiltinName[21]) {
+ default: break;
+ case 'd': // 4 strings to match.
+ if (memcmp(BuiltinName.data()+22, "ff", 2))
+ break;
+ switch (BuiltinName[24]) {
+ default: break;
+ case 'i': // 3 strings to match.
+ if (memcmp(BuiltinName.data()+25, "xup", 3))
+ break;
+ switch (BuiltinName[28]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::hexagon_F2_dffixupd; // "__builtin_HEXAGON_F2_dffixupd"
+ case 'n': // 1 string to match.
+ return Intrinsic::hexagon_F2_dffixupn; // "__builtin_HEXAGON_F2_dffixupn"
+ case 'r': // 1 string to match.
+ return Intrinsic::hexagon_F2_dffixupr; // "__builtin_HEXAGON_F2_dffixupr"
+ }
+ break;
+ case 'm': // 1 string to match.
+ if (memcmp(BuiltinName.data()+25, "a_sc", 4))
+ break;
+ return Intrinsic::hexagon_F2_dffma_sc; // "__builtin_HEXAGON_F2_dffma_sc"
+ }
+ break;
+ case 's': // 4 strings to match.
+ if (memcmp(BuiltinName.data()+22, "ff", 2))
+ break;
+ switch (BuiltinName[24]) {
+ default: break;
+ case 'i': // 3 strings to match.
+ if (memcmp(BuiltinName.data()+25, "xup", 3))
+ break;
+ switch (BuiltinName[28]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::hexagon_F2_sffixupd; // "__builtin_HEXAGON_F2_sffixupd"
+ case 'n': // 1 string to match.
+ return Intrinsic::hexagon_F2_sffixupn; // "__builtin_HEXAGON_F2_sffixupn"
+ case 'r': // 1 string to match.
+ return Intrinsic::hexagon_F2_sffixupr; // "__builtin_HEXAGON_F2_sffixupr"
+ }
+ break;
+ case 'm': // 1 string to match.
+ if (memcmp(BuiltinName.data()+25, "a_sc", 4))
+ break;
+ return Intrinsic::hexagon_F2_sffma_sc; // "__builtin_HEXAGON_F2_sffma_sc"
+ }
+ break;
+ }
+ break;
+ case 'M': // 29 strings to match.
+ switch (BuiltinName[19]) {
+ default: break;
+ case '2': // 18 strings to match.
+ if (BuiltinName[20] != '_')
+ break;
+ switch (BuiltinName[21]) {
+ default: break;
+ case 'c': // 10 strings to match.
+ switch (BuiltinName[22]) {
+ default: break;
+ case 'm': // 8 strings to match.
+ switch (BuiltinName[23]) {
+ default: break;
+ case 'a': // 4 strings to match.
+ if (BuiltinName[24] != 'c')
+ break;
+ switch (BuiltinName[25]) {
+ default: break;
+ case 'i': // 1 string to match.
+ if (memcmp(BuiltinName.data()+26, "_s0", 3))
+ break;
+ return Intrinsic::hexagon_M2_cmaci_s0; // "__builtin_HEXAGON_M2_cmaci_s0"
+ case 'r': // 1 string to match.
+ if (memcmp(BuiltinName.data()+26, "_s0", 3))
+ break;
+ return Intrinsic::hexagon_M2_cmacr_s0; // "__builtin_HEXAGON_M2_cmacr_s0"
+ case 's': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+26, "_s", 2))
+ break;
+ switch (BuiltinName[28]) {
+ default: break;
+ case '0': // 1 string to match.
+ return Intrinsic::hexagon_M2_cmacs_s0; // "__builtin_HEXAGON_M2_cmacs_s0"
+ case '1': // 1 string to match.
+ return Intrinsic::hexagon_M2_cmacs_s1; // "__builtin_HEXAGON_M2_cmacs_s1"
+ }
+ break;
+ }
+ break;
+ case 'p': // 4 strings to match.
+ if (BuiltinName[24] != 'y')
+ break;
+ switch (BuiltinName[25]) {
+ default: break;
+ case 'i': // 1 string to match.
+ if (memcmp(BuiltinName.data()+26, "_s0", 3))
+ break;
+ return Intrinsic::hexagon_M2_cmpyi_s0; // "__builtin_HEXAGON_M2_cmpyi_s0"
+ case 'r': // 1 string to match.
+ if (memcmp(BuiltinName.data()+26, "_s0", 3))
+ break;
+ return Intrinsic::hexagon_M2_cmpyr_s0; // "__builtin_HEXAGON_M2_cmpyr_s0"
+ case 's': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+26, "_s", 2))
+ break;
+ switch (BuiltinName[28]) {
+ default: break;
+ case '0': // 1 string to match.
+ return Intrinsic::hexagon_M2_cmpys_s0; // "__builtin_HEXAGON_M2_cmpys_s0"
+ case '1': // 1 string to match.
+ return Intrinsic::hexagon_M2_cmpys_s1; // "__builtin_HEXAGON_M2_cmpys_s1"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 'n': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+23, "acs_s", 5))
+ break;
+ switch (BuiltinName[28]) {
+ default: break;
+ case '0': // 1 string to match.
+ return Intrinsic::hexagon_M2_cnacs_s0; // "__builtin_HEXAGON_M2_cnacs_s0"
+ case '1': // 1 string to match.
+ return Intrinsic::hexagon_M2_cnacs_s1; // "__builtin_HEXAGON_M2_cnacs_s1"
+ }
+ break;
+ }
+ break;
+ case 'm': // 5 strings to match.
+ switch (BuiltinName[22]) {
+ default: break;
+ case 'm': // 4 strings to match.
+ if (memcmp(BuiltinName.data()+23, "py", 2))
+ break;
+ switch (BuiltinName[25]) {
+ default: break;
+ case 'h': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+26, "_s", 2))
+ break;
+ switch (BuiltinName[28]) {
+ default: break;
+ case '0': // 1 string to match.
+ return Intrinsic::hexagon_M2_mmpyh_s0; // "__builtin_HEXAGON_M2_mmpyh_s0"
+ case '1': // 1 string to match.
+ return Intrinsic::hexagon_M2_mmpyh_s1; // "__builtin_HEXAGON_M2_mmpyh_s1"
+ }
+ break;
+ case 'l': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+26, "_s", 2))
+ break;
+ switch (BuiltinName[28]) {
+ default: break;
+ case '0': // 1 string to match.
+ return Intrinsic::hexagon_M2_mmpyl_s0; // "__builtin_HEXAGON_M2_mmpyl_s0"
+ case '1': // 1 string to match.
+ return Intrinsic::hexagon_M2_mmpyl_s1; // "__builtin_HEXAGON_M2_mmpyl_s1"
+ }
+ break;
+ }
+ break;
+ case 'p': // 1 string to match.
+ if (memcmp(BuiltinName.data()+23, "ysu_up", 6))
+ break;
+ return Intrinsic::hexagon_M2_mpysu_up; // "__builtin_HEXAGON_M2_mpysu_up"
+ }
+ break;
+ case 'v': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+22, "rm", 2))
+ break;
+ switch (BuiltinName[24]) {
+ default: break;
+ case 'a': // 1 string to match.
+ if (memcmp(BuiltinName.data()+25, "c_s0", 4))
+ break;
+ return Intrinsic::hexagon_M2_vrmac_s0; // "__builtin_HEXAGON_M2_vrmac_s0"
+ case 'p': // 1 string to match.
+ if (memcmp(BuiltinName.data()+25, "y_s0", 4))
+ break;
+ return Intrinsic::hexagon_M2_vrmpy_s0; // "__builtin_HEXAGON_M2_vrmpy_s0"
+ }
+ break;
+ case 'x': // 1 string to match.
+ if (memcmp(BuiltinName.data()+22, "or_xacc", 7))
+ break;
+ return Intrinsic::hexagon_M2_xor_xacc; // "__builtin_HEXAGON_M2_xor_xacc"
+ }
+ break;
+ case '4': // 5 strings to match.
+ if (BuiltinName[20] != '_')
+ break;
+ switch (BuiltinName[21]) {
+ default: break;
+ case 'a': // 1 string to match.
+ if (memcmp(BuiltinName.data()+22, "nd_andn", 7))
+ break;
+ return Intrinsic::hexagon_M4_and_andn; // "__builtin_HEXAGON_M4_and_andn"
+ case 'c': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+22, "mpy", 3))
+ break;
+ switch (BuiltinName[25]) {
+ default: break;
+ case 'i': // 1 string to match.
+ if (memcmp(BuiltinName.data()+26, "_wh", 3))
+ break;
+ return Intrinsic::hexagon_M4_cmpyi_wh; // "__builtin_HEXAGON_M4_cmpyi_wh"
+ case 'r': // 1 string to match.
+ if (memcmp(BuiltinName.data()+26, "_wh", 3))
+ break;
+ return Intrinsic::hexagon_M4_cmpyr_wh; // "__builtin_HEXAGON_M4_cmpyr_wh"
+ }
+ break;
+ case 'x': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+22, "or_", 3))
+ break;
+ switch (BuiltinName[25]) {
+ default: break;
+ case 'a': // 1 string to match.
+ if (memcmp(BuiltinName.data()+26, "ndn", 3))
+ break;
+ return Intrinsic::hexagon_M4_xor_andn; // "__builtin_HEXAGON_M4_xor_andn"
+ case 'x': // 1 string to match.
+ if (memcmp(BuiltinName.data()+26, "acc", 3))
+ break;
+ return Intrinsic::hexagon_M4_xor_xacc; // "__builtin_HEXAGON_M4_xor_xacc"
+ }
+ break;
+ }
+ break;
+ case '5': // 6 strings to match.
+ if (memcmp(BuiltinName.data()+20, "_v", 2))
+ break;
+ switch (BuiltinName[22]) {
+ default: break;
+ case 'd': // 2 strings to match.
+ if (BuiltinName[23] != 'm')
+ break;
+ switch (BuiltinName[24]) {
+ default: break;
+ case 'a': // 1 string to match.
+ if (memcmp(BuiltinName.data()+25, "cbsu", 4))
+ break;
+ return Intrinsic::hexagon_M5_vdmacbsu; // "__builtin_HEXAGON_M5_vdmacbsu"
+ case 'p': // 1 string to match.
+ if (memcmp(BuiltinName.data()+25, "ybsu", 4))
+ break;
+ return Intrinsic::hexagon_M5_vdmpybsu; // "__builtin_HEXAGON_M5_vdmpybsu"
+ }
+ break;
+ case 'r': // 4 strings to match.
+ if (BuiltinName[23] != 'm')
+ break;
+ switch (BuiltinName[24]) {
+ default: break;
+ case 'a': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+25, "cb", 2))
+ break;
+ switch (BuiltinName[27]) {
+ default: break;
+ case 's': // 1 string to match.
+ if (BuiltinName[28] != 'u')
+ break;
+ return Intrinsic::hexagon_M5_vrmacbsu; // "__builtin_HEXAGON_M5_vrmacbsu"
+ case 'u': // 1 string to match.
+ if (BuiltinName[28] != 'u')
+ break;
+ return Intrinsic::hexagon_M5_vrmacbuu; // "__builtin_HEXAGON_M5_vrmacbuu"
+ }
+ break;
+ case 'p': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+25, "yb", 2))
+ break;
+ switch (BuiltinName[27]) {
+ default: break;
+ case 's': // 1 string to match.
+ if (BuiltinName[28] != 'u')
+ break;
+ return Intrinsic::hexagon_M5_vrmpybsu; // "__builtin_HEXAGON_M5_vrmpybsu"
+ case 'u': // 1 string to match.
+ if (BuiltinName[28] != 'u')
+ break;
+ return Intrinsic::hexagon_M5_vrmpybuu; // "__builtin_HEXAGON_M5_vrmpybuu"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 'S': // 35 strings to match.
+ switch (BuiltinName[19]) {
+ default: break;
+ case '2': // 31 strings to match.
+ if (BuiltinName[20] != '_')
+ break;
+ switch (BuiltinName[21]) {
+ default: break;
+ case 'a': // 8 strings to match.
+ if (BuiltinName[22] != 's')
+ break;
+ switch (BuiltinName[23]) {
+ default: break;
+ case 'l': // 4 strings to match.
+ if (BuiltinName[24] != '_')
+ break;
+ switch (BuiltinName[25]) {
+ default: break;
+ case 'i': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+26, "_v", 2))
+ break;
+ switch (BuiltinName[28]) {
+ default: break;
+ case 'h': // 1 string to match.
+ return Intrinsic::hexagon_S2_asl_i_vh; // "__builtin_HEXAGON_S2_asl_i_vh"
+ case 'w': // 1 string to match.
+ return Intrinsic::hexagon_S2_asl_i_vw; // "__builtin_HEXAGON_S2_asl_i_vw"
+ }
+ break;
+ case 'r': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+26, "_v", 2))
+ break;
+ switch (BuiltinName[28]) {
+ default: break;
+ case 'h': // 1 string to match.
+ return Intrinsic::hexagon_S2_asl_r_vh; // "__builtin_HEXAGON_S2_asl_r_vh"
+ case 'w': // 1 string to match.
+ return Intrinsic::hexagon_S2_asl_r_vw; // "__builtin_HEXAGON_S2_asl_r_vw"
+ }
+ break;
+ }
+ break;
+ case 'r': // 4 strings to match.
+ if (BuiltinName[24] != '_')
+ break;
+ switch (BuiltinName[25]) {
+ default: break;
+ case 'i': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+26, "_v", 2))
+ break;
+ switch (BuiltinName[28]) {
+ default: break;
+ case 'h': // 1 string to match.
+ return Intrinsic::hexagon_S2_asr_i_vh; // "__builtin_HEXAGON_S2_asr_i_vh"
+ case 'w': // 1 string to match.
+ return Intrinsic::hexagon_S2_asr_i_vw; // "__builtin_HEXAGON_S2_asr_i_vw"
+ }
+ break;
+ case 'r': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+26, "_v", 2))
+ break;
+ switch (BuiltinName[28]) {
+ default: break;
+ case 'h': // 1 string to match.
+ return Intrinsic::hexagon_S2_asr_r_vh; // "__builtin_HEXAGON_S2_asr_r_vh"
+ case 'w': // 1 string to match.
+ return Intrinsic::hexagon_S2_asr_r_vw; // "__builtin_HEXAGON_S2_asr_r_vw"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 'c': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+22, "lrbit_", 6))
+ break;
+ switch (BuiltinName[28]) {
+ default: break;
+ case 'i': // 1 string to match.
+ return Intrinsic::hexagon_S2_clrbit_i; // "__builtin_HEXAGON_S2_clrbit_i"
+ case 'r': // 1 string to match.
+ return Intrinsic::hexagon_S2_clrbit_r; // "__builtin_HEXAGON_S2_clrbit_r"
+ }
+ break;
+ case 'e': // 1 string to match.
+ if (memcmp(BuiltinName.data()+22, "xtractu", 7))
+ break;
+ return Intrinsic::hexagon_S2_extractu; // "__builtin_HEXAGON_S2_extractu"
+ case 'l': // 6 strings to match.
+ if (BuiltinName[22] != 's')
+ break;
+ switch (BuiltinName[23]) {
+ default: break;
+ case 'l': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+24, "_r_v", 4))
+ break;
+ switch (BuiltinName[28]) {
+ default: break;
+ case 'h': // 1 string to match.
+ return Intrinsic::hexagon_S2_lsl_r_vh; // "__builtin_HEXAGON_S2_lsl_r_vh"
+ case 'w': // 1 string to match.
+ return Intrinsic::hexagon_S2_lsl_r_vw; // "__builtin_HEXAGON_S2_lsl_r_vw"
+ }
+ break;
+ case 'r': // 4 strings to match.
+ if (BuiltinName[24] != '_')
+ break;
+ switch (BuiltinName[25]) {
+ default: break;
+ case 'i': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+26, "_v", 2))
+ break;
+ switch (BuiltinName[28]) {
+ default: break;
+ case 'h': // 1 string to match.
+ return Intrinsic::hexagon_S2_lsr_i_vh; // "__builtin_HEXAGON_S2_lsr_i_vh"
+ case 'w': // 1 string to match.
+ return Intrinsic::hexagon_S2_lsr_i_vw; // "__builtin_HEXAGON_S2_lsr_i_vw"
+ }
+ break;
+ case 'r': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+26, "_v", 2))
+ break;
+ switch (BuiltinName[28]) {
+ default: break;
+ case 'h': // 1 string to match.
+ return Intrinsic::hexagon_S2_lsr_r_vh; // "__builtin_HEXAGON_S2_lsr_r_vh"
+ case 'w': // 1 string to match.
+ return Intrinsic::hexagon_S2_lsr_r_vw; // "__builtin_HEXAGON_S2_lsr_r_vw"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 's': // 3 strings to match.
+ switch (BuiltinName[22]) {
+ default: break;
+ case 'e': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+23, "tbit_", 5))
+ break;
+ switch (BuiltinName[28]) {
+ default: break;
+ case 'i': // 1 string to match.
+ return Intrinsic::hexagon_S2_setbit_i; // "__builtin_HEXAGON_S2_setbit_i"
+ case 'r': // 1 string to match.
+ return Intrinsic::hexagon_S2_setbit_r; // "__builtin_HEXAGON_S2_setbit_r"
+ }
+ break;
+ case 'v': // 1 string to match.
+ if (memcmp(BuiltinName.data()+23, "sathub", 6))
+ break;
+ return Intrinsic::hexagon_S2_svsathub; // "__builtin_HEXAGON_S2_svsathub"
+ }
+ break;
+ case 't': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+22, "stbit_", 6))
+ break;
+ switch (BuiltinName[28]) {
+ default: break;
+ case 'i': // 1 string to match.
+ return Intrinsic::hexagon_S2_tstbit_i; // "__builtin_HEXAGON_S2_tstbit_i"
+ case 'r': // 1 string to match.
+ return Intrinsic::hexagon_S2_tstbit_r; // "__builtin_HEXAGON_S2_tstbit_r"
+ }
+ break;
+ case 'v': // 9 strings to match.
+ switch (BuiltinName[22]) {
+ default: break;
+ case 'a': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+23, "lign", 4))
+ break;
+ switch (BuiltinName[27]) {
+ default: break;
+ case 'i': // 1 string to match.
+ if (BuiltinName[28] != 'b')
+ break;
+ return Intrinsic::hexagon_S2_valignib; // "__builtin_HEXAGON_S2_valignib"
+ case 'r': // 1 string to match.
+ if (BuiltinName[28] != 'b')
+ break;
+ return Intrinsic::hexagon_S2_valignrb; // "__builtin_HEXAGON_S2_valignrb"
+ }
+ break;
+ case 'c': // 1 string to match.
+ if (memcmp(BuiltinName.data()+23, "rotate", 6))
+ break;
+ return Intrinsic::hexagon_S2_vcrotate; // "__builtin_HEXAGON_S2_vcrotate"
+ case 's': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+23, "platr", 5))
+ break;
+ switch (BuiltinName[28]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::hexagon_S2_vsplatrb; // "__builtin_HEXAGON_S2_vsplatrb"
+ case 'h': // 1 string to match.
+ return Intrinsic::hexagon_S2_vsplatrh; // "__builtin_HEXAGON_S2_vsplatrh"
+ }
+ break;
+ case 't': // 4 strings to match.
+ if (memcmp(BuiltinName.data()+23, "run", 3))
+ break;
+ switch (BuiltinName[26]) {
+ default: break;
+ case 'e': // 2 strings to match.
+ switch (BuiltinName[27]) {
+ default: break;
+ case 'h': // 1 string to match.
+ if (BuiltinName[28] != 'b')
+ break;
+ return Intrinsic::hexagon_S2_vtrunehb; // "__builtin_HEXAGON_S2_vtrunehb"
+ case 'w': // 1 string to match.
+ if (BuiltinName[28] != 'h')
+ break;
+ return Intrinsic::hexagon_S2_vtrunewh; // "__builtin_HEXAGON_S2_vtrunewh"
+ }
+ break;
+ case 'o': // 2 strings to match.
+ switch (BuiltinName[27]) {
+ default: break;
+ case 'h': // 1 string to match.
+ if (BuiltinName[28] != 'b')
+ break;
+ return Intrinsic::hexagon_S2_vtrunohb; // "__builtin_HEXAGON_S2_vtrunohb"
+ case 'w': // 1 string to match.
+ if (BuiltinName[28] != 'h')
+ break;
+ return Intrinsic::hexagon_S2_vtrunowh; // "__builtin_HEXAGON_S2_vtrunowh"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case '4': // 4 strings to match.
+ if (BuiltinName[20] != '_')
+ break;
+ switch (BuiltinName[21]) {
+ default: break;
+ case 'c': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+22, "lbp", 3))
+ break;
+ switch (BuiltinName[25]) {
+ default: break;
+ case 'a': // 1 string to match.
+ if (memcmp(BuiltinName.data()+26, "ddi", 3))
+ break;
+ return Intrinsic::hexagon_S4_clbpaddi; // "__builtin_HEXAGON_S4_clbpaddi"
+ case 'n': // 1 string to match.
+ if (memcmp(BuiltinName.data()+26, "orm", 3))
+ break;
+ return Intrinsic::hexagon_S4_clbpnorm; // "__builtin_HEXAGON_S4_clbpnorm"
+ }
+ break;
+ case 'e': // 1 string to match.
+ if (memcmp(BuiltinName.data()+22, "xtractp", 7))
+ break;
+ return Intrinsic::hexagon_S4_extractp; // "__builtin_HEXAGON_S4_extractp"
+ case 'o': // 1 string to match.
+ if (memcmp(BuiltinName.data()+22, "r_andix", 7))
+ break;
+ return Intrinsic::hexagon_S4_or_andix; // "__builtin_HEXAGON_S4_or_andix"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 30: // 81 strings to match.
+ if (memcmp(BuiltinName.data()+0, "__builtin_HEXAGON_", 18))
+ break;
+ switch (BuiltinName[18]) {
+ default: break;
+ case 'A': // 11 strings to match.
+ switch (BuiltinName[19]) {
+ default: break;
+ case '2': // 3 strings to match.
+ if (BuiltinName[20] != '_')
+ break;
+ switch (BuiltinName[21]) {
+ default: break;
+ case 'c': // 1 string to match.
+ if (memcmp(BuiltinName.data()+22, "ombineii", 8))
+ break;
+ return Intrinsic::hexagon_A2_combineii; // "__builtin_HEXAGON_A2_combineii"
+ case 'v': // 2 strings to match.
+ switch (BuiltinName[22]) {
+ default: break;
+ case 'a': // 1 string to match.
+ if (memcmp(BuiltinName.data()+23, "ddb_map", 7))
+ break;
+ return Intrinsic::hexagon_A2_vaddb_map; // "__builtin_HEXAGON_A2_vaddb_map"
+ case 's': // 1 string to match.
+ if (memcmp(BuiltinName.data()+23, "ubb_map", 7))
+ break;
+ return Intrinsic::hexagon_A2_vsubb_map; // "__builtin_HEXAGON_A2_vsubb_map"
+ }
+ break;
+ }
+ break;
+ case '4': // 8 strings to match.
+ if (BuiltinName[20] != '_')
+ break;
+ switch (BuiltinName[21]) {
+ default: break;
+ case 'b': // 1 string to match.
+ if (memcmp(BuiltinName.data()+22, "itspliti", 8))
+ break;
+ return Intrinsic::hexagon_A4_bitspliti; // "__builtin_HEXAGON_A4_bitspliti"
+ case 'c': // 4 strings to match.
+ switch (BuiltinName[22]) {
+ default: break;
+ case 'o': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+23, "mbine", 5))
+ break;
+ switch (BuiltinName[28]) {
+ default: break;
+ case 'i': // 1 string to match.
+ if (BuiltinName[29] != 'r')
+ break;
+ return Intrinsic::hexagon_A4_combineir; // "__builtin_HEXAGON_A4_combineir"
+ case 'r': // 1 string to match.
+ if (BuiltinName[29] != 'i')
+ break;
+ return Intrinsic::hexagon_A4_combineri; // "__builtin_HEXAGON_A4_combineri"
+ }
+ break;
+ case 'r': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+23, "ound_r", 6))
+ break;
+ switch (BuiltinName[29]) {
+ default: break;
+ case 'i': // 1 string to match.
+ return Intrinsic::hexagon_A4_cround_ri; // "__builtin_HEXAGON_A4_cround_ri"
+ case 'r': // 1 string to match.
+ return Intrinsic::hexagon_A4_cround_rr; // "__builtin_HEXAGON_A4_cround_rr"
+ }
+ break;
+ }
+ break;
+ case 'v': // 3 strings to match.
+ if (memcmp(BuiltinName.data()+22, "cmp", 3))
+ break;
+ switch (BuiltinName[25]) {
+ default: break;
+ case 'b': // 1 string to match.
+ if (memcmp(BuiltinName.data()+26, "gtui", 4))
+ break;
+ return Intrinsic::hexagon_A4_vcmpbgtui; // "__builtin_HEXAGON_A4_vcmpbgtui"
+ case 'h': // 1 string to match.
+ if (memcmp(BuiltinName.data()+26, "gtui", 4))
+ break;
+ return Intrinsic::hexagon_A4_vcmphgtui; // "__builtin_HEXAGON_A4_vcmphgtui"
+ case 'w': // 1 string to match.
+ if (memcmp(BuiltinName.data()+26, "gtui", 4))
+ break;
+ return Intrinsic::hexagon_A4_vcmpwgtui; // "__builtin_HEXAGON_A4_vcmpwgtui"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 'C': // 2 strings to match.
+ switch (BuiltinName[19]) {
+ default: break;
+ case '2': // 1 string to match.
+ if (memcmp(BuiltinName.data()+20, "_pxfer_map", 10))
+ break;
+ return Intrinsic::hexagon_C2_pxfer_map; // "__builtin_HEXAGON_C2_pxfer_map"
+ case '4': // 1 string to match.
+ if (memcmp(BuiltinName.data()+20, "_nbitsclri", 10))
+ break;
+ return Intrinsic::hexagon_C4_nbitsclri; // "__builtin_HEXAGON_C4_nbitsclri"
+ }
+ break;
+ case 'F': // 12 strings to match.
+ if (memcmp(BuiltinName.data()+19, "2_", 2))
+ break;
+ switch (BuiltinName[21]) {
+ default: break;
+ case 'c': // 8 strings to match.
+ if (memcmp(BuiltinName.data()+22, "onv_", 4))
+ break;
+ switch (BuiltinName[26]) {
+ default: break;
+ case 'd': // 4 strings to match.
+ switch (BuiltinName[27]) {
+ default: break;
+ case '2': // 2 strings to match.
+ switch (BuiltinName[28]) {
+ default: break;
+ case 'd': // 1 string to match.
+ if (BuiltinName[29] != 'f')
+ break;
+ return Intrinsic::hexagon_F2_conv_d2df; // "__builtin_HEXAGON_F2_conv_d2df"
+ case 's': // 1 string to match.
+ if (BuiltinName[29] != 'f')
+ break;
+ return Intrinsic::hexagon_F2_conv_d2sf; // "__builtin_HEXAGON_F2_conv_d2sf"
+ }
+ break;
+ case 'f': // 2 strings to match.
+ if (BuiltinName[28] != '2')
+ break;
+ switch (BuiltinName[29]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::hexagon_F2_conv_df2d; // "__builtin_HEXAGON_F2_conv_df2d"
+ case 'w': // 1 string to match.
+ return Intrinsic::hexagon_F2_conv_df2w; // "__builtin_HEXAGON_F2_conv_df2w"
+ }
+ break;
+ }
+ break;
+ case 's': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+27, "f2", 2))
+ break;
+ switch (BuiltinName[29]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::hexagon_F2_conv_sf2d; // "__builtin_HEXAGON_F2_conv_sf2d"
+ case 'w': // 1 string to match.
+ return Intrinsic::hexagon_F2_conv_sf2w; // "__builtin_HEXAGON_F2_conv_sf2w"
+ }
+ break;
+ case 'w': // 2 strings to match.
+ if (BuiltinName[27] != '2')
+ break;
+ switch (BuiltinName[28]) {
+ default: break;
+ case 'd': // 1 string to match.
+ if (BuiltinName[29] != 'f')
+ break;
+ return Intrinsic::hexagon_F2_conv_w2df; // "__builtin_HEXAGON_F2_conv_w2df"
+ case 's': // 1 string to match.
+ if (BuiltinName[29] != 'f')
+ break;
+ return Intrinsic::hexagon_F2_conv_w2sf; // "__builtin_HEXAGON_F2_conv_w2sf"
+ }
+ break;
+ }
+ break;
+ case 'd': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+22, "ffm", 3))
+ break;
+ switch (BuiltinName[25]) {
+ default: break;
+ case 'a': // 1 string to match.
+ if (memcmp(BuiltinName.data()+26, "_lib", 4))
+ break;
+ return Intrinsic::hexagon_F2_dffma_lib; // "__builtin_HEXAGON_F2_dffma_lib"
+ case 's': // 1 string to match.
+ if (memcmp(BuiltinName.data()+26, "_lib", 4))
+ break;
+ return Intrinsic::hexagon_F2_dffms_lib; // "__builtin_HEXAGON_F2_dffms_lib"
+ }
+ break;
+ case 's': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+22, "ffm", 3))
+ break;
+ switch (BuiltinName[25]) {
+ default: break;
+ case 'a': // 1 string to match.
+ if (memcmp(BuiltinName.data()+26, "_lib", 4))
+ break;
+ return Intrinsic::hexagon_F2_sffma_lib; // "__builtin_HEXAGON_F2_sffma_lib"
+ case 's': // 1 string to match.
+ if (memcmp(BuiltinName.data()+26, "_lib", 4))
+ break;
+ return Intrinsic::hexagon_F2_sffms_lib; // "__builtin_HEXAGON_F2_sffms_lib"
+ }
+ break;
+ }
+ break;
+ case 'M': // 44 strings to match.
+ switch (BuiltinName[19]) {
+ default: break;
+ case '2': // 41 strings to match.
+ if (BuiltinName[20] != '_')
+ break;
+ switch (BuiltinName[21]) {
+ default: break;
+ case 'c': // 8 strings to match.
+ switch (BuiltinName[22]) {
+ default: break;
+ case 'm': // 6 strings to match.
+ switch (BuiltinName[23]) {
+ default: break;
+ case 'a': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+24, "csc_s", 5))
+ break;
+ switch (BuiltinName[29]) {
+ default: break;
+ case '0': // 1 string to match.
+ return Intrinsic::hexagon_M2_cmacsc_s0; // "__builtin_HEXAGON_M2_cmacsc_s0"
+ case '1': // 1 string to match.
+ return Intrinsic::hexagon_M2_cmacsc_s1; // "__builtin_HEXAGON_M2_cmacsc_s1"
+ }
+ break;
+ case 'p': // 4 strings to match.
+ if (BuiltinName[24] != 'y')
+ break;
+ switch (BuiltinName[25]) {
+ default: break;
+ case 'r': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+26, "s_s", 3))
+ break;
+ switch (BuiltinName[29]) {
+ default: break;
+ case '0': // 1 string to match.
+ return Intrinsic::hexagon_M2_cmpyrs_s0; // "__builtin_HEXAGON_M2_cmpyrs_s0"
+ case '1': // 1 string to match.
+ return Intrinsic::hexagon_M2_cmpyrs_s1; // "__builtin_HEXAGON_M2_cmpyrs_s1"
+ }
+ break;
+ case 's': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+26, "c_s", 3))
+ break;
+ switch (BuiltinName[29]) {
+ default: break;
+ case '0': // 1 string to match.
+ return Intrinsic::hexagon_M2_cmpysc_s0; // "__builtin_HEXAGON_M2_cmpysc_s0"
+ case '1': // 1 string to match.
+ return Intrinsic::hexagon_M2_cmpysc_s1; // "__builtin_HEXAGON_M2_cmpysc_s1"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 'n': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+23, "acsc_s", 6))
+ break;
+ switch (BuiltinName[29]) {
+ default: break;
+ case '0': // 1 string to match.
+ return Intrinsic::hexagon_M2_cnacsc_s0; // "__builtin_HEXAGON_M2_cnacsc_s0"
+ case '1': // 1 string to match.
+ return Intrinsic::hexagon_M2_cnacsc_s1; // "__builtin_HEXAGON_M2_cnacsc_s1"
+ }
+ break;
+ }
+ break;
+ case 'h': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+22, "mmpy", 4))
+ break;
+ switch (BuiltinName[26]) {
+ default: break;
+ case 'h': // 1 string to match.
+ if (memcmp(BuiltinName.data()+27, "_s1", 3))
+ break;
+ return Intrinsic::hexagon_M2_hmmpyh_s1; // "__builtin_HEXAGON_M2_hmmpyh_s1"
+ case 'l': // 1 string to match.
+ if (memcmp(BuiltinName.data()+27, "_s1", 3))
+ break;
+ return Intrinsic::hexagon_M2_hmmpyl_s1; // "__builtin_HEXAGON_M2_hmmpyl_s1"
+ }
+ break;
+ case 'm': // 21 strings to match.
+ switch (BuiltinName[22]) {
+ default: break;
+ case 'm': // 12 strings to match.
+ switch (BuiltinName[23]) {
+ default: break;
+ case 'a': // 4 strings to match.
+ if (BuiltinName[24] != 'c')
+ break;
+ switch (BuiltinName[25]) {
+ default: break;
+ case 'h': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+26, "s_s", 3))
+ break;
+ switch (BuiltinName[29]) {
+ default: break;
+ case '0': // 1 string to match.
+ return Intrinsic::hexagon_M2_mmachs_s0; // "__builtin_HEXAGON_M2_mmachs_s0"
+ case '1': // 1 string to match.
+ return Intrinsic::hexagon_M2_mmachs_s1; // "__builtin_HEXAGON_M2_mmachs_s1"
+ }
+ break;
+ case 'l': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+26, "s_s", 3))
+ break;
+ switch (BuiltinName[29]) {
+ default: break;
+ case '0': // 1 string to match.
+ return Intrinsic::hexagon_M2_mmacls_s0; // "__builtin_HEXAGON_M2_mmacls_s0"
+ case '1': // 1 string to match.
+ return Intrinsic::hexagon_M2_mmacls_s1; // "__builtin_HEXAGON_M2_mmacls_s1"
+ }
+ break;
+ }
+ break;
+ case 'p': // 8 strings to match.
+ if (BuiltinName[24] != 'y')
+ break;
+ switch (BuiltinName[25]) {
+ default: break;
+ case 'h': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+26, "_rs", 3))
+ break;
+ switch (BuiltinName[29]) {
+ default: break;
+ case '0': // 1 string to match.
+ return Intrinsic::hexagon_M2_mmpyh_rs0; // "__builtin_HEXAGON_M2_mmpyh_rs0"
+ case '1': // 1 string to match.
+ return Intrinsic::hexagon_M2_mmpyh_rs1; // "__builtin_HEXAGON_M2_mmpyh_rs1"
+ }
+ break;
+ case 'l': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+26, "_rs", 3))
+ break;
+ switch (BuiltinName[29]) {
+ default: break;
+ case '0': // 1 string to match.
+ return Intrinsic::hexagon_M2_mmpyl_rs0; // "__builtin_HEXAGON_M2_mmpyl_rs0"
+ case '1': // 1 string to match.
+ return Intrinsic::hexagon_M2_mmpyl_rs1; // "__builtin_HEXAGON_M2_mmpyl_rs1"
+ }
+ break;
+ case 'u': // 4 strings to match.
+ switch (BuiltinName[26]) {
+ default: break;
+ case 'h': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+27, "_s", 2))
+ break;
+ switch (BuiltinName[29]) {
+ default: break;
+ case '0': // 1 string to match.
+ return Intrinsic::hexagon_M2_mmpyuh_s0; // "__builtin_HEXAGON_M2_mmpyuh_s0"
+ case '1': // 1 string to match.
+ return Intrinsic::hexagon_M2_mmpyuh_s1; // "__builtin_HEXAGON_M2_mmpyuh_s1"
+ }
+ break;
+ case 'l': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+27, "_s", 2))
+ break;
+ switch (BuiltinName[29]) {
+ default: break;
+ case '0': // 1 string to match.
+ return Intrinsic::hexagon_M2_mmpyul_s0; // "__builtin_HEXAGON_M2_mmpyul_s0"
+ case '1': // 1 string to match.
+ return Intrinsic::hexagon_M2_mmpyul_s1; // "__builtin_HEXAGON_M2_mmpyul_s1"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 'p': // 9 strings to match.
+ if (memcmp(BuiltinName.data()+23, "y_", 2))
+ break;
+ switch (BuiltinName[25]) {
+ default: break;
+ case 'h': // 4 strings to match.
+ switch (BuiltinName[26]) {
+ default: break;
+ case 'h': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+27, "_s", 2))
+ break;
+ switch (BuiltinName[29]) {
+ default: break;
+ case '0': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpy_hh_s0; // "__builtin_HEXAGON_M2_mpy_hh_s0"
+ case '1': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpy_hh_s1; // "__builtin_HEXAGON_M2_mpy_hh_s1"
+ }
+ break;
+ case 'l': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+27, "_s", 2))
+ break;
+ switch (BuiltinName[29]) {
+ default: break;
+ case '0': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpy_hl_s0; // "__builtin_HEXAGON_M2_mpy_hl_s0"
+ case '1': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpy_hl_s1; // "__builtin_HEXAGON_M2_mpy_hl_s1"
+ }
+ break;
+ }
+ break;
+ case 'l': // 4 strings to match.
+ switch (BuiltinName[26]) {
+ default: break;
+ case 'h': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+27, "_s", 2))
+ break;
+ switch (BuiltinName[29]) {
+ default: break;
+ case '0': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpy_lh_s0; // "__builtin_HEXAGON_M2_mpy_lh_s0"
+ case '1': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpy_lh_s1; // "__builtin_HEXAGON_M2_mpy_lh_s1"
+ }
+ break;
+ case 'l': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+27, "_s", 2))
+ break;
+ switch (BuiltinName[29]) {
+ default: break;
+ case '0': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpy_ll_s0; // "__builtin_HEXAGON_M2_mpy_ll_s0"
+ case '1': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpy_ll_s1; // "__builtin_HEXAGON_M2_mpy_ll_s1"
+ }
+ break;
+ }
+ break;
+ case 'u': // 1 string to match.
+ if (memcmp(BuiltinName.data()+26, "p_s1", 4))
+ break;
+ return Intrinsic::hexagon_M2_mpy_up_s1; // "__builtin_HEXAGON_M2_mpy_up_s1"
+ }
+ break;
+ }
+ break;
+ case 'v': // 10 strings to match.
+ switch (BuiltinName[22]) {
+ default: break;
+ case 'a': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+23, "bsdiff", 6))
+ break;
+ switch (BuiltinName[29]) {
+ default: break;
+ case 'h': // 1 string to match.
+ return Intrinsic::hexagon_M2_vabsdiffh; // "__builtin_HEXAGON_M2_vabsdiffh"
+ case 'w': // 1 string to match.
+ return Intrinsic::hexagon_M2_vabsdiffw; // "__builtin_HEXAGON_M2_vabsdiffw"
+ }
+ break;
+ case 'd': // 4 strings to match.
+ if (BuiltinName[23] != 'm')
+ break;
+ switch (BuiltinName[24]) {
+ default: break;
+ case 'a': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+25, "cs_s", 4))
+ break;
+ switch (BuiltinName[29]) {
+ default: break;
+ case '0': // 1 string to match.
+ return Intrinsic::hexagon_M2_vdmacs_s0; // "__builtin_HEXAGON_M2_vdmacs_s0"
+ case '1': // 1 string to match.
+ return Intrinsic::hexagon_M2_vdmacs_s1; // "__builtin_HEXAGON_M2_vdmacs_s1"
+ }
+ break;
+ case 'p': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+25, "ys_s", 4))
+ break;
+ switch (BuiltinName[29]) {
+ default: break;
+ case '0': // 1 string to match.
+ return Intrinsic::hexagon_M2_vdmpys_s0; // "__builtin_HEXAGON_M2_vdmpys_s0"
+ case '1': // 1 string to match.
+ return Intrinsic::hexagon_M2_vdmpys_s1; // "__builtin_HEXAGON_M2_vdmpys_s1"
+ }
+ break;
+ }
+ break;
+ case 'm': // 4 strings to match.
+ switch (BuiltinName[23]) {
+ default: break;
+ case 'a': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+24, "c2s_s", 5))
+ break;
+ switch (BuiltinName[29]) {
+ default: break;
+ case '0': // 1 string to match.
+ return Intrinsic::hexagon_M2_vmac2s_s0; // "__builtin_HEXAGON_M2_vmac2s_s0"
+ case '1': // 1 string to match.
+ return Intrinsic::hexagon_M2_vmac2s_s1; // "__builtin_HEXAGON_M2_vmac2s_s1"
+ }
+ break;
+ case 'p': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+24, "y2s_s", 5))
+ break;
+ switch (BuiltinName[29]) {
+ default: break;
+ case '0': // 1 string to match.
+ return Intrinsic::hexagon_M2_vmpy2s_s0; // "__builtin_HEXAGON_M2_vmpy2s_s0"
+ case '1': // 1 string to match.
+ return Intrinsic::hexagon_M2_vmpy2s_s1; // "__builtin_HEXAGON_M2_vmpy2s_s1"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case '4': // 3 strings to match.
+ if (BuiltinName[20] != '_')
+ break;
+ switch (BuiltinName[21]) {
+ default: break;
+ case 'c': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+22, "mpy", 3))
+ break;
+ switch (BuiltinName[25]) {
+ default: break;
+ case 'i': // 1 string to match.
+ if (memcmp(BuiltinName.data()+26, "_whc", 4))
+ break;
+ return Intrinsic::hexagon_M4_cmpyi_whc; // "__builtin_HEXAGON_M4_cmpyi_whc"
+ case 'r': // 1 string to match.
+ if (memcmp(BuiltinName.data()+26, "_whc", 4))
+ break;
+ return Intrinsic::hexagon_M4_cmpyr_whc; // "__builtin_HEXAGON_M4_cmpyr_whc"
+ }
+ break;
+ case 'p': // 1 string to match.
+ if (memcmp(BuiltinName.data()+22, "mpyw_acc", 8))
+ break;
+ return Intrinsic::hexagon_M4_pmpyw_acc; // "__builtin_HEXAGON_M4_pmpyw_acc"
+ }
+ break;
+ }
+ break;
+ case 'S': // 12 strings to match.
+ switch (BuiltinName[19]) {
+ default: break;
+ case '2': // 4 strings to match.
+ if (BuiltinName[20] != '_')
+ break;
+ switch (BuiltinName[21]) {
+ default: break;
+ case 'e': // 1 string to match.
+ if (memcmp(BuiltinName.data()+22, "xtractup", 8))
+ break;
+ return Intrinsic::hexagon_S2_extractup; // "__builtin_HEXAGON_S2_extractup"
+ case 'i': // 1 string to match.
+ if (memcmp(BuiltinName.data()+22, "nsert_rp", 8))
+ break;
+ return Intrinsic::hexagon_S2_insert_rp; // "__builtin_HEXAGON_S2_insert_rp"
+ case 'v': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+22, "splice", 6))
+ break;
+ switch (BuiltinName[28]) {
+ default: break;
+ case 'i': // 1 string to match.
+ if (BuiltinName[29] != 'b')
+ break;
+ return Intrinsic::hexagon_S2_vspliceib; // "__builtin_HEXAGON_S2_vspliceib"
+ case 'r': // 1 string to match.
+ if (BuiltinName[29] != 'b')
+ break;
+ return Intrinsic::hexagon_S2_vsplicerb; // "__builtin_HEXAGON_S2_vsplicerb"
+ }
+ break;
+ }
+ break;
+ case '4': // 7 strings to match.
+ if (BuiltinName[20] != '_')
+ break;
+ switch (BuiltinName[21]) {
+ default: break;
+ case 'n': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+22, "tstbit_", 7))
+ break;
+ switch (BuiltinName[29]) {
+ default: break;
+ case 'i': // 1 string to match.
+ return Intrinsic::hexagon_S4_ntstbit_i; // "__builtin_HEXAGON_S4_ntstbit_i"
+ case 'r': // 1 string to match.
+ return Intrinsic::hexagon_S4_ntstbit_r; // "__builtin_HEXAGON_S4_ntstbit_r"
+ }
+ break;
+ case 'v': // 5 strings to match.
+ switch (BuiltinName[22]) {
+ default: break;
+ case 'r': // 1 string to match.
+ if (memcmp(BuiltinName.data()+23, "crotate", 7))
+ break;
+ return Intrinsic::hexagon_S4_vrcrotate; // "__builtin_HEXAGON_S4_vrcrotate"
+ case 'x': // 4 strings to match.
+ switch (BuiltinName[23]) {
+ default: break;
+ case 'a': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+24, "ddsub", 5))
+ break;
+ switch (BuiltinName[29]) {
+ default: break;
+ case 'h': // 1 string to match.
+ return Intrinsic::hexagon_S4_vxaddsubh; // "__builtin_HEXAGON_S4_vxaddsubh"
+ case 'w': // 1 string to match.
+ return Intrinsic::hexagon_S4_vxaddsubw; // "__builtin_HEXAGON_S4_vxaddsubw"
+ }
+ break;
+ case 's': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+24, "ubadd", 5))
+ break;
+ switch (BuiltinName[29]) {
+ default: break;
+ case 'h': // 1 string to match.
+ return Intrinsic::hexagon_S4_vxsubaddh; // "__builtin_HEXAGON_S4_vxsubaddh"
+ case 'w': // 1 string to match.
+ return Intrinsic::hexagon_S4_vxsubaddw; // "__builtin_HEXAGON_S4_vxsubaddw"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case '5': // 1 string to match.
+ if (memcmp(BuiltinName.data()+20, "_popcountp", 10))
+ break;
+ return Intrinsic::hexagon_S5_popcountp; // "__builtin_HEXAGON_S5_popcountp"
+ }
+ break;
+ }
+ break;
+ case 31: // 95 strings to match.
+ if (memcmp(BuiltinName.data()+0, "__builtin_HEXAGON_", 18))
+ break;
+ switch (BuiltinName[18]) {
+ default: break;
+ case 'A': // 4 strings to match.
+ if (memcmp(BuiltinName.data()+19, "2_combine_", 10))
+ break;
+ switch (BuiltinName[29]) {
+ default: break;
+ case 'h': // 2 strings to match.
+ switch (BuiltinName[30]) {
+ default: break;
+ case 'h': // 1 string to match.
+ return Intrinsic::hexagon_A2_combine_hh; // "__builtin_HEXAGON_A2_combine_hh"
+ case 'l': // 1 string to match.
+ return Intrinsic::hexagon_A2_combine_hl; // "__builtin_HEXAGON_A2_combine_hl"
+ }
+ break;
+ case 'l': // 2 strings to match.
+ switch (BuiltinName[30]) {
+ default: break;
+ case 'h': // 1 string to match.
+ return Intrinsic::hexagon_A2_combine_lh; // "__builtin_HEXAGON_A2_combine_lh"
+ case 'l': // 1 string to match.
+ return Intrinsic::hexagon_A2_combine_ll; // "__builtin_HEXAGON_A2_combine_ll"
+ }
+ break;
+ }
+ break;
+ case 'F': // 10 strings to match.
+ if (memcmp(BuiltinName.data()+19, "2_conv_", 7))
+ break;
+ switch (BuiltinName[26]) {
+ default: break;
+ case 'd': // 3 strings to match.
+ if (memcmp(BuiltinName.data()+27, "f2", 2))
+ break;
+ switch (BuiltinName[29]) {
+ default: break;
+ case 's': // 1 string to match.
+ if (BuiltinName[30] != 'f')
+ break;
+ return Intrinsic::hexagon_F2_conv_df2sf; // "__builtin_HEXAGON_F2_conv_df2sf"
+ case 'u': // 2 strings to match.
+ switch (BuiltinName[30]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::hexagon_F2_conv_df2ud; // "__builtin_HEXAGON_F2_conv_df2ud"
+ case 'w': // 1 string to match.
+ return Intrinsic::hexagon_F2_conv_df2uw; // "__builtin_HEXAGON_F2_conv_df2uw"
+ }
+ break;
+ }
+ break;
+ case 's': // 3 strings to match.
+ if (memcmp(BuiltinName.data()+27, "f2", 2))
+ break;
+ switch (BuiltinName[29]) {
+ default: break;
+ case 'd': // 1 string to match.
+ if (BuiltinName[30] != 'f')
+ break;
+ return Intrinsic::hexagon_F2_conv_sf2df; // "__builtin_HEXAGON_F2_conv_sf2df"
+ case 'u': // 2 strings to match.
+ switch (BuiltinName[30]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::hexagon_F2_conv_sf2ud; // "__builtin_HEXAGON_F2_conv_sf2ud"
+ case 'w': // 1 string to match.
+ return Intrinsic::hexagon_F2_conv_sf2uw; // "__builtin_HEXAGON_F2_conv_sf2uw"
+ }
+ break;
+ }
+ break;
+ case 'u': // 4 strings to match.
+ switch (BuiltinName[27]) {
+ default: break;
+ case 'd': // 2 strings to match.
+ if (BuiltinName[28] != '2')
+ break;
+ switch (BuiltinName[29]) {
+ default: break;
+ case 'd': // 1 string to match.
+ if (BuiltinName[30] != 'f')
+ break;
+ return Intrinsic::hexagon_F2_conv_ud2df; // "__builtin_HEXAGON_F2_conv_ud2df"
+ case 's': // 1 string to match.
+ if (BuiltinName[30] != 'f')
+ break;
+ return Intrinsic::hexagon_F2_conv_ud2sf; // "__builtin_HEXAGON_F2_conv_ud2sf"
+ }
+ break;
+ case 'w': // 2 strings to match.
+ if (BuiltinName[28] != '2')
+ break;
+ switch (BuiltinName[29]) {
+ default: break;
+ case 'd': // 1 string to match.
+ if (BuiltinName[30] != 'f')
+ break;
+ return Intrinsic::hexagon_F2_conv_uw2df; // "__builtin_HEXAGON_F2_conv_uw2df"
+ case 's': // 1 string to match.
+ if (BuiltinName[30] != 'f')
+ break;
+ return Intrinsic::hexagon_F2_conv_uw2sf; // "__builtin_HEXAGON_F2_conv_uw2sf"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 'M': // 58 strings to match.
+ switch (BuiltinName[19]) {
+ default: break;
+ case '2': // 49 strings to match.
+ if (BuiltinName[20] != '_')
+ break;
+ switch (BuiltinName[21]) {
+ default: break;
+ case 'c': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+22, "mpyrsc_s", 8))
+ break;
+ switch (BuiltinName[30]) {
+ default: break;
+ case '0': // 1 string to match.
+ return Intrinsic::hexagon_M2_cmpyrsc_s0; // "__builtin_HEXAGON_M2_cmpyrsc_s0"
+ case '1': // 1 string to match.
+ return Intrinsic::hexagon_M2_cmpyrsc_s1; // "__builtin_HEXAGON_M2_cmpyrsc_s1"
+ }
+ break;
+ case 'd': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+22, "pmpy", 4))
+ break;
+ switch (BuiltinName[26]) {
+ default: break;
+ case 's': // 1 string to match.
+ if (memcmp(BuiltinName.data()+27, "s_s0", 4))
+ break;
+ return Intrinsic::hexagon_M2_dpmpyss_s0; // "__builtin_HEXAGON_M2_dpmpyss_s0"
+ case 'u': // 1 string to match.
+ if (memcmp(BuiltinName.data()+27, "u_s0", 4))
+ break;
+ return Intrinsic::hexagon_M2_dpmpyuu_s0; // "__builtin_HEXAGON_M2_dpmpyuu_s0"
+ }
+ break;
+ case 'h': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+22, "mmpy", 4))
+ break;
+ switch (BuiltinName[26]) {
+ default: break;
+ case 'h': // 1 string to match.
+ if (memcmp(BuiltinName.data()+27, "_rs1", 4))
+ break;
+ return Intrinsic::hexagon_M2_hmmpyh_rs1; // "__builtin_HEXAGON_M2_hmmpyh_rs1"
+ case 'l': // 1 string to match.
+ if (memcmp(BuiltinName.data()+27, "_rs1", 4))
+ break;
+ return Intrinsic::hexagon_M2_hmmpyl_rs1; // "__builtin_HEXAGON_M2_hmmpyl_rs1"
+ }
+ break;
+ case 'm': // 28 strings to match.
+ switch (BuiltinName[22]) {
+ default: break;
+ case 'm': // 12 strings to match.
+ switch (BuiltinName[23]) {
+ default: break;
+ case 'a': // 8 strings to match.
+ if (BuiltinName[24] != 'c')
+ break;
+ switch (BuiltinName[25]) {
+ default: break;
+ case 'h': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+26, "s_rs", 4))
+ break;
+ switch (BuiltinName[30]) {
+ default: break;
+ case '0': // 1 string to match.
+ return Intrinsic::hexagon_M2_mmachs_rs0; // "__builtin_HEXAGON_M2_mmachs_rs0"
+ case '1': // 1 string to match.
+ return Intrinsic::hexagon_M2_mmachs_rs1; // "__builtin_HEXAGON_M2_mmachs_rs1"
+ }
+ break;
+ case 'l': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+26, "s_rs", 4))
+ break;
+ switch (BuiltinName[30]) {
+ default: break;
+ case '0': // 1 string to match.
+ return Intrinsic::hexagon_M2_mmacls_rs0; // "__builtin_HEXAGON_M2_mmacls_rs0"
+ case '1': // 1 string to match.
+ return Intrinsic::hexagon_M2_mmacls_rs1; // "__builtin_HEXAGON_M2_mmacls_rs1"
+ }
+ break;
+ case 'u': // 4 strings to match.
+ switch (BuiltinName[26]) {
+ default: break;
+ case 'h': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+27, "s_s", 3))
+ break;
+ switch (BuiltinName[30]) {
+ default: break;
+ case '0': // 1 string to match.
+ return Intrinsic::hexagon_M2_mmacuhs_s0; // "__builtin_HEXAGON_M2_mmacuhs_s0"
+ case '1': // 1 string to match.
+ return Intrinsic::hexagon_M2_mmacuhs_s1; // "__builtin_HEXAGON_M2_mmacuhs_s1"
+ }
+ break;
+ case 'l': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+27, "s_s", 3))
+ break;
+ switch (BuiltinName[30]) {
+ default: break;
+ case '0': // 1 string to match.
+ return Intrinsic::hexagon_M2_mmaculs_s0; // "__builtin_HEXAGON_M2_mmaculs_s0"
+ case '1': // 1 string to match.
+ return Intrinsic::hexagon_M2_mmaculs_s1; // "__builtin_HEXAGON_M2_mmaculs_s1"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 'p': // 4 strings to match.
+ if (memcmp(BuiltinName.data()+24, "yu", 2))
+ break;
+ switch (BuiltinName[26]) {
+ default: break;
+ case 'h': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+27, "_rs", 3))
+ break;
+ switch (BuiltinName[30]) {
+ default: break;
+ case '0': // 1 string to match.
+ return Intrinsic::hexagon_M2_mmpyuh_rs0; // "__builtin_HEXAGON_M2_mmpyuh_rs0"
+ case '1': // 1 string to match.
+ return Intrinsic::hexagon_M2_mmpyuh_rs1; // "__builtin_HEXAGON_M2_mmpyuh_rs1"
+ }
+ break;
+ case 'l': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+27, "_rs", 3))
+ break;
+ switch (BuiltinName[30]) {
+ default: break;
+ case '0': // 1 string to match.
+ return Intrinsic::hexagon_M2_mmpyul_rs0; // "__builtin_HEXAGON_M2_mmpyul_rs0"
+ case '1': // 1 string to match.
+ return Intrinsic::hexagon_M2_mmpyul_rs1; // "__builtin_HEXAGON_M2_mmpyul_rs1"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 'p': // 16 strings to match.
+ if (BuiltinName[23] != 'y')
+ break;
+ switch (BuiltinName[24]) {
+ default: break;
+ case 'd': // 8 strings to match.
+ if (BuiltinName[25] != '_')
+ break;
+ switch (BuiltinName[26]) {
+ default: break;
+ case 'h': // 4 strings to match.
+ switch (BuiltinName[27]) {
+ default: break;
+ case 'h': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+28, "_s", 2))
+ break;
+ switch (BuiltinName[30]) {
+ default: break;
+ case '0': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpyd_hh_s0; // "__builtin_HEXAGON_M2_mpyd_hh_s0"
+ case '1': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpyd_hh_s1; // "__builtin_HEXAGON_M2_mpyd_hh_s1"
+ }
+ break;
+ case 'l': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+28, "_s", 2))
+ break;
+ switch (BuiltinName[30]) {
+ default: break;
+ case '0': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpyd_hl_s0; // "__builtin_HEXAGON_M2_mpyd_hl_s0"
+ case '1': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpyd_hl_s1; // "__builtin_HEXAGON_M2_mpyd_hl_s1"
+ }
+ break;
+ }
+ break;
+ case 'l': // 4 strings to match.
+ switch (BuiltinName[27]) {
+ default: break;
+ case 'h': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+28, "_s", 2))
+ break;
+ switch (BuiltinName[30]) {
+ default: break;
+ case '0': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpyd_lh_s0; // "__builtin_HEXAGON_M2_mpyd_lh_s0"
+ case '1': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpyd_lh_s1; // "__builtin_HEXAGON_M2_mpyd_lh_s1"
+ }
+ break;
+ case 'l': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+28, "_s", 2))
+ break;
+ switch (BuiltinName[30]) {
+ default: break;
+ case '0': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpyd_ll_s0; // "__builtin_HEXAGON_M2_mpyd_ll_s0"
+ case '1': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpyd_ll_s1; // "__builtin_HEXAGON_M2_mpyd_ll_s1"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 'u': // 8 strings to match.
+ if (BuiltinName[25] != '_')
+ break;
+ switch (BuiltinName[26]) {
+ default: break;
+ case 'h': // 4 strings to match.
+ switch (BuiltinName[27]) {
+ default: break;
+ case 'h': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+28, "_s", 2))
+ break;
+ switch (BuiltinName[30]) {
+ default: break;
+ case '0': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpyu_hh_s0; // "__builtin_HEXAGON_M2_mpyu_hh_s0"
+ case '1': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpyu_hh_s1; // "__builtin_HEXAGON_M2_mpyu_hh_s1"
+ }
+ break;
+ case 'l': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+28, "_s", 2))
+ break;
+ switch (BuiltinName[30]) {
+ default: break;
+ case '0': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpyu_hl_s0; // "__builtin_HEXAGON_M2_mpyu_hl_s0"
+ case '1': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpyu_hl_s1; // "__builtin_HEXAGON_M2_mpyu_hl_s1"
+ }
+ break;
+ }
+ break;
+ case 'l': // 4 strings to match.
+ switch (BuiltinName[27]) {
+ default: break;
+ case 'h': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+28, "_s", 2))
+ break;
+ switch (BuiltinName[30]) {
+ default: break;
+ case '0': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpyu_lh_s0; // "__builtin_HEXAGON_M2_mpyu_lh_s0"
+ case '1': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpyu_lh_s1; // "__builtin_HEXAGON_M2_mpyu_lh_s1"
+ }
+ break;
+ case 'l': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+28, "_s", 2))
+ break;
+ switch (BuiltinName[30]) {
+ default: break;
+ case '0': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpyu_ll_s0; // "__builtin_HEXAGON_M2_mpyu_ll_s0"
+ case '1': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpyu_ll_s1; // "__builtin_HEXAGON_M2_mpyu_ll_s1"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 'v': // 15 strings to match.
+ switch (BuiltinName[22]) {
+ default: break;
+ case 'd': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+23, "mpyrs_s", 7))
+ break;
+ switch (BuiltinName[30]) {
+ default: break;
+ case '0': // 1 string to match.
+ return Intrinsic::hexagon_M2_vdmpyrs_s0; // "__builtin_HEXAGON_M2_vdmpyrs_s0"
+ case '1': // 1 string to match.
+ return Intrinsic::hexagon_M2_vdmpyrs_s1; // "__builtin_HEXAGON_M2_vdmpyrs_s1"
+ }
+ break;
+ case 'm': // 8 strings to match.
+ switch (BuiltinName[23]) {
+ default: break;
+ case 'a': // 4 strings to match.
+ if (memcmp(BuiltinName.data()+24, "c2", 2))
+ break;
+ switch (BuiltinName[26]) {
+ default: break;
+ case 'e': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+27, "s_s", 3))
+ break;
+ switch (BuiltinName[30]) {
+ default: break;
+ case '0': // 1 string to match.
+ return Intrinsic::hexagon_M2_vmac2es_s0; // "__builtin_HEXAGON_M2_vmac2es_s0"
+ case '1': // 1 string to match.
+ return Intrinsic::hexagon_M2_vmac2es_s1; // "__builtin_HEXAGON_M2_vmac2es_s1"
+ }
+ break;
+ case 's': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+27, "u_s", 3))
+ break;
+ switch (BuiltinName[30]) {
+ default: break;
+ case '0': // 1 string to match.
+ return Intrinsic::hexagon_M2_vmac2su_s0; // "__builtin_HEXAGON_M2_vmac2su_s0"
+ case '1': // 1 string to match.
+ return Intrinsic::hexagon_M2_vmac2su_s1; // "__builtin_HEXAGON_M2_vmac2su_s1"
+ }
+ break;
+ }
+ break;
+ case 'p': // 4 strings to match.
+ if (memcmp(BuiltinName.data()+24, "y2", 2))
+ break;
+ switch (BuiltinName[26]) {
+ default: break;
+ case 'e': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+27, "s_s", 3))
+ break;
+ switch (BuiltinName[30]) {
+ default: break;
+ case '0': // 1 string to match.
+ return Intrinsic::hexagon_M2_vmpy2es_s0; // "__builtin_HEXAGON_M2_vmpy2es_s0"
+ case '1': // 1 string to match.
+ return Intrinsic::hexagon_M2_vmpy2es_s1; // "__builtin_HEXAGON_M2_vmpy2es_s1"
+ }
+ break;
+ case 's': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+27, "u_s", 3))
+ break;
+ switch (BuiltinName[30]) {
+ default: break;
+ case '0': // 1 string to match.
+ return Intrinsic::hexagon_M2_vmpy2su_s0; // "__builtin_HEXAGON_M2_vmpy2su_s0"
+ case '1': // 1 string to match.
+ return Intrinsic::hexagon_M2_vmpy2su_s1; // "__builtin_HEXAGON_M2_vmpy2su_s1"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 'r': // 5 strings to match.
+ if (memcmp(BuiltinName.data()+23, "cm", 2))
+ break;
+ switch (BuiltinName[25]) {
+ default: break;
+ case 'a': // 2 strings to match.
+ if (BuiltinName[26] != 'c')
+ break;
+ switch (BuiltinName[27]) {
+ default: break;
+ case 'i': // 1 string to match.
+ if (memcmp(BuiltinName.data()+28, "_s0", 3))
+ break;
+ return Intrinsic::hexagon_M2_vrcmaci_s0; // "__builtin_HEXAGON_M2_vrcmaci_s0"
+ case 'r': // 1 string to match.
+ if (memcmp(BuiltinName.data()+28, "_s0", 3))
+ break;
+ return Intrinsic::hexagon_M2_vrcmacr_s0; // "__builtin_HEXAGON_M2_vrcmacr_s0"
+ }
+ break;
+ case 'p': // 3 strings to match.
+ if (BuiltinName[26] != 'y')
+ break;
+ switch (BuiltinName[27]) {
+ default: break;
+ case 'i': // 1 string to match.
+ if (memcmp(BuiltinName.data()+28, "_s0", 3))
+ break;
+ return Intrinsic::hexagon_M2_vrcmpyi_s0; // "__builtin_HEXAGON_M2_vrcmpyi_s0"
+ case 'r': // 1 string to match.
+ if (memcmp(BuiltinName.data()+28, "_s0", 3))
+ break;
+ return Intrinsic::hexagon_M2_vrcmpyr_s0; // "__builtin_HEXAGON_M2_vrcmpyr_s0"
+ case 's': // 1 string to match.
+ if (memcmp(BuiltinName.data()+28, "_s1", 3))
+ break;
+ return Intrinsic::hexagon_M2_vrcmpys_s1; // "__builtin_HEXAGON_M2_vrcmpys_s1"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case '4': // 9 strings to match.
+ if (BuiltinName[20] != '_')
+ break;
+ switch (BuiltinName[21]) {
+ default: break;
+ case 'm': // 4 strings to match.
+ if (memcmp(BuiltinName.data()+22, "pyr", 3))
+ break;
+ switch (BuiltinName[25]) {
+ default: break;
+ case 'i': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+26, "_add", 4))
+ break;
+ switch (BuiltinName[30]) {
+ default: break;
+ case 'i': // 1 string to match.
+ return Intrinsic::hexagon_M4_mpyri_addi; // "__builtin_HEXAGON_M4_mpyri_addi"
+ case 'r': // 1 string to match.
+ return Intrinsic::hexagon_M4_mpyri_addr; // "__builtin_HEXAGON_M4_mpyri_addr"
+ }
+ break;
+ case 'r': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+26, "_add", 4))
+ break;
+ switch (BuiltinName[30]) {
+ default: break;
+ case 'i': // 1 string to match.
+ return Intrinsic::hexagon_M4_mpyrr_addi; // "__builtin_HEXAGON_M4_mpyrr_addi"
+ case 'r': // 1 string to match.
+ return Intrinsic::hexagon_M4_mpyrr_addr; // "__builtin_HEXAGON_M4_mpyrr_addr"
+ }
+ break;
+ }
+ break;
+ case 'v': // 5 strings to match.
+ switch (BuiltinName[22]) {
+ default: break;
+ case 'p': // 1 string to match.
+ if (memcmp(BuiltinName.data()+23, "mpyh_acc", 8))
+ break;
+ return Intrinsic::hexagon_M4_vpmpyh_acc; // "__builtin_HEXAGON_M4_vpmpyh_acc"
+ case 'r': // 4 strings to match.
+ if (memcmp(BuiltinName.data()+23, "mpy", 3))
+ break;
+ switch (BuiltinName[26]) {
+ default: break;
+ case 'e': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+27, "h_s", 3))
+ break;
+ switch (BuiltinName[30]) {
+ default: break;
+ case '0': // 1 string to match.
+ return Intrinsic::hexagon_M4_vrmpyeh_s0; // "__builtin_HEXAGON_M4_vrmpyeh_s0"
+ case '1': // 1 string to match.
+ return Intrinsic::hexagon_M4_vrmpyeh_s1; // "__builtin_HEXAGON_M4_vrmpyeh_s1"
+ }
+ break;
+ case 'o': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+27, "h_s", 3))
+ break;
+ switch (BuiltinName[30]) {
+ default: break;
+ case '0': // 1 string to match.
+ return Intrinsic::hexagon_M4_vrmpyoh_s0; // "__builtin_HEXAGON_M4_vrmpyoh_s0"
+ case '1': // 1 string to match.
+ return Intrinsic::hexagon_M4_vrmpyoh_s1; // "__builtin_HEXAGON_M4_vrmpyoh_s1"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 'S': // 23 strings to match.
+ switch (BuiltinName[19]) {
+ default: break;
+ case '2': // 17 strings to match.
+ if (BuiltinName[20] != '_')
+ break;
+ switch (BuiltinName[21]) {
+ default: break;
+ case 'a': // 8 strings to match.
+ if (BuiltinName[22] != 's')
+ break;
+ switch (BuiltinName[23]) {
+ default: break;
+ case 'l': // 4 strings to match.
+ if (BuiltinName[24] != '_')
+ break;
+ switch (BuiltinName[25]) {
+ default: break;
+ case 'i': // 2 strings to match.
+ if (BuiltinName[26] != '_')
+ break;
+ switch (BuiltinName[27]) {
+ default: break;
+ case 'p': // 1 string to match.
+ if (memcmp(BuiltinName.data()+28, "_or", 3))
+ break;
+ return Intrinsic::hexagon_S2_asl_i_p_or; // "__builtin_HEXAGON_S2_asl_i_p_or"
+ case 'r': // 1 string to match.
+ if (memcmp(BuiltinName.data()+28, "_or", 3))
+ break;
+ return Intrinsic::hexagon_S2_asl_i_r_or; // "__builtin_HEXAGON_S2_asl_i_r_or"
+ }
+ break;
+ case 'r': // 2 strings to match.
+ if (BuiltinName[26] != '_')
+ break;
+ switch (BuiltinName[27]) {
+ default: break;
+ case 'p': // 1 string to match.
+ if (memcmp(BuiltinName.data()+28, "_or", 3))
+ break;
+ return Intrinsic::hexagon_S2_asl_r_p_or; // "__builtin_HEXAGON_S2_asl_r_p_or"
+ case 'r': // 1 string to match.
+ if (memcmp(BuiltinName.data()+28, "_or", 3))
+ break;
+ return Intrinsic::hexagon_S2_asl_r_r_or; // "__builtin_HEXAGON_S2_asl_r_r_or"
+ }
+ break;
+ }
+ break;
+ case 'r': // 4 strings to match.
+ if (BuiltinName[24] != '_')
+ break;
+ switch (BuiltinName[25]) {
+ default: break;
+ case 'i': // 2 strings to match.
+ if (BuiltinName[26] != '_')
+ break;
+ switch (BuiltinName[27]) {
+ default: break;
+ case 'p': // 1 string to match.
+ if (memcmp(BuiltinName.data()+28, "_or", 3))
+ break;
+ return Intrinsic::hexagon_S2_asr_i_p_or; // "__builtin_HEXAGON_S2_asr_i_p_or"
+ case 'r': // 1 string to match.
+ if (memcmp(BuiltinName.data()+28, "_or", 3))
+ break;
+ return Intrinsic::hexagon_S2_asr_i_r_or; // "__builtin_HEXAGON_S2_asr_i_r_or"
+ }
+ break;
+ case 'r': // 2 strings to match.
+ if (BuiltinName[26] != '_')
+ break;
+ switch (BuiltinName[27]) {
+ default: break;
+ case 'p': // 1 string to match.
+ if (memcmp(BuiltinName.data()+28, "_or", 3))
+ break;
+ return Intrinsic::hexagon_S2_asr_r_p_or; // "__builtin_HEXAGON_S2_asr_r_p_or"
+ case 'r': // 1 string to match.
+ if (memcmp(BuiltinName.data()+28, "_or", 3))
+ break;
+ return Intrinsic::hexagon_S2_asr_r_r_or; // "__builtin_HEXAGON_S2_asr_r_r_or"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 'i': // 2 strings to match.
+ if (BuiltinName[22] != 'n')
+ break;
+ switch (BuiltinName[23]) {
+ default: break;
+ case 's': // 1 string to match.
+ if (memcmp(BuiltinName.data()+24, "ertp_rp", 7))
+ break;
+ return Intrinsic::hexagon_S2_insertp_rp; // "__builtin_HEXAGON_S2_insertp_rp"
+ case 't': // 1 string to match.
+ if (memcmp(BuiltinName.data()+24, "erleave", 7))
+ break;
+ return Intrinsic::hexagon_S2_interleave; // "__builtin_HEXAGON_S2_interleave"
+ }
+ break;
+ case 'l': // 6 strings to match.
+ if (BuiltinName[22] != 's')
+ break;
+ switch (BuiltinName[23]) {
+ default: break;
+ case 'l': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+24, "_r_", 3))
+ break;
+ switch (BuiltinName[27]) {
+ default: break;
+ case 'p': // 1 string to match.
+ if (memcmp(BuiltinName.data()+28, "_or", 3))
+ break;
+ return Intrinsic::hexagon_S2_lsl_r_p_or; // "__builtin_HEXAGON_S2_lsl_r_p_or"
+ case 'r': // 1 string to match.
+ if (memcmp(BuiltinName.data()+28, "_or", 3))
+ break;
+ return Intrinsic::hexagon_S2_lsl_r_r_or; // "__builtin_HEXAGON_S2_lsl_r_r_or"
+ }
+ break;
+ case 'r': // 4 strings to match.
+ if (BuiltinName[24] != '_')
+ break;
+ switch (BuiltinName[25]) {
+ default: break;
+ case 'i': // 2 strings to match.
+ if (BuiltinName[26] != '_')
+ break;
+ switch (BuiltinName[27]) {
+ default: break;
+ case 'p': // 1 string to match.
+ if (memcmp(BuiltinName.data()+28, "_or", 3))
+ break;
+ return Intrinsic::hexagon_S2_lsr_i_p_or; // "__builtin_HEXAGON_S2_lsr_i_p_or"
+ case 'r': // 1 string to match.
+ if (memcmp(BuiltinName.data()+28, "_or", 3))
+ break;
+ return Intrinsic::hexagon_S2_lsr_i_r_or; // "__builtin_HEXAGON_S2_lsr_i_r_or"
+ }
+ break;
+ case 'r': // 2 strings to match.
+ if (BuiltinName[26] != '_')
+ break;
+ switch (BuiltinName[27]) {
+ default: break;
+ case 'p': // 1 string to match.
+ if (memcmp(BuiltinName.data()+28, "_or", 3))
+ break;
+ return Intrinsic::hexagon_S2_lsr_r_p_or; // "__builtin_HEXAGON_S2_lsr_r_p_or"
+ case 'r': // 1 string to match.
+ if (memcmp(BuiltinName.data()+28, "_or", 3))
+ break;
+ return Intrinsic::hexagon_S2_lsr_r_r_or; // "__builtin_HEXAGON_S2_lsr_r_r_or"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 'v': // 1 string to match.
+ if (memcmp(BuiltinName.data()+22, "rndpackwh", 9))
+ break;
+ return Intrinsic::hexagon_S2_vrndpackwh; // "__builtin_HEXAGON_S2_vrndpackwh"
+ }
+ break;
+ case '4': // 5 strings to match.
+ if (BuiltinName[20] != '_')
+ break;
+ switch (BuiltinName[21]) {
+ default: break;
+ case 'e': // 1 string to match.
+ if (memcmp(BuiltinName.data()+22, "xtract_rp", 9))
+ break;
+ return Intrinsic::hexagon_S4_extract_rp; // "__builtin_HEXAGON_S4_extract_rp"
+ case 'o': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+22, "ri_", 3))
+ break;
+ switch (BuiltinName[25]) {
+ default: break;
+ case 'a': // 1 string to match.
+ if (memcmp(BuiltinName.data()+26, "sl_ri", 5))
+ break;
+ return Intrinsic::hexagon_S4_ori_asl_ri; // "__builtin_HEXAGON_S4_ori_asl_ri"
+ case 'l': // 1 string to match.
+ if (memcmp(BuiltinName.data()+26, "sr_ri", 5))
+ break;
+ return Intrinsic::hexagon_S4_ori_lsr_ri; // "__builtin_HEXAGON_S4_ori_lsr_ri"
+ }
+ break;
+ case 'v': // 2 strings to match.
+ if (BuiltinName[22] != 'x')
+ break;
+ switch (BuiltinName[23]) {
+ default: break;
+ case 'a': // 1 string to match.
+ if (memcmp(BuiltinName.data()+24, "ddsubhr", 7))
+ break;
+ return Intrinsic::hexagon_S4_vxaddsubhr; // "__builtin_HEXAGON_S4_vxaddsubhr"
+ case 's': // 1 string to match.
+ if (memcmp(BuiltinName.data()+24, "ubaddhr", 7))
+ break;
+ return Intrinsic::hexagon_S4_vxsubaddhr; // "__builtin_HEXAGON_S4_vxsubaddhr"
+ }
+ break;
+ }
+ break;
+ case '5': // 1 string to match.
+ if (memcmp(BuiltinName.data()+20, "_asrhub_sat", 11))
+ break;
+ return Intrinsic::hexagon_S5_asrhub_sat; // "__builtin_HEXAGON_S5_asrhub_sat"
+ }
+ break;
+ }
+ break;
+ case 32: // 96 strings to match.
+ if (memcmp(BuiltinName.data()+0, "__builtin_HEXAGON_", 18))
+ break;
+ switch (BuiltinName[18]) {
+ default: break;
+ case 'A': // 16 strings to match.
+ switch (BuiltinName[19]) {
+ default: break;
+ case '2': // 14 strings to match.
+ if (BuiltinName[20] != '_')
+ break;
+ switch (BuiltinName[21]) {
+ default: break;
+ case 'a': // 6 strings to match.
+ if (memcmp(BuiltinName.data()+22, "ddh_", 4))
+ break;
+ switch (BuiltinName[26]) {
+ default: break;
+ case 'h': // 4 strings to match.
+ if (memcmp(BuiltinName.data()+27, "16_", 3))
+ break;
+ switch (BuiltinName[30]) {
+ default: break;
+ case 'h': // 2 strings to match.
+ switch (BuiltinName[31]) {
+ default: break;
+ case 'h': // 1 string to match.
+ return Intrinsic::hexagon_A2_addh_h16_hh; // "__builtin_HEXAGON_A2_addh_h16_hh"
+ case 'l': // 1 string to match.
+ return Intrinsic::hexagon_A2_addh_h16_hl; // "__builtin_HEXAGON_A2_addh_h16_hl"
+ }
+ break;
+ case 'l': // 2 strings to match.
+ switch (BuiltinName[31]) {
+ default: break;
+ case 'h': // 1 string to match.
+ return Intrinsic::hexagon_A2_addh_h16_lh; // "__builtin_HEXAGON_A2_addh_h16_lh"
+ case 'l': // 1 string to match.
+ return Intrinsic::hexagon_A2_addh_h16_ll; // "__builtin_HEXAGON_A2_addh_h16_ll"
+ }
+ break;
+ }
+ break;
+ case 'l': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+27, "16_", 3))
+ break;
+ switch (BuiltinName[30]) {
+ default: break;
+ case 'h': // 1 string to match.
+ if (BuiltinName[31] != 'l')
+ break;
+ return Intrinsic::hexagon_A2_addh_l16_hl; // "__builtin_HEXAGON_A2_addh_l16_hl"
+ case 'l': // 1 string to match.
+ if (BuiltinName[31] != 'l')
+ break;
+ return Intrinsic::hexagon_A2_addh_l16_ll; // "__builtin_HEXAGON_A2_addh_l16_ll"
+ }
+ break;
+ }
+ break;
+ case 's': // 6 strings to match.
+ if (memcmp(BuiltinName.data()+22, "ubh_", 4))
+ break;
+ switch (BuiltinName[26]) {
+ default: break;
+ case 'h': // 4 strings to match.
+ if (memcmp(BuiltinName.data()+27, "16_", 3))
+ break;
+ switch (BuiltinName[30]) {
+ default: break;
+ case 'h': // 2 strings to match.
+ switch (BuiltinName[31]) {
+ default: break;
+ case 'h': // 1 string to match.
+ return Intrinsic::hexagon_A2_subh_h16_hh; // "__builtin_HEXAGON_A2_subh_h16_hh"
+ case 'l': // 1 string to match.
+ return Intrinsic::hexagon_A2_subh_h16_hl; // "__builtin_HEXAGON_A2_subh_h16_hl"
+ }
+ break;
+ case 'l': // 2 strings to match.
+ switch (BuiltinName[31]) {
+ default: break;
+ case 'h': // 1 string to match.
+ return Intrinsic::hexagon_A2_subh_h16_lh; // "__builtin_HEXAGON_A2_subh_h16_lh"
+ case 'l': // 1 string to match.
+ return Intrinsic::hexagon_A2_subh_h16_ll; // "__builtin_HEXAGON_A2_subh_h16_ll"
+ }
+ break;
+ }
+ break;
+ case 'l': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+27, "16_", 3))
+ break;
+ switch (BuiltinName[30]) {
+ default: break;
+ case 'h': // 1 string to match.
+ if (BuiltinName[31] != 'l')
+ break;
+ return Intrinsic::hexagon_A2_subh_l16_hl; // "__builtin_HEXAGON_A2_subh_l16_hl"
+ case 'l': // 1 string to match.
+ if (BuiltinName[31] != 'l')
+ break;
+ return Intrinsic::hexagon_A2_subh_l16_ll; // "__builtin_HEXAGON_A2_subh_l16_ll"
+ }
+ break;
+ }
+ break;
+ case 'v': // 2 strings to match.
+ if (BuiltinName[22] != 'r')
+ break;
+ switch (BuiltinName[23]) {
+ default: break;
+ case 'a': // 1 string to match.
+ if (memcmp(BuiltinName.data()+24, "ddub_acc", 8))
+ break;
+ return Intrinsic::hexagon_A2_vraddub_acc; // "__builtin_HEXAGON_A2_vraddub_acc"
+ case 's': // 1 string to match.
+ if (memcmp(BuiltinName.data()+24, "adub_acc", 8))
+ break;
+ return Intrinsic::hexagon_A2_vrsadub_acc; // "__builtin_HEXAGON_A2_vrsadub_acc"
+ }
+ break;
+ }
+ break;
+ case '4': // 2 strings to match.
+ if (BuiltinName[20] != '_')
+ break;
+ switch (BuiltinName[21]) {
+ default: break;
+ case 'b': // 1 string to match.
+ if (memcmp(BuiltinName.data()+22, "oundscheck", 10))
+ break;
+ return Intrinsic::hexagon_A4_boundscheck; // "__builtin_HEXAGON_A4_boundscheck"
+ case 'v': // 1 string to match.
+ if (memcmp(BuiltinName.data()+22, "cmpbeq_any", 10))
+ break;
+ return Intrinsic::hexagon_A4_vcmpbeq_any; // "__builtin_HEXAGON_A4_vcmpbeq_any"
+ }
+ break;
+ }
+ break;
+ case 'C': // 1 string to match.
+ if (memcmp(BuiltinName.data()+19, "4_fastcorner9", 13))
+ break;
+ return Intrinsic::hexagon_C4_fastcorner9; // "__builtin_HEXAGON_C4_fastcorner9"
+ case 'M': // 16 strings to match.
+ if (memcmp(BuiltinName.data()+19, "2_", 2))
+ break;
+ switch (BuiltinName[21]) {
+ default: break;
+ case 'm': // 12 strings to match.
+ switch (BuiltinName[22]) {
+ default: break;
+ case 'm': // 4 strings to match.
+ if (memcmp(BuiltinName.data()+23, "acu", 3))
+ break;
+ switch (BuiltinName[26]) {
+ default: break;
+ case 'h': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+27, "s_rs", 4))
+ break;
+ switch (BuiltinName[31]) {
+ default: break;
+ case '0': // 1 string to match.
+ return Intrinsic::hexagon_M2_mmacuhs_rs0; // "__builtin_HEXAGON_M2_mmacuhs_rs0"
+ case '1': // 1 string to match.
+ return Intrinsic::hexagon_M2_mmacuhs_rs1; // "__builtin_HEXAGON_M2_mmacuhs_rs1"
+ }
+ break;
+ case 'l': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+27, "s_rs", 4))
+ break;
+ switch (BuiltinName[31]) {
+ default: break;
+ case '0': // 1 string to match.
+ return Intrinsic::hexagon_M2_mmaculs_rs0; // "__builtin_HEXAGON_M2_mmaculs_rs0"
+ case '1': // 1 string to match.
+ return Intrinsic::hexagon_M2_mmaculs_rs1; // "__builtin_HEXAGON_M2_mmaculs_rs1"
+ }
+ break;
+ }
+ break;
+ case 'p': // 8 strings to match.
+ if (memcmp(BuiltinName.data()+23, "yud_", 4))
+ break;
+ switch (BuiltinName[27]) {
+ default: break;
+ case 'h': // 4 strings to match.
+ switch (BuiltinName[28]) {
+ default: break;
+ case 'h': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+29, "_s", 2))
+ break;
+ switch (BuiltinName[31]) {
+ default: break;
+ case '0': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpyud_hh_s0; // "__builtin_HEXAGON_M2_mpyud_hh_s0"
+ case '1': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpyud_hh_s1; // "__builtin_HEXAGON_M2_mpyud_hh_s1"
+ }
+ break;
+ case 'l': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+29, "_s", 2))
+ break;
+ switch (BuiltinName[31]) {
+ default: break;
+ case '0': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpyud_hl_s0; // "__builtin_HEXAGON_M2_mpyud_hl_s0"
+ case '1': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpyud_hl_s1; // "__builtin_HEXAGON_M2_mpyud_hl_s1"
+ }
+ break;
+ }
+ break;
+ case 'l': // 4 strings to match.
+ switch (BuiltinName[28]) {
+ default: break;
+ case 'h': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+29, "_s", 2))
+ break;
+ switch (BuiltinName[31]) {
+ default: break;
+ case '0': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpyud_lh_s0; // "__builtin_HEXAGON_M2_mpyud_lh_s0"
+ case '1': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpyud_lh_s1; // "__builtin_HEXAGON_M2_mpyud_lh_s1"
+ }
+ break;
+ case 'l': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+29, "_s", 2))
+ break;
+ switch (BuiltinName[31]) {
+ default: break;
+ case '0': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpyud_ll_s0; // "__builtin_HEXAGON_M2_mpyud_ll_s0"
+ case '1': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpyud_ll_s1; // "__builtin_HEXAGON_M2_mpyud_ll_s1"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 'v': // 4 strings to match.
+ if (memcmp(BuiltinName.data()+22, "rcm", 3))
+ break;
+ switch (BuiltinName[25]) {
+ default: break;
+ case 'a': // 2 strings to match.
+ if (BuiltinName[26] != 'c')
+ break;
+ switch (BuiltinName[27]) {
+ default: break;
+ case 'i': // 1 string to match.
+ if (memcmp(BuiltinName.data()+28, "_s0c", 4))
+ break;
+ return Intrinsic::hexagon_M2_vrcmaci_s0c; // "__builtin_HEXAGON_M2_vrcmaci_s0c"
+ case 'r': // 1 string to match.
+ if (memcmp(BuiltinName.data()+28, "_s0c", 4))
+ break;
+ return Intrinsic::hexagon_M2_vrcmacr_s0c; // "__builtin_HEXAGON_M2_vrcmacr_s0c"
+ }
+ break;
+ case 'p': // 2 strings to match.
+ if (BuiltinName[26] != 'y')
+ break;
+ switch (BuiltinName[27]) {
+ default: break;
+ case 'i': // 1 string to match.
+ if (memcmp(BuiltinName.data()+28, "_s0c", 4))
+ break;
+ return Intrinsic::hexagon_M2_vrcmpyi_s0c; // "__builtin_HEXAGON_M2_vrcmpyi_s0c"
+ case 'r': // 1 string to match.
+ if (memcmp(BuiltinName.data()+28, "_s0c", 4))
+ break;
+ return Intrinsic::hexagon_M2_vrcmpyr_s0c; // "__builtin_HEXAGON_M2_vrcmpyr_s0c"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 'S': // 63 strings to match.
+ switch (BuiltinName[19]) {
+ default: break;
+ case '2': // 56 strings to match.
+ if (BuiltinName[20] != '_')
+ break;
+ switch (BuiltinName[21]) {
+ default: break;
+ case 'a': // 32 strings to match.
+ switch (BuiltinName[22]) {
+ default: break;
+ case 'd': // 1 string to match.
+ if (memcmp(BuiltinName.data()+23, "dasl_rrri", 9))
+ break;
+ return Intrinsic::hexagon_S2_addasl_rrri; // "__builtin_HEXAGON_S2_addasl_rrri"
+ case 's': // 31 strings to match.
+ switch (BuiltinName[23]) {
+ default: break;
+ case 'l': // 15 strings to match.
+ if (BuiltinName[24] != '_')
+ break;
+ switch (BuiltinName[25]) {
+ default: break;
+ case 'i': // 7 strings to match.
+ if (BuiltinName[26] != '_')
+ break;
+ switch (BuiltinName[27]) {
+ default: break;
+ case 'p': // 3 strings to match.
+ if (BuiltinName[28] != '_')
+ break;
+ switch (BuiltinName[29]) {
+ default: break;
+ case 'a': // 2 strings to match.
+ switch (BuiltinName[30]) {
+ default: break;
+ case 'c': // 1 string to match.
+ if (BuiltinName[31] != 'c')
+ break;
+ return Intrinsic::hexagon_S2_asl_i_p_acc; // "__builtin_HEXAGON_S2_asl_i_p_acc"
+ case 'n': // 1 string to match.
+ if (BuiltinName[31] != 'd')
+ break;
+ return Intrinsic::hexagon_S2_asl_i_p_and; // "__builtin_HEXAGON_S2_asl_i_p_and"
+ }
+ break;
+ case 'n': // 1 string to match.
+ if (memcmp(BuiltinName.data()+30, "ac", 2))
+ break;
+ return Intrinsic::hexagon_S2_asl_i_p_nac; // "__builtin_HEXAGON_S2_asl_i_p_nac"
+ }
+ break;
+ case 'r': // 4 strings to match.
+ if (BuiltinName[28] != '_')
+ break;
+ switch (BuiltinName[29]) {
+ default: break;
+ case 'a': // 2 strings to match.
+ switch (BuiltinName[30]) {
+ default: break;
+ case 'c': // 1 string to match.
+ if (BuiltinName[31] != 'c')
+ break;
+ return Intrinsic::hexagon_S2_asl_i_r_acc; // "__builtin_HEXAGON_S2_asl_i_r_acc"
+ case 'n': // 1 string to match.
+ if (BuiltinName[31] != 'd')
+ break;
+ return Intrinsic::hexagon_S2_asl_i_r_and; // "__builtin_HEXAGON_S2_asl_i_r_and"
+ }
+ break;
+ case 'n': // 1 string to match.
+ if (memcmp(BuiltinName.data()+30, "ac", 2))
+ break;
+ return Intrinsic::hexagon_S2_asl_i_r_nac; // "__builtin_HEXAGON_S2_asl_i_r_nac"
+ case 's': // 1 string to match.
+ if (memcmp(BuiltinName.data()+30, "at", 2))
+ break;
+ return Intrinsic::hexagon_S2_asl_i_r_sat; // "__builtin_HEXAGON_S2_asl_i_r_sat"
+ }
+ break;
+ }
+ break;
+ case 'r': // 8 strings to match.
+ if (BuiltinName[26] != '_')
+ break;
+ switch (BuiltinName[27]) {
+ default: break;
+ case 'p': // 4 strings to match.
+ if (BuiltinName[28] != '_')
+ break;
+ switch (BuiltinName[29]) {
+ default: break;
+ case 'a': // 2 strings to match.
+ switch (BuiltinName[30]) {
+ default: break;
+ case 'c': // 1 string to match.
+ if (BuiltinName[31] != 'c')
+ break;
+ return Intrinsic::hexagon_S2_asl_r_p_acc; // "__builtin_HEXAGON_S2_asl_r_p_acc"
+ case 'n': // 1 string to match.
+ if (BuiltinName[31] != 'd')
+ break;
+ return Intrinsic::hexagon_S2_asl_r_p_and; // "__builtin_HEXAGON_S2_asl_r_p_and"
+ }
+ break;
+ case 'n': // 1 string to match.
+ if (memcmp(BuiltinName.data()+30, "ac", 2))
+ break;
+ return Intrinsic::hexagon_S2_asl_r_p_nac; // "__builtin_HEXAGON_S2_asl_r_p_nac"
+ case 'x': // 1 string to match.
+ if (memcmp(BuiltinName.data()+30, "or", 2))
+ break;
+ return Intrinsic::hexagon_S2_asl_r_p_xor; // "__builtin_HEXAGON_S2_asl_r_p_xor"
+ }
+ break;
+ case 'r': // 4 strings to match.
+ if (BuiltinName[28] != '_')
+ break;
+ switch (BuiltinName[29]) {
+ default: break;
+ case 'a': // 2 strings to match.
+ switch (BuiltinName[30]) {
+ default: break;
+ case 'c': // 1 string to match.
+ if (BuiltinName[31] != 'c')
+ break;
+ return Intrinsic::hexagon_S2_asl_r_r_acc; // "__builtin_HEXAGON_S2_asl_r_r_acc"
+ case 'n': // 1 string to match.
+ if (BuiltinName[31] != 'd')
+ break;
+ return Intrinsic::hexagon_S2_asl_r_r_and; // "__builtin_HEXAGON_S2_asl_r_r_and"
+ }
+ break;
+ case 'n': // 1 string to match.
+ if (memcmp(BuiltinName.data()+30, "ac", 2))
+ break;
+ return Intrinsic::hexagon_S2_asl_r_r_nac; // "__builtin_HEXAGON_S2_asl_r_r_nac"
+ case 's': // 1 string to match.
+ if (memcmp(BuiltinName.data()+30, "at", 2))
+ break;
+ return Intrinsic::hexagon_S2_asl_r_r_sat; // "__builtin_HEXAGON_S2_asl_r_r_sat"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 'r': // 16 strings to match.
+ if (BuiltinName[24] != '_')
+ break;
+ switch (BuiltinName[25]) {
+ default: break;
+ case 'i': // 8 strings to match.
+ if (BuiltinName[26] != '_')
+ break;
+ switch (BuiltinName[27]) {
+ default: break;
+ case 'p': // 4 strings to match.
+ if (BuiltinName[28] != '_')
+ break;
+ switch (BuiltinName[29]) {
+ default: break;
+ case 'a': // 2 strings to match.
+ switch (BuiltinName[30]) {
+ default: break;
+ case 'c': // 1 string to match.
+ if (BuiltinName[31] != 'c')
+ break;
+ return Intrinsic::hexagon_S2_asr_i_p_acc; // "__builtin_HEXAGON_S2_asr_i_p_acc"
+ case 'n': // 1 string to match.
+ if (BuiltinName[31] != 'd')
+ break;
+ return Intrinsic::hexagon_S2_asr_i_p_and; // "__builtin_HEXAGON_S2_asr_i_p_and"
+ }
+ break;
+ case 'n': // 1 string to match.
+ if (memcmp(BuiltinName.data()+30, "ac", 2))
+ break;
+ return Intrinsic::hexagon_S2_asr_i_p_nac; // "__builtin_HEXAGON_S2_asr_i_p_nac"
+ case 'r': // 1 string to match.
+ if (memcmp(BuiltinName.data()+30, "nd", 2))
+ break;
+ return Intrinsic::hexagon_S2_asr_i_p_rnd; // "__builtin_HEXAGON_S2_asr_i_p_rnd"
+ }
+ break;
+ case 'r': // 4 strings to match.
+ if (BuiltinName[28] != '_')
+ break;
+ switch (BuiltinName[29]) {
+ default: break;
+ case 'a': // 2 strings to match.
+ switch (BuiltinName[30]) {
+ default: break;
+ case 'c': // 1 string to match.
+ if (BuiltinName[31] != 'c')
+ break;
+ return Intrinsic::hexagon_S2_asr_i_r_acc; // "__builtin_HEXAGON_S2_asr_i_r_acc"
+ case 'n': // 1 string to match.
+ if (BuiltinName[31] != 'd')
+ break;
+ return Intrinsic::hexagon_S2_asr_i_r_and; // "__builtin_HEXAGON_S2_asr_i_r_and"
+ }
+ break;
+ case 'n': // 1 string to match.
+ if (memcmp(BuiltinName.data()+30, "ac", 2))
+ break;
+ return Intrinsic::hexagon_S2_asr_i_r_nac; // "__builtin_HEXAGON_S2_asr_i_r_nac"
+ case 'r': // 1 string to match.
+ if (memcmp(BuiltinName.data()+30, "nd", 2))
+ break;
+ return Intrinsic::hexagon_S2_asr_i_r_rnd; // "__builtin_HEXAGON_S2_asr_i_r_rnd"
+ }
+ break;
+ }
+ break;
+ case 'r': // 8 strings to match.
+ if (BuiltinName[26] != '_')
+ break;
+ switch (BuiltinName[27]) {
+ default: break;
+ case 'p': // 4 strings to match.
+ if (BuiltinName[28] != '_')
+ break;
+ switch (BuiltinName[29]) {
+ default: break;
+ case 'a': // 2 strings to match.
+ switch (BuiltinName[30]) {
+ default: break;
+ case 'c': // 1 string to match.
+ if (BuiltinName[31] != 'c')
+ break;
+ return Intrinsic::hexagon_S2_asr_r_p_acc; // "__builtin_HEXAGON_S2_asr_r_p_acc"
+ case 'n': // 1 string to match.
+ if (BuiltinName[31] != 'd')
+ break;
+ return Intrinsic::hexagon_S2_asr_r_p_and; // "__builtin_HEXAGON_S2_asr_r_p_and"
+ }
+ break;
+ case 'n': // 1 string to match.
+ if (memcmp(BuiltinName.data()+30, "ac", 2))
+ break;
+ return Intrinsic::hexagon_S2_asr_r_p_nac; // "__builtin_HEXAGON_S2_asr_r_p_nac"
+ case 'x': // 1 string to match.
+ if (memcmp(BuiltinName.data()+30, "or", 2))
+ break;
+ return Intrinsic::hexagon_S2_asr_r_p_xor; // "__builtin_HEXAGON_S2_asr_r_p_xor"
+ }
+ break;
+ case 'r': // 4 strings to match.
+ if (BuiltinName[28] != '_')
+ break;
+ switch (BuiltinName[29]) {
+ default: break;
+ case 'a': // 2 strings to match.
+ switch (BuiltinName[30]) {
+ default: break;
+ case 'c': // 1 string to match.
+ if (BuiltinName[31] != 'c')
+ break;
+ return Intrinsic::hexagon_S2_asr_r_r_acc; // "__builtin_HEXAGON_S2_asr_r_r_acc"
+ case 'n': // 1 string to match.
+ if (BuiltinName[31] != 'd')
+ break;
+ return Intrinsic::hexagon_S2_asr_r_r_and; // "__builtin_HEXAGON_S2_asr_r_r_and"
+ }
+ break;
+ case 'n': // 1 string to match.
+ if (memcmp(BuiltinName.data()+30, "ac", 2))
+ break;
+ return Intrinsic::hexagon_S2_asr_r_r_nac; // "__builtin_HEXAGON_S2_asr_r_r_nac"
+ case 's': // 1 string to match.
+ if (memcmp(BuiltinName.data()+30, "at", 2))
+ break;
+ return Intrinsic::hexagon_S2_asr_r_r_sat; // "__builtin_HEXAGON_S2_asr_r_r_sat"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 'e': // 1 string to match.
+ if (memcmp(BuiltinName.data()+22, "xtractu_rp", 10))
+ break;
+ return Intrinsic::hexagon_S2_extractu_rp; // "__builtin_HEXAGON_S2_extractu_rp"
+ case 'l': // 20 strings to match.
+ if (BuiltinName[22] != 's')
+ break;
+ switch (BuiltinName[23]) {
+ default: break;
+ case 'l': // 7 strings to match.
+ if (memcmp(BuiltinName.data()+24, "_r_", 3))
+ break;
+ switch (BuiltinName[27]) {
+ default: break;
+ case 'p': // 4 strings to match.
+ if (BuiltinName[28] != '_')
+ break;
+ switch (BuiltinName[29]) {
+ default: break;
+ case 'a': // 2 strings to match.
+ switch (BuiltinName[30]) {
+ default: break;
+ case 'c': // 1 string to match.
+ if (BuiltinName[31] != 'c')
+ break;
+ return Intrinsic::hexagon_S2_lsl_r_p_acc; // "__builtin_HEXAGON_S2_lsl_r_p_acc"
+ case 'n': // 1 string to match.
+ if (BuiltinName[31] != 'd')
+ break;
+ return Intrinsic::hexagon_S2_lsl_r_p_and; // "__builtin_HEXAGON_S2_lsl_r_p_and"
+ }
+ break;
+ case 'n': // 1 string to match.
+ if (memcmp(BuiltinName.data()+30, "ac", 2))
+ break;
+ return Intrinsic::hexagon_S2_lsl_r_p_nac; // "__builtin_HEXAGON_S2_lsl_r_p_nac"
+ case 'x': // 1 string to match.
+ if (memcmp(BuiltinName.data()+30, "or", 2))
+ break;
+ return Intrinsic::hexagon_S2_lsl_r_p_xor; // "__builtin_HEXAGON_S2_lsl_r_p_xor"
+ }
+ break;
+ case 'r': // 3 strings to match.
+ if (BuiltinName[28] != '_')
+ break;
+ switch (BuiltinName[29]) {
+ default: break;
+ case 'a': // 2 strings to match.
+ switch (BuiltinName[30]) {
+ default: break;
+ case 'c': // 1 string to match.
+ if (BuiltinName[31] != 'c')
+ break;
+ return Intrinsic::hexagon_S2_lsl_r_r_acc; // "__builtin_HEXAGON_S2_lsl_r_r_acc"
+ case 'n': // 1 string to match.
+ if (BuiltinName[31] != 'd')
+ break;
+ return Intrinsic::hexagon_S2_lsl_r_r_and; // "__builtin_HEXAGON_S2_lsl_r_r_and"
+ }
+ break;
+ case 'n': // 1 string to match.
+ if (memcmp(BuiltinName.data()+30, "ac", 2))
+ break;
+ return Intrinsic::hexagon_S2_lsl_r_r_nac; // "__builtin_HEXAGON_S2_lsl_r_r_nac"
+ }
+ break;
+ }
+ break;
+ case 'r': // 13 strings to match.
+ if (BuiltinName[24] != '_')
+ break;
+ switch (BuiltinName[25]) {
+ default: break;
+ case 'i': // 6 strings to match.
+ if (BuiltinName[26] != '_')
+ break;
+ switch (BuiltinName[27]) {
+ default: break;
+ case 'p': // 3 strings to match.
+ if (BuiltinName[28] != '_')
+ break;
+ switch (BuiltinName[29]) {
+ default: break;
+ case 'a': // 2 strings to match.
+ switch (BuiltinName[30]) {
+ default: break;
+ case 'c': // 1 string to match.
+ if (BuiltinName[31] != 'c')
+ break;
+ return Intrinsic::hexagon_S2_lsr_i_p_acc; // "__builtin_HEXAGON_S2_lsr_i_p_acc"
+ case 'n': // 1 string to match.
+ if (BuiltinName[31] != 'd')
+ break;
+ return Intrinsic::hexagon_S2_lsr_i_p_and; // "__builtin_HEXAGON_S2_lsr_i_p_and"
+ }
+ break;
+ case 'n': // 1 string to match.
+ if (memcmp(BuiltinName.data()+30, "ac", 2))
+ break;
+ return Intrinsic::hexagon_S2_lsr_i_p_nac; // "__builtin_HEXAGON_S2_lsr_i_p_nac"
+ }
+ break;
+ case 'r': // 3 strings to match.
+ if (BuiltinName[28] != '_')
+ break;
+ switch (BuiltinName[29]) {
+ default: break;
+ case 'a': // 2 strings to match.
+ switch (BuiltinName[30]) {
+ default: break;
+ case 'c': // 1 string to match.
+ if (BuiltinName[31] != 'c')
+ break;
+ return Intrinsic::hexagon_S2_lsr_i_r_acc; // "__builtin_HEXAGON_S2_lsr_i_r_acc"
+ case 'n': // 1 string to match.
+ if (BuiltinName[31] != 'd')
+ break;
+ return Intrinsic::hexagon_S2_lsr_i_r_and; // "__builtin_HEXAGON_S2_lsr_i_r_and"
+ }
+ break;
+ case 'n': // 1 string to match.
+ if (memcmp(BuiltinName.data()+30, "ac", 2))
+ break;
+ return Intrinsic::hexagon_S2_lsr_i_r_nac; // "__builtin_HEXAGON_S2_lsr_i_r_nac"
+ }
+ break;
+ }
+ break;
+ case 'r': // 7 strings to match.
+ if (BuiltinName[26] != '_')
+ break;
+ switch (BuiltinName[27]) {
+ default: break;
+ case 'p': // 4 strings to match.
+ if (BuiltinName[28] != '_')
+ break;
+ switch (BuiltinName[29]) {
+ default: break;
+ case 'a': // 2 strings to match.
+ switch (BuiltinName[30]) {
+ default: break;
+ case 'c': // 1 string to match.
+ if (BuiltinName[31] != 'c')
+ break;
+ return Intrinsic::hexagon_S2_lsr_r_p_acc; // "__builtin_HEXAGON_S2_lsr_r_p_acc"
+ case 'n': // 1 string to match.
+ if (BuiltinName[31] != 'd')
+ break;
+ return Intrinsic::hexagon_S2_lsr_r_p_and; // "__builtin_HEXAGON_S2_lsr_r_p_and"
+ }
+ break;
+ case 'n': // 1 string to match.
+ if (memcmp(BuiltinName.data()+30, "ac", 2))
+ break;
+ return Intrinsic::hexagon_S2_lsr_r_p_nac; // "__builtin_HEXAGON_S2_lsr_r_p_nac"
+ case 'x': // 1 string to match.
+ if (memcmp(BuiltinName.data()+30, "or", 2))
+ break;
+ return Intrinsic::hexagon_S2_lsr_r_p_xor; // "__builtin_HEXAGON_S2_lsr_r_p_xor"
+ }
+ break;
+ case 'r': // 3 strings to match.
+ if (BuiltinName[28] != '_')
+ break;
+ switch (BuiltinName[29]) {
+ default: break;
+ case 'a': // 2 strings to match.
+ switch (BuiltinName[30]) {
+ default: break;
+ case 'c': // 1 string to match.
+ if (BuiltinName[31] != 'c')
+ break;
+ return Intrinsic::hexagon_S2_lsr_r_r_acc; // "__builtin_HEXAGON_S2_lsr_r_r_acc"
+ case 'n': // 1 string to match.
+ if (BuiltinName[31] != 'd')
+ break;
+ return Intrinsic::hexagon_S2_lsr_r_r_and; // "__builtin_HEXAGON_S2_lsr_r_r_and"
+ }
+ break;
+ case 'n': // 1 string to match.
+ if (memcmp(BuiltinName.data()+30, "ac", 2))
+ break;
+ return Intrinsic::hexagon_S2_lsr_r_r_nac; // "__builtin_HEXAGON_S2_lsr_r_r_nac"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 't': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+22, "ogglebit_", 9))
+ break;
+ switch (BuiltinName[31]) {
+ default: break;
+ case 'i': // 1 string to match.
+ return Intrinsic::hexagon_S2_togglebit_i; // "__builtin_HEXAGON_S2_togglebit_i"
+ case 'r': // 1 string to match.
+ return Intrinsic::hexagon_S2_togglebit_r; // "__builtin_HEXAGON_S2_togglebit_r"
+ }
+ break;
+ case 'v': // 1 string to match.
+ if (memcmp(BuiltinName.data()+22, "rndpackwhs", 10))
+ break;
+ return Intrinsic::hexagon_S2_vrndpackwhs; // "__builtin_HEXAGON_S2_vrndpackwhs"
+ }
+ break;
+ case '4': // 7 strings to match.
+ if (BuiltinName[20] != '_')
+ break;
+ switch (BuiltinName[21]) {
+ default: break;
+ case 'a': // 4 strings to match.
+ switch (BuiltinName[22]) {
+ default: break;
+ case 'd': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+23, "di_", 3))
+ break;
+ switch (BuiltinName[26]) {
+ default: break;
+ case 'a': // 1 string to match.
+ if (memcmp(BuiltinName.data()+27, "sl_ri", 5))
+ break;
+ return Intrinsic::hexagon_S4_addi_asl_ri; // "__builtin_HEXAGON_S4_addi_asl_ri"
+ case 'l': // 1 string to match.
+ if (memcmp(BuiltinName.data()+27, "sr_ri", 5))
+ break;
+ return Intrinsic::hexagon_S4_addi_lsr_ri; // "__builtin_HEXAGON_S4_addi_lsr_ri"
+ }
+ break;
+ case 'n': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+23, "di_", 3))
+ break;
+ switch (BuiltinName[26]) {
+ default: break;
+ case 'a': // 1 string to match.
+ if (memcmp(BuiltinName.data()+27, "sl_ri", 5))
+ break;
+ return Intrinsic::hexagon_S4_andi_asl_ri; // "__builtin_HEXAGON_S4_andi_asl_ri"
+ case 'l': // 1 string to match.
+ if (memcmp(BuiltinName.data()+27, "sr_ri", 5))
+ break;
+ return Intrinsic::hexagon_S4_andi_lsr_ri; // "__builtin_HEXAGON_S4_andi_lsr_ri"
+ }
+ break;
+ }
+ break;
+ case 'e': // 1 string to match.
+ if (memcmp(BuiltinName.data()+22, "xtractp_rp", 10))
+ break;
+ return Intrinsic::hexagon_S4_extractp_rp; // "__builtin_HEXAGON_S4_extractp_rp"
+ case 's': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+22, "ubi_", 4))
+ break;
+ switch (BuiltinName[26]) {
+ default: break;
+ case 'a': // 1 string to match.
+ if (memcmp(BuiltinName.data()+27, "sl_ri", 5))
+ break;
+ return Intrinsic::hexagon_S4_subi_asl_ri; // "__builtin_HEXAGON_S4_subi_asl_ri"
+ case 'l': // 1 string to match.
+ if (memcmp(BuiltinName.data()+27, "sr_ri", 5))
+ break;
+ return Intrinsic::hexagon_S4_subi_lsr_ri; // "__builtin_HEXAGON_S4_subi_lsr_ri"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 33: // 9 strings to match.
+ if (memcmp(BuiltinName.data()+0, "__builtin_HEXAGON_", 18))
+ break;
+ switch (BuiltinName[18]) {
+ default: break;
+ case 'A': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+19, "4_round_r", 9))
+ break;
+ switch (BuiltinName[28]) {
+ default: break;
+ case 'i': // 1 string to match.
+ if (memcmp(BuiltinName.data()+29, "_sat", 4))
+ break;
+ return Intrinsic::hexagon_A4_round_ri_sat; // "__builtin_HEXAGON_A4_round_ri_sat"
+ case 'r': // 1 string to match.
+ if (memcmp(BuiltinName.data()+29, "_sat", 4))
+ break;
+ return Intrinsic::hexagon_A4_round_rr_sat; // "__builtin_HEXAGON_A4_round_rr_sat"
+ }
+ break;
+ case 'M': // 1 string to match.
+ if (memcmp(BuiltinName.data()+19, "2_vrcmpys_s1rp", 14))
+ break;
+ return Intrinsic::hexagon_M2_vrcmpys_s1rp; // "__builtin_HEXAGON_M2_vrcmpys_s1rp"
+ case 'S': // 6 strings to match.
+ if (memcmp(BuiltinName.data()+19, "2_", 2))
+ break;
+ switch (BuiltinName[21]) {
+ default: break;
+ case 'a': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+22, "sl_i_", 5))
+ break;
+ switch (BuiltinName[27]) {
+ default: break;
+ case 'p': // 1 string to match.
+ if (memcmp(BuiltinName.data()+28, "_xacc", 5))
+ break;
+ return Intrinsic::hexagon_S2_asl_i_p_xacc; // "__builtin_HEXAGON_S2_asl_i_p_xacc"
+ case 'r': // 1 string to match.
+ if (memcmp(BuiltinName.data()+28, "_xacc", 5))
+ break;
+ return Intrinsic::hexagon_S2_asl_i_r_xacc; // "__builtin_HEXAGON_S2_asl_i_r_xacc"
+ }
+ break;
+ case 'd': // 1 string to match.
+ if (memcmp(BuiltinName.data()+22, "einterleave", 11))
+ break;
+ return Intrinsic::hexagon_S2_deinterleave; // "__builtin_HEXAGON_S2_deinterleave"
+ case 'e': // 1 string to match.
+ if (memcmp(BuiltinName.data()+22, "xtractup_rp", 11))
+ break;
+ return Intrinsic::hexagon_S2_extractup_rp; // "__builtin_HEXAGON_S2_extractup_rp"
+ case 'l': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+22, "sr_i_", 5))
+ break;
+ switch (BuiltinName[27]) {
+ default: break;
+ case 'p': // 1 string to match.
+ if (memcmp(BuiltinName.data()+28, "_xacc", 5))
+ break;
+ return Intrinsic::hexagon_S2_lsr_i_p_xacc; // "__builtin_HEXAGON_S2_lsr_i_p_xacc"
+ case 'r': // 1 string to match.
+ if (memcmp(BuiltinName.data()+28, "_xacc", 5))
+ break;
+ return Intrinsic::hexagon_S2_lsr_i_r_xacc; // "__builtin_HEXAGON_S2_lsr_i_r_xacc"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 34: // 41 strings to match.
+ if (memcmp(BuiltinName.data()+0, "__builtin_HEXAGON_", 18))
+ break;
+ switch (BuiltinName[18]) {
+ default: break;
+ case 'M': // 38 strings to match.
+ switch (BuiltinName[19]) {
+ default: break;
+ case '2': // 35 strings to match.
+ if (BuiltinName[20] != '_')
+ break;
+ switch (BuiltinName[21]) {
+ default: break;
+ case 'm': // 33 strings to match.
+ if (memcmp(BuiltinName.data()+22, "py_", 3))
+ break;
+ switch (BuiltinName[25]) {
+ default: break;
+ case 'a': // 8 strings to match.
+ if (memcmp(BuiltinName.data()+26, "cc_", 3))
+ break;
+ switch (BuiltinName[29]) {
+ default: break;
+ case 'h': // 4 strings to match.
+ switch (BuiltinName[30]) {
+ default: break;
+ case 'h': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+31, "_s", 2))
+ break;
+ switch (BuiltinName[33]) {
+ default: break;
+ case '0': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpy_acc_hh_s0; // "__builtin_HEXAGON_M2_mpy_acc_hh_s0"
+ case '1': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpy_acc_hh_s1; // "__builtin_HEXAGON_M2_mpy_acc_hh_s1"
+ }
+ break;
+ case 'l': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+31, "_s", 2))
+ break;
+ switch (BuiltinName[33]) {
+ default: break;
+ case '0': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpy_acc_hl_s0; // "__builtin_HEXAGON_M2_mpy_acc_hl_s0"
+ case '1': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpy_acc_hl_s1; // "__builtin_HEXAGON_M2_mpy_acc_hl_s1"
+ }
+ break;
+ }
+ break;
+ case 'l': // 4 strings to match.
+ switch (BuiltinName[30]) {
+ default: break;
+ case 'h': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+31, "_s", 2))
+ break;
+ switch (BuiltinName[33]) {
+ default: break;
+ case '0': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpy_acc_lh_s0; // "__builtin_HEXAGON_M2_mpy_acc_lh_s0"
+ case '1': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpy_acc_lh_s1; // "__builtin_HEXAGON_M2_mpy_acc_lh_s1"
+ }
+ break;
+ case 'l': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+31, "_s", 2))
+ break;
+ switch (BuiltinName[33]) {
+ default: break;
+ case '0': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpy_acc_ll_s0; // "__builtin_HEXAGON_M2_mpy_acc_ll_s0"
+ case '1': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpy_acc_ll_s1; // "__builtin_HEXAGON_M2_mpy_acc_ll_s1"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 'n': // 8 strings to match.
+ if (memcmp(BuiltinName.data()+26, "ac_", 3))
+ break;
+ switch (BuiltinName[29]) {
+ default: break;
+ case 'h': // 4 strings to match.
+ switch (BuiltinName[30]) {
+ default: break;
+ case 'h': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+31, "_s", 2))
+ break;
+ switch (BuiltinName[33]) {
+ default: break;
+ case '0': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpy_nac_hh_s0; // "__builtin_HEXAGON_M2_mpy_nac_hh_s0"
+ case '1': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpy_nac_hh_s1; // "__builtin_HEXAGON_M2_mpy_nac_hh_s1"
+ }
+ break;
+ case 'l': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+31, "_s", 2))
+ break;
+ switch (BuiltinName[33]) {
+ default: break;
+ case '0': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpy_nac_hl_s0; // "__builtin_HEXAGON_M2_mpy_nac_hl_s0"
+ case '1': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpy_nac_hl_s1; // "__builtin_HEXAGON_M2_mpy_nac_hl_s1"
+ }
+ break;
+ }
+ break;
+ case 'l': // 4 strings to match.
+ switch (BuiltinName[30]) {
+ default: break;
+ case 'h': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+31, "_s", 2))
+ break;
+ switch (BuiltinName[33]) {
+ default: break;
+ case '0': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpy_nac_lh_s0; // "__builtin_HEXAGON_M2_mpy_nac_lh_s0"
+ case '1': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpy_nac_lh_s1; // "__builtin_HEXAGON_M2_mpy_nac_lh_s1"
+ }
+ break;
+ case 'l': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+31, "_s", 2))
+ break;
+ switch (BuiltinName[33]) {
+ default: break;
+ case '0': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpy_nac_ll_s0; // "__builtin_HEXAGON_M2_mpy_nac_ll_s0"
+ case '1': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpy_nac_ll_s1; // "__builtin_HEXAGON_M2_mpy_nac_ll_s1"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 'r': // 8 strings to match.
+ if (memcmp(BuiltinName.data()+26, "nd_", 3))
+ break;
+ switch (BuiltinName[29]) {
+ default: break;
+ case 'h': // 4 strings to match.
+ switch (BuiltinName[30]) {
+ default: break;
+ case 'h': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+31, "_s", 2))
+ break;
+ switch (BuiltinName[33]) {
+ default: break;
+ case '0': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpy_rnd_hh_s0; // "__builtin_HEXAGON_M2_mpy_rnd_hh_s0"
+ case '1': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpy_rnd_hh_s1; // "__builtin_HEXAGON_M2_mpy_rnd_hh_s1"
+ }
+ break;
+ case 'l': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+31, "_s", 2))
+ break;
+ switch (BuiltinName[33]) {
+ default: break;
+ case '0': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpy_rnd_hl_s0; // "__builtin_HEXAGON_M2_mpy_rnd_hl_s0"
+ case '1': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpy_rnd_hl_s1; // "__builtin_HEXAGON_M2_mpy_rnd_hl_s1"
+ }
+ break;
+ }
+ break;
+ case 'l': // 4 strings to match.
+ switch (BuiltinName[30]) {
+ default: break;
+ case 'h': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+31, "_s", 2))
+ break;
+ switch (BuiltinName[33]) {
+ default: break;
+ case '0': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpy_rnd_lh_s0; // "__builtin_HEXAGON_M2_mpy_rnd_lh_s0"
+ case '1': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpy_rnd_lh_s1; // "__builtin_HEXAGON_M2_mpy_rnd_lh_s1"
+ }
+ break;
+ case 'l': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+31, "_s", 2))
+ break;
+ switch (BuiltinName[33]) {
+ default: break;
+ case '0': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpy_rnd_ll_s0; // "__builtin_HEXAGON_M2_mpy_rnd_ll_s0"
+ case '1': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpy_rnd_ll_s1; // "__builtin_HEXAGON_M2_mpy_rnd_ll_s1"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 's': // 8 strings to match.
+ if (memcmp(BuiltinName.data()+26, "at_", 3))
+ break;
+ switch (BuiltinName[29]) {
+ default: break;
+ case 'h': // 4 strings to match.
+ switch (BuiltinName[30]) {
+ default: break;
+ case 'h': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+31, "_s", 2))
+ break;
+ switch (BuiltinName[33]) {
+ default: break;
+ case '0': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpy_sat_hh_s0; // "__builtin_HEXAGON_M2_mpy_sat_hh_s0"
+ case '1': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpy_sat_hh_s1; // "__builtin_HEXAGON_M2_mpy_sat_hh_s1"
+ }
+ break;
+ case 'l': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+31, "_s", 2))
+ break;
+ switch (BuiltinName[33]) {
+ default: break;
+ case '0': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpy_sat_hl_s0; // "__builtin_HEXAGON_M2_mpy_sat_hl_s0"
+ case '1': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpy_sat_hl_s1; // "__builtin_HEXAGON_M2_mpy_sat_hl_s1"
+ }
+ break;
+ }
+ break;
+ case 'l': // 4 strings to match.
+ switch (BuiltinName[30]) {
+ default: break;
+ case 'h': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+31, "_s", 2))
+ break;
+ switch (BuiltinName[33]) {
+ default: break;
+ case '0': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpy_sat_lh_s0; // "__builtin_HEXAGON_M2_mpy_sat_lh_s0"
+ case '1': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpy_sat_lh_s1; // "__builtin_HEXAGON_M2_mpy_sat_lh_s1"
+ }
+ break;
+ case 'l': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+31, "_s", 2))
+ break;
+ switch (BuiltinName[33]) {
+ default: break;
+ case '0': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpy_sat_ll_s0; // "__builtin_HEXAGON_M2_mpy_sat_ll_s0"
+ case '1': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpy_sat_ll_s1; // "__builtin_HEXAGON_M2_mpy_sat_ll_s1"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 'u': // 1 string to match.
+ if (memcmp(BuiltinName.data()+26, "p_s1_sat", 8))
+ break;
+ return Intrinsic::hexagon_M2_mpy_up_s1_sat; // "__builtin_HEXAGON_M2_mpy_up_s1_sat"
+ }
+ break;
+ case 'v': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+22, "mpy2s_s", 7))
+ break;
+ switch (BuiltinName[29]) {
+ default: break;
+ case '0': // 1 string to match.
+ if (memcmp(BuiltinName.data()+30, "pack", 4))
+ break;
+ return Intrinsic::hexagon_M2_vmpy2s_s0pack; // "__builtin_HEXAGON_M2_vmpy2s_s0pack"
+ case '1': // 1 string to match.
+ if (memcmp(BuiltinName.data()+30, "pack", 4))
+ break;
+ return Intrinsic::hexagon_M2_vmpy2s_s1pack; // "__builtin_HEXAGON_M2_vmpy2s_s1pack"
+ }
+ break;
+ }
+ break;
+ case '4': // 3 strings to match.
+ if (BuiltinName[20] != '_')
+ break;
+ switch (BuiltinName[21]) {
+ default: break;
+ case 'm': // 2 strings to match.
+ switch (BuiltinName[22]) {
+ default: break;
+ case 'a': // 1 string to match.
+ if (memcmp(BuiltinName.data()+23, "c_up_s1_sat", 11))
+ break;
+ return Intrinsic::hexagon_M4_mac_up_s1_sat; // "__builtin_HEXAGON_M4_mac_up_s1_sat"
+ case 'p': // 1 string to match.
+ if (memcmp(BuiltinName.data()+23, "yri_addr_u2", 11))
+ break;
+ return Intrinsic::hexagon_M4_mpyri_addr_u2; // "__builtin_HEXAGON_M4_mpyri_addr_u2"
+ }
+ break;
+ case 'n': // 1 string to match.
+ if (memcmp(BuiltinName.data()+22, "ac_up_s1_sat", 12))
+ break;
+ return Intrinsic::hexagon_M4_nac_up_s1_sat; // "__builtin_HEXAGON_M4_nac_up_s1_sat"
+ }
+ break;
+ }
+ break;
+ case 'S': // 3 strings to match.
+ switch (BuiltinName[19]) {
+ default: break;
+ case '2': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+20, "_vsat", 5))
+ break;
+ switch (BuiltinName[25]) {
+ default: break;
+ case 'h': // 1 string to match.
+ if (memcmp(BuiltinName.data()+26, "b_nopack", 8))
+ break;
+ return Intrinsic::hexagon_S2_vsathb_nopack; // "__builtin_HEXAGON_S2_vsathb_nopack"
+ case 'w': // 1 string to match.
+ if (memcmp(BuiltinName.data()+26, "h_nopack", 8))
+ break;
+ return Intrinsic::hexagon_S2_vsatwh_nopack; // "__builtin_HEXAGON_S2_vsatwh_nopack"
+ }
+ break;
+ case '4': // 1 string to match.
+ if (memcmp(BuiltinName.data()+20, "_vrcrotate_acc", 14))
+ break;
+ return Intrinsic::hexagon_S4_vrcrotate_acc; // "__builtin_HEXAGON_S4_vrcrotate_acc"
+ }
+ break;
+ }
+ break;
+ case 35: // 64 strings to match.
+ if (memcmp(BuiltinName.data()+0, "__builtin_HEXAGON_", 18))
+ break;
+ switch (BuiltinName[18]) {
+ default: break;
+ case 'F': // 4 strings to match.
+ if (memcmp(BuiltinName.data()+19, "2_conv_", 7))
+ break;
+ switch (BuiltinName[26]) {
+ default: break;
+ case 'd': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+27, "f2", 2))
+ break;
+ switch (BuiltinName[29]) {
+ default: break;
+ case 'd': // 1 string to match.
+ if (memcmp(BuiltinName.data()+30, "_chop", 5))
+ break;
+ return Intrinsic::hexagon_F2_conv_df2d_chop; // "__builtin_HEXAGON_F2_conv_df2d_chop"
+ case 'w': // 1 string to match.
+ if (memcmp(BuiltinName.data()+30, "_chop", 5))
+ break;
+ return Intrinsic::hexagon_F2_conv_df2w_chop; // "__builtin_HEXAGON_F2_conv_df2w_chop"
+ }
+ break;
+ case 's': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+27, "f2", 2))
+ break;
+ switch (BuiltinName[29]) {
+ default: break;
+ case 'd': // 1 string to match.
+ if (memcmp(BuiltinName.data()+30, "_chop", 5))
+ break;
+ return Intrinsic::hexagon_F2_conv_sf2d_chop; // "__builtin_HEXAGON_F2_conv_sf2d_chop"
+ case 'w': // 1 string to match.
+ if (memcmp(BuiltinName.data()+30, "_chop", 5))
+ break;
+ return Intrinsic::hexagon_F2_conv_sf2w_chop; // "__builtin_HEXAGON_F2_conv_sf2w_chop"
+ }
+ break;
+ }
+ break;
+ case 'M': // 56 strings to match.
+ switch (BuiltinName[19]) {
+ default: break;
+ case '2': // 52 strings to match.
+ if (BuiltinName[20] != '_')
+ break;
+ switch (BuiltinName[21]) {
+ default: break;
+ case 'd': // 5 strings to match.
+ if (memcmp(BuiltinName.data()+22, "pmpy", 4))
+ break;
+ switch (BuiltinName[26]) {
+ default: break;
+ case 's': // 3 strings to match.
+ if (memcmp(BuiltinName.data()+27, "s_", 2))
+ break;
+ switch (BuiltinName[29]) {
+ default: break;
+ case 'a': // 1 string to match.
+ if (memcmp(BuiltinName.data()+30, "cc_s0", 5))
+ break;
+ return Intrinsic::hexagon_M2_dpmpyss_acc_s0; // "__builtin_HEXAGON_M2_dpmpyss_acc_s0"
+ case 'n': // 1 string to match.
+ if (memcmp(BuiltinName.data()+30, "ac_s0", 5))
+ break;
+ return Intrinsic::hexagon_M2_dpmpyss_nac_s0; // "__builtin_HEXAGON_M2_dpmpyss_nac_s0"
+ case 'r': // 1 string to match.
+ if (memcmp(BuiltinName.data()+30, "nd_s0", 5))
+ break;
+ return Intrinsic::hexagon_M2_dpmpyss_rnd_s0; // "__builtin_HEXAGON_M2_dpmpyss_rnd_s0"
+ }
+ break;
+ case 'u': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+27, "u_", 2))
+ break;
+ switch (BuiltinName[29]) {
+ default: break;
+ case 'a': // 1 string to match.
+ if (memcmp(BuiltinName.data()+30, "cc_s0", 5))
+ break;
+ return Intrinsic::hexagon_M2_dpmpyuu_acc_s0; // "__builtin_HEXAGON_M2_dpmpyuu_acc_s0"
+ case 'n': // 1 string to match.
+ if (memcmp(BuiltinName.data()+30, "ac_s0", 5))
+ break;
+ return Intrinsic::hexagon_M2_dpmpyuu_nac_s0; // "__builtin_HEXAGON_M2_dpmpyuu_nac_s0"
+ }
+ break;
+ }
+ break;
+ case 'm': // 40 strings to match.
+ if (memcmp(BuiltinName.data()+22, "py", 2))
+ break;
+ switch (BuiltinName[24]) {
+ default: break;
+ case 'd': // 24 strings to match.
+ if (BuiltinName[25] != '_')
+ break;
+ switch (BuiltinName[26]) {
+ default: break;
+ case 'a': // 8 strings to match.
+ if (memcmp(BuiltinName.data()+27, "cc_", 3))
+ break;
+ switch (BuiltinName[30]) {
+ default: break;
+ case 'h': // 4 strings to match.
+ switch (BuiltinName[31]) {
+ default: break;
+ case 'h': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+32, "_s", 2))
+ break;
+ switch (BuiltinName[34]) {
+ default: break;
+ case '0': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpyd_acc_hh_s0; // "__builtin_HEXAGON_M2_mpyd_acc_hh_s0"
+ case '1': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpyd_acc_hh_s1; // "__builtin_HEXAGON_M2_mpyd_acc_hh_s1"
+ }
+ break;
+ case 'l': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+32, "_s", 2))
+ break;
+ switch (BuiltinName[34]) {
+ default: break;
+ case '0': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpyd_acc_hl_s0; // "__builtin_HEXAGON_M2_mpyd_acc_hl_s0"
+ case '1': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpyd_acc_hl_s1; // "__builtin_HEXAGON_M2_mpyd_acc_hl_s1"
+ }
+ break;
+ }
+ break;
+ case 'l': // 4 strings to match.
+ switch (BuiltinName[31]) {
+ default: break;
+ case 'h': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+32, "_s", 2))
+ break;
+ switch (BuiltinName[34]) {
+ default: break;
+ case '0': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpyd_acc_lh_s0; // "__builtin_HEXAGON_M2_mpyd_acc_lh_s0"
+ case '1': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpyd_acc_lh_s1; // "__builtin_HEXAGON_M2_mpyd_acc_lh_s1"
+ }
+ break;
+ case 'l': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+32, "_s", 2))
+ break;
+ switch (BuiltinName[34]) {
+ default: break;
+ case '0': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpyd_acc_ll_s0; // "__builtin_HEXAGON_M2_mpyd_acc_ll_s0"
+ case '1': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpyd_acc_ll_s1; // "__builtin_HEXAGON_M2_mpyd_acc_ll_s1"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 'n': // 8 strings to match.
+ if (memcmp(BuiltinName.data()+27, "ac_", 3))
+ break;
+ switch (BuiltinName[30]) {
+ default: break;
+ case 'h': // 4 strings to match.
+ switch (BuiltinName[31]) {
+ default: break;
+ case 'h': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+32, "_s", 2))
+ break;
+ switch (BuiltinName[34]) {
+ default: break;
+ case '0': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpyd_nac_hh_s0; // "__builtin_HEXAGON_M2_mpyd_nac_hh_s0"
+ case '1': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpyd_nac_hh_s1; // "__builtin_HEXAGON_M2_mpyd_nac_hh_s1"
+ }
+ break;
+ case 'l': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+32, "_s", 2))
+ break;
+ switch (BuiltinName[34]) {
+ default: break;
+ case '0': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpyd_nac_hl_s0; // "__builtin_HEXAGON_M2_mpyd_nac_hl_s0"
+ case '1': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpyd_nac_hl_s1; // "__builtin_HEXAGON_M2_mpyd_nac_hl_s1"
+ }
+ break;
+ }
+ break;
+ case 'l': // 4 strings to match.
+ switch (BuiltinName[31]) {
+ default: break;
+ case 'h': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+32, "_s", 2))
+ break;
+ switch (BuiltinName[34]) {
+ default: break;
+ case '0': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpyd_nac_lh_s0; // "__builtin_HEXAGON_M2_mpyd_nac_lh_s0"
+ case '1': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpyd_nac_lh_s1; // "__builtin_HEXAGON_M2_mpyd_nac_lh_s1"
+ }
+ break;
+ case 'l': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+32, "_s", 2))
+ break;
+ switch (BuiltinName[34]) {
+ default: break;
+ case '0': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpyd_nac_ll_s0; // "__builtin_HEXAGON_M2_mpyd_nac_ll_s0"
+ case '1': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpyd_nac_ll_s1; // "__builtin_HEXAGON_M2_mpyd_nac_ll_s1"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 'r': // 8 strings to match.
+ if (memcmp(BuiltinName.data()+27, "nd_", 3))
+ break;
+ switch (BuiltinName[30]) {
+ default: break;
+ case 'h': // 4 strings to match.
+ switch (BuiltinName[31]) {
+ default: break;
+ case 'h': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+32, "_s", 2))
+ break;
+ switch (BuiltinName[34]) {
+ default: break;
+ case '0': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpyd_rnd_hh_s0; // "__builtin_HEXAGON_M2_mpyd_rnd_hh_s0"
+ case '1': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpyd_rnd_hh_s1; // "__builtin_HEXAGON_M2_mpyd_rnd_hh_s1"
+ }
+ break;
+ case 'l': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+32, "_s", 2))
+ break;
+ switch (BuiltinName[34]) {
+ default: break;
+ case '0': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpyd_rnd_hl_s0; // "__builtin_HEXAGON_M2_mpyd_rnd_hl_s0"
+ case '1': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpyd_rnd_hl_s1; // "__builtin_HEXAGON_M2_mpyd_rnd_hl_s1"
+ }
+ break;
+ }
+ break;
+ case 'l': // 4 strings to match.
+ switch (BuiltinName[31]) {
+ default: break;
+ case 'h': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+32, "_s", 2))
+ break;
+ switch (BuiltinName[34]) {
+ default: break;
+ case '0': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpyd_rnd_lh_s0; // "__builtin_HEXAGON_M2_mpyd_rnd_lh_s0"
+ case '1': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpyd_rnd_lh_s1; // "__builtin_HEXAGON_M2_mpyd_rnd_lh_s1"
+ }
+ break;
+ case 'l': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+32, "_s", 2))
+ break;
+ switch (BuiltinName[34]) {
+ default: break;
+ case '0': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpyd_rnd_ll_s0; // "__builtin_HEXAGON_M2_mpyd_rnd_ll_s0"
+ case '1': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpyd_rnd_ll_s1; // "__builtin_HEXAGON_M2_mpyd_rnd_ll_s1"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 'u': // 16 strings to match.
+ if (BuiltinName[25] != '_')
+ break;
+ switch (BuiltinName[26]) {
+ default: break;
+ case 'a': // 8 strings to match.
+ if (memcmp(BuiltinName.data()+27, "cc_", 3))
+ break;
+ switch (BuiltinName[30]) {
+ default: break;
+ case 'h': // 4 strings to match.
+ switch (BuiltinName[31]) {
+ default: break;
+ case 'h': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+32, "_s", 2))
+ break;
+ switch (BuiltinName[34]) {
+ default: break;
+ case '0': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpyu_acc_hh_s0; // "__builtin_HEXAGON_M2_mpyu_acc_hh_s0"
+ case '1': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpyu_acc_hh_s1; // "__builtin_HEXAGON_M2_mpyu_acc_hh_s1"
+ }
+ break;
+ case 'l': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+32, "_s", 2))
+ break;
+ switch (BuiltinName[34]) {
+ default: break;
+ case '0': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpyu_acc_hl_s0; // "__builtin_HEXAGON_M2_mpyu_acc_hl_s0"
+ case '1': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpyu_acc_hl_s1; // "__builtin_HEXAGON_M2_mpyu_acc_hl_s1"
+ }
+ break;
+ }
+ break;
+ case 'l': // 4 strings to match.
+ switch (BuiltinName[31]) {
+ default: break;
+ case 'h': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+32, "_s", 2))
+ break;
+ switch (BuiltinName[34]) {
+ default: break;
+ case '0': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpyu_acc_lh_s0; // "__builtin_HEXAGON_M2_mpyu_acc_lh_s0"
+ case '1': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpyu_acc_lh_s1; // "__builtin_HEXAGON_M2_mpyu_acc_lh_s1"
+ }
+ break;
+ case 'l': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+32, "_s", 2))
+ break;
+ switch (BuiltinName[34]) {
+ default: break;
+ case '0': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpyu_acc_ll_s0; // "__builtin_HEXAGON_M2_mpyu_acc_ll_s0"
+ case '1': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpyu_acc_ll_s1; // "__builtin_HEXAGON_M2_mpyu_acc_ll_s1"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 'n': // 8 strings to match.
+ if (memcmp(BuiltinName.data()+27, "ac_", 3))
+ break;
+ switch (BuiltinName[30]) {
+ default: break;
+ case 'h': // 4 strings to match.
+ switch (BuiltinName[31]) {
+ default: break;
+ case 'h': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+32, "_s", 2))
+ break;
+ switch (BuiltinName[34]) {
+ default: break;
+ case '0': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpyu_nac_hh_s0; // "__builtin_HEXAGON_M2_mpyu_nac_hh_s0"
+ case '1': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpyu_nac_hh_s1; // "__builtin_HEXAGON_M2_mpyu_nac_hh_s1"
+ }
+ break;
+ case 'l': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+32, "_s", 2))
+ break;
+ switch (BuiltinName[34]) {
+ default: break;
+ case '0': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpyu_nac_hl_s0; // "__builtin_HEXAGON_M2_mpyu_nac_hl_s0"
+ case '1': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpyu_nac_hl_s1; // "__builtin_HEXAGON_M2_mpyu_nac_hl_s1"
+ }
+ break;
+ }
+ break;
+ case 'l': // 4 strings to match.
+ switch (BuiltinName[31]) {
+ default: break;
+ case 'h': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+32, "_s", 2))
+ break;
+ switch (BuiltinName[34]) {
+ default: break;
+ case '0': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpyu_nac_lh_s0; // "__builtin_HEXAGON_M2_mpyu_nac_lh_s0"
+ case '1': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpyu_nac_lh_s1; // "__builtin_HEXAGON_M2_mpyu_nac_lh_s1"
+ }
+ break;
+ case 'l': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+32, "_s", 2))
+ break;
+ switch (BuiltinName[34]) {
+ default: break;
+ case '0': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpyu_nac_ll_s0; // "__builtin_HEXAGON_M2_mpyu_nac_ll_s0"
+ case '1': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpyu_nac_ll_s1; // "__builtin_HEXAGON_M2_mpyu_nac_ll_s1"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 'v': // 7 strings to match.
+ switch (BuiltinName[22]) {
+ default: break;
+ case 'c': // 6 strings to match.
+ if (BuiltinName[23] != 'm')
+ break;
+ switch (BuiltinName[24]) {
+ default: break;
+ case 'a': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+25, "c_s0_sat_", 9))
+ break;
+ switch (BuiltinName[34]) {
+ default: break;
+ case 'i': // 1 string to match.
+ return Intrinsic::hexagon_M2_vcmac_s0_sat_i; // "__builtin_HEXAGON_M2_vcmac_s0_sat_i"
+ case 'r': // 1 string to match.
+ return Intrinsic::hexagon_M2_vcmac_s0_sat_r; // "__builtin_HEXAGON_M2_vcmac_s0_sat_r"
+ }
+ break;
+ case 'p': // 4 strings to match.
+ if (memcmp(BuiltinName.data()+25, "y_s", 3))
+ break;
+ switch (BuiltinName[28]) {
+ default: break;
+ case '0': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+29, "_sat_", 5))
+ break;
+ switch (BuiltinName[34]) {
+ default: break;
+ case 'i': // 1 string to match.
+ return Intrinsic::hexagon_M2_vcmpy_s0_sat_i; // "__builtin_HEXAGON_M2_vcmpy_s0_sat_i"
+ case 'r': // 1 string to match.
+ return Intrinsic::hexagon_M2_vcmpy_s0_sat_r; // "__builtin_HEXAGON_M2_vcmpy_s0_sat_r"
+ }
+ break;
+ case '1': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+29, "_sat_", 5))
+ break;
+ switch (BuiltinName[34]) {
+ default: break;
+ case 'i': // 1 string to match.
+ return Intrinsic::hexagon_M2_vcmpy_s1_sat_i; // "__builtin_HEXAGON_M2_vcmpy_s1_sat_i"
+ case 'r': // 1 string to match.
+ return Intrinsic::hexagon_M2_vcmpy_s1_sat_r; // "__builtin_HEXAGON_M2_vcmpy_s1_sat_r"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 'r': // 1 string to match.
+ if (memcmp(BuiltinName.data()+23, "cmpys_acc_s1", 12))
+ break;
+ return Intrinsic::hexagon_M2_vrcmpys_acc_s1; // "__builtin_HEXAGON_M2_vrcmpys_acc_s1"
+ }
+ break;
+ }
+ break;
+ case '4': // 4 strings to match.
+ if (memcmp(BuiltinName.data()+20, "_vrmpy", 6))
+ break;
+ switch (BuiltinName[26]) {
+ default: break;
+ case 'e': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+27, "h_acc_s", 7))
+ break;
+ switch (BuiltinName[34]) {
+ default: break;
+ case '0': // 1 string to match.
+ return Intrinsic::hexagon_M4_vrmpyeh_acc_s0; // "__builtin_HEXAGON_M4_vrmpyeh_acc_s0"
+ case '1': // 1 string to match.
+ return Intrinsic::hexagon_M4_vrmpyeh_acc_s1; // "__builtin_HEXAGON_M4_vrmpyeh_acc_s1"
+ }
+ break;
+ case 'o': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+27, "h_acc_s", 7))
+ break;
+ switch (BuiltinName[34]) {
+ default: break;
+ case '0': // 1 string to match.
+ return Intrinsic::hexagon_M4_vrmpyoh_acc_s0; // "__builtin_HEXAGON_M4_vrmpyoh_acc_s0"
+ case '1': // 1 string to match.
+ return Intrinsic::hexagon_M4_vrmpyoh_acc_s1; // "__builtin_HEXAGON_M4_vrmpyoh_acc_s1"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 'S': // 4 strings to match.
+ if (memcmp(BuiltinName.data()+19, "2_", 2))
+ break;
+ switch (BuiltinName[21]) {
+ default: break;
+ case 'a': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+22, "sr_", 3))
+ break;
+ switch (BuiltinName[25]) {
+ default: break;
+ case 'i': // 1 string to match.
+ if (memcmp(BuiltinName.data()+26, "_svw_trun", 9))
+ break;
+ return Intrinsic::hexagon_S2_asr_i_svw_trun; // "__builtin_HEXAGON_S2_asr_i_svw_trun"
+ case 'r': // 1 string to match.
+ if (memcmp(BuiltinName.data()+26, "_svw_trun", 9))
+ break;
+ return Intrinsic::hexagon_S2_asr_r_svw_trun; // "__builtin_HEXAGON_S2_asr_r_svw_trun"
+ }
+ break;
+ case 'v': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+22, "sat", 3))
+ break;
+ switch (BuiltinName[25]) {
+ default: break;
+ case 'h': // 1 string to match.
+ if (memcmp(BuiltinName.data()+26, "ub_nopack", 9))
+ break;
+ return Intrinsic::hexagon_S2_vsathub_nopack; // "__builtin_HEXAGON_S2_vsathub_nopack"
+ case 'w': // 1 string to match.
+ if (memcmp(BuiltinName.data()+26, "uh_nopack", 9))
+ break;
+ return Intrinsic::hexagon_S2_vsatwuh_nopack; // "__builtin_HEXAGON_S2_vsatwuh_nopack"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 36: // 33 strings to match.
+ if (memcmp(BuiltinName.data()+0, "__builtin_HEXAGON_", 18))
+ break;
+ switch (BuiltinName[18]) {
+ default: break;
+ case 'A': // 12 strings to match.
+ if (memcmp(BuiltinName.data()+19, "2_", 2))
+ break;
+ switch (BuiltinName[21]) {
+ default: break;
+ case 'a': // 6 strings to match.
+ if (memcmp(BuiltinName.data()+22, "ddh_", 4))
+ break;
+ switch (BuiltinName[26]) {
+ default: break;
+ case 'h': // 4 strings to match.
+ if (memcmp(BuiltinName.data()+27, "16_sat_", 7))
+ break;
+ switch (BuiltinName[34]) {
+ default: break;
+ case 'h': // 2 strings to match.
+ switch (BuiltinName[35]) {
+ default: break;
+ case 'h': // 1 string to match.
+ return Intrinsic::hexagon_A2_addh_h16_sat_hh; // "__builtin_HEXAGON_A2_addh_h16_sat_hh"
+ case 'l': // 1 string to match.
+ return Intrinsic::hexagon_A2_addh_h16_sat_hl; // "__builtin_HEXAGON_A2_addh_h16_sat_hl"
+ }
+ break;
+ case 'l': // 2 strings to match.
+ switch (BuiltinName[35]) {
+ default: break;
+ case 'h': // 1 string to match.
+ return Intrinsic::hexagon_A2_addh_h16_sat_lh; // "__builtin_HEXAGON_A2_addh_h16_sat_lh"
+ case 'l': // 1 string to match.
+ return Intrinsic::hexagon_A2_addh_h16_sat_ll; // "__builtin_HEXAGON_A2_addh_h16_sat_ll"
+ }
+ break;
+ }
+ break;
+ case 'l': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+27, "16_sat_", 7))
+ break;
+ switch (BuiltinName[34]) {
+ default: break;
+ case 'h': // 1 string to match.
+ if (BuiltinName[35] != 'l')
+ break;
+ return Intrinsic::hexagon_A2_addh_l16_sat_hl; // "__builtin_HEXAGON_A2_addh_l16_sat_hl"
+ case 'l': // 1 string to match.
+ if (BuiltinName[35] != 'l')
+ break;
+ return Intrinsic::hexagon_A2_addh_l16_sat_ll; // "__builtin_HEXAGON_A2_addh_l16_sat_ll"
+ }
+ break;
+ }
+ break;
+ case 's': // 6 strings to match.
+ if (memcmp(BuiltinName.data()+22, "ubh_", 4))
+ break;
+ switch (BuiltinName[26]) {
+ default: break;
+ case 'h': // 4 strings to match.
+ if (memcmp(BuiltinName.data()+27, "16_sat_", 7))
+ break;
+ switch (BuiltinName[34]) {
+ default: break;
+ case 'h': // 2 strings to match.
+ switch (BuiltinName[35]) {
+ default: break;
+ case 'h': // 1 string to match.
+ return Intrinsic::hexagon_A2_subh_h16_sat_hh; // "__builtin_HEXAGON_A2_subh_h16_sat_hh"
+ case 'l': // 1 string to match.
+ return Intrinsic::hexagon_A2_subh_h16_sat_hl; // "__builtin_HEXAGON_A2_subh_h16_sat_hl"
+ }
+ break;
+ case 'l': // 2 strings to match.
+ switch (BuiltinName[35]) {
+ default: break;
+ case 'h': // 1 string to match.
+ return Intrinsic::hexagon_A2_subh_h16_sat_lh; // "__builtin_HEXAGON_A2_subh_h16_sat_lh"
+ case 'l': // 1 string to match.
+ return Intrinsic::hexagon_A2_subh_h16_sat_ll; // "__builtin_HEXAGON_A2_subh_h16_sat_ll"
+ }
+ break;
+ }
+ break;
+ case 'l': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+27, "16_sat_", 7))
+ break;
+ switch (BuiltinName[34]) {
+ default: break;
+ case 'h': // 1 string to match.
+ if (BuiltinName[35] != 'l')
+ break;
+ return Intrinsic::hexagon_A2_subh_l16_sat_hl; // "__builtin_HEXAGON_A2_subh_l16_sat_hl"
+ case 'l': // 1 string to match.
+ if (BuiltinName[35] != 'l')
+ break;
+ return Intrinsic::hexagon_A2_subh_l16_sat_ll; // "__builtin_HEXAGON_A2_subh_l16_sat_ll"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 'C': // 1 string to match.
+ if (memcmp(BuiltinName.data()+19, "4_fastcorner9_not", 17))
+ break;
+ return Intrinsic::hexagon_C4_fastcorner9_not; // "__builtin_HEXAGON_C4_fastcorner9_not"
+ case 'F': // 4 strings to match.
+ if (memcmp(BuiltinName.data()+19, "2_conv_", 7))
+ break;
+ switch (BuiltinName[26]) {
+ default: break;
+ case 'd': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+27, "f2u", 3))
+ break;
+ switch (BuiltinName[30]) {
+ default: break;
+ case 'd': // 1 string to match.
+ if (memcmp(BuiltinName.data()+31, "_chop", 5))
+ break;
+ return Intrinsic::hexagon_F2_conv_df2ud_chop; // "__builtin_HEXAGON_F2_conv_df2ud_chop"
+ case 'w': // 1 string to match.
+ if (memcmp(BuiltinName.data()+31, "_chop", 5))
+ break;
+ return Intrinsic::hexagon_F2_conv_df2uw_chop; // "__builtin_HEXAGON_F2_conv_df2uw_chop"
+ }
+ break;
+ case 's': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+27, "f2u", 3))
+ break;
+ switch (BuiltinName[30]) {
+ default: break;
+ case 'd': // 1 string to match.
+ if (memcmp(BuiltinName.data()+31, "_chop", 5))
+ break;
+ return Intrinsic::hexagon_F2_conv_sf2ud_chop; // "__builtin_HEXAGON_F2_conv_sf2ud_chop"
+ case 'w': // 1 string to match.
+ if (memcmp(BuiltinName.data()+31, "_chop", 5))
+ break;
+ return Intrinsic::hexagon_F2_conv_sf2uw_chop; // "__builtin_HEXAGON_F2_conv_sf2uw_chop"
+ }
+ break;
+ }
+ break;
+ case 'M': // 16 strings to match.
+ if (memcmp(BuiltinName.data()+19, "2_mpyud_", 8))
+ break;
+ switch (BuiltinName[27]) {
+ default: break;
+ case 'a': // 8 strings to match.
+ if (memcmp(BuiltinName.data()+28, "cc_", 3))
+ break;
+ switch (BuiltinName[31]) {
+ default: break;
+ case 'h': // 4 strings to match.
+ switch (BuiltinName[32]) {
+ default: break;
+ case 'h': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+33, "_s", 2))
+ break;
+ switch (BuiltinName[35]) {
+ default: break;
+ case '0': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpyud_acc_hh_s0; // "__builtin_HEXAGON_M2_mpyud_acc_hh_s0"
+ case '1': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpyud_acc_hh_s1; // "__builtin_HEXAGON_M2_mpyud_acc_hh_s1"
+ }
+ break;
+ case 'l': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+33, "_s", 2))
+ break;
+ switch (BuiltinName[35]) {
+ default: break;
+ case '0': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpyud_acc_hl_s0; // "__builtin_HEXAGON_M2_mpyud_acc_hl_s0"
+ case '1': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpyud_acc_hl_s1; // "__builtin_HEXAGON_M2_mpyud_acc_hl_s1"
+ }
+ break;
+ }
+ break;
+ case 'l': // 4 strings to match.
+ switch (BuiltinName[32]) {
+ default: break;
+ case 'h': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+33, "_s", 2))
+ break;
+ switch (BuiltinName[35]) {
+ default: break;
+ case '0': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpyud_acc_lh_s0; // "__builtin_HEXAGON_M2_mpyud_acc_lh_s0"
+ case '1': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpyud_acc_lh_s1; // "__builtin_HEXAGON_M2_mpyud_acc_lh_s1"
+ }
+ break;
+ case 'l': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+33, "_s", 2))
+ break;
+ switch (BuiltinName[35]) {
+ default: break;
+ case '0': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpyud_acc_ll_s0; // "__builtin_HEXAGON_M2_mpyud_acc_ll_s0"
+ case '1': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpyud_acc_ll_s1; // "__builtin_HEXAGON_M2_mpyud_acc_ll_s1"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 'n': // 8 strings to match.
+ if (memcmp(BuiltinName.data()+28, "ac_", 3))
+ break;
+ switch (BuiltinName[31]) {
+ default: break;
+ case 'h': // 4 strings to match.
+ switch (BuiltinName[32]) {
+ default: break;
+ case 'h': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+33, "_s", 2))
+ break;
+ switch (BuiltinName[35]) {
+ default: break;
+ case '0': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpyud_nac_hh_s0; // "__builtin_HEXAGON_M2_mpyud_nac_hh_s0"
+ case '1': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpyud_nac_hh_s1; // "__builtin_HEXAGON_M2_mpyud_nac_hh_s1"
+ }
+ break;
+ case 'l': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+33, "_s", 2))
+ break;
+ switch (BuiltinName[35]) {
+ default: break;
+ case '0': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpyud_nac_hl_s0; // "__builtin_HEXAGON_M2_mpyud_nac_hl_s0"
+ case '1': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpyud_nac_hl_s1; // "__builtin_HEXAGON_M2_mpyud_nac_hl_s1"
+ }
+ break;
+ }
+ break;
+ case 'l': // 4 strings to match.
+ switch (BuiltinName[32]) {
+ default: break;
+ case 'h': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+33, "_s", 2))
+ break;
+ switch (BuiltinName[35]) {
+ default: break;
+ case '0': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpyud_nac_lh_s0; // "__builtin_HEXAGON_M2_mpyud_nac_lh_s0"
+ case '1': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpyud_nac_lh_s1; // "__builtin_HEXAGON_M2_mpyud_nac_lh_s1"
+ }
+ break;
+ case 'l': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+33, "_s", 2))
+ break;
+ switch (BuiltinName[35]) {
+ default: break;
+ case '0': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpyud_nac_ll_s0; // "__builtin_HEXAGON_M2_mpyud_nac_ll_s0"
+ case '1': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpyud_nac_ll_s1; // "__builtin_HEXAGON_M2_mpyud_nac_ll_s1"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 38: // 24 strings to match.
+ if (memcmp(BuiltinName.data()+0, "__builtin_HEXAGON_M2_mpy_", 25))
+ break;
+ switch (BuiltinName[25]) {
+ default: break;
+ case 'a': // 8 strings to match.
+ if (memcmp(BuiltinName.data()+26, "cc_sat_", 7))
+ break;
+ switch (BuiltinName[33]) {
+ default: break;
+ case 'h': // 4 strings to match.
+ switch (BuiltinName[34]) {
+ default: break;
+ case 'h': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+35, "_s", 2))
+ break;
+ switch (BuiltinName[37]) {
+ default: break;
+ case '0': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpy_acc_sat_hh_s0; // "__builtin_HEXAGON_M2_mpy_acc_sat_hh_s0"
+ case '1': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpy_acc_sat_hh_s1; // "__builtin_HEXAGON_M2_mpy_acc_sat_hh_s1"
+ }
+ break;
+ case 'l': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+35, "_s", 2))
+ break;
+ switch (BuiltinName[37]) {
+ default: break;
+ case '0': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpy_acc_sat_hl_s0; // "__builtin_HEXAGON_M2_mpy_acc_sat_hl_s0"
+ case '1': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpy_acc_sat_hl_s1; // "__builtin_HEXAGON_M2_mpy_acc_sat_hl_s1"
+ }
+ break;
+ }
+ break;
+ case 'l': // 4 strings to match.
+ switch (BuiltinName[34]) {
+ default: break;
+ case 'h': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+35, "_s", 2))
+ break;
+ switch (BuiltinName[37]) {
+ default: break;
+ case '0': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpy_acc_sat_lh_s0; // "__builtin_HEXAGON_M2_mpy_acc_sat_lh_s0"
+ case '1': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpy_acc_sat_lh_s1; // "__builtin_HEXAGON_M2_mpy_acc_sat_lh_s1"
+ }
+ break;
+ case 'l': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+35, "_s", 2))
+ break;
+ switch (BuiltinName[37]) {
+ default: break;
+ case '0': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpy_acc_sat_ll_s0; // "__builtin_HEXAGON_M2_mpy_acc_sat_ll_s0"
+ case '1': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpy_acc_sat_ll_s1; // "__builtin_HEXAGON_M2_mpy_acc_sat_ll_s1"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 'n': // 8 strings to match.
+ if (memcmp(BuiltinName.data()+26, "ac_sat_", 7))
+ break;
+ switch (BuiltinName[33]) {
+ default: break;
+ case 'h': // 4 strings to match.
+ switch (BuiltinName[34]) {
+ default: break;
+ case 'h': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+35, "_s", 2))
+ break;
+ switch (BuiltinName[37]) {
+ default: break;
+ case '0': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpy_nac_sat_hh_s0; // "__builtin_HEXAGON_M2_mpy_nac_sat_hh_s0"
+ case '1': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpy_nac_sat_hh_s1; // "__builtin_HEXAGON_M2_mpy_nac_sat_hh_s1"
+ }
+ break;
+ case 'l': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+35, "_s", 2))
+ break;
+ switch (BuiltinName[37]) {
+ default: break;
+ case '0': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpy_nac_sat_hl_s0; // "__builtin_HEXAGON_M2_mpy_nac_sat_hl_s0"
+ case '1': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpy_nac_sat_hl_s1; // "__builtin_HEXAGON_M2_mpy_nac_sat_hl_s1"
+ }
+ break;
+ }
+ break;
+ case 'l': // 4 strings to match.
+ switch (BuiltinName[34]) {
+ default: break;
+ case 'h': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+35, "_s", 2))
+ break;
+ switch (BuiltinName[37]) {
+ default: break;
+ case '0': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpy_nac_sat_lh_s0; // "__builtin_HEXAGON_M2_mpy_nac_sat_lh_s0"
+ case '1': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpy_nac_sat_lh_s1; // "__builtin_HEXAGON_M2_mpy_nac_sat_lh_s1"
+ }
+ break;
+ case 'l': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+35, "_s", 2))
+ break;
+ switch (BuiltinName[37]) {
+ default: break;
+ case '0': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpy_nac_sat_ll_s0; // "__builtin_HEXAGON_M2_mpy_nac_sat_ll_s0"
+ case '1': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpy_nac_sat_ll_s1; // "__builtin_HEXAGON_M2_mpy_nac_sat_ll_s1"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 's': // 8 strings to match.
+ if (memcmp(BuiltinName.data()+26, "at_rnd_", 7))
+ break;
+ switch (BuiltinName[33]) {
+ default: break;
+ case 'h': // 4 strings to match.
+ switch (BuiltinName[34]) {
+ default: break;
+ case 'h': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+35, "_s", 2))
+ break;
+ switch (BuiltinName[37]) {
+ default: break;
+ case '0': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpy_sat_rnd_hh_s0; // "__builtin_HEXAGON_M2_mpy_sat_rnd_hh_s0"
+ case '1': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpy_sat_rnd_hh_s1; // "__builtin_HEXAGON_M2_mpy_sat_rnd_hh_s1"
+ }
+ break;
+ case 'l': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+35, "_s", 2))
+ break;
+ switch (BuiltinName[37]) {
+ default: break;
+ case '0': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpy_sat_rnd_hl_s0; // "__builtin_HEXAGON_M2_mpy_sat_rnd_hl_s0"
+ case '1': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpy_sat_rnd_hl_s1; // "__builtin_HEXAGON_M2_mpy_sat_rnd_hl_s1"
+ }
+ break;
+ }
+ break;
+ case 'l': // 4 strings to match.
+ switch (BuiltinName[34]) {
+ default: break;
+ case 'h': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+35, "_s", 2))
+ break;
+ switch (BuiltinName[37]) {
+ default: break;
+ case '0': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpy_sat_rnd_lh_s0; // "__builtin_HEXAGON_M2_mpy_sat_rnd_lh_s0"
+ case '1': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpy_sat_rnd_lh_s1; // "__builtin_HEXAGON_M2_mpy_sat_rnd_lh_s1"
+ }
+ break;
+ case 'l': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+35, "_s", 2))
+ break;
+ switch (BuiltinName[37]) {
+ default: break;
+ case '0': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpy_sat_rnd_ll_s0; // "__builtin_HEXAGON_M2_mpy_sat_rnd_ll_s0"
+ case '1': // 1 string to match.
+ return Intrinsic::hexagon_M2_mpy_sat_rnd_ll_s1; // "__builtin_HEXAGON_M2_mpy_sat_rnd_ll_s1"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 40: // 1 string to match.
+ if (memcmp(BuiltinName.data()+0, "__builtin_HEXAGON_S5_vasrhrnd_goodsyntax", 40))
+ break;
+ return Intrinsic::hexagon_S5_vasrhrnd_goodsyntax; // "__builtin_HEXAGON_S5_vasrhrnd_goodsyntax"
+ case 41: // 4 strings to match.
+ if (memcmp(BuiltinName.data()+0, "__builtin_HEXAGON_S2_tableidx", 29))
+ break;
+ switch (BuiltinName[29]) {
+ default: break;
+ case 'b': // 1 string to match.
+ if (memcmp(BuiltinName.data()+30, "_goodsyntax", 11))
+ break;
+ return Intrinsic::hexagon_S2_tableidxb_goodsyntax; // "__builtin_HEXAGON_S2_tableidxb_goodsyntax"
+ case 'd': // 1 string to match.
+ if (memcmp(BuiltinName.data()+30, "_goodsyntax", 11))
+ break;
+ return Intrinsic::hexagon_S2_tableidxd_goodsyntax; // "__builtin_HEXAGON_S2_tableidxd_goodsyntax"
+ case 'h': // 1 string to match.
+ if (memcmp(BuiltinName.data()+30, "_goodsyntax", 11))
+ break;
+ return Intrinsic::hexagon_S2_tableidxh_goodsyntax; // "__builtin_HEXAGON_S2_tableidxh_goodsyntax"
+ case 'w': // 1 string to match.
+ if (memcmp(BuiltinName.data()+30, "_goodsyntax", 11))
+ break;
+ return Intrinsic::hexagon_S2_tableidxw_goodsyntax; // "__builtin_HEXAGON_S2_tableidxw_goodsyntax"
+ }
+ break;
+ case 43: // 2 strings to match.
+ if (memcmp(BuiltinName.data()+0, "__builtin_HEXAGON_S2_asr_i_", 27))
+ break;
+ switch (BuiltinName[27]) {
+ default: break;
+ case 'p': // 1 string to match.
+ if (memcmp(BuiltinName.data()+28, "_rnd_goodsyntax", 15))
+ break;
+ return Intrinsic::hexagon_S2_asr_i_p_rnd_goodsyntax; // "__builtin_HEXAGON_S2_asr_i_p_rnd_goodsyntax"
+ case 'r': // 1 string to match.
+ if (memcmp(BuiltinName.data()+28, "_rnd_goodsyntax", 15))
+ break;
+ return Intrinsic::hexagon_S2_asr_i_r_rnd_goodsyntax; // "__builtin_HEXAGON_S2_asr_i_r_rnd_goodsyntax"
+ }
+ break;
+ case 46: // 1 string to match.
+ if (memcmp(BuiltinName.data()+0, "__builtin_HEXAGON_S5_asrhub_rnd_sat_goodsyntax", 46))
+ break;
+ return Intrinsic::hexagon_S5_asrhub_rnd_sat_goodsyntax; // "__builtin_HEXAGON_S5_asrhub_rnd_sat_goodsyntax"
+ }
+ }
+ if (TargetPrefix == "mips") {
+ switch (BuiltinName.size()) {
+ default: break;
+ case 18: // 17 strings to match.
+ if (memcmp(BuiltinName.data()+0, "__builtin_m", 11))
+ break;
+ switch (BuiltinName[11]) {
+ default: break;
+ case 'i': // 3 strings to match.
+ if (memcmp(BuiltinName.data()+12, "ps_l", 4))
+ break;
+ switch (BuiltinName[16]) {
+ default: break;
+ case 'h': // 1 string to match.
+ if (BuiltinName[17] != 'x')
+ break;
+ return Intrinsic::mips_lhx; // "__builtin_mips_lhx"
+ case 's': // 1 string to match.
+ if (BuiltinName[17] != 'a')
+ break;
+ return Intrinsic::mips_lsa; // "__builtin_mips_lsa"
+ case 'w': // 1 string to match.
+ if (BuiltinName[17] != 'x')
+ break;
+ return Intrinsic::mips_lwx; // "__builtin_mips_lwx"
+ }
+ break;
+ case 's': // 14 strings to match.
+ if (memcmp(BuiltinName.data()+12, "a_", 2))
+ break;
+ switch (BuiltinName[14]) {
+ default: break;
+ case 'b': // 5 strings to match.
+ if (memcmp(BuiltinName.data()+15, "z_", 2))
+ break;
+ switch (BuiltinName[17]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::mips_bz_b; // "__builtin_msa_bz_b"
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_bz_d; // "__builtin_msa_bz_d"
+ case 'h': // 1 string to match.
+ return Intrinsic::mips_bz_h; // "__builtin_msa_bz_h"
+ case 'v': // 1 string to match.
+ return Intrinsic::mips_bz_v; // "__builtin_msa_bz_v"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_bz_w; // "__builtin_msa_bz_w"
+ }
+ break;
+ case 'l': // 4 strings to match.
+ if (memcmp(BuiltinName.data()+15, "d_", 2))
+ break;
+ switch (BuiltinName[17]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::mips_ld_b; // "__builtin_msa_ld_b"
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_ld_d; // "__builtin_msa_ld_d"
+ case 'h': // 1 string to match.
+ return Intrinsic::mips_ld_h; // "__builtin_msa_ld_h"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_ld_w; // "__builtin_msa_ld_w"
+ }
+ break;
+ case 'o': // 1 string to match.
+ if (memcmp(BuiltinName.data()+15, "r_v", 3))
+ break;
+ return Intrinsic::mips_or_v; // "__builtin_msa_or_v"
+ case 's': // 4 strings to match.
+ if (memcmp(BuiltinName.data()+15, "t_", 2))
+ break;
+ switch (BuiltinName[17]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::mips_st_b; // "__builtin_msa_st_b"
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_st_d; // "__builtin_msa_st_d"
+ case 'h': // 1 string to match.
+ return Intrinsic::mips_st_h; // "__builtin_msa_st_h"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_st_w; // "__builtin_msa_st_w"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 19: // 46 strings to match.
+ if (memcmp(BuiltinName.data()+0, "__builtin_m", 11))
+ break;
+ switch (BuiltinName[11]) {
+ default: break;
+ case 'i': // 7 strings to match.
+ if (memcmp(BuiltinName.data()+12, "ps_", 3))
+ break;
+ switch (BuiltinName[15]) {
+ default: break;
+ case 'd': // 1 string to match.
+ if (memcmp(BuiltinName.data()+16, "lsa", 3))
+ break;
+ return Intrinsic::mips_dlsa; // "__builtin_mips_dlsa"
+ case 'e': // 1 string to match.
+ if (memcmp(BuiltinName.data()+16, "xtp", 3))
+ break;
+ return Intrinsic::mips_extp; // "__builtin_mips_extp"
+ case 'i': // 1 string to match.
+ if (memcmp(BuiltinName.data()+16, "nsv", 3))
+ break;
+ return Intrinsic::mips_insv; // "__builtin_mips_insv"
+ case 'l': // 1 string to match.
+ if (memcmp(BuiltinName.data()+16, "bux", 3))
+ break;
+ return Intrinsic::mips_lbux; // "__builtin_mips_lbux"
+ case 'm': // 3 strings to match.
+ switch (BuiltinName[16]) {
+ default: break;
+ case 'a': // 1 string to match.
+ if (memcmp(BuiltinName.data()+17, "dd", 2))
+ break;
+ return Intrinsic::mips_madd; // "__builtin_mips_madd"
+ case 's': // 1 string to match.
+ if (memcmp(BuiltinName.data()+17, "ub", 2))
+ break;
+ return Intrinsic::mips_msub; // "__builtin_mips_msub"
+ case 'u': // 1 string to match.
+ if (memcmp(BuiltinName.data()+17, "lt", 2))
+ break;
+ return Intrinsic::mips_mult; // "__builtin_mips_mult"
+ }
+ break;
+ }
+ break;
+ case 's': // 39 strings to match.
+ if (memcmp(BuiltinName.data()+12, "a_", 2))
+ break;
+ switch (BuiltinName[14]) {
+ default: break;
+ case 'a': // 1 string to match.
+ if (memcmp(BuiltinName.data()+15, "nd_v", 4))
+ break;
+ return Intrinsic::mips_and_v; // "__builtin_msa_and_v"
+ case 'b': // 6 strings to match.
+ switch (BuiltinName[15]) {
+ default: break;
+ case 'm': // 1 string to match.
+ if (memcmp(BuiltinName.data()+16, "z_v", 3))
+ break;
+ return Intrinsic::mips_bmz_v; // "__builtin_msa_bmz_v"
+ case 'n': // 5 strings to match.
+ if (memcmp(BuiltinName.data()+16, "z_", 2))
+ break;
+ switch (BuiltinName[18]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::mips_bnz_b; // "__builtin_msa_bnz_b"
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_bnz_d; // "__builtin_msa_bnz_d"
+ case 'h': // 1 string to match.
+ return Intrinsic::mips_bnz_h; // "__builtin_msa_bnz_h"
+ case 'v': // 1 string to match.
+ return Intrinsic::mips_bnz_v; // "__builtin_msa_bnz_v"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_bnz_w; // "__builtin_msa_bnz_w"
+ }
+ break;
+ }
+ break;
+ case 'c': // 4 strings to match.
+ if (memcmp(BuiltinName.data()+15, "eq_", 3))
+ break;
+ switch (BuiltinName[18]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::mips_ceq_b; // "__builtin_msa_ceq_b"
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_ceq_d; // "__builtin_msa_ceq_d"
+ case 'h': // 1 string to match.
+ return Intrinsic::mips_ceq_h; // "__builtin_msa_ceq_h"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_ceq_w; // "__builtin_msa_ceq_w"
+ }
+ break;
+ case 'f': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+15, "tq_", 3))
+ break;
+ switch (BuiltinName[18]) {
+ default: break;
+ case 'h': // 1 string to match.
+ return Intrinsic::mips_ftq_h; // "__builtin_msa_ftq_h"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_ftq_w; // "__builtin_msa_ftq_w"
+ }
+ break;
+ case 'l': // 4 strings to match.
+ if (memcmp(BuiltinName.data()+15, "di_", 3))
+ break;
+ switch (BuiltinName[18]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::mips_ldi_b; // "__builtin_msa_ldi_b"
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_ldi_d; // "__builtin_msa_ldi_d"
+ case 'h': // 1 string to match.
+ return Intrinsic::mips_ldi_h; // "__builtin_msa_ldi_h"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_ldi_w; // "__builtin_msa_ldi_w"
+ }
+ break;
+ case 'n': // 1 string to match.
+ if (memcmp(BuiltinName.data()+15, "or_v", 4))
+ break;
+ return Intrinsic::mips_nor_v; // "__builtin_msa_nor_v"
+ case 'o': // 1 string to match.
+ if (memcmp(BuiltinName.data()+15, "ri_b", 4))
+ break;
+ return Intrinsic::mips_ori_b; // "__builtin_msa_ori_b"
+ case 's': // 19 strings to match.
+ switch (BuiltinName[15]) {
+ default: break;
+ case 'h': // 3 strings to match.
+ if (memcmp(BuiltinName.data()+16, "f_", 2))
+ break;
+ switch (BuiltinName[18]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::mips_shf_b; // "__builtin_msa_shf_b"
+ case 'h': // 1 string to match.
+ return Intrinsic::mips_shf_h; // "__builtin_msa_shf_h"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_shf_w; // "__builtin_msa_shf_w"
+ }
+ break;
+ case 'l': // 8 strings to match.
+ switch (BuiltinName[16]) {
+ default: break;
+ case 'd': // 4 strings to match.
+ if (BuiltinName[17] != '_')
+ break;
+ switch (BuiltinName[18]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::mips_sld_b; // "__builtin_msa_sld_b"
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_sld_d; // "__builtin_msa_sld_d"
+ case 'h': // 1 string to match.
+ return Intrinsic::mips_sld_h; // "__builtin_msa_sld_h"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_sld_w; // "__builtin_msa_sld_w"
+ }
+ break;
+ case 'l': // 4 strings to match.
+ if (BuiltinName[17] != '_')
+ break;
+ switch (BuiltinName[18]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::mips_sll_b; // "__builtin_msa_sll_b"
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_sll_d; // "__builtin_msa_sll_d"
+ case 'h': // 1 string to match.
+ return Intrinsic::mips_sll_h; // "__builtin_msa_sll_h"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_sll_w; // "__builtin_msa_sll_w"
+ }
+ break;
+ }
+ break;
+ case 'r': // 8 strings to match.
+ switch (BuiltinName[16]) {
+ default: break;
+ case 'a': // 4 strings to match.
+ if (BuiltinName[17] != '_')
+ break;
+ switch (BuiltinName[18]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::mips_sra_b; // "__builtin_msa_sra_b"
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_sra_d; // "__builtin_msa_sra_d"
+ case 'h': // 1 string to match.
+ return Intrinsic::mips_sra_h; // "__builtin_msa_sra_h"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_sra_w; // "__builtin_msa_sra_w"
+ }
+ break;
+ case 'l': // 4 strings to match.
+ if (BuiltinName[17] != '_')
+ break;
+ switch (BuiltinName[18]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::mips_srl_b; // "__builtin_msa_srl_b"
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_srl_d; // "__builtin_msa_srl_d"
+ case 'h': // 1 string to match.
+ return Intrinsic::mips_srl_h; // "__builtin_msa_srl_h"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_srl_w; // "__builtin_msa_srl_w"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 'x': // 1 string to match.
+ if (memcmp(BuiltinName.data()+15, "or_v", 4))
+ break;
+ return Intrinsic::mips_xor_v; // "__builtin_msa_xor_v"
+ }
+ break;
+ }
+ break;
+ case 20: // 143 strings to match.
+ if (memcmp(BuiltinName.data()+0, "__builtin_m", 11))
+ break;
+ switch (BuiltinName[11]) {
+ default: break;
+ case 'i': // 8 strings to match.
+ if (memcmp(BuiltinName.data()+12, "ps_", 3))
+ break;
+ switch (BuiltinName[15]) {
+ default: break;
+ case 'a': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+16, "dd", 2))
+ break;
+ switch (BuiltinName[18]) {
+ default: break;
+ case 's': // 1 string to match.
+ if (BuiltinName[19] != 'c')
+ break;
+ return Intrinsic::mips_addsc; // "__builtin_mips_addsc"
+ case 'w': // 1 string to match.
+ if (BuiltinName[19] != 'c')
+ break;
+ return Intrinsic::mips_addwc; // "__builtin_mips_addwc"
+ }
+ break;
+ case 'm': // 3 strings to match.
+ switch (BuiltinName[16]) {
+ default: break;
+ case 'a': // 1 string to match.
+ if (memcmp(BuiltinName.data()+17, "ddu", 3))
+ break;
+ return Intrinsic::mips_maddu; // "__builtin_mips_maddu"
+ case 's': // 1 string to match.
+ if (memcmp(BuiltinName.data()+17, "ubu", 3))
+ break;
+ return Intrinsic::mips_msubu; // "__builtin_mips_msubu"
+ case 'u': // 1 string to match.
+ if (memcmp(BuiltinName.data()+17, "ltu", 3))
+ break;
+ return Intrinsic::mips_multu; // "__builtin_mips_multu"
+ }
+ break;
+ case 'r': // 1 string to match.
+ if (memcmp(BuiltinName.data()+16, "ddsp", 4))
+ break;
+ return Intrinsic::mips_rddsp; // "__builtin_mips_rddsp"
+ case 's': // 1 string to match.
+ if (memcmp(BuiltinName.data()+16, "hilo", 4))
+ break;
+ return Intrinsic::mips_shilo; // "__builtin_mips_shilo"
+ case 'w': // 1 string to match.
+ if (memcmp(BuiltinName.data()+16, "rdsp", 4))
+ break;
+ return Intrinsic::mips_wrdsp; // "__builtin_mips_wrdsp"
+ }
+ break;
+ case 's': // 135 strings to match.
+ if (memcmp(BuiltinName.data()+12, "a_", 2))
+ break;
+ switch (BuiltinName[14]) {
+ default: break;
+ case 'a': // 5 strings to match.
+ switch (BuiltinName[15]) {
+ default: break;
+ case 'd': // 4 strings to match.
+ if (memcmp(BuiltinName.data()+16, "dv_", 3))
+ break;
+ switch (BuiltinName[19]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::mips_addv_b; // "__builtin_msa_addv_b"
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_addv_d; // "__builtin_msa_addv_d"
+ case 'h': // 1 string to match.
+ return Intrinsic::mips_addv_h; // "__builtin_msa_addv_h"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_addv_w; // "__builtin_msa_addv_w"
+ }
+ break;
+ case 'n': // 1 string to match.
+ if (memcmp(BuiltinName.data()+16, "di_b", 4))
+ break;
+ return Intrinsic::mips_andi_b; // "__builtin_msa_andi_b"
+ }
+ break;
+ case 'b': // 15 strings to match.
+ switch (BuiltinName[15]) {
+ default: break;
+ case 'c': // 4 strings to match.
+ if (memcmp(BuiltinName.data()+16, "lr_", 3))
+ break;
+ switch (BuiltinName[19]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::mips_bclr_b; // "__builtin_msa_bclr_b"
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_bclr_d; // "__builtin_msa_bclr_d"
+ case 'h': // 1 string to match.
+ return Intrinsic::mips_bclr_h; // "__builtin_msa_bclr_h"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_bclr_w; // "__builtin_msa_bclr_w"
+ }
+ break;
+ case 'm': // 2 strings to match.
+ switch (BuiltinName[16]) {
+ default: break;
+ case 'n': // 1 string to match.
+ if (memcmp(BuiltinName.data()+17, "z_v", 3))
+ break;
+ return Intrinsic::mips_bmnz_v; // "__builtin_msa_bmnz_v"
+ case 'z': // 1 string to match.
+ if (memcmp(BuiltinName.data()+17, "i_b", 3))
+ break;
+ return Intrinsic::mips_bmzi_b; // "__builtin_msa_bmzi_b"
+ }
+ break;
+ case 'n': // 4 strings to match.
+ if (memcmp(BuiltinName.data()+16, "eg_", 3))
+ break;
+ switch (BuiltinName[19]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::mips_bneg_b; // "__builtin_msa_bneg_b"
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_bneg_d; // "__builtin_msa_bneg_d"
+ case 'h': // 1 string to match.
+ return Intrinsic::mips_bneg_h; // "__builtin_msa_bneg_h"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_bneg_w; // "__builtin_msa_bneg_w"
+ }
+ break;
+ case 's': // 5 strings to match.
+ if (BuiltinName[16] != 'e')
+ break;
+ switch (BuiltinName[17]) {
+ default: break;
+ case 'l': // 1 string to match.
+ if (memcmp(BuiltinName.data()+18, "_v", 2))
+ break;
+ return Intrinsic::mips_bsel_v; // "__builtin_msa_bsel_v"
+ case 't': // 4 strings to match.
+ if (BuiltinName[18] != '_')
+ break;
+ switch (BuiltinName[19]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::mips_bset_b; // "__builtin_msa_bset_b"
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_bset_d; // "__builtin_msa_bset_d"
+ case 'h': // 1 string to match.
+ return Intrinsic::mips_bset_h; // "__builtin_msa_bset_h"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_bset_w; // "__builtin_msa_bset_w"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 'c': // 6 strings to match.
+ switch (BuiltinName[15]) {
+ default: break;
+ case 'e': // 4 strings to match.
+ if (memcmp(BuiltinName.data()+16, "qi_", 3))
+ break;
+ switch (BuiltinName[19]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::mips_ceqi_b; // "__builtin_msa_ceqi_b"
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_ceqi_d; // "__builtin_msa_ceqi_d"
+ case 'h': // 1 string to match.
+ return Intrinsic::mips_ceqi_h; // "__builtin_msa_ceqi_h"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_ceqi_w; // "__builtin_msa_ceqi_w"
+ }
+ break;
+ case 'f': // 1 string to match.
+ if (memcmp(BuiltinName.data()+16, "cmsa", 4))
+ break;
+ return Intrinsic::mips_cfcmsa; // "__builtin_msa_cfcmsa"
+ case 't': // 1 string to match.
+ if (memcmp(BuiltinName.data()+16, "cmsa", 4))
+ break;
+ return Intrinsic::mips_ctcmsa; // "__builtin_msa_ctcmsa"
+ }
+ break;
+ case 'f': // 50 strings to match.
+ switch (BuiltinName[15]) {
+ default: break;
+ case 'a': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+16, "dd_", 3))
+ break;
+ switch (BuiltinName[19]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_fadd_d; // "__builtin_msa_fadd_d"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_fadd_w; // "__builtin_msa_fadd_w"
+ }
+ break;
+ case 'c': // 14 strings to match.
+ switch (BuiltinName[16]) {
+ default: break;
+ case 'a': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+17, "f_", 2))
+ break;
+ switch (BuiltinName[19]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_fcaf_d; // "__builtin_msa_fcaf_d"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_fcaf_w; // "__builtin_msa_fcaf_w"
+ }
+ break;
+ case 'e': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+17, "q_", 2))
+ break;
+ switch (BuiltinName[19]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_fceq_d; // "__builtin_msa_fceq_d"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_fceq_w; // "__builtin_msa_fceq_w"
+ }
+ break;
+ case 'l': // 4 strings to match.
+ switch (BuiltinName[17]) {
+ default: break;
+ case 'e': // 2 strings to match.
+ if (BuiltinName[18] != '_')
+ break;
+ switch (BuiltinName[19]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_fcle_d; // "__builtin_msa_fcle_d"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_fcle_w; // "__builtin_msa_fcle_w"
+ }
+ break;
+ case 't': // 2 strings to match.
+ if (BuiltinName[18] != '_')
+ break;
+ switch (BuiltinName[19]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_fclt_d; // "__builtin_msa_fclt_d"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_fclt_w; // "__builtin_msa_fclt_w"
+ }
+ break;
+ }
+ break;
+ case 'n': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+17, "e_", 2))
+ break;
+ switch (BuiltinName[19]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_fcne_d; // "__builtin_msa_fcne_d"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_fcne_w; // "__builtin_msa_fcne_w"
+ }
+ break;
+ case 'o': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+17, "r_", 2))
+ break;
+ switch (BuiltinName[19]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_fcor_d; // "__builtin_msa_fcor_d"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_fcor_w; // "__builtin_msa_fcor_w"
+ }
+ break;
+ case 'u': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+17, "n_", 2))
+ break;
+ switch (BuiltinName[19]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_fcun_d; // "__builtin_msa_fcun_d"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_fcun_w; // "__builtin_msa_fcun_w"
+ }
+ break;
+ }
+ break;
+ case 'd': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+16, "iv_", 3))
+ break;
+ switch (BuiltinName[19]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_fdiv_d; // "__builtin_msa_fdiv_d"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_fdiv_w; // "__builtin_msa_fdiv_w"
+ }
+ break;
+ case 'f': // 4 strings to match.
+ if (BuiltinName[16] != 'q')
+ break;
+ switch (BuiltinName[17]) {
+ default: break;
+ case 'l': // 2 strings to match.
+ if (BuiltinName[18] != '_')
+ break;
+ switch (BuiltinName[19]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_ffql_d; // "__builtin_msa_ffql_d"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_ffql_w; // "__builtin_msa_ffql_w"
+ }
+ break;
+ case 'r': // 2 strings to match.
+ if (BuiltinName[18] != '_')
+ break;
+ switch (BuiltinName[19]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_ffqr_d; // "__builtin_msa_ffqr_d"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_ffqr_w; // "__builtin_msa_ffqr_w"
+ }
+ break;
+ }
+ break;
+ case 'i': // 4 strings to match.
+ if (memcmp(BuiltinName.data()+16, "ll_", 3))
+ break;
+ switch (BuiltinName[19]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::mips_fill_b; // "__builtin_msa_fill_b"
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_fill_d; // "__builtin_msa_fill_d"
+ case 'h': // 1 string to match.
+ return Intrinsic::mips_fill_h; // "__builtin_msa_fill_h"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_fill_w; // "__builtin_msa_fill_w"
+ }
+ break;
+ case 'm': // 6 strings to match.
+ switch (BuiltinName[16]) {
+ default: break;
+ case 'a': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+17, "x_", 2))
+ break;
+ switch (BuiltinName[19]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_fmax_d; // "__builtin_msa_fmax_d"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_fmax_w; // "__builtin_msa_fmax_w"
+ }
+ break;
+ case 'i': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+17, "n_", 2))
+ break;
+ switch (BuiltinName[19]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_fmin_d; // "__builtin_msa_fmin_d"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_fmin_w; // "__builtin_msa_fmin_w"
+ }
+ break;
+ case 'u': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+17, "l_", 2))
+ break;
+ switch (BuiltinName[19]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_fmul_d; // "__builtin_msa_fmul_d"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_fmul_w; // "__builtin_msa_fmul_w"
+ }
+ break;
+ }
+ break;
+ case 'r': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+16, "cp_", 3))
+ break;
+ switch (BuiltinName[19]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_frcp_d; // "__builtin_msa_frcp_d"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_frcp_w; // "__builtin_msa_frcp_w"
+ }
+ break;
+ case 's': // 16 strings to match.
+ switch (BuiltinName[16]) {
+ default: break;
+ case 'a': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+17, "f_", 2))
+ break;
+ switch (BuiltinName[19]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_fsaf_d; // "__builtin_msa_fsaf_d"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_fsaf_w; // "__builtin_msa_fsaf_w"
+ }
+ break;
+ case 'e': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+17, "q_", 2))
+ break;
+ switch (BuiltinName[19]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_fseq_d; // "__builtin_msa_fseq_d"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_fseq_w; // "__builtin_msa_fseq_w"
+ }
+ break;
+ case 'l': // 4 strings to match.
+ switch (BuiltinName[17]) {
+ default: break;
+ case 'e': // 2 strings to match.
+ if (BuiltinName[18] != '_')
+ break;
+ switch (BuiltinName[19]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_fsle_d; // "__builtin_msa_fsle_d"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_fsle_w; // "__builtin_msa_fsle_w"
+ }
+ break;
+ case 't': // 2 strings to match.
+ if (BuiltinName[18] != '_')
+ break;
+ switch (BuiltinName[19]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_fslt_d; // "__builtin_msa_fslt_d"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_fslt_w; // "__builtin_msa_fslt_w"
+ }
+ break;
+ }
+ break;
+ case 'n': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+17, "e_", 2))
+ break;
+ switch (BuiltinName[19]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_fsne_d; // "__builtin_msa_fsne_d"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_fsne_w; // "__builtin_msa_fsne_w"
+ }
+ break;
+ case 'o': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+17, "r_", 2))
+ break;
+ switch (BuiltinName[19]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_fsor_d; // "__builtin_msa_fsor_d"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_fsor_w; // "__builtin_msa_fsor_w"
+ }
+ break;
+ case 'u': // 4 strings to match.
+ switch (BuiltinName[17]) {
+ default: break;
+ case 'b': // 2 strings to match.
+ if (BuiltinName[18] != '_')
+ break;
+ switch (BuiltinName[19]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_fsub_d; // "__builtin_msa_fsub_d"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_fsub_w; // "__builtin_msa_fsub_w"
+ }
+ break;
+ case 'n': // 2 strings to match.
+ if (BuiltinName[18] != '_')
+ break;
+ switch (BuiltinName[19]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_fsun_d; // "__builtin_msa_fsun_d"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_fsun_w; // "__builtin_msa_fsun_w"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 'i': // 8 strings to match.
+ if (memcmp(BuiltinName.data()+15, "lv", 2))
+ break;
+ switch (BuiltinName[17]) {
+ default: break;
+ case 'l': // 4 strings to match.
+ if (BuiltinName[18] != '_')
+ break;
+ switch (BuiltinName[19]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::mips_ilvl_b; // "__builtin_msa_ilvl_b"
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_ilvl_d; // "__builtin_msa_ilvl_d"
+ case 'h': // 1 string to match.
+ return Intrinsic::mips_ilvl_h; // "__builtin_msa_ilvl_h"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_ilvl_w; // "__builtin_msa_ilvl_w"
+ }
+ break;
+ case 'r': // 4 strings to match.
+ if (BuiltinName[18] != '_')
+ break;
+ switch (BuiltinName[19]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::mips_ilvr_b; // "__builtin_msa_ilvr_b"
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_ilvr_d; // "__builtin_msa_ilvr_d"
+ case 'h': // 1 string to match.
+ return Intrinsic::mips_ilvr_h; // "__builtin_msa_ilvr_h"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_ilvr_w; // "__builtin_msa_ilvr_w"
+ }
+ break;
+ }
+ break;
+ case 'm': // 5 strings to match.
+ switch (BuiltinName[15]) {
+ default: break;
+ case 'o': // 1 string to match.
+ if (memcmp(BuiltinName.data()+16, "ve_v", 4))
+ break;
+ return Intrinsic::mips_move_v; // "__builtin_msa_move_v"
+ case 'u': // 4 strings to match.
+ if (memcmp(BuiltinName.data()+16, "lv_", 3))
+ break;
+ switch (BuiltinName[19]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::mips_mulv_b; // "__builtin_msa_mulv_b"
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_mulv_d; // "__builtin_msa_mulv_d"
+ case 'h': // 1 string to match.
+ return Intrinsic::mips_mulv_h; // "__builtin_msa_mulv_h"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_mulv_w; // "__builtin_msa_mulv_w"
+ }
+ break;
+ }
+ break;
+ case 'n': // 9 strings to match.
+ switch (BuiltinName[15]) {
+ default: break;
+ case 'l': // 8 strings to match.
+ switch (BuiltinName[16]) {
+ default: break;
+ case 'o': // 4 strings to match.
+ if (memcmp(BuiltinName.data()+17, "c_", 2))
+ break;
+ switch (BuiltinName[19]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::mips_nloc_b; // "__builtin_msa_nloc_b"
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_nloc_d; // "__builtin_msa_nloc_d"
+ case 'h': // 1 string to match.
+ return Intrinsic::mips_nloc_h; // "__builtin_msa_nloc_h"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_nloc_w; // "__builtin_msa_nloc_w"
+ }
+ break;
+ case 'z': // 4 strings to match.
+ if (memcmp(BuiltinName.data()+17, "c_", 2))
+ break;
+ switch (BuiltinName[19]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::mips_nlzc_b; // "__builtin_msa_nlzc_b"
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_nlzc_d; // "__builtin_msa_nlzc_d"
+ case 'h': // 1 string to match.
+ return Intrinsic::mips_nlzc_h; // "__builtin_msa_nlzc_h"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_nlzc_w; // "__builtin_msa_nlzc_w"
+ }
+ break;
+ }
+ break;
+ case 'o': // 1 string to match.
+ if (memcmp(BuiltinName.data()+16, "ri_b", 4))
+ break;
+ return Intrinsic::mips_nori_b; // "__builtin_msa_nori_b"
+ }
+ break;
+ case 'p': // 4 strings to match.
+ if (memcmp(BuiltinName.data()+15, "cnt_", 4))
+ break;
+ switch (BuiltinName[19]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::mips_pcnt_b; // "__builtin_msa_pcnt_b"
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_pcnt_d; // "__builtin_msa_pcnt_d"
+ case 'h': // 1 string to match.
+ return Intrinsic::mips_pcnt_h; // "__builtin_msa_pcnt_h"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_pcnt_w; // "__builtin_msa_pcnt_w"
+ }
+ break;
+ case 's': // 28 strings to match.
+ switch (BuiltinName[15]) {
+ default: break;
+ case 'l': // 8 strings to match.
+ switch (BuiltinName[16]) {
+ default: break;
+ case 'd': // 4 strings to match.
+ if (memcmp(BuiltinName.data()+17, "i_", 2))
+ break;
+ switch (BuiltinName[19]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::mips_sldi_b; // "__builtin_msa_sldi_b"
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_sldi_d; // "__builtin_msa_sldi_d"
+ case 'h': // 1 string to match.
+ return Intrinsic::mips_sldi_h; // "__builtin_msa_sldi_h"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_sldi_w; // "__builtin_msa_sldi_w"
+ }
+ break;
+ case 'l': // 4 strings to match.
+ if (memcmp(BuiltinName.data()+17, "i_", 2))
+ break;
+ switch (BuiltinName[19]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::mips_slli_b; // "__builtin_msa_slli_b"
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_slli_d; // "__builtin_msa_slli_d"
+ case 'h': // 1 string to match.
+ return Intrinsic::mips_slli_h; // "__builtin_msa_slli_h"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_slli_w; // "__builtin_msa_slli_w"
+ }
+ break;
+ }
+ break;
+ case 'r': // 16 strings to match.
+ switch (BuiltinName[16]) {
+ default: break;
+ case 'a': // 8 strings to match.
+ switch (BuiltinName[17]) {
+ default: break;
+ case 'i': // 4 strings to match.
+ if (BuiltinName[18] != '_')
+ break;
+ switch (BuiltinName[19]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::mips_srai_b; // "__builtin_msa_srai_b"
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_srai_d; // "__builtin_msa_srai_d"
+ case 'h': // 1 string to match.
+ return Intrinsic::mips_srai_h; // "__builtin_msa_srai_h"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_srai_w; // "__builtin_msa_srai_w"
+ }
+ break;
+ case 'r': // 4 strings to match.
+ if (BuiltinName[18] != '_')
+ break;
+ switch (BuiltinName[19]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::mips_srar_b; // "__builtin_msa_srar_b"
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_srar_d; // "__builtin_msa_srar_d"
+ case 'h': // 1 string to match.
+ return Intrinsic::mips_srar_h; // "__builtin_msa_srar_h"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_srar_w; // "__builtin_msa_srar_w"
+ }
+ break;
+ }
+ break;
+ case 'l': // 8 strings to match.
+ switch (BuiltinName[17]) {
+ default: break;
+ case 'i': // 4 strings to match.
+ if (BuiltinName[18] != '_')
+ break;
+ switch (BuiltinName[19]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::mips_srli_b; // "__builtin_msa_srli_b"
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_srli_d; // "__builtin_msa_srli_d"
+ case 'h': // 1 string to match.
+ return Intrinsic::mips_srli_h; // "__builtin_msa_srli_h"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_srli_w; // "__builtin_msa_srli_w"
+ }
+ break;
+ case 'r': // 4 strings to match.
+ if (BuiltinName[18] != '_')
+ break;
+ switch (BuiltinName[19]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::mips_srlr_b; // "__builtin_msa_srlr_b"
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_srlr_d; // "__builtin_msa_srlr_d"
+ case 'h': // 1 string to match.
+ return Intrinsic::mips_srlr_h; // "__builtin_msa_srlr_h"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_srlr_w; // "__builtin_msa_srlr_w"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 'u': // 4 strings to match.
+ if (memcmp(BuiltinName.data()+16, "bv_", 3))
+ break;
+ switch (BuiltinName[19]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::mips_subv_b; // "__builtin_msa_subv_b"
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_subv_d; // "__builtin_msa_subv_d"
+ case 'h': // 1 string to match.
+ return Intrinsic::mips_subv_h; // "__builtin_msa_subv_h"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_subv_w; // "__builtin_msa_subv_w"
+ }
+ break;
+ }
+ break;
+ case 'v': // 4 strings to match.
+ if (memcmp(BuiltinName.data()+15, "shf_", 4))
+ break;
+ switch (BuiltinName[19]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::mips_vshf_b; // "__builtin_msa_vshf_b"
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_vshf_d; // "__builtin_msa_vshf_d"
+ case 'h': // 1 string to match.
+ return Intrinsic::mips_vshf_h; // "__builtin_msa_vshf_h"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_vshf_w; // "__builtin_msa_vshf_w"
+ }
+ break;
+ case 'x': // 1 string to match.
+ if (memcmp(BuiltinName.data()+15, "ori_b", 5))
+ break;
+ return Intrinsic::mips_xori_b; // "__builtin_msa_xori_b"
+ }
+ break;
+ }
+ break;
+ case 21: // 186 strings to match.
+ if (memcmp(BuiltinName.data()+0, "__builtin_m", 11))
+ break;
+ switch (BuiltinName[11]) {
+ default: break;
+ case 'i': // 8 strings to match.
+ if (memcmp(BuiltinName.data()+12, "ps_", 3))
+ break;
+ switch (BuiltinName[15]) {
+ default: break;
+ case 'a': // 1 string to match.
+ if (memcmp(BuiltinName.data()+16, "ppend", 5))
+ break;
+ return Intrinsic::mips_append; // "__builtin_mips_append"
+ case 'b': // 2 strings to match.
+ switch (BuiltinName[16]) {
+ default: break;
+ case 'a': // 1 string to match.
+ if (memcmp(BuiltinName.data()+17, "lign", 4))
+ break;
+ return Intrinsic::mips_balign; // "__builtin_mips_balign"
+ case 'i': // 1 string to match.
+ if (memcmp(BuiltinName.data()+17, "trev", 4))
+ break;
+ return Intrinsic::mips_bitrev; // "__builtin_mips_bitrev"
+ }
+ break;
+ case 'e': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+16, "xt", 2))
+ break;
+ switch (BuiltinName[18]) {
+ default: break;
+ case 'p': // 1 string to match.
+ if (memcmp(BuiltinName.data()+19, "dp", 2))
+ break;
+ return Intrinsic::mips_extpdp; // "__builtin_mips_extpdp"
+ case 'r': // 1 string to match.
+ if (memcmp(BuiltinName.data()+19, "_w", 2))
+ break;
+ return Intrinsic::mips_extr_w; // "__builtin_mips_extr_w"
+ }
+ break;
+ case 'm': // 3 strings to match.
+ switch (BuiltinName[16]) {
+ default: break;
+ case 'o': // 1 string to match.
+ if (memcmp(BuiltinName.data()+17, "dsub", 4))
+ break;
+ return Intrinsic::mips_modsub; // "__builtin_mips_modsub"
+ case 't': // 1 string to match.
+ if (memcmp(BuiltinName.data()+17, "hlip", 4))
+ break;
+ return Intrinsic::mips_mthlip; // "__builtin_mips_mthlip"
+ case 'u': // 1 string to match.
+ if (memcmp(BuiltinName.data()+17, "l_ph", 4))
+ break;
+ return Intrinsic::mips_mul_ph; // "__builtin_mips_mul_ph"
+ }
+ break;
+ }
+ break;
+ case 's': // 178 strings to match.
+ if (memcmp(BuiltinName.data()+12, "a_", 2))
+ break;
+ switch (BuiltinName[14]) {
+ default: break;
+ case 'a': // 16 strings to match.
+ switch (BuiltinName[15]) {
+ default: break;
+ case 'd': // 8 strings to match.
+ if (BuiltinName[16] != 'd')
+ break;
+ switch (BuiltinName[17]) {
+ default: break;
+ case '_': // 4 strings to match.
+ if (memcmp(BuiltinName.data()+18, "a_", 2))
+ break;
+ switch (BuiltinName[20]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::mips_add_a_b; // "__builtin_msa_add_a_b"
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_add_a_d; // "__builtin_msa_add_a_d"
+ case 'h': // 1 string to match.
+ return Intrinsic::mips_add_a_h; // "__builtin_msa_add_a_h"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_add_a_w; // "__builtin_msa_add_a_w"
+ }
+ break;
+ case 'v': // 4 strings to match.
+ if (memcmp(BuiltinName.data()+18, "i_", 2))
+ break;
+ switch (BuiltinName[20]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::mips_addvi_b; // "__builtin_msa_addvi_b"
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_addvi_d; // "__builtin_msa_addvi_d"
+ case 'h': // 1 string to match.
+ return Intrinsic::mips_addvi_h; // "__builtin_msa_addvi_h"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_addvi_w; // "__builtin_msa_addvi_w"
+ }
+ break;
+ }
+ break;
+ case 'v': // 8 strings to match.
+ if (memcmp(BuiltinName.data()+16, "e_", 2))
+ break;
+ switch (BuiltinName[18]) {
+ default: break;
+ case 's': // 4 strings to match.
+ if (BuiltinName[19] != '_')
+ break;
+ switch (BuiltinName[20]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::mips_ave_s_b; // "__builtin_msa_ave_s_b"
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_ave_s_d; // "__builtin_msa_ave_s_d"
+ case 'h': // 1 string to match.
+ return Intrinsic::mips_ave_s_h; // "__builtin_msa_ave_s_h"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_ave_s_w; // "__builtin_msa_ave_s_w"
+ }
+ break;
+ case 'u': // 4 strings to match.
+ if (BuiltinName[19] != '_')
+ break;
+ switch (BuiltinName[20]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::mips_ave_u_b; // "__builtin_msa_ave_u_b"
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_ave_u_d; // "__builtin_msa_ave_u_d"
+ case 'h': // 1 string to match.
+ return Intrinsic::mips_ave_u_h; // "__builtin_msa_ave_u_h"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_ave_u_w; // "__builtin_msa_ave_u_w"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 'b': // 22 strings to match.
+ switch (BuiltinName[15]) {
+ default: break;
+ case 'c': // 4 strings to match.
+ if (memcmp(BuiltinName.data()+16, "lri_", 4))
+ break;
+ switch (BuiltinName[20]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::mips_bclri_b; // "__builtin_msa_bclri_b"
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_bclri_d; // "__builtin_msa_bclri_d"
+ case 'h': // 1 string to match.
+ return Intrinsic::mips_bclri_h; // "__builtin_msa_bclri_h"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_bclri_w; // "__builtin_msa_bclri_w"
+ }
+ break;
+ case 'i': // 8 strings to match.
+ if (memcmp(BuiltinName.data()+16, "ns", 2))
+ break;
+ switch (BuiltinName[18]) {
+ default: break;
+ case 'l': // 4 strings to match.
+ if (BuiltinName[19] != '_')
+ break;
+ switch (BuiltinName[20]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::mips_binsl_b; // "__builtin_msa_binsl_b"
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_binsl_d; // "__builtin_msa_binsl_d"
+ case 'h': // 1 string to match.
+ return Intrinsic::mips_binsl_h; // "__builtin_msa_binsl_h"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_binsl_w; // "__builtin_msa_binsl_w"
+ }
+ break;
+ case 'r': // 4 strings to match.
+ if (BuiltinName[19] != '_')
+ break;
+ switch (BuiltinName[20]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::mips_binsr_b; // "__builtin_msa_binsr_b"
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_binsr_d; // "__builtin_msa_binsr_d"
+ case 'h': // 1 string to match.
+ return Intrinsic::mips_binsr_h; // "__builtin_msa_binsr_h"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_binsr_w; // "__builtin_msa_binsr_w"
+ }
+ break;
+ }
+ break;
+ case 'm': // 1 string to match.
+ if (memcmp(BuiltinName.data()+16, "nzi_b", 5))
+ break;
+ return Intrinsic::mips_bmnzi_b; // "__builtin_msa_bmnzi_b"
+ case 'n': // 4 strings to match.
+ if (memcmp(BuiltinName.data()+16, "egi_", 4))
+ break;
+ switch (BuiltinName[20]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::mips_bnegi_b; // "__builtin_msa_bnegi_b"
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_bnegi_d; // "__builtin_msa_bnegi_d"
+ case 'h': // 1 string to match.
+ return Intrinsic::mips_bnegi_h; // "__builtin_msa_bnegi_h"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_bnegi_w; // "__builtin_msa_bnegi_w"
+ }
+ break;
+ case 's': // 5 strings to match.
+ if (BuiltinName[16] != 'e')
+ break;
+ switch (BuiltinName[17]) {
+ default: break;
+ case 'l': // 1 string to match.
+ if (memcmp(BuiltinName.data()+18, "i_b", 3))
+ break;
+ return Intrinsic::mips_bseli_b; // "__builtin_msa_bseli_b"
+ case 't': // 4 strings to match.
+ if (memcmp(BuiltinName.data()+18, "i_", 2))
+ break;
+ switch (BuiltinName[20]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::mips_bseti_b; // "__builtin_msa_bseti_b"
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_bseti_d; // "__builtin_msa_bseti_d"
+ case 'h': // 1 string to match.
+ return Intrinsic::mips_bseti_h; // "__builtin_msa_bseti_h"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_bseti_w; // "__builtin_msa_bseti_w"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 'c': // 16 strings to match.
+ if (BuiltinName[15] != 'l')
+ break;
+ switch (BuiltinName[16]) {
+ default: break;
+ case 'e': // 8 strings to match.
+ if (BuiltinName[17] != '_')
+ break;
+ switch (BuiltinName[18]) {
+ default: break;
+ case 's': // 4 strings to match.
+ if (BuiltinName[19] != '_')
+ break;
+ switch (BuiltinName[20]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::mips_cle_s_b; // "__builtin_msa_cle_s_b"
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_cle_s_d; // "__builtin_msa_cle_s_d"
+ case 'h': // 1 string to match.
+ return Intrinsic::mips_cle_s_h; // "__builtin_msa_cle_s_h"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_cle_s_w; // "__builtin_msa_cle_s_w"
+ }
+ break;
+ case 'u': // 4 strings to match.
+ if (BuiltinName[19] != '_')
+ break;
+ switch (BuiltinName[20]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::mips_cle_u_b; // "__builtin_msa_cle_u_b"
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_cle_u_d; // "__builtin_msa_cle_u_d"
+ case 'h': // 1 string to match.
+ return Intrinsic::mips_cle_u_h; // "__builtin_msa_cle_u_h"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_cle_u_w; // "__builtin_msa_cle_u_w"
+ }
+ break;
+ }
+ break;
+ case 't': // 8 strings to match.
+ if (BuiltinName[17] != '_')
+ break;
+ switch (BuiltinName[18]) {
+ default: break;
+ case 's': // 4 strings to match.
+ if (BuiltinName[19] != '_')
+ break;
+ switch (BuiltinName[20]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::mips_clt_s_b; // "__builtin_msa_clt_s_b"
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_clt_s_d; // "__builtin_msa_clt_s_d"
+ case 'h': // 1 string to match.
+ return Intrinsic::mips_clt_s_h; // "__builtin_msa_clt_s_h"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_clt_s_w; // "__builtin_msa_clt_s_w"
+ }
+ break;
+ case 'u': // 4 strings to match.
+ if (BuiltinName[19] != '_')
+ break;
+ switch (BuiltinName[20]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::mips_clt_u_b; // "__builtin_msa_clt_u_b"
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_clt_u_d; // "__builtin_msa_clt_u_d"
+ case 'h': // 1 string to match.
+ return Intrinsic::mips_clt_u_h; // "__builtin_msa_clt_u_h"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_clt_u_w; // "__builtin_msa_clt_u_w"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 'd': // 8 strings to match.
+ if (memcmp(BuiltinName.data()+15, "iv_", 3))
+ break;
+ switch (BuiltinName[18]) {
+ default: break;
+ case 's': // 4 strings to match.
+ if (BuiltinName[19] != '_')
+ break;
+ switch (BuiltinName[20]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::mips_div_s_b; // "__builtin_msa_div_s_b"
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_div_s_d; // "__builtin_msa_div_s_d"
+ case 'h': // 1 string to match.
+ return Intrinsic::mips_div_s_h; // "__builtin_msa_div_s_h"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_div_s_w; // "__builtin_msa_div_s_w"
+ }
+ break;
+ case 'u': // 4 strings to match.
+ if (BuiltinName[19] != '_')
+ break;
+ switch (BuiltinName[20]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::mips_div_u_b; // "__builtin_msa_div_u_b"
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_div_u_d; // "__builtin_msa_div_u_d"
+ case 'h': // 1 string to match.
+ return Intrinsic::mips_div_u_h; // "__builtin_msa_div_u_h"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_div_u_w; // "__builtin_msa_div_u_w"
+ }
+ break;
+ }
+ break;
+ case 'f': // 30 strings to match.
+ switch (BuiltinName[15]) {
+ default: break;
+ case 'c': // 8 strings to match.
+ if (BuiltinName[16] != 'u')
+ break;
+ switch (BuiltinName[17]) {
+ default: break;
+ case 'e': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+18, "q_", 2))
+ break;
+ switch (BuiltinName[20]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_fcueq_d; // "__builtin_msa_fcueq_d"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_fcueq_w; // "__builtin_msa_fcueq_w"
+ }
+ break;
+ case 'l': // 4 strings to match.
+ switch (BuiltinName[18]) {
+ default: break;
+ case 'e': // 2 strings to match.
+ if (BuiltinName[19] != '_')
+ break;
+ switch (BuiltinName[20]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_fcule_d; // "__builtin_msa_fcule_d"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_fcule_w; // "__builtin_msa_fcule_w"
+ }
+ break;
+ case 't': // 2 strings to match.
+ if (BuiltinName[19] != '_')
+ break;
+ switch (BuiltinName[20]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_fcult_d; // "__builtin_msa_fcult_d"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_fcult_w; // "__builtin_msa_fcult_w"
+ }
+ break;
+ }
+ break;
+ case 'n': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+18, "e_", 2))
+ break;
+ switch (BuiltinName[20]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_fcune_d; // "__builtin_msa_fcune_d"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_fcune_w; // "__builtin_msa_fcune_w"
+ }
+ break;
+ }
+ break;
+ case 'e': // 4 strings to match.
+ if (BuiltinName[16] != 'x')
+ break;
+ switch (BuiltinName[17]) {
+ default: break;
+ case 'd': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+18, "o_", 2))
+ break;
+ switch (BuiltinName[20]) {
+ default: break;
+ case 'h': // 1 string to match.
+ return Intrinsic::mips_fexdo_h; // "__builtin_msa_fexdo_h"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_fexdo_w; // "__builtin_msa_fexdo_w"
+ }
+ break;
+ case 'p': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+18, "2_", 2))
+ break;
+ switch (BuiltinName[20]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_fexp2_d; // "__builtin_msa_fexp2_d"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_fexp2_w; // "__builtin_msa_fexp2_w"
+ }
+ break;
+ }
+ break;
+ case 'l': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+16, "og2_", 4))
+ break;
+ switch (BuiltinName[20]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_flog2_d; // "__builtin_msa_flog2_d"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_flog2_w; // "__builtin_msa_flog2_w"
+ }
+ break;
+ case 'm': // 4 strings to match.
+ switch (BuiltinName[16]) {
+ default: break;
+ case 'a': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+17, "dd_", 3))
+ break;
+ switch (BuiltinName[20]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_fmadd_d; // "__builtin_msa_fmadd_d"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_fmadd_w; // "__builtin_msa_fmadd_w"
+ }
+ break;
+ case 's': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+17, "ub_", 3))
+ break;
+ switch (BuiltinName[20]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_fmsub_d; // "__builtin_msa_fmsub_d"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_fmsub_w; // "__builtin_msa_fmsub_w"
+ }
+ break;
+ }
+ break;
+ case 'r': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+16, "int_", 4))
+ break;
+ switch (BuiltinName[20]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_frint_d; // "__builtin_msa_frint_d"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_frint_w; // "__builtin_msa_frint_w"
+ }
+ break;
+ case 's': // 10 strings to match.
+ switch (BuiltinName[16]) {
+ default: break;
+ case 'q': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+17, "rt_", 3))
+ break;
+ switch (BuiltinName[20]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_fsqrt_d; // "__builtin_msa_fsqrt_d"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_fsqrt_w; // "__builtin_msa_fsqrt_w"
+ }
+ break;
+ case 'u': // 8 strings to match.
+ switch (BuiltinName[17]) {
+ default: break;
+ case 'e': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+18, "q_", 2))
+ break;
+ switch (BuiltinName[20]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_fsueq_d; // "__builtin_msa_fsueq_d"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_fsueq_w; // "__builtin_msa_fsueq_w"
+ }
+ break;
+ case 'l': // 4 strings to match.
+ switch (BuiltinName[18]) {
+ default: break;
+ case 'e': // 2 strings to match.
+ if (BuiltinName[19] != '_')
+ break;
+ switch (BuiltinName[20]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_fsule_d; // "__builtin_msa_fsule_d"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_fsule_w; // "__builtin_msa_fsule_w"
+ }
+ break;
+ case 't': // 2 strings to match.
+ if (BuiltinName[19] != '_')
+ break;
+ switch (BuiltinName[20]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_fsult_d; // "__builtin_msa_fsult_d"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_fsult_w; // "__builtin_msa_fsult_w"
+ }
+ break;
+ }
+ break;
+ case 'n': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+18, "e_", 2))
+ break;
+ switch (BuiltinName[20]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_fsune_d; // "__builtin_msa_fsune_d"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_fsune_w; // "__builtin_msa_fsune_w"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 'i': // 12 strings to match.
+ switch (BuiltinName[15]) {
+ default: break;
+ case 'l': // 8 strings to match.
+ if (BuiltinName[16] != 'v')
+ break;
+ switch (BuiltinName[17]) {
+ default: break;
+ case 'e': // 4 strings to match.
+ if (memcmp(BuiltinName.data()+18, "v_", 2))
+ break;
+ switch (BuiltinName[20]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::mips_ilvev_b; // "__builtin_msa_ilvev_b"
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_ilvev_d; // "__builtin_msa_ilvev_d"
+ case 'h': // 1 string to match.
+ return Intrinsic::mips_ilvev_h; // "__builtin_msa_ilvev_h"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_ilvev_w; // "__builtin_msa_ilvev_w"
+ }
+ break;
+ case 'o': // 4 strings to match.
+ if (memcmp(BuiltinName.data()+18, "d_", 2))
+ break;
+ switch (BuiltinName[20]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::mips_ilvod_b; // "__builtin_msa_ilvod_b"
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_ilvod_d; // "__builtin_msa_ilvod_d"
+ case 'h': // 1 string to match.
+ return Intrinsic::mips_ilvod_h; // "__builtin_msa_ilvod_h"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_ilvod_w; // "__builtin_msa_ilvod_w"
+ }
+ break;
+ }
+ break;
+ case 'n': // 4 strings to match.
+ if (memcmp(BuiltinName.data()+16, "sve_", 4))
+ break;
+ switch (BuiltinName[20]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::mips_insve_b; // "__builtin_msa_insve_b"
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_insve_d; // "__builtin_msa_insve_d"
+ case 'h': // 1 string to match.
+ return Intrinsic::mips_insve_h; // "__builtin_msa_insve_h"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_insve_w; // "__builtin_msa_insve_w"
+ }
+ break;
+ }
+ break;
+ case 'm': // 42 strings to match.
+ switch (BuiltinName[15]) {
+ default: break;
+ case 'a': // 16 strings to match.
+ switch (BuiltinName[16]) {
+ default: break;
+ case 'd': // 4 strings to match.
+ if (memcmp(BuiltinName.data()+17, "dv_", 3))
+ break;
+ switch (BuiltinName[20]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::mips_maddv_b; // "__builtin_msa_maddv_b"
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_maddv_d; // "__builtin_msa_maddv_d"
+ case 'h': // 1 string to match.
+ return Intrinsic::mips_maddv_h; // "__builtin_msa_maddv_h"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_maddv_w; // "__builtin_msa_maddv_w"
+ }
+ break;
+ case 'x': // 12 strings to match.
+ if (BuiltinName[17] != '_')
+ break;
+ switch (BuiltinName[18]) {
+ default: break;
+ case 'a': // 4 strings to match.
+ if (BuiltinName[19] != '_')
+ break;
+ switch (BuiltinName[20]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::mips_max_a_b; // "__builtin_msa_max_a_b"
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_max_a_d; // "__builtin_msa_max_a_d"
+ case 'h': // 1 string to match.
+ return Intrinsic::mips_max_a_h; // "__builtin_msa_max_a_h"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_max_a_w; // "__builtin_msa_max_a_w"
+ }
+ break;
+ case 's': // 4 strings to match.
+ if (BuiltinName[19] != '_')
+ break;
+ switch (BuiltinName[20]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::mips_max_s_b; // "__builtin_msa_max_s_b"
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_max_s_d; // "__builtin_msa_max_s_d"
+ case 'h': // 1 string to match.
+ return Intrinsic::mips_max_s_h; // "__builtin_msa_max_s_h"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_max_s_w; // "__builtin_msa_max_s_w"
+ }
+ break;
+ case 'u': // 4 strings to match.
+ if (BuiltinName[19] != '_')
+ break;
+ switch (BuiltinName[20]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::mips_max_u_b; // "__builtin_msa_max_u_b"
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_max_u_d; // "__builtin_msa_max_u_d"
+ case 'h': // 1 string to match.
+ return Intrinsic::mips_max_u_h; // "__builtin_msa_max_u_h"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_max_u_w; // "__builtin_msa_max_u_w"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 'i': // 12 strings to match.
+ if (memcmp(BuiltinName.data()+16, "n_", 2))
+ break;
+ switch (BuiltinName[18]) {
+ default: break;
+ case 'a': // 4 strings to match.
+ if (BuiltinName[19] != '_')
+ break;
+ switch (BuiltinName[20]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::mips_min_a_b; // "__builtin_msa_min_a_b"
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_min_a_d; // "__builtin_msa_min_a_d"
+ case 'h': // 1 string to match.
+ return Intrinsic::mips_min_a_h; // "__builtin_msa_min_a_h"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_min_a_w; // "__builtin_msa_min_a_w"
+ }
+ break;
+ case 's': // 4 strings to match.
+ if (BuiltinName[19] != '_')
+ break;
+ switch (BuiltinName[20]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::mips_min_s_b; // "__builtin_msa_min_s_b"
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_min_s_d; // "__builtin_msa_min_s_d"
+ case 'h': // 1 string to match.
+ return Intrinsic::mips_min_s_h; // "__builtin_msa_min_s_h"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_min_s_w; // "__builtin_msa_min_s_w"
+ }
+ break;
+ case 'u': // 4 strings to match.
+ if (BuiltinName[19] != '_')
+ break;
+ switch (BuiltinName[20]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::mips_min_u_b; // "__builtin_msa_min_u_b"
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_min_u_d; // "__builtin_msa_min_u_d"
+ case 'h': // 1 string to match.
+ return Intrinsic::mips_min_u_h; // "__builtin_msa_min_u_h"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_min_u_w; // "__builtin_msa_min_u_w"
+ }
+ break;
+ }
+ break;
+ case 'o': // 8 strings to match.
+ if (memcmp(BuiltinName.data()+16, "d_", 2))
+ break;
+ switch (BuiltinName[18]) {
+ default: break;
+ case 's': // 4 strings to match.
+ if (BuiltinName[19] != '_')
+ break;
+ switch (BuiltinName[20]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::mips_mod_s_b; // "__builtin_msa_mod_s_b"
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_mod_s_d; // "__builtin_msa_mod_s_d"
+ case 'h': // 1 string to match.
+ return Intrinsic::mips_mod_s_h; // "__builtin_msa_mod_s_h"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_mod_s_w; // "__builtin_msa_mod_s_w"
+ }
+ break;
+ case 'u': // 4 strings to match.
+ if (BuiltinName[19] != '_')
+ break;
+ switch (BuiltinName[20]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::mips_mod_u_b; // "__builtin_msa_mod_u_b"
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_mod_u_d; // "__builtin_msa_mod_u_d"
+ case 'h': // 1 string to match.
+ return Intrinsic::mips_mod_u_h; // "__builtin_msa_mod_u_h"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_mod_u_w; // "__builtin_msa_mod_u_w"
+ }
+ break;
+ }
+ break;
+ case 's': // 4 strings to match.
+ if (memcmp(BuiltinName.data()+16, "ubv_", 4))
+ break;
+ switch (BuiltinName[20]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::mips_msubv_b; // "__builtin_msa_msubv_b"
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_msubv_d; // "__builtin_msa_msubv_d"
+ case 'h': // 1 string to match.
+ return Intrinsic::mips_msubv_h; // "__builtin_msa_msubv_h"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_msubv_w; // "__builtin_msa_msubv_w"
+ }
+ break;
+ case 'u': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+16, "l_q_", 4))
+ break;
+ switch (BuiltinName[20]) {
+ default: break;
+ case 'h': // 1 string to match.
+ return Intrinsic::mips_mul_q_h; // "__builtin_msa_mul_q_h"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_mul_q_w; // "__builtin_msa_mul_q_w"
+ }
+ break;
+ }
+ break;
+ case 'p': // 8 strings to match.
+ if (memcmp(BuiltinName.data()+15, "ck", 2))
+ break;
+ switch (BuiltinName[17]) {
+ default: break;
+ case 'e': // 4 strings to match.
+ if (memcmp(BuiltinName.data()+18, "v_", 2))
+ break;
+ switch (BuiltinName[20]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::mips_pckev_b; // "__builtin_msa_pckev_b"
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_pckev_d; // "__builtin_msa_pckev_d"
+ case 'h': // 1 string to match.
+ return Intrinsic::mips_pckev_h; // "__builtin_msa_pckev_h"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_pckev_w; // "__builtin_msa_pckev_w"
+ }
+ break;
+ case 'o': // 4 strings to match.
+ if (memcmp(BuiltinName.data()+18, "d_", 2))
+ break;
+ switch (BuiltinName[20]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::mips_pckod_b; // "__builtin_msa_pckod_b"
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_pckod_d; // "__builtin_msa_pckod_d"
+ case 'h': // 1 string to match.
+ return Intrinsic::mips_pckod_h; // "__builtin_msa_pckod_h"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_pckod_w; // "__builtin_msa_pckod_w"
+ }
+ break;
+ }
+ break;
+ case 's': // 24 strings to match.
+ switch (BuiltinName[15]) {
+ default: break;
+ case 'a': // 8 strings to match.
+ if (memcmp(BuiltinName.data()+16, "t_", 2))
+ break;
+ switch (BuiltinName[18]) {
+ default: break;
+ case 's': // 4 strings to match.
+ if (BuiltinName[19] != '_')
+ break;
+ switch (BuiltinName[20]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::mips_sat_s_b; // "__builtin_msa_sat_s_b"
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_sat_s_d; // "__builtin_msa_sat_s_d"
+ case 'h': // 1 string to match.
+ return Intrinsic::mips_sat_s_h; // "__builtin_msa_sat_s_h"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_sat_s_w; // "__builtin_msa_sat_s_w"
+ }
+ break;
+ case 'u': // 4 strings to match.
+ if (BuiltinName[19] != '_')
+ break;
+ switch (BuiltinName[20]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::mips_sat_u_b; // "__builtin_msa_sat_u_b"
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_sat_u_d; // "__builtin_msa_sat_u_d"
+ case 'h': // 1 string to match.
+ return Intrinsic::mips_sat_u_h; // "__builtin_msa_sat_u_h"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_sat_u_w; // "__builtin_msa_sat_u_w"
+ }
+ break;
+ }
+ break;
+ case 'p': // 4 strings to match.
+ if (memcmp(BuiltinName.data()+16, "lat_", 4))
+ break;
+ switch (BuiltinName[20]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::mips_splat_b; // "__builtin_msa_splat_b"
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_splat_d; // "__builtin_msa_splat_d"
+ case 'h': // 1 string to match.
+ return Intrinsic::mips_splat_h; // "__builtin_msa_splat_h"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_splat_w; // "__builtin_msa_splat_w"
+ }
+ break;
+ case 'r': // 8 strings to match.
+ switch (BuiltinName[16]) {
+ default: break;
+ case 'a': // 4 strings to match.
+ if (memcmp(BuiltinName.data()+17, "ri_", 3))
+ break;
+ switch (BuiltinName[20]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::mips_srari_b; // "__builtin_msa_srari_b"
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_srari_d; // "__builtin_msa_srari_d"
+ case 'h': // 1 string to match.
+ return Intrinsic::mips_srari_h; // "__builtin_msa_srari_h"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_srari_w; // "__builtin_msa_srari_w"
+ }
+ break;
+ case 'l': // 4 strings to match.
+ if (memcmp(BuiltinName.data()+17, "ri_", 3))
+ break;
+ switch (BuiltinName[20]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::mips_srlri_b; // "__builtin_msa_srlri_b"
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_srlri_d; // "__builtin_msa_srlri_d"
+ case 'h': // 1 string to match.
+ return Intrinsic::mips_srlri_h; // "__builtin_msa_srlri_h"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_srlri_w; // "__builtin_msa_srlri_w"
+ }
+ break;
+ }
+ break;
+ case 'u': // 4 strings to match.
+ if (memcmp(BuiltinName.data()+16, "bvi_", 4))
+ break;
+ switch (BuiltinName[20]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::mips_subvi_b; // "__builtin_msa_subvi_b"
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_subvi_d; // "__builtin_msa_subvi_d"
+ case 'h': // 1 string to match.
+ return Intrinsic::mips_subvi_h; // "__builtin_msa_subvi_h"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_subvi_w; // "__builtin_msa_subvi_w"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 22: // 147 strings to match.
+ if (memcmp(BuiltinName.data()+0, "__builtin_m", 11))
+ break;
+ switch (BuiltinName[11]) {
+ default: break;
+ case 'i': // 19 strings to match.
+ if (memcmp(BuiltinName.data()+12, "ps_", 3))
+ break;
+ switch (BuiltinName[15]) {
+ default: break;
+ case 'a': // 4 strings to match.
+ if (memcmp(BuiltinName.data()+16, "dd", 2))
+ break;
+ switch (BuiltinName[18]) {
+ default: break;
+ case 'q': // 2 strings to match.
+ switch (BuiltinName[19]) {
+ default: break;
+ case '_': // 1 string to match.
+ if (memcmp(BuiltinName.data()+20, "ph", 2))
+ break;
+ return Intrinsic::mips_addq_ph; // "__builtin_mips_addq_ph"
+ case 'h': // 1 string to match.
+ if (memcmp(BuiltinName.data()+20, "_w", 2))
+ break;
+ return Intrinsic::mips_addqh_w; // "__builtin_mips_addqh_w"
+ }
+ break;
+ case 'u': // 2 strings to match.
+ if (BuiltinName[19] != '_')
+ break;
+ switch (BuiltinName[20]) {
+ default: break;
+ case 'p': // 1 string to match.
+ if (BuiltinName[21] != 'h')
+ break;
+ return Intrinsic::mips_addu_ph; // "__builtin_mips_addu_ph"
+ case 'q': // 1 string to match.
+ if (BuiltinName[21] != 'b')
+ break;
+ return Intrinsic::mips_addu_qb; // "__builtin_mips_addu_qb"
+ }
+ break;
+ }
+ break;
+ case 'p': // 3 strings to match.
+ switch (BuiltinName[16]) {
+ default: break;
+ case 'i': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+17, "ck_", 3))
+ break;
+ switch (BuiltinName[20]) {
+ default: break;
+ case 'p': // 1 string to match.
+ if (BuiltinName[21] != 'h')
+ break;
+ return Intrinsic::mips_pick_ph; // "__builtin_mips_pick_ph"
+ case 'q': // 1 string to match.
+ if (BuiltinName[21] != 'b')
+ break;
+ return Intrinsic::mips_pick_qb; // "__builtin_mips_pick_qb"
+ }
+ break;
+ case 'r': // 1 string to match.
+ if (memcmp(BuiltinName.data()+17, "epend", 5))
+ break;
+ return Intrinsic::mips_prepend; // "__builtin_mips_prepend"
+ }
+ break;
+ case 'r': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+16, "epl_", 4))
+ break;
+ switch (BuiltinName[20]) {
+ default: break;
+ case 'p': // 1 string to match.
+ if (BuiltinName[21] != 'h')
+ break;
+ return Intrinsic::mips_repl_ph; // "__builtin_mips_repl_ph"
+ case 'q': // 1 string to match.
+ if (BuiltinName[21] != 'b')
+ break;
+ return Intrinsic::mips_repl_qb; // "__builtin_mips_repl_qb"
+ }
+ break;
+ case 's': // 10 strings to match.
+ switch (BuiltinName[16]) {
+ default: break;
+ case 'h': // 6 strings to match.
+ switch (BuiltinName[17]) {
+ default: break;
+ case 'l': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+18, "l_", 2))
+ break;
+ switch (BuiltinName[20]) {
+ default: break;
+ case 'p': // 1 string to match.
+ if (BuiltinName[21] != 'h')
+ break;
+ return Intrinsic::mips_shll_ph; // "__builtin_mips_shll_ph"
+ case 'q': // 1 string to match.
+ if (BuiltinName[21] != 'b')
+ break;
+ return Intrinsic::mips_shll_qb; // "__builtin_mips_shll_qb"
+ }
+ break;
+ case 'r': // 4 strings to match.
+ switch (BuiltinName[18]) {
+ default: break;
+ case 'a': // 2 strings to match.
+ if (BuiltinName[19] != '_')
+ break;
+ switch (BuiltinName[20]) {
+ default: break;
+ case 'p': // 1 string to match.
+ if (BuiltinName[21] != 'h')
+ break;
+ return Intrinsic::mips_shra_ph; // "__builtin_mips_shra_ph"
+ case 'q': // 1 string to match.
+ if (BuiltinName[21] != 'b')
+ break;
+ return Intrinsic::mips_shra_qb; // "__builtin_mips_shra_qb"
+ }
+ break;
+ case 'l': // 2 strings to match.
+ if (BuiltinName[19] != '_')
+ break;
+ switch (BuiltinName[20]) {
+ default: break;
+ case 'p': // 1 string to match.
+ if (BuiltinName[21] != 'h')
+ break;
+ return Intrinsic::mips_shrl_ph; // "__builtin_mips_shrl_ph"
+ case 'q': // 1 string to match.
+ if (BuiltinName[21] != 'b')
+ break;
+ return Intrinsic::mips_shrl_qb; // "__builtin_mips_shrl_qb"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 'u': // 4 strings to match.
+ if (BuiltinName[17] != 'b')
+ break;
+ switch (BuiltinName[18]) {
+ default: break;
+ case 'q': // 2 strings to match.
+ switch (BuiltinName[19]) {
+ default: break;
+ case '_': // 1 string to match.
+ if (memcmp(BuiltinName.data()+20, "ph", 2))
+ break;
+ return Intrinsic::mips_subq_ph; // "__builtin_mips_subq_ph"
+ case 'h': // 1 string to match.
+ if (memcmp(BuiltinName.data()+20, "_w", 2))
+ break;
+ return Intrinsic::mips_subqh_w; // "__builtin_mips_subqh_w"
+ }
+ break;
+ case 'u': // 2 strings to match.
+ if (BuiltinName[19] != '_')
+ break;
+ switch (BuiltinName[20]) {
+ default: break;
+ case 'p': // 1 string to match.
+ if (BuiltinName[21] != 'h')
+ break;
+ return Intrinsic::mips_subu_ph; // "__builtin_mips_subu_ph"
+ case 'q': // 1 string to match.
+ if (BuiltinName[21] != 'b')
+ break;
+ return Intrinsic::mips_subu_qb; // "__builtin_mips_subu_qb"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 's': // 128 strings to match.
+ if (memcmp(BuiltinName.data()+12, "a_", 2))
+ break;
+ switch (BuiltinName[14]) {
+ default: break;
+ case 'a': // 28 strings to match.
+ switch (BuiltinName[15]) {
+ default: break;
+ case 'd': // 12 strings to match.
+ if (memcmp(BuiltinName.data()+16, "ds_", 3))
+ break;
+ switch (BuiltinName[19]) {
+ default: break;
+ case 'a': // 4 strings to match.
+ if (BuiltinName[20] != '_')
+ break;
+ switch (BuiltinName[21]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::mips_adds_a_b; // "__builtin_msa_adds_a_b"
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_adds_a_d; // "__builtin_msa_adds_a_d"
+ case 'h': // 1 string to match.
+ return Intrinsic::mips_adds_a_h; // "__builtin_msa_adds_a_h"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_adds_a_w; // "__builtin_msa_adds_a_w"
+ }
+ break;
+ case 's': // 4 strings to match.
+ if (BuiltinName[20] != '_')
+ break;
+ switch (BuiltinName[21]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::mips_adds_s_b; // "__builtin_msa_adds_s_b"
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_adds_s_d; // "__builtin_msa_adds_s_d"
+ case 'h': // 1 string to match.
+ return Intrinsic::mips_adds_s_h; // "__builtin_msa_adds_s_h"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_adds_s_w; // "__builtin_msa_adds_s_w"
+ }
+ break;
+ case 'u': // 4 strings to match.
+ if (BuiltinName[20] != '_')
+ break;
+ switch (BuiltinName[21]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::mips_adds_u_b; // "__builtin_msa_adds_u_b"
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_adds_u_d; // "__builtin_msa_adds_u_d"
+ case 'h': // 1 string to match.
+ return Intrinsic::mips_adds_u_h; // "__builtin_msa_adds_u_h"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_adds_u_w; // "__builtin_msa_adds_u_w"
+ }
+ break;
+ }
+ break;
+ case 's': // 8 strings to match.
+ if (memcmp(BuiltinName.data()+16, "ub_", 3))
+ break;
+ switch (BuiltinName[19]) {
+ default: break;
+ case 's': // 4 strings to match.
+ if (BuiltinName[20] != '_')
+ break;
+ switch (BuiltinName[21]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::mips_asub_s_b; // "__builtin_msa_asub_s_b"
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_asub_s_d; // "__builtin_msa_asub_s_d"
+ case 'h': // 1 string to match.
+ return Intrinsic::mips_asub_s_h; // "__builtin_msa_asub_s_h"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_asub_s_w; // "__builtin_msa_asub_s_w"
+ }
+ break;
+ case 'u': // 4 strings to match.
+ if (BuiltinName[20] != '_')
+ break;
+ switch (BuiltinName[21]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::mips_asub_u_b; // "__builtin_msa_asub_u_b"
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_asub_u_d; // "__builtin_msa_asub_u_d"
+ case 'h': // 1 string to match.
+ return Intrinsic::mips_asub_u_h; // "__builtin_msa_asub_u_h"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_asub_u_w; // "__builtin_msa_asub_u_w"
+ }
+ break;
+ }
+ break;
+ case 'v': // 8 strings to match.
+ if (memcmp(BuiltinName.data()+16, "er_", 3))
+ break;
+ switch (BuiltinName[19]) {
+ default: break;
+ case 's': // 4 strings to match.
+ if (BuiltinName[20] != '_')
+ break;
+ switch (BuiltinName[21]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::mips_aver_s_b; // "__builtin_msa_aver_s_b"
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_aver_s_d; // "__builtin_msa_aver_s_d"
+ case 'h': // 1 string to match.
+ return Intrinsic::mips_aver_s_h; // "__builtin_msa_aver_s_h"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_aver_s_w; // "__builtin_msa_aver_s_w"
+ }
+ break;
+ case 'u': // 4 strings to match.
+ if (BuiltinName[20] != '_')
+ break;
+ switch (BuiltinName[21]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::mips_aver_u_b; // "__builtin_msa_aver_u_b"
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_aver_u_d; // "__builtin_msa_aver_u_d"
+ case 'h': // 1 string to match.
+ return Intrinsic::mips_aver_u_h; // "__builtin_msa_aver_u_h"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_aver_u_w; // "__builtin_msa_aver_u_w"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 'b': // 8 strings to match.
+ if (memcmp(BuiltinName.data()+15, "ins", 3))
+ break;
+ switch (BuiltinName[18]) {
+ default: break;
+ case 'l': // 4 strings to match.
+ if (memcmp(BuiltinName.data()+19, "i_", 2))
+ break;
+ switch (BuiltinName[21]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::mips_binsli_b; // "__builtin_msa_binsli_b"
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_binsli_d; // "__builtin_msa_binsli_d"
+ case 'h': // 1 string to match.
+ return Intrinsic::mips_binsli_h; // "__builtin_msa_binsli_h"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_binsli_w; // "__builtin_msa_binsli_w"
+ }
+ break;
+ case 'r': // 4 strings to match.
+ if (memcmp(BuiltinName.data()+19, "i_", 2))
+ break;
+ switch (BuiltinName[21]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::mips_binsri_b; // "__builtin_msa_binsri_b"
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_binsri_d; // "__builtin_msa_binsri_d"
+ case 'h': // 1 string to match.
+ return Intrinsic::mips_binsri_h; // "__builtin_msa_binsri_h"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_binsri_w; // "__builtin_msa_binsri_w"
+ }
+ break;
+ }
+ break;
+ case 'c': // 24 strings to match.
+ switch (BuiltinName[15]) {
+ default: break;
+ case 'l': // 16 strings to match.
+ switch (BuiltinName[16]) {
+ default: break;
+ case 'e': // 8 strings to match.
+ if (memcmp(BuiltinName.data()+17, "i_", 2))
+ break;
+ switch (BuiltinName[19]) {
+ default: break;
+ case 's': // 4 strings to match.
+ if (BuiltinName[20] != '_')
+ break;
+ switch (BuiltinName[21]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::mips_clei_s_b; // "__builtin_msa_clei_s_b"
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_clei_s_d; // "__builtin_msa_clei_s_d"
+ case 'h': // 1 string to match.
+ return Intrinsic::mips_clei_s_h; // "__builtin_msa_clei_s_h"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_clei_s_w; // "__builtin_msa_clei_s_w"
+ }
+ break;
+ case 'u': // 4 strings to match.
+ if (BuiltinName[20] != '_')
+ break;
+ switch (BuiltinName[21]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::mips_clei_u_b; // "__builtin_msa_clei_u_b"
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_clei_u_d; // "__builtin_msa_clei_u_d"
+ case 'h': // 1 string to match.
+ return Intrinsic::mips_clei_u_h; // "__builtin_msa_clei_u_h"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_clei_u_w; // "__builtin_msa_clei_u_w"
+ }
+ break;
+ }
+ break;
+ case 't': // 8 strings to match.
+ if (memcmp(BuiltinName.data()+17, "i_", 2))
+ break;
+ switch (BuiltinName[19]) {
+ default: break;
+ case 's': // 4 strings to match.
+ if (BuiltinName[20] != '_')
+ break;
+ switch (BuiltinName[21]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::mips_clti_s_b; // "__builtin_msa_clti_s_b"
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_clti_s_d; // "__builtin_msa_clti_s_d"
+ case 'h': // 1 string to match.
+ return Intrinsic::mips_clti_s_h; // "__builtin_msa_clti_s_h"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_clti_s_w; // "__builtin_msa_clti_s_w"
+ }
+ break;
+ case 'u': // 4 strings to match.
+ if (BuiltinName[20] != '_')
+ break;
+ switch (BuiltinName[21]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::mips_clti_u_b; // "__builtin_msa_clti_u_b"
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_clti_u_d; // "__builtin_msa_clti_u_d"
+ case 'h': // 1 string to match.
+ return Intrinsic::mips_clti_u_h; // "__builtin_msa_clti_u_h"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_clti_u_w; // "__builtin_msa_clti_u_w"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 'o': // 8 strings to match.
+ if (memcmp(BuiltinName.data()+16, "py_", 3))
+ break;
+ switch (BuiltinName[19]) {
+ default: break;
+ case 's': // 4 strings to match.
+ if (BuiltinName[20] != '_')
+ break;
+ switch (BuiltinName[21]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::mips_copy_s_b; // "__builtin_msa_copy_s_b"
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_copy_s_d; // "__builtin_msa_copy_s_d"
+ case 'h': // 1 string to match.
+ return Intrinsic::mips_copy_s_h; // "__builtin_msa_copy_s_h"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_copy_s_w; // "__builtin_msa_copy_s_w"
+ }
+ break;
+ case 'u': // 4 strings to match.
+ if (BuiltinName[20] != '_')
+ break;
+ switch (BuiltinName[21]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::mips_copy_u_b; // "__builtin_msa_copy_u_b"
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_copy_u_d; // "__builtin_msa_copy_u_d"
+ case 'h': // 1 string to match.
+ return Intrinsic::mips_copy_u_h; // "__builtin_msa_copy_u_h"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_copy_u_w; // "__builtin_msa_copy_u_w"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 'd': // 6 strings to match.
+ if (memcmp(BuiltinName.data()+15, "otp_", 4))
+ break;
+ switch (BuiltinName[19]) {
+ default: break;
+ case 's': // 3 strings to match.
+ if (BuiltinName[20] != '_')
+ break;
+ switch (BuiltinName[21]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_dotp_s_d; // "__builtin_msa_dotp_s_d"
+ case 'h': // 1 string to match.
+ return Intrinsic::mips_dotp_s_h; // "__builtin_msa_dotp_s_h"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_dotp_s_w; // "__builtin_msa_dotp_s_w"
+ }
+ break;
+ case 'u': // 3 strings to match.
+ if (BuiltinName[20] != '_')
+ break;
+ switch (BuiltinName[21]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_dotp_u_d; // "__builtin_msa_dotp_u_d"
+ case 'h': // 1 string to match.
+ return Intrinsic::mips_dotp_u_h; // "__builtin_msa_dotp_u_h"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_dotp_u_w; // "__builtin_msa_dotp_u_w"
+ }
+ break;
+ }
+ break;
+ case 'f': // 12 strings to match.
+ switch (BuiltinName[15]) {
+ default: break;
+ case 'c': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+16, "lass_", 5))
+ break;
+ switch (BuiltinName[21]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_fclass_d; // "__builtin_msa_fclass_d"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_fclass_w; // "__builtin_msa_fclass_w"
+ }
+ break;
+ case 'e': // 4 strings to match.
+ if (memcmp(BuiltinName.data()+16, "xup", 3))
+ break;
+ switch (BuiltinName[19]) {
+ default: break;
+ case 'l': // 2 strings to match.
+ if (BuiltinName[20] != '_')
+ break;
+ switch (BuiltinName[21]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_fexupl_d; // "__builtin_msa_fexupl_d"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_fexupl_w; // "__builtin_msa_fexupl_w"
+ }
+ break;
+ case 'r': // 2 strings to match.
+ if (BuiltinName[20] != '_')
+ break;
+ switch (BuiltinName[21]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_fexupr_d; // "__builtin_msa_fexupr_d"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_fexupr_w; // "__builtin_msa_fexupr_w"
+ }
+ break;
+ }
+ break;
+ case 'm': // 4 strings to match.
+ switch (BuiltinName[16]) {
+ default: break;
+ case 'a': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+17, "x_a_", 4))
+ break;
+ switch (BuiltinName[21]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_fmax_a_d; // "__builtin_msa_fmax_a_d"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_fmax_a_w; // "__builtin_msa_fmax_a_w"
+ }
+ break;
+ case 'i': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+17, "n_a_", 4))
+ break;
+ switch (BuiltinName[21]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_fmin_a_d; // "__builtin_msa_fmin_a_d"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_fmin_a_w; // "__builtin_msa_fmin_a_w"
+ }
+ break;
+ }
+ break;
+ case 'r': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+16, "sqrt_", 5))
+ break;
+ switch (BuiltinName[21]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_frsqrt_d; // "__builtin_msa_frsqrt_d"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_frsqrt_w; // "__builtin_msa_frsqrt_w"
+ }
+ break;
+ }
+ break;
+ case 'h': // 12 strings to match.
+ switch (BuiltinName[15]) {
+ default: break;
+ case 'a': // 6 strings to match.
+ if (memcmp(BuiltinName.data()+16, "dd_", 3))
+ break;
+ switch (BuiltinName[19]) {
+ default: break;
+ case 's': // 3 strings to match.
+ if (BuiltinName[20] != '_')
+ break;
+ switch (BuiltinName[21]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_hadd_s_d; // "__builtin_msa_hadd_s_d"
+ case 'h': // 1 string to match.
+ return Intrinsic::mips_hadd_s_h; // "__builtin_msa_hadd_s_h"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_hadd_s_w; // "__builtin_msa_hadd_s_w"
+ }
+ break;
+ case 'u': // 3 strings to match.
+ if (BuiltinName[20] != '_')
+ break;
+ switch (BuiltinName[21]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_hadd_u_d; // "__builtin_msa_hadd_u_d"
+ case 'h': // 1 string to match.
+ return Intrinsic::mips_hadd_u_h; // "__builtin_msa_hadd_u_h"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_hadd_u_w; // "__builtin_msa_hadd_u_w"
+ }
+ break;
+ }
+ break;
+ case 's': // 6 strings to match.
+ if (memcmp(BuiltinName.data()+16, "ub_", 3))
+ break;
+ switch (BuiltinName[19]) {
+ default: break;
+ case 's': // 3 strings to match.
+ if (BuiltinName[20] != '_')
+ break;
+ switch (BuiltinName[21]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_hsub_s_d; // "__builtin_msa_hsub_s_d"
+ case 'h': // 1 string to match.
+ return Intrinsic::mips_hsub_s_h; // "__builtin_msa_hsub_s_h"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_hsub_s_w; // "__builtin_msa_hsub_s_w"
+ }
+ break;
+ case 'u': // 3 strings to match.
+ if (BuiltinName[20] != '_')
+ break;
+ switch (BuiltinName[21]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_hsub_u_d; // "__builtin_msa_hsub_u_d"
+ case 'h': // 1 string to match.
+ return Intrinsic::mips_hsub_u_h; // "__builtin_msa_hsub_u_h"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_hsub_u_w; // "__builtin_msa_hsub_u_w"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 'i': // 4 strings to match.
+ if (memcmp(BuiltinName.data()+15, "nsert_", 6))
+ break;
+ switch (BuiltinName[21]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::mips_insert_b; // "__builtin_msa_insert_b"
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_insert_d; // "__builtin_msa_insert_d"
+ case 'h': // 1 string to match.
+ return Intrinsic::mips_insert_h; // "__builtin_msa_insert_h"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_insert_w; // "__builtin_msa_insert_w"
+ }
+ break;
+ case 'm': // 22 strings to match.
+ switch (BuiltinName[15]) {
+ default: break;
+ case 'a': // 10 strings to match.
+ switch (BuiltinName[16]) {
+ default: break;
+ case 'd': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+17, "d_q_", 4))
+ break;
+ switch (BuiltinName[21]) {
+ default: break;
+ case 'h': // 1 string to match.
+ return Intrinsic::mips_madd_q_h; // "__builtin_msa_madd_q_h"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_madd_q_w; // "__builtin_msa_madd_q_w"
+ }
+ break;
+ case 'x': // 8 strings to match.
+ if (memcmp(BuiltinName.data()+17, "i_", 2))
+ break;
+ switch (BuiltinName[19]) {
+ default: break;
+ case 's': // 4 strings to match.
+ if (BuiltinName[20] != '_')
+ break;
+ switch (BuiltinName[21]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::mips_maxi_s_b; // "__builtin_msa_maxi_s_b"
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_maxi_s_d; // "__builtin_msa_maxi_s_d"
+ case 'h': // 1 string to match.
+ return Intrinsic::mips_maxi_s_h; // "__builtin_msa_maxi_s_h"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_maxi_s_w; // "__builtin_msa_maxi_s_w"
+ }
+ break;
+ case 'u': // 4 strings to match.
+ if (BuiltinName[20] != '_')
+ break;
+ switch (BuiltinName[21]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::mips_maxi_u_b; // "__builtin_msa_maxi_u_b"
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_maxi_u_d; // "__builtin_msa_maxi_u_d"
+ case 'h': // 1 string to match.
+ return Intrinsic::mips_maxi_u_h; // "__builtin_msa_maxi_u_h"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_maxi_u_w; // "__builtin_msa_maxi_u_w"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 'i': // 8 strings to match.
+ if (memcmp(BuiltinName.data()+16, "ni_", 3))
+ break;
+ switch (BuiltinName[19]) {
+ default: break;
+ case 's': // 4 strings to match.
+ if (BuiltinName[20] != '_')
+ break;
+ switch (BuiltinName[21]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::mips_mini_s_b; // "__builtin_msa_mini_s_b"
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_mini_s_d; // "__builtin_msa_mini_s_d"
+ case 'h': // 1 string to match.
+ return Intrinsic::mips_mini_s_h; // "__builtin_msa_mini_s_h"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_mini_s_w; // "__builtin_msa_mini_s_w"
+ }
+ break;
+ case 'u': // 4 strings to match.
+ if (BuiltinName[20] != '_')
+ break;
+ switch (BuiltinName[21]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::mips_mini_u_b; // "__builtin_msa_mini_u_b"
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_mini_u_d; // "__builtin_msa_mini_u_d"
+ case 'h': // 1 string to match.
+ return Intrinsic::mips_mini_u_h; // "__builtin_msa_mini_u_h"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_mini_u_w; // "__builtin_msa_mini_u_w"
+ }
+ break;
+ }
+ break;
+ case 's': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+16, "ub_q_", 5))
+ break;
+ switch (BuiltinName[21]) {
+ default: break;
+ case 'h': // 1 string to match.
+ return Intrinsic::mips_msub_q_h; // "__builtin_msa_msub_q_h"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_msub_q_w; // "__builtin_msa_msub_q_w"
+ }
+ break;
+ case 'u': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+16, "lr_q_", 5))
+ break;
+ switch (BuiltinName[21]) {
+ default: break;
+ case 'h': // 1 string to match.
+ return Intrinsic::mips_mulr_q_h; // "__builtin_msa_mulr_q_h"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_mulr_q_w; // "__builtin_msa_mulr_q_w"
+ }
+ break;
+ }
+ break;
+ case 's': // 12 strings to match.
+ switch (BuiltinName[15]) {
+ default: break;
+ case 'p': // 4 strings to match.
+ if (memcmp(BuiltinName.data()+16, "lati_", 5))
+ break;
+ switch (BuiltinName[21]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::mips_splati_b; // "__builtin_msa_splati_b"
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_splati_d; // "__builtin_msa_splati_d"
+ case 'h': // 1 string to match.
+ return Intrinsic::mips_splati_h; // "__builtin_msa_splati_h"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_splati_w; // "__builtin_msa_splati_w"
+ }
+ break;
+ case 'u': // 8 strings to match.
+ if (memcmp(BuiltinName.data()+16, "bs_", 3))
+ break;
+ switch (BuiltinName[19]) {
+ default: break;
+ case 's': // 4 strings to match.
+ if (BuiltinName[20] != '_')
+ break;
+ switch (BuiltinName[21]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::mips_subs_s_b; // "__builtin_msa_subs_s_b"
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_subs_s_d; // "__builtin_msa_subs_s_d"
+ case 'h': // 1 string to match.
+ return Intrinsic::mips_subs_s_h; // "__builtin_msa_subs_s_h"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_subs_s_w; // "__builtin_msa_subs_s_w"
+ }
+ break;
+ case 'u': // 4 strings to match.
+ if (BuiltinName[20] != '_')
+ break;
+ switch (BuiltinName[21]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::mips_subs_u_b; // "__builtin_msa_subs_u_b"
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_subs_u_d; // "__builtin_msa_subs_u_d"
+ case 'h': // 1 string to match.
+ return Intrinsic::mips_subs_u_h; // "__builtin_msa_subs_u_h"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_subs_u_w; // "__builtin_msa_subs_u_w"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 23: // 40 strings to match.
+ if (memcmp(BuiltinName.data()+0, "__builtin_m", 11))
+ break;
+ switch (BuiltinName[11]) {
+ default: break;
+ case 'i': // 16 strings to match.
+ if (memcmp(BuiltinName.data()+12, "ps_", 3))
+ break;
+ switch (BuiltinName[15]) {
+ default: break;
+ case 'a': // 4 strings to match.
+ switch (BuiltinName[16]) {
+ default: break;
+ case 'b': // 1 string to match.
+ if (memcmp(BuiltinName.data()+17, "sq_s_w", 6))
+ break;
+ return Intrinsic::mips_absq_s_w; // "__builtin_mips_absq_s_w"
+ case 'd': // 3 strings to match.
+ if (BuiltinName[17] != 'd')
+ break;
+ switch (BuiltinName[18]) {
+ default: break;
+ case 'q': // 2 strings to match.
+ switch (BuiltinName[19]) {
+ default: break;
+ case '_': // 1 string to match.
+ if (memcmp(BuiltinName.data()+20, "s_w", 3))
+ break;
+ return Intrinsic::mips_addq_s_w; // "__builtin_mips_addq_s_w"
+ case 'h': // 1 string to match.
+ if (memcmp(BuiltinName.data()+20, "_ph", 3))
+ break;
+ return Intrinsic::mips_addqh_ph; // "__builtin_mips_addqh_ph"
+ }
+ break;
+ case 'u': // 1 string to match.
+ if (memcmp(BuiltinName.data()+19, "h_qb", 4))
+ break;
+ return Intrinsic::mips_adduh_qb; // "__builtin_mips_adduh_qb"
+ }
+ break;
+ }
+ break;
+ case 'b': // 1 string to match.
+ if (memcmp(BuiltinName.data()+16, "posge32", 7))
+ break;
+ return Intrinsic::mips_bposge32; // "__builtin_mips_bposge32"
+ case 'd': // 2 strings to match.
+ if (BuiltinName[16] != 'p')
+ break;
+ switch (BuiltinName[17]) {
+ default: break;
+ case 'a': // 1 string to match.
+ if (memcmp(BuiltinName.data()+18, "_w_ph", 5))
+ break;
+ return Intrinsic::mips_dpa_w_ph; // "__builtin_mips_dpa_w_ph"
+ case 's': // 1 string to match.
+ if (memcmp(BuiltinName.data()+18, "_w_ph", 5))
+ break;
+ return Intrinsic::mips_dps_w_ph; // "__builtin_mips_dps_w_ph"
+ }
+ break;
+ case 'e': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+16, "xtr_", 4))
+ break;
+ switch (BuiltinName[20]) {
+ default: break;
+ case 'r': // 1 string to match.
+ if (memcmp(BuiltinName.data()+21, "_w", 2))
+ break;
+ return Intrinsic::mips_extr_r_w; // "__builtin_mips_extr_r_w"
+ case 's': // 1 string to match.
+ if (memcmp(BuiltinName.data()+21, "_h", 2))
+ break;
+ return Intrinsic::mips_extr_s_h; // "__builtin_mips_extr_s_h"
+ }
+ break;
+ case 'm': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+16, "ul", 2))
+ break;
+ switch (BuiltinName[18]) {
+ default: break;
+ case '_': // 1 string to match.
+ if (memcmp(BuiltinName.data()+19, "s_ph", 4))
+ break;
+ return Intrinsic::mips_mul_s_ph; // "__builtin_mips_mul_s_ph"
+ case 'q': // 1 string to match.
+ if (memcmp(BuiltinName.data()+19, "_s_w", 4))
+ break;
+ return Intrinsic::mips_mulq_s_w; // "__builtin_mips_mulq_s_w"
+ }
+ break;
+ case 's': // 5 strings to match.
+ switch (BuiltinName[16]) {
+ default: break;
+ case 'h': // 2 strings to match.
+ switch (BuiltinName[17]) {
+ default: break;
+ case 'l': // 1 string to match.
+ if (memcmp(BuiltinName.data()+18, "l_s_w", 5))
+ break;
+ return Intrinsic::mips_shll_s_w; // "__builtin_mips_shll_s_w"
+ case 'r': // 1 string to match.
+ if (memcmp(BuiltinName.data()+18, "a_r_w", 5))
+ break;
+ return Intrinsic::mips_shra_r_w; // "__builtin_mips_shra_r_w"
+ }
+ break;
+ case 'u': // 3 strings to match.
+ if (BuiltinName[17] != 'b')
+ break;
+ switch (BuiltinName[18]) {
+ default: break;
+ case 'q': // 2 strings to match.
+ switch (BuiltinName[19]) {
+ default: break;
+ case '_': // 1 string to match.
+ if (memcmp(BuiltinName.data()+20, "s_w", 3))
+ break;
+ return Intrinsic::mips_subq_s_w; // "__builtin_mips_subq_s_w"
+ case 'h': // 1 string to match.
+ if (memcmp(BuiltinName.data()+20, "_ph", 3))
+ break;
+ return Intrinsic::mips_subqh_ph; // "__builtin_mips_subqh_ph"
+ }
+ break;
+ case 'u': // 1 string to match.
+ if (memcmp(BuiltinName.data()+19, "h_qb", 4))
+ break;
+ return Intrinsic::mips_subuh_qb; // "__builtin_mips_subuh_qb"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 's': // 24 strings to match.
+ if (memcmp(BuiltinName.data()+12, "a_", 2))
+ break;
+ switch (BuiltinName[14]) {
+ default: break;
+ case 'd': // 12 strings to match.
+ if (BuiltinName[15] != 'p')
+ break;
+ switch (BuiltinName[16]) {
+ default: break;
+ case 'a': // 6 strings to match.
+ if (memcmp(BuiltinName.data()+17, "dd_", 3))
+ break;
+ switch (BuiltinName[20]) {
+ default: break;
+ case 's': // 3 strings to match.
+ if (BuiltinName[21] != '_')
+ break;
+ switch (BuiltinName[22]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_dpadd_s_d; // "__builtin_msa_dpadd_s_d"
+ case 'h': // 1 string to match.
+ return Intrinsic::mips_dpadd_s_h; // "__builtin_msa_dpadd_s_h"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_dpadd_s_w; // "__builtin_msa_dpadd_s_w"
+ }
+ break;
+ case 'u': // 3 strings to match.
+ if (BuiltinName[21] != '_')
+ break;
+ switch (BuiltinName[22]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_dpadd_u_d; // "__builtin_msa_dpadd_u_d"
+ case 'h': // 1 string to match.
+ return Intrinsic::mips_dpadd_u_h; // "__builtin_msa_dpadd_u_h"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_dpadd_u_w; // "__builtin_msa_dpadd_u_w"
+ }
+ break;
+ }
+ break;
+ case 's': // 6 strings to match.
+ if (memcmp(BuiltinName.data()+17, "ub_", 3))
+ break;
+ switch (BuiltinName[20]) {
+ default: break;
+ case 's': // 3 strings to match.
+ if (BuiltinName[21] != '_')
+ break;
+ switch (BuiltinName[22]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_dpsub_s_d; // "__builtin_msa_dpsub_s_d"
+ case 'h': // 1 string to match.
+ return Intrinsic::mips_dpsub_s_h; // "__builtin_msa_dpsub_s_h"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_dpsub_s_w; // "__builtin_msa_dpsub_s_w"
+ }
+ break;
+ case 'u': // 3 strings to match.
+ if (BuiltinName[21] != '_')
+ break;
+ switch (BuiltinName[22]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_dpsub_u_d; // "__builtin_msa_dpsub_u_d"
+ case 'h': // 1 string to match.
+ return Intrinsic::mips_dpsub_u_h; // "__builtin_msa_dpsub_u_h"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_dpsub_u_w; // "__builtin_msa_dpsub_u_w"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 'f': // 8 strings to match.
+ switch (BuiltinName[15]) {
+ default: break;
+ case 'f': // 4 strings to match.
+ if (memcmp(BuiltinName.data()+16, "int_", 4))
+ break;
+ switch (BuiltinName[20]) {
+ default: break;
+ case 's': // 2 strings to match.
+ if (BuiltinName[21] != '_')
+ break;
+ switch (BuiltinName[22]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_ffint_s_d; // "__builtin_msa_ffint_s_d"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_ffint_s_w; // "__builtin_msa_ffint_s_w"
+ }
+ break;
+ case 'u': // 2 strings to match.
+ if (BuiltinName[21] != '_')
+ break;
+ switch (BuiltinName[22]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_ffint_u_d; // "__builtin_msa_ffint_u_d"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_ffint_u_w; // "__builtin_msa_ffint_u_w"
+ }
+ break;
+ }
+ break;
+ case 't': // 4 strings to match.
+ if (memcmp(BuiltinName.data()+16, "int_", 4))
+ break;
+ switch (BuiltinName[20]) {
+ default: break;
+ case 's': // 2 strings to match.
+ if (BuiltinName[21] != '_')
+ break;
+ switch (BuiltinName[22]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_ftint_s_d; // "__builtin_msa_ftint_s_d"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_ftint_s_w; // "__builtin_msa_ftint_s_w"
+ }
+ break;
+ case 'u': // 2 strings to match.
+ if (BuiltinName[21] != '_')
+ break;
+ switch (BuiltinName[22]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_ftint_u_d; // "__builtin_msa_ftint_u_d"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_ftint_u_w; // "__builtin_msa_ftint_u_w"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 'm': // 4 strings to match.
+ switch (BuiltinName[15]) {
+ default: break;
+ case 'a': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+16, "ddr_q_", 6))
+ break;
+ switch (BuiltinName[22]) {
+ default: break;
+ case 'h': // 1 string to match.
+ return Intrinsic::mips_maddr_q_h; // "__builtin_msa_maddr_q_h"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_maddr_q_w; // "__builtin_msa_maddr_q_w"
+ }
+ break;
+ case 's': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+16, "ubr_q_", 6))
+ break;
+ switch (BuiltinName[22]) {
+ default: break;
+ case 'h': // 1 string to match.
+ return Intrinsic::mips_msubr_q_h; // "__builtin_msa_msubr_q_h"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_msubr_q_w; // "__builtin_msa_msubr_q_w"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 24: // 34 strings to match.
+ if (memcmp(BuiltinName.data()+0, "__builtin_m", 11))
+ break;
+ switch (BuiltinName[11]) {
+ default: break;
+ case 'i': // 22 strings to match.
+ if (memcmp(BuiltinName.data()+12, "ps_", 3))
+ break;
+ switch (BuiltinName[15]) {
+ default: break;
+ case 'a': // 6 strings to match.
+ switch (BuiltinName[16]) {
+ default: break;
+ case 'b': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+17, "sq_s_", 5))
+ break;
+ switch (BuiltinName[22]) {
+ default: break;
+ case 'p': // 1 string to match.
+ if (BuiltinName[23] != 'h')
+ break;
+ return Intrinsic::mips_absq_s_ph; // "__builtin_mips_absq_s_ph"
+ case 'q': // 1 string to match.
+ if (BuiltinName[23] != 'b')
+ break;
+ return Intrinsic::mips_absq_s_qb; // "__builtin_mips_absq_s_qb"
+ }
+ break;
+ case 'd': // 4 strings to match.
+ if (BuiltinName[17] != 'd')
+ break;
+ switch (BuiltinName[18]) {
+ default: break;
+ case 'q': // 2 strings to match.
+ switch (BuiltinName[19]) {
+ default: break;
+ case '_': // 1 string to match.
+ if (memcmp(BuiltinName.data()+20, "s_ph", 4))
+ break;
+ return Intrinsic::mips_addq_s_ph; // "__builtin_mips_addq_s_ph"
+ case 'h': // 1 string to match.
+ if (memcmp(BuiltinName.data()+20, "_r_w", 4))
+ break;
+ return Intrinsic::mips_addqh_r_w; // "__builtin_mips_addqh_r_w"
+ }
+ break;
+ case 'u': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+19, "_s_", 3))
+ break;
+ switch (BuiltinName[22]) {
+ default: break;
+ case 'p': // 1 string to match.
+ if (BuiltinName[23] != 'h')
+ break;
+ return Intrinsic::mips_addu_s_ph; // "__builtin_mips_addu_s_ph"
+ case 'q': // 1 string to match.
+ if (BuiltinName[23] != 'b')
+ break;
+ return Intrinsic::mips_addu_s_qb; // "__builtin_mips_addu_s_qb"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 'c': // 3 strings to match.
+ if (memcmp(BuiltinName.data()+16, "mp_", 3))
+ break;
+ switch (BuiltinName[19]) {
+ default: break;
+ case 'e': // 1 string to match.
+ if (memcmp(BuiltinName.data()+20, "q_ph", 4))
+ break;
+ return Intrinsic::mips_cmp_eq_ph; // "__builtin_mips_cmp_eq_ph"
+ case 'l': // 2 strings to match.
+ switch (BuiltinName[20]) {
+ default: break;
+ case 'e': // 1 string to match.
+ if (memcmp(BuiltinName.data()+21, "_ph", 3))
+ break;
+ return Intrinsic::mips_cmp_le_ph; // "__builtin_mips_cmp_le_ph"
+ case 't': // 1 string to match.
+ if (memcmp(BuiltinName.data()+21, "_ph", 3))
+ break;
+ return Intrinsic::mips_cmp_lt_ph; // "__builtin_mips_cmp_lt_ph"
+ }
+ break;
+ }
+ break;
+ case 'd': // 2 strings to match.
+ if (BuiltinName[16] != 'p')
+ break;
+ switch (BuiltinName[17]) {
+ default: break;
+ case 'a': // 1 string to match.
+ if (memcmp(BuiltinName.data()+18, "x_w_ph", 6))
+ break;
+ return Intrinsic::mips_dpax_w_ph; // "__builtin_mips_dpax_w_ph"
+ case 's': // 1 string to match.
+ if (memcmp(BuiltinName.data()+18, "x_w_ph", 6))
+ break;
+ return Intrinsic::mips_dpsx_w_ph; // "__builtin_mips_dpsx_w_ph"
+ }
+ break;
+ case 'e': // 1 string to match.
+ if (memcmp(BuiltinName.data()+16, "xtr_rs_w", 8))
+ break;
+ return Intrinsic::mips_extr_rs_w; // "__builtin_mips_extr_rs_w"
+ case 'm': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+16, "ulq_", 4))
+ break;
+ switch (BuiltinName[20]) {
+ default: break;
+ case 'r': // 1 string to match.
+ if (memcmp(BuiltinName.data()+21, "s_w", 3))
+ break;
+ return Intrinsic::mips_mulq_rs_w; // "__builtin_mips_mulq_rs_w"
+ case 's': // 1 string to match.
+ if (memcmp(BuiltinName.data()+21, "_ph", 3))
+ break;
+ return Intrinsic::mips_mulq_s_ph; // "__builtin_mips_mulq_s_ph"
+ }
+ break;
+ case 'p': // 1 string to match.
+ if (memcmp(BuiltinName.data()+16, "ackrl_ph", 8))
+ break;
+ return Intrinsic::mips_packrl_ph; // "__builtin_mips_packrl_ph"
+ case 's': // 7 strings to match.
+ switch (BuiltinName[16]) {
+ default: break;
+ case 'h': // 3 strings to match.
+ switch (BuiltinName[17]) {
+ default: break;
+ case 'l': // 1 string to match.
+ if (memcmp(BuiltinName.data()+18, "l_s_ph", 6))
+ break;
+ return Intrinsic::mips_shll_s_ph; // "__builtin_mips_shll_s_ph"
+ case 'r': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+18, "a_r_", 4))
+ break;
+ switch (BuiltinName[22]) {
+ default: break;
+ case 'p': // 1 string to match.
+ if (BuiltinName[23] != 'h')
+ break;
+ return Intrinsic::mips_shra_r_ph; // "__builtin_mips_shra_r_ph"
+ case 'q': // 1 string to match.
+ if (BuiltinName[23] != 'b')
+ break;
+ return Intrinsic::mips_shra_r_qb; // "__builtin_mips_shra_r_qb"
+ }
+ break;
+ }
+ break;
+ case 'u': // 4 strings to match.
+ if (BuiltinName[17] != 'b')
+ break;
+ switch (BuiltinName[18]) {
+ default: break;
+ case 'q': // 2 strings to match.
+ switch (BuiltinName[19]) {
+ default: break;
+ case '_': // 1 string to match.
+ if (memcmp(BuiltinName.data()+20, "s_ph", 4))
+ break;
+ return Intrinsic::mips_subq_s_ph; // "__builtin_mips_subq_s_ph"
+ case 'h': // 1 string to match.
+ if (memcmp(BuiltinName.data()+20, "_r_w", 4))
+ break;
+ return Intrinsic::mips_subqh_r_w; // "__builtin_mips_subqh_r_w"
+ }
+ break;
+ case 'u': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+19, "_s_", 3))
+ break;
+ switch (BuiltinName[22]) {
+ default: break;
+ case 'p': // 1 string to match.
+ if (BuiltinName[23] != 'h')
+ break;
+ return Intrinsic::mips_subu_s_ph; // "__builtin_mips_subu_s_ph"
+ case 'q': // 1 string to match.
+ if (BuiltinName[23] != 'b')
+ break;
+ return Intrinsic::mips_subu_s_qb; // "__builtin_mips_subu_s_qb"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 's': // 12 strings to match.
+ if (memcmp(BuiltinName.data()+12, "a_", 2))
+ break;
+ switch (BuiltinName[14]) {
+ default: break;
+ case 'f': // 4 strings to match.
+ if (memcmp(BuiltinName.data()+15, "trunc_", 6))
+ break;
+ switch (BuiltinName[21]) {
+ default: break;
+ case 's': // 2 strings to match.
+ if (BuiltinName[22] != '_')
+ break;
+ switch (BuiltinName[23]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_ftrunc_s_d; // "__builtin_msa_ftrunc_s_d"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_ftrunc_s_w; // "__builtin_msa_ftrunc_s_w"
+ }
+ break;
+ case 'u': // 2 strings to match.
+ if (BuiltinName[22] != '_')
+ break;
+ switch (BuiltinName[23]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_ftrunc_u_d; // "__builtin_msa_ftrunc_u_d"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_ftrunc_u_w; // "__builtin_msa_ftrunc_u_w"
+ }
+ break;
+ }
+ break;
+ case 's': // 8 strings to match.
+ if (memcmp(BuiltinName.data()+15, "ubsu", 4))
+ break;
+ switch (BuiltinName[19]) {
+ default: break;
+ case 's': // 4 strings to match.
+ if (memcmp(BuiltinName.data()+20, "_u_", 3))
+ break;
+ switch (BuiltinName[23]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::mips_subsus_u_b; // "__builtin_msa_subsus_u_b"
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_subsus_u_d; // "__builtin_msa_subsus_u_d"
+ case 'h': // 1 string to match.
+ return Intrinsic::mips_subsus_u_h; // "__builtin_msa_subsus_u_h"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_subsus_u_w; // "__builtin_msa_subsus_u_w"
+ }
+ break;
+ case 'u': // 4 strings to match.
+ if (memcmp(BuiltinName.data()+20, "_s_", 3))
+ break;
+ switch (BuiltinName[23]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::mips_subsuu_s_b; // "__builtin_msa_subsuu_s_b"
+ case 'd': // 1 string to match.
+ return Intrinsic::mips_subsuu_s_d; // "__builtin_msa_subsuu_s_d"
+ case 'h': // 1 string to match.
+ return Intrinsic::mips_subsuu_s_h; // "__builtin_msa_subsuu_s_h"
+ case 'w': // 1 string to match.
+ return Intrinsic::mips_subsuu_s_w; // "__builtin_msa_subsuu_s_w"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 25: // 14 strings to match.
+ if (memcmp(BuiltinName.data()+0, "__builtin_mips_", 15))
+ break;
+ switch (BuiltinName[15]) {
+ default: break;
+ case 'a': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+16, "dd", 2))
+ break;
+ switch (BuiltinName[18]) {
+ default: break;
+ case 'q': // 1 string to match.
+ if (memcmp(BuiltinName.data()+19, "h_r_ph", 6))
+ break;
+ return Intrinsic::mips_addqh_r_ph; // "__builtin_mips_addqh_r_ph"
+ case 'u': // 1 string to match.
+ if (memcmp(BuiltinName.data()+19, "h_r_qb", 6))
+ break;
+ return Intrinsic::mips_adduh_r_qb; // "__builtin_mips_adduh_r_qb"
+ }
+ break;
+ case 'c': // 3 strings to match.
+ if (memcmp(BuiltinName.data()+16, "mpu_", 4))
+ break;
+ switch (BuiltinName[20]) {
+ default: break;
+ case 'e': // 1 string to match.
+ if (memcmp(BuiltinName.data()+21, "q_qb", 4))
+ break;
+ return Intrinsic::mips_cmpu_eq_qb; // "__builtin_mips_cmpu_eq_qb"
+ case 'l': // 2 strings to match.
+ switch (BuiltinName[21]) {
+ default: break;
+ case 'e': // 1 string to match.
+ if (memcmp(BuiltinName.data()+22, "_qb", 3))
+ break;
+ return Intrinsic::mips_cmpu_le_qb; // "__builtin_mips_cmpu_le_qb"
+ case 't': // 1 string to match.
+ if (memcmp(BuiltinName.data()+22, "_qb", 3))
+ break;
+ return Intrinsic::mips_cmpu_lt_qb; // "__builtin_mips_cmpu_lt_qb"
+ }
+ break;
+ }
+ break;
+ case 'd': // 4 strings to match.
+ if (BuiltinName[16] != 'p')
+ break;
+ switch (BuiltinName[17]) {
+ default: break;
+ case 'a': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+18, "u_h_qb", 6))
+ break;
+ switch (BuiltinName[24]) {
+ default: break;
+ case 'l': // 1 string to match.
+ return Intrinsic::mips_dpau_h_qbl; // "__builtin_mips_dpau_h_qbl"
+ case 'r': // 1 string to match.
+ return Intrinsic::mips_dpau_h_qbr; // "__builtin_mips_dpau_h_qbr"
+ }
+ break;
+ case 's': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+18, "u_h_qb", 6))
+ break;
+ switch (BuiltinName[24]) {
+ default: break;
+ case 'l': // 1 string to match.
+ return Intrinsic::mips_dpsu_h_qbl; // "__builtin_mips_dpsu_h_qbl"
+ case 'r': // 1 string to match.
+ return Intrinsic::mips_dpsu_h_qbr; // "__builtin_mips_dpsu_h_qbr"
+ }
+ break;
+ }
+ break;
+ case 'm': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+16, "ul", 2))
+ break;
+ switch (BuiltinName[18]) {
+ default: break;
+ case 'q': // 1 string to match.
+ if (memcmp(BuiltinName.data()+19, "_rs_ph", 6))
+ break;
+ return Intrinsic::mips_mulq_rs_ph; // "__builtin_mips_mulq_rs_ph"
+ case 's': // 1 string to match.
+ if (memcmp(BuiltinName.data()+19, "a_w_ph", 6))
+ break;
+ return Intrinsic::mips_mulsa_w_ph; // "__builtin_mips_mulsa_w_ph"
+ }
+ break;
+ case 'r': // 1 string to match.
+ if (memcmp(BuiltinName.data()+16, "addu_w_qb", 9))
+ break;
+ return Intrinsic::mips_raddu_w_qb; // "__builtin_mips_raddu_w_qb"
+ case 's': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+16, "ub", 2))
+ break;
+ switch (BuiltinName[18]) {
+ default: break;
+ case 'q': // 1 string to match.
+ if (memcmp(BuiltinName.data()+19, "h_r_ph", 6))
+ break;
+ return Intrinsic::mips_subqh_r_ph; // "__builtin_mips_subqh_r_ph"
+ case 'u': // 1 string to match.
+ if (memcmp(BuiltinName.data()+19, "h_r_qb", 6))
+ break;
+ return Intrinsic::mips_subuh_r_qb; // "__builtin_mips_subuh_r_qb"
+ }
+ break;
+ }
+ break;
+ case 26: // 11 strings to match.
+ if (memcmp(BuiltinName.data()+0, "__builtin_mips_", 15))
+ break;
+ switch (BuiltinName[15]) {
+ default: break;
+ case 'c': // 3 strings to match.
+ if (memcmp(BuiltinName.data()+16, "mpgu_", 5))
+ break;
+ switch (BuiltinName[21]) {
+ default: break;
+ case 'e': // 1 string to match.
+ if (memcmp(BuiltinName.data()+22, "q_qb", 4))
+ break;
+ return Intrinsic::mips_cmpgu_eq_qb; // "__builtin_mips_cmpgu_eq_qb"
+ case 'l': // 2 strings to match.
+ switch (BuiltinName[22]) {
+ default: break;
+ case 'e': // 1 string to match.
+ if (memcmp(BuiltinName.data()+23, "_qb", 3))
+ break;
+ return Intrinsic::mips_cmpgu_le_qb; // "__builtin_mips_cmpgu_le_qb"
+ case 't': // 1 string to match.
+ if (memcmp(BuiltinName.data()+23, "_qb", 3))
+ break;
+ return Intrinsic::mips_cmpgu_lt_qb; // "__builtin_mips_cmpgu_lt_qb"
+ }
+ break;
+ }
+ break;
+ case 'd': // 4 strings to match.
+ if (BuiltinName[16] != 'p')
+ break;
+ switch (BuiltinName[17]) {
+ default: break;
+ case 'a': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+18, "q_s", 3))
+ break;
+ switch (BuiltinName[21]) {
+ default: break;
+ case '_': // 1 string to match.
+ if (memcmp(BuiltinName.data()+22, "w_ph", 4))
+ break;
+ return Intrinsic::mips_dpaq_s_w_ph; // "__builtin_mips_dpaq_s_w_ph"
+ case 'a': // 1 string to match.
+ if (memcmp(BuiltinName.data()+22, "_l_w", 4))
+ break;
+ return Intrinsic::mips_dpaq_sa_l_w; // "__builtin_mips_dpaq_sa_l_w"
+ }
+ break;
+ case 's': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+18, "q_s", 3))
+ break;
+ switch (BuiltinName[21]) {
+ default: break;
+ case '_': // 1 string to match.
+ if (memcmp(BuiltinName.data()+22, "w_ph", 4))
+ break;
+ return Intrinsic::mips_dpsq_s_w_ph; // "__builtin_mips_dpsq_s_w_ph"
+ case 'a': // 1 string to match.
+ if (memcmp(BuiltinName.data()+22, "_l_w", 4))
+ break;
+ return Intrinsic::mips_dpsq_sa_l_w; // "__builtin_mips_dpsq_sa_l_w"
+ }
+ break;
+ }
+ break;
+ case 'm': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+16, "aq_s_w_ph", 9))
+ break;
+ switch (BuiltinName[25]) {
+ default: break;
+ case 'l': // 1 string to match.
+ return Intrinsic::mips_maq_s_w_phl; // "__builtin_mips_maq_s_w_phl"
+ case 'r': // 1 string to match.
+ return Intrinsic::mips_maq_s_w_phr; // "__builtin_mips_maq_s_w_phr"
+ }
+ break;
+ case 'p': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+16, "recr", 4))
+ break;
+ switch (BuiltinName[20]) {
+ default: break;
+ case '_': // 1 string to match.
+ if (memcmp(BuiltinName.data()+21, "qb_ph", 5))
+ break;
+ return Intrinsic::mips_precr_qb_ph; // "__builtin_mips_precr_qb_ph"
+ case 'q': // 1 string to match.
+ if (memcmp(BuiltinName.data()+21, "_ph_w", 5))
+ break;
+ return Intrinsic::mips_precrq_ph_w; // "__builtin_mips_precrq_ph_w"
+ }
+ break;
+ }
+ break;
+ case 27: // 10 strings to match.
+ if (memcmp(BuiltinName.data()+0, "__builtin_mips_", 15))
+ break;
+ switch (BuiltinName[15]) {
+ default: break;
+ case 'c': // 3 strings to match.
+ if (memcmp(BuiltinName.data()+16, "mpgdu_", 6))
+ break;
+ switch (BuiltinName[22]) {
+ default: break;
+ case 'e': // 1 string to match.
+ if (memcmp(BuiltinName.data()+23, "q_qb", 4))
+ break;
+ return Intrinsic::mips_cmpgdu_eq_qb; // "__builtin_mips_cmpgdu_eq_qb"
+ case 'l': // 2 strings to match.
+ switch (BuiltinName[23]) {
+ default: break;
+ case 'e': // 1 string to match.
+ if (memcmp(BuiltinName.data()+24, "_qb", 3))
+ break;
+ return Intrinsic::mips_cmpgdu_le_qb; // "__builtin_mips_cmpgdu_le_qb"
+ case 't': // 1 string to match.
+ if (memcmp(BuiltinName.data()+24, "_qb", 3))
+ break;
+ return Intrinsic::mips_cmpgdu_lt_qb; // "__builtin_mips_cmpgdu_lt_qb"
+ }
+ break;
+ }
+ break;
+ case 'd': // 2 strings to match.
+ if (BuiltinName[16] != 'p')
+ break;
+ switch (BuiltinName[17]) {
+ default: break;
+ case 'a': // 1 string to match.
+ if (memcmp(BuiltinName.data()+18, "qx_s_w_ph", 9))
+ break;
+ return Intrinsic::mips_dpaqx_s_w_ph; // "__builtin_mips_dpaqx_s_w_ph"
+ case 's': // 1 string to match.
+ if (memcmp(BuiltinName.data()+18, "qx_s_w_ph", 9))
+ break;
+ return Intrinsic::mips_dpsqx_s_w_ph; // "__builtin_mips_dpsqx_s_w_ph"
+ }
+ break;
+ case 'm': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+16, "aq_sa_w_ph", 10))
+ break;
+ switch (BuiltinName[26]) {
+ default: break;
+ case 'l': // 1 string to match.
+ return Intrinsic::mips_maq_sa_w_phl; // "__builtin_mips_maq_sa_w_phl"
+ case 'r': // 1 string to match.
+ return Intrinsic::mips_maq_sa_w_phr; // "__builtin_mips_maq_sa_w_phr"
+ }
+ break;
+ case 'p': // 3 strings to match.
+ if (memcmp(BuiltinName.data()+16, "rec", 3))
+ break;
+ switch (BuiltinName[19]) {
+ default: break;
+ case 'e': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+20, "q_w_ph", 6))
+ break;
+ switch (BuiltinName[26]) {
+ default: break;
+ case 'l': // 1 string to match.
+ return Intrinsic::mips_preceq_w_phl; // "__builtin_mips_preceq_w_phl"
+ case 'r': // 1 string to match.
+ return Intrinsic::mips_preceq_w_phr; // "__builtin_mips_preceq_w_phr"
+ }
+ break;
+ case 'r': // 1 string to match.
+ if (memcmp(BuiltinName.data()+20, "q_qb_ph", 7))
+ break;
+ return Intrinsic::mips_precrq_qb_ph; // "__builtin_mips_precrq_qb_ph"
+ }
+ break;
+ }
+ break;
+ case 28: // 7 strings to match.
+ if (memcmp(BuiltinName.data()+0, "__builtin_mips_", 15))
+ break;
+ switch (BuiltinName[15]) {
+ default: break;
+ case 'd': // 2 strings to match.
+ if (BuiltinName[16] != 'p')
+ break;
+ switch (BuiltinName[17]) {
+ default: break;
+ case 'a': // 1 string to match.
+ if (memcmp(BuiltinName.data()+18, "qx_sa_w_ph", 10))
+ break;
+ return Intrinsic::mips_dpaqx_sa_w_ph; // "__builtin_mips_dpaqx_sa_w_ph"
+ case 's': // 1 string to match.
+ if (memcmp(BuiltinName.data()+18, "qx_sa_w_ph", 10))
+ break;
+ return Intrinsic::mips_dpsqx_sa_w_ph; // "__builtin_mips_dpsqx_sa_w_ph"
+ }
+ break;
+ case 'm': // 3 strings to match.
+ if (memcmp(BuiltinName.data()+16, "ul", 2))
+ break;
+ switch (BuiltinName[18]) {
+ default: break;
+ case 'e': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+19, "q_s_w_ph", 8))
+ break;
+ switch (BuiltinName[27]) {
+ default: break;
+ case 'l': // 1 string to match.
+ return Intrinsic::mips_muleq_s_w_phl; // "__builtin_mips_muleq_s_w_phl"
+ case 'r': // 1 string to match.
+ return Intrinsic::mips_muleq_s_w_phr; // "__builtin_mips_muleq_s_w_phr"
+ }
+ break;
+ case 's': // 1 string to match.
+ if (memcmp(BuiltinName.data()+19, "aq_s_w_ph", 9))
+ break;
+ return Intrinsic::mips_mulsaq_s_w_ph; // "__builtin_mips_mulsaq_s_w_ph"
+ }
+ break;
+ case 'p': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+16, "receu_ph_qb", 11))
+ break;
+ switch (BuiltinName[27]) {
+ default: break;
+ case 'l': // 1 string to match.
+ return Intrinsic::mips_preceu_ph_qbl; // "__builtin_mips_preceu_ph_qbl"
+ case 'r': // 1 string to match.
+ return Intrinsic::mips_preceu_ph_qbr; // "__builtin_mips_preceu_ph_qbr"
+ }
+ break;
+ }
+ break;
+ case 29: // 8 strings to match.
+ if (memcmp(BuiltinName.data()+0, "__builtin_mips_", 15))
+ break;
+ switch (BuiltinName[15]) {
+ default: break;
+ case 'm': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+16, "uleu_s_ph_qb", 12))
+ break;
+ switch (BuiltinName[28]) {
+ default: break;
+ case 'l': // 1 string to match.
+ return Intrinsic::mips_muleu_s_ph_qbl; // "__builtin_mips_muleu_s_ph_qbl"
+ case 'r': // 1 string to match.
+ return Intrinsic::mips_muleu_s_ph_qbr; // "__builtin_mips_muleu_s_ph_qbr"
+ }
+ break;
+ case 'p': // 6 strings to match.
+ if (memcmp(BuiltinName.data()+16, "rec", 3))
+ break;
+ switch (BuiltinName[19]) {
+ default: break;
+ case 'e': // 4 strings to match.
+ switch (BuiltinName[20]) {
+ default: break;
+ case 'q': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+21, "u_ph_qb", 7))
+ break;
+ switch (BuiltinName[28]) {
+ default: break;
+ case 'l': // 1 string to match.
+ return Intrinsic::mips_precequ_ph_qbl; // "__builtin_mips_precequ_ph_qbl"
+ case 'r': // 1 string to match.
+ return Intrinsic::mips_precequ_ph_qbr; // "__builtin_mips_precequ_ph_qbr"
+ }
+ break;
+ case 'u': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+21, "_ph_qb", 6))
+ break;
+ switch (BuiltinName[27]) {
+ default: break;
+ case 'l': // 1 string to match.
+ if (BuiltinName[28] != 'a')
+ break;
+ return Intrinsic::mips_preceu_ph_qbla; // "__builtin_mips_preceu_ph_qbla"
+ case 'r': // 1 string to match.
+ if (BuiltinName[28] != 'a')
+ break;
+ return Intrinsic::mips_preceu_ph_qbra; // "__builtin_mips_preceu_ph_qbra"
+ }
+ break;
+ }
+ break;
+ case 'r': // 2 strings to match.
+ switch (BuiltinName[20]) {
+ default: break;
+ case '_': // 1 string to match.
+ if (memcmp(BuiltinName.data()+21, "sra_ph_w", 8))
+ break;
+ return Intrinsic::mips_precr_sra_ph_w; // "__builtin_mips_precr_sra_ph_w"
+ case 'q': // 1 string to match.
+ if (memcmp(BuiltinName.data()+21, "_rs_ph_w", 8))
+ break;
+ return Intrinsic::mips_precrq_rs_ph_w; // "__builtin_mips_precrq_rs_ph_w"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 30: // 3 strings to match.
+ if (memcmp(BuiltinName.data()+0, "__builtin_mips_prec", 19))
+ break;
+ switch (BuiltinName[19]) {
+ default: break;
+ case 'e': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+20, "qu_ph_qb", 8))
+ break;
+ switch (BuiltinName[28]) {
+ default: break;
+ case 'l': // 1 string to match.
+ if (BuiltinName[29] != 'a')
+ break;
+ return Intrinsic::mips_precequ_ph_qbla; // "__builtin_mips_precequ_ph_qbla"
+ case 'r': // 1 string to match.
+ if (BuiltinName[29] != 'a')
+ break;
+ return Intrinsic::mips_precequ_ph_qbra; // "__builtin_mips_precequ_ph_qbra"
+ }
+ break;
+ case 'r': // 1 string to match.
+ if (memcmp(BuiltinName.data()+20, "qu_s_qb_ph", 10))
+ break;
+ return Intrinsic::mips_precrqu_s_qb_ph; // "__builtin_mips_precrqu_s_qb_ph"
+ }
+ break;
+ case 31: // 1 string to match.
+ if (memcmp(BuiltinName.data()+0, "__builtin_mips_precr_sra_r_ph_w", 31))
+ break;
+ return Intrinsic::mips_precr_sra_r_ph_w; // "__builtin_mips_precr_sra_r_ph_w"
+ }
+ }
+ if (TargetPrefix == "ppc") {
+ switch (BuiltinName.size()) {
+ default: break;
+ case 21: // 4 strings to match.
+ if (memcmp(BuiltinName.data()+0, "__builtin_altivec_", 18))
+ break;
+ switch (BuiltinName[18]) {
+ default: break;
+ case 'd': // 2 strings to match.
+ if (BuiltinName[19] != 's')
+ break;
+ switch (BuiltinName[20]) {
+ default: break;
+ case 's': // 1 string to match.
+ return Intrinsic::ppc_altivec_dss; // "__builtin_altivec_dss"
+ case 't': // 1 string to match.
+ return Intrinsic::ppc_altivec_dst; // "__builtin_altivec_dst"
+ }
+ break;
+ case 'v': // 2 strings to match.
+ if (BuiltinName[19] != 's')
+ break;
+ switch (BuiltinName[20]) {
+ default: break;
+ case 'l': // 1 string to match.
+ return Intrinsic::ppc_altivec_vsl; // "__builtin_altivec_vsl"
+ case 'r': // 1 string to match.
+ return Intrinsic::ppc_altivec_vsr; // "__builtin_altivec_vsr"
+ }
+ break;
+ }
+ break;
+ case 22: // 12 strings to match.
+ if (memcmp(BuiltinName.data()+0, "__builtin_altivec_", 18))
+ break;
+ switch (BuiltinName[18]) {
+ default: break;
+ case 'd': // 1 string to match.
+ if (memcmp(BuiltinName.data()+19, "stt", 3))
+ break;
+ return Intrinsic::ppc_altivec_dstt; // "__builtin_altivec_dstt"
+ case 'v': // 11 strings to match.
+ switch (BuiltinName[19]) {
+ default: break;
+ case 'r': // 3 strings to match.
+ if (BuiltinName[20] != 'l')
+ break;
+ switch (BuiltinName[21]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::ppc_altivec_vrlb; // "__builtin_altivec_vrlb"
+ case 'h': // 1 string to match.
+ return Intrinsic::ppc_altivec_vrlh; // "__builtin_altivec_vrlh"
+ case 'w': // 1 string to match.
+ return Intrinsic::ppc_altivec_vrlw; // "__builtin_altivec_vrlw"
+ }
+ break;
+ case 's': // 8 strings to match.
+ switch (BuiltinName[20]) {
+ default: break;
+ case 'l': // 4 strings to match.
+ switch (BuiltinName[21]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::ppc_altivec_vslb; // "__builtin_altivec_vslb"
+ case 'h': // 1 string to match.
+ return Intrinsic::ppc_altivec_vslh; // "__builtin_altivec_vslh"
+ case 'o': // 1 string to match.
+ return Intrinsic::ppc_altivec_vslo; // "__builtin_altivec_vslo"
+ case 'w': // 1 string to match.
+ return Intrinsic::ppc_altivec_vslw; // "__builtin_altivec_vslw"
+ }
+ break;
+ case 'r': // 4 strings to match.
+ switch (BuiltinName[21]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::ppc_altivec_vsrb; // "__builtin_altivec_vsrb"
+ case 'h': // 1 string to match.
+ return Intrinsic::ppc_altivec_vsrh; // "__builtin_altivec_vsrh"
+ case 'o': // 1 string to match.
+ return Intrinsic::ppc_altivec_vsro; // "__builtin_altivec_vsro"
+ case 'w': // 1 string to match.
+ return Intrinsic::ppc_altivec_vsrw; // "__builtin_altivec_vsrw"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 23: // 12 strings to match.
+ if (memcmp(BuiltinName.data()+0, "__builtin_altivec_", 18))
+ break;
+ switch (BuiltinName[18]) {
+ default: break;
+ case 'd': // 1 string to match.
+ if (memcmp(BuiltinName.data()+19, "stst", 4))
+ break;
+ return Intrinsic::ppc_altivec_dstst; // "__builtin_altivec_dstst"
+ case 'v': // 11 strings to match.
+ switch (BuiltinName[19]) {
+ default: break;
+ case 'c': // 2 strings to match.
+ if (BuiltinName[20] != 'f')
+ break;
+ switch (BuiltinName[21]) {
+ default: break;
+ case 's': // 1 string to match.
+ if (BuiltinName[22] != 'x')
+ break;
+ return Intrinsic::ppc_altivec_vcfsx; // "__builtin_altivec_vcfsx"
+ case 'u': // 1 string to match.
+ if (BuiltinName[22] != 'x')
+ break;
+ return Intrinsic::ppc_altivec_vcfux; // "__builtin_altivec_vcfux"
+ }
+ break;
+ case 'p': // 1 string to match.
+ if (memcmp(BuiltinName.data()+20, "kpx", 3))
+ break;
+ return Intrinsic::ppc_altivec_vpkpx; // "__builtin_altivec_vpkpx"
+ case 'r': // 5 strings to match.
+ switch (BuiltinName[20]) {
+ default: break;
+ case 'e': // 1 string to match.
+ if (memcmp(BuiltinName.data()+21, "fp", 2))
+ break;
+ return Intrinsic::ppc_altivec_vrefp; // "__builtin_altivec_vrefp"
+ case 'f': // 4 strings to match.
+ if (BuiltinName[21] != 'i')
+ break;
+ switch (BuiltinName[22]) {
+ default: break;
+ case 'm': // 1 string to match.
+ return Intrinsic::ppc_altivec_vrfim; // "__builtin_altivec_vrfim"
+ case 'n': // 1 string to match.
+ return Intrinsic::ppc_altivec_vrfin; // "__builtin_altivec_vrfin"
+ case 'p': // 1 string to match.
+ return Intrinsic::ppc_altivec_vrfip; // "__builtin_altivec_vrfip"
+ case 'z': // 1 string to match.
+ return Intrinsic::ppc_altivec_vrfiz; // "__builtin_altivec_vrfiz"
+ }
+ break;
+ }
+ break;
+ case 's': // 3 strings to match.
+ if (memcmp(BuiltinName.data()+20, "ra", 2))
+ break;
+ switch (BuiltinName[22]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::ppc_altivec_vsrab; // "__builtin_altivec_vsrab"
+ case 'h': // 1 string to match.
+ return Intrinsic::ppc_altivec_vsrah; // "__builtin_altivec_vsrah"
+ case 'w': // 1 string to match.
+ return Intrinsic::ppc_altivec_vsraw; // "__builtin_altivec_vsraw"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 24: // 26 strings to match.
+ if (memcmp(BuiltinName.data()+0, "__builtin_altivec_", 18))
+ break;
+ switch (BuiltinName[18]) {
+ default: break;
+ case 'd': // 2 strings to match.
+ if (BuiltinName[19] != 's')
+ break;
+ switch (BuiltinName[20]) {
+ default: break;
+ case 's': // 1 string to match.
+ if (memcmp(BuiltinName.data()+21, "all", 3))
+ break;
+ return Intrinsic::ppc_altivec_dssall; // "__builtin_altivec_dssall"
+ case 't': // 1 string to match.
+ if (memcmp(BuiltinName.data()+21, "stt", 3))
+ break;
+ return Intrinsic::ppc_altivec_dststt; // "__builtin_altivec_dststt"
+ }
+ break;
+ case 'm': // 2 strings to match.
+ switch (BuiltinName[19]) {
+ default: break;
+ case 'f': // 1 string to match.
+ if (memcmp(BuiltinName.data()+20, "vscr", 4))
+ break;
+ return Intrinsic::ppc_altivec_mfvscr; // "__builtin_altivec_mfvscr"
+ case 't': // 1 string to match.
+ if (memcmp(BuiltinName.data()+20, "vscr", 4))
+ break;
+ return Intrinsic::ppc_altivec_mtvscr; // "__builtin_altivec_mtvscr"
+ }
+ break;
+ case 'v': // 22 strings to match.
+ switch (BuiltinName[19]) {
+ default: break;
+ case 'a': // 6 strings to match.
+ if (memcmp(BuiltinName.data()+20, "vg", 2))
+ break;
+ switch (BuiltinName[22]) {
+ default: break;
+ case 's': // 3 strings to match.
+ switch (BuiltinName[23]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::ppc_altivec_vavgsb; // "__builtin_altivec_vavgsb"
+ case 'h': // 1 string to match.
+ return Intrinsic::ppc_altivec_vavgsh; // "__builtin_altivec_vavgsh"
+ case 'w': // 1 string to match.
+ return Intrinsic::ppc_altivec_vavgsw; // "__builtin_altivec_vavgsw"
+ }
+ break;
+ case 'u': // 3 strings to match.
+ switch (BuiltinName[23]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::ppc_altivec_vavgub; // "__builtin_altivec_vavgub"
+ case 'h': // 1 string to match.
+ return Intrinsic::ppc_altivec_vavguh; // "__builtin_altivec_vavguh"
+ case 'w': // 1 string to match.
+ return Intrinsic::ppc_altivec_vavguw; // "__builtin_altivec_vavguw"
+ }
+ break;
+ }
+ break;
+ case 'c': // 2 strings to match.
+ if (BuiltinName[20] != 't')
+ break;
+ switch (BuiltinName[21]) {
+ default: break;
+ case 's': // 1 string to match.
+ if (memcmp(BuiltinName.data()+22, "xs", 2))
+ break;
+ return Intrinsic::ppc_altivec_vctsxs; // "__builtin_altivec_vctsxs"
+ case 'u': // 1 string to match.
+ if (memcmp(BuiltinName.data()+22, "xs", 2))
+ break;
+ return Intrinsic::ppc_altivec_vctuxs; // "__builtin_altivec_vctuxs"
+ }
+ break;
+ case 'm': // 14 strings to match.
+ switch (BuiltinName[20]) {
+ default: break;
+ case 'a': // 7 strings to match.
+ if (BuiltinName[21] != 'x')
+ break;
+ switch (BuiltinName[22]) {
+ default: break;
+ case 'f': // 1 string to match.
+ if (BuiltinName[23] != 'p')
+ break;
+ return Intrinsic::ppc_altivec_vmaxfp; // "__builtin_altivec_vmaxfp"
+ case 's': // 3 strings to match.
+ switch (BuiltinName[23]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::ppc_altivec_vmaxsb; // "__builtin_altivec_vmaxsb"
+ case 'h': // 1 string to match.
+ return Intrinsic::ppc_altivec_vmaxsh; // "__builtin_altivec_vmaxsh"
+ case 'w': // 1 string to match.
+ return Intrinsic::ppc_altivec_vmaxsw; // "__builtin_altivec_vmaxsw"
+ }
+ break;
+ case 'u': // 3 strings to match.
+ switch (BuiltinName[23]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::ppc_altivec_vmaxub; // "__builtin_altivec_vmaxub"
+ case 'h': // 1 string to match.
+ return Intrinsic::ppc_altivec_vmaxuh; // "__builtin_altivec_vmaxuh"
+ case 'w': // 1 string to match.
+ return Intrinsic::ppc_altivec_vmaxuw; // "__builtin_altivec_vmaxuw"
+ }
+ break;
+ }
+ break;
+ case 'i': // 7 strings to match.
+ if (BuiltinName[21] != 'n')
+ break;
+ switch (BuiltinName[22]) {
+ default: break;
+ case 'f': // 1 string to match.
+ if (BuiltinName[23] != 'p')
+ break;
+ return Intrinsic::ppc_altivec_vminfp; // "__builtin_altivec_vminfp"
+ case 's': // 3 strings to match.
+ switch (BuiltinName[23]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::ppc_altivec_vminsb; // "__builtin_altivec_vminsb"
+ case 'h': // 1 string to match.
+ return Intrinsic::ppc_altivec_vminsh; // "__builtin_altivec_vminsh"
+ case 'w': // 1 string to match.
+ return Intrinsic::ppc_altivec_vminsw; // "__builtin_altivec_vminsw"
+ }
+ break;
+ case 'u': // 3 strings to match.
+ switch (BuiltinName[23]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::ppc_altivec_vminub; // "__builtin_altivec_vminub"
+ case 'h': // 1 string to match.
+ return Intrinsic::ppc_altivec_vminuh; // "__builtin_altivec_vminuh"
+ case 'w': // 1 string to match.
+ return Intrinsic::ppc_altivec_vminuw; // "__builtin_altivec_vminuw"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 25: // 38 strings to match.
+ if (memcmp(BuiltinName.data()+0, "__builtin_altivec_v", 19))
+ break;
+ switch (BuiltinName[19]) {
+ default: break;
+ case 'a': // 7 strings to match.
+ if (memcmp(BuiltinName.data()+20, "dd", 2))
+ break;
+ switch (BuiltinName[22]) {
+ default: break;
+ case 'c': // 1 string to match.
+ if (memcmp(BuiltinName.data()+23, "uw", 2))
+ break;
+ return Intrinsic::ppc_altivec_vaddcuw; // "__builtin_altivec_vaddcuw"
+ case 's': // 3 strings to match.
+ switch (BuiltinName[23]) {
+ default: break;
+ case 'b': // 1 string to match.
+ if (BuiltinName[24] != 's')
+ break;
+ return Intrinsic::ppc_altivec_vaddsbs; // "__builtin_altivec_vaddsbs"
+ case 'h': // 1 string to match.
+ if (BuiltinName[24] != 's')
+ break;
+ return Intrinsic::ppc_altivec_vaddshs; // "__builtin_altivec_vaddshs"
+ case 'w': // 1 string to match.
+ if (BuiltinName[24] != 's')
+ break;
+ return Intrinsic::ppc_altivec_vaddsws; // "__builtin_altivec_vaddsws"
+ }
+ break;
+ case 'u': // 3 strings to match.
+ switch (BuiltinName[23]) {
+ default: break;
+ case 'b': // 1 string to match.
+ if (BuiltinName[24] != 's')
+ break;
+ return Intrinsic::ppc_altivec_vaddubs; // "__builtin_altivec_vaddubs"
+ case 'h': // 1 string to match.
+ if (BuiltinName[24] != 's')
+ break;
+ return Intrinsic::ppc_altivec_vadduhs; // "__builtin_altivec_vadduhs"
+ case 'w': // 1 string to match.
+ if (BuiltinName[24] != 's')
+ break;
+ return Intrinsic::ppc_altivec_vadduws; // "__builtin_altivec_vadduws"
+ }
+ break;
+ }
+ break;
+ case 'c': // 1 string to match.
+ if (memcmp(BuiltinName.data()+20, "mpbfp", 5))
+ break;
+ return Intrinsic::ppc_altivec_vcmpbfp; // "__builtin_altivec_vcmpbfp"
+ case 'l': // 1 string to match.
+ if (memcmp(BuiltinName.data()+20, "ogefp", 5))
+ break;
+ return Intrinsic::ppc_altivec_vlogefp; // "__builtin_altivec_vlogefp"
+ case 'm': // 9 strings to match.
+ switch (BuiltinName[20]) {
+ default: break;
+ case 'a': // 1 string to match.
+ if (memcmp(BuiltinName.data()+21, "ddfp", 4))
+ break;
+ return Intrinsic::ppc_altivec_vmaddfp; // "__builtin_altivec_vmaddfp"
+ case 'u': // 8 strings to match.
+ if (BuiltinName[21] != 'l')
+ break;
+ switch (BuiltinName[22]) {
+ default: break;
+ case 'e': // 4 strings to match.
+ switch (BuiltinName[23]) {
+ default: break;
+ case 's': // 2 strings to match.
+ switch (BuiltinName[24]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::ppc_altivec_vmulesb; // "__builtin_altivec_vmulesb"
+ case 'h': // 1 string to match.
+ return Intrinsic::ppc_altivec_vmulesh; // "__builtin_altivec_vmulesh"
+ }
+ break;
+ case 'u': // 2 strings to match.
+ switch (BuiltinName[24]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::ppc_altivec_vmuleub; // "__builtin_altivec_vmuleub"
+ case 'h': // 1 string to match.
+ return Intrinsic::ppc_altivec_vmuleuh; // "__builtin_altivec_vmuleuh"
+ }
+ break;
+ }
+ break;
+ case 'o': // 4 strings to match.
+ switch (BuiltinName[23]) {
+ default: break;
+ case 's': // 2 strings to match.
+ switch (BuiltinName[24]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::ppc_altivec_vmulosb; // "__builtin_altivec_vmulosb"
+ case 'h': // 1 string to match.
+ return Intrinsic::ppc_altivec_vmulosh; // "__builtin_altivec_vmulosh"
+ }
+ break;
+ case 'u': // 2 strings to match.
+ switch (BuiltinName[24]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::ppc_altivec_vmuloub; // "__builtin_altivec_vmuloub"
+ case 'h': // 1 string to match.
+ return Intrinsic::ppc_altivec_vmulouh; // "__builtin_altivec_vmulouh"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 'p': // 6 strings to match.
+ if (BuiltinName[20] != 'k')
+ break;
+ switch (BuiltinName[21]) {
+ default: break;
+ case 's': // 4 strings to match.
+ switch (BuiltinName[22]) {
+ default: break;
+ case 'h': // 2 strings to match.
+ switch (BuiltinName[23]) {
+ default: break;
+ case 's': // 1 string to match.
+ if (BuiltinName[24] != 's')
+ break;
+ return Intrinsic::ppc_altivec_vpkshss; // "__builtin_altivec_vpkshss"
+ case 'u': // 1 string to match.
+ if (BuiltinName[24] != 's')
+ break;
+ return Intrinsic::ppc_altivec_vpkshus; // "__builtin_altivec_vpkshus"
+ }
+ break;
+ case 'w': // 2 strings to match.
+ switch (BuiltinName[23]) {
+ default: break;
+ case 's': // 1 string to match.
+ if (BuiltinName[24] != 's')
+ break;
+ return Intrinsic::ppc_altivec_vpkswss; // "__builtin_altivec_vpkswss"
+ case 'u': // 1 string to match.
+ if (BuiltinName[24] != 's')
+ break;
+ return Intrinsic::ppc_altivec_vpkswus; // "__builtin_altivec_vpkswus"
+ }
+ break;
+ }
+ break;
+ case 'u': // 2 strings to match.
+ switch (BuiltinName[22]) {
+ default: break;
+ case 'h': // 1 string to match.
+ if (memcmp(BuiltinName.data()+23, "us", 2))
+ break;
+ return Intrinsic::ppc_altivec_vpkuhus; // "__builtin_altivec_vpkuhus"
+ case 'w': // 1 string to match.
+ if (memcmp(BuiltinName.data()+23, "us", 2))
+ break;
+ return Intrinsic::ppc_altivec_vpkuwus; // "__builtin_altivec_vpkuwus"
+ }
+ break;
+ }
+ break;
+ case 's': // 8 strings to match.
+ if (BuiltinName[20] != 'u')
+ break;
+ switch (BuiltinName[21]) {
+ default: break;
+ case 'b': // 7 strings to match.
+ switch (BuiltinName[22]) {
+ default: break;
+ case 'c': // 1 string to match.
+ if (memcmp(BuiltinName.data()+23, "uw", 2))
+ break;
+ return Intrinsic::ppc_altivec_vsubcuw; // "__builtin_altivec_vsubcuw"
+ case 's': // 3 strings to match.
+ switch (BuiltinName[23]) {
+ default: break;
+ case 'b': // 1 string to match.
+ if (BuiltinName[24] != 's')
+ break;
+ return Intrinsic::ppc_altivec_vsubsbs; // "__builtin_altivec_vsubsbs"
+ case 'h': // 1 string to match.
+ if (BuiltinName[24] != 's')
+ break;
+ return Intrinsic::ppc_altivec_vsubshs; // "__builtin_altivec_vsubshs"
+ case 'w': // 1 string to match.
+ if (BuiltinName[24] != 's')
+ break;
+ return Intrinsic::ppc_altivec_vsubsws; // "__builtin_altivec_vsubsws"
+ }
+ break;
+ case 'u': // 3 strings to match.
+ switch (BuiltinName[23]) {
+ default: break;
+ case 'b': // 1 string to match.
+ if (BuiltinName[24] != 's')
+ break;
+ return Intrinsic::ppc_altivec_vsububs; // "__builtin_altivec_vsububs"
+ case 'h': // 1 string to match.
+ if (BuiltinName[24] != 's')
+ break;
+ return Intrinsic::ppc_altivec_vsubuhs; // "__builtin_altivec_vsubuhs"
+ case 'w': // 1 string to match.
+ if (BuiltinName[24] != 's')
+ break;
+ return Intrinsic::ppc_altivec_vsubuws; // "__builtin_altivec_vsubuws"
+ }
+ break;
+ }
+ break;
+ case 'm': // 1 string to match.
+ if (memcmp(BuiltinName.data()+22, "sws", 3))
+ break;
+ return Intrinsic::ppc_altivec_vsumsws; // "__builtin_altivec_vsumsws"
+ }
+ break;
+ case 'u': // 6 strings to match.
+ if (memcmp(BuiltinName.data()+20, "pk", 2))
+ break;
+ switch (BuiltinName[22]) {
+ default: break;
+ case 'h': // 3 strings to match.
+ switch (BuiltinName[23]) {
+ default: break;
+ case 'p': // 1 string to match.
+ if (BuiltinName[24] != 'x')
+ break;
+ return Intrinsic::ppc_altivec_vupkhpx; // "__builtin_altivec_vupkhpx"
+ case 's': // 2 strings to match.
+ switch (BuiltinName[24]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::ppc_altivec_vupkhsb; // "__builtin_altivec_vupkhsb"
+ case 'h': // 1 string to match.
+ return Intrinsic::ppc_altivec_vupkhsh; // "__builtin_altivec_vupkhsh"
+ }
+ break;
+ }
+ break;
+ case 'l': // 3 strings to match.
+ switch (BuiltinName[23]) {
+ default: break;
+ case 'p': // 1 string to match.
+ if (BuiltinName[24] != 'x')
+ break;
+ return Intrinsic::ppc_altivec_vupklpx; // "__builtin_altivec_vupklpx"
+ case 's': // 2 strings to match.
+ switch (BuiltinName[24]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::ppc_altivec_vupklsb; // "__builtin_altivec_vupklsb"
+ case 'h': // 1 string to match.
+ return Intrinsic::ppc_altivec_vupklsh; // "__builtin_altivec_vupklsh"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 26: // 25 strings to match.
+ if (memcmp(BuiltinName.data()+0, "__builtin_altivec_v", 19))
+ break;
+ switch (BuiltinName[19]) {
+ default: break;
+ case 'c': // 12 strings to match.
+ if (memcmp(BuiltinName.data()+20, "mp", 2))
+ break;
+ switch (BuiltinName[22]) {
+ default: break;
+ case 'e': // 4 strings to match.
+ if (BuiltinName[23] != 'q')
+ break;
+ switch (BuiltinName[24]) {
+ default: break;
+ case 'f': // 1 string to match.
+ if (BuiltinName[25] != 'p')
+ break;
+ return Intrinsic::ppc_altivec_vcmpeqfp; // "__builtin_altivec_vcmpeqfp"
+ case 'u': // 3 strings to match.
+ switch (BuiltinName[25]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::ppc_altivec_vcmpequb; // "__builtin_altivec_vcmpequb"
+ case 'h': // 1 string to match.
+ return Intrinsic::ppc_altivec_vcmpequh; // "__builtin_altivec_vcmpequh"
+ case 'w': // 1 string to match.
+ return Intrinsic::ppc_altivec_vcmpequw; // "__builtin_altivec_vcmpequw"
+ }
+ break;
+ }
+ break;
+ case 'g': // 8 strings to match.
+ switch (BuiltinName[23]) {
+ default: break;
+ case 'e': // 1 string to match.
+ if (memcmp(BuiltinName.data()+24, "fp", 2))
+ break;
+ return Intrinsic::ppc_altivec_vcmpgefp; // "__builtin_altivec_vcmpgefp"
+ case 't': // 7 strings to match.
+ switch (BuiltinName[24]) {
+ default: break;
+ case 'f': // 1 string to match.
+ if (BuiltinName[25] != 'p')
+ break;
+ return Intrinsic::ppc_altivec_vcmpgtfp; // "__builtin_altivec_vcmpgtfp"
+ case 's': // 3 strings to match.
+ switch (BuiltinName[25]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::ppc_altivec_vcmpgtsb; // "__builtin_altivec_vcmpgtsb"
+ case 'h': // 1 string to match.
+ return Intrinsic::ppc_altivec_vcmpgtsh; // "__builtin_altivec_vcmpgtsh"
+ case 'w': // 1 string to match.
+ return Intrinsic::ppc_altivec_vcmpgtsw; // "__builtin_altivec_vcmpgtsw"
+ }
+ break;
+ case 'u': // 3 strings to match.
+ switch (BuiltinName[25]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::ppc_altivec_vcmpgtub; // "__builtin_altivec_vcmpgtub"
+ case 'h': // 1 string to match.
+ return Intrinsic::ppc_altivec_vcmpgtuh; // "__builtin_altivec_vcmpgtuh"
+ case 'w': // 1 string to match.
+ return Intrinsic::ppc_altivec_vcmpgtuw; // "__builtin_altivec_vcmpgtuw"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 'e': // 1 string to match.
+ if (memcmp(BuiltinName.data()+20, "xptefp", 6))
+ break;
+ return Intrinsic::ppc_altivec_vexptefp; // "__builtin_altivec_vexptefp"
+ case 'm': // 6 strings to match.
+ if (memcmp(BuiltinName.data()+20, "sum", 3))
+ break;
+ switch (BuiltinName[23]) {
+ default: break;
+ case 'm': // 1 string to match.
+ if (memcmp(BuiltinName.data()+24, "bm", 2))
+ break;
+ return Intrinsic::ppc_altivec_vmsummbm; // "__builtin_altivec_vmsummbm"
+ case 's': // 2 strings to match.
+ if (BuiltinName[24] != 'h')
+ break;
+ switch (BuiltinName[25]) {
+ default: break;
+ case 'm': // 1 string to match.
+ return Intrinsic::ppc_altivec_vmsumshm; // "__builtin_altivec_vmsumshm"
+ case 's': // 1 string to match.
+ return Intrinsic::ppc_altivec_vmsumshs; // "__builtin_altivec_vmsumshs"
+ }
+ break;
+ case 'u': // 3 strings to match.
+ switch (BuiltinName[24]) {
+ default: break;
+ case 'b': // 1 string to match.
+ if (BuiltinName[25] != 'm')
+ break;
+ return Intrinsic::ppc_altivec_vmsumubm; // "__builtin_altivec_vmsumubm"
+ case 'h': // 2 strings to match.
+ switch (BuiltinName[25]) {
+ default: break;
+ case 'm': // 1 string to match.
+ return Intrinsic::ppc_altivec_vmsumuhm; // "__builtin_altivec_vmsumuhm"
+ case 's': // 1 string to match.
+ return Intrinsic::ppc_altivec_vmsumuhs; // "__builtin_altivec_vmsumuhs"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 'n': // 1 string to match.
+ if (memcmp(BuiltinName.data()+20, "msubfp", 6))
+ break;
+ return Intrinsic::ppc_altivec_vnmsubfp; // "__builtin_altivec_vnmsubfp"
+ case 's': // 5 strings to match.
+ switch (BuiltinName[20]) {
+ default: break;
+ case 'e': // 1 string to match.
+ if (memcmp(BuiltinName.data()+21, "l_4si", 5))
+ break;
+ return Intrinsic::ppc_altivec_vsel; // "__builtin_altivec_vsel_4si"
+ case 'u': // 4 strings to match.
+ if (BuiltinName[21] != 'm')
+ break;
+ switch (BuiltinName[22]) {
+ default: break;
+ case '2': // 1 string to match.
+ if (memcmp(BuiltinName.data()+23, "sws", 3))
+ break;
+ return Intrinsic::ppc_altivec_vsum2sws; // "__builtin_altivec_vsum2sws"
+ case '4': // 3 strings to match.
+ switch (BuiltinName[23]) {
+ default: break;
+ case 's': // 2 strings to match.
+ switch (BuiltinName[24]) {
+ default: break;
+ case 'b': // 1 string to match.
+ if (BuiltinName[25] != 's')
+ break;
+ return Intrinsic::ppc_altivec_vsum4sbs; // "__builtin_altivec_vsum4sbs"
+ case 'h': // 1 string to match.
+ if (BuiltinName[25] != 's')
+ break;
+ return Intrinsic::ppc_altivec_vsum4shs; // "__builtin_altivec_vsum4shs"
+ }
+ break;
+ case 'u': // 1 string to match.
+ if (memcmp(BuiltinName.data()+24, "bs", 2))
+ break;
+ return Intrinsic::ppc_altivec_vsum4ubs; // "__builtin_altivec_vsum4ubs"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 27: // 5 strings to match.
+ if (memcmp(BuiltinName.data()+0, "__builtin_altivec_v", 19))
+ break;
+ switch (BuiltinName[19]) {
+ default: break;
+ case 'c': // 1 string to match.
+ if (memcmp(BuiltinName.data()+20, "mpbfp_p", 7))
+ break;
+ return Intrinsic::ppc_altivec_vcmpbfp_p; // "__builtin_altivec_vcmpbfp_p"
+ case 'm': // 2 strings to match.
+ switch (BuiltinName[20]) {
+ default: break;
+ case 'h': // 1 string to match.
+ if (memcmp(BuiltinName.data()+21, "addshs", 6))
+ break;
+ return Intrinsic::ppc_altivec_vmhaddshs; // "__builtin_altivec_vmhaddshs"
+ case 'l': // 1 string to match.
+ if (memcmp(BuiltinName.data()+21, "adduhm", 6))
+ break;
+ return Intrinsic::ppc_altivec_vmladduhm; // "__builtin_altivec_vmladduhm"
+ }
+ break;
+ case 'p': // 1 string to match.
+ if (memcmp(BuiltinName.data()+20, "erm_4si", 7))
+ break;
+ return Intrinsic::ppc_altivec_vperm; // "__builtin_altivec_vperm_4si"
+ case 'r': // 1 string to match.
+ if (memcmp(BuiltinName.data()+20, "sqrtefp", 7))
+ break;
+ return Intrinsic::ppc_altivec_vrsqrtefp; // "__builtin_altivec_vrsqrtefp"
+ }
+ break;
+ case 28: // 13 strings to match.
+ if (memcmp(BuiltinName.data()+0, "__builtin_altivec_v", 19))
+ break;
+ switch (BuiltinName[19]) {
+ default: break;
+ case 'c': // 12 strings to match.
+ if (memcmp(BuiltinName.data()+20, "mp", 2))
+ break;
+ switch (BuiltinName[22]) {
+ default: break;
+ case 'e': // 4 strings to match.
+ if (BuiltinName[23] != 'q')
+ break;
+ switch (BuiltinName[24]) {
+ default: break;
+ case 'f': // 1 string to match.
+ if (memcmp(BuiltinName.data()+25, "p_p", 3))
+ break;
+ return Intrinsic::ppc_altivec_vcmpeqfp_p; // "__builtin_altivec_vcmpeqfp_p"
+ case 'u': // 3 strings to match.
+ switch (BuiltinName[25]) {
+ default: break;
+ case 'b': // 1 string to match.
+ if (memcmp(BuiltinName.data()+26, "_p", 2))
+ break;
+ return Intrinsic::ppc_altivec_vcmpequb_p; // "__builtin_altivec_vcmpequb_p"
+ case 'h': // 1 string to match.
+ if (memcmp(BuiltinName.data()+26, "_p", 2))
+ break;
+ return Intrinsic::ppc_altivec_vcmpequh_p; // "__builtin_altivec_vcmpequh_p"
+ case 'w': // 1 string to match.
+ if (memcmp(BuiltinName.data()+26, "_p", 2))
+ break;
+ return Intrinsic::ppc_altivec_vcmpequw_p; // "__builtin_altivec_vcmpequw_p"
+ }
+ break;
+ }
+ break;
+ case 'g': // 8 strings to match.
+ switch (BuiltinName[23]) {
+ default: break;
+ case 'e': // 1 string to match.
+ if (memcmp(BuiltinName.data()+24, "fp_p", 4))
+ break;
+ return Intrinsic::ppc_altivec_vcmpgefp_p; // "__builtin_altivec_vcmpgefp_p"
+ case 't': // 7 strings to match.
+ switch (BuiltinName[24]) {
+ default: break;
+ case 'f': // 1 string to match.
+ if (memcmp(BuiltinName.data()+25, "p_p", 3))
+ break;
+ return Intrinsic::ppc_altivec_vcmpgtfp_p; // "__builtin_altivec_vcmpgtfp_p"
+ case 's': // 3 strings to match.
+ switch (BuiltinName[25]) {
+ default: break;
+ case 'b': // 1 string to match.
+ if (memcmp(BuiltinName.data()+26, "_p", 2))
+ break;
+ return Intrinsic::ppc_altivec_vcmpgtsb_p; // "__builtin_altivec_vcmpgtsb_p"
+ case 'h': // 1 string to match.
+ if (memcmp(BuiltinName.data()+26, "_p", 2))
+ break;
+ return Intrinsic::ppc_altivec_vcmpgtsh_p; // "__builtin_altivec_vcmpgtsh_p"
+ case 'w': // 1 string to match.
+ if (memcmp(BuiltinName.data()+26, "_p", 2))
+ break;
+ return Intrinsic::ppc_altivec_vcmpgtsw_p; // "__builtin_altivec_vcmpgtsw_p"
+ }
+ break;
+ case 'u': // 3 strings to match.
+ switch (BuiltinName[25]) {
+ default: break;
+ case 'b': // 1 string to match.
+ if (memcmp(BuiltinName.data()+26, "_p", 2))
+ break;
+ return Intrinsic::ppc_altivec_vcmpgtub_p; // "__builtin_altivec_vcmpgtub_p"
+ case 'h': // 1 string to match.
+ if (memcmp(BuiltinName.data()+26, "_p", 2))
+ break;
+ return Intrinsic::ppc_altivec_vcmpgtuh_p; // "__builtin_altivec_vcmpgtuh_p"
+ case 'w': // 1 string to match.
+ if (memcmp(BuiltinName.data()+26, "_p", 2))
+ break;
+ return Intrinsic::ppc_altivec_vcmpgtuw_p; // "__builtin_altivec_vcmpgtuw_p"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 'm': // 1 string to match.
+ if (memcmp(BuiltinName.data()+20, "hraddshs", 8))
+ break;
+ return Intrinsic::ppc_altivec_vmhraddshs; // "__builtin_altivec_vmhraddshs"
+ }
+ break;
+ }
+ }
+ if (TargetPrefix == "r600") {
+ switch (BuiltinName.size()) {
+ default: break;
+ case 26: // 3 strings to match.
+ if (memcmp(BuiltinName.data()+0, "__builtin_r600_read_tgid_", 25))
+ break;
+ switch (BuiltinName[25]) {
+ default: break;
+ case 'x': // 1 string to match.
+ return Intrinsic::r600_read_tgid_x; // "__builtin_r600_read_tgid_x"
+ case 'y': // 1 string to match.
+ return Intrinsic::r600_read_tgid_y; // "__builtin_r600_read_tgid_y"
+ case 'z': // 1 string to match.
+ return Intrinsic::r600_read_tgid_z; // "__builtin_r600_read_tgid_z"
+ }
+ break;
+ case 27: // 3 strings to match.
+ if (memcmp(BuiltinName.data()+0, "__builtin_r600_read_tidig_", 26))
+ break;
+ switch (BuiltinName[26]) {
+ default: break;
+ case 'x': // 1 string to match.
+ return Intrinsic::r600_read_tidig_x; // "__builtin_r600_read_tidig_x"
+ case 'y': // 1 string to match.
+ return Intrinsic::r600_read_tidig_y; // "__builtin_r600_read_tidig_y"
+ case 'z': // 1 string to match.
+ return Intrinsic::r600_read_tidig_z; // "__builtin_r600_read_tidig_z"
+ }
+ break;
+ case 29: // 3 strings to match.
+ if (memcmp(BuiltinName.data()+0, "__builtin_r600_read_ngroups_", 28))
+ break;
+ switch (BuiltinName[28]) {
+ default: break;
+ case 'x': // 1 string to match.
+ return Intrinsic::r600_read_ngroups_x; // "__builtin_r600_read_ngroups_x"
+ case 'y': // 1 string to match.
+ return Intrinsic::r600_read_ngroups_y; // "__builtin_r600_read_ngroups_y"
+ case 'z': // 1 string to match.
+ return Intrinsic::r600_read_ngroups_z; // "__builtin_r600_read_ngroups_z"
+ }
+ break;
+ case 32: // 3 strings to match.
+ if (memcmp(BuiltinName.data()+0, "__builtin_r600_read_local_size_", 31))
+ break;
+ switch (BuiltinName[31]) {
+ default: break;
+ case 'x': // 1 string to match.
+ return Intrinsic::r600_read_local_size_x; // "__builtin_r600_read_local_size_x"
+ case 'y': // 1 string to match.
+ return Intrinsic::r600_read_local_size_y; // "__builtin_r600_read_local_size_y"
+ case 'z': // 1 string to match.
+ return Intrinsic::r600_read_local_size_z; // "__builtin_r600_read_local_size_z"
+ }
+ break;
+ case 33: // 3 strings to match.
+ if (memcmp(BuiltinName.data()+0, "__builtin_r600_read_global_size_", 32))
+ break;
+ switch (BuiltinName[32]) {
+ default: break;
+ case 'x': // 1 string to match.
+ return Intrinsic::r600_read_global_size_x; // "__builtin_r600_read_global_size_x"
+ case 'y': // 1 string to match.
+ return Intrinsic::r600_read_global_size_y; // "__builtin_r600_read_global_size_y"
+ case 'z': // 1 string to match.
+ return Intrinsic::r600_read_global_size_z; // "__builtin_r600_read_global_size_z"
+ }
+ break;
+ }
+ }
+ if (TargetPrefix == "x86") {
+ switch (BuiltinName.size()) {
+ default: break;
+ case 18: // 1 string to match.
+ if (memcmp(BuiltinName.data()+0, "__builtin_ia32_por", 18))
+ break;
+ return Intrinsic::x86_mmx_por; // "__builtin_ia32_por"
+ case 19: // 6 strings to match.
+ if (memcmp(BuiltinName.data()+0, "__builtin_ia32_", 15))
+ break;
+ switch (BuiltinName[15]) {
+ default: break;
+ case 'd': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+16, "pp", 2))
+ break;
+ switch (BuiltinName[18]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::x86_sse41_dppd; // "__builtin_ia32_dppd"
+ case 's': // 1 string to match.
+ return Intrinsic::x86_sse41_dpps; // "__builtin_ia32_dpps"
+ }
+ break;
+ case 'e': // 1 string to match.
+ if (memcmp(BuiltinName.data()+16, "mms", 3))
+ break;
+ return Intrinsic::x86_mmx_emms; // "__builtin_ia32_emms"
+ case 'p': // 2 strings to match.
+ switch (BuiltinName[16]) {
+ default: break;
+ case 'a': // 1 string to match.
+ if (memcmp(BuiltinName.data()+17, "nd", 2))
+ break;
+ return Intrinsic::x86_mmx_pand; // "__builtin_ia32_pand"
+ case 'x': // 1 string to match.
+ if (memcmp(BuiltinName.data()+17, "or", 2))
+ break;
+ return Intrinsic::x86_mmx_pxor; // "__builtin_ia32_pxor"
+ }
+ break;
+ case 'x': // 1 string to match.
+ if (memcmp(BuiltinName.data()+16, "end", 3))
+ break;
+ return Intrinsic::x86_xend; // "__builtin_ia32_xend"
+ }
+ break;
+ case 20: // 64 strings to match.
+ if (memcmp(BuiltinName.data()+0, "__builtin_ia32_", 15))
+ break;
+ switch (BuiltinName[15]) {
+ default: break;
+ case 'a': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+16, "dds", 3))
+ break;
+ switch (BuiltinName[19]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::x86_sse2_add_sd; // "__builtin_ia32_addsd"
+ case 's': // 1 string to match.
+ return Intrinsic::x86_sse_add_ss; // "__builtin_ia32_addss"
+ }
+ break;
+ case 'c': // 4 strings to match.
+ if (memcmp(BuiltinName.data()+16, "mp", 2))
+ break;
+ switch (BuiltinName[18]) {
+ default: break;
+ case 'p': // 2 strings to match.
+ switch (BuiltinName[19]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::x86_sse2_cmp_pd; // "__builtin_ia32_cmppd"
+ case 's': // 1 string to match.
+ return Intrinsic::x86_sse_cmp_ps; // "__builtin_ia32_cmpps"
+ }
+ break;
+ case 's': // 2 strings to match.
+ switch (BuiltinName[19]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::x86_sse2_cmp_sd; // "__builtin_ia32_cmpsd"
+ case 's': // 1 string to match.
+ return Intrinsic::x86_sse_cmp_ss; // "__builtin_ia32_cmpss"
+ }
+ break;
+ }
+ break;
+ case 'd': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+16, "ivs", 3))
+ break;
+ switch (BuiltinName[19]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::x86_sse2_div_sd; // "__builtin_ia32_divsd"
+ case 's': // 1 string to match.
+ return Intrinsic::x86_sse_div_ss; // "__builtin_ia32_divss"
+ }
+ break;
+ case 'e': // 1 string to match.
+ if (memcmp(BuiltinName.data()+16, "xtrq", 4))
+ break;
+ return Intrinsic::x86_sse4a_extrq; // "__builtin_ia32_extrq"
+ case 'f': // 1 string to match.
+ if (memcmp(BuiltinName.data()+16, "emms", 4))
+ break;
+ return Intrinsic::x86_mmx_femms; // "__builtin_ia32_femms"
+ case 'k': // 1 string to match.
+ if (memcmp(BuiltinName.data()+16, "orhi", 4))
+ break;
+ return Intrinsic::x86_avx512_kor_w; // "__builtin_ia32_korhi"
+ case 'l': // 1 string to match.
+ if (memcmp(BuiltinName.data()+16, "ddqu", 4))
+ break;
+ return Intrinsic::x86_sse3_ldu_dq; // "__builtin_ia32_lddqu"
+ case 'm': // 11 strings to match.
+ switch (BuiltinName[16]) {
+ default: break;
+ case 'a': // 4 strings to match.
+ if (BuiltinName[17] != 'x')
+ break;
+ switch (BuiltinName[18]) {
+ default: break;
+ case 'p': // 2 strings to match.
+ switch (BuiltinName[19]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::x86_sse2_max_pd; // "__builtin_ia32_maxpd"
+ case 's': // 1 string to match.
+ return Intrinsic::x86_sse_max_ps; // "__builtin_ia32_maxps"
+ }
+ break;
+ case 's': // 2 strings to match.
+ switch (BuiltinName[19]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::x86_sse2_max_sd; // "__builtin_ia32_maxsd"
+ case 's': // 1 string to match.
+ return Intrinsic::x86_sse_max_ss; // "__builtin_ia32_maxss"
+ }
+ break;
+ }
+ break;
+ case 'i': // 4 strings to match.
+ if (BuiltinName[17] != 'n')
+ break;
+ switch (BuiltinName[18]) {
+ default: break;
+ case 'p': // 2 strings to match.
+ switch (BuiltinName[19]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::x86_sse2_min_pd; // "__builtin_ia32_minpd"
+ case 's': // 1 string to match.
+ return Intrinsic::x86_sse_min_ps; // "__builtin_ia32_minps"
+ }
+ break;
+ case 's': // 2 strings to match.
+ switch (BuiltinName[19]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::x86_sse2_min_sd; // "__builtin_ia32_minsd"
+ case 's': // 1 string to match.
+ return Intrinsic::x86_sse_min_ss; // "__builtin_ia32_minss"
+ }
+ break;
+ }
+ break;
+ case 'u': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+17, "ls", 2))
+ break;
+ switch (BuiltinName[19]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::x86_sse2_mul_sd; // "__builtin_ia32_mulsd"
+ case 's': // 1 string to match.
+ return Intrinsic::x86_sse_mul_ss; // "__builtin_ia32_mulss"
+ }
+ break;
+ case 'w': // 1 string to match.
+ if (memcmp(BuiltinName.data()+17, "ait", 3))
+ break;
+ return Intrinsic::x86_sse3_mwait; // "__builtin_ia32_mwait"
+ }
+ break;
+ case 'p': // 34 strings to match.
+ switch (BuiltinName[16]) {
+ default: break;
+ case 'a': // 11 strings to match.
+ switch (BuiltinName[17]) {
+ default: break;
+ case 'b': // 3 strings to match.
+ if (BuiltinName[18] != 's')
+ break;
+ switch (BuiltinName[19]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::x86_ssse3_pabs_b; // "__builtin_ia32_pabsb"
+ case 'd': // 1 string to match.
+ return Intrinsic::x86_ssse3_pabs_d; // "__builtin_ia32_pabsd"
+ case 'w': // 1 string to match.
+ return Intrinsic::x86_ssse3_pabs_w; // "__builtin_ia32_pabsw"
+ }
+ break;
+ case 'd': // 4 strings to match.
+ if (BuiltinName[18] != 'd')
+ break;
+ switch (BuiltinName[19]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::x86_mmx_padd_b; // "__builtin_ia32_paddb"
+ case 'd': // 1 string to match.
+ return Intrinsic::x86_mmx_padd_d; // "__builtin_ia32_paddd"
+ case 'q': // 1 string to match.
+ return Intrinsic::x86_mmx_padd_q; // "__builtin_ia32_paddq"
+ case 'w': // 1 string to match.
+ return Intrinsic::x86_mmx_padd_w; // "__builtin_ia32_paddw"
+ }
+ break;
+ case 'n': // 1 string to match.
+ if (memcmp(BuiltinName.data()+18, "dn", 2))
+ break;
+ return Intrinsic::x86_mmx_pandn; // "__builtin_ia32_pandn"
+ case 'u': // 1 string to match.
+ if (memcmp(BuiltinName.data()+18, "se", 2))
+ break;
+ return Intrinsic::x86_sse2_pause; // "__builtin_ia32_pause"
+ case 'v': // 2 strings to match.
+ if (BuiltinName[18] != 'g')
+ break;
+ switch (BuiltinName[19]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::x86_mmx_pavg_b; // "__builtin_ia32_pavgb"
+ case 'w': // 1 string to match.
+ return Intrinsic::x86_mmx_pavg_w; // "__builtin_ia32_pavgw"
+ }
+ break;
+ }
+ break;
+ case 'f': // 9 strings to match.
+ switch (BuiltinName[17]) {
+ default: break;
+ case '2': // 2 strings to match.
+ if (BuiltinName[18] != 'i')
+ break;
+ switch (BuiltinName[19]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::x86_3dnow_pf2id; // "__builtin_ia32_pf2id"
+ case 'w': // 1 string to match.
+ return Intrinsic::x86_3dnowa_pf2iw; // "__builtin_ia32_pf2iw"
+ }
+ break;
+ case 'a': // 2 strings to match.
+ switch (BuiltinName[18]) {
+ default: break;
+ case 'c': // 1 string to match.
+ if (BuiltinName[19] != 'c')
+ break;
+ return Intrinsic::x86_3dnow_pfacc; // "__builtin_ia32_pfacc"
+ case 'd': // 1 string to match.
+ if (BuiltinName[19] != 'd')
+ break;
+ return Intrinsic::x86_3dnow_pfadd; // "__builtin_ia32_pfadd"
+ }
+ break;
+ case 'm': // 3 strings to match.
+ switch (BuiltinName[18]) {
+ default: break;
+ case 'a': // 1 string to match.
+ if (BuiltinName[19] != 'x')
+ break;
+ return Intrinsic::x86_3dnow_pfmax; // "__builtin_ia32_pfmax"
+ case 'i': // 1 string to match.
+ if (BuiltinName[19] != 'n')
+ break;
+ return Intrinsic::x86_3dnow_pfmin; // "__builtin_ia32_pfmin"
+ case 'u': // 1 string to match.
+ if (BuiltinName[19] != 'l')
+ break;
+ return Intrinsic::x86_3dnow_pfmul; // "__builtin_ia32_pfmul"
+ }
+ break;
+ case 'r': // 1 string to match.
+ if (memcmp(BuiltinName.data()+18, "cp", 2))
+ break;
+ return Intrinsic::x86_3dnow_pfrcp; // "__builtin_ia32_pfrcp"
+ case 's': // 1 string to match.
+ if (memcmp(BuiltinName.data()+18, "ub", 2))
+ break;
+ return Intrinsic::x86_3dnow_pfsub; // "__builtin_ia32_pfsub"
+ }
+ break;
+ case 'i': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+17, "2f", 2))
+ break;
+ switch (BuiltinName[19]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::x86_3dnow_pi2fd; // "__builtin_ia32_pi2fd"
+ case 'w': // 1 string to match.
+ return Intrinsic::x86_3dnowa_pi2fw; // "__builtin_ia32_pi2fw"
+ }
+ break;
+ case 's': // 12 strings to match.
+ switch (BuiltinName[17]) {
+ default: break;
+ case 'l': // 3 strings to match.
+ if (BuiltinName[18] != 'l')
+ break;
+ switch (BuiltinName[19]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::x86_mmx_psll_d; // "__builtin_ia32_pslld"
+ case 'q': // 1 string to match.
+ return Intrinsic::x86_mmx_psll_q; // "__builtin_ia32_psllq"
+ case 'w': // 1 string to match.
+ return Intrinsic::x86_mmx_psll_w; // "__builtin_ia32_psllw"
+ }
+ break;
+ case 'r': // 5 strings to match.
+ switch (BuiltinName[18]) {
+ default: break;
+ case 'a': // 2 strings to match.
+ switch (BuiltinName[19]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::x86_mmx_psra_d; // "__builtin_ia32_psrad"
+ case 'w': // 1 string to match.
+ return Intrinsic::x86_mmx_psra_w; // "__builtin_ia32_psraw"
+ }
+ break;
+ case 'l': // 3 strings to match.
+ switch (BuiltinName[19]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::x86_mmx_psrl_d; // "__builtin_ia32_psrld"
+ case 'q': // 1 string to match.
+ return Intrinsic::x86_mmx_psrl_q; // "__builtin_ia32_psrlq"
+ case 'w': // 1 string to match.
+ return Intrinsic::x86_mmx_psrl_w; // "__builtin_ia32_psrlw"
+ }
+ break;
+ }
+ break;
+ case 'u': // 4 strings to match.
+ if (BuiltinName[18] != 'b')
+ break;
+ switch (BuiltinName[19]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::x86_mmx_psub_b; // "__builtin_ia32_psubb"
+ case 'd': // 1 string to match.
+ return Intrinsic::x86_mmx_psub_d; // "__builtin_ia32_psubd"
+ case 'q': // 1 string to match.
+ return Intrinsic::x86_mmx_psub_q; // "__builtin_ia32_psubq"
+ case 'w': // 1 string to match.
+ return Intrinsic::x86_mmx_psub_w; // "__builtin_ia32_psubw"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 'r': // 4 strings to match.
+ switch (BuiltinName[16]) {
+ default: break;
+ case 'c': // 2 strings to match.
+ if (BuiltinName[17] != 'p')
+ 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 'd': // 2 strings to match.
+ switch (BuiltinName[17]) {
+ default: break;
+ case 'p': // 1 string to match.
+ if (memcmp(BuiltinName.data()+18, "mc", 2))
+ break;
+ return Intrinsic::x86_rdpmc; // "__builtin_ia32_rdpmc"
+ case 't': // 1 string to match.
+ if (memcmp(BuiltinName.data()+18, "sc", 2))
+ break;
+ return Intrinsic::x86_rdtsc; // "__builtin_ia32_rdtsc"
+ }
+ break;
+ }
+ break;
+ case 's': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+16, "ubs", 3))
+ break;
+ switch (BuiltinName[19]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::x86_sse2_sub_sd; // "__builtin_ia32_subsd"
+ case 's': // 1 string to match.
+ return Intrinsic::x86_sse_sub_ss; // "__builtin_ia32_subss"
+ }
+ break;
+ case 'x': // 1 string to match.
+ if (memcmp(BuiltinName.data()+16, "test", 4))
+ break;
+ return Intrinsic::x86_xtest; // "__builtin_ia32_xtest"
+ }
+ break;
+ case 21: // 55 strings to match.
+ if (memcmp(BuiltinName.data()+0, "__builtin_ia32_", 15))
+ break;
+ switch (BuiltinName[15]) {
+ default: break;
+ case 'c': // 5 strings to match.
+ if (memcmp(BuiltinName.data()+16, "omi", 3))
+ break;
+ switch (BuiltinName[19]) {
+ default: break;
+ case 'e': // 1 string to match.
+ if (BuiltinName[20] != 'q')
+ break;
+ return Intrinsic::x86_sse_comieq_ss; // "__builtin_ia32_comieq"
+ case 'g': // 2 strings to match.
+ switch (BuiltinName[20]) {
+ default: break;
+ case 'e': // 1 string to match.
+ return Intrinsic::x86_sse_comige_ss; // "__builtin_ia32_comige"
+ case 't': // 1 string to match.
+ return Intrinsic::x86_sse_comigt_ss; // "__builtin_ia32_comigt"
+ }
+ break;
+ case 'l': // 2 strings to match.
+ switch (BuiltinName[20]) {
+ default: break;
+ case 'e': // 1 string to match.
+ return Intrinsic::x86_sse_comile_ss; // "__builtin_ia32_comile"
+ case 't': // 1 string to match.
+ return Intrinsic::x86_sse_comilt_ss; // "__builtin_ia32_comilt"
+ }
+ break;
+ }
+ break;
+ case 'e': // 1 string to match.
+ if (memcmp(BuiltinName.data()+16, "xtrqi", 5))
+ break;
+ return Intrinsic::x86_sse4a_extrqi; // "__builtin_ia32_extrqi"
+ case 'h': // 4 strings to match.
+ switch (BuiltinName[16]) {
+ default: break;
+ case 'a': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+17, "ddp", 3))
+ break;
+ switch (BuiltinName[20]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::x86_sse3_hadd_pd; // "__builtin_ia32_haddpd"
+ case 's': // 1 string to match.
+ return Intrinsic::x86_sse3_hadd_ps; // "__builtin_ia32_haddps"
+ }
+ break;
+ case 's': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+17, "ubp", 3))
+ break;
+ switch (BuiltinName[20]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::x86_sse3_hsub_pd; // "__builtin_ia32_hsubpd"
+ case 's': // 1 string to match.
+ return Intrinsic::x86_sse3_hsub_ps; // "__builtin_ia32_hsubps"
+ }
+ break;
+ }
+ break;
+ case 'k': // 3 strings to match.
+ switch (BuiltinName[16]) {
+ default: break;
+ case 'a': // 1 string to match.
+ if (memcmp(BuiltinName.data()+17, "ndhi", 4))
+ break;
+ return Intrinsic::x86_avx512_kand_w; // "__builtin_ia32_kandhi"
+ case 'n': // 1 string to match.
+ if (memcmp(BuiltinName.data()+17, "othi", 4))
+ break;
+ return Intrinsic::x86_avx512_knot_w; // "__builtin_ia32_knothi"
+ case 'x': // 1 string to match.
+ if (memcmp(BuiltinName.data()+17, "orhi", 4))
+ break;
+ return Intrinsic::x86_avx512_kxor_w; // "__builtin_ia32_kxorhi"
+ }
+ break;
+ case 'l': // 1 string to match.
+ if (memcmp(BuiltinName.data()+16, "fence", 5))
+ break;
+ return Intrinsic::x86_sse2_lfence; // "__builtin_ia32_lfence"
+ case 'm': // 2 strings to match.
+ switch (BuiltinName[16]) {
+ default: break;
+ case 'f': // 1 string to match.
+ if (memcmp(BuiltinName.data()+17, "ence", 4))
+ break;
+ return Intrinsic::x86_sse2_mfence; // "__builtin_ia32_mfence"
+ case 'o': // 1 string to match.
+ if (memcmp(BuiltinName.data()+17, "vntq", 4))
+ break;
+ return Intrinsic::x86_mmx_movnt_dq; // "__builtin_ia32_movntq"
+ }
+ break;
+ case 'p': // 31 strings to match.
+ switch (BuiltinName[16]) {
+ default: break;
+ case 'a': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+17, "dds", 3))
+ break;
+ switch (BuiltinName[20]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::x86_mmx_padds_b; // "__builtin_ia32_paddsb"
+ case 'w': // 1 string to match.
+ return Intrinsic::x86_mmx_padds_w; // "__builtin_ia32_paddsw"
+ }
+ break;
+ case 'f': // 2 strings to match.
+ switch (BuiltinName[17]) {
+ default: break;
+ case 'n': // 1 string to match.
+ if (memcmp(BuiltinName.data()+18, "acc", 3))
+ break;
+ return Intrinsic::x86_3dnowa_pfnacc; // "__builtin_ia32_pfnacc"
+ case 's': // 1 string to match.
+ if (memcmp(BuiltinName.data()+18, "ubr", 3))
+ break;
+ return Intrinsic::x86_3dnow_pfsubr; // "__builtin_ia32_pfsubr"
+ }
+ break;
+ case 'h': // 4 strings to match.
+ switch (BuiltinName[17]) {
+ default: break;
+ case 'a': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+18, "dd", 2))
+ break;
+ switch (BuiltinName[20]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::x86_ssse3_phadd_d; // "__builtin_ia32_phaddd"
+ case 'w': // 1 string to match.
+ return Intrinsic::x86_ssse3_phadd_w; // "__builtin_ia32_phaddw"
+ }
+ break;
+ case 's': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+18, "ub", 2))
+ break;
+ switch (BuiltinName[20]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::x86_ssse3_phsub_d; // "__builtin_ia32_phsubd"
+ case 'w': // 1 string to match.
+ return Intrinsic::x86_ssse3_phsub_w; // "__builtin_ia32_phsubw"
+ }
+ break;
+ }
+ break;
+ case 'm': // 6 strings to match.
+ switch (BuiltinName[17]) {
+ default: break;
+ case 'a': // 2 strings to match.
+ if (BuiltinName[18] != 'x')
+ break;
+ switch (BuiltinName[19]) {
+ default: break;
+ case 's': // 1 string to match.
+ if (BuiltinName[20] != 'w')
+ break;
+ return Intrinsic::x86_mmx_pmaxs_w; // "__builtin_ia32_pmaxsw"
+ case 'u': // 1 string to match.
+ if (BuiltinName[20] != 'b')
+ break;
+ return Intrinsic::x86_mmx_pmaxu_b; // "__builtin_ia32_pmaxub"
+ }
+ break;
+ case 'i': // 2 strings to match.
+ if (BuiltinName[18] != 'n')
+ break;
+ switch (BuiltinName[19]) {
+ default: break;
+ case 's': // 1 string to match.
+ if (BuiltinName[20] != 'w')
+ break;
+ return Intrinsic::x86_mmx_pmins_w; // "__builtin_ia32_pminsw"
+ case 'u': // 1 string to match.
+ if (BuiltinName[20] != 'b')
+ break;
+ return Intrinsic::x86_mmx_pminu_b; // "__builtin_ia32_pminub"
+ }
+ break;
+ case 'u': // 2 strings to match.
+ if (BuiltinName[18] != 'l')
+ break;
+ switch (BuiltinName[19]) {
+ default: break;
+ case 'h': // 1 string to match.
+ if (BuiltinName[20] != 'w')
+ break;
+ return Intrinsic::x86_mmx_pmulh_w; // "__builtin_ia32_pmulhw"
+ case 'l': // 1 string to match.
+ if (BuiltinName[20] != 'w')
+ break;
+ return Intrinsic::x86_mmx_pmull_w; // "__builtin_ia32_pmullw"
+ }
+ break;
+ }
+ break;
+ case 's': // 17 strings to match.
+ switch (BuiltinName[17]) {
+ default: break;
+ case 'a': // 1 string to match.
+ if (memcmp(BuiltinName.data()+18, "dbw", 3))
+ break;
+ return Intrinsic::x86_mmx_psad_bw; // "__builtin_ia32_psadbw"
+ case 'h': // 3 strings to match.
+ if (memcmp(BuiltinName.data()+18, "uf", 2))
+ break;
+ switch (BuiltinName[20]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::x86_ssse3_pshuf_b; // "__builtin_ia32_pshufb"
+ case 'd': // 1 string to match.
+ return Intrinsic::x86_sse2_pshuf_d; // "__builtin_ia32_pshufd"
+ case 'w': // 1 string to match.
+ return Intrinsic::x86_sse_pshuf_w; // "__builtin_ia32_pshufw"
+ }
+ break;
+ case 'i': // 3 strings to match.
+ if (memcmp(BuiltinName.data()+18, "gn", 2))
+ break;
+ switch (BuiltinName[20]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::x86_ssse3_psign_b; // "__builtin_ia32_psignb"
+ case 'd': // 1 string to match.
+ return Intrinsic::x86_ssse3_psign_d; // "__builtin_ia32_psignd"
+ case 'w': // 1 string to match.
+ return Intrinsic::x86_ssse3_psign_w; // "__builtin_ia32_psignw"
+ }
+ break;
+ case 'l': // 3 strings to match.
+ if (BuiltinName[18] != 'l')
+ break;
+ switch (BuiltinName[19]) {
+ default: break;
+ case 'd': // 1 string to match.
+ if (BuiltinName[20] != 'i')
+ break;
+ return Intrinsic::x86_mmx_pslli_d; // "__builtin_ia32_pslldi"
+ case 'q': // 1 string to match.
+ if (BuiltinName[20] != 'i')
+ break;
+ return Intrinsic::x86_mmx_pslli_q; // "__builtin_ia32_psllqi"
+ case 'w': // 1 string to match.
+ if (BuiltinName[20] != 'i')
+ break;
+ return Intrinsic::x86_mmx_pslli_w; // "__builtin_ia32_psllwi"
+ }
+ break;
+ case 'r': // 5 strings to match.
+ switch (BuiltinName[18]) {
+ default: break;
+ case 'a': // 2 strings to match.
+ switch (BuiltinName[19]) {
+ default: break;
+ case 'd': // 1 string to match.
+ if (BuiltinName[20] != 'i')
+ break;
+ return Intrinsic::x86_mmx_psrai_d; // "__builtin_ia32_psradi"
+ case 'w': // 1 string to match.
+ if (BuiltinName[20] != 'i')
+ break;
+ return Intrinsic::x86_mmx_psrai_w; // "__builtin_ia32_psrawi"
+ }
+ break;
+ case 'l': // 3 strings to match.
+ switch (BuiltinName[19]) {
+ default: break;
+ case 'd': // 1 string to match.
+ if (BuiltinName[20] != 'i')
+ break;
+ return Intrinsic::x86_mmx_psrli_d; // "__builtin_ia32_psrldi"
+ case 'q': // 1 string to match.
+ if (BuiltinName[20] != 'i')
+ break;
+ return Intrinsic::x86_mmx_psrli_q; // "__builtin_ia32_psrlqi"
+ case 'w': // 1 string to match.
+ if (BuiltinName[20] != 'i')
+ break;
+ return Intrinsic::x86_mmx_psrli_w; // "__builtin_ia32_psrlwi"
+ }
+ break;
+ }
+ break;
+ case 'u': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+18, "bs", 2))
+ break;
+ switch (BuiltinName[20]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::x86_mmx_psubs_b; // "__builtin_ia32_psubsb"
+ case 'w': // 1 string to match.
+ return Intrinsic::x86_mmx_psubs_w; // "__builtin_ia32_psubsw"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 'r': // 1 string to match.
+ if (memcmp(BuiltinName.data()+16, "dtscp", 5))
+ break;
+ return Intrinsic::x86_rdtscp; // "__builtin_ia32_rdtscp"
+ case 's': // 5 strings to match.
+ switch (BuiltinName[16]) {
+ default: break;
+ case 'f': // 1 string to match.
+ if (memcmp(BuiltinName.data()+17, "ence", 4))
+ break;
+ return Intrinsic::x86_sse_sfence; // "__builtin_ia32_sfence"
+ case 'q': // 4 strings to match.
+ if (memcmp(BuiltinName.data()+17, "rt", 2))
+ break;
+ switch (BuiltinName[19]) {
+ default: break;
+ case 'p': // 2 strings to match.
+ switch (BuiltinName[20]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::x86_sse2_sqrt_pd; // "__builtin_ia32_sqrtpd"
+ case 's': // 1 string to match.
+ return Intrinsic::x86_sse_sqrt_ps; // "__builtin_ia32_sqrtps"
+ }
+ break;
+ case 's': // 2 strings to match.
+ switch (BuiltinName[20]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::x86_sse2_sqrt_sd; // "__builtin_ia32_sqrtsd"
+ case 's': // 1 string to match.
+ return Intrinsic::x86_sse_sqrt_ss; // "__builtin_ia32_sqrtss"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 'x': // 2 strings to match.
+ switch (BuiltinName[16]) {
+ default: break;
+ case 'a': // 1 string to match.
+ if (memcmp(BuiltinName.data()+17, "bort", 4))
+ break;
+ return Intrinsic::x86_xabort; // "__builtin_ia32_xabort"
+ case 'b': // 1 string to match.
+ if (memcmp(BuiltinName.data()+17, "egin", 4))
+ break;
+ return Intrinsic::x86_xbegin; // "__builtin_ia32_xbegin"
+ }
+ break;
+ }
+ break;
+ case 22: // 57 strings to match.
+ if (memcmp(BuiltinName.data()+0, "__builtin_ia32_", 15))
+ break;
+ switch (BuiltinName[15]) {
+ default: break;
+ case 'b': // 4 strings to match.
+ switch (BuiltinName[16]) {
+ default: break;
+ case 'l': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+17, "endp", 4))
+ break;
+ switch (BuiltinName[21]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::x86_sse41_blendpd; // "__builtin_ia32_blendpd"
+ case 's': // 1 string to match.
+ return Intrinsic::x86_sse41_blendps; // "__builtin_ia32_blendps"
+ }
+ break;
+ case 'z': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+17, "hi_", 3))
+ break;
+ switch (BuiltinName[20]) {
+ default: break;
+ case 'd': // 1 string to match.
+ if (BuiltinName[21] != 'i')
+ break;
+ return Intrinsic::x86_bmi_bzhi_64; // "__builtin_ia32_bzhi_di"
+ case 's': // 1 string to match.
+ if (BuiltinName[21] != 'i')
+ break;
+ return Intrinsic::x86_bmi_bzhi_32; // "__builtin_ia32_bzhi_si"
+ }
+ break;
+ }
+ break;
+ case 'c': // 6 strings to match.
+ switch (BuiltinName[16]) {
+ default: break;
+ case 'l': // 1 string to match.
+ if (memcmp(BuiltinName.data()+17, "flush", 5))
+ break;
+ return Intrinsic::x86_sse2_clflush; // "__builtin_ia32_clflush"
+ case 'o': // 1 string to match.
+ if (memcmp(BuiltinName.data()+17, "mineq", 5))
+ break;
+ return Intrinsic::x86_sse_comineq_ss; // "__builtin_ia32_comineq"
+ case 'r': // 4 strings to match.
+ if (memcmp(BuiltinName.data()+17, "c32", 3))
+ break;
+ switch (BuiltinName[20]) {
+ default: break;
+ case 'd': // 1 string to match.
+ if (BuiltinName[21] != 'i')
+ break;
+ return Intrinsic::x86_sse42_crc32_64_64; // "__builtin_ia32_crc32di"
+ case 'h': // 1 string to match.
+ if (BuiltinName[21] != 'i')
+ break;
+ return Intrinsic::x86_sse42_crc32_32_16; // "__builtin_ia32_crc32hi"
+ case 'q': // 1 string to match.
+ if (BuiltinName[21] != 'i')
+ break;
+ return Intrinsic::x86_sse42_crc32_32_8; // "__builtin_ia32_crc32qi"
+ case 's': // 1 string to match.
+ if (BuiltinName[21] != 'i')
+ break;
+ return Intrinsic::x86_sse42_crc32_32_32; // "__builtin_ia32_crc32si"
+ }
+ break;
+ }
+ break;
+ case 'd': // 1 string to match.
+ if (memcmp(BuiltinName.data()+16, "pps256", 6))
+ break;
+ return Intrinsic::x86_avx_dp_ps_256; // "__builtin_ia32_dpps256"
+ case 'i': // 1 string to match.
+ if (memcmp(BuiltinName.data()+16, "nsertq", 6))
+ break;
+ return Intrinsic::x86_sse4a_insertq; // "__builtin_ia32_insertq"
+ case 'k': // 2 strings to match.
+ switch (BuiltinName[16]) {
+ default: break;
+ case 'a': // 1 string to match.
+ if (memcmp(BuiltinName.data()+17, "ndnhi", 5))
+ break;
+ return Intrinsic::x86_avx512_kandn_w; // "__builtin_ia32_kandnhi"
+ case 'x': // 1 string to match.
+ if (memcmp(BuiltinName.data()+17, "norhi", 5))
+ break;
+ return Intrinsic::x86_avx512_kxnor_w; // "__builtin_ia32_kxnorhi"
+ }
+ break;
+ case 'm': // 3 strings to match.
+ if (BuiltinName[16] != 'o')
+ break;
+ switch (BuiltinName[17]) {
+ default: break;
+ case 'n': // 1 string to match.
+ if (memcmp(BuiltinName.data()+18, "itor", 4))
+ break;
+ return Intrinsic::x86_sse3_monitor; // "__builtin_ia32_monitor"
+ case 'v': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+18, "nts", 3))
+ break;
+ switch (BuiltinName[21]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::x86_sse4a_movnt_sd; // "__builtin_ia32_movntsd"
+ case 's': // 1 string to match.
+ return Intrinsic::x86_sse4a_movnt_ss; // "__builtin_ia32_movntss"
+ }
+ break;
+ }
+ break;
+ case 'p': // 29 strings to match.
+ switch (BuiltinName[16]) {
+ default: break;
+ case 'a': // 4 strings to match.
+ switch (BuiltinName[17]) {
+ default: break;
+ case 'd': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+18, "dus", 3))
+ break;
+ switch (BuiltinName[21]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::x86_mmx_paddus_b; // "__builtin_ia32_paddusb"
+ case 'w': // 1 string to match.
+ return Intrinsic::x86_mmx_paddus_w; // "__builtin_ia32_paddusw"
+ }
+ break;
+ case 'l': // 1 string to match.
+ if (memcmp(BuiltinName.data()+18, "ignr", 4))
+ break;
+ return Intrinsic::x86_mmx_palignr_b; // "__builtin_ia32_palignr"
+ case 'v': // 1 string to match.
+ if (memcmp(BuiltinName.data()+18, "gusb", 4))
+ break;
+ return Intrinsic::x86_3dnow_pavgusb; // "__builtin_ia32_pavgusb"
+ }
+ break;
+ case 'c': // 6 strings to match.
+ if (memcmp(BuiltinName.data()+17, "mp", 2))
+ break;
+ switch (BuiltinName[19]) {
+ default: break;
+ case 'e': // 3 strings to match.
+ if (BuiltinName[20] != 'q')
+ break;
+ switch (BuiltinName[21]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::x86_mmx_pcmpeq_b; // "__builtin_ia32_pcmpeqb"
+ case 'd': // 1 string to match.
+ return Intrinsic::x86_mmx_pcmpeq_d; // "__builtin_ia32_pcmpeqd"
+ case 'w': // 1 string to match.
+ return Intrinsic::x86_mmx_pcmpeq_w; // "__builtin_ia32_pcmpeqw"
+ }
+ break;
+ case 'g': // 3 strings to match.
+ if (BuiltinName[20] != 't')
+ break;
+ switch (BuiltinName[21]) {
+ default: break;
+ case 'b': // 1 string to match.
+ return Intrinsic::x86_mmx_pcmpgt_b; // "__builtin_ia32_pcmpgtb"
+ case 'd': // 1 string to match.
+ return Intrinsic::x86_mmx_pcmpgt_d; // "__builtin_ia32_pcmpgtd"
+ case 'w': // 1 string to match.
+ return Intrinsic::x86_mmx_pcmpgt_w; // "__builtin_ia32_pcmpgtw"
+ }
+ break;
+ }
+ break;
+ case 'd': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+17, "ep_", 3))
+ break;
+ switch (BuiltinName[20]) {
+ default: break;
+ case 'd': // 1 string to match.
+ if (BuiltinName[21] != 'i')
+ break;
+ return Intrinsic::x86_bmi_pdep_64; // "__builtin_ia32_pdep_di"
+ case 's': // 1 string to match.
+ if (BuiltinName[21] != 'i')
+ break;
+ return Intrinsic::x86_bmi_pdep_32; // "__builtin_ia32_pdep_si"
+ }
+ break;
+ case 'e': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+17, "xt_", 3))
+ break;
+ switch (BuiltinName[20]) {
+ default: break;
+ case 'd': // 1 string to match.
+ if (BuiltinName[21] != 'i')
+ break;
+ return Intrinsic::x86_bmi_pext_64; // "__builtin_ia32_pext_di"
+ case 's': // 1 string to match.
+ if (BuiltinName[21] != 'i')
+ break;
+ return Intrinsic::x86_bmi_pext_32; // "__builtin_ia32_pext_si"
+ }
+ break;
+ case 'f': // 5 strings to match.
+ switch (BuiltinName[17]) {
+ default: break;
+ case 'c': // 3 strings to match.
+ if (memcmp(BuiltinName.data()+18, "mp", 2))
+ break;
+ switch (BuiltinName[20]) {
+ default: break;
+ case 'e': // 1 string to match.
+ if (BuiltinName[21] != 'q')
+ break;
+ return Intrinsic::x86_3dnow_pfcmpeq; // "__builtin_ia32_pfcmpeq"
+ case 'g': // 2 strings to match.
+ switch (BuiltinName[21]) {
+ default: break;
+ case 'e': // 1 string to match.
+ return Intrinsic::x86_3dnow_pfcmpge; // "__builtin_ia32_pfcmpge"
+ case 't': // 1 string to match.
+ return Intrinsic::x86_3dnow_pfcmpgt; // "__builtin_ia32_pfcmpgt"
+ }
+ break;
+ }
+ break;
+ case 'p': // 1 string to match.
+ if (memcmp(BuiltinName.data()+18, "nacc", 4))
+ break;
+ return Intrinsic::x86_3dnowa_pfpnacc; // "__builtin_ia32_pfpnacc"
+ case 'r': // 1 string to match.
+ if (memcmp(BuiltinName.data()+18, "sqrt", 4))
+ break;
+ return Intrinsic::x86_3dnow_pfrsqrt; // "__builtin_ia32_pfrsqrt"
+ }
+ break;
+ case 'h': // 2 strings to match.
+ switch (BuiltinName[17]) {
+ default: break;
+ case 'a': // 1 string to match.
+ if (memcmp(BuiltinName.data()+18, "ddsw", 4))
+ break;
+ return Intrinsic::x86_ssse3_phadd_sw; // "__builtin_ia32_phaddsw"
+ case 's': // 1 string to match.
+ if (memcmp(BuiltinName.data()+18, "ubsw", 4))
+ break;
+ return Intrinsic::x86_ssse3_phsub_sw; // "__builtin_ia32_phsubsw"
+ }
+ break;
+ case 'm': // 4 strings to match.
+ switch (BuiltinName[17]) {
+ default: break;
+ case 'a': // 1 string to match.
+ if (memcmp(BuiltinName.data()+18, "ddwd", 4))
+ break;
+ return Intrinsic::x86_mmx_pmadd_wd; // "__builtin_ia32_pmaddwd"
+ case 'u': // 3 strings to match.
+ if (BuiltinName[18] != 'l')
+ break;
+ switch (BuiltinName[19]) {
+ default: break;
+ case 'h': // 2 strings to match.
+ switch (BuiltinName[20]) {
+ default: break;
+ case 'r': // 1 string to match.
+ if (BuiltinName[21] != 'w')
+ break;
+ return Intrinsic::x86_3dnow_pmulhrw; // "__builtin_ia32_pmulhrw"
+ case 'u': // 1 string to match.
+ if (BuiltinName[21] != 'w')
+ break;
+ return Intrinsic::x86_mmx_pmulhu_w; // "__builtin_ia32_pmulhuw"
+ }
+ break;
+ case 'u': // 1 string to match.
+ if (memcmp(BuiltinName.data()+20, "dq", 2))
+ break;
+ return Intrinsic::x86_mmx_pmulu_dq; // "__builtin_ia32_pmuludq"
+ }
+ break;
+ }
+ break;
+ case 's': // 4 strings to match.
+ switch (BuiltinName[17]) {
+ default: break;
+ case 'h': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+18, "uf", 2))
+ break;
+ switch (BuiltinName[20]) {
+ default: break;
+ case 'h': // 1 string to match.
+ if (BuiltinName[21] != 'w')
+ break;
+ return Intrinsic::x86_sse2_pshufh_w; // "__builtin_ia32_pshufhw"
+ case 'l': // 1 string to match.
+ if (BuiltinName[21] != 'w')
+ break;
+ return Intrinsic::x86_sse2_pshufl_w; // "__builtin_ia32_pshuflw"
+ }
+ break;
+ case 'u': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+18, "bus", 3))
+ 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;
+ }
+ break;
+ case 'r': // 6 strings to match.
+ switch (BuiltinName[16]) {
+ default: break;
+ case 'o': // 4 strings to match.
+ if (memcmp(BuiltinName.data()+17, "und", 3))
+ break;
+ switch (BuiltinName[20]) {
+ default: break;
+ case 'p': // 2 strings to match.
+ switch (BuiltinName[21]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::x86_sse41_round_pd; // "__builtin_ia32_roundpd"
+ case 's': // 1 string to match.
+ return Intrinsic::x86_sse41_round_ps; // "__builtin_ia32_roundps"
+ }
+ break;
+ case 's': // 2 strings to match.
+ switch (BuiltinName[21]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::x86_sse41_round_sd; // "__builtin_ia32_roundsd"
+ case 's': // 1 string to match.
+ return Intrinsic::x86_sse41_round_ss; // "__builtin_ia32_roundss"
+ }
+ break;
+ }
+ break;
+ case 's': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+17, "qrt", 3))
+ break;
+ switch (BuiltinName[20]) {
+ default: break;
+ case 'p': // 1 string to match.
+ if (BuiltinName[21] != 's')
+ break;
+ return Intrinsic::x86_sse_rsqrt_ps; // "__builtin_ia32_rsqrtps"
+ case 's': // 1 string to match.
+ if (BuiltinName[21] != 's')
+ break;
+ return Intrinsic::x86_sse_rsqrt_ss; // "__builtin_ia32_rsqrtss"
+ }
+ break;
+ }
+ break;
+ case 'u': // 5 strings to match.
+ if (memcmp(BuiltinName.data()+16, "comi", 4))
+ break;
+ switch (BuiltinName[20]) {
+ default: break;
+ case 'e': // 1 string to match.
+ if (BuiltinName[21] != 'q')
+ break;
+ return Intrinsic::x86_sse_ucomieq_ss; // "__builtin_ia32_ucomieq"
+ case 'g': // 2 strings to match.
+ switch (BuiltinName[21]) {
+ default: break;
+ case 'e': // 1 string to match.
+ return Intrinsic::x86_sse_ucomige_ss; // "__builtin_ia32_ucomige"
+ case 't': // 1 string to match.
+ return Intrinsic::x86_sse_ucomigt_ss; // "__builtin_ia32_ucomigt"
+ }
+ break;
+ case 'l': // 2 strings to match.
+ switch (BuiltinName[21]) {
+ default: break;
+ case 'e': // 1 string to match.
+ return Intrinsic::x86_sse_ucomile_ss; // "__builtin_ia32_ucomile"
+ case 't': // 1 string to match.
+ return Intrinsic::x86_sse_ucomilt_ss; // "__builtin_ia32_ucomilt"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 23: // 102 strings to match.
+ if (memcmp(BuiltinName.data()+0, "__builtin_ia32_", 15))
+ break;
+ switch (BuiltinName[15]) {
+ default: break;
+ case 'a': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+16, "ddsubp", 6))
+ break;
+ switch (BuiltinName[22]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::x86_sse3_addsub_pd; // "__builtin_ia32_addsubpd"
+ case 's': // 1 string to match.
+ return Intrinsic::x86_sse3_addsub_ps; // "__builtin_ia32_addsubps"
+ }
+ break;
+ case 'b': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+16, "lendvp", 6))
+ break;
+ switch (BuiltinName[22]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::x86_sse41_blendvpd; // "__builtin_ia32_blendvpd"
+ case 's': // 1 string to match.
+ return Intrinsic::x86_sse41_blendvps; // "__builtin_ia32_blendvps"
+ }
+ break;
+ case 'c': // 23 strings to match.
+ switch (BuiltinName[16]) {
+ default: break;
+ case 'm': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+17, "pp", 2))
+ break;
+ switch (BuiltinName[19]) {
+ default: break;
+ case 'd': // 1 string to match.
+ if (memcmp(BuiltinName.data()+20, "256", 3))
+ break;
+ return Intrinsic::x86_avx_cmp_pd_256; // "__builtin_ia32_cmppd256"
+ case 's': // 1 string to match.
+ if (memcmp(BuiltinName.data()+20, "256", 3))
+ break;
+ return Intrinsic::x86_avx_cmp_ps_256; // "__builtin_ia32_cmpps256"
+ }
+ break;
+ case 'o': // 5 strings to match.
+ if (memcmp(BuiltinName.data()+17, "misd", 4))
+ break;
+ switch (BuiltinName[21]) {
+ default: break;
+ case 'e': // 1 string to match.
+ if (BuiltinName[22] != 'q')
+ break;
+ return Intrinsic::x86_sse2_comieq_sd; // "__builtin_ia32_comisdeq"
+ case 'g': // 2 strings to match.
+ switch (BuiltinName[22]) {
+ default: break;
+ case 'e': // 1 string to match.
+ return Intrinsic::x86_sse2_comige_sd; // "__builtin_ia32_comisdge"
+ case 't': // 1 string to match.
+ return Intrinsic::x86_sse2_comigt_sd; // "__builtin_ia32_comisdgt"
+ }
+ break;
+ case 'l': // 2 strings to match.
+ switch (BuiltinName[22]) {
+ default: break;
+ case 'e': // 1 string to match.
+ return Intrinsic::x86_sse2_comile_sd; // "__builtin_ia32_comisdle"
+ case 't': // 1 string to match.
+ return Intrinsic::x86_sse2_comilt_sd; // "__builtin_ia32_comisdlt"
+ }
+ break;
+ }
+ break;
+ case 'v': // 16 strings to match.
+ if (BuiltinName[17] != 't')
+ break;
+ switch (BuiltinName[18]) {
+ default: break;
+ case 'd': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+19, "q2p", 3))
+ break;
+ switch (BuiltinName[22]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::x86_sse2_cvtdq2pd; // "__builtin_ia32_cvtdq2pd"
+ case 's': // 1 string to match.
+ return Intrinsic::x86_sse2_cvtdq2ps; // "__builtin_ia32_cvtdq2ps"
+ }
+ break;
+ case 'p': // 8 strings to match.
+ switch (BuiltinName[19]) {
+ default: break;
+ case 'd': // 3 strings to match.
+ if (BuiltinName[20] != '2')
+ break;
+ switch (BuiltinName[21]) {
+ default: break;
+ case 'd': // 1 string to match.
+ if (BuiltinName[22] != 'q')
+ break;
+ return Intrinsic::x86_sse2_cvtpd2dq; // "__builtin_ia32_cvtpd2dq"
+ case 'p': // 2 strings to match.
+ switch (BuiltinName[22]) {
+ default: break;
+ case 'i': // 1 string to match.
+ return Intrinsic::x86_sse_cvtpd2pi; // "__builtin_ia32_cvtpd2pi"
+ case 's': // 1 string to match.
+ return Intrinsic::x86_sse2_cvtpd2ps; // "__builtin_ia32_cvtpd2ps"
+ }
+ break;
+ }
+ break;
+ case 'i': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+20, "2p", 2))
+ break;
+ switch (BuiltinName[22]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::x86_sse_cvtpi2pd; // "__builtin_ia32_cvtpi2pd"
+ case 's': // 1 string to match.
+ return Intrinsic::x86_sse_cvtpi2ps; // "__builtin_ia32_cvtpi2ps"
+ }
+ break;
+ case 's': // 3 strings to match.
+ if (BuiltinName[20] != '2')
+ break;
+ switch (BuiltinName[21]) {
+ default: break;
+ case 'd': // 1 string to match.
+ if (BuiltinName[22] != 'q')
+ break;
+ return Intrinsic::x86_sse2_cvtps2dq; // "__builtin_ia32_cvtps2dq"
+ case 'p': // 2 strings to match.
+ switch (BuiltinName[22]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::x86_sse2_cvtps2pd; // "__builtin_ia32_cvtps2pd"
+ case 'i': // 1 string to match.
+ return Intrinsic::x86_sse_cvtps2pi; // "__builtin_ia32_cvtps2pi"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 's': // 6 strings to match.
+ switch (BuiltinName[19]) {
+ default: break;
+ case 'd': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+20, "2s", 2))
+ break;
+ switch (BuiltinName[22]) {
+ default: break;
+ case 'i': // 1 string to match.
+ return Intrinsic::x86_sse2_cvtsd2si; // "__builtin_ia32_cvtsd2si"
+ case 's': // 1 string to match.
+ return Intrinsic::x86_sse2_cvtsd2ss; // "__builtin_ia32_cvtsd2ss"
+ }
+ break;
+ case 'i': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+20, "2s", 2))
+ break;
+ switch (BuiltinName[22]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::x86_sse2_cvtsi2sd; // "__builtin_ia32_cvtsi2sd"
+ case 's': // 1 string to match.
+ return Intrinsic::x86_sse_cvtsi2ss; // "__builtin_ia32_cvtsi2ss"
+ }
+ break;
+ case 's': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+20, "2s", 2))
+ break;
+ switch (BuiltinName[22]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::x86_sse2_cvtss2sd; // "__builtin_ia32_cvtss2sd"
+ case 'i': // 1 string to match.
+ return Intrinsic::x86_sse_cvtss2si; // "__builtin_ia32_cvtss2si"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 'i': // 1 string to match.
+ if (memcmp(BuiltinName.data()+16, "nsertqi", 7))
+ break;
+ return Intrinsic::x86_sse4a_insertqi; // "__builtin_ia32_insertqi"
+ case 'k': // 1 string to match.
+ if (memcmp(BuiltinName.data()+16, "unpckhi", 7))
+ break;
+ return Intrinsic::x86_avx512_kunpck_bw; // "__builtin_ia32_kunpckhi"
+ case 'l': // 1 string to match.
+ if (memcmp(BuiltinName.data()+16, "ddqu256", 7))
+ break;
+ return Intrinsic::x86_avx_ldu_dq_256; // "__builtin_ia32_lddqu256"
+ case 'm': // 8 strings to match.
+ switch (BuiltinName[16]) {
+ default: break;
+ case 'a': // 3 strings to match.
+ switch (BuiltinName[17]) {
+ default: break;
+ case 's': // 1 string to match.
+ if (memcmp(BuiltinName.data()+18, "kmovq", 5))
+ break;
+ return Intrinsic::x86_mmx_maskmovq; // "__builtin_ia32_maskmovq"
+ case 'x': // 2 strings to match.
+ if (BuiltinName[18] != 'p')
+ break;
+ switch (BuiltinName[19]) {
+ default: break;
+ case 'd': // 1 string to match.
+ if (memcmp(BuiltinName.data()+20, "256", 3))
+ break;
+ return Intrinsic::x86_avx_max_pd_256; // "__builtin_ia32_maxpd256"
+ case 's': // 1 string to match.
+ if (memcmp(BuiltinName.data()+20, "256", 3))
+ break;
+ return Intrinsic::x86_avx_max_ps_256; // "__builtin_ia32_maxps256"
+ }
+ break;
+ }
+ break;
+ case 'i': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+17, "np", 2))
+ break;
+ switch (BuiltinName[19]) {
+ default: break;
+ case 'd': // 1 string to match.
+ if (memcmp(BuiltinName.data()+20, "256", 3))
+ break;
+ return Intrinsic::x86_avx_min_pd_256; // "__builtin_ia32_minpd256"
+ case 's': // 1 string to match.
+ if (memcmp(BuiltinName.data()+20, "256", 3))
+ break;
+ return Intrinsic::x86_avx_min_ps_256; // "__builtin_ia32_minps256"
+ }
+ break;
+ case 'o': // 3 strings to match.
+ if (BuiltinName[17] != 'v')
+ break;
+ switch (BuiltinName[18]) {
+ default: break;
+ case 'm': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+19, "skp", 3))
+ break;
+ switch (BuiltinName[22]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::x86_sse2_movmsk_pd; // "__builtin_ia32_movmskpd"
+ case 's': // 1 string to match.
+ return Intrinsic::x86_sse_movmsk_ps; // "__builtin_ia32_movmskps"
+ }
+ break;
+ case 'n': // 1 string to match.
+ if (memcmp(BuiltinName.data()+19, "tdqa", 4))
+ break;
+ return Intrinsic::x86_sse41_movntdqa; // "__builtin_ia32_movntdqa"
+ }
+ break;
+ }
+ break;
+ case 'p': // 44 strings to match.
+ switch (BuiltinName[16]) {
+ default: break;
+ case 'a': // 13 strings to match.
+ switch (BuiltinName[17]) {
+ default: break;
+ case 'b': // 6 strings to match.
+ if (BuiltinName[18] != 's')
+ break;
+ switch (BuiltinName[19]) {
+ default: break;
+ case 'b': // 2 strings to match.
+ switch (BuiltinName[20]) {
+ default: break;
+ case '1': // 1 string to match.
+ if (memcmp(BuiltinName.data()+21, "28", 2))
+ break;
+ return Intrinsic::x86_ssse3_pabs_b_128; // "__builtin_ia32_pabsb128"
+ case '2': // 1 string to match.
+ if (memcmp(BuiltinName.data()+21, "56", 2))
+ break;
+ return Intrinsic::x86_avx2_pabs_b; // "__builtin_ia32_pabsb256"
+ }
+ break;
+ case 'd': // 2 strings to match.
+ switch (BuiltinName[20]) {
+ default: break;
+ case '1': // 1 string to match.
+ if (memcmp(BuiltinName.data()+21, "28", 2))
+ break;
+ return Intrinsic::x86_ssse3_pabs_d_128; // "__builtin_ia32_pabsd128"
+ case '2': // 1 string to match.
+ if (memcmp(BuiltinName.data()+21, "56", 2))
+ break;
+ return Intrinsic::x86_avx2_pabs_d; // "__builtin_ia32_pabsd256"
+ }
+ break;
+ case 'w': // 2 strings to match.
+ switch (BuiltinName[20]) {
+ default: break;
+ case '1': // 1 string to match.
+ if (memcmp(BuiltinName.data()+21, "28", 2))
+ break;
+ return Intrinsic::x86_ssse3_pabs_w_128; // "__builtin_ia32_pabsw128"
+ case '2': // 1 string to match.
+ if (memcmp(BuiltinName.data()+21, "56", 2))
+ break;
+ return Intrinsic::x86_avx2_pabs_w; // "__builtin_ia32_pabsw256"
+ }
+ break;
+ }
+ break;
+ case 'c': // 3 strings to match.
+ if (BuiltinName[18] != 'k')
+ break;
+ switch (BuiltinName[19]) {
+ default: break;
+ case 's': // 2 strings to match.
+ if (BuiltinName[20] != 's')
+ break;
+ switch (BuiltinName[21]) {
+ default: break;
+ case 'd': // 1 string to match.
+ if (BuiltinName[22] != 'w')
+ break;
+ return Intrinsic::x86_mmx_packssdw; // "__builtin_ia32_packssdw"
+ case 'w': // 1 string to match.
+ if (BuiltinName[22] != 'b')
+ break;
+ return Intrinsic::x86_mmx_packsswb; // "__builtin_ia32_packsswb"
+ }
+ break;
+ case 'u': // 1 string to match.
+ if (memcmp(BuiltinName.data()+20, "swb", 3))
+ break;
+ return Intrinsic::x86_mmx_packuswb; // "__builtin_ia32_packuswb"
+ }
+ break;
+ case 'v': // 4 strings to match.
+ if (BuiltinName[18] != 'g')
+ break;
+ switch (BuiltinName[19]) {
+ default: break;
+ case 'b': // 2 strings to match.
+ switch (BuiltinName[20]) {
+ default: break;
+ case '1': // 1 string to match.
+ if (memcmp(BuiltinName.data()+21, "28", 2))
+ break;
+ return Intrinsic::x86_sse2_pavg_b; // "__builtin_ia32_pavgb128"
+ case '2': // 1 string to match.
+ if (memcmp(BuiltinName.data()+21, "56", 2))
+ break;
+ return Intrinsic::x86_avx2_pavg_b; // "__builtin_ia32_pavgb256"
+ }
+ break;
+ case 'w': // 2 strings to match.
+ switch (BuiltinName[20]) {
+ default: break;
+ case '1': // 1 string to match.
+ if (memcmp(BuiltinName.data()+21, "28", 2))
+ break;
+ return Intrinsic::x86_sse2_pavg_w; // "__builtin_ia32_pavgw128"
+ case '2': // 1 string to match.
+ if (memcmp(BuiltinName.data()+21, "56", 2))
+ break;
+ return Intrinsic::x86_avx2_pavg_w; // "__builtin_ia32_pavgw256"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 'f': // 3 strings to match.
+ if (BuiltinName[17] != 'r')
+ break;
+ switch (BuiltinName[18]) {
+ default: break;
+ case 'c': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+19, "pit", 3))
+ break;
+ switch (BuiltinName[22]) {
+ default: break;
+ case '1': // 1 string to match.
+ return Intrinsic::x86_3dnow_pfrcpit1; // "__builtin_ia32_pfrcpit1"
+ case '2': // 1 string to match.
+ return Intrinsic::x86_3dnow_pfrcpit2; // "__builtin_ia32_pfrcpit2"
+ }
+ break;
+ case 's': // 1 string to match.
+ if (memcmp(BuiltinName.data()+19, "qit1", 4))
+ break;
+ return Intrinsic::x86_3dnow_pfrsqit1; // "__builtin_ia32_pfrsqit1"
+ }
+ break;
+ case 'm': // 2 strings to match.
+ switch (BuiltinName[17]) {
+ default: break;
+ case 'o': // 1 string to match.
+ if (memcmp(BuiltinName.data()+18, "vmskb", 5))
+ break;
+ return Intrinsic::x86_mmx_pmovmskb; // "__builtin_ia32_pmovmskb"
+ case 'u': // 1 string to match.
+ if (memcmp(BuiltinName.data()+18, "lhrsw", 5))
+ break;
+ return Intrinsic::x86_ssse3_pmul_hr_sw; // "__builtin_ia32_pmulhrsw"
+ }
+ break;
+ case 's': // 26 strings to match.
+ switch (BuiltinName[17]) {
+ default: break;
+ case 'l': // 10 strings to match.
+ if (BuiltinName[18] != 'l')
+ break;
+ switch (BuiltinName[19]) {
+ default: break;
+ case 'd': // 2 strings to match.
+ switch (BuiltinName[20]) {
+ default: break;
+ case '1': // 1 string to match.
+ if (memcmp(BuiltinName.data()+21, "28", 2))
+ break;
+ return Intrinsic::x86_sse2_psll_d; // "__builtin_ia32_pslld128"
+ case '2': // 1 string to match.
+ if (memcmp(BuiltinName.data()+21, "56", 2))
+ break;
+ return Intrinsic::x86_avx2_psll_d; // "__builtin_ia32_pslld256"
+ }
+ break;
+ case 'q': // 2 strings to match.
+ switch (BuiltinName[20]) {
+ default: break;
+ case '1': // 1 string to match.
+ if (memcmp(BuiltinName.data()+21, "28", 2))
+ break;
+ return Intrinsic::x86_sse2_psll_q; // "__builtin_ia32_psllq128"
+ case '2': // 1 string to match.
+ if (memcmp(BuiltinName.data()+21, "56", 2))
+ break;
+ return Intrinsic::x86_avx2_psll_q; // "__builtin_ia32_psllq256"
+ }
+ break;
+ case 'v': // 4 strings to match.
+ switch (BuiltinName[20]) {
+ default: break;
+ case '2': // 1 string to match.
+ if (memcmp(BuiltinName.data()+21, "di", 2))
+ break;
+ return Intrinsic::x86_avx2_psllv_q; // "__builtin_ia32_psllv2di"
+ case '4': // 2 strings to match.
+ switch (BuiltinName[21]) {
+ default: break;
+ case 'd': // 1 string to match.
+ if (BuiltinName[22] != 'i')
+ break;
+ return Intrinsic::x86_avx2_psllv_q_256; // "__builtin_ia32_psllv4di"
+ case 's': // 1 string to match.
+ if (BuiltinName[22] != 'i')
+ break;
+ return Intrinsic::x86_avx2_psllv_d; // "__builtin_ia32_psllv4si"
+ }
+ break;
+ case '8': // 1 string to match.
+ if (memcmp(BuiltinName.data()+21, "si", 2))
+ break;
+ return Intrinsic::x86_avx2_psllv_d_256; // "__builtin_ia32_psllv8si"
+ }
+ break;
+ case 'w': // 2 strings to match.
+ switch (BuiltinName[20]) {
+ default: break;
+ case '1': // 1 string to match.
+ if (memcmp(BuiltinName.data()+21, "28", 2))
+ break;
+ return Intrinsic::x86_sse2_psll_w; // "__builtin_ia32_psllw128"
+ case '2': // 1 string to match.
+ if (memcmp(BuiltinName.data()+21, "56", 2))
+ break;
+ return Intrinsic::x86_avx2_psll_w; // "__builtin_ia32_psllw256"
+ }
+ break;
+ }
+ break;
+ case 'r': // 16 strings to match.
+ switch (BuiltinName[18]) {
+ default: break;
+ case 'a': // 6 strings to match.
+ switch (BuiltinName[19]) {
+ default: break;
+ case 'd': // 2 strings to match.
+ switch (BuiltinName[20]) {
+ default: break;
+ case '1': // 1 string to match.
+ if (memcmp(BuiltinName.data()+21, "28", 2))
+ break;
+ return Intrinsic::x86_sse2_psra_d; // "__builtin_ia32_psrad128"
+ case '2': // 1 string to match.
+ if (memcmp(BuiltinName.data()+21, "56", 2))
+ break;
+ return Intrinsic::x86_avx2_psra_d; // "__builtin_ia32_psrad256"
+ }
+ break;
+ case 'v': // 2 strings to match.
+ switch (BuiltinName[20]) {
+ default: break;
+ case '4': // 1 string to match.
+ if (memcmp(BuiltinName.data()+21, "si", 2))
+ break;
+ return Intrinsic::x86_avx2_psrav_d; // "__builtin_ia32_psrav4si"
+ case '8': // 1 string to match.
+ if (memcmp(BuiltinName.data()+21, "si", 2))
+ break;
+ return Intrinsic::x86_avx2_psrav_d_256; // "__builtin_ia32_psrav8si"
+ }
+ break;
+ case 'w': // 2 strings to match.
+ switch (BuiltinName[20]) {
+ default: break;
+ case '1': // 1 string to match.
+ if (memcmp(BuiltinName.data()+21, "28", 2))
+ break;
+ return Intrinsic::x86_sse2_psra_w; // "__builtin_ia32_psraw128"
+ case '2': // 1 string to match.
+ if (memcmp(BuiltinName.data()+21, "56", 2))
+ break;
+ return Intrinsic::x86_avx2_psra_w; // "__builtin_ia32_psraw256"
+ }
+ break;
+ }
+ break;
+ case 'l': // 10 strings to match.
+ switch (BuiltinName[19]) {
+ default: break;
+ case 'd': // 2 strings to match.
+ switch (BuiltinName[20]) {
+ default: break;
+ case '1': // 1 string to match.
+ if (memcmp(BuiltinName.data()+21, "28", 2))
+ break;
+ return Intrinsic::x86_sse2_psrl_d; // "__builtin_ia32_psrld128"
+ case '2': // 1 string to match.
+ if (memcmp(BuiltinName.data()+21, "56", 2))
+ break;
+ return Intrinsic::x86_avx2_psrl_d; // "__builtin_ia32_psrld256"
+ }
+ break;
+ case 'q': // 2 strings to match.
+ switch (BuiltinName[20]) {
+ default: break;
+ case '1': // 1 string to match.
+ if (memcmp(BuiltinName.data()+21, "28", 2))
+ break;
+ return Intrinsic::x86_sse2_psrl_q; // "__builtin_ia32_psrlq128"
+ case '2': // 1 string to match.
+ if (memcmp(BuiltinName.data()+21, "56", 2))
+ break;
+ return Intrinsic::x86_avx2_psrl_q; // "__builtin_ia32_psrlq256"
+ }
+ break;
+ case 'v': // 4 strings to match.
+ switch (BuiltinName[20]) {
+ default: break;
+ case '2': // 1 string to match.
+ if (memcmp(BuiltinName.data()+21, "di", 2))
+ break;
+ return Intrinsic::x86_avx2_psrlv_q; // "__builtin_ia32_psrlv2di"
+ case '4': // 2 strings to match.
+ switch (BuiltinName[21]) {
+ default: break;
+ case 'd': // 1 string to match.
+ if (BuiltinName[22] != 'i')
+ break;
+ return Intrinsic::x86_avx2_psrlv_q_256; // "__builtin_ia32_psrlv4di"
+ case 's': // 1 string to match.
+ if (BuiltinName[22] != 'i')
+ break;
+ return Intrinsic::x86_avx2_psrlv_d; // "__builtin_ia32_psrlv4si"
+ }
+ break;
+ case '8': // 1 string to match.
+ if (memcmp(BuiltinName.data()+21, "si", 2))
+ break;
+ return Intrinsic::x86_avx2_psrlv_d_256; // "__builtin_ia32_psrlv8si"
+ }
+ break;
+ case 'w': // 2 strings to match.
+ switch (BuiltinName[20]) {
+ default: break;
+ case '1': // 1 string to match.
+ if (memcmp(BuiltinName.data()+21, "28", 2))
+ break;
+ return Intrinsic::x86_sse2_psrl_w; // "__builtin_ia32_psrlw128"
+ case '2': // 1 string to match.
+ if (memcmp(BuiltinName.data()+21, "56", 2))
+ break;
+ return Intrinsic::x86_avx2_psrl_w; // "__builtin_ia32_psrlw256"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 'r': // 1 string to match.
+ if (memcmp(BuiltinName.data()+16, "cpps256", 7))
+ break;
+ return Intrinsic::x86_avx_rcp_ps_256; // "__builtin_ia32_rcpps256"
+ case 's': // 5 strings to match.
+ switch (BuiltinName[16]) {
+ default: break;
+ case 'h': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+17, "a1msg", 5))
+ break;
+ switch (BuiltinName[22]) {
+ default: break;
+ case '1': // 1 string to match.
+ return Intrinsic::x86_sha1msg1; // "__builtin_ia32_sha1msg1"
+ case '2': // 1 string to match.
+ return Intrinsic::x86_sha1msg2; // "__builtin_ia32_sha1msg2"
+ }
+ break;
+ case 't': // 3 strings to match.
+ if (memcmp(BuiltinName.data()+17, "ore", 3))
+ break;
+ switch (BuiltinName[20]) {
+ default: break;
+ case 'd': // 1 string to match.
+ if (memcmp(BuiltinName.data()+21, "qu", 2))
+ break;
+ return Intrinsic::x86_sse2_storeu_dq; // "__builtin_ia32_storedqu"
+ case 'u': // 2 strings to match.
+ if (BuiltinName[21] != 'p')
+ break;
+ switch (BuiltinName[22]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::x86_sse2_storeu_pd; // "__builtin_ia32_storeupd"
+ case 's': // 1 string to match.
+ return Intrinsic::x86_sse_storeu_ps; // "__builtin_ia32_storeups"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 'u': // 1 string to match.
+ if (memcmp(BuiltinName.data()+16, "comineq", 7))
+ break;
+ return Intrinsic::x86_sse_ucomineq_ss; // "__builtin_ia32_ucomineq"
+ case 'v': // 13 strings to match.
+ switch (BuiltinName[16]) {
+ default: break;
+ case 'f': // 8 strings to match.
+ if (BuiltinName[17] != 'm')
+ break;
+ switch (BuiltinName[18]) {
+ default: break;
+ case 'a': // 4 strings to match.
+ if (memcmp(BuiltinName.data()+19, "dd", 2))
+ break;
+ switch (BuiltinName[21]) {
+ default: break;
+ case 'p': // 2 strings to match.
+ switch (BuiltinName[22]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::x86_fma_vfmadd_pd; // "__builtin_ia32_vfmaddpd"
+ case 's': // 1 string to match.
+ return Intrinsic::x86_fma_vfmadd_ps; // "__builtin_ia32_vfmaddps"
+ }
+ break;
+ case 's': // 2 strings to match.
+ switch (BuiltinName[22]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::x86_fma_vfmadd_sd; // "__builtin_ia32_vfmaddsd"
+ case 's': // 1 string to match.
+ return Intrinsic::x86_fma_vfmadd_ss; // "__builtin_ia32_vfmaddss"
+ }
+ break;
+ }
+ break;
+ case 's': // 4 strings to match.
+ if (memcmp(BuiltinName.data()+19, "ub", 2))
+ break;
+ switch (BuiltinName[21]) {
+ default: break;
+ case 'p': // 2 strings to match.
+ switch (BuiltinName[22]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::x86_fma_vfmsub_pd; // "__builtin_ia32_vfmsubpd"
+ case 's': // 1 string to match.
+ return Intrinsic::x86_fma_vfmsub_ps; // "__builtin_ia32_vfmsubps"
+ }
+ break;
+ case 's': // 2 strings to match.
+ switch (BuiltinName[22]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::x86_fma_vfmsub_sd; // "__builtin_ia32_vfmsubsd"
+ case 's': // 1 string to match.
+ return Intrinsic::x86_fma_vfmsub_ss; // "__builtin_ia32_vfmsubss"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 't': // 4 strings to match.
+ if (memcmp(BuiltinName.data()+17, "est", 3))
+ break;
+ switch (BuiltinName[20]) {
+ default: break;
+ case 'c': // 2 strings to match.
+ if (BuiltinName[21] != 'p')
+ break;
+ switch (BuiltinName[22]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::x86_avx_vtestc_pd; // "__builtin_ia32_vtestcpd"
+ case 's': // 1 string to match.
+ return Intrinsic::x86_avx_vtestc_ps; // "__builtin_ia32_vtestcps"
+ }
+ break;
+ case 'z': // 2 strings to match.
+ if (BuiltinName[21] != 'p')
+ break;
+ switch (BuiltinName[22]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::x86_avx_vtestz_pd; // "__builtin_ia32_vtestzpd"
+ case 's': // 1 string to match.
+ return Intrinsic::x86_avx_vtestz_ps; // "__builtin_ia32_vtestzps"
+ }
+ break;
+ }
+ break;
+ case 'z': // 1 string to match.
+ if (memcmp(BuiltinName.data()+17, "eroall", 6))
+ break;
+ return Intrinsic::x86_avx_vzeroall; // "__builtin_ia32_vzeroall"
+ }
+ break;
+ }
+ break;
+ case 24: // 131 strings to match.
+ if (memcmp(BuiltinName.data()+0, "__builtin_ia32_", 15))
+ break;
+ switch (BuiltinName[15]) {
+ default: break;
+ case 'a': // 3 strings to match.
+ if (memcmp(BuiltinName.data()+16, "es", 2))
+ break;
+ switch (BuiltinName[18]) {
+ default: break;
+ case 'd': // 1 string to match.
+ if (memcmp(BuiltinName.data()+19, "ec128", 5))
+ break;
+ return Intrinsic::x86_aesni_aesdec; // "__builtin_ia32_aesdec128"
+ case 'e': // 1 string to match.
+ if (memcmp(BuiltinName.data()+19, "nc128", 5))
+ break;
+ return Intrinsic::x86_aesni_aesenc; // "__builtin_ia32_aesenc128"
+ case 'i': // 1 string to match.
+ if (memcmp(BuiltinName.data()+19, "mc128", 5))
+ break;
+ return Intrinsic::x86_aesni_aesimc; // "__builtin_ia32_aesimc128"
+ }
+ break;
+ case 'b': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+16, "extr_u", 6))
+ break;
+ switch (BuiltinName[22]) {
+ default: break;
+ case '3': // 1 string to match.
+ if (BuiltinName[23] != '2')
+ break;
+ return Intrinsic::x86_bmi_bextr_32; // "__builtin_ia32_bextr_u32"
+ case '6': // 1 string to match.
+ if (BuiltinName[23] != '4')
+ break;
+ return Intrinsic::x86_bmi_bextr_64; // "__builtin_ia32_bextr_u64"
+ }
+ break;
+ case 'c': // 11 strings to match.
+ switch (BuiltinName[16]) {
+ default: break;
+ case 'o': // 1 string to match.
+ if (memcmp(BuiltinName.data()+17, "misdneq", 7))
+ break;
+ return Intrinsic::x86_sse2_comineq_sd; // "__builtin_ia32_comisdneq"
+ case 'v': // 10 strings to match.
+ if (BuiltinName[17] != 't')
+ break;
+ switch (BuiltinName[18]) {
+ default: break;
+ case 's': // 2 strings to match.
+ switch (BuiltinName[19]) {
+ default: break;
+ case 'd': // 1 string to match.
+ if (memcmp(BuiltinName.data()+20, "2usi", 4))
+ break;
+ return Intrinsic::x86_avx512_cvtsd2usi; // "__builtin_ia32_cvtsd2usi"
+ case 's': // 1 string to match.
+ if (memcmp(BuiltinName.data()+20, "2usi", 4))
+ break;
+ return Intrinsic::x86_avx512_cvtss2usi; // "__builtin_ia32_cvtss2usi"
+ }
+ break;
+ case 't': // 6 strings to match.
+ switch (BuiltinName[19]) {
+ default: break;
+ case 'p': // 4 strings to match.
+ switch (BuiltinName[20]) {
+ default: break;
+ case 'd': // 2 strings to match.
+ if (BuiltinName[21] != '2')
+ break;
+ switch (BuiltinName[22]) {
+ default: break;
+ case 'd': // 1 string to match.
+ if (BuiltinName[23] != 'q')
+ break;
+ return Intrinsic::x86_sse2_cvttpd2dq; // "__builtin_ia32_cvttpd2dq"
+ case 'p': // 1 string to match.
+ if (BuiltinName[23] != 'i')
+ break;
+ return Intrinsic::x86_sse_cvttpd2pi; // "__builtin_ia32_cvttpd2pi"
+ }
+ break;
+ case 's': // 2 strings to match.
+ if (BuiltinName[21] != '2')
+ break;
+ switch (BuiltinName[22]) {
+ default: break;
+ case 'd': // 1 string to match.
+ if (BuiltinName[23] != 'q')
+ break;
+ return Intrinsic::x86_sse2_cvttps2dq; // "__builtin_ia32_cvttps2dq"
+ case 'p': // 1 string to match.
+ if (BuiltinName[23] != 'i')
+ break;
+ return Intrinsic::x86_sse_cvttps2pi; // "__builtin_ia32_cvttps2pi"
+ }
+ break;
+ }
+ break;
+ case 's': // 2 strings to match.
+ switch (BuiltinName[20]) {
+ default: break;
+ case 'd': // 1 string to match.
+ if (memcmp(BuiltinName.data()+21, "2si", 3))
+ break;
+ return Intrinsic::x86_sse2_cvttsd2si; // "__builtin_ia32_cvttsd2si"
+ case 's': // 1 string to match.
+ if (memcmp(BuiltinName.data()+21, "2si", 3))
+ break;
+ return Intrinsic::x86_sse_cvttss2si; // "__builtin_ia32_cvttss2si"
+ }
+ break;
+ }
+ break;
+ case 'u': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+19, "si2s", 4))
+ break;
+ switch (BuiltinName[23]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::x86_avx512_cvtusi2sd; // "__builtin_ia32_cvtusi2sd"
+ case 's': // 1 string to match.
+ return Intrinsic::x86_avx512_cvtusi2ss; // "__builtin_ia32_cvtusi2ss"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 'g': // 4 strings to match.
+ if (memcmp(BuiltinName.data()+16, "ather", 5))
+ break;
+ switch (BuiltinName[21]) {
+ default: break;
+ case 'd': // 2 strings to match.
+ if (BuiltinName[22] != '_')
+ break;
+ switch (BuiltinName[23]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::x86_avx2_gather_d_d; // "__builtin_ia32_gatherd_d"
+ case 'q': // 1 string to match.
+ return Intrinsic::x86_avx2_gather_d_q; // "__builtin_ia32_gatherd_q"
+ }
+ break;
+ case 'q': // 2 strings to match.
+ if (BuiltinName[22] != '_')
+ break;
+ switch (BuiltinName[23]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::x86_avx2_gather_q_d; // "__builtin_ia32_gatherq_d"
+ case 'q': // 1 string to match.
+ return Intrinsic::x86_avx2_gather_q_q; // "__builtin_ia32_gatherq_q"
+ }
+ break;
+ }
+ break;
+ case 'h': // 4 strings to match.
+ switch (BuiltinName[16]) {
+ default: break;
+ case 'a': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+17, "ddp", 3))
+ break;
+ switch (BuiltinName[20]) {
+ default: break;
+ case 'd': // 1 string to match.
+ if (memcmp(BuiltinName.data()+21, "256", 3))
+ break;
+ return Intrinsic::x86_avx_hadd_pd_256; // "__builtin_ia32_haddpd256"
+ case 's': // 1 string to match.
+ if (memcmp(BuiltinName.data()+21, "256", 3))
+ break;
+ return Intrinsic::x86_avx_hadd_ps_256; // "__builtin_ia32_haddps256"
+ }
+ break;
+ case 's': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+17, "ubp", 3))
+ break;
+ switch (BuiltinName[20]) {
+ default: break;
+ case 'd': // 1 string to match.
+ if (memcmp(BuiltinName.data()+21, "256", 3))
+ break;
+ return Intrinsic::x86_avx_hsub_pd_256; // "__builtin_ia32_hsubpd256"
+ case 's': // 1 string to match.
+ if (memcmp(BuiltinName.data()+21, "256", 3))
+ break;
+ return Intrinsic::x86_avx_hsub_ps_256; // "__builtin_ia32_hsubps256"
+ }
+ break;
+ }
+ break;
+ case 'm': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+16, "askload", 7))
+ break;
+ switch (BuiltinName[23]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::x86_avx2_maskload_d; // "__builtin_ia32_maskloadd"
+ case 'q': // 1 string to match.
+ return Intrinsic::x86_avx2_maskload_q; // "__builtin_ia32_maskloadq"
+ }
+ break;
+ case 'p': // 82 strings to match.
+ switch (BuiltinName[16]) {
+ default: break;
+ case 'a': // 4 strings to match.
+ if (memcmp(BuiltinName.data()+17, "dds", 3))
+ break;
+ switch (BuiltinName[20]) {
+ default: break;
+ case 'b': // 2 strings to match.
+ switch (BuiltinName[21]) {
+ default: break;
+ case '1': // 1 string to match.
+ if (memcmp(BuiltinName.data()+22, "28", 2))
+ break;
+ return Intrinsic::x86_sse2_padds_b; // "__builtin_ia32_paddsb128"
+ case '2': // 1 string to match.
+ if (memcmp(BuiltinName.data()+22, "56", 2))
+ break;
+ return Intrinsic::x86_avx2_padds_b; // "__builtin_ia32_paddsb256"
+ }
+ break;
+ case 'w': // 2 strings to match.
+ switch (BuiltinName[21]) {
+ default: break;
+ case '1': // 1 string to match.
+ if (memcmp(BuiltinName.data()+22, "28", 2))
+ break;
+ return Intrinsic::x86_sse2_padds_w; // "__builtin_ia32_paddsw128"
+ case '2': // 1 string to match.
+ if (memcmp(BuiltinName.data()+22, "56", 2))
+ break;
+ return Intrinsic::x86_avx2_padds_w; // "__builtin_ia32_paddsw256"
+ }
+ break;
+ }
+ break;
+ case 'e': // 1 string to match.
+ if (memcmp(BuiltinName.data()+17, "rmti256", 7))
+ break;
+ return Intrinsic::x86_avx2_vperm2i128; // "__builtin_ia32_permti256"
+ case 'h': // 8 strings to match.
+ switch (BuiltinName[17]) {
+ default: break;
+ case 'a': // 4 strings to match.
+ if (memcmp(BuiltinName.data()+18, "dd", 2))
+ break;
+ switch (BuiltinName[20]) {
+ default: break;
+ case 'd': // 2 strings to match.
+ switch (BuiltinName[21]) {
+ default: break;
+ case '1': // 1 string to match.
+ if (memcmp(BuiltinName.data()+22, "28", 2))
+ break;
+ return Intrinsic::x86_ssse3_phadd_d_128; // "__builtin_ia32_phaddd128"
+ case '2': // 1 string to match.
+ if (memcmp(BuiltinName.data()+22, "56", 2))
+ break;
+ return Intrinsic::x86_avx2_phadd_d; // "__builtin_ia32_phaddd256"
+ }
+ break;
+ case 'w': // 2 strings to match.
+ switch (BuiltinName[21]) {
+ default: break;
+ case '1': // 1 string to match.
+ if (memcmp(BuiltinName.data()+22, "28", 2))
+ break;
+ return Intrinsic::x86_ssse3_phadd_w_128; // "__builtin_ia32_phaddw128"
+ case '2': // 1 string to match.
+ if (memcmp(BuiltinName.data()+22, "56", 2))
+ break;
+ return Intrinsic::x86_avx2_phadd_w; // "__builtin_ia32_phaddw256"
+ }
+ break;
+ }
+ break;
+ case 's': // 4 strings to match.
+ if (memcmp(BuiltinName.data()+18, "ub", 2))
+ break;
+ switch (BuiltinName[20]) {
+ default: break;
+ case 'd': // 2 strings to match.
+ switch (BuiltinName[21]) {
+ default: break;
+ case '1': // 1 string to match.
+ if (memcmp(BuiltinName.data()+22, "28", 2))
+ break;
+ return Intrinsic::x86_ssse3_phsub_d_128; // "__builtin_ia32_phsubd128"
+ case '2': // 1 string to match.
+ if (memcmp(BuiltinName.data()+22, "56", 2))
+ break;
+ return Intrinsic::x86_avx2_phsub_d; // "__builtin_ia32_phsubd256"
+ }
+ break;
+ case 'w': // 2 strings to match.
+ switch (BuiltinName[21]) {
+ default: break;
+ case '1': // 1 string to match.
+ if (memcmp(BuiltinName.data()+22, "28", 2))
+ break;
+ return Intrinsic::x86_ssse3_phsub_w_128; // "__builtin_ia32_phsubw128"
+ case '2': // 1 string to match.
+ if (memcmp(BuiltinName.data()+22, "56", 2))
+ break;
+ return Intrinsic::x86_avx2_phsub_w; // "__builtin_ia32_phsubw256"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 'm': // 29 strings to match.
+ switch (BuiltinName[17]) {
+ default: break;
+ case 'a': // 13 strings to match.
+ switch (BuiltinName[18]) {
+ default: break;
+ case 'd': // 1 string to match.
+ if (memcmp(BuiltinName.data()+19, "dubsw", 5))
+ break;
+ return Intrinsic::x86_ssse3_pmadd_ub_sw; // "__builtin_ia32_pmaddubsw"
+ case 'x': // 12 strings to match.
+ switch (BuiltinName[19]) {
+ default: break;
+ case 's': // 6 strings to match.
+ switch (BuiltinName[20]) {
+ default: break;
+ case 'b': // 2 strings to match.
+ switch (BuiltinName[21]) {
+ default: break;
+ case '1': // 1 string to match.
+ if (memcmp(BuiltinName.data()+22, "28", 2))
+ break;
+ return Intrinsic::x86_sse41_pmaxsb; // "__builtin_ia32_pmaxsb128"
+ case '2': // 1 string to match.
+ if (memcmp(BuiltinName.data()+22, "56", 2))
+ break;
+ return Intrinsic::x86_avx2_pmaxs_b; // "__builtin_ia32_pmaxsb256"
+ }
+ break;
+ case 'd': // 2 strings to match.
+ switch (BuiltinName[21]) {
+ default: break;
+ case '1': // 1 string to match.
+ if (memcmp(BuiltinName.data()+22, "28", 2))
+ break;
+ return Intrinsic::x86_sse41_pmaxsd; // "__builtin_ia32_pmaxsd128"
+ case '2': // 1 string to match.
+ if (memcmp(BuiltinName.data()+22, "56", 2))
+ break;
+ return Intrinsic::x86_avx2_pmaxs_d; // "__builtin_ia32_pmaxsd256"
+ }
+ break;
+ case 'w': // 2 strings to match.
+ switch (BuiltinName[21]) {
+ default: break;
+ case '1': // 1 string to match.
+ if (memcmp(BuiltinName.data()+22, "28", 2))
+ break;
+ return Intrinsic::x86_sse2_pmaxs_w; // "__builtin_ia32_pmaxsw128"
+ case '2': // 1 string to match.
+ if (memcmp(BuiltinName.data()+22, "56", 2))
+ break;
+ return Intrinsic::x86_avx2_pmaxs_w; // "__builtin_ia32_pmaxsw256"
+ }
+ break;
+ }
+ break;
+ case 'u': // 6 strings to match.
+ switch (BuiltinName[20]) {
+ default: break;
+ case 'b': // 2 strings to match.
+ switch (BuiltinName[21]) {
+ default: break;
+ case '1': // 1 string to match.
+ if (memcmp(BuiltinName.data()+22, "28", 2))
+ break;
+ return Intrinsic::x86_sse2_pmaxu_b; // "__builtin_ia32_pmaxub128"
+ case '2': // 1 string to match.
+ if (memcmp(BuiltinName.data()+22, "56", 2))
+ break;
+ return Intrinsic::x86_avx2_pmaxu_b; // "__builtin_ia32_pmaxub256"
+ }
+ break;
+ case 'd': // 2 strings to match.
+ switch (BuiltinName[21]) {
+ default: break;
+ case '1': // 1 string to match.
+ if (memcmp(BuiltinName.data()+22, "28", 2))
+ break;
+ return Intrinsic::x86_sse41_pmaxud; // "__builtin_ia32_pmaxud128"
+ case '2': // 1 string to match.
+ if (memcmp(BuiltinName.data()+22, "56", 2))
+ break;
+ return Intrinsic::x86_avx2_pmaxu_d; // "__builtin_ia32_pmaxud256"
+ }
+ break;
+ case 'w': // 2 strings to match.
+ switch (BuiltinName[21]) {
+ default: break;
+ case '1': // 1 string to match.
+ if (memcmp(BuiltinName.data()+22, "28", 2))
+ break;
+ return Intrinsic::x86_sse41_pmaxuw; // "__builtin_ia32_pmaxuw128"
+ case '2': // 1 string to match.
+ if (memcmp(BuiltinName.data()+22, "56", 2))
+ break;
+ return Intrinsic::x86_avx2_pmaxu_w; // "__builtin_ia32_pmaxuw256"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 'i': // 12 strings to match.
+ if (BuiltinName[18] != 'n')
+ break;
+ switch (BuiltinName[19]) {
+ default: break;
+ case 's': // 6 strings to match.
+ switch (BuiltinName[20]) {
+ default: break;
+ case 'b': // 2 strings to match.
+ switch (BuiltinName[21]) {
+ default: break;
+ case '1': // 1 string to match.
+ if (memcmp(BuiltinName.data()+22, "28", 2))
+ break;
+ return Intrinsic::x86_sse41_pminsb; // "__builtin_ia32_pminsb128"
+ case '2': // 1 string to match.
+ if (memcmp(BuiltinName.data()+22, "56", 2))
+ break;
+ return Intrinsic::x86_avx2_pmins_b; // "__builtin_ia32_pminsb256"
+ }
+ break;
+ case 'd': // 2 strings to match.
+ switch (BuiltinName[21]) {
+ default: break;
+ case '1': // 1 string to match.
+ if (memcmp(BuiltinName.data()+22, "28", 2))
+ break;
+ return Intrinsic::x86_sse41_pminsd; // "__builtin_ia32_pminsd128"
+ case '2': // 1 string to match.
+ if (memcmp(BuiltinName.data()+22, "56", 2))
+ break;
+ return Intrinsic::x86_avx2_pmins_d; // "__builtin_ia32_pminsd256"
+ }
+ break;
+ case 'w': // 2 strings to match.
+ switch (BuiltinName[21]) {
+ default: break;
+ case '1': // 1 string to match.
+ if (memcmp(BuiltinName.data()+22, "28", 2))
+ break;
+ return Intrinsic::x86_sse2_pmins_w; // "__builtin_ia32_pminsw128"
+ case '2': // 1 string to match.
+ if (memcmp(BuiltinName.data()+22, "56", 2))
+ break;
+ return Intrinsic::x86_avx2_pmins_w; // "__builtin_ia32_pminsw256"
+ }
+ break;
+ }
+ break;
+ case 'u': // 6 strings to match.
+ switch (BuiltinName[20]) {
+ default: break;
+ case 'b': // 2 strings to match.
+ switch (BuiltinName[21]) {
+ default: break;
+ case '1': // 1 string to match.
+ if (memcmp(BuiltinName.data()+22, "28", 2))
+ break;
+ return Intrinsic::x86_sse2_pminu_b; // "__builtin_ia32_pminub128"
+ case '2': // 1 string to match.
+ if (memcmp(BuiltinName.data()+22, "56", 2))
+ break;
+ return Intrinsic::x86_avx2_pminu_b; // "__builtin_ia32_pminub256"
+ }
+ break;
+ case 'd': // 2 strings to match.
+ switch (BuiltinName[21]) {
+ default: break;
+ case '1': // 1 string to match.
+ if (memcmp(BuiltinName.data()+22, "28", 2))
+ break;
+ return Intrinsic::x86_sse41_pminud; // "__builtin_ia32_pminud128"
+ case '2': // 1 string to match.
+ if (memcmp(BuiltinName.data()+22, "56", 2))
+ break;
+ return Intrinsic::x86_avx2_pminu_d; // "__builtin_ia32_pminud256"
+ }
+ break;
+ case 'w': // 2 strings to match.
+ switch (BuiltinName[21]) {
+ default: break;
+ case '1': // 1 string to match.
+ if (memcmp(BuiltinName.data()+22, "28", 2))
+ break;
+ return Intrinsic::x86_sse41_pminuw; // "__builtin_ia32_pminuw128"
+ case '2': // 1 string to match.
+ if (memcmp(BuiltinName.data()+22, "56", 2))
+ break;
+ return Intrinsic::x86_avx2_pminu_w; // "__builtin_ia32_pminuw256"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 'u': // 4 strings to match.
+ if (BuiltinName[18] != 'l')
+ break;
+ switch (BuiltinName[19]) {
+ default: break;
+ case 'd': // 2 strings to match.
+ if (BuiltinName[20] != 'q')
+ break;
+ switch (BuiltinName[21]) {
+ default: break;
+ case '1': // 1 string to match.
+ if (memcmp(BuiltinName.data()+22, "28", 2))
+ break;
+ return Intrinsic::x86_sse41_pmuldq; // "__builtin_ia32_pmuldq128"
+ case '2': // 1 string to match.
+ if (memcmp(BuiltinName.data()+22, "56", 2))
+ break;
+ return Intrinsic::x86_avx2_pmul_dq; // "__builtin_ia32_pmuldq256"
+ }
+ break;
+ case 'h': // 2 strings to match.
+ if (BuiltinName[20] != 'w')
+ break;
+ switch (BuiltinName[21]) {
+ default: break;
+ case '1': // 1 string to match.
+ if (memcmp(BuiltinName.data()+22, "28", 2))
+ break;
+ return Intrinsic::x86_sse2_pmulh_w; // "__builtin_ia32_pmulhw128"
+ case '2': // 1 string to match.
+ if (memcmp(BuiltinName.data()+22, "56", 2))
+ break;
+ return Intrinsic::x86_avx2_pmulh_w; // "__builtin_ia32_pmulhw256"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 's': // 30 strings to match.
+ switch (BuiltinName[17]) {
+ default: break;
+ case 'a': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+18, "dbw", 3))
+ break;
+ switch (BuiltinName[21]) {
+ default: break;
+ case '1': // 1 string to match.
+ if (memcmp(BuiltinName.data()+22, "28", 2))
+ break;
+ return Intrinsic::x86_sse2_psad_bw; // "__builtin_ia32_psadbw128"
+ case '2': // 1 string to match.
+ if (memcmp(BuiltinName.data()+22, "56", 2))
+ break;
+ return Intrinsic::x86_avx2_psad_bw; // "__builtin_ia32_psadbw256"
+ }
+ break;
+ case 'h': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+18, "ufb", 3))
+ break;
+ switch (BuiltinName[21]) {
+ default: break;
+ case '1': // 1 string to match.
+ if (memcmp(BuiltinName.data()+22, "28", 2))
+ break;
+ return Intrinsic::x86_ssse3_pshuf_b_128; // "__builtin_ia32_pshufb128"
+ case '2': // 1 string to match.
+ if (memcmp(BuiltinName.data()+22, "56", 2))
+ break;
+ return Intrinsic::x86_avx2_pshuf_b; // "__builtin_ia32_pshufb256"
+ }
+ break;
+ case 'i': // 6 strings to match.
+ if (memcmp(BuiltinName.data()+18, "gn", 2))
+ break;
+ switch (BuiltinName[20]) {
+ default: break;
+ case 'b': // 2 strings to match.
+ switch (BuiltinName[21]) {
+ default: break;
+ case '1': // 1 string to match.
+ if (memcmp(BuiltinName.data()+22, "28", 2))
+ break;
+ return Intrinsic::x86_ssse3_psign_b_128; // "__builtin_ia32_psignb128"
+ case '2': // 1 string to match.
+ if (memcmp(BuiltinName.data()+22, "56", 2))
+ break;
+ return Intrinsic::x86_avx2_psign_b; // "__builtin_ia32_psignb256"
+ }
+ break;
+ case 'd': // 2 strings to match.
+ switch (BuiltinName[21]) {
+ default: break;
+ case '1': // 1 string to match.
+ if (memcmp(BuiltinName.data()+22, "28", 2))
+ break;
+ return Intrinsic::x86_ssse3_psign_d_128; // "__builtin_ia32_psignd128"
+ case '2': // 1 string to match.
+ if (memcmp(BuiltinName.data()+22, "56", 2))
+ break;
+ return Intrinsic::x86_avx2_psign_d; // "__builtin_ia32_psignd256"
+ }
+ break;
+ case 'w': // 2 strings to match.
+ switch (BuiltinName[21]) {
+ default: break;
+ case '1': // 1 string to match.
+ if (memcmp(BuiltinName.data()+22, "28", 2))
+ break;
+ return Intrinsic::x86_ssse3_psign_w_128; // "__builtin_ia32_psignw128"
+ case '2': // 1 string to match.
+ if (memcmp(BuiltinName.data()+22, "56", 2))
+ break;
+ return Intrinsic::x86_avx2_psign_w; // "__builtin_ia32_psignw256"
+ }
+ break;
+ }
+ break;
+ case 'l': // 6 strings to match.
+ if (BuiltinName[18] != 'l')
+ break;
+ switch (BuiltinName[19]) {
+ default: break;
+ case 'd': // 2 strings to match.
+ if (BuiltinName[20] != 'i')
+ break;
+ switch (BuiltinName[21]) {
+ default: break;
+ case '1': // 1 string to match.
+ if (memcmp(BuiltinName.data()+22, "28", 2))
+ break;
+ return Intrinsic::x86_sse2_pslli_d; // "__builtin_ia32_pslldi128"
+ case '2': // 1 string to match.
+ if (memcmp(BuiltinName.data()+22, "56", 2))
+ break;
+ return Intrinsic::x86_avx2_pslli_d; // "__builtin_ia32_pslldi256"
+ }
+ break;
+ case 'q': // 2 strings to match.
+ if (BuiltinName[20] != 'i')
+ break;
+ switch (BuiltinName[21]) {
+ default: break;
+ case '1': // 1 string to match.
+ if (memcmp(BuiltinName.data()+22, "28", 2))
+ break;
+ return Intrinsic::x86_sse2_pslli_q; // "__builtin_ia32_psllqi128"
+ case '2': // 1 string to match.
+ if (memcmp(BuiltinName.data()+22, "56", 2))
+ break;
+ return Intrinsic::x86_avx2_pslli_q; // "__builtin_ia32_psllqi256"
+ }
+ break;
+ case 'w': // 2 strings to match.
+ if (BuiltinName[20] != 'i')
+ break;
+ switch (BuiltinName[21]) {
+ default: break;
+ case '1': // 1 string to match.
+ if (memcmp(BuiltinName.data()+22, "28", 2))
+ break;
+ return Intrinsic::x86_sse2_pslli_w; // "__builtin_ia32_psllwi128"
+ case '2': // 1 string to match.
+ if (memcmp(BuiltinName.data()+22, "56", 2))
+ break;
+ return Intrinsic::x86_avx2_pslli_w; // "__builtin_ia32_psllwi256"
+ }
+ break;
+ }
+ break;
+ case 'r': // 10 strings to match.
+ switch (BuiltinName[18]) {
+ default: break;
+ case 'a': // 4 strings to match.
+ switch (BuiltinName[19]) {
+ default: break;
+ case 'd': // 2 strings to match.
+ if (BuiltinName[20] != 'i')
+ break;
+ switch (BuiltinName[21]) {
+ default: break;
+ case '1': // 1 string to match.
+ if (memcmp(BuiltinName.data()+22, "28", 2))
+ break;
+ return Intrinsic::x86_sse2_psrai_d; // "__builtin_ia32_psradi128"
+ case '2': // 1 string to match.
+ if (memcmp(BuiltinName.data()+22, "56", 2))
+ break;
+ return Intrinsic::x86_avx2_psrai_d; // "__builtin_ia32_psradi256"
+ }
+ break;
+ case 'w': // 2 strings to match.
+ if (BuiltinName[20] != 'i')
+ break;
+ switch (BuiltinName[21]) {
+ default: break;
+ case '1': // 1 string to match.
+ if (memcmp(BuiltinName.data()+22, "28", 2))
+ break;
+ return Intrinsic::x86_sse2_psrai_w; // "__builtin_ia32_psrawi128"
+ case '2': // 1 string to match.
+ if (memcmp(BuiltinName.data()+22, "56", 2))
+ break;
+ return Intrinsic::x86_avx2_psrai_w; // "__builtin_ia32_psrawi256"
+ }
+ break;
+ }
+ break;
+ case 'l': // 6 strings to match.
+ switch (BuiltinName[19]) {
+ default: break;
+ case 'd': // 2 strings to match.
+ if (BuiltinName[20] != 'i')
+ break;
+ switch (BuiltinName[21]) {
+ default: break;
+ case '1': // 1 string to match.
+ if (memcmp(BuiltinName.data()+22, "28", 2))
+ break;
+ return Intrinsic::x86_sse2_psrli_d; // "__builtin_ia32_psrldi128"
+ case '2': // 1 string to match.
+ if (memcmp(BuiltinName.data()+22, "56", 2))
+ break;
+ return Intrinsic::x86_avx2_psrli_d; // "__builtin_ia32_psrldi256"
+ }
+ break;
+ case 'q': // 2 strings to match.
+ if (BuiltinName[20] != 'i')
+ break;
+ switch (BuiltinName[21]) {
+ default: break;
+ case '1': // 1 string to match.
+ if (memcmp(BuiltinName.data()+22, "28", 2))
+ break;
+ return Intrinsic::x86_sse2_psrli_q; // "__builtin_ia32_psrlqi128"
+ case '2': // 1 string to match.
+ if (memcmp(BuiltinName.data()+22, "56", 2))
+ break;
+ return Intrinsic::x86_avx2_psrli_q; // "__builtin_ia32_psrlqi256"
+ }
+ break;
+ case 'w': // 2 strings to match.
+ if (BuiltinName[20] != 'i')
+ break;
+ switch (BuiltinName[21]) {
+ default: break;
+ case '1': // 1 string to match.
+ if (memcmp(BuiltinName.data()+22, "28", 2))
+ break;
+ return Intrinsic::x86_sse2_psrli_w; // "__builtin_ia32_psrlwi128"
+ case '2': // 1 string to match.
+ if (memcmp(BuiltinName.data()+22, "56", 2))
+ break;
+ return Intrinsic::x86_avx2_psrli_w; // "__builtin_ia32_psrlwi256"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 'u': // 4 strings to match.
+ if (memcmp(BuiltinName.data()+18, "bs", 2))
+ break;
+ switch (BuiltinName[20]) {
+ default: break;
+ case 'b': // 2 strings to match.
+ switch (BuiltinName[21]) {
+ default: break;
+ case '1': // 1 string to match.
+ if (memcmp(BuiltinName.data()+22, "28", 2))
+ break;
+ return Intrinsic::x86_sse2_psubs_b; // "__builtin_ia32_psubsb128"
+ case '2': // 1 string to match.
+ if (memcmp(BuiltinName.data()+22, "56", 2))
+ break;
+ return Intrinsic::x86_avx2_psubs_b; // "__builtin_ia32_psubsb256"
+ }
+ break;
+ case 'w': // 2 strings to match.
+ switch (BuiltinName[21]) {
+ default: break;
+ case '1': // 1 string to match.
+ if (memcmp(BuiltinName.data()+22, "28", 2))
+ break;
+ return Intrinsic::x86_sse2_psubs_w; // "__builtin_ia32_psubsw128"
+ case '2': // 1 string to match.
+ if (memcmp(BuiltinName.data()+22, "56", 2))
+ break;
+ return Intrinsic::x86_avx2_psubs_w; // "__builtin_ia32_psubsw256"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 't': // 4 strings to match.
+ if (memcmp(BuiltinName.data()+17, "est", 3))
+ break;
+ switch (BuiltinName[20]) {
+ default: break;
+ case 'c': // 2 strings to match.
+ switch (BuiltinName[21]) {
+ default: break;
+ case '1': // 1 string to match.
+ if (memcmp(BuiltinName.data()+22, "28", 2))
+ break;
+ return Intrinsic::x86_sse41_ptestc; // "__builtin_ia32_ptestc128"
+ case '2': // 1 string to match.
+ if (memcmp(BuiltinName.data()+22, "56", 2))
+ break;
+ return Intrinsic::x86_avx_ptestc_256; // "__builtin_ia32_ptestc256"
+ }
+ break;
+ case 'z': // 2 strings to match.
+ switch (BuiltinName[21]) {
+ default: break;
+ case '1': // 1 string to match.
+ if (memcmp(BuiltinName.data()+22, "28", 2))
+ break;
+ return Intrinsic::x86_sse41_ptestz; // "__builtin_ia32_ptestz128"
+ case '2': // 1 string to match.
+ if (memcmp(BuiltinName.data()+22, "56", 2))
+ break;
+ return Intrinsic::x86_avx_ptestz_256; // "__builtin_ia32_ptestz256"
+ }
+ break;
+ }
+ break;
+ case 'u': // 6 strings to match.
+ if (memcmp(BuiltinName.data()+17, "npck", 4))
+ break;
+ switch (BuiltinName[21]) {
+ default: break;
+ case 'h': // 3 strings to match.
+ switch (BuiltinName[22]) {
+ default: break;
+ case 'b': // 1 string to match.
+ if (BuiltinName[23] != 'w')
+ break;
+ return Intrinsic::x86_mmx_punpckhbw; // "__builtin_ia32_punpckhbw"
+ case 'd': // 1 string to match.
+ if (BuiltinName[23] != 'q')
+ break;
+ return Intrinsic::x86_mmx_punpckhdq; // "__builtin_ia32_punpckhdq"
+ case 'w': // 1 string to match.
+ if (BuiltinName[23] != 'd')
+ break;
+ return Intrinsic::x86_mmx_punpckhwd; // "__builtin_ia32_punpckhwd"
+ }
+ break;
+ case 'l': // 3 strings to match.
+ switch (BuiltinName[22]) {
+ default: break;
+ case 'b': // 1 string to match.
+ if (BuiltinName[23] != 'w')
+ break;
+ return Intrinsic::x86_mmx_punpcklbw; // "__builtin_ia32_punpcklbw"
+ case 'd': // 1 string to match.
+ if (BuiltinName[23] != 'q')
+ break;
+ return Intrinsic::x86_mmx_punpckldq; // "__builtin_ia32_punpckldq"
+ case 'w': // 1 string to match.
+ if (BuiltinName[23] != 'd')
+ break;
+ return Intrinsic::x86_mmx_punpcklwd; // "__builtin_ia32_punpcklwd"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 's': // 8 strings to match.
+ switch (BuiltinName[16]) {
+ default: break;
+ case 'h': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+17, "a1", 2))
+ break;
+ switch (BuiltinName[19]) {
+ default: break;
+ case 'n': // 1 string to match.
+ if (memcmp(BuiltinName.data()+20, "exte", 4))
+ break;
+ return Intrinsic::x86_sha1nexte; // "__builtin_ia32_sha1nexte"
+ case 'r': // 1 string to match.
+ if (memcmp(BuiltinName.data()+20, "nds4", 4))
+ break;
+ return Intrinsic::x86_sha1rnds4; // "__builtin_ia32_sha1rnds4"
+ }
+ break;
+ case 'q': // 6 strings to match.
+ if (memcmp(BuiltinName.data()+17, "rt", 2))
+ break;
+ switch (BuiltinName[19]) {
+ default: break;
+ case 'p': // 4 strings to match.
+ switch (BuiltinName[20]) {
+ default: break;
+ case 'd': // 2 strings to match.
+ switch (BuiltinName[21]) {
+ default: break;
+ case '2': // 1 string to match.
+ if (memcmp(BuiltinName.data()+22, "56", 2))
+ break;
+ return Intrinsic::x86_avx_sqrt_pd_256; // "__builtin_ia32_sqrtpd256"
+ case '5': // 1 string to match.
+ if (memcmp(BuiltinName.data()+22, "12", 2))
+ break;
+ return Intrinsic::x86_avx512_sqrt_pd_512; // "__builtin_ia32_sqrtpd512"
+ }
+ break;
+ case 's': // 2 strings to match.
+ switch (BuiltinName[21]) {
+ default: break;
+ case '2': // 1 string to match.
+ if (memcmp(BuiltinName.data()+22, "56", 2))
+ break;
+ return Intrinsic::x86_avx_sqrt_ps_256; // "__builtin_ia32_sqrtps256"
+ case '5': // 1 string to match.
+ if (memcmp(BuiltinName.data()+22, "12", 2))
+ break;
+ return Intrinsic::x86_avx512_sqrt_ps_512; // "__builtin_ia32_sqrtps512"
+ }
+ break;
+ }
+ break;
+ case 'r': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+20, "nds", 3))
+ break;
+ switch (BuiltinName[23]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::x86_avx512_sqrt_sd; // "__builtin_ia32_sqrtrndsd"
+ case 's': // 1 string to match.
+ return Intrinsic::x86_avx512_sqrt_ss; // "__builtin_ia32_sqrtrndss"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 'u': // 5 strings to match.
+ if (memcmp(BuiltinName.data()+16, "comisd", 6))
+ break;
+ switch (BuiltinName[22]) {
+ default: break;
+ case 'e': // 1 string to match.
+ if (BuiltinName[23] != 'q')
+ break;
+ return Intrinsic::x86_sse2_ucomieq_sd; // "__builtin_ia32_ucomisdeq"
+ case 'g': // 2 strings to match.
+ switch (BuiltinName[23]) {
+ default: break;
+ case 'e': // 1 string to match.
+ return Intrinsic::x86_sse2_ucomige_sd; // "__builtin_ia32_ucomisdge"
+ case 't': // 1 string to match.
+ return Intrinsic::x86_sse2_ucomigt_sd; // "__builtin_ia32_ucomisdgt"
+ }
+ break;
+ case 'l': // 2 strings to match.
+ switch (BuiltinName[23]) {
+ default: break;
+ case 'e': // 1 string to match.
+ return Intrinsic::x86_sse2_ucomile_sd; // "__builtin_ia32_ucomisdle"
+ case 't': // 1 string to match.
+ return Intrinsic::x86_sse2_ucomilt_sd; // "__builtin_ia32_ucomisdlt"
+ }
+ break;
+ }
+ break;
+ case 'v': // 10 strings to match.
+ switch (BuiltinName[16]) {
+ default: break;
+ case 'c': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+17, "vtp", 3))
+ break;
+ switch (BuiltinName[20]) {
+ default: break;
+ case 'h': // 1 string to match.
+ if (memcmp(BuiltinName.data()+21, "2ps", 3))
+ break;
+ return Intrinsic::x86_vcvtph2ps_128; // "__builtin_ia32_vcvtph2ps"
+ case 's': // 1 string to match.
+ if (memcmp(BuiltinName.data()+21, "2ph", 3))
+ break;
+ return Intrinsic::x86_vcvtps2ph_128; // "__builtin_ia32_vcvtps2ph"
+ }
+ break;
+ case 'f': // 8 strings to match.
+ if (memcmp(BuiltinName.data()+17, "nm", 2))
+ break;
+ switch (BuiltinName[19]) {
+ default: break;
+ case 'a': // 4 strings to match.
+ if (memcmp(BuiltinName.data()+20, "dd", 2))
+ break;
+ switch (BuiltinName[22]) {
+ default: break;
+ case 'p': // 2 strings to match.
+ switch (BuiltinName[23]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::x86_fma_vfnmadd_pd; // "__builtin_ia32_vfnmaddpd"
+ case 's': // 1 string to match.
+ return Intrinsic::x86_fma_vfnmadd_ps; // "__builtin_ia32_vfnmaddps"
+ }
+ break;
+ case 's': // 2 strings to match.
+ switch (BuiltinName[23]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::x86_fma_vfnmadd_sd; // "__builtin_ia32_vfnmaddsd"
+ case 's': // 1 string to match.
+ return Intrinsic::x86_fma_vfnmadd_ss; // "__builtin_ia32_vfnmaddss"
+ }
+ break;
+ }
+ break;
+ case 's': // 4 strings to match.
+ if (memcmp(BuiltinName.data()+20, "ub", 2))
+ break;
+ switch (BuiltinName[22]) {
+ default: break;
+ case 'p': // 2 strings to match.
+ switch (BuiltinName[23]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::x86_fma_vfnmsub_pd; // "__builtin_ia32_vfnmsubpd"
+ case 's': // 1 string to match.
+ return Intrinsic::x86_fma_vfnmsub_ps; // "__builtin_ia32_vfnmsubps"
+ }
+ break;
+ case 's': // 2 strings to match.
+ switch (BuiltinName[23]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::x86_fma_vfnmsub_sd; // "__builtin_ia32_vfnmsubsd"
+ case 's': // 1 string to match.
+ return Intrinsic::x86_fma_vfnmsub_ss; // "__builtin_ia32_vfnmsubss"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 25: // 73 strings to match.
+ if (memcmp(BuiltinName.data()+0, "__builtin_ia32_", 15))
+ break;
+ switch (BuiltinName[15]) {
+ default: break;
+ case 'b': // 4 strings to match.
+ switch (BuiltinName[16]) {
+ default: break;
+ case 'e': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+17, "xtri_u", 6))
+ break;
+ switch (BuiltinName[23]) {
+ default: break;
+ case '3': // 1 string to match.
+ if (BuiltinName[24] != '2')
+ break;
+ return Intrinsic::x86_tbm_bextri_u32; // "__builtin_ia32_bextri_u32"
+ case '6': // 1 string to match.
+ if (BuiltinName[24] != '4')
+ break;
+ return Intrinsic::x86_tbm_bextri_u64; // "__builtin_ia32_bextri_u64"
+ }
+ break;
+ case 'l': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+17, "endp", 4))
+ break;
+ switch (BuiltinName[21]) {
+ default: break;
+ case 'd': // 1 string to match.
+ if (memcmp(BuiltinName.data()+22, "256", 3))
+ break;
+ return Intrinsic::x86_avx_blend_pd_256; // "__builtin_ia32_blendpd256"
+ case 's': // 1 string to match.
+ if (memcmp(BuiltinName.data()+22, "256", 3))
+ break;
+ return Intrinsic::x86_avx_blend_ps_256; // "__builtin_ia32_blendps256"
+ }
+ break;
+ }
+ break;
+ case 'c': // 6 strings to match.
+ if (memcmp(BuiltinName.data()+16, "vt", 2))
+ break;
+ switch (BuiltinName[18]) {
+ default: break;
+ case 's': // 4 strings to match.
+ switch (BuiltinName[19]) {
+ default: break;
+ case 'd': // 1 string to match.
+ if (memcmp(BuiltinName.data()+20, "2si64", 5))
+ break;
+ return Intrinsic::x86_sse2_cvtsd2si64; // "__builtin_ia32_cvtsd2si64"
+ case 'i': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+20, "642s", 4))
+ break;
+ switch (BuiltinName[24]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::x86_sse2_cvtsi642sd; // "__builtin_ia32_cvtsi642sd"
+ case 's': // 1 string to match.
+ return Intrinsic::x86_sse_cvtsi642ss; // "__builtin_ia32_cvtsi642ss"
+ }
+ break;
+ case 's': // 1 string to match.
+ if (memcmp(BuiltinName.data()+20, "2si64", 5))
+ break;
+ return Intrinsic::x86_sse_cvtss2si64; // "__builtin_ia32_cvtss2si64"
+ }
+ break;
+ case 't': // 2 strings to match.
+ if (BuiltinName[19] != 's')
+ break;
+ switch (BuiltinName[20]) {
+ default: break;
+ case 'd': // 1 string to match.
+ if (memcmp(BuiltinName.data()+21, "2usi", 4))
+ break;
+ return Intrinsic::x86_avx512_cvttsd2usi; // "__builtin_ia32_cvttsd2usi"
+ case 's': // 1 string to match.
+ if (memcmp(BuiltinName.data()+21, "2usi", 4))
+ break;
+ return Intrinsic::x86_avx512_cvttss2usi; // "__builtin_ia32_cvttss2usi"
+ }
+ break;
+ }
+ break;
+ case 'g': // 4 strings to match.
+ if (memcmp(BuiltinName.data()+16, "ather", 5))
+ break;
+ switch (BuiltinName[21]) {
+ default: break;
+ case 'd': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+22, "_p", 2))
+ break;
+ switch (BuiltinName[24]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::x86_avx2_gather_d_pd; // "__builtin_ia32_gatherd_pd"
+ case 's': // 1 string to match.
+ return Intrinsic::x86_avx2_gather_d_ps; // "__builtin_ia32_gatherd_ps"
+ }
+ break;
+ case 'q': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+22, "_p", 2))
+ break;
+ switch (BuiltinName[24]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::x86_avx2_gather_q_pd; // "__builtin_ia32_gatherq_pd"
+ case 's': // 1 string to match.
+ return Intrinsic::x86_avx2_gather_q_ps; // "__builtin_ia32_gatherq_ps"
+ }
+ break;
+ }
+ break;
+ case 'k': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+16, "ortest", 6))
+ break;
+ switch (BuiltinName[22]) {
+ default: break;
+ case 'c': // 1 string to match.
+ if (memcmp(BuiltinName.data()+23, "hi", 2))
+ break;
+ return Intrinsic::x86_avx512_kortestc_w; // "__builtin_ia32_kortestchi"
+ case 'z': // 1 string to match.
+ if (memcmp(BuiltinName.data()+23, "hi", 2))
+ break;
+ return Intrinsic::x86_avx512_kortestz_w; // "__builtin_ia32_kortestzhi"
+ }
+ break;
+ case 'm': // 7 strings to match.
+ switch (BuiltinName[16]) {
+ default: break;
+ case 'a': // 5 strings to match.
+ if (memcmp(BuiltinName.data()+17, "sk", 2))
+ break;
+ switch (BuiltinName[19]) {
+ default: break;
+ case 'l': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+20, "oadp", 4))
+ break;
+ switch (BuiltinName[24]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::x86_avx_maskload_pd; // "__builtin_ia32_maskloadpd"
+ case 's': // 1 string to match.
+ return Intrinsic::x86_avx_maskload_ps; // "__builtin_ia32_maskloadps"
+ }
+ break;
+ case 'm': // 1 string to match.
+ if (memcmp(BuiltinName.data()+20, "ovdqu", 5))
+ break;
+ return Intrinsic::x86_sse2_maskmov_dqu; // "__builtin_ia32_maskmovdqu"
+ case 's': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+20, "tore", 4))
+ break;
+ switch (BuiltinName[24]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::x86_avx2_maskstore_d; // "__builtin_ia32_maskstored"
+ case 'q': // 1 string to match.
+ return Intrinsic::x86_avx2_maskstore_q; // "__builtin_ia32_maskstoreq"
+ }
+ break;
+ }
+ break;
+ case 'p': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+17, "sadbw", 5))
+ break;
+ switch (BuiltinName[22]) {
+ default: break;
+ case '1': // 1 string to match.
+ if (memcmp(BuiltinName.data()+23, "28", 2))
+ break;
+ return Intrinsic::x86_sse41_mpsadbw; // "__builtin_ia32_mpsadbw128"
+ case '2': // 1 string to match.
+ if (memcmp(BuiltinName.data()+23, "56", 2))
+ break;
+ return Intrinsic::x86_avx2_mpsadbw; // "__builtin_ia32_mpsadbw256"
+ }
+ break;
+ }
+ break;
+ case 'p': // 30 strings to match.
+ switch (BuiltinName[16]) {
+ default: break;
+ case 'a': // 4 strings to match.
+ if (memcmp(BuiltinName.data()+17, "ddus", 4))
+ break;
+ switch (BuiltinName[21]) {
+ default: break;
+ case 'b': // 2 strings to match.
+ switch (BuiltinName[22]) {
+ default: break;
+ case '1': // 1 string to match.
+ if (memcmp(BuiltinName.data()+23, "28", 2))
+ break;
+ return Intrinsic::x86_sse2_paddus_b; // "__builtin_ia32_paddusb128"
+ case '2': // 1 string to match.
+ if (memcmp(BuiltinName.data()+23, "56", 2))
+ break;
+ return Intrinsic::x86_avx2_paddus_b; // "__builtin_ia32_paddusb256"
+ }
+ break;
+ case 'w': // 2 strings to match.
+ switch (BuiltinName[22]) {
+ default: break;
+ case '1': // 1 string to match.
+ if (memcmp(BuiltinName.data()+23, "28", 2))
+ break;
+ return Intrinsic::x86_sse2_paddus_w; // "__builtin_ia32_paddusw128"
+ case '2': // 1 string to match.
+ if (memcmp(BuiltinName.data()+23, "56", 2))
+ break;
+ return Intrinsic::x86_avx2_paddus_w; // "__builtin_ia32_paddusw256"
+ }
+ break;
+ }
+ break;
+ case 'b': // 4 strings to match.
+ if (memcmp(BuiltinName.data()+17, "lend", 4))
+ break;
+ switch (BuiltinName[21]) {
+ default: break;
+ case 'd': // 2 strings to match.
+ switch (BuiltinName[22]) {
+ default: break;
+ case '1': // 1 string to match.
+ if (memcmp(BuiltinName.data()+23, "28", 2))
+ break;
+ return Intrinsic::x86_avx2_pblendd_128; // "__builtin_ia32_pblendd128"
+ case '2': // 1 string to match.
+ if (memcmp(BuiltinName.data()+23, "56", 2))
+ break;
+ return Intrinsic::x86_avx2_pblendd_256; // "__builtin_ia32_pblendd256"
+ }
+ break;
+ case 'w': // 2 strings to match.
+ switch (BuiltinName[22]) {
+ default: break;
+ case '1': // 1 string to match.
+ if (memcmp(BuiltinName.data()+23, "28", 2))
+ break;
+ return Intrinsic::x86_sse41_pblendw; // "__builtin_ia32_pblendw128"
+ case '2': // 1 string to match.
+ if (memcmp(BuiltinName.data()+23, "56", 2))
+ break;
+ return Intrinsic::x86_avx2_pblendw; // "__builtin_ia32_pblendw256"
+ }
+ break;
+ }
+ break;
+ case 'h': // 4 strings to match.
+ switch (BuiltinName[17]) {
+ default: break;
+ case 'a': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+18, "ddsw", 4))
+ break;
+ switch (BuiltinName[22]) {
+ default: break;
+ case '1': // 1 string to match.
+ if (memcmp(BuiltinName.data()+23, "28", 2))
+ break;
+ return Intrinsic::x86_ssse3_phadd_sw_128; // "__builtin_ia32_phaddsw128"
+ case '2': // 1 string to match.
+ if (memcmp(BuiltinName.data()+23, "56", 2))
+ break;
+ return Intrinsic::x86_avx2_phadd_sw; // "__builtin_ia32_phaddsw256"
+ }
+ break;
+ case 's': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+18, "ubsw", 4))
+ break;
+ switch (BuiltinName[22]) {
+ default: break;
+ case '1': // 1 string to match.
+ if (memcmp(BuiltinName.data()+23, "28", 2))
+ break;
+ return Intrinsic::x86_ssse3_phsub_sw_128; // "__builtin_ia32_phsubsw128"
+ case '2': // 1 string to match.
+ if (memcmp(BuiltinName.data()+23, "56", 2))
+ break;
+ return Intrinsic::x86_avx2_phsub_sw; // "__builtin_ia32_phsubsw256"
+ }
+ break;
+ }
+ break;
+ case 'm': // 6 strings to match.
+ switch (BuiltinName[17]) {
+ default: break;
+ case 'a': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+18, "ddwd", 4))
+ break;
+ switch (BuiltinName[22]) {
+ default: break;
+ case '1': // 1 string to match.
+ if (memcmp(BuiltinName.data()+23, "28", 2))
+ break;
+ return Intrinsic::x86_sse2_pmadd_wd; // "__builtin_ia32_pmaddwd128"
+ case '2': // 1 string to match.
+ if (memcmp(BuiltinName.data()+23, "56", 2))
+ break;
+ return Intrinsic::x86_avx2_pmadd_wd; // "__builtin_ia32_pmaddwd256"
+ }
+ break;
+ case 'u': // 4 strings to match.
+ if (BuiltinName[18] != 'l')
+ break;
+ switch (BuiltinName[19]) {
+ default: break;
+ case 'h': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+20, "uw", 2))
+ break;
+ switch (BuiltinName[22]) {
+ default: break;
+ case '1': // 1 string to match.
+ if (memcmp(BuiltinName.data()+23, "28", 2))
+ break;
+ return Intrinsic::x86_sse2_pmulhu_w; // "__builtin_ia32_pmulhuw128"
+ case '2': // 1 string to match.
+ if (memcmp(BuiltinName.data()+23, "56", 2))
+ break;
+ return Intrinsic::x86_avx2_pmulhu_w; // "__builtin_ia32_pmulhuw256"
+ }
+ break;
+ case 'u': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+20, "dq", 2))
+ break;
+ switch (BuiltinName[22]) {
+ default: break;
+ case '1': // 1 string to match.
+ if (memcmp(BuiltinName.data()+23, "28", 2))
+ break;
+ return Intrinsic::x86_sse2_pmulu_dq; // "__builtin_ia32_pmuludq128"
+ case '2': // 1 string to match.
+ if (memcmp(BuiltinName.data()+23, "56", 2))
+ break;
+ return Intrinsic::x86_avx2_pmulu_dq; // "__builtin_ia32_pmuludq256"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 's': // 10 strings to match.
+ switch (BuiltinName[17]) {
+ default: break;
+ case 'l': // 3 strings to match.
+ if (memcmp(BuiltinName.data()+18, "ldqi", 4))
+ break;
+ switch (BuiltinName[22]) {
+ default: break;
+ case '1': // 1 string to match.
+ if (memcmp(BuiltinName.data()+23, "28", 2))
+ break;
+ return Intrinsic::x86_sse2_psll_dq; // "__builtin_ia32_pslldqi128"
+ case '2': // 1 string to match.
+ if (memcmp(BuiltinName.data()+23, "56", 2))
+ break;
+ return Intrinsic::x86_avx2_psll_dq; // "__builtin_ia32_pslldqi256"
+ case '5': // 1 string to match.
+ if (memcmp(BuiltinName.data()+23, "12", 2))
+ break;
+ return Intrinsic::x86_avx512_psll_dq; // "__builtin_ia32_pslldqi512"
+ }
+ break;
+ case 'r': // 3 strings to match.
+ if (memcmp(BuiltinName.data()+18, "ldqi", 4))
+ break;
+ switch (BuiltinName[22]) {
+ default: break;
+ case '1': // 1 string to match.
+ if (memcmp(BuiltinName.data()+23, "28", 2))
+ break;
+ return Intrinsic::x86_sse2_psrl_dq; // "__builtin_ia32_psrldqi128"
+ case '2': // 1 string to match.
+ if (memcmp(BuiltinName.data()+23, "56", 2))
+ break;
+ return Intrinsic::x86_avx2_psrl_dq; // "__builtin_ia32_psrldqi256"
+ case '5': // 1 string to match.
+ if (memcmp(BuiltinName.data()+23, "12", 2))
+ break;
+ return Intrinsic::x86_avx512_psrl_dq; // "__builtin_ia32_psrldqi512"
+ }
+ break;
+ case 'u': // 4 strings to match.
+ if (memcmp(BuiltinName.data()+18, "bus", 3))
+ break;
+ switch (BuiltinName[21]) {
+ default: break;
+ case 'b': // 2 strings to match.
+ switch (BuiltinName[22]) {
+ default: break;
+ case '1': // 1 string to match.
+ if (memcmp(BuiltinName.data()+23, "28", 2))
+ break;
+ return Intrinsic::x86_sse2_psubus_b; // "__builtin_ia32_psubusb128"
+ case '2': // 1 string to match.
+ if (memcmp(BuiltinName.data()+23, "56", 2))
+ break;
+ return Intrinsic::x86_avx2_psubus_b; // "__builtin_ia32_psubusb256"
+ }
+ break;
+ case 'w': // 2 strings to match.
+ switch (BuiltinName[22]) {
+ default: break;
+ case '1': // 1 string to match.
+ if (memcmp(BuiltinName.data()+23, "28", 2))
+ break;
+ return Intrinsic::x86_sse2_psubus_w; // "__builtin_ia32_psubusw128"
+ case '2': // 1 string to match.
+ if (memcmp(BuiltinName.data()+23, "56", 2))
+ break;
+ return Intrinsic::x86_avx2_psubus_w; // "__builtin_ia32_psubusw256"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 't': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+17, "estm", 4))
+ break;
+ switch (BuiltinName[21]) {
+ default: break;
+ case 'd': // 1 string to match.
+ if (memcmp(BuiltinName.data()+22, "512", 3))
+ break;
+ return Intrinsic::x86_avx512_mask_ptestm_d_512; // "__builtin_ia32_ptestmd512"
+ case 'q': // 1 string to match.
+ if (memcmp(BuiltinName.data()+22, "512", 3))
+ break;
+ return Intrinsic::x86_avx512_mask_ptestm_q_512; // "__builtin_ia32_ptestmq512"
+ }
+ break;
+ }
+ break;
+ case 'r': // 9 strings to match.
+ switch (BuiltinName[16]) {
+ default: break;
+ case 'd': // 4 strings to match.
+ switch (BuiltinName[17]) {
+ default: break;
+ case 'f': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+18, "sbase", 5))
+ break;
+ switch (BuiltinName[23]) {
+ default: break;
+ case '3': // 1 string to match.
+ if (BuiltinName[24] != '2')
+ break;
+ return Intrinsic::x86_rdfsbase_32; // "__builtin_ia32_rdfsbase32"
+ case '6': // 1 string to match.
+ if (BuiltinName[24] != '4')
+ break;
+ return Intrinsic::x86_rdfsbase_64; // "__builtin_ia32_rdfsbase64"
+ }
+ break;
+ case 'g': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+18, "sbase", 5))
+ break;
+ switch (BuiltinName[23]) {
+ default: break;
+ case '3': // 1 string to match.
+ if (BuiltinName[24] != '2')
+ break;
+ return Intrinsic::x86_rdgsbase_32; // "__builtin_ia32_rdgsbase32"
+ case '6': // 1 string to match.
+ if (BuiltinName[24] != '4')
+ break;
+ return Intrinsic::x86_rdgsbase_64; // "__builtin_ia32_rdgsbase64"
+ }
+ break;
+ }
+ break;
+ case 'n': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+17, "dscales", 7))
+ break;
+ switch (BuiltinName[24]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::x86_avx512_rndscale_sd; // "__builtin_ia32_rndscalesd"
+ case 's': // 1 string to match.
+ return Intrinsic::x86_avx512_rndscale_ss; // "__builtin_ia32_rndscaless"
+ }
+ break;
+ case 'o': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+17, "undp", 4))
+ break;
+ switch (BuiltinName[21]) {
+ default: break;
+ case 'd': // 1 string to match.
+ if (memcmp(BuiltinName.data()+22, "256", 3))
+ break;
+ return Intrinsic::x86_avx_round_pd_256; // "__builtin_ia32_roundpd256"
+ case 's': // 1 string to match.
+ if (memcmp(BuiltinName.data()+22, "256", 3))
+ break;
+ return Intrinsic::x86_avx_round_ps_256; // "__builtin_ia32_roundps256"
+ }
+ break;
+ case 's': // 1 string to match.
+ if (memcmp(BuiltinName.data()+17, "qrtps256", 8))
+ break;
+ return Intrinsic::x86_avx_rsqrt_ps_256; // "__builtin_ia32_rsqrtps256"
+ }
+ break;
+ case 's': // 3 strings to match.
+ switch (BuiltinName[16]) {
+ default: break;
+ case 'h': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+17, "a256msg", 7))
+ break;
+ switch (BuiltinName[24]) {
+ default: break;
+ case '1': // 1 string to match.
+ return Intrinsic::x86_sha256msg1; // "__builtin_ia32_sha256msg1"
+ case '2': // 1 string to match.
+ return Intrinsic::x86_sha256msg2; // "__builtin_ia32_sha256msg2"
+ }
+ break;
+ case 't': // 1 string to match.
+ if (memcmp(BuiltinName.data()+17, "orelv4si", 8))
+ break;
+ return Intrinsic::x86_sse2_storel_dq; // "__builtin_ia32_storelv4si"
+ }
+ break;
+ case 'u': // 1 string to match.
+ if (memcmp(BuiltinName.data()+16, "comisdneq", 9))
+ break;
+ return Intrinsic::x86_sse2_ucomineq_sd; // "__builtin_ia32_ucomisdneq"
+ case 'v': // 3 strings to match.
+ switch (BuiltinName[16]) {
+ default: break;
+ case 't': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+17, "estnzcp", 7))
+ break;
+ switch (BuiltinName[24]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::x86_avx_vtestnzc_pd; // "__builtin_ia32_vtestnzcpd"
+ case 's': // 1 string to match.
+ return Intrinsic::x86_avx_vtestnzc_ps; // "__builtin_ia32_vtestnzcps"
+ }
+ break;
+ case 'z': // 1 string to match.
+ if (memcmp(BuiltinName.data()+17, "eroupper", 8))
+ break;
+ return Intrinsic::x86_avx_vzeroupper; // "__builtin_ia32_vzeroupper"
+ }
+ break;
+ case 'w': // 4 strings to match.
+ if (BuiltinName[16] != 'r')
+ break;
+ switch (BuiltinName[17]) {
+ default: break;
+ case 'f': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+18, "sbase", 5))
+ break;
+ switch (BuiltinName[23]) {
+ default: break;
+ case '3': // 1 string to match.
+ if (BuiltinName[24] != '2')
+ break;
+ return Intrinsic::x86_wrfsbase_32; // "__builtin_ia32_wrfsbase32"
+ case '6': // 1 string to match.
+ if (BuiltinName[24] != '4')
+ break;
+ return Intrinsic::x86_wrfsbase_64; // "__builtin_ia32_wrfsbase64"
+ }
+ break;
+ case 'g': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+18, "sbase", 5))
+ break;
+ switch (BuiltinName[23]) {
+ default: break;
+ case '3': // 1 string to match.
+ if (BuiltinName[24] != '2')
+ break;
+ return Intrinsic::x86_wrgsbase_32; // "__builtin_ia32_wrgsbase32"
+ case '6': // 1 string to match.
+ if (BuiltinName[24] != '4')
+ break;
+ return Intrinsic::x86_wrgsbase_64; // "__builtin_ia32_wrgsbase64"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 26: // 92 strings to match.
+ if (memcmp(BuiltinName.data()+0, "__builtin_ia32_", 15))
+ break;
+ switch (BuiltinName[15]) {
+ default: break;
+ case 'a': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+16, "ddsubp", 6))
+ break;
+ switch (BuiltinName[22]) {
+ default: break;
+ case 'd': // 1 string to match.
+ if (memcmp(BuiltinName.data()+23, "256", 3))
+ break;
+ return Intrinsic::x86_avx_addsub_pd_256; // "__builtin_ia32_addsubpd256"
+ case 's': // 1 string to match.
+ if (memcmp(BuiltinName.data()+23, "256", 3))
+ break;
+ return Intrinsic::x86_avx_addsub_ps_256; // "__builtin_ia32_addsubps256"
+ }
+ break;
+ case 'b': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+16, "lendvp", 6))
+ break;
+ switch (BuiltinName[22]) {
+ default: break;
+ case 'd': // 1 string to match.
+ if (memcmp(BuiltinName.data()+23, "256", 3))
+ break;
+ return Intrinsic::x86_avx_blendv_pd_256; // "__builtin_ia32_blendvpd256"
+ case 's': // 1 string to match.
+ if (memcmp(BuiltinName.data()+23, "256", 3))
+ break;
+ return Intrinsic::x86_avx_blendv_ps_256; // "__builtin_ia32_blendvps256"
+ }
+ break;
+ case 'c': // 12 strings to match.
+ if (memcmp(BuiltinName.data()+16, "vt", 2))
+ break;
+ switch (BuiltinName[18]) {
+ default: break;
+ case 'd': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+19, "q2p", 3))
+ break;
+ switch (BuiltinName[22]) {
+ default: break;
+ case 'd': // 1 string to match.
+ if (memcmp(BuiltinName.data()+23, "256", 3))
+ break;
+ return Intrinsic::x86_avx_cvtdq2_pd_256; // "__builtin_ia32_cvtdq2pd256"
+ case 's': // 1 string to match.
+ if (memcmp(BuiltinName.data()+23, "256", 3))
+ break;
+ return Intrinsic::x86_avx_cvtdq2_ps_256; // "__builtin_ia32_cvtdq2ps256"
+ }
+ break;
+ case 'p': // 4 strings to match.
+ switch (BuiltinName[19]) {
+ default: break;
+ case 'd': // 2 strings to match.
+ if (BuiltinName[20] != '2')
+ break;
+ switch (BuiltinName[21]) {
+ default: break;
+ case 'd': // 1 string to match.
+ if (memcmp(BuiltinName.data()+22, "q256", 4))
+ break;
+ return Intrinsic::x86_avx_cvt_pd2dq_256; // "__builtin_ia32_cvtpd2dq256"
+ case 'p': // 1 string to match.
+ if (memcmp(BuiltinName.data()+22, "s256", 4))
+ break;
+ return Intrinsic::x86_avx_cvt_pd2_ps_256; // "__builtin_ia32_cvtpd2ps256"
+ }
+ break;
+ case 's': // 2 strings to match.
+ if (BuiltinName[20] != '2')
+ break;
+ switch (BuiltinName[21]) {
+ default: break;
+ case 'd': // 1 string to match.
+ if (memcmp(BuiltinName.data()+22, "q256", 4))
+ break;
+ return Intrinsic::x86_avx_cvt_ps2dq_256; // "__builtin_ia32_cvtps2dq256"
+ case 'p': // 1 string to match.
+ if (memcmp(BuiltinName.data()+22, "d256", 4))
+ break;
+ return Intrinsic::x86_avx_cvt_ps2_pd_256; // "__builtin_ia32_cvtps2pd256"
+ }
+ break;
+ }
+ break;
+ case 's': // 2 strings to match.
+ switch (BuiltinName[19]) {
+ default: break;
+ case 'd': // 1 string to match.
+ if (memcmp(BuiltinName.data()+20, "2usi64", 6))
+ break;
+ return Intrinsic::x86_avx512_cvtsd2usi64; // "__builtin_ia32_cvtsd2usi64"
+ case 's': // 1 string to match.
+ if (memcmp(BuiltinName.data()+20, "2usi64", 6))
+ break;
+ return Intrinsic::x86_avx512_cvtss2usi64; // "__builtin_ia32_cvtss2usi64"
+ }
+ break;
+ case 't': // 2 strings to match.
+ if (BuiltinName[19] != 's')
+ break;
+ switch (BuiltinName[20]) {
+ default: break;
+ case 'd': // 1 string to match.
+ if (memcmp(BuiltinName.data()+21, "2si64", 5))
+ break;
+ return Intrinsic::x86_sse2_cvttsd2si64; // "__builtin_ia32_cvttsd2si64"
+ case 's': // 1 string to match.
+ if (memcmp(BuiltinName.data()+21, "2si64", 5))
+ break;
+ return Intrinsic::x86_sse_cvttss2si64; // "__builtin_ia32_cvttss2si64"
+ }
+ break;
+ case 'u': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+19, "si642s", 6))
+ break;
+ switch (BuiltinName[25]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::x86_avx512_cvtusi642sd; // "__builtin_ia32_cvtusi642sd"
+ case 's': // 1 string to match.
+ return Intrinsic::x86_avx512_cvtusi642ss; // "__builtin_ia32_cvtusi642ss"
+ }
+ break;
+ }
+ break;
+ case 'g': // 4 strings to match.
+ if (memcmp(BuiltinName.data()+16, "atherpf", 7))
+ break;
+ switch (BuiltinName[23]) {
+ default: break;
+ case 'd': // 2 strings to match.
+ if (BuiltinName[24] != 'p')
+ break;
+ switch (BuiltinName[25]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::x86_avx512_gatherpf_dpd_512; // "__builtin_ia32_gatherpfdpd"
+ case 's': // 1 string to match.
+ return Intrinsic::x86_avx512_gatherpf_dps_512; // "__builtin_ia32_gatherpfdps"
+ }
+ break;
+ case 'q': // 2 strings to match.
+ if (BuiltinName[24] != 'p')
+ break;
+ switch (BuiltinName[25]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::x86_avx512_gatherpf_qpd_512; // "__builtin_ia32_gatherpfqpd"
+ case 's': // 1 string to match.
+ return Intrinsic::x86_avx512_gatherpf_qps_512; // "__builtin_ia32_gatherpfqps"
+ }
+ break;
+ }
+ break;
+ case 'i': // 1 string to match.
+ if (memcmp(BuiltinName.data()+16, "nsertps128", 10))
+ break;
+ return Intrinsic::x86_sse41_insertps; // "__builtin_ia32_insertps128"
+ case 'm': // 6 strings to match.
+ switch (BuiltinName[16]) {
+ default: break;
+ case 'a': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+17, "skstorep", 8))
+ break;
+ switch (BuiltinName[25]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::x86_avx_maskstore_pd; // "__builtin_ia32_maskstorepd"
+ case 's': // 1 string to match.
+ return Intrinsic::x86_avx_maskstore_ps; // "__builtin_ia32_maskstoreps"
+ }
+ break;
+ case 'o': // 4 strings to match.
+ if (BuiltinName[17] != 'v')
+ break;
+ switch (BuiltinName[18]) {
+ default: break;
+ case 'm': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+19, "skp", 3))
+ break;
+ switch (BuiltinName[22]) {
+ default: break;
+ case 'd': // 1 string to match.
+ if (memcmp(BuiltinName.data()+23, "256", 3))
+ break;
+ return Intrinsic::x86_avx_movmsk_pd_256; // "__builtin_ia32_movmskpd256"
+ case 's': // 1 string to match.
+ if (memcmp(BuiltinName.data()+23, "256", 3))
+ break;
+ return Intrinsic::x86_avx_movmsk_ps_256; // "__builtin_ia32_movmskps256"
+ }
+ break;
+ case 'n': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+19, "tdqa", 4))
+ break;
+ switch (BuiltinName[23]) {
+ default: break;
+ case '2': // 1 string to match.
+ if (memcmp(BuiltinName.data()+24, "56", 2))
+ break;
+ return Intrinsic::x86_avx2_movntdqa; // "__builtin_ia32_movntdqa256"
+ case '5': // 1 string to match.
+ if (memcmp(BuiltinName.data()+24, "12", 2))
+ break;
+ return Intrinsic::x86_avx512_movntdqa; // "__builtin_ia32_movntdqa512"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 'p': // 45 strings to match.
+ switch (BuiltinName[16]) {
+ default: break;
+ case 'a': // 8 strings to match.
+ if (memcmp(BuiltinName.data()+17, "ck", 2))
+ break;
+ switch (BuiltinName[19]) {
+ default: break;
+ case 's': // 4 strings to match.
+ if (BuiltinName[20] != 's')
+ break;
+ switch (BuiltinName[21]) {
+ default: break;
+ case 'd': // 2 strings to match.
+ if (BuiltinName[22] != 'w')
+ break;
+ switch (BuiltinName[23]) {
+ default: break;
+ case '1': // 1 string to match.
+ if (memcmp(BuiltinName.data()+24, "28", 2))
+ break;
+ return Intrinsic::x86_sse2_packssdw_128; // "__builtin_ia32_packssdw128"
+ case '2': // 1 string to match.
+ if (memcmp(BuiltinName.data()+24, "56", 2))
+ break;
+ return Intrinsic::x86_avx2_packssdw; // "__builtin_ia32_packssdw256"
+ }
+ break;
+ case 'w': // 2 strings to match.
+ if (BuiltinName[22] != 'b')
+ break;
+ switch (BuiltinName[23]) {
+ default: break;
+ case '1': // 1 string to match.
+ if (memcmp(BuiltinName.data()+24, "28", 2))
+ break;
+ return Intrinsic::x86_sse2_packsswb_128; // "__builtin_ia32_packsswb128"
+ case '2': // 1 string to match.
+ if (memcmp(BuiltinName.data()+24, "56", 2))
+ break;
+ return Intrinsic::x86_avx2_packsswb; // "__builtin_ia32_packsswb256"
+ }
+ break;
+ }
+ break;
+ case 'u': // 4 strings to match.
+ if (BuiltinName[20] != 's')
+ break;
+ switch (BuiltinName[21]) {
+ default: break;
+ case 'd': // 2 strings to match.
+ if (BuiltinName[22] != 'w')
+ break;
+ switch (BuiltinName[23]) {
+ default: break;
+ case '1': // 1 string to match.
+ if (memcmp(BuiltinName.data()+24, "28", 2))
+ break;
+ return Intrinsic::x86_sse41_packusdw; // "__builtin_ia32_packusdw128"
+ case '2': // 1 string to match.
+ if (memcmp(BuiltinName.data()+24, "56", 2))
+ break;
+ return Intrinsic::x86_avx2_packusdw; // "__builtin_ia32_packusdw256"
+ }
+ break;
+ case 'w': // 2 strings to match.
+ if (BuiltinName[22] != 'b')
+ break;
+ switch (BuiltinName[23]) {
+ default: break;
+ case '1': // 1 string to match.
+ if (memcmp(BuiltinName.data()+24, "28", 2))
+ break;
+ return Intrinsic::x86_sse2_packuswb_128; // "__builtin_ia32_packuswb128"
+ case '2': // 1 string to match.
+ if (memcmp(BuiltinName.data()+24, "56", 2))
+ break;
+ return Intrinsic::x86_avx2_packuswb; // "__builtin_ia32_packuswb256"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 'b': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+17, "lendvb", 6))
+ break;
+ switch (BuiltinName[23]) {
+ default: break;
+ case '1': // 1 string to match.
+ if (memcmp(BuiltinName.data()+24, "28", 2))
+ break;
+ return Intrinsic::x86_sse41_pblendvb; // "__builtin_ia32_pblendvb128"
+ case '2': // 1 string to match.
+ if (memcmp(BuiltinName.data()+24, "56", 2))
+ break;
+ return Intrinsic::x86_avx2_pblendvb; // "__builtin_ia32_pblendvb256"
+ }
+ break;
+ case 'm': // 33 strings to match.
+ switch (BuiltinName[17]) {
+ default: break;
+ case 'o': // 31 strings to match.
+ if (BuiltinName[18] != 'v')
+ break;
+ switch (BuiltinName[19]) {
+ default: break;
+ case 'm': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+20, "skb", 3))
+ break;
+ switch (BuiltinName[23]) {
+ default: break;
+ case '1': // 1 string to match.
+ if (memcmp(BuiltinName.data()+24, "28", 2))
+ break;
+ return Intrinsic::x86_sse2_pmovmskb_128; // "__builtin_ia32_pmovmskb128"
+ case '2': // 1 string to match.
+ if (memcmp(BuiltinName.data()+24, "56", 2))
+ break;
+ return Intrinsic::x86_avx2_pmovmskb; // "__builtin_ia32_pmovmskb256"
+ }
+ break;
+ case 's': // 12 strings to match.
+ if (BuiltinName[20] != 'x')
+ break;
+ switch (BuiltinName[21]) {
+ default: break;
+ case 'b': // 6 strings to match.
+ switch (BuiltinName[22]) {
+ default: break;
+ case 'd': // 2 strings to match.
+ switch (BuiltinName[23]) {
+ default: break;
+ case '1': // 1 string to match.
+ if (memcmp(BuiltinName.data()+24, "28", 2))
+ break;
+ return Intrinsic::x86_sse41_pmovsxbd; // "__builtin_ia32_pmovsxbd128"
+ case '2': // 1 string to match.
+ if (memcmp(BuiltinName.data()+24, "56", 2))
+ break;
+ return Intrinsic::x86_avx2_pmovsxbd; // "__builtin_ia32_pmovsxbd256"
+ }
+ break;
+ case 'q': // 2 strings to match.
+ switch (BuiltinName[23]) {
+ default: break;
+ case '1': // 1 string to match.
+ if (memcmp(BuiltinName.data()+24, "28", 2))
+ break;
+ return Intrinsic::x86_sse41_pmovsxbq; // "__builtin_ia32_pmovsxbq128"
+ case '2': // 1 string to match.
+ if (memcmp(BuiltinName.data()+24, "56", 2))
+ break;
+ return Intrinsic::x86_avx2_pmovsxbq; // "__builtin_ia32_pmovsxbq256"
+ }
+ break;
+ case 'w': // 2 strings to match.
+ switch (BuiltinName[23]) {
+ default: break;
+ case '1': // 1 string to match.
+ if (memcmp(BuiltinName.data()+24, "28", 2))
+ break;
+ return Intrinsic::x86_sse41_pmovsxbw; // "__builtin_ia32_pmovsxbw128"
+ case '2': // 1 string to match.
+ if (memcmp(BuiltinName.data()+24, "56", 2))
+ break;
+ return Intrinsic::x86_avx2_pmovsxbw; // "__builtin_ia32_pmovsxbw256"
+ }
+ break;
+ }
+ break;
+ case 'd': // 2 strings to match.
+ if (BuiltinName[22] != 'q')
+ break;
+ switch (BuiltinName[23]) {
+ default: break;
+ case '1': // 1 string to match.
+ if (memcmp(BuiltinName.data()+24, "28", 2))
+ break;
+ return Intrinsic::x86_sse41_pmovsxdq; // "__builtin_ia32_pmovsxdq128"
+ case '2': // 1 string to match.
+ if (memcmp(BuiltinName.data()+24, "56", 2))
+ break;
+ return Intrinsic::x86_avx2_pmovsxdq; // "__builtin_ia32_pmovsxdq256"
+ }
+ break;
+ case 'w': // 4 strings to match.
+ switch (BuiltinName[22]) {
+ default: break;
+ case 'd': // 2 strings to match.
+ switch (BuiltinName[23]) {
+ default: break;
+ case '1': // 1 string to match.
+ if (memcmp(BuiltinName.data()+24, "28", 2))
+ break;
+ return Intrinsic::x86_sse41_pmovsxwd; // "__builtin_ia32_pmovsxwd128"
+ case '2': // 1 string to match.
+ if (memcmp(BuiltinName.data()+24, "56", 2))
+ break;
+ return Intrinsic::x86_avx2_pmovsxwd; // "__builtin_ia32_pmovsxwd256"
+ }
+ break;
+ case 'q': // 2 strings to match.
+ switch (BuiltinName[23]) {
+ default: break;
+ case '1': // 1 string to match.
+ if (memcmp(BuiltinName.data()+24, "28", 2))
+ break;
+ return Intrinsic::x86_sse41_pmovsxwq; // "__builtin_ia32_pmovsxwq128"
+ case '2': // 1 string to match.
+ if (memcmp(BuiltinName.data()+24, "56", 2))
+ break;
+ return Intrinsic::x86_avx2_pmovsxwq; // "__builtin_ia32_pmovsxwq256"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 'z': // 17 strings to match.
+ if (BuiltinName[20] != 'x')
+ break;
+ switch (BuiltinName[21]) {
+ default: break;
+ case 'b': // 8 strings to match.
+ switch (BuiltinName[22]) {
+ default: break;
+ case 'd': // 3 strings to match.
+ switch (BuiltinName[23]) {
+ default: break;
+ case '1': // 1 string to match.
+ if (memcmp(BuiltinName.data()+24, "28", 2))
+ break;
+ return Intrinsic::x86_sse41_pmovzxbd; // "__builtin_ia32_pmovzxbd128"
+ case '2': // 1 string to match.
+ if (memcmp(BuiltinName.data()+24, "56", 2))
+ break;
+ return Intrinsic::x86_avx2_pmovzxbd; // "__builtin_ia32_pmovzxbd256"
+ case '5': // 1 string to match.
+ if (memcmp(BuiltinName.data()+24, "12", 2))
+ break;
+ return Intrinsic::x86_avx512_pmovzxbd; // "__builtin_ia32_pmovzxbd512"
+ }
+ break;
+ case 'q': // 3 strings to match.
+ switch (BuiltinName[23]) {
+ default: break;
+ case '1': // 1 string to match.
+ if (memcmp(BuiltinName.data()+24, "28", 2))
+ break;
+ return Intrinsic::x86_sse41_pmovzxbq; // "__builtin_ia32_pmovzxbq128"
+ case '2': // 1 string to match.
+ if (memcmp(BuiltinName.data()+24, "56", 2))
+ break;
+ return Intrinsic::x86_avx2_pmovzxbq; // "__builtin_ia32_pmovzxbq256"
+ case '5': // 1 string to match.
+ if (memcmp(BuiltinName.data()+24, "12", 2))
+ break;
+ return Intrinsic::x86_avx512_pmovzxbq; // "__builtin_ia32_pmovzxbq512"
+ }
+ break;
+ case 'w': // 2 strings to match.
+ switch (BuiltinName[23]) {
+ default: break;
+ case '1': // 1 string to match.
+ if (memcmp(BuiltinName.data()+24, "28", 2))
+ break;
+ return Intrinsic::x86_sse41_pmovzxbw; // "__builtin_ia32_pmovzxbw128"
+ case '2': // 1 string to match.
+ if (memcmp(BuiltinName.data()+24, "56", 2))
+ break;
+ return Intrinsic::x86_avx2_pmovzxbw; // "__builtin_ia32_pmovzxbw256"
+ }
+ break;
+ }
+ break;
+ case 'd': // 3 strings to match.
+ if (BuiltinName[22] != 'q')
+ break;
+ switch (BuiltinName[23]) {
+ default: break;
+ case '1': // 1 string to match.
+ if (memcmp(BuiltinName.data()+24, "28", 2))
+ break;
+ return Intrinsic::x86_sse41_pmovzxdq; // "__builtin_ia32_pmovzxdq128"
+ case '2': // 1 string to match.
+ if (memcmp(BuiltinName.data()+24, "56", 2))
+ break;
+ return Intrinsic::x86_avx2_pmovzxdq; // "__builtin_ia32_pmovzxdq256"
+ case '5': // 1 string to match.
+ if (memcmp(BuiltinName.data()+24, "12", 2))
+ break;
+ return Intrinsic::x86_avx512_pmovzxdq; // "__builtin_ia32_pmovzxdq512"
+ }
+ break;
+ case 'w': // 6 strings to match.
+ switch (BuiltinName[22]) {
+ default: break;
+ case 'd': // 3 strings to match.
+ switch (BuiltinName[23]) {
+ default: break;
+ case '1': // 1 string to match.
+ if (memcmp(BuiltinName.data()+24, "28", 2))
+ break;
+ return Intrinsic::x86_sse41_pmovzxwd; // "__builtin_ia32_pmovzxwd128"
+ case '2': // 1 string to match.
+ if (memcmp(BuiltinName.data()+24, "56", 2))
+ break;
+ return Intrinsic::x86_avx2_pmovzxwd; // "__builtin_ia32_pmovzxwd256"
+ case '5': // 1 string to match.
+ if (memcmp(BuiltinName.data()+24, "12", 2))
+ break;
+ return Intrinsic::x86_avx512_pmovzxwd; // "__builtin_ia32_pmovzxwd512"
+ }
+ break;
+ case 'q': // 3 strings to match.
+ switch (BuiltinName[23]) {
+ default: break;
+ case '1': // 1 string to match.
+ if (memcmp(BuiltinName.data()+24, "28", 2))
+ break;
+ return Intrinsic::x86_sse41_pmovzxwq; // "__builtin_ia32_pmovzxwq128"
+ case '2': // 1 string to match.
+ if (memcmp(BuiltinName.data()+24, "56", 2))
+ break;
+ return Intrinsic::x86_avx2_pmovzxwq; // "__builtin_ia32_pmovzxwq256"
+ case '5': // 1 string to match.
+ if (memcmp(BuiltinName.data()+24, "12", 2))
+ break;
+ return Intrinsic::x86_avx512_pmovzxwq; // "__builtin_ia32_pmovzxwq512"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 'u': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+18, "lhrsw", 5))
+ break;
+ switch (BuiltinName[23]) {
+ default: break;
+ case '1': // 1 string to match.
+ if (memcmp(BuiltinName.data()+24, "28", 2))
+ break;
+ return Intrinsic::x86_ssse3_pmul_hr_sw_128; // "__builtin_ia32_pmulhrsw128"
+ case '2': // 1 string to match.
+ if (memcmp(BuiltinName.data()+24, "56", 2))
+ break;
+ return Intrinsic::x86_avx2_pmul_hr_sw; // "__builtin_ia32_pmulhrsw256"
+ }
+ break;
+ }
+ break;
+ case 't': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+17, "estnzc", 6))
+ break;
+ switch (BuiltinName[23]) {
+ default: break;
+ case '1': // 1 string to match.
+ if (memcmp(BuiltinName.data()+24, "28", 2))
+ break;
+ return Intrinsic::x86_sse41_ptestnzc; // "__builtin_ia32_ptestnzc128"
+ case '2': // 1 string to match.
+ if (memcmp(BuiltinName.data()+24, "56", 2))
+ break;
+ return Intrinsic::x86_avx_ptestnzc_256; // "__builtin_ia32_ptestnzc256"
+ }
+ break;
+ }
+ break;
+ case 's': // 4 strings to match.
+ switch (BuiltinName[16]) {
+ default: break;
+ case 'h': // 1 string to match.
+ if (memcmp(BuiltinName.data()+17, "a256rnds2", 9))
+ break;
+ return Intrinsic::x86_sha256rnds2; // "__builtin_ia32_sha256rnds2"
+ case 't': // 3 strings to match.
+ if (memcmp(BuiltinName.data()+17, "ore", 3))
+ break;
+ switch (BuiltinName[20]) {
+ default: break;
+ case 'd': // 1 string to match.
+ if (memcmp(BuiltinName.data()+21, "qu256", 5))
+ break;
+ return Intrinsic::x86_avx_storeu_dq_256; // "__builtin_ia32_storedqu256"
+ case 'u': // 2 strings to match.
+ if (BuiltinName[21] != 'p')
+ break;
+ switch (BuiltinName[22]) {
+ default: break;
+ case 'd': // 1 string to match.
+ if (memcmp(BuiltinName.data()+23, "256", 3))
+ break;
+ return Intrinsic::x86_avx_storeu_pd_256; // "__builtin_ia32_storeupd256"
+ case 's': // 1 string to match.
+ if (memcmp(BuiltinName.data()+23, "256", 3))
+ break;
+ return Intrinsic::x86_avx_storeu_ps_256; // "__builtin_ia32_storeups256"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 'v': // 16 strings to match.
+ switch (BuiltinName[16]) {
+ default: break;
+ case 'f': // 12 strings to match.
+ if (BuiltinName[17] != 'm')
+ break;
+ switch (BuiltinName[18]) {
+ default: break;
+ case 'a': // 6 strings to match.
+ if (memcmp(BuiltinName.data()+19, "dd", 2))
+ break;
+ switch (BuiltinName[21]) {
+ default: break;
+ case 'p': // 4 strings to match.
+ switch (BuiltinName[22]) {
+ default: break;
+ case 'd': // 2 strings to match.
+ switch (BuiltinName[23]) {
+ default: break;
+ case '2': // 1 string to match.
+ if (memcmp(BuiltinName.data()+24, "56", 2))
+ break;
+ return Intrinsic::x86_fma_vfmadd_pd_256; // "__builtin_ia32_vfmaddpd256"
+ case '5': // 1 string to match.
+ if (memcmp(BuiltinName.data()+24, "12", 2))
+ break;
+ return Intrinsic::x86_fma_vfmadd_pd_512; // "__builtin_ia32_vfmaddpd512"
+ }
+ break;
+ case 's': // 2 strings to match.
+ switch (BuiltinName[23]) {
+ default: break;
+ case '2': // 1 string to match.
+ if (memcmp(BuiltinName.data()+24, "56", 2))
+ break;
+ return Intrinsic::x86_fma_vfmadd_ps_256; // "__builtin_ia32_vfmaddps256"
+ case '5': // 1 string to match.
+ if (memcmp(BuiltinName.data()+24, "12", 2))
+ break;
+ return Intrinsic::x86_fma_vfmadd_ps_512; // "__builtin_ia32_vfmaddps512"
+ }
+ break;
+ }
+ break;
+ case 's': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+22, "ubp", 3))
+ break;
+ switch (BuiltinName[25]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::x86_fma_vfmaddsub_pd; // "__builtin_ia32_vfmaddsubpd"
+ case 's': // 1 string to match.
+ return Intrinsic::x86_fma_vfmaddsub_ps; // "__builtin_ia32_vfmaddsubps"
+ }
+ break;
+ }
+ break;
+ case 's': // 6 strings to match.
+ if (memcmp(BuiltinName.data()+19, "ub", 2))
+ break;
+ switch (BuiltinName[21]) {
+ default: break;
+ case 'a': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+22, "ddp", 3))
+ break;
+ switch (BuiltinName[25]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::x86_fma_vfmsubadd_pd; // "__builtin_ia32_vfmsubaddpd"
+ case 's': // 1 string to match.
+ return Intrinsic::x86_fma_vfmsubadd_ps; // "__builtin_ia32_vfmsubaddps"
+ }
+ break;
+ case 'p': // 4 strings to match.
+ switch (BuiltinName[22]) {
+ default: break;
+ case 'd': // 2 strings to match.
+ switch (BuiltinName[23]) {
+ default: break;
+ case '2': // 1 string to match.
+ if (memcmp(BuiltinName.data()+24, "56", 2))
+ break;
+ return Intrinsic::x86_fma_vfmsub_pd_256; // "__builtin_ia32_vfmsubpd256"
+ case '5': // 1 string to match.
+ if (memcmp(BuiltinName.data()+24, "12", 2))
+ break;
+ return Intrinsic::x86_fma_vfmsub_pd_512; // "__builtin_ia32_vfmsubpd512"
+ }
+ break;
+ case 's': // 2 strings to match.
+ switch (BuiltinName[23]) {
+ default: break;
+ case '2': // 1 string to match.
+ if (memcmp(BuiltinName.data()+24, "56", 2))
+ break;
+ return Intrinsic::x86_fma_vfmsub_ps_256; // "__builtin_ia32_vfmsubps256"
+ case '5': // 1 string to match.
+ if (memcmp(BuiltinName.data()+24, "12", 2))
+ break;
+ return Intrinsic::x86_fma_vfmsub_ps_512; // "__builtin_ia32_vfmsubps512"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 't': // 4 strings to match.
+ if (memcmp(BuiltinName.data()+17, "est", 3))
+ break;
+ switch (BuiltinName[20]) {
+ default: break;
+ case 'c': // 2 strings to match.
+ if (BuiltinName[21] != 'p')
+ break;
+ switch (BuiltinName[22]) {
+ default: break;
+ case 'd': // 1 string to match.
+ if (memcmp(BuiltinName.data()+23, "256", 3))
+ break;
+ return Intrinsic::x86_avx_vtestc_pd_256; // "__builtin_ia32_vtestcpd256"
+ case 's': // 1 string to match.
+ if (memcmp(BuiltinName.data()+23, "256", 3))
+ break;
+ return Intrinsic::x86_avx_vtestc_ps_256; // "__builtin_ia32_vtestcps256"
+ }
+ break;
+ case 'z': // 2 strings to match.
+ if (BuiltinName[21] != 'p')
+ break;
+ switch (BuiltinName[22]) {
+ default: break;
+ case 'd': // 1 string to match.
+ if (memcmp(BuiltinName.data()+23, "256", 3))
+ break;
+ return Intrinsic::x86_avx_vtestz_pd_256; // "__builtin_ia32_vtestzpd256"
+ case 's': // 1 string to match.
+ if (memcmp(BuiltinName.data()+23, "256", 3))
+ break;
+ return Intrinsic::x86_avx_vtestz_ps_256; // "__builtin_ia32_vtestzps256"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 27: // 48 strings to match.
+ if (memcmp(BuiltinName.data()+0, "__builtin_ia32_", 15))
+ break;
+ switch (BuiltinName[15]) {
+ default: break;
+ case 'c': // 4 strings to match.
+ if (memcmp(BuiltinName.data()+16, "vtt", 3))
+ break;
+ switch (BuiltinName[19]) {
+ default: break;
+ case 'p': // 2 strings to match.
+ switch (BuiltinName[20]) {
+ default: break;
+ case 'd': // 1 string to match.
+ if (memcmp(BuiltinName.data()+21, "2dq256", 6))
+ break;
+ return Intrinsic::x86_avx_cvtt_pd2dq_256; // "__builtin_ia32_cvttpd2dq256"
+ case 's': // 1 string to match.
+ if (memcmp(BuiltinName.data()+21, "2dq256", 6))
+ break;
+ return Intrinsic::x86_avx_cvtt_ps2dq_256; // "__builtin_ia32_cvttps2dq256"
+ }
+ break;
+ case 's': // 2 strings to match.
+ switch (BuiltinName[20]) {
+ default: break;
+ case 'd': // 1 string to match.
+ if (memcmp(BuiltinName.data()+21, "2usi64", 6))
+ break;
+ return Intrinsic::x86_avx512_cvttsd2usi64; // "__builtin_ia32_cvttsd2usi64"
+ case 's': // 1 string to match.
+ if (memcmp(BuiltinName.data()+21, "2usi64", 6))
+ break;
+ return Intrinsic::x86_avx512_cvttss2usi64; // "__builtin_ia32_cvttss2usi64"
+ }
+ break;
+ }
+ break;
+ case 'e': // 1 string to match.
+ if (memcmp(BuiltinName.data()+16, "xtractps128", 11))
+ break;
+ return Intrinsic::x86_sse41_extractps; // "__builtin_ia32_extractps128"
+ case 'g': // 8 strings to match.
+ if (memcmp(BuiltinName.data()+16, "ather", 5))
+ break;
+ switch (BuiltinName[21]) {
+ default: break;
+ case 'd': // 4 strings to match.
+ switch (BuiltinName[22]) {
+ default: break;
+ case '_': // 2 strings to match.
+ switch (BuiltinName[23]) {
+ default: break;
+ case 'd': // 1 string to match.
+ if (memcmp(BuiltinName.data()+24, "256", 3))
+ break;
+ return Intrinsic::x86_avx2_gather_d_d_256; // "__builtin_ia32_gatherd_d256"
+ case 'q': // 1 string to match.
+ if (memcmp(BuiltinName.data()+24, "256", 3))
+ break;
+ return Intrinsic::x86_avx2_gather_d_q_256; // "__builtin_ia32_gatherd_q256"
+ }
+ break;
+ case 'i': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+23, "v8d", 3))
+ break;
+ switch (BuiltinName[26]) {
+ default: break;
+ case 'f': // 1 string to match.
+ return Intrinsic::x86_avx512_gather_qpd_512; // "__builtin_ia32_gatherdiv8df"
+ case 'i': // 1 string to match.
+ return Intrinsic::x86_avx512_gather_qpq_512; // "__builtin_ia32_gatherdiv8di"
+ }
+ break;
+ }
+ break;
+ case 'q': // 2 strings to match.
+ if (BuiltinName[22] != '_')
+ break;
+ switch (BuiltinName[23]) {
+ default: break;
+ case 'd': // 1 string to match.
+ if (memcmp(BuiltinName.data()+24, "256", 3))
+ break;
+ return Intrinsic::x86_avx2_gather_q_d_256; // "__builtin_ia32_gatherq_d256"
+ case 'q': // 1 string to match.
+ if (memcmp(BuiltinName.data()+24, "256", 3))
+ break;
+ return Intrinsic::x86_avx2_gather_q_q_256; // "__builtin_ia32_gatherq_q256"
+ }
+ break;
+ case 's': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+22, "iv8d", 4))
+ break;
+ switch (BuiltinName[26]) {
+ default: break;
+ case 'f': // 1 string to match.
+ return Intrinsic::x86_avx512_gather_dpd_512; // "__builtin_ia32_gathersiv8df"
+ case 'i': // 1 string to match.
+ return Intrinsic::x86_avx512_gather_dpq_512; // "__builtin_ia32_gathersiv8di"
+ }
+ break;
+ }
+ break;
+ case 'm': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+16, "askload", 7))
+ break;
+ switch (BuiltinName[23]) {
+ default: break;
+ case 'd': // 1 string to match.
+ if (memcmp(BuiltinName.data()+24, "256", 3))
+ break;
+ return Intrinsic::x86_avx2_maskload_d_256; // "__builtin_ia32_maskloadd256"
+ case 'q': // 1 string to match.
+ if (memcmp(BuiltinName.data()+24, "256", 3))
+ break;
+ return Intrinsic::x86_avx2_maskload_q_256; // "__builtin_ia32_maskloadq256"
+ }
+ break;
+ case 'p': // 9 strings to match.
+ switch (BuiltinName[16]) {
+ default: break;
+ case 'c': // 5 strings to match.
+ switch (BuiltinName[17]) {
+ default: break;
+ case 'l': // 1 string to match.
+ if (memcmp(BuiltinName.data()+18, "mulqdq128", 9))
+ break;
+ return Intrinsic::x86_pclmulqdq; // "__builtin_ia32_pclmulqdq128"
+ case 'm': // 4 strings to match.
+ if (BuiltinName[18] != 'p')
+ break;
+ switch (BuiltinName[19]) {
+ default: break;
+ case 'e': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+20, "str", 3))
+ break;
+ switch (BuiltinName[23]) {
+ default: break;
+ case 'i': // 1 string to match.
+ if (memcmp(BuiltinName.data()+24, "128", 3))
+ break;
+ return Intrinsic::x86_sse42_pcmpestri128; // "__builtin_ia32_pcmpestri128"
+ case 'm': // 1 string to match.
+ if (memcmp(BuiltinName.data()+24, "128", 3))
+ break;
+ return Intrinsic::x86_sse42_pcmpestrm128; // "__builtin_ia32_pcmpestrm128"
+ }
+ break;
+ case 'i': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+20, "str", 3))
+ break;
+ switch (BuiltinName[23]) {
+ default: break;
+ case 'i': // 1 string to match.
+ if (memcmp(BuiltinName.data()+24, "128", 3))
+ break;
+ return Intrinsic::x86_sse42_pcmpistri128; // "__builtin_ia32_pcmpistri128"
+ case 'm': // 1 string to match.
+ if (memcmp(BuiltinName.data()+24, "128", 3))
+ break;
+ return Intrinsic::x86_sse42_pcmpistrm128; // "__builtin_ia32_pcmpistrm128"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 'e': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+17, "rmvars", 6))
+ break;
+ switch (BuiltinName[23]) {
+ default: break;
+ case 'f': // 1 string to match.
+ if (memcmp(BuiltinName.data()+24, "256", 3))
+ break;
+ return Intrinsic::x86_avx2_permps; // "__builtin_ia32_permvarsf256"
+ case 'i': // 1 string to match.
+ if (memcmp(BuiltinName.data()+24, "256", 3))
+ break;
+ return Intrinsic::x86_avx2_permd; // "__builtin_ia32_permvarsi256"
+ }
+ break;
+ case 'm': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+17, "addubsw", 7))
+ break;
+ switch (BuiltinName[24]) {
+ default: break;
+ case '1': // 1 string to match.
+ if (memcmp(BuiltinName.data()+25, "28", 2))
+ break;
+ return Intrinsic::x86_ssse3_pmadd_ub_sw_128; // "__builtin_ia32_pmaddubsw128"
+ case '2': // 1 string to match.
+ if (memcmp(BuiltinName.data()+25, "56", 2))
+ break;
+ return Intrinsic::x86_avx2_pmadd_ub_sw; // "__builtin_ia32_pmaddubsw256"
+ }
+ break;
+ }
+ break;
+ case 'r': // 6 strings to match.
+ if (memcmp(BuiltinName.data()+16, "cp", 2))
+ break;
+ switch (BuiltinName[18]) {
+ default: break;
+ case '1': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+19, "4s", 2))
+ break;
+ switch (BuiltinName[21]) {
+ default: break;
+ case 'd': // 1 string to match.
+ if (memcmp(BuiltinName.data()+22, "_mask", 5))
+ break;
+ return Intrinsic::x86_avx512_rcp14_sd; // "__builtin_ia32_rcp14sd_mask"
+ case 's': // 1 string to match.
+ if (memcmp(BuiltinName.data()+22, "_mask", 5))
+ break;
+ return Intrinsic::x86_avx512_rcp14_ss; // "__builtin_ia32_rcp14ss_mask"
+ }
+ break;
+ case '2': // 4 strings to match.
+ if (BuiltinName[19] != '8')
+ break;
+ switch (BuiltinName[20]) {
+ default: break;
+ case 'p': // 2 strings to match.
+ switch (BuiltinName[21]) {
+ default: break;
+ case 'd': // 1 string to match.
+ if (memcmp(BuiltinName.data()+22, "_mask", 5))
+ break;
+ return Intrinsic::x86_avx512_rcp28_pd; // "__builtin_ia32_rcp28pd_mask"
+ case 's': // 1 string to match.
+ if (memcmp(BuiltinName.data()+22, "_mask", 5))
+ break;
+ return Intrinsic::x86_avx512_rcp28_ps; // "__builtin_ia32_rcp28ps_mask"
+ }
+ break;
+ case 's': // 2 strings to match.
+ switch (BuiltinName[21]) {
+ default: break;
+ case 'd': // 1 string to match.
+ if (memcmp(BuiltinName.data()+22, "_mask", 5))
+ break;
+ return Intrinsic::x86_avx512_rcp28_sd; // "__builtin_ia32_rcp28sd_mask"
+ case 's': // 1 string to match.
+ if (memcmp(BuiltinName.data()+22, "_mask", 5))
+ break;
+ return Intrinsic::x86_avx512_rcp28_ss; // "__builtin_ia32_rcp28ss_mask"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 's': // 4 strings to match.
+ if (memcmp(BuiltinName.data()+16, "catterpf", 8))
+ break;
+ switch (BuiltinName[24]) {
+ default: break;
+ case 'd': // 2 strings to match.
+ if (BuiltinName[25] != 'p')
+ break;
+ switch (BuiltinName[26]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::x86_avx512_scatterpf_dpd_512; // "__builtin_ia32_scatterpfdpd"
+ case 's': // 1 string to match.
+ return Intrinsic::x86_avx512_scatterpf_dps_512; // "__builtin_ia32_scatterpfdps"
+ }
+ break;
+ case 'q': // 2 strings to match.
+ if (BuiltinName[25] != 'p')
+ break;
+ switch (BuiltinName[26]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::x86_avx512_scatterpf_qpd_512; // "__builtin_ia32_scatterpfqpd"
+ case 's': // 1 string to match.
+ return Intrinsic::x86_avx512_scatterpf_qps_512; // "__builtin_ia32_scatterpfqps"
+ }
+ break;
+ }
+ break;
+ case 'v': // 14 strings to match.
+ switch (BuiltinName[16]) {
+ default: break;
+ case 'c': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+17, "vtp", 3))
+ break;
+ switch (BuiltinName[20]) {
+ default: break;
+ case 'h': // 1 string to match.
+ if (memcmp(BuiltinName.data()+21, "2ps256", 6))
+ break;
+ return Intrinsic::x86_vcvtph2ps_256; // "__builtin_ia32_vcvtph2ps256"
+ case 's': // 1 string to match.
+ if (memcmp(BuiltinName.data()+21, "2ph256", 6))
+ break;
+ return Intrinsic::x86_vcvtps2ph_256; // "__builtin_ia32_vcvtps2ph256"
+ }
+ break;
+ case 'e': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+17, "c_", 2))
+ break;
+ switch (BuiltinName[19]) {
+ default: break;
+ case 'e': // 1 string to match.
+ if (memcmp(BuiltinName.data()+20, "xt_v4hi", 7))
+ break;
+ return Intrinsic::x86_mmx_pextr_w; // "__builtin_ia32_vec_ext_v4hi"
+ case 's': // 1 string to match.
+ if (memcmp(BuiltinName.data()+20, "et_v4hi", 7))
+ break;
+ return Intrinsic::x86_mmx_pinsr_w; // "__builtin_ia32_vec_set_v4hi"
+ }
+ break;
+ case 'f': // 8 strings to match.
+ if (memcmp(BuiltinName.data()+17, "nm", 2))
+ break;
+ switch (BuiltinName[19]) {
+ default: break;
+ case 'a': // 4 strings to match.
+ if (memcmp(BuiltinName.data()+20, "ddp", 3))
+ break;
+ switch (BuiltinName[23]) {
+ default: break;
+ case 'd': // 2 strings to match.
+ switch (BuiltinName[24]) {
+ default: break;
+ case '2': // 1 string to match.
+ if (memcmp(BuiltinName.data()+25, "56", 2))
+ break;
+ return Intrinsic::x86_fma_vfnmadd_pd_256; // "__builtin_ia32_vfnmaddpd256"
+ case '5': // 1 string to match.
+ if (memcmp(BuiltinName.data()+25, "12", 2))
+ break;
+ return Intrinsic::x86_fma_vfnmadd_pd_512; // "__builtin_ia32_vfnmaddpd512"
+ }
+ break;
+ case 's': // 2 strings to match.
+ switch (BuiltinName[24]) {
+ default: break;
+ case '2': // 1 string to match.
+ if (memcmp(BuiltinName.data()+25, "56", 2))
+ break;
+ return Intrinsic::x86_fma_vfnmadd_ps_256; // "__builtin_ia32_vfnmaddps256"
+ case '5': // 1 string to match.
+ if (memcmp(BuiltinName.data()+25, "12", 2))
+ break;
+ return Intrinsic::x86_fma_vfnmadd_ps_512; // "__builtin_ia32_vfnmaddps512"
+ }
+ break;
+ }
+ break;
+ case 's': // 4 strings to match.
+ if (memcmp(BuiltinName.data()+20, "ubp", 3))
+ break;
+ switch (BuiltinName[23]) {
+ default: break;
+ case 'd': // 2 strings to match.
+ switch (BuiltinName[24]) {
+ default: break;
+ case '2': // 1 string to match.
+ if (memcmp(BuiltinName.data()+25, "56", 2))
+ break;
+ return Intrinsic::x86_fma_vfnmsub_pd_256; // "__builtin_ia32_vfnmsubpd256"
+ case '5': // 1 string to match.
+ if (memcmp(BuiltinName.data()+25, "12", 2))
+ break;
+ return Intrinsic::x86_fma_vfnmsub_pd_512; // "__builtin_ia32_vfnmsubpd512"
+ }
+ break;
+ case 's': // 2 strings to match.
+ switch (BuiltinName[24]) {
+ default: break;
+ case '2': // 1 string to match.
+ if (memcmp(BuiltinName.data()+25, "56", 2))
+ break;
+ return Intrinsic::x86_fma_vfnmsub_ps_256; // "__builtin_ia32_vfnmsubps256"
+ case '5': // 1 string to match.
+ if (memcmp(BuiltinName.data()+25, "12", 2))
+ break;
+ return Intrinsic::x86_fma_vfnmsub_ps_512; // "__builtin_ia32_vfnmsubps512"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 'p': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+17, "ermilvarp", 9))
+ break;
+ switch (BuiltinName[26]) {
+ default: break;
+ case 'd': // 1 string to match.
+ return Intrinsic::x86_avx_vpermilvar_pd; // "__builtin_ia32_vpermilvarpd"
+ case 's': // 1 string to match.
+ return Intrinsic::x86_avx_vpermilvar_ps; // "__builtin_ia32_vpermilvarps"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 28: // 42 strings to match.
+ if (memcmp(BuiltinName.data()+0, "__builtin_ia32_", 15))
+ break;
+ switch (BuiltinName[15]) {
+ default: break;
+ case 'a': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+16, "es", 2))
+ break;
+ switch (BuiltinName[18]) {
+ default: break;
+ case 'd': // 1 string to match.
+ if (memcmp(BuiltinName.data()+19, "eclast128", 9))
+ break;
+ return Intrinsic::x86_aesni_aesdeclast; // "__builtin_ia32_aesdeclast128"
+ case 'e': // 1 string to match.
+ if (memcmp(BuiltinName.data()+19, "nclast128", 9))
+ break;
+ return Intrinsic::x86_aesni_aesenclast; // "__builtin_ia32_aesenclast128"
+ }
+ break;
+ case 'c': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+16, "mpp", 3))
+ break;
+ switch (BuiltinName[19]) {
+ default: break;
+ case 'd': // 1 string to match.
+ if (memcmp(BuiltinName.data()+20, "512_mask", 8))
+ break;
+ return Intrinsic::x86_avx512_mask_cmp_pd_512; // "__builtin_ia32_cmppd512_mask"
+ case 's': // 1 string to match.
+ if (memcmp(BuiltinName.data()+20, "512_mask", 8))
+ break;
+ return Intrinsic::x86_avx512_mask_cmp_ps_512; // "__builtin_ia32_cmpps512_mask"
+ }
+ break;
+ case 'g': // 8 strings to match.
+ if (memcmp(BuiltinName.data()+16, "ather", 5))
+ break;
+ switch (BuiltinName[21]) {
+ default: break;
+ case 'd': // 4 strings to match.
+ switch (BuiltinName[22]) {
+ default: break;
+ case '_': // 2 strings to match.
+ if (BuiltinName[23] != 'p')
+ break;
+ switch (BuiltinName[24]) {
+ default: break;
+ case 'd': // 1 string to match.
+ if (memcmp(BuiltinName.data()+25, "256", 3))
+ break;
+ return Intrinsic::x86_avx2_gather_d_pd_256; // "__builtin_ia32_gatherd_pd256"
+ case 's': // 1 string to match.
+ if (memcmp(BuiltinName.data()+25, "256", 3))
+ break;
+ return Intrinsic::x86_avx2_gather_d_ps_256; // "__builtin_ia32_gatherd_ps256"
+ }
+ break;
+ case 'i': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+23, "v16s", 4))
+ break;
+ switch (BuiltinName[27]) {
+ default: break;
+ case 'f': // 1 string to match.
+ return Intrinsic::x86_avx512_gather_qps_512; // "__builtin_ia32_gatherdiv16sf"
+ case 'i': // 1 string to match.
+ return Intrinsic::x86_avx512_gather_qpi_512; // "__builtin_ia32_gatherdiv16si"
+ }
+ break;
+ }
+ break;
+ case 'q': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+22, "_p", 2))
+ break;
+ switch (BuiltinName[24]) {
+ default: break;
+ case 'd': // 1 string to match.
+ if (memcmp(BuiltinName.data()+25, "256", 3))
+ break;
+ return Intrinsic::x86_avx2_gather_q_pd_256; // "__builtin_ia32_gatherq_pd256"
+ case 's': // 1 string to match.
+ if (memcmp(BuiltinName.data()+25, "256", 3))
+ break;
+ return Intrinsic::x86_avx2_gather_q_ps_256; // "__builtin_ia32_gatherq_ps256"
+ }
+ break;
+ case 's': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+22, "iv16s", 5))
+ break;
+ switch (BuiltinName[27]) {
+ default: break;
+ case 'f': // 1 string to match.
+ return Intrinsic::x86_avx512_gather_dps_512; // "__builtin_ia32_gathersiv16sf"
+ case 'i': // 1 string to match.
+ return Intrinsic::x86_avx512_gather_dpi_512; // "__builtin_ia32_gathersiv16si"
+ }
+ break;
+ }
+ break;
+ case 'i': // 1 string to match.
+ if (memcmp(BuiltinName.data()+16, "nsert128i256", 12))
+ break;
+ return Intrinsic::x86_avx2_vinserti128; // "__builtin_ia32_insert128i256"
+ case 'm': // 8 strings to match.
+ switch (BuiltinName[16]) {
+ default: break;
+ case 'a': // 6 strings to match.
+ switch (BuiltinName[17]) {
+ default: break;
+ case 's': // 4 strings to match.
+ if (BuiltinName[18] != 'k')
+ break;
+ switch (BuiltinName[19]) {
+ default: break;
+ case 'l': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+20, "oadp", 4))
+ break;
+ switch (BuiltinName[24]) {
+ default: break;
+ case 'd': // 1 string to match.
+ if (memcmp(BuiltinName.data()+25, "256", 3))
+ break;
+ return Intrinsic::x86_avx_maskload_pd_256; // "__builtin_ia32_maskloadpd256"
+ case 's': // 1 string to match.
+ if (memcmp(BuiltinName.data()+25, "256", 3))
+ break;
+ return Intrinsic::x86_avx_maskload_ps_256; // "__builtin_ia32_maskloadps256"
+ }
+ break;
+ case 's': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+20, "tore", 4))
+ break;
+ switch (BuiltinName[24]) {
+ default: break;
+ case 'd': // 1 string to match.
+ if (memcmp(BuiltinName.data()+25, "256", 3))
+ break;
+ return Intrinsic::x86_avx2_maskstore_d_256; // "__builtin_ia32_maskstored256"
+ case 'q': // 1 string to match.
+ if (memcmp(BuiltinName.data()+25, "256", 3))
+ break;
+ return Intrinsic::x86_avx2_maskstore_q_256; // "__builtin_ia32_maskstoreq256"
+ }
+ break;
+ }
+ break;
+ case 'x': // 2 strings to match.
+ if (BuiltinName[18] != 'p')
+ break;
+ switch (BuiltinName[19]) {
+ default: break;
+ case 'd': // 1 string to match.
+ if (memcmp(BuiltinName.data()+20, "512_mask", 8))
+ break;
+ return Intrinsic::x86_avx512_mask_max_pd_512; // "__builtin_ia32_maxpd512_mask"
+ case 's': // 1 string to match.
+ if (memcmp(BuiltinName.data()+20, "512_mask", 8))
+ break;
+ return Intrinsic::x86_avx512_mask_max_ps_512; // "__builtin_ia32_maxps512_mask"
+ }
+ break;
+ }
+ break;
+ case 'i': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+17, "np", 2))
+ break;
+ switch (BuiltinName[19]) {
+ default: break;
+ case 'd': // 1 string to match.
+ if (memcmp(BuiltinName.data()+20, "512_mask", 8))
+ break;
+ return Intrinsic::x86_avx512_mask_min_pd_512; // "__builtin_ia32_minpd512_mask"
+ case 's': // 1 string to match.
+ if (memcmp(BuiltinName.data()+20, "512_mask", 8))
+ break;
+ return Intrinsic::x86_avx512_mask_min_ps_512; // "__builtin_ia32_minps512_mask"
+ }
+ break;
+ }
+ break;
+ case 'p': // 15 strings to match.
+ switch (BuiltinName[16]) {
+ default: break;
+ case 'a': // 4 strings to match.
+ switch (BuiltinName[17]) {
+ default: break;
+ case 'b': // 2 strings to match.
+ if (BuiltinName[18] != 's')
+ break;
+ switch (BuiltinName[19]) {
+ default: break;
+ case 'd': // 1 string to match.
+ if (memcmp(BuiltinName.data()+20, "512_mask", 8))
+ break;
+ return Intrinsic::x86_avx512_mask_pabs_d_512; // "__builtin_ia32_pabsd512_mask"
+ case 'q': // 1 string to match.
+ if (memcmp(BuiltinName.data()+20, "512_mask", 8))
+ break;
+ return Intrinsic::x86_avx512_mask_pabs_q_512; // "__builtin_ia32_pabsq512_mask"
+ }
+ break;
+ case 'n': // 2 strings to match.
+ if (BuiltinName[18] != 'd')
+ break;
+ switch (BuiltinName[19]) {
+ default: break;
+ case 'd': // 1 string to match.
+ if (memcmp(BuiltinName.data()+20, "512_mask", 8))
+ break;
+ return Intrinsic::x86_avx512_mask_pand_d_512; // "__builtin_ia32_pandd512_mask"
+ case 'q': // 1 string to match.
+ if (memcmp(BuiltinName.data()+20, "512_mask", 8))
+ break;
+ return Intrinsic::x86_avx512_mask_pand_q_512; // "__builtin_ia32_pandq512_mask"
+ }
+ break;
+ }
+ break;
+ case 'c': // 10 strings to match.
+ if (memcmp(BuiltinName.data()+17, "mp", 2))
+ break;
+ switch (BuiltinName[19]) {
+ default: break;
+ case 'e': // 5 strings to match.
+ if (memcmp(BuiltinName.data()+20, "stri", 4))
+ break;
+ switch (BuiltinName[24]) {
+ default: break;
+ case 'a': // 1 string to match.
+ if (memcmp(BuiltinName.data()+25, "128", 3))
+ break;
+ return Intrinsic::x86_sse42_pcmpestria128; // "__builtin_ia32_pcmpestria128"
+ case 'c': // 1 string to match.
+ if (memcmp(BuiltinName.data()+25, "128", 3))
+ break;
+ return Intrinsic::x86_sse42_pcmpestric128; // "__builtin_ia32_pcmpestric128"
+ case 'o': // 1 string to match.
+ if (memcmp(BuiltinName.data()+25, "128", 3))
+ break;
+ return Intrinsic::x86_sse42_pcmpestrio128; // "__builtin_ia32_pcmpestrio128"
+ case 's': // 1 string to match.
+ if (memcmp(BuiltinName.data()+25, "128", 3))
+ break;
+ return Intrinsic::x86_sse42_pcmpestris128; // "__builtin_ia32_pcmpestris128"
+ case 'z': // 1 string to match.
+ if (memcmp(BuiltinName.data()+25, "128", 3))
+ break;
+ return Intrinsic::x86_sse42_pcmpestriz128; // "__builtin_ia32_pcmpestriz128"
+ }
+ break;
+ case 'i': // 5 strings to match.
+ if (memcmp(BuiltinName.data()+20, "stri", 4))
+ break;
+ switch (BuiltinName[24]) {
+ default: break;
+ case 'a': // 1 string to match.
+ if (memcmp(BuiltinName.data()+25, "128", 3))
+ break;
+ return Intrinsic::x86_sse42_pcmpistria128; // "__builtin_ia32_pcmpistria128"
+ case 'c': // 1 string to match.
+ if (memcmp(BuiltinName.data()+25, "128", 3))
+ break;
+ return Intrinsic::x86_sse42_pcmpistric128; // "__builtin_ia32_pcmpistric128"
+ case 'o': // 1 string to match.
+ if (memcmp(BuiltinName.data()+25, "128", 3))
+ break;
+ return Intrinsic::x86_sse42_pcmpistrio128; // "__builtin_ia32_pcmpistrio128"
+ case 's': // 1 string to match.
+ if (memcmp(BuiltinName.data()+25, "128", 3))
+ break;
+ return Intrinsic::x86_sse42_pcmpistris128; // "__builtin_ia32_pcmpistris128"
+ case 'z': // 1 string to match.
+ if (memcmp(BuiltinName.data()+25, "128", 3))
+ break;
+ return Intrinsic::x86_sse42_pcmpistriz128; // "__builtin_ia32_pcmpistriz128"
+ }
+ break;
+ }
+ break;
+ case 'h': // 1 string to match.
+ if (memcmp(BuiltinName.data()+17, "minposuw128", 11))
+ break;
+ return Intrinsic::x86_sse41_phminposuw; // "__builtin_ia32_phminposuw128"
+ }
+ break;
+ case 's': // 4 strings to match.
+ if (memcmp(BuiltinName.data()+16, "catter", 6))
+ break;
+ switch (BuiltinName[22]) {
+ default: break;
+ case 'd': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+23, "iv8d", 4))
+ break;
+ switch (BuiltinName[27]) {
+ default: break;
+ case 'f': // 1 string to match.
+ return Intrinsic::x86_avx512_scatter_qpd_512; // "__builtin_ia32_scatterdiv8df"
+ case 'i': // 1 string to match.
+ return Intrinsic::x86_avx512_scatter_qpq_512; // "__builtin_ia32_scatterdiv8di"
+ }
+ break;
+ case 's': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+23, "iv8d", 4))
+ break;
+ switch (BuiltinName[27]) {
+ default: break;
+ case 'f': // 1 string to match.
+ return Intrinsic::x86_avx512_scatter_dpd_512; // "__builtin_ia32_scattersiv8df"
+ case 'i': // 1 string to match.
+ return Intrinsic::x86_avx512_scatter_dpq_512; // "__builtin_ia32_scattersiv8di"
+ }
+ break;
+ }
+ break;
+ case 'v': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+16, "testnzcp", 8))
+ break;
+ switch (BuiltinName[24]) {
+ default: break;
+ case 'd': // 1 string to match.
+ if (memcmp(BuiltinName.data()+25, "256", 3))
+ break;
+ return Intrinsic::x86_avx_vtestnzc_pd_256; // "__builtin_ia32_vtestnzcpd256"
+ case 's': // 1 string to match.
+ if (memcmp(BuiltinName.data()+25, "256", 3))
+ break;
+ return Intrinsic::x86_avx_vtestnzc_ps_256; // "__builtin_ia32_vtestnzcps256"
+ }
+ break;
+ }
+ break;
+ case 29: // 40 strings to match.
+ if (memcmp(BuiltinName.data()+0, "__builtin_ia32_", 15))
+ break;
+ switch (BuiltinName[15]) {
+ default: break;
+ case 'e': // 1 string to match.
+ if (memcmp(BuiltinName.data()+16, "xtract128i256", 13))
+ break;
+ return Intrinsic::x86_avx2_vextracti128; // "__builtin_ia32_extract128i256"
+ case 'm': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+16, "askstorep", 9))
+ break;
+ switch (BuiltinName[25]) {
+ default: break;
+ case 'd': // 1 string to match.
+ if (memcmp(BuiltinName.data()+26, "256", 3))
+ break;
+ return Intrinsic::x86_avx_maskstore_pd_256; // "__builtin_ia32_maskstorepd256"
+ case 's': // 1 string to match.
+ if (memcmp(BuiltinName.data()+26, "256", 3))
+ break;
+ return Intrinsic::x86_avx_maskstore_ps_256; // "__builtin_ia32_maskstoreps256"
+ }
+ break;
+ case 'p': // 19 strings to match.
+ switch (BuiltinName[16]) {
+ default: break;
+ case 'b': // 10 strings to match.
+ if (memcmp(BuiltinName.data()+17, "roadcast", 8))
+ break;
+ switch (BuiltinName[25]) {
+ default: break;
+ case 'b': // 2 strings to match.
+ switch (BuiltinName[26]) {
+ default: break;
+ case '1': // 1 string to match.
+ if (memcmp(BuiltinName.data()+27, "28", 2))
+ break;
+ return Intrinsic::x86_avx2_pbroadcastb_128; // "__builtin_ia32_pbroadcastb128"
+ case '2': // 1 string to match.
+ if (memcmp(BuiltinName.data()+27, "56", 2))
+ break;
+ return Intrinsic::x86_avx2_pbroadcastb_256; // "__builtin_ia32_pbroadcastb256"
+ }
+ break;
+ case 'd': // 3 strings to match.
+ switch (BuiltinName[26]) {
+ default: break;
+ case '1': // 1 string to match.
+ if (memcmp(BuiltinName.data()+27, "28", 2))
+ break;
+ return Intrinsic::x86_avx2_pbroadcastd_128; // "__builtin_ia32_pbroadcastd128"
+ case '2': // 1 string to match.
+ if (memcmp(BuiltinName.data()+27, "56", 2))
+ break;
+ return Intrinsic::x86_avx2_pbroadcastd_256; // "__builtin_ia32_pbroadcastd256"
+ case '5': // 1 string to match.
+ if (memcmp(BuiltinName.data()+27, "12", 2))
+ break;
+ return Intrinsic::x86_avx512_pbroadcastd_512; // "__builtin_ia32_pbroadcastd512"
+ }
+ break;
+ case 'q': // 3 strings to match.
+ switch (BuiltinName[26]) {
+ default: break;
+ case '1': // 1 string to match.
+ if (memcmp(BuiltinName.data()+27, "28", 2))
+ break;
+ return Intrinsic::x86_avx2_pbroadcastq_128; // "__builtin_ia32_pbroadcastq128"
+ case '2': // 1 string to match.
+ if (memcmp(BuiltinName.data()+27, "56", 2))
+ break;
+ return Intrinsic::x86_avx2_pbroadcastq_256; // "__builtin_ia32_pbroadcastq256"
+ case '5': // 1 string to match.
+ if (memcmp(BuiltinName.data()+27, "12", 2))
+ break;
+ return Intrinsic::x86_avx512_pbroadcastq_512; // "__builtin_ia32_pbroadcastq512"
+ }
+ break;
+ case 'w': // 2 strings to match.
+ switch (BuiltinName[26]) {
+ default: break;
+ case '1': // 1 string to match.
+ if (memcmp(BuiltinName.data()+27, "28", 2))
+ break;
+ return Intrinsic::x86_avx2_pbroadcastw_128; // "__builtin_ia32_pbroadcastw128"
+ case '2': // 1 string to match.
+ if (memcmp(BuiltinName.data()+27, "56", 2))
+ break;
+ return Intrinsic::x86_avx2_pbroadcastw_256; // "__builtin_ia32_pbroadcastw256"
+ }
+ break;
+ }
+ break;
+ case 'm': // 9 strings to match.
+ switch (BuiltinName[17]) {
+ default: break;
+ case 'a': // 4 strings to match.
+ if (BuiltinName[18] != 'x')
+ break;
+ switch (BuiltinName[19]) {
+ default: break;
+ case 's': // 2 strings to match.
+ switch (BuiltinName[20]) {
+ default: break;
+ case 'd': // 1 string to match.
+ if (memcmp(BuiltinName.data()+21, "512_mask", 8))
+ break;
+ return Intrinsic::x86_avx512_mask_pmaxs_d_512; // "__builtin_ia32_pmaxsd512_mask"
+ case 'q': // 1 string to match.
+ if (memcmp(BuiltinName.data()+21, "512_mask", 8))
+ break;
+ return Intrinsic::x86_avx512_mask_pmaxs_q_512; // "__builtin_ia32_pmaxsq512_mask"
+ }
+ break;
+ case 'u': // 2 strings to match.
+ switch (BuiltinName[20]) {
+ default: break;
+ case 'd': // 1 string to match.
+ if (memcmp(BuiltinName.data()+21, "512_mask", 8))
+ break;
+ return Intrinsic::x86_avx512_mask_pmaxu_d_512; // "__builtin_ia32_pmaxud512_mask"
+ case 'q': // 1 string to match.
+ if (memcmp(BuiltinName.data()+21, "512_mask", 8))
+ break;
+ return Intrinsic::x86_avx512_mask_pmaxu_q_512; // "__builtin_ia32_pmaxuq512_mask"
+ }
+ break;
+ }
+ break;
+ case 'i': // 4 strings to match.
+ if (BuiltinName[18] != 'n')
+ break;
+ switch (BuiltinName[19]) {
+ default: break;
+ case 's': // 2 strings to match.
+ switch (BuiltinName[20]) {
+ default: break;
+ case 'd': // 1 string to match.
+ if (memcmp(BuiltinName.data()+21, "512_mask", 8))
+ break;
+ return Intrinsic::x86_avx512_mask_pmins_d_512; // "__builtin_ia32_pminsd512_mask"
+ case 'q': // 1 string to match.
+ if (memcmp(BuiltinName.data()+21, "512_mask", 8))
+ break;
+ return Intrinsic::x86_avx512_mask_pmins_q_512; // "__builtin_ia32_pminsq512_mask"
+ }
+ break;
+ case 'u': // 2 strings to match.
+ switch (BuiltinName[20]) {
+ default: break;
+ case 'd': // 1 string to match.
+ if (memcmp(BuiltinName.data()+21, "512_mask", 8))
+ break;
+ return Intrinsic::x86_avx512_mask_pminu_d_512; // "__builtin_ia32_pminud512_mask"
+ case 'q': // 1 string to match.
+ if (memcmp(BuiltinName.data()+21, "512_mask", 8))
+ break;
+ return Intrinsic::x86_avx512_mask_pminu_q_512; // "__builtin_ia32_pminuq512_mask"
+ }
+ break;
+ }
+ break;
+ case 'u': // 1 string to match.
+ if (memcmp(BuiltinName.data()+18, "ldq512_mask", 11))
+ break;
+ return Intrinsic::x86_avx512_mask_pmul_dq_512; // "__builtin_ia32_pmuldq512_mask"
+ }
+ break;
+ }
+ break;
+ case 'r': // 6 strings to match.
+ if (memcmp(BuiltinName.data()+16, "sqrt", 4))
+ break;
+ switch (BuiltinName[20]) {
+ default: break;
+ case '1': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+21, "4s", 2))
+ break;
+ switch (BuiltinName[23]) {
+ default: break;
+ case 'd': // 1 string to match.
+ if (memcmp(BuiltinName.data()+24, "_mask", 5))
+ break;
+ return Intrinsic::x86_avx512_rsqrt14_sd; // "__builtin_ia32_rsqrt14sd_mask"
+ case 's': // 1 string to match.
+ if (memcmp(BuiltinName.data()+24, "_mask", 5))
+ break;
+ return Intrinsic::x86_avx512_rsqrt14_ss; // "__builtin_ia32_rsqrt14ss_mask"
+ }
+ break;
+ case '2': // 4 strings to match.
+ if (BuiltinName[21] != '8')
+ break;
+ switch (BuiltinName[22]) {
+ default: break;
+ case 'p': // 2 strings to match.
+ switch (BuiltinName[23]) {
+ default: break;
+ case 'd': // 1 string to match.
+ if (memcmp(BuiltinName.data()+24, "_mask", 5))
+ break;
+ return Intrinsic::x86_avx512_rsqrt28_pd; // "__builtin_ia32_rsqrt28pd_mask"
+ case 's': // 1 string to match.
+ if (memcmp(BuiltinName.data()+24, "_mask", 5))
+ break;
+ return Intrinsic::x86_avx512_rsqrt28_ps; // "__builtin_ia32_rsqrt28ps_mask"
+ }
+ break;
+ case 's': // 2 strings to match.
+ switch (BuiltinName[23]) {
+ default: break;
+ case 'd': // 1 string to match.
+ if (memcmp(BuiltinName.data()+24, "_mask", 5))
+ break;
+ return Intrinsic::x86_avx512_rsqrt28_sd; // "__builtin_ia32_rsqrt28sd_mask"
+ case 's': // 1 string to match.
+ if (memcmp(BuiltinName.data()+24, "_mask", 5))
+ break;
+ return Intrinsic::x86_avx512_rsqrt28_ss; // "__builtin_ia32_rsqrt28ss_mask"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 's': // 4 strings to match.
+ if (memcmp(BuiltinName.data()+16, "catter", 6))
+ break;
+ switch (BuiltinName[22]) {
+ default: break;
+ case 'd': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+23, "iv16s", 5))
+ break;
+ switch (BuiltinName[28]) {
+ default: break;
+ case 'f': // 1 string to match.
+ return Intrinsic::x86_avx512_scatter_qps_512; // "__builtin_ia32_scatterdiv16sf"
+ case 'i': // 1 string to match.
+ return Intrinsic::x86_avx512_scatter_qpi_512; // "__builtin_ia32_scatterdiv16si"
+ }
+ break;
+ case 's': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+23, "iv16s", 5))
+ break;
+ switch (BuiltinName[28]) {
+ default: break;
+ case 'f': // 1 string to match.
+ return Intrinsic::x86_avx512_scatter_dps_512; // "__builtin_ia32_scattersiv16sf"
+ case 'i': // 1 string to match.
+ return Intrinsic::x86_avx512_scatter_dpi_512; // "__builtin_ia32_scattersiv16si"
+ }
+ break;
+ }
+ break;
+ case 'v': // 8 strings to match.
+ if (memcmp(BuiltinName.data()+16, "fm", 2))
+ break;
+ switch (BuiltinName[18]) {
+ default: break;
+ case 'a': // 4 strings to match.
+ if (memcmp(BuiltinName.data()+19, "ddsubp", 6))
+ break;
+ switch (BuiltinName[25]) {
+ default: break;
+ case 'd': // 2 strings to match.
+ switch (BuiltinName[26]) {
+ default: break;
+ case '2': // 1 string to match.
+ if (memcmp(BuiltinName.data()+27, "56", 2))
+ break;
+ return Intrinsic::x86_fma_vfmaddsub_pd_256; // "__builtin_ia32_vfmaddsubpd256"
+ case '5': // 1 string to match.
+ if (memcmp(BuiltinName.data()+27, "12", 2))
+ break;
+ return Intrinsic::x86_fma_vfmaddsub_pd_512; // "__builtin_ia32_vfmaddsubpd512"
+ }
+ break;
+ case 's': // 2 strings to match.
+ switch (BuiltinName[26]) {
+ default: break;
+ case '2': // 1 string to match.
+ if (memcmp(BuiltinName.data()+27, "56", 2))
+ break;
+ return Intrinsic::x86_fma_vfmaddsub_ps_256; // "__builtin_ia32_vfmaddsubps256"
+ case '5': // 1 string to match.
+ if (memcmp(BuiltinName.data()+27, "12", 2))
+ break;
+ return Intrinsic::x86_fma_vfmaddsub_ps_512; // "__builtin_ia32_vfmaddsubps512"
+ }
+ break;
+ }
+ break;
+ case 's': // 4 strings to match.
+ if (memcmp(BuiltinName.data()+19, "ubaddp", 6))
+ break;
+ switch (BuiltinName[25]) {
+ default: break;
+ case 'd': // 2 strings to match.
+ switch (BuiltinName[26]) {
+ default: break;
+ case '2': // 1 string to match.
+ if (memcmp(BuiltinName.data()+27, "56", 2))
+ break;
+ return Intrinsic::x86_fma_vfmsubadd_pd_256; // "__builtin_ia32_vfmsubaddpd256"
+ case '5': // 1 string to match.
+ if (memcmp(BuiltinName.data()+27, "12", 2))
+ break;
+ return Intrinsic::x86_fma_vfmsubadd_pd_512; // "__builtin_ia32_vfmsubaddpd512"
+ }
+ break;
+ case 's': // 2 strings to match.
+ switch (BuiltinName[26]) {
+ default: break;
+ case '2': // 1 string to match.
+ if (memcmp(BuiltinName.data()+27, "56", 2))
+ break;
+ return Intrinsic::x86_fma_vfmsubadd_ps_256; // "__builtin_ia32_vfmsubaddps256"
+ case '5': // 1 string to match.
+ if (memcmp(BuiltinName.data()+27, "12", 2))
+ break;
+ return Intrinsic::x86_fma_vfmsubadd_ps_512; // "__builtin_ia32_vfmsubaddps512"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 30: // 14 strings to match.
+ if (memcmp(BuiltinName.data()+0, "__builtin_ia32_", 15))
+ break;
+ switch (BuiltinName[15]) {
+ default: break;
+ case 'l': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+16, "oadup", 5))
+ break;
+ switch (BuiltinName[21]) {
+ default: break;
+ case 'd': // 1 string to match.
+ if (memcmp(BuiltinName.data()+22, "512_mask", 8))
+ break;
+ return Intrinsic::x86_avx512_mask_loadu_pd_512; // "__builtin_ia32_loadupd512_mask"
+ case 's': // 1 string to match.
+ if (memcmp(BuiltinName.data()+22, "512_mask", 8))
+ break;
+ return Intrinsic::x86_avx512_mask_loadu_ps_512; // "__builtin_ia32_loadups512_mask"
+ }
+ break;
+ case 'p': // 3 strings to match.
+ switch (BuiltinName[16]) {
+ default: break;
+ case 'c': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+17, "mpeq", 4))
+ break;
+ switch (BuiltinName[21]) {
+ default: break;
+ case 'd': // 1 string to match.
+ if (memcmp(BuiltinName.data()+22, "512_mask", 8))
+ break;
+ return Intrinsic::x86_avx512_mask_pcmpeq_d_512; // "__builtin_ia32_pcmpeqd512_mask"
+ case 'q': // 1 string to match.
+ if (memcmp(BuiltinName.data()+22, "512_mask", 8))
+ break;
+ return Intrinsic::x86_avx512_mask_pcmpeq_q_512; // "__builtin_ia32_pcmpeqq512_mask"
+ }
+ break;
+ case 'm': // 1 string to match.
+ if (memcmp(BuiltinName.data()+17, "uludq512_mask", 13))
+ break;
+ return Intrinsic::x86_avx512_mask_pmulu_dq_512; // "__builtin_ia32_pmuludq512_mask"
+ }
+ break;
+ case 'r': // 4 strings to match.
+ switch (BuiltinName[16]) {
+ default: break;
+ case 'c': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+17, "p14p", 4))
+ break;
+ switch (BuiltinName[21]) {
+ default: break;
+ case 'd': // 1 string to match.
+ if (memcmp(BuiltinName.data()+22, "512_mask", 8))
+ break;
+ return Intrinsic::x86_avx512_rcp14_pd_512; // "__builtin_ia32_rcp14pd512_mask"
+ case 's': // 1 string to match.
+ if (memcmp(BuiltinName.data()+22, "512_mask", 8))
+ break;
+ return Intrinsic::x86_avx512_rcp14_ps_512; // "__builtin_ia32_rcp14ps512_mask"
+ }
+ break;
+ case 'n': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+17, "dscalep", 7))
+ break;
+ switch (BuiltinName[24]) {
+ default: break;
+ case 'd': // 1 string to match.
+ if (memcmp(BuiltinName.data()+25, "_mask", 5))
+ break;
+ return Intrinsic::x86_avx512_mask_rndscale_pd_512; // "__builtin_ia32_rndscalepd_mask"
+ case 's': // 1 string to match.
+ if (memcmp(BuiltinName.data()+25, "_mask", 5))
+ break;
+ return Intrinsic::x86_avx512_mask_rndscale_ps_512; // "__builtin_ia32_rndscaleps_mask"
+ }
+ break;
+ }
+ break;
+ case 'v': // 5 strings to match.
+ switch (BuiltinName[16]) {
+ default: break;
+ case 'b': // 3 strings to match.
+ if (memcmp(BuiltinName.data()+17, "roadcasts", 9))
+ break;
+ switch (BuiltinName[26]) {
+ default: break;
+ case 'd': // 1 string to match.
+ if (memcmp(BuiltinName.data()+27, "512", 3))
+ break;
+ return Intrinsic::x86_avx512_vbroadcast_sd_512; // "__builtin_ia32_vbroadcastsd512"
+ case 's': // 2 strings to match.
+ switch (BuiltinName[27]) {
+ default: break;
+ case '5': // 1 string to match.
+ if (memcmp(BuiltinName.data()+28, "12", 2))
+ break;
+ return Intrinsic::x86_avx512_vbroadcast_ss_512; // "__builtin_ia32_vbroadcastss512"
+ case '_': // 1 string to match.
+ if (memcmp(BuiltinName.data()+28, "ps", 2))
+ break;
+ return Intrinsic::x86_avx2_vbroadcast_ss_ps; // "__builtin_ia32_vbroadcastss_ps"
+ }
+ break;
+ }
+ break;
+ case 'p': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+17, "ermilvarp", 9))
+ break;
+ switch (BuiltinName[26]) {
+ default: break;
+ case 'd': // 1 string to match.
+ if (memcmp(BuiltinName.data()+27, "256", 3))
+ break;
+ return Intrinsic::x86_avx_vpermilvar_pd_256; // "__builtin_ia32_vpermilvarpd256"
+ case 's': // 1 string to match.
+ if (memcmp(BuiltinName.data()+27, "256", 3))
+ break;
+ return Intrinsic::x86_avx_vpermilvar_ps_256; // "__builtin_ia32_vpermilvarps256"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 31: // 12 strings to match.
+ if (memcmp(BuiltinName.data()+0, "__builtin_ia32_", 15))
+ break;
+ switch (BuiltinName[15]) {
+ default: break;
+ case 'b': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+16, "lendm", 5))
+ break;
+ switch (BuiltinName[21]) {
+ default: break;
+ case 'd': // 1 string to match.
+ if (memcmp(BuiltinName.data()+22, "_512_mask", 9))
+ break;
+ return Intrinsic::x86_avx512_mask_blend_d_512; // "__builtin_ia32_blendmd_512_mask"
+ case 'q': // 1 string to match.
+ if (memcmp(BuiltinName.data()+22, "_512_mask", 9))
+ break;
+ return Intrinsic::x86_avx512_mask_blend_q_512; // "__builtin_ia32_blendmq_512_mask"
+ }
+ break;
+ case 'c': // 5 strings to match.
+ if (memcmp(BuiltinName.data()+16, "vt", 2))
+ break;
+ switch (BuiltinName[18]) {
+ default: break;
+ case 'd': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+19, "q2p", 3))
+ break;
+ switch (BuiltinName[22]) {
+ default: break;
+ case 'd': // 1 string to match.
+ if (memcmp(BuiltinName.data()+23, "512_mask", 8))
+ break;
+ return Intrinsic::x86_avx512_mask_cvtdq2pd_512; // "__builtin_ia32_cvtdq2pd512_mask"
+ case 's': // 1 string to match.
+ if (memcmp(BuiltinName.data()+23, "512_mask", 8))
+ break;
+ return Intrinsic::x86_avx512_mask_cvtdq2ps_512; // "__builtin_ia32_cvtdq2ps512_mask"
+ }
+ break;
+ case 'p': // 3 strings to match.
+ switch (BuiltinName[19]) {
+ default: break;
+ case 'd': // 2 strings to match.
+ if (BuiltinName[20] != '2')
+ break;
+ switch (BuiltinName[21]) {
+ default: break;
+ case 'd': // 1 string to match.
+ if (memcmp(BuiltinName.data()+22, "q512_mask", 9))
+ break;
+ return Intrinsic::x86_avx512_mask_cvtpd2dq_512; // "__builtin_ia32_cvtpd2dq512_mask"
+ case 'p': // 1 string to match.
+ if (memcmp(BuiltinName.data()+22, "s512_mask", 9))
+ break;
+ return Intrinsic::x86_avx512_mask_cvtpd2ps_512; // "__builtin_ia32_cvtpd2ps512_mask"
+ }
+ break;
+ case 's': // 1 string to match.
+ if (memcmp(BuiltinName.data()+20, "2dq512_mask", 11))
+ break;
+ return Intrinsic::x86_avx512_mask_cvtps2dq_512; // "__builtin_ia32_cvtps2dq512_mask"
+ }
+ break;
+ }
+ break;
+ case 's': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+16, "toreup", 6))
+ break;
+ switch (BuiltinName[22]) {
+ default: break;
+ case 'd': // 1 string to match.
+ if (memcmp(BuiltinName.data()+23, "512_mask", 8))
+ break;
+ return Intrinsic::x86_avx512_mask_storeu_pd_512; // "__builtin_ia32_storeupd512_mask"
+ case 's': // 1 string to match.
+ if (memcmp(BuiltinName.data()+23, "512_mask", 8))
+ break;
+ return Intrinsic::x86_avx512_mask_storeu_ps_512; // "__builtin_ia32_storeups512_mask"
+ }
+ break;
+ case 'v': // 3 strings to match.
+ if (memcmp(BuiltinName.data()+16, "perm2f128_", 10))
+ break;
+ switch (BuiltinName[26]) {
+ default: break;
+ case 'p': // 2 strings to match.
+ switch (BuiltinName[27]) {
+ default: break;
+ case 'd': // 1 string to match.
+ if (memcmp(BuiltinName.data()+28, "256", 3))
+ break;
+ return Intrinsic::x86_avx_vperm2f128_pd_256; // "__builtin_ia32_vperm2f128_pd256"
+ case 's': // 1 string to match.
+ if (memcmp(BuiltinName.data()+28, "256", 3))
+ break;
+ return Intrinsic::x86_avx_vperm2f128_ps_256; // "__builtin_ia32_vperm2f128_ps256"
+ }
+ break;
+ case 's': // 1 string to match.
+ if (memcmp(BuiltinName.data()+27, "i256", 4))
+ break;
+ return Intrinsic::x86_avx_vperm2f128_si_256; // "__builtin_ia32_vperm2f128_si256"
+ }
+ break;
+ }
+ break;
+ case 32: // 19 strings to match.
+ if (memcmp(BuiltinName.data()+0, "__builtin_ia32_", 15))
+ break;
+ switch (BuiltinName[15]) {
+ default: break;
+ case 'b': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+16, "lendmp", 6))
+ break;
+ switch (BuiltinName[22]) {
+ default: break;
+ case 'd': // 1 string to match.
+ if (memcmp(BuiltinName.data()+23, "_512_mask", 9))
+ break;
+ return Intrinsic::x86_avx512_mask_blend_pd_512; // "__builtin_ia32_blendmpd_512_mask"
+ case 's': // 1 string to match.
+ if (memcmp(BuiltinName.data()+23, "_512_mask", 9))
+ break;
+ return Intrinsic::x86_avx512_mask_blend_ps_512; // "__builtin_ia32_blendmps_512_mask"
+ }
+ break;
+ case 'c': // 6 strings to match.
+ if (memcmp(BuiltinName.data()+16, "vt", 2))
+ break;
+ switch (BuiltinName[18]) {
+ default: break;
+ case 'p': // 2 strings to match.
+ switch (BuiltinName[19]) {
+ default: break;
+ case 'd': // 1 string to match.
+ if (memcmp(BuiltinName.data()+20, "2udq512_mask", 12))
+ break;
+ return Intrinsic::x86_avx512_mask_cvtpd2udq_512; // "__builtin_ia32_cvtpd2udq512_mask"
+ case 's': // 1 string to match.
+ if (memcmp(BuiltinName.data()+20, "2udq512_mask", 12))
+ break;
+ return Intrinsic::x86_avx512_mask_cvtps2udq_512; // "__builtin_ia32_cvtps2udq512_mask"
+ }
+ break;
+ case 't': // 2 strings to match.
+ if (BuiltinName[19] != 'p')
+ break;
+ switch (BuiltinName[20]) {
+ default: break;
+ case 'd': // 1 string to match.
+ if (memcmp(BuiltinName.data()+21, "2dq512_mask", 11))
+ break;
+ return Intrinsic::x86_avx512_mask_cvttpd2dq_512; // "__builtin_ia32_cvttpd2dq512_mask"
+ case 's': // 1 string to match.
+ if (memcmp(BuiltinName.data()+21, "2dq512_mask", 11))
+ break;
+ return Intrinsic::x86_avx512_mask_cvttps2dq_512; // "__builtin_ia32_cvttps2dq512_mask"
+ }
+ break;
+ case 'u': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+19, "dq2p", 4))
+ break;
+ switch (BuiltinName[23]) {
+ default: break;
+ case 'd': // 1 string to match.
+ if (memcmp(BuiltinName.data()+24, "512_mask", 8))
+ break;
+ return Intrinsic::x86_avx512_mask_cvtudq2pd_512; // "__builtin_ia32_cvtudq2pd512_mask"
+ case 's': // 1 string to match.
+ if (memcmp(BuiltinName.data()+24, "512_mask", 8))
+ break;
+ return Intrinsic::x86_avx512_mask_cvtudq2ps_512; // "__builtin_ia32_cvtudq2ps512_mask"
+ }
+ break;
+ }
+ break;
+ case 'l': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+16, "oaddqu", 6))
+ break;
+ switch (BuiltinName[22]) {
+ default: break;
+ case 'd': // 1 string to match.
+ if (memcmp(BuiltinName.data()+23, "i512_mask", 9))
+ break;
+ return Intrinsic::x86_avx512_mask_loadu_q_512; // "__builtin_ia32_loaddqudi512_mask"
+ case 's': // 1 string to match.
+ if (memcmp(BuiltinName.data()+23, "i512_mask", 9))
+ break;
+ return Intrinsic::x86_avx512_mask_loadu_d_512; // "__builtin_ia32_loaddqusi512_mask"
+ }
+ break;
+ case 'r': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+16, "sqrt14p", 7))
+ break;
+ switch (BuiltinName[23]) {
+ default: break;
+ case 'd': // 1 string to match.
+ if (memcmp(BuiltinName.data()+24, "512_mask", 8))
+ break;
+ return Intrinsic::x86_avx512_rsqrt14_pd_512; // "__builtin_ia32_rsqrt14pd512_mask"
+ case 's': // 1 string to match.
+ if (memcmp(BuiltinName.data()+24, "512_mask", 8))
+ break;
+ return Intrinsic::x86_avx512_rsqrt14_ps_512; // "__builtin_ia32_rsqrt14ps512_mask"
+ }
+ break;
+ case 'v': // 7 strings to match.
+ switch (BuiltinName[16]) {
+ default: break;
+ case 'c': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+17, "vtp", 3))
+ break;
+ switch (BuiltinName[20]) {
+ default: break;
+ case 'h': // 1 string to match.
+ if (memcmp(BuiltinName.data()+21, "2ps512_mask", 11))
+ break;
+ return Intrinsic::x86_avx512_mask_vcvtph2ps_512; // "__builtin_ia32_vcvtph2ps512_mask"
+ case 's': // 1 string to match.
+ if (memcmp(BuiltinName.data()+21, "2ph512_mask", 11))
+ break;
+ return Intrinsic::x86_avx512_mask_vcvtps2ph_512; // "__builtin_ia32_vcvtps2ph512_mask"
+ }
+ break;
+ case 'i': // 3 strings to match.
+ if (memcmp(BuiltinName.data()+17, "nsertf128_", 10))
+ break;
+ switch (BuiltinName[27]) {
+ default: break;
+ case 'p': // 2 strings to match.
+ switch (BuiltinName[28]) {
+ default: break;
+ case 'd': // 1 string to match.
+ if (memcmp(BuiltinName.data()+29, "256", 3))
+ break;
+ return Intrinsic::x86_avx_vinsertf128_pd_256; // "__builtin_ia32_vinsertf128_pd256"
+ case 's': // 1 string to match.
+ if (memcmp(BuiltinName.data()+29, "256", 3))
+ break;
+ return Intrinsic::x86_avx_vinsertf128_ps_256; // "__builtin_ia32_vinsertf128_ps256"
+ }
+ break;
+ case 's': // 1 string to match.
+ if (memcmp(BuiltinName.data()+28, "i256", 4))
+ break;
+ return Intrinsic::x86_avx_vinsertf128_si_256; // "__builtin_ia32_vinsertf128_si256"
+ }
+ break;
+ case 'p': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+17, "lzcnt", 5))
+ break;
+ switch (BuiltinName[22]) {
+ default: break;
+ case 'd': // 1 string to match.
+ if (memcmp(BuiltinName.data()+23, "_512_mask", 9))
+ break;
+ return Intrinsic::x86_avx512_mask_lzcnt_d_512; // "__builtin_ia32_vplzcntd_512_mask"
+ case 'q': // 1 string to match.
+ if (memcmp(BuiltinName.data()+23, "_512_mask", 9))
+ break;
+ return Intrinsic::x86_avx512_mask_lzcnt_q_512; // "__builtin_ia32_vplzcntq_512_mask"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 33: // 12 strings to match.
+ if (memcmp(BuiltinName.data()+0, "__builtin_ia32_", 15))
+ break;
+ switch (BuiltinName[15]) {
+ default: break;
+ case 'a': // 1 string to match.
+ if (memcmp(BuiltinName.data()+16, "eskeygenassist128", 17))
+ break;
+ return Intrinsic::x86_aesni_aeskeygenassist; // "__builtin_ia32_aeskeygenassist128"
+ case 'c': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+16, "vttp", 4))
+ break;
+ switch (BuiltinName[20]) {
+ default: break;
+ case 'd': // 1 string to match.
+ if (memcmp(BuiltinName.data()+21, "2udq512_mask", 12))
+ break;
+ return Intrinsic::x86_avx512_mask_cvttpd2udq_512; // "__builtin_ia32_cvttpd2udq512_mask"
+ case 's': // 1 string to match.
+ if (memcmp(BuiltinName.data()+21, "2udq512_mask", 12))
+ break;
+ return Intrinsic::x86_avx512_mask_cvttps2udq_512; // "__builtin_ia32_cvttps2udq512_mask"
+ }
+ break;
+ case 's': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+16, "toredqu", 7))
+ break;
+ switch (BuiltinName[23]) {
+ default: break;
+ case 'd': // 1 string to match.
+ if (memcmp(BuiltinName.data()+24, "i512_mask", 9))
+ break;
+ return Intrinsic::x86_avx512_mask_storeu_q_512; // "__builtin_ia32_storedqudi512_mask"
+ case 's': // 1 string to match.
+ if (memcmp(BuiltinName.data()+24, "i512_mask", 9))
+ break;
+ return Intrinsic::x86_avx512_mask_storeu_d_512; // "__builtin_ia32_storedqusi512_mask"
+ }
+ break;
+ case 'v': // 7 strings to match.
+ switch (BuiltinName[16]) {
+ default: break;
+ case 'b': // 4 strings to match.
+ if (memcmp(BuiltinName.data()+17, "roadcasts", 9))
+ break;
+ switch (BuiltinName[26]) {
+ default: break;
+ case 'd': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+27, "_pd", 3))
+ break;
+ switch (BuiltinName[30]) {
+ default: break;
+ case '2': // 1 string to match.
+ if (memcmp(BuiltinName.data()+31, "56", 2))
+ break;
+ return Intrinsic::x86_avx2_vbroadcast_sd_pd_256; // "__builtin_ia32_vbroadcastsd_pd256"
+ case '5': // 1 string to match.
+ if (memcmp(BuiltinName.data()+31, "12", 2))
+ break;
+ return Intrinsic::x86_avx512_vbroadcast_sd_pd_512; // "__builtin_ia32_vbroadcastsd_pd512"
+ }
+ break;
+ case 's': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+27, "_ps", 3))
+ break;
+ switch (BuiltinName[30]) {
+ default: break;
+ case '2': // 1 string to match.
+ if (memcmp(BuiltinName.data()+31, "56", 2))
+ break;
+ return Intrinsic::x86_avx2_vbroadcast_ss_ps_256; // "__builtin_ia32_vbroadcastss_ps256"
+ case '5': // 1 string to match.
+ if (memcmp(BuiltinName.data()+31, "12", 2))
+ break;
+ return Intrinsic::x86_avx512_vbroadcast_ss_ps_512; // "__builtin_ia32_vbroadcastss_ps512"
+ }
+ break;
+ }
+ break;
+ case 'e': // 3 strings to match.
+ if (memcmp(BuiltinName.data()+17, "xtractf128_", 11))
+ break;
+ switch (BuiltinName[28]) {
+ default: break;
+ case 'p': // 2 strings to match.
+ switch (BuiltinName[29]) {
+ default: break;
+ case 'd': // 1 string to match.
+ if (memcmp(BuiltinName.data()+30, "256", 3))
+ break;
+ return Intrinsic::x86_avx_vextractf128_pd_256; // "__builtin_ia32_vextractf128_pd256"
+ case 's': // 1 string to match.
+ if (memcmp(BuiltinName.data()+30, "256", 3))
+ break;
+ return Intrinsic::x86_avx_vextractf128_ps_256; // "__builtin_ia32_vextractf128_ps256"
+ }
+ break;
+ case 's': // 1 string to match.
+ if (memcmp(BuiltinName.data()+29, "i256", 4))
+ break;
+ return Intrinsic::x86_avx_vextractf128_si_256; // "__builtin_ia32_vextractf128_si256"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 34: // 2 strings to match.
+ if (memcmp(BuiltinName.data()+0, "__builtin_ia32_vpermt2var", 25))
+ break;
+ switch (BuiltinName[25]) {
+ default: break;
+ case 'd': // 1 string to match.
+ if (memcmp(BuiltinName.data()+26, "512_mask", 8))
+ break;
+ return Intrinsic::x86_avx512_mask_vpermt_d_512; // "__builtin_ia32_vpermt2vard512_mask"
+ case 'q': // 1 string to match.
+ if (memcmp(BuiltinName.data()+26, "512_mask", 8))
+ break;
+ return Intrinsic::x86_avx512_mask_vpermt_q_512; // "__builtin_ia32_vpermt2varq512_mask"
+ }
+ break;
+ case 35: // 10 strings to match.
+ if (memcmp(BuiltinName.data()+0, "__builtin_ia32_", 15))
+ break;
+ switch (BuiltinName[15]) {
+ default: break;
+ case 'p': // 6 strings to match.
+ if (BuiltinName[16] != 's')
+ break;
+ switch (BuiltinName[17]) {
+ default: break;
+ case 'l': // 3 strings to match.
+ if (memcmp(BuiltinName.data()+18, "ldqi", 4))
+ break;
+ switch (BuiltinName[22]) {
+ default: break;
+ case '1': // 1 string to match.
+ if (memcmp(BuiltinName.data()+23, "28_byteshift", 12))
+ break;
+ return Intrinsic::x86_sse2_psll_dq_bs; // "__builtin_ia32_pslldqi128_byteshift"
+ case '2': // 1 string to match.
+ if (memcmp(BuiltinName.data()+23, "56_byteshift", 12))
+ break;
+ return Intrinsic::x86_avx2_psll_dq_bs; // "__builtin_ia32_pslldqi256_byteshift"
+ case '5': // 1 string to match.
+ if (memcmp(BuiltinName.data()+23, "12_byteshift", 12))
+ break;
+ return Intrinsic::x86_avx512_psll_dq_bs; // "__builtin_ia32_pslldqi512_byteshift"
+ }
+ break;
+ case 'r': // 3 strings to match.
+ if (memcmp(BuiltinName.data()+18, "ldqi", 4))
+ break;
+ switch (BuiltinName[22]) {
+ default: break;
+ case '1': // 1 string to match.
+ if (memcmp(BuiltinName.data()+23, "28_byteshift", 12))
+ break;
+ return Intrinsic::x86_sse2_psrl_dq_bs; // "__builtin_ia32_psrldqi128_byteshift"
+ case '2': // 1 string to match.
+ if (memcmp(BuiltinName.data()+23, "56_byteshift", 12))
+ break;
+ return Intrinsic::x86_avx2_psrl_dq_bs; // "__builtin_ia32_psrldqi256_byteshift"
+ case '5': // 1 string to match.
+ if (memcmp(BuiltinName.data()+23, "12_byteshift", 12))
+ break;
+ return Intrinsic::x86_avx512_psrl_dq_bs; // "__builtin_ia32_psrldqi512_byteshift"
+ }
+ break;
+ }
+ break;
+ case 'v': // 4 strings to match.
+ switch (BuiltinName[16]) {
+ default: break;
+ case 'b': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+17, "roadcastf128_p", 14))
+ break;
+ switch (BuiltinName[31]) {
+ default: break;
+ case 'd': // 1 string to match.
+ if (memcmp(BuiltinName.data()+32, "256", 3))
+ break;
+ return Intrinsic::x86_avx_vbroadcastf128_pd_256; // "__builtin_ia32_vbroadcastf128_pd256"
+ case 's': // 1 string to match.
+ if (memcmp(BuiltinName.data()+32, "256", 3))
+ break;
+ return Intrinsic::x86_avx_vbroadcastf128_ps_256; // "__builtin_ia32_vbroadcastf128_ps256"
+ }
+ break;
+ case 'p': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+17, "ermt2varp", 9))
+ break;
+ switch (BuiltinName[26]) {
+ default: break;
+ case 'd': // 1 string to match.
+ if (memcmp(BuiltinName.data()+27, "512_mask", 8))
+ break;
+ return Intrinsic::x86_avx512_mask_vpermt_pd_512; // "__builtin_ia32_vpermt2varpd512_mask"
+ case 's': // 1 string to match.
+ if (memcmp(BuiltinName.data()+27, "512_mask", 8))
+ break;
+ return Intrinsic::x86_avx512_mask_vpermt_ps_512; // "__builtin_ia32_vpermt2varps512_mask"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ case 36: // 2 strings to match.
+ if (memcmp(BuiltinName.data()+0, "__builtin_ia32_vpconflict", 25))
+ break;
+ switch (BuiltinName[25]) {
+ default: break;
+ case 'd': // 1 string to match.
+ if (memcmp(BuiltinName.data()+26, "i_512_mask", 10))
+ break;
+ return Intrinsic::x86_avx512_mask_conflict_q_512; // "__builtin_ia32_vpconflictdi_512_mask"
+ case 's': // 1 string to match.
+ if (memcmp(BuiltinName.data()+26, "i_512_mask", 10))
+ break;
+ return Intrinsic::x86_avx512_mask_conflict_d_512; // "__builtin_ia32_vpconflictsi_512_mask"
+ }
+ break;
+ case 38: // 3 strings to match.
+ if (memcmp(BuiltinName.data()+0, "__builtin_ia32_pbroadcast", 25))
+ break;
+ switch (BuiltinName[25]) {
+ default: break;
+ case 'd': // 1 string to match.
+ if (memcmp(BuiltinName.data()+26, "512_gpr_mask", 12))
+ break;
+ return Intrinsic::x86_avx512_mask_pbroadcast_d_gpr_512; // "__builtin_ia32_pbroadcastd512_gpr_mask"
+ case 'q': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+26, "512_", 4))
+ break;
+ switch (BuiltinName[30]) {
+ default: break;
+ case 'g': // 1 string to match.
+ if (memcmp(BuiltinName.data()+31, "pr_mask", 7))
+ break;
+ return Intrinsic::x86_avx512_mask_pbroadcast_q_gpr_512; // "__builtin_ia32_pbroadcastq512_gpr_mask"
+ case 'm': // 1 string to match.
+ if (memcmp(BuiltinName.data()+31, "em_mask", 7))
+ break;
+ return Intrinsic::x86_avx512_mask_pbroadcast_q_mem_512; // "__builtin_ia32_pbroadcastq512_mem_mask"
+ }
+ break;
+ }
+ break;
+ }
+ }
+ if (TargetPrefix == "xcore") {
+ switch (BuiltinName.size()) {
+ default: break;
+ case 15: // 3 strings to match.
+ if (memcmp(BuiltinName.data()+0, "__builtin_", 10))
+ break;
+ switch (BuiltinName[10]) {
+ default: break;
+ case 'g': // 2 strings to match.
+ if (memcmp(BuiltinName.data()+11, "et", 2))
+ break;
+ switch (BuiltinName[13]) {
+ default: break;
+ case 'i': // 1 string to match.
+ if (BuiltinName[14] != 'd')
+ break;
+ return Intrinsic::xcore_getid; // "__builtin_getid"
+ case 'p': // 1 string to match.
+ if (BuiltinName[14] != 's')
+ break;
+ return Intrinsic::xcore_getps; // "__builtin_getps"
+ }
+ break;
+ case 's': // 1 string to match.
+ if (memcmp(BuiltinName.data()+11, "etps", 4))
+ break;
+ return Intrinsic::xcore_setps; // "__builtin_setps"
+ }
+ break;
+ case 16: // 1 string to match.
+ if (memcmp(BuiltinName.data()+0, "__builtin_bitrev", 16))
+ break;
+ return Intrinsic::xcore_bitrev; // "__builtin_bitrev"
+ }
+ }
+ return Intrinsic::not_intrinsic;
+}
+#endif
+
+// Get the LLVM intrinsic that corresponds to a MS builtin.
+// This is used by the C front-end. The MS builtin name is passed
+// in as a BuiltinName, and a target prefix (e.g. 'arm') is passed
+// in as a TargetPrefix. The result is assigned to 'IntrinsicID'.
+#ifdef GET_LLVM_INTRINSIC_FOR_MS_BUILTIN
+Intrinsic::ID Intrinsic::getIntrinsicForMSBuiltin(const char *TP, const char *BN) {
+ StringRef BuiltinName(BN);
+ StringRef TargetPrefix(TP);
+
+ if (TargetPrefix == "arm") {
+ switch (BuiltinName.size()) {
+ default: break;
+ case 5: // 3 strings to match.
+ if (memcmp(BuiltinName.data()+0, "__", 2))
+ break;
+ switch (BuiltinName[2]) {
+ default: break;
+ case 'd': // 2 strings to match.
+ switch (BuiltinName[3]) {
+ default: break;
+ case 'm': // 1 string to match.
+ if (BuiltinName[4] != 'b')
+ break;
+ return Intrinsic::arm_dmb; // "__dmb"
+ case 's': // 1 string to match.
+ if (BuiltinName[4] != 'b')
+ break;
+ return Intrinsic::arm_dsb; // "__dsb"
+ }
+ break;
+ case 'i': // 1 string to match.
+ if (memcmp(BuiltinName.data()+3, "sb", 2))
+ break;
+ return Intrinsic::arm_isb; // "__isb"
+ }
+ break;
+ case 18: // 1 string to match.
+ if (memcmp(BuiltinName.data()+0, "_MoveToCoprocessor", 18))
+ break;
+ return Intrinsic::arm_mcr; // "_MoveToCoprocessor"
+ case 19: // 1 string to match.
+ if (memcmp(BuiltinName.data()+0, "_MoveToCoprocessor2", 19))
+ break;
+ return Intrinsic::arm_mcr2; // "_MoveToCoprocessor2"
+ case 20: // 1 string to match.
+ if (memcmp(BuiltinName.data()+0, "_MoveFromCoprocessor", 20))
+ break;
+ return Intrinsic::arm_mrc; // "_MoveFromCoprocessor"
+ case 21: // 1 string to match.
+ if (memcmp(BuiltinName.data()+0, "_MoveFromCoprocessor2", 21))
+ break;
+ return Intrinsic::arm_mrc2; // "_MoveFromCoprocessor2"
+ }
+} 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
+