; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
; RUN: llc -verify-machineinstrs -mtriple=powerpc64le-unknown-linux-gnu \
; RUN:   -mcpu=pwr10 -ppc-asm-full-reg-names -ppc-vsr-nums-as-vr \
; RUN:   < %s | FileCheck %s --check-prefix=CHECK-P10-LE
; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-gnu \
; RUN:   -mcpu=pwr10 -ppc-asm-full-reg-names -ppc-vsr-nums-as-vr \
; RUN:   < %s | FileCheck %s --check-prefix=CHECK-P10-BE
; RUN: llc -verify-machineinstrs -mtriple=powerpc64le-unknown-linux-gnu \
; RUN:   -mcpu=pwr9 -ppc-asm-full-reg-names -ppc-vsr-nums-as-vr \
; RUN:   < %s | FileCheck %s --check-prefixes=CHECK,CHECK-P9
; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-gnu \
; RUN:   -mcpu=pwr9 -ppc-asm-full-reg-names -ppc-vsr-nums-as-vr \
; RUN:   < %s | FileCheck %s --check-prefixes=CHECK,CHECK-P9
; RUN: llc -verify-machineinstrs -mtriple=powerpc64le-unknown-linux-gnu \
; RUN:   -mcpu=pwr8 -ppc-asm-full-reg-names -ppc-vsr-nums-as-vr \
; RUN:   < %s | FileCheck %s --check-prefixes=CHECK,CHECK-P8,CHECK-P8-LE
; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-gnu \
; RUN:   -mcpu=pwr8 -ppc-asm-full-reg-names -ppc-vsr-nums-as-vr \
; RUN:   < %s | FileCheck %s --check-prefixes=CHECK,CHECK-P8,CHECK-P8-BE

@GlobLd1 = dso_local local_unnamed_addr global [20 x i8] zeroinitializer, align 1
@GlobSt1 = dso_local local_unnamed_addr global [20 x i8] zeroinitializer, align 1
@GlobLd2 = dso_local local_unnamed_addr global [20 x i8] zeroinitializer, align 1
@GlobSt2 = dso_local local_unnamed_addr global [20 x i8] zeroinitializer, align 1
@GlobLd3 = dso_local local_unnamed_addr global [20 x i16] zeroinitializer, align 2
@GlobSt3 = dso_local local_unnamed_addr global [20 x i16] zeroinitializer, align 2
@GlobLd4 = dso_local local_unnamed_addr global [20 x i16] zeroinitializer, align 2
@GlobSt4 = dso_local local_unnamed_addr global [20 x i16] zeroinitializer, align 2
@GlobLd5 = dso_local local_unnamed_addr global [20 x i32] zeroinitializer, align 4
@GlobSt5 = dso_local local_unnamed_addr global [20 x i32] zeroinitializer, align 4
@GlobLd6 = dso_local local_unnamed_addr global [20 x i32] zeroinitializer, align 4
@GlobSt6 = dso_local local_unnamed_addr global [20 x i32] zeroinitializer, align 4
@GlobLd7 = dso_local local_unnamed_addr global [20 x i64] zeroinitializer, align 8
@GlobSt7 = dso_local local_unnamed_addr global [20 x i64] zeroinitializer, align 8
@GlobLd8 = dso_local local_unnamed_addr global [20 x i64] zeroinitializer, align 8
@GlobSt8 = dso_local local_unnamed_addr global [20 x i64] zeroinitializer, align 8
@GlobLd9 = dso_local local_unnamed_addr global [20 x float] zeroinitializer, align 4
@GlobSt9 = dso_local local_unnamed_addr global [20 x float] zeroinitializer, align 4
@GlobLd10 = dso_local local_unnamed_addr global [20 x double] zeroinitializer, align 8
@GlobSt10 = dso_local local_unnamed_addr global [20 x double] zeroinitializer, align 8
@GlobLd11 = dso_local local_unnamed_addr global [20 x <16 x i8>] zeroinitializer, align 16
@GlobSt11 = dso_local local_unnamed_addr global [20 x <16 x i8>] zeroinitializer, align 16
@GlobLd12 = dso_local local_unnamed_addr global [20 x <16 x i8>] zeroinitializer, align 16
@GlobSt12 = dso_local local_unnamed_addr global [20 x <16 x i8>] zeroinitializer, align 16
@GlobF128 = dso_local local_unnamed_addr global [20 x fp128] zeroinitializer, align 16

; Function Attrs: nofree norecurse nounwind uwtable willreturn
define dso_local void @testGlob1PtrPlus0() {
; CHECK-P10-LE-LABEL: testGlob1PtrPlus0:
; CHECK-P10-LE:       # %bb.0: # %entry
; CHECK-P10-LE-NEXT:    plbz r3, GlobLd1@PCREL(0), 1
; CHECK-P10-LE-NEXT:    pstb r3, GlobSt1@PCREL(0), 1
; CHECK-P10-LE-NEXT:    blr
;
; CHECK-P10-BE-LABEL: testGlob1PtrPlus0:
; CHECK-P10-BE:       # %bb.0: # %entry
; CHECK-P10-BE-NEXT:    addis r3, r2, GlobLd1@toc@ha
; CHECK-P10-BE-NEXT:    addis r4, r2, GlobSt1@toc@ha
; CHECK-P10-BE-NEXT:    lbz r3, GlobLd1@toc@l(r3)
; CHECK-P10-BE-NEXT:    stb r3, GlobSt1@toc@l(r4)
; CHECK-P10-BE-NEXT:    blr
;
; CHECK-LABEL: testGlob1PtrPlus0:
; CHECK:       # %bb.0: # %entry
; CHECK-NEXT:    addis r3, r2, GlobLd1@toc@ha
; CHECK-NEXT:    addis r4, r2, GlobSt1@toc@ha
; CHECK-NEXT:    lbz r3, GlobLd1@toc@l(r3)
; CHECK-NEXT:    stb r3, GlobSt1@toc@l(r4)
; CHECK-NEXT:    blr
entry:
  %0 = load i8, i8* getelementptr inbounds ([20 x i8], [20 x i8]* @GlobLd1, i64 0, i64 0), align 1
  store i8 %0, i8* getelementptr inbounds ([20 x i8], [20 x i8]* @GlobSt1, i64 0, i64 0), align 1
  ret void
}

; Function Attrs: nofree norecurse nounwind uwtable willreturn
define dso_local void @testGlob1PtrPlus3() {
; CHECK-P10-LE-LABEL: testGlob1PtrPlus3:
; CHECK-P10-LE:       # %bb.0: # %entry
; CHECK-P10-LE-NEXT:    plbz r3, GlobLd1@PCREL+3(0), 1
; CHECK-P10-LE-NEXT:    pstb r3, GlobSt1@PCREL+3(0), 1
; CHECK-P10-LE-NEXT:    blr
;
; CHECK-P10-BE-LABEL: testGlob1PtrPlus3:
; CHECK-P10-BE:       # %bb.0: # %entry
; CHECK-P10-BE-NEXT:    addis r3, r2, GlobLd1@toc@ha
; CHECK-P10-BE-NEXT:    addis r4, r2, GlobSt1@toc@ha
; CHECK-P10-BE-NEXT:    addi r3, r3, GlobLd1@toc@l
; CHECK-P10-BE-NEXT:    addi r4, r4, GlobSt1@toc@l
; CHECK-P10-BE-NEXT:    lbz r3, 3(r3)
; CHECK-P10-BE-NEXT:    stb r3, 3(r4)
; CHECK-P10-BE-NEXT:    blr
;
; CHECK-LABEL: testGlob1PtrPlus3:
; CHECK:       # %bb.0: # %entry
; CHECK-NEXT:    addis r3, r2, GlobLd1@toc@ha
; CHECK-NEXT:    addis r4, r2, GlobSt1@toc@ha
; CHECK-NEXT:    addi r3, r3, GlobLd1@toc@l
; CHECK-NEXT:    addi r4, r4, GlobSt1@toc@l
; CHECK-NEXT:    lbz r3, 3(r3)
; CHECK-NEXT:    stb r3, 3(r4)
; CHECK-NEXT:    blr
entry:
  %0 = load i8, i8* getelementptr inbounds ([20 x i8], [20 x i8]* @GlobLd1, i64 0, i64 3), align 1
  store i8 %0, i8* getelementptr inbounds ([20 x i8], [20 x i8]* @GlobSt1, i64 0, i64 3), align 1
  ret void
}

; Function Attrs: nofree norecurse nounwind uwtable willreturn
define dso_local void @testGlob1PtrPlus4() {
; CHECK-P10-LE-LABEL: testGlob1PtrPlus4:
; CHECK-P10-LE:       # %bb.0: # %entry
; CHECK-P10-LE-NEXT:    plbz r3, GlobLd1@PCREL+4(0), 1
; CHECK-P10-LE-NEXT:    pstb r3, GlobSt1@PCREL+4(0), 1
; CHECK-P10-LE-NEXT:    blr
;
; CHECK-P10-BE-LABEL: testGlob1PtrPlus4:
; CHECK-P10-BE:       # %bb.0: # %entry
; CHECK-P10-BE-NEXT:    addis r3, r2, GlobLd1@toc@ha+4
; CHECK-P10-BE-NEXT:    addis r4, r2, GlobSt1@toc@ha+4
; CHECK-P10-BE-NEXT:    lbz r3, GlobLd1@toc@l+4(r3)
; CHECK-P10-BE-NEXT:    stb r3, GlobSt1@toc@l+4(r4)
; CHECK-P10-BE-NEXT:    blr
;
; CHECK-LABEL: testGlob1PtrPlus4:
; CHECK:       # %bb.0: # %entry
; CHECK-NEXT:    addis r3, r2, GlobLd1@toc@ha+4
; CHECK-NEXT:    addis r4, r2, GlobSt1@toc@ha+4
; CHECK-NEXT:    lbz r3, GlobLd1@toc@l+4(r3)
; CHECK-NEXT:    stb r3, GlobSt1@toc@l+4(r4)
; CHECK-NEXT:    blr
entry:
  %0 = load i8, i8* getelementptr inbounds ([20 x i8], [20 x i8]* @GlobLd1, i64 0, i64 4), align 1
  store i8 %0, i8* getelementptr inbounds ([20 x i8], [20 x i8]* @GlobSt1, i64 0, i64 4), align 1
  ret void
}

; Function Attrs: nofree norecurse nounwind uwtable willreturn
define dso_local void @testGlob1PtrPlus16() {
; CHECK-P10-LE-LABEL: testGlob1PtrPlus16:
; CHECK-P10-LE:       # %bb.0: # %entry
; CHECK-P10-LE-NEXT:    plbz r3, GlobLd1@PCREL+16(0), 1
; CHECK-P10-LE-NEXT:    pstb r3, GlobSt1@PCREL+16(0), 1
; CHECK-P10-LE-NEXT:    blr
;
; CHECK-P10-BE-LABEL: testGlob1PtrPlus16:
; CHECK-P10-BE:       # %bb.0: # %entry
; CHECK-P10-BE-NEXT:    addis r3, r2, GlobLd1@toc@ha+16
; CHECK-P10-BE-NEXT:    addis r4, r2, GlobSt1@toc@ha+16
; CHECK-P10-BE-NEXT:    lbz r3, GlobLd1@toc@l+16(r3)
; CHECK-P10-BE-NEXT:    stb r3, GlobSt1@toc@l+16(r4)
; CHECK-P10-BE-NEXT:    blr
;
; CHECK-LABEL: testGlob1PtrPlus16:
; CHECK:       # %bb.0: # %entry
; CHECK-NEXT:    addis r3, r2, GlobLd1@toc@ha+16
; CHECK-NEXT:    addis r4, r2, GlobSt1@toc@ha+16
; CHECK-NEXT:    lbz r3, GlobLd1@toc@l+16(r3)
; CHECK-NEXT:    stb r3, GlobSt1@toc@l+16(r4)
; CHECK-NEXT:    blr
entry:
  %0 = load i8, i8* getelementptr inbounds ([20 x i8], [20 x i8]* @GlobLd1, i64 0, i64 16), align 1
  store i8 %0, i8* getelementptr inbounds ([20 x i8], [20 x i8]* @GlobSt1, i64 0, i64 16), align 1
  ret void
}

; Function Attrs: nofree norecurse nounwind uwtable willreturn
define dso_local void @testGlob1PtrPlusVar(i64 %Idx) {
; CHECK-P10-LE-LABEL: testGlob1PtrPlusVar:
; CHECK-P10-LE:       # %bb.0: # %entry
; CHECK-P10-LE-NEXT:    paddi r4, 0, GlobLd1@PCREL, 1
; CHECK-P10-LE-NEXT:    paddi r5, 0, GlobSt1@PCREL, 1
; CHECK-P10-LE-NEXT:    lbzx r4, r4, r3
; CHECK-P10-LE-NEXT:    stbx r4, r5, r3
; CHECK-P10-LE-NEXT:    blr
;
; CHECK-P10-BE-LABEL: testGlob1PtrPlusVar:
; CHECK-P10-BE:       # %bb.0: # %entry
; CHECK-P10-BE-NEXT:    addis r4, r2, GlobLd1@toc@ha
; CHECK-P10-BE-NEXT:    addis r5, r2, GlobSt1@toc@ha
; CHECK-P10-BE-NEXT:    addi r4, r4, GlobLd1@toc@l
; CHECK-P10-BE-NEXT:    addi r5, r5, GlobSt1@toc@l
; CHECK-P10-BE-NEXT:    lbzx r4, r4, r3
; CHECK-P10-BE-NEXT:    stbx r4, r5, r3
; CHECK-P10-BE-NEXT:    blr
;
; CHECK-LABEL: testGlob1PtrPlusVar:
; CHECK:       # %bb.0: # %entry
; CHECK-NEXT:    addis r4, r2, GlobLd1@toc@ha
; CHECK-NEXT:    addis r5, r2, GlobSt1@toc@ha
; CHECK-NEXT:    addi r4, r4, GlobLd1@toc@l
; CHECK-NEXT:    addi r5, r5, GlobSt1@toc@l
; CHECK-NEXT:    lbzx r4, r4, r3
; CHECK-NEXT:    stbx r4, r5, r3
; CHECK-NEXT:    blr
entry:
  %arrayidx = getelementptr inbounds [20 x i8], [20 x i8]* @GlobLd1, i64 0, i64 %Idx
  %0 = load i8, i8* %arrayidx, align 1
  %arrayidx1 = getelementptr inbounds [20 x i8], [20 x i8]* @GlobSt1, i64 0, i64 %Idx
  store i8 %0, i8* %arrayidx1, align 1
  ret void
}

; Function Attrs: nofree norecurse nounwind uwtable willreturn
define dso_local void @testGlob2PtrPlus0() {
; CHECK-P10-LE-LABEL: testGlob2PtrPlus0:
; CHECK-P10-LE:       # %bb.0: # %entry
; CHECK-P10-LE-NEXT:    plbz r3, GlobLd2@PCREL(0), 1
; CHECK-P10-LE-NEXT:    pstb r3, GlobSt2@PCREL(0), 1
; CHECK-P10-LE-NEXT:    blr
;
; CHECK-P10-BE-LABEL: testGlob2PtrPlus0:
; CHECK-P10-BE:       # %bb.0: # %entry
; CHECK-P10-BE-NEXT:    addis r3, r2, GlobLd2@toc@ha
; CHECK-P10-BE-NEXT:    addis r4, r2, GlobSt2@toc@ha
; CHECK-P10-BE-NEXT:    lbz r3, GlobLd2@toc@l(r3)
; CHECK-P10-BE-NEXT:    stb r3, GlobSt2@toc@l(r4)
; CHECK-P10-BE-NEXT:    blr
;
; CHECK-LABEL: testGlob2PtrPlus0:
; CHECK:       # %bb.0: # %entry
; CHECK-NEXT:    addis r3, r2, GlobLd2@toc@ha
; CHECK-NEXT:    addis r4, r2, GlobSt2@toc@ha
; CHECK-NEXT:    lbz r3, GlobLd2@toc@l(r3)
; CHECK-NEXT:    stb r3, GlobSt2@toc@l(r4)
; CHECK-NEXT:    blr
entry:
  %0 = load i8, i8* getelementptr inbounds ([20 x i8], [20 x i8]* @GlobLd2, i64 0, i64 0), align 1
  store i8 %0, i8* getelementptr inbounds ([20 x i8], [20 x i8]* @GlobSt2, i64 0, i64 0), align 1
  ret void
}

; Function Attrs: nofree norecurse nounwind uwtable willreturn
define dso_local void @testGlob2PtrPlus3() {
; CHECK-P10-LE-LABEL: testGlob2PtrPlus3:
; CHECK-P10-LE:       # %bb.0: # %entry
; CHECK-P10-LE-NEXT:    plbz r3, GlobLd2@PCREL+3(0), 1
; CHECK-P10-LE-NEXT:    pstb r3, GlobSt2@PCREL+3(0), 1
; CHECK-P10-LE-NEXT:    blr
;
; CHECK-P10-BE-LABEL: testGlob2PtrPlus3:
; CHECK-P10-BE:       # %bb.0: # %entry
; CHECK-P10-BE-NEXT:    addis r3, r2, GlobLd2@toc@ha
; CHECK-P10-BE-NEXT:    addis r4, r2, GlobSt2@toc@ha
; CHECK-P10-BE-NEXT:    addi r3, r3, GlobLd2@toc@l
; CHECK-P10-BE-NEXT:    addi r4, r4, GlobSt2@toc@l
; CHECK-P10-BE-NEXT:    lbz r3, 3(r3)
; CHECK-P10-BE-NEXT:    stb r3, 3(r4)
; CHECK-P10-BE-NEXT:    blr
;
; CHECK-LABEL: testGlob2PtrPlus3:
; CHECK:       # %bb.0: # %entry
; CHECK-NEXT:    addis r3, r2, GlobLd2@toc@ha
; CHECK-NEXT:    addis r4, r2, GlobSt2@toc@ha
; CHECK-NEXT:    addi r3, r3, GlobLd2@toc@l
; CHECK-NEXT:    addi r4, r4, GlobSt2@toc@l
; CHECK-NEXT:    lbz r3, 3(r3)
; CHECK-NEXT:    stb r3, 3(r4)
; CHECK-NEXT:    blr
entry:
  %0 = load i8, i8* getelementptr inbounds ([20 x i8], [20 x i8]* @GlobLd2, i64 0, i64 3), align 1
  store i8 %0, i8* getelementptr inbounds ([20 x i8], [20 x i8]* @GlobSt2, i64 0, i64 3), align 1
  ret void
}

; Function Attrs: nofree norecurse nounwind uwtable willreturn
define dso_local void @testGlob2PtrPlus4() {
; CHECK-P10-LE-LABEL: testGlob2PtrPlus4:
; CHECK-P10-LE:       # %bb.0: # %entry
; CHECK-P10-LE-NEXT:    plbz r3, GlobLd2@PCREL+4(0), 1
; CHECK-P10-LE-NEXT:    pstb r3, GlobSt2@PCREL+4(0), 1
; CHECK-P10-LE-NEXT:    blr
;
; CHECK-P10-BE-LABEL: testGlob2PtrPlus4:
; CHECK-P10-BE:       # %bb.0: # %entry
; CHECK-P10-BE-NEXT:    addis r3, r2, GlobLd2@toc@ha+4
; CHECK-P10-BE-NEXT:    addis r4, r2, GlobSt2@toc@ha+4
; CHECK-P10-BE-NEXT:    lbz r3, GlobLd2@toc@l+4(r3)
; CHECK-P10-BE-NEXT:    stb r3, GlobSt2@toc@l+4(r4)
; CHECK-P10-BE-NEXT:    blr
;
; CHECK-LABEL: testGlob2PtrPlus4:
; CHECK:       # %bb.0: # %entry
; CHECK-NEXT:    addis r3, r2, GlobLd2@toc@ha+4
; CHECK-NEXT:    addis r4, r2, GlobSt2@toc@ha+4
; CHECK-NEXT:    lbz r3, GlobLd2@toc@l+4(r3)
; CHECK-NEXT:    stb r3, GlobSt2@toc@l+4(r4)
; CHECK-NEXT:    blr
entry:
  %0 = load i8, i8* getelementptr inbounds ([20 x i8], [20 x i8]* @GlobLd2, i64 0, i64 4), align 1
  store i8 %0, i8* getelementptr inbounds ([20 x i8], [20 x i8]* @GlobSt2, i64 0, i64 4), align 1
  ret void
}

; Function Attrs: nofree norecurse nounwind uwtable willreturn
define dso_local void @testGlob2PtrPlus16() {
; CHECK-P10-LE-LABEL: testGlob2PtrPlus16:
; CHECK-P10-LE:       # %bb.0: # %entry
; CHECK-P10-LE-NEXT:    plbz r3, GlobLd2@PCREL+16(0), 1
; CHECK-P10-LE-NEXT:    pstb r3, GlobSt2@PCREL+16(0), 1
; CHECK-P10-LE-NEXT:    blr
;
; CHECK-P10-BE-LABEL: testGlob2PtrPlus16:
; CHECK-P10-BE:       # %bb.0: # %entry
; CHECK-P10-BE-NEXT:    addis r3, r2, GlobLd2@toc@ha+16
; CHECK-P10-BE-NEXT:    addis r4, r2, GlobSt2@toc@ha+16
; CHECK-P10-BE-NEXT:    lbz r3, GlobLd2@toc@l+16(r3)
; CHECK-P10-BE-NEXT:    stb r3, GlobSt2@toc@l+16(r4)
; CHECK-P10-BE-NEXT:    blr
;
; CHECK-LABEL: testGlob2PtrPlus16:
; CHECK:       # %bb.0: # %entry
; CHECK-NEXT:    addis r3, r2, GlobLd2@toc@ha+16
; CHECK-NEXT:    addis r4, r2, GlobSt2@toc@ha+16
; CHECK-NEXT:    lbz r3, GlobLd2@toc@l+16(r3)
; CHECK-NEXT:    stb r3, GlobSt2@toc@l+16(r4)
; CHECK-NEXT:    blr
entry:
  %0 = load i8, i8* getelementptr inbounds ([20 x i8], [20 x i8]* @GlobLd2, i64 0, i64 16), align 1
  store i8 %0, i8* getelementptr inbounds ([20 x i8], [20 x i8]* @GlobSt2, i64 0, i64 16), align 1
  ret void
}

