aboutsummaryrefslogtreecommitdiff
path: root/llvm/test/CodeGen/PowerPC/aix-ref-metadata.ll
blob: 7dc9466a7ba9b27090eab4b44c0ee924073b7d5d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
; RUN: llc -verify-machineinstrs -mtriple powerpc-ibm-aix-xcoff < %s | FileCheck %s
; RUN: llc -data-sections=false -verify-machineinstrs -mtriple powerpc-ibm-aix-xcoff < %s | FileCheck -check-prefix=NODATA %s

; RUN: llc -verify-machineinstrs -mtriple powerpc-ibm-aix-xcoff -filetype=obj -o %t.o < %s
; RUN: llvm-objdump -D -r --symbol-description %t.o | FileCheck -check-prefix=OBJ %s

; RUN: llc -data-sections=false -verify-machineinstrs -mtriple powerpc-ibm-aix-xcoff -filetype=obj -o %t.o < %s
; RUN: llvm-objdump -D -r --symbol-description %t.o | FileCheck -check-prefix=OBJ-NODATA %s

@a = global i32 1
@b = global i32 2
@c = global i32 3, section "custom_section_c"
@d = global i32 4, !implicit.ref !0
@e = constant i32 5, !implicit.ref !1, !implicit.ref!2
@f = global i32 6, section "custom_section_f", !implicit.ref !1


!0 = !{ptr @a}
!1 = !{ptr @b}
!2 = !{ptr @c}

; CHECK: .csect d[RW]
; CHECK: .ref a[RW]

; CHECK: .csect e[RO]
; CHECK: .ref b[RW]
; CHECK: .ref c

; CHECK: .csect custom_section_f[RW]
; CHECK: .ref b[RW]

; NODATA:      .csect .data[RW]
; NODATA-NOT:  .csect
; NODATA:      .globl a
; NODATA-NOT:  .csect
; NODATA:      .globl b
; NODATA:      .csect custom_section_c[RW]
; NODATA:      .globl c
; NODATA:      .csect .data[RW]
; NODATA:      .ref a
; NODATA:      .globl d
; NODATA:      .csect .rodata[RO]
; NODATA:      .ref b
; NODATA:      .ref c
; NODATA:      .globl e
; NODATA:      .csect custom_section_f[RW]
; NODATA:      .ref b
; NODATA:      .globl f

; OBJ: Disassembly of section .text:

; OBJ:   e[RO]:
; OBJ:     R_REF {{.*}} b[RW]
; OBJ:     R_REF {{.*}} c

; OBJ: Disassembly of section .data:
; OBJ:   a[RW]:
; OBJ:   b[RW]:
; OBJ:   c:
; OBJ:   d[RW]:
; OBJ:     R_REF {{.*}} a[RW]
; OBJ:   f:
; OBJ:     R_REF {{.*}} b[RW]

; OBJ-NODATA: Disassembly of section .text:
; OBJ-NODATA:   e:
; OBJ-NODATA:     R_REF {{.*}} b
; OBJ-NODATA:     R_REF {{.*}} c

; OBJ-NODATA: Disassembly of section .data:
; OBJ-NODATA:   a:
; OBJ-NODATA:     R_REF {{.*}} a
; OBJ-NODATA:   b:
; OBJ-NODATA:   d:
; OBJ-NODATA:   c:
; OBJ-NODATA:   f:
; OBJ-NODATA:     R_REF {{.*}} b