summaryrefslogtreecommitdiffstats
path: root/lib/Target/PowerPC/PPCSchedule.td
blob: 2f3a1f983bce3ef940ab9d04c53e51b44cc36467 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
//===-- PPCSchedule.td - PowerPC Scheduling Definitions ----*- tablegen -*-===//
//
//                     The LLVM Compiler Infrastructure
//
// This file is distributed under the University of Illinois Open Source
// License. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//

//===----------------------------------------------------------------------===//
// Instruction Itinerary classes used for PowerPC
//
def IIC_IntSimple    : InstrItinClass;
def IIC_IntGeneral   : InstrItinClass;
def IIC_IntCompare   : InstrItinClass;
def IIC_IntISEL      : InstrItinClass;
def IIC_IntDivD      : InstrItinClass;
def IIC_IntDivW      : InstrItinClass;
def IIC_IntMFFS      : InstrItinClass;
def IIC_IntMFVSCR    : InstrItinClass;
def IIC_IntMTFSB0    : InstrItinClass;
def IIC_IntMTSRD     : InstrItinClass;
def IIC_IntMulHD     : InstrItinClass;
def IIC_IntMulHW     : InstrItinClass;
def IIC_IntMulHWU    : InstrItinClass;
def IIC_IntMulLI     : InstrItinClass;
def IIC_IntRFID      : InstrItinClass;
def IIC_IntRotateD   : InstrItinClass;
def IIC_IntRotateDI  : InstrItinClass;
def IIC_IntRotate    : InstrItinClass;
def IIC_IntShift     : InstrItinClass;
def IIC_IntTrapD     : InstrItinClass;
def IIC_IntTrapW     : InstrItinClass;
def IIC_BrB          : InstrItinClass;
def IIC_BrCR         : InstrItinClass;
def IIC_BrMCR        : InstrItinClass;
def IIC_BrMCRX       : InstrItinClass;
def IIC_LdStDCBA     : InstrItinClass;
def IIC_LdStDCBF     : InstrItinClass;
def IIC_LdStDCBI     : InstrItinClass;
def IIC_LdStLoad     : InstrItinClass;
def IIC_LdStLoadUpd  : InstrItinClass;
def IIC_LdStLoadUpdX : InstrItinClass;
def IIC_LdStStore    : InstrItinClass;
def IIC_LdStStoreUpd : InstrItinClass;
def IIC_LdStDSS      : InstrItinClass;
def IIC_LdStICBI     : InstrItinClass;
def IIC_LdStLD       : InstrItinClass;
def IIC_LdStLDU      : InstrItinClass;
def IIC_LdStLDUX     : InstrItinClass;
def IIC_LdStLDARX    : InstrItinClass;
def IIC_LdStLFD      : InstrItinClass;
def IIC_LdStLFDU     : InstrItinClass;
def IIC_LdStLFDUX    : InstrItinClass;
def IIC_LdStLHA      : InstrItinClass;
def IIC_LdStLHAU     : InstrItinClass;
def IIC_LdStLHAUX    : InstrItinClass;
def IIC_LdStLMW      : InstrItinClass;
def IIC_LdStLVecX    : InstrItinClass;
def IIC_LdStLWA      : InstrItinClass;
def IIC_LdStLWARX    : InstrItinClass;
def IIC_LdStSLBIA    : InstrItinClass;
def IIC_LdStSLBIE    : InstrItinClass;
def IIC_LdStSTD      : InstrItinClass;
def IIC_LdStSTDCX    : InstrItinClass;
def IIC_LdStSTDU     : InstrItinClass;
def IIC_LdStSTDUX    : InstrItinClass;
def IIC_LdStSTFD     : InstrItinClass;
def IIC_LdStSTFDU    : InstrItinClass;
def IIC_LdStSTVEBX   : InstrItinClass;
def IIC_LdStSTWCX    : InstrItinClass;
def IIC_LdStSync     : InstrItinClass;
def IIC_SprISYNC     : InstrItinClass;
def IIC_SprMFSR      : InstrItinClass;
def IIC_SprMTMSR     : InstrItinClass;
def IIC_SprMTSR      : InstrItinClass;
def IIC_SprTLBSYNC   : InstrItinClass;
def IIC_SprMFCR      : InstrItinClass;
def IIC_SprMFCRF     : InstrItinClass;
def IIC_SprMFMSR     : InstrItinClass;
def IIC_SprMFSPR     : InstrItinClass;
def IIC_SprMFTB      : InstrItinClass;
def IIC_SprMTSPR     : InstrItinClass;
def IIC_SprMTSRIN    : InstrItinClass;
def IIC_SprRFI       : InstrItinClass;
def IIC_SprSC        : InstrItinClass;
def IIC_FPGeneral    : InstrItinClass;
def IIC_FPAddSub     : InstrItinClass;
def IIC_FPCompare    : InstrItinClass;
def IIC_FPDivD       : InstrItinClass;
def IIC_FPDivS       : InstrItinClass;
def IIC_FPFused      : InstrItinClass;
def IIC_FPRes        : InstrItinClass;
def IIC_FPSqrtD      : InstrItinClass;
def IIC_FPSqrtS      : InstrItinClass;
def IIC_VecGeneral   : InstrItinClass;
def IIC_VecFP        : InstrItinClass;
def IIC_VecFPCompare : InstrItinClass;
def IIC_VecComplex   : InstrItinClass;
def IIC_VecPerm      : InstrItinClass;
def IIC_VecFPRound   : InstrItinClass;
def IIC_VecVSL       : InstrItinClass;
def IIC_VecVSR       : InstrItinClass;
def IIC_SprMTMSRD    : InstrItinClass;
def IIC_SprSLIE      : InstrItinClass;
def IIC_SprSLBIE     : InstrItinClass;
def IIC_SprSLBMTE    : InstrItinClass;
def IIC_SprSLBMFEE   : InstrItinClass;
def IIC_SprSLBIA     : InstrItinClass;
def IIC_SprTLBIA     : InstrItinClass;
def IIC_SprTLBIEL    : InstrItinClass;
def IIC_SprTLBIE     : InstrItinClass;

