xref: /llvm-project/llvm/test/CodeGen/PowerPC/aix-small-local-exec-tls-largeaccess.ll (revision 6bbccd2516c3a843809a8303da48abce58a88855)
13f46e545SAmy Kwan; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 3
23f46e545SAmy Kwan; RUN: llc  -verify-machineinstrs -mcpu=pwr7 -ppc-asm-full-reg-names \
33f46e545SAmy Kwan; RUN:      -mtriple powerpc64-ibm-aix-xcoff -mattr=+aix-small-local-exec-tls < %s \
43f46e545SAmy Kwan; RUN:      | FileCheck %s --check-prefix=SMALL-LOCAL-EXEC-SMALLCM64
53f46e545SAmy Kwan; RUN: llc  -verify-machineinstrs -mcpu=pwr7 -ppc-asm-full-reg-names \
63f46e545SAmy Kwan; RUN:      -mtriple powerpc64-ibm-aix-xcoff --code-model=large \
73f46e545SAmy Kwan; RUN:      -mattr=+aix-small-local-exec-tls < %s | FileCheck %s \
83f46e545SAmy Kwan; RUN:      --check-prefix=SMALL-LOCAL-EXEC-LARGECM64
93f46e545SAmy Kwan
103f46e545SAmy Kwan; Test disassembly of object.
113f46e545SAmy Kwan; RUN: llc -verify-machineinstrs -mcpu=pwr7 -mattr=+aix-small-local-exec-tls \
123f46e545SAmy Kwan; RUN:      -mtriple powerpc64-ibm-aix-xcoff -xcoff-traceback-table=false \
133f46e545SAmy Kwan; RUN:      --code-model=large -filetype=obj -o %t.o < %s
14b1acb7a3Sstephenpeckham; RUN: llvm-objdump -D -r --symbol-description %t.o | FileCheck -D#NFA=2 --check-prefix=DIS %s
153f46e545SAmy Kwan
163f46e545SAmy Kwan@mySmallLocalExecTLSv1 = thread_local(localexec) global [8187 x i32] zeroinitializer, align 4
173f46e545SAmy Kwan@mySmallLocalExecTLS2 = thread_local(localexec) global [4000 x i32] zeroinitializer, align 4
183f46e545SAmy Kwan@mySmallLocalExecTLS3 = thread_local(localexec) global [4000 x i32] zeroinitializer, align 4
193f46e545SAmy Kwan@mySmallLocalExecTLS4 = thread_local(localexec) global [4000 x i32] zeroinitializer, align 4
203f46e545SAmy Kwan@mySmallLocalExecTLS5 = thread_local(localexec) global [4000 x i32] zeroinitializer, align 4
213f46e545SAmy Kwan@mySmallLocalExecTLSv2 = thread_local(localexec) global [9000 x i32] zeroinitializer, align 4
223f46e545SAmy Kwandeclare nonnull ptr @llvm.threadlocal.address.p0(ptr nonnull) #1
233f46e545SAmy Kwan
243f46e545SAmy Kwan; All accesses use a "faster" local-exec sequence directly off the thread pointer.
253f46e545SAmy Kwandefine signext i32 @StoreArrays1() {
263f46e545SAmy Kwan; SMALL-LOCAL-EXEC-SMALLCM64-LABEL: StoreArrays1:
273f46e545SAmy Kwan; SMALL-LOCAL-EXEC-SMALLCM64:       # %bb.0: # %entry
282a509215SAmy Kwan; SMALL-LOCAL-EXEC-SMALLCM64-NEXT:    li r3, 1
292a509215SAmy Kwan; SMALL-LOCAL-EXEC-SMALLCM64-NEXT:    li r4, 4
302a509215SAmy Kwan; SMALL-LOCAL-EXEC-SMALLCM64-NEXT:    stw r3, mySmallLocalExecTLSv1[TL]@le(r13)
3169b056d5SQiu Chaofan; SMALL-LOCAL-EXEC-SMALLCM64-NEXT:    li r3, 2
322a509215SAmy Kwan; SMALL-LOCAL-EXEC-SMALLCM64-NEXT:    stw r4, mySmallLocalExecTLSv1[TL]@le+24(r13)
33*6bbccd25SMatthias Braun; SMALL-LOCAL-EXEC-SMALLCM64-NEXT:    stw r4, (mySmallLocalExecTLS4[TL]@le+328)-65536(r13)
342a509215SAmy Kwan; SMALL-LOCAL-EXEC-SMALLCM64-NEXT:    stw r3, (mySmallLocalExecTLS2[TL]@le+320)-65536(r13)
352a509215SAmy Kwan; SMALL-LOCAL-EXEC-SMALLCM64-NEXT:    li r3, 3
362a509215SAmy Kwan; SMALL-LOCAL-EXEC-SMALLCM64-NEXT:    stw r3, (mySmallLocalExecTLS3[TL]@le+324)-65536(r13)
372a509215SAmy Kwan; SMALL-LOCAL-EXEC-SMALLCM64-NEXT:    li r3, 88
382a509215SAmy Kwan; SMALL-LOCAL-EXEC-SMALLCM64-NEXT:    stw r3, (mySmallLocalExecTLS5[TL]@le+332)-65536(r13)
393f46e545SAmy Kwan; SMALL-LOCAL-EXEC-SMALLCM64-NEXT:    li r3, 102
403f46e545SAmy Kwan; SMALL-LOCAL-EXEC-SMALLCM64-NEXT:    blr
413f46e545SAmy Kwan;
423f46e545SAmy Kwan; SMALL-LOCAL-EXEC-LARGECM64-LABEL: StoreArrays1:
433f46e545SAmy Kwan; SMALL-LOCAL-EXEC-LARGECM64:       # %bb.0: # %entry
442a509215SAmy Kwan; SMALL-LOCAL-EXEC-LARGECM64-NEXT:    li r3, 1
452a509215SAmy Kwan; SMALL-LOCAL-EXEC-LARGECM64-NEXT:    li r4, 4
462a509215SAmy Kwan; SMALL-LOCAL-EXEC-LARGECM64-NEXT:    stw r3, mySmallLocalExecTLSv1[TL]@le(r13)
4769b056d5SQiu Chaofan; SMALL-LOCAL-EXEC-LARGECM64-NEXT:    li r3, 2
482a509215SAmy Kwan; SMALL-LOCAL-EXEC-LARGECM64-NEXT:    stw r4, mySmallLocalExecTLSv1[TL]@le+24(r13)
49*6bbccd25SMatthias Braun; SMALL-LOCAL-EXEC-LARGECM64-NEXT:    stw r4, (mySmallLocalExecTLS4[TL]@le+328)-65536(r13)
502a509215SAmy Kwan; SMALL-LOCAL-EXEC-LARGECM64-NEXT:    stw r3, (mySmallLocalExecTLS2[TL]@le+320)-65536(r13)
512a509215SAmy Kwan; SMALL-LOCAL-EXEC-LARGECM64-NEXT:    li r3, 3
522a509215SAmy Kwan; SMALL-LOCAL-EXEC-LARGECM64-NEXT:    stw r3, (mySmallLocalExecTLS3[TL]@le+324)-65536(r13)
532a509215SAmy Kwan; SMALL-LOCAL-EXEC-LARGECM64-NEXT:    li r3, 88
542a509215SAmy Kwan; SMALL-LOCAL-EXEC-LARGECM64-NEXT:    stw r3, (mySmallLocalExecTLS5[TL]@le+332)-65536(r13)
553f46e545SAmy Kwan; SMALL-LOCAL-EXEC-LARGECM64-NEXT:    li r3, 102
563f46e545SAmy Kwan; SMALL-LOCAL-EXEC-LARGECM64-NEXT:    blr
573f46e545SAmy Kwanentry:
583f46e545SAmy Kwan  %0 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @mySmallLocalExecTLSv1)
593f46e545SAmy Kwan  store i32 1, ptr %0, align 4
603f46e545SAmy Kwan  %arrayidx1 = getelementptr inbounds [8187 x i32], ptr %0, i64 0, i64 6
613f46e545SAmy Kwan  store i32 4, ptr %arrayidx1, align 4
623f46e545SAmy Kwan  %1 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @mySmallLocalExecTLS2)
633f46e545SAmy Kwan  %arrayidx2 = getelementptr inbounds [4000 x i32], ptr %1, i64 0, i64 80
643f46e545SAmy Kwan  store i32 2, ptr %arrayidx2, align 4
653f46e545SAmy Kwan  %2 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @mySmallLocalExecTLS3)
663f46e545SAmy Kwan  %arrayidx3 = getelementptr inbounds [4000 x i32], ptr %2, i64 0, i64 81
673f46e545SAmy Kwan  store i32 3, ptr %arrayidx3, align 4
683f46e545SAmy Kwan  %3 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @mySmallLocalExecTLS4)
693f46e545SAmy Kwan  %arrayidx4 = getelementptr inbounds [4000 x i32], ptr %3, i64 0, i64 82
703f46e545SAmy Kwan  store i32 4, ptr %arrayidx4, align 4
713f46e545SAmy Kwan  %4 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @mySmallLocalExecTLS5)
723f46e545SAmy Kwan  %arrayidx5 = getelementptr inbounds [4000 x i32], ptr %4, i64 0, i64 83
733f46e545SAmy Kwan  store i32 88, ptr %arrayidx5, align 4
743f46e545SAmy Kwan  %5 = load i32, ptr %0, align 4
753f46e545SAmy Kwan  %6 = load i32, ptr %arrayidx1, align 4
763f46e545SAmy Kwan  %7 = load i32, ptr %arrayidx2, align 4
773f46e545SAmy Kwan  %8 = load i32, ptr %arrayidx3, align 4
783f46e545SAmy Kwan  %9 = load i32, ptr %arrayidx4, align 4
793f46e545SAmy Kwan  %add = add i32 %5, 88
803f46e545SAmy Kwan  %add9 = add i32 %add, %6
813f46e545SAmy Kwan  %add11 = add i32 %add9, %7
823f46e545SAmy Kwan  %add13 = add i32 %add11, %8
833f46e545SAmy Kwan  %add15 = add i32 %add13, %9
843f46e545SAmy Kwan  ret i32 %add15
853f46e545SAmy Kwan}
863f46e545SAmy Kwan
873f46e545SAmy Kwan; Example of one access using the regular local-exec access from the TOC.
883f46e545SAmy Kwandefine signext i32 @StoreArrays2() {
893f46e545SAmy Kwan; SMALL-LOCAL-EXEC-SMALLCM64-LABEL: StoreArrays2:
903f46e545SAmy Kwan; SMALL-LOCAL-EXEC-SMALLCM64:       # %bb.0: # %entry
91*6bbccd25SMatthias Braun; SMALL-LOCAL-EXEC-SMALLCM64-NEXT:    li r4, 2
922a509215SAmy Kwan; SMALL-LOCAL-EXEC-SMALLCM64-NEXT:    li r3, 1
93*6bbccd25SMatthias Braun; SMALL-LOCAL-EXEC-SMALLCM64-NEXT:    stw r4, (mySmallLocalExecTLS2[TL]@le+320)-65536(r13)
94*6bbccd25SMatthias Braun; SMALL-LOCAL-EXEC-SMALLCM64-NEXT:    li r4, 3
95*6bbccd25SMatthias Braun; SMALL-LOCAL-EXEC-SMALLCM64-NEXT:    stw r4, (mySmallLocalExecTLS3[TL]@le+324)-65536(r13)
96*6bbccd25SMatthias Braun; SMALL-LOCAL-EXEC-SMALLCM64-NEXT:    ld r4, L..C0(r2) # target-flags(ppc-tprel) @mySmallLocalExecTLSv2
972a509215SAmy Kwan; SMALL-LOCAL-EXEC-SMALLCM64-NEXT:    add r4, r13, r4
982a509215SAmy Kwan; SMALL-LOCAL-EXEC-SMALLCM64-NEXT:    stw r3, 0(r4)
992a509215SAmy Kwan; SMALL-LOCAL-EXEC-SMALLCM64-NEXT:    li r3, 4
1002a509215SAmy Kwan; SMALL-LOCAL-EXEC-SMALLCM64-NEXT:    stw r3, 24(r4)
1012a509215SAmy Kwan; SMALL-LOCAL-EXEC-SMALLCM64-NEXT:    li r4, 88
1022a509215SAmy Kwan; SMALL-LOCAL-EXEC-SMALLCM64-NEXT:    stw r3, (mySmallLocalExecTLS4[TL]@le+328)-65536(r13)
1033f46e545SAmy Kwan; SMALL-LOCAL-EXEC-SMALLCM64-NEXT:    li r3, 102
1042a509215SAmy Kwan; SMALL-LOCAL-EXEC-SMALLCM64-NEXT:    stw r4, (mySmallLocalExecTLS5[TL]@le+332)-65536(r13)
1053f46e545SAmy Kwan; SMALL-LOCAL-EXEC-SMALLCM64-NEXT:    blr
1063f46e545SAmy Kwan;
1073f46e545SAmy Kwan; SMALL-LOCAL-EXEC-LARGECM64-LABEL: StoreArrays2:
1083f46e545SAmy Kwan; SMALL-LOCAL-EXEC-LARGECM64:       # %bb.0: # %entry
109*6bbccd25SMatthias Braun; SMALL-LOCAL-EXEC-LARGECM64-NEXT:    li r3, 2
110*6bbccd25SMatthias Braun; SMALL-LOCAL-EXEC-LARGECM64-NEXT:    li r4, 3
111*6bbccd25SMatthias Braun; SMALL-LOCAL-EXEC-LARGECM64-NEXT:    stw r3, (mySmallLocalExecTLS2[TL]@le+320)-65536(r13)
1122a509215SAmy Kwan; SMALL-LOCAL-EXEC-LARGECM64-NEXT:    addis r3, L..C0@u(r2)
1132a509215SAmy Kwan; SMALL-LOCAL-EXEC-LARGECM64-NEXT:    ld r3, L..C0@l(r3)
114*6bbccd25SMatthias Braun; SMALL-LOCAL-EXEC-LARGECM64-NEXT:    stw r4, (mySmallLocalExecTLS3[TL]@le+324)-65536(r13)
115*6bbccd25SMatthias Braun; SMALL-LOCAL-EXEC-LARGECM64-NEXT:    li r4, 1
1162a509215SAmy Kwan; SMALL-LOCAL-EXEC-LARGECM64-NEXT:    add r3, r13, r3
1172a509215SAmy Kwan; SMALL-LOCAL-EXEC-LARGECM64-NEXT:    stw r4, 0(r3)
1182a509215SAmy Kwan; SMALL-LOCAL-EXEC-LARGECM64-NEXT:    li r4, 4
1192a509215SAmy Kwan; SMALL-LOCAL-EXEC-LARGECM64-NEXT:    stw r4, 24(r3)
12069b056d5SQiu Chaofan; SMALL-LOCAL-EXEC-LARGECM64-NEXT:    li r3, 88
1212a509215SAmy Kwan; SMALL-LOCAL-EXEC-LARGECM64-NEXT:    stw r4, (mySmallLocalExecTLS4[TL]@le+328)-65536(r13)
1222a509215SAmy Kwan; SMALL-LOCAL-EXEC-LARGECM64-NEXT:    stw r3, (mySmallLocalExecTLS5[TL]@le+332)-65536(r13)
1233f46e545SAmy Kwan; SMALL-LOCAL-EXEC-LARGECM64-NEXT:    li r3, 102
1243f46e545SAmy Kwan; SMALL-LOCAL-EXEC-LARGECM64-NEXT:    blr
1253f46e545SAmy Kwanentry:
1263f46e545SAmy Kwan  %0 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @mySmallLocalExecTLSv2)
1273f46e545SAmy Kwan  store i32 1, ptr %0, align 4
1283f46e545SAmy Kwan  %arrayidx1 = getelementptr inbounds [9000 x i32], ptr %0, i64 0, i64 6
1293f46e545SAmy Kwan  store i32 4, ptr %arrayidx1, align 4
1303f46e545SAmy Kwan  %1 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @mySmallLocalExecTLS2)
1313f46e545SAmy Kwan  %arrayidx2 = getelementptr inbounds [4000 x i32], ptr %1, i64 0, i64 80
1323f46e545SAmy Kwan  store i32 2, ptr %arrayidx2, align 4
1333f46e545SAmy Kwan  %2 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @mySmallLocalExecTLS3)
1343f46e545SAmy Kwan  %arrayidx3 = getelementptr inbounds [4000 x i32], ptr %2, i64 0, i64 81
1353f46e545SAmy Kwan  store i32 3, ptr %arrayidx3, align 4
1363f46e545SAmy Kwan  %3 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @mySmallLocalExecTLS4)
1373f46e545SAmy Kwan  %arrayidx4 = getelementptr inbounds [4000 x i32], ptr %3, i64 0, i64 82
1383f46e545SAmy Kwan  store i32 4, ptr %arrayidx4, align 4
1393f46e545SAmy Kwan  %4 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @mySmallLocalExecTLS5)
1403f46e545SAmy Kwan  %arrayidx5 = getelementptr inbounds [4000 x i32], ptr %4, i64 0, i64 83
1413f46e545SAmy Kwan  store i32 88, ptr %arrayidx5, align 4
1423f46e545SAmy Kwan  %5 = load i32, ptr %0, align 4
1433f46e545SAmy Kwan  %6 = load i32, ptr %arrayidx1, align 4
1443f46e545SAmy Kwan  %7 = load i32, ptr %arrayidx2, align 4
1453f46e545SAmy Kwan  %8 = load i32, ptr %arrayidx3, align 4
1463f46e545SAmy Kwan  %9 = load i32, ptr %arrayidx4, align 4
1473f46e545SAmy Kwan  %add = add i32 %5, 88
1483f46e545SAmy Kwan  %add9 = add i32 %add, %6
1493f46e545SAmy Kwan  %add11 = add i32 %add9, %7
1503f46e545SAmy Kwan  %add13 = add i32 %add11, %8
1513f46e545SAmy Kwan  %add15 = add i32 %add13, %9
1523f46e545SAmy Kwan  ret i32 %add15
1533f46e545SAmy Kwan}
1543f46e545SAmy Kwan
155b1acb7a3Sstephenpeckham; DIS:      file format aix5coff64-rs6000
1563f46e545SAmy Kwan; DIS:      Disassembly of section .text:
157b1acb7a3Sstephenpeckham; DIS:      0000000000000000 (idx: [[#NFA+3]]) .StoreArrays1:
1582a509215SAmy Kwan; DIS-NEXT: [[#%x, ADDR:]]: {{.*}}                li 3, 1
1592a509215SAmy Kwan; DIS-NEXT: [[#%x, ADDR:]]: {{.*}}                li 4, 4
1602a509215SAmy Kwan; DIS-NEXT: [[#%x, ADDR:]]: {{.*}}                stw 3, 0(13)
161b1acb7a3Sstephenpeckham; DIS-NEXT: {{0*}}[[#ADDR + 2]]: R_TLS_LE	(idx: [[#NFA+15]]) mySmallLocalExecTLSv1[TL]
16269b056d5SQiu Chaofan; DIS-NEXT: [[#%x, ADDR:]]: {{.*}}                li 3, 2
1632a509215SAmy Kwan; DIS-NEXT: [[#%x, ADDR:]]: {{.*}}                stw 4, 24(13)
164b1acb7a3Sstephenpeckham; DIS-NEXT: {{0*}}[[#ADDR + 2]]: R_TLS_LE	(idx: [[#NFA+15]]) mySmallLocalExecTLSv1[TL]
165*6bbccd25SMatthias Braun; DIS-NEXT: [[#%x, ADDR:]]: {{.*}}                stw 4, -460(13)
166*6bbccd25SMatthias Braun; DIS-NEXT: {{0*}}[[#ADDR + 2]]: R_TLS_LE	(idx: [[#NFA+21]]) mySmallLocalExecTLS4[TL]
1672a509215SAmy Kwan; DIS-NEXT: [[#%x, ADDR:]]: {{.*}}                stw 3, -32468(13)
168b1acb7a3Sstephenpeckham; DIS-NEXT: {{0*}}[[#ADDR + 2]]: R_TLS_LE	(idx: [[#NFA+17]]) mySmallLocalExecTLS2[TL]
1692a509215SAmy Kwan; DIS-NEXT: [[#%x, ADDR:]]: {{.*}}                li 3, 3
1702a509215SAmy Kwan; DIS-NEXT: [[#%x, ADDR:]]: {{.*}}                stw 3, -16464(13)
171b1acb7a3Sstephenpeckham; DIS-NEXT: {{0*}}[[#ADDR + 2]]: R_TLS_LE	(idx: [[#NFA+19]]) mySmallLocalExecTLS3[TL]
1722a509215SAmy Kwan; DIS-NEXT: [[#%x, ADDR:]]: {{.*}}                li 3, 88
1732a509215SAmy Kwan; DIS-NEXT: [[#%x, ADDR:]]: {{.*}}                stw 3, 15544(13)
174b1acb7a3Sstephenpeckham; DIS-NEXT: {{0*}}[[#ADDR + 2]]: R_TLS_LE	(idx: [[#NFA+23]]) mySmallLocalExecTLS5[TL]
1753f46e545SAmy Kwan; DIS-NEXT: [[#%x, ADDR:]]: {{.*}}                li 3, 102
1763f46e545SAmy Kwan; DIS-NEXT: [[#%x, ADDR:]]: {{.*}}                blr
1773f46e545SAmy Kwan
178b1acb7a3Sstephenpeckham; DIS:      0000000000000040 (idx: [[#NFA+5]]) .StoreArrays2:
179*6bbccd25SMatthias Braun; DIS-NEXT: [[#%x, ADDR:]]: {{.*}}                li 3, 2
180*6bbccd25SMatthias Braun; DIS-NEXT: [[#%x, ADDR:]]: {{.*}}                li 4, 3
181*6bbccd25SMatthias Braun; DIS-NEXT: [[#%x, ADDR:]]: {{.*}}                stw 3, -32468(13)
182*6bbccd25SMatthias Braun; DIS-NEXT: {{0*}}[[#ADDR + 2]]: R_TLS_LE	(idx: [[#NFA+17]]) mySmallLocalExecTLS2[TL]
1832a509215SAmy Kwan; DIS-NEXT: [[#%x, ADDR:]]: {{.*}}                addis 3, 2, 0
184b1acb7a3Sstephenpeckham; DIS-NEXT: {{0*}}[[#ADDR + 2]]: R_TOCU	(idx: [[#NFA+13]]) mySmallLocalExecTLSv2[TE]
1852a509215SAmy Kwan; DIS-NEXT: [[#%x, ADDR:]]: {{.*}}                ld 3, 0(3)
186b1acb7a3Sstephenpeckham; DIS-NEXT: {{0*}}[[#ADDR + 2]]: R_TOCL	(idx: [[#NFA+13]]) mySmallLocalExecTLSv2[TE]
187*6bbccd25SMatthias Braun; DIS-NEXT: [[#%x, ADDR:]]: {{.*}}                stw 4, -16464(13)
188*6bbccd25SMatthias Braun; DIS-NEXT: {{0*}}[[#ADDR + 2]]: R_TLS_LE	(idx: [[#NFA+19]]) mySmallLocalExecTLS3[TL]
189*6bbccd25SMatthias Braun; DIS-NEXT: [[#%x, ADDR:]]: {{.*}}                li 4, 1
1902a509215SAmy Kwan; DIS-NEXT: [[#%x, ADDR:]]: {{.*}}                add 3, 13, 3
1912a509215SAmy Kwan; DIS-NEXT: [[#%x, ADDR:]]: {{.*}}                stw 4, 0(3)
1922a509215SAmy Kwan; DIS-NEXT: [[#%x, ADDR:]]: {{.*}}                li 4, 4
1932a509215SAmy Kwan; DIS-NEXT: [[#%x, ADDR:]]: {{.*}}                stw 4, 24(3)
19469b056d5SQiu Chaofan; DIS-NEXT: [[#%x, ADDR:]]: {{.*}}                li 3, 88
1952a509215SAmy Kwan; DIS-NEXT: [[#%x, ADDR:]]: {{.*}}                stw 4, -460(13)
196b1acb7a3Sstephenpeckham; DIS-NEXT: {{0*}}[[#ADDR + 2]]: R_TLS_LE	(idx: [[#NFA+21]]) mySmallLocalExecTLS4[TL]
1972a509215SAmy Kwan; DIS-NEXT: [[#%x, ADDR:]]: {{.*}}                stw 3, 15544(13)
198b1acb7a3Sstephenpeckham; DIS-NEXT: {{0*}}[[#ADDR + 2]]: R_TLS_LE	(idx: [[#NFA+23]]) mySmallLocalExecTLS5[TL]
1993f46e545SAmy Kwan; DIS-NEXT: [[#%x, ADDR:]]: {{.*}}                li 3, 102
2003f46e545SAmy Kwan; DIS-NEXT: [[#%x, ADDR:]]: {{.*}}                blr
2013f46e545SAmy Kwan
2023f46e545SAmy Kwan; DIS:      Disassembly of section .data:
203b1acb7a3Sstephenpeckham; DIS:      0000000000000080 (idx: [[#NFA+7]]) StoreArrays1[DS]:
2042a509215SAmy Kwan; DIS-NEXT:       80: 00 00 00 00
205b1acb7a3Sstephenpeckham; DIS-NEXT: 0000000000000080:  R_POS	(idx: [[#NFA+3]]) .StoreArrays1
2062a509215SAmy Kwan; DIS-NEXT:       84: 00 00 00 00
2072a509215SAmy Kwan; DIS-NEXT:       88: 00 00 00 00
208b1acb7a3Sstephenpeckham; DIS-NEXT: 0000000000000088:  R_POS        (idx: [[#NFA+11]]) TOC[TC0]
2092a509215SAmy Kwan; DIS-NEXT:       8c: 00 00 00 b0
2102a509215SAmy Kwan
211b1acb7a3Sstephenpeckham; DIS:      0000000000000098 (idx: [[#NFA+9]]) StoreArrays2[DS]:
2122a509215SAmy Kwan; DIS-NEXT:       98: 00 00 00 00
213b1acb7a3Sstephenpeckham; DIS-NEXT: 0000000000000098:  R_POS	(idx: [[#NFA+5]]) .StoreArrays2
2142a509215SAmy Kwan; DIS-NEXT:       9c: 00 00 00 40
2153f46e545SAmy Kwan; DIS-NEXT:       a0: 00 00 00 00
216b1acb7a3Sstephenpeckham; DIS-NEXT: 00000000000000a0:  R_POS        (idx: [[#NFA+11]]) TOC[TC0]
2172a509215SAmy Kwan; DIS-NEXT:       a4: 00 00 00 b0
2183f46e545SAmy Kwan
219b1acb7a3Sstephenpeckham; DIS:      00000000000000b0 (idx: [[#NFA+13]]) mySmallLocalExecTLSv2[TE]:
2202a509215SAmy Kwan; DIS-NEXT:       b0: 00 00 00 00
221b1acb7a3Sstephenpeckham; DIS-NEXT: 00000000000000b0:  R_TLS_LE     (idx: [[#NFA+25]]) mySmallLocalExecTLSv2[TL]
2222a509215SAmy Kwan; DIS-NEXT:       b4: 00 01 79 ec
2233f46e545SAmy Kwan
2242a509215SAmy Kwan; DIS:      Disassembly of section .tdata:
225b1acb7a3Sstephenpeckham; DIS:      0000000000000000 (idx: [[#NFA+15]]) mySmallLocalExecTLSv1[TL]:
226b1acb7a3Sstephenpeckham; DIS:      0000000000007fec (idx: [[#NFA+17]]) mySmallLocalExecTLS2[TL]:
227b1acb7a3Sstephenpeckham; DIS:      000000000000be6c (idx: [[#NFA+19]]) mySmallLocalExecTLS3[TL]:
228b1acb7a3Sstephenpeckham; DIS:      000000000000fcec (idx: [[#NFA+21]]) mySmallLocalExecTLS4[TL]:
229b1acb7a3Sstephenpeckham; DIS:      0000000000013b6c (idx: [[#NFA+23]]) mySmallLocalExecTLS5[TL]:
230b1acb7a3Sstephenpeckham; DIS:      00000000000179ec (idx: [[#NFA+25]]) mySmallLocalExecTLSv2[TL]:
231