[NFC][RemoveDIs] Prefer iterators over inst-pointers in InstCombine
[llvm-project.git] / llvm / test / CodeGen / Thumb / ldr_ext.ll
blobaf83e90d99f77bc4a6cd9fc01e38e1286eed3367
1 ; RUN: llc -mtriple=thumb-eabi %s -o - | FileCheck %s -check-prefix=V5
2 ; RUN: llc -mtriple=thumb-eabi -mattr=+v6 %s -o - | FileCheck %s -check-prefix=V6
4 ; rdar://7176514
6 define i32 @test1(ptr %t1) nounwind {
7 ; V5: ldrb
9 ; V6: ldrb
10     %tmp.u = load i8, ptr %t1
11     %tmp1.s = zext i8 %tmp.u to i32
12     ret i32 %tmp1.s
15 define i32 @test2(ptr %t1) nounwind {
16 ; V5: ldrh
18 ; V6: ldrh
19     %tmp.u = load i16, ptr %t1
20     %tmp1.s = zext i16 %tmp.u to i32
21     ret i32 %tmp1.s
24 define i32 @test3(ptr %t0) nounwind {
25 ; V5: ldrb
26 ; V5: lsls
27 ; V5: asrs
29 ; V6: mov
30 ; V6: ldrsb
31     %tmp.s = load i8, ptr %t0
32     %tmp1.s = sext i8 %tmp.s to i32
33     ret i32 %tmp1.s
36 define i32 @test4(ptr %t0) nounwind {
37 ; V5: ldrh
38 ; V5: lsls
39 ; V5: asrs
41 ; V6: mov
42 ; V6: ldrsh
43     %tmp.s = load i16, ptr %t0
44     %tmp1.s = sext i16 %tmp.s to i32
45     ret i32 %tmp1.s
48 define i32 @test5() nounwind {
49 ; V5: movs r0, #0
50 ; V5: ldrsh
52 ; V6: movs r0, #0
53 ; V6: ldrsh
54     %tmp.s = load i16, ptr null
55     %tmp1.s = sext i16 %tmp.s to i32
56     ret i32 %tmp1.s