summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2004-04-11 22:05:16 +0000
committerChris Lattner <sabre@nondot.org>2004-04-11 22:05:16 +0000
commit2d9de9d0cb255680c0899c50dba4ac69e3cc9629 (patch)
tree2653224cbe66a72d3d2a9e961bdc4871f1cb2b93 /test
parent6621ed94cc6fc1daba42171753d1b54fd7fc6e86 (diff)
downloadllvm-2d9de9d0cb255680c0899c50dba4ac69e3cc9629.tar.gz
llvm-2d9de9d0cb255680c0899c50dba4ac69e3cc9629.tar.bz2
llvm-2d9de9d0cb255680c0899c50dba4ac69e3cc9629.tar.xz
New testcase
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12843 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test')
-rw-r--r--test/CodeGen/X86/fp_load_fold.llx40
1 files changed, 40 insertions, 0 deletions
diff --git a/test/CodeGen/X86/fp_load_fold.llx b/test/CodeGen/X86/fp_load_fold.llx
new file mode 100644
index 0000000000..7ce437d492
--- /dev/null
+++ b/test/CodeGen/X86/fp_load_fold.llx
@@ -0,0 +1,40 @@
+; RUN: llvm-as < %s | llc -march=x86 | grep ST | not grep 'fadd\|fsub\|fdiv\|fmul'
+
+; Test that the load of the memory location is folded into the operation.
+
+
+double %test_add(double %X, double *%P) {
+ %Y = load double* %P
+ %R = add double %X, %Y
+ ret double %R
+}
+
+double %test_mul(double %X, double *%P) {
+ %Y = load double* %P
+ %R = mul double %X, %Y
+ ret double %R
+}
+
+double %test_sub(double %X, double *%P) {
+ %Y = load double* %P
+ %R = sub double %X, %Y
+ ret double %R
+}
+
+double %test_subr(double %X, double *%P) {
+ %Y = load double* %P
+ %R = sub double %Y, %X
+ ret double %R
+}
+
+double %test_div(double %X, double *%P) {
+ %Y = load double* %P
+ %R = div double %X, %Y
+ ret double %R
+}
+
+double %test_divr(double %X, double *%P) {
+ %Y = load double* %P
+ %R = div double %Y, %X
+ ret double %R
+}