xref: /llvm-project/llvm/lib/Target/PowerPC/P10InstrResources.td (revision 674574d25cc35010dbb0b12b01e8beeaddf20a3f)
167c64d83SQiu Chaofan//===--- P10InstrResources.td - P10 Scheduling Definitions -*- tablegen -*-===//
267c64d83SQiu Chaofan//
367c64d83SQiu Chaofan// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
467c64d83SQiu Chaofan// See https://llvm.org/LICENSE.txt for license information.
567c64d83SQiu Chaofan// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
667c64d83SQiu Chaofan//
767c64d83SQiu Chaofan//===----------------------------------------------------------------------===//
867c64d83SQiu Chaofan// Automatically generated file, do not edit!
967c64d83SQiu Chaofan//
10a2b5117dSQiu Chaofan// This file defines instruction data for SchedModel of the POWER10 processor.
1167c64d83SQiu Chaofan//
1267c64d83SQiu Chaofan//===----------------------------------------------------------------------===//
1367c64d83SQiu Chaofan// 22 Cycles Binary Floating Point operations, 2 input operands
1467c64d83SQiu Chaofandef : InstRW<[P10W_BF_22C, P10W_DISP_ANY, P10BF_Read, P10BF_Read],
1567c64d83SQiu Chaofan      (instrs
1667c64d83SQiu Chaofan    FDIVS,
1767c64d83SQiu Chaofan    XSDIVSP
1867c64d83SQiu Chaofan)>;
1967c64d83SQiu Chaofan
2067c64d83SQiu Chaofan// 2-way crack instructions
2167c64d83SQiu Chaofan// 22 Cycles Binary Floating Point operations, and 3 Cycles ALU operations, 2 input operands
2267c64d83SQiu Chaofandef : InstRW<[P10W_BF_22C, P10W_DISP_EVEN, P10W_FX_3C, P10W_DISP_ANY],
2367c64d83SQiu Chaofan      (instrs
2467c64d83SQiu Chaofan    FDIVS_rec
2567c64d83SQiu Chaofan)>;
2667c64d83SQiu Chaofan
2767c64d83SQiu Chaofan// 24 Cycles Binary Floating Point operations, 2 input operands
2867c64d83SQiu Chaofandef : InstRW<[P10W_BF_24C, P10W_DISP_ANY, P10BF_Read, P10BF_Read],
2967c64d83SQiu Chaofan      (instrs
3067c64d83SQiu Chaofan    XVDIVSP
3167c64d83SQiu Chaofan)>;
3267c64d83SQiu Chaofan
3367c64d83SQiu Chaofan// 26 Cycles Binary Floating Point operations, 1 input operands
3467c64d83SQiu Chaofandef : InstRW<[P10W_BF_26C, P10W_DISP_ANY, P10BF_Read],
3567c64d83SQiu Chaofan      (instrs
3667c64d83SQiu Chaofan    FSQRTS,
3767c64d83SQiu Chaofan    XSSQRTSP
3867c64d83SQiu Chaofan)>;
3967c64d83SQiu Chaofan
4067c64d83SQiu Chaofan// 2-way crack instructions
4167c64d83SQiu Chaofan// 26 Cycles Binary Floating Point operations, and 3 Cycles ALU operations, 1 input operands
4267c64d83SQiu Chaofandef : InstRW<[P10W_BF_26C, P10W_DISP_EVEN, P10W_FX_3C, P10W_DISP_ANY],
4367c64d83SQiu Chaofan      (instrs
4467c64d83SQiu Chaofan    FSQRTS_rec
4567c64d83SQiu Chaofan)>;
4667c64d83SQiu Chaofan
4767c64d83SQiu Chaofan// 27 Cycles Binary Floating Point operations, 1 input operands
4867c64d83SQiu Chaofandef : InstRW<[P10W_BF_27C, P10W_DISP_ANY, P10BF_Read],
4967c64d83SQiu Chaofan      (instrs
5067c64d83SQiu Chaofan    XVSQRTSP
5167c64d83SQiu Chaofan)>;
5267c64d83SQiu Chaofan
5367c64d83SQiu Chaofan// 27 Cycles Binary Floating Point operations, 2 input operands
5467c64d83SQiu Chaofandef : InstRW<[P10W_BF_27C, P10W_DISP_ANY, P10BF_Read, P10BF_Read],
5567c64d83SQiu Chaofan      (instrs
5667c64d83SQiu Chaofan    FDIV,
5767c64d83SQiu Chaofan    XSDIVDP,
5867c64d83SQiu Chaofan    XVDIVDP
5967c64d83SQiu Chaofan)>;
6067c64d83SQiu Chaofan
6167c64d83SQiu Chaofan// 2-way crack instructions
6267c64d83SQiu Chaofan// 27 Cycles Binary Floating Point operations, and 3 Cycles ALU operations, 2 input operands
6367c64d83SQiu Chaofandef : InstRW<[P10W_BF_27C, P10W_DISP_EVEN, P10W_FX_3C, P10W_DISP_ANY],
6467c64d83SQiu Chaofan      (instrs
6567c64d83SQiu Chaofan    FDIV_rec
6667c64d83SQiu Chaofan)>;
6767c64d83SQiu Chaofan
6867c64d83SQiu Chaofan// 36 Cycles Binary Floating Point operations, 1 input operands
6967c64d83SQiu Chaofandef : InstRW<[P10W_BF_36C, P10W_DISP_ANY, P10BF_Read],
7067c64d83SQiu Chaofan      (instrs
7167c64d83SQiu Chaofan    FSQRT,
7267c64d83SQiu Chaofan    XSSQRTDP,
7367c64d83SQiu Chaofan    XVSQRTDP
7467c64d83SQiu Chaofan)>;
7567c64d83SQiu Chaofan
7667c64d83SQiu Chaofan// 2-way crack instructions
7767c64d83SQiu Chaofan// 36 Cycles Binary Floating Point operations, and 3 Cycles ALU operations, 1 input operands
7867c64d83SQiu Chaofandef : InstRW<[P10W_BF_36C, P10W_DISP_EVEN, P10W_FX_3C, P10W_DISP_ANY],
7967c64d83SQiu Chaofan      (instrs
8067c64d83SQiu Chaofan    FSQRT_rec
8167c64d83SQiu Chaofan)>;
8267c64d83SQiu Chaofan
8367c64d83SQiu Chaofan// 7 Cycles Binary Floating Point operations, 1 input operands
8467c64d83SQiu Chaofandef : InstRW<[P10W_BF_7C, P10W_DISP_ANY, P10BF_Read],
8567c64d83SQiu Chaofan      (instrs
8667c64d83SQiu Chaofan    FCFID,
8767c64d83SQiu Chaofan    FCFIDS,
8867c64d83SQiu Chaofan    FCFIDU,
8967c64d83SQiu Chaofan    FCFIDUS,
9067c64d83SQiu Chaofan    FCTID,
9167c64d83SQiu Chaofan    FCTIDU,
9267c64d83SQiu Chaofan    FCTIDUZ,
9367c64d83SQiu Chaofan    FCTIDZ,
9467c64d83SQiu Chaofan    FCTIW,
9567c64d83SQiu Chaofan    FCTIWU,
9667c64d83SQiu Chaofan    FCTIWUZ,
9767c64d83SQiu Chaofan    FCTIWZ,
9867c64d83SQiu Chaofan    FRE,
9967c64d83SQiu Chaofan    FRES,
10067c64d83SQiu Chaofan    FRIMD, FRIMS,
10167c64d83SQiu Chaofan    FRIND, FRINS,
10267c64d83SQiu Chaofan    FRIPD, FRIPS,
10367c64d83SQiu Chaofan    FRIZD, FRIZS,
10467c64d83SQiu Chaofan    FRSP,
10567c64d83SQiu Chaofan    FRSQRTE,
10667c64d83SQiu Chaofan    FRSQRTES,
10767c64d83SQiu Chaofan    VCFSX, VCFSX_0,
10867c64d83SQiu Chaofan    VCFUX, VCFUX_0,
10967c64d83SQiu Chaofan    VCTSXS, VCTSXS_0,
11067c64d83SQiu Chaofan    VCTUXS, VCTUXS_0,
11167c64d83SQiu Chaofan    VLOGEFP,
11267c64d83SQiu Chaofan    VREFP,
11367c64d83SQiu Chaofan    VRFIM,
11467c64d83SQiu Chaofan    VRFIN,
11567c64d83SQiu Chaofan    VRFIP,
11667c64d83SQiu Chaofan    VRFIZ,
11767c64d83SQiu Chaofan    VRSQRTEFP,
11867c64d83SQiu Chaofan    XSCVDPHP,
11967c64d83SQiu Chaofan    XSCVDPSP,
12067c64d83SQiu Chaofan    XSCVDPSPN,
12167c64d83SQiu Chaofan    XSCVDPSXDS, XSCVDPSXDSs,
12267c64d83SQiu Chaofan    XSCVDPSXWS, XSCVDPSXWSs,
12367c64d83SQiu Chaofan    XSCVDPUXDS, XSCVDPUXDSs,
12467c64d83SQiu Chaofan    XSCVDPUXWS, XSCVDPUXWSs,
12567c64d83SQiu Chaofan    XSCVSPDP,
12667c64d83SQiu Chaofan    XSCVSXDDP,
12767c64d83SQiu Chaofan    XSCVSXDSP,
12867c64d83SQiu Chaofan    XSCVUXDDP,
12967c64d83SQiu Chaofan    XSCVUXDSP,
13067c64d83SQiu Chaofan    XSRDPI,
13167c64d83SQiu Chaofan    XSRDPIC,
13267c64d83SQiu Chaofan    XSRDPIM,
13367c64d83SQiu Chaofan    XSRDPIP,
13467c64d83SQiu Chaofan    XSRDPIZ,
13567c64d83SQiu Chaofan    XSREDP,
13667c64d83SQiu Chaofan    XSRESP,
13767c64d83SQiu Chaofan    XSRSP,
13867c64d83SQiu Chaofan    XSRSQRTEDP,
13967c64d83SQiu Chaofan    XSRSQRTESP,
14067c64d83SQiu Chaofan    XVCVDPSP,
14167c64d83SQiu Chaofan    XVCVDPSXDS,
14267c64d83SQiu Chaofan    XVCVDPSXWS,
14367c64d83SQiu Chaofan    XVCVDPUXDS,
14467c64d83SQiu Chaofan    XVCVDPUXWS,
14567c64d83SQiu Chaofan    XVCVSPBF16,
14667c64d83SQiu Chaofan    XVCVSPDP,
14767c64d83SQiu Chaofan    XVCVSPHP,
14867c64d83SQiu Chaofan    XVCVSPSXDS,
14967c64d83SQiu Chaofan    XVCVSPSXWS,
15067c64d83SQiu Chaofan    XVCVSPUXDS,
15167c64d83SQiu Chaofan    XVCVSPUXWS,
15267c64d83SQiu Chaofan    XVCVSXDDP,
15367c64d83SQiu Chaofan    XVCVSXDSP,
15467c64d83SQiu Chaofan    XVCVSXWDP,
15567c64d83SQiu Chaofan    XVCVSXWSP,
15667c64d83SQiu Chaofan    XVCVUXDDP,
15767c64d83SQiu Chaofan    XVCVUXDSP,
15867c64d83SQiu Chaofan    XVCVUXWDP,
15967c64d83SQiu Chaofan    XVCVUXWSP,
16067c64d83SQiu Chaofan    XVRDPI,
16167c64d83SQiu Chaofan    XVRDPIC,
16267c64d83SQiu Chaofan    XVRDPIM,
16367c64d83SQiu Chaofan    XVRDPIP,
16467c64d83SQiu Chaofan    XVRDPIZ,
16567c64d83SQiu Chaofan    XVREDP,
16667c64d83SQiu Chaofan    XVRESP,
16767c64d83SQiu Chaofan    XVRSPI,
16867c64d83SQiu Chaofan    XVRSPIC,
16967c64d83SQiu Chaofan    XVRSPIM,
17067c64d83SQiu Chaofan    XVRSPIP,
17167c64d83SQiu Chaofan    XVRSPIZ,
17267c64d83SQiu Chaofan    XVRSQRTEDP,
17367c64d83SQiu Chaofan    XVRSQRTESP
17467c64d83SQiu Chaofan)>;
17567c64d83SQiu Chaofan
17667c64d83SQiu Chaofan// 7 Cycles Binary Floating Point operations, 2 input operands
17767c64d83SQiu Chaofandef : InstRW<[P10W_BF_7C, P10W_DISP_ANY, P10BF_Read, P10BF_Read],
17867c64d83SQiu Chaofan      (instrs
17967c64d83SQiu Chaofan    FADD,
18067c64d83SQiu Chaofan    FADDS,
18167c64d83SQiu Chaofan    FMUL,
18267c64d83SQiu Chaofan    FMULS,
18367c64d83SQiu Chaofan    FSUB,
18467c64d83SQiu Chaofan    FSUBS,
18567c64d83SQiu Chaofan    VADDFP,
18667c64d83SQiu Chaofan    VSUBFP,
18767c64d83SQiu Chaofan    XSADDDP,
18867c64d83SQiu Chaofan    XSADDSP,
18967c64d83SQiu Chaofan    XSMULDP,
19067c64d83SQiu Chaofan    XSMULSP,
19167c64d83SQiu Chaofan    XSSUBDP,
19267c64d83SQiu Chaofan    XSSUBSP,
19367c64d83SQiu Chaofan    XVADDDP,
19467c64d83SQiu Chaofan    XVADDSP,
19567c64d83SQiu Chaofan    XVMULDP,
19667c64d83SQiu Chaofan    XVMULSP,
19767c64d83SQiu Chaofan    XVSUBDP,
19867c64d83SQiu Chaofan    XVSUBSP
19967c64d83SQiu Chaofan)>;
20067c64d83SQiu Chaofan
20167c64d83SQiu Chaofan// 7 Cycles Binary Floating Point operations, 3 input operands
20267c64d83SQiu Chaofandef : InstRW<[P10W_BF_7C, P10W_DISP_ANY, P10BF_Read, P10BF_Read, P10BF_Read],
20367c64d83SQiu Chaofan      (instrs
20467c64d83SQiu Chaofan    FMADD,
20567c64d83SQiu Chaofan    FMADDS,
20667c64d83SQiu Chaofan    FMSUB,
20767c64d83SQiu Chaofan    FMSUBS,
20867c64d83SQiu Chaofan    FNMADD,
20967c64d83SQiu Chaofan    FNMADDS,
21067c64d83SQiu Chaofan    FNMSUB,
21167c64d83SQiu Chaofan    FNMSUBS,
21267c64d83SQiu Chaofan    FSELD, FSELS,
21367c64d83SQiu Chaofan    VMADDFP,
21467c64d83SQiu Chaofan    VNMSUBFP,
21567c64d83SQiu Chaofan    XSMADDADP,
21667c64d83SQiu Chaofan    XSMADDASP,
21767c64d83SQiu Chaofan    XSMADDMDP,
21867c64d83SQiu Chaofan    XSMADDMSP,
21967c64d83SQiu Chaofan    XSMSUBADP,
22067c64d83SQiu Chaofan    XSMSUBASP,
22167c64d83SQiu Chaofan    XSMSUBMDP,
22267c64d83SQiu Chaofan    XSMSUBMSP,
22367c64d83SQiu Chaofan    XSNMADDADP,
22467c64d83SQiu Chaofan    XSNMADDASP,
22567c64d83SQiu Chaofan    XSNMADDMDP,
22667c64d83SQiu Chaofan    XSNMADDMSP,
22767c64d83SQiu Chaofan    XSNMSUBADP,
22867c64d83SQiu Chaofan    XSNMSUBASP,
22967c64d83SQiu Chaofan    XSNMSUBMDP,
23067c64d83SQiu Chaofan    XSNMSUBMSP,
23167c64d83SQiu Chaofan    XVMADDADP,
23267c64d83SQiu Chaofan    XVMADDASP,
23367c64d83SQiu Chaofan    XVMADDMDP,
23467c64d83SQiu Chaofan    XVMADDMSP,
23567c64d83SQiu Chaofan    XVMSUBADP,
23667c64d83SQiu Chaofan    XVMSUBASP,
23767c64d83SQiu Chaofan    XVMSUBMDP,
23867c64d83SQiu Chaofan    XVMSUBMSP,
23967c64d83SQiu Chaofan    XVNMADDADP,
24067c64d83SQiu Chaofan    XVNMADDASP,
24167c64d83SQiu Chaofan    XVNMADDMDP,
24267c64d83SQiu Chaofan    XVNMADDMSP,
24367c64d83SQiu Chaofan    XVNMSUBADP,
24467c64d83SQiu Chaofan    XVNMSUBASP,
24567c64d83SQiu Chaofan    XVNMSUBMDP,
24667c64d83SQiu Chaofan    XVNMSUBMSP
24767c64d83SQiu Chaofan)>;
24867c64d83SQiu Chaofan
24967c64d83SQiu Chaofan// 2-way crack instructions
25067c64d83SQiu Chaofan// 7 Cycles Binary Floating Point operations, and 7 Cycles Binary Floating Point operations, 1 input operands
25167c64d83SQiu Chaofandef : InstRW<[P10W_BF_7C, P10W_DISP_EVEN, P10W_BF_7C, P10W_DISP_ANY, P10BF_Read],
25267c64d83SQiu Chaofan      (instrs
25367c64d83SQiu Chaofan    VEXPTEFP
25467c64d83SQiu Chaofan)>;
25567c64d83SQiu Chaofan
25667c64d83SQiu Chaofan// 2-way crack instructions
25767c64d83SQiu Chaofan// 7 Cycles Binary Floating Point operations, and 3 Cycles ALU operations, 2 input operands
25867c64d83SQiu Chaofandef : InstRW<[P10W_BF_7C, P10W_DISP_EVEN, P10W_FX_3C, P10W_DISP_ANY],
25967c64d83SQiu Chaofan      (instrs
26067c64d83SQiu Chaofan    FADD_rec,
26167c64d83SQiu Chaofan    FADDS_rec,
26267c64d83SQiu Chaofan    FMUL_rec,
26367c64d83SQiu Chaofan    FMULS_rec,
26467c64d83SQiu Chaofan    FSUB_rec,
26567c64d83SQiu Chaofan    FSUBS_rec
26667c64d83SQiu Chaofan)>;
26767c64d83SQiu Chaofan
26867c64d83SQiu Chaofan// 2-way crack instructions
26967c64d83SQiu Chaofan// 7 Cycles Binary Floating Point operations, and 3 Cycles ALU operations, 1 input operands
27067c64d83SQiu Chaofandef : InstRW<[P10W_BF_7C, P10W_DISP_EVEN, P10W_FX_3C, P10W_DISP_ANY],
27167c64d83SQiu Chaofan      (instrs
27267c64d83SQiu Chaofan    FCFID_rec,
27367c64d83SQiu Chaofan    FCFIDS_rec,
27467c64d83SQiu Chaofan    FCFIDU_rec,
27567c64d83SQiu Chaofan    FCFIDUS_rec,
27667c64d83SQiu Chaofan    FCTID_rec,
27767c64d83SQiu Chaofan    FCTIDU_rec,
27867c64d83SQiu Chaofan    FCTIDUZ_rec,
27967c64d83SQiu Chaofan    FCTIDZ_rec,
28067c64d83SQiu Chaofan    FCTIW_rec,
28167c64d83SQiu Chaofan    FCTIWU_rec,
28267c64d83SQiu Chaofan    FCTIWUZ_rec,
28367c64d83SQiu Chaofan    FCTIWZ_rec,
28467c64d83SQiu Chaofan    FRE_rec,
28567c64d83SQiu Chaofan    FRES_rec,
28667c64d83SQiu Chaofan    FRIMD_rec, FRIMS_rec,
28767c64d83SQiu Chaofan    FRIND_rec, FRINS_rec,
28867c64d83SQiu Chaofan    FRIPD_rec, FRIPS_rec,
28967c64d83SQiu Chaofan    FRIZD_rec, FRIZS_rec,
29067c64d83SQiu Chaofan    FRSP_rec,
29167c64d83SQiu Chaofan    FRSQRTE_rec,
29267c64d83SQiu Chaofan    FRSQRTES_rec
29367c64d83SQiu Chaofan)>;
29467c64d83SQiu Chaofan
29567c64d83SQiu Chaofan// 2-way crack instructions
29667c64d83SQiu Chaofan// 7 Cycles Binary Floating Point operations, and 3 Cycles ALU operations, 3 input operands
29767c64d83SQiu Chaofandef : InstRW<[P10W_BF_7C, P10W_DISP_EVEN, P10W_FX_3C, P10W_DISP_ANY],
29867c64d83SQiu Chaofan      (instrs
29967c64d83SQiu Chaofan    FMADD_rec,
30067c64d83SQiu Chaofan    FMADDS_rec,
30167c64d83SQiu Chaofan    FMSUB_rec,
30267c64d83SQiu Chaofan    FMSUBS_rec,
30367c64d83SQiu Chaofan    FNMADD_rec,
30467c64d83SQiu Chaofan    FNMADDS_rec,
30567c64d83SQiu Chaofan    FNMSUB_rec,
30667c64d83SQiu Chaofan    FNMSUBS_rec,
30767c64d83SQiu Chaofan    FSELD_rec, FSELS_rec
30867c64d83SQiu Chaofan)>;
30967c64d83SQiu Chaofan
31067c64d83SQiu Chaofan// 2 Cycles Branch operations, 1 input operands
31167c64d83SQiu Chaofandef : InstRW<[P10W_BR_2C, P10W_DISP_ANY, P10BR_Read],
31267c64d83SQiu Chaofan      (instrs
31367c64d83SQiu Chaofan    B, BCC, BCCA, BCCCTR, BCCCTR8, BCCCTRL, BCCCTRL8, BCCL, BCCLA, BCCLR, BCCLRL, CTRL_DEP, TAILB, TAILB8,
31467c64d83SQiu Chaofan    BA, TAILBA, TAILBA8,
315a2b5117dSQiu Chaofan    BCCTR, BCCTR8, BCCTR8n, BCCTRn, gBCCTR,
316a2b5117dSQiu Chaofan    BCCTRL, BCCTRL8, BCCTRL8n, BCCTRLn, gBCCTRL,
317a2b5117dSQiu Chaofan    BCLR, BCLRn, BDNZLR, BDNZLR8, BDNZLRm, BDNZLRp, BDZLR, BDZLR8, BDZLRm, BDZLRp, gBCLR,
318a2b5117dSQiu Chaofan    BCLRL, BCLRLn, BDNZLRL, BDNZLRLm, BDNZLRLp, BDZLRL, BDZLRLm, BDZLRLp, gBCLRL,
319a2b5117dSQiu Chaofan    BL, BL8, BL8_NOP, BL8_NOP_RM, BL8_NOP_TLS, BL8_NOTOC, BL8_NOTOC_RM, BL8_NOTOC_TLS, BL8_RM, BL8_TLS, BL8_TLS_, BLR, BLR8, BLRL, BL_NOP, BL_NOP_RM, BL_RM, BL_TLS,
3205840f719SNemanja Ivanovic    BLA, BLA8, BLA8_NOP, BLA8_NOP_RM, BLA8_RM, BLA_RM
32167c64d83SQiu Chaofan)>;
32267c64d83SQiu Chaofan
323a2b5117dSQiu Chaofan// 2 Cycles Branch operations, 2 input operands
324a2b5117dSQiu Chaofandef : InstRW<[P10W_BR_2C, P10W_DISP_ANY, P10BR_Read, P10BR_Read],
32567c64d83SQiu Chaofan      (instrs
326a2b5117dSQiu Chaofan    BC, BCTR, BCTR8, BCTRL, BCTRL8, BCTRL8_LDinto_toc, BCTRL8_LDinto_toc_RM, BCTRL8_RM, BCTRL_LWZinto_toc, BCTRL_LWZinto_toc_RM, BCTRL_RM, BCn, BDNZ, BDNZ8, BDNZm, BDNZp, BDZ, BDZ8, BDZm, BDZp, TAILBCTR, TAILBCTR8, gBC, gBCat,
32767c64d83SQiu Chaofan    BDNZA, BDNZAm, BDNZAp, BDZA, BDZAm, BDZAp, gBCA, gBCAat,
328a2b5117dSQiu Chaofan    BCL, BCLalways, BCLn, BDNZL, BDNZLm, BDNZLp, BDZL, BDZLm, BDZLp, gBCL, gBCLat,
32967c64d83SQiu Chaofan    BDNZLA, BDNZLAm, BDNZLAp, BDZLA, BDZLAm, BDZLAp, gBCLA, gBCLAat
33067c64d83SQiu Chaofan)>;
33167c64d83SQiu Chaofan
33267c64d83SQiu Chaofan// 7 Cycles Crypto operations, 1 input operands
33367c64d83SQiu Chaofandef : InstRW<[P10W_CY_7C, P10W_DISP_ANY, P10CY_Read],
33467c64d83SQiu Chaofan      (instrs
335a2b5117dSQiu Chaofan    VGNB,
33667c64d83SQiu Chaofan    VSBOX
33767c64d83SQiu Chaofan)>;
33867c64d83SQiu Chaofan
33967c64d83SQiu Chaofan// 7 Cycles Crypto operations, 2 input operands
34067c64d83SQiu Chaofandef : InstRW<[P10W_CY_7C, P10W_DISP_ANY, P10CY_Read, P10CY_Read],
34167c64d83SQiu Chaofan      (instrs
34267c64d83SQiu Chaofan    CFUGED,
34367c64d83SQiu Chaofan    CNTLZDM,
34467c64d83SQiu Chaofan    CNTTZDM,
34567c64d83SQiu Chaofan    PDEPD,
34667c64d83SQiu Chaofan    PEXTD,
34767c64d83SQiu Chaofan    VCFUGED,
34867c64d83SQiu Chaofan    VCIPHER,
34967c64d83SQiu Chaofan    VCIPHERLAST,
35067c64d83SQiu Chaofan    VCLZDM,
35167c64d83SQiu Chaofan    VCTZDM,
35267c64d83SQiu Chaofan    VNCIPHER,
35367c64d83SQiu Chaofan    VNCIPHERLAST,
35467c64d83SQiu Chaofan    VPDEPD,
35567c64d83SQiu Chaofan    VPEXTD,
35667c64d83SQiu Chaofan    VPMSUMB,
35767c64d83SQiu Chaofan    VPMSUMD,
35867c64d83SQiu Chaofan    VPMSUMH,
35967c64d83SQiu Chaofan    VPMSUMW
36067c64d83SQiu Chaofan)>;
36167c64d83SQiu Chaofan
36267c64d83SQiu Chaofan// 13 Cycles Decimal Floating Point operations, 1 input operands
36367c64d83SQiu Chaofandef : InstRW<[P10W_DF_13C, P10W_DISP_ANY, P10DF_Read],
36467c64d83SQiu Chaofan      (instrs
36567c64d83SQiu Chaofan    XSCVDPQP,
36667c64d83SQiu Chaofan    XSCVQPDP,
36767c64d83SQiu Chaofan    XSCVQPDPO,
36867c64d83SQiu Chaofan    XSCVQPSDZ,
36967c64d83SQiu Chaofan    XSCVQPSQZ,
37067c64d83SQiu Chaofan    XSCVQPSWZ,
37167c64d83SQiu Chaofan    XSCVQPUDZ,
37267c64d83SQiu Chaofan    XSCVQPUQZ,
37367c64d83SQiu Chaofan    XSCVQPUWZ,
37467c64d83SQiu Chaofan    XSCVSDQP,
37567c64d83SQiu Chaofan    XSCVSQQP,
37667c64d83SQiu Chaofan    XSCVUDQP,
377a2b5117dSQiu Chaofan    XSCVUQQP,
378a2b5117dSQiu Chaofan    XSRQPI,
379a2b5117dSQiu Chaofan    XSRQPIX,
380a2b5117dSQiu Chaofan    XSRQPXP
38167c64d83SQiu Chaofan)>;
38267c64d83SQiu Chaofan
38367c64d83SQiu Chaofan// 13 Cycles Decimal Floating Point operations, 2 input operands
38467c64d83SQiu Chaofandef : InstRW<[P10W_DF_13C, P10W_DISP_ANY, P10DF_Read, P10DF_Read],
38567c64d83SQiu Chaofan      (instrs
386a2b5117dSQiu Chaofan    BCDSR_rec,
38767c64d83SQiu Chaofan    XSADDQP,
38867c64d83SQiu Chaofan    XSADDQPO,
38967c64d83SQiu Chaofan    XSSUBQP,
39067c64d83SQiu Chaofan    XSSUBQPO
39167c64d83SQiu Chaofan)>;
39267c64d83SQiu Chaofan
39367c64d83SQiu Chaofan// 2-way crack instructions
394a2b5117dSQiu Chaofan// 13 Cycles Decimal Floating Point operations, and 3 Cycles Store operations, 1 input operands
39567c64d83SQiu Chaofandef : InstRW<[P10W_DF_13C, P10W_DISP_EVEN, P10W_ST_3C, P10W_DISP_ANY],
39667c64d83SQiu Chaofan      (instrs
39704496201SStefan Pintilie    HASHST, HASHST8,
39804496201SStefan Pintilie    HASHSTP, HASHSTP8
39967c64d83SQiu Chaofan)>;
40067c64d83SQiu Chaofan
40167c64d83SQiu Chaofan// 24 Cycles Decimal Floating Point operations, 1 input operands
40267c64d83SQiu Chaofandef : InstRW<[P10W_DF_24C, P10W_DISP_ANY, P10DF_Read],
40367c64d83SQiu Chaofan      (instrs
40467c64d83SQiu Chaofan    BCDCTSQ_rec
40567c64d83SQiu Chaofan)>;
40667c64d83SQiu Chaofan
40767c64d83SQiu Chaofan// 25 Cycles Decimal Floating Point operations, 2 input operands
40867c64d83SQiu Chaofandef : InstRW<[P10W_DF_25C, P10W_DISP_ANY, P10DF_Read, P10DF_Read],
40967c64d83SQiu Chaofan      (instrs
41067c64d83SQiu Chaofan    XSMULQP,
41167c64d83SQiu Chaofan    XSMULQPO
41267c64d83SQiu Chaofan)>;
41367c64d83SQiu Chaofan
41467c64d83SQiu Chaofan// 25 Cycles Decimal Floating Point operations, 3 input operands
41567c64d83SQiu Chaofandef : InstRW<[P10W_DF_25C, P10W_DISP_ANY, P10DF_Read, P10DF_Read, P10DF_Read],
41667c64d83SQiu Chaofan      (instrs
41767c64d83SQiu Chaofan    XSMADDQP,
41867c64d83SQiu Chaofan    XSMADDQPO,
41967c64d83SQiu Chaofan    XSMSUBQP,
42067c64d83SQiu Chaofan    XSMSUBQPO,
42167c64d83SQiu Chaofan    XSNMADDQP,
42267c64d83SQiu Chaofan    XSNMADDQPO,
42367c64d83SQiu Chaofan    XSNMSUBQP,
42467c64d83SQiu Chaofan    XSNMSUBQPO
42567c64d83SQiu Chaofan)>;
42667c64d83SQiu Chaofan
427a2b5117dSQiu Chaofan// 38 Cycles Decimal Floating Point operations, 1 input operands
428a2b5117dSQiu Chaofandef : InstRW<[P10W_DF_38C, P10W_DISP_ANY, P10DF_Read],
42967c64d83SQiu Chaofan      (instrs
43067c64d83SQiu Chaofan    BCDCFSQ_rec
43167c64d83SQiu Chaofan)>;
43267c64d83SQiu Chaofan
43367c64d83SQiu Chaofan// 59 Cycles Decimal Floating Point operations, 2 input operands
43467c64d83SQiu Chaofandef : InstRW<[P10W_DF_59C, P10W_DISP_ANY, P10DF_Read, P10DF_Read],
43567c64d83SQiu Chaofan      (instrs
43667c64d83SQiu Chaofan    XSDIVQP,
43767c64d83SQiu Chaofan    XSDIVQPO
43867c64d83SQiu Chaofan)>;
43967c64d83SQiu Chaofan
44067c64d83SQiu Chaofan// 61 Cycles Decimal Floating Point operations, 2 input operands
44167c64d83SQiu Chaofandef : InstRW<[P10W_DF_61C, P10W_DISP_ANY, P10DF_Read, P10DF_Read],
44267c64d83SQiu Chaofan      (instrs
44367c64d83SQiu Chaofan    VDIVESQ,
44467c64d83SQiu Chaofan    VDIVEUQ,
44567c64d83SQiu Chaofan    VDIVSQ,
44667c64d83SQiu Chaofan    VDIVUQ
44767c64d83SQiu Chaofan)>;
44867c64d83SQiu Chaofan
44967c64d83SQiu Chaofan// 68 Cycles Decimal Floating Point operations, 2 input operands
45067c64d83SQiu Chaofandef : InstRW<[P10W_DF_68C, P10W_DISP_ANY, P10DF_Read, P10DF_Read],
45167c64d83SQiu Chaofan      (instrs
45267c64d83SQiu Chaofan    VMODSQ,
45367c64d83SQiu Chaofan    VMODUQ
45467c64d83SQiu Chaofan)>;
45567c64d83SQiu Chaofan
45667c64d83SQiu Chaofan// 77 Cycles Decimal Floating Point operations, 1 input operands
45767c64d83SQiu Chaofandef : InstRW<[P10W_DF_77C, P10W_DISP_ANY, P10DF_Read],
45867c64d83SQiu Chaofan      (instrs
45967c64d83SQiu Chaofan    XSSQRTQP,
46067c64d83SQiu Chaofan    XSSQRTQPO
46167c64d83SQiu Chaofan)>;
46267c64d83SQiu Chaofan
46367c64d83SQiu Chaofan// 20 Cycles Scalar Fixed-Point Divide operations, 2 input operands
46467c64d83SQiu Chaofandef : InstRW<[P10W_DV_20C, P10W_DISP_ANY, P10DV_Read, P10DV_Read],
46567c64d83SQiu Chaofan      (instrs
46667c64d83SQiu Chaofan    DIVW,
46767c64d83SQiu Chaofan    DIVWO,
46867c64d83SQiu Chaofan    DIVWU,
46967c64d83SQiu Chaofan    DIVWUO,
47067c64d83SQiu Chaofan    MODSW
47167c64d83SQiu Chaofan)>;
47267c64d83SQiu Chaofan
47367c64d83SQiu Chaofan// 2-way crack instructions
47467c64d83SQiu Chaofan// 20 Cycles Scalar Fixed-Point Divide operations, and 3 Cycles ALU operations, 2 input operands
47567c64d83SQiu Chaofandef : InstRW<[P10W_DV_20C, P10W_DISP_EVEN, P10W_FX_3C, P10W_DISP_ANY],
47667c64d83SQiu Chaofan      (instrs
47767c64d83SQiu Chaofan    DIVW_rec,
47867c64d83SQiu Chaofan    DIVWO_rec,
47967c64d83SQiu Chaofan    DIVWU_rec,
48067c64d83SQiu Chaofan    DIVWUO_rec
48167c64d83SQiu Chaofan)>;
48267c64d83SQiu Chaofan
48367c64d83SQiu Chaofan// 25 Cycles Scalar Fixed-Point Divide operations, 2 input operands
48467c64d83SQiu Chaofandef : InstRW<[P10W_DV_25C, P10W_DISP_ANY, P10DV_Read, P10DV_Read],
48567c64d83SQiu Chaofan      (instrs
48667c64d83SQiu Chaofan    DIVD,
48767c64d83SQiu Chaofan    DIVDO,
48867c64d83SQiu Chaofan    DIVDU,
48967c64d83SQiu Chaofan    DIVDUO,
49067c64d83SQiu Chaofan    DIVWE,
49167c64d83SQiu Chaofan    DIVWEO,
49267c64d83SQiu Chaofan    DIVWEU,
49367c64d83SQiu Chaofan    DIVWEUO
49467c64d83SQiu Chaofan)>;
49567c64d83SQiu Chaofan
49667c64d83SQiu Chaofan// 2-way crack instructions
49767c64d83SQiu Chaofan// 25 Cycles Scalar Fixed-Point Divide operations, and 3 Cycles ALU operations, 2 input operands
49867c64d83SQiu Chaofandef : InstRW<[P10W_DV_25C, P10W_DISP_EVEN, P10W_FX_3C, P10W_DISP_ANY],
49967c64d83SQiu Chaofan      (instrs
50067c64d83SQiu Chaofan    DIVD_rec,
50167c64d83SQiu Chaofan    DIVDO_rec,
50267c64d83SQiu Chaofan    DIVDU_rec,
50367c64d83SQiu Chaofan    DIVDUO_rec,
50467c64d83SQiu Chaofan    DIVWE_rec,
50567c64d83SQiu Chaofan    DIVWEO_rec,
50667c64d83SQiu Chaofan    DIVWEU_rec,
50767c64d83SQiu Chaofan    DIVWEUO_rec
50867c64d83SQiu Chaofan)>;
50967c64d83SQiu Chaofan
51067c64d83SQiu Chaofan// 27 Cycles Scalar Fixed-Point Divide operations, 2 input operands
51167c64d83SQiu Chaofandef : InstRW<[P10W_DV_27C, P10W_DISP_ANY, P10DV_Read, P10DV_Read],
51267c64d83SQiu Chaofan      (instrs
51367c64d83SQiu Chaofan    MODSD,
51467c64d83SQiu Chaofan    MODUD,
51567c64d83SQiu Chaofan    MODUW
51667c64d83SQiu Chaofan)>;
51767c64d83SQiu Chaofan
51867c64d83SQiu Chaofan// 41 Cycles Scalar Fixed-Point Divide operations, 2 input operands
51967c64d83SQiu Chaofandef : InstRW<[P10W_DV_41C, P10W_DISP_ANY, P10DV_Read, P10DV_Read],
52067c64d83SQiu Chaofan      (instrs
52167c64d83SQiu Chaofan    DIVDE,
52267c64d83SQiu Chaofan    DIVDEO,
52367c64d83SQiu Chaofan    DIVDEU,
52467c64d83SQiu Chaofan    DIVDEUO
52567c64d83SQiu Chaofan)>;
52667c64d83SQiu Chaofan
52767c64d83SQiu Chaofan// 2-way crack instructions
52867c64d83SQiu Chaofan// 41 Cycles Scalar Fixed-Point Divide operations, and 3 Cycles ALU operations, 2 input operands
52967c64d83SQiu Chaofandef : InstRW<[P10W_DV_41C, P10W_DISP_EVEN, P10W_FX_3C, P10W_DISP_ANY],
53067c64d83SQiu Chaofan      (instrs
53167c64d83SQiu Chaofan    DIVDE_rec,
53267c64d83SQiu Chaofan    DIVDEO_rec,
53367c64d83SQiu Chaofan    DIVDEU_rec,
53467c64d83SQiu Chaofan    DIVDEUO_rec
53567c64d83SQiu Chaofan)>;
53667c64d83SQiu Chaofan
53767c64d83SQiu Chaofan// 43 Cycles Scalar Fixed-Point Divide operations, 2 input operands
53867c64d83SQiu Chaofandef : InstRW<[P10W_DV_43C, P10W_DISP_ANY, P10DV_Read, P10DV_Read],
53967c64d83SQiu Chaofan      (instrs
54067c64d83SQiu Chaofan    VDIVSD,
54167c64d83SQiu Chaofan    VDIVUD
54267c64d83SQiu Chaofan)>;
54367c64d83SQiu Chaofan
54467c64d83SQiu Chaofan// 47 Cycles Scalar Fixed-Point Divide operations, 2 input operands
54567c64d83SQiu Chaofandef : InstRW<[P10W_DV_47C, P10W_DISP_ANY, P10DV_Read, P10DV_Read],
54667c64d83SQiu Chaofan      (instrs
54767c64d83SQiu Chaofan    VMODSD,
54867c64d83SQiu Chaofan    VMODUD
54967c64d83SQiu Chaofan)>;
55067c64d83SQiu Chaofan
55167c64d83SQiu Chaofan// 54 Cycles Scalar Fixed-Point Divide operations, 2 input operands
55267c64d83SQiu Chaofandef : InstRW<[P10W_DV_54C, P10W_DISP_ANY, P10DV_Read, P10DV_Read],
55367c64d83SQiu Chaofan      (instrs
55467c64d83SQiu Chaofan    VDIVSW,
55567c64d83SQiu Chaofan    VDIVUW
55667c64d83SQiu Chaofan)>;
55767c64d83SQiu Chaofan
55867c64d83SQiu Chaofan// 60 Cycles Scalar Fixed-Point Divide operations, 2 input operands
55967c64d83SQiu Chaofandef : InstRW<[P10W_DV_60C, P10W_DISP_ANY, P10DV_Read, P10DV_Read],
56067c64d83SQiu Chaofan      (instrs
56167c64d83SQiu Chaofan    VMODSW,
56267c64d83SQiu Chaofan    VMODUW
56367c64d83SQiu Chaofan)>;
56467c64d83SQiu Chaofan
56567c64d83SQiu Chaofan// 75 Cycles Scalar Fixed-Point Divide operations, 2 input operands
56667c64d83SQiu Chaofandef : InstRW<[P10W_DV_75C, P10W_DISP_ANY, P10DV_Read, P10DV_Read],
56767c64d83SQiu Chaofan      (instrs
56867c64d83SQiu Chaofan    VDIVESD,
56967c64d83SQiu Chaofan    VDIVEUD
57067c64d83SQiu Chaofan)>;
57167c64d83SQiu Chaofan
57267c64d83SQiu Chaofan// 83 Cycles Scalar Fixed-Point Divide operations, 2 input operands
57367c64d83SQiu Chaofandef : InstRW<[P10W_DV_83C, P10W_DISP_ANY, P10DV_Read, P10DV_Read],
57467c64d83SQiu Chaofan      (instrs
57567c64d83SQiu Chaofan    VDIVESW,
57667c64d83SQiu Chaofan    VDIVEUW
57767c64d83SQiu Chaofan)>;
57867c64d83SQiu Chaofan
57967c64d83SQiu Chaofan// 5 Cycles Fixed-Point and BCD operations, 1 input operands
58067c64d83SQiu Chaofandef : InstRW<[P10W_DX_5C, P10W_DISP_ANY, P10DX_Read],
58167c64d83SQiu Chaofan      (instrs
582a2b5117dSQiu Chaofan    BCDCFN_rec,
583a2b5117dSQiu Chaofan    BCDCFZ_rec,
58467c64d83SQiu Chaofan    BCDCTN_rec,
585a2b5117dSQiu Chaofan    BCDCTZ_rec,
586a2b5117dSQiu Chaofan    BCDSETSGN_rec,
58767c64d83SQiu Chaofan    VMUL10CUQ,
58867c64d83SQiu Chaofan    VMUL10UQ,
589a2b5117dSQiu Chaofan    XSTSTDCQP,
590a2b5117dSQiu Chaofan    XSXSIGQP,
591a2b5117dSQiu Chaofan    XXGENPCVBM
59267c64d83SQiu Chaofan)>;
59367c64d83SQiu Chaofan
59467c64d83SQiu Chaofan// 5 Cycles Fixed-Point and BCD operations, 2 input operands
59567c64d83SQiu Chaofandef : InstRW<[P10W_DX_5C, P10W_DISP_ANY, P10DX_Read, P10DX_Read],
59667c64d83SQiu Chaofan      (instrs
597a2b5117dSQiu Chaofan    BCDADD_rec,
59867c64d83SQiu Chaofan    BCDCPSGN_rec,
599a2b5117dSQiu Chaofan    BCDS_rec,
600a2b5117dSQiu Chaofan    BCDSUB_rec,
601a2b5117dSQiu Chaofan    BCDTRUNC_rec,
60267c64d83SQiu Chaofan    BCDUS_rec,
60367c64d83SQiu Chaofan    BCDUTRUNC_rec,
60467c64d83SQiu Chaofan    VADDCUQ,
60567c64d83SQiu Chaofan    VADDUQM,
60667c64d83SQiu Chaofan    VMUL10ECUQ,
60767c64d83SQiu Chaofan    VMUL10EUQ,
60867c64d83SQiu Chaofan    VSUBCUQ,
60967c64d83SQiu Chaofan    VSUBUQM,
610c19f905fSMaryam Moghadas    XSCMPEQQP,
61167c64d83SQiu Chaofan    XSCMPEXPQP,
612c19f905fSMaryam Moghadas    XSCMPGEQP,
613c19f905fSMaryam Moghadas    XSCMPGTQP,
61467c64d83SQiu Chaofan    XSCMPOQP,
61567c64d83SQiu Chaofan    XSCMPUQP,
6166f25cb86STing Wang    XSMAXCQP,
617a2b5117dSQiu Chaofan    XSMINCQP
61867c64d83SQiu Chaofan)>;
61967c64d83SQiu Chaofan
62067c64d83SQiu Chaofan// 5 Cycles Fixed-Point and BCD operations, 3 input operands
62167c64d83SQiu Chaofandef : InstRW<[P10W_DX_5C, P10W_DISP_ANY, P10DX_Read, P10DX_Read, P10DX_Read],
62267c64d83SQiu Chaofan      (instrs
62367c64d83SQiu Chaofan    VADDECUQ,
62467c64d83SQiu Chaofan    VADDEUQM,
62567c64d83SQiu Chaofan    VSUBECUQ,
62667c64d83SQiu Chaofan    VSUBEUQM
62767c64d83SQiu Chaofan)>;
62867c64d83SQiu Chaofan
62967c64d83SQiu Chaofan// 4 Cycles ALU2 operations, 0 input operands
63067c64d83SQiu Chaofandef : InstRW<[P10W_F2_4C, P10W_DISP_ANY],
63167c64d83SQiu Chaofan      (instrs
632a2b5117dSQiu Chaofan    MTVSRBMI
63367c64d83SQiu Chaofan)>;
63467c64d83SQiu Chaofan
63567c64d83SQiu Chaofan// 4 Cycles ALU2 operations, 1 input operands
63667c64d83SQiu Chaofandef : InstRW<[P10W_F2_4C, P10W_DISP_ANY, P10F2_Read],
63767c64d83SQiu Chaofan      (instrs
638b4747390SStefan Pintilie    CBCDTD, CBCDTD8,
639b4747390SStefan Pintilie    CDTBCD, CDTBCD8,
64067c64d83SQiu Chaofan    CNTLZD,
64167c64d83SQiu Chaofan    CNTLZD_rec,
64267c64d83SQiu Chaofan    CNTLZW, CNTLZW8,
64367c64d83SQiu Chaofan    CNTLZW8_rec, CNTLZW_rec,
64467c64d83SQiu Chaofan    CNTTZD,
64567c64d83SQiu Chaofan    CNTTZD_rec,
64667c64d83SQiu Chaofan    CNTTZW, CNTTZW8,
64767c64d83SQiu Chaofan    CNTTZW8_rec, CNTTZW_rec,
648a2b5117dSQiu Chaofan    EXTSWSLI_32_64_rec, EXTSWSLI_rec,
64967c64d83SQiu Chaofan    FTSQRT,
65067c64d83SQiu Chaofan    MTVSRBM,
65167c64d83SQiu Chaofan    MTVSRDM,
65267c64d83SQiu Chaofan    MTVSRHM,
65367c64d83SQiu Chaofan    MTVSRQM,
65467c64d83SQiu Chaofan    MTVSRWM,
65567c64d83SQiu Chaofan    POPCNTB, POPCNTB8,
65667c64d83SQiu Chaofan    POPCNTD,
65767c64d83SQiu Chaofan    POPCNTW,
658a2b5117dSQiu Chaofan    RLDIC_rec,
659a2b5117dSQiu Chaofan    RLDICL_32_rec, RLDICL_rec,
660a2b5117dSQiu Chaofan    RLDICR_rec,
661a2b5117dSQiu Chaofan    RLWINM8_rec, RLWINM_rec,
66267c64d83SQiu Chaofan    VCLZB,
66367c64d83SQiu Chaofan    VCLZD,
66467c64d83SQiu Chaofan    VCLZH,
66567c64d83SQiu Chaofan    VCLZW,
666a2b5117dSQiu Chaofan    VCNTMBB,
667a2b5117dSQiu Chaofan    VCNTMBD,
668a2b5117dSQiu Chaofan    VCNTMBH,
669a2b5117dSQiu Chaofan    VCNTMBW,
67067c64d83SQiu Chaofan    VCTZB,
67167c64d83SQiu Chaofan    VCTZD,
67267c64d83SQiu Chaofan    VCTZH,
67367c64d83SQiu Chaofan    VCTZW,
67467c64d83SQiu Chaofan    VEXPANDBM,
67567c64d83SQiu Chaofan    VEXPANDDM,
67667c64d83SQiu Chaofan    VEXPANDHM,
67767c64d83SQiu Chaofan    VEXPANDQM,
67867c64d83SQiu Chaofan    VEXPANDWM,
67967c64d83SQiu Chaofan    VEXTRACTBM,
68067c64d83SQiu Chaofan    VEXTRACTDM,
68167c64d83SQiu Chaofan    VEXTRACTHM,
68267c64d83SQiu Chaofan    VEXTRACTQM,
68367c64d83SQiu Chaofan    VEXTRACTWM,
68467c64d83SQiu Chaofan    VPOPCNTB,
68567c64d83SQiu Chaofan    VPOPCNTD,
68667c64d83SQiu Chaofan    VPOPCNTH,
68767c64d83SQiu Chaofan    VPOPCNTW,
68867c64d83SQiu Chaofan    VPRTYBD,
68967c64d83SQiu Chaofan    VPRTYBW,
690a2b5117dSQiu Chaofan    VSHASIGMAD,
691a2b5117dSQiu Chaofan    VSHASIGMAW,
69267c64d83SQiu Chaofan    XSCVHPDP,
69367c64d83SQiu Chaofan    XSCVSPDPN,
69467c64d83SQiu Chaofan    XSTSQRTDP,
695a2b5117dSQiu Chaofan    XSTSTDCDP,
696a2b5117dSQiu Chaofan    XSTSTDCSP,
69767c64d83SQiu Chaofan    XVCVHPSP,
69867c64d83SQiu Chaofan    XVTLSBB,
69967c64d83SQiu Chaofan    XVTSQRTDP,
700a2b5117dSQiu Chaofan    XVTSQRTSP,
701a2b5117dSQiu Chaofan    XVTSTDCDP,
702a2b5117dSQiu Chaofan    XVTSTDCSP
70367c64d83SQiu Chaofan)>;
70467c64d83SQiu Chaofan
70567c64d83SQiu Chaofan// 4 Cycles ALU2 operations, 2 input operands
70667c64d83SQiu Chaofandef : InstRW<[P10W_F2_4C, P10W_DISP_ANY, P10F2_Read, P10F2_Read],
70767c64d83SQiu Chaofan      (instrs
70867c64d83SQiu Chaofan    CMPEQB,
709a2b5117dSQiu Chaofan    CMPRB, CMPRB8,
71067c64d83SQiu Chaofan    FCMPOD, FCMPOS,
71167c64d83SQiu Chaofan    FCMPUD, FCMPUS,
71267c64d83SQiu Chaofan    FTDIV,
713a2b5117dSQiu Chaofan    RLDCL_rec,
714a2b5117dSQiu Chaofan    RLDCR_rec,
715a2b5117dSQiu Chaofan    RLDIMI_rec,
716a2b5117dSQiu Chaofan    RLWIMI8_rec, RLWIMI_rec,
717a2b5117dSQiu Chaofan    RLWNM8_rec, RLWNM_rec,
71867c64d83SQiu Chaofan    SLD_rec,
71967c64d83SQiu Chaofan    SLW8_rec, SLW_rec,
72067c64d83SQiu Chaofan    SRD_rec,
72167c64d83SQiu Chaofan    SRW8_rec, SRW_rec,
722a2b5117dSQiu Chaofan    TDI,
723a2b5117dSQiu Chaofan    TWI,
72467c64d83SQiu Chaofan    VABSDUB,
72567c64d83SQiu Chaofan    VABSDUH,
72667c64d83SQiu Chaofan    VABSDUW,
72767c64d83SQiu Chaofan    VADDCUW,
72867c64d83SQiu Chaofan    VADDSBS,
72967c64d83SQiu Chaofan    VADDSHS,
73067c64d83SQiu Chaofan    VADDSWS,
73167c64d83SQiu Chaofan    VADDUBS,
73267c64d83SQiu Chaofan    VADDUHS,
73367c64d83SQiu Chaofan    VADDUWS,
73467c64d83SQiu Chaofan    VAVGSB,
73567c64d83SQiu Chaofan    VAVGSH,
73667c64d83SQiu Chaofan    VAVGSW,
73767c64d83SQiu Chaofan    VAVGUB,
73867c64d83SQiu Chaofan    VAVGUH,
73967c64d83SQiu Chaofan    VAVGUW,
74067c64d83SQiu Chaofan    VCMPBFP,
74167c64d83SQiu Chaofan    VCMPBFP_rec,
74267c64d83SQiu Chaofan    VCMPEQFP,
74367c64d83SQiu Chaofan    VCMPEQFP_rec,
74467c64d83SQiu Chaofan    VCMPEQUB_rec,
74567c64d83SQiu Chaofan    VCMPEQUD_rec,
74667c64d83SQiu Chaofan    VCMPEQUH_rec,
74767c64d83SQiu Chaofan    VCMPEQUQ,
74867c64d83SQiu Chaofan    VCMPEQUQ_rec,
74967c64d83SQiu Chaofan    VCMPEQUW_rec,
75067c64d83SQiu Chaofan    VCMPGEFP,
75167c64d83SQiu Chaofan    VCMPGEFP_rec,
75267c64d83SQiu Chaofan    VCMPGTFP,
75367c64d83SQiu Chaofan    VCMPGTFP_rec,
75467c64d83SQiu Chaofan    VCMPGTSB_rec,
75567c64d83SQiu Chaofan    VCMPGTSD_rec,
75667c64d83SQiu Chaofan    VCMPGTSH_rec,
75767c64d83SQiu Chaofan    VCMPGTSQ,
75867c64d83SQiu Chaofan    VCMPGTSQ_rec,
75967c64d83SQiu Chaofan    VCMPGTSW_rec,
76067c64d83SQiu Chaofan    VCMPGTUB_rec,
76167c64d83SQiu Chaofan    VCMPGTUD_rec,
76267c64d83SQiu Chaofan    VCMPGTUH_rec,
76367c64d83SQiu Chaofan    VCMPGTUQ,
76467c64d83SQiu Chaofan    VCMPGTUQ_rec,
76567c64d83SQiu Chaofan    VCMPGTUW_rec,
76667c64d83SQiu Chaofan    VCMPNEB_rec,
76767c64d83SQiu Chaofan    VCMPNEH_rec,
76867c64d83SQiu Chaofan    VCMPNEW_rec,
76967c64d83SQiu Chaofan    VCMPNEZB_rec,
77067c64d83SQiu Chaofan    VCMPNEZH_rec,
77167c64d83SQiu Chaofan    VCMPNEZW_rec,
77267c64d83SQiu Chaofan    VCMPSQ,
77367c64d83SQiu Chaofan    VCMPUQ,
77467c64d83SQiu Chaofan    VMAXFP,
77567c64d83SQiu Chaofan    VMINFP,
77667c64d83SQiu Chaofan    VSUBCUW,
77767c64d83SQiu Chaofan    VSUBSBS,
77867c64d83SQiu Chaofan    VSUBSHS,
77967c64d83SQiu Chaofan    VSUBSWS,
78067c64d83SQiu Chaofan    VSUBUBS,
78167c64d83SQiu Chaofan    VSUBUHS,
78267c64d83SQiu Chaofan    VSUBUWS,
78367c64d83SQiu Chaofan    XSCMPEQDP,
78467c64d83SQiu Chaofan    XSCMPEXPDP,
78567c64d83SQiu Chaofan    XSCMPGEDP,
78667c64d83SQiu Chaofan    XSCMPGTDP,
78767c64d83SQiu Chaofan    XSCMPODP,
78867c64d83SQiu Chaofan    XSCMPUDP,
78967c64d83SQiu Chaofan    XSMAXCDP,
79067c64d83SQiu Chaofan    XSMAXDP,
79167c64d83SQiu Chaofan    XSMAXJDP,
79267c64d83SQiu Chaofan    XSMINCDP,
79367c64d83SQiu Chaofan    XSMINDP,
79467c64d83SQiu Chaofan    XSMINJDP,
79567c64d83SQiu Chaofan    XSTDIVDP,
79667c64d83SQiu Chaofan    XVCMPEQDP,
79767c64d83SQiu Chaofan    XVCMPEQDP_rec,
79867c64d83SQiu Chaofan    XVCMPEQSP,
79967c64d83SQiu Chaofan    XVCMPEQSP_rec,
80067c64d83SQiu Chaofan    XVCMPGEDP,
80167c64d83SQiu Chaofan    XVCMPGEDP_rec,
80267c64d83SQiu Chaofan    XVCMPGESP,
80367c64d83SQiu Chaofan    XVCMPGESP_rec,
80467c64d83SQiu Chaofan    XVCMPGTDP,
80567c64d83SQiu Chaofan    XVCMPGTDP_rec,
80667c64d83SQiu Chaofan    XVCMPGTSP,
80767c64d83SQiu Chaofan    XVCMPGTSP_rec,
80867c64d83SQiu Chaofan    XVMAXDP,
80967c64d83SQiu Chaofan    XVMAXSP,
81067c64d83SQiu Chaofan    XVMINDP,
81167c64d83SQiu Chaofan    XVMINSP,
81267c64d83SQiu Chaofan    XVTDIVDP,
813a2b5117dSQiu Chaofan    XVTDIVSP
81467c64d83SQiu Chaofan)>;
81567c64d83SQiu Chaofan
81667c64d83SQiu Chaofan// 4 Cycles ALU2 operations, 3 input operands
81767c64d83SQiu Chaofandef : InstRW<[P10W_F2_4C, P10W_DISP_ANY, P10F2_Read, P10F2_Read, P10F2_Read],
81867c64d83SQiu Chaofan      (instrs
81967c64d83SQiu Chaofan    TD,
820a2b5117dSQiu Chaofan    TRAP, TW
82167c64d83SQiu Chaofan)>;
82267c64d83SQiu Chaofan
823a2b5117dSQiu Chaofan// Single crack instructions
824a2b5117dSQiu Chaofan// 4 Cycles ALU2 operations, 1 input operands
825a2b5117dSQiu Chaofandef : InstRW<[P10W_F2_4C, P10W_DISP_EVEN, P10W_DISP_ANY, P10F2_Read],
82667c64d83SQiu Chaofan      (instrs
827a2b5117dSQiu Chaofan    SRADI_rec,
828*674574d2Szhijian lin    SRAWI_rec,
829*674574d2Szhijian lin    SRAWI8_rec
83067c64d83SQiu Chaofan)>;
83167c64d83SQiu Chaofan
83267c64d83SQiu Chaofan// Single crack instructions
83367c64d83SQiu Chaofan// 4 Cycles ALU2 operations, 2 input operands
83467c64d83SQiu Chaofandef : InstRW<[P10W_F2_4C, P10W_DISP_EVEN, P10W_DISP_ANY, P10F2_Read, P10F2_Read],
83567c64d83SQiu Chaofan      (instrs
83667c64d83SQiu Chaofan    SRAD_rec,
837*674574d2Szhijian lin    SRAW_rec,
838*674574d2Szhijian lin    SRAW8_rec
83967c64d83SQiu Chaofan)>;
84067c64d83SQiu Chaofan
84167c64d83SQiu Chaofan// 2-way crack instructions
84267c64d83SQiu Chaofan// 4 Cycles ALU2 operations, and 4 Cycles Permute operations, 2 input operands
84367c64d83SQiu Chaofandef : InstRW<[P10W_F2_4C, P10W_DISP_EVEN, P10W_PM_4C, P10W_DISP_ANY],
84467c64d83SQiu Chaofan      (instrs
84567c64d83SQiu Chaofan    VRLQ,
84667c64d83SQiu Chaofan    VRLQNM,
84767c64d83SQiu Chaofan    VSLQ,
84867c64d83SQiu Chaofan    VSRAQ,
84967c64d83SQiu Chaofan    VSRQ
85067c64d83SQiu Chaofan)>;
85167c64d83SQiu Chaofan
85267c64d83SQiu Chaofan// 2-way crack instructions
85367c64d83SQiu Chaofan// 4 Cycles ALU2 operations, and 4 Cycles Permute operations, 3 input operands
85467c64d83SQiu Chaofandef : InstRW<[P10W_F2_4C, P10W_DISP_EVEN, P10W_PM_4C, P10W_DISP_ANY],
85567c64d83SQiu Chaofan      (instrs
85667c64d83SQiu Chaofan    VRLQMI
85767c64d83SQiu Chaofan)>;
85867c64d83SQiu Chaofan
85967c64d83SQiu Chaofan// 2-way crack instructions
86067c64d83SQiu Chaofan// 4 Cycles ALU2 operations, and 4 Cycles ALU2 operations, 0 input operands
86167c64d83SQiu Chaofandef : InstRW<[P10W_F2_4C, P10W_DISP_PAIR, P10W_F2_4C],
86267c64d83SQiu Chaofan      (instrs
86367c64d83SQiu Chaofan    MFCR, MFCR8
86467c64d83SQiu Chaofan)>;
86567c64d83SQiu Chaofan
86667c64d83SQiu Chaofan// 2 Cycles ALU operations, 1 input operands
86767c64d83SQiu Chaofandef : InstRW<[P10W_FX_2C, P10W_DISP_ANY, P10FX_Read],
86867c64d83SQiu Chaofan      (instrs
86967c64d83SQiu Chaofan    MTCTR, MTCTR8, MTCTR8loop, MTCTRloop,
87067c64d83SQiu Chaofan    MTLR, MTLR8
87167c64d83SQiu Chaofan)>;
87267c64d83SQiu Chaofan
87367c64d83SQiu Chaofan// 3 Cycles ALU operations, 0 input operands
87467c64d83SQiu Chaofandef : InstRW<[P10W_FX_3C, P10W_DISP_ANY],
87567c64d83SQiu Chaofan      (instrs
87667c64d83SQiu Chaofan    DSS, DSSALL,
87767c64d83SQiu Chaofan    MCRXRX,
87867c64d83SQiu Chaofan    MFCTR, MFCTR8,
87967c64d83SQiu Chaofan    MFLR, MFLR8,
880ea8b95d0SStefan Pintilie    WAIT, WAITP10
88167c64d83SQiu Chaofan)>;
88267c64d83SQiu Chaofan
88367c64d83SQiu Chaofan// 3 Cycles ALU operations, 1 input operands
88467c64d83SQiu Chaofandef : InstRW<[P10W_FX_3C, P10W_DISP_ANY, P10FX_Read],
88567c64d83SQiu Chaofan      (instrs
88676ad2897SZaara Syeda    ADDI, ADDI8, ADDIdtprelL32, ADDItlsldLADDR32, ADDItocL, ADDItocL8, LI, LI8,
887a2b5117dSQiu Chaofan    ADDIC, ADDIC8,
88867c64d83SQiu Chaofan    ADDIS, ADDIS8, ADDISdtprelHA32, ADDIStocHA, ADDIStocHA8, LIS, LIS8,
88967c64d83SQiu Chaofan    ADDME, ADDME8,
89067c64d83SQiu Chaofan    ADDME8O, ADDMEO,
89167c64d83SQiu Chaofan    ADDZE, ADDZE8,
89267c64d83SQiu Chaofan    ADDZE8O, ADDZEO,
893a2b5117dSQiu Chaofan    ANDI8_rec, ANDI_rec,
894a2b5117dSQiu Chaofan    ANDIS8_rec, ANDIS_rec,
895a2b5117dSQiu Chaofan    CMPDI, CMPWI,
896a2b5117dSQiu Chaofan    CMPLDI, CMPLWI,
89767c64d83SQiu Chaofan    EXTSB, EXTSB8, EXTSB8_32_64,
89867c64d83SQiu Chaofan    EXTSB8_rec, EXTSB_rec,
89967c64d83SQiu Chaofan    EXTSH, EXTSH8, EXTSH8_32_64,
90067c64d83SQiu Chaofan    EXTSH8_rec, EXTSH_rec,
90167c64d83SQiu Chaofan    EXTSW, EXTSW_32, EXTSW_32_64,
90267c64d83SQiu Chaofan    EXTSW_32_64_rec, EXTSW_rec,
903a2b5117dSQiu Chaofan    EXTSWSLI, EXTSWSLI_32_64,
90467c64d83SQiu Chaofan    FABSD, FABSS,
90567c64d83SQiu Chaofan    FMR,
90667c64d83SQiu Chaofan    FNABSD, FNABSS,
90767c64d83SQiu Chaofan    FNEGD, FNEGS,
90867c64d83SQiu Chaofan    MCRF,
90967c64d83SQiu Chaofan    MFOCRF, MFOCRF8,
91067c64d83SQiu Chaofan    MFVRD, MFVSRD,
91167c64d83SQiu Chaofan    MFVRWZ, MFVSRWZ,
91267c64d83SQiu Chaofan    MTOCRF, MTOCRF8,
91367c64d83SQiu Chaofan    MTVRD, MTVSRD,
91467c64d83SQiu Chaofan    MTVRWA, MTVSRWA,
91567c64d83SQiu Chaofan    MTVRWZ, MTVSRWZ,
91667c64d83SQiu Chaofan    NEG, NEG8,
91767c64d83SQiu Chaofan    NEG8_rec, NEG_rec,
91867c64d83SQiu Chaofan    NEG8O, NEGO,
919a2b5117dSQiu Chaofan    NOP, NOP_GT_PWR6, NOP_GT_PWR7, ORI, ORI8,
920a2b5117dSQiu Chaofan    ORIS, ORIS8,
921a2b5117dSQiu Chaofan    RLDIC,
922a2b5117dSQiu Chaofan    RLDICL, RLDICL_32, RLDICL_32_64,
923a2b5117dSQiu Chaofan    RLDICR, RLDICR_32,
924a2b5117dSQiu Chaofan    RLWINM, RLWINM8,
92567c64d83SQiu Chaofan    SETB, SETB8,
92667c64d83SQiu Chaofan    SETBC, SETBC8,
92767c64d83SQiu Chaofan    SETBCR, SETBCR8,
92867c64d83SQiu Chaofan    SETNBC, SETNBC8,
92967c64d83SQiu Chaofan    SETNBCR, SETNBCR8,
930a2b5117dSQiu Chaofan    SRADI, SRADI_32,
931*674574d2Szhijian lin    SRAWI, SRAWI8,
932a2b5117dSQiu Chaofan    SUBFIC, SUBFIC8,
93367c64d83SQiu Chaofan    SUBFME, SUBFME8,
93467c64d83SQiu Chaofan    SUBFME8O, SUBFMEO,
93567c64d83SQiu Chaofan    SUBFZE, SUBFZE8,
93667c64d83SQiu Chaofan    SUBFZE8O, SUBFZEO,
93767c64d83SQiu Chaofan    VEXTSB2D, VEXTSB2Ds,
93867c64d83SQiu Chaofan    VEXTSB2W, VEXTSB2Ws,
93967c64d83SQiu Chaofan    VEXTSD2Q,
94067c64d83SQiu Chaofan    VEXTSH2D, VEXTSH2Ds,
94167c64d83SQiu Chaofan    VEXTSH2W, VEXTSH2Ws,
94267c64d83SQiu Chaofan    VEXTSW2D, VEXTSW2Ds,
94367c64d83SQiu Chaofan    VNEGD,
94467c64d83SQiu Chaofan    VNEGW,
945a2b5117dSQiu Chaofan    XORI, XORI8,
946a2b5117dSQiu Chaofan    XORIS, XORIS8,
94767c64d83SQiu Chaofan    XSABSDP,
94867c64d83SQiu Chaofan    XSABSQP,
949c35ca3a1SAmy Kwan    XSNABSDP, XSNABSDPs,
95067c64d83SQiu Chaofan    XSNABSQP,
95167c64d83SQiu Chaofan    XSNEGDP,
95267c64d83SQiu Chaofan    XSNEGQP,
95367c64d83SQiu Chaofan    XSXEXPDP,
95467c64d83SQiu Chaofan    XSXEXPQP,
95567c64d83SQiu Chaofan    XSXSIGDP,
95667c64d83SQiu Chaofan    XVABSDP,
95767c64d83SQiu Chaofan    XVABSSP,
95867c64d83SQiu Chaofan    XVNABSDP,
95967c64d83SQiu Chaofan    XVNABSSP,
96067c64d83SQiu Chaofan    XVNEGDP,
96167c64d83SQiu Chaofan    XVNEGSP,
96267c64d83SQiu Chaofan    XVXEXPDP,
96367c64d83SQiu Chaofan    XVXEXPSP,
96467c64d83SQiu Chaofan    XVXSIGDP,
96567c64d83SQiu Chaofan    XVXSIGSP
96667c64d83SQiu Chaofan)>;
96767c64d83SQiu Chaofan
96867c64d83SQiu Chaofan// 3 Cycles ALU operations, 2 input operands
96967c64d83SQiu Chaofandef : InstRW<[P10W_FX_3C, P10W_DISP_ANY, P10FX_Read, P10FX_Read],
97067c64d83SQiu Chaofan      (instrs
97167c64d83SQiu Chaofan    ADD4, ADD4TLS, ADD8, ADD8TLS, ADD8TLS_,
97267c64d83SQiu Chaofan    ADD4_rec, ADD8_rec,
97367c64d83SQiu Chaofan    ADDE, ADDE8,
97467c64d83SQiu Chaofan    ADDE8O, ADDEO,
975a2b5117dSQiu Chaofan    ADDEX, ADDEX8,
97667c64d83SQiu Chaofan    ADD4O, ADD8O,
97767c64d83SQiu Chaofan    AND, AND8,
97867c64d83SQiu Chaofan    AND8_rec, AND_rec,
97967c64d83SQiu Chaofan    ANDC, ANDC8,
98067c64d83SQiu Chaofan    ANDC8_rec, ANDC_rec,
98167c64d83SQiu Chaofan    CMPD, CMPW,
98267c64d83SQiu Chaofan    CMPB, CMPB8,
98367c64d83SQiu Chaofan    CMPLD, CMPLW,
98467c64d83SQiu Chaofan    CRAND,
98567c64d83SQiu Chaofan    CRANDC,
986a2b5117dSQiu Chaofan    CR6SET, CREQV, CRSET,
98767c64d83SQiu Chaofan    CRNAND,
98867c64d83SQiu Chaofan    CRNOR,
98967c64d83SQiu Chaofan    CROR,
99067c64d83SQiu Chaofan    CRORC,
99167c64d83SQiu Chaofan    CR6UNSET, CRUNSET, CRXOR,
992a2b5117dSQiu Chaofan    DST, DST64, DSTT, DSTT64,
993a2b5117dSQiu Chaofan    DSTST, DSTST64, DSTSTT, DSTSTT64,
99467c64d83SQiu Chaofan    EQV, EQV8,
99567c64d83SQiu Chaofan    EQV8_rec, EQV_rec,
99667c64d83SQiu Chaofan    FCPSGND, FCPSGNS,
99767c64d83SQiu Chaofan    NAND, NAND8,
99867c64d83SQiu Chaofan    NAND8_rec, NAND_rec,
99967c64d83SQiu Chaofan    NOR, NOR8,
100067c64d83SQiu Chaofan    NOR8_rec, NOR_rec,
100167c64d83SQiu Chaofan    COPY, OR, OR8,
100267c64d83SQiu Chaofan    OR8_rec, OR_rec,
100367c64d83SQiu Chaofan    ORC, ORC8,
100467c64d83SQiu Chaofan    ORC8_rec, ORC_rec,
1005a2b5117dSQiu Chaofan    RLDCL,
1006a2b5117dSQiu Chaofan    RLDCR,
1007a2b5117dSQiu Chaofan    RLDIMI,
1008a2b5117dSQiu Chaofan    RLWIMI, RLWIMI8,
1009a2b5117dSQiu Chaofan    RLWNM, RLWNM8,
101067c64d83SQiu Chaofan    SLD,
101167c64d83SQiu Chaofan    SLW, SLW8,
101267c64d83SQiu Chaofan    SRAD,
1013*674574d2Szhijian lin    SRAW, SRAW8,
101467c64d83SQiu Chaofan    SRD,
101567c64d83SQiu Chaofan    SRW, SRW8,
101667c64d83SQiu Chaofan    SUBF, SUBF8,
101767c64d83SQiu Chaofan    SUBF8_rec, SUBF_rec,
101867c64d83SQiu Chaofan    SUBFE, SUBFE8,
101967c64d83SQiu Chaofan    SUBFE8O, SUBFEO,
102067c64d83SQiu Chaofan    SUBF8O, SUBFO,
102167c64d83SQiu Chaofan    VADDUBM,
102267c64d83SQiu Chaofan    VADDUDM,
102367c64d83SQiu Chaofan    VADDUHM,
102467c64d83SQiu Chaofan    VADDUWM,
102567c64d83SQiu Chaofan    VAND,
102667c64d83SQiu Chaofan    VANDC,
102767c64d83SQiu Chaofan    VCMPEQUB,
102867c64d83SQiu Chaofan    VCMPEQUD,
102967c64d83SQiu Chaofan    VCMPEQUH,
103067c64d83SQiu Chaofan    VCMPEQUW,
103167c64d83SQiu Chaofan    VCMPGTSB,
103267c64d83SQiu Chaofan    VCMPGTSD,
103367c64d83SQiu Chaofan    VCMPGTSH,
103467c64d83SQiu Chaofan    VCMPGTSW,
103567c64d83SQiu Chaofan    VCMPGTUB,
103667c64d83SQiu Chaofan    VCMPGTUD,
103767c64d83SQiu Chaofan    VCMPGTUH,
103867c64d83SQiu Chaofan    VCMPGTUW,
103967c64d83SQiu Chaofan    VCMPNEB,
104067c64d83SQiu Chaofan    VCMPNEH,
104167c64d83SQiu Chaofan    VCMPNEW,
104267c64d83SQiu Chaofan    VCMPNEZB,
104367c64d83SQiu Chaofan    VCMPNEZH,
104467c64d83SQiu Chaofan    VCMPNEZW,
104567c64d83SQiu Chaofan    VEQV,
104667c64d83SQiu Chaofan    VMAXSB,
104767c64d83SQiu Chaofan    VMAXSD,
104867c64d83SQiu Chaofan    VMAXSH,
104967c64d83SQiu Chaofan    VMAXSW,
105067c64d83SQiu Chaofan    VMAXUB,
105167c64d83SQiu Chaofan    VMAXUD,
105267c64d83SQiu Chaofan    VMAXUH,
105367c64d83SQiu Chaofan    VMAXUW,
105467c64d83SQiu Chaofan    VMINSB,
105567c64d83SQiu Chaofan    VMINSD,
105667c64d83SQiu Chaofan    VMINSH,
105767c64d83SQiu Chaofan    VMINSW,
105867c64d83SQiu Chaofan    VMINUB,
105967c64d83SQiu Chaofan    VMINUD,
106067c64d83SQiu Chaofan    VMINUH,
106167c64d83SQiu Chaofan    VMINUW,
106267c64d83SQiu Chaofan    VMRGEW,
106367c64d83SQiu Chaofan    VMRGOW,
106467c64d83SQiu Chaofan    VNAND,
106567c64d83SQiu Chaofan    VNOR,
106667c64d83SQiu Chaofan    VOR,
106767c64d83SQiu Chaofan    VORC,
106867c64d83SQiu Chaofan    VRLB,
106967c64d83SQiu Chaofan    VRLD,
107067c64d83SQiu Chaofan    VRLDNM,
107167c64d83SQiu Chaofan    VRLH,
107267c64d83SQiu Chaofan    VRLW,
107367c64d83SQiu Chaofan    VRLWNM,
107467c64d83SQiu Chaofan    VSLB,
107567c64d83SQiu Chaofan    VSLD,
107667c64d83SQiu Chaofan    VSLH,
107767c64d83SQiu Chaofan    VSLW,
107867c64d83SQiu Chaofan    VSRAB,
107967c64d83SQiu Chaofan    VSRAD,
108067c64d83SQiu Chaofan    VSRAH,
108167c64d83SQiu Chaofan    VSRAW,
108267c64d83SQiu Chaofan    VSRB,
108367c64d83SQiu Chaofan    VSRD,
108467c64d83SQiu Chaofan    VSRH,
108567c64d83SQiu Chaofan    VSRW,
108667c64d83SQiu Chaofan    VSUBUBM,
108767c64d83SQiu Chaofan    VSUBUDM,
108867c64d83SQiu Chaofan    VSUBUHM,
108967c64d83SQiu Chaofan    VSUBUWM,
1090a2b5117dSQiu Chaofan    VXOR, V_SET0, V_SET0B, V_SET0H,
109167c64d83SQiu Chaofan    XOR, XOR8,
109267c64d83SQiu Chaofan    XOR8_rec, XOR_rec,
109367c64d83SQiu Chaofan    XSCPSGNDP,
109467c64d83SQiu Chaofan    XSCPSGNQP,
109567c64d83SQiu Chaofan    XSIEXPDP,
109667c64d83SQiu Chaofan    XSIEXPQP,
109767c64d83SQiu Chaofan    XVCPSGNDP,
109867c64d83SQiu Chaofan    XVCPSGNSP,
109967c64d83SQiu Chaofan    XVIEXPDP,
110067c64d83SQiu Chaofan    XVIEXPSP,
110167c64d83SQiu Chaofan    XXLAND,
110267c64d83SQiu Chaofan    XXLANDC,
1103a2b5117dSQiu Chaofan    XXLEQV, XXLEQVOnes,
110467c64d83SQiu Chaofan    XXLNAND,
110567c64d83SQiu Chaofan    XXLNOR,
110667c64d83SQiu Chaofan    XXLOR, XXLORf,
1107a2b5117dSQiu Chaofan    XXLORC,
1108a2b5117dSQiu Chaofan    XXLXOR, XXLXORdpz, XXLXORspz, XXLXORz
110967c64d83SQiu Chaofan)>;
111067c64d83SQiu Chaofan
111167c64d83SQiu Chaofan// 3 Cycles ALU operations, 3 input operands
111267c64d83SQiu Chaofandef : InstRW<[P10W_FX_3C, P10W_DISP_ANY, P10FX_Read, P10FX_Read, P10FX_Read],
111367c64d83SQiu Chaofan      (instrs
111467c64d83SQiu Chaofan    ISEL, ISEL8,
111567c64d83SQiu Chaofan    VRLDMI,
111667c64d83SQiu Chaofan    VRLWMI,
111767c64d83SQiu Chaofan    VSEL,
111867c64d83SQiu Chaofan    XXSEL
111967c64d83SQiu Chaofan)>;
112067c64d83SQiu Chaofan
112167c64d83SQiu Chaofan// Single crack instructions
112267c64d83SQiu Chaofan// 3 Cycles ALU operations, 0 input operands
112367c64d83SQiu Chaofandef : InstRW<[P10W_FX_3C, P10W_DISP_EVEN, P10W_DISP_ANY],
112467c64d83SQiu Chaofan      (instrs
112567c64d83SQiu Chaofan    MFFS,
112667c64d83SQiu Chaofan    MFFS_rec,
1127a2b5117dSQiu Chaofan    MFFSCDRNI,
1128a2b5117dSQiu Chaofan    MFFSCRNI,
112967c64d83SQiu Chaofan    MFFSL,
113067c64d83SQiu Chaofan    MFVSCR,
113153edf452SQiu Chaofan    MTFSB0
113267c64d83SQiu Chaofan)>;
113367c64d83SQiu Chaofan
113467c64d83SQiu Chaofan// Single crack instructions
113567c64d83SQiu Chaofan// 3 Cycles ALU operations, 1 input operands
113667c64d83SQiu Chaofandef : InstRW<[P10W_FX_3C, P10W_DISP_EVEN, P10W_DISP_ANY, P10FX_Read],
113767c64d83SQiu Chaofan      (instrs
1138a2b5117dSQiu Chaofan    ADDIC_rec,
113967c64d83SQiu Chaofan    ADDME8_rec, ADDME_rec,
114067c64d83SQiu Chaofan    ADDME8O_rec, ADDMEO_rec,
114167c64d83SQiu Chaofan    ADDZE8_rec, ADDZE_rec,
114267c64d83SQiu Chaofan    ADDZE8O_rec, ADDZEO_rec,
114367c64d83SQiu Chaofan    MCRFS,
114467c64d83SQiu Chaofan    MFFSCDRN,
114567c64d83SQiu Chaofan    MFFSCRN,
114667c64d83SQiu Chaofan    MTVSCR,
114767c64d83SQiu Chaofan    NEG8O_rec, NEGO_rec,
114867c64d83SQiu Chaofan    SUBFME8_rec, SUBFME_rec,
114967c64d83SQiu Chaofan    SUBFME8O_rec, SUBFMEO_rec,
115067c64d83SQiu Chaofan    SUBFZE8_rec, SUBFZE_rec,
115153edf452SQiu Chaofan    SUBFZE8O_rec, SUBFZEO_rec
115267c64d83SQiu Chaofan)>;
115367c64d83SQiu Chaofan
115467c64d83SQiu Chaofan// Single crack instructions
115567c64d83SQiu Chaofan// 3 Cycles ALU operations, 2 input operands
115667c64d83SQiu Chaofandef : InstRW<[P10W_FX_3C, P10W_DISP_EVEN, P10W_DISP_ANY, P10FX_Read, P10FX_Read],
115767c64d83SQiu Chaofan      (instrs
115867c64d83SQiu Chaofan    ADDE8_rec, ADDE_rec,
115967c64d83SQiu Chaofan    ADDE8O_rec, ADDEO_rec,
116067c64d83SQiu Chaofan    ADD4O_rec, ADD8O_rec,
116167c64d83SQiu Chaofan    SUBFE8_rec, SUBFE_rec,
116267c64d83SQiu Chaofan    SUBFE8O_rec, SUBFEO_rec,
116367c64d83SQiu Chaofan    SUBF8O_rec, SUBFO_rec
116467c64d83SQiu Chaofan)>;
116567c64d83SQiu Chaofan
116667c64d83SQiu Chaofan// 2-way crack instructions
1167b4747390SStefan Pintilie// 3 Cycles ALU operations, and 4 Cycles ALU2 operations, 2 input operands
1168b4747390SStefan Pintiliedef : InstRW<[P10W_FX_3C, P10W_DISP_EVEN, P10W_F2_4C, P10W_DISP_ANY],
1169b4747390SStefan Pintilie      (instrs
1170b4747390SStefan Pintilie    ADDG6S, ADDG6S8
1171b4747390SStefan Pintilie)>;
1172b4747390SStefan Pintilie
1173b4747390SStefan Pintilie// 2-way crack instructions
117467c64d83SQiu Chaofan// 3 Cycles ALU operations, and 3 Cycles ALU operations, 0 input operands
117567c64d83SQiu Chaofandef : InstRW<[P10W_FX_3C, P10W_DISP_EVEN, P10W_FX_3C, P10W_DISP_ANY],
117667c64d83SQiu Chaofan      (instrs
117767c64d83SQiu Chaofan    HRFID,
117867c64d83SQiu Chaofan    MFFSCE,
1179a2b5117dSQiu Chaofan    MTFSB1,
1180a2b5117dSQiu Chaofan    MTFSFI, MTFSFIb,
1181a2b5117dSQiu Chaofan    MTFSFI_rec,
1182a2b5117dSQiu Chaofan    RFEBB,
118367c64d83SQiu Chaofan    RFID,
1184a2b5117dSQiu Chaofan    SC,
118567c64d83SQiu Chaofan    STOP
118667c64d83SQiu Chaofan)>;
118767c64d83SQiu Chaofan
118867c64d83SQiu Chaofan// 2-way crack instructions
118967c64d83SQiu Chaofan// 3 Cycles ALU operations, and 3 Cycles ALU operations, 1 input operands
119067c64d83SQiu Chaofandef : InstRW<[P10W_FX_3C, P10W_DISP_EVEN, P10W_FX_3C, P10W_DISP_ANY, P10FX_Read],
119167c64d83SQiu Chaofan      (instrs
119267c64d83SQiu Chaofan    FABSD_rec, FABSS_rec,
119367c64d83SQiu Chaofan    FMR_rec,
119467c64d83SQiu Chaofan    FNABSD_rec, FNABSS_rec,
119567c64d83SQiu Chaofan    FNEGD_rec, FNEGS_rec,
1196a2b5117dSQiu Chaofan    MTFSF, MTFSFb,
1197a2b5117dSQiu Chaofan    MTFSF_rec
119867c64d83SQiu Chaofan)>;
119967c64d83SQiu Chaofan
120067c64d83SQiu Chaofan// 2-way crack instructions
120167c64d83SQiu Chaofan// 3 Cycles ALU operations, and 3 Cycles ALU operations, 2 input operands
120267c64d83SQiu Chaofandef : InstRW<[P10W_FX_3C, P10W_DISP_EVEN, P10W_FX_3C, P10W_DISP_ANY, P10FX_Read, P10FX_Read],
120367c64d83SQiu Chaofan      (instrs
120467c64d83SQiu Chaofan    ADDC, ADDC8,
120567c64d83SQiu Chaofan    ADDC8_rec, ADDC_rec,
120667c64d83SQiu Chaofan    ADDC8O, ADDCO,
120767c64d83SQiu Chaofan    FCPSGND_rec, FCPSGNS_rec,
120867c64d83SQiu Chaofan    SUBFC, SUBFC8,
120967c64d83SQiu Chaofan    SUBFC8_rec, SUBFC_rec,
121067c64d83SQiu Chaofan    SUBFC8O, SUBFCO
121167c64d83SQiu Chaofan)>;
121267c64d83SQiu Chaofan
121367c64d83SQiu Chaofan// 4-way crack instructions
121467c64d83SQiu Chaofan// 3 Cycles ALU operations, 3 Cycles ALU operations, 3 Cycles ALU operations, and 3 Cycles ALU operations, 2 input operands
121567c64d83SQiu Chaofandef : InstRW<[P10W_FX_3C, P10W_DISP_EVEN, P10W_FX_3C, P10W_DISP_ANY, P10W_FX_3C, P10W_DISP_ANY, P10W_FX_3C, P10W_DISP_ANY, P10FX_Read, P10FX_Read],
121667c64d83SQiu Chaofan      (instrs
121767c64d83SQiu Chaofan    ADDC8O_rec, ADDCO_rec,
121867c64d83SQiu Chaofan    SUBFC8O_rec, SUBFCO_rec
121967c64d83SQiu Chaofan)>;
122067c64d83SQiu Chaofan
122167c64d83SQiu Chaofan// 2-way crack instructions
122267c64d83SQiu Chaofan// 3 Cycles ALU operations, and 4 Cycles Permute operations, 1 input operands
122367c64d83SQiu Chaofandef : InstRW<[P10W_FX_3C, P10W_DISP_EVEN, P10W_PM_4C, P10W_DISP_ANY],
122467c64d83SQiu Chaofan      (instrs
122567c64d83SQiu Chaofan    VSTRIBL_rec,
122667c64d83SQiu Chaofan    VSTRIBR_rec,
122767c64d83SQiu Chaofan    VSTRIHL_rec,
122867c64d83SQiu Chaofan    VSTRIHR_rec
122967c64d83SQiu Chaofan)>;
123067c64d83SQiu Chaofan
123167c64d83SQiu Chaofan// 2-way crack instructions
1232a2b5117dSQiu Chaofan// 3 Cycles ALU operations, and 3 Cycles ALU operations, 1 input operands
1233a2b5117dSQiu Chaofandef : InstRW<[P10W_FX_3C, P10W_DISP_PAIR, P10W_FX_3C, P10FX_Read],
123467c64d83SQiu Chaofan      (instrs
123567c64d83SQiu Chaofan    MTCRF, MTCRF8
123667c64d83SQiu Chaofan)>;
123767c64d83SQiu Chaofan
1238a2b5117dSQiu Chaofan// 6 Cycles Load operations, 0 input operands
1239a2b5117dSQiu Chaofandef : InstRW<[P10W_LD_6C, P10W_DISP_ANY],
1240a2b5117dSQiu Chaofan      (instrs
1241a2b5117dSQiu Chaofan    LBZ, LBZ8,
1242a2b5117dSQiu Chaofan    LD, LDtoc, LDtocBA, LDtocCPT, LDtocJTI,  LDtocL, SPILLTOVSR_LD,
1243a2b5117dSQiu Chaofan    DFLOADf32, DFLOADf64, LFD,
1244a2b5117dSQiu Chaofan    LHA, LHA8,
1245a2b5117dSQiu Chaofan    LHZ, LHZ8,
1246a2b5117dSQiu Chaofan    LWA, LWA_32,
1247a2b5117dSQiu Chaofan    LWZ, LWZ8, LWZtoc, LWZtocL,
1248a2b5117dSQiu Chaofan    LXSD,
1249a2b5117dSQiu Chaofan    LXV
1250a2b5117dSQiu Chaofan)>;
1251a2b5117dSQiu Chaofan
125267c64d83SQiu Chaofan// 6 Cycles Load operations, 1 input operands
125367c64d83SQiu Chaofandef : InstRW<[P10W_LD_6C, P10W_DISP_ANY, P10LD_Read],
125467c64d83SQiu Chaofan      (instrs
1255a2b5117dSQiu Chaofan    LXVL,
1256a2b5117dSQiu Chaofan    LXVLL
1257a2b5117dSQiu Chaofan)>;
1258a2b5117dSQiu Chaofan
1259a2b5117dSQiu Chaofan// 6 Cycles Load operations, 2 input operands
1260a2b5117dSQiu Chaofandef : InstRW<[P10W_LD_6C, P10W_DISP_ANY, P10LD_Read, P10LD_Read],
1261a2b5117dSQiu Chaofan      (instrs
1262a2b5117dSQiu Chaofan    DCBT,
1263a2b5117dSQiu Chaofan    DCBTST,
1264a2b5117dSQiu Chaofan    ICBT,
1265a2b5117dSQiu Chaofan    LBZX, LBZX8, LBZXTLS, LBZXTLS_, LBZXTLS_32,
126667c64d83SQiu Chaofan    LDBRX,
1267a2b5117dSQiu Chaofan    LDX, LDXTLS, LDXTLS_, SPILLTOVSR_LDX,
1268a2b5117dSQiu Chaofan    LFDX, LFDXTLS, LFDXTLS_, XFLOADf32, XFLOADf64,
126967c64d83SQiu Chaofan    LFIWAX, LIWAX,
127067c64d83SQiu Chaofan    LFIWZX, LIWZX,
1271a2b5117dSQiu Chaofan    LHAX, LHAX8, LHAXTLS, LHAXTLS_, LHAXTLS_32,
127267c64d83SQiu Chaofan    LHBRX, LHBRX8,
1273a2b5117dSQiu Chaofan    LHZX, LHZX8, LHZXTLS, LHZXTLS_, LHZXTLS_32,
127467c64d83SQiu Chaofan    LVEBX,
127567c64d83SQiu Chaofan    LVEHX,
127667c64d83SQiu Chaofan    LVEWX,
127767c64d83SQiu Chaofan    LVX,
127867c64d83SQiu Chaofan    LVXL,
127911b71adeSAmy Kwan    LWAX, LWAXTLS, LWAXTLS_, LWAXTLS_32, LWAX_32,
128067c64d83SQiu Chaofan    LWBRX, LWBRX8,
1281a2b5117dSQiu Chaofan    LWZX, LWZX8, LWZXTLS, LWZXTLS_, LWZXTLS_32,
128267c64d83SQiu Chaofan    LXSDX,
128367c64d83SQiu Chaofan    LXSIBZX,
128467c64d83SQiu Chaofan    LXSIHZX,
128567c64d83SQiu Chaofan    LXSIWAX,
128667c64d83SQiu Chaofan    LXSIWZX,
128767c64d83SQiu Chaofan    LXVB16X,
128867c64d83SQiu Chaofan    LXVD2X,
128967c64d83SQiu Chaofan    LXVDSX,
129067c64d83SQiu Chaofan    LXVH8X,
129167c64d83SQiu Chaofan    LXVRBX,
129267c64d83SQiu Chaofan    LXVRDX,
129367c64d83SQiu Chaofan    LXVRHX,
129467c64d83SQiu Chaofan    LXVRWX,
129567c64d83SQiu Chaofan    LXVW4X,
129667c64d83SQiu Chaofan    LXVWSX,
129767c64d83SQiu Chaofan    LXVX
129867c64d83SQiu Chaofan)>;
129967c64d83SQiu Chaofan
130067c64d83SQiu Chaofan// 2-way crack instructions
1301a2b5117dSQiu Chaofan// 6 Cycles Load operations, and 13 Cycles Decimal Floating Point operations, 1 input operands
130267c64d83SQiu Chaofandef : InstRW<[P10W_LD_6C, P10W_DISP_EVEN, P10W_DF_13C, P10W_DISP_ANY],
130367c64d83SQiu Chaofan      (instrs
130404496201SStefan Pintilie    HASHCHK, HASHCHK8,
130504496201SStefan Pintilie    HASHCHKP, HASHCHKP8
130667c64d83SQiu Chaofan)>;
130767c64d83SQiu Chaofan
130867c64d83SQiu Chaofan// Single crack instructions
130967c64d83SQiu Chaofan// 6 Cycles Load operations, 0 input operands
131067c64d83SQiu Chaofandef : InstRW<[P10W_LD_6C, P10W_DISP_EVEN, P10W_DISP_ANY],
131167c64d83SQiu Chaofan      (instrs
1312a2b5117dSQiu Chaofan    DARN,
131367c64d83SQiu Chaofan    SLBIA
131467c64d83SQiu Chaofan)>;
131567c64d83SQiu Chaofan
131667c64d83SQiu Chaofan// Single crack instructions
131767c64d83SQiu Chaofan// 6 Cycles Load operations, 1 input operands
131867c64d83SQiu Chaofandef : InstRW<[P10W_LD_6C, P10W_DISP_EVEN, P10W_DISP_ANY, P10LD_Read],
131967c64d83SQiu Chaofan      (instrs
1320a2b5117dSQiu Chaofan    MTSPR, MTSPR8, MTSR, MTUDSCR, MTVRSAVE, MTVRSAVEv,
132167c64d83SQiu Chaofan    SLBFEE_rec,
132267c64d83SQiu Chaofan    SLBIE,
132367c64d83SQiu Chaofan    SLBMFEE,
132467c64d83SQiu Chaofan    SLBMFEV
132567c64d83SQiu Chaofan)>;
132667c64d83SQiu Chaofan
132767c64d83SQiu Chaofan// Single crack instructions
132867c64d83SQiu Chaofan// 6 Cycles Load operations, 2 input operands
132967c64d83SQiu Chaofandef : InstRW<[P10W_LD_6C, P10W_DISP_EVEN, P10W_DISP_ANY, P10LD_Read, P10LD_Read],
133067c64d83SQiu Chaofan      (instrs
1331a2b5117dSQiu Chaofan    LBARX, LBARXL,
133267c64d83SQiu Chaofan    LBZCIX,
1333a2b5117dSQiu Chaofan    LDARX, LDARXL,
133467c64d83SQiu Chaofan    LDCIX,
1335a2b5117dSQiu Chaofan    LHARX, LHARXL,
133667c64d83SQiu Chaofan    LHZCIX,
1337a2b5117dSQiu Chaofan    LWARX, LWARXL,
1338a2b5117dSQiu Chaofan    LWZCIX
1339a2b5117dSQiu Chaofan)>;
1340a2b5117dSQiu Chaofan
1341a2b5117dSQiu Chaofan// Expand instructions
1342a2b5117dSQiu Chaofan// 6 Cycles Load operations, 6 Cycles Load operations, 6 Cycles Load operations, and 6 Cycles Load operations, 0 input operands
1343a2b5117dSQiu Chaofandef : InstRW<[P10W_LD_6C, P10W_DISP_EVEN, P10W_LD_6C, P10W_DISP_ANY, P10W_LD_6C, P10W_DISP_ANY, P10W_LD_6C, P10W_DISP_ANY],
1344a2b5117dSQiu Chaofan      (instrs
1345a2b5117dSQiu Chaofan    LMW
134667c64d83SQiu Chaofan)>;
134767c64d83SQiu Chaofan
134867c64d83SQiu Chaofan// Expand instructions
134967c64d83SQiu Chaofan// 6 Cycles Load operations, 6 Cycles Load operations, 6 Cycles Load operations, and 6 Cycles Load operations, 1 input operands
135067c64d83SQiu Chaofandef : InstRW<[P10W_LD_6C, P10W_DISP_EVEN, P10W_LD_6C, P10W_DISP_ANY, P10W_LD_6C, P10W_DISP_ANY, P10W_LD_6C, P10W_DISP_ANY, P10LD_Read],
135167c64d83SQiu Chaofan      (instrs
135267c64d83SQiu Chaofan    LSWI
135367c64d83SQiu Chaofan)>;
135467c64d83SQiu Chaofan
135567c64d83SQiu Chaofan// 2-way crack instructions
1356a2b5117dSQiu Chaofan// 6 Cycles Load operations, and 3 Cycles Simple Fixed-point (SFX) operations, 0 input operands
135767c64d83SQiu Chaofandef : InstRW<[P10W_LD_6C, P10W_DISP_EVEN, P10W_SX_3C, P10W_DISP_ANY],
135867c64d83SQiu Chaofan      (instrs
135967c64d83SQiu Chaofan    LBZU, LBZU8,
136067c64d83SQiu Chaofan    LDU,
136167c64d83SQiu Chaofan    LFDU,
136267c64d83SQiu Chaofan    LHAU, LHAU8,
136367c64d83SQiu Chaofan    LHZU, LHZU8,
1364a2b5117dSQiu Chaofan    LWZU, LWZU8
1365a2b5117dSQiu Chaofan)>;
1366a2b5117dSQiu Chaofan
1367a2b5117dSQiu Chaofan// 2-way crack instructions
1368a2b5117dSQiu Chaofan// 6 Cycles Load operations, and 3 Cycles Simple Fixed-point (SFX) operations, 2 input operands
1369a2b5117dSQiu Chaofandef : InstRW<[P10W_LD_6C, P10W_DISP_EVEN, P10W_SX_3C, P10W_DISP_ANY],
1370a2b5117dSQiu Chaofan      (instrs
1371a2b5117dSQiu Chaofan    LBZUX, LBZUX8,
1372a2b5117dSQiu Chaofan    LDUX,
1373a2b5117dSQiu Chaofan    LFDUX,
1374a2b5117dSQiu Chaofan    LHAUX, LHAUX8,
137567c64d83SQiu Chaofan    LHZUX, LHZUX8,
137667c64d83SQiu Chaofan    LWAUX,
137767c64d83SQiu Chaofan    LWZUX, LWZUX8
137867c64d83SQiu Chaofan)>;
137967c64d83SQiu Chaofan
1380a2b5117dSQiu Chaofan// 6 Cycles Load operations, 0 input operands
1381a2b5117dSQiu Chaofandef : InstRW<[P10W_LD_6C, P10W_DISP_PAIR],
138267c64d83SQiu Chaofan      (instrs
138367c64d83SQiu Chaofan    PLBZ, PLBZ8, PLBZ8pc, PLBZpc,
138467c64d83SQiu Chaofan    PLD, PLDpc,
138567c64d83SQiu Chaofan    PLFD, PLFDpc,
138667c64d83SQiu Chaofan    PLFS, PLFSpc,
138767c64d83SQiu Chaofan    PLHA, PLHA8, PLHA8pc, PLHApc,
138867c64d83SQiu Chaofan    PLHZ, PLHZ8, PLHZ8pc, PLHZpc,
138967c64d83SQiu Chaofan    PLWA, PLWA8, PLWA8pc, PLWApc,
139067c64d83SQiu Chaofan    PLWZ, PLWZ8, PLWZ8pc, PLWZpc,
139167c64d83SQiu Chaofan    PLXSD, PLXSDpc,
139267c64d83SQiu Chaofan    PLXSSP, PLXSSPpc,
139367c64d83SQiu Chaofan    PLXV, PLXVpc,
139467c64d83SQiu Chaofan    PLXVP, PLXVPpc
139567c64d83SQiu Chaofan)>;
139667c64d83SQiu Chaofan
139767c64d83SQiu Chaofan// 2-way crack instructions
1398a2b5117dSQiu Chaofan// 6 Cycles Load operations, and 4 Cycles ALU2 operations, 0 input operands
139967c64d83SQiu Chaofandef : InstRW<[P10W_LD_6C, P10W_DISP_PAIR, P10W_F2_4C],
140067c64d83SQiu Chaofan      (instrs
140167c64d83SQiu Chaofan    LFS,
1402a2b5117dSQiu Chaofan    LXSSP
140367c64d83SQiu Chaofan)>;
140467c64d83SQiu Chaofan
140511b71adeSAmy Kwan// 2-way crack instructions
140611b71adeSAmy Kwan// 6 Cycles Load operations, and 4 Cycles ALU2 operations, 2 input operands
140711b71adeSAmy Kwandef : InstRW<[P10W_LD_6C, P10W_DISP_PAIR, P10W_F2_4C],
140811b71adeSAmy Kwan      (instrs
1409a2b5117dSQiu Chaofan    LFSX, LFSXTLS, LFSXTLS_,
1410a2b5117dSQiu Chaofan    LXSSPX
141111b71adeSAmy Kwan)>;
141211b71adeSAmy Kwan
141367c64d83SQiu Chaofan// 4-way crack instructions
1414a2b5117dSQiu Chaofan// 6 Cycles Load operations, 4 Cycles ALU2 operations, 3 Cycles Simple Fixed-point (SFX) operations, and 3 Cycles ALU operations, 0 input operands
141567c64d83SQiu Chaofandef : InstRW<[P10W_LD_6C, P10W_DISP_PAIR, P10W_F2_4C, P10W_SX_3C, P10W_DISP_ANY, P10W_FX_3C, P10W_DISP_ANY],
141667c64d83SQiu Chaofan      (instrs
1417a2b5117dSQiu Chaofan    LFSU
1418a2b5117dSQiu Chaofan)>;
1419a2b5117dSQiu Chaofan
1420a2b5117dSQiu Chaofan// 4-way crack instructions
1421a2b5117dSQiu Chaofan// 6 Cycles Load operations, 4 Cycles ALU2 operations, 3 Cycles Simple Fixed-point (SFX) operations, and 3 Cycles ALU operations, 2 input operands
1422a2b5117dSQiu Chaofandef : InstRW<[P10W_LD_6C, P10W_DISP_PAIR, P10W_F2_4C, P10W_SX_3C, P10W_DISP_ANY, P10W_FX_3C, P10W_DISP_ANY],
1423a2b5117dSQiu Chaofan      (instrs
142467c64d83SQiu Chaofan    LFSUX
142567c64d83SQiu Chaofan)>;
142667c64d83SQiu Chaofan
142767c64d83SQiu Chaofan// 2-way crack instructions
142867c64d83SQiu Chaofan// 6 Cycles Load operations, and 6 Cycles Load operations, 1 input operands
142967c64d83SQiu Chaofandef : InstRW<[P10W_LD_6C, P10W_DISP_PAIR, P10W_LD_6C, P10W_DISP_PAIR, P10LD_Read],
143067c64d83SQiu Chaofan      (instrs
143167c64d83SQiu Chaofan    TLBIEL
143267c64d83SQiu Chaofan)>;
143367c64d83SQiu Chaofan
143467c64d83SQiu Chaofan// 2-way crack instructions
143567c64d83SQiu Chaofan// 6 Cycles Load operations, and 6 Cycles Load operations, 2 input operands
143667c64d83SQiu Chaofandef : InstRW<[P10W_LD_6C, P10W_DISP_PAIR, P10W_LD_6C, P10W_DISP_PAIR, P10LD_Read, P10LD_Read],
143767c64d83SQiu Chaofan      (instrs
143867c64d83SQiu Chaofan    SLBMTE
143967c64d83SQiu Chaofan)>;
144067c64d83SQiu Chaofan
144167c64d83SQiu Chaofan// 2-way crack instructions
1442a2b5117dSQiu Chaofan// 6 Cycles Load operations, and 3 Cycles Simple Fixed-point (SFX) operations, 0 input operands
144367c64d83SQiu Chaofandef : InstRW<[P10W_LD_6C, P10W_DISP_PAIR, P10W_SX_3C],
144467c64d83SQiu Chaofan      (instrs
1445a2b5117dSQiu Chaofan    LXVP
1446a2b5117dSQiu Chaofan)>;
1447a2b5117dSQiu Chaofan
1448a2b5117dSQiu Chaofan// 2-way crack instructions
1449a2b5117dSQiu Chaofan// 6 Cycles Load operations, and 3 Cycles Simple Fixed-point (SFX) operations, 2 input operands
1450a2b5117dSQiu Chaofandef : InstRW<[P10W_LD_6C, P10W_DISP_PAIR, P10W_SX_3C],
1451a2b5117dSQiu Chaofan      (instrs
145267c64d83SQiu Chaofan    LXVPX
145367c64d83SQiu Chaofan)>;
145467c64d83SQiu Chaofan
145567c64d83SQiu Chaofan// Single crack instructions
145667c64d83SQiu Chaofan// 13 Cycles Unknown operations, 1 input operands
145767c64d83SQiu Chaofandef : InstRW<[P10W_MFL_13C, P10W_DISP_EVEN, P10W_DISP_ANY],
145867c64d83SQiu Chaofan      (instrs
14592e55bc9fSStefan Pintilie    MFSPR, MFSPR8, MFSR, MFTB8, MFUDSCR, MFVRSAVE, MFVRSAVEv
146067c64d83SQiu Chaofan)>;
146167c64d83SQiu Chaofan
146267c64d83SQiu Chaofan// 10 Cycles SIMD Matrix Multiply Engine operations, 0 input operands
146367c64d83SQiu Chaofandef : InstRW<[P10W_MM_10C, P10W_DISP_ANY],
146467c64d83SQiu Chaofan      (instrs
146567c64d83SQiu Chaofan    XXSETACCZ
146667c64d83SQiu Chaofan)>;
146767c64d83SQiu Chaofan
146867c64d83SQiu Chaofan// 10 Cycles SIMD Matrix Multiply Engine operations, 2 input operands
146967c64d83SQiu Chaofandef : InstRW<[P10W_MM_10C, P10W_DISP_ANY, P10MM_Read, P10MM_Read],
147067c64d83SQiu Chaofan      (instrs
147167c64d83SQiu Chaofan    XVBF16GER2,
147267c64d83SQiu Chaofan    XVF16GER2,
147367c64d83SQiu Chaofan    XVF32GER,
147467c64d83SQiu Chaofan    XVF64GER,
147567c64d83SQiu Chaofan    XVI16GER2,
147667c64d83SQiu Chaofan    XVI16GER2S,
147767c64d83SQiu Chaofan    XVI4GER8,
147867c64d83SQiu Chaofan    XVI8GER4
147967c64d83SQiu Chaofan)>;
148067c64d83SQiu Chaofan
148167c64d83SQiu Chaofan// 10 Cycles SIMD Matrix Multiply Engine operations, 3 input operands
148267c64d83SQiu Chaofandef : InstRW<[P10W_MM_10C, P10W_DISP_ANY, P10MM_Read, P10MM_Read, P10MM_Read],
148367c64d83SQiu Chaofan      (instrs
148467c64d83SQiu Chaofan    XVBF16GER2NN,
148567c64d83SQiu Chaofan    XVBF16GER2NP,
148667c64d83SQiu Chaofan    XVBF16GER2PN,
148767c64d83SQiu Chaofan    XVBF16GER2PP,
148867c64d83SQiu Chaofan    XVF16GER2NN,
148967c64d83SQiu Chaofan    XVF16GER2NP,
149067c64d83SQiu Chaofan    XVF16GER2PN,
149167c64d83SQiu Chaofan    XVF16GER2PP,
149267c64d83SQiu Chaofan    XVF32GERNN,
149367c64d83SQiu Chaofan    XVF32GERNP,
149467c64d83SQiu Chaofan    XVF32GERPN,
149567c64d83SQiu Chaofan    XVF32GERPP,
149667c64d83SQiu Chaofan    XVF64GERNN,
149767c64d83SQiu Chaofan    XVF64GERNP,
149867c64d83SQiu Chaofan    XVF64GERPN,
149967c64d83SQiu Chaofan    XVF64GERPP,
150067c64d83SQiu Chaofan    XVI16GER2PP,
150167c64d83SQiu Chaofan    XVI16GER2SPP,
150267c64d83SQiu Chaofan    XVI4GER8PP,
150367c64d83SQiu Chaofan    XVI8GER4PP,
150467c64d83SQiu Chaofan    XVI8GER4SPP
150567c64d83SQiu Chaofan)>;
150667c64d83SQiu Chaofan
1507a2b5117dSQiu Chaofan// 10 Cycles SIMD Matrix Multiply Engine operations, 2 input operands
1508a2b5117dSQiu Chaofandef : InstRW<[P10W_MM_10C, P10W_DISP_PAIR, P10MM_Read, P10MM_Read],
150967c64d83SQiu Chaofan      (instrs
151067c64d83SQiu Chaofan    PMXVBF16GER2,
151167c64d83SQiu Chaofan    PMXVF16GER2,
1512a2b5117dSQiu Chaofan    PMXVF32GER,
1513a2b5117dSQiu Chaofan    PMXVF64GER,
151467c64d83SQiu Chaofan    PMXVI16GER2,
151567c64d83SQiu Chaofan    PMXVI16GER2S,
151667c64d83SQiu Chaofan    PMXVI4GER8,
151767c64d83SQiu Chaofan    PMXVI8GER4
151867c64d83SQiu Chaofan)>;
151967c64d83SQiu Chaofan
1520a2b5117dSQiu Chaofan// 10 Cycles SIMD Matrix Multiply Engine operations, 3 input operands
1521a2b5117dSQiu Chaofandef : InstRW<[P10W_MM_10C, P10W_DISP_PAIR, P10MM_Read, P10MM_Read, P10MM_Read],
152267c64d83SQiu Chaofan      (instrs
152367c64d83SQiu Chaofan    PMXVBF16GER2NN,
152467c64d83SQiu Chaofan    PMXVBF16GER2NP,
152567c64d83SQiu Chaofan    PMXVBF16GER2PN,
152667c64d83SQiu Chaofan    PMXVBF16GER2PP,
152767c64d83SQiu Chaofan    PMXVF16GER2NN,
152867c64d83SQiu Chaofan    PMXVF16GER2NP,
152967c64d83SQiu Chaofan    PMXVF16GER2PN,
153067c64d83SQiu Chaofan    PMXVF16GER2PP,
1531a2b5117dSQiu Chaofan    PMXVF32GERNN,
1532a2b5117dSQiu Chaofan    PMXVF32GERNP,
1533a2b5117dSQiu Chaofan    PMXVF32GERPN,
1534a2b5117dSQiu Chaofan    PMXVF32GERPP,
1535a2b5117dSQiu Chaofan    PMXVF64GERNN,
1536a2b5117dSQiu Chaofan    PMXVF64GERNP,
1537a2b5117dSQiu Chaofan    PMXVF64GERPN,
1538a2b5117dSQiu Chaofan    PMXVF64GERPP,
153967c64d83SQiu Chaofan    PMXVI16GER2PP,
154067c64d83SQiu Chaofan    PMXVI16GER2SPP,
154167c64d83SQiu Chaofan    PMXVI4GER8PP,
154267c64d83SQiu Chaofan    PMXVI8GER4PP,
154367c64d83SQiu Chaofan    PMXVI8GER4SPP
154467c64d83SQiu Chaofan)>;
154567c64d83SQiu Chaofan
154667c64d83SQiu Chaofan// 2-way crack instructions
154767c64d83SQiu Chaofan// 10 Cycles SIMD Matrix Multiply Engine operations, and 3 Cycles ALU operations, 1 input operands
154867c64d83SQiu Chaofandef : InstRW<[P10W_MM_10C, P10W_DISP_PAIR, P10W_FX_3C],
154967c64d83SQiu Chaofan      (instrs
155067c64d83SQiu Chaofan    XXMTACC
155167c64d83SQiu Chaofan)>;
155267c64d83SQiu Chaofan
155367c64d83SQiu Chaofan// 4-way crack instructions
155467c64d83SQiu Chaofan// 10 Cycles SIMD Matrix Multiply Engine operations, 3 Cycles ALU operations, 10 Cycles SIMD Matrix Multiply Engine operations, and 3 Cycles ALU operations, 1 input operands
155567c64d83SQiu Chaofandef : InstRW<[P10W_MM_10C, P10W_DISP_PAIR, P10W_FX_3C, P10W_MM_10C, P10W_DISP_PAIR, P10W_FX_3C],
155667c64d83SQiu Chaofan      (instrs
155767c64d83SQiu Chaofan    XXMFACC
155867c64d83SQiu Chaofan)>;
155967c64d83SQiu Chaofan
1560a2b5117dSQiu Chaofan// 5 Cycles GPR Multiply operations, 1 input operands
1561a2b5117dSQiu Chaofandef : InstRW<[P10W_MU_5C, P10W_DISP_ANY, P10MU_Read],
1562a2b5117dSQiu Chaofan      (instrs
1563a2b5117dSQiu Chaofan    MULLI, MULLI8
1564a2b5117dSQiu Chaofan)>;
1565a2b5117dSQiu Chaofan
156667c64d83SQiu Chaofan// 5 Cycles GPR Multiply operations, 2 input operands
156767c64d83SQiu Chaofandef : InstRW<[P10W_MU_5C, P10W_DISP_ANY, P10MU_Read, P10MU_Read],
156867c64d83SQiu Chaofan      (instrs
156967c64d83SQiu Chaofan    MULHD,
157067c64d83SQiu Chaofan    MULHDU,
157167c64d83SQiu Chaofan    MULHW,
157267c64d83SQiu Chaofan    MULHWU,
157367c64d83SQiu Chaofan    MULLD,
157467c64d83SQiu Chaofan    MULLDO,
157567c64d83SQiu Chaofan    MULLW,
157667c64d83SQiu Chaofan    MULLWO,
157767c64d83SQiu Chaofan    VMULHSD,
157867c64d83SQiu Chaofan    VMULHUD,
157967c64d83SQiu Chaofan    VMULLD
158067c64d83SQiu Chaofan)>;
158167c64d83SQiu Chaofan
158267c64d83SQiu Chaofan// 5 Cycles GPR Multiply operations, 3 input operands
158367c64d83SQiu Chaofandef : InstRW<[P10W_MU_5C, P10W_DISP_ANY, P10MU_Read, P10MU_Read, P10MU_Read],
158467c64d83SQiu Chaofan      (instrs
158567c64d83SQiu Chaofan    MADDHD,
158667c64d83SQiu Chaofan    MADDHDU,
158767c64d83SQiu Chaofan    MADDLD, MADDLD8
158867c64d83SQiu Chaofan)>;
158967c64d83SQiu Chaofan
159067c64d83SQiu Chaofan// 2-way crack instructions
159167c64d83SQiu Chaofan// 5 Cycles GPR Multiply operations, and 3 Cycles ALU operations, 2 input operands
159267c64d83SQiu Chaofandef : InstRW<[P10W_MU_5C, P10W_DISP_EVEN, P10W_FX_3C, P10W_DISP_ANY],
159367c64d83SQiu Chaofan      (instrs
159467c64d83SQiu Chaofan    MULHD_rec,
159567c64d83SQiu Chaofan    MULHDU_rec,
159667c64d83SQiu Chaofan    MULHW_rec,
159767c64d83SQiu Chaofan    MULHWU_rec,
159867c64d83SQiu Chaofan    MULLD_rec,
159967c64d83SQiu Chaofan    MULLDO_rec,
160067c64d83SQiu Chaofan    MULLW_rec,
160167c64d83SQiu Chaofan    MULLWO_rec
160267c64d83SQiu Chaofan)>;
160367c64d83SQiu Chaofan
160467c64d83SQiu Chaofan// 4 Cycles Permute operations, 0 input operands
160567c64d83SQiu Chaofandef : InstRW<[P10W_PM_4C, P10W_DISP_ANY],
160667c64d83SQiu Chaofan      (instrs
1607a2b5117dSQiu Chaofan    LXVKQ,
1608a2b5117dSQiu Chaofan    VSPLTISB,
1609a2b5117dSQiu Chaofan    VSPLTISH,
1610a2b5117dSQiu Chaofan    VSPLTISW, V_SETALLONES, V_SETALLONESB, V_SETALLONESH,
1611a2b5117dSQiu Chaofan    XXSPLTIB
161267c64d83SQiu Chaofan)>;
161367c64d83SQiu Chaofan
161467c64d83SQiu Chaofan// 4 Cycles Permute operations, 1 input operands
161567c64d83SQiu Chaofandef : InstRW<[P10W_PM_4C, P10W_DISP_ANY, P10PM_Read],
161667c64d83SQiu Chaofan      (instrs
16177a7e9109SLei Huang    BRD,
16187a7e9109SLei Huang    BRH, BRH8,
16197a7e9109SLei Huang    BRW, BRW8,
162067c64d83SQiu Chaofan    MFVSRLD,
162167c64d83SQiu Chaofan    MTVSRWS,
162267c64d83SQiu Chaofan    VCLZLSBB,
162367c64d83SQiu Chaofan    VCTZLSBB,
1624a2b5117dSQiu Chaofan    VEXTRACTD,
1625a2b5117dSQiu Chaofan    VEXTRACTUB,
1626a2b5117dSQiu Chaofan    VEXTRACTUH,
1627a2b5117dSQiu Chaofan    VEXTRACTUW,
162867c64d83SQiu Chaofan    VGBBD,
1629a2b5117dSQiu Chaofan    VINSERTD,
1630a2b5117dSQiu Chaofan    VINSERTW,
163167c64d83SQiu Chaofan    VPRTYBQ,
1632a2b5117dSQiu Chaofan    VSPLTB, VSPLTBs,
1633a2b5117dSQiu Chaofan    VSPLTH, VSPLTHs,
1634a2b5117dSQiu Chaofan    VSPLTW,
163567c64d83SQiu Chaofan    VSTRIBL,
163667c64d83SQiu Chaofan    VSTRIBR,
163767c64d83SQiu Chaofan    VSTRIHL,
163867c64d83SQiu Chaofan    VSTRIHR,
163967c64d83SQiu Chaofan    VUPKHPX,
164067c64d83SQiu Chaofan    VUPKHSB,
164167c64d83SQiu Chaofan    VUPKHSH,
164267c64d83SQiu Chaofan    VUPKHSW,
164367c64d83SQiu Chaofan    VUPKLPX,
164467c64d83SQiu Chaofan    VUPKLSB,
164567c64d83SQiu Chaofan    VUPKLSH,
164667c64d83SQiu Chaofan    VUPKLSW,
164767c64d83SQiu Chaofan    XVCVBF16SPN,
164867c64d83SQiu Chaofan    XXBRD,
164967c64d83SQiu Chaofan    XXBRH,
165067c64d83SQiu Chaofan    XXBRQ,
165167c64d83SQiu Chaofan    XXBRW,
1652a2b5117dSQiu Chaofan    XXEXTRACTUW,
1653a2b5117dSQiu Chaofan    XXGENPCVDM,
1654a2b5117dSQiu Chaofan    XXGENPCVHM,
1655a2b5117dSQiu Chaofan    XXGENPCVWM,
1656a2b5117dSQiu Chaofan    XXSPLTW, XXSPLTWs
165767c64d83SQiu Chaofan)>;
165867c64d83SQiu Chaofan
165967c64d83SQiu Chaofan// 4 Cycles Permute operations, 2 input operands
166067c64d83SQiu Chaofandef : InstRW<[P10W_PM_4C, P10W_DISP_ANY, P10PM_Read, P10PM_Read],
166167c64d83SQiu Chaofan      (instrs
166267c64d83SQiu Chaofan    BPERMD,
1663a2b5117dSQiu Chaofan    LVSL,
1664a2b5117dSQiu Chaofan    LVSR,
166567c64d83SQiu Chaofan    MTVSRDD,
166667c64d83SQiu Chaofan    VBPERMD,
166767c64d83SQiu Chaofan    VBPERMQ,
166867c64d83SQiu Chaofan    VCLRLB,
166967c64d83SQiu Chaofan    VCLRRB,
167067c64d83SQiu Chaofan    VEXTUBLX,
167167c64d83SQiu Chaofan    VEXTUBRX,
167267c64d83SQiu Chaofan    VEXTUHLX,
167367c64d83SQiu Chaofan    VEXTUHRX,
167467c64d83SQiu Chaofan    VEXTUWLX,
167567c64d83SQiu Chaofan    VEXTUWRX,
1676a2b5117dSQiu Chaofan    VINSD,
1677a2b5117dSQiu Chaofan    VINSERTB,
1678a2b5117dSQiu Chaofan    VINSERTH,
1679a2b5117dSQiu Chaofan    VINSW,
168067c64d83SQiu Chaofan    VMRGHB,
168167c64d83SQiu Chaofan    VMRGHH,
168267c64d83SQiu Chaofan    VMRGHW,
168367c64d83SQiu Chaofan    VMRGLB,
168467c64d83SQiu Chaofan    VMRGLH,
168567c64d83SQiu Chaofan    VMRGLW,
168667c64d83SQiu Chaofan    VPKPX,
168767c64d83SQiu Chaofan    VPKSDSS,
168867c64d83SQiu Chaofan    VPKSDUS,
168967c64d83SQiu Chaofan    VPKSHSS,
169067c64d83SQiu Chaofan    VPKSHUS,
169167c64d83SQiu Chaofan    VPKSWSS,
169267c64d83SQiu Chaofan    VPKSWUS,
169367c64d83SQiu Chaofan    VPKUDUM,
169467c64d83SQiu Chaofan    VPKUDUS,
169567c64d83SQiu Chaofan    VPKUHUM,
169667c64d83SQiu Chaofan    VPKUHUS,
169767c64d83SQiu Chaofan    VPKUWUM,
169867c64d83SQiu Chaofan    VPKUWUS,
169967c64d83SQiu Chaofan    VSL,
1700a2b5117dSQiu Chaofan    VSLDBI,
1701a2b5117dSQiu Chaofan    VSLDOI,
170267c64d83SQiu Chaofan    VSLO,
170367c64d83SQiu Chaofan    VSLV,
170467c64d83SQiu Chaofan    VSR,
1705a2b5117dSQiu Chaofan    VSRDBI,
170667c64d83SQiu Chaofan    VSRO,
170767c64d83SQiu Chaofan    VSRV,
1708a2b5117dSQiu Chaofan    XXINSERTW,
170967c64d83SQiu Chaofan    XXMRGHW,
171067c64d83SQiu Chaofan    XXMRGLW,
171167c64d83SQiu Chaofan    XXPERMDI, XXPERMDIs,
1712a2b5117dSQiu Chaofan    XXSLDWI, XXSLDWIs
171367c64d83SQiu Chaofan)>;
171467c64d83SQiu Chaofan
171567c64d83SQiu Chaofan// 4 Cycles Permute operations, 3 input operands
171667c64d83SQiu Chaofandef : InstRW<[P10W_PM_4C, P10W_DISP_ANY, P10PM_Read, P10PM_Read, P10PM_Read],
171767c64d83SQiu Chaofan      (instrs
171867c64d83SQiu Chaofan    VEXTDDVLX,
171967c64d83SQiu Chaofan    VEXTDDVRX,
172067c64d83SQiu Chaofan    VEXTDUBVLX,
172167c64d83SQiu Chaofan    VEXTDUBVRX,
172267c64d83SQiu Chaofan    VEXTDUHVLX,
172367c64d83SQiu Chaofan    VEXTDUHVRX,
172467c64d83SQiu Chaofan    VEXTDUWVLX,
172567c64d83SQiu Chaofan    VEXTDUWVRX,
172667c64d83SQiu Chaofan    VINSBLX,
172767c64d83SQiu Chaofan    VINSBRX,
172867c64d83SQiu Chaofan    VINSBVLX,
172967c64d83SQiu Chaofan    VINSBVRX,
173067c64d83SQiu Chaofan    VINSDLX,
173167c64d83SQiu Chaofan    VINSDRX,
173267c64d83SQiu Chaofan    VINSHLX,
173367c64d83SQiu Chaofan    VINSHRX,
173467c64d83SQiu Chaofan    VINSHVLX,
173567c64d83SQiu Chaofan    VINSHVRX,
173667c64d83SQiu Chaofan    VINSWLX,
173767c64d83SQiu Chaofan    VINSWRX,
173867c64d83SQiu Chaofan    VINSWVLX,
173967c64d83SQiu Chaofan    VINSWVRX,
174067c64d83SQiu Chaofan    VPERM,
174167c64d83SQiu Chaofan    VPERMR,
174267c64d83SQiu Chaofan    VPERMXOR,
1743bfde3bddSLei Huang    XXPERM,
1744bfde3bddSLei Huang    XXPERMR
174567c64d83SQiu Chaofan)>;
174667c64d83SQiu Chaofan
174767c64d83SQiu Chaofan// 2-way crack instructions
174867c64d83SQiu Chaofan// 4 Cycles Permute operations, and 7 Cycles VMX Multiply operations, 2 input operands
174967c64d83SQiu Chaofandef : InstRW<[P10W_PM_4C, P10W_DISP_EVEN, P10W_vMU_7C, P10W_DISP_ANY],
175067c64d83SQiu Chaofan      (instrs
175167c64d83SQiu Chaofan    VSUMSWS
175267c64d83SQiu Chaofan)>;
175367c64d83SQiu Chaofan
1754a2b5117dSQiu Chaofan// 4 Cycles Permute operations, 0 input operands
1755a2b5117dSQiu Chaofandef : InstRW<[P10W_PM_4C, P10W_DISP_PAIR],
175667c64d83SQiu Chaofan      (instrs
175767c64d83SQiu Chaofan    XXSPLTIDP,
175867c64d83SQiu Chaofan    XXSPLTIW
175967c64d83SQiu Chaofan)>;
176067c64d83SQiu Chaofan
1761a2b5117dSQiu Chaofan// 4 Cycles Permute operations, 1 input operands
1762a2b5117dSQiu Chaofandef : InstRW<[P10W_PM_4C, P10W_DISP_PAIR, P10PM_Read],
1763a2b5117dSQiu Chaofan      (instrs
1764a2b5117dSQiu Chaofan    XXSPLTI32DX
1765a2b5117dSQiu Chaofan)>;
1766a2b5117dSQiu Chaofan
176767c64d83SQiu Chaofan// 4 Cycles Permute operations, 3 input operands
176867c64d83SQiu Chaofandef : InstRW<[P10W_PM_4C, P10W_DISP_PAIR, P10PM_Read, P10PM_Read, P10PM_Read],
176967c64d83SQiu Chaofan      (instrs
177067c64d83SQiu Chaofan    XXBLENDVB,
177167c64d83SQiu Chaofan    XXBLENDVD,
177267c64d83SQiu Chaofan    XXBLENDVH,
177367c64d83SQiu Chaofan    XXBLENDVW,
177467c64d83SQiu Chaofan    XXEVAL,
177567c64d83SQiu Chaofan    XXPERMX
177667c64d83SQiu Chaofan)>;
177767c64d83SQiu Chaofan
177867c64d83SQiu Chaofan// 3 Cycles Store operations, 1 input operands
177967c64d83SQiu Chaofandef : InstRW<[P10W_ST_3C, P10W_DISP_ANY, P10ST_Read],
178067c64d83SQiu Chaofan      (instrs
1781a2b5117dSQiu Chaofan    PSTXVP, PSTXVPpc,
1782a2b5117dSQiu Chaofan    STB, STB8,
1783a2b5117dSQiu Chaofan    STBU, STBU8,
1784a2b5117dSQiu Chaofan    SPILLTOVSR_ST, STD,
1785a2b5117dSQiu Chaofan    STDU,
1786a2b5117dSQiu Chaofan    DFSTOREf32, DFSTOREf64, STFD,
1787a2b5117dSQiu Chaofan    STFDU,
1788a2b5117dSQiu Chaofan    STFS,
1789a2b5117dSQiu Chaofan    STFSU,
1790a2b5117dSQiu Chaofan    STH, STH8,
1791a2b5117dSQiu Chaofan    STHU, STHU8,
1792a2b5117dSQiu Chaofan    STW, STW8,
1793a2b5117dSQiu Chaofan    STWU, STWU8,
1794a2b5117dSQiu Chaofan    STXSD,
1795a2b5117dSQiu Chaofan    STXSSP,
1796a2b5117dSQiu Chaofan    STXV
179767c64d83SQiu Chaofan)>;
179867c64d83SQiu Chaofan
179967c64d83SQiu Chaofan// 3 Cycles Store operations, 2 input operands
180067c64d83SQiu Chaofandef : InstRW<[P10W_ST_3C, P10W_DISP_ANY, P10ST_Read, P10ST_Read],
180167c64d83SQiu Chaofan      (instrs
1802a2b5117dSQiu Chaofan    CP_COPY, CP_COPY8,
180367c64d83SQiu Chaofan    DCBF,
1804a2b5117dSQiu Chaofan    DCBST,
1805a2b5117dSQiu Chaofan    DCBZ,
1806a2b5117dSQiu Chaofan    ICBI,
1807a2b5117dSQiu Chaofan    STXVL,
1808a2b5117dSQiu Chaofan    STXVLL
1809a2b5117dSQiu Chaofan)>;
1810a2b5117dSQiu Chaofan
1811a2b5117dSQiu Chaofan// 3 Cycles Store operations, 3 input operands
1812a2b5117dSQiu Chaofandef : InstRW<[P10W_ST_3C, P10W_DISP_ANY, P10ST_Read, P10ST_Read, P10ST_Read],
1813a2b5117dSQiu Chaofan      (instrs
181467c64d83SQiu Chaofan    STBUX, STBUX8,
1815a2b5117dSQiu Chaofan    STBX, STBX8, STBXTLS, STBXTLS_, STBXTLS_32,
181667c64d83SQiu Chaofan    STDBRX,
181767c64d83SQiu Chaofan    STDUX,
1818a2b5117dSQiu Chaofan    SPILLTOVSR_STX, STDX, STDXTLS, STDXTLS_,
181967c64d83SQiu Chaofan    STFDUX,
1820a2b5117dSQiu Chaofan    STFDX, STFDXTLS, STFDXTLS_,
182167c64d83SQiu Chaofan    STFIWX, STIWX,
182267c64d83SQiu Chaofan    STFSUX,
1823a2b5117dSQiu Chaofan    STFSX, STFSXTLS, STFSXTLS_,
182467c64d83SQiu Chaofan    STHBRX,
182567c64d83SQiu Chaofan    STHUX, STHUX8,
1826a2b5117dSQiu Chaofan    STHX, STHX8, STHXTLS, STHXTLS_, STHXTLS_32,
182767c64d83SQiu Chaofan    STVEBX,
182867c64d83SQiu Chaofan    STVEHX,
182967c64d83SQiu Chaofan    STVEWX,
183067c64d83SQiu Chaofan    STVX,
183167c64d83SQiu Chaofan    STVXL,
183267c64d83SQiu Chaofan    STWBRX,
183367c64d83SQiu Chaofan    STWUX, STWUX8,
1834a2b5117dSQiu Chaofan    STWX, STWX8, STWXTLS, STWXTLS_, STWXTLS_32,
183567c64d83SQiu Chaofan    STXSDX,
183667c64d83SQiu Chaofan    STXSIBX, STXSIBXv,
183767c64d83SQiu Chaofan    STXSIHX, STXSIHXv,
183867c64d83SQiu Chaofan    STXSIWX,
183967c64d83SQiu Chaofan    STXSSPX,
184067c64d83SQiu Chaofan    STXVB16X,
184167c64d83SQiu Chaofan    STXVD2X,
184267c64d83SQiu Chaofan    STXVH8X,
184367c64d83SQiu Chaofan    STXVRBX,
184467c64d83SQiu Chaofan    STXVRDX,
184567c64d83SQiu Chaofan    STXVRHX,
184667c64d83SQiu Chaofan    STXVRWX,
184767c64d83SQiu Chaofan    STXVW4X,
184867c64d83SQiu Chaofan    STXVX
184967c64d83SQiu Chaofan)>;
185067c64d83SQiu Chaofan
185167c64d83SQiu Chaofan// Single crack instructions
185267c64d83SQiu Chaofan// 3 Cycles Store operations, 0 input operands
185367c64d83SQiu Chaofandef : InstRW<[P10W_ST_3C, P10W_DISP_EVEN, P10W_DISP_ANY],
185467c64d83SQiu Chaofan      (instrs
185567c64d83SQiu Chaofan    EnforceIEIO,
185667c64d83SQiu Chaofan    MSGSYNC,
185767c64d83SQiu Chaofan    SLBSYNC,
185867c64d83SQiu Chaofan    TLBSYNC
185967c64d83SQiu Chaofan)>;
186067c64d83SQiu Chaofan
186167c64d83SQiu Chaofan// Single crack instructions
186267c64d83SQiu Chaofan// 3 Cycles Store operations, 2 input operands
186367c64d83SQiu Chaofandef : InstRW<[P10W_ST_3C, P10W_DISP_EVEN, P10W_DISP_ANY, P10ST_Read, P10ST_Read],
186467c64d83SQiu Chaofan      (instrs
1865a2b5117dSQiu Chaofan    CP_PASTE8_rec, CP_PASTE_rec,
186667c64d83SQiu Chaofan    SLBIEG,
186767c64d83SQiu Chaofan    TLBIE
186867c64d83SQiu Chaofan)>;
186967c64d83SQiu Chaofan
187067c64d83SQiu Chaofan// Single crack instructions
187167c64d83SQiu Chaofan// 3 Cycles Store operations, 3 input operands
187267c64d83SQiu Chaofandef : InstRW<[P10W_ST_3C, P10W_DISP_EVEN, P10W_DISP_ANY, P10ST_Read, P10ST_Read, P10ST_Read],
187367c64d83SQiu Chaofan      (instrs
187467c64d83SQiu Chaofan    STBCIX,
1875a2b5117dSQiu Chaofan    STBCX,
187667c64d83SQiu Chaofan    STDCIX,
1877a2b5117dSQiu Chaofan    STDCX,
187867c64d83SQiu Chaofan    STHCIX,
1879a2b5117dSQiu Chaofan    STHCX,
1880a2b5117dSQiu Chaofan    STWCIX,
1881a2b5117dSQiu Chaofan    STWCX
188267c64d83SQiu Chaofan)>;
188367c64d83SQiu Chaofan
188467c64d83SQiu Chaofan// 2-way crack instructions
188567c64d83SQiu Chaofan// 3 Cycles Store operations, and 3 Cycles ALU operations, 0 input operands
188667c64d83SQiu Chaofandef : InstRW<[P10W_ST_3C, P10W_DISP_EVEN, P10W_FX_3C, P10W_DISP_ANY],
188767c64d83SQiu Chaofan      (instrs
1888a2b5117dSQiu Chaofan    ISYNC,
1889ea8b95d0SStefan Pintilie    SYNCP10,
189067c64d83SQiu Chaofan    SYNC
189167c64d83SQiu Chaofan)>;
189267c64d83SQiu Chaofan
189367c64d83SQiu Chaofan// Expand instructions
1894a2b5117dSQiu Chaofan// 3 Cycles Store operations, 3 Cycles ALU operations, 3 Cycles Store operations, 3 Cycles ALU operations, 3 Cycles Store operations, 3 Cycles ALU operations, 6 Cycles Load operations, and 3 Cycles Store operations, 1 input operands
189567c64d83SQiu Chaofandef : InstRW<[P10W_ST_3C, P10W_DISP_EVEN, P10W_FX_3C, P10W_DISP_ANY, P10W_ST_3C, P10W_DISP_ANY, P10W_FX_3C, P10W_DISP_ANY, P10W_ST_3C, P10W_DISP_ANY, P10W_FX_3C, P10W_DISP_ANY, P10W_LD_6C, P10W_DISP_ANY, P10W_ST_3C, P10W_DISP_ANY],
189667c64d83SQiu Chaofan      (instrs
189767c64d83SQiu Chaofan    LDAT,
189867c64d83SQiu Chaofan    LWAT
189967c64d83SQiu Chaofan)>;
190067c64d83SQiu Chaofan
190167c64d83SQiu Chaofan// 4-way crack instructions
1902a2b5117dSQiu Chaofan// 3 Cycles Store operations, 3 Cycles ALU operations, 3 Cycles Store operations, and 3 Cycles Store operations, 2 input operands
190367c64d83SQiu Chaofandef : InstRW<[P10W_ST_3C, P10W_DISP_EVEN, P10W_FX_3C, P10W_DISP_ANY, P10W_ST_3C, P10W_DISP_ANY, P10W_ST_3C, P10W_DISP_ANY],
190467c64d83SQiu Chaofan      (instrs
190567c64d83SQiu Chaofan    STDAT,
190667c64d83SQiu Chaofan    STWAT
190767c64d83SQiu Chaofan)>;
190867c64d83SQiu Chaofan
190967c64d83SQiu Chaofan// Expand instructions
1910a2b5117dSQiu Chaofan// 3 Cycles Store operations, 3 Cycles Store operations, 3 Cycles Store operations, and 3 Cycles Store operations, 1 input operands
1911a2b5117dSQiu Chaofandef : InstRW<[P10W_ST_3C, P10W_DISP_EVEN, P10W_ST_3C, P10W_DISP_ANY, P10W_ST_3C, P10W_DISP_ANY, P10W_ST_3C, P10W_DISP_ANY, P10ST_Read],
191267c64d83SQiu Chaofan      (instrs
191367c64d83SQiu Chaofan    STMW
191467c64d83SQiu Chaofan)>;
191567c64d83SQiu Chaofan
191667c64d83SQiu Chaofan// Expand instructions
1917a2b5117dSQiu Chaofan// 3 Cycles Store operations, 3 Cycles Store operations, 3 Cycles Store operations, and 3 Cycles Store operations, 2 input operands
1918a2b5117dSQiu Chaofandef : InstRW<[P10W_ST_3C, P10W_DISP_EVEN, P10W_ST_3C, P10W_DISP_ANY, P10W_ST_3C, P10W_DISP_ANY, P10W_ST_3C, P10W_DISP_ANY, P10ST_Read, P10ST_Read],
191967c64d83SQiu Chaofan      (instrs
192067c64d83SQiu Chaofan    STSWI
192167c64d83SQiu Chaofan)>;
192267c64d83SQiu Chaofan
1923a2b5117dSQiu Chaofan// 3 Cycles Store operations, 1 input operands
1924a2b5117dSQiu Chaofandef : InstRW<[P10W_ST_3C, P10W_DISP_PAIR, P10ST_Read],
192567c64d83SQiu Chaofan      (instrs
192667c64d83SQiu Chaofan    PSTB, PSTB8, PSTB8pc, PSTBpc,
192767c64d83SQiu Chaofan    PSTD, PSTDpc,
192867c64d83SQiu Chaofan    PSTFD, PSTFDpc,
192967c64d83SQiu Chaofan    PSTFS, PSTFSpc,
193067c64d83SQiu Chaofan    PSTH, PSTH8, PSTH8pc, PSTHpc,
193167c64d83SQiu Chaofan    PSTW, PSTW8, PSTW8pc, PSTWpc,
193267c64d83SQiu Chaofan    PSTXSD, PSTXSDpc,
193367c64d83SQiu Chaofan    PSTXSSP, PSTXSSPpc,
193467c64d83SQiu Chaofan    PSTXV, PSTXVpc
193567c64d83SQiu Chaofan)>;
193667c64d83SQiu Chaofan
193767c64d83SQiu Chaofan// 2-way crack instructions
1938a2b5117dSQiu Chaofan// 3 Cycles Store operations, and 3 Cycles Store operations, 1 input operands
1939a2b5117dSQiu Chaofandef : InstRW<[P10W_ST_3C, P10W_DISP_PAIR, P10W_ST_3C, P10ST_Read],
194067c64d83SQiu Chaofan      (instrs
1941a2b5117dSQiu Chaofan    STXVP
1942a2b5117dSQiu Chaofan)>;
1943a2b5117dSQiu Chaofan
1944a2b5117dSQiu Chaofan// 2-way crack instructions
1945a2b5117dSQiu Chaofan// 3 Cycles Store operations, and 3 Cycles Store operations, 3 input operands
1946a2b5117dSQiu Chaofandef : InstRW<[P10W_ST_3C, P10W_DISP_PAIR, P10W_ST_3C, P10ST_Read, P10ST_Read, P10ST_Read],
1947a2b5117dSQiu Chaofan      (instrs
194867c64d83SQiu Chaofan    STXVPX
194967c64d83SQiu Chaofan)>;
195067c64d83SQiu Chaofan
195167c64d83SQiu Chaofan// FIXME - Miss scheduling information from datasheet
195267c64d83SQiu Chaofan// Temporary set it as 1 Cycles Simple Fixed-point (SFX) operations, 0 input operands
195367c64d83SQiu Chaofandef : InstRW<[P10W_SX, P10W_DISP_ANY],
195467c64d83SQiu Chaofan      (instrs
195567c64d83SQiu Chaofan    ATTN,
195667c64d83SQiu Chaofan    CP_ABORT,
1957bfde3bddSLei Huang    CRNOT,
195867c64d83SQiu Chaofan    DCBA,
195967c64d83SQiu Chaofan    DCBI,
196067c64d83SQiu Chaofan    DCBZL,
196167c64d83SQiu Chaofan    DCCCI,
196267c64d83SQiu Chaofan    ICBLC,
196367c64d83SQiu Chaofan    ICBLQ,
196467c64d83SQiu Chaofan    ICBTLS,
196567c64d83SQiu Chaofan    ICCCI,
1966415e821aSYousuf Ali    LA, LA8,
196767c64d83SQiu Chaofan    MFDCR,
196867c64d83SQiu Chaofan    MFPMR,
196967c64d83SQiu Chaofan    MFSRIN,
197067c64d83SQiu Chaofan    MSYNC,
197167c64d83SQiu Chaofan    MTDCR,
197267c64d83SQiu Chaofan    MTPMR,
197367c64d83SQiu Chaofan    MTSRIN,
197467c64d83SQiu Chaofan    NAP,
197567c64d83SQiu Chaofan    TLBIA,
197667c64d83SQiu Chaofan    TLBLD,
197767c64d83SQiu Chaofan    TLBLI,
197867c64d83SQiu Chaofan    TLBRE2,
197967c64d83SQiu Chaofan    TLBSX2,
198067c64d83SQiu Chaofan    TLBSX2D,
198167c64d83SQiu Chaofan    TLBWE2
198267c64d83SQiu Chaofan)>;
198367c64d83SQiu Chaofan
198467c64d83SQiu Chaofan// Single crack instructions
198567c64d83SQiu Chaofan// 3 Cycles Simple Fixed-point (SFX) operations, 0 input operands
198667c64d83SQiu Chaofandef : InstRW<[P10W_SX_3C, P10W_DISP_EVEN, P10W_DISP_ANY],
198767c64d83SQiu Chaofan      (instrs
198867c64d83SQiu Chaofan    CLRBHRB,
1989a2b5117dSQiu Chaofan    MFBHRBE,
1990a2b5117dSQiu Chaofan    MFMSR,
1991a2b5117dSQiu Chaofan    MFTB
199267c64d83SQiu Chaofan)>;
199367c64d83SQiu Chaofan
199467c64d83SQiu Chaofan// Single crack instructions
199567c64d83SQiu Chaofan// 3 Cycles Simple Fixed-point (SFX) operations, 1 input operands
199667c64d83SQiu Chaofandef : InstRW<[P10W_SX_3C, P10W_DISP_EVEN, P10W_DISP_ANY, P10SX_Read],
199767c64d83SQiu Chaofan      (instrs
199867c64d83SQiu Chaofan    MTMSR,
199967c64d83SQiu Chaofan    MTMSRD
200067c64d83SQiu Chaofan)>;
200167c64d83SQiu Chaofan
200267c64d83SQiu Chaofan// 2-way crack instructions
2003a2b5117dSQiu Chaofan// 3 Cycles Simple Fixed-point (SFX) operations, and 3 Cycles ALU operations, 0 input operands
200467c64d83SQiu Chaofandef : InstRW<[P10W_SX_3C, P10W_DISP_EVEN, P10W_FX_3C, P10W_DISP_ANY],
200567c64d83SQiu Chaofan      (instrs
200667c64d83SQiu Chaofan    ADDPCIS
200767c64d83SQiu Chaofan)>;
200867c64d83SQiu Chaofan
200967c64d83SQiu Chaofan// 3 Cycles Simple Fixed-point (SFX) operations, 1 input operands
201067c64d83SQiu Chaofandef : InstRW<[P10W_SX_3C, P10W_DISP_PAIR, P10SX_Read],
201167c64d83SQiu Chaofan      (instrs
201267c64d83SQiu Chaofan    PADDI, PADDI8, PADDI8pc, PADDIpc, PLI, PLI8
201367c64d83SQiu Chaofan)>;
201467c64d83SQiu Chaofan
201567c64d83SQiu Chaofan// 7 Cycles VMX Multiply operations, 2 input operands
201667c64d83SQiu Chaofandef : InstRW<[P10W_vMU_7C, P10W_DISP_ANY, P10vMU_Read, P10vMU_Read],
201767c64d83SQiu Chaofan      (instrs
201867c64d83SQiu Chaofan    VMULESB,
201967c64d83SQiu Chaofan    VMULESD,
202067c64d83SQiu Chaofan    VMULESH,
202167c64d83SQiu Chaofan    VMULESW,
202267c64d83SQiu Chaofan    VMULEUB,
202367c64d83SQiu Chaofan    VMULEUD,
202467c64d83SQiu Chaofan    VMULEUH,
202567c64d83SQiu Chaofan    VMULEUW,
202667c64d83SQiu Chaofan    VMULHSW,
202767c64d83SQiu Chaofan    VMULHUW,
202867c64d83SQiu Chaofan    VMULOSB,
202967c64d83SQiu Chaofan    VMULOSD,
203067c64d83SQiu Chaofan    VMULOSH,
203167c64d83SQiu Chaofan    VMULOSW,
203267c64d83SQiu Chaofan    VMULOUB,
203367c64d83SQiu Chaofan    VMULOUD,
203467c64d83SQiu Chaofan    VMULOUH,
203567c64d83SQiu Chaofan    VMULOUW,
203667c64d83SQiu Chaofan    VMULUWM,
203767c64d83SQiu Chaofan    VSUM2SWS,
203867c64d83SQiu Chaofan    VSUM4SBS,
203967c64d83SQiu Chaofan    VSUM4SHS,
204067c64d83SQiu Chaofan    VSUM4UBS
204167c64d83SQiu Chaofan)>;
204267c64d83SQiu Chaofan
204367c64d83SQiu Chaofan// 7 Cycles VMX Multiply operations, 3 input operands
204467c64d83SQiu Chaofandef : InstRW<[P10W_vMU_7C, P10W_DISP_ANY, P10vMU_Read, P10vMU_Read, P10vMU_Read],
204567c64d83SQiu Chaofan      (instrs
204667c64d83SQiu Chaofan    VMHADDSHS,
204767c64d83SQiu Chaofan    VMHRADDSHS,
204867c64d83SQiu Chaofan    VMLADDUHM,
204967c64d83SQiu Chaofan    VMSUMCUD,
205067c64d83SQiu Chaofan    VMSUMMBM,
205167c64d83SQiu Chaofan    VMSUMSHM,
205267c64d83SQiu Chaofan    VMSUMSHS,
205367c64d83SQiu Chaofan    VMSUMUBM,
205467c64d83SQiu Chaofan    VMSUMUDM,
205567c64d83SQiu Chaofan    VMSUMUHM,
205667c64d83SQiu Chaofan    VMSUMUHS
205767c64d83SQiu Chaofan)>;
2058415e821aSYousuf Ali
2059