// DO NOT EDIT
// generated by: ppc64map -fmt=encoder pp64.csv

package ppc64

import (
	"cmd/internal/obj"
)

const (
	AXXSETACCZ = ALASTAOUT + iota
	AXXMTACC
	AXXMFACC
	AXXGENPCVWM
	AXXGENPCVHM
	AXXGENPCVDM
	AXXGENPCVBM
	AXVTLSBB
	AXVI8GER4SPP
	AXVI8GER4PP
	AXVI8GER4
	AXVI4GER8PP
	AXVI4GER8
	AXVI16GER2SPP
	AXVI16GER2S
	AXVI16GER2PP
	AXVI16GER2
	AXVF64GERPP
	AXVF64GERPN
	AXVF64GERNP
	AXVF64GERNN
	AXVF64GER
	AXVF32GERPP
	AXVF32GERPN
	AXVF32GERNP
	AXVF32GERNN
	AXVF32GER
	AXVF16GER2PP
	AXVF16GER2PN
	AXVF16GER2NP
	AXVF16GER2NN
	AXVF16GER2
	AXVCVSPBF16
	AXVCVBF16SPN
	AXVBF16GER2PP
	AXVBF16GER2PN
	AXVBF16GER2NP
	AXVBF16GER2NN
	AXVBF16GER2
	AXSMINCQP
	AXSMAXCQP
	AXSCVUQQP
	AXSCVSQQP
	AXSCVQPUQZ
	AXSCVQPSQZ
	AXSCMPGTQP
	AXSCMPGEQP
	AXSCMPEQQP
	AVSTRIHRCC
	AVSTRIHR
	AVSTRIHLCC
	AVSTRIHL
	AVSTRIBRCC
	AVSTRIBR
	AVSTRIBLCC
	AVSTRIBL
	AVSRQ
	AVSRDBI
	AVSRAQ
	AVSLQ
	AVSLDBI
	AVRLQNM
	AVRLQMI
	AVRLQ
	AVPEXTD
	AVPDEPD
	AVMULOUD
	AVMULOSD
	AVMULLD
	AVMULHUW
	AVMULHUD
	AVMULHSW
	AVMULHSD
	AVMULEUD
	AVMULESD
	AVMSUMCUD
	AVMODUW
	AVMODUQ
	AVMODUD
	AVMODSW
	AVMODSQ
	AVMODSD
	AVINSWVRX
	AVINSWVLX
	AVINSWRX
	AVINSWLX
	AVINSW
	AVINSHVRX
	AVINSHVLX
	AVINSHRX
	AVINSHLX
	AVINSDRX
	AVINSDLX
	AVINSD
	AVINSBVRX
	AVINSBVLX
	AVINSBRX
	AVINSBLX
	AVGNB
	AVEXTSD2Q
	AVEXTRACTWM
	AVEXTRACTQM
	AVEXTRACTHM
	AVEXTRACTDM
	AVEXTRACTBM
	AVEXTDUWVRX
	AVEXTDUWVLX
	AVEXTDUHVRX
	AVEXTDUHVLX
	AVEXTDUBVRX
	AVEXTDUBVLX
	AVEXTDDVRX
	AVEXTDDVLX
	AVEXPANDWM
	AVEXPANDQM
	AVEXPANDHM
	AVEXPANDDM
	AVEXPANDBM
	AVDIVUW
	AVDIVUQ
	AVDIVUD
	AVDIVSW
	AVDIVSQ
	AVDIVSD
	AVDIVEUW
	AVDIVEUQ
	AVDIVEUD
	AVDIVESW
	AVDIVESQ
	AVDIVESD
	AVCTZDM
	AVCNTMBW
	AVCNTMBH
	AVCNTMBD
	AVCNTMBB
	AVCMPUQ
	AVCMPSQ
	AVCMPGTUQCC
	AVCMPGTUQ
	AVCMPGTSQCC
	AVCMPGTSQ
	AVCMPEQUQCC
	AVCMPEQUQ
	AVCLZDM
	AVCLRRB
	AVCLRLB
	AVCFUGED
	ASTXVRWX
	ASTXVRHX
	ASTXVRDX
	ASTXVRBX
	ASTXVPX
	ASTXVP
	ASETNBCR
	ASETNBC
	ASETBCR
	ASETBC
	APEXTD
	APDEPD
	AMTVSRWM
	AMTVSRQM
	AMTVSRHM
	AMTVSRDM
	AMTVSRBMI
	AMTVSRBM
	ALXVRWX
	ALXVRHX
	ALXVRDX
	ALXVRBX
	ALXVPX
	ALXVP
	ALXVKQ
	ADCTFIXQQ
	ADCFFIXQQ
	ACNTTZDM
	ACNTLZDM
	ACFUGED
	ABRW
	ABRH
	ABRD
	AHASHSTP
	AHASHST
	AHASHCHKP
	AHASHCHK
	AXXSPLTIW
	AXXSPLTIDP
	AXXSPLTI32DX
	AXXPERMX
	AXXEVAL
	AXXBLENDVW
	AXXBLENDVH
	AXXBLENDVD
	AXXBLENDVB
	APSTXVP
	APSTXV
	APSTXSSP
	APSTXSD
	APSTW
	APSTQ
	APSTH
	APSTFS
	APSTFD
	APSTD
	APSTB
	APNOP
	APMXVI8GER4SPP
	APMXVI8GER4PP
	APMXVI8GER4
	APMXVI4GER8PP
	APMXVI4GER8
	APMXVI16GER2SPP
	APMXVI16GER2S
	APMXVI16GER2PP
	APMXVI16GER2
	APMXVF64GERPP
	APMXVF64GERPN
	APMXVF64GERNP
	APMXVF64GERNN
	APMXVF64GER
	APMXVF32GERPP
	APMXVF32GERPN
	APMXVF32GERNP
	APMXVF32GERNN
	APMXVF32GER
	APMXVF16GER2PP
	APMXVF16GER2PN
	APMXVF16GER2NP
	APMXVF16GER2NN
	APMXVF16GER2
	APMXVBF16GER2PP
	APMXVBF16GER2PN
	APMXVBF16GER2NP
	APMXVBF16GER2NN
	APMXVBF16GER2
	APLXVP
	APLXV
	APLXSSP
	APLXSD
	APLWZ
	APLWA
	APLQ
	APLHZ
	APLHA
	APLFS
	APLFD
	APLD
	APLBZ
	APADDI
	ALASTGEN
	AFIRSTGEN = AXXSETACCZ
)

