# RUN: llc -verify-machineinstrs -x mir -filetype=obj < %s -o %t.o # RUN: llvm-objdump -dr %t.o | FileCheck %s # CHECK-LABEL: .read_x # CHECK: lbz 3, 2(2) # CHECK-NEXT: R_TOC x # CHECK-LABEL: .read_y # CHECK: lbz 3, 0(2) # CHECK-NEXT: R_TOC y --- | ; ModuleID = '' source_filename = "" target datalayout = "E-m:a-Fi64-i64:64-n32:64-S128-v256:256:256-v512:512:512" target triple = "powerpc64-ibm-aix" @x = local_unnamed_addr global i32 218114560, align 4 #0 @y = external local_unnamed_addr global i32, align 4 #0 define signext range(i32 0, 256) i32 @read_x() { entry: %0 = load i32, ptr @x, align 4 %shr = lshr i32 %0, 8 %and = and i32 %shr, 255 ret i32 %and } define signext range(i32 0, 256) i32 @read_y() { entry: %0 = load i32, ptr @y, align 4 %shr = lshr i32 %0, 16 %and = and i32 %shr, 255 ret i32 %and } attributes #0 = { "toc-data" } ... --- name: read_x alignment: 4 tracksRegLiveness: true registers: - { id: 0, class: g8rc } frameInfo: maxAlignment: 8 machineFunctionInfo: {} body: | bb.0.entry: liveins: $x3, $x2 %0:g8rc = LBZ8 @x + 2, $x2 :: (dereferenceable load (s8) from @x + 2, align 2, basealign 4) $x3 = COPY %0 BLR8 implicit $lr8, implicit $rm, implicit $x3 ... --- name: read_y alignment: 4 tracksRegLiveness: true registers: - { id: 0, class: g8rc } frameInfo: maxAlignment: 8 machineFunctionInfo: {} body: | bb.0.entry: liveins: $x3, $x2 %0:g8rc = LBZ8 @y + 1, $x2 :: (dereferenceable load (s8) from @y + 1, basealign 4) $x3 = COPY %0 BLR8 implicit $lr8, implicit $rm, implicit $x3 ...