Lines Matching refs:spirv
335 if (auto arrayType = dstType.dyn_cast<spirv::ArrayType>()) in matchAndRewrite()
376 rewriter.replaceOpWithNewOp<spirv::ConstantOp>(constOp, dstType, in matchAndRewrite()
418 rewriter.replaceOpWithNewOp<spirv::ConstantOp>(constOp, dstType, dstAttr); in matchAndRewrite()
429 rewriter.replaceOpWithNewOp<spirv::ConstantOp>(constOp, dstType, dstAttr); in matchAndRewrite()
440 rewriter.replaceOpWithNewOp<spirv::ConstantOp>(constOp, dstType, dstAttr); in matchAndRewrite()
466 Value abs = builder.create<spirv::UModOp>(loc, lhsAbs, rhsAbs); in emulateSignedRemainder()
471 isPositive = builder.create<spirv::IEqualOp>(loc, lhs, lhsAbs); in emulateSignedRemainder()
473 isPositive = builder.create<spirv::IEqualOp>(loc, rhs, rhsAbs); in emulateSignedRemainder()
474 Value absNegate = builder.create<spirv::SNegateOp>(loc, type, abs); in emulateSignedRemainder()
475 return builder.create<spirv::SelectOp>(loc, type, isPositive, abs, absNegate); in emulateSignedRemainder()
481 Value result = emulateSignedRemainder<spirv::GLSAbsOp>( in matchAndRewrite()
496 Value result = emulateSignedRemainder<spirv::CLSAbsOp>( in matchAndRewrite()
543 rewriter.replaceOpWithNewOp<spirv::BitwiseXorOp>(op, dstType, in matchAndRewrite()
564 rewriter.replaceOpWithNewOp<spirv::LogicalNotEqualOp>(op, dstType, in matchAndRewrite()
583 Value zero = spirv::ConstantOp::getZero(dstType, loc, rewriter); in matchAndRewrite()
584 Value one = spirv::ConstantOp::getOne(dstType, loc, rewriter); in matchAndRewrite()
585 rewriter.template replaceOpWithNewOp<spirv::SelectOp>( in matchAndRewrite()
604 Value zero = spirv::ConstantOp::getZero(dstType, loc, rewriter); in matchAndRewrite()
605 Value one = spirv::ConstantOp::getOne(dstType, loc, rewriter); in matchAndRewrite()
606 rewriter.template replaceOpWithNewOp<spirv::SelectOp>( in matchAndRewrite()
626 Value mask = spirv::ConstantOp::getOne(srcType, loc, rewriter); in matchAndRewrite()
627 Value maskedSrc = rewriter.create<spirv::BitwiseAndOp>( in matchAndRewrite()
629 Value isOne = rewriter.create<spirv::IEqualOp>(loc, maskedSrc, mask); in matchAndRewrite()
631 Value zero = spirv::ConstantOp::getZero(dstType, loc, rewriter); in matchAndRewrite()
632 Value one = spirv::ConstantOp::getOne(dstType, loc, rewriter); in matchAndRewrite()
633 rewriter.replaceOpWithNewOp<spirv::SelectOp>(op, dstType, isOne, one, zero); in matchAndRewrite()
678 rewriter.replaceOpWithNewOp<spirv::LogicalEqualOp>(op, adaptor.getLhs(), in matchAndRewrite()
683 rewriter.replaceOpWithNewOp<spirv::LogicalNotEqualOp>(op, adaptor.getLhs(), in matchAndRewrite()
728 if (spirvOp::template hasTrait<OpTrait::spirv::UnsignedOp>() && \ in matchAndRewrite()
737 DISPATCH(arith::CmpIPredicate::eq, spirv::IEqualOp); in matchAndRewrite()
738 DISPATCH(arith::CmpIPredicate::ne, spirv::INotEqualOp); in matchAndRewrite()
739 DISPATCH(arith::CmpIPredicate::slt, spirv::SLessThanOp); in matchAndRewrite()
740 DISPATCH(arith::CmpIPredicate::sle, spirv::SLessThanEqualOp); in matchAndRewrite()
741 DISPATCH(arith::CmpIPredicate::sgt, spirv::SGreaterThanOp); in matchAndRewrite()
742 DISPATCH(arith::CmpIPredicate::sge, spirv::SGreaterThanEqualOp); in matchAndRewrite()
743 DISPATCH(arith::CmpIPredicate::ult, spirv::ULessThanOp); in matchAndRewrite()
744 DISPATCH(arith::CmpIPredicate::ule, spirv::ULessThanEqualOp); in matchAndRewrite()
745 DISPATCH(arith::CmpIPredicate::ugt, spirv::UGreaterThanOp); in matchAndRewrite()
746 DISPATCH(arith::CmpIPredicate::uge, spirv::UGreaterThanEqualOp); in matchAndRewrite()
768 DISPATCH(arith::CmpFPredicate::OEQ, spirv::FOrdEqualOp); in matchAndRewrite()
769 DISPATCH(arith::CmpFPredicate::OGT, spirv::FOrdGreaterThanOp); in matchAndRewrite()
770 DISPATCH(arith::CmpFPredicate::OGE, spirv::FOrdGreaterThanEqualOp); in matchAndRewrite()
771 DISPATCH(arith::CmpFPredicate::OLT, spirv::FOrdLessThanOp); in matchAndRewrite()
772 DISPATCH(arith::CmpFPredicate::OLE, spirv::FOrdLessThanEqualOp); in matchAndRewrite()
773 DISPATCH(arith::CmpFPredicate::ONE, spirv::FOrdNotEqualOp); in matchAndRewrite()
775 DISPATCH(arith::CmpFPredicate::UEQ, spirv::FUnordEqualOp); in matchAndRewrite()
776 DISPATCH(arith::CmpFPredicate::UGT, spirv::FUnordGreaterThanOp); in matchAndRewrite()
777 DISPATCH(arith::CmpFPredicate::UGE, spirv::FUnordGreaterThanEqualOp); in matchAndRewrite()
778 DISPATCH(arith::CmpFPredicate::ULT, spirv::FUnordLessThanOp); in matchAndRewrite()
779 DISPATCH(arith::CmpFPredicate::ULE, spirv::FUnordLessThanEqualOp); in matchAndRewrite()
780 DISPATCH(arith::CmpFPredicate::UNE, spirv::FUnordNotEqualOp); in matchAndRewrite()
798 rewriter.replaceOpWithNewOp<spirv::OrderedOp>(op, adaptor.getLhs(), in matchAndRewrite()
804 rewriter.replaceOpWithNewOp<spirv::UnorderedOp>(op, adaptor.getLhs(), in matchAndRewrite()
825 Value lhsIsNan = rewriter.create<spirv::IsNanOp>(loc, adaptor.getLhs()); in matchAndRewrite()
826 Value rhsIsNan = rewriter.create<spirv::IsNanOp>(loc, adaptor.getRhs()); in matchAndRewrite()
828 Value replace = rewriter.create<spirv::LogicalOrOp>(loc, lhsIsNan, rhsIsNan); in matchAndRewrite()
830 replace = rewriter.create<spirv::LogicalNotOp>(loc, replace); in matchAndRewrite()
843 rewriter.replaceOpWithNewOp<spirv::SelectOp>(op, adaptor.getCondition(), in matchAndRewrite()
859 spirv::ElementwiseOpPattern<arith::AddIOp, spirv::IAddOp>, in populateArithmeticToSPIRVPatterns()
860 spirv::ElementwiseOpPattern<arith::SubIOp, spirv::ISubOp>, in populateArithmeticToSPIRVPatterns()
861 spirv::ElementwiseOpPattern<arith::MulIOp, spirv::IMulOp>, in populateArithmeticToSPIRVPatterns()
862 spirv::ElementwiseOpPattern<arith::DivUIOp, spirv::UDivOp>, in populateArithmeticToSPIRVPatterns()
863 spirv::ElementwiseOpPattern<arith::DivSIOp, spirv::SDivOp>, in populateArithmeticToSPIRVPatterns()
864 spirv::ElementwiseOpPattern<arith::RemUIOp, spirv::UModOp>, in populateArithmeticToSPIRVPatterns()
866 BitwiseOpPattern<arith::AndIOp, spirv::LogicalAndOp, spirv::BitwiseAndOp>, in populateArithmeticToSPIRVPatterns()
867 BitwiseOpPattern<arith::OrIOp, spirv::LogicalOrOp, spirv::BitwiseOrOp>, in populateArithmeticToSPIRVPatterns()
869 spirv::ElementwiseOpPattern<arith::ShLIOp, spirv::ShiftLeftLogicalOp>, in populateArithmeticToSPIRVPatterns()
870 spirv::ElementwiseOpPattern<arith::ShRUIOp, spirv::ShiftRightLogicalOp>, in populateArithmeticToSPIRVPatterns()
871 spirv::ElementwiseOpPattern<arith::ShRSIOp, spirv::ShiftRightArithmeticOp>, in populateArithmeticToSPIRVPatterns()
872 spirv::ElementwiseOpPattern<arith::NegFOp, spirv::FNegateOp>, in populateArithmeticToSPIRVPatterns()
873 spirv::ElementwiseOpPattern<arith::AddFOp, spirv::FAddOp>, in populateArithmeticToSPIRVPatterns()
874 spirv::ElementwiseOpPattern<arith::SubFOp, spirv::FSubOp>, in populateArithmeticToSPIRVPatterns()
875 spirv::ElementwiseOpPattern<arith::MulFOp, spirv::FMulOp>, in populateArithmeticToSPIRVPatterns()
876 spirv::ElementwiseOpPattern<arith::DivFOp, spirv::FDivOp>, in populateArithmeticToSPIRVPatterns()
877 spirv::ElementwiseOpPattern<arith::RemFOp, spirv::FRemOp>, in populateArithmeticToSPIRVPatterns()
878 TypeCastingOpPattern<arith::ExtUIOp, spirv::UConvertOp>, ExtUII1Pattern, in populateArithmeticToSPIRVPatterns()
879 TypeCastingOpPattern<arith::ExtSIOp, spirv::SConvertOp>, in populateArithmeticToSPIRVPatterns()
880 TypeCastingOpPattern<arith::ExtFOp, spirv::FConvertOp>, in populateArithmeticToSPIRVPatterns()
881 TypeCastingOpPattern<arith::TruncIOp, spirv::SConvertOp>, TruncII1Pattern, in populateArithmeticToSPIRVPatterns()
882 TypeCastingOpPattern<arith::TruncFOp, spirv::FConvertOp>, in populateArithmeticToSPIRVPatterns()
883 TypeCastingOpPattern<arith::UIToFPOp, spirv::ConvertUToFOp>, UIToFPI1Pattern, in populateArithmeticToSPIRVPatterns()
884 TypeCastingOpPattern<arith::SIToFPOp, spirv::ConvertSToFOp>, in populateArithmeticToSPIRVPatterns()
885 TypeCastingOpPattern<arith::FPToSIOp, spirv::ConvertFToSOp>, in populateArithmeticToSPIRVPatterns()
886 TypeCastingOpPattern<arith::IndexCastOp, spirv::SConvertOp>, in populateArithmeticToSPIRVPatterns()
887 TypeCastingOpPattern<arith::BitcastOp, spirv::BitcastOp>, in populateArithmeticToSPIRVPatterns()
892 spirv::ElementwiseOpPattern<arith::MaxFOp, spirv::GLFMaxOp>, in populateArithmeticToSPIRVPatterns()
893 spirv::ElementwiseOpPattern<arith::MaxSIOp, spirv::GLSMaxOp>, in populateArithmeticToSPIRVPatterns()
894 spirv::ElementwiseOpPattern<arith::MaxUIOp, spirv::GLUMaxOp>, in populateArithmeticToSPIRVPatterns()
895 spirv::ElementwiseOpPattern<arith::MinFOp, spirv::GLFMinOp>, in populateArithmeticToSPIRVPatterns()
896 spirv::ElementwiseOpPattern<arith::MinSIOp, spirv::GLSMinOp>, in populateArithmeticToSPIRVPatterns()
897 spirv::ElementwiseOpPattern<arith::MinUIOp, spirv::GLUMinOp> in populateArithmeticToSPIRVPatterns()
916 auto targetAttr = spirv::lookupTargetEnvOrDefault(module); in runOnOperation()