; Function Attrs: nofree norecurse nounwind uwtable willreturn
define dso_local void @testGlob2PtrPlusVar(i64 %Idx) {
; CHECK-P10-LE-LABEL: testGlob2PtrPlusVar:
; CHECK-P10-LE:       # %bb.0: # %entry
; CHECK-P10-LE-NEXT:    paddi r4, 0, GlobLd2@PCREL, 1
; CHECK-P10-LE-NEXT:    paddi r5, 0, GlobSt2@PCREL, 1
; CHECK-P10-LE-NEXT:    lbzx r4, r4, r3
; CHECK-P10-LE-NEXT:    stbx r4, r5, r3
; CHECK-P10-LE-NEXT:    blr
;
; CHECK-P10-BE-LABEL: testGlob2PtrPlusVar:
; CHECK-P10-BE:       # %bb.0: # %entry
; CHECK-P10-BE-NEXT:    addis r4, r2, GlobLd2@toc@ha
; CHECK-P10-BE-NEXT:    addis r5, r2, GlobSt2@toc@ha
; CHECK-P10-BE-NEXT:    addi r4, r4, GlobLd2@toc@l
; CHECK-P10-BE-NEXT:    addi r5, r5, GlobSt2@toc@l
; CHECK-P10-BE-NEXT:    lbzx r4, r4, r3
; CHECK-P10-BE-NEXT:    stbx r4, r5, r3
; CHECK-P10-BE-NEXT:    blr
;
; CHECK-LABEL: testGlob2PtrPlusVar:
; CHECK:       # %bb.0: # %entry
; CHECK-NEXT:    addis r4, r2, GlobLd2@toc@ha
; CHECK-NEXT:    addis r5, r2, GlobSt2@toc@ha
; CHECK-NEXT:    addi r4, r4, GlobLd2@toc@l
; CHECK-NEXT:    addi r5, r5, GlobSt2@toc@l
; CHECK-NEXT:    lbzx r4, r4, r3
; CHECK-NEXT:    stbx r4, r5, r3
; CHECK-NEXT:    blr
entry:
  %arrayidx = getelementptr inbounds [20 x i8], [20 x i8]* @GlobLd2, i64 0, i64 %Idx
  %0 = load i8, i8* %arrayidx, align 1
  %arrayidx1 = getelementptr inbounds [20 x i8], [20 x i8]* @GlobSt2, i64 0, i64 %Idx
  store i8 %0, i8* %arrayidx1, align 1
  ret void
}

; Function Attrs: nofree norecurse nounwind uwtable willreturn
define dso_local void @testGlob3PtrPlus0() {
; CHECK-P10-LE-LABEL: testGlob3PtrPlus0:
; CHECK-P10-LE:       # %bb.0: # %entry
; CHECK-P10-LE-NEXT:    plhz r3, GlobLd3@PCREL(0), 1
; CHECK-P10-LE-NEXT:    psth r3, GlobSt3@PCREL(0), 1
; CHECK-P10-LE-NEXT:    blr
;
; CHECK-P10-BE-LABEL: testGlob3PtrPlus0:
; CHECK-P10-BE:       # %bb.0: # %entry
; CHECK-P10-BE-NEXT:    addis r3, r2, GlobLd3@toc@ha
; CHECK-P10-BE-NEXT:    addis r4, r2, GlobSt3@toc@ha
; CHECK-P10-BE-NEXT:    lhz r3, GlobLd3@toc@l(r3)
; CHECK-P10-BE-NEXT:    sth r3, GlobSt3@toc@l(r4)
; CHECK-P10-BE-NEXT:    blr
;
; CHECK-LABEL: testGlob3PtrPlus0:
; CHECK:       # %bb.0: # %entry
; CHECK-NEXT:    addis r3, r2, GlobLd3@toc@ha
; CHECK-NEXT:    addis r4, r2, GlobSt3@toc@ha
; CHECK-NEXT:    lhz r3, GlobLd3@toc@l(r3)
; CHECK-NEXT:    sth r3, GlobSt3@toc@l(r4)
; CHECK-NEXT:    blr
entry:
  %0 = load i16, i16* getelementptr inbounds ([20 x i16], [20 x i16]* @GlobLd3, i64 0, i64 0), align 2
  store i16 %0, i16* getelementptr inbounds ([20 x i16], [20 x i16]* @GlobSt3, i64 0, i64 0), align 2
  ret void
}

; Function Attrs: nofree norecurse nounwind uwtable willreturn
define dso_local void @testGlob3PtrPlus3() {
; CHECK-P10-LE-LABEL: testGlob3PtrPlus3:
; CHECK-P10-LE:       # %bb.0: # %entry
; CHECK-P10-LE-NEXT:    plhz r3, GlobLd3@PCREL+3(0), 1
; CHECK-P10-LE-NEXT:    psth r3, GlobSt3@PCREL+3(0), 1
; CHECK-P10-LE-NEXT:    blr
;
; CHECK-P10-BE-LABEL: testGlob3PtrPlus3:
; CHECK-P10-BE:       # %bb.0: # %entry
; CHECK-P10-BE-NEXT:    addis r3, r2, GlobLd3@toc@ha
; CHECK-P10-BE-NEXT:    addis r4, r2, GlobSt3@toc@ha
; CHECK-P10-BE-NEXT:    addi r3, r3, GlobLd3@toc@l
; CHECK-P10-BE-NEXT:    addi r4, r4, GlobSt3@toc@l
; CHECK-P10-BE-NEXT:    lhz r3, 3(r3)
; CHECK-P10-BE-NEXT:    sth r3, 3(r4)
; CHECK-P10-BE-NEXT:    blr
;
; CHECK-LABEL: testGlob3PtrPlus3:
; CHECK:       # %bb.0: # %entry
; CHECK-NEXT:    addis r3, r2, GlobLd3@toc@ha
; CHECK-NEXT:    addis r4, r2, GlobSt3@toc@ha
; CHECK-NEXT:    addi r3, r3, GlobLd3@toc@l
; CHECK-NEXT:    addi r4, r4, GlobSt3@toc@l
; CHECK-NEXT:    lhz r3, 3(r3)
; CHECK-NEXT:    sth r3, 3(r4)
; CHECK-NEXT:    blr
entry:
  %0 = load i16, i16* bitcast (i8* getelementptr inbounds (i8, i8* bitcast ([20 x i16]* @GlobLd3 to i8*), i64 3) to i16*), align 2
  store i16 %0, i16* bitcast (i8* getelementptr inbounds (i8, i8* bitcast ([20 x i16]* @GlobSt3 to i8*), i64 3) to i16*), align 2
  ret void
}

; Function Attrs: nofree norecurse nounwind uwtable willreturn
define dso_local void @testGlob3PtrPlus4() {
; CHECK-P10-LE-LABEL: testGlob3PtrPlus4:
; CHECK-P10-LE:       # %bb.0: # %entry
; CHECK-P10-LE-NEXT:    plhz r3, GlobLd3@PCREL+4(0), 1
; CHECK-P10-LE-NEXT:    psth r3, GlobSt3@PCREL+4(0), 1
; CHECK-P10-LE-NEXT:    blr
;
; CHECK-P10-BE-LABEL: testGlob3PtrPlus4:
; CHECK-P10-BE:       # %bb.0: # %entry
; CHECK-P10-BE-NEXT:    addis r3, r2, GlobLd3@toc@ha+4
; CHECK-P10-BE-NEXT:    addis r4, r2, GlobSt3@toc@ha+4
; CHECK-P10-BE-NEXT:    lhz r3, GlobLd3@toc@l+4(r3)
; CHECK-P10-BE-NEXT:    sth r3, GlobSt3@toc@l+4(r4)
; CHECK-P10-BE-NEXT:    blr
;
; CHECK-LABEL: testGlob3PtrPlus4:
; CHECK:       # %bb.0: # %entry
; CHECK-NEXT:    addis r3, r2, GlobLd3@toc@ha+4
; CHECK-NEXT:    addis r4, r2, GlobSt3@toc@ha+4
; CHECK-NEXT:    lhz r3, GlobLd3@toc@l+4(r3)
; CHECK-NEXT:    sth r3, GlobSt3@toc@l+4(r4)
; CHECK-NEXT:    blr
entry:
  %0 = load i16, i16* getelementptr inbounds ([20 x i16], [20 x i16]* @GlobLd3, i64 0, i64 2), align 2
  store i16 %0, i16* getelementptr inbounds ([20 x i16], [20 x i16]* @GlobSt3, i64 0, i64 2), align 2
  ret void
}

; Function Attrs: nofree norecurse nounwind uwtable willreturn
define dso_local void @testGlob3PtrPlus16() {
; CHECK-P10-LE-LABEL: testGlob3PtrPlus16:
; CHECK-P10-LE:       # %bb.0: # %entry
; CHECK-P10-LE-NEXT:    plhz r3, GlobLd3@PCREL+16(0), 1
; CHECK-P10-LE-NEXT:    psth r3, GlobSt3@PCREL+16(0), 1
; CHECK-P10-LE-NEXT:    blr
;
; CHECK-P10-BE-LABEL: testGlob3PtrPlus16:
; CHECK-P10-BE:       # %bb.0: # %entry
; CHECK-P10-BE-NEXT:    addis r3, r2, GlobLd3@toc@ha+16
; CHECK-P10-BE-NEXT:    addis r4, r2, GlobSt3@toc@ha+16
; CHECK-P10-BE-NEXT:    lhz r3, GlobLd3@toc@l+16(r3)
; CHECK-P10-BE-NEXT:    sth r3, GlobSt3@toc@l+16(r4)
; CHECK-P10-BE-NEXT:    blr
;
; CHECK-LABEL: testGlob3PtrPlus16:
; CHECK:       # %bb.0: # %entry
; CHECK-NEXT:    addis r3, r2, GlobLd3@toc@ha+16
; CHECK-NEXT:    addis r4, r2, GlobSt3@toc@ha+16
; CHECK-NEXT:    lhz r3, GlobLd3@toc@l+16(r3)
; CHECK-NEXT:    sth r3, GlobSt3@toc@l+16(r4)
; CHECK-NEXT:    blr
entry:
  %0 = load i16, i16* getelementptr inbounds ([20 x i16], [20 x i16]* @GlobLd3, i64 0, i64 8), align 2
  store i16 %0, i16* getelementptr inbounds ([20 x i16], [20 x i16]* @GlobSt3, i64 0, i64 8), align 2
  ret void
}

; Function Attrs: nofree norecurse nounwind uwtable willreturn
define dso_local void @testGlob3PtrPlusVar(i64 %Idx) {
; CHECK-P10-LE-LABEL: testGlob3PtrPlusVar:
; CHECK-P10-LE:       # %bb.0: # %entry
; CHECK-P10-LE-NEXT:    sldi r3, r3, 1
; CHECK-P10-LE-NEXT:    paddi r4, 0, GlobLd3@PCREL, 1
; CHECK-P10-LE-NEXT:    paddi r5, 0, GlobSt3@PCREL, 1
; CHECK-P10-LE-NEXT:    lhzx r4, r4, r3
; CHECK-P10-LE-NEXT:    sthx r4, r5, r3
; CHECK-P10-LE-NEXT:    blr
;
; CHECK-P10-BE-LABEL: testGlob3PtrPlusVar:
; CHECK-P10-BE:       # %bb.0: # %entry
; CHECK-P10-BE-NEXT:    addis r4, r2, GlobLd3@toc@ha
; CHECK-P10-BE-NEXT:    sldi r3, r3, 1
; CHECK-P10-BE-NEXT:    addis r5, r2, GlobSt3@toc@ha
; CHECK-P10-BE-NEXT:    addi r4, r4, GlobLd3@toc@l
; CHECK-P10-BE-NEXT:    addi r5, r5, GlobSt3@toc@l
; CHECK-P10-BE-NEXT:    lhzx r4, r4, r3
; CHECK-P10-BE-NEXT:    sthx r4, r5, r3
; CHECK-P10-BE-NEXT:    blr
;
; CHECK-LABEL: testGlob3PtrPlusVar:
; CHECK:       # %bb.0: # %entry
; CHECK-NEXT:    addis r4, r2, GlobLd3@toc@ha
; CHECK-NEXT:    sldi r3, r3, 1
; CHECK-NEXT:    addis r5, r2, GlobSt3@toc@ha
; CHECK-NEXT:    addi r4, r4, GlobLd3@toc@l
; CHECK-NEXT:    addi r5, r5, GlobSt3@toc@l
; CHECK-NEXT:    lhzx r4, r4, r3
; CHECK-NEXT:    sthx r4, r5, r3
; CHECK-NEXT:    blr
entry:
  %arrayidx = getelementptr inbounds [20 x i16], [20 x i16]* @GlobLd3, i64 0, i64 %Idx
  %0 = load i16, i16* %arrayidx, align 2
  %arrayidx1 = getelementptr inbounds [20 x i16], [20 x i16]* @GlobSt3, i64 0, i64 %Idx
  store i16 %0, i16* %arrayidx1, align 2
  ret void
}

; Function Attrs: nofree norecurse nounwind uwtable willreturn
define dso_local void @testGlob4PtrPlus0() {
; CHECK-P10-LE-LABEL: testGlob4PtrPlus0:
; CHECK-P10-LE:       # %bb.0: # %entry
; CHECK-P10-LE-NEXT:    plhz r3, GlobLd4@PCREL(0), 1
; CHECK-P10-LE-NEXT:    psth r3, GlobSt4@PCREL(0), 1
; CHECK-P10-LE-NEXT:    blr
;
; CHECK-P10-BE-LABEL: testGlob4PtrPlus0:
; CHECK-P10-BE:       # %bb.0: # %entry
; CHECK-P10-BE-NEXT:    addis r3, r2, GlobLd4@toc@ha
; CHECK-P10-BE-NEXT:    addis r4, r2, GlobSt4@toc@ha
; CHECK-P10-BE-NEXT:    lhz r3, GlobLd4@toc@l(r3)
; CHECK-P10-BE-NEXT:    sth r3, GlobSt4@toc@l(r4)
; CHECK-P10-BE-NEXT:    blr
;
; CHECK-LABEL: testGlob4PtrPlus0:
; CHECK:       # %bb.0: # %entry
; CHECK-NEXT:    addis r3, r2, GlobLd4@toc@ha
; CHECK-NEXT:    addis r4, r2, GlobSt4@toc@ha
; CHECK-NEXT:    lhz r3, GlobLd4@toc@l(r3)
; CHECK-NEXT:    sth r3, GlobSt4@toc@l(r4)
; CHECK-NEXT:    blr
entry:
  %0 = load i16, i16* getelementptr inbounds ([20 x i16], [20 x i16]* @GlobLd4, i64 0, i64 0), align 2
  store i16 %0, i16* getelementptr inbounds ([20 x i16], [20 x i16]* @GlobSt4, i64 0, i64 0), align 2
  ret void
}

; Function Attrs: nofree norecurse nounwind uwtable willreturn
define dso_local void @testGlob4PtrPlus3() {
; CHECK-P10-LE-LABEL: testGlob4PtrPlus3:
; CHECK-P10-LE:       # %bb.0: # %entry
; CHECK-P10-LE-NEXT:    plhz r3, GlobLd4@PCREL+3(0), 1
; CHECK-P10-LE-NEXT:    psth r3, GlobSt4@PCREL+3(0), 1
; CHECK-P10-LE-NEXT:    blr
;
; CHECK-P10-BE-LABEL: testGlob4PtrPlus3:
; CHECK-P10-BE:       # %bb.0: # %entry
; CHECK-P10-BE-NEXT:    addis r3, r2, GlobLd4@toc@ha
; CHECK-P10-BE-NEXT:    addis r4, r2, GlobSt4@toc@ha
; CHECK-P10-BE-NEXT:    addi r3, r3, GlobLd4@toc@l
; CHECK-P10-BE-NEXT:    addi r4, r4, GlobSt4@toc@l
; CHECK-P10-BE-NEXT:    lhz r3, 3(r3)
; CHECK-P10-BE-NEXT:    sth r3, 3(r4)
; CHECK-P10-BE-NEXT:    blr
;
; CHECK-LABEL: testGlob4PtrPlus3:
; CHECK:       # %bb.0: # %entry
; CHECK-NEXT:    addis r3, r2, GlobLd4@toc@ha
; CHECK-NEXT:    addis r4, r2, GlobSt4@toc@ha
; CHECK-NEXT:    addi r3, r3, GlobLd4@toc@l
; CHECK-NEXT:    addi r4, r4, GlobSt4@toc@l
; CHECK-NEXT:    lhz r3, 3(r3)
; CHECK-NEXT:    sth r3, 3(r4)
; CHECK-NEXT:    blr
entry:
  %0 = load i16, i16* bitcast (i8* getelementptr inbounds (i8, i8* bitcast ([20 x i16]* @GlobLd4 to i8*), i64 3) to i16*), align 2
  store i16 %0, i16* bitcast (i8* getelementptr inbounds (i8, i8* bitcast ([20 x i16]* @GlobSt4 to i8*), i64 3) to i16*), align 2
  ret void
}

; Function Attrs: nofree norecurse nounwind uwtable willreturn
define dso_local void @testGlob4PtrPlus4() {
; CHECK-P10-LE-LABEL: testGlob4PtrPlus4:
; CHECK-P10-LE:       # %bb.0: # %entry
; CHECK-P10-LE-NEXT:    plhz r3, GlobLd4@PCREL+4(0), 1
; CHECK-P10-LE-NEXT:    psth r3, GlobSt4@PCREL+4(0), 1
; CHECK-P10-LE-NEXT:    blr
;
; CHECK-P10-BE-LABEL: testGlob4PtrPlus4:
; CHECK-P10-BE:       # %bb.0: # %entry
; CHECK-P10-BE-NEXT:    addis r3, r2, GlobLd4@toc@ha+4
; CHECK-P10-BE-NEXT:    addis r4, r2, GlobSt4@toc@ha+4
; CHECK-P10-BE-NEXT:    lhz r3, GlobLd4@toc@l+4(r3)
; CHECK-P10-BE-NEXT:    sth r3, GlobSt4@toc@l+4(r4)
; CHECK-P10-BE-NEXT:    blr
;
; CHECK-LABEL: testGlob4PtrPlus4:
; CHECK:       # %bb.0: # %entry
; CHECK-NEXT:    addis r3, r2, GlobLd4@toc@ha+4
; CHECK-NEXT:    addis r4, r2, GlobSt4@toc@ha+4
; CHECK-NEXT:    lhz r3, GlobLd4@toc@l+4(r3)
; CHECK-NEXT:    sth r3, GlobSt4@toc@l+4(r4)
; CHECK-NEXT:    blr
entry:
  %0 = load i16, i16* getelementptr inbounds ([20 x i16], [20 x i16]* @GlobLd4, i64 0, i64 2), align 2
  store i16 %0, i16* getelementptr inbounds ([20 x i16], [20 x i16]* @GlobSt4, i64 0, i64 2), align 2
  ret void
}

; Function Attrs: nofree norecurse nounwind uwtable willreturn
define dso_local void @testGlob4PtrPlus16() {
; CHECK-P10-LE-LABEL: testGlob4PtrPlus16:
; CHECK-P10-LE:       # %bb.0: # %entry
; CHECK-P10-LE-NEXT:    plhz r3, GlobLd4@PCREL+16(0), 1
; CHECK-P10-LE-NEXT:    psth r3, GlobSt4@PCREL+16(0), 1
; CHECK-P10-LE-NEXT:    blr
;
; CHECK-P10-BE-LABEL: testGlob4PtrPlus16:
; CHECK-P10-BE:       # %bb.0: # %entry
; CHECK-P10-BE-NEXT:    addis r3, r2, GlobLd4@toc@ha+16
; CHECK-P10-BE-NEXT:    addis r4, r2, GlobSt4@toc@ha+16
; CHECK-P10-BE-NEXT:    lhz r3, GlobLd4@toc@l+16(r3)
; CHECK-P10-BE-NEXT:    sth r3, GlobSt4@toc@l+16(r4)
; CHECK-P10-BE-NEXT:    blr
;
; CHECK-LABEL: testGlob4PtrPlus16:
; CHECK:       # %bb.0: # %entry
; CHECK-NEXT:    addis r3, r2, GlobLd4@toc@ha+16
; CHECK-NEXT:    addis r4, r2, GlobSt4@toc@ha+16
; CHECK-NEXT:    lhz r3, GlobLd4@toc@l+16(r3)
; CHECK-NEXT:    sth r3, GlobSt4@toc@l+16(r4)
; CHECK-NEXT:    blr
entry:
  %0 = load i16, i16* getelementptr inbounds ([20 x i16], [20 x i16]* @GlobLd4, i64 0, i64 8), align 2
  store i16 %0, i16* getelementptr inbounds ([20 x i16], [20 x i16]* @GlobSt4, i64 0, i64 8), align 2
  ret void
}

