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