var GenAnames = []string{
	"XXSETACCZ",
	"XXMTACC",
	"XXMFACC",
	"XXGENPCVWM",
	"XXGENPCVHM",
	"XXGENPCVDM",
	"XXGENPCVBM",
	"XVTLSBB",
	"XVI8GER4SPP",
	"XVI8GER4PP",
	"XVI8GER4",
	"XVI4GER8PP",
	"XVI4GER8",
	"XVI16GER2SPP",
	"XVI16GER2S",
	"XVI16GER2PP",
	"XVI16GER2",
	"XVF64GERPP",
	"XVF64GERPN",
	"XVF64GERNP",
	"XVF64GERNN",
	"XVF64GER",
	"XVF32GERPP",
	"XVF32GERPN",
	"XVF32GERNP",
	"XVF32GERNN",
	"XVF32GER",
	"XVF16GER2PP",
	"XVF16GER2PN",
	"XVF16GER2NP",
	"XVF16GER2NN",
	"XVF16GER2",
	"XVCVSPBF16",
	"XVCVBF16SPN",
	"XVBF16GER2PP",
	"XVBF16GER2PN",
	"XVBF16GER2NP",
	"XVBF16GER2NN",
	"XVBF16GER2",
	"XSMINCQP",
	"XSMAXCQP",
	"XSCVUQQP",
	"XSCVSQQP",
	"XSCVQPUQZ",
	"XSCVQPSQZ",
	"XSCMPGTQP",
	"XSCMPGEQP",
	"XSCMPEQQP",
	"VSTRIHRCC",
	"VSTRIHR",
	"VSTRIHLCC",
	"VSTRIHL",
	"VSTRIBRCC",
	"VSTRIBR",
	"VSTRIBLCC",
	"VSTRIBL",
	"VSRQ",
	"VSRDBI",
	"VSRAQ",
	"VSLQ",
	"VSLDBI",
	"VRLQNM",
	"VRLQMI",
	"VRLQ",
	"VPEXTD",
	"VPDEPD",
	"VMULOUD",
	"VMULOSD",
	"VMULLD",
	"VMULHUW",
	"VMULHUD",
	"VMULHSW",
	"VMULHSD",
	"VMULEUD",
	"VMULESD",
	"VMSUMCUD",
	"VMODUW",
	"VMODUQ",
	"VMODUD",
	"VMODSW",
	"VMODSQ",
	"VMODSD",
	"VINSWVRX",
	"VINSWVLX",
	"VINSWRX",
	"VINSWLX",
	"VINSW",
	"VINSHVRX",
	"VINSHVLX",
	"VINSHRX",
	"VINSHLX",
	"VINSDRX",
	"VINSDLX",
	"VINSD",
	"VINSBVRX",
	"VINSBVLX",
	"VINSBRX",
	"VINSBLX",
	"VGNB",
	"VEXTSD2Q",
	"VEXTRACTWM",
	"VEXTRACTQM",
	"VEXTRACTHM",
	"VEXTRACTDM",
	"VEXTRACTBM",
	"VEXTDUWVRX",
	"VEXTDUWVLX",
	"VEXTDUHVRX",
	"VEXTDUHVLX",
	"VEXTDUBVRX",
	"VEXTDUBVLX",
	"VEXTDDVRX",
	"VEXTDDVLX",
	"VEXPANDWM",
	"VEXPANDQM",
	"VEXPANDHM",
	"VEXPANDDM",
	"VEXPANDBM",
	"VDIVUW",
	"VDIVUQ",
	"VDIVUD",
	"VDIVSW",
	"VDIVSQ",
	"VDIVSD",
	"VDIVEUW",
	"VDIVEUQ",
	"VDIVEUD",
	"VDIVESW",
	"VDIVESQ",
	"VDIVESD",
	"VCTZDM",
	"VCNTMBW",
	"VCNTMBH",
	"VCNTMBD",
	"VCNTMBB",
	"VCMPUQ",
	"VCMPSQ",
	"VCMPGTUQCC",
	"VCMPGTUQ",
	"VCMPGTSQCC",
	"VCMPGTSQ",
	"VCMPEQUQCC",
	"VCMPEQUQ",
	"VCLZDM",
	"VCLRRB",
	"VCLRLB",
	"VCFUGED",
	"STXVRWX",
	"STXVRHX",
	"STXVRDX",
	"STXVRBX",
	"STXVPX",
	"STXVP",
	"SETNBCR",
	"SETNBC",
	"SETBCR",
	"SETBC",
	"PEXTD",
	"PDEPD",
	"MTVSRWM",
	"MTVSRQM",
	"MTVSRHM",
	"MTVSRDM",
	"MTVSRBMI",
	"MTVSRBM",
	"LXVRWX",
	"LXVRHX",
	"LXVRDX",
	"LXVRBX",
	"LXVPX",
	"LXVP",
	"LXVKQ",
	"DCTFIXQQ",
	"DCFFIXQQ",
	"CNTTZDM",
	"CNTLZDM",
	"CFUGED",
	"BRW",
	"BRH",
	"BRD",
	"HASHSTP",
	"HASHST",
	"HASHCHKP",
	"HASHCHK",
	"XXSPLTIW",
	"XXSPLTIDP",
	"XXSPLTI32DX",
	"XXPERMX",
	"XXEVAL",
	"XXBLENDVW",
	"XXBLENDVH",
	"XXBLENDVD",
	"XXBLENDVB",
	"PSTXVP",
	"PSTXV",
	"PSTXSSP",
	"PSTXSD",
	"PSTW",
	"PSTQ",
	"PSTH",
	"PSTFS",
	"PSTFD",
	"PSTD",
	"PSTB",
	"PNOP",
	"PMXVI8GER4SPP",
	"PMXVI8GER4PP",
	"PMXVI8GER4",
	"PMXVI4GER8PP",
	"PMXVI4GER8",
	"PMXVI16GER2SPP",
	"PMXVI16GER2S",
	"PMXVI16GER2PP",
	"PMXVI16GER2",
	"PMXVF64GERPP",
	"PMXVF64GERPN",
	"PMXVF64GERNP",
	"PMXVF64GERNN",
	"PMXVF64GER",
	"PMXVF32GERPP",
	"PMXVF32GERPN",
	"PMXVF32GERNP",
	"PMXVF32GERNN",
	"PMXVF32GER",
	"PMXVF16GER2PP",
	"PMXVF16GER2PN",
	"PMXVF16GER2NP",
	"PMXVF16GER2NN",
	"PMXVF16GER2",
	"PMXVBF16GER2PP",
	"PMXVBF16GER2PN",
	"PMXVBF16GER2NP",
	"PMXVBF16GER2NN",
	"PMXVBF16GER2",
	"PLXVP",
	"PLXV",
	"PLXSSP",
	"PLXSD",
	"PLWZ",
	"PLWA",
	"PLQ",
	"PLHZ",
	"PLHA",
	"PLFS",
	"PLFD",
	"PLD",
	"PLBZ",
	"PADDI",
}

var GenOpcodes = [...]uint32{
	0x7c030162, // AXXSETACCZ
	0x7c010162, // AXXMTACC
	0x7c000162, // AXXMFACC
	0xf0000768, // AXXGENPCVWM
	0xf000072a, // AXXGENPCVHM
	0xf000076a, // AXXGENPCVDM
	0xf0000728, // AXXGENPCVBM
	0xf002076c, // AXVTLSBB
	0xec000318, // AXVI8GER4SPP
	0xec000010, // AXVI8GER4PP
	0xec000018, // AXVI8GER4
	0xec000110, // AXVI4GER8PP
	0xec000118, // AXVI4GER8
	0xec000150, // AXVI16GER2SPP
	0xec000158, // AXVI16GER2S
	0xec000358, // AXVI16GER2PP
	0xec000258, // AXVI16GER2
	0xec0001d0, // AXVF64GERPP
	0xec0005d0, // AXVF64GERPN
	0xec0003d0, // AXVF64GERNP
	0xec0007d0, // AXVF64GERNN
	0xec0001d8, // AXVF64GER
	0xec0000d0, // AXVF32GERPP
	0xec0004d0, // AXVF32GERPN
	0xec0002d0, // AXVF32GERNP
	0xec0006d0, // AXVF32GERNN
	0xec0000d8, // AXVF32GER
	0xec000090, // AXVF16GER2PP
	0xec000490, // AXVF16GER2PN
	0xec000290, // AXVF16GER2NP
	0xec000690, // AXVF16GER2NN
	0xec000098, // AXVF16GER2
	0xf011076c, // AXVCVSPBF16
	0xf010076c, // AXVCVBF16SPN
	0xec000190, // AXVBF16GER2PP
	0xec000590, // AXVBF16GER2PN
	0xec000390, // AXVBF16GER2NP
	0xec000790, // AXVBF16GER2NN
	0xec000198, // AXVBF16GER2
	0xfc0005c8, // AXSMINCQP
	0xfc000548, // AXSMAXCQP
	0xfc030688, // AXSCVUQQP
	0xfc0b0688, // AXSCVSQQP
	0xfc000688, // AXSCVQPUQZ
	0xfc080688, // AXSCVQPSQZ
	0xfc0001c8, // AXSCMPGTQP
	0xfc000188, // AXSCMPGEQP
	0xfc000088, // AXSCMPEQQP
	0x1003040d, // AVSTRIHRCC
	0x1003000d, // AVSTRIHR
	0x1002040d, // AVSTRIHLCC
	0x1002000d, // AVSTRIHL
	0x1001040d, // AVSTRIBRCC
	0x1001000d, // AVSTRIBR
	0x1000040d, // AVSTRIBLCC
	0x1000000d, // AVSTRIBL
	0x10000205, // AVSRQ
	0x10000216, // AVSRDBI
	0x10000305, // AVSRAQ
	0x10000105, // AVSLQ
	0x10000016, // AVSLDBI
	0x10000145, // AVRLQNM
	0x10000045, // AVRLQMI
	0x10000005, // AVRLQ
	0x1000058d, // AVPEXTD
	0x100005cd, // AVPDEPD
	0x100000c8, // AVMULOUD
	0x100001c8, // AVMULOSD
	0x100001c9, // AVMULLD
	0x10000289, // AVMULHUW
	0x100002c9, // AVMULHUD
	0x10000389, // AVMULHSW
	0x100003c9, // AVMULHSD
	0x100002c8, // AVMULEUD
	0x100003c8, // AVMULESD
	0x10000017, // AVMSUMCUD
	0x1000068b, // AVMODUW
	0x1000060b, // AVMODUQ
	0x100006cb, // AVMODUD
	0x1000078b, // AVMODSW
	0x1000070b, // AVMODSQ
	0x100007cb, // AVMODSD
	0x1000018f, // AVINSWVRX
	0x1000008f, // AVINSWVLX
	0x1000038f, // AVINSWRX
	0x1000028f, // AVINSWLX
	0x100000cf, // AVINSW
	0x1000014f, // AVINSHVRX
	0x1000004f, // AVINSHVLX
	0x1000034f, // AVINSHRX
	0x1000024f, // AVINSHLX
	0x100003cf, // AVINSDRX
	0x100002cf, // AVINSDLX
	0x100001cf, // AVINSD
	0x1000010f, // AVINSBVRX
	0x1000000f, // AVINSBVLX
	0x1000030f, // AVINSBRX
	0x1000020f, // AVINSBLX
	0x100004cc, // AVGNB
	0x101b0602, // AVEXTSD2Q
	0x100a0642, // AVEXTRACTWM
	0x100c0642, // AVEXTRACTQM
	0x10090642, // AVEXTRACTHM
	0x100b0642, // AVEXTRACTDM
	0x10080642, // AVEXTRACTBM
	0x1000001d, // AVEXTDUWVRX
	0x1000001c, // AVEXTDUWVLX
	0x1000001b, // AVEXTDUHVRX
	0x1000001a, // AVEXTDUHVLX
	0x10000019, // AVEXTDUBVRX
	0x10000018, // AVEXTDUBVLX
	0x1000001f, // AVEXTDDVRX
	0x1000001e, // AVEXTDDVLX
	0x10020642, // AVEXPANDWM
	0x10040642, // AVEXPANDQM
	0x10010642, // AVEXPANDHM
	0x10030642, // AVEXPANDDM
	0x10000642, // AVEXPANDBM
	0x1000008b, // AVDIVUW
	0x1000000b, // AVDIVUQ
	0x100000cb, // AVDIVUD
	0x1000018b, // AVDIVSW
	0x1000010b, // AVDIVSQ
	0x100001cb, // AVDIVSD
	0x1000028b, // AVDIVEUW
	0x1000020b, // AVDIVEUQ
	0x100002cb, // AVDIVEUD
	0x1000038b, // AVDIVESW
	0x1000030b, // AVDIVESQ
	0x100003cb, // AVDIVESD
	0x100007c4, // AVCTZDM
	0x101c0642, // AVCNTMBW
	0x101a0642, // AVCNTMBH
	0x101e0642, // AVCNTMBD
	0x10180642, // AVCNTMBB
	0x10000101, // AVCMPUQ
	0x10000141, // AVCMPSQ
	0x10000687, // AVCMPGTUQCC
	0x10000287, // AVCMPGTUQ
	0x10000787, // AVCMPGTSQCC
	0x10000387, // AVCMPGTSQ
	0x100005c7, // AVCMPEQUQCC
	0x100001c7, // AVCMPEQUQ
	0x10000784, // AVCLZDM
	0x100001cd, // AVCLRRB
	0x1000018d, // AVCLRLB
	0x1000054d, // AVCFUGED
	0x7c00019a, // ASTXVRWX
	0x7c00015a, // ASTXVRHX
	0x7c0001da, // ASTXVRDX
	0x7c00011a, // ASTXVRBX
	0x7c00039a, // ASTXVPX
	0x18000001, // ASTXVP
	0x7c0003c0, // ASETNBCR
	0x7c000380, // ASETNBC
	0x7c000340, // ASETBCR
	0x7c000300, // ASETBC
	0x7c000178, // APEXTD
	0x7c000138, // APDEPD
	0x10120642, // AMTVSRWM
	0x10140642, // AMTVSRQM
	0x10110642, // AMTVSRHM
	0x10130642, // AMTVSRDM
	0x10000014, // AMTVSRBMI
	0x10100642, // AMTVSRBM
	0x7c00009a, // ALXVRWX
	0x7c00005a, // ALXVRHX
	0x7c0000da, // ALXVRDX
	0x7c00001a, // ALXVRBX
	0x7c00029a, // ALXVPX
	0x18000000, // ALXVP
	0xf01f02d0, // ALXVKQ
	0xfc0107c4, // ADCTFIXQQ
	0xfc0007c4, // ADCFFIXQQ
	0x7c000476, // ACNTTZDM
	0x7c000076, // ACNTLZDM
	0x7c0001b8, // ACFUGED
	0x7c000136, // ABRW
	0x7c0001b6, // ABRH
	0x7c000176, // ABRD
	0x7c000524, // AHASHSTP
	0x7c0005a4, // AHASHST
	0x7c000564, // AHASHCHKP
	0x7c0005e4, // AHASHCHK
	0x80060000, // AXXSPLTIW
	0x80040000, // AXXSPLTIDP
	0x80000000, // AXXSPLTI32DX
	0x88000000, // AXXPERMX
	0x88000010, // AXXEVAL
	0x84000020, // AXXBLENDVW
	0x84000010, // AXXBLENDVH
	0x84000030, // AXXBLENDVD
	0x84000000, // AXXBLENDVB
	0xf8000000, // APSTXVP
	0xd8000000, // APSTXV
	0xbc000000, // APSTXSSP
	0xb8000000, // APSTXSD
	0x90000000, // APSTW
	0xf0000000, // APSTQ
	0xb0000000, // APSTH
	0xd0000000, // APSTFS
	0xd8000000, // APSTFD
	0xf4000000, // APSTD
	0x98000000, // APSTB
	0x00000000, // APNOP
	0xec000318, // APMXVI8GER4SPP
	0xec000010, // APMXVI8GER4PP
	0xec000018, // APMXVI8GER4
	0xec000110, // APMXVI4GER8PP
	0xec000118, // APMXVI4GER8
	0xec000150, // APMXVI16GER2SPP
	0xec000158, // APMXVI16GER2S
	0xec000358, // APMXVI16GER2PP
	0xec000258, // APMXVI16GER2
	0xec0001d0, // APMXVF64GERPP
	0xec0005d0, // APMXVF64GERPN
	0xec0003d0, // APMXVF64GERNP
	0xec0007d0, // APMXVF64GERNN
	0xec0001d8, // APMXVF64GER
	0xec0000d0, // APMXVF32GERPP
	0xec0004d0, // APMXVF32GERPN
	0xec0002d0, // APMXVF32GERNP
	0xec0006d0, // APMXVF32GERNN
	0xec0000d8, // APMXVF32GER
	0xec000090, // APMXVF16GER2PP
	0xec000490, // APMXVF16GER2PN
	0xec000290, // APMXVF16GER2NP
	0xec000690, // APMXVF16GER2NN
	0xec000098, // APMXVF16GER2
	0xec000190, // APMXVBF16GER2PP
	0xec000590, // APMXVBF16GER2PN
	0xec000390, // APMXVBF16GER2NP
	0xec000790, // APMXVBF16GER2NN
	0xec000198, // APMXVBF16GER2
	0xe8000000, // APLXVP
	0xc8000000, // APLXV
	0xac000000, // APLXSSP
	0xa8000000, // APLXSD
	0x80000000, // APLWZ
	0xa4000000, // APLWA
	0xe0000000, // APLQ
	0xa0000000, // APLHZ
	0xa8000000, // APLHA
	0xc0000000, // APLFS
	0xc8000000, // APLFD
	0xe4000000, // APLD
	0x88000000, // APLBZ
	0x38000000, // APADDI
}

