Skip to content

Commit 83bf1d6

Browse files
committed
[InstCombine] Thwart complexity-based canonicalization in sqrt test (NFC)
1 parent dd9a99f commit 83bf1d6

File tree

1 file changed

+6
-4
lines changed

1 file changed

+6
-4
lines changed

llvm/test/Transforms/InstCombine/fast-math.ll

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -709,13 +709,15 @@ define double @sqrt_intrinsic_three_args5(double %x, double %y) {
709709
ret double %sqrt
710710
}
711711

712-
define double @sqrt_intrinsic_three_args6(double %x, double %y) {
712+
define double @sqrt_intrinsic_three_args6(double %x, ptr %yp) {
713713
; CHECK-LABEL: @sqrt_intrinsic_three_args6(
714-
; CHECK-NEXT: [[FABS:%.*]] = call fast double @llvm.fabs.f64(double [[X:%.*]])
715-
; CHECK-NEXT: [[SQRT1:%.*]] = call fast double @llvm.sqrt.f64(double [[Y:%.*]])
716-
; CHECK-NEXT: [[SQRT:%.*]] = fmul fast double [[FABS]], [[SQRT1]]
714+
; CHECK-NEXT: [[Y:%.*]] = load double, ptr [[YP:%.*]], align 8
715+
; CHECK-NEXT: [[MUL:%.*]] = fmul fast double [[X:%.*]], [[X]]
716+
; CHECK-NEXT: [[MUL2:%.*]] = fmul fast double [[Y]], [[MUL]]
717+
; CHECK-NEXT: [[SQRT:%.*]] = call fast double @llvm.sqrt.f64(double [[MUL2]])
717718
; CHECK-NEXT: ret double [[SQRT]]
718719
;
720+
%y = load double, ptr %yp ; thwart complexity-based canonicalization
719721
%mul = fmul fast double %x, %x
720722
%mul2 = fmul fast double %y, %mul
721723
%sqrt = call fast double @llvm.sqrt.f64(double %mul2)

0 commit comments

Comments
 (0)