blob: dc76a1c1857e713b016627c0e3c965edc6f8c965 [file] [log] [blame]
Evan Cheng0e87e232009-08-28 00:31:43 +00001; RUN: llvm-as < %s | llc -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}