Skip to content

Commit 19b43e1

Browse files
committed
[PowerPC][NFC] Pre-commit test case to prepare for patch to merge internal and private global data
1 parent 1fb1fcf commit 19b43e1

File tree

1 file changed

+108
-0
lines changed

1 file changed

+108
-0
lines changed
Lines changed: 108 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,108 @@
1+
; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 5
2+
; RUN: llc -verify-machineinstrs -mtriple powerpc64-ibm-aix-xcoff -mcpu=pwr8 \
3+
; RUN: -ppc-asm-full-reg-names < %s | FileCheck %s \
4+
; RUN: --check-prefix=AIX64
5+
; RUN: llc -verify-machineinstrs -mtriple powerpc-ibm-aix-xcoff -mcpu=pwr8 \
6+
; RUN: -ppc-asm-full-reg-names < %s | FileCheck %s \
7+
; RUN: --check-prefix=AIX32
8+
; RUN: llc -verify-machineinstrs -mtriple powerpc64le-unknown-linux -mcpu=pwr8 \
9+
; RUN: -ppc-asm-full-reg-names < %s | FileCheck %s \
10+
; RUN: --check-prefix=LINUX64LE
11+
; RUN: llc -verify-machineinstrs -mtriple powerpc64-unknown-linux -mcpu=pwr8 \
12+
; RUN: -ppc-asm-full-reg-names < %s | FileCheck %s \
13+
; RUN: --check-prefix=LINUX64BE
14+
15+
@.str = private unnamed_addr constant [15 x i8] c"Private global\00", align 1
16+
@str = internal constant [16 x i8] c"Internal global\00", align 1
17+
18+
declare noundef signext i32 @puts(ptr nocapture noundef readonly)
19+
20+
define dso_local void @print_func() {
21+
; AIX64-LABEL: print_func:
22+
; AIX64: # %bb.0: # %entry
23+
; AIX64-NEXT: mflr r0
24+
; AIX64-NEXT: stdu r1, -128(r1)
25+
; AIX64-NEXT: std r0, 144(r1)
26+
; AIX64-NEXT: std r31, 120(r1) # 8-byte Folded Spill
27+
; AIX64-NEXT: ld r31, L..C0(r2) # @__ModuleStringPool
28+
; AIX64-NEXT: mr r3, r31
29+
; AIX64-NEXT: bl .puts[PR]
30+
; AIX64-NEXT: nop
31+
; AIX64-NEXT: addi r3, r31, 15
32+
; AIX64-NEXT: bl .puts[PR]
33+
; AIX64-NEXT: nop
34+
; AIX64-NEXT: ld r31, 120(r1) # 8-byte Folded Reload
35+
; AIX64-NEXT: addi r1, r1, 128
36+
; AIX64-NEXT: ld r0, 16(r1)
37+
; AIX64-NEXT: mtlr r0
38+
; AIX64-NEXT: blr
39+
;
40+
; AIX32-LABEL: print_func:
41+
; AIX32: # %bb.0: # %entry
42+
; AIX32-NEXT: mflr r0
43+
; AIX32-NEXT: stwu r1, -64(r1)
44+
; AIX32-NEXT: stw r0, 72(r1)
45+
; AIX32-NEXT: stw r31, 60(r1) # 4-byte Folded Spill
46+
; AIX32-NEXT: lwz r31, L..C0(r2) # @__ModuleStringPool
47+
; AIX32-NEXT: mr r3, r31
48+
; AIX32-NEXT: bl .puts[PR]
49+
; AIX32-NEXT: nop
50+
; AIX32-NEXT: addi r3, r31, 15
51+
; AIX32-NEXT: bl .puts[PR]
52+
; AIX32-NEXT: nop
53+
; AIX32-NEXT: lwz r31, 60(r1) # 4-byte Folded Reload
54+
; AIX32-NEXT: addi r1, r1, 64
55+
; AIX32-NEXT: lwz r0, 8(r1)
56+
; AIX32-NEXT: mtlr r0
57+
; AIX32-NEXT: blr
58+
;
59+
; LINUX64LE-LABEL: print_func:
60+
; LINUX64LE: # %bb.0: # %entry
61+
; LINUX64LE-NEXT: mflr r0
62+
; LINUX64LE-NEXT: .cfi_def_cfa_offset 48
63+
; LINUX64LE-NEXT: .cfi_offset lr, 16
64+
; LINUX64LE-NEXT: .cfi_offset r30, -16
65+
; LINUX64LE-NEXT: std r30, -16(r1) # 8-byte Folded Spill
66+
; LINUX64LE-NEXT: stdu r1, -48(r1)
67+
; LINUX64LE-NEXT: addis r3, r2, .L__ModuleStringPool@toc@ha
68+
; LINUX64LE-NEXT: std r0, 64(r1)
69+
; LINUX64LE-NEXT: addi r30, r3, .L__ModuleStringPool@toc@l
70+
; LINUX64LE-NEXT: mr r3, r30
71+
; LINUX64LE-NEXT: bl puts
72+
; LINUX64LE-NEXT: nop
73+
; LINUX64LE-NEXT: addi r3, r30, 15
74+
; LINUX64LE-NEXT: bl puts
75+
; LINUX64LE-NEXT: nop
76+
; LINUX64LE-NEXT: addi r1, r1, 48
77+
; LINUX64LE-NEXT: ld r0, 16(r1)
78+
; LINUX64LE-NEXT: ld r30, -16(r1) # 8-byte Folded Reload
79+
; LINUX64LE-NEXT: mtlr r0
80+
; LINUX64LE-NEXT: blr
81+
;
82+
; LINUX64BE-LABEL: print_func:
83+
; LINUX64BE: # %bb.0: # %entry
84+
; LINUX64BE-NEXT: mflr r0
85+
; LINUX64BE-NEXT: stdu r1, -128(r1)
86+
; LINUX64BE-NEXT: std r0, 144(r1)
87+
; LINUX64BE-NEXT: .cfi_def_cfa_offset 128
88+
; LINUX64BE-NEXT: .cfi_offset lr, 16
89+
; LINUX64BE-NEXT: .cfi_offset r30, -16
90+
; LINUX64BE-NEXT: addis r3, r2, .L__ModuleStringPool@toc@ha
91+
; LINUX64BE-NEXT: std r30, 112(r1) # 8-byte Folded Spill
92+
; LINUX64BE-NEXT: addi r30, r3, .L__ModuleStringPool@toc@l
93+
; LINUX64BE-NEXT: mr r3, r30
94+
; LINUX64BE-NEXT: bl puts
95+
; LINUX64BE-NEXT: nop
96+
; LINUX64BE-NEXT: addi r3, r30, 15
97+
; LINUX64BE-NEXT: bl puts
98+
; LINUX64BE-NEXT: nop
99+
; LINUX64BE-NEXT: ld r30, 112(r1) # 8-byte Folded Reload
100+
; LINUX64BE-NEXT: addi r1, r1, 128
101+
; LINUX64BE-NEXT: ld r0, 16(r1)
102+
; LINUX64BE-NEXT: mtlr r0
103+
; LINUX64BE-NEXT: blr
104+
entry:
105+
%call = tail call signext i32 @puts(ptr noundef nonnull dereferenceable(1) @.str)
106+
%call1 = tail call signext i32 @puts(ptr noundef nonnull dereferenceable(1) @str)
107+
ret void
108+
}

0 commit comments

Comments
 (0)