blob: d29eb022baceeb59931c80a5c3d4504babcdea3e [file] [log] [blame]
Dan Gohmanfce288f2009-09-09 00:09:15 +00001; RUN: llc < %s -march=arm | FileCheck %s
Evan Cheng02b985c2007-01-19 09:20:23 +00002
Evan Cheng0e87e232009-08-28 00:31:43 +00003define i32 @test1(i8* %t1) nounwind {
4; CHECK: ldrb
5 %tmp.u = load i8* %t1
Evan Cheng7c3992f2007-01-23 22:47:58 +00006 %tmp1.s = zext i8 %tmp.u to i32
7 ret i32 %tmp1.s
Evan Cheng02b985c2007-01-19 09:20:23 +00008}
9
Evan Cheng0e87e232009-08-28 00:31:43 +000010define i32 @test2(i16* %t1) nounwind {
11; CHECK: ldrh
12 %tmp.u = load i16* %t1
Evan Cheng7c3992f2007-01-23 22:47:58 +000013 %tmp1.s = zext i16 %tmp.u to i32
14 ret i32 %tmp1.s
Evan Cheng02b985c2007-01-19 09:20:23 +000015}
16
Evan Cheng0e87e232009-08-28 00:31:43 +000017define i32 @test3(i8* %t0) nounwind {
18; CHECK: ldrsb
19 %tmp.s = load i8* %t0
Evan Cheng7c3992f2007-01-23 22:47:58 +000020 %tmp1.s = sext i8 %tmp.s to i32
21 ret i32 %tmp1.s
Evan Cheng02b985c2007-01-19 09:20:23 +000022}
23
Evan Cheng0e87e232009-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
Evan Cheng7c3992f2007-01-23 22:47:58 +000034 %tmp.s = load i16* null
35 %tmp1.s = sext i16 %tmp.s to i32
36 ret i32 %tmp1.s
Evan Cheng02b985c2007-01-19 09:20:23 +000037}