ΒΆtemplate <typename LHS, typename RHS>
inline MaxMin_match<
llvm::FCmpInst,
LHS,
RHS,
llvm::PatternMatch::ufmax_pred_ty>
m_UnordFMax(const LHS& L, const RHS& R)
template <typename LHS, typename RHS>
inline MaxMin_match<
llvm::FCmpInst,
LHS,
RHS,
llvm::PatternMatch::ufmax_pred_ty>
m_UnordFMax(const LHS& L, const RHS& R)
Description
Match an 'unordered' floating point maximum function. Floating point has one special value 'NaN'. Therefore, there is no total order. However, if we can ignore the 'NaN' value (for example, because of a 'no-nans-float-math' flag) a combination of a fcmp and select has 'maximum' semantics. In the presence of 'NaN' we have to preserve the original select(fcmp(ugt/ge, L, R), L, R) semantics matched by this predicate. max(L, R) iff L and R are not NaN m_UnordFMax(L, R) = L iff L or R are NaN
Declared at: llvm/include/llvm/IR/PatternMatch.h:1619
Templates
- LHS
- RHS
Parameters
- const LHS& L
- const RHS& R