brintos

brintos / llvm-project-archived public Read only

0
0
Text · 17.4 KiB · 14fea56 Raw
537 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 < %s \4; RUN:   | FileCheck %s5; RUN: llc -verify-machineinstrs -target-abi=elfv2 -mtriple=powerpc64-- \6; RUN:   -mcpu=pwr10 -ppc-asm-full-reg-names -ppc-vsr-nums-as-vr < %s \7; RUN:   | FileCheck %s8 9 @_ZL13StaticBoolVar = internal unnamed_addr global i8 0, align 110@_ZL19StaticSignedCharVar = internal unnamed_addr global i8 0, align 111@_ZL21StaticUnsignedCharVar = internal unnamed_addr global i8 0, align 112@_ZL20StaticSignedShortVar = internal unnamed_addr global i16 0, align 213@_ZL22StaticUnsignedShortVar = internal unnamed_addr global i16 0, align 214@_ZL18StaticSignedIntVar = internal unnamed_addr global i32 0, align 415@_ZL20StaticUnsignedIntVar = internal unnamed_addr global i32 0, align 416@_ZL19StaticSignedLongVar = internal unnamed_addr global i64 0, align 817@_ZL14StaticFloatVar = internal unnamed_addr global float 0.000000e+00, align 418@_ZL15StaticDoubleVar = internal unnamed_addr global double 0.000000e+00, align 819@_ZL19StaticLongDoubleVar = internal unnamed_addr global ppc_fp128 0xM00000000000000000000000000000000, align 1620@_ZL23StaticSigned__Int128Var = internal unnamed_addr global i128 0, align 1621@_ZL19Static__Float128Var = internal unnamed_addr global fp128 0xL00000000000000000000000000000000, align 1622@_ZL25StaticVectorSignedCharVar = internal unnamed_addr global <16 x i8> zeroinitializer, align 1623@_ZL26StaticVectorSignedShortVar = internal unnamed_addr global <8 x i16> zeroinitializer, align 1624@_ZL24StaticVectorSignedIntVar = internal unnamed_addr global <4 x i32> zeroinitializer, align 1625@_ZL29StaticVectorSignedLongLongVar = internal unnamed_addr global <2 x i64> zeroinitializer, align 1626@_ZL29StaticVectorSigned__Int128Var = internal unnamed_addr global <1 x i128> zeroinitializer, align 1627@_ZL20StaticVectorFloatVar = internal unnamed_addr global <4 x float> zeroinitializer, align 1628@_ZL21StaticVectorDoubleVar = internal unnamed_addr global <2 x double> zeroinitializer, align 1629 30 define zeroext i1 @_Z17ReadStaticBoolVarv() {31; CHECK-LABEL: _Z17ReadStaticBoolVarv:32; CHECK:       # %bb.0: # %entry33; CHECK-NEXT:    plbz r3, _ZL13StaticBoolVar@PCREL(0), 134; CHECK-NEXT:    blr35entry:36  %0 = load i8, ptr @_ZL13StaticBoolVar, align 1, !range !0, !noundef !{}37  %tobool = icmp ne i8 %0, 038  ret i1 %tobool39}40 41 define signext i8 @_Z23ReadStaticSignedCharVarv() {42; CHECK-LABEL: _Z23ReadStaticSignedCharVarv:43; CHECK:       # %bb.0: # %entry44; CHECK-NEXT:    plbz r3, _ZL19StaticSignedCharVar@PCREL(0), 145; CHECK-NEXT:    extsb r3, r346; CHECK-NEXT:    blr47entry:48  %0 = load i8, ptr @_ZL19StaticSignedCharVar, align 149  ret i8 %050}51 52 define zeroext i8 @_Z25ReadStaticUnsignedCharVarv() {53; CHECK-LABEL: _Z25ReadStaticUnsignedCharVarv:54; CHECK:       # %bb.0: # %entry55; CHECK-NEXT:    plbz r3, _ZL21StaticUnsignedCharVar@PCREL(0), 156; CHECK-NEXT:    blr57entry:58  %0 = load i8, ptr @_ZL21StaticUnsignedCharVar, align 159  ret i8 %060}61 62 define signext i16 @_Z24ReadStaticSignedShortVarv() {63; CHECK-LABEL: _Z24ReadStaticSignedShortVarv:64; CHECK:       # %bb.0: # %entry65; CHECK-NEXT:    plha r3, _ZL20StaticSignedShortVar@PCREL(0), 166; CHECK-NEXT:    blr67entry:68  %0 = load i16, ptr @_ZL20StaticSignedShortVar, align 269  ret i16 %070}71 72 define zeroext i16 @_Z26ReadStaticUnsignedShortVarv() {73; CHECK-LABEL: _Z26ReadStaticUnsignedShortVarv:74; CHECK:       # %bb.0: # %entry75; CHECK-NEXT:    plhz r3, _ZL22StaticUnsignedShortVar@PCREL(0), 176; CHECK-NEXT:    blr77entry:78  %0 = load i16, ptr @_ZL22StaticUnsignedShortVar, align 279  ret i16 %080}81 82 define signext i32 @_Z22ReadStaticSignedIntVarv() {83; CHECK-LABEL: _Z22ReadStaticSignedIntVarv:84; CHECK:       # %bb.0: # %entry85; CHECK-NEXT:    plwa r3, _ZL18StaticSignedIntVar@PCREL(0), 186; CHECK-NEXT:    blr87entry:88  %0 = load i32, ptr @_ZL18StaticSignedIntVar, align 489  ret i32 %090}91 92 define zeroext i32 @_Z24ReadStaticUnsignedIntVarv() {93; CHECK-LABEL: _Z24ReadStaticUnsignedIntVarv:94; CHECK:       # %bb.0: # %entry95; CHECK-NEXT:    plwz r3, _ZL20StaticUnsignedIntVar@PCREL(0), 196; CHECK-NEXT:    blr97entry:98  %0 = load i32, ptr @_ZL20StaticUnsignedIntVar, align 499  ret i32 %0100}101 102 ; It is the same as unsigned long version103define i64 @_Z23ReadStaticSignedLongVarv() {104; CHECK-LABEL: _Z23ReadStaticSignedLongVarv:105; CHECK:       # %bb.0: # %entry106; CHECK-NEXT:    pld r3, _ZL19StaticSignedLongVar@PCREL(0), 1107; CHECK-NEXT:    blr108entry:109  %0 = load i64, ptr @_ZL19StaticSignedLongVar, align 8110  ret i64 %0111}112 113 define float @_Z18ReadStaticFloatVarv() {114; CHECK-LABEL: _Z18ReadStaticFloatVarv:115; CHECK:       # %bb.0: # %entry116; CHECK-NEXT:    plfs f1, _ZL14StaticFloatVar@PCREL(0), 1117; CHECK-NEXT:    blr118entry:119  %0 = load float, ptr @_ZL14StaticFloatVar, align 4120  ret float %0121}122 123 define double @_Z19ReadStaticDoubleVarv() {124; CHECK-LABEL: _Z19ReadStaticDoubleVarv:125; CHECK:       # %bb.0: # %entry126; CHECK-NEXT:    plfd f1, _ZL15StaticDoubleVar@PCREL(0), 1127; CHECK-NEXT:    blr128entry:129  %0 = load double, ptr @_ZL15StaticDoubleVar, align 8130  ret double %0131}132 133 ; FIXME:134define ppc_fp128 @_Z23ReadStaticLongDoubleVarv() {135; CHECK-LABEL: _Z23ReadStaticLongDoubleVarv:136; CHECK:       # %bb.0: # %entry137; CHECK-NEXT:    plfd f1, _ZL19StaticLongDoubleVar@PCREL(0), 1138; CHECK-NEXT:    plfd f2, _ZL19StaticLongDoubleVar@PCREL+8(0), 1139; CHECK-NEXT:    blr140entry:141  %0 = load ppc_fp128, ptr @_ZL19StaticLongDoubleVar, align 16142  ret ppc_fp128 %0143}144 145 ; FIXME:146define i128 @_Z27ReadStaticSigned__Int128Varv() {147; CHECK-LABEL: _Z27ReadStaticSigned__Int128Varv:148; CHECK:       # %bb.0: # %entry149; CHECK-NEXT:    pld r3, _ZL23StaticSigned__Int128Var@PCREL(0), 1150; CHECK-NEXT:    pld r4, _ZL23StaticSigned__Int128Var@PCREL+8(0), 1151; CHECK-NEXT:    blr152entry:153  %0 = load i128, ptr @_ZL23StaticSigned__Int128Var, align 16154  ret i128 %0155}156 157 define fp128 @_Z23ReadStatic__Float128Varv() {158; CHECK-LABEL: _Z23ReadStatic__Float128Varv:159; CHECK:       # %bb.0: # %entry160; CHECK-NEXT:    plxv v2, _ZL19Static__Float128Var@PCREL(0), 1161; CHECK-NEXT:    blr162entry:163  %0 = load fp128, ptr @_ZL19Static__Float128Var, align 16164  ret fp128 %0165}166 167 define <16 x i8> @_Z29ReadStaticVectorSignedCharVarv() {168; CHECK-LABEL: _Z29ReadStaticVectorSignedCharVarv:169; CHECK:       # %bb.0: # %entry170; CHECK-NEXT:    plxv v2, _ZL25StaticVectorSignedCharVar@PCREL(0), 1171; CHECK-NEXT:    blr172entry:173  %0 = load <16 x i8>, ptr @_ZL25StaticVectorSignedCharVar, align 16174  ret <16 x i8> %0175}176 177 define <8 x i16> @_Z30ReadStaticVectorSignedShortVarv() {178; CHECK-LABEL: _Z30ReadStaticVectorSignedShortVarv:179; CHECK:       # %bb.0: # %entry180; CHECK-NEXT:    plxv v2, _ZL26StaticVectorSignedShortVar@PCREL(0), 1181; CHECK-NEXT:    blr182entry:183  %0 = load <8 x i16>, ptr @_ZL26StaticVectorSignedShortVar, align 16184  ret <8 x i16> %0185}186 187 define <4 x i32> @_Z28ReadStaticVectorSignedIntVarv() {188; CHECK-LABEL: _Z28ReadStaticVectorSignedIntVarv:189; CHECK:       # %bb.0: # %entry190; CHECK-NEXT:    plxv v2, _ZL24StaticVectorSignedIntVar@PCREL(0), 1191; CHECK-NEXT:    blr192entry:193  %0 = load <4 x i32>, ptr @_ZL24StaticVectorSignedIntVar, align 16194  ret <4 x i32> %0195}196 197 define <2 x i64> @_Z33ReadStaticVectorSignedLongLongVarv() {198; CHECK-LABEL: _Z33ReadStaticVectorSignedLongLongVarv:199; CHECK:       # %bb.0: # %entry200; CHECK-NEXT:    plxv v2, _ZL29StaticVectorSignedLongLongVar@PCREL(0), 1201; CHECK-NEXT:    blr202entry:203  %0 = load <2 x i64>, ptr @_ZL29StaticVectorSignedLongLongVar, align 16204  ret <2 x i64> %0205}206 207 define <1 x i128> @_Z33ReadStaticVectorSigned__Int128Varv() {208; CHECK-LABEL: _Z33ReadStaticVectorSigned__Int128Varv:209; CHECK:       # %bb.0: # %entry210; CHECK-NEXT:    plxv v2, _ZL29StaticVectorSigned__Int128Var@PCREL(0), 1211; CHECK-NEXT:    blr212entry:213  %0 = load <1 x i128>, ptr @_ZL29StaticVectorSigned__Int128Var, align 16214  ret <1 x i128> %0215}216 217 define <4 x float> @_Z24ReadStaticVectorFloatVarv() {218; CHECK-LABEL: _Z24ReadStaticVectorFloatVarv:219; CHECK:       # %bb.0: # %entry220; CHECK-NEXT:    plxv v2, _ZL20StaticVectorFloatVar@PCREL(0), 1221; CHECK-NEXT:    blr222entry:223  %0 = load <4 x float>, ptr @_ZL20StaticVectorFloatVar, align 16224  ret <4 x float> %0225}226 227 define <2 x double> @_Z25ReadStaticVectorDoubleVarv() {228; CHECK-LABEL: _Z25ReadStaticVectorDoubleVarv:229; CHECK:       # %bb.0: # %entry230; CHECK-NEXT:    plxv v2, _ZL21StaticVectorDoubleVar@PCREL(0), 1231; CHECK-NEXT:    blr232entry:233  %0 = load <2 x double>, ptr @_ZL21StaticVectorDoubleVar, align 16234  ret <2 x double> %0235}236 237 !0 = !{i8 0, i8 2}238 239 define void @_Z18WriteStaticBoolVarb(i1 zeroext %val) {240; CHECK-LABEL: _Z18WriteStaticBoolVarb:241; CHECK:       # %bb.0: # %entry242; CHECK-NEXT:    pstb r3, _ZL13StaticBoolVar@PCREL(0), 1243; CHECK-NEXT:    blr244entry:245  %frombool = zext i1 %val to i8246  store i8 %frombool, ptr @_ZL13StaticBoolVar, align 1247  ret void248}249 250 define void @_Z24WriteStaticSignedCharVara(i8 signext %val) {251; CHECK-LABEL: _Z24WriteStaticSignedCharVara:252; CHECK:       # %bb.0: # %entry253; CHECK-NEXT:    pstb r3, _ZL19StaticSignedCharVar@PCREL(0), 1254; CHECK-NEXT:    blr255entry:256  store i8 %val, ptr @_ZL19StaticSignedCharVar, align 1257  ret void258}259 260 define void @_Z26WriteStaticUnsignedCharVarh(i8 zeroext %val){261; CHECK-LABEL: _Z26WriteStaticUnsignedCharVarh:262; CHECK:       # %bb.0: # %entry263; CHECK-NEXT:    pstb r3, _ZL21StaticUnsignedCharVar@PCREL(0), 1264; CHECK-NEXT:    blr265entry:266  store i8 %val, ptr @_ZL21StaticUnsignedCharVar, align 1267  ret void268}269 270 define void @_Z25WriteStaticSignedShortVars(i16 signext %val) {271; CHECK-LABEL: _Z25WriteStaticSignedShortVars:272; CHECK:       # %bb.0: # %entry273; CHECK-NEXT:    psth r3, _ZL20StaticSignedShortVar@PCREL(0), 1274; CHECK-NEXT:    blr275entry:276  store i16 %val, ptr @_ZL20StaticSignedShortVar, align 2277  ret void278}279 280 define void @_Z27WriteStaticUnsignedShortVart(i16 zeroext %val) {281; CHECK-LABEL: _Z27WriteStaticUnsignedShortVart:282; CHECK:       # %bb.0: # %entry283; CHECK-NEXT:    psth r3, _ZL22StaticUnsignedShortVar@PCREL(0), 1284; CHECK-NEXT:    blr285entry:286  store i16 %val, ptr @_ZL22StaticUnsignedShortVar, align 2287  ret void288}289 290 define void @_Z23WriteStaticSignedIntVari(i32 signext %val) {291; CHECK-LABEL: _Z23WriteStaticSignedIntVari:292; CHECK:       # %bb.0: # %entry293; CHECK-NEXT:    pstw r3, _ZL18StaticSignedIntVar@PCREL(0), 1294; CHECK-NEXT:    blr295entry:296  store i32 %val, ptr @_ZL18StaticSignedIntVar, align 4297  ret void298}299 300 define void @_Z25WriteStaticUnsignedIntVarj(i32 zeroext %val) {301; CHECK-LABEL: _Z25WriteStaticUnsignedIntVarj:302; CHECK:       # %bb.0: # %entry303; CHECK-NEXT:    pstw r3, _ZL20StaticUnsignedIntVar@PCREL(0), 1304; CHECK-NEXT:    blr305entry:306  store i32 %val, ptr @_ZL20StaticUnsignedIntVar, align 4307  ret void308}309 310 define void @_Z24WriteStaticSignedLongVarl(i64 %val) {311; CHECK-LABEL: _Z24WriteStaticSignedLongVarl:312; CHECK:       # %bb.0: # %entry313; CHECK-NEXT:    pstd r3, _ZL19StaticSignedLongVar@PCREL(0), 1314; CHECK-NEXT:    blr315entry:316  store i64 %val, ptr @_ZL19StaticSignedLongVar, align 8317  ret void318}319 320 define void @_Z19WriteStaticFloatVarf(float %val) {321; CHECK-LABEL: _Z19WriteStaticFloatVarf:322; CHECK:       # %bb.0: # %entry323; CHECK-NEXT:    pstfs f1, _ZL14StaticFloatVar@PCREL(0), 1324; CHECK-NEXT:    blr325entry:326  store float %val, ptr @_ZL14StaticFloatVar, align 4327  ret void328}329 330 define void @_Z20WriteStaticDoubleVard(double %val) {331; CHECK-LABEL: _Z20WriteStaticDoubleVard:332; CHECK:       # %bb.0: # %entry333; CHECK-NEXT:    pstfd f1, _ZL15StaticDoubleVar@PCREL(0), 1334; CHECK-NEXT:    blr335entry:336  store double %val, ptr @_ZL15StaticDoubleVar, align 8337  ret void338}339 340 ; FIXME:341define void @_Z24WriteStaticLongDoubleVarg(ppc_fp128 %val) {342; CHECK-LABEL: _Z24WriteStaticLongDoubleVarg:343; CHECK:       # %bb.0: # %entry344; CHECK-NEXT:    pstfd f2, _ZL19StaticLongDoubleVar@PCREL+8(0), 1345; CHECK-NEXT:    pstfd f1, _ZL19StaticLongDoubleVar@PCREL(0), 1346; CHECK-NEXT:    blr347entry:348  store ppc_fp128 %val, ptr @_ZL19StaticLongDoubleVar, align 16349  ret void350}351 352 ; FIXME:353define void @_Z28WriteStaticSigned__Int128Varn(i128 %val) {354; CHECK-LABEL: _Z28WriteStaticSigned__Int128Varn:355; CHECK:       # %bb.0: # %entry356; CHECK-NEXT:    pstd r4, _ZL23StaticSigned__Int128Var@PCREL+8(0), 1357; CHECK-NEXT:    pstd r3, _ZL23StaticSigned__Int128Var@PCREL(0), 1358; CHECK-NEXT:    blr359entry:360  store i128 %val, ptr @_ZL23StaticSigned__Int128Var, align 16361  ret void362}363 364 define void @_Z24WriteStatic__Float128Varu9__ieee128(fp128 %val) {365; CHECK-LABEL: _Z24WriteStatic__Float128Varu9__ieee128:366; CHECK:       # %bb.0: # %entry367; CHECK-NEXT:    pstxv v2, _ZL19Static__Float128Var@PCREL(0), 1368; CHECK-NEXT:    blr369entry:370  store fp128 %val, ptr @_ZL19Static__Float128Var, align 16371  ret void372}373 374 define void @_Z30WriteStaticVectorSignedCharVarDv16_a(<16 x i8> %val) {375; CHECK-LABEL: _Z30WriteStaticVectorSignedCharVarDv16_a:376; CHECK:       # %bb.0: # %entry377; CHECK-NEXT:    pstxv v2, _ZL25StaticVectorSignedCharVar@PCREL(0), 1378; CHECK-NEXT:    blr379entry:380  store <16 x i8> %val, ptr @_ZL25StaticVectorSignedCharVar, align 16381  ret void382}383 384 define void @_Z31WriteStaticVectorSignedShortVarDv8_s(<8 x i16> %val) {385; CHECK-LABEL: _Z31WriteStaticVectorSignedShortVarDv8_s:386; CHECK:       # %bb.0: # %entry387; CHECK-NEXT:    pstxv v2, _ZL26StaticVectorSignedShortVar@PCREL(0), 1388; CHECK-NEXT:    blr389entry:390  store <8 x i16> %val, ptr @_ZL26StaticVectorSignedShortVar, align 16391  ret void392}393 394 define void @_Z29WriteStaticVectorSignedIntVarDv4_i(<4 x i32> %val) {395; CHECK-LABEL: _Z29WriteStaticVectorSignedIntVarDv4_i:396; CHECK:       # %bb.0: # %entry397; CHECK-NEXT:    pstxv v2, _ZL24StaticVectorSignedIntVar@PCREL(0), 1398; CHECK-NEXT:    blr399entry:400  store <4 x i32> %val, ptr @_ZL24StaticVectorSignedIntVar, align 16401  ret void402}403 404 define void @_Z34WriteStaticVectorSignedLongLongVarDv2_x(<2 x i64> %val) {405; CHECK-LABEL: _Z34WriteStaticVectorSignedLongLongVarDv2_x:406; CHECK:       # %bb.0: # %entry407; CHECK-NEXT:    pstxv v2, _ZL29StaticVectorSignedLongLongVar@PCREL(0), 1408; CHECK-NEXT:    blr409entry:410  store <2 x i64> %val, ptr @_ZL29StaticVectorSignedLongLongVar, align 16411  ret void412}413 414 define void @_Z34WriteStaticVectorSigned__Int128VarDv1_n(<1 x i128> %val) {415; CHECK-LABEL: _Z34WriteStaticVectorSigned__Int128VarDv1_n:416; CHECK:       # %bb.0: # %entry417; CHECK-NEXT:    pstxv v2, _ZL29StaticVectorSigned__Int128Var@PCREL(0), 1418; CHECK-NEXT:    blr419entry:420  store <1 x i128> %val, ptr @_ZL29StaticVectorSigned__Int128Var, align 16421  ret void422}423 424 define void @_Z25WriteStaticVectorFloatVarDv4_f(<4 x float> %val) {425; CHECK-LABEL: _Z25WriteStaticVectorFloatVarDv4_f:426; CHECK:       # %bb.0: # %entry427; CHECK-NEXT:    pstxv v2, _ZL20StaticVectorFloatVar@PCREL(0), 1428; CHECK-NEXT:    blr429entry:430  store <4 x float> %val, ptr @_ZL20StaticVectorFloatVar, align 16431  ret void432}433 434 define void @_Z26WriteStaticVectorDoubleVarDv2_d(<2 x double> %val) {435; CHECK-LABEL: _Z26WriteStaticVectorDoubleVarDv2_d:436; CHECK:       # %bb.0: # %entry437; CHECK-NEXT:    pstxv v2, _ZL21StaticVectorDoubleVar@PCREL(0), 1438; CHECK-NEXT:    blr439entry:440  store <2 x double> %val, ptr @_ZL21StaticVectorDoubleVar, align 16441  ret void442}443 444 @_ZL3ptr = internal unnamed_addr global ptr null, align 8445define void @_Z14WriteStaticPtrv() {446; CHECK-LABEL: _Z14WriteStaticPtrv:447; CHECK:       # %bb.0: # %entry448; CHECK-NEXT:    pld r3, _ZL3ptr@PCREL(0), 1449; CHECK-NEXT:    li r4, 3450; CHECK-NEXT:    stw r4, 0(r3)451; CHECK-NEXT:    blr452entry:453  %0 = load ptr, ptr @_ZL3ptr, align 8454  store i32 3, ptr %0, align 4455  ret void456}457 458 @.str = private unnamed_addr constant [13 x i8] c"Hello World\0A\00", align 1459@str = dso_local local_unnamed_addr global ptr @.str, align 8460 461 define zeroext i8 @_Z17Char0InStrLiteralv() {462; CHECK-LABEL: _Z17Char0InStrLiteralv:463; CHECK:       # %bb.0: # %entry464; CHECK-NEXT:    pld r3, str@PCREL(0), 1465; CHECK-NEXT:    lbz r3, 0(r3)466; CHECK-NEXT:    blr467entry:468  %0 = load ptr, ptr @str, align 8469  %1 = load i8, ptr %0, align 1470  ret i8 %1471}472 473 define zeroext i8 @_Z17Char3InStrLiteralv() {474; CHECK-LABEL: _Z17Char3InStrLiteralv:475; CHECK:       # %bb.0: # %entry476; CHECK-NEXT:    pld r3, str@PCREL(0), 1477; CHECK-NEXT:    lbz r3, 3(r3)478; CHECK-NEXT:    blr479entry:480  %0 = load ptr, ptr @str, align 8481  %arrayidx = getelementptr inbounds i8, ptr %0, i64 3482  %1 = load i8, ptr %arrayidx, align 1483  ret i8 %1484}485 486 @_ZL5array = internal global [10 x i32] zeroinitializer, align 4487 488 ; FIXME:489define signext i32 @_Z15ReadStaticArrayv() {490; CHECK-LABEL: _Z15ReadStaticArrayv:491; CHECK:       # %bb.0: # %entry492; CHECK-NEXT:    plwa r3, _ZL5array@PCREL+12(0), 1493; CHECK-NEXT:    blr494entry:495  %0 = load i32, ptr getelementptr inbounds ([10 x i32], ptr @_ZL5array, i64 0, i64 3), align 4496  ret i32 %0497}498 499 ; FIXME:500define void @_Z16WriteStaticArrayv() {501; CHECK-LABEL: _Z16WriteStaticArrayv:502; CHECK:       # %bb.0: # %entry503; CHECK-NEXT:    li r3, 5504; CHECK-NEXT:    pstw r3, _ZL5array@PCREL+12(0), 1505; CHECK-NEXT:    blr506entry:507  store i32 5, ptr getelementptr inbounds ([10 x i32], ptr @_ZL5array, i64 0, i64 3), align 4508  ret void509}510 511 %struct.Struct = type { i8, i16, i32 }512 513 ; FIXME:514@_ZL9structure = internal global %struct.Struct zeroinitializer, align 4515define signext i32 @_Z16ReadStaticStructv() {516; CHECK-LABEL: _Z16ReadStaticStructv:517; CHECK:       # %bb.0: # %entry518; CHECK-NEXT:    plwa r3, _ZL9structure@PCREL+4(0), 1519; CHECK-NEXT:    blr520entry:521  %0 = load i32, ptr getelementptr inbounds (%struct.Struct, ptr @_ZL9structure, i64 0, i32 2), align 4522  ret i32 %0523}524 525 ; FIXME526define void @_Z17WriteStaticStructv() {527; CHECK-LABEL: _Z17WriteStaticStructv:528; CHECK:       # %bb.0: # %entry529; CHECK-NEXT:    li r3, 3530; CHECK-NEXT:    pstw r3, _ZL9structure@PCREL+4(0), 1531; CHECK-NEXT:    blr532entry:533  store i32 3, ptr getelementptr inbounds (%struct.Struct, ptr @_ZL9structure, i64 0, i32 2), align 4534  ret void535}536 537