var GenPfxOpcodes = [...]uint32{
	0x05000000, // AXXSPLTIW
	0x05000000, // AXXSPLTIDP
	0x05000000, // AXXSPLTI32DX
	0x05000000, // AXXPERMX
	0x05000000, // AXXEVAL
	0x05000000, // AXXBLENDVW
	0x05000000, // AXXBLENDVH
	0x05000000, // AXXBLENDVD
	0x05000000, // AXXBLENDVB
	0x04000000, // APSTXVP
	0x04000000, // APSTXV
	0x04000000, // APSTXSSP
	0x04000000, // APSTXSD
	0x06000000, // APSTW
	0x04000000, // APSTQ
	0x06000000, // APSTH
	0x06000000, // APSTFS
	0x06000000, // APSTFD
	0x04000000, // APSTD
	0x06000000, // APSTB
	0x07000000, // APNOP
	0x07900000, // APMXVI8GER4SPP
	0x07900000, // APMXVI8GER4PP
	0x07900000, // APMXVI8GER4
	0x07900000, // APMXVI4GER8PP
	0x07900000, // APMXVI4GER8
	0x07900000, // APMXVI16GER2SPP
	0x07900000, // APMXVI16GER2S
	0x07900000, // APMXVI16GER2PP
	0x07900000, // APMXVI16GER2
	0x07900000, // APMXVF64GERPP
	0x07900000, // APMXVF64GERPN
	0x07900000, // APMXVF64GERNP
	0x07900000, // APMXVF64GERNN
	0x07900000, // APMXVF64GER
	0x07900000, // APMXVF32GERPP
	0x07900000, // APMXVF32GERPN
	0x07900000, // APMXVF32GERNP
	0x07900000, // APMXVF32GERNN
	0x07900000, // APMXVF32GER
	0x07900000, // APMXVF16GER2PP
	0x07900000, // APMXVF16GER2PN
	0x07900000, // APMXVF16GER2NP
	0x07900000, // APMXVF16GER2NN
	0x07900000, // APMXVF16GER2
	0x07900000, // APMXVBF16GER2PP
	0x07900000, // APMXVBF16GER2PN
	0x07900000, // APMXVBF16GER2NP
	0x07900000, // APMXVBF16GER2NN
	0x07900000, // APMXVBF16GER2
	0x04000000, // APLXVP
	0x04000000, // APLXV
	0x04000000, // APLXSSP
	0x04000000, // APLXSD
	0x06000000, // APLWZ
	0x04000000, // APLWA
	0x04000000, // APLQ
	0x06000000, // APLHZ
	0x06000000, // APLHA
	0x06000000, // APLFS
	0x06000000, // APLFD
	0x04000000, // APLD
	0x06000000, // APLBZ
	0x06000000, // APADDI
}

