llvm/clang/test/CodeGen/builtins-hexagon.c

// REQUIRES: hexagon-registered-target
// RUN: %clang_cc1 -triple hexagon-unknown-elf -target-cpu hexagonv65 -target-feature +hvxv65 -target-feature +hvx-length128b -emit-llvm %s -o - | FileCheck %s

void test() {
  int v64 __attribute__((__vector_size__(64)));
  int v128 __attribute__((__vector_size__(128)));
  int v256 __attribute__((__vector_size__(256)));

  // CHECK: @llvm.hexagon.A2.abs
  __builtin_HEXAGON_A2_abs(0);
  // CHECK: @llvm.hexagon.A2.absp
  __builtin_HEXAGON_A2_absp(0);
  // CHECK: @llvm.hexagon.A2.abssat
  __builtin_HEXAGON_A2_abssat(0);
  // CHECK: @llvm.hexagon.A2.add
  __builtin_HEXAGON_A2_add(0, 0);
  // CHECK: @llvm.hexagon.A2.addh.h16.hh
  __builtin_HEXAGON_A2_addh_h16_hh(0, 0);
  // CHECK: @llvm.hexagon.A2.addh.h16.hl
  __builtin_HEXAGON_A2_addh_h16_hl(0, 0);
  // CHECK: @llvm.hexagon.A2.addh.h16.lh
  __builtin_HEXAGON_A2_addh_h16_lh(0, 0);
  // CHECK: @llvm.hexagon.A2.addh.h16.ll
  __builtin_HEXAGON_A2_addh_h16_ll(0, 0);
  // CHECK: @llvm.hexagon.A2.addh.h16.sat.hh
  __builtin_HEXAGON_A2_addh_h16_sat_hh(0, 0);
  // CHECK: @llvm.hexagon.A2.addh.h16.sat.hl
  __builtin_HEXAGON_A2_addh_h16_sat_hl(0, 0);
  // CHECK: @llvm.hexagon.A2.addh.h16.sat.lh
  __builtin_HEXAGON_A2_addh_h16_sat_lh(0, 0);
  // CHECK: @llvm.hexagon.A2.addh.h16.sat.ll
  __builtin_HEXAGON_A2_addh_h16_sat_ll(0, 0);
  // CHECK: @llvm.hexagon.A2.addh.l16.hl
  __builtin_HEXAGON_A2_addh_l16_hl(0, 0);
  // CHECK: @llvm.hexagon.A2.addh.l16.ll
  __builtin_HEXAGON_A2_addh_l16_ll(0, 0);
  // CHECK: @llvm.hexagon.A2.addh.l16.sat.hl
  __builtin_HEXAGON_A2_addh_l16_sat_hl(0, 0);
  // CHECK: @llvm.hexagon.A2.addh.l16.sat.ll
  __builtin_HEXAGON_A2_addh_l16_sat_ll(0, 0);
  // CHECK: @llvm.hexagon.A2.addi
  __builtin_HEXAGON_A2_addi(0, 0);
  // CHECK: @llvm.hexagon.A2.addp
  __builtin_HEXAGON_A2_addp(0, 0);
  // CHECK: @llvm.hexagon.A2.addpsat
  __builtin_HEXAGON_A2_addpsat(0, 0);
  // CHECK: @llvm.hexagon.A2.addsat
  __builtin_HEXAGON_A2_addsat(0, 0);
  // CHECK: @llvm.hexagon.A2.addsp
  __builtin_HEXAGON_A2_addsp(0, 0);
  // CHECK: @llvm.hexagon.A2.and
  __builtin_HEXAGON_A2_and(0, 0);
  // CHECK: @llvm.hexagon.A2.andir
  __builtin_HEXAGON_A2_andir(0, 0);
  // CHECK: @llvm.hexagon.A2.andp
  __builtin_HEXAGON_A2_andp(0, 0);
  // CHECK: @llvm.hexagon.A2.aslh
  __builtin_HEXAGON_A2_aslh(0);
  // CHECK: @llvm.hexagon.A2.asrh
  __builtin_HEXAGON_A2_asrh(0);
  // CHECK: @llvm.hexagon.A2.combine.hh
  __builtin_HEXAGON_A2_combine_hh(0, 0);
  // CHECK: @llvm.hexagon.A2.combine.hl
  __builtin_HEXAGON_A2_combine_hl(0, 0);
  // CHECK: @llvm.hexagon.A2.combine.lh
  __builtin_HEXAGON_A2_combine_lh(0, 0);
  // CHECK: @llvm.hexagon.A2.combine.ll
  __builtin_HEXAGON_A2_combine_ll(0, 0);
  // CHECK: @llvm.hexagon.A2.combineii
  __builtin_HEXAGON_A2_combineii(0, 0);
  // CHECK: @llvm.hexagon.A2.combinew
  __builtin_HEXAGON_A2_combinew(0, 0);
  // CHECK: @llvm.hexagon.A2.max
  __builtin_HEXAGON_A2_max(0, 0);
  // CHECK: @llvm.hexagon.A2.maxp
  __builtin_HEXAGON_A2_maxp(0, 0);
  // CHECK: @llvm.hexagon.A2.maxu
  __builtin_HEXAGON_A2_maxu(0, 0);
  // CHECK: @llvm.hexagon.A2.maxup
  __builtin_HEXAGON_A2_maxup(0, 0);
  // CHECK: @llvm.hexagon.A2.min
  __builtin_HEXAGON_A2_min(0, 0);
  // CHECK: @llvm.hexagon.A2.minp
  __builtin_HEXAGON_A2_minp(0, 0);
  // CHECK: @llvm.hexagon.A2.minu
  __builtin_HEXAGON_A2_minu(0, 0);
  // CHECK: @llvm.hexagon.A2.minup
  __builtin_HEXAGON_A2_minup(0, 0);
  // CHECK: @llvm.hexagon.A2.neg
  __builtin_HEXAGON_A2_neg(0);
  // CHECK: @llvm.hexagon.A2.negp
  __builtin_HEXAGON_A2_negp(0);
  // CHECK: @llvm.hexagon.A2.negsat
  __builtin_HEXAGON_A2_negsat(0);
  // CHECK: @llvm.hexagon.A2.not
  __builtin_HEXAGON_A2_not(0);
  // CHECK: @llvm.hexagon.A2.notp
  __builtin_HEXAGON_A2_notp(0);
  // CHECK: @llvm.hexagon.A2.or
  __builtin_HEXAGON_A2_or(0, 0);
  // CHECK: @llvm.hexagon.A2.orir
  __builtin_HEXAGON_A2_orir(0, 0);
  // CHECK: @llvm.hexagon.A2.orp
  __builtin_HEXAGON_A2_orp(0, 0);
  // CHECK: @llvm.hexagon.A2.roundsat
  __builtin_HEXAGON_A2_roundsat(0);
  // CHECK: @llvm.hexagon.A2.sat
  __builtin_HEXAGON_A2_sat(0);
  // CHECK: @llvm.hexagon.A2.satb
  __builtin_HEXAGON_A2_satb(0);
  // CHECK: @llvm.hexagon.A2.sath
  __builtin_HEXAGON_A2_sath(0);
  // CHECK: @llvm.hexagon.A2.satub
  __builtin_HEXAGON_A2_satub(0);
  // CHECK: @llvm.hexagon.A2.satuh
  __builtin_HEXAGON_A2_satuh(0);
  // CHECK: @llvm.hexagon.A2.sub
  __builtin_HEXAGON_A2_sub(0, 0);
  // CHECK: @llvm.hexagon.A2.subh.h16.hh
  __builtin_HEXAGON_A2_subh_h16_hh(0, 0);
  // CHECK: @llvm.hexagon.A2.subh.h16.hl
  __builtin_HEXAGON_A2_subh_h16_hl(0, 0);
  // CHECK: @llvm.hexagon.A2.subh.h16.lh
  __builtin_HEXAGON_A2_subh_h16_lh(0, 0);
  // CHECK: @llvm.hexagon.A2.subh.h16.ll
  __builtin_HEXAGON_A2_subh_h16_ll(0, 0);
  // CHECK: @llvm.hexagon.A2.subh.h16.sat.hh
  __builtin_HEXAGON_A2_subh_h16_sat_hh(0, 0);
  // CHECK: @llvm.hexagon.A2.subh.h16.sat.hl
  __builtin_HEXAGON_A2_subh_h16_sat_hl(0, 0);
  // CHECK: @llvm.hexagon.A2.subh.h16.sat.lh
  __builtin_HEXAGON_A2_subh_h16_sat_lh(0, 0);
  // CHECK: @llvm.hexagon.A2.subh.h16.sat.ll
  __builtin_HEXAGON_A2_subh_h16_sat_ll(0, 0);
  // CHECK: @llvm.hexagon.A2.subh.l16.hl
  __builtin_HEXAGON_A2_subh_l16_hl(0, 0);
  // CHECK: @llvm.hexagon.A2.subh.l16.ll
  __builtin_HEXAGON_A2_subh_l16_ll(0, 0);
  // CHECK: @llvm.hexagon.A2.subh.l16.sat.hl
  __builtin_HEXAGON_A2_subh_l16_sat_hl(0, 0);
  // CHECK: @llvm.hexagon.A2.subh.l16.sat.ll
  __builtin_HEXAGON_A2_subh_l16_sat_ll(0, 0);
  // CHECK: @llvm.hexagon.A2.subp
  __builtin_HEXAGON_A2_subp(0, 0);
  // CHECK: @llvm.hexagon.A2.subri
  __builtin_HEXAGON_A2_subri(0, 0);
  // CHECK: @llvm.hexagon.A2.subsat
  __builtin_HEXAGON_A2_subsat(0, 0);
  // CHECK: @llvm.hexagon.A2.svaddh
  __builtin_HEXAGON_A2_svaddh(0, 0);
  // CHECK: @llvm.hexagon.A2.svaddhs
  __builtin_HEXAGON_A2_svaddhs(0, 0);
  // CHECK: @llvm.hexagon.A2.svadduhs
  __builtin_HEXAGON_A2_svadduhs(0, 0);
  // CHECK: @llvm.hexagon.A2.svavgh
  __builtin_HEXAGON_A2_svavgh(0, 0);
  // CHECK: @llvm.hexagon.A2.svavghs
  __builtin_HEXAGON_A2_svavghs(0, 0);
  // CHECK: @llvm.hexagon.A2.svnavgh
  __builtin_HEXAGON_A2_svnavgh(0, 0);
  // CHECK: @llvm.hexagon.A2.svsubh
  __builtin_HEXAGON_A2_svsubh(0, 0);
  // CHECK: @llvm.hexagon.A2.svsubhs
  __builtin_HEXAGON_A2_svsubhs(0, 0);
  // CHECK: @llvm.hexagon.A2.svsubuhs
  __builtin_HEXAGON_A2_svsubuhs(0, 0);
  // CHECK: @llvm.hexagon.A2.swiz
  __builtin_HEXAGON_A2_swiz(0);
  // CHECK: @llvm.hexagon.A2.sxtb
  __builtin_HEXAGON_A2_sxtb(0);
  // CHECK: @llvm.hexagon.A2.sxth
  __builtin_HEXAGON_A2_sxth(0);
  // CHECK: @llvm.hexagon.A2.sxtw
  __builtin_HEXAGON_A2_sxtw(0);
  // CHECK: @llvm.hexagon.A2.tfr
  __builtin_HEXAGON_A2_tfr(0);
  // CHECK: @llvm.hexagon.A2.tfrih
  __builtin_HEXAGON_A2_tfrih(0, 0);
  // CHECK: @llvm.hexagon.A2.tfril
  __builtin_HEXAGON_A2_tfril(0, 0);
  // CHECK: @llvm.hexagon.A2.tfrp
  __builtin_HEXAGON_A2_tfrp(0);
  // CHECK: @llvm.hexagon.A2.tfrpi
  __builtin_HEXAGON_A2_tfrpi(0);
  // CHECK: @llvm.hexagon.A2.tfrsi
  __builtin_HEXAGON_A2_tfrsi(0);
  // CHECK: @llvm.hexagon.A2.vabsh
  __builtin_HEXAGON_A2_vabsh(0);
  // CHECK: @llvm.hexagon.A2.vabshsat
  __builtin_HEXAGON_A2_vabshsat(0);
  // CHECK: @llvm.hexagon.A2.vabsw
  __builtin_HEXAGON_A2_vabsw(0);
  // CHECK: @llvm.hexagon.A2.vabswsat
  __builtin_HEXAGON_A2_vabswsat(0);
  // CHECK: @llvm.hexagon.A2.vaddb.map
  __builtin_HEXAGON_A2_vaddb_map(0, 0);
  // CHECK: @llvm.hexagon.A2.vaddh
  __builtin_HEXAGON_A2_vaddh(0, 0);
  // CHECK: @llvm.hexagon.A2.vaddhs
  __builtin_HEXAGON_A2_vaddhs(0, 0);
  // CHECK: @llvm.hexagon.A2.vaddub
  __builtin_HEXAGON_A2_vaddub(0, 0);
  // CHECK: @llvm.hexagon.A2.vaddubs
  __builtin_HEXAGON_A2_vaddubs(0, 0);
  // CHECK: @llvm.hexagon.A2.vadduhs
  __builtin_HEXAGON_A2_vadduhs(0, 0);
  // CHECK: @llvm.hexagon.A2.vaddw
  __builtin_HEXAGON_A2_vaddw(0, 0);
  // CHECK: @llvm.hexagon.A2.vaddws
  __builtin_HEXAGON_A2_vaddws(0, 0);
  // CHECK: @llvm.hexagon.A2.vavgh
  __builtin_HEXAGON_A2_vavgh(0, 0);
  // CHECK: @llvm.hexagon.A2.vavghcr
  __builtin_HEXAGON_A2_vavghcr(0, 0);
  // CHECK: @llvm.hexagon.A2.vavghr
  __builtin_HEXAGON_A2_vavghr(0, 0);
  // CHECK: @llvm.hexagon.A2.vavgub
  __builtin_HEXAGON_A2_vavgub(0, 0);
  // CHECK: @llvm.hexagon.A2.vavgubr
  __builtin_HEXAGON_A2_vavgubr(0, 0);
  // CHECK: @llvm.hexagon.A2.vavguh
  __builtin_HEXAGON_A2_vavguh(0, 0);
  // CHECK: @llvm.hexagon.A2.vavguhr
  __builtin_HEXAGON_A2_vavguhr(0, 0);
  // CHECK: @llvm.hexagon.A2.vavguw
  __builtin_HEXAGON_A2_vavguw(0, 0);
  // CHECK: @llvm.hexagon.A2.vavguwr
  __builtin_HEXAGON_A2_vavguwr(0, 0);
  // CHECK: @llvm.hexagon.A2.vavgw
  __builtin_HEXAGON_A2_vavgw(0, 0);
  // CHECK: @llvm.hexagon.A2.vavgwcr
  __builtin_HEXAGON_A2_vavgwcr(0, 0);
  // CHECK: @llvm.hexagon.A2.vavgwr
  __builtin_HEXAGON_A2_vavgwr(0, 0);
  // CHECK: @llvm.hexagon.A2.vcmpbeq
  __builtin_HEXAGON_A2_vcmpbeq(0, 0);
  // CHECK: @llvm.hexagon.A2.vcmpbgtu
  __builtin_HEXAGON_A2_vcmpbgtu(0, 0);
  // CHECK: @llvm.hexagon.A2.vcmpheq
  __builtin_HEXAGON_A2_vcmpheq(0, 0);
  // CHECK: @llvm.hexagon.A2.vcmphgt
  __builtin_HEXAGON_A2_vcmphgt(0, 0);
  // CHECK: @llvm.hexagon.A2.vcmphgtu
  __builtin_HEXAGON_A2_vcmphgtu(0, 0);
  // CHECK: @llvm.hexagon.A2.vcmpweq
  __builtin_HEXAGON_A2_vcmpweq(0, 0);
  // CHECK: @llvm.hexagon.A2.vcmpwgt
  __builtin_HEXAGON_A2_vcmpwgt(0, 0);
  // CHECK: @llvm.hexagon.A2.vcmpwgtu
  __builtin_HEXAGON_A2_vcmpwgtu(0, 0);
  // CHECK: @llvm.hexagon.A2.vconj
  __builtin_HEXAGON_A2_vconj(0);
  // CHECK: @llvm.hexagon.A2.vmaxb
  __builtin_HEXAGON_A2_vmaxb(0, 0);
  // CHECK: @llvm.hexagon.A2.vmaxh
  __builtin_HEXAGON_A2_vmaxh(0, 0);
  // CHECK: @llvm.hexagon.A2.vmaxub
  __builtin_HEXAGON_A2_vmaxub(0, 0);
  // CHECK: @llvm.hexagon.A2.vmaxuh
  __builtin_HEXAGON_A2_vmaxuh(0, 0);
  // CHECK: @llvm.hexagon.A2.vmaxuw
  __builtin_HEXAGON_A2_vmaxuw(0, 0);
  // CHECK: @llvm.hexagon.A2.vmaxw
  __builtin_HEXAGON_A2_vmaxw(0, 0);
  // CHECK: @llvm.hexagon.A2.vminb
  __builtin_HEXAGON_A2_vminb(0, 0);
  // CHECK: @llvm.hexagon.A2.vminh
  __builtin_HEXAGON_A2_vminh(0, 0);
  // CHECK: @llvm.hexagon.A2.vminub
  __builtin_HEXAGON_A2_vminub(0, 0);
  // CHECK: @llvm.hexagon.A2.vminuh
  __builtin_HEXAGON_A2_vminuh(0, 0);
  // CHECK: @llvm.hexagon.A2.vminuw
  __builtin_HEXAGON_A2_vminuw(0, 0);
  // CHECK: @llvm.hexagon.A2.vminw
  __builtin_HEXAGON_A2_vminw(0, 0);
  // CHECK: @llvm.hexagon.A2.vnavgh
  __builtin_HEXAGON_A2_vnavgh(0, 0);
  // CHECK: @llvm.hexagon.A2.vnavghcr
  __builtin_HEXAGON_A2_vnavghcr(0, 0);
  // CHECK: @llvm.hexagon.A2.vnavghr
  __builtin_HEXAGON_A2_vnavghr(0, 0);
  // CHECK: @llvm.hexagon.A2.vnavgw
  __builtin_HEXAGON_A2_vnavgw(0, 0);
  // CHECK: @llvm.hexagon.A2.vnavgwcr
  __builtin_HEXAGON_A2_vnavgwcr(0, 0);
  // CHECK: @llvm.hexagon.A2.vnavgwr
  __builtin_HEXAGON_A2_vnavgwr(0, 0);
  // CHECK: @llvm.hexagon.A2.vraddub
  __builtin_HEXAGON_A2_vraddub(0, 0);
  // CHECK: @llvm.hexagon.A2.vraddub.acc
  __builtin_HEXAGON_A2_vraddub_acc(0, 0, 0);
  // CHECK: @llvm.hexagon.A2.vrsadub
  __builtin_HEXAGON_A2_vrsadub(0, 0);
  // CHECK: @llvm.hexagon.A2.vrsadub.acc
  __builtin_HEXAGON_A2_vrsadub_acc(0, 0, 0);
  // CHECK: @llvm.hexagon.A2.vsubb.map
  __builtin_HEXAGON_A2_vsubb_map(0, 0);
  // CHECK: @llvm.hexagon.A2.vsubh
  __builtin_HEXAGON_A2_vsubh(0, 0);
  // CHECK: @llvm.hexagon.A2.vsubhs
  __builtin_HEXAGON_A2_vsubhs(0, 0);
  // CHECK: @llvm.hexagon.A2.vsubub
  __builtin_HEXAGON_A2_vsubub(0, 0);
  // CHECK: @llvm.hexagon.A2.vsububs
  __builtin_HEXAGON_A2_vsububs(0, 0);
  // CHECK: @llvm.hexagon.A2.vsubuhs
  __builtin_HEXAGON_A2_vsubuhs(0, 0);
  // CHECK: @llvm.hexagon.A2.vsubw
  __builtin_HEXAGON_A2_vsubw(0, 0);
  // CHECK: @llvm.hexagon.A2.vsubws
  __builtin_HEXAGON_A2_vsubws(0, 0);
  // CHECK: @llvm.hexagon.A2.xor
  __builtin_HEXAGON_A2_xor(0, 0);
  // CHECK: @llvm.hexagon.A2.xorp
  __builtin_HEXAGON_A2_xorp(0, 0);
  // CHECK: @llvm.hexagon.A2.zxtb
  __builtin_HEXAGON_A2_zxtb(0);
  // CHECK: @llvm.hexagon.A2.zxth
  __builtin_HEXAGON_A2_zxth(0);
  // CHECK: @llvm.hexagon.A4.andn
  __builtin_HEXAGON_A4_andn(0, 0);
  // CHECK: @llvm.hexagon.A4.andnp
  __builtin_HEXAGON_A4_andnp(0, 0);
  // CHECK: @llvm.hexagon.A4.bitsplit
  __builtin_HEXAGON_A4_bitsplit(0, 0);
  // CHECK: @llvm.hexagon.A4.bitspliti
  __builtin_HEXAGON_A4_bitspliti(0, 0);
  // CHECK: @llvm.hexagon.A4.boundscheck
  __builtin_HEXAGON_A4_boundscheck(0, 0);
  // CHECK: @llvm.hexagon.A4.cmpbeq
  __builtin_HEXAGON_A4_cmpbeq(0, 0);
  // CHECK: @llvm.hexagon.A4.cmpbeqi
  __builtin_HEXAGON_A4_cmpbeqi(0, 0);
  // CHECK: @llvm.hexagon.A4.cmpbgt
  __builtin_HEXAGON_A4_cmpbgt(0, 0);
  // CHECK: @llvm.hexagon.A4.cmpbgti
  __builtin_HEXAGON_A4_cmpbgti(0, 0);
  // CHECK: @llvm.hexagon.A4.cmpbgtu
  __builtin_HEXAGON_A4_cmpbgtu(0, 0);
  // CHECK: @llvm.hexagon.A4.cmpbgtui
  __builtin_HEXAGON_A4_cmpbgtui(0, 0);
  // CHECK: @llvm.hexagon.A4.cmpheq
  __builtin_HEXAGON_A4_cmpheq(0, 0);
  // CHECK: @llvm.hexagon.A4.cmpheqi
  __builtin_HEXAGON_A4_cmpheqi(0, 0);
  // CHECK: @llvm.hexagon.A4.cmphgt
  __builtin_HEXAGON_A4_cmphgt(0, 0);
  // CHECK: @llvm.hexagon.A4.cmphgti
  __builtin_HEXAGON_A4_cmphgti(0, 0);
  // CHECK: @llvm.hexagon.A4.cmphgtu
  __builtin_HEXAGON_A4_cmphgtu(0, 0);
  // CHECK: @llvm.hexagon.A4.cmphgtui
  __builtin_HEXAGON_A4_cmphgtui(0, 0);
  // CHECK: @llvm.hexagon.A4.combineir
  __builtin_HEXAGON_A4_combineir(0, 0);
  // CHECK: @llvm.hexagon.A4.combineri
  __builtin_HEXAGON_A4_combineri(0, 0);
  // CHECK: @llvm.hexagon.A4.cround.ri
  __builtin_HEXAGON_A4_cround_ri(0, 0);
  // CHECK: @llvm.hexagon.A4.cround.rr
  __builtin_HEXAGON_A4_cround_rr(0, 0);
  // CHECK: @llvm.hexagon.A4.modwrapu
  __builtin_HEXAGON_A4_modwrapu(0, 0);
  // CHECK: @llvm.hexagon.A4.orn
  __builtin_HEXAGON_A4_orn(0, 0);
  // CHECK: @llvm.hexagon.A4.ornp
  __builtin_HEXAGON_A4_ornp(0, 0);
  // CHECK: @llvm.hexagon.A4.rcmpeq
  __builtin_HEXAGON_A4_rcmpeq(0, 0);
  // CHECK: @llvm.hexagon.A4.rcmpeqi
  __builtin_HEXAGON_A4_rcmpeqi(0, 0);
  // CHECK: @llvm.hexagon.A4.rcmpneq
  __builtin_HEXAGON_A4_rcmpneq(0, 0);
  // CHECK: @llvm.hexagon.A4.rcmpneqi
  __builtin_HEXAGON_A4_rcmpneqi(0, 0);
  // CHECK: @llvm.hexagon.A4.round.ri
  __builtin_HEXAGON_A4_round_ri(0, 0);
  // CHECK: @llvm.hexagon.A4.round.ri.sat
  __builtin_HEXAGON_A4_round_ri_sat(0, 0);
  // CHECK: @llvm.hexagon.A4.round.rr
  __builtin_HEXAGON_A4_round_rr(0, 0);
  // CHECK: @llvm.hexagon.A4.round.rr.sat
  __builtin_HEXAGON_A4_round_rr_sat(0, 0);
  // CHECK: @llvm.hexagon.A4.tlbmatch
  __builtin_HEXAGON_A4_tlbmatch(0, 0);
  // CHECK: @llvm.hexagon.A4.vcmpbeq.any
  __builtin_HEXAGON_A4_vcmpbeq_any(0, 0);
  // CHECK: @llvm.hexagon.A4.vcmpbeqi
  __builtin_HEXAGON_A4_vcmpbeqi(0, 0);
  // CHECK: @llvm.hexagon.A4.vcmpbgt
  __builtin_HEXAGON_A4_vcmpbgt(0, 0);
  // CHECK: @llvm.hexagon.A4.vcmpbgti
  __builtin_HEXAGON_A4_vcmpbgti(0, 0);
  // CHECK: @llvm.hexagon.A4.vcmpbgtui
  __builtin_HEXAGON_A4_vcmpbgtui(0, 0);
  // CHECK: @llvm.hexagon.A4.vcmpheqi
  __builtin_HEXAGON_A4_vcmpheqi(0, 0);
  // CHECK: @llvm.hexagon.A4.vcmphgti
  __builtin_HEXAGON_A4_vcmphgti(0, 0);
  // CHECK: @llvm.hexagon.A4.vcmphgtui
  __builtin_HEXAGON_A4_vcmphgtui(0, 0);
  // CHECK: @llvm.hexagon.A4.vcmpweqi
  __builtin_HEXAGON_A4_vcmpweqi(0, 0);
  // CHECK: @llvm.hexagon.A4.vcmpwgti
  __builtin_HEXAGON_A4_vcmpwgti(0, 0);
  // CHECK: @llvm.hexagon.A4.vcmpwgtui
  __builtin_HEXAGON_A4_vcmpwgtui(0, 0);
  // CHECK: @llvm.hexagon.A4.vrmaxh
  __builtin_HEXAGON_A4_vrmaxh(0, 0, 0);
  // CHECK: @llvm.hexagon.A4.vrmaxuh
  __builtin_HEXAGON_A4_vrmaxuh(0, 0, 0);
  // CHECK: @llvm.hexagon.A4.vrmaxuw
  __builtin_HEXAGON_A4_vrmaxuw(0, 0, 0);
  // CHECK: @llvm.hexagon.A4.vrmaxw
  __builtin_HEXAGON_A4_vrmaxw(0, 0, 0);
  // CHECK: @llvm.hexagon.A4.vrminh
  __builtin_HEXAGON_A4_vrminh(0, 0, 0);
  // CHECK: @llvm.hexagon.A4.vrminuh
  __builtin_HEXAGON_A4_vrminuh(0, 0, 0);
  // CHECK: @llvm.hexagon.A4.vrminuw
  __builtin_HEXAGON_A4_vrminuw(0, 0, 0);
  // CHECK: @llvm.hexagon.A4.vrminw
  __builtin_HEXAGON_A4_vrminw(0, 0, 0);
  // CHECK: @llvm.hexagon.A5.vaddhubs
  __builtin_HEXAGON_A5_vaddhubs(0, 0);
  // CHECK: @llvm.hexagon.A6.vcmpbeq.notany
  __builtin_HEXAGON_A6_vcmpbeq_notany(0, 0);
  // CHECK: @llvm.hexagon.C2.all8
  __builtin_HEXAGON_C2_all8(0);
  // CHECK: @llvm.hexagon.C2.and
  __builtin_HEXAGON_C2_and(0, 0);
  // CHECK: @llvm.hexagon.C2.andn
  __builtin_HEXAGON_C2_andn(0, 0);
  // CHECK: @llvm.hexagon.C2.any8
  __builtin_HEXAGON_C2_any8(0);
  // CHECK: @llvm.hexagon.C2.bitsclr
  __builtin_HEXAGON_C2_bitsclr(0, 0);
  // CHECK: @llvm.hexagon.C2.bitsclri
  __builtin_HEXAGON_C2_bitsclri(0, 0);
  // CHECK: @llvm.hexagon.C2.bitsset
  __builtin_HEXAGON_C2_bitsset(0, 0);
  // CHECK: @llvm.hexagon.C2.cmpeq
  __builtin_HEXAGON_C2_cmpeq(0, 0);
  // CHECK: @llvm.hexagon.C2.cmpeqi
  __builtin_HEXAGON_C2_cmpeqi(0, 0);
  // CHECK: @llvm.hexagon.C2.cmpeqp
  __builtin_HEXAGON_C2_cmpeqp(0, 0);
  // CHECK: @llvm.hexagon.C2.cmpgei
  __builtin_HEXAGON_C2_cmpgei(0, 0);
  // CHECK: @llvm.hexagon.C2.cmpgeui
  __builtin_HEXAGON_C2_cmpgeui(0, 0);
  // CHECK: @llvm.hexagon.C2.cmpgt
  __builtin_HEXAGON_C2_cmpgt(0, 0);
  // CHECK: @llvm.hexagon.C2.cmpgti
  __builtin_HEXAGON_C2_cmpgti(0, 0);
  // CHECK: @llvm.hexagon.C2.cmpgtp
  __builtin_HEXAGON_C2_cmpgtp(0, 0);
  // CHECK: @llvm.hexagon.C2.cmpgtu
  __builtin_HEXAGON_C2_cmpgtu(0, 0);
  // CHECK: @llvm.hexagon.C2.cmpgtui
  __builtin_HEXAGON_C2_cmpgtui(0, 0);
  // CHECK: @llvm.hexagon.C2.cmpgtup
  __builtin_HEXAGON_C2_cmpgtup(0, 0);
  // CHECK: @llvm.hexagon.C2.cmplt
  __builtin_HEXAGON_C2_cmplt(0, 0);
  // CHECK: @llvm.hexagon.C2.cmpltu
  __builtin_HEXAGON_C2_cmpltu(0, 0);
  // CHECK: @llvm.hexagon.C2.mask
  __builtin_HEXAGON_C2_mask(0);
  // CHECK: @llvm.hexagon.C2.mux
  __builtin_HEXAGON_C2_mux(0, 0, 0);
  // CHECK: @llvm.hexagon.C2.muxii
  __builtin_HEXAGON_C2_muxii(0, 0, 0);
  // CHECK: @llvm.hexagon.C2.muxir
  __builtin_HEXAGON_C2_muxir(0, 0, 0);
  // CHECK: @llvm.hexagon.C2.muxri
  __builtin_HEXAGON_C2_muxri(0, 0, 0);
  // CHECK: @llvm.hexagon.C2.not
  __builtin_HEXAGON_C2_not(0);
  // CHECK: @llvm.hexagon.C2.or
  __builtin_HEXAGON_C2_or(0, 0);
  // CHECK: @llvm.hexagon.C2.orn
  __builtin_HEXAGON_C2_orn(0, 0);
  // CHECK: @llvm.hexagon.C2.pxfer.map
  __builtin_HEXAGON_C2_pxfer_map(0);
  // CHECK: @llvm.hexagon.C2.tfrpr
  __builtin_HEXAGON_C2_tfrpr(0);
  // CHECK: @llvm.hexagon.C2.tfrrp
  __builtin_HEXAGON_C2_tfrrp(0);
  // CHECK: @llvm.hexagon.C2.vitpack
  __builtin_HEXAGON_C2_vitpack(0, 0);
  // CHECK: @llvm.hexagon.C2.vmux
  __builtin_HEXAGON_C2_vmux(0, 0, 0);
  // CHECK: @llvm.hexagon.C2.xor
  __builtin_HEXAGON_C2_xor(0, 0);
  // CHECK: @llvm.hexagon.C4.and.and
  __builtin_HEXAGON_C4_and_and(0, 0, 0);
  // CHECK: @llvm.hexagon.C4.and.andn
  __builtin_HEXAGON_C4_and_andn(0, 0, 0);
  // CHECK: @llvm.hexagon.C4.and.or
  __builtin_HEXAGON_C4_and_or(0, 0, 0);
  // CHECK: @llvm.hexagon.C4.and.orn
  __builtin_HEXAGON_C4_and_orn(0, 0, 0);
  // CHECK: @llvm.hexagon.C4.cmplte
  __builtin_HEXAGON_C4_cmplte(0, 0);
  // CHECK: @llvm.hexagon.C4.cmpltei
  __builtin_HEXAGON_C4_cmpltei(0, 0);
  // CHECK: @llvm.hexagon.C4.cmplteu
  __builtin_HEXAGON_C4_cmplteu(0, 0);
  // CHECK: @llvm.hexagon.C4.cmplteui
  __builtin_HEXAGON_C4_cmplteui(0, 0);
  // CHECK: @llvm.hexagon.C4.cmpneq
  __builtin_HEXAGON_C4_cmpneq(0, 0);
  // CHECK: @llvm.hexagon.C4.cmpneqi
  __builtin_HEXAGON_C4_cmpneqi(0, 0);
  // CHECK: @llvm.hexagon.C4.fastcorner9
  __builtin_HEXAGON_C4_fastcorner9(0, 0);
  // CHECK: @llvm.hexagon.C4.fastcorner9.not
  __builtin_HEXAGON_C4_fastcorner9_not(0, 0);
  // CHECK: @llvm.hexagon.C4.nbitsclr
  __builtin_HEXAGON_C4_nbitsclr(0, 0);
  // CHECK: @llvm.hexagon.C4.nbitsclri
  __builtin_HEXAGON_C4_nbitsclri(0, 0);
  // CHECK: @llvm.hexagon.C4.nbitsset
  __builtin_HEXAGON_C4_nbitsset(0, 0);
  // CHECK: @llvm.hexagon.C4.or.and
  __builtin_HEXAGON_C4_or_and(0, 0, 0);
  // CHECK: @llvm.hexagon.C4.or.andn
  __builtin_HEXAGON_C4_or_andn(0, 0, 0);
  // CHECK: @llvm.hexagon.C4.or.or
  __builtin_HEXAGON_C4_or_or(0, 0, 0);
  // CHECK: @llvm.hexagon.C4.or.orn
  __builtin_HEXAGON_C4_or_orn(0, 0, 0);
  // CHECK: @llvm.hexagon.F2.conv.d2df
  __builtin_HEXAGON_F2_conv_d2df(0);
  // CHECK: @llvm.hexagon.F2.conv.d2sf
  __builtin_HEXAGON_F2_conv_d2sf(0);
  // CHECK: @llvm.hexagon.F2.conv.df2d
  __builtin_HEXAGON_F2_conv_df2d(0.0);
  // CHECK: @llvm.hexagon.F2.conv.df2d.chop
  __builtin_HEXAGON_F2_conv_df2d_chop(0.0);
  // CHECK: @llvm.hexagon.F2.conv.df2sf
  __builtin_HEXAGON_F2_conv_df2sf(0.0);
  // CHECK: @llvm.hexagon.F2.conv.df2ud
  __builtin_HEXAGON_F2_conv_df2ud(0.0);
  // CHECK: @llvm.hexagon.F2.conv.df2ud.chop
  __builtin_HEXAGON_F2_conv_df2ud_chop(0.0);
  // CHECK: @llvm.hexagon.F2.conv.df2uw
  __builtin_HEXAGON_F2_conv_df2uw(0.0);
  // CHECK: @llvm.hexagon.F2.conv.df2uw.chop
  __builtin_HEXAGON_F2_conv_df2uw_chop(0.0);
  // CHECK: @llvm.hexagon.F2.conv.df2w
  __builtin_HEXAGON_F2_conv_df2w(0.0);
  // CHECK: @llvm.hexagon.F2.conv.df2w.chop
  __builtin_HEXAGON_F2_conv_df2w_chop(0.0);
  // CHECK: @llvm.hexagon.F2.conv.sf2d
  __builtin_HEXAGON_F2_conv_sf2d(0.0f);
  // CHECK: @llvm.hexagon.F2.conv.sf2d.chop
  __builtin_HEXAGON_F2_conv_sf2d_chop(0.0f);
  // CHECK: @llvm.hexagon.F2.conv.sf2df
  __builtin_HEXAGON_F2_conv_sf2df(0.0f);
  // CHECK: @llvm.hexagon.F2.conv.sf2ud
  __builtin_HEXAGON_F2_conv_sf2ud(0.0f);
  // CHECK: @llvm.hexagon.F2.conv.sf2ud.chop
  __builtin_HEXAGON_F2_conv_sf2ud_chop(0.0f);
  // CHECK: @llvm.hexagon.F2.conv.sf2uw
  __builtin_HEXAGON_F2_conv_sf2uw(0.0f);
  // CHECK: @llvm.hexagon.F2.conv.sf2uw.chop
  __builtin_HEXAGON_F2_conv_sf2uw_chop(0.0f);
  // CHECK: @llvm.hexagon.F2.conv.sf2w
  __builtin_HEXAGON_F2_conv_sf2w(0.0f);
  // CHECK: @llvm.hexagon.F2.conv.sf2w.chop
  __builtin_HEXAGON_F2_conv_sf2w_chop(0.0f);
  // CHECK: @llvm.hexagon.F2.conv.ud2df
  __builtin_HEXAGON_F2_conv_ud2df(0);
  // CHECK: @llvm.hexagon.F2.conv.ud2sf
  __builtin_HEXAGON_F2_conv_ud2sf(0);
  // CHECK: @llvm.hexagon.F2.conv.uw2df
  __builtin_HEXAGON_F2_conv_uw2df(0);
  // CHECK: @llvm.hexagon.F2.conv.uw2sf
  __builtin_HEXAGON_F2_conv_uw2sf(0);
  // CHECK: @llvm.hexagon.F2.conv.w2df
  __builtin_HEXAGON_F2_conv_w2df(0);
  // CHECK: @llvm.hexagon.F2.conv.w2sf
  __builtin_HEXAGON_F2_conv_w2sf(0);
  // CHECK: @llvm.hexagon.F2.dfclass
  __builtin_HEXAGON_F2_dfclass(0.0, 0);
  // CHECK: @llvm.hexagon.F2.dfcmpeq
  __builtin_HEXAGON_F2_dfcmpeq(0.0, 0.0);
  // CHECK: @llvm.hexagon.F2.dfcmpge
  __builtin_HEXAGON_F2_dfcmpge(0.0, 0.0);
  // CHECK: @llvm.hexagon.F2.dfcmpgt
  __builtin_HEXAGON_F2_dfcmpgt(0.0, 0.0);
  // CHECK: @llvm.hexagon.F2.dfcmpuo
  __builtin_HEXAGON_F2_dfcmpuo(0.0, 0.0);
  // CHECK: @llvm.hexagon.F2.dfimm.n
  __builtin_HEXAGON_F2_dfimm_n(0);
  // CHECK: @llvm.hexagon.F2.dfimm.p
  __builtin_HEXAGON_F2_dfimm_p(0);
  // CHECK: @llvm.hexagon.F2.sfadd
  __builtin_HEXAGON_F2_sfadd(0.0f, 0.0f);
  // CHECK: @llvm.hexagon.F2.sfclass
  __builtin_HEXAGON_F2_sfclass(0.0f, 0);
  // CHECK: @llvm.hexagon.F2.sfcmpeq
  __builtin_HEXAGON_F2_sfcmpeq(0.0f, 0.0f);
  // CHECK: @llvm.hexagon.F2.sfcmpge
  __builtin_HEXAGON_F2_sfcmpge(0.0f, 0.0f);
  // CHECK: @llvm.hexagon.F2.sfcmpgt
  __builtin_HEXAGON_F2_sfcmpgt(0.0f, 0.0f);
  // CHECK: @llvm.hexagon.F2.sfcmpuo
  __builtin_HEXAGON_F2_sfcmpuo(0.0f, 0.0f);
  // CHECK: @llvm.hexagon.F2.sffixupd
  __builtin_HEXAGON_F2_sffixupd(0.0f, 0.0f);
  // CHECK: @llvm.hexagon.F2.sffixupn
  __builtin_HEXAGON_F2_sffixupn(0.0f, 0.0f);
  // CHECK: @llvm.hexagon.F2.sffixupr
  __builtin_HEXAGON_F2_sffixupr(0.0f);
  // CHECK: @llvm.hexagon.F2.sffma
  __builtin_HEXAGON_F2_sffma(0.0f, 0.0f, 0.0f);
  // CHECK: @llvm.hexagon.F2.sffma.lib
  __builtin_HEXAGON_F2_sffma_lib(0.0f, 0.0f, 0.0f);
  // CHECK: @llvm.hexagon.F2.sffma.sc
  __builtin_HEXAGON_F2_sffma_sc(0.0f, 0.0f, 0.0f, 0);
  // CHECK: @llvm.hexagon.F2.sffms
  __builtin_HEXAGON_F2_sffms(0.0f, 0.0f, 0.0f);
  // CHECK: @llvm.hexagon.F2.sffms.lib
  __builtin_HEXAGON_F2_sffms_lib(0.0f, 0.0f, 0.0f);
  // CHECK: @llvm.hexagon.F2.sfimm.n
  __builtin_HEXAGON_F2_sfimm_n(0);
  // CHECK: @llvm.hexagon.F2.sfimm.p
  __builtin_HEXAGON_F2_sfimm_p(0);
  // CHECK: @llvm.hexagon.F2.sfmax
  __builtin_HEXAGON_F2_sfmax(0.0f, 0.0f);
  // CHECK: @llvm.hexagon.F2.sfmin
  __builtin_HEXAGON_F2_sfmin(0.0f, 0.0f);
  // CHECK: @llvm.hexagon.F2.sfmpy
  __builtin_HEXAGON_F2_sfmpy(0.0f, 0.0f);
  // CHECK: @llvm.hexagon.F2.sfsub
  __builtin_HEXAGON_F2_sfsub(0.0f, 0.0f);
  // CHECK: @llvm.hexagon.M2.acci
  __builtin_HEXAGON_M2_acci(0, 0, 0);
  // CHECK: @llvm.hexagon.M2.accii
  __builtin_HEXAGON_M2_accii(0, 0, 0);
  // CHECK: @llvm.hexagon.M2.cmaci.s0
  __builtin_HEXAGON_M2_cmaci_s0(0, 0, 0);
  // CHECK: @llvm.hexagon.M2.cmacr.s0
  __builtin_HEXAGON_M2_cmacr_s0(0, 0, 0);
  // CHECK: @llvm.hexagon.M2.cmacs.s0
  __builtin_HEXAGON_M2_cmacs_s0(0, 0, 0);
  // CHECK: @llvm.hexagon.M2.cmacs.s1
  __builtin_HEXAGON_M2_cmacs_s1(0, 0, 0);
  // CHECK: @llvm.hexagon.M2.cmacsc.s0
  __builtin_HEXAGON_M2_cmacsc_s0(0, 0, 0);
  // CHECK: @llvm.hexagon.M2.cmacsc.s1
  __builtin_HEXAGON_M2_cmacsc_s1(0, 0, 0);
  // CHECK: @llvm.hexagon.M2.cmpyi.s0
  __builtin_HEXAGON_M2_cmpyi_s0(0, 0);
  // CHECK: @llvm.hexagon.M2.cmpyr.s0
  __builtin_HEXAGON_M2_cmpyr_s0(0, 0);
  // CHECK: @llvm.hexagon.M2.cmpyrs.s0
  __builtin_HEXAGON_M2_cmpyrs_s0(0, 0);
  // CHECK: @llvm.hexagon.M2.cmpyrs.s1
  __builtin_HEXAGON_M2_cmpyrs_s1(0, 0);
  // CHECK: @llvm.hexagon.M2.cmpyrsc.s0
  __builtin_HEXAGON_M2_cmpyrsc_s0(0, 0);
  // CHECK: @llvm.hexagon.M2.cmpyrsc.s1
  __builtin_HEXAGON_M2_cmpyrsc_s1(0, 0);
  // CHECK: @llvm.hexagon.M2.cmpys.s0
  __builtin_HEXAGON_M2_cmpys_s0(0, 0);
  // CHECK: @llvm.hexagon.M2.cmpys.s1
  __builtin_HEXAGON_M2_cmpys_s1(0, 0);
  // CHECK: @llvm.hexagon.M2.cmpysc.s0
  __builtin_HEXAGON_M2_cmpysc_s0(0, 0);
  // CHECK: @llvm.hexagon.M2.cmpysc.s1
  __builtin_HEXAGON_M2_cmpysc_s1(0, 0);
  // CHECK: @llvm.hexagon.M2.cnacs.s0
  __builtin_HEXAGON_M2_cnacs_s0(0, 0, 0);
  // CHECK: @llvm.hexagon.M2.cnacs.s1
  __builtin_HEXAGON_M2_cnacs_s1(0, 0, 0);
  // CHECK: @llvm.hexagon.M2.cnacsc.s0
  __builtin_HEXAGON_M2_cnacsc_s0(0, 0, 0);
  // CHECK: @llvm.hexagon.M2.cnacsc.s1
  __builtin_HEXAGON_M2_cnacsc_s1(0, 0, 0);
  // CHECK: @llvm.hexagon.M2.dpmpyss.acc.s0
  __builtin_HEXAGON_M2_dpmpyss_acc_s0(0, 0, 0);
  // CHECK: @llvm.hexagon.M2.dpmpyss.nac.s0
  __builtin_HEXAGON_M2_dpmpyss_nac_s0(0, 0, 0);
  // CHECK: @llvm.hexagon.M2.dpmpyss.rnd.s0
  __builtin_HEXAGON_M2_dpmpyss_rnd_s0(0, 0);
  // CHECK: @llvm.hexagon.M2.dpmpyss.s0
  __builtin_HEXAGON_M2_dpmpyss_s0(0, 0);
  // CHECK: @llvm.hexagon.M2.dpmpyuu.acc.s0
  __builtin_HEXAGON_M2_dpmpyuu_acc_s0(0, 0, 0);
  // CHECK: @llvm.hexagon.M2.dpmpyuu.nac.s0
  __builtin_HEXAGON_M2_dpmpyuu_nac_s0(0, 0, 0);
  // CHECK: @llvm.hexagon.M2.dpmpyuu.s0
  __builtin_HEXAGON_M2_dpmpyuu_s0(0, 0);
  // CHECK: @llvm.hexagon.M2.hmmpyh.rs1
  __builtin_HEXAGON_M2_hmmpyh_rs1(0, 0);
  // CHECK: @llvm.hexagon.M2.hmmpyh.s1
  __builtin_HEXAGON_M2_hmmpyh_s1(0, 0);
  // CHECK: @llvm.hexagon.M2.hmmpyl.rs1
  __builtin_HEXAGON_M2_hmmpyl_rs1(0, 0);
  // CHECK: @llvm.hexagon.M2.hmmpyl.s1
  __builtin_HEXAGON_M2_hmmpyl_s1(0, 0);
  // CHECK: @llvm.hexagon.M2.maci
  __builtin_HEXAGON_M2_maci(0, 0, 0);
  // CHECK: @llvm.hexagon.M2.macsin
  __builtin_HEXAGON_M2_macsin(0, 0, 0);
  // CHECK: @llvm.hexagon.M2.macsip
  __builtin_HEXAGON_M2_macsip(0, 0, 0);
  // CHECK: @llvm.hexagon.M2.mmachs.rs0
  __builtin_HEXAGON_M2_mmachs_rs0(0, 0, 0);
  // CHECK: @llvm.hexagon.M2.mmachs.rs1
  __builtin_HEXAGON_M2_mmachs_rs1(0, 0, 0);
  // CHECK: @llvm.hexagon.M2.mmachs.s0
  __builtin_HEXAGON_M2_mmachs_s0(0, 0, 0);
  // CHECK: @llvm.hexagon.M2.mmachs.s1
  __builtin_HEXAGON_M2_mmachs_s1(0, 0, 0);
  // CHECK: @llvm.hexagon.M2.mmacls.rs0
  __builtin_HEXAGON_M2_mmacls_rs0(0, 0, 0);
  // CHECK: @llvm.hexagon.M2.mmacls.rs1
  __builtin_HEXAGON_M2_mmacls_rs1(0, 0, 0);
  // CHECK: @llvm.hexagon.M2.mmacls.s0
  __builtin_HEXAGON_M2_mmacls_s0(0, 0, 0);
  // CHECK: @llvm.hexagon.M2.mmacls.s1
  __builtin_HEXAGON_M2_mmacls_s1(0, 0, 0);
  // CHECK: @llvm.hexagon.M2.mmacuhs.rs0
  __builtin_HEXAGON_M2_mmacuhs_rs0(0, 0, 0);
  // CHECK: @llvm.hexagon.M2.mmacuhs.rs1
  __builtin_HEXAGON_M2_mmacuhs_rs1(0, 0, 0);
  // CHECK: @llvm.hexagon.M2.mmacuhs.s0
  __builtin_HEXAGON_M2_mmacuhs_s0(0, 0, 0);
  // CHECK: @llvm.hexagon.M2.mmacuhs.s1
  __builtin_HEXAGON_M2_mmacuhs_s1(0, 0, 0);
  // CHECK: @llvm.hexagon.M2.mmaculs.rs0
  __builtin_HEXAGON_M2_mmaculs_rs0(0, 0, 0);
  // CHECK: @llvm.hexagon.M2.mmaculs.rs1
  __builtin_HEXAGON_M2_mmaculs_rs1(0, 0, 0);
  // CHECK: @llvm.hexagon.M2.mmaculs.s0
  __builtin_HEXAGON_M2_mmaculs_s0(0, 0, 0);
  // CHECK: @llvm.hexagon.M2.mmaculs.s1
  __builtin_HEXAGON_M2_mmaculs_s1(0, 0, 0);
  // CHECK: @llvm.hexagon.M2.mmpyh.rs0
  __builtin_HEXAGON_M2_mmpyh_rs0(0, 0);
  // CHECK: @llvm.hexagon.M2.mmpyh.rs1
  __builtin_HEXAGON_M2_mmpyh_rs1(0, 0);
  // CHECK: @llvm.hexagon.M2.mmpyh.s0
  __builtin_HEXAGON_M2_mmpyh_s0(0, 0);
  // CHECK: @llvm.hexagon.M2.mmpyh.s1
  __builtin_HEXAGON_M2_mmpyh_s1(0, 0);
  // CHECK: @llvm.hexagon.M2.mmpyl.rs0
  __builtin_HEXAGON_M2_mmpyl_rs0(0, 0);
  // CHECK: @llvm.hexagon.M2.mmpyl.rs1
  __builtin_HEXAGON_M2_mmpyl_rs1(0, 0);
  // CHECK: @llvm.hexagon.M2.mmpyl.s0
  __builtin_HEXAGON_M2_mmpyl_s0(0, 0);
  // CHECK: @llvm.hexagon.M2.mmpyl.s1
  __builtin_HEXAGON_M2_mmpyl_s1(0, 0);
  // CHECK: @llvm.hexagon.M2.mmpyuh.rs0
  __builtin_HEXAGON_M2_mmpyuh_rs0(0, 0);
  // CHECK: @llvm.hexagon.M2.mmpyuh.rs1
  __builtin_HEXAGON_M2_mmpyuh_rs1(0, 0);
  // CHECK: @llvm.hexagon.M2.mmpyuh.s0
  __builtin_HEXAGON_M2_mmpyuh_s0(0, 0);
  // CHECK: @llvm.hexagon.M2.mmpyuh.s1
  __builtin_HEXAGON_M2_mmpyuh_s1(0, 0);
  // CHECK: @llvm.hexagon.M2.mmpyul.rs0
  __builtin_HEXAGON_M2_mmpyul_rs0(0, 0);
  // CHECK: @llvm.hexagon.M2.mmpyul.rs1
  __builtin_HEXAGON_M2_mmpyul_rs1(0, 0);
  // CHECK: @llvm.hexagon.M2.mmpyul.s0
  __builtin_HEXAGON_M2_mmpyul_s0(0, 0);
  // CHECK: @llvm.hexagon.M2.mmpyul.s1
  __builtin_HEXAGON_M2_mmpyul_s1(0, 0);
  // CHECK: @llvm.hexagon.M2.mpy.acc.hh.s0
  __builtin_HEXAGON_M2_mpy_acc_hh_s0(0, 0, 0);
  // CHECK: @llvm.hexagon.M2.mpy.acc.hh.s1
  __builtin_HEXAGON_M2_mpy_acc_hh_s1(0, 0, 0);
  // CHECK: @llvm.hexagon.M2.mpy.acc.hl.s0
  __builtin_HEXAGON_M2_mpy_acc_hl_s0(0, 0, 0);
  // CHECK: @llvm.hexagon.M2.mpy.acc.hl.s1
  __builtin_HEXAGON_M2_mpy_acc_hl_s1(0, 0, 0);
  // CHECK: @llvm.hexagon.M2.mpy.acc.lh.s0
  __builtin_HEXAGON_M2_mpy_acc_lh_s0(0, 0, 0);
  // CHECK: @llvm.hexagon.M2.mpy.acc.lh.s1
  __builtin_HEXAGON_M2_mpy_acc_lh_s1(0, 0, 0);
  // CHECK: @llvm.hexagon.M2.mpy.acc.ll.s0
  __builtin_HEXAGON_M2_mpy_acc_ll_s0(0, 0, 0);
  // CHECK: @llvm.hexagon.M2.mpy.acc.ll.s1
  __builtin_HEXAGON_M2_mpy_acc_ll_s1(0, 0, 0);
  // CHECK: @llvm.hexagon.M2.mpy.acc.sat.hh.s0
  __builtin_HEXAGON_M2_mpy_acc_sat_hh_s0(0, 0, 0);
  // CHECK: @llvm.hexagon.M2.mpy.acc.sat.hh.s1
  __builtin_HEXAGON_M2_mpy_acc_sat_hh_s1(0, 0, 0);
  // CHECK: @llvm.hexagon.M2.mpy.acc.sat.hl.s0
  __builtin_HEXAGON_M2_mpy_acc_sat_hl_s0(0, 0, 0);
  // CHECK: @llvm.hexagon.M2.mpy.acc.sat.hl.s1
  __builtin_HEXAGON_M2_mpy_acc_sat_hl_s1(0, 0, 0);
  // CHECK: @llvm.hexagon.M2.mpy.acc.sat.lh.s0
  __builtin_HEXAGON_M2_mpy_acc_sat_lh_s0(0, 0, 0);
  // CHECK: @llvm.hexagon.M2.mpy.acc.sat.lh.s1
  __builtin_HEXAGON_M2_mpy_acc_sat_lh_s1(0, 0, 0);
  // CHECK: @llvm.hexagon.M2.mpy.acc.sat.ll.s0
  __builtin_HEXAGON_M2_mpy_acc_sat_ll_s0(0, 0, 0);
  // CHECK: @llvm.hexagon.M2.mpy.acc.sat.ll.s1
  __builtin_HEXAGON_M2_mpy_acc_sat_ll_s1(0, 0, 0);
  // CHECK: @llvm.hexagon.M2.mpy.hh.s0
  __builtin_HEXAGON_M2_mpy_hh_s0(0, 0);
  // CHECK: @llvm.hexagon.M2.mpy.hh.s1
  __builtin_HEXAGON_M2_mpy_hh_s1(0, 0);
  // CHECK: @llvm.hexagon.M2.mpy.hl.s0
  __builtin_HEXAGON_M2_mpy_hl_s0(0, 0);
  // CHECK: @llvm.hexagon.M2.mpy.hl.s1
  __builtin_HEXAGON_M2_mpy_hl_s1(0, 0);
  // CHECK: @llvm.hexagon.M2.mpy.lh.s0
  __builtin_HEXAGON_M2_mpy_lh_s0(0, 0);
  // CHECK: @llvm.hexagon.M2.mpy.lh.s1
  __builtin_HEXAGON_M2_mpy_lh_s1(0, 0);
  // CHECK: @llvm.hexagon.M2.mpy.ll.s0
  __builtin_HEXAGON_M2_mpy_ll_s0(0, 0);
  // CHECK: @llvm.hexagon.M2.mpy.ll.s1
  __builtin_HEXAGON_M2_mpy_ll_s1(0, 0);
  // CHECK: @llvm.hexagon.M2.mpy.nac.hh.s0
  __builtin_HEXAGON_M2_mpy_nac_hh_s0(0, 0, 0);
  // CHECK: @llvm.hexagon.M2.mpy.nac.hh.s1
  __builtin_HEXAGON_M2_mpy_nac_hh_s1(0, 0, 0);
  // CHECK: @llvm.hexagon.M2.mpy.nac.hl.s0
  __builtin_HEXAGON_M2_mpy_nac_hl_s0(0, 0, 0);
  // CHECK: @llvm.hexagon.M2.mpy.nac.hl.s1
  __builtin_HEXAGON_M2_mpy_nac_hl_s1(0, 0, 0);
  // CHECK: @llvm.hexagon.M2.mpy.nac.lh.s0
  __builtin_HEXAGON_M2_mpy_nac_lh_s0(0, 0, 0);
  // CHECK: @llvm.hexagon.M2.mpy.nac.lh.s1
  __builtin_HEXAGON_M2_mpy_nac_lh_s1(0, 0, 0);
  // CHECK: @llvm.hexagon.M2.mpy.nac.ll.s0
  __builtin_HEXAGON_M2_mpy_nac_ll_s0(0, 0, 0);
  // CHECK: @llvm.hexagon.M2.mpy.nac.ll.s1
  __builtin_HEXAGON_M2_mpy_nac_ll_s1(0, 0, 0);
  // CHECK: @llvm.hexagon.M2.mpy.nac.sat.hh.s0
  __builtin_HEXAGON_M2_mpy_nac_sat_hh_s0(0, 0, 0);
  // CHECK: @llvm.hexagon.M2.mpy.nac.sat.hh.s1
  __builtin_HEXAGON_M2_mpy_nac_sat_hh_s1(0, 0, 0);
  // CHECK: @llvm.hexagon.M2.mpy.nac.sat.hl.s0
  __builtin_HEXAGON_M2_mpy_nac_sat_hl_s0(0, 0, 0);
  // CHECK: @llvm.hexagon.M2.mpy.nac.sat.hl.s1
  __builtin_HEXAGON_M2_mpy_nac_sat_hl_s1(0, 0, 0);
  // CHECK: @llvm.hexagon.M2.mpy.nac.sat.lh.s0
  __builtin_HEXAGON_M2_mpy_nac_sat_lh_s0(0, 0, 0);
  // CHECK: @llvm.hexagon.M2.mpy.nac.sat.lh.s1
  __builtin_HEXAGON_M2_mpy_nac_sat_lh_s1(0, 0, 0);
  // CHECK: @llvm.hexagon.M2.mpy.nac.sat.ll.s0
  __builtin_HEXAGON_M2_mpy_nac_sat_ll_s0(0, 0, 0);
  // CHECK: @llvm.hexagon.M2.mpy.nac.sat.ll.s1
  __builtin_HEXAGON_M2_mpy_nac_sat_ll_s1(0, 0, 0);
  // CHECK: @llvm.hexagon.M2.mpy.rnd.hh.s0
  __builtin_HEXAGON_M2_mpy_rnd_hh_s0(0, 0);
  // CHECK: @llvm.hexagon.M2.mpy.rnd.hh.s1
  __builtin_HEXAGON_M2_mpy_rnd_hh_s1(0, 0);
  // CHECK: @llvm.hexagon.M2.mpy.rnd.hl.s0
  __builtin_HEXAGON_M2_mpy_rnd_hl_s0(0, 0);
  // CHECK: @llvm.hexagon.M2.mpy.rnd.hl.s1
  __builtin_HEXAGON_M2_mpy_rnd_hl_s1(0, 0);
  // CHECK: @llvm.hexagon.M2.mpy.rnd.lh.s0
  __builtin_HEXAGON_M2_mpy_rnd_lh_s0(0, 0);
  // CHECK: @llvm.hexagon.M2.mpy.rnd.lh.s1
  __builtin_HEXAGON_M2_mpy_rnd_lh_s1(0, 0);
  // CHECK: @llvm.hexagon.M2.mpy.rnd.ll.s0
  __builtin_HEXAGON_M2_mpy_rnd_ll_s0(0, 0);
  // CHECK: @llvm.hexagon.M2.mpy.rnd.ll.s1
  __builtin_HEXAGON_M2_mpy_rnd_ll_s1(0, 0);
  // CHECK: @llvm.hexagon.M2.mpy.sat.hh.s0
  __builtin_HEXAGON_M2_mpy_sat_hh_s0(0, 0);
  // CHECK: @llvm.hexagon.M2.mpy.sat.hh.s1
  __builtin_HEXAGON_M2_mpy_sat_hh_s1(0, 0);
  // CHECK: @llvm.hexagon.M2.mpy.sat.hl.s0
  __builtin_HEXAGON_M2_mpy_sat_hl_s0(0, 0);
  // CHECK: @llvm.hexagon.M2.mpy.sat.hl.s1
  __builtin_HEXAGON_M2_mpy_sat_hl_s1(0, 0);
  // CHECK: @llvm.hexagon.M2.mpy.sat.lh.s0
  __builtin_HEXAGON_M2_mpy_sat_lh_s0(0, 0);
  // CHECK: @llvm.hexagon.M2.mpy.sat.lh.s1
  __builtin_HEXAGON_M2_mpy_sat_lh_s1(0, 0);
  // CHECK: @llvm.hexagon.M2.mpy.sat.ll.s0
  __builtin_HEXAGON_M2_mpy_sat_ll_s0(0, 0);
  // CHECK: @llvm.hexagon.M2.mpy.sat.ll.s1
  __builtin_HEXAGON_M2_mpy_sat_ll_s1(0, 0);
  // CHECK: @llvm.hexagon.M2.mpy.sat.rnd.hh.s0
  __builtin_HEXAGON_M2_mpy_sat_rnd_hh_s0(0, 0);
  // CHECK: @llvm.hexagon.M2.mpy.sat.rnd.hh.s1
  __builtin_HEXAGON_M2_mpy_sat_rnd_hh_s1(0, 0);
  // CHECK: @llvm.hexagon.M2.mpy.sat.rnd.hl.s0
  __builtin_HEXAGON_M2_mpy_sat_rnd_hl_s0(0, 0);
  // CHECK: @llvm.hexagon.M2.mpy.sat.rnd.hl.s1
  __builtin_HEXAGON_M2_mpy_sat_rnd_hl_s1(0, 0);
  // CHECK: @llvm.hexagon.M2.mpy.sat.rnd.lh.s0
  __builtin_HEXAGON_M2_mpy_sat_rnd_lh_s0(0, 0);
  // CHECK: @llvm.hexagon.M2.mpy.sat.rnd.lh.s1
  __builtin_HEXAGON_M2_mpy_sat_rnd_lh_s1(0, 0);
  // CHECK: @llvm.hexagon.M2.mpy.sat.rnd.ll.s0
  __builtin_HEXAGON_M2_mpy_sat_rnd_ll_s0(0, 0);
  // CHECK: @llvm.hexagon.M2.mpy.sat.rnd.ll.s1
  __builtin_HEXAGON_M2_mpy_sat_rnd_ll_s1(0, 0);
  // CHECK: @llvm.hexagon.M2.mpy.up
  __builtin_HEXAGON_M2_mpy_up(0, 0);
  // CHECK: @llvm.hexagon.M2.mpy.up.s1
  __builtin_HEXAGON_M2_mpy_up_s1(0, 0);
  // CHECK: @llvm.hexagon.M2.mpy.up.s1.sat
  __builtin_HEXAGON_M2_mpy_up_s1_sat(0, 0);
  // CHECK: @llvm.hexagon.M2.mpyd.acc.hh.s0
  __builtin_HEXAGON_M2_mpyd_acc_hh_s0(0, 0, 0);
  // CHECK: @llvm.hexagon.M2.mpyd.acc.hh.s1
  __builtin_HEXAGON_M2_mpyd_acc_hh_s1(0, 0, 0);
  // CHECK: @llvm.hexagon.M2.mpyd.acc.hl.s0
  __builtin_HEXAGON_M2_mpyd_acc_hl_s0(0, 0, 0);
  // CHECK: @llvm.hexagon.M2.mpyd.acc.hl.s1
  __builtin_HEXAGON_M2_mpyd_acc_hl_s1(0, 0, 0);
  // CHECK: @llvm.hexagon.M2.mpyd.acc.lh.s0
  __builtin_HEXAGON_M2_mpyd_acc_lh_s0(0, 0, 0);
  // CHECK: @llvm.hexagon.M2.mpyd.acc.lh.s1
  __builtin_HEXAGON_M2_mpyd_acc_lh_s1(0, 0, 0);
  // CHECK: @llvm.hexagon.M2.mpyd.acc.ll.s0
  __builtin_HEXAGON_M2_mpyd_acc_ll_s0(0, 0, 0);
  // CHECK: @llvm.hexagon.M2.mpyd.acc.ll.s1
  __builtin_HEXAGON_M2_mpyd_acc_ll_s1(0, 0, 0);
  // CHECK: @llvm.hexagon.M2.mpyd.hh.s0
  __builtin_HEXAGON_M2_mpyd_hh_s0(0, 0);
  // CHECK: @llvm.hexagon.M2.mpyd.hh.s1
  __builtin_HEXAGON_M2_mpyd_hh_s1(0, 0);
  // CHECK: @llvm.hexagon.M2.mpyd.hl.s0
  __builtin_HEXAGON_M2_mpyd_hl_s0(0, 0);
  // CHECK: @llvm.hexagon.M2.mpyd.hl.s1
  __builtin_HEXAGON_M2_mpyd_hl_s1(0, 0);
  // CHECK: @llvm.hexagon.M2.mpyd.lh.s0
  __builtin_HEXAGON_M2_mpyd_lh_s0(0, 0);
  // CHECK: @llvm.hexagon.M2.mpyd.lh.s1
  __builtin_HEXAGON_M2_mpyd_lh_s1(0, 0);
  // CHECK: @llvm.hexagon.M2.mpyd.ll.s0
  __builtin_HEXAGON_M2_mpyd_ll_s0(0, 0);
  // CHECK: @llvm.hexagon.M2.mpyd.ll.s1
  __builtin_HEXAGON_M2_mpyd_ll_s1(0, 0);
  // CHECK: @llvm.hexagon.M2.mpyd.nac.hh.s0
  __builtin_HEXAGON_M2_mpyd_nac_hh_s0(0, 0, 0);
  // CHECK: @llvm.hexagon.M2.mpyd.nac.hh.s1
  __builtin_HEXAGON_M2_mpyd_nac_hh_s1(0, 0, 0);
  // CHECK: @llvm.hexagon.M2.mpyd.nac.hl.s0
  __builtin_HEXAGON_M2_mpyd_nac_hl_s0(0, 0, 0);
  // CHECK: @llvm.hexagon.M2.mpyd.nac.hl.s1
  __builtin_HEXAGON_M2_mpyd_nac_hl_s1(0, 0, 0);
  // CHECK: @llvm.hexagon.M2.mpyd.nac.lh.s0
  __builtin_HEXAGON_M2_mpyd_nac_lh_s0(0, 0, 0);
  // CHECK: @llvm.hexagon.M2.mpyd.nac.lh.s1
  __builtin_HEXAGON_M2_mpyd_nac_lh_s1(0, 0, 0);
  // CHECK: @llvm.hexagon.M2.mpyd.nac.ll.s0
  __builtin_HEXAGON_M2_mpyd_nac_ll_s0(0, 0, 0);
  // CHECK: @llvm.hexagon.M2.mpyd.nac.ll.s1
  __builtin_HEXAGON_M2_mpyd_nac_ll_s1(0, 0, 0);
  // CHECK: @llvm.hexagon.M2.mpyd.rnd.hh.s0
  __builtin_HEXAGON_M2_mpyd_rnd_hh_s0(0, 0);
  // CHECK: @llvm.hexagon.M2.mpyd.rnd.hh.s1
  __builtin_HEXAGON_M2_mpyd_rnd_hh_s1(0, 0);
  // CHECK: @llvm.hexagon.M2.mpyd.rnd.hl.s0
  __builtin_HEXAGON_M2_mpyd_rnd_hl_s0(0, 0);
  // CHECK: @llvm.hexagon.M2.mpyd.rnd.hl.s1
  __builtin_HEXAGON_M2_mpyd_rnd_hl_s1(0, 0);
  // CHECK: @llvm.hexagon.M2.mpyd.rnd.lh.s0
  __builtin_HEXAGON_M2_mpyd_rnd_lh_s0(0, 0);
  // CHECK: @llvm.hexagon.M2.mpyd.rnd.lh.s1
  __builtin_HEXAGON_M2_mpyd_rnd_lh_s1(0, 0);
  // CHECK: @llvm.hexagon.M2.mpyd.rnd.ll.s0
  __builtin_HEXAGON_M2_mpyd_rnd_ll_s0(0, 0);
  // CHECK: @llvm.hexagon.M2.mpyd.rnd.ll.s1
  __builtin_HEXAGON_M2_mpyd_rnd_ll_s1(0, 0);
  // CHECK: @llvm.hexagon.M2.mpyi
  __builtin_HEXAGON_M2_mpyi(0, 0);
  // CHECK: @llvm.hexagon.M2.mpysmi
  __builtin_HEXAGON_M2_mpysmi(0, 0);
  // CHECK: @llvm.hexagon.M2.mpysu.up
  __builtin_HEXAGON_M2_mpysu_up(0, 0);
  // CHECK: @llvm.hexagon.M2.mpyu.acc.hh.s0
  __builtin_HEXAGON_M2_mpyu_acc_hh_s0(0, 0, 0);
  // CHECK: @llvm.hexagon.M2.mpyu.acc.hh.s1
  __builtin_HEXAGON_M2_mpyu_acc_hh_s1(0, 0, 0);
  // CHECK: @llvm.hexagon.M2.mpyu.acc.hl.s0
  __builtin_HEXAGON_M2_mpyu_acc_hl_s0(0, 0, 0);
  // CHECK: @llvm.hexagon.M2.mpyu.acc.hl.s1
  __builtin_HEXAGON_M2_mpyu_acc_hl_s1(0, 0, 0);
  // CHECK: @llvm.hexagon.M2.mpyu.acc.lh.s0
  __builtin_HEXAGON_M2_mpyu_acc_lh_s0(0, 0, 0);
  // CHECK: @llvm.hexagon.M2.mpyu.acc.lh.s1
  __builtin_HEXAGON_M2_mpyu_acc_lh_s1(0, 0, 0);
  // CHECK: @llvm.hexagon.M2.mpyu.acc.ll.s0
  __builtin_HEXAGON_M2_mpyu_acc_ll_s0(0, 0, 0);
  // CHECK: @llvm.hexagon.M2.mpyu.acc.ll.s1
  __builtin_HEXAGON_M2_mpyu_acc_ll_s1(0, 0, 0);
  // CHECK: @llvm.hexagon.M2.mpyu.hh.s0
  __builtin_HEXAGON_M2_mpyu_hh_s0(0, 0);
  // CHECK: @llvm.hexagon.M2.mpyu.hh.s1
  __builtin_HEXAGON_M2_mpyu_hh_s1(0, 0);
  // CHECK: @llvm.hexagon.M2.mpyu.hl.s0
  __builtin_HEXAGON_M2_mpyu_hl_s0(0, 0);
  // CHECK: @llvm.hexagon.M2.mpyu.hl.s1
  __builtin_HEXAGON_M2_mpyu_hl_s1(0, 0);
  // CHECK: @llvm.hexagon.M2.mpyu.lh.s0
  __builtin_HEXAGON_M2_mpyu_lh_s0(0, 0);
  // CHECK: @llvm.hexagon.M2.mpyu.lh.s1
  __builtin_HEXAGON_M2_mpyu_lh_s1(0, 0);
  // CHECK: @llvm.hexagon.M2.mpyu.ll.s0
  __builtin_HEXAGON_M2_mpyu_ll_s0(0, 0);
  // CHECK: @llvm.hexagon.M2.mpyu.ll.s1
  __builtin_HEXAGON_M2_mpyu_ll_s1(0, 0);
  // CHECK: @llvm.hexagon.M2.mpyu.nac.hh.s0
  __builtin_HEXAGON_M2_mpyu_nac_hh_s0(0, 0, 0);
  // CHECK: @llvm.hexagon.M2.mpyu.nac.hh.s1
  __builtin_HEXAGON_M2_mpyu_nac_hh_s1(0, 0, 0);
  // CHECK: @llvm.hexagon.M2.mpyu.nac.hl.s0
  __builtin_HEXAGON_M2_mpyu_nac_hl_s0(0, 0, 0);
  // CHECK: @llvm.hexagon.M2.mpyu.nac.hl.s1
  __builtin_HEXAGON_M2_mpyu_nac_hl_s1(0, 0, 0);
  // CHECK: @llvm.hexagon.M2.mpyu.nac.lh.s0
  __builtin_HEXAGON_M2_mpyu_nac_lh_s0(0, 0, 0);
  // CHECK: @llvm.hexagon.M2.mpyu.nac.lh.s1
  __builtin_HEXAGON_M2_mpyu_nac_lh_s1(0, 0, 0);
  // CHECK: @llvm.hexagon.M2.mpyu.nac.ll.s0
  __builtin_HEXAGON_M2_mpyu_nac_ll_s0(0, 0, 0);
  // CHECK: @llvm.hexagon.M2.mpyu.nac.ll.s1
  __builtin_HEXAGON_M2_mpyu_nac_ll_s1(0, 0, 0);
  // CHECK: @llvm.hexagon.M2.mpyu.up
  __builtin_HEXAGON_M2_mpyu_up(0, 0);
  // CHECK: @llvm.hexagon.M2.mpyud.acc.hh.s0
  __builtin_HEXAGON_M2_mpyud_acc_hh_s0(0, 0, 0);
  // CHECK: @llvm.hexagon.M2.mpyud.acc.hh.s1
  __builtin_HEXAGON_M2_mpyud_acc_hh_s1(0, 0, 0);
  // CHECK: @llvm.hexagon.M2.mpyud.acc.hl.s0
  __builtin_HEXAGON_M2_mpyud_acc_hl_s0(0, 0, 0);
  // CHECK: @llvm.hexagon.M2.mpyud.acc.hl.s1
  __builtin_HEXAGON_M2_mpyud_acc_hl_s1(0, 0, 0);
  // CHECK: @llvm.hexagon.M2.mpyud.acc.lh.s0
  __builtin_HEXAGON_M2_mpyud_acc_lh_s0(0, 0, 0);
  // CHECK: @llvm.hexagon.M2.mpyud.acc.lh.s1
  __builtin_HEXAGON_M2_mpyud_acc_lh_s1(0, 0, 0);
  // CHECK: @llvm.hexagon.M2.mpyud.acc.ll.s0
  __builtin_HEXAGON_M2_mpyud_acc_ll_s0(0, 0, 0);
  // CHECK: @llvm.hexagon.M2.mpyud.acc.ll.s1
  __builtin_HEXAGON_M2_mpyud_acc_ll_s1(0, 0, 0);
  // CHECK: @llvm.hexagon.M2.mpyud.hh.s0
  __builtin_HEXAGON_M2_mpyud_hh_s0(0, 0);
  // CHECK: @llvm.hexagon.M2.mpyud.hh.s1
  __builtin_HEXAGON_M2_mpyud_hh_s1(0, 0);
  // CHECK: @llvm.hexagon.M2.mpyud.hl.s0
  __builtin_HEXAGON_M2_mpyud_hl_s0(0, 0);
  // CHECK: @llvm.hexagon.M2.mpyud.hl.s1
  __builtin_HEXAGON_M2_mpyud_hl_s1(0, 0);
  // CHECK: @llvm.hexagon.M2.mpyud.lh.s0
  __builtin_HEXAGON_M2_mpyud_lh_s0(0, 0);
  // CHECK: @llvm.hexagon.M2.mpyud.lh.s1
  __builtin_HEXAGON_M2_mpyud_lh_s1(0, 0);
  // CHECK: @llvm.hexagon.M2.mpyud.ll.s0
  __builtin_HEXAGON_M2_mpyud_ll_s0(0, 0);
  // CHECK: @llvm.hexagon.M2.mpyud.ll.s1
  __builtin_HEXAGON_M2_mpyud_ll_s1(0, 0);
  // CHECK: @llvm.hexagon.M2.mpyud.nac.hh.s0
  __builtin_HEXAGON_M2_mpyud_nac_hh_s0(0, 0, 0);
  // CHECK: @llvm.hexagon.M2.mpyud.nac.hh.s1
  __builtin_HEXAGON_M2_mpyud_nac_hh_s1(0, 0, 0);
  // CHECK: @llvm.hexagon.M2.mpyud.nac.hl.s0
  __builtin_HEXAGON_M2_mpyud_nac_hl_s0(0, 0, 0);
  // CHECK: @llvm.hexagon.M2.mpyud.nac.hl.s1
  __builtin_HEXAGON_M2_mpyud_nac_hl_s1(0, 0, 0);
  // CHECK: @llvm.hexagon.M2.mpyud.nac.lh.s0
  __builtin_HEXAGON_M2_mpyud_nac_lh_s0(0, 0, 0);
  // CHECK: @llvm.hexagon.M2.mpyud.nac.lh.s1
  __builtin_HEXAGON_M2_mpyud_nac_lh_s1(0, 0, 0);
  // CHECK: @llvm.hexagon.M2.mpyud.nac.ll.s0
  __builtin_HEXAGON_M2_mpyud_nac_ll_s0(0, 0, 0);
  // CHECK: @llvm.hexagon.M2.mpyud.nac.ll.s1
  __builtin_HEXAGON_M2_mpyud_nac_ll_s1(0, 0, 0);
  // CHECK: @llvm.hexagon.M2.mpyui
  __builtin_HEXAGON_M2_mpyui(0, 0);
  // CHECK: @llvm.hexagon.M2.nacci
  __builtin_HEXAGON_M2_nacci(0, 0, 0);
  // CHECK: @llvm.hexagon.M2.naccii
  __builtin_HEXAGON_M2_naccii(0, 0, 0);
  // CHECK: @llvm.hexagon.M2.subacc
  __builtin_HEXAGON_M2_subacc(0, 0, 0);
  // CHECK: @llvm.hexagon.M2.vabsdiffh
  __builtin_HEXAGON_M2_vabsdiffh(0, 0);
  // CHECK: @llvm.hexagon.M2.vabsdiffw
  __builtin_HEXAGON_M2_vabsdiffw(0, 0);
  // CHECK: @llvm.hexagon.M2.vcmac.s0.sat.i
  __builtin_HEXAGON_M2_vcmac_s0_sat_i(0, 0, 0);
  // CHECK: @llvm.hexagon.M2.vcmac.s0.sat.r
  __builtin_HEXAGON_M2_vcmac_s0_sat_r(0, 0, 0);
  // CHECK: @llvm.hexagon.M2.vcmpy.s0.sat.i
  __builtin_HEXAGON_M2_vcmpy_s0_sat_i(0, 0);
  // CHECK: @llvm.hexagon.M2.vcmpy.s0.sat.r
  __builtin_HEXAGON_M2_vcmpy_s0_sat_r(0, 0);
  // CHECK: @llvm.hexagon.M2.vcmpy.s1.sat.i
  __builtin_HEXAGON_M2_vcmpy_s1_sat_i(0, 0);
  // CHECK: @llvm.hexagon.M2.vcmpy.s1.sat.r
  __builtin_HEXAGON_M2_vcmpy_s1_sat_r(0, 0);
  // CHECK: @llvm.hexagon.M2.vdmacs.s0
  __builtin_HEXAGON_M2_vdmacs_s0(0, 0, 0);
  // CHECK: @llvm.hexagon.M2.vdmacs.s1
  __builtin_HEXAGON_M2_vdmacs_s1(0, 0, 0);
  // CHECK: @llvm.hexagon.M2.vdmpyrs.s0
  __builtin_HEXAGON_M2_vdmpyrs_s0(0, 0);
  // CHECK: @llvm.hexagon.M2.vdmpyrs.s1
  __builtin_HEXAGON_M2_vdmpyrs_s1(0, 0);
  // CHECK: @llvm.hexagon.M2.vdmpys.s0
  __builtin_HEXAGON_M2_vdmpys_s0(0, 0);
  // CHECK: @llvm.hexagon.M2.vdmpys.s1
  __builtin_HEXAGON_M2_vdmpys_s1(0, 0);
  // CHECK: @llvm.hexagon.M2.vmac2
  __builtin_HEXAGON_M2_vmac2(0, 0, 0);
  // CHECK: @llvm.hexagon.M2.vmac2es
  __builtin_HEXAGON_M2_vmac2es(0, 0, 0);
  // CHECK: @llvm.hexagon.M2.vmac2es.s0
  __builtin_HEXAGON_M2_vmac2es_s0(0, 0, 0);
  // CHECK: @llvm.hexagon.M2.vmac2es.s1
  __builtin_HEXAGON_M2_vmac2es_s1(0, 0, 0);
  // CHECK: @llvm.hexagon.M2.vmac2s.s0
  __builtin_HEXAGON_M2_vmac2s_s0(0, 0, 0);
  // CHECK: @llvm.hexagon.M2.vmac2s.s1
  __builtin_HEXAGON_M2_vmac2s_s1(0, 0, 0);
  // CHECK: @llvm.hexagon.M2.vmac2su.s0
  __builtin_HEXAGON_M2_vmac2su_s0(0, 0, 0);
  // CHECK: @llvm.hexagon.M2.vmac2su.s1
  __builtin_HEXAGON_M2_vmac2su_s1(0, 0, 0);
  // CHECK: @llvm.hexagon.M2.vmpy2es.s0
  __builtin_HEXAGON_M2_vmpy2es_s0(0, 0);
  // CHECK: @llvm.hexagon.M2.vmpy2es.s1
  __builtin_HEXAGON_M2_vmpy2es_s1(0, 0);
  // CHECK: @llvm.hexagon.M2.vmpy2s.s0
  __builtin_HEXAGON_M2_vmpy2s_s0(0, 0);
  // CHECK: @llvm.hexagon.M2.vmpy2s.s0pack
  __builtin_HEXAGON_M2_vmpy2s_s0pack(0, 0);
  // CHECK: @llvm.hexagon.M2.vmpy2s.s1
  __builtin_HEXAGON_M2_vmpy2s_s1(0, 0);
  // CHECK: @llvm.hexagon.M2.vmpy2s.s1pack
  __builtin_HEXAGON_M2_vmpy2s_s1pack(0, 0);
  // CHECK: @llvm.hexagon.M2.vmpy2su.s0
  __builtin_HEXAGON_M2_vmpy2su_s0(0, 0);
  // CHECK: @llvm.hexagon.M2.vmpy2su.s1
  __builtin_HEXAGON_M2_vmpy2su_s1(0, 0);
  // CHECK: @llvm.hexagon.M2.vraddh
  __builtin_HEXAGON_M2_vraddh(0, 0);
  // CHECK: @llvm.hexagon.M2.vradduh
  __builtin_HEXAGON_M2_vradduh(0, 0);
  // CHECK: @llvm.hexagon.M2.vrcmaci.s0
  __builtin_HEXAGON_M2_vrcmaci_s0(0, 0, 0);
  // CHECK: @llvm.hexagon.M2.vrcmaci.s0c
  __builtin_HEXAGON_M2_vrcmaci_s0c(0, 0, 0);
  // CHECK: @llvm.hexagon.M2.vrcmacr.s0
  __builtin_HEXAGON_M2_vrcmacr_s0(0, 0, 0);
  // CHECK: @llvm.hexagon.M2.vrcmacr.s0c
  __builtin_HEXAGON_M2_vrcmacr_s0c(0, 0, 0);
  // CHECK: @llvm.hexagon.M2.vrcmpyi.s0
  __builtin_HEXAGON_M2_vrcmpyi_s0(0, 0);
  // CHECK: @llvm.hexagon.M2.vrcmpyi.s0c
  __builtin_HEXAGON_M2_vrcmpyi_s0c(0, 0);
  // CHECK: @llvm.hexagon.M2.vrcmpyr.s0
  __builtin_HEXAGON_M2_vrcmpyr_s0(0, 0);
  // CHECK: @llvm.hexagon.M2.vrcmpyr.s0c
  __builtin_HEXAGON_M2_vrcmpyr_s0c(0, 0);
  // CHECK: @llvm.hexagon.M2.vrcmpys.acc.s1
  __builtin_HEXAGON_M2_vrcmpys_acc_s1(0, 0, 0);
  // CHECK: @llvm.hexagon.M2.vrcmpys.s1
  __builtin_HEXAGON_M2_vrcmpys_s1(0, 0);
  // CHECK: @llvm.hexagon.M2.vrcmpys.s1rp
  __builtin_HEXAGON_M2_vrcmpys_s1rp(0, 0);
  // CHECK: @llvm.hexagon.M2.vrmac.s0
  __builtin_HEXAGON_M2_vrmac_s0(0, 0, 0);
  // CHECK: @llvm.hexagon.M2.vrmpy.s0
  __builtin_HEXAGON_M2_vrmpy_s0(0, 0);
  // CHECK: @llvm.hexagon.M2.xor.xacc
  __builtin_HEXAGON_M2_xor_xacc(0, 0, 0);
  // CHECK: @llvm.hexagon.M4.and.and
  __builtin_HEXAGON_M4_and_and(0, 0, 0);
  // CHECK: @llvm.hexagon.M4.and.andn
  __builtin_HEXAGON_M4_and_andn(0, 0, 0);
  // CHECK: @llvm.hexagon.M4.and.or
  __builtin_HEXAGON_M4_and_or(0, 0, 0);
  // CHECK: @llvm.hexagon.M4.and.xor
  __builtin_HEXAGON_M4_and_xor(0, 0, 0);
  // CHECK: @llvm.hexagon.M4.cmpyi.wh
  __builtin_HEXAGON_M4_cmpyi_wh(0, 0);
  // CHECK: @llvm.hexagon.M4.cmpyi.whc
  __builtin_HEXAGON_M4_cmpyi_whc(0, 0);
  // CHECK: @llvm.hexagon.M4.cmpyr.wh
  __builtin_HEXAGON_M4_cmpyr_wh(0, 0);
  // CHECK: @llvm.hexagon.M4.cmpyr.whc
  __builtin_HEXAGON_M4_cmpyr_whc(0, 0);
  // CHECK: @llvm.hexagon.M4.mac.up.s1.sat
  __builtin_HEXAGON_M4_mac_up_s1_sat(0, 0, 0);
  // CHECK: @llvm.hexagon.M4.mpyri.addi
  __builtin_HEXAGON_M4_mpyri_addi(0, 0, 0);
  // CHECK: @llvm.hexagon.M4.mpyri.addr
  __builtin_HEXAGON_M4_mpyri_addr(0, 0, 0);
  // CHECK: @llvm.hexagon.M4.mpyri.addr.u2
  __builtin_HEXAGON_M4_mpyri_addr_u2(0, 0, 0);
  // CHECK: @llvm.hexagon.M4.mpyrr.addi
  __builtin_HEXAGON_M4_mpyrr_addi(0, 0, 0);
  // CHECK: @llvm.hexagon.M4.mpyrr.addr
  __builtin_HEXAGON_M4_mpyrr_addr(0, 0, 0);
  // CHECK: @llvm.hexagon.M4.nac.up.s1.sat
  __builtin_HEXAGON_M4_nac_up_s1_sat(0, 0, 0);
  // CHECK: @llvm.hexagon.M4.or.and
  __builtin_HEXAGON_M4_or_and(0, 0, 0);
  // CHECK: @llvm.hexagon.M4.or.andn
  __builtin_HEXAGON_M4_or_andn(0, 0, 0);
  // CHECK: @llvm.hexagon.M4.or.or
  __builtin_HEXAGON_M4_or_or(0, 0, 0);
  // CHECK: @llvm.hexagon.M4.or.xor
  __builtin_HEXAGON_M4_or_xor(0, 0, 0);
  // CHECK: @llvm.hexagon.M4.pmpyw
  __builtin_HEXAGON_M4_pmpyw(0, 0);
  // CHECK: @llvm.hexagon.M4.pmpyw.acc
  __builtin_HEXAGON_M4_pmpyw_acc(0, 0, 0);
  // CHECK: @llvm.hexagon.M4.vpmpyh
  __builtin_HEXAGON_M4_vpmpyh(0, 0);
  // CHECK: @llvm.hexagon.M4.vpmpyh.acc
  __builtin_HEXAGON_M4_vpmpyh_acc(0, 0, 0);
  // CHECK: @llvm.hexagon.M4.vrmpyeh.acc.s0
  __builtin_HEXAGON_M4_vrmpyeh_acc_s0(0, 0, 0);
  // CHECK: @llvm.hexagon.M4.vrmpyeh.acc.s1
  __builtin_HEXAGON_M4_vrmpyeh_acc_s1(0, 0, 0);
  // CHECK: @llvm.hexagon.M4.vrmpyeh.s0
  __builtin_HEXAGON_M4_vrmpyeh_s0(0, 0);
  // CHECK: @llvm.hexagon.M4.vrmpyeh.s1
  __builtin_HEXAGON_M4_vrmpyeh_s1(0, 0);
  // CHECK: @llvm.hexagon.M4.vrmpyoh.acc.s0
  __builtin_HEXAGON_M4_vrmpyoh_acc_s0(0, 0, 0);
  // CHECK: @llvm.hexagon.M4.vrmpyoh.acc.s1
  __builtin_HEXAGON_M4_vrmpyoh_acc_s1(0, 0, 0);
  // CHECK: @llvm.hexagon.M4.vrmpyoh.s0
  __builtin_HEXAGON_M4_vrmpyoh_s0(0, 0);
  // CHECK: @llvm.hexagon.M4.vrmpyoh.s1
  __builtin_HEXAGON_M4_vrmpyoh_s1(0, 0);
  // CHECK: @llvm.hexagon.M4.xor.and
  __builtin_HEXAGON_M4_xor_and(0, 0, 0);
  // CHECK: @llvm.hexagon.M4.xor.andn
  __builtin_HEXAGON_M4_xor_andn(0, 0, 0);
  // CHECK: @llvm.hexagon.M4.xor.or
  __builtin_HEXAGON_M4_xor_or(0, 0, 0);
  // CHECK: @llvm.hexagon.M4.xor.xacc
  __builtin_HEXAGON_M4_xor_xacc(0, 0, 0);
  // CHECK: @llvm.hexagon.M5.vdmacbsu
  __builtin_HEXAGON_M5_vdmacbsu(0, 0, 0);
  // CHECK: @llvm.hexagon.M5.vdmpybsu
  __builtin_HEXAGON_M5_vdmpybsu(0, 0);
  // CHECK: @llvm.hexagon.M5.vmacbsu
  __builtin_HEXAGON_M5_vmacbsu(0, 0, 0);
  // CHECK: @llvm.hexagon.M5.vmacbuu
  __builtin_HEXAGON_M5_vmacbuu(0, 0, 0);
  // CHECK: @llvm.hexagon.M5.vmpybsu
  __builtin_HEXAGON_M5_vmpybsu(0, 0);
  // CHECK: @llvm.hexagon.M5.vmpybuu
  __builtin_HEXAGON_M5_vmpybuu(0, 0);
  // CHECK: @llvm.hexagon.M5.vrmacbsu
  __builtin_HEXAGON_M5_vrmacbsu(0, 0, 0);
  // CHECK: @llvm.hexagon.M5.vrmacbuu
  __builtin_HEXAGON_M5_vrmacbuu(0, 0, 0);
  // CHECK: @llvm.hexagon.M5.vrmpybsu
  __builtin_HEXAGON_M5_vrmpybsu(0, 0);
  // CHECK: @llvm.hexagon.M5.vrmpybuu
  __builtin_HEXAGON_M5_vrmpybuu(0, 0);
  // CHECK: @llvm.hexagon.M6.vabsdiffb
  __builtin_HEXAGON_M6_vabsdiffb(0, 0);
  // CHECK: @llvm.hexagon.M6.vabsdiffub
  __builtin_HEXAGON_M6_vabsdiffub(0, 0);
  // CHECK: @llvm.hexagon.S2.addasl.rrri
  __builtin_HEXAGON_S2_addasl_rrri(0, 0, 0);
  // CHECK: @llvm.hexagon.S2.asl.i.p
  __builtin_HEXAGON_S2_asl_i_p(0, 0);
  // CHECK: @llvm.hexagon.S2.asl.i.p.acc
  __builtin_HEXAGON_S2_asl_i_p_acc(0, 0, 0);
  // CHECK: @llvm.hexagon.S2.asl.i.p.and
  __builtin_HEXAGON_S2_asl_i_p_and(0, 0, 0);
  // CHECK: @llvm.hexagon.S2.asl.i.p.nac
  __builtin_HEXAGON_S2_asl_i_p_nac(0, 0, 0);
  // CHECK: @llvm.hexagon.S2.asl.i.p.or
  __builtin_HEXAGON_S2_asl_i_p_or(0, 0, 0);
  // CHECK: @llvm.hexagon.S2.asl.i.p.xacc
  __builtin_HEXAGON_S2_asl_i_p_xacc(0, 0, 0);
  // CHECK: @llvm.hexagon.S2.asl.i.r
  __builtin_HEXAGON_S2_asl_i_r(0, 0);
  // CHECK: @llvm.hexagon.S2.asl.i.r.acc
  __builtin_HEXAGON_S2_asl_i_r_acc(0, 0, 0);
  // CHECK: @llvm.hexagon.S2.asl.i.r.and
  __builtin_HEXAGON_S2_asl_i_r_and(0, 0, 0);
  // CHECK: @llvm.hexagon.S2.asl.i.r.nac
  __builtin_HEXAGON_S2_asl_i_r_nac(0, 0, 0);
  // CHECK: @llvm.hexagon.S2.asl.i.r.or
  __builtin_HEXAGON_S2_asl_i_r_or(0, 0, 0);
  // CHECK: @llvm.hexagon.S2.asl.i.r.sat
  __builtin_HEXAGON_S2_asl_i_r_sat(0, 0);
  // CHECK: @llvm.hexagon.S2.asl.i.r.xacc
  __builtin_HEXAGON_S2_asl_i_r_xacc(0, 0, 0);
  // CHECK: @llvm.hexagon.S2.asl.i.vh
  __builtin_HEXAGON_S2_asl_i_vh(0, 0);
  // CHECK: @llvm.hexagon.S2.asl.i.vw
  __builtin_HEXAGON_S2_asl_i_vw(0, 0);
  // CHECK: @llvm.hexagon.S2.asl.r.p
  __builtin_HEXAGON_S2_asl_r_p(0, 0);
  // CHECK: @llvm.hexagon.S2.asl.r.p.acc
  __builtin_HEXAGON_S2_asl_r_p_acc(0, 0, 0);
  // CHECK: @llvm.hexagon.S2.asl.r.p.and
  __builtin_HEXAGON_S2_asl_r_p_and(0, 0, 0);
  // CHECK: @llvm.hexagon.S2.asl.r.p.nac
  __builtin_HEXAGON_S2_asl_r_p_nac(0, 0, 0);
  // CHECK: @llvm.hexagon.S2.asl.r.p.or
  __builtin_HEXAGON_S2_asl_r_p_or(0, 0, 0);
  // CHECK: @llvm.hexagon.S2.asl.r.p.xor
  __builtin_HEXAGON_S2_asl_r_p_xor(0, 0, 0);
  // CHECK: @llvm.hexagon.S2.asl.r.r
  __builtin_HEXAGON_S2_asl_r_r(0, 0);
  // CHECK: @llvm.hexagon.S2.asl.r.r.acc
  __builtin_HEXAGON_S2_asl_r_r_acc(0, 0, 0);
  // CHECK: @llvm.hexagon.S2.asl.r.r.and
  __builtin_HEXAGON_S2_asl_r_r_and(0, 0, 0);
  // CHECK: @llvm.hexagon.S2.asl.r.r.nac
  __builtin_HEXAGON_S2_asl_r_r_nac(0, 0, 0);
  // CHECK: @llvm.hexagon.S2.asl.r.r.or
  __builtin_HEXAGON_S2_asl_r_r_or(0, 0, 0);
  // CHECK: @llvm.hexagon.S2.asl.r.r.sat
  __builtin_HEXAGON_S2_asl_r_r_sat(0, 0);
  // CHECK: @llvm.hexagon.S2.asl.r.vh
  __builtin_HEXAGON_S2_asl_r_vh(0, 0);
  // CHECK: @llvm.hexagon.S2.asl.r.vw
  __builtin_HEXAGON_S2_asl_r_vw(0, 0);
  // CHECK: @llvm.hexagon.S2.asr.i.p
  __builtin_HEXAGON_S2_asr_i_p(0, 0);
  // CHECK: @llvm.hexagon.S2.asr.i.p.acc
  __builtin_HEXAGON_S2_asr_i_p_acc(0, 0, 0);
  // CHECK: @llvm.hexagon.S2.asr.i.p.and
  __builtin_HEXAGON_S2_asr_i_p_and(0, 0, 0);
  // CHECK: @llvm.hexagon.S2.asr.i.p.nac
  __builtin_HEXAGON_S2_asr_i_p_nac(0, 0, 0);
  // CHECK: @llvm.hexagon.S2.asr.i.p.or
  __builtin_HEXAGON_S2_asr_i_p_or(0, 0, 0);
  // CHECK: @llvm.hexagon.S2.asr.i.p.rnd
  __builtin_HEXAGON_S2_asr_i_p_rnd(0, 0);
  // CHECK: @llvm.hexagon.S2.asr.i.p.rnd.goodsyntax
  __builtin_HEXAGON_S2_asr_i_p_rnd_goodsyntax(0, 0);
  // CHECK: @llvm.hexagon.S2.asr.i.r
  __builtin_HEXAGON_S2_asr_i_r(0, 0);
  // CHECK: @llvm.hexagon.S2.asr.i.r.acc
  __builtin_HEXAGON_S2_asr_i_r_acc(0, 0, 0);
  // CHECK: @llvm.hexagon.S2.asr.i.r.and
  __builtin_HEXAGON_S2_asr_i_r_and(0, 0, 0);
  // CHECK: @llvm.hexagon.S2.asr.i.r.nac
  __builtin_HEXAGON_S2_asr_i_r_nac(0, 0, 0);
  // CHECK: @llvm.hexagon.S2.asr.i.r.or
  __builtin_HEXAGON_S2_asr_i_r_or(0, 0, 0);
  // CHECK: @llvm.hexagon.S2.asr.i.r.rnd
  __builtin_HEXAGON_S2_asr_i_r_rnd(0, 0);
  // CHECK: @llvm.hexagon.S2.asr.i.r.rnd.goodsyntax
  __builtin_HEXAGON_S2_asr_i_r_rnd_goodsyntax(0, 0);
  // CHECK: @llvm.hexagon.S2.asr.i.svw.trun
  __builtin_HEXAGON_S2_asr_i_svw_trun(0, 0);
  // CHECK: @llvm.hexagon.S2.asr.i.vh
  __builtin_HEXAGON_S2_asr_i_vh(0, 0);
  // CHECK: @llvm.hexagon.S2.asr.i.vw
  __builtin_HEXAGON_S2_asr_i_vw(0, 0);
  // CHECK: @llvm.hexagon.S2.asr.r.p
  __builtin_HEXAGON_S2_asr_r_p(0, 0);
  // CHECK: @llvm.hexagon.S2.asr.r.p.acc
  __builtin_HEXAGON_S2_asr_r_p_acc(0, 0, 0);
  // CHECK: @llvm.hexagon.S2.asr.r.p.and
  __builtin_HEXAGON_S2_asr_r_p_and(0, 0, 0);
  // CHECK: @llvm.hexagon.S2.asr.r.p.nac
  __builtin_HEXAGON_S2_asr_r_p_nac(0, 0, 0);
  // CHECK: @llvm.hexagon.S2.asr.r.p.or
  __builtin_HEXAGON_S2_asr_r_p_or(0, 0, 0);
  // CHECK: @llvm.hexagon.S2.asr.r.p.xor
  __builtin_HEXAGON_S2_asr_r_p_xor(0, 0, 0);
  // CHECK: @llvm.hexagon.S2.asr.r.r
  __builtin_HEXAGON_S2_asr_r_r(0, 0);
  // CHECK: @llvm.hexagon.S2.asr.r.r.acc
  __builtin_HEXAGON_S2_asr_r_r_acc(0, 0, 0);
  // CHECK: @llvm.hexagon.S2.asr.r.r.and
  __builtin_HEXAGON_S2_asr_r_r_and(0, 0, 0);
  // CHECK: @llvm.hexagon.S2.asr.r.r.nac
  __builtin_HEXAGON_S2_asr_r_r_nac(0, 0, 0);
  // CHECK: @llvm.hexagon.S2.asr.r.r.or
  __builtin_HEXAGON_S2_asr_r_r_or(0, 0, 0);
  // CHECK: @llvm.hexagon.S2.asr.r.r.sat
  __builtin_HEXAGON_S2_asr_r_r_sat(0, 0);
  // CHECK: @llvm.hexagon.S2.asr.r.svw.trun
  __builtin_HEXAGON_S2_asr_r_svw_trun(0, 0);
  // CHECK: @llvm.hexagon.S2.asr.r.vh
  __builtin_HEXAGON_S2_asr_r_vh(0, 0);
  // CHECK: @llvm.hexagon.S2.asr.r.vw
  __builtin_HEXAGON_S2_asr_r_vw(0, 0);
  // CHECK: @llvm.hexagon.S2.brev
  __builtin_HEXAGON_S2_brev(0);
  // CHECK: @llvm.hexagon.S2.brevp
  __builtin_HEXAGON_S2_brevp(0);
  // CHECK: @llvm.hexagon.S2.cl0
  __builtin_HEXAGON_S2_cl0(0);
  // CHECK: @llvm.hexagon.S2.cl0p
  __builtin_HEXAGON_S2_cl0p(0);
  // CHECK: @llvm.hexagon.S2.cl1
  __builtin_HEXAGON_S2_cl1(0);
  // CHECK: @llvm.hexagon.S2.cl1p
  __builtin_HEXAGON_S2_cl1p(0);
  // CHECK: @llvm.hexagon.S2.clb
  __builtin_HEXAGON_S2_clb(0);
  // CHECK: @llvm.hexagon.S2.clbnorm
  __builtin_HEXAGON_S2_clbnorm(0);
  // CHECK: @llvm.hexagon.S2.clbp
  __builtin_HEXAGON_S2_clbp(0);
  // CHECK: @llvm.hexagon.S2.clrbit.i
  __builtin_HEXAGON_S2_clrbit_i(0, 0);
  // CHECK: @llvm.hexagon.S2.clrbit.r
  __builtin_HEXAGON_S2_clrbit_r(0, 0);
  // CHECK: @llvm.hexagon.S2.ct0
  __builtin_HEXAGON_S2_ct0(0);
  // CHECK: @llvm.hexagon.S2.ct0p
  __builtin_HEXAGON_S2_ct0p(0);
  // CHECK: @llvm.hexagon.S2.ct1
  __builtin_HEXAGON_S2_ct1(0);
  // CHECK: @llvm.hexagon.S2.ct1p
  __builtin_HEXAGON_S2_ct1p(0);
  // CHECK: @llvm.hexagon.S2.deinterleave
  __builtin_HEXAGON_S2_deinterleave(0);
  // CHECK: @llvm.hexagon.S2.extractu
  __builtin_HEXAGON_S2_extractu(0, 0, 0);
  // CHECK: @llvm.hexagon.S2.extractu.rp
  __builtin_HEXAGON_S2_extractu_rp(0, 0);
  // CHECK: @llvm.hexagon.S2.extractup
  __builtin_HEXAGON_S2_extractup(0, 0, 0);
  // CHECK: @llvm.hexagon.S2.extractup.rp
  __builtin_HEXAGON_S2_extractup_rp(0, 0);
  // CHECK: @llvm.hexagon.S2.insert
  __builtin_HEXAGON_S2_insert(0, 0, 0, 0);
  // CHECK: @llvm.hexagon.S2.insert.rp
  __builtin_HEXAGON_S2_insert_rp(0, 0, 0);
  // CHECK: @llvm.hexagon.S2.insertp
  __builtin_HEXAGON_S2_insertp(0, 0, 0, 0);
  // CHECK: @llvm.hexagon.S2.insertp.rp
  __builtin_HEXAGON_S2_insertp_rp(0, 0, 0);
  // CHECK: @llvm.hexagon.S2.interleave
  __builtin_HEXAGON_S2_interleave(0);
  // CHECK: @llvm.hexagon.S2.lfsp
  __builtin_HEXAGON_S2_lfsp(0, 0);
  // CHECK: @llvm.hexagon.S2.lsl.r.p
  __builtin_HEXAGON_S2_lsl_r_p(0, 0);
  // CHECK: @llvm.hexagon.S2.lsl.r.p.acc
  __builtin_HEXAGON_S2_lsl_r_p_acc(0, 0, 0);
  // CHECK: @llvm.hexagon.S2.lsl.r.p.and
  __builtin_HEXAGON_S2_lsl_r_p_and(0, 0, 0);
  // CHECK: @llvm.hexagon.S2.lsl.r.p.nac
  __builtin_HEXAGON_S2_lsl_r_p_nac(0, 0, 0);
  // CHECK: @llvm.hexagon.S2.lsl.r.p.or
  __builtin_HEXAGON_S2_lsl_r_p_or(0, 0, 0);
  // CHECK: @llvm.hexagon.S2.lsl.r.p.xor
  __builtin_HEXAGON_S2_lsl_r_p_xor(0, 0, 0);
  // CHECK: @llvm.hexagon.S2.lsl.r.r
  __builtin_HEXAGON_S2_lsl_r_r(0, 0);
  // CHECK: @llvm.hexagon.S2.lsl.r.r.acc
  __builtin_HEXAGON_S2_lsl_r_r_acc(0, 0, 0);
  // CHECK: @llvm.hexagon.S2.lsl.r.r.and
  __builtin_HEXAGON_S2_lsl_r_r_and(0, 0, 0);
  // CHECK: @llvm.hexagon.S2.lsl.r.r.nac
  __builtin_HEXAGON_S2_lsl_r_r_nac(0, 0, 0);
  // CHECK: @llvm.hexagon.S2.lsl.r.r.or
  __builtin_HEXAGON_S2_lsl_r_r_or(0, 0, 0);
  // CHECK: @llvm.hexagon.S2.lsl.r.vh
  __builtin_HEXAGON_S2_lsl_r_vh(0, 0);
  // CHECK: @llvm.hexagon.S2.lsl.r.vw
  __builtin_HEXAGON_S2_lsl_r_vw(0, 0);
  // CHECK: @llvm.hexagon.S2.lsr.i.p
  __builtin_HEXAGON_S2_lsr_i_p(0, 0);
  // CHECK: @llvm.hexagon.S2.lsr.i.p.acc
  __builtin_HEXAGON_S2_lsr_i_p_acc(0, 0, 0);
  // CHECK: @llvm.hexagon.S2.lsr.i.p.and
  __builtin_HEXAGON_S2_lsr_i_p_and(0, 0, 0);
  // CHECK: @llvm.hexagon.S2.lsr.i.p.nac
  __builtin_HEXAGON_S2_lsr_i_p_nac(0, 0, 0);
  // CHECK: @llvm.hexagon.S2.lsr.i.p.or
  __builtin_HEXAGON_S2_lsr_i_p_or(0, 0, 0);
  // CHECK: @llvm.hexagon.S2.lsr.i.p.xacc
  __builtin_HEXAGON_S2_lsr_i_p_xacc(0, 0, 0);
  // CHECK: @llvm.hexagon.S2.lsr.i.r
  __builtin_HEXAGON_S2_lsr_i_r(0, 0);
  // CHECK: @llvm.hexagon.S2.lsr.i.r.acc
  __builtin_HEXAGON_S2_lsr_i_r_acc(0, 0, 0);
  // CHECK: @llvm.hexagon.S2.lsr.i.r.and
  __builtin_HEXAGON_S2_lsr_i_r_and(0, 0, 0);
  // CHECK: @llvm.hexagon.S2.lsr.i.r.nac
  __builtin_HEXAGON_S2_lsr_i_r_nac(0, 0, 0);
  // CHECK: @llvm.hexagon.S2.lsr.i.r.or
  __builtin_HEXAGON_S2_lsr_i_r_or(0, 0, 0);
  // CHECK: @llvm.hexagon.S2.lsr.i.r.xacc
  __builtin_HEXAGON_S2_lsr_i_r_xacc(0, 0, 0);
  // CHECK: @llvm.hexagon.S2.lsr.i.vh
  __builtin_HEXAGON_S2_lsr_i_vh(0, 0);
  // CHECK: @llvm.hexagon.S2.lsr.i.vw
  __builtin_HEXAGON_S2_lsr_i_vw(0, 0);
  // CHECK: @llvm.hexagon.S2.lsr.r.p
  __builtin_HEXAGON_S2_lsr_r_p(0, 0);
  // CHECK: @llvm.hexagon.S2.lsr.r.p.acc
  __builtin_HEXAGON_S2_lsr_r_p_acc(0, 0, 0);
  // CHECK: @llvm.hexagon.S2.lsr.r.p.and
  __builtin_HEXAGON_S2_lsr_r_p_and(0, 0, 0);
  // CHECK: @llvm.hexagon.S2.lsr.r.p.nac
  __builtin_HEXAGON_S2_lsr_r_p_nac(0, 0, 0);
  // CHECK: @llvm.hexagon.S2.lsr.r.p.or
  __builtin_HEXAGON_S2_lsr_r_p_or(0, 0, 0);
  // CHECK: @llvm.hexagon.S2.lsr.r.p.xor
  __builtin_HEXAGON_S2_lsr_r_p_xor(0, 0, 0);
  // CHECK: @llvm.hexagon.S2.lsr.r.r
  __builtin_HEXAGON_S2_lsr_r_r(0, 0);
  // CHECK: @llvm.hexagon.S2.lsr.r.r.acc
  __builtin_HEXAGON_S2_lsr_r_r_acc(0, 0, 0);
  // CHECK: @llvm.hexagon.S2.lsr.r.r.and
  __builtin_HEXAGON_S2_lsr_r_r_and(0, 0, 0);
  // CHECK: @llvm.hexagon.S2.lsr.r.r.nac
  __builtin_HEXAGON_S2_lsr_r_r_nac(0, 0, 0);
  // CHECK: @llvm.hexagon.S2.lsr.r.r.or
  __builtin_HEXAGON_S2_lsr_r_r_or(0, 0, 0);
  // CHECK: @llvm.hexagon.S2.lsr.r.vh
  __builtin_HEXAGON_S2_lsr_r_vh(0, 0);
  // CHECK: @llvm.hexagon.S2.lsr.r.vw
  __builtin_HEXAGON_S2_lsr_r_vw(0, 0);
  // CHECK: @llvm.hexagon.S2.packhl
  __builtin_HEXAGON_S2_packhl(0, 0);
  // CHECK: @llvm.hexagon.S2.parityp
  __builtin_HEXAGON_S2_parityp(0, 0);
  // CHECK: @llvm.hexagon.S2.setbit.i
  __builtin_HEXAGON_S2_setbit_i(0, 0);
  // CHECK: @llvm.hexagon.S2.setbit.r
  __builtin_HEXAGON_S2_setbit_r(0, 0);
  // CHECK: @llvm.hexagon.S2.shuffeb
  __builtin_HEXAGON_S2_shuffeb(0, 0);
  // CHECK: @llvm.hexagon.S2.shuffeh
  __builtin_HEXAGON_S2_shuffeh(0, 0);
  // CHECK: @llvm.hexagon.S2.shuffob
  __builtin_HEXAGON_S2_shuffob(0, 0);
  // CHECK: @llvm.hexagon.S2.shuffoh
  __builtin_HEXAGON_S2_shuffoh(0, 0);
  // CHECK: @llvm.hexagon.S2.svsathb
  __builtin_HEXAGON_S2_svsathb(0);
  // CHECK: @llvm.hexagon.S2.svsathub
  __builtin_HEXAGON_S2_svsathub(0);
  // CHECK: @llvm.hexagon.S2.tableidxb.goodsyntax
  __builtin_HEXAGON_S2_tableidxb_goodsyntax(0, 0, 0, 0);
  // CHECK: @llvm.hexagon.S2.tableidxd.goodsyntax
  __builtin_HEXAGON_S2_tableidxd_goodsyntax(0, 0, 0, 0);
  // CHECK: @llvm.hexagon.S2.tableidxh.goodsyntax
  __builtin_HEXAGON_S2_tableidxh_goodsyntax(0, 0, 0, 0);
  // CHECK: @llvm.hexagon.S2.tableidxw.goodsyntax
  __builtin_HEXAGON_S2_tableidxw_goodsyntax(0, 0, 0, 0);
  // CHECK: @llvm.hexagon.S2.togglebit.i
  __builtin_HEXAGON_S2_togglebit_i(0, 0);
  // CHECK: @llvm.hexagon.S2.togglebit.r
  __builtin_HEXAGON_S2_togglebit_r(0, 0);
  // CHECK: @llvm.hexagon.S2.tstbit.i
  __builtin_HEXAGON_S2_tstbit_i(0, 0);
  // CHECK: @llvm.hexagon.S2.tstbit.r
  __builtin_HEXAGON_S2_tstbit_r(0, 0);
  // CHECK: @llvm.hexagon.S2.valignib
  __builtin_HEXAGON_S2_valignib(0, 0, 0);
  // CHECK: @llvm.hexagon.S2.valignrb
  __builtin_HEXAGON_S2_valignrb(0, 0, 0);
  // CHECK: @llvm.hexagon.S2.vcnegh
  __builtin_HEXAGON_S2_vcnegh(0, 0);
  // CHECK: @llvm.hexagon.S2.vcrotate
  __builtin_HEXAGON_S2_vcrotate(0, 0);
  // CHECK: @llvm.hexagon.S2.vrcnegh
  __builtin_HEXAGON_S2_vrcnegh(0, 0, 0);
  // CHECK: @llvm.hexagon.S2.vrndpackwh
  __builtin_HEXAGON_S2_vrndpackwh(0);
  // CHECK: @llvm.hexagon.S2.vrndpackwhs
  __builtin_HEXAGON_S2_vrndpackwhs(0);
  // CHECK: @llvm.hexagon.S2.vsathb
  __builtin_HEXAGON_S2_vsathb(0);
  // CHECK: @llvm.hexagon.S2.vsathb.nopack
  __builtin_HEXAGON_S2_vsathb_nopack(0);
  // CHECK: @llvm.hexagon.S2.vsathub
  __builtin_HEXAGON_S2_vsathub(0);
  // CHECK: @llvm.hexagon.S2.vsathub.nopack
  __builtin_HEXAGON_S2_vsathub_nopack(0);
  // CHECK: @llvm.hexagon.S2.vsatwh
  __builtin_HEXAGON_S2_vsatwh(0);
  // CHECK: @llvm.hexagon.S2.vsatwh.nopack
  __builtin_HEXAGON_S2_vsatwh_nopack(0);
  // CHECK: @llvm.hexagon.S2.vsatwuh
  __builtin_HEXAGON_S2_vsatwuh(0);
  // CHECK: @llvm.hexagon.S2.vsatwuh.nopack
  __builtin_HEXAGON_S2_vsatwuh_nopack(0);
  // CHECK: @llvm.hexagon.S2.vsplatrb
  __builtin_HEXAGON_S2_vsplatrb(0);
  // CHECK: @llvm.hexagon.S2.vsplatrh
  __builtin_HEXAGON_S2_vsplatrh(0);
  // CHECK: @llvm.hexagon.S2.vspliceib
  __builtin_HEXAGON_S2_vspliceib(0, 0, 0);
  // CHECK: @llvm.hexagon.S2.vsplicerb
  __builtin_HEXAGON_S2_vsplicerb(0, 0, 0);
  // CHECK: @llvm.hexagon.S2.vsxtbh
  __builtin_HEXAGON_S2_vsxtbh(0);
  // CHECK: @llvm.hexagon.S2.vsxthw
  __builtin_HEXAGON_S2_vsxthw(0);
  // CHECK: @llvm.hexagon.S2.vtrunehb
  __builtin_HEXAGON_S2_vtrunehb(0);
  // CHECK: @llvm.hexagon.S2.vtrunewh
  __builtin_HEXAGON_S2_vtrunewh(0, 0);
  // CHECK: @llvm.hexagon.S2.vtrunohb
  __builtin_HEXAGON_S2_vtrunohb(0);
  // CHECK: @llvm.hexagon.S2.vtrunowh
  __builtin_HEXAGON_S2_vtrunowh(0, 0);
  // CHECK: @llvm.hexagon.S2.vzxtbh
  __builtin_HEXAGON_S2_vzxtbh(0);
  // CHECK: @llvm.hexagon.S2.vzxthw
  __builtin_HEXAGON_S2_vzxthw(0);
  // CHECK: @llvm.hexagon.S4.addaddi
  __builtin_HEXAGON_S4_addaddi(0, 0, 0);
  // CHECK: @llvm.hexagon.S4.addi.asl.ri
  __builtin_HEXAGON_S4_addi_asl_ri(0, 0, 0);
  // CHECK: @llvm.hexagon.S4.addi.lsr.ri
  __builtin_HEXAGON_S4_addi_lsr_ri(0, 0, 0);
  // CHECK: @llvm.hexagon.S4.andi.asl.ri
  __builtin_HEXAGON_S4_andi_asl_ri(0, 0, 0);
  // CHECK: @llvm.hexagon.S4.andi.lsr.ri
  __builtin_HEXAGON_S4_andi_lsr_ri(0, 0, 0);
  // CHECK: @llvm.hexagon.S4.clbaddi
  __builtin_HEXAGON_S4_clbaddi(0, 0);
  // CHECK: @llvm.hexagon.S4.clbpaddi
  __builtin_HEXAGON_S4_clbpaddi(0, 0);
  // CHECK: @llvm.hexagon.S4.clbpnorm
  __builtin_HEXAGON_S4_clbpnorm(0);
  // CHECK: @llvm.hexagon.S4.extract
  __builtin_HEXAGON_S4_extract(0, 0, 0);
  // CHECK: @llvm.hexagon.S4.extract.rp
  __builtin_HEXAGON_S4_extract_rp(0, 0);
  // CHECK: @llvm.hexagon.S4.extractp
  __builtin_HEXAGON_S4_extractp(0, 0, 0);
  // CHECK: @llvm.hexagon.S4.extractp.rp
  __builtin_HEXAGON_S4_extractp_rp(0, 0);
  // CHECK: @llvm.hexagon.S4.lsli
  __builtin_HEXAGON_S4_lsli(0, 0);
  // CHECK: @llvm.hexagon.S4.ntstbit.i
  __builtin_HEXAGON_S4_ntstbit_i(0, 0);
  // CHECK: @llvm.hexagon.S4.ntstbit.r
  __builtin_HEXAGON_S4_ntstbit_r(0, 0);
  // CHECK: @llvm.hexagon.S4.or.andi
  __builtin_HEXAGON_S4_or_andi(0, 0, 0);
  // CHECK: @llvm.hexagon.S4.or.andix
  __builtin_HEXAGON_S4_or_andix(0, 0, 0);
  // CHECK: @llvm.hexagon.S4.or.ori
  __builtin_HEXAGON_S4_or_ori(0, 0, 0);
  // CHECK: @llvm.hexagon.S4.ori.asl.ri
  __builtin_HEXAGON_S4_ori_asl_ri(0, 0, 0);
  // CHECK: @llvm.hexagon.S4.ori.lsr.ri
  __builtin_HEXAGON_S4_ori_lsr_ri(0, 0, 0);
  // CHECK: @llvm.hexagon.S4.parity
  __builtin_HEXAGON_S4_parity(0, 0);
  // CHECK: @llvm.hexagon.S4.subaddi
  __builtin_HEXAGON_S4_subaddi(0, 0, 0);
  // CHECK: @llvm.hexagon.S4.subi.asl.ri
  __builtin_HEXAGON_S4_subi_asl_ri(0, 0, 0);
  // CHECK: @llvm.hexagon.S4.subi.lsr.ri
  __builtin_HEXAGON_S4_subi_lsr_ri(0, 0, 0);
  // CHECK: @llvm.hexagon.S4.vrcrotate
  __builtin_HEXAGON_S4_vrcrotate(0, 0, 0);
  // CHECK: @llvm.hexagon.S4.vrcrotate.acc
  __builtin_HEXAGON_S4_vrcrotate_acc(0, 0, 0, 0);
  // CHECK: @llvm.hexagon.S4.vxaddsubh
  __builtin_HEXAGON_S4_vxaddsubh(0, 0);
  // CHECK: @llvm.hexagon.S4.vxaddsubhr
  __builtin_HEXAGON_S4_vxaddsubhr(0, 0);
  // CHECK: @llvm.hexagon.S4.vxaddsubw
  __builtin_HEXAGON_S4_vxaddsubw(0, 0);
  // CHECK: @llvm.hexagon.S4.vxsubaddh
  __builtin_HEXAGON_S4_vxsubaddh(0, 0);
  // CHECK: @llvm.hexagon.S4.vxsubaddhr
  __builtin_HEXAGON_S4_vxsubaddhr(0, 0);
  // CHECK: @llvm.hexagon.S4.vxsubaddw
  __builtin_HEXAGON_S4_vxsubaddw(0, 0);
  // CHECK: @llvm.hexagon.S5.asrhub.rnd.sat.goodsyntax
  __builtin_HEXAGON_S5_asrhub_rnd_sat_goodsyntax(0, 0);
  // CHECK: @llvm.hexagon.S5.asrhub.sat
  __builtin_HEXAGON_S5_asrhub_sat(0, 0);
  // CHECK: @llvm.hexagon.S5.popcountp
  __builtin_HEXAGON_S5_popcountp(0);
  // CHECK: @llvm.hexagon.S5.vasrhrnd.goodsyntax
  __builtin_HEXAGON_S5_vasrhrnd_goodsyntax(0, 0);
  // CHECK: @llvm.hexagon.S6.rol.i.p
  __builtin_HEXAGON_S6_rol_i_p(0, 0);
  // CHECK: @llvm.hexagon.S6.rol.i.p.acc
  __builtin_HEXAGON_S6_rol_i_p_acc(0, 0, 0);
  // CHECK: @llvm.hexagon.S6.rol.i.p.and
  __builtin_HEXAGON_S6_rol_i_p_and(0, 0, 0);
  // CHECK: @llvm.hexagon.S6.rol.i.p.nac
  __builtin_HEXAGON_S6_rol_i_p_nac(0, 0, 0);
  // CHECK: @llvm.hexagon.S6.rol.i.p.or
  __builtin_HEXAGON_S6_rol_i_p_or(0, 0, 0);
  // CHECK: @llvm.hexagon.S6.rol.i.p.xacc
  __builtin_HEXAGON_S6_rol_i_p_xacc(0, 0, 0);
  // CHECK: @llvm.hexagon.S6.rol.i.r
  __builtin_HEXAGON_S6_rol_i_r(0, 0);
  // CHECK: @llvm.hexagon.S6.rol.i.r.acc
  __builtin_HEXAGON_S6_rol_i_r_acc(0, 0, 0);
  // CHECK: @llvm.hexagon.S6.rol.i.r.and
  __builtin_HEXAGON_S6_rol_i_r_and(0, 0, 0);
  // CHECK: @llvm.hexagon.S6.rol.i.r.nac
  __builtin_HEXAGON_S6_rol_i_r_nac(0, 0, 0);
  // CHECK: @llvm.hexagon.S6.rol.i.r.or
  __builtin_HEXAGON_S6_rol_i_r_or(0, 0, 0);
  // CHECK: @llvm.hexagon.S6.rol.i.r.xacc
  __builtin_HEXAGON_S6_rol_i_r_xacc(0, 0, 0);
  // CHECK: @llvm.hexagon.S6.vsplatrbp
  __builtin_HEXAGON_S6_vsplatrbp(0);
  // CHECK: @llvm.hexagon.S6.vtrunehb.ppp
  __builtin_HEXAGON_S6_vtrunehb_ppp(0, 0);
  // CHECK: @llvm.hexagon.S6.vtrunohb.ppp
  __builtin_HEXAGON_S6_vtrunohb_ppp(0, 0);
  // CHECK: @llvm.hexagon.Y2.dccleana
  __builtin_HEXAGON_Y2_dccleana(0);
  // CHECK: @llvm.hexagon.Y2.dccleaninva
  __builtin_HEXAGON_Y2_dccleaninva(0);
  // CHECK: @llvm.hexagon.Y2.dcinva
  __builtin_HEXAGON_Y2_dcinva(0);
  // CHECK: @llvm.hexagon.Y2.dczeroa
  __builtin_HEXAGON_Y2_dczeroa(0);
  // CHECK: @llvm.hexagon.Y4.l2fetch
  __builtin_HEXAGON_Y4_l2fetch(0, 0);
  // CHECK: @llvm.hexagon.Y5.l2fetch
  __builtin_HEXAGON_Y5_l2fetch(0, 0);

  // CHECK: @llvm.hexagon.L2.loadrb.pbr
  __builtin_brev_ldb(0, 0, 0);
  // CHECK: @llvm.hexagon.L2.loadrd.pbr
  __builtin_brev_ldd(0, 0, 0);
  // CHECK: @llvm.hexagon.L2.loadrh.pbr
  __builtin_brev_ldh(0, 0, 0);
  // CHECK: @llvm.hexagon.L2.loadrub.pbr
  __builtin_brev_ldub(0, 0, 0);
  // CHECK: @llvm.hexagon.L2.loadruh.pbr
  __builtin_brev_lduh(0, 0, 0);
  // CHECK: @llvm.hexagon.L2.loadri.pbr
  __builtin_brev_ldw(0, 0, 0);
  // CHECK: @llvm.hexagon.S2.storerb.pbr
  __builtin_brev_stb(0, 0, 0);
  // CHECK: @llvm.hexagon.S2.storerd.pbr
  __builtin_brev_std(0, 0LL, 0);
  // CHECK: @llvm.hexagon.S2.storerh.pbr
  __builtin_brev_sth(0, 0, 0);
  // CHECK: @llvm.hexagon.S2.storerf.pbr
  __builtin_brev_sthhi(0, 0, 0);
  // CHECK: @llvm.hexagon.S2.storeri.pbr
  __builtin_brev_stw(0, 0, 0);

  // CHECK: @llvm.hexagon.circ.ldb
  __builtin_circ_ldb(0, 0, 0, 0);
  // CHECK: @llvm.hexagon.circ.ldd
  __builtin_circ_ldd(0, 0, 0, 0);
  // CHECK: @llvm.hexagon.circ.ldh
  __builtin_circ_ldh(0, 0, 0, 0);
  // CHECK: @llvm.hexagon.circ.ldub
  __builtin_circ_ldub(0, 0, 0, 0);
  // CHECK: @llvm.hexagon.circ.lduh
  __builtin_circ_lduh(0, 0, 0, 0);
  // CHECK: @llvm.hexagon.circ.ldw
  __builtin_circ_ldw(0, 0, 0, 0);
  // CHECK: @llvm.hexagon.circ.stb
  __builtin_circ_stb(0, 0, 0, 0);
  // CHECK: @llvm.hexagon.circ.std
  __builtin_circ_std(0, 0, 0, 0);
  // CHECK: @llvm.hexagon.circ.sth
  __builtin_circ_sth(0, 0, 0, 0);
  // CHECK: @llvm.hexagon.circ.sthhi
  __builtin_circ_sthhi(0, 0, 0, 0);
  // CHECK: @llvm.hexagon.circ.stw
  __builtin_circ_stw(0, 0, 0, 0);
  // CHECK: @llvm.hexagon.prefetch
  __builtin_HEXAGON_prefetch(0);
}