@@ -313,7 +313,7 @@ define double @fdiv_pow_powi(double %x) {
313
313
; CHECK-NEXT: [[DIV:%.*]] = fmul reassoc nnan double [[X:%.*]], [[X]]
314
314
; CHECK-NEXT: ret double [[DIV]]
315
315
;
316
- %p1 = call double @llvm.powi.f64.i32 (double %x , i32 3 )
316
+ %p1 = call reassoc double @llvm.powi.f64.i32 (double %x , i32 3 )
317
317
%div = fdiv reassoc nnan double %p1 , %x
318
318
ret double %div
319
319
}
@@ -323,7 +323,7 @@ define float @fdiv_powf_powi(float %x) {
323
323
; CHECK-NEXT: [[DIV:%.*]] = call reassoc nnan float @llvm.powi.f32.i32(float [[X:%.*]], i32 99)
324
324
; CHECK-NEXT: ret float [[DIV]]
325
325
;
326
- %p1 = call float @llvm.powi.f32.i32 (float %x , i32 100 )
326
+ %p1 = call reassoc float @llvm.powi.f32.i32 (float %x , i32 100 )
327
327
%div = fdiv reassoc nnan float %p1 , %x
328
328
ret float %div
329
329
}
@@ -347,10 +347,21 @@ define double @fdiv_pow_powi_multi_use(double %x) {
347
347
define float @fdiv_powf_powi_missing_reassoc (float %x ) {
348
348
; CHECK-LABEL: @fdiv_powf_powi_missing_reassoc(
349
349
; CHECK-NEXT: [[P1:%.*]] = call float @llvm.powi.f32.i32(float [[X:%.*]], i32 100)
350
- ; CHECK-NEXT: [[DIV:%.*]] = fdiv nnan float [[P1]], [[X]]
350
+ ; CHECK-NEXT: [[DIV:%.*]] = fdiv reassoc nnan float [[P1]], [[X]]
351
351
; CHECK-NEXT: ret float [[DIV]]
352
352
;
353
353
%p1 = call float @llvm.powi.f32.i32 (float %x , i32 100 )
354
+ %div = fdiv reassoc nnan float %p1 , %x
355
+ ret float %div
356
+ }
357
+
358
+ define float @fdiv_powf_powi_missing_reassoc1 (float %x ) {
359
+ ; CHECK-LABEL: @fdiv_powf_powi_missing_reassoc1(
360
+ ; CHECK-NEXT: [[P1:%.*]] = call reassoc float @llvm.powi.f32.i32(float [[X:%.*]], i32 100)
361
+ ; CHECK-NEXT: [[DIV:%.*]] = fdiv nnan float [[P1]], [[X]]
362
+ ; CHECK-NEXT: ret float [[DIV]]
363
+ ;
364
+ %p1 = call reassoc float @llvm.powi.f32.i32 (float %x , i32 100 )
354
365
%div = fdiv nnan float %p1 , %x
355
366
ret float %div
356
367
}
0 commit comments