Changes in directory llvm/test/Regression/CodeGen/X86:
loop-strength-reduce.ll added (r1.1) --- Log message: Add a lsr common loop invariant hoisting test case --- Diffs of the changes: (+28 -0) loop-strength-reduce.ll | 28 ++++++++++++++++++++++++++++ 1 files changed, 28 insertions(+) Index: llvm/test/Regression/CodeGen/X86/loop-strength-reduce.ll diff -c /dev/null llvm/test/Regression/CodeGen/X86/loop-strength-reduce.ll:1.1 *** /dev/null Fri Mar 17 13:46:04 2006 --- llvm/test/Regression/CodeGen/X86/loop-strength-reduce.ll Fri Mar 17 13:45:54 2006 *************** *** 0 **** --- 1,28 ---- + ; RUN: llvm-as < %s | llc -march=x86 -enable-x86-lsr | grep 'A(' | wc -l | grep 1 + ; + ; Make sure the common loop invariant _A(reg) is hoisted up to preheader. + + %A = internal global [16 x [16 x int]] zeroinitializer, align 32 + + void %test(int %row, int %N) { + entry: + %N = cast int %N to uint + %tmp5 = setgt int %N, 0 + br bool %tmp5, label %cond_true, label %return + + cond_true: + %indvar = phi uint [ 0, %entry ], [ %indvar.next, %cond_true ] + %i.0.0 = cast uint %indvar to int + %tmp2 = add int %i.0.0, 1 + %tmp = getelementptr [16 x [16 x int]]* %A, int 0, int %row, int %tmp2 + store int 4, int* %tmp + %tmp5 = add int %i.0.0, 2 + %tmp7 = getelementptr [16 x [16 x int]]* %A, int 0, int %row, int %tmp5 + store int 5, int* %tmp7 + %indvar.next = add uint %indvar, 1 + %exitcond = seteq uint %indvar.next, %N + br bool %exitcond, label %return, label %cond_true + + return: + ret void + } _______________________________________________ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits