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 + } + _______________________________________________ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits