Lines Matching full:min
71 unsigned Min, Max, Med; member
175 // 4 operand commutes of: min(max(Val, K0), K1). in matchMed()
176 // Find K1 from outer instr: min(max(...), K1) or min(K1, max(...)). in matchMed()
178 // 4 operand commutes of: max(min(Val, K1), K0). in matchMed()
179 // Find K0 from outer instr: max(min(...), K0) or max(K0, min(...)). in matchMed()
180 // Find K1 and Val from inner instr: min(K1, Val) or min(Val, K1). in matchMed()
185 MMMOpc.Min, m_CommutativeBinOp(MMMOpc.Max, m_Reg(Val), m_Cst(K0)), in matchMed()
188 MMMOpc.Max, m_CommutativeBinOp(MMMOpc.Min, m_Reg(Val), m_Cst(K1)), in matchMed()
206 // Match min(max(Val, K0), K1) or max(min(Val, K1), K0). Then see if K0 <= K1. in matchIntMinMaxToMed3()
219 // fmed3(NaN, K0, K1) = min(min(NaN, K0), K1)
220 // ieee = true : min/max(SNaN, K) = QNaN, min/max(QNaN, K) = K
221 // ieee = false : min/max(NaN, K) = K
223 // Consider values of min(max(Val, K0), K1) and max(min(Val, K1), K0) as input.
224 // Other operand commutes (see matchMed) give same result since min and max are
227 // Try to replace fp min(max(Val, K0), K1) or max(min(Val, K1), K0), KO<=K1
230 // fmed3(SNaN, K0, K1) = min(min(SNaN, K0), K1) = min(QNaN, K1) = K1
231 // min(max(SNaN, K0), K1) = min(QNaN, K1) = K1
232 // max(min(SNaN, K1), K0) = max(K1, K0) = K1
234 // fmed3(NaN, K0, K1) = min(min(NaN, K0), K1) = min(K0, K1) = K0
235 // min(max(NaN, K0), K1) = min(K0, K1) = K0 (can clamp when dx10_clamp = true)
236 // max(min(NaN, K1), K0) = max(K1, K0) = K1 != K0
250 // Match min(max(Val, K0), K1) or max(min(Val, K1), K0). Then see if K0 <= K1. in matchFPMinMaxToMed3()
260 // min(min(NaN, K0), K1). Safe to fold for min(max(Val, K0), K1) since inner in matchFPMinMaxToMed3()
261 // nodes(max/min) have same behavior when one input is NaN and other isn't. in matchFPMinMaxToMed3()
262 // Don't consider max(min(SNaN, K1), K0) since there is no isKnownNeverQNaN, in matchFPMinMaxToMed3()
263 // also post-legalizer inputs to min/max are fcanonicalized (never SNaN). in matchFPMinMaxToMed3()
282 // Match min(max(Val, K0), K1) or max(min(Val, K1), K0). in matchFPMinMaxToClamp()
291 // For IEEE=true consider NaN inputs. Only min(max(QNaN, 0.0), 1.0) evaluates in matchFPMinMaxToClamp()
305 // min(min(SNaN, 0.0), 1.0) = min(QNaN, 1.0) = 1.0
306 // min(min(SNaN, 1.0), 0.0) = min(QNaN, 0.0) = 0.0
307 // min(min(0.0, 1.0), SNaN) = min(0.0, SNaN) = QNaN
309 // min(min(NaN, 0.0), 1.0) = min(0.0, 1.0) = 0.0
310 // min(min(NaN, 1.0), 0.0) = min(1.0, 0.0) = 0.0
311 // min(min(0.0, 1.0), NaN) = min(0.0, NaN) = 0.0