diff options
Diffstat (limited to 'contrib/llvm/tools/clang/lib/CodeGen/CGBuiltin.cpp')
-rw-r--r-- | contrib/llvm/tools/clang/lib/CodeGen/CGBuiltin.cpp | 2109 |
1 files changed, 108 insertions, 2001 deletions
diff --git a/contrib/llvm/tools/clang/lib/CodeGen/CGBuiltin.cpp b/contrib/llvm/tools/clang/lib/CodeGen/CGBuiltin.cpp index e30b513..59ed313 100644 --- a/contrib/llvm/tools/clang/lib/CodeGen/CGBuiltin.cpp +++ b/contrib/llvm/tools/clang/lib/CodeGen/CGBuiltin.cpp @@ -229,6 +229,35 @@ RValue CodeGenFunction::EmitBuiltinExpr(const FunctionDecl *FD, return RValue::get(Result); } + + case Builtin::BI__builtin_conj: + case Builtin::BI__builtin_conjf: + case Builtin::BI__builtin_conjl: { + ComplexPairTy ComplexVal = EmitComplexExpr(E->getArg(0)); + Value *Real = ComplexVal.first; + Value *Imag = ComplexVal.second; + Value *Zero = + Imag->getType()->isFPOrFPVectorTy() + ? llvm::ConstantFP::getZeroValueForNegation(Imag->getType()) + : llvm::Constant::getNullValue(Imag->getType()); + + Imag = Builder.CreateFSub(Zero, Imag, "sub"); + return RValue::getComplex(std::make_pair(Real, Imag)); + } + case Builtin::BI__builtin_creal: + case Builtin::BI__builtin_crealf: + case Builtin::BI__builtin_creall: { + ComplexPairTy ComplexVal = EmitComplexExpr(E->getArg(0)); + return RValue::get(ComplexVal.first); + } + + case Builtin::BI__builtin_cimag: + case Builtin::BI__builtin_cimagf: + case Builtin::BI__builtin_cimagl: { + ComplexPairTy ComplexVal = EmitComplexExpr(E->getArg(0)); + return RValue::get(ComplexVal.second); + } + case Builtin::BI__builtin_ctzs: case Builtin::BI__builtin_ctz: case Builtin::BI__builtin_ctzl: @@ -335,6 +364,10 @@ RValue CodeGenFunction::EmitBuiltinExpr(const FunctionDecl *FD, return RValue::get(Builder.CreateCall(F, ArgValue)); } case Builtin::BI__builtin_object_size: { + // We rely on constant folding to deal with expressions with side effects. + assert(!E->getArg(0)->HasSideEffects(getContext()) && + "should have been constant folded"); + // We pass this builtin onto the optimizer so that it can // figure out the object size in more complex cases. llvm::Type *ResType = ConvertType(E->getType()); @@ -348,9 +381,7 @@ RValue CodeGenFunction::EmitBuiltinExpr(const FunctionDecl *FD, CI = ConstantInt::get(Builder.getInt1Ty(), (val & 0x2) >> 1); Value *F = CGM.getIntrinsic(Intrinsic::objectsize, ResType); - return RValue::get(Builder.CreateCall2(F, - EmitScalarExpr(E->getArg(0)), - CI)); + return RValue::get(Builder.CreateCall2(F, EmitScalarExpr(E->getArg(0)),CI)); } case Builtin::BI__builtin_prefetch: { Value *Locality, *RW, *Address = EmitScalarExpr(E->getArg(0)); @@ -363,6 +394,10 @@ RValue CodeGenFunction::EmitBuiltinExpr(const FunctionDecl *FD, Value *F = CGM.getIntrinsic(Intrinsic::prefetch); return RValue::get(Builder.CreateCall4(F, Address, RW, Locality, Data)); } + case Builtin::BI__builtin_readcyclecounter: { + Value *F = CGM.getIntrinsic(Intrinsic::readcyclecounter); + return RValue::get(Builder.CreateCall(F)); + } case Builtin::BI__builtin_trap: { Value *F = CGM.getIntrinsic(Intrinsic::trap); return RValue::get(Builder.CreateCall(F)); @@ -982,9 +1017,9 @@ RValue CodeGenFunction::EmitBuiltinExpr(const FunctionDecl *FD, Args.add(RValue::get(llvm::Constant::getNullValue(VoidPtrTy)), getContext().VoidPtrTy); const CGFunctionInfo &FuncInfo = - CGM.getTypes().arrangeFunctionCall(E->getType(), Args, - FunctionType::ExtInfo(), - RequiredArgs::All); + CGM.getTypes().arrangeFreeFunctionCall(E->getType(), Args, + FunctionType::ExtInfo(), + RequiredArgs::All); llvm::FunctionType *FTy = CGM.getTypes().GetFunctionType(FuncInfo); llvm::Constant *Func = CGM.CreateRuntimeFunction(FTy, LibCallName); return EmitCall(FuncInfo, Func, ReturnValueSlot(), Args); @@ -1376,8 +1411,6 @@ Value *CodeGenFunction::EmitTargetBuiltinExpr(unsigned BuiltinID, case llvm::Triple::ppc: case llvm::Triple::ppc64: return EmitPPCBuiltinExpr(BuiltinID, E); - case llvm::Triple::hexagon: - return EmitHexagonBuiltinExpr(BuiltinID, E); default: return 0; } @@ -1629,13 +1662,17 @@ Value *CodeGenFunction::EmitARMBuiltinExpr(unsigned BuiltinID, } case ARM::BI__builtin_neon_vclz_v: case ARM::BI__builtin_neon_vclzq_v: { - Function *F = CGM.getIntrinsic(Intrinsic::arm_neon_vclz, Ty); + // Generate target-independent intrinsic; also need to add second argument + // for whether or not clz of zero is undefined; on ARM it isn't. + Function *F = CGM.getIntrinsic(Intrinsic::ctlz, Ty); + Ops.push_back(Builder.getInt1(Target.isCLZForZeroUndef())); return EmitNeonCall(F, Ops, "vclz"); } case ARM::BI__builtin_neon_vcnt_v: case ARM::BI__builtin_neon_vcntq_v: { - Function *F = CGM.getIntrinsic(Intrinsic::arm_neon_vcnt, Ty); - return EmitNeonCall(F, Ops, "vcnt"); + // generate target-independent intrinsic + Function *F = CGM.getIntrinsic(Intrinsic::ctpop, Ty); + return EmitNeonCall(F, Ops, "vctpop"); } case ARM::BI__builtin_neon_vcvt_f16_v: { assert(Type.getEltType() == NeonTypeFlags::Float16 && !quad && @@ -1712,8 +1749,29 @@ Value *CodeGenFunction::EmitARMBuiltinExpr(unsigned BuiltinID, Ops.push_back(GetPointeeAlignmentValue(E->getArg(0))); return EmitNeonCall(CGM.getIntrinsic(Intrinsic::arm_neon_vld1, Ty), Ops, "vld1"); - case ARM::BI__builtin_neon_vld1_lane_v: - case ARM::BI__builtin_neon_vld1q_lane_v: { + case ARM::BI__builtin_neon_vld1q_lane_v: + // Handle 64-bit integer elements as a special case. Use shuffles of + // one-element vectors to avoid poor code for i64 in the backend. + if (VTy->getElementType()->isIntegerTy(64)) { + // Extract the other lane. + Ops[1] = Builder.CreateBitCast(Ops[1], Ty); + int Lane = cast<ConstantInt>(Ops[2])->getZExtValue(); + Value *SV = llvm::ConstantVector::get(ConstantInt::get(Int32Ty, 1-Lane)); + Ops[1] = Builder.CreateShuffleVector(Ops[1], Ops[1], SV); + // Load the value as a one-element vector. + Ty = llvm::VectorType::get(VTy->getElementType(), 1); + Function *F = CGM.getIntrinsic(Intrinsic::arm_neon_vld1, Ty); + Value *Ld = Builder.CreateCall2(F, Ops[0], + GetPointeeAlignmentValue(E->getArg(0))); + // Combine them. + SmallVector<Constant*, 2> Indices; + Indices.push_back(ConstantInt::get(Int32Ty, 1-Lane)); + Indices.push_back(ConstantInt::get(Int32Ty, Lane)); + SV = llvm::ConstantVector::get(Indices); + return Builder.CreateShuffleVector(Ops[1], Ld, SV, "vld1q_lane"); + } + // fall through + case ARM::BI__builtin_neon_vld1_lane_v: { Ops[1] = Builder.CreateBitCast(Ops[1], Ty); Ty = llvm::PointerType::getUnqual(VTy->getElementType()); Ops[0] = Builder.CreateBitCast(Ops[0], Ty); @@ -2078,8 +2136,19 @@ Value *CodeGenFunction::EmitARMBuiltinExpr(unsigned BuiltinID, Ops.push_back(GetPointeeAlignmentValue(E->getArg(0))); return EmitNeonCall(CGM.getIntrinsic(Intrinsic::arm_neon_vst1, Ty), Ops, ""); - case ARM::BI__builtin_neon_vst1_lane_v: - case ARM::BI__builtin_neon_vst1q_lane_v: { + case ARM::BI__builtin_neon_vst1q_lane_v: + // Handle 64-bit integer elements as a special case. Use a shuffle to get + // a one-element vector and avoid poor code for i64 in the backend. + if (VTy->getElementType()->isIntegerTy(64)) { + Ops[1] = Builder.CreateBitCast(Ops[1], Ty); + Value *SV = llvm::ConstantVector::get(cast<llvm::Constant>(Ops[2])); + Ops[1] = Builder.CreateShuffleVector(Ops[1], Ops[1], SV); + Ops[2] = GetPointeeAlignmentValue(E->getArg(0)); + return Builder.CreateCall(CGM.getIntrinsic(Intrinsic::arm_neon_vst1, + Ops[1]->getType()), Ops); + } + // fall through + case ARM::BI__builtin_neon_vst1_lane_v: { Ops[1] = Builder.CreateBitCast(Ops[1], Ty); Ops[1] = Builder.CreateExtractElement(Ops[1], Ops[2]); Ty = llvm::PointerType::getUnqual(Ops[1]->getType()); @@ -2411,8 +2480,11 @@ Value *CodeGenFunction::EmitX86BuiltinExpr(unsigned BuiltinID, return llvm::Constant::getNullValue(ConvertType(E->getType())); } case X86::BI__builtin_ia32_movntps: + case X86::BI__builtin_ia32_movntps256: case X86::BI__builtin_ia32_movntpd: + case X86::BI__builtin_ia32_movntpd256: case X86::BI__builtin_ia32_movntdq: + case X86::BI__builtin_ia32_movntdq256: case X86::BI__builtin_ia32_movnti: { llvm::MDNode *Node = llvm::MDNode::get(getLLVMContext(), Builder.getInt32(1)); @@ -2444,1996 +2516,31 @@ Value *CodeGenFunction::EmitX86BuiltinExpr(unsigned BuiltinID, llvm::Function *F = CGM.getIntrinsic(ID); return Builder.CreateCall(F, Ops, name); } - } -} - - -Value *CodeGenFunction::EmitHexagonBuiltinExpr(unsigned BuiltinID, - const CallExpr *E) { - llvm::SmallVector<Value*, 4> Ops; - - for (unsigned i = 0, e = E->getNumArgs(); i != e; i++) - Ops.push_back(EmitScalarExpr(E->getArg(i))); - - Intrinsic::ID ID = Intrinsic::not_intrinsic; - - switch (BuiltinID) { - default: return 0; - - case Hexagon::BI__builtin_HEXAGON_C2_cmpeq: - ID = Intrinsic::hexagon_C2_cmpeq; break; - - case Hexagon::BI__builtin_HEXAGON_C2_cmpgt: - ID = Intrinsic::hexagon_C2_cmpgt; break; - - case Hexagon::BI__builtin_HEXAGON_C2_cmpgtu: - ID = Intrinsic::hexagon_C2_cmpgtu; break; - - case Hexagon::BI__builtin_HEXAGON_C2_cmpeqp: - ID = Intrinsic::hexagon_C2_cmpeqp; break; - - case Hexagon::BI__builtin_HEXAGON_C2_cmpgtp: - ID = Intrinsic::hexagon_C2_cmpgtp; break; - - case Hexagon::BI__builtin_HEXAGON_C2_cmpgtup: - ID = Intrinsic::hexagon_C2_cmpgtup; break; - - case Hexagon::BI__builtin_HEXAGON_C2_bitsset: - ID = Intrinsic::hexagon_C2_bitsset; break; - - case Hexagon::BI__builtin_HEXAGON_C2_bitsclr: - ID = Intrinsic::hexagon_C2_bitsclr; break; - - case Hexagon::BI__builtin_HEXAGON_C2_cmpeqi: - ID = Intrinsic::hexagon_C2_cmpeqi; break; - - case Hexagon::BI__builtin_HEXAGON_C2_cmpgti: - ID = Intrinsic::hexagon_C2_cmpgti; break; - - case Hexagon::BI__builtin_HEXAGON_C2_cmpgtui: - ID = Intrinsic::hexagon_C2_cmpgtui; break; - - case Hexagon::BI__builtin_HEXAGON_C2_cmpgei: - ID = Intrinsic::hexagon_C2_cmpgei; break; - - case Hexagon::BI__builtin_HEXAGON_C2_cmpgeui: - ID = Intrinsic::hexagon_C2_cmpgeui; break; - - case Hexagon::BI__builtin_HEXAGON_C2_cmplt: - ID = Intrinsic::hexagon_C2_cmplt; break; - - case Hexagon::BI__builtin_HEXAGON_C2_cmpltu: - ID = Intrinsic::hexagon_C2_cmpltu; break; - - case Hexagon::BI__builtin_HEXAGON_C2_bitsclri: - ID = Intrinsic::hexagon_C2_bitsclri; break; - - case Hexagon::BI__builtin_HEXAGON_C2_and: - ID = Intrinsic::hexagon_C2_and; break; - - case Hexagon::BI__builtin_HEXAGON_C2_or: - ID = Intrinsic::hexagon_C2_or; break; - - case Hexagon::BI__builtin_HEXAGON_C2_xor: - ID = Intrinsic::hexagon_C2_xor; break; - - case Hexagon::BI__builtin_HEXAGON_C2_andn: - ID = Intrinsic::hexagon_C2_andn; break; - - case Hexagon::BI__builtin_HEXAGON_C2_not: - ID = Intrinsic::hexagon_C2_not; break; - - case Hexagon::BI__builtin_HEXAGON_C2_orn: - ID = Intrinsic::hexagon_C2_orn; break; - - case Hexagon::BI__builtin_HEXAGON_C2_pxfer_map: - ID = Intrinsic::hexagon_C2_pxfer_map; break; - - case Hexagon::BI__builtin_HEXAGON_C2_any8: - ID = Intrinsic::hexagon_C2_any8; break; - - case Hexagon::BI__builtin_HEXAGON_C2_all8: - ID = Intrinsic::hexagon_C2_all8; break; - - case Hexagon::BI__builtin_HEXAGON_C2_vitpack: - ID = Intrinsic::hexagon_C2_vitpack; break; - - case Hexagon::BI__builtin_HEXAGON_C2_mux: - ID = Intrinsic::hexagon_C2_mux; break; - - case Hexagon::BI__builtin_HEXAGON_C2_muxii: - ID = Intrinsic::hexagon_C2_muxii; break; - - case Hexagon::BI__builtin_HEXAGON_C2_muxir: - ID = Intrinsic::hexagon_C2_muxir; break; - - case Hexagon::BI__builtin_HEXAGON_C2_muxri: - ID = Intrinsic::hexagon_C2_muxri; break; - - case Hexagon::BI__builtin_HEXAGON_C2_vmux: - ID = Intrinsic::hexagon_C2_vmux; break; - - case Hexagon::BI__builtin_HEXAGON_C2_mask: - ID = Intrinsic::hexagon_C2_mask; break; - - case Hexagon::BI__builtin_HEXAGON_A2_vcmpbeq: - ID = Intrinsic::hexagon_A2_vcmpbeq; break; - - case Hexagon::BI__builtin_HEXAGON_A2_vcmpbgtu: - ID = Intrinsic::hexagon_A2_vcmpbgtu; break; - - case Hexagon::BI__builtin_HEXAGON_A2_vcmpheq: - ID = Intrinsic::hexagon_A2_vcmpheq; break; - - case Hexagon::BI__builtin_HEXAGON_A2_vcmphgt: - ID = Intrinsic::hexagon_A2_vcmphgt; break; - - case Hexagon::BI__builtin_HEXAGON_A2_vcmphgtu: - ID = Intrinsic::hexagon_A2_vcmphgtu; break; - - case Hexagon::BI__builtin_HEXAGON_A2_vcmpweq: - ID = Intrinsic::hexagon_A2_vcmpweq; break; - - case Hexagon::BI__builtin_HEXAGON_A2_vcmpwgt: - ID = Intrinsic::hexagon_A2_vcmpwgt; break; - - case Hexagon::BI__builtin_HEXAGON_A2_vcmpwgtu: - ID = Intrinsic::hexagon_A2_vcmpwgtu; break; - - case Hexagon::BI__builtin_HEXAGON_C2_tfrpr: - ID = Intrinsic::hexagon_C2_tfrpr; break; - - case Hexagon::BI__builtin_HEXAGON_C2_tfrrp: - ID = Intrinsic::hexagon_C2_tfrrp; break; - - case Hexagon::BI__builtin_HEXAGON_M2_mpy_acc_hh_s0: - ID = Intrinsic::hexagon_M2_mpy_acc_hh_s0; break; - - case Hexagon::BI__builtin_HEXAGON_M2_mpy_acc_hh_s1: - ID = Intrinsic::hexagon_M2_mpy_acc_hh_s1; break; - - case Hexagon::BI__builtin_HEXAGON_M2_mpy_acc_hl_s0: - ID = Intrinsic::hexagon_M2_mpy_acc_hl_s0; break; - - case Hexagon::BI__builtin_HEXAGON_M2_mpy_acc_hl_s1: - ID = Intrinsic::hexagon_M2_mpy_acc_hl_s1; break; - - case Hexagon::BI__builtin_HEXAGON_M2_mpy_acc_lh_s0: - ID = Intrinsic::hexagon_M2_mpy_acc_lh_s0; break; - - case Hexagon::BI__builtin_HEXAGON_M2_mpy_acc_lh_s1: - ID = Intrinsic::hexagon_M2_mpy_acc_lh_s1; break; - - case Hexagon::BI__builtin_HEXAGON_M2_mpy_acc_ll_s0: - ID = Intrinsic::hexagon_M2_mpy_acc_ll_s0; break; - - case Hexagon::BI__builtin_HEXAGON_M2_mpy_acc_ll_s1: - ID = Intrinsic::hexagon_M2_mpy_acc_ll_s1; break; - - case Hexagon::BI__builtin_HEXAGON_M2_mpy_nac_hh_s0: - ID = Intrinsic::hexagon_M2_mpy_nac_hh_s0; break; - - case Hexagon::BI__builtin_HEXAGON_M2_mpy_nac_hh_s1: - ID = Intrinsic::hexagon_M2_mpy_nac_hh_s1; break; - - case Hexagon::BI__builtin_HEXAGON_M2_mpy_nac_hl_s0: - ID = Intrinsic::hexagon_M2_mpy_nac_hl_s0; break; - - case Hexagon::BI__builtin_HEXAGON_M2_mpy_nac_hl_s1: - ID = Intrinsic::hexagon_M2_mpy_nac_hl_s1; break; - - case Hexagon::BI__builtin_HEXAGON_M2_mpy_nac_lh_s0: - ID = Intrinsic::hexagon_M2_mpy_nac_lh_s0; break; - - case Hexagon::BI__builtin_HEXAGON_M2_mpy_nac_lh_s1: - ID = Intrinsic::hexagon_M2_mpy_nac_lh_s1; break; - - case Hexagon::BI__builtin_HEXAGON_M2_mpy_nac_ll_s0: - ID = Intrinsic::hexagon_M2_mpy_nac_ll_s0; break; - - case Hexagon::BI__builtin_HEXAGON_M2_mpy_nac_ll_s1: - ID = Intrinsic::hexagon_M2_mpy_nac_ll_s1; break; - - case Hexagon::BI__builtin_HEXAGON_M2_mpy_acc_sat_hh_s0: - ID = Intrinsic::hexagon_M2_mpy_acc_sat_hh_s0; break; - - case Hexagon::BI__builtin_HEXAGON_M2_mpy_acc_sat_hh_s1: - ID = Intrinsic::hexagon_M2_mpy_acc_sat_hh_s1; break; - - case Hexagon::BI__builtin_HEXAGON_M2_mpy_acc_sat_hl_s0: - ID = Intrinsic::hexagon_M2_mpy_acc_sat_hl_s0; break; - - case Hexagon::BI__builtin_HEXAGON_M2_mpy_acc_sat_hl_s1: - ID = Intrinsic::hexagon_M2_mpy_acc_sat_hl_s1; break; - - case Hexagon::BI__builtin_HEXAGON_M2_mpy_acc_sat_lh_s0: - ID = Intrinsic::hexagon_M2_mpy_acc_sat_lh_s0; break; - - case Hexagon::BI__builtin_HEXAGON_M2_mpy_acc_sat_lh_s1: - ID = Intrinsic::hexagon_M2_mpy_acc_sat_lh_s1; break; - - case Hexagon::BI__builtin_HEXAGON_M2_mpy_acc_sat_ll_s0: - ID = Intrinsic::hexagon_M2_mpy_acc_sat_ll_s0; break; - - case Hexagon::BI__builtin_HEXAGON_M2_mpy_acc_sat_ll_s1: - ID = Intrinsic::hexagon_M2_mpy_acc_sat_ll_s1; break; - - case Hexagon::BI__builtin_HEXAGON_M2_mpy_nac_sat_hh_s0: - ID = Intrinsic::hexagon_M2_mpy_nac_sat_hh_s0; break; - - case Hexagon::BI__builtin_HEXAGON_M2_mpy_nac_sat_hh_s1: - ID = Intrinsic::hexagon_M2_mpy_nac_sat_hh_s1; break; - - case Hexagon::BI__builtin_HEXAGON_M2_mpy_nac_sat_hl_s0: - ID = Intrinsic::hexagon_M2_mpy_nac_sat_hl_s0; break; - - case Hexagon::BI__builtin_HEXAGON_M2_mpy_nac_sat_hl_s1: - ID = Intrinsic::hexagon_M2_mpy_nac_sat_hl_s1; break; - - case Hexagon::BI__builtin_HEXAGON_M2_mpy_nac_sat_lh_s0: - ID = Intrinsic::hexagon_M2_mpy_nac_sat_lh_s0; break; - - case Hexagon::BI__builtin_HEXAGON_M2_mpy_nac_sat_lh_s1: - ID = Intrinsic::hexagon_M2_mpy_nac_sat_lh_s1; break; - - case Hexagon::BI__builtin_HEXAGON_M2_mpy_nac_sat_ll_s0: - ID = Intrinsic::hexagon_M2_mpy_nac_sat_ll_s0; break; - - case Hexagon::BI__builtin_HEXAGON_M2_mpy_nac_sat_ll_s1: - ID = Intrinsic::hexagon_M2_mpy_nac_sat_ll_s1; break; - - case Hexagon::BI__builtin_HEXAGON_M2_mpy_hh_s0: - ID = Intrinsic::hexagon_M2_mpy_hh_s0; break; - - case Hexagon::BI__builtin_HEXAGON_M2_mpy_hh_s1: - ID = Intrinsic::hexagon_M2_mpy_hh_s1; break; - - case Hexagon::BI__builtin_HEXAGON_M2_mpy_hl_s0: - ID = Intrinsic::hexagon_M2_mpy_hl_s0; break; - - case Hexagon::BI__builtin_HEXAGON_M2_mpy_hl_s1: - ID = Intrinsic::hexagon_M2_mpy_hl_s1; break; - - case Hexagon::BI__builtin_HEXAGON_M2_mpy_lh_s0: - ID = Intrinsic::hexagon_M2_mpy_lh_s0; break; - - case Hexagon::BI__builtin_HEXAGON_M2_mpy_lh_s1: - ID = Intrinsic::hexagon_M2_mpy_lh_s1; break; - - case Hexagon::BI__builtin_HEXAGON_M2_mpy_ll_s0: - ID = Intrinsic::hexagon_M2_mpy_ll_s0; break; - - case Hexagon::BI__builtin_HEXAGON_M2_mpy_ll_s1: - ID = Intrinsic::hexagon_M2_mpy_ll_s1; break; - - case Hexagon::BI__builtin_HEXAGON_M2_mpy_sat_hh_s0: - ID = Intrinsic::hexagon_M2_mpy_sat_hh_s0; break; - - case Hexagon::BI__builtin_HEXAGON_M2_mpy_sat_hh_s1: - ID = Intrinsic::hexagon_M2_mpy_sat_hh_s1; break; - - case Hexagon::BI__builtin_HEXAGON_M2_mpy_sat_hl_s0: - ID = Intrinsic::hexagon_M2_mpy_sat_hl_s0; break; - - case Hexagon::BI__builtin_HEXAGON_M2_mpy_sat_hl_s1: - ID = Intrinsic::hexagon_M2_mpy_sat_hl_s1; break; - - case Hexagon::BI__builtin_HEXAGON_M2_mpy_sat_lh_s0: - ID = Intrinsic::hexagon_M2_mpy_sat_lh_s0; break; - - case Hexagon::BI__builtin_HEXAGON_M2_mpy_sat_lh_s1: - ID = Intrinsic::hexagon_M2_mpy_sat_lh_s1; break; - - case Hexagon::BI__builtin_HEXAGON_M2_mpy_sat_ll_s0: - ID = Intrinsic::hexagon_M2_mpy_sat_ll_s0; break; - - case Hexagon::BI__builtin_HEXAGON_M2_mpy_sat_ll_s1: - ID = Intrinsic::hexagon_M2_mpy_sat_ll_s1; break; - - case Hexagon::BI__builtin_HEXAGON_M2_mpy_rnd_hh_s0: - ID = Intrinsic::hexagon_M2_mpy_rnd_hh_s0; break; - - case Hexagon::BI__builtin_HEXAGON_M2_mpy_rnd_hh_s1: - ID = Intrinsic::hexagon_M2_mpy_rnd_hh_s1; break; - - case Hexagon::BI__builtin_HEXAGON_M2_mpy_rnd_hl_s0: - ID = Intrinsic::hexagon_M2_mpy_rnd_hl_s0; break; - - case Hexagon::BI__builtin_HEXAGON_M2_mpy_rnd_hl_s1: - ID = Intrinsic::hexagon_M2_mpy_rnd_hl_s1; break; - - case Hexagon::BI__builtin_HEXAGON_M2_mpy_rnd_lh_s0: - ID = Intrinsic::hexagon_M2_mpy_rnd_lh_s0; break; - - case Hexagon::BI__builtin_HEXAGON_M2_mpy_rnd_lh_s1: - ID = Intrinsic::hexagon_M2_mpy_rnd_lh_s1; break; - - case Hexagon::BI__builtin_HEXAGON_M2_mpy_rnd_ll_s0: - ID = Intrinsic::hexagon_M2_mpy_rnd_ll_s0; break; - - case Hexagon::BI__builtin_HEXAGON_M2_mpy_rnd_ll_s1: - ID = Intrinsic::hexagon_M2_mpy_rnd_ll_s1; break; - - case Hexagon::BI__builtin_HEXAGON_M2_mpy_sat_rnd_hh_s0: - ID = Intrinsic::hexagon_M2_mpy_sat_rnd_hh_s0; break; - - case Hexagon::BI__builtin_HEXAGON_M2_mpy_sat_rnd_hh_s1: - ID = Intrinsic::hexagon_M2_mpy_sat_rnd_hh_s1; break; - - case Hexagon::BI__builtin_HEXAGON_M2_mpy_sat_rnd_hl_s0: - ID = Intrinsic::hexagon_M2_mpy_sat_rnd_hl_s0; break; - - case Hexagon::BI__builtin_HEXAGON_M2_mpy_sat_rnd_hl_s1: - ID = Intrinsic::hexagon_M2_mpy_sat_rnd_hl_s1; break; - - case Hexagon::BI__builtin_HEXAGON_M2_mpy_sat_rnd_lh_s0: - ID = Intrinsic::hexagon_M2_mpy_sat_rnd_lh_s0; break; - - case Hexagon::BI__builtin_HEXAGON_M2_mpy_sat_rnd_lh_s1: - ID = Intrinsic::hexagon_M2_mpy_sat_rnd_lh_s1; break; - - case Hexagon::BI__builtin_HEXAGON_M2_mpy_sat_rnd_ll_s0: - ID = Intrinsic::hexagon_M2_mpy_sat_rnd_ll_s0; break; - - case Hexagon::BI__builtin_HEXAGON_M2_mpy_sat_rnd_ll_s1: - ID = Intrinsic::hexagon_M2_mpy_sat_rnd_ll_s1; break; - - case Hexagon::BI__builtin_HEXAGON_M2_mpyd_acc_hh_s0: - ID = Intrinsic::hexagon_M2_mpyd_acc_hh_s0; break; - - case Hexagon::BI__builtin_HEXAGON_M2_mpyd_acc_hh_s1: - ID = Intrinsic::hexagon_M2_mpyd_acc_hh_s1; break; - - case Hexagon::BI__builtin_HEXAGON_M2_mpyd_acc_hl_s0: - ID = Intrinsic::hexagon_M2_mpyd_acc_hl_s0; break; - - case Hexagon::BI__builtin_HEXAGON_M2_mpyd_acc_hl_s1: - ID = Intrinsic::hexagon_M2_mpyd_acc_hl_s1; break; - - case Hexagon::BI__builtin_HEXAGON_M2_mpyd_acc_lh_s0: - ID = Intrinsic::hexagon_M2_mpyd_acc_lh_s0; break; - - case Hexagon::BI__builtin_HEXAGON_M2_mpyd_acc_lh_s1: - ID = Intrinsic::hexagon_M2_mpyd_acc_lh_s1; break; - - case Hexagon::BI__builtin_HEXAGON_M2_mpyd_acc_ll_s0: - ID = Intrinsic::hexagon_M2_mpyd_acc_ll_s0; break; - - case Hexagon::BI__builtin_HEXAGON_M2_mpyd_acc_ll_s1: - ID = Intrinsic::hexagon_M2_mpyd_acc_ll_s1; break; - - case Hexagon::BI__builtin_HEXAGON_M2_mpyd_nac_hh_s0: - ID = Intrinsic::hexagon_M2_mpyd_nac_hh_s0; break; - - case Hexagon::BI__builtin_HEXAGON_M2_mpyd_nac_hh_s1: - ID = Intrinsic::hexagon_M2_mpyd_nac_hh_s1; break; - - case Hexagon::BI__builtin_HEXAGON_M2_mpyd_nac_hl_s0: - ID = Intrinsic::hexagon_M2_mpyd_nac_hl_s0; break; - - case Hexagon::BI__builtin_HEXAGON_M2_mpyd_nac_hl_s1: - ID = Intrinsic::hexagon_M2_mpyd_nac_hl_s1; break; - - case Hexagon::BI__builtin_HEXAGON_M2_mpyd_nac_lh_s0: - ID = Intrinsic::hexagon_M2_mpyd_nac_lh_s0; break; - - case Hexagon::BI__builtin_HEXAGON_M2_mpyd_nac_lh_s1: - ID = Intrinsic::hexagon_M2_mpyd_nac_lh_s1; break; - - case Hexagon::BI__builtin_HEXAGON_M2_mpyd_nac_ll_s0: - ID = Intrinsic::hexagon_M2_mpyd_nac_ll_s0; break; - - case Hexagon::BI__builtin_HEXAGON_M2_mpyd_nac_ll_s1: - ID = Intrinsic::hexagon_M2_mpyd_nac_ll_s1; break; - - case Hexagon::BI__builtin_HEXAGON_M2_mpyd_hh_s0: - ID = Intrinsic::hexagon_M2_mpyd_hh_s0; break; - - case Hexagon::BI__builtin_HEXAGON_M2_mpyd_hh_s1: - ID = Intrinsic::hexagon_M2_mpyd_hh_s1; break; - - case Hexagon::BI__builtin_HEXAGON_M2_mpyd_hl_s0: - ID = Intrinsic::hexagon_M2_mpyd_hl_s0; break; - - case Hexagon::BI__builtin_HEXAGON_M2_mpyd_hl_s1: - ID = Intrinsic::hexagon_M2_mpyd_hl_s1; break; - - case Hexagon::BI__builtin_HEXAGON_M2_mpyd_lh_s0: - ID = Intrinsic::hexagon_M2_mpyd_lh_s0; break; - - case Hexagon::BI__builtin_HEXAGON_M2_mpyd_lh_s1: - ID = Intrinsic::hexagon_M2_mpyd_lh_s1; break; - - case Hexagon::BI__builtin_HEXAGON_M2_mpyd_ll_s0: - ID = Intrinsic::hexagon_M2_mpyd_ll_s0; break; - - case Hexagon::BI__builtin_HEXAGON_M2_mpyd_ll_s1: - ID = Intrinsic::hexagon_M2_mpyd_ll_s1; break; - - case Hexagon::BI__builtin_HEXAGON_M2_mpyd_rnd_hh_s0: - ID = Intrinsic::hexagon_M2_mpyd_rnd_hh_s0; break; - - case Hexagon::BI__builtin_HEXAGON_M2_mpyd_rnd_hh_s1: - ID = Intrinsic::hexagon_M2_mpyd_rnd_hh_s1; break; - - case Hexagon::BI__builtin_HEXAGON_M2_mpyd_rnd_hl_s0: - ID = Intrinsic::hexagon_M2_mpyd_rnd_hl_s0; break; - - case Hexagon::BI__builtin_HEXAGON_M2_mpyd_rnd_hl_s1: - ID = Intrinsic::hexagon_M2_mpyd_rnd_hl_s1; break; - - case Hexagon::BI__builtin_HEXAGON_M2_mpyd_rnd_lh_s0: - ID = Intrinsic::hexagon_M2_mpyd_rnd_lh_s0; break; - - case Hexagon::BI__builtin_HEXAGON_M2_mpyd_rnd_lh_s1: - ID = Intrinsic::hexagon_M2_mpyd_rnd_lh_s1; break; - - case Hexagon::BI__builtin_HEXAGON_M2_mpyd_rnd_ll_s0: - ID = Intrinsic::hexagon_M2_mpyd_rnd_ll_s0; break; - - case Hexagon::BI__builtin_HEXAGON_M2_mpyd_rnd_ll_s1: - ID = Intrinsic::hexagon_M2_mpyd_rnd_ll_s1; break; - - case Hexagon::BI__builtin_HEXAGON_M2_mpyu_acc_hh_s0: - ID = Intrinsic::hexagon_M2_mpyu_acc_hh_s0; break; - - case Hexagon::BI__builtin_HEXAGON_M2_mpyu_acc_hh_s1: - ID = Intrinsic::hexagon_M2_mpyu_acc_hh_s1; break; - - case Hexagon::BI__builtin_HEXAGON_M2_mpyu_acc_hl_s0: - ID = Intrinsic::hexagon_M2_mpyu_acc_hl_s0; break; - - case Hexagon::BI__builtin_HEXAGON_M2_mpyu_acc_hl_s1: - ID = Intrinsic::hexagon_M2_mpyu_acc_hl_s1; break; - - case Hexagon::BI__builtin_HEXAGON_M2_mpyu_acc_lh_s0: - ID = Intrinsic::hexagon_M2_mpyu_acc_lh_s0; break; - - case Hexagon::BI__builtin_HEXAGON_M2_mpyu_acc_lh_s1: - ID = Intrinsic::hexagon_M2_mpyu_acc_lh_s1; break; - - case Hexagon::BI__builtin_HEXAGON_M2_mpyu_acc_ll_s0: - ID = Intrinsic::hexagon_M2_mpyu_acc_ll_s0; break; - - case Hexagon::BI__builtin_HEXAGON_M2_mpyu_acc_ll_s1: - ID = Intrinsic::hexagon_M2_mpyu_acc_ll_s1; break; - - case Hexagon::BI__builtin_HEXAGON_M2_mpyu_nac_hh_s0: - ID = Intrinsic::hexagon_M2_mpyu_nac_hh_s0; break; - - case Hexagon::BI__builtin_HEXAGON_M2_mpyu_nac_hh_s1: - ID = Intrinsic::hexagon_M2_mpyu_nac_hh_s1; break; - - case Hexagon::BI__builtin_HEXAGON_M2_mpyu_nac_hl_s0: - ID = Intrinsic::hexagon_M2_mpyu_nac_hl_s0; break; - - case Hexagon::BI__builtin_HEXAGON_M2_mpyu_nac_hl_s1: - ID = Intrinsic::hexagon_M2_mpyu_nac_hl_s1; break; - - case Hexagon::BI__builtin_HEXAGON_M2_mpyu_nac_lh_s0: - ID = Intrinsic::hexagon_M2_mpyu_nac_lh_s0; break; - - case Hexagon::BI__builtin_HEXAGON_M2_mpyu_nac_lh_s1: - ID = Intrinsic::hexagon_M2_mpyu_nac_lh_s1; break; - - case Hexagon::BI__builtin_HEXAGON_M2_mpyu_nac_ll_s0: - ID = Intrinsic::hexagon_M2_mpyu_nac_ll_s0; break; - - case Hexagon::BI__builtin_HEXAGON_M2_mpyu_nac_ll_s1: - ID = Intrinsic::hexagon_M2_mpyu_nac_ll_s1; break; - - case Hexagon::BI__builtin_HEXAGON_M2_mpyu_hh_s0: - ID = Intrinsic::hexagon_M2_mpyu_hh_s0; break; - - case Hexagon::BI__builtin_HEXAGON_M2_mpyu_hh_s1: - ID = Intrinsic::hexagon_M2_mpyu_hh_s1; break; - - case Hexagon::BI__builtin_HEXAGON_M2_mpyu_hl_s0: - ID = Intrinsic::hexagon_M2_mpyu_hl_s0; break; - - case Hexagon::BI__builtin_HEXAGON_M2_mpyu_hl_s1: - ID = Intrinsic::hexagon_M2_mpyu_hl_s1; break; - - case Hexagon::BI__builtin_HEXAGON_M2_mpyu_lh_s0: - ID = Intrinsic::hexagon_M2_mpyu_lh_s0; break; - - case Hexagon::BI__builtin_HEXAGON_M2_mpyu_lh_s1: - ID = Intrinsic::hexagon_M2_mpyu_lh_s1; break; - - case Hexagon::BI__builtin_HEXAGON_M2_mpyu_ll_s0: - ID = Intrinsic::hexagon_M2_mpyu_ll_s0; break; - - case Hexagon::BI__builtin_HEXAGON_M2_mpyu_ll_s1: - ID = Intrinsic::hexagon_M2_mpyu_ll_s1; break; - - case Hexagon::BI__builtin_HEXAGON_M2_mpyud_acc_hh_s0: - ID = Intrinsic::hexagon_M2_mpyud_acc_hh_s0; break; - - case Hexagon::BI__builtin_HEXAGON_M2_mpyud_acc_hh_s1: - ID = Intrinsic::hexagon_M2_mpyud_acc_hh_s1; break; - - case Hexagon::BI__builtin_HEXAGON_M2_mpyud_acc_hl_s0: - ID = Intrinsic::hexagon_M2_mpyud_acc_hl_s0; break; - - case Hexagon::BI__builtin_HEXAGON_M2_mpyud_acc_hl_s1: - ID = Intrinsic::hexagon_M2_mpyud_acc_hl_s1; break; - - case Hexagon::BI__builtin_HEXAGON_M2_mpyud_acc_lh_s0: - ID = Intrinsic::hexagon_M2_mpyud_acc_lh_s0; break; - - case Hexagon::BI__builtin_HEXAGON_M2_mpyud_acc_lh_s1: - ID = Intrinsic::hexagon_M2_mpyud_acc_lh_s1; break; - - case Hexagon::BI__builtin_HEXAGON_M2_mpyud_acc_ll_s0: - ID = Intrinsic::hexagon_M2_mpyud_acc_ll_s0; break; - - case Hexagon::BI__builtin_HEXAGON_M2_mpyud_acc_ll_s1: - ID = Intrinsic::hexagon_M2_mpyud_acc_ll_s1; break; - - case Hexagon::BI__builtin_HEXAGON_M2_mpyud_nac_hh_s0: - ID = Intrinsic::hexagon_M2_mpyud_nac_hh_s0; break; - - case Hexagon::BI__builtin_HEXAGON_M2_mpyud_nac_hh_s1: - ID = Intrinsic::hexagon_M2_mpyud_nac_hh_s1; break; - - case Hexagon::BI__builtin_HEXAGON_M2_mpyud_nac_hl_s0: - ID = Intrinsic::hexagon_M2_mpyud_nac_hl_s0; break; - - case Hexagon::BI__builtin_HEXAGON_M2_mpyud_nac_hl_s1: - ID = Intrinsic::hexagon_M2_mpyud_nac_hl_s1; break; - - case Hexagon::BI__builtin_HEXAGON_M2_mpyud_nac_lh_s0: - ID = Intrinsic::hexagon_M2_mpyud_nac_lh_s0; break; - - case Hexagon::BI__builtin_HEXAGON_M2_mpyud_nac_lh_s1: - ID = Intrinsic::hexagon_M2_mpyud_nac_lh_s1; break; - - case Hexagon::BI__builtin_HEXAGON_M2_mpyud_nac_ll_s0: - ID = Intrinsic::hexagon_M2_mpyud_nac_ll_s0; break; - - case Hexagon::BI__builtin_HEXAGON_M2_mpyud_nac_ll_s1: - ID = Intrinsic::hexagon_M2_mpyud_nac_ll_s1; break; - - case Hexagon::BI__builtin_HEXAGON_M2_mpyud_hh_s0: - ID = Intrinsic::hexagon_M2_mpyud_hh_s0; break; - - case Hexagon::BI__builtin_HEXAGON_M2_mpyud_hh_s1: - ID = Intrinsic::hexagon_M2_mpyud_hh_s1; break; - - case Hexagon::BI__builtin_HEXAGON_M2_mpyud_hl_s0: - ID = Intrinsic::hexagon_M2_mpyud_hl_s0; break; - - case Hexagon::BI__builtin_HEXAGON_M2_mpyud_hl_s1: - ID = Intrinsic::hexagon_M2_mpyud_hl_s1; break; - - case Hexagon::BI__builtin_HEXAGON_M2_mpyud_lh_s0: - ID = Intrinsic::hexagon_M2_mpyud_lh_s0; break; - - case Hexagon::BI__builtin_HEXAGON_M2_mpyud_lh_s1: - ID = Intrinsic::hexagon_M2_mpyud_lh_s1; break; - - case Hexagon::BI__builtin_HEXAGON_M2_mpyud_ll_s0: - ID = Intrinsic::hexagon_M2_mpyud_ll_s0; break; - - case Hexagon::BI__builtin_HEXAGON_M2_mpyud_ll_s1: - ID = Intrinsic::hexagon_M2_mpyud_ll_s1; break; - - case Hexagon::BI__builtin_HEXAGON_M2_mpysmi: - ID = Intrinsic::hexagon_M2_mpysmi; break; - - case Hexagon::BI__builtin_HEXAGON_M2_macsip: - ID = Intrinsic::hexagon_M2_macsip; break; - - case Hexagon::BI__builtin_HEXAGON_M2_macsin: - ID = Intrinsic::hexagon_M2_macsin; break; - - case Hexagon::BI__builtin_HEXAGON_M2_dpmpyss_s0: - ID = Intrinsic::hexagon_M2_dpmpyss_s0; break; - - case Hexagon::BI__builtin_HEXAGON_M2_dpmpyss_acc_s0: - ID = Intrinsic::hexagon_M2_dpmpyss_acc_s0; break; - - case Hexagon::BI__builtin_HEXAGON_M2_dpmpyss_nac_s0: - ID = Intrinsic::hexagon_M2_dpmpyss_nac_s0; break; - - case Hexagon::BI__builtin_HEXAGON_M2_dpmpyuu_s0: - ID = Intrinsic::hexagon_M2_dpmpyuu_s0; break; - - case Hexagon::BI__builtin_HEXAGON_M2_dpmpyuu_acc_s0: - ID = Intrinsic::hexagon_M2_dpmpyuu_acc_s0; break; - - case Hexagon::BI__builtin_HEXAGON_M2_dpmpyuu_nac_s0: - ID = Intrinsic::hexagon_M2_dpmpyuu_nac_s0; break; - - case Hexagon::BI__builtin_HEXAGON_M2_mpy_up: - ID = Intrinsic::hexagon_M2_mpy_up; break; - - case Hexagon::BI__builtin_HEXAGON_M2_mpyu_up: - ID = Intrinsic::hexagon_M2_mpyu_up; break; - - case Hexagon::BI__builtin_HEXAGON_M2_dpmpyss_rnd_s0: - ID = Intrinsic::hexagon_M2_dpmpyss_rnd_s0; break; - - case Hexagon::BI__builtin_HEXAGON_M2_mpyi: - ID = Intrinsic::hexagon_M2_mpyi; break; - - case Hexagon::BI__builtin_HEXAGON_M2_mpyui: - ID = Intrinsic::hexagon_M2_mpyui; break; - - case Hexagon::BI__builtin_HEXAGON_M2_maci: - ID = Intrinsic::hexagon_M2_maci; break; - - case Hexagon::BI__builtin_HEXAGON_M2_acci: - ID = Intrinsic::hexagon_M2_acci; break; - - case Hexagon::BI__builtin_HEXAGON_M2_accii: - ID = Intrinsic::hexagon_M2_accii; break; - - case Hexagon::BI__builtin_HEXAGON_M2_nacci: - ID = Intrinsic::hexagon_M2_nacci; break; - - case Hexagon::BI__builtin_HEXAGON_M2_naccii: - ID = Intrinsic::hexagon_M2_naccii; break; - - case Hexagon::BI__builtin_HEXAGON_M2_subacc: - ID = Intrinsic::hexagon_M2_subacc; break; - - case Hexagon::BI__builtin_HEXAGON_M2_vmpy2s_s0: - ID = Intrinsic::hexagon_M2_vmpy2s_s0; break; - - case Hexagon::BI__builtin_HEXAGON_M2_vmpy2s_s1: - ID = Intrinsic::hexagon_M2_vmpy2s_s1; break; - - case Hexagon::BI__builtin_HEXAGON_M2_vmac2s_s0: - ID = Intrinsic::hexagon_M2_vmac2s_s0; break; - - case Hexagon::BI__builtin_HEXAGON_M2_vmac2s_s1: - ID = Intrinsic::hexagon_M2_vmac2s_s1; break; - - case Hexagon::BI__builtin_HEXAGON_M2_vmpy2s_s0pack: - ID = Intrinsic::hexagon_M2_vmpy2s_s0pack; break; - - case Hexagon::BI__builtin_HEXAGON_M2_vmpy2s_s1pack: - ID = Intrinsic::hexagon_M2_vmpy2s_s1pack; break; - - case Hexagon::BI__builtin_HEXAGON_M2_vmac2: - ID = Intrinsic::hexagon_M2_vmac2; break; - - case Hexagon::BI__builtin_HEXAGON_M2_vmpy2es_s0: - ID = Intrinsic::hexagon_M2_vmpy2es_s0; break; - - case Hexagon::BI__builtin_HEXAGON_M2_vmpy2es_s1: - ID = Intrinsic::hexagon_M2_vmpy2es_s1; break; - - case Hexagon::BI__builtin_HEXAGON_M2_vmac2es_s0: - ID = Intrinsic::hexagon_M2_vmac2es_s0; break; - - case Hexagon::BI__builtin_HEXAGON_M2_vmac2es_s1: - ID = Intrinsic::hexagon_M2_vmac2es_s1; break; - - case Hexagon::BI__builtin_HEXAGON_M2_vmac2es: - ID = Intrinsic::hexagon_M2_vmac2es; break; - - case Hexagon::BI__builtin_HEXAGON_M2_vrmac_s0: - ID = Intrinsic::hexagon_M2_vrmac_s0; break; - - case Hexagon::BI__builtin_HEXAGON_M2_vrmpy_s0: - ID = Intrinsic::hexagon_M2_vrmpy_s0; break; - - case Hexagon::BI__builtin_HEXAGON_M2_vdmpyrs_s0: - ID = Intrinsic::hexagon_M2_vdmpyrs_s0; break; - - case Hexagon::BI__builtin_HEXAGON_M2_vdmpyrs_s1: - ID = Intrinsic::hexagon_M2_vdmpyrs_s1; break; - - case Hexagon::BI__builtin_HEXAGON_M2_vdmacs_s0: - ID = Intrinsic::hexagon_M2_vdmacs_s0; break; - - case Hexagon::BI__builtin_HEXAGON_M2_vdmacs_s1: - ID = Intrinsic::hexagon_M2_vdmacs_s1; break; - - case Hexagon::BI__builtin_HEXAGON_M2_vdmpys_s0: - ID = Intrinsic::hexagon_M2_vdmpys_s0; break; - - case Hexagon::BI__builtin_HEXAGON_M2_vdmpys_s1: - ID = Intrinsic::hexagon_M2_vdmpys_s1; break; - - case Hexagon::BI__builtin_HEXAGON_M2_cmpyrs_s0: - ID = Intrinsic::hexagon_M2_cmpyrs_s0; break; - - case Hexagon::BI__builtin_HEXAGON_M2_cmpyrs_s1: - ID = Intrinsic::hexagon_M2_cmpyrs_s1; break; - - case Hexagon::BI__builtin_HEXAGON_M2_cmpyrsc_s0: - ID = Intrinsic::hexagon_M2_cmpyrsc_s0; break; - - case Hexagon::BI__builtin_HEXAGON_M2_cmpyrsc_s1: - ID = Intrinsic::hexagon_M2_cmpyrsc_s1; break; - - case Hexagon::BI__builtin_HEXAGON_M2_cmacs_s0: - ID = Intrinsic::hexagon_M2_cmacs_s0; break; - - case Hexagon::BI__builtin_HEXAGON_M2_cmacs_s1: - ID = Intrinsic::hexagon_M2_cmacs_s1; break; - - case Hexagon::BI__builtin_HEXAGON_M2_cmacsc_s0: - ID = Intrinsic::hexagon_M2_cmacsc_s0; break; - - case Hexagon::BI__builtin_HEXAGON_M2_cmacsc_s1: - ID = Intrinsic::hexagon_M2_cmacsc_s1; break; - - case Hexagon::BI__builtin_HEXAGON_M2_cmpys_s0: - ID = Intrinsic::hexagon_M2_cmpys_s0; break; - - case Hexagon::BI__builtin_HEXAGON_M2_cmpys_s1: - ID = Intrinsic::hexagon_M2_cmpys_s1; break; - - case Hexagon::BI__builtin_HEXAGON_M2_cmpysc_s0: - ID = Intrinsic::hexagon_M2_cmpysc_s0; break; - - case Hexagon::BI__builtin_HEXAGON_M2_cmpysc_s1: - ID = Intrinsic::hexagon_M2_cmpysc_s1; break; - - case Hexagon::BI__builtin_HEXAGON_M2_cnacs_s0: - ID = Intrinsic::hexagon_M2_cnacs_s0; break; - - case Hexagon::BI__builtin_HEXAGON_M2_cnacs_s1: - ID = Intrinsic::hexagon_M2_cnacs_s1; break; - - case Hexagon::BI__builtin_HEXAGON_M2_cnacsc_s0: - ID = Intrinsic::hexagon_M2_cnacsc_s0; break; - - case Hexagon::BI__builtin_HEXAGON_M2_cnacsc_s1: - ID = Intrinsic::hexagon_M2_cnacsc_s1; break; - - case Hexagon::BI__builtin_HEXAGON_M2_vrcmpys_s1: - ID = Intrinsic::hexagon_M2_vrcmpys_s1; break; - - case Hexagon::BI__builtin_HEXAGON_M2_vrcmpys_acc_s1: - ID = Intrinsic::hexagon_M2_vrcmpys_acc_s1; break; - - case Hexagon::BI__builtin_HEXAGON_M2_vrcmpys_s1rp: - ID = Intrinsic::hexagon_M2_vrcmpys_s1rp; break; - - case Hexagon::BI__builtin_HEXAGON_M2_mmacls_s0: - ID = Intrinsic::hexagon_M2_mmacls_s0; break; - - case Hexagon::BI__builtin_HEXAGON_M2_mmacls_s1: - ID = Intrinsic::hexagon_M2_mmacls_s1; break; - - case Hexagon::BI__builtin_HEXAGON_M2_mmachs_s0: - ID = Intrinsic::hexagon_M2_mmachs_s0; break; - - case Hexagon::BI__builtin_HEXAGON_M2_mmachs_s1: - ID = Intrinsic::hexagon_M2_mmachs_s1; break; - - case Hexagon::BI__builtin_HEXAGON_M2_mmpyl_s0: - ID = Intrinsic::hexagon_M2_mmpyl_s0; break; - - case Hexagon::BI__builtin_HEXAGON_M2_mmpyl_s1: - ID = Intrinsic::hexagon_M2_mmpyl_s1; break; - - case Hexagon::BI__builtin_HEXAGON_M2_mmpyh_s0: - ID = Intrinsic::hexagon_M2_mmpyh_s0; break; - - case Hexagon::BI__builtin_HEXAGON_M2_mmpyh_s1: - ID = Intrinsic::hexagon_M2_mmpyh_s1; break; - - case Hexagon::BI__builtin_HEXAGON_M2_mmacls_rs0: - ID = Intrinsic::hexagon_M2_mmacls_rs0; break; - - case Hexagon::BI__builtin_HEXAGON_M2_mmacls_rs1: - ID = Intrinsic::hexagon_M2_mmacls_rs1; break; - - case Hexagon::BI__builtin_HEXAGON_M2_mmachs_rs0: - ID = Intrinsic::hexagon_M2_mmachs_rs0; break; - - case Hexagon::BI__builtin_HEXAGON_M2_mmachs_rs1: - ID = Intrinsic::hexagon_M2_mmachs_rs1; break; - - case Hexagon::BI__builtin_HEXAGON_M2_mmpyl_rs0: - ID = Intrinsic::hexagon_M2_mmpyl_rs0; break; - - case Hexagon::BI__builtin_HEXAGON_M2_mmpyl_rs1: - ID = Intrinsic::hexagon_M2_mmpyl_rs1; break; - - case Hexagon::BI__builtin_HEXAGON_M2_mmpyh_rs0: - ID = Intrinsic::hexagon_M2_mmpyh_rs0; break; - - case Hexagon::BI__builtin_HEXAGON_M2_mmpyh_rs1: - ID = Intrinsic::hexagon_M2_mmpyh_rs1; break; - - case Hexagon::BI__builtin_HEXAGON_M2_hmmpyl_rs1: - ID = Intrinsic::hexagon_M2_hmmpyl_rs1; break; - - case Hexagon::BI__builtin_HEXAGON_M2_hmmpyh_rs1: - ID = Intrinsic::hexagon_M2_hmmpyh_rs1; break; - - case Hexagon::BI__builtin_HEXAGON_M2_mmaculs_s0: - ID = Intrinsic::hexagon_M2_mmaculs_s0; break; - - case Hexagon::BI__builtin_HEXAGON_M2_mmaculs_s1: - ID = Intrinsic::hexagon_M2_mmaculs_s1; break; - - case Hexagon::BI__builtin_HEXAGON_M2_mmacuhs_s0: - ID = Intrinsic::hexagon_M2_mmacuhs_s0; break; - - case Hexagon::BI__builtin_HEXAGON_M2_mmacuhs_s1: - ID = Intrinsic::hexagon_M2_mmacuhs_s1; break; - - case Hexagon::BI__builtin_HEXAGON_M2_mmpyul_s0: - ID = Intrinsic::hexagon_M2_mmpyul_s0; break; - - case Hexagon::BI__builtin_HEXAGON_M2_mmpyul_s1: - ID = Intrinsic::hexagon_M2_mmpyul_s1; break; - - case Hexagon::BI__builtin_HEXAGON_M2_mmpyuh_s0: - ID = Intrinsic::hexagon_M2_mmpyuh_s0; break; - - case Hexagon::BI__builtin_HEXAGON_M2_mmpyuh_s1: - ID = Intrinsic::hexagon_M2_mmpyuh_s1; break; - - case Hexagon::BI__builtin_HEXAGON_M2_mmaculs_rs0: - ID = Intrinsic::hexagon_M2_mmaculs_rs0; break; - - case Hexagon::BI__builtin_HEXAGON_M2_mmaculs_rs1: - ID = Intrinsic::hexagon_M2_mmaculs_rs1; break; - - case Hexagon::BI__builtin_HEXAGON_M2_mmacuhs_rs0: - ID = Intrinsic::hexagon_M2_mmacuhs_rs0; break; - - case Hexagon::BI__builtin_HEXAGON_M2_mmacuhs_rs1: - ID = Intrinsic::hexagon_M2_mmacuhs_rs1; break; - - case Hexagon::BI__builtin_HEXAGON_M2_mmpyul_rs0: - ID = Intrinsic::hexagon_M2_mmpyul_rs0; break; - - case Hexagon::BI__builtin_HEXAGON_M2_mmpyul_rs1: - ID = Intrinsic::hexagon_M2_mmpyul_rs1; break; - - case Hexagon::BI__builtin_HEXAGON_M2_mmpyuh_rs0: - ID = Intrinsic::hexagon_M2_mmpyuh_rs0; break; - - case Hexagon::BI__builtin_HEXAGON_M2_mmpyuh_rs1: - ID = Intrinsic::hexagon_M2_mmpyuh_rs1; break; - - case Hexagon::BI__builtin_HEXAGON_M2_vrcmaci_s0: - ID = Intrinsic::hexagon_M2_vrcmaci_s0; break; - - case Hexagon::BI__builtin_HEXAGON_M2_vrcmacr_s0: - ID = Intrinsic::hexagon_M2_vrcmacr_s0; break; - - case Hexagon::BI__builtin_HEXAGON_M2_vrcmaci_s0c: - ID = Intrinsic::hexagon_M2_vrcmaci_s0c; break; - - case Hexagon::BI__builtin_HEXAGON_M2_vrcmacr_s0c: - ID = Intrinsic::hexagon_M2_vrcmacr_s0c; break; - - case Hexagon::BI__builtin_HEXAGON_M2_cmaci_s0: - ID = Intrinsic::hexagon_M2_cmaci_s0; break; - - case Hexagon::BI__builtin_HEXAGON_M2_cmacr_s0: - ID = Intrinsic::hexagon_M2_cmacr_s0; break; - - case Hexagon::BI__builtin_HEXAGON_M2_vrcmpyi_s0: - ID = Intrinsic::hexagon_M2_vrcmpyi_s0; break; - - case Hexagon::BI__builtin_HEXAGON_M2_vrcmpyr_s0: - ID = Intrinsic::hexagon_M2_vrcmpyr_s0; break; - - case Hexagon::BI__builtin_HEXAGON_M2_vrcmpyi_s0c: - ID = Intrinsic::hexagon_M2_vrcmpyi_s0c; break; - - case Hexagon::BI__builtin_HEXAGON_M2_vrcmpyr_s0c: - ID = Intrinsic::hexagon_M2_vrcmpyr_s0c; break; - - case Hexagon::BI__builtin_HEXAGON_M2_cmpyi_s0: - ID = Intrinsic::hexagon_M2_cmpyi_s0; break; - - case Hexagon::BI__builtin_HEXAGON_M2_cmpyr_s0: - ID = Intrinsic::hexagon_M2_cmpyr_s0; break; - - case Hexagon::BI__builtin_HEXAGON_M2_vcmpy_s0_sat_i: - ID = Intrinsic::hexagon_M2_vcmpy_s0_sat_i; break; - - case Hexagon::BI__builtin_HEXAGON_M2_vcmpy_s0_sat_r: - ID = Intrinsic::hexagon_M2_vcmpy_s0_sat_r; break; - - case Hexagon::BI__builtin_HEXAGON_M2_vcmpy_s1_sat_i: - ID = Intrinsic::hexagon_M2_vcmpy_s1_sat_i; break; - - case Hexagon::BI__builtin_HEXAGON_M2_vcmpy_s1_sat_r: - ID = Intrinsic::hexagon_M2_vcmpy_s1_sat_r; break; - - case Hexagon::BI__builtin_HEXAGON_M2_vcmac_s0_sat_i: - ID = Intrinsic::hexagon_M2_vcmac_s0_sat_i; break; - - case Hexagon::BI__builtin_HEXAGON_M2_vcmac_s0_sat_r: - ID = Intrinsic::hexagon_M2_vcmac_s0_sat_r; break; - - case Hexagon::BI__builtin_HEXAGON_S2_vcrotate: - ID = Intrinsic::hexagon_S2_vcrotate; break; - - case Hexagon::BI__builtin_HEXAGON_A2_add: - ID = Intrinsic::hexagon_A2_add; break; - - case Hexagon::BI__builtin_HEXAGON_A2_sub: - ID = Intrinsic::hexagon_A2_sub; break; - - case Hexagon::BI__builtin_HEXAGON_A2_addsat: - ID = Intrinsic::hexagon_A2_addsat; break; - - case Hexagon::BI__builtin_HEXAGON_A2_subsat: - ID = Intrinsic::hexagon_A2_subsat; break; - - case Hexagon::BI__builtin_HEXAGON_A2_addi: - ID = Intrinsic::hexagon_A2_addi; break; - - case Hexagon::BI__builtin_HEXAGON_A2_addh_l16_ll: - ID = Intrinsic::hexagon_A2_addh_l16_ll; break; - - case Hexagon::BI__builtin_HEXAGON_A2_addh_l16_hl: - ID = Intrinsic::hexagon_A2_addh_l16_hl; break; - - case Hexagon::BI__builtin_HEXAGON_A2_addh_l16_sat_ll: - ID = Intrinsic::hexagon_A2_addh_l16_sat_ll; break; - - case Hexagon::BI__builtin_HEXAGON_A2_addh_l16_sat_hl: - ID = Intrinsic::hexagon_A2_addh_l16_sat_hl; break; - - case Hexagon::BI__builtin_HEXAGON_A2_subh_l16_ll: - ID = Intrinsic::hexagon_A2_subh_l16_ll; break; - - case Hexagon::BI__builtin_HEXAGON_A2_subh_l16_hl: - ID = Intrinsic::hexagon_A2_subh_l16_hl; break; - - case Hexagon::BI__builtin_HEXAGON_A2_subh_l16_sat_ll: - ID = Intrinsic::hexagon_A2_subh_l16_sat_ll; break; - - case Hexagon::BI__builtin_HEXAGON_A2_subh_l16_sat_hl: - ID = Intrinsic::hexagon_A2_subh_l16_sat_hl; break; - - case Hexagon::BI__builtin_HEXAGON_A2_addh_h16_ll: - ID = Intrinsic::hexagon_A2_addh_h16_ll; break; - - case Hexagon::BI__builtin_HEXAGON_A2_addh_h16_lh: - ID = Intrinsic::hexagon_A2_addh_h16_lh; break; - - case Hexagon::BI__builtin_HEXAGON_A2_addh_h16_hl: - ID = Intrinsic::hexagon_A2_addh_h16_hl; break; - - case Hexagon::BI__builtin_HEXAGON_A2_addh_h16_hh: - ID = Intrinsic::hexagon_A2_addh_h16_hh; break; - - case Hexagon::BI__builtin_HEXAGON_A2_addh_h16_sat_ll: - ID = Intrinsic::hexagon_A2_addh_h16_sat_ll; break; - - case Hexagon::BI__builtin_HEXAGON_A2_addh_h16_sat_lh: - ID = Intrinsic::hexagon_A2_addh_h16_sat_lh; break; - - case Hexagon::BI__builtin_HEXAGON_A2_addh_h16_sat_hl: - ID = Intrinsic::hexagon_A2_addh_h16_sat_hl; break; - - case Hexagon::BI__builtin_HEXAGON_A2_addh_h16_sat_hh: - ID = Intrinsic::hexagon_A2_addh_h16_sat_hh; break; - - case Hexagon::BI__builtin_HEXAGON_A2_subh_h16_ll: - ID = Intrinsic::hexagon_A2_subh_h16_ll; break; - - case Hexagon::BI__builtin_HEXAGON_A2_subh_h16_lh: - ID = Intrinsic::hexagon_A2_subh_h16_lh; break; - - case Hexagon::BI__builtin_HEXAGON_A2_subh_h16_hl: - ID = Intrinsic::hexagon_A2_subh_h16_hl; break; - - case Hexagon::BI__builtin_HEXAGON_A2_subh_h16_hh: - ID = Intrinsic::hexagon_A2_subh_h16_hh; break; - - case Hexagon::BI__builtin_HEXAGON_A2_subh_h16_sat_ll: - ID = Intrinsic::hexagon_A2_subh_h16_sat_ll; break; - - case Hexagon::BI__builtin_HEXAGON_A2_subh_h16_sat_lh: - ID = Intrinsic::hexagon_A2_subh_h16_sat_lh; break; - - case Hexagon::BI__builtin_HEXAGON_A2_subh_h16_sat_hl: - ID = Intrinsic::hexagon_A2_subh_h16_sat_hl; break; - - case Hexagon::BI__builtin_HEXAGON_A2_subh_h16_sat_hh: - ID = Intrinsic::hexagon_A2_subh_h16_sat_hh; break; - - case Hexagon::BI__builtin_HEXAGON_A2_aslh: - ID = Intrinsic::hexagon_A2_aslh; break; - - case Hexagon::BI__builtin_HEXAGON_A2_asrh: - ID = Intrinsic::hexagon_A2_asrh; break; - - case Hexagon::BI__builtin_HEXAGON_A2_addp: - ID = Intrinsic::hexagon_A2_addp; break; - - case Hexagon::BI__builtin_HEXAGON_A2_addpsat: - ID = Intrinsic::hexagon_A2_addpsat; break; - - case Hexagon::BI__builtin_HEXAGON_A2_addsp: - ID = Intrinsic::hexagon_A2_addsp; break; - - case Hexagon::BI__builtin_HEXAGON_A2_subp: - ID = Intrinsic::hexagon_A2_subp; break; - - case Hexagon::BI__builtin_HEXAGON_A2_neg: - ID = Intrinsic::hexagon_A2_neg; break; - - case Hexagon::BI__builtin_HEXAGON_A2_negsat: - ID = Intrinsic::hexagon_A2_negsat; break; - - case Hexagon::BI__builtin_HEXAGON_A2_abs: - ID = Intrinsic::hexagon_A2_abs; break; - - case Hexagon::BI__builtin_HEXAGON_A2_abssat: - ID = Intrinsic::hexagon_A2_abssat; break; - - case Hexagon::BI__builtin_HEXAGON_A2_vconj: - ID = Intrinsic::hexagon_A2_vconj; break; - - case Hexagon::BI__builtin_HEXAGON_A2_negp: - ID = Intrinsic::hexagon_A2_negp; break; - - case Hexagon::BI__builtin_HEXAGON_A2_absp: - ID = Intrinsic::hexagon_A2_absp; break; - - case Hexagon::BI__builtin_HEXAGON_A2_max: - ID = Intrinsic::hexagon_A2_max; break; - - case Hexagon::BI__builtin_HEXAGON_A2_maxu: - ID = Intrinsic::hexagon_A2_maxu; break; - - case Hexagon::BI__builtin_HEXAGON_A2_min: - ID = Intrinsic::hexagon_A2_min; break; - - case Hexagon::BI__builtin_HEXAGON_A2_minu: - ID = Intrinsic::hexagon_A2_minu; break; - - case Hexagon::BI__builtin_HEXAGON_A2_maxp: - ID = Intrinsic::hexagon_A2_maxp; break; - - case Hexagon::BI__builtin_HEXAGON_A2_maxup: - ID = Intrinsic::hexagon_A2_maxup; break; - - case Hexagon::BI__builtin_HEXAGON_A2_minp: - ID = Intrinsic::hexagon_A2_minp; break; - - case Hexagon::BI__builtin_HEXAGON_A2_minup: - ID = Intrinsic::hexagon_A2_minup; break; - - case Hexagon::BI__builtin_HEXAGON_A2_tfr: - ID = Intrinsic::hexagon_A2_tfr; break; - - case Hexagon::BI__builtin_HEXAGON_A2_tfrsi: - ID = Intrinsic::hexagon_A2_tfrsi; break; - - case Hexagon::BI__builtin_HEXAGON_A2_tfrp: - ID = Intrinsic::hexagon_A2_tfrp; break; - - case Hexagon::BI__builtin_HEXAGON_A2_tfrpi: - ID = Intrinsic::hexagon_A2_tfrpi; break; - - case Hexagon::BI__builtin_HEXAGON_A2_zxtb: - ID = Intrinsic::hexagon_A2_zxtb; break; - - case Hexagon::BI__builtin_HEXAGON_A2_sxtb: - ID = Intrinsic::hexagon_A2_sxtb; break; - - case Hexagon::BI__builtin_HEXAGON_A2_zxth: - ID = Intrinsic::hexagon_A2_zxth; break; - - case Hexagon::BI__builtin_HEXAGON_A2_sxth: - ID = Intrinsic::hexagon_A2_sxth; break; - - case Hexagon::BI__builtin_HEXAGON_A2_combinew: - ID = Intrinsic::hexagon_A2_combinew; break; - - case Hexagon::BI__builtin_HEXAGON_A2_combineii: - ID = Intrinsic::hexagon_A2_combineii; break; - - case Hexagon::BI__builtin_HEXAGON_A2_combine_hh: - ID = Intrinsic::hexagon_A2_combine_hh; break; - - case Hexagon::BI__builtin_HEXAGON_A2_combine_hl: - ID = Intrinsic::hexagon_A2_combine_hl; break; - - case Hexagon::BI__builtin_HEXAGON_A2_combine_lh: - ID = Intrinsic::hexagon_A2_combine_lh; break; - - case Hexagon::BI__builtin_HEXAGON_A2_combine_ll: - ID = Intrinsic::hexagon_A2_combine_ll; break; - - case Hexagon::BI__builtin_HEXAGON_A2_tfril: - ID = Intrinsic::hexagon_A2_tfril; break; - - case Hexagon::BI__builtin_HEXAGON_A2_tfrih: - ID = Intrinsic::hexagon_A2_tfrih; break; - - case Hexagon::BI__builtin_HEXAGON_A2_and: - ID = Intrinsic::hexagon_A2_and; break; - - case Hexagon::BI__builtin_HEXAGON_A2_or: - ID = Intrinsic::hexagon_A2_or; break; - - case Hexagon::BI__builtin_HEXAGON_A2_xor: - ID = Intrinsic::hexagon_A2_xor; break; - - case Hexagon::BI__builtin_HEXAGON_A2_not: - ID = Intrinsic::hexagon_A2_not; break; - - case Hexagon::BI__builtin_HEXAGON_M2_xor_xacc: - ID = Intrinsic::hexagon_M2_xor_xacc; break; - - case Hexagon::BI__builtin_HEXAGON_A2_subri: - ID = Intrinsic::hexagon_A2_subri; break; - - case Hexagon::BI__builtin_HEXAGON_A2_andir: - ID = Intrinsic::hexagon_A2_andir; break; - - case Hexagon::BI__builtin_HEXAGON_A2_orir: - ID = Intrinsic::hexagon_A2_orir; break; - - case Hexagon::BI__builtin_HEXAGON_A2_andp: - ID = Intrinsic::hexagon_A2_andp; break; - - case Hexagon::BI__builtin_HEXAGON_A2_orp: - ID = Intrinsic::hexagon_A2_orp; break; - - case Hexagon::BI__builtin_HEXAGON_A2_xorp: - ID = Intrinsic::hexagon_A2_xorp; break; - - case Hexagon::BI__builtin_HEXAGON_A2_notp: - ID = Intrinsic::hexagon_A2_notp; break; - - case Hexagon::BI__builtin_HEXAGON_A2_sxtw: - ID = Intrinsic::hexagon_A2_sxtw; break; - - case Hexagon::BI__builtin_HEXAGON_A2_sat: - ID = Intrinsic::hexagon_A2_sat; break; - - case Hexagon::BI__builtin_HEXAGON_A2_sath: - ID = Intrinsic::hexagon_A2_sath; break; - - case Hexagon::BI__builtin_HEXAGON_A2_satuh: - ID = Intrinsic::hexagon_A2_satuh; break; - - case Hexagon::BI__builtin_HEXAGON_A2_satub: - ID = Intrinsic::hexagon_A2_satub; break; - - case Hexagon::BI__builtin_HEXAGON_A2_satb: - ID = Intrinsic::hexagon_A2_satb; break; - - case Hexagon::BI__builtin_HEXAGON_A2_vaddub: - ID = Intrinsic::hexagon_A2_vaddub; break; - - case Hexagon::BI__builtin_HEXAGON_A2_vaddubs: - ID = Intrinsic::hexagon_A2_vaddubs; break; - - case Hexagon::BI__builtin_HEXAGON_A2_vaddh: - ID = Intrinsic::hexagon_A2_vaddh; break; - - case Hexagon::BI__builtin_HEXAGON_A2_vaddhs: - ID = Intrinsic::hexagon_A2_vaddhs; break; - - case Hexagon::BI__builtin_HEXAGON_A2_vadduhs: - ID = Intrinsic::hexagon_A2_vadduhs; break; - - case Hexagon::BI__builtin_HEXAGON_A2_vaddw: - ID = Intrinsic::hexagon_A2_vaddw; break; - - case Hexagon::BI__builtin_HEXAGON_A2_vaddws: - ID = Intrinsic::hexagon_A2_vaddws; break; - - case Hexagon::BI__builtin_HEXAGON_A2_svavgh: - ID = Intrinsic::hexagon_A2_svavgh; break; - - case Hexagon::BI__builtin_HEXAGON_A2_svavghs: - ID = Intrinsic::hexagon_A2_svavghs; break; - - case Hexagon::BI__builtin_HEXAGON_A2_svnavgh: - ID = Intrinsic::hexagon_A2_svnavgh; break; - - case Hexagon::BI__builtin_HEXAGON_A2_svaddh: - ID = Intrinsic::hexagon_A2_svaddh; break; - - case Hexagon::BI__builtin_HEXAGON_A2_svaddhs: - ID = Intrinsic::hexagon_A2_svaddhs; break; - - case Hexagon::BI__builtin_HEXAGON_A2_svadduhs: - ID = Intrinsic::hexagon_A2_svadduhs; break; - - case Hexagon::BI__builtin_HEXAGON_A2_svsubh: - ID = Intrinsic::hexagon_A2_svsubh; break; - - case Hexagon::BI__builtin_HEXAGON_A2_svsubhs: - ID = Intrinsic::hexagon_A2_svsubhs; break; - - case Hexagon::BI__builtin_HEXAGON_A2_svsubuhs: - ID = Intrinsic::hexagon_A2_svsubuhs; break; - - case Hexagon::BI__builtin_HEXAGON_A2_vraddub: - ID = Intrinsic::hexagon_A2_vraddub; break; - - case Hexagon::BI__builtin_HEXAGON_A2_vraddub_acc: - ID = Intrinsic::hexagon_A2_vraddub_acc; break; - - case Hexagon::BI__builtin_HEXAGON_M2_vradduh: - ID = Intrinsic::hexagon_M2_vradduh; break; - - case Hexagon::BI__builtin_HEXAGON_A2_vsubub: - ID = Intrinsic::hexagon_A2_vsubub; break; - - case Hexagon::BI__builtin_HEXAGON_A2_vsububs: - ID = Intrinsic::hexagon_A2_vsububs; break; - - case Hexagon::BI__builtin_HEXAGON_A2_vsubh: - ID = Intrinsic::hexagon_A2_vsubh; break; - - case Hexagon::BI__builtin_HEXAGON_A2_vsubhs: - ID = Intrinsic::hexagon_A2_vsubhs; break; - - case Hexagon::BI__builtin_HEXAGON_A2_vsubuhs: - ID = Intrinsic::hexagon_A2_vsubuhs; break; - - case Hexagon::BI__builtin_HEXAGON_A2_vsubw: - ID = Intrinsic::hexagon_A2_vsubw; break; - - case Hexagon::BI__builtin_HEXAGON_A2_vsubws: - ID = Intrinsic::hexagon_A2_vsubws; break; - - case Hexagon::BI__builtin_HEXAGON_A2_vabsh: - ID = Intrinsic::hexagon_A2_vabsh; break; - - case Hexagon::BI__builtin_HEXAGON_A2_vabshsat: - ID = Intrinsic::hexagon_A2_vabshsat; break; - - case Hexagon::BI__builtin_HEXAGON_A2_vabsw: - ID = Intrinsic::hexagon_A2_vabsw; break; - - case Hexagon::BI__builtin_HEXAGON_A2_vabswsat: - ID = Intrinsic::hexagon_A2_vabswsat; break; - - case Hexagon::BI__builtin_HEXAGON_M2_vabsdiffw: - ID = Intrinsic::hexagon_M2_vabsdiffw; break; - - case Hexagon::BI__builtin_HEXAGON_M2_vabsdiffh: - ID = Intrinsic::hexagon_M2_vabsdiffh; break; - - case Hexagon::BI__builtin_HEXAGON_A2_vrsadub: - ID = Intrinsic::hexagon_A2_vrsadub; break; - - case Hexagon::BI__builtin_HEXAGON_A2_vrsadub_acc: - ID = Intrinsic::hexagon_A2_vrsadub_acc; break; - - case Hexagon::BI__builtin_HEXAGON_A2_vavgub: - ID = Intrinsic::hexagon_A2_vavgub; break; - - case Hexagon::BI__builtin_HEXAGON_A2_vavguh: - ID = Intrinsic::hexagon_A2_vavguh; break; - - case Hexagon::BI__builtin_HEXAGON_A2_vavgh: - ID = Intrinsic::hexagon_A2_vavgh; break; - - case Hexagon::BI__builtin_HEXAGON_A2_vnavgh: - ID = Intrinsic::hexagon_A2_vnavgh; break; - - case Hexagon::BI__builtin_HEXAGON_A2_vavgw: - ID = Intrinsic::hexagon_A2_vavgw; break; - - case Hexagon::BI__builtin_HEXAGON_A2_vnavgw: - ID = Intrinsic::hexagon_A2_vnavgw; break; - - case Hexagon::BI__builtin_HEXAGON_A2_vavgwr: - ID = Intrinsic::hexagon_A2_vavgwr; break; - - case Hexagon::BI__builtin_HEXAGON_A2_vnavgwr: - ID = Intrinsic::hexagon_A2_vnavgwr; break; - - case Hexagon::BI__builtin_HEXAGON_A2_vavgwcr: - ID = Intrinsic::hexagon_A2_vavgwcr; break; - - case Hexagon::BI__builtin_HEXAGON_A2_vnavgwcr: - ID = Intrinsic::hexagon_A2_vnavgwcr; break; - - case Hexagon::BI__builtin_HEXAGON_A2_vavghcr: - ID = Intrinsic::hexagon_A2_vavghcr; break; - - case Hexagon::BI__builtin_HEXAGON_A2_vnavghcr: - ID = Intrinsic::hexagon_A2_vnavghcr; break; - - case Hexagon::BI__builtin_HEXAGON_A2_vavguw: - ID = Intrinsic::hexagon_A2_vavguw; break; - - case Hexagon::BI__builtin_HEXAGON_A2_vavguwr: - ID = Intrinsic::hexagon_A2_vavguwr; break; - - case Hexagon::BI__builtin_HEXAGON_A2_vavgubr: - ID = Intrinsic::hexagon_A2_vavgubr; break; - - case Hexagon::BI__builtin_HEXAGON_A2_vavguhr: - ID = Intrinsic::hexagon_A2_vavguhr; break; - - case Hexagon::BI__builtin_HEXAGON_A2_vavghr: - ID = Intrinsic::hexagon_A2_vavghr; break; - - case Hexagon::BI__builtin_HEXAGON_A2_vnavghr: - ID = Intrinsic::hexagon_A2_vnavghr; break; - - case Hexagon::BI__builtin_HEXAGON_A2_vminh: - ID = Intrinsic::hexagon_A2_vminh; break; - - case Hexagon::BI__builtin_HEXAGON_A2_vmaxh: - ID = Intrinsic::hexagon_A2_vmaxh; break; - - case Hexagon::BI__builtin_HEXAGON_A2_vminub: - ID = Intrinsic::hexagon_A2_vminub; break; - - case Hexagon::BI__builtin_HEXAGON_A2_vmaxub: - ID = Intrinsic::hexagon_A2_vmaxub; break; - - case Hexagon::BI__builtin_HEXAGON_A2_vminuh: - ID = Intrinsic::hexagon_A2_vminuh; break; - - case Hexagon::BI__builtin_HEXAGON_A2_vmaxuh: - ID = Intrinsic::hexagon_A2_vmaxuh; break; - - case Hexagon::BI__builtin_HEXAGON_A2_vminw: - ID = Intrinsic::hexagon_A2_vminw; break; - - case Hexagon::BI__builtin_HEXAGON_A2_vmaxw: - ID = Intrinsic::hexagon_A2_vmaxw; break; - - case Hexagon::BI__builtin_HEXAGON_A2_vminuw: - ID = Intrinsic::hexagon_A2_vminuw; break; - - case Hexagon::BI__builtin_HEXAGON_A2_vmaxuw: - ID = Intrinsic::hexagon_A2_vmaxuw; break; - - case Hexagon::BI__builtin_HEXAGON_S2_asr_r_r: - ID = Intrinsic::hexagon_S2_asr_r_r; break; - - case Hexagon::BI__builtin_HEXAGON_S2_asl_r_r: - ID = Intrinsic::hexagon_S2_asl_r_r; break; - - case Hexagon::BI__builtin_HEXAGON_S2_lsr_r_r: - ID = Intrinsic::hexagon_S2_lsr_r_r; break; - - case Hexagon::BI__builtin_HEXAGON_S2_lsl_r_r: - ID = Intrinsic::hexagon_S2_lsl_r_r; break; - - case Hexagon::BI__builtin_HEXAGON_S2_asr_r_p: - ID = Intrinsic::hexagon_S2_asr_r_p; break; - - case Hexagon::BI__builtin_HEXAGON_S2_asl_r_p: - ID = Intrinsic::hexagon_S2_asl_r_p; break; - - case Hexagon::BI__builtin_HEXAGON_S2_lsr_r_p: - ID = Intrinsic::hexagon_S2_lsr_r_p; break; - - case Hexagon::BI__builtin_HEXAGON_S2_lsl_r_p: - ID = Intrinsic::hexagon_S2_lsl_r_p; break; - - case Hexagon::BI__builtin_HEXAGON_S2_asr_r_r_acc: - ID = Intrinsic::hexagon_S2_asr_r_r_acc; break; - - case Hexagon::BI__builtin_HEXAGON_S2_asl_r_r_acc: - ID = Intrinsic::hexagon_S2_asl_r_r_acc; break; - - case Hexagon::BI__builtin_HEXAGON_S2_lsr_r_r_acc: - ID = Intrinsic::hexagon_S2_lsr_r_r_acc; break; - - case Hexagon::BI__builtin_HEXAGON_S2_lsl_r_r_acc: - ID = Intrinsic::hexagon_S2_lsl_r_r_acc; break; - - case Hexagon::BI__builtin_HEXAGON_S2_asr_r_p_acc: - ID = Intrinsic::hexagon_S2_asr_r_p_acc; break; - - case Hexagon::BI__builtin_HEXAGON_S2_asl_r_p_acc: - ID = Intrinsic::hexagon_S2_asl_r_p_acc; break; - - case Hexagon::BI__builtin_HEXAGON_S2_lsr_r_p_acc: - ID = Intrinsic::hexagon_S2_lsr_r_p_acc; break; - - case Hexagon::BI__builtin_HEXAGON_S2_lsl_r_p_acc: - ID = Intrinsic::hexagon_S2_lsl_r_p_acc; break; - - case Hexagon::BI__builtin_HEXAGON_S2_asr_r_r_nac: - ID = Intrinsic::hexagon_S2_asr_r_r_nac; break; - - case Hexagon::BI__builtin_HEXAGON_S2_asl_r_r_nac: - ID = Intrinsic::hexagon_S2_asl_r_r_nac; break; - - case Hexagon::BI__builtin_HEXAGON_S2_lsr_r_r_nac: - ID = Intrinsic::hexagon_S2_lsr_r_r_nac; break; - - case Hexagon::BI__builtin_HEXAGON_S2_lsl_r_r_nac: - ID = Intrinsic::hexagon_S2_lsl_r_r_nac; break; - - case Hexagon::BI__builtin_HEXAGON_S2_asr_r_p_nac: - ID = Intrinsic::hexagon_S2_asr_r_p_nac; break; - - case Hexagon::BI__builtin_HEXAGON_S2_asl_r_p_nac: - ID = Intrinsic::hexagon_S2_asl_r_p_nac; break; - - case Hexagon::BI__builtin_HEXAGON_S2_lsr_r_p_nac: - ID = Intrinsic::hexagon_S2_lsr_r_p_nac; break; - - case Hexagon::BI__builtin_HEXAGON_S2_lsl_r_p_nac: - ID = Intrinsic::hexagon_S2_lsl_r_p_nac; break; - - case Hexagon::BI__builtin_HEXAGON_S2_asr_r_r_and: - ID = Intrinsic::hexagon_S2_asr_r_r_and; break; - - case Hexagon::BI__builtin_HEXAGON_S2_asl_r_r_and: - ID = Intrinsic::hexagon_S2_asl_r_r_and; break; - - case Hexagon::BI__builtin_HEXAGON_S2_lsr_r_r_and: - ID = Intrinsic::hexagon_S2_lsr_r_r_and; break; - - case Hexagon::BI__builtin_HEXAGON_S2_lsl_r_r_and: - ID = Intrinsic::hexagon_S2_lsl_r_r_and; break; - - case Hexagon::BI__builtin_HEXAGON_S2_asr_r_r_or: - ID = Intrinsic::hexagon_S2_asr_r_r_or; break; - - case Hexagon::BI__builtin_HEXAGON_S2_asl_r_r_or: - ID = Intrinsic::hexagon_S2_asl_r_r_or; break; - - case Hexagon::BI__builtin_HEXAGON_S2_lsr_r_r_or: - ID = Intrinsic::hexagon_S2_lsr_r_r_or; break; - - case Hexagon::BI__builtin_HEXAGON_S2_lsl_r_r_or: - ID = Intrinsic::hexagon_S2_lsl_r_r_or; break; - - case Hexagon::BI__builtin_HEXAGON_S2_asr_r_p_and: - ID = Intrinsic::hexagon_S2_asr_r_p_and; break; - - case Hexagon::BI__builtin_HEXAGON_S2_asl_r_p_and: - ID = Intrinsic::hexagon_S2_asl_r_p_and; break; - - case Hexagon::BI__builtin_HEXAGON_S2_lsr_r_p_and: - ID = Intrinsic::hexagon_S2_lsr_r_p_and; break; - - case Hexagon::BI__builtin_HEXAGON_S2_lsl_r_p_and: - ID = Intrinsic::hexagon_S2_lsl_r_p_and; break; - - case Hexagon::BI__builtin_HEXAGON_S2_asr_r_p_or: - ID = Intrinsic::hexagon_S2_asr_r_p_or; break; - - case Hexagon::BI__builtin_HEXAGON_S2_asl_r_p_or: - ID = Intrinsic::hexagon_S2_asl_r_p_or; break; - - case Hexagon::BI__builtin_HEXAGON_S2_lsr_r_p_or: - ID = Intrinsic::hexagon_S2_lsr_r_p_or; break; - - case Hexagon::BI__builtin_HEXAGON_S2_lsl_r_p_or: - ID = Intrinsic::hexagon_S2_lsl_r_p_or; break; - - case Hexagon::BI__builtin_HEXAGON_S2_asr_r_r_sat: - ID = Intrinsic::hexagon_S2_asr_r_r_sat; break; - - case Hexagon::BI__builtin_HEXAGON_S2_asl_r_r_sat: - ID = Intrinsic::hexagon_S2_asl_r_r_sat; break; - - case Hexagon::BI__builtin_HEXAGON_S2_asr_i_r: - ID = Intrinsic::hexagon_S2_asr_i_r; break; - - case Hexagon::BI__builtin_HEXAGON_S2_lsr_i_r: - ID = Intrinsic::hexagon_S2_lsr_i_r; break; - - case Hexagon::BI__builtin_HEXAGON_S2_asl_i_r: - ID = Intrinsic::hexagon_S2_asl_i_r; break; - - case Hexagon::BI__builtin_HEXAGON_S2_asr_i_p: - ID = Intrinsic::hexagon_S2_asr_i_p; break; - - case Hexagon::BI__builtin_HEXAGON_S2_lsr_i_p: - ID = Intrinsic::hexagon_S2_lsr_i_p; break; - - case Hexagon::BI__builtin_HEXAGON_S2_asl_i_p: - ID = Intrinsic::hexagon_S2_asl_i_p; break; - - case Hexagon::BI__builtin_HEXAGON_S2_asr_i_r_acc: - ID = Intrinsic::hexagon_S2_asr_i_r_acc; break; - - case Hexagon::BI__builtin_HEXAGON_S2_lsr_i_r_acc: - ID = Intrinsic::hexagon_S2_lsr_i_r_acc; break; - - case Hexagon::BI__builtin_HEXAGON_S2_asl_i_r_acc: - ID = Intrinsic::hexagon_S2_asl_i_r_acc; break; - - case Hexagon::BI__builtin_HEXAGON_S2_asr_i_p_acc: - ID = Intrinsic::hexagon_S2_asr_i_p_acc; break; - - case Hexagon::BI__builtin_HEXAGON_S2_lsr_i_p_acc: - ID = Intrinsic::hexagon_S2_lsr_i_p_acc; break; - - case Hexagon::BI__builtin_HEXAGON_S2_asl_i_p_acc: - ID = Intrinsic::hexagon_S2_asl_i_p_acc; break; - - case Hexagon::BI__builtin_HEXAGON_S2_asr_i_r_nac: - ID = Intrinsic::hexagon_S2_asr_i_r_nac; break; - - case Hexagon::BI__builtin_HEXAGON_S2_lsr_i_r_nac: - ID = Intrinsic::hexagon_S2_lsr_i_r_nac; break; - - case Hexagon::BI__builtin_HEXAGON_S2_asl_i_r_nac: - ID = Intrinsic::hexagon_S2_asl_i_r_nac; break; - - case Hexagon::BI__builtin_HEXAGON_S2_asr_i_p_nac: - ID = Intrinsic::hexagon_S2_asr_i_p_nac; break; - - case Hexagon::BI__builtin_HEXAGON_S2_lsr_i_p_nac: - ID = Intrinsic::hexagon_S2_lsr_i_p_nac; break; - - case Hexagon::BI__builtin_HEXAGON_S2_asl_i_p_nac: - ID = Intrinsic::hexagon_S2_asl_i_p_nac; break; - - case Hexagon::BI__builtin_HEXAGON_S2_lsr_i_r_xacc: - ID = Intrinsic::hexagon_S2_lsr_i_r_xacc; break; - - case Hexagon::BI__builtin_HEXAGON_S2_asl_i_r_xacc: - ID = Intrinsic::hexagon_S2_asl_i_r_xacc; break; - - case Hexagon::BI__builtin_HEXAGON_S2_lsr_i_p_xacc: - ID = Intrinsic::hexagon_S2_lsr_i_p_xacc; break; - - case Hexagon::BI__builtin_HEXAGON_S2_asl_i_p_xacc: - ID = Intrinsic::hexagon_S2_asl_i_p_xacc; break; - - case Hexagon::BI__builtin_HEXAGON_S2_asr_i_r_and: - ID = Intrinsic::hexagon_S2_asr_i_r_and; break; - - case Hexagon::BI__builtin_HEXAGON_S2_lsr_i_r_and: - ID = Intrinsic::hexagon_S2_lsr_i_r_and; break; - - case Hexagon::BI__builtin_HEXAGON_S2_asl_i_r_and: - ID = Intrinsic::hexagon_S2_asl_i_r_and; break; - - case Hexagon::BI__builtin_HEXAGON_S2_asr_i_r_or: - ID = Intrinsic::hexagon_S2_asr_i_r_or; break; - - case Hexagon::BI__builtin_HEXAGON_S2_lsr_i_r_or: - ID = Intrinsic::hexagon_S2_lsr_i_r_or; break; - - case Hexagon::BI__builtin_HEXAGON_S2_asl_i_r_or: - ID = Intrinsic::hexagon_S2_asl_i_r_or; break; - - case Hexagon::BI__builtin_HEXAGON_S2_asr_i_p_and: - ID = Intrinsic::hexagon_S2_asr_i_p_and; break; - - case Hexagon::BI__builtin_HEXAGON_S2_lsr_i_p_and: - ID = Intrinsic::hexagon_S2_lsr_i_p_and; break; - - case Hexagon::BI__builtin_HEXAGON_S2_asl_i_p_and: - ID = Intrinsic::hexagon_S2_asl_i_p_and; break; - - case Hexagon::BI__builtin_HEXAGON_S2_asr_i_p_or: - ID = Intrinsic::hexagon_S2_asr_i_p_or; break; - - case Hexagon::BI__builtin_HEXAGON_S2_lsr_i_p_or: - ID = Intrinsic::hexagon_S2_lsr_i_p_or; break; - - case Hexagon::BI__builtin_HEXAGON_S2_asl_i_p_or: - ID = Intrinsic::hexagon_S2_asl_i_p_or; break; - - case Hexagon::BI__builtin_HEXAGON_S2_asl_i_r_sat: - ID = Intrinsic::hexagon_S2_asl_i_r_sat; break; - - case Hexagon::BI__builtin_HEXAGON_S2_asr_i_r_rnd: - ID = Intrinsic::hexagon_S2_asr_i_r_rnd; break; - - case Hexagon::BI__builtin_HEXAGON_S2_asr_i_r_rnd_goodsyntax: - ID = Intrinsic::hexagon_S2_asr_i_r_rnd_goodsyntax; break; - - case Hexagon::BI__builtin_HEXAGON_S2_addasl_rrri: - ID = Intrinsic::hexagon_S2_addasl_rrri; break; - - case Hexagon::BI__builtin_HEXAGON_S2_valignib: - ID = Intrinsic::hexagon_S2_valignib; break; - - case Hexagon::BI__builtin_HEXAGON_S2_valignrb: - ID = Intrinsic::hexagon_S2_valignrb; break; - - case Hexagon::BI__builtin_HEXAGON_S2_vspliceib: - ID = Intrinsic::hexagon_S2_vspliceib; break; - - case Hexagon::BI__builtin_HEXAGON_S2_vsplicerb: - ID = Intrinsic::hexagon_S2_vsplicerb; break; - - case Hexagon::BI__builtin_HEXAGON_S2_vsplatrh: - ID = Intrinsic::hexagon_S2_vsplatrh; break; - - case Hexagon::BI__builtin_HEXAGON_S2_vsplatrb: - ID = Intrinsic::hexagon_S2_vsplatrb; break; - - case Hexagon::BI__builtin_HEXAGON_S2_insert: - ID = Intrinsic::hexagon_S2_insert; break; - - case Hexagon::BI__builtin_HEXAGON_S2_tableidxb_goodsyntax: - ID = Intrinsic::hexagon_S2_tableidxb_goodsyntax; break; - - case Hexagon::BI__builtin_HEXAGON_S2_tableidxh_goodsyntax: - ID = Intrinsic::hexagon_S2_tableidxh_goodsyntax; break; - - case Hexagon::BI__builtin_HEXAGON_S2_tableidxw_goodsyntax: - ID = Intrinsic::hexagon_S2_tableidxw_goodsyntax; break; - - case Hexagon::BI__builtin_HEXAGON_S2_tableidxd_goodsyntax: - ID = Intrinsic::hexagon_S2_tableidxd_goodsyntax; break; - - case Hexagon::BI__builtin_HEXAGON_S2_extractu: - ID = Intrinsic::hexagon_S2_extractu; break; - - case Hexagon::BI__builtin_HEXAGON_S2_insertp: - ID = Intrinsic::hexagon_S2_insertp; break; - - case Hexagon::BI__builtin_HEXAGON_S2_extractup: - ID = Intrinsic::hexagon_S2_extractup; break; - - case Hexagon::BI__builtin_HEXAGON_S2_insert_rp: - ID = Intrinsic::hexagon_S2_insert_rp; break; - - case Hexagon::BI__builtin_HEXAGON_S2_extractu_rp: - ID = Intrinsic::hexagon_S2_extractu_rp; break; - - case Hexagon::BI__builtin_HEXAGON_S2_insertp_rp: - ID = Intrinsic::hexagon_S2_insertp_rp; break; - - case Hexagon::BI__builtin_HEXAGON_S2_extractup_rp: - ID = Intrinsic::hexagon_S2_extractup_rp; break; - - case Hexagon::BI__builtin_HEXAGON_S2_tstbit_i: - ID = Intrinsic::hexagon_S2_tstbit_i; break; - - case Hexagon::BI__builtin_HEXAGON_S2_setbit_i: - ID = Intrinsic::hexagon_S2_setbit_i; break; - - case Hexagon::BI__builtin_HEXAGON_S2_togglebit_i: - ID = Intrinsic::hexagon_S2_togglebit_i; break; - - case Hexagon::BI__builtin_HEXAGON_S2_clrbit_i: - ID = Intrinsic::hexagon_S2_clrbit_i; break; - - case Hexagon::BI__builtin_HEXAGON_S2_tstbit_r: - ID = Intrinsic::hexagon_S2_tstbit_r; break; - - case Hexagon::BI__builtin_HEXAGON_S2_setbit_r: - ID = Intrinsic::hexagon_S2_setbit_r; break; - - case Hexagon::BI__builtin_HEXAGON_S2_togglebit_r: - ID = Intrinsic::hexagon_S2_togglebit_r; break; - - case Hexagon::BI__builtin_HEXAGON_S2_clrbit_r: - ID = Intrinsic::hexagon_S2_clrbit_r; break; - - case Hexagon::BI__builtin_HEXAGON_S2_asr_i_vh: - ID = Intrinsic::hexagon_S2_asr_i_vh; break; - - case Hexagon::BI__builtin_HEXAGON_S2_lsr_i_vh: - ID = Intrinsic::hexagon_S2_lsr_i_vh; break; - - case Hexagon::BI__builtin_HEXAGON_S2_asl_i_vh: - ID = Intrinsic::hexagon_S2_asl_i_vh; break; - - case Hexagon::BI__builtin_HEXAGON_S2_asr_r_vh: - ID = Intrinsic::hexagon_S2_asr_r_vh; break; - - case Hexagon::BI__builtin_HEXAGON_S2_asl_r_vh: - ID = Intrinsic::hexagon_S2_asl_r_vh; break; - - case Hexagon::BI__builtin_HEXAGON_S2_lsr_r_vh: - ID = Intrinsic::hexagon_S2_lsr_r_vh; break; - - case Hexagon::BI__builtin_HEXAGON_S2_lsl_r_vh: - ID = Intrinsic::hexagon_S2_lsl_r_vh; break; - - case Hexagon::BI__builtin_HEXAGON_S2_asr_i_vw: - ID = Intrinsic::hexagon_S2_asr_i_vw; break; - - case Hexagon::BI__builtin_HEXAGON_S2_asr_i_svw_trun: - ID = Intrinsic::hexagon_S2_asr_i_svw_trun; break; - - case Hexagon::BI__builtin_HEXAGON_S2_asr_r_svw_trun: - ID = Intrinsic::hexagon_S2_asr_r_svw_trun; break; - - case Hexagon::BI__builtin_HEXAGON_S2_lsr_i_vw: - ID = Intrinsic::hexagon_S2_lsr_i_vw; break; - - case Hexagon::BI__builtin_HEXAGON_S2_asl_i_vw: - ID = Intrinsic::hexagon_S2_asl_i_vw; break; - - case Hexagon::BI__builtin_HEXAGON_S2_asr_r_vw: - ID = Intrinsic::hexagon_S2_asr_r_vw; break; - - case Hexagon::BI__builtin_HEXAGON_S2_asl_r_vw: - ID = Intrinsic::hexagon_S2_asl_r_vw; break; - - case Hexagon::BI__builtin_HEXAGON_S2_lsr_r_vw: - ID = Intrinsic::hexagon_S2_lsr_r_vw; break; - - case Hexagon::BI__builtin_HEXAGON_S2_lsl_r_vw: - ID = Intrinsic::hexagon_S2_lsl_r_vw; break; - - case Hexagon::BI__builtin_HEXAGON_S2_vrndpackwh: - ID = Intrinsic::hexagon_S2_vrndpackwh; break; - - case Hexagon::BI__builtin_HEXAGON_S2_vrndpackwhs: - ID = Intrinsic::hexagon_S2_vrndpackwhs; break; - - case Hexagon::BI__builtin_HEXAGON_S2_vsxtbh: - ID = Intrinsic::hexagon_S2_vsxtbh; break; - - case Hexagon::BI__builtin_HEXAGON_S2_vzxtbh: - ID = Intrinsic::hexagon_S2_vzxtbh; break; - - case Hexagon::BI__builtin_HEXAGON_S2_vsathub: - ID = Intrinsic::hexagon_S2_vsathub; break; - - case Hexagon::BI__builtin_HEXAGON_S2_svsathub: - ID = Intrinsic::hexagon_S2_svsathub; break; - - case Hexagon::BI__builtin_HEXAGON_S2_svsathb: - ID = Intrinsic::hexagon_S2_svsathb; break; - - case Hexagon::BI__builtin_HEXAGON_S2_vsathb: - ID = Intrinsic::hexagon_S2_vsathb; break; - - case Hexagon::BI__builtin_HEXAGON_S2_vtrunohb: - ID = Intrinsic::hexagon_S2_vtrunohb; break; - - case Hexagon::BI__builtin_HEXAGON_S2_vtrunewh: - ID = Intrinsic::hexagon_S2_vtrunewh; break; - - case Hexagon::BI__builtin_HEXAGON_S2_vtrunowh: - ID = Intrinsic::hexagon_S2_vtrunowh; break; - - case Hexagon::BI__builtin_HEXAGON_S2_vtrunehb: - ID = Intrinsic::hexagon_S2_vtrunehb; break; - - case Hexagon::BI__builtin_HEXAGON_S2_vsxthw: - ID = Intrinsic::hexagon_S2_vsxthw; break; - - case Hexagon::BI__builtin_HEXAGON_S2_vzxthw: - ID = Intrinsic::hexagon_S2_vzxthw; break; - - case Hexagon::BI__builtin_HEXAGON_S2_vsatwh: - ID = Intrinsic::hexagon_S2_vsatwh; break; - - case Hexagon::BI__builtin_HEXAGON_S2_vsatwuh: - ID = Intrinsic::hexagon_S2_vsatwuh; break; - - case Hexagon::BI__builtin_HEXAGON_S2_packhl: - ID = Intrinsic::hexagon_S2_packhl; break; - - case Hexagon::BI__builtin_HEXAGON_A2_swiz: - ID = Intrinsic::hexagon_A2_swiz; break; - - case Hexagon::BI__builtin_HEXAGON_S2_vsathub_nopack: - ID = Intrinsic::hexagon_S2_vsathub_nopack; break; - - case Hexagon::BI__builtin_HEXAGON_S2_vsathb_nopack: - ID = Intrinsic::hexagon_S2_vsathb_nopack; break; - - case Hexagon::BI__builtin_HEXAGON_S2_vsatwh_nopack: - ID = Intrinsic::hexagon_S2_vsatwh_nopack; break; - - case Hexagon::BI__builtin_HEXAGON_S2_vsatwuh_nopack: - ID = Intrinsic::hexagon_S2_vsatwuh_nopack; break; - - case Hexagon::BI__builtin_HEXAGON_S2_shuffob: - ID = Intrinsic::hexagon_S2_shuffob; break; - - case Hexagon::BI__builtin_HEXAGON_S2_shuffeb: - ID = Intrinsic::hexagon_S2_shuffeb; break; - - case Hexagon::BI__builtin_HEXAGON_S2_shuffoh: - ID = Intrinsic::hexagon_S2_shuffoh; break; - - case Hexagon::BI__builtin_HEXAGON_S2_shuffeh: - ID = Intrinsic::hexagon_S2_shuffeh; break; - - case Hexagon::BI__builtin_HEXAGON_S2_parityp: - ID = Intrinsic::hexagon_S2_parityp; break; - - case Hexagon::BI__builtin_HEXAGON_S2_lfsp: - ID = Intrinsic::hexagon_S2_lfsp; break; - - case Hexagon::BI__builtin_HEXAGON_S2_clbnorm: - ID = Intrinsic::hexagon_S2_clbnorm; break; - - case Hexagon::BI__builtin_HEXAGON_S2_clb: - ID = Intrinsic::hexagon_S2_clb; break; - - case Hexagon::BI__builtin_HEXAGON_S2_cl0: - ID = Intrinsic::hexagon_S2_cl0; break; - - case Hexagon::BI__builtin_HEXAGON_S2_cl1: - ID = Intrinsic::hexagon_S2_cl1; break; - - case Hexagon::BI__builtin_HEXAGON_S2_clbp: - ID = Intrinsic::hexagon_S2_clbp; break; - - case Hexagon::BI__builtin_HEXAGON_S2_cl0p: - ID = Intrinsic::hexagon_S2_cl0p; break; - - case Hexagon::BI__builtin_HEXAGON_S2_cl1p: - ID = Intrinsic::hexagon_S2_cl1p; break; - - case Hexagon::BI__builtin_HEXAGON_S2_brev: - ID = Intrinsic::hexagon_S2_brev; break; - - case Hexagon::BI__builtin_HEXAGON_S2_ct0: - ID = Intrinsic::hexagon_S2_ct0; break; - - case Hexagon::BI__builtin_HEXAGON_S2_ct1: - ID = Intrinsic::hexagon_S2_ct1; break; - - case Hexagon::BI__builtin_HEXAGON_S2_interleave: - ID = Intrinsic::hexagon_S2_interleave; break; - - case Hexagon::BI__builtin_HEXAGON_S2_deinterleave: - ID = Intrinsic::hexagon_S2_deinterleave; break; - - case Hexagon::BI__builtin_SI_to_SXTHI_asrh: - ID = Intrinsic::hexagon_SI_to_SXTHI_asrh; break; - - case Hexagon::BI__builtin_HEXAGON_A4_orn: - ID = Intrinsic::hexagon_A4_orn; break; - - case Hexagon::BI__builtin_HEXAGON_A4_andn: - ID = Intrinsic::hexagon_A4_andn; break; - - case Hexagon::BI__builtin_HEXAGON_A4_ornp: - ID = Intrinsic::hexagon_A4_ornp; break; - - case Hexagon::BI__builtin_HEXAGON_A4_andnp: - ID = Intrinsic::hexagon_A4_andnp; break; - - case Hexagon::BI__builtin_HEXAGON_A4_combineir: - ID = Intrinsic::hexagon_A4_combineir; break; - - case Hexagon::BI__builtin_HEXAGON_A4_combineri: - ID = Intrinsic::hexagon_A4_combineri; break; - - case Hexagon::BI__builtin_HEXAGON_C4_cmpneqi: - ID = Intrinsic::hexagon_C4_cmpneqi; break; - - case Hexagon::BI__builtin_HEXAGON_C4_cmpneq: - ID = Intrinsic::hexagon_C4_cmpneq; break; - - case Hexagon::BI__builtin_HEXAGON_C4_cmpltei: - ID = Intrinsic::hexagon_C4_cmpltei; break; - - case Hexagon::BI__builtin_HEXAGON_C4_cmplte: - ID = Intrinsic::hexagon_C4_cmplte; break; - - case Hexagon::BI__builtin_HEXAGON_C4_cmplteui: - ID = Intrinsic::hexagon_C4_cmplteui; break; - - case Hexagon::BI__builtin_HEXAGON_C4_cmplteu: - ID = Intrinsic::hexagon_C4_cmplteu; break; - - case Hexagon::BI__builtin_HEXAGON_A4_rcmpneq: - ID = Intrinsic::hexagon_A4_rcmpneq; break; - - case Hexagon::BI__builtin_HEXAGON_A4_rcmpneqi: - ID = Intrinsic::hexagon_A4_rcmpneqi; break; - - case Hexagon::BI__builtin_HEXAGON_A4_rcmpeq: - ID = Intrinsic::hexagon_A4_rcmpeq; break; - - case Hexagon::BI__builtin_HEXAGON_A4_rcmpeqi: - ID = Intrinsic::hexagon_A4_rcmpeqi; break; - - case Hexagon::BI__builtin_HEXAGON_C4_fastcorner9: - ID = Intrinsic::hexagon_C4_fastcorner9; break; - - case Hexagon::BI__builtin_HEXAGON_C4_fastcorner9_not: - ID = Intrinsic::hexagon_C4_fastcorner9_not; break; - - case Hexagon::BI__builtin_HEXAGON_C4_and_andn: - ID = Intrinsic::hexagon_C4_and_andn; break; - - case Hexagon::BI__builtin_HEXAGON_C4_and_and: - ID = Intrinsic::hexagon_C4_and_and; break; - - case Hexagon::BI__builtin_HEXAGON_C4_and_orn: - ID = Intrinsic::hexagon_C4_and_orn; break; - - case Hexagon::BI__builtin_HEXAGON_C4_and_or: - ID = Intrinsic::hexagon_C4_and_or; break; - - case Hexagon::BI__builtin_HEXAGON_C4_or_andn: - ID = Intrinsic::hexagon_C4_or_andn; break; - - case Hexagon::BI__builtin_HEXAGON_C4_or_and: - ID = Intrinsic::hexagon_C4_or_and; break; - - case Hexagon::BI__builtin_HEXAGON_C4_or_orn: - ID = Intrinsic::hexagon_C4_or_orn; break; - - case Hexagon::BI__builtin_HEXAGON_C4_or_or: - ID = Intrinsic::hexagon_C4_or_or; break; - - case Hexagon::BI__builtin_HEXAGON_S4_addaddi: - ID = Intrinsic::hexagon_S4_addaddi; break; - - case Hexagon::BI__builtin_HEXAGON_S4_subaddi: - ID = Intrinsic::hexagon_S4_subaddi; break; - - case Hexagon::BI__builtin_HEXAGON_M4_xor_xacc: - ID = Intrinsic::hexagon_M4_xor_xacc; break; - - case Hexagon::BI__builtin_HEXAGON_M4_and_and: - ID = Intrinsic::hexagon_M4_and_and; break; - - case Hexagon::BI__builtin_HEXAGON_M4_and_or: - ID = Intrinsic::hexagon_M4_and_or; break; - - case Hexagon::BI__builtin_HEXAGON_M4_and_xor: - ID = Intrinsic::hexagon_M4_and_xor; break; - - case Hexagon::BI__builtin_HEXAGON_M4_and_andn: - ID = Intrinsic::hexagon_M4_and_andn; break; - - case Hexagon::BI__builtin_HEXAGON_M4_xor_and: - ID = Intrinsic::hexagon_M4_xor_and; break; - - case Hexagon::BI__builtin_HEXAGON_M4_xor_or: - ID = Intrinsic::hexagon_M4_xor_or; break; - - case Hexagon::BI__builtin_HEXAGON_M4_xor_andn: - ID = Intrinsic::hexagon_M4_xor_andn; break; - - case Hexagon::BI__builtin_HEXAGON_M4_or_and: - ID = Intrinsic::hexagon_M4_or_and; break; - - case Hexagon::BI__builtin_HEXAGON_M4_or_or: - ID = Intrinsic::hexagon_M4_or_or; break; - - case Hexagon::BI__builtin_HEXAGON_M4_or_xor: - ID = Intrinsic::hexagon_M4_or_xor; break; - - case Hexagon::BI__builtin_HEXAGON_M4_or_andn: - ID = Intrinsic::hexagon_M4_or_andn; break; - - case Hexagon::BI__builtin_HEXAGON_S4_or_andix: - ID = Intrinsic::hexagon_S4_or_andix; break; - - case Hexagon::BI__builtin_HEXAGON_S4_or_andi: - ID = Intrinsic::hexagon_S4_or_andi; break; - - case Hexagon::BI__builtin_HEXAGON_S4_or_ori: - ID = Intrinsic::hexagon_S4_or_ori; break; - - case Hexagon::BI__builtin_HEXAGON_A4_modwrapu: - ID = Intrinsic::hexagon_A4_modwrapu; break; - - case Hexagon::BI__builtin_HEXAGON_A4_cround_rr: - ID = Intrinsic::hexagon_A4_cround_rr; break; - - case Hexagon::BI__builtin_HEXAGON_A4_round_ri: - ID = Intrinsic::hexagon_A4_round_ri; break; - - case Hexagon::BI__builtin_HEXAGON_A4_round_rr: - ID = Intrinsic::hexagon_A4_round_rr; break; - - case Hexagon::BI__builtin_HEXAGON_A4_round_ri_sat: - ID = Intrinsic::hexagon_A4_round_ri_sat; break; - - case Hexagon::BI__builtin_HEXAGON_A4_round_rr_sat: - ID = Intrinsic::hexagon_A4_round_rr_sat; break; + case X86::BI__builtin_ia32_rdrand16_step: + case X86::BI__builtin_ia32_rdrand32_step: + case X86::BI__builtin_ia32_rdrand64_step: { + Intrinsic::ID ID; + switch (BuiltinID) { + default: llvm_unreachable("Unsupported intrinsic!"); + case X86::BI__builtin_ia32_rdrand16_step: + ID = Intrinsic::x86_rdrand_16; + break; + case X86::BI__builtin_ia32_rdrand32_step: + ID = Intrinsic::x86_rdrand_32; + break; + case X86::BI__builtin_ia32_rdrand64_step: + ID = Intrinsic::x86_rdrand_64; + break; + } + Value *Call = Builder.CreateCall(CGM.getIntrinsic(ID)); + Builder.CreateStore(Builder.CreateExtractValue(Call, 0), Ops[0]); + return Builder.CreateExtractValue(Call, 1); + } } - - llvm::Function *F = CGM.getIntrinsic(ID); - return Builder.CreateCall(F, Ops, ""); } + Value *CodeGenFunction::EmitPPCBuiltinExpr(unsigned BuiltinID, const CallExpr *E) { SmallVector<Value*, 4> Ops; |