; Function Attrs: nofree norecurse nounwind uwtable willreturn
define dso_local void @testGlob4PtrPlusVar(i64 %Idx) {
; CHECK-P10-LE-LABEL: testGlob4PtrPlusVar:
; CHECK-P10-LE:       # %bb.0: # %entry
; CHECK-P10-LE-NEXT:    sldi r3, r3, 1
; CHECK-P10-LE-NEXT:    paddi r4, 0, GlobLd4@PCREL, 1
; CHECK-P10-LE-NEXT:    paddi r5, 0, GlobSt4@PCREL, 1
; CHECK-P10-LE-NEXT:    lhzx r4, r4, r3
; CHECK-P10-LE-NEXT:    sthx r4, r5, r3
; CHECK-P10-LE-NEXT:    blr
;
; CHECK-P10-BE-LABEL: testGlob4PtrPlusVar:
; CHECK-P10-BE:       # %bb.0: # %entry
; CHECK-P10-BE-NEXT:    addis r4, r2, GlobLd4@toc@ha
; CHECK-P10-BE-NEXT:    sldi r3, r3, 1
; CHECK-P10-BE-NEXT:    addis r5, r2, GlobSt4@toc@ha
; CHECK-P10-BE-NEXT:    addi r4, r4, GlobLd4@toc@l
; CHECK-P10-BE-NEXT:    addi r5, r5, GlobSt4@toc@l
; CHECK-P10-BE-NEXT:    lhzx r4, r4, r3
; CHECK-P10-BE-NEXT:    sthx r4, r5, r3
; CHECK-P10-BE-NEXT:    blr
;
; CHECK-LABEL: testGlob4PtrPlusVar:
; CHECK:       # %bb.0: # %entry
; CHECK-NEXT:    addis r4, r2, GlobLd4@toc@ha
; CHECK-NEXT:    sldi r3, r3, 1
; CHECK-NEXT:    addis r5, r2, GlobSt4@toc@ha
; CHECK-NEXT:    addi r4, r4, GlobLd4@toc@l
; CHECK-NEXT:    addi r5, r5, GlobSt4@toc@l
; CHECK-NEXT:    lhzx r4, r4, r3
; CHECK-NEXT:    sthx r4, r5, r3
; CHECK-NEXT:    blr
entry:
  %arrayidx = getelementptr inbounds [20 x i16], [20 x i16]* @GlobLd4, i64 0, i64 %Idx
  %0 = load i16, i16* %arrayidx, align 2
  %arrayidx1 = getelementptr inbounds [20 x i16], [20 x i16]* @GlobSt4, i64 0, i64 %Idx
  store i16 %0, i16* %arrayidx1, align 2
  ret void
}

; Function Attrs: nofree norecurse nounwind uwtable willreturn
define dso_local void @testGlob5PtrPlus0() {
; CHECK-P10-LE-LABEL: testGlob5PtrPlus0:
; CHECK-P10-LE:       # %bb.0: # %entry
; CHECK-P10-LE-NEXT:    plwz r3, GlobLd5@PCREL(0), 1
; CHECK-P10-LE-NEXT:    pstw r3, GlobSt5@PCREL(0), 1
; CHECK-P10-LE-NEXT:    blr
;
; CHECK-P10-BE-LABEL: testGlob5PtrPlus0:
; CHECK-P10-BE:       # %bb.0: # %entry
; CHECK-P10-BE-NEXT:    addis r3, r2, GlobLd5@toc@ha
; CHECK-P10-BE-NEXT:    addis r4, r2, GlobSt5@toc@ha
; CHECK-P10-BE-NEXT:    lwz r3, GlobLd5@toc@l(r3)
; CHECK-P10-BE-NEXT:    stw r3, GlobSt5@toc@l(r4)
; CHECK-P10-BE-NEXT:    blr
;
; CHECK-LABEL: testGlob5PtrPlus0:
; CHECK:       # %bb.0: # %entry
; CHECK-NEXT:    addis r3, r2, GlobLd5@toc@ha
; CHECK-NEXT:    addis r4, r2, GlobSt5@toc@ha
; CHECK-NEXT:    lwz r3, GlobLd5@toc@l(r3)
; CHECK-NEXT:    stw r3, GlobSt5@toc@l(r4)
; CHECK-NEXT:    blr
entry:
  %0 = load i32, i32* getelementptr inbounds ([20 x i32], [20 x i32]* @GlobLd5, i64 0, i64 0), align 4
  store i32 %0, i32* getelementptr inbounds ([20 x i32], [20 x i32]* @GlobSt5, i64 0, i64 0), align 4
  ret void
}

; Function Attrs: nofree norecurse nounwind uwtable willreturn
define dso_local void @testGlob5PtrPlus3() {
; CHECK-P10-LE-LABEL: testGlob5PtrPlus3:
; CHECK-P10-LE:       # %bb.0: # %entry
; CHECK-P10-LE-NEXT:    plwz r3, GlobLd5@PCREL+3(0), 1
; CHECK-P10-LE-NEXT:    pstw r3, GlobSt5@PCREL+3(0), 1
; CHECK-P10-LE-NEXT:    blr
;
; CHECK-P10-BE-LABEL: testGlob5PtrPlus3:
; CHECK-P10-BE:       # %bb.0: # %entry
; CHECK-P10-BE-NEXT:    addis r3, r2, GlobLd5@toc@ha
; CHECK-P10-BE-NEXT:    addis r4, r2, GlobSt5@toc@ha
; CHECK-P10-BE-NEXT:    lwz r3, GlobLd5@toc@l+3(r3)
; CHECK-P10-BE-NEXT:    stw r3, GlobSt5@toc@l+3(r4)
; CHECK-P10-BE-NEXT:    blr
;
; CHECK-LABEL: testGlob5PtrPlus3:
; CHECK:       # %bb.0: # %entry
; CHECK-NEXT:    addis r3, r2, GlobLd5@toc@ha
; CHECK-NEXT:    addis r4, r2, GlobSt5@toc@ha
; CHECK-NEXT:    lwz r3, GlobLd5@toc@l+3(r3)
; CHECK-NEXT:    stw r3, GlobSt5@toc@l+3(r4)
; CHECK-NEXT:    blr
entry:
  %0 = load i32, i32* bitcast (i8* getelementptr inbounds (i8, i8* bitcast ([20 x i32]* @GlobLd5 to i8*), i64 3) to i32*), align 4
  store i32 %0, i32* bitcast (i8* getelementptr inbounds (i8, i8* bitcast ([20 x i32]* @GlobSt5 to i8*), i64 3) to i32*), align 4
  ret void
}

; Function Attrs: nofree norecurse nounwind uwtable willreturn
define dso_local void @testGlob5PtrPlus4() {
; CHECK-P10-LE-LABEL: testGlob5PtrPlus4:
; CHECK-P10-LE:       # %bb.0: # %entry
; CHECK-P10-LE-NEXT:    plwz r3, GlobLd5@PCREL+4(0), 1
; CHECK-P10-LE-NEXT:    pstw r3, GlobSt5@PCREL+4(0), 1
; CHECK-P10-LE-NEXT:    blr
;
; CHECK-P10-BE-LABEL: testGlob5PtrPlus4:
; CHECK-P10-BE:       # %bb.0: # %entry
; CHECK-P10-BE-NEXT:    addis r3, r2, GlobLd5@toc@ha+4
; CHECK-P10-BE-NEXT:    addis r4, r2, GlobSt5@toc@ha+4
; CHECK-P10-BE-NEXT:    lwz r3, GlobLd5@toc@l+4(r3)
; CHECK-P10-BE-NEXT:    stw r3, GlobSt5@toc@l+4(r4)
; CHECK-P10-BE-NEXT:    blr
;
; CHECK-LABEL: testGlob5PtrPlus4:
; CHECK:       # %bb.0: # %entry
; CHECK-NEXT:    addis r3, r2, GlobLd5@toc@ha+4
; CHECK-NEXT:    addis r4, r2, GlobSt5@toc@ha+4
; CHECK-NEXT:    lwz r3, GlobLd5@toc@l+4(r3)
; CHECK-NEXT:    stw r3, GlobSt5@toc@l+4(r4)
; CHECK-NEXT:    blr
entry:
  %0 = load i32, i32* getelementptr inbounds ([20 x i32], [20 x i32]* @GlobLd5, i64 0, i64 1), align 4
  store i32 %0, i32* getelementptr inbounds ([20 x i32], [20 x i32]* @GlobSt5, i64 0, i64 1), align 4
  ret void
}

; Function Attrs: nofree norecurse nounwind uwtable willreturn
define dso_local void @testGlob5PtrPlus16() {
; CHECK-P10-LE-LABEL: testGlob5PtrPlus16:
; CHECK-P10-LE:       # %bb.0: # %entry
; CHECK-P10-LE-NEXT:    plwz r3, GlobLd5@PCREL+16(0), 1
; CHECK-P10-LE-NEXT:    pstw r3, GlobSt5@PCREL+16(0), 1
; CHECK-P10-LE-NEXT:    blr
;
; CHECK-P10-BE-LABEL: testGlob5PtrPlus16:
; CHECK-P10-BE:       # %bb.0: # %entry
; CHECK-P10-BE-NEXT:    addis r3, r2, GlobLd5@toc@ha+16
; CHECK-P10-BE-NEXT:    addis r4, r2, GlobSt5@toc@ha+16
; CHECK-P10-BE-NEXT:    lwz r3, GlobLd5@toc@l+16(r3)
; CHECK-P10-BE-NEXT:    stw r3, GlobSt5@toc@l+16(r4)
; CHECK-P10-BE-NEXT:    blr
;
; CHECK-LABEL: testGlob5PtrPlus16:
; CHECK:       # %bb.0: # %entry
; CHECK-NEXT:    addis r3, r2, GlobLd5@toc@ha+16
; CHECK-NEXT:    addis r4, r2, GlobSt5@toc@ha+16
; CHECK-NEXT:    lwz r3, GlobLd5@toc@l+16(r3)
; CHECK-NEXT:    stw r3, GlobSt5@toc@l+16(r4)
; CHECK-NEXT:    blr
entry:
  %0 = load i32, i32* getelementptr inbounds ([20 x i32], [20 x i32]* @GlobLd5, i64 0, i64 4), align 4
  store i32 %0, i32* getelementptr inbounds ([20 x i32], [20 x i32]* @GlobSt5, i64 0, i64 4), align 4
  ret void
}

; Function Attrs: nofree norecurse nounwind uwtable willreturn
define dso_local void @testGlob5PtrPlusVar(i64 %Idx) {
; CHECK-P10-LE-LABEL: testGlob5PtrPlusVar:
; CHECK-P10-LE:       # %bb.0: # %entry
; CHECK-P10-LE-NEXT:    sldi r3, r3, 2
; CHECK-P10-LE-NEXT:    paddi r4, 0, GlobLd5@PCREL, 1
; CHECK-P10-LE-NEXT:    paddi r5, 0, GlobSt5@PCREL, 1
; CHECK-P10-LE-NEXT:    lwzx r4, r4, r3
; CHECK-P10-LE-NEXT:    stwx r4, r5, r3
; CHECK-P10-LE-NEXT:    blr
;
; CHECK-P10-BE-LABEL: testGlob5PtrPlusVar:
; CHECK-P10-BE:       # %bb.0: # %entry
; CHECK-P10-BE-NEXT:    addis r4, r2, GlobLd5@toc@ha
; CHECK-P10-BE-NEXT:    sldi r3, r3, 2
; CHECK-P10-BE-NEXT:    addis r5, r2, GlobSt5@toc@ha
; CHECK-P10-BE-NEXT:    addi r4, r4, GlobLd5@toc@l
; CHECK-P10-BE-NEXT:    addi r5, r5, GlobSt5@toc@l
; CHECK-P10-BE-NEXT:    lwzx r4, r4, r3
; CHECK-P10-BE-NEXT:    stwx r4, r5, r3
; CHECK-P10-BE-NEXT:    blr
;
; CHECK-LABEL: testGlob5PtrPlusVar:
; CHECK:       # %bb.0: # %entry
; CHECK-NEXT:    addis r4, r2, GlobLd5@toc@ha
; CHECK-NEXT:    sldi r3, r3, 2
; CHECK-NEXT:    addis r5, r2, GlobSt5@toc@ha
; CHECK-NEXT:    addi r4, r4, GlobLd5@toc@l
; CHECK-NEXT:    addi r5, r5, GlobSt5@toc@l
; CHECK-NEXT:    lwzx r4, r4, r3
; CHECK-NEXT:    stwx r4, r5, r3
; CHECK-NEXT:    blr
entry:
  %arrayidx = getelementptr inbounds [20 x i32], [20 x i32]* @GlobLd5, i64 0, i64 %Idx
  %0 = load i32, i32* %arrayidx, align 4
  %arrayidx1 = getelementptr inbounds [20 x i32], [20 x i32]* @GlobSt5, i64 0, i64 %Idx
  store i32 %0, i32* %arrayidx1, align 4
  ret void
}

; Function Attrs: nofree norecurse nounwind uwtable willreturn
define dso_local void @testGlob6PtrPlus0() {
; CHECK-P10-LE-LABEL: testGlob6PtrPlus0:
; CHECK-P10-LE:       # %bb.0: # %entry
; CHECK-P10-LE-NEXT:    plwz r3, GlobLd6@PCREL(0), 1
; CHECK-P10-LE-NEXT:    pstw r3, GlobSt6@PCREL(0), 1
; CHECK-P10-LE-NEXT:    blr
;
; CHECK-P10-BE-LABEL: testGlob6PtrPlus0:
; CHECK-P10-BE:       # %bb.0: # %entry
; CHECK-P10-BE-NEXT:    addis r3, r2, GlobLd6@toc@ha
; CHECK-P10-BE-NEXT:    addis r4, r2, GlobSt6@toc@ha
; CHECK-P10-BE-NEXT:    lwz r3, GlobLd6@toc@l(r3)
; CHECK-P10-BE-NEXT:    stw r3, GlobSt6@toc@l(r4)
; CHECK-P10-BE-NEXT:    blr
;
; CHECK-LABEL: testGlob6PtrPlus0:
; CHECK:       # %bb.0: # %entry
; CHECK-NEXT:    addis r3, r2, GlobLd6@toc@ha
; CHECK-NEXT:    addis r4, r2, GlobSt6@toc@ha
; CHECK-NEXT:    lwz r3, GlobLd6@toc@l(r3)
; CHECK-NEXT:    stw r3, GlobSt6@toc@l(r4)
; CHECK-NEXT:    blr
entry:
  %0 = load i32, i32* getelementptr inbounds ([20 x i32], [20 x i32]* @GlobLd6, i64 0, i64 0), align 4
  store i32 %0, i32* getelementptr inbounds ([20 x i32], [20 x i32]* @GlobSt6, i64 0, i64 0), align 4
  ret void
}

; Function Attrs: nofree norecurse nounwind uwtable willreturn
define dso_local void @testGlob6PtrPlus3() {
; CHECK-P10-LE-LABEL: testGlob6PtrPlus3:
; CHECK-P10-LE:       # %bb.0: # %entry
; CHECK-P10-LE-NEXT:    plwz r3, GlobLd6@PCREL+3(0), 1
; CHECK-P10-LE-NEXT:    pstw r3, GlobSt6@PCREL+3(0), 1
; CHECK-P10-LE-NEXT:    blr
;
; CHECK-P10-BE-LABEL: testGlob6PtrPlus3:
; CHECK-P10-BE:       # %bb.0: # %entry
; CHECK-P10-BE-NEXT:    addis r3, r2, GlobLd6@toc@ha
; CHECK-P10-BE-NEXT:    addis r4, r2, GlobSt6@toc@ha
; CHECK-P10-BE-NEXT:    lwz r3, GlobLd6@toc@l+3(r3)
; CHECK-P10-BE-NEXT:    stw r3, GlobSt6@toc@l+3(r4)
; CHECK-P10-BE-NEXT:    blr
;
; CHECK-LABEL: testGlob6PtrPlus3:
; CHECK:       # %bb.0: # %entry
; CHECK-NEXT:    addis r3, r2, GlobLd6@toc@ha
; CHECK-NEXT:    addis r4, r2, GlobSt6@toc@ha
; CHECK-NEXT:    lwz r3, GlobLd6@toc@l+3(r3)
; CHECK-NEXT:    stw r3, GlobSt6@toc@l+3(r4)
; CHECK-NEXT:    blr
entry:
  %0 = load i32, i32* bitcast (i8* getelementptr inbounds (i8, i8* bitcast ([20 x i32]* @GlobLd6 to i8*), i64 3) to i32*), align 4
  store i32 %0, i32* bitcast (i8* getelementptr inbounds (i8, i8* bitcast ([20 x i32]* @GlobSt6 to i8*), i64 3) to i32*), align 4
  ret void
}

; Function Attrs: nofree norecurse nounwind uwtable willreturn
define dso_local void @testGlob6PtrPlus4() {
; CHECK-P10-LE-LABEL: testGlob6PtrPlus4:
; CHECK-P10-LE:       # %bb.0: # %entry
; CHECK-P10-LE-NEXT:    plwz r3, GlobLd6@PCREL+4(0), 1
; CHECK-P10-LE-NEXT:    pstw r3, GlobSt6@PCREL+4(0), 1
; CHECK-P10-LE-NEXT:    blr
;
; CHECK-P10-BE-LABEL: testGlob6PtrPlus4:
; CHECK-P10-BE:       # %bb.0: # %entry
; CHECK-P10-BE-NEXT:    addis r3, r2, GlobLd6@toc@ha+4
; CHECK-P10-BE-NEXT:    addis r4, r2, GlobSt6@toc@ha+4
; CHECK-P10-BE-NEXT:    lwz r3, GlobLd6@toc@l+4(r3)
; CHECK-P10-BE-NEXT:    stw r3, GlobSt6@toc@l+4(r4)
; CHECK-P10-BE-NEXT:    blr
;
; CHECK-LABEL: testGlob6PtrPlus4:
; CHECK:       # %bb.0: # %entry
; CHECK-NEXT:    addis r3, r2, GlobLd6@toc@ha+4
; CHECK-NEXT:    addis r4, r2, GlobSt6@toc@ha+4
; CHECK-NEXT:    lwz r3, GlobLd6@toc@l+4(r3)
; CHECK-NEXT:    stw r3, GlobSt6@toc@l+4(r4)
; CHECK-NEXT:    blr
entry:
  %0 = load i32, i32* getelementptr inbounds ([20 x i32], [20 x i32]* @GlobLd6, i64 0, i64 1), align 4
  store i32 %0, i32* getelementptr inbounds ([20 x i32], [20 x i32]* @GlobSt6, i64 0, i64 1), align 4
  ret void
}

; Function Attrs: nofree norecurse nounwind uwtable willreturn
define dso_local void @testGlob6PtrPlus16() {
; CHECK-P10-LE-LABEL: testGlob6PtrPlus16:
; CHECK-P10-LE:       # %bb.0: # %entry
; CHECK-P10-LE-NEXT:    plwz r3, GlobLd6@PCREL+16(0), 1
; CHECK-P10-LE-NEXT:    pstw r3, GlobSt6@PCREL+16(0), 1
; CHECK-P10-LE-NEXT:    blr
;
; CHECK-P10-BE-LABEL: testGlob6PtrPlus16:
; CHECK-P10-BE:       # %bb.0: # %entry
; CHECK-P10-BE-NEXT:    addis r3, r2, GlobLd6@toc@ha+16
; CHECK-P10-BE-NEXT:    addis r4, r2, GlobSt6@toc@ha+16
; CHECK-P10-BE-NEXT:    lwz r3, GlobLd6@toc@l+16(r3)
; CHECK-P10-BE-NEXT:    stw r3, GlobSt6@toc@l+16(r4)
; CHECK-P10-BE-NEXT:    blr
;
; CHECK-LABEL: testGlob6PtrPlus16:
; CHECK:       # %bb.0: # %entry
; CHECK-NEXT:    addis r3, r2, GlobLd6@toc@ha+16
; CHECK-NEXT:    addis r4, r2, GlobSt6@toc@ha+16
; CHECK-NEXT:    lwz r3, GlobLd6@toc@l+16(r3)
; CHECK-NEXT:    stw r3, GlobSt6@toc@l+16(r4)
; CHECK-NEXT:    blr
entry:
  %0 = load i32, i32* getelementptr inbounds ([20 x i32], [20 x i32]* @GlobLd6, i64 0, i64 4), align 4
  store i32 %0, i32* getelementptr inbounds ([20 x i32], [20 x i32]* @GlobSt6, i64 0, i64 4), align 4
  ret void
}

; Function Attrs: nofree norecurse nounwind uwtable willreturn
define dso_local void @testGlob6PtrPlusVar(i64 %Idx) {
; CHECK-P10-LE-LABEL: testGlob6PtrPlusVar:
; CHECK-P10-LE:       # %bb.0: # %entry
; CHECK-P10-LE-NEXT:    sldi r3, r3, 2
; CHECK-P10-LE-NEXT:    paddi r4, 0, GlobLd6@PCREL, 1
; CHECK-P10-LE-NEXT:    paddi r5, 0, GlobSt6@PCREL, 1
; CHECK-P10-LE-NEXT:    lwzx r4, r4, r3
; CHECK-P10-LE-NEXT:    stwx r4, r5, r3
; CHECK-P10-LE-NEXT:    blr
;
; CHECK-P10-BE-LABEL: testGlob6PtrPlusVar:
; CHECK-P10-BE:       # %bb.0: # %entry
; CHECK-P10-BE-NEXT:    addis r4, r2, GlobLd6@toc@ha
; CHECK-P10-BE-NEXT:    sldi r3, r3, 2
; CHECK-P10-BE-NEXT:    addis r5, r2, GlobSt6@toc@ha
; CHECK-P10-BE-NEXT:    addi r4, r4, GlobLd6@toc@l
; CHECK-P10-BE-NEXT:    addi r5, r5, GlobSt6@toc@l
; CHECK-P10-BE-NEXT:    lwzx r4, r4, r3
; CHECK-P10-BE-NEXT:    stwx r4, r5, r3
; CHECK-P10-BE-NEXT:    blr
;
; CHECK-LABEL: testGlob6PtrPlusVar:
; CHECK:       # %bb.0: # %entry
; CHECK-NEXT:    addis r4, r2, GlobLd6@toc@ha
; CHECK-NEXT:    sldi r3, r3, 2
; CHECK-NEXT:    addis r5, r2, GlobSt6@toc@ha
; CHECK-NEXT:    addi r4, r4, GlobLd6@toc@l
; CHECK-NEXT:    addi r5, r5, GlobSt6@toc@l
; CHECK-NEXT:    lwzx r4, r4, r3
; CHECK-NEXT:    stwx r4, r5, r3
; CHECK-NEXT:    blr
entry:
  %arrayidx = getelementptr inbounds [20 x i32], [20 x i32]* @GlobLd6, i64 0, i64 %Idx
  %0 = load i32, i32* %arrayidx, align 4
  %arrayidx1 = getelementptr inbounds [20 x i32], [20 x i32]* @GlobSt6, i64 0, i64 %Idx
  store i32 %0, i32* %arrayidx1, align 4
  ret void
}

