xref: /llvm-project/llvm/test/CodeGen/PowerPC/aix-xcoff-roptr.ll (revision f624372ccb74f455986db799f9368dec36927696)
1; RUN: llc -mtriple powerpc-ibm-aix-xcoff -mxcoff-roptr < %s | FileCheck %s
2; RUN: llc -mtriple powerpc-ibm-aix-xcoff -mxcoff-roptr -filetype=obj -o %t.o < %s
3; RUN: llvm-objdump -t --symbol-description %t.o | FileCheck %s --check-prefix=OBJ
4
5; RUN: not llc -mtriple powerpc-ibm-aix-xcoff -mxcoff-roptr -data-sections=false \
6; RUN: < %s 2>&1 | FileCheck %s --check-prefix=DS_ERR
7
8; DS_ERR: -mxcoff-roptr option must be used with -data-sections
9
10%union.U = type { %"struct.U::A" }
11%"struct.U::A" = type { ptr }
12
13@_ZL1p = internal constant i32 ptrtoint (ptr @_ZL1p to i32), align 4
14; CHECK:         .csect _ZL1p[RO],2
15; CHECK-NEXT:    .lglobl	_ZL1p[RO]
16; CHECK-NEXT:    .align	2
17; CHECK-NEXT:    .vbyte	4, _ZL1p[RO]
18; OBJ-DAG: {{([[:xdigit:]]{8})}} l .text {{([[:xdigit:]]{8})}} (idx: [[#]]) _ZL1p[RO]
19@q = thread_local constant ptr @_ZL1p, align 4
20; CHECK:         .csect q[TL],2
21; CHECK-NEXT:    .globl	q[TL]
22; CHECK-NEXT:    .align	2
23; CHECK-NEXT:    .vbyte	4, _ZL1p[RO]
24; OBJ-DAG: {{([[:xdigit:]]{8})}} g O .tdata {{([[:xdigit:]]{8})}} (idx: [[#]]) q[TL]
25@u = local_unnamed_addr constant [1 x %union.U] [%union.U { %"struct.U::A" { ptr @_ZL1p } }], align 4
26; CHECK:         .csect u[RO],2
27; CHECK-NEXT:    .globl	u[RO]
28; CHECK-NEXT:    .align	2
29; CHECK-NEXT:    .vbyte	4, _ZL1p[RO]
30; OBJ-DAG: {{([[:xdigit:]]{8})}} g .text {{([[:xdigit:]]{8})}} (idx: [[#]]) u[RO]
31