var optabGen = []Optab{
	{as: ABRW, a1: C_REG, a6: C_REG, asmout: type_brw, size: 4},
	{as: ADCFFIXQQ, a1: C_VREG, a6: C_FREGP, asmout: type_xscvuqqp, size: 4},
	{as: ADCTFIXQQ, a1: C_FREGP, a6: C_VREG, asmout: type_xscvuqqp, size: 4},
	{as: AHASHCHKP, a1: C_SOREG, a6: C_REG, asmout: type_hashchkp, size: 4},
	{as: AHASHSTP, a1: C_REG, a6: C_SOREG, asmout: type_hashstp, size: 4},
	{as: ALXVKQ, a1: C_U5CON, a6: C_VSREG, asmout: type_lxvkq, size: 4},
	{as: ALXVP, a1: C_SOREG, a6: C_VSREGP, asmout: type_lxvp, size: 4},
	{as: ALXVPX, a1: C_XOREG, a6: C_VSREGP, asmout: type_lxvpx, size: 4},
	{as: ALXVRWX, a1: C_XOREG, a6: C_VSREG, asmout: type_lxvrwx, size: 4},
	{as: AMTVSRBMI, a1: C_U16CON, a6: C_VREG, asmout: type_mtvsrbmi, size: 4},
	{as: AMTVSRWM, a1: C_REG, a6: C_VREG, asmout: type_xscvuqqp, size: 4},
	{as: APADDI, a1: C_REG, a3: C_S34CON, a4: C_U1CON, a6: C_REG, asmout: type_paddi, ispfx: true, size: 8},
	{as: APEXTD, a1: C_REG, a2: C_REG, a6: C_REG, asmout: type_pextd, size: 4},
	{as: APLFS, a1: C_LOREG, a3: C_U1CON, a6: C_FREG, asmout: type_plxssp, ispfx: true, size: 8},
	{as: APLQ, a1: C_LOREG, a3: C_U1CON, a6: C_REGP, asmout: type_plxssp, ispfx: true, size: 8},
	{as: APLWZ, a1: C_LOREG, a3: C_U1CON, a6: C_REG, asmout: type_plxssp, ispfx: true, size: 8},
	{as: APLXSSP, a1: C_LOREG, a3: C_U1CON, a6: C_VREG, asmout: type_plxssp, ispfx: true, size: 8},
	{as: APLXV, a1: C_LOREG, a3: C_U1CON, a6: C_VSREG, asmout: type_plxv, ispfx: true, size: 8},
	{as: APLXVP, a1: C_LOREG, a3: C_U1CON, a6: C_VSREGP, asmout: type_plxvp, ispfx: true, size: 8},
	{as: APMXVF32GERPP, a1: C_VSREG, a2: C_VSREG, a3: C_U4CON, a4: C_U4CON, a6: C_AREG, asmout: type_pmxvf32gerpp, ispfx: true, size: 8},
	{as: APMXVF64GERPP, a1: C_VSREGP, a2: C_VSREG, a3: C_U4CON, a4: C_U2CON, a6: C_AREG, asmout: type_pmxvf64gerpp, ispfx: true, size: 8},
	{as: APMXVI16GER2SPP, a1: C_VSREG, a2: C_VSREG, a3: C_U4CON, a4: C_U4CON, a5: C_U2CON, a6: C_AREG, asmout: type_pmxvi16ger2spp, ispfx: true, size: 8},
	{as: APMXVI4GER8PP, a1: C_VSREG, a2: C_VSREG, a3: C_U4CON, a4: C_U4CON, a5: C_U8CON, a6: C_AREG, asmout: type_pmxvi4ger8pp, ispfx: true, size: 8},
	{as: APMXVI8GER4SPP, a1: C_VSREG, a2: C_VSREG, a3: C_U4CON, a4: C_U4CON, a5: C_U4CON, a6: C_AREG, asmout: type_pmxvi8ger4spp, ispfx: true, size: 8},
	{as: APNOP, asmout: type_pnop, ispfx: true, size: 8},
	{as: APSTFS, a1: C_FREG, a3: C_U1CON, a6: C_LOREG, asmout: type_pstxssp, ispfx: true, size: 8},
	{as: APSTQ, a1: C_REGP, a3: C_U1CON, a6: C_LOREG, asmout: type_pstxssp, ispfx: true, size: 8},
	{as: APSTW, a1: C_REG, a3: C_U1CON, a6: C_LOREG, asmout: type_pstxssp, ispfx: true, size: 8},
	{as: APSTXSSP, a1: C_VREG, a3: C_U1CON, a6: C_LOREG, asmout: type_pstxssp, ispfx: true, size: 8},
	{as: APSTXV, a1: C_VSREG, a3: C_U1CON, a6: C_LOREG, asmout: type_pstxv, ispfx: true, size: 8},
	{as: APSTXVP, a1: C_VSREGP, a3: C_U1CON, a6: C_LOREG, asmout: type_pstxvp, ispfx: true, size: 8},
	{as: ASETNBCR, a1: C_CRBIT, a6: C_REG, asmout: type_setnbcr, size: 4},
	{as: ASTXVP, a1: C_VSREGP, a6: C_SOREG, asmout: type_stxvp, size: 4},
	{as: ASTXVPX, a1: C_VSREGP, a6: C_XOREG, asmout: type_stxvpx, size: 4},
	{as: ASTXVRWX, a1: C_VSREG, a6: C_XOREG, asmout: type_stxvrwx, size: 4},
	{as: AVCLRRB, a1: C_VREG, a2: C_REG, a6: C_VREG, asmout: type_xsmincqp, size: 4},
	{as: AVCMPUQ, a1: C_VREG, a2: C_VREG, a6: C_CREG, asmout: type_vcmpuq, size: 4},
	{as: AVCNTMBW, a1: C_VREG, a3: C_U1CON, a6: C_REG, asmout: type_vcntmbw, size: 4},
	{as: AVEXTDUWVRX, a1: C_VREG, a2: C_VREG, a3: C_REG, a6: C_VREG, asmout: type_vmsumcud, size: 4},
	{as: AVEXTRACTWM, a1: C_VREG, a6: C_REG, asmout: type_xscvuqqp, size: 4},
	{as: AVGNB, a1: C_VREG, a3: C_U3CON, a6: C_REG, asmout: type_vgnb, size: 4},
	{as: AVINSW, a1: C_REG, a3: C_U4CON, a6: C_VREG, asmout: type_vinsw, size: 4},
	{as: AVINSWRX, a1: C_REG, a2: C_REG, a6: C_VREG, asmout: type_xsmincqp, size: 4},
	{as: AVINSWVRX, a1: C_REG, a2: C_VREG, a6: C_VREG, asmout: type_xsmincqp, size: 4},
	{as: AVMSUMCUD, a1: C_VREG, a2: C_VREG, a3: C_VREG, a6: C_VREG, asmout: type_vmsumcud, size: 4},
	{as: AVSRDBI, a1: C_VREG, a2: C_VREG, a3: C_U3CON, a6: C_VREG, asmout: type_vsrdbi, size: 4},
	{as: AXSCVUQQP, a1: C_VREG, a6: C_VREG, asmout: type_xscvuqqp, size: 4},
	{as: AXSMINCQP, a1: C_VREG, a2: C_VREG, a6: C_VREG, asmout: type_xsmincqp, size: 4},
	{as: AXVCVSPBF16, a1: C_VSREG, a6: C_VSREG, asmout: type_xvcvspbf16, size: 4},
	{as: AXVI8GER4SPP, a1: C_VSREG, a2: C_VSREG, a6: C_AREG, asmout: type_xvi8ger4spp, size: 4},
	{as: AXVTLSBB, a1: C_VSREG, a6: C_CREG, asmout: type_xvtlsbb, size: 4},
	{as: AXXBLENDVW, a1: C_VSREG, a2: C_VSREG, a3: C_VSREG, a6: C_VSREG, asmout: type_xxblendvw, ispfx: true, size: 8},
	{as: AXXEVAL, a1: C_VSREG, a2: C_VSREG, a3: C_VSREG, a4: C_U8CON, a6: C_VSREG, asmout: type_xxeval, ispfx: true, size: 8},
	{as: AXXGENPCVWM, a1: C_VREG, a3: C_U5CON, a6: C_VSREG, asmout: type_xxgenpcvwm, size: 4},
	{as: AXXPERMX, a1: C_VSREG, a2: C_VSREG, a3: C_VSREG, a4: C_U3CON, a6: C_VSREG, asmout: type_xxpermx, ispfx: true, size: 8},
	{as: AXXSETACCZ, a6: C_AREG, asmout: type_xxsetaccz, size: 4},
	{as: AXXSPLTI32DX, a1: C_U1CON, a3: C_U32CON, a6: C_VSREG, asmout: type_xxsplti32dx, ispfx: true, size: 8},
	{as: AXXSPLTIW, a1: C_U32CON, a6: C_VSREG, asmout: type_xxspltiw, ispfx: true, size: 8},
}

// brw RA,RS
func type_brw(c *ctxt9, p *obj.Prog, t *Optab, out *[5]uint32) {
	o0 := GenOpcodes[p.As-AXXSETACCZ]
	o0 |= uint32(p.To.Reg&0x1f) << 16   // RA
	o0 |= uint32(p.From.Reg&0x1f) << 21 // RS
	out[0] = o0
}

// hashchkp RB,offset(RA)
func type_hashchkp(c *ctxt9, p *obj.Prog, t *Optab, out *[5]uint32) {
	o0 := GenOpcodes[p.As-AXXSETACCZ]
	o0 |= uint32(p.To.Reg&0x1f) << 11           // RB
	o0 |= uint32((p.From.Offset>>8)&0x1) << 0   // DX
	o0 |= uint32((p.From.Offset>>3)&0x1f) << 21 // D
	o0 |= uint32(p.From.Reg&0x1f) << 16         // RA
	if p.From.Offset&0xfffffe07 != 0xfffffe00 {
		c.ctxt.Diag("Constant(%d) must within the range of [-512,-8] in steps of 8\n%v", p.From.Offset, p)
	}
	out[0] = o0
}

// hashstp RB,offset(RA)
func type_hashstp(c *ctxt9, p *obj.Prog, t *Optab, out *[5]uint32) {
	o0 := GenOpcodes[p.As-AXXSETACCZ]
	o0 |= uint32(p.From.Reg&0x1f) << 11       // RB
	o0 |= uint32((p.To.Offset>>8)&0x1) << 0   // DX
	o0 |= uint32((p.To.Offset>>3)&0x1f) << 21 // D
	o0 |= uint32(p.To.Reg&0x1f) << 16         // RA
	if p.To.Offset&0xfffffe07 != 0xfffffe00 {
		c.ctxt.Diag("Constant(%d) must within the range of [-512,-8] in steps of 8\n%v", p.To.Offset, p)
	}
	out[0] = o0
}

