foxdec-0.1.0.0: Formally Verified x86-64 Decompilation
Safe HaskellNone
LanguageHaskell2010

X86.Opcode

Synopsis

Documentation

data Opcode Source #

Opcodes / mnemonics

Constructors

InvalidOpcode 
AAA 
AAD 
AAM 
AAS 
ADC 
ADD 
ADDPD 
ADDPS 
ADDSD 
ADDSS 
ADDSUBPD 
ADDUBPS 
AND 
ANDNPD 
ANDNPS 
ANDPD 
ANDPS 
ARPL 
BLENDVPD 
BLENDVPS 
BOUND 
BSF 
BSR 
BT 
BTC 
BTR 
BTS 
CALL 
CALLF 
CBW 
CDQ 
CDQE 
CLC 
CLD 
CLFLUSH 
CLI 
CLTS 
CMC 
CMOVA 
CMOVAE 
CMOVB 
CMOVBE 
CMOVC 
CMOVE 
CMOVG 
CMOVGE 
CMOVL 
CMOVLE 
CMOVNA 
CMOVNAE 
CMOVNB 
CMOVNBE 
CMOVNC 
CMOVNE 
CMOVNG 
CMOVNGE 
CMOVNL 
CMOVNLE 
CMOVNO 
CMOVNP 
CMOVNS 
CMOVNZ 
CMOVO 
CMOVP 
CMOVPE 
CMOVPO 
CMOVS 
CMOVZ 
CMP 
CMPEQSD 
CMPNEQSD 
CMPNLESD 
CMPLTSD 
CMPS 
CMPSB 
CMPSD 
CMPSW 
CMPXCHG 
CMPXCHG16B 
CMPXCHG8B 
COMISD 
COMISS 
CPUID 
CQO 
CVTDQ2PD 
CVTSD2SS 
CVTSI2SD 
CVTSI2SS 
CVTSS2SD 
CVTTSD2SI 
CVTTSS2SI 
CVTTPD2DQ 
CWD 
CWDE 
DAA 
DAS 
DEC 
DIV 
DIV_LO 
DIV_HI 
DIVPD 
DIVPS 
DIVSD 
DIVSS 
EMMS 
ENDBR64 
ENTER 
EXTRACTPS 
FABS 
FADD 
FADDP 
FBLD 
FBSTP 
FCHS 
FCLEX 
FCMOVB 
FCMOVBE 
FCMOVE 
FCMOVNB 
FCMOVNBE 
FCMOVNE 
FCMOVNU 
FCMOVU 
FCOM 
FCOMI 
FCOMIP 
FCOMP 
FCOMPI 
FCOMPP 
FCOS 
FDIV 
FDIVP 
FDIVR 
FDIVRP 
FFREE 
FRNDINT 
FIADD 
FICOM 
FICOMP 
FIDIV 
FIDIVR 
FILD 
FIMUL 
FINIT 
FIST 
FISTP 
FISTPP 
FISTTP 
FISUB 
FISUBR 
FLD 
FLD1 
FLDCW 
FLDENV 
FLDL2E 
FLDL2T 
FLDLG2 
FLDLN2 
FLDPI 
FLDZ 
FMUL 
FMULP 
FNOP 
FNINIT 
FNSTCW 
FPREM1 
FRSTOR 
FSAVE 
FSIN 
FSINCOS 
FSCALE 
FSQRT 
FST 
FSTCW 
FSTENV 
FSTP 
FSTSW 
FSUB 
FSUBP 
FSUBR 
FSUBRP 
FTST 
FUCOM 
FUCOMI 
FUCOMIP 
FUCOMP 
FUCOMPI 
FUCOMPP 
FXAM 
FXCH 
FXRSTOR 
FXSAVE 
FXTRACT 
HADDPD 
HADDPS 
HLT 
HSUBPD 
HSUBPS 
IDIV 
IDIV_LO 
IDIV_HI 
IMUL 
IMUL_LO 
IMUL_HI 
BSWAP 
IN 
INC 
INS 
INSD 
INT 
INT3 
INTO 
INVD 
INVLPG 
INVPCID 
IRET 
IRETD 
IRETQ 
JA 
JAE 
JB 
JBE 
JC 
JCXZ 
JE 
JECXZ 
JG 
JGE 
JL 
JLE 
JMP 
JMPF 
JMPN 
JNAE 
JNA 
JNB 
JNBE 
JNC 
JNG 
JNE 
JNGE 
JNLE 
JNL 
JNO 
JNP 
JNS 
JNZ 
JO 
JP 
JPE 
JPO 
JRCXZ 
JS 
JZ 
LAHF 
LAR 
LDDQU 
LDMXCSR 
LDS 
LEA 
LEAVE 
LES 
LFENCE 
LFS 
LGDT 
LGS 
LIDT 
LLDT 
LMSW 
LODS 
LODSB 
LODSD 
LODSW 
LOOP 
LOOPE 
LOOPNE 
LSL 
LSS 
LTR 
MASKMOVQ 
MAXPD 
MAXPS 
MAXSD 
MAXSS 
MFENCE 
MINPD 
MINPS 
MINSD 
MINSS 
MONITOR 
MOV 
MOVABS 
MOVAPD 
MOVAPS 
MOVD 
MOVDDUP 
MOVDQA 
MOVDQU 
MOVHLPS 
MOVHPD 
MOVHPS 
MOVLHPS 
MOVLPD 
MOVLPS 
MOVLSDUP 
MOVMSKPD 
MOVMSKPS 
MOVNTDQ 
MOVNTPD 
MOVNTPS 
MOVNTQ 
MOVQ 
MOVS 
MOVSB 
MOVSD 
MOVSLDUP 
MOVSS 
MOVSW 
MOVSQ 
MOVSX 
MOVSXB 
MOVSXD 
MOVSXW 
MOVUPD 
MOVUPS 
MOVZX 
MOVZXB 
MOVZXW 
MUL 
MUL_LO 
MUL_HI 
MULPD 
MULPS 
MULSD 
MULSS 
MWAIT 
NEG 
NOP 
NOT 
OR 
ORPD 
ORPS 
OUT 
OUTS 
PALIGNR 
PACKSSDW 
PACKSSWB 
PADDB 
PADDD 
PADDQ 
PADDSB 
PADDSW 
PADDUSB 
PADDUSW 
PADDW 
PAND 
PANDN 
PAUSE 
PAVGB 
PAVGW 
PBLENDW 
PCLMULQDQ 
PCMPEQB 
PCMPEQD 
PCMPGTB 
PCMPGTD 
PEXTRB 
PEXTRD 
PEXTRQ 
PHADDD 
PINSRB 
PINSRD 
PINSRQ 
PMADDWD 
PMAXSD 
PMAXSW 
PMAXUB 
PMAXUD 
PMAXUQ 
PMINSD 
PMINSW 
PMINUB 
PMINUD 
PMOVMSKB 
PMOVSXDQ 
PMOVZXDQ 
PMOVSXBD 
PMOVZXBD 
PMULLD 
PMULLQ 
PMULHUW 
PMULHW 
PMULLW 
PMULUDQ 
POP 
POPA 
POPAD 
POPF 
POPFD 
POPFQ 
POR 
PREFETCHNTA 
PREFETCHT0 
PREFETCHT1 
PREFETCHT2 
PSADBW 
PSHUFB 
PSHUFD 
PSHUFLW 
PSLLD 
PSLLDQ 
PSLLQ 
PSLLW 
PSRAD 
PSRAW 
PSRLD 
PSRLDQ 
PSRLQ 
PSRLW 
PSUBB 
PSUBD 
PSUBQ 
PSUBSB 
PSUBSQ 
PSUBUSB 
PSUBUSW 
PSUBW 
PTEST 
PUNPCKLBW 
PUNPCKLWD 
PUNPCKLDQ 
PUNPCKLQDQ 
PUSH 
PUSHA 
PUSHAD 
PUSHF 
PUSHFD 
PUSHFQ 
PXOR 
RCL 
RCPPS 
RCPSS 
RCR 
RDMSR 
RDPMC 
RDTSC 
RET 
RETF 
RETN 
ROL 
ROR 
ROUNDSD 
ROUNDSS 
RSM 
RSQRTPS 
RSQRTSS 
SAHF 
SAL 
SAR 
SBB 
SCAS 
SCASB 
SCASD 
SETA 
SETAE 
SETB 
SETBE 
SETC 
SETE 
SETG 
SETGE 
SETL 
SETLE 
SETNA 
SETNAE 
SETNB 
SETNBE 
SETNC 
SETNE 
SETNG 
SETNGE 
SETNL 
SETNLE 
SETNO 
SETNP 
SETNS 
SETNZ 
SETO 
SETP 
SETPE 
SETPO 
SETS 
SETZ 
SFENCE 
SGDT 
SHL 
SHLD 
SHR 
SHRD 
SHUFPS 
SIDT 
SLDT 
SMSW 
SQRTPD 
SQRTPS 
SQRTSD 
SQRTSS 
STC 
STD 
STI 
STMXCSR 
STOS 
STOSB 
STOSD 
STOSQ 
STR 
SUB 
SUBPD 
SUBPS 
SUBSD 
SUBSS 
SWAPGS 
SYSCALL 
SYSENTER 
SYSEXIT 
SYSRET 
TEST 
UCOMISD 
UCOMISS 
UD2 
UNPCKHPD 
UNPCKHPS 
UNPCKLPD 
UNPCKLPS 
VANDPD 
VANDPS 
VADDPD 
VADDPS 
VBLENDPS 
VERR 
VERW 
VEXTRACTI128 
VEXTRACTF128 
VINSERTF128 
VMCALL 
VMCLEAR 
VMLAUNCH 
VMOVAPD 
VMOVAPS 
VMOVHPS 
VMOVD 
VMOVDQA 
VMOVDQU 
VMOVLHPS 
VMPTRLD 
VMPTRST 
VMREAD 
VMRESUME 
VMWRITE 
VMULPD 
VMULPS 
VMXOFF 
VMXON 
VPALIGNR 
VPAND 
VPANDN 
VPCMPEQB 
VPCMPEQW 
VPERM2F128 
VPERM2I128 
VPERMILPS 
VPOR 
VPSHUFB 
VPSHUFD 
VPSLLW 
VSHUFPS 
VSHUFPD 
VPXOR 
VPUNPCKLWD 
VPUNPCKHWD 
VSUBPD 
VSUBPS 
VUNPCKHPS 
VUNPCKLPS 
VXORPD 
VXORPS 
VZEROUPPER 
WAIT 
WBINVD 
WRFSBASE 
WRGSBASE 
WRMSR 
XADD 
XCHG 
XGETBV 
XLAT 
XLATB 
XSETBV 
XSAVEOPT 
XRSTOR 
XOR 
XORPD 
XORPS 

