1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 4 2; RUN: llc -verify-machineinstrs -mcpu=pwr7 -mattr=-altivec -mtriple powerpc64-ibm-aix-xcoff \ 3; RUN: --code-model=small < %s | FileCheck %s --check-prefixes=DEFAULT_SMALL64 4; RUN: llc -verify-machineinstrs -mcpu=pwr7 -mattr=-altivec -mtriple powerpc64-ibm-aix-xcoff \ 5; RUN: --code-model=large < %s | FileCheck %s --check-prefixes=DEFAULT_LARGE64 6; RUN: llc -verify-machineinstrs -mcpu=pwr7 -mattr=-altivec -mtriple powerpc64-ibm-aix-xcoff \ 7; RUN: -mattr=+aix-shared-lib-tls-model-opt --code-model=small < %s | FileCheck %s --check-prefixes=TLS_MODEL_OPT_SMALL64 8; RUN: llc -verify-machineinstrs -mcpu=pwr7 -mattr=-altivec -mtriple powerpc64-ibm-aix-xcoff \ 9; RUN: -mattr=+aix-shared-lib-tls-model-opt --code-model=large < %s | FileCheck %s --check-prefixes=TLS_MODEL_OPT_LARGE64 10; RUN: llc -verify-machineinstrs -mcpu=pwr7 -mattr=-altivec -mtriple powerpc64-ibm-aix-xcoff \ 11; RUN: -mattr=+aix-shared-lib-tls-model-opt -ppc-aix-shared-lib-tls-model-opt-limit=2 \ 12; RUN: --code-model=small < %s | FileCheck %s --check-prefixes=TLS_MODEL_OPT_LIMIT2_SMALL64 13; RUN: llc -verify-machineinstrs -mcpu=pwr7 -mattr=-altivec -mtriple powerpc64-ibm-aix-xcoff \ 14; RUN: -mattr=+aix-shared-lib-tls-model-opt -ppc-aix-shared-lib-tls-model-opt-limit=2 \ 15; RUN: --code-model=large < %s | FileCheck %s --check-prefixes=TLS_MODEL_OPT_LIMIT2_LARGE64 16; RUN: llc -verify-machineinstrs -mcpu=pwr7 -mattr=-altivec -mtriple powerpc64-ibm-aix-xcoff \ 17; RUN: -mattr=+aix-shared-lib-tls-model-opt -ppc-aix-shared-lib-tls-model-opt-limit=3 \ 18; RUN: --code-model=small < %s | FileCheck %s --check-prefixes=TLS_MODEL_OPT_LIMIT3_SMALL64 19; RUN: llc -verify-machineinstrs -mcpu=pwr7 -mattr=-altivec -mtriple powerpc64-ibm-aix-xcoff \ 20; RUN: -mattr=+aix-shared-lib-tls-model-opt -ppc-aix-shared-lib-tls-model-opt-limit=3 \ 21; RUN: --code-model=large < %s | FileCheck %s --check-prefixes=TLS_MODEL_OPT_LIMIT3_LARGE64 22 23@VarTLSLD1 = internal thread_local(localdynamic) global i32 42, align 4 24@VarTLSLD2 = internal thread_local(localdynamic) global i32 0, align 4 25@VarTLSLD3 = internal thread_local(localdynamic) global i32 0, align 4 26 27; Tune function level TLS model settings: 28; Use initial-exec when we have a function accessing only one TLS variable. 29; Use local-dynamic when we have a function accessing a handful or more different TLS variables. 30 31define i32 @Single_LD(i32 %P, i32 %Q) { 32; DEFAULT_SMALL64-LABEL: Single_LD: 33; DEFAULT_SMALL64: # %bb.0: # %entry 34; DEFAULT_SMALL64-NEXT: mflr 0 35; DEFAULT_SMALL64-NEXT: stdu 1, -48(1) 36; DEFAULT_SMALL64-NEXT: and 6, 3, 4 37; DEFAULT_SMALL64-NEXT: ld 3, L..C0(2) # target-flags(ppc-tlsldm) @"_$TLSML" 38; DEFAULT_SMALL64-NEXT: std 0, 64(1) 39; DEFAULT_SMALL64-NEXT: bla .__tls_get_mod[PR] 40; DEFAULT_SMALL64-NEXT: ld 4, L..C1(2) # target-flags(ppc-tlsld) @VarTLSLD1 41; DEFAULT_SMALL64-NEXT: cmpwi 6, -1 42; DEFAULT_SMALL64-NEXT: lwzx 3, 3, 4 43; DEFAULT_SMALL64-NEXT: addi 1, 1, 48 44; DEFAULT_SMALL64-NEXT: ld 0, 16(1) 45; DEFAULT_SMALL64-NEXT: mtlr 0 46; DEFAULT_SMALL64-NEXT: blr 47; 48; DEFAULT_LARGE64-LABEL: Single_LD: 49; DEFAULT_LARGE64: # %bb.0: # %entry 50; DEFAULT_LARGE64-NEXT: mflr 0 51; DEFAULT_LARGE64-NEXT: stdu 1, -48(1) 52; DEFAULT_LARGE64-NEXT: and 6, 3, 4 53; DEFAULT_LARGE64-NEXT: addis 3, L..C0@u(2) 54; DEFAULT_LARGE64-NEXT: addis 7, L..C1@u(2) 55; DEFAULT_LARGE64-NEXT: ld 3, L..C0@l(3) 56; DEFAULT_LARGE64-NEXT: std 0, 64(1) 57; DEFAULT_LARGE64-NEXT: bla .__tls_get_mod[PR] 58; DEFAULT_LARGE64-NEXT: ld 4, L..C1@l(7) 59; DEFAULT_LARGE64-NEXT: lwzx 3, 3, 4 60; DEFAULT_LARGE64-NEXT: cmpwi 6, -1 61; DEFAULT_LARGE64-NEXT: addi 1, 1, 48 62; DEFAULT_LARGE64-NEXT: ld 0, 16(1) 63; DEFAULT_LARGE64-NEXT: mtlr 0 64; DEFAULT_LARGE64-NEXT: blr 65; 66; TLS_MODEL_OPT_SMALL64-LABEL: Single_LD: 67; TLS_MODEL_OPT_SMALL64: # %bb.0: # %entry 68; TLS_MODEL_OPT_SMALL64-NEXT: and 4, 3, 4 69; TLS_MODEL_OPT_SMALL64-NEXT: ld 3, L..C0(2) # target-flags(ppc-tprel) @VarTLSLD1 70; TLS_MODEL_OPT_SMALL64-NEXT: cmpwi 4, -1 71; TLS_MODEL_OPT_SMALL64-NEXT: lwzx 3, 13, 3 72; TLS_MODEL_OPT_SMALL64-NEXT: blr 73; 74; TLS_MODEL_OPT_LARGE64-LABEL: Single_LD: 75; TLS_MODEL_OPT_LARGE64: # %bb.0: # %entry 76; TLS_MODEL_OPT_LARGE64-NEXT: and 4, 3, 4 77; TLS_MODEL_OPT_LARGE64-NEXT: addis 3, L..C0@u(2) 78; TLS_MODEL_OPT_LARGE64-NEXT: ld 3, L..C0@l(3) 79; TLS_MODEL_OPT_LARGE64-NEXT: cmpwi 4, -1 80; TLS_MODEL_OPT_LARGE64-NEXT: lwzx 3, 13, 3 81; TLS_MODEL_OPT_LARGE64-NEXT: blr 82; 83; TLS_MODEL_OPT_LIMIT2_SMALL64-LABEL: Single_LD: 84; TLS_MODEL_OPT_LIMIT2_SMALL64: # %bb.0: # %entry 85; TLS_MODEL_OPT_LIMIT2_SMALL64-NEXT: and 4, 3, 4 86; TLS_MODEL_OPT_LIMIT2_SMALL64-NEXT: ld 3, L..C0(2) # target-flags(ppc-tprel) @VarTLSLD1 87; TLS_MODEL_OPT_LIMIT2_SMALL64-NEXT: cmpwi 4, -1 88; TLS_MODEL_OPT_LIMIT2_SMALL64-NEXT: lwzx 3, 13, 3 89; TLS_MODEL_OPT_LIMIT2_SMALL64-NEXT: blr 90; 91; TLS_MODEL_OPT_LIMIT2_LARGE64-LABEL: Single_LD: 92; TLS_MODEL_OPT_LIMIT2_LARGE64: # %bb.0: # %entry 93; TLS_MODEL_OPT_LIMIT2_LARGE64-NEXT: and 4, 3, 4 94; TLS_MODEL_OPT_LIMIT2_LARGE64-NEXT: addis 3, L..C0@u(2) 95; TLS_MODEL_OPT_LIMIT2_LARGE64-NEXT: ld 3, L..C0@l(3) 96; TLS_MODEL_OPT_LIMIT2_LARGE64-NEXT: cmpwi 4, -1 97; TLS_MODEL_OPT_LIMIT2_LARGE64-NEXT: lwzx 3, 13, 3 98; TLS_MODEL_OPT_LIMIT2_LARGE64-NEXT: blr 99; 100; TLS_MODEL_OPT_LIMIT3_SMALL64-LABEL: Single_LD: 101; TLS_MODEL_OPT_LIMIT3_SMALL64: # %bb.0: # %entry 102; TLS_MODEL_OPT_LIMIT3_SMALL64-NEXT: and 4, 3, 4 103; TLS_MODEL_OPT_LIMIT3_SMALL64-NEXT: ld 3, L..C0(2) # target-flags(ppc-tprel) @VarTLSLD1 104; TLS_MODEL_OPT_LIMIT3_SMALL64-NEXT: cmpwi 4, -1 105; TLS_MODEL_OPT_LIMIT3_SMALL64-NEXT: lwzx 3, 13, 3 106; TLS_MODEL_OPT_LIMIT3_SMALL64-NEXT: blr 107; 108; TLS_MODEL_OPT_LIMIT3_LARGE64-LABEL: Single_LD: 109; TLS_MODEL_OPT_LIMIT3_LARGE64: # %bb.0: # %entry 110; TLS_MODEL_OPT_LIMIT3_LARGE64-NEXT: and 4, 3, 4 111; TLS_MODEL_OPT_LIMIT3_LARGE64-NEXT: addis 3, L..C0@u(2) 112; TLS_MODEL_OPT_LIMIT3_LARGE64-NEXT: ld 3, L..C0@l(3) 113; TLS_MODEL_OPT_LIMIT3_LARGE64-NEXT: cmpwi 4, -1 114; TLS_MODEL_OPT_LIMIT3_LARGE64-NEXT: lwzx 3, 13, 3 115; TLS_MODEL_OPT_LIMIT3_LARGE64-NEXT: blr 116entry: 117 %a = icmp slt i32 %P, 0 118 %b = icmp slt i32 %Q, 0 119 %c = and i1 %a, %b 120 %tls1 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @VarTLSLD1) 121 %load1 = load i32, ptr %tls1, align 4 122 br i1 %c, label %bb1, label %return 123 124bb1: 125 %tls2 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @VarTLSLD1) 126 %load2 = load i32, ptr %tls2, align 4 127 ret i32 %load2 128 129return: 130 ret i32 %load1 131} 132 133define i32 @Two_LDs(i32 %P, i32 %Q) { 134; DEFAULT_SMALL64-LABEL: Two_LDs: 135; DEFAULT_SMALL64: # %bb.0: # %entry 136; DEFAULT_SMALL64-NEXT: mflr 0 137; DEFAULT_SMALL64-NEXT: stdu 1, -48(1) 138; DEFAULT_SMALL64-NEXT: and 6, 3, 4 139; DEFAULT_SMALL64-NEXT: ld 3, L..C0(2) # target-flags(ppc-tlsldm) @"_$TLSML" 140; DEFAULT_SMALL64-NEXT: std 0, 64(1) 141; DEFAULT_SMALL64-NEXT: bla .__tls_get_mod[PR] 142; DEFAULT_SMALL64-NEXT: cmpwi 6, -1 143; DEFAULT_SMALL64-NEXT: bgt 0, L..BB1_2 144; DEFAULT_SMALL64-NEXT: # %bb.1: # %bb1 145; DEFAULT_SMALL64-NEXT: ld 4, L..C2(2) # target-flags(ppc-tlsld) @VarTLSLD2 146; DEFAULT_SMALL64-NEXT: lwzx 3, 3, 4 147; DEFAULT_SMALL64-NEXT: b L..BB1_3 148; DEFAULT_SMALL64-NEXT: L..BB1_2: # %return 149; DEFAULT_SMALL64-NEXT: ld 4, L..C1(2) # target-flags(ppc-tlsld) @VarTLSLD1 150; DEFAULT_SMALL64-NEXT: lwzx 3, 3, 4 151; DEFAULT_SMALL64-NEXT: L..BB1_3: # %bb1 152; DEFAULT_SMALL64-NEXT: addi 1, 1, 48 153; DEFAULT_SMALL64-NEXT: ld 0, 16(1) 154; DEFAULT_SMALL64-NEXT: mtlr 0 155; DEFAULT_SMALL64-NEXT: blr 156; 157; DEFAULT_LARGE64-LABEL: Two_LDs: 158; DEFAULT_LARGE64: # %bb.0: # %entry 159; DEFAULT_LARGE64-NEXT: mflr 0 160; DEFAULT_LARGE64-NEXT: stdu 1, -48(1) 161; DEFAULT_LARGE64-NEXT: and 6, 3, 4 162; DEFAULT_LARGE64-NEXT: addis 3, L..C0@u(2) 163; DEFAULT_LARGE64-NEXT: std 0, 64(1) 164; DEFAULT_LARGE64-NEXT: ld 3, L..C0@l(3) 165; DEFAULT_LARGE64-NEXT: bla .__tls_get_mod[PR] 166; DEFAULT_LARGE64-NEXT: cmpwi 6, -1 167; DEFAULT_LARGE64-NEXT: bgt 0, L..BB1_2 168; DEFAULT_LARGE64-NEXT: # %bb.1: # %bb1 169; DEFAULT_LARGE64-NEXT: addis 4, L..C2@u(2) 170; DEFAULT_LARGE64-NEXT: ld 4, L..C2@l(4) 171; DEFAULT_LARGE64-NEXT: lwzx 3, 3, 4 172; DEFAULT_LARGE64-NEXT: b L..BB1_3 173; DEFAULT_LARGE64-NEXT: L..BB1_2: # %return 174; DEFAULT_LARGE64-NEXT: addis 4, L..C1@u(2) 175; DEFAULT_LARGE64-NEXT: ld 4, L..C1@l(4) 176; DEFAULT_LARGE64-NEXT: lwzx 3, 3, 4 177; DEFAULT_LARGE64-NEXT: L..BB1_3: # %bb1 178; DEFAULT_LARGE64-NEXT: addi 1, 1, 48 179; DEFAULT_LARGE64-NEXT: ld 0, 16(1) 180; DEFAULT_LARGE64-NEXT: mtlr 0 181; DEFAULT_LARGE64-NEXT: blr 182; 183; TLS_MODEL_OPT_SMALL64-LABEL: Two_LDs: 184; TLS_MODEL_OPT_SMALL64: # %bb.0: # %entry 185; TLS_MODEL_OPT_SMALL64-NEXT: mflr 0 186; TLS_MODEL_OPT_SMALL64-NEXT: stdu 1, -48(1) 187; TLS_MODEL_OPT_SMALL64-NEXT: and 6, 3, 4 188; TLS_MODEL_OPT_SMALL64-NEXT: ld 3, L..C1(2) # target-flags(ppc-tlsldm) @"_$TLSML" 189; TLS_MODEL_OPT_SMALL64-NEXT: std 0, 64(1) 190; TLS_MODEL_OPT_SMALL64-NEXT: bla .__tls_get_mod[PR] 191; TLS_MODEL_OPT_SMALL64-NEXT: cmpwi 6, -1 192; TLS_MODEL_OPT_SMALL64-NEXT: bgt 0, L..BB1_2 193; TLS_MODEL_OPT_SMALL64-NEXT: # %bb.1: # %bb1 194; TLS_MODEL_OPT_SMALL64-NEXT: ld 4, L..C2(2) # target-flags(ppc-tlsld) @VarTLSLD2 195; TLS_MODEL_OPT_SMALL64-NEXT: lwzx 3, 3, 4 196; TLS_MODEL_OPT_SMALL64-NEXT: b L..BB1_3 197; TLS_MODEL_OPT_SMALL64-NEXT: L..BB1_2: # %return 198; TLS_MODEL_OPT_SMALL64-NEXT: ld 4, L..C3(2) # target-flags(ppc-tlsld) @VarTLSLD1 199; TLS_MODEL_OPT_SMALL64-NEXT: lwzx 3, 3, 4 200; TLS_MODEL_OPT_SMALL64-NEXT: L..BB1_3: # %bb1 201; TLS_MODEL_OPT_SMALL64-NEXT: addi 1, 1, 48 202; TLS_MODEL_OPT_SMALL64-NEXT: ld 0, 16(1) 203; TLS_MODEL_OPT_SMALL64-NEXT: mtlr 0 204; TLS_MODEL_OPT_SMALL64-NEXT: blr 205; 206; TLS_MODEL_OPT_LARGE64-LABEL: Two_LDs: 207; TLS_MODEL_OPT_LARGE64: # %bb.0: # %entry 208; TLS_MODEL_OPT_LARGE64-NEXT: mflr 0 209; TLS_MODEL_OPT_LARGE64-NEXT: stdu 1, -48(1) 210; TLS_MODEL_OPT_LARGE64-NEXT: and 6, 3, 4 211; TLS_MODEL_OPT_LARGE64-NEXT: addis 3, L..C1@u(2) 212; TLS_MODEL_OPT_LARGE64-NEXT: std 0, 64(1) 213; TLS_MODEL_OPT_LARGE64-NEXT: ld 3, L..C1@l(3) 214; TLS_MODEL_OPT_LARGE64-NEXT: bla .__tls_get_mod[PR] 215; TLS_MODEL_OPT_LARGE64-NEXT: cmpwi 6, -1 216; TLS_MODEL_OPT_LARGE64-NEXT: bgt 0, L..BB1_2 217; TLS_MODEL_OPT_LARGE64-NEXT: # %bb.1: # %bb1 218; TLS_MODEL_OPT_LARGE64-NEXT: addis 4, L..C2@u(2) 219; TLS_MODEL_OPT_LARGE64-NEXT: ld 4, L..C2@l(4) 220; TLS_MODEL_OPT_LARGE64-NEXT: lwzx 3, 3, 4 221; TLS_MODEL_OPT_LARGE64-NEXT: b L..BB1_3 222; TLS_MODEL_OPT_LARGE64-NEXT: L..BB1_2: # %return 223; TLS_MODEL_OPT_LARGE64-NEXT: addis 4, L..C3@u(2) 224; TLS_MODEL_OPT_LARGE64-NEXT: ld 4, L..C3@l(4) 225; TLS_MODEL_OPT_LARGE64-NEXT: lwzx 3, 3, 4 226; TLS_MODEL_OPT_LARGE64-NEXT: L..BB1_3: # %bb1 227; TLS_MODEL_OPT_LARGE64-NEXT: addi 1, 1, 48 228; TLS_MODEL_OPT_LARGE64-NEXT: ld 0, 16(1) 229; TLS_MODEL_OPT_LARGE64-NEXT: mtlr 0 230; TLS_MODEL_OPT_LARGE64-NEXT: blr 231; 232; TLS_MODEL_OPT_LIMIT2_SMALL64-LABEL: Two_LDs: 233; TLS_MODEL_OPT_LIMIT2_SMALL64: # %bb.0: # %entry 234; TLS_MODEL_OPT_LIMIT2_SMALL64-NEXT: and 3, 3, 4 235; TLS_MODEL_OPT_LIMIT2_SMALL64-NEXT: cmpwi 3, -1 236; TLS_MODEL_OPT_LIMIT2_SMALL64-NEXT: bgt 0, L..BB1_2 237; TLS_MODEL_OPT_LIMIT2_SMALL64-NEXT: # %bb.1: # %bb1 238; TLS_MODEL_OPT_LIMIT2_SMALL64-NEXT: ld 3, L..C1(2) # target-flags(ppc-tprel) @VarTLSLD2 239; TLS_MODEL_OPT_LIMIT2_SMALL64-NEXT: lwzx 3, 13, 3 240; TLS_MODEL_OPT_LIMIT2_SMALL64-NEXT: blr 241; TLS_MODEL_OPT_LIMIT2_SMALL64-NEXT: L..BB1_2: # %return 242; TLS_MODEL_OPT_LIMIT2_SMALL64-NEXT: ld 3, L..C0(2) # target-flags(ppc-tprel) @VarTLSLD1 243; TLS_MODEL_OPT_LIMIT2_SMALL64-NEXT: lwzx 3, 13, 3 244; TLS_MODEL_OPT_LIMIT2_SMALL64-NEXT: blr 245; 246; TLS_MODEL_OPT_LIMIT2_LARGE64-LABEL: Two_LDs: 247; TLS_MODEL_OPT_LIMIT2_LARGE64: # %bb.0: # %entry 248; TLS_MODEL_OPT_LIMIT2_LARGE64-NEXT: and 3, 3, 4 249; TLS_MODEL_OPT_LIMIT2_LARGE64-NEXT: cmpwi 3, -1 250; TLS_MODEL_OPT_LIMIT2_LARGE64-NEXT: bgt 0, L..BB1_2 251; TLS_MODEL_OPT_LIMIT2_LARGE64-NEXT: # %bb.1: # %bb1 252; TLS_MODEL_OPT_LIMIT2_LARGE64-NEXT: addis 3, L..C1@u(2) 253; TLS_MODEL_OPT_LIMIT2_LARGE64-NEXT: ld 3, L..C1@l(3) 254; TLS_MODEL_OPT_LIMIT2_LARGE64-NEXT: lwzx 3, 13, 3 255; TLS_MODEL_OPT_LIMIT2_LARGE64-NEXT: blr 256; TLS_MODEL_OPT_LIMIT2_LARGE64-NEXT: L..BB1_2: # %return 257; TLS_MODEL_OPT_LIMIT2_LARGE64-NEXT: addis 3, L..C0@u(2) 258; TLS_MODEL_OPT_LIMIT2_LARGE64-NEXT: ld 3, L..C0@l(3) 259; TLS_MODEL_OPT_LIMIT2_LARGE64-NEXT: lwzx 3, 13, 3 260; TLS_MODEL_OPT_LIMIT2_LARGE64-NEXT: blr 261; 262; TLS_MODEL_OPT_LIMIT3_SMALL64-LABEL: Two_LDs: 263; TLS_MODEL_OPT_LIMIT3_SMALL64: # %bb.0: # %entry 264; TLS_MODEL_OPT_LIMIT3_SMALL64-NEXT: and 3, 3, 4 265; TLS_MODEL_OPT_LIMIT3_SMALL64-NEXT: cmpwi 3, -1 266; TLS_MODEL_OPT_LIMIT3_SMALL64-NEXT: bgt 0, L..BB1_2 267; TLS_MODEL_OPT_LIMIT3_SMALL64-NEXT: # %bb.1: # %bb1 268; TLS_MODEL_OPT_LIMIT3_SMALL64-NEXT: ld 3, L..C1(2) # target-flags(ppc-tprel) @VarTLSLD2 269; TLS_MODEL_OPT_LIMIT3_SMALL64-NEXT: lwzx 3, 13, 3 270; TLS_MODEL_OPT_LIMIT3_SMALL64-NEXT: blr 271; TLS_MODEL_OPT_LIMIT3_SMALL64-NEXT: L..BB1_2: # %return 272; TLS_MODEL_OPT_LIMIT3_SMALL64-NEXT: ld 3, L..C0(2) # target-flags(ppc-tprel) @VarTLSLD1 273; TLS_MODEL_OPT_LIMIT3_SMALL64-NEXT: lwzx 3, 13, 3 274; TLS_MODEL_OPT_LIMIT3_SMALL64-NEXT: blr 275; 276; TLS_MODEL_OPT_LIMIT3_LARGE64-LABEL: Two_LDs: 277; TLS_MODEL_OPT_LIMIT3_LARGE64: # %bb.0: # %entry 278; TLS_MODEL_OPT_LIMIT3_LARGE64-NEXT: and 3, 3, 4 279; TLS_MODEL_OPT_LIMIT3_LARGE64-NEXT: cmpwi 3, -1 280; TLS_MODEL_OPT_LIMIT3_LARGE64-NEXT: bgt 0, L..BB1_2 281; TLS_MODEL_OPT_LIMIT3_LARGE64-NEXT: # %bb.1: # %bb1 282; TLS_MODEL_OPT_LIMIT3_LARGE64-NEXT: addis 3, L..C1@u(2) 283; TLS_MODEL_OPT_LIMIT3_LARGE64-NEXT: ld 3, L..C1@l(3) 284; TLS_MODEL_OPT_LIMIT3_LARGE64-NEXT: lwzx 3, 13, 3 285; TLS_MODEL_OPT_LIMIT3_LARGE64-NEXT: blr 286; TLS_MODEL_OPT_LIMIT3_LARGE64-NEXT: L..BB1_2: # %return 287; TLS_MODEL_OPT_LIMIT3_LARGE64-NEXT: addis 3, L..C0@u(2) 288; TLS_MODEL_OPT_LIMIT3_LARGE64-NEXT: ld 3, L..C0@l(3) 289; TLS_MODEL_OPT_LIMIT3_LARGE64-NEXT: lwzx 3, 13, 3 290; TLS_MODEL_OPT_LIMIT3_LARGE64-NEXT: blr 291entry: 292 %a = icmp slt i32 %P, 0 293 %b = icmp slt i32 %Q, 0 294 %c = and i1 %a, %b 295 %tls1 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @VarTLSLD1) 296 %load1 = load i32, ptr %tls1, align 4 297 br i1 %c, label %bb1, label %return 298 299bb1: 300 %tls2 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @VarTLSLD2) 301 %load2 = load i32, ptr %tls2, align 4 302 ret i32 %load2 303 304return: 305 ret i32 %load1 306} 307 308define i32 @Three_LDs(i32 %P, i32 %Q) { 309; DEFAULT_SMALL64-LABEL: Three_LDs: 310; DEFAULT_SMALL64: # %bb.0: # %entry 311; DEFAULT_SMALL64-NEXT: mflr 0 312; DEFAULT_SMALL64-NEXT: stdu 1, -48(1) 313; DEFAULT_SMALL64-NEXT: and 6, 3, 4 314; DEFAULT_SMALL64-NEXT: ld 3, L..C0(2) # target-flags(ppc-tlsldm) @"_$TLSML" 315; DEFAULT_SMALL64-NEXT: std 0, 64(1) 316; DEFAULT_SMALL64-NEXT: bla .__tls_get_mod[PR] 317; DEFAULT_SMALL64-NEXT: cmpwi 6, -1 318; DEFAULT_SMALL64-NEXT: bgt 0, L..BB2_2 319; DEFAULT_SMALL64-NEXT: # %bb.1: # %bb1 320; DEFAULT_SMALL64-NEXT: ld 4, L..C2(2) # target-flags(ppc-tlsld) @VarTLSLD2 321; DEFAULT_SMALL64-NEXT: ld 5, L..C3(2) # target-flags(ppc-tlsld) @VarTLSLD3 322; DEFAULT_SMALL64-NEXT: lwzx 4, 3, 4 323; DEFAULT_SMALL64-NEXT: lwzx 3, 3, 5 324; DEFAULT_SMALL64-NEXT: add 3, 4, 3 325; DEFAULT_SMALL64-NEXT: b L..BB2_3 326; DEFAULT_SMALL64-NEXT: L..BB2_2: # %return 327; DEFAULT_SMALL64-NEXT: ld 4, L..C1(2) # target-flags(ppc-tlsld) @VarTLSLD1 328; DEFAULT_SMALL64-NEXT: lwzx 3, 3, 4 329; DEFAULT_SMALL64-NEXT: L..BB2_3: # %return 330; DEFAULT_SMALL64-NEXT: addi 1, 1, 48 331; DEFAULT_SMALL64-NEXT: ld 0, 16(1) 332; DEFAULT_SMALL64-NEXT: mtlr 0 333; DEFAULT_SMALL64-NEXT: blr 334; 335; DEFAULT_LARGE64-LABEL: Three_LDs: 336; DEFAULT_LARGE64: # %bb.0: # %entry 337; DEFAULT_LARGE64-NEXT: mflr 0 338; DEFAULT_LARGE64-NEXT: stdu 1, -48(1) 339; DEFAULT_LARGE64-NEXT: and 6, 3, 4 340; DEFAULT_LARGE64-NEXT: addis 3, L..C0@u(2) 341; DEFAULT_LARGE64-NEXT: std 0, 64(1) 342; DEFAULT_LARGE64-NEXT: ld 3, L..C0@l(3) 343; DEFAULT_LARGE64-NEXT: bla .__tls_get_mod[PR] 344; DEFAULT_LARGE64-NEXT: cmpwi 6, -1 345; DEFAULT_LARGE64-NEXT: bgt 0, L..BB2_2 346; DEFAULT_LARGE64-NEXT: # %bb.1: # %bb1 347; DEFAULT_LARGE64-NEXT: addis 4, L..C2@u(2) 348; DEFAULT_LARGE64-NEXT: addis 5, L..C3@u(2) 349; DEFAULT_LARGE64-NEXT: ld 4, L..C2@l(4) 350; DEFAULT_LARGE64-NEXT: ld 5, L..C3@l(5) 351; DEFAULT_LARGE64-NEXT: lwzx 4, 3, 4 352; DEFAULT_LARGE64-NEXT: lwzx 3, 3, 5 353; DEFAULT_LARGE64-NEXT: add 3, 4, 3 354; DEFAULT_LARGE64-NEXT: b L..BB2_3 355; DEFAULT_LARGE64-NEXT: L..BB2_2: # %return 356; DEFAULT_LARGE64-NEXT: addis 4, L..C1@u(2) 357; DEFAULT_LARGE64-NEXT: ld 4, L..C1@l(4) 358; DEFAULT_LARGE64-NEXT: lwzx 3, 3, 4 359; DEFAULT_LARGE64-NEXT: L..BB2_3: # %return 360; DEFAULT_LARGE64-NEXT: addi 1, 1, 48 361; DEFAULT_LARGE64-NEXT: ld 0, 16(1) 362; DEFAULT_LARGE64-NEXT: mtlr 0 363; DEFAULT_LARGE64-NEXT: blr 364; 365; TLS_MODEL_OPT_SMALL64-LABEL: Three_LDs: 366; TLS_MODEL_OPT_SMALL64: # %bb.0: # %entry 367; TLS_MODEL_OPT_SMALL64-NEXT: mflr 0 368; TLS_MODEL_OPT_SMALL64-NEXT: stdu 1, -48(1) 369; TLS_MODEL_OPT_SMALL64-NEXT: and 6, 3, 4 370; TLS_MODEL_OPT_SMALL64-NEXT: ld 3, L..C1(2) # target-flags(ppc-tlsldm) @"_$TLSML" 371; TLS_MODEL_OPT_SMALL64-NEXT: std 0, 64(1) 372; TLS_MODEL_OPT_SMALL64-NEXT: bla .__tls_get_mod[PR] 373; TLS_MODEL_OPT_SMALL64-NEXT: cmpwi 6, -1 374; TLS_MODEL_OPT_SMALL64-NEXT: bgt 0, L..BB2_2 375; TLS_MODEL_OPT_SMALL64-NEXT: # %bb.1: # %bb1 376; TLS_MODEL_OPT_SMALL64-NEXT: ld 4, L..C2(2) # target-flags(ppc-tlsld) @VarTLSLD2 377; TLS_MODEL_OPT_SMALL64-NEXT: ld 5, L..C4(2) # target-flags(ppc-tlsld) @VarTLSLD3 378; TLS_MODEL_OPT_SMALL64-NEXT: lwzx 4, 3, 4 379; TLS_MODEL_OPT_SMALL64-NEXT: lwzx 3, 3, 5 380; TLS_MODEL_OPT_SMALL64-NEXT: add 3, 4, 3 381; TLS_MODEL_OPT_SMALL64-NEXT: b L..BB2_3 382; TLS_MODEL_OPT_SMALL64-NEXT: L..BB2_2: # %return 383; TLS_MODEL_OPT_SMALL64-NEXT: ld 4, L..C3(2) # target-flags(ppc-tlsld) @VarTLSLD1 384; TLS_MODEL_OPT_SMALL64-NEXT: lwzx 3, 3, 4 385; TLS_MODEL_OPT_SMALL64-NEXT: L..BB2_3: # %return 386; TLS_MODEL_OPT_SMALL64-NEXT: addi 1, 1, 48 387; TLS_MODEL_OPT_SMALL64-NEXT: ld 0, 16(1) 388; TLS_MODEL_OPT_SMALL64-NEXT: mtlr 0 389; TLS_MODEL_OPT_SMALL64-NEXT: blr 390; 391; TLS_MODEL_OPT_LARGE64-LABEL: Three_LDs: 392; TLS_MODEL_OPT_LARGE64: # %bb.0: # %entry 393; TLS_MODEL_OPT_LARGE64-NEXT: mflr 0 394; TLS_MODEL_OPT_LARGE64-NEXT: stdu 1, -48(1) 395; TLS_MODEL_OPT_LARGE64-NEXT: and 6, 3, 4 396; TLS_MODEL_OPT_LARGE64-NEXT: addis 3, L..C1@u(2) 397; TLS_MODEL_OPT_LARGE64-NEXT: std 0, 64(1) 398; TLS_MODEL_OPT_LARGE64-NEXT: ld 3, L..C1@l(3) 399; TLS_MODEL_OPT_LARGE64-NEXT: bla .__tls_get_mod[PR] 400; TLS_MODEL_OPT_LARGE64-NEXT: cmpwi 6, -1 401; TLS_MODEL_OPT_LARGE64-NEXT: bgt 0, L..BB2_2 402; TLS_MODEL_OPT_LARGE64-NEXT: # %bb.1: # %bb1 403; TLS_MODEL_OPT_LARGE64-NEXT: addis 4, L..C2@u(2) 404; TLS_MODEL_OPT_LARGE64-NEXT: addis 5, L..C4@u(2) 405; TLS_MODEL_OPT_LARGE64-NEXT: ld 4, L..C2@l(4) 406; TLS_MODEL_OPT_LARGE64-NEXT: ld 5, L..C4@l(5) 407; TLS_MODEL_OPT_LARGE64-NEXT: lwzx 4, 3, 4 408; TLS_MODEL_OPT_LARGE64-NEXT: lwzx 3, 3, 5 409; TLS_MODEL_OPT_LARGE64-NEXT: add 3, 4, 3 410; TLS_MODEL_OPT_LARGE64-NEXT: b L..BB2_3 411; TLS_MODEL_OPT_LARGE64-NEXT: L..BB2_2: # %return 412; TLS_MODEL_OPT_LARGE64-NEXT: addis 4, L..C3@u(2) 413; TLS_MODEL_OPT_LARGE64-NEXT: ld 4, L..C3@l(4) 414; TLS_MODEL_OPT_LARGE64-NEXT: lwzx 3, 3, 4 415; TLS_MODEL_OPT_LARGE64-NEXT: L..BB2_3: # %return 416; TLS_MODEL_OPT_LARGE64-NEXT: addi 1, 1, 48 417; TLS_MODEL_OPT_LARGE64-NEXT: ld 0, 16(1) 418; TLS_MODEL_OPT_LARGE64-NEXT: mtlr 0 419; TLS_MODEL_OPT_LARGE64-NEXT: blr 420; 421; TLS_MODEL_OPT_LIMIT2_SMALL64-LABEL: Three_LDs: 422; TLS_MODEL_OPT_LIMIT2_SMALL64: # %bb.0: # %entry 423; TLS_MODEL_OPT_LIMIT2_SMALL64-NEXT: mflr 0 424; TLS_MODEL_OPT_LIMIT2_SMALL64-NEXT: stdu 1, -48(1) 425; TLS_MODEL_OPT_LIMIT2_SMALL64-NEXT: and 6, 3, 4 426; TLS_MODEL_OPT_LIMIT2_SMALL64-NEXT: ld 3, L..C2(2) # target-flags(ppc-tlsldm) @"_$TLSML" 427; TLS_MODEL_OPT_LIMIT2_SMALL64-NEXT: std 0, 64(1) 428; TLS_MODEL_OPT_LIMIT2_SMALL64-NEXT: bla .__tls_get_mod[PR] 429; TLS_MODEL_OPT_LIMIT2_SMALL64-NEXT: cmpwi 6, -1 430; TLS_MODEL_OPT_LIMIT2_SMALL64-NEXT: bgt 0, L..BB2_2 431; TLS_MODEL_OPT_LIMIT2_SMALL64-NEXT: # %bb.1: # %bb1 432; TLS_MODEL_OPT_LIMIT2_SMALL64-NEXT: ld 4, L..C3(2) # target-flags(ppc-tlsld) @VarTLSLD2 433; TLS_MODEL_OPT_LIMIT2_SMALL64-NEXT: ld 5, L..C4(2) # target-flags(ppc-tlsld) @VarTLSLD3 434; TLS_MODEL_OPT_LIMIT2_SMALL64-NEXT: lwzx 4, 3, 4 435; TLS_MODEL_OPT_LIMIT2_SMALL64-NEXT: lwzx 3, 3, 5 436; TLS_MODEL_OPT_LIMIT2_SMALL64-NEXT: add 3, 4, 3 437; TLS_MODEL_OPT_LIMIT2_SMALL64-NEXT: b L..BB2_3 438; TLS_MODEL_OPT_LIMIT2_SMALL64-NEXT: L..BB2_2: # %return 439; TLS_MODEL_OPT_LIMIT2_SMALL64-NEXT: ld 4, L..C5(2) # target-flags(ppc-tlsld) @VarTLSLD1 440; TLS_MODEL_OPT_LIMIT2_SMALL64-NEXT: lwzx 3, 3, 4 441; TLS_MODEL_OPT_LIMIT2_SMALL64-NEXT: L..BB2_3: # %return 442; TLS_MODEL_OPT_LIMIT2_SMALL64-NEXT: addi 1, 1, 48 443; TLS_MODEL_OPT_LIMIT2_SMALL64-NEXT: ld 0, 16(1) 444; TLS_MODEL_OPT_LIMIT2_SMALL64-NEXT: mtlr 0 445; TLS_MODEL_OPT_LIMIT2_SMALL64-NEXT: blr 446; 447; TLS_MODEL_OPT_LIMIT2_LARGE64-LABEL: Three_LDs: 448; TLS_MODEL_OPT_LIMIT2_LARGE64: # %bb.0: # %entry 449; TLS_MODEL_OPT_LIMIT2_LARGE64-NEXT: mflr 0 450; TLS_MODEL_OPT_LIMIT2_LARGE64-NEXT: stdu 1, -48(1) 451; TLS_MODEL_OPT_LIMIT2_LARGE64-NEXT: and 6, 3, 4 452; TLS_MODEL_OPT_LIMIT2_LARGE64-NEXT: addis 3, L..C2@u(2) 453; TLS_MODEL_OPT_LIMIT2_LARGE64-NEXT: std 0, 64(1) 454; TLS_MODEL_OPT_LIMIT2_LARGE64-NEXT: ld 3, L..C2@l(3) 455; TLS_MODEL_OPT_LIMIT2_LARGE64-NEXT: bla .__tls_get_mod[PR] 456; TLS_MODEL_OPT_LIMIT2_LARGE64-NEXT: cmpwi 6, -1 457; TLS_MODEL_OPT_LIMIT2_LARGE64-NEXT: bgt 0, L..BB2_2 458; TLS_MODEL_OPT_LIMIT2_LARGE64-NEXT: # %bb.1: # %bb1 459; TLS_MODEL_OPT_LIMIT2_LARGE64-NEXT: addis 4, L..C3@u(2) 460; TLS_MODEL_OPT_LIMIT2_LARGE64-NEXT: addis 5, L..C4@u(2) 461; TLS_MODEL_OPT_LIMIT2_LARGE64-NEXT: ld 4, L..C3@l(4) 462; TLS_MODEL_OPT_LIMIT2_LARGE64-NEXT: ld 5, L..C4@l(5) 463; TLS_MODEL_OPT_LIMIT2_LARGE64-NEXT: lwzx 4, 3, 4 464; TLS_MODEL_OPT_LIMIT2_LARGE64-NEXT: lwzx 3, 3, 5 465; TLS_MODEL_OPT_LIMIT2_LARGE64-NEXT: add 3, 4, 3 466; TLS_MODEL_OPT_LIMIT2_LARGE64-NEXT: b L..BB2_3 467; TLS_MODEL_OPT_LIMIT2_LARGE64-NEXT: L..BB2_2: # %return 468; TLS_MODEL_OPT_LIMIT2_LARGE64-NEXT: addis 4, L..C5@u(2) 469; TLS_MODEL_OPT_LIMIT2_LARGE64-NEXT: ld 4, L..C5@l(4) 470; TLS_MODEL_OPT_LIMIT2_LARGE64-NEXT: lwzx 3, 3, 4 471; TLS_MODEL_OPT_LIMIT2_LARGE64-NEXT: L..BB2_3: # %return 472; TLS_MODEL_OPT_LIMIT2_LARGE64-NEXT: addi 1, 1, 48 473; TLS_MODEL_OPT_LIMIT2_LARGE64-NEXT: ld 0, 16(1) 474; TLS_MODEL_OPT_LIMIT2_LARGE64-NEXT: mtlr 0 475; TLS_MODEL_OPT_LIMIT2_LARGE64-NEXT: blr 476; 477; TLS_MODEL_OPT_LIMIT3_SMALL64-LABEL: Three_LDs: 478; TLS_MODEL_OPT_LIMIT3_SMALL64: # %bb.0: # %entry 479; TLS_MODEL_OPT_LIMIT3_SMALL64-NEXT: and 3, 3, 4 480; TLS_MODEL_OPT_LIMIT3_SMALL64-NEXT: cmpwi 3, -1 481; TLS_MODEL_OPT_LIMIT3_SMALL64-NEXT: bgt 0, L..BB2_2 482; TLS_MODEL_OPT_LIMIT3_SMALL64-NEXT: # %bb.1: # %bb1 483; TLS_MODEL_OPT_LIMIT3_SMALL64-NEXT: ld 3, L..C1(2) # target-flags(ppc-tprel) @VarTLSLD2 484; TLS_MODEL_OPT_LIMIT3_SMALL64-NEXT: ld 4, L..C2(2) # target-flags(ppc-tprel) @VarTLSLD3 485; TLS_MODEL_OPT_LIMIT3_SMALL64-NEXT: lwzx 3, 13, 3 486; TLS_MODEL_OPT_LIMIT3_SMALL64-NEXT: lwzx 4, 13, 4 487; TLS_MODEL_OPT_LIMIT3_SMALL64-NEXT: add 3, 3, 4 488; TLS_MODEL_OPT_LIMIT3_SMALL64-NEXT: blr 489; TLS_MODEL_OPT_LIMIT3_SMALL64-NEXT: L..BB2_2: # %return 490; TLS_MODEL_OPT_LIMIT3_SMALL64-NEXT: ld 3, L..C0(2) # target-flags(ppc-tprel) @VarTLSLD1 491; TLS_MODEL_OPT_LIMIT3_SMALL64-NEXT: lwzx 3, 13, 3 492; TLS_MODEL_OPT_LIMIT3_SMALL64-NEXT: blr 493; 494; TLS_MODEL_OPT_LIMIT3_LARGE64-LABEL: Three_LDs: 495; TLS_MODEL_OPT_LIMIT3_LARGE64: # %bb.0: # %entry 496; TLS_MODEL_OPT_LIMIT3_LARGE64-NEXT: and 3, 3, 4 497; TLS_MODEL_OPT_LIMIT3_LARGE64-NEXT: cmpwi 3, -1 498; TLS_MODEL_OPT_LIMIT3_LARGE64-NEXT: bgt 0, L..BB2_2 499; TLS_MODEL_OPT_LIMIT3_LARGE64-NEXT: # %bb.1: # %bb1 500; TLS_MODEL_OPT_LIMIT3_LARGE64-NEXT: addis 3, L..C1@u(2) 501; TLS_MODEL_OPT_LIMIT3_LARGE64-NEXT: addis 4, L..C2@u(2) 502; TLS_MODEL_OPT_LIMIT3_LARGE64-NEXT: ld 3, L..C1@l(3) 503; TLS_MODEL_OPT_LIMIT3_LARGE64-NEXT: ld 4, L..C2@l(4) 504; TLS_MODEL_OPT_LIMIT3_LARGE64-NEXT: lwzx 3, 13, 3 505; TLS_MODEL_OPT_LIMIT3_LARGE64-NEXT: lwzx 4, 13, 4 506; TLS_MODEL_OPT_LIMIT3_LARGE64-NEXT: add 3, 3, 4 507; TLS_MODEL_OPT_LIMIT3_LARGE64-NEXT: blr 508; TLS_MODEL_OPT_LIMIT3_LARGE64-NEXT: L..BB2_2: # %return 509; TLS_MODEL_OPT_LIMIT3_LARGE64-NEXT: addis 3, L..C0@u(2) 510; TLS_MODEL_OPT_LIMIT3_LARGE64-NEXT: ld 3, L..C0@l(3) 511; TLS_MODEL_OPT_LIMIT3_LARGE64-NEXT: lwzx 3, 13, 3 512; TLS_MODEL_OPT_LIMIT3_LARGE64-NEXT: blr 513entry: 514 %a = icmp slt i32 %P, 0 515 %b = icmp slt i32 %Q, 0 516 %c = and i1 %a, %b 517 %tls1 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @VarTLSLD1) 518 %load1 = load i32, ptr %tls1, align 4 519 br i1 %c, label %bb1, label %return 520 521bb1: 522 %tls2 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @VarTLSLD2) 523 %load2 = load i32, ptr %tls2, align 4 524 %tls3 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @VarTLSLD3) 525 %load3 = load i32, ptr %tls3, align 4 526 %sum = add i32 %load2, %load3 527 ret i32 %sum 528 529return: 530 ret i32 %load1 531} 532 533declare nonnull ptr @llvm.threadlocal.address.p0(ptr nonnull) 534 535; DEFAULT_SMALL64-LABEL: .toc 536; DEFAULT_SMALL64-LABEL: L..C0: 537; DEFAULT_SMALL64-NEXT: .tc _Renamed..5f24__TLSML[TC],_Renamed..5f24__TLSML[TC]@ml 538; DEFAULT_SMALL64-NEXT: .rename _Renamed..5f24__TLSML[TC],"_$TLSML" 539; DEFAULT_SMALL64-LABEL: L..C1: 540; DEFAULT_SMALL64-NEXT: .tc VarTLSLD1[TC],VarTLSLD1[TL]@ld 541; DEFAULT_SMALL64-LABEL: L..C2: 542; DEFAULT_SMALL64-NEXT: .tc VarTLSLD2[TC],VarTLSLD2[UL]@ld 543; DEFAULT_SMALL64-LABEL: L..C3: 544; DEFAULT_SMALL64-NEXT: .tc VarTLSLD3[TC],VarTLSLD3[UL]@ld 545 546; DEFAULT_LARGE64-LABEL: .toc 547; DEFAULT_LARGE64-LABEL: L..C0: 548; DEFAULT_LARGE64-NEXT: .tc _Renamed..5f24__TLSML[TC],_Renamed..5f24__TLSML[TC]@ml 549; DEFAULT_LARGE64-NEXT: .rename _Renamed..5f24__TLSML[TC],"_$TLSML" 550; DEFAULT_LARGE64-LABEL: L..C1: 551; DEFAULT_LARGE64-NEXT: .tc VarTLSLD1[TE],VarTLSLD1[TL]@ld 552; DEFAULT_LARGE64-LABEL: L..C2: 553; DEFAULT_LARGE64-NEXT: .tc VarTLSLD2[TE],VarTLSLD2[UL]@ld 554; DEFAULT_LARGE64-LABEL: L..C3: 555; DEFAULT_LARGE64-NEXT: .tc VarTLSLD3[TE],VarTLSLD3[UL]@ld 556 557; TLS_MODEL_OPT_SMALL64-LABEL: .toc 558; TLS_MODEL_OPT_SMALL64-LABEL: L..C0: 559; TLS_MODEL_OPT_SMALL64-NEXT: .tc VarTLSLD1[TC],VarTLSLD1[TL]@ie 560; TLS_MODEL_OPT_SMALL64-LABEL: L..C1: 561; TLS_MODEL_OPT_SMALL64-NEXT: .tc _Renamed..5f24__TLSML[TC],_Renamed..5f24__TLSML[TC]@ml 562; TLS_MODEL_OPT_SMALL64-NEXT: .rename _Renamed..5f24__TLSML[TC],"_$TLSML" 563; TLS_MODEL_OPT_SMALL64-LABEL: L..C2: 564; TLS_MODEL_OPT_SMALL64-NEXT: .tc .VarTLSLD2[TC],VarTLSLD2[UL]@ld 565; TLS_MODEL_OPT_SMALL64-LABEL: L..C3: 566; TLS_MODEL_OPT_SMALL64-NEXT: .tc .VarTLSLD1[TC],VarTLSLD1[TL]@ld 567; TLS_MODEL_OPT_SMALL64-LABEL: L..C4: 568; TLS_MODEL_OPT_SMALL64-NEXT: .tc .VarTLSLD3[TC],VarTLSLD3[UL]@ld 569 570; TLS_MODEL_OPT_LARGE64-LABEL: .toc 571; TLS_MODEL_OPT_LARGE64-LABEL: L..C0: 572; TLS_MODEL_OPT_LARGE64-NEXT: .tc VarTLSLD1[TE],VarTLSLD1[TL]@ie 573; TLS_MODEL_OPT_LARGE64-LABEL: L..C1: 574; TLS_MODEL_OPT_LARGE64-NEXT: .tc _Renamed..5f24__TLSML[TC],_Renamed..5f24__TLSML[TC]@ml 575; TLS_MODEL_OPT_LARGE64-NEXT: .rename _Renamed..5f24__TLSML[TC],"_$TLSML" 576; TLS_MODEL_OPT_LARGE64-LABEL: L..C2: 577; TLS_MODEL_OPT_LARGE64-NEXT: .tc .VarTLSLD2[TE],VarTLSLD2[UL]@ld 578; TLS_MODEL_OPT_LARGE64-LABEL: L..C3: 579; TLS_MODEL_OPT_LARGE64-NEXT: .tc .VarTLSLD1[TE],VarTLSLD1[TL]@ld 580; TLS_MODEL_OPT_LARGE64-LABEL: L..C4: 581; TLS_MODEL_OPT_LARGE64-NEXT: .tc .VarTLSLD3[TE],VarTLSLD3[UL]@ld 582 583; TLS_MODEL_OPT_LIMIT2_SMALL64-LABEL: .toc 584; TLS_MODEL_OPT_LIMIT2_SMALL64-LABEL: L..C0: 585; TLS_MODEL_OPT_LIMIT2_SMALL64-NEXT: .tc VarTLSLD1[TC],VarTLSLD1[TL]@ie 586; TLS_MODEL_OPT_LIMIT2_SMALL64-LABEL: L..C1: 587; TLS_MODEL_OPT_LIMIT2_SMALL64-NEXT: .tc VarTLSLD2[TC],VarTLSLD2[UL]@ie 588; TLS_MODEL_OPT_LIMIT2_SMALL64-LABEL: L..C2: 589; TLS_MODEL_OPT_LIMIT2_SMALL64-NEXT: .tc _Renamed..5f24__TLSML[TC],_Renamed..5f24__TLSML[TC]@ml 590; TLS_MODEL_OPT_LIMIT2_SMALL64-NEXT: .rename _Renamed..5f24__TLSML[TC],"_$TLSML" 591; TLS_MODEL_OPT_LIMIT2_SMALL64-LABEL: L..C3: 592; TLS_MODEL_OPT_LIMIT2_SMALL64-NEXT: .tc .VarTLSLD2[TC],VarTLSLD2[UL]@ld 593; TLS_MODEL_OPT_LIMIT2_SMALL64-LABEL: L..C4: 594; TLS_MODEL_OPT_LIMIT2_SMALL64-NEXT: .tc .VarTLSLD3[TC],VarTLSLD3[UL]@ld 595; TLS_MODEL_OPT_LIMIT2_SMALL64-LABEL: L..C5: 596; TLS_MODEL_OPT_LIMIT2_SMALL64-NEXT: .tc .VarTLSLD1[TC],VarTLSLD1[TL]@ld 597 598; TLS_MODEL_OPT_LIMIT2_LARGE64-LABEL: .toc 599; TLS_MODEL_OPT_LIMIT2_LARGE64-LABEL: L..C0: 600; TLS_MODEL_OPT_LIMIT2_LARGE64-NEXT: .tc VarTLSLD1[TE],VarTLSLD1[TL]@ie 601; TLS_MODEL_OPT_LIMIT2_LARGE64-LABEL: L..C1: 602; TLS_MODEL_OPT_LIMIT2_LARGE64-NEXT: .tc VarTLSLD2[TE],VarTLSLD2[UL]@ie 603; TLS_MODEL_OPT_LIMIT2_LARGE64-LABEL: L..C2: 604; TLS_MODEL_OPT_LIMIT2_LARGE64-NEXT: .tc _Renamed..5f24__TLSML[TC],_Renamed..5f24__TLSML[TC]@ml 605; TLS_MODEL_OPT_LIMIT2_LARGE64-NEXT: .rename _Renamed..5f24__TLSML[TC],"_$TLSML" 606; TLS_MODEL_OPT_LIMIT2_LARGE64-LABEL: L..C3: 607; TLS_MODEL_OPT_LIMIT2_LARGE64-NEXT: .tc .VarTLSLD2[TE],VarTLSLD2[UL]@ld 608; TLS_MODEL_OPT_LIMIT2_LARGE64-LABEL: L..C4: 609; TLS_MODEL_OPT_LIMIT2_LARGE64-NEXT: .tc .VarTLSLD3[TE],VarTLSLD3[UL]@ld 610; TLS_MODEL_OPT_LIMIT2_LARGE64-LABEL: L..C5: 611; TLS_MODEL_OPT_LIMIT2_LARGE64-NEXT: .tc .VarTLSLD1[TE],VarTLSLD1[TL]@ld 612 613; TLS_MODEL_OPT_LIMIT3_SMALL64-LABEL: .toc 614; TLS_MODEL_OPT_LIMIT3_SMALL64-LABEL: L..C0: 615; TLS_MODEL_OPT_LIMIT3_SMALL64-NEXT: .tc VarTLSLD1[TC],VarTLSLD1[TL]@ie 616; TLS_MODEL_OPT_LIMIT3_SMALL64-LABEL: L..C1: 617; TLS_MODEL_OPT_LIMIT3_SMALL64-NEXT: .tc VarTLSLD2[TC],VarTLSLD2[UL]@ie 618; TLS_MODEL_OPT_LIMIT3_SMALL64-LABEL: L..C2: 619; TLS_MODEL_OPT_LIMIT3_SMALL64-NEXT: .tc VarTLSLD3[TC],VarTLSLD3[UL]@ie 620 621; TLS_MODEL_OPT_LIMIT3_LARGE64-LABEL: .toc 622; TLS_MODEL_OPT_LIMIT3_LARGE64-LABEL: L..C0: 623; TLS_MODEL_OPT_LIMIT3_LARGE64-NEXT: .tc VarTLSLD1[TE],VarTLSLD1[TL]@ie 624; TLS_MODEL_OPT_LIMIT3_LARGE64-LABEL: L..C1: 625; TLS_MODEL_OPT_LIMIT3_LARGE64-NEXT: .tc VarTLSLD2[TE],VarTLSLD2[UL]@ie 626; TLS_MODEL_OPT_LIMIT3_LARGE64-LABEL: L..C2: 627; TLS_MODEL_OPT_LIMIT3_LARGE64-NEXT: .tc VarTLSLD3[TE],VarTLSLD3[UL]@ie 628