; Function Attrs: nofree norecurse nounwind uwtable willreturn
define dso_local void @testGlob7PtrPlus0() {
; CHECK-P10-LE-LABEL: testGlob7PtrPlus0:
; CHECK-P10-LE:       # %bb.0: # %entry
; CHECK-P10-LE-NEXT:    pld r3, GlobLd7@PCREL(0), 1
; CHECK-P10-LE-NEXT:    pstd r3, GlobSt7@PCREL(0), 1
; CHECK-P10-LE-NEXT:    blr
;
; CHECK-P10-BE-LABEL: testGlob7PtrPlus0:
; CHECK-P10-BE:       # %bb.0: # %entry
; CHECK-P10-BE-NEXT:    addis r3, r2, GlobLd7@toc@ha
; CHECK-P10-BE-NEXT:    addis r4, r2, GlobSt7@toc@ha
; CHECK-P10-BE-NEXT:    ld r3, GlobLd7@toc@l(r3)
; CHECK-P10-BE-NEXT:    std r3, GlobSt7@toc@l(r4)
; CHECK-P10-BE-NEXT:    blr
;
; CHECK-P9-LABEL: testGlob7PtrPlus0:
; CHECK-P9:       # %bb.0: # %entry
; CHECK-P9-NEXT:    addis r3, r2, GlobLd7@toc@ha
; CHECK-P9-NEXT:    addis r4, r2, GlobSt7@toc@ha
; CHECK-P9-NEXT:    ld r3, GlobLd7@toc@l(r3)
; CHECK-P9-NEXT:    std r3, GlobSt7@toc@l(r4)
; CHECK-P9-NEXT:    blr
;
; CHECK-P8-LABEL: testGlob7PtrPlus0:
; CHECK-P8:       # %bb.0: # %entry
; CHECK-P8-NEXT:    addis r3, r2, GlobLd7@toc@ha
; CHECK-P8-NEXT:    ld r3, GlobLd7@toc@l(r3)
; CHECK-P8-NEXT:    addis r4, r2, GlobSt7@toc@ha
; CHECK-P8-NEXT:    std r3, GlobSt7@toc@l(r4)
; CHECK-P8-NEXT:    blr
entry:
  %0 = load i64, i64* getelementptr inbounds ([20 x i64], [20 x i64]* @GlobLd7, i64 0, i64 0), align 8
  store i64 %0, i64* getelementptr inbounds ([20 x i64], [20 x i64]* @GlobSt7, i64 0, i64 0), align 8
  ret void
}

; Function Attrs: nofree norecurse nounwind uwtable willreturn
define dso_local void @testGlob7PtrPlus3() {
; CHECK-P10-LE-LABEL: testGlob7PtrPlus3:
; CHECK-P10-LE:       # %bb.0: # %entry
; CHECK-P10-LE-NEXT:    pld r3, GlobLd7@PCREL+3(0), 1
; CHECK-P10-LE-NEXT:    pstd r3, GlobSt7@PCREL+3(0), 1
; CHECK-P10-LE-NEXT:    blr
;
; CHECK-P10-BE-LABEL: testGlob7PtrPlus3:
; CHECK-P10-BE:       # %bb.0: # %entry
; CHECK-P10-BE-NEXT:    addis r3, r2, GlobLd7@toc@ha
; CHECK-P10-BE-NEXT:    addis r4, r2, GlobSt7@toc@ha
; CHECK-P10-BE-NEXT:    addi r3, r3, GlobLd7@toc@l
; CHECK-P10-BE-NEXT:    addi r4, r4, GlobSt7@toc@l
; CHECK-P10-BE-NEXT:    pld r3, 3(r3), 0
; CHECK-P10-BE-NEXT:    pstd r3, 3(r4), 0
; CHECK-P10-BE-NEXT:    blr
;
; CHECK-LABEL: testGlob7PtrPlus3:
; CHECK:       # %bb.0: # %entry
; CHECK-NEXT:    addis r3, r2, GlobLd7@toc@ha
; CHECK-NEXT:    li r4, 3
; CHECK-NEXT:    addis r5, r2, GlobSt7@toc@ha
; CHECK-NEXT:    addi r3, r3, GlobLd7@toc@l
; CHECK-NEXT:    addi r5, r5, GlobSt7@toc@l
; CHECK-NEXT:    ldx r3, r3, r4
; CHECK-NEXT:    stdx r3, r5, r4
; CHECK-NEXT:    blr
entry:
  %0 = load i64, i64* bitcast (i8* getelementptr inbounds (i8, i8* bitcast ([20 x i64]* @GlobLd7 to i8*), i64 3) to i64*), align 8
  store i64 %0, i64* bitcast (i8* getelementptr inbounds (i8, i8* bitcast ([20 x i64]* @GlobSt7 to i8*), i64 3) to i64*), align 8
  ret void
}

; Function Attrs: nofree norecurse nounwind uwtable willreturn
define dso_local void @testGlob7PtrPlus4() {
; CHECK-P10-LE-LABEL: testGlob7PtrPlus4:
; CHECK-P10-LE:       # %bb.0: # %entry
; CHECK-P10-LE-NEXT:    pld r3, GlobLd7@PCREL+4(0), 1
; CHECK-P10-LE-NEXT:    pstd r3, GlobSt7@PCREL+4(0), 1
; CHECK-P10-LE-NEXT:    blr
;
; CHECK-P10-BE-LABEL: testGlob7PtrPlus4:
; CHECK-P10-BE:       # %bb.0: # %entry
; CHECK-P10-BE-NEXT:    addis r3, r2, GlobLd7@toc@ha
; CHECK-P10-BE-NEXT:    addis r4, r2, GlobSt7@toc@ha
; CHECK-P10-BE-NEXT:    ld r3, GlobLd7@toc@l+4(r3)
; CHECK-P10-BE-NEXT:    std r3, GlobSt7@toc@l+4(r4)
; CHECK-P10-BE-NEXT:    blr
;
; CHECK-P9-LABEL: testGlob7PtrPlus4:
; CHECK-P9:       # %bb.0: # %entry
; CHECK-P9-NEXT:    addis r3, r2, GlobLd7@toc@ha
; CHECK-P9-NEXT:    addis r4, r2, GlobSt7@toc@ha
; CHECK-P9-NEXT:    ld r3, GlobLd7@toc@l+4(r3)
; CHECK-P9-NEXT:    std r3, GlobSt7@toc@l+4(r4)
; CHECK-P9-NEXT:    blr
;
; CHECK-P8-LABEL: testGlob7PtrPlus4:
; CHECK-P8:       # %bb.0: # %entry
; CHECK-P8-NEXT:    addis r3, r2, GlobLd7@toc@ha
; CHECK-P8-NEXT:    ld r3, GlobLd7@toc@l+4(r3)
; CHECK-P8-NEXT:    addis r4, r2, GlobSt7@toc@ha
; CHECK-P8-NEXT:    std r3, GlobSt7@toc@l+4(r4)
; CHECK-P8-NEXT:    blr
entry:
  %0 = load i64, i64* bitcast (i8* getelementptr inbounds (i8, i8* bitcast ([20 x i64]* @GlobLd7 to i8*), i64 4) to i64*), align 8
  store i64 %0, i64* bitcast (i8* getelementptr inbounds (i8, i8* bitcast ([20 x i64]* @GlobSt7 to i8*), i64 4) to i64*), align 8
  ret void
}

; Function Attrs: nofree norecurse nounwind uwtable willreturn
define dso_local void @testGlob7PtrPlus16() {
; CHECK-P10-LE-LABEL: testGlob7PtrPlus16:
; CHECK-P10-LE:       # %bb.0: # %entry
; CHECK-P10-LE-NEXT:    pld r3, GlobLd7@PCREL+16(0), 1
; CHECK-P10-LE-NEXT:    pstd r3, GlobSt7@PCREL+16(0), 1
; CHECK-P10-LE-NEXT:    blr
;
; CHECK-P10-BE-LABEL: testGlob7PtrPlus16:
; CHECK-P10-BE:       # %bb.0: # %entry
; CHECK-P10-BE-NEXT:    addis r3, r2, GlobLd7@toc@ha+16
; CHECK-P10-BE-NEXT:    addis r4, r2, GlobSt7@toc@ha+16
; CHECK-P10-BE-NEXT:    ld r3, GlobLd7@toc@l+16(r3)
; CHECK-P10-BE-NEXT:    std r3, GlobSt7@toc@l+16(r4)
; CHECK-P10-BE-NEXT:    blr
;
; CHECK-P9-LABEL: testGlob7PtrPlus16:
; CHECK-P9:       # %bb.0: # %entry
; CHECK-P9-NEXT:    addis r3, r2, GlobLd7@toc@ha+16
; CHECK-P9-NEXT:    addis r4, r2, GlobSt7@toc@ha+16
; CHECK-P9-NEXT:    ld r3, GlobLd7@toc@l+16(r3)
; CHECK-P9-NEXT:    std r3, GlobSt7@toc@l+16(r4)
; CHECK-P9-NEXT:    blr
;
; CHECK-P8-LABEL: testGlob7PtrPlus16:
; CHECK-P8:       # %bb.0: # %entry
; CHECK-P8-NEXT:    addis r3, r2, GlobLd7@toc@ha+16
; CHECK-P8-NEXT:    ld r3, GlobLd7@toc@l+16(r3)
; CHECK-P8-NEXT:    addis r4, r2, GlobSt7@toc@ha+16
; CHECK-P8-NEXT:    std r3, GlobSt7@toc@l+16(r4)
; CHECK-P8-NEXT:    blr
entry:
  %0 = load i64, i64* getelementptr inbounds ([20 x i64], [20 x i64]* @GlobLd7, i64 0, i64 2), align 8
  store i64 %0, i64* getelementptr inbounds ([20 x i64], [20 x i64]* @GlobSt7, i64 0, i64 2), align 8
  ret void
}

; Function Attrs: nofree norecurse nounwind uwtable willreturn
define dso_local void @testGlob7PtrPlusVar(i64 %Idx) {
; CHECK-P10-LE-LABEL: testGlob7PtrPlusVar:
; CHECK-P10-LE:       # %bb.0: # %entry
; CHECK-P10-LE-NEXT:    sldi r3, r3, 3
; CHECK-P10-LE-NEXT:    paddi r4, 0, GlobLd7@PCREL, 1
; CHECK-P10-LE-NEXT:    paddi r5, 0, GlobSt7@PCREL, 1
; CHECK-P10-LE-NEXT:    ldx r4, r4, r3
; CHECK-P10-LE-NEXT:    stdx r4, r5, r3
; CHECK-P10-LE-NEXT:    blr
;
; CHECK-P10-BE-LABEL: testGlob7PtrPlusVar:
; CHECK-P10-BE:       # %bb.0: # %entry
; CHECK-P10-BE-NEXT:    addis r4, r2, GlobLd7@toc@ha
; CHECK-P10-BE-NEXT:    sldi r3, r3, 3
; CHECK-P10-BE-NEXT:    addis r5, r2, GlobSt7@toc@ha
; CHECK-P10-BE-NEXT:    addi r4, r4, GlobLd7@toc@l
; CHECK-P10-BE-NEXT:    addi r5, r5, GlobSt7@toc@l
; CHECK-P10-BE-NEXT:    ldx r4, r4, r3
; CHECK-P10-BE-NEXT:    stdx r4, r5, r3
; CHECK-P10-BE-NEXT:    blr
;
; CHECK-LABEL: testGlob7PtrPlusVar:
; CHECK:       # %bb.0: # %entry
; CHECK-NEXT:    addis r4, r2, GlobLd7@toc@ha
; CHECK-NEXT:    sldi r3, r3, 3
; CHECK-NEXT:    addis r5, r2, GlobSt7@toc@ha
; CHECK-NEXT:    addi r4, r4, GlobLd7@toc@l
; CHECK-NEXT:    addi r5, r5, GlobSt7@toc@l
; CHECK-NEXT:    ldx r4, r4, r3
; CHECK-NEXT:    stdx r4, r5, r3
; CHECK-NEXT:    blr
entry:
  %arrayidx = getelementptr inbounds [20 x i64], [20 x i64]* @GlobLd7, i64 0, i64 %Idx
  %0 = load i64, i64* %arrayidx, align 8
  %arrayidx1 = getelementptr inbounds [20 x i64], [20 x i64]* @GlobSt7, i64 0, i64 %Idx
  store i64 %0, i64* %arrayidx1, align 8
  ret void
}

; Function Attrs: nofree norecurse nounwind uwtable willreturn
define dso_local void @testGlob8PtrPlus0() {
; CHECK-P10-LE-LABEL: testGlob8PtrPlus0:
; CHECK-P10-LE:       # %bb.0: # %entry
; CHECK-P10-LE-NEXT:    pld r3, GlobLd8@PCREL(0), 1
; CHECK-P10-LE-NEXT:    pstd r3, GlobSt8@PCREL(0), 1
; CHECK-P10-LE-NEXT:    blr
;
; CHECK-P10-BE-LABEL: testGlob8PtrPlus0:
; CHECK-P10-BE:       # %bb.0: # %entry
; CHECK-P10-BE-NEXT:    addis r3, r2, GlobLd8@toc@ha
; CHECK-P10-BE-NEXT:    addis r4, r2, GlobSt8@toc@ha
; CHECK-P10-BE-NEXT:    ld r3, GlobLd8@toc@l(r3)
; CHECK-P10-BE-NEXT:    std r3, GlobSt8@toc@l(r4)
; CHECK-P10-BE-NEXT:    blr
;
; CHECK-P9-LABEL: testGlob8PtrPlus0:
; CHECK-P9:       # %bb.0: # %entry
; CHECK-P9-NEXT:    addis r3, r2, GlobLd8@toc@ha
; CHECK-P9-NEXT:    addis r4, r2, GlobSt8@toc@ha
; CHECK-P9-NEXT:    ld r3, GlobLd8@toc@l(r3)
; CHECK-P9-NEXT:    std r3, GlobSt8@toc@l(r4)
; CHECK-P9-NEXT:    blr
;
; CHECK-P8-LABEL: testGlob8PtrPlus0:
; CHECK-P8:       # %bb.0: # %entry
; CHECK-P8-NEXT:    addis r3, r2, GlobLd8@toc@ha
; CHECK-P8-NEXT:    ld r3, GlobLd8@toc@l(r3)
; CHECK-P8-NEXT:    addis r4, r2, GlobSt8@toc@ha
; CHECK-P8-NEXT:    std r3, GlobSt8@toc@l(r4)
; CHECK-P8-NEXT:    blr
entry:
  %0 = load i64, i64* getelementptr inbounds ([20 x i64], [20 x i64]* @GlobLd8, i64 0, i64 0), align 8
  store i64 %0, i64* getelementptr inbounds ([20 x i64], [20 x i64]* @GlobSt8, i64 0, i64 0), align 8
  ret void
}

; Function Attrs: nofree norecurse nounwind uwtable willreturn
define dso_local void @testGlob8PtrPlus3() {
; CHECK-P10-LE-LABEL: testGlob8PtrPlus3:
; CHECK-P10-LE:       # %bb.0: # %entry
; CHECK-P10-LE-NEXT:    pld r3, GlobLd8@PCREL+3(0), 1
; CHECK-P10-LE-NEXT:    pstd r3, GlobSt8@PCREL+3(0), 1
; CHECK-P10-LE-NEXT:    blr
;
; CHECK-P10-BE-LABEL: testGlob8PtrPlus3:
; CHECK-P10-BE:       # %bb.0: # %entry
; CHECK-P10-BE-NEXT:    addis r3, r2, GlobLd8@toc@ha
; CHECK-P10-BE-NEXT:    addis r4, r2, GlobSt8@toc@ha
; CHECK-P10-BE-NEXT:    addi r3, r3, GlobLd8@toc@l
; CHECK-P10-BE-NEXT:    addi r4, r4, GlobSt8@toc@l
; CHECK-P10-BE-NEXT:    pld r3, 3(r3), 0
; CHECK-P10-BE-NEXT:    pstd r3, 3(r4), 0
; CHECK-P10-BE-NEXT:    blr
;
; CHECK-LABEL: testGlob8PtrPlus3:
; CHECK:       # %bb.0: # %entry
; CHECK-NEXT:    addis r3, r2, GlobLd8@toc@ha
; CHECK-NEXT:    li r4, 3
; CHECK-NEXT:    addis r5, r2, GlobSt8@toc@ha
; CHECK-NEXT:    addi r3, r3, GlobLd8@toc@l
; CHECK-NEXT:    addi r5, r5, GlobSt8@toc@l
; CHECK-NEXT:    ldx r3, r3, r4
; CHECK-NEXT:    stdx r3, r5, r4
; CHECK-NEXT:    blr
entry:
  %0 = load i64, i64* bitcast (i8* getelementptr inbounds (i8, i8* bitcast ([20 x i64]* @GlobLd8 to i8*), i64 3) to i64*), align 8
  store i64 %0, i64* bitcast (i8* getelementptr inbounds (i8, i8* bitcast ([20 x i64]* @GlobSt8 to i8*), i64 3) to i64*), align 8
  ret void
}

; Function Attrs: nofree norecurse nounwind uwtable willreturn
define dso_local void @testGlob8PtrPlus4() {
; CHECK-P10-LE-LABEL: testGlob8PtrPlus4:
; CHECK-P10-LE:       # %bb.0: # %entry
; CHECK-P10-LE-NEXT:    pld r3, GlobLd8@PCREL+4(0), 1
; CHECK-P10-LE-NEXT:    pstd r3, GlobSt8@PCREL+4(0), 1
; CHECK-P10-LE-NEXT:    blr
;
; CHECK-P10-BE-LABEL: testGlob8PtrPlus4:
; CHECK-P10-BE:       # %bb.0: # %entry
; CHECK-P10-BE-NEXT:    addis r3, r2, GlobLd8@toc@ha
; CHECK-P10-BE-NEXT:    addis r4, r2, GlobSt8@toc@ha
; CHECK-P10-BE-NEXT:    ld r3, GlobLd8@toc@l+4(r3)
; CHECK-P10-BE-NEXT:    std r3, GlobSt8@toc@l+4(r4)
; CHECK-P10-BE-NEXT:    blr
;
; CHECK-P9-LABEL: testGlob8PtrPlus4:
; CHECK-P9:       # %bb.0: # %entry
; CHECK-P9-NEXT:    addis r3, r2, GlobLd8@toc@ha
; CHECK-P9-NEXT:    addis r4, r2, GlobSt8@toc@ha
; CHECK-P9-NEXT:    ld r3, GlobLd8@toc@l+4(r3)
; CHECK-P9-NEXT:    std r3, GlobSt8@toc@l+4(r4)
; CHECK-P9-NEXT:    blr
;
; CHECK-P8-LABEL: testGlob8PtrPlus4:
; CHECK-P8:       # %bb.0: # %entry
; CHECK-P8-NEXT:    addis r3, r2, GlobLd8@toc@ha
; CHECK-P8-NEXT:    ld r3, GlobLd8@toc@l+4(r3)
; CHECK-P8-NEXT:    addis r4, r2, GlobSt8@toc@ha
; CHECK-P8-NEXT:    std r3, GlobSt8@toc@l+4(r4)
; CHECK-P8-NEXT:    blr
entry:
  %0 = load i64, i64* bitcast (i8* getelementptr inbounds (i8, i8* bitcast ([20 x i64]* @GlobLd8 to i8*), i64 4) to i64*), align 8
  store i64 %0, i64* bitcast (i8* getelementptr inbounds (i8, i8* bitcast ([20 x i64]* @GlobSt8 to i8*), i64 4) to i64*), align 8
  ret void
}