Instances

Instances details
Eq Opcode Source # 
Instance details

Defined in X86.Opcode

Methods

(==) :: Opcode -> Opcode -> Bool #

(/=) :: Opcode -> Opcode -> Bool #

Ord Opcode Source # 
Instance details

Defined in X86.Opcode

Show Opcode Source # 
Instance details

Defined in X86.Opcode

Generic Opcode Source # 
Instance details

Defined in X86.Opcode

Associated Types

type Rep Opcode :: Type -> Type #

Methods

from :: Opcode -> Rep Opcode x #

to :: Rep Opcode x -> Opcode #

ToJSON Opcode Source # 
Instance details

Defined in OutputGeneration.JSON

Serialize Opcode Source # 
Instance details

Defined in X86.Opcode

NFData Opcode Source # 
Instance details

Defined in X86.Opcode

Methods

rnf :: Opcode -> () #

HasSize Instruction Source # 
Instance details

Defined in X86.Instruction

type Rep Opcode Source # 
Instance details

Defined in X86.Opcode

type Rep Opcode = D1 ('MetaData "Opcode" "X86.Opcode" "foxdec-0.1.0.0-F8J4QQ8bsQELJyhc4kJb0m" 'False) (((((((((C1 ('MetaCons "InvalidOpcode" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "AAA" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "AAD" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "AAM" 'PrefixI 'False) (U1 :: Type -> Type))) :+: ((C1 ('MetaCons "AAS" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "ADC" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "ADD" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "ADDPD" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "ADDPS" 'PrefixI 'False) (U1 :: Type -> Type))))) :+: (((C1 ('MetaCons "ADDSD" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "ADDSS" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "ADDSUBPD" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "ADDUBPS" 'PrefixI 'False) (U1 :: Type -> Type))) :+: ((C1 ('MetaCons "AND" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "ANDNPD" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "ANDNPS" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "ANDPD" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "ANDPS" 'PrefixI 'False) (U1 :: Type -> Type)))))) :+: ((((C1 ('MetaCons "ARPL" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "BLENDVPD" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "BLENDVPS" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "BOUND" 'PrefixI 'False) (U1 :: Type -> Type))) :+: ((C1 ('MetaCons "BSF" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "BSR" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "BT" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "BTC" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "BTR" 'PrefixI 'False) (U1 :: Type -> Type))))) :+: (((C1 ('MetaCons "BTS" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "CALL" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "CALLF" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "CBW" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "CDQ" 'PrefixI 'False) (U1 :: Type -> Type)))) :+: ((C1 ('MetaCons "CDQE" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "CLC" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "CLD" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "CLFLUSH" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "CLI" 'PrefixI 'False) (U1 :: Type -> Type))))))) :+: (((((C1 ('MetaCons "CLTS" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "CMC" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "CMOVA" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "CMOVAE" 'PrefixI 'False) (U1 :: Type -> Type))) :+: ((C1 ('MetaCons "CMOVB" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "CMOVBE" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "CMOVC" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "CMOVE" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "CMOVG" 'PrefixI 'False) (U1 :: Type -> Type))))) :+: (((C1 ('MetaCons "CMOVGE" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "CMOVL" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "CMOVLE" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "CMOVNA" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "CMOVNAE" 'PrefixI 'False) (U1 :: Type -> Type)))) :+: ((C1 ('MetaCons "CMOVNB" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "CMOVNBE" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "CMOVNC" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "CMOVNE" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "CMOVNG" 'PrefixI 'False) (U1 :: Type -> Type)))))) :+: ((((C1 ('MetaCons "CMOVNGE" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "CMOVNL" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "CMOVNLE" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "CMOVNO" 'PrefixI 'False) (U1 :: Type -> Type))) :+: ((C1 ('MetaCons "CMOVNP" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "CMOVNS" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "CMOVNZ" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "CMOVO" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "CMOVP" 'PrefixI 'False) (U1 :: Type -> Type))))) :+: (((C1 ('MetaCons "CMOVPE" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "CMOVPO" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "CMOVS" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "CMOVZ" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "CMP" 'PrefixI 'False) (U1 :: Type -> Type)))) :+: ((C1 ('MetaCons "CMPEQSD" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "CMPNEQSD" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "CMPNLESD" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "CMPLTSD" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "CMPS" 'PrefixI 'False) (U1 :: Type -> Type)))))))) :+: ((((((C1 ('MetaCons "CMPSB" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "CMPSD" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "CMPSW" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "CMPXCHG" 'PrefixI 'False) (U1 :: Type -> Type))) :+: ((C1 ('MetaCons "CMPXCHG16B" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "CMPXCHG8B" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "COMISD" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "COMISS" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "CPUID" 'PrefixI 'False) (U1 :: Type -> Type))))) :+: (((C1 ('MetaCons "CQO" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "CVTDQ2PD" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "CVTSD2SS" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "CVTSI2SD" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "CVTSI2SS" 'PrefixI 'False) (U1 :: Type -> Type)))) :+: ((C1 ('MetaCons "CVTSS2SD" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "CVTTSD2SI" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "CVTTSS2SI" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "CVTTPD2DQ" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "CWD" 'PrefixI 'False) (U1 :: Type -> Type)))))) :+: ((((C1 ('MetaCons "CWDE" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "DAA" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "DAS" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "DEC" 'PrefixI 'False) (U1 :: Type -> Type))) :+: ((C1 ('MetaCons "DIV" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "DIV_LO" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "DIV_HI" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "DIVPD" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "DIVPS" 'PrefixI 'False) (U1 :: Type -> Type))))) :+: (((C1 ('MetaCons "DIVSD" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "DIVSS" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "EMMS" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "ENDBR64" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "ENTER" 'PrefixI 'False) (U1 :: Type -> Type)))) :+: ((C1 ('MetaCons "EXTRACTPS" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "FABS" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "FADD" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "FADDP" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "FBLD" 'PrefixI 'False) (U1 :: Type -> Type))))))) :+: (((((C1 ('MetaCons "FBSTP" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "FCHS" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "FCLEX" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "FCMOVB" 'PrefixI 'False) (U1 :: Type -> Type))) :+: ((C1 ('MetaCons "FCMOVBE" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "FCMOVE" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "FCMOVNB" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "FCMOVNBE" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "FCMOVNE" 'PrefixI 'False) (U1 :: Type -> Type))))) :+: (((C1 ('MetaCons "FCMOVNU" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "FCMOVU" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "FCOM" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "FCOMI" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "FCOMIP" 'PrefixI 'False) (U1 :: Type -> Type)))) :+: ((C1 ('MetaCons "FCOMP" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "FCOMPI" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "FCOMPP" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "FCOS" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "FDIV" 'PrefixI 'False) (U1 :: Type -> Type)))))) :+: ((((C1 ('MetaCons "FDIVP" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "FDIVR" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "FDIVRP" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "FFREE" 'PrefixI 'False) (U1 :: Type -> Type))) :+: ((C1 ('MetaCons "FRNDINT" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "FIADD" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "FICOM" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "FICOMP" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "FIDIV" 'PrefixI 'False) (U1 :: Type -> Type))))) :+: (((C1 ('MetaCons "FIDIVR" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "FILD" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "FIMUL" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "FINIT" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "FIST" 'PrefixI 'False) (U1 :: Type -> Type)))) :+: ((C1 ('MetaCons "FISTP" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "FISTPP" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "FISTTP" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "FISUB" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "FISUBR" 'PrefixI 'False) (U1 :: Type -> Type))))))))) :+: (((((((C1 ('MetaCons "FLD" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "FLD1" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "FLDCW" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "FLDENV" 'PrefixI 'False) (U1 :: Type -> Type))) :+: ((C1 ('MetaCons "FLDL2E" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "FLDL2T" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "FLDLG2" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "FLDLN2" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "FLDPI" 'PrefixI 'False) (U1 :: Type -> Type))))) :+: (((C1 ('MetaCons "FLDZ" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "FMUL" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "FMULP" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "FNOP" 'PrefixI 'False) (U1 :: Type -> Type))) :+: ((C1 ('MetaCons "FNINIT" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "FNSTCW" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "FPREM1" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "FRSTOR" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "FSAVE" 'PrefixI 'False) (U1 :: Type -> Type)))))) :+: ((((C1 ('MetaCons "FSIN" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "FSINCOS" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "FSCALE" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "FSQRT" 'PrefixI 'False) (U1 :: Type -> Type))) :+: ((C1 ('MetaCons "FST" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "FSTCW" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "FSTENV" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "FSTP" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "FSTSW" 'PrefixI 'False) (U1 :: Type -> Type))))) :+: (((C1 ('MetaCons "FSUB" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "FSUBP" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "FSUBR" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "FSUBRP" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "FTST" 'PrefixI 'False) (U1 :: Type -> Type)))) :+: ((C1 ('MetaCons "FUCOM" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "FUCOMI" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "FUCOMIP" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "FUCOMP" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "FUCOMPI" 'PrefixI 'False) (U1 :: Type -> Type))))))) :+: (((((C1 ('MetaCons "FUCOMPP" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "FXAM" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "FXCH" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "FXRSTOR" 'PrefixI 'False) (U1 :: Type -> Type))) :+: ((C1 ('MetaCons "FXSAVE" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "FXTRACT" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "HADDPD" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "HADDPS" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "HLT" 'PrefixI 'False) (U1 :: Type -> Type))))) :+: (((C1 ('MetaCons "HSUBPD" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "HSUBPS" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "IDIV" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "IDIV_LO" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "IDIV_HI" 'PrefixI 'False) (U1 :: Type -> Type)))) :+: ((C1 ('MetaCons "IMUL" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "IMUL_LO" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "IMUL_HI" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "BSWAP" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "IN" 'PrefixI 'False) (U1 :: Type -> Type)))))) :+: ((((C1 ('MetaCons "INC" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "INS" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "INSD" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "INT" 'PrefixI 'False) (U1 :: Type -> Type))) :+: ((C1 ('MetaCons "INT3" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "INTO" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "INVD" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "INVLPG" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "INVPCID" 'PrefixI 'False) (U1 :: Type -> Type))))) :+: (((C1 ('MetaCons "IRET" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "IRETD" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "IRETQ" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "JA" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "JAE" 'PrefixI 'False) (U1 :: Type -> Type)))) :+: ((C1 ('MetaCons "JB" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "JBE" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "JC" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "JCXZ" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "JE" 'PrefixI 'False) (U1 :: Type -> Type)))))))) :+: ((((((C1 ('MetaCons "JECXZ" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "JG" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "JGE" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "JL" 'PrefixI 'False) (U1 :: Type -> Type))) :+: ((C1 ('MetaCons "JLE" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "JMP" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "JMPF" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "JMPN" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "JNAE" 'PrefixI 'False) (U1 :: Type -> Type))))) :+: (((C1 ('MetaCons "JNA" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "JNB" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "JNBE" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "JNC" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "JNG" 'PrefixI 'False) (U1 :: Type -> Type)))) :+: ((C1 ('MetaCons "JNE" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "JNGE" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "JNLE" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "JNL" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "JNO" 'PrefixI 'False) (U1 :: Type -> Type)))))) :+: ((((C1 ('MetaCons "JNP" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "JNS" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "JNZ" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "JO" 'PrefixI 'False) (U1 :: Type -> Type))) :+: ((C1 ('MetaCons "JP" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "JPE" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "JPO" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "JRCXZ" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "JS" 'PrefixI 'False) (U1 :: Type -> Type))))) :+: (((C1 ('MetaCons "JZ" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "LAHF" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "LAR" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "LDDQU" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "LDMXCSR" 'PrefixI 'False) (U1 :: Type -> Type)))) :+: ((C1 ('MetaCons "LDS" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "LEA" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "LEAVE" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "LES" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "LFENCE" 'PrefixI 'False) (U1 :: Type -> Type))))))) :+: (((((C1 ('MetaCons "LFS" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "LGDT" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "LGS" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "LIDT" 'PrefixI 'False) (U1 :: Type -> Type))) :+: ((C1 ('MetaCons "LLDT" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "LMSW" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "LODS" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "LODSB" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "LODSD" 'PrefixI 'False) (U1 :: Type -> Type))))) :+: (((C1 ('MetaCons "LODSW" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "LOOP" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "LOOPE" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "LOOPNE" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "LSL" 'PrefixI 'False) (U1 :: Type -> Type)))) :+: ((C1 ('MetaCons "LSS" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "LTR" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "MASKMOVQ" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "MAXPD" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "MAXPS" 'PrefixI 'False) (U1 :: Type -> Type)))))) :+: ((((C1 ('MetaCons "MAXSD" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "MAXSS" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "MFENCE" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "MINPD" 'PrefixI 'False) (U1 :: Type -> Type))) :+: ((C1 ('MetaCons "MINPS" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "MINSD" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "MINSS" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "MONITOR" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "MOV" 'PrefixI 'False) (U1 :: Type -> Type))))) :+: (((C1 ('MetaCons "MOVABS" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "MOVAPD" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "MOVAPS" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "MOVD" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "MOVDDUP" 'PrefixI 'False) (U1 :: Type -> Type)))) :+: ((C1 ('MetaCons "MOVDQA" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "MOVDQU" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "MOVHLPS" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "MOVHPD" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "MOVHPS" 'PrefixI 'False) (U1 :: Type -> Type)))))))))) :+: ((((((((C1 ('MetaCons "MOVLHPS" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "MOVLPD" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "MOVLPS" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "MOVLSDUP" 'PrefixI 'False) (U1 :: Type -> Type))) :+: ((C1 ('MetaCons "MOVMSKPD" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "MOVMSKPS" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "MOVNTDQ" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "MOVNTPD" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "MOVNTPS" 'PrefixI 'False) (U1 :: Type -> Type))))) :+: (((C1 ('MetaCons "MOVNTQ" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "MOVQ" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "MOVS" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "MOVSB" 'PrefixI 'False) (U1 :: Type -> Type))) :+: ((C1 ('MetaCons "MOVSD" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "MOVSLDUP" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "MOVSS" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "MOVSW" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "MOVSQ" 'PrefixI 'False) (U1 :: Type -> Type)))))) :+: ((((C1 ('MetaCons "MOVSX" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "MOVSXB" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "MOVSXD" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "MOVSXW" 'PrefixI 'False) (U1 :: Type -> Type))) :+: ((C1 ('MetaCons "MOVUPD" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "MOVUPS" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "MOVZX" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "MOVZXB" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "MOVZXW" 'PrefixI 'False) (U1 :: Type -> Type))))) :+: (((C1 ('MetaCons "MUL" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "MUL_LO" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "MUL_HI" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "MULPD" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "MULPS" 'PrefixI 'False) (U1 :: Type -> Type)))) :+: ((C1 ('MetaCons "MULSD" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "MULSS" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "MWAIT" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "NEG" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "NOP" 'PrefixI 'False) (U1 :: Type -> Type))))))) :+: (((((C1 ('MetaCons "NOT" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "OR" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "ORPD" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "ORPS" 'PrefixI 'False) (U1 :: Type -> Type))) :+: ((C1 ('MetaCons "OUT" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "OUTS" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "PALIGNR" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "PACKSSDW" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "PACKSSWB" 'PrefixI 'False) (U1 :: Type -> Type))))) :+: (((C1 ('MetaCons "PADDB" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "PADDD" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "PADDQ" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "PADDSB" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "PADDSW" 'PrefixI 'False) (U1 :: Type -> Type)))) :+: ((C1 ('MetaCons "PADDUSB" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "PADDUSW" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "PADDW" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "PAND" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "PANDN" 'PrefixI 'False) (U1 :: Type -> Type)))))) :+: ((((C1 ('MetaCons "PAUSE" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "PAVGB" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "PAVGW" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "PBLENDW" 'PrefixI 'False) (U1 :: Type -> Type))) :+: ((C1 ('MetaCons "PCLMULQDQ" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "PCMPEQB" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "PCMPEQD" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "PCMPGTB" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "PCMPGTD" 'PrefixI 'False) (U1 :: Type -> Type))))) :+: (((C1 ('MetaCons "PEXTRB" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "PEXTRD" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "PEXTRQ" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "PHADDD" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "PINSRB" 'PrefixI 'False) (U1 :: Type -> Type)))) :+: ((C1 ('MetaCons "PINSRD" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "PINSRQ" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "PMADDWD" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "PMAXSD" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "PMAXSW" 'PrefixI 'False) (U1 :: Type -> Type)))))))) :+: ((((((C1 ('MetaCons "PMAXUB" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "PMAXUD" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "PMAXUQ" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "PMINSD" 'PrefixI 'False) (U1 :: Type -> Type))) :+: ((C1 ('MetaCons "PMINSW" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "PMINUB" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "PMINUD" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "PMOVMSKB" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "PMOVSXDQ" 'PrefixI 'False) (U1 :: Type -> Type))))) :+: (((C1 ('MetaCons "PMOVZXDQ" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "PMOVSXBD" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "PMOVZXBD" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "PMULLD" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "PMULLQ" 'PrefixI 'False) (U1 :: Type -> Type)))) :+: ((C1 ('MetaCons "PMULHUW" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "PMULHW" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "PMULLW" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "PMULUDQ" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "POP" 'PrefixI 'False) (U1 :: Type -> Type)))))) :+: ((((C1 ('MetaCons "POPA" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "POPAD" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "POPF" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "POPFD" 'PrefixI 'False) (U1 :: Type -> Type))) :+: ((C1 ('MetaCons "POPFQ" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "POR" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "PREFETCHNTA" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "PREFETCHT0" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "PREFETCHT1" 'PrefixI 'False) (U1 :: Type -> Type))))) :+: (((C1 ('MetaCons "PREFETCHT2" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "PSADBW" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "PSHUFB" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "PSHUFD" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "PSHUFLW" 'PrefixI 'False) (U1 :: Type -> Type)))) :+: ((C1 ('MetaCons "PSLLD" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "PSLLDQ" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "PSLLQ" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "PSLLW" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "PSRAD" 'PrefixI 'False) (U1 :: Type -> Type))))))) :+: (((((C1 ('MetaCons "PSRAW" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "PSRLD" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "PSRLDQ" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "PSRLQ" 'PrefixI 'False) (U1 :: Type -> Type))) :+: ((C1 ('MetaCons "PSRLW" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "PSUBB" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "PSUBD" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "PSUBQ" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "PSUBSB" 'PrefixI 'False) (U1 :: Type -> Type))))) :+: (((C1 ('MetaCons "PSUBSQ" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "PSUBUSB" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "PSUBUSW" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "PSUBW" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "PTEST" 'PrefixI 'False) (U1 :: Type -> Type)))) :+: ((C1 ('MetaCons "PUNPCKLBW" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "PUNPCKLWD" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "PUNPCKLDQ" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "PUNPCKLQDQ" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "PUSH" 'PrefixI 'False) (U1 :: Type -> Type)))))) :+: ((((C1 ('MetaCons "PUSHA" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "PUSHAD" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "PUSHF" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "PUSHFD" 'PrefixI 'False) (U1 :: Type -> Type))) :+: ((C1 ('MetaCons "PUSHFQ" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "PXOR" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "RCL" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "RCPPS" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "RCPSS" 'PrefixI 'False) (U1 :: Type -> Type))))) :+: (((C1 ('MetaCons "RCR" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "RDMSR" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "RDPMC" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "RDTSC" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "RET" 'PrefixI 'False) (U1 :: Type -> Type)))) :+: ((C1 ('MetaCons "RETF" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "RETN" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "ROL" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "ROR" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "ROUNDSD" 'PrefixI 'False) (U1 :: Type -> Type))))))))) :+: (((((((C1 ('MetaCons "ROUNDSS" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "RSM" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "RSQRTPS" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "RSQRTSS" 'PrefixI 'False) (U1 :: Type -> Type))) :+: ((C1 ('MetaCons "SAHF" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "SAL" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "SAR" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "SBB" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "SCAS" 'PrefixI 'False) (U1 :: Type -> Type))))) :+: (((C1 ('MetaCons "SCASB" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "SCASD" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "SETA" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "SETAE" 'PrefixI 'False) (U1 :: Type -> Type))) :+: ((C1 ('MetaCons "SETB" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "SETBE" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "SETC" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "SETE" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "SETG" 'PrefixI 'False) (U1 :: Type -> Type)))))) :+: ((((C1 ('MetaCons "SETGE" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "SETL" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "SETLE" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "SETNA" 'PrefixI 'False) (U1 :: Type -> Type))) :+: ((C1 ('MetaCons "SETNAE" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "SETNB" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "SETNBE" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "SETNC" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "SETNE" 'PrefixI 'False) (U1 :: Type -> Type))))) :+: (((C1 ('MetaCons "SETNG" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "SETNGE" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "SETNL" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "SETNLE" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "SETNO" 'PrefixI 'False) (U1 :: Type -> Type)))) :+: ((C1 ('MetaCons "SETNP" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "SETNS" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "SETNZ" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "SETO" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "SETP" 'PrefixI 'False) (U1 :: Type -> Type))))))) :+: (((((C1 ('MetaCons "SETPE" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "SETPO" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "SETS" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "SETZ" 'PrefixI 'False) (U1 :: Type -> Type))) :+: ((C1 ('MetaCons "SFENCE" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "SGDT" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "SHL" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "SHLD" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "SHR" 'PrefixI 'False) (U1 :: Type -> Type))))) :+: (((C1 ('MetaCons "SHRD" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "SHUFPS" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "SIDT" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "SLDT" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "SMSW" 'PrefixI 'False) (U1 :: Type -> Type)))) :+: ((C1 ('MetaCons "SQRTPD" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "SQRTPS" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "SQRTSD" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "SQRTSS" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "STC" 'PrefixI 'False) (U1 :: Type -> Type)))))) :+: ((((C1 ('MetaCons "STD" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "STI" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "STMXCSR" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "STOS" 'PrefixI 'False) (U1 :: Type -> Type))) :+: ((C1 ('MetaCons "STOSB" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "STOSD" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "STOSQ" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "STR" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "SUB" 'PrefixI 'False) (U1 :: Type -> Type))))) :+: (((C1 ('MetaCons "SUBPD" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "SUBPS" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "SUBSD" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "SUBSS" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "SWAPGS" 'PrefixI 'False) (U1 :: Type -> Type)))) :+: ((C1 ('MetaCons "SYSCALL" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "SYSENTER" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "SYSEXIT" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "SYSRET" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "TEST" 'PrefixI 'False) (U1 :: Type -> Type)))))))) :+: ((((((C1 ('MetaCons "UCOMISD" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "UCOMISS" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "UD2" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "UNPCKHPD" 'PrefixI 'False) (U1 :: Type -> Type))) :+: ((C1 ('MetaCons "UNPCKHPS" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "UNPCKLPD" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "UNPCKLPS" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "VANDPD" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "VANDPS" 'PrefixI 'False) (U1 :: Type -> Type))))) :+: (((C1 ('MetaCons "VADDPD" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "VADDPS" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "VBLENDPS" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "VERR" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "VERW" 'PrefixI 'False) (U1 :: Type -> Type)))) :+: ((C1 ('MetaCons "VEXTRACTI128" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "VEXTRACTF128" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "VINSERTF128" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "VMCALL" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "VMCLEAR" 'PrefixI 'False) (U1 :: Type -> Type)))))) :+: ((((C1 ('MetaCons "VMLAUNCH" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "VMOVAPD" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "VMOVAPS" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "VMOVHPS" 'PrefixI 'False) (U1 :: Type -> Type))) :+: ((C1 ('MetaCons "VMOVD" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "VMOVDQA" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "VMOVDQU" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "VMOVLHPS" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "VMPTRLD" 'PrefixI 'False) (U1 :: Type -> Type))))) :+: (((C1 ('MetaCons "VMPTRST" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "VMREAD" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "VMRESUME" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "VMWRITE" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "VMULPD" 'PrefixI 'False) (U1 :: Type -> Type)))) :+: ((C1 ('MetaCons "VMULPS" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "VMXOFF" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "VMXON" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "VPALIGNR" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "VPAND" 'PrefixI 'False) (U1 :: Type -> Type))))))) :+: (((((C1 ('MetaCons "VPANDN" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "VPCMPEQB" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "VPCMPEQW" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "VPERM2F128" 'PrefixI 'False) (U1 :: Type -> Type))) :+: ((C1 ('MetaCons "VPERM2I128" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "VPERMILPS" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "VPOR" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "VPSHUFB" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "VPSHUFD" 'PrefixI 'False) (U1 :: Type -> Type))))) :+: (((C1 ('MetaCons "VPSLLW" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "VSHUFPS" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "VSHUFPD" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "VPXOR" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "VPUNPCKLWD" 'PrefixI 'False) (U1 :: Type -> Type)))) :+: ((C1 ('MetaCons "VPUNPCKHWD" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "VSUBPD" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "VSUBPS" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "VUNPCKHPS" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "VUNPCKLPS" 'PrefixI 'False) (U1 :: Type -> Type)))))) :+: ((((C1 ('MetaCons "VXORPD" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "VXORPS" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "VZEROUPPER" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "WAIT" 'PrefixI 'False) (U1 :: Type -> Type))) :+: ((C1 ('MetaCons "WBINVD" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "WRFSBASE" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "WRGSBASE" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "WRMSR" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "XADD" 'PrefixI 'False) (U1 :: Type -> Type))))) :+: (((C1 ('MetaCons "XCHG" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "XGETBV" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "XLAT" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "XLATB" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "XSETBV" 'PrefixI 'False) (U1 :: Type -> Type)))) :+: ((C1 ('MetaCons "XSAVEOPT" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "XRSTOR" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "XOR" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "XORPD" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "XORPS" 'PrefixI 'False) (U1 :: Type -> Type)))))))))))

isJump :: Opcode -> Bool Source #

Returns true iff m is the mnemonic of a jump

isCondJump :: Opcode -> Bool Source #

Returns true iff m is the mnemonic of a conditional jump

isCall :: Opcode -> Bool Source #

Returns true iff m is the mnemonic of a call

isRet :: Opcode -> Bool Source #

Returns true iff m is the mnemonic of a return

isHalt :: Opcode -> Bool Source #

Returns true iff m is the mnemonic of a halting instruction