brintos

brintos / llvm-project-archived public Read only

0
0
Text · 97.9 KiB · 2063f51 Raw
2587 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: llc -verify-machineinstrs -mtriple=powerpc64le-unknown-linux-gnu \3; RUN:   -mcpu=pwr10 -ppc-asm-full-reg-names -ppc-vsr-nums-as-vr \4; RUN:   < %s | FileCheck %s --check-prefix=CHECK-P10-LE5; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-gnu \6; RUN:   -mcpu=pwr10 -ppc-asm-full-reg-names -ppc-vsr-nums-as-vr \7; RUN:   < %s | FileCheck %s --check-prefix=CHECK-P10-BE8; RUN: llc -verify-machineinstrs -mtriple=powerpc64le-unknown-linux-gnu \9; RUN:   -mcpu=pwr9 -ppc-asm-full-reg-names -ppc-vsr-nums-as-vr \10; RUN:   < %s | FileCheck %s --check-prefixes=CHECK,CHECK-P911; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-gnu \12; RUN:   -mcpu=pwr9 -ppc-asm-full-reg-names -ppc-vsr-nums-as-vr \13; RUN:   < %s | FileCheck %s --check-prefixes=CHECK,CHECK-P914; RUN: llc -verify-machineinstrs -mtriple=powerpc64le-unknown-linux-gnu \15; RUN:   -mcpu=pwr8 -ppc-asm-full-reg-names -ppc-vsr-nums-as-vr \16; RUN:   < %s | FileCheck %s --check-prefixes=CHECK,CHECK-P8,CHECK-P8-LE17; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-gnu \18; RUN:   -mcpu=pwr8 -ppc-asm-full-reg-names -ppc-vsr-nums-as-vr \19; RUN:   < %s | FileCheck %s --check-prefixes=CHECK,CHECK-P8,CHECK-P8-BE20 21@GlobLd1 = dso_local local_unnamed_addr global [20 x i8] zeroinitializer, align 122@GlobSt1 = dso_local local_unnamed_addr global [20 x i8] zeroinitializer, align 123@GlobLd2 = dso_local local_unnamed_addr global [20 x i8] zeroinitializer, align 124@GlobSt2 = dso_local local_unnamed_addr global [20 x i8] zeroinitializer, align 125@GlobLd3 = dso_local local_unnamed_addr global [20 x i16] zeroinitializer, align 226@GlobSt3 = dso_local local_unnamed_addr global [20 x i16] zeroinitializer, align 227@GlobLd4 = dso_local local_unnamed_addr global [20 x i16] zeroinitializer, align 228@GlobSt4 = dso_local local_unnamed_addr global [20 x i16] zeroinitializer, align 229@GlobLd5 = dso_local local_unnamed_addr global [20 x i32] zeroinitializer, align 430@GlobSt5 = dso_local local_unnamed_addr global [20 x i32] zeroinitializer, align 431@GlobLd6 = dso_local local_unnamed_addr global [20 x i32] zeroinitializer, align 432@GlobSt6 = dso_local local_unnamed_addr global [20 x i32] zeroinitializer, align 433@GlobLd7 = dso_local local_unnamed_addr global [20 x i64] zeroinitializer, align 834@GlobSt7 = dso_local local_unnamed_addr global [20 x i64] zeroinitializer, align 835@GlobLd8 = dso_local local_unnamed_addr global [20 x i64] zeroinitializer, align 836@GlobSt8 = dso_local local_unnamed_addr global [20 x i64] zeroinitializer, align 837@GlobLd9 = dso_local local_unnamed_addr global [20 x float] zeroinitializer, align 438@GlobSt9 = dso_local local_unnamed_addr global [20 x float] zeroinitializer, align 439@GlobLd10 = dso_local local_unnamed_addr global [20 x double] zeroinitializer, align 840@GlobSt10 = dso_local local_unnamed_addr global [20 x double] zeroinitializer, align 841@GlobLd11 = dso_local local_unnamed_addr global [20 x <16 x i8>] zeroinitializer, align 1642@GlobSt11 = dso_local local_unnamed_addr global [20 x <16 x i8>] zeroinitializer, align 1643@GlobLd12 = dso_local local_unnamed_addr global [20 x <16 x i8>] zeroinitializer, align 1644@GlobSt12 = dso_local local_unnamed_addr global [20 x <16 x i8>] zeroinitializer, align 1645@GlobF128 = dso_local local_unnamed_addr global [20 x fp128] zeroinitializer, align 1646 47; Function Attrs: nofree norecurse nounwind uwtable willreturn48define dso_local void @testGlob1PtrPlus0() {49; CHECK-P10-LE-LABEL: testGlob1PtrPlus0:50; CHECK-P10-LE:       # %bb.0: # %entry51; CHECK-P10-LE-NEXT:    plbz r3, GlobLd1@PCREL(0), 152; CHECK-P10-LE-NEXT:    pstb r3, GlobSt1@PCREL(0), 153; CHECK-P10-LE-NEXT:    blr54;55; CHECK-P10-BE-LABEL: testGlob1PtrPlus0:56; CHECK-P10-BE:       # %bb.0: # %entry57; CHECK-P10-BE-NEXT:    addis r3, r2, GlobLd1@toc@ha58; CHECK-P10-BE-NEXT:    addis r4, r2, GlobSt1@toc@ha59; CHECK-P10-BE-NEXT:    lbz r3, GlobLd1@toc@l(r3)60; CHECK-P10-BE-NEXT:    stb r3, GlobSt1@toc@l(r4)61; CHECK-P10-BE-NEXT:    blr62;63; CHECK-LABEL: testGlob1PtrPlus0:64; CHECK:       # %bb.0: # %entry65; CHECK-NEXT:    addis r3, r2, GlobLd1@toc@ha66; CHECK-NEXT:    addis r4, r2, GlobSt1@toc@ha67; CHECK-NEXT:    lbz r3, GlobLd1@toc@l(r3)68; CHECK-NEXT:    stb r3, GlobSt1@toc@l(r4)69; CHECK-NEXT:    blr70entry:71  %0 = load i8, ptr @GlobLd1, align 172  store i8 %0, ptr @GlobSt1, align 173  ret void74}75 76; Function Attrs: nofree norecurse nounwind uwtable willreturn77define dso_local void @testGlob1PtrPlus3() {78; CHECK-P10-LE-LABEL: testGlob1PtrPlus3:79; CHECK-P10-LE:       # %bb.0: # %entry80; CHECK-P10-LE-NEXT:    plbz r3, GlobLd1@PCREL+3(0), 181; CHECK-P10-LE-NEXT:    pstb r3, GlobSt1@PCREL+3(0), 182; CHECK-P10-LE-NEXT:    blr83;84; CHECK-P10-BE-LABEL: testGlob1PtrPlus3:85; CHECK-P10-BE:       # %bb.0: # %entry86; CHECK-P10-BE-NEXT:    addis r3, r2, GlobLd1@toc@ha87; CHECK-P10-BE-NEXT:    addis r4, r2, GlobSt1@toc@ha88; CHECK-P10-BE-NEXT:    addi r3, r3, GlobLd1@toc@l89; CHECK-P10-BE-NEXT:    addi r4, r4, GlobSt1@toc@l90; CHECK-P10-BE-NEXT:    lbz r3, 3(r3)91; CHECK-P10-BE-NEXT:    stb r3, 3(r4)92; CHECK-P10-BE-NEXT:    blr93;94; CHECK-LABEL: testGlob1PtrPlus3:95; CHECK:       # %bb.0: # %entry96; CHECK-NEXT:    addis r3, r2, GlobLd1@toc@ha97; CHECK-NEXT:    addis r4, r2, GlobSt1@toc@ha98; CHECK-NEXT:    addi r3, r3, GlobLd1@toc@l99; CHECK-NEXT:    addi r4, r4, GlobSt1@toc@l100; CHECK-NEXT:    lbz r3, 3(r3)101; CHECK-NEXT:    stb r3, 3(r4)102; CHECK-NEXT:    blr103entry:104  %0 = load i8, ptr getelementptr inbounds ([20 x i8], ptr @GlobLd1, i64 0, i64 3), align 1105  store i8 %0, ptr getelementptr inbounds ([20 x i8], ptr @GlobSt1, i64 0, i64 3), align 1106  ret void107}108 109; Function Attrs: nofree norecurse nounwind uwtable willreturn110define dso_local void @testGlob1PtrPlus4() {111; CHECK-P10-LE-LABEL: testGlob1PtrPlus4:112; CHECK-P10-LE:       # %bb.0: # %entry113; CHECK-P10-LE-NEXT:    plbz r3, GlobLd1@PCREL+4(0), 1114; CHECK-P10-LE-NEXT:    pstb r3, GlobSt1@PCREL+4(0), 1115; CHECK-P10-LE-NEXT:    blr116;117; CHECK-P10-BE-LABEL: testGlob1PtrPlus4:118; CHECK-P10-BE:       # %bb.0: # %entry119; CHECK-P10-BE-NEXT:    addis r3, r2, GlobLd1@toc@ha+4120; CHECK-P10-BE-NEXT:    addis r4, r2, GlobSt1@toc@ha+4121; CHECK-P10-BE-NEXT:    lbz r3, GlobLd1@toc@l+4(r3)122; CHECK-P10-BE-NEXT:    stb r3, GlobSt1@toc@l+4(r4)123; CHECK-P10-BE-NEXT:    blr124;125; CHECK-LABEL: testGlob1PtrPlus4:126; CHECK:       # %bb.0: # %entry127; CHECK-NEXT:    addis r3, r2, GlobLd1@toc@ha+4128; CHECK-NEXT:    addis r4, r2, GlobSt1@toc@ha+4129; CHECK-NEXT:    lbz r3, GlobLd1@toc@l+4(r3)130; CHECK-NEXT:    stb r3, GlobSt1@toc@l+4(r4)131; CHECK-NEXT:    blr132entry:133  %0 = load i8, ptr getelementptr inbounds ([20 x i8], ptr @GlobLd1, i64 0, i64 4), align 1134  store i8 %0, ptr getelementptr inbounds ([20 x i8], ptr @GlobSt1, i64 0, i64 4), align 1135  ret void136}137 138; Function Attrs: nofree norecurse nounwind uwtable willreturn139define dso_local void @testGlob1PtrPlus16() {140; CHECK-P10-LE-LABEL: testGlob1PtrPlus16:141; CHECK-P10-LE:       # %bb.0: # %entry142; CHECK-P10-LE-NEXT:    plbz r3, GlobLd1@PCREL+16(0), 1143; CHECK-P10-LE-NEXT:    pstb r3, GlobSt1@PCREL+16(0), 1144; CHECK-P10-LE-NEXT:    blr145;146; CHECK-P10-BE-LABEL: testGlob1PtrPlus16:147; CHECK-P10-BE:       # %bb.0: # %entry148; CHECK-P10-BE-NEXT:    addis r3, r2, GlobLd1@toc@ha+16149; CHECK-P10-BE-NEXT:    addis r4, r2, GlobSt1@toc@ha+16150; CHECK-P10-BE-NEXT:    lbz r3, GlobLd1@toc@l+16(r3)151; CHECK-P10-BE-NEXT:    stb r3, GlobSt1@toc@l+16(r4)152; CHECK-P10-BE-NEXT:    blr153;154; CHECK-LABEL: testGlob1PtrPlus16:155; CHECK:       # %bb.0: # %entry156; CHECK-NEXT:    addis r3, r2, GlobLd1@toc@ha+16157; CHECK-NEXT:    addis r4, r2, GlobSt1@toc@ha+16158; CHECK-NEXT:    lbz r3, GlobLd1@toc@l+16(r3)159; CHECK-NEXT:    stb r3, GlobSt1@toc@l+16(r4)160; CHECK-NEXT:    blr161entry:162  %0 = load i8, ptr getelementptr inbounds ([20 x i8], ptr @GlobLd1, i64 0, i64 16), align 1163  store i8 %0, ptr getelementptr inbounds ([20 x i8], ptr @GlobSt1, i64 0, i64 16), align 1164  ret void165}166 167; Function Attrs: nofree norecurse nounwind uwtable willreturn168define dso_local void @testGlob1PtrPlusVar(i64 %Idx) {169; CHECK-P10-LE-LABEL: testGlob1PtrPlusVar:170; CHECK-P10-LE:       # %bb.0: # %entry171; CHECK-P10-LE-NEXT:    paddi r4, 0, GlobLd1@PCREL, 1172; CHECK-P10-LE-NEXT:    paddi r5, 0, GlobSt1@PCREL, 1173; CHECK-P10-LE-NEXT:    lbzx r4, r4, r3174; CHECK-P10-LE-NEXT:    stbx r4, r5, r3175; CHECK-P10-LE-NEXT:    blr176;177; CHECK-P10-BE-LABEL: testGlob1PtrPlusVar:178; CHECK-P10-BE:       # %bb.0: # %entry179; CHECK-P10-BE-NEXT:    addis r4, r2, GlobLd1@toc@ha180; CHECK-P10-BE-NEXT:    addis r5, r2, GlobSt1@toc@ha181; CHECK-P10-BE-NEXT:    addi r4, r4, GlobLd1@toc@l182; CHECK-P10-BE-NEXT:    addi r5, r5, GlobSt1@toc@l183; CHECK-P10-BE-NEXT:    lbzx r4, r4, r3184; CHECK-P10-BE-NEXT:    stbx r4, r5, r3185; CHECK-P10-BE-NEXT:    blr186;187; CHECK-LABEL: testGlob1PtrPlusVar:188; CHECK:       # %bb.0: # %entry189; CHECK-NEXT:    addis r4, r2, GlobLd1@toc@ha190; CHECK-NEXT:    addis r5, r2, GlobSt1@toc@ha191; CHECK-NEXT:    addi r4, r4, GlobLd1@toc@l192; CHECK-NEXT:    addi r5, r5, GlobSt1@toc@l193; CHECK-NEXT:    lbzx r4, r4, r3194; CHECK-NEXT:    stbx r4, r5, r3195; CHECK-NEXT:    blr196entry:197  %arrayidx = getelementptr inbounds [20 x i8], ptr @GlobLd1, i64 0, i64 %Idx198  %0 = load i8, ptr %arrayidx, align 1199  %arrayidx1 = getelementptr inbounds [20 x i8], ptr @GlobSt1, i64 0, i64 %Idx200  store i8 %0, ptr %arrayidx1, align 1201  ret void202}203 204; Function Attrs: nofree norecurse nounwind uwtable willreturn205define dso_local void @testGlob2PtrPlus0() {206; CHECK-P10-LE-LABEL: testGlob2PtrPlus0:207; CHECK-P10-LE:       # %bb.0: # %entry208; CHECK-P10-LE-NEXT:    plbz r3, GlobLd2@PCREL(0), 1209; CHECK-P10-LE-NEXT:    pstb r3, GlobSt2@PCREL(0), 1210; CHECK-P10-LE-NEXT:    blr211;212; CHECK-P10-BE-LABEL: testGlob2PtrPlus0:213; CHECK-P10-BE:       # %bb.0: # %entry214; CHECK-P10-BE-NEXT:    addis r3, r2, GlobLd2@toc@ha215; CHECK-P10-BE-NEXT:    addis r4, r2, GlobSt2@toc@ha216; CHECK-P10-BE-NEXT:    lbz r3, GlobLd2@toc@l(r3)217; CHECK-P10-BE-NEXT:    stb r3, GlobSt2@toc@l(r4)218; CHECK-P10-BE-NEXT:    blr219;220; CHECK-LABEL: testGlob2PtrPlus0:221; CHECK:       # %bb.0: # %entry222; CHECK-NEXT:    addis r3, r2, GlobLd2@toc@ha223; CHECK-NEXT:    addis r4, r2, GlobSt2@toc@ha224; CHECK-NEXT:    lbz r3, GlobLd2@toc@l(r3)225; CHECK-NEXT:    stb r3, GlobSt2@toc@l(r4)226; CHECK-NEXT:    blr227entry:228  %0 = load i8, ptr @GlobLd2, align 1229  store i8 %0, ptr @GlobSt2, align 1230  ret void231}232 233; Function Attrs: nofree norecurse nounwind uwtable willreturn234define dso_local void @testGlob2PtrPlus3() {235; CHECK-P10-LE-LABEL: testGlob2PtrPlus3:236; CHECK-P10-LE:       # %bb.0: # %entry237; CHECK-P10-LE-NEXT:    plbz r3, GlobLd2@PCREL+3(0), 1238; CHECK-P10-LE-NEXT:    pstb r3, GlobSt2@PCREL+3(0), 1239; CHECK-P10-LE-NEXT:    blr240;241; CHECK-P10-BE-LABEL: testGlob2PtrPlus3:242; CHECK-P10-BE:       # %bb.0: # %entry243; CHECK-P10-BE-NEXT:    addis r3, r2, GlobLd2@toc@ha244; CHECK-P10-BE-NEXT:    addis r4, r2, GlobSt2@toc@ha245; CHECK-P10-BE-NEXT:    addi r3, r3, GlobLd2@toc@l246; CHECK-P10-BE-NEXT:    addi r4, r4, GlobSt2@toc@l247; CHECK-P10-BE-NEXT:    lbz r3, 3(r3)248; CHECK-P10-BE-NEXT:    stb r3, 3(r4)249; CHECK-P10-BE-NEXT:    blr250;251; CHECK-LABEL: testGlob2PtrPlus3:252; CHECK:       # %bb.0: # %entry253; CHECK-NEXT:    addis r3, r2, GlobLd2@toc@ha254; CHECK-NEXT:    addis r4, r2, GlobSt2@toc@ha255; CHECK-NEXT:    addi r3, r3, GlobLd2@toc@l256; CHECK-NEXT:    addi r4, r4, GlobSt2@toc@l257; CHECK-NEXT:    lbz r3, 3(r3)258; CHECK-NEXT:    stb r3, 3(r4)259; CHECK-NEXT:    blr260entry:261  %0 = load i8, ptr getelementptr inbounds ([20 x i8], ptr @GlobLd2, i64 0, i64 3), align 1262  store i8 %0, ptr getelementptr inbounds ([20 x i8], ptr @GlobSt2, i64 0, i64 3), align 1263  ret void264}265 266; Function Attrs: nofree norecurse nounwind uwtable willreturn267define dso_local void @testGlob2PtrPlus4() {268; CHECK-P10-LE-LABEL: testGlob2PtrPlus4:269; CHECK-P10-LE:       # %bb.0: # %entry270; CHECK-P10-LE-NEXT:    plbz r3, GlobLd2@PCREL+4(0), 1271; CHECK-P10-LE-NEXT:    pstb r3, GlobSt2@PCREL+4(0), 1272; CHECK-P10-LE-NEXT:    blr273;274; CHECK-P10-BE-LABEL: testGlob2PtrPlus4:275; CHECK-P10-BE:       # %bb.0: # %entry276; CHECK-P10-BE-NEXT:    addis r3, r2, GlobLd2@toc@ha+4277; CHECK-P10-BE-NEXT:    addis r4, r2, GlobSt2@toc@ha+4278; CHECK-P10-BE-NEXT:    lbz r3, GlobLd2@toc@l+4(r3)279; CHECK-P10-BE-NEXT:    stb r3, GlobSt2@toc@l+4(r4)280; CHECK-P10-BE-NEXT:    blr281;282; CHECK-LABEL: testGlob2PtrPlus4:283; CHECK:       # %bb.0: # %entry284; CHECK-NEXT:    addis r3, r2, GlobLd2@toc@ha+4285; CHECK-NEXT:    addis r4, r2, GlobSt2@toc@ha+4286; CHECK-NEXT:    lbz r3, GlobLd2@toc@l+4(r3)287; CHECK-NEXT:    stb r3, GlobSt2@toc@l+4(r4)288; CHECK-NEXT:    blr289entry:290  %0 = load i8, ptr getelementptr inbounds ([20 x i8], ptr @GlobLd2, i64 0, i64 4), align 1291  store i8 %0, ptr getelementptr inbounds ([20 x i8], ptr @GlobSt2, i64 0, i64 4), align 1292  ret void293}294 295; Function Attrs: nofree norecurse nounwind uwtable willreturn296define dso_local void @testGlob2PtrPlus16() {297; CHECK-P10-LE-LABEL: testGlob2PtrPlus16:298; CHECK-P10-LE:       # %bb.0: # %entry299; CHECK-P10-LE-NEXT:    plbz r3, GlobLd2@PCREL+16(0), 1300; CHECK-P10-LE-NEXT:    pstb r3, GlobSt2@PCREL+16(0), 1301; CHECK-P10-LE-NEXT:    blr302;303; CHECK-P10-BE-LABEL: testGlob2PtrPlus16:304; CHECK-P10-BE:       # %bb.0: # %entry305; CHECK-P10-BE-NEXT:    addis r3, r2, GlobLd2@toc@ha+16306; CHECK-P10-BE-NEXT:    addis r4, r2, GlobSt2@toc@ha+16307; CHECK-P10-BE-NEXT:    lbz r3, GlobLd2@toc@l+16(r3)308; CHECK-P10-BE-NEXT:    stb r3, GlobSt2@toc@l+16(r4)309; CHECK-P10-BE-NEXT:    blr310;311; CHECK-LABEL: testGlob2PtrPlus16:312; CHECK:       # %bb.0: # %entry313; CHECK-NEXT:    addis r3, r2, GlobLd2@toc@ha+16314; CHECK-NEXT:    addis r4, r2, GlobSt2@toc@ha+16315; CHECK-NEXT:    lbz r3, GlobLd2@toc@l+16(r3)316; CHECK-NEXT:    stb r3, GlobSt2@toc@l+16(r4)317; CHECK-NEXT:    blr318entry:319  %0 = load i8, ptr getelementptr inbounds ([20 x i8], ptr @GlobLd2, i64 0, i64 16), align 1320  store i8 %0, ptr getelementptr inbounds ([20 x i8], ptr @GlobSt2, i64 0, i64 16), align 1321  ret void322}323 324; Function Attrs: nofree norecurse nounwind uwtable willreturn325define dso_local void @testGlob2PtrPlusVar(i64 %Idx) {326; CHECK-P10-LE-LABEL: testGlob2PtrPlusVar:327; CHECK-P10-LE:       # %bb.0: # %entry328; CHECK-P10-LE-NEXT:    paddi r4, 0, GlobLd2@PCREL, 1329; CHECK-P10-LE-NEXT:    paddi r5, 0, GlobSt2@PCREL, 1330; CHECK-P10-LE-NEXT:    lbzx r4, r4, r3331; CHECK-P10-LE-NEXT:    stbx r4, r5, r3332; CHECK-P10-LE-NEXT:    blr333;334; CHECK-P10-BE-LABEL: testGlob2PtrPlusVar:335; CHECK-P10-BE:       # %bb.0: # %entry336; CHECK-P10-BE-NEXT:    addis r4, r2, GlobLd2@toc@ha337; CHECK-P10-BE-NEXT:    addis r5, r2, GlobSt2@toc@ha338; CHECK-P10-BE-NEXT:    addi r4, r4, GlobLd2@toc@l339; CHECK-P10-BE-NEXT:    addi r5, r5, GlobSt2@toc@l340; CHECK-P10-BE-NEXT:    lbzx r4, r4, r3341; CHECK-P10-BE-NEXT:    stbx r4, r5, r3342; CHECK-P10-BE-NEXT:    blr343;344; CHECK-LABEL: testGlob2PtrPlusVar:345; CHECK:       # %bb.0: # %entry346; CHECK-NEXT:    addis r4, r2, GlobLd2@toc@ha347; CHECK-NEXT:    addis r5, r2, GlobSt2@toc@ha348; CHECK-NEXT:    addi r4, r4, GlobLd2@toc@l349; CHECK-NEXT:    addi r5, r5, GlobSt2@toc@l350; CHECK-NEXT:    lbzx r4, r4, r3351; CHECK-NEXT:    stbx r4, r5, r3352; CHECK-NEXT:    blr353entry:354  %arrayidx = getelementptr inbounds [20 x i8], ptr @GlobLd2, i64 0, i64 %Idx355  %0 = load i8, ptr %arrayidx, align 1356  %arrayidx1 = getelementptr inbounds [20 x i8], ptr @GlobSt2, i64 0, i64 %Idx357  store i8 %0, ptr %arrayidx1, align 1358  ret void359}360 361; Function Attrs: nofree norecurse nounwind uwtable willreturn362define dso_local void @testGlob3PtrPlus0() {363; CHECK-P10-LE-LABEL: testGlob3PtrPlus0:364; CHECK-P10-LE:       # %bb.0: # %entry365; CHECK-P10-LE-NEXT:    plhz r3, GlobLd3@PCREL(0), 1366; CHECK-P10-LE-NEXT:    psth r3, GlobSt3@PCREL(0), 1367; CHECK-P10-LE-NEXT:    blr368;369; CHECK-P10-BE-LABEL: testGlob3PtrPlus0:370; CHECK-P10-BE:       # %bb.0: # %entry371; CHECK-P10-BE-NEXT:    addis r3, r2, GlobLd3@toc@ha372; CHECK-P10-BE-NEXT:    addis r4, r2, GlobSt3@toc@ha373; CHECK-P10-BE-NEXT:    lhz r3, GlobLd3@toc@l(r3)374; CHECK-P10-BE-NEXT:    sth r3, GlobSt3@toc@l(r4)375; CHECK-P10-BE-NEXT:    blr376;377; CHECK-LABEL: testGlob3PtrPlus0:378; CHECK:       # %bb.0: # %entry379; CHECK-NEXT:    addis r3, r2, GlobLd3@toc@ha380; CHECK-NEXT:    addis r4, r2, GlobSt3@toc@ha381; CHECK-NEXT:    lhz r3, GlobLd3@toc@l(r3)382; CHECK-NEXT:    sth r3, GlobSt3@toc@l(r4)383; CHECK-NEXT:    blr384entry:385  %0 = load i16, ptr @GlobLd3, align 2386  store i16 %0, ptr @GlobSt3, align 2387  ret void388}389 390; Function Attrs: nofree norecurse nounwind uwtable willreturn391define dso_local void @testGlob3PtrPlus3() {392; CHECK-P10-LE-LABEL: testGlob3PtrPlus3:393; CHECK-P10-LE:       # %bb.0: # %entry394; CHECK-P10-LE-NEXT:    plhz r3, GlobLd3@PCREL+3(0), 1395; CHECK-P10-LE-NEXT:    psth r3, GlobSt3@PCREL+3(0), 1396; CHECK-P10-LE-NEXT:    blr397;398; CHECK-P10-BE-LABEL: testGlob3PtrPlus3:399; CHECK-P10-BE:       # %bb.0: # %entry400; CHECK-P10-BE-NEXT:    addis r3, r2, GlobLd3@toc@ha401; CHECK-P10-BE-NEXT:    addis r4, r2, GlobSt3@toc@ha402; CHECK-P10-BE-NEXT:    addi r3, r3, GlobLd3@toc@l403; CHECK-P10-BE-NEXT:    addi r4, r4, GlobSt3@toc@l404; CHECK-P10-BE-NEXT:    lhz r3, 3(r3)405; CHECK-P10-BE-NEXT:    sth r3, 3(r4)406; CHECK-P10-BE-NEXT:    blr407;408; CHECK-LABEL: testGlob3PtrPlus3:409; CHECK:       # %bb.0: # %entry410; CHECK-NEXT:    addis r3, r2, GlobLd3@toc@ha411; CHECK-NEXT:    addis r4, r2, GlobSt3@toc@ha412; CHECK-NEXT:    addi r3, r3, GlobLd3@toc@l413; CHECK-NEXT:    addi r4, r4, GlobSt3@toc@l414; CHECK-NEXT:    lhz r3, 3(r3)415; CHECK-NEXT:    sth r3, 3(r4)416; CHECK-NEXT:    blr417entry:418  %0 = load i16, ptr getelementptr inbounds (i8, ptr @GlobLd3, i64 3), align 2419  store i16 %0, ptr getelementptr inbounds (i8, ptr @GlobSt3, i64 3), align 2420  ret void421}422 423; Function Attrs: nofree norecurse nounwind uwtable willreturn424define dso_local void @testGlob3PtrPlus4() {425; CHECK-P10-LE-LABEL: testGlob3PtrPlus4:426; CHECK-P10-LE:       # %bb.0: # %entry427; CHECK-P10-LE-NEXT:    plhz r3, GlobLd3@PCREL+4(0), 1428; CHECK-P10-LE-NEXT:    psth r3, GlobSt3@PCREL+4(0), 1429; CHECK-P10-LE-NEXT:    blr430;431; CHECK-P10-BE-LABEL: testGlob3PtrPlus4:432; CHECK-P10-BE:       # %bb.0: # %entry433; CHECK-P10-BE-NEXT:    addis r3, r2, GlobLd3@toc@ha+4434; CHECK-P10-BE-NEXT:    addis r4, r2, GlobSt3@toc@ha+4435; CHECK-P10-BE-NEXT:    lhz r3, GlobLd3@toc@l+4(r3)436; CHECK-P10-BE-NEXT:    sth r3, GlobSt3@toc@l+4(r4)437; CHECK-P10-BE-NEXT:    blr438;439; CHECK-LABEL: testGlob3PtrPlus4:440; CHECK:       # %bb.0: # %entry441; CHECK-NEXT:    addis r3, r2, GlobLd3@toc@ha+4442; CHECK-NEXT:    addis r4, r2, GlobSt3@toc@ha+4443; CHECK-NEXT:    lhz r3, GlobLd3@toc@l+4(r3)444; CHECK-NEXT:    sth r3, GlobSt3@toc@l+4(r4)445; CHECK-NEXT:    blr446entry:447  %0 = load i16, ptr getelementptr inbounds ([20 x i16], ptr @GlobLd3, i64 0, i64 2), align 2448  store i16 %0, ptr getelementptr inbounds ([20 x i16], ptr @GlobSt3, i64 0, i64 2), align 2449  ret void450}451 452; Function Attrs: nofree norecurse nounwind uwtable willreturn453define dso_local void @testGlob3PtrPlus16() {454; CHECK-P10-LE-LABEL: testGlob3PtrPlus16:455; CHECK-P10-LE:       # %bb.0: # %entry456; CHECK-P10-LE-NEXT:    plhz r3, GlobLd3@PCREL+16(0), 1457; CHECK-P10-LE-NEXT:    psth r3, GlobSt3@PCREL+16(0), 1458; CHECK-P10-LE-NEXT:    blr459;460; CHECK-P10-BE-LABEL: testGlob3PtrPlus16:461; CHECK-P10-BE:       # %bb.0: # %entry462; CHECK-P10-BE-NEXT:    addis r3, r2, GlobLd3@toc@ha+16463; CHECK-P10-BE-NEXT:    addis r4, r2, GlobSt3@toc@ha+16464; CHECK-P10-BE-NEXT:    lhz r3, GlobLd3@toc@l+16(r3)465; CHECK-P10-BE-NEXT:    sth r3, GlobSt3@toc@l+16(r4)466; CHECK-P10-BE-NEXT:    blr467;468; CHECK-LABEL: testGlob3PtrPlus16:469; CHECK:       # %bb.0: # %entry470; CHECK-NEXT:    addis r3, r2, GlobLd3@toc@ha+16471; CHECK-NEXT:    addis r4, r2, GlobSt3@toc@ha+16472; CHECK-NEXT:    lhz r3, GlobLd3@toc@l+16(r3)473; CHECK-NEXT:    sth r3, GlobSt3@toc@l+16(r4)474; CHECK-NEXT:    blr475entry:476  %0 = load i16, ptr getelementptr inbounds ([20 x i16], ptr @GlobLd3, i64 0, i64 8), align 2477  store i16 %0, ptr getelementptr inbounds ([20 x i16], ptr @GlobSt3, i64 0, i64 8), align 2478  ret void479}480 481; Function Attrs: nofree norecurse nounwind uwtable willreturn482define dso_local void @testGlob3PtrPlusVar(i64 %Idx) {483; CHECK-P10-LE-LABEL: testGlob3PtrPlusVar:484; CHECK-P10-LE:       # %bb.0: # %entry485; CHECK-P10-LE-NEXT:    sldi r3, r3, 1486; CHECK-P10-LE-NEXT:    paddi r4, 0, GlobLd3@PCREL, 1487; CHECK-P10-LE-NEXT:    paddi r5, 0, GlobSt3@PCREL, 1488; CHECK-P10-LE-NEXT:    lhzx r4, r4, r3489; CHECK-P10-LE-NEXT:    sthx r4, r5, r3490; CHECK-P10-LE-NEXT:    blr491;492; CHECK-P10-BE-LABEL: testGlob3PtrPlusVar:493; CHECK-P10-BE:       # %bb.0: # %entry494; CHECK-P10-BE-NEXT:    addis r4, r2, GlobLd3@toc@ha495; CHECK-P10-BE-NEXT:    sldi r3, r3, 1496; CHECK-P10-BE-NEXT:    addis r5, r2, GlobSt3@toc@ha497; CHECK-P10-BE-NEXT:    addi r4, r4, GlobLd3@toc@l498; CHECK-P10-BE-NEXT:    addi r5, r5, GlobSt3@toc@l499; CHECK-P10-BE-NEXT:    lhzx r4, r4, r3500; CHECK-P10-BE-NEXT:    sthx r4, r5, r3501; CHECK-P10-BE-NEXT:    blr502;503; CHECK-LABEL: testGlob3PtrPlusVar:504; CHECK:       # %bb.0: # %entry505; CHECK-NEXT:    addis r4, r2, GlobLd3@toc@ha506; CHECK-NEXT:    sldi r3, r3, 1507; CHECK-NEXT:    addis r5, r2, GlobSt3@toc@ha508; CHECK-NEXT:    addi r4, r4, GlobLd3@toc@l509; CHECK-NEXT:    addi r5, r5, GlobSt3@toc@l510; CHECK-NEXT:    lhzx r4, r4, r3511; CHECK-NEXT:    sthx r4, r5, r3512; CHECK-NEXT:    blr513entry:514  %arrayidx = getelementptr inbounds [20 x i16], ptr @GlobLd3, i64 0, i64 %Idx515  %0 = load i16, ptr %arrayidx, align 2516  %arrayidx1 = getelementptr inbounds [20 x i16], ptr @GlobSt3, i64 0, i64 %Idx517  store i16 %0, ptr %arrayidx1, align 2518  ret void519}520 521; Function Attrs: nofree norecurse nounwind uwtable willreturn522define dso_local void @testGlob4PtrPlus0() {523; CHECK-P10-LE-LABEL: testGlob4PtrPlus0:524; CHECK-P10-LE:       # %bb.0: # %entry525; CHECK-P10-LE-NEXT:    plhz r3, GlobLd4@PCREL(0), 1526; CHECK-P10-LE-NEXT:    psth r3, GlobSt4@PCREL(0), 1527; CHECK-P10-LE-NEXT:    blr528;529; CHECK-P10-BE-LABEL: testGlob4PtrPlus0:530; CHECK-P10-BE:       # %bb.0: # %entry531; CHECK-P10-BE-NEXT:    addis r3, r2, GlobLd4@toc@ha532; CHECK-P10-BE-NEXT:    addis r4, r2, GlobSt4@toc@ha533; CHECK-P10-BE-NEXT:    lhz r3, GlobLd4@toc@l(r3)534; CHECK-P10-BE-NEXT:    sth r3, GlobSt4@toc@l(r4)535; CHECK-P10-BE-NEXT:    blr536;537; CHECK-LABEL: testGlob4PtrPlus0:538; CHECK:       # %bb.0: # %entry539; CHECK-NEXT:    addis r3, r2, GlobLd4@toc@ha540; CHECK-NEXT:    addis r4, r2, GlobSt4@toc@ha541; CHECK-NEXT:    lhz r3, GlobLd4@toc@l(r3)542; CHECK-NEXT:    sth r3, GlobSt4@toc@l(r4)543; CHECK-NEXT:    blr544entry:545  %0 = load i16, ptr @GlobLd4, align 2546  store i16 %0, ptr @GlobSt4, align 2547  ret void548}549 550; Function Attrs: nofree norecurse nounwind uwtable willreturn551define dso_local void @testGlob4PtrPlus3() {552; CHECK-P10-LE-LABEL: testGlob4PtrPlus3:553; CHECK-P10-LE:       # %bb.0: # %entry554; CHECK-P10-LE-NEXT:    plhz r3, GlobLd4@PCREL+3(0), 1555; CHECK-P10-LE-NEXT:    psth r3, GlobSt4@PCREL+3(0), 1556; CHECK-P10-LE-NEXT:    blr557;558; CHECK-P10-BE-LABEL: testGlob4PtrPlus3:559; CHECK-P10-BE:       # %bb.0: # %entry560; CHECK-P10-BE-NEXT:    addis r3, r2, GlobLd4@toc@ha561; CHECK-P10-BE-NEXT:    addis r4, r2, GlobSt4@toc@ha562; CHECK-P10-BE-NEXT:    addi r3, r3, GlobLd4@toc@l563; CHECK-P10-BE-NEXT:    addi r4, r4, GlobSt4@toc@l564; CHECK-P10-BE-NEXT:    lhz r3, 3(r3)565; CHECK-P10-BE-NEXT:    sth r3, 3(r4)566; CHECK-P10-BE-NEXT:    blr567;568; CHECK-LABEL: testGlob4PtrPlus3:569; CHECK:       # %bb.0: # %entry570; CHECK-NEXT:    addis r3, r2, GlobLd4@toc@ha571; CHECK-NEXT:    addis r4, r2, GlobSt4@toc@ha572; CHECK-NEXT:    addi r3, r3, GlobLd4@toc@l573; CHECK-NEXT:    addi r4, r4, GlobSt4@toc@l574; CHECK-NEXT:    lhz r3, 3(r3)575; CHECK-NEXT:    sth r3, 3(r4)576; CHECK-NEXT:    blr577entry:578  %0 = load i16, ptr getelementptr inbounds (i8, ptr @GlobLd4, i64 3), align 2579  store i16 %0, ptr getelementptr inbounds (i8, ptr @GlobSt4, i64 3), align 2580  ret void581}582 583; Function Attrs: nofree norecurse nounwind uwtable willreturn584define dso_local void @testGlob4PtrPlus4() {585; CHECK-P10-LE-LABEL: testGlob4PtrPlus4:586; CHECK-P10-LE:       # %bb.0: # %entry587; CHECK-P10-LE-NEXT:    plhz r3, GlobLd4@PCREL+4(0), 1588; CHECK-P10-LE-NEXT:    psth r3, GlobSt4@PCREL+4(0), 1589; CHECK-P10-LE-NEXT:    blr590;591; CHECK-P10-BE-LABEL: testGlob4PtrPlus4:592; CHECK-P10-BE:       # %bb.0: # %entry593; CHECK-P10-BE-NEXT:    addis r3, r2, GlobLd4@toc@ha+4594; CHECK-P10-BE-NEXT:    addis r4, r2, GlobSt4@toc@ha+4595; CHECK-P10-BE-NEXT:    lhz r3, GlobLd4@toc@l+4(r3)596; CHECK-P10-BE-NEXT:    sth r3, GlobSt4@toc@l+4(r4)597; CHECK-P10-BE-NEXT:    blr598;599; CHECK-LABEL: testGlob4PtrPlus4:600; CHECK:       # %bb.0: # %entry601; CHECK-NEXT:    addis r3, r2, GlobLd4@toc@ha+4602; CHECK-NEXT:    addis r4, r2, GlobSt4@toc@ha+4603; CHECK-NEXT:    lhz r3, GlobLd4@toc@l+4(r3)604; CHECK-NEXT:    sth r3, GlobSt4@toc@l+4(r4)605; CHECK-NEXT:    blr606entry:607  %0 = load i16, ptr getelementptr inbounds ([20 x i16], ptr @GlobLd4, i64 0, i64 2), align 2608  store i16 %0, ptr getelementptr inbounds ([20 x i16], ptr @GlobSt4, i64 0, i64 2), align 2609  ret void610}611 612; Function Attrs: nofree norecurse nounwind uwtable willreturn613define dso_local void @testGlob4PtrPlus16() {614; CHECK-P10-LE-LABEL: testGlob4PtrPlus16:615; CHECK-P10-LE:       # %bb.0: # %entry616; CHECK-P10-LE-NEXT:    plhz r3, GlobLd4@PCREL+16(0), 1617; CHECK-P10-LE-NEXT:    psth r3, GlobSt4@PCREL+16(0), 1618; CHECK-P10-LE-NEXT:    blr619;620; CHECK-P10-BE-LABEL: testGlob4PtrPlus16:621; CHECK-P10-BE:       # %bb.0: # %entry622; CHECK-P10-BE-NEXT:    addis r3, r2, GlobLd4@toc@ha+16623; CHECK-P10-BE-NEXT:    addis r4, r2, GlobSt4@toc@ha+16624; CHECK-P10-BE-NEXT:    lhz r3, GlobLd4@toc@l+16(r3)625; CHECK-P10-BE-NEXT:    sth r3, GlobSt4@toc@l+16(r4)626; CHECK-P10-BE-NEXT:    blr627;628; CHECK-LABEL: testGlob4PtrPlus16:629; CHECK:       # %bb.0: # %entry630; CHECK-NEXT:    addis r3, r2, GlobLd4@toc@ha+16631; CHECK-NEXT:    addis r4, r2, GlobSt4@toc@ha+16632; CHECK-NEXT:    lhz r3, GlobLd4@toc@l+16(r3)633; CHECK-NEXT:    sth r3, GlobSt4@toc@l+16(r4)634; CHECK-NEXT:    blr635entry:636  %0 = load i16, ptr getelementptr inbounds ([20 x i16], ptr @GlobLd4, i64 0, i64 8), align 2637  store i16 %0, ptr getelementptr inbounds ([20 x i16], ptr @GlobSt4, i64 0, i64 8), align 2638  ret void639}640 641; Function Attrs: nofree norecurse nounwind uwtable willreturn642define dso_local void @testGlob4PtrPlusVar(i64 %Idx) {643; CHECK-P10-LE-LABEL: testGlob4PtrPlusVar:644; CHECK-P10-LE:       # %bb.0: # %entry645; CHECK-P10-LE-NEXT:    sldi r3, r3, 1646; CHECK-P10-LE-NEXT:    paddi r4, 0, GlobLd4@PCREL, 1647; CHECK-P10-LE-NEXT:    paddi r5, 0, GlobSt4@PCREL, 1648; CHECK-P10-LE-NEXT:    lhzx r4, r4, r3649; CHECK-P10-LE-NEXT:    sthx r4, r5, r3650; CHECK-P10-LE-NEXT:    blr651;652; CHECK-P10-BE-LABEL: testGlob4PtrPlusVar:653; CHECK-P10-BE:       # %bb.0: # %entry654; CHECK-P10-BE-NEXT:    addis r4, r2, GlobLd4@toc@ha655; CHECK-P10-BE-NEXT:    sldi r3, r3, 1656; CHECK-P10-BE-NEXT:    addis r5, r2, GlobSt4@toc@ha657; CHECK-P10-BE-NEXT:    addi r4, r4, GlobLd4@toc@l658; CHECK-P10-BE-NEXT:    addi r5, r5, GlobSt4@toc@l659; CHECK-P10-BE-NEXT:    lhzx r4, r4, r3660; CHECK-P10-BE-NEXT:    sthx r4, r5, r3661; CHECK-P10-BE-NEXT:    blr662;663; CHECK-LABEL: testGlob4PtrPlusVar:664; CHECK:       # %bb.0: # %entry665; CHECK-NEXT:    addis r4, r2, GlobLd4@toc@ha666; CHECK-NEXT:    sldi r3, r3, 1667; CHECK-NEXT:    addis r5, r2, GlobSt4@toc@ha668; CHECK-NEXT:    addi r4, r4, GlobLd4@toc@l669; CHECK-NEXT:    addi r5, r5, GlobSt4@toc@l670; CHECK-NEXT:    lhzx r4, r4, r3671; CHECK-NEXT:    sthx r4, r5, r3672; CHECK-NEXT:    blr673entry:674  %arrayidx = getelementptr inbounds [20 x i16], ptr @GlobLd4, i64 0, i64 %Idx675  %0 = load i16, ptr %arrayidx, align 2676  %arrayidx1 = getelementptr inbounds [20 x i16], ptr @GlobSt4, i64 0, i64 %Idx677  store i16 %0, ptr %arrayidx1, align 2678  ret void679}680 681; Function Attrs: nofree norecurse nounwind uwtable willreturn682define dso_local void @testGlob5PtrPlus0() {683; CHECK-P10-LE-LABEL: testGlob5PtrPlus0:684; CHECK-P10-LE:       # %bb.0: # %entry685; CHECK-P10-LE-NEXT:    plwz r3, GlobLd5@PCREL(0), 1686; CHECK-P10-LE-NEXT:    pstw r3, GlobSt5@PCREL(0), 1687; CHECK-P10-LE-NEXT:    blr688;689; CHECK-P10-BE-LABEL: testGlob5PtrPlus0:690; CHECK-P10-BE:       # %bb.0: # %entry691; CHECK-P10-BE-NEXT:    addis r3, r2, GlobLd5@toc@ha692; CHECK-P10-BE-NEXT:    addis r4, r2, GlobSt5@toc@ha693; CHECK-P10-BE-NEXT:    lwz r3, GlobLd5@toc@l(r3)694; CHECK-P10-BE-NEXT:    stw r3, GlobSt5@toc@l(r4)695; CHECK-P10-BE-NEXT:    blr696;697; CHECK-LABEL: testGlob5PtrPlus0:698; CHECK:       # %bb.0: # %entry699; CHECK-NEXT:    addis r3, r2, GlobLd5@toc@ha700; CHECK-NEXT:    addis r4, r2, GlobSt5@toc@ha701; CHECK-NEXT:    lwz r3, GlobLd5@toc@l(r3)702; CHECK-NEXT:    stw r3, GlobSt5@toc@l(r4)703; CHECK-NEXT:    blr704entry:705  %0 = load i32, ptr @GlobLd5, align 4706  store i32 %0, ptr @GlobSt5, align 4707  ret void708}709 710; Function Attrs: nofree norecurse nounwind uwtable willreturn711define dso_local void @testGlob5PtrPlus3() {712; CHECK-P10-LE-LABEL: testGlob5PtrPlus3:713; CHECK-P10-LE:       # %bb.0: # %entry714; CHECK-P10-LE-NEXT:    plwz r3, GlobLd5@PCREL+3(0), 1715; CHECK-P10-LE-NEXT:    pstw r3, GlobSt5@PCREL+3(0), 1716; CHECK-P10-LE-NEXT:    blr717;718; CHECK-P10-BE-LABEL: testGlob5PtrPlus3:719; CHECK-P10-BE:       # %bb.0: # %entry720; CHECK-P10-BE-NEXT:    addis r3, r2, GlobLd5@toc@ha721; CHECK-P10-BE-NEXT:    addis r4, r2, GlobSt5@toc@ha722; CHECK-P10-BE-NEXT:    lwz r3, GlobLd5@toc@l+3(r3)723; CHECK-P10-BE-NEXT:    stw r3, GlobSt5@toc@l+3(r4)724; CHECK-P10-BE-NEXT:    blr725;726; CHECK-LABEL: testGlob5PtrPlus3:727; CHECK:       # %bb.0: # %entry728; CHECK-NEXT:    addis r3, r2, GlobLd5@toc@ha729; CHECK-NEXT:    addis r4, r2, GlobSt5@toc@ha730; CHECK-NEXT:    lwz r3, GlobLd5@toc@l+3(r3)731; CHECK-NEXT:    stw r3, GlobSt5@toc@l+3(r4)732; CHECK-NEXT:    blr733entry:734  %0 = load i32, ptr getelementptr inbounds (i8, ptr @GlobLd5, i64 3), align 4735  store i32 %0, ptr getelementptr inbounds (i8, ptr @GlobSt5, i64 3), align 4736  ret void737}738 739; Function Attrs: nofree norecurse nounwind uwtable willreturn740define dso_local void @testGlob5PtrPlus4() {741; CHECK-P10-LE-LABEL: testGlob5PtrPlus4:742; CHECK-P10-LE:       # %bb.0: # %entry743; CHECK-P10-LE-NEXT:    plwz r3, GlobLd5@PCREL+4(0), 1744; CHECK-P10-LE-NEXT:    pstw r3, GlobSt5@PCREL+4(0), 1745; CHECK-P10-LE-NEXT:    blr746;747; CHECK-P10-BE-LABEL: testGlob5PtrPlus4:748; CHECK-P10-BE:       # %bb.0: # %entry749; CHECK-P10-BE-NEXT:    addis r3, r2, GlobLd5@toc@ha+4750; CHECK-P10-BE-NEXT:    addis r4, r2, GlobSt5@toc@ha+4751; CHECK-P10-BE-NEXT:    lwz r3, GlobLd5@toc@l+4(r3)752; CHECK-P10-BE-NEXT:    stw r3, GlobSt5@toc@l+4(r4)753; CHECK-P10-BE-NEXT:    blr754;755; CHECK-LABEL: testGlob5PtrPlus4:756; CHECK:       # %bb.0: # %entry757; CHECK-NEXT:    addis r3, r2, GlobLd5@toc@ha+4758; CHECK-NEXT:    addis r4, r2, GlobSt5@toc@ha+4759; CHECK-NEXT:    lwz r3, GlobLd5@toc@l+4(r3)760; CHECK-NEXT:    stw r3, GlobSt5@toc@l+4(r4)761; CHECK-NEXT:    blr762entry:763  %0 = load i32, ptr getelementptr inbounds ([20 x i32], ptr @GlobLd5, i64 0, i64 1), align 4764  store i32 %0, ptr getelementptr inbounds ([20 x i32], ptr @GlobSt5, i64 0, i64 1), align 4765  ret void766}767 768; Function Attrs: nofree norecurse nounwind uwtable willreturn769define dso_local void @testGlob5PtrPlus16() {770; CHECK-P10-LE-LABEL: testGlob5PtrPlus16:771; CHECK-P10-LE:       # %bb.0: # %entry772; CHECK-P10-LE-NEXT:    plwz r3, GlobLd5@PCREL+16(0), 1773; CHECK-P10-LE-NEXT:    pstw r3, GlobSt5@PCREL+16(0), 1774; CHECK-P10-LE-NEXT:    blr775;776; CHECK-P10-BE-LABEL: testGlob5PtrPlus16:777; CHECK-P10-BE:       # %bb.0: # %entry778; CHECK-P10-BE-NEXT:    addis r3, r2, GlobLd5@toc@ha+16779; CHECK-P10-BE-NEXT:    addis r4, r2, GlobSt5@toc@ha+16780; CHECK-P10-BE-NEXT:    lwz r3, GlobLd5@toc@l+16(r3)781; CHECK-P10-BE-NEXT:    stw r3, GlobSt5@toc@l+16(r4)782; CHECK-P10-BE-NEXT:    blr783;784; CHECK-LABEL: testGlob5PtrPlus16:785; CHECK:       # %bb.0: # %entry786; CHECK-NEXT:    addis r3, r2, GlobLd5@toc@ha+16787; CHECK-NEXT:    addis r4, r2, GlobSt5@toc@ha+16788; CHECK-NEXT:    lwz r3, GlobLd5@toc@l+16(r3)789; CHECK-NEXT:    stw r3, GlobSt5@toc@l+16(r4)790; CHECK-NEXT:    blr791entry:792  %0 = load i32, ptr getelementptr inbounds ([20 x i32], ptr @GlobLd5, i64 0, i64 4), align 4793  store i32 %0, ptr getelementptr inbounds ([20 x i32], ptr @GlobSt5, i64 0, i64 4), align 4794  ret void795}796 797; Function Attrs: nofree norecurse nounwind uwtable willreturn798define dso_local void @testGlob5PtrPlusVar(i64 %Idx) {799; CHECK-P10-LE-LABEL: testGlob5PtrPlusVar:800; CHECK-P10-LE:       # %bb.0: # %entry801; CHECK-P10-LE-NEXT:    sldi r3, r3, 2802; CHECK-P10-LE-NEXT:    paddi r4, 0, GlobLd5@PCREL, 1803; CHECK-P10-LE-NEXT:    paddi r5, 0, GlobSt5@PCREL, 1804; CHECK-P10-LE-NEXT:    lwzx r4, r4, r3805; CHECK-P10-LE-NEXT:    stwx r4, r5, r3806; CHECK-P10-LE-NEXT:    blr807;808; CHECK-P10-BE-LABEL: testGlob5PtrPlusVar:809; CHECK-P10-BE:       # %bb.0: # %entry810; CHECK-P10-BE-NEXT:    addis r4, r2, GlobLd5@toc@ha811; CHECK-P10-BE-NEXT:    sldi r3, r3, 2812; CHECK-P10-BE-NEXT:    addis r5, r2, GlobSt5@toc@ha813; CHECK-P10-BE-NEXT:    addi r4, r4, GlobLd5@toc@l814; CHECK-P10-BE-NEXT:    addi r5, r5, GlobSt5@toc@l815; CHECK-P10-BE-NEXT:    lwzx r4, r4, r3816; CHECK-P10-BE-NEXT:    stwx r4, r5, r3817; CHECK-P10-BE-NEXT:    blr818;819; CHECK-LABEL: testGlob5PtrPlusVar:820; CHECK:       # %bb.0: # %entry821; CHECK-NEXT:    addis r4, r2, GlobLd5@toc@ha822; CHECK-NEXT:    sldi r3, r3, 2823; CHECK-NEXT:    addis r5, r2, GlobSt5@toc@ha824; CHECK-NEXT:    addi r4, r4, GlobLd5@toc@l825; CHECK-NEXT:    addi r5, r5, GlobSt5@toc@l826; CHECK-NEXT:    lwzx r4, r4, r3827; CHECK-NEXT:    stwx r4, r5, r3828; CHECK-NEXT:    blr829entry:830  %arrayidx = getelementptr inbounds [20 x i32], ptr @GlobLd5, i64 0, i64 %Idx831  %0 = load i32, ptr %arrayidx, align 4832  %arrayidx1 = getelementptr inbounds [20 x i32], ptr @GlobSt5, i64 0, i64 %Idx833  store i32 %0, ptr %arrayidx1, align 4834  ret void835}836 837; Function Attrs: nofree norecurse nounwind uwtable willreturn838define dso_local void @testGlob6PtrPlus0() {839; CHECK-P10-LE-LABEL: testGlob6PtrPlus0:840; CHECK-P10-LE:       # %bb.0: # %entry841; CHECK-P10-LE-NEXT:    plwz r3, GlobLd6@PCREL(0), 1842; CHECK-P10-LE-NEXT:    pstw r3, GlobSt6@PCREL(0), 1843; CHECK-P10-LE-NEXT:    blr844;845; CHECK-P10-BE-LABEL: testGlob6PtrPlus0:846; CHECK-P10-BE:       # %bb.0: # %entry847; CHECK-P10-BE-NEXT:    addis r3, r2, GlobLd6@toc@ha848; CHECK-P10-BE-NEXT:    addis r4, r2, GlobSt6@toc@ha849; CHECK-P10-BE-NEXT:    lwz r3, GlobLd6@toc@l(r3)850; CHECK-P10-BE-NEXT:    stw r3, GlobSt6@toc@l(r4)851; CHECK-P10-BE-NEXT:    blr852;853; CHECK-LABEL: testGlob6PtrPlus0:854; CHECK:       # %bb.0: # %entry855; CHECK-NEXT:    addis r3, r2, GlobLd6@toc@ha856; CHECK-NEXT:    addis r4, r2, GlobSt6@toc@ha857; CHECK-NEXT:    lwz r3, GlobLd6@toc@l(r3)858; CHECK-NEXT:    stw r3, GlobSt6@toc@l(r4)859; CHECK-NEXT:    blr860entry:861  %0 = load i32, ptr @GlobLd6, align 4862  store i32 %0, ptr @GlobSt6, align 4863  ret void864}865 866; Function Attrs: nofree norecurse nounwind uwtable willreturn867define dso_local void @testGlob6PtrPlus3() {868; CHECK-P10-LE-LABEL: testGlob6PtrPlus3:869; CHECK-P10-LE:       # %bb.0: # %entry870; CHECK-P10-LE-NEXT:    plwz r3, GlobLd6@PCREL+3(0), 1871; CHECK-P10-LE-NEXT:    pstw r3, GlobSt6@PCREL+3(0), 1872; CHECK-P10-LE-NEXT:    blr873;874; CHECK-P10-BE-LABEL: testGlob6PtrPlus3:875; CHECK-P10-BE:       # %bb.0: # %entry876; CHECK-P10-BE-NEXT:    addis r3, r2, GlobLd6@toc@ha877; CHECK-P10-BE-NEXT:    addis r4, r2, GlobSt6@toc@ha878; CHECK-P10-BE-NEXT:    lwz r3, GlobLd6@toc@l+3(r3)879; CHECK-P10-BE-NEXT:    stw r3, GlobSt6@toc@l+3(r4)880; CHECK-P10-BE-NEXT:    blr881;882; CHECK-LABEL: testGlob6PtrPlus3:883; CHECK:       # %bb.0: # %entry884; CHECK-NEXT:    addis r3, r2, GlobLd6@toc@ha885; CHECK-NEXT:    addis r4, r2, GlobSt6@toc@ha886; CHECK-NEXT:    lwz r3, GlobLd6@toc@l+3(r3)887; CHECK-NEXT:    stw r3, GlobSt6@toc@l+3(r4)888; CHECK-NEXT:    blr889entry:890  %0 = load i32, ptr getelementptr inbounds (i8, ptr @GlobLd6, i64 3), align 4891  store i32 %0, ptr getelementptr inbounds (i8, ptr @GlobSt6, i64 3), align 4892  ret void893}894 895; Function Attrs: nofree norecurse nounwind uwtable willreturn896define dso_local void @testGlob6PtrPlus4() {897; CHECK-P10-LE-LABEL: testGlob6PtrPlus4:898; CHECK-P10-LE:       # %bb.0: # %entry899; CHECK-P10-LE-NEXT:    plwz r3, GlobLd6@PCREL+4(0), 1900; CHECK-P10-LE-NEXT:    pstw r3, GlobSt6@PCREL+4(0), 1901; CHECK-P10-LE-NEXT:    blr902;903; CHECK-P10-BE-LABEL: testGlob6PtrPlus4:904; CHECK-P10-BE:       # %bb.0: # %entry905; CHECK-P10-BE-NEXT:    addis r3, r2, GlobLd6@toc@ha+4906; CHECK-P10-BE-NEXT:    addis r4, r2, GlobSt6@toc@ha+4907; CHECK-P10-BE-NEXT:    lwz r3, GlobLd6@toc@l+4(r3)908; CHECK-P10-BE-NEXT:    stw r3, GlobSt6@toc@l+4(r4)909; CHECK-P10-BE-NEXT:    blr910;911; CHECK-LABEL: testGlob6PtrPlus4:912; CHECK:       # %bb.0: # %entry913; CHECK-NEXT:    addis r3, r2, GlobLd6@toc@ha+4914; CHECK-NEXT:    addis r4, r2, GlobSt6@toc@ha+4915; CHECK-NEXT:    lwz r3, GlobLd6@toc@l+4(r3)916; CHECK-NEXT:    stw r3, GlobSt6@toc@l+4(r4)917; CHECK-NEXT:    blr918entry:919  %0 = load i32, ptr getelementptr inbounds ([20 x i32], ptr @GlobLd6, i64 0, i64 1), align 4920  store i32 %0, ptr getelementptr inbounds ([20 x i32], ptr @GlobSt6, i64 0, i64 1), align 4921  ret void922}923 924; Function Attrs: nofree norecurse nounwind uwtable willreturn925define dso_local void @testGlob6PtrPlus16() {926; CHECK-P10-LE-LABEL: testGlob6PtrPlus16:927; CHECK-P10-LE:       # %bb.0: # %entry928; CHECK-P10-LE-NEXT:    plwz r3, GlobLd6@PCREL+16(0), 1929; CHECK-P10-LE-NEXT:    pstw r3, GlobSt6@PCREL+16(0), 1930; CHECK-P10-LE-NEXT:    blr931;932; CHECK-P10-BE-LABEL: testGlob6PtrPlus16:933; CHECK-P10-BE:       # %bb.0: # %entry934; CHECK-P10-BE-NEXT:    addis r3, r2, GlobLd6@toc@ha+16935; CHECK-P10-BE-NEXT:    addis r4, r2, GlobSt6@toc@ha+16936; CHECK-P10-BE-NEXT:    lwz r3, GlobLd6@toc@l+16(r3)937; CHECK-P10-BE-NEXT:    stw r3, GlobSt6@toc@l+16(r4)938; CHECK-P10-BE-NEXT:    blr939;940; CHECK-LABEL: testGlob6PtrPlus16:941; CHECK:       # %bb.0: # %entry942; CHECK-NEXT:    addis r3, r2, GlobLd6@toc@ha+16943; CHECK-NEXT:    addis r4, r2, GlobSt6@toc@ha+16944; CHECK-NEXT:    lwz r3, GlobLd6@toc@l+16(r3)945; CHECK-NEXT:    stw r3, GlobSt6@toc@l+16(r4)946; CHECK-NEXT:    blr947entry:948  %0 = load i32, ptr getelementptr inbounds ([20 x i32], ptr @GlobLd6, i64 0, i64 4), align 4949  store i32 %0, ptr getelementptr inbounds ([20 x i32], ptr @GlobSt6, i64 0, i64 4), align 4950  ret void951}952 953; Function Attrs: nofree norecurse nounwind uwtable willreturn954define dso_local void @testGlob6PtrPlusVar(i64 %Idx) {955; CHECK-P10-LE-LABEL: testGlob6PtrPlusVar:956; CHECK-P10-LE:       # %bb.0: # %entry957; CHECK-P10-LE-NEXT:    sldi r3, r3, 2958; CHECK-P10-LE-NEXT:    paddi r4, 0, GlobLd6@PCREL, 1959; CHECK-P10-LE-NEXT:    paddi r5, 0, GlobSt6@PCREL, 1960; CHECK-P10-LE-NEXT:    lwzx r4, r4, r3961; CHECK-P10-LE-NEXT:    stwx r4, r5, r3962; CHECK-P10-LE-NEXT:    blr963;964; CHECK-P10-BE-LABEL: testGlob6PtrPlusVar:965; CHECK-P10-BE:       # %bb.0: # %entry966; CHECK-P10-BE-NEXT:    addis r4, r2, GlobLd6@toc@ha967; CHECK-P10-BE-NEXT:    sldi r3, r3, 2968; CHECK-P10-BE-NEXT:    addis r5, r2, GlobSt6@toc@ha969; CHECK-P10-BE-NEXT:    addi r4, r4, GlobLd6@toc@l970; CHECK-P10-BE-NEXT:    addi r5, r5, GlobSt6@toc@l971; CHECK-P10-BE-NEXT:    lwzx r4, r4, r3972; CHECK-P10-BE-NEXT:    stwx r4, r5, r3973; CHECK-P10-BE-NEXT:    blr974;975; CHECK-LABEL: testGlob6PtrPlusVar:976; CHECK:       # %bb.0: # %entry977; CHECK-NEXT:    addis r4, r2, GlobLd6@toc@ha978; CHECK-NEXT:    sldi r3, r3, 2979; CHECK-NEXT:    addis r5, r2, GlobSt6@toc@ha980; CHECK-NEXT:    addi r4, r4, GlobLd6@toc@l981; CHECK-NEXT:    addi r5, r5, GlobSt6@toc@l982; CHECK-NEXT:    lwzx r4, r4, r3983; CHECK-NEXT:    stwx r4, r5, r3984; CHECK-NEXT:    blr985entry:986  %arrayidx = getelementptr inbounds [20 x i32], ptr @GlobLd6, i64 0, i64 %Idx987  %0 = load i32, ptr %arrayidx, align 4988  %arrayidx1 = getelementptr inbounds [20 x i32], ptr @GlobSt6, i64 0, i64 %Idx989  store i32 %0, ptr %arrayidx1, align 4990  ret void991}992 993; Function Attrs: nofree norecurse nounwind uwtable willreturn994define dso_local void @testGlob7PtrPlus0() {995; CHECK-P10-LE-LABEL: testGlob7PtrPlus0:996; CHECK-P10-LE:       # %bb.0: # %entry997; CHECK-P10-LE-NEXT:    pld r3, GlobLd7@PCREL(0), 1998; CHECK-P10-LE-NEXT:    pstd r3, GlobSt7@PCREL(0), 1999; CHECK-P10-LE-NEXT:    blr1000;1001; CHECK-P10-BE-LABEL: testGlob7PtrPlus0:1002; CHECK-P10-BE:       # %bb.0: # %entry1003; CHECK-P10-BE-NEXT:    addis r3, r2, GlobLd7@toc@ha1004; CHECK-P10-BE-NEXT:    addis r4, r2, GlobSt7@toc@ha1005; CHECK-P10-BE-NEXT:    ld r3, GlobLd7@toc@l(r3)1006; CHECK-P10-BE-NEXT:    std r3, GlobSt7@toc@l(r4)1007; CHECK-P10-BE-NEXT:    blr1008;1009; CHECK-P9-LABEL: testGlob7PtrPlus0:1010; CHECK-P9:       # %bb.0: # %entry1011; CHECK-P9-NEXT:    addis r3, r2, GlobLd7@toc@ha1012; CHECK-P9-NEXT:    addis r4, r2, GlobSt7@toc@ha1013; CHECK-P9-NEXT:    ld r3, GlobLd7@toc@l(r3)1014; CHECK-P9-NEXT:    std r3, GlobSt7@toc@l(r4)1015; CHECK-P9-NEXT:    blr1016;1017; CHECK-P8-LABEL: testGlob7PtrPlus0:1018; CHECK-P8:       # %bb.0: # %entry1019; CHECK-P8-NEXT:    addis r3, r2, GlobLd7@toc@ha1020; CHECK-P8-NEXT:    ld r3, GlobLd7@toc@l(r3)1021; CHECK-P8-NEXT:    addis r4, r2, GlobSt7@toc@ha1022; CHECK-P8-NEXT:    std r3, GlobSt7@toc@l(r4)1023; CHECK-P8-NEXT:    blr1024entry:1025  %0 = load i64, ptr @GlobLd7, align 81026  store i64 %0, ptr @GlobSt7, align 81027  ret void1028}1029 1030; Function Attrs: nofree norecurse nounwind uwtable willreturn1031define dso_local void @testGlob7PtrPlus3() {1032; CHECK-P10-LE-LABEL: testGlob7PtrPlus3:1033; CHECK-P10-LE:       # %bb.0: # %entry1034; CHECK-P10-LE-NEXT:    pld r3, GlobLd7@PCREL+3(0), 11035; CHECK-P10-LE-NEXT:    pstd r3, GlobSt7@PCREL+3(0), 11036; CHECK-P10-LE-NEXT:    blr1037;1038; CHECK-P10-BE-LABEL: testGlob7PtrPlus3:1039; CHECK-P10-BE:       # %bb.0: # %entry1040; CHECK-P10-BE-NEXT:    addis r3, r2, GlobLd7@toc@ha1041; CHECK-P10-BE-NEXT:    addis r4, r2, GlobSt7@toc@ha1042; CHECK-P10-BE-NEXT:    addi r3, r3, GlobLd7@toc@l1043; CHECK-P10-BE-NEXT:    addi r4, r4, GlobSt7@toc@l1044; CHECK-P10-BE-NEXT:    pld r3, 3(r3), 01045; CHECK-P10-BE-NEXT:    pstd r3, 3(r4), 01046; CHECK-P10-BE-NEXT:    blr1047;1048; CHECK-LABEL: testGlob7PtrPlus3:1049; CHECK:       # %bb.0: # %entry1050; CHECK-NEXT:    addis r3, r2, GlobLd7@toc@ha1051; CHECK-NEXT:    li r4, 31052; CHECK-NEXT:    addis r5, r2, GlobSt7@toc@ha1053; CHECK-NEXT:    addi r3, r3, GlobLd7@toc@l1054; CHECK-NEXT:    addi r5, r5, GlobSt7@toc@l1055; CHECK-NEXT:    ldx r3, r3, r41056; CHECK-NEXT:    stdx r3, r5, r41057; CHECK-NEXT:    blr1058entry:1059  %0 = load i64, ptr getelementptr inbounds (i8, ptr @GlobLd7, i64 3), align 81060  store i64 %0, ptr getelementptr inbounds (i8, ptr @GlobSt7, i64 3), align 81061  ret void1062}1063 1064; Function Attrs: nofree norecurse nounwind uwtable willreturn1065define dso_local void @testGlob7PtrPlus4() {1066; CHECK-P10-LE-LABEL: testGlob7PtrPlus4:1067; CHECK-P10-LE:       # %bb.0: # %entry1068; CHECK-P10-LE-NEXT:    pld r3, GlobLd7@PCREL+4(0), 11069; CHECK-P10-LE-NEXT:    pstd r3, GlobSt7@PCREL+4(0), 11070; CHECK-P10-LE-NEXT:    blr1071;1072; CHECK-P10-BE-LABEL: testGlob7PtrPlus4:1073; CHECK-P10-BE:       # %bb.0: # %entry1074; CHECK-P10-BE-NEXT:    addis r3, r2, GlobLd7@toc@ha1075; CHECK-P10-BE-NEXT:    addis r4, r2, GlobSt7@toc@ha1076; CHECK-P10-BE-NEXT:    ld r3, GlobLd7@toc@l+4(r3)1077; CHECK-P10-BE-NEXT:    std r3, GlobSt7@toc@l+4(r4)1078; CHECK-P10-BE-NEXT:    blr1079;1080; CHECK-P9-LABEL: testGlob7PtrPlus4:1081; CHECK-P9:       # %bb.0: # %entry1082; CHECK-P9-NEXT:    addis r3, r2, GlobLd7@toc@ha1083; CHECK-P9-NEXT:    addis r4, r2, GlobSt7@toc@ha1084; CHECK-P9-NEXT:    ld r3, GlobLd7@toc@l+4(r3)1085; CHECK-P9-NEXT:    std r3, GlobSt7@toc@l+4(r4)1086; CHECK-P9-NEXT:    blr1087;1088; CHECK-P8-LABEL: testGlob7PtrPlus4:1089; CHECK-P8:       # %bb.0: # %entry1090; CHECK-P8-NEXT:    addis r3, r2, GlobLd7@toc@ha1091; CHECK-P8-NEXT:    ld r3, GlobLd7@toc@l+4(r3)1092; CHECK-P8-NEXT:    addis r4, r2, GlobSt7@toc@ha1093; CHECK-P8-NEXT:    std r3, GlobSt7@toc@l+4(r4)1094; CHECK-P8-NEXT:    blr1095entry:1096  %0 = load i64, ptr getelementptr inbounds (i8, ptr @GlobLd7, i64 4), align 81097  store i64 %0, ptr getelementptr inbounds (i8, ptr @GlobSt7, i64 4), align 81098  ret void1099}1100 1101; Function Attrs: nofree norecurse nounwind uwtable willreturn1102define dso_local void @testGlob7PtrPlus16() {1103; CHECK-P10-LE-LABEL: testGlob7PtrPlus16:1104; CHECK-P10-LE:       # %bb.0: # %entry1105; CHECK-P10-LE-NEXT:    pld r3, GlobLd7@PCREL+16(0), 11106; CHECK-P10-LE-NEXT:    pstd r3, GlobSt7@PCREL+16(0), 11107; CHECK-P10-LE-NEXT:    blr1108;1109; CHECK-P10-BE-LABEL: testGlob7PtrPlus16:1110; CHECK-P10-BE:       # %bb.0: # %entry1111; CHECK-P10-BE-NEXT:    addis r3, r2, GlobLd7@toc@ha+161112; CHECK-P10-BE-NEXT:    addis r4, r2, GlobSt7@toc@ha+161113; CHECK-P10-BE-NEXT:    ld r3, GlobLd7@toc@l+16(r3)1114; CHECK-P10-BE-NEXT:    std r3, GlobSt7@toc@l+16(r4)1115; CHECK-P10-BE-NEXT:    blr1116;1117; CHECK-P9-LABEL: testGlob7PtrPlus16:1118; CHECK-P9:       # %bb.0: # %entry1119; CHECK-P9-NEXT:    addis r3, r2, GlobLd7@toc@ha+161120; CHECK-P9-NEXT:    addis r4, r2, GlobSt7@toc@ha+161121; CHECK-P9-NEXT:    ld r3, GlobLd7@toc@l+16(r3)1122; CHECK-P9-NEXT:    std r3, GlobSt7@toc@l+16(r4)1123; CHECK-P9-NEXT:    blr1124;1125; CHECK-P8-LABEL: testGlob7PtrPlus16:1126; CHECK-P8:       # %bb.0: # %entry1127; CHECK-P8-NEXT:    addis r3, r2, GlobLd7@toc@ha+161128; CHECK-P8-NEXT:    ld r3, GlobLd7@toc@l+16(r3)1129; CHECK-P8-NEXT:    addis r4, r2, GlobSt7@toc@ha+161130; CHECK-P8-NEXT:    std r3, GlobSt7@toc@l+16(r4)1131; CHECK-P8-NEXT:    blr1132entry:1133  %0 = load i64, ptr getelementptr inbounds ([20 x i64], ptr @GlobLd7, i64 0, i64 2), align 81134  store i64 %0, ptr getelementptr inbounds ([20 x i64], ptr @GlobSt7, i64 0, i64 2), align 81135  ret void1136}1137 1138; Function Attrs: nofree norecurse nounwind uwtable willreturn1139define dso_local void @testGlob7PtrPlusVar(i64 %Idx) {1140; CHECK-P10-LE-LABEL: testGlob7PtrPlusVar:1141; CHECK-P10-LE:       # %bb.0: # %entry1142; CHECK-P10-LE-NEXT:    sldi r3, r3, 31143; CHECK-P10-LE-NEXT:    paddi r4, 0, GlobLd7@PCREL, 11144; CHECK-P10-LE-NEXT:    paddi r5, 0, GlobSt7@PCREL, 11145; CHECK-P10-LE-NEXT:    ldx r4, r4, r31146; CHECK-P10-LE-NEXT:    stdx r4, r5, r31147; CHECK-P10-LE-NEXT:    blr1148;1149; CHECK-P10-BE-LABEL: testGlob7PtrPlusVar:1150; CHECK-P10-BE:       # %bb.0: # %entry1151; CHECK-P10-BE-NEXT:    addis r4, r2, GlobLd7@toc@ha1152; CHECK-P10-BE-NEXT:    sldi r3, r3, 31153; CHECK-P10-BE-NEXT:    addis r5, r2, GlobSt7@toc@ha1154; CHECK-P10-BE-NEXT:    addi r4, r4, GlobLd7@toc@l1155; CHECK-P10-BE-NEXT:    addi r5, r5, GlobSt7@toc@l1156; CHECK-P10-BE-NEXT:    ldx r4, r4, r31157; CHECK-P10-BE-NEXT:    stdx r4, r5, r31158; CHECK-P10-BE-NEXT:    blr1159;1160; CHECK-LABEL: testGlob7PtrPlusVar:1161; CHECK:       # %bb.0: # %entry1162; CHECK-NEXT:    addis r4, r2, GlobLd7@toc@ha1163; CHECK-NEXT:    sldi r3, r3, 31164; CHECK-NEXT:    addis r5, r2, GlobSt7@toc@ha1165; CHECK-NEXT:    addi r4, r4, GlobLd7@toc@l1166; CHECK-NEXT:    addi r5, r5, GlobSt7@toc@l1167; CHECK-NEXT:    ldx r4, r4, r31168; CHECK-NEXT:    stdx r4, r5, r31169; CHECK-NEXT:    blr1170entry:1171  %arrayidx = getelementptr inbounds [20 x i64], ptr @GlobLd7, i64 0, i64 %Idx1172  %0 = load i64, ptr %arrayidx, align 81173  %arrayidx1 = getelementptr inbounds [20 x i64], ptr @GlobSt7, i64 0, i64 %Idx1174  store i64 %0, ptr %arrayidx1, align 81175  ret void1176}1177 1178; Function Attrs: nofree norecurse nounwind uwtable willreturn1179define dso_local void @testGlob8PtrPlus0() {1180; CHECK-P10-LE-LABEL: testGlob8PtrPlus0:1181; CHECK-P10-LE:       # %bb.0: # %entry1182; CHECK-P10-LE-NEXT:    pld r3, GlobLd8@PCREL(0), 11183; CHECK-P10-LE-NEXT:    pstd r3, GlobSt8@PCREL(0), 11184; CHECK-P10-LE-NEXT:    blr1185;1186; CHECK-P10-BE-LABEL: testGlob8PtrPlus0:1187; CHECK-P10-BE:       # %bb.0: # %entry1188; CHECK-P10-BE-NEXT:    addis r3, r2, GlobLd8@toc@ha1189; CHECK-P10-BE-NEXT:    addis r4, r2, GlobSt8@toc@ha1190; CHECK-P10-BE-NEXT:    ld r3, GlobLd8@toc@l(r3)1191; CHECK-P10-BE-NEXT:    std r3, GlobSt8@toc@l(r4)1192; CHECK-P10-BE-NEXT:    blr1193;1194; CHECK-P9-LABEL: testGlob8PtrPlus0:1195; CHECK-P9:       # %bb.0: # %entry1196; CHECK-P9-NEXT:    addis r3, r2, GlobLd8@toc@ha1197; CHECK-P9-NEXT:    addis r4, r2, GlobSt8@toc@ha1198; CHECK-P9-NEXT:    ld r3, GlobLd8@toc@l(r3)1199; CHECK-P9-NEXT:    std r3, GlobSt8@toc@l(r4)1200; CHECK-P9-NEXT:    blr1201;1202; CHECK-P8-LABEL: testGlob8PtrPlus0:1203; CHECK-P8:       # %bb.0: # %entry1204; CHECK-P8-NEXT:    addis r3, r2, GlobLd8@toc@ha1205; CHECK-P8-NEXT:    ld r3, GlobLd8@toc@l(r3)1206; CHECK-P8-NEXT:    addis r4, r2, GlobSt8@toc@ha1207; CHECK-P8-NEXT:    std r3, GlobSt8@toc@l(r4)1208; CHECK-P8-NEXT:    blr1209entry:1210  %0 = load i64, ptr @GlobLd8, align 81211  store i64 %0, ptr @GlobSt8, align 81212  ret void1213}1214 1215; Function Attrs: nofree norecurse nounwind uwtable willreturn1216define dso_local void @testGlob8PtrPlus3() {1217; CHECK-P10-LE-LABEL: testGlob8PtrPlus3:1218; CHECK-P10-LE:       # %bb.0: # %entry1219; CHECK-P10-LE-NEXT:    pld r3, GlobLd8@PCREL+3(0), 11220; CHECK-P10-LE-NEXT:    pstd r3, GlobSt8@PCREL+3(0), 11221; CHECK-P10-LE-NEXT:    blr1222;1223; CHECK-P10-BE-LABEL: testGlob8PtrPlus3:1224; CHECK-P10-BE:       # %bb.0: # %entry1225; CHECK-P10-BE-NEXT:    addis r3, r2, GlobLd8@toc@ha1226; CHECK-P10-BE-NEXT:    addis r4, r2, GlobSt8@toc@ha1227; CHECK-P10-BE-NEXT:    addi r3, r3, GlobLd8@toc@l1228; CHECK-P10-BE-NEXT:    addi r4, r4, GlobSt8@toc@l1229; CHECK-P10-BE-NEXT:    pld r3, 3(r3), 01230; CHECK-P10-BE-NEXT:    pstd r3, 3(r4), 01231; CHECK-P10-BE-NEXT:    blr1232;1233; CHECK-LABEL: testGlob8PtrPlus3:1234; CHECK:       # %bb.0: # %entry1235; CHECK-NEXT:    addis r3, r2, GlobLd8@toc@ha1236; CHECK-NEXT:    li r4, 31237; CHECK-NEXT:    addis r5, r2, GlobSt8@toc@ha1238; CHECK-NEXT:    addi r3, r3, GlobLd8@toc@l1239; CHECK-NEXT:    addi r5, r5, GlobSt8@toc@l1240; CHECK-NEXT:    ldx r3, r3, r41241; CHECK-NEXT:    stdx r3, r5, r41242; CHECK-NEXT:    blr1243entry:1244  %0 = load i64, ptr getelementptr inbounds (i8, ptr @GlobLd8, i64 3), align 81245  store i64 %0, ptr getelementptr inbounds (i8, ptr @GlobSt8, i64 3), align 81246  ret void1247}1248 1249; Function Attrs: nofree norecurse nounwind uwtable willreturn1250define dso_local void @testGlob8PtrPlus4() {1251; CHECK-P10-LE-LABEL: testGlob8PtrPlus4:1252; CHECK-P10-LE:       # %bb.0: # %entry1253; CHECK-P10-LE-NEXT:    pld r3, GlobLd8@PCREL+4(0), 11254; CHECK-P10-LE-NEXT:    pstd r3, GlobSt8@PCREL+4(0), 11255; CHECK-P10-LE-NEXT:    blr1256;1257; CHECK-P10-BE-LABEL: testGlob8PtrPlus4:1258; CHECK-P10-BE:       # %bb.0: # %entry1259; CHECK-P10-BE-NEXT:    addis r3, r2, GlobLd8@toc@ha1260; CHECK-P10-BE-NEXT:    addis r4, r2, GlobSt8@toc@ha1261; CHECK-P10-BE-NEXT:    ld r3, GlobLd8@toc@l+4(r3)1262; CHECK-P10-BE-NEXT:    std r3, GlobSt8@toc@l+4(r4)1263; CHECK-P10-BE-NEXT:    blr1264;1265; CHECK-P9-LABEL: testGlob8PtrPlus4:1266; CHECK-P9:       # %bb.0: # %entry1267; CHECK-P9-NEXT:    addis r3, r2, GlobLd8@toc@ha1268; CHECK-P9-NEXT:    addis r4, r2, GlobSt8@toc@ha1269; CHECK-P9-NEXT:    ld r3, GlobLd8@toc@l+4(r3)1270; CHECK-P9-NEXT:    std r3, GlobSt8@toc@l+4(r4)1271; CHECK-P9-NEXT:    blr1272;1273; CHECK-P8-LABEL: testGlob8PtrPlus4:1274; CHECK-P8:       # %bb.0: # %entry1275; CHECK-P8-NEXT:    addis r3, r2, GlobLd8@toc@ha1276; CHECK-P8-NEXT:    ld r3, GlobLd8@toc@l+4(r3)1277; CHECK-P8-NEXT:    addis r4, r2, GlobSt8@toc@ha1278; CHECK-P8-NEXT:    std r3, GlobSt8@toc@l+4(r4)1279; CHECK-P8-NEXT:    blr1280entry:1281  %0 = load i64, ptr getelementptr inbounds (i8, ptr @GlobLd8, i64 4), align 81282  store i64 %0, ptr getelementptr inbounds (i8, ptr @GlobSt8, i64 4), align 81283  ret void1284}1285 1286; Function Attrs: nofree norecurse nounwind uwtable willreturn1287define dso_local void @testGlob8PtrPlus16() {1288; CHECK-P10-LE-LABEL: testGlob8PtrPlus16:1289; CHECK-P10-LE:       # %bb.0: # %entry1290; CHECK-P10-LE-NEXT:    pld r3, GlobLd8@PCREL+16(0), 11291; CHECK-P10-LE-NEXT:    pstd r3, GlobSt8@PCREL+16(0), 11292; CHECK-P10-LE-NEXT:    blr1293;1294; CHECK-P10-BE-LABEL: testGlob8PtrPlus16:1295; CHECK-P10-BE:       # %bb.0: # %entry1296; CHECK-P10-BE-NEXT:    addis r3, r2, GlobLd8@toc@ha+161297; CHECK-P10-BE-NEXT:    addis r4, r2, GlobSt8@toc@ha+161298; CHECK-P10-BE-NEXT:    ld r3, GlobLd8@toc@l+16(r3)1299; CHECK-P10-BE-NEXT:    std r3, GlobSt8@toc@l+16(r4)1300; CHECK-P10-BE-NEXT:    blr1301;1302; CHECK-P9-LABEL: testGlob8PtrPlus16:1303; CHECK-P9:       # %bb.0: # %entry1304; CHECK-P9-NEXT:    addis r3, r2, GlobLd8@toc@ha+161305; CHECK-P9-NEXT:    addis r4, r2, GlobSt8@toc@ha+161306; CHECK-P9-NEXT:    ld r3, GlobLd8@toc@l+16(r3)1307; CHECK-P9-NEXT:    std r3, GlobSt8@toc@l+16(r4)1308; CHECK-P9-NEXT:    blr1309;1310; CHECK-P8-LABEL: testGlob8PtrPlus16:1311; CHECK-P8:       # %bb.0: # %entry1312; CHECK-P8-NEXT:    addis r3, r2, GlobLd8@toc@ha+161313; CHECK-P8-NEXT:    ld r3, GlobLd8@toc@l+16(r3)1314; CHECK-P8-NEXT:    addis r4, r2, GlobSt8@toc@ha+161315; CHECK-P8-NEXT:    std r3, GlobSt8@toc@l+16(r4)1316; CHECK-P8-NEXT:    blr1317entry:1318  %0 = load i64, ptr getelementptr inbounds ([20 x i64], ptr @GlobLd8, i64 0, i64 2), align 81319  store i64 %0, ptr getelementptr inbounds ([20 x i64], ptr @GlobSt8, i64 0, i64 2), align 81320  ret void1321}1322 1323; Function Attrs: nofree norecurse nounwind uwtable willreturn1324define dso_local void @testGlob8PtrPlusVar(i64 %Idx) {1325; CHECK-P10-LE-LABEL: testGlob8PtrPlusVar:1326; CHECK-P10-LE:       # %bb.0: # %entry1327; CHECK-P10-LE-NEXT:    sldi r3, r3, 31328; CHECK-P10-LE-NEXT:    paddi r4, 0, GlobLd8@PCREL, 11329; CHECK-P10-LE-NEXT:    paddi r5, 0, GlobSt8@PCREL, 11330; CHECK-P10-LE-NEXT:    ldx r4, r4, r31331; CHECK-P10-LE-NEXT:    stdx r4, r5, r31332; CHECK-P10-LE-NEXT:    blr1333;1334; CHECK-P10-BE-LABEL: testGlob8PtrPlusVar:1335; CHECK-P10-BE:       # %bb.0: # %entry1336; CHECK-P10-BE-NEXT:    addis r4, r2, GlobLd8@toc@ha1337; CHECK-P10-BE-NEXT:    sldi r3, r3, 31338; CHECK-P10-BE-NEXT:    addis r5, r2, GlobSt8@toc@ha1339; CHECK-P10-BE-NEXT:    addi r4, r4, GlobLd8@toc@l1340; CHECK-P10-BE-NEXT:    addi r5, r5, GlobSt8@toc@l1341; CHECK-P10-BE-NEXT:    ldx r4, r4, r31342; CHECK-P10-BE-NEXT:    stdx r4, r5, r31343; CHECK-P10-BE-NEXT:    blr1344;1345; CHECK-LABEL: testGlob8PtrPlusVar:1346; CHECK:       # %bb.0: # %entry1347; CHECK-NEXT:    addis r4, r2, GlobLd8@toc@ha1348; CHECK-NEXT:    sldi r3, r3, 31349; CHECK-NEXT:    addis r5, r2, GlobSt8@toc@ha1350; CHECK-NEXT:    addi r4, r4, GlobLd8@toc@l1351; CHECK-NEXT:    addi r5, r5, GlobSt8@toc@l1352; CHECK-NEXT:    ldx r4, r4, r31353; CHECK-NEXT:    stdx r4, r5, r31354; CHECK-NEXT:    blr1355entry:1356  %arrayidx = getelementptr inbounds [20 x i64], ptr @GlobLd8, i64 0, i64 %Idx1357  %0 = load i64, ptr %arrayidx, align 81358  %arrayidx1 = getelementptr inbounds [20 x i64], ptr @GlobSt8, i64 0, i64 %Idx1359  store i64 %0, ptr %arrayidx1, align 81360  ret void1361}1362 1363; Function Attrs: nofree norecurse nounwind uwtable willreturn1364define dso_local void @testGlob9PtrPlus0() {1365; CHECK-P10-LE-LABEL: testGlob9PtrPlus0:1366; CHECK-P10-LE:       # %bb.0: # %entry1367; CHECK-P10-LE-NEXT:    plwz r3, GlobLd9@PCREL(0), 11368; CHECK-P10-LE-NEXT:    pstw r3, GlobSt9@PCREL(0), 11369; CHECK-P10-LE-NEXT:    blr1370;1371; CHECK-P10-BE-LABEL: testGlob9PtrPlus0:1372; CHECK-P10-BE:       # %bb.0: # %entry1373; CHECK-P10-BE-NEXT:    addis r3, r2, GlobLd9@toc@ha1374; CHECK-P10-BE-NEXT:    addis r4, r2, GlobSt9@toc@ha1375; CHECK-P10-BE-NEXT:    lwz r3, GlobLd9@toc@l(r3)1376; CHECK-P10-BE-NEXT:    stw r3, GlobSt9@toc@l(r4)1377; CHECK-P10-BE-NEXT:    blr1378;1379; CHECK-LABEL: testGlob9PtrPlus0:1380; CHECK:       # %bb.0: # %entry1381; CHECK-NEXT:    addis r3, r2, GlobLd9@toc@ha1382; CHECK-NEXT:    addis r4, r2, GlobSt9@toc@ha1383; CHECK-NEXT:    lwz r3, GlobLd9@toc@l(r3)1384; CHECK-NEXT:    stw r3, GlobSt9@toc@l(r4)1385; CHECK-NEXT:    blr1386entry:1387  %0 = load float, ptr @GlobLd9, align 41388  store float %0, ptr @GlobSt9, align 41389  ret void1390}1391 1392; Function Attrs: nofree norecurse nounwind uwtable willreturn1393define dso_local void @testGlob9PtrPlus3() {1394; CHECK-P10-LE-LABEL: testGlob9PtrPlus3:1395; CHECK-P10-LE:       # %bb.0: # %entry1396; CHECK-P10-LE-NEXT:    plwz r3, GlobLd9@PCREL+3(0), 11397; CHECK-P10-LE-NEXT:    pstw r3, GlobSt9@PCREL+3(0), 11398; CHECK-P10-LE-NEXT:    blr1399;1400; CHECK-P10-BE-LABEL: testGlob9PtrPlus3:1401; CHECK-P10-BE:       # %bb.0: # %entry1402; CHECK-P10-BE-NEXT:    addis r3, r2, GlobLd9@toc@ha1403; CHECK-P10-BE-NEXT:    addis r4, r2, GlobSt9@toc@ha1404; CHECK-P10-BE-NEXT:    lwz r3, GlobLd9@toc@l+3(r3)1405; CHECK-P10-BE-NEXT:    stw r3, GlobSt9@toc@l+3(r4)1406; CHECK-P10-BE-NEXT:    blr1407;1408; CHECK-LABEL: testGlob9PtrPlus3:1409; CHECK:       # %bb.0: # %entry1410; CHECK-NEXT:    addis r3, r2, GlobLd9@toc@ha1411; CHECK-NEXT:    addis r4, r2, GlobSt9@toc@ha1412; CHECK-NEXT:    lwz r3, GlobLd9@toc@l+3(r3)1413; CHECK-NEXT:    stw r3, GlobSt9@toc@l+3(r4)1414; CHECK-NEXT:    blr1415entry:1416  %0 = load float, ptr getelementptr inbounds (i8, ptr @GlobLd9, i64 3), align 41417  store float %0, ptr getelementptr inbounds (i8, ptr @GlobSt9, i64 3), align 41418  ret void1419}1420 1421; Function Attrs: nofree norecurse nounwind uwtable willreturn1422define dso_local void @testGlob9PtrPlus4() {1423; CHECK-P10-LE-LABEL: testGlob9PtrPlus4:1424; CHECK-P10-LE:       # %bb.0: # %entry1425; CHECK-P10-LE-NEXT:    plwz r3, GlobLd9@PCREL+4(0), 11426; CHECK-P10-LE-NEXT:    pstw r3, GlobSt9@PCREL+4(0), 11427; CHECK-P10-LE-NEXT:    blr1428;1429; CHECK-P10-BE-LABEL: testGlob9PtrPlus4:1430; CHECK-P10-BE:       # %bb.0: # %entry1431; CHECK-P10-BE-NEXT:    addis r3, r2, GlobLd9@toc@ha+41432; CHECK-P10-BE-NEXT:    addis r4, r2, GlobSt9@toc@ha+41433; CHECK-P10-BE-NEXT:    lwz r3, GlobLd9@toc@l+4(r3)1434; CHECK-P10-BE-NEXT:    stw r3, GlobSt9@toc@l+4(r4)1435; CHECK-P10-BE-NEXT:    blr1436;1437; CHECK-LABEL: testGlob9PtrPlus4:1438; CHECK:       # %bb.0: # %entry1439; CHECK-NEXT:    addis r3, r2, GlobLd9@toc@ha+41440; CHECK-NEXT:    addis r4, r2, GlobSt9@toc@ha+41441; CHECK-NEXT:    lwz r3, GlobLd9@toc@l+4(r3)1442; CHECK-NEXT:    stw r3, GlobSt9@toc@l+4(r4)1443; CHECK-NEXT:    blr1444entry:1445  %0 = load float, ptr getelementptr inbounds ([20 x float], ptr @GlobLd9, i64 0, i64 1), align 41446  store float %0, ptr getelementptr inbounds ([20 x float], ptr @GlobSt9, i64 0, i64 1), align 41447  ret void1448}1449 1450; Function Attrs: nofree norecurse nounwind uwtable willreturn1451define dso_local void @testGlob9PtrPlus16() {1452; CHECK-P10-LE-LABEL: testGlob9PtrPlus16:1453; CHECK-P10-LE:       # %bb.0: # %entry1454; CHECK-P10-LE-NEXT:    plwz r3, GlobLd9@PCREL+16(0), 11455; CHECK-P10-LE-NEXT:    pstw r3, GlobSt9@PCREL+16(0), 11456; CHECK-P10-LE-NEXT:    blr1457;1458; CHECK-P10-BE-LABEL: testGlob9PtrPlus16:1459; CHECK-P10-BE:       # %bb.0: # %entry1460; CHECK-P10-BE-NEXT:    addis r3, r2, GlobLd9@toc@ha+161461; CHECK-P10-BE-NEXT:    addis r4, r2, GlobSt9@toc@ha+161462; CHECK-P10-BE-NEXT:    lwz r3, GlobLd9@toc@l+16(r3)1463; CHECK-P10-BE-NEXT:    stw r3, GlobSt9@toc@l+16(r4)1464; CHECK-P10-BE-NEXT:    blr1465;1466; CHECK-LABEL: testGlob9PtrPlus16:1467; CHECK:       # %bb.0: # %entry1468; CHECK-NEXT:    addis r3, r2, GlobLd9@toc@ha+161469; CHECK-NEXT:    addis r4, r2, GlobSt9@toc@ha+161470; CHECK-NEXT:    lwz r3, GlobLd9@toc@l+16(r3)1471; CHECK-NEXT:    stw r3, GlobSt9@toc@l+16(r4)1472; CHECK-NEXT:    blr1473entry:1474  %0 = load float, ptr getelementptr inbounds ([20 x float], ptr @GlobLd9, i64 0, i64 4), align 41475  store float %0, ptr getelementptr inbounds ([20 x float], ptr @GlobSt9, i64 0, i64 4), align 41476  ret void1477}1478 1479; Function Attrs: nofree norecurse nounwind uwtable willreturn1480define dso_local void @testGlob9PtrPlusVar(i64 %Idx) {1481; CHECK-P10-LE-LABEL: testGlob9PtrPlusVar:1482; CHECK-P10-LE:       # %bb.0: # %entry1483; CHECK-P10-LE-NEXT:    sldi r3, r3, 21484; CHECK-P10-LE-NEXT:    paddi r4, 0, GlobLd9@PCREL, 11485; CHECK-P10-LE-NEXT:    paddi r5, 0, GlobSt9@PCREL, 11486; CHECK-P10-LE-NEXT:    lwzx r4, r4, r31487; CHECK-P10-LE-NEXT:    stwx r4, r5, r31488; CHECK-P10-LE-NEXT:    blr1489;1490; CHECK-P10-BE-LABEL: testGlob9PtrPlusVar:1491; CHECK-P10-BE:       # %bb.0: # %entry1492; CHECK-P10-BE-NEXT:    addis r4, r2, GlobLd9@toc@ha1493; CHECK-P10-BE-NEXT:    sldi r3, r3, 21494; CHECK-P10-BE-NEXT:    addis r5, r2, GlobSt9@toc@ha1495; CHECK-P10-BE-NEXT:    addi r4, r4, GlobLd9@toc@l1496; CHECK-P10-BE-NEXT:    addi r5, r5, GlobSt9@toc@l1497; CHECK-P10-BE-NEXT:    lwzx r4, r4, r31498; CHECK-P10-BE-NEXT:    stwx r4, r5, r31499; CHECK-P10-BE-NEXT:    blr1500;1501; CHECK-LABEL: testGlob9PtrPlusVar:1502; CHECK:       # %bb.0: # %entry1503; CHECK-NEXT:    addis r4, r2, GlobLd9@toc@ha1504; CHECK-NEXT:    sldi r3, r3, 21505; CHECK-NEXT:    addis r5, r2, GlobSt9@toc@ha1506; CHECK-NEXT:    addi r4, r4, GlobLd9@toc@l1507; CHECK-NEXT:    addi r5, r5, GlobSt9@toc@l1508; CHECK-NEXT:    lwzx r4, r4, r31509; CHECK-NEXT:    stwx r4, r5, r31510; CHECK-NEXT:    blr1511entry:1512  %arrayidx = getelementptr inbounds [20 x float], ptr @GlobLd9, i64 0, i64 %Idx1513  %0 = load float, ptr %arrayidx, align 41514  %arrayidx1 = getelementptr inbounds [20 x float], ptr @GlobSt9, i64 0, i64 %Idx1515  store float %0, ptr %arrayidx1, align 41516  ret void1517}1518 1519; Function Attrs: nofree norecurse nounwind uwtable willreturn1520define dso_local void @testGlob10PtrPlus0() {1521; CHECK-P10-LE-LABEL: testGlob10PtrPlus0:1522; CHECK-P10-LE:       # %bb.0: # %entry1523; CHECK-P10-LE-NEXT:    pld r3, GlobLd10@PCREL(0), 11524; CHECK-P10-LE-NEXT:    pstd r3, GlobSt10@PCREL(0), 11525; CHECK-P10-LE-NEXT:    blr1526;1527; CHECK-P10-BE-LABEL: testGlob10PtrPlus0:1528; CHECK-P10-BE:       # %bb.0: # %entry1529; CHECK-P10-BE-NEXT:    addis r3, r2, GlobLd10@toc@ha1530; CHECK-P10-BE-NEXT:    addis r4, r2, GlobSt10@toc@ha1531; CHECK-P10-BE-NEXT:    ld r3, GlobLd10@toc@l(r3)1532; CHECK-P10-BE-NEXT:    std r3, GlobSt10@toc@l(r4)1533; CHECK-P10-BE-NEXT:    blr1534;1535; CHECK-P9-LABEL: testGlob10PtrPlus0:1536; CHECK-P9:       # %bb.0: # %entry1537; CHECK-P9-NEXT:    addis r3, r2, GlobLd10@toc@ha1538; CHECK-P9-NEXT:    addis r4, r2, GlobSt10@toc@ha1539; CHECK-P9-NEXT:    ld r3, GlobLd10@toc@l(r3)1540; CHECK-P9-NEXT:    std r3, GlobSt10@toc@l(r4)1541; CHECK-P9-NEXT:    blr1542;1543; CHECK-P8-LABEL: testGlob10PtrPlus0:1544; CHECK-P8:       # %bb.0: # %entry1545; CHECK-P8-NEXT:    addis r3, r2, GlobLd10@toc@ha1546; CHECK-P8-NEXT:    ld r3, GlobLd10@toc@l(r3)1547; CHECK-P8-NEXT:    addis r4, r2, GlobSt10@toc@ha1548; CHECK-P8-NEXT:    std r3, GlobSt10@toc@l(r4)1549; CHECK-P8-NEXT:    blr1550entry:1551  %0 = load double, ptr @GlobLd10, align 81552  store double %0, ptr @GlobSt10, align 81553  ret void1554}1555 1556; Function Attrs: nofree norecurse nounwind uwtable willreturn1557define dso_local void @testGlob10PtrPlus3() {1558; CHECK-P10-LE-LABEL: testGlob10PtrPlus3:1559; CHECK-P10-LE:       # %bb.0: # %entry1560; CHECK-P10-LE-NEXT:    pld r3, GlobLd10@PCREL+3(0), 11561; CHECK-P10-LE-NEXT:    pstd r3, GlobSt10@PCREL+3(0), 11562; CHECK-P10-LE-NEXT:    blr1563;1564; CHECK-P10-BE-LABEL: testGlob10PtrPlus3:1565; CHECK-P10-BE:       # %bb.0: # %entry1566; CHECK-P10-BE-NEXT:    addis r3, r2, GlobLd10@toc@ha1567; CHECK-P10-BE-NEXT:    addis r4, r2, GlobSt10@toc@ha1568; CHECK-P10-BE-NEXT:    addi r3, r3, GlobLd10@toc@l1569; CHECK-P10-BE-NEXT:    addi r4, r4, GlobSt10@toc@l1570; CHECK-P10-BE-NEXT:    pld r3, 3(r3), 01571; CHECK-P10-BE-NEXT:    pstd r3, 3(r4), 01572; CHECK-P10-BE-NEXT:    blr1573;1574; CHECK-LABEL: testGlob10PtrPlus3:1575; CHECK:       # %bb.0: # %entry1576; CHECK-NEXT:    addis r3, r2, GlobLd10@toc@ha1577; CHECK-NEXT:    li r4, 31578; CHECK-NEXT:    addis r5, r2, GlobSt10@toc@ha1579; CHECK-NEXT:    addi r3, r3, GlobLd10@toc@l1580; CHECK-NEXT:    addi r5, r5, GlobSt10@toc@l1581; CHECK-NEXT:    ldx r3, r3, r41582; CHECK-NEXT:    stdx r3, r5, r41583; CHECK-NEXT:    blr1584entry:1585  %0 = load double, ptr getelementptr inbounds (i8, ptr @GlobLd10, i64 3), align 81586  store double %0, ptr getelementptr inbounds (i8, ptr @GlobSt10, i64 3), align 81587  ret void1588}1589 1590; Function Attrs: nofree norecurse nounwind uwtable willreturn1591define dso_local void @testGlob10PtrPlus4() {1592; CHECK-P10-LE-LABEL: testGlob10PtrPlus4:1593; CHECK-P10-LE:       # %bb.0: # %entry1594; CHECK-P10-LE-NEXT:    pld r3, GlobLd10@PCREL+4(0), 11595; CHECK-P10-LE-NEXT:    pstd r3, GlobSt10@PCREL+4(0), 11596; CHECK-P10-LE-NEXT:    blr1597;1598; CHECK-P10-BE-LABEL: testGlob10PtrPlus4:1599; CHECK-P10-BE:       # %bb.0: # %entry1600; CHECK-P10-BE-NEXT:    addis r3, r2, GlobLd10@toc@ha1601; CHECK-P10-BE-NEXT:    addis r4, r2, GlobSt10@toc@ha1602; CHECK-P10-BE-NEXT:    ld r3, GlobLd10@toc@l+4(r3)1603; CHECK-P10-BE-NEXT:    std r3, GlobSt10@toc@l+4(r4)1604; CHECK-P10-BE-NEXT:    blr1605;1606; CHECK-P9-LABEL: testGlob10PtrPlus4:1607; CHECK-P9:       # %bb.0: # %entry1608; CHECK-P9-NEXT:    addis r3, r2, GlobLd10@toc@ha1609; CHECK-P9-NEXT:    addis r4, r2, GlobSt10@toc@ha1610; CHECK-P9-NEXT:    ld r3, GlobLd10@toc@l+4(r3)1611; CHECK-P9-NEXT:    std r3, GlobSt10@toc@l+4(r4)1612; CHECK-P9-NEXT:    blr1613;1614; CHECK-P8-LABEL: testGlob10PtrPlus4:1615; CHECK-P8:       # %bb.0: # %entry1616; CHECK-P8-NEXT:    addis r3, r2, GlobLd10@toc@ha1617; CHECK-P8-NEXT:    ld r3, GlobLd10@toc@l+4(r3)1618; CHECK-P8-NEXT:    addis r4, r2, GlobSt10@toc@ha1619; CHECK-P8-NEXT:    std r3, GlobSt10@toc@l+4(r4)1620; CHECK-P8-NEXT:    blr1621entry:1622  %0 = load double, ptr getelementptr inbounds (i8, ptr @GlobLd10, i64 4), align 81623  store double %0, ptr getelementptr inbounds (i8, ptr @GlobSt10, i64 4), align 81624  ret void1625}1626 1627; Function Attrs: nofree norecurse nounwind uwtable willreturn1628define dso_local void @testGlob10PtrPlus16() {1629; CHECK-P10-LE-LABEL: testGlob10PtrPlus16:1630; CHECK-P10-LE:       # %bb.0: # %entry1631; CHECK-P10-LE-NEXT:    pld r3, GlobLd10@PCREL+16(0), 11632; CHECK-P10-LE-NEXT:    pstd r3, GlobSt10@PCREL+16(0), 11633; CHECK-P10-LE-NEXT:    blr1634;1635; CHECK-P10-BE-LABEL: testGlob10PtrPlus16:1636; CHECK-P10-BE:       # %bb.0: # %entry1637; CHECK-P10-BE-NEXT:    addis r3, r2, GlobLd10@toc@ha+161638; CHECK-P10-BE-NEXT:    addis r4, r2, GlobSt10@toc@ha+161639; CHECK-P10-BE-NEXT:    ld r3, GlobLd10@toc@l+16(r3)1640; CHECK-P10-BE-NEXT:    std r3, GlobSt10@toc@l+16(r4)1641; CHECK-P10-BE-NEXT:    blr1642;1643; CHECK-P9-LABEL: testGlob10PtrPlus16:1644; CHECK-P9:       # %bb.0: # %entry1645; CHECK-P9-NEXT:    addis r3, r2, GlobLd10@toc@ha+161646; CHECK-P9-NEXT:    addis r4, r2, GlobSt10@toc@ha+161647; CHECK-P9-NEXT:    ld r3, GlobLd10@toc@l+16(r3)1648; CHECK-P9-NEXT:    std r3, GlobSt10@toc@l+16(r4)1649; CHECK-P9-NEXT:    blr1650;1651; CHECK-P8-LABEL: testGlob10PtrPlus16:1652; CHECK-P8:       # %bb.0: # %entry1653; CHECK-P8-NEXT:    addis r3, r2, GlobLd10@toc@ha+161654; CHECK-P8-NEXT:    ld r3, GlobLd10@toc@l+16(r3)1655; CHECK-P8-NEXT:    addis r4, r2, GlobSt10@toc@ha+161656; CHECK-P8-NEXT:    std r3, GlobSt10@toc@l+16(r4)1657; CHECK-P8-NEXT:    blr1658entry:1659  %0 = load double, ptr getelementptr inbounds ([20 x double], ptr @GlobLd10, i64 0, i64 2), align 81660  store double %0, ptr getelementptr inbounds ([20 x double], ptr @GlobSt10, i64 0, i64 2), align 81661  ret void1662}1663 1664; Function Attrs: nofree norecurse nounwind uwtable willreturn1665define dso_local void @testGlob10PtrPlusVar(i64 %Idx) {1666; CHECK-P10-LE-LABEL: testGlob10PtrPlusVar:1667; CHECK-P10-LE:       # %bb.0: # %entry1668; CHECK-P10-LE-NEXT:    sldi r3, r3, 31669; CHECK-P10-LE-NEXT:    paddi r4, 0, GlobLd10@PCREL, 11670; CHECK-P10-LE-NEXT:    paddi r5, 0, GlobSt10@PCREL, 11671; CHECK-P10-LE-NEXT:    ldx r4, r4, r31672; CHECK-P10-LE-NEXT:    stdx r4, r5, r31673; CHECK-P10-LE-NEXT:    blr1674;1675; CHECK-P10-BE-LABEL: testGlob10PtrPlusVar:1676; CHECK-P10-BE:       # %bb.0: # %entry1677; CHECK-P10-BE-NEXT:    addis r4, r2, GlobLd10@toc@ha1678; CHECK-P10-BE-NEXT:    sldi r3, r3, 31679; CHECK-P10-BE-NEXT:    addis r5, r2, GlobSt10@toc@ha1680; CHECK-P10-BE-NEXT:    addi r4, r4, GlobLd10@toc@l1681; CHECK-P10-BE-NEXT:    addi r5, r5, GlobSt10@toc@l1682; CHECK-P10-BE-NEXT:    ldx r4, r4, r31683; CHECK-P10-BE-NEXT:    stdx r4, r5, r31684; CHECK-P10-BE-NEXT:    blr1685;1686; CHECK-LABEL: testGlob10PtrPlusVar:1687; CHECK:       # %bb.0: # %entry1688; CHECK-NEXT:    addis r4, r2, GlobLd10@toc@ha1689; CHECK-NEXT:    sldi r3, r3, 31690; CHECK-NEXT:    addis r5, r2, GlobSt10@toc@ha1691; CHECK-NEXT:    addi r4, r4, GlobLd10@toc@l1692; CHECK-NEXT:    addi r5, r5, GlobSt10@toc@l1693; CHECK-NEXT:    ldx r4, r4, r31694; CHECK-NEXT:    stdx r4, r5, r31695; CHECK-NEXT:    blr1696entry:1697  %arrayidx = getelementptr inbounds [20 x double], ptr @GlobLd10, i64 0, i64 %Idx1698  %0 = load double, ptr %arrayidx, align 81699  %arrayidx1 = getelementptr inbounds [20 x double], ptr @GlobSt10, i64 0, i64 %Idx1700  store double %0, ptr %arrayidx1, align 81701  ret void1702}1703 1704; Function Attrs: nofree norecurse nounwind uwtable willreturn1705define dso_local void @testGlob11PtrPlus0() {1706; CHECK-P10-LE-LABEL: testGlob11PtrPlus0:1707; CHECK-P10-LE:       # %bb.0: # %entry1708; CHECK-P10-LE-NEXT:    plxv vs0, GlobLd11@PCREL(0), 11709; CHECK-P10-LE-NEXT:    pstxv vs0, GlobSt11@PCREL(0), 11710; CHECK-P10-LE-NEXT:    blr1711;1712; CHECK-P10-BE-LABEL: testGlob11PtrPlus0:1713; CHECK-P10-BE:       # %bb.0: # %entry1714; CHECK-P10-BE-NEXT:    addis r3, r2, GlobLd11@toc@ha1715; CHECK-P10-BE-NEXT:    addi r3, r3, GlobLd11@toc@l1716; CHECK-P10-BE-NEXT:    lxv vs0, 0(r3)1717; CHECK-P10-BE-NEXT:    addis r3, r2, GlobSt11@toc@ha1718; CHECK-P10-BE-NEXT:    addi r3, r3, GlobSt11@toc@l1719; CHECK-P10-BE-NEXT:    stxv vs0, 0(r3)1720; CHECK-P10-BE-NEXT:    blr1721;1722; CHECK-P9-LABEL: testGlob11PtrPlus0:1723; CHECK-P9:       # %bb.0: # %entry1724; CHECK-P9-NEXT:    addis r3, r2, GlobLd11@toc@ha1725; CHECK-P9-NEXT:    addi r3, r3, GlobLd11@toc@l1726; CHECK-P9-NEXT:    lxv vs0, 0(r3)1727; CHECK-P9-NEXT:    addis r3, r2, GlobSt11@toc@ha1728; CHECK-P9-NEXT:    addi r3, r3, GlobSt11@toc@l1729; CHECK-P9-NEXT:    stxv vs0, 0(r3)1730; CHECK-P9-NEXT:    blr1731;1732; CHECK-P8-LE-LABEL: testGlob11PtrPlus0:1733; CHECK-P8-LE:       # %bb.0: # %entry1734; CHECK-P8-LE-NEXT:    addis r3, r2, GlobLd11@toc@ha1735; CHECK-P8-LE-NEXT:    addi r3, r3, GlobLd11@toc@l1736; CHECK-P8-LE-NEXT:    lxvd2x vs0, 0, r31737; CHECK-P8-LE-NEXT:    addis r3, r2, GlobSt11@toc@ha1738; CHECK-P8-LE-NEXT:    addi r3, r3, GlobSt11@toc@l1739; CHECK-P8-LE-NEXT:    stxvd2x vs0, 0, r31740; CHECK-P8-LE-NEXT:    blr1741;1742; CHECK-P8-BE-LABEL: testGlob11PtrPlus0:1743; CHECK-P8-BE:       # %bb.0: # %entry1744; CHECK-P8-BE-NEXT:    addis r3, r2, GlobLd11@toc@ha1745; CHECK-P8-BE-NEXT:    addi r3, r3, GlobLd11@toc@l1746; CHECK-P8-BE-NEXT:    lxvw4x vs0, 0, r31747; CHECK-P8-BE-NEXT:    addis r3, r2, GlobSt11@toc@ha1748; CHECK-P8-BE-NEXT:    addi r3, r3, GlobSt11@toc@l1749; CHECK-P8-BE-NEXT:    stxvw4x vs0, 0, r31750; CHECK-P8-BE-NEXT:    blr1751entry:1752  %0 = load <16 x i8>, ptr @GlobLd11, align 161753  store <16 x i8> %0, ptr @GlobSt11, align 161754  ret void1755}1756 1757; Function Attrs: nofree norecurse nounwind uwtable willreturn1758define dso_local void @testGlob11PtrPlus3() {1759; CHECK-P10-LE-LABEL: testGlob11PtrPlus3:1760; CHECK-P10-LE:       # %bb.0: # %entry1761; CHECK-P10-LE-NEXT:    plxv vs0, GlobLd11@PCREL+3(0), 11762; CHECK-P10-LE-NEXT:    pstxv vs0, GlobSt11@PCREL+3(0), 11763; CHECK-P10-LE-NEXT:    blr1764;1765; CHECK-P10-BE-LABEL: testGlob11PtrPlus3:1766; CHECK-P10-BE:       # %bb.0: # %entry1767; CHECK-P10-BE-NEXT:    addis r3, r2, GlobLd11@toc@ha1768; CHECK-P10-BE-NEXT:    addi r3, r3, GlobLd11@toc@l1769; CHECK-P10-BE-NEXT:    plxv vs0, 3(r3), 01770; CHECK-P10-BE-NEXT:    addis r3, r2, GlobSt11@toc@ha1771; CHECK-P10-BE-NEXT:    addi r3, r3, GlobSt11@toc@l1772; CHECK-P10-BE-NEXT:    pstxv vs0, 3(r3), 01773; CHECK-P10-BE-NEXT:    blr1774;1775; CHECK-P9-LABEL: testGlob11PtrPlus3:1776; CHECK-P9:       # %bb.0: # %entry1777; CHECK-P9-NEXT:    addis r3, r2, GlobLd11@toc@ha1778; CHECK-P9-NEXT:    li r4, 31779; CHECK-P9-NEXT:    addi r3, r3, GlobLd11@toc@l1780; CHECK-P9-NEXT:    lxvx vs0, r3, r41781; CHECK-P9-NEXT:    addis r3, r2, GlobSt11@toc@ha1782; CHECK-P9-NEXT:    addi r3, r3, GlobSt11@toc@l1783; CHECK-P9-NEXT:    stxvx vs0, r3, r41784; CHECK-P9-NEXT:    blr1785;1786; CHECK-P8-LE-LABEL: testGlob11PtrPlus3:1787; CHECK-P8-LE:       # %bb.0: # %entry1788; CHECK-P8-LE-NEXT:    addis r3, r2, GlobLd11@toc@ha1789; CHECK-P8-LE-NEXT:    li r4, 31790; CHECK-P8-LE-NEXT:    addi r3, r3, GlobLd11@toc@l1791; CHECK-P8-LE-NEXT:    lxvd2x vs0, r3, r41792; CHECK-P8-LE-NEXT:    addis r3, r2, GlobSt11@toc@ha1793; CHECK-P8-LE-NEXT:    addi r3, r3, GlobSt11@toc@l1794; CHECK-P8-LE-NEXT:    stxvd2x vs0, r3, r41795; CHECK-P8-LE-NEXT:    blr1796;1797; CHECK-P8-BE-LABEL: testGlob11PtrPlus3:1798; CHECK-P8-BE:       # %bb.0: # %entry1799; CHECK-P8-BE-NEXT:    addis r3, r2, GlobLd11@toc@ha1800; CHECK-P8-BE-NEXT:    li r4, 31801; CHECK-P8-BE-NEXT:    addi r3, r3, GlobLd11@toc@l1802; CHECK-P8-BE-NEXT:    lxvw4x vs0, r3, r41803; CHECK-P8-BE-NEXT:    addis r3, r2, GlobSt11@toc@ha1804; CHECK-P8-BE-NEXT:    addi r3, r3, GlobSt11@toc@l1805; CHECK-P8-BE-NEXT:    stxvw4x vs0, r3, r41806; CHECK-P8-BE-NEXT:    blr1807entry:1808  %0 = load <16 x i8>, ptr getelementptr ([20 x <16 x i8>], ptr @GlobLd11, i64 0, i64 0, i64 3), align 161809  store <16 x i8> %0, ptr getelementptr ([20 x <16 x i8>], ptr @GlobSt11, i64 0, i64 0, i64 3), align 161810  ret void1811}1812 1813; Function Attrs: nofree norecurse nounwind uwtable willreturn1814define dso_local void @testGlob11PtrPlus4() {1815; CHECK-P10-LE-LABEL: testGlob11PtrPlus4:1816; CHECK-P10-LE:       # %bb.0: # %entry1817; CHECK-P10-LE-NEXT:    plxv vs0, GlobLd11@PCREL+4(0), 11818; CHECK-P10-LE-NEXT:    pstxv vs0, GlobSt11@PCREL+4(0), 11819; CHECK-P10-LE-NEXT:    blr1820;1821; CHECK-P10-BE-LABEL: testGlob11PtrPlus4:1822; CHECK-P10-BE:       # %bb.0: # %entry1823; CHECK-P10-BE-NEXT:    addis r3, r2, GlobLd11@toc@ha1824; CHECK-P10-BE-NEXT:    addi r3, r3, GlobLd11@toc@l1825; CHECK-P10-BE-NEXT:    plxv vs0, 4(r3), 01826; CHECK-P10-BE-NEXT:    addis r3, r2, GlobSt11@toc@ha1827; CHECK-P10-BE-NEXT:    addi r3, r3, GlobSt11@toc@l1828; CHECK-P10-BE-NEXT:    pstxv vs0, 4(r3), 01829; CHECK-P10-BE-NEXT:    blr1830;1831; CHECK-P9-LABEL: testGlob11PtrPlus4:1832; CHECK-P9:       # %bb.0: # %entry1833; CHECK-P9-NEXT:    addis r3, r2, GlobLd11@toc@ha1834; CHECK-P9-NEXT:    li r4, 41835; CHECK-P9-NEXT:    addi r3, r3, GlobLd11@toc@l1836; CHECK-P9-NEXT:    lxvx vs0, r3, r41837; CHECK-P9-NEXT:    addis r3, r2, GlobSt11@toc@ha1838; CHECK-P9-NEXT:    addi r3, r3, GlobSt11@toc@l1839; CHECK-P9-NEXT:    stxvx vs0, r3, r41840; CHECK-P9-NEXT:    blr1841;1842; CHECK-P8-LE-LABEL: testGlob11PtrPlus4:1843; CHECK-P8-LE:       # %bb.0: # %entry1844; CHECK-P8-LE-NEXT:    addis r3, r2, GlobLd11@toc@ha1845; CHECK-P8-LE-NEXT:    li r4, 41846; CHECK-P8-LE-NEXT:    addi r3, r3, GlobLd11@toc@l1847; CHECK-P8-LE-NEXT:    lxvd2x vs0, r3, r41848; CHECK-P8-LE-NEXT:    addis r3, r2, GlobSt11@toc@ha1849; CHECK-P8-LE-NEXT:    addi r3, r3, GlobSt11@toc@l1850; CHECK-P8-LE-NEXT:    stxvd2x vs0, r3, r41851; CHECK-P8-LE-NEXT:    blr1852;1853; CHECK-P8-BE-LABEL: testGlob11PtrPlus4:1854; CHECK-P8-BE:       # %bb.0: # %entry1855; CHECK-P8-BE-NEXT:    addis r3, r2, GlobLd11@toc@ha1856; CHECK-P8-BE-NEXT:    li r4, 41857; CHECK-P8-BE-NEXT:    addi r3, r3, GlobLd11@toc@l1858; CHECK-P8-BE-NEXT:    lxvw4x vs0, r3, r41859; CHECK-P8-BE-NEXT:    addis r3, r2, GlobSt11@toc@ha1860; CHECK-P8-BE-NEXT:    addi r3, r3, GlobSt11@toc@l1861; CHECK-P8-BE-NEXT:    stxvw4x vs0, r3, r41862; CHECK-P8-BE-NEXT:    blr1863entry:1864  %0 = load <16 x i8>, ptr getelementptr ([20 x <16 x i8>], ptr @GlobLd11, i64 0, i64 0, i64 4), align 161865  store <16 x i8> %0, ptr getelementptr ([20 x <16 x i8>], ptr @GlobSt11, i64 0, i64 0, i64 4), align 161866  ret void1867}1868 1869; Function Attrs: nofree norecurse nounwind uwtable willreturn1870define dso_local void @testGlob11PtrPlus16() {1871; CHECK-P10-LE-LABEL: testGlob11PtrPlus16:1872; CHECK-P10-LE:       # %bb.0: # %entry1873; CHECK-P10-LE-NEXT:    plxv vs0, GlobLd11@PCREL+16(0), 11874; CHECK-P10-LE-NEXT:    pstxv vs0, GlobSt11@PCREL+16(0), 11875; CHECK-P10-LE-NEXT:    blr1876;1877; CHECK-P10-BE-LABEL: testGlob11PtrPlus16:1878; CHECK-P10-BE:       # %bb.0: # %entry1879; CHECK-P10-BE-NEXT:    addis r3, r2, GlobLd11@toc@ha1880; CHECK-P10-BE-NEXT:    addi r3, r3, GlobLd11@toc@l1881; CHECK-P10-BE-NEXT:    lxv vs0, 16(r3)1882; CHECK-P10-BE-NEXT:    addis r3, r2, GlobSt11@toc@ha1883; CHECK-P10-BE-NEXT:    addi r3, r3, GlobSt11@toc@l1884; CHECK-P10-BE-NEXT:    stxv vs0, 16(r3)1885; CHECK-P10-BE-NEXT:    blr1886;1887; CHECK-P9-LABEL: testGlob11PtrPlus16:1888; CHECK-P9:       # %bb.0: # %entry1889; CHECK-P9-NEXT:    addis r3, r2, GlobLd11@toc@ha1890; CHECK-P9-NEXT:    addi r3, r3, GlobLd11@toc@l1891; CHECK-P9-NEXT:    lxv vs0, 16(r3)1892; CHECK-P9-NEXT:    addis r3, r2, GlobSt11@toc@ha1893; CHECK-P9-NEXT:    addi r3, r3, GlobSt11@toc@l1894; CHECK-P9-NEXT:    stxv vs0, 16(r3)1895; CHECK-P9-NEXT:    blr1896;1897; CHECK-P8-LE-LABEL: testGlob11PtrPlus16:1898; CHECK-P8-LE:       # %bb.0: # %entry1899; CHECK-P8-LE-NEXT:    addis r3, r2, GlobLd11@toc@ha1900; CHECK-P8-LE-NEXT:    li r4, 161901; CHECK-P8-LE-NEXT:    addi r3, r3, GlobLd11@toc@l1902; CHECK-P8-LE-NEXT:    lxvd2x vs0, r3, r41903; CHECK-P8-LE-NEXT:    addis r3, r2, GlobSt11@toc@ha1904; CHECK-P8-LE-NEXT:    addi r3, r3, GlobSt11@toc@l1905; CHECK-P8-LE-NEXT:    stxvd2x vs0, r3, r41906; CHECK-P8-LE-NEXT:    blr1907;1908; CHECK-P8-BE-LABEL: testGlob11PtrPlus16:1909; CHECK-P8-BE:       # %bb.0: # %entry1910; CHECK-P8-BE-NEXT:    addis r3, r2, GlobLd11@toc@ha1911; CHECK-P8-BE-NEXT:    li r4, 161912; CHECK-P8-BE-NEXT:    addi r3, r3, GlobLd11@toc@l1913; CHECK-P8-BE-NEXT:    lxvw4x vs0, r3, r41914; CHECK-P8-BE-NEXT:    addis r3, r2, GlobSt11@toc@ha1915; CHECK-P8-BE-NEXT:    addi r3, r3, GlobSt11@toc@l1916; CHECK-P8-BE-NEXT:    stxvw4x vs0, r3, r41917; CHECK-P8-BE-NEXT:    blr1918entry:1919  %0 = load <16 x i8>, ptr getelementptr inbounds ([20 x <16 x i8>], ptr @GlobLd11, i64 0, i64 1, i64 0), align 161920  store <16 x i8> %0, ptr getelementptr inbounds ([20 x <16 x i8>], ptr @GlobSt11, i64 0, i64 1, i64 0), align 161921  ret void1922}1923 1924; Function Attrs: nofree norecurse nounwind uwtable willreturn1925define dso_local void @testGlob11PtrPlusVar(i64 %Idx) {1926; CHECK-P10-LE-LABEL: testGlob11PtrPlusVar:1927; CHECK-P10-LE:       # %bb.0: # %entry1928; CHECK-P10-LE-NEXT:    sldi r3, r3, 41929; CHECK-P10-LE-NEXT:    paddi r4, 0, GlobLd11@PCREL, 11930; CHECK-P10-LE-NEXT:    lxvx vs0, r4, r31931; CHECK-P10-LE-NEXT:    paddi r4, 0, GlobSt11@PCREL, 11932; CHECK-P10-LE-NEXT:    stxvx vs0, r4, r31933; CHECK-P10-LE-NEXT:    blr1934;1935; CHECK-P10-BE-LABEL: testGlob11PtrPlusVar:1936; CHECK-P10-BE:       # %bb.0: # %entry1937; CHECK-P10-BE-NEXT:    addis r4, r2, GlobLd11@toc@ha1938; CHECK-P10-BE-NEXT:    sldi r3, r3, 41939; CHECK-P10-BE-NEXT:    addi r4, r4, GlobLd11@toc@l1940; CHECK-P10-BE-NEXT:    lxvx vs0, r4, r31941; CHECK-P10-BE-NEXT:    addis r4, r2, GlobSt11@toc@ha1942; CHECK-P10-BE-NEXT:    addi r4, r4, GlobSt11@toc@l1943; CHECK-P10-BE-NEXT:    stxvx vs0, r4, r31944; CHECK-P10-BE-NEXT:    blr1945;1946; CHECK-P9-LABEL: testGlob11PtrPlusVar:1947; CHECK-P9:       # %bb.0: # %entry1948; CHECK-P9-NEXT:    addis r4, r2, GlobLd11@toc@ha1949; CHECK-P9-NEXT:    sldi r3, r3, 41950; CHECK-P9-NEXT:    addi r4, r4, GlobLd11@toc@l1951; CHECK-P9-NEXT:    lxvx vs0, r4, r31952; CHECK-P9-NEXT:    addis r4, r2, GlobSt11@toc@ha1953; CHECK-P9-NEXT:    addi r4, r4, GlobSt11@toc@l1954; CHECK-P9-NEXT:    stxvx vs0, r4, r31955; CHECK-P9-NEXT:    blr1956;1957; CHECK-P8-LE-LABEL: testGlob11PtrPlusVar:1958; CHECK-P8-LE:       # %bb.0: # %entry1959; CHECK-P8-LE-NEXT:    addis r4, r2, GlobLd11@toc@ha1960; CHECK-P8-LE-NEXT:    sldi r3, r3, 41961; CHECK-P8-LE-NEXT:    addi r4, r4, GlobLd11@toc@l1962; CHECK-P8-LE-NEXT:    lxvd2x vs0, r4, r31963; CHECK-P8-LE-NEXT:    addis r4, r2, GlobSt11@toc@ha1964; CHECK-P8-LE-NEXT:    addi r4, r4, GlobSt11@toc@l1965; CHECK-P8-LE-NEXT:    stxvd2x vs0, r4, r31966; CHECK-P8-LE-NEXT:    blr1967;1968; CHECK-P8-BE-LABEL: testGlob11PtrPlusVar:1969; CHECK-P8-BE:       # %bb.0: # %entry1970; CHECK-P8-BE-NEXT:    addis r4, r2, GlobLd11@toc@ha1971; CHECK-P8-BE-NEXT:    sldi r3, r3, 41972; CHECK-P8-BE-NEXT:    addi r4, r4, GlobLd11@toc@l1973; CHECK-P8-BE-NEXT:    lxvw4x vs0, r4, r31974; CHECK-P8-BE-NEXT:    addis r4, r2, GlobSt11@toc@ha1975; CHECK-P8-BE-NEXT:    addi r4, r4, GlobSt11@toc@l1976; CHECK-P8-BE-NEXT:    stxvw4x vs0, r4, r31977; CHECK-P8-BE-NEXT:    blr1978entry:1979  %arrayidx = getelementptr inbounds [20 x <16 x i8>], ptr @GlobLd11, i64 0, i64 %Idx1980  %0 = load <16 x i8>, ptr %arrayidx, align 161981  %arrayidx1 = getelementptr inbounds [20 x <16 x i8>], ptr @GlobSt11, i64 0, i64 %Idx1982  store <16 x i8> %0, ptr %arrayidx1, align 161983  ret void1984}1985 1986; Function Attrs: nofree norecurse nounwind uwtable willreturn1987define dso_local void @testGlob12PtrPlus0() {1988; CHECK-P10-LE-LABEL: testGlob12PtrPlus0:1989; CHECK-P10-LE:       # %bb.0: # %entry1990; CHECK-P10-LE-NEXT:    plxv vs0, GlobLd12@PCREL(0), 11991; CHECK-P10-LE-NEXT:    pstxv vs0, GlobSt12@PCREL(0), 11992; CHECK-P10-LE-NEXT:    blr1993;1994; CHECK-P10-BE-LABEL: testGlob12PtrPlus0:1995; CHECK-P10-BE:       # %bb.0: # %entry1996; CHECK-P10-BE-NEXT:    addis r3, r2, GlobLd12@toc@ha1997; CHECK-P10-BE-NEXT:    addi r3, r3, GlobLd12@toc@l1998; CHECK-P10-BE-NEXT:    lxv vs0, 0(r3)1999; CHECK-P10-BE-NEXT:    addis r3, r2, GlobSt12@toc@ha2000; CHECK-P10-BE-NEXT:    addi r3, r3, GlobSt12@toc@l2001; CHECK-P10-BE-NEXT:    stxv vs0, 0(r3)2002; CHECK-P10-BE-NEXT:    blr2003;2004; CHECK-P9-LABEL: testGlob12PtrPlus0:2005; CHECK-P9:       # %bb.0: # %entry2006; CHECK-P9-NEXT:    addis r3, r2, GlobLd12@toc@ha2007; CHECK-P9-NEXT:    addi r3, r3, GlobLd12@toc@l2008; CHECK-P9-NEXT:    lxv vs0, 0(r3)2009; CHECK-P9-NEXT:    addis r3, r2, GlobSt12@toc@ha2010; CHECK-P9-NEXT:    addi r3, r3, GlobSt12@toc@l2011; CHECK-P9-NEXT:    stxv vs0, 0(r3)2012; CHECK-P9-NEXT:    blr2013;2014; CHECK-P8-LE-LABEL: testGlob12PtrPlus0:2015; CHECK-P8-LE:       # %bb.0: # %entry2016; CHECK-P8-LE-NEXT:    addis r3, r2, GlobLd12@toc@ha2017; CHECK-P8-LE-NEXT:    addi r3, r3, GlobLd12@toc@l2018; CHECK-P8-LE-NEXT:    lxvd2x vs0, 0, r32019; CHECK-P8-LE-NEXT:    addis r3, r2, GlobSt12@toc@ha2020; CHECK-P8-LE-NEXT:    addi r3, r3, GlobSt12@toc@l2021; CHECK-P8-LE-NEXT:    stxvd2x vs0, 0, r32022; CHECK-P8-LE-NEXT:    blr2023;2024; CHECK-P8-BE-LABEL: testGlob12PtrPlus0:2025; CHECK-P8-BE:       # %bb.0: # %entry2026; CHECK-P8-BE-NEXT:    addis r3, r2, GlobLd12@toc@ha2027; CHECK-P8-BE-NEXT:    addi r3, r3, GlobLd12@toc@l2028; CHECK-P8-BE-NEXT:    lxvw4x vs0, 0, r32029; CHECK-P8-BE-NEXT:    addis r3, r2, GlobSt12@toc@ha2030; CHECK-P8-BE-NEXT:    addi r3, r3, GlobSt12@toc@l2031; CHECK-P8-BE-NEXT:    stxvw4x vs0, 0, r32032; CHECK-P8-BE-NEXT:    blr2033entry:2034  %0 = load <16 x i8>, ptr @GlobLd12, align 162035  store <16 x i8> %0, ptr @GlobSt12, align 162036  ret void2037}2038 2039; Function Attrs: nofree norecurse nounwind uwtable willreturn2040define dso_local void @testGlob12PtrPlus3() {2041; CHECK-P10-LE-LABEL: testGlob12PtrPlus3:2042; CHECK-P10-LE:       # %bb.0: # %entry2043; CHECK-P10-LE-NEXT:    plxv vs0, GlobLd12@PCREL+3(0), 12044; CHECK-P10-LE-NEXT:    pstxv vs0, GlobSt12@PCREL+3(0), 12045; CHECK-P10-LE-NEXT:    blr2046;2047; CHECK-P10-BE-LABEL: testGlob12PtrPlus3:2048; CHECK-P10-BE:       # %bb.0: # %entry2049; CHECK-P10-BE-NEXT:    addis r3, r2, GlobLd12@toc@ha2050; CHECK-P10-BE-NEXT:    addi r3, r3, GlobLd12@toc@l2051; CHECK-P10-BE-NEXT:    plxv vs0, 3(r3), 02052; CHECK-P10-BE-NEXT:    addis r3, r2, GlobSt12@toc@ha2053; CHECK-P10-BE-NEXT:    addi r3, r3, GlobSt12@toc@l2054; CHECK-P10-BE-NEXT:    pstxv vs0, 3(r3), 02055; CHECK-P10-BE-NEXT:    blr2056;2057; CHECK-P9-LABEL: testGlob12PtrPlus3:2058; CHECK-P9:       # %bb.0: # %entry2059; CHECK-P9-NEXT:    addis r3, r2, GlobLd12@toc@ha2060; CHECK-P9-NEXT:    li r4, 32061; CHECK-P9-NEXT:    addi r3, r3, GlobLd12@toc@l2062; CHECK-P9-NEXT:    lxvx vs0, r3, r42063; CHECK-P9-NEXT:    addis r3, r2, GlobSt12@toc@ha2064; CHECK-P9-NEXT:    addi r3, r3, GlobSt12@toc@l2065; CHECK-P9-NEXT:    stxvx vs0, r3, r42066; CHECK-P9-NEXT:    blr2067;2068; CHECK-P8-LE-LABEL: testGlob12PtrPlus3:2069; CHECK-P8-LE:       # %bb.0: # %entry2070; CHECK-P8-LE-NEXT:    addis r3, r2, GlobLd12@toc@ha2071; CHECK-P8-LE-NEXT:    li r4, 32072; CHECK-P8-LE-NEXT:    addi r3, r3, GlobLd12@toc@l2073; CHECK-P8-LE-NEXT:    lxvd2x vs0, r3, r42074; CHECK-P8-LE-NEXT:    addis r3, r2, GlobSt12@toc@ha2075; CHECK-P8-LE-NEXT:    addi r3, r3, GlobSt12@toc@l2076; CHECK-P8-LE-NEXT:    stxvd2x vs0, r3, r42077; CHECK-P8-LE-NEXT:    blr2078;2079; CHECK-P8-BE-LABEL: testGlob12PtrPlus3:2080; CHECK-P8-BE:       # %bb.0: # %entry2081; CHECK-P8-BE-NEXT:    addis r3, r2, GlobLd12@toc@ha2082; CHECK-P8-BE-NEXT:    li r4, 32083; CHECK-P8-BE-NEXT:    addi r3, r3, GlobLd12@toc@l2084; CHECK-P8-BE-NEXT:    lxvw4x vs0, r3, r42085; CHECK-P8-BE-NEXT:    addis r3, r2, GlobSt12@toc@ha2086; CHECK-P8-BE-NEXT:    addi r3, r3, GlobSt12@toc@l2087; CHECK-P8-BE-NEXT:    stxvw4x vs0, r3, r42088; CHECK-P8-BE-NEXT:    blr2089entry:2090  %0 = load <16 x i8>, ptr getelementptr ([20 x <16 x i8>], ptr @GlobLd12, i64 0, i64 0, i64 3), align 162091  store <16 x i8> %0, ptr getelementptr ([20 x <16 x i8>], ptr @GlobSt12, i64 0, i64 0, i64 3), align 162092  ret void2093}2094 2095; Function Attrs: nofree norecurse nounwind uwtable willreturn2096define dso_local void @testGlob12PtrPlus4() {2097; CHECK-P10-LE-LABEL: testGlob12PtrPlus4:2098; CHECK-P10-LE:       # %bb.0: # %entry2099; CHECK-P10-LE-NEXT:    plxv vs0, GlobLd12@PCREL+4(0), 12100; CHECK-P10-LE-NEXT:    pstxv vs0, GlobSt12@PCREL+4(0), 12101; CHECK-P10-LE-NEXT:    blr2102;2103; CHECK-P10-BE-LABEL: testGlob12PtrPlus4:2104; CHECK-P10-BE:       # %bb.0: # %entry2105; CHECK-P10-BE-NEXT:    addis r3, r2, GlobLd12@toc@ha2106; CHECK-P10-BE-NEXT:    addi r3, r3, GlobLd12@toc@l2107; CHECK-P10-BE-NEXT:    plxv vs0, 4(r3), 02108; CHECK-P10-BE-NEXT:    addis r3, r2, GlobSt12@toc@ha2109; CHECK-P10-BE-NEXT:    addi r3, r3, GlobSt12@toc@l2110; CHECK-P10-BE-NEXT:    pstxv vs0, 4(r3), 02111; CHECK-P10-BE-NEXT:    blr2112;2113; CHECK-P9-LABEL: testGlob12PtrPlus4:2114; CHECK-P9:       # %bb.0: # %entry2115; CHECK-P9-NEXT:    addis r3, r2, GlobLd12@toc@ha2116; CHECK-P9-NEXT:    li r4, 42117; CHECK-P9-NEXT:    addi r3, r3, GlobLd12@toc@l2118; CHECK-P9-NEXT:    lxvx vs0, r3, r42119; CHECK-P9-NEXT:    addis r3, r2, GlobSt12@toc@ha2120; CHECK-P9-NEXT:    addi r3, r3, GlobSt12@toc@l2121; CHECK-P9-NEXT:    stxvx vs0, r3, r42122; CHECK-P9-NEXT:    blr2123;2124; CHECK-P8-LE-LABEL: testGlob12PtrPlus4:2125; CHECK-P8-LE:       # %bb.0: # %entry2126; CHECK-P8-LE-NEXT:    addis r3, r2, GlobLd12@toc@ha2127; CHECK-P8-LE-NEXT:    li r4, 42128; CHECK-P8-LE-NEXT:    addi r3, r3, GlobLd12@toc@l2129; CHECK-P8-LE-NEXT:    lxvd2x vs0, r3, r42130; CHECK-P8-LE-NEXT:    addis r3, r2, GlobSt12@toc@ha2131; CHECK-P8-LE-NEXT:    addi r3, r3, GlobSt12@toc@l2132; CHECK-P8-LE-NEXT:    stxvd2x vs0, r3, r42133; CHECK-P8-LE-NEXT:    blr2134;2135; CHECK-P8-BE-LABEL: testGlob12PtrPlus4:2136; CHECK-P8-BE:       # %bb.0: # %entry2137; CHECK-P8-BE-NEXT:    addis r3, r2, GlobLd12@toc@ha2138; CHECK-P8-BE-NEXT:    li r4, 42139; CHECK-P8-BE-NEXT:    addi r3, r3, GlobLd12@toc@l2140; CHECK-P8-BE-NEXT:    lxvw4x vs0, r3, r42141; CHECK-P8-BE-NEXT:    addis r3, r2, GlobSt12@toc@ha2142; CHECK-P8-BE-NEXT:    addi r3, r3, GlobSt12@toc@l2143; CHECK-P8-BE-NEXT:    stxvw4x vs0, r3, r42144; CHECK-P8-BE-NEXT:    blr2145entry:2146  %0 = load <16 x i8>, ptr getelementptr ([20 x <16 x i8>], ptr @GlobLd12, i64 0, i64 0, i64 4), align 162147  store <16 x i8> %0, ptr getelementptr ([20 x <16 x i8>], ptr @GlobSt12, i64 0, i64 0, i64 4), align 162148  ret void2149}2150 2151; Function Attrs: nofree norecurse nounwind uwtable willreturn2152define dso_local void @testGlob12PtrPlus16() {2153; CHECK-P10-LE-LABEL: testGlob12PtrPlus16:2154; CHECK-P10-LE:       # %bb.0: # %entry2155; CHECK-P10-LE-NEXT:    plxv vs0, GlobLd12@PCREL+16(0), 12156; CHECK-P10-LE-NEXT:    pstxv vs0, GlobSt12@PCREL+16(0), 12157; CHECK-P10-LE-NEXT:    blr2158;2159; CHECK-P10-BE-LABEL: testGlob12PtrPlus16:2160; CHECK-P10-BE:       # %bb.0: # %entry2161; CHECK-P10-BE-NEXT:    addis r3, r2, GlobLd12@toc@ha2162; CHECK-P10-BE-NEXT:    addi r3, r3, GlobLd12@toc@l2163; CHECK-P10-BE-NEXT:    lxv vs0, 16(r3)2164; CHECK-P10-BE-NEXT:    addis r3, r2, GlobSt12@toc@ha2165; CHECK-P10-BE-NEXT:    addi r3, r3, GlobSt12@toc@l2166; CHECK-P10-BE-NEXT:    stxv vs0, 16(r3)2167; CHECK-P10-BE-NEXT:    blr2168;2169; CHECK-P9-LABEL: testGlob12PtrPlus16:2170; CHECK-P9:       # %bb.0: # %entry2171; CHECK-P9-NEXT:    addis r3, r2, GlobLd12@toc@ha2172; CHECK-P9-NEXT:    addi r3, r3, GlobLd12@toc@l2173; CHECK-P9-NEXT:    lxv vs0, 16(r3)2174; CHECK-P9-NEXT:    addis r3, r2, GlobSt12@toc@ha2175; CHECK-P9-NEXT:    addi r3, r3, GlobSt12@toc@l2176; CHECK-P9-NEXT:    stxv vs0, 16(r3)2177; CHECK-P9-NEXT:    blr2178;2179; CHECK-P8-LE-LABEL: testGlob12PtrPlus16:2180; CHECK-P8-LE:       # %bb.0: # %entry2181; CHECK-P8-LE-NEXT:    addis r3, r2, GlobLd12@toc@ha2182; CHECK-P8-LE-NEXT:    li r4, 162183; CHECK-P8-LE-NEXT:    addi r3, r3, GlobLd12@toc@l2184; CHECK-P8-LE-NEXT:    lxvd2x vs0, r3, r42185; CHECK-P8-LE-NEXT:    addis r3, r2, GlobSt12@toc@ha2186; CHECK-P8-LE-NEXT:    addi r3, r3, GlobSt12@toc@l2187; CHECK-P8-LE-NEXT:    stxvd2x vs0, r3, r42188; CHECK-P8-LE-NEXT:    blr2189;2190; CHECK-P8-BE-LABEL: testGlob12PtrPlus16:2191; CHECK-P8-BE:       # %bb.0: # %entry2192; CHECK-P8-BE-NEXT:    addis r3, r2, GlobLd12@toc@ha2193; CHECK-P8-BE-NEXT:    li r4, 162194; CHECK-P8-BE-NEXT:    addi r3, r3, GlobLd12@toc@l2195; CHECK-P8-BE-NEXT:    lxvw4x vs0, r3, r42196; CHECK-P8-BE-NEXT:    addis r3, r2, GlobSt12@toc@ha2197; CHECK-P8-BE-NEXT:    addi r3, r3, GlobSt12@toc@l2198; CHECK-P8-BE-NEXT:    stxvw4x vs0, r3, r42199; CHECK-P8-BE-NEXT:    blr2200entry:2201  %0 = load <16 x i8>, ptr getelementptr inbounds ([20 x <16 x i8>], ptr @GlobLd12, i64 0, i64 1, i64 0), align 162202  store <16 x i8> %0, ptr getelementptr inbounds ([20 x <16 x i8>], ptr @GlobSt12, i64 0, i64 1, i64 0), align 162203  ret void2204}2205 2206; Function Attrs: nofree norecurse nounwind uwtable willreturn2207define dso_local void @testGlob12PtrPlusVar(i64 %Idx) {2208; CHECK-P10-LE-LABEL: testGlob12PtrPlusVar:2209; CHECK-P10-LE:       # %bb.0: # %entry2210; CHECK-P10-LE-NEXT:    sldi r3, r3, 42211; CHECK-P10-LE-NEXT:    paddi r4, 0, GlobLd12@PCREL, 12212; CHECK-P10-LE-NEXT:    lxvx vs0, r4, r32213; CHECK-P10-LE-NEXT:    paddi r4, 0, GlobSt12@PCREL, 12214; CHECK-P10-LE-NEXT:    stxvx vs0, r4, r32215; CHECK-P10-LE-NEXT:    blr2216;2217; CHECK-P10-BE-LABEL: testGlob12PtrPlusVar:2218; CHECK-P10-BE:       # %bb.0: # %entry2219; CHECK-P10-BE-NEXT:    addis r4, r2, GlobLd12@toc@ha2220; CHECK-P10-BE-NEXT:    sldi r3, r3, 42221; CHECK-P10-BE-NEXT:    addi r4, r4, GlobLd12@toc@l2222; CHECK-P10-BE-NEXT:    lxvx vs0, r4, r32223; CHECK-P10-BE-NEXT:    addis r4, r2, GlobSt12@toc@ha2224; CHECK-P10-BE-NEXT:    addi r4, r4, GlobSt12@toc@l2225; CHECK-P10-BE-NEXT:    stxvx vs0, r4, r32226; CHECK-P10-BE-NEXT:    blr2227;2228; CHECK-P9-LABEL: testGlob12PtrPlusVar:2229; CHECK-P9:       # %bb.0: # %entry2230; CHECK-P9-NEXT:    addis r4, r2, GlobLd12@toc@ha2231; CHECK-P9-NEXT:    sldi r3, r3, 42232; CHECK-P9-NEXT:    addi r4, r4, GlobLd12@toc@l2233; CHECK-P9-NEXT:    lxvx vs0, r4, r32234; CHECK-P9-NEXT:    addis r4, r2, GlobSt12@toc@ha2235; CHECK-P9-NEXT:    addi r4, r4, GlobSt12@toc@l2236; CHECK-P9-NEXT:    stxvx vs0, r4, r32237; CHECK-P9-NEXT:    blr2238;2239; CHECK-P8-LE-LABEL: testGlob12PtrPlusVar:2240; CHECK-P8-LE:       # %bb.0: # %entry2241; CHECK-P8-LE-NEXT:    addis r4, r2, GlobLd12@toc@ha2242; CHECK-P8-LE-NEXT:    sldi r3, r3, 42243; CHECK-P8-LE-NEXT:    addi r4, r4, GlobLd12@toc@l2244; CHECK-P8-LE-NEXT:    lxvd2x vs0, r4, r32245; CHECK-P8-LE-NEXT:    addis r4, r2, GlobSt12@toc@ha2246; CHECK-P8-LE-NEXT:    addi r4, r4, GlobSt12@toc@l2247; CHECK-P8-LE-NEXT:    stxvd2x vs0, r4, r32248; CHECK-P8-LE-NEXT:    blr2249;2250; CHECK-P8-BE-LABEL: testGlob12PtrPlusVar:2251; CHECK-P8-BE:       # %bb.0: # %entry2252; CHECK-P8-BE-NEXT:    addis r4, r2, GlobLd12@toc@ha2253; CHECK-P8-BE-NEXT:    sldi r3, r3, 42254; CHECK-P8-BE-NEXT:    addi r4, r4, GlobLd12@toc@l2255; CHECK-P8-BE-NEXT:    lxvw4x vs0, r4, r32256; CHECK-P8-BE-NEXT:    addis r4, r2, GlobSt12@toc@ha2257; CHECK-P8-BE-NEXT:    addi r4, r4, GlobSt12@toc@l2258; CHECK-P8-BE-NEXT:    stxvw4x vs0, r4, r32259; CHECK-P8-BE-NEXT:    blr2260entry:2261  %arrayidx = getelementptr inbounds [20 x <16 x i8>], ptr @GlobLd12, i64 0, i64 %Idx2262  %0 = load <16 x i8>, ptr %arrayidx, align 162263  %arrayidx1 = getelementptr inbounds [20 x <16 x i8>], ptr @GlobSt12, i64 0, i64 %Idx2264  store <16 x i8> %0, ptr %arrayidx1, align 162265  ret void2266}2267 2268; Function Attrs: nofree norecurse nounwind uwtable willreturn2269define dso_local void @Atomic_LdSt_i8() {2270; CHECK-P10-LE-LABEL: Atomic_LdSt_i8:2271; CHECK-P10-LE:       # %bb.0: # %entry2272; CHECK-P10-LE-NEXT:    plbz r3, GlobLd1@PCREL(0), 12273; CHECK-P10-LE-NEXT:    pstb r3, GlobSt1@PCREL(0), 12274; CHECK-P10-LE-NEXT:    blr2275;2276; CHECK-P10-BE-LABEL: Atomic_LdSt_i8:2277; CHECK-P10-BE:       # %bb.0: # %entry2278; CHECK-P10-BE-NEXT:    addis r3, r2, GlobLd1@toc@ha2279; CHECK-P10-BE-NEXT:    addis r4, r2, GlobSt1@toc@ha2280; CHECK-P10-BE-NEXT:    lbz r3, GlobLd1@toc@l(r3)2281; CHECK-P10-BE-NEXT:    stb r3, GlobSt1@toc@l(r4)2282; CHECK-P10-BE-NEXT:    blr2283;2284; CHECK-LABEL: Atomic_LdSt_i8:2285; CHECK:       # %bb.0: # %entry2286; CHECK-NEXT:    addis r3, r2, GlobLd1@toc@ha2287; CHECK-NEXT:    addis r4, r2, GlobSt1@toc@ha2288; CHECK-NEXT:    lbz r3, GlobLd1@toc@l(r3)2289; CHECK-NEXT:    stb r3, GlobSt1@toc@l(r4)2290; CHECK-NEXT:    blr2291entry:2292  %0 = load atomic i8, ptr @GlobLd1 monotonic, align 12293  store atomic i8 %0, ptr @GlobSt1 monotonic, align 12294  ret void2295}2296 2297; Function Attrs: nofree norecurse nounwind uwtable willreturn2298define dso_local void @Atomic_LdSt_i16() {2299; CHECK-P10-LE-LABEL: Atomic_LdSt_i16:2300; CHECK-P10-LE:       # %bb.0: # %entry2301; CHECK-P10-LE-NEXT:    plhz r3, GlobLd3@PCREL(0), 12302; CHECK-P10-LE-NEXT:    psth r3, GlobSt3@PCREL(0), 12303; CHECK-P10-LE-NEXT:    blr2304;2305; CHECK-P10-BE-LABEL: Atomic_LdSt_i16:2306; CHECK-P10-BE:       # %bb.0: # %entry2307; CHECK-P10-BE-NEXT:    addis r3, r2, GlobLd3@toc@ha2308; CHECK-P10-BE-NEXT:    addis r4, r2, GlobSt3@toc@ha2309; CHECK-P10-BE-NEXT:    lhz r3, GlobLd3@toc@l(r3)2310; CHECK-P10-BE-NEXT:    sth r3, GlobSt3@toc@l(r4)2311; CHECK-P10-BE-NEXT:    blr2312;2313; CHECK-LABEL: Atomic_LdSt_i16:2314; CHECK:       # %bb.0: # %entry2315; CHECK-NEXT:    addis r3, r2, GlobLd3@toc@ha2316; CHECK-NEXT:    addis r4, r2, GlobSt3@toc@ha2317; CHECK-NEXT:    lhz r3, GlobLd3@toc@l(r3)2318; CHECK-NEXT:    sth r3, GlobSt3@toc@l(r4)2319; CHECK-NEXT:    blr2320entry:2321  %0 = load atomic i16, ptr @GlobLd3 monotonic, align 22322  store atomic i16 %0, ptr @GlobSt3 monotonic, align 22323  ret void2324}2325 2326; Function Attrs: nofree norecurse nounwind uwtable willreturn2327define dso_local void @Atomic_LdSt_i32() {2328; CHECK-P10-LE-LABEL: Atomic_LdSt_i32:2329; CHECK-P10-LE:       # %bb.0: # %entry2330; CHECK-P10-LE-NEXT:    plwz r3, GlobLd5@PCREL(0), 12331; CHECK-P10-LE-NEXT:    pstw r3, GlobSt5@PCREL(0), 12332; CHECK-P10-LE-NEXT:    blr2333;2334; CHECK-P10-BE-LABEL: Atomic_LdSt_i32:2335; CHECK-P10-BE:       # %bb.0: # %entry2336; CHECK-P10-BE-NEXT:    addis r3, r2, GlobLd5@toc@ha2337; CHECK-P10-BE-NEXT:    addis r4, r2, GlobSt5@toc@ha2338; CHECK-P10-BE-NEXT:    lwz r3, GlobLd5@toc@l(r3)2339; CHECK-P10-BE-NEXT:    stw r3, GlobSt5@toc@l(r4)2340; CHECK-P10-BE-NEXT:    blr2341;2342; CHECK-LABEL: Atomic_LdSt_i32:2343; CHECK:       # %bb.0: # %entry2344; CHECK-NEXT:    addis r3, r2, GlobLd5@toc@ha2345; CHECK-NEXT:    addis r4, r2, GlobSt5@toc@ha2346; CHECK-NEXT:    lwz r3, GlobLd5@toc@l(r3)2347; CHECK-NEXT:    stw r3, GlobSt5@toc@l(r4)2348; CHECK-NEXT:    blr2349entry:2350  %0 = load atomic i32, ptr @GlobLd5 monotonic, align 42351  store atomic i32 %0, ptr @GlobSt5 monotonic, align 42352  ret void2353}2354 2355; Function Attrs: nofree norecurse nounwind uwtable willreturn2356define dso_local void @Atomic_LdSt_i64() {2357; CHECK-P10-LE-LABEL: Atomic_LdSt_i64:2358; CHECK-P10-LE:       # %bb.0: # %entry2359; CHECK-P10-LE-NEXT:    pld r3, GlobLd7@PCREL(0), 12360; CHECK-P10-LE-NEXT:    pstd r3, GlobSt7@PCREL(0), 12361; CHECK-P10-LE-NEXT:    blr2362;2363; CHECK-P10-BE-LABEL: Atomic_LdSt_i64:2364; CHECK-P10-BE:       # %bb.0: # %entry2365; CHECK-P10-BE-NEXT:    addis r3, r2, GlobLd7@toc@ha2366; CHECK-P10-BE-NEXT:    addis r4, r2, GlobSt7@toc@ha2367; CHECK-P10-BE-NEXT:    ld r3, GlobLd7@toc@l(r3)2368; CHECK-P10-BE-NEXT:    std r3, GlobSt7@toc@l(r4)2369; CHECK-P10-BE-NEXT:    blr2370;2371; CHECK-P9-LABEL: Atomic_LdSt_i64:2372; CHECK-P9:       # %bb.0: # %entry2373; CHECK-P9-NEXT:    addis r3, r2, GlobLd7@toc@ha2374; CHECK-P9-NEXT:    addis r4, r2, GlobSt7@toc@ha2375; CHECK-P9-NEXT:    ld r3, GlobLd7@toc@l(r3)2376; CHECK-P9-NEXT:    std r3, GlobSt7@toc@l(r4)2377; CHECK-P9-NEXT:    blr2378;2379; CHECK-P8-LABEL: Atomic_LdSt_i64:2380; CHECK-P8:       # %bb.0: # %entry2381; CHECK-P8-NEXT:    addis r3, r2, GlobLd7@toc@ha2382; CHECK-P8-NEXT:    ld r3, GlobLd7@toc@l(r3)2383; CHECK-P8-NEXT:    addis r4, r2, GlobSt7@toc@ha2384; CHECK-P8-NEXT:    std r3, GlobSt7@toc@l(r4)2385; CHECK-P8-NEXT:    blr2386entry:2387  %0 = load atomic i64, ptr @GlobLd7 monotonic, align 82388  store atomic i64 %0, ptr @GlobSt7 monotonic, align 82389  ret void2390}2391 2392; Function Attrs: nofree norecurse nounwind uwtable willreturn writeonly2393define dso_local void @store_double_f64_to_uint(double %str) local_unnamed_addr #0 {2394; CHECK-P10-LE-LABEL: store_double_f64_to_uint:2395; CHECK-P10-LE:       # %bb.0: # %entry2396; CHECK-P10-LE-NEXT:    xscvdpuxds v2, f12397; CHECK-P10-LE-NEXT:    pstxsd v2, GlobSt10@PCREL(0), 12398; CHECK-P10-LE-NEXT:    blr2399;2400; CHECK-P10-BE-LABEL: store_double_f64_to_uint:2401; CHECK-P10-BE:       # %bb.0: # %entry2402; CHECK-P10-BE-NEXT:    xscvdpuxds v2, f12403; CHECK-P10-BE-NEXT:    addis r3, r2, GlobSt10@toc@ha2404; CHECK-P10-BE-NEXT:    addi r3, r3, GlobSt10@toc@l2405; CHECK-P10-BE-NEXT:    stxsd v2, 0(r3)2406; CHECK-P10-BE-NEXT:    blr2407;2408; CHECK-P9-LABEL: store_double_f64_to_uint:2409; CHECK-P9:       # %bb.0: # %entry2410; CHECK-P9-NEXT:    xscvdpuxds v2, f12411; CHECK-P9-NEXT:    addis r3, r2, GlobSt10@toc@ha2412; CHECK-P9-NEXT:    addi r3, r3, GlobSt10@toc@l2413; CHECK-P9-NEXT:    stxsd v2, 0(r3)2414; CHECK-P9-NEXT:    blr2415;2416; CHECK-P8-LABEL: store_double_f64_to_uint:2417; CHECK-P8:       # %bb.0: # %entry2418; CHECK-P8-NEXT:    xscvdpuxds f0, f12419; CHECK-P8-NEXT:    addis r3, r2, GlobSt10@toc@ha2420; CHECK-P8-NEXT:    addi r3, r3, GlobSt10@toc@l2421; CHECK-P8-NEXT:    stxsdx f0, 0, r32422; CHECK-P8-NEXT:    blr2423entry:2424  %conv = fptoui double %str to i642425  store i64 %conv, ptr @GlobSt10, align 82426  ret void2427}2428 2429; Function Attrs: nofree norecurse nounwind uwtable willreturn writeonly2430define dso_local void @store_double_f64_to_sint(double %str) local_unnamed_addr #0 {2431; CHECK-P10-LE-LABEL: store_double_f64_to_sint:2432; CHECK-P10-LE:       # %bb.0: # %entry2433; CHECK-P10-LE-NEXT:    xscvdpsxds v2, f12434; CHECK-P10-LE-NEXT:    pstxsd v2, GlobSt10@PCREL(0), 12435; CHECK-P10-LE-NEXT:    blr2436;2437; CHECK-P10-BE-LABEL: store_double_f64_to_sint:2438; CHECK-P10-BE:       # %bb.0: # %entry2439; CHECK-P10-BE-NEXT:    xscvdpsxds v2, f12440; CHECK-P10-BE-NEXT:    addis r3, r2, GlobSt10@toc@ha2441; CHECK-P10-BE-NEXT:    addi r3, r3, GlobSt10@toc@l2442; CHECK-P10-BE-NEXT:    stxsd v2, 0(r3)2443; CHECK-P10-BE-NEXT:    blr2444;2445; CHECK-P9-LABEL: store_double_f64_to_sint:2446; CHECK-P9:       # %bb.0: # %entry2447; CHECK-P9-NEXT:    xscvdpsxds v2, f12448; CHECK-P9-NEXT:    addis r3, r2, GlobSt10@toc@ha2449; CHECK-P9-NEXT:    addi r3, r3, GlobSt10@toc@l2450; CHECK-P9-NEXT:    stxsd v2, 0(r3)2451; CHECK-P9-NEXT:    blr2452;2453; CHECK-P8-LABEL: store_double_f64_to_sint:2454; CHECK-P8:       # %bb.0: # %entry2455; CHECK-P8-NEXT:    xscvdpsxds f0, f12456; CHECK-P8-NEXT:    addis r3, r2, GlobSt10@toc@ha2457; CHECK-P8-NEXT:    addi r3, r3, GlobSt10@toc@l2458; CHECK-P8-NEXT:    stxsdx f0, 0, r32459; CHECK-P8-NEXT:    blr2460entry:2461  %conv = fptosi double %str to i642462  store i64 %conv, ptr @GlobSt10, align 82463  ret void2464}2465 2466; Function Attrs: nofree norecurse nounwind uwtable willreturn writeonly2467define dso_local void @store_f128_to_uint(fp128 %str) local_unnamed_addr #0 {2468; CHECK-P10-LE-LABEL: store_f128_to_uint:2469; CHECK-P10-LE:       # %bb.0: # %entry2470; CHECK-P10-LE-NEXT:    xscvqpudz v2, v22471; CHECK-P10-LE-NEXT:    pstxsd v2, GlobF128@PCREL(0), 12472; CHECK-P10-LE-NEXT:    blr2473;2474; CHECK-P10-BE-LABEL: store_f128_to_uint:2475; CHECK-P10-BE:       # %bb.0: # %entry2476; CHECK-P10-BE-NEXT:    xscvqpudz v2, v22477; CHECK-P10-BE-NEXT:    addis r3, r2, GlobF128@toc@ha2478; CHECK-P10-BE-NEXT:    addi r3, r3, GlobF128@toc@l2479; CHECK-P10-BE-NEXT:    stxsd v2, 0(r3)2480; CHECK-P10-BE-NEXT:    blr2481;2482; CHECK-P9-LABEL: store_f128_to_uint:2483; CHECK-P9:       # %bb.0: # %entry2484; CHECK-P9-NEXT:    xscvqpudz v2, v22485; CHECK-P9-NEXT:    addis r3, r2, GlobF128@toc@ha2486; CHECK-P9-NEXT:    addi r3, r3, GlobF128@toc@l2487; CHECK-P9-NEXT:    stxsd v2, 0(r3)2488; CHECK-P9-NEXT:    blr2489;2490; CHECK-P8-LE-LABEL: store_f128_to_uint:2491; CHECK-P8-LE:       # %bb.0: # %entry2492; CHECK-P8-LE-NEXT:    mflr r02493; CHECK-P8-LE-NEXT:    stdu r1, -32(r1)2494; CHECK-P8-LE-NEXT:    std r0, 48(r1)2495; CHECK-P8-LE-NEXT:    .cfi_def_cfa_offset 322496; CHECK-P8-LE-NEXT:    .cfi_offset lr, 162497; CHECK-P8-LE-NEXT:    bl __fixunskfdi2498; CHECK-P8-LE-NEXT:    nop2499; CHECK-P8-LE-NEXT:    addis r4, r2, GlobF128@toc@ha2500; CHECK-P8-LE-NEXT:    std r3, GlobF128@toc@l(r4)2501; CHECK-P8-LE-NEXT:    addi r1, r1, 322502; CHECK-P8-LE-NEXT:    ld r0, 16(r1)2503; CHECK-P8-LE-NEXT:    mtlr r02504; CHECK-P8-LE-NEXT:    blr2505;2506; CHECK-P8-BE-LABEL: store_f128_to_uint:2507; CHECK-P8-BE:       # %bb.0: # %entry2508; CHECK-P8-BE-NEXT:    mflr r02509; CHECK-P8-BE-NEXT:    stdu r1, -112(r1)2510; CHECK-P8-BE-NEXT:    std r0, 128(r1)2511; CHECK-P8-BE-NEXT:    .cfi_def_cfa_offset 1122512; CHECK-P8-BE-NEXT:    .cfi_offset lr, 162513; CHECK-P8-BE-NEXT:    bl __fixunskfdi2514; CHECK-P8-BE-NEXT:    nop2515; CHECK-P8-BE-NEXT:    addis r4, r2, GlobF128@toc@ha2516; CHECK-P8-BE-NEXT:    std r3, GlobF128@toc@l(r4)2517; CHECK-P8-BE-NEXT:    addi r1, r1, 1122518; CHECK-P8-BE-NEXT:    ld r0, 16(r1)2519; CHECK-P8-BE-NEXT:    mtlr r02520; CHECK-P8-BE-NEXT:    blr2521entry:2522  %conv = fptoui fp128 %str to i642523  store i64 %conv, ptr @GlobF128, align 162524  ret void2525}2526 2527; Function Attrs: nofree norecurse nounwind uwtable willreturn writeonly2528define dso_local void @store_f128_to_sint(fp128 %str) local_unnamed_addr #0 {2529; CHECK-P10-LE-LABEL: store_f128_to_sint:2530; CHECK-P10-LE:       # %bb.0: # %entry2531; CHECK-P10-LE-NEXT:    xscvqpsdz v2, v22532; CHECK-P10-LE-NEXT:    pstxsd v2, GlobF128@PCREL(0), 12533; CHECK-P10-LE-NEXT:    blr2534;2535; CHECK-P10-BE-LABEL: store_f128_to_sint:2536; CHECK-P10-BE:       # %bb.0: # %entry2537; CHECK-P10-BE-NEXT:    xscvqpsdz v2, v22538; CHECK-P10-BE-NEXT:    addis r3, r2, GlobF128@toc@ha2539; CHECK-P10-BE-NEXT:    addi r3, r3, GlobF128@toc@l2540; CHECK-P10-BE-NEXT:    stxsd v2, 0(r3)2541; CHECK-P10-BE-NEXT:    blr2542;2543; CHECK-P9-LABEL: store_f128_to_sint:2544; CHECK-P9:       # %bb.0: # %entry2545; CHECK-P9-NEXT:    xscvqpsdz v2, v22546; CHECK-P9-NEXT:    addis r3, r2, GlobF128@toc@ha2547; CHECK-P9-NEXT:    addi r3, r3, GlobF128@toc@l2548; CHECK-P9-NEXT:    stxsd v2, 0(r3)2549; CHECK-P9-NEXT:    blr2550;2551; CHECK-P8-LE-LABEL: store_f128_to_sint:2552; CHECK-P8-LE:       # %bb.0: # %entry2553; CHECK-P8-LE-NEXT:    mflr r02554; CHECK-P8-LE-NEXT:    stdu r1, -32(r1)2555; CHECK-P8-LE-NEXT:    std r0, 48(r1)2556; CHECK-P8-LE-NEXT:    .cfi_def_cfa_offset 322557; CHECK-P8-LE-NEXT:    .cfi_offset lr, 162558; CHECK-P8-LE-NEXT:    bl __fixkfdi2559; CHECK-P8-LE-NEXT:    nop2560; CHECK-P8-LE-NEXT:    addis r4, r2, GlobF128@toc@ha2561; CHECK-P8-LE-NEXT:    std r3, GlobF128@toc@l(r4)2562; CHECK-P8-LE-NEXT:    addi r1, r1, 322563; CHECK-P8-LE-NEXT:    ld r0, 16(r1)2564; CHECK-P8-LE-NEXT:    mtlr r02565; CHECK-P8-LE-NEXT:    blr2566;2567; CHECK-P8-BE-LABEL: store_f128_to_sint:2568; CHECK-P8-BE:       # %bb.0: # %entry2569; CHECK-P8-BE-NEXT:    mflr r02570; CHECK-P8-BE-NEXT:    stdu r1, -112(r1)2571; CHECK-P8-BE-NEXT:    std r0, 128(r1)2572; CHECK-P8-BE-NEXT:    .cfi_def_cfa_offset 1122573; CHECK-P8-BE-NEXT:    .cfi_offset lr, 162574; CHECK-P8-BE-NEXT:    bl __fixkfdi2575; CHECK-P8-BE-NEXT:    nop2576; CHECK-P8-BE-NEXT:    addis r4, r2, GlobF128@toc@ha2577; CHECK-P8-BE-NEXT:    std r3, GlobF128@toc@l(r4)2578; CHECK-P8-BE-NEXT:    addi r1, r1, 1122579; CHECK-P8-BE-NEXT:    ld r0, 16(r1)2580; CHECK-P8-BE-NEXT:    mtlr r02581; CHECK-P8-BE-NEXT:    blr2582entry:2583  %conv = fptosi fp128 %str to i642584  store i64 %conv, ptr @GlobF128, align 162585  ret void2586}2587