Lines Matching defs:GR

394                   SPIRVGlobalRegistry *GR) {
396 SPIRVType *BoolType = GR->getOrCreateSPIRVBoolType(MIRBuilder);
401 GR->getOrCreateSPIRVVectorType(BoolType, VectorElements, MIRBuilder);
403 cast<FixedVectorType>(GR->getTypeForSPIRVType(BoolType));
412 GR->assignSPIRVTypeToVReg(BoolType, ResultRegister, MIRBuilder.getMF());
421 SPIRVGlobalRegistry *GR) {
425 unsigned Bits = GR->getScalarOrVectorBitWidth(ReturnType);
427 TrueConst = GR->getOrCreateConsIntVector(AllOnes, MIRBuilder, ReturnType);
428 FalseConst = GR->getOrCreateConsIntVector(0, MIRBuilder, ReturnType);
430 TrueConst = GR->buildConstantInt(1, MIRBuilder, ReturnType);
431 FalseConst = GR->buildConstantInt(0, MIRBuilder, ReturnType);
441 SPIRVGlobalRegistry *GR, LLT LowLevelType,
447 GR->assignSPIRVTypeToVReg(BaseType, DestinationReg, MIRBuilder.getMF());
460 SPIRVGlobalRegistry *GR, SPIRV::BuiltIn::BuiltIn BuiltinValue, LLT LLType,
465 LLT::pointer(0, GR->getPointerSize()));
466 SPIRVType *PtrType = GR->getOrCreateSPIRVPointerType(
468 GR->assignSPIRVTypeToVReg(PtrType, NewRegister, MIRBuilder.getMF());
471 Register Variable = GR->buildGlobalVariable(
479 buildLoadInst(VariableType, Variable, MIRBuilder, GR, LLType, Reg);
490 SPIRVGlobalRegistry *GR,
530 SPIRVGlobalRegistry *GR,
532 SPIRVType *IntType = GR->getOrCreateSPIRVIntegerType(BitWidth, MIRBuilder);
533 return GR->buildConstantInt(Val, MIRBuilder, IntType);
539 SPIRVGlobalRegistry *GR,
551 return buildConstantIntReg(Scope, MIRBuilder, GR);
557 SPIRVGlobalRegistry *GR) {
564 getMemSemanticsForStorageClass(GR->getPointerStorageClass(PtrRegister));
571 return buildConstantIntReg(Semantics, MIRBuilder, GR);
613 SPIRVGlobalRegistry *GR) {
614 Register TypeReg = GR->getSPIRVTypeID(Call->ReturnType);
628 ScopeRegister = buildConstantIntReg(SPIRV::Scope::Device, MIRBuilder, GR);
638 getMemSemanticsForStorageClass(GR->getPointerStorageClass(PtrRegister));
639 MemSemanticsReg = buildConstantIntReg(Semantics, MIRBuilder, GR);
654 SPIRVGlobalRegistry *GR) {
659 buildConstantIntReg(SPIRV::Scope::Device, MIRBuilder, GR);
664 getMemSemanticsForStorageClass(GR->getPointerStorageClass(PtrRegister));
665 Register MemSemanticsReg = buildConstantIntReg(Semantics, MIRBuilder, GR);
678 unsigned Opcode, MachineIRBuilder &MIRBuilder, SPIRVGlobalRegistry *GR) {
681 GR->getSPIRVTypeID(Call->ReturnType));
692 SPIRVType *SpvDesiredTy = GR->getSPIRVTypeForVReg(Desired);
695 assert(GR->getSPIRVTypeForVReg(ObjectPtr)->getOpcode() ==
697 unsigned ExpectedType = GR->getSPIRVTypeForVReg(ExpectedArg)->getOpcode();
701 assert(GR->isScalarOfType(Desired, SPIRV::OpTypeInt));
703 SPIRVType *SpvObjectPtrTy = GR->getSPIRVTypeForVReg(ObjectPtr);
736 MemSemEqualReg = buildConstantIntReg(MemSemEqual, MIRBuilder, GR);
738 MemSemUnequalReg = buildConstantIntReg(MemSemUnequal, MIRBuilder, GR);
753 ScopeReg = buildConstantIntReg(Scope, MIRBuilder, GR);
758 GR, LLT::scalar(32));
764 GR->assignSPIRVTypeToVReg(SpvDesiredTy, Tmp, MIRBuilder.getMF());
766 SPIRVType *IntTy = GR->getOrCreateSPIRVIntegerType(32, MIRBuilder);
769 .addUse(GR->getSPIRVTypeID(IntTy))
786 SPIRVGlobalRegistry *GR) {
789 GR->getSPIRVTypeID(Call->ReturnType));
798 MIRBuilder, GR, MRI);
806 Semantics, MIRBuilder, GR);
809 Register ValueTypeReg = GR->getSPIRVTypeID(Call->ReturnType);
821 GR->assignSPIRVTypeToVReg(Call->ReturnType, NegValueReg,
826 insertAssignInstr(NegValueReg, nullptr, Call->ReturnType, GR, MIRBuilder,
845 SPIRVGlobalRegistry *GR) {
865 .addUse(GR->getSPIRVTypeID(Call->ReturnType))
877 SPIRVGlobalRegistry *GR) {
879 Register TypeReg = GR->getSPIRVTypeID(Call->ReturnType);
890 Semantics, MIRBuilder, GR);
900 buildScopeReg(ScopeRegister, SPIRV::Scope::Device, MIRBuilder, GR, MRI);
914 SPIRVGlobalRegistry *GR) {
944 MemSemanticsReg = buildConstantIntReg(MemSemantics, MIRBuilder, GR);
970 ScopeReg = buildConstantIntReg(Scope, MIRBuilder, GR);
974 MIB.addUse(buildConstantIntReg(MemScope, MIRBuilder, GR));
1010 SPIRVGlobalRegistry *GR) {
1020 .addUse(GR->getSPIRVTypeID(Call->ReturnType))
1031 SPIRVGlobalRegistry *GR) {
1040 buildBoolRegister(MIRBuilder, Call->ReturnType, GR);
1045 .addUse(GR->getSPIRVTypeID(RelationType));
1052 Call->ReturnType, GR);
1057 SPIRVGlobalRegistry *GR) {
1066 GR->getSPIRVTypeID(Call->ReturnType));
1080 .addUse(GR->getSPIRVTypeID(Call->ReturnType))
1100 if (GR->getSPIRVTypeForVReg(Call->Arguments[0])->getOpcode() !=
1102 Arg0 = GR->buildConstantInt(getIConstVal(ConstRegister, MRI), MIRBuilder,
1103 GR->getOrCreateSPIRVBoolType(MIRBuilder));
1118 buildBoolRegister(MIRBuilder, Call->ReturnType, GR);
1122 Register ScopeRegister = buildConstantIntReg(Scope, MIRBuilder, GR);
1127 .addUse(GR->getSPIRVTypeID(GroupResultType))
1144 Call->ReturnType, GR);
1150 SPIRVGlobalRegistry *GR) {
1168 IsSet ? GR->getSPIRVTypeID(Call->ReturnType)
1175 if (SPIRVType *Arg0Type = GR->getSPIRVTypeForVReg(Call->Arguments[0])) {
1208 .addUse(GR->getSPIRVTypeID(Call->ReturnType));
1219 SPIRVGlobalRegistry *GR) {
1260 .addUse(GR->getSPIRVTypeID(Call->ReturnType))
1270 SPIRVGlobalRegistry *GR) {
1291 Register ScopeReg = buildConstantIntReg(ScopeArg, MIRBuilder, GR);
1295 .addUse(GR->getSPIRVTypeID(Call->ReturnType))
1329 SPIRVGlobalRegistry *GR,
1334 const unsigned PointerSize = GR->getPointerSize();
1336 GR->getOrCreateSPIRVIntegerType(PointerSize, MIRBuilder);
1354 GR->assignSPIRVTypeToVReg(PointerSizeType, DefaultReg,
1359 GR->buildConstantInt(DefaultValue, MIRBuilder, PointerSizeType);
1363 GR->getOrCreateSPIRVVectorType(PointerSizeType, 3, MIRBuilder);
1365 buildBuiltinVariableLoad(MIRBuilder, Vec3Ty, GR, BuiltinValue,
1372 GR->assignSPIRVTypeToVReg(PointerSizeType, Extracted, MIRBuilder.getMF());
1382 insertAssignInstr(Extracted, nullptr, PointerSizeType, GR, MIRBuilder,
1385 auto IndexType = GR->getSPIRVTypeForVReg(IndexRegister);
1386 auto BoolType = GR->getOrCreateSPIRVBoolType(MIRBuilder);
1391 GR->assignSPIRVTypeToVReg(BoolType, CompareRegister, MIRBuilder.getMF());
1395 GR->buildConstantInt(3, MIRBuilder, IndexType));
1400 GR->buildConstantInt(DefaultValue, MIRBuilder, PointerSizeType);
1408 GR->assignSPIRVTypeToVReg(PointerSizeType, SelectionResult,
1427 SPIRVGlobalRegistry *GR) {
1434 return genWorkgroupQuery(Call, MIRBuilder, GR, Value, 0);
1437 unsigned BitWidth = GR->getScalarOrVectorBitWidth(Call->ReturnType);
1445 return buildBuiltinVariableLoad(MIRBuilder, Call->ReturnType, GR, Value,
1451 SPIRVGlobalRegistry *GR) {
1461 return buildAtomicLoadInst(Call, MIRBuilder, GR);
1463 return buildAtomicStoreInst(Call, MIRBuilder, GR);
1467 GR);
1474 return buildAtomicRMWInst(Call, Opcode, MIRBuilder, GR);
1476 return buildBarrierInst(Call, SPIRV::OpMemoryBarrier, MIRBuilder, GR);
1479 return buildAtomicFlagInst(Call, Opcode, MIRBuilder, GR);
1483 GR->getSPIRVTypeID(Call->ReturnType));
1490 SPIRVGlobalRegistry *GR) {
1499 return buildAtomicFloatingRMWInst(Call, Opcode, MIRBuilder, GR);
1507 SPIRVGlobalRegistry *GR) {
1513 return buildBarrierInst(Call, Opcode, MIRBuilder, GR);
1526 SPIRVGlobalRegistry *GR) {
1529 GR->getSPIRVTypeID(Call->ReturnType));
1530 unsigned Opcode = GR->getSPIRVTypeForVReg(Call->Arguments[0])->getOpcode();
1535 .addUse(GR->getSPIRVTypeID(Call->ReturnType))
1543 SPIRVGlobalRegistry *GR) {
1550 LLT LLType = LLT::scalar(GR->getScalarOrVectorBitWidth(Call->ReturnType));
1553 MIRBuilder, Call->ReturnType, GR, Value, LLType, Call->ReturnRegister,
1559 SPIRVGlobalRegistry *GR) {
1566 return genWorkgroupQuery(Call, MIRBuilder, GR, Value, IsDefault ? 1 : 0);
1571 SPIRVGlobalRegistry *GR) {
1584 SPIRVType *ImgType = GR->getSPIRVTypeForVReg(Call->Arguments[0]);
1592 SPIRVType *IntTy = GR->getOrCreateSPIRVIntegerType(32, MIRBuilder);
1593 QueryResultType = GR->getOrCreateSPIRVVectorType(
1595 GR->assignSPIRVTypeToVReg(QueryResultType, QueryResult, MIRBuilder.getMF());
1603 .addUse(GR->getSPIRVTypeID(QueryResultType))
1606 MIB.addUse(buildConstantIntReg(0, MIRBuilder, GR)); // Lod id.
1615 Register TypeReg = GR->getSPIRVTypeID(Call->ReturnType);
1620 (NewType = GR->getSPIRVTypeForVReg(NewTypeReg)) != nullptr)
1629 insertAssignInstr(Call->ReturnRegister, nullptr, NewType, GR, MIRBuilder,
1635 .addUse(GR->getSPIRVTypeID(Call->ReturnType))
1646 SPIRVGlobalRegistry *GR) {
1658 GR->getSPIRVTypeForVReg(Image)->getOperand(2).getImm());
1677 .addUse(GR->getSPIRVTypeID(Call->ReturnType))
1717 SPIRVGlobalRegistry *GR) {
1729 if (!GR->isScalarOfType(Sampler, SPIRV::OpTypeSampler) &&
1732 Sampler = GR->buildConstantSampler(
1736 GR->getSPIRVTypeForVReg(Sampler));
1738 SPIRVType *ImageType = GR->getSPIRVTypeForVReg(Image);
1740 GR->getOrCreateOpTypeSampledImage(ImageType, MIRBuilder);
1745 .addUse(GR->getSPIRVTypeID(SampledImageType))
1749 Register Lod = GR->buildConstantFP(APFloat::getZero(APFloat::IEEEsingle()),
1755 GR->getOrCreateSPIRVVectorType(Call->ReturnType, 4, MIRBuilder);
1758 LLT LLType = LLT::scalar(GR->getScalarOrVectorBitWidth(TempType));
1761 GR->assignSPIRVTypeToVReg(TempType, TempRegister, MIRBuilder.getMF());
1765 .addUse(GR->getSPIRVTypeID(TempType))
1774 .addUse(GR->getSPIRVTypeID(Call->ReturnType))
1780 .addUse(GR->getSPIRVTypeID(Call->ReturnType))
1788 .addUse(GR->getSPIRVTypeID(Call->ReturnType))
1797 SPIRVGlobalRegistry *GR) {
1811 SPIRVGlobalRegistry *GR) {
1817 Register Sampler = GR->buildConstantSampler(
1825 SPIRVType *ImageType = GR->getSPIRVTypeForVReg(Image);
1827 GR->getOrCreateOpTypeSampledImage(ImageType, MIRBuilder);
1834 .addUse(GR->getSPIRVTypeID(SampledImageType))
1849 : GR->getOrCreateSPIRVTypeByName(ReturnType, MIRBuilder);
1861 .addUse(GR->getSPIRVTypeID(Type))
1880 SPIRVGlobalRegistry *GR) {
1882 GR->getSPIRVTypeID(Call->ReturnType));
1887 SPIRVGlobalRegistry *GR) {
1902 Register TypeReg = GR->getSPIRVTypeID(Call->ReturnType);
1904 SPIRVType *CoopMatrType = GR->getSPIRVTypeForVReg(Call->Arguments[0]);
1919 SPIRVGlobalRegistry *GR) {
1950 .addUse(GR->getSPIRVTypeID(Call->ReturnType));
1963 .addUse(GR->getSPIRVTypeID(Call->ReturnType));
1975 SPIRVGlobalRegistry *GR) {
1978 SPIRVType *PtrType = GR->getSPIRVTypeForVReg(Call->Arguments[0]);
1982 SPIRVType *StructType = GR->getSPIRVTypeForVReg(TypeReg);
1985 GR->assignSPIRVTypeToVReg(StructType, TmpReg, MF);
2001 SPIRVType *SpvTy = GR->getSPIRVTypeForVReg(GlobalWorkSize);
2011 unsigned BitWidth = GR->getPointerSize() == 64 ? 64 : 32;
2014 SPIRVType *SpvFieldTy = GR->getOrCreateSPIRVType(FieldTy, MIRBuilder);
2016 GR->assignSPIRVTypeToVReg(SpvFieldTy, GlobalWorkSize, MF);
2019 .addUse(GR->getSPIRVTypeID(SpvFieldTy))
2023 Const = GR->getOrCreateConstIntArray(0, Size, *MIRBuilder.getInsertPt(),
2026 Const = GR->buildConstantInt(0, MIRBuilder, SpvTy);
2048 SPIRVGlobalRegistry *GR) {
2058 return GR->getOrCreateSPIRVType(PtrType, MIRBuilder);
2063 SPIRVGlobalRegistry *GR) {
2068 const SPIRVType *Int32Ty = GR->getOrCreateSPIRVIntegerType(32, MIRBuilder);
2087 const LLT LLType = LLT::pointer(SC, GR->getPointerSize());
2088 const SPIRVType *PointerSizeTy = GR->getOrCreateSPIRVPointerType(
2093 GR->assignSPIRVTypeToVReg(PointerSizeTy, Reg, MIRBuilder.getMF());
2099 .addUse(buildConstantIntReg(0, MIRBuilder, GR)) // Indices.
2100 .addUse(buildConstantIntReg(I, MIRBuilder, GR));
2108 .addUse(GR->getSPIRVTypeID(Int32Ty));
2117 MIB.addUse(buildConstantIntReg(0, MIRBuilder, GR)); // Dummy num events.
2118 Register NullPtr = GR->getOrCreateConstNullPtr(
2119 MIRBuilder, getOrCreateSPIRVDeviceEventPointer(MIRBuilder, GR));
2136 MIB.addUse(buildConstantIntReg(DL.getTypeStoreSize(PType), MIRBuilder, GR));
2139 buildConstantIntReg(DL.getPrefTypeAlign(PType).value(), MIRBuilder, GR));
2148 SPIRVGlobalRegistry *GR) {
2163 .addUse(GR->getSPIRVTypeID(Call->ReturnType));
2168 .addUse(GR->getSPIRVTypeID(Call->ReturnType))
2185 return buildNDRange(Call, MIRBuilder, GR);
2187 return buildEnqueueKernel(Call, MIRBuilder, GR);
2195 SPIRVGlobalRegistry *GR) {
2202 Register TypeReg = GR->getSPIRVTypeID(Call->ReturnType);
2207 auto Scope = buildConstantIntReg(SPIRV::Scope::Workgroup, MIRBuilder, GR);
2214 : GR->getOrCreateSPIRVTypeByName("spirv.Event", MIRBuilder);
2215 Register TypeReg = GR->getSPIRVTypeID(NewType ? NewType : Call->ReturnType);
2227 : buildConstantIntReg(1, MIRBuilder, GR))
2230 insertAssignInstr(Call->ReturnRegister, nullptr, NewType, GR, MIRBuilder,
2247 SPIRVGlobalRegistry *GR) {
2257 GR->getSPIRVTypeID(Call->ReturnType));
2271 if (GR->isScalarOrVectorOfType(Call->Arguments[0], SPIRV::OpTypeInt)) {
2273 if (GR->isScalarOrVectorOfType(Call->ReturnRegister, SPIRV::OpTypeInt)) {
2281 } else if (GR->isScalarOrVectorOfType(Call->ReturnRegister,
2291 GR->getScalarOrVectorComponentCount(Call->Arguments[0]) ==
2292 GR->getScalarOrVectorComponentCount(Call->ReturnRegister);
2300 } else if (GR->isScalarOrVectorOfType(Call->Arguments[0],
2303 if (GR->isScalarOrVectorOfType(Call->ReturnRegister, SPIRV::OpTypeInt)) {
2312 GR->getScalarOrVectorComponentCount(Call->Arguments[0]) ==
2313 GR->getScalarOrVectorComponentCount(Call->ReturnRegister);
2319 } else if (GR->isScalarOrVectorOfType(Call->ReturnRegister,
2344 .addUse(GR->getSPIRVTypeID(Call->ReturnType))
2351 SPIRVGlobalRegistry *GR) {
2360 .addUse(GR->getSPIRVTypeID(Call->ReturnType))
2377 SPIRVGlobalRegistry *GR) {
2387 MIB.addUse(GR->getSPIRVTypeID(Call->ReturnType));
2490 SPIRVGlobalRegistry *GR) {
2497 ReturnType = GR->assignTypeToVReg(OrigRetTy, OrigRet, MIRBuilder);
2503 ReturnType = GR->assignTypeToVReg(OrigRetTy, ReturnRegister, MIRBuilder);
2524 return generateExtInst(Call.get(), MIRBuilder, GR);
2526 return generateRelationalInst(Call.get(), MIRBuilder, GR);
2528 return generateGroupInst(Call.get(), MIRBuilder, GR);
2530 return generateBuiltinVar(Call.get(), MIRBuilder, GR);
2532 return generateAtomicInst(Call.get(), MIRBuilder, GR);
2534 return generateAtomicFloatingInst(Call.get(), MIRBuilder, GR);
2536 return generateBarrierInst(Call.get(), MIRBuilder, GR);
2540 return generateDotOrFMulInst(Call.get(), MIRBuilder, GR);
2542 return generateWaveInst(Call.get(), MIRBuilder, GR);
2544 return generateGetQueryInst(Call.get(), MIRBuilder, GR);
2546 return generateImageSizeQueryInst(Call.get(), MIRBuilder, GR);
2548 return generateImageMiscQueryInst(Call.get(), MIRBuilder, GR);
2550 return generateReadImageInst(DemangledCall, Call.get(), MIRBuilder, GR);
2552 return generateWriteImageInst(Call.get(), MIRBuilder, GR);
2554 return generateSampleImageInst(DemangledCall, Call.get(), MIRBuilder, GR);
2558 return generateConstructInst(Call.get(), MIRBuilder, GR);
2560 return generateSpecConstantInst(Call.get(), MIRBuilder, GR);
2562 return generateEnqueueInst(Call.get(), MIRBuilder, GR);
2564 return generateAsyncCopy(Call.get(), MIRBuilder, GR);
2566 return generateConvertInst(DemangledCall, Call.get(), MIRBuilder, GR);
2568 return generateVectorLoadStoreInst(Call.get(), MIRBuilder, GR);
2570 return generateLoadStoreInst(Call.get(), MIRBuilder, GR);
2572 return generateIntelSubgroupsInst(Call.get(), MIRBuilder, GR);
2574 return generateGroupUniformInst(Call.get(), MIRBuilder, GR);
2576 return generateKernelClockInst(Call.get(), MIRBuilder, GR);
2578 return generateCoopMatrInst(Call.get(), MIRBuilder, GR);
2678 SPIRVGlobalRegistry *GR) {
2681 return GR->getOrCreateOpTypeByOpcode(ExtensionType, MIRBuilder, Opcode);
2685 SPIRVGlobalRegistry *GR) {
2687 return GR->getOrCreateOpTypeSampler(MIRBuilder);
2692 SPIRVGlobalRegistry *GR) {
2696 return GR->getOrCreateOpTypePipe(MIRBuilder,
2703 SPIRVGlobalRegistry *GR) {
2709 GR->getOrCreateSPIRVType(ExtensionType->getTypeParameter(0), MIRBuilder);
2711 return GR->getOrCreateOpTypeCoopMatr(
2720 MachineIRBuilder &MIRBuilder, SPIRVGlobalRegistry *GR) {
2724 GR->getOrCreateSPIRVType(ExtensionType->getTypeParameter(0), MIRBuilder);
2728 return GR->getOrCreateOpTypeImage(
2742 SPIRVGlobalRegistry *GR) {
2744 OpaqueType, SPIRV::AccessQualifier::ReadOnly, MIRBuilder, GR);
2746 return GR->getOrCreateOpTypeSampledImage(OpaqueImageType, MIRBuilder);
2802 SPIRVGlobalRegistry *GR) {
2833 TargetType = getImageType(BuiltinType, AccessQual, MIRBuilder, GR);
2836 TargetType = getPipeType(BuiltinType, MIRBuilder, GR);
2839 TargetType = GR->getOrCreateOpTypeDeviceEvent(MIRBuilder);
2842 TargetType = getSamplerType(MIRBuilder, GR);
2845 TargetType = getSampledImageType(BuiltinType, MIRBuilder, GR);
2848 TargetType = getCoopMatrType(BuiltinType, MIRBuilder, GR);
2852 getNonParameterizedType(BuiltinType, TypeRecord, MIRBuilder, GR);
2859 buildOpName(GR->getSPIRVTypeID(TargetType), Name, MIRBuilder);