blob: d29eb022baceeb59931c80a5c3d4504babcdea3e [file] [log] [blame]
Dan Gohmanda594cf2009-09-09 00:09:15 +00001; RUN: llc < %s -march=arm | FileCheck %s
Dan Gohmanf17a25c2007-07-18 16:29:46 +00002
Evan Cheng5e1d2182009-08-28 00:31:43 +00003define i32 @test1(i8* %t1) nounwind {
4; CHECK: ldrb
5 %tmp.u = load i8* %t1
Dan Gohmanf17a25c2007-07-18 16:29:46 +00006 %tmp1.s = zext i8 %tmp.u to i32
7 ret i32 %tmp1.s
8}
9
Evan Cheng5e1d2182009-08-28 00:31:43 +000010define i32 @test2(i16* %t1) nounwind {
11; CHECK: ldrh
12 %tmp.u = load i16* %t1
Dan Gohmanf17a25c2007-07-18 16:29:46 +000013 %tmp1.s = zext i16 %tmp.u to i32
14 ret i32 %tmp1.s
15}
16
Evan Cheng5e1d2182009-08-28 00:31:43 +000017define i32 @test3(i8* %t0) nounwind {
18; CHECK: ldrsb
19 %tmp.s = load i8* %t0
Dan Gohmanf17a25c2007-07-18 16:29:46 +000020 %tmp1.s = sext i8 %tmp.s to i32
21 ret i32 %tmp1.s
22}
23
Evan Cheng5e1d2182009-08-28 00:31:43 +000024define i32 @test4(i16* %t0) nounwind {
25; CHECK: ldrsh
26 %tmp.s = load i16* %t0
27 %tmp1.s = sext i16 %tmp.s to i32
28 ret i32 %tmp1.s
29}
30
31define i32 @test5() nounwind {
32; CHECK: mov r0, #0
33; CHECK: ldrsh
Dan Gohmanf17a25c2007-07-18 16:29:46 +000034 %tmp.s = load i16* null
35 %tmp1.s = sext i16 %tmp.s to i32
36 ret i32 %tmp1.s
37}