aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2007-12-18 16:48:14 +0000
committerChris Lattner <sabre@nondot.org>2007-12-18 16:48:14 +0000
commitd079b4ea0a2f1a06b6727b6f1d1f7db94dfb3386 (patch)
treecf14a727a511fe0324328e6a6d2f20ada2b27430
parent7dc19d416c29a99bcdbb6e46fada84bc1bb45d32 (diff)
downloadexternal_llvm-d079b4ea0a2f1a06b6727b6f1d1f7db94dfb3386.zip
external_llvm-d079b4ea0a2f1a06b6727b6f1d1f7db94dfb3386.tar.gz
external_llvm-d079b4ea0a2f1a06b6727b6f1d1f7db94dfb3386.tar.bz2
add an obvious load folding missed optzn.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45161 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--lib/Target/X86/README.txt21
1 files changed, 21 insertions, 0 deletions
diff --git a/lib/Target/X86/README.txt b/lib/Target/X86/README.txt
index 7705c1b..8effd47 100644
--- a/lib/Target/X86/README.txt
+++ b/lib/Target/X86/README.txt
@@ -1552,3 +1552,24 @@ _foo:
andl $65535, %eax
ret
+//===---------------------------------------------------------------------===//
+
+We're missing an obvious fold of a load into imul:
+
+int test(long a, long b) { return a * b; }
+
+LLVM produces:
+_test:
+ movl 4(%esp), %ecx
+ movl 8(%esp), %eax
+ imull %ecx, %eax
+ ret
+
+vs:
+_test:
+ movl 8(%esp), %eax
+ imull 4(%esp), %eax
+ ret
+
+//===---------------------------------------------------------------------===//
+