Lines Matching defs:Builtin

44   const DemangledBuiltin *Builtin;
50 IncomingCall(const std::string BuiltinName, const DemangledBuiltin *Builtin,
53 : BuiltinName(BuiltinName), Builtin(Builtin),
234 const SPIRV::DemangledBuiltin *Builtin;
235 if ((Builtin = SPIRV::lookupBuiltin(BuiltinName, Set)))
237 BuiltinName, Builtin, ReturnRegister, ReturnType, Arguments);
278 (Builtin = SPIRV::lookupBuiltin(Prefix + BuiltinName, Set)))
280 BuiltinName, Builtin, ReturnRegister, ReturnType, Arguments);
309 (Builtin = SPIRV::lookupBuiltin(BuiltinName + Suffix, Set)))
311 BuiltinName, Builtin, ReturnRegister, ReturnType, Arguments);
677 const SPIRV::IncomingCall *Call, const SPIRV::DemangledBuiltin *Builtin,
683 bool IsCmpxchg = Call->Builtin->Name.contains("cmpxchg");
1012 const SPIRV::DemangledBuiltin *Builtin = Call->Builtin;
1014 SPIRV::lookupExtendedBuiltin(Builtin->Name, Builtin->Set)->Number;
1033 const SPIRV::DemangledBuiltin *Builtin = Call->Builtin;
1035 SPIRV::lookupNativeBuiltin(Builtin->Name, Builtin->Set)->Opcode;
1058 const SPIRV::DemangledBuiltin *Builtin = Call->Builtin;
1060 SPIRV::lookupGroupBuiltin(Builtin->Name);
1120 auto Scope = Builtin->Name.starts_with("sub_group") ? SPIRV::Scope::Subgroup
1151 const SPIRV::DemangledBuiltin *Builtin = Call->Builtin;
1155 std::string DiagMsg = std::string(Builtin->Name) +
1161 SPIRV::lookupIntelSubgroupsBuiltin(Builtin->Name);
1220 const SPIRV::DemangledBuiltin *Builtin = Call->Builtin;
1225 std::string DiagMsg = std::string(Builtin->Name) +
1231 SPIRV::lookupGroupUniformBuiltin(Builtin->Name);
1271 const SPIRV::DemangledBuiltin *Builtin = Call->Builtin;
1275 std::string DiagMsg = std::string(Builtin->Name) +
1287 StringSwitch<SPIRV::Scope::Scope>(Builtin->Name)
1429 const SPIRV::DemangledBuiltin *Builtin = Call->Builtin;
1431 SPIRV::lookupGetBuiltin(Builtin->Name, Builtin->Set)->Value;
1453 const SPIRV::DemangledBuiltin *Builtin = Call->Builtin;
1455 SPIRV::lookupNativeBuiltin(Builtin->Name, Builtin->Set)->Opcode;
1466 return buildAtomicCompareExchangeInst(Call, Builtin, Opcode, MIRBuilder,
1492 const SPIRV::DemangledBuiltin *Builtin = Call->Builtin;
1493 unsigned Opcode = SPIRV::lookupAtomicFloatingBuiltin(Builtin->Name)->Opcode;
1509 const SPIRV::DemangledBuiltin *Builtin = Call->Builtin;
1511 SPIRV::lookupNativeBuiltin(Builtin->Name, Builtin->Set)->Opcode;
1544 const SPIRV::DemangledBuiltin *Builtin = Call->Builtin;
1546 SPIRV::lookupGetBuiltin(Builtin->Name, Builtin->Set)->Value;
1562 SPIRV::lookupGetBuiltin(Call->Builtin->Name, Call->Builtin->Set)->Value;
1573 const SPIRV::DemangledBuiltin *Builtin = Call->Builtin;
1575 SPIRV::lookupImageQueryBuiltin(Builtin->Name, Builtin->Set)->Component;
1651 const SPIRV::DemangledBuiltin *Builtin = Call->Builtin;
1653 SPIRV::lookupNativeBuiltin(Builtin->Name, Builtin->Set)->Opcode;
1813 if (Call->Builtin->Name.contains_insensitive(
1822 } else if (Call->Builtin->Name.contains_insensitive("__spirv_SampledImage")) {
1838 } else if (Call->Builtin->Name.contains_insensitive(
1888 const SPIRV::DemangledBuiltin *Builtin = Call->Builtin;
1890 SPIRV::lookupNativeBuiltin(Builtin->Name, Builtin->Set)->Opcode;
1921 const SPIRV::DemangledBuiltin *Builtin = Call->Builtin;
1923 SPIRV::lookupNativeBuiltin(Builtin->Name, Builtin->Set)->Opcode;
2010 unsigned Size = Call->Builtin->Name == "ndrange_3D" ? 3 : 2;
2067 bool HasEvents = Call->Builtin->Name.contains("events") || IsSpirvOp;
2074 if (Call->Builtin->Name.contains("_varargs") || IsSpirvOp) {
2150 const SPIRV::DemangledBuiltin *Builtin = Call->Builtin;
2152 SPIRV::lookupNativeBuiltin(Builtin->Name, Builtin->Set)->Opcode;
2197 const SPIRV::DemangledBuiltin *Builtin = Call->Builtin;
2199 SPIRV::lookupNativeBuiltin(Builtin->Name, Builtin->Set)->Opcode;
2249 const SPIRV::ConvertBuiltin *Builtin =
2250 SPIRV::lookupConvertBuiltin(Call->Builtin->Name, Call->Builtin->Set);
2252 if (!Builtin && Call->isSpirvOp()) {
2253 const SPIRV::DemangledBuiltin *Builtin = Call->Builtin;
2255 SPIRV::lookupNativeBuiltin(Builtin->Name, Builtin->Set)->Opcode;
2260 if (Builtin->IsSaturated)
2263 if (Builtin->IsRounded)
2266 {(unsigned)Builtin->RoundingMode});
2275 if (Builtin->IsSaturated)
2276 Opcode = Builtin->IsDestinationSigned ? SPIRV::OpSatConvertUToS
2279 Opcode = Builtin->IsDestinationSigned ? SPIRV::OpUConvert
2284 if (Builtin->IsBfloat16) {
2305 if (Builtin->IsBfloat16) {
2316 Opcode = Builtin->IsDestinationSigned ? SPIRV::OpConvertFToS
2327 std::string DiagMsg = std::string(Builtin->Name) +
2335 std::string(Builtin->Name) +
2353 const SPIRV::VectorLoadStoreBuiltin *Builtin =
2354 SPIRV::lookupVectorLoadStoreBuiltin(Call->Builtin->Name,
2355 Call->Builtin->Set);
2362 .addImm(Builtin->Number);
2365 if (Builtin->Name.contains("load") && Builtin->ElementCount > 1)
2366 MIB.addImm(Builtin->ElementCount);
2370 if (Builtin->IsRounded)
2371 MIB.addImm(static_cast<uint32_t>(Builtin->RoundingMode));
2379 const SPIRV::DemangledBuiltin *Builtin = Call->Builtin;
2381 SPIRV::lookupNativeBuiltin(Builtin->Name, Builtin->Set)->Opcode;
2429 switch (Call->Builtin->Group) {
2441 SPIRV::lookupNativeBuiltin(Call->Builtin->Name, Call->Builtin->Set))
2442 return std::make_tuple(Call->Builtin->Group, R->Opcode, 0);
2445 if (const auto *R = SPIRV::lookupExtendedBuiltin(Call->Builtin->Name,
2446 Call->Builtin->Set))
2447 return std::make_tuple(Call->Builtin->Group, 0, R->Number);
2450 if (const auto *R = SPIRV::lookupVectorLoadStoreBuiltin(Call->Builtin->Name,
2451 Call->Builtin->Set))
2455 if (const auto *R = SPIRV::lookupGroupBuiltin(Call->Builtin->Name))
2456 return std::make_tuple(Call->Builtin->Group, R->Opcode, 0);
2459 if (const auto *R = SPIRV::lookupAtomicFloatingBuiltin(Call->Builtin->Name))
2460 return std::make_tuple(Call->Builtin->Group, R->Opcode, 0);
2463 if (const auto *R = SPIRV::lookupIntelSubgroupsBuiltin(Call->Builtin->Name))
2464 return std::make_tuple(Call->Builtin->Group, R->Opcode, 0);
2467 if (const auto *R = SPIRV::lookupGroupUniformBuiltin(Call->Builtin->Name))
2468 return std::make_tuple(Call->Builtin->Group, R->Opcode, 0);
2471 return std::make_tuple(Call->Builtin->Group, SPIRV::OpImageWrite, 0);
2473 return std::make_tuple(Call->Builtin->Group, TargetOpcode::G_SELECT, 0);
2475 return std::make_tuple(Call->Builtin->Group, SPIRV::OpCompositeConstruct,
2478 return std::make_tuple(Call->Builtin->Group, SPIRV::OpReadClockKHR, 0);
2511 LLVM_DEBUG(dbgs() << "Builtin record was not found!\n");
2516 assert(Args.size() >= Call->Builtin->MinNumArgs &&
2518 if (Call->Builtin->MaxNumArgs && Args.size() > Call->Builtin->MaxNumArgs)
2522 switch (Call->Builtin->Group) {