Lines Matching refs:spirv
187 convertStructTypeWithOffset(spirv::StructType type, in convertStructTypeWithOffset()
201 static Type convertStructTypePacked(spirv::StructType type, in convertStructTypePacked()
225 if (auto loadOp = dyn_cast<spirv::LoadOp>(op)) { in replaceWithLoadOrStore()
230 loadOp, dstType, spirv::LoadOpAdaptor(operands).ptr(), alignment, in replaceWithLoadOrStore()
234 auto storeOp = cast<spirv::StoreOp>(op); in replaceWithLoadOrStore()
235 spirv::StoreOpAdaptor adaptor(operands); in replaceWithLoadOrStore()
249 static Optional<Type> convertArrayType(spirv::ArrayType type, in convertArrayType()
253 auto sizeInBytes = elementType.cast<spirv::SPIRVType>().getSizeInBytes(); in convertArrayType()
264 static Type convertPointerType(spirv::PointerType type, in convertPointerType()
273 static Optional<Type> convertRuntimeArrayType(spirv::RuntimeArrayType type, in convertRuntimeArrayType()
283 static Optional<Type> convertStructType(spirv::StructType type, in convertStructType()
285 SmallVector<spirv::StructType::MemberDecorationInfo, 4> memberDecorations; in convertStructType()
300 class AccessChainPattern : public SPIRVToLLVMConversion<spirv::AccessChainOp> {
302 using SPIRVToLLVMConversion<spirv::AccessChainOp>::SPIRVToLLVMConversion;
305 matchAndRewrite(spirv::AccessChainOp op, OpAdaptor adaptor, in matchAndRewrite()
325 class AddressOfPattern : public SPIRVToLLVMConversion<spirv::AddressOfOp> {
327 using SPIRVToLLVMConversion<spirv::AddressOfOp>::SPIRVToLLVMConversion;
330 matchAndRewrite(spirv::AddressOfOp op, OpAdaptor adaptor, in matchAndRewrite()
341 : public SPIRVToLLVMConversion<spirv::BitFieldInsertOp> {
343 using SPIRVToLLVMConversion<spirv::BitFieldInsertOp>::SPIRVToLLVMConversion;
346 matchAndRewrite(spirv::BitFieldInsertOp op, OpAdaptor adaptor, in matchAndRewrite()
385 : public SPIRVToLLVMConversion<spirv::ConstantOp> {
387 using SPIRVToLLVMConversion<spirv::ConstantOp>::SPIRVToLLVMConversion;
390 matchAndRewrite(spirv::ConstantOp constOp, OpAdaptor adaptor, in matchAndRewrite()
429 : public SPIRVToLLVMConversion<spirv::BitFieldSExtractOp> {
431 using SPIRVToLLVMConversion<spirv::BitFieldSExtractOp>::SPIRVToLLVMConversion;
434 matchAndRewrite(spirv::BitFieldSExtractOp op, OpAdaptor adaptor, in matchAndRewrite()
482 : public SPIRVToLLVMConversion<spirv::BitFieldUExtractOp> {
484 using SPIRVToLLVMConversion<spirv::BitFieldUExtractOp>::SPIRVToLLVMConversion;
487 matchAndRewrite(spirv::BitFieldUExtractOp op, OpAdaptor adaptor, in matchAndRewrite()
516 class BranchConversionPattern : public SPIRVToLLVMConversion<spirv::BranchOp> {
518 using SPIRVToLLVMConversion<spirv::BranchOp>::SPIRVToLLVMConversion;
521 matchAndRewrite(spirv::BranchOp branchOp, OpAdaptor adaptor, in matchAndRewrite()
530 : public SPIRVToLLVMConversion<spirv::BranchConditionalOp> {
533 spirv::BranchConditionalOp>::SPIRVToLLVMConversion;
536 matchAndRewrite(spirv::BranchConditionalOp op, OpAdaptor adaptor, in matchAndRewrite()
557 : public SPIRVToLLVMConversion<spirv::CompositeExtractOp> {
559 using SPIRVToLLVMConversion<spirv::CompositeExtractOp>::SPIRVToLLVMConversion;
562 matchAndRewrite(spirv::CompositeExtractOp op, OpAdaptor adaptor, in matchAndRewrite()
587 : public SPIRVToLLVMConversion<spirv::CompositeInsertOp> {
589 using SPIRVToLLVMConversion<spirv::CompositeInsertOp>::SPIRVToLLVMConversion;
592 matchAndRewrite(spirv::CompositeInsertOp op, OpAdaptor adaptor, in matchAndRewrite()
635 : public SPIRVToLLVMConversion<spirv::ExecutionModeOp> {
637 using SPIRVToLLVMConversion<spirv::ExecutionModeOp>::SPIRVToLLVMConversion;
640 matchAndRewrite(spirv::ExecutionModeOp op, OpAdaptor adaptor, in matchAndRewrite()
715 : public SPIRVToLLVMConversion<spirv::GlobalVariableOp> {
717 using SPIRVToLLVMConversion<spirv::GlobalVariableOp>::SPIRVToLLVMConversion;
720 matchAndRewrite(spirv::GlobalVariableOp op, OpAdaptor adaptor, in matchAndRewrite()
727 auto srcType = op.type().cast<spirv::PointerType>(); in matchAndRewrite()
737 case spirv::StorageClass::Input: in matchAndRewrite()
738 case spirv::StorageClass::Private: in matchAndRewrite()
739 case spirv::StorageClass::Output: in matchAndRewrite()
740 case spirv::StorageClass::StorageBuffer: in matchAndRewrite()
741 case spirv::StorageClass::UniformConstant: in matchAndRewrite()
750 bool isConstant = (storageClass == spirv::StorageClass::Input) || in matchAndRewrite()
751 (storageClass == spirv::StorageClass::UniformConstant); in matchAndRewrite()
757 auto linkage = storageClass == spirv::StorageClass::Private in matchAndRewrite()
805 : public SPIRVToLLVMConversion<spirv::FunctionCallOp> {
807 using SPIRVToLLVMConversion<spirv::FunctionCallOp>::SPIRVToLLVMConversion;
810 matchAndRewrite(spirv::FunctionCallOp callOp, OpAdaptor adaptor, in matchAndRewrite()
869 : public SPIRVToLLVMConversion<spirv::GLInverseSqrtOp> {
871 using SPIRVToLLVMConversion<spirv::GLInverseSqrtOp>::SPIRVToLLVMConversion;
874 matchAndRewrite(spirv::GLInverseSqrtOp op, OpAdaptor adaptor, in matchAndRewrite()
906 case spirv::MemoryAccess::Aligned: in matchAndRewrite()
907 case spirv::MemoryAccess::None: in matchAndRewrite()
908 case spirv::MemoryAccess::Nontemporal: in matchAndRewrite()
909 case spirv::MemoryAccess::Volatile: { in matchAndRewrite()
911 memoryAccess == spirv::MemoryAccess::Aligned ? *op.alignment() : 0; in matchAndRewrite()
912 bool isNonTemporal = memoryAccess == spirv::MemoryAccess::Nontemporal; in matchAndRewrite()
913 bool isVolatile = memoryAccess == spirv::MemoryAccess::Volatile; in matchAndRewrite()
967 class ReturnPattern : public SPIRVToLLVMConversion<spirv::ReturnOp> {
969 using SPIRVToLLVMConversion<spirv::ReturnOp>::SPIRVToLLVMConversion;
972 matchAndRewrite(spirv::ReturnOp returnOp, OpAdaptor adaptor, in matchAndRewrite()
980 class ReturnValuePattern : public SPIRVToLLVMConversion<spirv::ReturnValueOp> {
982 using SPIRVToLLVMConversion<spirv::ReturnValueOp>::SPIRVToLLVMConversion;
985 matchAndRewrite(spirv::ReturnValueOp returnValueOp, OpAdaptor adaptor, in matchAndRewrite()
1041 class LoopPattern : public SPIRVToLLVMConversion<spirv::LoopOp> {
1043 using SPIRVToLLVMConversion<spirv::LoopOp>::SPIRVToLLVMConversion;
1046 matchAndRewrite(spirv::LoopOp loopOp, OpAdaptor adaptor, in matchAndRewrite()
1049 if (loopOp.loop_control() != spirv::LoopControl::None) in matchAndRewrite()
1064 auto brOp = dyn_cast<spirv::BranchOp>(entryBlock->getOperations().front()); in matchAndRewrite()
1088 class SelectionPattern : public SPIRVToLLVMConversion<spirv::SelectionOp> {
1090 using SPIRVToLLVMConversion<spirv::SelectionOp>::SPIRVToLLVMConversion;
1093 matchAndRewrite(spirv::SelectionOp op, OpAdaptor adaptor, in matchAndRewrite()
1098 if (op.selection_control() != spirv::SelectionControl::None) in matchAndRewrite()
1125 auto condBrOp = dyn_cast<spirv::BranchConditionalOp>( in matchAndRewrite()
1194 class TanPattern : public SPIRVToLLVMConversion<spirv::GLTanOp> {
1196 using SPIRVToLLVMConversion<spirv::GLTanOp>::SPIRVToLLVMConversion;
1199 matchAndRewrite(spirv::GLTanOp tanOp, OpAdaptor adaptor, in matchAndRewrite()
1219 class TanhPattern : public SPIRVToLLVMConversion<spirv::GLTanhOp> {
1221 using SPIRVToLLVMConversion<spirv::GLTanhOp>::SPIRVToLLVMConversion;
1224 matchAndRewrite(spirv::GLTanhOp tanhOp, OpAdaptor adaptor, in matchAndRewrite()
1247 class VariablePattern : public SPIRVToLLVMConversion<spirv::VariableOp> {
1249 using SPIRVToLLVMConversion<spirv::VariableOp>::SPIRVToLLVMConversion;
1252 matchAndRewrite(spirv::VariableOp varOp, OpAdaptor adaptor, in matchAndRewrite()
1256 auto pointerTo = srcType.cast<spirv::PointerType>().getPointeeType(); in matchAndRewrite()
1282 class FuncConversionPattern : public SPIRVToLLVMConversion<spirv::FuncOp> {
1284 using SPIRVToLLVMConversion<spirv::FuncOp>::SPIRVToLLVMConversion;
1287 matchAndRewrite(spirv::FuncOp funcOp, OpAdaptor adaptor, in matchAndRewrite()
1313 DISPATCH(spirv::FunctionControl::Inline, in matchAndRewrite()
1315 DISPATCH(spirv::FunctionControl::DontInline, in matchAndRewrite()
1317 DISPATCH(spirv::FunctionControl::Pure, in matchAndRewrite()
1319 DISPATCH(spirv::FunctionControl::Const, in matchAndRewrite()
1345 class ModuleConversionPattern : public SPIRVToLLVMConversion<spirv::ModuleOp> {
1347 using SPIRVToLLVMConversion<spirv::ModuleOp>::SPIRVToLLVMConversion;
1350 matchAndRewrite(spirv::ModuleOp spvModuleOp, OpAdaptor adaptor, in matchAndRewrite()
1369 : public SPIRVToLLVMConversion<spirv::VectorShuffleOp> {
1371 using SPIRVToLLVMConversion<spirv::VectorShuffleOp>::SPIRVToLLVMConversion;
1373 matchAndRewrite(spirv::VectorShuffleOp op, OpAdaptor adaptor, in matchAndRewrite()
1430 typeConverter.addConversion([&](spirv::ArrayType type) { in populateSPIRVToLLVMTypeConversion()
1433 typeConverter.addConversion([&](spirv::PointerType type) { in populateSPIRVToLLVMTypeConversion()
1436 typeConverter.addConversion([&](spirv::RuntimeArrayType type) { in populateSPIRVToLLVMTypeConversion()
1439 typeConverter.addConversion([&](spirv::StructType type) { in populateSPIRVToLLVMTypeConversion()
1448 DirectConversionPattern<spirv::IAddOp, LLVM::AddOp>, in populateSPIRVToLLVMConversionPatterns()
1449 DirectConversionPattern<spirv::IMulOp, LLVM::MulOp>, in populateSPIRVToLLVMConversionPatterns()
1450 DirectConversionPattern<spirv::ISubOp, LLVM::SubOp>, in populateSPIRVToLLVMConversionPatterns()
1451 DirectConversionPattern<spirv::FAddOp, LLVM::FAddOp>, in populateSPIRVToLLVMConversionPatterns()
1452 DirectConversionPattern<spirv::FDivOp, LLVM::FDivOp>, in populateSPIRVToLLVMConversionPatterns()
1453 DirectConversionPattern<spirv::FMulOp, LLVM::FMulOp>, in populateSPIRVToLLVMConversionPatterns()
1454 DirectConversionPattern<spirv::FNegateOp, LLVM::FNegOp>, in populateSPIRVToLLVMConversionPatterns()
1455 DirectConversionPattern<spirv::FRemOp, LLVM::FRemOp>, in populateSPIRVToLLVMConversionPatterns()
1456 DirectConversionPattern<spirv::FSubOp, LLVM::FSubOp>, in populateSPIRVToLLVMConversionPatterns()
1457 DirectConversionPattern<spirv::SDivOp, LLVM::SDivOp>, in populateSPIRVToLLVMConversionPatterns()
1458 DirectConversionPattern<spirv::SRemOp, LLVM::SRemOp>, in populateSPIRVToLLVMConversionPatterns()
1459 DirectConversionPattern<spirv::UDivOp, LLVM::UDivOp>, in populateSPIRVToLLVMConversionPatterns()
1460 DirectConversionPattern<spirv::UModOp, LLVM::URemOp>, in populateSPIRVToLLVMConversionPatterns()
1464 DirectConversionPattern<spirv::BitCountOp, LLVM::CtPopOp>, in populateSPIRVToLLVMConversionPatterns()
1465 DirectConversionPattern<spirv::BitReverseOp, LLVM::BitReverseOp>, in populateSPIRVToLLVMConversionPatterns()
1466 DirectConversionPattern<spirv::BitwiseAndOp, LLVM::AndOp>, in populateSPIRVToLLVMConversionPatterns()
1467 DirectConversionPattern<spirv::BitwiseOrOp, LLVM::OrOp>, in populateSPIRVToLLVMConversionPatterns()
1468 DirectConversionPattern<spirv::BitwiseXorOp, LLVM::XOrOp>, in populateSPIRVToLLVMConversionPatterns()
1469 NotPattern<spirv::NotOp>, in populateSPIRVToLLVMConversionPatterns()
1472 DirectConversionPattern<spirv::BitcastOp, LLVM::BitcastOp>, in populateSPIRVToLLVMConversionPatterns()
1473 DirectConversionPattern<spirv::ConvertFToSOp, LLVM::FPToSIOp>, in populateSPIRVToLLVMConversionPatterns()
1474 DirectConversionPattern<spirv::ConvertFToUOp, LLVM::FPToUIOp>, in populateSPIRVToLLVMConversionPatterns()
1475 DirectConversionPattern<spirv::ConvertSToFOp, LLVM::SIToFPOp>, in populateSPIRVToLLVMConversionPatterns()
1476 DirectConversionPattern<spirv::ConvertUToFOp, LLVM::UIToFPOp>, in populateSPIRVToLLVMConversionPatterns()
1477 IndirectCastPattern<spirv::FConvertOp, LLVM::FPExtOp, LLVM::FPTruncOp>, in populateSPIRVToLLVMConversionPatterns()
1478 IndirectCastPattern<spirv::SConvertOp, LLVM::SExtOp, LLVM::TruncOp>, in populateSPIRVToLLVMConversionPatterns()
1479 IndirectCastPattern<spirv::UConvertOp, LLVM::ZExtOp, LLVM::TruncOp>, in populateSPIRVToLLVMConversionPatterns()
1482 IComparePattern<spirv::IEqualOp, LLVM::ICmpPredicate::eq>, in populateSPIRVToLLVMConversionPatterns()
1483 IComparePattern<spirv::INotEqualOp, LLVM::ICmpPredicate::ne>, in populateSPIRVToLLVMConversionPatterns()
1484 FComparePattern<spirv::FOrdEqualOp, LLVM::FCmpPredicate::oeq>, in populateSPIRVToLLVMConversionPatterns()
1485 FComparePattern<spirv::FOrdGreaterThanOp, LLVM::FCmpPredicate::ogt>, in populateSPIRVToLLVMConversionPatterns()
1486 FComparePattern<spirv::FOrdGreaterThanEqualOp, LLVM::FCmpPredicate::oge>, in populateSPIRVToLLVMConversionPatterns()
1487 FComparePattern<spirv::FOrdLessThanEqualOp, LLVM::FCmpPredicate::ole>, in populateSPIRVToLLVMConversionPatterns()
1488 FComparePattern<spirv::FOrdLessThanOp, LLVM::FCmpPredicate::olt>, in populateSPIRVToLLVMConversionPatterns()
1489 FComparePattern<spirv::FOrdNotEqualOp, LLVM::FCmpPredicate::one>, in populateSPIRVToLLVMConversionPatterns()
1490 FComparePattern<spirv::FUnordEqualOp, LLVM::FCmpPredicate::ueq>, in populateSPIRVToLLVMConversionPatterns()
1491 FComparePattern<spirv::FUnordGreaterThanOp, LLVM::FCmpPredicate::ugt>, in populateSPIRVToLLVMConversionPatterns()
1492 FComparePattern<spirv::FUnordGreaterThanEqualOp, in populateSPIRVToLLVMConversionPatterns()
1494 FComparePattern<spirv::FUnordLessThanEqualOp, LLVM::FCmpPredicate::ule>, in populateSPIRVToLLVMConversionPatterns()
1495 FComparePattern<spirv::FUnordLessThanOp, LLVM::FCmpPredicate::ult>, in populateSPIRVToLLVMConversionPatterns()
1496 FComparePattern<spirv::FUnordNotEqualOp, LLVM::FCmpPredicate::une>, in populateSPIRVToLLVMConversionPatterns()
1497 IComparePattern<spirv::SGreaterThanOp, LLVM::ICmpPredicate::sgt>, in populateSPIRVToLLVMConversionPatterns()
1498 IComparePattern<spirv::SGreaterThanEqualOp, LLVM::ICmpPredicate::sge>, in populateSPIRVToLLVMConversionPatterns()
1499 IComparePattern<spirv::SLessThanEqualOp, LLVM::ICmpPredicate::sle>, in populateSPIRVToLLVMConversionPatterns()
1500 IComparePattern<spirv::SLessThanOp, LLVM::ICmpPredicate::slt>, in populateSPIRVToLLVMConversionPatterns()
1501 IComparePattern<spirv::UGreaterThanOp, LLVM::ICmpPredicate::ugt>, in populateSPIRVToLLVMConversionPatterns()
1502 IComparePattern<spirv::UGreaterThanEqualOp, LLVM::ICmpPredicate::uge>, in populateSPIRVToLLVMConversionPatterns()
1503 IComparePattern<spirv::ULessThanEqualOp, LLVM::ICmpPredicate::ule>, in populateSPIRVToLLVMConversionPatterns()
1504 IComparePattern<spirv::ULessThanOp, LLVM::ICmpPredicate::ult>, in populateSPIRVToLLVMConversionPatterns()
1512 ErasePattern<spirv::MergeOp>, in populateSPIRVToLLVMConversionPatterns()
1515 ErasePattern<spirv::EntryPointOp>, ExecutionModePattern, in populateSPIRVToLLVMConversionPatterns()
1518 DirectConversionPattern<spirv::GLCeilOp, LLVM::FCeilOp>, in populateSPIRVToLLVMConversionPatterns()
1519 DirectConversionPattern<spirv::GLCosOp, LLVM::CosOp>, in populateSPIRVToLLVMConversionPatterns()
1520 DirectConversionPattern<spirv::GLExpOp, LLVM::ExpOp>, in populateSPIRVToLLVMConversionPatterns()
1521 DirectConversionPattern<spirv::GLFAbsOp, LLVM::FAbsOp>, in populateSPIRVToLLVMConversionPatterns()
1522 DirectConversionPattern<spirv::GLFloorOp, LLVM::FFloorOp>, in populateSPIRVToLLVMConversionPatterns()
1523 DirectConversionPattern<spirv::GLFMaxOp, LLVM::MaxNumOp>, in populateSPIRVToLLVMConversionPatterns()
1524 DirectConversionPattern<spirv::GLFMinOp, LLVM::MinNumOp>, in populateSPIRVToLLVMConversionPatterns()
1525 DirectConversionPattern<spirv::GLLogOp, LLVM::LogOp>, in populateSPIRVToLLVMConversionPatterns()
1526 DirectConversionPattern<spirv::GLSinOp, LLVM::SinOp>, in populateSPIRVToLLVMConversionPatterns()
1527 DirectConversionPattern<spirv::GLSMaxOp, LLVM::SMaxOp>, in populateSPIRVToLLVMConversionPatterns()
1528 DirectConversionPattern<spirv::GLSMinOp, LLVM::SMinOp>, in populateSPIRVToLLVMConversionPatterns()
1529 DirectConversionPattern<spirv::GLSqrtOp, LLVM::SqrtOp>, in populateSPIRVToLLVMConversionPatterns()
1533 DirectConversionPattern<spirv::LogicalAndOp, LLVM::AndOp>, in populateSPIRVToLLVMConversionPatterns()
1534 DirectConversionPattern<spirv::LogicalOrOp, LLVM::OrOp>, in populateSPIRVToLLVMConversionPatterns()
1535 IComparePattern<spirv::LogicalEqualOp, LLVM::ICmpPredicate::eq>, in populateSPIRVToLLVMConversionPatterns()
1536 IComparePattern<spirv::LogicalNotEqualOp, LLVM::ICmpPredicate::ne>, in populateSPIRVToLLVMConversionPatterns()
1537 NotPattern<spirv::LogicalNotOp>, in populateSPIRVToLLVMConversionPatterns()
1541 LoadStorePattern<spirv::LoadOp>, LoadStorePattern<spirv::StoreOp>, in populateSPIRVToLLVMConversionPatterns()
1546 DirectConversionPattern<spirv::SelectOp, LLVM::SelectOp>, in populateSPIRVToLLVMConversionPatterns()
1547 DirectConversionPattern<spirv::UndefOp, LLVM::UndefOp>, in populateSPIRVToLLVMConversionPatterns()
1551 ShiftPattern<spirv::ShiftRightArithmeticOp, LLVM::AShrOp>, in populateSPIRVToLLVMConversionPatterns()
1552 ShiftPattern<spirv::ShiftRightLogicalOp, LLVM::LShrOp>, in populateSPIRVToLLVMConversionPatterns()
1553 ShiftPattern<spirv::ShiftLeftLogicalOp, LLVM::ShlOp>, in populateSPIRVToLLVMConversionPatterns()
1577 auto spvModules = module.getOps<spirv::ModuleOp>(); in encodeBindAttribute()
1579 spvModule.walk([&](spirv::GlobalVariableOp op) { in encodeBindAttribute()