Kit Barton | 01cd2e7 | 2016-03-01 20:19:43 +0000 | [diff] [blame] | 1 | Content: |
| 2 | ======== |
| 3 | . Remaining Instructions (Total 56 Instructions, include 2 unknow instructions) |
| 4 | . Done (Total 155 Instructions: 101 VSX, 54 Altivec) |
| 5 | |
| 6 | //------------------------------------------------------------------------------ |
| 7 | //. Remaining Instructions |
| 8 | //------------------------------------------------------------------------------ |
| 9 | GCC reference: https://sourceware.org/ml/binutils/2015-11/msg00071.html |
| 10 | |
| 11 | // Add PC Immediate Shifted DX-form p69 |
| 12 | [PO RT d1 d0 XO d2] addpcis RT,D |
| 13 | subpcis Rx,value = addpcis Rx,-value |
| 14 | |
| 15 | // 6.17.2 Decimal Integer Format Conversion Instructions |
| 16 | |
| 17 | // Decimal Convert From National VX-form p352 |
| 18 | [PO VRT EO VRB 1 PS XO] bcdcfn. VRT,VRB,PS |
| 19 | |
| 20 | // Decimal Convert From Zoned VX-form p353 |
| 21 | [PO VRT EO VRB 1 PS XO] bcdcfz. VRT,VRB,PS |
| 22 | |
| 23 | // Decimal Convert To National VX-form p354 |
| 24 | [PO VRT EO VRB 1 / XO] bcdctn. VRT,VRB |
| 25 | |
| 26 | // Decimal Convert To Zoned VX-form p355 |
| 27 | [PO VRT EO VRB 1 PS XO] bcdctz. VRT,VRB,PS |
| 28 | |
| 29 | // Decimal Convert From Signed Quadword VX-form p356 |
| 30 | [PO VRT EO VRB 1 PS XO] bcdcfsq. VRT,VRB,PS |
| 31 | |
| 32 | // Decimal Convert To Signed Quadword VX-form p356 |
| 33 | [PO VRT EO VRB 1 / XO] bcdctsq. VRT,VRB |
| 34 | |
| 35 | // 6.17.3 Decimal Integer Sign Manipulation Instructions |
| 36 | |
| 37 | // Decimal Copy Sign VX-form p358 |
| 38 | [PO VRT VRA VRB XO] bcdcpsgn. VRT,VRA,VRB |
| 39 | |
| 40 | // Decimal Set Sign VX-form p358 |
| 41 | [PO VRT EO VRB 1 PS XO] bcdsetsgn. VRT,VRB,PS |
| 42 | |
| 43 | // Decimal Shift VX-form p359 |
| 44 | [PO VRT VRA VRB 1 PS XO] bcds. VRT,VRA,VRB,PS |
| 45 | |
| 46 | // Decimal Unsigned Shift VX-form p360 |
| 47 | [PO VRT VRA VRB 1 / XO] bcdus. VRT,VRA,VRB |
| 48 | |
| 49 | // Decimal Shift and Round VX-form p361 |
| 50 | [PO VRT VRA VRB 1 PS XO] bcdsr. VRT,VRA,VRB,PS |
| 51 | |
| 52 | // 6.17.5 Decimal Integer Truncate Instructions |
| 53 | |
| 54 | // Decimal Truncate VX-form p362 |
| 55 | [PO VRT VRA VRB 1 PS XO] bcdtrunc. VRT,VRA,VRB,PS |
| 56 | |
| 57 | // Decimal Unsigned Truncate VX-form p363 |
| 58 | [PO VRT VRA VRB 1 / XO] bcdutrunc. VRT,VRA,VRB |
| 59 | |
| 60 | // 3.3.10.1 Character-Type Compare Instructions |
| 61 | |
| 62 | // Compare Ranged Byte X-form p87 |
| 63 | [PO BF / L RA RB XO /] cmprb BF,L,RA,RB |
| 64 | |
| 65 | // Compare Equal Byte X-form p88 |
| 66 | [PO BF // RA RB XO /] cmpeqb BF,RA,RB |
| 67 | |
| 68 | // 3.3.13 Fixed-Point Logical Instructions |
| 69 | |
| 70 | // Count Trailing Zeros Word X-form p95 |
| 71 | [PO RS RA /// XO Rc] cnttzw(.) RA,RS |
| 72 | |
| 73 | // 3.3.13.1 64-bit Fixed-Point Logical Instructions |
| 74 | |
| 75 | // Count Trailing Zeros Doubleword X-form p98 |
| 76 | [PO RS RA /// XO Rc] cnttzd(.) RA,RS |
| 77 | |
| 78 | // 4.4 Copy-Paste Facility |
| 79 | |
| 80 | // Copy X-form p858 |
| 81 | [PO /// L RA RB XO /] copy RA,RB,L |
| 82 | copy_first = copy RA, RB, 1 |
| 83 | // CP_Abort p860 |
| 84 | [PO /// /// /// XO /] cp_abort |
| 85 | |
| 86 | // Paste p859 |
| 87 | [PO /// L RA RB XO Rc] paste(.) RA,RB,L |
| 88 | paste_last = paste RA,RB,1 |
| 89 | |
| 90 | // 3.3.9 Fixed-Point Arithmetic Instructions |
| 91 | |
| 92 | // Deliver A Random Number X-form p79 |
| 93 | [PO RT /// L /// XO /] darn RT,L |
| 94 | |
| 95 | // Multiply-Add High Doubleword VA-form p81 |
| 96 | [PO RT RA RB RC XO] maddhd RT,RA.RB,RC |
| 97 | |
| 98 | // Multiply-Add High Doubleword Unsigned VA-form p81 |
| 99 | [PO RT RA RB RC XO] maddhdu RT,RA.RB,RC |
| 100 | |
| 101 | // Multiply-Add Low Doubleword VA-form p81 |
| 102 | [PO RT RA RB RC XO] maddld RT,RA.RB,RC |
| 103 | |
| 104 | // Modulo Signed Word X-form p76 |
| 105 | [PO RT RA RB XO /] modsw RT,RA,RB |
| 106 | |
| 107 | // Modulo Unsigned Word X-form p76 |
| 108 | [PO RT RA RB XO /] moduw RT,RA,RB |
| 109 | |
| 110 | // Modulo Signed Doubleword X-form p84 |
| 111 | [PO RT RA RB XO /] modsd RT,RA,RB |
| 112 | |
| 113 | // Modulo Unsigned Doubleword X-form p84 |
| 114 | [PO RT RA RB XO /] modud RT,RA,RB |
| 115 | |
| 116 | |
| 117 | // DFP Test Significance Immediate [Quad] X-form p204 |
| 118 | [PO BF / UIM FRB XO /] dtstsfi BF,UIM,FRB |
| 119 | [PO BF / UIM FRBp XO /] dtstsfiq BF,UIM,FRBp |
| 120 | |
| 121 | // 3.3.14.2.1 64-bit Fixed-Point Shift Instructions |
| 122 | |
| 123 | // Extend-Sign Word and Shift Left Immediate XS-form p109 |
| 124 | [PO RS RA sh XO sh Rc] extswsli(.) RA,RS,SH |
| 125 | |
| 126 | // 4.5.1 Load Atomic |
| 127 | |
| 128 | // Load Word Atomic X-form p864 |
| 129 | [PO RT RA FC XO /] lwat RT,RA,FC |
| 130 | |
| 131 | // Load Doubleword Atomic X-form p864 |
| 132 | [PO RT RA FC XO /] ldat RT,RA,FC |
| 133 | |
| 134 | // 4.5.2 Store Atomic |
| 135 | |
| 136 | // Store Word Atomic X-form p866 |
| 137 | [PO RS RA FC XO /] stwat RS,RA,FC |
| 138 | |
| 139 | // Store Doubleword Atomic X-form p866 |
| 140 | [PO RS RA FC XO /] stdat RS,RA,FC |
| 141 | |
| 142 | // 3.3.2.1 64-bit Fixed-Point Load Instructions |
| 143 | |
| 144 | // Load Doubleword Monitored Indexed X-form p54 |
| 145 | [PO RT RA RB XO /] ldmx RT,RA,RB |
| 146 | |
| 147 | // 3.3.16 Move To/From Vector-Scalar Register Instructions |
| 148 | |
| 149 | // Move From VSR Lower Doubleword XX1-form p111 |
| 150 | [PO S RA /// XO SX] mfvsrld RA,XS |
| 151 | |
| 152 | // Move To VSR Double Doubleword XX1-form p114 |
| 153 | [PO T RA RB XO TX] mtvsrdd XT,RA,RB |
| 154 | |
| 155 | // Move To VSR Word & Splat XX1-form p115 |
| 156 | [PO T RA /// XO TX] mtvsrws XT,RA |
| 157 | |
| 158 | // Move to CR from XER Extended X-form p119 |
| 159 | [PO BF // /// /// XO /] mcrxrx BF |
| 160 | |
| 161 | // Set Boolean X-form p121 |
| 162 | [PO RT BFA // /// XO /] setb RT,BFA |
| 163 | |
| 164 | // Message Synchronize X-form p1126 |
| 165 | [PO /// /// /// XO /] msgsync |
| 166 | |
| 167 | // SLB Invalidate Entry Global X-form p1026 |
| 168 | [PO RS /// RB XO /] slbieg RS,RB |
| 169 | |
| 170 | // SLB Synchronize X-form p1031 |
| 171 | [PO /// /// /// XO /] slbsync |
| 172 | |
| 173 | // 3.3.2.1 Power-Saving Mode Instruction |
| 174 | |
| 175 | // stop XL-form p957 |
| 176 | [PO /// /// /// XO /] stop |
| 177 | |
| 178 | // 4.6.4 Wait Instruction |
| 179 | // Wait X-form p880 |
| 180 | [PO /// WC /// /// XO /] wait |
| 181 | |
| 182 | // Unknow Instructions: |
| 183 | urfid |
| 184 | - gcc's implementation: |
| 185 | {"urfid", XL(19,306), 0xffffffff, POWER9, PPCNONE, {0}}, |
| 186 | (4c 00 02 64|64 02 00 4c) urfid |
| 187 | |
| 188 | rmieg |
| 189 | - gcc's implementation: |
| 190 | {"rmieg", X(31,882), XRTRA_MASK, POWER9, PPCNONE, {RB}}, |
| 191 | (7c 00 f6 e4|e4 f6 00 7c) rmieg r30 |
| 192 | |
| 193 | //------------------------------------------------------------------------------ |
| 194 | //. Done: |
| 195 | //------------------------------------------------------------------------------ |
| 196 | |
| 197 | //====================================== |
| 198 | "vsx instructions" |
| 199 | |
| 200 | //-------------------------------------- |
| 201 | "7.6.1.2.1 VSX Scalar Move Instructions" |
| 202 | // VSX Scalar Quad-Precision Move Instructions |
| 203 | |
| 204 | // VSX Scalar Copy Sign Quad-Precision X-form p.553 |
| 205 | [PO VRT VRA VRB XO /] xscpsgnqp |
| 206 | |
| 207 | // VSX Scalar Absolute Quad-Precision X-form 531 |
| 208 | // VSX Scalar Negate Quad-Precision X-form 627 |
| 209 | // VSX Scalar Negative Absolute Quad-Precision X-form 626 |
| 210 | [PO VRT XO VRB XO /] xsabsqp xsnegqp xsnabsqp |
| 211 | |
| 212 | //-------------------------------------- |
| 213 | "7.6.1.3 VSX Floating-Point Arithmetic Instructions" |
| 214 | |
| 215 | // VSX Scalar Quad-Precision Elementary Arithmetic |
| 216 | |
| 217 | // VSX Scalar Add Quad-Precision [using round to Odd] X-form 539 |
| 218 | // VSX Scalar Divide Quad-Precision [using round to Odd] X-form 584 |
| 219 | // VSX Scalar Multiply Quad-Precision [using round to Odd] X-form 622 |
| 220 | [PO VRT VRA VRB XO RO] xsaddqp xsaddqpo xsdivqp xsdivqpo xsmulqp xsmulqpo |
| 221 | |
| 222 | // VSX Scalar Square Root Quad-Precision [using round to Odd] X-form 662 |
| 223 | // VSX Scalar Subtract Quad-Precision [using round to Odd] X-form 667 |
| 224 | xssubqp xssubqpo |
| 225 | |
| 226 | [PO VRT XO VRB XO RO] xssqrtqp xssqrtqpo |
| 227 | |
| 228 | // VSX Scalar Quad-Precision Multiply-Add Arithmetic Instructions |
| 229 | |
| 230 | // VSX Scalar Multiply-Add Quad-Precision [using round to Odd] X-form 596 |
| 231 | // VSX Scalar Multiply-Subtract Quad-Precision [using round to Odd] X-form 617 |
| 232 | // VSX Scalar Negative Multiply-Add Quad-Precision [using round to Odd] X-form 636 |
| 233 | // VSX Scalar Negative Multiply-Subtract Quad-Precision [using round to Odd] |
| 234 | // X-form 645 |
| 235 | [PO VRT VRA VRB XO RO] xsmaddqp xsmaddqpo xsmsubqp xsmsubqpo |
| 236 | xsnmaddqp xsnmaddqpo xsnmsubqp xsnmsubqpo |
| 237 | |
| 238 | 22 |
| 239 | //-------------------------------------- |
| 240 | "7.6.1.4 VSX Floating-Point Compare Instructions" |
| 241 | |
| 242 | // VSX Scalar Quad-Precision Compare Instructions |
| 243 | |
| 244 | // VSX Scalar Compare Ordered Quad-Precision X-form 549 |
| 245 | // VSX Scalar Compare Unordered Quad-Precision X-form 552 |
| 246 | [PO BF // VRA VRB XO /] xscmpoqp xscmpuqp |
| 247 | |
| 248 | "7.6.1.8 VSX Scalar Floating-Point Support Instructions" |
| 249 | // VSX Scalar Compare Exponents Quad-Precision X-form p. 541 542 |
| 250 | [PO BF // A B XO AX BX /] xscmpexpdp |
| 251 | [PO BF // VRA VRB XO /] xscmpexpqp |
| 252 | |
| 253 | // VSX Scalar Compare DP, XX3-form, p.543 544 545 |
| 254 | // VSX Scalar Compare Equal Double-Precision, |
| 255 | [PO T A B XO AX BX TX] xscmpeqdp xscmpgedp xscmpgtdp xscmpnedp |
| 256 | |
| 257 | // VSX Vector Compare Not Equal Double-Precision XX3-form 691 |
| 258 | [PO T A B Rc XO AX BX TX] xvcmpnedp xvcmpnedp. xvcmpnesp xvcmpnesp. |
| 259 | |
| 260 | //-------------------------------------- |
| 261 | "7.6.1.5 VSX FP-FP Conversion Instructions" |
| 262 | // VSX Scalar Quad-Precision Floating-Point Conversion Instructions |
| 263 | |
| 264 | // VSX Scalar round & Convert Quad-Precision format to Double-Precision format |
| 265 | // [using round to Odd] X-form 567 |
| 266 | [PO VRT XO VRB XO /] xscvqpdp xscvqpdpo (actually [PO VRT XO VRB XO RO]) |
| 267 | [PO VRT XO VRB XO /] xscvdpqp |
| 268 | |
| 269 | // VSX Scalar Quad-Precision Convert to Integer Instructions |
| 270 | |
| 271 | // VSX Scalar truncate & Convert Quad-Precision format to Signed Doubleword format |
| 272 | // 568 570 572 574 |
| 273 | [PO VRT XO VRB XO /] xscvqpsdz xscvqpswz xscvqpudz xscvqpuwz |
| 274 | 576 = 580 xscvsdqp xscvudqp |
| 275 | |
| 276 | "7.6.1.7 VSX Round to Floating-Point Integer Instructions" |
| 277 | // VSX Scalar round & Convert Double-Precision format to Half-Precision format |
| 278 | // XX2-form 554 566 |
| 279 | [PO T XO B XO BX TX] xscvdphp xscvhpdp |
| 280 | |
| 281 | // VSX Vector Convert Half-Precision format to Single-Precision format |
| 282 | // XX2-form 703 705 |
| 283 | [PO T XO B XO BX TX] xvcvhpsp xvcvsphp |
| 284 | |
| 285 | // VSX Scalar Round to Quad-Precision Integer [with Inexact] Z23-form 654 |
| 286 | [PO VRT /// R VRB RMC XO EX] xsrqpi xsrqpix |
| 287 | |
| 288 | // VSX Scalar Round Quad-Precision to Double-Extended Precision Z23-form 656 |
| 289 | [PO VRT /// R VRB RMC XO /] xsrqpxp |
| 290 | def XSRQPXP : Z23Form_1<63, 37, |
| 291 | (outs vrrc:$vT), (ins u5imm:$R, vrrc:$vB, u2imm:$RMC), |
| 292 | "xsrqpxp $vT, $R, $vB, $RMC"), IIC_VecFP, []>; |
| 293 | |
| 294 | 27~28 |
| 295 | //-------------------------------------- |
| 296 | // VSX Scalar Insert Exponent Double-Precision X-form 588 |
| 297 | // VSX Scalar Insert Exponent Quad-Precision X-form 589 |
| 298 | [PO VT rA rB XO /] xsiexpdp |
| 299 | [PO VRT VRA VRB XO /] xsiexpqp |
| 300 | |
| 301 | // VSX Vector Insert Exponent Double-Precision XX3-form 722 |
| 302 | [PO T A B XO AX BX TX] xviexpdp xviexpsp |
| 303 | |
| 304 | // VSX Vector Extract Unsigned Word XX2-form 788 |
| 305 | // VSX Vector Insert Word XX2-form |
| 306 | [PO T / UIM B XO BX TX] xxextractuw xxinsertw |
| 307 | |
| 308 | // VSX Scalar Extract Exponent Double-Precision XX2-form 676 |
| 309 | [PO BF DCMX B XO BX /] |
| 310 | [PO T XO B XO BX /] xsxexpdp xsxsigdp |
| 311 | // X-form |
| 312 | [PO VRT XO VRB XO /] xsxexpqp xsxsigqp |
| 313 | |
| 314 | // VSX Vector Extract Exponent Double-Precision XX2-form 784 |
| 315 | [PO T XO B XO BX TX] xvxexpdp xvxexpsp |
| 316 | |
| 317 | // VSX Vector Extract Significand Double-Precision XX2-form 785 |
| 318 | [PO T XO B XO BX TX] xvxsigdp xvxsigsp |
| 319 | |
| 320 | //-------------------------------------- |
| 321 | // VSX Scalar Test Data Class Double-Precision XX2-form p673 |
| 322 | // VSX Scalar Test Data Class Quad-Precision X-form 674 |
| 323 | // VSX Scalar Test Data Class Single-Precision XX2-form 675 |
| 324 | [PO BF DCMX B XO BX /] xststdcdp xststdcsp |
| 325 | [PO BF DCMX VRB XO /] xststdcqp |
| 326 | |
| 327 | // VSX Vector Test Data Class Double-Precision XX2-form 782 783 |
| 328 | [PO T dx B XO dc XO dm BX TX] xvtstdcdp xvtstdcsp |
| 329 | |
| 330 | //-------------------------------------- |
| 331 | // VSX Scalar Maximum Type-C Double-Precision XX3-form 601 ~ 609 |
| 332 | [PO T A B XO AX BX TX] xsmaxcdp xsmaxjdp xsmincdp xsminjdp |
| 333 | |
| 334 | //-------------------------------------- |
| 335 | // VSX Vector Byte-Reverse Doubleword XX2-form 786 787 |
| 336 | [PO T XO B XO BX TX] xxbrd xxbrh xxbrq xxbrw |
| 337 | |
| 338 | // VSX Vector Permute XX3-form 794 |
| 339 | [PO T A B XO AX BX TX] xxperm xxpermr |
| 340 | |
| 341 | // VSX Vector Splat Immediate Byte 796 x-form |
| 342 | [PO T EO IMM8 XO TX] xxspltib <= sign or unsigned? |
| 343 | |
| 344 | 30 |
| 345 | //-------------------------------------- |
| 346 | // Load VSX Vector DQ-form 511 |
| 347 | [PO T RA DQ TX XO] lxv |
| 348 | |
| 349 | // Store VSX Vector DQ-form 526 |
| 350 | [PO S RA DQ SX XO] stxv |
| 351 | |
| 352 | // Load VSX Scalar Doubleword DS-form 499 |
| 353 | // Load VSX Scalar Single DS-form 504 |
| 354 | [PO VRT RA DS XO] lxsd lxssp |
| 355 | |
| 356 | // Store VSX Scalar Doubleword DS-form 517 |
| 357 | // Store VSX Scalar Single DS-form 520 |
| 358 | [PO VRT RA DS XO] stxsd stxssp |
| 359 | |
| 360 | |
| 361 | // Load VSX Vector Indexed X-form 511 |
| 362 | // Load VSX Scalar as Integer Byte & Zero Indexed X-form 501 |
| 363 | // Load VSX Vector Byte*16 Indexed X-form 506 |
| 364 | // Load VSX Vector with Length X-form 508 |
| 365 | // Load VSX Vector Left-justified with Length X-form 510 |
| 366 | // Load VSX Vector Halfword*8 Indexed X-form 514 |
| 367 | // Load VSX Vector Word & Splat Indexed X-form 516 |
| 368 | [PO T RA RB XO TX] lxvx lxsibzx lxsihzx lxvb16x lxvl lxvll lxvh8x lxvwsx |
| 369 | |
| 370 | // Store VSX Scalar as Integer Byte Indexed X-form 518 |
| 371 | // Store VSX Scalar as Integer Halfword Indexed X-form 518 |
| 372 | // Store VSX Vector Byte*16 Indexed X-form 522 |
| 373 | // Store VSX Vector Halfword*8 Indexed X-form 524 |
| 374 | // Store VSX Vector with Length X-form 526 |
| 375 | // Store VSX Vector Left-justified with Length X-form 528 |
| 376 | // Store VSX Vector Indexed X-form 529 |
| 377 | [PO S RA RB XO SX] stxsibx stxsihx stxvb16x stxvh8x stxvl stxvll stxvx |
| 378 | |
| 379 | 21 |
| 380 | |
| 381 | //-------------------------------------- |
| 382 | ". vector instructions" |
| 383 | |
| 384 | [1] PowerISA-v3.0 p.933 - Table 1, and Chapter 6. Vector Facility (altivec) |
| 385 | [2] https://sourceware.org/ml/binutils/2015-11/msg00071.html |
| 386 | |
| 387 | //-------------------------------------- |
| 388 | New patch: |
| 389 | // vector bit, p.367, 6.16 Vector Bit Permute Instruction |
| 390 | [PO VRT VRA VRB XO] vbpermd, (existing: vbpermq) |
| 391 | |
| 392 | // vector permute, p.280 |
| 393 | [PO VRT VRA VRB VRC XO] vpermr |
| 394 | |
| 395 | // vector rotate left, p.341 |
| 396 | [PO VRT VRA VRB XO] vrlwnm vrlwmi vrldnm vrldmi |
| 397 | |
| 398 | // vector shift, p.285 |
| 399 | [PO VRT VRA VRB XO] vslv vsrv |
| 400 | |
| 401 | // vector multiply-by-10, p.375 |
| 402 | [PO VRT VRA /// XO] vmul10cuq vmul10uq |
| 403 | [PO VRT VRA VRB XO] vmul10ecuq vmul10euq |
| 404 | |
| 405 | 12 |
| 406 | //-------------------------------------- |
| 407 | http://reviews.llvm.org/D15887 + ext + neg + prty - vbpermd |
| 408 | // vector count leading/trailing zero |
| 409 | . new vx-form: p.31, 1.6.14 VX-FORM |
| 410 | [PO RT EO VRB XO] vclzlsbb vctzlsbb (p.363) |
| 411 | |
| 412 | // Vector Count Trailing Zeros Instructions, 362 |
| 413 | [PO VRT EO VRB XO] vctzb vctzh vctzw vctzd (v16i8 v8i16 v4i32 v2i64) |
| 414 | |
| 415 | // vector extend sign (p.314) |
| 416 | [PO VRT EO VRB XO] vextsb2w vextsh2w vextsb2d vextsh2d vextsw2d |
| 417 | |
| 418 | // vector negate, p.313 |
| 419 | [PO VRT EO VRB XO] vnegd vnegw |
| 420 | |
| 421 | // vector parity, p.335 |
| 422 | [PO VRT EO VRB XO] vprtybd vprtybq vprtybw |
| 423 | |
| 424 | 16 |
| 425 | //-------------------------------------- |
| 426 | // vector compare, p.330 |
| 427 | [PO VRT VRA VRB RC XO] vcmpneb vcmpneb. vcmpneh vcmpneh. vcmpnew vcmpnew. |
| 428 | vcmpnezb vcmpnezb. vcmpnezh vcmpnezh. vcmpnezw vcmpnezw. |
| 429 | 12 |
| 430 | //-------------------------------------- |
| 431 | http://reviews.llvm.org/D15917 + insert |
| 432 | // vector extract (p.287) ref: vspltb (v2.07, p.227) |
| 433 | // vector insert, p.288 |
| 434 | [PO VRT / UIM VRB XO] vinsertb vinsertd vinserth vinsertw |
| 435 | |
| 436 | // Vector Extract Unsigned |
| 437 | [PO VRT / UIM VRB XO] vextractub vextractuh vextractuw vextractd |
| 438 | |
| 439 | // p.364: Vector Extract Unsigned Left/Right-Indexed |
| 440 | [PO RT RA VRB XO] vextublx vextubrx vextuhlx vextuhrx vextuwlx vextuwrx |
| 441 | |
| 442 | 14 |