6
6
define float @test_fcmp_ogt_fadd_select_constant (float %in ) {
7
7
; CHECK-LABEL: define float @test_fcmp_ogt_fadd_select_constant(
8
8
; CHECK-SAME: float [[IN:%.*]]) {
9
- ; CHECK-NEXT: [[SEL_NEW:%.*]] = call nnan nsz float @llvm.maxnum.f32(float [[IN]], float 0.000000e+00)
9
+ ; CHECK-NEXT: [[SEL_NEW:%.*]] = call nsz float @llvm.maxnum.f32(float [[IN]], float 0.000000e+00)
10
10
; CHECK-NEXT: [[ADD_NEW:%.*]] = fadd nnan nsz float [[SEL_NEW]], 1.000000e+00
11
11
; CHECK-NEXT: ret float [[ADD_NEW]]
12
12
;
@@ -19,7 +19,7 @@ define float @test_fcmp_ogt_fadd_select_constant(float %in) {
19
19
define float @test_fcmp_ogt_fadd_select_constant_swapped (float %in ) {
20
20
; CHECK-LABEL: define float @test_fcmp_ogt_fadd_select_constant_swapped(
21
21
; CHECK-SAME: float [[IN:%.*]]) {
22
- ; CHECK-NEXT: [[SEL_NEW:%.*]] = call nnan nsz float @llvm.maxnum.f32(float [[IN]], float 0.000000e+00)
22
+ ; CHECK-NEXT: [[SEL_NEW:%.*]] = call nsz float @llvm.maxnum.f32(float [[IN]], float 0.000000e+00)
23
23
; CHECK-NEXT: [[ADD_NEW:%.*]] = fadd nnan nsz float [[SEL_NEW]], 1.000000e+00
24
24
; CHECK-NEXT: ret float [[ADD_NEW]]
25
25
;
@@ -32,7 +32,7 @@ define float @test_fcmp_ogt_fadd_select_constant_swapped(float %in) {
32
32
define float @test_fcmp_ogt_fadd_select_neg_constant (float %in ) {
33
33
; CHECK-LABEL: define float @test_fcmp_ogt_fadd_select_neg_constant(
34
34
; CHECK-SAME: float [[IN:%.*]]) {
35
- ; CHECK-NEXT: [[SEL_NEW:%.*]] = call nnan nsz float @llvm.maxnum.f32(float [[IN]], float 0.000000e+00)
35
+ ; CHECK-NEXT: [[SEL_NEW:%.*]] = call nsz float @llvm.maxnum.f32(float [[IN]], float 0.000000e+00)
36
36
; CHECK-NEXT: [[ADD_NEW:%.*]] = fadd nnan nsz float [[SEL_NEW]], 1.000000e+00
37
37
; CHECK-NEXT: ret float [[ADD_NEW]]
38
38
;
@@ -45,7 +45,7 @@ define float @test_fcmp_ogt_fadd_select_neg_constant(float %in) {
45
45
define float @test_fcmp_ogt_fadd_select_fastmath_preserve (float %in ) {
46
46
; CHECK-LABEL: define float @test_fcmp_ogt_fadd_select_fastmath_preserve(
47
47
; CHECK-SAME: float [[IN:%.*]]) {
48
- ; CHECK-NEXT: [[SEL_NEW:%.*]] = call nnan nsz float @llvm.maxnum.f32(float [[IN]], float 0.000000e+00)
48
+ ; CHECK-NEXT: [[SEL_NEW:%.*]] = call nsz float @llvm.maxnum.f32(float [[IN]], float 0.000000e+00)
49
49
; CHECK-NEXT: [[ADD_NEW:%.*]] = fadd nnan nsz float [[SEL_NEW]], 1.000000e+00
50
50
; CHECK-NEXT: ret float [[ADD_NEW]]
51
51
;
@@ -58,7 +58,7 @@ define float @test_fcmp_ogt_fadd_select_fastmath_preserve(float %in) {
58
58
define <2 x float > @test_fcmp_ogt_fadd_select_constant_vectors (<2 x float > %in ) {
59
59
; CHECK-LABEL: define <2 x float> @test_fcmp_ogt_fadd_select_constant_vectors(
60
60
; CHECK-SAME: <2 x float> [[IN:%.*]]) {
61
- ; CHECK-NEXT: [[SEL_NEW:%.*]] = call nnan nsz <2 x float> @llvm.maxnum.v2f32(<2 x float> [[IN]], <2 x float> zeroinitializer)
61
+ ; CHECK-NEXT: [[SEL_NEW:%.*]] = call nsz <2 x float> @llvm.maxnum.v2f32(<2 x float> [[IN]], <2 x float> zeroinitializer)
62
62
; CHECK-NEXT: [[ADD_NEW:%.*]] = fadd nnan nsz <2 x float> [[SEL_NEW]], splat (float 1.000000e+00)
63
63
; CHECK-NEXT: ret <2 x float> [[ADD_NEW]]
64
64
;
@@ -74,7 +74,7 @@ define <2 x float> @test_fcmp_ogt_fadd_select_constant_vectors(<2 x float> %in)
74
74
define float @test_fcmp_olt_fadd_select_constant (float %in ) {
75
75
; CHECK-LABEL: define float @test_fcmp_olt_fadd_select_constant(
76
76
; CHECK-SAME: float [[IN:%.*]]) {
77
- ; CHECK-NEXT: [[SEL_NEW:%.*]] = call nnan nsz float @llvm.minnum.f32(float [[IN]], float 0.000000e+00)
77
+ ; CHECK-NEXT: [[SEL_NEW:%.*]] = call nsz float @llvm.minnum.f32(float [[IN]], float 0.000000e+00)
78
78
; CHECK-NEXT: [[ADD_NEW:%.*]] = fadd nnan nsz float [[SEL_NEW]], 1.000000e+00
79
79
; CHECK-NEXT: ret float [[ADD_NEW]]
80
80
;
@@ -87,7 +87,7 @@ define float @test_fcmp_olt_fadd_select_constant(float %in) {
87
87
define float @test_fcmp_olt_fadd_select_constant_swapped (float %in ) {
88
88
; CHECK-LABEL: define float @test_fcmp_olt_fadd_select_constant_swapped(
89
89
; CHECK-SAME: float [[IN:%.*]]) {
90
- ; CHECK-NEXT: [[SEL_NEW:%.*]] = call nnan nsz float @llvm.minnum.f32(float [[IN]], float 0.000000e+00)
90
+ ; CHECK-NEXT: [[SEL_NEW:%.*]] = call nsz float @llvm.minnum.f32(float [[IN]], float 0.000000e+00)
91
91
; CHECK-NEXT: [[ADD_NEW:%.*]] = fadd nnan nsz float [[SEL_NEW]], 1.000000e+00
92
92
; CHECK-NEXT: ret float [[ADD_NEW]]
93
93
;
@@ -100,7 +100,7 @@ define float @test_fcmp_olt_fadd_select_constant_swapped(float %in) {
100
100
define float @test_fcmp_olt_fadd_select_neg_constant (float %in ) {
101
101
; CHECK-LABEL: define float @test_fcmp_olt_fadd_select_neg_constant(
102
102
; CHECK-SAME: float [[IN:%.*]]) {
103
- ; CHECK-NEXT: [[SEL_NEW:%.*]] = call nnan nsz float @llvm.minnum.f32(float [[IN]], float 0.000000e+00)
103
+ ; CHECK-NEXT: [[SEL_NEW:%.*]] = call nsz float @llvm.minnum.f32(float [[IN]], float 0.000000e+00)
104
104
; CHECK-NEXT: [[ADD_NEW:%.*]] = fadd nnan nsz float [[SEL_NEW]], 1.000000e+00
105
105
; CHECK-NEXT: ret float [[ADD_NEW]]
106
106
;
@@ -113,7 +113,7 @@ define float @test_fcmp_olt_fadd_select_neg_constant(float %in) {
113
113
define float @test_fcmp_olt_fadd_select_fastmath_preserve (float %in ) {
114
114
; CHECK-LABEL: define float @test_fcmp_olt_fadd_select_fastmath_preserve(
115
115
; CHECK-SAME: float [[IN:%.*]]) {
116
- ; CHECK-NEXT: [[SEL_NEW:%.*]] = call nnan nsz float @llvm.minnum.f32(float [[IN]], float 0.000000e+00)
116
+ ; CHECK-NEXT: [[SEL_NEW:%.*]] = call nsz float @llvm.minnum.f32(float [[IN]], float 0.000000e+00)
117
117
; CHECK-NEXT: [[ADD_NEW:%.*]] = fadd nnan nsz float [[SEL_NEW]], 1.000000e+00
118
118
; CHECK-NEXT: ret float [[ADD_NEW]]
119
119
;
@@ -126,7 +126,7 @@ define float @test_fcmp_olt_fadd_select_fastmath_preserve(float %in) {
126
126
define <2 x float > @test_fcmp_olt_fadd_select_constant_vectors (<2 x float > %in ) {
127
127
; CHECK-LABEL: define <2 x float> @test_fcmp_olt_fadd_select_constant_vectors(
128
128
; CHECK-SAME: <2 x float> [[IN:%.*]]) {
129
- ; CHECK-NEXT: [[SEL_NEW:%.*]] = call nnan nsz <2 x float> @llvm.minnum.v2f32(<2 x float> [[IN]], <2 x float> zeroinitializer)
129
+ ; CHECK-NEXT: [[SEL_NEW:%.*]] = call nsz <2 x float> @llvm.minnum.v2f32(<2 x float> [[IN]], <2 x float> zeroinitializer)
130
130
; CHECK-NEXT: [[ADD_NEW:%.*]] = fadd nnan nsz <2 x float> [[SEL_NEW]], splat (float 1.000000e+00)
131
131
; CHECK-NEXT: ret <2 x float> [[ADD_NEW]]
132
132
;
@@ -142,7 +142,7 @@ define <2 x float> @test_fcmp_olt_fadd_select_constant_vectors(<2 x float> %in)
142
142
define float @test_fcmp_oge_fadd_select_constant (float %in ) {
143
143
; CHECK-LABEL: define float @test_fcmp_oge_fadd_select_constant(
144
144
; CHECK-SAME: float [[IN:%.*]]) {
145
- ; CHECK-NEXT: [[SEL_NEW:%.*]] = call nnan nsz float @llvm.maxnum.f32(float [[IN]], float 0.000000e+00)
145
+ ; CHECK-NEXT: [[SEL_NEW:%.*]] = call nsz float @llvm.maxnum.f32(float [[IN]], float 0.000000e+00)
146
146
; CHECK-NEXT: [[ADD_NEW:%.*]] = fadd nnan nsz float [[SEL_NEW]], 1.000000e+00
147
147
; CHECK-NEXT: ret float [[ADD_NEW]]
148
148
;
@@ -155,7 +155,7 @@ define float @test_fcmp_oge_fadd_select_constant(float %in) {
155
155
define float @test_fcmp_oge_fadd_select_constant_swapped (float %in ) {
156
156
; CHECK-LABEL: define float @test_fcmp_oge_fadd_select_constant_swapped(
157
157
; CHECK-SAME: float [[IN:%.*]]) {
158
- ; CHECK-NEXT: [[SEL_NEW:%.*]] = call nnan nsz float @llvm.maxnum.f32(float [[IN]], float 0.000000e+00)
158
+ ; CHECK-NEXT: [[SEL_NEW:%.*]] = call nsz float @llvm.maxnum.f32(float [[IN]], float 0.000000e+00)
159
159
; CHECK-NEXT: [[ADD_NEW:%.*]] = fadd nnan nsz float [[SEL_NEW]], 1.000000e+00
160
160
; CHECK-NEXT: ret float [[ADD_NEW]]
161
161
;
@@ -168,7 +168,7 @@ define float @test_fcmp_oge_fadd_select_constant_swapped(float %in) {
168
168
define float @test_fcmp_oge_fadd_select_neg_constant (float %in ) {
169
169
; CHECK-LABEL: define float @test_fcmp_oge_fadd_select_neg_constant(
170
170
; CHECK-SAME: float [[IN:%.*]]) {
171
- ; CHECK-NEXT: [[SEL_NEW:%.*]] = call nnan nsz float @llvm.maxnum.f32(float [[IN]], float 0.000000e+00)
171
+ ; CHECK-NEXT: [[SEL_NEW:%.*]] = call nsz float @llvm.maxnum.f32(float [[IN]], float 0.000000e+00)
172
172
; CHECK-NEXT: [[ADD_NEW:%.*]] = fadd nnan nsz float [[SEL_NEW]], 1.000000e+00
173
173
; CHECK-NEXT: ret float [[ADD_NEW]]
174
174
;
@@ -181,7 +181,7 @@ define float @test_fcmp_oge_fadd_select_neg_constant(float %in) {
181
181
define float @test_fcmp_oge_fadd_select_fastmath_preserve (float %in ) {
182
182
; CHECK-LABEL: define float @test_fcmp_oge_fadd_select_fastmath_preserve(
183
183
; CHECK-SAME: float [[IN:%.*]]) {
184
- ; CHECK-NEXT: [[SEL_NEW:%.*]] = call nnan nsz float @llvm.maxnum.f32(float [[IN]], float 0.000000e+00)
184
+ ; CHECK-NEXT: [[SEL_NEW:%.*]] = call nsz float @llvm.maxnum.f32(float [[IN]], float 0.000000e+00)
185
185
; CHECK-NEXT: [[ADD_NEW:%.*]] = fadd nnan nsz float [[SEL_NEW]], 1.000000e+00
186
186
; CHECK-NEXT: ret float [[ADD_NEW]]
187
187
;
@@ -194,7 +194,7 @@ define float @test_fcmp_oge_fadd_select_fastmath_preserve(float %in) {
194
194
define <2 x float > @test_fcmp_oge_fadd_select_constant_vectors (<2 x float > %in ) {
195
195
; CHECK-LABEL: define <2 x float> @test_fcmp_oge_fadd_select_constant_vectors(
196
196
; CHECK-SAME: <2 x float> [[IN:%.*]]) {
197
- ; CHECK-NEXT: [[SEL_NEW:%.*]] = call nnan nsz <2 x float> @llvm.maxnum.v2f32(<2 x float> [[IN]], <2 x float> zeroinitializer)
197
+ ; CHECK-NEXT: [[SEL_NEW:%.*]] = call nsz <2 x float> @llvm.maxnum.v2f32(<2 x float> [[IN]], <2 x float> zeroinitializer)
198
198
; CHECK-NEXT: [[ADD_NEW:%.*]] = fadd nnan nsz <2 x float> [[SEL_NEW]], splat (float 1.000000e+00)
199
199
; CHECK-NEXT: ret <2 x float> [[ADD_NEW]]
200
200
;
@@ -210,7 +210,7 @@ define <2 x float> @test_fcmp_oge_fadd_select_constant_vectors(<2 x float> %in)
210
210
define float @test_fcmp_ole_fadd_select_constant (float %in ) {
211
211
; CHECK-LABEL: define float @test_fcmp_ole_fadd_select_constant(
212
212
; CHECK-SAME: float [[IN:%.*]]) {
213
- ; CHECK-NEXT: [[SEL_NEW:%.*]] = call nnan nsz float @llvm.minnum.f32(float [[IN]], float 0.000000e+00)
213
+ ; CHECK-NEXT: [[SEL_NEW:%.*]] = call nsz float @llvm.minnum.f32(float [[IN]], float 0.000000e+00)
214
214
; CHECK-NEXT: [[ADD_NEW:%.*]] = fadd nnan nsz float [[SEL_NEW]], 1.000000e+00
215
215
; CHECK-NEXT: ret float [[ADD_NEW]]
216
216
;
@@ -223,7 +223,7 @@ define float @test_fcmp_ole_fadd_select_constant(float %in) {
223
223
define float @test_fcmp_ole_fadd_select_constant_swapped (float %in ) {
224
224
; CHECK-LABEL: define float @test_fcmp_ole_fadd_select_constant_swapped(
225
225
; CHECK-SAME: float [[IN:%.*]]) {
226
- ; CHECK-NEXT: [[SEL_NEW:%.*]] = call nnan nsz float @llvm.minnum.f32(float [[IN]], float 0.000000e+00)
226
+ ; CHECK-NEXT: [[SEL_NEW:%.*]] = call nsz float @llvm.minnum.f32(float [[IN]], float 0.000000e+00)
227
227
; CHECK-NEXT: [[ADD_NEW:%.*]] = fadd nnan nsz float [[SEL_NEW]], 1.000000e+00
228
228
; CHECK-NEXT: ret float [[ADD_NEW]]
229
229
;
@@ -236,7 +236,7 @@ define float @test_fcmp_ole_fadd_select_constant_swapped(float %in) {
236
236
define float @test_fcmp_ole_fadd_select_neg_constant (float %in ) {
237
237
; CHECK-LABEL: define float @test_fcmp_ole_fadd_select_neg_constant(
238
238
; CHECK-SAME: float [[IN:%.*]]) {
239
- ; CHECK-NEXT: [[SEL_NEW:%.*]] = call nnan nsz float @llvm.minnum.f32(float [[IN]], float 0.000000e+00)
239
+ ; CHECK-NEXT: [[SEL_NEW:%.*]] = call nsz float @llvm.minnum.f32(float [[IN]], float 0.000000e+00)
240
240
; CHECK-NEXT: [[ADD_NEW:%.*]] = fadd nnan nsz float [[SEL_NEW]], 1.000000e+00
241
241
; CHECK-NEXT: ret float [[ADD_NEW]]
242
242
;
@@ -249,7 +249,7 @@ define float @test_fcmp_ole_fadd_select_neg_constant(float %in) {
249
249
define float @test_fcmp_ole_fadd_select_fastmath_preserve (float %in ) {
250
250
; CHECK-LABEL: define float @test_fcmp_ole_fadd_select_fastmath_preserve(
251
251
; CHECK-SAME: float [[IN:%.*]]) {
252
- ; CHECK-NEXT: [[SEL_NEW:%.*]] = call nnan nsz float @llvm.minnum.f32(float [[IN]], float 0.000000e+00)
252
+ ; CHECK-NEXT: [[SEL_NEW:%.*]] = call nsz float @llvm.minnum.f32(float [[IN]], float 0.000000e+00)
253
253
; CHECK-NEXT: [[ADD_NEW:%.*]] = fadd nnan nsz float [[SEL_NEW]], 1.000000e+00
254
254
; CHECK-NEXT: ret float [[ADD_NEW]]
255
255
;
@@ -262,7 +262,7 @@ define float @test_fcmp_ole_fadd_select_fastmath_preserve(float %in) {
262
262
define <2 x float > @test_fcmp_ole_fadd_select_constant_vectors (<2 x float > %in ) {
263
263
; CHECK-LABEL: define <2 x float> @test_fcmp_ole_fadd_select_constant_vectors(
264
264
; CHECK-SAME: <2 x float> [[IN:%.*]]) {
265
- ; CHECK-NEXT: [[SEL_NEW:%.*]] = call nnan nsz <2 x float> @llvm.minnum.v2f32(<2 x float> [[IN]], <2 x float> zeroinitializer)
265
+ ; CHECK-NEXT: [[SEL_NEW:%.*]] = call nsz <2 x float> @llvm.minnum.v2f32(<2 x float> [[IN]], <2 x float> zeroinitializer)
266
266
; CHECK-NEXT: [[ADD_NEW:%.*]] = fadd nnan nsz <2 x float> [[SEL_NEW]], splat (float 1.000000e+00)
267
267
; CHECK-NEXT: ret <2 x float> [[ADD_NEW]]
268
268
;
@@ -637,7 +637,7 @@ define float @test_fcmp_multiple_uses(float %in) {
637
637
define float @test_fcmp_ogt_fadd_select_rewrite_flags1 (float %in ) {
638
638
; CHECK-LABEL: define float @test_fcmp_ogt_fadd_select_rewrite_flags1(
639
639
; CHECK-SAME: float [[IN:%.*]]) {
640
- ; CHECK-NEXT: [[SEL_NEW:%.*]] = call reassoc nnan nsz arcp contract afn float @llvm.maxnum.f32(float [[IN]], float 0.000000e+00)
640
+ ; CHECK-NEXT: [[SEL_NEW:%.*]] = call reassoc nsz arcp contract afn float @llvm.maxnum.f32(float [[IN]], float 0.000000e+00)
641
641
; CHECK-NEXT: [[ADD_NEW:%.*]] = fadd reassoc nnan nsz arcp contract afn float [[SEL_NEW]], 1.000000e+00
642
642
; CHECK-NEXT: ret float [[ADD_NEW]]
643
643
;
@@ -650,7 +650,7 @@ define float @test_fcmp_ogt_fadd_select_rewrite_flags1(float %in) {
650
650
define float @test_fcmp_ogt_fadd_select_rewrite_flags2 (float %in ) {
651
651
; CHECK-LABEL: define float @test_fcmp_ogt_fadd_select_rewrite_flags2(
652
652
; CHECK-SAME: float [[IN:%.*]]) {
653
- ; CHECK-NEXT: [[SEL_NEW:%.*]] = call nnan nsz float @llvm.maxnum.f32(float [[IN]], float 0.000000e+00)
653
+ ; CHECK-NEXT: [[SEL_NEW:%.*]] = call nsz float @llvm.maxnum.f32(float [[IN]], float 0.000000e+00)
654
654
; CHECK-NEXT: [[ADD_NEW:%.*]] = fadd nnan nsz float [[SEL_NEW]], 1.000000e+00
655
655
; CHECK-NEXT: ret float [[ADD_NEW]]
656
656
;
@@ -667,7 +667,7 @@ define float @test_fcmp_ogt_fadd_select_rewrite_and_fastmath(float %in) {
667
667
; CHECK-NEXT: [[ADD_NEW:%.*]] = fadd fast float [[SEL_NEW]], 1.000000e+00
668
668
; CHECK-NEXT: ret float [[ADD_NEW]]
669
669
;
670
- %cmp1 = fcmp ogt float %in , 0 .000000e+00
670
+ %cmp1 = fcmp nnan ogt float %in , 0 .000000e+00
671
671
%add = fadd fast reassoc float %in , 1 .000000e+00
672
672
%sel = select fast i1 %cmp1 , float %add , float 1 .000000e+00
673
673
ret float %sel
0 commit comments