Cleanup and FileCheck-ize a test.
[oota-llvm.git] / test / CodeGen / X86 / fold-and-shift.ll
1 ; RUN: llc < %s -march=x86 | FileCheck %s
2
3 define i32 @t1(i8* %X, i32 %i) {
4 ; CHECK: t1:
5 ; CHECK-NOT: and
6 ; CHECK: movzbl
7 ; CHECK: movl (%{{...}},%{{...}},4),
8 ; CHECK: ret
9
10 entry:
11   %tmp2 = shl i32 %i, 2
12   %tmp4 = and i32 %tmp2, 1020
13   %tmp7 = getelementptr i8* %X, i32 %tmp4
14   %tmp78 = bitcast i8* %tmp7 to i32*
15   %tmp9 = load i32* %tmp78
16   ret i32 %tmp9
17 }
18
19 define i32 @t2(i16* %X, i32 %i) {
20 ; CHECK: t2:
21 ; CHECK-NOT: and
22 ; CHECK: movzwl
23 ; CHECK: movl (%{{...}},%{{...}},4),
24 ; CHECK: ret
25
26 entry:
27   %tmp2 = shl i32 %i, 1
28   %tmp4 = and i32 %tmp2, 131070
29   %tmp7 = getelementptr i16* %X, i32 %tmp4
30   %tmp78 = bitcast i16* %tmp7 to i32*
31   %tmp9 = load i32* %tmp78
32   ret i32 %tmp9
33 }