blob: c42a421a7c48d5a24b85582f38b2233e833d2a92 [file] [log] [blame]
Chandler Carrutha7cb6992012-01-09 09:44:26 +00001; RUN: llc < %s -march=x86 | FileCheck %s
Evan Cheng1314b002007-12-13 00:43:27 +00002
3define i32 @t1(i8* %X, i32 %i) {
Chandler Carrutha7cb6992012-01-09 09:44:26 +00004; CHECK: t1:
5; CHECK-NOT: and
6; CHECK: movzbl
7; CHECK: movl (%{{...}},%{{...}},4),
8; CHECK: ret
9
Evan Cheng1314b002007-12-13 00:43:27 +000010entry:
Chandler Carrutha7cb6992012-01-09 09:44:26 +000011 %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
Evan Cheng1314b002007-12-13 00:43:27 +000017}
18
19define i32 @t2(i16* %X, i32 %i) {
Chandler Carrutha7cb6992012-01-09 09:44:26 +000020; CHECK: t2:
21; CHECK-NOT: and
22; CHECK: movzwl
23; CHECK: movl (%{{...}},%{{...}},4),
24; CHECK: ret
25
Evan Cheng1314b002007-12-13 00:43:27 +000026entry:
Chandler Carrutha7cb6992012-01-09 09:44:26 +000027 %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
Evan Cheng1314b002007-12-13 00:43:27 +000033}