[llvm] SelectionDAG: Support FMINIMUMNUM and FMINIMUM in combineMinNumMaxNumImpl (PR #137449)
Dan Gohman via llvm-commits
llvm-commits at lists.llvm.org
Tue Apr 29 12:30:41 PDT 2025
================
@@ -229,13 +229,10 @@ define float @fminnum32_intrinsic(float %x, float %y) {
; CHECK-LABEL: fminnum32_intrinsic:
; CHECK: .functype fminnum32_intrinsic (f32, f32) -> (f32)
; CHECK-NEXT: # %bb.0:
-; CHECK-NEXT: local.get $push5=, 0
-; CHECK-NEXT: local.get $push4=, 1
-; CHECK-NEXT: local.get $push3=, 0
-; CHECK-NEXT: local.get $push2=, 1
-; CHECK-NEXT: f32.lt $push0=, $pop3, $pop2
-; CHECK-NEXT: f32.select $push1=, $pop5, $pop4, $pop0
-; CHECK-NEXT: return $pop1
+; CHECK-NEXT: local.get $push2=, 0
+; CHECK-NEXT: local.get $push1=, 1
+; CHECK-NEXT: f32.min $push0=, $pop2, $pop1
----------------
sunfishcode wrote:
I agree, the existing code looks incorrect.
The new code here also looks incorrect; Wasm's `f32.min` corresponds to IEEE 754-2019's `minimum`, meaning it prefers the NaN, which is not correct for implementing `llvm.minnum`.
https://github.com/llvm/llvm-project/pull/137449
More information about the llvm-commits
mailing list