Skip to content

Commit

Permalink
[InstCombine] Regenerate test checks (NFC)
Browse files Browse the repository at this point in the history
  • Loading branch information
nikic committed Dec 18, 2020
1 parent 09468a9 commit 2af2f58
Show file tree
Hide file tree
Showing 9 changed files with 247 additions and 212 deletions.
54 changes: 36 additions & 18 deletions llvm/test/Transforms/InstCombine/CPP_min_max.ll
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
; RUN: opt < %s -instcombine -S | \
; RUN: grep select | not grep 'i32\*'
; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
; RUN: opt < %s -instcombine -S | FileCheck %s

; This testcase corresponds to PR362, which notices that this horrible code
; is generated by the C++ front-end and LLVM optimizers, which has lots of
Expand All @@ -9,26 +9,44 @@
; allow elimination of the extra stuff by the mem2reg pass.

define void @_Z5test1RiS_(i32* %x, i32* %y) {
; CHECK-LABEL: @_Z5test1RiS_(
; CHECK-NEXT: entry:
; CHECK-NEXT: [[TMP_1_I:%.*]] = load i32, i32* [[Y:%.*]], align 4
; CHECK-NEXT: [[TMP_3_I:%.*]] = load i32, i32* [[X:%.*]], align 4
; CHECK-NEXT: [[TMP_4_I:%.*]] = icmp slt i32 [[TMP_1_I]], [[TMP_3_I]]
; CHECK-NEXT: [[TMP_4:%.*]] = select i1 [[TMP_4_I]], i32 [[TMP_1_I]], i32 [[TMP_3_I]]
; CHECK-NEXT: store i32 [[TMP_4]], i32* [[X]], align 4
; CHECK-NEXT: ret void
;
entry:
%tmp.1.i = load i32, i32* %y ; <i32> [#uses=1]
%tmp.3.i = load i32, i32* %x ; <i32> [#uses=1]
%tmp.4.i = icmp slt i32 %tmp.1.i, %tmp.3.i ; <i1> [#uses=1]
%retval.i = select i1 %tmp.4.i, i32* %y, i32* %x ; <i32*> [#uses=1]
%tmp.4 = load i32, i32* %retval.i ; <i32> [#uses=1]
store i32 %tmp.4, i32* %x
ret void
%tmp.1.i = load i32, i32* %y ; <i32> [#uses=1]
%tmp.3.i = load i32, i32* %x ; <i32> [#uses=1]
%tmp.4.i = icmp slt i32 %tmp.1.i, %tmp.3.i ; <i1> [#uses=1]
%retval.i = select i1 %tmp.4.i, i32* %y, i32* %x ; <i32*> [#uses=1]
%tmp.4 = load i32, i32* %retval.i ; <i32> [#uses=1]
store i32 %tmp.4, i32* %x
ret void
}

define void @_Z5test2RiS_(i32* %x, i32* %y) {
; CHECK-LABEL: @_Z5test2RiS_(
; CHECK-NEXT: entry:
; CHECK-NEXT: [[TMP_2:%.*]] = load i32, i32* [[X:%.*]], align 4
; CHECK-NEXT: [[TMP_3_I:%.*]] = load i32, i32* [[Y:%.*]], align 4
; CHECK-NEXT: [[TMP_4_I:%.*]] = icmp slt i32 [[TMP_2]], [[TMP_3_I]]
; CHECK-NEXT: [[TMP_6:%.*]] = select i1 [[TMP_4_I]], i32 [[TMP_3_I]], i32 [[TMP_2]]
; CHECK-NEXT: store i32 [[TMP_6]], i32* [[Y]], align 4
; CHECK-NEXT: ret void
;
entry:
%tmp.0 = alloca i32 ; <i32*> [#uses=2]
%tmp.2 = load i32, i32* %x ; <i32> [#uses=2]
store i32 %tmp.2, i32* %tmp.0
%tmp.3.i = load i32, i32* %y ; <i32> [#uses=1]
%tmp.4.i = icmp slt i32 %tmp.2, %tmp.3.i ; <i1> [#uses=1]
%retval.i = select i1 %tmp.4.i, i32* %y, i32* %tmp.0 ; <i32*> [#uses=1]
%tmp.6 = load i32, i32* %retval.i ; <i32> [#uses=1]
store i32 %tmp.6, i32* %y
ret void
%tmp.0 = alloca i32 ; <i32*> [#uses=2]
%tmp.2 = load i32, i32* %x ; <i32> [#uses=2]
store i32 %tmp.2, i32* %tmp.0
%tmp.3.i = load i32, i32* %y ; <i32> [#uses=1]
%tmp.4.i = icmp slt i32 %tmp.2, %tmp.3.i ; <i1> [#uses=1]
%retval.i = select i1 %tmp.4.i, i32* %y, i32* %tmp.0 ; <i32*> [#uses=1]
%tmp.6 = load i32, i32* %retval.i ; <i32> [#uses=1]
store i32 %tmp.6, i32* %y
ret void
}

102 changes: 51 additions & 51 deletions llvm/test/Transforms/InstCombine/clamp-to-minmax.ll

Large diffs are not rendered by default.

68 changes: 34 additions & 34 deletions llvm/test/Transforms/InstCombine/minmax-fp.ll
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@

; This is the canonical form for a type-changing min/max.
define double @t1(float %a) {
; CHECK-LABEL: define {{[^@]+}}@t1(
; CHECK-LABEL: @t1(
; CHECK-NEXT: [[DOTINV:%.*]] = fcmp oge float [[A:%.*]], 5.000000e+00
; CHECK-NEXT: [[TMP1:%.*]] = select i1 [[DOTINV]], float 5.000000e+00, float [[A]]
; CHECK-NEXT: [[TMP2:%.*]] = fpext float [[TMP1]] to double
Expand All @@ -17,7 +17,7 @@ define double @t1(float %a) {

; Check this is converted into canonical form, as above.
define double @t2(float %a) {
; CHECK-LABEL: define {{[^@]+}}@t2(
; CHECK-LABEL: @t2(
; CHECK-NEXT: [[DOTINV:%.*]] = fcmp oge float [[A:%.*]], 5.000000e+00
; CHECK-NEXT: [[TMP1:%.*]] = select i1 [[DOTINV]], float 5.000000e+00, float [[A]]
; CHECK-NEXT: [[TMP2:%.*]] = fpext float [[TMP1]] to double
Expand All @@ -31,7 +31,7 @@ define double @t2(float %a) {

; Same again, with trunc.
define float @t4(double %a) {
; CHECK-LABEL: define {{[^@]+}}@t4(
; CHECK-LABEL: @t4(
; CHECK-NEXT: [[DOTINV:%.*]] = fcmp oge double [[A:%.*]], 5.000000e+00
; CHECK-NEXT: [[TMP1:%.*]] = select i1 [[DOTINV]], double 5.000000e+00, double [[A]]
; CHECK-NEXT: [[TMP2:%.*]] = fptrunc double [[TMP1]] to float
Expand All @@ -45,7 +45,7 @@ define float @t4(double %a) {

; different values, should not be converted.
define double @t5(float %a) {
; CHECK-LABEL: define {{[^@]+}}@t5(
; CHECK-LABEL: @t5(
; CHECK-NEXT: [[TMP1:%.*]] = fcmp ult float [[A:%.*]], 5.000000e+00
; CHECK-NEXT: [[TMP2:%.*]] = fpext float [[A]] to double
; CHECK-NEXT: [[TMP3:%.*]] = select i1 [[TMP1]], double [[TMP2]], double 5.001000e+00
Expand All @@ -61,7 +61,7 @@ define double @t5(float %a) {
; So the compare constant may be treated as +0.0, and we sink the fpext.

define double @t6(float %a) {
; CHECK-LABEL: define {{[^@]+}}@t6(
; CHECK-LABEL: @t6(
; CHECK-NEXT: [[DOTINV:%.*]] = fcmp oge float [[A:%.*]], 0.000000e+00
; CHECK-NEXT: [[TMP1:%.*]] = select i1 [[DOTINV]], float 0.000000e+00, float [[A]]
; CHECK-NEXT: [[TMP2:%.*]] = fpext float [[TMP1]] to double
Expand All @@ -77,7 +77,7 @@ define double @t6(float %a) {
; So the compare constant may be treated as -0.0, and we sink the fpext.

define double @t7(float %a) {
; CHECK-LABEL: define {{[^@]+}}@t7(
; CHECK-LABEL: @t7(
; CHECK-NEXT: [[DOTINV:%.*]] = fcmp oge float [[A:%.*]], 0.000000e+00
; CHECK-NEXT: [[TMP1:%.*]] = select i1 [[DOTINV]], float -0.000000e+00, float [[A]]
; CHECK-NEXT: [[TMP2:%.*]] = fpext float [[TMP1]] to double
Expand All @@ -92,7 +92,7 @@ define double @t7(float %a) {
; min(min(x, 0.0), 0.0) --> min(x, 0.0)

define float @fmin_fmin_zero_mismatch(float %x) {
; CHECK-LABEL: define {{[^@]+}}@fmin_fmin_zero_mismatch(
; CHECK-LABEL: @fmin_fmin_zero_mismatch(
; CHECK-NEXT: [[TMP1:%.*]] = fcmp olt float [[X:%.*]], 0.000000e+00
; CHECK-NEXT: [[MIN2:%.*]] = select i1 [[TMP1]], float [[X]], float 0.000000e+00
; CHECK-NEXT: ret float [[MIN2]]
Expand All @@ -107,7 +107,7 @@ define float @fmin_fmin_zero_mismatch(float %x) {
; max(max(x, -0.0), -0.0) --> max(x, -0.0)

define float @fmax_fmax_zero_mismatch(float %x) {
; CHECK-LABEL: define {{[^@]+}}@fmax_fmax_zero_mismatch(
; CHECK-LABEL: @fmax_fmax_zero_mismatch(
; CHECK-NEXT: [[TMP1:%.*]] = fcmp ogt float [[X:%.*]], -0.000000e+00
; CHECK-NEXT: [[MAX11:%.*]] = select i1 [[TMP1]], float [[X]], float -0.000000e+00
; CHECK-NEXT: ret float [[MAX11]]
Expand All @@ -120,7 +120,7 @@ define float @fmax_fmax_zero_mismatch(float %x) {
}

define i64 @t8(float %a) {
; CHECK-LABEL: define {{[^@]+}}@t8(
; CHECK-LABEL: @t8(
; CHECK-NEXT: [[DOTINV:%.*]] = fcmp oge float [[A:%.*]], 5.000000e+00
; CHECK-NEXT: [[TMP1:%.*]] = select i1 [[DOTINV]], float 5.000000e+00, float [[A]]
; CHECK-NEXT: [[TMP2:%.*]] = fptoui float [[TMP1]] to i64
Expand All @@ -133,7 +133,7 @@ define i64 @t8(float %a) {
}

define i8 @t9(float %a) {
; CHECK-LABEL: define {{[^@]+}}@t9(
; CHECK-LABEL: @t9(
; CHECK-NEXT: [[DOTINV:%.*]] = fcmp oge float [[A:%.*]], 0.000000e+00
; CHECK-NEXT: [[TMP1:%.*]] = select i1 [[DOTINV]], float 0.000000e+00, float [[A]]
; CHECK-NEXT: [[TMP2:%.*]] = fptosi float [[TMP1]] to i8
Expand All @@ -147,7 +147,7 @@ define i8 @t9(float %a) {

; Either operand could be NaN, but fast modifier applied.
define i8 @t11(float %a, float %b) {
; CHECK-LABEL: define {{[^@]+}}@t11(
; CHECK-LABEL: @t11(
; CHECK-NEXT: [[DOTINV:%.*]] = fcmp fast oge float [[B:%.*]], [[A:%.*]]
; CHECK-NEXT: [[TMP1:%.*]] = select fast i1 [[DOTINV]], float [[A]], float [[B]]
; CHECK-NEXT: [[TMP2:%.*]] = fptosi float [[TMP1]] to i8
Expand All @@ -162,7 +162,7 @@ define i8 @t11(float %a, float %b) {

; Either operand could be NaN, but nnan modifier applied.
define i8 @t12(float %a, float %b) {
; CHECK-LABEL: define {{[^@]+}}@t12(
; CHECK-LABEL: @t12(
; CHECK-NEXT: [[DOTINV:%.*]] = fcmp nnan oge float [[B:%.*]], [[A:%.*]]
; CHECK-NEXT: [[TMP1:%.*]] = select nnan i1 [[DOTINV]], float [[A]], float [[B]]
; CHECK-NEXT: [[TMP2:%.*]] = fptosi float [[TMP1]] to i8
Expand All @@ -177,7 +177,7 @@ define i8 @t12(float %a, float %b) {

; Float and int values do not match.
define i8 @t13(float %a) {
; CHECK-LABEL: define {{[^@]+}}@t13(
; CHECK-LABEL: @t13(
; CHECK-NEXT: [[TMP1:%.*]] = fcmp ult float [[A:%.*]], 1.500000e+00
; CHECK-NEXT: [[TMP2:%.*]] = fptosi float [[A]] to i8
; CHECK-NEXT: [[TMP3:%.*]] = select i1 [[TMP1]], i8 [[TMP2]], i8 1
Expand All @@ -191,7 +191,7 @@ define i8 @t13(float %a) {

; %a could be -0.0, but it doesn't matter because the conversion to int is the same for 0.0 or -0.0.
define i8 @t14(float %a) {
; CHECK-LABEL: define {{[^@]+}}@t14(
; CHECK-LABEL: @t14(
; CHECK-NEXT: [[DOTINV:%.*]] = fcmp oge float [[A:%.*]], 0.000000e+00
; CHECK-NEXT: [[TMP1:%.*]] = select i1 [[DOTINV]], float 0.000000e+00, float [[A]]
; CHECK-NEXT: [[TMP2:%.*]] = fptosi float [[TMP1]] to i8
Expand All @@ -204,7 +204,7 @@ define i8 @t14(float %a) {
}

define i8 @t14_commute(float %a) {
; CHECK-LABEL: define {{[^@]+}}@t14_commute(
; CHECK-LABEL: @t14_commute(
; CHECK-NEXT: [[TMP1:%.*]] = fcmp ogt float [[A:%.*]], 0.000000e+00
; CHECK-NEXT: [[TMP2:%.*]] = select i1 [[TMP1]], float [[A]], float 0.000000e+00
; CHECK-NEXT: [[TMP3:%.*]] = fptosi float [[TMP2]] to i8
Expand All @@ -217,7 +217,7 @@ define i8 @t14_commute(float %a) {
}

define i8 @t15(float %a) {
; CHECK-LABEL: define {{[^@]+}}@t15(
; CHECK-LABEL: @t15(
; CHECK-NEXT: [[DOTINV:%.*]] = fcmp nsz oge float [[A:%.*]], 0.000000e+00
; CHECK-NEXT: [[TMP1:%.*]] = select nsz i1 [[DOTINV]], float 0.000000e+00, float [[A]]
; CHECK-NEXT: [[TMP2:%.*]] = fptosi float [[TMP1]] to i8
Expand All @@ -230,7 +230,7 @@ define i8 @t15(float %a) {
}

define double @t16(i32 %x) {
; CHECK-LABEL: define {{[^@]+}}@t16(
; CHECK-LABEL: @t16(
; CHECK-NEXT: [[CMP:%.*]] = icmp sgt i32 [[X:%.*]], 0
; CHECK-NEXT: [[CST:%.*]] = sitofp i32 [[X]] to double
; CHECK-NEXT: [[SEL:%.*]] = select i1 [[CMP]], double [[CST]], double 5.000000e-01
Expand All @@ -243,7 +243,7 @@ define double @t16(i32 %x) {
}

define double @t17(i32 %x) {
; CHECK-LABEL: define {{[^@]+}}@t17(
; CHECK-LABEL: @t17(
; CHECK-NEXT: [[TMP1:%.*]] = icmp sgt i32 [[X:%.*]], 2
; CHECK-NEXT: [[SEL1:%.*]] = select i1 [[TMP1]], i32 [[X]], i32 2
; CHECK-NEXT: [[TMP2:%.*]] = sitofp i32 [[SEL1]] to double
Expand All @@ -256,7 +256,7 @@ define double @t17(i32 %x) {
}

define float @fneg_fmax(float %x, float %y) {
; CHECK-LABEL: define {{[^@]+}}@fneg_fmax(
; CHECK-LABEL: @fneg_fmax(
; CHECK-NEXT: [[COND:%.*]] = fcmp nnan olt float [[X:%.*]], [[Y:%.*]]
; CHECK-NEXT: [[MAX_V:%.*]] = select i1 [[COND]], float [[X]], float [[Y]]
; CHECK-NEXT: [[MAX:%.*]] = fneg float [[MAX_V]]
Expand All @@ -270,7 +270,7 @@ define float @fneg_fmax(float %x, float %y) {
}

define <2 x float> @fsub_fmax(<2 x float> %x, <2 x float> %y) {
; CHECK-LABEL: define {{[^@]+}}@fsub_fmax(
; CHECK-LABEL: @fsub_fmax(
; CHECK-NEXT: [[COND_INV:%.*]] = fcmp nnan nsz ogt <2 x float> [[X:%.*]], [[Y:%.*]]
; CHECK-NEXT: [[TMP1:%.*]] = select nnan nsz <2 x i1> [[COND_INV]], <2 x float> [[Y]], <2 x float> [[X]]
; CHECK-NEXT: [[MAX:%.*]] = fneg <2 x float> [[TMP1]]
Expand All @@ -284,7 +284,7 @@ define <2 x float> @fsub_fmax(<2 x float> %x, <2 x float> %y) {
}

define <2 x double> @fsub_fmin(<2 x double> %x, <2 x double> %y) {
; CHECK-LABEL: define {{[^@]+}}@fsub_fmin(
; CHECK-LABEL: @fsub_fmin(
; CHECK-NEXT: [[COND:%.*]] = fcmp nnan ogt <2 x double> [[X:%.*]], [[Y:%.*]]
; CHECK-NEXT: [[MAX_V:%.*]] = select <2 x i1> [[COND]], <2 x double> [[X]], <2 x double> [[Y]]
; CHECK-NEXT: [[MAX:%.*]] = fneg <2 x double> [[MAX_V]]
Expand All @@ -298,7 +298,7 @@ define <2 x double> @fsub_fmin(<2 x double> %x, <2 x double> %y) {
}

define double @fneg_fmin(double %x, double %y) {
; CHECK-LABEL: define {{[^@]+}}@fneg_fmin(
; CHECK-LABEL: @fneg_fmin(
; CHECK-NEXT: [[COND_INV:%.*]] = fcmp nnan nsz olt double [[X:%.*]], [[Y:%.*]]
; CHECK-NEXT: [[TMP1:%.*]] = select nnan nsz i1 [[COND_INV]], double [[Y]], double [[X]]
; CHECK-NEXT: [[MAX:%.*]] = fneg double [[TMP1]]
Expand All @@ -312,7 +312,7 @@ define double @fneg_fmin(double %x, double %y) {
}

define float @maxnum_ogt_fmf_on_select(float %a, float %b) {
; CHECK-LABEL: define {{[^@]+}}@maxnum_ogt_fmf_on_select(
; CHECK-LABEL: @maxnum_ogt_fmf_on_select(
; CHECK-NEXT: [[TMP1:%.*]] = call nnan nsz float @llvm.maxnum.f32(float [[A:%.*]], float [[B:%.*]])
; CHECK-NEXT: ret float [[TMP1]]
;
Expand All @@ -322,7 +322,7 @@ define float @maxnum_ogt_fmf_on_select(float %a, float %b) {
}

define <2 x float> @maxnum_oge_fmf_on_select(<2 x float> %a, <2 x float> %b) {
; CHECK-LABEL: define {{[^@]+}}@maxnum_oge_fmf_on_select(
; CHECK-LABEL: @maxnum_oge_fmf_on_select(
; CHECK-NEXT: [[TMP1:%.*]] = call nnan ninf nsz <2 x float> @llvm.maxnum.v2f32(<2 x float> [[A:%.*]], <2 x float> [[B:%.*]])
; CHECK-NEXT: ret <2 x float> [[TMP1]]
;
Expand All @@ -332,7 +332,7 @@ define <2 x float> @maxnum_oge_fmf_on_select(<2 x float> %a, <2 x float> %b) {
}

define float @maxnum_ogt_fmf_on_fcmp(float %a, float %b) {
; CHECK-LABEL: define {{[^@]+}}@maxnum_ogt_fmf_on_fcmp(
; CHECK-LABEL: @maxnum_ogt_fmf_on_fcmp(
; CHECK-NEXT: [[COND:%.*]] = fcmp nnan nsz ogt float [[A:%.*]], [[B:%.*]]
; CHECK-NEXT: [[F:%.*]] = select i1 [[COND]], float [[A]], float [[B]]
; CHECK-NEXT: ret float [[F]]
Expand All @@ -343,7 +343,7 @@ define float @maxnum_ogt_fmf_on_fcmp(float %a, float %b) {
}

define <2 x float> @maxnum_oge_fmf_on_fcmp(<2 x float> %a, <2 x float> %b) {
; CHECK-LABEL: define {{[^@]+}}@maxnum_oge_fmf_on_fcmp(
; CHECK-LABEL: @maxnum_oge_fmf_on_fcmp(
; CHECK-NEXT: [[COND:%.*]] = fcmp nnan ninf nsz oge <2 x float> [[A:%.*]], [[B:%.*]]
; CHECK-NEXT: [[F:%.*]] = select <2 x i1> [[COND]], <2 x float> [[A]], <2 x float> [[B]]
; CHECK-NEXT: ret <2 x float> [[F]]
Expand All @@ -354,7 +354,7 @@ define <2 x float> @maxnum_oge_fmf_on_fcmp(<2 x float> %a, <2 x float> %b) {
}

define float @maxnum_no_nsz(float %a, float %b) {
; CHECK-LABEL: define {{[^@]+}}@maxnum_no_nsz(
; CHECK-LABEL: @maxnum_no_nsz(
; CHECK-NEXT: [[COND:%.*]] = fcmp ogt float [[A:%.*]], [[B:%.*]]
; CHECK-NEXT: [[F:%.*]] = select nnan i1 [[COND]], float [[A]], float [[B]]
; CHECK-NEXT: ret float [[F]]
Expand All @@ -365,7 +365,7 @@ define float @maxnum_no_nsz(float %a, float %b) {
}

define float @maxnum_no_nnan(float %a, float %b) {
; CHECK-LABEL: define {{[^@]+}}@maxnum_no_nnan(
; CHECK-LABEL: @maxnum_no_nnan(
; CHECK-NEXT: [[COND:%.*]] = fcmp oge float [[A:%.*]], [[B:%.*]]
; CHECK-NEXT: [[F:%.*]] = select nsz i1 [[COND]], float [[A]], float [[B]]
; CHECK-NEXT: ret float [[F]]
Expand All @@ -376,7 +376,7 @@ define float @maxnum_no_nnan(float %a, float %b) {
}

define float @minnum_olt_fmf_on_select(float %a, float %b) {
; CHECK-LABEL: define {{[^@]+}}@minnum_olt_fmf_on_select(
; CHECK-LABEL: @minnum_olt_fmf_on_select(
; CHECK-NEXT: [[TMP1:%.*]] = call nnan nsz float @llvm.minnum.f32(float [[A:%.*]], float [[B:%.*]])
; CHECK-NEXT: ret float [[TMP1]]
;
Expand All @@ -386,7 +386,7 @@ define float @minnum_olt_fmf_on_select(float %a, float %b) {
}

define <2 x float> @minnum_ole_fmf_on_select(<2 x float> %a, <2 x float> %b) {
; CHECK-LABEL: define {{[^@]+}}@minnum_ole_fmf_on_select(
; CHECK-LABEL: @minnum_ole_fmf_on_select(
; CHECK-NEXT: [[TMP1:%.*]] = call nnan ninf nsz <2 x float> @llvm.minnum.v2f32(<2 x float> [[A:%.*]], <2 x float> [[B:%.*]])
; CHECK-NEXT: ret <2 x float> [[TMP1]]
;
Expand All @@ -396,7 +396,7 @@ define <2 x float> @minnum_ole_fmf_on_select(<2 x float> %a, <2 x float> %b) {
}

define float @minnum_olt_fmf_on_fcmp(float %a, float %b) {
; CHECK-LABEL: define {{[^@]+}}@minnum_olt_fmf_on_fcmp(
; CHECK-LABEL: @minnum_olt_fmf_on_fcmp(
; CHECK-NEXT: [[COND:%.*]] = fcmp nnan nsz olt float [[A:%.*]], [[B:%.*]]
; CHECK-NEXT: [[F:%.*]] = select i1 [[COND]], float [[A]], float [[B]]
; CHECK-NEXT: ret float [[F]]
Expand All @@ -407,7 +407,7 @@ define float @minnum_olt_fmf_on_fcmp(float %a, float %b) {
}

define <2 x float> @minnum_ole_fmf_on_fcmp(<2 x float> %a, <2 x float> %b) {
; CHECK-LABEL: define {{[^@]+}}@minnum_ole_fmf_on_fcmp(
; CHECK-LABEL: @minnum_ole_fmf_on_fcmp(
; CHECK-NEXT: [[COND:%.*]] = fcmp nnan ninf nsz ole <2 x float> [[A:%.*]], [[B:%.*]]
; CHECK-NEXT: [[F:%.*]] = select <2 x i1> [[COND]], <2 x float> [[A]], <2 x float> [[B]]
; CHECK-NEXT: ret <2 x float> [[F]]
Expand All @@ -418,7 +418,7 @@ define <2 x float> @minnum_ole_fmf_on_fcmp(<2 x float> %a, <2 x float> %b) {
}

define float @minnum_no_nsz(float %a, float %b) {
; CHECK-LABEL: define {{[^@]+}}@minnum_no_nsz(
; CHECK-LABEL: @minnum_no_nsz(
; CHECK-NEXT: [[COND:%.*]] = fcmp olt float [[A:%.*]], [[B:%.*]]
; CHECK-NEXT: [[F:%.*]] = select nnan i1 [[COND]], float [[A]], float [[B]]
; CHECK-NEXT: ret float [[F]]
Expand All @@ -429,7 +429,7 @@ define float @minnum_no_nsz(float %a, float %b) {
}

define float @minnum_no_nnan(float %a, float %b) {
; CHECK-LABEL: define {{[^@]+}}@minnum_no_nnan(
; CHECK-LABEL: @minnum_no_nnan(
; CHECK-NEXT: [[COND:%.*]] = fcmp ole float [[A:%.*]], [[B:%.*]]
; CHECK-NEXT: [[F:%.*]] = select nsz i1 [[COND]], float [[A]], float [[B]]
; CHECK-NEXT: ret float [[F]]
Expand Down
Loading

0 comments on commit 2af2f58

Please sign in to comment.