// lxvkq XT,UIM
func type_lxvkq(c *ctxt9, p *obj.Prog, t *Optab, out *[5]uint32) {
	o0 := GenOpcodes[p.As-AXXSETACCZ]
	o0 |= uint32((p.To.Reg>>5)&0x1) << 0   // TX
	o0 |= uint32(p.To.Reg&0x1f) << 21      // T
	o0 |= uint32(p.From.Offset&0x1f) << 11 // UIM
	out[0] = o0
}

// lxvp XTp,DQ(RA)
func type_lxvp(c *ctxt9, p *obj.Prog, t *Optab, out *[5]uint32) {
	o0 := GenOpcodes[p.As-AXXSETACCZ]
	o0 |= uint32((p.To.Reg>>5)&0x1) << 21       // TX
	o0 |= uint32((p.To.Reg>>1)&0xf) << 22       // Tp
	o0 |= uint32((p.From.Offset>>4)&0xfff) << 4 // DQ
	o0 |= uint32(p.From.Reg&0x1f) << 16         // RA
	if p.From.Offset&0xf != 0 {
		c.ctxt.Diag("Constant 0x%x (%d) is not a multiple of 16\n%v", p.From.Offset, p.From.Offset, p)
	}
	out[0] = o0
}

// lxvpx XTp,RA,RB
func type_lxvpx(c *ctxt9, p *obj.Prog, t *Optab, out *[5]uint32) {
	o0 := GenOpcodes[p.As-AXXSETACCZ]
	o0 |= uint32((p.To.Reg>>5)&0x1) << 21 // TX
	o0 |= uint32((p.To.Reg>>1)&0xf) << 22 // Tp
	o0 |= uint32(p.From.Index&0x1f) << 16 // RA
	o0 |= uint32(p.From.Reg&0x1f) << 11   // RB
	out[0] = o0
}

// lxvrwx XT,RA,RB
func type_lxvrwx(c *ctxt9, p *obj.Prog, t *Optab, out *[5]uint32) {
	o0 := GenOpcodes[p.As-AXXSETACCZ]
	o0 |= uint32((p.To.Reg>>5)&0x1) << 0  // TX
	o0 |= uint32(p.To.Reg&0x1f) << 21     // T
	o0 |= uint32(p.From.Index&0x1f) << 16 // RA
	o0 |= uint32(p.From.Reg&0x1f) << 11   // RB
	out[0] = o0
}

// mtvsrbmi VRT,bm
func type_mtvsrbmi(c *ctxt9, p *obj.Prog, t *Optab, out *[5]uint32) {
	o0 := GenOpcodes[p.As-AXXSETACCZ]
	o0 |= uint32(p.To.Reg&0x1f) << 21           // VRT
	o0 |= uint32((p.From.Offset>>6)&0x3ff) << 6 // b0
	o0 |= uint32((p.From.Offset>>1)&0x1f) << 16 // b1
	o0 |= uint32(p.From.Offset&0x1) << 0        // b2
	out[0] = o0
}

// paddi RT,RA,SI,R
func type_paddi(c *ctxt9, p *obj.Prog, t *Optab, out *[5]uint32) {
	o0 := GenPfxOpcodes[p.As-AXXSPLTIW]
	o1 := GenOpcodes[p.As-AXXSETACCZ]
	o1 |= uint32(p.To.Reg&0x1f) << 21                          // RT
	o1 |= uint32(p.From.Reg&0x1f) << 16                        // RA
	o0 |= uint32((p.RestArgs[0].Addr.Offset>>16)&0x3ffff) << 0 // si0
	o1 |= uint32(p.RestArgs[0].Addr.Offset&0xffff) << 0        // si1
	o0 |= uint32(p.RestArgs[1].Addr.Offset&0x1) << 20          // R
	out[1] = o1
	out[0] = o0
}

// pextd RA,RS,RB
func type_pextd(c *ctxt9, p *obj.Prog, t *Optab, out *[5]uint32) {
	o0 := GenOpcodes[p.As-AXXSETACCZ]
	o0 |= uint32(p.To.Reg&0x1f) << 16   // RA
	o0 |= uint32(p.From.Reg&0x1f) << 21 // RS
	o0 |= uint32(p.Reg&0x1f) << 11      // RB
	out[0] = o0
}

// plxssp VRT,D(RA),R
func type_plxssp(c *ctxt9, p *obj.Prog, t *Optab, out *[5]uint32) {
	o0 := GenPfxOpcodes[p.As-AXXSPLTIW]
	o1 := GenOpcodes[p.As-AXXSETACCZ]
	o1 |= uint32(p.To.Reg&0x1f) << 21                 // VRT
	o0 |= uint32((p.From.Offset>>16)&0x3ffff) << 0    // d0
	o1 |= uint32(p.From.Offset&0xffff) << 0           // d1
	o1 |= uint32(p.From.Reg&0x1f) << 16               // RA
	o0 |= uint32(p.RestArgs[0].Addr.Offset&0x1) << 20 // R
	out[1] = o1
	out[0] = o0
}

// plxv XT,D(RA),R
func type_plxv(c *ctxt9, p *obj.Prog, t *Optab, out *[5]uint32) {
	o0 := GenPfxOpcodes[p.As-AXXSPLTIW]
	o1 := GenOpcodes[p.As-AXXSETACCZ]
	o1 |= uint32((p.To.Reg>>5)&0x1) << 26             // TX
	o1 |= uint32(p.To.Reg&0x1f) << 21                 // T
	o0 |= uint32((p.From.Offset>>16)&0x3ffff) << 0    // d0
	o1 |= uint32(p.From.Offset&0xffff) << 0           // d1
	o1 |= uint32(p.From.Reg&0x1f) << 16               // RA
	o0 |= uint32(p.RestArgs[0].Addr.Offset&0x1) << 20 // R
	out[1] = o1
	out[0] = o0
}

// plxvp XTp,D(RA),R
func type_plxvp(c *ctxt9, p *obj.Prog, t *Optab, out *[5]uint32) {
	o0 := GenPfxOpcodes[p.As-AXXSPLTIW]
	o1 := GenOpcodes[p.As-AXXSETACCZ]
	o1 |= uint32((p.To.Reg>>5)&0x1) << 21             // TX
	o1 |= uint32((p.To.Reg>>1)&0xf) << 22             // Tp
	o0 |= uint32((p.From.Offset>>16)&0x3ffff) << 0    // d0
	o1 |= uint32(p.From.Offset&0xffff) << 0           // d1
	o1 |= uint32(p.From.Reg&0x1f) << 16               // RA
	o0 |= uint32(p.RestArgs[0].Addr.Offset&0x1) << 20 // R
	out[1] = o1
	out[0] = o0
}

// pmxvf32gerpp AT,XA,XB,XMSK,YMSK
func type_pmxvf32gerpp(c *ctxt9, p *obj.Prog, t *Optab, out *[5]uint32) {
	o0 := GenPfxOpcodes[p.As-AXXSPLTIW]
	o1 := GenOpcodes[p.As-AXXSETACCZ]
	o1 |= uint32(p.To.Reg&0x7) << 23                 // AT
	o1 |= uint32((p.From.Reg>>5)&0x1) << 2           // AX
	o1 |= uint32(p.From.Reg&0x1f) << 16              // A
	o1 |= uint32((p.Reg>>5)&0x1) << 1                // BX
	o1 |= uint32(p.Reg&0x1f) << 11                   // B
	o0 |= uint32(p.RestArgs[0].Addr.Offset&0xf) << 4 // XMSK
	o0 |= uint32(p.RestArgs[1].Addr.Offset&0xf) << 0 // YMSK
	out[1] = o1
	out[0] = o0
}

// pmxvf64gerpp AT,XAp,XB,XMSK,YMSK
func type_pmxvf64gerpp(c *ctxt9, p *obj.Prog, t *Optab, out *[5]uint32) {
	o0 := GenPfxOpcodes[p.As-AXXSPLTIW]
	o1 := GenOpcodes[p.As-AXXSETACCZ]
	o1 |= uint32(p.To.Reg&0x7) << 23                 // AT
	o1 |= uint32((p.From.Reg>>5)&0x1) << 2           // AX
	o1 |= uint32(p.From.Reg&0x1f) << 16              // Ap
	o1 |= uint32((p.Reg>>5)&0x1) << 1                // BX
	o1 |= uint32(p.Reg&0x1f) << 11                   // B
	o0 |= uint32(p.RestArgs[0].Addr.Offset&0xf) << 4 // XMSK
	o0 |= uint32(p.RestArgs[1].Addr.Offset&0x3) << 2 // YMSK
	out[1] = o1
	out[0] = o0
}

// pmxvi16ger2spp AT,XA,XB,XMSK,YMSK,PMSK
func type_pmxvi16ger2spp(c *ctxt9, p *obj.Prog, t *Optab, out *[5]uint32) {
	o0 := GenPfxOpcodes[p.As-AXXSPLTIW]
	o1 := GenOpcodes[p.As-AXXSETACCZ]
	o1 |= uint32(p.To.Reg&0x7) << 23                  // AT
	o1 |= uint32((p.From.Reg>>5)&0x1) << 2            // AX
	o1 |= uint32(p.From.Reg&0x1f) << 16               // A
	o1 |= uint32((p.Reg>>5)&0x1) << 1                 // BX
	o1 |= uint32(p.Reg&0x1f) << 11                    // B
	o0 |= uint32(p.RestArgs[0].Addr.Offset&0xf) << 4  // XMSK
	o0 |= uint32(p.RestArgs[1].Addr.Offset&0xf) << 0  // YMSK
	o0 |= uint32(p.RestArgs[2].Addr.Offset&0x3) << 14 // PMSK
	out[1] = o1
	out[0] = o0
}

