summaryrefslogtreecommitdiff
path: root/llvm/test/Transforms/InstCombine/freeze-fp-ops.ll
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/test/Transforms/InstCombine/freeze-fp-ops.ll')
-rw-r--r--llvm/test/Transforms/InstCombine/freeze-fp-ops.ll313
1 files changed, 184 insertions, 129 deletions
diff --git a/llvm/test/Transforms/InstCombine/freeze-fp-ops.ll b/llvm/test/Transforms/InstCombine/freeze-fp-ops.ll
index d1a36dcef4d6..b1c6fc05e864 100644
--- a/llvm/test/Transforms/InstCombine/freeze-fp-ops.ll
+++ b/llvm/test/Transforms/InstCombine/freeze-fp-ops.ll
@@ -1,12 +1,13 @@
-; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
+; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --version 5
; RUN: opt -S -passes=instcombine < %s | FileCheck %s
; Test that floating point operations are not treated as sources of
; poison.
define float @freeze_fneg(float %arg) {
-; CHECK-LABEL: @freeze_fneg(
-; CHECK-NEXT: [[ARG_FR:%.*]] = freeze float [[ARG:%.*]]
+; CHECK-LABEL: define float @freeze_fneg(
+; CHECK-SAME: float [[ARG:%.*]]) {
+; CHECK-NEXT: [[ARG_FR:%.*]] = freeze float [[ARG]]
; CHECK-NEXT: [[OP:%.*]] = fneg float [[ARG_FR]]
; CHECK-NEXT: ret float [[OP]]
;
@@ -16,9 +17,10 @@ define float @freeze_fneg(float %arg) {
}
define float @freeze_fadd(float %arg0, float noundef %arg1) {
-; CHECK-LABEL: @freeze_fadd(
-; CHECK-NEXT: [[ARG0_FR:%.*]] = freeze float [[ARG0:%.*]]
-; CHECK-NEXT: [[OP:%.*]] = fadd float [[ARG0_FR]], [[ARG1:%.*]]
+; CHECK-LABEL: define float @freeze_fadd(
+; CHECK-SAME: float [[ARG0:%.*]], float noundef [[ARG1:%.*]]) {
+; CHECK-NEXT: [[ARG0_FR:%.*]] = freeze float [[ARG0]]
+; CHECK-NEXT: [[OP:%.*]] = fadd float [[ARG0_FR]], [[ARG1]]
; CHECK-NEXT: ret float [[OP]]
;
%op = fadd float %arg0, %arg1
@@ -27,9 +29,10 @@ define float @freeze_fadd(float %arg0, float noundef %arg1) {
}
define float @freeze_fsub(float %arg0, float noundef %arg1) {
-; CHECK-LABEL: @freeze_fsub(
-; CHECK-NEXT: [[ARG0_FR:%.*]] = freeze float [[ARG0:%.*]]
-; CHECK-NEXT: [[OP:%.*]] = fsub float [[ARG0_FR]], [[ARG1:%.*]]
+; CHECK-LABEL: define float @freeze_fsub(
+; CHECK-SAME: float [[ARG0:%.*]], float noundef [[ARG1:%.*]]) {
+; CHECK-NEXT: [[ARG0_FR:%.*]] = freeze float [[ARG0]]
+; CHECK-NEXT: [[OP:%.*]] = fsub float [[ARG0_FR]], [[ARG1]]
; CHECK-NEXT: ret float [[OP]]
;
%op = fsub float %arg0, %arg1
@@ -38,9 +41,10 @@ define float @freeze_fsub(float %arg0, float noundef %arg1) {
}
define float @freeze_fmul(float %arg0, float noundef %arg1) {
-; CHECK-LABEL: @freeze_fmul(
-; CHECK-NEXT: [[ARG0_FR:%.*]] = freeze float [[ARG0:%.*]]
-; CHECK-NEXT: [[OP:%.*]] = fmul float [[ARG0_FR]], [[ARG1:%.*]]
+; CHECK-LABEL: define float @freeze_fmul(
+; CHECK-SAME: float [[ARG0:%.*]], float noundef [[ARG1:%.*]]) {
+; CHECK-NEXT: [[ARG0_FR:%.*]] = freeze float [[ARG0]]
+; CHECK-NEXT: [[OP:%.*]] = fmul float [[ARG0_FR]], [[ARG1]]
; CHECK-NEXT: ret float [[OP]]
;
%op = fmul float %arg0, %arg1
@@ -49,9 +53,10 @@ define float @freeze_fmul(float %arg0, float noundef %arg1) {
}
define float @freeze_fdiv(float %arg0, float noundef %arg1) {
-; CHECK-LABEL: @freeze_fdiv(
-; CHECK-NEXT: [[ARG0_FR:%.*]] = freeze float [[ARG0:%.*]]
-; CHECK-NEXT: [[OP:%.*]] = fdiv float [[ARG0_FR]], [[ARG1:%.*]]
+; CHECK-LABEL: define float @freeze_fdiv(
+; CHECK-SAME: float [[ARG0:%.*]], float noundef [[ARG1:%.*]]) {
+; CHECK-NEXT: [[ARG0_FR:%.*]] = freeze float [[ARG0]]
+; CHECK-NEXT: [[OP:%.*]] = fdiv float [[ARG0_FR]], [[ARG1]]
; CHECK-NEXT: ret float [[OP]]
;
%op = fdiv float %arg0, %arg1
@@ -60,9 +65,10 @@ define float @freeze_fdiv(float %arg0, float noundef %arg1) {
}
define float @freeze_frem(float %arg0, float noundef %arg1) {
-; CHECK-LABEL: @freeze_frem(
-; CHECK-NEXT: [[ARG0_FR:%.*]] = freeze float [[ARG0:%.*]]
-; CHECK-NEXT: [[OP:%.*]] = fdiv float [[ARG0_FR]], [[ARG1:%.*]]
+; CHECK-LABEL: define float @freeze_frem(
+; CHECK-SAME: float [[ARG0:%.*]], float noundef [[ARG1:%.*]]) {
+; CHECK-NEXT: [[ARG0_FR:%.*]] = freeze float [[ARG0]]
+; CHECK-NEXT: [[OP:%.*]] = fdiv float [[ARG0_FR]], [[ARG1]]
; CHECK-NEXT: ret float [[OP]]
;
%op = fdiv float %arg0, %arg1
@@ -71,8 +77,9 @@ define float @freeze_frem(float %arg0, float noundef %arg1) {
}
define double @fpext(float %arg) {
-; CHECK-LABEL: @fpext(
-; CHECK-NEXT: [[ARG_FR:%.*]] = freeze float [[ARG:%.*]]
+; CHECK-LABEL: define double @fpext(
+; CHECK-SAME: float [[ARG:%.*]]) {
+; CHECK-NEXT: [[ARG_FR:%.*]] = freeze float [[ARG]]
; CHECK-NEXT: [[OP:%.*]] = fpext float [[ARG_FR]] to double
; CHECK-NEXT: ret double [[OP]]
;
@@ -82,8 +89,9 @@ define double @fpext(float %arg) {
}
define float @fptrunc(double %arg) {
-; CHECK-LABEL: @fptrunc(
-; CHECK-NEXT: [[ARG_FR:%.*]] = freeze double [[ARG:%.*]]
+; CHECK-LABEL: define float @fptrunc(
+; CHECK-SAME: double [[ARG:%.*]]) {
+; CHECK-NEXT: [[ARG_FR:%.*]] = freeze double [[ARG]]
; CHECK-NEXT: [[OP:%.*]] = fptrunc double [[ARG_FR]] to float
; CHECK-NEXT: ret float [[OP]]
;
@@ -93,8 +101,9 @@ define float @fptrunc(double %arg) {
}
define float @sitofp(i32 %arg) {
-; CHECK-LABEL: @sitofp(
-; CHECK-NEXT: [[ARG_FR:%.*]] = freeze i32 [[ARG:%.*]]
+; CHECK-LABEL: define float @sitofp(
+; CHECK-SAME: i32 [[ARG:%.*]]) {
+; CHECK-NEXT: [[ARG_FR:%.*]] = freeze i32 [[ARG]]
; CHECK-NEXT: [[OP:%.*]] = sitofp i32 [[ARG_FR]] to float
; CHECK-NEXT: ret float [[OP]]
;
@@ -104,8 +113,9 @@ define float @sitofp(i32 %arg) {
}
define float @uitofp(i32 %arg) {
-; CHECK-LABEL: @uitofp(
-; CHECK-NEXT: [[ARG_FR:%.*]] = freeze i32 [[ARG:%.*]]
+; CHECK-LABEL: define float @uitofp(
+; CHECK-SAME: i32 [[ARG:%.*]]) {
+; CHECK-NEXT: [[ARG_FR:%.*]] = freeze i32 [[ARG]]
; CHECK-NEXT: [[OP:%.*]] = uitofp i32 [[ARG_FR]] to float
; CHECK-NEXT: ret float [[OP]]
;
@@ -115,9 +125,10 @@ define float @uitofp(i32 %arg) {
}
define float @freeze_fma(float %arg0, float noundef %arg1, float noundef %arg2) {
-; CHECK-LABEL: @freeze_fma(
-; CHECK-NEXT: [[ARG0_FR:%.*]] = freeze float [[ARG0:%.*]]
-; CHECK-NEXT: [[OP:%.*]] = call float @llvm.fma.f32(float [[ARG0_FR]], float noundef [[ARG1:%.*]], float noundef [[ARG2:%.*]])
+; CHECK-LABEL: define float @freeze_fma(
+; CHECK-SAME: float [[ARG0:%.*]], float noundef [[ARG1:%.*]], float noundef [[ARG2:%.*]]) {
+; CHECK-NEXT: [[ARG0_FR:%.*]] = freeze float [[ARG0]]
+; CHECK-NEXT: [[OP:%.*]] = call float @llvm.fma.f32(float [[ARG0_FR]], float noundef [[ARG1]], float noundef [[ARG2]])
; CHECK-NEXT: ret float [[OP]]
;
%op = call float @llvm.fma.f32(float %arg0, float noundef %arg1, float noundef %arg2)
@@ -126,9 +137,10 @@ define float @freeze_fma(float %arg0, float noundef %arg1, float noundef %arg2)
}
define float @freeze_fmuladd(float %arg0, float noundef %arg1, float noundef %arg2) {
-; CHECK-LABEL: @freeze_fmuladd(
-; CHECK-NEXT: [[ARG0_FR:%.*]] = freeze float [[ARG0:%.*]]
-; CHECK-NEXT: [[OP:%.*]] = call float @llvm.fmuladd.f32(float [[ARG0_FR]], float noundef [[ARG1:%.*]], float noundef [[ARG2:%.*]])
+; CHECK-LABEL: define float @freeze_fmuladd(
+; CHECK-SAME: float [[ARG0:%.*]], float noundef [[ARG1:%.*]], float noundef [[ARG2:%.*]]) {
+; CHECK-NEXT: [[ARG0_FR:%.*]] = freeze float [[ARG0]]
+; CHECK-NEXT: [[OP:%.*]] = call float @llvm.fmuladd.f32(float [[ARG0_FR]], float noundef [[ARG1]], float noundef [[ARG2]])
; CHECK-NEXT: ret float [[OP]]
;
%op = call float @llvm.fmuladd.f32(float %arg0, float noundef %arg1, float noundef %arg2)
@@ -137,8 +149,9 @@ define float @freeze_fmuladd(float %arg0, float noundef %arg1, float noundef %ar
}
define float @freeze_sqrt(float %arg) {
-; CHECK-LABEL: @freeze_sqrt(
-; CHECK-NEXT: [[ARG_FR:%.*]] = freeze float [[ARG:%.*]]
+; CHECK-LABEL: define float @freeze_sqrt(
+; CHECK-SAME: float [[ARG:%.*]]) {
+; CHECK-NEXT: [[ARG_FR:%.*]] = freeze float [[ARG]]
; CHECK-NEXT: [[OP:%.*]] = call float @llvm.sqrt.f32(float [[ARG_FR]])
; CHECK-NEXT: ret float [[OP]]
;
@@ -148,10 +161,12 @@ define float @freeze_sqrt(float %arg) {
}
define float @freeze_powi(float %arg0, i32 %arg1) {
-; CHECK-LABEL: @freeze_powi(
-; CHECK-NEXT: [[OP:%.*]] = call float @llvm.powi.f32.i32(float [[ARG0:%.*]], i32 [[ARG1:%.*]])
-; CHECK-NEXT: [[FREEZE:%.*]] = freeze float [[OP]]
-; CHECK-NEXT: ret float [[FREEZE]]
+; CHECK-LABEL: define float @freeze_powi(
+; CHECK-SAME: float [[ARG0:%.*]], i32 [[ARG1:%.*]]) {
+; CHECK-NEXT: [[ARG0_FR:%.*]] = freeze float [[ARG0]]
+; CHECK-NEXT: [[ARG1_FR:%.*]] = freeze i32 [[ARG1]]
+; CHECK-NEXT: [[OP:%.*]] = call float @llvm.powi.f32.i32(float [[ARG0_FR]], i32 [[ARG1_FR]])
+; CHECK-NEXT: ret float [[OP]]
;
%op = call float @llvm.powi.f32.i32(float %arg0, i32 %arg1)
%freeze = freeze float %op
@@ -159,8 +174,9 @@ define float @freeze_powi(float %arg0, i32 %arg1) {
}
define float @freeze_sin(float %arg) {
-; CHECK-LABEL: @freeze_sin(
-; CHECK-NEXT: [[ARG_FR:%.*]] = freeze float [[ARG:%.*]]
+; CHECK-LABEL: define float @freeze_sin(
+; CHECK-SAME: float [[ARG:%.*]]) {
+; CHECK-NEXT: [[ARG_FR:%.*]] = freeze float [[ARG]]
; CHECK-NEXT: [[OP:%.*]] = call float @llvm.sin.f32(float [[ARG_FR]])
; CHECK-NEXT: ret float [[OP]]
;
@@ -170,8 +186,9 @@ define float @freeze_sin(float %arg) {
}
define float @freeze_cos(float %arg) {
-; CHECK-LABEL: @freeze_cos(
-; CHECK-NEXT: [[ARG_FR:%.*]] = freeze float [[ARG:%.*]]
+; CHECK-LABEL: define float @freeze_cos(
+; CHECK-SAME: float [[ARG:%.*]]) {
+; CHECK-NEXT: [[ARG_FR:%.*]] = freeze float [[ARG]]
; CHECK-NEXT: [[OP:%.*]] = call float @llvm.cos.f32(float [[ARG_FR]])
; CHECK-NEXT: ret float [[OP]]
;
@@ -181,9 +198,10 @@ define float @freeze_cos(float %arg) {
}
define float @freeze_pow(float %arg0, float noundef %arg1) {
-; CHECK-LABEL: @freeze_pow(
-; CHECK-NEXT: [[ARG0_FR:%.*]] = freeze float [[ARG0:%.*]]
-; CHECK-NEXT: [[OP:%.*]] = call float @llvm.pow.f32(float [[ARG0_FR]], float noundef [[ARG1:%.*]])
+; CHECK-LABEL: define float @freeze_pow(
+; CHECK-SAME: float [[ARG0:%.*]], float noundef [[ARG1:%.*]]) {
+; CHECK-NEXT: [[ARG0_FR:%.*]] = freeze float [[ARG0]]
+; CHECK-NEXT: [[OP:%.*]] = call float @llvm.pow.f32(float [[ARG0_FR]], float noundef [[ARG1]])
; CHECK-NEXT: ret float [[OP]]
;
%op = call float @llvm.pow.f32(float %arg0, float noundef %arg1)
@@ -192,8 +210,9 @@ define float @freeze_pow(float %arg0, float noundef %arg1) {
}
define float @freeze_log(float %arg) {
-; CHECK-LABEL: @freeze_log(
-; CHECK-NEXT: [[ARG_FR:%.*]] = freeze float [[ARG:%.*]]
+; CHECK-LABEL: define float @freeze_log(
+; CHECK-SAME: float [[ARG:%.*]]) {
+; CHECK-NEXT: [[ARG_FR:%.*]] = freeze float [[ARG]]
; CHECK-NEXT: [[OP:%.*]] = call float @llvm.log.f32(float [[ARG_FR]])
; CHECK-NEXT: ret float [[OP]]
;
@@ -203,8 +222,9 @@ define float @freeze_log(float %arg) {
}
define float @freeze_log10(float %arg) {
-; CHECK-LABEL: @freeze_log10(
-; CHECK-NEXT: [[ARG_FR:%.*]] = freeze float [[ARG:%.*]]
+; CHECK-LABEL: define float @freeze_log10(
+; CHECK-SAME: float [[ARG:%.*]]) {
+; CHECK-NEXT: [[ARG_FR:%.*]] = freeze float [[ARG]]
; CHECK-NEXT: [[OP:%.*]] = call float @llvm.log10.f32(float [[ARG_FR]])
; CHECK-NEXT: ret float [[OP]]
;
@@ -214,8 +234,9 @@ define float @freeze_log10(float %arg) {
}
define float @freeze_log2(float %arg) {
-; CHECK-LABEL: @freeze_log2(
-; CHECK-NEXT: [[ARG_FR:%.*]] = freeze float [[ARG:%.*]]
+; CHECK-LABEL: define float @freeze_log2(
+; CHECK-SAME: float [[ARG:%.*]]) {
+; CHECK-NEXT: [[ARG_FR:%.*]] = freeze float [[ARG]]
; CHECK-NEXT: [[OP:%.*]] = call float @llvm.log2.f32(float [[ARG_FR]])
; CHECK-NEXT: ret float [[OP]]
;
@@ -225,8 +246,9 @@ define float @freeze_log2(float %arg) {
}
define float @freeze_exp(float %arg) {
-; CHECK-LABEL: @freeze_exp(
-; CHECK-NEXT: [[ARG_FR:%.*]] = freeze float [[ARG:%.*]]
+; CHECK-LABEL: define float @freeze_exp(
+; CHECK-SAME: float [[ARG:%.*]]) {
+; CHECK-NEXT: [[ARG_FR:%.*]] = freeze float [[ARG]]
; CHECK-NEXT: [[OP:%.*]] = call float @llvm.exp.f32(float [[ARG_FR]])
; CHECK-NEXT: ret float [[OP]]
;
@@ -236,8 +258,9 @@ define float @freeze_exp(float %arg) {
}
define float @freeze_exp2(float %arg) {
-; CHECK-LABEL: @freeze_exp2(
-; CHECK-NEXT: [[ARG_FR:%.*]] = freeze float [[ARG:%.*]]
+; CHECK-LABEL: define float @freeze_exp2(
+; CHECK-SAME: float [[ARG:%.*]]) {
+; CHECK-NEXT: [[ARG_FR:%.*]] = freeze float [[ARG]]
; CHECK-NEXT: [[OP:%.*]] = call float @llvm.exp2.f32(float [[ARG_FR]])
; CHECK-NEXT: ret float [[OP]]
;
@@ -247,8 +270,9 @@ define float @freeze_exp2(float %arg) {
}
define float @freeze_exp10(float %arg) {
-; CHECK-LABEL: @freeze_exp10(
-; CHECK-NEXT: [[ARG_FR:%.*]] = freeze float [[ARG:%.*]]
+; CHECK-LABEL: define float @freeze_exp10(
+; CHECK-SAME: float [[ARG:%.*]]) {
+; CHECK-NEXT: [[ARG_FR:%.*]] = freeze float [[ARG]]
; CHECK-NEXT: [[OP:%.*]] = call float @llvm.exp10.f32(float [[ARG_FR]])
; CHECK-NEXT: ret float [[OP]]
;
@@ -258,8 +282,9 @@ define float @freeze_exp10(float %arg) {
}
define float @freeze_fabs(float %arg) {
-; CHECK-LABEL: @freeze_fabs(
-; CHECK-NEXT: [[ARG_FR:%.*]] = freeze float [[ARG:%.*]]
+; CHECK-LABEL: define float @freeze_fabs(
+; CHECK-SAME: float [[ARG:%.*]]) {
+; CHECK-NEXT: [[ARG_FR:%.*]] = freeze float [[ARG]]
; CHECK-NEXT: [[OP:%.*]] = call float @llvm.fabs.f32(float [[ARG_FR]])
; CHECK-NEXT: ret float [[OP]]
;
@@ -269,9 +294,10 @@ define float @freeze_fabs(float %arg) {
}
define float @freeze_copysign(float %arg0, float noundef %arg1) {
-; CHECK-LABEL: @freeze_copysign(
-; CHECK-NEXT: [[ARG0_FR:%.*]] = freeze float [[ARG0:%.*]]
-; CHECK-NEXT: [[OP:%.*]] = call float @llvm.copysign.f32(float [[ARG0_FR]], float noundef [[ARG1:%.*]])
+; CHECK-LABEL: define float @freeze_copysign(
+; CHECK-SAME: float [[ARG0:%.*]], float noundef [[ARG1:%.*]]) {
+; CHECK-NEXT: [[ARG0_FR:%.*]] = freeze float [[ARG0]]
+; CHECK-NEXT: [[OP:%.*]] = call float @llvm.copysign.f32(float [[ARG0_FR]], float noundef [[ARG1]])
; CHECK-NEXT: ret float [[OP]]
;
%op = call float @llvm.copysign.f32(float %arg0, float noundef %arg1)
@@ -280,8 +306,9 @@ define float @freeze_copysign(float %arg0, float noundef %arg1) {
}
define float @freeze_floor(float %arg) {
-; CHECK-LABEL: @freeze_floor(
-; CHECK-NEXT: [[ARG_FR:%.*]] = freeze float [[ARG:%.*]]
+; CHECK-LABEL: define float @freeze_floor(
+; CHECK-SAME: float [[ARG:%.*]]) {
+; CHECK-NEXT: [[ARG_FR:%.*]] = freeze float [[ARG]]
; CHECK-NEXT: [[OP:%.*]] = call float @llvm.floor.f32(float [[ARG_FR]])
; CHECK-NEXT: ret float [[OP]]
;
@@ -291,8 +318,9 @@ define float @freeze_floor(float %arg) {
}
define float @freeze_ceil(float %arg) {
-; CHECK-LABEL: @freeze_ceil(
-; CHECK-NEXT: [[ARG_FR:%.*]] = freeze float [[ARG:%.*]]
+; CHECK-LABEL: define float @freeze_ceil(
+; CHECK-SAME: float [[ARG:%.*]]) {
+; CHECK-NEXT: [[ARG_FR:%.*]] = freeze float [[ARG]]
; CHECK-NEXT: [[OP:%.*]] = call float @llvm.ceil.f32(float [[ARG_FR]])
; CHECK-NEXT: ret float [[OP]]
;
@@ -302,8 +330,9 @@ define float @freeze_ceil(float %arg) {
}
define float @freeze_trunc(float %arg) {
-; CHECK-LABEL: @freeze_trunc(
-; CHECK-NEXT: [[ARG_FR:%.*]] = freeze float [[ARG:%.*]]
+; CHECK-LABEL: define float @freeze_trunc(
+; CHECK-SAME: float [[ARG:%.*]]) {
+; CHECK-NEXT: [[ARG_FR:%.*]] = freeze float [[ARG]]
; CHECK-NEXT: [[OP:%.*]] = call float @llvm.trunc.f32(float [[ARG_FR]])
; CHECK-NEXT: ret float [[OP]]
;
@@ -313,8 +342,9 @@ define float @freeze_trunc(float %arg) {
}
define float @freeze_rint(float %arg) {
-; CHECK-LABEL: @freeze_rint(
-; CHECK-NEXT: [[ARG_FR:%.*]] = freeze float [[ARG:%.*]]
+; CHECK-LABEL: define float @freeze_rint(
+; CHECK-SAME: float [[ARG:%.*]]) {
+; CHECK-NEXT: [[ARG_FR:%.*]] = freeze float [[ARG]]
; CHECK-NEXT: [[OP:%.*]] = call float @llvm.rint.f32(float [[ARG_FR]])
; CHECK-NEXT: ret float [[OP]]
;
@@ -324,8 +354,9 @@ define float @freeze_rint(float %arg) {
}
define float @freeze_nearbyint(float %arg) {
-; CHECK-LABEL: @freeze_nearbyint(
-; CHECK-NEXT: [[ARG_FR:%.*]] = freeze float [[ARG:%.*]]
+; CHECK-LABEL: define float @freeze_nearbyint(
+; CHECK-SAME: float [[ARG:%.*]]) {
+; CHECK-NEXT: [[ARG_FR:%.*]] = freeze float [[ARG]]
; CHECK-NEXT: [[OP:%.*]] = call float @llvm.nearbyint.f32(float [[ARG_FR]])
; CHECK-NEXT: ret float [[OP]]
;
@@ -335,8 +366,9 @@ define float @freeze_nearbyint(float %arg) {
}
define float @freeze_round(float %arg) {
-; CHECK-LABEL: @freeze_round(
-; CHECK-NEXT: [[ARG_FR:%.*]] = freeze float [[ARG:%.*]]
+; CHECK-LABEL: define float @freeze_round(
+; CHECK-SAME: float [[ARG:%.*]]) {
+; CHECK-NEXT: [[ARG_FR:%.*]] = freeze float [[ARG]]
; CHECK-NEXT: [[OP:%.*]] = call float @llvm.round.f32(float [[ARG_FR]])
; CHECK-NEXT: ret float [[OP]]
;
@@ -346,8 +378,9 @@ define float @freeze_round(float %arg) {
}
define float @freeze_roundeven(float %arg) {
-; CHECK-LABEL: @freeze_roundeven(
-; CHECK-NEXT: [[ARG_FR:%.*]] = freeze float [[ARG:%.*]]
+; CHECK-LABEL: define float @freeze_roundeven(
+; CHECK-SAME: float [[ARG:%.*]]) {
+; CHECK-NEXT: [[ARG_FR:%.*]] = freeze float [[ARG]]
; CHECK-NEXT: [[OP:%.*]] = call float @llvm.roundeven.f32(float [[ARG_FR]])
; CHECK-NEXT: ret float [[OP]]
;
@@ -357,8 +390,9 @@ define float @freeze_roundeven(float %arg) {
}
define float @freeze_canonicalize(float %arg) {
-; CHECK-LABEL: @freeze_canonicalize(
-; CHECK-NEXT: [[ARG_FR:%.*]] = freeze float [[ARG:%.*]]
+; CHECK-LABEL: define float @freeze_canonicalize(
+; CHECK-SAME: float [[ARG:%.*]]) {
+; CHECK-NEXT: [[ARG_FR:%.*]] = freeze float [[ARG]]
; CHECK-NEXT: [[OP:%.*]] = call float @llvm.canonicalize.f32(float [[ARG_FR]])
; CHECK-NEXT: ret float [[OP]]
;
@@ -368,8 +402,9 @@ define float @freeze_canonicalize(float %arg) {
}
define float @freeze_arithmetic_fence(float %arg) {
-; CHECK-LABEL: @freeze_arithmetic_fence(
-; CHECK-NEXT: [[ARG_FR:%.*]] = freeze float [[ARG:%.*]]
+; CHECK-LABEL: define float @freeze_arithmetic_fence(
+; CHECK-SAME: float [[ARG:%.*]]) {
+; CHECK-NEXT: [[ARG_FR:%.*]] = freeze float [[ARG]]
; CHECK-NEXT: [[OP:%.*]] = call float @llvm.arithmetic.fence.f32(float [[ARG_FR]])
; CHECK-NEXT: ret float [[OP]]
;
@@ -379,8 +414,9 @@ define float @freeze_arithmetic_fence(float %arg) {
}
define i32 @freeze_lround(float %arg) {
-; CHECK-LABEL: @freeze_lround(
-; CHECK-NEXT: [[ARG_FR:%.*]] = freeze float [[ARG:%.*]]
+; CHECK-LABEL: define i32 @freeze_lround(
+; CHECK-SAME: float [[ARG:%.*]]) {
+; CHECK-NEXT: [[ARG_FR:%.*]] = freeze float [[ARG]]
; CHECK-NEXT: [[OP:%.*]] = call i32 @llvm.lround.i32.f32(float [[ARG_FR]])
; CHECK-NEXT: ret i32 [[OP]]
;
@@ -390,8 +426,9 @@ define i32 @freeze_lround(float %arg) {
}
define i32 @freeze_llround(float %arg) {
-; CHECK-LABEL: @freeze_llround(
-; CHECK-NEXT: [[ARG_FR:%.*]] = freeze float [[ARG:%.*]]
+; CHECK-LABEL: define i32 @freeze_llround(
+; CHECK-SAME: float [[ARG:%.*]]) {
+; CHECK-NEXT: [[ARG_FR:%.*]] = freeze float [[ARG]]
; CHECK-NEXT: [[OP:%.*]] = call i32 @llvm.llround.i32.f32(float [[ARG_FR]])
; CHECK-NEXT: ret i32 [[OP]]
;
@@ -401,8 +438,9 @@ define i32 @freeze_llround(float %arg) {
}
define i32 @freeze_lrint(float %arg) {
-; CHECK-LABEL: @freeze_lrint(
-; CHECK-NEXT: [[ARG_FR:%.*]] = freeze float [[ARG:%.*]]
+; CHECK-LABEL: define i32 @freeze_lrint(
+; CHECK-SAME: float [[ARG:%.*]]) {
+; CHECK-NEXT: [[ARG_FR:%.*]] = freeze float [[ARG]]
; CHECK-NEXT: [[OP:%.*]] = call i32 @llvm.lrint.i32.f32(float [[ARG_FR]])
; CHECK-NEXT: ret i32 [[OP]]
;
@@ -412,8 +450,9 @@ define i32 @freeze_lrint(float %arg) {
}
define i32 @freeze_llrint(float %arg) {
-; CHECK-LABEL: @freeze_llrint(
-; CHECK-NEXT: [[ARG_FR:%.*]] = freeze float [[ARG:%.*]]
+; CHECK-LABEL: define i32 @freeze_llrint(
+; CHECK-SAME: float [[ARG:%.*]]) {
+; CHECK-NEXT: [[ARG_FR:%.*]] = freeze float [[ARG]]
; CHECK-NEXT: [[OP:%.*]] = call i32 @llvm.llrint.i32.f32(float [[ARG_FR]])
; CHECK-NEXT: ret i32 [[OP]]
;
@@ -423,8 +462,9 @@ define i32 @freeze_llrint(float %arg) {
}
define i32 @freeze_noundef_lround(float %arg) {
-; CHECK-LABEL: @freeze_noundef_lround(
-; CHECK-NEXT: [[OP:%.*]] = call noundef i32 @llvm.lround.i32.f32(float [[ARG:%.*]])
+; CHECK-LABEL: define i32 @freeze_noundef_lround(
+; CHECK-SAME: float [[ARG:%.*]]) {
+; CHECK-NEXT: [[OP:%.*]] = call noundef i32 @llvm.lround.i32.f32(float [[ARG]])
; CHECK-NEXT: ret i32 [[OP]]
;
%op = call noundef i32 @llvm.lround.i32.f32(float %arg)
@@ -433,8 +473,9 @@ define i32 @freeze_noundef_lround(float %arg) {
}
define i32 @freeze_noundef_llround(float %arg) {
-; CHECK-LABEL: @freeze_noundef_llround(
-; CHECK-NEXT: [[OP:%.*]] = call noundef i32 @llvm.llround.i32.f32(float [[ARG:%.*]])
+; CHECK-LABEL: define i32 @freeze_noundef_llround(
+; CHECK-SAME: float [[ARG:%.*]]) {
+; CHECK-NEXT: [[OP:%.*]] = call noundef i32 @llvm.llround.i32.f32(float [[ARG]])
; CHECK-NEXT: ret i32 [[OP]]
;
%op = call noundef i32 @llvm.llround.i32.f32(float %arg)
@@ -443,8 +484,9 @@ define i32 @freeze_noundef_llround(float %arg) {
}
define i32 @freeze_noundef_lrint(float %arg) {
-; CHECK-LABEL: @freeze_noundef_lrint(
-; CHECK-NEXT: [[OP:%.*]] = call noundef i32 @llvm.lrint.i32.f32(float [[ARG:%.*]])
+; CHECK-LABEL: define i32 @freeze_noundef_lrint(
+; CHECK-SAME: float [[ARG:%.*]]) {
+; CHECK-NEXT: [[OP:%.*]] = call noundef i32 @llvm.lrint.i32.f32(float [[ARG]])
; CHECK-NEXT: ret i32 [[OP]]
;
%op = call noundef i32 @llvm.lrint.i32.f32(float %arg)
@@ -453,8 +495,9 @@ define i32 @freeze_noundef_lrint(float %arg) {
}
define i32 @freeze_noundef_llrint(float %arg) {
-; CHECK-LABEL: @freeze_noundef_llrint(
-; CHECK-NEXT: [[OP:%.*]] = call noundef i32 @llvm.llrint.i32.f32(float [[ARG:%.*]])
+; CHECK-LABEL: define i32 @freeze_noundef_llrint(
+; CHECK-SAME: float [[ARG:%.*]]) {
+; CHECK-NEXT: [[OP:%.*]] = call noundef i32 @llvm.llrint.i32.f32(float [[ARG]])
; CHECK-NEXT: ret i32 [[OP]]
;
%op = call noundef i32 @llvm.llrint.i32.f32(float %arg)
@@ -463,9 +506,10 @@ define i32 @freeze_noundef_llrint(float %arg) {
}
define float @freeze_minnum(float %arg0, float noundef %arg1) {
-; CHECK-LABEL: @freeze_minnum(
-; CHECK-NEXT: [[ARG0_FR:%.*]] = freeze float [[ARG0:%.*]]
-; CHECK-NEXT: [[OP:%.*]] = call float @llvm.minnum.f32(float [[ARG0_FR]], float noundef [[ARG1:%.*]])
+; CHECK-LABEL: define float @freeze_minnum(
+; CHECK-SAME: float [[ARG0:%.*]], float noundef [[ARG1:%.*]]) {
+; CHECK-NEXT: [[ARG0_FR:%.*]] = freeze float [[ARG0]]
+; CHECK-NEXT: [[OP:%.*]] = call float @llvm.minnum.f32(float [[ARG0_FR]], float noundef [[ARG1]])
; CHECK-NEXT: ret float [[OP]]
;
%op = call float @llvm.minnum.f32(float %arg0, float noundef %arg1)
@@ -474,9 +518,10 @@ define float @freeze_minnum(float %arg0, float noundef %arg1) {
}
define float @freeze_maxnum(float %arg0, float noundef %arg1) {
-; CHECK-LABEL: @freeze_maxnum(
-; CHECK-NEXT: [[ARG0_FR:%.*]] = freeze float [[ARG0:%.*]]
-; CHECK-NEXT: [[OP:%.*]] = call float @llvm.maxnum.f32(float [[ARG0_FR]], float noundef [[ARG1:%.*]])
+; CHECK-LABEL: define float @freeze_maxnum(
+; CHECK-SAME: float [[ARG0:%.*]], float noundef [[ARG1:%.*]]) {
+; CHECK-NEXT: [[ARG0_FR:%.*]] = freeze float [[ARG0]]
+; CHECK-NEXT: [[OP:%.*]] = call float @llvm.maxnum.f32(float [[ARG0_FR]], float noundef [[ARG1]])
; CHECK-NEXT: ret float [[OP]]
;
%op = call float @llvm.maxnum.f32(float %arg0, float noundef %arg1)
@@ -485,9 +530,10 @@ define float @freeze_maxnum(float %arg0, float noundef %arg1) {
}
define float @freeze_minimum(float %arg0, float noundef %arg1) {
-; CHECK-LABEL: @freeze_minimum(
-; CHECK-NEXT: [[ARG0_FR:%.*]] = freeze float [[ARG0:%.*]]
-; CHECK-NEXT: [[OP:%.*]] = call float @llvm.minimum.f32(float [[ARG0_FR]], float noundef [[ARG1:%.*]])
+; CHECK-LABEL: define float @freeze_minimum(
+; CHECK-SAME: float [[ARG0:%.*]], float noundef [[ARG1:%.*]]) {
+; CHECK-NEXT: [[ARG0_FR:%.*]] = freeze float [[ARG0]]
+; CHECK-NEXT: [[OP:%.*]] = call float @llvm.minimum.f32(float [[ARG0_FR]], float noundef [[ARG1]])
; CHECK-NEXT: ret float [[OP]]
;
%op = call float @llvm.minimum.f32(float %arg0, float noundef %arg1)
@@ -496,9 +542,10 @@ define float @freeze_minimum(float %arg0, float noundef %arg1) {
}
define float @freeze_maximum(float %arg0, float noundef %arg1) {
-; CHECK-LABEL: @freeze_maximum(
-; CHECK-NEXT: [[ARG0_FR:%.*]] = freeze float [[ARG0:%.*]]
-; CHECK-NEXT: [[OP:%.*]] = call float @llvm.maximum.f32(float [[ARG0_FR]], float noundef [[ARG1:%.*]])
+; CHECK-LABEL: define float @freeze_maximum(
+; CHECK-SAME: float [[ARG0:%.*]], float noundef [[ARG1:%.*]]) {
+; CHECK-NEXT: [[ARG0_FR:%.*]] = freeze float [[ARG0]]
+; CHECK-NEXT: [[OP:%.*]] = call float @llvm.maximum.f32(float [[ARG0_FR]], float noundef [[ARG1]])
; CHECK-NEXT: ret float [[OP]]
;
%op = call float @llvm.maximum.f32(float %arg0, float noundef %arg1)
@@ -507,10 +554,11 @@ define float @freeze_maximum(float %arg0, float noundef %arg1) {
}
define float @freeze_minimumnum(float %arg0, float noundef %arg1) {
-; CHECK-LABEL: @freeze_minimumnum(
-; CHECK-NEXT: [[FREEZE:%.*]] = freeze float [[OP:%.*]]
-; CHECK-NEXT: [[OP1:%.*]] = call float @llvm.minimumnum.f32(float [[FREEZE]], float noundef [[ARG1:%.*]])
-; CHECK-NEXT: ret float [[OP1]]
+; CHECK-LABEL: define float @freeze_minimumnum(
+; CHECK-SAME: float [[ARG0:%.*]], float noundef [[ARG1:%.*]]) {
+; CHECK-NEXT: [[ARG0_FR:%.*]] = freeze float [[ARG0]]
+; CHECK-NEXT: [[OP:%.*]] = call float @llvm.minimumnum.f32(float [[ARG0_FR]], float noundef [[ARG1]])
+; CHECK-NEXT: ret float [[OP]]
;
%op = call float @llvm.minimumnum.f32(float %arg0, float noundef %arg1)
%freeze = freeze float %op
@@ -518,10 +566,11 @@ define float @freeze_minimumnum(float %arg0, float noundef %arg1) {
}
define float @freeze_maximumnum(float %arg0, float noundef %arg1) {
-; CHECK-LABEL: @freeze_maximumnum(
-; CHECK-NEXT: [[FREEZE:%.*]] = freeze float [[OP:%.*]]
-; CHECK-NEXT: [[OP1:%.*]] = call float @llvm.maximumnum.f32(float [[FREEZE]], float noundef [[ARG1:%.*]])
-; CHECK-NEXT: ret float [[OP1]]
+; CHECK-LABEL: define float @freeze_maximumnum(
+; CHECK-SAME: float [[ARG0:%.*]], float noundef [[ARG1:%.*]]) {
+; CHECK-NEXT: [[ARG0_FR:%.*]] = freeze float [[ARG0]]
+; CHECK-NEXT: [[OP:%.*]] = call float @llvm.maximumnum.f32(float [[ARG0_FR]], float noundef [[ARG1]])
+; CHECK-NEXT: ret float [[OP]]
;
%op = call float @llvm.maximumnum.f32(float %arg0, float noundef %arg1)
%freeze = freeze float %op
@@ -529,8 +578,9 @@ define float @freeze_maximumnum(float %arg0, float noundef %arg1) {
}
define i1 @freeze_isfpclass(float %arg0) {
-; CHECK-LABEL: @freeze_isfpclass(
-; CHECK-NEXT: [[ARG0_FR:%.*]] = freeze float [[ARG0:%.*]]
+; CHECK-LABEL: define i1 @freeze_isfpclass(
+; CHECK-SAME: float [[ARG0:%.*]]) {
+; CHECK-NEXT: [[ARG0_FR:%.*]] = freeze float [[ARG0]]
; CHECK-NEXT: [[OP:%.*]] = call i1 @llvm.is.fpclass.f32(float [[ARG0_FR]], i32 27)
; CHECK-NEXT: ret i1 [[OP]]
;
@@ -540,8 +590,9 @@ define i1 @freeze_isfpclass(float %arg0) {
}
define float @freeze_fptrunc_round(double %arg0) {
-; CHECK-LABEL: @freeze_fptrunc_round(
-; CHECK-NEXT: [[ARG0_FR:%.*]] = freeze double [[ARG0:%.*]]
+; CHECK-LABEL: define float @freeze_fptrunc_round(
+; CHECK-SAME: double [[ARG0:%.*]]) {
+; CHECK-NEXT: [[ARG0_FR:%.*]] = freeze double [[ARG0]]
; CHECK-NEXT: [[OP:%.*]] = call float @llvm.fptrunc.round.f32.f64(double [[ARG0_FR]], metadata !"round.downward")
; CHECK-NEXT: ret float [[OP]]
;
@@ -551,9 +602,10 @@ define float @freeze_fptrunc_round(double %arg0) {
}
define float @freeze_ldexp(float %arg0, i32 noundef %arg1) {
-; CHECK-LABEL: @freeze_ldexp(
-; CHECK-NEXT: [[ARG0_FR:%.*]] = freeze float [[ARG0:%.*]]
-; CHECK-NEXT: [[OP:%.*]] = call float @llvm.ldexp.f32.i32(float [[ARG0_FR]], i32 [[ARG1:%.*]])
+; CHECK-LABEL: define float @freeze_ldexp(
+; CHECK-SAME: float [[ARG0:%.*]], i32 noundef [[ARG1:%.*]]) {
+; CHECK-NEXT: [[ARG0_FR:%.*]] = freeze float [[ARG0]]
+; CHECK-NEXT: [[OP:%.*]] = call float @llvm.ldexp.f32.i32(float [[ARG0_FR]], i32 [[ARG1]])
; CHECK-NEXT: ret float [[OP]]
;
%op = call float @llvm.ldexp.f32.i32(float %arg0, i32 %arg1)
@@ -562,8 +614,9 @@ define float @freeze_ldexp(float %arg0, i32 noundef %arg1) {
}
define { float, i32 } @freeze_frexp(float %arg0) {
-; CHECK-LABEL: @freeze_frexp(
-; CHECK-NEXT: [[ARG0_FR:%.*]] = freeze float [[ARG0:%.*]]
+; CHECK-LABEL: define { float, i32 } @freeze_frexp(
+; CHECK-SAME: float [[ARG0:%.*]]) {
+; CHECK-NEXT: [[ARG0_FR:%.*]] = freeze float [[ARG0]]
; CHECK-NEXT: [[OP:%.*]] = call { float, i32 } @llvm.frexp.f32.i32(float [[ARG0_FR]])
; CHECK-NEXT: ret { float, i32 } [[OP]]
;
@@ -573,8 +626,9 @@ define { float, i32 } @freeze_frexp(float %arg0) {
}
define float @freeze_frexp_0(float %arg0) {
-; CHECK-LABEL: @freeze_frexp_0(
-; CHECK-NEXT: [[ARG0_FR:%.*]] = freeze float [[ARG0:%.*]]
+; CHECK-LABEL: define float @freeze_frexp_0(
+; CHECK-SAME: float [[ARG0:%.*]]) {
+; CHECK-NEXT: [[ARG0_FR:%.*]] = freeze float [[ARG0]]
; CHECK-NEXT: [[OP:%.*]] = call { float, i32 } @llvm.frexp.f32.i32(float [[ARG0_FR]])
; CHECK-NEXT: [[EXTRACT_0:%.*]] = extractvalue { float, i32 } [[OP]], 0
; CHECK-NEXT: ret float [[EXTRACT_0]]
@@ -586,8 +640,9 @@ define float @freeze_frexp_0(float %arg0) {
}
define i32 @freeze_frexp_1(float %arg0) {
-; CHECK-LABEL: @freeze_frexp_1(
-; CHECK-NEXT: [[ARG0_FR:%.*]] = freeze float [[ARG0:%.*]]
+; CHECK-LABEL: define i32 @freeze_frexp_1(
+; CHECK-SAME: float [[ARG0:%.*]]) {
+; CHECK-NEXT: [[ARG0_FR:%.*]] = freeze float [[ARG0]]
; CHECK-NEXT: [[OP:%.*]] = call { float, i32 } @llvm.frexp.f32.i32(float [[ARG0_FR]])
; CHECK-NEXT: [[EXTRACT_1:%.*]] = extractvalue { float, i32 } [[OP]], 1
; CHECK-NEXT: ret i32 [[EXTRACT_1]]