[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