//===----------------------------------------------------------------------===//
// Processor instruction itineraries.

include "PPCScheduleG3.td"
include "PPCSchedule440.td"
include "PPCScheduleG4.td"
include "PPCScheduleG4Plus.td"
include "PPCScheduleG5.td"
include "PPCScheduleP7.td"
include "PPCScheduleP8.td"
include "PPCScheduleA2.td"
include "PPCScheduleE500mc.td"
include "PPCScheduleE5500.td"

//===----------------------------------------------------------------------===//
// Instruction to itinerary class map - When add new opcodes to the supported
// set, refer to the following table to determine which itinerary class the
// opcode belongs.
//
//    opcode     itinerary class
//    ======     ===============
//    add        IIC_IntSimple
//    addc       IIC_IntGeneral
//    adde       IIC_IntGeneral
//    addi       IIC_IntSimple
//    addic      IIC_IntGeneral
//    addic.     IIC_IntGeneral
//    addis      IIC_IntSimple
//    addme      IIC_IntGeneral
//    addze      IIC_IntGeneral
//    and        IIC_IntSimple
//    andc       IIC_IntSimple
//    andi.      IIC_IntGeneral
//    andis.     IIC_IntGeneral
//    b          IIC_BrB
//    bc         IIC_BrB
//    bcctr      IIC_BrB
//    bclr       IIC_BrB
//    cmp        IIC_IntCompare
//    cmpi       IIC_IntCompare
//    cmpl       IIC_IntCompare
//    cmpli      IIC_IntCompare
//    cntlzd     IIC_IntRotateD
//    cntlzw     IIC_IntGeneral
//    crand      IIC_BrCR
//    crandc     IIC_BrCR
//    creqv      IIC_BrCR
//    crnand     IIC_BrCR
//    crnor      IIC_BrCR
//    cror       IIC_BrCR
//    crorc      IIC_BrCR
//    crxor      IIC_BrCR
//    dcba       IIC_LdStDCBA
//    dcbf       IIC_LdStDCBF
//    dcbi       IIC_LdStDCBI
//    dcbst      IIC_LdStDCBF
//    dcbt       IIC_LdStLoad
//    dcbtst     IIC_LdStLoad
//    dcbz       IIC_LdStDCBF
//    divd       IIC_IntDivD
//    divdu      IIC_IntDivD
//    divw       IIC_IntDivW
//    divwu      IIC_IntDivW
//    dss        IIC_LdStDSS
//    dst        IIC_LdStDSS
//    dstst      IIC_LdStDSS
//    eciwx      IIC_LdStLoad
//    ecowx      IIC_LdStLoad
//    eieio      IIC_LdStLoad
//    eqv        IIC_IntSimple
//    extsb      IIC_IntSimple
//    extsh      IIC_IntSimple
//    extsw      IIC_IntSimple
//    fabs       IIC_FPGeneral
//    fadd       IIC_FPAddSub
//    fadds      IIC_FPGeneral
//    fcfid      IIC_FPGeneral
//    fcmpo      IIC_FPCompare
//    fcmpu      IIC_FPCompare
//    fctid      IIC_FPGeneral
//    fctidz     IIC_FPGeneral
//    fctiw      IIC_FPGeneral
//    fctiwz     IIC_FPGeneral
//    fdiv       IIC_FPDivD
//    fdivs      IIC_FPDivS
//    fmadd      IIC_FPFused
//    fmadds     IIC_FPGeneral
//    fmr        IIC_FPGeneral
//    fmsub      IIC_FPFused
//    fmsubs     IIC_FPGeneral
//    fmul       IIC_FPFused
//    fmuls      IIC_FPGeneral
//    fnabs      IIC_FPGeneral
//    fneg       IIC_FPGeneral
//    fnmadd     IIC_FPFused
//    fnmadds    IIC_FPGeneral
//    fnmsub     IIC_FPFused
//    fnmsubs    IIC_FPGeneral
//    fres       IIC_FPRes
//    frsp       IIC_FPGeneral
//    frsqrte    IIC_FPGeneral
//    fsel       IIC_FPGeneral
//    fsqrt      IIC_FPSqrtD
//    fsqrts     IIC_FPSqrtS
//    fsub       IIC_FPAddSub
//    fsubs      IIC_FPGeneral
//    icbi       IIC_LdStICBI
//    isel       IIC_IntISEL
//    isync      IIC_SprISYNC
//    lbz        IIC_LdStLoad
//    lbzu       IIC_LdStLoadUpd
//    lbzux      IIC_LdStLoadUpdX
//    lbzx       IIC_LdStLoad
//    ld         IIC_LdStLD
//    ldarx      IIC_LdStLDARX
//    ldu        IIC_LdStLDU
//    ldux       IIC_LdStLDUX
//    ldx        IIC_LdStLD
//    lfd        IIC_LdStLFD
//    lfdu       IIC_LdStLFDU
//    lfdux      IIC_LdStLFDUX
//    lfdx       IIC_LdStLFD
//    lfs        IIC_LdStLFD
//    lfsu       IIC_LdStLFDU
//    lfsux      IIC_LdStLFDUX
//    lfsx       IIC_LdStLFD
//    lha        IIC_LdStLHA
//    lhau       IIC_LdStLHAU
//    lhaux      IIC_LdStLHAUX
//    lhax       IIC_LdStLHA
//    lhbrx      IIC_LdStLoad
//    lhz        IIC_LdStLoad
//    lhzu       IIC_LdStLoadUpd
//    lhzux      IIC_LdStLoadUpdX
//    lhzx       IIC_LdStLoad
//    lmw        IIC_LdStLMW
//    lswi       IIC_LdStLMW
//    lswx       IIC_LdStLMW
//    lvebx      IIC_LdStLVecX
//    lvehx      IIC_LdStLVecX
//    lvewx      IIC_LdStLVecX
//    lvsl       IIC_LdStLVecX
//    lvsr       IIC_LdStLVecX
//    lvx        IIC_LdStLVecX
//    lvxl       IIC_LdStLVecX
//    lwa        IIC_LdStLWA
//    lwarx      IIC_LdStLWARX
//    lwaux      IIC_LdStLHAUX
//    lwax       IIC_LdStLHA
//    lwbrx      IIC_LdStLoad
//    lwz        IIC_LdStLoad
//    lwzu       IIC_LdStLoadUpd
//    lwzux      IIC_LdStLoadUpdX
//    lwzx       IIC_LdStLoad
//    mcrf       IIC_BrMCR
//    mcrfs      IIC_FPGeneral
//    mcrxr      IIC_BrMCRX
//    mfcr       IIC_SprMFCR
//    mffs       IIC_IntMFFS
//    mfmsr      IIC_SprMFMSR
//    mfspr      IIC_SprMFSPR
//    mfsr       IIC_SprMFSR
//    mfsrin     IIC_SprMFSR
//    mftb       IIC_SprMFTB
//    mfvscr     IIC_IntMFVSCR
//    mtcrf      IIC_BrMCRX
//    mtfsb0     IIC_IntMTFSB0
//    mtfsb1     IIC_IntMTFSB0
//    mtfsf      IIC_IntMTFSB0
//    mtfsfi     IIC_IntMTFSB0
//    mtmsr      IIC_SprMTMSR
//    mtmsrd     IIC_LdStLD
//    mtspr      IIC_SprMTSPR
//    mtsr       IIC_SprMTSR
//    mtsrd      IIC_IntMTSRD
//    mtsrdin    IIC_IntMTSRD
//    mtsrin     IIC_SprMTSRIN
//    mtvscr     IIC_IntMFVSCR
//    mulhd      IIC_IntMulHD
//    mulhdu     IIC_IntMulHD
//    mulhw      IIC_IntMulHW
//    mulhwu     IIC_IntMulHWU
//    mulld      IIC_IntMulHD
//    mulli      IIC_IntMulLI
//    mullw      IIC_IntMulHW
//    nand       IIC_IntSimple
//    neg        IIC_IntSimple
//    nor        IIC_IntSimple
//    or         IIC_IntSimple
//    orc        IIC_IntSimple
//    ori        IIC_IntSimple
//    oris       IIC_IntSimple
//    rfi        IIC_SprRFI
//    rfid       IIC_IntRFID
//    rldcl      IIC_IntRotateD
//    rldcr      IIC_IntRotateD
//    rldic      IIC_IntRotateDI
//    rldicl     IIC_IntRotateDI
//    rldicr     IIC_IntRotateDI
//    rldimi     IIC_IntRotateDI
//    rlwimi     IIC_IntRotate
//    rlwinm     IIC_IntGeneral
//    rlwnm      IIC_IntGeneral
//    sc         IIC_SprSC
//    slbia      IIC_LdStSLBIA
//    slbie      IIC_LdStSLBIE
//    sld        IIC_IntRotateD
//    slw        IIC_IntGeneral
//    srad       IIC_IntRotateD
//    sradi      IIC_IntRotateDI
//    sraw       IIC_IntShift
//    srawi      IIC_IntShift
//    srd        IIC_IntRotateD
//    srw        IIC_IntGeneral
//    stb        IIC_LdStStore
//    stbu       IIC_LdStStoreUpd
//    stbux      IIC_LdStStoreUpd
//    stbx       IIC_LdStStore
//    std        IIC_LdStSTD
//    stdcx.     IIC_LdStSTDCX
//    stdu       IIC_LdStSTDU
//    stdux      IIC_LdStSTDUX
//    stdx       IIC_LdStSTD
//    stfd       IIC_LdStSTFD
//    stfdu      IIC_LdStSTFDU
//    stfdux     IIC_LdStSTFDU
//    stfdx      IIC_LdStSTFD
//    stfiwx     IIC_LdStSTFD
//    stfs       IIC_LdStSTFD
//    stfsu      IIC_LdStSTFDU
//    stfsux     IIC_LdStSTFDU
//    stfsx      IIC_LdStSTFD
//    sth        IIC_LdStStore
//    sthbrx     IIC_LdStStore
//    sthu       IIC_LdStStoreUpd
//    sthux      IIC_LdStStoreUpd
//    sthx       IIC_LdStStore
//    stmw       IIC_LdStLMW
//    stswi      IIC_LdStLMW
//    stswx      IIC_LdStLMW
//    stvebx     IIC_LdStSTVEBX
//    stvehx     IIC_LdStSTVEBX
//    stvewx     IIC_LdStSTVEBX
//    stvx       IIC_LdStSTVEBX
//    stvxl      IIC_LdStSTVEBX
//    stw        IIC_LdStStore
//    stwbrx     IIC_LdStStore
//    stwcx.     IIC_LdStSTWCX
//    stwu       IIC_LdStStoreUpd
//    stwux      IIC_LdStStoreUpd
//    stwx       IIC_LdStStore
//    subf       IIC_IntGeneral
//    subfc      IIC_IntGeneral
//    subfe      IIC_IntGeneral
//    subfic     IIC_IntGeneral
//    subfme     IIC_IntGeneral
//    subfze     IIC_IntGeneral
//    sync       IIC_LdStSync
//    td         IIC_IntTrapD
//    tdi        IIC_IntTrapD
//    tlbia      IIC_LdStSLBIA
//    tlbie      IIC_LdStDCBF
//    tlbsync    IIC_SprTLBSYNC
//    tw         IIC_IntTrapW
//    twi        IIC_IntTrapW
//    vaddcuw    IIC_VecGeneral
//    vaddfp     IIC_VecFP
//    vaddsbs    IIC_VecGeneral
//    vaddshs    IIC_VecGeneral
//    vaddsws    IIC_VecGeneral
//    vaddubm    IIC_VecGeneral
//    vaddubs    IIC_VecGeneral
//    vadduhm    IIC_VecGeneral
//    vadduhs    IIC_VecGeneral
//    vadduwm    IIC_VecGeneral
//    vadduws    IIC_VecGeneral
//    vand       IIC_VecGeneral
//    vandc      IIC_VecGeneral
//    vavgsb     IIC_VecGeneral
//    vavgsh     IIC_VecGeneral
//    vavgsw     IIC_VecGeneral
//    vavgub     IIC_VecGeneral
//    vavguh     IIC_VecGeneral
//    vavguw     IIC_VecGeneral
//    vcfsx      IIC_VecFP
//    vcfux      IIC_VecFP
//    vcmpbfp    IIC_VecFPCompare
//    vcmpeqfp   IIC_VecFPCompare
//    vcmpequb   IIC_VecGeneral
//    vcmpequh   IIC_VecGeneral
//    vcmpequw   IIC_VecGeneral
//    vcmpgefp   IIC_VecFPCompare
//    vcmpgtfp   IIC_VecFPCompare
//    vcmpgtsb   IIC_VecGeneral
//    vcmpgtsh   IIC_VecGeneral
//    vcmpgtsw   IIC_VecGeneral
//    vcmpgtub   IIC_VecGeneral
//    vcmpgtuh   IIC_VecGeneral
//    vcmpgtuw   IIC_VecGeneral
//    vctsxs     IIC_VecFP
//    vctuxs     IIC_VecFP
//    vexptefp   IIC_VecFP
//    vlogefp    IIC_VecFP
//    vmaddfp    IIC_VecFP
//    vmaxfp     IIC_VecFPCompare
//    vmaxsb     IIC_VecGeneral
//    vmaxsh     IIC_VecGeneral
//    vmaxsw     IIC_VecGeneral
//    vmaxub     IIC_VecGeneral
//    vmaxuh     IIC_VecGeneral
//    vmaxuw     IIC_VecGeneral
//    vmhaddshs  IIC_VecComplex
//    vmhraddshs IIC_VecComplex
//    vminfp     IIC_VecFPCompare
//    vminsb     IIC_VecGeneral
//    vminsh     IIC_VecGeneral
//    vminsw     IIC_VecGeneral
//    vminub     IIC_VecGeneral
//    vminuh     IIC_VecGeneral
//    vminuw     IIC_VecGeneral
//    vmladduhm  IIC_VecComplex
//    vmrghb     IIC_VecPerm
//    vmrghh     IIC_VecPerm
//    vmrghw     IIC_VecPerm
//    vmrglb     IIC_VecPerm
//    vmrglh     IIC_VecPerm
//    vmrglw     IIC_VecPerm
//    vmsubfp    IIC_VecFP
//    vmsummbm   IIC_VecComplex
//    vmsumshm   IIC_VecComplex
//    vmsumshs   IIC_VecComplex
//    vmsumubm   IIC_VecComplex
//    vmsumuhm   IIC_VecComplex
//    vmsumuhs   IIC_VecComplex
//    vmulesb    IIC_VecComplex
//    vmulesh    IIC_VecComplex
//    vmuleub    IIC_VecComplex
//    vmuleuh    IIC_VecComplex
//    vmulosb    IIC_VecComplex
//    vmulosh    IIC_VecComplex
//    vmuloub    IIC_VecComplex
//    vmulouh    IIC_VecComplex
//    vnor       IIC_VecGeneral
//    vor        IIC_VecGeneral
//    vperm      IIC_VecPerm
//    vpkpx      IIC_VecPerm
//    vpkshss    IIC_VecPerm
//    vpkshus    IIC_VecPerm
//    vpkswss    IIC_VecPerm
//    vpkswus    IIC_VecPerm
//    vpkuhum    IIC_VecPerm
//    vpkuhus    IIC_VecPerm
//    vpkuwum    IIC_VecPerm
//    vpkuwus    IIC_VecPerm
//    vrefp      IIC_VecFPRound
//    vrfim      IIC_VecFPRound
//    vrfin      IIC_VecFPRound
//    vrfip      IIC_VecFPRound
//    vrfiz      IIC_VecFPRound
//    vrlb       IIC_VecGeneral
//    vrlh       IIC_VecGeneral
//    vrlw       IIC_VecGeneral
//    vrsqrtefp  IIC_VecFP
//    vsel       IIC_VecGeneral
//    vsl        IIC_VecVSL
//    vslb       IIC_VecGeneral
//    vsldoi     IIC_VecPerm
//    vslh       IIC_VecGeneral
//    vslo       IIC_VecPerm
//    vslw       IIC_VecGeneral
//    vspltb     IIC_VecPerm
//    vsplth     IIC_VecPerm
//    vspltisb   IIC_VecPerm
//    vspltish   IIC_VecPerm
//    vspltisw   IIC_VecPerm
//    vspltw     IIC_VecPerm
//    vsr        IIC_VecVSR
//    vsrab      IIC_VecGeneral
//    vsrah      IIC_VecGeneral
//    vsraw      IIC_VecGeneral
//    vsrb       IIC_VecGeneral
//    vsrh       IIC_VecGeneral
//    vsro       IIC_VecPerm
//    vsrw       IIC_VecGeneral
//    vsubcuw    IIC_VecGeneral
//    vsubfp     IIC_VecFP
//    vsubsbs    IIC_VecGeneral
//    vsubshs    IIC_VecGeneral
//    vsubsws    IIC_VecGeneral
//    vsububm    IIC_VecGeneral
//    vsububs    IIC_VecGeneral
//    vsubuhm    IIC_VecGeneral
//    vsubuhs    IIC_VecGeneral
//    vsubuwm    IIC_VecGeneral
//    vsubuws    IIC_VecGeneral
//    vsum2sws   IIC_VecComplex
//    vsum4sbs   IIC_VecComplex
//    vsum4shs   IIC_VecComplex
//    vsum4ubs   IIC_VecComplex
//    vsumsws    IIC_VecComplex
//    vupkhpx    IIC_VecPerm
//    vupkhsb    IIC_VecPerm
//    vupkhsh    IIC_VecPerm
//    vupklpx    IIC_VecPerm
//    vupklsb    IIC_VecPerm
//    vupklsh    IIC_VecPerm
//    vxor       IIC_VecGeneral
//    xor        IIC_IntSimple
//    xori       IIC_IntSimple
//    xoris      IIC_IntSimple
//