338 lines · plain
1; RUN: llc -verify-machineinstrs -mcpu=pwr4 -mattr=-altivec -mtriple powerpc-ibm-aix-xcoff \2; RUN: -data-sections -xcoff-traceback-table=false < %s | \3; RUN: FileCheck --check-prefixes=CHECK,CHECK32 %s4; RUN: llc -verify-machineinstrs -mcpu=pwr4 -mattr=-altivec -mtriple powerpc64-ibm-aix-xcoff -data-sections < %s | \5; RUN: FileCheck --check-prefixes=CHECK,CHECK64 %s6; RUN: llc -verify-machineinstrs -mcpu=pwr4 -mattr=-altivec -mtriple powerpc-ibm-aix-xcoff \7; RUN: -filetype=obj -data-sections -xcoff-traceback-table=false -o %t.o < %s8; RUN: llvm-objdump -D --symbol-description %t.o | FileCheck -D#NFA=2 --check-prefix=CHECKOBJ %s9; RUN: llvm-readobj -s %t.o | FileCheck --check-prefix=CHECKSYM %s10 11;; Test to see if the default is correct for -data-sections on AIX.12; RUN: llc -verify-machineinstrs -mcpu=pwr4 -mattr=-altivec -mtriple powerpc-ibm-aix-xcoff \13; RUN: -xcoff-traceback-table=false < %s | \14; RUN: FileCheck --check-prefixes=CHECK,CHECK32 %s15; RUN: llc -verify-machineinstrs -mcpu=pwr4 -mattr=-altivec -mtriple powerpc64-ibm-aix-xcoff < %s | \16; RUN: FileCheck --check-prefixes=CHECK,CHECK64 %s17; RUN: llc -verify-machineinstrs -mcpu=pwr4 -mattr=-altivec -mtriple powerpc-ibm-aix-xcoff \18; RUN: -xcoff-traceback-table=false -filetype=obj -o %t.o < %s19; RUN: llvm-objdump -D --symbol-description %t.o | FileCheck -D#NFA=2 --check-prefix=CHECKOBJ %s20; RUN: llvm-readobj -s %t.o | FileCheck --check-prefix=CHECKSYM %s21 22;; Test to see if the default is correct for -data-sections on AIX.23; RUN: llc -verify-machineinstrs -mcpu=pwr4 -mattr=-altivec -mtriple powerpc-ibm-aix-xcoff \24; RUN: -xcoff-traceback-table=false < %s | \25; RUN: FileCheck --check-prefixes=CHECK,CHECK32 %s26; RUN: llc -verify-machineinstrs -mcpu=pwr4 -mattr=-altivec -mtriple powerpc64-ibm-aix-xcoff \27; RUN: -xcoff-traceback-table=false < %s | \28; RUN: FileCheck --check-prefixes=CHECK,CHECK64 %s29; RUN: llc -verify-machineinstrs -mcpu=pwr4 -mattr=-altivec -mtriple powerpc-ibm-aix-xcoff \30; RUN: -xcoff-traceback-table=false -filetype=obj -o %t.o < %s31; RUN: llvm-objdump -D --symbol-description %t.o | FileCheck -D#NFA=2 --check-prefix=CHECKOBJ %s32; RUN: llvm-readobj -s %t.o | FileCheck --check-prefix=CHECKSYM %s33 34@ivar = local_unnamed_addr global i32 35, align 435@const_ivar = constant i32 35, align 436 37@a = common global i32 0, align 438@f = common local_unnamed_addr global i32 0, align 439 40@.str = private unnamed_addr constant [9 x i8] c"abcdefgh\00", align 141@p = global ptr @.str, align 442 43define i8 @foo() {44entry:45 %0 = load ptr, ptr @p, align 446 %1 = load i8, ptr %0, align 147 ret i8 %148}49 50define i32 @bar() {51entry:52 %0 = load i32, ptr @ivar, align 453 %1 = load i32, ptr @const_ivar, align 454 %add = add nsw i32 %0, %155 %2 = load i32, ptr @a, align 456 %add1 = add nsw i32 %add, %257 %3 = load i32, ptr @f, align 458 %add2 = add nsw i32 %add1, %359 ret i32 %add260}61 62 63; CHECK: .csect ivar[RW],264; CHECK-NEXT: .globl ivar[RW]65; CHECK-NEXT: .align 266; CHECK-NEXT: .vbyte 4, 35 # 0x2367; CHECK-NEXT: .csect const_ivar[RO],268; CHECK-NEXT: .globl const_ivar[RO]69; CHECK-NEXT: .align 270; CHECK-NEXT: .vbyte 4, 35 # 0x2371; CHECK-NEXT: .comm a[RW],4,272; CHECK-NEXT: .comm f[RW],4,273; CHECK-NEXT: .csect L...str[RO],274; CHECK-NEXT: .string "abcdefgh"75; CHECK32: .csect p[RW],276; CHECK32-NEXT: .globl p[RW]77; CHECK32-NEXT: .align 278; CHECK32-NEXT: .vbyte 4, L...str[RO]79; CHECK64: .csect p[RW],380; CHECK64-NEXT: .globl p[RW]81; CHECK64-NEXT: .align 382; CHECK64-NEXT: .vbyte 8, L...str[RO]83; CHECK: .toc84; CHECK-NEXT: L..C0:85; CHECK-NEXT: .tc p[TC],p[RW]86; CHECK-NEXT: L..C1:87; CHECK-NEXT: .tc ivar[TC],ivar[RW]88; CHECK-NEXT: L..C2:89; CHECK-NEXT: .tc a[TC],a[RW]90; CHECK-NEXT: L..C3:91; CHECK-NEXT: .tc f[TC],f[RW]92 93; CHECKOBJ: 00000038 (idx: [[#NFA+7]]) const_ivar[RO]:94; CHECKOBJ-NEXT: 38: 00 00 00 23 <unknown>95; CHECKOBJ-EMPTY:96; CHECKOBJ-NEXT: 0000003c (idx: [[#NFA+9]]) L...str[RO]:97; CHECKOBJ-NEXT: 3c: 61 62 63 6498; CHECKOBJ-NEXT: 40: 65 66 67 6899; CHECKOBJ-NEXT: 44: 00 00 00 00 <unknown>100; CHECKOBJ-EMPTY:101; CHECKOBJ-NEXT: Disassembly of section .data:102; CHECKOBJ-EMPTY:103; CHECKOBJ-NEXT: 00000048 (idx: [[#NFA+11]]) ivar[RW]:104; CHECKOBJ-NEXT: 48: 00 00 00 23 <unknown>105; CHECKOBJ-EMPTY:106; CHECKOBJ-NEXT: 0000004c (idx: [[#NFA+13]]) p[RW]:107; CHECKOBJ-NEXT: 4c: 00 00 00 3c <unknown>108; CHECKOBJ-EMPTY:109; CHECKOBJ-NEXT: 00000050 (idx: [[#NFA+15]]) foo[DS]:110; CHECKOBJ-NEXT: 50: 00 00 00 00 <unknown>111; CHECKOBJ-NEXT: 54: 00 00 00 68 <unknown>112; CHECKOBJ-NEXT: 58: 00 00 00 00 <unknown>113; CHECKOBJ-EMPTY:114; CHECKOBJ-NEXT: 0000005c (idx: [[#NFA+17]]) bar[DS]:115; CHECKOBJ-NEXT: 5c: 00 00 00 10 <unknown>116; CHECKOBJ-NEXT: 60: 00 00 00 68 <unknown>117; CHECKOBJ-NEXT: 64: 00 00 00 00 <unknown>118; CHECKOBJ-EMPTY:119; CHECKOBJ-NEXT: 00000068 (idx: [[#NFA+21]]) p[TC]:120; CHECKOBJ-NEXT: 68: 00 00 00 4c <unknown>121; CHECKOBJ-EMPTY:122; CHECKOBJ-NEXT: 0000006c (idx: [[#NFA+23]]) ivar[TC]:123; CHECKOBJ-NEXT: 6c: 00 00 00 48 <unknown>124; CHECKOBJ-EMPTY:125; CHECKOBJ-NEXT: 00000070 (idx: [[#NFA+25]]) a[TC]:126; CHECKOBJ-NEXT: 70: 00 00 00 78 <unknown>127; CHECKOBJ-EMPTY:128; CHECKOBJ-NEXT: 00000074 (idx: [[#NFA+27]]) f[TC]:129; CHECKOBJ-NEXT: 74: 00 00 00 7c <unknown>130; CHECKOBJ-EMPTY:131; CHECKOBJ-NEXT: Disassembly of section .bss:132; CHECKOBJ-EMPTY:133; CHECKOBJ-NEXT: 00000078 (idx: [[#NFA+29]]) a[RW]:134; CHECKOBJ-NEXT: ...135; CHECKOBJ-EMPTY:136; CHECKOBJ-NEXT: 0000007c (idx: [[#NFA+31]]) f[RW]:137; CHECKOBJ-NEXT: ...138 139 140; CHECKSYM: Symbol {141; CHECKSYM: Name: const_ivar142; CHECKSYM: Value (RelocatableAddress): 0x38143; CHECKSYM: Section: .text144; CHECKSYM: Type: 0x0145; CHECKSYM: StorageClass: C_EXT (0x2)146; CHECKSYM: NumberOfAuxEntries: 1147; CHECKSYM: CSECT Auxiliary Entry {148; CHECKSYM: SectionLen: 4149; CHECKSYM: ParameterHashIndex: 0x0150; CHECKSYM: TypeChkSectNum: 0x0151; CHECKSYM: SymbolAlignmentLog2: 2152; CHECKSYM: SymbolType: XTY_SD (0x1)153; CHECKSYM: StorageMappingClass: XMC_RO (0x1)154; CHECKSYM: StabInfoIndex: 0x0155; CHECKSYM: StabSectNum: 0x0156; CHECKSYM: }157; CHECKSYM: }158; CHECKSYM: Symbol {159; CHECKSYM: Name: L...str160; CHECKSYM: Value (RelocatableAddress): 0x3C161; CHECKSYM: Section: .text162; CHECKSYM: Type: 0x0163; CHECKSYM: StorageClass: C_HIDEXT (0x6B)164; CHECKSYM: NumberOfAuxEntries: 1165; CHECKSYM: CSECT Auxiliary Entry {166; CHECKSYM: SectionLen: 9167; CHECKSYM: ParameterHashIndex: 0x0168; CHECKSYM: TypeChkSectNum: 0x0169; CHECKSYM: SymbolAlignmentLog2: 2170; CHECKSYM: SymbolType: XTY_SD (0x1)171; CHECKSYM: StorageMappingClass: XMC_RO (0x1)172; CHECKSYM: StabInfoIndex: 0x0173; CHECKSYM: StabSectNum: 0x0174; CHECKSYM: }175; CHECKSYM: }176; CHECKSYM: Symbol {177; CHECKSYM: Name: ivar178; CHECKSYM: Value (RelocatableAddress): 0x48179; CHECKSYM: Section: .data180; CHECKSYM: Type: 0x0181; CHECKSYM: StorageClass: C_EXT (0x2)182; CHECKSYM: NumberOfAuxEntries: 1183; CHECKSYM: CSECT Auxiliary Entry {184; CHECKSYM: SectionLen: 4185; CHECKSYM: ParameterHashIndex: 0x0186; CHECKSYM: TypeChkSectNum: 0x0187; CHECKSYM: SymbolAlignmentLog2: 2188; CHECKSYM: SymbolType: XTY_SD (0x1)189; CHECKSYM: StorageMappingClass: XMC_RW (0x5)190; CHECKSYM: StabInfoIndex: 0x0191; CHECKSYM: StabSectNum: 0x0192; CHECKSYM: }193; CHECKSYM: }194; CHECKSYM: Symbol {195; CHECKSYM: Name: p196; CHECKSYM: Value (RelocatableAddress): 0x4C197; CHECKSYM: Section: .data198; CHECKSYM: Type: 0x0199; CHECKSYM: StorageClass: C_EXT (0x2)200; CHECKSYM: NumberOfAuxEntries: 1201; CHECKSYM: CSECT Auxiliary Entry {202; CHECKSYM: SectionLen: 4203; CHECKSYM: ParameterHashIndex: 0x0204; CHECKSYM: TypeChkSectNum: 0x0205; CHECKSYM: SymbolAlignmentLog2: 2206; CHECKSYM: SymbolType: XTY_SD (0x1)207; CHECKSYM: StorageMappingClass: XMC_RW (0x5)208; CHECKSYM: StabInfoIndex: 0x0209; CHECKSYM: StabSectNum: 0x0210; CHECKSYM: }211; CHECKSYM: }212; CHECKSYM: Symbol {213; CHECKSYM: Name: TOC214; CHECKSYM: Value (RelocatableAddress): 0x68215; CHECKSYM: Section: .data216; CHECKSYM: Type: 0x0217; CHECKSYM: StorageClass: C_HIDEXT (0x6B)218; CHECKSYM: NumberOfAuxEntries: 1219; CHECKSYM: CSECT Auxiliary Entry {220; CHECKSYM: SectionLen: 0221; CHECKSYM: ParameterHashIndex: 0x0222; CHECKSYM: TypeChkSectNum: 0x0223; CHECKSYM: SymbolAlignmentLog2: 2224; CHECKSYM: SymbolType: XTY_SD (0x1)225; CHECKSYM: StorageMappingClass: XMC_TC0 (0xF)226; CHECKSYM: StabInfoIndex: 0x0227; CHECKSYM: StabSectNum: 0x0228; CHECKSYM: }229; CHECKSYM: }230; CHECKSYM: Symbol {231; CHECKSYM: Name: p232; CHECKSYM: Value (RelocatableAddress): 0x68233; CHECKSYM: Section: .data234; CHECKSYM: Type: 0x0235; CHECKSYM: StorageClass: C_HIDEXT (0x6B)236; CHECKSYM: NumberOfAuxEntries: 1237; CHECKSYM: CSECT Auxiliary Entry {238; CHECKSYM: SectionLen: 4239; CHECKSYM: ParameterHashIndex: 0x0240; CHECKSYM: TypeChkSectNum: 0x0241; CHECKSYM: SymbolAlignmentLog2: 2242; CHECKSYM: SymbolType: XTY_SD (0x1)243; CHECKSYM: StorageMappingClass: XMC_TC (0x3)244; CHECKSYM: StabInfoIndex: 0x0245; CHECKSYM: StabSectNum: 0x0246; CHECKSYM: }247; CHECKSYM: }248; CHECKSYM: Symbol {249; CHECKSYM: Name: ivar250; CHECKSYM: Value (RelocatableAddress): 0x6C251; CHECKSYM: Section: .data252; CHECKSYM: Type: 0x0253; CHECKSYM: StorageClass: C_HIDEXT (0x6B)254; CHECKSYM: NumberOfAuxEntries: 1255; CHECKSYM: CSECT Auxiliary Entry {256; CHECKSYM: SectionLen: 4257; CHECKSYM: ParameterHashIndex: 0x0258; CHECKSYM: TypeChkSectNum: 0x0259; CHECKSYM: SymbolAlignmentLog2: 2260; CHECKSYM: SymbolType: XTY_SD (0x1)261; CHECKSYM: StorageMappingClass: XMC_TC (0x3)262; CHECKSYM: StabInfoIndex: 0x0263; CHECKSYM: StabSectNum: 0x0264; CHECKSYM: }265; CHECKSYM: }266; CHECKSYM: Symbol {267; CHECKSYM: Name: a268; CHECKSYM: Value (RelocatableAddress): 0x70269; CHECKSYM: Section: .data270; CHECKSYM: Type: 0x0271; CHECKSYM: StorageClass: C_HIDEXT (0x6B)272; CHECKSYM: NumberOfAuxEntries: 1273; CHECKSYM: CSECT Auxiliary Entry {274; CHECKSYM: SectionLen: 4275; CHECKSYM: ParameterHashIndex: 0x0276; CHECKSYM: TypeChkSectNum: 0x0277; CHECKSYM: SymbolAlignmentLog2: 2278; CHECKSYM: SymbolType: XTY_SD (0x1)279; CHECKSYM: StorageMappingClass: XMC_TC (0x3)280; CHECKSYM: StabInfoIndex: 0x0281; CHECKSYM: StabSectNum: 0x0282; CHECKSYM: }283; CHECKSYM: }284; CHECKSYM: Symbol {285; CHECKSYM: Name: f286; CHECKSYM: Value (RelocatableAddress): 0x74287; CHECKSYM: Section: .data288; CHECKSYM: Type: 0x0289; CHECKSYM: StorageClass: C_HIDEXT (0x6B)290; CHECKSYM: NumberOfAuxEntries: 1291; CHECKSYM: CSECT Auxiliary Entry {292; CHECKSYM: SectionLen: 4293; CHECKSYM: ParameterHashIndex: 0x0294; CHECKSYM: TypeChkSectNum: 0x0295; CHECKSYM: SymbolAlignmentLog2: 2296; CHECKSYM: SymbolType: XTY_SD (0x1)297; CHECKSYM: StorageMappingClass: XMC_TC (0x3)298; CHECKSYM: StabInfoIndex: 0x0299; CHECKSYM: StabSectNum: 0x0300; CHECKSYM: }301; CHECKSYM: }302; CHECKSYM: Symbol {303; CHECKSYM: Name: a304; CHECKSYM: Value (RelocatableAddress): 0x78305; CHECKSYM: Section: .bss306; CHECKSYM: Type: 0x0307; CHECKSYM: StorageClass: C_EXT (0x2)308; CHECKSYM: NumberOfAuxEntries: 1309; CHECKSYM: CSECT Auxiliary Entry {310; CHECKSYM: SectionLen: 4311; CHECKSYM: ParameterHashIndex: 0x0312; CHECKSYM: TypeChkSectNum: 0x0313; CHECKSYM: SymbolAlignmentLog2: 2314; CHECKSYM: SymbolType: XTY_CM (0x3)315; CHECKSYM: StorageMappingClass: XMC_RW (0x5)316; CHECKSYM: StabInfoIndex: 0x0317; CHECKSYM: StabSectNum: 0x0318; CHECKSYM: }319; CHECKSYM: }320; CHECKSYM: Symbol {321; CHECKSYM: Name: f322; CHECKSYM: Value (RelocatableAddress): 0x7C323; CHECKSYM: Section: .bss324; CHECKSYM: Type: 0x0325; CHECKSYM: StorageClass: C_EXT (0x2)326; CHECKSYM: NumberOfAuxEntries: 1327; CHECKSYM: CSECT Auxiliary Entry {328; CHECKSYM: SectionLen: 4329; CHECKSYM: ParameterHashIndex: 0x0330; CHECKSYM: TypeChkSectNum: 0x0331; CHECKSYM: SymbolAlignmentLog2: 2332; CHECKSYM: SymbolType: XTY_CM (0x3)333; CHECKSYM: StorageMappingClass: XMC_RW (0x5)334; CHECKSYM: StabInfoIndex: 0x0335; CHECKSYM: StabSectNum: 0x0336; CHECKSYM: }337; CHECKSYM: }338