diff options
Diffstat (limited to 'llvm/test/Transforms/InstSimplify/fast-math.ll')
-rw-r--r-- | llvm/test/Transforms/InstSimplify/fast-math.ll | 68 |
1 files changed, 24 insertions, 44 deletions
diff --git a/llvm/test/Transforms/InstSimplify/fast-math.ll b/llvm/test/Transforms/InstSimplify/fast-math.ll index c9ae7ef0f09..90532fa5db8 100644 --- a/llvm/test/Transforms/InstSimplify/fast-math.ll +++ b/llvm/test/Transforms/InstSimplify/fast-math.ll @@ -115,79 +115,59 @@ define double @fdiv_zero_by_x(double %X) { ; CHECK: ret double 0 } -define float @fdiv_self(float %f) { - %div = fdiv nnan ninf float %f, %f +define float @fdiv_self(float %f) { + %div = fdiv nnan float %f, %f ret float %div ; CHECK-LABEL: fdiv_self ; CHECK: ret float 1.000000e+00 } -define float @fdiv_self_invalid1(float %f) { - %div = fdiv ninf float %f, %f - ret float %div -; CHECK-LABEL: fdiv_self_invalid1 -; CHECK: %div = fdiv ninf float %f, %f -; CHECK-NEXT: ret float %div -} - -define float @fdiv_self_invalid2(float %f) { - %div = fdiv nnan float %f, %f - ret float %div -; CHECK-LABEL: fdiv_self_invalid2 -; CHECK: %div = fdiv nnan float %f, %f -; CHECK-NEXT: ret float %div -} - -define float @fdiv_self_invalid3(float %f) { +define float @fdiv_self_invalid(float %f) { %div = fdiv float %f, %f ret float %div -; CHECK-LABEL: fdiv_self_invalid3 +; CHECK-LABEL: fdiv_self_invalid ; CHECK: %div = fdiv float %f, %f ; CHECK-NEXT: ret float %div } -define float @fdiv_neg(float %f) { +define float @fdiv_neg1(float %f) { %neg = fsub fast float -0.000000e+00, %f - %div = fdiv nnan ninf float %neg, %f + %div = fdiv nnan float %neg, %f ret float %div -; CHECK-LABEL: fdiv_neg +; CHECK-LABEL: fdiv_neg1 ; CHECK: ret float -1.000000e+00 } -define float @fdiv_neg_invalid1(float %f) { - %neg = fsub fast float -0.000000e+00, %f - %div = fdiv ninf float %neg, %f - ret float %div -; CHECK-LABEL: fdiv_neg_invalid1 -; CHECK: %neg = fsub fast float -0.000000e+00, %f -; CHECK-NEXT: %div = fdiv ninf float %neg, %f -; CHECK-NEXT: ret float %div -} - -define float @fdiv_neg_invalid2(float %f) { - %neg = fsub fast float -0.000000e+00, %f +define float @fdiv_neg2(float %f) { + %neg = fsub fast float 0.000000e+00, %f %div = fdiv nnan float %neg, %f ret float %div -; CHECK-LABEL: fdiv_neg_invalid2 -; CHECK: %neg = fsub fast float -0.000000e+00, %f -; CHECK-NEXT: %div = fdiv nnan float %neg, %f -; CHECK-NEXT: ret float %div +; CHECK-LABEL: fdiv_neg2 +; CHECK: ret float -1.000000e+00 } -define float @fdiv_neg_invalid3(float %f) { +define float @fdiv_neg_invalid(float %f) { %neg = fsub fast float -0.000000e+00, %f %div = fdiv float %neg, %f ret float %div -; CHECK-LABEL: fdiv_neg_invalid3 +; CHECK-LABEL: fdiv_neg_invalid ; CHECK: %neg = fsub fast float -0.000000e+00, %f ; CHECK-NEXT: %div = fdiv float %neg, %f ; CHECK-NEXT: ret float %div } -define float @fdiv_neg_swapped(float %f) { +define float @fdiv_neg_swapped1(float %f) { + %neg = fsub float -0.000000e+00, %f + %div = fdiv nnan float %f, %neg + ret float %div +; CHECK-LABEL: fdiv_neg_swapped1 +; CHECK: ret float -1.000000e+00 +} + +define float @fdiv_neg_swapped2(float %f) { %neg = fsub float 0.000000e+00, %f - %div = fdiv nnan ninf float %f, %neg + %div = fdiv nnan float %f, %neg ret float %div -; CHECK-LABEL: fdiv_neg_swapped +; CHECK-LABEL: fdiv_neg_swapped2 ; CHECK: ret float -1.000000e+00 } |