// pmxvi4ger8pp AT,XA,XB,XMSK,YMSK,PMSK
func type_pmxvi4ger8pp(c *ctxt9, p *obj.Prog, t *Optab, out *[5]uint32) {
	o0 := GenPfxOpcodes[p.As-AXXSPLTIW]
	o1 := GenOpcodes[p.As-AXXSETACCZ]
	o1 |= uint32(p.To.Reg&0x7) << 23                  // AT
	o1 |= uint32((p.From.Reg>>5)&0x1) << 2            // AX
	o1 |= uint32(p.From.Reg&0x1f) << 16               // A
	o1 |= uint32((p.Reg>>5)&0x1) << 1                 // BX
	o1 |= uint32(p.Reg&0x1f) << 11                    // B
	o0 |= uint32(p.RestArgs[0].Addr.Offset&0xf) << 4  // XMSK
	o0 |= uint32(p.RestArgs[1].Addr.Offset&0xf) << 0  // YMSK
	o0 |= uint32(p.RestArgs[2].Addr.Offset&0xff) << 8 // PMSK
	out[1] = o1
	out[0] = o0
}

// pmxvi8ger4spp AT,XA,XB,XMSK,YMSK,PMSK
func type_pmxvi8ger4spp(c *ctxt9, p *obj.Prog, t *Optab, out *[5]uint32) {
	o0 := GenPfxOpcodes[p.As-AXXSPLTIW]
	o1 := GenOpcodes[p.As-AXXSETACCZ]
	o1 |= uint32(p.To.Reg&0x7) << 23                  // AT
	o1 |= uint32((p.From.Reg>>5)&0x1) << 2            // AX
	o1 |= uint32(p.From.Reg&0x1f) << 16               // A
	o1 |= uint32((p.Reg>>5)&0x1) << 1                 // BX
	o1 |= uint32(p.Reg&0x1f) << 11                    // B
	o0 |= uint32(p.RestArgs[0].Addr.Offset&0xf) << 4  // XMSK
	o0 |= uint32(p.RestArgs[1].Addr.Offset&0xf) << 0  // YMSK
	o0 |= uint32(p.RestArgs[2].Addr.Offset&0xf) << 12 // PMSK
	out[1] = o1
	out[0] = o0
}

// pnop
func type_pnop(c *ctxt9, p *obj.Prog, t *Optab, out *[5]uint32) {
	o0 := GenPfxOpcodes[p.As-AXXSPLTIW]
	o1 := GenOpcodes[p.As-AXXSETACCZ]
	out[1] = o1
	out[0] = o0
}

// pstxssp VRS,D(RA),R
func type_pstxssp(c *ctxt9, p *obj.Prog, t *Optab, out *[5]uint32) {
	o0 := GenPfxOpcodes[p.As-AXXSPLTIW]
	o1 := GenOpcodes[p.As-AXXSETACCZ]
	o1 |= uint32(p.From.Reg&0x1f) << 21               // VRS
	o0 |= uint32((p.To.Offset>>16)&0x3ffff) << 0      // d0
	o1 |= uint32(p.To.Offset&0xffff) << 0             // d1
	o1 |= uint32(p.To.Reg&0x1f) << 16                 // RA
	o0 |= uint32(p.RestArgs[0].Addr.Offset&0x1) << 20 // R
	out[1] = o1
	out[0] = o0
}

// pstxv XS,D(RA),R
func type_pstxv(c *ctxt9, p *obj.Prog, t *Optab, out *[5]uint32) {
	o0 := GenPfxOpcodes[p.As-AXXSPLTIW]
	o1 := GenOpcodes[p.As-AXXSETACCZ]
	o1 |= uint32((p.From.Reg>>5)&0x1) << 26           // SX
	o1 |= uint32(p.From.Reg&0x1f) << 21               // S
	o0 |= uint32((p.To.Offset>>16)&0x3ffff) << 0      // d0
	o1 |= uint32(p.To.Offset&0xffff) << 0             // d1
	o1 |= uint32(p.To.Reg&0x1f) << 16                 // RA
	o0 |= uint32(p.RestArgs[0].Addr.Offset&0x1) << 20 // R
	out[1] = o1
	out[0] = o0
}

// pstxvp XSp,D(RA),R
func type_pstxvp(c *ctxt9, p *obj.Prog, t *Optab, out *[5]uint32) {
	o0 := GenPfxOpcodes[p.As-AXXSPLTIW]
	o1 := GenOpcodes[p.As-AXXSETACCZ]
	o1 |= uint32((p.From.Reg>>5)&0x1) << 21           // SX
	o1 |= uint32((p.From.Reg>>1)&0xf) << 22           // Sp
	o0 |= uint32((p.To.Offset>>16)&0x3ffff) << 0      // d0
	o1 |= uint32(p.To.Offset&0xffff) << 0             // d1
	o1 |= uint32(p.To.Reg&0x1f) << 16                 // RA
	o0 |= uint32(p.RestArgs[0].Addr.Offset&0x1) << 20 // R
	out[1] = o1
	out[0] = o0
}

// setnbcr RT,BI
func type_setnbcr(c *ctxt9, p *obj.Prog, t *Optab, out *[5]uint32) {
	o0 := GenOpcodes[p.As-AXXSETACCZ]
	o0 |= uint32(p.To.Reg&0x1f) << 21   // RT
	o0 |= uint32(p.From.Reg&0x1f) << 16 // BI
	out[0] = o0
}

// stxvp XSp,DQ(RA)
func type_stxvp(c *ctxt9, p *obj.Prog, t *Optab, out *[5]uint32) {
	o0 := GenOpcodes[p.As-AXXSETACCZ]
	o0 |= uint32((p.From.Reg>>5)&0x1) << 21   // SX
	o0 |= uint32((p.From.Reg>>1)&0xf) << 22   // Sp
	o0 |= uint32((p.To.Offset>>4)&0xfff) << 4 // DQ
	o0 |= uint32(p.To.Reg&0x1f) << 16         // RA
	if p.To.Offset&0xf != 0 {
		c.ctxt.Diag("Constant 0x%x (%d) is not a multiple of 16\n%v", p.To.Offset, p.To.Offset, p)
	}
	out[0] = o0
}

// stxvpx XSp,RA,RB
func type_stxvpx(c *ctxt9, p *obj.Prog, t *Optab, out *[5]uint32) {
	o0 := GenOpcodes[p.As-AXXSETACCZ]
	o0 |= uint32((p.From.Reg>>5)&0x1) << 21 // SX
	o0 |= uint32((p.From.Reg>>1)&0xf) << 22 // Sp
	o0 |= uint32(p.To.Index&0x1f) << 16     // RA
	o0 |= uint32(p.To.Reg&0x1f) << 11       // RB
	out[0] = o0
}

// stxvrwx XS,RA,RB
func type_stxvrwx(c *ctxt9, p *obj.Prog, t *Optab, out *[5]uint32) {
	o0 := GenOpcodes[p.As-AXXSETACCZ]
	o0 |= uint32((p.From.Reg>>5)&0x1) << 0 // SX
	o0 |= uint32(p.From.Reg&0x1f) << 21    // S
	o0 |= uint32(p.To.Index&0x1f) << 16    // RA
	o0 |= uint32(p.To.Reg&0x1f) << 11      // RB
	out[0] = o0
}

// vcmpuq BF,VRA,VRB
func type_vcmpuq(c *ctxt9, p *obj.Prog, t *Optab, out *[5]uint32) {
	o0 := GenOpcodes[p.As-AXXSETACCZ]
	o0 |= uint32(p.To.Reg&0x7) << 23    // BF
	o0 |= uint32(p.From.Reg&0x1f) << 16 // VRA
	o0 |= uint32(p.Reg&0x1f) << 11      // VRB
	out[0] = o0
}

// vcntmbw RT,VRB,MP
func type_vcntmbw(c *ctxt9, p *obj.Prog, t *Optab, out *[5]uint32) {
	o0 := GenOpcodes[p.As-AXXSETACCZ]
	o0 |= uint32(p.To.Reg&0x1f) << 21                 // RT
	o0 |= uint32(p.From.Reg&0x1f) << 11               // VRB
	o0 |= uint32(p.RestArgs[0].Addr.Offset&0x1) << 16 // MP
	out[0] = o0
}

// vgnb RT,VRB,N
func type_vgnb(c *ctxt9, p *obj.Prog, t *Optab, out *[5]uint32) {
	o0 := GenOpcodes[p.As-AXXSETACCZ]
	o0 |= uint32(p.To.Reg&0x1f) << 21                 // RT
	o0 |= uint32(p.From.Reg&0x1f) << 11               // VRB
	o0 |= uint32(p.RestArgs[0].Addr.Offset&0x7) << 16 // N
	out[0] = o0
}

// vinsw VRT,RB,UIM
func type_vinsw(c *ctxt9, p *obj.Prog, t *Optab, out *[5]uint32) {
	o0 := GenOpcodes[p.As-AXXSETACCZ]
	o0 |= uint32(p.To.Reg&0x1f) << 21                 // VRT
	o0 |= uint32(p.From.Reg&0x1f) << 11               // RB
	o0 |= uint32(p.RestArgs[0].Addr.Offset&0xf) << 16 // UIM
	out[0] = o0
}

