add test to show suboptimal load merging behavior
[oota-llvm.git] / test / CodeGen / X86 / shift-combine.ll
1 ; RUN: llc -march=x86 < %s | FileCheck %s
2
3 @array = weak global [4 x i32] zeroinitializer
4
5 define i32 @test_lshr_and(i32 %x) {
6 ; CHECK-LABEL: test_lshr_and:
7 ; CHECK-NOT: shrl
8 ; CHECK: andl $12,
9 ; CHECK: movl {{.*}}array{{.*}},
10 ; CHECK: ret
11
12 entry:
13   %tmp2 = lshr i32 %x, 2
14   %tmp3 = and i32 %tmp2, 3
15   %tmp4 = getelementptr [4 x i32], [4 x i32]* @array, i32 0, i32 %tmp3
16   %tmp5 = load i32, i32* %tmp4, align 4
17   ret i32 %tmp5
18 }
19