18ab578a1SKai Luo# RUN: llc -verify-machineinstrs -x mir -filetype=obj < %s -o %t.o 28ab578a1SKai Luo# RUN: llvm-objdump -dr %t.o | FileCheck %s 38ab578a1SKai Luo# CHECK-LABEL: .read_x 48ab578a1SKai Luo# CHECK: lbz 3, 2(2) 58ab578a1SKai Luo# CHECK-NEXT: R_TOC x 68ab578a1SKai Luo# CHECK-LABEL: .read_y 78ab578a1SKai Luo# CHECK: lbz 3, 0(2) 88ab578a1SKai Luo# CHECK-NEXT: R_TOC y 98ab578a1SKai Luo 108ab578a1SKai Luo--- | 118ab578a1SKai Luo ; ModuleID = '<stdin>' 128ab578a1SKai Luo source_filename = "<stdin>" 138ab578a1SKai Luo target datalayout = "E-m:a-Fi64-i64:64-n32:64-S128-v256:256:256-v512:512:512" 148ab578a1SKai Luo target triple = "powerpc64-ibm-aix" 158ab578a1SKai Luo 168ab578a1SKai Luo @x = local_unnamed_addr global i32 218114560, align 4 #0 178ab578a1SKai Luo @y = external local_unnamed_addr global i32, align 4 #0 188ab578a1SKai Luo 198ab578a1SKai Luo define signext range(i32 0, 256) i32 @read_x() { 208ab578a1SKai Luo entry: 218ab578a1SKai Luo %0 = load i32, ptr @x, align 4 228ab578a1SKai Luo %shr = lshr i32 %0, 8 238ab578a1SKai Luo %and = and i32 %shr, 255 248ab578a1SKai Luo ret i32 %and 258ab578a1SKai Luo } 268ab578a1SKai Luo 278ab578a1SKai Luo define signext range(i32 0, 256) i32 @read_y() { 288ab578a1SKai Luo entry: 298ab578a1SKai Luo %0 = load i32, ptr @y, align 4 308ab578a1SKai Luo %shr = lshr i32 %0, 16 318ab578a1SKai Luo %and = and i32 %shr, 255 328ab578a1SKai Luo ret i32 %and 338ab578a1SKai Luo } 348ab578a1SKai Luo 358ab578a1SKai Luo attributes #0 = { "toc-data" } 368ab578a1SKai Luo 378ab578a1SKai Luo... 388ab578a1SKai Luo--- 398ab578a1SKai Luoname: read_x 408ab578a1SKai Luoalignment: 4 418ab578a1SKai LuotracksRegLiveness: true 428ab578a1SKai Luoregisters: 438ab578a1SKai Luo - { id: 0, class: g8rc } 448ab578a1SKai LuoframeInfo: 458ab578a1SKai Luo maxAlignment: 8 468ab578a1SKai LuomachineFunctionInfo: {} 478ab578a1SKai Luobody: | 488ab578a1SKai Luo bb.0.entry: 49*2cd32132Szhijian lin liveins: $x3, $x2 508ab578a1SKai Luo %0:g8rc = LBZ8 @x + 2, $x2 :: (dereferenceable load (s8) from @x + 2, align 2, basealign 4) 518ab578a1SKai Luo $x3 = COPY %0 528ab578a1SKai Luo BLR8 implicit $lr8, implicit $rm, implicit $x3 538ab578a1SKai Luo 548ab578a1SKai Luo... 558ab578a1SKai Luo--- 568ab578a1SKai Luoname: read_y 578ab578a1SKai Luoalignment: 4 588ab578a1SKai LuotracksRegLiveness: true 598ab578a1SKai Luoregisters: 608ab578a1SKai Luo - { id: 0, class: g8rc } 618ab578a1SKai LuoframeInfo: 628ab578a1SKai Luo maxAlignment: 8 638ab578a1SKai LuomachineFunctionInfo: {} 648ab578a1SKai Luobody: | 658ab578a1SKai Luo bb.0.entry: 66*2cd32132Szhijian lin liveins: $x3, $x2 678ab578a1SKai Luo %0:g8rc = LBZ8 @y + 1, $x2 :: (dereferenceable load (s8) from @y + 1, basealign 4) 688ab578a1SKai Luo $x3 = COPY %0 698ab578a1SKai Luo BLR8 implicit $lr8, implicit $rm, implicit $x3 708ab578a1SKai Luo 718ab578a1SKai Luo... 72