brintos

brintos / llvm-project-archived public Read only

0
0
Text · 13.7 KiB · 4be292b Raw
336 lines · plain
1; RUN: llc -verify-machineinstrs -mcpu=pwr7 -mattr=-altivec -mtriple powerpc-ibm-aix-xcoff \2; RUN:     -xcoff-traceback-table=false -data-sections=false -filetype=obj -o %t.o < %s3; RUN: llvm-readobj --relocs --expand-relocs %t.o | FileCheck -D#NFA=2 --check-prefix=RELOC %s4; RUN: llvm-readobj --syms %t.o | FileCheck -D#NFA=2 --check-prefix=SYM %s5; RUN: llvm-objdump -D -r --symbol-description %t.o | FileCheck -D#NFA=2 --check-prefix=DIS %s6 7@ThreadLocalVarInit = thread_local(localexec) global i32 1, align 48@VarInit = global i32 87, align 49@IThreadLocalVarUninit = internal thread_local(localexec) global i32 0, align 410@IThreadLocalVarUninit2 = internal thread_local(localexec) global i32 0, align 411declare nonnull ptr @llvm.threadlocal.address.p0(ptr nonnull)12 13define void @storeITLUninit(i32 noundef signext %x) {14entry:15  %0 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @IThreadLocalVarUninit)16  store i32 %x, ptr %0, align 417  ret void18}19 20define signext i32 @loadTLInit() {21entry:22  %0 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @ThreadLocalVarInit)23  %1 = load i32, ptr %0, align 424  %2 = load i32, ptr @VarInit, align 425  %add = add nsw i32 %2, %126  ret i32 %add27}28 29define signext i32 @loadTLUninit() {30entry:31  %0 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @IThreadLocalVarUninit)32  store i32 1, ptr %0, align 433  %1 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @IThreadLocalVarUninit2)34  %2 = load i32, ptr %1, align 435  %add = add nsw i32 %2, 136  ret i32 %add37}38 39; RELOC:      File:40; RELOC-NEXT: Format: aixcoff-rs600041; RELOC-NEXT: Arch: powerpc42; RELOC-NEXT: AddressSize: 32bit43; RELOC-NEXT: Relocations [44; RELOC:       Virtual Address: 0xA45; RELOC-NEXT:       Symbol: IThreadLocalVarUninit ([[#NFA+23]])46; RELOC-NEXT:       IsSigned: No47; RELOC-NEXT:       FixupBitValue: 048; RELOC-NEXT:       Length: 1649; RELOC-NEXT:       Type: R_TOC (0x3)50; RELOC-NEXT:     }51; RELOC:       Virtual Address: 0x1052; RELOC-NEXT:       Symbol: .__get_tpointer ([[#NFA+1]])53; RELOC-NEXT:       IsSigned: No54; RELOC-NEXT:       FixupBitValue: 055; RELOC-NEXT:       Length: 2656; RELOC-NEXT:       Type: R_RBA (0x18)57; RELOC-NEXT:     }58; RELOC:       Virtual Address: 0x3A59; RELOC-NEXT:       Symbol: ThreadLocalVarInit ([[#NFA+25]])60; RELOC-NEXT:       IsSigned: No61; RELOC-NEXT:       FixupBitValue: 062; RELOC-NEXT:       Length: 1663; RELOC-NEXT:       Type: R_TOC (0x3)64; RELOC-NEXT:     }65; RELOC:       Virtual Address: 0x4066; RELOC-NEXT:       Symbol: .__get_tpointer ([[#NFA+1]])67; RELOC-NEXT:       IsSigned: No68; RELOC-NEXT:       FixupBitValue: 069; RELOC-NEXT:       Length: 2670; RELOC-NEXT:       Type: R_RBA (0x18)71; RELOC-NEXT:     }72; RELOC:       Virtual Address: 0x8E73; RELOC-NEXT:       Symbol: IThreadLocalVarUninit2 ([[#NFA+29]])74; RELOC-NEXT:       IsSigned: No75; RELOC-NEXT:       FixupBitValue: 076; RELOC-NEXT:       Length: 1677; RELOC-NEXT:       Type: R_TOC (0x3)78; RELOC-NEXT:     }79; RELOC:       Virtual Address: 0xD080; RELOC-NEXT:       Symbol: IThreadLocalVarUninit ([[#NFA+35]])81; RELOC-NEXT:       IsSigned: No82; RELOC-NEXT:       FixupBitValue: 083; RELOC-NEXT:       Length: 3284; RELOC-NEXT:       Type: R_TLS_LE (0x23)85; RELOC-NEXT:     }86; RELOC:       Virtual Address: 0xD487; RELOC-NEXT:       Symbol: ThreadLocalVarInit ([[#NFA+33]])88; RELOC-NEXT:       IsSigned: No89; RELOC-NEXT:       FixupBitValue: 090; RELOC-NEXT:       Length: 3291; RELOC-NEXT:       Type: R_TLS_LE (0x23)92; RELOC-NEXT:     }93; RELOC:       Virtual Address: 0xDC94; RELOC-NEXT:       Symbol: IThreadLocalVarUninit2 ([[#NFA+37]])95; RELOC-NEXT:       IsSigned: No96; RELOC-NEXT:       FixupBitValue: 097; RELOC-NEXT:       Length: 3298; RELOC-NEXT:       Type: R_TLS_LE (0x23)99; RELOC-NEXT:     }100 101; SYM:      File:102; SYM-NEXT: Format: aixcoff-rs6000103; SYM-NEXT: Arch: powerpc104; SYM-NEXT: AddressSize: 32bit105; SYM-NEXT: Symbols [106; SYM:     Index: [[#NFA+1]]107; SYM-NEXT:     Name: .__get_tpointer108; SYM-NEXT:     Value (RelocatableAddress): 0x0109; SYM-NEXT:     Section: N_UNDEF110; SYM-NEXT:     Type: 0x0111; SYM-NEXT:     StorageClass: C_EXT (0x2)112; SYM-NEXT:     NumberOfAuxEntries: 1113; SYM-NEXT:     CSECT Auxiliary Entry {114; SYM-NEXT:       Index: [[#NFA+2]]115; SYM-NEXT:       SectionLen: 0116; SYM-NEXT:       ParameterHashIndex: 0x0117; SYM-NEXT:       TypeChkSectNum: 0x0118; SYM-NEXT:       SymbolAlignmentLog2: 0119; SYM-NEXT:       SymbolType: XTY_ER (0x0)120; SYM-NEXT:       StorageMappingClass: XMC_PR (0x0)121; SYM-NEXT:       StabInfoIndex: 0x0122; SYM-NEXT:       StabSectNum: 0x0123; SYM-NEXT:     }124; SYM-NEXT:   }125; SYM:     Index: [[#NFA+23]]126; SYM-NEXT:     Name: IThreadLocalVarUninit127; SYM-NEXT:     Value (RelocatableAddress): 0xD0128; SYM-NEXT:     Section: .data129; SYM-NEXT:     Type: 0x0130; SYM-NEXT:     StorageClass: C_HIDEXT (0x6B)131; SYM-NEXT:     NumberOfAuxEntries: 1132; SYM-NEXT:     CSECT Auxiliary Entry {133; SYM-NEXT:       Index: [[#NFA+24]]134; SYM-NEXT:       SectionLen: 4135; SYM-NEXT:       ParameterHashIndex: 0x0136; SYM-NEXT:       TypeChkSectNum: 0x0137; SYM-NEXT:       SymbolAlignmentLog2: 2138; SYM-NEXT:       SymbolType: XTY_SD (0x1)139; SYM-NEXT:       StorageMappingClass: XMC_TC (0x3)140; SYM-NEXT:       StabInfoIndex: 0x0141; SYM-NEXT:       StabSectNum: 0x0142; SYM-NEXT:     }143; SYM-NEXT:   }144; SYM:     Index: [[#NFA+25]]145; SYM-NEXT:     Name: ThreadLocalVarInit146; SYM-NEXT:     Value (RelocatableAddress): 0xD4147; SYM-NEXT:     Section: .data148; SYM-NEXT:     Type: 0x0149; SYM-NEXT:     StorageClass: C_HIDEXT (0x6B)150; SYM-NEXT:     NumberOfAuxEntries: 1151; SYM-NEXT:     CSECT Auxiliary Entry {152; SYM-NEXT:       Index: [[#NFA+26]]153; SYM-NEXT:       SectionLen: 4154; SYM-NEXT:       ParameterHashIndex: 0x0155; SYM-NEXT:       TypeChkSectNum: 0x0156; SYM-NEXT:       SymbolAlignmentLog2: 2157; SYM-NEXT:       SymbolType: XTY_SD (0x1)158; SYM-NEXT:       StorageMappingClass: XMC_TC (0x3)159; SYM-NEXT:       StabInfoIndex: 0x0160; SYM-NEXT:       StabSectNum: 0x0161; SYM-NEXT:     }162; SYM-NEXT:   }163; SYM:     Index: [[#NFA+29]]164; SYM-NEXT:     Name: IThreadLocalVarUninit2165; SYM-NEXT:     Value (RelocatableAddress): 0xDC166; SYM-NEXT:     Section: .data167; SYM-NEXT:     Type: 0x0168; SYM-NEXT:     StorageClass: C_HIDEXT (0x6B)169; SYM-NEXT:     NumberOfAuxEntries: 1170; SYM-NEXT:     CSECT Auxiliary Entry {171; SYM-NEXT:       Index: [[#NFA+30]]172; SYM-NEXT:       SectionLen: 4173; SYM-NEXT:       ParameterHashIndex: 0x0174; SYM-NEXT:       TypeChkSectNum: 0x0175; SYM-NEXT:       SymbolAlignmentLog2: 2176; SYM-NEXT:       SymbolType: XTY_SD (0x1)177; SYM-NEXT:       StorageMappingClass: XMC_TC (0x3)178; SYM-NEXT:       StabInfoIndex: 0x0179; SYM-NEXT:       StabSectNum: 0x0180; SYM-NEXT:     }181; SYM-NEXT:   }182; SYM:     Index: [[#NFA+33]]183; SYM-NEXT:     Name: ThreadLocalVarInit184; SYM-NEXT:     Value (RelocatableAddress): 0x0185; SYM-NEXT:     Section: .tdata186; SYM-NEXT:     Type: 0x0187; SYM-NEXT:     StorageClass: C_EXT (0x2)188; SYM-NEXT:     NumberOfAuxEntries: 1189; SYM-NEXT:     CSECT Auxiliary Entry {190; SYM-NEXT:       Index: [[#NFA+34]]191; SYM-NEXT:       ContainingCsectSymbolIndex: [[#NFA+31]]192; SYM-NEXT:       ParameterHashIndex: 0x0193; SYM-NEXT:       TypeChkSectNum: 0x0194; SYM-NEXT:       SymbolAlignmentLog2: 0195; SYM-NEXT:       SymbolType: XTY_LD (0x2)196; SYM-NEXT:       StorageMappingClass: XMC_TL (0x14)197; SYM-NEXT:       StabInfoIndex: 0x0198; SYM-NEXT:       StabSectNum: 0x0199; SYM-NEXT:     }200; SYM-NEXT:   }201; SYM:     Index: [[#NFA+35]]202; SYM-NEXT:     Name: IThreadLocalVarUninit203; SYM-NEXT:     Value (RelocatableAddress): 0x4204; SYM-NEXT:     Section: .tbss205; SYM-NEXT:     Type: 0x0206; SYM-NEXT:     StorageClass: C_HIDEXT (0x6B)207; SYM-NEXT:     NumberOfAuxEntries: 1208; SYM-NEXT:     CSECT Auxiliary Entry {209; SYM-NEXT:       Index: [[#NFA+36]]210; SYM-NEXT:       SectionLen: 4211; SYM-NEXT:       ParameterHashIndex: 0x0212; SYM-NEXT:       TypeChkSectNum: 0x0213; SYM-NEXT:       SymbolAlignmentLog2: 2214; SYM-NEXT:       SymbolType: XTY_CM (0x3)215; SYM-NEXT:       StorageMappingClass: XMC_UL (0x15)216; SYM-NEXT:       StabInfoIndex: 0x0217; SYM-NEXT:       StabSectNum: 0x0218; SYM-NEXT:     }219; SYM-NEXT:   }220; SYM:     Index: [[#NFA+37]]221; SYM-NEXT:     Name: IThreadLocalVarUninit2222; SYM-NEXT:     Value (RelocatableAddress): 0x8223; SYM-NEXT:     Section: .tbss224; SYM-NEXT:     Type: 0x0225; SYM-NEXT:     StorageClass: C_HIDEXT (0x6B)226; SYM-NEXT:     NumberOfAuxEntries: 1227; SYM-NEXT:     CSECT Auxiliary Entry {228; SYM-NEXT:       Index: [[#NFA+38]]229; SYM-NEXT:       SectionLen: 4230; SYM-NEXT:       ParameterHashIndex: 0x0231; SYM-NEXT:       TypeChkSectNum: 0x0232; SYM-NEXT:       SymbolAlignmentLog2: 2233; SYM-NEXT:       SymbolType: XTY_CM (0x3)234; SYM-NEXT:       StorageMappingClass: XMC_UL (0x15)235; SYM-NEXT:       StabInfoIndex: 0x0236; SYM-NEXT:       StabSectNum: 0x0237; SYM-NEXT:     }238; SYM-NEXT:   }239 240; DIS:      file format aixcoff-rs6000241; DIS:      Disassembly of section .text:242; DIS:      00000000 (idx: [[#NFA+5]]) .storeITLUninit:243; DIS-NEXT:                                      mflr 0244; DIS-NEXT:                                      stwu 1, -32(1)245; DIS-NEXT: [[#%x, ADDR:]]: {{.*}}               lwz 5, 0(2)246; DIS-NEXT: {{0*}}[[#ADDR + 2]]: R_TOC        (idx: [[#NFA+23]]) IThreadLocalVarUninit[TC]247; DIS-NEXT:                                      mr 4, 3248; DIS-NEXT: [[#%x, ADDR:]]: {{.*}}               bla 0249; DIS-NEXT: {{0*}}[[#ADDR]]: R_RBA (idx: [[#NFA+1]])      .__get_tpointer[PR]250; DIS-NEXT:                                      stw 0, 40(1)251; DIS-NEXT: [[#%x, ADDR:]]: {{.*}}               stwx 4, 3, 5252; DIS-NEXT:                                      addi 1, 1, 32253; DIS-NEXT:                                      lwz 0, 8(1)254; DIS-NEXT:                                      mtlr 0255; DIS-NEXT:                                      blr256; DIS:      00000030 (idx: [[#NFA+7]]) .loadTLInit:257; DIS-NEXT:                                      mflr 0258; DIS-NEXT:                                      stwu 1, -32(1)259; DIS-NEXT: [[#%x, ADDR:]]: {{.*}}               lwz 4, 4(2)260; DIS-NEXT: {{0*}}[[#ADDR + 2]]: R_TOC        (idx: [[#NFA+25]]) ThreadLocalVarInit[TC]261; DIS-NEXT:                                      stw 0, 40(1)262; DIS-NEXT: [[#%x, ADDR:]]: {{.*}}               bla 0263; DIS-NEXT: {{0*}}[[#ADDR]]: R_RBA (idx: [[#NFA+1]])      .__get_tpointer[PR]264; DIS-NEXT: [[#%x, ADDR:]]: {{.*}}               lwzx 3, 3, 4265; DIS-NEXT: [[#%x, ADDR:]]: {{.*}}               lwz 4, 8(2)266; DIS-NEXT: {{0*}}[[#ADDR + 2]]: R_TOC        (idx: [[#NFA+27]]) VarInit[TC]267; DIS-NEXT:                                      lwz 4, 0(4)268; DIS-NEXT:                                      add 3, 4, 3269; DIS-NEXT:                                      addi 1, 1, 32270; DIS-NEXT:                                      lwz 0, 8(1)271; DIS-NEXT:                                      mtlr 0272; DIS-NEXT:                                      blr273; DIS:      00000070 (idx: [[#NFA+9]]) .loadTLUninit:274; DIS-NEXT:                                      mflr 0275; DIS-NEXT:                                      stwu 1, -32(1)276; DIS-NEXT: [[#%x, ADDR:]]: {{.*}}               lwz 4, 0(2)277; DIS-NEXT: {{0*}}[[#ADDR + 2]]: R_TOC        (idx: [[#NFA+23]]) IThreadLocalVarUninit[TC]278; DIS-NEXT:                                      li 5, 1279; DIS-NEXT: [[#%x, ADDR:]]: {{.*}}               bla 0280; DIS-NEXT: {{0*}}[[#ADDR]]: R_RBA (idx: [[#NFA+1]])      .__get_tpointer[PR]281; DIS-NEXT:                                      stw 0, 40(1)282; DIS-NEXT: [[#%x, ADDR:]]: {{.*}}               stwx 5, 3, 4283; DIS-NEXT: [[#%x, ADDR:]]: {{.*}}               lwz 4, 12(2)284; DIS-NEXT: {{0*}}[[#ADDR + 2]]: R_TOC        (idx: [[#NFA+29]]) IThreadLocalVarUninit2[TC]285; DIS-NEXT: [[#%x, ADDR:]]: {{.*}}               lwzx 3, 3, 4286; DIS-NEXT:                                      addi 3, 3, 1287; DIS-NEXT:                                      addi 1, 1, 32288; DIS-NEXT:                                      lwz 0, 8(1)289; DIS-NEXT:                                      mtlr 0290; DIS-NEXT:                                      blr291 292; DIS:      Disassembly of section .data:293; DIS:      000000a8 (idx: [[#NFA+13]]) VarInit:294; DIS-NEXT:       a8: 00 00 00 57295; DIS:      000000ac (idx: [[#NFA+15]]) storeITLUninit[DS]:296; DIS-NEXT:       ac: 00 00 00 00297; DIS-NEXT: 000000ac:  R_POS        (idx: [[#NFA+5]]) .storeITLUninit298; DIS-NEXT:       b0: 00 00 00 d0299; DIS-NEXT: 000000b0:  R_POS        (idx: [[#NFA+21]]) TOC[TC0]300; DIS-NEXT:       b4: 00 00 00 00301; DIS:      000000b8 (idx: [[#NFA+17]]) loadTLInit[DS]:302; DIS-NEXT:       b8: 00 00 00 30303; DIS-NEXT: 000000b8:  R_POS        (idx: [[#NFA+7]]) .loadTLInit304; DIS-NEXT:       bc: 00 00 00 d0305; DIS-NEXT: 000000bc:  R_POS        (idx: [[#NFA+21]]) TOC[TC0]306; DIS-NEXT:       c0: 00 00 00 00307; DIS:      000000c4 (idx: [[#NFA+19]]) loadTLUninit[DS]:308; DIS-NEXT:       c4: 00 00 00 70309; DIS-NEXT: 000000c4:  R_POS        (idx: [[#NFA+9]]) .loadTLUninit310; DIS-NEXT:       c8: 00 00 00 d0311; DIS-NEXT: 000000c8:  R_POS        (idx: [[#NFA+21]]) TOC[TC0]312; DIS-NEXT:       cc: 00 00 00 00313; DIS:      000000d0 (idx: [[#NFA+23]]) IThreadLocalVarUninit[TC]:314; DIS-NEXT:       d0: 00 00 00 04315; DIS-NEXT: 000000d0:  R_TLS_LE     (idx: [[#NFA+35]]) IThreadLocalVarUninit[UL]316; DIS:      000000d4 (idx: [[#NFA+25]]) ThreadLocalVarInit[TC]:317; DIS-NEXT:       d4: 00 00 00 00318; DIS-NEXT: 000000d4:  R_TLS_LE     (idx: [[#NFA+33]]) ThreadLocalVarInit319; DIS:      000000d8 (idx: [[#NFA+27]]) VarInit[TC]:320; DIS-NEXT:       d8: 00 00 00 a8321; DIS-NEXT: 000000d8:  R_POS        (idx: [[#NFA+13]]) VarInit322; DIS:      000000dc (idx: [[#NFA+29]]) IThreadLocalVarUninit2[TC]:323; DIS-NEXT:       dc: 00 00 00 08324; DIS-NEXT: 000000dc:  R_TLS_LE     (idx: [[#NFA+37]]) IThreadLocalVarUninit2[UL]325 326; DIS:      Disassembly of section .tdata:327; DIS:      00000000 (idx: [[#NFA+33]]) ThreadLocalVarInit:328; DIS-NEXT:        0: 00 00 00 01329 330; DIS:      Disassembly of section .tbss:331; DIS:      00000004 (idx: [[#NFA+35]]) IThreadLocalVarUninit[UL]:332; DIS-NEXT: ...333; DIS:      00000008 (idx: [[#NFA+37]]) IThreadLocalVarUninit2[UL]:334; DIS-NEXT: ...335 336