@@ -26,7 +26,7 @@ define double @pow_ab_a_reassoc(double %a, double %b) {
26
26
; CHECK-NEXT: [[M:%.*]] = call reassoc double @llvm.pow.f64(double [[A:%.*]], double [[TMP1]])
27
27
; CHECK-NEXT: ret double [[M]]
28
28
;
29
- %p = call double @llvm.pow.f64 (double %a , double %b )
29
+ %p = call reassoc double @llvm.pow.f64 (double %a , double %b )
30
30
%m = fmul reassoc double %p , %a
31
31
ret double %m
32
32
}
@@ -35,13 +35,13 @@ define double @pow_ab_a_reassoc(double %a, double %b) {
35
35
36
36
define double @pow_ab_a_reassoc_commute (double %pa , double %b ) {
37
37
; CHECK-LABEL: @pow_ab_a_reassoc_commute(
38
- ; CHECK-NEXT: [[A:%.*]] = fadd double [[PA:%.*]], 4.200000e+01
38
+ ; CHECK-NEXT: [[A:%.*]] = fadd reassoc double [[PA:%.*]], 4.200000e+01
39
39
; CHECK-NEXT: [[TMP1:%.*]] = fadd reassoc double [[B:%.*]], 1.000000e+00
40
40
; CHECK-NEXT: [[M:%.*]] = call reassoc double @llvm.pow.f64(double [[A]], double [[TMP1]])
41
41
; CHECK-NEXT: ret double [[M]]
42
42
;
43
- %a = fadd double %pa , 42 .0 ; thwart complexity-based canonicalization
44
- %p = call double @llvm.pow.f64 (double %a , double %b )
43
+ %a = fadd reassoc double %pa , 42 .0 ; thwart complexity-based canonicalization
44
+ %p = call reassoc double @llvm.pow.f64 (double %a , double %b )
45
45
%m = fmul reassoc double %a , %p
46
46
ret double %m
47
47
}
@@ -85,8 +85,8 @@ define double @pow_ab_recip_a_reassoc(double %a, double %b) {
85
85
; CHECK-NEXT: [[M:%.*]] = call reassoc double @llvm.pow.f64(double [[A:%.*]], double [[TMP1]])
86
86
; CHECK-NEXT: ret double [[M]]
87
87
;
88
- %r = fdiv double 1 .0 , %a
89
- %p = call double @llvm.pow.f64 (double %a , double %b )
88
+ %r = fdiv reassoc double 1 .0 , %a
89
+ %p = call reassoc double @llvm.pow.f64 (double %a , double %b )
90
90
%m = fmul reassoc double %r , %p
91
91
ret double %m
92
92
}
@@ -99,8 +99,8 @@ define double @pow_ab_recip_a_reassoc_commute(double %a, double %b) {
99
99
; CHECK-NEXT: [[M:%.*]] = call reassoc double @llvm.pow.f64(double [[A:%.*]], double [[TMP1]])
100
100
; CHECK-NEXT: ret double [[M]]
101
101
;
102
- %r = fdiv double 1 .0 , %a
103
- %p = call double @llvm.pow.f64 (double %a , double %b )
102
+ %r = fdiv reassoc double 1 .0 , %a
103
+ %p = call reassoc double @llvm.pow.f64 (double %a , double %b )
104
104
%m = fmul reassoc double %p , %r
105
105
ret double %m
106
106
}
@@ -126,13 +126,13 @@ define double @pow_ab_recip_a_reassoc_use1(double %a, double %b) {
126
126
127
127
define double @pow_ab_recip_a_reassoc_use2 (double %a , double %b ) {
128
128
; CHECK-LABEL: @pow_ab_recip_a_reassoc_use2(
129
- ; CHECK-NEXT: [[P:%.*]] = call double @llvm.pow.f64(double [[A:%.*]], double [[B:%.*]])
129
+ ; CHECK-NEXT: [[P:%.*]] = call reassoc double @llvm.pow.f64(double [[A:%.*]], double [[B:%.*]])
130
130
; CHECK-NEXT: [[M:%.*]] = fdiv reassoc double [[P]], [[A]]
131
131
; CHECK-NEXT: call void @use(double [[P]])
132
132
; CHECK-NEXT: ret double [[M]]
133
133
;
134
- %r = fdiv double 1 .0 , %a
135
- %p = call double @llvm.pow.f64 (double %a , double %b )
134
+ %r = fdiv reassoc double 1 .0 , %a
135
+ %p = call reassoc double @llvm.pow.f64 (double %a , double %b )
136
136
%m = fmul reassoc double %r , %p
137
137
call void @use (double %p )
138
138
ret double %m
@@ -181,8 +181,8 @@ define double @pow_ab_pow_cb_reassoc(double %a, double %b, double %c) {
181
181
; CHECK-NEXT: [[MUL:%.*]] = call reassoc double @llvm.pow.f64(double [[TMP1]], double [[B:%.*]])
182
182
; CHECK-NEXT: ret double [[MUL]]
183
183
;
184
- %1 = call double @llvm.pow.f64 (double %a , double %b )
185
- %2 = call double @llvm.pow.f64 (double %c , double %b )
184
+ %1 = call reassoc double @llvm.pow.f64 (double %a , double %b )
185
+ %2 = call reassoc double @llvm.pow.f64 (double %c , double %b )
186
186
%mul = fmul reassoc double %2 , %1
187
187
ret double %mul
188
188
}
@@ -191,14 +191,14 @@ define double @pow_ab_pow_cb_reassoc(double %a, double %b, double %c) {
191
191
192
192
define double @pow_ab_pow_cb_reassoc_use1 (double %a , double %b , double %c ) {
193
193
; CHECK-LABEL: @pow_ab_pow_cb_reassoc_use1(
194
- ; CHECK-NEXT: [[AB:%.*]] = call double @llvm.pow.f64(double [[A:%.*]], double [[B:%.*]])
194
+ ; CHECK-NEXT: [[AB:%.*]] = call reassoc double @llvm.pow.f64(double [[A:%.*]], double [[B:%.*]])
195
195
; CHECK-NEXT: [[TMP1:%.*]] = fmul reassoc double [[A]], [[C:%.*]]
196
196
; CHECK-NEXT: [[MUL:%.*]] = call reassoc double @llvm.pow.f64(double [[TMP1]], double [[B]])
197
197
; CHECK-NEXT: call void @use(double [[AB]])
198
198
; CHECK-NEXT: ret double [[MUL]]
199
199
;
200
- %ab = call double @llvm.pow.f64 (double %a , double %b )
201
- %cb = call double @llvm.pow.f64 (double %c , double %b )
200
+ %ab = call reassoc double @llvm.pow.f64 (double %a , double %b )
201
+ %cb = call reassoc double @llvm.pow.f64 (double %c , double %b )
202
202
%mul = fmul reassoc double %ab , %cb
203
203
call void @use (double %ab )
204
204
ret double %mul
@@ -208,14 +208,14 @@ define double @pow_ab_pow_cb_reassoc_use1(double %a, double %b, double %c) {
208
208
209
209
define double @pow_ab_pow_cb_reassoc_use2 (double %a , double %b , double %c ) {
210
210
; CHECK-LABEL: @pow_ab_pow_cb_reassoc_use2(
211
- ; CHECK-NEXT: [[CB:%.*]] = call double @llvm.pow.f64(double [[C:%.*]], double [[B:%.*]])
211
+ ; CHECK-NEXT: [[CB:%.*]] = call reassoc double @llvm.pow.f64(double [[C:%.*]], double [[B:%.*]])
212
212
; CHECK-NEXT: [[TMP1:%.*]] = fmul reassoc double [[A:%.*]], [[C]]
213
213
; CHECK-NEXT: [[MUL:%.*]] = call reassoc double @llvm.pow.f64(double [[TMP1]], double [[B]])
214
214
; CHECK-NEXT: call void @use(double [[CB]])
215
215
; CHECK-NEXT: ret double [[MUL]]
216
216
;
217
- %ab = call double @llvm.pow.f64 (double %a , double %b )
218
- %cb = call double @llvm.pow.f64 (double %c , double %b )
217
+ %ab = call reassoc double @llvm.pow.f64 (double %a , double %b )
218
+ %cb = call reassoc double @llvm.pow.f64 (double %c , double %b )
219
219
%mul = fmul reassoc double %ab , %cb
220
220
call void @use (double %cb )
221
221
ret double %mul
@@ -259,8 +259,8 @@ define double @pow_ab_x_pow_ac_reassoc(double %a, double %b, double %c) {
259
259
; CHECK-NEXT: [[MUL:%.*]] = call reassoc double @llvm.pow.f64(double [[A:%.*]], double [[TMP1]])
260
260
; CHECK-NEXT: ret double [[MUL]]
261
261
;
262
- %1 = call double @llvm.pow.f64 (double %a , double %b )
263
- %2 = call double @llvm.pow.f64 (double %a , double %c )
262
+ %1 = call reassoc double @llvm.pow.f64 (double %a , double %b )
263
+ %2 = call reassoc double @llvm.pow.f64 (double %a , double %c )
264
264
%mul = fmul reassoc double %2 , %1
265
265
ret double %mul
266
266
}
@@ -271,7 +271,7 @@ define double @pow_ab_reassoc(double %a, double %b) {
271
271
; CHECK-NEXT: [[MUL:%.*]] = call reassoc double @llvm.pow.f64(double [[A:%.*]], double [[TMP1]])
272
272
; CHECK-NEXT: ret double [[MUL]]
273
273
;
274
- %1 = call double @llvm.pow.f64 (double %a , double %b )
274
+ %1 = call reassoc double @llvm.pow.f64 (double %a , double %b )
275
275
%mul = fmul reassoc double %1 , %1
276
276
ret double %mul
277
277
}
@@ -291,14 +291,14 @@ define double @pow_ab_reassoc_extra_use(double %a, double %b) {
291
291
292
292
define double @pow_ab_x_pow_ac_reassoc_extra_use (double %a , double %b , double %c ) {
293
293
; CHECK-LABEL: @pow_ab_x_pow_ac_reassoc_extra_use(
294
- ; CHECK-NEXT: [[TMP1:%.*]] = call double @llvm.pow.f64(double [[A:%.*]], double [[B:%.*]])
294
+ ; CHECK-NEXT: [[TMP1:%.*]] = call reassoc double @llvm.pow.f64(double [[A:%.*]], double [[B:%.*]])
295
295
; CHECK-NEXT: [[TMP2:%.*]] = fadd reassoc double [[B]], [[C:%.*]]
296
296
; CHECK-NEXT: [[MUL:%.*]] = call reassoc double @llvm.pow.f64(double [[A]], double [[TMP2]])
297
297
; CHECK-NEXT: call void @use(double [[TMP1]])
298
298
; CHECK-NEXT: ret double [[MUL]]
299
299
;
300
- %1 = call double @llvm.pow.f64 (double %a , double %b )
301
- %2 = call double @llvm.pow.f64 (double %a , double %c )
300
+ %1 = call reassoc double @llvm.pow.f64 (double %a , double %b )
301
+ %2 = call reassoc double @llvm.pow.f64 (double %a , double %c )
302
302
%mul = fmul reassoc double %1 , %2
303
303
call void @use (double %1 )
304
304
ret double %mul
0 commit comments