xref: /llvm-project/llvm/test/CodeGen/PowerPC/aix-overflow-toc-data.py (revision 6582509daa9a598fc42c14268035b9a90d82f057)
1*6582509dSZaara Syeda# UNSUPPORTED: expensive_checks, debug
2*6582509dSZaara Syeda
3*6582509dSZaara Syeda# RUN: %python %s > %t.ll
4*6582509dSZaara Syeda# RUN: llc -mtriple powerpc-ibm-aix-xcoff -code-model=small -mcpu=pwr7 -mattr=-altivec -O0 < %t.ll | \
5*6582509dSZaara Syeda# RUN:   FileCheck --check-prefix=ASM32 %s
6*6582509dSZaara Syeda
7*6582509dSZaara Syeda# RUN: llc -mtriple powerpc64-ibm-aix-xcoff -code-model=small -mcpu=pwr7 -mattr=-altivec -O0 < %t.ll | \
8*6582509dSZaara Syeda# RUN:   FileCheck --check-prefix=ASM64 %s
9*6582509dSZaara Syeda
10*6582509dSZaara Syeda# RUN: llc -mtriple powerpc-ibm-aix-xcoff -code-model=small -mcpu=pwr7 -mattr=-altivec -O0 \
11*6582509dSZaara Syeda# RUN:     -filetype=obj -o %t.o < %t.ll
12*6582509dSZaara Syeda# RUN: llvm-objdump --no-print-imm-hex -D -r --symbol-description %t.o | FileCheck -D#NFA=2 --check-prefix=DIS32 %s
13*6582509dSZaara Syeda
14*6582509dSZaara Syeda# RUN: llc -mtriple powerpc64-ibm-aix-xcoff -code-model=small -mcpu=pwr7 -mattr=-altivec -O0 \
15*6582509dSZaara Syeda# RUN:     -filetype=obj -o %t.o < %t.ll
16*6582509dSZaara Syeda# RUN: llvm-objdump --no-print-imm-hex -D -r --symbol-description %t.o | FileCheck -D#NFA=2 --check-prefix=DIS64 %s
17*6582509dSZaara Syeda
18*6582509dSZaara Syedanumentries = 8195
19*6582509dSZaara Syedafor x in range(0, numentries):
20*6582509dSZaara Syeda    print("@a%d = global i32 0, align 4 #0" % (x))
21*6582509dSZaara Syeda
22*6582509dSZaara Syedaprint("define void @foo() {")
23*6582509dSZaara Syedaprint("entry:")
24*6582509dSZaara Syedafor x in range(0, numentries):
25*6582509dSZaara Syeda    print("store i32 1, i32* @a%d, align 4" % (x))
26*6582509dSZaara Syedaprint("ret void")
27*6582509dSZaara Syedaprint("}")
28*6582509dSZaara Syeda
29*6582509dSZaara Syedaprint('attributes #0 = { "toc-data" }')
30*6582509dSZaara Syeda
31*6582509dSZaara Syeda# 32-bit assembly check
32*6582509dSZaara Syeda# ASM32:  la 4, a0[TD](2)
33*6582509dSZaara Syeda# ASM32:  la 4, a1[TD](2)
34*6582509dSZaara Syeda
35*6582509dSZaara Syeda# ASM32:  la 4, a8191[TD](2)
36*6582509dSZaara Syeda# ASM32:  la 4, a8192[TD](2)
37*6582509dSZaara Syeda# ASM32:  la 4, a8193[TD](2)
38*6582509dSZaara Syeda
39*6582509dSZaara Syeda# 64-bit assembly check
40*6582509dSZaara Syeda# ASM64:  la 4, a0[TD](2)
41*6582509dSZaara Syeda# ASM64:  la 4, a1[TD](2)
42*6582509dSZaara Syeda
43*6582509dSZaara Syeda# ASM64:  la 4, a8191[TD](2)
44*6582509dSZaara Syeda# ASM64:  la 4, a8192[TD](2)
45*6582509dSZaara Syeda# ASM64:  la 4, a8193[TD](2)
46*6582509dSZaara Syeda
47*6582509dSZaara Syeda# DIS32:    fffc: 38 82 7f fc   addi 4, 2, 32764
48*6582509dSZaara Syeda# DIS32:      0000fffe:  R_TOC  (idx: [[#NFA+16391]]) a8191[TD]
49*6582509dSZaara Syeda# DIS32:   10004: 38 82 80 00   addi 4, 2, -32768
50*6582509dSZaara Syeda# DIS32:      00010006:  R_TOC  (idx: [[#NFA+16393]]) a8192[TD]
51*6582509dSZaara Syeda# DIS32:   1000c: 38 82 80 04   addi 4, 2, -32764
52*6582509dSZaara Syeda# DIS32:      0001000e:  R_TOC  (idx: [[#NFA+16395]]) a8193[TD]
53*6582509dSZaara Syeda
54*6582509dSZaara Syeda# DIS64:    fffc: 38 82 7f fc   addi 4, 2, 32764
55*6582509dSZaara Syeda# DIS64:      0000fffe:  R_TOC  (idx: [[#NFA+16391]]) a8191[TD]
56*6582509dSZaara Syeda# DIS64:   10004: 38 82 80 00   addi 4, 2, -32768
57*6582509dSZaara Syeda# DIS64:      00010006:  R_TOC  (idx: [[#NFA+16393]]) a8192[TD]
58*6582509dSZaara Syeda# DIS64:   1000c: 38 82 80 04   addi 4, 2, -32764
59*6582509dSZaara Syeda# DIS64:      0001000e:  R_TOC  (idx: [[#NFA+16395]]) a8193[TD]
60