| /llvm-project-15.0.7/llvm/test/CodeGen/PowerPC/ |
| H A D | fmf-propagation.ll | 25 ; FMF: # %bb.0: 28 ; FMF-NEXT: blr 51 ; FMF-NEXT: blr 72 ; FMF-NEXT: blr 95 ; FMF-NEXT: blr 117 ; FMF-NEXT: blr 140 ; FMF-NEXT: blr 163 ; FMF-NEXT: blr 192 ; FMF-NEXT: blr 221 ; FMF-NEXT: blr [all …]
|
| /llvm-project-15.0.7/llvm/include/llvm/IR/ |
| H A D | FMF.h | 53 FastMathFlags FMF; in getFast() local 54 FMF.setFast(); in getFast() 55 return FMF; in getFast() 114 inline raw_ostream &operator<<(raw_ostream &O, FastMathFlags FMF) { 115 FMF.print(O);
|
| H A D | IRBuilder.h | 125 FastMathFlags FMF; variable 279 FastMathFlags &getFastMathFlags() { return FMF; } in getFastMathFlags() 282 void clearFastMathFlags() { FMF.clear(); } in clearFastMathFlags() 374 FastMathFlags FMF; variable 382 : Builder(B), FMF(B.FMF), FPMathTag(B.DefaultFPMathTag), in FastMathFlagGuard() 391 Builder.FMF = FMF; in ~FastMathFlagGuard() 1157 I->setFastMathFlags(FMF); in setFPAttrs() 1544 setFPAttrs(BinOp, FPMathTag, FMF); 1619 setFPAttrs(UnOp, FPMathTag, FMF); 2236 setFPAttrs(CI, FPMathTag, FMF); [all …]
|
| H A D | FPEnv.h | 83 inline bool canIgnoreSNaN(fp::ExceptionBehavior EB, FastMathFlags FMF) { in canIgnoreSNaN() argument 84 return (EB == fp::ebIgnore || FMF.noNaNs()); in canIgnoreSNaN()
|
| H A D | IRBuilderFolder.h | 46 Value *RHS, FastMathFlags FMF) const = 0; 49 FastMathFlags FMF) const = 0;
|
| H A D | Operator.h | 226 void setFastMathFlags(FastMathFlags FMF) { in setFastMathFlags() argument 227 SubclassOptionalData |= FMF.Flags; in setFastMathFlags() 232 void copyFastMathFlags(FastMathFlags FMF) { in copyFastMathFlags() argument 233 SubclassOptionalData = FMF.Flags; in copyFastMathFlags()
|
| H A D | NoFolder.h | 64 FastMathFlags FMF) const override { in FoldBinOpFMF() argument 69 FastMathFlags FMF) const override { in FoldUnOpFMF() argument
|
| H A D | ConstantFolder.h | 87 FastMathFlags FMF) const override { in FoldBinOpFMF() argument 92 FastMathFlags FMF) const override { in FoldUnOpFMF() argument
|
| /llvm-project-15.0.7/llvm/include/llvm/Analysis/ |
| H A D | InstructionSimplify.h | 147 Value *simplifyFNegInst(Value *Op, FastMathFlags FMF, const SimplifyQuery &Q); 159 simplifyFAddInst(Value *LHS, Value *RHS, FastMathFlags FMF, 166 simplifyFSubInst(Value *LHS, Value *RHS, FastMathFlags FMF, 173 simplifyFMulInst(Value *LHS, Value *RHS, FastMathFlags FMF, 182 Value *simplifyFMAFMul(Value *LHS, Value *RHS, FastMathFlags FMF, 198 simplifyFDivInst(Value *LHS, Value *RHS, FastMathFlags FMF, 211 simplifyFRemInst(Value *LHS, Value *RHS, FastMathFlags FMF, 243 FastMathFlags FMF, const SimplifyQuery &Q); 289 Value *simplifyUnOp(unsigned Opcode, Value *Op, FastMathFlags FMF, 298 Value *simplifyBinOp(unsigned Opcode, Value *LHS, Value *RHS, FastMathFlags FMF,
|
| H A D | IVDescriptors.h | 74 RecurKind K, FastMathFlags FMF, Instruction *ExactFP, in RecurrenceDescriptor() argument 79 Kind(K), FMF(FMF), ExactFPMathInst(ExactFP), RecurrenceType(RT), in RecurrenceDescriptor() 158 Value *getRecurrenceIdentity(RecurKind K, Type *Tp, FastMathFlags FMF) const; 199 FastMathFlags getFastMathFlags() const { return FMF; } in getFastMathFlags() 285 FastMathFlags FMF; variable
|
| H A D | InstSimplifyFolder.h | 66 FastMathFlags FMF) const override { in FoldBinOpFMF() argument 67 return simplifyBinOp(Opc, LHS, RHS, FMF, SQ); in FoldBinOpFMF() 71 FastMathFlags FMF) const override { in FoldUnOpFMF() argument 72 return simplifyUnOp(Opc, V, FMF, SQ); in FoldUnOpFMF()
|
| H A D | TargetFolder.h | 98 FastMathFlags FMF) const override { in FoldBinOpFMF() argument 111 FastMathFlags FMF) const override { in FoldUnOpFMF() argument
|
| /llvm-project-15.0.7/llvm/lib/Analysis/ |
| H A D | IVDescriptors.cpp | 290 FastMathFlags FMF = FastMathFlags::getFast(); in AddReductionVar() local 396 FMF &= CurFMF; in AddReductionVar() 603 FMF, ExactFPMathInst, RecurrenceType, IsSigned, in AddReductionVar() 832 FastMathFlags FMF; in isReductionPHI() local 833 FMF.setNoNaNs( in isReductionPHI() 835 FMF.setNoSignedZeros( in isReductionPHI() 838 if (AddReductionVar(Phi, RecurKind::Add, TheLoop, FMF, RedDes, DB, AC, DT, in isReductionPHI() 843 if (AddReductionVar(Phi, RecurKind::Mul, TheLoop, FMF, RedDes, DB, AC, DT, in isReductionPHI() 848 if (AddReductionVar(Phi, RecurKind::Or, TheLoop, FMF, RedDes, DB, AC, DT, in isReductionPHI() 853 if (AddReductionVar(Phi, RecurKind::And, TheLoop, FMF, RedDes, DB, AC, DT, in isReductionPHI() [all …]
|
| H A D | InstructionSimplify.cpp | 3908 if (FMF.noNaNs() || in simplifyFCmpInst() 5155 FMF.noSignedZeros())) in simplifyFAddInst() 5175 if (FMF.noNaNs()) { in simplifyFAddInst() 5188 if (FMF.noSignedZeros() && FMF.allowReassoc() && in simplifyFAddInst() 5246 if (FMF.noSignedZeros() && FMF.allowReassoc() && in simplifyFSubInst() 5273 if (FMF.noNaNs() && FMF.noSignedZeros() && match(Op1, m_AnyZeroFP())) in simplifyFMAFMul() 5277 if (FMF.noNaNs() && FMF.noSignedZeros() && match(Op0, m_AnyZeroFP())) in simplifyFMAFMul() 5286 FMF.noNaNs() && FMF.noSignedZeros()) in simplifyFMAFMul() 5360 if (FMF.noNaNs() && FMF.noSignedZeros() && match(Op0, m_AnyZeroFP())) in simplifyFDivInst() 5363 if (FMF.noNaNs()) { in simplifyFDivInst() [all …]
|
| /llvm-project-15.0.7/llvm/lib/CodeGen/ |
| H A D | ExpandReductions.cpp | 106 FastMathFlags FMF = in expandReductions() local 114 Builder.setFastMathFlags(FMF); in expandReductions() 123 if (!FMF.allowReassoc()) in expandReductions() 160 !FMF.noNaNs()) in expandReductions()
|
| /llvm-project-15.0.7/llvm/unittests/IR/ |
| H A D | IRBuilderTest.cpp | 538 FastMathFlags FMF; in TEST_F() local 565 FMF.setFast(); in TEST_F() 599 FMF.clear(); in TEST_F() 600 FMF.setAllowReciprocal(); in TEST_F() 617 FMF.clear(); in TEST_F() 636 FMF.clear(); in TEST_F() 647 FMF.setApproxFunc(); in TEST_F() 657 FMF.setAllowReassoc(); in TEST_F() 681 FMF.clear(); in TEST_F() 682 FMF.setNoNaNs(); in TEST_F() [all …]
|
| /llvm-project-15.0.7/llvm/include/llvm/AsmParser/ |
| H A D | LLParser.h | 203 FastMathFlags FMF; in EatFastMathFlagsIfPresent() local 206 case lltok::kw_fast: FMF.setFast(); Lex.Lex(); continue; in EatFastMathFlagsIfPresent() 207 case lltok::kw_nnan: FMF.setNoNaNs(); Lex.Lex(); continue; in EatFastMathFlagsIfPresent() 208 case lltok::kw_ninf: FMF.setNoInfs(); Lex.Lex(); continue; in EatFastMathFlagsIfPresent() 209 case lltok::kw_nsz: FMF.setNoSignedZeros(); Lex.Lex(); continue; in EatFastMathFlagsIfPresent() 210 case lltok::kw_arcp: FMF.setAllowReciprocal(); Lex.Lex(); continue; in EatFastMathFlagsIfPresent() 212 FMF.setAllowContract(true); in EatFastMathFlagsIfPresent() 215 case lltok::kw_reassoc: FMF.setAllowReassoc(); Lex.Lex(); continue; in EatFastMathFlagsIfPresent() 216 case lltok::kw_afn: FMF.setApproxFunc(); Lex.Lex(); continue; in EatFastMathFlagsIfPresent() 217 default: return FMF; in EatFastMathFlagsIfPresent() [all …]
|
| /llvm-project-15.0.7/llvm/lib/Target/RISCV/ |
| H A D | RISCVTargetTransformInfo.cpp | 345 Optional<FastMathFlags> FMF, in getArithmeticReductionCost() argument 348 return BaseT::getArithmeticReductionCost(Opcode, Ty, FMF, CostKind); in getArithmeticReductionCost() 352 return BaseT::getArithmeticReductionCost(Opcode, Ty, FMF, CostKind); in getArithmeticReductionCost() 359 return BaseT::getArithmeticReductionCost(Opcode, Ty, FMF, CostKind); in getArithmeticReductionCost() 369 if (TTI::requiresOrderedReduction(FMF)) in getArithmeticReductionCost()
|
| /llvm-project-15.0.7/llvm/test/CodeGen/AMDGPU/ |
| H A D | enable-no-signed-zeros-fp-math.ll | 1 ; RUN: llc -march=amdgcn < %s | FileCheck --check-prefixes=GCN,GCN-FMF,GCN-SAFE %s 9 ; GCN-FMF-NOT: xor
|
| /llvm-project-15.0.7/llvm/test/Transforms/Reassociate/ |
| H A D | fast-ReassociateVector.ll | 18 ; Check that a*c+b*c is turned into (a+b)*c - minimum FMF subset version 50 ; Check that a*a*b+a*a*c is turned into a*(a*(b+c)) - minimum FMF subset version 85 ; Check that a*b+a*c+d is turned into a*(b+c)+d - minimum FMF subset version 129 ; Check 47*X + 47*X -> 94*X - minimum FMF subset version 154 ; Check X+X+X -> 3*X - minimum FMF subset version 180 ; Check 127*W+50*W -> 177*W - minimum FMF subset version 207 ; Check X*12*12 -> X*144 - minimum FMF subset version 248 ; Check (b+(a+1234))+-a -> b+1234 - minimum FMF subset version 309 ; Check -(-(z*40)*a) -> a*40*z - minimum FMF subset version 355 ; Check x*y+y*x -> x*y*2 - minimum FMF subset version
|
| H A D | fast-SubReassociate.ll | 32 ; Check again using minimal subset of FMF. 96 ; Check again using minimal subset of FMF.
|
| /llvm-project-15.0.7/llvm/test/CodeGen/AArch64/ |
| H A D | neon-fma-FMF.ll | 58 ; Regression test: contract FMF allows folding (A * 0 + B) to FMA(A, 0, B), but 59 ; reassoc FMF must not allow further folding to just (B) without additional
|
| /llvm-project-15.0.7/llvm/test/Transforms/InstCombine/ |
| H A D | pow-sqrt.ll | 4 ; Check the libcall and the intrinsic for each case with differing FMF. 31 ; `afn` makes no difference, but FMF are propagated/retained. 147 ; Overspecified FMF to test propagation to the new op(s). 167 ; This should not be transformed without some kind of FMF. 205 ; This should not be transformed without some kind of FMF. 319 ; Overspecified FMF to test propagation to the new op(s).
|
| H A D | fadd-fsub-factor.ll | 14 ; Minimum FMF - the final result requires/propagates FMF. 42 ; Verify vector types, commuted operands, FMF propagation. 56 ; Verify different scalar type, commuted operands, FMF propagation. 140 ; Minimum FMF - the final result requires/propagates FMF. 168 ; Verify vector types, commuted operands, FMF propagation. 182 ; Verify different scalar type, commuted operands, FMF propagation.
|
| /llvm-project-15.0.7/llvm/include/llvm/CodeGen/ |
| H A D | BasicTTIImpl.h | 1416 FastMathFlags FMF = ICA.getFlags(); in getIntrinsicInstrCost() local 1525 IID, RetTy, {Args[0]->getType(), Args[1]->getType()}, FMF, I, 1); in getIntrinsicInstrCost() 1585 IntrinsicCostAttributes Attrs(Intrinsic::uadd_sat, ExpRetTy, {}, FMF); in getIntrinsicInstrCost() 1607 IntrinsicCostAttributes Attrs(IID, RetTy, ICA.getArgTypes(), FMF, I, in getIntrinsicInstrCost() 1622 FastMathFlags FMF = ICA.getFlags(); in getTypeBasedIntrinsicInstrCost() local 1798 FMF, CostKind); in getTypeBasedIntrinsicInstrCost() 1801 FMF, CostKind); in getTypeBasedIntrinsicInstrCost() 1857 IntrinsicCostAttributes Attrs(OverflowOp, OpTy, {RetTy, RetTy}, FMF, in getTypeBasedIntrinsicInstrCost() 1876 IntrinsicCostAttributes Attrs(OverflowOp, OpTy, {RetTy, RetTy}, FMF, in getTypeBasedIntrinsicInstrCost() 2245 Optional<FastMathFlags> FMF, in getArithmeticReductionCost() argument [all …]
|