565 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 32; RUN: llc -verify-machineinstrs -mcpu=pwr7 -ppc-asm-full-reg-names \3; RUN: -mattr=+aix-small-local-dynamic-tls -mtriple powerpc64-ibm-aix-xcoff < %s \4; RUN: | FileCheck %s --check-prefix=SMALL-LOCAL-DYNAMIC-SMALLCM645; RUN: llc -verify-machineinstrs -mcpu=pwr7 -ppc-asm-full-reg-names \6; RUN: -mattr=+aix-small-local-dynamic-tls -mtriple powerpc64-ibm-aix-xcoff --code-model=large \7; RUN: < %s | FileCheck %s \8; RUN: --check-prefix=SMALL-LOCAL-DYNAMIC-LARGECM649 10; Test disassembly of object.11; RUN: llc -verify-machineinstrs -mcpu=pwr7 \12; RUN: -mtriple powerpc64-ibm-aix-xcoff -xcoff-traceback-table=false \13; RUN: --code-model=large -filetype=obj -o %t.o < %s14; RUN: llvm-objdump -D -r --symbol-description %t.o | FileCheck -D#NFA=2 --check-prefix=DIS %s15 16@ElementIntTLSv1 = thread_local(localdynamic) global [8187 x i32] zeroinitializer, align 4 ; Within 32K17@ElementIntTLS2 = thread_local(localdynamic) global [4000 x i32] zeroinitializer, align 418@ElementIntTLS3 = thread_local(localdynamic) global [4000 x i32] zeroinitializer, align 419@ElementIntTLS4 = thread_local(localdynamic) global [4000 x i32] zeroinitializer, align 420@ElementIntTLS5 = thread_local(localdynamic) global [4000 x i32] zeroinitializer, align 421@ElementIntTLSv2 = thread_local(localdynamic) global [9000 x i32] zeroinitializer, align 4 ; Beyond 32K22 23@ElementLongTLS6 = external thread_local(localdynamic) global [60 x i64], align 824@ElementLongTLS2 = thread_local(localdynamic) global [3000 x i64] zeroinitializer, align 8 ; Within 32K25@MyTLSGDVar = thread_local global [800 x i64] zeroinitializer, align 826@ElementLongTLS3 = thread_local(localdynamic) global [3000 x i64] zeroinitializer, align 827@ElementLongTLS4 = thread_local(localdynamic) global [3000 x i64] zeroinitializer, align 828@ElementLongTLS5 = thread_local(localdynamic) global [3000 x i64] zeroinitializer, align 829@ElementLongTLS = thread_local(localdynamic) local_unnamed_addr global [7800 x i64] zeroinitializer, align 8 ; Beyond 32K30 31declare nonnull ptr @llvm.threadlocal.address.p0(ptr nonnull) #132 33; All accesses use a "faster" local-dynamic sequence directly off the module handle.34; Exercise PPCXCOFFObjectWriter::getRelocTypeAndSignSize/fixup_ppc_half16.35define signext i32 @test1() {36; SMALL-LOCAL-DYNAMIC-SMALLCM64-LABEL: test1:37; SMALL-LOCAL-DYNAMIC-SMALLCM64: # %bb.0: # %entry38; SMALL-LOCAL-DYNAMIC-SMALLCM64-NEXT: mflr r039; SMALL-LOCAL-DYNAMIC-SMALLCM64-NEXT: stdu r1, -48(r1)40; SMALL-LOCAL-DYNAMIC-SMALLCM64-NEXT: ld r3, L..C0(r2) # target-flags(ppc-tlsldm) @"_$TLSML"41; SMALL-LOCAL-DYNAMIC-SMALLCM64-NEXT: std r0, 64(r1)42; SMALL-LOCAL-DYNAMIC-SMALLCM64-NEXT: bla .__tls_get_mod[PR]43; SMALL-LOCAL-DYNAMIC-SMALLCM64-NEXT: li r4, 144; SMALL-LOCAL-DYNAMIC-SMALLCM64-NEXT: li r5, 445; SMALL-LOCAL-DYNAMIC-SMALLCM64-NEXT: stw r4, ElementIntTLSv1[TL]@ld(r3)46; SMALL-LOCAL-DYNAMIC-SMALLCM64-NEXT: li r4, 247; SMALL-LOCAL-DYNAMIC-SMALLCM64-NEXT: stw r5, ElementIntTLSv1[TL]@ld+24(r3)48; SMALL-LOCAL-DYNAMIC-SMALLCM64-NEXT: stw r5, ElementIntTLS4[TL]@ld+328-65536(r3)49; SMALL-LOCAL-DYNAMIC-SMALLCM64-NEXT: stw r4, ElementIntTLS2[TL]@ld+320-65536(r3)50; SMALL-LOCAL-DYNAMIC-SMALLCM64-NEXT: li r4, 351; SMALL-LOCAL-DYNAMIC-SMALLCM64-NEXT: stw r4, ElementIntTLS3[TL]@ld+324-65536(r3)52; SMALL-LOCAL-DYNAMIC-SMALLCM64-NEXT: li r4, 8853; SMALL-LOCAL-DYNAMIC-SMALLCM64-NEXT: stw r4, ElementIntTLS5[TL]@ld+332-65536(r3)54; SMALL-LOCAL-DYNAMIC-SMALLCM64-NEXT: li r3, 10255; SMALL-LOCAL-DYNAMIC-SMALLCM64-NEXT: addi r1, r1, 4856; SMALL-LOCAL-DYNAMIC-SMALLCM64-NEXT: ld r0, 16(r1)57; SMALL-LOCAL-DYNAMIC-SMALLCM64-NEXT: mtlr r058; SMALL-LOCAL-DYNAMIC-SMALLCM64-NEXT: blr59;60; SMALL-LOCAL-DYNAMIC-LARGECM64-LABEL: test1:61; SMALL-LOCAL-DYNAMIC-LARGECM64: # %bb.0: # %entry62; SMALL-LOCAL-DYNAMIC-LARGECM64-NEXT: mflr r063; SMALL-LOCAL-DYNAMIC-LARGECM64-NEXT: stdu r1, -48(r1)64; SMALL-LOCAL-DYNAMIC-LARGECM64-NEXT: addis r3, L..C0@u(r2)65; SMALL-LOCAL-DYNAMIC-LARGECM64-NEXT: std r0, 64(r1)66; SMALL-LOCAL-DYNAMIC-LARGECM64-NEXT: ld r3, L..C0@l(r3)67; SMALL-LOCAL-DYNAMIC-LARGECM64-NEXT: bla .__tls_get_mod[PR]68; SMALL-LOCAL-DYNAMIC-LARGECM64-NEXT: li r4, 169; SMALL-LOCAL-DYNAMIC-LARGECM64-NEXT: li r5, 470; SMALL-LOCAL-DYNAMIC-LARGECM64-NEXT: stw r4, ElementIntTLSv1[TL]@ld(r3)71; SMALL-LOCAL-DYNAMIC-LARGECM64-NEXT: li r4, 272; SMALL-LOCAL-DYNAMIC-LARGECM64-NEXT: stw r5, ElementIntTLSv1[TL]@ld+24(r3)73; SMALL-LOCAL-DYNAMIC-LARGECM64-NEXT: stw r5, ElementIntTLS4[TL]@ld+328-65536(r3)74; SMALL-LOCAL-DYNAMIC-LARGECM64-NEXT: stw r4, ElementIntTLS2[TL]@ld+320-65536(r3)75; SMALL-LOCAL-DYNAMIC-LARGECM64-NEXT: li r4, 376; SMALL-LOCAL-DYNAMIC-LARGECM64-NEXT: stw r4, ElementIntTLS3[TL]@ld+324-65536(r3)77; SMALL-LOCAL-DYNAMIC-LARGECM64-NEXT: li r4, 8878; SMALL-LOCAL-DYNAMIC-LARGECM64-NEXT: stw r4, ElementIntTLS5[TL]@ld+332-65536(r3)79; SMALL-LOCAL-DYNAMIC-LARGECM64-NEXT: li r3, 10280; SMALL-LOCAL-DYNAMIC-LARGECM64-NEXT: addi r1, r1, 4881; SMALL-LOCAL-DYNAMIC-LARGECM64-NEXT: ld r0, 16(r1)82; SMALL-LOCAL-DYNAMIC-LARGECM64-NEXT: mtlr r083; SMALL-LOCAL-DYNAMIC-LARGECM64-NEXT: blr84entry:85 %tls1 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @ElementIntTLSv1)86 store i32 1, ptr %tls1, align 487 %arrayidx1 = getelementptr inbounds [8187 x i32], ptr %tls1, i64 0, i64 688 store i32 4, ptr %arrayidx1, align 489 %tls2 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @ElementIntTLS2)90 %arrayidx2 = getelementptr inbounds [4000 x i32], ptr %tls2, i64 0, i64 8091 store i32 2, ptr %arrayidx2, align 492 %tls3 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @ElementIntTLS3)93 %arrayidx3 = getelementptr inbounds [4000 x i32], ptr %tls3, i64 0, i64 8194 store i32 3, ptr %arrayidx3, align 495 %tls4 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @ElementIntTLS4)96 %arrayidx4 = getelementptr inbounds [4000 x i32], ptr %tls4, i64 0, i64 8297 store i32 4, ptr %arrayidx4, align 498 %tls5 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @ElementIntTLS5)99 %arrayidx5 = getelementptr inbounds [4000 x i32], ptr %tls5, i64 0, i64 83100 store i32 88, ptr %arrayidx5, align 4101 %load1 = load i32, ptr %tls1, align 4102 %load2 = load i32, ptr %arrayidx1, align 4103 %load3 = load i32, ptr %arrayidx2, align 4104 %load4 = load i32, ptr %arrayidx3, align 4105 %load5 = load i32, ptr %arrayidx4, align 4106 %add = add i32 %load1, 88107 %add6 = add i32 %add, %load2108 %add8 = add i32 %add6, %load3109 %add10 = add i32 %add8, %load4110 %add12 = add i32 %add10, %load5111 ret i32 %add12112}113 114; All accesses use a "faster" local-dynamic sequence directly off the module handle.115; Exercise PPCXCOFFObjectWriter::getRelocTypeAndSignSize/fixup_ppc_half16ds.116define i64 @test2() {117; SMALL-LOCAL-DYNAMIC-SMALLCM64-LABEL: test2:118; SMALL-LOCAL-DYNAMIC-SMALLCM64: # %bb.0: # %entry119; SMALL-LOCAL-DYNAMIC-SMALLCM64-NEXT: mflr r0120; SMALL-LOCAL-DYNAMIC-SMALLCM64-NEXT: stdu r1, -48(r1)121; SMALL-LOCAL-DYNAMIC-SMALLCM64-NEXT: ld r3, L..C0(r2) # target-flags(ppc-tlsldm) @"_$TLSML"122; SMALL-LOCAL-DYNAMIC-SMALLCM64-NEXT: std r0, 64(r1)123; SMALL-LOCAL-DYNAMIC-SMALLCM64-NEXT: bla .__tls_get_mod[PR]124; SMALL-LOCAL-DYNAMIC-SMALLCM64-NEXT: mr r6, r3125; SMALL-LOCAL-DYNAMIC-SMALLCM64-NEXT: li r3, 212126; SMALL-LOCAL-DYNAMIC-SMALLCM64-NEXT: li r4, 203127; SMALL-LOCAL-DYNAMIC-SMALLCM64-NEXT: std r4, ElementLongTLS2[TL]@ld+1200-131072(r6)128; SMALL-LOCAL-DYNAMIC-SMALLCM64-NEXT: ld r4, L..C1(r2) # target-flags(ppc-tlsgd) @MyTLSGDVar129; SMALL-LOCAL-DYNAMIC-SMALLCM64-NEXT: std r3, ElementLongTLS6[UL]@ld+424(r6)130; SMALL-LOCAL-DYNAMIC-SMALLCM64-NEXT: ld r3, L..C2(r2) # target-flags(ppc-tlsgdm) @MyTLSGDVar131; SMALL-LOCAL-DYNAMIC-SMALLCM64-NEXT: bla .__tls_get_addr[PR]132; SMALL-LOCAL-DYNAMIC-SMALLCM64-NEXT: li r4, 44133; SMALL-LOCAL-DYNAMIC-SMALLCM64-NEXT: std r4, 440(r3)134; SMALL-LOCAL-DYNAMIC-SMALLCM64-NEXT: li r3, 6135; SMALL-LOCAL-DYNAMIC-SMALLCM64-NEXT: li r4, 100136; SMALL-LOCAL-DYNAMIC-SMALLCM64-NEXT: std r3, ElementLongTLS3[TL]@ld+2000-196608(r6)137; SMALL-LOCAL-DYNAMIC-SMALLCM64-NEXT: li r3, 882138; SMALL-LOCAL-DYNAMIC-SMALLCM64-NEXT: std r4, ElementLongTLS4[TL]@ld+6800-196608(r6)139; SMALL-LOCAL-DYNAMIC-SMALLCM64-NEXT: std r3, ElementLongTLS5[TL]@ld+8400-196608(r6)140; SMALL-LOCAL-DYNAMIC-SMALLCM64-NEXT: li r3, 1191141; SMALL-LOCAL-DYNAMIC-SMALLCM64-NEXT: addi r1, r1, 48142; SMALL-LOCAL-DYNAMIC-SMALLCM64-NEXT: ld r0, 16(r1)143; SMALL-LOCAL-DYNAMIC-SMALLCM64-NEXT: mtlr r0144; SMALL-LOCAL-DYNAMIC-SMALLCM64-NEXT: blr145;146; SMALL-LOCAL-DYNAMIC-LARGECM64-LABEL: test2:147; SMALL-LOCAL-DYNAMIC-LARGECM64: # %bb.0: # %entry148; SMALL-LOCAL-DYNAMIC-LARGECM64-NEXT: mflr r0149; SMALL-LOCAL-DYNAMIC-LARGECM64-NEXT: stdu r1, -48(r1)150; SMALL-LOCAL-DYNAMIC-LARGECM64-NEXT: addis r3, L..C0@u(r2)151; SMALL-LOCAL-DYNAMIC-LARGECM64-NEXT: std r0, 64(r1)152; SMALL-LOCAL-DYNAMIC-LARGECM64-NEXT: ld r3, L..C0@l(r3)153; SMALL-LOCAL-DYNAMIC-LARGECM64-NEXT: bla .__tls_get_mod[PR]154; SMALL-LOCAL-DYNAMIC-LARGECM64-NEXT: addis r4, L..C1@u(r2)155; SMALL-LOCAL-DYNAMIC-LARGECM64-NEXT: mr r6, r3156; SMALL-LOCAL-DYNAMIC-LARGECM64-NEXT: li r3, 212157; SMALL-LOCAL-DYNAMIC-LARGECM64-NEXT: ld r4, L..C1@l(r4)158; SMALL-LOCAL-DYNAMIC-LARGECM64-NEXT: std r3, ElementLongTLS6[UL]@ld+424(r6)159; SMALL-LOCAL-DYNAMIC-LARGECM64-NEXT: li r3, 203160; SMALL-LOCAL-DYNAMIC-LARGECM64-NEXT: std r3, ElementLongTLS2[TL]@ld+1200-131072(r6)161; SMALL-LOCAL-DYNAMIC-LARGECM64-NEXT: addis r3, L..C2@u(r2)162; SMALL-LOCAL-DYNAMIC-LARGECM64-NEXT: ld r3, L..C2@l(r3)163; SMALL-LOCAL-DYNAMIC-LARGECM64-NEXT: bla .__tls_get_addr[PR]164; SMALL-LOCAL-DYNAMIC-LARGECM64-NEXT: li r4, 44165; SMALL-LOCAL-DYNAMIC-LARGECM64-NEXT: std r4, 440(r3)166; SMALL-LOCAL-DYNAMIC-LARGECM64-NEXT: li r3, 6167; SMALL-LOCAL-DYNAMIC-LARGECM64-NEXT: li r4, 100168; SMALL-LOCAL-DYNAMIC-LARGECM64-NEXT: std r3, ElementLongTLS3[TL]@ld+2000-196608(r6)169; SMALL-LOCAL-DYNAMIC-LARGECM64-NEXT: li r3, 882170; SMALL-LOCAL-DYNAMIC-LARGECM64-NEXT: std r4, ElementLongTLS4[TL]@ld+6800-196608(r6)171; SMALL-LOCAL-DYNAMIC-LARGECM64-NEXT: std r3, ElementLongTLS5[TL]@ld+8400-196608(r6)172; SMALL-LOCAL-DYNAMIC-LARGECM64-NEXT: li r3, 1191173; SMALL-LOCAL-DYNAMIC-LARGECM64-NEXT: addi r1, r1, 48174; SMALL-LOCAL-DYNAMIC-LARGECM64-NEXT: ld r0, 16(r1)175; SMALL-LOCAL-DYNAMIC-LARGECM64-NEXT: mtlr r0176; SMALL-LOCAL-DYNAMIC-LARGECM64-NEXT: blr177entry:178 %tls1 = tail call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @ElementLongTLS6)179 %arrayidx = getelementptr inbounds [60 x i64], ptr %tls1, i64 0, i64 53180 store i64 212, ptr %arrayidx, align 8181 %tls2 = tail call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @ElementLongTLS2)182 %arrayidx1 = getelementptr inbounds [3000 x i64], ptr %tls2, i64 0, i64 150183 store i64 203, ptr %arrayidx1, align 8184 %tls3 = tail call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @MyTLSGDVar)185 %arrayidx2 = getelementptr inbounds [800 x i64], ptr %tls3, i64 0, i64 55186 store i64 44, ptr %arrayidx2, align 8187 %tls4 = tail call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @ElementLongTLS3)188 %arrayidx3 = getelementptr inbounds [3000 x i64], ptr %tls4, i64 0, i64 250189 store i64 6, ptr %arrayidx3, align 8190 %tls5 = tail call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @ElementLongTLS4)191 %arrayidx4 = getelementptr inbounds [3000 x i64], ptr %tls5, i64 0, i64 850192 store i64 100, ptr %arrayidx4, align 8193 %tls6 = tail call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @ElementLongTLS5)194 %arrayidx5 = getelementptr inbounds [3000 x i64], ptr %tls6, i64 0, i64 1050195 store i64 882, ptr %arrayidx5, align 8196 %load1 = load i64, ptr %arrayidx1, align 8197 %load2 = load i64, ptr %arrayidx3, align 8198 %load3 = load i64, ptr %arrayidx4, align 8199 %add = add i64 %load1, 882200 %add9 = add i64 %add, %load2201 %add11 = add i64 %add9, %load3202 ret i64 %add11203}204 205; Example of one access using the regular local-dynamic access from the TOC.206define signext i32 @test3() {207; SMALL-LOCAL-DYNAMIC-SMALLCM64-LABEL: test3:208; SMALL-LOCAL-DYNAMIC-SMALLCM64: # %bb.0: # %entry209; SMALL-LOCAL-DYNAMIC-SMALLCM64-NEXT: mflr r0210; SMALL-LOCAL-DYNAMIC-SMALLCM64-NEXT: stdu r1, -48(r1)211; SMALL-LOCAL-DYNAMIC-SMALLCM64-NEXT: ld r3, L..C0(r2) # target-flags(ppc-tlsldm) @"_$TLSML"212; SMALL-LOCAL-DYNAMIC-SMALLCM64-NEXT: std r0, 64(r1)213; SMALL-LOCAL-DYNAMIC-SMALLCM64-NEXT: li r6, 3214; SMALL-LOCAL-DYNAMIC-SMALLCM64-NEXT: bla .__tls_get_mod[PR]215; SMALL-LOCAL-DYNAMIC-SMALLCM64-NEXT: li r5, 2216; SMALL-LOCAL-DYNAMIC-SMALLCM64-NEXT: li r4, 1217; SMALL-LOCAL-DYNAMIC-SMALLCM64-NEXT: stw r6, ElementIntTLS3[TL]@ld+324-65536(r3)218; SMALL-LOCAL-DYNAMIC-SMALLCM64-NEXT: ld r6, L..C3(r2) # target-flags(ppc-tlsld) @ElementIntTLSv2219; SMALL-LOCAL-DYNAMIC-SMALLCM64-NEXT: stw r5, ElementIntTLS2[TL]@ld+320-65536(r3)220; SMALL-LOCAL-DYNAMIC-SMALLCM64-NEXT: li r5, 88221; SMALL-LOCAL-DYNAMIC-SMALLCM64-NEXT: stw r5, ElementIntTLS5[TL]@ld+332-65536(r3)222; SMALL-LOCAL-DYNAMIC-SMALLCM64-NEXT: li r5, 4223; SMALL-LOCAL-DYNAMIC-SMALLCM64-NEXT: stw r5, ElementIntTLS4[TL]@ld+328-65536(r3)224; SMALL-LOCAL-DYNAMIC-SMALLCM64-NEXT: stwux r4, r3, r6225; SMALL-LOCAL-DYNAMIC-SMALLCM64-NEXT: stw r5, 24(r3)226; SMALL-LOCAL-DYNAMIC-SMALLCM64-NEXT: li r3, 102227; SMALL-LOCAL-DYNAMIC-SMALLCM64-NEXT: addi r1, r1, 48228; SMALL-LOCAL-DYNAMIC-SMALLCM64-NEXT: ld r0, 16(r1)229; SMALL-LOCAL-DYNAMIC-SMALLCM64-NEXT: mtlr r0230; SMALL-LOCAL-DYNAMIC-SMALLCM64-NEXT: blr231;232; SMALL-LOCAL-DYNAMIC-LARGECM64-LABEL: test3:233; SMALL-LOCAL-DYNAMIC-LARGECM64: # %bb.0: # %entry234; SMALL-LOCAL-DYNAMIC-LARGECM64-NEXT: mflr r0235; SMALL-LOCAL-DYNAMIC-LARGECM64-NEXT: stdu r1, -48(r1)236; SMALL-LOCAL-DYNAMIC-LARGECM64-NEXT: addis r3, L..C0@u(r2)237; SMALL-LOCAL-DYNAMIC-LARGECM64-NEXT: std r0, 64(r1)238; SMALL-LOCAL-DYNAMIC-LARGECM64-NEXT: addis r6, L..C3@u(r2)239; SMALL-LOCAL-DYNAMIC-LARGECM64-NEXT: ld r3, L..C0@l(r3)240; SMALL-LOCAL-DYNAMIC-LARGECM64-NEXT: ld r6, L..C3@l(r6)241; SMALL-LOCAL-DYNAMIC-LARGECM64-NEXT: bla .__tls_get_mod[PR]242; SMALL-LOCAL-DYNAMIC-LARGECM64-NEXT: li r5, 2243; SMALL-LOCAL-DYNAMIC-LARGECM64-NEXT: li r4, 1244; SMALL-LOCAL-DYNAMIC-LARGECM64-NEXT: stw r5, ElementIntTLS2[TL]@ld+320-65536(r3)245; SMALL-LOCAL-DYNAMIC-LARGECM64-NEXT: li r5, 3246; SMALL-LOCAL-DYNAMIC-LARGECM64-NEXT: stw r5, ElementIntTLS3[TL]@ld+324-65536(r3)247; SMALL-LOCAL-DYNAMIC-LARGECM64-NEXT: li r5, 88248; SMALL-LOCAL-DYNAMIC-LARGECM64-NEXT: stw r5, ElementIntTLS5[TL]@ld+332-65536(r3)249; SMALL-LOCAL-DYNAMIC-LARGECM64-NEXT: li r5, 4250; SMALL-LOCAL-DYNAMIC-LARGECM64-NEXT: stw r5, ElementIntTLS4[TL]@ld+328-65536(r3)251; SMALL-LOCAL-DYNAMIC-LARGECM64-NEXT: stwux r4, r3, r6252; SMALL-LOCAL-DYNAMIC-LARGECM64-NEXT: stw r5, 24(r3)253; SMALL-LOCAL-DYNAMIC-LARGECM64-NEXT: li r3, 102254; SMALL-LOCAL-DYNAMIC-LARGECM64-NEXT: addi r1, r1, 48255; SMALL-LOCAL-DYNAMIC-LARGECM64-NEXT: ld r0, 16(r1)256; SMALL-LOCAL-DYNAMIC-LARGECM64-NEXT: mtlr r0257; SMALL-LOCAL-DYNAMIC-LARGECM64-NEXT: blr258entry:259 %tls1 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @ElementIntTLSv2)260 store i32 1, ptr %tls1, align 4261 %arrayidx1 = getelementptr inbounds [9000 x i32], ptr %tls1, i64 0, i64 6262 store i32 4, ptr %arrayidx1, align 4263 %tls2 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @ElementIntTLS2)264 %arrayidx2 = getelementptr inbounds [4000 x i32], ptr %tls2, i64 0, i64 80265 store i32 2, ptr %arrayidx2, align 4266 %tls3 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @ElementIntTLS3)267 %arrayidx3 = getelementptr inbounds [4000 x i32], ptr %tls3, i64 0, i64 81268 store i32 3, ptr %arrayidx3, align 4269 %tls4 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @ElementIntTLS4)270 %arrayidx4 = getelementptr inbounds [4000 x i32], ptr %tls4, i64 0, i64 82271 store i32 4, ptr %arrayidx4, align 4272 %tls5 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @ElementIntTLS5)273 %arrayidx5 = getelementptr inbounds [4000 x i32], ptr %tls5, i64 0, i64 83274 store i32 88, ptr %arrayidx5, align 4275 %load1 = load i32, ptr %tls1, align 4276 %load2 = load i32, ptr %arrayidx1, align 4277 %load3 = load i32, ptr %arrayidx2, align 4278 %load4 = load i32, ptr %arrayidx3, align 4279 %load5 = load i32, ptr %arrayidx4, align 4280 %add = add i32 %load1, 88281 %add9 = add i32 %add, %load2282 %add11 = add i32 %add9, %load3283 %add13 = add i32 %add11, %load4284 %add15 = add i32 %add13, %load5285 ret i32 %add15286}287 288; DIS: file format aix5coff64-rs6000289; DIS: Disassembly of section .text:290; DIS: 0000000000000000 (idx: [[#NFA+9]]) .test1:291; DIS-NEXT: [[#%x, ADDR:]]: {{.*}} mflr 0292; DIS-NEXT: [[#%x, ADDR:]]: {{.*}} stdu 1, -48(1)293; DIS-NEXT: [[#%x, ADDR:]]: {{.*}} addis 3, 2, 0294; DIS-NEXT: {{0*}}[[#ADDR + 2]]: R_TOCU (idx: [[#NFA+23]]) _$TLSML[TC]295; DIS-NEXT: [[#%x, ADDR:]]: {{.*}} addis 6, 2, 0296; DIS-NEXT: {{0*}}[[#ADDR + 2]]: R_TOCU (idx: [[#NFA+25]]) ElementIntTLSv1[TE]297; DIS-NEXT: [[#%x, ADDR:]]: {{.*}} std 0, 64(1)298; DIS-NEXT: [[#%x, ADDR:]]: {{.*}} addis 7, 2, 0299; DIS-NEXT: {{0*}}[[#ADDR + 2]]: R_TOCU (idx: [[#NFA+27]]) ElementIntTLS3[TE]300; DIS-NEXT: [[#%x, ADDR:]]: {{.*}} ld 3, 0(3)301; DIS-NEXT: {{0*}}[[#ADDR + 2]]: R_TOCL (idx: [[#NFA+23]]) _$TLSML[TC]302; DIS-NEXT: [[#%x, ADDR:]]: {{.*}} addis 8, 2, 0303; DIS-NEXT: {{0*}}[[#ADDR + 2]]: R_TOCU (idx: [[#NFA+29]]) ElementIntTLS4[TE]304; DIS-NEXT: [[#%x, ADDR:]]: {{.*}} addis 9, 2, 0305; DIS-NEXT: {{0*}}[[#ADDR + 2]]: R_TOCU (idx: [[#NFA+31]]) ElementIntTLS5[TE]306; DIS-NEXT: [[#%x, ADDR:]]: {{.*}} ld 7, 16(7)307; DIS-NEXT: {{0*}}[[#ADDR + 2]]: R_TOCL (idx: [[#NFA+27]]) ElementIntTLS3[TE]308; DIS-NEXT: [[#%x, ADDR:]]: {{.*}} ld 8, 24(8)309; DIS-NEXT: {{0*}}[[#ADDR + 2]]: R_TOCL (idx: [[#NFA+29]]) ElementIntTLS4[TE]310; DIS-NEXT: [[#%x, ADDR:]]: {{.*}} ld 9, 32(9)311; DIS-NEXT: {{0*}}[[#ADDR + 2]]: R_TOCL (idx: [[#NFA+31]]) ElementIntTLS5[TE]312; DIS-NEXT: [[#%x, ADDR:]]: {{.*}} bla 0x0313; DIS-NEXT: {{0*}}[[#ADDR]]: R_RBA (idx: [[#NFA+1]]) .__tls_get_mod[PR]314; DIS-NEXT: [[#%x, ADDR:]]: {{.*}} ld 5, 8(6)315; DIS-NEXT: {{0*}}[[#ADDR + 2]]: R_TOCL (idx: [[#NFA+25]]) ElementIntTLSv1[TE]316; DIS-NEXT: [[#%x, ADDR:]]: {{.*}} addis 6, 2, 0317; DIS-NEXT: {{0*}}[[#ADDR + 2]]: R_TOCU (idx: [[#NFA+33]]) ElementIntTLS2[TE]318; DIS-NEXT: [[#%x, ADDR:]]: {{.*}} li 4, 1319; DIS-NEXT: [[#%x, ADDR:]]: {{.*}} ld 6, 40(6)320; DIS-NEXT: {{0*}}[[#ADDR + 2]]: R_TOCL (idx: [[#NFA+33]]) ElementIntTLS2[TE]321; DIS-NEXT: [[#%x, ADDR:]]: {{.*}} add 7, 3, 7322; DIS-NEXT: [[#%x, ADDR:]]: {{.*}} add 8, 3, 8323; DIS-NEXT: [[#%x, ADDR:]]: {{.*}} add 9, 3, 9324; DIS-NEXT: [[#%x, ADDR:]]: {{.*}} add 6, 3, 6325; DIS-NEXT: [[#%x, ADDR:]]: {{.*}} stwux 4, 3, 5326; DIS-NEXT: [[#%x, ADDR:]]: {{.*}} li 4, 2327; DIS-NEXT: [[#%x, ADDR:]]: {{.*}} stw 4, 320(6)328; DIS-NEXT: [[#%x, ADDR:]]: {{.*}} li 4, 3329; DIS-NEXT: [[#%x, ADDR:]]: {{.*}} stw 4, 324(7)330; DIS-NEXT: [[#%x, ADDR:]]: {{.*}} li 4, 4331; DIS-NEXT: [[#%x, ADDR:]]: {{.*}} stw 4, 24(3)332; DIS-NEXT: [[#%x, ADDR:]]: {{.*}} li 3, 88333; DIS-NEXT: [[#%x, ADDR:]]: {{.*}} stw 4, 328(8)334; DIS-NEXT: [[#%x, ADDR:]]: {{.*}} stw 3, 332(9)335; DIS-NEXT: [[#%x, ADDR:]]: {{.*}} li 3, 102336; DIS-NEXT: [[#%x, ADDR:]]: {{.*}} addi 1, 1, 48337; DIS-NEXT: [[#%x, ADDR:]]: {{.*}} ld 0, 16(1)338; DIS-NEXT: [[#%x, ADDR:]]: {{.*}} mtlr 0339; DIS-NEXT: [[#%x, ADDR:]]: {{.*}} blr340 341; DIS: 0000000000000090 (idx: [[#NFA+11]]) .test2:342; DIS-NEXT: [[#%x, ADDR:]]: {{.*}} mflr 0343; DIS-NEXT: [[#%x, ADDR:]]: {{.*}} stdu 1, -48(1)344; DIS-NEXT: [[#%x, ADDR:]]: {{.*}} addis 3, 2, 0345; DIS-NEXT: {{0*}}[[#ADDR + 2]]: R_TOCU (idx: [[#NFA+23]]) _$TLSML[TC]346; DIS-NEXT: [[#%x, ADDR:]]: {{.*}} std 0, 64(1)347; DIS-NEXT: [[#%x, ADDR:]]: {{.*}} addis 7, 2, 0348; DIS-NEXT: {{0*}}[[#ADDR + 2]]: R_TOCU (idx: [[#NFA+35]]) ElementLongTLS6[TE]349; DIS-NEXT: [[#%x, ADDR:]]: {{.*}} ld 3, 0(3)350; DIS-NEXT: {{0*}}[[#ADDR + 2]]: R_TOCL (idx: [[#NFA+23]]) _$TLSML[TC]351; DIS-NEXT: [[#%x, ADDR:]]: {{.*}} bla 0x0352; DIS-NEXT: {{0*}}[[#ADDR]]: R_RBA (idx: [[#NFA+1]]) .__tls_get_mod[PR]353; DIS-NEXT: [[#%x, ADDR:]]: {{.*}} li 4, 212354; DIS-NEXT: [[#%x, ADDR:]]: {{.*}} mr 6, 3355; DIS-NEXT: [[#%x, ADDR:]]: {{.*}} ld 3, 48(7)356; DIS-NEXT: {{0*}}[[#ADDR + 2]]: R_TOCL (idx: [[#NFA+35]]) ElementLongTLS6[TE]357; DIS-NEXT: [[#%x, ADDR:]]: {{.*}} add 3, 6, 3358; DIS-NEXT: [[#%x, ADDR:]]: {{.*}} std 4, 424(3)359; DIS-NEXT: [[#%x, ADDR:]]: {{.*}} addis 3, 2, 0360; DIS-NEXT: {{0*}}[[#ADDR + 2]]: R_TOCU (idx: [[#NFA+37]]) ElementLongTLS2[TE]361; DIS-NEXT: [[#%x, ADDR:]]: {{.*}} li 4, 203362; DIS-NEXT: [[#%x, ADDR:]]: {{.*}} ld 3, 56(3)363; DIS-NEXT: {{0*}}[[#ADDR + 2]]: R_TOCL (idx: [[#NFA+37]]) ElementLongTLS2[TE]364; DIS-NEXT: [[#%x, ADDR:]]: {{.*}} add 3, 6, 3365; DIS-NEXT: [[#%x, ADDR:]]: {{.*}} std 4, 1200(3)366; DIS-NEXT: [[#%x, ADDR:]]: {{.*}} addis 3, 2, 0367; DIS-NEXT: {{0*}}[[#ADDR + 2]]: R_TOCU (idx: [[#NFA+39]]) .MyTLSGDVar[TE]368; DIS-NEXT: [[#%x, ADDR:]]: {{.*}} addis 4, 2, 0369; DIS-NEXT: {{0*}}[[#ADDR + 2]]: R_TOCU (idx: [[#NFA+41]]) MyTLSGDVar[TE]370; DIS-NEXT: [[#%x, ADDR:]]: {{.*}} ld 3, 64(3)371; DIS-NEXT: {{0*}}[[#ADDR + 2]]: R_TOCL (idx: [[#NFA+39]]) .MyTLSGDVar[TE]372; DIS-NEXT: [[#%x, ADDR:]]: {{.*}} ld 4, 72(4)373; DIS-NEXT: {{0*}}[[#ADDR + 2]]: R_TOCL (idx: [[#NFA+41]]) MyTLSGDVar[TE]374; DIS-NEXT: [[#%x, ADDR:]]: {{.*}} bla 0x0375; DIS-NEXT: {{0*}}[[#ADDR]]: R_RBA (idx: [[#NFA+3]]) .__tls_get_addr[PR]376; DIS-NEXT: [[#%x, ADDR:]]: {{.*}} li 4, 44377; DIS-NEXT: [[#%x, ADDR:]]: {{.*}} std 4, 440(3)378; DIS-NEXT: [[#%x, ADDR:]]: {{.*}} addis 3, 2, 0379; DIS-NEXT: {{0*}}[[#ADDR + 2]]: R_TOCU (idx: [[#NFA+43]]) ElementLongTLS3[TE]380; DIS-NEXT: [[#%x, ADDR:]]: {{.*}} li 4, 6381; DIS-NEXT: [[#%x, ADDR:]]: {{.*}} ld 3, 80(3)382; DIS-NEXT: {{0*}}[[#ADDR + 2]]: R_TOCL (idx: [[#NFA+43]]) ElementLongTLS3[TE]383; DIS-NEXT: [[#%x, ADDR:]]: {{.*}} add 3, 6, 3384; DIS-NEXT: [[#%x, ADDR:]]: {{.*}} std 4, 2000(3)385; DIS-NEXT: [[#%x, ADDR:]]: {{.*}} addis 3, 2, 0386; DIS-NEXT: {{0*}}[[#ADDR + 2]]: R_TOCU (idx: [[#NFA+45]]) ElementLongTLS4[TE]387; DIS-NEXT: [[#%x, ADDR:]]: {{.*}} li 4, 100388; DIS-NEXT: [[#%x, ADDR:]]: {{.*}} ld 3, 88(3)389; DIS-NEXT: {{0*}}[[#ADDR + 2]]: R_TOCL (idx: [[#NFA+45]]) ElementLongTLS4[TE]390; DIS-NEXT: [[#%x, ADDR:]]: {{.*}} add 3, 6, 3391; DIS-NEXT: [[#%x, ADDR:]]: {{.*}} std 4, 6800(3)392; DIS-NEXT: [[#%x, ADDR:]]: {{.*}} addis 3, 2, 0393; DIS-NEXT: {{0*}}[[#ADDR + 2]]: R_TOCU (idx: [[#NFA+47]]) ElementLongTLS5[TE]394; DIS-NEXT: [[#%x, ADDR:]]: {{.*}} li 4, 882395; DIS-NEXT: [[#%x, ADDR:]]: {{.*}} ld 3, 96(3)396; DIS-NEXT: {{0*}}[[#ADDR + 2]]: R_TOCL (idx: [[#NFA+47]]) ElementLongTLS5[TE]397; DIS-NEXT: [[#%x, ADDR:]]: {{.*}} add 3, 6, 3398; DIS-NEXT: [[#%x, ADDR:]]: {{.*}} std 4, 8400(3)399; DIS-NEXT: [[#%x, ADDR:]]: {{.*}} li 3, 1191400; DIS-NEXT: [[#%x, ADDR:]]: {{.*}} addi 1, 1, 48401; DIS-NEXT: [[#%x, ADDR:]]: {{.*}} ld 0, 16(1)402; DIS-NEXT: [[#%x, ADDR:]]: {{.*}} mtlr 0403; DIS-NEXT: [[#%x, ADDR:]]: {{.*}} blr404 405; DIS: 0000000000000140 (idx: [[#NFA+13]]) .test3:406; DIS-NEXT: [[#%x, ADDR:]]: {{.*}} mflr 0407; DIS-NEXT: [[#%x, ADDR:]]: {{.*}} stdu 1, -48(1)408; DIS-NEXT: [[#%x, ADDR:]]: {{.*}} addis 3, 2, 0409; DIS-NEXT: {{0*}}[[#ADDR + 2]]: R_TOCU (idx: [[#NFA+23]]) _$TLSML[TC]410; DIS-NEXT: [[#%x, ADDR:]]: {{.*}} addis 6, 2, 0411; DIS-NEXT: {{0*}}[[#ADDR + 2]]: R_TOCU (idx: [[#NFA+49]]) ElementIntTLSv2[TE]412; DIS-NEXT: [[#%x, ADDR:]]: {{.*}} std 0, 64(1)413; DIS-NEXT: [[#%x, ADDR:]]: {{.*}} addis 7, 2, 0414; DIS-NEXT: {{0*}}[[#ADDR + 2]]: R_TOCU (idx: [[#NFA+27]]) ElementIntTLS3[TE]415; DIS-NEXT: [[#%x, ADDR:]]: {{.*}} ld 3, 0(3)416; DIS-NEXT: {{0*}}[[#ADDR + 2]]: R_TOCL (idx: [[#NFA+23]]) _$TLSML[TC]417; DIS-NEXT: [[#%x, ADDR:]]: {{.*}} addis 8, 2, 0418; DIS-NEXT: {{0*}}[[#ADDR + 2]]: R_TOCU (idx: [[#NFA+29]]) ElementIntTLS4[TE]419; DIS-NEXT: [[#%x, ADDR:]]: {{.*}} addis 9, 2, 0420; DIS-NEXT: {{0*}}[[#ADDR + 2]]: R_TOCU (idx: [[#NFA+31]]) ElementIntTLS5[TE]421; DIS-NEXT: [[#%x, ADDR:]]: {{.*}} ld 7, 16(7)422; DIS-NEXT: {{0*}}[[#ADDR + 2]]: R_TOCL (idx: [[#NFA+27]]) ElementIntTLS3[TE]423; DIS-NEXT: [[#%x, ADDR:]]: {{.*}} ld 8, 24(8)424; DIS-NEXT: {{0*}}[[#ADDR + 2]]: R_TOCL (idx: [[#NFA+29]]) ElementIntTLS4[TE]425; DIS-NEXT: [[#%x, ADDR:]]: {{.*}} ld 9, 32(9)426; DIS-NEXT: {{0*}}[[#ADDR + 2]]: R_TOCL (idx: [[#NFA+31]]) ElementIntTLS5[TE]427; DIS-NEXT: [[#%x, ADDR:]]: {{.*}} bla 0x0428; DIS-NEXT: {{0*}}[[#ADDR]]: R_RBA (idx: [[#NFA+1]]) .__tls_get_mod[PR]429; DIS-NEXT: [[#%x, ADDR:]]: {{.*}} ld 5, 104(6)430; DIS-NEXT: {{0*}}[[#ADDR + 2]]: R_TOCL (idx: [[#NFA+49]]) ElementIntTLSv2[TE]431; DIS-NEXT: [[#%x, ADDR:]]: {{.*}} addis 6, 2, 0432; DIS-NEXT: {{0*}}[[#ADDR + 2]]: R_TOCU (idx: [[#NFA+33]]) ElementIntTLS2[TE]433; DIS-NEXT: [[#%x, ADDR:]]: {{.*}} li 4, 1434; DIS-NEXT: [[#%x, ADDR:]]: {{.*}} ld 6, 40(6)435; DIS-NEXT: {{0*}}[[#ADDR + 2]]: R_TOCL (idx: [[#NFA+33]]) ElementIntTLS2[TE]436; DIS-NEXT: [[#%x, ADDR:]]: {{.*}} add 7, 3, 7437; DIS-NEXT: [[#%x, ADDR:]]: {{.*}} add 8, 3, 8438; DIS-NEXT: [[#%x, ADDR:]]: {{.*}} add 9, 3, 9439; DIS-NEXT: [[#%x, ADDR:]]: {{.*}} add 6, 3, 6440; DIS-NEXT: [[#%x, ADDR:]]: {{.*}} stwux 4, 3, 5441; DIS-NEXT: [[#%x, ADDR:]]: {{.*}} li 4, 2442; DIS-NEXT: [[#%x, ADDR:]]: {{.*}} stw 4, 320(6)443; DIS-NEXT: [[#%x, ADDR:]]: {{.*}} li 4, 3444; DIS-NEXT: [[#%x, ADDR:]]: {{.*}} stw 4, 324(7)445; DIS-NEXT: [[#%x, ADDR:]]: {{.*}} li 4, 4446; DIS-NEXT: [[#%x, ADDR:]]: {{.*}} stw 4, 24(3)447; DIS-NEXT: [[#%x, ADDR:]]: {{.*}} li 3, 88448; DIS-NEXT: [[#%x, ADDR:]]: {{.*}} stw 4, 328(8)449; DIS-NEXT: [[#%x, ADDR:]]: {{.*}} stw 3, 332(9)450; DIS-NEXT: [[#%x, ADDR:]]: {{.*}} li 3, 102451; DIS-NEXT: [[#%x, ADDR:]]: {{.*}} addi 1, 1, 48452; DIS-NEXT: [[#%x, ADDR:]]: {{.*}} ld 0, 16(1)453; DIS-NEXT: [[#%x, ADDR:]]: {{.*}} mtlr 0454; DIS-NEXT: [[#%x, ADDR:]]: {{.*}} blr455 456; DIS: Disassembly of section .data:457 458; DIS: 00000000000001d0 (idx: 17) test1[DS]:459; DIS-NEXT: 1d0: 00 00 00 00460; DIS-NEXT: 00000000000001d0: R_POS (idx: [[#NFA+9]]) .test1461; DIS-NEXT: 1d4: 00 00 00 00462; DIS-NEXT: 1d8: 00 00 00 00463; DIS-NEXT: 00000000000001d8: R_POS (idx: [[#NFA+21]]) TOC[TC0]464; DIS-NEXT: 1dc: 00 00 02 18465 466; DIS: 00000000000001e8 (idx: 19) test2[DS]:467; DIS-NEXT: 1e8: 00 00 00 00468; DIS-NEXT: 00000000000001e8: R_POS (idx: [[#NFA+11]]) .test2469; DIS-NEXT: 1ec: 00 00 00 90470; DIS-NEXT: 1f0: 00 00 00 00471; DIS-NEXT: 00000000000001f0: R_POS (idx: [[#NFA+21]]) TOC[TC0]472; DIS-NEXT: 1f4: 00 00 02 18473 474; DIS: 0000000000000200 (idx: 21) test3[DS]:475; DIS-NEXT: 200: 00 00 00 00476; DIS-NEXT: 0000000000000200: R_POS (idx: [[#NFA+13]]) .test3477; DIS-NEXT: 204: 00 00 01 40478; DIS-NEXT: 208: 00 00 00 00479; DIS-NEXT: 0000000000000208: R_POS (idx: [[#NFA+21]]) TOC[TC0]480; DIS-NEXT: 20c: 00 00 02 18481 482; DIS: 0000000000000218 (idx: 25) _$TLSML[TC]:483; DIS-NEXT: 218: 00 00 00 00484; DIS-NEXT: 0000000000000218: R_TLSML (idx: [[#NFA+23]]) _$TLSML[TC]485; DIS-NEXT: 21c: 00 00 00 00486 487; DIS: 0000000000000220 (idx: 27) ElementIntTLSv1[TE]:488; DIS-NEXT: 220: 00 00 00 00489; DIS-NEXT: 0000000000000220: R_TLS_LD (idx: [[#NFA+51]]) ElementIntTLSv1[TL]490; DIS-NEXT: 224: 00 00 00 00491 492; DIS: 0000000000000228 (idx: 29) ElementIntTLS3[TE]:493; DIS-NEXT: 228: 00 00 00 00494; DIS-NEXT: 0000000000000228: R_TLS_LD (idx: [[#NFA+55]]) ElementIntTLS3[TL]495; DIS-NEXT: 22c: 00 00 be 6c496 497; DIS: 0000000000000230 (idx: 31) ElementIntTLS4[TE]:498; DIS-NEXT: 230: 00 00 00 00499; DIS-NEXT: 0000000000000230: R_TLS_LD (idx: [[#NFA+57]]) ElementIntTLS4[TL]500; DIS-NEXT: 234: 00 00 fc ec501 502; DIS: 0000000000000238 (idx: 33) ElementIntTLS5[TE]:503; DIS-NEXT: 238: 00 00 00 00504; DIS-NEXT: 0000000000000238: R_TLS_LD (idx: [[#NFA+59]]) ElementIntTLS5[TL]505; DIS-NEXT: 23c: 00 01 3b 6c506 507; DIS: 0000000000000240 (idx: 35) ElementIntTLS2[TE]:508; DIS-NEXT: 240: 00 00 00 00509; DIS-NEXT: 0000000000000240: R_TLS_LD (idx: [[#NFA+53]]) ElementIntTLS2[TL]510; DIS-NEXT: 244: 00 00 7f ec511 512; DIS: 0000000000000248 (idx: 37) ElementLongTLS6[TE]:513; DIS-NEXT: 248: 00 00 00 00514; DIS-NEXT: 0000000000000248: R_TLS_LD (idx: [[#NFA+5]]) ElementLongTLS6[UL]515; DIS-NEXT: 24c: 00 00 00 00516 517; DIS: 0000000000000250 (idx: 39) ElementLongTLS2[TE]:518; DIS-NEXT: 250: 00 00 00 00519; DIS-NEXT: 0000000000000250: R_TLS_LD (idx: [[#NFA+63]]) ElementLongTLS2[TL]520; DIS-NEXT: 254: 00 02 06 90521 522; DIS: 0000000000000258 (idx: 41) .MyTLSGDVar[TE]:523; DIS-NEXT: 258: 00 00 00 00524; DIS-NEXT: 0000000000000258: R_TLSM (idx: [[#NFA+65]]) MyTLSGDVar[TL]525; DIS-NEXT: 25c: 00 00 00 00526 527; DIS: 0000000000000260 (idx: 43) MyTLSGDVar[TE]:528; DIS-NEXT: 260: 00 00 00 00529; DIS-NEXT: 0000000000000260: R_TLS (idx: [[#NFA+65]]) MyTLSGDVar[TL]530; DIS-NEXT: 264: 00 02 64 50531 532; DIS: 0000000000000268 (idx: 45) ElementLongTLS3[TE]:533; DIS-NEXT: 268: 00 00 00 00534; DIS-NEXT: 0000000000000268: R_TLS_LD (idx: [[#NFA+67]]) ElementLongTLS3[TL]535; DIS-NEXT: 26c: 00 02 7d 50536 537; DIS: 0000000000000270 (idx: 47) ElementLongTLS4[TE]:538; DIS-NEXT: 270: 00 00 00 00539; DIS-NEXT: 0000000000000270: R_TLS_LD (idx: [[#NFA+69]]) ElementLongTLS4[TL]540; DIS-NEXT: 274: 00 02 db 10541 542; DIS: 0000000000000278 (idx: 49) ElementLongTLS5[TE]:543; DIS-NEXT: 278: 00 00 00 00544; DIS-NEXT: 0000000000000278: R_TLS_LD (idx: [[#NFA+71]]) ElementLongTLS5[TL]545; DIS-NEXT: 27c: 00 03 38 d0546 547; DIS: 0000000000000280 (idx: 51) ElementIntTLSv2[TE]:548; DIS-NEXT: 280: 00 00 00 00549; DIS-NEXT: 0000000000000280: R_TLS_LD (idx: [[#NFA+61]]) ElementIntTLSv2[TL]550; DIS-NEXT: 284: 00 01 79 ec551 552; DIS: Disassembly of section .tdata:553; DIS: 0000000000000000 (idx: [[#NFA+51]]) ElementIntTLSv1[TL]:554; DIS: 0000000000007fec (idx: [[#NFA+53]]) ElementIntTLS2[TL]:555; DIS: 000000000000be6c (idx: [[#NFA+55]]) ElementIntTLS3[TL]:556; DIS: 000000000000fcec (idx: [[#NFA+57]]) ElementIntTLS4[TL]:557; DIS: 0000000000013b6c (idx: [[#NFA+59]]) ElementIntTLS5[TL]:558; DIS: 00000000000179ec (idx: [[#NFA+61]]) ElementIntTLSv2[TL]:559; DIS: 0000000000020690 (idx: [[#NFA+63]]) ElementLongTLS2[TL]:560; DIS: 0000000000026450 (idx: [[#NFA+65]]) MyTLSGDVar[TL]:561; DIS: 0000000000027d50 (idx: [[#NFA+67]]) ElementLongTLS3[TL]:562; DIS: 000000000002db10 (idx: [[#NFA+69]]) ElementLongTLS4[TL]:563; DIS: 00000000000338d0 (idx: [[#NFA+71]]) ElementLongTLS5[TL]:564; DIS: 0000000000039690 (idx: [[#NFA+73]]) ElementLongTLS[TL]:565