Lines Matching refs:matcher

11506   MatchContextClass matcher(DAG, TLI, N);  in foldBoolSelectToLogic()  local
11514 return matcher.getNode(ISD::OR, DL, VT, Cond, DAG.getFreeze(F)); in foldBoolSelectToLogic()
11519 return matcher.getNode(ISD::AND, DL, VT, Cond, DAG.getFreeze(T)); in foldBoolSelectToLogic()
11524 matcher.getNode(ISD::XOR, DL, VT, Cond, DAG.getAllOnesConstant(DL, VT)); in foldBoolSelectToLogic()
11525 return matcher.getNode(ISD::OR, DL, VT, NotCond, DAG.getFreeze(T)); in foldBoolSelectToLogic()
11531 matcher.getNode(ISD::XOR, DL, VT, Cond, DAG.getAllOnesConstant(DL, VT)); in foldBoolSelectToLogic()
11532 return matcher.getNode(ISD::AND, DL, VT, NotCond, DAG.getFreeze(F)); in foldBoolSelectToLogic()
15868 MatchContextClass matcher(DAG, TLI, N); in visitFADDForFMACombine() local
15881 (!LegalOperations || matcher.isOperationLegalOrCustom(ISD::FMA, VT)); in visitFADDForFMACombine()
15908 return matcher.match(N, ISD::FMA) || matcher.match(N, ISD::FMAD); in visitFADDForFMACombine()
15913 auto isContractableFMUL = [AllowFusionGlobally, &matcher](SDValue N) { in visitFADDForFMACombine()
15914 if (!matcher.match(N, ISD::FMUL)) in visitFADDForFMACombine()
15927 return matcher.getNode(PreferredFusedOpcode, SL, VT, N0.getOperand(0), in visitFADDForFMACombine()
15934 return matcher.getNode(PreferredFusedOpcode, SL, VT, N1.getOperand(0), in visitFADDForFMACombine()
15961 if (matcher.match(FMul, ISD::FMUL) && FMul.hasOneUse()) { in visitFADDForFMACombine()
15964 SDValue CDE = matcher.getNode(PreferredFusedOpcode, SL, VT, C, D, E); in visitFADDForFMACombine()
15978 if (matcher.match(N0, ISD::FP_EXTEND)) { in visitFADDForFMACombine()
15983 return matcher.getNode( in visitFADDForFMACombine()
15985 matcher.getNode(ISD::FP_EXTEND, SL, VT, N00.getOperand(0)), in visitFADDForFMACombine()
15986 matcher.getNode(ISD::FP_EXTEND, SL, VT, N00.getOperand(1)), N1); in visitFADDForFMACombine()
15992 if (matcher.match(N1, ISD::FP_EXTEND)) { in visitFADDForFMACombine()
15997 return matcher.getNode( in visitFADDForFMACombine()
15999 matcher.getNode(ISD::FP_EXTEND, SL, VT, N10.getOperand(0)), in visitFADDForFMACombine()
16000 matcher.getNode(ISD::FP_EXTEND, SL, VT, N10.getOperand(1)), N0); in visitFADDForFMACombine()
16010 return matcher.getNode( in visitFADDForFMACombine()
16012 matcher.getNode(PreferredFusedOpcode, SL, VT, in visitFADDForFMACombine()
16013 matcher.getNode(ISD::FP_EXTEND, SL, VT, U), in visitFADDForFMACombine()
16014 matcher.getNode(ISD::FP_EXTEND, SL, VT, V), Z)); in visitFADDForFMACombine()
16018 if (matcher.match(N02, ISD::FP_EXTEND)) { in visitFADDForFMACombine()
16037 return matcher.getNode( in visitFADDForFMACombine()
16039 matcher.getNode(ISD::FP_EXTEND, SL, VT, X), in visitFADDForFMACombine()
16040 matcher.getNode(ISD::FP_EXTEND, SL, VT, Y), in visitFADDForFMACombine()
16041 matcher.getNode(PreferredFusedOpcode, SL, VT, in visitFADDForFMACombine()
16042 matcher.getNode(ISD::FP_EXTEND, SL, VT, U), in visitFADDForFMACombine()
16043 matcher.getNode(ISD::FP_EXTEND, SL, VT, V), Z)); in visitFADDForFMACombine()
16105 MatchContextClass matcher(DAG, TLI, N); in visitFSUBForFMACombine() local
16118 (!LegalOperations || matcher.isOperationLegalOrCustom(ISD::FMA, VT)); in visitFSUBForFMACombine()
16142 auto isContractableFMUL = [AllowFusionGlobally, &matcher](SDValue N) { in visitFSUBForFMACombine()
16143 if (!matcher.match(N, ISD::FMUL)) in visitFSUBForFMACombine()
16151 return matcher.getNode(PreferredFusedOpcode, SL, VT, XY.getOperand(0), in visitFSUBForFMACombine()
16153 matcher.getNode(ISD::FNEG, SL, VT, Z)); in visitFSUBForFMACombine()
16162 return matcher.getNode( in visitFSUBForFMACombine()
16164 matcher.getNode(ISD::FNEG, SL, VT, YZ.getOperand(0)), in visitFSUBForFMACombine()
16190 if (matcher.match(N0, ISD::FNEG) && isContractableFMUL(N0.getOperand(0)) && in visitFSUBForFMACombine()
16194 return matcher.getNode(PreferredFusedOpcode, SL, VT, in visitFSUBForFMACombine()
16195 matcher.getNode(ISD::FNEG, SL, VT, N00), N01, in visitFSUBForFMACombine()
16196 matcher.getNode(ISD::FNEG, SL, VT, N1)); in visitFSUBForFMACombine()
16203 if (matcher.match(N0, ISD::FP_EXTEND)) { in visitFSUBForFMACombine()
16208 return matcher.getNode( in visitFSUBForFMACombine()
16210 matcher.getNode(ISD::FP_EXTEND, SL, VT, N00.getOperand(0)), in visitFSUBForFMACombine()
16211 matcher.getNode(ISD::FP_EXTEND, SL, VT, N00.getOperand(1)), in visitFSUBForFMACombine()
16212 matcher.getNode(ISD::FNEG, SL, VT, N1)); in visitFSUBForFMACombine()
16219 if (matcher.match(N1, ISD::FP_EXTEND)) { in visitFSUBForFMACombine()
16224 return matcher.getNode( in visitFSUBForFMACombine()
16226 matcher.getNode( in visitFSUBForFMACombine()
16228 matcher.getNode(ISD::FP_EXTEND, SL, VT, N10.getOperand(0))), in visitFSUBForFMACombine()
16229 matcher.getNode(ISD::FP_EXTEND, SL, VT, N10.getOperand(1)), N0); in visitFSUBForFMACombine()
16239 if (matcher.match(N0, ISD::FP_EXTEND)) { in visitFSUBForFMACombine()
16241 if (matcher.match(N00, ISD::FNEG)) { in visitFSUBForFMACombine()
16246 return matcher.getNode( in visitFSUBForFMACombine()
16248 matcher.getNode( in visitFSUBForFMACombine()
16250 matcher.getNode(ISD::FP_EXTEND, SL, VT, N000.getOperand(0)), in visitFSUBForFMACombine()
16251 matcher.getNode(ISD::FP_EXTEND, SL, VT, N000.getOperand(1)), in visitFSUBForFMACombine()
16263 if (matcher.match(N0, ISD::FNEG)) { in visitFSUBForFMACombine()
16265 if (matcher.match(N00, ISD::FP_EXTEND)) { in visitFSUBForFMACombine()
16270 return matcher.getNode( in visitFSUBForFMACombine()
16272 matcher.getNode( in visitFSUBForFMACombine()
16274 matcher.getNode(ISD::FP_EXTEND, SL, VT, N000.getOperand(0)), in visitFSUBForFMACombine()
16275 matcher.getNode(ISD::FP_EXTEND, SL, VT, N000.getOperand(1)), in visitFSUBForFMACombine()
16291 return matcher.match(N, ISD::FMA) || matcher.match(N, ISD::FMAD); in visitFSUBForFMACombine()
16302 return matcher.getNode( in visitFSUBForFMACombine()
16304 matcher.getNode(PreferredFusedOpcode, SL, VT, in visitFSUBForFMACombine()
16307 matcher.getNode(ISD::FNEG, SL, VT, N1))); in visitFSUBForFMACombine()
16317 return matcher.getNode( in visitFSUBForFMACombine()
16319 matcher.getNode(ISD::FNEG, SL, VT, N1.getOperand(0)), in visitFSUBForFMACombine()
16321 matcher.getNode(PreferredFusedOpcode, SL, VT, in visitFSUBForFMACombine()
16322 matcher.getNode(ISD::FNEG, SL, VT, N20), N21, N0)); in visitFSUBForFMACombine()
16329 if (matcher.match(N02, ISD::FP_EXTEND)) { in visitFSUBForFMACombine()
16334 return matcher.getNode( in visitFSUBForFMACombine()
16336 matcher.getNode( in visitFSUBForFMACombine()
16338 matcher.getNode(ISD::FP_EXTEND, SL, VT, N020.getOperand(0)), in visitFSUBForFMACombine()
16339 matcher.getNode(ISD::FP_EXTEND, SL, VT, N020.getOperand(1)), in visitFSUBForFMACombine()
16340 matcher.getNode(ISD::FNEG, SL, VT, N1))); in visitFSUBForFMACombine()
16351 if (matcher.match(N0, ISD::FP_EXTEND)) { in visitFSUBForFMACombine()
16358 return matcher.getNode( in visitFSUBForFMACombine()
16360 matcher.getNode(ISD::FP_EXTEND, SL, VT, N00.getOperand(0)), in visitFSUBForFMACombine()
16361 matcher.getNode(ISD::FP_EXTEND, SL, VT, N00.getOperand(1)), in visitFSUBForFMACombine()
16362 matcher.getNode( in visitFSUBForFMACombine()
16364 matcher.getNode(ISD::FP_EXTEND, SL, VT, N002.getOperand(0)), in visitFSUBForFMACombine()
16365 matcher.getNode(ISD::FP_EXTEND, SL, VT, N002.getOperand(1)), in visitFSUBForFMACombine()
16366 matcher.getNode(ISD::FNEG, SL, VT, N1))); in visitFSUBForFMACombine()
16373 if (isFusedOp(N1) && matcher.match(N1.getOperand(2), ISD::FP_EXTEND) && in visitFSUBForFMACombine()
16381 return matcher.getNode( in visitFSUBForFMACombine()
16383 matcher.getNode(ISD::FNEG, SL, VT, N1.getOperand(0)), in visitFSUBForFMACombine()
16385 matcher.getNode( in visitFSUBForFMACombine()
16387 matcher.getNode(ISD::FNEG, SL, VT, in visitFSUBForFMACombine()
16388 matcher.getNode(ISD::FP_EXTEND, SL, VT, N1200)), in visitFSUBForFMACombine()
16389 matcher.getNode(ISD::FP_EXTEND, SL, VT, N1201), N0)); in visitFSUBForFMACombine()
16399 if (matcher.match(N1, ISD::FP_EXTEND) && isFusedOp(N1.getOperand(0))) { in visitFSUBForFMACombine()
16409 return matcher.getNode( in visitFSUBForFMACombine()
16411 matcher.getNode(ISD::FNEG, SL, VT, in visitFSUBForFMACombine()
16412 matcher.getNode(ISD::FP_EXTEND, SL, VT, N100)), in visitFSUBForFMACombine()
16413 matcher.getNode(ISD::FP_EXTEND, SL, VT, N101), in visitFSUBForFMACombine()
16414 matcher.getNode( in visitFSUBForFMACombine()
16416 matcher.getNode(ISD::FNEG, SL, VT, in visitFSUBForFMACombine()
16417 matcher.getNode(ISD::FP_EXTEND, SL, VT, N1020)), in visitFSUBForFMACombine()
16418 matcher.getNode(ISD::FP_EXTEND, SL, VT, N1021), N0)); in visitFSUBForFMACombine()
17102 MatchContextClass matcher(DAG, TLI, N); in visitFMA() local
17108 return matcher.getNode(ISD::FMA, DL, VT, N0, N1, N2); in visitFMA()
17124 return matcher.getNode(ISD::FMA, DL, VT, NegN0, NegN1, N2); in visitFMA()
17137 return matcher.getNode(ISD::FADD, SDLoc(N), VT, N1, N2); in visitFMA()
17139 return matcher.getNode(ISD::FADD, SDLoc(N), VT, N0, N2); in visitFMA()
17144 return matcher.getNode(ISD::FMA, SDLoc(N), VT, N1, N0, N2); in visitFMA()
17150 if (matcher.match(N2, ISD::FMUL) && N0 == N2.getOperand(0) && in visitFMA()
17153 return matcher.getNode( in visitFMA()
17155 matcher.getNode(ISD::FADD, DL, VT, N1, N2.getOperand(1))); in visitFMA()
17159 if (matcher.match(N0, ISD::FMUL) && in visitFMA()
17162 return matcher.getNode( in visitFMA()
17164 matcher.getNode(ISD::FMUL, DL, VT, N1, N0.getOperand(1)), N2); in visitFMA()
17172 return matcher.getNode(ISD::FADD, DL, VT, N0, N2); in visitFMA()
17176 SDValue RHSNeg = matcher.getNode(ISD::FNEG, DL, VT, N0); in visitFMA()
17178 return matcher.getNode(ISD::FADD, DL, VT, N2, RHSNeg); in visitFMA()
17182 if (matcher.match(N0, ISD::FNEG) && in visitFMA()
17186 return matcher.getNode(ISD::FMA, DL, VT, N0.getOperand(0), in visitFMA()
17187 matcher.getNode(ISD::FNEG, DL, VT, N1), N2); in visitFMA()
17195 return matcher.getNode(ISD::FMUL, DL, VT, N0, in visitFMA()
17196 matcher.getNode(ISD::FADD, DL, VT, N1, in visitFMA()
17201 if (N1CFP && matcher.match(N2, ISD::FNEG) && N2.getOperand(0) == N0) { in visitFMA()
17202 return matcher.getNode(ISD::FMUL, DL, VT, N0, in visitFMA()
17203 matcher.getNode(ISD::FADD, DL, VT, N1, in visitFMA()
17213 return matcher.getNode(ISD::FNEG, DL, VT, Neg); in visitFMA()