Lines Matching defs:BuiltinID

99                                                      unsigned BuiltinID) {
100 assert(Context.BuiltinInfo.isLibFunction(BuiltinID));
153 F128Builtins.contains(BuiltinID))
154 Name = F128Builtins[BuiltinID];
158 AIXLongDouble64Builtins.contains(BuiltinID))
159 Name = AIXLongDouble64Builtins[BuiltinID];
161 Name = Context.BuiltinInfo.getName(BuiltinID).substr(10);
695 if (unsigned BuiltinID = FD->getBuiltinID()) {
697 switch (BuiltinID) {
1142 static BitTest decodeBitTestBuiltin(unsigned BuiltinID);
1147 BitTest BitTest::decodeBitTestBuiltin(unsigned BuiltinID) {
1148 switch (BuiltinID) {
1256 unsigned BuiltinID,
1261 BitTest BT = BitTest::decodeBitTestBuiltin(BuiltinID);
1332 unsigned BuiltinID,
1340 switch (BuiltinID) {
1477 translateArmToMsvcIntrin(unsigned BuiltinID) {
1479 switch (BuiltinID) {
1623 translateAarch64ToMsvcIntrin(unsigned BuiltinID) {
1625 switch (BuiltinID) {
1777 translateX86ToMsvcIntrin(unsigned BuiltinID) {
1779 switch (BuiltinID) {
1811 Value *CodeGenFunction::EmitMSVCBuiltinExpr(MSVCIntrin BuiltinID,
1813 switch (BuiltinID) {
1840 if (BuiltinID == MSVCIntrin::_BitScanForward) {
2254 unsigned BuiltinID, WidthAndSignedness Op1Info, WidthAndSignedness Op2Info,
2256 return BuiltinID == Builtin::BI__builtin_mul_overflow &&
2295 static bool isSpecialMixedSignMultiply(unsigned BuiltinID,
2299 return BuiltinID == Builtin::BI__builtin_mul_overflow &&
2446 static unsigned mutateLongDoubleBuiltin(unsigned BuiltinID) {
2447 switch (BuiltinID) {
2513 return BuiltinID;
2517 static Value *tryUseTestFPKind(CodeGenFunction &CGF, unsigned BuiltinID,
2522 CGF.getTargetHooks().testFPKind(V, BuiltinID, CGF.Builder, CGF.CGM))
2541 RValue CodeGenFunction::EmitBuiltinExpr(const GlobalDecl GD, unsigned BuiltinID,
2564 BuiltinID = mutateLongDoubleBuiltin(BuiltinID);
2571 FD->hasAttr<AsmLabelAttr>() ? 0 : BuiltinID;
2601 getContext().BuiltinInfo.isConst(BuiltinID);
2608 switch (BuiltinID) {
2626 getContext().BuiltinInfo.isConstWithoutErrnoAndExceptions(BuiltinID);
2628 getContext().BuiltinInfo.isConstWithoutExceptions(BuiltinID);
3107 EmitVAStartEnd(BuiltinID == Builtin::BI__va_start
3110 BuiltinID != Builtin::BI__builtin_va_end);
3564 bool IsDynamic = BuiltinID == Builtin::BI__builtin_dynamic_object_size;
3665 switch (BuiltinID) {
3693 if (Value *Result = tryUseTestFPKind(*this, BuiltinID, V))
3711 if (Value *Result = tryUseTestFPKind(*this, BuiltinID, V))
3727 if (Value *Result = tryUseTestFPKind(*this, BuiltinID, V))
4145 if (BuiltinID != Builtin::BI__builtin_alloca_uninitialized)
4167 if (BuiltinID != Builtin::BI__builtin_alloca_with_align_uninitialized)
4214 if (BuiltinID == Builtin::BImempcpy ||
4215 BuiltinID == Builtin::BI__builtin_mempcpy)
4234 BuiltinID = Builtin::BI__builtin_memchr;
4759 if (BuiltinID == Builtin::BI__atomic_is_lock_free)
4919 if (BuiltinID == Builtin::BI__atomic_signal_fence ||
4920 BuiltinID == Builtin::BI__c11_atomic_signal_fence)
5064 switch (BuiltinID) {
5114 if (isSpecialMixedSignMultiply(BuiltinID, LeftInfo, RightInfo, ResultInfo))
5119 if (isSpecialUnsignedMultiplySignedResult(BuiltinID, LeftInfo, RightInfo,
5134 switch (BuiltinID) {
5218 switch (BuiltinID) {
5313 BuiltinID == Builtin::BI_InterlockedCompareExchangePointer_nf ?
5378 return RValue::get(EmitBitTestIntrinsic(*this, BuiltinID, E));
5412 switch (BuiltinID) {
5436 switch (BuiltinID) {
5455 if (BuiltinID != Builtin::BI__builtin_ptrauth_sign_generic_data &&
5456 BuiltinID != Builtin::BI__builtin_ptrauth_blend_discriminator &&
5552 const char *Name = (BuiltinID == Builtin::BIread_pipe) ? "__read_pipe_2"
5566 const char *Name = (BuiltinID == Builtin::BIread_pipe) ? "__read_pipe_4"
5595 if (BuiltinID == Builtin::BIreserve_read_pipe)
5597 else if (BuiltinID == Builtin::BIreserve_write_pipe)
5599 else if (BuiltinID == Builtin::BIwork_group_reserve_read_pipe)
5601 else if (BuiltinID == Builtin::BIwork_group_reserve_write_pipe)
5603 else if (BuiltinID == Builtin::BIsub_group_reserve_read_pipe)
5635 if (BuiltinID == Builtin::BIcommit_read_pipe)
5637 else if (BuiltinID == Builtin::BIcommit_write_pipe)
5639 else if (BuiltinID == Builtin::BIwork_group_commit_read_pipe)
5641 else if (BuiltinID == Builtin::BIwork_group_commit_write_pipe)
5643 else if (BuiltinID == Builtin::BIsub_group_commit_read_pipe)
5668 if (BuiltinID == Builtin::BIget_pipe_num_packets)
5948 BuiltinID == Builtin::BIget_kernel_max_sub_group_size_for_ndrange
6083 BuiltinID == Builtin::BI__builtin_ms_va_start));
6113 if (getContext().BuiltinInfo.isLibFunction(BuiltinID))
6115 CGM.getBuiltinLibFunction(FD, BuiltinID));
6119 if (getContext().BuiltinInfo.isPredefinedLibFunction(BuiltinID))
6129 if (unsigned VectorWidth = getContext().BuiltinInfo.getRequiredVectorWidth(BuiltinID))
6133 StringRef Name = getContext().BuiltinInfo.getName(BuiltinID);
6156 getContext().GetBuiltinType(BuiltinID, Error, &ICEArguments);
6233 if (Value *V = EmitTargetBuiltinExpr(BuiltinID, E, ReturnValue)) {
6249 if (Value *V = EmitHLSLBuiltinExpr(BuiltinID, E))
6262 unsigned BuiltinID, const CallExpr *E,
6280 return CGF->EmitARMBuiltinExpr(BuiltinID, E, ReturnValue, Arch);
6284 return CGF->EmitAArch64BuiltinExpr(BuiltinID, E, Arch);
6287 return CGF->EmitBPFBuiltinExpr(BuiltinID, E);
6290 return CGF->EmitX86BuiltinExpr(BuiltinID, E);
6295 return CGF->EmitPPCBuiltinExpr(BuiltinID, E);
6298 return CGF->EmitAMDGPUBuiltinExpr(BuiltinID, E);
6300 return CGF->EmitSystemZBuiltinExpr(BuiltinID, E);
6303 return CGF->EmitNVPTXBuiltinExpr(BuiltinID, E);
6306 return CGF->EmitWebAssemblyBuiltinExpr(BuiltinID, E);
6308 return CGF->EmitHexagonBuiltinExpr(BuiltinID, E);
6311 return CGF->EmitRISCVBuiltinExpr(BuiltinID, E, ReturnValue);
6315 return CGF->EmitAMDGPUBuiltinExpr(BuiltinID, E);
6321 Value *CodeGenFunction::EmitTargetBuiltinExpr(unsigned BuiltinID,
6324 if (getContext().BuiltinInfo.isAuxBuiltinID(BuiltinID)) {
6327 this, getContext().BuiltinInfo.getAuxBuiltinID(BuiltinID), E,
6331 return EmitTargetArchBuiltinExpr(this, BuiltinID, E, ReturnValue,
6486 unsigned BuiltinID;
6492 return BuiltinID < RHSBuiltinID;
6495 return BuiltinID < TE.BuiltinID;
7540 unsigned BuiltinID, bool &MapProvenSorted) {
7550 llvm::lower_bound(IntrinsicMap, BuiltinID);
7552 if (Builtin != IntrinsicMap.end() && Builtin->BuiltinID == BuiltinID)
7600 unsigned BuiltinID = SISDInfo.BuiltinID;
7605 switch (BuiltinID) {
7660 unsigned BuiltinID, unsigned LLVMIntrinsic, unsigned AltLLVMIntrinsic,
7693 switch (BuiltinID) {
7700 if (BuiltinID == NEON::BI__builtin_neon_splatq_lane_v)
7702 if (BuiltinID == NEON::BI__builtin_neon_splat_laneq_v)
8057 if (BuiltinID == NEON::BI__builtin_neon_vqdmulhq_lane_v ||
8058 BuiltinID == NEON::BI__builtin_neon_vqrdmulhq_lane_v)
8418 Value *CodeGenFunction::GetValueForARMHint(unsigned BuiltinID) {
8420 switch (BuiltinID) {
8547 /// Return true if BuiltinID is an overloaded Neon intrinsic with an extra
8549 static bool HasExtraNeonArgument(unsigned BuiltinID) {
8550 switch (BuiltinID) {
8590 Value *CodeGenFunction::EmitARMBuiltinExpr(unsigned BuiltinID,
8594 if (auto Hint = GetValueForARMHint(BuiltinID))
8597 if (BuiltinID == clang::ARM::BI__emit) {
8618 if (BuiltinID == clang::ARM::BI__builtin_arm_dbg) {
8623 if (BuiltinID == clang::ARM::BI__builtin_arm_prefetch) {
8635 if (BuiltinID == clang::ARM::BI__builtin_arm_rbit) {
8641 if (BuiltinID == clang::ARM::BI__builtin_arm_clz ||
8642 BuiltinID == clang::ARM::BI__builtin_arm_clz64) {
8646 if (BuiltinID == clang::ARM::BI__builtin_arm_clz64)
8652 if (BuiltinID == clang::ARM::BI__builtin_arm_cls) {
8656 if (BuiltinID == clang::ARM::BI__builtin_arm_cls64) {
8662 if (BuiltinID == clang::ARM::BI__clear_cache) {
8674 if (BuiltinID == clang::ARM::BI__builtin_arm_mcrr ||
8675 BuiltinID == clang::ARM::BI__builtin_arm_mcrr2) {
8678 switch (BuiltinID) {
8708 if (BuiltinID == clang::ARM::BI__builtin_arm_mrrc ||
8709 BuiltinID == clang::ARM::BI__builtin_arm_mrrc2) {
8712 switch (BuiltinID) {
8742 if (BuiltinID == clang::ARM::BI__builtin_arm_ldrexd ||
8743 ((BuiltinID == clang::ARM::BI__builtin_arm_ldrex ||
8744 BuiltinID == clang::ARM::BI__builtin_arm_ldaex) &&
8746 BuiltinID == clang::ARM::BI__ldrexd) {
8749 switch (BuiltinID) {
8775 if (BuiltinID == clang::ARM::BI__builtin_arm_ldrex ||
8776 BuiltinID == clang::ARM::BI__builtin_arm_ldaex) {
8785 BuiltinID == clang::ARM::BI__builtin_arm_ldaex ? Intrinsic::arm_ldaex
8802 if (BuiltinID == clang::ARM::BI__builtin_arm_strexd ||
8803 ((BuiltinID == clang::ARM::BI__builtin_arm_stlex ||
8804 BuiltinID == clang::ARM::BI__builtin_arm_strex) &&
8807 BuiltinID == clang::ARM::BI__builtin_arm_stlex ? Intrinsic::arm_stlexd
8824 if (BuiltinID == clang::ARM::BI__builtin_arm_strex ||
8825 BuiltinID == clang::ARM::BI__builtin_arm_stlex) {
8844 BuiltinID == clang::ARM::BI__builtin_arm_stlex ? Intrinsic::arm_stlex
8854 if (BuiltinID == clang::ARM::BI__builtin_arm_clrex) {
8861 switch (BuiltinID) {
8884 if (BuiltinID == clang::ARM::BI__builtin_arm_crc32d ||
8885 BuiltinID == clang::ARM::BI__builtin_arm_crc32cd) {
8902 if (BuiltinID == clang::ARM::BI__builtin_arm_rsr ||
8903 BuiltinID == clang::ARM::BI__builtin_arm_rsr64 ||
8904 BuiltinID == clang::ARM::BI__builtin_arm_rsrp ||
8905 BuiltinID == clang::ARM::BI__builtin_arm_wsr ||
8906 BuiltinID == clang::ARM::BI__builtin_arm_wsr64 ||
8907 BuiltinID == clang::ARM::BI__builtin_arm_wsrp) {
8910 if (BuiltinID == clang::ARM::BI__builtin_arm_rsr ||
8911 BuiltinID == clang::ARM::BI__builtin_arm_rsr64 ||
8912 BuiltinID == clang::ARM::BI__builtin_arm_rsrp)
8915 bool IsPointerBuiltin = BuiltinID == clang::ARM::BI__builtin_arm_rsrp ||
8916 BuiltinID == clang::ARM::BI__builtin_arm_wsrp;
8918 bool Is64Bit = BuiltinID == clang::ARM::BI__builtin_arm_rsr64 ||
8919 BuiltinID == clang::ARM::BI__builtin_arm_wsr64;
8936 if (BuiltinID == ARM::BI__builtin_sponentry) {
8943 if (std::optional<MSVCIntrin> MsvcIntId = translateArmToMsvcIntrin(BuiltinID))
8947 if (Value *Result = EmitARMMVEBuiltinExpr(BuiltinID, E, ReturnValue, Arch))
8950 if (Value *Result = EmitARMCDEBuiltinExpr(BuiltinID, E, ReturnValue, Arch))
8954 auto It = llvm::find_if(NEONEquivalentIntrinsicMap, [BuiltinID](auto &P) {
8955 return P.first == BuiltinID;
8958 BuiltinID = It->second;
8964 getContext().GetBuiltinType(BuiltinID, Error, &ICEArguments);
8974 bool HasExtraArg = HasExtraNeonArgument(BuiltinID);
8978 switch (BuiltinID) {
9009 switch (BuiltinID) {
9039 switch (BuiltinID) {
9100 Function *F = CGM.getIntrinsic(BuiltinID == clang::ARM::BI_MoveToCoprocessor
9116 if (BuiltinID == clang::ARM::BI__builtin_arm_vcvtr_f ||
9117 BuiltinID == clang::ARM::BI__builtin_arm_vcvtr_d) {
9120 if (BuiltinID == clang::ARM::BI__builtin_arm_vcvtr_f)
9150 IntrinsicMap, BuiltinID, NEONSIMDIntrinsicsProvenSorted);
9153 Builtin->BuiltinID, Builtin->LLVMIntrinsic, Builtin->AltLLVMIntrinsic,
9157 switch (BuiltinID) {
9395 Value *CodeGenFunction::EmitARMMVEBuiltinExpr(unsigned BuiltinID,
9404 switch (BuiltinID) {
9496 Value *CodeGenFunction::EmitARMCDEBuiltinExpr(unsigned BuiltinID,
9500 switch (BuiltinID) {
9507 static Value *EmitAArch64TblBuiltinExpr(CodeGenFunction &CGF, unsigned BuiltinID,
9514 switch (BuiltinID) {
9564 switch (BuiltinID) {
10077 unsigned BuiltinID) {
10085 Function *F = CGM.getIntrinsic(BuiltinID, Ops[0]->getType());
10094 ArrayRef<Value *> Ops, unsigned BuiltinID) {
10096 Function *F = CGM.getIntrinsic(BuiltinID, OverloadedTy);
10102 unsigned BuiltinID) {
10116 Function *F = CGM.getIntrinsic(BuiltinID, Predicate->getType());
10415 unsigned BuiltinID, const CallExpr *E, SmallVectorImpl<Value *> &Ops,
10420 getContext().GetBuiltinType(BuiltinID, Error, &ICEArguments);
10470 Value *CodeGenFunction::EmitAArch64SVEBuiltinExpr(unsigned BuiltinID,
10473 if (BuiltinID >= SVE::BI__builtin_sve_reinterpret_s8_s8 &&
10474 BuiltinID <= SVE::BI__builtin_sve_reinterpret_f64_f64_x4) {
10479 auto *Builtin = findARMVectorIntrinsicInMap(AArch64SVEIntrinsicMap, BuiltinID,
10484 GetAArch64SVEProcessedOperands(BuiltinID, E, Ops, TypeFlags);
10565 switch (BuiltinID) {
10831 static void swapCommutativeSMEOperands(unsigned BuiltinID,
10834 switch (BuiltinID) {
10855 Value *CodeGenFunction::EmitAArch64SMEBuiltinExpr(unsigned BuiltinID,
10857 auto *Builtin = findARMVectorIntrinsicInMap(AArch64SMEIntrinsicMap, BuiltinID,
10862 GetAArch64SVEProcessedOperands(BuiltinID, E, Ops, TypeFlags);
10868 else if (BuiltinID == SME::BI__builtin_sme_svzero_mask_za ||
10869 BuiltinID == SME::BI__builtin_sme_svzero_za)
10871 else if (BuiltinID == SME::BI__builtin_sme_svldr_vnum_za ||
10872 BuiltinID == SME::BI__builtin_sme_svstr_vnum_za ||
10873 BuiltinID == SME::BI__builtin_sme_svldr_za ||
10874 BuiltinID == SME::BI__builtin_sme_svstr_za)
10878 swapCommutativeSMEOperands(BuiltinID, Ops);
10899 Value *CodeGenFunction::EmitAArch64BuiltinExpr(unsigned BuiltinID,
10902 if (BuiltinID >= clang::AArch64::FirstSVEBuiltin &&
10903 BuiltinID <= clang::AArch64::LastSVEBuiltin)
10904 return EmitAArch64SVEBuiltinExpr(BuiltinID, E);
10906 if (BuiltinID >= clang::AArch64::FirstSMEBuiltin &&
10907 BuiltinID <= clang::AArch64::LastSMEBuiltin)
10908 return EmitAArch64SMEBuiltinExpr(BuiltinID, E);
10910 if (BuiltinID == Builtin::BI__builtin_cpu_supports)
10914 switch (BuiltinID) {
10946 if (BuiltinID == clang::AArch64::BI__builtin_arm_trap) {
10952 if (BuiltinID == clang::AArch64::BI__builtin_arm_get_sme_state) {
10970 if (BuiltinID == clang::AArch64::BI__builtin_arm_rbit) {
10977 if (BuiltinID == clang::AArch64::BI__builtin_arm_rbit64) {
10985 if (BuiltinID == clang::AArch64::BI__builtin_arm_clz ||
10986 BuiltinID == clang::AArch64::BI__builtin_arm_clz64) {
10990 if (BuiltinID == clang::AArch64::BI__builtin_arm_clz64)
10995 if (BuiltinID == clang::AArch64::BI__builtin_arm_cls) {
11000 if (BuiltinID == clang::AArch64::BI__builtin_arm_cls64) {
11006 if (BuiltinID == clang::AArch64::BI__builtin_arm_rint32zf ||
11007 BuiltinID == clang::AArch64::BI__builtin_arm_rint32z) {
11014 if (BuiltinID == clang::AArch64::BI__builtin_arm_rint64zf ||
11015 BuiltinID == clang::AArch64::BI__builtin_arm_rint64z) {
11022 if (BuiltinID == clang::AArch64::BI__builtin_arm_rint32xf ||
11023 BuiltinID == clang::AArch64::BI__builtin_arm_rint32x) {
11030 if (BuiltinID == clang::AArch64::BI__builtin_arm_rint64xf ||
11031 BuiltinID == clang::AArch64::BI__builtin_arm_rint64x) {
11038 if (BuiltinID == clang::AArch64::BI__builtin_arm_jcvt) {
11046 if (BuiltinID == clang::AArch64::BI__builtin_arm_ld64b ||
11047 BuiltinID == clang::AArch64::BI__builtin_arm_st64b ||
11048 BuiltinID == clang::AArch64::BI__builtin_arm_st64bv ||
11049 BuiltinID == clang::AArch64::BI__builtin_arm_st64bv0) {
11053 if (BuiltinID == clang::AArch64::BI__builtin_arm_ld64b) {
11080 auto Intr = (BuiltinID == clang::AArch64::BI__builtin_arm_st64b
11082 : BuiltinID == clang::AArch64::BI__builtin_arm_st64bv
11090 if (BuiltinID == clang::AArch64::BI__builtin_arm_rndr ||
11091 BuiltinID == clang::AArch64::BI__builtin_arm_rndrrs) {
11093 auto Intr = (BuiltinID == clang::AArch64::BI__builtin_arm_rndr
11107 if (BuiltinID == clang::AArch64::BI__clear_cache) {
11119 if ((BuiltinID == clang::AArch64::BI__builtin_arm_ldrex ||
11120 BuiltinID == clang::AArch64::BI__builtin_arm_ldaex) &&
11123 CGM.getIntrinsic(BuiltinID == clang::AArch64::BI__builtin_arm_ldaex
11140 } else if (BuiltinID == clang::AArch64::BI__builtin_arm_ldrex ||
11141 BuiltinID == clang::AArch64::BI__builtin_arm_ldaex) {
11150 CGM.getIntrinsic(BuiltinID == clang::AArch64::BI__builtin_arm_ldaex
11167 if ((BuiltinID == clang::AArch64::BI__builtin_arm_strex ||
11168 BuiltinID == clang::AArch64::BI__builtin_arm_stlex) &&
11171 CGM.getIntrinsic(BuiltinID == clang::AArch64::BI__builtin_arm_stlex
11188 if (BuiltinID == clang::AArch64::BI__builtin_arm_strex ||
11189 BuiltinID == clang::AArch64::BI__builtin_arm_stlex) {
11208 CGM.getIntrinsic(BuiltinID == clang::AArch64::BI__builtin_arm_stlex
11218 if (BuiltinID == clang::AArch64::BI__getReg) {
11236 if (BuiltinID == clang::AArch64::BI__break) {
11245 if (BuiltinID == clang::AArch64::BI__builtin_arm_clrex) {
11250 if (BuiltinID == clang::AArch64::BI_ReadWriteBarrier)
11256 switch (BuiltinID) {
11287 if (BuiltinID == AArch64::BI__builtin_arm_mops_memset_tag) {
11300 switch (BuiltinID) {
11376 if (BuiltinID == clang::AArch64::BI__builtin_arm_rsr ||
11377 BuiltinID == clang::AArch64::BI__builtin_arm_rsr64 ||
11378 BuiltinID == clang::AArch64::BI__builtin_arm_rsr128 ||
11379 BuiltinID == clang::AArch64::BI__builtin_arm_rsrp ||
11380 BuiltinID == clang::AArch64::BI__builtin_arm_wsr ||
11381 BuiltinID == clang::AArch64::BI__builtin_arm_wsr64 ||
11382 BuiltinID == clang::AArch64::BI__builtin_arm_wsr128 ||
11383 BuiltinID == clang::AArch64::BI__builtin_arm_wsrp) {
11386 if (BuiltinID == clang::AArch64::BI__builtin_arm_rsr ||
11387 BuiltinID == clang::AArch64::BI__builtin_arm_rsr64 ||
11388 BuiltinID == clang::AArch64::BI__builtin_arm_rsr128 ||
11389 BuiltinID == clang::AArch64::BI__builtin_arm_rsrp)
11392 bool IsPointerBuiltin = BuiltinID == clang::AArch64::BI__builtin_arm_rsrp ||
11393 BuiltinID == clang::AArch64::BI__builtin_arm_wsrp;
11395 bool Is32Bit = BuiltinID == clang::AArch64::BI__builtin_arm_rsr ||
11396 BuiltinID == clang::AArch64::BI__builtin_arm_wsr;
11398 bool Is128Bit = BuiltinID == clang::AArch64::BI__builtin_arm_rsr128 ||
11399 BuiltinID == clang::AArch64::BI__builtin_arm_wsr128;
11420 if (BuiltinID == clang::AArch64::BI_ReadStatusReg ||
11421 BuiltinID == clang::AArch64::BI_WriteStatusReg) {
11442 if (BuiltinID == clang::AArch64::BI_ReadStatusReg) {
11454 if (BuiltinID == clang::AArch64::BI_AddressOfReturnAddress) {
11460 if (BuiltinID == clang::AArch64::BI__builtin_sponentry) {
11465 if (BuiltinID == clang::AArch64::BI__mulh ||
11466 BuiltinID == clang::AArch64::BI__umulh) {
11470 bool IsSigned = BuiltinID == clang::AArch64::BI__mulh;
11489 if (BuiltinID == AArch64::BI__writex18byte ||
11490 BuiltinID == AArch64::BI__writex18word ||
11491 BuiltinID == AArch64::BI__writex18dword ||
11492 BuiltinID == AArch64::BI__writex18qword) {
11511 if (BuiltinID == AArch64::BI__readx18byte ||
11512 BuiltinID == AArch64::BI__readx18word ||
11513 BuiltinID == AArch64::BI__readx18dword ||
11514 BuiltinID == AArch64::BI__readx18qword) {
11534 if (BuiltinID == AArch64::BI_CopyDoubleFromInt64 ||
11535 BuiltinID == AArch64::BI_CopyFloatFromInt32 ||
11536 BuiltinID == AArch64::BI_CopyInt32FromFloat ||
11537 BuiltinID == AArch64::BI_CopyInt64FromDouble) {
11543 if (BuiltinID == AArch64::BI_CountLeadingOnes ||
11544 BuiltinID == AArch64::BI_CountLeadingOnes64 ||
11545 BuiltinID == AArch64::BI_CountLeadingZeros ||
11546 BuiltinID == AArch64::BI_CountLeadingZeros64) {
11550 if (BuiltinID == AArch64::BI_CountLeadingOnes ||
11551 BuiltinID == AArch64::BI_CountLeadingOnes64)
11557 if (BuiltinID == AArch64::BI_CountLeadingOnes64 ||
11558 BuiltinID == AArch64::BI_CountLeadingZeros64)
11563 if (BuiltinID == AArch64::BI_CountLeadingSigns ||
11564 BuiltinID == AArch64::BI_CountLeadingSigns64) {
11567 Function *F = (BuiltinID == AArch64::BI_CountLeadingSigns)
11572 if (BuiltinID == AArch64::BI_CountLeadingSigns64)
11577 if (BuiltinID == AArch64::BI_CountOneBits ||
11578 BuiltinID == AArch64::BI_CountOneBits64) {
11584 if (BuiltinID == AArch64::BI_CountOneBits64)
11589 if (BuiltinID == AArch64::BI__prefetch) {
11598 if (BuiltinID == AArch64::BI__hlt) {
11610 translateAarch64ToMsvcIntrin(BuiltinID))
11614 auto It = llvm::find_if(NEONEquivalentIntrinsicMap, [BuiltinID](auto &P) {
11615 return P.first == BuiltinID;
11618 BuiltinID = It->second;
11624 getContext().GetBuiltinType(BuiltinID, Error, &ICEArguments);
11631 switch (BuiltinID) {
11658 SISDMap, BuiltinID, AArch64SISDIntrinsicsProvenSorted);
11678 switch (BuiltinID) {
11754 switch (BuiltinID) {
11789 switch (BuiltinID) {
11810 switch (BuiltinID) {
11827 switch (BuiltinID) {
11930 switch (BuiltinID) {
11953 switch (BuiltinID) {
11976 switch (BuiltinID) {
12004 switch (BuiltinID) {
12182 unsigned AccumInt = BuiltinID == NEON::BI__builtin_neon_vqdmlalh_s16
12195 unsigned Int = BuiltinID == NEON::BI__builtin_neon_vqshld_n_u64
12204 unsigned Int = BuiltinID == NEON::BI__builtin_neon_vrshrd_n_u64
12214 unsigned Int = BuiltinID == NEON::BI__builtin_neon_vrsrad_n_u64
12280 unsigned AccInt = (BuiltinID == NEON::BI__builtin_neon_vqdmlalh_lane_s16 ||
12281 BuiltinID == NEON::BI__builtin_neon_vqdmlalh_laneq_s16)
12295 unsigned AccumInt = BuiltinID == NEON::BI__builtin_neon_vqdmlals_s32
12314 unsigned AccInt = (BuiltinID == NEON::BI__builtin_neon_vqdmlals_lane_s32 ||
12315 BuiltinID == NEON::BI__builtin_neon_vqdmlals_laneq_s32)
12351 Builtin = findARMVectorIntrinsicInMap(AArch64SIMDIntrinsicMap, BuiltinID,
12356 Builtin->BuiltinID, Builtin->LLVMIntrinsic, Builtin->AltLLVMIntrinsic,
12360 if (Value *V = EmitAArch64TblBuiltinExpr(*this, BuiltinID, E, Ops, Arch))
12364 switch (BuiltinID) {
12390 auto *SourceTy = BuiltinID == NEON::BI__builtin_neon_vfmaq_lane_v
12814 if (BuiltinID == NEON::BI__builtin_neon_vmul_laneq_v)
13492 Value *CodeGenFunction::EmitBPFBuiltinExpr(unsigned BuiltinID,
13494 assert((BuiltinID == BPF::BI__builtin_preserve_field_info ||
13495 BuiltinID == BPF::BI__builtin_btf_type_id ||
13496 BuiltinID == BPF::BI__builtin_preserve_type_info ||
13497 BuiltinID == BPF::BI__builtin_preserve_enum_value) &&
13505 switch (BuiltinID) {
13551 if (BuiltinID == BPF::BI__builtin_btf_type_id)
13892 ArrayRef<Value *> Ops, unsigned BuiltinID,
13897 switch (BuiltinID) {
13977 switch (BuiltinID) {
14358 Value *CodeGenFunction::EmitX86BuiltinExpr(unsigned BuiltinID,
14360 if (BuiltinID == Builtin::BI__builtin_cpu_is)
14362 if (BuiltinID == Builtin::BI__builtin_cpu_supports)
14364 if (BuiltinID == Builtin::BI__builtin_cpu_init)
14369 if (std::optional<MSVCIntrin> MsvcIntId = translateX86ToMsvcIntrin(BuiltinID))
14379 getContext().GetBuiltinType(BuiltinID, Error, &ICEArguments);
14417 switch (BuiltinID) {
14546 switch (BuiltinID) {
14701 return EmitX86FMAExpr(*this, E, Ops, BuiltinID, /*IsAddSub*/ false);
14714 return EmitX86FMAExpr(*this, E, Ops, BuiltinID, /*IsAddSub*/ true);
14878 switch (BuiltinID) {
14987 switch (BuiltinID) {
15165 switch (BuiltinID) {
15558 if (BuiltinID == X86::BI__builtin_ia32_movntsd ||
15559 BuiltinID == X86::BI__builtin_ia32_movntss)
15706 switch (BuiltinID) {
15746 switch (BuiltinID) {
15869 switch (BuiltinID) {
15915 switch (BuiltinID) {
16067 switch (BuiltinID) {
16099 switch (BuiltinID) {
16137 switch (BuiltinID) {
16182 switch (BuiltinID) {
16218 switch (BuiltinID) {
16243 switch (BuiltinID) {
16350 switch (BuiltinID) {
16483 switch (BuiltinID) {
16499 Value *SubFuncId = BuiltinID == X86::BI__cpuidex
16539 bool isSigned = (BuiltinID == X86::BI__emul);
16551 bool IsSigned = (BuiltinID == X86::BI__mulh || BuiltinID == X86::BI_mul128);
16565 if (BuiltinID == X86::BI__mulh || BuiltinID == X86::BI__umulh)
16580 BuiltinID == X86::BI__shiftleft128 ? Intrinsic::fshl : Intrinsic::fshr,
16678 switch (BuiltinID) {
16729 switch (BuiltinID) {
16825 Value *CodeGenFunction::EmitPPCBuiltinExpr(unsigned BuiltinID,
16892 switch (BuiltinID) {
17002 if (!(BuiltinID == PPC::BI__builtin_vsx_lxvl ||
17003 BuiltinID == PPC::BI__builtin_vsx_lxvll)) {
17008 switch (BuiltinID) {
17071 if (!(BuiltinID == PPC::BI__builtin_vsx_stxvl ||
17072 BuiltinID == PPC::BI__builtin_vsx_stxvll)) {
17077 switch (BuiltinID) {
17297 bool IsUnaligned = (BuiltinID == PPC::BI__builtin_altivec_vinsw ||
17298 BuiltinID == PPC::BI__builtin_altivec_vinsd);
17300 bool Is32bit = (BuiltinID == PPC::BI__builtin_altivec_vinsw ||
17301 BuiltinID == PPC::BI__builtin_altivec_vinsw_elt);
17364 if (BuiltinID == PPC::BI__builtin_altivec_vadduqm)
17378 ID = (BuiltinID == PPC::BI__builtin_altivec_vaddcuq_c)
17396 switch (BuiltinID) {
17422 if (BuiltinID == PPC::BI__builtin_ppc_rldimi &&
17431 CGM.getIntrinsic(BuiltinID == PPC::BI__builtin_ppc_rldimi
17518 if (BuiltinID == PPC::BI__builtin_vsx_xvrdpim ||
17519 BuiltinID == PPC::BI__builtin_vsx_xvrspim)
17523 else if (BuiltinID == PPC::BI__builtin_vsx_xvrdpi ||
17524 BuiltinID == PPC::BI__builtin_vsx_xvrspi)
17528 else if (BuiltinID == PPC::BI__builtin_vsx_xvrdpic ||
17529 BuiltinID == PPC::BI__builtin_vsx_xvrspic)
17533 else if (BuiltinID == PPC::BI__builtin_vsx_xvrdpip ||
17534 BuiltinID == PPC::BI__builtin_vsx_xvrspip)
17538 else if (BuiltinID == PPC::BI__builtin_vsx_xvrdpiz ||
17539 BuiltinID == PPC::BI__builtin_vsx_xvrspiz)
17567 if (BuiltinID == PPC::BI__builtin_ppc_recipdivf ||
17568 BuiltinID == PPC::BI__builtin_ppc_recipdivd) {
17629 switch (BuiltinID) {
17857 if (BuiltinID == PPC::BI__builtin_mma_disassemble_acc ||
17858 BuiltinID == PPC::BI__builtin_vsx_disassemble_pair ||
17859 BuiltinID == PPC::BI__builtin_mma_disassemble_pair) {
17862 if (BuiltinID == PPC::BI__builtin_mma_disassemble_acc) {
17880 if (BuiltinID == PPC::BI__builtin_vsx_build_pair ||
17881 BuiltinID == PPC::BI__builtin_mma_build_acc) {
17892 switch (BuiltinID) {
17900 if (BuiltinID == PPC::BI__builtin_vsx_lxvp ||
17901 BuiltinID == PPC::BI__builtin_vsx_stxvp ||
17902 BuiltinID == PPC::BI__builtin_mma_lxvp ||
17903 BuiltinID == PPC::BI__builtin_mma_stxvp) {
17904 if (BuiltinID == PPC::BI__builtin_vsx_lxvp ||
17905 BuiltinID == PPC::BI__builtin_mma_lxvp) {
17974 return emitPPCLoadReserveIntrinsic(*this, BuiltinID, E);
18335 Value *CodeGenFunction::EmitHLSLBuiltinExpr(unsigned BuiltinID,
18340 switch (BuiltinID) {
18520 Value *CodeGenFunction::EmitAMDGPUBuiltinExpr(unsigned BuiltinID,
18524 switch (BuiltinID) {
18576 getContext().GetBuiltinType(BuiltinID, Error, &ICEArguments);
18592 BuiltinID == AMDGPU::BI__builtin_amdgcn_permlane16
18735 Intrinsic::ID Intrin = BuiltinID == AMDGPU::BI__builtin_amdgcn_ds_append ?
18753 switch (BuiltinID) {
18800 switch (BuiltinID) {
18823 switch (BuiltinID) {
18975 switch (BuiltinID) {
19190 switch (BuiltinID) {
19221 if (BuiltinID == AMDGPU::BI__builtin_amdgcn_ds_faddf ||
19222 BuiltinID == AMDGPU::BI__builtin_amdgcn_ds_fminf ||
19223 BuiltinID == AMDGPU::BI__builtin_amdgcn_ds_fmaxf) {
19243 if (BuiltinID == AMDGPU::BI__builtin_amdgcn_ds_atomic_fadd_v2bf16) {
19283 switch (BuiltinID) {
19332 Value *CodeGenFunction::EmitSystemZBuiltinExpr(unsigned BuiltinID,
19334 switch (BuiltinID) {
19557 switch (BuiltinID) { // FIXME: constrained version?
19560 default: llvm_unreachable("Unknown BuiltinID");
19592 switch (BuiltinID) {
19595 default: llvm_unreachable("Unknown BuiltinID");
19626 switch (BuiltinID) {
19629 default: llvm_unreachable("Unknown BuiltinID");
19749 static NVPTXMmaLdstInfo getNVPTXMmaLdstInfo(unsigned BuiltinID) {
19750 switch (BuiltinID) {
19924 static NVPTXMmaInfo getNVPTXMmaInfo(unsigned BuiltinID) {
19967 switch (BuiltinID) {
20077 static Value *MakeHalfType(unsigned IntrinsicID, unsigned BuiltinID,
20082 CGF.CGM.Error(E->getExprLoc(), C.BuiltinInfo.getName(BuiltinID).str() +
20096 C.GetBuiltinType(BuiltinID, Error, &ICEArguments);
20111 Value *CodeGenFunction::EmitNVPTXBuiltinExpr(unsigned BuiltinID,
20113 switch (BuiltinID) {
20383 CGM.getIntrinsic(BuiltinID == NVPTX::BI__nvvm_match_all_sync_i32p
20453 NVPTXMmaLdstInfo II = getNVPTXMmaLdstInfo(BuiltinID);
20500 NVPTXMmaLdstInfo II = getNVPTXMmaLdstInfo(BuiltinID);
20562 if (BuiltinID == NVPTX::BI__bmma_m8n8k128_mma_xor_popc_b1 ||
20563 BuiltinID == NVPTX::BI__bmma_m8n8k128_mma_and_popc_b1)
20571 NVPTXMmaInfo MI = getNVPTXMmaInfo(BuiltinID);
20621 return MakeHalfType(Intrinsic::nvvm_ex2_approx_f16, BuiltinID, E, *this);
20623 return MakeHalfType(Intrinsic::nvvm_ex2_approx_f16x2, BuiltinID, E, *this);
20625 return MakeHalfType(Intrinsic::nvvm_ff2f16x2_rn, BuiltinID, E, *this);
20627 return MakeHalfType(Intrinsic::nvvm_ff2f16x2_rn_relu, BuiltinID, E, *this);
20629 return MakeHalfType(Intrinsic::nvvm_ff2f16x2_rz, BuiltinID, E, *this);
20631 return MakeHalfType(Intrinsic::nvvm_ff2f16x2_rz_relu, BuiltinID, E, *this);
20633 return MakeHalfType(Intrinsic::nvvm_fma_rn_f16, BuiltinID, E, *this);
20635 return MakeHalfType(Intrinsic::nvvm_fma_rn_f16x2, BuiltinID, E, *this);
20637 return MakeHalfType(Intrinsic::nvvm_fma_rn_ftz_f16, BuiltinID, E, *this);
20639 return MakeHalfType(Intrinsic::nvvm_fma_rn_ftz_f16x2, BuiltinID, E, *this);
20641 return MakeHalfType(Intrinsic::nvvm_fma_rn_ftz_relu_f16, BuiltinID, E,
20644 return MakeHalfType(Intrinsic::nvvm_fma_rn_ftz_relu_f16x2, BuiltinID, E,
20647 return MakeHalfType(Intrinsic::nvvm_fma_rn_ftz_sat_f16, BuiltinID, E,
20650 return MakeHalfType(Intrinsic::nvvm_fma_rn_ftz_sat_f16x2, BuiltinID, E,
20653 return MakeHalfType(Intrinsic::nvvm_fma_rn_relu_f16, BuiltinID, E, *this);
20655 return MakeHalfType(Intrinsic::nvvm_fma_rn_relu_f16x2, BuiltinID, E, *this);
20657 return MakeHalfType(Intrinsic::nvvm_fma_rn_sat_f16, BuiltinID, E, *this);
20659 return MakeHalfType(Intrinsic::nvvm_fma_rn_sat_f16x2, BuiltinID, E, *this);
20661 return MakeHalfType(Intrinsic::nvvm_fmax_f16, BuiltinID, E, *this);
20663 return MakeHalfType(Intrinsic::nvvm_fmax_f16x2, BuiltinID, E, *this);
20665 return MakeHalfType(Intrinsic::nvvm_fmax_ftz_f16, BuiltinID, E, *this);
20667 return MakeHalfType(Intrinsic::nvvm_fmax_ftz_f16x2, BuiltinID, E, *this);
20669 return MakeHalfType(Intrinsic::nvvm_fmax_ftz_nan_f16, BuiltinID, E, *this);
20671 return MakeHalfType(Intrinsic::nvvm_fmax_ftz_nan_f16x2, BuiltinID, E,
20674 return MakeHalfType(Intrinsic::nvvm_fmax_ftz_nan_xorsign_abs_f16, BuiltinID,
20678 BuiltinID, E, *this);
20680 return MakeHalfType(Intrinsic::nvvm_fmax_ftz_xorsign_abs_f16, BuiltinID, E,
20683 return MakeHalfType(Intrinsic::nvvm_fmax_ftz_xorsign_abs_f16x2, BuiltinID,
20686 return MakeHalfType(Intrinsic::nvvm_fmax_nan_f16, BuiltinID, E, *this);
20688 return MakeHalfType(Intrinsic::nvvm_fmax_nan_f16x2, BuiltinID, E, *this);
20690 return MakeHalfType(Intrinsic::nvvm_fmax_nan_xorsign_abs_f16, BuiltinID, E,
20693 return MakeHalfType(Intrinsic::nvvm_fmax_nan_xorsign_abs_f16x2, BuiltinID,
20696 return MakeHalfType(Intrinsic::nvvm_fmax_xorsign_abs_f16, BuiltinID, E,
20699 return MakeHalfType(Intrinsic::nvvm_fmax_xorsign_abs_f16x2, BuiltinID, E,
20702 return MakeHalfType(Intrinsic::nvvm_fmin_f16, BuiltinID, E, *this);
20704 return MakeHalfType(Intrinsic::nvvm_fmin_f16x2, BuiltinID, E, *this);
20706 return MakeHalfType(Intrinsic::nvvm_fmin_ftz_f16, BuiltinID, E, *this);
20708 return MakeHalfType(Intrinsic::nvvm_fmin_ftz_f16x2, BuiltinID, E, *this);
20710 return MakeHalfType(Intrinsic::nvvm_fmin_ftz_nan_f16, BuiltinID, E, *this);
20712 return MakeHalfType(Intrinsic::nvvm_fmin_ftz_nan_f16x2, BuiltinID, E,
20715 return MakeHalfType(Intrinsic::nvvm_fmin_ftz_nan_xorsign_abs_f16, BuiltinID,
20719 BuiltinID, E, *this);
20721 return MakeHalfType(Intrinsic::nvvm_fmin_ftz_xorsign_abs_f16, BuiltinID, E,
20724 return MakeHalfType(Intrinsic::nvvm_fmin_ftz_xorsign_abs_f16x2, BuiltinID,
20727 return MakeHalfType(Intrinsic::nvvm_fmin_nan_f16, BuiltinID, E, *this);
20729 return MakeHalfType(Intrinsic::nvvm_fmin_nan_f16x2, BuiltinID, E, *this);
20731 return MakeHalfType(Intrinsic::nvvm_fmin_nan_xorsign_abs_f16, BuiltinID, E,
20734 return MakeHalfType(Intrinsic::nvvm_fmin_nan_xorsign_abs_f16x2, BuiltinID,
20737 return MakeHalfType(Intrinsic::nvvm_fmin_xorsign_abs_f16, BuiltinID, E,
20740 return MakeHalfType(Intrinsic::nvvm_fmin_xorsign_abs_f16x2, BuiltinID, E,
20743 return MakeHalfType(Intrinsic::nvvm_ldg_global_f, BuiltinID, E, *this);
20745 return MakeHalfType(Intrinsic::nvvm_ldg_global_f, BuiltinID, E, *this);
20747 return MakeHalfType(Intrinsic::nvvm_ldu_global_f, BuiltinID, E, *this);
20749 return MakeHalfType(Intrinsic::nvvm_ldu_global_f, BuiltinID, E, *this);
20942 Value *CodeGenFunction::EmitWebAssemblyBuiltinExpr(unsigned BuiltinID,
20944 switch (BuiltinID) {
21095 switch (BuiltinID) {
21142 switch (BuiltinID) {
21192 switch (BuiltinID) {
21238 switch (BuiltinID) {
21280 switch (BuiltinID) {
21325 switch (BuiltinID) {
21345 switch (BuiltinID) {
21386 switch (BuiltinID) {
21427 switch (BuiltinID) {
21448 switch (BuiltinID) {
21606 getIntrinsicForHexagonNonClangBuiltin(unsigned BuiltinID) {
21608 unsigned BuiltinID;
21650 auto CmpInfo = [] (Info A, Info B) { return A.BuiltinID < B.BuiltinID; };
21654 const Info *F = llvm::lower_bound(Infos, Info{BuiltinID, 0, 0}, CmpInfo);
21655 if (F == std::end(Infos) || F->BuiltinID != BuiltinID)
21661 Value *CodeGenFunction::EmitHexagonBuiltinExpr(unsigned BuiltinID,
21665 std::tie(ID, VecLen) = getIntrinsicForHexagonNonClangBuiltin(BuiltinID);
21746 switch (BuiltinID) {
21849 Value *CodeGenFunction::EmitRISCVBuiltinExpr(unsigned BuiltinID,
21858 getContext().GetBuiltinType(BuiltinID, Error, &ICEArguments);
21861 assert(BuiltinID >= clang::RISCV::FirstRVVBuiltin &&
21862 BuiltinID <= clang::RISCV::LastRVVBuiltin);
21864 if (BuiltinID == RISCVVector::BI__builtin_rvv_vget_v ||
21865 BuiltinID == RISCVVector::BI__builtin_rvv_vset_v)
21871 if (BuiltinID == RISCV::BI__builtin_riscv_ntl_load)
21873 if (BuiltinID == RISCV::BI__builtin_riscv_ntl_store)
21898 switch (BuiltinID) {
21920 switch (BuiltinID) {