// vmsumcud VRT,VRA,VRB,VRC
func type_vmsumcud(c *ctxt9, p *obj.Prog, t *Optab, out *[5]uint32) {
	o0 := GenOpcodes[p.As-AXXSETACCZ]
	o0 |= uint32(p.To.Reg&0x1f) << 21              // VRT
	o0 |= uint32(p.From.Reg&0x1f) << 16            // VRA
	o0 |= uint32(p.Reg&0x1f) << 11                 // VRB
	o0 |= uint32(p.RestArgs[0].Addr.Reg&0x1f) << 6 // VRC
	out[0] = o0
}

// vsrdbi VRT,VRA,VRB,SH
func type_vsrdbi(c *ctxt9, p *obj.Prog, t *Optab, out *[5]uint32) {
	o0 := GenOpcodes[p.As-AXXSETACCZ]
	o0 |= uint32(p.To.Reg&0x1f) << 21                // VRT
	o0 |= uint32(p.From.Reg&0x1f) << 16              // VRA
	o0 |= uint32(p.Reg&0x1f) << 11                   // VRB
	o0 |= uint32(p.RestArgs[0].Addr.Offset&0x7) << 6 // SH
	out[0] = o0
}

// xscvuqqp VRT,VRB
func type_xscvuqqp(c *ctxt9, p *obj.Prog, t *Optab, out *[5]uint32) {
	o0 := GenOpcodes[p.As-AXXSETACCZ]
	o0 |= uint32(p.To.Reg&0x1f) << 21   // VRT
	o0 |= uint32(p.From.Reg&0x1f) << 11 // VRB
	out[0] = o0
}

// xsmincqp VRT,VRA,VRB
func type_xsmincqp(c *ctxt9, p *obj.Prog, t *Optab, out *[5]uint32) {
	o0 := GenOpcodes[p.As-AXXSETACCZ]
	o0 |= uint32(p.To.Reg&0x1f) << 21   // VRT
	o0 |= uint32(p.From.Reg&0x1f) << 16 // VRA
	o0 |= uint32(p.Reg&0x1f) << 11      // VRB
	out[0] = o0
}

// xvcvspbf16 XT,XB
func type_xvcvspbf16(c *ctxt9, p *obj.Prog, t *Optab, out *[5]uint32) {
	o0 := GenOpcodes[p.As-AXXSETACCZ]
	o0 |= uint32((p.To.Reg>>5)&0x1) << 0   // TX
	o0 |= uint32(p.To.Reg&0x1f) << 21      // T
	o0 |= uint32((p.From.Reg>>5)&0x1) << 1 // BX
	o0 |= uint32(p.From.Reg&0x1f) << 11    // B
	out[0] = o0
}

// xvi8ger4spp AT,XA,XB
func type_xvi8ger4spp(c *ctxt9, p *obj.Prog, t *Optab, out *[5]uint32) {
	o0 := GenOpcodes[p.As-AXXSETACCZ]
	o0 |= uint32(p.To.Reg&0x7) << 23       // AT
	o0 |= uint32((p.From.Reg>>5)&0x1) << 2 // AX
	o0 |= uint32(p.From.Reg&0x1f) << 16    // A
	o0 |= uint32((p.Reg>>5)&0x1) << 1      // BX
	o0 |= uint32(p.Reg&0x1f) << 11         // B
	out[0] = o0
}

// xvtlsbb BF,XB
func type_xvtlsbb(c *ctxt9, p *obj.Prog, t *Optab, out *[5]uint32) {
	o0 := GenOpcodes[p.As-AXXSETACCZ]
	o0 |= uint32(p.To.Reg&0x7) << 23       // BF
	o0 |= uint32((p.From.Reg>>5)&0x1) << 1 // BX
	o0 |= uint32(p.From.Reg&0x1f) << 11    // B
	out[0] = o0
}

// xxblendvw XT,XA,XB,XC
func type_xxblendvw(c *ctxt9, p *obj.Prog, t *Optab, out *[5]uint32) {
	o0 := GenPfxOpcodes[p.As-AXXSPLTIW]
	o1 := GenOpcodes[p.As-AXXSETACCZ]
	o1 |= uint32((p.To.Reg>>5)&0x1) << 0               // TX
	o1 |= uint32(p.To.Reg&0x1f) << 21                  // T
	o1 |= uint32((p.From.Reg>>5)&0x1) << 2             // AX
	o1 |= uint32(p.From.Reg&0x1f) << 16                // A
	o1 |= uint32((p.Reg>>5)&0x1) << 1                  // BX
	o1 |= uint32(p.Reg&0x1f) << 11                     // B
	o1 |= uint32((p.RestArgs[0].Addr.Reg>>5)&0x1) << 3 // CX
	o1 |= uint32(p.RestArgs[0].Addr.Reg&0x1f) << 6     // C
	out[1] = o1
	out[0] = o0
}

// xxeval XT,XA,XB,XC,IMM
func type_xxeval(c *ctxt9, p *obj.Prog, t *Optab, out *[5]uint32) {
	o0 := GenPfxOpcodes[p.As-AXXSPLTIW]
	o1 := GenOpcodes[p.As-AXXSETACCZ]
	o1 |= uint32((p.To.Reg>>5)&0x1) << 0               // TX
	o1 |= uint32(p.To.Reg&0x1f) << 21                  // T
	o1 |= uint32((p.From.Reg>>5)&0x1) << 2             // AX
	o1 |= uint32(p.From.Reg&0x1f) << 16                // A
	o1 |= uint32((p.Reg>>5)&0x1) << 1                  // BX
	o1 |= uint32(p.Reg&0x1f) << 11                     // B
	o1 |= uint32((p.RestArgs[0].Addr.Reg>>5)&0x1) << 3 // CX
	o1 |= uint32(p.RestArgs[0].Addr.Reg&0x1f) << 6     // C
	o0 |= uint32(p.RestArgs[1].Addr.Offset&0xff) << 0  // IMM
	out[1] = o1
	out[0] = o0
}

// xxgenpcvwm XT,VRB,IMM
func type_xxgenpcvwm(c *ctxt9, p *obj.Prog, t *Optab, out *[5]uint32) {
	o0 := GenOpcodes[p.As-AXXSETACCZ]
	o0 |= uint32((p.To.Reg>>5)&0x1) << 0               // TX
	o0 |= uint32(p.To.Reg&0x1f) << 21                  // T
	o0 |= uint32(p.From.Reg&0x1f) << 11                // VRB
	o0 |= uint32(p.RestArgs[0].Addr.Offset&0x1f) << 16 // IMM
	out[0] = o0
}

// xxpermx XT,XA,XB,XC,UIM
func type_xxpermx(c *ctxt9, p *obj.Prog, t *Optab, out *[5]uint32) {
	o0 := GenPfxOpcodes[p.As-AXXSPLTIW]
	o1 := GenOpcodes[p.As-AXXSETACCZ]
	o1 |= uint32((p.To.Reg>>5)&0x1) << 0               // TX
	o1 |= uint32(p.To.Reg&0x1f) << 21                  // T
	o1 |= uint32((p.From.Reg>>5)&0x1) << 2             // AX
	o1 |= uint32(p.From.Reg&0x1f) << 16                // A
	o1 |= uint32((p.Reg>>5)&0x1) << 1                  // BX
	o1 |= uint32(p.Reg&0x1f) << 11                     // B
	o1 |= uint32((p.RestArgs[0].Addr.Reg>>5)&0x1) << 3 // CX
	o1 |= uint32(p.RestArgs[0].Addr.Reg&0x1f) << 6     // C
	o0 |= uint32(p.RestArgs[1].Addr.Offset&0x7) << 0   // UIM
	out[1] = o1
	out[0] = o0
}

// xxsetaccz AT
func type_xxsetaccz(c *ctxt9, p *obj.Prog, t *Optab, out *[5]uint32) {
	o0 := GenOpcodes[p.As-AXXSETACCZ]
	o0 |= uint32(p.To.Reg&0x7) << 23 // AT
	out[0] = o0
}

// xxsplti32dx XT,IX,IMM32
func type_xxsplti32dx(c *ctxt9, p *obj.Prog, t *Optab, out *[5]uint32) {
	o0 := GenPfxOpcodes[p.As-AXXSPLTIW]
	o1 := GenOpcodes[p.As-AXXSETACCZ]
	o1 |= uint32((p.To.Reg>>5)&0x1) << 16                     // TX
	o1 |= uint32(p.To.Reg&0x1f) << 21                         // T
	o1 |= uint32(p.From.Offset&0x1) << 17                     // IX
	o0 |= uint32((p.RestArgs[0].Addr.Offset>>16)&0xffff) << 0 // imm0
	o1 |= uint32(p.RestArgs[0].Addr.Offset&0xffff) << 0       // imm1
	out[1] = o1
	out[0] = o0
}

// xxspltiw XT,IMM32
func type_xxspltiw(c *ctxt9, p *obj.Prog, t *Optab, out *[5]uint32) {
	o0 := GenPfxOpcodes[p.As-AXXSPLTIW]
	o1 := GenOpcodes[p.As-AXXSETACCZ]
	o1 |= uint32((p.To.Reg>>5)&0x1) << 16         // TX
	o1 |= uint32(p.To.Reg&0x1f) << 21             // T
	o0 |= uint32((p.From.Offset>>16)&0xffff) << 0 // imm0
	o1 |= uint32(p.From.Offset&0xffff) << 0       // imm1
	out[1] = o1
	out[0] = o0
}

