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