; Function Attrs: nofree norecurse nounwind uwtable willreturn
define dso_local void @testGlob8PtrPlus16() {
; CHECK-P10-LE-LABEL: testGlob8PtrPlus16:
; CHECK-P10-LE:       # %bb.0: # %entry
; CHECK-P10-LE-NEXT:    pld r3, GlobLd8@PCREL+16(0), 1
; CHECK-P10-LE-NEXT:    pstd r3, GlobSt8@PCREL+16(0), 1
; CHECK-P10-LE-NEXT:    blr
;
; CHECK-P10-BE-LABEL: testGlob8PtrPlus16:
; CHECK-P10-BE:       # %bb.0: # %entry
; CHECK-P10-BE-NEXT:    addis r3, r2, GlobLd8@toc@ha+16
; CHECK-P10-BE-NEXT:    addis r4, r2, GlobSt8@toc@ha+16
; CHECK-P10-BE-NEXT:    ld r3, GlobLd8@toc@l+16(r3)
; CHECK-P10-BE-NEXT:    std r3, GlobSt8@toc@l+16(r4)
; CHECK-P10-BE-NEXT:    blr
;
; CHECK-P9-LABEL: testGlob8PtrPlus16:
; CHECK-P9:       # %bb.0: # %entry
; CHECK-P9-NEXT:    addis r3, r2, GlobLd8@toc@ha+16
; CHECK-P9-NEXT:    addis r4, r2, GlobSt8@toc@ha+16
; CHECK-P9-NEXT:    ld r3, GlobLd8@toc@l+16(r3)
; CHECK-P9-NEXT:    std r3, GlobSt8@toc@l+16(r4)
; CHECK-P9-NEXT:    blr
;
; CHECK-P8-LABEL: testGlob8PtrPlus16:
; CHECK-P8:       # %bb.0: # %entry
; CHECK-P8-NEXT:    addis r3, r2, GlobLd8@toc@ha+16
; CHECK-P8-NEXT:    ld r3, GlobLd8@toc@l+16(r3)
; CHECK-P8-NEXT:    addis r4, r2, GlobSt8@toc@ha+16
; CHECK-P8-NEXT:    std r3, GlobSt8@toc@l+16(r4)
; CHECK-P8-NEXT:    blr
entry:
  %0 = load i64, i64* getelementptr inbounds ([20 x i64], [20 x i64]* @GlobLd8, i64 0, i64 2), align 8
  store i64 %0, i64* getelementptr inbounds ([20 x i64], [20 x i64]* @GlobSt8, i64 0, i64 2), align 8
  ret void
}

; Function Attrs: nofree norecurse nounwind uwtable willreturn
define dso_local void @testGlob8PtrPlusVar(i64 %Idx) {
; CHECK-P10-LE-LABEL: testGlob8PtrPlusVar:
; CHECK-P10-LE:       # %bb.0: # %entry
; CHECK-P10-LE-NEXT:    sldi r3, r3, 3
; CHECK-P10-LE-NEXT:    paddi r4, 0, GlobLd8@PCREL, 1
; CHECK-P10-LE-NEXT:    paddi r5, 0, GlobSt8@PCREL, 1
; CHECK-P10-LE-NEXT:    ldx r4, r4, r3
; CHECK-P10-LE-NEXT:    stdx r4, r5, r3
; CHECK-P10-LE-NEXT:    blr
;
; CHECK-P10-BE-LABEL: testGlob8PtrPlusVar:
; CHECK-P10-BE:       # %bb.0: # %entry
; CHECK-P10-BE-NEXT:    addis r4, r2, GlobLd8@toc@ha
; CHECK-P10-BE-NEXT:    sldi r3, r3, 3
; CHECK-P10-BE-NEXT:    addis r5, r2, GlobSt8@toc@ha
; CHECK-P10-BE-NEXT:    addi r4, r4, GlobLd8@toc@l
; CHECK-P10-BE-NEXT:    addi r5, r5, GlobSt8@toc@l
; CHECK-P10-BE-NEXT:    ldx r4, r4, r3
; CHECK-P10-BE-NEXT:    stdx r4, r5, r3
; CHECK-P10-BE-NEXT:    blr
;
; CHECK-LABEL: testGlob8PtrPlusVar:
; CHECK:       # %bb.0: # %entry
; CHECK-NEXT:    addis r4, r2, GlobLd8@toc@ha
; CHECK-NEXT:    sldi r3, r3, 3
; CHECK-NEXT:    addis r5, r2, GlobSt8@toc@ha
; CHECK-NEXT:    addi r4, r4, GlobLd8@toc@l
; CHECK-NEXT:    addi r5, r5, GlobSt8@toc@l
; CHECK-NEXT:    ldx r4, r4, r3
; CHECK-NEXT:    stdx r4, r5, r3
; CHECK-NEXT:    blr
entry:
  %arrayidx = getelementptr inbounds [20 x i64], [20 x i64]* @GlobLd8, i64 0, i64 %Idx
  %0 = load i64, i64* %arrayidx, align 8
  %arrayidx1 = getelementptr inbounds [20 x i64], [20 x i64]* @GlobSt8, i64 0, i64 %Idx
  store i64 %0, i64* %arrayidx1, align 8
  ret void
}

; Function Attrs: nofree norecurse nounwind uwtable willreturn
define dso_local void @testGlob9PtrPlus0() {
; CHECK-P10-LE-LABEL: testGlob9PtrPlus0:
; CHECK-P10-LE:       # %bb.0: # %entry
; CHECK-P10-LE-NEXT:    plwz r3, GlobLd9@PCREL(0), 1
; CHECK-P10-LE-NEXT:    pstw r3, GlobSt9@PCREL(0), 1
; CHECK-P10-LE-NEXT:    blr
;
; CHECK-P10-BE-LABEL: testGlob9PtrPlus0:
; CHECK-P10-BE:       # %bb.0: # %entry
; CHECK-P10-BE-NEXT:    addis r3, r2, GlobLd9@toc@ha
; CHECK-P10-BE-NEXT:    addis r4, r2, GlobSt9@toc@ha
; CHECK-P10-BE-NEXT:    lwz r3, GlobLd9@toc@l(r3)
; CHECK-P10-BE-NEXT:    stw r3, GlobSt9@toc@l(r4)
; CHECK-P10-BE-NEXT:    blr
;
; CHECK-LABEL: testGlob9PtrPlus0:
; CHECK:       # %bb.0: # %entry
; CHECK-NEXT:    addis r3, r2, GlobLd9@toc@ha
; CHECK-NEXT:    addis r4, r2, GlobSt9@toc@ha
; CHECK-NEXT:    lwz r3, GlobLd9@toc@l(r3)
; CHECK-NEXT:    stw r3, GlobSt9@toc@l(r4)
; CHECK-NEXT:    blr
entry:
  %0 = load float, float* getelementptr inbounds ([20 x float], [20 x float]* @GlobLd9, i64 0, i64 0), align 4
  store float %0, float* getelementptr inbounds ([20 x float], [20 x float]* @GlobSt9, i64 0, i64 0), align 4
  ret void
}

; Function Attrs: nofree norecurse nounwind uwtable willreturn
define dso_local void @testGlob9PtrPlus3() {
; CHECK-P10-LE-LABEL: testGlob9PtrPlus3:
; CHECK-P10-LE:       # %bb.0: # %entry
; CHECK-P10-LE-NEXT:    plwz r3, GlobLd9@PCREL+3(0), 1
; CHECK-P10-LE-NEXT:    pstw r3, GlobSt9@PCREL+3(0), 1
; CHECK-P10-LE-NEXT:    blr
;
; CHECK-P10-BE-LABEL: testGlob9PtrPlus3:
; CHECK-P10-BE:       # %bb.0: # %entry
; CHECK-P10-BE-NEXT:    addis r3, r2, GlobLd9@toc@ha
; CHECK-P10-BE-NEXT:    addis r4, r2, GlobSt9@toc@ha
; CHECK-P10-BE-NEXT:    lwz r3, GlobLd9@toc@l+3(r3)
; CHECK-P10-BE-NEXT:    stw r3, GlobSt9@toc@l+3(r4)
; CHECK-P10-BE-NEXT:    blr
;
; CHECK-LABEL: testGlob9PtrPlus3:
; CHECK:       # %bb.0: # %entry
; CHECK-NEXT:    addis r3, r2, GlobLd9@toc@ha
; CHECK-NEXT:    addis r4, r2, GlobSt9@toc@ha
; CHECK-NEXT:    lwz r3, GlobLd9@toc@l+3(r3)
; CHECK-NEXT:    stw r3, GlobSt9@toc@l+3(r4)
; CHECK-NEXT:    blr
entry:
  %0 = load float, float* bitcast (i8* getelementptr inbounds (i8, i8* bitcast ([20 x float]* @GlobLd9 to i8*), i64 3) to float*), align 4
  store float %0, float* bitcast (i8* getelementptr inbounds (i8, i8* bitcast ([20 x float]* @GlobSt9 to i8*), i64 3) to float*), align 4
  ret void
}

; Function Attrs: nofree norecurse nounwind uwtable willreturn
define dso_local void @testGlob9PtrPlus4() {
; CHECK-P10-LE-LABEL: testGlob9PtrPlus4:
; CHECK-P10-LE:       # %bb.0: # %entry
; CHECK-P10-LE-NEXT:    plwz r3, GlobLd9@PCREL+4(0), 1
; CHECK-P10-LE-NEXT:    pstw r3, GlobSt9@PCREL+4(0), 1
; CHECK-P10-LE-NEXT:    blr
;
; CHECK-P10-BE-LABEL: testGlob9PtrPlus4:
; CHECK-P10-BE:       # %bb.0: # %entry
; CHECK-P10-BE-NEXT:    addis r3, r2, GlobLd9@toc@ha+4
; CHECK-P10-BE-NEXT:    addis r4, r2, GlobSt9@toc@ha+4
; CHECK-P10-BE-NEXT:    lwz r3, GlobLd9@toc@l+4(r3)
; CHECK-P10-BE-NEXT:    stw r3, GlobSt9@toc@l+4(r4)
; CHECK-P10-BE-NEXT:    blr
;
; CHECK-LABEL: testGlob9PtrPlus4:
; CHECK:       # %bb.0: # %entry
; CHECK-NEXT:    addis r3, r2, GlobLd9@toc@ha+4
; CHECK-NEXT:    addis r4, r2, GlobSt9@toc@ha+4
; CHECK-NEXT:    lwz r3, GlobLd9@toc@l+4(r3)
; CHECK-NEXT:    stw r3, GlobSt9@toc@l+4(r4)
; CHECK-NEXT:    blr
entry:
  %0 = load float, float* getelementptr inbounds ([20 x float], [20 x float]* @GlobLd9, i64 0, i64 1), align 4
  store float %0, float* getelementptr inbounds ([20 x float], [20 x float]* @GlobSt9, i64 0, i64 1), align 4
  ret void
}

; Function Attrs: nofree norecurse nounwind uwtable willreturn
define dso_local void @testGlob9PtrPlus16() {
; CHECK-P10-LE-LABEL: testGlob9PtrPlus16:
; CHECK-P10-LE:       # %bb.0: # %entry
; CHECK-P10-LE-NEXT:    plwz r3, GlobLd9@PCREL+16(0), 1
; CHECK-P10-LE-NEXT:    pstw r3, GlobSt9@PCREL+16(0), 1
; CHECK-P10-LE-NEXT:    blr
;
; CHECK-P10-BE-LABEL: testGlob9PtrPlus16:
; CHECK-P10-BE:       # %bb.0: # %entry
; CHECK-P10-BE-NEXT:    addis r3, r2, GlobLd9@toc@ha+16
; CHECK-P10-BE-NEXT:    addis r4, r2, GlobSt9@toc@ha+16
; CHECK-P10-BE-NEXT:    lwz r3, GlobLd9@toc@l+16(r3)
; CHECK-P10-BE-NEXT:    stw r3, GlobSt9@toc@l+16(r4)
; CHECK-P10-BE-NEXT:    blr
;
; CHECK-LABEL: testGlob9PtrPlus16:
; CHECK:       # %bb.0: # %entry
; CHECK-NEXT:    addis r3, r2, GlobLd9@toc@ha+16
; CHECK-NEXT:    addis r4, r2, GlobSt9@toc@ha+16
; CHECK-NEXT:    lwz r3, GlobLd9@toc@l+16(r3)
; CHECK-NEXT:    stw r3, GlobSt9@toc@l+16(r4)
; CHECK-NEXT:    blr
entry:
  %0 = load float, float* getelementptr inbounds ([20 x float], [20 x float]* @GlobLd9, i64 0, i64 4), align 4
  store float %0, float* getelementptr inbounds ([20 x float], [20 x float]* @GlobSt9, i64 0, i64 4), align 4
  ret void
}

; Function Attrs: nofree norecurse nounwind uwtable willreturn
define dso_local void @testGlob9PtrPlusVar(i64 %Idx) {
; CHECK-P10-LE-LABEL: testGlob9PtrPlusVar:
; CHECK-P10-LE:       # %bb.0: # %entry
; CHECK-P10-LE-NEXT:    sldi r3, r3, 2
; CHECK-P10-LE-NEXT:    paddi r4, 0, GlobLd9@PCREL, 1
; CHECK-P10-LE-NEXT:    paddi r5, 0, GlobSt9@PCREL, 1
; CHECK-P10-LE-NEXT:    lwzx r4, r4, r3
; CHECK-P10-LE-NEXT:    stwx r4, r5, r3
; CHECK-P10-LE-NEXT:    blr
;
; CHECK-P10-BE-LABEL: testGlob9PtrPlusVar:
; CHECK-P10-BE:       # %bb.0: # %entry
; CHECK-P10-BE-NEXT:    addis r4, r2, GlobLd9@toc@ha
; CHECK-P10-BE-NEXT:    sldi r3, r3, 2
; CHECK-P10-BE-NEXT:    addis r5, r2, GlobSt9@toc@ha
; CHECK-P10-BE-NEXT:    addi r4, r4, GlobLd9@toc@l
; CHECK-P10-BE-NEXT:    addi r5, r5, GlobSt9@toc@l
; CHECK-P10-BE-NEXT:    lwzx r4, r4, r3
; CHECK-P10-BE-NEXT:    stwx r4, r5, r3
; CHECK-P10-BE-NEXT:    blr
;
; CHECK-LABEL: testGlob9PtrPlusVar:
; CHECK:       # %bb.0: # %entry
; CHECK-NEXT:    addis r4, r2, GlobLd9@toc@ha
; CHECK-NEXT:    sldi r3, r3, 2
; CHECK-NEXT:    addis r5, r2, GlobSt9@toc@ha
; CHECK-NEXT:    addi r4, r4, GlobLd9@toc@l
; CHECK-NEXT:    addi r5, r5, GlobSt9@toc@l
; CHECK-NEXT:    lwzx r4, r4, r3
; CHECK-NEXT:    stwx r4, r5, r3
; CHECK-NEXT:    blr
entry:
  %arrayidx = getelementptr inbounds [20 x float], [20 x float]* @GlobLd9, i64 0, i64 %Idx
  %0 = load float, float* %arrayidx, align 4
  %arrayidx1 = getelementptr inbounds [20 x float], [20 x float]* @GlobSt9, i64 0, i64 %Idx
  store float %0, float* %arrayidx1, align 4
  ret void
}

; Function Attrs: nofree norecurse nounwind uwtable willreturn
define dso_local void @testGlob10PtrPlus0() {
; CHECK-P10-LE-LABEL: testGlob10PtrPlus0:
; CHECK-P10-LE:       # %bb.0: # %entry
; CHECK-P10-LE-NEXT:    pld r3, GlobLd10@PCREL(0), 1
; CHECK-P10-LE-NEXT:    pstd r3, GlobSt10@PCREL(0), 1
; CHECK-P10-LE-NEXT:    blr
;
; CHECK-P10-BE-LABEL: testGlob10PtrPlus0:
; CHECK-P10-BE:       # %bb.0: # %entry
; CHECK-P10-BE-NEXT:    addis r3, r2, GlobLd10@toc@ha
; CHECK-P10-BE-NEXT:    addis r4, r2, GlobSt10@toc@ha
; CHECK-P10-BE-NEXT:    ld r3, GlobLd10@toc@l(r3)
; CHECK-P10-BE-NEXT:    std r3, GlobSt10@toc@l(r4)
; CHECK-P10-BE-NEXT:    blr
;
; CHECK-P9-LABEL: testGlob10PtrPlus0:
; CHECK-P9:       # %bb.0: # %entry
; CHECK-P9-NEXT:    addis r3, r2, GlobLd10@toc@ha
; CHECK-P9-NEXT:    addis r4, r2, GlobSt10@toc@ha
; CHECK-P9-NEXT:    ld r3, GlobLd10@toc@l(r3)
; CHECK-P9-NEXT:    std r3, GlobSt10@toc@l(r4)
; CHECK-P9-NEXT:    blr
;
; CHECK-P8-LABEL: testGlob10PtrPlus0:
; CHECK-P8:       # %bb.0: # %entry
; CHECK-P8-NEXT:    addis r3, r2, GlobLd10@toc@ha
; CHECK-P8-NEXT:    ld r3, GlobLd10@toc@l(r3)
; CHECK-P8-NEXT:    addis r4, r2, GlobSt10@toc@ha
; CHECK-P8-NEXT:    std r3, GlobSt10@toc@l(r4)
; CHECK-P8-NEXT:    blr
entry:
  %0 = load double, double* getelementptr inbounds ([20 x double], [20 x double]* @GlobLd10, i64 0, i64 0), align 8
  store double %0, double* getelementptr inbounds ([20 x double], [20 x double]* @GlobSt10, i64 0, i64 0), align 8
  ret void
}

; Function Attrs: nofree norecurse nounwind uwtable willreturn
define dso_local void @testGlob10PtrPlus3() {
; CHECK-P10-LE-LABEL: testGlob10PtrPlus3:
; CHECK-P10-LE:       # %bb.0: # %entry
; CHECK-P10-LE-NEXT:    pld r3, GlobLd10@PCREL+3(0), 1
; CHECK-P10-LE-NEXT:    pstd r3, GlobSt10@PCREL+3(0), 1
; CHECK-P10-LE-NEXT:    blr
;
; CHECK-P10-BE-LABEL: testGlob10PtrPlus3:
; CHECK-P10-BE:       # %bb.0: # %entry
; CHECK-P10-BE-NEXT:    addis r3, r2, GlobLd10@toc@ha
; CHECK-P10-BE-NEXT:    addis r4, r2, GlobSt10@toc@ha
; CHECK-P10-BE-NEXT:    addi r3, r3, GlobLd10@toc@l
; CHECK-P10-BE-NEXT:    addi r4, r4, GlobSt10@toc@l
; CHECK-P10-BE-NEXT:    pld r3, 3(r3), 0
; CHECK-P10-BE-NEXT:    pstd r3, 3(r4), 0
; CHECK-P10-BE-NEXT:    blr
;
; CHECK-LABEL: testGlob10PtrPlus3:
; CHECK:       # %bb.0: # %entry
; CHECK-NEXT:    addis r3, r2, GlobLd10@toc@ha
; CHECK-NEXT:    li r4, 3
; CHECK-NEXT:    addis r5, r2, GlobSt10@toc@ha
; CHECK-NEXT:    addi r3, r3, GlobLd10@toc@l
; CHECK-NEXT:    addi r5, r5, GlobSt10@toc@l
; CHECK-NEXT:    ldx r3, r3, r4
; CHECK-NEXT:    stdx r3, r5, r4
; CHECK-NEXT:    blr
entry:
  %0 = load double, double* bitcast (i8* getelementptr inbounds (i8, i8* bitcast ([20 x double]* @GlobLd10 to i8*), i64 3) to double*), align 8
  store double %0, double* bitcast (i8* getelementptr inbounds (i8, i8* bitcast ([20 x double]* @GlobSt10 to i8*), i64 3) to double*), align 8
  ret void
}

; Function Attrs: nofree norecurse nounwind uwtable willreturn
define dso_local void @testGlob10PtrPlus4() {
; CHECK-P10-LE-LABEL: testGlob10PtrPlus4:
; CHECK-P10-LE:       # %bb.0: # %entry
; CHECK-P10-LE-NEXT:    pld r3, GlobLd10@PCREL+4(0), 1
; CHECK-P10-LE-NEXT:    pstd r3, GlobSt10@PCREL+4(0), 1
; CHECK-P10-LE-NEXT:    blr
;
; CHECK-P10-BE-LABEL: testGlob10PtrPlus4:
; CHECK-P10-BE:       # %bb.0: # %entry
; CHECK-P10-BE-NEXT:    addis r3, r2, GlobLd10@toc@ha
; CHECK-P10-BE-NEXT:    addis r4, r2, GlobSt10@toc@ha
; CHECK-P10-BE-NEXT:    ld r3, GlobLd10@toc@l+4(r3)
; CHECK-P10-BE-NEXT:    std r3, GlobSt10@toc@l+4(r4)
; CHECK-P10-BE-NEXT:    blr
;
; CHECK-P9-LABEL: testGlob10PtrPlus4:
; CHECK-P9:       # %bb.0: # %entry
; CHECK-P9-NEXT:    addis r3, r2, GlobLd10@toc@ha
; CHECK-P9-NEXT:    addis r4, r2, GlobSt10@toc@ha
; CHECK-P9-NEXT:    ld r3, GlobLd10@toc@l+4(r3)
; CHECK-P9-NEXT:    std r3, GlobSt10@toc@l+4(r4)
; CHECK-P9-NEXT:    blr
;
; CHECK-P8-LABEL: testGlob10PtrPlus4:
; CHECK-P8:       # %bb.0: # %entry
; CHECK-P8-NEXT:    addis r3, r2, GlobLd10@toc@ha
; CHECK-P8-NEXT:    ld r3, GlobLd10@toc@l+4(r3)
; CHECK-P8-NEXT:    addis r4, r2, GlobSt10@toc@ha
; CHECK-P8-NEXT:    std r3, GlobSt10@toc@l+4(r4)
; CHECK-P8-NEXT:    blr
entry:
  %0 = load double, double* bitcast (i8* getelementptr inbounds (i8, i8* bitcast ([20 x double]* @GlobLd10 to i8*), i64 4) to double*), align 8
  store double %0, double* bitcast (i8* getelementptr inbounds (i8, i8* bitcast ([20 x double]* @GlobSt10 to i8*), i64 4) to double*), align 8
  ret void
}

