Lines Matching refs:FVal
587 Value *TVal, Value *FVal, in foldSelectICmpAndAnd() argument
591 match(Cmp->getOperand(1), m_Zero()) && match(FVal, m_One()))) in foldSelectICmpAndAnd()
635 Value *FVal, in foldSelectICmpAndZeroShl() argument
644 std::swap(TVal, FVal); in foldSelectICmpAndZeroShl()
651 !match(TVal, m_Zero()) || !match(FVal, m_Shl(m_Specific(X), m_APInt(C2)))) in foldSelectICmpAndZeroShl()
658 auto *FI = dyn_cast<Instruction>(FVal); in foldSelectICmpAndZeroShl()
664 return FVal; in foldSelectICmpAndZeroShl()
970 static Value *canonicalizeSaturatedAdd(ICmpInst *Cmp, Value *TVal, Value *FVal, in canonicalizeSaturatedAdd() argument
983 match(FVal, m_AllOnes()) && match(Cmp1, m_APInt(CmpC)) && *CmpC == ~*C) { in canonicalizeSaturatedAdd()
992 if (match(FVal, m_AllOnes())) { in canonicalizeSaturatedAdd()
993 std::swap(TVal, FVal); in canonicalizeSaturatedAdd()
1011 match(FVal, m_c_Add(m_Specific(X), m_Value(Y))) && Y == Cmp1) { in canonicalizeSaturatedAdd()
1020 if (match(FVal, m_c_Add(m_Not(m_Specific(X)), m_Specific(Y)))) { in canonicalizeSaturatedAdd()
1023 BinaryOperator *BO = cast<BinaryOperator>(FVal); in canonicalizeSaturatedAdd()
1031 match(FVal, m_c_Add(m_Specific(Cmp1), m_Specific(Y)))) { in canonicalizeSaturatedAdd()
1041 static Value *foldAbsDiff(ICmpInst *Cmp, Value *TVal, Value *FVal, in foldAbsDiff() argument
1044 auto *FI = dyn_cast<Instruction>(FVal); in foldAbsDiff()
1645 Value *FVal, in foldSelectZeroOrOnes() argument
1657 match(TVal, m_Neg(m_Specific(X))) && match(FVal, m_AllOnes())) in foldSelectZeroOrOnes()
1662 match(FVal, m_Neg(m_Specific(X))) && match(TVal, m_AllOnes())) in foldSelectZeroOrOnes()
1678 Value *FVal = SI.getFalseValue(); in foldSelectInstWithICmpConst() local
1679 if (Pred == ICmpInst::ICMP_EQ && V == FVal) { in foldSelectInstWithICmpConst()
2322 Value *FVal = Sel.getFalseValue(); in foldSelectCmpBitcasts() local
2331 if (TVal == A || TVal == B || FVal == A || FVal == B) in foldSelectCmpBitcasts()
2341 !match(FVal, m_BitCast(m_Value(FSrc)))) in foldSelectCmpBitcasts()
2513 Value *FVal = Sel.getFalseValue(); in foldSelectToCopysign() local
2520 !match(FVal, m_APFloatAllowPoison(FC)) || in foldSelectToCopysign()
2558 Value *FVal = Sel.getFalseValue(); in foldVectorSelect() local
2574 if (match(FVal, m_VecReverse(m_Value(Y))) && in foldVectorSelect()
2575 (Cond->hasOneUse() || TVal->hasOneUse() || FVal->hasOneUse())) in foldVectorSelect()
2579 if ((Cond->hasOneUse() || TVal->hasOneUse()) && isSplatValue(FVal)) in foldVectorSelect()
2580 return createSelReverse(C, X, FVal); in foldVectorSelect()
2583 else if (isSplatValue(TVal) && match(FVal, m_VecReverse(m_Value(Y))) && in foldVectorSelect()
2584 (Cond->hasOneUse() || FVal->hasOneUse())) in foldVectorSelect()
2608 if (X == FVal) { in foldVectorSelect()
2613 if (Y == FVal) { in foldVectorSelect()
2619 if (match(FVal, m_OneUse(m_Shuffle(m_Value(X), m_Value(Y), m_Mask(Mask)))) && in foldVectorSelect()
2621 cast<ShuffleVectorInst>(FVal)->isSelect()) { in foldVectorSelect()