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 3 4@x = external global i8, align 1 5 6define signext i8 @foo() { 7entry: 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 14 15bb1: 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 23 24bb2: 25 ret i8 0 26} 27 28declare void @bar() 29 30 31