260 lines · plain
1; RUN: llc -verify-machineinstrs -mcpu=pwr4 -mattr=-altivec -mtriple powerpc-ibm-aix-xcoff \2; RUN: -xcoff-traceback-table=false < %s | FileCheck %s3; RUN: llc -verify-machineinstrs -mcpu=pwr4 -mattr=-altivec -mtriple powerpc64-ibm-aix-xcoff \4; RUN: -xcoff-traceback-table=false < %s | FileCheck %s5; RUN: llc -verify-machineinstrs -mcpu=pwr4 -mattr=-altivec -mtriple powerpc-ibm-aix-xcoff \6; RUN: -xcoff-traceback-table=false -filetype=obj -o %t.o < %s7; RUN: llvm-objdump -D --symbol-description %t.o | FileCheck --check-prefix=CHECKOBJ %s8; RUN: llvm-readobj -s %t.o | FileCheck --check-prefix=CHECKSYM %s9 10@ext_const = constant i32 1, section ".ext_const_sec", align 411@ext_var = global i32 1, section ".ext_var_sec", align 412@ext_zvar = global i32 0, section ".ext_zvar_sec", align 413 14define dso_local signext i32 @ext_fun() section ".ext_fun_sec" {15entry:16 %0 = load i32, ptr @ext_const, align 417 %1 = load i32, ptr @ext_var, align 418 %add = add nsw i32 %0, %119 %2 = load i32, ptr @ext_zvar, align 420 %add1 = add nsw i32 %add, %221 ret i32 %add122}23 24; CHECK: .globl ext_fun[DS] # -- Begin function ext_fun25; CHECK-NEXT: .globl .ext_fun26; CHECK-NEXT: .align 427; CHECK-NEXT: .csect ext_fun[DS]28; CHECK: .csect .ext_fun_sec[PR],529; CHECK-NEXT: .ext_fun:30; CHECK: .csect .ext_const_sec[RO],231; CHECK-NEXT: .globl ext_const32; CHECK-NEXT: .align 233; CHECK-NEXT: ext_const:34; CHECK-NEXT: .vbyte 4, 1 # 0x135; CHECK-NEXT: .csect .ext_var_sec[RW],236; CHECK-NEXT: .globl ext_var37; CHECK-NEXT: .align 238; CHECK-NEXT: ext_var:39; CHECK-NEXT: .vbyte 4, 1 # 0x140; CHECK-NEXT: .csect .ext_zvar_sec[RW],241; CHECK-NEXT: .globl ext_zvar42; CHECK-NEXT: .align 243; CHECK-NEXT: ext_zvar:44; CHECK-NEXT: .vbyte 4, 0 # 0x045; CHECK-NEXT: .toc46; CHECK-NEXT: L..C0:47; CHECK-NEXT: .tc ext_var[TC],ext_var48; CHECK-NEXT: L..C1:49; CHECK-NEXT: .tc ext_zvar[TC],ext_zvar50 51; CHECKOBJ: 00000000 (idx: [[#INDX:]]) .ext_fun:52; CHECKOBJ-NEXT: 0: 80 62 00 00 lwz 3, 0(2)53; CHECKOBJ-NEXT: 4: 80 82 00 04 lwz 4, 4(2)54; CHECKOBJ-NEXT: 8: 80 63 00 00 lwz 3, 0(3)55; CHECKOBJ-NEXT: c: 80 84 00 00 lwz 4, 0(4)56; CHECKOBJ-NEXT: 10: 7c 63 22 14 add 3, 3, 457; CHECKOBJ-NEXT: 14: 38 63 00 01 addi 3, 3, 158; CHECKOBJ-NEXT: 18: 4e 80 00 20 blr59; CHECKOBJ-EMPTY:60; CHECKOBJ-NEXT: 0000001c (idx: [[#INDX+4]]) ext_const:61; CHECKOBJ-NEXT: 1c: 00 00 00 01 <unknown>62; CHECKOBJ-EMPTY:63; CHECKOBJ-NEXT: Disassembly of section .data:64; CHECKOBJ-EMPTY:65; CHECKOBJ-NEXT: 00000020 (idx: [[#INDX+8]]) ext_var:66; CHECKOBJ-NEXT: 20: 00 00 00 01 <unknown>67; CHECKOBJ-EMPTY:68; CHECKOBJ-NEXT: 00000024 (idx: [[#INDX+12]]) ext_zvar:69; CHECKOBJ-NEXT: 24: 00 00 00 00 <unknown>70; CHECKOBJ-EMPTY:71; CHECKOBJ-NEXT: 00000028 (idx: [[#INDX+14]]) ext_fun[DS]:72; CHECKOBJ-NEXT: 28: 00 00 00 00 <unknown>73; CHECKOBJ-NEXT: 2c: 00 00 00 34 <unknown>74; CHECKOBJ-NEXT: 30: 00 00 00 00 <unknown>75; CHECKOBJ-EMPTY:76; CHECKOBJ-NEXT: 00000034 (idx: [[#INDX+18]]) ext_var[TC]:77; CHECKOBJ-NEXT: 34: 00 00 00 20 <unknown>78; CHECKOBJ-EMPTY:79; CHECKOBJ-NEXT: 00000038 (idx: [[#INDX+20]]) ext_zvar[TC]:80; CHECKOBJ-NEXT: 38: 00 00 00 24 <unknown>81 82; CHECKSYM: Symbol {{[{][[:space:]] *}}Index: [[#INDX:]]{{[[:space:]] *}}Name: .ext_fun_sec83; CHECKSYM-NEXT: Value (RelocatableAddress): 0x084; CHECKSYM-NEXT: Section: .text85; CHECKSYM-NEXT: Type: 0x086; CHECKSYM-NEXT: StorageClass: C_HIDEXT (0x6B)87; CHECKSYM-NEXT: NumberOfAuxEntries: 188; CHECKSYM-NEXT: CSECT Auxiliary Entry {89; CHECKSYM-NEXT: Index: [[#INDX+1]]90; CHECKSYM-NEXT: SectionLen: 2891; CHECKSYM-NEXT: ParameterHashIndex: 0x092; CHECKSYM-NEXT: TypeChkSectNum: 0x093; CHECKSYM-NEXT: SymbolAlignmentLog2: 594; CHECKSYM-NEXT: SymbolType: XTY_SD (0x1)95; CHECKSYM-NEXT: StorageMappingClass: XMC_PR (0x0)96; CHECKSYM-NEXT: StabInfoIndex: 0x097; CHECKSYM-NEXT: StabSectNum: 0x098; CHECKSYM-NEXT: }99; CHECKSYM-NEXT: }100; CHECKSYM-NEXT: Symbol {101; CHECKSYM-NEXT: Index: [[#INDX+2]]102; CHECKSYM-NEXT: Name: .ext_fun103; CHECKSYM-NEXT: Value (RelocatableAddress): 0x0104; CHECKSYM-NEXT: Section: .text105; CHECKSYM-NEXT: Type: 0x0106; CHECKSYM-NEXT: StorageClass: C_EXT (0x2)107; CHECKSYM-NEXT: NumberOfAuxEntries: 1108; CHECKSYM-NEXT: CSECT Auxiliary Entry {109; CHECKSYM-NEXT: Index: [[#INDX+3]]110; CHECKSYM-NEXT: ContainingCsectSymbolIndex: [[#INDX]]111; CHECKSYM-NEXT: ParameterHashIndex: 0x0112; CHECKSYM-NEXT: TypeChkSectNum: 0x0113; CHECKSYM-NEXT: SymbolAlignmentLog2: 0114; CHECKSYM-NEXT: SymbolType: XTY_LD (0x2)115; CHECKSYM-NEXT: StorageMappingClass: XMC_PR (0x0)116; CHECKSYM-NEXT: StabInfoIndex: 0x0117; CHECKSYM-NEXT: StabSectNum: 0x0118; CHECKSYM-NEXT: }119; CHECKSYM-NEXT: }120; CHECKSYM-NEXT: Symbol {121; CHECKSYM-NEXT: Index: [[#INDX+4]]122; CHECKSYM-NEXT: Name: .ext_const_sec123; CHECKSYM-NEXT: Value (RelocatableAddress): 0x1C124; CHECKSYM-NEXT: Section: .text125; CHECKSYM-NEXT: Type: 0x0126; CHECKSYM-NEXT: StorageClass: C_HIDEXT (0x6B)127; CHECKSYM-NEXT: NumberOfAuxEntries: 1128; CHECKSYM-NEXT: CSECT Auxiliary Entry {129; CHECKSYM-NEXT: Index: [[#INDX+5]]130; CHECKSYM-NEXT: SectionLen: 4131; CHECKSYM-NEXT: ParameterHashIndex: 0x0132; CHECKSYM-NEXT: TypeChkSectNum: 0x0133; CHECKSYM-NEXT: SymbolAlignmentLog2: 2134; CHECKSYM-NEXT: SymbolType: XTY_SD (0x1)135; CHECKSYM-NEXT: StorageMappingClass: XMC_RO (0x1)136; CHECKSYM-NEXT: StabInfoIndex: 0x0137; CHECKSYM-NEXT: StabSectNum: 0x0138; CHECKSYM-NEXT: }139; CHECKSYM-NEXT: }140; CHECKSYM-NEXT: Symbol {141; CHECKSYM-NEXT: Index: [[#INDX+6]]142; CHECKSYM-NEXT: Name: ext_const143; CHECKSYM-NEXT: Value (RelocatableAddress): 0x1C144; CHECKSYM-NEXT: Section: .text145; CHECKSYM-NEXT: Type: 0x0146; CHECKSYM-NEXT: StorageClass: C_EXT (0x2)147; CHECKSYM-NEXT: NumberOfAuxEntries: 1148; CHECKSYM-NEXT: CSECT Auxiliary Entry {149; CHECKSYM-NEXT: Index: [[#INDX+7]]150; CHECKSYM-NEXT: ContainingCsectSymbolIndex: [[#INDX+4]]151; CHECKSYM-NEXT: ParameterHashIndex: 0x0152; CHECKSYM-NEXT: TypeChkSectNum: 0x0153; CHECKSYM-NEXT: SymbolAlignmentLog2: 0154; CHECKSYM-NEXT: SymbolType: XTY_LD (0x2)155; CHECKSYM-NEXT: StorageMappingClass: XMC_RO (0x1)156; CHECKSYM-NEXT: StabInfoIndex: 0x0157; CHECKSYM-NEXT: StabSectNum: 0x0158; CHECKSYM-NEXT: }159; CHECKSYM-NEXT: }160; CHECKSYM-NEXT: Symbol {161; CHECKSYM-NEXT: Index: [[#INDX+8]]162; CHECKSYM-NEXT: Name: .ext_var_sec163; CHECKSYM-NEXT: Value (RelocatableAddress): 0x20164; CHECKSYM-NEXT: Section: .data165; CHECKSYM-NEXT: Type: 0x0166; CHECKSYM-NEXT: StorageClass: C_HIDEXT (0x6B)167; CHECKSYM-NEXT: NumberOfAuxEntries: 1168; CHECKSYM-NEXT: CSECT Auxiliary Entry {169; CHECKSYM-NEXT: Index: [[#INDX+9]]170; CHECKSYM-NEXT: SectionLen: 4171; CHECKSYM-NEXT: ParameterHashIndex: 0x0172; CHECKSYM-NEXT: TypeChkSectNum: 0x0173; CHECKSYM-NEXT: SymbolAlignmentLog2: 2174; CHECKSYM-NEXT: SymbolType: XTY_SD (0x1)175; CHECKSYM-NEXT: StorageMappingClass: XMC_RW (0x5)176; CHECKSYM-NEXT: StabInfoIndex: 0x0177; CHECKSYM-NEXT: StabSectNum: 0x0178; CHECKSYM-NEXT: }179; CHECKSYM-NEXT: }180; CHECKSYM-NEXT: Symbol {181; CHECKSYM-NEXT: Index: [[#INDX+10]]182; CHECKSYM-NEXT: Name: ext_var183; CHECKSYM-NEXT: Value (RelocatableAddress): 0x20184; CHECKSYM-NEXT: Section: .data185; CHECKSYM-NEXT: Type: 0x0186; CHECKSYM-NEXT: StorageClass: C_EXT (0x2)187; CHECKSYM-NEXT: NumberOfAuxEntries: 1188; CHECKSYM-NEXT: CSECT Auxiliary Entry {189; CHECKSYM-NEXT: Index: [[#INDX+11]]190; CHECKSYM-NEXT: ContainingCsectSymbolIndex: [[#INDX+8]]191; CHECKSYM-NEXT: ParameterHashIndex: 0x0192; CHECKSYM-NEXT: TypeChkSectNum: 0x0193; CHECKSYM-NEXT: SymbolAlignmentLog2: 0194; CHECKSYM-NEXT: SymbolType: XTY_LD (0x2)195; CHECKSYM-NEXT: StorageMappingClass: XMC_RW (0x5)196; CHECKSYM-NEXT: StabInfoIndex: 0x0197; CHECKSYM-NEXT: StabSectNum: 0x0198; CHECKSYM-NEXT: }199; CHECKSYM-NEXT: }200; CHECKSYM-NEXT: Symbol {201; CHECKSYM-NEXT: Index: [[#INDX+12]]202; CHECKSYM-NEXT: Name: .ext_zvar_sec203; CHECKSYM-NEXT: Value (RelocatableAddress): 0x24204; CHECKSYM-NEXT: Section: .data205; CHECKSYM-NEXT: Type: 0x0206; CHECKSYM-NEXT: StorageClass: C_HIDEXT (0x6B)207; CHECKSYM-NEXT: NumberOfAuxEntries: 1208; CHECKSYM-NEXT: CSECT Auxiliary Entry {209; CHECKSYM-NEXT: Index: [[#INDX+13]]210; CHECKSYM-NEXT: SectionLen: 4211; CHECKSYM-NEXT: ParameterHashIndex: 0x0212; CHECKSYM-NEXT: TypeChkSectNum: 0x0213; CHECKSYM-NEXT: SymbolAlignmentLog2: 2214; CHECKSYM-NEXT: SymbolType: XTY_SD (0x1)215; CHECKSYM-NEXT: StorageMappingClass: XMC_RW (0x5)216; CHECKSYM-NEXT: StabInfoIndex: 0x0217; CHECKSYM-NEXT: StabSectNum: 0x0218; CHECKSYM-NEXT: }219; CHECKSYM-NEXT: }220; CHECKSYM-NEXT: Symbol {221; CHECKSYM-NEXT: Index: [[#INDX+14]]222; CHECKSYM-NEXT: Name: ext_zvar223; CHECKSYM-NEXT: Value (RelocatableAddress): 0x24224; CHECKSYM-NEXT: Section: .data225; CHECKSYM-NEXT: Type: 0x0226; CHECKSYM-NEXT: StorageClass: C_EXT (0x2)227; CHECKSYM-NEXT: NumberOfAuxEntries: 1228; CHECKSYM-NEXT: CSECT Auxiliary Entry {229; CHECKSYM-NEXT: Index: [[#INDX+15]]230; CHECKSYM-NEXT: ContainingCsectSymbolIndex: [[#INDX+12]]231; CHECKSYM-NEXT: ParameterHashIndex: 0x0232; CHECKSYM-NEXT: TypeChkSectNum: 0x0233; CHECKSYM-NEXT: SymbolAlignmentLog2: 0234; CHECKSYM-NEXT: SymbolType: XTY_LD (0x2)235; CHECKSYM-NEXT: StorageMappingClass: XMC_RW (0x5)236; CHECKSYM-NEXT: StabInfoIndex: 0x0237; CHECKSYM-NEXT: StabSectNum: 0x0238; CHECKSYM-NEXT: }239; CHECKSYM-NEXT: }240; CHECKSYM-NEXT: Symbol {241; CHECKSYM-NEXT: Index: [[#INDX+16]]242; CHECKSYM-NEXT: Name: ext_fun243; CHECKSYM-NEXT: Value (RelocatableAddress): 0x28244; CHECKSYM-NEXT: Section: .data245; CHECKSYM-NEXT: Type: 0x0246; CHECKSYM-NEXT: StorageClass: C_EXT (0x2)247; CHECKSYM-NEXT: NumberOfAuxEntries: 1248; CHECKSYM-NEXT: CSECT Auxiliary Entry {249; CHECKSYM-NEXT: Index: [[#INDX+17]]250; CHECKSYM-NEXT: SectionLen: 12251; CHECKSYM-NEXT: ParameterHashIndex: 0x0252; CHECKSYM-NEXT: TypeChkSectNum: 0x0253; CHECKSYM-NEXT: SymbolAlignmentLog2: 2254; CHECKSYM-NEXT: SymbolType: XTY_SD (0x1)255; CHECKSYM-NEXT: StorageMappingClass: XMC_DS (0xA)256; CHECKSYM-NEXT: StabInfoIndex: 0x0257; CHECKSYM-NEXT: StabSectNum: 0x0258; CHECKSYM-NEXT: }259; CHECKSYM-NEXT: }260