; Function Attrs: nofree norecurse nounwind uwtable willreturn
define dso_local void @testGlob10PtrPlus16() {
; CHECK-P10-LE-LABEL: testGlob10PtrPlus16:
; CHECK-P10-LE:       # %bb.0: # %entry
; CHECK-P10-LE-NEXT:    pld r3, GlobLd10@PCREL+16(0), 1
; CHECK-P10-LE-NEXT:    pstd r3, GlobSt10@PCREL+16(0), 1
; CHECK-P10-LE-NEXT:    blr
;
; CHECK-P10-BE-LABEL: testGlob10PtrPlus16:
; CHECK-P10-BE:       # %bb.0: # %entry
; CHECK-P10-BE-NEXT:    addis r3, r2, GlobLd10@toc@ha+16
; CHECK-P10-BE-NEXT:    addis r4, r2, GlobSt10@toc@ha+16
; CHECK-P10-BE-NEXT:    ld r3, GlobLd10@toc@l+16(r3)
; CHECK-P10-BE-NEXT:    std r3, GlobSt10@toc@l+16(r4)
; CHECK-P10-BE-NEXT:    blr
;
; CHECK-P9-LABEL: testGlob10PtrPlus16:
; CHECK-P9:       # %bb.0: # %entry
; CHECK-P9-NEXT:    addis r3, r2, GlobLd10@toc@ha+16
; CHECK-P9-NEXT:    addis r4, r2, GlobSt10@toc@ha+16
; CHECK-P9-NEXT:    ld r3, GlobLd10@toc@l+16(r3)
; CHECK-P9-NEXT:    std r3, GlobSt10@toc@l+16(r4)
; CHECK-P9-NEXT:    blr
;
; CHECK-P8-LABEL: testGlob10PtrPlus16:
; CHECK-P8:       # %bb.0: # %entry
; CHECK-P8-NEXT:    addis r3, r2, GlobLd10@toc@ha+16
; CHECK-P8-NEXT:    ld r3, GlobLd10@toc@l+16(r3)
; CHECK-P8-NEXT:    addis r4, r2, GlobSt10@toc@ha+16
; CHECK-P8-NEXT:    std r3, GlobSt10@toc@l+16(r4)
; CHECK-P8-NEXT:    blr
entry:
  %0 = load double, double* getelementptr inbounds ([20 x double], [20 x double]* @GlobLd10, i64 0, i64 2), align 8
  store double %0, double* getelementptr inbounds ([20 x double], [20 x double]* @GlobSt10, i64 0, i64 2), align 8
  ret void
}

; Function Attrs: nofree norecurse nounwind uwtable willreturn
define dso_local void @testGlob10PtrPlusVar(i64 %Idx) {
; CHECK-P10-LE-LABEL: testGlob10PtrPlusVar:
; CHECK-P10-LE:       # %bb.0: # %entry
; CHECK-P10-LE-NEXT:    sldi r3, r3, 3
; CHECK-P10-LE-NEXT:    paddi r4, 0, GlobLd10@PCREL, 1
; CHECK-P10-LE-NEXT:    paddi r5, 0, GlobSt10@PCREL, 1
; CHECK-P10-LE-NEXT:    ldx r4, r4, r3
; CHECK-P10-LE-NEXT:    stdx r4, r5, r3
; CHECK-P10-LE-NEXT:    blr
;
; CHECK-P10-BE-LABEL: testGlob10PtrPlusVar:
; CHECK-P10-BE:       # %bb.0: # %entry
; CHECK-P10-BE-NEXT:    addis r4, r2, GlobLd10@toc@ha
; CHECK-P10-BE-NEXT:    sldi r3, r3, 3
; CHECK-P10-BE-NEXT:    addis r5, r2, GlobSt10@toc@ha
; CHECK-P10-BE-NEXT:    addi r4, r4, GlobLd10@toc@l
; CHECK-P10-BE-NEXT:    addi r5, r5, GlobSt10@toc@l
; CHECK-P10-BE-NEXT:    ldx r4, r4, r3
; CHECK-P10-BE-NEXT:    stdx r4, r5, r3
; CHECK-P10-BE-NEXT:    blr
;
; CHECK-LABEL: testGlob10PtrPlusVar:
; CHECK:       # %bb.0: # %entry
; CHECK-NEXT:    addis r4, r2, GlobLd10@toc@ha
; CHECK-NEXT:    sldi r3, r3, 3
; CHECK-NEXT:    addis r5, r2, GlobSt10@toc@ha
; CHECK-NEXT:    addi r4, r4, GlobLd10@toc@l
; CHECK-NEXT:    addi r5, r5, GlobSt10@toc@l
; CHECK-NEXT:    ldx r4, r4, r3
; CHECK-NEXT:    stdx r4, r5, r3
; CHECK-NEXT:    blr
entry:
  %arrayidx = getelementptr inbounds [20 x double], [20 x double]* @GlobLd10, i64 0, i64 %Idx
  %0 = load double, double* %arrayidx, align 8
  %arrayidx1 = getelementptr inbounds [20 x double], [20 x double]* @GlobSt10, i64 0, i64 %Idx
  store double %0, double* %arrayidx1, align 8
  ret void
}

; Function Attrs: nofree norecurse nounwind uwtable willreturn
define dso_local void @testGlob11PtrPlus0() {
; CHECK-P10-LE-LABEL: testGlob11PtrPlus0:
; CHECK-P10-LE:       # %bb.0: # %entry
; CHECK-P10-LE-NEXT:    plxv vs0, GlobLd11@PCREL(0), 1
; CHECK-P10-LE-NEXT:    pstxv vs0, GlobSt11@PCREL(0), 1
; CHECK-P10-LE-NEXT:    blr
;
; CHECK-P10-BE-LABEL: testGlob11PtrPlus0:
; CHECK-P10-BE:       # %bb.0: # %entry
; CHECK-P10-BE-NEXT:    addis r3, r2, GlobLd11@toc@ha
; CHECK-P10-BE-NEXT:    addi r3, r3, GlobLd11@toc@l
; CHECK-P10-BE-NEXT:    lxv vs0, 0(r3)
; CHECK-P10-BE-NEXT:    addis r3, r2, GlobSt11@toc@ha
; CHECK-P10-BE-NEXT:    addi r3, r3, GlobSt11@toc@l
; CHECK-P10-BE-NEXT:    stxv vs0, 0(r3)
; CHECK-P10-BE-NEXT:    blr
;
; CHECK-P9-LABEL: testGlob11PtrPlus0:
; CHECK-P9:       # %bb.0: # %entry
; CHECK-P9-NEXT:    addis r3, r2, GlobLd11@toc@ha
; CHECK-P9-NEXT:    addi r3, r3, GlobLd11@toc@l
; CHECK-P9-NEXT:    lxv vs0, 0(r3)
; CHECK-P9-NEXT:    addis r3, r2, GlobSt11@toc@ha
; CHECK-P9-NEXT:    addi r3, r3, GlobSt11@toc@l
; CHECK-P9-NEXT:    stxv vs0, 0(r3)
; CHECK-P9-NEXT:    blr
;
; CHECK-P8-LE-LABEL: testGlob11PtrPlus0:
; CHECK-P8-LE:       # %bb.0: # %entry
; CHECK-P8-LE-NEXT:    addis r3, r2, GlobLd11@toc@ha
; CHECK-P8-LE-NEXT:    addi r3, r3, GlobLd11@toc@l
; CHECK-P8-LE-NEXT:    lvx v2, 0, r3
; CHECK-P8-LE-NEXT:    addis r3, r2, GlobSt11@toc@ha
; CHECK-P8-LE-NEXT:    addi r3, r3, GlobSt11@toc@l
; CHECK-P8-LE-NEXT:    stvx v2, 0, r3
; CHECK-P8-LE-NEXT:    blr
;
; CHECK-P8-BE-LABEL: testGlob11PtrPlus0:
; CHECK-P8-BE:       # %bb.0: # %entry
; CHECK-P8-BE-NEXT:    addis r3, r2, GlobLd11@toc@ha
; CHECK-P8-BE-NEXT:    addi r3, r3, GlobLd11@toc@l
; CHECK-P8-BE-NEXT:    lxvw4x vs0, 0, r3
; CHECK-P8-BE-NEXT:    addis r3, r2, GlobSt11@toc@ha
; CHECK-P8-BE-NEXT:    addi r3, r3, GlobSt11@toc@l
; CHECK-P8-BE-NEXT:    stxvw4x vs0, 0, r3
; CHECK-P8-BE-NEXT:    blr
entry:
  %0 = load <16 x i8>, <16 x i8>* getelementptr inbounds ([20 x <16 x i8>], [20 x <16 x i8>]* @GlobLd11, i64 0, i64 0), align 16
  store <16 x i8> %0, <16 x i8>* getelementptr inbounds ([20 x <16 x i8>], [20 x <16 x i8>]* @GlobSt11, i64 0, i64 0), align 16
  ret void
}

; Function Attrs: nofree norecurse nounwind uwtable willreturn
define dso_local void @testGlob11PtrPlus3() {
; CHECK-P10-LE-LABEL: testGlob11PtrPlus3:
; CHECK-P10-LE:       # %bb.0: # %entry
; CHECK-P10-LE-NEXT:    plxv vs0, GlobLd11@PCREL+3(0), 1
; CHECK-P10-LE-NEXT:    pstxv vs0, GlobSt11@PCREL+3(0), 1
; CHECK-P10-LE-NEXT:    blr
;
; CHECK-P10-BE-LABEL: testGlob11PtrPlus3:
; CHECK-P10-BE:       # %bb.0: # %entry
; CHECK-P10-BE-NEXT:    addis r3, r2, GlobLd11@toc@ha
; CHECK-P10-BE-NEXT:    addi r3, r3, GlobLd11@toc@l
; CHECK-P10-BE-NEXT:    plxv vs0, 3(r3), 0
; CHECK-P10-BE-NEXT:    addis r3, r2, GlobSt11@toc@ha
; CHECK-P10-BE-NEXT:    addi r3, r3, GlobSt11@toc@l
; CHECK-P10-BE-NEXT:    pstxv vs0, 3(r3), 0
; CHECK-P10-BE-NEXT:    blr
;
; CHECK-P9-LABEL: testGlob11PtrPlus3:
; CHECK-P9:       # %bb.0: # %entry
; CHECK-P9-NEXT:    addis r3, r2, GlobLd11@toc@ha
; CHECK-P9-NEXT:    li r4, 3
; CHECK-P9-NEXT:    addi r3, r3, GlobLd11@toc@l
; CHECK-P9-NEXT:    lxvx vs0, r3, r4
; CHECK-P9-NEXT:    addis r3, r2, GlobSt11@toc@ha
; CHECK-P9-NEXT:    addi r3, r3, GlobSt11@toc@l
; CHECK-P9-NEXT:    stxvx vs0, r3, r4
; CHECK-P9-NEXT:    blr
;
; CHECK-P8-LE-LABEL: testGlob11PtrPlus3:
; CHECK-P8-LE:       # %bb.0: # %entry
; CHECK-P8-LE-NEXT:    addis r3, r2, GlobLd11@toc@ha
; CHECK-P8-LE-NEXT:    li r4, 3
; CHECK-P8-LE-NEXT:    addi r3, r3, GlobLd11@toc@l
; CHECK-P8-LE-NEXT:    lvx v2, r3, r4
; CHECK-P8-LE-NEXT:    addis r3, r2, GlobSt11@toc@ha
; CHECK-P8-LE-NEXT:    addi r3, r3, GlobSt11@toc@l
; CHECK-P8-LE-NEXT:    stvx v2, r3, r4
; CHECK-P8-LE-NEXT:    blr
;
; CHECK-P8-BE-LABEL: testGlob11PtrPlus3:
; CHECK-P8-BE:       # %bb.0: # %entry
; CHECK-P8-BE-NEXT:    addis r3, r2, GlobLd11@toc@ha
; CHECK-P8-BE-NEXT:    li r4, 3
; CHECK-P8-BE-NEXT:    addi r3, r3, GlobLd11@toc@l
; CHECK-P8-BE-NEXT:    lxvw4x vs0, r3, r4
; CHECK-P8-BE-NEXT:    addis r3, r2, GlobSt11@toc@ha
; CHECK-P8-BE-NEXT:    addi r3, r3, GlobSt11@toc@l
; CHECK-P8-BE-NEXT:    stxvw4x vs0, r3, r4
; CHECK-P8-BE-NEXT:    blr
entry:
  %0 = load <16 x i8>, <16 x i8>* bitcast (i8* getelementptr ([20 x <16 x i8>], [20 x <16 x i8>]* @GlobLd11, i64 0, i64 0, i64 3) to <16 x i8>*), align 16
  store <16 x i8> %0, <16 x i8>* bitcast (i8* getelementptr ([20 x <16 x i8>], [20 x <16 x i8>]* @GlobSt11, i64 0, i64 0, i64 3) to <16 x i8>*), align 16
  ret void
}

; Function Attrs: nofree norecurse nounwind uwtable willreturn
define dso_local void @testGlob11PtrPlus4() {
; CHECK-P10-LE-LABEL: testGlob11PtrPlus4:
; CHECK-P10-LE:       # %bb.0: # %entry
; CHECK-P10-LE-NEXT:    plxv vs0, GlobLd11@PCREL+4(0), 1
; CHECK-P10-LE-NEXT:    pstxv vs0, GlobSt11@PCREL+4(0), 1
; CHECK-P10-LE-NEXT:    blr
;
; CHECK-P10-BE-LABEL: testGlob11PtrPlus4:
; CHECK-P10-BE:       # %bb.0: # %entry
; CHECK-P10-BE-NEXT:    addis r3, r2, GlobLd11@toc@ha
; CHECK-P10-BE-NEXT:    addi r3, r3, GlobLd11@toc@l
; CHECK-P10-BE-NEXT:    plxv vs0, 4(r3), 0
; CHECK-P10-BE-NEXT:    addis r3, r2, GlobSt11@toc@ha
; CHECK-P10-BE-NEXT:    addi r3, r3, GlobSt11@toc@l
; CHECK-P10-BE-NEXT:    pstxv vs0, 4(r3), 0
; CHECK-P10-BE-NEXT:    blr
;
; CHECK-P9-LABEL: testGlob11PtrPlus4:
; CHECK-P9:       # %bb.0: # %entry
; CHECK-P9-NEXT:    addis r3, r2, GlobLd11@toc@ha
; CHECK-P9-NEXT:    li r4, 4
; CHECK-P9-NEXT:    addi r3, r3, GlobLd11@toc@l
; CHECK-P9-NEXT:    lxvx vs0, r3, r4
; CHECK-P9-NEXT:    addis r3, r2, GlobSt11@toc@ha
; CHECK-P9-NEXT:    addi r3, r3, GlobSt11@toc@l
; CHECK-P9-NEXT:    stxvx vs0, r3, r4
; CHECK-P9-NEXT:    blr
;
; CHECK-P8-LE-LABEL: testGlob11PtrPlus4:
; CHECK-P8-LE:       # %bb.0: # %entry
; CHECK-P8-LE-NEXT:    addis r3, r2, GlobLd11@toc@ha
; CHECK-P8-LE-NEXT:    li r4, 4
; CHECK-P8-LE-NEXT:    addi r3, r3, GlobLd11@toc@l
; CHECK-P8-LE-NEXT:    lvx v2, r3, r4
; CHECK-P8-LE-NEXT:    addis r3, r2, GlobSt11@toc@ha
; CHECK-P8-LE-NEXT:    addi r3, r3, GlobSt11@toc@l
; CHECK-P8-LE-NEXT:    stvx v2, r3, r4
; CHECK-P8-LE-NEXT:    blr
;
; CHECK-P8-BE-LABEL: testGlob11PtrPlus4:
; CHECK-P8-BE:       # %bb.0: # %entry
; CHECK-P8-BE-NEXT:    addis r3, r2, GlobLd11@toc@ha
; CHECK-P8-BE-NEXT:    li r4, 4
; CHECK-P8-BE-NEXT:    addi r3, r3, GlobLd11@toc@l
; CHECK-P8-BE-NEXT:    lxvw4x vs0, r3, r4
; CHECK-P8-BE-NEXT:    addis r3, r2, GlobSt11@toc@ha
; CHECK-P8-BE-NEXT:    addi r3, r3, GlobSt11@toc@l
; CHECK-P8-BE-NEXT:    stxvw4x vs0, r3, r4
; CHECK-P8-BE-NEXT:    blr
entry:
  %0 = load <16 x i8>, <16 x i8>* bitcast (i8* getelementptr ([20 x <16 x i8>], [20 x <16 x i8>]* @GlobLd11, i64 0, i64 0, i64 4) to <16 x i8>*), align 16
  store <16 x i8> %0, <16 x i8>* bitcast (i8* getelementptr ([20 x <16 x i8>], [20 x <16 x i8>]* @GlobSt11, i64 0, i64 0, i64 4) to <16 x i8>*), align 16
  ret void
}

; Function Attrs: nofree norecurse nounwind uwtable willreturn
define dso_local void @testGlob11PtrPlus16() {
; CHECK-P10-LE-LABEL: testGlob11PtrPlus16:
; CHECK-P10-LE:       # %bb.0: # %entry
; CHECK-P10-LE-NEXT:    plxv vs0, GlobLd11@PCREL+16(0), 1
; CHECK-P10-LE-NEXT:    pstxv vs0, GlobSt11@PCREL+16(0), 1
; CHECK-P10-LE-NEXT:    blr
;
; CHECK-P10-BE-LABEL: testGlob11PtrPlus16:
; CHECK-P10-BE:       # %bb.0: # %entry
; CHECK-P10-BE-NEXT:    addis r3, r2, GlobLd11@toc@ha
; CHECK-P10-BE-NEXT:    addi r3, r3, GlobLd11@toc@l
; CHECK-P10-BE-NEXT:    lxv vs0, 16(r3)
; CHECK-P10-BE-NEXT:    addis r3, r2, GlobSt11@toc@ha
; CHECK-P10-BE-NEXT:    addi r3, r3, GlobSt11@toc@l
; CHECK-P10-BE-NEXT:    stxv vs0, 16(r3)
; CHECK-P10-BE-NEXT:    blr
;
; CHECK-P9-LABEL: testGlob11PtrPlus16:
; CHECK-P9:       # %bb.0: # %entry
; CHECK-P9-NEXT:    addis r3, r2, GlobLd11@toc@ha
; CHECK-P9-NEXT:    addi r3, r3, GlobLd11@toc@l
; CHECK-P9-NEXT:    lxv vs0, 16(r3)
; CHECK-P9-NEXT:    addis r3, r2, GlobSt11@toc@ha
; CHECK-P9-NEXT:    addi r3, r3, GlobSt11@toc@l
; CHECK-P9-NEXT:    stxv vs0, 16(r3)
; CHECK-P9-NEXT:    blr
;
; CHECK-P8-LE-LABEL: testGlob11PtrPlus16:
; CHECK-P8-LE:       # %bb.0: # %entry
; CHECK-P8-LE-NEXT:    addis r3, r2, GlobLd11@toc@ha
; CHECK-P8-LE-NEXT:    li r4, 16
; CHECK-P8-LE-NEXT:    addi r3, r3, GlobLd11@toc@l
; CHECK-P8-LE-NEXT:    lvx v2, r3, r4
; CHECK-P8-LE-NEXT:    addis r3, r2, GlobSt11@toc@ha
; CHECK-P8-LE-NEXT:    addi r3, r3, GlobSt11@toc@l
; CHECK-P8-LE-NEXT:    stvx v2, r3, r4
; CHECK-P8-LE-NEXT:    blr
;
; CHECK-P8-BE-LABEL: testGlob11PtrPlus16:
; CHECK-P8-BE:       # %bb.0: # %entry
; CHECK-P8-BE-NEXT:    addis r3, r2, GlobLd11@toc@ha
; CHECK-P8-BE-NEXT:    li r4, 16
; CHECK-P8-BE-NEXT:    addi r3, r3, GlobLd11@toc@l
; CHECK-P8-BE-NEXT:    lxvw4x vs0, r3, r4
; CHECK-P8-BE-NEXT:    addis r3, r2, GlobSt11@toc@ha
; CHECK-P8-BE-NEXT:    addi r3, r3, GlobSt11@toc@l
; CHECK-P8-BE-NEXT:    stxvw4x vs0, r3, r4
; CHECK-P8-BE-NEXT:    blr
entry:
  %0 = load <16 x i8>, <16 x i8>* bitcast (i8* getelementptr inbounds ([20 x <16 x i8>], [20 x <16 x i8>]* @GlobLd11, i64 0, i64 1, i64 0) to <16 x i8>*), align 16
  store <16 x i8> %0, <16 x i8>* bitcast (i8* getelementptr inbounds ([20 x <16 x i8>], [20 x <16 x i8>]* @GlobSt11, i64 0, i64 1, i64 0) to <16 x i8>*), align 16
  ret void
}

