[llvm] InstCombine: Add baseline test for minimumnum/maximumnum freeze fold (PR #138728)
Matt Arsenault via llvm-commits
llvm-commits at lists.llvm.org
Tue May 6 10:42:56 PDT 2025
https://github.com/arsenm created https://github.com/llvm/llvm-project/pull/138728
None
>From 9c7a03fa3d7cac0542067e14bc522905d9c01fac Mon Sep 17 00:00:00 2001
From: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: Tue, 6 May 2025 19:39:37 +0200
Subject: [PATCH] InstCombine: Add baseline test for minimumnum/maximumnum
freeze fold
---
.../Transforms/InstCombine/freeze-fp-ops.ll | 22 +++++++++++++++++++
1 file changed, 22 insertions(+)
diff --git a/llvm/test/Transforms/InstCombine/freeze-fp-ops.ll b/llvm/test/Transforms/InstCombine/freeze-fp-ops.ll
index 9fb69015a8f7d..8bee84f23e147 100644
--- a/llvm/test/Transforms/InstCombine/freeze-fp-ops.ll
+++ b/llvm/test/Transforms/InstCombine/freeze-fp-ops.ll
@@ -506,6 +506,28 @@ define float @freeze_maximum(float %arg0, float noundef %arg1) {
ret float %freeze
}
+define float @freeze_minimumnum(float %arg0, float noundef %arg1) {
+; CHECK-LABEL: @freeze_minimumnum(
+; CHECK-NEXT: [[OP:%.*]] = call float @llvm.minimumnum.f32(float [[ARG0:%.*]], float noundef [[ARG1:%.*]])
+; CHECK-NEXT: [[FREEZE:%.*]] = freeze float [[OP]]
+; CHECK-NEXT: ret float [[FREEZE]]
+;
+ %op = call float @llvm.minimumnum.f32(float %arg0, float noundef %arg1)
+ %freeze = freeze float %op
+ ret float %freeze
+}
+
+define float @freeze_maximumnum(float %arg0, float noundef %arg1) {
+; CHECK-LABEL: @freeze_maximumnum(
+; CHECK-NEXT: [[OP:%.*]] = call float @llvm.maximumnum.f32(float [[ARG0:%.*]], float noundef [[ARG1:%.*]])
+; CHECK-NEXT: [[FREEZE:%.*]] = freeze float [[OP]]
+; CHECK-NEXT: ret float [[FREEZE]]
+;
+ %op = call float @llvm.maximumnum.f32(float %arg0, float noundef %arg1)
+ %freeze = freeze float %op
+ ret float %freeze
+}
+
define i1 @freeze_isfpclass(float %arg0) {
; CHECK-LABEL: @freeze_isfpclass(
; CHECK-NEXT: [[ARG0_FR:%.*]] = freeze float [[ARG0:%.*]]
More information about the llvm-commits
mailing list