1
1
; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
2
- ; RUN: llc -mtriple powerpc-ibm-aix-xcoff -verify-machineinstrs < %s | FileCheck %s -- check-prefix CHECK
3
- ; RUN: llc -mtriple powerpc64-ibm-aix-xcoff -verify-machineinstrs < %s | FileCheck %s -- check-prefix CHECK64
2
+ ; RUN: llc -mtriple powerpc-ibm-aix-xcoff -verify-machineinstrs < %s | FileCheck %s -DINSTR=lwz -- check-prefix= CHECK
3
+ ; RUN: llc -mtriple powerpc64-ibm-aix-xcoff -verify-machineinstrs < %s | FileCheck %s -DINSTR=ld -- check-prefix=CHECK
4
4
5
5
; RUN: llc -filetype=obj -mtriple powerpc-ibm-aix-xcoff -verify-machineinstrs < %s -o %t32.o
6
6
; RUN: llvm-objdump -t --symbol-description %t32.o | FileCheck %s --check-prefix=OBJ32
@@ -19,24 +19,12 @@ define void @set(i32 noundef %_a) {
19
19
; CHECK-NEXT: la 4, a2[TD](2)
20
20
; CHECK-NEXT: la 5, a1[TD](2)
21
21
; CHECK-NEXT: stw 3, 0(4)
22
- ; CHECK-NEXT: lwz 4, L..C0(2) # @a4
22
+ ; CHECK-NEXT: [[INSTR]] 4, L..C0(2) # @a4
23
23
; CHECK-NEXT: stw 3, 0(5)
24
- ; CHECK-NEXT: lwz 5, L..C1(2) # @a3
24
+ ; CHECK-NEXT: [[INSTR]] 5, L..C1(2) # @a3
25
25
; CHECK-NEXT: stw 3, 0(4)
26
26
; CHECK-NEXT: stw 3, 0(5)
27
27
; CHECK-NEXT: blr
28
- ;
29
- ; CHECK64-LABEL: set:
30
- ; CHECK64: # %bb.0: # %entry
31
- ; CHECK64-NEXT: la 4, a2[TD](2)
32
- ; CHECK64-NEXT: la 5, a1[TD](2)
33
- ; CHECK64-NEXT: stw 3, 0(4)
34
- ; CHECK64-NEXT: ld 4, L..C0(2) # @a4
35
- ; CHECK64-NEXT: stw 3, 0(5)
36
- ; CHECK64-NEXT: ld 5, L..C1(2) # @a3
37
- ; CHECK64-NEXT: stw 3, 0(4)
38
- ; CHECK64-NEXT: stw 3, 0(5)
39
- ; CHECK64-NEXT: blr
40
28
entry:
41
29
store i32 %_a , ptr @a2 , align 4
42
30
store i32 %_a , ptr @a1 , align 4
@@ -51,12 +39,6 @@ define i32 @get1() {
51
39
; CHECK-NEXT: la 3, a2[TD](2)
52
40
; CHECK-NEXT: lwz 3, 0(3)
53
41
; CHECK-NEXT: blr
54
- ;
55
- ; CHECK64-LABEL: get1:
56
- ; CHECK64: # %bb.0: # %entry
57
- ; CHECK64-NEXT: la 3, a2[TD](2)
58
- ; CHECK64-NEXT: lwz 3, 0(3)
59
- ; CHECK64-NEXT: blr
60
42
entry:
61
43
%0 = load i32 , ptr @a2 , align 4
62
44
ret i32 %0
@@ -68,12 +50,6 @@ define i32 @get2() {
68
50
; CHECK-NEXT: la 3, a1[TD](2)
69
51
; CHECK-NEXT: lwz 3, 0(3)
70
52
; CHECK-NEXT: blr
71
- ;
72
- ; CHECK64-LABEL: get2:
73
- ; CHECK64: # %bb.0: # %entry
74
- ; CHECK64-NEXT: la 3, a1[TD](2)
75
- ; CHECK64-NEXT: lwz 3, 0(3)
76
- ; CHECK64-NEXT: blr
77
53
entry:
78
54
%0 = load i32 , ptr @a1 , align 4
79
55
ret i32 %0
@@ -82,15 +58,9 @@ ret i32 %0
82
58
define i32 @get3 () {
83
59
; CHECK-LABEL: get3:
84
60
; CHECK: # %bb.0: # %entry
85
- ; CHECK-NEXT: lwz 3, L..C0(2) # @a4
61
+ ; CHECK-NEXT: [[INSTR]] 3, L..C0(2) # @a4
86
62
; CHECK-NEXT: lwz 3, 0(3)
87
63
; CHECK-NEXT: blr
88
- ;
89
- ; CHECK64-LABEL: get3:
90
- ; CHECK64: # %bb.0: # %entry
91
- ; CHECK64-NEXT: ld 3, L..C0(2) # @a4
92
- ; CHECK64-NEXT: lwz 3, 0(3)
93
- ; CHECK64-NEXT: blr
94
64
entry:
95
65
%0 = load i32 , ptr @a4 , align 4
96
66
ret i32 %0
@@ -99,15 +69,9 @@ ret i32 %0
99
69
define i32 @get4 () {
100
70
; CHECK-LABEL: get4:
101
71
; CHECK: # %bb.0: # %entry
102
- ; CHECK-NEXT: lwz 3, L..C1(2) # @a3
72
+ ; CHECK-NEXT: [[INSTR]] 3, L..C1(2) # @a3
103
73
; CHECK-NEXT: lwz 3, 0(3)
104
74
; CHECK-NEXT: blr
105
- ;
106
- ; CHECK64-LABEL: get4:
107
- ; CHECK64: # %bb.0: # %entry
108
- ; CHECK64-NEXT: ld 3, L..C1(2) # @a3
109
- ; CHECK64-NEXT: lwz 3, 0(3)
110
- ; CHECK64-NEXT: blr
111
75
entry:
112
76
%0 = load i32 , ptr @a3 , align 4
113
77
ret i32 %0
@@ -118,11 +82,6 @@ define nonnull ptr @escape1() {
118
82
; CHECK: # %bb.0: # %entry
119
83
; CHECK-NEXT: la 3, a2[TD](2)
120
84
; CHECK-NEXT: blr
121
- ;
122
- ; CHECK64-LABEL: escape1:
123
- ; CHECK64: # %bb.0: # %entry
124
- ; CHECK64-NEXT: la 3, a2[TD](2)
125
- ; CHECK64-NEXT: blr
126
85
entry:
127
86
ret ptr @a2
128
87
}
@@ -132,60 +91,45 @@ define nonnull ptr @escape2() {
132
91
; CHECK: # %bb.0: # %entry
133
92
; CHECK-NEXT: la 3, a1[TD](2)
134
93
; CHECK-NEXT: blr
135
- ;
136
- ; CHECK64-LABEL: escape2:
137
- ; CHECK64: # %bb.0: # %entry
138
- ; CHECK64-NEXT: la 3, a1[TD](2)
139
- ; CHECK64-NEXT: blr
140
94
entry:
141
95
ret ptr @a1
142
96
}
143
97
144
98
define nonnull ptr @escape3 () {
145
99
; CHECK-LABEL: escape3:
146
100
; CHECK: # %bb.0: # %entry
147
- ; CHECK-NEXT: lwz 3, L..C0(2) # @a4
101
+ ; CHECK-NEXT: [[INSTR]] 3, L..C0(2) # @a4
148
102
; CHECK-NEXT: blr
149
- ;
150
- ; CHECK64-LABEL: escape3:
151
- ; CHECK64: # %bb.0: # %entry
152
- ; CHECK64-NEXT: ld 3, L..C0(2) # @a4
153
- ; CHECK64-NEXT: blr
154
103
entry:
155
104
ret ptr @a4
156
105
}
157
106
158
107
define nonnull ptr @escape4 () {
159
108
; CHECK-LABEL: escape4:
160
109
; CHECK: # %bb.0: # %entry
161
- ; CHECK-NEXT: lwz 3, L..C1(2) # @a3
110
+ ; CHECK-NEXT: [[INSTR]] 3, L..C1(2) # @a3
162
111
; CHECK-NEXT: blr
163
- ;
164
- ; CHECK64-LABEL: escape4:
165
- ; CHECK64: # %bb.0: # %entry
166
- ; CHECK64-NEXT: ld 3, L..C1(2) # @a3
167
- ; CHECK64-NEXT: blr
168
112
entry:
169
113
ret ptr @a3
170
114
}
171
115
172
116
attributes #0 = { "toc-data" }
173
117
174
- ; CHECK,CHECK64 : .comm a3[RW],4,2 # @a3
175
- ; CHECK-NEXT,CHECK64-NEXT : .csect a4[RW],2
176
- ; CHECK-NEXT,CHECK64-NEXT : .globl a4[RW] # @a4
177
- ; CHECK-NEXT,CHECK64-NEXT : .align 2
178
- ; CHECK-NEXT,CHECK64-NEXT : .vbyte 4, 0 # 0x0
179
- ; CHECK-NEXT,CHECK64-NEXT : .toc
180
- ; CHECK-LABEL,CHECK64-LABEL : L..C0:
181
- ; CHECK-NEXT,CHECK64-NEXT : .tc a4[TC],a4[RW]
182
- ; CHECK-LABEL,CHECK64-LABEL : L..C1:
183
- ; CHECK-NEXT,CHECK64-NEXT : .tc a3[TC],a3[RW]
184
- ; CHECK-NEXT,CHECK64-NEXT : .csect a2[TD],2
185
- ; CHECK-NEXT,CHECK64-NEXT : .globl a2[TD] # @a2
186
- ; CHECK-NEXT,CHECK64-NEXT : .align 2
187
- ; CHECK-NEXT,CHECK64-NEXT : .vbyte 4, 0 # 0x0
188
- ; CHECK-NEXT,CHECK64-NEXT : .comm a1[TD],4,2 # @a1
118
+ ; CHECK: .comm a3[RW],4,2 # @a3
119
+ ; CHECK-NEXT: .csect a4[RW],2
120
+ ; CHECK-NEXT: .globl a4[RW] # @a4
121
+ ; CHECK-NEXT: .align 2
122
+ ; CHECK-NEXT: .vbyte 4, 0 # 0x0
123
+ ; CHECK-NEXT: .toc
124
+ ; CHECK-LABEL: L..C0:
125
+ ; CHECK-NEXT: .tc a4[TC],a4[RW]
126
+ ; CHECK-LABEL: L..C1:
127
+ ; CHECK-NEXT: .tc a3[TC],a3[RW]
128
+ ; CHECK-NEXT: .csect a2[TD],2
129
+ ; CHECK-NEXT: .globl a2[TD] # @a2
130
+ ; CHECK-NEXT: .align 2
131
+ ; CHECK-NEXT: .vbyte 4, 0 # 0x0
132
+ ; CHECK-NEXT: .comm a1[TD],4,2 # @a1
189
133
190
134
; OBJ32: {{([[:xdigit:]]{8})}} g O .data 00000004 (idx: {{[0-9]+}}) a4[RW]
191
135
; OBJ32-LABEL: {{([[:xdigit:]]{8})}} l .data 00000000 (idx: {{[0-9]+}}) TOC[TC0]
0 commit comments