summaryrefslogtreecommitdiff
path: root/test/Transforms/InstCombine/2009-01-19-fmod-constant-float.ll
diff options
context:
space:
mode:
authorDale Johannesen <dalej@apple.com>2009-01-20 21:58:13 +0000
committerDale Johannesen <dalej@apple.com>2009-01-20 21:58:13 +0000
commit67e1e7c3d84e04abbda81426827c72937e0aceba (patch)
tree46c71d96562d4dd617c685fce58b3d404b019c60 /test/Transforms/InstCombine/2009-01-19-fmod-constant-float.ll
parent1d5ee5c3b8dedab297d2158271d4c3743e812eea (diff)
downloadllvm-67e1e7c3d84e04abbda81426827c72937e0aceba.tar.gz
llvm-67e1e7c3d84e04abbda81426827c72937e0aceba.tar.bz2
llvm-67e1e7c3d84e04abbda81426827c72937e0aceba.tar.xz
Calls to fmod, it turns out, are constant-folded by
invoking the host fmod, not by lowering to frem and constant-folding that. Fix this so it tests what I want to test. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62622 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/Transforms/InstCombine/2009-01-19-fmod-constant-float.ll')
-rw-r--r--test/Transforms/InstCombine/2009-01-19-fmod-constant-float.ll10
1 files changed, 4 insertions, 6 deletions
diff --git a/test/Transforms/InstCombine/2009-01-19-fmod-constant-float.ll b/test/Transforms/InstCombine/2009-01-19-fmod-constant-float.ll
index 7c63ff6924..9cdb425ab4 100644
--- a/test/Transforms/InstCombine/2009-01-19-fmod-constant-float.ll
+++ b/test/Transforms/InstCombine/2009-01-19-fmod-constant-float.ll
@@ -11,7 +11,7 @@ entry:
%retval = alloca float ; <float*> [#uses=2]
%0 = alloca float ; <float*> [#uses=2]
%"alloca point" = bitcast i32 0 to i32 ; <i32> [#uses=0]
- %1 = call double @fmod(double 1.000000e-01, double 1.000000e+00) nounwind readonly ; <double> [#uses=1]
+ %1 = frem double 1.000000e-01, 1.000000e+00 ; <double> [#uses=1]
%2 = fptrunc double %1 to float ; <float> [#uses=1]
store float %2, float* %0, align 4
%3 = load float* %0, align 4 ; <float> [#uses=1]
@@ -23,14 +23,12 @@ return: ; preds = %entry
ret float %retval1
}
-declare double @fmod(double, double) nounwind readonly
-
define float @test2() nounwind {
entry:
%retval = alloca float ; <float*> [#uses=2]
%0 = alloca float ; <float*> [#uses=2]
%"alloca point" = bitcast i32 0 to i32 ; <i32> [#uses=0]
- %1 = call double @fmod(double -1.000000e-01, double 1.000000e+00) nounwind readonly ; <double> [#uses=1]
+ %1 = frem double -1.000000e-01, 1.000000e+00 ; <double> [#uses=1]
%2 = fptrunc double %1 to float ; <float> [#uses=1]
store float %2, float* %0, align 4
%3 = load float* %0, align 4 ; <float> [#uses=1]
@@ -47,7 +45,7 @@ entry:
%retval = alloca float ; <float*> [#uses=2]
%0 = alloca float ; <float*> [#uses=2]
%"alloca point" = bitcast i32 0 to i32 ; <i32> [#uses=0]
- %1 = call double @fmod(double 1.000000e-01, double -1.000000e+00) nounwind readonly ; <double> [#uses=1]
+ %1 = frem double 1.000000e-01, -1.000000e+00 ; <double> [#uses=1]
%2 = fptrunc double %1 to float ; <float> [#uses=1]
store float %2, float* %0, align 4
%3 = load float* %0, align 4 ; <float> [#uses=1]
@@ -64,7 +62,7 @@ entry:
%retval = alloca float ; <float*> [#uses=2]
%0 = alloca float ; <float*> [#uses=2]
%"alloca point" = bitcast i32 0 to i32 ; <i32> [#uses=0]
- %1 = call double @fmod(double -1.000000e-01, double -1.000000e+00) nounwind readonly ; <double> [#uses=1]
+ %1 = frem double -1.000000e-01, -1.000000e+00 ; <double> [#uses=1]
%2 = fptrunc double %1 to float ; <float> [#uses=1]
store float %2, float* %0, align 4
%3 = load float* %0, align 4 ; <float> [#uses=1]