diff options
Diffstat (limited to 'llvm/test/Transforms/InstSimplify/floating-point-arithmetic.ll')
-rw-r--r-- | llvm/test/Transforms/InstSimplify/floating-point-arithmetic.ll | 26 |
1 files changed, 23 insertions, 3 deletions
diff --git a/llvm/test/Transforms/InstSimplify/floating-point-arithmetic.ll b/llvm/test/Transforms/InstSimplify/floating-point-arithmetic.ll index b0957a81773..1c29884753a 100644 --- a/llvm/test/Transforms/InstSimplify/floating-point-arithmetic.ll +++ b/llvm/test/Transforms/InstSimplify/floating-point-arithmetic.ll @@ -1,8 +1,8 @@ ; RUN: opt < %s -instsimplify -S | FileCheck %s -; fsub 0, (fsub 0, X) ==> X -; CHECK-LABEL: @fsub_0_0_x( -define float @fsub_0_0_x(float %a) { +; fsub -0.0, (fsub -0.0, X) ==> X +; CHECK-LABEL: @fsub_-0_-0_x( +define float @fsub_-0_-0_x(float %a) { %t1 = fsub float -0.0, %a %ret = fsub float -0.0, %t1 @@ -10,6 +10,26 @@ define float @fsub_0_0_x(float %a) { ret float %ret } +; fsub 0.0, (fsub -0.0, X) != X +; CHECK-LABEL: @fsub_0_-0_x( +define float @fsub_0_-0_x(float %a) { + %t1 = fsub float 0.0, %a + %ret = fsub float -0.0, %t1 + +; CHECK-NOT: ret float %a + ret float %ret +} + +; fsub -0.0, (fsub 0.0, X) != X +; CHECK-LABEL: @fsub_-0_0_x( +define float @fsub_-0_0_x(float %a) { + %t1 = fsub float -0.0, %a + %ret = fsub float 0.0, %t1 + +; CHECK-NOT: ret float %a + ret float %ret +} + ; fsub X, 0 ==> X ; CHECK-LABEL: @fsub_x_0( define float @fsub_x_0(float %a) { |