diff --git a/test/Transforms/InstCombine/fsub-fadd.ll b/test/Transforms/InstCombine/fsub-fadd.ll deleted file mode 100644 index f4cff88343d..00000000000 --- a/test/Transforms/InstCombine/fsub-fadd.ll +++ /dev/null @@ -1,39 +0,0 @@ -; RUN: opt < %s -instcombine -S | FileCheck %s -; - -define void @func(double* %rhi, double* %rlo, double %xh, double %xl, double %yh, double %yl) nounwind ssp { -entry: - %"alloca point" = bitcast i32 0 to i32 ; [#uses=0] - %tmp = fmul double %xh, 0x41A0000002000000 ; [#uses=2] - %tmp1 = fsub double %xh, %tmp ; [#uses=1] - %tmp2 = fadd double %tmp1, %tmp ; [#uses=3] - %tmp3 = fsub double %xh, %tmp2 ; [#uses=2] - %tmp4 = fmul double %yh, 0x41A0000002000000 ; [#uses=2] - %tmp5 = fsub double %yh, %tmp4 ; [#uses=1] - %tmp6 = fadd double %tmp5, %tmp4 ; [#uses=3] - %tmp7 = fsub double %yh, %tmp6 ; [#uses=2] - %tmp8 = fmul double %xh, %yh ; [#uses=3] - %tmp9 = fmul double %tmp2, %tmp6 ; [#uses=1] - %tmp10 = fsub double %tmp9, %tmp8 ; [#uses=1] - %tmp11 = fmul double %tmp2, %tmp7 ; [#uses=1] - %tmp12 = fadd double %tmp10, %tmp11 ; [#uses=1] - %tmp13 = fmul double %tmp3, %tmp6 ; [#uses=1] - %tmp14 = fadd double %tmp12, %tmp13 ; [#uses=1] - %tmp15 = fmul double %tmp3, %tmp7 ; [#uses=1] - %tmp16 = fadd double %tmp14, %tmp15 ; [#uses=1] - %tmp17 = fmul double %xh, %yl ; [#uses=1] - %tmp18 = fmul double %xl, %yh ; [#uses=1] - %tmp19 = fadd double %tmp17, %tmp18 ; [#uses=1] - %tmp20 = fadd double %tmp19, %tmp16 ; [#uses=2] - %tmp21 = fadd double %tmp8, %tmp20 ; [#uses=1] - store double %tmp21, double* %rhi, align 8 - %tmp22 = load double* %rhi, align 8 ; [#uses=1] - %tmp23 = fsub double %tmp8, %tmp22 ; [#uses=1] - %tmp24 = fadd double %tmp23, %tmp20 ; [#uses=1] - -; CHECK: %tmp23 = fsub double %tmp8, %tmp21 -; CHECK: %tmp24 = fadd double %tmp23, %tmp20 - - store double %tmp24, double* %rlo, align 8 - ret void -} diff --git a/test/Transforms/InstCombine/fsub-fsub.ll b/test/Transforms/InstCombine/fsub-fsub.ll deleted file mode 100644 index 94ebf090ff3..00000000000 --- a/test/Transforms/InstCombine/fsub-fsub.ll +++ /dev/null @@ -1,8 +0,0 @@ -; RUN: opt < %s -instcombine -S | grep fsub | count 2 -; PR4374 - -define float @func(float %a, float %b) nounwind { - %tmp3 = fsub float %a, %b - %tmp4 = fsub float -0.000000e+00, %tmp3 - ret float %tmp4 -} diff --git a/test/Transforms/InstCombine/fsub.ll b/test/Transforms/InstCombine/fsub.ll new file mode 100644 index 00000000000..af2fadd2867 --- /dev/null +++ b/test/Transforms/InstCombine/fsub.ll @@ -0,0 +1,23 @@ +; RUN: opt < %s -instcombine -S | FileCheck %s + +; PR4374 +define float @test1(float %a, float %b) nounwind { + %t1 = fsub float %a, %b + %t2 = fsub float -0.000000e+00, %t1 + +; CHECK: %t1 = fsub float %a, %b +; CHECK-NEXT: %t2 = fsub float -0.000000e+00, %t1 + + ret float %t2 +} + +; +define double @test2(double %x, double %y) nounwind { + %t1 = fadd double %x, %y + %t2 = fsub double %x, %t1 + +; CHECK: %t1 = fadd double %x, %y +; CHECK-NEXT: %t2 = fsub double %x, %t1 + + ret double %t2 +}