76 lines · plain
1; RUN: llc -mtriple powerpc-ibm-aix-xcoff < %s | \2; RUN: FileCheck --check-prefixes=CHECK,32BIT %s3 4; RUN: llc -mtriple powerpc64-ibm-aix-xcoff < %s | \5; RUN: FileCheck --check-prefixes=CHECK,64BIT %s6 7 8define i32 @foo() {9entry:10 ret i32 311}12 13define i32 @main() {14entry:15 %0 = call i32 @foo()16 %1 = call i32 @extern_foo()17 %2 = call i32 @static_foo()18 %3 = add nsw i32 %0, %119 %4 = add nsw i32 %3, %220 ret i32 %421}22 23declare i32 @extern_foo(...)24 25define internal i32 @static_foo() {26entry:27 ret i32 328}29 30; CHECK: .globl foo[DS]31; CHECK: .globl .foo32; 32BIT: .csect foo[DS],233; 32BIT-NEXT: .vbyte 4, .foo34; 32BIT-NEXT: .vbyte 4, TOC[TC0]35; 32BIT-NEXT: .vbyte 4, 036; 64BIT: .csect foo[DS],337; 64BIT-NEXT: .vbyte 8, .foo38; 64BIT-NEXT: .vbyte 8, TOC[TC0]39; 64BIT-NEXT: .vbyte 8, 040; CHECK-NEXT: .csect ..text..[PR],541; CHECK-LABEL: .foo:42 43; CHECK: .globl main[DS]44; CHECK: .globl .main45; 32BIT: .csect main[DS],246; 32BIT-NEXT: .vbyte 4, .main47; 32BIT-NEXT: .vbyte 4, TOC[TC0]48; 32BIT-NEXT: .vbyte 4, 049; 64BIT: .csect main[DS],350; 64BIT-NEXT: .vbyte 8, .main51; 64BIT-NEXT: .vbyte 8, TOC[TC0]52; 64BIT-NEXT: .vbyte 8, 053; CHECK-NEXT: .csect ..text..[PR],554; CHECK-LABEL: .main:55; CHECK: bl .foo56; CHECK: bl .extern_foo57; CHECK: bl .static_foo58 59; CHECK: .lglobl static_foo[DS]60; CHECK: .lglobl .static_foo61; 32BIT: .csect static_foo[DS],262; 32BIT-NEXT: .vbyte 4, .static_foo63; 32BIT-NEXT: .vbyte 4, TOC[TC0]64; 32BIT-NEXT: .vbyte 4, 065; 64BIT: .csect static_foo[DS],366; 64BIT-NEXT: .vbyte 8, .static_foo67; 64BIT-NEXT: .vbyte 8, TOC[TC0]68; 64BIT-NEXT: .vbyte 8, 069; CHECK-NEXT: .csect ..text..[PR],570; CHECK-LABEL: .static_foo:71 72; CHECK-NOT: .csect extern_foo73 74; CHECK: .toc75; CHECK-NOT: .tc76