1# RUN: python %s > %t.ll 2# RUN: llc -mtriple powerpc-ibm-aix-xcoff -code-model=small -mcpu=pwr4 -mattr=-altivec -O0 < %t.ll | \ 3# RUN: FileCheck --check-prefix=ASM32 %s 4 5# RUN: llc -mtriple powerpc64-ibm-aix-xcoff -code-model=small -mcpu=pwr4 -mattr=-altivec -O0 < %t.ll | \ 6# RUN: FileCheck --check-prefix=ASM64 %s 7 8# RUN: llc -mtriple powerpc-ibm-aix-xcoff -code-model=small -mcpu=pwr4 -mattr=-altivec -O0 \ 9# RUN: -filetype=obj -o %t.o < %t.ll 10# RUN: llvm-objdump -D -r --symbol-description %t.o | FileCheck --check-prefix=DIS32 %s 11 12# RUN: not --crash llc -mtriple powerpc64-ibm-aix-xcoff \ 13# RUN: -mcpu=pwr4 -mattr=-altivec -filetype=obj -o %t.o 2>&1 < %t.ll | \ 14# RUN: FileCheck --check-prefix=XCOFF64 %s 15# XCOFF64: LLVM ERROR: 64-bit XCOFF object files are not supported yet. 16 17numentries = 12290 18for x in range(0, numentries): 19 print("@a%d = global i32 0, align 4" % (x)) 20 21print("define void @foo() {") 22print("entry:") 23for x in range(0, numentries): 24 print("store i32 1, i32* @a%d, align 4" % (x)) 25print("ret void") 26print("}") 27 28# 32-bit assembly check 29# ASM32: lwz 3, L..C0(2) 30# ASM32: lwz 3, L..C1(2) 31 32# ASM32: lwz 3, L..C8191(2) 33# ASM32: lwz 3, L..C8192-65536(2) 34# ASM32: lwz 3, L..C8193-65536(2) 35 36# ASM32: lwz 3, L..C12288-65536(2) 37# ASM32: lwz 3, L..C12289-65536(2) 38 39# 64-bit assembly check 40# ASM64: ld 3, L..C0(2) 41# ASM64: ld 3, L..C1(2) 42 43# ASM64: ld 3, L..C4095(2) 44# ASM64: ld 3, L..C4096-65536(2) 45# ASM64: ld 3, L..C4097-65536(2) 46 47# ASM64: ld 3, L..C12287-65536(2) 48# ASM64: ld 3, L..C12288-131072(2) 49# ASM64: ld 3, L..C12289-131072(2) 50 51# DIS32: 0: 80 62 00 00 lwz 3, 0(2) 52# DIS32: 00000002: R_TOC (idx: 24590) a0[TC] 53# DIS32: c: 80 62 00 04 lwz 3, 4(2) 54# DIS32: 0000000e: R_TOC (idx: 24592) a1[TC] 55 56# DIS32: fffc: 80 62 7f fc lwz 3, 32764(2) 57# DIS32: 0000fffe: R_TOC (idx: 40972) a8191[TC] 58# DIS32: 10004: 80 62 80 00 lwz 3, -32768(2) 59# DIS32: 00010006: R_TOC (idx: 40974) a8192[TC] 60# DIS32: 1000c: 80 62 80 04 lwz 3, -32764(2) 61# DIS32: 0001000e: R_TOC (idx: 40976) a8193[TC] 62 63# DIS32: 18004: 80 62 c0 00 lwz 3, -16384(2) 64# DIS32: 00018006: R_TOC (idx: 49166) a12288[TC] 65# DIS32: 1800c: 80 62 c0 04 lwz 3, -16380(2) 66# DIS32: 0001800e: R_TOC (idx: 49168) a12289[TC] 67