; Function Attrs: nofree norecurse nounwind uwtable willreturn
define dso_local void @testGlob11PtrPlusVar(i64 %Idx) {
; CHECK-P10-LE-LABEL: testGlob11PtrPlusVar:
; CHECK-P10-LE:       # %bb.0: # %entry
; CHECK-P10-LE-NEXT:    sldi r3, r3, 4
; CHECK-P10-LE-NEXT:    paddi r4, 0, GlobLd11@PCREL, 1
; CHECK-P10-LE-NEXT:    lxvx vs0, r4, r3
; CHECK-P10-LE-NEXT:    paddi r4, 0, GlobSt11@PCREL, 1
; CHECK-P10-LE-NEXT:    stxvx vs0, r4, r3
; CHECK-P10-LE-NEXT:    blr
;
; CHECK-P10-BE-LABEL: testGlob11PtrPlusVar:
; CHECK-P10-BE:       # %bb.0: # %entry
; CHECK-P10-BE-NEXT:    addis r4, r2, GlobLd11@toc@ha
; CHECK-P10-BE-NEXT:    sldi r3, r3, 4
; CHECK-P10-BE-NEXT:    addi r4, r4, GlobLd11@toc@l
; CHECK-P10-BE-NEXT:    lxvx vs0, r4, r3
; CHECK-P10-BE-NEXT:    addis r4, r2, GlobSt11@toc@ha
; CHECK-P10-BE-NEXT:    addi r4, r4, GlobSt11@toc@l
; CHECK-P10-BE-NEXT:    stxvx vs0, r4, r3
; CHECK-P10-BE-NEXT:    blr
;
; CHECK-P9-LABEL: testGlob11PtrPlusVar:
; CHECK-P9:       # %bb.0: # %entry
; CHECK-P9-NEXT:    addis r4, r2, GlobLd11@toc@ha
; CHECK-P9-NEXT:    sldi r3, r3, 4
; CHECK-P9-NEXT:    addi r4, r4, GlobLd11@toc@l
; CHECK-P9-NEXT:    lxvx vs0, r4, r3
; CHECK-P9-NEXT:    addis r4, r2, GlobSt11@toc@ha
; CHECK-P9-NEXT:    addi r4, r4, GlobSt11@toc@l
; CHECK-P9-NEXT:    stxvx vs0, r4, r3
; CHECK-P9-NEXT:    blr
;
; CHECK-P8-LE-LABEL: testGlob11PtrPlusVar:
; CHECK-P8-LE:       # %bb.0: # %entry
; CHECK-P8-LE-NEXT:    addis r4, r2, GlobLd11@toc@ha
; CHECK-P8-LE-NEXT:    sldi r3, r3, 4
; CHECK-P8-LE-NEXT:    addi r4, r4, GlobLd11@toc@l
; CHECK-P8-LE-NEXT:    lvx v2, r4, r3
; CHECK-P8-LE-NEXT:    addis r4, r2, GlobSt11@toc@ha
; CHECK-P8-LE-NEXT:    addi r4, r4, GlobSt11@toc@l
; CHECK-P8-LE-NEXT:    stvx v2, r4, r3
; CHECK-P8-LE-NEXT:    blr
;
; CHECK-P8-BE-LABEL: testGlob11PtrPlusVar:
; CHECK-P8-BE:       # %bb.0: # %entry
; CHECK-P8-BE-NEXT:    addis r4, r2, GlobLd11@toc@ha
; CHECK-P8-BE-NEXT:    sldi r3, r3, 4
; CHECK-P8-BE-NEXT:    addi r4, r4, GlobLd11@toc@l
; CHECK-P8-BE-NEXT:    lxvw4x vs0, r4, r3
; CHECK-P8-BE-NEXT:    addis r4, r2, GlobSt11@toc@ha
; CHECK-P8-BE-NEXT:    addi r4, r4, GlobSt11@toc@l
; CHECK-P8-BE-NEXT:    stxvw4x vs0, r4, r3
; CHECK-P8-BE-NEXT:    blr
entry:
  %arrayidx = getelementptr inbounds [20 x <16 x i8>], [20 x <16 x i8>]* @GlobLd11, i64 0, i64 %Idx
  %0 = load <16 x i8>, <16 x i8>* %arrayidx, align 16
  %arrayidx1 = getelementptr inbounds [20 x <16 x i8>], [20 x <16 x i8>]* @GlobSt11, i64 0, i64 %Idx
  store <16 x i8> %0, <16 x i8>* %arrayidx1, align 16
  ret void
}

; Function Attrs: nofree norecurse nounwind uwtable willreturn
define dso_local void @testGlob12PtrPlus0() {
; CHECK-P10-LE-LABEL: testGlob12PtrPlus0:
; CHECK-P10-LE:       # %bb.0: # %entry
; CHECK-P10-LE-NEXT:    plxv vs0, GlobLd12@PCREL(0), 1
; CHECK-P10-LE-NEXT:    pstxv vs0, GlobSt12@PCREL(0), 1
; CHECK-P10-LE-NEXT:    blr
;
; CHECK-P10-BE-LABEL: testGlob12PtrPlus0:
; CHECK-P10-BE:       # %bb.0: # %entry
; CHECK-P10-BE-NEXT:    addis r3, r2, GlobLd12@toc@ha
; CHECK-P10-BE-NEXT:    addi r3, r3, GlobLd12@toc@l
; CHECK-P10-BE-NEXT:    lxv vs0, 0(r3)
; CHECK-P10-BE-NEXT:    addis r3, r2, GlobSt12@toc@ha
; CHECK-P10-BE-NEXT:    addi r3, r3, GlobSt12@toc@l
; CHECK-P10-BE-NEXT:    stxv vs0, 0(r3)
; CHECK-P10-BE-NEXT:    blr
;
; CHECK-P9-LABEL: testGlob12PtrPlus0:
; CHECK-P9:       # %bb.0: # %entry
; CHECK-P9-NEXT:    addis r3, r2, GlobLd12@toc@ha
; CHECK-P9-NEXT:    addi r3, r3, GlobLd12@toc@l
; CHECK-P9-NEXT:    lxv vs0, 0(r3)
; CHECK-P9-NEXT:    addis r3, r2, GlobSt12@toc@ha
; CHECK-P9-NEXT:    addi r3, r3, GlobSt12@toc@l
; CHECK-P9-NEXT:    stxv vs0, 0(r3)
; CHECK-P9-NEXT:    blr
;
; CHECK-P8-LE-LABEL: testGlob12PtrPlus0:
; CHECK-P8-LE:       # %bb.0: # %entry
; CHECK-P8-LE-NEXT:    addis r3, r2, GlobLd12@toc@ha
; CHECK-P8-LE-NEXT:    addi r3, r3, GlobLd12@toc@l
; CHECK-P8-LE-NEXT:    lvx v2, 0, r3
; CHECK-P8-LE-NEXT:    addis r3, r2, GlobSt12@toc@ha
; CHECK-P8-LE-NEXT:    addi r3, r3, GlobSt12@toc@l
; CHECK-P8-LE-NEXT:    stvx v2, 0, r3
; CHECK-P8-LE-NEXT:    blr
;
; CHECK-P8-BE-LABEL: testGlob12PtrPlus0:
; CHECK-P8-BE:       # %bb.0: # %entry
; CHECK-P8-BE-NEXT:    addis r3, r2, GlobLd12@toc@ha
; CHECK-P8-BE-NEXT:    addi r3, r3, GlobLd12@toc@l
; CHECK-P8-BE-NEXT:    lxvw4x vs0, 0, r3
; CHECK-P8-BE-NEXT:    addis r3, r2, GlobSt12@toc@ha
; CHECK-P8-BE-NEXT:    addi r3, r3, GlobSt12@toc@l
; CHECK-P8-BE-NEXT:    stxvw4x vs0, 0, r3
; CHECK-P8-BE-NEXT:    blr
entry:
  %0 = load <16 x i8>, <16 x i8>* getelementptr inbounds ([20 x <16 x i8>], [20 x <16 x i8>]* @GlobLd12, i64 0, i64 0), align 16
  store <16 x i8> %0, <16 x i8>* getelementptr inbounds ([20 x <16 x i8>], [20 x <16 x i8>]* @GlobSt12, i64 0, i64 0), align 16
  ret void
}

; Function Attrs: nofree norecurse nounwind uwtable willreturn
define dso_local void @testGlob12PtrPlus3() {
; CHECK-P10-LE-LABEL: testGlob12PtrPlus3:
; CHECK-P10-LE:       # %bb.0: # %entry
; CHECK-P10-LE-NEXT:    plxv vs0, GlobLd12@PCREL+3(0), 1
; CHECK-P10-LE-NEXT:    pstxv vs0, GlobSt12@PCREL+3(0), 1
; CHECK-P10-LE-NEXT:    blr
;
; CHECK-P10-BE-LABEL: testGlob12PtrPlus3:
; CHECK-P10-BE:       # %bb.0: # %entry
; CHECK-P10-BE-NEXT:    addis r3, r2, GlobLd12@toc@ha
; CHECK-P10-BE-NEXT:    addi r3, r3, GlobLd12@toc@l
; CHECK-P10-BE-NEXT:    plxv vs0, 3(r3), 0
; CHECK-P10-BE-NEXT:    addis r3, r2, GlobSt12@toc@ha
; CHECK-P10-BE-NEXT:    addi r3, r3, GlobSt12@toc@l
; CHECK-P10-BE-NEXT:    pstxv vs0, 3(r3), 0
; CHECK-P10-BE-NEXT:    blr
;
; CHECK-P9-LABEL: testGlob12PtrPlus3:
; CHECK-P9:       # %bb.0: # %entry
; CHECK-P9-NEXT:    addis r3, r2, GlobLd12@toc@ha
; CHECK-P9-NEXT:    li r4, 3
; CHECK-P9-NEXT:    addi r3, r3, GlobLd12@toc@l
; CHECK-P9-NEXT:    lxvx vs0, r3, r4
; CHECK-P9-NEXT:    addis r3, r2, GlobSt12@toc@ha
; CHECK-P9-NEXT:    addi r3, r3, GlobSt12@toc@l
; CHECK-P9-NEXT:    stxvx vs0, r3, r4
; CHECK-P9-NEXT:    blr
;
; CHECK-P8-LE-LABEL: testGlob12PtrPlus3:
; CHECK-P8-LE:       # %bb.0: # %entry
; CHECK-P8-LE-NEXT:    addis r3, r2, GlobLd12@toc@ha
; CHECK-P8-LE-NEXT:    li r4, 3
; CHECK-P8-LE-NEXT:    addi r3, r3, GlobLd12@toc@l
; CHECK-P8-LE-NEXT:    lvx v2, r3, r4
; CHECK-P8-LE-NEXT:    addis r3, r2, GlobSt12@toc@ha
; CHECK-P8-LE-NEXT:    addi r3, r3, GlobSt12@toc@l
; CHECK-P8-LE-NEXT:    stvx v2, r3, r4
; CHECK-P8-LE-NEXT:    blr
;
; CHECK-P8-BE-LABEL: testGlob12PtrPlus3:
; CHECK-P8-BE:       # %bb.0: # %entry
; CHECK-P8-BE-NEXT:    addis r3, r2, GlobLd12@toc@ha
; CHECK-P8-BE-NEXT:    li r4, 3
; CHECK-P8-BE-NEXT:    addi r3, r3, GlobLd12@toc@l
; CHECK-P8-BE-NEXT:    lxvw4x vs0, r3, r4
; CHECK-P8-BE-NEXT:    addis r3, r2, GlobSt12@toc@ha
; CHECK-P8-BE-NEXT:    addi r3, r3, GlobSt12@toc@l
; CHECK-P8-BE-NEXT:    stxvw4x vs0, r3, r4
; CHECK-P8-BE-NEXT:    blr
entry:
  %0 = load <16 x i8>, <16 x i8>* bitcast (i8* getelementptr ([20 x <16 x i8>], [20 x <16 x i8>]* @GlobLd12, i64 0, i64 0, i64 3) to <16 x i8>*), align 16
  store <16 x i8> %0, <16 x i8>* bitcast (i8* getelementptr ([20 x <16 x i8>], [20 x <16 x i8>]* @GlobSt12, i64 0, i64 0, i64 3) to <16 x i8>*), align 16
  ret void
}

; Function Attrs: nofree norecurse nounwind uwtable willreturn
define dso_local void @testGlob12PtrPlus4() {
; CHECK-P10-LE-LABEL: testGlob12PtrPlus4:
; CHECK-P10-LE:       # %bb.0: # %entry
; CHECK-P10-LE-NEXT:    plxv vs0, GlobLd12@PCREL+4(0), 1
; CHECK-P10-LE-NEXT:    pstxv vs0, GlobSt12@PCREL+4(0), 1
; CHECK-P10-LE-NEXT:    blr
;
; CHECK-P10-BE-LABEL: testGlob12PtrPlus4:
; CHECK-P10-BE:       # %bb.0: # %entry
; CHECK-P10-BE-NEXT:    addis r3, r2, GlobLd12@toc@ha
; CHECK-P10-BE-NEXT:    addi r3, r3, GlobLd12@toc@l
; CHECK-P10-BE-NEXT:    plxv vs0, 4(r3), 0
; CHECK-P10-BE-NEXT:    addis r3, r2, GlobSt12@toc@ha
; CHECK-P10-BE-NEXT:    addi r3, r3, GlobSt12@toc@l
; CHECK-P10-BE-NEXT:    pstxv vs0, 4(r3), 0
; CHECK-P10-BE-NEXT:    blr
;
; CHECK-P9-LABEL: testGlob12PtrPlus4:
; CHECK-P9:       # %bb.0: # %entry
; CHECK-P9-NEXT:    addis r3, r2, GlobLd12@toc@ha
; CHECK-P9-NEXT:    li r4, 4
; CHECK-P9-NEXT:    addi r3, r3, GlobLd12@toc@l
; CHECK-P9-NEXT:    lxvx vs0, r3, r4
; CHECK-P9-NEXT:    addis r3, r2, GlobSt12@toc@ha
; CHECK-P9-NEXT:    addi r3, r3, GlobSt12@toc@l
; CHECK-P9-NEXT:    stxvx vs0, r3, r4
; CHECK-P9-NEXT:    blr
;
; CHECK-P8-LE-LABEL: testGlob12PtrPlus4:
; CHECK-P8-LE:       # %bb.0: # %entry
; CHECK-P8-LE-NEXT:    addis r3, r2, GlobLd12@toc@ha
; CHECK-P8-LE-NEXT:    li r4, 4
; CHECK-P8-LE-NEXT:    addi r3, r3, GlobLd12@toc@l
; CHECK-P8-LE-NEXT:    lvx v2, r3, r4
; CHECK-P8-LE-NEXT:    addis r3, r2, GlobSt12@toc@ha
; CHECK-P8-LE-NEXT:    addi r3, r3, GlobSt12@toc@l
; CHECK-P8-LE-NEXT:    stvx v2, r3, r4
; CHECK-P8-LE-NEXT:    blr
;
; CHECK-P8-BE-LABEL: testGlob12PtrPlus4:
; CHECK-P8-BE:       # %bb.0: # %entry
; CHECK-P8-BE-NEXT:    addis r3, r2, GlobLd12@toc@ha
; CHECK-P8-BE-NEXT:    li r4, 4
; CHECK-P8-BE-NEXT:    addi r3, r3, GlobLd12@toc@l
; CHECK-P8-BE-NEXT:    lxvw4x vs0, r3, r4
; CHECK-P8-BE-NEXT:    addis r3, r2, GlobSt12@toc@ha
; CHECK-P8-BE-NEXT:    addi r3, r3, GlobSt12@toc@l
; CHECK-P8-BE-NEXT:    stxvw4x vs0, r3, r4
; CHECK-P8-BE-NEXT:    blr
entry:
  %0 = load <16 x i8>, <16 x i8>* bitcast (i8* getelementptr ([20 x <16 x i8>], [20 x <16 x i8>]* @GlobLd12, i64 0, i64 0, i64 4) to <16 x i8>*), align 16
  store <16 x i8> %0, <16 x i8>* bitcast (i8* getelementptr ([20 x <16 x i8>], [20 x <16 x i8>]* @GlobSt12, i64 0, i64 0, i64 4) to <16 x i8>*), align 16
  ret void
}

; Function Attrs: nofree norecurse nounwind uwtable willreturn
define dso_local void @testGlob12PtrPlus16() {
; CHECK-P10-LE-LABEL: testGlob12PtrPlus16:
; CHECK-P10-LE:       # %bb.0: # %entry
; CHECK-P10-LE-NEXT:    plxv vs0, GlobLd12@PCREL+16(0), 1
; CHECK-P10-LE-NEXT:    pstxv vs0, GlobSt12@PCREL+16(0), 1
; CHECK-P10-LE-NEXT:    blr
;
; CHECK-P10-BE-LABEL: testGlob12PtrPlus16:
; CHECK-P10-BE:       # %bb.0: # %entry
; CHECK-P10-BE-NEXT:    addis r3, r2, GlobLd12@toc@ha
; CHECK-P10-BE-NEXT:    addi r3, r3, GlobLd12@toc@l
; CHECK-P10-BE-NEXT:    lxv vs0, 16(r3)
; CHECK-P10-BE-NEXT:    addis r3, r2, GlobSt12@toc@ha
; CHECK-P10-BE-NEXT:    addi r3, r3, GlobSt12@toc@l
; CHECK-P10-BE-NEXT:    stxv vs0, 16(r3)
; CHECK-P10-BE-NEXT:    blr
;
; CHECK-P9-LABEL: testGlob12PtrPlus16:
; CHECK-P9:       # %bb.0: # %entry
; CHECK-P9-NEXT:    addis r3, r2, GlobLd12@toc@ha
; CHECK-P9-NEXT:    addi r3, r3, GlobLd12@toc@l
; CHECK-P9-NEXT:    lxv vs0, 16(r3)
; CHECK-P9-NEXT:    addis r3, r2, GlobSt12@toc@ha
; CHECK-P9-NEXT:    addi r3, r3, GlobSt12@toc@l
; CHECK-P9-NEXT:    stxv vs0, 16(r3)
; CHECK-P9-NEXT:    blr
;
; CHECK-P8-LE-LABEL: testGlob12PtrPlus16:
; CHECK-P8-LE:       # %bb.0: # %entry
; CHECK-P8-LE-NEXT:    addis r3, r2, GlobLd12@toc@ha
; CHECK-P8-LE-NEXT:    li r4, 16
; CHECK-P8-LE-NEXT:    addi r3, r3, GlobLd12@toc@l
; CHECK-P8-LE-NEXT:    lvx v2, r3, r4
; CHECK-P8-LE-NEXT:    addis r3, r2, GlobSt12@toc@ha
; CHECK-P8-LE-NEXT:    addi r3, r3, GlobSt12@toc@l
; CHECK-P8-LE-NEXT:    stvx v2, r3, r4
; CHECK-P8-LE-NEXT:    blr
;
; CHECK-P8-BE-LABEL: testGlob12PtrPlus16:
; CHECK-P8-BE:       # %bb.0: # %entry
; CHECK-P8-BE-NEXT:    addis r3, r2, GlobLd12@toc@ha
; CHECK-P8-BE-NEXT:    li r4, 16
; CHECK-P8-BE-NEXT:    addi r3, r3, GlobLd12@toc@l
; CHECK-P8-BE-NEXT:    lxvw4x vs0, r3, r4
; CHECK-P8-BE-NEXT:    addis r3, r2, GlobSt12@toc@ha
; CHECK-P8-BE-NEXT:    addi r3, r3, GlobSt12@toc@l
; CHECK-P8-BE-NEXT:    stxvw4x vs0, r3, r4
; CHECK-P8-BE-NEXT:    blr
entry:
  %0 = load <16 x i8>, <16 x i8>* bitcast (i8* getelementptr inbounds ([20 x <16 x i8>], [20 x <16 x i8>]* @GlobLd12, i64 0, i64 1, i64 0) to <16 x i8>*), align 16
  store <16 x i8> %0, <16 x i8>* bitcast (i8* getelementptr inbounds ([20 x <16 x i8>], [20 x <16 x i8>]* @GlobSt12, i64 0, i64 1, i64 0) to <16 x i8>*), align 16
  ret void
}

; Function Attrs: nofree norecurse nounwind uwtable willreturn
define dso_local void @testGlob12PtrPlusVar(i64 %Idx) {
; CHECK-P10-LE-LABEL: testGlob12PtrPlusVar:
; CHECK-P10-LE:       # %bb.0: # %entry
; CHECK-P10-LE-NEXT:    sldi r3, r3, 4
; CHECK-P10-LE-NEXT:    paddi r4, 0, GlobLd12@PCREL, 1
; CHECK-P10-LE-NEXT:    lxvx vs0, r4, r3
; CHECK-P10-LE-NEXT:    paddi r4, 0, GlobSt12@PCREL, 1
; CHECK-P10-LE-NEXT:    stxvx vs0, r4, r3
; CHECK-P10-LE-NEXT:    blr
;
; CHECK-P10-BE-LABEL: testGlob12PtrPlusVar:
; CHECK-P10-BE:       # %bb.0: # %entry
; CHECK-P10-BE-NEXT:    addis r4, r2, GlobLd12@toc@ha
; CHECK-P10-BE-NEXT:    sldi r3, r3, 4
; CHECK-P10-BE-NEXT:    addi r4, r4, GlobLd12@toc@l
; CHECK-P10-BE-NEXT:    lxvx vs0, r4, r3
; CHECK-P10-BE-NEXT:    addis r4, r2, GlobSt12@toc@ha
; CHECK-P10-BE-NEXT:    addi r4, r4, GlobSt12@toc@l
; CHECK-P10-BE-NEXT:    stxvx vs0, r4, r3
; CHECK-P10-BE-NEXT:    blr
;
; CHECK-P9-LABEL: testGlob12PtrPlusVar:
; CHECK-P9:       # %bb.0: # %entry
; CHECK-P9-NEXT:    addis r4, r2, GlobLd12@toc@ha
; CHECK-P9-NEXT:    sldi r3, r3, 4
; CHECK-P9-NEXT:    addi r4, r4, GlobLd12@toc@l
; CHECK-P9-NEXT:    lxvx vs0, r4, r3
; CHECK-P9-NEXT:    addis r4, r2, GlobSt12@toc@ha
; CHECK-P9-NEXT:    addi r4, r4, GlobSt12@toc@l
; CHECK-P9-NEXT:    stxvx vs0, r4, r3
; CHECK-P9-NEXT:    blr
;
; CHECK-P8-LE-LABEL: testGlob12PtrPlusVar:
; CHECK-P8-LE:       # %bb.0: # %entry
; CHECK-P8-LE-NEXT:    addis r4, r2, GlobLd12@toc@ha
; CHECK-P8-LE-NEXT:    sldi r3, r3, 4
; CHECK-P8-LE-NEXT:    addi r4, r4, GlobLd12@toc@l
; CHECK-P8-LE-NEXT:    lvx v2, r4, r3
; CHECK-P8-LE-NEXT:    addis r4, r2, GlobSt12@toc@ha
; CHECK-P8-LE-NEXT:    addi r4, r4, GlobSt12@toc@l
; CHECK-P8-LE-NEXT:    stvx v2, r4, r3
; CHECK-P8-LE-NEXT:    blr
;
; CHECK-P8-BE-LABEL: testGlob12PtrPlusVar:
; CHECK-P8-BE:       # %bb.0: # %entry
; CHECK-P8-BE-NEXT:    addis r4, r2, GlobLd12@toc@ha
; CHECK-P8-BE-NEXT:    sldi r3, r3, 4
; CHECK-P8-BE-NEXT:    addi r4, r4, GlobLd12@toc@l
; CHECK-P8-BE-NEXT:    lxvw4x vs0, r4, r3
; CHECK-P8-BE-NEXT:    addis r4, r2, GlobSt12@toc@ha
; CHECK-P8-BE-NEXT:    addi r4, r4, GlobSt12@toc@l
; CHECK-P8-BE-NEXT:    stxvw4x vs0, r4, r3
; CHECK-P8-BE-NEXT:    blr
entry:
  %arrayidx = getelementptr inbounds [20 x <16 x i8>], [20 x <16 x i8>]* @GlobLd12, i64 0, i64 %Idx
  %0 = load <16 x i8>, <16 x i8>* %arrayidx, align 16
  %arrayidx1 = getelementptr inbounds [20 x <16 x i8>], [20 x <16 x i8>]* @GlobSt12, i64 0, i64 %Idx
  store <16 x i8> %0, <16 x i8>* %arrayidx1, align 16
  ret void
}

