[llvm-commits] CVS: llvm/test/CodeGen/X86/shift-codegen.ll
Chris Lattner
sabre at nondot.org
Mon Mar 19 23:01:58 PDT 2007
Changes in directory llvm/test/CodeGen/X86:
shift-codegen.ll added (r1.1)
---
Log message:
These functions should use shll, not lea.
---
Diffs of the changes: (+27 -0)
shift-codegen.ll | 27 +++++++++++++++++++++++++++
1 files changed, 27 insertions(+)
Index: llvm/test/CodeGen/X86/shift-codegen.ll
diff -c /dev/null llvm/test/CodeGen/X86/shift-codegen.ll:1.1
*** /dev/null Tue Mar 20 01:01:51 2007
--- llvm/test/CodeGen/X86/shift-codegen.ll Tue Mar 20 01:01:41 2007
***************
*** 0 ****
--- 1,27 ----
+ ; RUN: llvm-as < %s | llc -relocation-model=static -march=x86 | grep 'shll $3' | wc -l | grep 2
+
+ ; This should produce two shll instructions, not any lea's.
+
+ target triple = "i686-apple-darwin8"
+ @Y = weak global i32 0 ; <i32*> [#uses=1]
+ @X = weak global i32 0 ; <i32*> [#uses=2]
+
+ implementation ; Functions:
+
+ define void @fn1() {
+ entry:
+ %tmp = load i32* @Y ; <i32> [#uses=1]
+ %tmp1 = shl i32 %tmp, 3 ; <i32> [#uses=1]
+ %tmp2 = load i32* @X ; <i32> [#uses=1]
+ %tmp3 = or i32 %tmp1, %tmp2 ; <i32> [#uses=1]
+ store i32 %tmp3, i32* @X
+ ret void
+ }
+
+ define i32 @fn2(i32 %X, i32 %Y) {
+ entry:
+ %tmp2 = shl i32 %Y, 3 ; <i32> [#uses=1]
+ %tmp4 = or i32 %tmp2, %X ; <i32> [#uses=1]
+ ret i32 %tmp4
+ }
+
More information about the llvm-commits
mailing list