[MIParser] Set RegClassOrRegBank during instruction parsing
[llvm-complete.git] / test / CodeGen / ARM / load-global2.ll
blob7ffd65ce7eda41c1175364ec5ff13d99aa61fbce
1 ; PR35221. Test that external global address is not reloaded from GOT in each BB.
2 ; RUN: llc < %s -mtriple=armv7-linux-gnueabi -relocation-model=pic | FileCheck %s -check-prefix=LINUX-PIC
4 @x = external global i8, align 1
6 define signext i8 @foo() {
7 entry:
8 ; LINUX-PIC:     ldr    r[[A:.]], .LCPI0_0
9 ; LINUX-PIC:     ldr    r[[B:.]], [pc, r[[A]]]
10 ; LINUX-PIC:     ldrb   r{{.}}, [r[[B]]]
11   %0 = load i8, i8* @x
12   %tobool = icmp eq i8 %0, 0
13   br i1 %tobool, label %bb1, label %bb2
15 bb1:
16   call void @bar()
17 ; No more pc-relative loads! Reuse r[[B]].
18 ; LINUX-PIC:     bl     bar
19 ; LINUX-PIC-NOT: ldr{{.*}}[pc,
20 ; LINUX-PIC:     ldrsb  r{{.}}, [r[[B]]]
21   %1 = load i8, i8* @x
22   ret i8 %1
24 bb2:
25   ret i8 0
28 declare void @bar()