; Function Attrs: nofree norecurse nounwind uwtable willreturn
define dso_local void @Atomic_LdSt_i8() {
; CHECK-P10-LE-LABEL: Atomic_LdSt_i8:
; CHECK-P10-LE:       # %bb.0: # %entry
; CHECK-P10-LE-NEXT:    plbz r3, GlobLd1@PCREL(0), 1
; CHECK-P10-LE-NEXT:    pstb r3, GlobSt1@PCREL(0), 1
; CHECK-P10-LE-NEXT:    blr
;
; CHECK-P10-BE-LABEL: Atomic_LdSt_i8:
; CHECK-P10-BE:       # %bb.0: # %entry
; CHECK-P10-BE-NEXT:    addis r3, r2, GlobLd1@toc@ha
; CHECK-P10-BE-NEXT:    addis r4, r2, GlobSt1@toc@ha
; CHECK-P10-BE-NEXT:    lbz r3, GlobLd1@toc@l(r3)
; CHECK-P10-BE-NEXT:    stb r3, GlobSt1@toc@l(r4)
; CHECK-P10-BE-NEXT:    blr
;
; CHECK-LABEL: Atomic_LdSt_i8:
; CHECK:       # %bb.0: # %entry
; CHECK-NEXT:    addis r3, r2, GlobLd1@toc@ha
; CHECK-NEXT:    addis r4, r2, GlobSt1@toc@ha
; CHECK-NEXT:    lbz r3, GlobLd1@toc@l(r3)
; CHECK-NEXT:    stb r3, GlobSt1@toc@l(r4)
; CHECK-NEXT:    blr
entry:
  %0 = load atomic i8, i8* getelementptr inbounds ([20 x i8], [20 x i8]* @GlobLd1, i64 0, i64 0) monotonic, align 1
  store atomic i8 %0, i8* getelementptr inbounds ([20 x i8], [20 x i8]* @GlobSt1, i64 0, i64 0) monotonic, align 1
  ret void
}

; Function Attrs: nofree norecurse nounwind uwtable willreturn
define dso_local void @Atomic_LdSt_i16() {
; CHECK-P10-LE-LABEL: Atomic_LdSt_i16:
; CHECK-P10-LE:       # %bb.0: # %entry
; CHECK-P10-LE-NEXT:    plhz r3, GlobLd3@PCREL(0), 1
; CHECK-P10-LE-NEXT:    psth r3, GlobSt3@PCREL(0), 1
; CHECK-P10-LE-NEXT:    blr
;
; CHECK-P10-BE-LABEL: Atomic_LdSt_i16:
; CHECK-P10-BE:       # %bb.0: # %entry
; CHECK-P10-BE-NEXT:    addis r3, r2, GlobLd3@toc@ha
; CHECK-P10-BE-NEXT:    addis r4, r2, GlobSt3@toc@ha
; CHECK-P10-BE-NEXT:    lhz r3, GlobLd3@toc@l(r3)
; CHECK-P10-BE-NEXT:    sth r3, GlobSt3@toc@l(r4)
; CHECK-P10-BE-NEXT:    blr
;
; CHECK-LABEL: Atomic_LdSt_i16:
; CHECK:       # %bb.0: # %entry
; CHECK-NEXT:    addis r3, r2, GlobLd3@toc@ha
; CHECK-NEXT:    addis r4, r2, GlobSt3@toc@ha
; CHECK-NEXT:    lhz r3, GlobLd3@toc@l(r3)
; CHECK-NEXT:    sth r3, GlobSt3@toc@l(r4)
; CHECK-NEXT:    blr
entry:
  %0 = load atomic i16, i16* getelementptr inbounds ([20 x i16], [20 x i16]* @GlobLd3, i64 0, i64 0) monotonic, align 2
  store atomic i16 %0, i16* getelementptr inbounds ([20 x i16], [20 x i16]* @GlobSt3, i64 0, i64 0) monotonic, align 2
  ret void
}

; Function Attrs: nofree norecurse nounwind uwtable willreturn
define dso_local void @Atomic_LdSt_i32() {
; CHECK-P10-LE-LABEL: Atomic_LdSt_i32:
; CHECK-P10-LE:       # %bb.0: # %entry
; CHECK-P10-LE-NEXT:    plwz r3, GlobLd5@PCREL(0), 1
; CHECK-P10-LE-NEXT:    pstw r3, GlobSt5@PCREL(0), 1
; CHECK-P10-LE-NEXT:    blr
;
; CHECK-P10-BE-LABEL: Atomic_LdSt_i32:
; CHECK-P10-BE:       # %bb.0: # %entry
; CHECK-P10-BE-NEXT:    addis r3, r2, GlobLd5@toc@ha
; CHECK-P10-BE-NEXT:    addis r4, r2, GlobSt5@toc@ha
; CHECK-P10-BE-NEXT:    lwz r3, GlobLd5@toc@l(r3)
; CHECK-P10-BE-NEXT:    stw r3, GlobSt5@toc@l(r4)
; CHECK-P10-BE-NEXT:    blr
;
; CHECK-LABEL: Atomic_LdSt_i32:
; CHECK:       # %bb.0: # %entry
; CHECK-NEXT:    addis r3, r2, GlobLd5@toc@ha
; CHECK-NEXT:    addis r4, r2, GlobSt5@toc@ha
; CHECK-NEXT:    lwz r3, GlobLd5@toc@l(r3)
; CHECK-NEXT:    stw r3, GlobSt5@toc@l(r4)
; CHECK-NEXT:    blr
entry:
  %0 = load atomic i32, i32* getelementptr inbounds ([20 x i32], [20 x i32]* @GlobLd5, i64 0, i64 0) monotonic, align 4
  store atomic i32 %0, i32* getelementptr inbounds ([20 x i32], [20 x i32]* @GlobSt5, i64 0, i64 0) monotonic, align 4
  ret void
}

; Function Attrs: nofree norecurse nounwind uwtable willreturn
define dso_local void @Atomic_LdSt_i64() {
; CHECK-P10-LE-LABEL: Atomic_LdSt_i64:
; CHECK-P10-LE:       # %bb.0: # %entry
; CHECK-P10-LE-NEXT:    pld r3, GlobLd7@PCREL(0), 1
; CHECK-P10-LE-NEXT:    pstd r3, GlobSt7@PCREL(0), 1
; CHECK-P10-LE-NEXT:    blr
;
; CHECK-P10-BE-LABEL: Atomic_LdSt_i64:
; CHECK-P10-BE:       # %bb.0: # %entry
; CHECK-P10-BE-NEXT:    addis r3, r2, GlobLd7@toc@ha
; CHECK-P10-BE-NEXT:    addis r4, r2, GlobSt7@toc@ha
; CHECK-P10-BE-NEXT:    ld r3, GlobLd7@toc@l(r3)
; CHECK-P10-BE-NEXT:    std r3, GlobSt7@toc@l(r4)
; CHECK-P10-BE-NEXT:    blr
;
; CHECK-P9-LABEL: Atomic_LdSt_i64:
; CHECK-P9:       # %bb.0: # %entry
; CHECK-P9-NEXT:    addis r3, r2, GlobLd7@toc@ha
; CHECK-P9-NEXT:    addis r4, r2, GlobSt7@toc@ha
; CHECK-P9-NEXT:    ld r3, GlobLd7@toc@l(r3)
; CHECK-P9-NEXT:    std r3, GlobSt7@toc@l(r4)
; CHECK-P9-NEXT:    blr
;
; CHECK-P8-LABEL: Atomic_LdSt_i64:
; CHECK-P8:       # %bb.0: # %entry
; CHECK-P8-NEXT:    addis r3, r2, GlobLd7@toc@ha
; CHECK-P8-NEXT:    ld r3, GlobLd7@toc@l(r3)
; CHECK-P8-NEXT:    addis r4, r2, GlobSt7@toc@ha
; CHECK-P8-NEXT:    std r3, GlobSt7@toc@l(r4)
; CHECK-P8-NEXT:    blr
entry:
  %0 = load atomic i64, i64* getelementptr inbounds ([20 x i64], [20 x i64]* @GlobLd7, i64 0, i64 0) monotonic, align 8
  store atomic i64 %0, i64* getelementptr inbounds ([20 x i64], [20 x i64]* @GlobSt7, i64 0, i64 0) monotonic, align 8
  ret void
}

; Function Attrs: nofree norecurse nounwind uwtable willreturn writeonly
define dso_local void @store_double_f64_to_uint(double %str) local_unnamed_addr #0 {
; CHECK-P10-LE-LABEL: store_double_f64_to_uint:
; CHECK-P10-LE:       # %bb.0: # %entry
; CHECK-P10-LE-NEXT:    xscvdpuxds v2, f1
; CHECK-P10-LE-NEXT:    pstxsd v2, GlobSt10@PCREL(0), 1
; CHECK-P10-LE-NEXT:    blr
;
; CHECK-P10-BE-LABEL: store_double_f64_to_uint:
; CHECK-P10-BE:       # %bb.0: # %entry
; CHECK-P10-BE-NEXT:    xscvdpuxds v2, f1
; CHECK-P10-BE-NEXT:    addis r3, r2, GlobSt10@toc@ha
; CHECK-P10-BE-NEXT:    addi r3, r3, GlobSt10@toc@l
; CHECK-P10-BE-NEXT:    stxsd v2, 0(r3)
; CHECK-P10-BE-NEXT:    blr
;
; CHECK-P9-LABEL: store_double_f64_to_uint:
; CHECK-P9:       # %bb.0: # %entry
; CHECK-P9-NEXT:    xscvdpuxds v2, f1
; CHECK-P9-NEXT:    addis r3, r2, GlobSt10@toc@ha
; CHECK-P9-NEXT:    addi r3, r3, GlobSt10@toc@l
; CHECK-P9-NEXT:    stxsd v2, 0(r3)
; CHECK-P9-NEXT:    blr
;
; CHECK-P8-LABEL: store_double_f64_to_uint:
; CHECK-P8:       # %bb.0: # %entry
; CHECK-P8-NEXT:    xscvdpuxds f0, f1
; CHECK-P8-NEXT:    addis r3, r2, GlobSt10@toc@ha
; CHECK-P8-NEXT:    addi r3, r3, GlobSt10@toc@l
; CHECK-P8-NEXT:    stxsdx f0, 0, r3
; CHECK-P8-NEXT:    blr
entry:
  %conv = fptoui double %str to i64
  store i64 %conv, i64* bitcast ([20 x double]* @GlobSt10 to i64*), align 8
  ret void
}

; Function Attrs: nofree norecurse nounwind uwtable willreturn writeonly
define dso_local void @store_double_f64_to_sint(double %str) local_unnamed_addr #0 {
; CHECK-P10-LE-LABEL: store_double_f64_to_sint:
; CHECK-P10-LE:       # %bb.0: # %entry
; CHECK-P10-LE-NEXT:    xscvdpsxds v2, f1
; CHECK-P10-LE-NEXT:    pstxsd v2, GlobSt10@PCREL(0), 1
; CHECK-P10-LE-NEXT:    blr
;
; CHECK-P10-BE-LABEL: store_double_f64_to_sint:
; CHECK-P10-BE:       # %bb.0: # %entry
; CHECK-P10-BE-NEXT:    xscvdpsxds v2, f1
; CHECK-P10-BE-NEXT:    addis r3, r2, GlobSt10@toc@ha
; CHECK-P10-BE-NEXT:    addi r3, r3, GlobSt10@toc@l
; CHECK-P10-BE-NEXT:    stxsd v2, 0(r3)
; CHECK-P10-BE-NEXT:    blr
;
; CHECK-P9-LABEL: store_double_f64_to_sint:
; CHECK-P9:       # %bb.0: # %entry
; CHECK-P9-NEXT:    xscvdpsxds v2, f1
; CHECK-P9-NEXT:    addis r3, r2, GlobSt10@toc@ha
; CHECK-P9-NEXT:    addi r3, r3, GlobSt10@toc@l
; CHECK-P9-NEXT:    stxsd v2, 0(r3)
; CHECK-P9-NEXT:    blr
;
; CHECK-P8-LABEL: store_double_f64_to_sint:
; CHECK-P8:       # %bb.0: # %entry
; CHECK-P8-NEXT:    xscvdpsxds f0, f1
; CHECK-P8-NEXT:    addis r3, r2, GlobSt10@toc@ha
; CHECK-P8-NEXT:    addi r3, r3, GlobSt10@toc@l
; CHECK-P8-NEXT:    stxsdx f0, 0, r3
; CHECK-P8-NEXT:    blr
entry:
  %conv = fptosi double %str to i64
  store i64 %conv, i64* bitcast ([20 x double]* @GlobSt10 to i64*), align 8
  ret void
}

; Function Attrs: nofree norecurse nounwind uwtable willreturn writeonly
define dso_local void @store_f128_to_uint(fp128 %str) local_unnamed_addr #0 {
; CHECK-P10-LE-LABEL: store_f128_to_uint:
; CHECK-P10-LE:       # %bb.0: # %entry
; CHECK-P10-LE-NEXT:    xscvqpudz v2, v2
; CHECK-P10-LE-NEXT:    pstxsd v2, GlobF128@PCREL(0), 1
; CHECK-P10-LE-NEXT:    blr
;
; CHECK-P10-BE-LABEL: store_f128_to_uint:
; CHECK-P10-BE:       # %bb.0: # %entry
; CHECK-P10-BE-NEXT:    xscvqpudz v2, v2
; CHECK-P10-BE-NEXT:    addis r3, r2, GlobF128@toc@ha
; CHECK-P10-BE-NEXT:    addi r3, r3, GlobF128@toc@l
; CHECK-P10-BE-NEXT:    stxsd v2, 0(r3)
; CHECK-P10-BE-NEXT:    blr
;
; CHECK-P9-LABEL: store_f128_to_uint:
; CHECK-P9:       # %bb.0: # %entry
; CHECK-P9-NEXT:    xscvqpudz v2, v2
; CHECK-P9-NEXT:    addis r3, r2, GlobF128@toc@ha
; CHECK-P9-NEXT:    addi r3, r3, GlobF128@toc@l
; CHECK-P9-NEXT:    stxsd v2, 0(r3)
; CHECK-P9-NEXT:    blr
;
; CHECK-P8-LE-LABEL: store_f128_to_uint:
; CHECK-P8-LE:       # %bb.0: # %entry
; CHECK-P8-LE-NEXT:    mflr r0
; CHECK-P8-LE-NEXT:    std r0, 16(r1)
; CHECK-P8-LE-NEXT:    stdu r1, -32(r1)
; CHECK-P8-LE-NEXT:    .cfi_def_cfa_offset 32
; CHECK-P8-LE-NEXT:    .cfi_offset lr, 16
; CHECK-P8-LE-NEXT:    bl __fixunskfdi
; CHECK-P8-LE-NEXT:    nop
; CHECK-P8-LE-NEXT:    addis r4, r2, GlobF128@toc@ha
; CHECK-P8-LE-NEXT:    std r3, GlobF128@toc@l(r4)
; CHECK-P8-LE-NEXT:    addi r1, r1, 32
; CHECK-P8-LE-NEXT:    ld r0, 16(r1)
; CHECK-P8-LE-NEXT:    mtlr r0
; CHECK-P8-LE-NEXT:    blr
;
; CHECK-P8-BE-LABEL: store_f128_to_uint:
; CHECK-P8-BE:       # %bb.0: # %entry
; CHECK-P8-BE-NEXT:    mflr r0
; CHECK-P8-BE-NEXT:    std r0, 16(r1)
; CHECK-P8-BE-NEXT:    stdu r1, -112(r1)
; CHECK-P8-BE-NEXT:    .cfi_def_cfa_offset 112
; CHECK-P8-BE-NEXT:    .cfi_offset lr, 16
; CHECK-P8-BE-NEXT:    bl __fixunskfdi
; CHECK-P8-BE-NEXT:    nop
; CHECK-P8-BE-NEXT:    addis r4, r2, GlobF128@toc@ha
; CHECK-P8-BE-NEXT:    std r3, GlobF128@toc@l(r4)
; CHECK-P8-BE-NEXT:    addi r1, r1, 112
; CHECK-P8-BE-NEXT:    ld r0, 16(r1)
; CHECK-P8-BE-NEXT:    mtlr r0
; CHECK-P8-BE-NEXT:    blr
entry:
  %conv = fptoui fp128 %str to i64
  store i64 %conv, i64* bitcast ([20 x fp128]* @GlobF128 to i64*), align 16
  ret void
}

; Function Attrs: nofree norecurse nounwind uwtable willreturn writeonly
define dso_local void @store_f128_to_sint(fp128 %str) local_unnamed_addr #0 {
; CHECK-P10-LE-LABEL: store_f128_to_sint:
; CHECK-P10-LE:       # %bb.0: # %entry
; CHECK-P10-LE-NEXT:    xscvqpsdz v2, v2
; CHECK-P10-LE-NEXT:    pstxsd v2, GlobF128@PCREL(0), 1
; CHECK-P10-LE-NEXT:    blr
;
; CHECK-P10-BE-LABEL: store_f128_to_sint:
; CHECK-P10-BE:       # %bb.0: # %entry
; CHECK-P10-BE-NEXT:    xscvqpsdz v2, v2
; CHECK-P10-BE-NEXT:    addis r3, r2, GlobF128@toc@ha
; CHECK-P10-BE-NEXT:    addi r3, r3, GlobF128@toc@l
; CHECK-P10-BE-NEXT:    stxsd v2, 0(r3)
; CHECK-P10-BE-NEXT:    blr
;
; CHECK-P9-LABEL: store_f128_to_sint:
; CHECK-P9:       # %bb.0: # %entry
; CHECK-P9-NEXT:    xscvqpsdz v2, v2
; CHECK-P9-NEXT:    addis r3, r2, GlobF128@toc@ha
; CHECK-P9-NEXT:    addi r3, r3, GlobF128@toc@l
; CHECK-P9-NEXT:    stxsd v2, 0(r3)
; CHECK-P9-NEXT:    blr
;
; CHECK-P8-LE-LABEL: store_f128_to_sint:
; CHECK-P8-LE:       # %bb.0: # %entry
; CHECK-P8-LE-NEXT:    mflr r0
; CHECK-P8-LE-NEXT:    std r0, 16(r1)
; CHECK-P8-LE-NEXT:    stdu r1, -32(r1)
; CHECK-P8-LE-NEXT:    .cfi_def_cfa_offset 32
; CHECK-P8-LE-NEXT:    .cfi_offset lr, 16
; CHECK-P8-LE-NEXT:    bl __fixkfdi
; CHECK-P8-LE-NEXT:    nop
; CHECK-P8-LE-NEXT:    addis r4, r2, GlobF128@toc@ha
; CHECK-P8-LE-NEXT:    std r3, GlobF128@toc@l(r4)
; CHECK-P8-LE-NEXT:    addi r1, r1, 32
; CHECK-P8-LE-NEXT:    ld r0, 16(r1)
; CHECK-P8-LE-NEXT:    mtlr r0
; CHECK-P8-LE-NEXT:    blr
;
; CHECK-P8-BE-LABEL: store_f128_to_sint:
; CHECK-P8-BE:       # %bb.0: # %entry
; CHECK-P8-BE-NEXT:    mflr r0
; CHECK-P8-BE-NEXT:    std r0, 16(r1)
; CHECK-P8-BE-NEXT:    stdu r1, -112(r1)
; CHECK-P8-BE-NEXT:    .cfi_def_cfa_offset 112
; CHECK-P8-BE-NEXT:    .cfi_offset lr, 16
; CHECK-P8-BE-NEXT:    bl __fixkfdi
; CHECK-P8-BE-NEXT:    nop
; CHECK-P8-BE-NEXT:    addis r4, r2, GlobF128@toc@ha
; CHECK-P8-BE-NEXT:    std r3, GlobF128@toc@l(r4)
; CHECK-P8-BE-NEXT:    addi r1, r1, 112
; CHECK-P8-BE-NEXT:    ld r0, 16(r1)
; CHECK-P8-BE-NEXT:    mtlr r0
; CHECK-P8-BE-NEXT:    blr
entry:
  %conv = fptosi fp128 %str to i64
  store i64 %conv, i64* bitcast ([20 x fp128]* @GlobF128 to i64*), align 16
  ret void
}
