Lines Matching defs:Builtin
45 const DemangledBuiltin *Builtin;
51 IncomingCall(const std::string BuiltinName, const DemangledBuiltin *Builtin,
54 : BuiltinName(BuiltinName), Builtin(Builtin),
275 const SPIRV::DemangledBuiltin *Builtin;
276 if ((Builtin = SPIRV::lookupBuiltin(BuiltinName, Set)))
278 BuiltinName, Builtin, ReturnRegister, ReturnType, Arguments);
319 (Builtin = SPIRV::lookupBuiltin(Prefix + BuiltinName, Set)))
321 BuiltinName, Builtin, ReturnRegister, ReturnType, Arguments);
350 (Builtin = SPIRV::lookupBuiltin(BuiltinName + Suffix, Set)))
352 BuiltinName, Builtin, ReturnRegister, ReturnType, Arguments);
711 const SPIRV::IncomingCall *Call, const SPIRV::DemangledBuiltin *Builtin,
717 bool IsCmpxchg = Call->Builtin->Name.contains("cmpxchg");
930 const SPIRV::DemangledBuiltin *Builtin = Call->Builtin;
936 std::string DiagMsg = std::string(Builtin->Name) +
1036 const SPIRV::DemangledBuiltin *Builtin = Call->Builtin;
1038 SPIRV::lookupExtendedBuiltin(Builtin->Name, Builtin->Set)->Number;
1057 const SPIRV::DemangledBuiltin *Builtin = Call->Builtin;
1059 SPIRV::lookupNativeBuiltin(Builtin->Name, Builtin->Set)->Opcode;
1082 const SPIRV::DemangledBuiltin *Builtin = Call->Builtin;
1084 SPIRV::lookupGroupBuiltin(Builtin->Name);
1152 auto Scope = Builtin->Name.starts_with("sub_group") ? SPIRV::Scope::Subgroup
1213 const SPIRV::DemangledBuiltin *Builtin = Call->Builtin;
1217 SPIRV::lookupIntelSubgroupsBuiltin(Builtin->Name);
1221 std::string DiagMsg = std::string(Builtin->Name) +
1227 std::string DiagMsg = std::string(Builtin->Name) +
1287 const SPIRV::DemangledBuiltin *Builtin = Call->Builtin;
1292 std::string DiagMsg = std::string(Builtin->Name) +
1298 SPIRV::lookupGroupUniformBuiltin(Builtin->Name);
1331 const SPIRV::DemangledBuiltin *Builtin = Call->Builtin;
1335 std::string DiagMsg = std::string(Builtin->Name) +
1345 StringSwitch<SPIRV::Scope::Scope>(Builtin->Name)
1487 const SPIRV::DemangledBuiltin *Builtin = Call->Builtin;
1489 SPIRV::lookupGetBuiltin(Builtin->Name, Builtin->Set)->Value;
1511 const SPIRV::DemangledBuiltin *Builtin = Call->Builtin;
1513 SPIRV::lookupNativeBuiltin(Builtin->Name, Builtin->Set)->Opcode;
1524 return buildAtomicCompareExchangeInst(Call, Builtin, Opcode, MIRBuilder,
1550 const SPIRV::DemangledBuiltin *Builtin = Call->Builtin;
1551 unsigned Opcode = SPIRV::lookupAtomicFloatingBuiltin(Builtin->Name)->Opcode;
1567 const SPIRV::DemangledBuiltin *Builtin = Call->Builtin;
1569 SPIRV::lookupNativeBuiltin(Builtin->Name, Builtin->Set)->Opcode;
1602 const SPIRV::DemangledBuiltin *Builtin = Call->Builtin;
1604 SPIRV::lookupGetBuiltin(Builtin->Name, Builtin->Set)->Value;
1624 const SPIRV::DemangledBuiltin *Builtin = Call->Builtin;
1626 SPIRV::lookupNativeBuiltin(Builtin->Name, Builtin->Set)->Opcode;
1675 SPIRV::lookupGetBuiltin(Call->Builtin->Name, Call->Builtin->Set)->Value;
1686 const SPIRV::DemangledBuiltin *Builtin = Call->Builtin;
1688 SPIRV::lookupImageQueryBuiltin(Builtin->Name, Builtin->Set)->Component;
1763 const SPIRV::DemangledBuiltin *Builtin = Call->Builtin;
1765 SPIRV::lookupNativeBuiltin(Builtin->Name, Builtin->Set)->Opcode;
1920 if (Call->Builtin->Name.contains_insensitive(
1929 } else if (Call->Builtin->Name.contains_insensitive("__spirv_SampledImage")) {
1945 } else if (Call->Builtin->Name.contains_insensitive(
1991 const SPIRV::DemangledBuiltin *Builtin = Call->Builtin;
1993 SPIRV::lookupNativeBuiltin(Builtin->Name, Builtin->Set)->Opcode;
2058 const SPIRV::DemangledBuiltin *Builtin = Call->Builtin;
2060 SPIRV::lookupNativeBuiltin(Builtin->Name, Builtin->Set)->Opcode;
2139 unsigned Size = Call->Builtin->Name == "ndrange_3D" ? 3 : 2;
2190 bool HasEvents = Call->Builtin->Name.contains("events") || IsSpirvOp;
2197 if (Call->Builtin->Name.contains("_varargs") || IsSpirvOp) {
2273 const SPIRV::DemangledBuiltin *Builtin = Call->Builtin;
2275 SPIRV::lookupNativeBuiltin(Builtin->Name, Builtin->Set)->Opcode;
2313 const SPIRV::DemangledBuiltin *Builtin = Call->Builtin;
2315 SPIRV::lookupNativeBuiltin(Builtin->Name, Builtin->Set)->Opcode;
2365 const SPIRV::ConvertBuiltin *Builtin =
2366 SPIRV::lookupConvertBuiltin(Call->Builtin->Name, Call->Builtin->Set);
2368 if (!Builtin && Call->isSpirvOp()) {
2369 const SPIRV::DemangledBuiltin *Builtin = Call->Builtin;
2371 SPIRV::lookupNativeBuiltin(Builtin->Name, Builtin->Set)->Opcode;
2376 if (Builtin->IsSaturated)
2379 if (Builtin->IsRounded)
2382 {(unsigned)Builtin->RoundingMode});
2391 if (Builtin->IsSaturated)
2392 Opcode = Builtin->IsDestinationSigned ? SPIRV::OpSatConvertUToS
2395 Opcode = Builtin->IsDestinationSigned ? SPIRV::OpUConvert
2400 if (Builtin->IsBfloat16) {
2421 if (Builtin->IsBfloat16) {
2432 Opcode = Builtin->IsDestinationSigned ? SPIRV::OpConvertFToS
2443 std::string DiagMsg = std::string(Builtin->Name) +
2451 std::string(Builtin->Name) +
2469 const SPIRV::VectorLoadStoreBuiltin *Builtin =
2470 SPIRV::lookupVectorLoadStoreBuiltin(Call->Builtin->Name,
2471 Call->Builtin->Set);
2478 .addImm(Builtin->Number);
2481 if (Builtin->Name.contains("load") && Builtin->ElementCount > 1)
2482 MIB.addImm(Builtin->ElementCount);
2486 if (Builtin->IsRounded)
2487 MIB.addImm(static_cast<uint32_t>(Builtin->RoundingMode));
2495 const SPIRV::DemangledBuiltin *Builtin = Call->Builtin;
2497 SPIRV::lookupNativeBuiltin(Builtin->Name, Builtin->Set)->Opcode;
2538 switch (Call->Builtin->Group) {
2550 SPIRV::lookupNativeBuiltin(Call->Builtin->Name, Call->Builtin->Set))
2551 return std::make_tuple(Call->Builtin->Group, R->Opcode, 0);
2554 if (const auto *R = SPIRV::lookupExtendedBuiltin(Call->Builtin->Name,
2555 Call->Builtin->Set))
2556 return std::make_tuple(Call->Builtin->Group, 0, R->Number);
2559 if (const auto *R = SPIRV::lookupVectorLoadStoreBuiltin(Call->Builtin->Name,
2560 Call->Builtin->Set))
2564 if (const auto *R = SPIRV::lookupGroupBuiltin(Call->Builtin->Name))
2565 return std::make_tuple(Call->Builtin->Group, R->Opcode, 0);
2568 if (const auto *R = SPIRV::lookupAtomicFloatingBuiltin(Call->Builtin->Name))
2569 return std::make_tuple(Call->Builtin->Group, R->Opcode, 0);
2572 if (const auto *R = SPIRV::lookupIntelSubgroupsBuiltin(Call->Builtin->Name))
2573 return std::make_tuple(Call->Builtin->Group, R->Opcode, 0);
2576 if (const auto *R = SPIRV::lookupGroupUniformBuiltin(Call->Builtin->Name))
2577 return std::make_tuple(Call->Builtin->Group, R->Opcode, 0);
2580 return std::make_tuple(Call->Builtin->Group, SPIRV::OpImageWrite, 0);
2582 return std::make_tuple(Call->Builtin->Group, TargetOpcode::G_SELECT, 0);
2584 return std::make_tuple(Call->Builtin->Group, SPIRV::OpCompositeConstruct,
2587 return std::make_tuple(Call->Builtin->Group, SPIRV::OpReadClockKHR, 0);
2609 LLVM_DEBUG(dbgs() << "Builtin record was not found!\n");
2614 assert(Args.size() >= Call->Builtin->MinNumArgs &&
2616 if (Call->Builtin->MaxNumArgs && Args.size() > Call->Builtin->MaxNumArgs)
2620 switch (Call->Builtin->Group) {