func opsetGen(from obj.As) bool {
	r0 := from & obj.AMask
	switch from {
	case ABRW:
		opset(ABRH, r0)
		opset(ABRD, r0)
	case ADCFFIXQQ:
	case ADCTFIXQQ:
	case AHASHCHKP:
		opset(AHASHCHK, r0)
	case AHASHSTP:
		opset(AHASHST, r0)
	case ALXVKQ:
	case ALXVP:
	case ALXVPX:
	case ALXVRWX:
		opset(ALXVRHX, r0)
		opset(ALXVRDX, r0)
		opset(ALXVRBX, r0)
	case AMTVSRBMI:
	case AMTVSRWM:
		opset(AMTVSRQM, r0)
		opset(AMTVSRHM, r0)
		opset(AMTVSRDM, r0)
		opset(AMTVSRBM, r0)
	case APADDI:
	case APEXTD:
		opset(APDEPD, r0)
		opset(ACNTTZDM, r0)
		opset(ACNTLZDM, r0)
		opset(ACFUGED, r0)
	case APLFS:
		opset(APLFD, r0)
	case APLQ:
	case APLWZ:
		opset(APLWA, r0)
		opset(APLHZ, r0)
		opset(APLHA, r0)
		opset(APLD, r0)
		opset(APLBZ, r0)
	case APLXSSP:
		opset(APLXSD, r0)
	case APLXV:
	case APLXVP:
	case APMXVF32GERPP:
		opset(APMXVF32GERPN, r0)
		opset(APMXVF32GERNP, r0)
		opset(APMXVF32GERNN, r0)
		opset(APMXVF32GER, r0)
	case APMXVF64GERPP:
		opset(APMXVF64GERPN, r0)
		opset(APMXVF64GERNP, r0)
		opset(APMXVF64GERNN, r0)
		opset(APMXVF64GER, r0)
	case APMXVI16GER2SPP:
		opset(APMXVI16GER2S, r0)
		opset(APMXVI16GER2PP, r0)
		opset(APMXVI16GER2, r0)
		opset(APMXVF16GER2PP, r0)
		opset(APMXVF16GER2PN, r0)
		opset(APMXVF16GER2NP, r0)
		opset(APMXVF16GER2NN, r0)
		opset(APMXVF16GER2, r0)
		opset(APMXVBF16GER2PP, r0)
		opset(APMXVBF16GER2PN, r0)
		opset(APMXVBF16GER2NP, r0)
		opset(APMXVBF16GER2NN, r0)
		opset(APMXVBF16GER2, r0)
	case APMXVI4GER8PP:
		opset(APMXVI4GER8, r0)
	case APMXVI8GER4SPP:
		opset(APMXVI8GER4PP, r0)
		opset(APMXVI8GER4, r0)
	case APNOP:
	case APSTFS:
		opset(APSTFD, r0)
	case APSTQ:
	case APSTW:
		opset(APSTH, r0)
		opset(APSTD, r0)
		opset(APSTB, r0)
	case APSTXSSP:
		opset(APSTXSD, r0)
	case APSTXV:
	case APSTXVP:
	case ASETNBCR:
		opset(ASETNBC, r0)
		opset(ASETBCR, r0)
		opset(ASETBC, r0)
	case ASTXVP:
	case ASTXVPX:
	case ASTXVRWX:
		opset(ASTXVRHX, r0)
		opset(ASTXVRDX, r0)
		opset(ASTXVRBX, r0)
	case AVCLRRB:
		opset(AVCLRLB, r0)
	case AVCMPUQ:
		opset(AVCMPSQ, r0)
	case AVCNTMBW:
		opset(AVCNTMBH, r0)
		opset(AVCNTMBD, r0)
		opset(AVCNTMBB, r0)
	case AVEXTDUWVRX:
		opset(AVEXTDUWVLX, r0)
		opset(AVEXTDUHVRX, r0)
		opset(AVEXTDUHVLX, r0)
		opset(AVEXTDUBVRX, r0)
		opset(AVEXTDUBVLX, r0)
		opset(AVEXTDDVRX, r0)
		opset(AVEXTDDVLX, r0)
	case AVEXTRACTWM:
		opset(AVEXTRACTQM, r0)
		opset(AVEXTRACTHM, r0)
		opset(AVEXTRACTDM, r0)
		opset(AVEXTRACTBM, r0)
	case AVGNB:
	case AVINSW:
		opset(AVINSD, r0)
	case AVINSWRX:
		opset(AVINSWLX, r0)
		opset(AVINSHRX, r0)
		opset(AVINSHLX, r0)
		opset(AVINSDRX, r0)
		opset(AVINSDLX, r0)
		opset(AVINSBRX, r0)
		opset(AVINSBLX, r0)
	case AVINSWVRX:
		opset(AVINSWVLX, r0)
		opset(AVINSHVRX, r0)
		opset(AVINSHVLX, r0)
		opset(AVINSBVRX, r0)
		opset(AVINSBVLX, r0)
	case AVMSUMCUD:
	case AVSRDBI:
		opset(AVSLDBI, r0)
	case AXSCVUQQP:
		opset(AXSCVSQQP, r0)
		opset(AXSCVQPUQZ, r0)
		opset(AXSCVQPSQZ, r0)
		opset(AVSTRIHRCC, r0)
		opset(AVSTRIHR, r0)
		opset(AVSTRIHLCC, r0)
		opset(AVSTRIHL, r0)
		opset(AVSTRIBRCC, r0)
		opset(AVSTRIBR, r0)
		opset(AVSTRIBLCC, r0)
		opset(AVSTRIBL, r0)
		opset(AVEXTSD2Q, r0)
		opset(AVEXPANDWM, r0)
		opset(AVEXPANDQM, r0)
		opset(AVEXPANDHM, r0)
		opset(AVEXPANDDM, r0)
		opset(AVEXPANDBM, r0)
	case AXSMINCQP:
		opset(AXSMAXCQP, r0)
		opset(AXSCMPGTQP, r0)
		opset(AXSCMPGEQP, r0)
		opset(AXSCMPEQQP, r0)
		opset(AVSRQ, r0)
		opset(AVSRAQ, r0)
		opset(AVSLQ, r0)
		opset(AVRLQNM, r0)
		opset(AVRLQMI, r0)
		opset(AVRLQ, r0)
		opset(AVPEXTD, r0)
		opset(AVPDEPD, r0)
		opset(AVMULOUD, r0)
		opset(AVMULOSD, r0)
		opset(AVMULLD, r0)
		opset(AVMULHUW, r0)
		opset(AVMULHUD, r0)
		opset(AVMULHSW, r0)
		opset(AVMULHSD, r0)
		opset(AVMULEUD, r0)
		opset(AVMULESD, r0)
		opset(AVMODUW, r0)
		opset(AVMODUQ, r0)
		opset(AVMODUD, r0)
		opset(AVMODSW, r0)
		opset(AVMODSQ, r0)
		opset(AVMODSD, r0)
		opset(AVDIVUW, r0)
		opset(AVDIVUQ, r0)
		opset(AVDIVUD, r0)
		opset(AVDIVSW, r0)
		opset(AVDIVSQ, r0)
		opset(AVDIVSD, r0)
		opset(AVDIVEUW, r0)
		opset(AVDIVEUQ, r0)
		opset(AVDIVEUD, r0)
		opset(AVDIVESW, r0)
		opset(AVDIVESQ, r0)
		opset(AVDIVESD, r0)
		opset(AVCTZDM, r0)
		opset(AVCMPGTUQCC, r0)
		opset(AVCMPGTUQ, r0)
		opset(AVCMPGTSQCC, r0)
		opset(AVCMPGTSQ, r0)
		opset(AVCMPEQUQCC, r0)
		opset(AVCMPEQUQ, r0)
		opset(AVCLZDM, r0)
		opset(AVCFUGED, r0)
	case AXVCVSPBF16:
		opset(AXVCVBF16SPN, r0)
	case AXVI8GER4SPP:
		opset(AXVI8GER4PP, r0)
		opset(AXVI8GER4, r0)
		opset(AXVI4GER8PP, r0)
		opset(AXVI4GER8, r0)
		opset(AXVI16GER2SPP, r0)
		opset(AXVI16GER2S, r0)
		opset(AXVI16GER2PP, r0)
		opset(AXVI16GER2, r0)
		opset(AXVF64GERPP, r0)
		opset(AXVF64GERPN, r0)
		opset(AXVF64GERNP, r0)
		opset(AXVF64GERNN, r0)
		opset(AXVF64GER, r0)
		opset(AXVF32GERPP, r0)
		opset(AXVF32GERPN, r0)
		opset(AXVF32GERNP, r0)
		opset(AXVF32GERNN, r0)
		opset(AXVF32GER, r0)
		opset(AXVF16GER2PP, r0)
		opset(AXVF16GER2PN, r0)
		opset(AXVF16GER2NP, r0)
		opset(AXVF16GER2NN, r0)
		opset(AXVF16GER2, r0)
		opset(AXVBF16GER2PP, r0)
		opset(AXVBF16GER2PN, r0)
		opset(AXVBF16GER2NP, r0)
		opset(AXVBF16GER2NN, r0)
		opset(AXVBF16GER2, r0)
	case AXVTLSBB:
	case AXXBLENDVW:
		opset(AXXBLENDVH, r0)
		opset(AXXBLENDVD, r0)
		opset(AXXBLENDVB, r0)
	case AXXEVAL:
	case AXXGENPCVWM:
		opset(AXXGENPCVHM, r0)
		opset(AXXGENPCVDM, r0)
		opset(AXXGENPCVBM, r0)
	case AXXPERMX:
	case AXXSETACCZ:
		opset(AXXMTACC, r0)
		opset(AXXMFACC, r0)
	case AXXSPLTI32DX:
	case AXXSPLTIW:
		opset(AXXSPLTIDP, r0)
	default:
		return false
	}
	return true
}