]>
Commit | Line | Data |
---|---|---|
213516ef | 1 | # Copyright 2021-2023 Free Software Foundation, Inc. |
82d9b280 WS |
2 | |
3 | # This program is free software; you can redistribute it and/or modify | |
4 | # it under the terms of the GNU General Public License as published by | |
5 | # the Free Software Foundation; either version 3 of the License, or | |
6 | # (at your option) any later version. | |
7 | # | |
8 | # This program is distributed in the hope that it will be useful, | |
9 | # but WITHOUT ANY WARRANTY; without even the implied warranty of | |
10 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
11 | # GNU General Public License for more details. | |
12 | # | |
13 | # You should have received a copy of the GNU General Public License | |
14 | # along with this program. If not, see <http://www.gnu.org/licenses/>. | |
15 | ||
16 | # This file is part of the gdb testsuite. | |
17 | ||
18 | # Test PowerPC instructions disassembly of power10 instructions. | |
19 | ||
20 | standard_testfile .s | |
21 | set objfile [standard_output_file ${testfile}.o] | |
22 | ||
75b6f386 | 23 | if {![istarget "powerpc*-*-*"]} { |
82d9b280 WS |
24 | verbose "Skipping PowerPC instructions disassembly." |
25 | return | |
26 | } | |
27 | ||
28 | if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${objfile}" object {debug}] != "" } { | |
29 | untested "PowerPC instructions disassembly" | |
30 | return -1 | |
31 | } | |
32 | ||
33 | clean_restart ${objfile} | |
34 | ||
35 | # Disassemble the function. | |
36 | set func "" | |
37 | ||
38 | gdb_test "set disassembler-options power10" | |
39 | set test "disass func" | |
40 | gdb_test_multiple $test $test { | |
41 | -re "\r\nDump of assembler code for function func:(\r\n.*\r\n)End of assembler dump.\r\n$gdb_prompt $" { | |
42 | set func $expect_out(1,string) | |
43 | pass $test | |
44 | } | |
45 | } | |
46 | ||
47 | proc instr_to_patt {instr} { | |
48 | global decimal hex | |
49 | # 0x0000000000000018 <+24>: stxvd2x vs43,r4,r5 | |
50 | return "\[ \t\]*$hex <\\+$decimal>:\[ \t\]*[string_to_regexp $instr]" | |
51 | } | |
52 | ||
53 | proc func_check {instr} { | |
54 | global func | |
55 | ||
56 | set test "found: $instr" | |
57 | if [regexp -nocase -line [instr_to_patt $instr] $func] { | |
58 | pass $test | |
59 | } else { | |
60 | fail $test | |
61 | } | |
62 | } | |
63 | ||
64 | func_check "brd r0,r1" | |
65 | func_check "brh r0,r1" | |
66 | func_check "brw r0,r1" | |
67 | func_check "cfuged r0,r1,r2" | |
68 | func_check "cntlzdm r0,r1,r2" | |
69 | func_check "cnttzdm r0,r1,r2" | |
70 | func_check "dcffixqq f28,v0" | |
71 | func_check "dctfixqq v0,f26" | |
72 | func_check "lxvkq vs0,1" | |
73 | func_check "lxvkq vs0,16" | |
74 | func_check "lxvkq vs0,17" | |
75 | func_check "lxvkq vs0,18" | |
76 | func_check "lxvkq vs0,19" | |
77 | func_check "lxvkq vs0,2" | |
78 | func_check "lxvkq vs0,20" | |
79 | func_check "lxvkq vs0,21" | |
80 | func_check "lxvkq vs0,22" | |
81 | func_check "lxvkq vs0,23" | |
82 | func_check "lxvkq vs0,24" | |
83 | func_check "lxvkq vs0,3" | |
84 | func_check "lxvkq vs0,4" | |
85 | func_check "lxvkq vs0,5" | |
86 | func_check "lxvkq vs0,6" | |
87 | func_check "lxvkq vs0,7" | |
88 | func_check "lxvkq vs0,8" | |
89 | func_check "lxvkq vs0,9" | |
90 | func_check "lxvp vs20,0(0)" | |
91 | func_check "lxvp vs20,16(0)" | |
92 | func_check "lxvp vs20,32(0)" | |
93 | func_check "lxvpx vs20,0,r1" | |
94 | func_check "lxvrbx vs0,r1,r2" | |
95 | func_check "lxvrdx vs0,r1,r2" | |
96 | func_check "lxvrhx vs0,r1,r2" | |
97 | func_check "lxvrwx vs0,r1,r2" | |
98 | func_check "mfvsrld r0,vs26" | |
99 | func_check "mfvsrld r0,vs27" | |
100 | func_check "mfvsrld r0,vs28" | |
101 | func_check "mfvsrld r0,vs29" | |
102 | func_check "mffprd r0,f26" | |
103 | func_check "mffprd r0,f27" | |
104 | func_check "mffprd r0,f28" | |
105 | func_check "mffprd r0,f29" | |
106 | func_check "mtvsrbm v0,r1" | |
107 | func_check "mtvsrbmi v0,0" | |
108 | func_check "mtvsrbmi v0,3" | |
109 | func_check "mtvsrbmi v0,7" | |
110 | func_check "mtvsrdm v0,r1" | |
111 | func_check "mtvsrhm v0,r1" | |
112 | func_check "mtvsrqm v0,r1" | |
113 | func_check "mtvsrwm v0,r1" | |
114 | func_check "paddi r0,r1,0" | |
115 | func_check "paddi r0,r1,12" | |
116 | func_check "paddi r0,r1,48" | |
117 | func_check "paddi r0,r1,98" | |
118 | func_check "pdepd r0,r1,r2" | |
119 | func_check "pextd r0,r1,r2" | |
120 | func_check "plbz r0,0(r1)" | |
121 | func_check "plbz r0,16(r1)" | |
122 | func_check "plbz r0,32(r1)" | |
123 | func_check "plbz r0,64(r1)" | |
124 | func_check "plbz r0,8(r1)" | |
125 | func_check "pld r0,0(r1)" | |
126 | func_check "pld r0,16(r1)" | |
127 | func_check "pld r0,32(r1)" | |
128 | func_check "pld r0,64(r1)" | |
129 | func_check "pld r0,8(r1)" | |
130 | func_check "plfd f28,0(0)" | |
131 | func_check "plfd f28,16(0)" | |
132 | func_check "plfd f28,32(0)" | |
133 | func_check "plfd f28,4(0)" | |
134 | func_check "plfd f28,64(0)" | |
135 | func_check "plfd f28,8(0)" | |
136 | func_check "plfs f28,0(0)" | |
137 | func_check "plfs f28,16(0)" | |
138 | func_check "plfs f28,32(0)" | |
139 | func_check "plfs f28,4(0)" | |
140 | func_check "plfs f28,64(0)" | |
141 | func_check "plfs f28,8(0)" | |
142 | func_check "plha r0,0(r1)" | |
143 | func_check "plha r0,16(r1)" | |
144 | func_check "plha r0,32(r1)" | |
145 | func_check "plha r0,64(r1)" | |
146 | func_check "plha r0,8(r1)" | |
147 | func_check "plhz r0,0(r1)" | |
148 | func_check "plhz r0,16(r1)" | |
149 | func_check "plhz r0,32(r1)" | |
150 | func_check "plhz r0,64(r1)" | |
151 | func_check "plhz r0,8(r1)" | |
152 | func_check "plq r26,0(0)" | |
153 | func_check "plq r26,16(0)" | |
154 | func_check "plq r26,32(0)" | |
155 | func_check "plq r26,48(0)" | |
156 | func_check "plq r26,64(0)" | |
157 | func_check "plq r26,8(0)" | |
158 | func_check "plwa r0,0(r1)" | |
159 | func_check "plwa r0,16(r1)" | |
160 | func_check "plwa r0,32(r1)" | |
161 | func_check "plwa r0,64(r1)" | |
162 | func_check "plwa r0,8(r1)" | |
163 | func_check "plwz r0,0(r1)" | |
164 | func_check "plwz r0,16(r1)" | |
165 | func_check "plwz r0,32(r1)" | |
166 | func_check "plwz r0,64(r1)" | |
167 | func_check "plwz r0,8(r1)" | |
168 | func_check "plxsd v0,0(r1)" | |
169 | func_check "plxsd v0,16(r1)" | |
170 | func_check "plxsd v0,32(r1)" | |
171 | func_check "plxsd v0,4(r1)" | |
172 | func_check "plxsd v0,64(r1)" | |
173 | func_check "plxsd v0,8(r1)" | |
174 | func_check "plxssp v0,0(r1)" | |
175 | func_check "plxssp v0,16(r1)" | |
176 | func_check "plxssp v0,32(r1)" | |
177 | func_check "plxssp v0,4(r1)" | |
178 | func_check "plxssp v0,64(r1)" | |
179 | func_check "plxssp v0,8(r1)" | |
180 | func_check "plxv vs0,0(r1)" | |
181 | func_check "plxv vs0,16(r1)" | |
182 | func_check "plxv vs0,4(r1)" | |
183 | func_check "plxv vs0,8(r1)" | |
184 | func_check "plxvp vs20,0(0)" | |
185 | func_check "plxvp vs20,16(0)" | |
186 | func_check "plxvp vs20,24(0)" | |
187 | func_check "plxvp vs20,32(0)" | |
188 | func_check "plxvp vs20,8(0)" | |
49977100 CL |
189 | func_check "pmdmxvbf16ger2 a4,vs0,vs1,0,0,0" |
190 | func_check "pmdmxvbf16ger2 a4,vs0,vs1,0,0,1" | |
191 | func_check "pmdmxvbf16ger2 a4,vs0,vs1,0,13,0" | |
192 | func_check "pmdmxvbf16ger2 a4,vs0,vs1,0,13,1" | |
193 | func_check "pmdmxvbf16ger2 a4,vs0,vs1,11,0,0" | |
194 | func_check "pmdmxvbf16ger2 a4,vs0,vs1,11,0,1" | |
195 | func_check "pmdmxvbf16ger2 a4,vs0,vs1,11,13,0" | |
196 | func_check "pmdmxvbf16ger2 a4,vs0,vs1,11,13,1" | |
197 | func_check "pmdmxvbf16ger2nn a4,vs0,vs1,0,0,0" | |
198 | func_check "pmdmxvbf16ger2nn a4,vs0,vs1,0,0,1" | |
199 | func_check "pmdmxvbf16ger2nn a4,vs0,vs1,0,13,0" | |
200 | func_check "pmdmxvbf16ger2nn a4,vs0,vs1,0,13,1" | |
201 | func_check "pmdmxvbf16ger2nn a4,vs0,vs1,11,0,0" | |
202 | func_check "pmdmxvbf16ger2nn a4,vs0,vs1,11,0,1" | |
203 | func_check "pmdmxvbf16ger2nn a4,vs0,vs1,11,13,0" | |
204 | func_check "pmdmxvbf16ger2nn a4,vs0,vs1,11,13,1" | |
205 | func_check "pmdmxvbf16ger2np a4,vs0,vs1,0,0,0" | |
206 | func_check "pmdmxvbf16ger2np a4,vs0,vs1,0,0,1" | |
207 | func_check "pmdmxvbf16ger2np a4,vs0,vs1,0,13,0" | |
208 | func_check "pmdmxvbf16ger2np a4,vs0,vs1,0,13,1" | |
209 | func_check "pmdmxvbf16ger2np a4,vs0,vs1,11,0,0" | |
210 | func_check "pmdmxvbf16ger2np a4,vs0,vs1,11,0,1" | |
211 | func_check "pmdmxvbf16ger2np a4,vs0,vs1,11,13,0" | |
212 | func_check "pmdmxvbf16ger2np a4,vs0,vs1,11,13,1" | |
213 | func_check "pmdmxvbf16ger2pn a4,vs0,vs1,0,0,0" | |
214 | func_check "pmdmxvbf16ger2pn a4,vs0,vs1,0,0,1" | |
215 | func_check "pmdmxvbf16ger2pn a4,vs0,vs1,0,13,0" | |
216 | func_check "pmdmxvbf16ger2pn a4,vs0,vs1,0,13,1" | |
217 | func_check "pmdmxvbf16ger2pn a4,vs0,vs1,11,0,0" | |
218 | func_check "pmdmxvbf16ger2pn a4,vs0,vs1,11,0,1" | |
219 | func_check "pmdmxvbf16ger2pn a4,vs0,vs1,11,13,0" | |
220 | func_check "pmdmxvbf16ger2pn a4,vs0,vs1,11,13,1" | |
221 | func_check "pmdmxvbf16ger2pp a4,vs0,vs1,0,0,0" | |
222 | func_check "pmdmxvbf16ger2pp a4,vs0,vs1,0,0,1" | |
223 | func_check "pmdmxvbf16ger2pp a4,vs0,vs1,0,13,0" | |
224 | func_check "pmdmxvbf16ger2pp a4,vs0,vs1,0,13,1" | |
225 | func_check "pmdmxvbf16ger2pp a4,vs0,vs1,11,0,0" | |
226 | func_check "pmdmxvbf16ger2pp a4,vs0,vs1,11,0,1" | |
227 | func_check "pmdmxvbf16ger2pp a4,vs0,vs1,11,13,0" | |
228 | func_check "pmdmxvbf16ger2pp a4,vs0,vs1,11,13,1" | |
229 | func_check "pmdmxvf16ger2 a4,vs0,vs1,0,0,0" | |
230 | func_check "pmdmxvf16ger2 a4,vs0,vs1,0,0,1" | |
231 | func_check "pmdmxvf16ger2 a4,vs0,vs1,0,13,0" | |
232 | func_check "pmdmxvf16ger2 a4,vs0,vs1,0,13,1" | |
233 | func_check "pmdmxvf16ger2 a4,vs0,vs1,11,0,0" | |
234 | func_check "pmdmxvf16ger2 a4,vs0,vs1,11,0,1" | |
235 | func_check "pmdmxvf16ger2 a4,vs0,vs1,11,13,0" | |
236 | func_check "pmdmxvf16ger2 a4,vs0,vs1,11,13,1" | |
237 | func_check "pmdmxvf16ger2nn a4,vs0,vs1,0,0,0" | |
238 | func_check "pmdmxvf16ger2nn a4,vs0,vs1,0,0,1" | |
239 | func_check "pmdmxvf16ger2nn a4,vs0,vs1,0,13,0" | |
240 | func_check "pmdmxvf16ger2nn a4,vs0,vs1,0,13,1" | |
241 | func_check "pmdmxvf16ger2nn a4,vs0,vs1,11,0,0" | |
242 | func_check "pmdmxvf16ger2nn a4,vs0,vs1,11,0,1" | |
243 | func_check "pmdmxvf16ger2nn a4,vs0,vs1,11,13,0" | |
244 | func_check "pmdmxvf16ger2nn a4,vs0,vs1,11,13,1" | |
245 | func_check "pmdmxvf16ger2np a4,vs0,vs1,0,0,0" | |
246 | func_check "pmdmxvf16ger2np a4,vs0,vs1,0,0,1" | |
247 | func_check "pmdmxvf16ger2np a4,vs0,vs1,0,13,0" | |
248 | func_check "pmdmxvf16ger2np a4,vs0,vs1,0,13,1" | |
249 | func_check "pmdmxvf16ger2np a4,vs0,vs1,11,0,0" | |
250 | func_check "pmdmxvf16ger2np a4,vs0,vs1,11,0,1" | |
251 | func_check "pmdmxvf16ger2np a4,vs0,vs1,11,13,0" | |
252 | func_check "pmdmxvf16ger2np a4,vs0,vs1,11,13,1" | |
253 | func_check "pmdmxvf16ger2pn a4,vs0,vs1,0,0,0" | |
254 | func_check "pmdmxvf16ger2pn a4,vs0,vs1,0,0,1" | |
255 | func_check "pmdmxvf16ger2pn a4,vs0,vs1,0,13,0" | |
256 | func_check "pmdmxvf16ger2pn a4,vs0,vs1,0,13,1" | |
257 | func_check "pmdmxvf16ger2pn a4,vs0,vs1,11,0,0" | |
258 | func_check "pmdmxvf16ger2pn a4,vs0,vs1,11,0,1" | |
259 | func_check "pmdmxvf16ger2pn a4,vs0,vs1,11,13,0" | |
260 | func_check "pmdmxvf16ger2pn a4,vs0,vs1,11,13,1" | |
261 | func_check "pmdmxvf16ger2pp a4,vs0,vs1,0,0,0" | |
262 | func_check "pmdmxvf16ger2pp a4,vs0,vs1,0,0,1" | |
263 | func_check "pmdmxvf16ger2pp a4,vs0,vs1,0,13,0" | |
264 | func_check "pmdmxvf16ger2pp a4,vs0,vs1,0,13,1" | |
265 | func_check "pmdmxvf16ger2pp a4,vs0,vs1,11,0,0" | |
266 | func_check "pmdmxvf16ger2pp a4,vs0,vs1,11,0,1" | |
267 | func_check "pmdmxvf16ger2pp a4,vs0,vs1,11,13,0" | |
268 | func_check "pmdmxvf16ger2pp a4,vs0,vs1,11,13,1" | |
269 | func_check "pmdmxvf32ger a4,vs0,vs1,0,0" | |
270 | func_check "pmdmxvf32ger a4,vs0,vs1,0,13" | |
271 | func_check "pmdmxvf32ger a4,vs0,vs1,11,0" | |
272 | func_check "pmdmxvf32ger a4,vs0,vs1,11,13" | |
273 | func_check "pmdmxvf32gernn a4,vs0,vs1,0,0" | |
274 | func_check "pmdmxvf32gernn a4,vs0,vs1,0,13" | |
275 | func_check "pmdmxvf32gernn a4,vs0,vs1,11,0" | |
276 | func_check "pmdmxvf32gernn a4,vs0,vs1,11,13" | |
277 | func_check "pmdmxvf32gernp a4,vs0,vs1,0,0" | |
278 | func_check "pmdmxvf32gernp a4,vs0,vs1,0,13" | |
279 | func_check "pmdmxvf32gernp a4,vs0,vs1,11,0" | |
280 | func_check "pmdmxvf32gernp a4,vs0,vs1,11,13" | |
281 | func_check "pmdmxvf32gerpn a4,vs0,vs1,0,0" | |
282 | func_check "pmdmxvf32gerpn a4,vs0,vs1,0,13" | |
283 | func_check "pmdmxvf32gerpn a4,vs0,vs1,11,0" | |
284 | func_check "pmdmxvf32gerpn a4,vs0,vs1,11,13" | |
285 | func_check "pmdmxvf32gerpp a4,vs0,vs1,0,0" | |
286 | func_check "pmdmxvf32gerpp a4,vs0,vs1,0,13" | |
287 | func_check "pmdmxvf32gerpp a4,vs0,vs1,11,0" | |
288 | func_check "pmdmxvf32gerpp a4,vs0,vs1,11,13" | |
289 | func_check "pmdmxvf64ger a4,vs22,vs0,0,0" | |
290 | func_check "pmdmxvf64ger a4,vs22,vs0,0,1" | |
291 | func_check "pmdmxvf64ger a4,vs22,vs0,11,0" | |
292 | func_check "pmdmxvf64ger a4,vs22,vs0,11,1" | |
293 | func_check "pmdmxvf64gernn a4,vs22,vs0,0,0" | |
294 | func_check "pmdmxvf64gernn a4,vs22,vs0,0,1" | |
295 | func_check "pmdmxvf64gernn a4,vs22,vs0,11,0" | |
296 | func_check "pmdmxvf64gernn a4,vs22,vs0,11,1" | |
297 | func_check "pmdmxvf64gernp a4,vs22,vs0,0,0" | |
298 | func_check "pmdmxvf64gernp a4,vs22,vs0,0,1" | |
299 | func_check "pmdmxvf64gernp a4,vs22,vs0,11,0" | |
300 | func_check "pmdmxvf64gernp a4,vs22,vs0,11,1" | |
301 | func_check "pmdmxvf64gerpn a4,vs22,vs0,0,0" | |
302 | func_check "pmdmxvf64gerpn a4,vs22,vs0,0,1" | |
303 | func_check "pmdmxvf64gerpn a4,vs22,vs0,11,0" | |
304 | func_check "pmdmxvf64gerpn a4,vs22,vs0,11,1" | |
305 | func_check "pmdmxvf64gerpp a4,vs22,vs0,0,0" | |
306 | func_check "pmdmxvf64gerpp a4,vs22,vs0,0,1" | |
307 | func_check "pmdmxvf64gerpp a4,vs22,vs0,11,0" | |
308 | func_check "pmdmxvf64gerpp a4,vs22,vs0,11,1" | |
309 | func_check "pmdmxvi16ger2 a4,vs0,vs1,0,0,0" | |
310 | func_check "pmdmxvi16ger2 a4,vs0,vs1,0,0,1" | |
311 | func_check "pmdmxvi16ger2 a4,vs0,vs1,0,13,0" | |
312 | func_check "pmdmxvi16ger2 a4,vs0,vs1,0,13,1" | |
313 | func_check "pmdmxvi16ger2 a4,vs0,vs1,11,0,0" | |
314 | func_check "pmdmxvi16ger2 a4,vs0,vs1,11,0,1" | |
315 | func_check "pmdmxvi16ger2 a4,vs0,vs1,11,13,0" | |
316 | func_check "pmdmxvi16ger2 a4,vs0,vs1,11,13,1" | |
317 | func_check "pmdmxvi16ger2pp a4,vs0,vs1,0,0,0" | |
318 | func_check "pmdmxvi16ger2pp a4,vs0,vs1,0,0,1" | |
319 | func_check "pmdmxvi16ger2pp a4,vs0,vs1,0,13,0" | |
320 | func_check "pmdmxvi16ger2pp a4,vs0,vs1,0,13,1" | |
321 | func_check "pmdmxvi16ger2pp a4,vs0,vs1,11,0,0" | |
322 | func_check "pmdmxvi16ger2pp a4,vs0,vs1,11,0,1" | |
323 | func_check "pmdmxvi16ger2pp a4,vs0,vs1,11,13,0" | |
324 | func_check "pmdmxvi16ger2pp a4,vs0,vs1,11,13,1" | |
325 | func_check "pmdmxvi16ger2s a4,vs0,vs1,0,0,0" | |
326 | func_check "pmdmxvi16ger2s a4,vs0,vs1,0,0,1" | |
327 | func_check "pmdmxvi16ger2s a4,vs0,vs1,0,13,0" | |
328 | func_check "pmdmxvi16ger2s a4,vs0,vs1,0,13,1" | |
329 | func_check "pmdmxvi16ger2s a4,vs0,vs1,11,0,0" | |
330 | func_check "pmdmxvi16ger2s a4,vs0,vs1,11,0,1" | |
331 | func_check "pmdmxvi16ger2s a4,vs0,vs1,11,13,0" | |
332 | func_check "pmdmxvi16ger2s a4,vs0,vs1,11,13,1" | |
333 | func_check "pmdmxvi16ger2spp a4,vs0,vs1,0,0,0" | |
334 | func_check "pmdmxvi16ger2spp a4,vs0,vs1,0,0,1" | |
335 | func_check "pmdmxvi16ger2spp a4,vs0,vs1,0,13,0" | |
336 | func_check "pmdmxvi16ger2spp a4,vs0,vs1,0,13,1" | |
337 | func_check "pmdmxvi16ger2spp a4,vs0,vs1,11,0,0" | |
338 | func_check "pmdmxvi16ger2spp a4,vs0,vs1,11,0,1" | |
339 | func_check "pmdmxvi16ger2spp a4,vs0,vs1,11,13,0" | |
340 | func_check "pmdmxvi16ger2spp a4,vs0,vs1,11,13,1" | |
341 | func_check "pmdmxvi4ger8 a4,vs0,vs1,0,0,0" | |
342 | func_check "pmdmxvi4ger8 a4,vs0,vs1,0,0,45" | |
343 | func_check "pmdmxvi4ger8 a4,vs0,vs1,0,1,0" | |
344 | func_check "pmdmxvi4ger8 a4,vs0,vs1,0,1,45" | |
345 | func_check "pmdmxvi4ger8 a4,vs0,vs1,11,0,0" | |
346 | func_check "pmdmxvi4ger8 a4,vs0,vs1,11,0,45" | |
347 | func_check "pmdmxvi4ger8 a4,vs0,vs1,11,1,0" | |
348 | func_check "pmdmxvi4ger8 a4,vs0,vs1,11,1,45" | |
349 | func_check "pmdmxvi4ger8pp a4,vs0,vs1,0,0,0" | |
350 | func_check "pmdmxvi4ger8pp a4,vs0,vs1,0,0,45" | |
351 | func_check "pmdmxvi4ger8pp a4,vs0,vs1,0,1,0" | |
352 | func_check "pmdmxvi4ger8pp a4,vs0,vs1,0,1,45" | |
353 | func_check "pmdmxvi4ger8pp a4,vs0,vs1,11,0,0" | |
354 | func_check "pmdmxvi4ger8pp a4,vs0,vs1,11,0,45" | |
355 | func_check "pmdmxvi4ger8pp a4,vs0,vs1,11,1,0" | |
356 | func_check "pmdmxvi4ger8pp a4,vs0,vs1,11,1,45" | |
357 | func_check "pmdmxvi8ger4 a4,vs0,vs1,0,0,0" | |
358 | func_check "pmdmxvi8ger4 a4,vs0,vs1,0,0,5" | |
359 | func_check "pmdmxvi8ger4 a4,vs0,vs1,0,13,0" | |
360 | func_check "pmdmxvi8ger4 a4,vs0,vs1,0,13,5" | |
361 | func_check "pmdmxvi8ger4 a4,vs0,vs1,11,0,0" | |
362 | func_check "pmdmxvi8ger4 a4,vs0,vs1,11,0,5" | |
363 | func_check "pmdmxvi8ger4 a4,vs0,vs1,11,13,0" | |
364 | func_check "pmdmxvi8ger4 a4,vs0,vs1,11,13,5" | |
365 | func_check "pmdmxvi8ger4pp a4,vs0,vs1,0,0,0" | |
366 | func_check "pmdmxvi8ger4pp a4,vs0,vs1,0,0,5" | |
367 | func_check "pmdmxvi8ger4pp a4,vs0,vs1,0,13,0" | |
368 | func_check "pmdmxvi8ger4pp a4,vs0,vs1,0,13,5" | |
369 | func_check "pmdmxvi8ger4pp a4,vs0,vs1,11,0,0" | |
370 | func_check "pmdmxvi8ger4pp a4,vs0,vs1,11,0,5" | |
371 | func_check "pmdmxvi8ger4pp a4,vs0,vs1,11,13,0" | |
372 | func_check "pmdmxvi8ger4pp a4,vs0,vs1,11,13,5" | |
373 | func_check "pmdmxvi8ger4spp a4,vs0,vs1,0,0,0" | |
374 | func_check "pmdmxvi8ger4spp a4,vs0,vs1,0,0,5" | |
375 | func_check "pmdmxvi8ger4spp a4,vs0,vs1,0,13,0" | |
376 | func_check "pmdmxvi8ger4spp a4,vs0,vs1,0,13,5" | |
377 | func_check "pmdmxvi8ger4spp a4,vs0,vs1,11,0,0" | |
378 | func_check "pmdmxvi8ger4spp a4,vs0,vs1,11,0,5" | |
379 | func_check "pmdmxvi8ger4spp a4,vs0,vs1,11,13,0" | |
380 | func_check "pmdmxvi8ger4spp a4,vs0,vs1,11,13,5" | |
82d9b280 WS |
381 | #/* pstb extended mnemonics can suppress (r1) or the trailing ,0 or ,1, see ISA. |
382 | func_check "pstb r0,0(r1)" | |
383 | func_check "pstb r0,16(r1)" | |
384 | func_check "pstb r0,32(r1)" | |
385 | func_check "pstb r0,8(r1)" | |
386 | func_check "pstd r0,0(r1)" | |
387 | func_check "pstd r0,16(r1)" | |
388 | func_check "pstd r0,32(r1)" | |
389 | func_check "pstd r0,8(r1)" | |
390 | func_check "pstfd f26,0(0)" | |
391 | func_check "pstfd f26,16(0)" | |
392 | func_check "pstfd f26,32(0)" | |
393 | func_check "pstfd f26,4(0)" | |
394 | func_check "pstfd f26,8(0)" | |
395 | func_check "pstfs f26,0(0)" | |
396 | func_check "pstfs f26,16(0)" | |
397 | func_check "pstfs f26,32(0)" | |
398 | func_check "pstfs f26,4(0)" | |
399 | func_check "pstfs f26,8(0)" | |
400 | func_check "psth r0,0(r1)" | |
401 | func_check "psth r0,16(r1)" | |
402 | func_check "psth r0,32(r1)" | |
403 | func_check "psth r0,8(r1)" | |
404 | func_check "pstq r24,0(0)" | |
405 | func_check "pstq r24,16(0)" | |
406 | func_check "pstq r24,32(0)" | |
407 | func_check "pstq r24,64(0)" | |
408 | func_check "pstq r24,8(0)" | |
409 | func_check "pstw r0,0(r1)" | |
410 | func_check "pstw r0,16(r1)" | |
411 | func_check "pstw r0,32(r1)" | |
412 | func_check "pstw r0,8(r1)" | |
413 | func_check "pstxsd v22,0(0)" | |
414 | func_check "pstxsd v22,16(0)" | |
415 | func_check "pstxsd v22,32(0)" | |
416 | func_check "pstxsd v22,4(0)" | |
417 | func_check "pstxsd v22,64(0)" | |
418 | func_check "pstxsd v22,8(0)" | |
419 | func_check "pstxssp v22,0(0)" | |
420 | func_check "pstxssp v22,16(0)" | |
421 | func_check "pstxssp v22,32(0)" | |
422 | func_check "pstxssp v22,4(0)" | |
423 | func_check "pstxssp v22,64(0)" | |
424 | func_check "pstxssp v22,8(0)" | |
425 | func_check "pstxv vs0,0(r1)" | |
426 | func_check "pstxv vs0,16(r1)" | |
427 | func_check "pstxv vs0,4(r1)" | |
428 | func_check "pstxv vs0,8(r1)" | |
429 | func_check "pstxvp vs20,0(0)" | |
430 | func_check "pstxvp vs20,16(0)" | |
431 | func_check "pstxvp vs20,32(0)" | |
432 | func_check "pstxvp vs20,48(0)" | |
433 | # lt,gt,eq,so map to cr0 0,1,2,3 ; cr1,cr2 extend from there. lt=0 ; gt=1 ; eq=2 ; so=3 | |
434 | func_check "setbc r26,lt" | |
435 | func_check "setbc r26,gt" | |
436 | func_check "setbc r26,eq" | |
437 | func_check "setbc r26,so" | |
438 | func_check "setbc r26,4*cr1+so" | |
439 | func_check "setbc r26,4*cr2+lt" | |
440 | func_check "setbc r26,4*cr7+so" | |
441 | ||
442 | func_check "setbcr r26,4*cr7+so" | |
443 | func_check "setbcr r26,4*cr1+so" | |
444 | func_check "setbcr r26,4*cr2+lt" | |
445 | ||
446 | func_check "setnbc r26,lt" | |
447 | func_check "setnbc r26,so" | |
448 | func_check "setnbc r26,4*cr7+so" | |
449 | func_check "setnbc r26,4*cr1+so" | |
450 | func_check "setnbc r26,4*cr2+lt" | |
451 | ||
452 | func_check "setnbcr r26,lt" | |
453 | func_check "setnbcr r26,so" | |
454 | func_check "setnbcr r26,4*cr7+so" | |
455 | func_check "setnbcr r26,4*cr1+so" | |
456 | func_check "setnbcr r26,4*cr2+lt" | |
457 | ||
458 | func_check "stxvp vs20,0(0)" | |
459 | func_check "stxvp vs20,16(0)" | |
460 | func_check "stxvp vs20,32(0)" | |
461 | func_check "stxvp vs20,48(0)" | |
462 | func_check "stxvpx vs20,0,r1" | |
463 | func_check "stxvrbx vs0,r1,r2" | |
464 | func_check "stxvrdx vs0,r1,r2" | |
465 | func_check "stxvrhx vs0,r1,r2" | |
466 | func_check "stxvrwx vs0,r1,r2" | |
467 | func_check "vcfuged v0,v1,v2" | |
468 | func_check "vclrlb v0,v1,r2" | |
469 | func_check "vclrrb v0,v1,r2" | |
470 | func_check "vclzdm v0,v1,v2" | |
471 | func_check "vcmpequq v0,v1,v2" | |
472 | func_check "vcmpgtsq v0,v1,v2" | |
473 | func_check "vcmpgtuq v0,v1,v2" | |
474 | func_check "vcmpsq cr3,v0,v1" | |
475 | func_check "vcmpuq cr3,v0,v1" | |
476 | func_check "vcntmbb r0,v1,0" | |
477 | func_check "vcntmbb r0,v1,1" | |
478 | func_check "vcntmbd r0,v1,0" | |
479 | func_check "vcntmbd r0,v1,1" | |
480 | func_check "vcntmbh r0,v1,0" | |
481 | func_check "vcntmbh r0,v1,1" | |
482 | func_check "vcntmbw r0,v1,0" | |
483 | func_check "vcntmbw r0,v1,1" | |
484 | func_check "vctzdm v0,v1,v2" | |
485 | func_check "vdivesd v0,v1,v2" | |
486 | func_check "vdivesq v0,v1,v2" | |
487 | func_check "vdivesw v0,v1,v2" | |
488 | func_check "vdiveud v0,v1,v2" | |
489 | func_check "vdiveuq v0,v1,v2" | |
490 | func_check "vdiveuw v0,v1,v2" | |
491 | func_check "vdivsd v0,v1,v2" | |
492 | func_check "vdivsq v0,v1,v2" | |
493 | func_check "vdivsw v0,v1,v2" | |
494 | func_check "vdivud v0,v1,v2" | |
495 | func_check "vdivuq v0,v1,v2" | |
496 | func_check "vdivuw v0,v1,v2" | |
497 | func_check "vexpandbm v0,v1" | |
498 | func_check "vexpanddm v0,v1" | |
499 | func_check "vexpandhm v0,v1" | |
500 | func_check "vexpandqm v0,v1" | |
501 | func_check "vexpandwm v0,v1" | |
502 | func_check "vextddvlx v0,v1,v2,r3" | |
503 | func_check "vextddvrx v0,v1,v2,r3" | |
504 | func_check "vextdubvlx v0,v1,v2,r3" | |
505 | func_check "vextdubvrx v0,v1,v2,r3" | |
506 | func_check "vextduhvlx v0,v1,v2,r3" | |
507 | func_check "vextduhvrx v0,v1,v2,r3" | |
508 | func_check "vextduwvlx v0,v1,v2,r3" | |
509 | func_check "vextduwvrx v0,v1,v2,r3" | |
510 | func_check "vextractbm r0,v1" | |
511 | func_check "vextractdm r0,v1" | |
512 | func_check "vextracthm r0,v1" | |
513 | func_check "vextractqm r0,v1" | |
514 | func_check "vextractwm r0,v1" | |
515 | func_check "vextsd2q v0,v1" | |
516 | func_check "vgnb r0,v1,2" | |
517 | func_check "vgnb r0,v1,3" | |
518 | func_check "vgnb r0,v1,4" | |
519 | func_check "vgnb r0,v1,5" | |
520 | func_check "vgnb r0,v1,6" | |
521 | func_check "vgnb r0,v1,7" | |
522 | func_check "vinsblx v0,r1,r2" | |
523 | func_check "vinsbrx v0,r1,r2" | |
524 | func_check "vinsbvlx v0,r1,v2" | |
525 | func_check "vinsbvrx v0,r1,v2" | |
526 | func_check "vinsd v0,r1,3" | |
527 | func_check "vinsd v0,r1,7" | |
528 | func_check "vinsdlx v0,r1,r2" | |
529 | func_check "vinsdrx v0,r1,r2" | |
530 | func_check "vinshlx v0,r1,r2" | |
531 | func_check "vinshrx v0,r1,r2" | |
532 | func_check "vinshvlx v0,r1,v2" | |
533 | func_check "vinshvrx v0,r1,v2" | |
534 | func_check "vinsw v0,r1,3" | |
535 | func_check "vinsw v0,r1,7" | |
536 | func_check "vinswlx v0,r1,r2" | |
537 | func_check "vinswrx v0,r1,r2" | |
538 | func_check "vinswvlx v0,r1,v2" | |
539 | func_check "vinswvrx v0,r1,v2" | |
540 | func_check "vmodsd v0,v1,v2" | |
541 | func_check "vmodsq v0,v1,v2" | |
542 | func_check "vmodsw v0,v1,v2" | |
543 | func_check "vmodud v0,v1,v2" | |
544 | func_check "vmoduq v0,v1,v2" | |
545 | func_check "vmoduw v0,v1,v2" | |
546 | func_check "vmsumcud v0,v1,v2,v3" | |
547 | func_check "vmulesd v0,v1,v2" | |
548 | func_check "vmuleud v0,v1,v2" | |
549 | func_check "vmulhsd v0,v1,v2" | |
550 | func_check "vmulhsw v0,v1,v2" | |
551 | func_check "vmulhud v0,v1,v2" | |
552 | func_check "vmulhuw v0,v1,v2" | |
553 | func_check "vmulld v0,v1,v2" | |
554 | func_check "vmulosd v0,v1,v2" | |
555 | func_check "vmuloud v0,v1,v2" | |
556 | func_check "vpdepd v0,v1,v2" | |
557 | func_check "vpextd v0,v1,v2" | |
558 | func_check "vrlq v0,v1,v2" | |
559 | func_check "vrlqmi v0,v1,v2" | |
560 | func_check "vrlqnm v0,v1,v2" | |
561 | func_check "vsldbi v0,v1,v2,0" | |
562 | func_check "vsldbi v0,v1,v2,4" | |
563 | func_check "vslq v0,v1,v2" | |
564 | func_check "vsraq v0,v1,v2" | |
565 | func_check "vsrdbi v0,v1,v2,0" | |
566 | func_check "vsrdbi v0,v1,v2,4" | |
567 | func_check "vsrq v0,v1,v2" | |
568 | func_check "vstribl v0,v1" | |
569 | func_check "vstribl. v0,v1" | |
570 | func_check "vstribr v0,v1" | |
571 | func_check "vstribr. v0,v1" | |
572 | func_check "vstrihl v0,v1" | |
573 | func_check "vstrihl. v0,v1" | |
574 | func_check "vstrihr v0,v1" | |
575 | func_check "vstrihr. v0,v1" | |
576 | func_check "xscmpeqqp v0,v1,v2" | |
577 | func_check "xscmpgeqp v0,v1,v2" | |
578 | func_check "xscmpgtqp v0,v1,v2" | |
579 | func_check "xscvqpsqz v0,v1" | |
580 | func_check "xscvqpuqz v0,v1" | |
581 | func_check "xscvsqqp v0,v1" | |
582 | func_check "xscvuqqp v0,v1" | |
583 | func_check "xsmaxcqp v0,v1,v2" | |
584 | func_check "xsmincqp v0,v1,v2" | |
49977100 CL |
585 | func_check "dmxvbf16ger2 a4,vs0,vs1" |
586 | func_check "dmxvbf16ger2nn a4,vs0,vs1" | |
587 | func_check "dmxvbf16ger2np a4,vs0,vs1" | |
588 | func_check "dmxvbf16ger2pn a4,vs0,vs1" | |
589 | func_check "dmxvbf16ger2pp a4,vs0,vs1" | |
82d9b280 WS |
590 | func_check "xvcvbf16spn vs0,vs1" |
591 | func_check "xvcvspbf16 vs0,vs1" | |
49977100 CL |
592 | func_check "dmxvf16ger2 a4,vs0,vs1" |
593 | func_check "dmxvf16ger2nn a4,vs0,vs1" | |
594 | func_check "dmxvf16ger2np a4,vs0,vs1" | |
595 | func_check "dmxvf16ger2pn a4,vs0,vs1" | |
596 | func_check "dmxvf16ger2pp a4,vs0,vs1" | |
597 | func_check "dmxvf32ger a4,vs0,vs1" | |
598 | func_check "dmxvf32gernn a4,vs0,vs1" | |
599 | func_check "dmxvf32gernp a4,vs0,vs1" | |
600 | func_check "dmxvf32gerpn a4,vs0,vs1" | |
601 | func_check "dmxvf32gerpp a4,vs0,vs1" | |
602 | func_check "dmxvf64ger a4,vs22,vs0" | |
603 | func_check "dmxvf64gernn a4,vs22,vs0" | |
604 | func_check "dmxvf64gernp a4,vs22,vs0" | |
605 | func_check "dmxvf64gerpn a4,vs22,vs0" | |
606 | func_check "dmxvf64gerpp a4,vs22,vs0" | |
607 | func_check "dmxvi16ger2 a4,vs0,vs1" | |
608 | func_check "dmxvi16ger2pp a4,vs0,vs1" | |
609 | func_check "dmxvi16ger2s a4,vs0,vs1" | |
610 | func_check "dmxvi16ger2spp a4,vs0,vs1" | |
611 | func_check "dmxvi4ger8 a4,vs0,vs1" | |
612 | func_check "dmxvi4ger8pp a4,vs0,vs1" | |
613 | func_check "dmxvi8ger4 a4,vs0,vs1" | |
614 | func_check "dmxvi8ger4pp a4,vs0,vs1" | |
615 | func_check "dmxvi8ger4spp a4,vs0,vs1" | |
82d9b280 WS |
616 | func_check "xvtlsbb cr3,vs0" |
617 | func_check "xxblendvb vs0,vs1,vs2,vs3" | |
618 | func_check "xxblendvd vs0,vs1,vs2,vs3" | |
619 | func_check "xxblendvh vs0,vs1,vs2,vs3" | |
620 | func_check "xxblendvw vs0,vs1,vs2,vs3" | |
621 | func_check "xxeval vs0,vs1,vs2,vs3,0" | |
622 | func_check "xxeval vs0,vs1,vs2,vs3,3" | |
623 | func_check "xxgenpcvbm vs0,v1,0" | |
624 | func_check "xxgenpcvbm vs0,v1,1" | |
625 | func_check "xxgenpcvbm vs0,v1,2" | |
626 | func_check "xxgenpcvbm vs0,v1,3" | |
627 | func_check "xxgenpcvdm vs0,v1,0" | |
628 | func_check "xxgenpcvdm vs0,v1,1" | |
629 | func_check "xxgenpcvdm vs0,v1,2" | |
630 | func_check "xxgenpcvdm vs0,v1,3" | |
631 | func_check "xxgenpcvhm vs0,v1,0" | |
632 | func_check "xxgenpcvhm vs0,v1,1" | |
633 | func_check "xxgenpcvhm vs0,v1,2" | |
634 | func_check "xxgenpcvhm vs0,v1,3" | |
635 | func_check "xxgenpcvwm vs0,v1,0" | |
636 | func_check "xxgenpcvwm vs0,v1,1" | |
637 | func_check "xxgenpcvwm vs0,v1,2" | |
638 | func_check "xxgenpcvwm vs0,v1,3" | |
49977100 CL |
639 | func_check "dmxxmfacc a4" |
640 | func_check "dmxxmtacc a4" | |
82d9b280 WS |
641 | func_check "xxpermx vs0,vs1,vs2,vs3,0" |
642 | func_check "xxpermx vs0,vs1,vs2,vs3,3" | |
49977100 | 643 | func_check "dmsetaccz a4" |
82d9b280 WS |
644 | func_check "xxsplti32dx vs0,0,2779096485" |
645 | func_check "xxsplti32dx vs0,0,4294967295" | |
646 | func_check "xxsplti32dx vs0,0,127" | |
647 | func_check "xxsplti32dx vs0,0,15" | |
648 | func_check "xxsplti32dx vs0,0,3" | |
649 | func_check "xxsplti32dx vs0,0,31" | |
650 | func_check "xxsplti32dx vs0,0,32768" | |
651 | func_check "xxsplti32dx vs0,0,63" | |
652 | func_check "xxsplti32dx vs0,0,66535" | |
653 | func_check "xxsplti32dx vs0,0,7" | |
654 | func_check "xxsplti32dx vs0,1,2779096485" | |
655 | func_check "xxsplti32dx vs0,1,4294967295" | |
656 | func_check "xxsplti32dx vs0,1,127" | |
657 | func_check "xxsplti32dx vs0,1,15" | |
658 | func_check "xxsplti32dx vs0,1,3" | |
659 | func_check "xxsplti32dx vs0,1,31" | |
660 | func_check "xxsplti32dx vs0,1,32768" | |
661 | func_check "xxsplti32dx vs0,1,63" | |
662 | func_check "xxsplti32dx vs0,1,66535" | |
663 | func_check "xxsplti32dx vs0,1,7" | |
664 | func_check "xxspltidp vs0,0" | |
665 | func_check "xxspltidp vs0,8388608" | |
666 | func_check "xxspltidp vs0,8388609" | |
667 | func_check "xxspltidp vs0,8594245" | |
668 | func_check "xxspltidp vs0,16777215" | |
669 | func_check "xxspltidp vs0,838860800" | |
670 | func_check "xxspltidp vs0,2139095040" | |
671 | func_check "xxspltidp vs0,2139095041" | |
672 | func_check "xxspltidp vs0,2139300677" | |
673 | func_check "xxspltidp vs0,2147483647" | |
674 | func_check "xxspltidp vs0,2147483648" | |
675 | func_check "xxspltidp vs0,2155872256" | |
676 | func_check "xxspltidp vs0,2155872257" | |
677 | func_check "xxspltidp vs0,2156077893" | |
678 | func_check "xxspltidp vs0,2164260863" | |
679 | func_check "xxspltidp vs0,4286578688" | |
680 | func_check "xxspltidp vs0,4286578689" | |
681 | func_check "xxspltidp vs0,4286784325" | |
682 | func_check "xxspltidp vs0,4294967295" | |
683 | func_check "xxspltiw vs0,0" | |
684 | func_check "xxspltiw vs0,1" | |
685 | func_check "xxspltiw vs0,3" | |
686 | func_check "xxspltiw vs0,8" |