bug 1244: update pospopcnt.s assembler comments
[libreriscv.git] / openpower / simd_vsx.mdwn
1 # OpenPOWER's SIMD VSX instruction set summary
2
3 Assessment carried out under <https://bugs.libre-soc.org/show_bug.cgi?id=544>
4
5 ## 7.6.1.1.1 VSX Scalar Storage Access Instructions
6
7 Mnemonic Instruction Name
8 lxsd Load VSX Scalar Dword
9 lxsdx Load VSX Scalar Dword Indexed
10 lxsibzx Load VSX Scalar as Integer Byte & Zero Indexed
11 lxsihax Load VSX Scalar as Integer Hword & Zero Indexed
12 lxsiwax Load VSX Scalar as Integer Word Algebraic Indexed
13 lxsiwzx Load VSX Scalar as Integer Word & Zero Indexed
14 lxssp Load VSX Scalar Single-Prcsn
15 lxsspx Load VSX Scalar Single-Prcsn Indexed
16 Table 8. VSX Scalar Load Instructions
17
18 Mnemonic Instruction Name
19 stxsd Store VSX Scalar Dword
20 stxsdx Store VSX Scalar Dword Indexed
21 stxsibx Store VSX Scalar as Integer Byte Indexed
22 stxsihx Store VSX Scalar as Integer Hword Indexed
23 stxsiwx Store VSX Scalar as Integer Word Indexed
24 stxssp Store VSX Scalar Single-Prcsn
25 stxsspx Store VSX Scalar Single-Prcsn Indexed
26 Table 9. VSX Scalar Store Instructions
27
28 ## 7.6.1.1.2 VSX Vector Storage Access Instructions
29
30 Mnemonic Instruction Name
31 lxv Load VSX Vector
32 lxvb16x Load VSX Vector Byte\*16 Indexed
33 lxvd2x Load VSX Vector Dword\*2 Indexed
34 lxvh8x Load VSX Vector Hword\*8 Indexed
35 lxvw4x Load VSX Vector Word\*4 Indexed
36 lxvx Load VSX Vector Indexed
37 Table 10.VSX Vector Load Instructions
38
39 Mnemonic Instruction Name
40 lxvdsx Load VSX Vector Dword and Splat Indexed
41 lxvwsx Load VSX Vector Word & Splat Indexed
42 Table 11.VSX Vector Load & Splat Instructions
43
44 Mnemonic Instruction Name
45 lxvl Load VSX Vector with Length
46 lxvll Load VSX Vector with Length Left-justified
47 Table 12.VSX Vector Load with Length Instructions
48
49 Mnemonic Instruction Name
50 stxv Store VSX Vector
51 stxvb16x Store VSX Vector Byte\*16 Indexed
52 stxvd2x Store VSX Vector Dword\*2 Indexed
53 stxvh8x Store VSX Vector Hword\*8 Indexed
54 stxvw4x Store VSX Vector Word\*4 Indexed
55 stxvx Store VSX Vector Indexed
56 Table 13.VSX Vector Store Instructions
57
58 Mnemonic Instruction Name
59 stxvl Store VSX Vector with Length
60 stxvll Store VSX Vector with Length Left-justified
61 Table 14.VSX Vector Store w/ Length Instructions
62
63 ## 7.6.1.2 VSX Binary Floating-Point Sign Manipulation Instructions
64 ### 7.6.1.2.1 VSX Scalar Binary Floating-Point Sign Manipulation Instructions
65
66 Mnemonic Instruction Name
67 xsabsdp VSX Scalar Absolute Double-Prcsn
68 xsabsqp VSX Scalar Absolute Quad-Prcsn
69 xscpsgndp VSX Scalar Copy Sign Double-Prcsn
70 xscpsgnqp VSX Scalar Copy Sign Quad-Prcsn
71 xsnabsdp VSX Scalar Negative Absolute Double-Prcsn
72 xsnabsqp VSX Scalar Negative Absolute Quad-Prcsn
73 xsnegdp VSX Scalar Negate Double-Prcsn
74 xsnegqp VSX Scalar Negate Quad-Prcsn
75 Table 15.VSX Scalar BFP Sign Manipulation Instructions
76
77 ### 7.6.1.2.2 VSX Vector Binary Floating-Point Sign Manipulation Instructions
78
79 Mnemonic Instruction Name
80 xvabsdp VSX Vector Absolute Value Double-Prcsn
81 xvabssp VSX Vector Absolute Value Single-Prcsn
82 xvcpsgndp VSX Vector Copy Sign Double-Prcsn
83 xvcpsgnsp VSX Vector Copy Sign Single-Prcsn
84 xvnabsdp VSX Vector Negative Absolute Value Double-Prcsn
85 xvnabssp VSX Vector Negative Absolute Value Single-Prcsn
86 xvnegdp VSX Vector Negate Double-Prcsn
87 xvnegsp VSX Vector Negate Single-Prcsn
88 Table 16.VSX Vector BFP Sign Manipulation Instructions
89
90 ## 7.6.1.3 VSX Binary Floating-Point Arithmetic Instructions
91
92 ### 7.6.1.3.1 VSX Scalar Binary Floating-Point Arithmetic Instructions
93
94 Mnemonic Instruction Name
95 xsadddp VSX Scalar Add Double-Prcsn
96 xsaddqp[o] VSX Scalar Add Quad-Prcsn [using round to Odd]
97 xsaddsp VSX Scalar Add Single-Prcsn
98 xsdivdp VSX Scalar Divide Double-Prcsn
99 xsdivqp[o] VSX Scalar Divide Quad-Prcsn [using round to Odd]
100 xsdivsp VSX Scalar Divide Single-Prcsn
101 xsmuldp VSX Scalar Multiply Double-Prcsn
102 xsmulqp[o] VSX Scalar Multiply Quad-Prcsn [using round to Odd]
103 xsmulsp VSX Scalar Multiply Single-Prcsn
104 xssqrtdp VSX Scalar Square Root Double-Prcsn
105 xssqrtqp[o] VSX Scalar Square Root Quad-Prcsn [using round to Odd]
106 xssqrtsp VSX Scalar Square Root Single-Prcsn
107 xssubdp VSX Scalar Subtract Double-Prcsn
108 xssubqp[o] VSX Scalar Subtract Quad-Prcsn [using round to Odd]
109 xssubsp VSX Scalar Subtract Single-Prcsn
110 Table 17.VSX Scalar BFP Elementary Arithmetic Instructions
111
112 Mnemonic Instruction Name
113 xsmaddadp VSX Scalar Multiply-Add Type-A Double-Prcsn
114 xsmaddasp VSX Scalar Multiply-Add Type-A Single-Prcsn
115 Table 18.VSX Scalar BFP Multiply-Add-class Instructions
116
117 Mnemonic Instruction Name
118 xsmaddmdp VSX Scalar Multiply-Add Type-M Double-Prcsn
119 xsmaddmsp VSX Scalar Multiply-Add Type-M Single-Prcsn
120 xsmaddqp[o] VSX Scalar Multiply-Add Quad-Prcsn [using round to Odd]
121 xsmsubadp VSX Scalar Multiply-Subtract Type-A Double-Prcsn
122 xsmsubasp VSX Scalar Multiply-Subtract Type-A Single-Prcsn
123 xsmsubmdp VSX Scalar Multiply-Subtract Type-M Double-Prcsn
124 xsmsubmsp VSX Scalar Multiply-Subtract Type-M Single-Prcsn
125 xsmsubqp[o] VSX Scalar Multiply-Subtract Quad-Prcsn [using round to Odd]
126 xsnmaddadp VSX Scalar Negative Multiply-Add Type-A Double-Prcsn
127 xsnmaddasp VSX Scalar Negative Multiply-Add Type-A Single-Prcsn
128 xsnmaddmdp VSX Scalar Negative Multiply-Add Type-M Double-Prcsn
129 xsnmaddmsp VSX Scalar Negative Multiply-Add Type-M Single-Prcsn
130 xsnmaddqp[o] VSX Scalar Negative Multiply-Add Quad-Prcsn [round to Odd]
131 xsnmsubadp VSX Scalar Negative Multiply-Subtract Type-A Double-Prcsn
132 xsnmsubasp VSX Scalar Negative Multiply-Subtract Type-A Single-Prcsn
133 xsnmsubmdp VSX Scalar Negative Multiply-Subtract Type-M Double-Prcsn
134 xsnmsubmsp VSX Scalar Negative Multiply-Subtract Type-M Single-Prcsn
135 xsnmsubqp[o] VSX Scalar Negative Multiply-Subtract Quad-Prcsn [rnd to Odd]
136 Table 18.VSX Scalar BFP Multiply-Add-class Instructions
137
138 Mnemonic Instruction Name
139 xsredp VSX Scalar Reciprocal Estimate Double-Prcsn
140 xsresp VSX Scalar Reciprocal Estimate Single-Prcsn
141 xsrsqrtedp VSX Scalar Reciprocal Square Root Estimate Double-Prcsn
142 xsrsqrtesp VSX Scalar Reciprocal Square Root Estimate Single-Prcsn
143 xstdivdp VSX Scalar Test for software Divide Double-Prcsn
144 xstsqrtdp VSX Scalar Test for software Square Root Double-Prcsn
145 Table 19.VSX Scalar Software BFP Divide/Square Root Instructions
146
147 ### 7.6.1.3.2 VSX Vector BFP Arithmetic Instructions
148
149 Mnemonic Instruction Name
150 xvadddp VSX Vector Add Double-Prcsn
151 xvaddsp VSX Vector Add Single-Prcsn
152 xvdivdp VSX Vector Divide Double-Prcsn
153 xvdivsp VSX Vector Divide Single-Prcsn
154 xvmuldp VSX Vector Multiply Double-Prcsn
155 xvmulsp VSX Vector Multiply Single-Prcsn
156 xvsqrtdp VSX Vector Square Root Double-Prcsn
157 xvsqrtsp VSX Vector Square Root Single-Prcsn
158 xvsubdp VSX Vector Subtract Double-Prcsn
159 xvsubsp VSX Vector Subtract Single-Prcsn
160 Table 20.VSX Vector BFP Elementary Arithmetic Instructions
161
162 Mnemonic Instruction Name
163 xvmaddadp VSX Vector Multiply-Add Type-A Double-Prcsn
164 xvmaddasp VSX Vector Multiply-Add Type-A Single-Prcsn
165 xvmaddmdp VSX Vector Multiply-Add Type-M Double-Prcsn
166 xvmaddmsp VSX Vector Multiply-Add Type-M Single-Prcsn
167 xvmsubadp VSX Vector Multiply-Subtract Type-A Double-Prcsn
168 xvmsubasp VSX Vector Multiply-Subtract Type-A Single-Prcsn
169 xvmsubmdp VSX Vector Multiply-Subtract Type-M Double-Prcsn
170 xvmsubmsp VSX Vector Multiply-Subtract Type-M Single-Prcsn
171 xvnmaddadp VSX Vector Negative Multiply-Add Type-A Double-Prcsn
172 xvnmaddasp VSX Vector Negative Multiply-Add Type-A Single-Prcsn
173 xvnmaddmdp VSX Vector Negative Multiply-Add Type-M Double-Prcsn
174 xvnmaddmsp VSX Vector Negative Multiply-Add Type-M Single-Prcsn
175 xvnmsubadp VSX Vector Negative Multiply-Subtract Type-A Double-Prcsn
176 xvnmsubasp VSX Vector Negative Multiply-Subtract Type-A Single-Prcsn
177 xvnmsubmdp VSX Vector Negative Multiply-Subtract Type-M Double-Prcsn
178 xvnmsubmsp VSX Vector Negative Multiply-Subtract Type-M Single-Prcsn
179 Table 21.VSX Vector BFP Multiply-Add-class Instructions
180
181 Mnemonic Instruction Name
182 xvredp VSX Vector Reciprocal Estimate Double-Prcsn
183 xvresp VSX Vector Reciprocal Estimate Single-Prcsn
184 xvrsqrtedp VSX Vector Reciprocal Square Root Estimate Double-Prcsn
185 xvrsqrtesp VSX Vector Reciprocal Square Root Estimate Single-Prcsn
186 xvtdivdp VSX Vector Test for software Divide Double-Prcsn
187 xvtdivsp VSX Vector Test for software Divide Single-Prcsn
188 xvtsqrtdp VSX Vector Test for software Square Root Double-Prcsn
189 xvtsqrtsp VSX Vector Test for software Square Root Single-Prcsn
190 Table 22.VSX Vector BFP Software Divide/Square Root Instructions
191
192 ## 7.6.1.4 VSX Binary Floating-Point Compare Instructions
193 ### 7.6.1.4.1 VSX Scalar BFP Compare Instructions
194
195 Mnemonic Instruction Name
196 xscmpodp VSX Scalar Compare Ordered Double-Prcsn
197 xscmpoqp VSX Scalar Compare Ordered Quad-Prcsn
198 xscmpudp VSX Scalar Compare Unordered Double-Prcsn
199 xscmpuqp VSX Scalar Compare Unordered Quad-Prcsn
200 Table 23.VSX Scalar BFP Compare Instructions
201
202 Mnemonic Instruction Name
203 xscmpeqdp VSX Scalar Compare Equal Double-Prcsn
204 xscmpgedp VSX Scalar Compare Greater Than or Equal Double-Prcsn
205 xscmpgtdp VSX Scalar Compare Greater Than Double-Prcsn
206 Table 24.VSX Scalar BFP Predicate Compare Instructions
207
208 Mnemonic Instruction Name
209 xsmaxcdp VSX Scalar Maximum Type-C Double-Prcsn
210 xsmaxdp VSX Scalar Maximum Double-Prcsn
211 xsmaxjdp VSX Scalar Maximum Type-J Double-Prcsn
212 xsmincdp VSX Scalar Minimum Type-C Double-Prcsn
213 xsmindp VSX Scalar Minimum Double-Prcsn
214 xsminjdp VSX Scalar Minimum Type-J Double-Prcsn
215 Table 25.VSX Scalar BFP Maximum/Minimum Instructions
216
217 ### 7.6.1.4.2 VSX Vector BFP Compare Instructions
218
219 Mnemonic Instruction Name
220 xvcmpeqdp[.] VSX Vector Compare Equal To Double-Prcsn
221 xvcmpeqsp[.] VSX Vector Compare Equal To Single-Prcsn
222 xvcmpgedp[.] VSX Vector Compare Greater Than or Equal To Double-Prcsn
223 xvcmpgesp[.] VSX Vector Compare Greater Than or Equal To Single-Prcsn
224 xvcmpgtdp[.] VSX Vector Compare Greater Than Double-Prcsn
225 xvcmpgtsp[.] VSX Vector Compare Greater Than Single-Prcsn
226 Table 26.VSX Vector BFP Predicate Compare Instructions
227
228 Mnemonic Instruction Name
229 xvmaxdp VSX Vector Maximum Double-Prcsn
230 xvmaxsp VSX Vector Maximum Single-Prcsn
231 xvmindp VSX Vector Minimum Double-Prcsn
232 xvminsp VSX Vector Minimum Single-Prcsn
233 Table 27.VSX Vector BFP Maximum/Minimum Instructions
234
235 ## 7.6.1.5 VSX Binary Floating-Point Round to Shorter Prcsn Instructions
236
237 Mnemonic Instruction Name
238 xsrqpxp VSX Scalar Round Quad-Prcsn to Double-Extended-Prcsn
239 xsrsp VSX Scalar Round Double-Prcsn to Single-Prcsn
240 Table 28.VSX Scalar BFP Round to Shorter Prcsn Instructions
241 ## 7.6.1.6 VSX Binary Floating-Point Convert to Shorter Prcsn Instructions
242
243 Mnemonic Instruction Name
244 xscvdphp VSX Scalar Convert w/ round Double-Prcsn to Half-Prcsn fmt
245 xscvdpsp VSX Scalar Convert w/ round Double-Prcsn to Single-Prcsn fmt
246 xscvdpspn VSX Scalar Convert Double-Prcsn to Single-Prcsn fmt Non-signalling
247 VSX Scalar Convert w/ round Quad-Prcsn to Double-Prcsn fmt [using round to xscvqpdp[o] Odd]
248 Table 29.VSX Scalar BFP Convert to Shorter Prcsn Instructions
249
250 Mnemonic Instruction Name
251 xvcvdpsp VSX Vector Convert w/ round Double-Prcsn to Single-Prcsn fmt
252 xvcvsphp VSX Vector Convert w/ round Single-Prcsn to Half-Prcsn fmt
253 Table 30.VSX Vector BFP Convert to Shorter Prcsn Instructions
254
255 ## 7.6.1.7 VSX Binary Floating-Point Convert to Longer Prcsn Instructions
256 Mnemonic Instruction Name
257 xscvdpqp VSX Scalar Convert Double-Prcsn to Quad-Prcsn fmt
258 xscvhpdp VSX Scalar Convert Half-Prcsn to Double-Prcsn fmt
259 xscvspdp VSX Scalar Convert Single-Prcsn to Double-Prcsn fmt
260 xscvspdpn VSX Scalar Convert Single-Prcsn to Double-Prcsn fmt Non-signalling
261 Table 31.VSX Scalar BFP Convert to Longer Prcsn Instructions
262
263 Mnemonic Instruction Name
264 xvcvhpsp VSX Vector Convert Half-Prcsn to Single-Prcsn fmt
265 xvcvspdp VSX Vector Convert Single-Prcsn to Double-Prcsn fmt
266 Table 32.VSX Vector BFP Convert to Longer Prcsn Instructions
267
268 ## 7.6.1.8 VSX Binary Floating-Point Round to Integral Instructions
269
270 ### 7.6.1.8.1 VSX Scalar BFP Round to Integral Instructions
271
272 Mnemonic Instruction Name
273 xsrdpi VSX Scalar Round to Double-Prcsn Integer using round to Nearest Away
274 xsrdpic VSX Scalar Round to Double-Prcsn Integer Exact using Current rounding mode
275 xsrdpim VSX Scalar Round to Double-Prcsn Integer using round towards -Infinity
276 xsrdpip VSX Scalar Round to Double-Prcsn Integer using round towards +Infinity
277 xsrdpiz VSX Scalar Round to Double-Prcsn Integer using round towards Zero
278 xsrqpi VSX Scalar Round to Quad-Prcsn Integer
279 xsrqpix VSX Scalar Round Quad-Prcsn to Integral Exact
280 xvrdpi VSX Vector Round to Double-Prcsn Integer using round to Nearest Away
281 xvrdpic VSX Vector Round to Double-Prcsn Integer Exact using Current rounding mode
282 xvrdpim VSX Vector Round to Double-Prcsn Integer using round towards -Infinity
283 xvrdpip VSX Vector Round to Double-Prcsn Integer using round towards +Infinity
284 xvrdpiz VSX Vector Round to Double-Prcsn Integer using round towards Zero
285 Table 33.VSX Scalar BFP Round to Integral Instructions
286
287 ### 7.6.1.8.2 VSX Vector BFP Round to Integral Instructions
288
289 Mnemonic Instruction Name
290 xvrdpi VSX Vector Round to Double-Prcsn Integer using round to Nearest Away
291 xvrdpic VSX Vector Round to Double-Prcsn Integer Exact using Current rounding mode
292 xvrdpim VSX Vector Round to Double-Prcsn Integer using round towards -Infinity
293 xvrdpip VSX Vector Round to Double-Prcsn Integer using round towards +Infinity
294 xvrdpiz VSX Vector Round to Double-Prcsn Integer using round towards Zero
295 xvrspi VSX Vector Round to Single-Prcsn Integer using round to Nearest Away
296 xvrspic VSX Vector Round to Single-Prcsn Integer Exact using Current rounding mode
297 xvrspim VSX Vector Round to Single-Prcsn Integer using round towards -Infinity
298 xvrspip VSX Vector Round to Single-Prcsn Integer using round towards +Infinity
299 xvrspiz VSX Vector Round to Single-Prcsn Integer using round towards Zero
300 Table 34.VSX Vector BFP Round to Integral Instructions
301
302 ## 7.6.1.9 VSX Binary Floating-Point Convert To Integer Instructions
303
304 ### 7.6.1.9.1 VSX Scalar BFP Convert To Integer Instructions
305
306 Mnemonic Instruction Name
307 xscvdpsxds VSX Scalar Convert w/ truncate Double-Prcsn to Signed Dword fmt
308 xscvdpsxws VSX Scalar Convert w/ truncate Double-Prcsn to Signed Word fmt
309 xscvdpuxds VSX Scalar Convert w/ truncate Double-Prcsn to Unsigned Dword fmt
310 xscvdpuxws VSX Scalar Convert w/ truncate Double-Prcsn to Unsigned Word fmt
311 xscvqpsdz VSX Scalar Convert w/ truncate Quad-Prcsn to Signed Dword fmt
312 xscvqpswz VSX Scalar Convert w/ truncate Quad-Prcsn to Signed Word fmt
313 xscvqpudz VSX Scalar Convert w/ truncate Quad-Prcsn to Unsigned Dword fmt
314 xscvqpuwz VSX Scalar Convert w/ truncate Quad-Prcsn to Unsigned Word fmt
315 Table 35.VSX Scalar BFP Convert to Integer Instructions
316
317 ### 7.6.1.9.2 VSX Vector BFP Convert To Integer Instructions
318
319 Mnemonic Instruction Name
320 xvcvdpsxds VSX Vector Convert w/ truncate Double-Prcsn to Signed Dword fmt
321 xvcvdpsxws VSX Vector Convert w/ truncate Double-Prcsn to Signed Word fmt
322 xvcvdpuxds VSX Vector Convert w/ truncate Double-Prcsn to Unsigned Dword fmt
323 xvcvdpuxws VSX Vector Convert w/ truncate Double-Prcsn to Unsigned Word fmt
324 xvcvspsxds VSX Vector Convert w/ truncate Single-Prcsn to Signed Dword fmt
325 xvcvspsxws VSX Vector Convert w/ truncate Single-Prcsn to Signed Word fmt
326 xvcvspuxds VSX Vector Convert w/ truncate Single-Prcsn to Unsigned Dword fmt
327 xvcvspuxws VSX Vector Convert w/ truncate Single-Prcsn to Unsigned Word fmt
328 Table 36.VSX Vector BFP Convert To Integer Instructions
329
330 ## 7.6.1.10 VSX Binary Floating-Point Convert From Integer Instructions
331
332 ### 7.6.1.10.1 VSX Scalar BFP Convert From Integer Instructions
333
334 Mnemonic Instruction Name
335 xscvsdqp VSX Scalar Convert Signed Dword to Quad-Prcsn fmt
336 xscvsxddp VSX Scalar Convert w/ round Signed Dword to Double-Prcsn fmt
337 xscvsxdsp VSX Scalar Convert w/ round Signed Dword to Single-Prcsn fmt
338 xscvudqp VSX Scalar Convert Unsigned Dword to Quad-Prcsn fmt
339 xscvuxddp VSX Scalar Convert w/ round Unsigned Dword to Double-Prcsn fmt
340 xscvuxdsp VSX Scalar Convert w/ round Unsigned Dword to Single-Prcsn fmt
341 Table 37.VSX Scalar BFP Convert from Integer Instructions
342
343 ### 7.6.1.10.2 VSX Vector BFP Convert From Integer Instructions
344
345 Mnemonic Instruction Name
346 xvcvsxddp VSX Vector Convert w/ round Signed Dword to Double-Prcsn fmt
347 xvcvsxwdp VSX Vector Convert Signed Word to Double-Prcsn fmt
348 xvcvuxddp VSX Vector Convert w/ round Unsigned Dword to Double-Prcsn fmt
349 xvcvuxwdp VSX Vector Convert Unsigned Word to Double-Prcsn fmt
350 xvcvsxdsp VSX Vector Convert w/ round Signed Dword to Single-Prcsn fmt
351 xvcvsxwsp VSX Vector Convert w/ round Signed Word to Single-Prcsn fmt
352 xvcvuxdsp VSX Vector Convert w/ round Unsigned Dword to Single-Prcsn fmt
353 xvcvuxwsp VSX Vector Convert w/ round Unsigned Word to Single-Prcsn fmt
354 Table 38.VSX Vector BFP Convert From Integer Instructions
355
356 ## 7.6.1.11 VSX Binary Floating-Point Math Support Instructions
357
358 ### 7.6.1.11.1 VSX Scalar BFP Math Support Instructions
359
360 Mnemonic Instruction Name
361 xscmpexpdp VSX Scalar Compare Exponents Double-Prcsn
362 xscmpexpqp VSX Scalar Compare Exponents Quad-Prcsn
363 xsiexpdp VSX Scalar Insert Exponent Double-Prcsn
364 xsiexpqp VSX Scalar Insert Exponent Quad-Prcsn
365 xststdcdp VSX Scalar Test Data Class Double-Prcsn
366 xststdcqp VSX Scalar Test Data Class Quad-Prcsn
367 xststdcsp VSX Scalar Test Data Class Single-Prcsn
368 xsxexpdp VSX Scalar Extract Exponent Double-Prcsn
369 xsxexpqp VSX Scalar Extract Exponent Quad-Prcsn
370 Table 39. VSX Scalar BFP Math Support Instructions
371
372 Mnemonic Instruction Name
373 xsxsigdp VSX Scalar Extract Significand Double-Prcsn
374 xsxsigqp VSX Scalar Extract Significand Quad-Prcsn
375 Table 39. VSX Scalar BFP Math Support Instructions
376
377 ### 7.6.1.11.2 VSX Vector BFP Math Support Instructions
378
379 Mnemonic Instruction Name
380 xviexpdp VSX Vector Insert Exponent Double-Prcsn
381 xviexpsp VSX Vector Insert Exponent Single-Prcsn
382 xvtstdcdp VSX Vector Test Data Class Double-Prcsn
383 xvtstdcsp VSX Vector Test Data Class Single-Prcsn
384 xvxexpdp VSX Vector Extract Exponent Double-Prcsn
385 xvxexpsp VSX Vector Extract Exponent Single-Prcsn
386 xvxsigdp VSX Vector Extract Significand Double-Prcsn
387 xvxsigsp VSX Vector Extract Significand Single-Prcsn
388 Table 40. VSX Vector BFP Math Support Instructions
389
390 ## 7.6.1.12 VSX Vector Logical Instructions
391
392 ### 7.6.1.12.1 VSX Vector Logical Instructions
393
394 Mnemonic Instruction Name
395 xxland VSX Vector Logical AND
396 xxlandc VSX Vector Logical AND with Complement
397 xxleqv VSX Vector Logical Equivalence
398 xxlnand VSX Vector Logical NAND
399 xxlnor VSX Vector Logical NOR
400 xxlor VSX Vector Logical OR
401 xxlorc VSX Vector Logical OR with Complement
402 xxlxor VSX Vector Logical XOR
403 Table 41.VSX Logical Instructions
404
405 ### 7.6.1.12.2 VSX Vector Select Instruction
406
407 Mnemonic Instruction Name
408 xxsel VSX Vector Select
409 Table 42.VSX Vector Select Instruction
410
411 ## 7.6.1.13 VSX Vector Permute-class Instructions
412
413 ### 7.6.1.13.1 VSX Vector Byte-Reverse Instructions
414
415 Mnemonic Instruction Name
416 xxbrd VSX Vector Byte-Reverse Dword
417 xxbrh VSX Vector Byte-Reverse Hword
418 xxbrq VSX Vector Byte-Reverse Qword
419 xxbrw VSX Vector Byte-Reverse Word
420 Table 43.VSX Vector Byte-Reverse Instructions
421
422 ### 7.6.1.13.2 VSX Vector Insert/Extract Instructions
423
424 Mnemonic Instruction Name
425 xxextractuw VSX Vector Extract Unsigned Word
426 xxinsertw VSX Vector Insert Word
427 Table 44.VSX Vector Insert/Extract Instructions
428
429 ### 7.6.1.13.3 VSX Vector Merge Instructions
430
431 Mnemonic Instruction Name
432 xxmrghw VSX Vector Merge High Word
433 xxmrglw VSX Vector Merge Low Word
434 Table 45.VSX Vector Merge Instructions
435
436 ### 7.6.1.13.4 VSX Vector Splat Instructions
437
438 Mnemonic Instruction Name
439 xxspltib VSX Vector Splat Immediate Byte
440 xxspltw VSX Vector Splat Word
441 Table 46.VSX Vector Splat Instructions
442
443 ### 7.6.1.13.5 VSX Vector Permute Instructions
444
445 Mnemonic Instruction Name
446 xxpermdi VSX Vector Permute Dword Immediate
447 xxperm VSX Vector Permute
448 xxpermr VSX Vector Permute Right-indexed
449 Table 47.VSX Vector Permute Instruction
450
451 ### 7.6.1.13.6 VSX Vector Shift Left Double Instructions
452
453 Mnemonic Instruction Name
454 xxsldwi VSX Vector Shift Left Double by Word Immediate
455 Table 48.VSX Vector Shift Left Double Instruction
456