;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; ;Intel8632Masm.tdf ; ;Intel x86 (32bit) instruction set for MASM ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;以下の記述においてパラメータの記号は次のとおりとする。 ;?nr,?nm,?nx,?ni,?nj,?nh,?nl,?nw,?nc ;n: 番号 0〜9 ;r: 32ビットレジスタ ;m: MMXレジスタ ;x: XMMレジスタ ;i: インデックスレジスタ ;h: 8ビットレジスタ(上位) ;l: 8ビットレジスタ(下位) ;w: 16ビットレジスタ ;c: 定数およびラベル ;s: メモリ (展開するのでなくなる。) ;a: アセンブラ定数 (展開するのでなくなる。) ; 引数の変換規則 ; ?nr ==> (HOLE n R32) とマッチしたレジスタ名に置き換える。 ; ?nm ==> (HOLE n MM) とマッチしたレジスタ名に置き換える。 ; ?nx ==> (HOLE n XMM) とマッチしたレジスタ名に置き換える。 ; ?ni ==> (HOLE n INDEX) とマッチしたレジスタ名に置き換える。 ; ?nh ==> (HOLE n R32) とマッチしたレジスタ名に対応する8ビットレジスタ ; (上位)に置き換える。 ; ?nl ==> (HOLE n R32) とマッチしたレジスタ名に対応する8ビットレジスタ ; (下位)に置き換える。 ; ?nw ==> (HOLE n R32) とマッチしたレジスタ名に対応する16ビットレジス ; タに置き換える。 ; ただし、DEFNAME で定義されたレジスタ以外ならばエラー。 ; ?nb => (HOLE n) とマッチした値に置き換える。 ; ?nc => (HOLE n) とマッチした値に置き換える。 ; ?nv ==> (HOLE n R32) とマッチしたレジスタ名に置き換える。 ; 検索結果の命令においては ?nv を (HOLE n R32) とマッチしたレ ; ジスタ名に対応する番号に置き換える。 (DEFLANG MASM GAS CWASM) (DEFNAME R32 (EAX ECX EDX EBX ESP EBP ESI EDI)) (DEFNAME MM (MM0 MM1 MM2 MM3 MM4 MM5 MM6 MM7)) (DEFNAME XMM (XMM0 XMM1 XMM2 XMM3 XMM4 XMM5 XMM6 XMM7)) (DEFNAME INDEX (EAX EBX ECX EDX EBP ESI EDI)) ;BSWAP(byte swap) ; 32ビットレジスタ の場合 (DEFINST ("BSWAP ?1r" "BSWAP %?1r" "BSWAP ?1r") (PARALLEL (SET (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (SUBREG I8 (REG I32 (HOLE 1 R32)) 3)) (SET (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (SUBREG I8 (REG I32 (HOLE 1 R32)) 2)) (SET (SUBREG I8 (REG I32 (HOLE 1 R32)) 2) (SUBREG I8 (REG I32 (HOLE 1 R32)) 1)) (SET (SUBREG I8 (REG I32 (HOLE 1 R32)) 3) (SUBREG I8 (REG I32 (HOLE 1 R32)) 0)))) ;CBW(convert byte to word) (DEFINST ("CBW" "CBTW" "CBW") (SET (SUBREG I16 (REG I32 EAX) 0) (CONVSX I16 (SUBREG I8 (REG I32 EAX) 0)))) ;CDQ(convert doubleword to quadword) (DEFINST ("CDQ" "CLTD" "CDQ") (SET (REG I32 EDX) (CONVIT I32 (RSHS I64 (CONVSX I64 (REG I32 EAX)) (INTCONST I8 32))))) ;CMOVcc(conditional move) ;より上/より下でなく等しくない(CF=0 & ZF= 0)の場合転送する ;CMOVA/CMOVNBE r16,r16 (DEFINST ("CMOVA ?1w,?2w" "CMOVA %?2w,%?1w" "CMOVA ?1w,?2w") (SET (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (IFTHENELSE I16 (BOR I1 (REG I1 CF) (REG I1 ZF)) (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (SUBREG I16 (REG I32 (HOLE 2 R32)) 0)))) ;CMOVA/CMOVNBE r16,m16 (DEFINST ("CMOVA ?1w,WORD PTR ??2s" "CMOVA ??2s,%?1w" "CMOVA ?1w,WORD PTR ??2s") (SET (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (IFTHENELSE I16 (BOR I1 (REG I1 CF) (REG I1 ZF)) (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (MEM I16 (HOLE 2))))) ;CMOVA/CMOVNBE r32,r32 (DEFINST ("CMOVA ?1r,?2r" "CMOVA %?2r,%?1r" "CMOVA ?1r,?2r") (SET (REG I32 (HOLE 1 R32)) (IFTHENELSE I32 (BOR I1 (REG I1 CF) (REG I1 ZF)) (REG I32 (HOLE 1 R32)) (REG I32 (HOLE 2 R32))))) ;CMOVA/CMOVNBE r32,m32 (DEFINST ("CMOVA ?1r,DWORD PTR ??2s" "CMOVA ??2s,%?1r" "CMOVA ?1r,DWORD PTR ??2s") (SET (REG I32 (HOLE 1 R32)) (IFTHENELSE I32 (BOR I1 (REG I1 CF) (REG I1 ZF)) (REG I32 (HOLE 1 R32)) (MEM I32 (HOLE 2))))) ;CMOVcc(conditional move) ;より上か等しい/より下でない(CF=0)の場合転送する ;CMOVAE/CMOVNB r16,r16 (DEFINST ("CMOVAE ?1w,?2w" "CMOVAE %?2w,%?1w" "CMOVAE ?1w,?2w") (SET (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (IFTHENELSE I16 (REG I1 CF) (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (SUBREG I16 (REG I32 (HOLE 2 R32)) 0)))) ;CMOVAE/CMOVNB r16,m16 (DEFINST ("CMOVAE ?1w,WORD PTR ??2s" "CMOVAE ??2s,%?1w" "CMOVAE ?1w,WORD PTR ??2s") (SET (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (IFTHENELSE I16 (REG I1 CF) (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (MEM I16 (HOLE 2))))) ;CMOVAE/CMOVNB r32,r32 (DEFINST ("CMOVAE ?1r,?2r" "CMOVAE %?2r,%?1r" "CMOVAE ?1r,?2r") (SET (REG I32 (HOLE 1 R32)) (IFTHENELSE I32 (REG I1 CF) (REG I32 (HOLE 1 R32)) (REG I32 (HOLE 2 R32))))) ;CMOVAE/CMOVNB r32,m32 (DEFINST ("CMOVAE ?1r,DWORD PTR ??2s" "CMOVAE ??2s,%?1r" "CMOVAE ?1r,DWORD PTR ??2s") (SET (REG I32 (HOLE 1 R32)) (IFTHENELSE I32 (REG I1 CF) (REG I32 (HOLE 1 R32)) (MEM I32 (HOLE 2))))) ;CMOVcc(conditional move) ;より下/より上でなく等しくない(CF=1)の場合転送する ;CMOVB/CMOVNAE r16,r16 (DEFINST ("CMOVB ?1w,?2w" "CMOVB %?2w,%?1w" "CMOVB ?1w,?2w") (SET (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (IFTHENELSE I16 (REG I1 CF) (SUBREG I16 (REG I32 (HOLE 2 R32)) 0) (SUBREG I16 (REG I32 (HOLE 1 R32)) 0)))) ;CMOVAE/CMOVNB r16,m16 (DEFINST ("CMOVB ?1w,WORD PTR ??2s" "CMOVB ??2s,%?1w" "CMOVB ?1w,WORD PTR ??2s") (SET (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (IFTHENELSE I16 (REG I1 CF) (MEM I16 (HOLE 2)) (SUBREG I16 (REG I32 (HOLE 1 R32)) 0)))) ;CMOVB/CMOVNAE r32,r32 (DEFINST ("CMOVB ?1r,?2r" "CMOVB %?2r,%?1r" "CMOVB ?1r,?2r") (SET (REG I32 (HOLE 1 R32)) (IFTHENELSE I32 (REG I1 CF) (REG I32 (HOLE 2 R32)) (REG I32 (HOLE 1 R32))))) ;CMOVB/CMOVNAE r32,m32 (DEFINST ("CMOVB ?1r,DWORD PTR ??2s" "CMOVB ??2s,%?1r" "CMOVB ?1r,DWORD PTR ??2s") (SET (REG I32 (HOLE 1 R32)) (IFTHENELSE I32 (REG I1 CF) (MEM I32 (HOLE 2)) (REG I32 (HOLE 1 R32))))) ;CMOVcc(conditional move) ;より下か等しい/より上でない(CF=1 | ZF=1)の場合転送する ;CMOVBE/CMOVNA r16,r16 (DEFINST ("CMOVBE ?1w,?2w" "CMOVBE %?2w,%?1w" "CMOVBE ?1w,?2w") (SET (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (IFTHENELSE I16 (BOR I1 (REG I1 CF) (REG I1 ZF)) (SUBREG I16 (REG I32 (HOLE 2 R32)) 0) (SUBREG I16 (REG I32 (HOLE 1 R32)) 0)))) ;CMOVBE/CMOVNA r16,m16 (DEFINST ("CMOVBE ?1w,WORD PTR ??2s" "CMOVBE ??2s,%?1w" "CMOVBE ?1w,WORD PTR ??2s") (SET (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (IFTHENELSE I16 (BOR I1 (REG I1 CF) (REG I1 ZF)) (MEM I16 (HOLE 2)) (SUBREG I16 (REG I32 (HOLE 1 R32)) 0)))) ;CMOVBE/CMOVNA r32,r32 (DEFINST ("CMOVBE ?1r,?2r" "CMOVBE %?2r,%?1r" "CMOVBE ?1r,?2r") (SET (REG I32 (HOLE 1 R32)) (IFTHENELSE I32 (BOR I1 (REG I1 CF) (REG I1 ZF)) (REG I32 (HOLE 2 R32)) (REG I32 (HOLE 1 R32))))) ;CMOVBE/CMOVNA r32,m32 (DEFINST ("CMOVBE ?1r,DWORD PTR ??2s" "CMOVBE ??2s,%?1r" "CMOVBE ?1r,DWORD PTR ??2s") (SET (REG I32 (HOLE 1 R32)) (IFTHENELSE I32 (BOR I1 (REG I1 CF) (REG I1 ZF)) (MEM I32 (HOLE 2)) (REG I32 (HOLE 1 R32))))) ;CMOVcc(conditional move) ;より大きい/より小さくなく等しくない(ZF=0 & SF= OF)の場合転送する ;CMOVG/CMOVNLE r16,r16 (DEFINST ("CMOVG ?1w,?2w" "CMOVG %?2w,%?1w" "CMOVG ?1w,?2w") (SET (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (IFTHENELSE I16 (BOR I1 (REG I1 ZF) (BXOR I1 (REG I1 SF) (REG I1 OF))) (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (SUBREG I16 (REG I32 (HOLE 2 R32)) 0)))) ;CMOVG/CMOVNLE r16,m16 (DEFINST ("CMOVG ?1w,WORD PTR ??2s" "CMOVG ??2s,%?1w" "CMOVG ?1w,WORD PTR ??2s") (SET (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (IFTHENELSE I16 (BOR I1 (REG I1 ZF) (BXOR I1 (REG I1 SF) (REG I1 OF))) (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (MEM I16 (HOLE 2))))) ;CMOVG/CMOVNLE r32,r32 (DEFINST ("CMOVG ?1r,?2r" "CMOVG %?2r,%?1r" "CMOVG ?1r,?2r") (SET (REG I32 (HOLE 1 R32)) (IFTHENELSE I32 (BOR I1 (REG I1 ZF) (BXOR I1 (REG I1 SF) (REG I1 OF))) (REG I32 (HOLE 1 R32)) (REG I32 (HOLE 2 R32))))) ;CMOVG/CMOVNLE r32,m32 (DEFINST ("CMOVG ?1r,DWORD PTR ??2s" "CMOVG ??2s,%?1r" "CMOVG ?1r,DWORD PTR ??2s") (SET (REG I32 (HOLE 1 R32)) (IFTHENELSE I32 (BOR I1 (REG I1 ZF) (BXOR I1 (REG I1 SF) (REG I1 OF))) (REG I32 (HOLE 1 R32)) (MEM I32 (HOLE 2))))) ;CMOVcc(conditional move) ;より大きいか等しい/より小さくない(SF=OF)の場合転送する ;CMOVGE/CMOVNL r16,r16 (DEFINST ("CMOVGE ?1w,?2w" "CMOVGE %?2w,%?1w" "CMOVGE ?1w,?2w") (SET (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (IFTHENELSE I16 (BXOR I1 (REG I1 SF) (REG I1 OF)) (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (SUBREG I16 (REG I32 (HOLE 2 R32)) 0)))) ;CMOVGE/CMOVNL r16,m16 (DEFINST ("CMOVGE ?1w,WORD PTR ??2s" "CMOVGE ??2s,%?1w" "CMOVGE ?1w,WORD PTR ??2s") (SET (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (IFTHENELSE I16 (BXOR I1 (REG I1 SF) (REG I1 OF)) (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (MEM I16 (HOLE 2))))) ;CMOVGE/CMOVNL r32,r32 (DEFINST ("CMOVGE ?1r,?2r" "CMOVGE %?2r,%?1r" "CMOVGE ?1r,?2r") (SET (REG I32 (HOLE 1 R32)) (IFTHENELSE I32 (BXOR I1 (REG I1 SF) (REG I1 OF)) (REG I32 (HOLE 1 R32)) (REG I32 (HOLE 2 R32))))) ;CMOVGE/CMOVNL r32,m32 (DEFINST ("CMOVGE ?1r,DWORD PTR ??2s" "CMOVGE ??2s,%?1r" "CMOVGE ?1r,DWORD PTR ??2s") (SET (REG I32 (HOLE 1 R32)) (IFTHENELSE I32 (BXOR I1 (REG I1 SF) (REG I1 OF)) (REG I32 (HOLE 1 R32)) (MEM I32 (HOLE 2))))) ;CMOVcc(conditional move) ;より小さい/より大きくなく等しくない(SF<>OF)の場合転送する ;CMOVL/CMOVNGE r16,r16 (DEFINST ("CMOVL ?1w,?2w" "CMOVL %?2w,%?1w" "CMOVL ?1w,?2w") (SET (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (IFTHENELSE I16 (BXOR I1 (REG I1 SF) (REG I1 OF)) (SUBREG I16 (REG I32 (HOLE 2 R32)) 0) (SUBREG I16 (REG I32 (HOLE 1 R32)) 0)))) ;CMOVL/CMOVNGE r16,m16 (DEFINST ("CMOVL ?1w,WORD PTR ??2s" "CMOVL ??2s,%?1w" "CMOVL ?1w,WORD PTR ??2s") (SET (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (IFTHENELSE I16 (BXOR I1 (REG I1 SF) (REG I1 OF)) (MEM I16 (HOLE 2)) (SUBREG I16 (REG I32 (HOLE 1 R32)) 0)))) ;CMOVL/CMOVNGE r32,r32 (DEFINST ("CMOVL ?1r,?2r" "CMOVL %?2r,%?1r" "CMOVL ?1r,?2r") (SET (REG I32 (HOLE 1 R32)) (IFTHENELSE I32 (BXOR I1 (REG I1 SF) (REG I1 OF)) (REG I32 (HOLE 2 R32)) (REG I32 (HOLE 1 R32))))) ;CMOVL/CMOVNGE r32,m32 (DEFINST ("CMOVL ?1r,DWORD PTR ??2s" "CMOVL ??2s,%?1r" "CMOVL ?1r,DWORD PTR ??2s") (SET (REG I32 (HOLE 1 R32)) (IFTHENELSE I32 (BXOR I1 (REG I1 SF) (REG I1 OF)) (MEM I32 (HOLE 2)) (REG I32 (HOLE 1 R32))))) ;CMOVcc(conditional move) ;より小さいか等しい/より大きくない(ZF=1|SF<>OF)の場合転送する ;CMOVLE/CMOVNG r16,r16 (DEFINST ("CMOVLE ?1w,?2w" "CMOVLE %?2w,%?1w" "CMOVLE ?1w,?2w") (SET (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (IFTHENELSE I16 (BOR I1 (REG I1 ZF) (BXOR I1 (REG I1 SF) (REG I1 OF))) (SUBREG I16 (REG I32 (HOLE 2 R32)) 0) (SUBREG I16 (REG I32 (HOLE 1 R32)) 0)))) ;CMOVLE/CMOVNG r16,m16 (DEFINST ("CMOVLE ?1w,WORD PTR ??2s" "CMOVLE ??2s,%?1w" "CMOVLE ?1w,WORD PTR ??2s") (SET (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (IFTHENELSE I16 (BOR I1 (REG I1 ZF) (BXOR I1 (REG I1 SF) (REG I1 OF))) (MEM I16 (HOLE 2)) (SUBREG I16 (REG I32 (HOLE 1 R32)) 0)))) ;CMOVLE/CMOVNG r32,r32 (DEFINST ("CMOVLE ?1r,?2r" "CMOVLE %?2r,%?1r" "CMOVLE ?1r,?2r") (SET (REG I32 (HOLE 1 R32)) (IFTHENELSE I32 (BOR I1 (REG I1 ZF) (BXOR I1 (REG I1 SF) (REG I1 OF))) (REG I32 (HOLE 2 R32)) (REG I32 (HOLE 1 R32))))) ;CMOVLE/CMOVNG r32,m32 (DEFINST ("CMOVLE ?1r,DWORD PTR ??2s" "CMOVLE ??2s,%?1r" "CMOVLE ?1r,DWORD PTR ??2s") (SET (REG I32 (HOLE 1 R32)) (IFTHENELSE I32 (BOR I1 (REG I1 ZF) (BXOR I1 (REG I1 SF) (REG I1 OF))) (MEM I32 (HOLE 2)) (REG I32 (HOLE 1 R32))))) ;CMOVcc(conditional move) ;オーバーフローがない(OF=0)場合転送する ;CMOVNO r16,r16 (DEFINST ("CMOVNO ?1w,?2w" "CMOVNO %?2w,%?1w" "CMOVNO ?1w,?2w") (SET (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (IFTHENELSE I16 (REG I1 OF) (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (SUBREG I16 (REG I32 (HOLE 2 R32)) 0)))) ;CMOVNO r16,m16 (DEFINST ("CMOVNO ?1w,WORD PTR ??2s" "CMOVNO ??2s,%?1w" "CMOVNO ?1w,WORD PTR ??2s") (SET (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (IFTHENELSE I16 (REG I1 OF) (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (MEM I16 (HOLE 2))))) ;CMOVNO r32,r32 (DEFINST ("CMOVNO ?1r,?2r" "CMOVNO %?2r,%?1r" "CMOVNO ?1r,?2r") (SET (REG I32 (HOLE 1 R32)) (IFTHENELSE I32 (REG I1 OF) (REG I32 (HOLE 1 R32)) (REG I32 (HOLE 2 R32))))) ;CMOVNO r32,m32 (DEFINST ("CMOVNO ?1r,DWORD PTR ??2s" "CMOVNO ??2s,%?1r" "CMOVNO ?1r,DWORD PTR ??2s") (SET (REG I32 (HOLE 1 R32)) (IFTHENELSE I32 (REG I1 OF) (REG I32 (HOLE 1 R32)) (MEM I32 (HOLE 2))))) ;CMOVcc(conditional move) ;符号がない(SF=0)場合転送する ;CMOVNS r16,r16 (DEFINST ("CMOVNS ?1w,?2w" "CMOVNS %?2w,%?1w" "CMOVNS ?1w,?2w") (SET (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (IFTHENELSE I16 (REG I1 SF) (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (SUBREG I16 (REG I32 (HOLE 2 R32)) 0)))) ;CMOVNS r16,m16 (DEFINST ("CMOVNS ?1w,WORD PTR ??2s" "CMOVNS ??2s,%?1w" "CMOVNS ?1w,WORD PTR ??2s") (SET (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (IFTHENELSE I16 (REG I1 SF) (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (MEM I16 (HOLE 2))))) ;CMOVNS r32,r32 (DEFINST ("CMOVNS ?1r,?2r" "CMOVNS %?2r,%?1r" "CMOVNS ?1r,?2r") (SET (REG I32 (HOLE 1 R32)) (IFTHENELSE I32 (REG I1 SF) (REG I32 (HOLE 1 R32)) (REG I32 (HOLE 2 R32))))) ;CMOVNS r32,m32 (DEFINST ("CMOVNS ?1r,DWORD PTR ??2s" "CMOVNS ??2s,%?1r" "CMOVNS ?1r,DWORD PTR ??2s") (SET (REG I32 (HOLE 1 R32)) (IFTHENELSE I32 (REG I1 SF) (REG I32 (HOLE 1 R32)) (MEM I32 (HOLE 2))))) ;CMOVcc(conditional move) ;等しくない/ゼロでない(ZF=0)の場合転送する ;CMOVNE/CMOVNZ r16,r16 (DEFINST ("CMOVNZ ?1w,?2w" "CMOVNZ %?2w,%?1w" "CMOVNZ ?1w,?2w") (SET (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (IFTHENELSE I16 (REG I1 ZF) (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (SUBREG I16 (REG I32 (HOLE 2 R32)) 0)))) ;CMOVNE/CMOVNZ r16,m16 (DEFINST ("CMOVNZ ?1w,WORD PTR ??2s" "CMOVNZ ??2s,%?1w" "CMOVNZ ?1w,WORD PTR ??2s") (SET (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (IFTHENELSE I16 (REG I1 ZF) (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (MEM I16 (HOLE 2))))) ;CMOVNE/CMOVNZ r32,r32 (DEFINST ("CMOVNZ ?1r,?2r" "CMOVNZ %?2r,%?1r" "CMOVNZ ?1r,?2r") (SET (REG I32 (HOLE 1 R32)) (IFTHENELSE I32 (REG I1 ZF) (REG I32 (HOLE 1 R32)) (REG I32 (HOLE 2 R32))))) ;CMOVNE/CMOVNZ r32,m32 (DEFINST ("CMOVNZ ?1r,DWORD PTR ??2s" "CMOVNZ ??2s,%?1r" "CMOVNZ ?1r,DWORD PTR ??2s") (SET (REG I32 (HOLE 1 R32)) (IFTHENELSE I32 (REG I1 ZF) (REG I32 (HOLE 1 R32)) (MEM I32 (HOLE 2))))) ;CMOVcc(conditional move) ;オーバーフローがある(OF=1)場合転送する ;CMOVO r16,r16 (DEFINST ("CMOVO ?1w,?2w" "CMOVO %?2w,%?1w" "CMOVO ?1w,?2w") (SET (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (IFTHENELSE I16 (REG I1 OF) (SUBREG I16 (REG I32 (HOLE 2 R32)) 0) (SUBREG I16 (REG I32 (HOLE 1 R32)) 0)))) ;CMOVO r16,m16 (DEFINST ("CMOVO ?1w,WORD PTR ??2s" "CMOVO ??2s,%?1w" "CMOVO ?1w,WORD PTR ??2s") (SET (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (IFTHENELSE I16 (REG I1 OF) (MEM I16 (HOLE 2)) (SUBREG I16 (REG I32 (HOLE 1 R32)) 0)))) ;CMOVO r32,r32 (DEFINST ("CMOVO ?1r,?2r" "CMOVO %?2r,%?1r" "CMOVO ?1r,?2r") (SET (REG I32 (HOLE 1 R32)) (IFTHENELSE I32 (REG I1 OF) (REG I32 (HOLE 2 R32)) (REG I32 (HOLE 1 R32))))) ;CMOVO r32,m32 (DEFINST ("CMOVO ?1r,DWORD PTR ??2s" "CMOVO ??2s,%?1r" "CMOVO ?1r,DWORD PTR ??2s") (SET (REG I32 (HOLE 1 R32)) (IFTHENELSE I32 (REG I1 OF) (MEM I32 (HOLE 2)) (REG I32 (HOLE 1 R32))))) ;CMOVcc(conditional move) ;パリティがある/偶数(PF=1)場合転送する ;CMOVP/CMOVPE r16,r16 (DEFINST ("CMOVPE ?1w,?2w" "CMOVP %?2w,%?1w" "CMOVPE ?1w,?2w") (SET (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (IFTHENELSE I16 (REG I1 PF) (SUBREG I16 (REG I32 (HOLE 2 R32)) 0) (SUBREG I16 (REG I32 (HOLE 1 R32)) 0)))) ;CMOVP/CMOVPE r16,m16 (DEFINST ("CMOVPE ?1w,WORD PTR ??2s" "CMOVP ??2s,%?1w" "CMOVPE ?1w,WORD PTR ??2s") (SET (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (IFTHENELSE I16 (REG I1 PF) (MEM I16 (HOLE 2)) (SUBREG I16 (REG I32 (HOLE 1 R32)) 0)))) ;CMOVP/CMOVPE r32,r32 (DEFINST ("CMOVPE ?1r,?2r" "CMOVP %?2r,%?1r" "CMOVPE ?1r,?2r") (SET (REG I32 (HOLE 1 R32)) (IFTHENELSE I32 (REG I1 PF) (REG I32 (HOLE 2 R32)) (REG I32 (HOLE 1 R32))))) ;CMOVP/CMOVPE r32,m32 (DEFINST ("CMOVPE ?1r,DWORD PTR ??2s" "CMOVP ??2s,%?1r" "CMOVPE ?1r,DWORD PTR ??2s") (SET (REG I32 (HOLE 1 R32)) (IFTHENELSE I32 (REG I1 PF) (MEM I32 (HOLE 2)) (REG I32 (HOLE 1 R32))))) ;CMOVcc(conditional move) ;パリティがない/奇数(PF=0)場合転送する ;CMOVNP/CMOVPO r16,r16 (DEFINST ("CMOVPO ?1w,?2w" "CMOVNP %?2w,%?1w" "CMOVPO ?1w,?2w") (SET (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (IFTHENELSE I16 (REG I1 PF) (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (SUBREG I16 (REG I32 (HOLE 2 R32)) 0)))) ;CMOVNP/CMOVPO r16,m16 (DEFINST ("CMOVPO ?1w,WORD PTR ??2s" "CMOVNP ??2s,%?1w" "CMOVPO ?1w,WORD PTR ??2s") (SET (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (IFTHENELSE I16 (REG I1 PF) (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (MEM I16 (HOLE 2))))) ;CMOVNP/CMOVPO r32,r32 (DEFINST ("CMOVPO ?1r,?2r" "CMOVNP %?2r,%?1r" "CMOVPO ?1r,?2r") (SET (REG I32 (HOLE 1 R32)) (IFTHENELSE I32 (REG I1 PF) (REG I32 (HOLE 1 R32)) (REG I32 (HOLE 2 R32))))) ;CMOVNP/CMOVPO r32,m32 (DEFINST ("CMOVPO ?1r,DWORD PTR ??2s" "CMOVNP ??2s,%?1r" "CMOVPO ?1r,DWORD PTR ??2s") (SET (REG I32 (HOLE 1 R32)) (IFTHENELSE I32 (REG I1 PF) (REG I32 (HOLE 1 R32)) (MEM I32 (HOLE 2))))) ;CMOVcc(conditional move) ;符号がある(SF=1)場合転送する ;CMOVS r16,r16 (DEFINST ("CMOVS ?1w,?2w" "CMOVS %?2w,%?1w" "CMOVS ?1w,?2w") (SET (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (IFTHENELSE I16 (REG I1 SF) (SUBREG I16 (REG I32 (HOLE 2 R32)) 0) (SUBREG I16 (REG I32 (HOLE 1 R32)) 0)))) ;CMOVS r16,m16 (DEFINST ("CMOVS ?1w,WORD PTR ??2s" "CMOVS ??2s,%?1w" "CMOVS ?1w,WORD PTR ??2s") (SET (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (IFTHENELSE I16 (REG I1 SF) (MEM I16 (HOLE 2)) (SUBREG I16 (REG I32 (HOLE 1 R32)) 0)))) ;CMOVS r32,r32 (DEFINST ("CMOVS ?1r,?2r" "CMOVS %?2r,%?1r" "CMOVS ?1r,?2r") (SET (REG I32 (HOLE 1 R32)) (IFTHENELSE I32 (REG I1 SF) (REG I32 (HOLE 2 R32)) (REG I32 (HOLE 1 R32))))) ;CMOVS r32,m32 (DEFINST ("CMOVS ?1r,DWORD PTR ??2s" "CMOVS ??2s,%?1r" "CMOVS ?1r,DWORD PTR ??2s") (SET (REG I32 (HOLE 1 R32)) (IFTHENELSE I32 (REG I1 SF) (MEM I32 (HOLE 2)) (REG I32 (HOLE 1 R32))))) ;CMOVcc(conditional move) ;等しい/ゼロ(ZF=1)の場合転送する ;CMOVE/CMOVZ r16,r16 (DEFINST ("CMOVZ ?1w,?2w" "CMOVZ %?2w,%?1w" "CMOVZ ?1w,?2w") (SET (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (IFTHENELSE I16 (REG I1 ZF) (SUBREG I16 (REG I32 (HOLE 2 R32)) 0) (SUBREG I16 (REG I32 (HOLE 1 R32)) 0)))) ;CMOVE/CMOVZ r16,m16 (DEFINST ("CMOVZ ?1w,WORD PTR ??2s" "CMOVZ ??2s,%?1w" "CMOVZ ?1w,WORD PTR ??2s") (SET (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (IFTHENELSE I16 (REG I1 ZF) (MEM I16 (HOLE 2)) (SUBREG I16 (REG I32 (HOLE 1 R32)) 0)))) ;CMOVE/CMOVZ r32,r32 (DEFINST ("CMOVZ ?1r,?2r" "CMOVZ %?2r,%?1r" "CMOVZ ?1r,?2r") (SET (REG I32 (HOLE 1 R32)) (IFTHENELSE I32 (REG I1 ZF) (REG I32 (HOLE 2 R32)) (REG I32 (HOLE 1 R32))))) ;CMOVE/CMOVZ r32,m32 (DEFINST ("CMOVZ ?1r,DWORD PTR ??2s" "CMOVZ ??2s,%?1r" "CMOVZ ?1r,DWORD PTR ??2s") (SET (REG I32 (HOLE 1 R32)) (IFTHENELSE I32 (REG I1 ZF) (MEM I32 (HOLE 2)) (REG I32 (HOLE 1 R32))))) ;CMPXCHG(compare and exchange) ;CMPXCHG r8,r8 (DEFINST ("CMPXCHG ?1l,?2l" "CMPXCHG %?2l,%?1l" "CMPXCHG ?1l,?2l") (PARALLEL (SET (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (IFTHENELSE I8 (TSTEQ I1 (SUBREG I8 (REG I32 EAX) 0) (SUBREG I8 (REG I32 (HOLE 1 R32)) 0)) (SUBREG I8 (REG I32 (HOLE 2 R32)) 0) (SUBREG I8 (REG I32 (HOLE 1 R32)) 0))) (SET (SUBREG I8 (REG I32 EAX) 0) (IFTHENELSE I8 (TSTEQ I1 (SUBREG I8 (REG I32 EAX) 0) (SUBREG I8 (REG I32 (HOLE 1 R32)) 0)) (SUBREG I8 (REG I32 EAX) 0) (SUBREG I8 (REG I32 (HOLE 1 R32)) 0))) (SET (REG I1 CF) (BNOT I1 (CARRY I1 (SUBREG I8 (REG I32 EAX) 0) (BNOT I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0)) (INTCONST I1 1)))) (SET (REG I1 PF) (PARITY I1 (SUB I8 (SUBREG I8 (REG I32 EAX) 0) (SUBREG I8 (REG I32 (HOLE 1 R32)) 0)))) (SET (REG I1 AF) (BNOT I1 (ACARRY I1 (SUBREG I8 (REG I32 EAX) 0) (BNOT I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0)) (INTCONST I1 1)))) (SET (REG I1 ZF) (TSTEQ I1 (SUB I8 (SUBREG I8 (REG I32 EAX) 0) (SUBREG I8 (REG I32 (HOLE 1 R32)) 0)) (INTCONST I8 0))) (SET (REG I1 SF) (TSTLTS I1 (SUB I8 (SUBREG I8 (REG I32 EAX) 0) (SUBREG I8 (REG I32 (HOLE 1 R32)) 0)) (INTCONST I8 0))) (SET (REG I1 OF) (OVERFLOW I1 (SUBREG I8 (REG I32 EAX) 0) (BNOT I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0)) (INTCONST I1 1))))) (DEFINST ("CMPXCHG ?1l,?2h" "CMPXCHG %?2h,%?1l" "CMPXCHG ?1l,?2h") (PARALLEL (SET (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (IFTHENELSE I8 (TSTEQ I1 (SUBREG I8 (REG I32 EAX) 0) (SUBREG I8 (REG I32 (HOLE 1 R32)) 0)) (SUBREG I8 (REG I32 (HOLE 2 R32)) 1) (SUBREG I8 (REG I32 (HOLE 1 R32)) 0))) (SET (SUBREG I8 (REG I32 EAX) 0) (IFTHENELSE I8 (TSTEQ I1 (SUBREG I8 (REG I32 EAX) 0) (SUBREG I8 (REG I32 (HOLE 1 R32)) 0)) (SUBREG I8 (REG I32 EAX) 0) (SUBREG I8 (REG I32 (HOLE 1 R32)) 0))) (SET (REG I1 CF) (BNOT I1 (CARRY I1 (SUBREG I8 (REG I32 EAX) 0) (BNOT I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0)) (INTCONST I1 1)))) (SET (REG I1 PF) (PARITY I1 (SUB I8 (SUBREG I8 (REG I32 EAX) 0) (SUBREG I8 (REG I32 (HOLE 1 R32)) 0)))) (SET (REG I1 AF) (BNOT I1 (ACARRY I1 (SUBREG I8 (REG I32 EAX) 0) (BNOT I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0)) (INTCONST I1 1)))) (SET (REG I1 ZF) (TSTEQ I1 (SUB I8 (SUBREG I8 (REG I32 EAX) 0) (SUBREG I8 (REG I32 (HOLE 1 R32)) 0)) (INTCONST I8 0))) (SET (REG I1 SF) (TSTLTS I1 (SUB I8 (SUBREG I8 (REG I32 EAX) 0) (SUBREG I8 (REG I32 (HOLE 1 R32)) 0)) (INTCONST I8 0))) (SET (REG I1 OF) (OVERFLOW I1 (SUBREG I8 (REG I32 EAX) 0) (BNOT I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0)) (INTCONST I1 1))))) (DEFINST ("CMPXCHG ?1h,?2l" "CMPXCHG %?2l,%?1h" "CMPXCHG ?1h,?2l") (PARALLEL (SET (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (IFTHENELSE I8 (TSTEQ I1 (SUBREG I8 (REG I32 EAX) 0) (SUBREG I8 (REG I32 (HOLE 1 R32)) 1)) (SUBREG I8 (REG I32 (HOLE 2 R32)) 0) (SUBREG I8 (REG I32 (HOLE 1 R32)) 1))) (SET (SUBREG I8 (REG I32 EAX) 0) (IFTHENELSE I8 (TSTEQ I1 (SUBREG I8 (REG I32 EAX) 0) (SUBREG I8 (REG I32 (HOLE 1 R32)) 1)) (SUBREG I8 (REG I32 EAX) 0) (SUBREG I8 (REG I32 (HOLE 1 R32)) 1))) (SET (REG I1 CF) (BNOT I1 (CARRY I1 (SUBREG I8 (REG I32 EAX) 0) (BNOT I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1)) (INTCONST I1 1)))) (SET (REG I1 PF) (PARITY I1 (SUB I8 (SUBREG I8 (REG I32 EAX) 0) (SUBREG I8 (REG I32 (HOLE 1 R32)) 1)))) (SET (REG I1 AF) (BNOT I1 (ACARRY I1 (SUBREG I8 (REG I32 EAX) 0) (BNOT I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1)) (INTCONST I1 1)))) (SET (REG I1 ZF) (TSTEQ I1 (SUB I8 (SUBREG I8 (REG I32 EAX) 0) (SUBREG I8 (REG I32 (HOLE 1 R32)) 1)) (INTCONST I8 0))) (SET (REG I1 SF) (TSTLTS I1 (SUB I8 (SUBREG I8 (REG I32 EAX) 0) (SUBREG I8 (REG I32 (HOLE 1 R32)) 1)) (INTCONST I8 0))) (SET (REG I1 OF) (OVERFLOW I1 (SUBREG I8 (REG I32 EAX) 0) (BNOT I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1)) (INTCONST I1 1))))) (DEFINST ("CMPXCHG ?1h,?2h" "CMPXCHG %?2h,%?1h" "CMPXCHG ?1h,?2h") (PARALLEL (SET (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (IFTHENELSE I8 (TSTEQ I1 (SUBREG I8 (REG I32 EAX) 0) (SUBREG I8 (REG I32 (HOLE 1 R32)) 1)) (SUBREG I8 (REG I32 (HOLE 2 R32)) 1) (SUBREG I8 (REG I32 (HOLE 1 R32)) 1))) (SET (SUBREG I8 (REG I32 EAX) 0) (IFTHENELSE I8 (TSTEQ I1 (SUBREG I8 (REG I32 EAX) 0) (SUBREG I8 (REG I32 (HOLE 1 R32)) 1)) (SUBREG I8 (REG I32 EAX) 0) (SUBREG I8 (REG I32 (HOLE 1 R32)) 1))) (SET (REG I1 CF) (BNOT I1 (CARRY I1 (SUBREG I8 (REG I32 EAX) 0) (BNOT I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1)) (INTCONST I1 1)))) (SET (REG I1 PF) (PARITY I1 (SUB I8 (SUBREG I8 (REG I32 EAX) 0) (SUBREG I8 (REG I32 (HOLE 1 R32)) 1)))) (SET (REG I1 AF) (BNOT I1 (ACARRY I1 (SUBREG I8 (REG I32 EAX) 0) (BNOT I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1)) (INTCONST I1 1)))) (SET (REG I1 ZF) (TSTEQ I1 (SUB I8 (SUBREG I8 (REG I32 EAX) 0) (SUBREG I8 (REG I32 (HOLE 1 R32)) 1)) (INTCONST I8 0))) (SET (REG I1 SF) (TSTLTS I1 (SUB I8 (SUBREG I8 (REG I32 EAX) 0) (SUBREG I8 (REG I32 (HOLE 1 R32)) 1)) (INTCONST I8 0))) (SET (REG I1 OF) (OVERFLOW I1 (SUBREG I8 (REG I32 EAX) 0) (BNOT I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1)) (INTCONST I1 1))))) ;CMPXCHG m8,r8 (DEFINST ("CMPXCHG BYTE PTR ??1s,?2l" "CMPXCHG %?2l,??1s" "CMPXCHG BYTE PTR ??1s,?2l") (PARALLEL (SET (MEM I8 (HOLE 1)) (IFTHENELSE I8 (TSTEQ I1 (SUBREG I8 (REG I32 EAX) 0) (MEM I8 (HOLE 1))) (SUBREG I8 (REG I32 (HOLE 2 R32)) 0) (MEM I8 (HOLE 1)))) (SET (SUBREG I8 (REG I32 EAX) 0) (IFTHENELSE I8 (TSTEQ I1 (SUBREG I8 (REG I32 EAX) 0) (MEM I8 (HOLE 1))) (SUBREG I8 (REG I32 EAX) 0) (MEM I8 (HOLE 1)))) (SET (REG I1 CF) (BNOT I1 (CARRY I1 (SUBREG I8 (REG I32 EAX) 0) (BNOT I8 (MEM I8 (HOLE 1))) (INTCONST I1 1)))) (SET (REG I1 PF) (PARITY I1 (SUB I8 (SUBREG I8 (REG I32 EAX) 0) (MEM I8 (HOLE 1))))) (SET (REG I1 AF) (BNOT I1 (ACARRY I1 (SUBREG I8 (REG I32 EAX) 0) (BNOT I8 (MEM I8 (HOLE 1))) (INTCONST I1 1)))) (SET (REG I1 ZF) (TSTEQ I1 (SUB I8 (SUBREG I8 (REG I32 EAX) 0) (MEM I8 (HOLE 1))) (INTCONST I8 0))) (SET (REG I1 SF) (TSTLTS I1 (SUB I8 (SUBREG I8 (REG I32 EAX) 0) (MEM I8 (HOLE 1))) (INTCONST I8 0))) (SET (REG I1 OF) (OVERFLOW I1 (SUBREG I8 (REG I32 EAX) 0) (BNOT I8 (MEM I8 (HOLE 1))) (INTCONST I1 1))))) (DEFINST ("CMPXCHG BYTE PTR ??1s,?2h" "CMPXCHG %?2h,??1s" "CMPXCHG BYTE PTR ??1s,?2h") (PARALLEL (SET (MEM I8 (HOLE 1)) (IFTHENELSE I8 (TSTEQ I1 (SUBREG I8 (REG I32 EAX) 0) (MEM I8 (HOLE 1))) (SUBREG I8 (REG I32 (HOLE 2 R32)) 1) (MEM I8 (HOLE 1)))) (SET (SUBREG I8 (REG I32 EAX) 0) (IFTHENELSE I8 (TSTEQ I1 (SUBREG I8 (REG I32 EAX) 0) (MEM I8 (HOLE 1))) (SUBREG I8 (REG I32 EAX) 0) (MEM I8 (HOLE 1)))) (SET (REG I1 CF) (BNOT I1 (CARRY I1 (SUBREG I8 (REG I32 EAX) 0) (BNOT I8 (MEM I8 (HOLE 1))) (INTCONST I1 1)))) (SET (REG I1 PF) (PARITY I1 (SUB I8 (SUBREG I8 (REG I32 EAX) 0) (MEM I8 (HOLE 1))))) (SET (REG I1 AF) (BNOT I1 (ACARRY I1 (SUBREG I8 (REG I32 EAX) 0) (BNOT I8 (MEM I8 (HOLE 1))) (INTCONST I1 1)))) (SET (REG I1 ZF) (TSTEQ I1 (SUB I8 (SUBREG I8 (REG I32 EAX) 0) (MEM I8 (HOLE 1))) (INTCONST I8 0))) (SET (REG I1 SF) (TSTLTS I1 (SUB I8 (SUBREG I8 (REG I32 EAX) 0) (MEM I8 (HOLE 1))) (INTCONST I8 0))) (SET (REG I1 OF) (OVERFLOW I1 (SUBREG I8 (REG I32 EAX) 0) (BNOT I8 (MEM I8 (HOLE 1))) (INTCONST I1 1))))) ;CMPXCHG r16,r16 (DEFINST ("CMPXCHG ?1w,?2w" "CMPXCHG %?2w,%?1w" "CMPXCHG ?1w,?2w") (PARALLEL (SET (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (IFTHENELSE I16 (TSTEQ I1 (SUBREG I16 (REG I32 EAX) 0) (SUBREG I16 (REG I32 (HOLE 1 R32)) 0)) (SUBREG I16 (REG I32 (HOLE 2 R32)) 0) (SUBREG I16 (REG I32 (HOLE 1 R32)) 0))) (SET (SUBREG I16 (REG I32 EAX) 0) (IFTHENELSE I16 (TSTEQ I1 (SUBREG I16 (REG I32 EAX) 0) (SUBREG I16 (REG I32 (HOLE 1 R32)) 0)) (SUBREG I16 (REG I32 EAX) 0) (SUBREG I16 (REG I32 (HOLE 1 R32)) 0))) (SET (REG I1 CF) (BNOT I1 (CARRY I1 (SUBREG I16 (REG I32 EAX) 0) (BNOT I16 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0)) (INTCONST I1 1)))) (SET (REG I1 PF) (PARITY I1 (CONVIT I8 (SUB I16 (SUBREG I16 (REG I32 EAX) 0) (SUBREG I16 (REG I32 (HOLE 1 R32)) 0))))) (SET (REG I1 AF) (BNOT I1 (ACARRY I1 (SUBREG I16 (REG I32 EAX) 0) (BNOT I16 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0)) (INTCONST I1 1)))) (SET (REG I1 ZF) (TSTEQ I1 (SUB I16 (SUBREG I16 (REG I32 EAX) 0) (SUBREG I16 (REG I32 (HOLE 1 R32)) 0)) (INTCONST I16 0))) (SET (REG I1 SF) (TSTLTS I1 (SUB I16 (SUBREG I16 (REG I32 EAX) 0) (SUBREG I16 (REG I32 (HOLE 1 R32)) 0)) (INTCONST I16 0))) (SET (REG I1 OF) (OVERFLOW I1 (SUBREG I16 (REG I32 EAX) 0) (BNOT I16 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0)) (INTCONST I1 1))))) ;CMPXCHG m16,r16 (DEFINST ("CMPXCHG WORD PTR ??1s,?2w" "CMPXCHG %?2w,??1s" "CMPXCHG WORD PTR ??1s,?2w") (PARALLEL (SET (MEM I16 (HOLE 1)) (IFTHENELSE I16 (TSTEQ I1 (SUBREG I16 (REG I32 EAX) 0) (MEM I16 (HOLE 1))) (SUBREG I16 (REG I32 (HOLE 2 R32)) 0) (MEM I16 (HOLE 1)))) (SET (SUBREG I16 (REG I32 EAX) 0) (IFTHENELSE I16 (TSTEQ I1 (SUBREG I16 (REG I32 EAX) 0) (MEM I16 (HOLE 1))) (SUBREG I16 (REG I32 EAX) 0) (MEM I16 (HOLE 1)))) (SET (REG I1 CF) (BNOT I1 (CARRY I1 (SUBREG I16 (REG I32 EAX) 0) (BNOT I16 (MEM I16 (HOLE 1))) (INTCONST I1 1)))) (SET (REG I1 PF) (PARITY I1 (CONVIT I8 (SUB I16 (SUBREG I16 (REG I32 EAX) 0) (MEM I16 (HOLE 1)))))) (SET (REG I1 AF) (BNOT I1 (ACARRY I1 (SUBREG I16 (REG I32 EAX) 0) (BNOT I16 (MEM I16 (HOLE 1))) (INTCONST I1 1)))) (SET (REG I1 ZF) (TSTEQ I1 (SUB I16 (SUBREG I16 (REG I32 EAX) 0) (MEM I16 (HOLE 1))) (INTCONST I16 0))) (SET (REG I1 SF) (TSTLTS I1 (SUB I16 (SUBREG I16 (REG I32 EAX) 0) (MEM I16 (HOLE 1))) (INTCONST I16 0))) (SET (REG I1 OF) (OVERFLOW I1 (SUBREG I16 (REG I32 EAX) 0) (BNOT I16 (MEM I16 (HOLE 1))) (INTCONST I1 1))))) ;CMPXCHG r32,r32 (DEFINST ("CMPXCHG ?1r,?2r" "CMPXCHG %?2r,%?1r" "CMPXCHG ?1r,?2r") (PARALLEL (SET (REG I32 (HOLE 1 R32)) (IFTHENELSE I32 (TSTEQ I1 (REG I32 EAX) (REG I32 (HOLE 1 R32))) (REG I32 (HOLE 2 R32)) (REG I32 (HOLE 1 R32)))) (SET (REG I32 EAX) (IFTHENELSE I32 (TSTEQ I1 (REG I32 EAX) (REG I32 (HOLE 1 R32))) (REG I32 EAX) (REG I32 (HOLE 1 R32)))) (SET (REG I1 CF) (BNOT I1 (CARRY I1 (REG I32 EAX) (BNOT I32 (REG I32 (HOLE 1 R32))) (INTCONST I1 1)))) (SET (REG I1 PF) (PARITY I1 (CONVIT I8 (SUB I32 (REG I32 EAX) (REG I32 (HOLE 1 R32)))))) (SET (REG I1 AF) (BNOT I1 (ACARRY I1 (REG I32 EAX) (BNOT I32 (REG I32 (HOLE 1 R32))) (INTCONST I1 1)))) (SET (REG I1 ZF) (TSTEQ I1 (SUB I32 (REG I32 EAX) (REG I32 (HOLE 1 R32))) (INTCONST I32 0))) (SET (REG I1 SF) (TSTLTS I1 (SUB I32 (REG I32 EAX) (REG I32 (HOLE 1 R32))) (INTCONST I32 0))) (SET (REG I1 OF) (OVERFLOW I1 (REG I32 EAX) (BNOT I32 (REG I32 (HOLE 1 R32))) (INTCONST I1 1))))) ;CMPXCHG m32,r32 (DEFINST ("CMPXCHG DWORD PTR ??1s,?2r" "CMPXCHG %?2r,??1s" "CMPXCHG DWORD PTR ??1s,?2r") (PARALLEL (SET (MEM I32 (HOLE 1)) (IFTHENELSE I32 (TSTEQ I1 (REG I32 EAX) (MEM I32 (HOLE 1))) (REG I32 (HOLE 2 R32)) (MEM I32 (HOLE 1)))) (SET (REG I32 EAX) (IFTHENELSE I32 (TSTEQ I1 (REG I32 EAX) (MEM I32 (HOLE 1))) (REG I32 EAX) (MEM I32 (HOLE 1)))) (SET (REG I1 CF) (BNOT I1 (CARRY I1 (REG I32 EAX) (BNOT I32 (MEM I32 (HOLE 1))) (INTCONST I1 1)))) (SET (REG I1 PF) (PARITY I1 (CONVIT I8 (SUB I32 (REG I32 EAX) (MEM I32 (HOLE 1)))))) (SET (REG I1 AF) (BNOT I1 (ACARRY I1 (REG I32 EAX) (BNOT I32 (MEM I32 (HOLE 1))) (INTCONST I1 1)))) (SET (REG I1 ZF) (TSTEQ I1 (SUB I32 (REG I32 EAX) (MEM I32 (HOLE 1))) (INTCONST I32 0))) (SET (REG I1 SF) (TSTLTS I1 (SUB I32 (REG I32 EAX) (MEM I32 (HOLE 1))) (INTCONST I32 0))) (SET (REG I1 OF) (OVERFLOW I1 (REG I32 EAX) (BNOT I32 (MEM I32 (HOLE 1))) (INTCONST I1 1))))) ;CMPXCHG8B(compare and exchange 8 bytes) ;CMPXCHG8B m64 (DEFINST ("CMPXCHG8B QWORD PTR ??1s" "CMPXCHG8B ??1s" "CMPXCHG8B QWORD PTR ??1s") (PARALLEL (SET (SUBREG I32 (MEM I64 (HOLE 1)) 0) (IFTHENELSE I32 (BAND I1 (TSTEQ I1 (SUBREG I32 (MEM I64 (HOLE 1)) 0) (REG I32 EAX)) (TSTEQ I1 (SUBREG I32 (MEM I64 (HOLE 1)) 1) (REG I32 EDX))) (REG I32 EBX) (SUBREG I32 (MEM I64 (HOLE 1)) 0))) (SET (SUBREG I32 (MEM I64 (HOLE 1)) 1) (IFTHENELSE I32 (BAND I1 (TSTEQ I1 (SUBREG I32 (MEM I64 (HOLE 1)) 0) (REG I32 EAX)) (TSTEQ I1 (SUBREG I32 (MEM I64 (HOLE 1)) 1) (REG I32 EDX))) (REG I32 ECX) (SUBREG I32 (MEM I64 (HOLE 1)) 1))) (SET (REG I32 EAX) (IFTHENELSE I32 (BAND I1 (TSTEQ I1 (SUBREG I32 (MEM I64 (HOLE 1)) 0) (REG I32 EAX)) (TSTEQ I1 (SUBREG I32 (MEM I64 (HOLE 1)) 1) (REG I32 EDX))) (REG I32 EAX) (SUBREG I32 (MEM I64 (HOLE 1)) 0))) (SET (REG I32 EDX) (IFTHENELSE I32 (BAND I1 (TSTEQ I1 (SUBREG I32 (MEM I64 (HOLE 1)) 0) (REG I32 EAX)) (TSTEQ I1 (SUBREG I32 (MEM I64 (HOLE 1)) 1) (REG I32 EDX))) (REG I32 EDX) (SUBREG I32 (MEM I64 (HOLE 1)) 1))) (SET (REG I1 ZF) (BAND I1 (TSTEQ I1 (SUBREG I32 (MEM I64 (HOLE 1)) 0) (REG I32 EAX)) (TSTEQ I1 (SUBREG I32 (MEM I64 (HOLE 1)) 1) (REG I32 EDX)))))) ;CWD(convert word to double word) (DEFINST ("CWD" "CWTD" "CWD") (SET (SUBREG I16 (REG I32 EDX) 0) (CONVIT I16 (RSHS I32 (CONVSX I32 (SUBREG I16 (REG I32 EAX) 0)) (INTCONST I8 16))))) ;CWDE(convert word to doubleword extended) (DEFINST ("CWDE" "CWTL" "CWDE") (SET (REG I32 EAX) (CONVSX I32 (SUBREG I16 (REG I32 EAX) 0)))) ;MOV(move) ;MOV r8,r8 (DEFINST ("MOV ?1l,?2l" "MOV %?2l,%?1l" "MOV ?1l,?2l") (SET (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (SUBREG I8 (REG I32 (HOLE 2 R32)) 0))) (DEFINST ("MOV ?1l,?2h" "MOV %?2h,%?1l" "MOV ?1l,?2h") (SET (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (SUBREG I8 (REG I32 (HOLE 2 R32)) 1))) (DEFINST ("MOV ?1h,?2l" "MOV %?2l,%?1h" "MOV ?1h,?2l") (SET (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (SUBREG I8 (REG I32 (HOLE 2 R32)) 0))) (DEFINST ("MOV ?1h,?2h" "MOV %?2h,%?1h" "MOV ?1h,?2h") (SET (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (SUBREG I8 (REG I32 (HOLE 2 R32)) 1))) ;MOV r16,r16 (DEFINST ("MOV ?1w,?2w" "MOV %?2w,%?1w" "MOV ?1w,?2w") (SET (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (SUBREG I16 (REG I32 (HOLE 2 R32)) 0))) ;MOV r32,r32 (DEFINST ("MOV ?1r,?2r" "MOV %?2r,%?1r" "MOV ?1r,?2r") (SET (REG I32 (HOLE 1 R32)) (REG I32 (HOLE 2 R32)))) ;MOV m8,r8 (DEFINST ("MOV BYTE PTR ??1s,?2l" "MOV %?2l,??1s" "MOV BYTE PTR ??1s,?2l") (SET (MEM I8 (HOLE 1)) (SUBREG I8 (REG I32 (HOLE 2 R32)) 0))) (DEFINST ("MOV BYTE PTR ??1s,?2h" "MOV %?2h,??1s" "MOV BYTE PTR ??1s,?2h") (SET (MEM I8 (HOLE 1)) (SUBREG I8 (REG I32 (HOLE 2 R32)) 1))) ;MOV m16,r16 (DEFINST ("MOV WORD PTR ??1s,?2w" "MOV %?2w,??1s" "MOV WORD PTR ??1s,?2w") (SET (MEM I16 (HOLE 1)) (SUBREG I16 (REG I32 (HOLE 2 R32)) 0))) ;MOV m32,r32 (DEFINST ("MOV DWORD PTR ??1s,?2r" "MOV %?2r,??1s" "MOV DWORD PTR ??1s,?2r") (SET (MEM I32 (HOLE 1)) (REG I32 (HOLE 2 R32)))) ;MOV r8,m8 (DEFINST ("MOV ?1l,BYTE PTR ??2s" "MOV ??2s,%?1l" "MOV ?1l,BYTE PTR ??2s") (SET (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (MEM I8 (HOLE 2)))) (DEFINST ("MOV ?1h,BYTE PTR ??2s" "MOV ??2s,%?1h" "MOV ?1h,BYTE PTR ??2s") (SET (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (MEM I8 (HOLE 2)))) ;MOV r16,m16 (DEFINST ("MOV ?1w,WORD PTR ??2s" "MOV ??2s,%?1w" "MOV ?1w,WORD PTR ??2s") (SET (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (MEM I16 (HOLE 2)))) ;MOV r32,m32 (DEFINST ("MOV ?1r,DWORD PTR ??2s" "MOV ??2s,%?1r" "MOV ?1r,DWORD PTR ??2s") (SET (REG I32 (HOLE 1 R32)) (MEM I32 (HOLE 2)))) ;MOV r8,imm8 (DEFINST ("MOV ?1l,?2c" "MOV $?2c,%?1l" "MOV ?1l,?2c") (SET (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (INTCONST I8 (HOLE 2)))) (DEFINST ("MOV ?1h,?2c" "MOV $?2c,%?1h" "MOV ?1h,?2c") (SET (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (INTCONST I8 (HOLE 2)))) ;MOV r16,imm16 (DEFINST ("MOV ?1w,?2c" "MOV $?2c,%?1w" "MOV ?1w,?2c") (SET (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (INTCONST I16 (HOLE 2)))) ;MOV r32,imm32 (DEFINST ("MOV ?1r,?2c" "MOV $?2c,%?1r" "MOV ?1r,?2c") (SET (REG I32 (HOLE 1 R32)) (INTCONST I32 (HOLE 2)))) (DEFINST ("MOV ?1r,??2a" "MOV $??2a,%?1r" "MOV ?1r,??2a") (SET (REG I32 (HOLE 1 R32)) (HOLE 2))) ;MOV m8,imm8 (DEFINST ("MOV BYTE PTR ??1s,?2c" "MOVB $?2c,??1s" "MOV BYTE PTR ??1s,?2c") (SET (MEM I8 (HOLE 1)) (INTCONST I8 (HOLE 2)))) ;MOV m16,imm16 (DEFINST ("MOV WORD PTR ??1s,?2c" "MOVW $?2c,??1s" "MOV WORD PTR ??1s,?2c") (SET (MEM I16 (HOLE 1)) (INTCONST I16 (HOLE 2)))) ;MOV m32,imm32 (DEFINST ("MOV DWORD PTR ??1s,?2c" "MOVL $?2c,??1s" "MOV DWORD PTR ??1s,?2c") (SET (MEM I32 (HOLE 1)) (INTCONST I32 (HOLE 2)))) (DEFINST ("MOV DWORD PTR ??1s,??2a" "MOVL $??2a,??1s" "MOV DWORD PTR ??1s,??2a") (SET (MEM I32 (HOLE 1)) (HOLE 2))) ;MOVSX(move with sign extension) ;MOVSX r16,r8 (DEFINST ("MOVSX ?1w,?2l" "MOVSBW %?2l,%?1w" "MOVSX ?1w,?2l") (SET (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (CONVSX I16 (SUBREG I8 (REG I32 (HOLE 2 R32)) 0)))) (DEFINST ("MOVSX ?1w,?2h" "MOVSBW %?2h,%?1w" "MOVSX ?1w,?2h") (SET (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (CONVSX I16 (SUBREG I8 (REG I32 (HOLE 2 R32)) 1)))) ;MOVSX r16,m8 (DEFINST ("MOVSX ?1w,BYTE PTR ??2s" "MOVSBW ??2s,%?1w" "MOVSX ?1w,BYTE PTR ??2s") (SET (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (CONVSX I16 (MEM I8 (HOLE 2))))) ;MOVSX r32,r8 (DEFINST ("MOVSX ?1r,?2l" "MOVSBL %?2l,%?1r" "MOVSX ?1r,?2l") (SET (REG I32 (HOLE 1 R32)) (CONVSX I32 (SUBREG I8 (REG I32 (HOLE 2 R32)) 0)))) (DEFINST ("MOVSX ?1r,?2h" "MOVSBL %?2h,%?1r" "MOVSX ?1r,?2h") (SET (REG I32 (HOLE 1 R32)) (CONVSX I32 (SUBREG I8 (REG I32 (HOLE 2 R32)) 1)))) ;MOVSX r32,m8 (DEFINST ("MOVSX ?1r,BYTE PTR ??2s" "MOVSBL ??2s,%?1r" "MOVSX ?1r,BYTE PTR ??2s") (SET (REG I32 (HOLE 1 R32)) (CONVSX I32 (MEM I8 (HOLE 2))))) ;MOVSX r32,r16 (DEFINST ("MOVSX ?1r,?2w" "MOVSWL %?2w,%?1r" "MOVSX ?1r,?2w") (SET (REG I32 (HOLE 1 R32)) (CONVSX I32 (SUBREG I16 (REG I32 (HOLE 2 R32)) 0)))) ;MOVSX r32,m16 (DEFINST ("MOVSX ?1r,WORD PTR ??2s" "MOVSWL ??2s,%?1r" "MOVSX ?1r,WORD PTR ??2s") (SET (REG I32 (HOLE 1 R32)) (CONVSX I32 (MEM I16 (HOLE 2))))) ;MOVZX(move with zero extension) ;MOVZX r16,r8 (DEFINST ("MOVZX ?1w,?2l" "MOVZBW %?2l,%?1w" "MOVZX ?1w,?2l") (SET (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (CONVZX I16 (SUBREG I8 (REG I32 (HOLE 2 R32)) 0)))) (DEFINST ("MOVZX ?1w,?2h" "MOVZBW %?2h,%?1w" "MOVZX ?1w,?2h") (SET (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (CONVZX I16 (SUBREG I8 (REG I32 (HOLE 2 R32)) 1)))) ;MOVZX r16,m8 (DEFINST ("MOVZX ?1w,BYTE PTR ??2s" "MOVZBW ??2s,%?1w" "MOVZX ?1w,BYTE PTR ??2s") (SET (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (CONVZX I16 (MEM I8 (HOLE 2))))) ;MOVZX r32,r8 (DEFINST ("MOVZX ?1r,?2l" "MOVZBL %?2l,%?1r" "MOVZX ?1r,?2l") (SET (REG I32 (HOLE 1 R32)) (CONVZX I32 (SUBREG I8 (REG I32 (HOLE 2 R32)) 0)))) (DEFINST ("MOVZX ?1r,?2h" "MOVZBL %?2h,%?1r" "MOVZX ?1r,?2h") (SET (REG I32 (HOLE 1 R32)) (CONVZX I32 (SUBREG I8 (REG I32 (HOLE 2 R32)) 1)))) ;MOVZX r32,m8 (DEFINST ("MOVZX ?1r,BYTE PTR ??2s" "MOVZBL ??2s,%?1r" "MOVZX ?1r,BYTE PTR ??2s") (SET (REG I32 (HOLE 1 R32)) (CONVZX I32 (MEM I8 (HOLE 2))))) ;MOVZX r32,r16 (DEFINST ("MOVZX ?1r,?2w" "MOVZWL %?2w,%?1r" "MOVZX ?1r,?2w") (SET (REG I32 (HOLE 1 R32)) (CONVZX I32 (SUBREG I16 (REG I32 (HOLE 2 R32)) 0)))) ;MOVZX r32,m16 (DEFINST ("MOVZX ?1r,WORD PTR ??2s" "MOVZWL ??2s,%?1r" "MOVZX ?1r,WORD PTR ??2s") (SET (REG I32 (HOLE 1 R32)) (CONVZX I32 (MEM I16 (HOLE 2))))) ;POP(Pop a Value from the Stack) ; pop m16 (DEFINST ("POP WORD PTR ??1s" "POPW ??1s" "POP WORD PTR ??1s") (PARALLEL (SET (MEM I16 (HOLE 1)) (MEM I16 (REG I32 ESP))) (SET (REG I32 ESP) (ADD I32 (REG I32 ESP) (INTCONST I32 2))))) ;pop m32 (DEFINST ("POP DWORD PTR ??1s" "POP ??1s" "POP DWORD PTR ??1s") (PARALLEL (SET (MEM I32 (HOLE 1)) (MEM I32 (REG I32 ESP))) (SET (REG I32 ESP) (ADD I32 (REG I32 ESP) (INTCONST I32 4))))) ;pop r16 (DEFINST ("POP ?1w" "POP %?1w" "POP ?1w") (PARALLEL (SET (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (MEM I16 (REG I32 ESP))) (SET (REG I32 ESP) (ADD I32 (REG I32 ESP) (INTCONST I32 2))))) ;pop r32 (DEFINST ("POP ?1r" "POP %?1r" "POP ?1r") (PARALLEL (SET (REG I32 (HOLE 1 R32)) (MEM I32 (REG I32 ESP))) (SET (REG I32 ESP) (ADD I32 (REG I32 ESP) (INTCONST I32 4))))) ;POPA(Pop All GeneralPurpose registers) ; POPA (DEFINST ("POPA" "POPA" "POPA") (PARALLEL (SET (SUBREG I16 (REG I32 EDI) 0) (MEM I16 (REG I32 ESP))) (SET (SUBREG I16 (REG I32 ESI) 0) (MEM I16 (ADD I32 (REG I32 ESP) (INTCONST I32 2)))) (SET (SUBREG I16 (REG I32 EBP) 0) (MEM I16 (ADD I32 (REG I32 ESP) (INTCONST I32 4)))) (SET (SUBREG I16 (REG I32 EBX) 0) (MEM I16 (ADD I32 (REG I32 ESP) (INTCONST I32 8)))) (SET (SUBREG I16 (REG I32 EDX) 0) (MEM I16 (ADD I32 (REG I32 ESP) (INTCONST I32 10)))) (SET (SUBREG I16 (REG I32 ECX) 0) (MEM I16 (ADD I32 (REG I32 ESP) (INTCONST I32 12)))) (SET (SUBREG I16 (REG I32 EAX) 0) (MEM I16 (ADD I32 (REG I32 ESP) (INTCONST I32 14)))) (SET (REG I32 ESP) (ADD I32 (REG I32 ESP) (INTCONST I32 16))))) ;POPAD(Pop All GeneralPurpose registers) ; POPAD (DEFINST ("POPAD" "POPAL" "POPAD") (PARALLEL (SET (REG I32 EDI) (MEM I32 (REG I32 ESP))) (SET (REG I32 ESI) (MEM I32 (ADD I32 (REG I32 ESP) (INTCONST I32 4)))) (SET (REG I32 EBP) (MEM I32 (ADD I32 (REG I32 ESP) (INTCONST I32 8)))) (SET (REG I32 EBX) (MEM I32 (ADD I32 (REG I32 ESP) (INTCONST I32 16)))) (SET (REG I32 EDX) (MEM I32 (ADD I32 (REG I32 ESP) (INTCONST I32 20)))) (SET (REG I32 ECX) (MEM I32 (ADD I32 (REG I32 ESP) (INTCONST I32 24)))) (SET (REG I32 EAX) (MEM I32 (ADD I32 (REG I32 ESP) (INTCONST I32 28)))) (SET (REG I32 ESP) (ADD I32 (REG I32 ESP) (INTCONST I32 32))))) ;PUSH(Push a Value onto the Stack) ; push m16 (DEFINST ("PUSH WORD PTR ??1s" "PUSHW ??1s" "PUSH WORD PTR ??1s") (PARALLEL (SET (MEM I16 (SUB I32 (REG I32 ESP) (INTCONST I32 2))) (MEM I16 (HOLE 1))) (SET (REG I32 ESP) (SUB I32 (REG I32 ESP) (INTCONST I32 2))))) ;push m32 (DEFINST ("PUSH DWORD PTR ??1s" "PUSH ??1s" "PUSH DWORD PTR ??1s") (PARALLEL (SET (MEM I32 (SUB I32 (REG I32 ESP) (INTCONST I32 4))) (MEM I32 (HOLE 1))) (SET (REG I32 ESP) (SUB I32 (REG I32 ESP) (INTCONST I32 4))))) ;push r16 (DEFINST ("PUSH ?1w" "PUSH %?1w" "PUSH ?1w") (PARALLEL (SET (MEM I16 (SUB I32 (REG I32 ESP) (INTCONST I32 2))) (SUBREG I16 (REG I32 (HOLE 1 R32)) 0)) (SET (REG I32 ESP) (SUB I32 (REG I32 ESP) (INTCONST I32 2))))) ;push r32 (DEFINST ("PUSH ?1r" "PUSH %?1r" "PUSH ?1r") (PARALLEL (SET (MEM I32 (SUB I32 (REG I32 ESP) (INTCONST I32 4))) (REG I32 (HOLE 1 R32))) (SET (REG I32 ESP) (SUB I32 (REG I32 ESP) (INTCONST I32 4))))) ;push imm16 (DEFINST ("PUSH WORD PTR ?1c" "PUSHW $?1c" "PUSH WORD PTR ?1c") (PARALLEL (SET (MEM I16 (SUB I32 (REG I32 ESP) (INTCONST I32 2))) (INTCONST I16 (HOLE 1))) (SET (REG I32 ESP) (SUB I32 (REG I32 ESP) (INTCONST I32 2))))) ;push imm32 (DEFINST ("PUSH DWORD PTR ?1c" "PUSH $?1c" "PUSH DWORD PTR ?1c") (PARALLEL (SET (MEM I32 (SUB I32 (REG I32 ESP) (INTCONST I32 4))) (INTCONST I32 (HOLE 1))) (SET (REG I32 ESP) (SUB I32 (REG I32 ESP) (INTCONST I32 4))))) (DEFINST ("PUSH ??1a" "PUSH $??1a" "PUSH ??1a") (PARALLEL (SET (MEM I32 (SUB I32 (REG I32 ESP) (INTCONST I32 4))) (HOLE 1)) (SET (REG I32 ESP) (SUB I32 (REG I32 ESP) (INTCONST I32 4))))) ;PUSHA(Push All GEneral-Purpose REgisters) ; PUSHA (DEFINST ("PUSHA" "PUSHA" "PUSHA") (PARALLEL (SET (MEM I16 (SUB I32 (REG I32 ESP) (INTCONST I32 2))) (SUBREG I16 (REG I32 EAX) 0)) (SET (MEM I16 (SUB I32 (REG I32 ESP) (INTCONST I32 4))) (SUBREG I16 (REG I32 ECX) 0)) (SET (MEM I16 (SUB I32 (REG I32 ESP) (INTCONST I32 6))) (SUBREG I16 (REG I32 EDX) 0)) (SET (MEM I16 (SUB I32 (REG I32 ESP) (INTCONST I32 8))) (SUBREG I16 (REG I32 EBX) 0)) (SET (MEM I16 (SUB I32 (REG I32 ESP) (INTCONST I32 10))) (SUBREG I16 (REG I32 ESP) 0)) (SET (MEM I16 (SUB I32 (REG I32 ESP) (INTCONST I32 12))) (SUBREG I16 (REG I32 EBP) 0)) (SET (MEM I16 (SUB I32 (REG I32 ESP) (INTCONST I32 14))) (SUBREG I16 (REG I32 ESI) 0)) (SET (MEM I16 (SUB I32 (REG I32 ESP) (INTCONST I32 16))) (SUBREG I16 (REG I32 EDI) 0)) (SET (REG I32 ESP) (SUB I32 (REG I32 ESP) (INTCONST I32 16))))) ;PUSHAD(Push All GEneral-Purpose REgisters) ; PUSHAD (DEFINST ("PUSHAD" "PUSHAL" "PUSHAD") (PARALLEL (SET (MEM I32 (SUB I32 (REG I32 ESP) (INTCONST I32 4))) (REG I32 EAX)) (SET (MEM I32 (SUB I32 (REG I32 ESP) (INTCONST I32 8))) (REG I32 ECX)) (SET (MEM I32 (SUB I32 (REG I32 ESP) (INTCONST I32 12))) (REG I32 EDX)) (SET (MEM I32 (SUB I32 (REG I32 ESP) (INTCONST I32 16))) (REG I32 EBX)) (SET (MEM I32 (SUB I32 (REG I32 ESP) (INTCONST I32 20))) (REG I32 ESP)) (SET (MEM I32 (SUB I32 (REG I32 ESP) (INTCONST I32 24))) (REG I32 EBP)) (SET (MEM I32 (SUB I32 (REG I32 ESP) (INTCONST I32 28))) (REG I32 ESI)) (SET (MEM I32 (SUB I32 (REG I32 ESP) (INTCONST I32 32))) (REG I32 EDI)) (SET (REG I32 ESP) (SUB I32 (REG I32 ESP) (INTCONST I32 32))))) ;XADD(exchange and add) ;XADD r8,r8 (DEFINST ("XADD ?1l,?2l" "XADD %?2l,%?1l" "XADD ?1l,?2l") (PARALLEL (SET (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (ADD I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (SUBREG I8 (REG I32 (HOLE 2 R32)) 0))) (SET (SUBREG I8 (REG I32 (HOLE 2 R32)) 0) (SUBREG I8 (REG I32 (HOLE 1 R32)) 0)) (SET (REG I1 CF) (CARRY I1 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (SUBREG I8 (REG I32 (HOLE 2 R32)) 0) (INTCONST I1 #b0))) (SET (REG I1 PF) (PARITY I1 (ADD I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (SUBREG I8 (REG I32 (HOLE 2 R32)) 0)))) (SET (REG I1 AF) (ACARRY I1 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (SUBREG I8 (REG I32 (HOLE 2 R32)) 0) (INTCONST I1 #b0))) (SET (REG I1 ZF) (TSTEQ I1 (ADD I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (SUBREG I8 (REG I32 (HOLE 2 R32)) 0)) (INTCONST I8 0))) (SET (REG I1 SF) (TSTLTS I1 (ADD I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (SUBREG I8 (REG I32 (HOLE 2 R32)) 0)) (INTCONST I8 0))) (SET (REG I1 OF) (OVERFLOW I1 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (SUBREG I8 (REG I32 (HOLE 2 R32)) 0) (INTCONST I1 #b0))))) (DEFINST ("XADD ?1l,?2h" "XADD %?2h,%?1l" "XADD ?1l,?2h") (PARALLEL (SET (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (ADD I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (SUBREG I8 (REG I32 (HOLE 2 R32)) 1))) (SET (SUBREG I8 (REG I32 (HOLE 2 R32)) 1) (SUBREG I8 (REG I32 (HOLE 1 R32)) 0)) (SET (REG I1 CF) (CARRY I1 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (SUBREG I8 (REG I32 (HOLE 2 R32)) 1) (INTCONST I1 #b0))) (SET (REG I1 PF) (PARITY I1 (ADD I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (SUBREG I8 (REG I32 (HOLE 2 R32)) 1)))) (SET (REG I1 AF) (ACARRY I1 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (SUBREG I8 (REG I32 (HOLE 2 R32)) 1) (INTCONST I1 #b0))) (SET (REG I1 ZF) (TSTEQ I1 (ADD I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (SUBREG I8 (REG I32 (HOLE 2 R32)) 1)) (INTCONST I8 0))) (SET (REG I1 SF) (TSTLTS I1 (ADD I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (SUBREG I8 (REG I32 (HOLE 2 R32)) 1)) (INTCONST I8 0))) (SET (REG I1 OF) (OVERFLOW I1 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (SUBREG I8 (REG I32 (HOLE 2 R32)) 1) (INTCONST I1 #b0))))) (DEFINST ("XADD ?1h,?2l" "XADD %?2l,%?1h" "XADD ?1h,?2l") (PARALLEL (SET (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (ADD I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (SUBREG I8 (REG I32 (HOLE 2 R32)) 0))) (SET (SUBREG I8 (REG I32 (HOLE 2 R32)) 0) (SUBREG I8 (REG I32 (HOLE 1 R32)) 1)) (SET (REG I1 CF) (CARRY I1 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (SUBREG I8 (REG I32 (HOLE 2 R32)) 0) (INTCONST I1 #b0))) (SET (REG I1 PF) (PARITY I1 (ADD I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (SUBREG I8 (REG I32 (HOLE 2 R32)) 0)))) (SET (REG I1 AF) (ACARRY I1 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (SUBREG I8 (REG I32 (HOLE 2 R32)) 0) (INTCONST I1 #b0))) (SET (REG I1 ZF) (TSTEQ I1 (ADD I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (SUBREG I8 (REG I32 (HOLE 2 R32)) 0)) (INTCONST I8 0))) (SET (REG I1 SF) (TSTLTS I1 (ADD I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (SUBREG I8 (REG I32 (HOLE 2 R32)) 0)) (INTCONST I8 0))) (SET (REG I1 OF) (OVERFLOW I1 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (SUBREG I8 (REG I32 (HOLE 2 R32)) 0) (INTCONST I1 #b0))))) (DEFINST ("XADD ?1h,?2h" "XADD %?2h,%?1h" "XADD ?1h,?2h") (PARALLEL (SET (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (ADD I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (SUBREG I8 (REG I32 (HOLE 2 R32)) 1))) (SET (SUBREG I8 (REG I32 (HOLE 2 R32)) 1) (SUBREG I8 (REG I32 (HOLE 1 R32)) 1)) (SET (REG I1 CF) (CARRY I1 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (SUBREG I8 (REG I32 (HOLE 2 R32)) 1) (INTCONST I1 #b0))) (SET (REG I1 PF) (PARITY I1 (ADD I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (SUBREG I8 (REG I32 (HOLE 2 R32)) 1)))) (SET (REG I1 AF) (ACARRY I1 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (SUBREG I8 (REG I32 (HOLE 2 R32)) 1) (INTCONST I1 #b0))) (SET (REG I1 ZF) (TSTEQ I1 (ADD I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (SUBREG I8 (REG I32 (HOLE 2 R32)) 1)) (INTCONST I8 0))) (SET (REG I1 SF) (TSTLTS I1 (ADD I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (SUBREG I8 (REG I32 (HOLE 2 R32)) 1)) (INTCONST I8 0))) (SET (REG I1 OF) (OVERFLOW I1 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (SUBREG I8 (REG I32 (HOLE 2 R32)) 1) (INTCONST I1 #b0))))) ;XADD m8,r8 (DEFINST ("XADD BYTE PTR ??1s,?2l" "XADD %?2l,??1s" "XADD BYTE PTR ??1s,?2l") (PARALLEL (SET (MEM I8 (HOLE 1)) (ADD I8 (MEM I8 (HOLE 1)) (SUBREG I8 (REG I32 (HOLE 2 R32)) 0))) (SET (SUBREG I8 (REG I32 (HOLE 2 R32)) 0) (MEM I8 (HOLE 1))) (SET (REG I1 CF) (CARRY I1 (MEM I8 (HOLE 1)) (SUBREG I8 (REG I32 (HOLE 2 R32)) 0) (INTCONST I1 #b0))) (SET (REG I1 PF) (PARITY I1 (ADD I8 (MEM I8 (HOLE 1)) (SUBREG I8 (REG I32 (HOLE 2 R32)) 0)))) (SET (REG I1 AF) (ACARRY I1 (MEM I8 (HOLE 1)) (SUBREG I8 (REG I32 (HOLE 2 R32)) 0) (INTCONST I1 #b0))) (SET (REG I1 ZF) (TSTEQ I1 (ADD I8 (MEM I8 (HOLE 1)) (SUBREG I8 (REG I32 (HOLE 2 R32)) 0)) (INTCONST I8 0))) (SET (REG I1 SF) (TSTLTS I1 (ADD I8 (MEM I8 (HOLE 1)) (SUBREG I8 (REG I32 (HOLE 2 R32)) 0)) (INTCONST I8 0))) (SET (REG I1 OF) (OVERFLOW I1 (MEM I8 (HOLE 1)) (SUBREG I8 (REG I32 (HOLE 2 R32)) 0) (INTCONST I1 #b0))))) (DEFINST ("XADD BYTE PTR ??1s,?2h" "XADD %?2h,??1s" "XADD BYTE PTR ??1s,?2h") (PARALLEL (SET (MEM I8 (HOLE 1)) (ADD I8 (MEM I8 (HOLE 1)) (SUBREG I8 (REG I32 (HOLE 2 R32)) 1))) (SET (SUBREG I8 (REG I32 (HOLE 2 R32)) 1) (MEM I8 (HOLE 1))) (SET (REG I1 CF) (CARRY I1 (MEM I8 (HOLE 1)) (SUBREG I8 (REG I32 (HOLE 2 R32)) 1) (INTCONST I1 #b0))) (SET (REG I1 PF) (PARITY I1 (ADD I8 (MEM I8 (HOLE 1)) (SUBREG I8 (REG I32 (HOLE 2 R32)) 1)))) (SET (REG I1 AF) (ACARRY I1 (MEM I8 (HOLE 1)) (SUBREG I8 (REG I32 (HOLE 2 R32)) 1) (INTCONST I1 #b0))) (SET (REG I1 ZF) (TSTEQ I1 (ADD I8 (MEM I8 (HOLE 1)) (SUBREG I8 (REG I32 (HOLE 2 R32)) 1)) (INTCONST I8 0))) (SET (REG I1 SF) (TSTLTS I1 (ADD I8 (MEM I8 (HOLE 1)) (SUBREG I8 (REG I32 (HOLE 2 R32)) 1)) (INTCONST I8 0))) (SET (REG I1 OF) (OVERFLOW I1 (MEM I8 (HOLE 1)) (SUBREG I8 (REG I32 (HOLE 2 R32)) 1) (INTCONST I1 #b0))))) ;XADD r16,r16 (DEFINST ("XADD ?1w,?2w" "XADD %?2w,%?1w" "XADD ?1w,?2w") (PARALLEL (SET (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (ADD I16 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (SUBREG I16 (REG I32 (HOLE 2 R32)) 0))) (SET (SUBREG I16 (REG I32 (HOLE 2 R32)) 0) (SUBREG I16 (REG I32 (HOLE 1 R32)) 0)) (SET (REG I1 CF) (CARRY I1 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (SUBREG I16 (REG I32 (HOLE 2 R32)) 0) (INTCONST I1 #b0))) (SET (REG I1 PF) (PARITY I1 (CONVIT I8 (ADD I16 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (SUBREG I16 (REG I32 (HOLE 2 R32)) 0))))) (SET (REG I1 AF) (ACARRY I1 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (SUBREG I16 (REG I32 (HOLE 2 R32)) 0) (INTCONST I1 #b0))) (SET (REG I1 ZF) (TSTEQ I1 (ADD I16 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (SUBREG I16 (REG I32 (HOLE 2 R32)) 0)) (INTCONST I16 0))) (SET (REG I1 SF) (TSTLTS I1 (ADD I16 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (SUBREG I16 (REG I32 (HOLE 2 R32)) 0)) (INTCONST I16 0))) (SET (REG I1 OF) (OVERFLOW I1 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (SUBREG I16 (REG I32 (HOLE 2 R32)) 0) (INTCONST I1 #b0))))) ;XADD m16,r16 (DEFINST ("XADD WORD PTR ??1s,?2w" "XADD %?2w,??1s" "XADD WORD PTR ??1s,?2w") (PARALLEL (SET (MEM I16 (HOLE 1)) (ADD I16 (MEM I16 (HOLE 1)) (SUBREG I16 (REG I32 (HOLE 2 R32)) 0))) (SET (SUBREG I16 (REG I32 (HOLE 2 R32)) 0) (MEM I16 (HOLE 1))) (SET (REG I1 CF) (CARRY I1 (MEM I16 (HOLE 1)) (SUBREG I16 (REG I32 (HOLE 2 R32)) 0) (INTCONST I1 #b0))) (SET (REG I1 PF) (PARITY I1 (CONVIT I8 (ADD I16 (MEM I16 (HOLE 1)) (SUBREG I16 (REG I32 (HOLE 2 R32)) 0))))) (SET (REG I1 AF) (ACARRY I1 (MEM I16 (HOLE 1)) (SUBREG I16 (REG I32 (HOLE 2 R32)) 0) (INTCONST I1 #b0))) (SET (REG I1 ZF) (TSTEQ I1 (ADD I16 (MEM I16 (HOLE 1)) (SUBREG I16 (REG I32 (HOLE 2 R32)) 0)) (INTCONST I16 0))) (SET (REG I1 SF) (TSTLTS I1 (ADD I16 (MEM I16 (HOLE 1)) (SUBREG I16 (REG I32 (HOLE 2 R32)) 0)) (INTCONST I16 0))) (SET (REG I1 OF) (OVERFLOW I1 (MEM I16 (HOLE 1)) (SUBREG I16 (REG I32 (HOLE 2 R32)) 0) (INTCONST I1 #b0))))) ;XADD r32,r32 (DEFINST ("XADD ?1r,?2r" "XADD %?2r,%?1r" "XADD ?1r,?2r") (PARALLEL (SET (REG I32 (HOLE 1 R32)) (ADD I32 (REG I32 (HOLE 1 R32)) (REG I32 (HOLE 2 R32)))) (SET (REG I32 (HOLE 2 R32)) (REG I32 (HOLE 1 R32))) (SET (REG I1 CF) (CARRY I1 (REG I32 (HOLE 1 R32)) (REG I32 (HOLE 2 R32)) (INTCONST I1 #b0))) (SET (REG I1 PF) (PARITY I1 (CONVIT I8 (ADD I32 (REG I32 (HOLE 1 R32)) (REG I32 (HOLE 2 R32)))))) (SET (REG I1 AF) (ACARRY I1 (REG I32 (HOLE 1 R32)) (REG I32 (HOLE 2 R32)) (INTCONST I1 #b0))) (SET (REG I1 ZF) (TSTEQ I1 (ADD I32 (REG I32 (HOLE 1 R32)) (REG I32 (HOLE 2 R32))) (INTCONST I32 0))) (SET (REG I1 SF) (TSTLTS I1 (ADD I32 (REG I32 (HOLE 1 R32)) (REG I32 (HOLE 2 R32))) (INTCONST I32 0))) (SET (REG I1 OF) (OVERFLOW I1 (REG I32 (HOLE 1 R32)) (REG I32 (HOLE 2 R32)) (INTCONST I1 #b0))))) ;XADD m32,r32 (DEFINST ("XADD DWORD PTR ??1s,?2r" "XADD %?2r,??1s" "XADD DWORD PTR ??1s,?2r") (PARALLEL (SET (MEM I32 (HOLE 1)) (ADD I32 (MEM I32 (HOLE 1)) (REG I32 (HOLE 2 R32)))) (SET (REG I32 (HOLE 2 R32)) (MEM I32 (HOLE 1))) (SET (REG I1 CF) (CARRY I1 (MEM I32 (HOLE 1)) (REG I32 (HOLE 2 R32)) (INTCONST I1 #b0))) (SET (REG I1 PF) (PARITY I1 (CONVIT I8 (ADD I32 (MEM I32 (HOLE 1)) (REG I32 (HOLE 2 R32)))))) (SET (REG I1 AF) (ACARRY I1 (MEM I32 (HOLE 1)) (REG I32 (HOLE 2 R32)) (INTCONST I1 #b0))) (SET (REG I1 ZF) (TSTEQ I1 (ADD I32 (MEM I32 (HOLE 1)) (REG I32 (HOLE 2 R32))) (INTCONST I32 0))) (SET (REG I1 SF) (TSTLTS I1 (ADD I32 (MEM I32 (HOLE 1)) (REG I32 (HOLE 2 R32))) (INTCONST I32 0))) (SET (REG I1 OF) (OVERFLOW I1 (MEM I32 (HOLE 1)) (REG I32 (HOLE 2 R32)) (INTCONST I1 #b0))))) ;XCHG(Exchange Register/Memory with Register) ;XCHG r8,r8 (DEFINST ("XCHG ?1l,?2l" "XCHG %?2l,%?1l" "XCHG ?1l,?2l") (PARALLEL (SET (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (SUBREG I8 (REG I32 (HOLE 2 R32)) 0)) (SET (SUBREG I8 (REG I32 (HOLE 2 R32)) 0) (SUBREG I8 (REG I32 (HOLE 1 R32)) 0)))) (DEFINST ("XCHG ?1l,?2h" "XCHG %?2h,%?1l" "XCHG ?1l,?2h") (PARALLEL (SET (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (SUBREG I8 (REG I32 (HOLE 2 R32)) 1)) (SET (SUBREG I8 (REG I32 (HOLE 2 R32)) 1) (SUBREG I8 (REG I32 (HOLE 1 R32)) 0)))) (DEFINST ("XCHG ?1h,?2l" "XCHG %?2l,%?1h" "XCHG ?1h,?2l") (PARALLEL (SET (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (SUBREG I8 (REG I32 (HOLE 2 R32)) 0)) (SET (SUBREG I8 (REG I32 (HOLE 2 R32)) 0) (SUBREG I8 (REG I32 (HOLE 1 R32)) 1)))) (DEFINST ("XCHG ?1h,?2h" "XCHG %?2h,%?1h" "XCHG ?1h,?2h") (PARALLEL (SET (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (SUBREG I8 (REG I32 (HOLE 2 R32)) 1)) (SET (SUBREG I8 (REG I32 (HOLE 2 R32)) 1) (SUBREG I8 (REG I32 (HOLE 1 R32)) 1)))) ;XCHG m8,r8 (DEFINST ("XCHG BYTE PTR ??1s,?2l" "XCHG %?2l,??1s" "XCHG BYTE PTR ??1s,?2l") (PARALLEL (SET (MEM I8 (HOLE 1)) (SUBREG I8 (REG I32 (HOLE 2 R32)) 0)) (SET (SUBREG I8 (REG I32 (HOLE 2 R32)) 0) (MEM I8 (HOLE 1))))) (DEFINST ("XCHG BYTE PTR ??1s,?2h" "XCHG %?2h,??1s" "XCHG BYTE PTR ??1s,?2h") (PARALLEL (SET (MEM I8 (HOLE 1)) (SUBREG I8 (REG I32 (HOLE 2 R32)) 1)) (SET (SUBREG I8 (REG I32 (HOLE 2 R32)) 1) (MEM I8 (HOLE 1))))) ;XCHG r16,r16 (DEFINST ("XCHG ?1w,?2w" "XCHG %?2w,%?1w" "XCHG ?1w,?2w") (PARALLEL (SET (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (SUBREG I16 (REG I32 (HOLE 2 R32)) 0)) (SET (SUBREG I16 (REG I32 (HOLE 2 R32)) 0) (SUBREG I16 (REG I32 (HOLE 1 R32)) 0)))) ;XCHG m16,r16 (DEFINST ("XCHG WORD PTR ??1s,?2w" "XCHG %?2w,??1s" "XCHG WORD PTR ??1s,?2w") (PARALLEL (SET (MEM I16 (HOLE 1)) (SUBREG I16 (REG I32 (HOLE 2 R32)) 0)) (SET (SUBREG I16 (REG I32 (HOLE 2 R32)) 0) (MEM I16 (HOLE 1))))) ;XCHG r32,r32 (DEFINST ("XCHG ?1r,?2r" "XCHG %?2r,%?1r" "XCHG ?1r,?2r") (PARALLEL (SET (REG I32 (HOLE 1 R32)) (REG I32 (HOLE 2 R32))) (SET (REG I32 (HOLE 2 R32)) (REG I32 (HOLE 1 R32))))) ;XCHG m32,r32 (DEFINST ("XCHG DWORD PTR ??1s,?2r" "XCHG %?2r,??1s" "XCHG DWORD PTR ??1s,?2r") (PARALLEL (SET (MEM I32 (HOLE 1)) (REG I32 (HOLE 2 R32))) (SET (REG I32 (HOLE 2 R32)) (MEM I32 (HOLE 1))))) ;ADC(add integers with carry) ;ADC r8,imm8 (DEFINST ("ADC ?1l,?2c" "ADC $?2c,%?1l" "ADC ?1l,?2c") (PARALLEL (SET (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (ADD I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (ADD I8 (INTCONST I8 (HOLE 2)) (CONVZX I8 (REG I1 CF))))) (SET (REG I1 CF) (CARRY I1 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (INTCONST I8 (HOLE 2)) (REG I1 CF))) (SET (REG I1 PF) (PARITY I1 (ADD I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (ADD I8 (INTCONST I8 (HOLE 2)) (CONVZX I8 (REG I1 CF)))))) (SET (REG I1 AF) (ACARRY I1 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (INTCONST I8 (HOLE 2)) (REG I1 CF))) (SET (REG I1 ZF) (TSTEQ I1 (ADD I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (ADD I8 (INTCONST I8 (HOLE 2)) (CONVZX I8 (REG I1 CF)))) (INTCONST I8 0))) (SET (REG I1 SF) (TSTLTS I1 (ADD I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (ADD I8 (INTCONST I8 (HOLE 2)) (CONVZX I8 (REG I1 CF)))) (INTCONST I8 0))) (SET (REG I1 OF) (OVERFLOW I1 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (INTCONST I8 (HOLE 2)) (REG I1 CF))))) (DEFINST ("ADC ?1h,?2c" "ADC $?2c,%?1h" "ADC ?1h,?2c") (PARALLEL (SET (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (ADD I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (ADD I8 (INTCONST I8 (HOLE 2)) (CONVZX I8 (REG I1 CF))))) (SET (REG I1 CF) (CARRY I1 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (INTCONST I8 (HOLE 2)) (REG I1 CF))) (SET (REG I1 PF) (PARITY I1 (ADD I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (ADD I8 (INTCONST I8 (HOLE 2)) (CONVZX I8 (REG I1 CF)))))) (SET (REG I1 AF) (ACARRY I1 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (INTCONST I8 (HOLE 2)) (REG I1 CF))) (SET (REG I1 ZF) (TSTEQ I1 (ADD I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (ADD I8 (INTCONST I8 (HOLE 2)) (CONVZX I8 (REG I1 CF)))) (INTCONST I8 0))) (SET (REG I1 SF) (TSTLTS I1 (ADD I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (ADD I8 (INTCONST I8 (HOLE 2)) (CONVZX I8 (REG I1 CF)))) (INTCONST I8 0))) (SET (REG I1 OF) (OVERFLOW I1 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (INTCONST I8 (HOLE 2)) (REG I1 CF))))) ;ADC m8,imm8 (DEFINST ("ADC BYTE PTR ??1s,?2c" "ADCB $?2c,??1s" "ADC BYTE PTR ??1s,?2c") (PARALLEL (SET (MEM I8 (HOLE 1)) (ADD I8 (MEM I8 (HOLE 1)) (ADD I8 (INTCONST I8 (HOLE 2)) (CONVZX I8 (REG I1 CF))))) (SET (REG I1 CF) (CARRY I1 (MEM I8 (HOLE 1)) (INTCONST I8 (HOLE 2)) (REG I1 CF))) (SET (REG I1 PF) (PARITY I1 (ADD I8 (MEM I8 (HOLE 1)) (ADD I8 (INTCONST I8 (HOLE 2)) (CONVZX I8 (REG I1 CF)))))) (SET (REG I1 AF) (ACARRY I1 (MEM I8 (HOLE 1)) (INTCONST I8 (HOLE 2)) (REG I1 CF))) (SET (REG I1 ZF) (TSTEQ I1 (ADD I8 (MEM I8 (HOLE 1)) (ADD I8 (INTCONST I8 (HOLE 2)) (CONVZX I8 (REG I1 CF)))) (INTCONST I8 0))) (SET (REG I1 SF) (TSTLTS I1 (ADD I8 (MEM I8 (HOLE 1)) (ADD I8 (INTCONST I8 (HOLE 2)) (CONVZX I8 (REG I1 CF)))) (INTCONST I8 0))) (SET (REG I1 OF) (OVERFLOW I1 (MEM I8 (HOLE 1)) (INTCONST I8 (HOLE 2)) (REG I1 CF))))) ;ADC r16,imm16 (DEFINST ("ADC ?1w,?2c" "ADC $?2c,%?1w" "ADC ?1w,?2c") (PARALLEL (SET (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (ADD I16 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (ADD I16 (INTCONST I16 (HOLE 2)) (CONVZX I16 (REG I1 CF))))) (SET (REG I1 CF) (CARRY I1 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (INTCONST I16 (HOLE 2)) (REG I1 CF))) (SET (REG I1 PF) (PARITY I1 (CONVIT I8 (ADD I16 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (ADD I16 (INTCONST I16 (HOLE 2)) (CONVZX I16 (REG I1 CF))))))) (SET (REG I1 AF) (ACARRY I1 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (INTCONST I16 (HOLE 2)) (REG I1 CF))) (SET (REG I1 ZF) (TSTEQ I1 (ADD I16 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (ADD I16 (INTCONST I16 (HOLE 2)) (CONVZX I16 (REG I1 CF)))) (INTCONST I16 0))) (SET (REG I1 SF) (TSTLTS I1 (ADD I16 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (ADD I16 (INTCONST I16 (HOLE 2)) (CONVZX I16 (REG I1 CF)))) (INTCONST I16 0))) (SET (REG I1 OF) (OVERFLOW I1 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (INTCONST I16 (HOLE 2)) (REG I1 CF))))) ;ADC m16,imm16 (DEFINST ("ADC WORD PTR ??1s,?2c" "ADCW $?2c,??1s" "ADC WORD PTR ??1s,?2c") (PARALLEL (SET (MEM I16 (HOLE 1)) (ADD I16 (MEM I16 (HOLE 1)) (ADD I16 (INTCONST I16 (HOLE 2)) (CONVZX I16 (REG I1 CF))))) (SET (REG I1 CF) (CARRY I1 (MEM I16 (HOLE 1)) (INTCONST I16 (HOLE 2)) (REG I1 CF))) (SET (REG I1 PF) (PARITY I1 (CONVIT I8 (ADD I16 (MEM I16 (HOLE 1)) (ADD I16 (INTCONST I16 (HOLE 2)) (CONVZX I16 (REG I1 CF))))))) (SET (REG I1 AF) (ACARRY I1 (MEM I16 (HOLE 1)) (INTCONST I16 (HOLE 2)) (REG I1 CF))) (SET (REG I1 ZF) (TSTEQ I1 (ADD I16 (MEM I16 (HOLE 1)) (ADD I16 (INTCONST I16 (HOLE 2)) (CONVZX I16 (REG I1 CF)))) (INTCONST I16 0))) (SET (REG I1 SF) (TSTLTS I1 (ADD I16 (MEM I16 (HOLE 1)) (ADD I16 (INTCONST I16 (HOLE 2)) (CONVZX I16 (REG I1 CF)))) (INTCONST I16 0))) (SET (REG I1 OF) (OVERFLOW I1 (MEM I16 (HOLE 1)) (INTCONST I16 (HOLE 2)) (REG I1 CF))))) ;ADC r32,imm32 (DEFINST ("ADC ?1r,?2c" "ADC $?2c,%?1r" "ADC ?1r,?2c") (PARALLEL (SET (REG I32 (HOLE 1 R32)) (ADD I32 (REG I32 (HOLE 1 R32)) (ADD I32 (INTCONST I32 (HOLE 2)) (CONVZX I32 (REG I1 CF))))) (SET (REG I1 CF) (CARRY I1 (REG I32 (HOLE 1 R32)) (INTCONST I32 (HOLE 2)) (REG I1 CF))) (SET (REG I1 PF) (PARITY I1 (CONVIT I8 (ADD I32 (REG I32 (HOLE 1 R32)) (ADD I32 (INTCONST I32 (HOLE 2)) (CONVZX I32 (REG I1 CF))))))) (SET (REG I1 AF) (ACARRY I1 (REG I32 (HOLE 1 R32)) (INTCONST I32 (HOLE 2)) (REG I1 CF))) (SET (REG I1 ZF) (TSTEQ I1 (ADD I32 (REG I32 (HOLE 1 R32)) (ADD I32 (INTCONST I32 (HOLE 2)) (CONVZX I32 (REG I1 CF)))) (INTCONST I32 0))) (SET (REG I1 SF) (TSTLTS I1 (ADD I32 (REG I32 (HOLE 1 R32)) (ADD I32 (INTCONST I32 (HOLE 2)) (CONVZX I32 (REG I1 CF)))) (INTCONST I32 0))) (SET (REG I1 OF) (OVERFLOW I1 (REG I32 (HOLE 1 R32)) (INTCONST I32 (HOLE 2)) (REG I1 CF))))) (DEFINST ("ADC ?1r,??2a" "ADC $??2a,%?1r" "ADC ?1r,??2a") (PARALLEL (SET (REG I32 (HOLE 1 R32)) (ADD I32 (REG I32 (HOLE 1 R32)) (ADD I32 (HOLE 2) (CONVZX I32 (REG I1 CF))))) (SET (REG I1 CF) (CARRY I1 (REG I32 (HOLE 1 R32)) (HOLE 2) (REG I1 CF))) (SET (REG I1 PF) (PARITY I1 (CONVIT I8 (ADD I32 (REG I32 (HOLE 1 R32)) (ADD I32 (HOLE 2) (CONVZX I32 (REG I1 CF))))))) (SET (REG I1 AF) (ACARRY I1 (REG I32 (HOLE 1 R32)) (HOLE 2) (REG I1 CF))) (SET (REG I1 ZF) (TSTEQ I1 (ADD I32 (REG I32 (HOLE 1 R32)) (ADD I32 (HOLE 2) (CONVZX I32 (REG I1 CF)))) (INTCONST I32 0))) (SET (REG I1 SF) (TSTLTS I1 (ADD I32 (REG I32 (HOLE 1 R32)) (ADD I32 (HOLE 2) (CONVZX I32 (REG I1 CF)))) (INTCONST I32 0))) (SET (REG I1 OF) (OVERFLOW I1 (REG I32 (HOLE 1 R32)) (HOLE 2) (REG I1 CF))))) ;ADC m32,imm32 (DEFINST ("ADC DWORD PTR ??1s,?2c" "ADCL $?2c,??1s" "ADC DWORD PTR ??1s,?2c") (PARALLEL (SET (MEM I32 (HOLE 1)) (ADD I32 (MEM I32 (HOLE 1)) (ADD I32 (INTCONST I32 (HOLE 2)) (CONVZX I32 (REG I1 CF))))) (SET (REG I1 CF) (CARRY I1 (MEM I32 (HOLE 1)) (INTCONST I32 (HOLE 2)) (REG I1 CF))) (SET (REG I1 PF) (PARITY I1 (CONVIT I8 (ADD I32 (MEM I32 (HOLE 1)) (ADD I32 (INTCONST I32 (HOLE 2)) (CONVZX I32 (REG I1 CF))))))) (SET (REG I1 AF) (ACARRY I1 (MEM I32 (HOLE 1)) (INTCONST I32 (HOLE 2)) (REG I1 CF))) (SET (REG I1 ZF) (TSTEQ I1 (ADD I32 (MEM I32 (HOLE 1)) (ADD I32 (INTCONST I32 (HOLE 2)) (CONVZX I32 (REG I1 CF)))) (INTCONST I32 0))) (SET (REG I1 SF) (TSTLTS I1 (ADD I32 (MEM I32 (HOLE 1)) (ADD I32 (INTCONST I32 (HOLE 2)) (CONVZX I32 (REG I1 CF)))) (INTCONST I32 0))) (SET (REG I1 OF) (OVERFLOW I1 (MEM I32 (HOLE 1)) (INTCONST I32 (HOLE 2)) (REG I1 CF))))) (DEFINST ("ADC DWORD PTR ??1s,??2a" "ADCL $??2a,??1s" "ADC DWORD PTR ??1s,??2a") (PARALLEL (SET (MEM I32 (HOLE 1)) (ADD I32 (MEM I32 (HOLE 1)) (ADD I32 (HOLE 2) (CONVZX I32 (REG I1 CF))))) (SET (REG I1 CF) (CARRY I1 (MEM I32 (HOLE 1)) (HOLE 2) (REG I1 CF))) (SET (REG I1 PF) (PARITY I1 (CONVIT I8 (ADD I32 (MEM I32 (HOLE 1)) (ADD I32 (HOLE 2) (CONVZX I32 (REG I1 CF))))))) (SET (REG I1 AF) (ACARRY I1 (MEM I32 (HOLE 1)) (HOLE 2) (REG I1 CF))) (SET (REG I1 ZF) (TSTEQ I1 (ADD I32 (MEM I32 (HOLE 1)) (ADD I32 (HOLE 2) (CONVZX I32 (REG I1 CF)))) (INTCONST I32 0))) (SET (REG I1 SF) (TSTLTS I1 (ADD I32 (MEM I32 (HOLE 1)) (ADD I32 (HOLE 2) (CONVZX I32 (REG I1 CF)))) (INTCONST I32 0))) (SET (REG I1 OF) (OVERFLOW I1 (MEM I32 (HOLE 1)) (HOLE 2) (REG I1 CF))))) ;ADC r8,r8 (DEFINST ("ADC ?1l,?2l" "ADC %?2l,%?1l" "ADC ?1l,?2l") (PARALLEL (SET (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (ADD I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (ADD I8 (SUBREG I8 (REG I32 (HOLE 2 R32)) 0) (CONVZX I8 (REG I1 CF))))) (SET (REG I1 CF) (CARRY I1 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (SUBREG I8 (REG I32 (HOLE 2 R32)) 0) (REG I1 CF))) (SET (REG I1 PF) (PARITY I1 (ADD I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (ADD I8 (SUBREG I8 (REG I32 (HOLE 2 R32)) 0) (CONVZX I8 (REG I1 CF)))))) (SET (REG I1 AF) (ACARRY I1 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (SUBREG I8 (REG I32 (HOLE 2 R32)) 0) (REG I1 CF))) (SET (REG I1 ZF) (TSTEQ I1 (ADD I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (ADD I8 (SUBREG I8 (REG I32 (HOLE 2 R32)) 0) (CONVZX I8 (REG I1 CF)))) (INTCONST I8 0))) (SET (REG I1 SF) (TSTLTS I1 (ADD I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (ADD I8 (SUBREG I8 (REG I32 (HOLE 2 R32)) 0) (CONVZX I8 (REG I1 CF)))) (INTCONST I8 0))) (SET (REG I1 OF) (OVERFLOW I1 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (SUBREG I8 (REG I32 (HOLE 2 R32)) 0) (REG I1 CF))))) (DEFINST ("ADC ?1l,?2h" "ADC %?2h,%?1l" "ADC ?1l,?2h") (PARALLEL (SET (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (ADD I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (ADD I8 (SUBREG I8 (REG I32 (HOLE 2 R32)) 1) (CONVZX I8 (REG I1 CF))))) (SET (REG I1 CF) (CARRY I1 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (SUBREG I8 (REG I32 (HOLE 2 R32)) 1) (REG I1 CF))) (SET (REG I1 PF) (PARITY I1 (ADD I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (ADD I8 (SUBREG I8 (REG I32 (HOLE 2 R32)) 1) (CONVZX I8 (REG I1 CF)))))) (SET (REG I1 AF) (ACARRY I1 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (SUBREG I8 (REG I32 (HOLE 2 R32)) 1) (REG I1 CF))) (SET (REG I1 ZF) (TSTEQ I1 (ADD I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (ADD I8 (SUBREG I8 (REG I32 (HOLE 2 R32)) 1) (CONVZX I8 (REG I1 CF)))) (INTCONST I8 0))) (SET (REG I1 SF) (TSTLTS I1 (ADD I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (ADD I8 (SUBREG I8 (REG I32 (HOLE 2 R32)) 1) (CONVZX I8 (REG I1 CF)))) (INTCONST I8 0))) (SET (REG I1 OF) (OVERFLOW I1 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (SUBREG I8 (REG I32 (HOLE 2 R32)) 1) (REG I1 CF))))) (DEFINST ("ADC ?1h,?2l" "ADC %?2l,%?1h" "ADC ?1h,?2l") (PARALLEL (SET (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (ADD I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (ADD I8 (SUBREG I8 (REG I32 (HOLE 2 R32)) 0) (CONVZX I8 (REG I1 CF))))) (SET (REG I1 CF) (CARRY I1 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (SUBREG I8 (REG I32 (HOLE 2 R32)) 0) (REG I1 CF))) (SET (REG I1 PF) (PARITY I1 (ADD I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (ADD I8 (SUBREG I8 (REG I32 (HOLE 2 R32)) 0) (CONVZX I8 (REG I1 CF)))))) (SET (REG I1 AF) (ACARRY I1 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (SUBREG I8 (REG I32 (HOLE 2 R32)) 0) (REG I1 CF))) (SET (REG I1 ZF) (TSTEQ I1 (ADD I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (ADD I8 (SUBREG I8 (REG I32 (HOLE 2 R32)) 0) (CONVZX I8 (REG I1 CF)))) (INTCONST I8 0))) (SET (REG I1 SF) (TSTLTS I1 (ADD I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (ADD I8 (SUBREG I8 (REG I32 (HOLE 2 R32)) 0) (CONVZX I8 (REG I1 CF)))) (INTCONST I8 0))) (SET (REG I1 OF) (OVERFLOW I1 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (SUBREG I8 (REG I32 (HOLE 2 R32)) 0) (REG I1 CF))))) (DEFINST ("ADC ?1h,?2h" "ADC %?2h,%?1h" "ADC ?1h,?2h") (PARALLEL (SET (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (ADD I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (ADD I8 (SUBREG I8 (REG I32 (HOLE 2 R32)) 1) (CONVZX I8 (REG I1 CF))))) (SET (REG I1 CF) (CARRY I1 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (SUBREG I8 (REG I32 (HOLE 2 R32)) 1) (REG I1 CF))) (SET (REG I1 PF) (PARITY I1 (ADD I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (ADD I8 (SUBREG I8 (REG I32 (HOLE 2 R32)) 1) (CONVZX I8 (REG I1 CF)))))) (SET (REG I1 AF) (ACARRY I1 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (SUBREG I8 (REG I32 (HOLE 2 R32)) 1) (REG I1 CF))) (SET (REG I1 ZF) (TSTEQ I1 (ADD I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (ADD I8 (SUBREG I8 (REG I32 (HOLE 2 R32)) 1) (CONVZX I8 (REG I1 CF)))) (INTCONST I8 0))) (SET (REG I1 SF) (TSTLTS I1 (ADD I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (ADD I8 (SUBREG I8 (REG I32 (HOLE 2 R32)) 1) (CONVZX I8 (REG I1 CF)))) (INTCONST I8 0))) (SET (REG I1 OF) (OVERFLOW I1 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (SUBREG I8 (REG I32 (HOLE 2 R32)) 1) (REG I1 CF))))) ;ADC m8,r8 (DEFINST ("ADC BYTE PTR ??1s,?2l" "ADC %?2l,??1s" "ADC BYTE PTR ??1s,?2l") (PARALLEL (SET (MEM I8 (HOLE 1)) (ADD I8 (MEM I8 (HOLE 1)) (ADD I8 (SUBREG I8 (REG I32 (HOLE 2 R32)) 0) (CONVZX I8 (REG I1 CF))))) (SET (REG I1 CF) (CARRY I1 (MEM I8 (HOLE 1)) (SUBREG I8 (REG I32 (HOLE 2 R32)) 0) (REG I1 CF))) (SET (REG I1 PF) (PARITY I1 (ADD I8 (MEM I8 (HOLE 1)) (ADD I8 (SUBREG I8 (REG I32 (HOLE 2 R32)) 0) (CONVZX I8 (REG I1 CF)))))) (SET (REG I1 AF) (ACARRY I1 (MEM I8 (HOLE 1)) (SUBREG I8 (REG I32 (HOLE 2 R32)) 0) (REG I1 CF))) (SET (REG I1 ZF) (TSTEQ I1 (ADD I8 (MEM I8 (HOLE 1)) (ADD I8 (SUBREG I8 (REG I32 (HOLE 2 R32)) 0) (CONVZX I8 (REG I1 CF)))) (INTCONST I8 0))) (SET (REG I1 SF) (TSTLTS I1 (ADD I8 (MEM I8 (HOLE 1)) (ADD I8 (SUBREG I8 (REG I32 (HOLE 2 R32)) 0) (CONVZX I8 (REG I1 CF)))) (INTCONST I8 0))) (SET (REG I1 OF) (OVERFLOW I1 (MEM I8 (HOLE 1)) (SUBREG I8 (REG I32 (HOLE 2 R32)) 0) (REG I1 CF))))) (DEFINST ("ADC BYTE PTR ??1s,?2h" "ADC %?2h,??1s" "ADC BYTE PTR ??1s,?2h") (PARALLEL (SET (MEM I8 (HOLE 1)) (ADD I8 (MEM I8 (HOLE 1)) (ADD I8 (SUBREG I8 (REG I32 (HOLE 2 R32)) 1) (CONVZX I8 (REG I1 CF))))) (SET (REG I1 CF) (CARRY I1 (MEM I8 (HOLE 1)) (SUBREG I8 (REG I32 (HOLE 2 R32)) 1) (REG I1 CF))) (SET (REG I1 PF) (PARITY I1 (ADD I8 (MEM I8 (HOLE 1)) (ADD I8 (SUBREG I8 (REG I32 (HOLE 2 R32)) 1) (CONVZX I8 (REG I1 CF)))))) (SET (REG I1 AF) (ACARRY I1 (MEM I8 (HOLE 1)) (SUBREG I8 (REG I32 (HOLE 2 R32)) 1) (REG I1 CF))) (SET (REG I1 ZF) (TSTEQ I1 (ADD I8 (MEM I8 (HOLE 1)) (ADD I8 (SUBREG I8 (REG I32 (HOLE 2 R32)) 1) (CONVZX I8 (REG I1 CF)))) (INTCONST I8 0))) (SET (REG I1 SF) (TSTLTS I1 (ADD I8 (MEM I8 (HOLE 1)) (ADD I8 (SUBREG I8 (REG I32 (HOLE 2 R32)) 1) (CONVZX I8 (REG I1 CF)))) (INTCONST I8 0))) (SET (REG I1 OF) (OVERFLOW I1 (MEM I8 (HOLE 1)) (SUBREG I8 (REG I32 (HOLE 2 R32)) 1) (REG I1 CF))))) ;ADC r8,m8 (DEFINST ("ADC ?1l,BYTE PTR ??2s" "ADC ??2s,%?1l" "ADC ?1l,BYTE PTR ??2s") (PARALLEL (SET (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (ADD I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (ADD I8 (MEM I8 (HOLE 2)) (CONVZX I8 (REG I1 CF))))) (SET (REG I1 CF) (CARRY I1 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (MEM I8 (HOLE 2)) (REG I1 CF))) (SET (REG I1 PF) (PARITY I1 (ADD I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (ADD I8 (MEM I8 (HOLE 2)) (CONVZX I8 (REG I1 CF)))))) (SET (REG I1 AF) (ACARRY I1 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (MEM I8 (HOLE 2)) (REG I1 CF))) (SET (REG I1 ZF) (TSTEQ I1 (ADD I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (ADD I8 (MEM I8 (HOLE 2)) (CONVZX I8 (REG I1 CF)))) (INTCONST I8 0))) (SET (REG I1 SF) (TSTLTS I1 (ADD I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (ADD I8 (MEM I8 (HOLE 2)) (CONVZX I8 (REG I1 CF)))) (INTCONST I8 0))) (SET (REG I1 OF) (OVERFLOW I1 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (MEM I8 (HOLE 2)) (REG I1 CF))))) (DEFINST ("ADC ?1h,BYTE PTR ??2s" "ADC ??2s,%?1h" "ADC ?1h,BYTE PTR ??2s") (PARALLEL (SET (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (ADD I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (ADD I8 (MEM I8 (HOLE 2)) (CONVZX I8 (REG I1 CF))))) (SET (REG I1 CF) (CARRY I1 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (MEM I8 (HOLE 2)) (REG I1 CF))) (SET (REG I1 PF) (PARITY I1 (ADD I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (ADD I8 (MEM I8 (HOLE 2)) (CONVZX I8 (REG I1 CF)))))) (SET (REG I1 AF) (ACARRY I1 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (MEM I8 (HOLE 2)) (REG I1 CF))) (SET (REG I1 ZF) (TSTEQ I1 (ADD I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (ADD I8 (MEM I8 (HOLE 2)) (CONVZX I8 (REG I1 CF)))) (INTCONST I8 0))) (SET (REG I1 SF) (TSTLTS I1 (ADD I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (ADD I8 (MEM I8 (HOLE 2)) (CONVZX I8 (REG I1 CF)))) (INTCONST I8 0))) (SET (REG I1 OF) (OVERFLOW I1 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (MEM I8 (HOLE 2)) (REG I1 CF))))) ;ADC r16,r16 (DEFINST ("ADC ?1w,?2w" "ADC %?2w,%?1w" "ADC ?1w,?2w") (PARALLEL (SET (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (ADD I16 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (ADD I16 (SUBREG I16 (REG I32 (HOLE 2 R32)) 0) (CONVZX I16 (REG I1 CF))))) (SET (REG I1 CF) (CARRY I1 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (SUBREG I16 (REG I32 (HOLE 2 R32)) 0) (REG I1 CF))) (SET (REG I1 PF) (PARITY I1 (CONVIT I8 (ADD I16 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (ADD I16 (SUBREG I16 (REG I32 (HOLE 2 R32)) 0) (CONVZX I16 (REG I1 CF))))))) (SET (REG I1 AF) (ACARRY I1 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (SUBREG I16 (REG I32 (HOLE 2 R32)) 0) (REG I1 CF))) (SET (REG I1 ZF) (TSTEQ I1 (ADD I16 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (ADD I16 (SUBREG I16 (REG I32 (HOLE 2 R32)) 0) (CONVZX I16 (REG I1 CF)))) (INTCONST I16 0))) (SET (REG I1 SF) (TSTLTS I1 (ADD I16 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (ADD I16 (SUBREG I16 (REG I32 (HOLE 2 R32)) 0) (CONVZX I16 (REG I1 CF)))) (INTCONST I16 0))) (SET (REG I1 OF) (OVERFLOW I1 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (SUBREG I16 (REG I32 (HOLE 2 R32)) 0) (REG I1 CF))))) ;ADC m16,r16 (DEFINST ("ADC WORD PTR ??1s,?2w" "ADC %?2w,??1s" "ADC WORD PTR ??1s,?2w") (PARALLEL (SET (MEM I16 (HOLE 1)) (ADD I16 (MEM I16 (HOLE 1)) (ADD I16 (SUBREG I16 (REG I32 (HOLE 2 R32)) 0) (CONVZX I16 (REG I1 CF))))) (SET (REG I1 CF) (CARRY I1 (MEM I16 (HOLE 1)) (SUBREG I16 (REG I32 (HOLE 2 R32)) 0) (REG I1 CF))) (SET (REG I1 PF) (PARITY I1 (CONVIT I8 (ADD I16 (MEM I16 (HOLE 1)) (ADD I16 (SUBREG I16 (REG I32 (HOLE 2 R32)) 0) (CONVZX I16 (REG I1 CF))))))) (SET (REG I1 AF) (ACARRY I1 (MEM I16 (HOLE 1)) (SUBREG I16 (REG I32 (HOLE 2 R32)) 0) (REG I1 CF))) (SET (REG I1 ZF) (TSTEQ I1 (ADD I16 (MEM I16 (HOLE 1)) (ADD I16 (SUBREG I16 (REG I32 (HOLE 2 R32)) 0) (CONVZX I16 (REG I1 CF)))) (INTCONST I16 0))) (SET (REG I1 SF) (TSTLTS I1 (ADD I16 (MEM I16 (HOLE 1)) (ADD I16 (SUBREG I16 (REG I32 (HOLE 2 R32)) 0) (CONVZX I16 (REG I1 CF)))) (INTCONST I16 0))) (SET (REG I1 OF) (OVERFLOW I1 (MEM I16 (HOLE 1)) (SUBREG I16 (REG I32 (HOLE 2 R32)) 0) (REG I1 CF))))) ;ADC r16,m16 (DEFINST ("ADC ?1w,WORD PTR ??2s" "ADC ??2s,%?1w" "ADC ?1w,WORD PTR ??2s") (PARALLEL (SET (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (ADD I16 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (ADD I16 (MEM I16 (HOLE 2)) (CONVZX I16 (REG I1 CF))))) (SET (REG I1 CF) (CARRY I1 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (MEM I16 (HOLE 2)) (REG I1 CF))) (SET (REG I1 PF) (PARITY I1 (CONVIT I8 (ADD I16 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (ADD I16 (MEM I16 (HOLE 2)) (CONVZX I16 (REG I1 CF))))))) (SET (REG I1 AF) (ACARRY I1 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (MEM I16 (HOLE 2)) (REG I1 CF))) (SET (REG I1 ZF) (TSTEQ I1 (ADD I16 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (ADD I16 (MEM I16 (HOLE 2)) (CONVZX I16 (REG I1 CF)))) (INTCONST I16 0))) (SET (REG I1 SF) (TSTLTS I1 (ADD I16 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (ADD I16 (MEM I16 (HOLE 2)) (CONVZX I16 (REG I1 CF)))) (INTCONST I16 0))) (SET (REG I1 OF) (OVERFLOW I1 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (MEM I16 (HOLE 2)) (REG I1 CF))))) ;ADC r32,r32 (DEFINST ("ADC ?1r,?2r" "ADC %?2r,%?1r" "ADC ?1r,?2r") (PARALLEL (SET (REG I32 (HOLE 1 R32)) (ADD I32 (REG I32 (HOLE 1 R32)) (ADD I32 (REG I32 (HOLE 2 R32)) (CONVZX I32 (REG I1 CF))))) (SET (REG I1 CF) (CARRY I1 (REG I32 (HOLE 1 R32)) (REG I32 (HOLE 2 R32)) (REG I1 CF))) (SET (REG I1 PF) (PARITY I1 (CONVIT I8 (ADD I32 (REG I32 (HOLE 1 R32)) (ADD I32 (REG I32 (HOLE 2 R32)) (CONVZX I32 (REG I1 CF))))))) (SET (REG I1 AF) (ACARRY I1 (REG I32 (HOLE 1 R32)) (REG I32 (HOLE 2 R32)) (REG I1 CF))) (SET (REG I1 ZF) (TSTEQ I1 (ADD I32 (REG I32 (HOLE 1 R32)) (ADD I32 (REG I32 (HOLE 2 R32)) (CONVZX I32 (REG I1 CF)))) (INTCONST I32 0))) (SET (REG I1 SF) (TSTLTS I1 (ADD I32 (REG I32 (HOLE 1 R32)) (ADD I32 (REG I32 (HOLE 2 R32)) (CONVZX I32 (REG I1 CF)))) (INTCONST I32 0))) (SET (REG I1 OF) (OVERFLOW I1 (REG I32 (HOLE 1 R32)) (REG I32 (HOLE 2 R32)) (REG I1 CF))))) ;ADC m32,r32 (DEFINST ("ADC DWORD PTR ??1s,?2r" "ADC %?2r,??1s" "ADC DWORD PTR ??1s,?2r") (PARALLEL (SET (MEM I32 (HOLE 1)) (ADD I32 (MEM I32 (HOLE 1)) (ADD I32 (REG I32 (HOLE 2 R32)) (CONVZX I32 (REG I1 CF))))) (SET (REG I1 CF) (CARRY I1 (MEM I32 (HOLE 1)) (REG I32 (HOLE 2 R32)) (REG I1 CF))) (SET (REG I1 PF) (PARITY I1 (CONVIT I8 (ADD I32 (MEM I32 (HOLE 1)) (ADD I32 (REG I32 (HOLE 2 R32)) (CONVZX I32 (REG I1 CF))))))) (SET (REG I1 AF) (ACARRY I1 (MEM I32 (HOLE 1)) (REG I32 (HOLE 2 R32)) (REG I1 CF))) (SET (REG I1 ZF) (TSTEQ I1 (ADD I32 (MEM I32 (HOLE 1)) (ADD I32 (REG I32 (HOLE 2 R32)) (CONVZX I32 (REG I1 CF)))) (INTCONST I32 0))) (SET (REG I1 SF) (TSTLTS I1 (ADD I32 (MEM I32 (HOLE 1)) (ADD I32 (REG I32 (HOLE 2 R32)) (CONVZX I32 (REG I1 CF)))) (INTCONST I32 0))) (SET (REG I1 OF) (OVERFLOW I1 (MEM I32 (HOLE 1)) (REG I32 (HOLE 2 R32)) (REG I1 CF))))) ;ADC r32,m32 (DEFINST ("ADC ?1r,DWORD PTR ??2s" "ADC ??2s,%?1r" "ADC ?1r,DWORD PTR ??2s") (PARALLEL (SET (REG I32 (HOLE 1 R32)) (ADD I32 (REG I32 (HOLE 1 R32)) (ADD I32 (MEM I32 (HOLE 2)) (CONVZX I32 (REG I1 CF))))) (SET (REG I1 CF) (CARRY I1 (REG I32 (HOLE 1 R32)) (MEM I32 (HOLE 2)) (REG I1 CF))) (SET (REG I1 PF) (PARITY I1 (CONVIT I8 (ADD I32 (REG I32 (HOLE 1 R32)) (ADD I32 (MEM I32 (HOLE 2)) (CONVZX I32 (REG I1 CF))))))) (SET (REG I1 AF) (ACARRY I1 (REG I32 (HOLE 1 R32)) (MEM I32 (HOLE 2)) (REG I1 CF))) (SET (REG I1 ZF) (TSTEQ I1 (ADD I32 (REG I32 (HOLE 1 R32)) (ADD I32 (MEM I32 (HOLE 2)) (CONVZX I32 (REG I1 CF)))) (INTCONST I32 0))) (SET (REG I1 SF) (TSTLTS I1 (ADD I32 (REG I32 (HOLE 1 R32)) (ADD I32 (MEM I32 (HOLE 2)) (CONVZX I32 (REG I1 CF)))) (INTCONST I32 0))) (SET (REG I1 OF) (OVERFLOW I1 (REG I32 (HOLE 1 R32)) (MEM I32 (HOLE 2)) (REG I1 CF))))) ;ADD(add integers) ;ADD r8,imm8 (DEFINST ("ADD ?1l,?2c" "ADD $?2c,%?1l" "ADD ?1l,?2c") (PARALLEL (SET (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (ADD I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (INTCONST I8 (HOLE 2)))) (SET (REG I1 CF) (CARRY I1 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (INTCONST I8 (HOLE 2)) (INTCONST I1 0))) (SET (REG I1 PF) (PARITY I1 (ADD I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (INTCONST I8 (HOLE 2))))) (SET (REG I1 AF) (ACARRY I1 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (INTCONST I8 (HOLE 2)) (INTCONST I1 0))) (SET (REG I1 ZF) (TSTEQ I1 (ADD I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (INTCONST I8 (HOLE 2))) (INTCONST I8 0))) (SET (REG I1 SF) (TSTLTS I1 (ADD I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (INTCONST I8 (HOLE 2))) (INTCONST I8 0))) (SET (REG I1 OF) (OVERFLOW I1 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (INTCONST I8 (HOLE 2)) (INTCONST I1 0))))) (DEFINST ("ADD ?1h,?2c" "ADD $?2c,%?1h" "ADD ?1h,?2c") (PARALLEL (SET (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (ADD I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (INTCONST I8 (HOLE 2)))) (SET (REG I1 CF) (CARRY I1 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (INTCONST I8 (HOLE 2)) (INTCONST I1 0))) (SET (REG I1 PF) (PARITY I1 (ADD I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (INTCONST I8 (HOLE 2))))) (SET (REG I1 AF) (ACARRY I1 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (INTCONST I8 (HOLE 2)) (INTCONST I1 0))) (SET (REG I1 ZF) (TSTEQ I1 (ADD I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (INTCONST I8 (HOLE 2))) (INTCONST I8 0))) (SET (REG I1 SF) (TSTLTS I1 (ADD I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (INTCONST I8 (HOLE 2))) (INTCONST I8 0))) (SET (REG I1 OF) (OVERFLOW I1 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (INTCONST I8 (HOLE 2)) (INTCONST I1 0))))) ;ADD m8,imm8 (DEFINST ("ADD BYTE PTR ??1s,?2c" "ADDB $?2c,??1s" "ADD BYTE PTR ??1s,?2c") (PARALLEL (SET (MEM I8 (HOLE 1)) (ADD I8 (MEM I8 (HOLE 1)) (INTCONST I8 (HOLE 2)))) (SET (REG I1 CF) (CARRY I1 (MEM I8 (HOLE 1)) (INTCONST I8 (HOLE 2)) (INTCONST I1 0))) (SET (REG I1 PF) (PARITY I1 (ADD I8 (MEM I8 (HOLE 1)) (INTCONST I8 (HOLE 2))))) (SET (REG I1 AF) (ACARRY I1 (MEM I8 (HOLE 1)) (INTCONST I8 (HOLE 2)) (INTCONST I1 0))) (SET (REG I1 ZF) (TSTEQ I1 (ADD I8 (MEM I8 (HOLE 1)) (INTCONST I8 (HOLE 2))) (INTCONST I8 0))) (SET (REG I1 SF) (TSTLTS I1 (ADD I8 (MEM I8 (HOLE 1)) (INTCONST I8 (HOLE 2))) (INTCONST I8 0))) (SET (REG I1 OF) (OVERFLOW I1 (MEM I8 (HOLE 1)) (INTCONST I8 (HOLE 2)) (INTCONST I1 0))))) ;ADD r16,imm16 (DEFINST ("ADD ?1w,?2c" "ADD $?2c,%?1w" "ADD ?1w,?2c") (PARALLEL (SET (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (ADD I16 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (INTCONST I16 (HOLE 2)))) (SET (REG I1 CF) (CARRY I1 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (INTCONST I16 (HOLE 2)) (INTCONST I1 0))) (SET (REG I1 PF) (PARITY I1 (CONVIT I8 (ADD I16 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (INTCONST I16 (HOLE 2)))))) (SET (REG I1 AF) (ACARRY I1 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (INTCONST I16 (HOLE 2)) (INTCONST I1 0))) (SET (REG I1 ZF) (TSTEQ I1 (ADD I16 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (INTCONST I16 (HOLE 2))) (INTCONST I16 0))) (SET (REG I1 SF) (TSTLTS I1 (ADD I16 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (INTCONST I16 (HOLE 2))) (INTCONST I16 0))) (SET (REG I1 OF) (OVERFLOW I1 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (INTCONST I16 (HOLE 2)) (INTCONST I1 0))))) ;ADD m16,imm16 (DEFINST ("ADD WORD PTR ??1s,?2c" "ADDW $?2c,??1s" "ADD WORD PTR ??1s,?2c") (PARALLEL (SET (MEM I16 (HOLE 1)) (ADD I16 (MEM I16 (HOLE 1)) (INTCONST I16 (HOLE 2)))) (SET (REG I1 CF) (CARRY I1 (MEM I16 (HOLE 1)) (INTCONST I16 (HOLE 2)) (INTCONST I1 0))) (SET (REG I1 PF) (PARITY I1 (CONVIT I8 (ADD I16 (MEM I16 (HOLE 1)) (INTCONST I16 (HOLE 2)))))) (SET (REG I1 AF) (ACARRY I1 (MEM I16 (HOLE 1)) (INTCONST I16 (HOLE 2)) (INTCONST I1 0))) (SET (REG I1 ZF) (TSTEQ I1 (ADD I16 (MEM I16 (HOLE 1)) (INTCONST I16 (HOLE 2))) (INTCONST I16 0))) (SET (REG I1 SF) (TSTLTS I1 (ADD I16 (MEM I16 (HOLE 1)) (INTCONST I16 (HOLE 2))) (INTCONST I16 0))) (SET (REG I1 OF) (OVERFLOW I1 (MEM I16 (HOLE 1)) (INTCONST I16 (HOLE 2)) (INTCONST I1 0))))) ;ADD r32,imm32 (DEFINST ("ADD ?1r,?2c" "ADD $?2c,%?1r" "ADD ?1r,?2c") (PARALLEL (SET (REG I32 (HOLE 1 R32)) (ADD I32 (REG I32 (HOLE 1 R32)) (INTCONST I32 (HOLE 2)))) (SET (REG I1 CF) (CARRY I1 (REG I32 (HOLE 1 R32)) (INTCONST I32 (HOLE 2)) (INTCONST I1 0))) (SET (REG I1 PF) (PARITY I1 (CONVIT I8 (ADD I32 (REG I32 (HOLE 1 R32)) (INTCONST I32 (HOLE 2)))))) (SET (REG I1 AF) (ACARRY I1 (REG I32 (HOLE 1 R32)) (INTCONST I32 (HOLE 2)) (INTCONST I1 0))) (SET (REG I1 ZF) (TSTEQ I1 (ADD I32 (REG I32 (HOLE 1 R32)) (INTCONST I32 (HOLE 2))) (INTCONST I32 0))) (SET (REG I1 SF) (TSTLTS I1 (ADD I32 (REG I32 (HOLE 1 R32)) (INTCONST I32 (HOLE 2))) (INTCONST I32 0))) (SET (REG I1 OF) (OVERFLOW I1 (REG I32 (HOLE 1 R32)) (INTCONST I32 (HOLE 2)) (INTCONST I1 0))))) (DEFINST ("ADD ?1r,??2a" "ADD $??2a,%?1r" "ADD ?1r,??2a") (PARALLEL (SET (REG I32 (HOLE 1 R32)) (ADD I32 (REG I32 (HOLE 1 R32)) (HOLE 2))) (SET (REG I1 CF) (CARRY I1 (REG I32 (HOLE 1 R32)) (HOLE 2) (INTCONST I1 0))) (SET (REG I1 PF) (PARITY I1 (CONVIT I8 (ADD I32 (REG I32 (HOLE 1 R32)) (HOLE 2))))) (SET (REG I1 AF) (ACARRY I1 (REG I32 (HOLE 1 R32)) (HOLE 2) (INTCONST I1 0))) (SET (REG I1 ZF) (TSTEQ I1 (ADD I32 (REG I32 (HOLE 1 R32)) (HOLE 2)) (INTCONST I32 0))) (SET (REG I1 SF) (TSTLTS I1 (ADD I32 (REG I32 (HOLE 1 R32)) (HOLE 2)) (INTCONST I32 0))) (SET (REG I1 OF) (OVERFLOW I1 (REG I32 (HOLE 1 R32)) (HOLE 2) (INTCONST I1 0))))) ;ADD m32,imm32 (DEFINST ("ADD DWORD PTR ??1s,?2c" "ADDL $?2c,??1s" "ADD DWORD PTR ??1s,?2c") (PARALLEL (SET (MEM I32 (HOLE 1)) (ADD I32 (MEM I32 (HOLE 1)) (INTCONST I32 (HOLE 2)))) (SET (REG I1 CF) (CARRY I1 (MEM I32 (HOLE 1)) (INTCONST I32 (HOLE 2)) (INTCONST I1 0))) (SET (REG I1 PF) (PARITY I1 (CONVIT I8 (ADD I32 (MEM I32 (HOLE 1)) (INTCONST I32 (HOLE 2)))))) (SET (REG I1 AF) (ACARRY I1 (MEM I32 (HOLE 1)) (INTCONST I32 (HOLE 2)) (INTCONST I1 0))) (SET (REG I1 ZF) (TSTEQ I1 (ADD I32 (MEM I32 (HOLE 1)) (INTCONST I32 (HOLE 2))) (INTCONST I32 0))) (SET (REG I1 SF) (TSTLTS I1 (ADD I32 (MEM I32 (HOLE 1)) (INTCONST I32 (HOLE 2))) (INTCONST I32 0))) (SET (REG I1 OF) (OVERFLOW I1 (MEM I32 (HOLE 1)) (INTCONST I32 (HOLE 2)) (INTCONST I1 0))))) (DEFINST ("ADD DWORD PTR ??1s,??2a" "ADDL $??2a,??1s" "ADD DWORD PTR ??1s,??2a") (PARALLEL (SET (MEM I32 (HOLE 1)) (ADD I32 (MEM I32 (HOLE 1)) (HOLE 2))) (SET (REG I1 CF) (CARRY I1 (MEM I32 (HOLE 1)) (HOLE 2) (INTCONST I1 0))) (SET (REG I1 PF) (PARITY I1 (CONVIT I8 (ADD I32 (MEM I32 (HOLE 1)) (HOLE 2))))) (SET (REG I1 AF) (ACARRY I1 (MEM I32 (HOLE 1)) (HOLE 2) (INTCONST I1 0))) (SET (REG I1 ZF) (TSTEQ I1 (ADD I32 (MEM I32 (HOLE 1)) (HOLE 2)) (INTCONST I32 0))) (SET (REG I1 SF) (TSTLTS I1 (ADD I32 (MEM I32 (HOLE 1)) (HOLE 2)) (INTCONST I32 0))) (SET (REG I1 OF) (OVERFLOW I1 (MEM I32 (HOLE 1)) (HOLE 2) (INTCONST I1 0))))) ;ADD r8,r8 (DEFINST ("ADD ?1l,?2l" "ADD %?2l,%?1l" "ADD ?1l,?2l") (PARALLEL (SET (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (ADD I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (SUBREG I8 (REG I32 (HOLE 2 R32)) 0))) (SET (REG I1 CF) (CARRY I1 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (SUBREG I8 (REG I32 (HOLE 2 R32)) 0) (INTCONST I1 0))) (SET (REG I1 PF) (PARITY I1 (ADD I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (SUBREG I8 (REG I32 (HOLE 2 R32)) 0)))) (SET (REG I1 AF) (ACARRY I1 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (SUBREG I8 (REG I32 (HOLE 2 R32)) 0) (INTCONST I1 0))) (SET (REG I1 ZF) (TSTEQ I1 (ADD I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (SUBREG I8 (REG I32 (HOLE 2 R32)) 0)) (INTCONST I8 0))) (SET (REG I1 SF) (TSTLTS I1 (ADD I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (SUBREG I8 (REG I32 (HOLE 2 R32)) 0)) (INTCONST I8 0))) (SET (REG I1 OF) (OVERFLOW I1 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (SUBREG I8 (REG I32 (HOLE 2 R32)) 0) (INTCONST I1 0))))) (DEFINST ("ADD ?1l,?2h" "ADD %?2h,%?1l" "ADD ?1l,?2h") (PARALLEL (SET (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (ADD I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (SUBREG I8 (REG I32 (HOLE 2 R32)) 1))) (SET (REG I1 CF) (CARRY I1 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (SUBREG I8 (REG I32 (HOLE 2 R32)) 1) (INTCONST I1 0))) (SET (REG I1 PF) (PARITY I1 (ADD I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (SUBREG I8 (REG I32 (HOLE 2 R32)) 1)))) (SET (REG I1 AF) (ACARRY I1 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (SUBREG I8 (REG I32 (HOLE 2 R32)) 1) (INTCONST I1 0))) (SET (REG I1 ZF) (TSTEQ I1 (ADD I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (SUBREG I8 (REG I32 (HOLE 2 R32)) 1)) (INTCONST I8 0))) (SET (REG I1 SF) (TSTLTS I1 (ADD I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (SUBREG I8 (REG I32 (HOLE 2 R32)) 1)) (INTCONST I8 0))) (SET (REG I1 OF) (OVERFLOW I1 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (SUBREG I8 (REG I32 (HOLE 2 R32)) 1) (INTCONST I1 0))))) (DEFINST ("ADD ?1h,?2l" "ADD %?2l,%?1h" "ADD ?1h,?2l") (PARALLEL (SET (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (ADD I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (SUBREG I8 (REG I32 (HOLE 2 R32)) 0))) (SET (REG I1 CF) (CARRY I1 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (SUBREG I8 (REG I32 (HOLE 2 R32)) 0) (INTCONST I1 0))) (SET (REG I1 PF) (PARITY I1 (ADD I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (SUBREG I8 (REG I32 (HOLE 2 R32)) 0)))) (SET (REG I1 AF) (ACARRY I1 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (SUBREG I8 (REG I32 (HOLE 2 R32)) 0) (INTCONST I1 0))) (SET (REG I1 ZF) (TSTEQ I1 (ADD I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (SUBREG I8 (REG I32 (HOLE 2 R32)) 0)) (INTCONST I8 0))) (SET (REG I1 SF) (TSTLTS I1 (ADD I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (SUBREG I8 (REG I32 (HOLE 2 R32)) 0)) (INTCONST I8 0))) (SET (REG I1 OF) (OVERFLOW I1 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (SUBREG I8 (REG I32 (HOLE 2 R32)) 0) (INTCONST I1 0))))) (DEFINST ("ADD ?1h,?2h" "ADD %?2h,%?1h" "ADD ?1h,?2h") (PARALLEL (SET (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (ADD I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (SUBREG I8 (REG I32 (HOLE 2 R32)) 1))) (SET (REG I1 CF) (CARRY I1 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (SUBREG I8 (REG I32 (HOLE 2 R32)) 1) (INTCONST I1 0))) (SET (REG I1 PF) (PARITY I1 (ADD I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (SUBREG I8 (REG I32 (HOLE 2 R32)) 1)))) (SET (REG I1 AF) (ACARRY I1 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (SUBREG I8 (REG I32 (HOLE 2 R32)) 1) (INTCONST I1 0))) (SET (REG I1 ZF) (TSTEQ I1 (ADD I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (SUBREG I8 (REG I32 (HOLE 2 R32)) 1)) (INTCONST I8 0))) (SET (REG I1 SF) (TSTLTS I1 (ADD I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (SUBREG I8 (REG I32 (HOLE 2 R32)) 1)) (INTCONST I8 0))) (SET (REG I1 OF) (OVERFLOW I1 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (SUBREG I8 (REG I32 (HOLE 2 R32)) 1) (INTCONST I1 0))))) ;ADD m8,r8 (DEFINST ("ADD BYTE PTR ??1s,?2l" "ADD %?2l,??1s" "ADD BYTE PTR ??1s,?2l") (PARALLEL (SET (MEM I8 (HOLE 1)) (ADD I8 (MEM I8 (HOLE 1)) (SUBREG I8 (REG I32 (HOLE 2 R32)) 0))) (SET (REG I1 CF) (CARRY I1 (MEM I8 (HOLE 1)) (SUBREG I8 (REG I32 (HOLE 2 R32)) 0) (INTCONST I1 0))) (SET (REG I1 PF) (PARITY I1 (ADD I8 (MEM I8 (HOLE 1)) (SUBREG I8 (REG I32 (HOLE 2 R32)) 0)))) (SET (REG I1 AF) (ACARRY I1 (MEM I8 (HOLE 1)) (SUBREG I8 (REG I32 (HOLE 2 R32)) 0) (INTCONST I1 0))) (SET (REG I1 ZF) (TSTEQ I1 (ADD I8 (MEM I8 (HOLE 1)) (SUBREG I8 (REG I32 (HOLE 2 R32)) 0)) (INTCONST I8 0))) (SET (REG I1 SF) (TSTLTS I1 (ADD I8 (MEM I8 (HOLE 1)) (SUBREG I8 (REG I32 (HOLE 2 R32)) 0)) (INTCONST I8 0))) (SET (REG I1 OF) (OVERFLOW I1 (MEM I8 (HOLE 1)) (SUBREG I8 (REG I32 (HOLE 2 R32)) 0) (INTCONST I1 0))))) (DEFINST ("ADD BYTE PTR ??1s,?2h" "ADD %?2h,??1s" "ADD BYTE PTR ??1s,?2h") (PARALLEL (SET (MEM I8 (HOLE 1)) (ADD I8 (MEM I8 (HOLE 1)) (SUBREG I8 (REG I32 (HOLE 2 R32)) 1))) (SET (REG I1 CF) (CARRY I1 (MEM I8 (HOLE 1)) (SUBREG I8 (REG I32 (HOLE 2 R32)) 1) (INTCONST I1 0))) (SET (REG I1 PF) (PARITY I1 (ADD I8 (MEM I8 (HOLE 1)) (SUBREG I8 (REG I32 (HOLE 2 R32)) 1)))) (SET (REG I1 AF) (ACARRY I1 (MEM I8 (HOLE 1)) (SUBREG I8 (REG I32 (HOLE 2 R32)) 1) (INTCONST I1 0))) (SET (REG I1 ZF) (TSTEQ I1 (ADD I8 (MEM I8 (HOLE 1)) (SUBREG I8 (REG I32 (HOLE 2 R32)) 1)) (INTCONST I8 0))) (SET (REG I1 SF) (TSTLTS I1 (ADD I8 (MEM I8 (HOLE 1)) (SUBREG I8 (REG I32 (HOLE 2 R32)) 1)) (INTCONST I8 0))) (SET (REG I1 OF) (OVERFLOW I1 (MEM I8 (HOLE 1)) (SUBREG I8 (REG I32 (HOLE 2 R32)) 1) (INTCONST I1 0))))) ;ADD r8,m8 (DEFINST ("ADD ?1l,BYTE PTR ??2s" "ADD ??2s,%?1l" "ADD ?1l,BYTE PTR ??2s") (PARALLEL (SET (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (ADD I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (MEM I8 (HOLE 2)))) (SET (REG I1 CF) (CARRY I1 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (MEM I8 (HOLE 2)) (INTCONST I1 0))) (SET (REG I1 PF) (PARITY I1 (ADD I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (MEM I8 (HOLE 2))))) (SET (REG I1 AF) (ACARRY I1 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (MEM I8 (HOLE 2)) (INTCONST I1 0))) (SET (REG I1 ZF) (TSTEQ I1 (ADD I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (MEM I8 (HOLE 2))) (INTCONST I8 0))) (SET (REG I1 SF) (TSTLTS I1 (ADD I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (MEM I8 (HOLE 2))) (INTCONST I8 0))) (SET (REG I1 OF) (OVERFLOW I1 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (MEM I8 (HOLE 2)) (INTCONST I1 0))))) (DEFINST ("ADD ?1h,BYTE PTR ??2s" "ADD ??2s,%?1h" "ADD ?1h,BYTE PTR ??2s") (PARALLEL (SET (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (ADD I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (MEM I8 (HOLE 2)))) (SET (REG I1 CF) (CARRY I1 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (MEM I8 (HOLE 2)) (INTCONST I1 0))) (SET (REG I1 PF) (PARITY I1 (ADD I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (MEM I8 (HOLE 2))))) (SET (REG I1 AF) (ACARRY I1 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (MEM I8 (HOLE 2)) (INTCONST I1 0))) (SET (REG I1 ZF) (TSTEQ I1 (ADD I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (MEM I8 (HOLE 2))) (INTCONST I8 0))) (SET (REG I1 SF) (TSTLTS I1 (ADD I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (MEM I8 (HOLE 2))) (INTCONST I8 0))) (SET (REG I1 OF) (OVERFLOW I1 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (MEM I8 (HOLE 2)) (INTCONST I1 0))))) ;ADD r16,r16 (DEFINST ("ADD ?1w,?2w" "ADD %?2w,%?1w" "ADD ?1w,?2w") (PARALLEL (SET (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (ADD I16 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (SUBREG I16 (REG I32 (HOLE 2 R32)) 0))) (SET (REG I1 CF) (CARRY I1 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (SUBREG I16 (REG I32 (HOLE 2 R32)) 0) (INTCONST I1 0))) (SET (REG I1 PF) (PARITY I1 (CONVIT I8 (ADD I16 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (SUBREG I16 (REG I32 (HOLE 2 R32)) 0))))) (SET (REG I1 AF) (ACARRY I1 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (SUBREG I16 (REG I32 (HOLE 2 R32)) 0) (INTCONST I1 0))) (SET (REG I1 ZF) (TSTEQ I1 (ADD I16 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (SUBREG I16 (REG I32 (HOLE 2 R32)) 0)) (INTCONST I16 0))) (SET (REG I1 SF) (TSTLTS I1 (ADD I16 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (SUBREG I16 (REG I32 (HOLE 2 R32)) 0)) (INTCONST I16 0))) (SET (REG I1 OF) (OVERFLOW I1 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (SUBREG I16 (REG I32 (HOLE 2 R32)) 0) (INTCONST I1 0))))) ;ADD m16,r16 (DEFINST ("ADD WORD PTR ??1s,?2w" "ADD %?2w,??1s" "ADD WORD PTR ??1s,?2w") (PARALLEL (SET (MEM I16 (HOLE 1)) (ADD I16 (MEM I16 (HOLE 1)) (SUBREG I16 (REG I32 (HOLE 2 R32)) 0))) (SET (REG I1 CF) (CARRY I1 (MEM I16 (HOLE 1)) (SUBREG I16 (REG I32 (HOLE 2 R32)) 0) (INTCONST I1 0))) (SET (REG I1 PF) (PARITY I1 (CONVIT I8 (ADD I16 (MEM I16 (HOLE 1)) (SUBREG I16 (REG I32 (HOLE 2 R32)) 0))))) (SET (REG I1 AF) (ACARRY I1 (MEM I16 (HOLE 1)) (SUBREG I16 (REG I32 (HOLE 2 R32)) 0) (INTCONST I1 0))) (SET (REG I1 ZF) (TSTEQ I1 (ADD I16 (MEM I16 (HOLE 1)) (SUBREG I16 (REG I32 (HOLE 2 R32)) 0)) (INTCONST I16 0))) (SET (REG I1 SF) (TSTLTS I1 (ADD I16 (MEM I16 (HOLE 1)) (SUBREG I16 (REG I32 (HOLE 2 R32)) 0)) (INTCONST I16 0))) (SET (REG I1 OF) (OVERFLOW I1 (MEM I16 (HOLE 1)) (SUBREG I16 (REG I32 (HOLE 2 R32)) 0) (INTCONST I1 0))))) ;ADD r16,m16 (DEFINST ("ADD ?1w,WORD PTR ??2s" "ADD ??2s,%?1w" "ADD ?1w,WORD PTR ??2s") (PARALLEL (SET (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (ADD I16 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (MEM I16 (HOLE 2)))) (SET (REG I1 CF) (CARRY I1 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (MEM I16 (HOLE 2)) (INTCONST I1 0))) (SET (REG I1 PF) (PARITY I1 (CONVIT I8 (ADD I16 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (MEM I16 (HOLE 2)))))) (SET (REG I1 AF) (ACARRY I1 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (MEM I16 (HOLE 2)) (INTCONST I1 0))) (SET (REG I1 ZF) (TSTEQ I1 (ADD I16 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (MEM I16 (HOLE 2))) (INTCONST I16 0))) (SET (REG I1 SF) (TSTLTS I1 (ADD I16 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (MEM I16 (HOLE 2))) (INTCONST I16 0))) (SET (REG I1 OF) (OVERFLOW I1 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (MEM I16 (HOLE 2)) (INTCONST I1 0))))) ;ADD r32,r32 (DEFINST ("ADD ?1r,?2r" "ADD %?2r,%?1r" "ADD ?1r,?2r") (PARALLEL (SET (REG I32 (HOLE 1 R32)) (ADD I32 (REG I32 (HOLE 1 R32)) (REG I32 (HOLE 2 R32)))) (SET (REG I1 CF) (CARRY I1 (REG I32 (HOLE 1 R32)) (REG I32 (HOLE 2 R32)) (INTCONST I1 0))) (SET (REG I1 PF) (PARITY I1 (CONVIT I8 (ADD I32 (REG I32 (HOLE 1 R32)) (REG I32 (HOLE 2 R32)))))) (SET (REG I1 AF) (ACARRY I1 (REG I32 (HOLE 1 R32)) (REG I32 (HOLE 2 R32)) (INTCONST I1 0))) (SET (REG I1 ZF) (TSTEQ I1 (ADD I32 (REG I32 (HOLE 1 R32)) (REG I32 (HOLE 2 R32))) (INTCONST I32 0))) (SET (REG I1 SF) (TSTLTS I1 (ADD I32 (REG I32 (HOLE 1 R32))(REG I32 (HOLE 2 R32))) (INTCONST I32 0))) (SET (REG I1 OF) (OVERFLOW I1 (REG I32 (HOLE 1 R32)) (REG I32 (HOLE 2 R32)) (INTCONST I1 0))))) ;ADD m32,r32 (DEFINST ("ADD DWORD PTR ??1s,?2r" "ADD %?2r,??1s" "ADD DWORD PTR ??1s,?2r") (PARALLEL (SET (MEM I32 (HOLE 1)) (ADD I32 (MEM I32 (HOLE 1)) (REG I32 (HOLE 2 R32)))) (SET (REG I1 CF) (CARRY I1 (MEM I32 (HOLE 1)) (REG I32 (HOLE 2 R32)) (INTCONST I1 0))) (SET (REG I1 PF) (PARITY I1 (CONVIT I8 (ADD I32 (MEM I32 (HOLE 1)) (REG I32 (HOLE 2 R32)))))) (SET (REG I1 AF) (ACARRY I1 (MEM I32 (HOLE 1)) (REG I32 (HOLE 2 R32)) (INTCONST I1 0))) (SET (REG I1 ZF) (TSTEQ I1 (ADD I32 (MEM I32 (HOLE 1)) (REG I32 (HOLE 2 R32))) (INTCONST I32 0))) (SET (REG I1 SF) (TSTLTS I1 (ADD I32 (MEM I32 (HOLE 1))(REG I32 (HOLE 2 R32))) (INTCONST I32 0))) (SET (REG I1 OF) (OVERFLOW I1 (MEM I32 (HOLE 1)) (REG I32 (HOLE 2 R32)) (INTCONST I1 0))))) ;ADD r32,m32 (DEFINST ("ADD ?1r,DWORD PTR ??2s" "ADD ??2s,%?1r" "ADD ?1r,DWORD PTR ??2s") (PARALLEL (SET (REG I32 (HOLE 1 R32)) (ADD I32 (REG I32 (HOLE 1 R32)) (MEM I32 (HOLE 2)))) (SET (REG I1 CF) (CARRY I1 (REG I32 (HOLE 1 R32)) (MEM I32 (HOLE 2)) (INTCONST I1 0))) (SET (REG I1 PF) (PARITY I1 (CONVIT I8 (ADD I32 (REG I32 (HOLE 1 R32)) (MEM I32 (HOLE 2)))))) (SET (REG I1 AF) (ACARRY I1 (REG I32 (HOLE 1 R32)) (MEM I32 (HOLE 2)) (INTCONST I1 0))) (SET (REG I1 ZF) (TSTEQ I1 (ADD I32 (REG I32 (HOLE 1 R32)) (MEM I32 (HOLE 2))) (INTCONST I32 0))) (SET (REG I1 SF) (TSTLTS I1 (ADD I32 (REG I32 (HOLE 1 R32)) (MEM I32 (HOLE 2))) (INTCONST I32 0))) (SET (REG I1 OF) (OVERFLOW I1 (REG I32 (HOLE 1 R32)) (MEM I32 (HOLE 2)) (INTCONST I1 0))))) ;CMP(compare) ;CMP r8,imm8 (DEFINST ("CMP ?1l,?2c" "CMP $?2c,%?1l" "CMP ?1l,?2c") (PARALLEL (SET (REG I1 CF) (BNOT I1 (CARRY I1 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (BNOT I8 (INTCONST I8 (HOLE 2))) (INTCONST I1 1)))) (SET (REG I1 PF) (PARITY I1 (SUB I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (INTCONST I8 (HOLE 2))))) (SET (REG I1 AF) (BNOT I1 (ACARRY I1 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (BNOT I8 (INTCONST I8 (HOLE 2))) (INTCONST I1 1)))) (SET (REG I1 ZF) (TSTEQ I1 (SUB I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (INTCONST I8 (HOLE 2))) (INTCONST I8 0))) (SET (REG I1 SF) (TSTLTS I1 (SUB I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (INTCONST I8 (HOLE 2))) (INTCONST I8 0))) (SET (REG I1 OF) (OVERFLOW I1 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (BNOT I8 (INTCONST I8 (HOLE 2))) (INTCONST I1 1))))) (DEFINST ("CMP ?1h,?2c" "CMP $?2c,%?1h" "CMP ?1h,?2c") (PARALLEL (SET (REG I1 CF) (BNOT I1 (CARRY I1 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (BNOT I8 (INTCONST I8 (HOLE 2))) (INTCONST I1 1)))) (SET (REG I1 PF) (PARITY I1 (SUB I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (INTCONST I8 (HOLE 2))))) (SET (REG I1 AF) (BNOT I1 (ACARRY I1 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (BNOT I8 (INTCONST I8 (HOLE 2))) (INTCONST I1 1)))) (SET (REG I1 ZF) (TSTEQ I1 (SUB I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (INTCONST I8 (HOLE 2))) (INTCONST I8 0))) (SET (REG I1 SF) (TSTLTS I1 (SUB I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (INTCONST I8 (HOLE 2))) (INTCONST I8 0))) (SET (REG I1 OF) (OVERFLOW I1 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (BNOT I8 (INTCONST I8 (HOLE 2))) (INTCONST I1 1))))) ;CMP m8,imm8 (DEFINST ("CMP BYTE PTR ??1s,?2c" "CMPB $?2c,??1s" "CMP BYTE PTR ??1s,?2c") (PARALLEL (SET (REG I1 CF) (BNOT I1 (CARRY I1 (MEM I8 (HOLE 1)) (BNOT I8 (INTCONST I8 (HOLE 2))) (INTCONST I1 1)))) (SET (REG I1 PF) (PARITY I1 (SUB I8 (MEM I8 (HOLE 1)) (INTCONST I8 (HOLE 2))))) (SET (REG I1 AF) (BNOT I1 (ACARRY I1 (MEM I8 (HOLE 1)) (BNOT I8 (INTCONST I8 (HOLE 2))) (INTCONST I1 1)))) (SET (REG I1 ZF) (TSTEQ I1 (SUB I8 (MEM I8 (HOLE 1)) (INTCONST I8 (HOLE 2))) (INTCONST I8 0))) (SET (REG I1 SF) (TSTLTS I1 (SUB I8 (MEM I8 (HOLE 1)) (INTCONST I8 (HOLE 2))) (INTCONST I8 0))) (SET (REG I1 OF) (OVERFLOW I1 (MEM I8 (HOLE 1)) (BNOT I8 (INTCONST I8 (HOLE 2))) (INTCONST I1 1))))) ;CMP r16,imm16 (DEFINST ("CMP ?1w,?2c" "CMP $?2c,%?1w" "CMP ?1w,?2c") (PARALLEL (SET (REG I1 CF) (BNOT I1 (CARRY I1 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (BNOT I16 (INTCONST I16 (HOLE 2))) (INTCONST I1 1)))) (SET (REG I1 PF) (PARITY I1 (CONVIT I8 (SUB I16 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (INTCONST I16 (HOLE 2)))))) (SET (REG I1 AF) (BNOT I1 (ACARRY I1 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (BNOT I16 (INTCONST I16 (HOLE 2))) (INTCONST I1 1)))) (SET (REG I1 ZF) (TSTEQ I1 (SUB I16 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (INTCONST I16 (HOLE 2))) (INTCONST I16 0))) (SET (REG I1 SF) (TSTLTS I1 (SUB I16 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (INTCONST I16 (HOLE 2))) (INTCONST I16 0))) (SET (REG I1 OF) (OVERFLOW I1 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (BNOT I16 (INTCONST I16 (HOLE 2))) (INTCONST I1 1))))) ;CMP m16,imm16 (DEFINST ("CMP WORD PTR ??1s,?2c" "CMPW $?2c,??1s" "CMP WORD PTR ??1s,?2c") (PARALLEL (SET (REG I1 CF) (BNOT I1 (CARRY I1 (MEM I16 (HOLE 1)) (BNOT I16 (INTCONST I16 (HOLE 2))) (INTCONST I1 1)))) (SET (REG I1 PF) (PARITY I1 (CONVIT I8 (SUB I16 (MEM I16 (HOLE 1)) (INTCONST I16 (HOLE 2)))))) (SET (REG I1 AF) (BNOT I1 (ACARRY I1 (MEM I16 (HOLE 1)) (BNOT I16 (INTCONST I16 (HOLE 2))) (INTCONST I1 1)))) (SET (REG I1 ZF) (TSTEQ I1 (SUB I16 (MEM I16 (HOLE 1)) (INTCONST I16 (HOLE 2))) (INTCONST I16 0))) (SET (REG I1 SF) (TSTLTS I1 (SUB I16 (MEM I16 (HOLE 1)) (INTCONST I16 (HOLE 2))) (INTCONST I16 0))) (SET (REG I1 OF) (OVERFLOW I1 (MEM I16 (HOLE 1)) (BNOT I16 (INTCONST I16 (HOLE 2))) (INTCONST I1 1))))) ;CMP r32,imm32 (DEFINST ("CMP ?1r,?2c" "CMP $?2c,%?1r" "CMP ?1r,?2c") (PARALLEL (SET (REG I1 CF) (BNOT I1 (CARRY I1 (REG I32 (HOLE 1 R32)) (BNOT I32 (INTCONST I32 (HOLE 2))) (INTCONST I1 1)))) (SET (REG I1 PF) (PARITY I1 (CONVIT I8 (SUB I32 (REG I32 (HOLE 1 R32)) (INTCONST I32 (HOLE 2)))))) (SET (REG I1 AF) (BNOT I1 (ACARRY I1 (REG I32 (HOLE 1 R32)) (BNOT I32 (INTCONST I32 (HOLE 2))) (INTCONST I1 1)))) (SET (REG I1 ZF) (TSTEQ I1 (SUB I32 (REG I32 (HOLE 1 R32)) (INTCONST I32 (HOLE 2))) (INTCONST I32 0))) (SET (REG I1 SF) (TSTLTS I1 (SUB I32 (REG I32 (HOLE 1 R32)) (INTCONST I32 (HOLE 2))) (INTCONST I32 0))) (SET (REG I1 OF) (OVERFLOW I1 (REG I32 (HOLE 1 R32)) (BNOT I32 (INTCONST I32 (HOLE 2))) (INTCONST I1 1))))) (DEFINST ("CMP ?1r,??2a" "CMP $??2a,%?1r" "CMP ?1r,??2a") (PARALLEL (SET (REG I1 CF) (BNOT I1 (CARRY I1 (REG I32 (HOLE 1 R32)) (BNOT I32 (HOLE 2)) (INTCONST I1 1)))) (SET (REG I1 PF) (PARITY I1 (CONVIT I8 (SUB I32 (REG I32 (HOLE 1 R32)) (HOLE 2))))) (SET (REG I1 AF) (BNOT I1 (ACARRY I1 (REG I32 (HOLE 1 R32)) (BNOT I32 (HOLE 2)) (INTCONST I1 1)))) (SET (REG I1 ZF) (TSTEQ I1 (SUB I32 (REG I32 (HOLE 1 R32)) (HOLE 2)) (INTCONST I32 0))) (SET (REG I1 SF) (TSTLTS I1 (SUB I32 (REG I32 (HOLE 1 R32)) (HOLE 2)) (INTCONST I32 0))) (SET (REG I1 OF) (OVERFLOW I1 (REG I32 (HOLE 1 R32)) (BNOT I32 (HOLE 2)) (INTCONST I1 1))))) ;CMP m32,imm32 (DEFINST ("CMP DWORD PTR ??1s,?2c" "CMPL $?2c,??1s" "CMP DWORD PTR ??1s,?2c") (PARALLEL (SET (REG I1 CF) (BNOT I1 (CARRY I1 (MEM I32 (HOLE 1)) (BNOT I32 (INTCONST I32 (HOLE 2))) (INTCONST I1 1)))) (SET (REG I1 PF) (PARITY I1 (CONVIT I8 (SUB I32 (MEM I32 (HOLE 1)) (INTCONST I32 (HOLE 2)))))) (SET (REG I1 AF) (BNOT I1 (ACARRY I1 (MEM I32 (HOLE 1)) (BNOT I32 (INTCONST I32 (HOLE 2))) (INTCONST I1 1)))) (SET (REG I1 ZF) (TSTEQ I1 (SUB I32 (MEM I32 (HOLE 1)) (INTCONST I32 (HOLE 2))) (INTCONST I32 0))) (SET (REG I1 SF) (TSTLTS I1 (SUB I32 (MEM I32 (HOLE 1)) (INTCONST I32 (HOLE 2))) (INTCONST I32 0))) (SET (REG I1 OF) (OVERFLOW I1 (MEM I32 (HOLE 1)) (BNOT I32 (INTCONST I32 (HOLE 2))) (INTCONST I1 1))))) (DEFINST ("CMP DWORD PTR ??1s,??2a" "CMPL $??2a,??1s" "CMP DWORD PTR ??1s,??2a") (PARALLEL (SET (REG I1 CF) (BNOT I1 (CARRY I1 (MEM I32 (HOLE 1)) (BNOT I32 (HOLE 2)) (INTCONST I1 1)))) (SET (REG I1 PF) (PARITY I1 (CONVIT I8 (SUB I32 (MEM I32 (HOLE 1)) (HOLE 2))))) (SET (REG I1 AF) (BNOT I1 (ACARRY I1 (MEM I32 (HOLE 1)) (BNOT I32 (HOLE 2)) (INTCONST I1 1)))) (SET (REG I1 ZF) (TSTEQ I1 (SUB I32 (MEM I32 (HOLE 1)) (HOLE 2)) (INTCONST I32 0))) (SET (REG I1 SF) (TSTLTS I1 (SUB I32 (MEM I32 (HOLE 1)) (HOLE 2)) (INTCONST I32 0))) (SET (REG I1 OF) (OVERFLOW I1 (MEM I32 (HOLE 1)) (BNOT I32 (HOLE 2)) (INTCONST I1 1))))) ;CMP r8,r8 (DEFINST ("CMP ?1l,?2l" "CMP %?2l,%?1l" "CMP ?1l,?2l") (PARALLEL (SET (REG I1 CF) (BNOT I1 (CARRY I1 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (BNOT I8 (SUBREG I8 (REG I32 (HOLE 2 R32)) 0)) (INTCONST I1 1)))) (SET (REG I1 PF) (PARITY I1 (SUB I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (SUBREG I8 (REG I32 (HOLE 2 R32)) 0)))) (SET (REG I1 AF) (BNOT I1 (ACARRY I1 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (BNOT I8 (SUBREG I8 (REG I32 (HOLE 2 R32)) 0)) (INTCONST I1 1)))) (SET (REG I1 ZF) (TSTEQ I1 (SUB I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (SUBREG I8 (REG I32 (HOLE 2 R32)) 0)) (INTCONST I8 0))) (SET (REG I1 SF) (TSTLTS I1 (SUB I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (SUBREG I8 (REG I32 (HOLE 2 R32)) 0)) (INTCONST I8 0))) (SET (REG I1 OF) (OVERFLOW I1 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (BNOT I8 (SUBREG I8 (REG I32 (HOLE 2 R32)) 0)) (INTCONST I1 1))))) (DEFINST ("CMP ?1l,?2h" "CMP %?2h,%?1l" "CMP ?1l,?2h") (PARALLEL (SET (REG I1 CF) (BNOT I1 (CARRY I1 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (BNOT I8 (SUBREG I8 (REG I32 (HOLE 2 R32)) 1)) (INTCONST I1 1)))) (SET (REG I1 PF) (PARITY I1 (SUB I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (SUBREG I8 (REG I32 (HOLE 2 R32)) 1)))) (SET (REG I1 AF) (BNOT I1 (ACARRY I1 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (BNOT I8 (SUBREG I8 (REG I32 (HOLE 2 R32)) 1)) (INTCONST I1 1)))) (SET (REG I1 ZF) (TSTEQ I1 (SUB I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (SUBREG I8 (REG I32 (HOLE 2 R32)) 1)) (INTCONST I8 0))) (SET (REG I1 SF) (TSTLTS I1 (SUB I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (SUBREG I8 (REG I32 (HOLE 2 R32)) 1)) (INTCONST I8 0))) (SET (REG I1 OF) (OVERFLOW I1 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (BNOT I8 (SUBREG I8 (REG I32 (HOLE 2 R32)) 1)) (INTCONST I1 1))))) (DEFINST ("CMP ?1h,?2l" "CMP %?2l,%?1h" "CMP ?1h,?2l") (PARALLEL (SET (REG I1 CF) (BNOT I1 (CARRY I1 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (BNOT I8 (SUBREG I8 (REG I32 (HOLE 2 R32)) 0)) (INTCONST I1 1)))) (SET (REG I1 PF) (PARITY I1 (SUB I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (SUBREG I8 (REG I32 (HOLE 2 R32)) 0)))) (SET (REG I1 AF) (BNOT I1 (ACARRY I1 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (BNOT I8 (SUBREG I8 (REG I32 (HOLE 2 R32)) 0)) (INTCONST I1 1)))) (SET (REG I1 ZF) (TSTEQ I1 (SUB I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (SUBREG I8 (REG I32 (HOLE 2 R32)) 0)) (INTCONST I8 0))) (SET (REG I1 SF) (TSTLTS I1 (SUB I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (SUBREG I8 (REG I32 (HOLE 2 R32)) 0)) (INTCONST I8 0))) (SET (REG I1 OF) (OVERFLOW I1 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (BNOT I8 (SUBREG I8 (REG I32 (HOLE 2 R32)) 0)) (INTCONST I1 1))))) (DEFINST ("CMP ?1h,?2h" "CMP %?2h,%?1h" "CMP ?1h,?2h") (PARALLEL (SET (REG I1 CF) (BNOT I1 (CARRY I1 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (BNOT I8 (SUBREG I8 (REG I32 (HOLE 2 R32)) 1)) (INTCONST I1 1)))) (SET (REG I1 PF) (PARITY I1 (SUB I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (SUBREG I8 (REG I32 (HOLE 2 R32)) 1)))) (SET (REG I1 AF) (BNOT I1 (ACARRY I1 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (BNOT I8 (SUBREG I8 (REG I32 (HOLE 2 R32)) 1)) (INTCONST I1 1)))) (SET (REG I1 ZF) (TSTEQ I1 (SUB I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (SUBREG I8 (REG I32 (HOLE 2 R32)) 1)) (INTCONST I8 0))) (SET (REG I1 SF) (TSTLTS I1 (SUB I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (SUBREG I8 (REG I32 (HOLE 2 R32)) 1)) (INTCONST I8 0))) (SET (REG I1 OF) (OVERFLOW I1 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (BNOT I8 (SUBREG I8 (REG I32 (HOLE 2 R32)) 1)) (INTCONST I1 1))))) ;CMP r8,m8 (DEFINST ("CMP ?1l,BYTE PTR ??2s" "CMP ??2s,%?1l" "CMP ?1l,BYTE PTR ??2s") (PARALLEL (SET (REG I1 CF) (BNOT I1 (CARRY I1 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (BNOT I8 (MEM I8 (HOLE 2))) (INTCONST I1 1)))) (SET (REG I1 PF) (PARITY I1 (SUB I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (MEM I8 (HOLE 2))))) (SET (REG I1 AF) (BNOT I1 (ACARRY I1 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (BNOT I8 (MEM I8 (HOLE 2))) (INTCONST I1 1)))) (SET (REG I1 ZF) (TSTEQ I1 (SUB I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (MEM I8 (HOLE 2))) (INTCONST I8 0))) (SET (REG I1 SF) (TSTLTS I1 (SUB I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (MEM I8 (HOLE 2))) (INTCONST I8 0))) (SET (REG I1 OF) (OVERFLOW I1 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (BNOT I8 (MEM I8 (HOLE 2))) (INTCONST I1 1))))) (DEFINST ("CMP ?1h,BYTE PTR ??2s" "CMP ??2s,%?1h" "CMP ?1h,BYTE PTR ??2s") (PARALLEL (SET (REG I1 CF) (BNOT I1 (CARRY I1 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (BNOT I8 (MEM I8 (HOLE 2))) (INTCONST I1 1)))) (SET (REG I1 PF) (PARITY I1 (SUB I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (MEM I8 (HOLE 2))))) (SET (REG I1 AF) (BNOT I1 (ACARRY I1 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (BNOT I8 (MEM I8 (HOLE 2))) (INTCONST I1 1)))) (SET (REG I1 ZF) (TSTEQ I1 (SUB I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (MEM I8 (HOLE 2))) (INTCONST I8 0))) (SET (REG I1 SF) (TSTLTS I1 (SUB I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (MEM I8 (HOLE 2))) (INTCONST I8 0))) (SET (REG I1 OF) (OVERFLOW I1 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (BNOT I8 (MEM I8 (HOLE 2))) (INTCONST I1 1))))) ;CMP m8,r8 (DEFINST ("CMP BYTE PTR ??1s,?2l" "CMP %?2l,??1s" "CMP BYTE PTR ??1s,?2l") (PARALLEL (SET (REG I1 CF) (BNOT I1 (CARRY I1 (MEM I8 (HOLE 1)) (BNOT I8 (SUBREG I8 (REG I32 (HOLE 2 R32)) 0)) (INTCONST I1 1)))) (SET (REG I1 PF) (PARITY I1 (SUB I8 (MEM I8 (HOLE 1)) (SUBREG I8 (REG I32 (HOLE 2 R32)) 0)))) (SET (REG I1 AF) (BNOT I1 (ACARRY I1 (MEM I8 (HOLE 1)) (BNOT I8 (SUBREG I8 (REG I32 (HOLE 2 R32)) 0)) (INTCONST I1 1)))) (SET (REG I1 ZF) (TSTEQ I1 (SUB I8 (MEM I8 (HOLE 1)) (SUBREG I8 (REG I32 (HOLE 2 R32)) 0)) (INTCONST I8 0))) (SET (REG I1 SF) (TSTLTS I1 (SUB I8 (MEM I8 (HOLE 1)) (SUBREG I8 (REG I32 (HOLE 2 R32)) 0)) (INTCONST I8 0))) (SET (REG I1 OF) (OVERFLOW I1 (MEM I8 (HOLE 1)) (BNOT I8 (SUBREG I8 (REG I32 (HOLE 2 R32)) 0)) (INTCONST I1 1))))) (DEFINST ("CMP BYTE PTR ??1s,?2h" "CMP %?2h,??1s" "CMP BYTE PTR ??1s,?2h") (PARALLEL (SET (REG I1 CF) (BNOT I1 (CARRY I1 (MEM I8 (HOLE 1)) (BNOT I8 (SUBREG I8 (REG I32 (HOLE 2 R32)) 1)) (INTCONST I1 1)))) (SET (REG I1 PF) (PARITY I1 (SUB I8 (MEM I8 (HOLE 1)) (SUBREG I8 (REG I32 (HOLE 2 R32)) 1)))) (SET (REG I1 AF) (BNOT I1 (ACARRY I1 (MEM I8 (HOLE 1)) (BNOT I8 (SUBREG I8 (REG I32 (HOLE 2 R32)) 1)) (INTCONST I1 1)))) (SET (REG I1 ZF) (TSTEQ I1 (SUB I8 (MEM I8 (HOLE 1)) (SUBREG I8 (REG I32 (HOLE 2 R32)) 1)) (INTCONST I8 0))) (SET (REG I1 SF) (TSTLTS I1 (SUB I8 (MEM I8 (HOLE 1)) (SUBREG I8 (REG I32 (HOLE 2 R32)) 1)) (INTCONST I8 0))) (SET (REG I1 OF) (OVERFLOW I1 (MEM I8 (HOLE 1)) (BNOT I8 (SUBREG I8 (REG I32 (HOLE 2 R32)) 1)) (INTCONST I1 1))))) ;CMP r16,r16 (DEFINST ("CMP ?1w,?2w" "CMP %?2w,%?1w" "CMP ?1w,?2w") (PARALLEL (SET (REG I1 CF) (BNOT I1 (CARRY I1 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (BNOT I16 (SUBREG I16 (REG I32 (HOLE 2 R32)) 0)) (INTCONST I1 1)))) (SET (REG I1 PF) (PARITY I1 (CONVIT I8 (SUB I16 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (SUBREG I16 (REG I32 (HOLE 2 R32)) 0))))) (SET (REG I1 AF) (BNOT I1 (ACARRY I1 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (BNOT I16 (SUBREG I16 (REG I32 (HOLE 2 R32)) 0)) (INTCONST I1 1)))) (SET (REG I1 ZF) (TSTEQ I1 (SUB I16 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (SUBREG I16 (REG I32 (HOLE 2 R32)) 0)) (INTCONST I16 0))) (SET (REG I1 SF) (TSTLTS I1 (SUB I16 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (SUBREG I16 (REG I32 (HOLE 2 R32)) 0)) (INTCONST I16 0))) (SET (REG I1 OF) (OVERFLOW I1 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (BNOT I16 (SUBREG I16 (REG I32 (HOLE 2 R32)) 0)) (INTCONST I1 1))))) ;CMP m16,r16 (DEFINST ("CMP WORD PTR ??1s,?2w" "CMP %?2w,??1s" "CMP WORD PTR ??1s,?2w") (PARALLEL (SET (REG I1 CF) (BNOT I1 (CARRY I1 (MEM I16 (HOLE 1)) (BNOT I16 (SUBREG I16 (REG I32 (HOLE 2 R32)) 0)) (INTCONST I1 1)))) (SET (REG I1 PF) (PARITY I1 (CONVIT I8 (SUB I16 (MEM I16 (HOLE 1)) (SUBREG I16 (REG I32 (HOLE 2 R32)) 0))))) (SET (REG I1 AF) (BNOT I1 (ACARRY I1 (MEM I16 (HOLE 1)) (BNOT I16 (SUBREG I16 (REG I32 (HOLE 2 R32)) 0)) (INTCONST I1 1)))) (SET (REG I1 ZF) (TSTEQ I1 (SUB I16 (MEM I16 (HOLE 1)) (SUBREG I16 (REG I32 (HOLE 2 R32)) 0)) (INTCONST I16 0))) (SET (REG I1 SF) (TSTLTS I1 (SUB I16 (MEM I16 (HOLE 1)) (SUBREG I16 (REG I32 (HOLE 2 R32)) 0)) (INTCONST I16 0))) (SET (REG I1 OF) (OVERFLOW I1 (MEM I16 (HOLE 1)) (BNOT I16 (SUBREG I16 (REG I32 (HOLE 2 R32)) 0)) (INTCONST I1 1))))) ;CMP r16,m16 (DEFINST ("CMP ?1w,WORD PTR ??2s" "CMP ??2s,%?1w" "CMP ?1w,WORD PTR ??2s") (PARALLEL (SET (REG I1 CF) (BNOT I1 (CARRY I1 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (BNOT I16 (MEM I16 (HOLE 2))) (INTCONST I1 1)))) (SET (REG I1 PF) (PARITY I1 (CONVIT I8 (SUB I16 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (MEM I16 (HOLE 2)))))) (SET (REG I1 AF) (BNOT I1 (ACARRY I1 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (BNOT I16 (MEM I16 (HOLE 2))) (INTCONST I1 1)))) (SET (REG I1 ZF) (TSTEQ I1 (SUB I16 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (MEM I16 (HOLE 2))) (INTCONST I16 0))) (SET (REG I1 SF) (TSTLTS I1 (SUB I16 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (MEM I16 (HOLE 2))) (INTCONST I16 0))) (SET (REG I1 OF) (OVERFLOW I1 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (BNOT I16 (MEM I16 (HOLE 2))) (INTCONST I1 1))))) ;CMP r32,r32 (DEFINST ("CMP ?1r,?2r" "CMP %?2r,%?1r" "CMP ?1r,?2r") (PARALLEL (SET (REG I1 CF) (BNOT I1 (CARRY I1 (REG I32 (HOLE 1 R32)) (BNOT I32 (REG I32 (HOLE 2 R32))) (INTCONST I1 1)))) (SET (REG I1 PF) (PARITY I1 (CONVIT I8 (SUB I32 (REG I32 (HOLE 1 R32)) (REG I32 (HOLE 2 R32)))))) (SET (REG I1 AF) (BNOT I1 (ACARRY I1 (REG I32 (HOLE 1 R32)) (BNOT I32 (REG I32 (HOLE 2 R32))) (INTCONST I1 1)))) (SET (REG I1 ZF) (TSTEQ I1 (SUB I32 (REG I32 (HOLE 1 R32)) (REG I32 (HOLE 2 R32))) (INTCONST I32 0))) (SET (REG I1 SF) (TSTLTS I1 (SUB I32 (REG I32 (HOLE 1 R32)) (REG I32 (HOLE 2 R32))) (INTCONST I32 0))) (SET (REG I1 OF) (OVERFLOW I1 (REG I32 (HOLE 1 R32)) (BNOT I32 (REG I32 (HOLE 2 R32))) (INTCONST I1 1))))) ;CMP m32,r32 (DEFINST ("CMP DWORD PTR ??1s,?2r" "CMP %?2r,??1s" "CMP DWORD PTR ??1s,?2r") (PARALLEL (SET (REG I1 CF) (BNOT I1 (CARRY I1 (MEM I32 (HOLE 1)) (BNOT I32 (REG I32 (HOLE 2 R32))) (INTCONST I1 1)))) (SET (REG I1 PF) (PARITY I1 (CONVIT I8 (SUB I32 (MEM I32 (HOLE 1)) (REG I32 (HOLE 2 R32)))))) (SET (REG I1 AF) (BNOT I1 (ACARRY I1 (MEM I32 (HOLE 1)) (BNOT I32 (REG I32 (HOLE 2 R32))) (INTCONST I1 1)))) (SET (REG I1 ZF) (TSTEQ I1 (SUB I32 (MEM I32 (HOLE 1)) (REG I32 (HOLE 2 R32))) (INTCONST I32 0))) (SET (REG I1 SF) (TSTLTS I1 (SUB I32 (MEM I32 (HOLE 1)) (REG I32 (HOLE 2 R32))) (INTCONST I32 0))) (SET (REG I1 OF) (OVERFLOW I1 (MEM I32 (HOLE 1)) (BNOT I32 (REG I32 (HOLE 2 R32))) (INTCONST I1 1))))) ;CMP r32,m32 (DEFINST ("CMP ?1r,DWORD PTR ??2s" "CMP ??2s,%?1r" "CMP ?1r,DWORD PTR ??2s") (PARALLEL (SET (REG I1 CF) (BNOT I1 (CARRY I1 (REG I32 (HOLE 1 R32)) (BNOT I32 (MEM I32 (HOLE 2))) (INTCONST I1 1)))) (SET (REG I1 PF) (PARITY I1 (CONVIT I8 (SUB I32 (REG I32 (HOLE 1 R32)) (MEM I32 (HOLE 2)))))) (SET (REG I1 AF) (BNOT I1 (ACARRY I1 (REG I32 (HOLE 1 R32)) (BNOT I32 (MEM I32 (HOLE 2))) (INTCONST I1 1)))) (SET (REG I1 ZF) (TSTEQ I1 (SUB I32 (REG I32 (HOLE 1 R32)) (MEM I32 (HOLE 2))) (INTCONST I32 0))) (SET (REG I1 SF) (TSTLTS I1 (SUB I32 (REG I32 (HOLE 1 R32)) (MEM I32 (HOLE 2))) (INTCONST I32 0))) (SET (REG I1 OF) (OVERFLOW I1 (REG I32 (HOLE 1 R32)) (BNOT I32 (MEM I32 (HOLE 2))) (INTCONST I1 1))))) ;DEC(decrement) ;DEC r8 (DEFINST ("DEC ?1l" "DEC %?1l" "DEC ?1l") (PARALLEL (SET (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (SUB I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (INTCONST I8 1))) (SET (REG I1 PF) (PARITY I1 (SUB I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (INTCONST I8 1)))) (SET (REG I1 AF) (ACARRY I1 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (BNOT I8 (INTCONST I8 1)) (INTCONST I1 1))) (SET (REG I1 ZF) (TSTEQ I1 (SUB I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (INTCONST I8 1)) (INTCONST I8 0))) (SET (REG I1 SF) (TSTLTS I1 (SUB I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (INTCONST I8 1)) (INTCONST I8 0))) (SET (REG I1 OF) (OVERFLOW I1 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (BNOT I8 (INTCONST I8 1)) (INTCONST I1 1))))) (DEFINST ("DEC ?1h" "DEC %?1h" "DEC ?1h") (PARALLEL (SET (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (SUB I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (INTCONST I8 1))) (SET (REG I1 PF) (PARITY I1 (SUB I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (INTCONST I8 1)))) (SET (REG I1 AF) (ACARRY I1 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (BNOT I8 (INTCONST I8 1)) (INTCONST I1 1))) (SET (REG I1 ZF) (TSTEQ I1 (SUB I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (INTCONST I8 1)) (INTCONST I8 0))) (SET (REG I1 SF) (TSTLTS I1 (SUB I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (INTCONST I8 1)) (INTCONST I8 0))) (SET (REG I1 OF) (OVERFLOW I1 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (BNOT I8 (INTCONST I8 1)) (INTCONST I1 1))))) ;DEC m8 (DEFINST ("DEC BYTE PTR ??1s" "DECB ??1s" "DEC BYTE PTR ??1s") (PARALLEL (SET (MEM I8 (HOLE 1)) (SUB I8 (MEM I8 (HOLE 1)) (INTCONST I8 1))) (SET (REG I1 PF) (PARITY I1 (SUB I8 (MEM I8 (HOLE 1)) (INTCONST I8 1)))) (SET (REG I1 AF) (ACARRY I1 (MEM I8 (HOLE 1)) (BNOT I8 (INTCONST I8 1)) (INTCONST I1 1))) (SET (REG I1 ZF) (TSTEQ I1 (SUB I8 (MEM I8 (HOLE 1)) (INTCONST I8 1)) (INTCONST I8 0))) (SET (REG I1 SF) (TSTLTS I1 (SUB I8 (MEM I8 (HOLE 1)) (INTCONST I8 1)) (INTCONST I8 0))) (SET (REG I1 OF) (OVERFLOW I1 (MEM I8 (HOLE 1)) (BNOT I8 (INTCONST I8 1)) (INTCONST I1 1))))) ;DEC r16 (DEFINST ("DEC ?1w" "DEC %?1w" "DEC ?1w") (PARALLEL (SET (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (SUB I16 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (INTCONST I16 1))) (SET (REG I1 PF) (PARITY I1 (CONVIT I8 (SUB I16 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (INTCONST I16 1))))) (SET (REG I1 AF) (ACARRY I1 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (BNOT I16 (INTCONST I16 1)) (INTCONST I1 1))) (SET (REG I1 ZF) (TSTEQ I1 (SUB I16 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (INTCONST I16 1)) (INTCONST I16 0))) (SET (REG I1 SF) (TSTLTS I1 (SUB I16 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (INTCONST I16 1)) (INTCONST I16 0))) (SET (REG I1 OF) (OVERFLOW I1 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (BNOT I16 (INTCONST I16 1)) (INTCONST I1 1))))) ;DEC m16 (DEFINST ("DEC WORD PTR ??1s" "DECW ??1s" "DEC WORD PTR ??1s") (PARALLEL (SET (MEM I16 (HOLE 1)) (SUB I16 (MEM I16 (HOLE 1)) (INTCONST I16 1))) (SET (REG I1 PF) (PARITY I1 (CONVIT I8 (SUB I16 (MEM I16 (HOLE 1)) (INTCONST I16 1))))) (SET (REG I1 AF) (ACARRY I1 (MEM I16 (HOLE 1)) (BNOT I16 (INTCONST I16 1)) (INTCONST I1 1))) (SET (REG I1 ZF) (TSTEQ I1 (SUB I16 (MEM I16 (HOLE 1)) (INTCONST I16 1)) (INTCONST I16 0))) (SET (REG I1 SF) (TSTLTS I1 (SUB I16 (MEM I16 (HOLE 1)) (INTCONST I16 1)) (INTCONST I16 0))) (SET (REG I1 OF) (OVERFLOW I1 (MEM I16 (HOLE 1)) (BNOT I16 (INTCONST I16 1)) (INTCONST I1 1))))) ;DEC r32 (DEFINST ("DEC ?1r" "DEC %?1r" "DEC ?1r") (PARALLEL (SET (REG I32 (HOLE 1 R32)) (SUB I32 (REG I32 (HOLE 1 R32)) (INTCONST I32 1))) (SET (REG I1 PF) (PARITY I1 (CONVIT I8 (SUB I32 (REG I32 (HOLE 1 R32)) (INTCONST I32 1))))) (SET (REG I1 AF) (ACARRY I1 (REG I32 (HOLE 1 R32)) (BNOT I32 (INTCONST I32 1)) (INTCONST I1 1))) (SET (REG I1 ZF) (TSTEQ I1 (SUB I32 (REG I32 (HOLE 1 R32)) (INTCONST I32 1)) (INTCONST I32 0))) (SET (REG I1 SF) (TSTLTS I1 (SUB I32 (REG I32 (HOLE 1 R32)) (INTCONST I32 1)) (INTCONST I32 0))) (SET (REG I1 OF) (OVERFLOW I1 (REG I32 (HOLE 1 R32)) (BNOT I32 (INTCONST I32 1)) (INTCONST I1 1))))) ;DEC m32 (DEFINST ("DEC DWORD PTR ??1s" "DECL ??1s" "DEC DWORD PTR ??1s") (PARALLEL (SET (MEM I32 (HOLE 1)) (SUB I32 (MEM I32 (HOLE 1)) (INTCONST I32 1))) (SET (REG I1 PF) (PARITY I1 (CONVIT I8 (SUB I32 (MEM I32 (HOLE 1)) (INTCONST I32 1))))) (SET (REG I1 AF) (ACARRY I1 (MEM I32 (HOLE 1)) (BNOT I32 (INTCONST I32 1)) (INTCONST I1 1))) (SET (REG I1 ZF) (TSTEQ I1 (SUB I32 (MEM I32 (HOLE 1)) (INTCONST I32 1)) (INTCONST I32 0))) (SET (REG I1 SF) (TSTLTS I1 (SUB I32 (MEM I32 (HOLE 1)) (INTCONST I32 1)) (INTCONST I32 0))) (SET (REG I1 OF) (OVERFLOW I1 (MEM I32 (HOLE 1)) (BNOT I32 (INTCONST I32 1)) (INTCONST I1 1))))) ;DIV(unsigned divide) ;DIV r8 (DEFINST ("DIV ?1l" "DIV %?1l" "DIV ?1l") (PARALLEL (SET (SUBREG I8 (REG I32 EAX) 0) (CONVIT I8 (DIVU I16 (SUBREG I16 (REG I32 EAX) 0) (CONVZX I16 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0))))) (SET (SUBREG I8 (REG I32 EAX) 1) (CONVIT I8 (MODU I16 (SUBREG I16 (REG I32 EAX) 0) (CONVZX I16 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0))))) (CLOBBER (REG I1 CF)) (CLOBBER (REG I1 PF)) (CLOBBER (REG I1 AF)) (CLOBBER (REG I1 ZF)) (CLOBBER (REG I1 SF)) (CLOBBER (REG I1 OF)))) (DEFINST ("DIV ?1h" "DIV %?1h" "DIV ?1h") (PARALLEL (SET (SUBREG I8 (REG I32 EAX) 0) (CONVIT I8 (DIVU I16 (SUBREG I16 (REG I32 EAX) 0) (CONVZX I16 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1))))) (SET (SUBREG I8 (REG I32 EAX) 1) (CONVIT I8 (MODU I16 (SUBREG I16 (REG I32 EAX) 0) (CONVZX I16 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1))))) (CLOBBER (REG I1 CF)) (CLOBBER (REG I1 PF)) (CLOBBER (REG I1 AF)) (CLOBBER (REG I1 ZF)) (CLOBBER (REG I1 SF)) (CLOBBER (REG I1 OF)))) ;DIV m8 (DEFINST ("DIV BYTE PTR ??1s" "DIVB ??1s" "DIV BYTE PTR ??1s") (PARALLEL (SET (SUBREG I8 (REG I32 EAX) 0) (CONVIT I8 (DIVU I16 (SUBREG I16 (REG I32 EAX) 0) (CONVZX I16 (MEM I8 (HOLE 1)))))) (SET (SUBREG I8 (REG I32 EAX) 1) (CONVIT I8 (MODU I16 (SUBREG I16 (REG I32 EAX) 0) (CONVZX I16 (MEM I8 (HOLE 1)))))) (CLOBBER (REG I1 CF)) (CLOBBER (REG I1 PF)) (CLOBBER (REG I1 AF)) (CLOBBER (REG I1 ZF)) (CLOBBER (REG I1 SF)) (CLOBBER (REG I1 OF)))) ;DIV r16 (DEFINST ("DIV ?1w" "DIV %?1w" "DIV ?1w") (PARALLEL (SET (SUBREG I16 (REG I32 EAX) 0) (CONVIT I16 (DIVU I32 (ADD I32 (LSH I32 (CONVZX I32 (SUBREG I16 (REG I32 EDX) 0)) (INTCONST I8 16)) (CONVZX I32 (SUBREG I16 (REG I32 EAX) 0))) (CONVZX I32 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0))))) (SET (SUBREG I16 (REG I32 EDX) 0) (CONVIT I16 (MODU I32 (ADD I32 (LSH I32 (CONVZX I32 (SUBREG I16 (REG I32 EDX) 0)) (INTCONST I8 16)) (CONVZX I32 (SUBREG I16 (REG I32 EAX) 0))) (CONVZX I32 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0))))) (CLOBBER (REG I1 CF)) (CLOBBER (REG I1 PF)) (CLOBBER (REG I1 AF)) (CLOBBER (REG I1 ZF)) (CLOBBER (REG I1 SF)) (CLOBBER (REG I1 OF)))) ;DIV m16 (DEFINST ("DIV WORD PTR ??1s" "DIVW ??1s" "DIV WORD PTR ??1s") (PARALLEL (SET (SUBREG I16 (REG I32 EAX) 0) (CONVIT I16 (DIVU I32 (ADD I32 (LSH I32 (CONVZX I32 (SUBREG I16 (REG I32 EDX) 0)) (INTCONST I8 16)) (CONVZX I32 (SUBREG I16 (REG I32 EAX) 0))) (CONVZX I32 (MEM I16 (HOLE 1)))))) (SET (SUBREG I16 (REG I32 EDX) 0) (CONVIT I16 (MODU I32 (ADD I32 (LSH I32 (CONVZX I32 (SUBREG I16 (REG I32 EDX) 0)) (INTCONST I8 16)) (CONVZX I32 (SUBREG I16 (REG I32 EAX) 0))) (CONVZX I32 (MEM I16 (HOLE 1)))))) (CLOBBER (REG I1 CF)) (CLOBBER (REG I1 PF)) (CLOBBER (REG I1 AF)) (CLOBBER (REG I1 ZF)) (CLOBBER (REG I1 SF)) (CLOBBER (REG I1 OF)))) ;DIV r32 (DEFINST ("DIV ?1r" "DIV %?1r" "DIV ?1r") (PARALLEL (SET (REG I32 EAX) (CONVIT I32 (DIVU I64 (ADD I64 (LSH I64 (CONVZX I64 (REG I32 EDX)) (INTCONST I8 32)) (CONVZX I64 (REG I32 EAX))) (CONVZX I64 (REG I32 (HOLE 1 R32)))))) (SET (REG I32 EDX) (CONVIT I32 (MODU I64 (ADD I64 (LSH I64 (CONVZX I64 (REG I32 EDX)) (INTCONST I8 32)) (CONVZX I64 (REG I32 EAX))) (CONVZX I64 (REG I32 (HOLE 1 R32)))))) (CLOBBER (REG I1 CF)) (CLOBBER (REG I1 PF)) (CLOBBER (REG I1 AF)) (CLOBBER (REG I1 ZF)) (CLOBBER (REG I1 SF)) (CLOBBER (REG I1 OF)))) ;DIV m32 (DEFINST ("DIV DWORD PTR ??1s" "DIVL ??1s" "DIV DWORD PTR ??1s") (PARALLEL (SET (REG I32 EAX) (CONVIT I32 (DIVU I64 (ADD I64 (LSH I64 (CONVZX I64 (REG I32 EDX)) (INTCONST I8 32)) (CONVZX I64 (REG I32 EAX))) (CONVZX I64 (MEM I32 (HOLE 1)))))) (SET (REG I32 EDX) (CONVIT I32 (MODU I64 (ADD I64 (LSH I64 (CONVZX I64 (REG I32 EDX)) (INTCONST I8 32)) (CONVZX I64 (REG I32 EAX))) (CONVZX I64 (MEM I32 (HOLE 1)))))) (CLOBBER (REG I1 CF)) (CLOBBER (REG I1 PF)) (CLOBBER (REG I1 AF)) (CLOBBER (REG I1 ZF)) (CLOBBER (REG I1 SF)) (CLOBBER (REG I1 OF)))) ;IDIV(signed divide) ;IDIV r8 (DEFINST ("IDIV ?1l" "IDIV %?1l" "IDIV ?1l") (PARALLEL (SET (SUBREG I8 (REG I32 EAX) 0) (CONVIT I8 (DIVS I16 (CONVSX I16 (SUBREG I8 (REG I32 EAX) 0)) (CONVSX I16 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0))))) (SET (SUBREG I8 (REG I32 EAX) 1) (CONVIT I8 (MODS I16 (CONVSX I16 (SUBREG I8 (REG I32 EAX) 0)) (CONVSX I16 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0))))) (CLOBBER (REG I1 CF)) (CLOBBER (REG I1 PF)) (CLOBBER (REG I1 AF)) (CLOBBER (REG I1 ZF)) (CLOBBER (REG I1 SF)) (CLOBBER (REG I1 OF)))) (DEFINST ("IDIV ?1h" "IDIV %?1h" "IDIV ?1h") (PARALLEL (SET (SUBREG I8 (REG I32 EAX) 0) (CONVIT I8 (DIVS I16 (CONVSX I16 (SUBREG I8 (REG I32 EAX) 0)) (CONVSX I16 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1))))) (SET (SUBREG I8 (REG I32 EAX) 1) (CONVIT I8 (MODS I16 (CONVSX I16 (SUBREG I8 (REG I32 EAX) 0)) (CONVSX I16 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1))))) (CLOBBER (REG I1 CF)) (CLOBBER (REG I1 PF)) (CLOBBER (REG I1 AF)) (CLOBBER (REG I1 ZF)) (CLOBBER (REG I1 SF)) (CLOBBER (REG I1 OF)))) ;IDIV m8 (DEFINST ("IDIV BYTE PTR ??1s" "IDIVB ??1s" "IDIV BYTE PTR ??1s") (PARALLEL (SET (SUBREG I8 (REG I32 EAX) 0) (CONVIT I8 (DIVS I16 (CONVSX I16 (SUBREG I8 (REG I32 EAX) 0)) (CONVSX I16 (MEM I8 (HOLE 1)))))) (SET (SUBREG I8 (REG I32 EAX) 1) (CONVIT I8 (MODS I16 (CONVSX I16 (SUBREG I8 (REG I32 EAX) 0)) (CONVSX I16 (MEM I8 (HOLE 1)))))) (CLOBBER (REG I1 CF)) (CLOBBER (REG I1 PF)) (CLOBBER (REG I1 AF)) (CLOBBER (REG I1 ZF)) (CLOBBER (REG I1 SF)) (CLOBBER (REG I1 OF)))) ;IDIV r16 (DEFINST ("IDIV ?1w" "IDIV %?1w" "IDIV ?1w") (PARALLEL (SET (SUBREG I16 (REG I32 EAX) 0) (CONVIT I16 (DIVS I32 (CONVSX I32 (SUBREG I16 (REG I32 EAX) 0)) (CONVSX I32 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0))))) (SET (SUBREG I16 (REG I32 EDX) 0) (CONVIT I16 (MODS I32 (CONVSX I32 (SUBREG I16 (REG I32 EAX) 0)) (CONVSX I32 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0))))) (CLOBBER (REG I1 CF)) (CLOBBER (REG I1 PF)) (CLOBBER (REG I1 AF)) (CLOBBER (REG I1 ZF)) (CLOBBER (REG I1 SF)) (CLOBBER (REG I1 OF)))) ;IDIV m16 (DEFINST ("IDIV WORD PTR ??1s" "IDIVW ??1s" "IDIV WORD PTR ??1s") (PARALLEL (SET (SUBREG I16 (REG I32 EAX) 0) (CONVIT I16 (DIVS I32 (CONVSX I32 (SUBREG I16 (REG I32 EAX) 0)) (CONVSX I32 (MEM I16 (HOLE 1)))))) (SET (SUBREG I16 (REG I32 EDX) 0) (CONVIT I16 (MODS I32 (CONVSX I32 (SUBREG I16 (REG I32 EAX) 0)) (CONVSX I32 (MEM I16 (HOLE 1)))))) (CLOBBER (REG I1 CF)) (CLOBBER (REG I1 PF)) (CLOBBER (REG I1 AF)) (CLOBBER (REG I1 ZF)) (CLOBBER (REG I1 SF)) (CLOBBER (REG I1 OF)))) ;IDIV r32 (DEFINST ("IDIV ?1r" "IDIV %?1r" "IDIV ?1r") (PARALLEL (SET (REG I32 EAX) (CONVIT I32 (DIVS I64 (CONVSX I64 (REG I32 EAX)) (CONVSX I64 (REG I32 (HOLE 1 R32)))))) (SET (REG I32 EDX) (CONVIT I32 (MODS I64 (CONVSX I64 (REG I32 EAX)) (CONVSX I64 (REG I32 (HOLE 1 R32)))))) (CLOBBER (REG I1 CF)) (CLOBBER (REG I1 PF)) (CLOBBER (REG I1 AF)) (CLOBBER (REG I1 ZF)) (CLOBBER (REG I1 SF)) (CLOBBER (REG I1 OF)))) ;IDIV m32 (DEFINST ("IDIV DWORD PTR ??1s" "IDIVL ??1s" "IDIV DWORD PTR ??1s") (PARALLEL (SET (REG I32 EAX) (CONVIT I32 (DIVS I64 (CONVSX I64 (REG I32 EAX)) (CONVSX I64 (MEM I32 (HOLE 1)))))) (SET (REG I32 EDX) (CONVIT I32 (MODS I64 (CONVSX I64 (REG I32 EAX)) (CONVSX I64 (MEM I32 (HOLE 1)))))) (CLOBBER (REG I1 CF)) (CLOBBER (REG I1 PF)) (CLOBBER (REG I1 AF)) (CLOBBER (REG I1 ZF)) (CLOBBER (REG I1 SF)) (CLOBBER (REG I1 OF)))) ;IMUL(signed multiply) ;IMUL r8 (DEFINST ("IMUL ?1l" "IMUL %?1l" "IMUL ?1l") (PARALLEL (SET (SUBREG I16 (REG I32 EAX) 0) (MUL I16 (CONVSX I16 (SUBREG I8 (REG I32 EAX) 0)) (CONVSX I16 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0)))) (SET (REG I1 CF) (TSTNE I1 (MUL I16 (CONVSX I16 (SUBREG I8 (REG I32 EAX) 0)) (CONVSX I16 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0))) (CONVSX I16 (MUL I8 (SUBREG I8 (REG I32 EAX) 0) (SUBREG I8 (REG I32 (HOLE 1 R32)) 0))))) (CLOBBER (REG I1 PF)) (CLOBBER (REG I1 AF)) (CLOBBER (REG I1 ZF)) (CLOBBER (REG I1 SF)) (SET (REG I1 OF) (TSTNE I1 (MUL I16 (CONVSX I16 (SUBREG I8 (REG I32 EAX) 0)) (CONVSX I16 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0))) (CONVSX I16 (MUL I8 (SUBREG I8 (REG I32 EAX) 0) (SUBREG I8 (REG I32 (HOLE 1 R32)) 0))))))) (DEFINST ("IMUL ?1h" "IMUL %?1h" "IMUL ?1h") (PARALLEL (SET (SUBREG I16 (REG I32 EAX) 0) (MUL I16 (CONVSX I16 (SUBREG I8 (REG I32 EAX) 0)) (CONVSX I16 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1)))) (SET (REG I1 CF) (TSTNE I1 (MUL I16 (CONVSX I16 (SUBREG I8 (REG I32 EAX) 0)) (CONVSX I16 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1))) (CONVSX I16 (MUL I8 (SUBREG I8 (REG I32 EAX) 0) (SUBREG I8 (REG I32 (HOLE 1 R32)) 1))))) (CLOBBER (REG I1 PF)) (CLOBBER (REG I1 AF)) (CLOBBER (REG I1 ZF)) (CLOBBER (REG I1 SF)) (SET (REG I1 OF) (TSTNE I1 (MUL I16 (CONVSX I16 (SUBREG I8 (REG I32 EAX) 0)) (CONVSX I16 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1))) (CONVSX I16 (MUL I8 (SUBREG I8 (REG I32 EAX) 0) (SUBREG I8 (REG I32 (HOLE 1 R32)) 1))))))) ;IMUL m8 (DEFINST ("IMUL BYTE PTR ??1s" "IMULB ??1s" "IMUL BYTE PTR ??1s") (PARALLEL (SET (SUBREG I16 (REG I32 EAX) 0) (MUL I16 (CONVSX I16 (SUBREG I8 (REG I32 EAX) 0)) (CONVSX I16 (MEM I8 (HOLE 1))))) (SET (REG I1 CF) (TSTNE I1 (MUL I16 (CONVSX I16 (SUBREG I8 (REG I32 EAX) 0)) (CONVSX I16 (MEM I8 (HOLE 1)))) (CONVSX I16 (MUL I8 (SUBREG I8 (REG I32 EAX) 0) (MEM I8 (HOLE 1)))))) (CLOBBER (REG I1 PF)) (CLOBBER (REG I1 AF)) (CLOBBER (REG I1 ZF)) (CLOBBER (REG I1 SF)) (SET (REG I1 OF) (TSTNE I1 (MUL I16 (CONVSX I16 (SUBREG I8 (REG I32 EAX) 0)) (CONVSX I16 (MEM I8 (HOLE 1)))) (CONVSX I16 (MUL I8 (SUBREG I8 (REG I32 EAX) 0) (MEM I8 (HOLE 1)))))))) ;IMUL r16 (DEFINST ("IMUL ?1w" "IMUL %?1w" "IMUL ?1w") (PARALLEL (SET (SUBREG I16 (REG I32 EAX) 0) (MUL I16 (SUBREG I16 (REG I32 EAX) 0) (SUBREG I16 (REG I32 (HOLE 1 R32)) 0))) (SET (SUBREG I16 (REG I32 EDX) 0) (CONVIT I16 (RSHS I32 (MUL I32 (CONVSX I32 (SUBREG I16 (REG I32 EAX) 0)) (CONVSX I32 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0))) (INTCONST I8 16)))) (SET (REG I1 CF) (TSTNE I1 (MUL I32 (CONVSX I32 (SUBREG I16 (REG I32 EAX) 0)) (CONVSX I32 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0))) (CONVSX I32 (MUL I16 (SUBREG I16 (REG I32 EAX) 0) (SUBREG I16 (REG I32 (HOLE 1 R32)) 0))))) (CLOBBER (REG I1 PF)) (CLOBBER (REG I1 AF)) (CLOBBER (REG I1 ZF)) (CLOBBER (REG I1 SF)) (SET (REG I1 OF) (TSTNE I1 (MUL I32 (CONVSX I32 (SUBREG I16 (REG I32 EAX) 0)) (CONVSX I32 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0))) (CONVSX I32 (MUL I16 (SUBREG I16 (REG I32 EAX) 0) (SUBREG I16 (REG I32 (HOLE 1 R32)) 0))))))) ;IMUL m16 (DEFINST ("IMUL WORD PTR ??1s" "IMULW ??1s" "IMUL WORD PTR ??1s") (PARALLEL (SET (SUBREG I16 (REG I32 EAX) 0) (MUL I16 (SUBREG I16 (REG I32 EAX) 0) (MEM I16 (HOLE 1)))) (SET (SUBREG I16 (REG I32 EDX) 0) (CONVIT I16 (RSHS I32 (MUL I32 (CONVSX I32 (SUBREG I16 (REG I32 EAX) 0)) (CONVSX I32 (MEM I16 (HOLE 1)))) (INTCONST I8 16)))) (SET (REG I1 CF) (TSTNE I1 (MUL I32 (CONVSX I32 (SUBREG I16 (REG I32 EAX) 0)) (CONVSX I32 (MEM I16 (HOLE 1)))) (CONVSX I32 (MUL I16 (SUBREG I16 (REG I32 EAX) 0) (MEM I16 (HOLE 1)))))) (CLOBBER (REG I1 PF)) (CLOBBER (REG I1 AF)) (CLOBBER (REG I1 ZF)) (CLOBBER (REG I1 SF)) (SET (REG I1 OF) (TSTNE I1 (MUL I32 (CONVSX I32 (SUBREG I16 (REG I32 EAX) 0)) (CONVSX I32 (MEM I16 (HOLE 1)))) (CONVSX I32 (MUL I16 (SUBREG I16 (REG I32 EAX) 0) (MEM I16 (HOLE 1)))))))) ;IMUL r32 (DEFINST ("IMUL ?1r" "IMUL %?1r" "IMUL ?1r") (PARALLEL (SET (REG I32 EAX) (MUL I32 (REG I32 EAX) (REG I32 (HOLE 1 R32)))) (SET (REG I32 EDX) (CONVIT I32 (RSHS I64 (MUL I64 (CONVSX I64 (REG I32 EAX)) (CONVSX I64 (REG I32 (HOLE 1 R32)))) (INTCONST I8 32)))) (SET (REG I1 CF) (TSTNE I1 (MUL I64 (CONVSX I64 (REG I32 EAX)) (CONVSX I64 (REG I32 (HOLE 1 R32)))) (CONVSX I64 (MUL I32 (REG I32 EAX) (REG I32 (HOLE 1 R32)))))) (CLOBBER (REG I1 PF)) (CLOBBER (REG I1 AF)) (CLOBBER (REG I1 ZF)) (CLOBBER (REG I1 SF)) (SET (REG I1 OF) (TSTNE I1 (MUL I64 (CONVSX I64 (REG I32 EAX)) (CONVSX I64 (REG I32 (HOLE 1 R32)))) (CONVSX I64 (MUL I32 (REG I32 EAX) (REG I32 (HOLE 1 R32)))))))) ;IMUL m32 (DEFINST ("IMUL DWORD PTR ??1s" "IMULL ??1s" "IMUL DWORD PTR ??1s") (PARALLEL (SET (REG I32 EAX) (MUL I32 (REG I32 EAX) (MEM I32 (HOLE 1)))) (SET (REG I32 EDX) (CONVIT I32 (RSHS I64 (MUL I64 (CONVSX I64 (REG I32 EAX)) (CONVSX I64 (MEM I32 (HOLE 1)))) (INTCONST I8 32)))) (SET (REG I1 CF) (TSTNE I1 (MUL I64 (CONVSX I64 (REG I32 EAX)) (CONVSX I64 (MEM I32 (HOLE 1)))) (CONVSX I64 (MUL I32 (REG I32 EAX) (MEM I32 (HOLE 1)))))) (CLOBBER (REG I1 PF)) (CLOBBER (REG I1 AF)) (CLOBBER (REG I1 ZF)) (CLOBBER (REG I1 SF)) (SET (REG I1 OF) (TSTNE I1 (MUL I64 (CONVSX I64 (REG I32 EAX)) (CONVSX I64 (MEM I32 (HOLE 1)))) (CONVSX I64 (MUL I32 (REG I32 EAX) (MEM I32 (HOLE 1)))))))) ;IMUL r16,r16 (DEFINST ("IMUL ?1w,?2w" "IMUL %?2w,%?1w" "IMUL ?1w,?2w") (PARALLEL (SET (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (MUL I16 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (SUBREG I16 (REG I32 (HOLE 2 R32)) 0))) (SET (REG I1 CF) (TSTNE I1 (MUL I32 (CONVSX I32 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0)) (CONVSX I32 (SUBREG I16 (REG I32 (HOLE 2 R32)) 0))) (CONVSX I32 (MUL I16 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (SUBREG I16 (REG I32 (HOLE 2 R32)) 0))))) (CLOBBER (REG I1 PF)) (CLOBBER (REG I1 AF)) (CLOBBER (REG I1 ZF)) (CLOBBER (REG I1 SF)) (SET (REG I1 OF) (TSTNE I1 (MUL I32 (CONVSX I32 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0)) (CONVSX I32 (SUBREG I16 (REG I32 (HOLE 2 R32)) 0))) (CONVSX I32 (MUL I16 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (SUBREG I16 (REG I32 (HOLE 2 R32)) 0))))))) ;IMUL r16,m16 (DEFINST ("IMUL ?1w,WORD PTR ??2s" "IMUL ??2s,%?1w" "IMUL ?1w,WORD PTR ??2s") (PARALLEL (SET (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (MUL I16 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (MEM I16 (HOLE 2)))) (SET (REG I1 CF) (TSTNE I1 (MUL I32 (CONVSX I32 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0)) (CONVSX I32 (MEM I16 (HOLE 2)))) (CONVSX I32 (MUL I16 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (MEM I16 (HOLE 2)))))) (CLOBBER (REG I1 PF)) (CLOBBER (REG I1 AF)) (CLOBBER (REG I1 ZF)) (CLOBBER (REG I1 SF)) (SET (REG I1 OF) (TSTNE I1 (MUL I32 (CONVSX I32 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0)) (CONVSX I32 (MEM I16 (HOLE 2)))) (CONVSX I32 (MUL I16 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (MEM I16 (HOLE 2)))))))) ;IMUL r32,r32 (DEFINST ("IMUL ?1r,?2r" "IMUL %?2r,%?1r" "IMUL ?1r,?2r") (PARALLEL (SET (REG I32 (HOLE 1 R32)) (MUL I32 (REG I32 (HOLE 1 R32)) (REG I32 (HOLE 2 R32)))) (SET (REG I1 CF) (TSTNE I1 (MUL I64 (CONVSX I64 (REG I32 (HOLE 1 R32))) (CONVSX I64 (REG I32 (HOLE 2 R32)))) (CONVSX I64 (MUL I32 (REG I32 (HOLE 1 R32)) (REG I32 (HOLE 2 R32)))))) (CLOBBER (REG I1 PF)) (CLOBBER (REG I1 AF)) (CLOBBER (REG I1 ZF)) (CLOBBER (REG I1 SF)) (SET (REG I1 OF) (TSTNE I1 (MUL I64 (CONVSX I64 (REG I32 (HOLE 1 R32))) (CONVSX I64 (REG I32 (HOLE 2 R32)))) (CONVSX I64 (MUL I32 (REG I32 (HOLE 1 R32)) (REG I32 (HOLE 2 R32)))))))) ;IMUL r32,m32 (DEFINST ("IMUL ?1r,DWORD PTR ??2s" "IMUL ??2s,%?1r" "IMUL ?1r,DWORD PTR ??2s") (PARALLEL (SET (REG I32 (HOLE 1 R32)) (MUL I32 (REG I32 (HOLE 1 R32)) (MEM I32 (HOLE 2)))) (SET (REG I1 CF) (TSTNE I1 (MUL I64 (CONVSX I64 (REG I32 (HOLE 1 R32))) (CONVSX I64 (MEM I32 (HOLE 2)))) (CONVSX I64 (MUL I32 (REG I32 (HOLE 1 R32)) (MEM I32 (HOLE 2)))))) (CLOBBER (REG I1 PF)) (CLOBBER (REG I1 AF)) (CLOBBER (REG I1 ZF)) (CLOBBER (REG I1 SF)) (SET (REG I1 OF) (TSTNE I1 (MUL I64 (CONVSX I64 (REG I32 (HOLE 1 R32))) (CONVSX I64 (MEM I32 (HOLE 2)))) (CONVSX I64 (MUL I32 (REG I32 (HOLE 1 R32)) (MEM I32 (HOLE 2)))))))) ;IMUL r16,r16,imm16 (DEFINST ("IMUL ?1w,?2w,?3c" "IMUL $?3c,%?2w,%?1w" "IMUL ?1w,?2w,?3c") (PARALLEL (SET (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (MUL I16 (SUBREG I16 (REG I32 (HOLE 2 R32)) 0) (INTCONST I16 (HOLE 3)))) (SET (REG I1 CF) (TSTNE I1 (MUL I32 (CONVSX I32 (SUBREG I16 (REG I32 (HOLE 2 R32)) 0)) (CONVSX I32 (INTCONST I16 (HOLE 3)))) (CONVSX I32 (MUL I16 (SUBREG I16 (REG I32 (HOLE 2 R32)) 0) (INTCONST I16 (HOLE 3)))))) (CLOBBER (REG I1 PF)) (CLOBBER (REG I1 AF)) (CLOBBER (REG I1 ZF)) (CLOBBER (REG I1 SF)) (SET (REG I1 OF) (TSTNE I1 (MUL I32 (CONVSX I32 (SUBREG I16 (REG I32 (HOLE 2 R32)) 0)) (CONVSX I32 (INTCONST I16 (HOLE 3)))) (CONVSX I32 (MUL I16 (SUBREG I16 (REG I32 (HOLE 2 R32)) 0) (INTCONST I16 (HOLE 3)))))))) ;IMUL r16,m16,imm16 (DEFINST ("IMUL ?1w,WORD PTR ??2s,?3c" "IMUL $?3c,??2s,%?1w" "IMUL ?1w,WORD PTR ??2s,?3c") (PARALLEL (SET (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (MUL I16 (MEM I16 (HOLE 2)) (INTCONST I16 (HOLE 3)))) (SET (REG I1 CF) (TSTNE I1 (MUL I32 (CONVSX I32 (MEM I16 (HOLE 2))) (CONVSX I32 (INTCONST I16 (HOLE 3)))) (CONVSX I32 (MUL I16 (MEM I16 (HOLE 2)) (INTCONST I16 (HOLE 3)))))) (CLOBBER (REG I1 PF)) (CLOBBER (REG I1 AF)) (CLOBBER (REG I1 ZF)) (CLOBBER (REG I1 SF)) (SET (REG I1 OF) (TSTNE I1 (MUL I32 (CONVSX I32 (MEM I16 (HOLE 2))) (CONVSX I32 (INTCONST I16 (HOLE 3)))) (CONVSX I32 (MUL I16 (MEM I16 (HOLE 2)) (INTCONST I16 (HOLE 3)))))))) ;IMUL r32,r32,imm32 (DEFINST ("IMUL ?1r,?2r,?3c" "IMUL $?3c,%?2r,%?1r" "IMUL ?1r,?2r,?3c") (PARALLEL (SET (REG I32 (HOLE 1 R32)) (MUL I32 (REG I32 (HOLE 2 R32)) (INTCONST I32 (HOLE 3)))) (SET (REG I1 CF) (TSTNE I1 (MUL I64 (CONVSX I64 (REG I32 (HOLE 2 R32))) (CONVSX I64 (INTCONST I32 (HOLE 3)))) (CONVSX I64 (MUL I32 (REG I32 (HOLE 2 R32)) (INTCONST I32 (HOLE 3)))))) (CLOBBER (REG I1 PF)) (CLOBBER (REG I1 AF)) (CLOBBER (REG I1 ZF)) (CLOBBER (REG I1 SF)) (SET (REG I1 OF) (TSTNE I1 (MUL I64 (CONVSX I64 (REG I32 (HOLE 2 R32))) (CONVSX I64 (INTCONST I32 (HOLE 3)))) (CONVSX I64 (MUL I32 (REG I32 (HOLE 2 R32)) (INTCONST I32 (HOLE 3)))))))) (DEFINST ("IMUL ?1r,?2r,OFFSET ?3b" "IMUL $?3b,%?2r,%?1r" "nil") (PARALLEL (SET (REG I32 (HOLE 1 R32)) (MUL I32 (REG I32 (HOLE 2 R32)) (ASMCONST I32 (LABEL I32 (HOLE 3))))) (SET (REG I1 CF) (TSTNE I1 (MUL I64 (CONVSX I64 (REG I32 (HOLE 2 R32))) (CONVSX I64 (ASMCONST I32 (LABEL I32 (HOLE 3))))) (CONVSX I64 (MUL I32 (REG I32 (HOLE 2 R32)) (ASMCONST I32 (LABEL I32 (HOLE 3))))))) (CLOBBER (REG I1 PF)) (CLOBBER (REG I1 AF)) (CLOBBER (REG I1 ZF)) (CLOBBER (REG I1 SF)) (SET (REG I1 OF) (TSTNE I1 (MUL I64 (CONVSX I64 (REG I32 (HOLE 2 R32))) (CONVSX I64 (ASMCONST I32 (LABEL I32 (HOLE 3))))) (CONVSX I64 (MUL I32 (REG I32 (HOLE 2 R32)) (ASMCONST I32 (LABEL I32 (HOLE 3))))))))) (DEFINST ("IMUL ?1r,?2r,OFFSET ?3b+?4c" "IMUL $?3b+?4c,%?2r,%?1r" "nil") (PARALLEL (SET (REG I32 (HOLE 1 R32)) (MUL I32 (REG I32 (HOLE 2 R32)) (ASMCONST I32 (ADD I32 (LABEL I32 (HOLE 3)) (INTCONST I32 (HOLE 4)))))) (SET (REG I1 CF) (TSTNE I1 (MUL I64 (CONVSX I64 (REG I32 (HOLE 2 R32))) (CONVSX I64 (ASMCONST I32 (ADD I32 (LABEL I32 (HOLE 3)) (INTCONST I32 (HOLE 4)))))) (CONVSX I64 (MUL I32 (REG I32 (HOLE 2 R32)) (ASMCONST I32 (ADD I32 (LABEL I32 (HOLE 3)) (INTCONST I32 (HOLE 4)))))))) (CLOBBER (REG I1 PF)) (CLOBBER (REG I1 AF)) (CLOBBER (REG I1 ZF)) (CLOBBER (REG I1 SF)) (SET (REG I1 OF) (TSTNE I1 (MUL I64 (CONVSX I64 (REG I32 (HOLE 2 R32))) (CONVSX I64 (ASMCONST I32 (ADD I32 (LABEL I32 (HOLE 3)) (INTCONST I32 (HOLE 4)))))) (CONVSX I64 (MUL I32 (REG I32 (HOLE 2 R32)) (ASMCONST I32 (ADD I32 (LABEL I32 (HOLE 3)) (INTCONST I32 (HOLE 4)))))))))) (DEFINST ("IMUL ?1r,?2r,OFFSET ?3b-?4c" "IMUL $?3b-?4c,%?2r,%?1r" "nil") (PARALLEL (SET (REG I32 (HOLE 1 R32)) (MUL I32 (REG I32 (HOLE 2 R32)) (ASMCONST I32 (SUB I32 (LABEL I32 (HOLE 3)) (INTCONST I32 (HOLE 4)))))) (SET (REG I1 CF) (TSTNE I1 (MUL I64 (CONVSX I64 (REG I32 (HOLE 2 R32))) (CONVSX I64 (ASMCONST I32 (SUB I32 (LABEL I32 (HOLE 3)) (INTCONST I32 (HOLE 4)))))) (CONVSX I64 (MUL I32 (REG I32 (HOLE 2 R32)) (ASMCONST I32 (SUB I32 (LABEL I32 (HOLE 3)) (INTCONST I32 (HOLE 4)))))))) (CLOBBER (REG I1 PF)) (CLOBBER (REG I1 AF)) (CLOBBER (REG I1 ZF)) (CLOBBER (REG I1 SF)) (SET (REG I1 OF) (TSTNE I1 (MUL I64 (CONVSX I64 (REG I32 (HOLE 2 R32))) (CONVSX I64 (ASMCONST I32 (SUB I32 (LABEL I32 (HOLE 3)) (INTCONST I32 (HOLE 4)))))) (CONVSX I64 (MUL I32 (REG I32 (HOLE 2 R32)) (ASMCONST I32 (SUB I32 (LABEL I32 (HOLE 3)) (INTCONST I32 (HOLE 4)))))))))) (DEFINST ("IMUL ?1r,?2r,OFFSET DWORD PTR (?3b-?4b)" "IMUL $?3b-?4b,%?2r,%?1r" "nil") (PARALLEL (SET (REG I32 (HOLE 1 R32)) (MUL I32 (REG I32 (HOLE 2 R32)) (ASMCONST I32 (SUB I32 (LABEL I32 (HOLE 3)) (LABEL I32 (HOLE 4)))))) (SET (REG I1 CF) (TSTNE I1 (MUL I64 (CONVSX I64 (REG I32 (HOLE 2 R32))) (CONVSX I64 (ASMCONST I32 (SUB I32 (LABEL I32 (HOLE 3)) (LABEL I32 (HOLE 4)))))) (CONVSX I64 (MUL I32 (REG I32 (HOLE 2 R32)) (ASMCONST I32 (SUB I32 (LABEL I32 (HOLE 3)) (LABEL I32 (HOLE 4)))))))) (CLOBBER (REG I1 PF)) (CLOBBER (REG I1 AF)) (CLOBBER (REG I1 ZF)) (CLOBBER (REG I1 SF)) (SET (REG I1 OF) (TSTNE I1 (MUL I64 (CONVSX I64 (REG I32 (HOLE 2 R32))) (CONVSX I64 (ASMCONST I32 (SUB I32 (LABEL I32 (HOLE 3)) (LABEL I32 (HOLE 4)))))) (CONVSX I64 (MUL I32 (REG I32 (HOLE 2 R32)) (ASMCONST I32 (SUB I32 (LABEL I32 (HOLE 3)) (LABEL I32 (HOLE 4)))))))))) ;IMUL r32,m32,imm32 (DEFINST ("IMUL ?1r,DWORD PTR ??2s,?3c" "IMUL $?3c,??2s,%?1r" "IMUL ?1r,DWORD PTR ??2s,?3c") (PARALLEL (SET (REG I32 (HOLE 1 R32)) (MUL I32 (MEM I32 (HOLE 2)) (INTCONST I32 (HOLE 3)))) (SET (REG I1 CF) (TSTNE I1 (MUL I64 (CONVSX I64 (MEM I32 (HOLE 2))) (CONVSX I64 (INTCONST I32 (HOLE 3)))) (CONVSX I64 (MUL I32 (MEM I32 (HOLE 2)) (INTCONST I32 (HOLE 3)))))) (CLOBBER (REG I1 PF)) (CLOBBER (REG I1 AF)) (CLOBBER (REG I1 ZF)) (CLOBBER (REG I1 SF)) (SET (REG I1 OF) (TSTNE I1 (MUL I64 (CONVSX I64 (MEM I32 (HOLE 2))) (CONVSX I64 (INTCONST I32 (HOLE 3)))) (CONVSX I64 (MUL I32 (MEM I32 (HOLE 2)) (INTCONST I32 (HOLE 3)))))))) (DEFINST ("IMUL ?1r,DWORD PTR ??2s,OFFSET ?3b" "IMUL $?3b,??2s,%?1r" "nil") (PARALLEL (SET (REG I32 (HOLE 1 R32)) (MUL I32 (MEM I32 (HOLE 2)) (ASMCONST I32 (LABEL I32 (HOLE 3))))) (SET (REG I1 CF) (TSTNE I1 (MUL I64 (CONVSX I64 (MEM I32 (HOLE 2))) (CONVSX I64 (ASMCONST I32 (LABEL I32 (HOLE 3))))) (CONVSX I64 (MUL I32 (MEM I32 (HOLE 2)) (ASMCONST I32 (LABEL I32 (HOLE 3))))))) (CLOBBER (REG I1 PF)) (CLOBBER (REG I1 AF)) (CLOBBER (REG I1 ZF)) (CLOBBER (REG I1 SF)) (SET (REG I1 OF) (TSTNE I1 (MUL I64 (CONVSX I64 (MEM I32 (HOLE 2))) (CONVSX I64 (ASMCONST I32 (LABEL I32 (HOLE 3))))) (CONVSX I64 (MUL I32 (MEM I32 (HOLE 2)) (ASMCONST I32 (LABEL I32 (HOLE 3))))))))) (DEFINST ("IMUL ?1r,DWORD PTR ??2s,OFFSET ?3b+?4c" "IMUL $?3b+?4c,??2s,%?1r" "nil") (PARALLEL (SET (REG I32 (HOLE 1 R32)) (MUL I32 (MEM I32 (HOLE 2)) (ASMCONST I32 (ADD I32 (LABEL I32 (HOLE 3)) (INTCONST I32 (HOLE 4)))))) (SET (REG I1 CF) (TSTNE I1 (MUL I64 (CONVSX I64 (MEM I32 (HOLE 2))) (CONVSX I64 (ASMCONST I32 (ADD I32 (LABEL I32 (HOLE 3)) (INTCONST I32 (HOLE 4)))))) (CONVSX I64 (MUL I32 (MEM I32 (HOLE 2)) (ASMCONST I32 (ADD I32 (LABEL I32 (HOLE 3)) (INTCONST I32 (HOLE 4)))))))) (CLOBBER (REG I1 PF)) (CLOBBER (REG I1 AF)) (CLOBBER (REG I1 ZF)) (CLOBBER (REG I1 SF)) (SET (REG I1 OF) (TSTNE I1 (MUL I64 (CONVSX I64 (MEM I32 (HOLE 2))) (CONVSX I64 (ASMCONST I32 (ADD I32 (LABEL I32 (HOLE 3)) (INTCONST I32 (HOLE 4)))))) (CONVSX I64 (MUL I32 (MEM I32 (HOLE 2)) (ASMCONST I32 (ADD I32 (LABEL I32 (HOLE 3)) (INTCONST I32 (HOLE 4)))))))))) (DEFINST ("IMUL ?1r,DWORD PTR ??2s,OFFSET ?3b-?4c" "IMUL $?3b-?4c,??2s,%?1r" "nil") (PARALLEL (SET (REG I32 (HOLE 1 R32)) (MUL I32 (MEM I32 (HOLE 2)) (ASMCONST I32 (SUB I32 (LABEL I32 (HOLE 3)) (INTCONST I32 (HOLE 4)))))) (SET (REG I1 CF) (TSTNE I1 (MUL I64 (CONVSX I64 (MEM I32 (HOLE 2))) (CONVSX I64 (ASMCONST I32 (SUB I32 (LABEL I32 (HOLE 3)) (INTCONST I32 (HOLE 4)))))) (CONVSX I64 (MUL I32 (MEM I32 (HOLE 2)) (ASMCONST I32 (SUB I32 (LABEL I32 (HOLE 3)) (INTCONST I32 (HOLE 4)))))))) (CLOBBER (REG I1 PF)) (CLOBBER (REG I1 AF)) (CLOBBER (REG I1 ZF)) (CLOBBER (REG I1 SF)) (SET (REG I1 OF) (TSTNE I1 (MUL I64 (CONVSX I64 (MEM I32 (HOLE 2))) (CONVSX I64 (ASMCONST I32 (SUB I32 (LABEL I32 (HOLE 3)) (INTCONST I32 (HOLE 4)))))) (CONVSX I64 (MUL I32 (MEM I32 (HOLE 2)) (ASMCONST I32 (SUB I32 (LABEL I32 (HOLE 3)) (INTCONST I32 (HOLE 4)))))))))) (DEFINST ("IMUL ?1r,DWORD PTR ??2s,OFFSET DWORD PTR (?3b-?4b)" "IMUL $?3b-?4b,??2s,%?1r" "nil") (PARALLEL (SET (REG I32 (HOLE 1 R32)) (MUL I32 (MEM I32 (HOLE 2)) (ASMCONST I32 (SUB I32 (LABEL I32 (HOLE 3)) (LABEL I32 (HOLE 4)))))) (SET (REG I1 CF) (TSTNE I1 (MUL I64 (CONVSX I64 (MEM I32 (HOLE 2))) (CONVSX I64 (ASMCONST I32 (SUB I32 (LABEL I32 (HOLE 3)) (LABEL I32 (HOLE 4)))))) (CONVSX I64 (MUL I32 (MEM I32 (HOLE 2)) (ASMCONST I32 (SUB I32 (LABEL I32 (HOLE 3)) (LABEL I32 (HOLE 4)))))))) (CLOBBER (REG I1 PF)) (CLOBBER (REG I1 AF)) (CLOBBER (REG I1 ZF)) (CLOBBER (REG I1 SF)) (SET (REG I1 OF) (TSTNE I1 (MUL I64 (CONVSX I64 (MEM I32 (HOLE 2))) (CONVSX I64 (ASMCONST I32 (SUB I32 (LABEL I32 (HOLE 3)) (LABEL I32 (HOLE 4)))))) (CONVSX I64 (MUL I32 (MEM I32 (HOLE 2)) (ASMCONST I32 (SUB I32 (LABEL I32 (HOLE 3)) (LABEL I32 (HOLE 4)))))))))) ;INC(increment) ;INC r8 (DEFINST ("INC ?1l" "INC %?1l" "INC ?1l") (PARALLEL (SET (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (ADD I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (INTCONST I8 1))) (SET (REG I1 PF) (PARITY I1 (ADD I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (INTCONST I8 1)))) (SET (REG I1 AF) (ACARRY I1 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (INTCONST I8 1) (INTCONST I1 0))) (SET (REG I1 ZF) (TSTEQ I1 (ADD I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (INTCONST I8 1)) (INTCONST I8 0))) (SET (REG I1 SF) (TSTLTS I1 (ADD I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (INTCONST I8 1)) (INTCONST I8 0))) (SET (REG I1 OF) (OVERFLOW I1 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (INTCONST I8 1) (INTCONST I1 0))))) (DEFINST ("INC ?1h" "INC %?1h" "INC ?1h") (PARALLEL (SET (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (ADD I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (INTCONST I8 1))) (SET (REG I1 PF) (PARITY I1 (ADD I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (INTCONST I8 1)))) (SET (REG I1 AF) (ACARRY I1 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (INTCONST I8 1) (INTCONST I1 0))) (SET (REG I1 ZF) (TSTEQ I1 (ADD I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (INTCONST I8 1)) (INTCONST I8 0))) (SET (REG I1 SF) (TSTLTS I1 (ADD I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (INTCONST I8 1)) (INTCONST I8 0))) (SET (REG I1 OF) (OVERFLOW I1 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (INTCONST I8 1) (INTCONST I1 0))))) ;INC m8 (DEFINST ("INC BYTE PTR ??1s" "INCB ??1s" "INC BYTE PTR ??1s") (PARALLEL (SET (MEM I8 (HOLE 1)) (ADD I8 (MEM I8 (HOLE 1)) (INTCONST I8 1))) (SET (REG I1 PF) (PARITY I1 (ADD I8 (MEM I8 (HOLE 1)) (INTCONST I8 1)))) (SET (REG I1 AF) (ACARRY I1 (MEM I8 (HOLE 1)) (INTCONST I8 1) (INTCONST I1 0))) (SET (REG I1 ZF) (TSTEQ I1 (ADD I8 (MEM I8 (HOLE 1)) (INTCONST I8 1)) (INTCONST I8 0))) (SET (REG I1 SF) (TSTLTS I1 (ADD I8 (MEM I8 (HOLE 1)) (INTCONST I8 1)) (INTCONST I8 0))) (SET (REG I1 OF) (OVERFLOW I1 (MEM I8 (HOLE 1)) (INTCONST I8 1) (INTCONST I1 0))))) ;INC r16 (DEFINST ("INC ?1w" "INC %?1w" "INC ?1w") (PARALLEL (SET (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (ADD I16 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (INTCONST I16 1))) (SET (REG I1 PF) (PARITY I1 (CONVIT I8 (ADD I16 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (INTCONST I16 1))))) (SET (REG I1 AF) (ACARRY I1 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (INTCONST I16 1) (INTCONST I1 0))) (SET (REG I1 ZF) (TSTEQ I1 (ADD I16 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (INTCONST I16 1)) (INTCONST I16 0))) (SET (REG I1 SF) (TSTLTS I1 (ADD I16 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (INTCONST I16 1)) (INTCONST I16 0))) (SET (REG I1 OF) (OVERFLOW I1 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (INTCONST I16 1) (INTCONST I1 0))))) ;INC m16 (DEFINST ("INC WORD PTR ??1s" "INCW ??1s" "INC WORD PTR ??1s") (PARALLEL (SET (MEM I16 (HOLE 1)) (ADD I16 (MEM I16 (HOLE 1)) (INTCONST I16 1))) (SET (REG I1 PF) (PARITY I1 (CONVIT I8 (ADD I16 (MEM I16 (HOLE 1)) (INTCONST I16 1))))) (SET (REG I1 AF) (ACARRY I1 (MEM I16 (HOLE 1)) (INTCONST I16 1) (INTCONST I1 0))) (SET (REG I1 ZF) (TSTEQ I1 (ADD I16 (MEM I16 (HOLE 1)) (INTCONST I16 1)) (INTCONST I16 0))) (SET (REG I1 SF) (TSTLTS I1 (ADD I16 (MEM I16 (HOLE 1)) (INTCONST I16 1)) (INTCONST I16 0))) (SET (REG I1 OF) (OVERFLOW I1 (MEM I16 (HOLE 1)) (INTCONST I16 1) (INTCONST I1 0))))) ;INC r32 (DEFINST ("INC ?1r" "INC %?1r" "INC ?1r") (PARALLEL (SET (REG I32 (HOLE 1 R32)) (ADD I32 (REG I32 (HOLE 1 R32)) (INTCONST I32 1))) (SET (REG I1 PF) (PARITY I1 (CONVIT I8 (ADD I32 (REG I32 (HOLE 1 R32)) (INTCONST I32 1))))) (SET (REG I1 AF) (ACARRY I1 (REG I32 (HOLE 1 R32)) (INTCONST I32 1) (INTCONST I1 0))) (SET (REG I1 ZF) (TSTEQ I1 (ADD I32 (REG I32 (HOLE 1 R32)) (INTCONST I32 1)) (INTCONST I32 0))) (SET (REG I1 SF) (TSTLTS I1 (ADD I32 (REG I32 (HOLE 1 R32)) (INTCONST I32 1)) (INTCONST I32 0))) (SET (REG I1 OF) (OVERFLOW I1 (REG I32 (HOLE 1 R32)) (INTCONST I32 1) (INTCONST I1 0))))) ;INC m32 (DEFINST ("INC DWORD PTR ??1s" "INCL ??1s" "INC DWORD PTR ??1s") (PARALLEL (SET (MEM I32 (HOLE 1)) (ADD I32 (MEM I32 (HOLE 1)) (INTCONST I32 1))) (SET (REG I1 PF) (PARITY I1 (CONVIT I8 (ADD I32 (MEM I32 (HOLE 1)) (INTCONST I32 1))))) (SET (REG I1 AF) (ACARRY I1 (MEM I32 (HOLE 1)) (INTCONST I32 1) (INTCONST I1 0))) (SET (REG I1 ZF) (TSTEQ I1 (ADD I32 (MEM I32 (HOLE 1)) (INTCONST I32 1)) (INTCONST I32 0))) (SET (REG I1 SF) (TSTLTS I1 (ADD I32 (MEM I32 (HOLE 1)) (INTCONST I32 1)) (INTCONST I32 0))) (SET (REG I1 OF) (OVERFLOW I1 (MEM I32 (HOLE 1)) (INTCONST I32 1) (INTCONST I1 0))))) ;MUL(unsigned multiply) ;MUL r8 (DEFINST ("MUL ?1l" "MUL %?1l" "MUL ?1l") (PARALLEL (SET (SUBREG I16 (REG I32 EAX) 0) (MUL I16 (CONVZX I16 (SUBREG I8 (REG I32 EAX) 0)) (CONVZX I16 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0)))) (SET (REG I1 CF) (TSTNE I1 (RSHU I16 (MUL I16 (CONVZX I16 (SUBREG I8 (REG I32 EAX) 0)) (CONVZX I16 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0))) (INTCONST I8 8)) (INTCONST I16 0))) (CLOBBER (REG I1 PF)) (CLOBBER (REG I1 AF)) (CLOBBER (REG I1 ZF)) (CLOBBER (REG I1 SF)) (SET (REG I1 OF) (TSTNE I1 (RSHU I16 (MUL I16 (CONVZX I16 (SUBREG I8 (REG I32 EAX) 0)) (CONVZX I16 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0))) (INTCONST I8 8)) (INTCONST I16 0))))) (DEFINST ("MUL ?1h" "MUL %?1h" "MUL ?1h") (PARALLEL (SET (SUBREG I16 (REG I32 EAX) 0) (MUL I16 (CONVZX I16 (SUBREG I8 (REG I32 EAX) 0)) (CONVZX I16 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1)))) (SET (REG I1 CF) (TSTNE I1 (RSHU I16 (MUL I16 (CONVZX I16 (SUBREG I8 (REG I32 EAX) 0)) (CONVZX I16 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1))) (INTCONST I8 8)) (INTCONST I16 0))) (CLOBBER (REG I1 PF)) (CLOBBER (REG I1 AF)) (CLOBBER (REG I1 ZF)) (CLOBBER (REG I1 SF)) (SET (REG I1 OF) (TSTNE I1 (RSHU I16 (MUL I16 (CONVZX I16 (SUBREG I8 (REG I32 EAX) 0)) (CONVZX I16 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1))) (INTCONST I8 8)) (INTCONST I16 0))))) ;MUL m8 (DEFINST ("MUL BYTE PTR ??1s" "MULB ??1s" "MUL BYTE PTR ??1s") (PARALLEL (SET (SUBREG I16 (REG I32 EAX) 0) (MUL I16 (CONVZX I16 (SUBREG I8 (REG I32 EAX) 0)) (CONVZX I16 (MEM I8 (HOLE 1))))) (SET (REG I1 CF) (TSTNE I1 (RSHU I16 (MUL I16 (CONVZX I16 (SUBREG I8 (REG I32 EAX) 0)) (CONVZX I16 (MEM I8 (HOLE 1)))) (INTCONST I8 8)) (INTCONST I16 0))) (CLOBBER (REG I1 PF)) (CLOBBER (REG I1 AF)) (CLOBBER (REG I1 ZF)) (CLOBBER (REG I1 SF)) (SET (REG I1 OF) (TSTNE I1 (RSHU I16 (MUL I16 (CONVZX I16 (SUBREG I8 (REG I32 EAX) 0)) (CONVZX I16 (MEM I8 (HOLE 1)))) (INTCONST I8 8)) (INTCONST I16 0))))) ;MUL r16 (DEFINST ("MUL ?1w" "MUL %?1w" "MUL ?1w") (PARALLEL (SET (SUBREG I16 (REG I32 EAX) 0) (MUL I16 (SUBREG I16 (REG I32 EAX) 0) (SUBREG I16 (REG I32 (HOLE 1 R32)) 0))) (SET (SUBREG I16 (REG I32 EDX) 0) (CONVIT I16 (RSHU I32 (MUL I32 (CONVZX I32 (SUBREG I16 (REG I32 EAX) 0)) (CONVZX I32 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0))) (INTCONST I8 16)))) (SET (REG I1 CF) (TSTNE I1 (CONVIT I16 (RSHU I32 (MUL I32 (CONVZX I32 (SUBREG I16 (REG I32 EAX) 0)) (CONVZX I32 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0))) (INTCONST I8 16))) (INTCONST I16 0))) (CLOBBER (REG I1 PF)) (CLOBBER (REG I1 AF)) (CLOBBER (REG I1 ZF)) (CLOBBER (REG I1 SF)) (SET (REG I1 OF) (TSTNE I1 (CONVIT I16 (RSHU I32 (MUL I32 (CONVZX I32 (SUBREG I16 (REG I32 EAX) 0)) (CONVZX I32 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0))) (INTCONST I8 16))) (INTCONST I16 0))))) ;MUL m16 (DEFINST ("MUL WORD PTR ??1s" "MULW ??1s" "MUL WORD PTR ??1s") (PARALLEL (SET (SUBREG I16 (REG I32 EAX) 0) (MUL I16 (SUBREG I16 (REG I32 EAX) 0) (MEM I16 (HOLE 1)))) (SET (SUBREG I16 (REG I32 EDX) 0) (CONVIT I16 (RSHU I32 (MUL I32 (CONVZX I32 (SUBREG I16 (REG I32 EAX) 0)) (CONVZX I32 (MEM I16 (HOLE 1)))) (INTCONST I8 16)))) (SET (REG I1 CF) (TSTNE I1 (CONVIT I16 (RSHU I32 (MUL I32 (CONVZX I32 (SUBREG I16 (REG I32 EAX) 0)) (CONVZX I32 (MEM I16 (HOLE 1)))) (INTCONST I8 16))) (INTCONST I16 0))) (CLOBBER (REG I1 PF)) (CLOBBER (REG I1 AF)) (CLOBBER (REG I1 ZF)) (CLOBBER (REG I1 SF)) (SET (REG I1 OF) (TSTNE I1 (CONVIT I16 (RSHU I32 (MUL I32 (CONVZX I32 (SUBREG I16 (REG I32 EAX) 0)) (CONVZX I32 (MEM I16 (HOLE 1)))) (INTCONST I8 16))) (INTCONST I16 0))))) ;MUL r32 (DEFINST ("MUL ?1r" "MUL %?1r" "MUL ?1r") (PARALLEL (SET (REG I32 EAX) (MUL I32 (REG I32 EAX) (REG I32 (HOLE 1 R32)))) (SET (REG I32 EDX) (CONVIT I32 (RSHU I64 (MUL I64 (CONVZX I64 (REG I32 EAX)) (CONVZX I64 (REG I32 (HOLE 1 R32)))) (INTCONST I8 32)))) (SET (REG I1 CF) (TSTNE I1 (CONVIT I32 (RSHU I64 (MUL I64 (CONVZX I64 (REG I32 EAX)) (CONVZX I64 (REG I32 (HOLE 1 R32)))) (INTCONST I8 32))) (INTCONST I32 0))) (CLOBBER (REG I1 PF)) (CLOBBER (REG I1 AF)) (CLOBBER (REG I1 ZF)) (CLOBBER (REG I1 SF)) (SET (REG I1 OF) (TSTNE I1 (CONVIT I32 (RSHU I64 (MUL I64 (CONVZX I64 (REG I32 EAX)) (CONVZX I64 (REG I32 (HOLE 1 R32)))) (INTCONST I8 32))) (INTCONST I32 0))))) ;MUL m32 (DEFINST ("MUL DWORD PTR ??1s" "MULL ??1s" "MUL DWORD PTR ??1s") (PARALLEL (SET (REG I32 EAX) (MUL I32 (REG I32 EAX) (MEM I32 (HOLE 1)))) (SET (REG I32 EDX) (CONVIT I32 (RSHU I64 (MUL I64 (CONVZX I64 (REG I32 EAX)) (CONVZX I64 (MEM I32 (HOLE 1)))) (INTCONST I8 32)))) (SET (REG I1 CF) (TSTNE I1 (CONVIT I32 (RSHU I64 (MUL I64 (CONVZX I64 (REG I32 EAX)) (CONVZX I64 (MEM I32 (HOLE 1)))) (INTCONST I8 32))) (INTCONST I32 0))) (CLOBBER (REG I1 PF)) (CLOBBER (REG I1 AF)) (CLOBBER (REG I1 ZF)) (CLOBBER (REG I1 SF)) (SET (REG I1 OF) (TSTNE I1 (CONVIT I32 (RSHU I64 (MUL I64 (CONVZX I64 (REG I32 EAX)) (CONVZX I64 (MEM I32 (HOLE 1)))) (INTCONST I8 32))) (INTCONST I32 0))))) ;NEG(negate) ;NEG r8 (DEFINST ("NEG ?1l" "NEG %?1l" "NEG ?1l") (PARALLEL (SET (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (NEG I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0))) (SET (REG I1 CF) (BNOT I1 (CARRY I1 (INTCONST I8 0) (BNOT I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0)) (INTCONST I1 1)))) (SET (REG I1 PF) (PARITY I1 (NEG I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0)))) (SET (REG I1 AF) (BNOT I1 (ACARRY I1 (INTCONST I8 0) (BNOT I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0)) (INTCONST I1 1)))) (SET (REG I1 ZF) (TSTEQ I1 (NEG I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0)) (INTCONST I8 0))) (SET (REG I1 SF) (TSTLTS I1 (NEG I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0)) (INTCONST I8 0))) (SET (REG I1 OF) (OVERFLOW I1 (INTCONST I8 0) (BNOT I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0)) (INTCONST I1 1))))) (DEFINST ("NEG ?1h" "NEG %?1h" "NEG ?1h") (PARALLEL (SET (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (NEG I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1))) (SET (REG I1 CF) (BNOT I1 (CARRY I1 (INTCONST I8 0) (BNOT I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1)) (INTCONST I1 1)))) (SET (REG I1 PF) (PARITY I1 (NEG I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1)))) (SET (REG I1 AF) (BNOT I1 (ACARRY I1 (INTCONST I8 0) (BNOT I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1)) (INTCONST I1 1)))) (SET (REG I1 ZF) (TSTEQ I1 (NEG I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1)) (INTCONST I8 0))) (SET (REG I1 SF) (TSTLTS I1 (NEG I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1)) (INTCONST I8 0))) (SET (REG I1 OF) (OVERFLOW I1 (INTCONST I8 0) (BNOT I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1)) (INTCONST I1 1))))) ;NEG m8 (DEFINST ("NEG BYTE PTR ??1s" "NEGB ??1s" "NEG BYTE PTR ??1s") (PARALLEL (SET (MEM I8 (HOLE 1)) (NEG I8 (MEM I8 (HOLE 1)))) (SET (REG I1 CF) (BNOT I1 (CARRY I1 (INTCONST I8 0) (BNOT I8 (MEM I8 (HOLE 1))) (INTCONST I1 1)))) (SET (REG I1 PF) (PARITY I1 (NEG I8 (MEM I8 (HOLE 1))))) (SET (REG I1 AF) (BNOT I1 (ACARRY I1 (INTCONST I8 0) (BNOT I8 (MEM I8 (HOLE 1))) (INTCONST I1 1)))) (SET (REG I1 ZF) (TSTEQ I1 (NEG I8 (MEM I8 (HOLE 1))) (INTCONST I8 0))) (SET (REG I1 SF) (TSTLTS I1 (NEG I8 (MEM I8 (HOLE 1))) (INTCONST I8 0))) (SET (REG I1 OF) (OVERFLOW I1 (INTCONST I8 0) (BNOT I8 (MEM I8 (HOLE 1))) (INTCONST I1 1))))) ;NEG r16 (DEFINST ("NEG ?1w" "NEG %?1w" "NEG ?1w") (PARALLEL (SET (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (NEG I16 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0))) (SET (REG I1 CF) (BNOT I1 (CARRY I1 (INTCONST I16 0) (BNOT I16 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0)) (INTCONST I1 1)))) (SET (REG I1 PF) (PARITY I1 (CONVIT I8 (NEG I16 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0))))) (SET (REG I1 AF) (BNOT I1 (ACARRY I1 (INTCONST I16 0) (BNOT I16 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0)) (INTCONST I1 1)))) (SET (REG I1 ZF) (TSTEQ I1 (NEG I16 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0)) (INTCONST I16 0))) (SET (REG I1 SF) (TSTLTS I1 (NEG I16 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0)) (INTCONST I16 0))) (SET (REG I1 OF) (OVERFLOW I1 (INTCONST I16 0) (BNOT I16 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0)) (INTCONST I1 1))))) ;NEG m16 (DEFINST ("NEG WORD PTR ??1s" "NEGW ??1s" "NEG WORD PTR ??1s") (PARALLEL (SET (MEM I16 (HOLE 1)) (NEG I16 (MEM I16 (HOLE 1)))) (SET (REG I1 CF) (BNOT I1 (CARRY I1 (INTCONST I16 0) (BNOT I16 (MEM I16 (HOLE 1))) (INTCONST I1 1)))) (SET (REG I1 PF) (PARITY I1 (CONVIT I8 (NEG I16 (MEM I16 (HOLE 1)))))) (SET (REG I1 AF) (BNOT I1 (ACARRY I1 (INTCONST I16 0) (BNOT I16 (MEM I16 (HOLE 1))) (INTCONST I1 1)))) (SET (REG I1 ZF) (TSTEQ I1 (NEG I16 (MEM I16 (HOLE 1))) (INTCONST I16 0))) (SET (REG I1 SF) (TSTLTS I1 (NEG I16 (MEM I16 (HOLE 1))) (INTCONST I16 0))) (SET (REG I1 OF) (OVERFLOW I1 (INTCONST I16 0) (BNOT I16 (MEM I16 (HOLE 1))) (INTCONST I1 1))))) ;NEG r32 (DEFINST ("NEG ?1r" "NEG %?1r" "NEG ?1r") (PARALLEL (SET (REG I32 (HOLE 1 R32)) (NEG I32 (REG I32 (HOLE 1 R32)))) (SET (REG I1 CF) (BNOT I1 (CARRY I1 (INTCONST I32 0) (BNOT I32 (REG I32 (HOLE 1 R32))) (INTCONST I1 1)))) (SET (REG I1 PF) (PARITY I1 (CONVIT I8 (NEG I32 (REG I32 (HOLE 1 R32)))))) (SET (REG I1 AF) (BNOT I1 (ACARRY I1 (INTCONST I32 0) (BNOT I32 (REG I32 (HOLE 1 R32))) (INTCONST I1 1)))) (SET (REG I1 ZF) (TSTEQ I1 (NEG I32 (REG I32 (HOLE 1 R32))) (INTCONST I32 0))) (SET (REG I1 SF) (TSTLTS I1 (NEG I32 (REG I32 (HOLE 1 R32))) (INTCONST I32 0))) (SET (REG I1 OF) (OVERFLOW I1 (INTCONST I32 0) (BNOT I32 (REG I32 (HOLE 1 R32))) (INTCONST I1 1))))) ;NEG m32 (DEFINST ("NEG DWORD PTR ??1s" "NEGL ??1s" "NEG DWORD PTR ??1s") (PARALLEL (SET (MEM I32 (HOLE 1)) (NEG I32 (MEM I32 (HOLE 1)))) (SET (REG I1 CF) (BNOT I1 (CARRY I1 (INTCONST I32 0) (BNOT I32 (MEM I32 (HOLE 1))) (INTCONST I1 1)))) (SET (REG I1 PF) (PARITY I1 (CONVIT I8 (NEG I32 (MEM I32 (HOLE 1)))))) (SET (REG I1 AF) (BNOT I1 (ACARRY I1 (INTCONST I32 0) (BNOT I32 (MEM I32 (HOLE 1))) (INTCONST I1 1)))) (SET (REG I1 ZF) (TSTEQ I1 (NEG I32 (MEM I32 (HOLE 1))) (INTCONST I32 0))) (SET (REG I1 SF) (TSTLTS I1 (NEG I32 (MEM I32 (HOLE 1))) (INTCONST I32 0))) (SET (REG I1 OF) (OVERFLOW I1 (INTCONST I32 0) (BNOT I32 (MEM I32 (HOLE 1))) (INTCONST I1 1))))) ;SBB(substract integers with borrow) ;SBB r8,imm8 (DEFINST ("SBB ?1l,?2c" "SBB $?2c,%?1l" "SBB ?1l,?2c") (PARALLEL (SET (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (SUB I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (ADD I8 (INTCONST I8 (HOLE 2)) (CONVZX I8 (REG I1 CF))))) (SET (REG I1 CF) (BNOT I1 (CARRY I1 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (BNOT I8 (INTCONST I8 (HOLE 2))) (BNOT I1 (REG I1 CF))))) (SET (REG I1 PF) (PARITY I1 (SUB I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (ADD I8 (INTCONST I8 (HOLE 2)) (CONVZX I8 (REG I1 CF)))))) (SET (REG I1 AF) (BNOT I1 (ACARRY I1 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (BNOT I8 (INTCONST I8 (HOLE 2))) (BNOT I1 (REG I1 CF))))) (SET (REG I1 ZF) (TSTEQ I1 (SUB I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (ADD I8 (INTCONST I8 (HOLE 2)) (CONVZX I8 (REG I1 CF)))) (INTCONST I8 0))) (SET (REG I1 SF) (TSTLTS I1 (SUB I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (ADD I8 (INTCONST I8 (HOLE 2)) (CONVZX I8 (REG I1 CF)))) (INTCONST I8 0))) (SET (REG I1 OF) (OVERFLOW I1 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (BNOT I8 (INTCONST I8 (HOLE 2))) (BNOT I1 (REG I1 CF)))))) (DEFINST ("SBB ?1h,?2c" "SBB $?2c,%?1h" "SBB ?1h,?2c") (PARALLEL (SET (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (SUB I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (ADD I8 (INTCONST I8 (HOLE 2)) (CONVZX I8 (REG I1 CF))))) (SET (REG I1 CF) (BNOT I1 (CARRY I1 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (BNOT I8 (INTCONST I8 (HOLE 2))) (BNOT I1 (REG I1 CF))))) (SET (REG I1 PF) (PARITY I1 (SUB I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (ADD I8 (INTCONST I8 (HOLE 2)) (CONVZX I8 (REG I1 CF)))))) (SET (REG I1 AF) (BNOT I1 (ACARRY I1 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (BNOT I8 (INTCONST I8 (HOLE 2))) (BNOT I1 (REG I1 CF))))) (SET (REG I1 ZF) (TSTEQ I1 (SUB I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (ADD I8 (INTCONST I8 (HOLE 2)) (CONVZX I8 (REG I1 CF)))) (INTCONST I8 0))) (SET (REG I1 SF) (TSTLTS I1 (SUB I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (ADD I8 (INTCONST I8 (HOLE 2)) (CONVZX I8 (REG I1 CF)))) (INTCONST I8 0))) (SET (REG I1 OF) (OVERFLOW I1 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (BNOT I8 (INTCONST I8 (HOLE 2))) (BNOT I1 (REG I1 CF)))))) ;SBB m8,imm8 (DEFINST ("SBB BYTE PTR ??1s,?2c" "SBBB $?2c,??1s" "SBB BYTE PTR ??1s,?2c") (PARALLEL (SET (MEM I8 (HOLE 1)) (SUB I8 (MEM I8 (HOLE 1)) (ADD I8 (INTCONST I8 (HOLE 2)) (CONVZX I8 (REG I1 CF))))) (SET (REG I1 CF) (BNOT I1 (CARRY I1 (MEM I8 (HOLE 1)) (BNOT I8 (INTCONST I8 (HOLE 2))) (BNOT I1 (REG I1 CF))))) (SET (REG I1 PF) (PARITY I1 (SUB I8 (MEM I8 (HOLE 1)) (ADD I8 (INTCONST I8 (HOLE 2)) (CONVZX I8 (REG I1 CF)))))) (SET (REG I1 AF) (BNOT I1 (ACARRY I1 (MEM I8 (HOLE 1)) (BNOT I8 (INTCONST I8 (HOLE 2))) (BNOT I1 (REG I1 CF))))) (SET (REG I1 ZF) (TSTEQ I1 (SUB I8 (MEM I8 (HOLE 1)) (ADD I8 (INTCONST I8 (HOLE 2)) (CONVZX I8 (REG I1 CF)))) (INTCONST I8 0))) (SET (REG I1 SF) (TSTLTS I1 (SUB I8 (MEM I8 (HOLE 1)) (ADD I8 (INTCONST I8 (HOLE 2)) (CONVZX I8 (REG I1 CF)))) (INTCONST I8 0))) (SET (REG I1 OF) (OVERFLOW I1 (MEM I8 (HOLE 1)) (BNOT I8 (INTCONST I8 (HOLE 2))) (BNOT I1 (REG I1 CF)))))) ;SBB r16,imm16 (DEFINST ("SBB ?1w,?2c" "SBB $?2c,%?1w" "SBB ?1w,?2c") (PARALLEL (SET (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (SUB I16 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (ADD I16 (INTCONST I16 (HOLE 2)) (CONVZX I16 (REG I1 CF))))) (SET (REG I1 CF) (BNOT I1 (CARRY I1 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (BNOT I16 (INTCONST I16 (HOLE 2))) (BNOT I1 (REG I1 CF))))) (SET (REG I1 PF) (PARITY I1 (CONVIT I8 (SUB I16 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (ADD I16 (INTCONST I16 (HOLE 2)) (CONVZX I16 (REG I1 CF))))))) (SET (REG I1 AF) (BNOT I1 (ACARRY I1 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (BNOT I16 (INTCONST I16 (HOLE 2))) (BNOT I1 (REG I1 CF))))) (SET (REG I1 ZF) (TSTEQ I1 (SUB I16 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (ADD I16 (INTCONST I16 (HOLE 2)) (CONVZX I16 (REG I1 CF)))) (INTCONST I16 0))) (SET (REG I1 SF) (TSTLTS I1 (SUB I16 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (ADD I16 (INTCONST I16 (HOLE 2)) (CONVZX I16 (REG I1 CF)))) (INTCONST I16 0))) (SET (REG I1 OF) (OVERFLOW I1 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (BNOT I16 (INTCONST I16 (HOLE 2))) (BNOT I1 (REG I1 CF)))))) ;SBB m16,imm16 (DEFINST ("SBB WORD PTR ??1s,?2c" "SBBW $?2c,??1s" "SBB WORD PTR ??1s,?2c") (PARALLEL (SET (MEM I16 (HOLE 1)) (SUB I16 (MEM I16 (HOLE 1)) (ADD I16 (INTCONST I16 (HOLE 2)) (CONVZX I16 (REG I1 CF))))) (SET (REG I1 CF) (BNOT I1 (CARRY I1 (MEM I16 (HOLE 1)) (BNOT I16 (INTCONST I16 (HOLE 2))) (BNOT I1 (REG I1 CF))))) (SET (REG I1 PF) (PARITY I1 (CONVIT I8 (SUB I16 (MEM I16 (HOLE 1)) (ADD I16 (INTCONST I16 (HOLE 2)) (CONVZX I16 (REG I1 CF))))))) (SET (REG I1 AF) (BNOT I1 (ACARRY I1 (MEM I16 (HOLE 1)) (BNOT I16 (INTCONST I16 (HOLE 2))) (BNOT I1 (REG I1 CF))))) (SET (REG I1 ZF) (TSTEQ I1 (SUB I16 (MEM I16 (HOLE 1)) (ADD I16 (INTCONST I16 (HOLE 2)) (CONVZX I16 (REG I1 CF)))) (INTCONST I16 0))) (SET (REG I1 SF) (TSTLTS I1 (SUB I16 (MEM I16 (HOLE 1)) (ADD I16 (INTCONST I16 (HOLE 2)) (CONVZX I16 (REG I1 CF)))) (INTCONST I16 0))) (SET (REG I1 OF) (OVERFLOW I1 (MEM I16 (HOLE 1)) (BNOT I16 (INTCONST I16 (HOLE 2))) (BNOT I1 (REG I1 CF)))))) ;SBB r32,imm32 (DEFINST ("SBB ?1r,?2c" "SBB $?2c,%?1r" "SBB ?1r,?2c") (PARALLEL (SET (REG I32 (HOLE 1 R32)) (SUB I32 (REG I32 (HOLE 1 R32)) (ADD I32 (INTCONST I32 (HOLE 2)) (CONVZX I32 (REG I1 CF))))) (SET (REG I1 CF) (BNOT I1 (CARRY I1 (REG I32 (HOLE 1 R32)) (BNOT I32 (INTCONST I32 (HOLE 2))) (BNOT I1 (REG I1 CF))))) (SET (REG I1 PF) (PARITY I1 (CONVIT I8 (SUB I32 (REG I32 (HOLE 1 R32)) (ADD I32 (INTCONST I32 (HOLE 2)) (CONVZX I32 (REG I1 CF))))))) (SET (REG I1 AF) (BNOT I1 (ACARRY I1 (REG I32 (HOLE 1 R32)) (BNOT I32 (INTCONST I32 (HOLE 2))) (BNOT I1 (REG I1 CF))))) (SET (REG I1 ZF) (TSTEQ I1 (SUB I32 (REG I32 (HOLE 1 R32)) (ADD I32 (INTCONST I32 (HOLE 2)) (CONVZX I32 (REG I1 CF)))) (INTCONST I32 0))) (SET (REG I1 SF) (TSTLTS I1 (SUB I32 (REG I32 (HOLE 1 R32)) (ADD I32 (INTCONST I32 (HOLE 2)) (CONVZX I32 (REG I1 CF)))) (INTCONST I32 0))) (SET (REG I1 OF) (OVERFLOW I1 (REG I32 (HOLE 1 R32)) (BNOT I32 (INTCONST I32 (HOLE 2))) (BNOT I1 (REG I1 CF)))))) (DEFINST ("SBB ?1r,??2a" "SBB $??2a,%?1r" "SBB ?1r,??2a") (PARALLEL (SET (REG I32 (HOLE 1 R32)) (SUB I32 (REG I32 (HOLE 1 R32)) (ADD I32 (HOLE 2) (CONVZX I32 (REG I1 CF))))) (SET (REG I1 CF) (BNOT I1 (CARRY I1 (REG I32 (HOLE 1 R32)) (BNOT I32 (HOLE 2)) (BNOT I1 (REG I1 CF))))) (SET (REG I1 PF) (PARITY I1 (CONVIT I8 (SUB I32 (REG I32 (HOLE 1 R32)) (ADD I32 (HOLE 2) (CONVZX I32 (REG I1 CF))))))) (SET (REG I1 AF) (BNOT I1 (ACARRY I1 (REG I32 (HOLE 1 R32)) (BNOT I32 (HOLE 2)) (BNOT I1 (REG I1 CF))))) (SET (REG I1 ZF) (TSTEQ I1 (SUB I32 (REG I32 (HOLE 1 R32)) (ADD I32 (HOLE 2) (CONVZX I32 (REG I1 CF)))) (INTCONST I32 0))) (SET (REG I1 SF) (TSTLTS I1 (SUB I32 (REG I32 (HOLE 1 R32)) (ADD I32 (HOLE 2) (CONVZX I32 (REG I1 CF)))) (INTCONST I32 0))) (SET (REG I1 OF) (OVERFLOW I1 (REG I32 (HOLE 1 R32)) (BNOT I32 (HOLE 2)) (BNOT I1 (REG I1 CF)))))) ;SBB m32,imm32 (DEFINST ("SBB DWORD PTR ??1s,?2c" "SBBL $?2c,??1s" "SBB DWORD PTR ??1s,?2c") (PARALLEL (SET (MEM I32 (HOLE 1)) (SUB I32 (MEM I32 (HOLE 1)) (ADD I32 (INTCONST I32 (HOLE 2)) (CONVZX I32 (REG I1 CF))))) (SET (REG I1 CF) (BNOT I1 (CARRY I1 (MEM I32 (HOLE 1)) (BNOT I32 (INTCONST I32 (HOLE 2))) (BNOT I1 (REG I1 CF))))) (SET (REG I1 PF) (PARITY I1 (CONVIT I8 (SUB I32 (MEM I32 (HOLE 1)) (ADD I32 (INTCONST I32 (HOLE 2)) (CONVZX I32 (REG I1 CF))))))) (SET (REG I1 AF) (BNOT I1 (ACARRY I1 (MEM I32 (HOLE 1)) (BNOT I32 (INTCONST I32 (HOLE 2))) (BNOT I1 (REG I1 CF))))) (SET (REG I1 ZF) (TSTEQ I1 (SUB I32 (MEM I32 (HOLE 1)) (ADD I32 (INTCONST I32 (HOLE 2)) (CONVZX I32 (REG I1 CF)))) (INTCONST I32 0))) (SET (REG I1 SF) (TSTLTS I1 (SUB I32 (MEM I32 (HOLE 1)) (ADD I32 (INTCONST I32 (HOLE 2)) (CONVZX I32 (REG I1 CF)))) (INTCONST I32 0))) (SET (REG I1 OF) (OVERFLOW I1 (MEM I32 (HOLE 1)) (BNOT I32 (INTCONST I32 (HOLE 2))) (BNOT I1 (REG I1 CF)))))) (DEFINST ("SBB DWORD PTR ??1s,??2a" "SBBL $??2a,??1s" "SBB DWORD PTR ??1s,??2a") (PARALLEL (SET (MEM I32 (HOLE 1)) (SUB I32 (MEM I32 (HOLE 1)) (ADD I32 (HOLE 2) (CONVZX I32 (REG I1 CF))))) (SET (REG I1 CF) (BNOT I1 (CARRY I1 (MEM I32 (HOLE 1)) (BNOT I32 (HOLE 2)) (BNOT I1 (REG I1 CF))))) (SET (REG I1 PF) (PARITY I1 (CONVIT I8 (SUB I32 (MEM I32 (HOLE 1)) (ADD I32 (HOLE 2) (CONVZX I32 (REG I1 CF))))))) (SET (REG I1 AF) (BNOT I1 (ACARRY I1 (MEM I32 (HOLE 1)) (BNOT I32 (HOLE 2)) (BNOT I1 (REG I1 CF))))) (SET (REG I1 ZF) (TSTEQ I1 (SUB I32 (MEM I32 (HOLE 1)) (ADD I32 (HOLE 2) (CONVZX I32 (REG I1 CF)))) (INTCONST I32 0))) (SET (REG I1 SF) (TSTLTS I1 (SUB I32 (MEM I32 (HOLE 1)) (ADD I32 (HOLE 2) (CONVZX I32 (REG I1 CF)))) (INTCONST I32 0))) (SET (REG I1 OF) (OVERFLOW I1 (MEM I32 (HOLE 1)) (BNOT I32 (HOLE 2)) (BNOT I1 (REG I1 CF)))))) ;SBB r8,r8 (DEFINST ("SBB ?1l,?2l" "SBB %?2l,%?1l" "SBB ?1l,?2l") (PARALLEL (SET (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (SUB I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (ADD I8 (SUBREG I8 (REG I32 (HOLE 2 R32)) 0) (CONVZX I8 (REG I1 CF))))) (SET (REG I1 CF) (BNOT I1 (CARRY I1 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (BNOT I8 (SUBREG I8 (REG I32 (HOLE 2 R32)) 0)) (BNOT I1 (REG I1 CF))))) (SET (REG I1 PF) (PARITY I1 (SUB I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (ADD I8 (SUBREG I8 (REG I32 (HOLE 2 R32)) 0) (CONVZX I8 (REG I1 CF)))))) (SET (REG I1 AF) (BNOT I1 (ACARRY I1 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (BNOT I8 (SUBREG I8 (REG I32 (HOLE 2 R32)) 0)) (BNOT I1 (REG I1 CF))))) (SET (REG I1 ZF) (TSTEQ I1 (SUB I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (ADD I8 (SUBREG I8 (REG I32 (HOLE 2 R32)) 0) (CONVZX I8 (REG I1 CF)))) (INTCONST I8 0))) (SET (REG I1 SF) (TSTLTS I1 (SUB I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (ADD I8 (SUBREG I8 (REG I32 (HOLE 2 R32)) 0) (CONVZX I8 (REG I1 CF)))) (INTCONST I8 0))) (SET (REG I1 OF) (OVERFLOW I1 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (BNOT I8 (SUBREG I8 (REG I32 (HOLE 2 R32)) 0)) (BNOT I1 (REG I1 CF)))))) (DEFINST ("SBB ?1l,?2h" "SBB %?2h,%?1l" "SBB ?1l,?2h") (PARALLEL (SET (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (SUB I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (ADD I8 (SUBREG I8 (REG I32 (HOLE 2 R32)) 1) (CONVZX I8 (REG I1 CF))))) (SET (REG I1 CF) (BNOT I1 (CARRY I1 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (BNOT I8 (SUBREG I8 (REG I32 (HOLE 2 R32)) 1)) (BNOT I1 (REG I1 CF))))) (SET (REG I1 PF) (PARITY I1 (SUB I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (ADD I8 (SUBREG I8 (REG I32 (HOLE 2 R32)) 1) (CONVZX I8 (REG I1 CF)))))) (SET (REG I1 AF) (BNOT I1 (ACARRY I1 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (BNOT I8 (SUBREG I8 (REG I32 (HOLE 2 R32)) 1)) (BNOT I1 (REG I1 CF))))) (SET (REG I1 ZF) (TSTEQ I1 (SUB I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (ADD I8 (SUBREG I8 (REG I32 (HOLE 2 R32)) 1) (CONVZX I8 (REG I1 CF)))) (INTCONST I8 0))) (SET (REG I1 SF) (TSTLTS I1 (SUB I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (ADD I8 (SUBREG I8 (REG I32 (HOLE 2 R32)) 1) (CONVZX I8 (REG I1 CF)))) (INTCONST I8 0))) (SET (REG I1 OF) (OVERFLOW I1 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (BNOT I8 (SUBREG I8 (REG I32 (HOLE 2 R32)) 1)) (BNOT I1 (REG I1 CF)))))) (DEFINST ("SBB ?1h,?2l" "SBB %?2l,%?1h" "SBB ?1h,?2l") (PARALLEL (SET (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (SUB I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (ADD I8 (SUBREG I8 (REG I32 (HOLE 2 R32)) 0) (CONVZX I8 (REG I1 CF))))) (SET (REG I1 CF) (BNOT I1 (CARRY I1 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (BNOT I8 (SUBREG I8 (REG I32 (HOLE 2 R32)) 0)) (BNOT I1 (REG I1 CF))))) (SET (REG I1 PF) (PARITY I1 (SUB I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (ADD I8 (SUBREG I8 (REG I32 (HOLE 2 R32)) 0) (CONVZX I8 (REG I1 CF)))))) (SET (REG I1 AF) (BNOT I1 (ACARRY I1 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (BNOT I8 (SUBREG I8 (REG I32 (HOLE 2 R32)) 0)) (BNOT I1 (REG I1 CF))))) (SET (REG I1 ZF) (TSTEQ I1 (SUB I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (ADD I8 (SUBREG I8 (REG I32 (HOLE 2 R32)) 0) (CONVZX I8 (REG I1 CF)))) (INTCONST I8 0))) (SET (REG I1 SF) (TSTLTS I1 (SUB I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (ADD I8 (SUBREG I8 (REG I32 (HOLE 2 R32)) 0) (CONVZX I8 (REG I1 CF)))) (INTCONST I8 0))) (SET (REG I1 OF) (OVERFLOW I1 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (BNOT I8 (SUBREG I8 (REG I32 (HOLE 2 R32)) 0)) (BNOT I1 (REG I1 CF)))))) (DEFINST ("SBB ?1h,?2h" "SBB %?2h,%?1h" "SBB ?1h,?2h") (PARALLEL (SET (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (SUB I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (ADD I8 (SUBREG I8 (REG I32 (HOLE 2 R32)) 1) (CONVZX I8 (REG I1 CF))))) (SET (REG I1 CF) (BNOT I1 (CARRY I1 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (BNOT I8 (SUBREG I8 (REG I32 (HOLE 2 R32)) 1)) (BNOT I1 (REG I1 CF))))) (SET (REG I1 PF) (PARITY I1 (SUB I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (ADD I8 (SUBREG I8 (REG I32 (HOLE 2 R32)) 1) (CONVZX I8 (REG I1 CF)))))) (SET (REG I1 AF) (BNOT I1 (ACARRY I1 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (BNOT I8 (SUBREG I8 (REG I32 (HOLE 2 R32)) 1)) (BNOT I1 (REG I1 CF))))) (SET (REG I1 ZF) (TSTEQ I1 (SUB I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (ADD I8 (SUBREG I8 (REG I32 (HOLE 2 R32)) 1) (CONVZX I8 (REG I1 CF)))) (INTCONST I8 0))) (SET (REG I1 SF) (TSTLTS I1 (SUB I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (ADD I8 (SUBREG I8 (REG I32 (HOLE 2 R32)) 1) (CONVZX I8 (REG I1 CF)))) (INTCONST I8 0))) (SET (REG I1 OF) (OVERFLOW I1 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (BNOT I8 (SUBREG I8 (REG I32 (HOLE 2 R32)) 1)) (BNOT I1 (REG I1 CF)))))) ;SBB m8,r8 (DEFINST ("SBB BYTE PTR ??1s,?2l" "SBB %?2l,??1s" "SBB BYTE PTR ??1s,?2l") (PARALLEL (SET (MEM I8 (HOLE 1)) (SUB I8 (MEM I8 (HOLE 1)) (ADD I8 (SUBREG I8 (REG I32 (HOLE 2 R32)) 0) (CONVZX I8 (REG I1 CF))))) (SET (REG I1 CF) (BNOT I1 (CARRY I1 (MEM I8 (HOLE 1)) (BNOT I8 (SUBREG I8 (REG I32 (HOLE 2 R32)) 0)) (BNOT I1 (REG I1 CF))))) (SET (REG I1 PF) (PARITY I1 (SUB I8 (MEM I8 (HOLE 1)) (ADD I8 (SUBREG I8 (REG I32 (HOLE 2 R32)) 0) (CONVZX I8 (REG I1 CF)))))) (SET (REG I1 AF) (BNOT I1 (ACARRY I1 (MEM I8 (HOLE 1)) (BNOT I8 (SUBREG I8 (REG I32 (HOLE 2 R32)) 0)) (BNOT I1 (REG I1 CF))))) (SET (REG I1 ZF) (TSTEQ I1 (SUB I8 (MEM I8 (HOLE 1)) (ADD I8 (SUBREG I8 (REG I32 (HOLE 2 R32)) 0) (CONVZX I8 (REG I1 CF)))) (INTCONST I8 0))) (SET (REG I1 SF) (TSTLTS I1 (SUB I8 (MEM I8 (HOLE 1)) (ADD I8 (SUBREG I8 (REG I32 (HOLE 2 R32)) 0) (CONVZX I8 (REG I1 CF)))) (INTCONST I8 0))) (SET (REG I1 OF) (OVERFLOW I1 (MEM I8 (HOLE 1)) (BNOT I8 (SUBREG I8 (REG I32 (HOLE 2 R32)) 0)) (BNOT I1 (REG I1 CF)))))) (DEFINST ("SBB BYTE PTR ??1s,?2h" "SBB %?2h,??1s" "SBB BYTE PTR ??1s,?2h") (PARALLEL (SET (MEM I8 (HOLE 1)) (SUB I8 (MEM I8 (HOLE 1)) (ADD I8 (SUBREG I8 (REG I32 (HOLE 2 R32)) 1) (CONVZX I8 (REG I1 CF))))) (SET (REG I1 CF) (BNOT I1 (CARRY I1 (MEM I8 (HOLE 1)) (BNOT I8 (SUBREG I8 (REG I32 (HOLE 2 R32)) 1)) (BNOT I1 (REG I1 CF))))) (SET (REG I1 PF) (PARITY I1 (SUB I8 (MEM I8 (HOLE 1)) (ADD I8 (SUBREG I8 (REG I32 (HOLE 2 R32)) 1) (CONVZX I8 (REG I1 CF)))))) (SET (REG I1 AF) (BNOT I1 (ACARRY I1 (MEM I8 (HOLE 1)) (BNOT I8 (SUBREG I8 (REG I32 (HOLE 2 R32)) 1)) (BNOT I1 (REG I1 CF))))) (SET (REG I1 ZF) (TSTEQ I1 (SUB I8 (MEM I8 (HOLE 1)) (ADD I8 (SUBREG I8 (REG I32 (HOLE 2 R32)) 1) (CONVZX I8 (REG I1 CF)))) (INTCONST I8 0))) (SET (REG I1 SF) (TSTLTS I1 (SUB I8 (MEM I8 (HOLE 1)) (ADD I8 (SUBREG I8 (REG I32 (HOLE 2 R32)) 1) (CONVZX I8 (REG I1 CF)))) (INTCONST I8 0))) (SET (REG I1 OF) (OVERFLOW I1 (MEM I8 (HOLE 1)) (BNOT I8 (SUBREG I8 (REG I32 (HOLE 2 R32)) 1)) (BNOT I1 (REG I1 CF)))))) ;SBB r8,m8 (DEFINST ("SBB ?1l,BYTE PTR ??2s" "SBB ??2s,%?1l" "SBB ?1l,BYTE PTR ??2s") (PARALLEL (SET (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (SUB I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (ADD I8 (MEM I8 (HOLE 2)) (CONVZX I8 (REG I1 CF))))) (SET (REG I1 CF) (BNOT I1 (CARRY I1 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (BNOT I8 (MEM I8 (HOLE 2))) (BNOT I1 (REG I1 CF))))) (SET (REG I1 PF) (PARITY I1 (SUB I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (ADD I8 (MEM I8 (HOLE 2)) (CONVZX I8 (REG I1 CF)))))) (SET (REG I1 AF) (BNOT I1 (ACARRY I1 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (BNOT I8 (MEM I8 (HOLE 2))) (BNOT I1 (REG I1 CF))))) (SET (REG I1 ZF) (TSTEQ I1 (SUB I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (ADD I8 (MEM I8 (HOLE 2)) (CONVZX I8 (REG I1 CF)))) (INTCONST I8 0))) (SET (REG I1 SF) (TSTLTS I1 (SUB I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (ADD I8 (MEM I8 (HOLE 2)) (CONVZX I8 (REG I1 CF)))) (INTCONST I8 0))) (SET (REG I1 OF) (OVERFLOW I1 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (BNOT I8 (MEM I8 (HOLE 2))) (BNOT I1 (REG I1 CF)))))) (DEFINST ("SBB ?1h,BYTE PTR ??2s" "SBB ??2s,%?1h" "SBB ?1h,BYTE PTR ??2s") (PARALLEL (SET (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (SUB I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (ADD I8 (MEM I8 (HOLE 2)) (CONVZX I8 (REG I1 CF))))) (SET (REG I1 CF) (BNOT I1 (CARRY I1 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (BNOT I8 (MEM I8 (HOLE 2))) (BNOT I1 (REG I1 CF))))) (SET (REG I1 PF) (PARITY I1 (SUB I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (ADD I8 (MEM I8 (HOLE 2)) (CONVZX I8 (REG I1 CF)))))) (SET (REG I1 AF) (BNOT I1 (ACARRY I1 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (BNOT I8 (MEM I8 (HOLE 2))) (BNOT I1 (REG I1 CF))))) (SET (REG I1 ZF) (TSTEQ I1 (SUB I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (ADD I8 (MEM I8 (HOLE 2)) (CONVZX I8 (REG I1 CF)))) (INTCONST I8 0))) (SET (REG I1 SF) (TSTLTS I1 (SUB I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (ADD I8 (MEM I8 (HOLE 2)) (CONVZX I8 (REG I1 CF)))) (INTCONST I8 0))) (SET (REG I1 OF) (OVERFLOW I1 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (BNOT I8 (MEM I8 (HOLE 2))) (BNOT I1 (REG I1 CF)))))) ;SBB r16,r16 (DEFINST ("SBB ?1w,?2w" "SBB %?2w,%?1w" "SBB ?1w,?2w") (PARALLEL (SET (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (SUB I16 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (ADD I16 (SUBREG I16 (REG I32 (HOLE 2 R32)) 0) (CONVZX I16 (REG I1 CF))))) (SET (REG I1 CF) (BNOT I1 (CARRY I1 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (BNOT I16 (SUBREG I16 (REG I32 (HOLE 2 R32)) 0)) (BNOT I1 (REG I1 CF))))) (SET (REG I1 PF) (PARITY I1 (CONVIT I8 (SUB I16 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (ADD I16 (SUBREG I16 (REG I32 (HOLE 2 R32)) 0) (CONVZX I16 (REG I1 CF))))))) (SET (REG I1 AF) (BNOT I1 (ACARRY I1 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (BNOT I16 (SUBREG I16 (REG I32 (HOLE 2 R32)) 0)) (BNOT I1 (REG I1 CF))))) (SET (REG I1 ZF) (TSTEQ I1 (SUB I16 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (ADD I16 (SUBREG I16 (REG I32 (HOLE 2 R32)) 0) (CONVZX I16 (REG I1 CF)))) (INTCONST I16 0))) (SET (REG I1 SF) (TSTLTS I1 (SUB I16 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (ADD I16 (SUBREG I16 (REG I32 (HOLE 2 R32)) 0) (CONVZX I16 (REG I1 CF)))) (INTCONST I16 0))) (SET (REG I1 OF) (OVERFLOW I1 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (BNOT I16 (SUBREG I16 (REG I32 (HOLE 2 R32)) 0)) (BNOT I1 (REG I1 CF)))))) ;SBB m16,r16 (DEFINST ("SBB WORD PTR ??1s,?2w" "SBB %?2w,??1s" "SBB WORD PTR ??1s,?2w") (PARALLEL (SET (MEM I16 (HOLE 1)) (SUB I16 (MEM I16 (HOLE 1)) (ADD I16 (SUBREG I16 (REG I32 (HOLE 2 R32)) 0) (CONVZX I16 (REG I1 CF))))) (SET (REG I1 CF) (BNOT I1 (CARRY I1 (MEM I16 (HOLE 1)) (BNOT I16 (SUBREG I16 (REG I32 (HOLE 2 R32)) 0)) (BNOT I1 (REG I1 CF))))) (SET (REG I1 PF) (PARITY I1 (CONVIT I8 (SUB I16 (MEM I16 (HOLE 1)) (ADD I16 (SUBREG I16 (REG I32 (HOLE 2 R32)) 0) (CONVZX I16 (REG I1 CF))))))) (SET (REG I1 AF) (BNOT I1 (ACARRY I1 (MEM I16 (HOLE 1)) (BNOT I16 (SUBREG I16 (REG I32 (HOLE 2 R32)) 0)) (BNOT I1 (REG I1 CF))))) (SET (REG I1 ZF) (TSTEQ I1 (SUB I16 (MEM I16 (HOLE 1)) (ADD I16 (SUBREG I16 (REG I32 (HOLE 2 R32)) 0) (CONVZX I16 (REG I1 CF)))) (INTCONST I16 0))) (SET (REG I1 SF) (TSTLTS I1 (SUB I16 (MEM I16 (HOLE 1)) (ADD I16 (SUBREG I16 (REG I32 (HOLE 2 R32)) 0) (CONVZX I16 (REG I1 CF)))) (INTCONST I16 0))) (SET (REG I1 OF) (OVERFLOW I1 (MEM I16 (HOLE 1)) (BNOT I16 (SUBREG I16 (REG I32 (HOLE 2 R32)) 0)) (BNOT I1 (REG I1 CF)))))) ;SBB r16,m16 (DEFINST ("SBB ?1w,WORD PTR ??2s" "SBB ??2s,%?1w" "SBB ?1w,WORD PTR ??2s") (PARALLEL (SET (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (SUB I16 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (ADD I16 (MEM I16 (HOLE 2)) (CONVZX I16 (REG I1 CF))))) (SET (REG I1 CF) (BNOT I1 (CARRY I1 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (BNOT I16 (MEM I16 (HOLE 2))) (BNOT I1 (REG I1 CF))))) (SET (REG I1 PF) (PARITY I1 (CONVIT I8 (SUB I16 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (ADD I16 (MEM I16 (HOLE 2)) (CONVZX I16 (REG I1 CF))))))) (SET (REG I1 AF) (BNOT I1 (ACARRY I1 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (BNOT I16 (MEM I16 (HOLE 2))) (BNOT I1 (REG I1 CF))))) (SET (REG I1 ZF) (TSTEQ I1 (SUB I16 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (ADD I16 (MEM I16 (HOLE 2)) (CONVZX I16 (REG I1 CF)))) (INTCONST I16 0))) (SET (REG I1 SF) (TSTLTS I1 (SUB I16 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (ADD I16 (MEM I16 (HOLE 2)) (CONVZX I16 (REG I1 CF)))) (INTCONST I16 0))) (SET (REG I1 OF) (OVERFLOW I1 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (BNOT I16 (MEM I16 (HOLE 2))) (BNOT I1 (REG I1 CF)))))) ;SBB r32,r32 (DEFINST ("SBB ?1r,?2r" "SBB %?2r,%?1r" "SBB ?1r,?2r") (PARALLEL (SET (REG I32 (HOLE 1 R32)) (SUB I32 (REG I32 (HOLE 1 R32)) (ADD I32 (REG I32 (HOLE 2 R32)) (CONVZX I32 (REG I1 CF))))) (SET (REG I1 CF) (BNOT I1 (CARRY I1 (REG I32 (HOLE 1 R32)) (BNOT I32 (REG I32 (HOLE 2 R32))) (BNOT I1 (REG I1 CF))))) (SET (REG I1 PF) (PARITY I1 (CONVIT I8 (SUB I32 (REG I32 (HOLE 1 R32)) (ADD I32 (REG I32 (HOLE 2 R32)) (CONVZX I32 (REG I1 CF))))))) (SET (REG I1 AF) (BNOT I1 (ACARRY I1 (REG I32 (HOLE 1 R32)) (BNOT I32 (REG I32 (HOLE 2 R32))) (BNOT I1 (REG I1 CF))))) (SET (REG I1 ZF) (TSTEQ I1 (SUB I32 (REG I32 (HOLE 1 R32)) (ADD I32 (REG I32 (HOLE 2 R32)) (CONVZX I32 (REG I1 CF)))) (INTCONST I32 0))) (SET (REG I1 SF) (TSTLTS I1 (SUB I32 (REG I32 (HOLE 1 R32)) (ADD I32 (REG I32 (HOLE 2 R32)) (CONVZX I32 (REG I1 CF)))) (INTCONST I32 0))) (SET (REG I1 OF) (OVERFLOW I1 (REG I32 (HOLE 1 R32)) (BNOT I32 (REG I32 (HOLE 2 R32))) (BNOT I1 (REG I1 CF)))))) ;SBB m32,r32 (DEFINST ("SBB DWORD PTR ??1s,?2r" "SBB %?2r,??1s" "SBB DWORD PTR ??1s,?2r") (PARALLEL (SET (MEM I32 (HOLE 1)) (SUB I32 (MEM I32 (HOLE 1)) (ADD I32 (REG I32 (HOLE 2 R32)) (CONVZX I32 (REG I1 CF))))) (SET (REG I1 CF) (BNOT I1 (CARRY I1 (MEM I32 (HOLE 1)) (BNOT I32 (REG I32 (HOLE 2 R32))) (BNOT I1 (REG I1 CF))))) (SET (REG I1 PF) (PARITY I1 (CONVIT I8 (SUB I32 (MEM I32 (HOLE 1)) (ADD I32 (REG I32 (HOLE 2 R32)) (CONVZX I32 (REG I1 CF))))))) (SET (REG I1 AF) (BNOT I1 (ACARRY I1 (MEM I32 (HOLE 1)) (BNOT I32 (REG I32 (HOLE 2 R32))) (BNOT I1 (REG I1 CF))))) (SET (REG I1 ZF) (TSTEQ I1 (SUB I32 (MEM I32 (HOLE 1)) (ADD I32 (REG I32 (HOLE 2 R32)) (CONVZX I32 (REG I1 CF)))) (INTCONST I32 0))) (SET (REG I1 SF) (TSTLTS I1 (SUB I32 (MEM I32 (HOLE 1)) (ADD I32 (REG I32 (HOLE 2 R32)) (CONVZX I32 (REG I1 CF)))) (INTCONST I32 0))) (SET (REG I1 OF) (OVERFLOW I1 (MEM I32 (HOLE 1)) (BNOT I32 (REG I32 (HOLE 2 R32))) (BNOT I1 (REG I1 CF)))))) ;SBB r32,m32 (DEFINST ("SBB ?1r,DWORD PTR ??2s" "SBB ??2s,%?1r" "SBB ?1r,DWORD PTR ??2s") (PARALLEL (SET (REG I32 (HOLE 1 R32)) (SUB I32 (REG I32 (HOLE 1 R32)) (ADD I32 (MEM I32 (HOLE 2)) (CONVZX I32 (REG I1 CF))))) (SET (REG I1 CF) (BNOT I1 (CARRY I1 (REG I32 (HOLE 1 R32)) (BNOT I32 (MEM I32 (HOLE 2))) (BNOT I1 (REG I1 CF))))) (SET (REG I1 PF) (PARITY I1 (CONVIT I8 (SUB I32 (REG I32 (HOLE 1 R32)) (ADD I32 (MEM I32 (HOLE 2)) (CONVZX I32 (REG I1 CF))))))) (SET (REG I1 AF) (BNOT I1 (ACARRY I1 (REG I32 (HOLE 1 R32)) (BNOT I32 (MEM I32 (HOLE 2))) (BNOT I1 (REG I1 CF))))) (SET (REG I1 ZF) (TSTEQ I1 (SUB I32 (REG I32 (HOLE 1 R32)) (ADD I32 (MEM I32 (HOLE 2)) (CONVZX I32 (REG I1 CF)))) (INTCONST I32 0))) (SET (REG I1 SF) (TSTLTS I1 (SUB I32 (REG I32 (HOLE 1 R32)) (ADD I32 (MEM I32 (HOLE 2)) (CONVZX I32 (REG I1 CF)))) (INTCONST I32 0))) (SET (REG I1 OF) (OVERFLOW I1 (REG I32 (HOLE 1 R32)) (BNOT I32 (MEM I32 (HOLE 2))) (BNOT I1 (REG I1 CF)))))) ;SUB(substract integers) ;SUB r8,imm8 (DEFINST ("SUB ?1l,?2c" "SUB $?2c,%?1l" "SUB ?1l,?2c") (PARALLEL (SET (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (SUB I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (INTCONST I8 (HOLE 2)))) (SET (REG I1 CF) (BNOT I1 (CARRY I1 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (BNOT I8 (INTCONST I8 (HOLE 2))) (INTCONST I1 1)))) (SET (REG I1 PF) (PARITY I1 (SUB I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (INTCONST I8 (HOLE 2))))) (SET (REG I1 AF) (BNOT I1 (ACARRY I1 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (BNOT I8 (INTCONST I8 (HOLE 2))) (INTCONST I1 1)))) (SET (REG I1 ZF) (TSTEQ I1 (SUB I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (INTCONST I8 (HOLE 2))) (INTCONST I8 0))) (SET (REG I1 SF) (TSTLTS I1 (SUB I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (INTCONST I8 (HOLE 2))) (INTCONST I8 0))) (SET (REG I1 OF) (OVERFLOW I1 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (BNOT I8 (INTCONST I8 (HOLE 2))) (INTCONST I1 1))))) (DEFINST ("SUB ?1h,?2c" "SUB $?2c,%?1h" "SUB ?1h,?2c") (PARALLEL (SET (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (SUB I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (INTCONST I8 (HOLE 2)))) (SET (REG I1 CF) (BNOT I1 (CARRY I1 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (BNOT I8 (INTCONST I8 (HOLE 2))) (INTCONST I1 1)))) (SET (REG I1 PF) (PARITY I1 (SUB I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (INTCONST I8 (HOLE 2))))) (SET (REG I1 AF) (BNOT I1 (ACARRY I1 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (BNOT I8 (INTCONST I8 (HOLE 2))) (INTCONST I1 1)))) (SET (REG I1 ZF) (TSTEQ I1 (SUB I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (INTCONST I8 (HOLE 2))) (INTCONST I8 0))) (SET (REG I1 SF) (TSTLTS I1 (SUB I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (INTCONST I8 (HOLE 2))) (INTCONST I8 0))) (SET (REG I1 OF) (OVERFLOW I1 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (BNOT I8 (INTCONST I8 (HOLE 2))) (INTCONST I1 1))))) ;SUB m8,imm8 (DEFINST ("SUB BYTE PTR ??1s,?2c" "SUBB $?2c,??1s" "SUB BYTE PTR ??1s,?2c") (PARALLEL (SET (MEM I8 (HOLE 1)) (SUB I8 (MEM I8 (HOLE 1)) (INTCONST I8 (HOLE 2)))) (SET (REG I1 CF) (BNOT I1 (CARRY I1 (MEM I8 (HOLE 1)) (BNOT I8 (INTCONST I8 (HOLE 2))) (INTCONST I1 1)))) (SET (REG I1 PF) (PARITY I1 (SUB I8 (MEM I8 (HOLE 1)) (INTCONST I8 (HOLE 2))))) (SET (REG I1 AF) (BNOT I1 (ACARRY I1 (MEM I8 (HOLE 1)) (BNOT I8 (INTCONST I8 (HOLE 2))) (INTCONST I1 1)))) (SET (REG I1 ZF) (TSTEQ I1 (SUB I8 (MEM I8 (HOLE 1)) (INTCONST I8 (HOLE 2))) (INTCONST I8 0))) (SET (REG I1 SF) (TSTLTS I1 (SUB I8 (MEM I8 (HOLE 1)) (INTCONST I8 (HOLE 2))) (INTCONST I8 0))) (SET (REG I1 OF) (OVERFLOW I1 (MEM I8 (HOLE 1)) (BNOT I8 (INTCONST I8 (HOLE 2))) (INTCONST I1 1))))) ;SUB r16,imm16 (DEFINST ("SUB ?1w,?2c" "SUB $?2c,%?1w" "SUB ?1w,?2c") (PARALLEL (SET (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (SUB I16 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (INTCONST I16 (HOLE 2)))) (SET (REG I1 CF) (BNOT I1 (CARRY I1 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (BNOT I16 (INTCONST I16 (HOLE 2))) (INTCONST I1 1)))) (SET (REG I1 PF) (PARITY I1 (CONVIT I8 (SUB I16 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (INTCONST I16 (HOLE 2)))))) (SET (REG I1 AF) (BNOT I1 (ACARRY I1 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (BNOT I16 (INTCONST I16 (HOLE 2))) (INTCONST I1 1)))) (SET (REG I1 ZF) (TSTEQ I1 (SUB I16 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (INTCONST I16 (HOLE 2))) (INTCONST I16 0))) (SET (REG I1 SF) (TSTLTS I1 (SUB I16 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (INTCONST I16 (HOLE 2))) (INTCONST I16 0))) (SET (REG I1 OF) (OVERFLOW I1 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (BNOT I16 (INTCONST I16 (HOLE 2))) (INTCONST I1 1))))) ;SUB m16,imm16 (DEFINST ("SUB WORD PTR ??1s,?2c" "SUBW $?2c,??1s" "SUB WORD PTR ??1s,?2c") (PARALLEL (SET (MEM I16 (HOLE 1)) (SUB I16 (MEM I16 (HOLE 1)) (INTCONST I16 (HOLE 2)))) (SET (REG I1 CF) (BNOT I1 (CARRY I1 (MEM I16 (HOLE 1)) (BNOT I16 (INTCONST I16 (HOLE 2))) (INTCONST I1 1)))) (SET (REG I1 PF) (PARITY I1 (CONVIT I8 (SUB I16 (MEM I16 (HOLE 1)) (INTCONST I16 (HOLE 2)))))) (SET (REG I1 AF) (BNOT I1 (ACARRY I1 (MEM I16 (HOLE 1)) (BNOT I16 (INTCONST I16 (HOLE 2))) (INTCONST I1 1)))) (SET (REG I1 ZF) (TSTEQ I1 (SUB I16 (MEM I16 (HOLE 1)) (INTCONST I16 (HOLE 2))) (INTCONST I16 0))) (SET (REG I1 SF) (TSTLTS I1 (SUB I16 (MEM I16 (HOLE 1)) (INTCONST I16 (HOLE 2))) (INTCONST I16 0))) (SET (REG I1 OF) (OVERFLOW I1 (MEM I16 (HOLE 1)) (BNOT I16 (INTCONST I16 (HOLE 2))) (INTCONST I1 1))))) ;SUB r32,imm32 (DEFINST ("SUB ?1r,?2c" "SUB $?2c,%?1r" "SUB ?1r,?2c") (PARALLEL (SET (REG I32 (HOLE 1 R32)) (SUB I32 (REG I32 (HOLE 1 R32)) (INTCONST I32 (HOLE 2)))) (SET (REG I1 CF) (BNOT I1 (CARRY I1 (REG I32 (HOLE 1 R32)) (BNOT I32 (INTCONST I32 (HOLE 2))) (INTCONST I1 1)))) (SET (REG I1 PF) (PARITY I1 (CONVIT I8 (SUB I32 (REG I32 (HOLE 1 R32)) (INTCONST I32 (HOLE 2)))))) (SET (REG I1 AF) (BNOT I1 (ACARRY I1 (REG I32 (HOLE 1 R32)) (BNOT I32 (INTCONST I32 (HOLE 2))) (INTCONST I1 1)))) (SET (REG I1 ZF) (TSTEQ I1 (SUB I32 (REG I32 (HOLE 1 R32)) (INTCONST I32 (HOLE 2))) (INTCONST I32 0))) (SET (REG I1 SF) (TSTLTS I1 (SUB I32 (REG I32 (HOLE 1 R32)) (INTCONST I32 (HOLE 2))) (INTCONST I32 0))) (SET (REG I1 OF) (OVERFLOW I1 (REG I32 (HOLE 1 R32)) (BNOT I32 (INTCONST I32 (HOLE 2))) (INTCONST I1 1))))) (DEFINST ("SUB ?1r,??2a" "SUB $??2a,%?1r" "SUB ?1r,??2a") (PARALLEL (SET (REG I32 (HOLE 1 R32)) (SUB I32 (REG I32 (HOLE 1 R32)) (HOLE 2))) (SET (REG I1 CF) (BNOT I1 (CARRY I1 (REG I32 (HOLE 1 R32)) (BNOT I32 (HOLE 2)) (INTCONST I1 1)))) (SET (REG I1 PF) (PARITY I1 (CONVIT I8 (SUB I32 (REG I32 (HOLE 1 R32)) (HOLE 2))))) (SET (REG I1 AF) (BNOT I1 (ACARRY I1 (REG I32 (HOLE 1 R32)) (BNOT I32 (HOLE 2)) (INTCONST I1 1)))) (SET (REG I1 ZF) (TSTEQ I1 (SUB I32 (REG I32 (HOLE 1 R32)) (HOLE 2)) (INTCONST I32 0))) (SET (REG I1 SF) (TSTLTS I1 (SUB I32 (REG I32 (HOLE 1 R32)) (HOLE 2)) (INTCONST I32 0))) (SET (REG I1 OF) (OVERFLOW I1 (REG I32 (HOLE 1 R32)) (BNOT I32 (HOLE 2)) (INTCONST I1 1))))) ;SUB m32,imm32 (DEFINST ("SUB DWORD PTR ??1s,?2c" "SUBL $?2c,??1s" "SUB DWORD PTR ??1s,?2c") (PARALLEL (SET (MEM I32 (HOLE 1)) (SUB I32 (MEM I32 (HOLE 1)) (INTCONST I32 (HOLE 2)))) (SET (REG I1 CF) (BNOT I1 (CARRY I1 (MEM I32 (HOLE 1)) (BNOT I32 (INTCONST I32 (HOLE 2))) (INTCONST I1 1)))) (SET (REG I1 PF) (PARITY I1 (CONVIT I8 (SUB I32 (MEM I32 (HOLE 1)) (INTCONST I32 (HOLE 2)))))) (SET (REG I1 AF) (BNOT I1 (ACARRY I1 (MEM I32 (HOLE 1)) (BNOT I32 (INTCONST I32 (HOLE 2))) (INTCONST I1 1)))) (SET (REG I1 ZF) (TSTEQ I1 (SUB I32 (MEM I32 (HOLE 1)) (INTCONST I32 (HOLE 2))) (INTCONST I32 0))) (SET (REG I1 SF) (TSTLTS I1 (SUB I32 (MEM I32 (HOLE 1)) (INTCONST I32 (HOLE 2))) (INTCONST I32 0))) (SET (REG I1 OF) (OVERFLOW I1 (MEM I32 (HOLE 1)) (BNOT I32 (INTCONST I32 (HOLE 2))) (INTCONST I1 1))))) (DEFINST ("SUB DWORD PTR ??1s,??2a" "SUBL $??2a,??1s" "SUB DWORD PTR ??1s,??2a") (PARALLEL (SET (MEM I32 (HOLE 1)) (SUB I32 (MEM I32 (HOLE 1)) (HOLE 2))) (SET (REG I1 CF) (BNOT I1 (CARRY I1 (MEM I32 (HOLE 1)) (BNOT I32 (HOLE 2)) (INTCONST I1 1)))) (SET (REG I1 PF) (PARITY I1 (CONVIT I8 (SUB I32 (MEM I32 (HOLE 1)) (HOLE 2))))) (SET (REG I1 AF) (BNOT I1 (ACARRY I1 (MEM I32 (HOLE 1)) (BNOT I32 (HOLE 2)) (INTCONST I1 1)))) (SET (REG I1 ZF) (TSTEQ I1 (SUB I32 (MEM I32 (HOLE 1)) (HOLE 2)) (INTCONST I32 0))) (SET (REG I1 SF) (TSTLTS I1 (SUB I32 (MEM I32 (HOLE 1)) (HOLE 2)) (INTCONST I32 0))) (SET (REG I1 OF) (OVERFLOW I1 (MEM I32 (HOLE 1)) (BNOT I32 (HOLE 2)) (INTCONST I1 1))))) ;SUB r8,r8 (DEFINST ("SUB ?1l,?2l" "SUB %?2l,%?1l" "SUB ?1l,?2l") (PARALLEL (SET (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (SUB I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (SUBREG I8 (REG I32 (HOLE 2 R32)) 0))) (SET (REG I1 CF) (BNOT I1 (CARRY I1 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (BNOT I8 (SUBREG I8 (REG I32 (HOLE 2 R32)) 0)) (INTCONST I1 1)))) (SET (REG I1 PF) (PARITY I1 (SUB I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (SUBREG I8 (REG I32 (HOLE 2 R32)) 0)))) (SET (REG I1 AF) (BNOT I1 (ACARRY I1 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (BNOT I8 (SUBREG I8 (REG I32 (HOLE 2 R32)) 0)) (INTCONST I1 1)))) (SET (REG I1 ZF) (TSTEQ I1 (SUB I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (SUBREG I8 (REG I32 (HOLE 2 R32)) 0)) (INTCONST I8 0))) (SET (REG I1 SF) (TSTLTS I1 (SUB I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (SUBREG I8 (REG I32 (HOLE 2 R32)) 0)) (INTCONST I8 0))) (SET (REG I1 OF) (OVERFLOW I1 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (BNOT I8 (SUBREG I8 (REG I32 (HOLE 2 R32)) 0)) (INTCONST I1 1))))) (DEFINST ("SUB ?1l,?2h" "SUB %?2h,%?1l" "SUB ?1l,?2h") (PARALLEL (SET (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (SUB I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (SUBREG I8 (REG I32 (HOLE 2 R32)) 1))) (SET (REG I1 CF) (BNOT I1 (CARRY I1 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (BNOT I8 (SUBREG I8 (REG I32 (HOLE 2 R32)) 1)) (INTCONST I1 1)))) (SET (REG I1 PF) (PARITY I1 (SUB I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (SUBREG I8 (REG I32 (HOLE 2 R32)) 1)))) (SET (REG I1 AF) (BNOT I1 (ACARRY I1 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (BNOT I8 (SUBREG I8 (REG I32 (HOLE 2 R32)) 1)) (INTCONST I1 1)))) (SET (REG I1 ZF) (TSTEQ I1 (SUB I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (SUBREG I8 (REG I32 (HOLE 2 R32)) 1)) (INTCONST I8 0))) (SET (REG I1 SF) (TSTLTS I1 (SUB I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (SUBREG I8 (REG I32 (HOLE 2 R32)) 1)) (INTCONST I8 0))) (SET (REG I1 OF) (OVERFLOW I1 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (BNOT I8 (SUBREG I8 (REG I32 (HOLE 2 R32)) 1)) (INTCONST I1 1))))) (DEFINST ("SUB ?1h,?2l" "SUB %?2l,%?1h" "SUB ?1h,?2l") (PARALLEL (SET (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (SUB I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (SUBREG I8 (REG I32 (HOLE 2 R32)) 0))) (SET (REG I1 CF) (BNOT I1 (CARRY I1 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (BNOT I8 (SUBREG I8 (REG I32 (HOLE 2 R32)) 0)) (INTCONST I1 1)))) (SET (REG I1 PF) (PARITY I1 (SUB I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (SUBREG I8 (REG I32 (HOLE 2 R32)) 0)))) (SET (REG I1 AF) (BNOT I1 (ACARRY I1 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (BNOT I8 (SUBREG I8 (REG I32 (HOLE 2 R32)) 0)) (INTCONST I1 1)))) (SET (REG I1 ZF) (TSTEQ I1 (SUB I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (SUBREG I8 (REG I32 (HOLE 2 R32)) 0)) (INTCONST I8 0))) (SET (REG I1 SF) (TSTLTS I1 (SUB I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (SUBREG I8 (REG I32 (HOLE 2 R32)) 0)) (INTCONST I8 0))) (SET (REG I1 OF) (OVERFLOW I1 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (BNOT I8 (SUBREG I8 (REG I32 (HOLE 2 R32)) 0)) (INTCONST I1 1))))) (DEFINST ("SUB ?1h,?2h" "SUB %?2h,%?1h" "SUB ?1h,?2h") (PARALLEL (SET (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (SUB I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (SUBREG I8 (REG I32 (HOLE 2 R32)) 1))) (SET (REG I1 CF) (BNOT I1 (CARRY I1 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (BNOT I8 (SUBREG I8 (REG I32 (HOLE 2 R32)) 1)) (INTCONST I1 1)))) (SET (REG I1 PF) (PARITY I1 (SUB I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (SUBREG I8 (REG I32 (HOLE 2 R32)) 1)))) (SET (REG I1 AF) (BNOT I1 (ACARRY I1 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (BNOT I8 (SUBREG I8 (REG I32 (HOLE 2 R32)) 1)) (INTCONST I1 1)))) (SET (REG I1 ZF) (TSTEQ I1 (SUB I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (SUBREG I8 (REG I32 (HOLE 2 R32)) 1)) (INTCONST I8 0))) (SET (REG I1 SF) (TSTLTS I1 (SUB I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (SUBREG I8 (REG I32 (HOLE 2 R32)) 1)) (INTCONST I8 0))) (SET (REG I1 OF) (OVERFLOW I1 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (BNOT I8 (SUBREG I8 (REG I32 (HOLE 2 R32)) 1)) (INTCONST I1 1))))) ;SUB r8,m8 (DEFINST ("SUB ?1l,BYTE PTR ??2s" "SUB ??2s,%?1l" "SUB ?1l,BYTE PTR ??2s") (PARALLEL (SET (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (SUB I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (MEM I8 (HOLE 2)))) (SET (REG I1 CF) (BNOT I1 (CARRY I1 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (BNOT I8 (MEM I8 (HOLE 2))) (INTCONST I1 1)))) (SET (REG I1 PF) (PARITY I1 (SUB I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (MEM I8 (HOLE 2))))) (SET (REG I1 AF) (BNOT I1 (ACARRY I1 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (BNOT I8 (MEM I8 (HOLE 2))) (INTCONST I1 1)))) (SET (REG I1 ZF) (TSTEQ I1 (SUB I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (MEM I8 (HOLE 2))) (INTCONST I8 0))) (SET (REG I1 SF) (TSTLTS I1 (SUB I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (MEM I8 (HOLE 2))) (INTCONST I8 0))) (SET (REG I1 OF) (OVERFLOW I1 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (BNOT I8 (MEM I8 (HOLE 2))) (INTCONST I1 1))))) (DEFINST ("SUB ?1h,BYTE PTR ??2s" "SUB ??2s,%?1h" "SUB ?1h,BYTE PTR ??2s") (PARALLEL (SET (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (SUB I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (MEM I8 (HOLE 2)))) (SET (REG I1 CF) (BNOT I1 (CARRY I1 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (BNOT I8 (MEM I8 (HOLE 2))) (INTCONST I1 1)))) (SET (REG I1 PF) (PARITY I1 (SUB I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (MEM I8 (HOLE 2))))) (SET (REG I1 AF) (BNOT I1 (ACARRY I1 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (BNOT I8 (MEM I8 (HOLE 2))) (INTCONST I1 1)))) (SET (REG I1 ZF) (TSTEQ I1 (SUB I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (MEM I8 (HOLE 2))) (INTCONST I8 0))) (SET (REG I1 SF) (TSTLTS I1 (SUB I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (MEM I8 (HOLE 2))) (INTCONST I8 0))) (SET (REG I1 OF) (OVERFLOW I1 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (BNOT I8 (MEM I8 (HOLE 2))) (INTCONST I1 1))))) ;SUB m8,r8 (DEFINST ("SUB BYTE PTR ??1s,?2l" "SUB %?2l,??1s" "SUB BYTE PTR ??1s,?2l") (PARALLEL (SET (MEM I8 (HOLE 1)) (SUB I8 (MEM I8 (HOLE 1)) (SUBREG I8 (REG I32 (HOLE 2 R32)) 0))) (SET (REG I1 CF) (BNOT I1 (CARRY I1 (MEM I8 (HOLE 1)) (BNOT I8 (SUBREG I8 (REG I32 (HOLE 2 R32)) 0)) (INTCONST I1 1)))) (SET (REG I1 PF) (PARITY I1 (SUB I8 (MEM I8 (HOLE 1)) (SUBREG I8 (REG I32 (HOLE 2 R32)) 0)))) (SET (REG I1 AF) (BNOT I1 (ACARRY I1 (MEM I8 (HOLE 1)) (BNOT I8 (SUBREG I8 (REG I32 (HOLE 2 R32)) 0)) (INTCONST I1 1)))) (SET (REG I1 ZF) (TSTEQ I1 (SUB I8 (MEM I8 (HOLE 1)) (SUBREG I8 (REG I32 (HOLE 2 R32)) 0)) (INTCONST I8 0))) (SET (REG I1 SF) (TSTLTS I1 (SUB I8 (MEM I8 (HOLE 1)) (SUBREG I8 (REG I32 (HOLE 2 R32)) 0)) (INTCONST I8 0))) (SET (REG I1 OF) (OVERFLOW I1 (MEM I8 (HOLE 1)) (BNOT I8 (SUBREG I8 (REG I32 (HOLE 2 R32)) 0)) (INTCONST I1 1))))) (DEFINST ("SUB BYTE PTR ??1s,?2h" "SUB %?2h,??1s" "SUB BYTE PTR ??1s,?2h") (PARALLEL (SET (MEM I8 (HOLE 1)) (SUB I8 (MEM I8 (HOLE 1)) (SUBREG I8 (REG I32 (HOLE 2 R32)) 1))) (SET (REG I1 CF) (BNOT I1 (CARRY I1 (MEM I8 (HOLE 1)) (BNOT I8 (SUBREG I8 (REG I32 (HOLE 2 R32)) 1)) (INTCONST I1 1)))) (SET (REG I1 PF) (PARITY I1 (SUB I8 (MEM I8 (HOLE 1)) (SUBREG I8 (REG I32 (HOLE 2 R32)) 1)))) (SET (REG I1 AF) (BNOT I1 (ACARRY I1 (MEM I8 (HOLE 1)) (BNOT I8 (SUBREG I8 (REG I32 (HOLE 2 R32)) 1)) (INTCONST I1 1)))) (SET (REG I1 ZF) (TSTEQ I1 (SUB I8 (MEM I8 (HOLE 1)) (SUBREG I8 (REG I32 (HOLE 2 R32)) 1)) (INTCONST I8 0))) (SET (REG I1 SF) (TSTLTS I1 (SUB I8 (MEM I8 (HOLE 1)) (SUBREG I8 (REG I32 (HOLE 2 R32)) 1)) (INTCONST I8 0))) (SET (REG I1 OF) (OVERFLOW I1 (MEM I8 (HOLE 1)) (BNOT I8 (SUBREG I8 (REG I32 (HOLE 2 R32)) 1)) (INTCONST I1 1))))) ;SUB r16,r16 (DEFINST ("SUB ?1w,?2w" "SUB %?2w,%?1w" "SUB ?1w,?2w") (PARALLEL (SET (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (SUB I16 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (SUBREG I16 (REG I32 (HOLE 2 R32)) 0))) (SET (REG I1 CF) (BNOT I1 (CARRY I1 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (BNOT I16 (SUBREG I16 (REG I32 (HOLE 2 R32)) 0)) (INTCONST I1 1)))) (SET (REG I1 PF) (PARITY I1 (CONVIT I8 (SUB I16 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (SUBREG I16 (REG I32 (HOLE 2 R32)) 0))))) (SET (REG I1 AF) (BNOT I1 (ACARRY I1 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (BNOT I16 (SUBREG I16 (REG I32 (HOLE 2 R32)) 0)) (INTCONST I1 1)))) (SET (REG I1 ZF) (TSTEQ I1 (SUB I16 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (SUBREG I16 (REG I32 (HOLE 2 R32)) 0)) (INTCONST I16 0))) (SET (REG I1 SF) (TSTLTS I1 (SUB I16 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (SUBREG I16 (REG I32 (HOLE 2 R32)) 0)) (INTCONST I16 0))) (SET (REG I1 OF) (OVERFLOW I1 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (BNOT I16 (SUBREG I16 (REG I32 (HOLE 2 R32)) 0)) (INTCONST I1 1))))) ;SUB m16,r16 (DEFINST ("SUB WORD PTR ??1s,?2w" "SUB %?2w,??1s" "SUB WORD PTR ??1s,?2w") (PARALLEL (SET (MEM I16 (HOLE 1)) (SUB I16 (MEM I16 (HOLE 1)) (SUBREG I16 (REG I32 (HOLE 2 R32)) 0))) (SET (REG I1 CF) (BNOT I1 (CARRY I1 (MEM I16 (HOLE 1)) (BNOT I16 (SUBREG I16 (REG I32 (HOLE 2 R32)) 0)) (INTCONST I1 1)))) (SET (REG I1 PF) (PARITY I1 (CONVIT I8 (SUB I16 (MEM I16 (HOLE 1)) (SUBREG I16 (REG I32 (HOLE 2 R32)) 0))))) (SET (REG I1 AF) (BNOT I1 (ACARRY I1 (MEM I16 (HOLE 1)) (BNOT I16 (SUBREG I16 (REG I32 (HOLE 2 R32)) 0)) (INTCONST I1 1)))) (SET (REG I1 ZF) (TSTEQ I1 (SUB I16 (MEM I16 (HOLE 1)) (SUBREG I16 (REG I32 (HOLE 2 R32)) 0)) (INTCONST I16 0))) (SET (REG I1 SF) (TSTLTS I1 (SUB I16 (MEM I16 (HOLE 1)) (SUBREG I16 (REG I32 (HOLE 2 R32)) 0)) (INTCONST I16 0))) (SET (REG I1 OF) (OVERFLOW I1 (MEM I16 (HOLE 1)) (BNOT I16 (SUBREG I16 (REG I32 (HOLE 2 R32)) 0)) (INTCONST I1 1))))) ;SUB r16,m16 (DEFINST ("SUB ?1w,WORD PTR ??2s" "SUB ??2s,%?1w" "SUB ?1w,WORD PTR ??2s") (PARALLEL (SET (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (SUB I16 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (MEM I16 (HOLE 2)))) (SET (REG I1 CF) (BNOT I1 (CARRY I1 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (BNOT I16 (MEM I16 (HOLE 2))) (INTCONST I1 1)))) (SET (REG I1 PF) (PARITY I1 (CONVIT I8 (SUB I16 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (MEM I16 (HOLE 2)))))) (SET (REG I1 AF) (BNOT I1 (ACARRY I1 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (BNOT I16 (MEM I16 (HOLE 2))) (INTCONST I1 1)))) (SET (REG I1 ZF) (TSTEQ I1 (SUB I16 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (MEM I16 (HOLE 2))) (INTCONST I16 0))) (SET (REG I1 SF) (TSTLTS I1 (SUB I16 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (MEM I16 (HOLE 2))) (INTCONST I16 0))) (SET (REG I1 OF) (OVERFLOW I1 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (BNOT I16 (MEM I16 (HOLE 2))) (INTCONST I1 1))))) ;SUB r32,r32 (DEFINST ("SUB ?1r,?2r" "SUB %?2r,%?1r" "SUB ?1r,?2r") (PARALLEL (SET (REG I32 (HOLE 1 R32)) (SUB I32 (REG I32 (HOLE 1 R32)) (REG I32 (HOLE 2 R32)))) (SET (REG I1 CF) (BNOT I1 (CARRY I1 (REG I32 (HOLE 1 R32)) (BNOT I32 (REG I32 (HOLE 2 R32))) (INTCONST I1 1)))) (SET (REG I1 PF) (PARITY I1 (CONVIT I8 (SUB I32 (REG I32 (HOLE 1 R32)) (REG I32 (HOLE 2 R32)))))) (SET (REG I1 AF) (BNOT I1 (ACARRY I1 (REG I32 (HOLE 1 R32)) (BNOT I32 (REG I32 (HOLE 2 R32))) (INTCONST I1 1)))) (SET (REG I1 ZF) (TSTEQ I1 (SUB I32 (REG I32 (HOLE 1 R32)) (REG I32 (HOLE 2 R32))) (INTCONST I32 0))) (SET (REG I1 SF) (TSTLTS I1 (SUB I32 (REG I32 (HOLE 1 R32)) (REG I32 (HOLE 2 R32))) (INTCONST I32 0))) (SET (REG I1 OF) (OVERFLOW I1 (REG I32 (HOLE 1 R32)) (BNOT I32 (REG I32 (HOLE 2 R32))) (INTCONST I1 1))))) ;SUB m32,r32 (DEFINST ("SUB DWORD PTR ??1s,?2r" "SUB %?2r,??1s" "SUB DWORD PTR ??1s,?2r") (PARALLEL (SET (MEM I32 (HOLE 1)) (SUB I32 (MEM I32 (HOLE 1)) (REG I32 (HOLE 2 R32)))) (SET (REG I1 CF) (BNOT I1 (CARRY I1 (MEM I32 (HOLE 1)) (BNOT I32 (REG I32 (HOLE 2 R32))) (INTCONST I1 1)))) (SET (REG I1 PF) (PARITY I1 (CONVIT I8 (SUB I32 (MEM I32 (HOLE 1)) (REG I32 (HOLE 2 R32)))))) (SET (REG I1 AF) (BNOT I1 (ACARRY I1 (MEM I32 (HOLE 1)) (BNOT I32 (REG I32 (HOLE 2 R32))) (INTCONST I1 1)))) (SET (REG I1 ZF) (TSTEQ I1 (SUB I32 (MEM I32 (HOLE 1)) (REG I32 (HOLE 2 R32))) (INTCONST I32 0))) (SET (REG I1 SF) (TSTLTS I1 (SUB I32 (MEM I32 (HOLE 1)) (REG I32 (HOLE 2 R32))) (INTCONST I32 0))) (SET (REG I1 OF) (OVERFLOW I1 (MEM I32 (HOLE 1)) (BNOT I32 (REG I32 (HOLE 2 R32))) (INTCONST I1 1))))) ;SUB r32,m32 (DEFINST ("SUB ?1r,DWORD PTR ??2s" "SUB ??2s,%?1r" "SUB ?1r,DWORD PTR ??2s") (PARALLEL (SET (REG I32 (HOLE 1 R32)) (SUB I32 (REG I32 (HOLE 1 R32)) (MEM I32 (HOLE 2)))) (SET (REG I1 CF) (BNOT I1 (CARRY I1 (REG I32 (HOLE 1 R32)) (BNOT I32 (MEM I32 (HOLE 2))) (INTCONST I1 1)))) (SET (REG I1 PF) (PARITY I1 (CONVIT I8 (SUB I32 (REG I32 (HOLE 1 R32)) (MEM I32 (HOLE 2)))))) (SET (REG I1 AF) (BNOT I1 (ACARRY I1 (REG I32 (HOLE 1 R32)) (BNOT I32 (MEM I32 (HOLE 2))) (INTCONST I1 1)))) (SET (REG I1 ZF) (TSTEQ I1 (SUB I32 (REG I32 (HOLE 1 R32)) (MEM I32 (HOLE 2))) (INTCONST I32 0))) (SET (REG I1 SF) (TSTLTS I1 (SUB I32 (REG I32 (HOLE 1 R32)) (MEM I32 (HOLE 2))) (INTCONST I32 0))) (SET (REG I1 OF) (OVERFLOW I1 (REG I32 (HOLE 1 R32)) (BNOT I32 (MEM I32 (HOLE 2))) (INTCONST I1 1))))) ;AAA (DEFINST ("AAA" "AAA" "AAA") (PARALLEL (SET (SUBREG I8 (REG I32 EAX) 0) (IFTHENELSE I8 (BOR I1 (TSTGTU I1 (BAND I8 (SUBREG I8 (REG I32 EAX) 0) (INTCONST I8 #x0F)) (INTCONST I8 9)) (REG I1 AF)) (BAND I8 (ADD I8 (SUBREG I8 (REG I32 EAX) 0) (INTCONST I8 6)) (INTCONST I8 #x0F)) (BAND I8 (SUBREG I8 (REG I32 EAX) 0) (INTCONST I8 #x0F)))) (SET (SUBREG I8 (REG I32 EAX) 1) (IFTHENELSE I8 (BOR I1 (TSTGTU I1 (BAND I8 (SUBREG I8 (REG I32 EAX) 0) (INTCONST I8 #x0F)) (INTCONST I8 9)) (REG I1 AF)) (ADD I8 (SUBREG I8 (REG I32 EAX) 1) (INTCONST I8 1)) (SUBREG I8 (REG I32 EAX) 1))) (SET (REG I1 CF) (BOR I1 (TSTGTU I1 (BAND I8 (SUBREG I8 (REG I32 EAX) 0) (INTCONST I8 #x0F)) (INTCONST I8 9)) (REG I1 AF))) (CLOBBER (REG I1 PF)) (SET (REG I1 AF) (BOR I1 (TSTGTU I1 (BAND I8 (SUBREG I8 (REG I32 EAX) 0) (INTCONST I8 #x0F)) (INTCONST I8 9)) (REG I1 AF))) (CLOBBER (REG I1 ZF)) (CLOBBER (REG I1 SF)) (CLOBBER (REG I1 OF)))) ;AAD (DEFINST ("AAD" "AAD" "AAD") (PARALLEL (SET (SUBREG I8 (REG I32 EAX) 0) (BAND I8 (ADD I8 (SUBREG I8 (REG I32 EAX) 0) (MUL I8 (SUBREG I8 (REG I32 EAX) 1) (INTCONST I8 10))) (INTCONST I8 #xFF))) (SET (SUBREG I8 (REG I32 EAX) 1) (INTCONST I8 0)) (CLOBBER (REG I1 CF)) (SET (REG I1 PF) (PARITY I1 (BAND I8 (ADD I8 (SUBREG I8 (REG I32 EAX) 0) (MUL I8 (SUBREG I8 (REG I32 EAX) 0) (INTCONST I8 10))) (INTCONST I8 #xFF)))) (CLOBBER (REG I1 AF)) (SET (REG I1 ZF) (TSTEQ I1 (BAND I8 (ADD I8 (SUBREG I8 (REG I32 EAX) 0) (MUL I8 (SUBREG I8 (REG I32 EAX) 0) (INTCONST I8 10))) (INTCONST I8 #xFF)) (INTCONST I8 0))) (SET (REG I1 SF) (TSTLTS I1 (BAND I8 (ADD I8 (SUBREG I8 (REG I32 EAX) 0) (MUL I8 (SUBREG I8 (REG I32 EAX) 0) (INTCONST I8 10))) (INTCONST I8 #xFF)) (INTCONST I8 0))) (CLOBBER (REG I1 OF)))) ;AAM ; Opcode "D4 ib" に対応する mnemonic は、ないので除外 ; Opcode "D4 0A" に対応する AAM (DEFINST ("AAM" "AAM" "AAM") (PARALLEL (SET (SUBREG I8 (REG I32 EAX) 0) (MODU I8 (SUBREG I8 (REG I32 EAX) 0) (INTCONST I8 10))) (SET (SUBREG I8 (REG I32 EAX) 1) (DIVU I8 (SUBREG I8 (REG I32 EAX) 0) (INTCONST I8 10))) (CLOBBER (REG I1 CF)) (SET (REG I1 PF) (PARITY I1 (MODU I8 (SUBREG I8 (REG I32 EAX) 0) (INTCONST I8 10)))) (CLOBBER (REG I1 AF)) (SET (REG I1 ZF) (TSTEQ I1 (MODU I8 (SUBREG I8 (REG I32 EAX) 0) (INTCONST I8 10)) (INTCONST I8 0))) (SET (REG I1 SF) (TSTLTS I1 (MODU I8 (SUBREG I8 (REG I32 EAX) 0) (INTCONST I8 10)) (INTCONST I8 0))) (CLOBBER (REG I1 OF)))) ;AAS (DEFINST ("AAS" "AAS" "AAS") (PARALLEL (SET (SUBREG I8 (REG I32 EAX) 0) ; if ((al and #x0f) > 9) or (af <- 1) (IFTHENELSE I8 (BOR I1 (TSTGTU I1 (BAND I8 (SUBREG I8 (REG I32 EAX) 0) (INTCONST I8 #x0F)) (INTCONST I8 9)) (REG I1 AF)) ; then al <- al - 6 (BAND I8 (SUB I8 (SUBREG I8 (REG I32 EAX) 0) (INTCONST I8 6)) (INTCONST I8 #x0F)) ; al <- al and o#xf (BAND I8 (SUBREG I8 (REG I32 EAX) 0) (INTCONST I8 #x0F)))) (SET (SUBREG I8 (REG I32 EAX) 1) (IFTHENELSE I8 (BOR I1 (TSTGTU I1 (BAND I8 (SUBREG I8 (REG I32 EAX) 0) (INTCONST I8 #x0F)) (INTCONST I8 9)) (REG I1 AF)) (SUB I8 (SUBREG I8 (REG I32 EAX) 1) (INTCONST I8 1)) (SUBREG I8 (REG I32 EAX) 1))) (SET (REG I1 CF) (BOR I1 (TSTGTU I1 (BAND I8 (SUBREG I8 (REG I32 EAX) 0) (INTCONST I8 #x0F)) (INTCONST I8 9)) (REG I1 AF))) (CLOBBER (REG I1 PF)) (SET (REG I1 AF) (BOR I1 (TSTGTU I1 (BAND I8 (SUBREG I8 (REG I32 EAX) 0) (INTCONST I8 #x0F)) (INTCONST I8 9)) (REG I1 AF))) (CLOBBER (REG I1 ZF)) (CLOBBER (REG I1 SF)) (CLOBBER (REG I1 OF)))) ;DAA (DEFINST ("DAA" "DAA" "DAA") (PARALLEL ; AL (SET (SUBREG I8 (REG I32 EAX) 0) ; IF (((AL AND #x0F) > 9) OR AF = 1) (IFTHENELSE I8 (BOR I1 (TSTGTU I1 (BAND I8 (SUBREG I8 (REG I32 EAX) 0) (INTCONST I8 #x0F)) (INTCONST I8 9)) (REG I1 AF)) ; THEN ; IF (((AL AND #xF0) > 90H) OR CF = 1) (IFTHENELSE I8 (BOR I1 (TSTGTU I1 (BAND I8 (ADD I8 (SUBREG I8 (REG I32 EAX) 0) (INTCONST I8 6)) (INTCONST I8 #xF0)) (INTCONST I8 #x90)) (BOR I1 (REG I1 CF) (CARRY I1 (SUBREG I8 (REG I32 EAX) 0) (INTCONST I8 6) (INTCONST I1 0)))) ; THEN AL = AL + #x66 (ADD I8 (ADD I8 (SUBREG I8 (REG I32 EAX) 0) (INTCONST I8 6)) (INTCONST I8 #x60)) ; ELSE AL = AL + 6 (ADD I8 (SUBREG I8 (REG I32 EAX) 0) (INTCONST I8 6))) ; ELSE ; IF (((AL AND #xF0) > 90H) OR CF = 1) (IFTHENELSE I8 (BOR I1 (TSTGTU I1 (BAND I8 (SUBREG I8 (REG I32 EAX) 0) (INTCONST I8 #xF0)) (INTCONST I8 #x90)) (REG I1 CF)) ; THEN AL = #x60 (ADD I8 (SUBREG I8 (REG I32 EAX) 0) (INTCONST I8 #x60)) ; ELSE AL = AL (SUBREG I8 (REG I32 EAX) 0)))) ; CF (SET (REG I1 CF) ; IF (((AL AND #x0F) > 9) OR AF = 1) (IFTHENELSE I1 (BOR I1 (TSTGTU I1 (BAND I8 (SUBREG I8 (REG I32 EAX) 0) (INTCONST I8 #x0F)) (INTCONST I8 9)) (REG I1 AF)) ; THEN (BOR I1 (TSTGTU I1 (BAND I8 (ADD I8 (SUBREG I8 (REG I32 EAX) 0) (INTCONST I8 6)) (INTCONST I8 #xF0)) (INTCONST I8 #x90)) (BOR I1 (REG I1 CF) (CARRY I1 (SUBREG I8 (REG I32 EAX) 0) (INTCONST I8 6) (INTCONST I1 0)))) ; ELSE (BOR I1 (TSTGTU I1 (BAND I8 (SUBREG I8 (REG I32 EAX) 0) (INTCONST I8 #xF0)) (INTCONST I8 #x90)) (REG I1 CF)))) ; PF (SET (REG I1 PF) ; IF (((AL AND #x0F) > 9) OR AF = 1) (IFTHENELSE I1 (BOR I1 (TSTGTU I1 (BAND I8 (SUBREG I8 (REG I32 EAX) 0) (INTCONST I8 #x0F)) (INTCONST I8 9)) (REG I1 AF)) ; THEN ; IF (((AL AND #xF0) > 90H) OR CF = 1) (IFTHENELSE I1 (BOR I1 (TSTGTU I1 (BAND I8 (ADD I8 (SUBREG I8 (REG I32 EAX) 0) (INTCONST I8 6)) (INTCONST I8 #xF0)) (INTCONST I8 #x90)) (BOR I1 (REG I1 CF) (CARRY I1 (SUBREG I8 (REG I32 EAX) 0) (INTCONST I8 6) (INTCONST I1 0)))) ; THEN (PARITY I1 (ADD I8 (ADD I8 (SUBREG I8 (REG I32 EAX) 0) (INTCONST I8 6)) (INTCONST I8 #x60))) ; ELSE (PARITY I1 (ADD I8 (SUBREG I8 (REG I32 EAX) 0) (INTCONST I8 6)))) ; ELSE ; IF (((AL AND #xF0) > 90H) OR CF = 1) (IFTHENELSE I1 (BOR I1 (TSTGTU I1 (BAND I8 (SUBREG I8 (REG I32 EAX) 0) (INTCONST I8 #xF0)) (INTCONST I8 #x90)) (REG I1 CF)) ; THEN (PARITY I1 (ADD I8 (SUBREG I8 (REG I32 EAX) 0) (INTCONST I8 #x60))) ; ELSE (PARITY I1 (SUBREG I8 (REG I32 EAX) 0))))) ; AF (SET (REG I1 AF) ; (((AL AND #x0F) > 9) OR AF = 1) (BOR I1 (TSTGTU I1 (BAND I8 (SUBREG I8 (REG I32 EAX) 0) (INTCONST I8 #x0F)) (INTCONST I8 9)) (REG I1 AF))) ; ZF (SET (REG I1 ZF) ; IF (((AL AND #x0F) > 9) OR AF = 1) (IFTHENELSE I1 (BOR I1 (TSTGTU I1 (BAND I8 (SUBREG I8 (REG I32 EAX) 0) (INTCONST I8 #x0F)) (INTCONST I8 9)) (REG I1 AF)) ; THEN ; IF (((AL AND #xF0) > 90H) OR CF = 1) (IFTHENELSE I1 (BOR I1 (TSTGTU I1 (BAND I8 (ADD I8 (SUBREG I8 (REG I32 EAX) 0) (INTCONST I8 6)) (INTCONST I8 #xF0)) (INTCONST I8 #x90)) (BOR I1 (REG I1 CF) (CARRY I1 (SUBREG I8 (REG I32 EAX) 0) (INTCONST I8 6) (INTCONST I1 0)))) ; THEN (TSTEQ I1 (ADD I8 (ADD I8 (SUBREG I8 (REG I32 EAX) 0) (INTCONST I8 6)) (INTCONST I8 #x60)) (INTCONST I8 0)) ; ELSE (TSTEQ I1 (ADD I8 (SUBREG I8 (REG I32 EAX) 0) (INTCONST I8 6)) (INTCONST I8 0))) ; ELSE ; IF (((AL AND #xF0) > 90H) OR CF = 1) (IFTHENELSE I1 (BOR I1 (TSTGTU I1 (BAND I8 (SUBREG I8 (REG I32 EAX) 0) (INTCONST I8 #xF0)) (INTCONST I8 #x90)) (REG I1 CF)) ; THEN (TSTEQ I1 (ADD I8 (SUBREG I8 (REG I32 EAX) 0) (INTCONST I8 #x60)) (INTCONST I8 0)) ; ELSE (TSTEQ I1 (SUBREG I8 (REG I32 EAX) 0) (INTCONST I8 0))))) ; SF (SET (REG I1 SF) ; IF (((AL AND #x0F) > 9) OR AF = 1) (IFTHENELSE I1 (BOR I1 (TSTGTU I1 (BAND I8 (SUBREG I8 (REG I32 EAX) 0) (INTCONST I8 #x0F)) (INTCONST I8 9)) (REG I1 AF)) ; THEN ; IF (((AL AND #xF0) > 90H) OR CF = 1) (IFTHENELSE I1 (BOR I1 (TSTGTU I1 (BAND I8 (ADD I8 (SUBREG I8 (REG I32 EAX) 0) (INTCONST I8 6)) (INTCONST I8 #xF0)) (INTCONST I8 #x90)) (BOR I1 (REG I1 CF) (CARRY I1 (SUBREG I8 (REG I32 EAX) 0) (INTCONST I8 6) (INTCONST I1 0)))) ; THEN (TSTLTS I1 (ADD I8 (ADD I8 (SUBREG I8 (REG I32 EAX) 0) (INTCONST I8 6)) (INTCONST I8 #x60)) (INTCONST I8 0)) ; ELSE (TSTLTS I1 (ADD I8 (SUBREG I8 (REG I32 EAX) 0) (INTCONST I8 6)) (INTCONST I8 0))) ; ELSE ; IF (((AL AND #xF0) > 90H) OR CF = 1) (IFTHENELSE I1 (BOR I1 (TSTGTU I1 (BAND I8 (SUBREG I8 (REG I32 EAX) 0) (INTCONST I8 #xF0)) (INTCONST I8 #x90)) (REG I1 CF)) ; THEN (TSTLTS I1 (ADD I8 (SUBREG I8 (REG I32 EAX) 0) (INTCONST I8 #x60)) (INTCONST I8 0)) ; ELSE (TSTLTS I1 (SUBREG I8 (REG I32 EAX) 0) (INTCONST I8 0))))) ; OF (CLOBBER (REG I1 OF)))) ;DAS (DEFINST ("DAS" "DAS" "DAS") (PARALLEL ; AL (SET (SUBREG I8 (REG I32 EAX) 0) ; IF (((AL AND #x0F) > 9) OR AF = 1) (IFTHENELSE I8 (BOR I1 (TSTGTU I1 (BAND I8 (SUBREG I8 (REG I32 EAX) 0) (INTCONST I8 #x0F)) (INTCONST I8 9)) (REG I1 AF)) ; THEN ; IF (((AL AND #xF0) > 90H) OR CF = 1) (IFTHENELSE I8 (BOR I1 (TSTGTU I1 (BAND I8 (SUB I8 (SUBREG I8 (REG I32 EAX) 0) (INTCONST I8 6)) (INTCONST I8 #xF0)) (INTCONST I8 #x90)) (BOR I1 (REG I1 CF) (BNOT I1 (CARRY I1 (SUBREG I8 (REG I32 EAX) 0) (BNOT I8 (INTCONST I8 6)) (BNOT I1 (REG I1 CF)))))) ; THEN AL = AL - #x66 (SUB I8 (SUB I8 (SUBREG I8 (REG I32 EAX) 0) (INTCONST I8 6)) (INTCONST I8 #x60)) ; ELSE AL = AL - 6 (SUB I8 (SUBREG I8 (REG I32 EAX) 0) (INTCONST I8 6))) ; ELSE ; IF (((AL AND #xF0) > 90H) OR CF = 1) (IFTHENELSE I8 (BOR I1 (TSTGTU I1 (BAND I8 (SUBREG I8 (REG I32 EAX) 0) (INTCONST I8 #xF0)) (INTCONST I8 #x90)) (REG I1 CF)) ; THEN AL = #x60 (SUB I8 (SUBREG I8 (REG I32 EAX) 0) (INTCONST I8 #x60)) ; ELSE AL = AL (SUBREG I8 (REG I32 EAX) 0)))) ; CF (SET (REG I1 CF) ; IF (((AL AND #x0F) > 9) OR AF = 1) (IFTHENELSE I1 (BOR I1 (TSTGTU I1 (BAND I8 (SUBREG I8 (REG I32 EAX) 0) (INTCONST I8 #x0F)) (INTCONST I8 9)) (REG I1 AF)) ; THEN (BOR I1 (TSTGTU I1 (BAND I8 (SUB I8 (SUBREG I8 (REG I32 EAX) 0) (INTCONST I8 6)) (INTCONST I8 #xF0)) (INTCONST I8 #x90)) (BOR I1 (REG I1 CF) (BNOT I1 (CARRY I1 (SUBREG I8 (REG I32 EAX) 0) (BNOT I8 (INTCONST I8 6)) (BNOT I1 (REG I1 CF)))))) ; ELSE (BOR I1 (TSTGTU I1 (BAND I8 (SUBREG I8 (REG I32 EAX) 0) (INTCONST I8 #xF0)) (INTCONST I8 #x90)) (REG I1 CF)))) ; PF (SET (REG I1 PF) ; IF (((AL AND #x0F) > 9) OR AF = 1) (IFTHENELSE I1 (BOR I1 (TSTGTU I1 (BAND I8 (SUBREG I8 (REG I32 EAX) 0) (INTCONST I8 #x0F)) (INTCONST I8 9)) (REG I1 AF)) ; THEN ; IF (((AL AND #xF0) > 90H) OR CF = 1) (IFTHENELSE I1 (BOR I1 (TSTGTU I1 (BAND I8 (SUB I8 (SUBREG I8 (REG I32 EAX) 0) (INTCONST I8 6)) (INTCONST I8 #xF0)) (INTCONST I8 #x90)) (BOR I1 (REG I1 CF) (BNOT I1 (CARRY I1 (SUBREG I8 (REG I32 EAX) 0) (BNOT I8 (INTCONST I8 6)) (BNOT I1 (REG I1 CF)))))) ; THEN (PARITY I1 (SUB I8 (SUB I8 (SUBREG I8 (REG I32 EAX) 0) (INTCONST I8 6)) (INTCONST I8 #x60))) ; ELSE (PARITY I1 (SUB I8 (SUBREG I8 (REG I32 EAX) 0) (INTCONST I8 6)))) ; ELSE ; IF (((AL AND #xF0) > 90H) OR CF = 1) (IFTHENELSE I1 (BOR I1 (TSTGTU I1 (BAND I8 (SUBREG I8 (REG I32 EAX) 0) (INTCONST I8 #xF0)) (INTCONST I8 #x90)) (REG I1 CF)) ; THEN (PARITY I1 (SUB I8 (SUBREG I8 (REG I32 EAX) 0) (INTCONST I8 #x60))) ; ELSE (PARITY I1 (SUBREG I8 (REG I32 EAX) 0))))) ; AF (SET (REG I1 AF) ; (((AL AND #x0F) > 9) OR AF = 1) (BOR I1 (TSTGTU I1 (BAND I8 (SUBREG I8 (REG I32 EAX) 0) (INTCONST I8 #x0F)) (INTCONST I8 9)) (REG I1 AF))) ; ZF (SET (REG I1 ZF) ; IF (((AL AND #x0F) > 9) OR AF = 1) (IFTHENELSE I1 (BOR I1 (TSTGTU I1 (BAND I8 (SUBREG I8 (REG I32 EAX) 0) (INTCONST I8 #x0F)) (INTCONST I8 9)) (REG I1 AF)) ; THEN ; IF (((AL AND #xF0) > 90H) OR CF = 1) (IFTHENELSE I1 (BOR I1 (TSTGTU I1 (BAND I8 (SUB I8 (SUBREG I8 (REG I32 EAX) 0) (INTCONST I8 6)) (INTCONST I8 #xF0)) (INTCONST I8 #x90)) (BOR I1 (REG I1 CF) (BNOT I1 (CARRY I1 (SUBREG I8 (REG I32 EAX) 0) (BNOT I8 (INTCONST I8 6)) (BNOT I1 (REG I1 CF)))))) ; THEN (TSTEQ I1 (SUB I8 (SUB I8 (SUBREG I8 (REG I32 EAX) 0) (INTCONST I8 6)) (INTCONST I8 #x60)) (INTCONST I8 0)) ; ELSE (TSTEQ I1 (SUB I8 (SUBREG I8 (REG I32 EAX) 0) (INTCONST I8 6)) (INTCONST I8 0))) ; ELSE ; IF (((AL AND #xF0) > 90H) OR CF = 1) (IFTHENELSE I1 (BOR I1 (TSTGTU I1 (BAND I8 (SUBREG I8 (REG I32 EAX) 0) (INTCONST I8 #xF0)) (INTCONST I8 #x90)) (REG I1 CF)) ; THEN (TSTEQ I1 (SUB I8 (SUBREG I8 (REG I32 EAX) 0) (INTCONST I8 #x60)) (INTCONST I8 0)) ; ELSE (TSTEQ I1 (SUBREG I8 (REG I32 EAX) 0) (INTCONST I8 0))))) ; SF (SET (REG I1 SF) ; IF (((AL AND #x0F) > 9) OR AF = 1) (IFTHENELSE I1 (BOR I1 (TSTGTU I1 (BAND I8 (SUBREG I8 (REG I32 EAX) 0) (INTCONST I8 #x0F)) (INTCONST I8 9)) (REG I1 AF)) ; THEN ; IF (((AL AND #xF0) > 90H) OR CF = 1) (IFTHENELSE I1 (BOR I1 (TSTGTU I1 (BAND I8 (SUB I8 (SUBREG I8 (REG I32 EAX) 0) (INTCONST I8 6)) (INTCONST I8 #xF0)) (INTCONST I8 #x90)) (BOR I1 (REG I1 CF) (BNOT I1 (CARRY I1 (SUBREG I8 (REG I32 EAX) 0) (BNOT I8 (INTCONST I8 6)) (BNOT I1 (REG I1 CF)))))) ; THEN (TSTLTS I1 (SUB I8 (SUB I8 (SUBREG I8 (REG I32 EAX) 0) (INTCONST I8 6)) (INTCONST I8 #x60)) (INTCONST I8 0)) ; ELSE (TSTLTS I1 (SUB I8 (SUBREG I8 (REG I32 EAX) 0) (INTCONST I8 6)) (INTCONST I8 0))) ; ELSE ; IF (((AL AND #xF0) > 90H) OR CF = 1) (IFTHENELSE I1 (BOR I1 (TSTGTU I1 (BAND I8 (SUBREG I8 (REG I32 EAX) 0) (INTCONST I8 #xF0)) (INTCONST I8 #x90)) (REG I1 CF)) ; THEN (TSTLTS I1 (SUB I8 (SUBREG I8 (REG I32 EAX) 0) (INTCONST I8 #x60)) (INTCONST I8 0)) ; ELSE (TSTLTS I1 (SUBREG I8 (REG I32 EAX) 0) (INTCONST I8 0))))) ; OF (CLOBBER (REG I1 OF)))) ;AND ;AND r8,imm8 (DEFINST ("AND ?1l,?2c" "AND $?2c,%?1l" "AND ?1l,?2c") (PARALLEL (SET (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (BAND I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (INTCONST I8 (HOLE 2)))) (SET (REG I1 CF) (INTCONST I1 #b0)) (SET (REG I1 PF) (PARITY I1 (BAND I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (INTCONST I8 (HOLE 2))))) (CLOBBER (REG I1 AF)) (SET (REG I1 ZF) (TSTEQ I1 (BAND I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (INTCONST I8 (HOLE 2))) (INTCONST I8 0))) (SET (REG I1 SF) (TSTLTS I1 (BAND I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (INTCONST I8 (HOLE 2))) (INTCONST I8 0))) (SET (REG I1 OF) (INTCONST I1 #b0)))) (DEFINST ("AND ?1h,?2c" "AND $?2c,%?1h" "AND ?1h,?2c") (PARALLEL (SET (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (BAND I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (INTCONST I8 (HOLE 2)))) (SET (REG I1 CF) (INTCONST I1 #b0)) (SET (REG I1 PF) (PARITY I1 (BAND I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (INTCONST I8 (HOLE 2))))) (CLOBBER (REG I1 AF)) (SET (REG I1 ZF) (TSTEQ I1 (BAND I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (INTCONST I8 (HOLE 2))) (INTCONST I8 0))) (SET (REG I1 SF) (TSTLTS I1 (BAND I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (INTCONST I8 (HOLE 2))) (INTCONST I8 0))) (SET (REG I1 OF) (INTCONST I1 #b0)))) ;AND m8,imm8 (DEFINST ("AND BYTE PTR ??1s,?2c" "ANDB $?2c,??1s" "AND BYTE PTR ??1s,?2c") (PARALLEL (SET (MEM I8 (HOLE 1)) (BAND I8 (MEM I8 (HOLE 1)) (INTCONST I8 (HOLE 2)))) (SET (REG I1 CF) (INTCONST I1 #b0)) (SET (REG I1 PF) (PARITY I1 (BAND I8 (MEM I8 (HOLE 1)) (INTCONST I8 (HOLE 2))))) (CLOBBER (REG I1 AF)) (SET (REG I1 ZF) (TSTEQ I1 (BAND I8 (MEM I8 (HOLE 1)) (INTCONST I8 (HOLE 2))) (INTCONST I8 0))) (SET (REG I1 SF) (TSTLTS I1 (BAND I8 (MEM I8 (HOLE 1)) (INTCONST I8 (HOLE 2))) (INTCONST I8 0))) (SET (REG I1 OF) (INTCONST I1 #b0)))) ;AND r16,imm16 (DEFINST ("AND ?1w,?2c" "AND $?2c,%?1w" "AND ?1w,?2c") (PARALLEL (SET (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (BAND I16 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (INTCONST I16 (HOLE 2)))) (SET (REG I1 CF) (INTCONST I1 #b0)) (SET (REG I1 PF) (PARITY I1 (CONVIT I8 (BAND I16 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (INTCONST I16 (HOLE 2)))))) (CLOBBER (REG I1 AF)) (SET (REG I1 ZF) (TSTEQ I1 (BAND I16 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (INTCONST I16 (HOLE 2))) (INTCONST I16 0))) (SET (REG I1 SF) (TSTLTS I1 (BAND I16 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (INTCONST I16 (HOLE 2))) (INTCONST I16 0))) (SET (REG I1 OF) (INTCONST I1 #b0)))) ;AND m16,imm16 (DEFINST ("AND WORD PTR ??1s,?2c" "ANDW $?2c,??1s" "AND WORD PTR ??1s,?2c") (PARALLEL (SET (MEM I16 (HOLE 1)) (BAND I16 (MEM I16 (HOLE 1)) (INTCONST I16 (HOLE 2)))) (SET (REG I1 CF) (INTCONST I1 #b0)) (SET (REG I1 PF) (PARITY I1 (CONVIT I8 (BAND I16 (MEM I16 (HOLE 1)) (INTCONST I16 (HOLE 2)))))) (CLOBBER (REG I1 AF)) (SET (REG I1 ZF) (TSTEQ I1 (BAND I16 (MEM I16 (HOLE 1)) (INTCONST I16 (HOLE 2))) (INTCONST I16 0))) (SET (REG I1 SF) (TSTLTS I1 (BAND I16 (MEM I16 (HOLE 1)) (INTCONST I16 (HOLE 2))) (INTCONST I16 0))) (SET (REG I1 OF) (INTCONST I1 #b0)))) ;AND r32,imm32 (DEFINST ("AND ?1r,?2c" "AND $?2c,%?1r" "AND ?1r,?2c") (PARALLEL (SET (REG I32 (HOLE 1 R32)) (BAND I32 (REG I32 (HOLE 1 R32)) (INTCONST I32 (HOLE 2)))) (SET (REG I1 CF) (INTCONST I1 #b0)) (SET (REG I1 PF) (PARITY I1 (CONVIT I8 (BAND I32 (REG I32 (HOLE 1 R32)) (INTCONST I32 (HOLE 2)))))) (CLOBBER (REG I1 AF)) (SET (REG I1 ZF) (TSTEQ I1 (BAND I32 (REG I32 (HOLE 1 R32)) (INTCONST I32 (HOLE 2))) (INTCONST I32 0))) (SET (REG I1 SF) (TSTLTS I1 (BAND I32 (REG I32 (HOLE 1 R32)) (INTCONST I32 (HOLE 2))) (INTCONST I32 0))) (SET (REG I1 OF) (INTCONST I1 #b0)))) (DEFINST ("AND ?1r,??2a" "AND $??2a,%?1r" "AND ?1r,??2a") (PARALLEL (SET (REG I32 (HOLE 1 R32)) (BAND I32 (REG I32 (HOLE 1 R32)) (HOLE 2))) (SET (REG I1 CF) (INTCONST I1 #b0)) (SET (REG I1 PF) (PARITY I1 (CONVIT I8 (BAND I32 (REG I32 (HOLE 1 R32)) (HOLE 2))))) (CLOBBER (REG I1 AF)) (SET (REG I1 ZF) (TSTEQ I1 (BAND I32 (REG I32 (HOLE 1 R32)) (HOLE 2)) (INTCONST I32 0))) (SET (REG I1 SF) (TSTLTS I1 (BAND I32 (REG I32 (HOLE 1 R32)) (HOLE 2)) (INTCONST I32 0))) (SET (REG I1 OF) (INTCONST I1 #b0)))) ;AND m32,imm32 (DEFINST ("AND DWORD PTR ??1s,?2c" "ANDL $?2c,??1s" "AND DWORD PTR ??1s,?2c") (PARALLEL (SET (MEM I32 (HOLE 1)) (BAND I32 (MEM I32 (HOLE 1)) (INTCONST I32 (HOLE 2)))) (SET (REG I1 CF) (INTCONST I1 #b0)) (SET (REG I1 PF) (PARITY I1 (CONVIT I8 (BAND I32 (MEM I32 (HOLE 1)) (INTCONST I32 (HOLE 2)))))) (CLOBBER (REG I1 AF)) (SET (REG I1 ZF) (TSTEQ I1 (BAND I32 (MEM I32 (HOLE 1)) (INTCONST I32 (HOLE 2))) (INTCONST I32 0))) (SET (REG I1 SF) (TSTLTS I1 (BAND I32 (MEM I32 (HOLE 1)) (INTCONST I32 (HOLE 2))) (INTCONST I32 0))) (SET (REG I1 OF) (INTCONST I1 #b0)))) (DEFINST ("AND DWORD PTR ??1s,??2a" "ANDL $??2a,??1s" "AND DWORD PTR ??1s,??2a") (PARALLEL (SET (MEM I32 (HOLE 1)) (BAND I32 (MEM I32 (HOLE 1)) (HOLE 2))) (SET (REG I1 CF) (INTCONST I1 #b0)) (SET (REG I1 PF) (PARITY I1 (CONVIT I8 (BAND I32 (MEM I32 (HOLE 1)) (HOLE 2))))) (CLOBBER (REG I1 AF)) (SET (REG I1 ZF) (TSTEQ I1 (BAND I32 (MEM I32 (HOLE 1)) (HOLE 2)) (INTCONST I32 0))) (SET (REG I1 SF) (TSTLTS I1 (BAND I32 (MEM I32 (HOLE 1)) (HOLE 2)) (INTCONST I32 0))) (SET (REG I1 OF) (INTCONST I1 #b0)))) ;AND r8,r8 (DEFINST ("AND ?1l,?2l" "AND %?2l,%?1l" "AND ?1l,?2l") (PARALLEL (SET (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (BAND I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (SUBREG I8 (REG I32 (HOLE 2 R32)) 0))) (SET (REG I1 CF) (INTCONST I1 #b0)) (SET (REG I1 PF) (PARITY I1 (BAND I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (SUBREG I8 (REG I32 (HOLE 2 R32)) 0)))) (CLOBBER (REG I1 AF)) (SET (REG I1 ZF) (TSTEQ I1 (BAND I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (SUBREG I8 (REG I32 (HOLE 2 R32)) 0)) (INTCONST I8 0))) (SET (REG I1 SF) (TSTLTS I1 (BAND I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (SUBREG I8 (REG I32 (HOLE 2 R32)) 0)) (INTCONST I8 0))) (SET (REG I1 OF) (INTCONST I1 #b0)))) (DEFINST ("AND ?1l,?2h" "AND %?2h,%?1l" "AND ?1l,?2h") (PARALLEL (SET (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (BAND I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (SUBREG I8 (REG I32 (HOLE 2 R32)) 1))) (SET (REG I1 CF) (INTCONST I1 #b0)) (SET (REG I1 PF) (PARITY I1 (BAND I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (SUBREG I8 (REG I32 (HOLE 2 R32)) 1)))) (CLOBBER (REG I1 AF)) (SET (REG I1 ZF) (TSTEQ I1 (BAND I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (SUBREG I8 (REG I32 (HOLE 2 R32)) 1)) (INTCONST I8 0))) (SET (REG I1 SF) (TSTLTS I1 (BAND I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (SUBREG I8 (REG I32 (HOLE 2 R32)) 1)) (INTCONST I8 0))) (SET (REG I1 OF) (INTCONST I1 #b0)))) (DEFINST ("AND ?1h,?2l" "AND %?2l,%?1h" "AND ?1h,?2l") (PARALLEL (SET (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (BAND I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (SUBREG I8 (REG I32 (HOLE 2 R32)) 0))) (SET (REG I1 CF) (INTCONST I1 #b0)) (SET (REG I1 PF) (PARITY I1 (BAND I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (SUBREG I8 (REG I32 (HOLE 2 R32)) 0)))) (CLOBBER (REG I1 AF)) (SET (REG I1 ZF) (TSTEQ I1 (BAND I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (SUBREG I8 (REG I32 (HOLE 2 R32)) 0)) (INTCONST I8 0))) (SET (REG I1 SF) (TSTLTS I1 (BAND I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (SUBREG I8 (REG I32 (HOLE 2 R32)) 0)) (INTCONST I8 0))) (SET (REG I1 OF) (INTCONST I1 #b0)))) (DEFINST ("AND ?1h,?2h" "AND %?2h,%?1h" "AND ?1h,?2h") (PARALLEL (SET (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (BAND I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (SUBREG I8 (REG I32 (HOLE 2 R32)) 1))) (SET (REG I1 CF) (INTCONST I1 #b0)) (SET (REG I1 PF) (PARITY I1 (BAND I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (SUBREG I8 (REG I32 (HOLE 2 R32)) 1)))) (CLOBBER (REG I1 AF)) (SET (REG I1 ZF) (TSTEQ I1 (BAND I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (SUBREG I8 (REG I32 (HOLE 2 R32)) 1)) (INTCONST I8 0))) (SET (REG I1 SF) (TSTLTS I1 (BAND I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (SUBREG I8 (REG I32 (HOLE 2 R32)) 1)) (INTCONST I8 0))) (SET (REG I1 OF) (INTCONST I1 #b0)))) ;AND m8,r8 (DEFINST ("AND BYTE PTR ??1s,?2l" "AND %?2l,??1s" "AND BYTE PTR ??1s,?2l") (PARALLEL (SET (MEM I8 (HOLE 1)) (BAND I8 (MEM I8 (HOLE 1)) (SUBREG I8 (REG I32 (HOLE 2 R32)) 0))) (SET (REG I1 CF) (INTCONST I1 #b0)) (SET (REG I1 PF) (PARITY I1 (BAND I8 (MEM I8 (HOLE 1)) (SUBREG I8 (REG I32 (HOLE 2 R32)) 0)))) (CLOBBER (REG I1 AF)) (SET (REG I1 ZF) (TSTEQ I1 (BAND I8 (MEM I8 (HOLE 1)) (SUBREG I8 (REG I32 (HOLE 2 R32)) 0)) (INTCONST I8 0))) (SET (REG I1 SF) (TSTLTS I1 (BAND I8 (MEM I8 (HOLE 1)) (SUBREG I8 (REG I32 (HOLE 2 R32)) 0)) (INTCONST I8 0))) (SET (REG I1 OF) (INTCONST I1 #b0)))) (DEFINST ("AND BYTE PTR ??1s,?2h" "AND %?2h,??1s" "AND BYTE PTR ??1s,?2h") (PARALLEL (SET (MEM I8 (HOLE 1)) (BAND I8 (MEM I8 (HOLE 1)) (SUBREG I8 (REG I32 (HOLE 2 R32)) 1))) (SET (REG I1 CF) (INTCONST I1 #b0)) (SET (REG I1 PF) (PARITY I1 (BAND I8 (MEM I8 (HOLE 1)) (SUBREG I8 (REG I32 (HOLE 2 R32)) 1)))) (CLOBBER (REG I1 AF)) (SET (REG I1 ZF) (TSTEQ I1 (BAND I8 (MEM I8 (HOLE 1)) (SUBREG I8 (REG I32 (HOLE 2 R32)) 1)) (INTCONST I8 0))) (SET (REG I1 SF) (TSTLTS I1 (BAND I8 (MEM I8 (HOLE 1)) (SUBREG I8 (REG I32 (HOLE 2 R32)) 1)) (INTCONST I8 0))) (SET (REG I1 OF) (INTCONST I1 #b0)))) ;AND r8,m8 (DEFINST ("AND ?1l,BYTE PTR ??2s" "AND ??2s,%?1l" "AND ?1l,BYTE PTR ??2s") (PARALLEL (SET (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (BAND I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (MEM I8 (HOLE 2)))) (SET (REG I1 CF) (INTCONST I1 #b0)) (SET (REG I1 PF) (PARITY I1 (BAND I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (MEM I8 (HOLE 2))))) (CLOBBER (REG I1 AF)) (SET (REG I1 ZF) (TSTEQ I1 (BAND I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (MEM I8 (HOLE 2))) (INTCONST I8 0))) (SET (REG I1 SF) (TSTLTS I1 (BAND I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (MEM I8 (HOLE 2))) (INTCONST I8 0))) (SET (REG I1 OF) (INTCONST I1 #b0)))) (DEFINST ("AND ?1h,BYTE PTR ??2s" "AND ??2s,%?1h" "AND ?1h,BYTE PTR ??2s") (PARALLEL (SET (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (BAND I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (MEM I8 (HOLE 2)))) (SET (REG I1 CF) (INTCONST I1 #b0)) (SET (REG I1 PF) (PARITY I1 (BAND I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (MEM I8 (HOLE 2))))) (CLOBBER (REG I1 AF)) (SET (REG I1 ZF) (TSTEQ I1 (BAND I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (MEM I8 (HOLE 2))) (INTCONST I8 0))) (SET (REG I1 SF) (TSTLTS I1 (BAND I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (MEM I8 (HOLE 2))) (INTCONST I8 0))) (SET (REG I1 OF) (INTCONST I1 #b0)))) ;AND r16,r16 (DEFINST ("AND ?1w,?2w" "AND %?2w,%?1w" "AND ?1w,?2w") (PARALLEL (SET (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (BAND I16 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (SUBREG I16 (REG I32 (HOLE 2 R32)) 0))) (SET (REG I1 CF) (INTCONST I1 #b0)) (SET (REG I1 PF) (PARITY I1 (CONVIT I8 (BAND I16 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (SUBREG I16 (REG I32 (HOLE 2 R32)) 0))))) (CLOBBER (REG I1 AF)) (SET (REG I1 ZF) (TSTEQ I1 (BAND I16 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (SUBREG I16 (REG I32 (HOLE 2 R32)) 0)) (INTCONST I16 0))) (SET (REG I1 SF) (TSTLTS I1 (BAND I16 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (SUBREG I16 (REG I32 (HOLE 2 R32)) 0)) (INTCONST I16 0))) (SET (REG I1 OF) (INTCONST I1 #b0)))) ;AND m16,r16 (DEFINST ("AND WORD PTR ??1s,?2w" "AND %?2w,??1s" "AND WORD PTR ??1s,?2w") (PARALLEL (SET (MEM I16 (HOLE 1)) (BAND I16 (MEM I16 (HOLE 1)) (SUBREG I16 (REG I32 (HOLE 2 R32)) 0))) (SET (REG I1 CF) (INTCONST I1 #b0)) (SET (REG I1 PF) (PARITY I1 (CONVIT I8 (BAND I16 (MEM I16 (HOLE 1)) (SUBREG I16 (REG I32 (HOLE 2 R32)) 0))))) (CLOBBER (REG I1 AF)) (SET (REG I1 ZF) (TSTEQ I1 (BAND I16 (MEM I16 (HOLE 1)) (SUBREG I16 (REG I32 (HOLE 2 R32)) 0)) (INTCONST I16 0))) (SET (REG I1 SF) (TSTLTS I1 (BAND I16 (MEM I16 (HOLE 1)) (SUBREG I16 (REG I32 (HOLE 2 R32)) 0)) (INTCONST I16 0))) (SET (REG I1 OF) (INTCONST I1 #b0)))) ;AND r16,m16 (DEFINST ("AND ?1w,WORD PTR ??2s" "AND ??2s,%?1w" "AND ?1w,WORD PTR ??2s") (PARALLEL (SET (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (BAND I16 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (MEM I16 (HOLE 2)))) (SET (REG I1 CF) (INTCONST I1 #b0)) (SET (REG I1 PF) (PARITY I1 (CONVIT I8 (BAND I16 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (MEM I16 (HOLE 2)))))) (CLOBBER (REG I1 AF)) (SET (REG I1 ZF) (TSTEQ I1 (BAND I16 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (MEM I16 (HOLE 2))) (INTCONST I16 0))) (SET (REG I1 SF) (TSTLTS I1 (BAND I16 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (MEM I16 (HOLE 2))) (INTCONST I16 0))) (SET (REG I1 OF) (INTCONST I1 #b0)))) ;AND r32,r32 (DEFINST ("AND ?1r,?2r" "AND %?2r,%?1r" "AND ?1r,?2r") (PARALLEL (SET (REG I32 (HOLE 1 R32)) (BAND I32 (REG I32 (HOLE 1 R32)) (REG I32 (HOLE 2 R32)))) (SET (REG I1 CF) (INTCONST I1 #b0)) (SET (REG I1 PF) (PARITY I1 (CONVIT I8 (BAND I32 (REG I32 (HOLE 1 R32)) (REG I32 (HOLE 2 R32)))))) (CLOBBER (REG I1 AF)) (SET (REG I1 ZF) (TSTEQ I1 (BAND I32 (REG I32 (HOLE 1 R32)) (REG I32 (HOLE 2 R32))) (INTCONST I32 0))) (SET (REG I1 SF) (TSTLTS I1 (BAND I32 (REG I32 (HOLE 1 R32)) (REG I32 (HOLE 2 R32))) (INTCONST I32 0))) (SET (REG I1 OF) (INTCONST I1 #b0)))) ;AND m32,r32 (DEFINST ("AND DWORD PTR ??1s,?2r" "AND %?2r,??1s" "AND DWORD PTR ??1s,?2r") (PARALLEL (SET (MEM I32 (HOLE 1)) (BAND I32 (MEM I32 (HOLE 1)) (REG I32 (HOLE 2 R32)))) (SET (REG I1 CF) (INTCONST I1 #b0)) (SET (REG I1 PF) (PARITY I1 (CONVIT I8 (BAND I32 (MEM I32 (HOLE 1)) (REG I32 (HOLE 2 R32)))))) (CLOBBER (REG I1 AF)) (SET (REG I1 ZF) (TSTEQ I1 (BAND I32 (MEM I32 (HOLE 1)) (REG I32 (HOLE 2 R32))) (INTCONST I32 0))) (SET (REG I1 SF) (TSTLTS I1 (BAND I32 (MEM I32 (HOLE 1)) (REG I32 (HOLE 2 R32))) (INTCONST I32 0))) (SET (REG I1 OF) (INTCONST I1 #b0)))) ;AND r32,m32 (DEFINST ("AND ?1r,DWORD PTR ??2s" "AND ??2s,%?1r" "AND ?1r,DWORD PTR ??2s") (PARALLEL (SET (REG I32 (HOLE 1 R32)) (BAND I32 (REG I32 (HOLE 1 R32)) (MEM I32 (HOLE 2)))) (SET (REG I1 CF) (INTCONST I1 #b0)) (SET (REG I1 PF) (PARITY I1 (CONVIT I8 (BAND I32 (REG I32 (HOLE 1 R32)) (MEM I32 (HOLE 2)))))) (CLOBBER (REG I1 AF)) (SET (REG I1 ZF) (TSTEQ I1 (BAND I32 (REG I32 (HOLE 1 R32)) (MEM I32 (HOLE 2))) (INTCONST I32 0))) (SET (REG I1 SF) (TSTLTS I1 (BAND I32 (REG I32 (HOLE 1 R32)) (MEM I32 (HOLE 2))) (INTCONST I32 0))) (SET (REG I1 OF) (INTCONST I1 #b0)))) ;NOT ;NOT r8 (DEFINST ("NOT ?1l" "NOT %?1l" "NOT ?1l") (SET (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (BNOT I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0)))) (DEFINST ("NOT ?1h" "NOT %?1h" "NOT ?1h") (SET (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (BNOT I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1)))) ;NOT m8 (DEFINST ("NOT BYTE PTR ??1s" "NOTB ??1s" "NOT BYTE PTR ??1s") (SET (MEM I8 (HOLE 1)) (BNOT I8 (MEM I8 (HOLE 1))))) ;NOT r16 (DEFINST ("NOT ?1w" "NOT %?1w" "NOT ?1w") (SET (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (BNOT I16 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0)))) ;NOT m16 (DEFINST ("NOT WORD PTR ??1s" "NOTW ??1s" "NOT WORD PTR ??1s") (SET (MEM I16 (HOLE 1)) (BNOT I16 (MEM I16 (HOLE 1))))) ;NOT r32 (DEFINST ("NOT ?1r" "NOT %?1r" "NOT ?1r") (SET (REG I32 (HOLE 1 R32)) (BNOT I32 (REG I32 (HOLE 1 R32))))) ;NOT m32 (DEFINST ("NOT DWORD PTR ??1s" "NOTL ??1s" "NOT DWORD PTR ??1s") (SET (MEM I32 (HOLE 1)) (BNOT I32 (MEM I32 (HOLE 1))))) ;OR ;OR r8,imm8 (DEFINST ("OR ?1l,?2c" "OR $?2c,%?1l" "OR ?1l,?2c") (PARALLEL (SET (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (BOR I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (INTCONST I8 (HOLE 2)))) (SET (REG I1 CF) (INTCONST I1 #b0)) (SET (REG I1 PF) (PARITY I1 (BOR I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (INTCONST I8 (HOLE 2))))) (CLOBBER (REG I1 AF)) (SET (REG I1 ZF) (TSTEQ I1 (BOR I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (INTCONST I8 (HOLE 2))) (INTCONST I8 0))) (SET (REG I1 SF) (TSTLTS I1 (BOR I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (INTCONST I8 (HOLE 2))) (INTCONST I8 0))) (SET (REG I1 OF) (INTCONST I1 #b0)))) (DEFINST ("OR ?1h,?2c" "OR $?2c,%?1h" "OR ?1h,?2c") (PARALLEL (SET (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (BOR I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (INTCONST I8 (HOLE 2)))) (SET (REG I1 CF) (INTCONST I1 #b0)) (SET (REG I1 PF) (PARITY I1 (BOR I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (INTCONST I8 (HOLE 2))))) (CLOBBER (REG I1 AF)) (SET (REG I1 ZF) (TSTEQ I1 (BOR I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (INTCONST I8 (HOLE 2))) (INTCONST I8 0))) (SET (REG I1 SF) (TSTLTS I1 (BOR I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (INTCONST I8 (HOLE 2))) (INTCONST I8 0))) (SET (REG I1 OF) (INTCONST I1 #b0)))) ;OR m8,imm8 (DEFINST ("OR BYTE PTR ??1s,?2c" "ORB $?2c,??1s" "OR BYTE PTR ??1s,?2c") (PARALLEL (SET (MEM I8 (HOLE 1)) (BOR I8 (MEM I8 (HOLE 1)) (INTCONST I8 (HOLE 2)))) (SET (REG I1 CF) (INTCONST I1 #b0)) (SET (REG I1 PF) (PARITY I1 (BOR I8 (MEM I8 (HOLE 1)) (INTCONST I8 (HOLE 2))))) (CLOBBER (REG I1 AF)) (SET (REG I1 ZF) (TSTEQ I1 (BOR I8 (MEM I8 (HOLE 1)) (INTCONST I8 (HOLE 2))) (INTCONST I8 0))) (SET (REG I1 SF) (TSTLTS I1 (BOR I8 (MEM I8 (HOLE 1)) (INTCONST I8 (HOLE 2))) (INTCONST I8 0))) (SET (REG I1 OF) (INTCONST I1 #b0)))) ;OR r16,imm16 (DEFINST ("OR ?1w,?2c" "OR $?2c,%?1w" "OR ?1w,?2c") (PARALLEL (SET (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (BOR I16 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (INTCONST I16 (HOLE 2)))) (SET (REG I1 CF) (INTCONST I1 #b0)) (SET (REG I1 PF) (PARITY I1 (CONVIT I8 (BOR I16 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (INTCONST I16 (HOLE 2)))))) (CLOBBER (REG I1 AF)) (SET (REG I1 ZF) (TSTEQ I1 (BOR I16 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (INTCONST I16 (HOLE 2))) (INTCONST I16 0))) (SET (REG I1 SF) (TSTLTS I1 (BOR I16 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (INTCONST I16 (HOLE 2))) (INTCONST I16 0))) (SET (REG I1 OF) (INTCONST I1 #b0)))) ;OR m16,imm16 (DEFINST ("OR WORD PTR ??1s,?2c" "ORW $?2c,??1s" "OR WORD PTR ??1s,?2c") (PARALLEL (SET (MEM I16 (HOLE 1)) (BOR I16 (MEM I16 (HOLE 1)) (INTCONST I16 (HOLE 2)))) (SET (REG I1 CF) (INTCONST I1 #b0)) (SET (REG I1 PF) (PARITY I1 (CONVIT I8 (BOR I16 (MEM I16 (HOLE 1)) (INTCONST I16 (HOLE 2)))))) (CLOBBER (REG I1 AF)) (SET (REG I1 ZF) (TSTEQ I1 (BOR I16 (MEM I16 (HOLE 1)) (INTCONST I16 (HOLE 2))) (INTCONST I16 0))) (SET (REG I1 SF) (TSTLTS I1 (BOR I16 (MEM I16 (HOLE 1)) (INTCONST I16 (HOLE 2))) (INTCONST I16 0))) (SET (REG I1 OF) (INTCONST I1 #b0)))) ;OR r32,imm32 (DEFINST ("OR ?1r,?2c" "OR $?2c,%?1r" "OR ?1r,?2c") (PARALLEL (SET (REG I32 (HOLE 1 R32)) (BOR I32 (REG I32 (HOLE 1 R32)) (INTCONST I32 (HOLE 2)))) (SET (REG I1 CF) (INTCONST I1 #b0)) (SET (REG I1 PF) (PARITY I1 (CONVIT I8 (BOR I32 (REG I32 (HOLE 1 R32)) (INTCONST I32 (HOLE 2)))))) (CLOBBER (REG I1 AF)) (SET (REG I1 ZF) (TSTEQ I1 (BOR I32 (REG I32 (HOLE 1 R32)) (INTCONST I32 (HOLE 2))) (INTCONST I32 0))) (SET (REG I1 SF) (TSTLTS I1 (BOR I32 (REG I32 (HOLE 1 R32)) (INTCONST I32 (HOLE 2))) (INTCONST I32 0))) (SET (REG I1 OF) (INTCONST I1 #b0)))) (DEFINST ("OR ?1r,??2a" "OR $??2a,%?1r" "OR ?1r,??2a") (PARALLEL (SET (REG I32 (HOLE 1 R32)) (BOR I32 (REG I32 (HOLE 1 R32)) (HOLE 2))) (SET (REG I1 CF) (INTCONST I1 #b0)) (SET (REG I1 PF) (PARITY I1 (CONVIT I8 (BOR I32 (REG I32 (HOLE 1 R32)) (HOLE 2))))) (CLOBBER (REG I1 AF)) (SET (REG I1 ZF) (TSTEQ I1 (BOR I32 (REG I32 (HOLE 1 R32)) (HOLE 2)) (INTCONST I32 0))) (SET (REG I1 SF) (TSTLTS I1 (BOR I32 (REG I32 (HOLE 1 R32)) (HOLE 2)) (INTCONST I32 0))) (SET (REG I1 OF) (INTCONST I1 #b0)))) ;OR m32,imm32 (DEFINST ("OR DWORD PTR ??1s,?2c" "ORL $?2c,??1s" "OR DWORD PTR ??1s,?2c") (PARALLEL (SET (MEM I32 (HOLE 1)) (BOR I32 (MEM I32 (HOLE 1)) (INTCONST I32 (HOLE 2)))) (SET (REG I1 CF) (INTCONST I1 #b0)) (SET (REG I1 PF) (PARITY I1 (CONVIT I8 (BOR I32 (MEM I32 (HOLE 1)) (INTCONST I32 (HOLE 2)))))) (CLOBBER (REG I1 AF)) (SET (REG I1 ZF) (TSTEQ I1 (BOR I32 (MEM I32 (HOLE 1)) (INTCONST I32 (HOLE 2))) (INTCONST I32 0))) (SET (REG I1 SF) (TSTLTS I1 (BOR I32 (MEM I32 (HOLE 1)) (INTCONST I32 (HOLE 2))) (INTCONST I32 0))) (SET (REG I1 OF) (INTCONST I1 #b0)))) (DEFINST ("OR DWORD PTR ??1s,??2a" "ORL $??2a,??1s" "OR DWORD PTR ??1s,??2a") (PARALLEL (SET (MEM I32 (HOLE 1)) (BOR I32 (MEM I32 (HOLE 1)) (HOLE 2))) (SET (REG I1 CF) (INTCONST I1 #b0)) (SET (REG I1 PF) (PARITY I1 (CONVIT I8 (BOR I32 (MEM I32 (HOLE 1)) (HOLE 2))))) (CLOBBER (REG I1 AF)) (SET (REG I1 ZF) (TSTEQ I1 (BOR I32 (MEM I32 (HOLE 1)) (HOLE 2)) (INTCONST I32 0))) (SET (REG I1 SF) (TSTLTS I1 (BOR I32 (MEM I32 (HOLE 1)) (HOLE 2)) (INTCONST I32 0))) (SET (REG I1 OF) (INTCONST I1 #b0)))) ;OR r8,r8 (DEFINST ("OR ?1l,?2l" "OR %?2l,%?1l" "OR ?1l,?2l") (PARALLEL (SET (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (BOR I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (SUBREG I8 (REG I32 (HOLE 2 R32)) 0))) (SET (REG I1 CF) (INTCONST I1 #b0)) (SET (REG I1 PF) (PARITY I1 (BOR I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (SUBREG I8 (REG I32 (HOLE 2 R32)) 0)))) (CLOBBER (REG I1 AF)) (SET (REG I1 ZF) (TSTEQ I1 (BOR I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (SUBREG I8 (REG I32 (HOLE 2 R32)) 0)) (INTCONST I8 0))) (SET (REG I1 SF) (TSTLTS I1 (BOR I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (SUBREG I8 (REG I32 (HOLE 2 R32)) 0)) (INTCONST I8 0))) (SET (REG I1 OF) (INTCONST I1 #b0)))) (DEFINST ("OR ?1l,?2h" "OR %?2h,%?1l" "OR ?1l,?2h") (PARALLEL (SET (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (BOR I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (SUBREG I8 (REG I32 (HOLE 2 R32)) 1))) (SET (REG I1 CF) (INTCONST I1 #b0)) (SET (REG I1 PF) (PARITY I1 (BOR I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (SUBREG I8 (REG I32 (HOLE 2 R32)) 1)))) (CLOBBER (REG I1 AF)) (SET (REG I1 ZF) (TSTEQ I1 (BOR I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (SUBREG I8 (REG I32 (HOLE 2 R32)) 1)) (INTCONST I8 0))) (SET (REG I1 SF) (TSTLTS I1 (BOR I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (SUBREG I8 (REG I32 (HOLE 2 R32)) 1)) (INTCONST I8 0))) (SET (REG I1 OF) (INTCONST I1 #b0)))) (DEFINST ("OR ?1h,?2l" "OR %?2l,%?1h" "OR ?1h,?2l") (PARALLEL (SET (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (BOR I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (SUBREG I8 (REG I32 (HOLE 2 R32)) 0))) (SET (REG I1 CF) (INTCONST I1 #b0)) (SET (REG I1 PF) (PARITY I1 (BOR I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (SUBREG I8 (REG I32 (HOLE 2 R32)) 0)))) (CLOBBER (REG I1 AF)) (SET (REG I1 ZF) (TSTEQ I1 (BOR I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (SUBREG I8 (REG I32 (HOLE 2 R32)) 0)) (INTCONST I8 0))) (SET (REG I1 SF) (TSTLTS I1 (BOR I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (SUBREG I8 (REG I32 (HOLE 2 R32)) 0)) (INTCONST I8 0))) (SET (REG I1 OF) (INTCONST I1 #b0)))) (DEFINST ("OR ?1h,?2h" "OR %?2h,%?1h" "OR ?1h,?2h") (PARALLEL (SET (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (BOR I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (SUBREG I8 (REG I32 (HOLE 2 R32)) 1))) (SET (REG I1 CF) (INTCONST I1 #b0)) (SET (REG I1 PF) (PARITY I1 (BOR I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (SUBREG I8 (REG I32 (HOLE 2 R32)) 1)))) (CLOBBER (REG I1 AF)) (SET (REG I1 ZF) (TSTEQ I1 (BOR I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (SUBREG I8 (REG I32 (HOLE 2 R32)) 1)) (INTCONST I8 0))) (SET (REG I1 SF) (TSTLTS I1 (BOR I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (SUBREG I8 (REG I32 (HOLE 2 R32)) 1)) (INTCONST I8 0))) (SET (REG I1 OF) (INTCONST I1 #b0)))) ;OR m8,r8 (DEFINST ("OR BYTE PTR ??1s,?2l" "OR %?2l,??1s" "OR BYTE PTR ??1s,?2l") (PARALLEL (SET (MEM I8 (HOLE 1)) (BOR I8 (MEM I8 (HOLE 1)) (SUBREG I8 (REG I32 (HOLE 2 R32)) 0))) (SET (REG I1 CF) (INTCONST I1 #b0)) (SET (REG I1 PF) (PARITY I1 (BOR I8 (MEM I8 (HOLE 1)) (SUBREG I8 (REG I32 (HOLE 2 R32)) 0)))) (CLOBBER (REG I1 AF)) (SET (REG I1 ZF) (TSTEQ I1 (BOR I8 (MEM I8 (HOLE 1)) (SUBREG I8 (REG I32 (HOLE 2 R32)) 0)) (INTCONST I8 0))) (SET (REG I1 SF) (TSTLTS I1 (BOR I8 (MEM I8 (HOLE 1)) (SUBREG I8 (REG I32 (HOLE 2 R32)) 0)) (INTCONST I8 0))) (SET (REG I1 OF) (INTCONST I1 #b0)))) (DEFINST ("OR BYTE PTR ??1s,?2h" "OR %?2h,??1s" "OR BYTE PTR ??1s,?2h") (PARALLEL (SET (MEM I8 (HOLE 1)) (BOR I8 (MEM I8 (HOLE 1)) (SUBREG I8 (REG I32 (HOLE 2 R32)) 1))) (SET (REG I1 CF) (INTCONST I1 #b0)) (SET (REG I1 PF) (PARITY I1 (BOR I8 (MEM I8 (HOLE 1)) (SUBREG I8 (REG I32 (HOLE 2 R32)) 1)))) (CLOBBER (REG I1 AF)) (SET (REG I1 ZF) (TSTEQ I1 (BOR I8 (MEM I8 (HOLE 1)) (SUBREG I8 (REG I32 (HOLE 2 R32)) 1)) (INTCONST I8 0))) (SET (REG I1 SF) (TSTLTS I1 (BOR I8 (MEM I8 (HOLE 1)) (SUBREG I8 (REG I32 (HOLE 2 R32)) 1)) (INTCONST I8 0))) (SET (REG I1 OF) (INTCONST I1 #b0)))) ;OR r8,m8 (DEFINST ("OR ?1l,BYTE PTR ??2s" "OR ??2s,%?1l" "OR ?1l,BYTE PTR ??2s") (PARALLEL (SET (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (BOR I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (MEM I8 (HOLE 2)))) (SET (REG I1 CF) (INTCONST I1 #b0)) (SET (REG I1 PF) (PARITY I1 (BOR I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (MEM I8 (HOLE 2))))) (CLOBBER (REG I1 AF)) (SET (REG I1 ZF) (TSTEQ I1 (BOR I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (MEM I8 (HOLE 2))) (INTCONST I8 0))) (SET (REG I1 SF) (TSTLTS I1 (BOR I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (MEM I8 (HOLE 2))) (INTCONST I8 0))) (SET (REG I1 OF) (INTCONST I1 #b0)))) (DEFINST ("OR ?1h,BYTE PTR ??2s" "OR ??2s,%?1h" "OR ?1h,BYTE PTR ??2s") (PARALLEL (SET (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (BOR I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (MEM I8 (HOLE 2)))) (SET (REG I1 CF) (INTCONST I1 #b0)) (SET (REG I1 PF) (PARITY I1 (BOR I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (MEM I8 (HOLE 2))))) (CLOBBER (REG I1 AF)) (SET (REG I1 ZF) (TSTEQ I1 (BOR I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (MEM I8 (HOLE 2))) (INTCONST I8 0))) (SET (REG I1 SF) (TSTLTS I1 (BOR I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (MEM I8 (HOLE 2))) (INTCONST I8 0))) (SET (REG I1 OF) (INTCONST I1 #b0)))) ;OR r16,r16 (DEFINST ("OR ?1w,?2w" "OR %?2w,%?1w" "OR ?1w,?2w") (PARALLEL (SET (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (BOR I16 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (SUBREG I16 (REG I32 (HOLE 2 R32)) 0))) (SET (REG I1 CF) (INTCONST I1 #b0)) (SET (REG I1 PF) (PARITY I1 (CONVIT I8 (BOR I16 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (SUBREG I16 (REG I32 (HOLE 2 R32)) 0))))) (CLOBBER (REG I1 AF)) (SET (REG I1 ZF) (TSTEQ I1 (BOR I16 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (SUBREG I16 (REG I32 (HOLE 2 R32)) 0)) (INTCONST I16 0))) (SET (REG I1 SF) (TSTLTS I1 (BOR I16 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (SUBREG I16 (REG I32 (HOLE 2 R32)) 0)) (INTCONST I16 0))) (SET (REG I1 OF) (INTCONST I1 #b0)))) ;OR m16,r16 (DEFINST ("OR WORD PTR ??1s,?2w" "OR %?2w,??1s" "OR WORD PTR ??1s,?2w") (PARALLEL (SET (MEM I16 (HOLE 1)) (BOR I16 (MEM I16 (HOLE 1)) (SUBREG I16 (REG I32 (HOLE 2 R32)) 0))) (SET (REG I1 CF) (INTCONST I1 #b0)) (SET (REG I1 PF) (PARITY I1 (CONVIT I8 (BOR I16 (MEM I16 (HOLE 1)) (SUBREG I16 (REG I32 (HOLE 2 R32)) 0))))) (CLOBBER (REG I1 AF)) (SET (REG I1 ZF) (TSTEQ I1 (BOR I16 (MEM I16 (HOLE 1)) (SUBREG I16 (REG I32 (HOLE 2 R32)) 0)) (INTCONST I16 0))) (SET (REG I1 SF) (TSTLTS I1 (BOR I16 (MEM I16 (HOLE 1)) (SUBREG I16 (REG I32 (HOLE 2 R32)) 0)) (INTCONST I16 0))) (SET (REG I1 OF) (INTCONST I1 #b0)))) ;OR r16,m16 (DEFINST ("OR ?1w,WORD PTR ??2s" "OR ??2s,%?1w" "OR ?1w,WORD PTR ??2s") (PARALLEL (SET (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (BOR I16 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (MEM I16 (HOLE 2)))) (SET (REG I1 CF) (INTCONST I1 #b0)) (SET (REG I1 PF) (PARITY I1 (CONVIT I8 (BOR I16 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (MEM I16 (HOLE 2)))))) (CLOBBER (REG I1 AF)) (SET (REG I1 ZF) (TSTEQ I1 (BOR I16 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (MEM I16 (HOLE 2))) (INTCONST I16 0))) (SET (REG I1 SF) (TSTLTS I1 (BOR I16 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (MEM I16 (HOLE 2))) (INTCONST I16 0))) (SET (REG I1 OF) (INTCONST I1 #b0)))) ;OR r32,r32 (DEFINST ("OR ?1r,?2r" "OR %?2r,%?1r" "OR ?1r,?2r") (PARALLEL (SET (REG I32 (HOLE 1 R32)) (BOR I32 (REG I32 (HOLE 1 R32)) (REG I32 (HOLE 2 R32)))) (SET (REG I1 CF) (INTCONST I1 #b0)) (SET (REG I1 PF) (PARITY I1 (CONVIT I8 (BOR I32 (REG I32 (HOLE 1 R32)) (REG I32 (HOLE 2 R32)))))) (CLOBBER (REG I1 AF)) (SET (REG I1 ZF) (TSTEQ I1 (BOR I32 (REG I32 (HOLE 1 R32)) (REG I32 (HOLE 2 R32))) (INTCONST I32 0))) (SET (REG I1 SF) (TSTLTS I1 (BOR I32 (REG I32 (HOLE 1 R32)) (REG I32 (HOLE 2 R32))) (INTCONST I32 0))) (SET (REG I1 OF) (INTCONST I1 #b0)))) ;OR m32,r32 (DEFINST ("OR DWORD PTR ??1s,?2r" "OR %?2r,??1s" "OR DWORD PTR ??1s,?2r") (PARALLEL (SET (MEM I32 (HOLE 1)) (BOR I32 (MEM I32 (HOLE 1)) (REG I32 (HOLE 2 R32)))) (SET (REG I1 CF) (INTCONST I1 #b0)) (SET (REG I1 PF) (PARITY I1 (CONVIT I8 (BOR I32 (MEM I32 (HOLE 1)) (REG I32 (HOLE 2 R32)))))) (CLOBBER (REG I1 AF)) (SET (REG I1 ZF) (TSTEQ I1 (BOR I32 (MEM I32 (HOLE 1)) (REG I32 (HOLE 2 R32))) (INTCONST I32 0))) (SET (REG I1 SF) (TSTLTS I1 (BOR I32 (MEM I32 (HOLE 1)) (REG I32 (HOLE 2 R32))) (INTCONST I32 0))) (SET (REG I1 OF) (INTCONST I1 #b0)))) ;OR r32,m32 (DEFINST ("OR ?1r,DWORD PTR ??2s" "OR ??2s,%?1r" "OR ?1r,DWORD PTR ??2s") (PARALLEL (SET (REG I32 (HOLE 1 R32)) (BOR I32 (REG I32 (HOLE 1 R32)) (MEM I32 (HOLE 2)))) (SET (REG I1 CF) (INTCONST I1 #b0)) (SET (REG I1 PF) (PARITY I1 (CONVIT I8 (BOR I32 (REG I32 (HOLE 1 R32)) (MEM I32 (HOLE 2)))))) (CLOBBER (REG I1 AF)) (SET (REG I1 ZF) (TSTEQ I1 (BOR I32 (REG I32 (HOLE 1 R32)) (MEM I32 (HOLE 2))) (INTCONST I32 0))) (SET (REG I1 SF) (TSTLTS I1 (BOR I32 (REG I32 (HOLE 1 R32)) (MEM I32 (HOLE 2))) (INTCONST I32 0))) (SET (REG I1 OF) (INTCONST I1 #b0)))) ;XOR(ezclusive or) ;XOR r8,imm8 (DEFINST ("XOR ?1l,?2c" "XOR $?2c,%?1l" "XOR ?1l,?2c") (PARALLEL (SET (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (BXOR I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (INTCONST I8 (HOLE 2)))) (SET (REG I1 CF) (INTCONST I1 0)) (SET (REG I1 PF) (PARITY I1 (BXOR I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (INTCONST I8 (HOLE 2))))) (CLOBBER (REG I1 AF)) (SET (REG I1 ZF) (TSTEQ I1 (BXOR I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (INTCONST I8 (HOLE 2))) (INTCONST I8 0))) (SET (REG I1 SF) (TSTLTS I1 (BXOR I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (INTCONST I8 (HOLE 2))) (INTCONST I8 0))) (SET (REG I1 OF) (INTCONST I1 0)))) (DEFINST ("XOR ?1h,?2c" "XOR $?2c,%?1h" "XOR ?1h,?2c") (PARALLEL (SET (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (BXOR I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (INTCONST I8 (HOLE 2)))) (SET (REG I1 CF) (INTCONST I1 0)) (SET (REG I1 PF) (PARITY I1 (BXOR I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (INTCONST I8 (HOLE 2))))) (CLOBBER (REG I1 AF)) (SET (REG I1 ZF) (TSTEQ I1 (BXOR I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (INTCONST I8 (HOLE 2))) (INTCONST I8 0))) (SET (REG I1 SF) (TSTLTS I1 (BXOR I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (INTCONST I8 (HOLE 2))) (INTCONST I8 0))) (SET (REG I1 OF) (INTCONST I1 0)))) ;XOR m8,imm8 (DEFINST ("XOR BYTE PTR ??1s,?2c" "XORB $?2c,??1s" "XOR BYTE PTR ??1s,?2c") (PARALLEL (SET (MEM I8 (HOLE 1)) (BXOR I8 (MEM I8 (HOLE 1)) (INTCONST I8 (HOLE 2)))) (SET (REG I1 CF) (INTCONST I1 0)) (SET (REG I1 PF) (PARITY I1 (BXOR I8 (MEM I8 (HOLE 1)) (INTCONST I8 (HOLE 2))))) (CLOBBER (REG I1 AF)) (SET (REG I1 ZF) (TSTEQ I1 (BXOR I8 (MEM I8 (HOLE 1)) (INTCONST I8 (HOLE 2))) (INTCONST I8 0))) (SET (REG I1 SF) (TSTLTS I1 (BXOR I8 (MEM I8 (HOLE 1)) (INTCONST I8 (HOLE 2))) (INTCONST I8 0))) (SET (REG I1 OF) (INTCONST I1 0)))) ;XOR r16,imm16 (DEFINST ("XOR ?1w,?2c" "XOR $?2c,%?1w" "XOR ?1w,?2c") (PARALLEL (SET (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (BXOR I16 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (INTCONST I16 (HOLE 2)))) (SET (REG I1 CF) (INTCONST I1 0)) (SET (REG I1 PF) (PARITY I1 (CONVIT I8 (BXOR I16 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (INTCONST I16 (HOLE 2)))))) (CLOBBER (REG I1 AF)) (SET (REG I1 ZF) (TSTEQ I1 (BXOR I16 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (INTCONST I16 (HOLE 2))) (INTCONST I16 0))) (SET (REG I1 SF) (TSTLTS I1 (BXOR I16 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (INTCONST I16 (HOLE 2))) (INTCONST I16 0))) (SET (REG I1 OF) (INTCONST I1 0)))) ;XOR m16,imm16 (DEFINST ("XOR WORD PTR ??1s,?2c" "XORW $?2c,??1s" "XOR WORD PTR ??1s,?2c") (PARALLEL (SET (MEM I16 (HOLE 1)) (BXOR I16 (MEM I16 (HOLE 1)) (INTCONST I16 (HOLE 2)))) (SET (REG I1 CF) (INTCONST I1 0)) (SET (REG I1 PF) (PARITY I1 (CONVIT I8 (BXOR I16 (MEM I16 (HOLE 1)) (INTCONST I16 (HOLE 2)))))) (CLOBBER (REG I1 AF)) (SET (REG I1 ZF) (TSTEQ I1 (BXOR I16 (MEM I16 (HOLE 1)) (INTCONST I16 (HOLE 2))) (INTCONST I16 0))) (SET (REG I1 SF) (TSTLTS I1 (BXOR I16 (MEM I16 (HOLE 1)) (INTCONST I16 (HOLE 2))) (INTCONST I16 0))) (SET (REG I1 OF) (INTCONST I1 0)))) ;XOR r32,imm32 (DEFINST ("XOR ?1r,?2c" "XOR $?2c,%?1r" "XOR ?1r,?2c") (PARALLEL (SET (REG I32 (HOLE 1 R32)) (BXOR I32 (REG I32 (HOLE 1 R32)) (INTCONST I32 (HOLE 2)))) (SET (REG I1 CF) (INTCONST I1 0)) (SET (REG I1 PF) (PARITY I1 (CONVIT I8 (BXOR I32 (REG I32 (HOLE 1 R32)) (INTCONST I32 (HOLE 2)))))) (CLOBBER (REG I1 AF)) (SET (REG I1 ZF) (TSTEQ I1 (BXOR I32 (REG I32 (HOLE 1 R32)) (INTCONST I32 (HOLE 2))) (INTCONST I32 0))) (SET (REG I1 SF) (TSTLTS I1 (BXOR I32 (REG I32 (HOLE 1 R32)) (INTCONST I32 (HOLE 2))) (INTCONST I32 0))) (SET (REG I1 OF) (INTCONST I1 0)))) (DEFINST ("XOR ?1r,??2a" "XOR $??2a,%?1r" "XOR ?1r,??2a") (PARALLEL (SET (REG I32 (HOLE 1 R32)) (BXOR I32 (REG I32 (HOLE 1 R32)) (HOLE 2))) (SET (REG I1 CF) (INTCONST I1 0)) (SET (REG I1 PF) (PARITY I1 (CONVIT I8 (BXOR I32 (REG I32 (HOLE 1 R32)) (HOLE 2))))) (CLOBBER (REG I1 AF)) (SET (REG I1 ZF) (TSTEQ I1 (BXOR I32 (REG I32 (HOLE 1 R32)) (HOLE 2)) (INTCONST I32 0))) (SET (REG I1 SF) (TSTLTS I1 (BXOR I32 (REG I32 (HOLE 1 R32)) (HOLE 2)) (INTCONST I32 0))) (SET (REG I1 OF) (INTCONST I1 0)))) ;XOR m32,imm32 (DEFINST ("XOR DWORD PTR ??1s,?2c" "XORL $?2c,??1s" "XOR DWORD PTR ??1s,?2c") (PARALLEL (SET (MEM I32 (HOLE 1)) (BXOR I32 (MEM I32 (HOLE 1)) (INTCONST I32 (HOLE 2)))) (SET (REG I1 CF) (INTCONST I1 0)) (SET (REG I1 PF) (PARITY I1 (CONVIT I8 (BXOR I32 (MEM I32 (HOLE 1)) (INTCONST I32 (HOLE 2)))))) (CLOBBER (REG I1 AF)) (SET (REG I1 ZF) (TSTEQ I1 (BXOR I32 (MEM I32 (HOLE 1)) (INTCONST I32 (HOLE 2))) (INTCONST I32 0))) (SET (REG I1 SF) (TSTLTS I1 (BXOR I32 (MEM I32 (HOLE 1)) (INTCONST I32 (HOLE 2))) (INTCONST I32 0))) (SET (REG I1 OF) (INTCONST I1 0)))) (DEFINST ("XOR DWORD PTR ??1s,??2a" "XORL $??2a,??1s" "XOR DWORD PTR ??1s,??2a") (PARALLEL (SET (MEM I32 (HOLE 1)) (BXOR I32 (MEM I32 (HOLE 1)) (HOLE 2))) (SET (REG I1 CF) (INTCONST I1 0)) (SET (REG I1 PF) (PARITY I1 (CONVIT I8 (BXOR I32 (MEM I32 (HOLE 1)) (HOLE 2))))) (CLOBBER (REG I1 AF)) (SET (REG I1 ZF) (TSTEQ I1 (BXOR I32 (MEM I32 (HOLE 1)) (HOLE 2)) (INTCONST I32 0))) (SET (REG I1 SF) (TSTLTS I1 (BXOR I32 (MEM I32 (HOLE 1)) (HOLE 2)) (INTCONST I32 0))) (SET (REG I1 OF) (INTCONST I1 0)))) ;XOR r8,r8 (DEFINST ("XOR ?1l,?2l" "XOR %?2l,%?1l" "XOR ?1l,?2l") (PARALLEL (SET (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (BXOR I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (SUBREG I8 (REG I32 (HOLE 2 R32)) 0))) (SET (REG I1 CF) (INTCONST I1 0)) (SET (REG I1 PF) (PARITY I1 (BXOR I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (SUBREG I8 (REG I32 (HOLE 2 R32)) 0)))) (CLOBBER (REG I1 AF)) (SET (REG I1 ZF) (TSTEQ I1 (BXOR I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (SUBREG I8 (REG I32 (HOLE 2 R32)) 0)) (INTCONST I8 0))) (SET (REG I1 SF) (TSTLTS I1 (BXOR I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (SUBREG I8 (REG I32 (HOLE 2 R32)) 0)) (INTCONST I8 0))) (SET (REG I1 OF) (INTCONST I1 0)))) (DEFINST ("XOR ?1l,?2h" "XOR %?2h,%?1l" "XOR ?1l,?2h") (PARALLEL (SET (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (BXOR I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (SUBREG I8 (REG I32 (HOLE 2 R32)) 1))) (SET (REG I1 CF) (INTCONST I1 0)) (SET (REG I1 PF) (PARITY I1 (BXOR I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (SUBREG I8 (REG I32 (HOLE 2 R32)) 1)))) (CLOBBER (REG I1 AF)) (SET (REG I1 ZF) (TSTEQ I1 (BXOR I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (SUBREG I8 (REG I32 (HOLE 2 R32)) 1)) (INTCONST I8 0))) (SET (REG I1 SF) (TSTLTS I1 (BXOR I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (SUBREG I8 (REG I32 (HOLE 2 R32)) 1)) (INTCONST I8 0))) (SET (REG I1 OF) (INTCONST I1 0)))) (DEFINST ("XOR ?1h,?2l" "XOR %?2l,%?1h" "XOR ?1h,?2l") (PARALLEL (SET (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (BXOR I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (SUBREG I8 (REG I32 (HOLE 2 R32)) 0))) (SET (REG I1 CF) (INTCONST I1 0)) (SET (REG I1 PF) (PARITY I1 (BXOR I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (SUBREG I8 (REG I32 (HOLE 2 R32)) 0)))) (CLOBBER (REG I1 AF)) (SET (REG I1 ZF) (TSTEQ I1 (BXOR I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (SUBREG I8 (REG I32 (HOLE 2 R32)) 0)) (INTCONST I8 0))) (SET (REG I1 SF) (TSTLTS I1 (BXOR I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (SUBREG I8 (REG I32 (HOLE 2 R32)) 0)) (INTCONST I8 0))) (SET (REG I1 OF) (INTCONST I1 0)))) (DEFINST ("XOR ?1h,?2h" "XOR %?2h,%?1h" "XOR ?1h,?2h") (PARALLEL (SET (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (BXOR I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (SUBREG I8 (REG I32 (HOLE 2 R32)) 1))) (SET (REG I1 CF) (INTCONST I1 0)) (SET (REG I1 PF) (PARITY I1 (BXOR I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (SUBREG I8 (REG I32 (HOLE 2 R32)) 1)))) (CLOBBER (REG I1 AF)) (SET (REG I1 ZF) (TSTEQ I1 (BXOR I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (SUBREG I8 (REG I32 (HOLE 2 R32)) 1)) (INTCONST I8 0))) (SET (REG I1 SF) (TSTLTS I1 (BXOR I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (SUBREG I8 (REG I32 (HOLE 2 R32)) 1)) (INTCONST I8 0))) (SET (REG I1 OF) (INTCONST I1 0)))) ;XOR m8,r8 (DEFINST ("XOR BYTE PTR ??1s,?2l" "XOR %?2l,??1s" "XOR BYTE PTR ??1s,?2l") (PARALLEL (SET (MEM I8 (HOLE 1)) (BXOR I8 (MEM I8 (HOLE 1)) (SUBREG I8 (REG I32 (HOLE 2 R32)) 0))) (SET (REG I1 CF) (INTCONST I1 0)) (SET (REG I1 PF) (PARITY I1 (BXOR I8 (MEM I8 (HOLE 1)) (SUBREG I8 (REG I32 (HOLE 2 R32)) 0)))) (CLOBBER (REG I1 AF)) (SET (REG I1 ZF) (TSTEQ I1 (BXOR I8 (MEM I8 (HOLE 1)) (SUBREG I8 (REG I32 (HOLE 2 R32)) 0)) (INTCONST I8 0))) (SET (REG I1 SF) (TSTLTS I1 (BXOR I8 (MEM I8 (HOLE 1)) (SUBREG I8 (REG I32 (HOLE 2 R32)) 0)) (INTCONST I8 0))) (SET (REG I1 OF) (INTCONST I1 0)))) (DEFINST ("XOR BYTE PTR ??1s,?2h" "XOR %?2h,??1s" "XOR BYTE PTR ??1s,?2h") (PARALLEL (SET (MEM I8 (HOLE 1)) (BXOR I8 (MEM I8 (HOLE 1)) (SUBREG I8 (REG I32 (HOLE 2 R32)) 1))) (SET (REG I1 CF) (INTCONST I1 0)) (SET (REG I1 PF) (PARITY I1 (BXOR I8 (MEM I8 (HOLE 1)) (SUBREG I8 (REG I32 (HOLE 2 R32)) 1)))) (CLOBBER (REG I1 AF)) (SET (REG I1 ZF) (TSTEQ I1 (BXOR I8 (MEM I8 (HOLE 1)) (SUBREG I8 (REG I32 (HOLE 2 R32)) 1)) (INTCONST I8 0))) (SET (REG I1 SF) (TSTLTS I1 (BXOR I8 (MEM I8 (HOLE 1)) (SUBREG I8 (REG I32 (HOLE 2 R32)) 1)) (INTCONST I8 0))) (SET (REG I1 OF) (INTCONST I1 0)))) ;XOR r8,m8 (DEFINST ("XOR ?1l,BYTE PTR ??2s" "XOR ??2s,%?1l" "XOR ?1l,BYTE PTR ??2s") (PARALLEL (SET (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (BXOR I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (MEM I8 (HOLE 2)))) (SET (REG I1 CF) (INTCONST I1 0)) (SET (REG I1 PF) (PARITY I1 (BXOR I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (MEM I8 (HOLE 2))))) (CLOBBER (REG I1 AF)) (SET (REG I1 ZF) (TSTEQ I1 (BXOR I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (MEM I8 (HOLE 2))) (INTCONST I8 0))) (SET (REG I1 SF) (TSTLTS I1 (BXOR I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (MEM I8 (HOLE 2))) (INTCONST I8 0))) (SET (REG I1 OF) (INTCONST I1 0)))) (DEFINST ("XOR ?1h,BYTE PTR ??2s" "XOR ??2s,%?1h" "XOR ?1h,BYTE PTR ??2s") (PARALLEL (SET (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (BXOR I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (MEM I8 (HOLE 2)))) (SET (REG I1 CF) (INTCONST I1 0)) (SET (REG I1 PF) (PARITY I1 (BXOR I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (MEM I8 (HOLE 2))))) (CLOBBER (REG I1 AF)) (SET (REG I1 ZF) (TSTEQ I1 (BXOR I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (MEM I8 (HOLE 2))) (INTCONST I8 0))) (SET (REG I1 SF) (TSTLTS I1 (BXOR I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (MEM I8 (HOLE 2))) (INTCONST I8 0))) (SET (REG I1 OF) (INTCONST I1 0)))) ;XOR r16,r16 (DEFINST ("XOR ?1w,?2w" "XOR %?2w,%?1w" "XOR ?1w,?2w") (PARALLEL (SET (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (BXOR I16 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (SUBREG I16 (REG I32 (HOLE 2 R32)) 0))) (SET (REG I1 CF) (INTCONST I1 0)) (SET (REG I1 PF) (PARITY I1 (CONVIT I8 (BXOR I16 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (SUBREG I16 (REG I32 (HOLE 2 R32)) 0))))) (CLOBBER (REG I1 AF)) (SET (REG I1 ZF) (TSTEQ I1 (BXOR I16 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (SUBREG I16 (REG I32 (HOLE 2 R32)) 0)) (INTCONST I16 0))) (SET (REG I1 SF) (TSTLTS I1 (BXOR I16 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (SUBREG I16 (REG I32 (HOLE 2 R32)) 0)) (INTCONST I16 0))) (SET (REG I1 OF) (INTCONST I1 0)))) ;XOR m16,r16 (DEFINST ("XOR WORD PTR ??1s,?2w" "XOR %?2w,??1s" "XOR WORD PTR ??1s,?2w") (PARALLEL (SET (MEM I16 (HOLE 1)) (BXOR I16 (MEM I16 (HOLE 1)) (SUBREG I16 (REG I32 (HOLE 2 R32)) 0))) (SET (REG I1 CF) (INTCONST I1 0)) (SET (REG I1 PF) (PARITY I1 (CONVIT I8 (BXOR I16 (MEM I16 (HOLE 1)) (SUBREG I16 (REG I32 (HOLE 2 R32)) 0))))) (CLOBBER (REG I1 AF)) (SET (REG I1 ZF) (TSTEQ I1 (BXOR I16 (MEM I16 (HOLE 1)) (SUBREG I16 (REG I32 (HOLE 2 R32)) 0)) (INTCONST I16 0))) (SET (REG I1 SF) (TSTLTS I1 (BXOR I16 (MEM I16 (HOLE 1)) (SUBREG I16 (REG I32 (HOLE 2 R32)) 0)) (INTCONST I16 0))) (SET (REG I1 OF) (INTCONST I1 0)))) ;XOR r16,m16 (DEFINST ("XOR ?1w,WORD PTR ??2s" "XOR ??2s,%?1w" "XOR ?1w,WORD PTR ??2s") (PARALLEL (SET (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (BXOR I16 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (MEM I16 (HOLE 2)))) (SET (REG I1 CF) (INTCONST I1 0)) (SET (REG I1 PF) (PARITY I1 (CONVIT I8 (BXOR I16 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (MEM I16 (HOLE 2)))))) (CLOBBER (REG I1 AF)) (SET (REG I1 ZF) (TSTEQ I1 (BXOR I16 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (MEM I16 (HOLE 2))) (INTCONST I16 0))) (SET (REG I1 SF) (TSTLTS I1 (BXOR I16 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (MEM I16 (HOLE 2))) (INTCONST I16 0))) (SET (REG I1 OF) (INTCONST I1 0)))) ;XOR r32,r32 (DEFINST ("XOR ?1r,?2r" "XOR %?2r,%?1r" "XOR ?1r,?2r") (PARALLEL (SET (REG I32 (HOLE 1 R32)) (BXOR I32 (REG I32 (HOLE 1 R32)) (REG I32 (HOLE 2 R32)))) (SET (REG I1 CF) (INTCONST I1 0)) (SET (REG I1 PF) (PARITY I1 (CONVIT I8 (BXOR I32 (REG I32 (HOLE 1 R32)) (REG I32 (HOLE 2 R32)))))) (CLOBBER (REG I1 AF)) (SET (REG I1 ZF) (TSTEQ I1 (BXOR I32 (REG I32 (HOLE 1 R32)) (REG I32 (HOLE 2 R32))) (INTCONST I32 0))) (SET (REG I1 SF) (TSTLTS I1 (BXOR I32 (REG I32 (HOLE 1 R32)) (REG I32 (HOLE 2 R32))) (INTCONST I32 0))) (SET (REG I1 OF) (INTCONST I1 0)))) ;XOR m32,r32 (DEFINST ("XOR DWORD PTR ??1s,?2r" "XOR %?2r,??1s" "XOR DWORD PTR ??1s,?2r") (PARALLEL (SET (MEM I32 (HOLE 1)) (BXOR I32 (MEM I32 (HOLE 1)) (REG I32 (HOLE 2 R32)))) (SET (REG I1 CF) (INTCONST I1 0)) (SET (REG I1 PF) (PARITY I1 (CONVIT I8 (BXOR I32 (MEM I32 (HOLE 1)) (REG I32 (HOLE 2 R32)))))) (CLOBBER (REG I1 AF)) (SET (REG I1 ZF) (TSTEQ I1 (BXOR I32 (MEM I32 (HOLE 1)) (REG I32 (HOLE 2 R32))) (INTCONST I32 0))) (SET (REG I1 SF) (TSTLTS I1 (BXOR I32 (MEM I32 (HOLE 1)) (REG I32 (HOLE 2 R32))) (INTCONST I32 0))) (SET (REG I1 OF) (INTCONST I1 0)))) ;XOR r32,m32 (DEFINST ("XOR ?1r,DWORD PTR ??2s" "XOR ??2s,%?1r" "XOR ?1r,DWORD PTR ??2s") (PARALLEL (SET (REG I32 (HOLE 1 R32)) (BXOR I32 (REG I32 (HOLE 1 R32)) (MEM I32 (HOLE 2)))) (SET (REG I1 CF) (INTCONST I1 0)) (SET (REG I1 PF) (PARITY I1 (CONVIT I8 (BXOR I32 (REG I32 (HOLE 1 R32)) (MEM I32 (HOLE 2)))))) (CLOBBER (REG I1 AF)) (SET (REG I1 ZF) (TSTEQ I1 (BXOR I32 (REG I32 (HOLE 1 R32)) (MEM I32 (HOLE 2))) (INTCONST I32 0))) (SET (REG I1 SF) (TSTLTS I1 (BXOR I32 (REG I32 (HOLE 1 R32)) (MEM I32 (HOLE 2))) (INTCONST I32 0))) (SET (REG I1 OF) (INTCONST I1 0)))) ;RCL(rotate through carry left) ;RCL r8,imm8 (DEFINST ("RCL ?1l,?2c" "RCL $?2c,%?1l" "RCL ?1l,?2c") (PARALLEL (SET (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (BOR I8 (LSH I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (MODU I8 (BAND I8 (INTCONST I8 (HOLE 2)) (INTCONST I8 31)) (INTCONST I8 9))) (BOR I8 (RSHU I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (SUB I8 (INTCONST I8 9) (MODU I8 (BAND I8 (INTCONST I8 (HOLE 2)) (INTCONST I8 31)) (INTCONST I8 9)))) (LSH I8 (CONVZX I8 (REG I1 CF)) (SUB I8 (MODU I8 (BAND I8 (INTCONST I8 (HOLE 2)) (INTCONST I8 31)) (INTCONST I8 9)) (INTCONST I8 1)))))) (SET (REG I1 CF) (IFTHENELSE I1 (TSTNE I1 (MODU I8 (BAND I8 (INTCONST I8 (HOLE 2)) (INTCONST I8 31)) (INTCONST I8 9)) (INTCONST I8 0)) (CONVIT I1 (RSHU I8 (LSH I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (SUB I8 (MODU I8 (BAND I8 (INTCONST I8 (HOLE 2)) (INTCONST I8 31)) (INTCONST I8 9)) (INTCONST I8 1))) (INTCONST I8 7))) (REG I1 CF))) (SET (REG I1 OF) (IFTHENELSE I1 (TSTLEU I1 (INTCONST I8 (HOLE 2)) (INTCONST I8 1)) (IFTHENELSE I1 (TSTEQ I1 (INTCONST I8 (HOLE 2)) (INTCONST I8 1)) (BXOR I1 (CONVIT I1 (RSHU I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (INTCONST I8 7))) (CONVIT I1 (RSHU I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (INTCONST I8 6)))) (REG I1 OF)) ;undefined (REG I1 OF))))) (DEFINST ("RCL ?1h,?2c" "RCL $?2c,%?1h" "RCL ?1h,?2c") (PARALLEL (SET (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (BOR I8 (LSH I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (MODU I8 (BAND I8 (INTCONST I8 (HOLE 2)) (INTCONST I8 31)) (INTCONST I8 9))) (BOR I8 (RSHU I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (SUB I8 (INTCONST I8 9) (MODU I8 (BAND I8 (INTCONST I8 (HOLE 2)) (INTCONST I8 31)) (INTCONST I8 9)))) (LSH I8 (CONVZX I8 (REG I1 CF)) (SUB I8 (MODU I8 (BAND I8 (INTCONST I8 (HOLE 2)) (INTCONST I8 31)) (INTCONST I8 9)) (INTCONST I8 1)))))) (SET (REG I1 CF) (IFTHENELSE I1 (TSTNE I1 (MODU I8 (BAND I8 (INTCONST I8 (HOLE 2)) (INTCONST I8 31)) (INTCONST I8 9)) (INTCONST I8 0)) (CONVIT I1 (RSHU I8 (LSH I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (SUB I8 (MODU I8 (BAND I8 (INTCONST I8 (HOLE 2)) (INTCONST I8 31)) (INTCONST I8 9)) (INTCONST I8 1))) (INTCONST I8 7))) (REG I1 CF))) (SET (REG I1 OF) (IFTHENELSE I1 (TSTLEU I1 (INTCONST I8 (HOLE 2)) (INTCONST I8 1)) (IFTHENELSE I1 (TSTEQ I1 (INTCONST I8 (HOLE 2)) (INTCONST I8 1)) (BXOR I1 (CONVIT I1 (RSHU I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (INTCONST I8 7))) (CONVIT I1 (RSHU I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (INTCONST I8 6)))) (REG I1 OF)) ;undefined (REG I1 OF))))) ;RCL m8,imm8 (DEFINST ("RCL BYTE PTR ??1s,?2c" "RCLB $?2c,??1s" "RCL BYTE PTR ??1s,?2c") (PARALLEL (SET (MEM I8 (HOLE 1)) (BOR I8 (LSH I8 (MEM I8 (HOLE 1)) (MODU I8 (BAND I8 (INTCONST I8 (HOLE 2)) (INTCONST I8 31)) (INTCONST I8 9))) (BOR I8 (RSHU I8 (MEM I8 (HOLE 1)) (SUB I8 (INTCONST I8 9) (MODU I8 (BAND I8 (INTCONST I8 (HOLE 2)) (INTCONST I8 31)) (INTCONST I8 9)))) (LSH I8 (CONVZX I8 (REG I1 CF)) (SUB I8 (MODU I8 (BAND I8 (INTCONST I8 (HOLE 2)) (INTCONST I8 31)) (INTCONST I8 9)) (INTCONST I8 1)))))) (SET (REG I1 CF) (IFTHENELSE I1 (TSTNE I1 (MODU I8 (BAND I8 (INTCONST I8 (HOLE 2)) (INTCONST I8 31)) (INTCONST I8 9)) (INTCONST I8 0)) (CONVIT I1 (RSHU I8 (LSH I8 (MEM I8 (HOLE 1)) (SUB I8 (MODU I8 (BAND I8 (INTCONST I8 (HOLE 2)) (INTCONST I8 31)) (INTCONST I8 9)) (INTCONST I8 1))) (INTCONST I8 7))) (REG I1 CF))) (SET (REG I1 OF) (IFTHENELSE I1 (TSTLEU I1 (INTCONST I8 (HOLE 2)) (INTCONST I8 1)) (IFTHENELSE I1 (TSTEQ I1 (INTCONST I8 (HOLE 2)) (INTCONST I8 1)) (BXOR I1 (CONVIT I1 (RSHU I8 (MEM I8 (HOLE 1)) (INTCONST I8 7))) (CONVIT I1 (RSHU I8 (MEM I8 (HOLE 1)) (INTCONST I8 6)))) (REG I1 OF)) ;undefined (REG I1 OF))))) ;RCL r8,CL (DEFINST ("RCL ?1l,CL" "RCL %CL,%?1l" "RCL ?1l,CL") (PARALLEL (SET (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (BOR I8 (LSH I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (MODU I8 (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31)) (INTCONST I8 9))) (BOR I8 (RSHU I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (SUB I8 (INTCONST I8 9) (MODU I8 (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31)) (INTCONST I8 9)))) (LSH I8 (CONVZX I8 (REG I1 CF)) (SUB I8 (MODU I8 (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31)) (INTCONST I8 9)) (INTCONST I8 1)))))) (SET (REG I1 CF) (IFTHENELSE I1 (TSTNE I1 (MODU I8 (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31)) (INTCONST I8 9)) (INTCONST I8 0)) (CONVIT I1 (RSHU I8 (LSH I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (SUB I8 (MODU I8 (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31)) (INTCONST I8 9)) (INTCONST I8 1))) (INTCONST I8 7))) (REG I1 CF))) (SET (REG I1 OF) (IFTHENELSE I1 (TSTLEU I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 1)) (IFTHENELSE I1 (TSTEQ I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 1)) (BXOR I1 (CONVIT I1 (RSHU I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (INTCONST I8 7))) (CONVIT I1 (RSHU I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (INTCONST I8 6)))) (REG I1 OF)) ;undefined (REG I1 OF))))) (DEFINST ("RCL ?1h,CL" "RCL %CL,%?1h" "RCL ?1h,CL") (PARALLEL (SET (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (BOR I8 (LSH I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (MODU I8 (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31)) (INTCONST I8 9))) (BOR I8 (RSHU I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (SUB I8 (INTCONST I8 9) (MODU I8 (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31)) (INTCONST I8 9)))) (LSH I8 (CONVZX I8 (REG I1 CF)) (SUB I8 (MODU I8 (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31)) (INTCONST I8 9)) (INTCONST I8 1)))))) (SET (REG I1 CF) (IFTHENELSE I1 (TSTNE I1 (MODU I8 (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31)) (INTCONST I8 9)) (INTCONST I8 0)) (CONVIT I1 (RSHU I8 (LSH I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (SUB I8 (MODU I8 (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31)) (INTCONST I8 9)) (INTCONST I8 1))) (INTCONST I8 7))) (REG I1 CF))) (SET (REG I1 OF) (IFTHENELSE I1 (TSTLEU I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 1)) (IFTHENELSE I1 (TSTEQ I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 1)) (BXOR I1 (CONVIT I1 (RSHU I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (INTCONST I8 7))) (CONVIT I1 (RSHU I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (INTCONST I8 6)))) (REG I1 OF)) ;undefined (REG I1 OF))))) ;RCL m8,CL (DEFINST ("RCL BYTE PTR ??1s,CL" "RCL %CL,??1s" "RCL BYTE PTR ??1s,CL") (PARALLEL (SET (MEM I8 (HOLE 1)) (BOR I8 (LSH I8 (MEM I8 (HOLE 1)) (MODU I8 (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31)) (INTCONST I8 9))) (BOR I8 (RSHU I8 (MEM I8 (HOLE 1)) (SUB I8 (INTCONST I8 9) (MODU I8 (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31)) (INTCONST I8 9)))) (LSH I8 (CONVZX I8 (REG I1 CF)) (SUB I8 (MODU I8 (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31)) (INTCONST I8 9)) (INTCONST I8 1)))))) (SET (REG I1 CF) (IFTHENELSE I1 (TSTNE I1 (MODU I8 (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31)) (INTCONST I8 9)) (INTCONST I8 0)) (CONVIT I1 (RSHU I8 (LSH I8 (MEM I8 (HOLE 1)) (SUB I8 (MODU I8 (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31)) (INTCONST I8 9)) (INTCONST I8 1))) (INTCONST I8 7))) (REG I1 CF))) (SET (REG I1 OF) (IFTHENELSE I1 (TSTLEU I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 1)) (IFTHENELSE I1 (TSTEQ I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 1)) (BXOR I1 (CONVIT I1 (RSHU I8 (MEM I8 (HOLE 1)) (INTCONST I8 7))) (CONVIT I1 (RSHU I8 (MEM I8 (HOLE 1)) (INTCONST I8 6)))) (REG I1 OF)) ;undefined (REG I1 OF))))) ;RCL r16,imm8 (DEFINST ("RCL ?1w,?2c" "RCL $?2c,%?1w" "RCL ?1w,?2c") (PARALLEL (SET (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (BOR I16 (LSH I16 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (MODU I8 (BAND I8 (INTCONST I8 (HOLE 2)) (INTCONST I8 31)) (INTCONST I8 17))) (BOR I16 (RSHU I16 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (SUB I8 (INTCONST I8 17) (MODU I8 (BAND I8 (INTCONST I8 (HOLE 2)) (INTCONST I8 31)) (INTCONST I8 17)))) (LSH I16 (CONVZX I16 (REG I1 CF)) (SUB I8 (MODU I8 (BAND I8 (INTCONST I8 (HOLE 2)) (INTCONST I8 31)) (INTCONST I8 17)) (INTCONST I8 1)))))) (SET (REG I1 CF) (IFTHENELSE I1 (TSTNE I1 (MODU I8 (BAND I8 (INTCONST I8 (HOLE 2)) (INTCONST I8 31)) (INTCONST I8 17)) (INTCONST I8 0)) (CONVIT I1 (RSHU I16 (LSH I16 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (SUB I8 (MODU I8 (BAND I8 (INTCONST I8 (HOLE 2)) (INTCONST I8 31)) (INTCONST I8 17)) (INTCONST I8 1))) (INTCONST I8 15))) (REG I1 CF))) (SET (REG I1 OF) (IFTHENELSE I1 (TSTLEU I1 (INTCONST I8 (HOLE 2)) (INTCONST I8 1)) (IFTHENELSE I1 (TSTEQ I1 (INTCONST I8 (HOLE 2)) (INTCONST I8 1)) (BXOR I1 (CONVIT I1 (RSHU I16 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (INTCONST I8 15))) (CONVIT I1 (RSHU I16 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (INTCONST I8 14)))) (REG I1 OF)) ;undefined (REG I1 OF))))) ;RCL m16,imm8 (DEFINST ("RCL WORD PTR ??1s,?2c" "RCLW $?2c,??1s" "RCL WORD PTR ??1s,?2c") (PARALLEL (SET (MEM I16 (HOLE 1)) (BOR I16 (LSH I16 (MEM I16 (HOLE 1)) (MODU I8 (BAND I8 (INTCONST I8 (HOLE 2)) (INTCONST I8 31)) (INTCONST I8 17))) (BOR I16 (RSHU I16 (MEM I16 (HOLE 1)) (SUB I8 (INTCONST I8 17) (MODU I8 (BAND I8 (INTCONST I8 (HOLE 2)) (INTCONST I8 31)) (INTCONST I8 17)))) (LSH I16 (CONVZX I16 (REG I1 CF)) (SUB I8 (MODU I8 (BAND I8 (INTCONST I8 (HOLE 2)) (INTCONST I8 31)) (INTCONST I8 17)) (INTCONST I8 1)))))) (SET (REG I1 CF) (IFTHENELSE I1 (TSTNE I1 (MODU I8 (BAND I8 (INTCONST I8 (HOLE 2)) (INTCONST I8 31)) (INTCONST I8 17)) (INTCONST I8 0)) (CONVIT I1 (RSHU I16 (LSH I16 (MEM I16 (HOLE 1)) (SUB I8 (MODU I8 (BAND I8 (INTCONST I8 (HOLE 2)) (INTCONST I8 31)) (INTCONST I8 17)) (INTCONST I8 1))) (INTCONST I8 15))) (REG I1 CF))) (SET (REG I1 OF) (IFTHENELSE I1 (TSTLEU I1 (INTCONST I8 (HOLE 2)) (INTCONST I8 1)) (IFTHENELSE I1 (TSTEQ I1 (INTCONST I8 (HOLE 2)) (INTCONST I8 1)) (BXOR I1 (CONVIT I1 (RSHU I16 (MEM I16 (HOLE 1)) (INTCONST I8 15))) (CONVIT I1 (RSHU I16 (MEM I16 (HOLE 1)) (INTCONST I8 14)))) (REG I1 OF)) ;undefined (REG I1 OF))))) ;RCL r16,CL (DEFINST ("RCL ?1w,CL" "RCL %CL,%?1w" "RCL ?1w,CL") (PARALLEL (SET (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (BOR I16 (LSH I16 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (MODU I8 (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31)) (INTCONST I8 17))) (BOR I16 (RSHU I16 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (SUB I8 (INTCONST I8 17) (MODU I8 (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31)) (INTCONST I8 17)))) (LSH I16 (CONVZX I16 (REG I1 CF)) (SUB I8 (MODU I8 (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31)) (INTCONST I8 17)) (INTCONST I8 1)))))) (SET (REG I1 CF) (IFTHENELSE I1 (TSTNE I1 (MODU I8 (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31)) (INTCONST I8 17)) (INTCONST I8 0)) (CONVIT I1 (RSHU I16 (LSH I16 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (SUB I8 (MODU I8 (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31)) (INTCONST I8 17)) (INTCONST I8 1))) (INTCONST I8 15))) (REG I1 CF))) (SET (REG I1 OF) (IFTHENELSE I1 (TSTLEU I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 1)) (IFTHENELSE I1 (TSTEQ I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 1)) (BXOR I1 (CONVIT I1 (RSHU I16 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (INTCONST I8 15))) (CONVIT I1 (RSHU I16 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (INTCONST I8 14)))) (REG I1 OF)) ;undefined (REG I1 OF))))) ;RCL m16,CL (DEFINST ("RCL WORD PTR ??1s,CL" "RCL %CL,??1s" "RCL WORD PTR ??1s,CL") (PARALLEL (SET (MEM I16 (HOLE 1)) (BOR I16 (LSH I16 (MEM I16 (HOLE 1)) (MODU I8 (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31)) (INTCONST I8 17))) (BOR I16 (RSHU I16 (MEM I16 (HOLE 1)) (SUB I8 (INTCONST I8 17) (MODU I8 (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31)) (INTCONST I8 17)))) (LSH I16 (CONVZX I16 (REG I1 CF)) (SUB I8 (MODU I8 (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31)) (INTCONST I8 17)) (INTCONST I8 1)))))) (SET (REG I1 CF) (IFTHENELSE I1 (TSTNE I1 (MODU I8 (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31)) (INTCONST I8 17)) (INTCONST I8 0)) (CONVIT I1 (RSHU I16 (LSH I16 (MEM I16 (HOLE 1)) (SUB I8 (MODU I8 (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31)) (INTCONST I8 17)) (INTCONST I8 1))) (INTCONST I8 15))) (REG I1 CF))) (SET (REG I1 OF) (IFTHENELSE I1 (TSTLEU I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 1)) (IFTHENELSE I1 (TSTEQ I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 1)) (BXOR I1 (CONVIT I1 (RSHU I16 (MEM I16 (HOLE 1)) (INTCONST I8 15))) (CONVIT I1 (RSHU I16 (MEM I16 (HOLE 1)) (INTCONST I8 14)))) (REG I1 OF)) ;undefined (REG I1 OF))))) ;RCL r32,imm8 (DEFINST ("RCL ?1r,?2c" "RCL $?2c,%?1r" "RCL ?1r,?2c") (PARALLEL (SET (REG I32 (HOLE 1 R32)) (BOR I32 (LSH I32 (REG I32 (HOLE 1 R32)) (BAND I8 (INTCONST I8 (HOLE 2)) (INTCONST I8 31))) (BOR I32 (RSHU I32 (REG I32 (HOLE 1 R32)) (SUB I8 (INTCONST I8 33) (BAND I8 (INTCONST I8 (HOLE 2)) (INTCONST I8 31)))) (LSH I32 (CONVZX I32 (REG I1 CF)) (SUB I8 (BAND I8 (INTCONST I8 (HOLE 2)) (INTCONST I8 31)) (INTCONST I8 1)))))) (SET (REG I1 CF) (IFTHENELSE I1 (TSTNE I1 (BAND I8 (INTCONST I8 (HOLE 2)) (INTCONST I8 31)) (INTCONST I8 0)) (CONVIT I1 (RSHU I32 (LSH I32 (REG I32 (HOLE 1 R32)) (SUB I8 (BAND I8 (INTCONST I8 (HOLE 2)) (INTCONST I8 31)) (INTCONST I8 1))) (INTCONST I8 31))) (REG I1 CF))) (SET (REG I1 OF) (IFTHENELSE I1 (TSTLEU I1 (INTCONST I8 (HOLE 2)) (INTCONST I8 1)) (IFTHENELSE I1 (TSTEQ I1 (INTCONST I8 (HOLE 2)) (INTCONST I8 1)) (BXOR I1 (CONVIT I1 (RSHU I32 (REG I32 (HOLE 1 R32)) (INTCONST I8 31))) (CONVIT I1 (RSHU I32 (REG I32 (HOLE 1 R32)) (INTCONST I8 30)))) (REG I1 OF)) ;undefined (REG I1 OF))))) ;RCL m32,imm8 (DEFINST ("RCL DWORD PTR ??1s,?2c" "RCLL $?2c,??1s" "RCL DWORD PTR ??1s,?2c") (PARALLEL (SET (MEM I32 (HOLE 1)) (BOR I32 (LSH I32 (MEM I32 (HOLE 1)) (BAND I8 (INTCONST I8 (HOLE 2)) (INTCONST I8 31))) (BOR I32 (RSHU I32 (MEM I32 (HOLE 1)) (SUB I8 (INTCONST I8 33) (BAND I8 (INTCONST I8 (HOLE 2)) (INTCONST I8 31)))) (LSH I32 (CONVZX I32 (REG I1 CF)) (SUB I8 (BAND I8 (INTCONST I8 (HOLE 2)) (INTCONST I8 31)) (INTCONST I8 1)))))) (SET (REG I1 CF) (IFTHENELSE I1 (TSTNE I1 (BAND I8 (INTCONST I8 (HOLE 2)) (INTCONST I8 31)) (INTCONST I8 0)) (CONVIT I1 (RSHU I32 (LSH I32 (MEM I32 (HOLE 1)) (SUB I8 (BAND I8 (INTCONST I8 (HOLE 2)) (INTCONST I8 31)) (INTCONST I8 1))) (INTCONST I8 31))) (REG I1 CF))) (SET (REG I1 OF) (IFTHENELSE I1 (TSTLEU I1 (INTCONST I8 (HOLE 2)) (INTCONST I8 1)) (IFTHENELSE I1 (TSTEQ I1 (INTCONST I8 (HOLE 2)) (INTCONST I8 1)) (BXOR I1 (CONVIT I1 (RSHU I32 (MEM I32 (HOLE 1)) (INTCONST I8 31))) (CONVIT I1 (RSHU I32 (MEM I32 (HOLE 1)) (INTCONST I8 30)))) (REG I1 OF)) ;undefined (REG I1 OF))))) ;RCL r32,CL (DEFINST ("RCL ?1r,CL" "RCL %CL,%?1r" "RCL ?1r,CL") (PARALLEL (SET (REG I32 (HOLE 1 R32)) (BOR I32 (LSH I32 (REG I32 (HOLE 1 R32)) (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31))) (BOR I32 (RSHU I32 (REG I32 (HOLE 1 R32)) (SUB I8 (INTCONST I8 33) (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31)))) (LSH I32 (CONVZX I32 (REG I1 CF)) (SUB I8 (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31)) (INTCONST I8 1)))))) (SET (REG I1 CF) (IFTHENELSE I1 (TSTNE I1 (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31)) (INTCONST I8 0)) (CONVIT I1 (RSHU I32 (LSH I32 (REG I32 (HOLE 1 R32)) (SUB I8 (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31)) (INTCONST I8 1))) (INTCONST I8 31))) (REG I1 CF))) (SET (REG I1 OF) (IFTHENELSE I1 (TSTLEU I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 1)) (IFTHENELSE I1 (TSTEQ I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 1)) (BXOR I1 (CONVIT I1 (RSHU I32 (REG I32 (HOLE 1 R32)) (INTCONST I8 31))) (CONVIT I1 (RSHU I32 (REG I32 (HOLE 1 R32)) (INTCONST I8 30)))) (REG I1 OF)) ;undefined (REG I1 OF))))) ;RCL m32,CL (DEFINST ("RCL DWORD PTR ??1s,CL" "RCL %CL,??1s" "RCL DWORD PTR ??1s,CL") (PARALLEL (SET (MEM I32 (HOLE 1)) (BOR I32 (LSH I32 (MEM I32 (HOLE 1)) (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31))) (BOR I32 (RSHU I32 (MEM I32 (HOLE 1)) (SUB I8 (INTCONST I8 33) (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31)))) (LSH I32 (CONVZX I32 (REG I1 CF)) (SUB I8 (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31)) (INTCONST I8 1)))))) (SET (REG I1 CF) (IFTHENELSE I1 (TSTNE I1 (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31)) (INTCONST I8 0)) (CONVIT I1 (RSHU I32 (LSH I32 (MEM I32 (HOLE 1)) (SUB I8 (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31)) (INTCONST I8 1))) (INTCONST I8 31))) (REG I1 CF))) (SET (REG I1 OF) (IFTHENELSE I1 (TSTLEU I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 1)) (IFTHENELSE I1 (TSTEQ I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 1)) (BXOR I1 (CONVIT I1 (RSHU I32 (MEM I32 (HOLE 1)) (INTCONST I8 31))) (CONVIT I1 (RSHU I32 (MEM I32 (HOLE 1)) (INTCONST I8 30)))) (REG I1 OF)) ;undefined (REG I1 OF))))) ;RCR(rotate through carry right) ;RCR r8,imm8 (DEFINST ("RCR ?1l,?2c" "RCR $?2c,%?1l" "RCR ?1l,?2c") (PARALLEL (SET (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (BOR I8 (RSHU I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (MODU I8 (BAND I8 (INTCONST I8 (HOLE 2)) (INTCONST I8 31)) (INTCONST I8 9))) (BOR I8 (LSH I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (SUB I8 (INTCONST I8 9) (MODU I8 (BAND I8 (INTCONST I8 (HOLE 2)) (INTCONST I8 31)) (INTCONST I8 9)))) (LSH I8 (CONVZX I8 (REG I1 CF)) (SUB I8 (INTCONST I8 8) (MODU I8 (BAND I8 (INTCONST I8 (HOLE 2)) (INTCONST I8 31)) (INTCONST I8 9))))))) (SET (REG I1 CF) (IFTHENELSE I1 (TSTNE I1 (MODU I8 (BAND I8 (INTCONST I8 (HOLE 2)) (INTCONST I8 31)) (INTCONST I8 9)) (INTCONST I8 0)) (CONVIT I1 (RSHU I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (SUB I8 (MODU I8 (BAND I8 (INTCONST I8 (HOLE 2)) (INTCONST I8 31)) (INTCONST I8 9)) (INTCONST I8 1)))) (REG I1 CF))) (SET (REG I1 OF) (IFTHENELSE I1 (TSTLEU I1 (INTCONST I8 (HOLE 2)) (INTCONST I8 1)) (IFTHENELSE I1 (TSTEQ I1 (INTCONST I8 (HOLE 2)) (INTCONST I8 1)) (BXOR I1 (CONVIT I1 (RSHU I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (INTCONST I8 7))) (REG I1 CF)) (REG I1 OF)) ;undefined (REG I1 OF))))) (DEFINST ("RCR ?1h,?2c" "RCR $?2c,%?1h" "RCR ?1h,?2c") (PARALLEL (SET (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (BOR I8 (RSHU I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (MODU I8 (BAND I8 (INTCONST I8 (HOLE 2)) (INTCONST I8 31)) (INTCONST I8 9))) (BOR I8 (LSH I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (SUB I8 (INTCONST I8 9) (MODU I8 (BAND I8 (INTCONST I8 (HOLE 2)) (INTCONST I8 31)) (INTCONST I8 9)))) (LSH I8 (CONVZX I8 (REG I1 CF)) (SUB I8 (INTCONST I8 8) (MODU I8 (BAND I8 (INTCONST I8 (HOLE 2)) (INTCONST I8 31)) (INTCONST I8 9))))))) (SET (REG I1 CF) (IFTHENELSE I1 (TSTNE I1 (MODU I8 (BAND I8 (INTCONST I8 (HOLE 2)) (INTCONST I8 31)) (INTCONST I8 9)) (INTCONST I8 0)) (CONVIT I1 (RSHU I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (SUB I8 (MODU I8 (BAND I8 (INTCONST I8 (HOLE 2)) (INTCONST I8 31)) (INTCONST I8 9)) (INTCONST I8 1)))) (REG I1 CF))) (SET (REG I1 OF) (IFTHENELSE I1 (TSTLEU I1 (INTCONST I8 (HOLE 2)) (INTCONST I8 1)) (IFTHENELSE I1 (TSTEQ I1 (INTCONST I8 (HOLE 2)) (INTCONST I8 1)) (BXOR I1 (CONVIT I1 (RSHU I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (INTCONST I8 7))) (REG I1 CF)) (REG I1 OF)) ;undefined (REG I1 OF))))) ;RCR m8,imm8 (DEFINST ("RCR BYTE PTR ??1s,?2c" "RCRB $?2c,??1s" "RCR BYTE PTR ??1s,?2c") (PARALLEL (SET (MEM I8 (HOLE 1)) (BOR I8 (RSHU I8 (MEM I8 (HOLE 1)) (MODU I8 (BAND I8 (INTCONST I8 (HOLE 2)) (INTCONST I8 31)) (INTCONST I8 9))) (BOR I8 (LSH I8 (MEM I8 (HOLE 1)) (SUB I8 (INTCONST I8 9) (MODU I8 (BAND I8 (INTCONST I8 (HOLE 2)) (INTCONST I8 31)) (INTCONST I8 9)))) (LSH I8 (CONVZX I8 (REG I1 CF)) (SUB I8 (INTCONST I8 8) (MODU I8 (BAND I8 (INTCONST I8 (HOLE 2)) (INTCONST I8 31)) (INTCONST I8 9))))))) (SET (REG I1 CF) (IFTHENELSE I1 (TSTNE I1 (MODU I8 (BAND I8 (INTCONST I8 (HOLE 2)) (INTCONST I8 31)) (INTCONST I8 9)) (INTCONST I8 0)) (CONVIT I1 (RSHU I8 (MEM I8 (HOLE 1)) (SUB I8 (MODU I8 (BAND I8 (INTCONST I8 (HOLE 2)) (INTCONST I8 31)) (INTCONST I8 9)) (INTCONST I8 1)))) (REG I1 CF))) (SET (REG I1 OF) (IFTHENELSE I1 (TSTLEU I1 (INTCONST I8 (HOLE 2)) (INTCONST I8 1)) (IFTHENELSE I1 (TSTEQ I1 (INTCONST I8 (HOLE 2)) (INTCONST I8 1)) (BXOR I1 (CONVIT I1 (RSHU I8 (MEM I8 (HOLE 1)) (INTCONST I8 7))) (REG I1 CF)) (REG I1 OF)) ;undefined (REG I1 OF))))) ;RCR r8,CL (DEFINST ("RCR ?1l,CL" "RCR %CL,%?1l" "RCR ?1l,CL") (PARALLEL (SET (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (BOR I8 (RSHU I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (MODU I8 (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31)) (INTCONST I8 9))) (BOR I8 (LSH I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (SUB I8 (INTCONST I8 9) (MODU I8 (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31)) (INTCONST I8 9)))) (LSH I8 (CONVZX I8 (REG I1 CF)) (SUB I8 (INTCONST I8 8) (MODU I8 (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31)) (INTCONST I8 9))))))) (SET (REG I1 CF) (IFTHENELSE I1 (TSTNE I1 (MODU I8 (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31)) (INTCONST I8 9)) (INTCONST I8 0)) (CONVIT I1 (RSHU I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (SUB I8 (MODU I8 (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31)) (INTCONST I8 9)) (INTCONST I8 1)))) (REG I1 CF))) (SET (REG I1 OF) (IFTHENELSE I1 (TSTLEU I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 1)) (IFTHENELSE I1 (TSTEQ I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 1)) (BXOR I1 (CONVIT I1 (RSHU I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (INTCONST I8 7))) (REG I1 CF)) (REG I1 OF)) ;undefined (REG I1 OF))))) (DEFINST ("RCR ?1h,CL" "RCR %CL,%?1h" "RCR ?1h,CL") (PARALLEL (SET (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (BOR I8 (RSHU I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (MODU I8 (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31)) (INTCONST I8 9))) (BOR I8 (LSH I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (SUB I8 (INTCONST I8 9) (MODU I8 (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31)) (INTCONST I8 9)))) (LSH I8 (CONVZX I8 (REG I1 CF)) (SUB I8 (INTCONST I8 8) (MODU I8 (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31)) (INTCONST I8 9))))))) (SET (REG I1 CF) (IFTHENELSE I1 (TSTNE I1 (MODU I8 (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31)) (INTCONST I8 9)) (INTCONST I8 0)) (CONVIT I1 (RSHU I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (SUB I8 (MODU I8 (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31)) (INTCONST I8 9)) (INTCONST I8 1)))) (REG I1 CF))) (SET (REG I1 OF) (IFTHENELSE I1 (TSTLEU I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 1)) (IFTHENELSE I1 (TSTEQ I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 1)) (BXOR I1 (CONVIT I1 (RSHU I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (INTCONST I8 7))) (REG I1 CF)) (REG I1 OF)) ;undefined (REG I1 OF))))) ;RCR m8,CL (DEFINST ("RCR BYTE PTR ??1s,CL" "RCR %CL,??1s" "RCR BYTE PTR ??1s,CL") (PARALLEL (SET (MEM I8 (HOLE 1)) (BOR I8 (RSHU I8 (MEM I8 (HOLE 1)) (MODU I8 (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31)) (INTCONST I8 9))) (BOR I8 (LSH I8 (MEM I8 (HOLE 1)) (SUB I8 (INTCONST I8 9) (MODU I8 (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31)) (INTCONST I8 9)))) (LSH I8 (CONVZX I8 (REG I1 CF)) (SUB I8 (INTCONST I8 8) (MODU I8 (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31)) (INTCONST I8 9))))))) (SET (REG I1 CF) (IFTHENELSE I1 (TSTNE I1 (MODU I8 (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31)) (INTCONST I8 9)) (INTCONST I8 0)) (CONVIT I1 (RSHU I8 (MEM I8 (HOLE 1)) (SUB I8 (MODU I8 (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31)) (INTCONST I8 9)) (INTCONST I8 1)))) (REG I1 CF))) (SET (REG I1 OF) (IFTHENELSE I1 (TSTLEU I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 1)) (IFTHENELSE I1 (TSTEQ I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 1)) (BXOR I1 (CONVIT I1 (RSHU I8 (MEM I8 (HOLE 1)) (INTCONST I8 7))) (REG I1 CF)) (REG I1 OF)) ;undefined (REG I1 OF))))) ;RCR r16,imm8 (DEFINST ("RCR ?1w,?2c" "RCR $?2c,%?1w" "RCR ?1w,?2c") (PARALLEL (SET (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (BOR I16 (RSHU I16 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (MODU I8 (BAND I8 (INTCONST I8 (HOLE 2)) (INTCONST I8 31)) (INTCONST I8 17))) (BOR I16 (LSH I16 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (SUB I8 (INTCONST I8 17) (MODU I8 (BAND I8 (INTCONST I8 (HOLE 2)) (INTCONST I8 31)) (INTCONST I8 17)))) (LSH I16 (CONVZX I16 (REG I1 CF)) (SUB I8 (INTCONST I8 16) (MODU I8 (BAND I8 (INTCONST I8 (HOLE 2)) (INTCONST I8 31)) (INTCONST I8 17))))))) (SET (REG I1 CF) (IFTHENELSE I1 (TSTNE I1 (MODU I8 (BAND I8 (INTCONST I8 (HOLE 2)) (INTCONST I8 31)) (INTCONST I8 17)) (INTCONST I8 0)) (CONVIT I1 (RSHU I16 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (SUB I8 (MODU I8 (BAND I8 (INTCONST I8 (HOLE 2)) (INTCONST I8 31)) (INTCONST I8 17)) (INTCONST I8 1)))) (REG I1 CF))) (SET (REG I1 OF) (IFTHENELSE I1 (TSTLEU I1 (INTCONST I8 (HOLE 2)) (INTCONST I8 1)) (IFTHENELSE I1 (TSTEQ I1 (INTCONST I8 (HOLE 2)) (INTCONST I8 1)) (BXOR I1 (CONVIT I1 (RSHU I16 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (INTCONST I8 15))) (REG I1 CF)) (REG I1 OF)) ;undefined (REG I1 OF))))) ;RCR m16,imm8 (DEFINST ("RCR WORD PTR ??1s,?2c" "RCRW $?2c,??1s" "RCR WORD PTR ??1s,?2c") (PARALLEL (SET (MEM I16 (HOLE 1)) (BOR I16 (RSHU I16 (MEM I16 (HOLE 1)) (MODU I8 (BAND I8 (INTCONST I8 (HOLE 2)) (INTCONST I8 31)) (INTCONST I8 17))) (BOR I16 (LSH I16 (MEM I16 (HOLE 1)) (SUB I8 (INTCONST I8 17) (MODU I8 (BAND I8 (INTCONST I8 (HOLE 2)) (INTCONST I8 31)) (INTCONST I8 17)))) (LSH I16 (CONVZX I16 (REG I1 CF)) (SUB I8 (INTCONST I8 16) (MODU I8 (BAND I8 (INTCONST I8 (HOLE 2)) (INTCONST I8 31)) (INTCONST I8 17))))))) (SET (REG I1 CF) (IFTHENELSE I1 (TSTNE I1 (MODU I8 (BAND I8 (INTCONST I8 (HOLE 2)) (INTCONST I8 31)) (INTCONST I8 17)) (INTCONST I8 0)) (CONVIT I1 (RSHU I16 (MEM I16 (HOLE 1)) (SUB I8 (MODU I8 (BAND I8 (INTCONST I8 (HOLE 2)) (INTCONST I8 31)) (INTCONST I8 17)) (INTCONST I8 1)))) (REG I1 CF))) (SET (REG I1 OF) (IFTHENELSE I1 (TSTLEU I1 (INTCONST I8 (HOLE 2)) (INTCONST I8 1)) (IFTHENELSE I1 (TSTEQ I1 (INTCONST I8 (HOLE 2)) (INTCONST I8 1)) (BXOR I1 (CONVIT I1 (RSHU I16 (MEM I16 (HOLE 1)) (INTCONST I8 15))) (REG I1 CF)) (REG I1 OF)) ;undefined (REG I1 OF))))) ;RCR r16,CL (DEFINST ("RCR ?1w,CL" "RCR %CL,%?1w" "RCR ?1w,CL") (PARALLEL (SET (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (BOR I16 (RSHU I16 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (MODU I8 (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31)) (INTCONST I8 17))) (BOR I16 (LSH I16 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (SUB I8 (INTCONST I8 17) (MODU I8 (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31)) (INTCONST I8 17)))) (LSH I16 (CONVZX I16 (REG I1 CF)) (SUB I8 (INTCONST I8 16) (MODU I8 (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31)) (INTCONST I8 17))))))) (SET (REG I1 CF) (IFTHENELSE I1 (TSTNE I1 (MODU I8 (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31)) (INTCONST I8 17)) (INTCONST I8 0)) (CONVIT I1 (RSHU I16 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (SUB I8 (MODU I8 (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31)) (INTCONST I8 17)) (INTCONST I8 1)))) (REG I1 CF))) (SET (REG I1 OF) (IFTHENELSE I1 (TSTLEU I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 1)) (IFTHENELSE I1 (TSTEQ I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 1)) (BXOR I1 (CONVIT I1 (RSHU I16 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (INTCONST I8 15))) (REG I1 CF)) (REG I1 OF)) ;undefined (REG I1 OF))))) ;RCR m16,CL (DEFINST ("RCR WORD PTR ??1s,CL" "RCR %CL,??1s" "RCR WORD PTR ??1s,CL") (PARALLEL (SET (MEM I16 (HOLE 1)) (BOR I16 (RSHU I16 (MEM I16 (HOLE 1)) (MODU I8 (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31)) (INTCONST I8 17))) (BOR I16 (LSH I16 (MEM I16 (HOLE 1)) (SUB I8 (INTCONST I8 17) (MODU I8 (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31)) (INTCONST I8 17)))) (LSH I16 (CONVZX I16 (REG I1 CF)) (SUB I8 (INTCONST I8 16) (MODU I8 (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31)) (INTCONST I8 17))))))) (SET (REG I1 CF) (IFTHENELSE I1 (TSTNE I1 (MODU I8 (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31)) (INTCONST I8 17)) (INTCONST I8 0)) (CONVIT I1 (RSHU I16 (MEM I16 (HOLE 1)) (SUB I8 (MODU I8 (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31)) (INTCONST I8 17)) (INTCONST I8 1)))) (REG I1 CF))) (SET (REG I1 OF) (IFTHENELSE I1 (TSTLEU I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 1)) (IFTHENELSE I1 (TSTEQ I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 1)) (BXOR I1 (CONVIT I1 (RSHU I16 (MEM I16 (HOLE 1)) (INTCONST I8 15))) (REG I1 CF)) (REG I1 OF)) ;undefined (REG I1 OF))))) ;RCR r32,imm8 (DEFINST ("RCR ?1r,?2c" "RCR $?2c,%?1r" "RCR ?1r,?2c") (PARALLEL (SET (REG I32 (HOLE 1 R32)) (BOR I32 (RSHU I32 (REG I32 (HOLE 1 R32)) (BAND I8 (INTCONST I8 (HOLE 2)) (INTCONST I8 31))) (IFTHENELSE I32 (TSTNE I1 (INTCONST I8 (HOLE 2)) (INTCONST I8 1)) (BOR I32 (LSH I32 (REG I32 (HOLE 1 R32)) (SUB I8 (INTCONST I8 33) (BAND I8 (INTCONST I8 (HOLE 2)) (INTCONST I8 31)))) (LSH I32 (CONVZX I32 (REG I1 CF)) (SUB I8 (INTCONST I8 32) (BAND I8 (INTCONST I8 (HOLE 2)) (INTCONST I8 31))))) (LSH I32 (CONVZX I32 (REG I1 CF)) (INTCONST I8 31))))) (SET (REG I1 CF) (IFTHENELSE I1 (TSTNE I1 (INTCONST I8 (HOLE 2)) (INTCONST I8 0)) (CONVIT I1 (RSHU I32 (REG I32 (HOLE 1 R32)) (SUB I8 (BAND I8 (INTCONST I8 (HOLE 2)) (INTCONST I8 31)) (INTCONST I8 1)))) (REG I1 CF))) (SET (REG I1 OF) (IFTHENELSE I1 (TSTLEU I1 (INTCONST I8 (HOLE 2)) (INTCONST I8 1)) (IFTHENELSE I1 (TSTEQ I1 (INTCONST I8 (HOLE 2)) (INTCONST I8 1)) (BXOR I1 (CONVIT I1 (RSHU I32 (REG I32 (HOLE 1 R32)) (INTCONST I8 31))) (REG I1 CF)) (REG I1 OF)) ;undefined (REG I1 OF))))) ;RCR m32,imm8 (DEFINST ("RCR DWORD PTR ??1s,?2c" "RCRL $?2c,??1s" "RCR DWORD PTR ??1s,?2c") (PARALLEL (SET (MEM I32 (HOLE 1)) (BOR I32 (RSHU I32 (MEM I32 (HOLE 1)) (BAND I8 (INTCONST I8 (HOLE 2)) (INTCONST I8 31))) (IFTHENELSE I32 (TSTNE I1 (INTCONST I8 (HOLE 2)) (INTCONST I8 1)) (BOR I32 (LSH I32 (MEM I32 (HOLE 1)) (SUB I8 (INTCONST I8 33) (BAND I8 (INTCONST I8 (HOLE 2)) (INTCONST I8 31)))) (LSH I32 (CONVZX I32 (REG I1 CF)) (SUB I8 (INTCONST I8 32) (BAND I8 (INTCONST I8 (HOLE 2)) (INTCONST I8 31))))) (LSH I32 (CONVZX I32 (REG I1 CF)) (INTCONST I8 31))))) (SET (REG I1 CF) (IFTHENELSE I1 (TSTNE I1 (INTCONST I8 (HOLE 2)) (INTCONST I8 0)) (CONVIT I1 (RSHU I32 (MEM I32 (HOLE 1)) (SUB I8 (BAND I8 (INTCONST I8 (HOLE 2)) (INTCONST I8 31)) (INTCONST I8 1)))) (REG I1 CF))) (SET (REG I1 OF) (IFTHENELSE I1 (TSTLEU I1 (INTCONST I8 (HOLE 2)) (INTCONST I8 1)) (IFTHENELSE I1 (TSTEQ I1 (INTCONST I8 (HOLE 2)) (INTCONST I8 1)) (BXOR I1 (CONVIT I1 (RSHU I32 (MEM I32 (HOLE 1)) (INTCONST I8 31))) (REG I1 CF)) (REG I1 OF)) ;undefined (REG I1 OF))))) ;RCR r32,CL (DEFINST ("RCR ?1r,CL" "RCR %CL,%?1r" "RCR ?1r,CL") (PARALLEL (SET (REG I32 (HOLE 1 R32)) (BOR I32 (RSHU I32 (REG I32 (HOLE 1 R32)) (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31))) (IFTHENELSE I32 (TSTNE I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 1)) (BOR I32 (LSH I32 (REG I32 (HOLE 1 R32)) (SUB I8 (INTCONST I8 33) (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31)))) (LSH I32 (CONVZX I32 (REG I1 CF)) (SUB I8 (INTCONST I8 32) (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31))))) (LSH I32 (CONVZX I32 (REG I1 CF)) (INTCONST I8 31))))) (SET (REG I1 CF) (IFTHENELSE I1 (TSTNE I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 0)) (CONVIT I1 (RSHU I32 (REG I32 (HOLE 1 R32)) (SUB I8 (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31)) (INTCONST I8 1)))) (REG I1 CF))) (SET (REG I1 OF) (IFTHENELSE I1 (TSTLEU I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 1)) (IFTHENELSE I1 (TSTEQ I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 1)) (BXOR I1 (CONVIT I1 (RSHU I32 (REG I32 (HOLE 1 R32)) (INTCONST I8 31))) (REG I1 CF)) (REG I1 OF)) ;undefined (REG I1 OF))))) ;RCR m32,CL (DEFINST ("RCR DWORD PTR ??1s,CL" "RCR %CL,??1s" "RCR DWORD PTR ??1s,CL") (PARALLEL (SET (MEM I32 (HOLE 1)) (BOR I32 (RSHU I32 (MEM I32 (HOLE 1)) (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31))) (IFTHENELSE I32 (TSTNE I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 1)) (BOR I32 (LSH I32 (MEM I32 (HOLE 1)) (SUB I8 (INTCONST I8 33) (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31)))) (LSH I32 (CONVZX I32 (REG I1 CF)) (SUB I8 (INTCONST I8 32) (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31))))) (LSH I32 (CONVZX I32 (REG I1 CF)) (INTCONST I8 31))))) (SET (REG I1 CF) (IFTHENELSE I1 (TSTNE I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 0)) (CONVIT I1 (RSHU I32 (MEM I32 (HOLE 1)) (SUB I8 (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31)) (INTCONST I8 1)))) (REG I1 CF))) (SET (REG I1 OF) (IFTHENELSE I1 (TSTLEU I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 1)) (IFTHENELSE I1 (TSTEQ I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 1)) (BXOR I1 (CONVIT I1 (RSHU I32 (MEM I32 (HOLE 1)) (INTCONST I8 31))) (REG I1 CF)) (REG I1 OF)) ;undefined (REG I1 OF))))) ;ROL(rotate left) ;ROL r8,imm8 (DEFINST ("ROL ?1l,?2c" "ROL $?2c,%?1l" "ROL ?1l,?2c") (PARALLEL (SET (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (BOR I8 (LSH I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (BAND I8 (INTCONST I8 (HOLE 2)) (INTCONST I8 7))) (RSHU I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (SUB I8 (INTCONST I8 8) (BAND I8 (INTCONST I8 (HOLE 2)) (INTCONST I8 7)))))) (SET (REG I1 CF) (IFTHENELSE I1 (TSTNE I1 (BAND I8 (INTCONST I8 (HOLE 2)) (INTCONST I8 7)) (INTCONST I8 0)) (CONVIT I1 (RSHU I8 (LSH I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (SUB I8 (BAND I8 (INTCONST I8 (HOLE 2)) (INTCONST I8 7)) (INTCONST I8 1))) (INTCONST I8 7))) (REG I1 CF))) (SET (REG I1 OF) (IFTHENELSE I1 (TSTLEU I1 (INTCONST I8 (HOLE 2)) (INTCONST I8 1)) (IFTHENELSE I1 (TSTEQ I1 (INTCONST I8 (HOLE 2)) (INTCONST I8 1)) (BXOR I1 (CONVIT I1 (RSHU I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (INTCONST I8 7))) (CONVIT I1 (RSHU I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (INTCONST I8 6)))) (REG I1 OF)) ;undefined (REG I1 OF))))) (DEFINST ("ROL ?1h,?2c" "ROL $?2c,%?1h" "ROL ?1h,?2c") (PARALLEL (SET (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (BOR I8 (LSH I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (BAND I8 (INTCONST I8 (HOLE 2)) (INTCONST I8 7))) (RSHU I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (SUB I8 (INTCONST I8 8) (BAND I8 (INTCONST I8 (HOLE 2)) (INTCONST I8 7)))))) (SET (REG I1 CF) (IFTHENELSE I1 (TSTNE I1 (BAND I8 (INTCONST I8 (HOLE 2)) (INTCONST I8 7)) (INTCONST I8 0)) (CONVIT I1 (RSHU I8 (LSH I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (SUB I8 (BAND I8 (INTCONST I8 (HOLE 2)) (INTCONST I8 7)) (INTCONST I8 1))) (INTCONST I8 7))) (REG I1 CF))) (SET (REG I1 OF) (IFTHENELSE I1 (TSTLEU I1 (INTCONST I8 (HOLE 2)) (INTCONST I8 1)) (IFTHENELSE I1 (TSTEQ I1 (INTCONST I8 (HOLE 2)) (INTCONST I8 1)) (BXOR I1 (CONVIT I1 (RSHU I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (INTCONST I8 7))) (CONVIT I1 (RSHU I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (INTCONST I8 6)))) (REG I1 OF)) ;undefined (REG I1 OF))))) ;ROL m8,imm8 (DEFINST ("ROL BYTE PTR ??1s,?2c" "ROLB $?2c,??1s" "ROL BYTE PTR ??1s,?2c") (PARALLEL (SET (MEM I8 (HOLE 1)) (BOR I8 (LSH I8 (MEM I8 (HOLE 1)) (BAND I8 (INTCONST I8 (HOLE 2)) (INTCONST I8 7))) (RSHU I8 (MEM I8 (HOLE 1)) (SUB I8 (INTCONST I8 8) (BAND I8 (INTCONST I8 (HOLE 2)) (INTCONST I8 7)))))) (SET (REG I1 CF) (IFTHENELSE I1 (TSTNE I1 (BAND I8 (INTCONST I8 (HOLE 2)) (INTCONST I8 7)) (INTCONST I8 0)) (CONVIT I1 (RSHU I8 (LSH I8 (MEM I8 (HOLE 1)) (SUB I8 (BAND I8 (INTCONST I8 (HOLE 2)) (INTCONST I8 7)) (INTCONST I8 1))) (INTCONST I8 7))) (REG I1 CF))) (SET (REG I1 OF) (IFTHENELSE I1 (TSTLEU I1 (INTCONST I8 (HOLE 2)) (INTCONST I8 1)) (IFTHENELSE I1 (TSTEQ I1 (INTCONST I8 (HOLE 2)) (INTCONST I8 1)) (BXOR I1 (CONVIT I1 (RSHU I8 (MEM I8 (HOLE 1)) (INTCONST I8 7))) (CONVIT I1 (RSHU I8 (MEM I8 (HOLE 1)) (INTCONST I8 6)))) (REG I1 OF)) ;undefined (REG I1 OF))))) ;ROL r8,CL (DEFINST ("ROL ?1l,CL" "ROL %CL,%?1l" "ROL ?1l,CL") (PARALLEL (SET (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (BOR I8 (LSH I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 7))) (RSHU I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (SUB I8 (INTCONST I8 8) (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 7)))))) (SET (REG I1 CF) (IFTHENELSE I1 (TSTNE I1 (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 7)) (INTCONST I8 0)) (CONVIT I1 (RSHU I8 (LSH I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (SUB I8 (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 7)) (INTCONST I8 1))) (INTCONST I8 7))) (REG I1 CF))) (SET (REG I1 OF) (IFTHENELSE I1 (TSTLEU I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 1)) (IFTHENELSE I1 (TSTEQ I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 1)) (BXOR I1 (CONVIT I1 (RSHU I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (INTCONST I8 7))) (CONVIT I1 (RSHU I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (INTCONST I8 6)))) (REG I1 OF)) ;undefined (REG I1 OF))))) (DEFINST ("ROL ?1h,CL" "ROL %CL,%?1h" "ROL ?1h,CL") (PARALLEL (SET (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (BOR I8 (LSH I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 7))) (RSHU I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (SUB I8 (INTCONST I8 8) (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 7)))))) (SET (REG I1 CF) (IFTHENELSE I1 (TSTNE I1 (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 7)) (INTCONST I8 0)) (CONVIT I1 (RSHU I8 (LSH I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (SUB I8 (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 7)) (INTCONST I8 1))) (INTCONST I8 7))) (REG I1 CF))) (SET (REG I1 OF) (IFTHENELSE I1 (TSTLEU I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 1)) (IFTHENELSE I1 (TSTEQ I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 1)) (BXOR I1 (CONVIT I1 (RSHU I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (INTCONST I8 7))) (CONVIT I1 (RSHU I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (INTCONST I8 6)))) (REG I1 OF)) ;undefined (REG I1 OF))))) ;ROL m8,CL (DEFINST ("ROL BYTE PTR ??1s,CL" "ROL %CL,??1s" "ROL BYTE PTR ??1s,CL") (PARALLEL (SET (MEM I8 (HOLE 1)) (BOR I8 (LSH I8 (MEM I8 (HOLE 1)) (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 7))) (RSHU I8 (MEM I8 (HOLE 1)) (SUB I8 (INTCONST I8 8) (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 7)))))) (SET (REG I1 CF) (IFTHENELSE I1 (TSTNE I1 (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 7)) (INTCONST I8 0)) (CONVIT I1 (RSHU I8 (LSH I8 (MEM I8 (HOLE 1)) (SUB I8 (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 7)) (INTCONST I8 1))) (INTCONST I8 7))) (REG I1 CF))) (SET (REG I1 OF) (IFTHENELSE I1 (TSTLEU I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 1)) (IFTHENELSE I1 (TSTEQ I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 1)) (BXOR I1 (CONVIT I1 (RSHU I8 (MEM I8 (HOLE 1)) (INTCONST I8 7))) (CONVIT I1 (RSHU I8 (MEM I8 (HOLE 1)) (INTCONST I8 6)))) (REG I1 OF)) ;undefined (REG I1 OF))))) ;ROL r16,imm8 (DEFINST ("ROL ?1w,?2c" "ROL $?2c,%?1w" "ROL ?1w,?2c") (PARALLEL (SET (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (BOR I16 (LSH I16 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (BAND I8 (INTCONST I8 (HOLE 2)) (INTCONST I8 15))) (RSHU I16 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (SUB I8 (INTCONST I8 16) (BAND I8 (INTCONST I8 (HOLE 2)) (INTCONST I8 15)))))) (SET (REG I1 CF) (IFTHENELSE I1 (TSTNE I1 (BAND I8 (INTCONST I8 (HOLE 2)) (INTCONST I8 15)) (INTCONST I8 0)) (CONVIT I1 (RSHU I16 (LSH I16 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (SUB I8 (BAND I8 (INTCONST I8 (HOLE 2)) (INTCONST I8 15)) (INTCONST I8 1))) (INTCONST I8 15))) (REG I1 CF))) (SET (REG I1 OF) (IFTHENELSE I1 (TSTLEU I1 (INTCONST I8 (HOLE 2)) (INTCONST I8 1)) (IFTHENELSE I1 (TSTEQ I1 (INTCONST I8 (HOLE 2)) (INTCONST I8 1)) (BXOR I1 (CONVIT I1 (RSHU I16 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (INTCONST I8 15))) (CONVIT I1 (RSHU I16 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (INTCONST I8 14)))) (REG I1 OF)) ;undefined (REG I1 OF))))) ;ROL m16,imm8 (DEFINST ("ROL WORD PTR ??1s,?2c" "ROLW $?2c,??1s" "ROL WORD PTR ??1s,?2c") (PARALLEL (SET (MEM I16 (HOLE 1)) (BOR I16 (LSH I16 (MEM I16 (HOLE 1)) (BAND I8 (INTCONST I8 (HOLE 2)) (INTCONST I8 15))) (RSHU I16 (MEM I16 (HOLE 1)) (SUB I8 (INTCONST I8 16) (BAND I8 (INTCONST I8 (HOLE 2)) (INTCONST I8 15)))))) (SET (REG I1 CF) (IFTHENELSE I1 (TSTNE I1 (BAND I8 (INTCONST I8 (HOLE 2)) (INTCONST I8 15)) (INTCONST I8 0)) (CONVIT I1 (RSHU I16 (LSH I16 (MEM I16 (HOLE 1)) (SUB I8 (BAND I8 (INTCONST I8 (HOLE 2)) (INTCONST I8 15)) (INTCONST I8 1))) (INTCONST I8 15))) (REG I1 CF))) (SET (REG I1 OF) (IFTHENELSE I1 (TSTLEU I1 (INTCONST I8 (HOLE 2)) (INTCONST I8 1)) (IFTHENELSE I1 (TSTEQ I1 (INTCONST I8 (HOLE 2)) (INTCONST I8 1)) (BXOR I1 (CONVIT I1 (RSHU I16 (MEM I16 (HOLE 1)) (INTCONST I8 15))) (CONVIT I1 (RSHU I16 (MEM I16 (HOLE 1)) (INTCONST I8 14)))) (REG I1 OF)) ;undefined (REG I1 OF))))) ;ROL r16,CL (DEFINST ("ROL ?1w,CL" "ROL %CL,%?1w" "ROL ?1w,CL") (PARALLEL (SET (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (BOR I16 (LSH I16 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 15))) (RSHU I16 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (SUB I8 (INTCONST I8 16) (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 15)))))) (SET (REG I1 CF) (IFTHENELSE I1 (TSTNE I1 (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 15)) (INTCONST I8 0)) (CONVIT I1 (RSHU I16 (LSH I16 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (SUB I8 (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 15)) (INTCONST I8 1))) (INTCONST I8 15))) (REG I1 CF))) (SET (REG I1 OF) (IFTHENELSE I1 (TSTLEU I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 1)) (IFTHENELSE I1 (TSTEQ I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 1)) (BXOR I1 (CONVIT I1 (RSHU I16 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (INTCONST I8 15))) (CONVIT I1 (RSHU I16 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (INTCONST I8 14)))) (REG I1 OF)) ;undefined (REG I1 OF))))) ;ROL m16,CL (DEFINST ("ROL WORD PTR ??1s,CL" "ROL %CL,??1s" "ROL WORD PTR ??1s,CL") (PARALLEL (SET (MEM I16 (HOLE 1)) (BOR I16 (LSH I16 (MEM I16 (HOLE 1)) (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 15))) (RSHU I16 (MEM I16 (HOLE 1)) (SUB I8 (INTCONST I8 16) (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 15)))))) (SET (REG I1 CF) (IFTHENELSE I1 (TSTNE I1 (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 15)) (INTCONST I8 0)) (CONVIT I1 (RSHU I16 (LSH I16 (MEM I16 (HOLE 1)) (SUB I8 (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 15)) (INTCONST I8 1))) (INTCONST I8 15))) (REG I1 CF))) (SET (REG I1 OF) (IFTHENELSE I1 (TSTLEU I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 1)) (IFTHENELSE I1 (TSTEQ I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 1)) (BXOR I1 (CONVIT I1 (RSHU I16 (MEM I16 (HOLE 1)) (INTCONST I8 15))) (CONVIT I1 (RSHU I16 (MEM I16 (HOLE 1)) (INTCONST I8 14)))) (REG I1 OF)) ;undefined (REG I1 OF))))) ;ROL r32,imm8 (DEFINST ("ROL ?1r,?2c" "ROL $?2c,%?1r" "ROL ?1r,?2c") (PARALLEL (SET (REG I32 (HOLE 1 R32)) (BOR I32 (LSH I32 (REG I32 (HOLE 1 R32)) (BAND I8 (INTCONST I8 (HOLE 2)) (INTCONST I8 31))) (RSHU I32 (REG I32 (HOLE 1 R32)) (SUB I8 (INTCONST I8 32) (BAND I8 (INTCONST I8 (HOLE 2)) (INTCONST I8 31)))))) (SET (REG I1 CF) (IFTHENELSE I1 (TSTNE I1 (BAND I8 (INTCONST I8 (HOLE 2)) (INTCONST I8 31)) (INTCONST I8 0)) (CONVIT I1 (RSHU I32 (LSH I32 (REG I32 (HOLE 1 R32)) (SUB I8 (BAND I8 (INTCONST I8 (HOLE 2)) (INTCONST I8 31)) (INTCONST I8 1))) (INTCONST I8 31))) (REG I1 CF))) (SET (REG I1 OF) (IFTHENELSE I1 (TSTLEU I1 (INTCONST I8 (HOLE 2)) (INTCONST I8 1)) (IFTHENELSE I1 (TSTEQ I1 (INTCONST I8 (HOLE 2)) (INTCONST I8 1)) (BXOR I1 (CONVIT I1 (RSHU I32 (REG I32 (HOLE 1 R32)) (INTCONST I8 31))) (CONVIT I1 (RSHU I32 (REG I32 (HOLE 1 R32)) (INTCONST I8 30)))) (REG I1 OF)) ;undefined (REG I1 OF))))) ;ROL m32,imm8 (DEFINST ("ROL DWORD PTR ??1s,?2c" "ROLL $?2c,??1s" "ROL DWORD PTR ??1s,?2c") (PARALLEL (SET (MEM I32 (HOLE 1)) (BOR I32 (LSH I32 (MEM I32 (HOLE 1)) (BAND I8 (INTCONST I8 (HOLE 2)) (INTCONST I8 31))) (RSHU I32 (MEM I32 (HOLE 1)) (SUB I8 (INTCONST I8 32) (BAND I8 (INTCONST I8 (HOLE 2)) (INTCONST I8 31)))))) (SET (REG I1 CF) (IFTHENELSE I1 (TSTNE I1 (BAND I8 (INTCONST I8 (HOLE 2)) (INTCONST I8 31)) (INTCONST I8 0)) (CONVIT I1 (RSHU I32 (LSH I32 (MEM I32 (HOLE 1)) (SUB I8 (BAND I8 (INTCONST I8 (HOLE 2)) (INTCONST I8 31)) (INTCONST I8 1))) (INTCONST I8 31))) (REG I1 CF))) (SET (REG I1 OF) (IFTHENELSE I1 (TSTLEU I1 (INTCONST I8 (HOLE 2)) (INTCONST I8 1)) (IFTHENELSE I1 (TSTEQ I1 (INTCONST I8 (HOLE 2)) (INTCONST I8 1)) (BXOR I1 (CONVIT I1 (RSHU I32 (MEM I32 (HOLE 1)) (INTCONST I8 31))) (CONVIT I1 (RSHU I32 (MEM I32 (HOLE 1)) (INTCONST I8 30)))) (REG I1 OF)) ;undefined (REG I1 OF))))) ;ROL r32,CL (DEFINST ("ROL ?1r,CL" "ROL %CL,%?1r" "ROL ?1r,CL") (PARALLEL (SET (REG I32 (HOLE 1 R32)) (BOR I32 (LSH I32 (REG I32 (HOLE 1 R32)) (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31))) (RSHU I32 (REG I32 (HOLE 1 R32)) (SUB I8 (INTCONST I8 32) (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31)))))) (SET (REG I1 CF) (IFTHENELSE I1 (TSTNE I1 (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31)) (INTCONST I8 0)) (CONVIT I1 (RSHU I32 (LSH I32 (REG I32 (HOLE 1 R32)) (SUB I8 (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31)) (INTCONST I8 1))) (INTCONST I8 31))) (REG I1 CF))) (SET (REG I1 OF) (IFTHENELSE I1 (TSTLEU I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 1)) (IFTHENELSE I1 (TSTEQ I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 1)) (BXOR I1 (CONVIT I1 (RSHU I32 (REG I32 (HOLE 1 R32)) (INTCONST I8 31))) (CONVIT I1 (RSHU I32 (REG I32 (HOLE 1 R32)) (INTCONST I8 30)))) (REG I1 OF)) ;undefined (REG I1 OF))))) ;ROL m32,CL (DEFINST ("ROL DWORD PTR ??1s,CL" "ROL %CL,??1s" "ROL DWORD PTR ??1s,CL") (PARALLEL (SET (MEM I32 (HOLE 1)) (BOR I32 (LSH I32 (MEM I32 (HOLE 1)) (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31))) (RSHU I32 (MEM I32 (HOLE 1)) (SUB I8 (INTCONST I8 32) (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31)))))) (SET (REG I1 CF) (IFTHENELSE I1 (TSTNE I1 (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31)) (INTCONST I8 0)) (CONVIT I1 (RSHU I32 (LSH I32 (MEM I32 (HOLE 1)) (SUB I8 (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31)) (INTCONST I8 1))) (INTCONST I8 31))) (REG I1 CF))) (SET (REG I1 OF) (IFTHENELSE I1 (TSTLEU I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 1)) (IFTHENELSE I1 (TSTEQ I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 1)) (BXOR I1 (CONVIT I1 (RSHU I32 (MEM I32 (HOLE 1)) (INTCONST I8 31))) (CONVIT I1 (RSHU I32 (MEM I32 (HOLE 1)) (INTCONST I8 30)))) (REG I1 OF)) ;undefined (REG I1 OF))))) ;ROR(rotate right) ;ROR r8,imm8 (DEFINST ("ROR ?1l,?2c" "ROR $?2c,%?1l" "ROR ?1l,?2c") (PARALLEL (SET (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (BOR I8 (RSHU I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (BAND I8 (INTCONST I8 (HOLE 2)) (INTCONST I8 7))) (LSH I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (SUB I8 (INTCONST I8 8) (BAND I8 (INTCONST I8 (HOLE 2)) (INTCONST I8 7)))))) (SET (REG I1 CF) (IFTHENELSE I1 (TSTNE I1 (BAND I8 (INTCONST I8 (HOLE 2)) (INTCONST I8 7)) (INTCONST I8 0)) (CONVIT I1 (RSHU I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (SUB I8 (BAND I8 (INTCONST I8 (HOLE 2)) (INTCONST I8 7)) (INTCONST I8 1)))) (REG I1 CF))) (SET (REG I1 OF) (IFTHENELSE I1 (TSTLEU I1 (INTCONST I8 (HOLE 2)) (INTCONST I8 1)) (IFTHENELSE I1 (TSTEQ I1 (INTCONST I8 (HOLE 2)) (INTCONST I8 1)) (BXOR I1 (CONVIT I1 (RSHU I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (INTCONST I8 7))) (CONVIT I1 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0))) (REG I1 OF)) ;undefined (REG I1 OF))))) (DEFINST ("ROR ?1h,?2c" "ROR $?2c,%?1h" "ROR ?1h,?2c") (PARALLEL (SET (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (BOR I8 (RSHU I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (BAND I8 (INTCONST I8 (HOLE 2)) (INTCONST I8 7))) (LSH I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (SUB I8 (INTCONST I8 8) (BAND I8 (INTCONST I8 (HOLE 2)) (INTCONST I8 7)))))) (SET (REG I1 CF) (IFTHENELSE I1 (TSTNE I1 (BAND I8 (INTCONST I8 (HOLE 2)) (INTCONST I8 7)) (INTCONST I8 0)) (CONVIT I1 (RSHU I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (SUB I8 (BAND I8 (INTCONST I8 (HOLE 2)) (INTCONST I8 7)) (INTCONST I8 1)))) (REG I1 CF))) (SET (REG I1 OF) (IFTHENELSE I1 (TSTLEU I1 (INTCONST I8 (HOLE 2)) (INTCONST I8 1)) (IFTHENELSE I1 (TSTEQ I1 (INTCONST I8 (HOLE 2)) (INTCONST I8 1)) (BXOR I1 (CONVIT I1 (RSHU I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (INTCONST I8 7))) (CONVIT I1 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1))) (REG I1 OF)) ;undefined (REG I1 OF))))) ;ROR m8,imm8 (DEFINST ("ROR BYTE PTR ??1s,?2c" "RORB $?2c,??1s" "ROR BYTE PTR ??1s,?2c") (PARALLEL (SET (MEM I8 (HOLE 1)) (BOR I8 (RSHU I8 (MEM I8 (HOLE 1)) (BAND I8 (INTCONST I8 (HOLE 2)) (INTCONST I8 7))) (LSH I8 (MEM I8 (HOLE 1)) (SUB I8 (INTCONST I8 8) (BAND I8 (INTCONST I8 (HOLE 2)) (INTCONST I8 7)))))) (SET (REG I1 CF) (IFTHENELSE I1 (TSTNE I1 (BAND I8 (INTCONST I8 (HOLE 2)) (INTCONST I8 7)) (INTCONST I8 0)) (CONVIT I1 (RSHU I8 (MEM I8 (HOLE 1)) (SUB I8 (BAND I8 (INTCONST I8 (HOLE 2)) (INTCONST I8 7)) (INTCONST I8 1)))) (REG I1 CF))) (SET (REG I1 OF) (IFTHENELSE I1 (TSTLEU I1 (INTCONST I8 (HOLE 2)) (INTCONST I8 1)) (IFTHENELSE I1 (TSTEQ I1 (INTCONST I8 (HOLE 2)) (INTCONST I8 1)) (BXOR I1 (CONVIT I1 (RSHU I8 (MEM I8 (HOLE 1)) (INTCONST I8 7))) (CONVIT I1 (MEM I8 (HOLE 1)))) (REG I1 OF)) ;undefined (REG I1 OF))))) ;ROR r8,CL (DEFINST ("ROR ?1l,CL" "ROR %CL,%?1l" "ROR ?1l,CL") (PARALLEL (SET (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (BOR I8 (RSHU I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 7))) (LSH I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (SUB I8 (INTCONST I8 8) (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 7)))))) (SET (REG I1 CF) (IFTHENELSE I1 (TSTNE I1 (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 7)) (INTCONST I8 0)) (CONVIT I1 (RSHU I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (SUB I8 (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 7)) (INTCONST I8 1)))) (REG I1 CF))) (SET (REG I1 OF) (IFTHENELSE I1 (TSTLEU I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 1)) (IFTHENELSE I1 (TSTEQ I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 1)) (BXOR I1 (CONVIT I1 (RSHU I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (INTCONST I8 7))) (CONVIT I1 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0))) (REG I1 OF)) ;undefined (REG I1 OF))))) (DEFINST ("ROR ?1h,CL" "ROR %CL,%?1h" "ROR ?1h,CL") (PARALLEL (SET (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (BOR I8 (RSHU I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 7))) (LSH I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (SUB I8 (INTCONST I8 8) (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 7)))))) (SET (REG I1 CF) (IFTHENELSE I1 (TSTNE I1 (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 7)) (INTCONST I8 0)) (CONVIT I1 (RSHU I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (SUB I8 (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 7)) (INTCONST I8 1)))) (REG I1 CF))) (SET (REG I1 OF) (IFTHENELSE I1 (TSTLEU I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 1)) (IFTHENELSE I1 (TSTEQ I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 1)) (BXOR I1 (CONVIT I1 (RSHU I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (INTCONST I8 7))) (CONVIT I1 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1))) (REG I1 OF)) ;undefined (REG I1 OF))))) ;ROR m8,CL (DEFINST ("ROR BYTE PTR ??1s,CL" "ROR %CL,??1s" "ROR BYTE PTR ??1s,CL") (PARALLEL (SET (MEM I8 (HOLE 1)) (BOR I8 (RSHU I8 (MEM I8 (HOLE 1)) (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 7))) (LSH I8 (MEM I8 (HOLE 1)) (SUB I8 (INTCONST I8 8) (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 7)))))) (SET (REG I1 CF) (IFTHENELSE I1 (TSTNE I1 (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 7)) (INTCONST I8 0)) (CONVIT I1 (RSHU I8 (MEM I8 (HOLE 1)) (SUB I8 (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 7)) (INTCONST I8 1)))) (REG I1 CF))) (SET (REG I1 OF) (IFTHENELSE I1 (TSTLEU I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 1)) (IFTHENELSE I1 (TSTEQ I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 1)) (BXOR I1 (CONVIT I1 (RSHU I8 (MEM I8 (HOLE 1)) (INTCONST I8 7))) (CONVIT I1 (MEM I8 (HOLE 1)))) (REG I1 OF)) ;undefined (REG I1 OF))))) ;ROR r16,imm8 (DEFINST ("ROR ?1w,?2c" "ROR $?2c,%?1w" "ROR ?1w,?2c") (PARALLEL (SET (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (BOR I16 (RSHU I16 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (BAND I8 (INTCONST I8 (HOLE 2)) (INTCONST I8 15))) (LSH I16 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (SUB I8 (INTCONST I8 16) (BAND I8 (INTCONST I8 (HOLE 2)) (INTCONST I8 15)))))) (SET (REG I1 CF) (IFTHENELSE I1 (TSTNE I1 (BAND I8 (INTCONST I8 (HOLE 2)) (INTCONST I8 15)) (INTCONST I8 0)) (CONVIT I1 (RSHU I16 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (SUB I8 (BAND I8 (INTCONST I8 (HOLE 2)) (INTCONST I8 15)) (INTCONST I8 1)))) (REG I1 CF))) (SET (REG I1 OF) (IFTHENELSE I1 (TSTLEU I1 (INTCONST I8 (HOLE 2)) (INTCONST I8 1)) (IFTHENELSE I1 (TSTEQ I1 (INTCONST I8 (HOLE 2)) (INTCONST I8 1)) (BXOR I1 (CONVIT I1 (RSHU I16 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (INTCONST I8 15))) (CONVIT I1 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0))) (REG I1 OF)) ;undefined (REG I1 OF))))) ;ROR m16,imm8 (DEFINST ("ROR WORD PTR ??1s,?2c" "RORW $?2c,??1s" "ROR WORD PTR ??1s,?2c") (PARALLEL (SET (MEM I16 (HOLE 1)) (BOR I16 (RSHU I16 (MEM I16 (HOLE 1)) (BAND I8 (INTCONST I8 (HOLE 2)) (INTCONST I8 15))) (LSH I16 (MEM I16 (HOLE 1)) (SUB I8 (INTCONST I8 16) (BAND I8 (INTCONST I8 (HOLE 2)) (INTCONST I8 15)))))) (SET (REG I1 CF) (IFTHENELSE I1 (TSTNE I1 (BAND I8 (INTCONST I8 (HOLE 2)) (INTCONST I8 15)) (INTCONST I8 0)) (CONVIT I1 (RSHU I16 (MEM I16 (HOLE 1)) (SUB I8 (BAND I8 (INTCONST I8 (HOLE 2)) (INTCONST I8 15)) (INTCONST I8 1)))) (REG I1 CF))) (SET (REG I1 OF) (IFTHENELSE I1 (TSTLEU I1 (INTCONST I8 (HOLE 2)) (INTCONST I8 1)) (IFTHENELSE I1 (TSTEQ I1 (INTCONST I8 (HOLE 2)) (INTCONST I8 1)) (BXOR I1 (CONVIT I1 (RSHU I16 (MEM I16 (HOLE 1)) (INTCONST I8 15))) (CONVIT I1 (MEM I16 (HOLE 1)))) (REG I1 OF)) ;undefined (REG I1 OF))))) ;ROR r16,CL (DEFINST ("ROR ?1w,CL" "ROR %CL,%?1w" "ROR ?1w,CL") (PARALLEL (SET (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (BOR I16 (RSHU I16 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 15))) (LSH I16 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (SUB I8 (INTCONST I8 16) (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 15)))))) (SET (REG I1 CF) (IFTHENELSE I1 (TSTNE I1 (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 15)) (INTCONST I8 0)) (CONVIT I1 (RSHU I16 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (SUB I8 (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 15)) (INTCONST I8 1)))) (REG I1 CF))) (SET (REG I1 OF) (IFTHENELSE I1 (TSTLEU I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 1)) (IFTHENELSE I1 (TSTEQ I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 1)) (BXOR I1 (CONVIT I1 (RSHU I16 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (INTCONST I8 15))) (CONVIT I1 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0))) (REG I1 OF)) ;undefined (REG I1 OF))))) ;ROR m16,CL (DEFINST ("ROR WORD PTR ??1s,CL" "ROR %CL,??1s" "ROR WORD PTR ??1s,CL") (PARALLEL (SET (MEM I16 (HOLE 1)) (BOR I16 (RSHU I16 (MEM I16 (HOLE 1)) (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 15))) (LSH I16 (MEM I16 (HOLE 1)) (SUB I8 (INTCONST I8 16) (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 15)))))) (SET (REG I1 CF) (IFTHENELSE I1 (TSTNE I1 (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 15)) (INTCONST I8 0)) (CONVIT I1 (RSHU I16 (MEM I16 (HOLE 1)) (SUB I8 (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 15)) (INTCONST I8 1)))) (REG I1 CF))) (SET (REG I1 OF) (IFTHENELSE I1 (TSTLEU I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 1)) (IFTHENELSE I1 (TSTEQ I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 1)) (BXOR I1 (CONVIT I1 (RSHU I16 (MEM I16 (HOLE 1)) (INTCONST I8 15))) (CONVIT I1 (MEM I16 (HOLE 1)))) (REG I1 OF)) ;undefined (REG I1 OF))))) ;ROR r32,imm8 (DEFINST ("ROR ?1r,?2c" "ROR $?2c,%?1r" "ROR ?1r,?2c") (PARALLEL (SET (REG I32 (HOLE 1 R32)) (BOR I32 (RSHU I32 (REG I32 (HOLE 1 R32)) (BAND I8 (INTCONST I8 (HOLE 2)) (INTCONST I8 31))) (LSH I32 (REG I32 (HOLE 1 R32)) (SUB I8 (INTCONST I8 32) (BAND I8 (INTCONST I8 (HOLE 2)) (INTCONST I8 31)))))) (SET (REG I1 CF) (IFTHENELSE I1 (TSTNE I1 (BAND I8 (INTCONST I8 (HOLE 2)) (INTCONST I8 31)) (INTCONST I8 0)) (CONVIT I1 (RSHU I32 (REG I32 (HOLE 1 R32)) (SUB I8 (BAND I8 (INTCONST I8 (HOLE 2)) (INTCONST I8 31)) (INTCONST I8 1)))) (REG I1 CF))) (SET (REG I1 OF) (IFTHENELSE I1 (TSTLEU I1 (INTCONST I8 (HOLE 2)) (INTCONST I8 1)) (IFTHENELSE I1 (TSTEQ I1 (INTCONST I8 (HOLE 2)) (INTCONST I8 1)) (BXOR I1 (CONVIT I1 (RSHU I32 (REG I32 (HOLE 1 R32)) (INTCONST I8 31))) (CONVIT I1 (REG I32 (HOLE 1 R32)))) (REG I1 OF)) ;undefined (REG I1 OF))))) ;ROR m32,imm8 (DEFINST ("ROR DWORD PTR ??1s,?2c" "RORL $?2c,??1s" "ROR DWORD PTR ??1s,?2c") (PARALLEL (SET (MEM I32 (HOLE 1)) (BOR I32 (RSHU I32 (MEM I32 (HOLE 1)) (BAND I8 (INTCONST I8 (HOLE 2)) (INTCONST I8 31))) (LSH I32 (MEM I32 (HOLE 1)) (SUB I8 (INTCONST I8 32) (BAND I8 (INTCONST I8 (HOLE 2)) (INTCONST I8 31)))))) (SET (REG I1 CF) (IFTHENELSE I1 (TSTNE I1 (BAND I8 (INTCONST I8 (HOLE 2)) (INTCONST I8 31)) (INTCONST I8 0)) (CONVIT I1 (RSHU I32 (MEM I32 (HOLE 1)) (SUB I8 (BAND I8 (INTCONST I8 (HOLE 2)) (INTCONST I8 31)) (INTCONST I8 1)))) (REG I1 CF))) (SET (REG I1 OF) (IFTHENELSE I1 (TSTLEU I1 (INTCONST I8 (HOLE 2)) (INTCONST I8 1)) (IFTHENELSE I1 (TSTEQ I1 (INTCONST I8 (HOLE 2)) (INTCONST I8 1)) (BXOR I1 (CONVIT I1 (RSHU I32 (MEM I32 (HOLE 1)) (INTCONST I8 31))) (CONVIT I1 (MEM I32 (HOLE 1)))) (REG I1 OF)) ;undefined (REG I1 OF))))) ;ROR r32,CL (DEFINST ("ROR ?1r,CL" "ROR %CL,%?1r" "ROR ?1r,CL") (PARALLEL (SET (REG I32 (HOLE 1 R32)) (BOR I32 (RSHU I32 (REG I32 (HOLE 1 R32)) (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31))) (LSH I32 (REG I32 (HOLE 1 R32)) (SUB I8 (INTCONST I8 32) (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31)))))) (SET (REG I1 CF) (IFTHENELSE I1 (TSTNE I1 (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31)) (INTCONST I8 0)) (CONVIT I1 (RSHU I32 (REG I32 (HOLE 1 R32)) (SUB I8 (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31)) (INTCONST I8 1)))) (REG I1 CF))) (SET (REG I1 OF) (IFTHENELSE I1 (TSTLEU I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 1)) (IFTHENELSE I1 (TSTEQ I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 1)) (BXOR I1 (CONVIT I1 (RSHU I32 (REG I32 (HOLE 1 R32)) (INTCONST I8 31))) (CONVIT I1 (REG I32 (HOLE 1 R32)))) (REG I1 OF)) ;undefined (REG I1 OF))))) ;ROR m32,CL (DEFINST ("ROR DWORD PTR ??1s,CL" "ROR %CL,??1s" "ROR DWORD PTR ??1s,CL") (PARALLEL (SET (MEM I32 (HOLE 1)) (BOR I32 (RSHU I32 (MEM I32 (HOLE 1)) (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31))) (LSH I32 (MEM I32 (HOLE 1)) (SUB I8 (INTCONST I8 32) (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31)))))) (SET (REG I1 CF) (IFTHENELSE I1 (TSTNE I1 (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31)) (INTCONST I8 0)) (CONVIT I1 (RSHU I32 (MEM I32 (HOLE 1)) (SUB I8 (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31)) (INTCONST I8 1)))) (REG I1 CF))) (SET (REG I1 OF) (IFTHENELSE I1 (TSTLEU I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 1)) (IFTHENELSE I1 (TSTEQ I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 1)) (BXOR I1 (CONVIT I1 (RSHU I32 (MEM I32 (HOLE 1)) (INTCONST I8 31))) (CONVIT I1 (MEM I32 (HOLE 1)))) (REG I1 OF)) ;undefined (REG I1 OF))))) ;SAL(shift arithmetic left) ;SAL r8,imm8 (DEFINST ("SAL ?1l,?2c" "SAL $?2c,%?1l" "SAL ?1l,?2c") (PARALLEL (SET (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (LSH I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (BAND I8 (INTCONST I8 (HOLE 2)) (INTCONST I8 31)))) (SET (REG I1 CF) (IFTHENELSE I1 (TSTNE I1 (INTCONST I8 (HOLE 2)) (INTCONST I8 0)) (CONVIT I1 (RSHU I8 (LSH I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (SUB I8 (BAND I8 (INTCONST I8 (HOLE 2)) (INTCONST I8 31)) (INTCONST I8 1))) (INTCONST I8 7))) (REG I1 CF))) (SET (REG I1 PF) (IFTHENELSE I1 (TSTNE I1 (INTCONST I8 (HOLE 2)) (INTCONST I8 0)) (PARITY I1 (LSH I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (BAND I8 (INTCONST I8 (HOLE 2)) (INTCONST I8 31)))) (REG I1 PF))) (CLOBBER (REG I1 AF)) (SET (REG I1 ZF) (IFTHENELSE I1 (TSTNE I1 (INTCONST I8 (HOLE 2)) (INTCONST I8 0)) (TSTEQ I1 (LSH I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (BAND I8 (INTCONST I8 (HOLE 2)) (INTCONST I8 31))) (INTCONST I8 0)) (REG I1 ZF))) (SET (REG I1 SF) (IFTHENELSE I1 (TSTNE I1 (INTCONST I8 (HOLE 2)) (INTCONST I8 0)) (TSTLTS I1 (LSH I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (BAND I8 (INTCONST I8 (HOLE 2)) (INTCONST I8 31))) (INTCONST I8 0)) (REG I1 SF))) (SET (REG I1 OF) (IFTHENELSE I1 (TSTLEU I1 (INTCONST I8 (HOLE 2)) (INTCONST I8 1)) (IFTHENELSE I1 (TSTEQ I1 (INTCONST I8 (HOLE 2)) (INTCONST I8 1)) (BXOR I1 (CONVIT I1 (RSHU I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (INTCONST I8 7))) (CONVIT I1 (RSHU I8 (LSH I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (INTCONST I8 1)) (INTCONST I8 7)))) (REG I1 OF)) ;undefined (REG I1 OF))))) (DEFINST ("SAL ?1h,?2c" "SAL $?2c,%?1h" "SAL ?1h,?2c") (PARALLEL (SET (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (LSH I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (BAND I8 (INTCONST I8 (HOLE 2)) (INTCONST I8 31)))) (SET (REG I1 CF) (IFTHENELSE I1 (TSTNE I1 (INTCONST I8 (HOLE 2)) (INTCONST I8 0)) (CONVIT I1 (RSHU I8 (LSH I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (SUB I8 (BAND I8 (INTCONST I8 (HOLE 2)) (INTCONST I8 31)) (INTCONST I8 1))) (INTCONST I8 7))) (REG I1 CF))) (SET (REG I1 PF) (IFTHENELSE I1 (TSTNE I1 (INTCONST I8 (HOLE 2)) (INTCONST I8 0)) (PARITY I1 (LSH I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (BAND I8 (INTCONST I8 (HOLE 2)) (INTCONST I8 31)))) (REG I1 PF))) (CLOBBER (REG I1 AF)) (SET (REG I1 ZF) (IFTHENELSE I1 (TSTNE I1 (INTCONST I8 (HOLE 2)) (INTCONST I8 0)) (TSTEQ I1 (LSH I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (BAND I8 (INTCONST I8 (HOLE 2)) (INTCONST I8 31))) (INTCONST I8 0)) (REG I1 ZF))) (SET (REG I1 SF) (IFTHENELSE I1 (TSTNE I1 (INTCONST I8 (HOLE 2)) (INTCONST I8 0)) (TSTLTS I1 (LSH I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (BAND I8 (INTCONST I8 (HOLE 2)) (INTCONST I8 31))) (INTCONST I8 0)) (REG I1 SF))) (SET (REG I1 OF) (IFTHENELSE I1 (TSTLEU I1 (INTCONST I8 (HOLE 2)) (INTCONST I8 1)) (IFTHENELSE I1 (TSTEQ I1 (INTCONST I8 (HOLE 2)) (INTCONST I8 1)) (BXOR I1 (CONVIT I1 (RSHU I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (INTCONST I8 7))) (CONVIT I1 (RSHU I8 (LSH I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (INTCONST I8 1)) (INTCONST I8 7)))) (REG I1 OF)) ;undefined (REG I1 OF))))) ;SAL m8,imm8 (DEFINST ("SAL BYTE PTR ??1s,?2c" "SALB $?2c,??1s" "SAL BYTE PTR ??1s,?2c") (PARALLEL (SET (MEM I8 (HOLE 1)) (LSH I8 (MEM I8 (HOLE 1)) (BAND I8 (INTCONST I8 (HOLE 2)) (INTCONST I8 31)))) (SET (REG I1 CF) (IFTHENELSE I1 (TSTNE I1 (INTCONST I8 (HOLE 2)) (INTCONST I8 0)) (CONVIT I1 (RSHU I8 (LSH I8 (MEM I8 (HOLE 1)) (SUB I8 (BAND I8 (INTCONST I8 (HOLE 2)) (INTCONST I8 31)) (INTCONST I8 1))) (INTCONST I8 7))) (REG I1 CF))) (SET (REG I1 PF) (IFTHENELSE I1 (TSTNE I1 (INTCONST I8 (HOLE 2)) (INTCONST I8 0)) (PARITY I1 (LSH I8 (MEM I8 (HOLE 1)) (BAND I8 (INTCONST I8 (HOLE 2)) (INTCONST I8 31)))) (REG I1 PF))) (CLOBBER (REG I1 AF)) (SET (REG I1 ZF) (IFTHENELSE I1 (TSTNE I1 (INTCONST I8 (HOLE 2)) (INTCONST I8 0)) (TSTEQ I1 (LSH I8 (MEM I8 (HOLE 1)) (BAND I8 (INTCONST I8 (HOLE 2)) (INTCONST I8 31))) (INTCONST I8 0)) (REG I1 ZF))) (SET (REG I1 SF) (IFTHENELSE I1 (TSTNE I1 (INTCONST I8 (HOLE 2)) (INTCONST I8 0)) (TSTLTS I1 (LSH I8 (MEM I8 (HOLE 1)) (BAND I8 (INTCONST I8 (HOLE 2)) (INTCONST I8 31))) (INTCONST I8 0)) (REG I1 SF))) (SET (REG I1 OF) (IFTHENELSE I1 (TSTLEU I1 (INTCONST I8 (HOLE 2)) (INTCONST I8 1)) (IFTHENELSE I1 (TSTEQ I1 (INTCONST I8 (HOLE 2)) (INTCONST I8 1)) (BXOR I1 (CONVIT I1 (RSHU I8 (MEM I8 (HOLE 1)) (INTCONST I8 7))) (CONVIT I1 (RSHU I8 (LSH I8 (MEM I8 (HOLE 1)) (INTCONST I8 1)) (INTCONST I8 7)))) (REG I1 OF)) ;undefined (REG I1 OF))))) ;SAL r8,CL (DEFINST ("SAL ?1l,CL" "SAL %CL,%?1l" "SAL ?1l,CL") (PARALLEL (SET (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (LSH I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31)))) (SET (REG I1 CF) (IFTHENELSE I1 (TSTNE I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 0)) (CONVIT I1 (RSHU I8 (LSH I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (SUB I8 (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31)) (INTCONST I8 1))) (INTCONST I8 7))) (REG I1 CF))) (SET (REG I1 PF) (IFTHENELSE I1 (TSTNE I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 0)) (PARITY I1 (LSH I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31)))) (REG I1 PF))) (CLOBBER (REG I1 AF)) (SET (REG I1 ZF) (IFTHENELSE I1 (TSTNE I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 0)) (TSTEQ I1 (LSH I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31))) (INTCONST I8 0)) (REG I1 ZF))) (SET (REG I1 SF) (IFTHENELSE I1 (TSTNE I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 0)) (TSTLTS I1 (LSH I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31))) (INTCONST I8 0)) (REG I1 SF))) (SET (REG I1 OF) (IFTHENELSE I1 (TSTLEU I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 1)) (IFTHENELSE I1 (TSTEQ I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 1)) (BXOR I1 (CONVIT I1 (RSHU I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (INTCONST I8 7))) (CONVIT I1 (RSHU I8 (LSH I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (INTCONST I8 1)) (INTCONST I8 7)))) (REG I1 OF)) ;undefined (REG I1 OF))))) (DEFINST ("SAL ?1h,CL" "SAL %CL,%?1h" "SAL ?1h,CL") (PARALLEL (SET (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (LSH I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31)))) (SET (REG I1 CF) (IFTHENELSE I1 (TSTNE I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 0)) (CONVIT I1 (RSHU I8 (LSH I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (SUB I8 (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31)) (INTCONST I8 1))) (INTCONST I8 7))) (REG I1 CF))) (SET (REG I1 PF) (IFTHENELSE I1 (TSTNE I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 0)) (PARITY I1 (LSH I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31)))) (REG I1 PF))) (CLOBBER (REG I1 AF)) (SET (REG I1 ZF) (IFTHENELSE I1 (TSTNE I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 0)) (TSTEQ I1 (LSH I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31))) (INTCONST I8 0)) (REG I1 ZF))) (SET (REG I1 SF) (IFTHENELSE I1 (TSTNE I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 0)) (TSTLTS I1 (LSH I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31))) (INTCONST I8 0)) (REG I1 SF))) (SET (REG I1 OF) (IFTHENELSE I1 (TSTLEU I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 1)) (IFTHENELSE I1 (TSTEQ I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 1)) (BXOR I1 (CONVIT I1 (RSHU I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (INTCONST I8 7))) (CONVIT I1 (RSHU I8 (LSH I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (INTCONST I8 1)) (INTCONST I8 7)))) (REG I1 OF)) ;undefined (REG I1 OF))))) ;SAL m8,CL (DEFINST ("SAL BYTE PTR ??1s,CL" "SAL %CL,??1s" "SAL BYTE PTR ??1s,CL") (PARALLEL (SET (MEM I8 (HOLE 1)) (LSH I8 (MEM I8 (HOLE 1)) (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31)))) (SET (REG I1 CF) (IFTHENELSE I1 (TSTNE I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 0)) (CONVIT I1 (RSHU I8 (LSH I8 (MEM I8 (HOLE 1)) (SUB I8 (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31)) (INTCONST I8 1))) (INTCONST I8 7))) (REG I1 CF))) (SET (REG I1 PF) (IFTHENELSE I1 (TSTNE I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 0)) (PARITY I1 (LSH I8 (MEM I8 (HOLE 1)) (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31)))) (REG I1 PF))) (CLOBBER (REG I1 AF)) (SET (REG I1 ZF) (IFTHENELSE I1 (TSTNE I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 0)) (TSTEQ I1 (LSH I8 (MEM I8 (HOLE 1)) (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31))) (INTCONST I8 0)) (REG I1 ZF))) (SET (REG I1 SF) (IFTHENELSE I1 (TSTNE I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 0)) (TSTLTS I1 (LSH I8 (MEM I8 (HOLE 1)) (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31))) (INTCONST I8 0)) (REG I1 SF))) (SET (REG I1 OF) (IFTHENELSE I1 (TSTLEU I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 1)) (IFTHENELSE I1 (TSTEQ I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 1)) (BXOR I1 (CONVIT I1 (RSHU I8 (MEM I8 (HOLE 1)) (INTCONST I8 7))) (CONVIT I1 (RSHU I8 (LSH I8 (MEM I8 (HOLE 1)) (INTCONST I8 1)) (INTCONST I8 7)))) (REG I1 OF)) ;undefined (REG I1 OF))))) ;SAL r16,imm8 (DEFINST ("SAL ?1w,?2c" "SAL $?2c,%?1w" "SAL ?1w,?2c") (PARALLEL (SET (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (LSH I16 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (BAND I8 (INTCONST I8 (HOLE 2)) (INTCONST I8 31)))) (SET (REG I1 CF) (IFTHENELSE I1 (TSTNE I1 (INTCONST I8 (HOLE 2)) (INTCONST I8 0)) (CONVIT I1 (RSHU I16 (LSH I16 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (SUB I8 (BAND I8 (INTCONST I8 (HOLE 2)) (INTCONST I8 31)) (INTCONST I8 1))) (INTCONST I8 15))) (REG I1 CF))) (SET (REG I1 PF) (IFTHENELSE I1 (TSTNE I1 (INTCONST I8 (HOLE 2)) (INTCONST I8 0)) (PARITY I1 (CONVIT I8 (LSH I16 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (BAND I8 (INTCONST I8 (HOLE 2)) (INTCONST I8 31))))) (REG I1 PF))) (CLOBBER (REG I1 AF)) (SET (REG I1 ZF) (IFTHENELSE I1 (TSTNE I1 (INTCONST I8 (HOLE 2)) (INTCONST I8 0)) (TSTEQ I1 (LSH I16 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (BAND I8 (INTCONST I8 (HOLE 2)) (INTCONST I8 31))) (INTCONST I16 0)) (REG I1 ZF))) (SET (REG I1 SF) (IFTHENELSE I1 (TSTNE I1 (INTCONST I8 (HOLE 2)) (INTCONST I8 0)) (TSTLTS I1 (LSH I16 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (BAND I8 (INTCONST I8 (HOLE 2)) (INTCONST I8 31))) (INTCONST I16 0)) (REG I1 SF))) (SET (REG I1 OF) (IFTHENELSE I1 (TSTLEU I1 (INTCONST I8 (HOLE 2)) (INTCONST I8 1)) (IFTHENELSE I1 (TSTEQ I1 (INTCONST I8 (HOLE 2)) (INTCONST I8 1)) (BXOR I1 (CONVIT I1 (RSHU I16 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (INTCONST I8 15))) (CONVIT I1 (RSHU I16 (LSH I16 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (INTCONST I8 1)) (INTCONST I8 15)))) (REG I1 OF)) ;undefined (REG I1 OF))))) ;SAL m16,imm8 (DEFINST ("SAL WORD PTR ??1s,?2c" "SALW $?2c,??1s" "SAL WORD PTR ??1s,?2c") (PARALLEL (SET (MEM I16 (HOLE 1)) (LSH I16 (MEM I16 (HOLE 1)) (BAND I8 (INTCONST I8 (HOLE 2)) (INTCONST I8 31)))) (SET (REG I1 CF) (IFTHENELSE I1 (TSTNE I1 (INTCONST I8 (HOLE 2)) (INTCONST I8 0)) (CONVIT I1 (RSHU I16 (LSH I16 (MEM I16 (HOLE 1)) (SUB I8 (BAND I8 (INTCONST I8 (HOLE 2)) (INTCONST I8 31)) (INTCONST I8 1))) (INTCONST I8 15))) (REG I1 CF))) (SET (REG I1 PF) (IFTHENELSE I1 (TSTNE I1 (INTCONST I8 (HOLE 2)) (INTCONST I8 0)) (PARITY I1 (CONVIT I8 (LSH I16 (MEM I16 (HOLE 1)) (BAND I8 (INTCONST I8 (HOLE 2)) (INTCONST I8 31))))) (REG I1 PF))) (CLOBBER (REG I1 AF)) (SET (REG I1 ZF) (IFTHENELSE I1 (TSTNE I1 (INTCONST I8 (HOLE 2)) (INTCONST I8 0)) (TSTEQ I1 (LSH I16 (MEM I16 (HOLE 1)) (BAND I8 (INTCONST I8 (HOLE 2)) (INTCONST I8 31))) (INTCONST I16 0)) (REG I1 ZF))) (SET (REG I1 SF) (IFTHENELSE I1 (TSTNE I1 (INTCONST I8 (HOLE 2)) (INTCONST I8 0)) (TSTLTS I1 (LSH I16 (MEM I16 (HOLE 1)) (BAND I8 (INTCONST I8 (HOLE 2)) (INTCONST I8 31))) (INTCONST I16 0)) (REG I1 SF))) (SET (REG I1 OF) (IFTHENELSE I1 (TSTLEU I1 (INTCONST I8 (HOLE 2)) (INTCONST I8 1)) (IFTHENELSE I1 (TSTEQ I1 (INTCONST I8 (HOLE 2)) (INTCONST I8 1)) (BXOR I1 (CONVIT I1 (RSHU I16 (MEM I16 (HOLE 1)) (INTCONST I8 15))) (CONVIT I1 (RSHU I16 (LSH I16 (MEM I16 (HOLE 1)) (INTCONST I8 1)) (INTCONST I8 15)))) (REG I1 OF)) ;undefined (REG I1 OF))))) ;SAL r16,CL (DEFINST ("SAL ?1w,CL" "SAL %CL,%?1w" "SAL ?1w,CL") (PARALLEL (SET (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (LSH I16 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31)))) (SET (REG I1 CF) (IFTHENELSE I1 (TSTNE I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 0)) (CONVIT I1 (RSHU I16 (LSH I16 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (SUB I8 (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31)) (INTCONST I8 1))) (INTCONST I8 15))) (REG I1 CF))) (SET (REG I1 PF) (IFTHENELSE I1 (TSTNE I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 0)) (PARITY I1 (CONVIT I8 (LSH I16 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31))))) (REG I1 PF))) (CLOBBER (REG I1 AF)) (SET (REG I1 ZF) (IFTHENELSE I1 (TSTNE I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 0)) (TSTEQ I1 (LSH I16 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31))) (INTCONST I16 0)) (REG I1 ZF))) (SET (REG I1 SF) (IFTHENELSE I1 (TSTNE I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 0)) (TSTLTS I1 (LSH I16 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31))) (INTCONST I16 0)) (REG I1 SF))) (SET (REG I1 OF) (IFTHENELSE I1 (TSTLEU I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 1)) (IFTHENELSE I1 (TSTEQ I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 1)) (BXOR I1 (CONVIT I1 (RSHU I16 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (INTCONST I8 15))) (CONVIT I1 (RSHU I16 (LSH I16 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (INTCONST I8 1)) (INTCONST I8 15)))) (REG I1 OF)) ;undefined (REG I1 OF))))) ;SAL m16,CL (DEFINST ("SAL WORD PTR ??1s,CL" "SAL %CL,??1s" "SAL WORD PTR ??1s,CL") (PARALLEL (SET (MEM I16 (HOLE 1)) (LSH I16 (MEM I16 (HOLE 1)) (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31)))) (SET (REG I1 CF) (IFTHENELSE I1 (TSTNE I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 0)) (CONVIT I1 (RSHU I16 (LSH I16 (MEM I16 (HOLE 1)) (SUB I8 (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31)) (INTCONST I8 1))) (INTCONST I8 15))) (REG I1 CF))) (SET (REG I1 PF) (IFTHENELSE I1 (TSTNE I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 0)) (PARITY I1 (CONVIT I8 (LSH I16 (MEM I16 (HOLE 1)) (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31))))) (REG I1 PF))) (CLOBBER (REG I1 AF)) (SET (REG I1 ZF) (IFTHENELSE I1 (TSTNE I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 0)) (TSTEQ I1 (LSH I16 (MEM I16 (HOLE 1)) (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31))) (INTCONST I16 0)) (REG I1 ZF))) (SET (REG I1 SF) (IFTHENELSE I1 (TSTNE I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 0)) (TSTLTS I1 (LSH I16 (MEM I16 (HOLE 1)) (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31))) (INTCONST I16 0)) (REG I1 SF))) (SET (REG I1 OF) (IFTHENELSE I1 (TSTLEU I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 1)) (IFTHENELSE I1 (TSTEQ I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 1)) (BXOR I1 (CONVIT I1 (RSHU I16 (MEM I16 (HOLE 1)) (INTCONST I8 15))) (CONVIT I1 (RSHU I16 (LSH I16 (MEM I16 (HOLE 1)) (INTCONST I8 1)) (INTCONST I8 15)))) (REG I1 OF)) ;undefined (REG I1 OF))))) ;SAL r32,imm8 (DEFINST ("SAL ?1r,?2c" "SAL $?2c,%?1r" "SAL ?1r,?2c") (PARALLEL (SET (REG I32 (HOLE 1 R32)) (LSH I32 (REG I32 (HOLE 1 R32)) (BAND I8 (INTCONST I8 (HOLE 2)) (INTCONST I8 31)))) (SET (REG I1 CF) (IFTHENELSE I1 (TSTNE I1 (INTCONST I8 (HOLE 2)) (INTCONST I8 0)) (CONVIT I1 (RSHU I32 (LSH I32 (REG I32 (HOLE 1 R32)) (SUB I8 (BAND I8 (INTCONST I8 (HOLE 2)) (INTCONST I8 31)) (INTCONST I8 1))) (INTCONST I8 31))) (REG I1 CF))) (SET (REG I1 PF) (IFTHENELSE I1 (TSTNE I1 (INTCONST I8 (HOLE 2)) (INTCONST I8 0)) (PARITY I1 (CONVIT I8 (LSH I32 (REG I32 (HOLE 1 R32)) (BAND I8 (INTCONST I8 (HOLE 2)) (INTCONST I8 31))))) (REG I1 PF))) (CLOBBER (REG I1 AF)) (SET (REG I1 ZF) (IFTHENELSE I1 (TSTNE I1 (INTCONST I8 (HOLE 2)) (INTCONST I8 0)) (TSTEQ I1 (LSH I32 (REG I32 (HOLE 1 R32)) (BAND I8 (INTCONST I8 (HOLE 2)) (INTCONST I8 31))) (INTCONST I32 0)) (REG I1 ZF))) (SET (REG I1 SF) (IFTHENELSE I1 (TSTNE I1 (INTCONST I8 (HOLE 2)) (INTCONST I8 0)) (TSTLTS I1 (LSH I32 (REG I32 (HOLE 1 R32)) (BAND I8 (INTCONST I8 (HOLE 2)) (INTCONST I8 31))) (INTCONST I32 0)) (REG I1 SF))) (SET (REG I1 OF) (IFTHENELSE I1 (TSTLEU I1 (INTCONST I8 (HOLE 2)) (INTCONST I8 1)) (IFTHENELSE I1 (TSTEQ I1 (INTCONST I8 (HOLE 2)) (INTCONST I8 1)) (BXOR I1 (CONVIT I1 (RSHU I32 (REG I32 (HOLE 1 R32)) (INTCONST I8 31))) (CONVIT I1 (RSHU I32 (LSH I32 (REG I32 (HOLE 1 R32)) (INTCONST I8 1)) (INTCONST I8 31)))) (REG I1 OF)) ;undefined (REG I1 OF))))) ;SAL m32,imm8 (DEFINST ("SAL DWORD PTR ??1s,?2c" "SALL $?2c,??1s" "SAL DWORD PTR ??1s,?2c") (PARALLEL (SET (MEM I32 (HOLE 1)) (LSH I32 (MEM I32 (HOLE 1)) (BAND I8 (INTCONST I8 (HOLE 2)) (INTCONST I8 31)))) (SET (REG I1 CF) (IFTHENELSE I1 (TSTNE I1 (INTCONST I8 (HOLE 2)) (INTCONST I8 0)) (CONVIT I1 (RSHU I32 (LSH I32 (MEM I32 (HOLE 1)) (SUB I8 (BAND I8 (INTCONST I8 (HOLE 2)) (INTCONST I8 31)) (INTCONST I8 1))) (INTCONST I8 31))) (REG I1 CF))) (SET (REG I1 PF) (IFTHENELSE I1 (TSTNE I1 (INTCONST I8 (HOLE 2)) (INTCONST I8 0)) (PARITY I1 (CONVIT I8 (LSH I32 (MEM I32 (HOLE 1)) (BAND I8 (INTCONST I8 (HOLE 2)) (INTCONST I8 31))))) (REG I1 PF))) (CLOBBER (REG I1 AF)) (SET (REG I1 ZF) (IFTHENELSE I1 (TSTNE I1 (INTCONST I8 (HOLE 2)) (INTCONST I8 0)) (TSTEQ I1 (LSH I32 (MEM I32 (HOLE 1)) (BAND I8 (INTCONST I8 (HOLE 2)) (INTCONST I8 31))) (INTCONST I32 0)) (REG I1 ZF))) (SET (REG I1 SF) (IFTHENELSE I1 (TSTNE I1 (INTCONST I8 (HOLE 2)) (INTCONST I8 0)) (TSTLTS I1 (LSH I32 (MEM I32 (HOLE 1)) (BAND I8 (INTCONST I8 (HOLE 2)) (INTCONST I8 31))) (INTCONST I32 0)) (REG I1 SF))) (SET (REG I1 OF) (IFTHENELSE I1 (TSTLEU I1 (INTCONST I8 (HOLE 2)) (INTCONST I8 1)) (IFTHENELSE I1 (TSTEQ I1 (INTCONST I8 (HOLE 2)) (INTCONST I8 1)) (BXOR I1 (CONVIT I1 (RSHU I32 (MEM I32 (HOLE 1)) (INTCONST I8 31))) (CONVIT I1 (RSHU I32 (LSH I32 (MEM I32 (HOLE 1)) (INTCONST I8 1)) (INTCONST I8 31)))) (REG I1 OF)) ;undefined (REG I1 OF))))) ;SAL r32,CL (DEFINST ("SAL ?1r,CL" "SAL %CL,%?1r" "SAL ?1r,CL") (PARALLEL (SET (REG I32 (HOLE 1 R32)) (LSH I32 (REG I32 (HOLE 1 R32)) (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31)))) (SET (REG I1 CF) (IFTHENELSE I1 (TSTNE I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 0)) (CONVIT I1 (RSHU I32 (LSH I32 (REG I32 (HOLE 1 R32)) (SUB I8 (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31)) (INTCONST I8 1))) (INTCONST I8 31))) (REG I1 CF))) (SET (REG I1 PF) (IFTHENELSE I1 (TSTNE I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 0)) (PARITY I1 (CONVIT I8 (LSH I32 (REG I32 (HOLE 1 R32)) (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31))))) (REG I1 PF))) (CLOBBER (REG I1 AF)) (SET (REG I1 ZF) (IFTHENELSE I1 (TSTNE I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 0)) (TSTEQ I1 (LSH I32 (REG I32 (HOLE 1 R32)) (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31))) (INTCONST I32 0)) (REG I1 ZF))) (SET (REG I1 SF) (IFTHENELSE I1 (TSTNE I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 0)) (TSTLTS I1 (LSH I32 (REG I32 (HOLE 1 R32)) (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31))) (INTCONST I32 0)) (REG I1 SF))) (SET (REG I1 OF) (IFTHENELSE I1 (TSTLEU I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 1)) (IFTHENELSE I1 (TSTEQ I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 1)) (BXOR I1 (CONVIT I1 (RSHU I32 (REG I32 (HOLE 1 R32)) (INTCONST I8 31))) (CONVIT I1 (RSHU I32 (LSH I32 (REG I32 (HOLE 1 R32)) (INTCONST I8 1)) (INTCONST I8 31)))) (REG I1 OF)) ;undefined (REG I1 OF))))) ;SAL m32,CL (DEFINST ("SAL DWORD PTR ??1s,CL" "SAL %CL,??1s" "SAL DWORD PTR ??1s,CL") (PARALLEL (SET (MEM I32 (HOLE 1)) (LSH I32 (MEM I32 (HOLE 1)) (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31)))) (SET (REG I1 CF) (IFTHENELSE I1 (TSTNE I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 0)) (CONVIT I1 (RSHU I32 (LSH I32 (MEM I32 (HOLE 1)) (SUB I8 (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31)) (INTCONST I8 1))) (INTCONST I8 31))) (REG I1 CF))) (SET (REG I1 PF) (IFTHENELSE I1 (TSTNE I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 0)) (PARITY I1 (CONVIT I8 (LSH I32 (MEM I32 (HOLE 1)) (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31))))) (REG I1 PF))) (CLOBBER (REG I1 AF)) (SET (REG I1 ZF) (IFTHENELSE I1 (TSTNE I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 0)) (TSTEQ I1 (LSH I32 (MEM I32 (HOLE 1)) (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31))) (INTCONST I32 0)) (REG I1 ZF))) (SET (REG I1 SF) (IFTHENELSE I1 (TSTNE I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 0)) (TSTLTS I1 (LSH I32 (MEM I32 (HOLE 1)) (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31))) (INTCONST I32 0)) (REG I1 SF))) (SET (REG I1 OF) (IFTHENELSE I1 (TSTLEU I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 1)) (IFTHENELSE I1 (TSTEQ I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 1)) (BXOR I1 (CONVIT I1 (RSHU I32 (MEM I32 (HOLE 1)) (INTCONST I8 31))) (CONVIT I1 (RSHU I32 (LSH I32 (MEM I32 (HOLE 1)) (INTCONST I8 1)) (INTCONST I8 31)))) (REG I1 OF)) ;undefined (REG I1 OF))))) ;SAR(shift arithmetic right) ;SAR r8,imm8 (DEFINST ("SAR ?1l,?2c" "SAR $?2c,%?1l" "SAR ?1l,?2c") (PARALLEL (SET (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (RSHS I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (BAND I8 (INTCONST I8 (HOLE 2)) (INTCONST I8 31)))) (SET (REG I1 CF) (IFTHENELSE I1 (TSTNE I1 (INTCONST I8 (HOLE 2)) (INTCONST I8 0)) (CONVIT I1 (RSHS I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (SUB I8 (BAND I8 (INTCONST I8 (HOLE 2)) (INTCONST I8 31)) (INTCONST I8 1)))) (REG I1 CF))) (SET (REG I1 PF) (IFTHENELSE I1 (TSTNE I1 (INTCONST I8 (HOLE 2)) (INTCONST I8 0)) (PARITY I1 (RSHS I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (BAND I8 (INTCONST I8 (HOLE 2)) (INTCONST I8 31)))) (REG I1 PF))) (CLOBBER (REG I1 AF)) (SET (REG I1 ZF) (IFTHENELSE I1 (TSTNE I1 (INTCONST I8 (HOLE 2)) (INTCONST I8 0)) (TSTEQ I1 (RSHS I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (BAND I8 (INTCONST I8 (HOLE 2)) (INTCONST I8 31))) (INTCONST I8 0)) (REG I1 ZF))) (SET (REG I1 SF) (IFTHENELSE I1 (TSTNE I1 (INTCONST I8 (HOLE 2)) (INTCONST I8 0)) (TSTLTS I1 (RSHS I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (BAND I8 (INTCONST I8 (HOLE 2)) (INTCONST I8 31))) (INTCONST I8 0)) (REG I1 SF))) (SET (REG I1 OF) (IFTHENELSE I1 (TSTLEU I1 (INTCONST I8 (HOLE 2)) (INTCONST I8 1)) (IFTHENELSE I1 (TSTEQ I1 (INTCONST I8 (HOLE 2)) (INTCONST I8 1)) (INTCONST I1 #b0) (REG I1 OF)) ;undefined (REG I1 OF))))) (DEFINST ("SAR ?1h,?2c" "SAR $?2c,%?1h" "SAR ?1h,?2c") (PARALLEL (SET (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (RSHS I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (BAND I8 (INTCONST I8 (HOLE 2)) (INTCONST I8 31)))) (SET (REG I1 CF) (IFTHENELSE I1 (TSTNE I1 (INTCONST I8 (HOLE 2)) (INTCONST I8 0)) (CONVIT I1 (RSHS I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (SUB I8 (BAND I8 (INTCONST I8 (HOLE 2)) (INTCONST I8 31)) (INTCONST I8 1)))) (REG I1 CF))) (SET (REG I1 PF) (IFTHENELSE I1 (TSTNE I1 (INTCONST I8 (HOLE 2)) (INTCONST I8 0)) (PARITY I1 (RSHS I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (BAND I8 (INTCONST I8 (HOLE 2)) (INTCONST I8 31)))) (REG I1 PF))) (CLOBBER (REG I1 AF)) (SET (REG I1 ZF) (IFTHENELSE I1 (TSTNE I1 (INTCONST I8 (HOLE 2)) (INTCONST I8 0)) (TSTEQ I1 (RSHS I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (BAND I8 (INTCONST I8 (HOLE 2)) (INTCONST I8 31))) (INTCONST I8 0)) (REG I1 ZF))) (SET (REG I1 SF) (IFTHENELSE I1 (TSTNE I1 (INTCONST I8 (HOLE 2)) (INTCONST I8 0)) (TSTLTS I1 (RSHS I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (BAND I8 (INTCONST I8 (HOLE 2)) (INTCONST I8 31))) (INTCONST I8 0)) (REG I1 SF))) (SET (REG I1 OF) (IFTHENELSE I1 (TSTLEU I1 (INTCONST I8 (HOLE 2)) (INTCONST I8 1)) (IFTHENELSE I1 (TSTEQ I1 (INTCONST I8 (HOLE 2)) (INTCONST I8 1)) (INTCONST I1 #b0) (REG I1 OF)) ;undefined (REG I1 OF))))) ;SAR m8,imm8 (DEFINST ("SAR BYTE PTR ??1s,?2c" "SARB $?2c,??1s" "SAR BYTE PTR ??1s,?2c") (PARALLEL (SET (MEM I8 (HOLE 1)) (RSHS I8 (MEM I8 (HOLE 1)) (BAND I8 (INTCONST I8 (HOLE 2)) (INTCONST I8 31)))) (SET (REG I1 CF) (IFTHENELSE I1 (TSTNE I1 (INTCONST I8 (HOLE 2)) (INTCONST I8 0)) (CONVIT I1 (RSHS I8 (MEM I8 (HOLE 1)) (SUB I8 (BAND I8 (INTCONST I8 (HOLE 2)) (INTCONST I8 31)) (INTCONST I8 1)))) (REG I1 CF))) (SET (REG I1 PF) (IFTHENELSE I1 (TSTNE I1 (INTCONST I8 (HOLE 2)) (INTCONST I8 0)) (PARITY I1 (RSHS I8 (MEM I8 (HOLE 1)) (BAND I8 (INTCONST I8 (HOLE 2)) (INTCONST I8 31)))) (REG I1 PF))) (CLOBBER (REG I1 AF)) (SET (REG I1 ZF) (IFTHENELSE I1 (TSTNE I1 (INTCONST I8 (HOLE 2)) (INTCONST I8 0)) (TSTEQ I1 (RSHS I8 (MEM I8 (HOLE 1)) (BAND I8 (INTCONST I8 (HOLE 2)) (INTCONST I8 31))) (INTCONST I8 0)) (REG I1 ZF))) (SET (REG I1 SF) (IFTHENELSE I1 (TSTNE I1 (INTCONST I8 (HOLE 2)) (INTCONST I8 0)) (TSTLTS I1 (RSHS I8 (MEM I8 (HOLE 1)) (BAND I8 (INTCONST I8 (HOLE 2)) (INTCONST I8 31))) (INTCONST I8 0)) (REG I1 SF))) (SET (REG I1 OF) (IFTHENELSE I1 (TSTLEU I1 (INTCONST I8 (HOLE 2)) (INTCONST I8 1)) (IFTHENELSE I1 (TSTEQ I1 (INTCONST I8 (HOLE 2)) (INTCONST I8 1)) (INTCONST I1 #b0) (REG I1 OF)) ;undefined (REG I1 OF))))) ;SAR r8,CL (DEFINST ("SAR ?1l,CL" "SAR %CL,%?1l" "SAR ?1l,CL") (PARALLEL (SET (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (RSHS I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31)))) (SET (REG I1 CF) (IFTHENELSE I1 (TSTNE I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 0)) (CONVIT I1 (RSHS I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (SUB I8 (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31)) (INTCONST I8 1)))) (REG I1 CF))) (SET (REG I1 PF) (IFTHENELSE I1 (TSTNE I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 0)) (PARITY I1 (RSHS I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31)))) (REG I1 PF))) (CLOBBER (REG I1 AF)) (SET (REG I1 ZF) (IFTHENELSE I1 (TSTNE I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 0)) (TSTEQ I1 (RSHS I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31))) (INTCONST I8 0)) (REG I1 ZF))) (SET (REG I1 SF) (IFTHENELSE I1 (TSTNE I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 0)) (TSTLTS I1 (RSHS I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31))) (INTCONST I8 0)) (REG I1 SF))) (SET (REG I1 OF) (IFTHENELSE I1 (TSTLEU I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 1)) (IFTHENELSE I1 (TSTEQ I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 1)) (INTCONST I1 #b0) (REG I1 OF)) ;undefined (REG I1 OF))))) (DEFINST ("SAR ?1h,CL" "SAR %CL,%?1h" "SAR ?1h,CL") (PARALLEL (SET (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (RSHS I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31)))) (SET (REG I1 CF) (IFTHENELSE I1 (TSTNE I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 0)) (CONVIT I1 (RSHS I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (SUB I8 (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31)) (INTCONST I8 1)))) (REG I1 CF))) (SET (REG I1 PF) (IFTHENELSE I1 (TSTNE I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 0)) (PARITY I1 (RSHS I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31)))) (REG I1 PF))) (CLOBBER (REG I1 AF)) (SET (REG I1 ZF) (IFTHENELSE I1 (TSTNE I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 0)) (TSTEQ I1 (RSHS I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31))) (INTCONST I8 0)) (REG I1 ZF))) (SET (REG I1 SF) (IFTHENELSE I1 (TSTNE I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 0)) (TSTLTS I1 (RSHS I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31))) (INTCONST I8 0)) (REG I1 SF))) (SET (REG I1 OF) (IFTHENELSE I1 (TSTLEU I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 1)) (IFTHENELSE I1 (TSTEQ I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 1)) (INTCONST I1 #b0) (REG I1 OF)) ;undefined (REG I1 OF))))) ;SAR m8,CL (DEFINST ("SAR BYTE PTR ??1s,CL" "SAR %CL,??1s" "SAR BYTE PTR ??1s,CL") (PARALLEL (SET (MEM I8 (HOLE 1)) (RSHS I8 (MEM I8 (HOLE 1)) (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31)))) (SET (REG I1 CF) (IFTHENELSE I1 (TSTNE I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 0)) (CONVIT I1 (RSHS I8 (MEM I8 (HOLE 1)) (SUB I8 (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31)) (INTCONST I8 1)))) (REG I1 CF))) (SET (REG I1 PF) (IFTHENELSE I1 (TSTNE I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 0)) (PARITY I1 (RSHS I8 (MEM I8 (HOLE 1)) (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31)))) (REG I1 PF))) (CLOBBER (REG I1 AF)) (SET (REG I1 ZF) (IFTHENELSE I1 (TSTNE I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 0)) (TSTEQ I1 (RSHS I8 (MEM I8 (HOLE 1)) (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31))) (INTCONST I8 0)) (REG I1 ZF))) (SET (REG I1 SF) (IFTHENELSE I1 (TSTNE I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 0)) (TSTLTS I1 (RSHS I8 (MEM I8 (HOLE 1)) (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31))) (INTCONST I8 0)) (REG I1 SF))) (SET (REG I1 OF) (IFTHENELSE I1 (TSTLEU I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 1)) (IFTHENELSE I1 (TSTEQ I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 1)) (INTCONST I1 #b0) (REG I1 OF)) ;undefined (REG I1 OF))))) ;SAR r16,imm8 (DEFINST ("SAR ?1w,?2c" "SAR $?2c,%?1w" "SAR ?1w,?2c") (PARALLEL (SET (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (RSHS I16 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (BAND I8 (INTCONST I8 (HOLE 2)) (INTCONST I8 31)))) (SET (REG I1 CF) (IFTHENELSE I1 (TSTNE I1 (INTCONST I8 (HOLE 2)) (INTCONST I8 0)) (CONVIT I1 (RSHS I16 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (SUB I8 (BAND I8 (INTCONST I8 (HOLE 2)) (INTCONST I8 31)) (INTCONST I8 1)))) (REG I1 CF))) (SET (REG I1 PF) (IFTHENELSE I1 (TSTNE I1 (INTCONST I8 (HOLE 2)) (INTCONST I8 0)) (PARITY I1 (CONVIT I8 (RSHS I16 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (BAND I8 (INTCONST I8 (HOLE 2)) (INTCONST I8 31))))) (REG I1 PF))) (CLOBBER (REG I1 AF)) (SET (REG I1 ZF) (IFTHENELSE I1 (TSTNE I1 (INTCONST I8 (HOLE 2)) (INTCONST I8 0)) (TSTEQ I1 (RSHS I16 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (BAND I8 (INTCONST I8 (HOLE 2)) (INTCONST I8 31))) (INTCONST I16 0)) (REG I1 ZF))) (SET (REG I1 SF) (IFTHENELSE I1 (TSTNE I1 (INTCONST I8 (HOLE 2)) (INTCONST I8 0)) (TSTLTS I1 (RSHS I16 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (BAND I8 (INTCONST I8 (HOLE 2)) (INTCONST I8 31))) (INTCONST I16 0)) (REG I1 SF))) (SET (REG I1 OF) (IFTHENELSE I1 (TSTLEU I1 (INTCONST I8 (HOLE 2)) (INTCONST I8 1)) (IFTHENELSE I1 (TSTEQ I1 (INTCONST I8 (HOLE 2)) (INTCONST I8 1)) (INTCONST I1 #b0) (REG I1 OF)) ;undefined (REG I1 OF))))) ;SAR m16,imm8 (DEFINST ("SAR WORD PTR ??1s,?2c" "SARW $?2c,??1s" "SAR WORD PTR ??1s,?2c") (PARALLEL (SET (MEM I16 (HOLE 1)) (RSHS I16 (MEM I16 (HOLE 1)) (BAND I8 (INTCONST I8 (HOLE 2)) (INTCONST I8 31)))) (SET (REG I1 CF) (IFTHENELSE I1 (TSTNE I1 (INTCONST I8 (HOLE 2)) (INTCONST I8 0)) (CONVIT I1 (RSHS I16 (MEM I16 (HOLE 1)) (SUB I8 (BAND I8 (INTCONST I8 (HOLE 2)) (INTCONST I8 31)) (INTCONST I8 1)))) (REG I1 CF))) (SET (REG I1 PF) (IFTHENELSE I1 (TSTNE I1 (INTCONST I8 (HOLE 2)) (INTCONST I8 0)) (PARITY I1 (CONVIT I8 (RSHS I16 (MEM I16 (HOLE 1)) (BAND I8 (INTCONST I8 (HOLE 2)) (INTCONST I8 31))))) (REG I1 PF))) (CLOBBER (REG I1 AF)) (SET (REG I1 ZF) (IFTHENELSE I1 (TSTNE I1 (INTCONST I8 (HOLE 2)) (INTCONST I8 0)) (TSTEQ I1 (RSHS I16 (MEM I16 (HOLE 1)) (BAND I8 (INTCONST I8 (HOLE 2)) (INTCONST I8 31))) (INTCONST I16 0)) (REG I1 ZF))) (SET (REG I1 SF) (IFTHENELSE I1 (TSTNE I1 (INTCONST I8 (HOLE 2)) (INTCONST I8 0)) (TSTLTS I1 (RSHS I16 (MEM I16 (HOLE 1)) (BAND I8 (INTCONST I8 (HOLE 2)) (INTCONST I8 31))) (INTCONST I16 0)) (REG I1 SF))) (SET (REG I1 OF) (IFTHENELSE I1 (TSTLEU I1 (INTCONST I8 (HOLE 2)) (INTCONST I8 1)) (IFTHENELSE I1 (TSTEQ I1 (INTCONST I8 (HOLE 2)) (INTCONST I8 1)) (INTCONST I1 #b0) (REG I1 OF)) ;undefined (REG I1 OF))))) ;SAR r16,CL (DEFINST ("SAR ?1w,CL" "SAR %CL,%?1w" "SAR ?1w,CL") (PARALLEL (SET (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (RSHS I16 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31)))) (SET (REG I1 CF) (IFTHENELSE I1 (TSTNE I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 0)) (CONVIT I1 (RSHS I16 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (SUB I8 (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31)) (INTCONST I8 1)))) (REG I1 CF))) (SET (REG I1 PF) (IFTHENELSE I1 (TSTNE I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 0)) (PARITY I1 (CONVIT I8 (RSHS I16 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31))))) (REG I1 PF))) (CLOBBER (REG I1 AF)) (SET (REG I1 ZF) (IFTHENELSE I1 (TSTNE I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 0)) (TSTEQ I1 (RSHS I16 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31))) (INTCONST I16 0)) (REG I1 ZF))) (SET (REG I1 SF) (IFTHENELSE I1 (TSTNE I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 0)) (TSTLTS I1 (RSHS I16 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31))) (INTCONST I16 0)) (REG I1 SF))) (SET (REG I1 OF) (IFTHENELSE I1 (TSTLEU I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 1)) (IFTHENELSE I1 (TSTEQ I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 1)) (INTCONST I1 #b0) (REG I1 OF)) ;undefined (REG I1 OF))))) ;SAR m16,CL (DEFINST ("SAR WORD PTR ??1s,CL" "SAR %CL,??1s" "SAR WORD PTR ??1s,CL") (PARALLEL (SET (MEM I16 (HOLE 1)) (RSHS I16 (MEM I16 (HOLE 1)) (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31)))) (SET (REG I1 CF) (IFTHENELSE I1 (TSTNE I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 0)) (CONVIT I1 (RSHS I16 (MEM I16 (HOLE 1)) (SUB I8 (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31)) (INTCONST I8 1)))) (REG I1 CF))) (SET (REG I1 PF) (IFTHENELSE I1 (TSTNE I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 0)) (PARITY I1 (CONVIT I8 (RSHS I16 (MEM I16 (HOLE 1)) (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31))))) (REG I1 PF))) (CLOBBER (REG I1 AF)) (SET (REG I1 ZF) (IFTHENELSE I1 (TSTNE I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 0)) (TSTEQ I1 (RSHS I16 (MEM I16 (HOLE 1)) (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31))) (INTCONST I16 0)) (REG I1 ZF))) (SET (REG I1 SF) (IFTHENELSE I1 (TSTNE I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 0)) (TSTLTS I1 (RSHS I16 (MEM I16 (HOLE 1)) (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31))) (INTCONST I16 0)) (REG I1 SF))) (SET (REG I1 OF) (IFTHENELSE I1 (TSTLEU I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 1)) (IFTHENELSE I1 (TSTEQ I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 1)) (INTCONST I1 #b0) (REG I1 OF)) ;undefined (REG I1 OF))))) ;SAR r32,imm8 (DEFINST ("SAR ?1r,?2c" "SAR $?2c,%?1r" "SAR ?1r,?2c") (PARALLEL (SET (REG I32 (HOLE 1 R32)) (RSHS I32 (REG I32 (HOLE 1 R32)) (BAND I8 (INTCONST I8 (HOLE 2)) (INTCONST I8 31)))) (SET (REG I1 CF) (IFTHENELSE I1 (TSTNE I1 (INTCONST I8 (HOLE 2)) (INTCONST I8 0)) (CONVIT I1 (RSHS I32 (REG I32 (HOLE 1 R32)) (SUB I8 (BAND I8 (INTCONST I8 (HOLE 2)) (INTCONST I8 31)) (INTCONST I8 1)))) (REG I1 CF))) (SET (REG I1 PF) (IFTHENELSE I1 (TSTNE I1 (INTCONST I8 (HOLE 2)) (INTCONST I8 0)) (PARITY I1 (CONVIT I8 (RSHS I32 (REG I32 (HOLE 1 R32)) (BAND I8 (INTCONST I8 (HOLE 2)) (INTCONST I8 31))))) (REG I1 PF))) (CLOBBER (REG I1 AF)) (SET (REG I1 ZF) (IFTHENELSE I1 (TSTNE I1 (INTCONST I8 (HOLE 2)) (INTCONST I8 0)) (TSTEQ I1 (RSHS I32 (REG I32 (HOLE 1 R32)) (BAND I8 (INTCONST I8 (HOLE 2)) (INTCONST I8 31))) (INTCONST I32 0)) (REG I1 ZF))) (SET (REG I1 SF) (IFTHENELSE I1 (TSTNE I1 (INTCONST I8 (HOLE 2)) (INTCONST I8 0)) (TSTLTS I1 (RSHS I32 (REG I32 (HOLE 1 R32)) (BAND I8 (INTCONST I8 (HOLE 2)) (INTCONST I8 31))) (INTCONST I32 0)) (REG I1 SF))) (SET (REG I1 OF) (IFTHENELSE I1 (TSTLEU I1 (INTCONST I8 (HOLE 2)) (INTCONST I8 1)) (IFTHENELSE I1 (TSTEQ I1 (INTCONST I8 (HOLE 2)) (INTCONST I8 1)) (INTCONST I1 #b0) (REG I1 OF)) ;undefined (REG I1 OF))))) ;SAR m32,imm8 (DEFINST ("SAR DWORD PTR ??1s,?2c" "SARL $?2c,??1s" "SAR DWORD PTR ??1s,?2c") (PARALLEL (SET (MEM I32 (HOLE 1)) (RSHS I32 (MEM I32 (HOLE 1)) (BAND I8 (INTCONST I8 (HOLE 2)) (INTCONST I8 31)))) (SET (REG I1 CF) (IFTHENELSE I1 (TSTNE I1 (INTCONST I8 (HOLE 2)) (INTCONST I8 0)) (CONVIT I1 (RSHS I32 (MEM I32 (HOLE 1)) (SUB I8 (BAND I8 (INTCONST I8 (HOLE 2)) (INTCONST I8 31)) (INTCONST I8 1)))) (REG I1 CF))) (SET (REG I1 PF) (IFTHENELSE I1 (TSTNE I1 (INTCONST I8 (HOLE 2)) (INTCONST I8 0)) (PARITY I1 (CONVIT I8 (RSHS I32 (MEM I32 (HOLE 1)) (BAND I8 (INTCONST I8 (HOLE 2)) (INTCONST I8 31))))) (REG I1 PF))) (CLOBBER (REG I1 AF)) (SET (REG I1 ZF) (IFTHENELSE I1 (TSTNE I1 (INTCONST I8 (HOLE 2)) (INTCONST I8 0)) (TSTEQ I1 (RSHS I32 (MEM I32 (HOLE 1)) (BAND I8 (INTCONST I8 (HOLE 2)) (INTCONST I8 31))) (INTCONST I32 0)) (REG I1 ZF))) (SET (REG I1 SF) (IFTHENELSE I1 (TSTNE I1 (INTCONST I8 (HOLE 2)) (INTCONST I8 0)) (TSTLTS I1 (RSHS I32 (MEM I32 (HOLE 1)) (BAND I8 (INTCONST I8 (HOLE 2)) (INTCONST I8 31))) (INTCONST I32 0)) (REG I1 SF))) (SET (REG I1 OF) (IFTHENELSE I1 (TSTLEU I1 (INTCONST I8 (HOLE 2)) (INTCONST I8 1)) (IFTHENELSE I1 (TSTEQ I1 (INTCONST I8 (HOLE 2)) (INTCONST I8 1)) (INTCONST I1 #b0) (REG I1 OF)) ;undefined (REG I1 OF))))) ;SAR r32,CL (DEFINST ("SAR ?1r,CL" "SAR %CL,%?1r" "SAR ?1r,CL") (PARALLEL (SET (REG I32 (HOLE 1 R32)) (RSHS I32 (REG I32 (HOLE 1 R32)) (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31)))) (SET (REG I1 CF) (IFTHENELSE I1 (TSTNE I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 0)) (CONVIT I1 (RSHS I32 (REG I32 (HOLE 1 R32)) (SUB I8 (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31)) (INTCONST I8 1)))) (REG I1 CF))) (SET (REG I1 PF) (IFTHENELSE I1 (TSTNE I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 0)) (PARITY I1 (CONVIT I8 (RSHS I32 (REG I32 (HOLE 1 R32)) (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31))))) (REG I1 PF))) (CLOBBER (REG I1 AF)) (SET (REG I1 ZF) (IFTHENELSE I1 (TSTNE I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 0)) (TSTEQ I1 (RSHS I32 (REG I32 (HOLE 1 R32)) (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31))) (INTCONST I32 0)) (REG I1 ZF))) (SET (REG I1 SF) (IFTHENELSE I1 (TSTNE I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 0)) (TSTLTS I1 (RSHS I32 (REG I32 (HOLE 1 R32)) (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31))) (INTCONST I32 0)) (REG I1 SF))) (SET (REG I1 OF) (IFTHENELSE I1 (TSTLEU I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 1)) (IFTHENELSE I1 (TSTEQ I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 1)) (INTCONST I1 #b0) (REG I1 OF)) ;undefined (REG I1 OF))))) ;SAR m32,CL (DEFINST ("SAR DWORD PTR ??1s,CL" "SAR %CL,??1s" "SAR DWORD PTR ??1s,CL") (PARALLEL (SET (MEM I32 (HOLE 1)) (RSHS I32 (MEM I32 (HOLE 1)) (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31)))) (SET (REG I1 CF) (IFTHENELSE I1 (TSTNE I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 0)) (CONVIT I1 (RSHS I32 (MEM I32 (HOLE 1)) (SUB I8 (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31)) (INTCONST I8 1)))) (REG I1 CF))) (SET (REG I1 PF) (IFTHENELSE I1 (TSTNE I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 0)) (PARITY I1 (CONVIT I8 (RSHS I32 (MEM I32 (HOLE 1)) (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31))))) (REG I1 PF))) (CLOBBER (REG I1 AF)) (SET (REG I1 ZF) (IFTHENELSE I1 (TSTNE I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 0)) (TSTEQ I1 (RSHS I32 (MEM I32 (HOLE 1)) (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31))) (INTCONST I32 0)) (REG I1 ZF))) (SET (REG I1 SF) (IFTHENELSE I1 (TSTNE I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 0)) (TSTLTS I1 (RSHS I32 (MEM I32 (HOLE 1)) (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31))) (INTCONST I32 0)) (REG I1 SF))) (SET (REG I1 OF) (IFTHENELSE I1 (TSTLEU I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 1)) (IFTHENELSE I1 (TSTEQ I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 1)) (INTCONST I1 #b0) (REG I1 OF)) ;undefined (REG I1 OF))))) ;SHLD(shift left double) ;SHLD r16,r16,imm8 (DEFINST ("SHLD ?1w,?2w,?3c" "SHLD $?3c,%?2w,%?1w" "SHLD ?1w,?2w,?3c") (PARALLEL (SET (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (IFTHENELSE I16 (TSTLTU I1 (INTCONST I8 (HOLE 3)) (INTCONST I8 16)) (BOR I16 (LSH I16 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (BAND I8 (INTCONST I8 (HOLE 3)) (INTCONST I8 31))) (RSHU I16 (SUBREG I16 (REG I32 (HOLE 2 R32)) 0) (SUB I8 (INTCONST I8 16) (BAND I8 (INTCONST I8 (HOLE 3)) (INTCONST I8 31))))) ;undefined (SUBREG I16 (REG I32 (HOLE 1 R32)) 0))) (SET (REG I1 CF) (IFTHENELSE I1 (TSTLTU I1 (INTCONST I8 (HOLE 3)) (INTCONST I8 16)) (IFTHENELSE I1 (TSTNE I1 (INTCONST I8 (HOLE 3)) (INTCONST I8 0)) (CONVIT I1 (RSHU I16 (LSH I16 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (SUB I8 (BAND I8 (INTCONST I8 (HOLE 3)) (INTCONST I8 31)) (INTCONST I8 1))) (INTCONST I8 15))) (REG I1 CF)) ;undefined (REG I1 CF))) (SET (REG I1 PF) (IFTHENELSE I1 (TSTLTU I1 (INTCONST I8 (HOLE 3)) (INTCONST I8 16)) (IFTHENELSE I1 (TSTNE I1 (INTCONST I8 (HOLE 3)) (INTCONST I8 0)) (PARITY I1 (CONVIT I8 (BOR I16 (LSH I16 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (BAND I8 (INTCONST I8 (HOLE 3)) (INTCONST I8 31))) (RSHU I16 (SUBREG I16 (REG I32 (HOLE 2 R32)) 0) (SUB I8 (INTCONST I8 16) (BAND I8 (INTCONST I8 (HOLE 3)) (INTCONST I8 31))))))) (REG I1 PF)) ;undefined (REG I1 PF))) (CLOBBER (REG I1 AF)) (SET (REG I1 ZF) (IFTHENELSE I1 (TSTLTU I1 (INTCONST I8 (HOLE 3)) (INTCONST I8 16)) (IFTHENELSE I1 (TSTNE I1 (INTCONST I8 (HOLE 3)) (INTCONST I8 0)) (TSTEQ I1 (BOR I16 (LSH I16 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (BAND I8 (INTCONST I8 (HOLE 3)) (INTCONST I8 31))) (RSHU I16 (SUBREG I16 (REG I32 (HOLE 2 R32)) 0) (SUB I8 (INTCONST I8 16) (BAND I8 (INTCONST I8 (HOLE 3)) (INTCONST I8 31))))) (INTCONST I16 0)) (REG I1 ZF)) ;undefined (REG I1 ZF))) (SET (REG I1 SF) (IFTHENELSE I1 (TSTLTU I1 (INTCONST I8 (HOLE 3)) (INTCONST I8 16)) (IFTHENELSE I1 (TSTNE I1 (INTCONST I8 (HOLE 3)) (INTCONST I8 0)) (TSTLTS I1 (BOR I16 (LSH I16 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (BAND I8 (INTCONST I8 (HOLE 3)) (INTCONST I8 31))) (RSHU I16 (SUBREG I16 (REG I32 (HOLE 2 R32)) 0) (SUB I8 (INTCONST I8 15) (BAND I8 (INTCONST I8 (HOLE 3)) (INTCONST I8 31))))) (INTCONST I16 0)) (REG I1 SF)) ;undefined (REG I1 SF))) (SET (REG I1 OF) (IFTHENELSE I1 (TSTLEU I1 (INTCONST I8 (HOLE 3)) (INTCONST I8 1)) (IFTHENELSE I1 (TSTEQ I1 (INTCONST I8 (HOLE 3)) (INTCONST I8 1)) (BXOR I1 (CONVIT I1 (RSHU I16 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (INTCONST I8 15))) (CONVIT I1 (RSHU I16 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (INTCONST I8 14)))) (REG I1 OF)) ;undefined (REG I1 OF))))) ;SHLD m16,r16,imm8 (DEFINST ("SHLD WORD PTR ??1s,?2w,?3c" "SHLD $?3c,%?2w,??1s" "SHLD WORD PTR ??1s,?2w,?3c") (PARALLEL (SET (MEM I16 (HOLE 1)) (IFTHENELSE I16 (TSTLTU I1 (INTCONST I8 (HOLE 3)) (INTCONST I8 16)) (BOR I16 (LSH I16 (MEM I16 (HOLE 1)) (BAND I8 (INTCONST I8 (HOLE 3)) (INTCONST I8 31))) (RSHU I16 (SUBREG I16 (REG I32 (HOLE 2 R32)) 0) (SUB I8 (INTCONST I8 16) (BAND I8 (INTCONST I8 (HOLE 3)) (INTCONST I8 31))))) ;undefined (MEM I16 (HOLE 1)))) (SET (REG I1 CF) (IFTHENELSE I1 (TSTLTU I1 (INTCONST I8 (HOLE 3)) (INTCONST I8 16)) (IFTHENELSE I1 (TSTNE I1 (INTCONST I8 (HOLE 3)) (INTCONST I8 0)) (CONVIT I1 (RSHU I16 (LSH I16 (MEM I16 (HOLE 1)) (SUB I8 (BAND I8 (INTCONST I8 (HOLE 3)) (INTCONST I8 31)) (INTCONST I8 1))) (INTCONST I8 15))) (REG I1 CF)) ;undefined (REG I1 CF))) (SET (REG I1 PF) (IFTHENELSE I1 (TSTLTU I1 (INTCONST I8 (HOLE 3)) (INTCONST I8 16)) (IFTHENELSE I1 (TSTNE I1 (INTCONST I8 (HOLE 3)) (INTCONST I8 0)) (PARITY I1 (CONVIT I8 (BOR I16 (LSH I16 (MEM I16 (HOLE 1)) (BAND I8 (INTCONST I8 (HOLE 3)) (INTCONST I8 31))) (RSHU I16 (SUBREG I16 (REG I32 (HOLE 2 R32)) 0) (SUB I8 (INTCONST I8 16) (BAND I8 (INTCONST I8 (HOLE 3)) (INTCONST I8 31))))))) (REG I1 PF)) ;undefined (REG I1 PF))) (CLOBBER (REG I1 AF)) (SET (REG I1 ZF) (IFTHENELSE I1 (TSTLTU I1 (INTCONST I8 (HOLE 3)) (INTCONST I8 16)) (IFTHENELSE I1 (TSTNE I1 (INTCONST I8 (HOLE 3)) (INTCONST I8 0)) (TSTEQ I1 (BOR I16 (LSH I16 (MEM I16 (HOLE 1)) (BAND I8 (INTCONST I8 (HOLE 3)) (INTCONST I8 31))) (RSHU I16 (SUBREG I16 (REG I32 (HOLE 2 R32)) 0) (SUB I8 (INTCONST I8 16) (BAND I8 (INTCONST I8 (HOLE 3)) (INTCONST I8 31))))) (INTCONST I16 0)) (REG I1 ZF)) ;undefined (REG I1 ZF))) (SET (REG I1 SF) (IFTHENELSE I1 (TSTLTU I1 (INTCONST I8 (HOLE 3)) (INTCONST I8 16)) (IFTHENELSE I1 (TSTNE I1 (INTCONST I8 (HOLE 3)) (INTCONST I8 0)) (TSTLTS I1 (BOR I16 (LSH I16 (MEM I16 (HOLE 1)) (BAND I8 (INTCONST I8 (HOLE 3)) (INTCONST I8 31))) (RSHU I16 (SUBREG I16 (REG I32 (HOLE 2 R32)) 0) (SUB I8 (INTCONST I8 16) (BAND I8 (INTCONST I8 (HOLE 3)) (INTCONST I8 31))))) (INTCONST I16 0)) (REG I1 SF)) ;undefined (REG I1 SF))) (SET (REG I1 OF) (IFTHENELSE I1 (TSTLEU I1 (INTCONST I8 (HOLE 3)) (INTCONST I8 1)) (IFTHENELSE I1 (TSTEQ I1 (INTCONST I8 (HOLE 3)) (INTCONST I8 1)) (BXOR I1 (CONVIT I1 (RSHU I16 (MEM I16 (HOLE 1)) (INTCONST I8 15))) (CONVIT I1 (RSHU I16 (MEM I16 (HOLE 1)) (INTCONST I8 14)))) (REG I1 OF)) ;undefined (REG I1 OF))))) ;SHLD r16,r16,CL (DEFINST ("SHLD ?1w,?2w,CL" "SHLD %CL,%?2w,%?1w" "SHLD ?1w,?2w,CL") (PARALLEL (SET (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (IFTHENELSE I16 (TSTLTU I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 16)) (BOR I16 (LSH I16 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31))) (RSHU I16 (SUBREG I16 (REG I32 (HOLE 2 R32)) 0) (SUB I8 (INTCONST I8 16) (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31))))) ;undefined (SUBREG I16 (REG I32 (HOLE 1 R32)) 0))) (SET (REG I1 CF) (IFTHENELSE I1 (TSTLTU I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 16)) (IFTHENELSE I1 (TSTNE I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 0)) (CONVIT I1 (RSHU I16 (LSH I16 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (SUB I8 (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31)) (INTCONST I8 1))) (INTCONST I8 15))) (REG I1 CF)) ;undefined (REG I1 CF))) (SET (REG I1 PF) (IFTHENELSE I1 (TSTLTU I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 16)) (IFTHENELSE I1 (TSTNE I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 0)) (PARITY I1 (CONVIT I8 (BOR I16 (LSH I16 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31))) (RSHU I16 (SUBREG I16 (REG I32 (HOLE 2 R32)) 0) (SUB I8 (INTCONST I8 16) (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31))))))) (REG I1 PF)) ;undefined (REG I1 PF))) (CLOBBER (REG I1 AF)) (SET (REG I1 ZF) (IFTHENELSE I1 (TSTLTU I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 16)) (IFTHENELSE I1 (TSTNE I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 0)) (TSTEQ I1 (BOR I16 (LSH I16 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31))) (RSHU I16 (SUBREG I16 (REG I32 (HOLE 2 R32)) 0) (SUB I8 (INTCONST I8 16) (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31))))) (INTCONST I16 0)) (REG I1 ZF)) ;undefined (REG I1 ZF))) (SET (REG I1 SF) (IFTHENELSE I1 (TSTLTU I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 16)) (IFTHENELSE I1 (TSTNE I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 0)) (TSTLTS I1 (BOR I16 (LSH I16 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31))) (RSHU I16 (SUBREG I16 (REG I32 (HOLE 2 R32)) 0) (SUB I8 (INTCONST I8 15) (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31))))) (INTCONST I16 0)) (REG I1 SF)) ;undefined (REG I1 SF))) (SET (REG I1 OF) (IFTHENELSE I1 (TSTLEU I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 1)) (IFTHENELSE I1 (TSTEQ I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 1)) (BXOR I1 (CONVIT I1 (RSHU I16 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (INTCONST I8 15))) (CONVIT I1 (RSHU I16 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (INTCONST I8 14)))) (REG I1 OF)) ;undefined (REG I1 OF))))) ;SHLD m16,r16,CL (DEFINST ("SHLD WORD PTR ??1s,?2w,CL" "SHLD %CL,%?2w,??1s" "SHLD WORD PTR ??1s,?2w,CL") (PARALLEL (SET (MEM I16 (HOLE 1)) (IFTHENELSE I16 (TSTLTU I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 16)) (BOR I16 (LSH I16 (MEM I16 (HOLE 1)) (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31))) (RSHU I16 (SUBREG I16 (REG I32 (HOLE 2 R32)) 0) (SUB I8 (INTCONST I8 16) (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31))))) ;undefined (MEM I16 (HOLE 1)))) (SET (REG I1 CF) (IFTHENELSE I1 (TSTLTU I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 16)) (IFTHENELSE I1 (TSTNE I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 0)) (CONVIT I1 (RSHU I16 (LSH I16 (MEM I16 (HOLE 1)) (SUB I8 (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31)) (INTCONST I8 1))) (INTCONST I8 15))) (REG I1 CF)) ;undefined (REG I1 CF))) (SET (REG I1 PF) (IFTHENELSE I1 (TSTLTU I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 16)) (IFTHENELSE I1 (TSTNE I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 0)) (PARITY I1 (CONVIT I8 (BOR I16 (LSH I16 (MEM I16 (HOLE 1)) (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31))) (RSHU I16 (SUBREG I16 (REG I32 (HOLE 2 R32)) 0) (SUB I8 (INTCONST I8 16) (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31))))))) (REG I1 PF)) ;undefined (REG I1 PF))) (CLOBBER (REG I1 AF)) (SET (REG I1 ZF) (IFTHENELSE I1 (TSTLTU I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 16)) (IFTHENELSE I1 (TSTNE I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 0)) (TSTEQ I1 (BOR I16 (LSH I16 (MEM I16 (HOLE 1)) (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31))) (RSHU I16 (SUBREG I16 (REG I32 (HOLE 2 R32)) 0) (SUB I8 (INTCONST I8 16) (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31))))) (INTCONST I16 0)) (REG I1 ZF)) ;undefined (REG I1 ZF))) (SET (REG I1 SF) (IFTHENELSE I1 (TSTLTU I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 16)) (IFTHENELSE I1 (TSTNE I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 0)) (TSTLTS I1 (BOR I16 (LSH I16 (MEM I16 (HOLE 1)) (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31))) (RSHU I16 (SUBREG I16 (REG I32 (HOLE 2 R32)) 0) (SUB I8 (INTCONST I8 16) (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31))))) (INTCONST I16 0)) (REG I1 SF)) ;undefined (REG I1 SF))) (SET (REG I1 OF) (IFTHENELSE I1 (TSTLEU I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 1)) (IFTHENELSE I1 (TSTEQ I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 1)) (BXOR I1 (CONVIT I1 (RSHU I16 (MEM I16 (HOLE 1)) (INTCONST I8 15))) (CONVIT I1 (RSHU I16 (MEM I16 (HOLE 1)) (INTCONST I8 14)))) (REG I1 OF)) ;undefined (REG I1 OF))))) ;SHLD r32,r32,imm8 (DEFINST ("SHLD ?1r,?2r,?3c" "SHLD $?3c,%?2r,%?1r" "SHLD ?1r,?2r,?3c") (PARALLEL (SET (REG I32 (HOLE 1 R32)) (BOR I32 (LSH I32 (REG I32 (HOLE 1 R32)) (BAND I8 (INTCONST I8 (HOLE 3)) (INTCONST I8 31))) (RSHU I32 (REG I32 (HOLE 2 R32)) (SUB I8 (INTCONST I8 32) (BAND I8 (INTCONST I8 (HOLE 3)) (INTCONST I8 31)))))) (SET (REG I1 CF) (IFTHENELSE I1 (TSTNE I1 (INTCONST I8 (HOLE 3)) (INTCONST I8 0)) (CONVIT I1 (RSHU I32 (LSH I32 (REG I32 (HOLE 1 R32)) (SUB I8 (BAND I8 (INTCONST I8 (HOLE 3)) (INTCONST I8 31)) (INTCONST I8 1))) (INTCONST I8 31))) (REG I1 CF))) (SET (REG I1 PF) (IFTHENELSE I1 (TSTNE I1 (INTCONST I8 (HOLE 3)) (INTCONST I8 0)) (PARITY I1 (CONVIT I8 (BOR I32 (LSH I32 (REG I32 (HOLE 1 R32)) (BAND I8 (INTCONST I8 (HOLE 3)) (INTCONST I8 31))) (RSHU I32 (REG I32 (HOLE 2 R32)) (SUB I8 (INTCONST I8 32) (BAND I8 (INTCONST I8 (HOLE 3)) (INTCONST I8 31))))))) (REG I1 PF))) (CLOBBER (REG I1 AF)) (SET (REG I1 ZF) (IFTHENELSE I1 (TSTNE I1 (INTCONST I8 (HOLE 3)) (INTCONST I8 0)) (TSTEQ I1 (BOR I32 (LSH I32 (REG I32 (HOLE 1 R32)) (BAND I8 (INTCONST I8 (HOLE 3)) (INTCONST I8 31))) (RSHU I32 (REG I32 (HOLE 2 R32)) (SUB I8 (INTCONST I8 32) (BAND I8 (INTCONST I8 (HOLE 3)) (INTCONST I8 31))))) (INTCONST I32 0)) (REG I1 ZF))) (SET (REG I1 SF) (IFTHENELSE I1 (TSTNE I1 (INTCONST I8 (HOLE 3)) (INTCONST I8 0)) (TSTLTS I1 (BOR I32 (LSH I32 (REG I32 (HOLE 1 R32)) (BAND I8 (INTCONST I8 (HOLE 3)) (INTCONST I8 31))) (RSHU I32 (REG I32 (HOLE 2 R32)) (SUB I8 (INTCONST I8 32) (BAND I8 (INTCONST I8 (HOLE 3)) (INTCONST I8 31))))) (INTCONST I32 0)) (REG I1 SF))) (SET (REG I1 OF) (IFTHENELSE I1 (TSTLEU I1 (INTCONST I8 (HOLE 3)) (INTCONST I8 1)) (IFTHENELSE I1 (TSTEQ I1 (INTCONST I8 (HOLE 3)) (INTCONST I8 1)) (BXOR I1 (CONVIT I1 (RSHU I32 (REG I32 (HOLE 1 R32)) (INTCONST I8 31))) (CONVIT I1 (RSHU I32 (REG I32 (HOLE 1 R32)) (INTCONST I8 30)))) (REG I1 OF)) ;undefined (REG I1 OF))))) ;SHLD m32,r32,imm8 (DEFINST ("SHLD DWORD PTR ??1s,?2r,?3c" "SHLD $?3c,%?2r,??1s" "SHLD DWORD PTR ??1s,?2r,?3c") (PARALLEL (SET (MEM I32 (HOLE 1)) (BOR I32 (LSH I32 (MEM I32 (HOLE 1)) (BAND I8 (INTCONST I8 (HOLE 3)) (INTCONST I8 31))) (RSHU I32 (REG I32 (HOLE 2 R32)) (SUB I8 (INTCONST I8 32) (BAND I8 (INTCONST I8 (HOLE 3)) (INTCONST I8 31)))))) (SET (REG I1 CF) (IFTHENELSE I1 (TSTNE I1 (INTCONST I8 (HOLE 3)) (INTCONST I8 0)) (CONVIT I1 (RSHU I32 (LSH I32 (MEM I32 (HOLE 1)) (SUB I8 (BAND I8 (INTCONST I8 (HOLE 3)) (INTCONST I8 31)) (INTCONST I8 1))) (INTCONST I8 31))) (REG I1 CF))) (SET (REG I1 PF) (IFTHENELSE I1 (TSTNE I1 (INTCONST I8 (HOLE 3)) (INTCONST I8 0)) (PARITY I1 (CONVIT I8 (BOR I32 (LSH I32 (MEM I32 (HOLE 1)) (BAND I8 (INTCONST I8 (HOLE 3)) (INTCONST I8 31))) (RSHU I32 (REG I32 (HOLE 2 R32)) (SUB I8 (INTCONST I8 32) (BAND I8 (INTCONST I8 (HOLE 3)) (INTCONST I8 31))))))) (REG I1 PF))) (CLOBBER (REG I1 AF)) (SET (REG I1 ZF) (IFTHENELSE I1 (TSTNE I1 (INTCONST I8 (HOLE 3)) (INTCONST I8 0)) (TSTEQ I1 (BOR I32 (LSH I32 (MEM I32 (HOLE 1)) (BAND I8 (INTCONST I8 (HOLE 3)) (INTCONST I8 31))) (RSHU I32 (REG I32 (HOLE 2 R32)) (SUB I8 (INTCONST I8 32) (BAND I8 (INTCONST I8 (HOLE 3)) (INTCONST I8 31))))) (INTCONST I32 0)) (REG I1 ZF))) (SET (REG I1 SF) (IFTHENELSE I1 (TSTNE I1 (INTCONST I8 (HOLE 3)) (INTCONST I8 0)) (TSTLTS I1 (BOR I32 (LSH I32 (MEM I32 (HOLE 1)) (BAND I8 (INTCONST I8 (HOLE 3)) (INTCONST I8 31))) (RSHU I32 (REG I32 (HOLE 2 R32)) (SUB I8 (INTCONST I8 32) (BAND I8 (INTCONST I8 (HOLE 3)) (INTCONST I8 31))))) (INTCONST I32 0)) (REG I1 SF))) (SET (REG I1 OF) (IFTHENELSE I1 (TSTLEU I1 (INTCONST I8 (HOLE 3)) (INTCONST I8 1)) (IFTHENELSE I1 (TSTEQ I1 (INTCONST I8 (HOLE 3)) (INTCONST I8 1)) (BXOR I1 (CONVIT I1 (RSHU I32 (MEM I32 (HOLE 1)) (INTCONST I8 31))) (CONVIT I1 (RSHU I32 (MEM I32 (HOLE 1)) (INTCONST I8 30)))) (REG I1 OF)) ;undefined (REG I1 OF))))) ;SHLD r32,r32,CL (DEFINST ("SHLD ?1r,?2r,CL" "SHLD %CL,%?2r,%?1r" "SHLD ?1r,?2r,CL") (PARALLEL (SET (REG I32 (HOLE 1 R32)) (BOR I32 (LSH I32 (REG I32 (HOLE 1 R32)) (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31))) (RSHU I32 (REG I32 (HOLE 2 R32)) (SUB I8 (INTCONST I8 32) (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31)))))) (SET (REG I1 CF) (IFTHENELSE I1 (TSTNE I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 0)) (CONVIT I1 (RSHU I32 (LSH I32 (REG I32 (HOLE 1 R32)) (SUB I8 (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31)) (INTCONST I8 1))) (INTCONST I8 31))) (REG I1 CF))) (SET (REG I1 PF) (IFTHENELSE I1 (TSTNE I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 0)) (PARITY I1 (CONVIT I8 (BOR I32 (LSH I32 (REG I32 (HOLE 1 R32)) (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31))) (RSHU I32 (REG I32 (HOLE 2 R32)) (SUB I8 (INTCONST I8 32) (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31))))))) (REG I1 PF))) (CLOBBER (REG I1 AF)) (SET (REG I1 ZF) (IFTHENELSE I1 (TSTNE I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 0)) (TSTEQ I1 (BOR I32 (LSH I32 (REG I32 (HOLE 1 R32)) (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31))) (RSHU I32 (REG I32 (HOLE 2 R32)) (SUB I8 (INTCONST I8 32) (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31))))) (INTCONST I32 0)) (REG I1 ZF))) (SET (REG I1 SF) (IFTHENELSE I1 (TSTNE I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 0)) (TSTLTS I1 (BOR I32 (LSH I32 (REG I32 (HOLE 1 R32)) (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31))) (RSHU I32 (REG I32 (HOLE 2 R32)) (SUB I8 (INTCONST I8 32) (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31))))) (INTCONST I32 0)) (REG I1 SF))) (SET (REG I1 OF) (IFTHENELSE I1 (TSTLEU I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 1)) (IFTHENELSE I1 (TSTEQ I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 1)) (BXOR I1 (CONVIT I1 (RSHU I32 (REG I32 (HOLE 1 R32)) (INTCONST I8 31))) (CONVIT I1 (RSHU I32 (REG I32 (HOLE 1 R32)) (INTCONST I8 30)))) (REG I1 OF)) ;undefined (REG I1 OF))))) ;SHLD m32,r32,CL (DEFINST ("SHLD DWORD PTR ??1s,?2r,CL" "SHLD %CL,%?2r,??1s" "SHLD DWORD PTR ??1s,?2r,CL") (PARALLEL (SET (MEM I32 (HOLE 1)) (BOR I32 (LSH I32 (MEM I32 (HOLE 1)) (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31))) (RSHU I32 (REG I32 (HOLE 2 R32)) (SUB I8 (INTCONST I8 32) (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31)))))) (SET (REG I1 CF) (IFTHENELSE I1 (TSTNE I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 0)) (CONVIT I1 (RSHU I32 (LSH I32 (MEM I32 (HOLE 1)) (SUB I8 (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31)) (INTCONST I8 1))) (INTCONST I8 31))) (REG I1 CF))) (SET (REG I1 PF) (IFTHENELSE I1 (TSTNE I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 0)) (PARITY I1 (CONVIT I8 (BOR I32 (LSH I32 (MEM I32 (HOLE 1)) (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31))) (RSHU I32 (REG I32 (HOLE 2 R32)) (SUB I8 (INTCONST I8 32) (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31))))))) (REG I1 PF))) (CLOBBER (REG I1 AF)) (SET (REG I1 ZF) (IFTHENELSE I1 (TSTNE I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 0)) (TSTEQ I1 (BOR I32 (LSH I32 (MEM I32 (HOLE 1)) (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31))) (RSHU I32 (REG I32 (HOLE 2 R32)) (SUB I8 (INTCONST I8 32) (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31))))) (INTCONST I32 0)) (REG I1 ZF))) (SET (REG I1 SF) (IFTHENELSE I1 (TSTNE I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 0)) (TSTLTS I1 (BOR I32 (LSH I32 (MEM I32 (HOLE 1)) (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31))) (RSHU I32 (REG I32 (HOLE 2 R32)) (SUB I8 (INTCONST I8 32) (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31))))) (INTCONST I32 0)) (REG I1 SF))) (SET (REG I1 OF) (IFTHENELSE I1 (TSTLEU I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 1)) (IFTHENELSE I1 (TSTEQ I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 1)) (BXOR I1 (CONVIT I1 (RSHU I32 (MEM I32 (HOLE 1)) (INTCONST I8 31))) (CONVIT I1 (RSHU I32 (MEM I32 (HOLE 1)) (INTCONST I8 30)))) (REG I1 OF)) ;undefined (REG I1 OF))))) ;SHR(shift logical right) ;SHR r8,imm8 (DEFINST ("SHR ?1l,?2c" "SHR $?2c,%?1l" "SHR ?1l,?2c") (PARALLEL (SET (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (RSHU I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (BAND I8 (INTCONST I8 (HOLE 2)) (INTCONST I8 31)))) (SET (REG I1 CF) (IFTHENELSE I1 (TSTNE I1 (INTCONST I8 (HOLE 2)) (INTCONST I8 0)) (CONVIT I1 (RSHU I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (SUB I8 (BAND I8 (INTCONST I8 (HOLE 2)) (INTCONST I8 31)) (INTCONST I8 1)))) (REG I1 CF))) (SET (REG I1 PF) (IFTHENELSE I1 (TSTNE I1 (INTCONST I8 (HOLE 2)) (INTCONST I8 0)) (PARITY I1 (RSHU I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (BAND I8 (INTCONST I8 (HOLE 2)) (INTCONST I8 31)))) (REG I1 PF))) (CLOBBER (REG I1 AF)) (SET (REG I1 ZF) (IFTHENELSE I1 (TSTNE I1 (INTCONST I8 (HOLE 2)) (INTCONST I8 0)) (TSTEQ I1 (RSHU I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (BAND I8 (INTCONST I8 (HOLE 2)) (INTCONST I8 31))) (INTCONST I8 0)) (REG I1 ZF))) (SET (REG I1 SF) (IFTHENELSE I1 (TSTNE I1 (INTCONST I8 (HOLE 2)) (INTCONST I8 0)) (TSTLTS I1 (RSHU I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (BAND I8 (INTCONST I8 (HOLE 2)) (INTCONST I8 31))) (INTCONST I8 0)) (REG I1 SF))) (SET (REG I1 OF) (IFTHENELSE I1 (TSTLEU I1 (INTCONST I8 (HOLE 2)) (INTCONST I8 1)) (IFTHENELSE I1 (TSTEQ I1 (INTCONST I8 (HOLE 2)) (INTCONST I8 1)) (CONVIT I1 (RSHU I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (INTCONST I8 7))) (REG I1 OF)) ;undefined (REG I1 OF))))) (DEFINST ("SHR ?1h,?2c" "SHR $?2c,%?1h" "SHR ?1h,?2c") (PARALLEL (SET (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (RSHU I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (BAND I8 (INTCONST I8 (HOLE 2)) (INTCONST I8 31)))) (SET (REG I1 CF) (IFTHENELSE I1 (TSTNE I1 (INTCONST I8 (HOLE 2)) (INTCONST I8 0)) (CONVIT I1 (RSHU I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (SUB I8 (BAND I8 (INTCONST I8 (HOLE 2)) (INTCONST I8 31)) (INTCONST I8 1)))) (REG I1 CF))) (SET (REG I1 PF) (IFTHENELSE I1 (TSTNE I1 (INTCONST I8 (HOLE 2)) (INTCONST I8 0)) (PARITY I1 (RSHU I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (BAND I8 (INTCONST I8 (HOLE 2)) (INTCONST I8 31)))) (REG I1 PF))) (CLOBBER (REG I1 AF)) (SET (REG I1 ZF) (IFTHENELSE I1 (TSTNE I1 (INTCONST I8 (HOLE 2)) (INTCONST I8 0)) (TSTEQ I1 (RSHU I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (BAND I8 (INTCONST I8 (HOLE 2)) (INTCONST I8 31))) (INTCONST I8 0)) (REG I1 ZF))) (SET (REG I1 SF) (IFTHENELSE I1 (TSTNE I1 (INTCONST I8 (HOLE 2)) (INTCONST I8 0)) (TSTLTS I1 (RSHU I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (BAND I8 (INTCONST I8 (HOLE 2)) (INTCONST I8 31))) (INTCONST I8 0)) (REG I1 SF))) (SET (REG I1 OF) (IFTHENELSE I1 (TSTLEU I1 (INTCONST I8 (HOLE 2)) (INTCONST I8 1)) (IFTHENELSE I1 (TSTEQ I1 (INTCONST I8 (HOLE 2)) (INTCONST I8 1)) (CONVIT I1 (RSHU I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (INTCONST I8 7))) (REG I1 OF)) ;undefined (REG I1 OF))))) ;SHR m8,imm8 (DEFINST ("SHR BYTE PTR ??1s,?2c" "SHRB $?2c,??1s" "SHR BYTE PTR ??1s,?2c") (PARALLEL (SET (MEM I8 (HOLE 1)) (RSHU I8 (MEM I8 (HOLE 1)) (BAND I8 (INTCONST I8 (HOLE 2)) (INTCONST I8 31)))) (SET (REG I1 CF) (IFTHENELSE I1 (TSTNE I1 (INTCONST I8 (HOLE 2)) (INTCONST I8 0)) (CONVIT I1 (RSHU I8 (MEM I8 (HOLE 1)) (SUB I8 (BAND I8 (INTCONST I8 (HOLE 2)) (INTCONST I8 31)) (INTCONST I8 1)))) (REG I1 CF))) (SET (REG I1 PF) (IFTHENELSE I1 (TSTNE I1 (INTCONST I8 (HOLE 2)) (INTCONST I8 0)) (PARITY I1 (RSHU I8 (MEM I8 (HOLE 1)) (BAND I8 (INTCONST I8 (HOLE 2)) (INTCONST I8 31)))) (REG I1 PF))) (CLOBBER (REG I1 AF)) (SET (REG I1 ZF) (IFTHENELSE I1 (TSTNE I1 (INTCONST I8 (HOLE 2)) (INTCONST I8 0)) (TSTEQ I1 (RSHU I8 (MEM I8 (HOLE 1)) (BAND I8 (INTCONST I8 (HOLE 2)) (INTCONST I8 31))) (INTCONST I8 0)) (REG I1 ZF))) (SET (REG I1 SF) (IFTHENELSE I1 (TSTNE I1 (INTCONST I8 (HOLE 2)) (INTCONST I8 0)) (TSTLTS I1 (RSHU I8 (MEM I8 (HOLE 1)) (BAND I8 (INTCONST I8 (HOLE 2)) (INTCONST I8 31))) (INTCONST I8 0)) (REG I1 SF))) (SET (REG I1 OF) (IFTHENELSE I1 (TSTLEU I1 (INTCONST I8 (HOLE 2)) (INTCONST I8 1)) (IFTHENELSE I1 (TSTEQ I1 (INTCONST I8 (HOLE 2)) (INTCONST I8 1)) (CONVIT I1 (RSHU I8 (MEM I8 (HOLE 1)) (INTCONST I8 7))) (REG I1 OF)) ;undefined (REG I1 OF))))) ;SHR r8,CL (DEFINST ("SHR ?1l,CL" "SHR %CL,%?1l" "SHR ?1l,CL") (PARALLEL (SET (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (RSHU I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31)))) (SET (REG I1 CF) (IFTHENELSE I1 (TSTNE I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 0)) (CONVIT I1 (RSHU I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (SUB I8 (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31)) (INTCONST I8 1)))) (REG I1 CF))) (SET (REG I1 PF) (IFTHENELSE I1 (TSTNE I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 0)) (PARITY I1 (RSHU I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31)))) (REG I1 PF))) (CLOBBER (REG I1 AF)) (SET (REG I1 ZF) (IFTHENELSE I1 (TSTNE I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 0)) (TSTEQ I1 (RSHU I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31))) (INTCONST I8 0)) (REG I1 ZF))) (SET (REG I1 SF) (IFTHENELSE I1 (TSTNE I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 0)) (TSTLTS I1 (RSHU I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31))) (INTCONST I8 0)) (REG I1 SF))) (SET (REG I1 OF) (IFTHENELSE I1 (TSTLEU I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 1)) (IFTHENELSE I1 (TSTEQ I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 1)) (CONVIT I1 (RSHU I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (INTCONST I8 7))) (REG I1 OF)) ;undefined (REG I1 OF))))) (DEFINST ("SHR ?1h,CL" "SHR %CL,%?1h" "SHR ?1h,CL") (PARALLEL (SET (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (RSHU I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31)))) (SET (REG I1 CF) (IFTHENELSE I1 (TSTNE I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 0)) (CONVIT I1 (RSHU I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (SUB I8 (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31)) (INTCONST I8 1)))) (REG I1 CF))) (SET (REG I1 PF) (IFTHENELSE I1 (TSTNE I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 0)) (PARITY I1 (RSHU I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31)))) (REG I1 PF))) (CLOBBER (REG I1 AF)) (SET (REG I1 ZF) (IFTHENELSE I1 (TSTNE I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 0)) (TSTEQ I1 (RSHU I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31))) (INTCONST I8 0)) (REG I1 ZF))) (SET (REG I1 SF) (IFTHENELSE I1 (TSTNE I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 0)) (TSTLTS I1 (RSHU I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31))) (INTCONST I8 0)) (REG I1 SF))) (SET (REG I1 OF) (IFTHENELSE I1 (TSTLEU I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 1)) (IFTHENELSE I1 (TSTEQ I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 1)) (CONVIT I1 (RSHU I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (INTCONST I8 7))) (REG I1 OF)) ;undefined (REG I1 OF))))) ;SHR m8,CL (DEFINST ("SHR BYTE PTR ??1s,CL" "SHR %CL,??1s" "SHR BYTE PTR ??1s,CL") (PARALLEL (SET (MEM I8 (HOLE 1)) (RSHU I8 (MEM I8 (HOLE 1)) (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31)))) (SET (REG I1 CF) (IFTHENELSE I1 (TSTNE I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 0)) (CONVIT I1 (RSHU I8 (MEM I8 (HOLE 1)) (SUB I8 (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31)) (INTCONST I8 1)))) (REG I1 CF))) (SET (REG I1 PF) (IFTHENELSE I1 (TSTNE I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 0)) (PARITY I1 (RSHU I8 (MEM I8 (HOLE 1)) (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31)))) (REG I1 PF))) (CLOBBER (REG I1 AF)) (SET (REG I1 ZF) (IFTHENELSE I1 (TSTNE I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 0)) (TSTEQ I1 (RSHU I8 (MEM I8 (HOLE 1)) (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31))) (INTCONST I8 0)) (REG I1 ZF))) (SET (REG I1 SF) (IFTHENELSE I1 (TSTNE I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 0)) (TSTLTS I1 (RSHU I8 (MEM I8 (HOLE 1)) (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31))) (INTCONST I8 0)) (REG I1 SF))) (SET (REG I1 OF) (IFTHENELSE I1 (TSTLEU I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 1)) (IFTHENELSE I1 (TSTEQ I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 1)) (CONVIT I1 (RSHU I8 (MEM I8 (HOLE 1)) (INTCONST I8 7))) (REG I1 OF)) ;undefined (REG I1 OF))))) ;SHR r16,imm8 (DEFINST ("SHR ?1w,?2c" "SHR $?2c,%?1w" "SHR ?1w,?2c") (PARALLEL (SET (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (RSHU I16 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (BAND I8 (INTCONST I8 (HOLE 2)) (INTCONST I8 31)))) (SET (REG I1 CF) (IFTHENELSE I1 (TSTNE I1 (INTCONST I8 (HOLE 2)) (INTCONST I8 0)) (CONVIT I1 (RSHU I16 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (SUB I8 (BAND I8 (INTCONST I8 (HOLE 2)) (INTCONST I8 31)) (INTCONST I8 1)))) (REG I1 CF))) (SET (REG I1 PF) (IFTHENELSE I1 (TSTNE I1 (INTCONST I8 (HOLE 2)) (INTCONST I8 0)) (PARITY I1 (CONVIT I8 (RSHU I16 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (BAND I8 (INTCONST I8 (HOLE 2)) (INTCONST I8 31))))) (REG I1 PF))) (CLOBBER (REG I1 AF)) (SET (REG I1 ZF) (IFTHENELSE I1 (TSTNE I1 (INTCONST I8 (HOLE 2)) (INTCONST I8 0)) (TSTEQ I1 (RSHU I16 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (BAND I8 (INTCONST I8 (HOLE 2)) (INTCONST I8 31))) (INTCONST I16 0)) (REG I1 ZF))) (SET (REG I1 SF) (IFTHENELSE I1 (TSTNE I1 (INTCONST I8 (HOLE 2)) (INTCONST I8 0)) (TSTLTS I1 (RSHU I16 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (BAND I8 (INTCONST I8 (HOLE 2)) (INTCONST I8 31))) (INTCONST I16 0)) (REG I1 SF))) (SET (REG I1 OF) (IFTHENELSE I1 (TSTLEU I1 (INTCONST I8 (HOLE 2)) (INTCONST I8 1)) (IFTHENELSE I1 (TSTEQ I1 (INTCONST I8 (HOLE 2)) (INTCONST I8 1)) (CONVIT I1 (RSHU I16 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (INTCONST I8 15))) (REG I1 OF)) ;undefined (REG I1 OF))))) ;SHR m16,imm8 (DEFINST ("SHR WORD PTR ??1s,?2c" "SHRW $?2c,??1s" "SHR WORD PTR ??1s,?2c") (PARALLEL (SET (MEM I16 (HOLE 1)) (RSHU I16 (MEM I16 (HOLE 1)) (BAND I8 (INTCONST I8 (HOLE 2)) (INTCONST I8 31)))) (SET (REG I1 CF) (IFTHENELSE I1 (TSTNE I1 (INTCONST I8 (HOLE 2)) (INTCONST I8 0)) (CONVIT I1 (RSHU I16 (MEM I16 (HOLE 1)) (SUB I8 (BAND I8 (INTCONST I8 (HOLE 2)) (INTCONST I8 31)) (INTCONST I8 1)))) (REG I1 CF))) (SET (REG I1 PF) (IFTHENELSE I1 (TSTNE I1 (INTCONST I8 (HOLE 2)) (INTCONST I8 0)) (PARITY I1 (CONVIT I8 (RSHU I16 (MEM I16 (HOLE 1)) (BAND I8 (INTCONST I8 (HOLE 2)) (INTCONST I8 31))))) (REG I1 PF))) (CLOBBER (REG I1 AF)) (SET (REG I1 ZF) (IFTHENELSE I1 (TSTNE I1 (INTCONST I8 (HOLE 2)) (INTCONST I8 0)) (TSTEQ I1 (RSHU I16 (MEM I16 (HOLE 1)) (BAND I8 (INTCONST I8 (HOLE 2)) (INTCONST I8 31))) (INTCONST I16 0)) (REG I1 ZF))) (SET (REG I1 SF) (IFTHENELSE I1 (TSTNE I1 (INTCONST I8 (HOLE 2)) (INTCONST I8 0)) (TSTLTS I1 (RSHU I16 (MEM I16 (HOLE 1)) (BAND I8 (INTCONST I8 (HOLE 2)) (INTCONST I8 31))) (INTCONST I16 0)) (REG I1 SF))) (SET (REG I1 OF) (IFTHENELSE I1 (TSTLEU I1 (INTCONST I8 (HOLE 2)) (INTCONST I8 1)) (IFTHENELSE I1 (TSTEQ I1 (INTCONST I8 (HOLE 2)) (INTCONST I8 1)) (CONVIT I1 (RSHU I16 (MEM I16 (HOLE 1)) (INTCONST I8 15))) (REG I1 OF)) ;undefined (REG I1 OF))))) ;SHR r16,CL (DEFINST ("SHR ?1w,CL" "SHR %CL,%?1w" "SHR ?1w,CL") (PARALLEL (SET (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (RSHU I16 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31)))) (SET (REG I1 CF) (IFTHENELSE I1 (TSTNE I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 0)) (CONVIT I1 (RSHU I16 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (SUB I8 (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31)) (INTCONST I8 1)))) (REG I1 CF))) (SET (REG I1 PF) (IFTHENELSE I1 (TSTNE I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 0)) (PARITY I1 (CONVIT I8 (RSHU I16 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31))))) (REG I1 PF))) (CLOBBER (REG I1 AF)) (SET (REG I1 ZF) (IFTHENELSE I1 (TSTNE I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 0)) (TSTEQ I1 (RSHU I16 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31))) (INTCONST I16 0)) (REG I1 ZF))) (SET (REG I1 SF) (IFTHENELSE I1 (TSTNE I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 0)) (TSTLTS I1 (RSHU I16 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31))) (INTCONST I16 0)) (REG I1 SF))) (SET (REG I1 OF) (IFTHENELSE I1 (TSTLEU I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 1)) (IFTHENELSE I1 (TSTEQ I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 1)) (CONVIT I1 (RSHU I16 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (INTCONST I8 15))) (REG I1 OF)) ;undefined (REG I1 OF))))) ;SHR m16,CL (DEFINST ("SHR WORD PTR ??1s,CL" "SHR %CL,??1s" "SHR WORD PTR ??1s,CL") (PARALLEL (SET (MEM I16 (HOLE 1)) (RSHU I16 (MEM I16 (HOLE 1)) (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31)))) (SET (REG I1 CF) (IFTHENELSE I1 (TSTNE I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 0)) (CONVIT I1 (RSHU I16 (MEM I16 (HOLE 1)) (SUB I8 (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31)) (INTCONST I8 1)))) (REG I1 CF))) (SET (REG I1 PF) (IFTHENELSE I1 (TSTNE I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 0)) (PARITY I1 (CONVIT I8 (RSHU I16 (MEM I16 (HOLE 1)) (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31))))) (REG I1 PF))) (CLOBBER (REG I1 AF)) (SET (REG I1 ZF) (IFTHENELSE I1 (TSTNE I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 0)) (TSTEQ I1 (RSHU I16 (MEM I16 (HOLE 1)) (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31))) (INTCONST I16 0)) (REG I1 ZF))) (SET (REG I1 SF) (IFTHENELSE I1 (TSTNE I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 0)) (TSTLTS I1 (RSHU I16 (MEM I16 (HOLE 1)) (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31))) (INTCONST I16 0)) (REG I1 SF))) (SET (REG I1 OF) (IFTHENELSE I1 (TSTLEU I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 1)) (IFTHENELSE I1 (TSTEQ I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 1)) (CONVIT I1 (RSHU I16 (MEM I16 (HOLE 1)) (INTCONST I8 15))) (REG I1 OF)) ;undefined (REG I1 OF))))) ;SHR r32,imm8 (DEFINST ("SHR ?1r,?2c" "SHR $?2c,%?1r" "SHR ?1r,?2c") (PARALLEL (SET (REG I32 (HOLE 1 R32)) (RSHU I32 (REG I32 (HOLE 1 R32)) (BAND I8 (INTCONST I8 (HOLE 2)) (INTCONST I8 31)))) (SET (REG I1 CF) (IFTHENELSE I1 (TSTNE I1 (INTCONST I8 (HOLE 2)) (INTCONST I8 0)) (CONVIT I1 (RSHU I32 (REG I32 (HOLE 1 R32)) (SUB I8 (BAND I8 (INTCONST I8 (HOLE 2)) (INTCONST I8 31)) (INTCONST I8 1)))) (REG I1 CF))) (SET (REG I1 PF) (IFTHENELSE I1 (TSTNE I1 (INTCONST I8 (HOLE 2)) (INTCONST I8 0)) (PARITY I1 (CONVIT I8 (RSHU I32 (REG I32 (HOLE 1 R32)) (BAND I8 (INTCONST I8 (HOLE 2)) (INTCONST I8 31))))) (REG I1 PF))) (CLOBBER (REG I1 AF)) (SET (REG I1 ZF) (IFTHENELSE I1 (TSTNE I1 (INTCONST I8 (HOLE 2)) (INTCONST I8 0)) (TSTEQ I1 (RSHU I32 (REG I32 (HOLE 1 R32)) (BAND I8 (INTCONST I8 (HOLE 2)) (INTCONST I8 31))) (INTCONST I32 0)) (REG I1 ZF))) (SET (REG I1 SF) (IFTHENELSE I1 (TSTNE I1 (INTCONST I8 (HOLE 2)) (INTCONST I8 0)) (TSTLTS I1 (RSHU I32 (REG I32 (HOLE 1 R32)) (BAND I8 (INTCONST I8 (HOLE 2)) (INTCONST I8 31))) (INTCONST I32 0)) (REG I1 SF))) (SET (REG I1 OF) (IFTHENELSE I1 (TSTLEU I1 (INTCONST I8 (HOLE 2)) (INTCONST I8 1)) (IFTHENELSE I1 (TSTEQ I1 (INTCONST I8 (HOLE 2)) (INTCONST I8 1)) (CONVIT I1 (RSHU I32 (REG I32 (HOLE 1 R32)) (INTCONST I8 31))) (REG I1 OF)) ;undefined (REG I1 OF))))) ;SHR m32,imm8 (DEFINST ("SHR DWORD PTR ??1s,?2c" "SHRL $?2c,??1s" "SHR DWORD PTR ??1s,?2c") (PARALLEL (SET (MEM I32 (HOLE 1)) (RSHU I32 (MEM I32 (HOLE 1)) (BAND I8 (INTCONST I8 (HOLE 2)) (INTCONST I8 31)))) (SET (REG I1 CF) (IFTHENELSE I1 (TSTNE I1 (INTCONST I8 (HOLE 2)) (INTCONST I8 0)) (CONVIT I1 (RSHU I32 (MEM I32 (HOLE 1)) (SUB I8 (BAND I8 (INTCONST I8 (HOLE 2)) (INTCONST I8 31)) (INTCONST I8 1)))) (REG I1 CF))) (SET (REG I1 PF) (IFTHENELSE I1 (TSTNE I1 (INTCONST I8 (HOLE 2)) (INTCONST I8 0)) (PARITY I1 (CONVIT I8 (RSHU I32 (MEM I32 (HOLE 1)) (BAND I8 (INTCONST I8 (HOLE 2)) (INTCONST I8 31))))) (REG I1 PF))) (CLOBBER (REG I1 AF)) (SET (REG I1 ZF) (IFTHENELSE I1 (TSTNE I1 (INTCONST I8 (HOLE 2)) (INTCONST I8 0)) (TSTEQ I1 (RSHU I32 (MEM I32 (HOLE 1)) (BAND I8 (INTCONST I8 (HOLE 2)) (INTCONST I8 31))) (INTCONST I32 0)) (REG I1 ZF))) (SET (REG I1 SF) (IFTHENELSE I1 (TSTNE I1 (INTCONST I8 (HOLE 2)) (INTCONST I8 0)) (TSTLTS I1 (RSHU I32 (MEM I32 (HOLE 1)) (BAND I8 (INTCONST I8 (HOLE 2)) (INTCONST I8 31))) (INTCONST I32 0)) (REG I1 SF))) (SET (REG I1 OF) (IFTHENELSE I1 (TSTLEU I1 (INTCONST I8 (HOLE 2)) (INTCONST I8 1)) (IFTHENELSE I1 (TSTEQ I1 (INTCONST I8 (HOLE 2)) (INTCONST I8 1)) (CONVIT I1 (RSHU I32 (MEM I32 (HOLE 1)) (INTCONST I8 31))) (REG I1 OF)) ;undefined (REG I1 OF))))) ;SHR r32,CL (DEFINST ("SHR ?1r,CL" "SHR %CL,%?1r" "SHR ?1r,CL") (PARALLEL (SET (REG I32 (HOLE 1 R32)) (RSHU I32 (REG I32 (HOLE 1 R32)) (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31)))) (SET (REG I1 CF) (IFTHENELSE I1 (TSTNE I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 0)) (CONVIT I1 (RSHU I32 (REG I32 (HOLE 1 R32)) (SUB I8 (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31)) (INTCONST I8 1)))) (REG I1 CF))) (SET (REG I1 PF) (IFTHENELSE I1 (TSTNE I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 0)) (PARITY I1 (CONVIT I8 (RSHU I32 (REG I32 (HOLE 1 R32)) (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31))))) (REG I1 PF))) (CLOBBER (REG I1 AF)) (SET (REG I1 ZF) (IFTHENELSE I1 (TSTNE I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 0)) (TSTEQ I1 (RSHU I32 (REG I32 (HOLE 1 R32)) (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31))) (INTCONST I32 0)) (REG I1 ZF))) (SET (REG I1 SF) (IFTHENELSE I1 (TSTNE I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 0)) (TSTLTS I1 (RSHU I32 (REG I32 (HOLE 1 R32)) (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31))) (INTCONST I32 0)) (REG I1 SF))) (SET (REG I1 OF) (IFTHENELSE I1 (TSTLEU I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 1)) (IFTHENELSE I1 (TSTEQ I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 1)) (CONVIT I1 (RSHU I32 (REG I32 (HOLE 1 R32)) (INTCONST I8 31))) (REG I1 OF)) ;undefined (REG I1 OF))))) ;SHR m32,CL (DEFINST ("SHR DWORD PTR ??1s,CL" "SHR %CL,??1s" "SHR DWORD PTR ??1s,CL") (PARALLEL (SET (MEM I32 (HOLE 1)) (RSHU I32 (MEM I32 (HOLE 1)) (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31)))) (SET (REG I1 CF) (IFTHENELSE I1 (TSTNE I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 0)) (CONVIT I1 (RSHU I32 (MEM I32 (HOLE 1)) (SUB I8 (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31)) (INTCONST I8 1)))) (REG I1 CF))) (SET (REG I1 PF) (IFTHENELSE I1 (TSTNE I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 0)) (PARITY I1 (CONVIT I8 (RSHU I32 (MEM I32 (HOLE 1)) (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31))))) (REG I1 PF))) (CLOBBER (REG I1 AF)) (SET (REG I1 ZF) (IFTHENELSE I1 (TSTNE I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 0)) (TSTEQ I1 (RSHU I32 (MEM I32 (HOLE 1)) (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31))) (INTCONST I32 0)) (REG I1 ZF))) (SET (REG I1 SF) (IFTHENELSE I1 (TSTNE I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 0)) (TSTLTS I1 (RSHU I32 (MEM I32 (HOLE 1)) (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31))) (INTCONST I32 0)) (REG I1 SF))) (SET (REG I1 OF) (IFTHENELSE I1 (TSTLEU I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 1)) (IFTHENELSE I1 (TSTEQ I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 1)) (CONVIT I1 (RSHU I32 (MEM I32 (HOLE 1)) (INTCONST I8 31))) (REG I1 OF)) ;undefined (REG I1 OF))))) ;SHRD(shift right double) ;SHRD r16,r16,imm8 (DEFINST ("SHRD ?1w,?2w,?3c" "SHRD $?3c,%?2w,%?1w" "SHRD ?1w,?2w,?3c") (PARALLEL (SET (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (IFTHENELSE I16 (TSTLTU I1 (INTCONST I8 (HOLE 3)) (INTCONST I8 16)) (BOR I16 (RSHU I16 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (BAND I8 (INTCONST I8 (HOLE 3)) (INTCONST I8 31))) (LSH I16 (SUBREG I16 (REG I32 (HOLE 2 R32)) 0) (SUB I8 (INTCONST I8 16) (BAND I8 (INTCONST I8 (HOLE 3)) (INTCONST I8 31))))) ;undefined (SUBREG I16 (REG I32 (HOLE 1 R32)) 0))) (SET (REG I1 CF) (IFTHENELSE I1 (TSTLTU I1 (INTCONST I8 (HOLE 3)) (INTCONST I8 16)) (IFTHENELSE I1 (TSTNE I1 (INTCONST I8 (HOLE 3)) (INTCONST I8 0)) (CONVIT I1 (RSHU I16 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (SUB I8 (BAND I8 (INTCONST I8 (HOLE 3)) (INTCONST I8 31)) (INTCONST I8 1)))) (REG I1 CF)) ;undefined (REG I1 CF))) (SET (REG I1 PF) (IFTHENELSE I1 (TSTLTU I1 (INTCONST I8 (HOLE 3)) (INTCONST I8 16)) (IFTHENELSE I1 (TSTNE I1 (INTCONST I8 (HOLE 3)) (INTCONST I8 0)) (PARITY I1 (CONVIT I8 (BOR I16 (RSHU I16 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (BAND I8 (INTCONST I8 (HOLE 3)) (INTCONST I8 31))) (LSH I16 (SUBREG I16 (REG I32 (HOLE 2 R32)) 0) (SUB I8 (INTCONST I8 16) (BAND I8 (INTCONST I8 (HOLE 3)) (INTCONST I8 31))))))) (REG I1 PF)) ;undefined (REG I1 PF))) (CLOBBER (REG I1 AF)) (SET (REG I1 ZF) (IFTHENELSE I1 (TSTLTU I1 (INTCONST I8 (HOLE 3)) (INTCONST I8 16)) (IFTHENELSE I1 (TSTNE I1 (INTCONST I8 (HOLE 3)) (INTCONST I8 0)) (TSTEQ I1 (BOR I16 (RSHU I16 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (BAND I8 (INTCONST I8 (HOLE 3)) (INTCONST I8 31))) (LSH I16 (SUBREG I16 (REG I32 (HOLE 2 R32)) 0) (SUB I8 (INTCONST I8 16) (BAND I8 (INTCONST I8 (HOLE 3)) (INTCONST I8 31))))) (INTCONST I16 0)) (REG I1 ZF)) ;undefined (REG I1 ZF))) (SET (REG I1 SF) (IFTHENELSE I1 (TSTLTU I1 (INTCONST I8 (HOLE 3)) (INTCONST I8 16)) (IFTHENELSE I1 (TSTNE I1 (INTCONST I8 (HOLE 3)) (INTCONST I8 0)) (TSTLTS I1 (BOR I16 (RSHU I16 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (BAND I8 (INTCONST I8 (HOLE 3)) (INTCONST I8 31))) (LSH I16 (SUBREG I16 (REG I32 (HOLE 2 R32)) 0) (SUB I8 (INTCONST I8 16) (BAND I8 (INTCONST I8 (HOLE 3)) (INTCONST I8 31))))) (INTCONST I16 0)) (REG I1 SF)) ;undefined (REG I1 SF))) (SET (REG I1 OF) (IFTHENELSE I1 (TSTLEU I1 (INTCONST I8 (HOLE 3)) (INTCONST I8 1)) (IFTHENELSE I1 (TSTEQ I1 (INTCONST I8 (HOLE 3)) (INTCONST I8 1)) (BXOR I1 (CONVIT I1 (RSHU I16 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (INTCONST I8 15))) (CONVIT I1 (SUBREG I16 (REG I32 (HOLE 2 R32)) 0))) (REG I1 OF)) ;undefined (REG I1 OF))))) ;SHRD m16,r16,imm8 (DEFINST ("SHRD WORD PTR ??1s,?2w,?3c" "SHRD $?3c,%?2w,??1s" "SHRD WORD PTR ??1s,?2w,?3c") (PARALLEL (SET (MEM I16 (HOLE 1)) (IFTHENELSE I16 (TSTLTU I1 (INTCONST I8 (HOLE 3)) (INTCONST I8 16)) (BOR I16 (RSHU I16 (MEM I16 (HOLE 1)) (BAND I8 (INTCONST I8 (HOLE 3)) (INTCONST I8 31))) (LSH I16 (SUBREG I16 (REG I32 (HOLE 2 R32)) 0) (SUB I8 (INTCONST I8 16) (BAND I8 (INTCONST I8 (HOLE 3)) (INTCONST I8 31))))) ;undefined (MEM I16 (HOLE 1)))) (SET (REG I1 CF) (IFTHENELSE I1 (TSTLTU I1 (INTCONST I8 (HOLE 3)) (INTCONST I8 16)) (IFTHENELSE I1 (TSTNE I1 (INTCONST I8 (HOLE 3)) (INTCONST I8 0)) (CONVIT I1 (RSHU I16 (MEM I16 (HOLE 1)) (SUB I8 (BAND I8 (INTCONST I8 (HOLE 3)) (INTCONST I8 31)) (INTCONST I8 1)))) (REG I1 CF)) ;undefined (REG I1 CF))) (SET (REG I1 PF) (IFTHENELSE I1 (TSTLTU I1 (INTCONST I8 (HOLE 3)) (INTCONST I8 16)) (IFTHENELSE I1 (TSTNE I1 (INTCONST I8 (HOLE 3)) (INTCONST I8 0)) (PARITY I1 (CONVIT I8 (BOR I16 (RSHU I16 (MEM I16 (HOLE 1)) (BAND I8 (INTCONST I8 (HOLE 3)) (INTCONST I8 31))) (LSH I16 (SUBREG I16 (REG I32 (HOLE 2 R32)) 0) (SUB I8 (INTCONST I8 16) (BAND I8 (INTCONST I8 (HOLE 3)) (INTCONST I8 31))))))) (REG I1 PF)) ;undefined (REG I1 PF))) (CLOBBER (REG I1 AF)) (SET (REG I1 ZF) (IFTHENELSE I1 (TSTLTU I1 (INTCONST I8 (HOLE 3)) (INTCONST I8 16)) (IFTHENELSE I1 (TSTNE I1 (INTCONST I8 (HOLE 3)) (INTCONST I8 0)) (TSTEQ I1 (BOR I16 (RSHU I16 (MEM I16 (HOLE 1)) (BAND I8 (INTCONST I8 (HOLE 3)) (INTCONST I8 31))) (LSH I16 (SUBREG I16 (REG I32 (HOLE 2 R32)) 0) (SUB I8 (INTCONST I8 16) (BAND I8 (INTCONST I8 (HOLE 3)) (INTCONST I8 31))))) (INTCONST I16 0)) (REG I1 ZF)) ;undefined (REG I1 ZF))) (SET (REG I1 SF) (IFTHENELSE I1 (TSTLTU I1 (INTCONST I8 (HOLE 3)) (INTCONST I8 16)) (IFTHENELSE I1 (TSTNE I1 (INTCONST I8 (HOLE 3)) (INTCONST I8 0)) (TSTLTS I1 (BOR I16 (RSHU I16 (MEM I16 (HOLE 1)) (BAND I8 (INTCONST I8 (HOLE 3)) (INTCONST I8 31))) (LSH I16 (SUBREG I16 (REG I32 (HOLE 2 R32)) 0) (SUB I8 (INTCONST I8 16) (BAND I8 (INTCONST I8 (HOLE 3)) (INTCONST I8 31))))) (INTCONST I16 0)) (REG I1 SF)) ;undefined (REG I1 SF))) (SET (REG I1 OF) (IFTHENELSE I1 (TSTLEU I1 (INTCONST I8 (HOLE 3)) (INTCONST I8 1)) (IFTHENELSE I1 (TSTEQ I1 (INTCONST I8 (HOLE 3)) (INTCONST I8 1)) (BXOR I1 (CONVIT I1 (RSHU I16 (MEM I16 (HOLE 1)) (INTCONST I8 15))) (CONVIT I1 (SUBREG I16 (REG I32 (HOLE 2 R32)) 0))) (REG I1 OF)) ;undefined (REG I1 OF))))) ;SHRD r16,r16,CL (DEFINST ("SHRD ?1w,?2w,CL" "SHRD %CL,%?2w,%?1w" "SHRD ?1w,?2w,CL") (PARALLEL (SET (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (IFTHENELSE I16 (TSTLTU I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 16)) (BOR I16 (RSHU I16 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31))) (LSH I16 (SUBREG I16 (REG I32 (HOLE 2 R32)) 0) (SUB I8 (INTCONST I8 16) (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31))))) ;undefined (SUBREG I16 (REG I32 (HOLE 1 R32)) 0))) (SET (REG I1 CF) (IFTHENELSE I1 (TSTLTU I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 16)) (IFTHENELSE I1 (TSTNE I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 0)) (CONVIT I1 (RSHU I16 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (SUB I8 (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31)) (INTCONST I8 1)))) (REG I1 CF)) ;undefined (REG I1 CF))) (SET (REG I1 PF) (IFTHENELSE I1 (TSTLTU I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 16)) (IFTHENELSE I1 (TSTNE I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 0)) (PARITY I1 (CONVIT I8 (BOR I16 (RSHU I16 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31))) (LSH I16 (SUBREG I16 (REG I32 (HOLE 2 R32)) 0) (SUB I8 (INTCONST I8 16) (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31))))))) (REG I1 PF)) ;undefined (REG I1 PF))) (CLOBBER (REG I1 AF)) (SET (REG I1 ZF) (IFTHENELSE I1 (TSTLTU I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 16)) (IFTHENELSE I1 (TSTNE I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 0)) (TSTEQ I1 (BOR I16 (RSHU I16 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31))) (LSH I16 (SUBREG I16 (REG I32 (HOLE 2 R32)) 0) (SUB I8 (INTCONST I8 16) (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31))))) (INTCONST I16 0)) (REG I1 ZF)) ;undefined (REG I1 ZF))) (SET (REG I1 SF) (IFTHENELSE I1 (TSTLTU I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 16)) (IFTHENELSE I1 (TSTNE I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 0)) (TSTLTS I1 (BOR I16 (RSHU I16 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31))) (LSH I16 (SUBREG I16 (REG I32 (HOLE 2 R32)) 0) (SUB I8 (INTCONST I8 16) (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31))))) (INTCONST I16 0)) (REG I1 SF)) ;undefined (REG I1 SF))) (SET (REG I1 OF) (IFTHENELSE I1 (TSTLEU I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 1)) (IFTHENELSE I1 (TSTEQ I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 1)) (BXOR I1 (CONVIT I1 (RSHU I16 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (INTCONST I8 15))) (CONVIT I1 (SUBREG I16 (REG I32 (HOLE 2 R32)) 0))) (REG I1 OF)) ;undefined (REG I1 OF))))) ;SHRD m16,r16,CL (DEFINST ("SHRD WORD PTR ??1s,?2w,CL" "SHRD %CL,%?2w,??1s" "SHRD WORD PTR ??1s,?2w,CL") (PARALLEL (SET (MEM I16 (HOLE 1)) (IFTHENELSE I16 (TSTLTU I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 16)) (BOR I16 (RSHU I16 (MEM I16 (HOLE 1)) (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31))) (LSH I16 (SUBREG I16 (REG I32 (HOLE 2 R32)) 0) (SUB I8 (INTCONST I8 16) (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31))))) ;undefined (MEM I16 (HOLE 1)))) (SET (REG I1 CF) (IFTHENELSE I1 (TSTLTU I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 16)) (IFTHENELSE I1 (TSTNE I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 0)) (CONVIT I1 (RSHU I16 (MEM I16 (HOLE 1)) (SUB I8 (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31)) (INTCONST I8 1)))) (REG I1 CF)) ;undefined (REG I1 CF))) (SET (REG I1 PF) (IFTHENELSE I1 (TSTLTU I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 16)) (IFTHENELSE I1 (TSTNE I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 0)) (PARITY I1 (CONVIT I8 (BOR I16 (RSHU I16 (MEM I16 (HOLE 1)) (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31))) (LSH I16 (SUBREG I16 (REG I32 (HOLE 2 R32)) 0) (SUB I8 (INTCONST I8 16) (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31))))))) (REG I1 PF)) ;undefined (REG I1 PF))) (CLOBBER (REG I1 AF)) (SET (REG I1 ZF) (IFTHENELSE I1 (TSTLTU I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 16)) (IFTHENELSE I1 (TSTNE I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 0)) (TSTEQ I1 (BOR I16 (RSHU I16 (MEM I16 (HOLE 1)) (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31))) (LSH I16 (SUBREG I16 (REG I32 (HOLE 2 R32)) 0) (SUB I8 (INTCONST I8 16) (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31))))) (INTCONST I16 0)) (REG I1 ZF)) ;undefined (REG I1 ZF))) (SET (REG I1 SF) (IFTHENELSE I1 (TSTLTU I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 16)) (IFTHENELSE I1 (TSTNE I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 0)) (TSTLTS I1 (BOR I16 (RSHU I16 (MEM I16 (HOLE 1)) (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31))) (LSH I16 (SUBREG I16 (REG I32 (HOLE 2 R32)) 0) (SUB I8 (INTCONST I8 16) (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31))))) (INTCONST I16 0)) (REG I1 SF)) ;undefined (REG I1 SF))) (SET (REG I1 OF) (IFTHENELSE I1 (TSTLEU I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 1)) (IFTHENELSE I1 (TSTEQ I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 1)) (BXOR I1 (CONVIT I1 (RSHU I16 (MEM I16 (HOLE 1)) (INTCONST I8 15))) (CONVIT I1 (SUBREG I16 (REG I32 (HOLE 2 R32)) 0))) (REG I1 OF)) ;undefined (REG I1 OF))))) ;SHRD r32,r32,imm8 (DEFINST ("SHRD ?1r,?2r,?3c" "SHRD $?3c,%?2r,%?1r" "SHRD ?1r,?2r,?3c") (PARALLEL (SET (REG I32 (HOLE 1 R32)) (BOR I32 (RSHU I32 (REG I32 (HOLE 1 R32)) (BAND I8 (INTCONST I8 (HOLE 3)) (INTCONST I8 31))) (LSH I32 (REG I32 (HOLE 2 R32)) (SUB I8 (INTCONST I8 32) (BAND I8 (INTCONST I8 (HOLE 3)) (INTCONST I8 31)))))) (SET (REG I1 CF) (IFTHENELSE I1 (TSTNE I1 (INTCONST I8 (HOLE 3)) (INTCONST I8 0)) (CONVIT I1 (RSHU I32 (REG I32 (HOLE 1 R32)) (SUB I8 (BAND I8 (INTCONST I8 (HOLE 3)) (INTCONST I8 31)) (INTCONST I8 1)))) (REG I1 CF))) (SET (REG I1 PF) (IFTHENELSE I1 (TSTNE I1 (INTCONST I8 (HOLE 3)) (INTCONST I8 0)) (PARITY I1 (CONVIT I8 (BOR I32 (RSHU I32 (REG I32 (HOLE 1 R32)) (BAND I8 (INTCONST I8 (HOLE 3)) (INTCONST I8 31))) (LSH I32 (REG I32 (HOLE 2 R32)) (SUB I8 (INTCONST I8 32) (BAND I8 (INTCONST I8 (HOLE 3)) (INTCONST I8 31))))))) (REG I1 PF))) (CLOBBER (REG I1 AF)) (SET (REG I1 ZF) (IFTHENELSE I1 (TSTNE I1 (INTCONST I8 (HOLE 3)) (INTCONST I8 0)) (TSTEQ I1 (BOR I32 (RSHU I32 (REG I32 (HOLE 1 R32)) (BAND I8 (INTCONST I8 (HOLE 3)) (INTCONST I8 31))) (LSH I32 (REG I32 (HOLE 2 R32)) (SUB I8 (INTCONST I8 32) (BAND I8 (INTCONST I8 (HOLE 3)) (INTCONST I8 31))))) (INTCONST I32 0)) (REG I1 ZF))) (SET (REG I1 SF) (IFTHENELSE I1 (TSTNE I1 (INTCONST I8 (HOLE 3)) (INTCONST I8 0)) (TSTLTS I1 (BOR I32 (RSHU I32 (REG I32 (HOLE 1 R32)) (BAND I8 (INTCONST I8 (HOLE 3)) (INTCONST I8 31))) (LSH I32 (REG I32 (HOLE 2 R32)) (SUB I8 (INTCONST I8 32) (BAND I8 (INTCONST I8 (HOLE 3)) (INTCONST I8 31))))) (INTCONST I32 0)) (REG I1 SF))) (SET (REG I1 OF) (IFTHENELSE I1 (TSTLEU I1 (INTCONST I8 (HOLE 3)) (INTCONST I8 1)) (IFTHENELSE I1 (TSTEQ I1 (INTCONST I8 (HOLE 3)) (INTCONST I8 1)) (BXOR I1 (CONVIT I1 (RSHU I32 (REG I32 (HOLE 1 R32)) (INTCONST I8 31))) (CONVIT I1 (REG I32 (HOLE 2 R32)))) (REG I1 OF)) ;undefined (REG I1 OF))))) ;SHRD m32,r32,imm8 (DEFINST ("SHRD DWORD PTR ??1s,?2r,?3c" "SHRD $?3c,%?2r,??1s" "SHRD DWORD PTR ??1s,?2r,?3c") (PARALLEL (SET (MEM I32 (HOLE 1)) (BOR I32 (RSHU I32 (MEM I32 (HOLE 1)) (BAND I8 (INTCONST I8 (HOLE 3)) (INTCONST I8 31))) (LSH I32 (REG I32 (HOLE 2 R32)) (SUB I8 (INTCONST I8 32) (BAND I8 (INTCONST I8 (HOLE 3)) (INTCONST I8 31)))))) (SET (REG I1 CF) (IFTHENELSE I1 (TSTNE I1 (INTCONST I8 (HOLE 3)) (INTCONST I8 0)) (CONVIT I1 (RSHU I32 (MEM I32 (HOLE 1)) (SUB I8 (BAND I8 (INTCONST I8 (HOLE 3)) (INTCONST I8 31)) (INTCONST I8 1)))) (REG I1 CF))) (SET (REG I1 PF) (IFTHENELSE I1 (TSTNE I1 (INTCONST I8 (HOLE 3)) (INTCONST I8 0)) (PARITY I1 (CONVIT I8 (BOR I32 (RSHU I32 (MEM I32 (HOLE 1)) (BAND I8 (INTCONST I8 (HOLE 3)) (INTCONST I8 31))) (LSH I32 (REG I32 (HOLE 2 R32)) (SUB I8 (INTCONST I8 32) (BAND I8 (INTCONST I8 (HOLE 3)) (INTCONST I8 31))))))) (REG I1 PF))) (CLOBBER (REG I1 AF)) (SET (REG I1 ZF) (IFTHENELSE I1 (TSTNE I1 (INTCONST I8 (HOLE 3)) (INTCONST I8 0)) (TSTEQ I1 (BOR I32 (RSHU I32 (MEM I32 (HOLE 1)) (BAND I8 (INTCONST I8 (HOLE 3)) (INTCONST I8 31))) (LSH I32 (REG I32 (HOLE 2 R32)) (SUB I8 (INTCONST I8 32) (BAND I8 (INTCONST I8 (HOLE 3)) (INTCONST I8 31))))) (INTCONST I32 0)) (REG I1 ZF))) (SET (REG I1 SF) (IFTHENELSE I1 (TSTNE I1 (INTCONST I8 (HOLE 3)) (INTCONST I8 0)) (TSTLTS I1 (BOR I32 (RSHU I32 (MEM I32 (HOLE 1)) (BAND I8 (INTCONST I8 (HOLE 3)) (INTCONST I8 31))) (LSH I32 (REG I32 (HOLE 2 R32)) (SUB I8 (INTCONST I8 32) (BAND I8 (INTCONST I8 (HOLE 3)) (INTCONST I8 31))))) (INTCONST I32 0)) (REG I1 SF))) (SET (REG I1 OF) (IFTHENELSE I1 (TSTLEU I1 (INTCONST I8 (HOLE 3)) (INTCONST I8 1)) (IFTHENELSE I1 (TSTEQ I1 (INTCONST I8 (HOLE 3)) (INTCONST I8 1)) (BXOR I1 (CONVIT I1 (RSHU I32 (MEM I32 (HOLE 1)) (INTCONST I8 31))) (CONVIT I1 (REG I32 (HOLE 2 R32)))) (REG I1 OF)) ;undefined (REG I1 OF))))) ;SHRD r32,r32,CL (DEFINST ("SHRD ?1r,?2r,CL" "SHRD %CL,%?2r,%?1r" "SHRD ?1r,?2r,CL") (PARALLEL (SET (REG I32 (HOLE 1 R32)) (BOR I32 (RSHU I32 (REG I32 (HOLE 1 R32)) (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31))) (LSH I32 (REG I32 (HOLE 2 R32)) (SUB I8 (INTCONST I8 32) (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31)))))) (SET (REG I1 CF) (IFTHENELSE I1 (TSTNE I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 0)) (CONVIT I1 (RSHU I32 (REG I32 (HOLE 1 R32)) (SUB I8 (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31)) (INTCONST I8 1)))) (REG I1 CF))) (SET (REG I1 PF) (IFTHENELSE I1 (TSTNE I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 0)) (PARITY I1 (CONVIT I8 (BOR I32 (RSHU I32 (REG I32 (HOLE 1 R32)) (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31))) (LSH I32 (REG I32 (HOLE 2 R32)) (SUB I8 (INTCONST I8 32) (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31))))))) (REG I1 PF))) (CLOBBER (REG I1 AF)) (SET (REG I1 ZF) (IFTHENELSE I1 (TSTNE I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 0)) (TSTEQ I1 (BOR I32 (RSHU I32 (REG I32 (HOLE 1 R32)) (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31))) (LSH I32 (REG I32 (HOLE 2 R32)) (SUB I8 (INTCONST I8 32) (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31))))) (INTCONST I32 0)) (REG I1 ZF))) (SET (REG I1 SF) (IFTHENELSE I1 (TSTNE I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 0)) (TSTLTS I1 (BOR I32 (RSHU I32 (REG I32 (HOLE 1 R32)) (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31))) (LSH I32 (REG I32 (HOLE 2 R32)) (SUB I8 (INTCONST I8 32) (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31))))) (INTCONST I32 0)) (REG I1 SF))) (SET (REG I1 OF) (IFTHENELSE I1 (TSTLEU I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 1)) (IFTHENELSE I1 (TSTEQ I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 1)) (BXOR I1 (CONVIT I1 (RSHU I32 (REG I32 (HOLE 1 R32)) (INTCONST I8 31))) (CONVIT I1 (REG I32 (HOLE 2 R32)))) (REG I1 OF)) ;undefined (REG I1 OF))))) ;SHRD m32,r32,CL (DEFINST ("SHRD DWORD PTR ??1s,?2r,CL" "SHRD %CL,%?2r,??1s" "SHRD DWORD PTR ??1s,?2r,CL") (PARALLEL (SET (MEM I32 (HOLE 1)) (BOR I32 (RSHU I32 (MEM I32 (HOLE 1)) (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31))) (LSH I32 (REG I32 (HOLE 2 R32)) (SUB I8 (INTCONST I8 32) (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31)))))) (SET (REG I1 CF) (IFTHENELSE I1 (TSTNE I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 0)) (CONVIT I1 (RSHU I32 (MEM I32 (HOLE 1)) (SUB I8 (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31)) (INTCONST I8 1)))) (REG I1 CF))) (SET (REG I1 PF) (IFTHENELSE I1 (TSTNE I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 0)) (PARITY I1 (CONVIT I8 (BOR I32 (RSHU I32 (MEM I32 (HOLE 1)) (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31))) (LSH I32 (REG I32 (HOLE 2 R32)) (SUB I8 (INTCONST I8 32) (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31))))))) (REG I1 PF))) (CLOBBER (REG I1 AF)) (SET (REG I1 ZF) (IFTHENELSE I1 (TSTNE I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 0)) (TSTEQ I1 (BOR I32 (RSHU I32 (MEM I32 (HOLE 1)) (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31))) (LSH I32 (REG I32 (HOLE 2 R32)) (SUB I8 (INTCONST I8 32) (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31))))) (INTCONST I32 0)) (REG I1 ZF))) (SET (REG I1 SF) (IFTHENELSE I1 (TSTNE I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 0)) (TSTLTS I1 (BOR I32 (RSHU I32 (MEM I32 (HOLE 1)) (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31))) (LSH I32 (REG I32 (HOLE 2 R32)) (SUB I8 (INTCONST I8 32) (BAND I8 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 31))))) (INTCONST I32 0)) (REG I1 SF))) (SET (REG I1 OF) (IFTHENELSE I1 (TSTLEU I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 1)) (IFTHENELSE I1 (TSTEQ I1 (SUBREG I8 (REG I32 ECX) 0) (INTCONST I8 1)) (BXOR I1 (CONVIT I1 (RSHU I32 (MEM I32 (HOLE 1)) (INTCONST I8 31))) (CONVIT I1 (REG I32 (HOLE 2 R32)))) (REG I1 OF)) ;undefined (REG I1 OF))))) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; 5.1.6 ビット命令とバイト命令 ; Bit Test ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;BT r/m16, r16 (DEFINST ("BT ?1w,?2w" "BT %?2w,%?1w" "BT ?1w,?2w") (PARALLEL (SET (REG I1 CF) (CONVIT I1 (RSHS I16 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (BAND I16 (SUBREG I16 (REG I32 (HOLE 2 R32)) 0) (INTCONST I16 15))))) (CLOBBER (REG I1 PF)) (CLOBBER (REG I1 AF)) (CLOBBER (REG I1 ZF)) (CLOBBER (REG I1 SF)) (CLOBBER (REG I1 OF)))) (DEFINST ("BT WORD PTR ??1s,?2w" "BT %?2w,??1s" "BT WORD PTR ??1s,?2w") (PARALLEL (SET (REG I1 CF) (CONVIT I1 (RSHS I16 (MEM I16 (ADD I32 (HOLE 1) (CONVSX I32 (LSH I16 (RSHS I16 (SUBREG I16 (REG I32 (HOLE 2 R32)) 0) (INTCONST I16 4)) (INTCONST I16 1))))) (BAND I16 (SUBREG I16 (REG I32 (HOLE 2 R32)) 0) (INTCONST I16 15))))) (CLOBBER (REG I1 PF)) (CLOBBER (REG I1 AF)) (CLOBBER (REG I1 ZF)) (CLOBBER (REG I1 SF)) (CLOBBER (REG I1 OF)))) ; (REG I32 (HOLE 1 R32)) ==> (MEM I32 (HOLE 1)) ; or (SUBREG I16 (REG I32 (HOLE 1 R32))) ==> (MEM I16 (HOLE 1)) ;BT r/m16, imm8 (DEFINST ("BT ?1w,?2c" "BT $?2c,%?1w" "nil") (PARALLEL (SET (REG I1 CF) (CONVIT I1 (RSHS I16 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (BAND I8 (INTCONST I8 (HOLE 2))(INTCONST I8 15))))) (CLOBBER (REG I1 PF)) (CLOBBER (REG I1 AF)) (CLOBBER (REG I1 ZF)) (CLOBBER (REG I1 SF)) (CLOBBER (REG I1 OF)))) ; (SUBREG I16 (REG I32 (HOLE 2 R32)) 0) ==> ; (CONVSX I16 (INTCONST I8 (HOLE 2))) (DEFINST ("BT WORD PTR ??1s,?2c" "BTW $?2c,??1s" "nil") (PARALLEL (SET (REG I1 CF) (CONVIT I1 (RSHS I16 (MEM I16 (HOLE 1)) (BAND I8 (INTCONST I8 (HOLE 2))(INTCONST I8 15))))) (CLOBBER (REG I1 PF)) (CLOBBER (REG I1 AF)) (CLOBBER (REG I1 ZF)) (CLOBBER (REG I1 SF)) (CLOBBER (REG I1 OF)))) ; (REG I32 (HOLE 1 R32)) ==> (MEM I32 (HOLE 1)) ; or (SUBREG I16 (REG I32 (HOLE 1 R32))) ==> (MEM I16 (HOLE 1)) ;BT r/m32, r32 (DEFINST ("BT ?1r,?2r" "BT %?2r,%?1r" "BT ?1r,?2r") (PARALLEL (SET (REG I1 CF) (CONVIT I1 (RSHS I32 (REG I32 (HOLE 1 R32)) (BAND I32 (REG I32 (HOLE 2 R32)) (INTCONST I32 31))))) (CLOBBER (REG I1 PF)) (CLOBBER (REG I1 AF)) (CLOBBER (REG I1 ZF)) (CLOBBER (REG I1 SF)) (CLOBBER (REG I1 OF)))) (DEFINST ("BT DWORD PTR ??1s,?2r" "BT %?2r,??1s" "BT DWORD PTR ??1s,?2r") (PARALLEL (SET (REG I1 CF) (CONVIT I1 (RSHS I32 (MEM I32 (ADD I32 (HOLE 1) (LSH I32 (RSHS I32 (REG I32 (HOLE 2 R32))(INTCONST I32 5)) (INTCONST I32 2)))) (BAND I32 (REG I32 (HOLE 2 R32)) (INTCONST I32 31))))) (CLOBBER (REG I1 PF)) (CLOBBER (REG I1 AF)) (CLOBBER (REG I1 ZF)) (CLOBBER (REG I1 SF)) (CLOBBER (REG I1 OF)))) ; (REG I32 (HOLE 1 R32)) ==> (MEM I32 (HOLE 1)) ;BT r/m32, imm8 (DEFINST ("BT ?1r,?2c" "BT $?2c,%?1r" "nil") (PARALLEL (SET (REG I1 CF) (CONVIT I1 (RSHS I32 (REG I32 (HOLE 1 R32)) (BAND I8 (INTCONST I8 (HOLE 2))(INTCONST I8 31))))) (CLOBBER (REG I1 PF)) (CLOBBER (REG I1 AF)) (CLOBBER (REG I1 ZF)) (CLOBBER (REG I1 SF)) (CLOBBER (REG I1 OF)))) ; (REG I32 (HOLE 2 R32)) ==> (CONVSX I32 (INTCONST I8 (HOLE 2))) (DEFINST ("BT DWORD PTR ??1s,?2c" "BTL $?2c,??1s" "nil") (PARALLEL (SET (REG I1 CF) (CONVIT I1 (RSHS I32 (MEM I32 (HOLE 1)) (BAND I8 (INTCONST I8 (HOLE 2)) (INTCONST I8 31))))) (CLOBBER (REG I1 PF)) (CLOBBER (REG I1 AF)) (CLOBBER (REG I1 ZF)) (CLOBBER (REG I1 SF)) (CLOBBER (REG I1 OF)))) ; (REG I32 (HOLE 1 R32)) ==> (MEM I32 (HOLE 1)) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; 5.1.6 ビット命令とバイト命令 ; Bit Test and Complement ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;BTC r/m16, r16 (DEFINST ("BTC ?1w,?2w" "BTC %?2w,%?1w" "BTC ?1w,?2w") (PARALLEL (SET (REG I1 CF) (CONVIT I1 (RSHS I16 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (BAND I16 (SUBREG I16 (REG I32 (HOLE 2 R32)) 0) (INTCONST I16 15))))) (SET (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (BXOR I16 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (LSH I16 (INTCONST I16 1) (BAND I16 (SUBREG I16 (REG I32 (HOLE 2 R32)) 0) (INTCONST I16 15))))) (CLOBBER (REG I1 PF)) (CLOBBER (REG I1 AF)) (CLOBBER (REG I1 ZF)) (CLOBBER (REG I1 SF)) (CLOBBER (REG I1 OF)))) (DEFINST ("BTC WORD PTR ??1s,?2w" "BTC %?2w,??1s" "BTC WORD PTR ??1s,?2w") (PARALLEL (SET (REG I1 CF) (CONVIT I1 (RSHS I16 (MEM I16 (ADD I32 (HOLE 1) (CONVSX I32 (LSH I16 (RSHS I16 (SUBREG I16 (REG I32 (HOLE 2 R32)) 0) (INTCONST I16 4)) (INTCONST I16 1))))) (BAND I16 (SUBREG I16 (REG I32 (HOLE 2 R32)) 0) (INTCONST I16 15))))) (SET (MEM I16 (ADD I32 (HOLE 1) (CONVSX I32 (LSH I16 (RSHS I16 (SUBREG I16 (REG I32 (HOLE 2 R32)) 0) (INTCONST I16 4)) (INTCONST I16 1))))) (BXOR I16 (MEM I16 (ADD I32 (HOLE 1) (CONVSX I32 (LSH I16 (RSHS I16 (SUBREG I16 (REG I32 (HOLE 2 R32)) 0) (INTCONST I16 4)) (INTCONST I16 1))))) (LSH I16 (INTCONST I16 1) (BAND I16 (SUBREG I16 (REG I32 (HOLE 2 R32)) 0) (INTCONST I16 15))))) (CLOBBER (REG I1 PF)) (CLOBBER (REG I1 AF)) (CLOBBER (REG I1 ZF)) (CLOBBER (REG I1 SF)) (CLOBBER (REG I1 OF)))) ; (REG I32 (HOLE 1 R32)) ==> (MEM I32 (HOLE 1)) ; or (SUBREG I16 (REG I32 (HOLE 1 R32))) ==> (MEM I16 (HOLE 1)) ;BTC r/m16, imm8 (DEFINST ("BTC ?1w,?2c" "BTC $?2c,%?1w" "nil") (PARALLEL (SET (REG I1 CF) (CONVIT I1 (RSHS I16 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (BAND I8 (INTCONST I8 (HOLE 2)) (INTCONST I8 15))))) (SET (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (BXOR I16 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (LSH I16 (INTCONST I16 1) (BAND I8 (INTCONST I8 (HOLE 2))(INTCONST I8 15))))) (CLOBBER (REG I1 PF)) (CLOBBER (REG I1 AF)) (CLOBBER (REG I1 ZF)) (CLOBBER (REG I1 SF)) (CLOBBER (REG I1 OF)))) ; (SUBREG I16 (REG I32 (HOLE 2 R32)) 0) ==> ; (CONVSX I16 (INTCONST I8 (HOLE 2))) (DEFINST ("BTC WORD PTR ??1s,?2c" "BTCW $?2c,??1s" "nil") (PARALLEL (SET (REG I1 CF) (CONVIT I1 (RSHS I16 (MEM I16 (HOLE 1)) (BAND I8 (INTCONST I8 (HOLE 2))(INTCONST I8 15))))) (SET (MEM I16 (HOLE 1)) (BXOR I16 (MEM I16 (HOLE 1)) (LSH I16 (INTCONST I16 1) (BAND I8 (INTCONST I8 (HOLE 2))(INTCONST I8 15))))) (CLOBBER (REG I1 PF)) (CLOBBER (REG I1 AF)) (CLOBBER (REG I1 ZF)) (CLOBBER (REG I1 SF)) (CLOBBER (REG I1 OF)))) ; (REG I32 (HOLE 1 R32)) ==> (MEM I32 (HOLE 1)) ; or (SUBREG I16 (REG I32 (HOLE 1 R32))) ==> (MEM I16 (HOLE 1)) ;BTC r/m32, r32 (DEFINST ("BTC ?1r,?2r" "BTC %?2r,%?1r" "BTC ?1r,?2r") (PARALLEL (SET (REG I1 CF) (CONVIT I1 (RSHS I32 (REG I32 (HOLE 1 R32)) (BAND I32 (REG I32 (HOLE 2 R32)) (INTCONST I32 31))))) (SET (REG I32 (HOLE 1 R32)) (BXOR I32 (REG I32 (HOLE 1 R32)) (LSH I32 (INTCONST I32 1) (BAND I32 (REG I32 (HOLE 2 R32)) (INTCONST I32 31))))) (CLOBBER (REG I1 PF)) (CLOBBER (REG I1 AF)) (CLOBBER (REG I1 ZF)) (CLOBBER (REG I1 SF)) (CLOBBER (REG I1 OF)))) (DEFINST ("BTC DWORD PTR ??1s,?2r" "BTC %?2r,??1s" "BTC DWORD PTR ??1s,?2r") (PARALLEL (SET (REG I1 CF) (CONVIT I1 (RSHS I32 (MEM I32 (ADD I32 (HOLE 1) (LSH I32 (RSHS I32 (REG I32 (HOLE 2 R32)) (INTCONST I32 5)) (INTCONST I32 2)))) (BAND I32 (REG I32 (HOLE 2 R32)) (INTCONST I32 31))))) (SET (MEM I32 (ADD I32 (HOLE 1) (LSH I32 (RSHS I32 (REG I32 (HOLE 2 R32)) (INTCONST I32 5)) (INTCONST I32 2)))) (BXOR I32 (MEM I32 (ADD I32 (HOLE 1) (LSH I32 (RSHS I32 (REG I32 (HOLE 2 R32)) (INTCONST I32 5)) (INTCONST I32 2)))) (LSH I32 (INTCONST I32 1) (BAND I32 (REG I32 (HOLE 2 R32)) (INTCONST I32 31))))) (CLOBBER (REG I1 PF)) (CLOBBER (REG I1 AF)) (CLOBBER (REG I1 ZF)) (CLOBBER (REG I1 SF)) (CLOBBER (REG I1 OF)))) ; (REG I32 (HOLE 1 R32)) ==> (MEM I32 (HOLE 1)) ;BTC r/m32, imm8 (DEFINST ("BTC ?1r,?2c" "BTC $?2c,%?1r" "nil") (PARALLEL (SET (REG I1 CF) (CONVIT I1 (RSHS I32 (REG I32 (HOLE 1 R32)) (BAND I8 (INTCONST I8 (HOLE 2))(INTCONST I8 31))))) (SET (REG I32 (HOLE 1 R32)) (BXOR I32 (REG I32 (HOLE 1 R32)) (LSH I32 (INTCONST I32 1) (BAND I8 (INTCONST I8 (HOLE 2)) (INTCONST I8 31))))) (CLOBBER (REG I1 PF)) (CLOBBER (REG I1 AF)) (CLOBBER (REG I1 ZF)) (CLOBBER (REG I1 SF)) (CLOBBER (REG I1 OF)))) ; (REG I32 (HOLE 2 R32)) ==> (CONVSX I32 (INTCONST I8 (HOLE 2))) (DEFINST ("BTC DWORD PTR ??1s,?2c" "BTCL $?2c,??1s" "nil") (PARALLEL (SET (REG I1 CF) (CONVIT I1 (RSHS I32 (MEM I32 (HOLE 1)) (BAND I8 (INTCONST I8 (HOLE 2))(INTCONST I8 31))))) (SET (MEM I32 (HOLE 1)) (BXOR I32 (MEM I32 (HOLE 1)) (LSH I32 (INTCONST I32 1) (BAND I8 (INTCONST I8 (HOLE 2)) (INTCONST I8 31))))) (CLOBBER (REG I1 PF)) (CLOBBER (REG I1 AF)) (CLOBBER (REG I1 ZF)) (CLOBBER (REG I1 SF)) (CLOBBER (REG I1 OF)))) ; (REG I32 (HOLE 1 R32)) ==> (MEM I32 (HOLE 1)) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; 5.1.6 ビット命令とバイト命令 ; Bit Test and Reset ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;BTR r/m16, r16 (DEFINST ("BTR ?1w,?2w" "BTR %?2w,%?1w" "BTR ?1w,?2w") (PARALLEL (SET (REG I1 CF) (CONVIT I1 (RSHS I16 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (BAND I16 (SUBREG I16 (REG I32 (HOLE 2 R32)) 0) (INTCONST I16 15))))) (SET (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (BAND I16 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (BNOT I16 (LSH I16 (INTCONST I16 1) (BAND I16 (SUBREG I16 (REG I32 (HOLE 2 R32)) 0) (INTCONST I16 15)))))) (CLOBBER (REG I1 PF)) (CLOBBER (REG I1 AF)) (CLOBBER (REG I1 ZF)) (CLOBBER (REG I1 SF)) (CLOBBER (REG I1 OF)))) (DEFINST ("BTR WORD PTR ??1s,?2w" "BTR %?2w,??1s" "BTR WORD PTR ??1s,?2w") (PARALLEL (SET (REG I1 CF) (CONVIT I1 (RSHS I16 (MEM I16 (ADD I32 (HOLE 1) (CONVSX I32 (LSH I16 (RSHS I16 (SUBREG I16 (REG I32 (HOLE 2 R32)) 0) (INTCONST I16 4)) (INTCONST I16 1))))) (BAND I16 (SUBREG I16 (REG I32 (HOLE 2 R32)) 0) (INTCONST I16 15))))) (SET (MEM I16 (ADD I32 (HOLE 1) (CONVSX I32 (LSH I16 (RSHS I16 (SUBREG I16 (REG I32 (HOLE 2 R32)) 0) (INTCONST I16 4)) (INTCONST I16 1))))) (BAND I16 (MEM I16 (ADD I32 (HOLE 1) (CONVSX I32 (LSH I16 (RSHS I16 (SUBREG I16 (REG I32 (HOLE 2 R32)) 0) (INTCONST I16 4)) (INTCONST I16 1))))) (BNOT I16 (LSH I16 (INTCONST I16 1) (BAND I16 (SUBREG I16 (REG I32 (HOLE 2 R32)) 0) (INTCONST I16 15)))))) (CLOBBER (REG I1 PF)) (CLOBBER (REG I1 AF)) (CLOBBER (REG I1 ZF)) (CLOBBER (REG I1 SF)) (CLOBBER (REG I1 OF)))) ; (REG I32 (HOLE 1 R32)) ==> (MEM I32 (HOLE 1)) ; or (SUBREG I16 (REG I32 (HOLE 1 R32))) ==> (MEM I16 (HOLE 1)) ;BTR r/m16, imm8 (DEFINST ("BTR ?1w,?2c" "BTR $?2c,%?1w" "nil") (PARALLEL (SET (REG I1 CF) (CONVIT I1 (RSHS I16 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (BAND I8 (INTCONST I8 (HOLE 2))(INTCONST I8 15))))) (SET (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (BAND I16 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (BNOT I16 (LSH I16 (INTCONST I16 1) (BAND I8 (INTCONST I8 (HOLE 2))(INTCONST I8 15)))))) (CLOBBER (REG I1 PF)) (CLOBBER (REG I1 AF)) (CLOBBER (REG I1 ZF)) (CLOBBER (REG I1 SF)) (CLOBBER (REG I1 OF)))) ; (SUBREG I16 (REG I32 (HOLE 2 R32)) 0) ==> ; (CONVSX I16 (INTCONST I8 (HOLE 2))) (DEFINST ("BTR WORD PTR ??1s,?2c" "BTRW $?2c,??1s" "nil") (PARALLEL (SET (REG I1 CF) (CONVIT I1 (RSHS I16 (MEM I16 (HOLE 1)) (BAND I8 (INTCONST I8 (HOLE 2))(INTCONST I8 15))))) (SET (MEM I16 (HOLE 1)) (BAND I16 (MEM I16 (HOLE 1)) (BNOT I16 (LSH I16 (INTCONST I16 1) (BAND I8 (INTCONST I8 (HOLE 2))(INTCONST I8 15)))))) (CLOBBER (REG I1 PF)) (CLOBBER (REG I1 AF)) (CLOBBER (REG I1 ZF)) (CLOBBER (REG I1 SF)) (CLOBBER (REG I1 OF)))) ; (REG I32 (HOLE 1 R32)) ==> (MEM I32 (HOLE 1)) ; or (SUBREG I16 (REG I32 (HOLE 1 R32))) ==> (MEM I16 (HOLE 1)) ;BTR r/m32, r32 (DEFINST ("BTR ?1r,?2r" "BTR %?2r,%?1r" "BTR ?1r,?2r") (PARALLEL (SET (REG I1 CF) (CONVIT I1 (RSHS I32 (REG I32 (HOLE 1 R32)) (BAND I32 (REG I32 (HOLE 2 R32)) (INTCONST I32 31))))) (SET (REG I32 (HOLE 1 R32)) (BAND I32 (REG I32 (HOLE 1 R32)) (BNOT I32 (LSH I32 (INTCONST I32 1) (BAND I32 (REG I32 (HOLE 2 R32)) (INTCONST I32 31)))))) (CLOBBER (REG I1 PF)) (CLOBBER (REG I1 AF)) (CLOBBER (REG I1 ZF)) (CLOBBER (REG I1 SF)) (CLOBBER (REG I1 OF)))) (DEFINST ("BTR DWORD PTR ??1s,?2r" "BTR %?2r,??1s" "BTR DWORD PTR ??1s,?2r") (PARALLEL (SET (REG I1 CF) (CONVIT I1 (RSHS I32 (MEM I32 (ADD I32 (HOLE 1) (LSH I32 (RSHS I32 (REG I32 (HOLE 2 R32)) (INTCONST I32 5)) (INTCONST I32 2)))) (BAND I32 (REG I32 (HOLE 2 R32)) (INTCONST I32 31))))) (SET (MEM I32 (ADD I32 (HOLE 1) (LSH I32 (RSHS I32 (REG I32 (HOLE 2 R32)) (INTCONST I32 5)) (INTCONST I32 2)))) (BAND I32 (MEM I32 (ADD I32 (HOLE 1) (LSH I32 (RSHS I32 (REG I32 (HOLE 2 R32)) (INTCONST I32 5)) (INTCONST I32 2)))) (BNOT I32 (LSH I32 (INTCONST I32 1) (BAND I32 (REG I32 (HOLE 2 R32))(INTCONST I32 31)))))) (CLOBBER (REG I1 PF)) (CLOBBER (REG I1 AF)) (CLOBBER (REG I1 ZF)) (CLOBBER (REG I1 SF)) (CLOBBER (REG I1 OF)))) ; (REG I32 (HOLE 1 R32)) ==> (MEM I32 (HOLE 1)) ;BTR r/m32, imm8 (DEFINST ("BTR ?1r,?2c" "BTR $?2c,%?1r" "nil") (PARALLEL (SET (REG I1 CF) (CONVIT I1 (RSHS I32 (REG I32 (HOLE 1 R32)) (BAND I8 (INTCONST I8 (HOLE 2))(INTCONST I8 31))))) (SET (REG I32 (HOLE 1 R32)) (BAND I32 (REG I32 (HOLE 1 R32)) (BNOT I32 (LSH I32 (INTCONST I32 1) (BAND I8 (INTCONST I8 (HOLE 2))(INTCONST I8 31)))))) (CLOBBER (REG I1 PF)) (CLOBBER (REG I1 AF)) (CLOBBER (REG I1 ZF)) (CLOBBER (REG I1 SF)) (CLOBBER (REG I1 OF)))) ; (REG I32 (HOLE 2 R32)) ==> (CONVSX I32 (INTCONST I8 (HOLE 2))) (DEFINST ("BTR DWORD PTR ??1s,?2c" "BTRL $?2c,??1s" "nil") (PARALLEL (SET (REG I1 CF) (CONVIT I1 (RSHS I32 (MEM I32 (HOLE 1)) (BAND I8 (INTCONST I8 (HOLE 2))(INTCONST I8 31))))) (SET (MEM I32 (HOLE 1)) (BAND I32 (MEM I32 (HOLE 1)) (BNOT I32 (LSH I32 (INTCONST I32 1) (BAND I8 (INTCONST I8 (HOLE 2))(INTCONST I8 31)))))) (CLOBBER (REG I1 PF)) (CLOBBER (REG I1 AF)) (CLOBBER (REG I1 ZF)) (CLOBBER (REG I1 SF)) (CLOBBER (REG I1 OF)))) ; (REG I32 (HOLE 1 R32)) ==> (MEM I32 (HOLE 1)) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; 5.1.6 ビット命令とバイト命令 ; Bit Test and Set ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;BTS r/m16, r16 (DEFINST ("BTS ?1w,?2w" "BTS %?2w,%?1w" "BTS ?1w,?2w") (PARALLEL (SET (REG I1 CF) (CONVIT I1 (RSHS I16 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (BAND I16 (SUBREG I16 (REG I32 (HOLE 2 R32)) 0) (INTCONST I16 15))))) (SET (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (BOR I16 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (LSH I16 (INTCONST I16 1) (BAND I16 (SUBREG I16 (REG I32 (HOLE 2 R32)) 0) (INTCONST I16 15))))) (CLOBBER (REG I1 PF)) (CLOBBER (REG I1 AF)) (CLOBBER (REG I1 ZF)) (CLOBBER (REG I1 SF)) (CLOBBER (REG I1 OF)))) (DEFINST ("BTS WORD PTR ??1s,?2w" "BTS %?2w,??1s" "BTS WORD PTR ??1s,?2w") (PARALLEL (SET (REG I1 CF) (CONVIT I1 (RSHS I16 (MEM I16 (ADD I32 (HOLE 1) (CONVSX I32 (LSH I16 (RSHS I16 (SUBREG I16 (REG I32 (HOLE 2 R32)) 0) (INTCONST I16 4)) (INTCONST I16 1))))) (BAND I16 (SUBREG I16 (REG I32 (HOLE 2 R32)) 0) (INTCONST I16 15))))) (SET (MEM I16 (ADD I32 (HOLE 1) (CONVSX I32 (LSH I16 (RSHS I16 (SUBREG I16 (REG I32 (HOLE 2 R32)) 0) (INTCONST I16 4)) (INTCONST I16 1))))) (BOR I16 (MEM I16 (ADD I32 (HOLE 1) (CONVSX I32 (LSH I16 (RSHS I16 (SUBREG I16 (REG I32 (HOLE 2 R32)) 0) (INTCONST I16 4)) (INTCONST I16 1))))) (LSH I16 (INTCONST I16 1) (BAND I16 (SUBREG I16 (REG I32 (HOLE 2 R32)) 0) (INTCONST I16 15))))) (CLOBBER (REG I1 PF)) (CLOBBER (REG I1 AF)) (CLOBBER (REG I1 ZF)) (CLOBBER (REG I1 SF)) (CLOBBER (REG I1 OF)))) ; (REG I32 (HOLE 1 R32)) ==> (MEM I32 (HOLE 1)) ; or (SUBREG I16 (REG I32 (HOLE 1 R32))) ==> (MEM I16 (HOLE 1)) ;BTS r/m16, imm8 (DEFINST ("BTS ?1w,?2c" "BTS $?2c,%?1w" "nil") (PARALLEL (SET (REG I1 CF) (CONVIT I1 (RSHS I16 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (BAND I8 (INTCONST I8 (HOLE 2))(INTCONST I8 15))))) (SET (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (BOR I16 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (LSH I16 (INTCONST I16 1) (BAND I8 (INTCONST I8 (HOLE 2))(INTCONST I8 15))))) (CLOBBER (REG I1 PF)) (CLOBBER (REG I1 AF)) (CLOBBER (REG I1 ZF)) (CLOBBER (REG I1 SF)) (CLOBBER (REG I1 OF)))) ; (SUBREG I16 (REG I32 (HOLE 2 R32)) 0) ==> ; (CONVSX I16 (INTCONST I8 (HOLE 2))) (DEFINST ("BTS WORD PTR ??1s,?2c" "BTSW $?2c,??1s" "nil") (PARALLEL (SET (REG I1 CF) (CONVIT I1 (RSHS I16 (MEM I16 (HOLE 1)) (BAND I8 (INTCONST I8 (HOLE 2))(INTCONST I8 15))))) (SET (MEM I16 (HOLE 1)) (BOR I16 (MEM I16 (HOLE 1)) (LSH I16 (INTCONST I16 1) (BAND I8 (INTCONST I8 (HOLE 2))(INTCONST I8 15))))) (CLOBBER (REG I1 PF)) (CLOBBER (REG I1 AF)) (CLOBBER (REG I1 ZF)) (CLOBBER (REG I1 SF)) (CLOBBER (REG I1 OF)))) ; (REG I32 (HOLE 1 R32)) ==> (MEM I32 (HOLE 1)) ; or (SUBREG I16 (REG I32 (HOLE 1 R32))) ==> (MEM I16 (HOLE 1)) ;BTS r/m32, r32 (DEFINST ("BTS ?1r,?2r" "BTS %?2r,%?1r" "BTS ?1r,?2r") (PARALLEL (SET (REG I1 CF) (CONVIT I1 (RSHS I32 (REG I32 (HOLE 1 R32)) (BAND I32 (REG I32 (HOLE 2 R32)) (INTCONST I32 31))))) (SET (REG I32 (HOLE 1 R32)) (BOR I32 (REG I32 (HOLE 1 R32)) (LSH I32 (INTCONST I32 1) (BAND I32 (REG I32 (HOLE 2 R32)) (INTCONST I32 31))))) (CLOBBER (REG I1 PF)) (CLOBBER (REG I1 AF)) (CLOBBER (REG I1 ZF)) (CLOBBER (REG I1 SF)) (CLOBBER (REG I1 OF)))) (DEFINST ("BTS DWORD PTR ??1s,?2r" "BTS %?2r,??1s" "BTS DWORD PTR ??1s,?2r") (PARALLEL (SET (REG I1 CF) (CONVIT I1 (RSHS I32 (MEM I32 (ADD I32 (HOLE 1) (LSH I32 (RSHS I32 (REG I32 (HOLE 2 R32)) (INTCONST I32 5)) (INTCONST I32 2)))) (BAND I32 (REG I32 (HOLE 2 R32)) (INTCONST I32 31))))) (SET (MEM I32 (ADD I32 (HOLE 1) (LSH I32 (RSHS I32 (REG I32 (HOLE 2 R32)) (INTCONST I32 5)) (INTCONST I32 2)))) (BOR I32 (MEM I32 (ADD I32 (HOLE 1) (LSH I32 (RSHS I32 (REG I32 (HOLE 2 R32)) (INTCONST I32 5)) (INTCONST I32 2)))) (LSH I32 (INTCONST I32 1) (BAND I32 (REG I32 (HOLE 2 R32))(INTCONST I32 31))))) (CLOBBER (REG I1 PF)) (CLOBBER (REG I1 AF)) (CLOBBER (REG I1 ZF)) (CLOBBER (REG I1 SF)) (CLOBBER (REG I1 OF)))) ; (REG I32 (HOLE 1 R32)) ==> (MEM I32 (HOLE 1)) ;BTS r/m32, imm8 (DEFINST ("BTS ?1r,?2c" "BTS $?2c,%?1r" "nil") (PARALLEL (SET (REG I1 CF) (CONVIT I1 (RSHS I32 (REG I32 (HOLE 1 R32)) (BAND I8 (INTCONST I8 (HOLE 2))(INTCONST I8 31))))) (SET (REG I32 (HOLE 1 R32)) (BOR I32 (REG I32 (HOLE 1 R32)) (LSH I32 (INTCONST I32 1) (BAND I8 (INTCONST I8 (HOLE 2))(INTCONST I8 31))))) (CLOBBER (REG I1 PF)) (CLOBBER (REG I1 AF)) (CLOBBER (REG I1 ZF)) (CLOBBER (REG I1 SF)) (CLOBBER (REG I1 OF)))) ; (REG I32 (HOLE 2 R32)) ==> (CONVSX I32 (INTCONST I8 (HOLE 2))) (DEFINST ("BTS DWORD PTR ??1s,?2c" "BTSL $?2c,??1s" "nil") (PARALLEL (SET (REG I1 CF) (CONVIT I1 (RSHS I32 (MEM I32 (HOLE 1)) (BAND I8 (INTCONST I8 (HOLE 2))(INTCONST I8 31))))) (SET (MEM I32 (HOLE 1)) (BOR I32 (MEM I32 (HOLE 1)) (LSH I32 (INTCONST I32 1) (BAND I8 (INTCONST I8 (HOLE 2))(INTCONST I8 31))))) (CLOBBER (REG I1 PF)) (CLOBBER (REG I1 AF)) (CLOBBER (REG I1 ZF)) (CLOBBER (REG I1 SF)) (CLOBBER (REG I1 OF)))) ; (REG I32 (HOLE 1 R32)) ==> (MEM I32 (HOLE 1)) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; 5.1.6 ビット命令とバイト命令 ;Set byte if above/Set byte if not below or equal ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;SETA r/m8 (DEFINST ("SETA ?1l" "SETA %?1l" "SETA ?1l") (SET (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (IFTHENELSE I8 (BOR I1 (REG I1 CF) (REG I1 ZF)) (INTCONST I8 0) (INTCONST I8 1)))) (DEFINST ("SETA ?1h" "SETA %?1h" "SETA ?1h") (SET (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (IFTHENELSE I8 (BOR I1 (REG I1 CF) (REG I1 ZF)) (INTCONST I8 0) (INTCONST I8 1)))) (DEFINST ("SETA BYTE PTR ??1s" "SETAB ??1s" "SETA BYTE PTR ??1s") (SET (MEM I8 (HOLE 1)) (IFTHENELSE I8 (BOR I1 (REG I1 CF) (REG I1 ZF)) (INTCONST I8 0) (INTCONST I8 1)))) ; (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) ==> (MEM I8 (HOLE 1)) ;SETA = SETNBE ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; 5.1.6 ビット命令とバイト命令 ;Set byte if above or equal/Set byte if not below/Set byte if not carry ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;SETAE r/m8 (DEFINST ("SETAE ?1l" "SETAE %?1l" "SETAE ?1l") (SET (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (IFTHENELSE I8 (REG I1 CF) (INTCONST I8 0) (INTCONST I8 1)))) (DEFINST ("SETAE ?1h" "SETAE %?1h" "SETAE ?1h") (SET (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (IFTHENELSE I8 (REG I1 CF) (INTCONST I8 0) (INTCONST I8 1)))) (DEFINST ("SETAE BYTE PTR ??1s" "SETAEB ??1s" "SETAE BYTE PTR ??1s") (SET (MEM I8 (HOLE 1)) (IFTHENELSE I8 (REG I1 CF) (INTCONST I8 0) (INTCONST I8 1)))) ; (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) ==> (MEM I8 (HOLE 1)) ;SETAE = SETNB = SETNC ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; 5.1.6 ビット命令とバイト命令 ;Set byte if below/Set byte if not above or equal/Set byte if carry ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;SETB r/m8 (DEFINST ("SETB ?1l" "SETB %?1l" "SETB ?1l") (SET (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (IFTHENELSE I8 (REG I1 CF) (INTCONST I8 1) (INTCONST I8 0)))) (DEFINST ("SETB ?1h" "SETB %?1h" "SETB ?1h") (SET (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (IFTHENELSE I8 (REG I1 CF) (INTCONST I8 1) (INTCONST I8 0)))) (DEFINST ("SETB BYTE PTR ??1s" "SETBB ??1s" "SETB BYTE PTR ??1s") (SET (MEM I8 (HOLE 1)) (IFTHENELSE I8 (REG I1 CF) (INTCONST I8 1) (INTCONST I8 0)))) ; (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) ==> (MEM I8 (HOLE 1)) ;SETB = SETNAE = SETC ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; 5.1.6 ビット命令とバイト命令 ;Set byte if below or equal/Set byte if not above ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;SETBE r/m8 (DEFINST ("SETBE ?1l" "SETBE %?1l" "SETBE ?1l") (SET (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (IFTHENELSE I8 (BOR I1 (REG I1 CF) (REG I1 ZF)) (INTCONST I8 1) (INTCONST I8 0)))) (DEFINST ("SETBE ?1h" "SETBE %?1h" "SETBE ?1h") (SET (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (IFTHENELSE I8 (BOR I1 (REG I1 CF) (REG I1 ZF)) (INTCONST I8 1) (INTCONST I8 0)))) (DEFINST ("SETBE BYTE PTR ??1s" "SETBEB ??1s" "SETBE BYTE PTR ??1s") (SET (MEM I8 (HOLE 1)) (IFTHENELSE I8 (BOR I1 (REG I1 CF) (REG I1 ZF)) (INTCONST I8 1) (INTCONST I8 0)))) ; (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) ==> (MEM I8 (HOLE 1)) ;SETBE = SETNA ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; 5.1.6 ビット命令とバイト命令 ;Set byte if greater/Set byte if not less or equal ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;SETG r/m8 (DEFINST ("SETG ?1l" "SETG %?1l" "SETG ?1l") (SET (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (IFTHENELSE I8 (BOR I1 (REG I1 ZF) (BXOR I1 (REG I1 SF) (REG I1 OF))) (INTCONST I8 0) (INTCONST I8 1)))) (DEFINST ("SETG ?1h" "SETG %?1h" "SETG ?1h") (SET (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (IFTHENELSE I8 (BOR I1 (REG I1 ZF) (BXOR I1 (REG I1 SF) (REG I1 OF))) (INTCONST I8 0) (INTCONST I8 1)))) (DEFINST ("SETG BYTE PTR ??1s" "SETGB ??1s" "SETG BYTE PTR ??1s") (SET (MEM I8 (HOLE 1)) (IFTHENELSE I8 (BOR I1 (REG I1 ZF) (BXOR I1 (REG I1 SF) (REG I1 OF))) (INTCONST I8 0) (INTCONST I8 1)))) ; (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) ==> (MEM I8 (HOLE 1)) ;SETG = SETNLE ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; 5.1.6 ビット命令とバイト命令 ;Set byte if greater/Set byte if not less or equal ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;SETGE r/m8 (DEFINST ("SETGE ?1l" "SETGE %?1l" "SETGE ?1l") (SET (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (IFTHENELSE I8 (BXOR I1 (REG I1 SF) (REG I1 OF)) (INTCONST I8 0) (INTCONST I8 1)))) (DEFINST ("SETGE ?1h" "SETGE %?1h" "SETGE ?1h") (SET (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (IFTHENELSE I8 (BXOR I1 (REG I1 SF) (REG I1 OF)) (INTCONST I8 0) (INTCONST I8 1)))) (DEFINST ("SETGE BYTE PTR ??1s" "SETGEB ??1s" "SETGE BYTE PTR ??1s") (SET (MEM I8 (HOLE 1)) (IFTHENELSE I8 (BXOR I1 (REG I1 SF) (REG I1 OF)) (INTCONST I8 0) (INTCONST I8 1)))) ; (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) ==> (MEM I8 (HOLE 1)) ;SETGE = SETNL ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; 5.1.6 ビット命令とバイト命令 ;Set byte if less/Set byte if not greater or equal ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;SETL r/m8 (DEFINST ("SETL ?1l" "SETL %?1l" "SETL ?1l") (SET (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (IFTHENELSE I8 (BXOR I1 (REG I1 SF) (REG I1 OF)) (INTCONST I8 1) (INTCONST I8 0)))) (DEFINST ("SETL ?1h" "SETL %?1h" "SETL ?1h") (SET (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (IFTHENELSE I8 (BXOR I1 (REG I1 SF) (REG I1 OF)) (INTCONST I8 1) (INTCONST I8 0)))) (DEFINST ("SETL BYTE PTR ??1s" "SETLB ??1s" "SETL BYTE PTR ??1s") (SET (MEM I8 (HOLE 1)) (IFTHENELSE I8 (BXOR I1 (REG I1 SF) (REG I1 OF)) (INTCONST I8 1) (INTCONST I8 0)))) ; (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) ==> (MEM I8 (HOLE 1)) ;SETL = SETNGE ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; 5.1.6 ビット命令とバイト命令 ;Set byte if less or equal/Set byte if not greater ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;SETLE r/m8 (DEFINST ("SETLE ?1l" "SETLE %?1l" "SETLE ?1l") (SET (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (IFTHENELSE I8 (BOR I1 (REG I1 ZF) (BXOR I1 (REG I1 SF) (REG I1 OF))) (INTCONST I8 1) (INTCONST I8 0)))) (DEFINST ("SETLE ?1h" "SETLE %?1h" "SETLE ?1h") (SET (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (IFTHENELSE I8 (BOR I1 (REG I1 ZF) (BXOR I1 (REG I1 SF) (REG I1 OF))) (INTCONST I8 1) (INTCONST I8 0)))) (DEFINST ("SETLE BYTE PTR ??1s" "SETLEB ??1s" "SETLE BYTE PTR ??1s") (SET (MEM I8 (HOLE 1)) (IFTHENELSE I8 (BOR I1 (REG I1 ZF) (BXOR I1 (REG I1 SF) (REG I1 OF))) (INTCONST I8 1) (INTCONST I8 0)))) ; (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) ==> (MEM I8 (HOLE 1)) ;SETLE = SETNG ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; 5.1.6 ビット命令とバイト命令 ;Set byte if not overflow ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;SETNO r/m8 (DEFINST ("SETNO ?1l" "SETNO %?1l" "SETNO ?1l") (SET (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (IFTHENELSE I8 (REG I1 OF) (INTCONST I8 0) (INTCONST I8 1)))) (DEFINST ("SETNO ?1h" "SETNO %?1h" "SETNO ?1h") (SET (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (IFTHENELSE I8 (REG I1 OF) (INTCONST I8 0) (INTCONST I8 1)))) (DEFINST ("SETNO BYTE PTR ??1s" "SETNOB ??1s" "SETNO BYTE PTR ??1s") (SET (MEM I8 (HOLE 1)) (IFTHENELSE I8 (REG I1 OF) (INTCONST I8 0) (INTCONST I8 1)))) ; (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) ==> (MEM I8 (HOLE 1)) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; 5.1.6 ビット命令とバイト命令 ;Set byte if not sign (non-negative) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;SETNS r/m8 (DEFINST ("SETNS ?1l" "SETNS %?1l" "SETNS ?1l") (SET (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (IFTHENELSE I8 (REG I1 SF) (INTCONST I8 0) (INTCONST I8 1)))) (DEFINST ("SETNS ?1h" "SETNS %?1h" "SETNS ?1h") (SET (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (IFTHENELSE I8 (REG I1 SF) (INTCONST I8 0) (INTCONST I8 1)))) (DEFINST ("SETNS BYTE PTR ??1s" "SETNSB ??1s" "SETNS BYTE PTR ??1s") (SET (MEM I8 (HOLE 1)) (IFTHENELSE I8 (REG I1 SF) (INTCONST I8 0) (INTCONST I8 1)))) ; (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) ==> (MEM I8 (HOLE 1)) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; 5.1.6 ビット命令とバイト命令 ;Set byte if equal/Set byte if zero ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;SETNZ r/m8 (DEFINST ("SETNZ ?1l" "SETNZ %?1l" "SETNZ ?1l") (SET (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (IFTHENELSE I8 (REG I1 ZF) (INTCONST I8 0) (INTCONST I8 1)))) (DEFINST ("SETNZ ?1h" "SETNZ %?1h" "SETNZ ?1h") (SET (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (IFTHENELSE I8 (REG I1 ZF) (INTCONST I8 0) (INTCONST I8 1)))) (DEFINST ("SETNZ BYTE PTR ??1s" "SETNZB ??1s" "SETNZ BYTE PTR ??1s") (SET (MEM I8 (HOLE 1)) (IFTHENELSE I8 (REG I1 ZF) (INTCONST I8 0) (INTCONST I8 1)))) ; (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) ==> (MEM I8 (HOLE 1)) ;SETNZ = SETNE ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; 5.1.6 ビット命令とバイト命令 ;Set byte if overflow ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;SETO r/m8 (DEFINST ("SETO ?1l" "SETO %?1l" "SETO ?1l") (SET (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (IFTHENELSE I8 (REG I1 OF) (INTCONST I8 1) (INTCONST I8 0)))) (DEFINST ("SETO ?1h" "SETO %?1h" "SETO ?1h") (SET (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (IFTHENELSE I8 (REG I1 OF) (INTCONST I8 1) (INTCONST I8 0)))) (DEFINST ("SETO BYTE PTR ??1s" "SETOB ??1s" "SETO BYTE PTR ??1s") (SET (MEM I8 (HOLE 1)) (IFTHENELSE I8 (REG I1 OF) (INTCONST I8 1) (INTCONST I8 0)))) ; (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) ==> (MEM I8 (HOLE 1)) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; 5.1.6 ビット命令とバイト命令 ;Set byte if parity even/Set byte if parity ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;SETPE r/m8 (DEFINST ("SETPE ?1l" "SETPE %?1l" "SETPE ?1l") (SET (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (IFTHENELSE I8 (REG I1 PF) (INTCONST I8 1) (INTCONST I8 0)))) (DEFINST ("SETPE ?1h" "SETPE %?1h" "SETPE ?1h") (SET (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (IFTHENELSE I8 (REG I1 PF) (INTCONST I8 1) (INTCONST I8 0)))) (DEFINST ("SETPE BYTE PTR ??1s" "SETPEB ??1s" "SETPE BYTE PTR ??1s") (SET (MEM I8 (HOLE 1)) (IFTHENELSE I8 (REG I1 PF) (INTCONST I8 1) (INTCONST I8 0)))) ; (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) ==> (MEM I8 (HOLE 1)) ;SETPE = SETP ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; 5.1.6 ビット命令とバイト命令 ;Set byte if parity odd/Set byte if not parity ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;SETPO r/m8 (DEFINST ("SETPO ?1l" "SETPO %?1l" "SETPO ?1l") (SET (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (IFTHENELSE I8 (REG I1 PF) (INTCONST I8 0) (INTCONST I8 1)))) (DEFINST ("SETPO ?1h" "SETPO %?1h" "SETPO ?1h") (SET (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (IFTHENELSE I8 (REG I1 PF) (INTCONST I8 0) (INTCONST I8 1)))) (DEFINST ("SETPO BYTE PTR ??1s" "SETPOB ??1s" "SETPO BYTE PTR ??1s") (SET (MEM I8 (HOLE 1)) (IFTHENELSE I8 (REG I1 PF) (INTCONST I8 0) (INTCONST I8 1)))) ; (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) ==> (MEM I8 (HOLE 1)) ;SETPO = SETNP ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; 5.1.6 ビット命令とバイト命令 ;Set byte if sign (negative) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;SETS r/m8 (DEFINST ("SETS ?1l" "SETS %?1l" "SETS ?1l") (SET (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (IFTHENELSE I8 (REG I1 SF) (INTCONST I8 1) (INTCONST I8 0)))) (DEFINST ("SETS ?1h" "SETS %?1h" "SETS ?1h") (SET (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (IFTHENELSE I8 (REG I1 SF) (INTCONST I8 1) (INTCONST I8 0)))) (DEFINST ("SETS BYTE PTR ??1s" "SETSB ??1s" "SETS BYTE PTR ??1s") (SET (MEM I8 (HOLE 1)) (IFTHENELSE I8 (REG I1 SF) (INTCONST I8 1) (INTCONST I8 0)))) ; (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) ==> (MEM I8 (HOLE 1)) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; 5.1.6 ビット命令とバイト命令 ;Set byte if sign (negative) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;SETZ r/m8 (DEFINST ("SETZ ?1l" "SETZ %?1l" "SETZ ?1l") (SET (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (IFTHENELSE I8 (REG I1 ZF) (INTCONST I8 1) (INTCONST I8 0)))) (DEFINST ("SETZ ?1h" "SETZ %?1h" "SETZ ?1h") (SET (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (IFTHENELSE I8 (REG I1 ZF) (INTCONST I8 1) (INTCONST I8 0)))) (DEFINST ("SETZ BYTE PTR ??1s" "SETZB ??1s" "SETZ BYTE PTR ??1s") (SET (MEM I8 (HOLE 1)) (IFTHENELSE I8 (REG I1 ZF) (INTCONST I8 1) (INTCONST I8 0)))) ; (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) ==> (MEM I8 (HOLE 1)) ;SETE = SETZ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; 5.1.6 ビット命令とバイト命令 ; Logical Compare ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;TEST r/m8,r8 (DEFINST ("TEST ?1l,?2l" "TEST %?2l,%?1l" "TEST ?1l,?2l") (PARALLEL (SET (REG I1 CF) (INTCONST I1 0)) (SET (REG I1 PF) (PARITY I1 (BAND I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (SUBREG I8 (REG I32 (HOLE 2 R32)) 0)))) (CLOBBER (REG I1 AF)) (SET (REG I1 ZF) (TSTEQ I1 (BAND I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (SUBREG I8 (REG I32 (HOLE 2 R32)) 0)) (INTCONST I8 0))) (SET (REG I1 SF) (TSTLTS I1 (BAND I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (SUBREG I8 (REG I32 (HOLE 2 R32)) 0)) (INTCONST I8 0))) (SET (REG I1 OF) (INTCONST I1 0)))) (DEFINST ("TEST ?1l,?2h" "TEST %?2h,%?1l" "TEST ?1l,?2h") (PARALLEL (SET (REG I1 CF) (INTCONST I1 0)) (SET (REG I1 PF) (PARITY I1 (BAND I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (SUBREG I8 (REG I32 (HOLE 2 R32)) 1)))) (CLOBBER (REG I1 AF)) (SET (REG I1 ZF) (TSTEQ I1 (BAND I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (SUBREG I8 (REG I32 (HOLE 2 R32)) 1)) (INTCONST I8 0))) (SET (REG I1 SF) (TSTLTS I1 (BAND I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (SUBREG I8 (REG I32 (HOLE 2 R32)) 1)) (INTCONST I8 0))) (SET (REG I1 OF) (INTCONST I1 0)))) (DEFINST ("TEST ?1h,?2l" "TEST %?2l,%?1h" "TEST ?1h,?2l") (PARALLEL (SET (REG I1 CF) (INTCONST I1 0)) (SET (REG I1 PF) (PARITY I1 (BAND I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (SUBREG I8 (REG I32 (HOLE 2 R32)) 0)))) (CLOBBER (REG I1 AF)) (SET (REG I1 ZF) (TSTEQ I1 (BAND I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (SUBREG I8 (REG I32 (HOLE 2 R32)) 0)) (INTCONST I8 0))) (SET (REG I1 SF) (TSTLTS I1 (BAND I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (SUBREG I8 (REG I32 (HOLE 2 R32)) 0)) (INTCONST I8 0))) (SET (REG I1 OF) (INTCONST I1 0)))) (DEFINST ("TEST ?1h,?2h" "TEST %?2h,%?1h" "TEST ?1h,?2h") (PARALLEL (SET (REG I1 CF) (INTCONST I1 0)) (SET (REG I1 PF) (PARITY I1 (BAND I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (SUBREG I8 (REG I32 (HOLE 2 R32)) 1)))) (CLOBBER (REG I1 AF)) (SET (REG I1 ZF) (TSTEQ I1 (BAND I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (SUBREG I8 (REG I32 (HOLE 2 R32)) 1)) (INTCONST I8 0))) (SET (REG I1 SF) (TSTLTS I1 (BAND I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (SUBREG I8 (REG I32 (HOLE 2 R32)) 1)) (INTCONST I8 0))) (SET (REG I1 OF) (INTCONST I1 0)))) (DEFINST ("TEST BYTE PTR ??1s,?2l" "TEST %?2l,??1s" "TEST BYTE PTR ??1s,?2l") (PARALLEL (SET (REG I1 CF) (INTCONST I1 0)) (SET (REG I1 PF) (PARITY I1 (BAND I8 (MEM I8 (HOLE 1)) (SUBREG I8 (REG I32 (HOLE 2 R32)) 0)))) (CLOBBER (REG I1 AF)) (SET (REG I1 ZF) (TSTEQ I1 (BAND I8 (MEM I8 (HOLE 1)) (SUBREG I8 (REG I32 (HOLE 2 R32)) 0)) (INTCONST I8 0))) (SET (REG I1 SF) (TSTLTS I1 (BAND I8 (MEM I8 (HOLE 1)) (SUBREG I8 (REG I32 (HOLE 2 R32)) 0)) (INTCONST I8 0))) (SET (REG I1 OF) (INTCONST I1 0)))) (DEFINST ("TEST BYTE PTR ??1s,?2h" "TEST %?2h,??1s" "TEST BYTE PTR ??1s,?2h") (PARALLEL (SET (REG I1 CF) (INTCONST I1 0)) (SET (REG I1 PF) (PARITY I1 (BAND I8 (MEM I8 (HOLE 1)) (SUBREG I8 (REG I32 (HOLE 2 R32)) 1)))) (CLOBBER (REG I1 AF)) (SET (REG I1 ZF) (TSTEQ I1 (BAND I8 (MEM I8 (HOLE 1)) (SUBREG I8 (REG I32 (HOLE 2 R32)) 1)) (INTCONST I8 0))) (SET (REG I1 SF) (TSTLTS I1 (BAND I8 (MEM I8 (HOLE 1)) (SUBREG I8 (REG I32 (HOLE 2 R32)) 1)) (INTCONST I8 0))) (SET (REG I1 OF) (INTCONST I1 0)))) ; (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) ==> (MEM I8 (HOLE 1)) ;TEST r/m8,imm8 (DEFINST ("TEST ?1l,?2c" "TEST $?2c,%?1l" "TEST ?1l,?2c") (PARALLEL (SET (REG I1 CF) (INTCONST I1 0)) (SET (REG I1 PF) (PARITY I1 (BAND I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (INTCONST I8 (HOLE 2))))) (CLOBBER (REG I1 AF)) (SET (REG I1 ZF) (TSTEQ I1 (BAND I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (INTCONST I8 (HOLE 2))) (INTCONST I8 0))) (SET (REG I1 SF) (TSTLTS I1 (BAND I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) (INTCONST I8 (HOLE 2))) (INTCONST I8 0))) (SET (REG I1 OF) (INTCONST I1 0)))) (DEFINST ("TEST ?1h,?2c" "TEST $?2c,%?1h" "TEST ?1h,?2c") (PARALLEL (SET (REG I1 CF) (INTCONST I1 0)) (SET (REG I1 PF) (PARITY I1 (BAND I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (INTCONST I8 (HOLE 2))))) (CLOBBER (REG I1 AF)) (SET (REG I1 ZF) (TSTEQ I1 (BAND I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (INTCONST I8 (HOLE 2))) (INTCONST I8 0))) (SET (REG I1 SF) (TSTLTS I1 (BAND I8 (SUBREG I8 (REG I32 (HOLE 1 R32)) 1) (INTCONST I8 (HOLE 2))) (INTCONST I8 0))) (SET (REG I1 OF) (INTCONST I1 0)))) ; (SUBREG I8 (REG I32 (HOLE 2 R32)) 0) ==> ; (INTCONST I8 (HOLE 2)) (DEFINST ("TEST BYTE PTR ??1s,?2c" "TESTB $?2c,??1s" "TEST BYTE PTR ??1s,?2c") (PARALLEL (SET (REG I1 CF) (INTCONST I1 0)) (SET (REG I1 PF) (PARITY I1 (BAND I8 (MEM I8 (HOLE 1)) (INTCONST I8 (HOLE 2))))) (CLOBBER (REG I1 AF)) (SET (REG I1 ZF) (TSTEQ I1 (BAND I8 (MEM I8 (HOLE 1)) (INTCONST I8 (HOLE 2))) (INTCONST I8 0))) (SET (REG I1 SF) (TSTLTS I1 (BAND I8 (MEM I8 (HOLE 1)) (INTCONST I8 (HOLE 2))) (INTCONST I8 0))) (SET (REG I1 OF) (INTCONST I1 0)))) ; (SUBREG I8 (REG I32 (HOLE 2 R32)) 0) ==> ; (INTCONST I8 (HOLE 2)) ; (SUBREG I8 (REG I32 (HOLE 1 R32)) 0) ==> (MEM I8 (HOLE 1)) ;TEST r/m16,r16 (DEFINST ("TEST ?1w,?2w" "TEST %?2w,%?1w" "TEST ?1w,?2w") (PARALLEL (SET (REG I1 CF) (INTCONST I1 0)) (SET (REG I1 PF) (PARITY I1 (CONVIT I8 (BAND I16 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (SUBREG I16 (REG I32 (HOLE 2 R32)) 0))))) (CLOBBER (REG I1 AF)) (SET (REG I1 ZF) (TSTEQ I1 (BAND I16 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (SUBREG I16 (REG I32 (HOLE 2 R32)) 0)) (INTCONST I16 0))) (SET (REG I1 SF) (TSTLTS I1 (BAND I16 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (SUBREG I16 (REG I32 (HOLE 2 R32)) 0)) (INTCONST I16 0))) (SET (REG I1 OF) (INTCONST I1 0)))) (DEFINST ("TEST WORD PTR ??1s,?2w" "TEST %?2w,??1s" "TEST WORD PTR ??1s,?2w") (PARALLEL (SET (REG I1 CF) (INTCONST I1 0)) (SET (REG I1 PF) (PARITY I1 (CONVIT I8 (BAND I16 (MEM I16 (HOLE 1)) (SUBREG I16 (REG I32 (HOLE 2 R32)) 0))))) (CLOBBER (REG I1 AF)) (SET (REG I1 ZF) (TSTEQ I1 (BAND I16 (MEM I16 (HOLE 1)) (SUBREG I16 (REG I32 (HOLE 2 R32)) 0)) (INTCONST I16 0))) (SET (REG I1 SF) (TSTLTS I1 (BAND I16 (MEM I16 (HOLE 1)) (SUBREG I16 (REG I32 (HOLE 2 R32)) 0)) (INTCONST I16 0))) (SET (REG I1 OF) (INTCONST I1 0)))) ; (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) ==> (MEM I16 (HOLE 1)) ;TEST r/m16,imm16 (DEFINST ("TEST ?1w,?2c" "TEST $?2c,%?1w" "TEST ?1w,?2c") (PARALLEL (SET (REG I1 CF) (INTCONST I1 0)) (SET (REG I1 PF) (PARITY I1 (CONVIT I8 (BAND I16 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (INTCONST I16 (HOLE 2)))))) (CLOBBER (REG I1 AF)) (SET (REG I1 ZF) (TSTEQ I1 (BAND I16 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (INTCONST I16 (HOLE 2))) (INTCONST I16 0))) (SET (REG I1 SF) (TSTLTS I1 (BAND I16 (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (INTCONST I16 (HOLE 2))) (INTCONST I16 0))) (SET (REG I1 OF) (INTCONST I1 0)))) ; (SUBREG I16 (REG I32 (HOLE 2 R32)) 0) ==> ; (INTCONST I16 (HOLE 2)) (DEFINST ("TEST WORD PTR ??1s,?2c" "TESTW $?2c,??1s" "TEST WORD PTR ??1s,?2c") (PARALLEL (SET (REG I1 CF) (INTCONST I1 0)) (SET (REG I1 PF) (PARITY I1 (CONVIT I8 (BAND I16 (MEM I16 (HOLE 1)) (INTCONST I16 (HOLE 2)))))) (CLOBBER (REG I1 AF)) (SET (REG I1 ZF) (TSTEQ I1 (BAND I16 (MEM I16 (HOLE 1)) (INTCONST I16 (HOLE 2))) (INTCONST I16 0))) (SET (REG I1 SF) (TSTLTS I1 (BAND I16 (MEM I16 (HOLE 1)) (INTCONST I16 (HOLE 2))) (INTCONST I16 0))) (SET (REG I1 OF) (INTCONST I1 0)))) ; (SUBREG I16 (REG I32 (HOLE 2 R32)) 0) ==> ; (INTCONST I16 (HOLE 2)) ; (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) ==> (MEM I16 (HOLE 1)) ;TEST r/m32,r32 (DEFINST ("TEST ?1r,?2r" "TEST %?2r,%?1r" "TEST ?1r,?2r") (PARALLEL (SET (REG I1 CF) (INTCONST I1 0)) (SET (REG I1 PF) (PARITY I1 (CONVIT I8 (BAND I32 (REG I32 (HOLE 1 R32)) (REG I32 (HOLE 2 R32)))))) (CLOBBER (REG I1 AF)) (SET (REG I1 ZF) (TSTEQ I1 (BAND I32 (REG I32 (HOLE 1 R32)) (REG I32 (HOLE 2 R32))) (INTCONST I32 0))) (SET (REG I1 SF) (TSTLTS I1 (BAND I32 (REG I32 (HOLE 1 R32)) (REG I32 (HOLE 2 R32))) (INTCONST I32 0))) (SET (REG I1 OF) (INTCONST I1 0)))) (DEFINST ("TEST DWORD PTR ??1s,?2r" "TEST %?2r,??1s" "TEST DWORD PTR ??1s,?2r") (PARALLEL (SET (REG I1 CF) (INTCONST I1 0)) (SET (REG I1 PF) (PARITY I1 (CONVIT I8 (BAND I32 (MEM I32 (HOLE 1)) (REG I32 (HOLE 2 R32)))))) (CLOBBER (REG I1 AF)) (SET (REG I1 ZF) (TSTEQ I1 (BAND I32 (MEM I32 (HOLE 1)) (REG I32 (HOLE 2 R32))) (INTCONST I32 0))) (SET (REG I1 SF) (TSTLTS I1 (BAND I32 (MEM I32 (HOLE 1)) (REG I32 (HOLE 2 R32))) (INTCONST I32 0))) (SET (REG I1 OF) (INTCONST I1 0)))) ; (REG I32 (HOLE 1 R32)) ==> (MEM I32 (HOLE 1)) ;TEST r/m32,imm32 (DEFINST ("TEST ?1r,?2c" "TEST $?2c,%?1r" "TEST ?1r,?2c") (PARALLEL (SET (REG I1 CF) (INTCONST I1 0)) (SET (REG I1 PF) (PARITY I1 (CONVIT I8 (BAND I32 (REG I32 (HOLE 1 R32)) (INTCONST I32 (HOLE 2)))))) (CLOBBER (REG I1 AF)) (SET (REG I1 ZF) (TSTEQ I1 (BAND I32 (REG I32 (HOLE 1 R32))(INTCONST I32 (HOLE 2))) (INTCONST I32 0))) (SET (REG I1 SF) (TSTLTS I1 (BAND I32 (REG I32 (HOLE 1 R32)) (INTCONST I32 (HOLE 2))) (INTCONST I32 0))) (SET (REG I1 OF) (INTCONST I1 0)))) ; (REG I32 (HOLE 2 R32)) ==> (INTCONST I32 (HOLE 2)) (DEFINST ("TEST DWORD PTR ??1s,?2c" "TESTL $?2c,??1s" "TEST DWORD PTR ??1s,?2c") (PARALLEL (SET (REG I1 CF) (INTCONST I1 0)) (SET (REG I1 PF) (PARITY I1 (CONVIT I8 (BAND I32 (MEM I32 (HOLE 1)) (INTCONST I32 (HOLE 2)))))) (CLOBBER (REG I1 AF)) (SET (REG I1 ZF) (TSTEQ I1 (BAND I32 (MEM I32 (HOLE 1))(INTCONST I32 (HOLE 2))) (INTCONST I32 0))) (SET (REG I1 SF) (TSTLTS I1 (BAND I32 (MEM I32 (HOLE 1))(INTCONST I32 (HOLE 2))) (INTCONST I32 0))) (SET (REG I1 OF) (INTCONST I1 0)))) ; (REG I32 (HOLE 1 R32)) ==> (MEM I32 (HOLE 1)) ; (REG I32 (HOLE 2 R32)) ==> (INTCONST I32 (HOLE 2)) ;TEST r32,imm32 (DEFINST ("TEST ?1r,??2a" "TEST $??2a,%?1r" "TEST ?1r,??2a") (PARALLEL (SET (REG I1 CF) (INTCONST I1 0)) (SET (REG I1 PF) (PARITY I1 (CONVIT I8 (BAND I32 (REG I32 (HOLE 1 R32)) (HOLE 2))))) (CLOBBER (REG I1 AF)) (SET (REG I1 ZF) (TSTEQ I1 (BAND I32 (REG I32 (HOLE 1 R32))(HOLE 2)) (INTCONST I32 0))) (SET (REG I1 SF) (TSTLTS I1 (BAND I32 (REG I32 (HOLE 1 R32)) (HOLE 2)) (INTCONST I32 0))) (SET (REG I1 OF) (INTCONST I1 0)))) ;TEST m32,imm32 (DEFINST ("TEST DWORD PTR ??1s,??2a" "TESTL $??2a,??1s" "TEST DWORD PTR ??1s,??2a") (PARALLEL (SET (REG I1 CF) (INTCONST I1 0)) (SET (REG I1 PF) (PARITY I1 (CONVIT I8 (BAND I32 (MEM I32 (HOLE 1)) (HOLE 2))))) (CLOBBER (REG I1 AF)) (SET (REG I1 ZF) (TSTEQ I1 (BAND I32 (MEM I32 (HOLE 1))(HOLE 2)) (INTCONST I32 0))) (SET (REG I1 SF) (TSTLTS I1 (BAND I32 (MEM I32 (HOLE 1)) (HOLE 2)) (INTCONST I32 0))) (SET (REG I1 OF) (INTCONST I1 0)))) ;;;;;;;;;;;;;;;;;;;;;;;;; ; 5.1.7 制御転送命令 ;Call procedure ;;;;;;;;;;;;;;;;;;;;;;;;; ;CALL rel32 (DEFINST ("CALL ?1b" "CALL ?1b" "CALL ?1b") (PARALLEL (SET (MEM I32 (SUB I32 (REG I32 ESP) (INTCONST I32 4))) (MEM I32 (REG I32 PC))) (SET (REG I32 ESP) (SUB I32 (REG I32 ESP) (INTCONST I32 4))) (JUMP (LABEL I32 (HOLE 1))))) ;CALL r32 (DEFINST ("CALL ?1r" "CALL *%?1r" "CALL ?1r") (PARALLEL (SET (MEM I32 (SUB I32 (REG I32 ESP) (INTCONST I32 4))) (MEM I32 (REG I32 PC))) (SET (REG I32 ESP) (SUB I32 (REG I32 ESP) (INTCONST I32 4))) (JUMP (REG I32 (HOLE 1 R32))))) ;CALL m32 (DEFINST ("CALL DWORD PTR ??1s" "CALL *??1s" "CALL DWORD PTR ??1s") (PARALLEL (SET (MEM I32 (SUB I32 (REG I32 ESP) (INTCONST I32 4))) (MEM I32 (REG I32 PC))) (SET (REG I32 ESP) (SUB I32 (REG I32 ESP) (INTCONST I32 4))) (JUMP (MEM I32 (HOLE 1))))) ;Make Stack Frame for Procedure Parameters ;ENTER imm16,0 ;StackAddressSize=32 (DEFINST ("ENTER ?1c,0" "ENTER $?1c,$0" "nil") (PARALLEL (SET (MEM I32 (SUB I32 (REG I32 ESP) (INTCONST I32 4))) (REG I32 EBP)) (SET (REG I32 EBP) (SUB I32 (REG I32 ESP) (INTCONST I32 4))) (SET (REG I32 ESP) (SUB I32 (SUB I32 (REG I32 ESP) (INTCONST I32 4)) (CONVZX I32 (INTCONST I16 (HOLE 1))))))) ;ENTER imm16,1 ;StackAddressSize=32 (DEFINST ("ENTER ?1c,1" "ENTER $?1c,$1" "nil") (PARALLEL (SET (MEM I32 (SUB I32 (REG I32 ESP) (INTCONST I32 4))) (REG I32 EBP)) (SET (MEM I32 (SUB I32 (REG I32 ESP) (INTCONST I32 8))) (SUB I32 (REG I32 ESP) (INTCONST I32 4))) (SET (REG I32 EBP) (SUB I32 (REG I32 ESP) (INTCONST I32 4))) (SET (REG I32 ESP) (SUB I32 (SUB I32 (REG I32 ESP) (INTCONST I32 8)) (CONVZX I32 (INTCONST I16 (HOLE 1))))))) ;;;;;;;;;;;;;;;;;;;;;;;;; ; 5.1.7 制御転送命令 ;Jump if above/Jump if not below or equal ;;;;;;;;;;;;;;;;;;;;;;;;; ;JA rel8 ;JA rel16/32 (DEFINST ("JA ?1b" "JA ?1b" "JA ?1b") (JUMPC (BNOT I1 (BOR I1 (REG I1 CF) (REG I1 ZF))) (LABEL I32 (HOLE 1)))) ;JA/JNBE rel8 ;JA/JNBE rel16/32 ;;;;;;;;;;;;;;;;;;;;;;;;; ; 5.1.7 制御転送命令 ;Jump if above or equal/Jump if not below ;;;;;;;;;;;;;;;;;;;;;;;;; ;JAE rel8 ;JAE rel16/32 (DEFINST ("JAE ?1b" "JAE ?1b" "JAE ?1b") (JUMPC (BNOT I1 (REG I1 CF))(LABEL I32 (HOLE 1)))) ;JAE/JNB rel8 ;JAE/JNB rel16/32 ;;;;;;;;;;;;;;;;;;;;;;;;; ; 5.1.7 制御転送命令 ;Jump if below/Jump if not above or equal ;;;;;;;;;;;;;;;;;;;;;;;;; ;JB rel8 ;JB rel16/32 (DEFINST ("JB ?1b" "JB ?1b" "JB ?1b") (JUMPC (REG I1 CF)(LABEL I32 (HOLE 1)))) ;JB/JNAE rel8 ;JB/JNAE rel16/32 ;;;;;;;;;;;;;;;;;;;;;;;;; ; 5.1.7 制御転送命令 ;Jump if below/Jump if not above or equal ;;;;;;;;;;;;;;;;;;;;;;;;; ;JBE rel8 ;JBE rel16/32 (DEFINST ("JBE ?1b" "JBE ?1b" "JBE ?1b") (JUMPC (BOR I1 (REG I1 CF) (REG I1 ZF))(LABEL I32 (HOLE 1)))) ;JBE/JNA rel8 ;JBE/JNA rel16/32 ;JC rel8 ;JC rel16/32 (DEFINST ("JC ?1b" "JC ?1b" "JC ?1b") (JUMPC (REG I1 CF)(LABEL I32 (HOLE 1)))) ;JNC rel8 ;JNC rel16/32 (DEFINST ("JNC ?1b" "JNC ?1b" "JNC ?1b") (JUMPC (BNOT I1 (REG I1 CF))(LABEL I32 (HOLE 1)))) ;JCXZ rel8 (DEFINST ("JCXZ ?1b" "JCXZ ?1b" "JCXZ ?1b") (JUMPC (TSTEQ I1 (SUBREG I16 (REG I32 ECX) 0) (INTCONST I16 0)) (LABEL I32 (HOLE 1)))) ;;JECXZ rel8 (DEFINST ("JECXZ ?1b" "JECXZ ?1b" "JECXZ ?1b") (JUMPC (TSTEQ I1 (REG I32 ECX) (INTCONST I32 0)) (LABEL I32 (HOLE 1)))) ;JG rel32 (DEFINST ("JG ?1b" "JG ?1b" "JG ?1b") (JUMPC (BNOT I1 (BOR I1 (REG I1 ZF) (BXOR I1 (REG I1 SF) (REG I1 OF)))) (LABEL I32 (HOLE 1)))) ;JGE rel32 (DEFINST ("JGE ?1b" "JGE ?1b" "JGE ?1b") (JUMPC (BNOT I1 (BXOR I1 (REG I1 SF) (REG I1 OF))) (LABEL I32 (HOLE 1)))) ;JL rel32 (DEFINST ("JL ?1b" "JL ?1b" "JL ?1b") (JUMPC (BXOR I1 (REG I1 SF) (REG I1 OF)) (LABEL I32 (HOLE 1)))) ;JLE rel32 (DEFINST ("JLE ?1b" "JLE ?1b" "JLE ?1b") (JUMPC (BOR I1 (REG I1 ZF) (BXOR I1 (REG I1 SF) (REG I1 OF))) (LABEL I32 (HOLE 1)))) ;JMP rel32 (DEFINST ("JMP ?1b" "JMP ?1b" "JMP ?1b") (JUMP (LABEL I32 (HOLE 1)))) ;JMP r32 (DEFINST ("JMP ?1r" "JMP *%?1r" "JMP ?1r") (JUMP (REG I32 (HOLE 1 R32)))) ;JMP m32 (DEFINST ("JMP DWORD PTR ??1s" "JMP *??1s" "JMP DWORD PTR ??1s") (JUMP (MEM I32 (HOLE 1)))) ;JNO rel32 (DEFINST ("JNO ?1b" "JNO ?1b" "JNO ?1b") (JUMPC (BNOT I1 (REG I1 OF)) (LABEL I32 (HOLE 1)))) ;JNS rel32 (DEFINST ("JNS ?1b" "JNS ?1b" "JNS ?1b") (JUMPC (BNOT I1 (REG I1 SF)) (LABEL I32 (HOLE 1)))) ;;;;;;;;;;;;;;;;;;;;;;;;; ; 5.1.7 制御転送命令 ;Jump if not equal/Jump if not zero ;;;;;;;;;;;;;;;;;;;;;;;;; ;JNZ rel8 ;JNZ rel16/32 (DEFINST ("JNZ ?1b" "JNZ ?1b" "JNZ ?1b") (JUMPC (BNOT I1 (REG I1 ZF))(LABEL I32 (HOLE 1)))) ;JNE = JNZ ;JO rel32 (DEFINST ("JO ?1b" "JO ?1b" "JO ?1b") (JUMPC (REG I1 OF) (LABEL I32 (HOLE 1)))) ;JPE 32 (DEFINST ("JPE ?1b" "JPE ?1b" "JPE ?1b") (JUMPC (REG I1 PF) (LABEL I32 (HOLE 1)))) ;;;;;;;;;;;;;;;;;;;;;;;;; ; 5.1.7 制御転送命令 ;Jump if parity odd/Jump if not parity ;;;;;;;;;;;;;;;;;;;;;;;;; ;JPO rel8 ;JPO rel16/32 (DEFINST ("JPO ?1b" "JPO ?1b" "JPO ?1b") (JUMPC (BNOT I1 (REG I1 PF))(LABEL I32 (HOLE 1)))) ;JPO/JNP rel8 ;JPO/JNP rel16/32 ;JS rel32 (DEFINST ("JS ?1b" "JS ?1b" "JS ?1b") (JUMPC (REG I1 SF) (LABEL I32 (HOLE 1)))) ;;;;;;;;;;;;;;;;;;;;;;;;; ; 5.1.7 制御転送命令 ;Jump if equal/Jump if zero ;;;;;;;;;;;;;;;;;;;;;;;;; ;JZ rel8 ;JZ rel16/32 (DEFINST ("JZ ?1b" "JZ ?1b" "JZ ?1b") (JUMPC (REG I1 ZF)(LABEL I32 (HOLE 1)))) ;JE = JZ ;High Level Procedure Exit ;LEAVE ;StackAddressSize,OperandSize=32 (DEFINST ("LEAVE" "LEAVE" "LEAVE") (PARALLEL (SET (REG I32 EBP) (MEM I32 (REG I32 EBP))) (SET (REG I32 ESP) (ADD I32 (REG I32 EBP) (INTCONST I32 4))))) ;LOOP/LOOPD rel8 (DEFINST ("LOOPD ?1b" "LOOP ?1b" "LOOP ?1b") (PARALLEL (SET (REG I32 ECX) (SUB I32 (REG I32 ECX) (INTCONST I32 1))) (JUMPC (TSTNE I1 (SUB I32 (REG I32 ECX) (INTCONST I32 1)) (INTCONST I32 0)) (LABEL I32 (HOLE 1))))) (DEFINST ("LOOPW ?1b" "LOOPW ?1b" "LOOP ?1b") (PARALLEL (SET (SUBREG I16 (REG I32 ECX) 0) (SUB I16 (SUBREG I16 (REG I32 ECX) 0) (INTCONST I16 1))) (JUMPC (TSTNE I1 (SUB I16 (SUBREG I16 (REG I32 ECX) 0) (INTCONST I16 1)) (INTCONST I16 0)) (LABEL I32 (HOLE 1))))) ;LOOPNE/LOOPNZ rel8 (DEFINST ("LOOPNZD ?1b" "LOOPNZ ?1b" "LOOPNZ ?1b") (PARALLEL (SET (REG I32 ECX) (SUB I32 (REG I32 ECX) (INTCONST I32 1))) (JUMPC (BAND I1 (TSTNE I1 (SUB I32 (REG I32 ECX) (INTCONST I32 1)) (INTCONST I32 0)) (BNOT I1 (REG I1 ZF))) (LABEL I32 (HOLE 1))))) (DEFINST ("LOOPNZW ?1b" "LOOPNZW ?1b" "LOOPNZ ?1b") (PARALLEL (SET (SUBREG I16 (REG I32 ECX) 0) (SUB I16 (SUBREG I16 (REG I32 ECX) 0) (INTCONST I16 1))) (JUMPC (BAND I1 (TSTNE I1 (SUB I16 (SUBREG I16 (REG I32 ECX) 0) (INTCONST I16 1)) (INTCONST I16 0)) (BNOT I1 (REG I1 ZF))) (LABEL I32 (HOLE 1))))) ;LOOPE/LOOPZ rel8 (DEFINST ("LOOPZD ?1b" "LOOPZ ?1b" "LOOPZ ?1b") (PARALLEL (SET (REG I32 ECX) (SUB I32 (REG I32 ECX) (INTCONST I32 1))) (JUMPC (BAND I1 (TSTNE I1 (SUB I32 (REG I32 ECX) (INTCONST I32 1)) (INTCONST I32 0)) (REG I1 ZF)) (LABEL I32 (HOLE 1))))) (DEFINST ("LOOPZW ?1b" "LOOPZW ?1b" "LOOPZ ?1b") (PARALLEL (SET (SUBREG I16 (REG I32 ECX) 0) (SUB I16 (SUBREG I16 (REG I32 ECX) 0) (INTCONST I16 1))) (JUMPC (BAND I1 (TSTNE I1 (SUB I16 (SUBREG I16 (REG I32 ECX) 0) (INTCONST I16 1)) (INTCONST I16 0)) (REG I1 ZF)) (LABEL I32 (HOLE 1))))) ;;;;;;;;;;;;;;;;;;;;;;;;; ; 5.1.7 制御転送命令 ;Return from Procedure ;;;;;;;;;;;;;;;;;;;;;;;;; ;RET (DEFINST ("RET" "RET" "RET") (PARALLEL (JUMP (MEM I32 (REG I32 ESP))) (SET (REG I32 ESP) (ADD I32 (REG I32 ESP) (INTCONST I32 4))))) ;RET imm16 (DEFINST ("RET ?1c" "RETW $?1c" "RET ?1c") (PARALLEL (JUMP (MEM I32 (REG I32 ESP))) (SET (REG I32 ESP) (ADD I32 (REG I32 ESP) (CONVSX I32 (INTCONST I16 (HOLE 1))))))) ;;;;;;;;;;;;;;;;;;;;;;;;; ; 5.1.8 ストリング命令 ;Compare byte string ;;;;;;;;;;;;;;;;;;;;;;;;; ;CMPSB (DEFINST ("CMPSB" "CMPSB" "CMPSB") (PARALLEL (SET (REG I1 CF) (BNOT I1 (CARRY I1 (MEM I8 (REG I32 ESI)) (BNOT I8 (MEM I8 (REG I32 EDI))) (INTCONST I1 1)))) (SET (REG I1 PF) (PARITY I1 (SUB I8 (MEM I8 (REG I32 ESI)) (MEM I8 (REG I32 EDI))))) (SET (REG I1 AF) (BNOT I1 (ACARRY I1 (MEM I8 (REG I32 ESI)) (BNOT I8 (MEM I8 (REG I32 EDI))) (INTCONST I1 1)))) (SET (REG I1 ZF) (TSTEQ I1 (SUB I8 (MEM I8 (REG I32 ESI)) (MEM I8 (REG I32 EDI))) (INTCONST I8 0))) (SET (REG I1 SF) (TSTLTS I1 (SUB I8 (MEM I8 (REG I32 ESI)) (MEM I8 (REG I32 EDI))) (INTCONST I8 0))) (SET (REG I1 OF) (OVERFLOW I1 (MEM I8 (REG I32 ESI)) (BNOT I8 (MEM I8 (REG I32 EDI))) (INTCONST I1 1))) (SET (REG I32 ESI) (IFTHENELSE I32 (REG I1 DF) (SUB I32 (REG I32 ESI) (INTCONST I32 1)) (ADD I32 (REG I32 ESI) (INTCONST I32 1)))) (SET (REG I32 EDI) (IFTHENELSE I32 (REG I1 DF) (SUB I32 (REG I32 EDI) (INTCONST I32 1)) (ADD I32 (REG I32 EDI) (INTCONST I32 1)))))) ;;;;;;;;;;;;;;;;;;;;;;;;; ; 5.1.8 ストリング命令 ;Compare doubleword string ;;;;;;;;;;;;;;;;;;;;;;;;; ;CMPSD (DEFINST ("CMPSD" "CMPSL" "CMPSD") (PARALLEL (SET (REG I1 CF) (BNOT I1 (CARRY I1 (MEM I32 (REG I32 ESI)) (BNOT I32 (MEM I32 (REG I32 EDI))) (INTCONST I1 1)))) (SET (REG I1 PF) (PARITY I1 (CONVIT I8 (SUB I32 (MEM I32 (REG I32 ESI)) (MEM I32 (REG I32 EDI)))))) (SET (REG I1 AF) (BNOT I1 (ACARRY I1 (MEM I32 (REG I32 ESI)) (BNOT I32 (MEM I32 (REG I32 EDI))) (INTCONST I1 1)))) (SET (REG I1 ZF) (TSTEQ I1 (SUB I32 (MEM I32 (REG I32 ESI)) (MEM I32 (REG I32 EDI))) (INTCONST I32 0))) (SET (REG I1 SF) (TSTLTS I1 (SUB I32 (MEM I32 (REG I32 ESI)) (MEM I32 (REG I32 EDI))) (INTCONST I32 0))) (SET (REG I1 OF) (OVERFLOW I1 (MEM I32 (REG I32 ESI)) (BNOT I32 (MEM I32 (REG I32 EDI))) (INTCONST I1 1))) (SET (REG I32 ESI) (IFTHENELSE I32 (REG I1 DF) (SUB I32 (REG I32 ESI) (INTCONST I32 4)) (ADD I32 (REG I32 ESI) (INTCONST I32 4)))) (SET (REG I32 EDI) (IFTHENELSE I32 (REG I1 DF) (SUB I32 (REG I32 ESI) (INTCONST I32 4)) (ADD I32 (REG I32 ESI) (INTCONST I32 4)))))) ;;;;;;;;;;;;;;;;;;;;;;;;; ; 5.1.8 ストリング命令 ;Compare word string ;;;;;;;;;;;;;;;;;;;;;;;;; ;CMPSW (DEFINST ("CMPSW" "CMPSW" "CMPSW") (PARALLEL (SET (REG I1 CF) (BNOT I1 (CARRY I1 (MEM I16 (REG I32 ESI)) (BNOT I16 (MEM I16 (REG I32 EDI))) (INTCONST I1 1)))) (SET (REG I1 PF) (PARITY I1 (CONVIT I8 (SUB I16 (MEM I16 (REG I32 ESI)) (MEM I16 (REG I32 EDI)))))) (SET (REG I1 AF) (BNOT I1 (ACARRY I1 (MEM I16 (REG I32 ESI)) (BNOT I16 (MEM I16 (REG I32 EDI))) (INTCONST I1 1)))) (SET (REG I1 ZF) (TSTEQ I1 (SUB I16 (MEM I16 (REG I32 ESI)) (MEM I16 (REG I32 EDI))) (INTCONST I16 0))) (SET (REG I1 SF) (TSTLTS I1 (SUB I16 (MEM I16 (REG I32 ESI)) (MEM I16 (REG I32 EDI))) (INTCONST I16 0))) (SET (REG I1 OF) (OVERFLOW I1 (MEM I16 (REG I32 ESI)) (BNOT I16 (MEM I16 (REG I32 EDI))) (INTCONST I1 1))) (SET (REG I32 ESI) (IFTHENELSE I32 (REG I1 DF) (SUB I32 (REG I32 ESI) (INTCONST I32 2)) (ADD I32 (REG I32 ESI) (INTCONST I32 2)))) (SET (REG I32 EDI) (IFTHENELSE I32 (REG I1 DF) (SUB I32 (REG I32 EDI) (INTCONST I32 2)) (ADD I32 (REG I32 EDI) (INTCONST I32 2)))))) ;;;;;;;;;;;;;;;;;;;;;;;;; ; 5.1.8 ストリング命令 ;Input string from port/Input byte string from port ;;;;;;;;;;;;;;;;;;;;;;;;; ;INS/INSB 除外 ;;;;;;;;;;;;;;;;;;;;;;;;; ; 5.1.8 ストリング命令 ;Input string from port/Input doubleword string from port ;;;;;;;;;;;;;;;;;;;;;;;;; ;INS/INSD 除外 ;;;;;;;;;;;;;;;;;;;;;;;;; ; 5.1.8 ストリング命令 ;Input string from port/Input word string from port ;;;;;;;;;;;;;;;;;;;;;;;;; ;INS/INSW 除外 ;;;;;;;;;;;;;;;;;;;;;;;;; ; 5.1.8 ストリング命令 ; Load byte string ;;;;;;;;;;;;;;;;;;;;;;;;; ;LODSB (DEFINST ("LODSB" "LODSB" "LODSB") (PARALLEL (SET (SUBREG I8 (REG I32 EAX) 0) (MEM I8 (REG I32 ESI))) (SET (REG I32 ESI) (IFTHENELSE I32 (REG I1 DF) (SUB I32 (REG I32 ESI) (INTCONST I32 1)) (ADD I32 (REG I32 ESI) (INTCONST I32 1)))))) ;;;;;;;;;;;;;;;;;;;;;;;;; ; 5.1.8 ストリング命令 ; Load word string ;;;;;;;;;;;;;;;;;;;;;;;;; ;LODSD (DEFINST ("LODSD" "LODSL" "LODSD") (PARALLEL (SET (REG I32 EAX) (MEM I32 (REG I32 ESI))) (SET (REG I32 ESI) (IFTHENELSE I32 (REG I1 DF) (SUB I32 (REG I32 ESI) (INTCONST I32 4)) (ADD I32 (REG I32 ESI) (INTCONST I32 4)))))) ;;;;;;;;;;;;;;;;;;;;;;;;; ; 5.1.8 ストリング命令 ; Load doubleword string ;;;;;;;;;;;;;;;;;;;;;;;;; ;LODSW (DEFINST ("LODSW" "LODSW" "LODSW") (PARALLEL (SET (SUBREG I16 (REG I32 EAX) 0) (MEM I16 (REG I32 ESI))) (SET (REG I32 ESI) (IFTHENELSE I32 (REG I1 DF) (SUB I32 (REG I32 ESI) (INTCONST I32 2)) (ADD I32 (REG I32 ESI) (INTCONST I32 2)))))) ;;;;;;;;;;;;;;;;;;;;;;;;; ; 5.1.8 ストリング命令 ;Move byte string ;;;;;;;;;;;;;;;;;;;;;;;;; ;MOVSB (DEFINST ("MOVSB" "MOVSB" "MOVSB") (PARALLEL (SET (MEM I8 (REG I32 EDI)) (MEM I8 (REG I32 ESI))) (SET (REG I32 ESI) (IFTHENELSE I32 (REG I1 DF) (SUB I32 (REG I32 ESI) (INTCONST I32 1)) (ADD I32 (REG I32 ESI) (INTCONST I32 1)))) (SET (REG I32 EDI) (IFTHENELSE I32 (REG I1 DF) (SUB I32 (REG I32 EDI) (INTCONST I32 1)) (ADD I32 (REG I32 EDI) (INTCONST I32 1)))))) ;;;;;;;;;;;;;;;;;;;;;;;;; ; 5.1.8 ストリング命令 ;Move doubleword string ;;;;;;;;;;;;;;;;;;;;;;;;; ;MOVSD (DEFINST ("MOVSD" "MOVSL" "MOVSD") (PARALLEL (SET (MEM I32 (REG I32 EDI)) (MEM I32 (REG I32 ESI))) (SET (REG I32 ESI) (IFTHENELSE I32 (REG I1 DF) (SUB I32 (REG I32 ESI) (INTCONST I32 4)) (ADD I32 (REG I32 ESI) (INTCONST I32 4)))) (SET (REG I32 EDI) (IFTHENELSE I32 (REG I1 DF) (SUB I32 (REG I32 EDI) (INTCONST I32 4)) (ADD I32 (REG I32 EDI) (INTCONST I32 4)))))) ;;;;;;;;;;;;;;;;;;;;;;;;; ; 5.1.8 ストリング命令 ;Move word string ;;;;;;;;;;;;;;;;;;;;;;;;; ;MOVSW (DEFINST ("MOVSW" "MOVSW" "MOVSW") (PARALLEL (SET (MEM I16 (REG I32 EDI)) (MEM I16 (REG I32 ESI))) (SET (REG I32 ESI) (IFTHENELSE I32 (REG I1 DF) (SUB I32 (REG I32 ESI) (INTCONST I32 2)) (ADD I32 (REG I32 ESI) (INTCONST I32 2)))) (SET (REG I32 EDI) (IFTHENELSE I32 (REG I1 DF) (SUB I32 (REG I32 EDI) (INTCONST I32 2)) (ADD I32 (REG I32 EDI) (INTCONST I32 2)))))) ;;;;;;;;;;;;;;;;;;;;;;;;; ; 5.1.8 ストリング命令 ;Output byte string to port ;;;;;;;;;;;;;;;;;;;;;;;;; ;OUTS/OUTB 除外 ;;;;;;;;;;;;;;;;;;;;;;;;; ; 5.1.8 ストリング命令 ;Output doubleword string to port ;;;;;;;;;;;;;;;;;;;;;;;;; ;OUTS/OUTD 除外 ;;;;;;;;;;;;;;;;;;;;;;;;; ; 5.1.8 ストリング命令 ;Output word string to port ;;;;;;;;;;;;;;;;;;;;;;;;; ;OUTS/OUTW 除外 ;;;;;;;;;;;;;;;;;;;;;;;;; ; 5.1.8 ストリング命令 ;Repeat while ECX not zero ;;;;;;;;;;;;;;;;;;;;;;;;; ;REP 除外 ;;;;;;;;;;;;;;;;;;;;;;;;; ; 5.1.8 ストリング命令 ;Repeat while zero ;;;;;;;;;;;;;;;;;;;;;;;;; ;REPE 除外 ;;;;;;;;;;;;;;;;;;;;;;;;; ; 5.1.8 ストリング命令 ;Repeat while not zero ;;;;;;;;;;;;;;;;;;;;;;;;; ;REPNE 除外 ;;;;;;;;;;;;;;;;;;;;;;;;; ; 5.1.8 ストリング命令 ;Repeat while not equal/Repeat while not zero ;;;;;;;;;;;;;;;;;;;;;;;;; ;REPNZ 除外 ;;;;;;;;;;;;;;;;;;;;;;;;; ; 5.1.8 ストリング命令 ;Repeat while not zero ;;;;;;;;;;;;;;;;;;;;;;;;; ;REPZ 除外 ;;;;;;;;;;;;;;;;;;;;;;;;; ; 5.1.8 ストリング命令 ; Scan byte string ;;;;;;;;;;;;;;;;;;;;;;;;; ;SCASB (DEFINST ("SCASB" "SCASB" "SCASB") (PARALLEL (SET (REG I1 CF) (BNOT I1 (CARRY I1 (SUBREG I8 (REG I32 EAX) 0) (BNOT I8 (MEM I8 (REG I32 EDI))) (INTCONST I1 1)))) (SET (REG I1 PF) (PARITY I1 (SUB I8 (SUBREG I8 (REG I32 EAX) 0) (MEM I8 (REG I32 EDI))))) (SET (REG I1 AF) (BNOT I1 (ACARRY I1 (SUBREG I8 (REG I32 EAX) 0) (BNOT I8 (MEM I8 (REG I32 EDI))) (INTCONST I1 1)))) (SET (REG I1 ZF) (TSTEQ I1 (SUB I8 (SUBREG I8 (REG I32 EAX) 0) (MEM I8 (REG I32 EDI))) (INTCONST I8 0))) (SET (REG I1 SF) (TSTLTS I1 (SUB I8 (SUBREG I8 (REG I32 EAX) 0) (MEM I8 (REG I32 EDI))) (INTCONST I8 0))) (SET (REG I1 OF) (OVERFLOW I1 (SUBREG I8 (REG I32 EAX) 0) (BNOT I8 (MEM I8 (REG I32 EDI))) (INTCONST I1 1))) (SET (REG I32 EDI) (IFTHENELSE I32 (REG I1 DF) (SUB I32 (REG I32 EDI) (INTCONST I32 1)) (ADD I32 (REG I32 EDI) (INTCONST I32 1)))))) ;;;;;;;;;;;;;;;;;;;;;;;;; ; 5.1.8 ストリング命令 ; Scan doubleword string ;;;;;;;;;;;;;;;;;;;;;;;;; ;SCASD (DEFINST ("SCASD" "SCASL" "SCASD") (PARALLEL (SET (REG I1 CF) (BNOT I1 (CARRY I1 (REG I32 EAX) (BNOT I32 (MEM I32 (REG I32 EDI))) (INTCONST I1 1)))) (SET (REG I1 PF) (PARITY I1 (CONVIT I8 (SUB I32 (REG I32 EAX) (MEM I32 (REG I32 EDI)))))) (SET (REG I1 AF) (BNOT I1 (ACARRY I1 (REG I32 EAX) (BNOT I32 (MEM I32 (REG I32 EDI))) (INTCONST I1 1)))) (SET (REG I1 ZF) (TSTEQ I1 (SUB I32 (REG I32 EAX) (MEM I32 (REG I32 EDI))) (INTCONST I32 0))) (SET (REG I1 SF) (TSTLTS I1 (SUB I32 (REG I32 EAX) (MEM I32 (REG I32 EDI))) (INTCONST I32 0))) (SET (REG I1 OF) (OVERFLOW I1 (REG I32 EAX) (BNOT I32 (MEM I32 (REG I32 EDI))) (INTCONST I1 1))) (SET (REG I32 EDI) (IFTHENELSE I32 (REG I1 DF) (SUB I32 (REG I32 ESI) (INTCONST I32 4)) (ADD I32 (REG I32 ESI) (INTCONST I32 4)))))) ;;;;;;;;;;;;;;;;;;;;;;;;; ; 5.1.8 ストリング命令 ; Scan word string ;;;;;;;;;;;;;;;;;;;;;;;;; ;SCASW (DEFINST ("SCASW" "SCASW" "SCASW") (PARALLEL (SET (REG I1 CF) (BNOT I1 (CARRY I1 (SUBREG I16 (REG I32 EAX) 0) (BNOT I16 (MEM I16 (REG I32 EDI))) (INTCONST I1 1)))) (SET (REG I1 PF) (PARITY I1 (CONVIT I8 (SUB I16 (SUBREG I16 (REG I32 EAX) 0) (MEM I16 (REG I32 EDI)))))) (SET (REG I1 AF) (BNOT I1 (ACARRY I1 (SUBREG I16 (REG I32 EAX) 0) (BNOT I16 (MEM I16 (REG I32 EDI))) (INTCONST I1 1)))) (SET (REG I1 ZF) (TSTEQ I1 (SUB I16 (SUBREG I16 (REG I32 EAX) 0) (MEM I16 (REG I32 EDI))) (INTCONST I16 0))) (SET (REG I1 SF) (TSTLTS I1 (SUB I16 (SUBREG I16 (REG I32 EAX) 0) (MEM I16 (REG I32 EDI))) (INTCONST I16 0))) (SET (REG I1 OF) (OVERFLOW I1 (SUBREG I16 (REG I32 EAX) 0) (BNOT I16 (MEM I16 (REG I32 EDI))) (INTCONST I1 1))) (SET (REG I32 EDI) (IFTHENELSE I32 (REG I1 DF) (SUB I32 (REG I32 EDI) (INTCONST I32 2)) (ADD I32 (REG I32 EDI) (INTCONST I32 2)))))) ;;;;;;;;;;;;;;;;;;;;;;;;; ; 5.1.8 ストリング命令 ; Store byte string ;;;;;;;;;;;;;;;;;;;;;;;;; ;STOSB (DEFINST ("STOSB" "STOSB" "STOSB") (PARALLEL (SET (MEM I8 (REG I32 EDI)) (SUBREG I8 (REG I32 EAX) 0)) (SET (REG I32 EDI) (IFTHENELSE I32 (REG I1 DF) (SUB I32 (REG I32 EDI) (INTCONST I32 1)) (ADD I32 (REG I32 EDI) (INTCONST I32 1)))))) ;;;;;;;;;;;;;;;;;;;;;;;;; ; 5.1.8 ストリング命令 ; Store doubleword string ;;;;;;;;;;;;;;;;;;;;;;;;; ;STOSD (DEFINST ("STOSD" "STOSL" "STOSD") (PARALLEL (SET (MEM I32 (REG I32 EDI)) (REG I32 EAX)) (SET (REG I32 EDI) (IFTHENELSE I32 (REG I1 DF) (SUB I32 (REG I32 EDI) (INTCONST I32 4)) (ADD I32 (REG I32 EDI) (INTCONST I32 4)))))) ;;;;;;;;;;;;;;;;;;;;;;;;; ; 5.1.8 ストリング命令 ; Store word string ;;;;;;;;;;;;;;;;;;;;;;;;; ;STOSW (DEFINST ("STOSW" "STOSW" "STOSW") (PARALLEL (SET (MEM I16 (REG I32 EDI)) (SUBREG I16 (REG I32 EAX) 0)) (SET (REG I32 EDI) (IFTHENELSE I32 (REG I1 DF) (SUB I32 (REG I32 EDI) (INTCONST I32 2)) (ADD I32 (REG I32 EDI) (INTCONST I32 2)))))) ;CLC(clear carry flag) (DEFINST ("CLC" "CLC" "CLC") (SET (REG I1 CF) (INTCONST I1 #b0))) ;CLD(clear direction flag) (DEFINST ("CLD" "CLD" "CLD") (SET (REG I1 DF) (INTCONST I1 #b0))) ;CMC(complement carry flag) (DEFINST ("CMC" "CMC" "CMC") (SET (REG I1 CF) (BNOT I1 (REG I1 CF)))) ;LAHF(load AH from flags) (DEFINST ("LAHF" "LAHF" "LAHF") (SET (SUBREG I8 (REG I32 EAX) 1) (BOR I8 (LSH I8 (CONVZX I8 (REG I1 SF)) (INTCONST I8 7)) (BOR I8 (LSH I8 (CONVZX I8 (REG I1 ZF)) (INTCONST I8 6)) (BOR I8 (LSH I8 (CONVZX I8 (REG I1 AF)) (INTCONST I8 4)) (BOR I8 (LSH I8 (CONVZX I8 (REG I1 PF)) (INTCONST I8 2)) (BOR I8 (CONVZX I8 (REG I1 CF)) (INTCONST I8 #b00000010)))))))) ;SAHF(store AH into flags) (DEFINST ("SAHF" "SAHF" "SAHF") (PARALLEL (SET (REG I1 CF) (CONVIT I1 (SUBREG I8 (REG I32 EAX) 1))) (SET (REG I1 PF) (CONVIT I1 (RSHU I8 (SUBREG I8 (REG I32 EAX) 1) (INTCONST I8 2)))) (SET (REG I1 AF) (CONVIT I1 (RSHU I8 (SUBREG I8 (REG I32 EAX) 1) (INTCONST I8 4)))) (SET (REG I1 ZF) (CONVIT I1 (RSHU I8 (SUBREG I8 (REG I32 EAX) 1) (INTCONST I8 6)))) (SET (REG I1 SF) (CONVIT I1 (RSHU I8 (SUBREG I8 (REG I32 EAX) 1) (INTCONST I8 7)))))) ;STC(set carry flag) (DEFINST ("STC" "STC" "STC") (SET (REG I1 CF) (INTCONST I1 #b1))) ;STD(set direction flag) (DEFINST ("STD" "STD" "STD") (SET (REG I1 DF) (INTCONST I1 #b1))) ;LEA(load effective address) ;Address size=32 ;LEA r16,m (DEFINST ("LEA ?1w,??2s" "LEA ??2s,%?1w" "LEA ?1w,??2s") (SET (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (CONVIT I16 (HOLE 2)))) ;LEA r32,m (DEFINST ("LEA ?1r,??2s" "LEA ??2s,%?1r" "LEA ?1r,??2s") (SET (REG I32 (HOLE 1 R32)) (HOLE 2))) ;Address size=16 ;LEA r16,m ;LEA r16,[BX+SI] (DEFINST ("DB 67h,66h,8Dh,00h+?1v*8" "ADDR16 LEA (%BX,%SI,1),%?1w" "DB 67h,66h,8Dh,00h+?1v*8") (SET (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (ADD I16 (SUBREG I16 (REG I32 EBX) 0) (SUBREG I16 (REG I32 ESI) 0)))) ;LEA r16,[BX+DI] (DEFINST ("DB 67h,66h,8Dh,01h+?1v*8" "ADDR16 LEA (%BX,%DI,1),%?1w" "DB 67h,66h,8Dh,01h+?1v*8") (SET (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (ADD I16 (SUBREG I16 (REG I32 EBX) 0) (SUBREG I16 (REG I32 EDI) 0)))) ;LEA r16,[BP+SI] (DEFINST ("DB 67h,66h,8Dh,02h+?1v*8" "ADDR16 LEA (%BP,%SI,1),%?1w" "DB 67h,66h,8Dh,02h+?1v*8") (SET (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (ADD I16 (SUBREG I16 (REG I32 EBP) 0) (SUBREG I16 (REG I32 ESI) 0)))) ;LEA r16,[BP+DI] (DEFINST ("DB 67h,66h,8Dh,03h+?1v*8" "ADDR16 LEA (%BP,%DI,1),%?1w" "DB 67h,66h,8Dh,03h+?1v*8") (SET (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (ADD I16 (SUBREG I16 (REG I32 EBP) 0) (SUBREG I16 (REG I32 EDI) 0)))) ;LEA r16,[SI] (DEFINST ("DB 67h,66h,8Dh,04h+?1v*8" "ADDR16 LEA (%SI),%?1w" "DB 67h,66h,8Dh,04h+?1v*8") (SET (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (SUBREG I16 (REG I32 ESI) 0))) ;LEA r16,[DI] (DEFINST ("DB 67h,66h,8Dh,05h+?1v*8" "ADDR16 LEA (%DI),%?1w" "DB 67h,66h,8Dh,05h+?1v*8") (SET (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (SUBREG I16 (REG I32 EDI) 0))) ;LEA r16,[BP] (DEFINST ("DB 67h,66h,8Dh,46h+?1v*8,00h" "ADDR16 LEA (%BP),%?1w" "DB 67h,66h,8Dh,46h+?1v*8,00h") (SET (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (SUBREG I16 (REG I32 EBP) 0))) ;LEA r16,[BX] (DEFINST ("DB 67h,66h,8Dh,07h+?1v*8" "ADDR16 LEA (%BX),%?1w" "DB 67h,66h,8Dh,07h+?1v*8") (SET (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (SUBREG I16 (REG I32 EBX) 0))) ;LEA r16,DS:[imm16] (DEFINST ("DB 67h,66h,8Dh,06h+?1v*8\nDW ?2c" "ADDR16 LEA %DS:?2c(,1),%?1w" "DB 67h,66h,8Dh,06h+?1v*8\nDW ?2c") (SET (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (INTCONST I16 (HOLE 2)))) ;LEA r16,[BX+SI+imm16] (DEFINST ("DB 67h,66h,8Dh,80h+?1v*8\nDW ?2c" "ADDR16 LEA ?2c(%BX,%SI,1),%?1w" "DB 67h,66h,8Dh,80h+?1v*8\nDW ?2c") (SET (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (ADD I16 (ADD I16 (SUBREG I16 (REG I32 EBX) 0) (SUBREG I16 (REG I32 ESI) 0)) (INTCONST I16 (HOLE 2))))) ;LEA r16,[BX+DI+imm16] (DEFINST ("DB 67h,66h,8Dh,81h+?1v*8\nDW ?2c" "ADDR16 LEA ?2c(%BX,%DI,1),%?1w" "DB 67h,66h,8Dh,81h+?1v*8\nDW ?2c") (SET (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (ADD I16 (ADD I16 (SUBREG I16 (REG I32 EBX) 0) (SUBREG I16 (REG I32 EDI) 0)) (INTCONST I16 (HOLE 2))))) ;LEA r16,[BP+SI+imm16] (DEFINST ("DB 67h,66h,8Dh,82h+?1v*8\nDW ?2c" "ADDR16 LEA ?2c(%BP,%SI,1),%?1w" "DB 67h,66h,8Dh,82h+?1v*8\nDW ?2c") (SET (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (ADD I16 (ADD I16 (SUBREG I16 (REG I32 EBP) 0) (SUBREG I16 (REG I32 ESI) 0)) (INTCONST I16 (HOLE 2))))) ;LEA r16,[BP+DI+imm16] (DEFINST ("DB 67h,66h,8Dh,83h+?1v*8\nDW ?2c" "ADDR16 LEA ?2c(%BP,%DI,1),%?1w" "DB 67h,66h,8Dh,83h+?1v*8\nDW ?2c") (SET (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (ADD I16 (ADD I16 (SUBREG I16 (REG I32 EBP) 0) (SUBREG I16 (REG I32 EDI) 0)) (INTCONST I16 (HOLE 2))))) ;LEA r16,[SI+imm16] (DEFINST ("DB 67h,66h,8Dh,84h+?1v*8\nDW ?2c" "ADDR16 LEA ?2c(%SI),%?1w" "DB 67h,66h,8Dh,84h+?1v*8\nDW ?2c") (SET (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (ADD I16 (SUBREG I16 (REG I32 ESI) 0) (INTCONST I16 (HOLE 2))))) ;LEA r16,[DI+imm16] (DEFINST ("DB 67h,66h,8Dh,85h+?1v*8\nDW ?2c" "ADDR16 LEA ?2c(%DI),%?1w" "DB 67h,66h,8Dh,85h+?1v*8\nDW ?2c") (SET (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (ADD I16 (SUBREG I16 (REG I32 EDI) 0) (INTCONST I16 (HOLE 2))))) ;LEA r16,[BP+imm16] (DEFINST ("DB 67h,66h,8Dh,86h+?1v*8\nDW ?2c" "ADDR16 LEA ?2c(%BP),%?1w" "DB 67h,66h,8Dh,86h+?1v*8\nDW ?2c") (SET (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (ADD I16 (SUBREG I16 (REG I32 EBP) 0) (INTCONST I16 (HOLE 2))))) ;LEA r16,[BX+imm16] (DEFINST ("DB 67h,66h,8Dh,87h+?1v*8\nDW ?2c" "ADDR16 LEA ?2c(%BX),%?1w" "DB 67h,66h,8Dh,87h+?1v*8\nDW ?2c") (SET (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (ADD I16 (SUBREG I16 (REG I32 EBX) 0) (INTCONST I16 (HOLE 2))))) ;LEA r32,m ;LEA r32,[BX+SI] (DEFINST ("DB 67h,8Dh,00h+?1v*8" "ADDR16 LEA (%BX,%SI,1),%?1r" "DB 67h,8Dh,00h+?1v*8") (SET (REG I32 (HOLE 1 R32)) (CONVZX I32 (ADD I16 (SUBREG I16 (REG I32 EBX) 0) (SUBREG I16 (REG I32 ESI) 0))))) ;LEA r32,[BX+DI] (DEFINST ("DB 67h,8Dh,01h+?1v*8" "ADDR16 LEA (%BX,%DI,1),%?1r" "DB 67h,8Dh,01h+?1v*8") (SET (REG I32 (HOLE 1 R32)) (CONVZX I32 (ADD I16 (SUBREG I16 (REG I32 EBX) 0) (SUBREG I16 (REG I32 EDI) 0))))) ;LEA r32,[BP+SI] (DEFINST ("DB 67h,8Dh,02h+?1v*8" "ADDR16 LEA (%BP,%SI,1),%?1r" "DB 67h,8Dh,02h+?1v*8") (SET (REG I32 (HOLE 1 R32)) (CONVZX I32 (ADD I16 (SUBREG I16 (REG I32 EBP) 0) (SUBREG I16 (REG I32 ESI) 0))))) ;LEA r32,[BP+DI] (DEFINST ("DB 67h,8Dh,03h+?1v*8" "ADDR16 LEA (%BP,%DI,1),%?1r" "DB 67h,8Dh,03h+?1v*8") (SET (REG I32 (HOLE 1 R32)) (CONVZX I32 (ADD I16 (SUBREG I16 (REG I32 EBP) 0) (SUBREG I16 (REG I32 EDI) 0))))) ;LEA r32,[SI] (DEFINST ("DB 67h,8Dh,04h+?1v*8" "ADDR16 LEA (%SI),%?1r" "DB 67h,8Dh,04h+?1v*8") (SET (REG I32 (HOLE 1 R32)) (CONVZX I32 (SUBREG I16 (REG I32 ESI) 0)))) ;LEA r32,[DI] (DEFINST ("DB 67h,8Dh,05h+?1v*8" "ADDR16 LEA (%DI),%?1r" "DB 67h,8Dh,05h+?1v*8") (SET (REG I32 (HOLE 1 R32)) (CONVZX I32 (SUBREG I16 (REG I32 EDI) 0)))) ;LEA r32,[BP] (DEFINST ("DB 67h,8Dh,46h+?1v*8,00h" "ADDR16 LEA (%BP),%?1r" "DB 67h,8Dh,46h+?1v*8,00h") (SET (REG I32 (HOLE 1 R32)) (CONVZX I32 (SUBREG I16 (REG I32 EBP) 0)))) ;LEA r32,[BX] (DEFINST ("DB 67h,8Dh,07h+?1v*8" "ADDR16 LEA (%BX),%?1r" "DB 67h,8Dh,07h+?1v*8") (SET (REG I32 (HOLE 1 R32)) (CONVZX I32 (SUBREG I16 (REG I32 EBX) 0)))) ;LEA r32,DS:[imm16] (DEFINST ("DB 67h,8Dh,06h+?1v*8\nDW ?2c" "ADDR16 LEA %DS:?2c(,1),%?1r" "DB 67h,8Dh,06h+?1v*8\nDW ?2c") (SET (REG I32 (HOLE 1 R32)) (CONVZX I32 (INTCONST I16 (HOLE 2))))) ;LEA r32,[BX+SI+imm16] (DEFINST ("DB 67h,8Dh,80h+?1v*8\nDW ?2c" "ADDR16 LEA ?2c(%BX,%SI,1),%?1r" "DB 67h,8Dh,80h+?1v*8\nDW ?2c") (SET (REG I32 (HOLE 1 R32)) (CONVZX I32 (ADD I16 (ADD I16 (SUBREG I16 (REG I32 EBX) 0) (SUBREG I16 (REG I32 ESI) 0)) (INTCONST I16 (HOLE 2)))))) ;LEA r32,[BX+DI+imm16] (DEFINST ("DB 67h,8Dh,81h+?1v*8\nDW ?2c" "ADDR16 LEA ?2c(%BX,%DI,1),%?1r" "DB 67h,8Dh,81h+?1v*8\nDW ?2c") (SET (REG I32 (HOLE 1 R32)) (CONVZX I32 (ADD I16 (ADD I16 (SUBREG I16 (REG I32 EBX) 0) (SUBREG I16 (REG I32 EDI) 0)) (INTCONST I16 (HOLE 2)))))) ;LEA r32,[BP+SI+imm16] (DEFINST ("DB 67h,8Dh,82h+?1v*8\nDW ?2c" "ADDR16 LEA ?2c(%BP,%SI,1),%?1r" "DB 67h,8Dh,82h+?1v*8\nDW ?2c") (SET (REG I32 (HOLE 1 R32)) (CONVZX I32 (ADD I16 (ADD I16 (SUBREG I16 (REG I32 EBP) 0) (SUBREG I16 (REG I32 ESI) 0)) (INTCONST I16 (HOLE 2)))))) ;LEA r32,[BP+DI+imm16] (DEFINST ("DB 67h,8Dh,83h+?1v*8\nDW ?2c" "ADDR16 LEA ?2c(%BP,%DI,1),%?1r" "DB 67h,8Dh,83h+?1v*8\nDW ?2c") (SET (REG I32 (HOLE 1 R32)) (CONVZX I32 (ADD I16 (ADD I16 (SUBREG I16 (REG I32 EBP) 0) (SUBREG I16 (REG I32 EDI) 0)) (INTCONST I16 (HOLE 2)))))) ;LEA r32,[SI+imm16] (DEFINST ("DB 67h,8Dh,84h+?1v*8\nDW ?2c" "ADDR16 LEA ?2c(%SI),%?1r" "DB 67h,8Dh,84h+?1v*8\nDW ?2c") (SET (REG I32 (HOLE 1 R32)) (CONVZX I32 (ADD I16 (SUBREG I16 (REG I32 ESI) 0) (INTCONST I16 (HOLE 2)))))) ;LEA r32,[DI+imm16] (DEFINST ("DB 67h,8Dh,85h+?1v*8\nDW ?2c" "ADDR16 LEA ?2c(%DI),%?1r" "DB 67h,8Dh,85h+?1v*8\nDW ?2c") (SET (REG I32 (HOLE 1 R32)) (CONVZX I32 (ADD I16 (SUBREG I16 (REG I32 EDI) 0) (INTCONST I16 (HOLE 2)))))) ;LEA r32,[BP+imm16] (DEFINST ("DB 67h,8Dh,86h+?1v*8\nDW ?2c" "ADDR16 LEA ?2c(%BP),%?1r" "DB 67h,8Dh,86h+?1v*8\nDW ?2c") (SET (REG I32 (HOLE 1 R32)) (CONVZX I32 (ADD I16 (SUBREG I16 (REG I32 EBP) 0) (INTCONST I16 (HOLE 2)))))) ;LEA r32,[BX+imm16] (DEFINST ("DB 67h,8Dh,87h+?1v*8\nDW ?2c" "ADDR16 LEA ?2c(%BX),%?1r" "DB 67h,8Dh,87h+?1v*8\nDW ?2c") (SET (REG I32 (HOLE 1 R32)) (CONVZX I32 (ADD I16 (SUBREG I16 (REG I32 EBX) 0) (INTCONST I16 (HOLE 2)))))) ;NOP(no operation) (DEFINST ("NOP" "NOP" "NOP") (PARALLEL) ) ;XLATB (DEFINST ("XLATB" "XLATB" "XLATB") (SET (SUBREG I8 (REG I32 EAX) 0) (MEM I8 (ADD I32 (REG I32 EBX) (CONVZX I32 (SUBREG I8 (REG I32 EAX) 0)))))) ;MOVD mmx, r32 (DEFINST ("MOVD ?1m, ?2r" "MOVD %?2r,%?1m" "MOVD ?1m, ?2r") (PARALLEL (SET (SUBREG I32 (REG I64 (HOLE 1 MM)) 0) (REG I32 (HOLE 2 R32))) (SET (SUBREG I32 (REG I64 (HOLE 1 MM)) 1) (INTCONST I32 0)))) ;MOVD mmx, m32 (DEFINST ("MOVD ?1m, DWORD PTR ??2s" "MOVD ??2s,%?1m" "MOVD ?1m, DWORD PTR ??2s") (PARALLEL (SET (SUBREG I32 (REG I64 (HOLE 1 MM)) 0) (MEM I32 (HOLE 2))) (SET (SUBREG I32 (REG I64 (HOLE 1 MM)) 1) (INTCONST I32 0)))) ;MOVD r32, mmx (DEFINST ("MOVD ?1r, ?2m" "MOVD %?2m,%?1r" "MOVD ?1r, ?2m") (SET (REG I32 (HOLE 1 R32)) (SUBREG I32 (REG I64 (HOLE 2 MM)) 0))) ;MOVD m32, mmx (DEFINST ("MOVD DWORD PTR ??1s, ?2m" "MOVD %?2m,??1s" "MOVD DWORD PTR ??1s, ?2m") (SET (MEM I32 (HOLE 1)) (SUBREG I32 (REG I64 (HOLE 2 MM)) 0))) ;MOVD xmm, r32 (DEFINST ("MOVD ?1x, ?2r" "nil" "nil") (PARALLEL (SET (SUBREG I32 (REG I128 (HOLE 1 XMM)) 0) (REG I32 (HOLE 2 R32))) (SET (SUBREG I32 (REG I128 (HOLE 1 XMM)) 1) (INTCONST I32 0)) (SET (SUBREG I32 (REG I128 (HOLE 1 XMM)) 2) (INTCONST I32 0)) (SET (SUBREG I32 (REG I128 (HOLE 1 XMM)) 3) (INTCONST I32 0)))) ;MOVD xmm, m32 (DEFINST ("MOVD ?1x, DWORD PTR ??2s" "nil" "nil") (PARALLEL (SET (SUBREG I32 (REG I128 (HOLE 1 XMM)) 0) (MEM I32 (HOLE 2))) (SET (SUBREG I32 (REG I128 (HOLE 1 XMM)) 1) (INTCONST I32 0)) (SET (SUBREG I32 (REG I128 (HOLE 1 XMM)) 2) (INTCONST I32 0)) (SET (SUBREG I32 (REG I128 (HOLE 1 XMM)) 3) (INTCONST I32 0)))) ;MOVD r32, xmm (DEFINST ("MOVD ?1r, ?2x" "nil" "nil") (SET (REG I32 (HOLE 1 R32)) (SUBREG I32 (REG I128 (HOLE 2 XMM)) 0))) ;MOVD m32, xmm (DEFINST ("MOVD DWORD PTR ??1s, ?2x" "nil" "nil") (SET (MEM I32 (HOLE 1)) (SUBREG I32 (REG I128 (HOLE 2 XMM)) 0))) ;MOVQ mmx, mmx (DEFINST ("MOVQ ?1m, ?2m" "MOVQ %?2m,%?1m" "MOVQ ?1m, ?2m") (SET (REG I64 (HOLE 1 MM)) (REG I64 (HOLE 2 MM)))) ;MOVQ mmx, m64 (DEFINST ("MOVQ ?1m, QWORD PTR ??2s" "MOVQ ??2s,%?1m" "MOVQ ?1m, QWORD PTR ??2s") (SET (REG I64 (HOLE 1 MM)) (MEM I64 (HOLE 2)))) ;MOVQ m64, mmx (DEFINST ("MOVQ QWORD PTR ??1s, ?2m" "MOVQ %?2m,??1s" "MOVQ QWORD PTR ??1s, ?2m") (SET (MEM I64 (HOLE 1)) (REG I64 (HOLE 2 MM)))) ;MOVQ xmm, xmm (DEFINST ("MOVQ ?1x, ?2x" "nil" "nil") (SET (SUBREG I64 (REG I128 (HOLE 1 XMM)) 0) (SUBREG I64 (REG I128 (HOLE 2 XMM)) 0))) ;MOVQ xmm, m64 (DEFINST ("MOVQ ?1x, QWORD PTR ??2s" "nil" "nil") (PARALLEL (SET (SUBREG I64 (REG I128 (HOLE 1 XMM)) 0) (MEM I64 (HOLE 2))) (SET (SUBREG I64 (REG I128 (HOLE 1 XMM)) 1) (INTCONST I64 0)))) ;MOVQ m64, xmm (DEFINST ("MOVQ QWORD PTR ??1s, ?2x" "nil" "nil") (SET (MEM I64 (HOLE 1)) (SUBREG I64 (REG I128 (HOLE 2 XMM)) 0))) ;PACKSSDW mmx, mmx (DEFINST ("PACKSSDW ?1m, ?2m" "PACKSSDW %?2m,%?1m" "PACKSSDW ?1m, ?2m") (PARALLEL ; DEST[15..0] <- SaturateSignedDoublewordToSignedWord DEST[31..0] (SET (SUBREG I16 (REG I64 (HOLE 1 MM)) 0) (IFTHENELSE I16 (TSTGTS I1 (SUBREG I32 (REG I64 (HOLE 1 MM)) 0) (INTCONST I32 #x7FFF)) (INTCONST I16 #x7FFF) (IFTHENELSE I16 (TSTLTS I1 (SUBREG I32 (REG I64 (HOLE 1 MM)) 0) (INTCONST I32 #x8000)) (INTCONST I16 #x8000) (CONVIT I16 (SUBREG I32 (REG I64 (HOLE 1 MM)) 0))))) ; DEST[31..16] <- SaturateSignedDoublewordToSignedWord DEST[63..32] (SET (SUBREG I16 (REG I64 (HOLE 1 MM)) 1) (IFTHENELSE I16 (TSTGTS I1 (SUBREG I32 (REG I64 (HOLE 1 MM)) 1) (INTCONST I32 #x7FFF)) (INTCONST I16 #x7FFF) (IFTHENELSE I16 (TSTLTS I1 (SUBREG I32 (REG I64 (HOLE 1 MM)) 1) (INTCONST I32 #x8000)) (INTCONST I16 #x8000) (CONVIT I16 (SUBREG I32 (REG I64 (HOLE 1 MM)) 1))))) ; DEST[47..32] <- SaturateSignedDoublewordToSignedWord SRC[31..0] (SET (SUBREG I16 (REG I64 (HOLE 1 MM)) 2) (IFTHENELSE I16 (TSTGTS I1 (SUBREG I32 (REG I64 (HOLE 2 MM)) 0) (INTCONST I32 #x7FFF)) (INTCONST I16 #x7FFF) (IFTHENELSE I16 (TSTLTS I1 (SUBREG I32 (REG I64 (HOLE 2 MM)) 0) (INTCONST I32 #x8000)) (INTCONST I16 #x8000) (CONVIT I16 (SUBREG I32 (REG I64 (HOLE 2 MM)) 0))))) ; DEST[63..48] <- SaturateSignedDoublewordToSignedWord SRC[63..32] (SET (SUBREG I16 (REG I64 (HOLE 1 MM)) 3) (IFTHENELSE I16 (TSTGTS I1 (SUBREG I32 (REG I64 (HOLE 2 MM)) 1) (INTCONST I32 #x7FFF)) (INTCONST I16 #x7FFF) (IFTHENELSE I16 (TSTLTS I1 (SUBREG I32 (REG I64 (HOLE 2 MM)) 1) (INTCONST I32 #x8000)) (INTCONST I16 #x8000) (CONVIT I16 (SUBREG I32 (REG I64 (HOLE 2 MM)) 1))))))) ;PACKSSDW mmx, m64 (DEFINST ("PACKSSDW ?1m, QWORD PTR ??2s" "PACKSSDW ??2s,%?1m" "PACKSSDW ?1m, QWORD PTR ??2s") (PARALLEL ; DEST[15..0] <- SaturateSignedDoublewordToSignedWord DEST[31..0] (SET (SUBREG I16 (REG I64 (HOLE 1 MM)) 0) (IFTHENELSE I16 (TSTGTS I1 (SUBREG I32 (REG I64 (HOLE 1 MM)) 0) (INTCONST I32 #x7FFF)) (INTCONST I16 #x7FFF) (IFTHENELSE I16 (TSTLTS I1 (SUBREG I32 (REG I64 (HOLE 1 MM)) 0) (INTCONST I32 #x8000)) (INTCONST I16 #x8000) (CONVIT I16 (SUBREG I32 (REG I64 (HOLE 1 MM)) 0))))) ; DEST[31..16] <- SaturateSignedDoublewordToSignedWord DEST[63..32] (SET (SUBREG I16 (REG I64 (HOLE 1 MM)) 1) (IFTHENELSE I16 (TSTGTS I1 (SUBREG I32 (REG I64 (HOLE 1 MM)) 1) (INTCONST I32 #x7FFF)) (INTCONST I16 #x7FFF) (IFTHENELSE I16 (TSTLTS I1 (SUBREG I32 (REG I64 (HOLE 1 MM)) 1) (INTCONST I32 #x8000)) (INTCONST I16 #x8000) (CONVIT I16 (SUBREG I32 (REG I64 (HOLE 1 MM)) 1))))) ; DEST[47..32] <- SaturateSignedDoublewordToSignedWord SRC[31..0] (SET (SUBREG I16 (REG I64 (HOLE 1 MM)) 2) (IFTHENELSE I16 (TSTGTS I1 (SUBREG I32 (MEM I64 (HOLE 2)) 0) (INTCONST I32 #x7FFF)) (INTCONST I16 #x7FFF) (IFTHENELSE I16 (TSTLTS I1 (SUBREG I32 (MEM I64 (HOLE 2)) 0) (INTCONST I32 #x8000)) (INTCONST I16 #x8000) (CONVIT I16 (SUBREG I32 (MEM I64 (HOLE 2)) 0))))) ; DEST[63..48] <- SaturateSignedDoublewordToSignedWord SRC[63..32] (SET (SUBREG I16 (REG I64 (HOLE 1 MM)) 3) (IFTHENELSE I16 (TSTGTS I1 (SUBREG I32 (MEM I64 (HOLE 2)) 1) (INTCONST I32 #x7FFF)) (INTCONST I16 #x7FFF) (IFTHENELSE I16 (TSTLTS I1 (SUBREG I32 (MEM I64 (HOLE 2)) 1) (INTCONST I32 #x8000)) (INTCONST I16 #x8000) (CONVIT I16 (SUBREG I32 (MEM I64 (HOLE 2)) 1))))))) ;PACKSSDW xmm, xmm (DEFINST ("PACKSSDW ?1x, ?2x" "nil" "nil") (PARALLEL ; DEST[15..0] <- SaturateSignedDoublewordToSignedWord DEST[31..0] (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 0) (IFTHENELSE I16 (TSTGTS I1 (SUBREG I32 (REG I128 (HOLE 1 XMM)) 0) (INTCONST I32 #x7FFF)) (INTCONST I16 #x7FFF) (IFTHENELSE I16 (TSTLTS I1 (SUBREG I32 (REG I128 (HOLE 1 XMM)) 0) (INTCONST I32 #x8000)) (INTCONST I16 #x8000) (CONVIT I16 (SUBREG I32 (REG I128 (HOLE 1 XMM)) 0))))) ; DEST[31..16] <- SaturateSignedDoublewordToSignedWord DEST[63..32] (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 1) (IFTHENELSE I16 (TSTGTS I1 (SUBREG I32 (REG I128 (HOLE 1 XMM)) 1) (INTCONST I32 #x7FFF)) (INTCONST I16 #x7FFF) (IFTHENELSE I16 (TSTLTS I1 (SUBREG I32 (REG I128 (HOLE 1 XMM)) 1) (INTCONST I32 #x8000)) (INTCONST I16 #x8000) (CONVIT I16 (SUBREG I32 (REG I128 (HOLE 1 XMM)) 1))))) ; DEST[47..32] <- SaturateSignedDoublewordToSignedWord DEST[95..64] (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 2) (IFTHENELSE I16 (TSTGTS I1 (SUBREG I32 (REG I128 (HOLE 1 XMM)) 2) (INTCONST I32 #x7FFF)) (INTCONST I16 #x7FFF) (IFTHENELSE I16 (TSTLTS I1 (SUBREG I32 (REG I128 (HOLE 1 XMM)) 2) (INTCONST I32 #x8000)) (INTCONST I16 #x8000) (CONVIT I16 (SUBREG I32 (REG I128 (HOLE 1 XMM)) 2))))) ; DEST[63..48] <- SaturateSignedDoublewordToSignedWord DEST[127..96] (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 3) (IFTHENELSE I16 (TSTGTS I1 (SUBREG I32 (REG I128 (HOLE 1 XMM)) 3) (INTCONST I32 #x7FFF)) (INTCONST I16 #x7FFF) (IFTHENELSE I16 (TSTLTS I1 (SUBREG I32 (REG I128 (HOLE 1 XMM)) 3) (INTCONST I32 #x8000)) (INTCONST I16 #x8000) (CONVIT I16 (SUBREG I32 (REG I128 (HOLE 1 XMM)) 3))))) ; DEST[79..64] <- SaturateSignedDoublewordToSignedWord SRC[31..0] (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 4) (IFTHENELSE I16 (TSTGTS I1 (SUBREG I32 (REG I128 (HOLE 2 XMM)) 0) (INTCONST I32 #x7FFF)) (INTCONST I16 #x7FFF) (IFTHENELSE I16 (TSTLTS I1 (SUBREG I32 (REG I128 (HOLE 2 XMM)) 0) (INTCONST I32 #x8000)) (INTCONST I16 #x8000) (CONVIT I16 (SUBREG I32 (REG I128 (HOLE 2 XMM)) 0))))) ; DEST[95..80] <- SaturateSignedDoublewordToSignedWord SRC[63..32] (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 5) (IFTHENELSE I16 (TSTGTS I1 (SUBREG I32 (REG I128 (HOLE 2 XMM)) 1) (INTCONST I32 #x7FFF)) (INTCONST I16 #x7FFF) (IFTHENELSE I16 (TSTLTS I1 (SUBREG I32 (REG I128 (HOLE 2 XMM)) 1) (INTCONST I32 #x8000)) (INTCONST I16 #x8000) (CONVIT I16 (SUBREG I32 (REG I128 (HOLE 2 XMM)) 1))))) ; DEST[111..96] <- SaturateSignedDoublewordToSignedWord SRC[95..64] (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 6) (IFTHENELSE I16 (TSTGTS I1 (SUBREG I32 (REG I128 (HOLE 2 XMM)) 2) (INTCONST I32 #x7FFF)) (INTCONST I16 #x7FFF) (IFTHENELSE I16 (TSTLTS I1 (SUBREG I32 (REG I128 (HOLE 2 XMM)) 2) (INTCONST I32 #x8000)) (INTCONST I16 #x8000) (CONVIT I16 (SUBREG I32 (REG I128 (HOLE 2 XMM)) 2))))) ; DEST[127..112] <- SaturateSignedDoublewordToSignedWord SRC[127..96] (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 7) (IFTHENELSE I16 (TSTGTS I1 (SUBREG I32 (REG I128 (HOLE 2 XMM)) 3) (INTCONST I32 #x7FFF)) (INTCONST I16 #x7FFF) (IFTHENELSE I16 (TSTLTS I1 (SUBREG I32 (REG I128 (HOLE 2 XMM)) 3) (INTCONST I32 #x8000)) (INTCONST I16 #x8000) (CONVIT I16 (SUBREG I32 (REG I128 (HOLE 2 XMM)) 3))))))) ;PACKSSDW xmm, m128 (DEFINST ("PACKSSDW ?1x, QWORD PTR ??2s" "nil" "nil") (PARALLEL ; DEST[15..0] <- SaturateSignedDoublewordToSignedWord DEST[31..0] (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 0) (IFTHENELSE I16 (TSTGTS I1 (SUBREG I32 (REG I128 (HOLE 1 XMM)) 0) (INTCONST I32 #x7FFF)) (INTCONST I16 #x7FFF) (IFTHENELSE I16 (TSTLTS I1 (SUBREG I32 (REG I128 (HOLE 1 XMM)) 0) (INTCONST I32 #x8000)) (INTCONST I16 #x8000) (CONVIT I16 (SUBREG I32 (REG I128 (HOLE 1 XMM)) 0))))) ; DEST[31..16] <- SaturateSignedDoublewordToSignedWord DEST[63..32] (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 1) (IFTHENELSE I16 (TSTGTS I1 (SUBREG I32 (REG I128 (HOLE 1 XMM)) 1) (INTCONST I32 #x7FFF)) (INTCONST I16 #x7FFF) (IFTHENELSE I16 (TSTLTS I1 (SUBREG I32 (REG I128 (HOLE 1 XMM)) 1) (INTCONST I32 #x8000)) (INTCONST I16 #x8000) (CONVIT I16 (SUBREG I32 (REG I128 (HOLE 1 XMM)) 1))))) ; DEST[47..32] <- SaturateSignedDoublewordToSignedWord DEST[95..64] (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 2) (IFTHENELSE I16 (TSTGTS I1 (SUBREG I32 (REG I128 (HOLE 1 XMM)) 2) (INTCONST I32 #x7FFF)) (INTCONST I16 #x7FFF) (IFTHENELSE I16 (TSTLTS I1 (SUBREG I32 (REG I128 (HOLE 1 XMM)) 2) (INTCONST I32 #x8000)) (INTCONST I16 #x8000) (CONVIT I16 (SUBREG I32 (REG I128 (HOLE 1 XMM)) 2))))) ; DEST[63..48] <- SaturateSignedDoublewordToSignedWord DEST[127..96] (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 3) (IFTHENELSE I16 (TSTGTS I1 (SUBREG I32 (REG I128 (HOLE 1 XMM)) 3) (INTCONST I32 #x7FFF)) (INTCONST I16 #x7FFF) (IFTHENELSE I16 (TSTLTS I1 (SUBREG I32 (REG I128 (HOLE 1 XMM)) 3) (INTCONST I32 #x8000)) (INTCONST I16 #x8000) (CONVIT I16 (SUBREG I32 (REG I128 (HOLE 1 XMM)) 3))))) ; DEST[79..64] <- SaturateSignedDoublewordToSignedWord SRC[31..0] (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 4) (IFTHENELSE I16 (TSTGTS I1 (SUBREG I32 (MEM I128 (HOLE 2)) 0) (INTCONST I32 #x7FFF)) (INTCONST I16 #x7FFF) (IFTHENELSE I16 (TSTLTS I1 (SUBREG I32 (MEM I128 (HOLE 2)) 0) (INTCONST I32 #x8000)) (INTCONST I16 #x8000) (CONVIT I16 (SUBREG I32 (MEM I128 (HOLE 2)) 0))))) ; DEST[95..80] <- SaturateSignedDoublewordToSignedWord SRC[63..32] (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 5) (IFTHENELSE I16 (TSTGTS I1 (SUBREG I32 (MEM I128 (HOLE 2)) 1) (INTCONST I32 #x7FFF)) (INTCONST I16 #x7FFF) (IFTHENELSE I16 (TSTLTS I1 (SUBREG I32 (MEM I128 (HOLE 2)) 1) (INTCONST I32 #x8000)) (INTCONST I16 #x8000) (CONVIT I16 (SUBREG I32 (MEM I128 (HOLE 2)) 1))))) ; DEST[111..96] <- SaturateSignedDoublewordToSignedWord SRC[95..64] (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 6) (IFTHENELSE I16 (TSTGTS I1 (SUBREG I32 (MEM I128 (HOLE 2)) 2) (INTCONST I32 #x7FFF)) (INTCONST I16 #x7FFF) (IFTHENELSE I16 (TSTLTS I1 (SUBREG I32 (MEM I128 (HOLE 2)) 2) (INTCONST I32 #x8000)) (INTCONST I16 #x8000) (CONVIT I16 (SUBREG I32 (MEM I128 (HOLE 2)) 2))))) ; DEST[127..112] <- SaturateSignedDoublewordToSignedWord SRC[127..96] (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 7) (IFTHENELSE I16 (TSTGTS I1 (SUBREG I32 (MEM I128 (HOLE 2)) 3) (INTCONST I32 #x7FFF)) (INTCONST I16 #x7FFF) (IFTHENELSE I16 (TSTLTS I1 (SUBREG I32 (MEM I128 (HOLE 2)) 3) (INTCONST I32 #x8000)) (INTCONST I16 #x8000) (CONVIT I16 (SUBREG I32 (MEM I128 (HOLE 2)) 3))))))) ;PACKSSWB mmx, mmx (DEFINST ("PACKSSWB ?1m, ?2m" "PACKSSWB %?2m,%?1m" "PACKSSWB ?1m, ?2m") (PARALLEL ; DEST[7..0] <- SaturateSignedWordToSignedByte DEST[15..0] (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 0) (IFTHENELSE I8 (TSTGTS I1 (SUBREG I16 (REG I64 (HOLE 1 MM)) 0) (INTCONST I16 #x7F)) (INTCONST I8 #x7F) (IFTHENELSE I8 (TSTLTS I1 (SUBREG I16 (REG I64 (HOLE 1 MM)) 0) (INTCONST I16 #x80)) (INTCONST I8 #x80) (CONVIT I8 (SUBREG I16 (REG I64 (HOLE 1 MM)) 0))))) ; DEST[15..8] <- SaturateSignedWordToSignedByte DEST[31..16] (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 1) (IFTHENELSE I8 (TSTGTS I1 (SUBREG I16 (REG I64 (HOLE 1 MM)) 1) (INTCONST I16 #x7F)) (INTCONST I8 #x7F) (IFTHENELSE I8 (TSTLTS I1 (SUBREG I16 (REG I64 (HOLE 1 MM)) 1) (INTCONST I16 #x80)) (INTCONST I8 #x80) (CONVIT I8 (SUBREG I16 (REG I64 (HOLE 1 MM)) 1))))) ; DEST[23..16] <- SaturateSignedWordToSignedByte DEST[47..32] (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 2) (IFTHENELSE I8 (TSTGTS I1 (SUBREG I16 (REG I64 (HOLE 1 MM)) 2) (INTCONST I16 #x7F)) (INTCONST I8 #x7F) (IFTHENELSE I8 (TSTLTS I1 (SUBREG I16 (REG I64 (HOLE 1 MM)) 2) (INTCONST I16 #x80)) (INTCONST I8 #x80) (CONVIT I8 (SUBREG I16 (REG I64 (HOLE 1 MM)) 2))))) ; DEST[31..24] <- SaturateSignedWordToSignedByte DEST[63..48] (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 3) (IFTHENELSE I8 (TSTGTS I1 (SUBREG I16 (REG I64 (HOLE 1 MM)) 3) (INTCONST I16 #x7F)) (INTCONST I8 #x7F) (IFTHENELSE I8 (TSTLTS I1 (SUBREG I16 (REG I64 (HOLE 1 MM)) 3) (INTCONST I16 #x80)) (INTCONST I8 #x80) (CONVIT I8 (SUBREG I16 (REG I64 (HOLE 1 MM)) 3))))) ; DEST[39..32] <- SaturateSignedWordToSignedByte SRC[15..0] (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 4) (IFTHENELSE I8 (TSTGTS I1 (SUBREG I16 (REG I64 (HOLE 2 MM)) 0) (INTCONST I16 #x7F)) (INTCONST I8 #x7F) (IFTHENELSE I8 (TSTLTS I1 (SUBREG I16 (REG I64 (HOLE 2 MM)) 0) (INTCONST I16 #x80)) (INTCONST I8 #x80) (CONVIT I8 (SUBREG I16 (REG I64 (HOLE 2 MM)) 0))))) ; DEST[47..40] <- SaturateSignedWordToSignedByte SRC[31..16] (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 5) (IFTHENELSE I8 (TSTGTS I1 (SUBREG I16 (REG I64 (HOLE 2 MM)) 1) (INTCONST I16 #x7F)) (INTCONST I8 #x7F) (IFTHENELSE I8 (TSTLTS I1 (SUBREG I16 (REG I64 (HOLE 2 MM)) 1) (INTCONST I16 #x80)) (INTCONST I8 #x80) (CONVIT I8 (SUBREG I16 (REG I64 (HOLE 2 MM)) 1))))) ; DEST[55..48] <- SaturateSignedWordToSignedByte SRC[47..32] (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 6) (IFTHENELSE I8 (TSTGTS I1 (SUBREG I16 (REG I64 (HOLE 2 MM)) 2) (INTCONST I16 #x7F)) (INTCONST I8 #x7F) (IFTHENELSE I8 (TSTLTS I1 (SUBREG I16 (REG I64 (HOLE 2 MM)) 2) (INTCONST I16 #x80)) (INTCONST I8 #x80) (CONVIT I8 (SUBREG I16 (REG I64 (HOLE 2 MM)) 2))))) ; DEST[63..56] <- SaturateSignedWordToSignedByte SRC[63..48] (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 7) (IFTHENELSE I8 (TSTGTS I1 (SUBREG I16 (REG I64 (HOLE 2 MM)) 3) (INTCONST I16 #x7F)) (INTCONST I8 #x7F) (IFTHENELSE I8 (TSTLTS I1 (SUBREG I16 (REG I64 (HOLE 2 MM)) 3) (INTCONST I16 #x80)) (INTCONST I8 #x80) (CONVIT I8 (SUBREG I16 (REG I64 (HOLE 2 MM)) 3))))))) ;PACKSSWB mmx, m64 (DEFINST ("PACKSSWB ?1m, QWORD PTR ??2s" "PACKSSWB ??2s,%?1m" "PACKSSWB ?1m, QWORD PTR ??2s") (PARALLEL ; DEST[7..0] <- SaturateSignedWordToSignedByte DEST[15..0] (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 0) (IFTHENELSE I8 (TSTGTS I1 (SUBREG I16 (REG I64 (HOLE 1 MM)) 0) (INTCONST I16 #x7F)) (INTCONST I8 #x7F) (IFTHENELSE I8 (TSTLTS I1 (SUBREG I16 (REG I64 (HOLE 1 MM)) 0) (INTCONST I16 #x80)) (INTCONST I8 #x80) (CONVIT I8 (SUBREG I16 (REG I64 (HOLE 1 MM)) 0))))) ; DEST[15..8] <- SaturateSignedWordToSignedByte DEST[31..16] (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 1) (IFTHENELSE I8 (TSTGTS I1 (SUBREG I16 (REG I64 (HOLE 1 MM)) 1) (INTCONST I16 #x7F)) (INTCONST I8 #x7F) (IFTHENELSE I8 (TSTLTS I1 (SUBREG I16 (REG I64 (HOLE 1 MM)) 1) (INTCONST I16 #x80)) (INTCONST I8 #x80) (CONVIT I8 (SUBREG I16 (REG I64 (HOLE 1 MM)) 1))))) ; DEST[23..16] <- SaturateSignedWordToSignedByte DEST[47..32] (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 2) (IFTHENELSE I8 (TSTGTS I1 (SUBREG I16 (REG I64 (HOLE 1 MM)) 2) (INTCONST I16 #x7F)) (INTCONST I8 #x7F) (IFTHENELSE I8 (TSTLTS I1 (SUBREG I16 (REG I64 (HOLE 1 MM)) 2) (INTCONST I16 #x80)) (INTCONST I8 #x80) (CONVIT I8 (SUBREG I16 (REG I64 (HOLE 1 MM)) 2))))) ; DEST[31..24] <- SaturateSignedWordToSignedByte DEST[63..48] (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 3) (IFTHENELSE I8 (TSTGTS I1 (SUBREG I16 (REG I64 (HOLE 1 MM)) 3) (INTCONST I16 #x7F)) (INTCONST I8 #x7F) (IFTHENELSE I8 (TSTLTS I1 (SUBREG I16 (REG I64 (HOLE 1 MM)) 3) (INTCONST I16 #x80)) (INTCONST I8 #x80) (CONVIT I8 (SUBREG I16 (REG I64 (HOLE 1 MM)) 3))))) ; DEST[39..32] <- SaturateSignedWordToSignedByte SRC[15..0] (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 4) (IFTHENELSE I8 (TSTGTS I1 (SUBREG I16 (MEM I64 (HOLE 2)) 0) (INTCONST I16 #x7F)) (INTCONST I8 #x7F) (IFTHENELSE I8 (TSTLTS I1 (SUBREG I16 (MEM I64 (HOLE 2)) 0) (INTCONST I16 #x80)) (INTCONST I8 #x80) (CONVIT I8 (SUBREG I16 (MEM I64 (HOLE 2)) 0))))) ; DEST[47..40] <- SaturateSignedWordToSignedByte SRC[31..16] (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 5) (IFTHENELSE I8 (TSTGTS I1 (SUBREG I16 (MEM I64 (HOLE 2)) 1) (INTCONST I16 #x7F)) (INTCONST I8 #x7F) (IFTHENELSE I8 (TSTLTS I1 (SUBREG I16 (MEM I64 (HOLE 2)) 1) (INTCONST I16 #x80)) (INTCONST I8 #x80) (CONVIT I8 (SUBREG I16 (MEM I64 (HOLE 2)) 1))))) ; DEST[55..48] <- SaturateSignedWordToSignedByte SRC[47..32] (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 6) (IFTHENELSE I8 (TSTGTS I1 (SUBREG I16 (MEM I64 (HOLE 2)) 2) (INTCONST I16 #x7F)) (INTCONST I8 #x7F) (IFTHENELSE I8 (TSTLTS I1 (SUBREG I16 (MEM I64 (HOLE 2)) 2) (INTCONST I16 #x80)) (INTCONST I8 #x80) (CONVIT I8 (SUBREG I16 (MEM I64 (HOLE 2)) 2))))) ; DEST[63..56] <- SaturateSignedWordToSignedByte SRC[63..48] (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 7) (IFTHENELSE I8 (TSTGTS I1 (SUBREG I16 (MEM I64 (HOLE 2)) 3) (INTCONST I16 #x7F)) (INTCONST I8 #x7F) (IFTHENELSE I8 (TSTLTS I1 (SUBREG I16 (MEM I64 (HOLE 2)) 3) (INTCONST I16 #x80)) (INTCONST I8 #x80) (CONVIT I8 (SUBREG I16 (MEM I64 (HOLE 2)) 3))))))) ;PACKSSWB xmm, xmm (DEFINST ("PACKSSWB ?1x, ?2x" "nil" "nil") (PARALLEL ; DEST[7..0] <- SaturateSignedWordToSignedByte DEST[15..0] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 0) (IFTHENELSE I8 (TSTGTS I1 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 0) (INTCONST I16 #x7F)) (INTCONST I8 #x7F) (IFTHENELSE I8 (TSTLTS I1 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 0) (INTCONST I16 #x80)) (INTCONST I8 #x80) (CONVIT I8 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 0))))) ; DEST[15..8] <- SaturateSignedWordToSignedByte DEST[31..16] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 1) (IFTHENELSE I8 (TSTGTS I1 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 1) (INTCONST I16 #x7F)) (INTCONST I8 #x7F) (IFTHENELSE I8 (TSTLTS I1 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 1) (INTCONST I16 #x80)) (INTCONST I8 #x80) (CONVIT I8 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 1))))) ; DEST[23..16] <- SaturateSignedWordToSignedByte DEST[47..32] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 2) (IFTHENELSE I8 (TSTGTS I1 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 2) (INTCONST I16 #x7F)) (INTCONST I8 #x7F) (IFTHENELSE I8 (TSTLTS I1 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 2) (INTCONST I16 #x80)) (INTCONST I8 #x80) (CONVIT I8 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 2))))) ; DEST[31..24] <- SaturateSignedWordToSignedByte DEST[63..48] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 3) (IFTHENELSE I8 (TSTGTS I1 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 3) (INTCONST I16 #x7F)) (INTCONST I8 #x7F) (IFTHENELSE I8 (TSTLTS I1 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 3) (INTCONST I16 #x80)) (INTCONST I8 #x80) (CONVIT I8 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 3))))) ; DEST[39..32] <- SaturateSignedWordToSignedByte DEST[79..64] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 4) (IFTHENELSE I8 (TSTGTS I1 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 4) (INTCONST I16 #x7F)) (INTCONST I8 #x7F) (IFTHENELSE I8 (TSTLTS I1 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 4) (INTCONST I16 #x80)) (INTCONST I8 #x80) (CONVIT I8 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 4))))) ; DEST[47..40] <- SaturateSignedWordToSignedByte DEST[95..80] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 5) (IFTHENELSE I8 (TSTGTS I1 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 5) (INTCONST I16 #x7F)) (INTCONST I8 #x7F) (IFTHENELSE I8 (TSTLTS I1 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 5) (INTCONST I16 #x80)) (INTCONST I8 #x80) (CONVIT I8 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 5))))) ; DEST[55..48] <- SaturateSignedWordToSignedByte DEST[111..96] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 6) (IFTHENELSE I8 (TSTGTS I1 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 6) (INTCONST I16 #x7F)) (INTCONST I8 #x7F) (IFTHENELSE I8 (TSTLTS I1 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 6) (INTCONST I16 #x80)) (INTCONST I8 #x80) (CONVIT I8 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 6))))) ; DEST[63..56] <- SaturateSignedWordToSignedByte DEST[127..112] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 7) (IFTHENELSE I8 (TSTGTS I1 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 7) (INTCONST I16 #x7F)) (INTCONST I8 #x7F) (IFTHENELSE I8 (TSTLTS I1 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 7) (INTCONST I16 #x80)) (INTCONST I8 #x80) (CONVIT I8 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 7))))) ; DEST[71..64] <- SaturateSignedWordToSignedByte SRC[15..0] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 8) (IFTHENELSE I8 (TSTGTS I1 (SUBREG I16 (REG I128 (HOLE 2 XMM)) 0) (INTCONST I16 #x7F)) (INTCONST I8 #x7F) (IFTHENELSE I8 (TSTLTS I1 (SUBREG I16 (REG I128 (HOLE 2 XMM)) 0) (INTCONST I16 #x80)) (INTCONST I8 #x80) (CONVIT I8 (SUBREG I16 (REG I128 (HOLE 2 XMM)) 0))))) ; DEST[79..72] <- SaturateSignedWordToSignedByte SRC[31..16] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 9) (IFTHENELSE I8 (TSTGTS I1 (SUBREG I16 (REG I128 (HOLE 2 XMM)) 1) (INTCONST I16 #x7F)) (INTCONST I8 #x7F) (IFTHENELSE I8 (TSTLTS I1 (SUBREG I16 (REG I128 (HOLE 2 XMM)) 1) (INTCONST I16 #x80)) (INTCONST I8 #x80) (CONVIT I8 (SUBREG I16 (REG I128 (HOLE 2 XMM)) 1))))) ; DEST[87..80] <- SaturateSignedWordToSignedByte SRC[47..32] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 10) (IFTHENELSE I8 (TSTGTS I1 (SUBREG I16 (REG I128 (HOLE 2 XMM)) 2) (INTCONST I16 #x7F)) (INTCONST I8 #x7F) (IFTHENELSE I8 (TSTLTS I1 (SUBREG I16 (REG I128 (HOLE 2 XMM)) 2) (INTCONST I16 #x80)) (INTCONST I8 #x80) (CONVIT I8 (SUBREG I16 (REG I128 (HOLE 2 XMM)) 2))))) ; DEST[95..88] <- SaturateSignedWordToSignedByte SRC[63..48] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 11) (IFTHENELSE I8 (TSTGTS I1 (SUBREG I16 (REG I128 (HOLE 2 XMM)) 3) (INTCONST I16 #x7F)) (INTCONST I8 #x7F) (IFTHENELSE I8 (TSTLTS I1 (SUBREG I16 (REG I128 (HOLE 2 XMM)) 3) (INTCONST I16 #x80)) (INTCONST I8 #x80) (CONVIT I8 (SUBREG I16 (REG I128 (HOLE 2 XMM)) 3))))) ; DEST[103..96] <- SaturateSignedWordToSignedByte SRC[79..64] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 12) (IFTHENELSE I8 (TSTGTS I1 (SUBREG I16 (REG I128 (HOLE 2 XMM)) 4) (INTCONST I16 #x7F)) (INTCONST I8 #x7F) (IFTHENELSE I8 (TSTLTS I1 (SUBREG I16 (REG I128 (HOLE 2 XMM)) 4) (INTCONST I16 #x80)) (INTCONST I8 #x80) (CONVIT I8 (SUBREG I16 (REG I128 (HOLE 2 XMM)) 4))))) ; DEST[111..104] <- SaturateSignedWordToSignedByte SRC[95..80] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 13) (IFTHENELSE I8 (TSTGTS I1 (SUBREG I16 (REG I128 (HOLE 2 XMM)) 5) (INTCONST I16 #x7F)) (INTCONST I8 #x7F) (IFTHENELSE I8 (TSTLTS I1 (SUBREG I16 (REG I128 (HOLE 2 XMM)) 5) (INTCONST I16 #x80)) (INTCONST I8 #x80) (CONVIT I8 (SUBREG I16 (REG I128 (HOLE 2 XMM)) 5))))) ; DEST[119..112] <- SaturateSignedWordToSignedByte SRC[111..96] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 14) (IFTHENELSE I8 (TSTGTS I1 (SUBREG I16 (REG I128 (HOLE 2 XMM)) 6) (INTCONST I16 #x7F)) (INTCONST I8 #x7F) (IFTHENELSE I8 (TSTLTS I1 (SUBREG I16 (REG I128 (HOLE 2 XMM)) 6) (INTCONST I16 #x80)) (INTCONST I8 #x80) (CONVIT I8 (SUBREG I16 (REG I128 (HOLE 2 XMM)) 6))))) ; DEST[127..120] <- SaturateSignedWordToSignedByte SRC[127..112] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 15) (IFTHENELSE I8 (TSTGTS I1 (SUBREG I16 (REG I128 (HOLE 2 XMM)) 7) (INTCONST I16 #x7F)) (INTCONST I8 #x7F) (IFTHENELSE I8 (TSTLTS I1 (SUBREG I16 (REG I128 (HOLE 2 XMM)) 7) (INTCONST I16 #x80)) (INTCONST I8 #x80) (CONVIT I8 (SUBREG I16 (REG I128 (HOLE 2 XMM)) 7))))))) ;PACKSSWB xmm, m128 (DEFINST ("PACKSSWB ?1x, QWORD PTR ??2s" "nil" "nil") (PARALLEL ; DEST[7..0] <- SaturateSignedWordToSignedByte DEST[15..0] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 0) (IFTHENELSE I8 (TSTGTS I1 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 0) (INTCONST I16 #x7F)) (INTCONST I8 #x7F) (IFTHENELSE I8 (TSTLTS I1 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 0) (INTCONST I16 #x80)) (INTCONST I8 #x80) (CONVIT I8 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 0))))) ; DEST[15..8] <- SaturateSignedWordToSignedByte DEST[31..16] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 1) (IFTHENELSE I8 (TSTGTS I1 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 1) (INTCONST I16 #x7F)) (INTCONST I8 #x7F) (IFTHENELSE I8 (TSTLTS I1 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 1) (INTCONST I16 #x80)) (INTCONST I8 #x80) (CONVIT I8 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 1))))) ; DEST[23..16] <- SaturateSignedWordToSignedByte DEST[47..32] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 2) (IFTHENELSE I8 (TSTGTS I1 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 2) (INTCONST I16 #x7F)) (INTCONST I8 #x7F) (IFTHENELSE I8 (TSTLTS I1 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 2) (INTCONST I16 #x80)) (INTCONST I8 #x80) (CONVIT I8 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 2))))) ; DEST[31..24] <- SaturateSignedWordToSignedByte DEST[63..48] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 3) (IFTHENELSE I8 (TSTGTS I1 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 3) (INTCONST I16 #x7F)) (INTCONST I8 #x7F) (IFTHENELSE I8 (TSTLTS I1 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 3) (INTCONST I16 #x80)) (INTCONST I8 #x80) (CONVIT I8 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 3))))) ; DEST[39..32] <- SaturateSignedWordToSignedByte DEST[79..64] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 4) (IFTHENELSE I8 (TSTGTS I1 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 4) (INTCONST I16 #x7F)) (INTCONST I8 #x7F) (IFTHENELSE I8 (TSTLTS I1 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 4) (INTCONST I16 #x80)) (INTCONST I8 #x80) (CONVIT I8 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 4))))) ; DEST[47..40] <- SaturateSignedWordToSignedByte DEST[95..80] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 5) (IFTHENELSE I8 (TSTGTS I1 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 5) (INTCONST I16 #x7F)) (INTCONST I8 #x7F) (IFTHENELSE I8 (TSTLTS I1 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 5) (INTCONST I16 #x80)) (INTCONST I8 #x80) (CONVIT I8 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 5))))) ; DEST[55..48] <- SaturateSignedWordToSignedByte DEST[111..96] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 6) (IFTHENELSE I8 (TSTGTS I1 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 6) (INTCONST I16 #x7F)) (INTCONST I8 #x7F) (IFTHENELSE I8 (TSTLTS I1 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 6) (INTCONST I16 #x80)) (INTCONST I8 #x80) (CONVIT I8 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 6))))) ; DEST[63..56] <- SaturateSignedWordToSignedByte DEST[127..112] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 7) (IFTHENELSE I8 (TSTGTS I1 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 7) (INTCONST I16 #x7F)) (INTCONST I8 #x7F) (IFTHENELSE I8 (TSTLTS I1 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 7) (INTCONST I16 #x80)) (INTCONST I8 #x80) (CONVIT I8 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 7))))) ; DEST[71..64] <- SaturateSignedWordToSignedByte SRC[15..0] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 8) (IFTHENELSE I8 (TSTGTS I1 (SUBREG I16 (MEM I128 (HOLE 2)) 0) (INTCONST I16 #x7F)) (INTCONST I8 #x7F) (IFTHENELSE I8 (TSTLTS I1 (SUBREG I16 (MEM I128 (HOLE 2)) 0) (INTCONST I16 #x80)) (INTCONST I8 #x80) (CONVIT I8 (SUBREG I16 (MEM I128 (HOLE 2)) 0))))) ; DEST[79..72] <- SaturateSignedWordToSignedByte SRC[31..16] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 9) (IFTHENELSE I8 (TSTGTS I1 (SUBREG I16 (MEM I128 (HOLE 2)) 1) (INTCONST I16 #x7F)) (INTCONST I8 #x7F) (IFTHENELSE I8 (TSTLTS I1 (SUBREG I16 (MEM I128 (HOLE 2)) 1) (INTCONST I16 #x80)) (INTCONST I8 #x80) (CONVIT I8 (SUBREG I16 (MEM I128 (HOLE 2)) 1))))) ; DEST[87..80] <- SaturateSignedWordToSignedByte SRC[47..32] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 10) (IFTHENELSE I8 (TSTGTS I1 (SUBREG I16 (MEM I128 (HOLE 2)) 2) (INTCONST I16 #x7F)) (INTCONST I8 #x7F) (IFTHENELSE I8 (TSTLTS I1 (SUBREG I16 (MEM I128 (HOLE 2)) 2) (INTCONST I16 #x80)) (INTCONST I8 #x80) (CONVIT I8 (SUBREG I16 (MEM I128 (HOLE 2)) 2))))) ; DEST[95..88] <- SaturateSignedWordToSignedByte SRC[63..48] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 11) (IFTHENELSE I8 (TSTGTS I1 (SUBREG I16 (MEM I128 (HOLE 2)) 3) (INTCONST I16 #x7F)) (INTCONST I8 #x7F) (IFTHENELSE I8 (TSTLTS I1 (SUBREG I16 (MEM I128 (HOLE 2)) 3) (INTCONST I16 #x80)) (INTCONST I8 #x80) (CONVIT I8 (SUBREG I16 (MEM I128 (HOLE 2)) 3))))) ; DEST[103..96] <- SaturateSignedWordToSignedByte SRC[79..64] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 12) (IFTHENELSE I8 (TSTGTS I1 (SUBREG I16 (MEM I128 (HOLE 2)) 4) (INTCONST I16 #x7F)) (INTCONST I8 #x7F) (IFTHENELSE I8 (TSTLTS I1 (SUBREG I16 (MEM I128 (HOLE 2)) 4) (INTCONST I16 #x80)) (INTCONST I8 #x80) (CONVIT I8 (SUBREG I16 (MEM I128 (HOLE 2)) 4))))) ; DEST[111..104] <- SaturateSignedWordToSignedByte SRC[95..80] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 13) (IFTHENELSE I8 (TSTGTS I1 (SUBREG I16 (MEM I128 (HOLE 2)) 5) (INTCONST I16 #x7F)) (INTCONST I8 #x7F) (IFTHENELSE I8 (TSTLTS I1 (SUBREG I16 (MEM I128 (HOLE 2)) 5) (INTCONST I16 #x80)) (INTCONST I8 #x80) (CONVIT I8 (SUBREG I16 (MEM I128 (HOLE 2)) 5))))) ; DEST[119..112] <- SaturateSignedWordToSignedByte SRC[111..96] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 14) (IFTHENELSE I8 (TSTGTS I1 (SUBREG I16 (MEM I128 (HOLE 2)) 6) (INTCONST I16 #x7F)) (INTCONST I8 #x7F) (IFTHENELSE I8 (TSTLTS I1 (SUBREG I16 (MEM I128 (HOLE 2)) 6) (INTCONST I16 #x80)) (INTCONST I8 #x80) (CONVIT I8 (SUBREG I16 (MEM I128 (HOLE 2)) 6))))) ; DEST[127..120] <- SaturateSignedWordToSignedByte SRC[127..112] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 15) (IFTHENELSE I8 (TSTGTS I1 (SUBREG I16 (MEM I128 (HOLE 2)) 7) (INTCONST I16 #x7F)) (INTCONST I8 #x7F) (IFTHENELSE I8 (TSTLTS I1 (SUBREG I16 (MEM I128 (HOLE 2)) 7) (INTCONST I16 #x80)) (INTCONST I8 #x80) (CONVIT I8 (SUBREG I16 (MEM I128 (HOLE 2)) 7))))))) ;PACKUSWB mmx, mmx (DEFINST ("PACKUSWB ?1m, ?2m" "PACKUSWB %?2m,%?1m" "PACKUSWB ?1m, ?2m") (PARALLEL ; DEST[7..0] <- SaturateSignedWordToUnsignedByte DEST[15..0] (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 0) (IFTHENELSE I8 (TSTGTS I1 (SUBREG I16 (REG I64 (HOLE 1 MM)) 0) (INTCONST I16 255)) (INTCONST I8 255) (IFTHENELSE I8 (TSTLTS I1 (SUBREG I16 (REG I64 (HOLE 1 MM)) 0) (INTCONST I16 0)) (INTCONST I8 0) (CONVIT I8 (SUBREG I16 (REG I64 (HOLE 1 MM)) 0))))) ; DEST[15..8] <- SaturateSignedWordToUnsignedByte DEST[31..16] (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 1) (IFTHENELSE I8 (TSTGTS I1 (SUBREG I16 (REG I64 (HOLE 1 MM)) 1) (INTCONST I16 255)) (INTCONST I8 255) (IFTHENELSE I8 (TSTLTS I1 (SUBREG I16 (REG I64 (HOLE 1 MM)) 1) (INTCONST I16 0)) (INTCONST I8 0) (CONVIT I8 (SUBREG I16 (REG I64 (HOLE 1 MM)) 1))))) ; DEST[23..16] <- SaturateSignedWordToUnsignedByte DEST[47..32] (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 2) (IFTHENELSE I8 (TSTGTS I1 (SUBREG I16 (REG I64 (HOLE 1 MM)) 2) (INTCONST I16 255)) (INTCONST I8 255) (IFTHENELSE I8 (TSTLTS I1 (SUBREG I16 (REG I64 (HOLE 1 MM)) 2) (INTCONST I16 0)) (INTCONST I8 0) (CONVIT I8 (SUBREG I16 (REG I64 (HOLE 1 MM)) 2))))) ; DEST[31..24] <- SaturateSignedWordToUnsignedByte DEST[63..48] (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 3) (IFTHENELSE I8 (TSTGTS I1 (SUBREG I16 (REG I64 (HOLE 1 MM)) 3) (INTCONST I16 255)) (INTCONST I8 255) (IFTHENELSE I8 (TSTLTS I1 (SUBREG I16 (REG I64 (HOLE 1 MM)) 3) (INTCONST I16 0)) (INTCONST I8 0) (CONVIT I8 (SUBREG I16 (REG I64 (HOLE 1 MM)) 3))))) ; DEST[39..32] <- SaturateSignedWordToUnsignedByte SRC[15..0] (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 4) (IFTHENELSE I8 (TSTGTS I1 (SUBREG I16 (REG I64 (HOLE 2 MM)) 0) (INTCONST I16 255)) (INTCONST I8 255) (IFTHENELSE I8 (TSTLTS I1 (SUBREG I16 (REG I64 (HOLE 2 MM)) 0) (INTCONST I16 0)) (INTCONST I8 0) (CONVIT I8 (SUBREG I16 (REG I64 (HOLE 2 MM)) 0))))) ; DEST[47..40] <- SaturateSignedWordToUnsignedByte SRC[31..16] (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 5) (IFTHENELSE I8 (TSTGTS I1 (SUBREG I16 (REG I64 (HOLE 2 MM)) 1) (INTCONST I16 255)) (INTCONST I8 255) (IFTHENELSE I8 (TSTLTS I1 (SUBREG I16 (REG I64 (HOLE 2 MM)) 1) (INTCONST I16 0)) (INTCONST I8 0) (CONVIT I8 (SUBREG I16 (REG I64 (HOLE 2 MM)) 1))))) ; DEST[55..48] <- SaturateSignedWordToUnsignedByte SRC[47..32] (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 6) (IFTHENELSE I8 (TSTGTS I1 (SUBREG I16 (REG I64 (HOLE 2 MM)) 2) (INTCONST I16 255)) (INTCONST I8 255) (IFTHENELSE I8 (TSTLTS I1 (SUBREG I16 (REG I64 (HOLE 2 MM)) 2) (INTCONST I16 0)) (INTCONST I8 0) (CONVIT I8 (SUBREG I16 (REG I64 (HOLE 2 MM)) 2))))) ; DEST[63..56] <- SaturateSignedWordToUnsignedByte SRC[63..48] (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 7) (IFTHENELSE I8 (TSTGTS I1 (SUBREG I16 (REG I64 (HOLE 2 MM)) 3) (INTCONST I16 255)) (INTCONST I8 255) (IFTHENELSE I8 (TSTLTS I1 (SUBREG I16 (REG I64 (HOLE 2 MM)) 3) (INTCONST I16 0)) (INTCONST I8 0) (CONVIT I8 (SUBREG I16 (REG I64 (HOLE 2 MM)) 3))))))) ;PACKUSWB mmx, m64 (DEFINST ("PACKUSWB ?1m, QWORD PTR ??2s" "PACKUSWB ??2s,%?1m" "PACKUSWB ?1m, QWORD PTR ??2s") (PARALLEL ; DEST[7..0] <- SaturateSignedWordToUnsignedByte DEST[15..0] (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 0) (IFTHENELSE I8 (TSTGTS I1 (SUBREG I16 (REG I64 (HOLE 1 MM)) 0) (INTCONST I16 255)) (INTCONST I8 255) (IFTHENELSE I8 (TSTLTS I1 (SUBREG I16 (REG I64 (HOLE 1 MM)) 0) (INTCONST I16 0)) (INTCONST I8 0) (CONVIT I8 (SUBREG I16 (REG I64 (HOLE 1 MM)) 0))))) ; DEST[15..8] <- SaturateSignedWordToUnsignedByte DEST[31..16] (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 1) (IFTHENELSE I8 (TSTGTS I1 (SUBREG I16 (REG I64 (HOLE 1 MM)) 1) (INTCONST I16 255)) (INTCONST I8 255) (IFTHENELSE I8 (TSTLTS I1 (SUBREG I16 (REG I64 (HOLE 1 MM)) 1) (INTCONST I16 0)) (INTCONST I8 0) (CONVIT I8 (SUBREG I16 (REG I64 (HOLE 1 MM)) 1))))) ; DEST[23..16] <- SaturateSignedWordToUnsignedByte DEST[47..32] (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 2) (IFTHENELSE I8 (TSTGTS I1 (SUBREG I16 (REG I64 (HOLE 1 MM)) 2) (INTCONST I16 255)) (INTCONST I8 255) (IFTHENELSE I8 (TSTLTS I1 (SUBREG I16 (REG I64 (HOLE 1 MM)) 2) (INTCONST I16 0)) (INTCONST I8 0) (CONVIT I8 (SUBREG I16 (REG I64 (HOLE 1 MM)) 2))))) ; DEST[31..24] <- SaturateSignedWordToUnsignedByte DEST[63..48] (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 3) (IFTHENELSE I8 (TSTGTS I1 (SUBREG I16 (REG I64 (HOLE 1 MM)) 3) (INTCONST I16 255)) (INTCONST I8 255) (IFTHENELSE I8 (TSTLTS I1 (SUBREG I16 (REG I64 (HOLE 1 MM)) 3) (INTCONST I16 0)) (INTCONST I8 0) (CONVIT I8 (SUBREG I16 (REG I64 (HOLE 1 MM)) 3))))) ; DEST[39..32] <- SaturateSignedWordToUnsignedByte SRC[15..0] (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 4) (IFTHENELSE I8 (TSTGTS I1 (SUBREG I16 (MEM I64 (HOLE 2)) 0) (INTCONST I16 255)) (INTCONST I8 255) (IFTHENELSE I8 (TSTLTS I1 (SUBREG I16 (MEM I64 (HOLE 2)) 0) (INTCONST I16 0)) (INTCONST I8 0) (CONVIT I8 (SUBREG I16 (MEM I64 (HOLE 2)) 0))))) ; DEST[47..40] <- SaturateSignedWordToUnsignedByte SRC[31..16] (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 5) (IFTHENELSE I8 (TSTGTS I1 (SUBREG I16 (MEM I64 (HOLE 2)) 1) (INTCONST I16 255)) (INTCONST I8 255) (IFTHENELSE I8 (TSTLTS I1 (SUBREG I16 (MEM I64 (HOLE 2)) 1) (INTCONST I16 0)) (INTCONST I8 0) (CONVIT I8 (SUBREG I16 (MEM I64 (HOLE 2)) 1))))) ; DEST[55..48] <- SaturateSignedWordToUnsignedByte SRC[47..32] (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 6) (IFTHENELSE I8 (TSTGTS I1 (SUBREG I16 (MEM I64 (HOLE 2)) 2) (INTCONST I16 255)) (INTCONST I8 255) (IFTHENELSE I8 (TSTLTS I1 (SUBREG I16 (MEM I64 (HOLE 2)) 2) (INTCONST I16 0)) (INTCONST I8 0) (CONVIT I8 (SUBREG I16 (MEM I64 (HOLE 2)) 2))))) ; DEST[63..56] <- SaturateSignedWordToUnsignedByte SRC[63..48] (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 7) (IFTHENELSE I8 (TSTGTS I1 (SUBREG I16 (MEM I64 (HOLE 2)) 3) (INTCONST I16 255)) (INTCONST I8 255) (IFTHENELSE I8 (TSTLTS I1 (SUBREG I16 (MEM I64 (HOLE 2)) 3) (INTCONST I16 0)) (INTCONST I8 0) (CONVIT I8 (SUBREG I16 (MEM I64 (HOLE 2)) 3))))))) ;PACKUSWB xmm, xmm (DEFINST ("PACKUSWB ?1x, ?2x" "nil" "nil") (PARALLEL ; DEST[7..0] <- SaturateSignedWordToUnsignedByte DEST[15..0] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 0) (IFTHENELSE I8 (TSTGTS I1 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 0) (INTCONST I16 255)) (INTCONST I8 255) (IFTHENELSE I8 (TSTLTS I1 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 0) (INTCONST I16 0)) (INTCONST I8 0) (CONVIT I8 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 0))))) ; DEST[15..8] <- SaturateSignedWordToUnsignedByte DEST[31..16] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 1) (IFTHENELSE I8 (TSTGTS I1 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 1) (INTCONST I16 255)) (INTCONST I8 255) (IFTHENELSE I8 (TSTLTS I1 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 1) (INTCONST I16 0)) (INTCONST I8 0) (CONVIT I8 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 1))))) ; DEST[23..16] <- SaturateSignedWordToUnsignedByte DEST[47..32] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 2) (IFTHENELSE I8 (TSTGTS I1 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 2) (INTCONST I16 255)) (INTCONST I8 255) (IFTHENELSE I8 (TSTLTS I1 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 2) (INTCONST I16 0)) (INTCONST I8 0) (CONVIT I8 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 2))))) ; DEST[31..24] <- SaturateSignedWordToUnsignedByte DEST[63..48] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 3) (IFTHENELSE I8 (TSTGTS I1 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 3) (INTCONST I16 255)) (INTCONST I8 255) (IFTHENELSE I8 (TSTLTS I1 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 3) (INTCONST I16 0)) (INTCONST I8 0) (CONVIT I8 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 3))))) ; DEST[39..32] <- SaturateSignedWordToUnsignedByte DEST[79..64] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 4) (IFTHENELSE I8 (TSTGTS I1 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 4) (INTCONST I16 255)) (INTCONST I8 255) (IFTHENELSE I8 (TSTLTS I1 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 4) (INTCONST I16 0)) (INTCONST I8 0) (CONVIT I8 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 4))))) ; DEST[47..40] <- SaturateSignedWordToUnsignedByte DEST[95..80] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 5) (IFTHENELSE I8 (TSTGTS I1 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 5) (INTCONST I16 255)) (INTCONST I8 255) (IFTHENELSE I8 (TSTLTS I1 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 5) (INTCONST I16 0)) (INTCONST I8 0) (CONVIT I8 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 5))))) ; DEST[55..48] <- SaturateSignedWordToUnsignedByte DEST[111..96] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 6) (IFTHENELSE I8 (TSTGTS I1 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 6) (INTCONST I16 255)) (INTCONST I8 255) (IFTHENELSE I8 (TSTLTS I1 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 6) (INTCONST I16 0)) (INTCONST I8 0) (CONVIT I8 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 6))))) ; DEST[63..56] <- SaturateSignedWordToUnsignedByte DEST[127..112] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 7) (IFTHENELSE I8 (TSTGTS I1 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 7) (INTCONST I16 255)) (INTCONST I8 255) (IFTHENELSE I8 (TSTLTS I1 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 7) (INTCONST I16 0)) (INTCONST I8 0) (CONVIT I8 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 7))))) ; DEST[71..64] <- SaturateSignedWordToUnsignedByte SRC[15..0] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 8) (IFTHENELSE I8 (TSTGTS I1 (SUBREG I16 (REG I128 (HOLE 2 XMM)) 0) (INTCONST I16 255)) (INTCONST I8 255) (IFTHENELSE I8 (TSTLTS I1 (SUBREG I16 (REG I128 (HOLE 2 XMM)) 0) (INTCONST I16 0)) (INTCONST I8 0) (CONVIT I8 (SUBREG I16 (REG I128 (HOLE 2 XMM)) 0))))) ; DEST[79..72] <- SaturateSignedWordToUnsignedByte SRC[31..16] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 9) (IFTHENELSE I8 (TSTGTS I1 (SUBREG I16 (REG I128 (HOLE 2 XMM)) 1) (INTCONST I16 255)) (INTCONST I8 255) (IFTHENELSE I8 (TSTLTS I1 (SUBREG I16 (REG I128 (HOLE 2 XMM)) 1) (INTCONST I16 0)) (INTCONST I8 0) (CONVIT I8 (SUBREG I16 (REG I128 (HOLE 2 XMM)) 1))))) ; DEST[87..80] <- SaturateSignedWordToUnsignedByte SRC[47..32] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 10) (IFTHENELSE I8 (TSTGTS I1 (SUBREG I16 (REG I128 (HOLE 2 XMM)) 2) (INTCONST I16 255)) (INTCONST I8 255) (IFTHENELSE I8 (TSTLTS I1 (SUBREG I16 (REG I128 (HOLE 2 XMM)) 2) (INTCONST I16 0)) (INTCONST I8 0) (CONVIT I8 (SUBREG I16 (REG I128 (HOLE 2 XMM)) 2))))) ; DEST[95..88] <- SaturateSignedWordToUnsignedByte SRC[63..48] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 11) (IFTHENELSE I8 (TSTGTS I1 (SUBREG I16 (REG I128 (HOLE 2 XMM)) 3) (INTCONST I16 255)) (INTCONST I8 255) (IFTHENELSE I8 (TSTLTS I1 (SUBREG I16 (REG I128 (HOLE 2 XMM)) 3) (INTCONST I16 0)) (INTCONST I8 0) (CONVIT I8 (SUBREG I16 (REG I128 (HOLE 2 XMM)) 3))))) ; DEST[103..96] <- SaturateSignedWordToUnsignedByte SRC[79..64] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 12) (IFTHENELSE I8 (TSTGTS I1 (SUBREG I16 (REG I128 (HOLE 2 XMM)) 4) (INTCONST I16 255)) (INTCONST I8 255) (IFTHENELSE I8 (TSTLTS I1 (SUBREG I16 (REG I128 (HOLE 2 XMM)) 4) (INTCONST I16 0)) (INTCONST I8 0) (CONVIT I8 (SUBREG I16 (REG I128 (HOLE 2 XMM)) 4))))) ; DEST[111..104] <- SaturateSignedWordToUnsignedByte SRC[95..80] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 13) (IFTHENELSE I8 (TSTGTS I1 (SUBREG I16 (REG I128 (HOLE 2 XMM)) 5) (INTCONST I16 255)) (INTCONST I8 255) (IFTHENELSE I8 (TSTLTS I1 (SUBREG I16 (REG I128 (HOLE 2 XMM)) 5) (INTCONST I16 0)) (INTCONST I8 0) (CONVIT I8 (SUBREG I16 (REG I128 (HOLE 2 XMM)) 5))))) ; DEST[119..112] <- SaturateSignedWordToUnsignedByte SRC[111..96] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 14) (IFTHENELSE I8 (TSTGTS I1 (SUBREG I16 (REG I128 (HOLE 2 XMM)) 6) (INTCONST I16 255)) (INTCONST I8 255) (IFTHENELSE I8 (TSTLTS I1 (SUBREG I16 (REG I128 (HOLE 2 XMM)) 6) (INTCONST I16 0)) (INTCONST I8 0) (CONVIT I8 (SUBREG I16 (REG I128 (HOLE 2 XMM)) 6))))) ; DEST[127..120] <- SaturateSignedWordToUnsignedByte SRC[127..112] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 15) (IFTHENELSE I8 (TSTGTS I1 (SUBREG I16 (REG I128 (HOLE 2 XMM)) 7) (INTCONST I16 255)) (INTCONST I8 255) (IFTHENELSE I8 (TSTLTS I1 (SUBREG I16 (REG I128 (HOLE 2 XMM)) 7) (INTCONST I16 0)) (INTCONST I8 0) (CONVIT I8 (SUBREG I16 (REG I128 (HOLE 2 XMM)) 7))))))) ;PACKUSWB xmm, m128 (DEFINST ("PACKUSWB ?1x, QWORD PTR ??2s" "nil" "nil") (PARALLEL ; DEST[7..0] <- SaturateSignedWordToUnsignedByte DEST[15..0] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 0) (IFTHENELSE I8 (TSTGTS I1 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 0) (INTCONST I16 255)) (INTCONST I8 255) (IFTHENELSE I8 (TSTLTS I1 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 0) (INTCONST I16 0)) (INTCONST I8 0) (CONVIT I8 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 0))))) ; DEST[15..8] <- SaturateSignedWordToUnsignedByte DEST[31..16] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 1) (IFTHENELSE I8 (TSTGTS I1 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 1) (INTCONST I16 255)) (INTCONST I8 255) (IFTHENELSE I8 (TSTLTS I1 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 1) (INTCONST I16 0)) (INTCONST I8 0) (CONVIT I8 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 1))))) ; DEST[23..16] <- SaturateSignedWordToUnsignedByte DEST[47..32] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 2) (IFTHENELSE I8 (TSTGTS I1 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 2) (INTCONST I16 255)) (INTCONST I8 255) (IFTHENELSE I8 (TSTLTS I1 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 2) (INTCONST I16 0)) (INTCONST I8 0) (CONVIT I8 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 2))))) ; DEST[31..24] <- SaturateSignedWordToUnsignedByte DEST[63..48] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 3) (IFTHENELSE I8 (TSTGTS I1 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 3) (INTCONST I16 255)) (INTCONST I8 255) (IFTHENELSE I8 (TSTLTS I1 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 3) (INTCONST I16 0)) (INTCONST I8 0) (CONVIT I8 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 3))))) ; DEST[39..32] <- SaturateSignedWordToUnsignedByte DEST[79..64] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 4) (IFTHENELSE I8 (TSTGTS I1 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 4) (INTCONST I16 255)) (INTCONST I8 255) (IFTHENELSE I8 (TSTLTS I1 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 4) (INTCONST I16 0)) (INTCONST I8 0) (CONVIT I8 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 4))))) ; DEST[47..40] <- SaturateSignedWordToUnsignedByte DEST[95..80] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 5) (IFTHENELSE I8 (TSTGTS I1 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 5) (INTCONST I16 255)) (INTCONST I8 255) (IFTHENELSE I8 (TSTLTS I1 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 5) (INTCONST I16 0)) (INTCONST I8 0) (CONVIT I8 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 5))))) ; DEST[55..48] <- SaturateSignedWordToUnsignedByte DEST[111..96] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 6) (IFTHENELSE I8 (TSTGTS I1 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 6) (INTCONST I16 255)) (INTCONST I8 255) (IFTHENELSE I8 (TSTLTS I1 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 6) (INTCONST I16 0)) (INTCONST I8 0) (CONVIT I8 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 6))))) ; DEST[63..56] <- SaturateSignedWordToUnsignedByte DEST[127..112] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 7) (IFTHENELSE I8 (TSTGTS I1 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 7) (INTCONST I16 255)) (INTCONST I8 255) (IFTHENELSE I8 (TSTLTS I1 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 7) (INTCONST I16 0)) (INTCONST I8 0) (CONVIT I8 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 7))))) ; DEST[71..64] <- SaturateSignedWordToUnsignedByte SRC[15..0] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 8) (IFTHENELSE I8 (TSTGTS I1 (SUBREG I16 (MEM I128 (HOLE 2)) 0) (INTCONST I16 255)) (INTCONST I8 255) (IFTHENELSE I8 (TSTLTS I1 (SUBREG I16 (MEM I128 (HOLE 2)) 0) (INTCONST I16 0)) (INTCONST I8 0) (CONVIT I8 (SUBREG I16 (MEM I128 (HOLE 2)) 0))))) ; DEST[79..72] <- SaturateSignedWordToUnsignedByte SRC[31..16] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 9) (IFTHENELSE I8 (TSTGTS I1 (SUBREG I16 (MEM I128 (HOLE 2)) 1) (INTCONST I16 255)) (INTCONST I8 255) (IFTHENELSE I8 (TSTLTS I1 (SUBREG I16 (MEM I128 (HOLE 2)) 1) (INTCONST I16 0)) (INTCONST I8 0) (CONVIT I8 (SUBREG I16 (MEM I128 (HOLE 2)) 1))))) ; DEST[87..80] <- SaturateSignedWordToUnsignedByte SRC[47..32] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 10) (IFTHENELSE I8 (TSTGTS I1 (SUBREG I16 (MEM I128 (HOLE 2)) 2) (INTCONST I16 255)) (INTCONST I8 255) (IFTHENELSE I8 (TSTLTS I1 (SUBREG I16 (MEM I128 (HOLE 2)) 2) (INTCONST I16 0)) (INTCONST I8 0) (CONVIT I8 (SUBREG I16 (MEM I128 (HOLE 2)) 2))))) ; DEST[95..88] <- SaturateSignedWordToUnsignedByte SRC[63..48] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 11) (IFTHENELSE I8 (TSTGTS I1 (SUBREG I16 (MEM I128 (HOLE 2)) 3) (INTCONST I16 255)) (INTCONST I8 255) (IFTHENELSE I8 (TSTLTS I1 (SUBREG I16 (MEM I128 (HOLE 2)) 3) (INTCONST I16 0)) (INTCONST I8 0) (CONVIT I8 (SUBREG I16 (MEM I128 (HOLE 2)) 3))))) ; DEST[103..96] <- SaturateSignedWordToUnsignedByte SRC[79..64] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 12) (IFTHENELSE I8 (TSTGTS I1 (SUBREG I16 (MEM I128 (HOLE 2)) 4) (INTCONST I16 255)) (INTCONST I8 255) (IFTHENELSE I8 (TSTLTS I1 (SUBREG I16 (MEM I128 (HOLE 2)) 4) (INTCONST I16 0)) (INTCONST I8 0) (CONVIT I8 (SUBREG I16 (MEM I128 (HOLE 2)) 4))))) ; DEST[111..104] <- SaturateSignedWordToUnsignedByte SRC[95..80] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 13) (IFTHENELSE I8 (TSTGTS I1 (SUBREG I16 (MEM I128 (HOLE 2)) 5) (INTCONST I16 255)) (INTCONST I8 255) (IFTHENELSE I8 (TSTLTS I1 (SUBREG I16 (MEM I128 (HOLE 2)) 5) (INTCONST I16 0)) (INTCONST I8 0) (CONVIT I8 (SUBREG I16 (MEM I128 (HOLE 2)) 5))))) ; DEST[119..112] <- SaturateSignedWordToUnsignedByte SRC[111..96] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 14) (IFTHENELSE I8 (TSTGTS I1 (SUBREG I16 (MEM I128 (HOLE 2)) 6) (INTCONST I16 255)) (INTCONST I8 255) (IFTHENELSE I8 (TSTLTS I1 (SUBREG I16 (MEM I128 (HOLE 2)) 6) (INTCONST I16 0)) (INTCONST I8 0) (CONVIT I8 (SUBREG I16 (MEM I128 (HOLE 2)) 6))))) ; DEST[127..120] <- SaturateSignedWordToUnsignedByte SRC[127..112] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 15) (IFTHENELSE I8 (TSTGTS I1 (SUBREG I16 (MEM I128 (HOLE 2)) 7) (INTCONST I16 255)) (INTCONST I8 255) (IFTHENELSE I8 (TSTLTS I1 (SUBREG I16 (MEM I128 (HOLE 2)) 7) (INTCONST I16 0)) (INTCONST I8 0) (CONVIT I8 (SUBREG I16 (MEM I128 (HOLE 2)) 7))))))) ;PUNPCKHBW mmx, mmx (DEFINST ("PUNPCKHBW ?1m, ?2m" "PUNPCKHBW %?2m,%?1m" "PUNPCKHBW ?1m, ?2m") (PARALLEL (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 0) (SUBREG I8 (REG I64 (HOLE 1 MM)) 4)) (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 1) (SUBREG I8 (REG I64 (HOLE 2 MM)) 4)) (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 2) (SUBREG I8 (REG I64 (HOLE 1 MM)) 5)) (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 3) (SUBREG I8 (REG I64 (HOLE 2 MM)) 5)) (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 4) (SUBREG I8 (REG I64 (HOLE 1 MM)) 6)) (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 5) (SUBREG I8 (REG I64 (HOLE 2 MM)) 6)) (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 6) (SUBREG I8 (REG I64 (HOLE 1 MM)) 7)) (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 7) (SUBREG I8 (REG I64 (HOLE 2 MM)) 7)))) ;PUNPCKHBW mmx, m64 (DEFINST ("PUNPCKHBW ?1m, QWORD PTR ??2s" "PUNPCKHBW ??2s,%?1m" "PUNPCKHBW ?1m, QWORD PTR ??2s") (PARALLEL (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 0) (SUBREG I8 (REG I64 (HOLE 1 MM)) 4)) (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 1) (SUBREG I8 (MEM I64 (HOLE 2)) 4)) (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 2) (SUBREG I8 (REG I64 (HOLE 1 MM)) 5)) (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 3) (SUBREG I8 (MEM I64 (HOLE 2)) 5)) (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 4) (SUBREG I8 (REG I64 (HOLE 1 MM)) 6)) (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 5) (SUBREG I8 (MEM I64 (HOLE 2)) 6)) (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 6) (SUBREG I8 (REG I64 (HOLE 1 MM)) 7)) (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 7) (SUBREG I8 (MEM I64 (HOLE 2)) 7)))) ;PUNPCKHBW xmm, xmm (DEFINST ("PUNPCKHBW ?1x, ?2x" "nil" "nil") (PARALLEL (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 0) (SUBREG I8 (REG I128 (HOLE 1 XMM)) 8)) (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 1) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 8)) (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 2) (SUBREG I8 (REG I128 (HOLE 1 XMM)) 9)) (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 3) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 9)) (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 4) (SUBREG I8 (REG I128 (HOLE 1 XMM)) 10)) (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 5) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 10)) (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 6) (SUBREG I8 (REG I128 (HOLE 1 XMM)) 11)) (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 7) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 11)) (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 8) (SUBREG I8 (REG I128 (HOLE 1 XMM)) 12)) (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 9) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 12)) (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 10) (SUBREG I8 (REG I128 (HOLE 1 XMM)) 13)) (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 11) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 13)) (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 12) (SUBREG I8 (REG I128 (HOLE 1 XMM)) 14)) (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 13) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 14)) (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 14) (SUBREG I8 (REG I128 (HOLE 1 XMM)) 15)) (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 15) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 15)))) ;PUNPCKHBW xmm, m128 (DEFINST ("PUNPCKHBW ?1x, QWORD PTR ??2s" "nil" "nil") (PARALLEL (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 0) (SUBREG I8 (REG I128 (HOLE 1 XMM)) 8)) (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 1) (SUBREG I8 (MEM I128 (HOLE 2)) 8)) (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 2) (SUBREG I8 (REG I128 (HOLE 1 XMM)) 9)) (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 3) (SUBREG I8 (MEM I128 (HOLE 2)) 9)) (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 4) (SUBREG I8 (REG I128 (HOLE 1 XMM)) 10)) (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 5) (SUBREG I8 (MEM I128 (HOLE 2)) 10)) (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 6) (SUBREG I8 (REG I128 (HOLE 1 XMM)) 11)) (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 7) (SUBREG I8 (MEM I128 (HOLE 2)) 11)) (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 8) (SUBREG I8 (REG I128 (HOLE 1 XMM)) 12)) (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 9) (SUBREG I8 (MEM I128 (HOLE 2)) 12)) (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 10) (SUBREG I8 (REG I128 (HOLE 1 XMM)) 13)) (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 11) (SUBREG I8 (MEM I128 (HOLE 2)) 13)) (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 12) (SUBREG I8 (REG I128 (HOLE 1 XMM)) 14)) (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 13) (SUBREG I8 (MEM I128 (HOLE 2)) 14)) (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 14) (SUBREG I8 (REG I128 (HOLE 1 XMM)) 15)) (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 15) (SUBREG I8 (MEM I128 (HOLE 2)) 15)))) ;PUNPCKHDQ mmx, mmx (DEFINST ("PUNPCKHDQ ?1m, ?2m" "PUNPCKHDQ %?2m,%?1m" "PUNPCKHDQ ?1m, ?2m") (PARALLEL (SET (SUBREG I32 (REG I64 (HOLE 1 MM)) 0) (SUBREG I32 (REG I64 (HOLE 1 MM)) 1)) (SET (SUBREG I32 (REG I64 (HOLE 1 MM)) 1) (SUBREG I32 (REG I64 (HOLE 2 MM)) 1)))) ;PUNPCKHDQ mmx, m64 (DEFINST ("PUNPCKHDQ ?1m, QWORD PTR ??2s" "PUNPCKHDQ ??2s,%?1m" "PUNPCKHDQ ?1m, QWORD PTR ??2s") (PARALLEL (SET (SUBREG I32 (REG I64 (HOLE 1 MM)) 0) (SUBREG I32 (REG I64 (HOLE 1 MM)) 1)) (SET (SUBREG I32 (REG I64 (HOLE 1 MM)) 1) (SUBREG I32 (MEM I64 (HOLE 2)) 1)))) ;PUNPCKHDQ xmm, xmm (DEFINST ("PUNPCKHDQ ?1x, ?2x" "nil" "nil") (PARALLEL (SET (SUBREG I32 (REG I128 (HOLE 1 XMM)) 0) (SUBREG I32 (REG I128 (HOLE 1 XMM)) 2)) (SET (SUBREG I32 (REG I128 (HOLE 1 XMM)) 1) (SUBREG I32 (REG I128 (HOLE 2 XMM)) 2)) (SET (SUBREG I32 (REG I128 (HOLE 1 XMM)) 2) (SUBREG I32 (REG I128 (HOLE 1 XMM)) 3)) (SET (SUBREG I32 (REG I128 (HOLE 1 XMM)) 3) (SUBREG I32 (REG I128 (HOLE 2 XMM)) 3)))) ;PUNPCKHDQ xmm m128 (DEFINST ("PUNPCKHDQ ?1x, QWORD PTR ??2s" "nil" "nil") (PARALLEL (SET (SUBREG I32 (REG I128 (HOLE 1 XMM)) 0) (SUBREG I32 (REG I128 (HOLE 1 XMM)) 2)) (SET (SUBREG I32 (REG I128 (HOLE 1 XMM)) 1) (SUBREG I32 (MEM I128 (HOLE 2)) 2)) (SET (SUBREG I32 (REG I128 (HOLE 1 XMM)) 2) (SUBREG I32 (REG I128 (HOLE 1 XMM)) 3)) (SET (SUBREG I32 (REG I128 (HOLE 1 XMM)) 3) (SUBREG I32 (MEM I128 (HOLE 2)) 3)))) ;PUNPCKHWD mmx, mmx (DEFINST ("PUNPCKHWD ?1m, ?2m" "PUNPCKHWD %?2m,%?1m" "PUNPCKHWD ?1m, ?2m") (PARALLEL (SET (SUBREG I16 (REG I64 (HOLE 1 MM)) 0) (SUBREG I16 (REG I64 (HOLE 1 MM)) 2)) (SET (SUBREG I16 (REG I64 (HOLE 1 MM)) 1) (SUBREG I16 (REG I64 (HOLE 2 MM)) 2)) (SET (SUBREG I16 (REG I64 (HOLE 1 MM)) 2) (SUBREG I16 (REG I64 (HOLE 1 MM)) 3)) (SET (SUBREG I16 (REG I64 (HOLE 1 MM)) 3) (SUBREG I16 (REG I64 (HOLE 2 MM)) 3)))) ;PUNPCKHWD mmx, m64 (DEFINST ("PUNPCKHWD ?1m, QWORD PTR ??2s" "PUNPCKHWD ??2s,%?1m" "PUNPCKHWD ?1m, QWORD PTR ??2s") (PARALLEL (SET (SUBREG I16 (REG I64 (HOLE 1 MM)) 0) (SUBREG I16 (REG I64 (HOLE 1 MM)) 2)) (SET (SUBREG I16 (REG I64 (HOLE 1 MM)) 1) (SUBREG I16 (MEM I64 (HOLE 2)) 2)) (SET (SUBREG I16 (REG I64 (HOLE 1 MM)) 2) (SUBREG I16 (REG I64 (HOLE 1 MM)) 3)) (SET (SUBREG I16 (REG I64 (HOLE 1 MM)) 3) (SUBREG I16 (MEM I64 (HOLE 2)) 3)))) ;PUNPCKHWD xmm, xmm (DEFINST ("PUNPCKHWD ?1x, ?2x" "nil" "nil") (PARALLEL (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 0) (SUBREG I16 (REG I128 (HOLE 1 XMM)) 4)) (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 1) (SUBREG I16 (REG I128 (HOLE 2 XMM)) 4)) (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 2) (SUBREG I16 (REG I128 (HOLE 1 XMM)) 5)) (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 3) (SUBREG I16 (REG I128 (HOLE 2 XMM)) 5)) (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 4) (SUBREG I16 (REG I128 (HOLE 1 XMM)) 6)) (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 5) (SUBREG I16 (REG I128 (HOLE 2 XMM)) 6)) (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 6) (SUBREG I16 (REG I128 (HOLE 1 XMM)) 7)) (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 7) (SUBREG I16 (REG I128 (HOLE 2 XMM)) 7)))) ;PUNPCKHWD xmm, m128 (DEFINST ("PUNPCKHWD ?1x, QWORD PTR ??2s" "nil" "nil") (PARALLEL (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 0) (SUBREG I16 (REG I128 (HOLE 1 XMM)) 4)) (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 1) (SUBREG I16 (MEM I128 (HOLE 2)) 4)) (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 2) (SUBREG I16 (REG I128 (HOLE 1 XMM)) 5)) (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 3) (SUBREG I16 (MEM I128 (HOLE 2)) 5)) (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 4) (SUBREG I16 (REG I128 (HOLE 1 XMM)) 6)) (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 5) (SUBREG I16 (MEM I128 (HOLE 2)) 6)) (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 6) (SUBREG I16 (REG I128 (HOLE 1 XMM)) 7)) (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 7) (SUBREG I16 (MEM I128 (HOLE 2)) 7)))) ;PUNPCKLBW mmx, mmx (DEFINST ("PUNPCKLBW ?1m, ?2m" "PUNPCKLBW %?2m,%?1m" "PUNPCKLBW ?1m, ?2m") (PARALLEL (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 0) (SUBREG I8 (REG I64 (HOLE 1 MM)) 0)) (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 1) (SUBREG I8 (REG I64 (HOLE 2 MM)) 0)) (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 2) (SUBREG I8 (REG I64 (HOLE 1 MM)) 1)) (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 3) (SUBREG I8 (REG I64 (HOLE 2 MM)) 1)) (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 4) (SUBREG I8 (REG I64 (HOLE 1 MM)) 2)) (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 5) (SUBREG I8 (REG I64 (HOLE 2 MM)) 2)) (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 6) (SUBREG I8 (REG I64 (HOLE 1 MM)) 3)) (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 7) (SUBREG I8 (REG I64 (HOLE 2 MM)) 3)))) ;PUNPCKLBW mmx, m64 (DEFINST ("PUNPCKLBW ?1m, QWORD PTR ??2s" "PUNPCKLBW ??2s,%?1m" "PUNPCKLBW ?1m, QWORD PTR ??2s") (PARALLEL (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 0) (SUBREG I8 (REG I64 (HOLE 1 MM)) 0)) (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 1) (SUBREG I8 (MEM I64 (HOLE 2)) 0)) (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 2) (SUBREG I8 (REG I64 (HOLE 1 MM)) 1)) (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 3) (SUBREG I8 (MEM I64 (HOLE 2)) 1)) (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 4) (SUBREG I8 (REG I64 (HOLE 1 MM)) 2)) (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 5) (SUBREG I8 (MEM I64 (HOLE 2)) 2)) (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 6) (SUBREG I8 (REG I64 (HOLE 1 MM)) 3)) (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 7) (SUBREG I8 (MEM I64 (HOLE 2)) 3)))) ;PUNPCKLBW xmm, xmm (DEFINST ("PUNPCKLBW ?1x, ?2x" "nil" "nil") (PARALLEL (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 0) (SUBREG I8 (REG I128 (HOLE 1 XMM)) 0)) (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 1) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 0)) (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 2) (SUBREG I8 (REG I128 (HOLE 1 XMM)) 1)) (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 3) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 1)) (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 4) (SUBREG I8 (REG I128 (HOLE 1 XMM)) 2)) (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 5) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 2)) (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 6) (SUBREG I8 (REG I128 (HOLE 1 XMM)) 3)) (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 7) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 3)) (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 8) (SUBREG I8 (REG I128 (HOLE 1 XMM)) 4)) (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 9) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 4)) (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 10) (SUBREG I8 (REG I128 (HOLE 1 XMM)) 5)) (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 11) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 5)) (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 12) (SUBREG I8 (REG I128 (HOLE 1 XMM)) 6)) (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 13) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 6)) (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 14) (SUBREG I8 (REG I128 (HOLE 1 XMM)) 7)) (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 15) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 7)))) ;PUNPCKLBW xmm, m128 (DEFINST ("PUNPCKLBW ?1x, QWORD PTR ??2s" "nil" "nil") (PARALLEL (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 0) (SUBREG I8 (REG I128 (HOLE 1 XMM)) 0)) (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 1) (SUBREG I8 (MEM I128 (HOLE 2)) 0)) (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 2) (SUBREG I8 (REG I128 (HOLE 1 XMM)) 1)) (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 3) (SUBREG I8 (MEM I128 (HOLE 2)) 1)) (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 4) (SUBREG I8 (REG I128 (HOLE 1 XMM)) 2)) (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 5) (SUBREG I8 (MEM I128 (HOLE 2)) 2)) (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 6) (SUBREG I8 (REG I128 (HOLE 1 XMM)) 3)) (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 7) (SUBREG I8 (MEM I128 (HOLE 2)) 3)) (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 8) (SUBREG I8 (REG I128 (HOLE 1 XMM)) 4)) (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 9) (SUBREG I8 (MEM I128 (HOLE 2)) 4)) (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 10) (SUBREG I8 (REG I128 (HOLE 1 XMM)) 5)) (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 11) (SUBREG I8 (MEM I128 (HOLE 2)) 5)) (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 12) (SUBREG I8 (REG I128 (HOLE 1 XMM)) 6)) (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 13) (SUBREG I8 (MEM I128 (HOLE 2)) 6)) (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 14) (SUBREG I8 (REG I128 (HOLE 1 XMM)) 7)) (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 15) (SUBREG I8 (MEM I128 (HOLE 2)) 7)))) ;PUNPCKLDQ mmx, mmx (DEFINST ("PUNPCKLDQ ?1m, ?2m" "PUNPCKLDQ %?2m,%?1m" "PUNPCKLDQ ?1m, ?2m") (PARALLEL (SET (SUBREG I32 (REG I64 (HOLE 1 MM)) 0) (SUBREG I32 (REG I64 (HOLE 1 MM)) 0)) (SET (SUBREG I32 (REG I64 (HOLE 1 MM)) 1) (SUBREG I32 (REG I64 (HOLE 2 MM)) 0)))) ;PUNPCKLDQ mmx, m64 (DEFINST ("PUNPCKLDQ ?1m, QWORD PTR ??2s" "PUNPCKLDQ ??2s,%?1m" "PUNPCKLDQ ?1m, QWORD PTR ??2s") (PARALLEL (SET (SUBREG I32 (REG I64 (HOLE 1 MM)) 0) (SUBREG I32 (REG I64 (HOLE 1 MM)) 0)) (SET (SUBREG I32 (REG I64 (HOLE 1 MM)) 1) (SUBREG I32 (MEM I64 (HOLE 2)) 0)))) ;PUNPCKLDQ xmm, xmm (DEFINST ("PUNPCKLDQ ?1x, ?2x" "nil" "nil") (PARALLEL (SET (SUBREG I32 (REG I128 (HOLE 1 XMM)) 0) (SUBREG I32 (REG I128 (HOLE 1 XMM)) 0)) (SET (SUBREG I32 (REG I128 (HOLE 1 XMM)) 1) (SUBREG I32 (REG I128 (HOLE 2 XMM)) 0)) (SET (SUBREG I32 (REG I128 (HOLE 1 XMM)) 2) (SUBREG I32 (REG I128 (HOLE 1 XMM)) 1)) (SET (SUBREG I32 (REG I128 (HOLE 1 XMM)) 3) (SUBREG I32 (REG I128 (HOLE 2 XMM)) 1)))) ;PUNPCKLDQ xmm, m128 (DEFINST ("PUNPCKLDQ ?1x, QWORD PTR ??2s" "nil" "nil") (PARALLEL (SET (SUBREG I32 (REG I128 (HOLE 1 XMM)) 0) (SUBREG I32 (REG I128 (HOLE 1 XMM)) 0)) (SET (SUBREG I32 (REG I128 (HOLE 1 XMM)) 1) (SUBREG I32 (MEM I128 (HOLE 2)) 0)) (SET (SUBREG I32 (REG I128 (HOLE 1 XMM)) 2) (SUBREG I32 (REG I128 (HOLE 1 XMM)) 1)) (SET (SUBREG I32 (REG I128 (HOLE 1 XMM)) 3) (SUBREG I32 (MEM I128 (HOLE 2)) 1)))) ;PUNPCKLWD mmx, mmx (DEFINST ("PUNPCKLWD ?1m, ?2m" "PUNPCKLWD %?2m,%?1m" "PUNPCKLWD ?1m, ?2m") (PARALLEL (SET (SUBREG I16 (REG I64 (HOLE 1 MM)) 0) (SUBREG I16 (REG I64 (HOLE 1 MM)) 0)) (SET (SUBREG I16 (REG I64 (HOLE 1 MM)) 1) (SUBREG I16 (REG I64 (HOLE 2 MM)) 0)) (SET (SUBREG I16 (REG I64 (HOLE 1 MM)) 2) (SUBREG I16 (REG I64 (HOLE 1 MM)) 1)) (SET (SUBREG I16 (REG I64 (HOLE 1 MM)) 3) (SUBREG I16 (REG I64 (HOLE 2 MM)) 1)))) ;PUNPCKLWD mmx, m64 (DEFINST ("PUNPCKLWD ?1m, QWORD PTR ??2s" "PUNPCKLWD ??2s,%?1m" "PUNPCKLWD ?1m, QWORD PTR ??2s") (PARALLEL (SET (SUBREG I16 (REG I64 (HOLE 1 MM)) 0) (SUBREG I16 (REG I64 (HOLE 1 MM)) 0)) (SET (SUBREG I16 (REG I64 (HOLE 1 MM)) 1) (SUBREG I16 (MEM I64 (HOLE 2)) 0)) (SET (SUBREG I16 (REG I64 (HOLE 1 MM)) 2) (SUBREG I16 (REG I64 (HOLE 1 MM)) 1)) (SET (SUBREG I16 (REG I64 (HOLE 1 MM)) 3) (SUBREG I16 (MEM I64 (HOLE 2)) 1)))) ;PUNPCKLWD xmm, xmm (DEFINST ("PUNPCKLWD ?1x, ?2x" "nil" "nil") (PARALLEL (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 0) (SUBREG I16 (REG I128 (HOLE 1 XMM)) 0)) (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 1) (SUBREG I16 (REG I128 (HOLE 2 XMM)) 0)) (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 2) (SUBREG I16 (REG I128 (HOLE 1 XMM)) 1)) (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 3) (SUBREG I16 (REG I128 (HOLE 2 XMM)) 1)) (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 4) (SUBREG I16 (REG I128 (HOLE 1 XMM)) 2)) (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 5) (SUBREG I16 (REG I128 (HOLE 2 XMM)) 2)) (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 6) (SUBREG I16 (REG I128 (HOLE 1 XMM)) 3)) (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 7) (SUBREG I16 (REG I128 (HOLE 2 XMM)) 3)))) ;PUNPCKLWD xmm, m128 (DEFINST ("PUNPCKLWD ?1x, QWORD PTR ??2s" "nil" "nil") (PARALLEL (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 0) (SUBREG I16 (REG I128 (HOLE 1 XMM)) 0)) (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 1) (SUBREG I16 (MEM I128 (HOLE 2)) 0)) (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 2) (SUBREG I16 (REG I128 (HOLE 1 XMM)) 1)) (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 3) (SUBREG I16 (MEM I128 (HOLE 2)) 1)) (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 4) (SUBREG I16 (REG I128 (HOLE 1 XMM)) 2)) (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 5) (SUBREG I16 (MEM I128 (HOLE 2)) 2)) (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 6) (SUBREG I16 (REG I128 (HOLE 1 XMM)) 3)) (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 7) (SUBREG I16 (MEM I128 (HOLE 2)) 3)))) ;PADDB mmx, mmx (DEFINST ("PADDB ?1m, ?2m" "PADDB %?2m,%?1m" "PADDB ?1m, ?2m") (PARALLEL ; DEST[7..0] (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 0) (ADD I8 (SUBREG I8 (REG I64 (HOLE 1 MM)) 0) (SUBREG I8 (REG I64 (HOLE 2 MM)) 0))) ; DEST[15..8] (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 1) (ADD I8 (SUBREG I8 (REG I64 (HOLE 1 MM)) 1) (SUBREG I8 (REG I64 (HOLE 2 MM)) 1))) ; DEST[23..16] (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 2) (ADD I8 (SUBREG I8 (REG I64 (HOLE 1 MM)) 2) (SUBREG I8 (REG I64 (HOLE 2 MM)) 2))) ; DEST[31..24] (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 3) (ADD I8 (SUBREG I8 (REG I64 (HOLE 1 MM)) 3) (SUBREG I8 (REG I64 (HOLE 2 MM)) 3))) ; DEST[39..32] (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 4) (ADD I8 (SUBREG I8 (REG I64 (HOLE 1 MM)) 4) (SUBREG I8 (REG I64 (HOLE 2 MM)) 4))) ; DEST[47..40] (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 5) (ADD I8 (SUBREG I8 (REG I64 (HOLE 1 MM)) 5) (SUBREG I8 (REG I64 (HOLE 2 MM)) 5))) ; DEST[55..48] (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 6) (ADD I8 (SUBREG I8 (REG I64 (HOLE 1 MM)) 6) (SUBREG I8 (REG I64 (HOLE 2 MM)) 6))) ; DEST[63..56] (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 7) (ADD I8 (SUBREG I8 (REG I64 (HOLE 1 MM)) 7) (SUBREG I8 (REG I64 (HOLE 2 MM)) 7))))) ;PADDB mmx, m64 (DEFINST ("PADDB ?1m, QWORD PTR ??2s" "PADDB ??2s,%?1m" "PADDB ?1m, QWORD PTR ??2s") (PARALLEL ; DEST[7..0] (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 0) (ADD I8 (SUBREG I8 (REG I64 (HOLE 1 MM)) 0) (SUBREG I8 (MEM I64 (HOLE 2)) 0))) ; DEST[15..8] (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 1) (ADD I8 (SUBREG I8 (REG I64 (HOLE 1 MM)) 1) (SUBREG I8 (MEM I64 (HOLE 2)) 1))) ; DEST[23..16] (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 2) (ADD I8 (SUBREG I8 (REG I64 (HOLE 1 MM)) 2) (SUBREG I8 (MEM I64 (HOLE 2)) 2))) ; DEST[31..24] (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 3) (ADD I8 (SUBREG I8 (REG I64 (HOLE 1 MM)) 3) (SUBREG I8 (MEM I64 (HOLE 2)) 3))) ; DEST[39..32] (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 4) (ADD I8 (SUBREG I8 (REG I64 (HOLE 1 MM)) 4) (SUBREG I8 (MEM I64 (HOLE 2)) 4))) ; DEST[47..40] (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 5) (ADD I8 (SUBREG I8 (REG I64 (HOLE 1 MM)) 5) (SUBREG I8 (MEM I64 (HOLE 2)) 5))) ; DEST[55..48] (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 6) (ADD I8 (SUBREG I8 (REG I64 (HOLE 1 MM)) 6) (SUBREG I8 (MEM I64 (HOLE 2)) 6))) ; DEST[63..56] (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 7) (ADD I8 (SUBREG I8 (REG I64 (HOLE 1 MM)) 7) (SUBREG I8 (MEM I64 (HOLE 2)) 7))))) ;PADDB xmm, xmm (DEFINST ("PADDB ?1x, ?2x" "nil" "nil") (PARALLEL ; DEST[7..0] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 0) (ADD I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 0) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 0))) ; DEST[15..8] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 1) (ADD I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 1) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 1))) ; DEST[23..16] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 2) (ADD I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 2) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 2))) ; DEST[31..24] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 3) (ADD I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 3) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 3))) ; DEST[39..32] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 4) (ADD I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 4) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 4))) ; DEST[47..40] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 5) (ADD I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 5) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 5))) ; DEST[55..48] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 6) (ADD I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 6) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 6))) ; DEST[63..56] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 7) (ADD I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 7) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 7))) ; DEST[71..64] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 8) (ADD I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 8) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 8))) ; DEST[79..72] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 9) (ADD I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 9) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 9))) ; DEST[87..80] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 10) (ADD I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 10) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 10))) ; DEST[95..88] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 11) (ADD I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 11) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 11))) ; DEST[103..96] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 12) (ADD I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 12) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 12))) ; DEST[111..104] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 13) (ADD I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 13) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 13))) ; DEST[119..112] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 14) (ADD I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 14) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 14))) ; DEST[127..120] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 15) (ADD I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 15) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 15))))) ;PADDB xmm, m128 (DEFINST ("PADDB ?1x, QWORD PTR ??2s" "nil" "nil") (PARALLEL ; DEST[7..0] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 0) (ADD I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 0) (SUBREG I8 (MEM I128 (HOLE 2)) 0))) ; DEST[15..8] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 1) (ADD I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 1) (SUBREG I8 (MEM I128 (HOLE 2)) 1))) ; DEST[23..16] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 2) (ADD I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 2) (SUBREG I8 (MEM I128 (HOLE 2)) 2))) ; DEST[31..24] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 3) (ADD I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 3) (SUBREG I8 (MEM I128 (HOLE 2)) 3))) ; DEST[39..32] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 4) (ADD I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 4) (SUBREG I8 (MEM I128 (HOLE 2)) 4))) ; DEST[47..40] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 5) (ADD I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 5) (SUBREG I8 (MEM I128 (HOLE 2)) 5))) ; DEST[55..48] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 6) (ADD I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 6) (SUBREG I8 (MEM I128 (HOLE 2)) 6))) ; DEST[63..56] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 7) (ADD I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 7) (SUBREG I8 (MEM I128 (HOLE 2)) 7))) ; DEST[71..64] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 8) (ADD I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 8) (SUBREG I8 (MEM I128 (HOLE 2)) 8))) ; DEST[79..72] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 9) (ADD I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 9) (SUBREG I8 (MEM I128 (HOLE 2)) 9))) ; DEST[87..80] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 10) (ADD I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 10) (SUBREG I8 (MEM I128 (HOLE 2)) 10))) ; DEST[95..88] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 11) (ADD I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 11) (SUBREG I8 (MEM I128 (HOLE 2)) 11))) ; DEST[103..96] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 12) (ADD I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 12) (SUBREG I8 (MEM I128 (HOLE 2)) 12))) ; DEST[111..104] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 13) (ADD I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 13) (SUBREG I8 (MEM I128 (HOLE 2)) 13))) ; DEST[119..112] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 14) (ADD I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 14) (SUBREG I8 (MEM I128 (HOLE 2)) 14))) ; DEST[127..120] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 15) (ADD I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 15) (SUBREG I8 (MEM I128 (HOLE 2)) 15))))) ;PADDD mmx, mmx (DEFINST ("PADDD ?1m, ?2m" "PADDD %?2m,%?1m" "PADDD ?1m, ?2m") (PARALLEL ; DEST[31..0] (SET (SUBREG I32 (REG I64 (HOLE 1 MM)) 0) (ADD I32 (SUBREG I32 (REG I64 (HOLE 1 MM)) 0) (SUBREG I32 (REG I64 (HOLE 2 MM)) 0))) ; DEST[63..32] (SET (SUBREG I32 (REG I64 (HOLE 1 MM)) 1) (ADD I32 (SUBREG I32 (REG I64 (HOLE 1 MM)) 1) (SUBREG I32 (REG I64 (HOLE 2 MM)) 1))))) ;PADDD mmx, m64 (DEFINST ("PADDD ?1m, QWORD PTR ??2s" "PADDD ??2s,%?1m" "PADDD ?1m, QWORD PTR ??2s") (PARALLEL ; DEST[31..0] (SET (SUBREG I32 (REG I64 (HOLE 1 MM)) 0) (ADD I32 (SUBREG I32 (REG I64 (HOLE 1 MM)) 0) (SUBREG I32 (MEM I64 (HOLE 2)) 0))) ; DEST[63..32] (SET (SUBREG I32 (REG I64 (HOLE 1 MM)) 1) (ADD I32 (SUBREG I32 (REG I64 (HOLE 1 MM)) 1) (SUBREG I32 (MEM I64 (HOLE 2)) 1))))) ;PADDD xmm, xmm (DEFINST ("PADDD ?1x, ?2x" "nil" "nil") (PARALLEL ; DEST[31..0] (SET (SUBREG I32 (REG I128 (HOLE 1 XMM)) 0) (ADD I32 (SUBREG I32 (REG I128 (HOLE 1 XMM)) 0) (SUBREG I32 (REG I128 (HOLE 2 XMM)) 0))) ; DEST[63..32] (SET (SUBREG I32 (REG I128 (HOLE 1 XMM)) 1) (ADD I32 (SUBREG I32 (REG I128 (HOLE 1 XMM)) 1) (SUBREG I32 (REG I128 (HOLE 2 XMM)) 1))) ; DEST[95..64] (SET (SUBREG I32 (REG I128 (HOLE 1 XMM)) 2) (ADD I32 (SUBREG I32 (REG I128 (HOLE 1 XMM)) 2) (SUBREG I32 (REG I128 (HOLE 2 XMM)) 2))) ; DEST[127..96] (SET (SUBREG I32 (REG I128 (HOLE 1 XMM)) 3) (ADD I32 (SUBREG I32 (REG I128 (HOLE 1 XMM)) 3) (SUBREG I32 (REG I128 (HOLE 2 XMM)) 3))))) ;PADDD xmm, m128 (DEFINST ("PADDD ?1x, QWORD PTR ??2s" "nil" "nil") (PARALLEL ; DEST[31..0] (SET (SUBREG I32 (REG I128 (HOLE 1 XMM)) 0) (ADD I32 (SUBREG I32 (REG I128 (HOLE 1 XMM)) 0) (SUBREG I32 (MEM I128 (HOLE 2)) 0))) ; DEST[63..32] (SET (SUBREG I32 (REG I128 (HOLE 1 XMM)) 1) (ADD I32 (SUBREG I32 (REG I128 (HOLE 1 XMM)) 1) (SUBREG I32 (MEM I128 (HOLE 2)) 1))) ; DEST[95..64] (SET (SUBREG I32 (REG I128 (HOLE 1 XMM)) 2) (ADD I32 (SUBREG I32 (REG I128 (HOLE 1 XMM)) 2) (SUBREG I32 (MEM I128 (HOLE 2)) 2))) ; DEST[127..96] (SET (SUBREG I32 (REG I128 (HOLE 1 XMM)) 3) (ADD I32 (SUBREG I32 (REG I128 (HOLE 1 XMM)) 3) (SUBREG I32 (MEM I128 (HOLE 2)) 3))))) ;PADDSB mmx, mmx (DEFINST ("PADDSB ?1m, ?2m" "PADDSB %?2m,%?1m" "PADDSB ?1m, ?2m") (PARALLEL ; DEST[7..0] (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 0) (IFTHENELSE I8 (OVERFLOW I1 (SUBREG I8 (REG I64 (HOLE 1 MM)) 0) (SUBREG I8 (REG I64 (HOLE 2 MM)) 0) (INTCONST I1 0)) (IFTHENELSE I8 (TSTGES I1 (SUBREG I8 (REG I64 (HOLE 1 MM)) 0) (INTCONST I8 0)) (INTCONST I8 #x7F) (INTCONST I8 #x80)) (ADD I8 (SUBREG I8 (REG I64 (HOLE 1 MM)) 0) (SUBREG I8 (REG I64 (HOLE 2 MM)) 0)))) ; DEST[15..8] (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 1) (IFTHENELSE I8 (OVERFLOW I1 (SUBREG I8 (REG I64 (HOLE 1 MM)) 1) (SUBREG I8 (REG I64 (HOLE 2 MM)) 1) (INTCONST I1 0)) (IFTHENELSE I8 (TSTGES I1 (SUBREG I8 (REG I64 (HOLE 1 MM)) 1) (INTCONST I8 0)) (INTCONST I8 #x7F) (INTCONST I8 #x80)) (ADD I8 (SUBREG I8 (REG I64 (HOLE 1 MM)) 1) (SUBREG I8 (REG I64 (HOLE 2 MM)) 1)))) ; DEST[23..16] (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 2) (IFTHENELSE I8 (OVERFLOW I1 (SUBREG I8 (REG I64 (HOLE 1 MM)) 2) (SUBREG I8 (REG I64 (HOLE 2 MM)) 2) (INTCONST I1 0)) (IFTHENELSE I8 (TSTGES I1 (SUBREG I8 (REG I64 (HOLE 1 MM)) 2) (INTCONST I8 0)) (INTCONST I8 #x7F) (INTCONST I8 #x80)) (ADD I8 (SUBREG I8 (REG I64 (HOLE 1 MM)) 2) (SUBREG I8 (REG I64 (HOLE 2 MM)) 2)))) ; DEST[31..24] (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 3) (IFTHENELSE I8 (OVERFLOW I1 (SUBREG I8 (REG I64 (HOLE 1 MM)) 3) (SUBREG I8 (REG I64 (HOLE 2 MM)) 3) (INTCONST I1 0)) (IFTHENELSE I8 (TSTGES I1 (SUBREG I8 (REG I64 (HOLE 1 MM)) 3) (INTCONST I8 0)) (INTCONST I8 #x7F) (INTCONST I8 #x80)) (ADD I8 (SUBREG I8 (REG I64 (HOLE 1 MM)) 3) (SUBREG I8 (REG I64 (HOLE 2 MM)) 3)))) ; DEST[39..32] (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 4) (IFTHENELSE I8 (OVERFLOW I1 (SUBREG I8 (REG I64 (HOLE 1 MM)) 4) (SUBREG I8 (REG I64 (HOLE 2 MM)) 4) (INTCONST I1 0)) (IFTHENELSE I8 (TSTGES I1 (SUBREG I8 (REG I64 (HOLE 1 MM)) 4) (INTCONST I8 0)) (INTCONST I8 #x7F) (INTCONST I8 #x80)) (ADD I8 (SUBREG I8 (REG I64 (HOLE 1 MM)) 4) (SUBREG I8 (REG I64 (HOLE 2 MM)) 4)))) ; DEST[47..40] (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 5) (IFTHENELSE I8 (OVERFLOW I1 (SUBREG I8 (REG I64 (HOLE 1 MM)) 5) (SUBREG I8 (REG I64 (HOLE 2 MM)) 5) (INTCONST I1 0)) (IFTHENELSE I8 (TSTGES I1 (SUBREG I8 (REG I64 (HOLE 1 MM)) 5) (INTCONST I8 0)) (INTCONST I8 #x7F) (INTCONST I8 #x80)) (ADD I8 (SUBREG I8 (REG I64 (HOLE 1 MM)) 5) (SUBREG I8 (REG I64 (HOLE 2 MM)) 5)))) ; DEST[55..48] (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 6) (IFTHENELSE I8 (OVERFLOW I1 (SUBREG I8 (REG I64 (HOLE 1 MM)) 6) (SUBREG I8 (REG I64 (HOLE 2 MM)) 6) (INTCONST I1 0)) (IFTHENELSE I8 (TSTGES I1 (SUBREG I8 (REG I64 (HOLE 1 MM)) 6) (INTCONST I8 0)) (INTCONST I8 #x7F) (INTCONST I8 #x80)) (ADD I8 (SUBREG I8 (REG I64 (HOLE 1 MM)) 6) (SUBREG I8 (REG I64 (HOLE 2 MM)) 6)))) ; DEST[63..56] (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 7) (IFTHENELSE I8 (OVERFLOW I1 (SUBREG I8 (REG I64 (HOLE 1 MM)) 7) (SUBREG I8 (REG I64 (HOLE 2 MM)) 7) (INTCONST I1 0)) (IFTHENELSE I8 (TSTGES I1 (SUBREG I8 (REG I64 (HOLE 1 MM)) 7) (INTCONST I8 0)) (INTCONST I8 #x7F) (INTCONST I8 #x80)) (ADD I8 (SUBREG I8 (REG I64 (HOLE 1 MM)) 7) (SUBREG I8 (REG I64 (HOLE 2 MM)) 7)))))) ;PADDSB mmx, m64 (DEFINST ("PADDSB ?1m, QWORD PTR ??2s" "PADDSB ??2s,%?1m" "PADDSB ?1m, QWORD PTR ??2s") (PARALLEL ; DEST[7..0] (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 0) (IFTHENELSE I8 (OVERFLOW I1 (SUBREG I8 (REG I64 (HOLE 1 MM)) 0) (SUBREG I8 (MEM I64 (HOLE 2)) 0) (INTCONST I1 0)) (IFTHENELSE I8 (TSTGES I1 (SUBREG I8 (REG I64 (HOLE 1 MM)) 0) (INTCONST I8 0)) (INTCONST I8 #x7F) (INTCONST I8 #x80)) (ADD I8 (SUBREG I8 (REG I64 (HOLE 1 MM)) 0) (SUBREG I8 (MEM I64 (HOLE 2)) 0)))) ; DEST[15..8] (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 1) (IFTHENELSE I8 (OVERFLOW I1 (SUBREG I8 (REG I64 (HOLE 1 MM)) 1) (SUBREG I8 (MEM I64 (HOLE 2)) 1) (INTCONST I1 0)) (IFTHENELSE I8 (TSTGES I1 (SUBREG I8 (REG I64 (HOLE 1 MM)) 1) (INTCONST I8 0)) (INTCONST I8 #x7F) (INTCONST I8 #x80)) (ADD I8 (SUBREG I8 (REG I64 (HOLE 1 MM)) 1) (SUBREG I8 (MEM I64 (HOLE 2)) 1)))) ; DEST[23..16] (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 2) (IFTHENELSE I8 (OVERFLOW I1 (SUBREG I8 (REG I64 (HOLE 1 MM)) 2) (SUBREG I8 (MEM I64 (HOLE 2)) 2) (INTCONST I1 0)) (IFTHENELSE I8 (TSTGES I1 (SUBREG I8 (REG I64 (HOLE 1 MM)) 2) (INTCONST I8 0)) (INTCONST I8 #x7F) (INTCONST I8 #x80)) (ADD I8 (SUBREG I8 (REG I64 (HOLE 1 MM)) 2) (SUBREG I8 (MEM I64 (HOLE 2)) 2)))) ; DEST[31..24] (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 3) (IFTHENELSE I8 (OVERFLOW I1 (SUBREG I8 (REG I64 (HOLE 1 MM)) 3) (SUBREG I8 (MEM I64 (HOLE 2)) 3) (INTCONST I1 0)) (IFTHENELSE I8 (TSTGES I1 (SUBREG I8 (REG I64 (HOLE 1 MM)) 3) (INTCONST I8 0)) (INTCONST I8 #x7F) (INTCONST I8 #x80)) (ADD I8 (SUBREG I8 (REG I64 (HOLE 1 MM)) 3) (SUBREG I8 (MEM I64 (HOLE 2)) 3)))) ; DEST[39..32] (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 4) (IFTHENELSE I8 (OVERFLOW I1 (SUBREG I8 (REG I64 (HOLE 1 MM)) 4) (SUBREG I8 (MEM I64 (HOLE 2)) 4) (INTCONST I1 0)) (IFTHENELSE I8 (TSTGES I1 (SUBREG I8 (REG I64 (HOLE 1 MM)) 4) (INTCONST I8 0)) (INTCONST I8 #x7F) (INTCONST I8 #x80)) (ADD I8 (SUBREG I8 (REG I64 (HOLE 1 MM)) 4) (SUBREG I8 (MEM I64 (HOLE 2)) 4)))) ; DEST[47..40] (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 5) (IFTHENELSE I8 (OVERFLOW I1 (SUBREG I8 (REG I64 (HOLE 1 MM)) 5) (SUBREG I8 (MEM I64 (HOLE 2)) 5) (INTCONST I1 0)) (IFTHENELSE I8 (TSTGES I1 (SUBREG I8 (REG I64 (HOLE 1 MM)) 5) (INTCONST I8 0)) (INTCONST I8 #x7F) (INTCONST I8 #x80)) (ADD I8 (SUBREG I8 (REG I64 (HOLE 1 MM)) 5) (SUBREG I8 (MEM I64 (HOLE 2)) 5)))) ; DEST[55..48] (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 6) (IFTHENELSE I8 (OVERFLOW I1 (SUBREG I8 (REG I64 (HOLE 1 MM)) 6) (SUBREG I8 (MEM I64 (HOLE 2)) 6) (INTCONST I1 0)) (IFTHENELSE I8 (TSTGES I1 (SUBREG I8 (REG I64 (HOLE 1 MM)) 6) (INTCONST I8 0)) (INTCONST I8 #x7F) (INTCONST I8 #x80)) (ADD I8 (SUBREG I8 (REG I64 (HOLE 1 MM)) 6) (SUBREG I8 (MEM I64 (HOLE 2)) 6)))) ; DEST[63..56] (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 7) (IFTHENELSE I8 (OVERFLOW I1 (SUBREG I8 (REG I64 (HOLE 1 MM)) 7) (SUBREG I8 (MEM I64 (HOLE 2)) 7) (INTCONST I1 0)) (IFTHENELSE I8 (TSTGES I1 (SUBREG I8 (REG I64 (HOLE 1 MM)) 7) (INTCONST I8 0)) (INTCONST I8 #x7F) (INTCONST I8 #x80)) (ADD I8 (SUBREG I8 (REG I64 (HOLE 1 MM)) 7) (SUBREG I8 (MEM I64 (HOLE 2)) 7)))))) ;PADDSB xmm, xmm (DEFINST ("PADDSB ?1x, ?2x" "nil" "nil") (PARALLEL ; DEST[7..0] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 0) (IFTHENELSE I8 (OVERFLOW I1 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 0) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 0) (INTCONST I1 0)) (IFTHENELSE I8 (TSTGES I1 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 0) (INTCONST I8 0)) (INTCONST I8 #x7F) (INTCONST I8 #x80)) (ADD I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 0) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 0)))) ; DEST[15..8] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 1) (IFTHENELSE I8 (OVERFLOW I1 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 1) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 1) (INTCONST I1 0)) (IFTHENELSE I8 (TSTGES I1 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 1) (INTCONST I8 0)) (INTCONST I8 #x7F) (INTCONST I8 #x80)) (ADD I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 1) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 1)))) ; DEST[23..16] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 2) (IFTHENELSE I8 (OVERFLOW I1 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 2) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 2) (INTCONST I1 0)) (IFTHENELSE I8 (TSTGES I1 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 2) (INTCONST I8 0)) (INTCONST I8 #x7F) (INTCONST I8 #x80)) (ADD I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 2) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 2)))) ; DEST[31..24] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 3) (IFTHENELSE I8 (OVERFLOW I1 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 3) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 3) (INTCONST I1 0)) (IFTHENELSE I8 (TSTGES I1 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 3) (INTCONST I8 0)) (INTCONST I8 #x7F) (INTCONST I8 #x80)) (ADD I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 3) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 3)))) ; DEST[39..32] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 4) (IFTHENELSE I8 (OVERFLOW I1 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 4) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 4) (INTCONST I1 0)) (IFTHENELSE I8 (TSTGES I1 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 4) (INTCONST I8 0)) (INTCONST I8 #x7F) (INTCONST I8 #x80)) (ADD I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 4) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 4)))) ; DEST[47..40] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 5) (IFTHENELSE I8 (OVERFLOW I1 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 5) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 5) (INTCONST I1 0)) (IFTHENELSE I8 (TSTGES I1 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 5) (INTCONST I8 0)) (INTCONST I8 #x7F) (INTCONST I8 #x80)) (ADD I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 5) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 5)))) ; DEST[55..48] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 6) (IFTHENELSE I8 (OVERFLOW I1 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 6) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 6) (INTCONST I1 0)) (IFTHENELSE I8 (TSTGES I1 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 6) (INTCONST I8 0)) (INTCONST I8 #x7F) (INTCONST I8 #x80)) (ADD I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 6) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 6)))) ; DEST[63..56] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 7) (IFTHENELSE I8 (OVERFLOW I1 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 7) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 7) (INTCONST I1 0)) (IFTHENELSE I8 (TSTGES I1 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 7) (INTCONST I8 0)) (INTCONST I8 #x7F) (INTCONST I8 #x80)) (ADD I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 7) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 7)))) ; DEST[71..64] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 8) (IFTHENELSE I8 (OVERFLOW I1 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 8) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 8) (INTCONST I1 0)) (IFTHENELSE I8 (TSTGES I1 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 8) (INTCONST I8 0)) (INTCONST I8 #x7F) (INTCONST I8 #x80)) (ADD I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 8) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 8)))) ; DEST[79..72] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 9) (IFTHENELSE I8 (OVERFLOW I1 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 9) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 9) (INTCONST I1 0)) (IFTHENELSE I8 (TSTGES I1 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 9) (INTCONST I8 0)) (INTCONST I8 #x7F) (INTCONST I8 #x80)) (ADD I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 9) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 9)))) ; DEST[87..80] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 10) (IFTHENELSE I8 (OVERFLOW I1 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 10) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 10) (INTCONST I1 0)) (IFTHENELSE I8 (TSTGES I1 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 10) (INTCONST I8 0)) (INTCONST I8 #x7F) (INTCONST I8 #x80)) (ADD I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 10) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 10)))) ; DEST[95..88] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 11) (IFTHENELSE I8 (OVERFLOW I1 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 11) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 11) (INTCONST I1 0)) (IFTHENELSE I8 (TSTGES I1 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 11) (INTCONST I8 0)) (INTCONST I8 #x7F) (INTCONST I8 #x80)) (ADD I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 11) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 11)))) ; DEST[103..96] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 12) (IFTHENELSE I8 (OVERFLOW I1 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 12) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 12) (INTCONST I1 0)) (IFTHENELSE I8 (TSTGES I1 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 12) (INTCONST I8 0)) (INTCONST I8 #x7F) (INTCONST I8 #x80)) (ADD I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 12) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 12)))) ; DEST[111..104] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 13) (IFTHENELSE I8 (OVERFLOW I1 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 13) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 13) (INTCONST I1 0)) (IFTHENELSE I8 (TSTGES I1 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 13) (INTCONST I8 0)) (INTCONST I8 #x7F) (INTCONST I8 #x80)) (ADD I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 13) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 13)))) ; DEST[119..112] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 14) (IFTHENELSE I8 (OVERFLOW I1 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 14) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 14) (INTCONST I1 0)) (IFTHENELSE I8 (TSTGES I1 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 14) (INTCONST I8 0)) (INTCONST I8 #x7F) (INTCONST I8 #x80)) (ADD I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 14) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 14)))) ; DEST[127..120] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 15) (IFTHENELSE I8 (OVERFLOW I1 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 15) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 15) (INTCONST I1 0)) (IFTHENELSE I8 (TSTGES I1 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 15) (INTCONST I8 0)) (INTCONST I8 #x7F) (INTCONST I8 #x80)) (ADD I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 15) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 15)))))) ;PADDSB xmm, m128 (DEFINST ("PADDSB ?1x, QWORD PTR ??2s" "nil" "nil") (PARALLEL ; DEST[7..0] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 0) (IFTHENELSE I8 (OVERFLOW I1 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 0) (SUBREG I8 (MEM I128 (HOLE 2)) 0) (INTCONST I1 0)) (IFTHENELSE I8 (TSTGES I1 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 0) (INTCONST I8 0)) (INTCONST I8 #x7F) (INTCONST I8 #x80)) (ADD I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 0) (SUBREG I8 (MEM I128 (HOLE 2)) 0)))) ; DEST[15..8] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 1) (IFTHENELSE I8 (OVERFLOW I1 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 1) (SUBREG I8 (MEM I128 (HOLE 2)) 1) (INTCONST I1 0)) (IFTHENELSE I8 (TSTGES I1 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 1) (INTCONST I8 0)) (INTCONST I8 #x7F) (INTCONST I8 #x80)) (ADD I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 1) (SUBREG I8 (MEM I128 (HOLE 2)) 1)))) ; DEST[23..16] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 2) (IFTHENELSE I8 (OVERFLOW I1 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 2) (SUBREG I8 (MEM I128 (HOLE 2)) 2) (INTCONST I1 0)) (IFTHENELSE I8 (TSTGES I1 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 2) (INTCONST I8 0)) (INTCONST I8 #x7F) (INTCONST I8 #x80)) (ADD I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 2) (SUBREG I8 (MEM I128 (HOLE 2)) 2)))) ; DEST[31..24] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 3) (IFTHENELSE I8 (OVERFLOW I1 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 3) (SUBREG I8 (MEM I128 (HOLE 2)) 3) (INTCONST I1 0)) (IFTHENELSE I8 (TSTGES I1 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 3) (INTCONST I8 0)) (INTCONST I8 #x7F) (INTCONST I8 #x80)) (ADD I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 3) (SUBREG I8 (MEM I128 (HOLE 2)) 3)))) ; DEST[39..32] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 4) (IFTHENELSE I8 (OVERFLOW I1 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 4) (SUBREG I8 (MEM I128 (HOLE 2)) 4) (INTCONST I1 0)) (IFTHENELSE I8 (TSTGES I1 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 4) (INTCONST I8 0)) (INTCONST I8 #x7F) (INTCONST I8 #x80)) (ADD I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 4) (SUBREG I8 (MEM I128 (HOLE 2)) 4)))) ; DEST[47..40] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 5) (IFTHENELSE I8 (OVERFLOW I1 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 5) (SUBREG I8 (MEM I128 (HOLE 2)) 5) (INTCONST I1 0)) (IFTHENELSE I8 (TSTGES I1 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 5) (INTCONST I8 0)) (INTCONST I8 #x7F) (INTCONST I8 #x80)) (ADD I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 5) (SUBREG I8 (MEM I128 (HOLE 2)) 5)))) ; DEST[55..48] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 6) (IFTHENELSE I8 (OVERFLOW I1 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 6) (SUBREG I8 (MEM I128 (HOLE 2)) 6) (INTCONST I1 0)) (IFTHENELSE I8 (TSTGES I1 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 6) (INTCONST I8 0)) (INTCONST I8 #x7F) (INTCONST I8 #x80)) (ADD I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 6) (SUBREG I8 (MEM I128 (HOLE 2)) 6)))) ; DEST[63..56] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 7) (IFTHENELSE I8 (OVERFLOW I1 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 7) (SUBREG I8 (MEM I128 (HOLE 2)) 7) (INTCONST I1 0)) (IFTHENELSE I8 (TSTGES I1 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 7) (INTCONST I8 0)) (INTCONST I8 #x7F) (INTCONST I8 #x80)) (ADD I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 7) (SUBREG I8 (MEM I128 (HOLE 2)) 7)))) ; DEST[71..64] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 8) (IFTHENELSE I8 (OVERFLOW I1 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 8) (SUBREG I8 (MEM I128 (HOLE 2)) 8) (INTCONST I1 0)) (IFTHENELSE I8 (TSTGES I1 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 8) (INTCONST I8 0)) (INTCONST I8 #x7F) (INTCONST I8 #x80)) (ADD I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 8) (SUBREG I8 (MEM I128 (HOLE 2)) 8)))) ; DEST[79..72] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 9) (IFTHENELSE I8 (OVERFLOW I1 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 9) (SUBREG I8 (MEM I128 (HOLE 2)) 9) (INTCONST I1 0)) (IFTHENELSE I8 (TSTGES I1 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 9) (INTCONST I8 0)) (INTCONST I8 #x7F) (INTCONST I8 #x80)) (ADD I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 9) (SUBREG I8 (MEM I128 (HOLE 2)) 9)))) ; DEST[87..80] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 10) (IFTHENELSE I8 (OVERFLOW I1 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 10) (SUBREG I8 (MEM I128 (HOLE 2)) 10) (INTCONST I1 0)) (IFTHENELSE I8 (TSTGES I1 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 10) (INTCONST I8 0)) (INTCONST I8 #x7F) (INTCONST I8 #x80)) (ADD I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 10) (SUBREG I8 (MEM I128 (HOLE 2)) 10)))) ; DEST[95..88] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 11) (IFTHENELSE I8 (OVERFLOW I1 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 11) (SUBREG I8 (MEM I128 (HOLE 2)) 11) (INTCONST I1 0)) (IFTHENELSE I8 (TSTGES I1 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 11) (INTCONST I8 0)) (INTCONST I8 #x7F) (INTCONST I8 #x80)) (ADD I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 11) (SUBREG I8 (MEM I128 (HOLE 2)) 11)))) ; DEST[103..96] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 12) (IFTHENELSE I8 (OVERFLOW I1 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 12) (SUBREG I8 (MEM I128 (HOLE 2)) 12) (INTCONST I1 0)) (IFTHENELSE I8 (TSTGES I1 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 12) (INTCONST I8 0)) (INTCONST I8 #x7F) (INTCONST I8 #x80)) (ADD I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 12) (SUBREG I8 (MEM I128 (HOLE 2)) 12)))) ; DEST[111..104] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 13) (IFTHENELSE I8 (OVERFLOW I1 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 13) (SUBREG I8 (MEM I128 (HOLE 2)) 13) (INTCONST I1 0)) (IFTHENELSE I8 (TSTGES I1 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 13) (INTCONST I8 0)) (INTCONST I8 #x7F) (INTCONST I8 #x80)) (ADD I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 13) (SUBREG I8 (MEM I128 (HOLE 2)) 13)))) ; DEST[119..112] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 14) (IFTHENELSE I8 (OVERFLOW I1 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 14) (SUBREG I8 (MEM I128 (HOLE 2)) 14) (INTCONST I1 0)) (IFTHENELSE I8 (TSTGES I1 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 14) (INTCONST I8 0)) (INTCONST I8 #x7F) (INTCONST I8 #x80)) (ADD I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 14) (SUBREG I8 (MEM I128 (HOLE 2)) 14)))) ; DEST[127..120] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 15) (IFTHENELSE I8 (OVERFLOW I1 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 15) (SUBREG I8 (MEM I128 (HOLE 2)) 15) (INTCONST I1 0)) (IFTHENELSE I8 (TSTGES I1 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 15) (INTCONST I8 0)) (INTCONST I8 #x7F) (INTCONST I8 #x80)) (ADD I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 15) (SUBREG I8 (MEM I128 (HOLE 2)) 15)))))) ;PADDSW mmx, mmx (DEFINST ("PADDSW ?1m, ?2m" "PADDSW %?2m,%?1m" "PADDSW ?1m, ?2m") (PARALLEL ; DEST[15..0] (SET (SUBREG I16 (REG I64 (HOLE 1 MM)) 0) (IFTHENELSE I16 (OVERFLOW I1 (SUBREG I16 (REG I64 (HOLE 1 MM)) 0) (SUBREG I16 (REG I64 (HOLE 2 MM)) 0) (INTCONST I1 0)) (IFTHENELSE I16 (TSTGES I1 (SUBREG I16 (REG I64 (HOLE 1 MM)) 0) (INTCONST I16 0)) (INTCONST I16 #x7FFF) (INTCONST I16 #x8000)) (ADD I16 (SUBREG I16 (REG I64 (HOLE 1 MM)) 0) (SUBREG I16 (REG I64 (HOLE 2 MM)) 0)))) ; DEST[31..16] (SET (SUBREG I16 (REG I64 (HOLE 1 MM)) 1) (IFTHENELSE I16 (OVERFLOW I1 (SUBREG I16 (REG I64 (HOLE 1 MM)) 1) (SUBREG I16 (REG I64 (HOLE 2 MM)) 1) (INTCONST I1 0)) (IFTHENELSE I16 (TSTGES I1 (SUBREG I16 (REG I64 (HOLE 1 MM)) 1) (INTCONST I16 0)) (INTCONST I16 #x7FFF) (INTCONST I16 #x8000)) (ADD I16 (SUBREG I16 (REG I64 (HOLE 1 MM)) 1) (SUBREG I16 (REG I64 (HOLE 2 MM)) 1)))) ; DEST[47..32] (SET (SUBREG I16 (REG I64 (HOLE 1 MM)) 2) (IFTHENELSE I16 (OVERFLOW I1 (SUBREG I16 (REG I64 (HOLE 1 MM)) 2) (SUBREG I16 (REG I64 (HOLE 2 MM)) 2) (INTCONST I1 0)) (IFTHENELSE I16 (TSTGES I1 (SUBREG I16 (REG I64 (HOLE 1 MM)) 2) (INTCONST I16 0)) (INTCONST I16 #x7FFF) (INTCONST I16 #x8000)) (ADD I16 (SUBREG I16 (REG I64 (HOLE 1 MM)) 2) (SUBREG I16 (REG I64 (HOLE 2 MM)) 2)))) ; DEST[63..48] (SET (SUBREG I16 (REG I64 (HOLE 1 MM)) 3) (IFTHENELSE I16 (OVERFLOW I1 (SUBREG I16 (REG I64 (HOLE 1 MM)) 3) (SUBREG I16 (REG I64 (HOLE 2 MM)) 3) (INTCONST I1 0)) (IFTHENELSE I16 (TSTGES I1 (SUBREG I16 (REG I64 (HOLE 1 MM)) 3) (INTCONST I16 0)) (INTCONST I16 #x7FFF) (INTCONST I16 #x8000)) (ADD I16 (SUBREG I16 (REG I64 (HOLE 1 MM)) 3) (SUBREG I16 (REG I64 (HOLE 2 MM)) 3)))))) ;PADDSW mmx, m64 (DEFINST ("PADDSW ?1m, QWORD PTR ??2s" "PADDSW ??2s,%?1m" "PADDSW ?1m, QWORD PTR ??2s") (PARALLEL ; DEST[15..0] (SET (SUBREG I16 (REG I64 (HOLE 1 MM)) 0) (IFTHENELSE I16 (OVERFLOW I1 (SUBREG I16 (REG I64 (HOLE 1 MM)) 0) (SUBREG I16 (MEM I64 (HOLE 2)) 0) (INTCONST I1 0)) (IFTHENELSE I16 (TSTGES I1 (SUBREG I16 (REG I64 (HOLE 1 MM)) 0) (INTCONST I16 0)) (INTCONST I16 #x7FFF) (INTCONST I16 #x8000)) (ADD I16 (SUBREG I16 (REG I64 (HOLE 1 MM)) 0) (SUBREG I16 (MEM I64 (HOLE 2)) 0)))) ; DEST[31..16] (SET (SUBREG I16 (REG I64 (HOLE 1 MM)) 1) (IFTHENELSE I16 (OVERFLOW I1 (SUBREG I16 (REG I64 (HOLE 1 MM)) 1) (SUBREG I16 (MEM I64 (HOLE 2)) 1) (INTCONST I1 0)) (IFTHENELSE I16 (TSTGES I1 (SUBREG I16 (REG I64 (HOLE 1 MM)) 1) (INTCONST I16 0)) (INTCONST I16 #x7FFF) (INTCONST I16 #x8000)) (ADD I16 (SUBREG I16 (REG I64 (HOLE 1 MM)) 1) (SUBREG I16 (MEM I64 (HOLE 2)) 1)))) ; DEST[47..32] (SET (SUBREG I16 (REG I64 (HOLE 1 MM)) 2) (IFTHENELSE I16 (OVERFLOW I1 (SUBREG I16 (REG I64 (HOLE 1 MM)) 2) (SUBREG I16 (MEM I64 (HOLE 2)) 2) (INTCONST I1 0)) (IFTHENELSE I16 (TSTGES I1 (SUBREG I16 (REG I64 (HOLE 1 MM)) 2) (INTCONST I16 0)) (INTCONST I16 #x7FFF) (INTCONST I16 #x8000)) (ADD I16 (SUBREG I16 (REG I64 (HOLE 1 MM)) 2) (SUBREG I16 (MEM I64 (HOLE 2)) 2)))) ; DEST[63..48] (SET (SUBREG I16 (REG I64 (HOLE 1 MM)) 3) (IFTHENELSE I16 (OVERFLOW I1 (SUBREG I16 (REG I64 (HOLE 1 MM)) 3) (SUBREG I16 (MEM I64 (HOLE 2)) 3) (INTCONST I1 0)) (IFTHENELSE I16 (TSTGES I1 (SUBREG I16 (REG I64 (HOLE 1 MM)) 3) (INTCONST I16 0)) (INTCONST I16 #x7FFF) (INTCONST I16 #x8000)) (ADD I16 (SUBREG I16 (REG I64 (HOLE 1 MM)) 3) (SUBREG I16 (MEM I64 (HOLE 2)) 3)))))) ;PADDSW xmm, xmm (DEFINST ("PADDSW ?1x, ?2x" "nil" "nil") (PARALLEL ; DEST[15..0] (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 0) (IFTHENELSE I16 (OVERFLOW I1 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 0) (SUBREG I16 (REG I128 (HOLE 2 XMM)) 0) (INTCONST I1 0)) (IFTHENELSE I16 (TSTGES I1 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 0) (INTCONST I16 0)) (INTCONST I16 #x7FFF) (INTCONST I16 #x8000)) (ADD I16 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 0) (SUBREG I16 (REG I128 (HOLE 2 XMM)) 0)))) ; DEST[31..16] (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 1) (IFTHENELSE I16 (OVERFLOW I1 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 1) (SUBREG I16 (REG I128 (HOLE 2 XMM)) 1) (INTCONST I1 0)) (IFTHENELSE I16 (TSTGES I1 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 1) (INTCONST I16 0)) (INTCONST I16 #x7FFF) (INTCONST I16 #x8000)) (ADD I16 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 1) (SUBREG I16 (REG I128 (HOLE 2 XMM)) 1)))) ; DEST[47..32] (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 2) (IFTHENELSE I16 (OVERFLOW I1 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 2) (SUBREG I16 (REG I128 (HOLE 2 XMM)) 2) (INTCONST I1 0)) (IFTHENELSE I16 (TSTGES I1 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 2) (INTCONST I16 0)) (INTCONST I16 #x7FFF) (INTCONST I16 #x8000)) (ADD I16 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 2) (SUBREG I16 (REG I128 (HOLE 2 XMM)) 2)))) ; DEST[63..48] (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 3) (IFTHENELSE I16 (OVERFLOW I1 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 3) (SUBREG I16 (REG I128 (HOLE 2 XMM)) 3) (INTCONST I1 0)) (IFTHENELSE I16 (TSTGES I1 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 3) (INTCONST I16 0)) (INTCONST I16 #x7FFF) (INTCONST I16 #x8000)) (ADD I16 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 3) (SUBREG I16 (REG I128 (HOLE 2 XMM)) 3)))) ; DEST[79..64] (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 4) (IFTHENELSE I16 (OVERFLOW I1 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 4) (SUBREG I16 (REG I128 (HOLE 2 XMM)) 4) (INTCONST I1 0)) (IFTHENELSE I16 (TSTGES I1 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 4) (INTCONST I16 0)) (INTCONST I16 #x7FFF) (INTCONST I16 #x8000)) (ADD I16 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 4) (SUBREG I16 (REG I128 (HOLE 2 XMM)) 4)))) ; DEST[95..80] (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 5) (IFTHENELSE I16 (OVERFLOW I1 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 5) (SUBREG I16 (REG I128 (HOLE 2 XMM)) 5) (INTCONST I1 0)) (IFTHENELSE I16 (TSTGES I1 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 5) (INTCONST I16 0)) (INTCONST I16 #x7FFF) (INTCONST I16 #x8000)) (ADD I16 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 5) (SUBREG I16 (REG I128 (HOLE 2 XMM)) 5)))) ; DEST[111..96] (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 6) (IFTHENELSE I16 (OVERFLOW I1 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 6) (SUBREG I16 (REG I128 (HOLE 2 XMM)) 6) (INTCONST I1 0)) (IFTHENELSE I16 (TSTGES I1 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 6) (INTCONST I16 0)) (INTCONST I16 #x7FFF) (INTCONST I16 #x8000)) (ADD I16 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 6) (SUBREG I16 (REG I128 (HOLE 2 XMM)) 6)))) ; DEST[127..112] (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 7) (IFTHENELSE I16 (OVERFLOW I1 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 7) (SUBREG I16 (REG I128 (HOLE 2 XMM)) 7) (INTCONST I1 0)) (IFTHENELSE I16 (TSTGES I1 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 7) (INTCONST I16 0)) (INTCONST I16 #x7FFF) (INTCONST I16 #x8000)) (ADD I16 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 7) (SUBREG I16 (REG I128 (HOLE 2 XMM)) 7)))))) ;PADDSW xmm, m128 (DEFINST ("PADDSW ?1x, QWORD PTR ??2s" "nil" "nil") (PARALLEL ; DEST[15..0] (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 0) (IFTHENELSE I16 (OVERFLOW I1 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 0) (SUBREG I16 (MEM I128 (HOLE 2)) 0) (INTCONST I1 0)) (IFTHENELSE I16 (TSTGES I1 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 0) (INTCONST I16 0)) (INTCONST I16 #x7FFF) (INTCONST I16 #x8000)) (ADD I16 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 0) (SUBREG I16 (MEM I128 (HOLE 2)) 0)))) ; DEST[31..16] (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 1) (IFTHENELSE I16 (OVERFLOW I1 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 1) (SUBREG I16 (MEM I128 (HOLE 2)) 1) (INTCONST I1 0)) (IFTHENELSE I16 (TSTGES I1 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 1) (INTCONST I16 0)) (INTCONST I16 #x7FFF) (INTCONST I16 #x8000)) (ADD I16 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 1) (SUBREG I16 (MEM I128 (HOLE 2)) 1)))) ; DEST[47..32] (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 2) (IFTHENELSE I16 (OVERFLOW I1 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 2) (SUBREG I16 (MEM I128 (HOLE 2)) 2) (INTCONST I1 0)) (IFTHENELSE I16 (TSTGES I1 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 2) (INTCONST I16 0)) (INTCONST I16 #x7FFF) (INTCONST I16 #x8000)) (ADD I16 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 2) (SUBREG I16 (MEM I128 (HOLE 2)) 2)))) ; DEST[63..48] (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 3) (IFTHENELSE I16 (OVERFLOW I1 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 3) (SUBREG I16 (MEM I128 (HOLE 2)) 3) (INTCONST I1 0)) (IFTHENELSE I16 (TSTGES I1 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 3) (INTCONST I16 0)) (INTCONST I16 #x7FFF) (INTCONST I16 #x8000)) (ADD I16 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 3) (SUBREG I16 (MEM I128 (HOLE 2)) 3)))) ; DEST[79..64] (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 4) (IFTHENELSE I16 (OVERFLOW I1 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 4) (SUBREG I16 (MEM I128 (HOLE 2)) 4) (INTCONST I1 0)) (IFTHENELSE I16 (TSTGES I1 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 4) (INTCONST I16 0)) (INTCONST I16 #x7FFF) (INTCONST I16 #x8000)) (ADD I16 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 4) (SUBREG I16 (MEM I128 (HOLE 2)) 4)))) ; DEST[95..80] (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 5) (IFTHENELSE I16 (OVERFLOW I1 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 5) (SUBREG I16 (MEM I128 (HOLE 2)) 5) (INTCONST I1 0)) (IFTHENELSE I16 (TSTGES I1 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 5) (INTCONST I16 0)) (INTCONST I16 #x7FFF) (INTCONST I16 #x8000)) (ADD I16 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 5) (SUBREG I16 (MEM I128 (HOLE 2)) 5)))) ; DEST[111..96] (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 6) (IFTHENELSE I16 (OVERFLOW I1 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 6) (SUBREG I16 (MEM I128 (HOLE 2)) 6) (INTCONST I1 0)) (IFTHENELSE I16 (TSTGES I1 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 6) (INTCONST I16 0)) (INTCONST I16 #x7FFF) (INTCONST I16 #x8000)) (ADD I16 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 6) (SUBREG I16 (MEM I128 (HOLE 2)) 6)))) ; DEST[127..112] (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 7) (IFTHENELSE I16 (OVERFLOW I1 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 7) (SUBREG I16 (MEM I128 (HOLE 2)) 7) (INTCONST I1 0)) (IFTHENELSE I16 (TSTGES I1 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 7) (INTCONST I16 0)) (INTCONST I16 #x7FFF) (INTCONST I16 #x8000)) (ADD I16 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 7) (SUBREG I16 (MEM I128 (HOLE 2)) 7)))))) ;PADDUSB mmx, mmx (DEFINST ("PADDUSB ?1m, ?2m" "PADDUSB %?2m,%?1m" "PADDUSB ?1m, ?2m") (PARALLEL ; DEST[7..0] (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 0) (IFTHENELSE I8 (TSTLTU I1 (ADD I8 (SUBREG I8 (REG I64 (HOLE 1 MM)) 0) (SUBREG I8 (REG I64 (HOLE 2 MM)) 0)) (SUBREG I8 (REG I64 (HOLE 1 MM)) 0)) (INTCONST I8 #xFF) (ADD I8 (SUBREG I8 (REG I64 (HOLE 1 MM)) 0) (SUBREG I8 (REG I64 (HOLE 2 MM)) 0)))) ; DEST[15..8] (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 1) (IFTHENELSE I8 (TSTLTU I1 (ADD I8 (SUBREG I8 (REG I64 (HOLE 1 MM)) 1) (SUBREG I8 (REG I64 (HOLE 2 MM)) 1)) (SUBREG I8 (REG I64 (HOLE 1 MM)) 1)) (INTCONST I8 #xFF) (ADD I8 (SUBREG I8 (REG I64 (HOLE 1 MM)) 1) (SUBREG I8 (REG I64 (HOLE 2 MM)) 1)))) ; DEST[23..16] (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 2) (IFTHENELSE I8 (TSTLTU I1 (ADD I8 (SUBREG I8 (REG I64 (HOLE 1 MM)) 2) (SUBREG I8 (REG I64 (HOLE 2 MM)) 2)) (SUBREG I8 (REG I64 (HOLE 1 MM)) 2)) (INTCONST I8 #xFF) (ADD I8 (SUBREG I8 (REG I64 (HOLE 1 MM)) 2) (SUBREG I8 (REG I64 (HOLE 2 MM)) 2)))) ; DEST[31..24] (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 3) (IFTHENELSE I8 (TSTLTU I1 (ADD I8 (SUBREG I8 (REG I64 (HOLE 1 MM)) 3) (SUBREG I8 (REG I64 (HOLE 2 MM)) 3)) (SUBREG I8 (REG I64 (HOLE 1 MM)) 3)) (INTCONST I8 #xFF) (ADD I8 (SUBREG I8 (REG I64 (HOLE 1 MM)) 3) (SUBREG I8 (REG I64 (HOLE 2 MM)) 3)))) ; DEST[39..32] (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 4) (IFTHENELSE I8 (TSTLTU I1 (ADD I8 (SUBREG I8 (REG I64 (HOLE 1 MM)) 4) (SUBREG I8 (REG I64 (HOLE 2 MM)) 4)) (SUBREG I8 (REG I64 (HOLE 1 MM)) 4)) (INTCONST I8 #xFF) (ADD I8 (SUBREG I8 (REG I64 (HOLE 1 MM)) 4) (SUBREG I8 (REG I64 (HOLE 2 MM)) 4)))) ; DEST[47..40] (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 5) (IFTHENELSE I8 (TSTLTU I1 (ADD I8 (SUBREG I8 (REG I64 (HOLE 1 MM)) 5) (SUBREG I8 (REG I64 (HOLE 2 MM)) 5)) (SUBREG I8 (REG I64 (HOLE 1 MM)) 5)) (INTCONST I8 #xFF) (ADD I8 (SUBREG I8 (REG I64 (HOLE 1 MM)) 5) (SUBREG I8 (REG I64 (HOLE 2 MM)) 5)))) ; DEST[55..48] (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 6) (IFTHENELSE I8 (TSTLTU I1 (ADD I8 (SUBREG I8 (REG I64 (HOLE 1 MM)) 6) (SUBREG I8 (REG I64 (HOLE 2 MM)) 6)) (SUBREG I8 (REG I64 (HOLE 1 MM)) 6)) (INTCONST I8 #xFF) (ADD I8 (SUBREG I8 (REG I64 (HOLE 1 MM)) 6) (SUBREG I8 (REG I64 (HOLE 2 MM)) 6)))) ; DEST[63..56] (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 7) (IFTHENELSE I8 (TSTLTU I1 (ADD I8 (SUBREG I8 (REG I64 (HOLE 1 MM)) 7) (SUBREG I8 (REG I64 (HOLE 2 MM)) 7)) (SUBREG I8 (REG I64 (HOLE 1 MM)) 7)) (INTCONST I8 #xFF) (ADD I8 (SUBREG I8 (REG I64 (HOLE 1 MM)) 7) (SUBREG I8 (REG I64 (HOLE 2 MM)) 7)))))) ;PADDUSB mmx, m64 (DEFINST ("PADDUSB ?1m, QWORD PTR ??2s" "PADDUSB ??2s,%?1m" "PADDUSB ?1m, QWORD PTR ??2s") (PARALLEL ; DEST[7..0] (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 0) (IFTHENELSE I8 (TSTLTU I1 (ADD I8 (SUBREG I8 (REG I64 (HOLE 1 MM)) 0) (SUBREG I8 (MEM I64 (HOLE 2)) 0)) (SUBREG I8 (REG I64 (HOLE 1 MM)) 0)) (INTCONST I8 #xFF) (ADD I8 (SUBREG I8 (REG I64 (HOLE 1 MM)) 0) (SUBREG I8 (MEM I64 (HOLE 2)) 0)))) ; DEST[15..8] (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 1) (IFTHENELSE I8 (TSTLTU I1 (ADD I8 (SUBREG I8 (REG I64 (HOLE 1 MM)) 1) (SUBREG I8 (MEM I64 (HOLE 2)) 1)) (SUBREG I8 (REG I64 (HOLE 1 MM)) 1)) (INTCONST I8 #xFF) (ADD I8 (SUBREG I8 (REG I64 (HOLE 1 MM)) 1) (SUBREG I8 (MEM I64 (HOLE 2)) 1)))) ; DEST[23..16] (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 2) (IFTHENELSE I8 (TSTLTU I1 (ADD I8 (SUBREG I8 (REG I64 (HOLE 1 MM)) 2) (SUBREG I8 (MEM I64 (HOLE 2)) 2)) (SUBREG I8 (REG I64 (HOLE 1 MM)) 2)) (INTCONST I8 #xFF) (ADD I8 (SUBREG I8 (REG I64 (HOLE 1 MM)) 2) (SUBREG I8 (MEM I64 (HOLE 2)) 2)))) ; DEST[31..24] (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 3) (IFTHENELSE I8 (TSTLTU I1 (ADD I8 (SUBREG I8 (REG I64 (HOLE 1 MM)) 3) (SUBREG I8 (MEM I64 (HOLE 2)) 3)) (SUBREG I8 (REG I64 (HOLE 1 MM)) 3)) (INTCONST I8 #xFF) (ADD I8 (SUBREG I8 (REG I64 (HOLE 1 MM)) 3) (SUBREG I8 (MEM I64 (HOLE 2)) 3)))) ; DEST[39..32] (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 4) (IFTHENELSE I8 (TSTLTU I1 (ADD I8 (SUBREG I8 (REG I64 (HOLE 1 MM)) 4) (SUBREG I8 (MEM I64 (HOLE 2)) 4)) (SUBREG I8 (REG I64 (HOLE 1 MM)) 4)) (INTCONST I8 #xFF) (ADD I8 (SUBREG I8 (REG I64 (HOLE 1 MM)) 4) (SUBREG I8 (MEM I64 (HOLE 2)) 4)))) ; DEST[47..40] (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 5) (IFTHENELSE I8 (TSTLTU I1 (ADD I8 (SUBREG I8 (REG I64 (HOLE 1 MM)) 5) (SUBREG I8 (MEM I64 (HOLE 2)) 5)) (SUBREG I8 (REG I64 (HOLE 1 MM)) 5)) (INTCONST I8 #xFF) (ADD I8 (SUBREG I8 (REG I64 (HOLE 1 MM)) 5) (SUBREG I8 (MEM I64 (HOLE 2)) 5)))) ; DEST[55..48] (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 6) (IFTHENELSE I8 (TSTLTU I1 (ADD I8 (SUBREG I8 (REG I64 (HOLE 1 MM)) 6) (SUBREG I8 (MEM I64 (HOLE 2)) 6)) (SUBREG I8 (REG I64 (HOLE 1 MM)) 6)) (INTCONST I8 #xFF) (ADD I8 (SUBREG I8 (REG I64 (HOLE 1 MM)) 6) (SUBREG I8 (MEM I64 (HOLE 2)) 6)))) ; DEST[63..56] (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 7) (IFTHENELSE I8 (TSTLTU I1 (ADD I8 (SUBREG I8 (REG I64 (HOLE 1 MM)) 7) (SUBREG I8 (MEM I64 (HOLE 2)) 7)) (SUBREG I8 (REG I64 (HOLE 1 MM)) 7)) (INTCONST I8 #xFF) (ADD I8 (SUBREG I8 (REG I64 (HOLE 1 MM)) 7) (SUBREG I8 (MEM I64 (HOLE 2)) 7)))))) ;PADDUSB xmm, xmm (DEFINST ("PADDUSB ?1x, ?2x" "nil" "nil") (PARALLEL ; DEST[7..0] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 0) (IFTHENELSE I8 (TSTLTU I1 (ADD I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 0) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 0)) (SUBREG I8 (REG I128 (HOLE 1 XMM)) 0)) (INTCONST I8 #xFF) (ADD I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 0) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 0)))) ; DEST[15..8] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 1) (IFTHENELSE I8 (TSTLTU I1 (ADD I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 1) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 1)) (SUBREG I8 (REG I128 (HOLE 1 XMM)) 1)) (INTCONST I8 #xFF) (ADD I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 1) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 1)))) ; DEST[23..16] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 2) (IFTHENELSE I8 (TSTLTU I1 (ADD I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 2) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 2)) (SUBREG I8 (REG I128 (HOLE 1 XMM)) 2)) (INTCONST I8 #xFF) (ADD I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 2) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 2)))) ; DEST[31..24] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 3) (IFTHENELSE I8 (TSTLTU I1 (ADD I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 3) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 3)) (SUBREG I8 (REG I128 (HOLE 1 XMM)) 3)) (INTCONST I8 #xFF) (ADD I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 3) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 3)))) ; DEST[39..32] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 4) (IFTHENELSE I8 (TSTLTU I1 (ADD I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 4) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 4)) (SUBREG I8 (REG I128 (HOLE 1 XMM)) 4)) (INTCONST I8 #xFF) (ADD I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 4) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 4)))) ; DEST[47..40] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 5) (IFTHENELSE I8 (TSTLTU I1 (ADD I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 5) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 5)) (SUBREG I8 (REG I128 (HOLE 1 XMM)) 5)) (INTCONST I8 #xFF) (ADD I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 5) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 5)))) ; DEST[55..48] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 6) (IFTHENELSE I8 (TSTLTU I1 (ADD I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 6) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 6)) (SUBREG I8 (REG I128 (HOLE 1 XMM)) 6)) (INTCONST I8 #xFF) (ADD I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 6) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 6)))) ; DEST[63..56] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 7) (IFTHENELSE I8 (TSTLTU I1 (ADD I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 7) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 7)) (SUBREG I8 (REG I128 (HOLE 1 XMM)) 7)) (INTCONST I8 #xFF) (ADD I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 7) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 7)))) ; DEST[71..64] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 8) (IFTHENELSE I8 (TSTLTU I1 (ADD I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 8) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 8)) (SUBREG I8 (REG I128 (HOLE 1 XMM)) 8)) (INTCONST I8 #xFF) (ADD I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 8) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 8)))) ; DEST[79..72] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 9) (IFTHENELSE I8 (TSTLTU I1 (ADD I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 9) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 9)) (SUBREG I8 (REG I128 (HOLE 1 XMM)) 9)) (INTCONST I8 #xFF) (ADD I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 9) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 9)))) ; DEST[87..80] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 10) (IFTHENELSE I8 (TSTLTU I1 (ADD I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 10) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 10)) (SUBREG I8 (REG I128 (HOLE 1 XMM)) 10)) (INTCONST I8 #xFF) (ADD I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 10) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 10)))) ; DEST[95..88] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 11) (IFTHENELSE I8 (TSTLTU I1 (ADD I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 11) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 11)) (SUBREG I8 (REG I128 (HOLE 1 XMM)) 11)) (INTCONST I8 #xFF) (ADD I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 11) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 11)))) ; DEST[103..96] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 12) (IFTHENELSE I8 (TSTLTU I1 (ADD I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 12) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 12)) (SUBREG I8 (REG I128 (HOLE 1 XMM)) 12)) (INTCONST I8 #xFF) (ADD I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 12) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 12)))) ; DEST[111..104] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 13) (IFTHENELSE I8 (TSTLTU I1 (ADD I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 13) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 13)) (SUBREG I8 (REG I128 (HOLE 1 XMM)) 13)) (INTCONST I8 #xFF) (ADD I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 13) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 13)))) ; DEST[119..112] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 14) (IFTHENELSE I8 (TSTLTU I1 (ADD I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 14) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 14)) (SUBREG I8 (REG I128 (HOLE 1 XMM)) 14)) (INTCONST I8 #xFF) (ADD I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 14) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 14)))) ; DEST[127..120] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 15) (IFTHENELSE I8 (TSTLTU I1 (ADD I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 15) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 15)) (SUBREG I8 (REG I128 (HOLE 1 XMM)) 15)) (INTCONST I8 #xFF) (ADD I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 15) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 15)))))) ;PADDUSB xmm, m128 (DEFINST ("PADDUSB ?1x, QWORD PTR ??2s" "nil" "nil") (PARALLEL ; DEST[7..0] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 0) (IFTHENELSE I8 (TSTLTU I1 (ADD I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 0) (SUBREG I8 (MEM I128 (HOLE 2)) 0)) (SUBREG I8 (REG I128 (HOLE 1 XMM)) 0)) (INTCONST I8 #xFF) (ADD I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 0) (SUBREG I8 (MEM I128 (HOLE 2)) 0)))) ; DEST[15..8] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 1) (IFTHENELSE I8 (TSTLTU I1 (ADD I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 1) (SUBREG I8 (MEM I128 (HOLE 2)) 1)) (SUBREG I8 (REG I128 (HOLE 1 XMM)) 1)) (INTCONST I8 #xFF) (ADD I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 1) (SUBREG I8 (MEM I128 (HOLE 2)) 1)))) ; DEST[23..16] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 2) (IFTHENELSE I8 (TSTLTU I1 (ADD I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 2) (SUBREG I8 (MEM I128 (HOLE 2)) 2)) (SUBREG I8 (REG I128 (HOLE 1 XMM)) 2)) (INTCONST I8 #xFF) (ADD I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 2) (SUBREG I8 (MEM I128 (HOLE 2)) 2)))) ; DEST[31..24] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 3) (IFTHENELSE I8 (TSTLTU I1 (ADD I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 3) (SUBREG I8 (MEM I128 (HOLE 2)) 3)) (SUBREG I8 (REG I128 (HOLE 1 XMM)) 3)) (INTCONST I8 #xFF) (ADD I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 3) (SUBREG I8 (MEM I128 (HOLE 2)) 3)))) ; DEST[39..32] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 4) (IFTHENELSE I8 (TSTLTU I1 (ADD I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 4) (SUBREG I8 (MEM I128 (HOLE 2)) 4)) (SUBREG I8 (REG I128 (HOLE 1 XMM)) 4)) (INTCONST I8 #xFF) (ADD I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 4) (SUBREG I8 (MEM I128 (HOLE 2)) 4)))) ; DEST[47..40] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 5) (IFTHENELSE I8 (TSTLTU I1 (ADD I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 5) (SUBREG I8 (MEM I128 (HOLE 2)) 5)) (SUBREG I8 (REG I128 (HOLE 1 XMM)) 5)) (INTCONST I8 #xFF) (ADD I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 5) (SUBREG I8 (MEM I128 (HOLE 2)) 5)))) ; DEST[55..48] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 6) (IFTHENELSE I8 (TSTLTU I1 (ADD I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 6) (SUBREG I8 (MEM I128 (HOLE 2)) 6)) (SUBREG I8 (REG I128 (HOLE 1 XMM)) 6)) (INTCONST I8 #xFF) (ADD I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 6) (SUBREG I8 (MEM I128 (HOLE 2)) 6)))) ; DEST[63..56] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 7) (IFTHENELSE I8 (TSTLTU I1 (ADD I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 7) (SUBREG I8 (MEM I128 (HOLE 2)) 7)) (SUBREG I8 (REG I128 (HOLE 1 XMM)) 7)) (INTCONST I8 #xFF) (ADD I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 7) (SUBREG I8 (MEM I128 (HOLE 2)) 7)))) ; DEST[71..64] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 8) (IFTHENELSE I8 (TSTLTU I1 (ADD I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 8) (SUBREG I8 (MEM I128 (HOLE 2)) 8)) (SUBREG I8 (REG I128 (HOLE 1 XMM)) 8)) (INTCONST I8 #xFF) (ADD I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 8) (SUBREG I8 (MEM I128 (HOLE 2)) 8)))) ; DEST[79..72] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 9) (IFTHENELSE I8 (TSTLTU I1 (ADD I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 9) (SUBREG I8 (MEM I128 (HOLE 2)) 9)) (SUBREG I8 (REG I128 (HOLE 1 XMM)) 9)) (INTCONST I8 #xFF) (ADD I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 9) (SUBREG I8 (MEM I128 (HOLE 2)) 9)))) ; DEST[87..80] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 10) (IFTHENELSE I8 (TSTLTU I1 (ADD I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 10) (SUBREG I8 (MEM I128 (HOLE 2)) 10)) (SUBREG I8 (REG I128 (HOLE 1 XMM)) 10)) (INTCONST I8 #xFF) (ADD I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 10) (SUBREG I8 (MEM I128 (HOLE 2)) 10)))) ; DEST[95..88] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 11) (IFTHENELSE I8 (TSTLTU I1 (ADD I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 11) (SUBREG I8 (MEM I128 (HOLE 2)) 11)) (SUBREG I8 (REG I128 (HOLE 1 XMM)) 11)) (INTCONST I8 #xFF) (ADD I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 11) (SUBREG I8 (MEM I128 (HOLE 2)) 11)))) ; DEST[103..96] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 12) (IFTHENELSE I8 (TSTLTU I1 (ADD I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 12) (SUBREG I8 (MEM I128 (HOLE 2)) 12)) (SUBREG I8 (REG I128 (HOLE 1 XMM)) 12)) (INTCONST I8 #xFF) (ADD I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 12) (SUBREG I8 (MEM I128 (HOLE 2)) 12)))) ; DEST[111..104] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 13) (IFTHENELSE I8 (TSTLTU I1 (ADD I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 13) (SUBREG I8 (MEM I128 (HOLE 2)) 13)) (SUBREG I8 (REG I128 (HOLE 1 XMM)) 13)) (INTCONST I8 #xFF) (ADD I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 13) (SUBREG I8 (MEM I128 (HOLE 2)) 13)))) ; DEST[119..112] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 14) (IFTHENELSE I8 (TSTLTU I1 (ADD I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 14) (SUBREG I8 (MEM I128 (HOLE 2)) 14)) (SUBREG I8 (REG I128 (HOLE 1 XMM)) 14)) (INTCONST I8 #xFF) (ADD I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 14) (SUBREG I8 (MEM I128 (HOLE 2)) 14)))) ; DEST[127..120] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 15) (IFTHENELSE I8 (TSTLTU I1 (ADD I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 15) (SUBREG I8 (MEM I128 (HOLE 2)) 15)) (SUBREG I8 (REG I128 (HOLE 1 XMM)) 15)) (INTCONST I8 #xFF) (ADD I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 15) (SUBREG I8 (MEM I128 (HOLE 2)) 15)))))) ;PADDUSW mmx, mmx (DEFINST ("PADDUSW ?1m, ?2m" "PADDUSW %?2m,%?1m" "PADDUSW ?1m, ?2m") (PARALLEL ; DEST[15..0] (SET (SUBREG I16 (REG I64 (HOLE 1 MM)) 0) (IFTHENELSE I16 (TSTLTU I1 (ADD I16 (SUBREG I16 (REG I64 (HOLE 1 MM)) 0) (SUBREG I16 (REG I64 (HOLE 2 MM)) 0)) (SUBREG I16 (REG I64 (HOLE 1 MM)) 0)) (INTCONST I16 #xFFFF) (ADD I16 (SUBREG I16 (REG I64 (HOLE 1 MM)) 0) (SUBREG I16 (REG I64 (HOLE 2 MM)) 0)))) ; DEST[31..16] (SET (SUBREG I16 (REG I64 (HOLE 1 MM)) 1) (IFTHENELSE I16 (TSTLTU I1 (ADD I16 (SUBREG I16 (REG I64 (HOLE 1 MM)) 1) (SUBREG I16 (REG I64 (HOLE 2 MM)) 1)) (SUBREG I16 (REG I64 (HOLE 1 MM)) 1)) (INTCONST I16 #xFFFF) (ADD I16 (SUBREG I16 (REG I64 (HOLE 1 MM)) 1) (SUBREG I16 (REG I64 (HOLE 2 MM)) 1)))) ; DEST[47..32] (SET (SUBREG I16 (REG I64 (HOLE 1 MM)) 2) (IFTHENELSE I16 (TSTLTU I1 (ADD I16 (SUBREG I16 (REG I64 (HOLE 1 MM)) 2) (SUBREG I16 (REG I64 (HOLE 2 MM)) 2)) (SUBREG I16 (REG I64 (HOLE 1 MM)) 2)) (INTCONST I16 #xFFFF) (ADD I16 (SUBREG I16 (REG I64 (HOLE 1 MM)) 2) (SUBREG I16 (REG I64 (HOLE 2 MM)) 2)))) ; DEST[63..48] (SET (SUBREG I16 (REG I64 (HOLE 1 MM)) 3) (IFTHENELSE I16 (TSTLTU I1 (ADD I16 (SUBREG I16 (REG I64 (HOLE 1 MM)) 3) (SUBREG I16 (REG I64 (HOLE 2 MM)) 3)) (SUBREG I16 (REG I64 (HOLE 1 MM)) 3)) (INTCONST I16 #xFFFF) (ADD I16 (SUBREG I16 (REG I64 (HOLE 1 MM)) 3) (SUBREG I16 (REG I64 (HOLE 2 MM)) 3)))))) ;PADDUSW mmx, m64 (DEFINST ("PADDUSW ?1m, QWORD PTR ??2s" "PADDUSW ??2s,%?1m" "PADDUSW ?1m, QWORD PTR ??2s") (PARALLEL ; DEST[15..0] (SET (SUBREG I16 (REG I64 (HOLE 1 MM)) 0) (IFTHENELSE I16 (TSTLTU I1 (ADD I16 (SUBREG I16 (REG I64 (HOLE 1 MM)) 0) (SUBREG I16 (MEM I64 (HOLE 2)) 0)) (SUBREG I16 (REG I64 (HOLE 1 MM)) 0)) (INTCONST I16 #xFFFF) (ADD I16 (SUBREG I16 (REG I64 (HOLE 1 MM)) 0) (SUBREG I16 (MEM I64 (HOLE 2)) 0)))) ; DEST[31..16] (SET (SUBREG I16 (REG I64 (HOLE 1 MM)) 1) (IFTHENELSE I16 (TSTLTU I1 (ADD I16 (SUBREG I16 (REG I64 (HOLE 1 MM)) 1) (SUBREG I16 (MEM I64 (HOLE 2)) 1)) (SUBREG I16 (REG I64 (HOLE 1 MM)) 1)) (INTCONST I16 #xFFFF) (ADD I16 (SUBREG I16 (REG I64 (HOLE 1 MM)) 1) (SUBREG I16 (MEM I64 (HOLE 2)) 1)))) ; DEST[47..32] (SET (SUBREG I16 (REG I64 (HOLE 1 MM)) 2) (IFTHENELSE I16 (TSTLTU I1 (ADD I16 (SUBREG I16 (REG I64 (HOLE 1 MM)) 2) (SUBREG I16 (MEM I64 (HOLE 2)) 2)) (SUBREG I16 (REG I64 (HOLE 1 MM)) 2)) (INTCONST I16 #xFFFF) (ADD I16 (SUBREG I16 (REG I64 (HOLE 1 MM)) 2) (SUBREG I16 (MEM I64 (HOLE 2)) 2)))) ; DEST[63..48] (SET (SUBREG I16 (REG I64 (HOLE 1 MM)) 3) (IFTHENELSE I16 (TSTLTU I1 (ADD I16 (SUBREG I16 (REG I64 (HOLE 1 MM)) 3) (SUBREG I16 (MEM I64 (HOLE 2)) 3)) (SUBREG I16 (REG I64 (HOLE 1 MM)) 3)) (INTCONST I16 #xFFFF) (ADD I16 (SUBREG I16 (REG I64 (HOLE 1 MM)) 3) (SUBREG I16 (MEM I64 (HOLE 2)) 3)))))) ;PADDUSW xmm, xmm (DEFINST ("PADDUSW ?1x, ?2x" "nil" "nil") (PARALLEL ; DEST[15..0] (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 0) (IFTHENELSE I16 (TSTLTU I1 (ADD I16 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 0) (SUBREG I16 (REG I128 (HOLE 2 XMM)) 0)) (SUBREG I16 (REG I128 (HOLE 1 XMM)) 0)) (INTCONST I16 #xFFFF) (ADD I16 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 0) (SUBREG I16 (REG I128 (HOLE 2 XMM)) 0)))) ; DEST[31..16] (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 1) (IFTHENELSE I16 (TSTLTU I1 (ADD I16 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 1) (SUBREG I16 (REG I128 (HOLE 2 XMM)) 1)) (SUBREG I16 (REG I128 (HOLE 1 XMM)) 1)) (INTCONST I16 #xFFFF) (ADD I16 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 1) (SUBREG I16 (REG I128 (HOLE 2 XMM)) 1)))) ; DEST[47..32] (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 2) (IFTHENELSE I16 (TSTLTU I1 (ADD I16 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 2) (SUBREG I16 (REG I128 (HOLE 2 XMM)) 2)) (SUBREG I16 (REG I128 (HOLE 1 XMM)) 2)) (INTCONST I16 #xFFFF) (ADD I16 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 2) (SUBREG I16 (REG I128 (HOLE 2 XMM)) 2)))) ; DEST[63..48] (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 3) (IFTHENELSE I16 (TSTLTU I1 (ADD I16 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 3) (SUBREG I16 (REG I128 (HOLE 2 XMM)) 3)) (SUBREG I16 (REG I128 (HOLE 1 XMM)) 3)) (INTCONST I16 #xFFFF) (ADD I16 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 3) (SUBREG I16 (REG I128 (HOLE 2 XMM)) 3)))) ; DEST[79..64] (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 4) (IFTHENELSE I16 (TSTLTU I1 (ADD I16 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 4) (SUBREG I16 (REG I128 (HOLE 2 XMM)) 4)) (SUBREG I16 (REG I128 (HOLE 1 XMM)) 4)) (INTCONST I16 #xFFFF) (ADD I16 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 4) (SUBREG I16 (REG I128 (HOLE 2 XMM)) 4)))) ; DEST[95..80] (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 5) (IFTHENELSE I16 (TSTLTU I1 (ADD I16 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 5) (SUBREG I16 (REG I128 (HOLE 2 XMM)) 5)) (SUBREG I16 (REG I128 (HOLE 1 XMM)) 5)) (INTCONST I16 #xFFFF) (ADD I16 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 5) (SUBREG I16 (REG I128 (HOLE 2 XMM)) 5)))) ; DEST[111..96] (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 6) (IFTHENELSE I16 (TSTLTU I1 (ADD I16 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 6) (SUBREG I16 (REG I128 (HOLE 2 XMM)) 6)) (SUBREG I16 (REG I128 (HOLE 1 XMM)) 6)) (INTCONST I16 #xFFFF) (ADD I16 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 6) (SUBREG I16 (REG I128 (HOLE 2 XMM)) 6)))) ; DEST[127..112] (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 7) (IFTHENELSE I16 (TSTLTU I1 (ADD I16 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 7) (SUBREG I16 (REG I128 (HOLE 2 XMM)) 7)) (SUBREG I16 (REG I128 (HOLE 1 XMM)) 7)) (INTCONST I16 #xFFFF) (ADD I16 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 7) (SUBREG I16 (REG I128 (HOLE 2 XMM)) 7)))))) ;PADDUSW xmm, m128 (DEFINST ("PADDUSW ?1x, QWORD PTR ??2s" "nil" "nil") (PARALLEL ; DEST[15..0] (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 0) (IFTHENELSE I16 (TSTLTU I1 (ADD I16 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 0) (SUBREG I16 (MEM I128 (HOLE 2)) 0)) (SUBREG I16 (REG I128 (HOLE 1 XMM)) 0)) (INTCONST I16 #xFFFF) (ADD I16 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 0) (SUBREG I16 (MEM I128 (HOLE 2)) 0)))) ; DEST[31..16] (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 1) (IFTHENELSE I16 (TSTLTU I1 (ADD I16 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 1) (SUBREG I16 (MEM I128 (HOLE 2)) 1)) (SUBREG I16 (REG I128 (HOLE 1 XMM)) 1)) (INTCONST I16 #xFFFF) (ADD I16 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 1) (SUBREG I16 (MEM I128 (HOLE 2)) 1)))) ; DEST[47..32] (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 2) (IFTHENELSE I16 (TSTLTU I1 (ADD I16 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 2) (SUBREG I16 (MEM I128 (HOLE 2)) 2)) (SUBREG I16 (REG I128 (HOLE 1 XMM)) 2)) (INTCONST I16 #xFFFF) (ADD I16 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 2) (SUBREG I16 (MEM I128 (HOLE 2)) 2)))) ; DEST[63..48] (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 3) (IFTHENELSE I16 (TSTLTU I1 (ADD I16 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 3) (SUBREG I16 (MEM I128 (HOLE 2)) 3)) (SUBREG I16 (REG I128 (HOLE 1 XMM)) 3)) (INTCONST I16 #xFFFF) (ADD I16 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 3) (SUBREG I16 (MEM I128 (HOLE 2)) 3)))) ; DEST[79..64] (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 4) (IFTHENELSE I16 (TSTLTU I1 (ADD I16 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 4) (SUBREG I16 (MEM I128 (HOLE 2)) 4)) (SUBREG I16 (REG I128 (HOLE 1 XMM)) 4)) (INTCONST I16 #xFFFF) (ADD I16 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 4) (SUBREG I16 (MEM I128 (HOLE 2)) 4)))) ; DEST[95..80] (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 5) (IFTHENELSE I16 (TSTLTU I1 (ADD I16 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 5) (SUBREG I16 (MEM I128 (HOLE 2)) 5)) (SUBREG I16 (REG I128 (HOLE 1 XMM)) 5)) (INTCONST I16 #xFFFF) (ADD I16 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 5) (SUBREG I16 (MEM I128 (HOLE 2)) 5)))) ; DEST[111..96] (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 6) (IFTHENELSE I16 (TSTLTU I1 (ADD I16 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 6) (SUBREG I16 (MEM I128 (HOLE 2)) 6)) (SUBREG I16 (REG I128 (HOLE 1 XMM)) 6)) (INTCONST I16 #xFFFF) (ADD I16 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 6) (SUBREG I16 (MEM I128 (HOLE 2)) 6)))) ; DEST[127..112] (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 7) (IFTHENELSE I16 (TSTLTU I1 (ADD I16 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 7) (SUBREG I16 (MEM I128 (HOLE 2)) 7)) (SUBREG I16 (REG I128 (HOLE 1 XMM)) 7)) (INTCONST I16 #xFFFF) (ADD I16 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 7) (SUBREG I16 (MEM I128 (HOLE 2)) 7)))))) ;PADDW mmx, mmx (DEFINST ("PADDW ?1m, ?2m" "PADDW %?2m,%?1m" "PADDW ?1m, ?2m") (PARALLEL ; DEST[15..0] (SET (SUBREG I16 (REG I64 (HOLE 1 MM)) 0) (ADD I16 (SUBREG I16 (REG I64 (HOLE 1 MM)) 0) (SUBREG I16 (REG I64 (HOLE 2 MM)) 0))) ; DEST[31..16] (SET (SUBREG I16 (REG I64 (HOLE 1 MM)) 1) (ADD I16 (SUBREG I16 (REG I64 (HOLE 1 MM)) 1) (SUBREG I16 (REG I64 (HOLE 2 MM)) 1))) ; DEST[47..32] (SET (SUBREG I16 (REG I64 (HOLE 1 MM)) 2) (ADD I16 (SUBREG I16 (REG I64 (HOLE 1 MM)) 2) (SUBREG I16 (REG I64 (HOLE 2 MM)) 2))) ; DEST[63..48] (SET (SUBREG I16 (REG I64 (HOLE 1 MM)) 3) (ADD I16 (SUBREG I16 (REG I64 (HOLE 1 MM)) 3) (SUBREG I16 (REG I64 (HOLE 2 MM)) 3))))) ;PADDW mmx, m64 (DEFINST ("PADDW ?1m, QWORD PTR ??2s" "PADDW ??2s,%?1m" "PADDW ?1m, QWORD PTR ??2s") (PARALLEL ; DEST[15..0] (SET (SUBREG I16 (REG I64 (HOLE 1 MM)) 0) (ADD I16 (SUBREG I16 (REG I64 (HOLE 1 MM)) 0) (SUBREG I16 (MEM I64 (HOLE 2)) 0))) ; DEST[31..16] (SET (SUBREG I16 (REG I64 (HOLE 1 MM)) 1) (ADD I16 (SUBREG I16 (REG I64 (HOLE 1 MM)) 1) (SUBREG I16 (MEM I64 (HOLE 2)) 1))) ; DEST[47..32] (SET (SUBREG I16 (REG I64 (HOLE 1 MM)) 2) (ADD I16 (SUBREG I16 (REG I64 (HOLE 1 MM)) 2) (SUBREG I16 (MEM I64 (HOLE 2)) 2))) ; DEST[63..48] (SET (SUBREG I16 (REG I64 (HOLE 1 MM)) 3) (ADD I16 (SUBREG I16 (REG I64 (HOLE 1 MM)) 3) (SUBREG I16 (MEM I64 (HOLE 2)) 3))))) ;PADDW xmm, xmm (DEFINST ("PADDW ?1x, ?2x" "nil" "nil") (PARALLEL ; DEST[15..0] (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 0) (ADD I16 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 0) (SUBREG I16 (REG I128 (HOLE 2 XMM)) 0))) ; DEST[31..16] (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 1) (ADD I16 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 1) (SUBREG I16 (REG I128 (HOLE 2 XMM)) 1))) ; DEST[47..32] (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 2) (ADD I16 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 2) (SUBREG I16 (REG I128 (HOLE 2 XMM)) 2))) ; DEST[63..48] (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 3) (ADD I16 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 3) (SUBREG I16 (REG I128 (HOLE 2 XMM)) 3))) ; DEST[79..64] (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 4) (ADD I16 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 4) (SUBREG I16 (REG I128 (HOLE 2 XMM)) 4))) ; DEST[95..80] (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 5) (ADD I16 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 5) (SUBREG I16 (REG I128 (HOLE 2 XMM)) 5))) ; DEST[111..96] (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 6) (ADD I16 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 6) (SUBREG I16 (REG I128 (HOLE 2 XMM)) 6))) ; DEST[127..112] (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 7) (ADD I16 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 7) (SUBREG I16 (REG I128 (HOLE 2 XMM)) 7))))) ;PADDW xmm, m128 (DEFINST ("PADDW ?1x, QWORD PTR ??2s" "nil" "nil") (PARALLEL ; DEST[15..0] (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 0) (ADD I16 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 0) (SUBREG I16 (MEM I128 (HOLE 2)) 0))) ; DEST[31..16] (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 1) (ADD I16 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 1) (SUBREG I16 (MEM I128 (HOLE 2)) 1))) ; DEST[47..32] (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 2) (ADD I16 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 2) (SUBREG I16 (MEM I128 (HOLE 2)) 2))) ; DEST[63..48] (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 3) (ADD I16 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 3) (SUBREG I16 (MEM I128 (HOLE 2)) 3))) ; DEST[79..64] (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 4) (ADD I16 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 4) (SUBREG I16 (MEM I128 (HOLE 2)) 4))) ; DEST[95..80] (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 5) (ADD I16 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 5) (SUBREG I16 (MEM I128 (HOLE 2)) 5))) ; DEST[111..96] (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 6) (ADD I16 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 6) (SUBREG I16 (MEM I128 (HOLE 2)) 6))) ; DEST[127..112] (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 7) (ADD I16 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 7) (SUBREG I16 (MEM I128 (HOLE 2)) 7))))) ;PMADDWD mmx, mmx (DEFINST ("PMADDWD ?1m,?2m" "PMADDWD %?2m,%?1m" "PMADDWD ?1m,?2m") (PARALLEL ; DEST[31..0] (SET (SUBREG I32 (REG I64 (HOLE 1 MM)) 0) (ADD I32 (MUL I32 (CONVSX I32 (SUBREG I16 (REG I64 (HOLE 1 MM)) 0)) (CONVSX I32 (SUBREG I16 (REG I64 (HOLE 2 MM)) 0))) (MUL I32 (CONVSX I32 (SUBREG I16 (REG I64 (HOLE 1 MM)) 1)) (CONVSX I32 (SUBREG I16 (REG I64 (HOLE 2 MM)) 1))))) ; DEST[63..32] (SET (SUBREG I32 (REG I64 (HOLE 1 MM)) 1) (ADD I32 (MUL I32 (CONVSX I32 (SUBREG I16 (REG I64 (HOLE 1 MM)) 2)) (CONVSX I32 (SUBREG I16 (REG I64 (HOLE 2 MM)) 2))) (MUL I32 (CONVSX I32 (SUBREG I16 (REG I64 (HOLE 1 MM)) 3)) (CONVSX I32 (SUBREG I16 (REG I64 (HOLE 2 MM)) 3))))))) ;PMADDWD mmx, m64 (DEFINST ("PMADDWD ?1m,QWORD PTR ??2s" "PMADDWD ??2s,%?1m" "PMADDWD ?1m,QWORD PTR ??2s") (PARALLEL ; DEST[31..0] (SET (SUBREG I32 (REG I64 (HOLE 1 MM)) 0) (ADD I32 (MUL I32 (CONVSX I32 (SUBREG I16 (REG I64 (HOLE 1 MM)) 0)) (CONVSX I32 (SUBREG I16 (MEM I64 (HOLE 2)) 0))) (MUL I32 (CONVSX I32 (SUBREG I16 (REG I64 (HOLE 1 MM)) 1)) (CONVSX I32 (SUBREG I16 (MEM I64 (HOLE 2)) 1))))) ; DEST[63..32] (SET (SUBREG I32 (REG I64 (HOLE 1 MM)) 1) (ADD I32 (MUL I32 (CONVSX I32 (SUBREG I16 (REG I64 (HOLE 1 MM)) 2)) (CONVSX I32 (SUBREG I16 (MEM I64 (HOLE 2)) 2))) (MUL I32 (CONVSX I32 (SUBREG I16 (REG I64 (HOLE 1 MM)) 3)) (CONVSX I32 (SUBREG I16 (MEM I64 (HOLE 2)) 3))))))) ;PMADDWD xmm, xmm (DEFINST ("PMADDWD ?1x,?2x" "nil" "nil") (PARALLEL ; DEST[31..0] (SET (SUBREG I32 (REG I128 (HOLE 1 XMM)) 0) (ADD I32 (MUL I32 (CONVSX I32 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 0)) (CONVSX I32 (SUBREG I16 (REG I128 (HOLE 2 XMM)) 0))) (MUL I32 (CONVSX I32 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 1)) (CONVSX I32 (SUBREG I16 (REG I128 (HOLE 2 XMM)) 1))))) ; DEST[63..32] (SET (SUBREG I32 (REG I128 (HOLE 1 XMM)) 1) (ADD I32 (MUL I32 (CONVSX I32 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 2)) (CONVSX I32 (SUBREG I16 (REG I128 (HOLE 2 XMM)) 2))) (MUL I32 (CONVSX I32 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 3)) (CONVSX I32 (SUBREG I16 (REG I128 (HOLE 2 XMM)) 3))))) ; DEST[95..64] (SET (SUBREG I32 (REG I128 (HOLE 1 XMM)) 2) (ADD I32 (MUL I32 (CONVSX I32 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 4)) (CONVSX I32 (SUBREG I16 (REG I128 (HOLE 2 XMM)) 4))) (MUL I32 (CONVSX I32 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 5)) (CONVSX I32 (SUBREG I16 (REG I128 (HOLE 2 XMM)) 5))))) ; DEST[127..96] (SET (SUBREG I32 (REG I128 (HOLE 1 XMM)) 3) (ADD I32 (MUL I32 (CONVSX I32 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 6)) (CONVSX I32 (SUBREG I16 (REG I128 (HOLE 2 XMM)) 6))) (MUL I32 (CONVSX I32 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 7)) (CONVSX I32 (SUBREG I16 (REG I128 (HOLE 2 XMM)) 7))))))) ;PMADDWD xmm, m128 (DEFINST ("PMADDWD ?1x,QWORD PTR ??2s" "nil" "nil") (PARALLEL ; DEST[31..0] (SET (SUBREG I32 (REG I128 (HOLE 1 XMM)) 0) (ADD I32 (MUL I32 (CONVSX I32 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 0)) (CONVSX I32 (SUBREG I16 (MEM I128 (HOLE 2)) 0))) (MUL I32 (CONVSX I32 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 1)) (CONVSX I32 (SUBREG I16 (MEM I128 (HOLE 2)) 1))))) ; DEST[63..32] (SET (SUBREG I32 (REG I128 (HOLE 1 XMM)) 1) (ADD I32 (MUL I32 (CONVSX I32 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 2)) (CONVSX I32 (SUBREG I16 (MEM I128 (HOLE 2)) 2))) (MUL I32 (CONVSX I32 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 3)) (CONVSX I32 (SUBREG I16 (MEM I128 (HOLE 2)) 3))))) ; DEST[95..64] (SET (SUBREG I32 (REG I128 (HOLE 1 XMM)) 2) (ADD I32 (MUL I32 (CONVSX I32 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 4)) (CONVSX I32 (SUBREG I16 (MEM I128 (HOLE 2)) 4))) (MUL I32 (CONVSX I32 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 5)) (CONVSX I32 (SUBREG I16 (MEM I128 (HOLE 2)) 5))))) ; DEST[127..96] (SET (SUBREG I32 (REG I128 (HOLE 1 XMM)) 3) (ADD I32 (MUL I32 (CONVSX I32 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 6)) (CONVSX I32 (SUBREG I16 (MEM I128 (HOLE 2)) 6))) (MUL I32 (CONVSX I32 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 7)) (CONVSX I32 (SUBREG I16 (MEM I128 (HOLE 2)) 7))))))) ;PMULHW mmx, mmx (DEFINST ("PMULHW ?1m, ?2m" "PMULHW %?2m,%?1m" "PMULHW ?1m, ?2m") (PARALLEL ; DEST[15..0] (SET (SUBREG I16 (REG I64 (HOLE 1 MM)) 0) (CONVIT I16 (RSHU I32 (MUL I32 (CONVSX I32 (SUBREG I16 (REG I64 (HOLE 1 MM)) 0)) (CONVSX I32 (SUBREG I16 (REG I64 (HOLE 2 MM)) 0))) (INTCONST I32 16)))) ; DEST[31..16] (SET (SUBREG I16 (REG I64 (HOLE 1 MM)) 1) (CONVIT I16 (RSHU I32 (MUL I32 (CONVSX I32 (SUBREG I16 (REG I64 (HOLE 1 MM)) 1)) (CONVSX I32 (SUBREG I16 (REG I64 (HOLE 2 MM)) 1))) (INTCONST I32 16)))) ; DEST[47..32] (SET (SUBREG I16 (REG I64 (HOLE 1 MM)) 2) (CONVIT I16 (RSHU I32 (MUL I32 (CONVSX I32 (SUBREG I16 (REG I64 (HOLE 1 MM)) 2)) (CONVSX I32 (SUBREG I16 (REG I64 (HOLE 2 MM)) 2))) (INTCONST I32 16)))) ; DEST[63..48] (SET (SUBREG I16 (REG I64 (HOLE 1 MM)) 3) (CONVIT I16 (RSHU I32 (MUL I32 (CONVSX I32 (SUBREG I16 (REG I64 (HOLE 1 MM)) 3)) (CONVSX I32 (SUBREG I16 (REG I64 (HOLE 2 MM)) 3))) (INTCONST I32 16)))))) ;PMULHW mmx, m64 (DEFINST ("PMULHW ?1m, QWORD PTR ??2s" "PMULHW ??2s,%?1m" "PMULHW ?1m, QWORD PTR ??2s") (PARALLEL ; DEST[15..0] (SET (SUBREG I16 (REG I64 (HOLE 1 MM)) 0) (CONVIT I16 (RSHU I32 (MUL I32 (CONVSX I32 (SUBREG I16 (REG I64 (HOLE 1 MM)) 0)) (CONVSX I32 (SUBREG I16 (MEM I64 (HOLE 2)) 0))) (INTCONST I32 16)))) ; DEST[31..16] (SET (SUBREG I16 (REG I64 (HOLE 1 MM)) 1) (CONVIT I16 (RSHU I32 (MUL I32 (CONVSX I32 (SUBREG I16 (REG I64 (HOLE 1 MM)) 1)) (CONVSX I32 (SUBREG I16 (MEM I64 (HOLE 2)) 1))) (INTCONST I32 16)))) ; DEST[47..32] (SET (SUBREG I16 (REG I64 (HOLE 1 MM)) 2) (CONVIT I16 (RSHU I32 (MUL I32 (CONVSX I32 (SUBREG I16 (REG I64 (HOLE 1 MM)) 2)) (CONVSX I32 (SUBREG I16 (MEM I64 (HOLE 2)) 2))) (INTCONST I32 16)))) ; DEST[63..48] (SET (SUBREG I16 (REG I64 (HOLE 1 MM)) 3) (CONVIT I16 (RSHU I32 (MUL I32 (CONVSX I32 (SUBREG I16 (REG I64 (HOLE 1 MM)) 3)) (CONVSX I32 (SUBREG I16 (MEM I64 (HOLE 2)) 3))) (INTCONST I32 16)))))) ;PMULHW xmm, xmm (DEFINST ("PMULHW ?1x, ?2x" "nil" "nil") (PARALLEL ; DEST[15..0] (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 0) (CONVIT I16 (RSHU I32 (MUL I32 (CONVSX I32 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 0)) (CONVSX I32 (SUBREG I16 (REG I128 (HOLE 2 XMM)) 0))) (INTCONST I32 16)))) ; DEST[31..16] (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 1) (CONVIT I16 (RSHU I32 (MUL I32 (CONVSX I32 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 1)) (CONVSX I32 (SUBREG I16 (REG I128 (HOLE 2 XMM)) 1))) (INTCONST I32 16)))) ; DEST[47..32] (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 2) (CONVIT I16 (RSHU I32 (MUL I32 (CONVSX I32 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 2)) (CONVSX I32 (SUBREG I16 (REG I128 (HOLE 2 XMM)) 2))) (INTCONST I32 16)))) ; DEST[63..48] (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 3) (CONVIT I16 (RSHU I32 (MUL I32 (CONVSX I32 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 3)) (CONVSX I32 (SUBREG I16 (REG I128 (HOLE 2 XMM)) 3))) (INTCONST I32 16)))) ; DEST[79..64] (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 4) (CONVIT I16 (RSHU I32 (MUL I32 (CONVSX I32 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 4)) (CONVSX I32 (SUBREG I16 (REG I128 (HOLE 2 XMM)) 4))) (INTCONST I32 16)))) ; DEST[95..80] (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 5) (CONVIT I16 (RSHU I32 (MUL I32 (CONVSX I32 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 5)) (CONVSX I32 (SUBREG I16 (REG I128 (HOLE 2 XMM)) 5))) (INTCONST I32 16)))) ; DEST[111..96] (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 6) (CONVIT I16 (RSHU I32 (MUL I32 (CONVSX I32 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 6)) (CONVSX I32 (SUBREG I16 (REG I128 (HOLE 2 XMM)) 6))) (INTCONST I32 16)))) ; DEST[127..112] (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 7) (CONVIT I16 (RSHU I32 (MUL I32 (CONVSX I32 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 7)) (CONVSX I32 (SUBREG I16 (REG I128 (HOLE 2 XMM)) 7))) (INTCONST I32 16)))))) ;PMULHW xmm, m128 (DEFINST ("PMULHW ?1x, QWORD PTR ??2s" "nil" "nil") (PARALLEL ; DEST[15..0] (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 0) (CONVIT I16 (RSHU I32 (MUL I32 (CONVSX I32 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 0)) (CONVSX I32 (SUBREG I16 (MEM I128 (HOLE 2)) 0))) (INTCONST I32 16)))) ; DEST[31..16] (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 1) (CONVIT I16 (RSHU I32 (MUL I32 (CONVSX I32 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 1)) (CONVSX I32 (SUBREG I16 (MEM I128 (HOLE 2)) 1))) (INTCONST I32 16)))) ; DEST[47..32] (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 2) (CONVIT I16 (RSHU I32 (MUL I32 (CONVSX I32 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 2)) (CONVSX I32 (SUBREG I16 (MEM I128 (HOLE 2)) 2))) (INTCONST I32 16)))) ; DEST[63..48] (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 3) (CONVIT I16 (RSHU I32 (MUL I32 (CONVSX I32 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 3)) (CONVSX I32 (SUBREG I16 (MEM I128 (HOLE 2)) 3))) (INTCONST I32 16)))) ; DEST[79..64] (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 4) (CONVIT I16 (RSHU I32 (MUL I32 (CONVSX I32 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 4)) (CONVSX I32 (SUBREG I16 (MEM I128 (HOLE 2)) 4))) (INTCONST I32 16)))) ; DEST[95..80] (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 5) (CONVIT I16 (RSHU I32 (MUL I32 (CONVSX I32 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 5)) (CONVSX I32 (SUBREG I16 (MEM I128 (HOLE 2)) 5))) (INTCONST I32 16)))) ; DEST[111..96] (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 6) (CONVIT I16 (RSHU I32 (MUL I32 (CONVSX I32 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 6)) (CONVSX I32 (SUBREG I16 (MEM I128 (HOLE 2)) 6))) (INTCONST I32 16)))) ; DEST[127..112] (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 7) (CONVIT I16 (RSHU I32 (MUL I32 (CONVSX I32 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 7)) (CONVSX I32 (SUBREG I16 (MEM I128 (HOLE 2)) 7))) (INTCONST I32 16)))))) ;PMULLW mmx, mmx (DEFINST ("PMULLW ?1m, ?2m" "PMULLW %?2m,%?1m" "PMULLW ?1m, ?2m") (PARALLEL ; DEST[15..0] (SET (SUBREG I16 (REG I64 (HOLE 1 MM)) 0) (CONVIT I16 (MUL I32 (CONVSX I32 (SUBREG I16 (REG I64 (HOLE 1 MM)) 0)) (CONVSX I32 (SUBREG I16 (REG I64 (HOLE 2 MM)) 0))))) ; DEST[31..16] (SET (SUBREG I16 (REG I64 (HOLE 1 MM)) 1) (CONVIT I16 (MUL I32 (CONVSX I32 (SUBREG I16 (REG I64 (HOLE 1 MM)) 1)) (CONVSX I32 (SUBREG I16 (REG I64 (HOLE 2 MM)) 1))))) ; DEST[47..32] (SET (SUBREG I16 (REG I64 (HOLE 1 MM)) 2) (CONVIT I16 (MUL I32 (CONVSX I32 (SUBREG I16 (REG I64 (HOLE 1 MM)) 2)) (CONVSX I32 (SUBREG I16 (REG I64 (HOLE 2 MM)) 2))))) ; DEST[63..48] (SET (SUBREG I16 (REG I64 (HOLE 1 MM)) 3) (CONVIT I16 (MUL I32 (CONVSX I32 (SUBREG I16 (REG I64 (HOLE 1 MM)) 3)) (CONVSX I32 (SUBREG I16 (REG I64 (HOLE 2 MM)) 3))))))) ;PMULLW mmx, m64 (DEFINST ("PMULLW ?1m, QWORD PTR ??2s" "PMULLW ??2s,%?1m" "PMULLW ?1m, QWORD PTR ??2s") (PARALLEL ; DEST[15..0] (SET (SUBREG I16 (REG I64 (HOLE 1 MM)) 0) (CONVIT I16 (MUL I32 (CONVSX I32 (SUBREG I16 (REG I64 (HOLE 1 MM)) 0)) (CONVSX I32 (SUBREG I16 (MEM I64 (HOLE 2)) 0))))) ; DEST[31..16] (SET (SUBREG I16 (REG I64 (HOLE 1 MM)) 1) (CONVIT I16 (MUL I32 (CONVSX I32 (SUBREG I16 (REG I64 (HOLE 1 MM)) 1)) (CONVSX I32 (SUBREG I16 (MEM I64 (HOLE 2)) 1))))) ; DEST[47..32] (SET (SUBREG I16 (REG I64 (HOLE 1 MM)) 2) (CONVIT I16 (MUL I32 (CONVSX I32 (SUBREG I16 (REG I64 (HOLE 1 MM)) 2)) (CONVSX I32 (SUBREG I16 (MEM I64 (HOLE 2)) 2))))) ; DEST[63..48] (SET (SUBREG I16 (REG I64 (HOLE 1 MM)) 3) (CONVIT I16 (MUL I32 (CONVSX I32 (SUBREG I16 (REG I64 (HOLE 1 MM)) 3)) (CONVSX I32 (SUBREG I16 (MEM I64 (HOLE 2)) 3))))))) ;PMULLW xmm, xmm (DEFINST ("PMULLW ?1x, ?2x" "nil" "nil") (PARALLEL ; DEST[15..0] (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 0) (CONVIT I16 (MUL I32 (CONVSX I32 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 0)) (CONVSX I32 (SUBREG I16 (REG I128 (HOLE 2 XMM)) 0))))) ; DEST[31..16] (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 1) (CONVIT I16 (MUL I32 (CONVSX I32 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 1)) (CONVSX I32 (SUBREG I16 (REG I128 (HOLE 2 XMM)) 1))))) ; DEST[47..32] (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 2) (CONVIT I16 (MUL I32 (CONVSX I32 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 2)) (CONVSX I32 (SUBREG I16 (REG I128 (HOLE 2 XMM)) 2))))) ; DEST[63..48] (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 3) (CONVIT I16 (MUL I32 (CONVSX I32 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 3)) (CONVSX I32 (SUBREG I16 (REG I128 (HOLE 2 XMM)) 3))))) ; DEST[79..64] (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 4) (CONVIT I16 (MUL I32 (CONVSX I32 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 4)) (CONVSX I32 (SUBREG I16 (REG I128 (HOLE 2 XMM)) 4))))) ; DEST[95..80] (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 5) (CONVIT I16 (MUL I32 (CONVSX I32 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 5)) (CONVSX I32 (SUBREG I16 (REG I128 (HOLE 2 XMM)) 5))))) ; DEST[111..96] (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 6) (CONVIT I16 (MUL I32 (CONVSX I32 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 6)) (CONVSX I32 (SUBREG I16 (REG I128 (HOLE 2 XMM)) 6))))) ; DEST[127..112] (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 7) (CONVIT I16 (MUL I32 (CONVSX I32 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 7)) (CONVSX I32 (SUBREG I16 (REG I128 (HOLE 2 XMM)) 7))))))) ;PMULLW xmm, m128 (DEFINST ("PMULLW ?1x, QWORD PTR ??2s" "nil" "nil") (PARALLEL ; DEST[15..0] (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 0) (CONVIT I16 (MUL I32 (CONVSX I32 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 0)) (CONVSX I32 (SUBREG I16 (MEM I128 (HOLE 2)) 0))))) ; DEST[31..16] (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 1) (CONVIT I16 (MUL I32 (CONVSX I32 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 1)) (CONVSX I32 (SUBREG I16 (MEM I128 (HOLE 2)) 1))))) ; DEST[47..32] (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 2) (CONVIT I16 (MUL I32 (CONVSX I32 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 2)) (CONVSX I32 (SUBREG I16 (MEM I128 (HOLE 2)) 2))))) ; DEST[63..48] (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 3) (CONVIT I16 (MUL I32 (CONVSX I32 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 3)) (CONVSX I32 (SUBREG I16 (MEM I128 (HOLE 2)) 3))))) ; DEST[79..64] (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 4) (CONVIT I16 (MUL I32 (CONVSX I32 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 4)) (CONVSX I32 (SUBREG I16 (MEM I128 (HOLE 2)) 4))))) ; DEST[95..80] (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 5) (CONVIT I16 (MUL I32 (CONVSX I32 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 5)) (CONVSX I32 (SUBREG I16 (MEM I128 (HOLE 2)) 5))))) ; DEST[111..96] (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 6) (CONVIT I16 (MUL I32 (CONVSX I32 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 6)) (CONVSX I32 (SUBREG I16 (MEM I128 (HOLE 2)) 6))))) ; DEST[127..112] (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 7) (CONVIT I16 (MUL I32 (CONVSX I32 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 7)) (CONVSX I32 (SUBREG I16 (MEM I128 (HOLE 2)) 7))))))) ;PSUBB mmx, mmx (DEFINST ("PSUBB ?1m, ?2m" "PSUBB %?2m,%?1m" "PSUBB ?1m, ?2m") (PARALLEL (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 0) (SUB I8 (SUBREG I8 (REG I64 (HOLE 1 MM)) 0) (SUBREG I8 (REG I64 (HOLE 2 MM)) 0))) (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 1) (SUB I8 (SUBREG I8 (REG I64 (HOLE 1 MM)) 1) (SUBREG I8 (REG I64 (HOLE 2 MM)) 1))) (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 2) (SUB I8 (SUBREG I8 (REG I64 (HOLE 1 MM)) 2) (SUBREG I8 (REG I64 (HOLE 2 MM)) 2))) (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 3) (SUB I8 (SUBREG I8 (REG I64 (HOLE 1 MM)) 3) (SUBREG I8 (REG I64 (HOLE 2 MM)) 3))) (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 4) (SUB I8 (SUBREG I8 (REG I64 (HOLE 1 MM)) 4) (SUBREG I8 (REG I64 (HOLE 2 MM)) 4))) (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 5) (SUB I8 (SUBREG I8 (REG I64 (HOLE 1 MM)) 5) (SUBREG I8 (REG I64 (HOLE 2 MM)) 5))) (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 6) (SUB I8 (SUBREG I8 (REG I64 (HOLE 1 MM)) 6) (SUBREG I8 (REG I64 (HOLE 2 MM)) 6))) (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 7) (SUB I8 (SUBREG I8 (REG I64 (HOLE 1 MM)) 7) (SUBREG I8 (REG I64 (HOLE 2 MM)) 7))))) ;PSUBB mmx, m64 (DEFINST ("PSUBB ?1m, QWORD PTR ??2s" "PSUBB ??2s,%?1m" "PSUBB ?1m, QWORD PTR ??2s") (PARALLEL (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 0) (SUB I8 (SUBREG I8 (REG I64 (HOLE 1 MM)) 0) (SUBREG I8 (MEM I64 (HOLE 2)) 0))) (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 1) (SUB I8 (SUBREG I8 (REG I64 (HOLE 1 MM)) 1) (SUBREG I8 (MEM I64 (HOLE 2)) 1))) (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 2) (SUB I8 (SUBREG I8 (REG I64 (HOLE 1 MM)) 2) (SUBREG I8 (MEM I64 (HOLE 2)) 2))) (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 3) (SUB I8 (SUBREG I8 (REG I64 (HOLE 1 MM)) 3) (SUBREG I8 (MEM I64 (HOLE 2)) 3))) (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 4) (SUB I8 (SUBREG I8 (REG I64 (HOLE 1 MM)) 4) (SUBREG I8 (MEM I64 (HOLE 2)) 4))) (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 5) (SUB I8 (SUBREG I8 (REG I64 (HOLE 1 MM)) 5) (SUBREG I8 (MEM I64 (HOLE 2)) 5))) (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 6) (SUB I8 (SUBREG I8 (REG I64 (HOLE 1 MM)) 6) (SUBREG I8 (MEM I64 (HOLE 2)) 6))) (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 7) (SUB I8 (SUBREG I8 (REG I64 (HOLE 1 MM)) 7) (SUBREG I8 (MEM I64 (HOLE 2)) 7))))) ;PSUBB xmm, xmm (DEFINST ("PSUBB ?1x, ?2x" "nil" "nil") (PARALLEL (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 0) (SUB I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 0) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 0))) (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 1) (SUB I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 1) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 1))) (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 2) (SUB I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 2) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 2))) (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 3) (SUB I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 3) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 3))) (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 4) (SUB I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 4) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 4))) (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 5) (SUB I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 5) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 5))) (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 6) (SUB I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 6) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 6))) (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 7) (SUB I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 7) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 7))) (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 8) (SUB I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 8) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 8))) (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 9) (SUB I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 9) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 9))) (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 10) (SUB I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 10) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 10))) (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 11) (SUB I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 11) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 11))) (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 12) (SUB I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 12) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 12))) (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 13) (SUB I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 13) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 13))) (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 14) (SUB I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 14) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 14))) (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 15) (SUB I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 15) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 15))))) ;PSUBB xmm, m128 (DEFINST ("PSUBB ?1x, QWORD PTR ??2s" "nil" "nil") (PARALLEL (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 0) (SUB I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 0) (SUBREG I8 (MEM I128 (HOLE 2)) 0))) (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 1) (SUB I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 1) (SUBREG I8 (MEM I128 (HOLE 2)) 1))) (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 2) (SUB I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 2) (SUBREG I8 (MEM I128 (HOLE 2)) 2))) (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 3) (SUB I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 3) (SUBREG I8 (MEM I128 (HOLE 2)) 3))) (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 4) (SUB I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 4) (SUBREG I8 (MEM I128 (HOLE 2)) 4))) (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 5) (SUB I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 5) (SUBREG I8 (MEM I128 (HOLE 2)) 5))) (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 6) (SUB I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 6) (SUBREG I8 (MEM I128 (HOLE 2)) 6))) (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 7) (SUB I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 7) (SUBREG I8 (MEM I128 (HOLE 2)) 7))) (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 8) (SUB I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 8) (SUBREG I8 (MEM I128 (HOLE 2)) 8))) (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 9) (SUB I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 9) (SUBREG I8 (MEM I128 (HOLE 2)) 9))) (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 10) (SUB I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 10) (SUBREG I8 (MEM I128 (HOLE 2)) 10))) (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 11) (SUB I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 11) (SUBREG I8 (MEM I128 (HOLE 2)) 11))) (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 12) (SUB I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 12) (SUBREG I8 (MEM I128 (HOLE 2)) 12))) (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 13) (SUB I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 13) (SUBREG I8 (MEM I128 (HOLE 2)) 13))) (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 14) (SUB I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 14) (SUBREG I8 (MEM I128 (HOLE 2)) 14))) (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 15) (SUB I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 15) (SUBREG I8 (MEM I128 (HOLE 2)) 15))))) ;PSUBD mmx, mmx (DEFINST ("PSUBD ?1m, ?2m" "PSUBD %?2m,%?1m" "PSUBD ?1m, ?2m") (PARALLEL (SET (SUBREG I32 (REG I64 (HOLE 1 MM)) 0) (SUB I32 (SUBREG I32 (REG I64 (HOLE 1 MM)) 0) (SUBREG I32 (REG I64 (HOLE 2 MM)) 0))) (SET (SUBREG I32 (REG I64 (HOLE 1 MM)) 1) (SUB I32 (SUBREG I32 (REG I64 (HOLE 1 MM)) 1) (SUBREG I32 (REG I64 (HOLE 2 MM)) 1))))) ;PSUBD mmx, m64 (DEFINST ("PSUBD ?1m, QWORD PTR ??2s" "PSUBD ??2s,%?1m" "PSUBD ?1m, QWORD PTR ??2s") (PARALLEL (SET (SUBREG I32 (REG I64 (HOLE 1 MM)) 0) (SUB I32 (SUBREG I32 (REG I64 (HOLE 1 MM)) 0) (SUBREG I32 (MEM I64 (HOLE 2)) 0))) (SET (SUBREG I32 (REG I64 (HOLE 1 MM)) 1) (SUB I32 (SUBREG I32 (REG I64 (HOLE 1 MM)) 1) (SUBREG I32 (MEM I64 (HOLE 2)) 1))))) ;PSUBD xmm, xmm (DEFINST ("PSUBD ?1x, ?2x" "nil" "nil") (PARALLEL (SET (SUBREG I32 (REG I128 (HOLE 1 XMM)) 0) (SUB I32 (SUBREG I32 (REG I128 (HOLE 1 XMM)) 0) (SUBREG I32 (REG I128 (HOLE 2 XMM)) 0))) (SET (SUBREG I32 (REG I128 (HOLE 1 XMM)) 1) (SUB I32 (SUBREG I32 (REG I128 (HOLE 1 XMM)) 1) (SUBREG I32 (REG I128 (HOLE 2 XMM)) 1))) (SET (SUBREG I32 (REG I128 (HOLE 1 XMM)) 2) (SUB I32 (SUBREG I32 (REG I128 (HOLE 1 XMM)) 2) (SUBREG I32 (REG I128 (HOLE 2 XMM)) 2))) (SET (SUBREG I32 (REG I128 (HOLE 1 XMM)) 3) (SUB I32 (SUBREG I32 (REG I128 (HOLE 1 XMM)) 3) (SUBREG I32 (REG I128 (HOLE 2 XMM)) 3))))) ;PSUBD xmm, m128 (DEFINST ("PSUBD ?1x, QWORD PTR ??2s" "nil" "nil") (PARALLEL (SET (SUBREG I32 (REG I128 (HOLE 1 XMM)) 0) (SUB I32 (SUBREG I32 (REG I128 (HOLE 1 XMM)) 0) (SUBREG I32 (MEM I128 (HOLE 2)) 0))) (SET (SUBREG I32 (REG I128 (HOLE 1 XMM)) 1) (SUB I32 (SUBREG I32 (REG I128 (HOLE 1 XMM)) 1) (SUBREG I32 (MEM I128 (HOLE 2)) 1))) (SET (SUBREG I32 (REG I128 (HOLE 1 XMM)) 2) (SUB I32 (SUBREG I32 (REG I128 (HOLE 1 XMM)) 2) (SUBREG I32 (MEM I128 (HOLE 2)) 2))) (SET (SUBREG I32 (REG I128 (HOLE 1 XMM)) 3) (SUB I32 (SUBREG I32 (REG I128 (HOLE 1 XMM)) 3) (SUBREG I32 (MEM I128 (HOLE 2)) 3))))) ;PSUBSB mmx, mmx (DEFINST ("PSUBSB ?1m, ?2m" "PSUBSB %?2m,%?1m" "PSUBSB ?1m, ?2m") (PARALLEL ; DEST[7..0] (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 0) (IFTHENELSE I8 (OVERFLOW I1 (SUBREG I8 (REG I64 (HOLE 1 MM)) 0) (BNOT I8 (SUBREG I8 (REG I64 (HOLE 2 MM)) 0)) (INTCONST I1 1)) (IFTHENELSE I8 (TSTGES I1 (SUBREG I8 (REG I64 (HOLE 1 MM)) 0) (INTCONST I8 0)) (INTCONST I8 #x7F) (INTCONST I8 #x80)) (SUB I8 (SUBREG I8 (REG I64 (HOLE 1 MM)) 0) (SUBREG I8 (REG I64 (HOLE 2 MM)) 0)))) ; DEST[15..8] (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 1) (IFTHENELSE I8 (OVERFLOW I1 (SUBREG I8 (REG I64 (HOLE 1 MM)) 1) (BNOT I8 (SUBREG I8 (REG I64 (HOLE 2 MM)) 1)) (INTCONST I1 1)) (IFTHENELSE I8 (TSTGES I1 (SUBREG I8 (REG I64 (HOLE 1 MM)) 1) (INTCONST I8 0)) (INTCONST I8 #x7F) (INTCONST I8 #x80)) (SUB I8 (SUBREG I8 (REG I64 (HOLE 1 MM)) 1) (SUBREG I8 (REG I64 (HOLE 2 MM)) 1)))) ; DEST[23..16] (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 2) (IFTHENELSE I8 (OVERFLOW I1 (SUBREG I8 (REG I64 (HOLE 1 MM)) 2) (BNOT I8 (SUBREG I8 (REG I64 (HOLE 2 MM)) 2)) (INTCONST I1 1)) (IFTHENELSE I8 (TSTGES I1 (SUBREG I8 (REG I64 (HOLE 1 MM)) 2) (INTCONST I8 0)) (INTCONST I8 #x7F) (INTCONST I8 #x80)) (SUB I8 (SUBREG I8 (REG I64 (HOLE 1 MM)) 2) (SUBREG I8 (REG I64 (HOLE 2 MM)) 2)))) ; DEST[31..24] (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 3) (IFTHENELSE I8 (OVERFLOW I1 (SUBREG I8 (REG I64 (HOLE 1 MM)) 3) (BNOT I8 (SUBREG I8 (REG I64 (HOLE 2 MM)) 3)) (INTCONST I1 1)) (IFTHENELSE I8 (TSTGES I1 (SUBREG I8 (REG I64 (HOLE 1 MM)) 3) (INTCONST I8 0)) (INTCONST I8 #x7F) (INTCONST I8 #x80)) (SUB I8 (SUBREG I8 (REG I64 (HOLE 1 MM)) 3) (SUBREG I8 (REG I64 (HOLE 2 MM)) 3)))) ; DEST[39..32] (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 4) (IFTHENELSE I8 (OVERFLOW I1 (SUBREG I8 (REG I64 (HOLE 1 MM)) 4) (BNOT I8 (SUBREG I8 (REG I64 (HOLE 2 MM)) 4)) (INTCONST I1 1)) (IFTHENELSE I8 (TSTGES I1 (SUBREG I8 (REG I64 (HOLE 1 MM)) 4) (INTCONST I8 0)) (INTCONST I8 #x7F) (INTCONST I8 #x80)) (SUB I8 (SUBREG I8 (REG I64 (HOLE 1 MM)) 4) (SUBREG I8 (REG I64 (HOLE 2 MM)) 4)))) ; DEST[47..40] (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 5) (IFTHENELSE I8 (OVERFLOW I1 (SUBREG I8 (REG I64 (HOLE 1 MM)) 5) (BNOT I8 (SUBREG I8 (REG I64 (HOLE 2 MM)) 5)) (INTCONST I1 1)) (IFTHENELSE I8 (TSTGES I1 (SUBREG I8 (REG I64 (HOLE 1 MM)) 5) (INTCONST I8 0)) (INTCONST I8 #x7F) (INTCONST I8 #x80)) (SUB I8 (SUBREG I8 (REG I64 (HOLE 1 MM)) 5) (SUBREG I8 (REG I64 (HOLE 2 MM)) 5)))) ; DEST[55..48] (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 6) (IFTHENELSE I8 (OVERFLOW I1 (SUBREG I8 (REG I64 (HOLE 1 MM)) 6) (BNOT I8 (SUBREG I8 (REG I64 (HOLE 2 MM)) 6)) (INTCONST I1 1)) (IFTHENELSE I8 (TSTGES I1 (SUBREG I8 (REG I64 (HOLE 1 MM)) 6) (INTCONST I8 0)) (INTCONST I8 #x7F) (INTCONST I8 #x80)) (SUB I8 (SUBREG I8 (REG I64 (HOLE 1 MM)) 6) (SUBREG I8 (REG I64 (HOLE 2 MM)) 6)))) ; DEST[63..56] (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 7) (IFTHENELSE I8 (OVERFLOW I1 (SUBREG I8 (REG I64 (HOLE 1 MM)) 7) (BNOT I8 (SUBREG I8 (REG I64 (HOLE 2 MM)) 7)) (INTCONST I1 1)) (IFTHENELSE I8 (TSTGES I1 (SUBREG I8 (REG I64 (HOLE 1 MM)) 7) (INTCONST I8 0)) (INTCONST I8 #x7F) (INTCONST I8 #x80)) (SUB I8 (SUBREG I8 (REG I64 (HOLE 1 MM)) 7) (SUBREG I8 (REG I64 (HOLE 2 MM)) 7)))))) ;PSUBSB mmx, m64 (DEFINST ("PSUBSB ?1m, QWORD PTR ??2s" "PSUBSB ??2s,%?1m" "PSUBSB ?1m, QWORD PTR ??2s") (PARALLEL ; DEST[7..0] (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 0) (IFTHENELSE I8 (OVERFLOW I1 (SUBREG I8 (REG I64 (HOLE 1 MM)) 0) (BNOT I8 (SUBREG I8 (MEM I64 (HOLE 2)) 0)) (INTCONST I1 1)) (IFTHENELSE I8 (TSTGES I1 (SUBREG I8 (REG I64 (HOLE 1 MM)) 0) (INTCONST I8 0)) (INTCONST I8 #x7F) (INTCONST I8 #x80)) (SUB I8 (SUBREG I8 (REG I64 (HOLE 1 MM)) 0) (SUBREG I8 (MEM I64 (HOLE 2)) 0)))) ; DEST[15..8] (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 1) (IFTHENELSE I8 (OVERFLOW I1 (SUBREG I8 (REG I64 (HOLE 1 MM)) 1) (BNOT I8 (SUBREG I8 (MEM I64 (HOLE 2)) 1)) (INTCONST I1 1)) (IFTHENELSE I8 (TSTGES I1 (SUBREG I8 (REG I64 (HOLE 1 MM)) 1) (INTCONST I8 0)) (INTCONST I8 #x7F) (INTCONST I8 #x80)) (SUB I8 (SUBREG I8 (REG I64 (HOLE 1 MM)) 1) (SUBREG I8 (MEM I64 (HOLE 2)) 1)))) ; DEST[23..16] (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 2) (IFTHENELSE I8 (OVERFLOW I1 (SUBREG I8 (REG I64 (HOLE 1 MM)) 2) (BNOT I8 (SUBREG I8 (MEM I64 (HOLE 2)) 2)) (INTCONST I1 1)) (IFTHENELSE I8 (TSTGES I1 (SUBREG I8 (REG I64 (HOLE 1 MM)) 2) (INTCONST I8 0)) (INTCONST I8 #x7F) (INTCONST I8 #x80)) (SUB I8 (SUBREG I8 (REG I64 (HOLE 1 MM)) 2) (SUBREG I8 (MEM I64 (HOLE 2)) 2)))) ; DEST[31..24] (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 3) (IFTHENELSE I8 (OVERFLOW I1 (SUBREG I8 (REG I64 (HOLE 1 MM)) 3) (BNOT I8 (SUBREG I8 (MEM I64 (HOLE 2)) 3)) (INTCONST I1 1)) (IFTHENELSE I8 (TSTGES I1 (SUBREG I8 (REG I64 (HOLE 1 MM)) 3) (INTCONST I8 0)) (INTCONST I8 #x7F) (INTCONST I8 #x80)) (SUB I8 (SUBREG I8 (REG I64 (HOLE 1 MM)) 3) (SUBREG I8 (MEM I64 (HOLE 2)) 3)))) ; DEST[39..32] (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 4) (IFTHENELSE I8 (OVERFLOW I1 (SUBREG I8 (REG I64 (HOLE 1 MM)) 4) (BNOT I8 (SUBREG I8 (MEM I64 (HOLE 2)) 4)) (INTCONST I1 1)) (IFTHENELSE I8 (TSTGES I1 (SUBREG I8 (REG I64 (HOLE 1 MM)) 4) (INTCONST I8 0)) (INTCONST I8 #x7F) (INTCONST I8 #x80)) (SUB I8 (SUBREG I8 (REG I64 (HOLE 1 MM)) 4) (SUBREG I8 (MEM I64 (HOLE 2)) 4)))) ; DEST[47..40] (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 5) (IFTHENELSE I8 (OVERFLOW I1 (SUBREG I8 (REG I64 (HOLE 1 MM)) 5) (BNOT I8 (SUBREG I8 (MEM I64 (HOLE 2)) 5)) (INTCONST I1 1)) (IFTHENELSE I8 (TSTGES I1 (SUBREG I8 (REG I64 (HOLE 1 MM)) 5) (INTCONST I8 0)) (INTCONST I8 #x7F) (INTCONST I8 #x80)) (SUB I8 (SUBREG I8 (REG I64 (HOLE 1 MM)) 5) (SUBREG I8 (MEM I64 (HOLE 2)) 5)))) ; DEST[55..48] (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 6) (IFTHENELSE I8 (OVERFLOW I1 (SUBREG I8 (REG I64 (HOLE 1 MM)) 6) (BNOT I8 (SUBREG I8 (MEM I64 (HOLE 2)) 6)) (INTCONST I1 1)) (IFTHENELSE I8 (TSTGES I1 (SUBREG I8 (REG I64 (HOLE 1 MM)) 6) (INTCONST I8 0)) (INTCONST I8 #x7F) (INTCONST I8 #x80)) (SUB I8 (SUBREG I8 (REG I64 (HOLE 1 MM)) 6) (SUBREG I8 (MEM I64 (HOLE 2)) 6)))) ; DEST[63..56] (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 7) (IFTHENELSE I8 (OVERFLOW I1 (SUBREG I8 (REG I64 (HOLE 1 MM)) 7) (BNOT I8 (SUBREG I8 (MEM I64 (HOLE 2)) 7)) (INTCONST I1 1)) (IFTHENELSE I8 (TSTGES I1 (SUBREG I8 (REG I64 (HOLE 1 MM)) 7) (INTCONST I8 0)) (INTCONST I8 #x7F) (INTCONST I8 #x80)) (SUB I8 (SUBREG I8 (REG I64 (HOLE 1 MM)) 7) (SUBREG I8 (MEM I64 (HOLE 2)) 7)))))) ;PSUBSB xmm, xmm (DEFINST ("PSUBSB ?1x, ?2x" "nil" "nil") (PARALLEL ; DEST[7..0] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 0) (IFTHENELSE I8 (OVERFLOW I1 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 0) (BNOT I8 (SUBREG I8 (REG I128 (HOLE 2 XMM)) 0)) (INTCONST I1 1)) (IFTHENELSE I8 (TSTGES I1 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 0) (INTCONST I8 0)) (INTCONST I8 #x7F) (INTCONST I8 #x80)) (SUB I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 0) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 0)))) ; DEST[15..8] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 1) (IFTHENELSE I8 (OVERFLOW I1 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 1) (BNOT I8 (SUBREG I8 (REG I128 (HOLE 2 XMM)) 1)) (INTCONST I1 1)) (IFTHENELSE I8 (TSTGES I1 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 1) (INTCONST I8 0)) (INTCONST I8 #x7F) (INTCONST I8 #x80)) (SUB I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 1) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 1)))) ; DEST[23..16] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 2) (IFTHENELSE I8 (OVERFLOW I1 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 2) (BNOT I8 (SUBREG I8 (REG I128 (HOLE 2 XMM)) 2)) (INTCONST I1 1)) (IFTHENELSE I8 (TSTGES I1 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 2) (INTCONST I8 0)) (INTCONST I8 #x7F) (INTCONST I8 #x80)) (SUB I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 2) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 2)))) ; DEST[31..24] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 3) (IFTHENELSE I8 (OVERFLOW I1 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 3) (BNOT I8 (SUBREG I8 (REG I128 (HOLE 2 XMM)) 3)) (INTCONST I1 1)) (IFTHENELSE I8 (TSTGES I1 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 3) (INTCONST I8 0)) (INTCONST I8 #x7F) (INTCONST I8 #x80)) (SUB I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 3) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 3)))) ; DEST[39..32] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 4) (IFTHENELSE I8 (OVERFLOW I1 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 4) (BNOT I8 (SUBREG I8 (REG I128 (HOLE 2 XMM)) 4)) (INTCONST I1 1)) (IFTHENELSE I8 (TSTGES I1 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 4) (INTCONST I8 0)) (INTCONST I8 #x7F) (INTCONST I8 #x80)) (SUB I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 4) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 4)))) ; DEST[47..40] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 5) (IFTHENELSE I8 (OVERFLOW I1 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 5) (BNOT I8 (SUBREG I8 (REG I128 (HOLE 2 XMM)) 5)) (INTCONST I1 1)) (IFTHENELSE I8 (TSTGES I1 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 5) (INTCONST I8 0)) (INTCONST I8 #x7F) (INTCONST I8 #x80)) (SUB I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 5) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 5)))) ; DEST[55..48] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 6) (IFTHENELSE I8 (OVERFLOW I1 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 6) (BNOT I8 (SUBREG I8 (REG I128 (HOLE 2 XMM)) 6)) (INTCONST I1 1)) (IFTHENELSE I8 (TSTGES I1 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 6) (INTCONST I8 0)) (INTCONST I8 #x7F) (INTCONST I8 #x80)) (SUB I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 6) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 6)))) ; DEST[63..56] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 7) (IFTHENELSE I8 (OVERFLOW I1 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 7) (BNOT I8 (SUBREG I8 (REG I128 (HOLE 2 XMM)) 7)) (INTCONST I1 1)) (IFTHENELSE I8 (TSTGES I1 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 7) (INTCONST I8 0)) (INTCONST I8 #x7F) (INTCONST I8 #x80)) (SUB I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 7) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 7)))) ; DEST[71..64] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 8) (IFTHENELSE I8 (OVERFLOW I1 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 8) (BNOT I8 (SUBREG I8 (REG I128 (HOLE 2 XMM)) 8)) (INTCONST I1 1)) (IFTHENELSE I8 (TSTGES I1 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 8) (INTCONST I8 0)) (INTCONST I8 #x7F) (INTCONST I8 #x80)) (SUB I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 8) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 8)))) ; DEST[79..72] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 9) (IFTHENELSE I8 (OVERFLOW I1 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 9) (BNOT I8 (SUBREG I8 (REG I128 (HOLE 2 XMM)) 9)) (INTCONST I1 1)) (IFTHENELSE I8 (TSTGES I1 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 9) (INTCONST I8 0)) (INTCONST I8 #x7F) (INTCONST I8 #x80)) (SUB I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 9) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 9)))) ; DEST[87..80] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 10) (IFTHENELSE I8 (OVERFLOW I1 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 10) (BNOT I8 (SUBREG I8 (REG I128 (HOLE 2 XMM)) 10)) (INTCONST I1 1)) (IFTHENELSE I8 (TSTGES I1 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 10) (INTCONST I8 0)) (INTCONST I8 #x7F) (INTCONST I8 #x80)) (SUB I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 10) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 10)))) ; DEST[95..88] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 11) (IFTHENELSE I8 (OVERFLOW I1 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 11) (BNOT I8 (SUBREG I8 (REG I128 (HOLE 2 XMM)) 11)) (INTCONST I1 1)) (IFTHENELSE I8 (TSTGES I1 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 11) (INTCONST I8 0)) (INTCONST I8 #x7F) (INTCONST I8 #x80)) (SUB I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 11) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 11)))) ; DEST[103..96] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 12) (IFTHENELSE I8 (OVERFLOW I1 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 12) (BNOT I8 (SUBREG I8 (REG I128 (HOLE 2 XMM)) 12)) (INTCONST I1 1)) (IFTHENELSE I8 (TSTGES I1 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 12) (INTCONST I8 0)) (INTCONST I8 #x7F) (INTCONST I8 #x80)) (SUB I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 12) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 12)))) ; DEST[111..104] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 13) (IFTHENELSE I8 (OVERFLOW I1 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 13) (BNOT I8 (SUBREG I8 (REG I128 (HOLE 2 XMM)) 13)) (INTCONST I1 1)) (IFTHENELSE I8 (TSTGES I1 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 13) (INTCONST I8 0)) (INTCONST I8 #x7F) (INTCONST I8 #x80)) (SUB I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 13) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 13)))) ; DEST[119..112] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 14) (IFTHENELSE I8 (OVERFLOW I1 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 14) (BNOT I8 (SUBREG I8 (REG I128 (HOLE 2 XMM)) 14)) (INTCONST I1 1)) (IFTHENELSE I8 (TSTGES I1 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 14) (INTCONST I8 0)) (INTCONST I8 #x7F) (INTCONST I8 #x80)) (SUB I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 14) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 14)))) ; DEST[127..120] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 15) (IFTHENELSE I8 (OVERFLOW I1 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 15) (BNOT I8 (SUBREG I8 (REG I128 (HOLE 2 XMM)) 15)) (INTCONST I1 1)) (IFTHENELSE I8 (TSTGES I1 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 15) (INTCONST I8 0)) (INTCONST I8 #x7F) (INTCONST I8 #x80)) (SUB I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 15) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 15)))))) ;PSUBSB xmm, m128 (DEFINST ("PSUBSB ?1x, QWORD PTR ??2s" "nil" "nil") (PARALLEL ; DEST[7..0] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 0) (IFTHENELSE I8 (OVERFLOW I1 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 0) (BNOT I8 (SUBREG I8 (MEM I128 (HOLE 2)) 0)) (INTCONST I1 1)) (IFTHENELSE I8 (TSTGES I1 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 0) (INTCONST I8 0)) (INTCONST I8 #x7F) (INTCONST I8 #x80)) (SUB I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 0) (SUBREG I8 (MEM I128 (HOLE 2)) 0)))) ; DEST[15..8] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 1) (IFTHENELSE I8 (OVERFLOW I1 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 1) (BNOT I8 (SUBREG I8 (MEM I128 (HOLE 2)) 1)) (INTCONST I1 1)) (IFTHENELSE I8 (TSTGES I1 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 1) (INTCONST I8 0)) (INTCONST I8 #x7F) (INTCONST I8 #x80)) (SUB I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 1) (SUBREG I8 (MEM I128 (HOLE 2)) 1)))) ; DEST[23..16] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 2) (IFTHENELSE I8 (OVERFLOW I1 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 2) (BNOT I8 (SUBREG I8 (MEM I128 (HOLE 2)) 2)) (INTCONST I1 1)) (IFTHENELSE I8 (TSTGES I1 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 2) (INTCONST I8 0)) (INTCONST I8 #x7F) (INTCONST I8 #x80)) (SUB I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 2) (SUBREG I8 (MEM I128 (HOLE 2)) 2)))) ; DEST[31..24] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 3) (IFTHENELSE I8 (OVERFLOW I1 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 3) (BNOT I8 (SUBREG I8 (MEM I128 (HOLE 2)) 3)) (INTCONST I1 1)) (IFTHENELSE I8 (TSTGES I1 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 3) (INTCONST I8 0)) (INTCONST I8 #x7F) (INTCONST I8 #x80)) (SUB I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 3) (SUBREG I8 (MEM I128 (HOLE 2)) 3)))) ; DEST[39..32] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 4) (IFTHENELSE I8 (OVERFLOW I1 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 4) (BNOT I8 (SUBREG I8 (MEM I128 (HOLE 2)) 4)) (INTCONST I1 1)) (IFTHENELSE I8 (TSTGES I1 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 4) (INTCONST I8 0)) (INTCONST I8 #x7F) (INTCONST I8 #x80)) (SUB I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 4) (SUBREG I8 (MEM I128 (HOLE 2)) 4)))) ; DEST[47..40] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 5) (IFTHENELSE I8 (OVERFLOW I1 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 5) (BNOT I8 (SUBREG I8 (MEM I128 (HOLE 2)) 5)) (INTCONST I1 1)) (IFTHENELSE I8 (TSTGES I1 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 5) (INTCONST I8 0)) (INTCONST I8 #x7F) (INTCONST I8 #x80)) (SUB I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 5) (SUBREG I8 (MEM I128 (HOLE 2)) 5)))) ; DEST[55..48] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 6) (IFTHENELSE I8 (OVERFLOW I1 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 6) (BNOT I8 (SUBREG I8 (MEM I128 (HOLE 2)) 6)) (INTCONST I1 1)) (IFTHENELSE I8 (TSTGES I1 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 6) (INTCONST I8 0)) (INTCONST I8 #x7F) (INTCONST I8 #x80)) (SUB I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 6) (SUBREG I8 (MEM I128 (HOLE 2)) 6)))) ; DEST[63..56] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 7) (IFTHENELSE I8 (OVERFLOW I1 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 7) (BNOT I8 (SUBREG I8 (MEM I128 (HOLE 2)) 7)) (INTCONST I1 1)) (IFTHENELSE I8 (TSTGES I1 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 7) (INTCONST I8 0)) (INTCONST I8 #x7F) (INTCONST I8 #x80)) (SUB I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 7) (SUBREG I8 (MEM I128 (HOLE 2)) 7)))) ; DEST[71..64] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 8) (IFTHENELSE I8 (OVERFLOW I1 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 8) (BNOT I8 (SUBREG I8 (MEM I128 (HOLE 2)) 8)) (INTCONST I1 1)) (IFTHENELSE I8 (TSTGES I1 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 8) (INTCONST I8 0)) (INTCONST I8 #x7F) (INTCONST I8 #x80)) (SUB I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 8) (SUBREG I8 (MEM I128 (HOLE 2)) 8)))) ; DEST[79..72] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 9) (IFTHENELSE I8 (OVERFLOW I1 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 9) (BNOT I8 (SUBREG I8 (MEM I128 (HOLE 2)) 9)) (INTCONST I1 1)) (IFTHENELSE I8 (TSTGES I1 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 9) (INTCONST I8 0)) (INTCONST I8 #x7F) (INTCONST I8 #x80)) (SUB I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 9) (SUBREG I8 (MEM I128 (HOLE 2)) 9)))) ; DEST[87..80] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 10) (IFTHENELSE I8 (OVERFLOW I1 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 10) (BNOT I8 (SUBREG I8 (MEM I128 (HOLE 2)) 10)) (INTCONST I1 1)) (IFTHENELSE I8 (TSTGES I1 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 10) (INTCONST I8 0)) (INTCONST I8 #x7F) (INTCONST I8 #x80)) (SUB I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 10) (SUBREG I8 (MEM I128 (HOLE 2)) 10)))) ; DEST[95..88] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 11) (IFTHENELSE I8 (OVERFLOW I1 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 11) (BNOT I8 (SUBREG I8 (MEM I128 (HOLE 2)) 11)) (INTCONST I1 1)) (IFTHENELSE I8 (TSTGES I1 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 11) (INTCONST I8 0)) (INTCONST I8 #x7F) (INTCONST I8 #x80)) (SUB I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 11) (SUBREG I8 (MEM I128 (HOLE 2)) 11)))) ; DEST[103..96] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 12) (IFTHENELSE I8 (OVERFLOW I1 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 12) (BNOT I8 (SUBREG I8 (MEM I128 (HOLE 2)) 12)) (INTCONST I1 1)) (IFTHENELSE I8 (TSTGES I1 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 12) (INTCONST I8 0)) (INTCONST I8 #x7F) (INTCONST I8 #x80)) (SUB I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 12) (SUBREG I8 (MEM I128 (HOLE 2)) 12)))) ; DEST[111..104] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 13) (IFTHENELSE I8 (OVERFLOW I1 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 13) (BNOT I8 (SUBREG I8 (MEM I128 (HOLE 2)) 13)) (INTCONST I1 1)) (IFTHENELSE I8 (TSTGES I1 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 13) (INTCONST I8 0)) (INTCONST I8 #x7F) (INTCONST I8 #x80)) (SUB I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 13) (SUBREG I8 (MEM I128 (HOLE 2)) 13)))) ; DEST[119..112] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 14) (IFTHENELSE I8 (OVERFLOW I1 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 14) (BNOT I8 (SUBREG I8 (MEM I128 (HOLE 2)) 14)) (INTCONST I1 1)) (IFTHENELSE I8 (TSTGES I1 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 14) (INTCONST I8 0)) (INTCONST I8 #x7F) (INTCONST I8 #x80)) (SUB I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 14) (SUBREG I8 (MEM I128 (HOLE 2)) 14)))) ; DEST[127..120] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 15) (IFTHENELSE I8 (OVERFLOW I1 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 15) (BNOT I8 (SUBREG I8 (MEM I128 (HOLE 2)) 15)) (INTCONST I1 1)) (IFTHENELSE I8 (TSTGES I1 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 15) (INTCONST I8 0)) (INTCONST I8 #x7F) (INTCONST I8 #x80)) (SUB I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 15) (SUBREG I8 (MEM I128 (HOLE 2)) 15)))))) ;PSUBSW mmx, mmx (DEFINST ("PSUBSW ?1m, ?2m" "PSUBSW %?2m,%?1m" "PSUBSW ?1m, ?2m") (PARALLEL ; DEST[15..0] (SET (SUBREG I16 (REG I64 (HOLE 1 MM)) 0) (IFTHENELSE I16 (OVERFLOW I1 (SUBREG I16 (REG I64 (HOLE 1 MM)) 0) (BNOT I16 (SUBREG I16 (REG I64 (HOLE 2 MM)) 0)) (INTCONST I1 1)) (IFTHENELSE I16 (TSTGES I1 (SUBREG I16 (REG I64 (HOLE 1 MM)) 0) (INTCONST I16 0)) (INTCONST I16 #x7FFF) (INTCONST I16 #x8000)) (SUB I16 (SUBREG I16 (REG I64 (HOLE 1 MM)) 0) (SUBREG I16 (REG I64 (HOLE 2 MM)) 0)))) ; DEST[31..16] (SET (SUBREG I16 (REG I64 (HOLE 1 MM)) 1) (IFTHENELSE I16 (OVERFLOW I1 (SUBREG I16 (REG I64 (HOLE 1 MM)) 1) (BNOT I16 (SUBREG I16 (REG I64 (HOLE 2 MM)) 1)) (INTCONST I1 1)) (IFTHENELSE I16 (TSTGES I1 (SUBREG I16 (REG I64 (HOLE 1 MM)) 1) (INTCONST I16 0)) (INTCONST I16 #x7FFF) (INTCONST I16 #x8000)) (SUB I16 (SUBREG I16 (REG I64 (HOLE 1 MM)) 1) (SUBREG I16 (REG I64 (HOLE 2 MM)) 1)))) ; DEST[47..32] (SET (SUBREG I16 (REG I64 (HOLE 1 MM)) 2) (IFTHENELSE I16 (OVERFLOW I1 (SUBREG I16 (REG I64 (HOLE 1 MM)) 2) (BNOT I16 (SUBREG I16 (REG I64 (HOLE 2 MM)) 2)) (INTCONST I1 1)) (IFTHENELSE I16 (TSTGES I1 (SUBREG I16 (REG I64 (HOLE 1 MM)) 2) (INTCONST I16 0)) (INTCONST I16 #x7FFF) (INTCONST I16 #x8000)) (SUB I16 (SUBREG I16 (REG I64 (HOLE 1 MM)) 2) (SUBREG I16 (REG I64 (HOLE 2 MM)) 2)))) ; DEST[63..48] (SET (SUBREG I16 (REG I64 (HOLE 1 MM)) 3) (IFTHENELSE I16 (OVERFLOW I1 (SUBREG I16 (REG I64 (HOLE 1 MM)) 3) (BNOT I16 (SUBREG I16 (REG I64 (HOLE 2 MM)) 3)) (INTCONST I1 1)) (IFTHENELSE I16 (TSTGES I1 (SUBREG I16 (REG I64 (HOLE 1 MM)) 3) (INTCONST I16 0)) (INTCONST I16 #x7FFF) (INTCONST I16 #x8000)) (SUB I16 (SUBREG I16 (REG I64 (HOLE 1 MM)) 3) (SUBREG I16 (REG I64 (HOLE 2 MM)) 3)))))) ;PSUBSW mmx, m64 (DEFINST ("PSUBSW ?1m, QWORD PTR ??2s" "PSUBSW ??2s,%?1m" "PSUBSW ?1m, QWORD PTR ??2s") (PARALLEL ; DEST[15..0] (SET (SUBREG I16 (REG I64 (HOLE 1 MM)) 0) (IFTHENELSE I16 (OVERFLOW I1 (SUBREG I16 (REG I64 (HOLE 1 MM)) 0) (BNOT I16 (SUBREG I16 (MEM I64 (HOLE 2)) 0)) (INTCONST I1 1)) (IFTHENELSE I16 (TSTGES I1 (SUBREG I16 (REG I64 (HOLE 1 MM)) 0) (INTCONST I16 0)) (INTCONST I16 #x7FFF) (INTCONST I16 #x8000)) (SUB I16 (SUBREG I16 (REG I64 (HOLE 1 MM)) 0) (SUBREG I16 (MEM I64 (HOLE 2)) 0)))) ; DEST[31..16] (SET (SUBREG I16 (REG I64 (HOLE 1 MM)) 1) (IFTHENELSE I16 (OVERFLOW I1 (SUBREG I16 (REG I64 (HOLE 1 MM)) 1) (BNOT I16 (SUBREG I16 (MEM I64 (HOLE 2)) 1)) (INTCONST I1 1)) (IFTHENELSE I16 (TSTGES I1 (SUBREG I16 (REG I64 (HOLE 1 MM)) 1) (INTCONST I16 0)) (INTCONST I16 #x7FFF) (INTCONST I16 #x8000)) (SUB I16 (SUBREG I16 (REG I64 (HOLE 1 MM)) 1) (SUBREG I16 (MEM I64 (HOLE 2)) 1)))) ; DEST[47..32] (SET (SUBREG I16 (REG I64 (HOLE 1 MM)) 2) (IFTHENELSE I16 (OVERFLOW I1 (SUBREG I16 (REG I64 (HOLE 1 MM)) 2) (BNOT I16 (SUBREG I16 (MEM I64 (HOLE 2)) 2)) (INTCONST I1 1)) (IFTHENELSE I16 (TSTGES I1 (SUBREG I16 (REG I64 (HOLE 1 MM)) 2) (INTCONST I16 0)) (INTCONST I16 #x7FFF) (INTCONST I16 #x8000)) (SUB I16 (SUBREG I16 (REG I64 (HOLE 1 MM)) 2) (SUBREG I16 (MEM I64 (HOLE 2)) 2)))) ; DEST[63..48] (SET (SUBREG I16 (REG I64 (HOLE 1 MM)) 3) (IFTHENELSE I16 (OVERFLOW I1 (SUBREG I16 (REG I64 (HOLE 1 MM)) 3) (BNOT I16 (SUBREG I16 (MEM I64 (HOLE 2)) 3)) (INTCONST I1 1)) (IFTHENELSE I16 (TSTGES I1 (SUBREG I16 (REG I64 (HOLE 1 MM)) 3) (INTCONST I16 0)) (INTCONST I16 #x7FFF) (INTCONST I16 #x8000)) (SUB I16 (SUBREG I16 (REG I64 (HOLE 1 MM)) 3) (SUBREG I16 (MEM I64 (HOLE 2)) 3)))))) ;PSUBSW xmm, xmm (DEFINST ("PSUBSW ?1x, ?2x" "nil" "nil") (PARALLEL ; DEST[15..0] (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 0) (IFTHENELSE I16 (OVERFLOW I1 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 0) (BNOT I16 (SUBREG I16 (REG I128 (HOLE 2 XMM)) 0)) (INTCONST I1 1)) (IFTHENELSE I16 (TSTGES I1 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 0) (INTCONST I16 0)) (INTCONST I16 #x7FFF) (INTCONST I16 #x8000)) (SUB I16 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 0) (SUBREG I16 (REG I128 (HOLE 2 XMM)) 0)))) ; DEST[31..16] (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 1) (IFTHENELSE I16 (OVERFLOW I1 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 1) (BNOT I16 (SUBREG I16 (REG I128 (HOLE 2 XMM)) 1)) (INTCONST I1 1)) (IFTHENELSE I16 (TSTGES I1 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 1) (INTCONST I16 0)) (INTCONST I16 #x7FFF) (INTCONST I16 #x8000)) (SUB I16 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 1) (SUBREG I16 (REG I128 (HOLE 2 XMM)) 1)))) ; DEST[47..32] (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 2) (IFTHENELSE I16 (OVERFLOW I1 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 2) (BNOT I16 (SUBREG I16 (REG I128 (HOLE 2 XMM)) 2)) (INTCONST I1 1)) (IFTHENELSE I16 (TSTGES I1 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 2) (INTCONST I16 0)) (INTCONST I16 #x7FFF) (INTCONST I16 #x8000)) (SUB I16 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 2) (SUBREG I16 (REG I128 (HOLE 2 XMM)) 2)))) ; DEST[63..48] (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 3) (IFTHENELSE I16 (OVERFLOW I1 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 3) (BNOT I16 (SUBREG I16 (REG I128 (HOLE 2 XMM)) 3)) (INTCONST I1 1)) (IFTHENELSE I16 (TSTGES I1 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 3) (INTCONST I16 0)) (INTCONST I16 #x7FFF) (INTCONST I16 #x8000)) (SUB I16 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 3) (SUBREG I16 (REG I128 (HOLE 2 XMM)) 3)))) ; DEST[79..64] (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 4) (IFTHENELSE I16 (OVERFLOW I1 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 4) (BNOT I16 (SUBREG I16 (REG I128 (HOLE 2 XMM)) 4)) (INTCONST I1 1)) (IFTHENELSE I16 (TSTGES I1 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 4) (INTCONST I16 0)) (INTCONST I16 #x7FFF) (INTCONST I16 #x8000)) (SUB I16 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 4) (SUBREG I16 (REG I128 (HOLE 2 XMM)) 4)))) ; DEST[95..80] (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 5) (IFTHENELSE I16 (OVERFLOW I1 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 5) (BNOT I16 (SUBREG I16 (REG I128 (HOLE 2 XMM)) 5)) (INTCONST I1 1)) (IFTHENELSE I16 (TSTGES I1 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 5) (INTCONST I16 0)) (INTCONST I16 #x7FFF) (INTCONST I16 #x8000)) (SUB I16 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 5) (SUBREG I16 (REG I128 (HOLE 2 XMM)) 5)))) ; DEST[111..96] (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 6) (IFTHENELSE I16 (OVERFLOW I1 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 6) (BNOT I16 (SUBREG I16 (REG I128 (HOLE 2 XMM)) 6)) (INTCONST I1 1)) (IFTHENELSE I16 (TSTGES I1 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 6) (INTCONST I16 0)) (INTCONST I16 #x7FFF) (INTCONST I16 #x8000)) (SUB I16 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 6) (SUBREG I16 (REG I128 (HOLE 2 XMM)) 6)))) ; DEST[127..112] (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 7) (IFTHENELSE I16 (OVERFLOW I1 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 7) (BNOT I16 (SUBREG I16 (REG I128 (HOLE 2 XMM)) 7)) (INTCONST I1 1)) (IFTHENELSE I16 (TSTGES I1 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 7) (INTCONST I16 0)) (INTCONST I16 #x7FFF) (INTCONST I16 #x8000)) (SUB I16 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 7) (SUBREG I16 (REG I128 (HOLE 2 XMM)) 7)))))) ;PSUBSW xmm, m128 (DEFINST ("PSUBSW ?1x, QWORD PTR ??2s" "nil" "nil") (PARALLEL ; DEST[15..0] (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 0) (IFTHENELSE I16 (OVERFLOW I1 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 0) (BNOT I16 (SUBREG I16 (MEM I128 (HOLE 2)) 0)) (INTCONST I1 1)) (IFTHENELSE I16 (TSTGES I1 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 0) (INTCONST I16 0)) (INTCONST I16 #x7FFF) (INTCONST I16 #x8000)) (SUB I16 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 0) (SUBREG I16 (MEM I128 (HOLE 2)) 0)))) ; DEST[31..16] (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 1) (IFTHENELSE I16 (OVERFLOW I1 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 1) (BNOT I16 (SUBREG I16 (MEM I128 (HOLE 2)) 1)) (INTCONST I1 1)) (IFTHENELSE I16 (TSTGES I1 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 1) (INTCONST I16 0)) (INTCONST I16 #x7FFF) (INTCONST I16 #x8000)) (SUB I16 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 1) (SUBREG I16 (MEM I128 (HOLE 2)) 1)))) ; DEST[47..32] (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 2) (IFTHENELSE I16 (OVERFLOW I1 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 2) (BNOT I16 (SUBREG I16 (MEM I128 (HOLE 2)) 2)) (INTCONST I1 1)) (IFTHENELSE I16 (TSTGES I1 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 2) (INTCONST I16 0)) (INTCONST I16 #x7FFF) (INTCONST I16 #x8000)) (SUB I16 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 2) (SUBREG I16 (MEM I128 (HOLE 2)) 2)))) ; DEST[63..48] (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 3) (IFTHENELSE I16 (OVERFLOW I1 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 3) (BNOT I16 (SUBREG I16 (MEM I128 (HOLE 2)) 3)) (INTCONST I1 1)) (IFTHENELSE I16 (TSTGES I1 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 3) (INTCONST I16 0)) (INTCONST I16 #x7FFF) (INTCONST I16 #x8000)) (SUB I16 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 3) (SUBREG I16 (MEM I128 (HOLE 2)) 3)))) ; DEST[79..64] (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 4) (IFTHENELSE I16 (OVERFLOW I1 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 4) (BNOT I16 (SUBREG I16 (MEM I128 (HOLE 2)) 4)) (INTCONST I1 1)) (IFTHENELSE I16 (TSTGES I1 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 4) (INTCONST I16 0)) (INTCONST I16 #x7FFF) (INTCONST I16 #x8000)) (SUB I16 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 4) (SUBREG I16 (MEM I128 (HOLE 2)) 4)))) ; DEST[95..80] (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 5) (IFTHENELSE I16 (OVERFLOW I1 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 5) (BNOT I16 (SUBREG I16 (MEM I128 (HOLE 2)) 5)) (INTCONST I1 1)) (IFTHENELSE I16 (TSTGES I1 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 5) (INTCONST I16 0)) (INTCONST I16 #x7FFF) (INTCONST I16 #x8000)) (SUB I16 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 5) (SUBREG I16 (MEM I128 (HOLE 2)) 5)))) ; DEST[111..96] (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 6) (IFTHENELSE I16 (OVERFLOW I1 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 6) (BNOT I16 (SUBREG I16 (MEM I128 (HOLE 2)) 6)) (INTCONST I1 1)) (IFTHENELSE I16 (TSTGES I1 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 6) (INTCONST I16 0)) (INTCONST I16 #x7FFF) (INTCONST I16 #x8000)) (SUB I16 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 6) (SUBREG I16 (MEM I128 (HOLE 2)) 6)))) ; DEST[127..112] (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 7) (IFTHENELSE I16 (OVERFLOW I1 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 7) (BNOT I16 (SUBREG I16 (MEM I128 (HOLE 2)) 7)) (INTCONST I1 1)) (IFTHENELSE I16 (TSTGES I1 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 7) (INTCONST I16 0)) (INTCONST I16 #x7FFF) (INTCONST I16 #x8000)) (SUB I16 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 7) (SUBREG I16 (MEM I128 (HOLE 2)) 7)))))) ;PSUBUSB mmx, mmx (DEFINST ("PSUBUSB ?1m, ?2m" "PSUBUSB %?2m,%?1m" "PSUBUSB ?1m, ?2m") (PARALLEL ; DEST[7..0] (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 0) (IFTHENELSE I8 (TSTGTU I1 (SUB I8 (SUBREG I8 (REG I64 (HOLE 1 MM)) 0) (SUBREG I8 (REG I64 (HOLE 2 MM)) 0)) (SUBREG I8 (REG I64 (HOLE 1 MM)) 0)) (INTCONST I8 0) (SUB I8 (SUBREG I8 (REG I64 (HOLE 1 MM)) 0) (SUBREG I8 (REG I64 (HOLE 2 MM)) 0)))) ; DEST[15..8] (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 1) (IFTHENELSE I8 (TSTGTU I1 (SUB I8 (SUBREG I8 (REG I64 (HOLE 1 MM)) 1) (SUBREG I8 (REG I64 (HOLE 2 MM)) 1)) (SUBREG I8 (REG I64 (HOLE 1 MM)) 1)) (INTCONST I8 0) (SUB I8 (SUBREG I8 (REG I64 (HOLE 1 MM)) 1) (SUBREG I8 (REG I64 (HOLE 2 MM)) 1)))) ; DEST[23..16] (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 2) (IFTHENELSE I8 (TSTGTU I1 (SUB I8 (SUBREG I8 (REG I64 (HOLE 1 MM)) 2) (SUBREG I8 (REG I64 (HOLE 2 MM)) 2)) (SUBREG I8 (REG I64 (HOLE 1 MM)) 2)) (INTCONST I8 0) (SUB I8 (SUBREG I8 (REG I64 (HOLE 1 MM)) 2) (SUBREG I8 (REG I64 (HOLE 2 MM)) 2)))) ; DEST[31..24] (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 3) (IFTHENELSE I8 (TSTGTU I1 (SUB I8 (SUBREG I8 (REG I64 (HOLE 1 MM)) 3) (SUBREG I8 (REG I64 (HOLE 2 MM)) 3)) (SUBREG I8 (REG I64 (HOLE 1 MM)) 3)) (INTCONST I8 0) (SUB I8 (SUBREG I8 (REG I64 (HOLE 1 MM)) 3) (SUBREG I8 (REG I64 (HOLE 2 MM)) 3)))) ; DEST[39..32] (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 4) (IFTHENELSE I8 (TSTGTU I1 (SUB I8 (SUBREG I8 (REG I64 (HOLE 1 MM)) 4) (SUBREG I8 (REG I64 (HOLE 2 MM)) 4)) (SUBREG I8 (REG I64 (HOLE 1 MM)) 4)) (INTCONST I8 0) (SUB I8 (SUBREG I8 (REG I64 (HOLE 1 MM)) 4) (SUBREG I8 (REG I64 (HOLE 2 MM)) 4)))) ; DEST[47..40] (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 5) (IFTHENELSE I8 (TSTGTU I1 (SUB I8 (SUBREG I8 (REG I64 (HOLE 1 MM)) 5) (SUBREG I8 (REG I64 (HOLE 2 MM)) 5)) (SUBREG I8 (REG I64 (HOLE 1 MM)) 5)) (INTCONST I8 0) (SUB I8 (SUBREG I8 (REG I64 (HOLE 1 MM)) 5) (SUBREG I8 (REG I64 (HOLE 2 MM)) 5)))) ; DEST[55..48] (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 6) (IFTHENELSE I8 (TSTGTU I1 (SUB I8 (SUBREG I8 (REG I64 (HOLE 1 MM)) 6) (SUBREG I8 (REG I64 (HOLE 2 MM)) 6)) (SUBREG I8 (REG I64 (HOLE 1 MM)) 6)) (INTCONST I8 0) (SUB I8 (SUBREG I8 (REG I64 (HOLE 1 MM)) 6) (SUBREG I8 (REG I64 (HOLE 2 MM)) 6)))) ; DEST[63..56] (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 7) (IFTHENELSE I8 (TSTGTU I1 (SUB I8 (SUBREG I8 (REG I64 (HOLE 1 MM)) 7) (SUBREG I8 (REG I64 (HOLE 2 MM)) 7)) (SUBREG I8 (REG I64 (HOLE 1 MM)) 7)) (INTCONST I8 0) (SUB I8 (SUBREG I8 (REG I64 (HOLE 1 MM)) 7) (SUBREG I8 (REG I64 (HOLE 2 MM)) 7)))))) ;PSUBUSB mmx, m64 (DEFINST ("PSUBUSB ?1m, QWORD PTR ??2s" "PSUBUSB ??2s,%?1m" "PSUBUSB ?1m, QWORD PTR ??2s") (PARALLEL ; DEST[7..0] (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 0) (IFTHENELSE I8 (TSTGTU I1 (SUB I8 (SUBREG I8 (REG I64 (HOLE 1 MM)) 0) (SUBREG I8 (MEM I64 (HOLE 2)) 0)) (SUBREG I8 (REG I64 (HOLE 1 MM)) 0)) (INTCONST I8 0) (SUB I8 (SUBREG I8 (REG I64 (HOLE 1 MM)) 0) (SUBREG I8 (MEM I64 (HOLE 2)) 0)))) ; DEST[15..8] (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 1) (IFTHENELSE I8 (TSTGTU I1 (SUB I8 (SUBREG I8 (REG I64 (HOLE 1 MM)) 1) (SUBREG I8 (MEM I64 (HOLE 2)) 1)) (SUBREG I8 (REG I64 (HOLE 1 MM)) 1)) (INTCONST I8 0) (SUB I8 (SUBREG I8 (REG I64 (HOLE 1 MM)) 1) (SUBREG I8 (MEM I64 (HOLE 2)) 1)))) ; DEST[23..16] (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 2) (IFTHENELSE I8 (TSTGTU I1 (SUB I8 (SUBREG I8 (REG I64 (HOLE 1 MM)) 2) (SUBREG I8 (MEM I64 (HOLE 2)) 2)) (SUBREG I8 (REG I64 (HOLE 1 MM)) 2)) (INTCONST I8 0) (SUB I8 (SUBREG I8 (REG I64 (HOLE 1 MM)) 2) (SUBREG I8 (MEM I64 (HOLE 2)) 2)))) ; DEST[31..24] (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 3) (IFTHENELSE I8 (TSTGTU I1 (SUB I8 (SUBREG I8 (REG I64 (HOLE 1 MM)) 3) (SUBREG I8 (MEM I64 (HOLE 2)) 3)) (SUBREG I8 (REG I64 (HOLE 1 MM)) 3)) (INTCONST I8 0) (SUB I8 (SUBREG I8 (REG I64 (HOLE 1 MM)) 3) (SUBREG I8 (MEM I64 (HOLE 2)) 3)))) ; DEST[39..32] (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 4) (IFTHENELSE I8 (TSTGTU I1 (SUB I8 (SUBREG I8 (REG I64 (HOLE 1 MM)) 4) (SUBREG I8 (MEM I64 (HOLE 2)) 4)) (SUBREG I8 (REG I64 (HOLE 1 MM)) 4)) (INTCONST I8 0) (SUB I8 (SUBREG I8 (REG I64 (HOLE 1 MM)) 4) (SUBREG I8 (MEM I64 (HOLE 2)) 4)))) ; DEST[47..40] (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 5) (IFTHENELSE I8 (TSTGTU I1 (SUB I8 (SUBREG I8 (REG I64 (HOLE 1 MM)) 5) (SUBREG I8 (MEM I64 (HOLE 2)) 5)) (SUBREG I8 (REG I64 (HOLE 1 MM)) 5)) (INTCONST I8 0) (SUB I8 (SUBREG I8 (REG I64 (HOLE 1 MM)) 5) (SUBREG I8 (MEM I64 (HOLE 2)) 5)))) ; DEST[55..48] (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 6) (IFTHENELSE I8 (TSTGTU I1 (SUB I8 (SUBREG I8 (REG I64 (HOLE 1 MM)) 6) (SUBREG I8 (MEM I64 (HOLE 2)) 6)) (SUBREG I8 (REG I64 (HOLE 1 MM)) 6)) (INTCONST I8 0) (SUB I8 (SUBREG I8 (REG I64 (HOLE 1 MM)) 6) (SUBREG I8 (MEM I64 (HOLE 2)) 6)))) ; DEST[63..56] (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 7) (IFTHENELSE I8 (TSTGTU I1 (SUB I8 (SUBREG I8 (REG I64 (HOLE 1 MM)) 7) (SUBREG I8 (MEM I64 (HOLE 2)) 7)) (SUBREG I8 (REG I64 (HOLE 1 MM)) 7)) (INTCONST I8 0) (SUB I8 (SUBREG I8 (REG I64 (HOLE 1 MM)) 7) (SUBREG I8 (MEM I64 (HOLE 2)) 7)))))) ;PSUBUSB xmm, xmm (DEFINST ("PSUBUSB ?1x, ?2x" "nil" "nil") (PARALLEL ; DEST[7..0] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 0) (IFTHENELSE I8 (TSTGTU I1 (SUB I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 0) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 0)) (SUBREG I8 (REG I128 (HOLE 1 XMM)) 0)) (INTCONST I8 0) (SUB I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 0) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 0)))) ; DEST[15..8] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 1) (IFTHENELSE I8 (TSTGTU I1 (SUB I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 1) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 1)) (SUBREG I8 (REG I128 (HOLE 1 XMM)) 1)) (INTCONST I8 0) (SUB I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 1) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 1)))) ; DEST[23..16] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 2) (IFTHENELSE I8 (TSTGTU I1 (SUB I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 2) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 2)) (SUBREG I8 (REG I128 (HOLE 1 XMM)) 2)) (INTCONST I8 0) (SUB I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 2) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 2)))) ; DEST[31..24] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 3) (IFTHENELSE I8 (TSTGTU I1 (SUB I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 3) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 3)) (SUBREG I8 (REG I128 (HOLE 1 XMM)) 3)) (INTCONST I8 0) (SUB I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 3) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 3)))) ; DEST[39..32] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 4) (IFTHENELSE I8 (TSTGTU I1 (SUB I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 4) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 4)) (SUBREG I8 (REG I128 (HOLE 1 XMM)) 4)) (INTCONST I8 0) (SUB I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 4) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 4)))) ; DEST[47..40] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 5) (IFTHENELSE I8 (TSTGTU I1 (SUB I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 5) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 5)) (SUBREG I8 (REG I128 (HOLE 1 XMM)) 5)) (INTCONST I8 0) (SUB I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 5) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 5)))) ; DEST[55..48] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 6) (IFTHENELSE I8 (TSTGTU I1 (SUB I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 6) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 6)) (SUBREG I8 (REG I128 (HOLE 1 XMM)) 6)) (INTCONST I8 0) (SUB I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 6) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 6)))) ; DEST[63..56] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 7) (IFTHENELSE I8 (TSTGTU I1 (SUB I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 7) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 7)) (SUBREG I8 (REG I128 (HOLE 1 XMM)) 7)) (INTCONST I8 0) (SUB I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 7) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 7)))) ; DEST[71..64] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 8) (IFTHENELSE I8 (TSTGTU I1 (SUB I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 8) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 8)) (SUBREG I8 (REG I128 (HOLE 1 XMM)) 8)) (INTCONST I8 0) (SUB I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 8) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 8)))) ; DEST[79..72] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 9) (IFTHENELSE I8 (TSTGTU I1 (SUB I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 9) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 9)) (SUBREG I8 (REG I128 (HOLE 1 XMM)) 9)) (INTCONST I8 0) (SUB I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 9) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 9)))) ; DEST[87..80] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 10) (IFTHENELSE I8 (TSTGTU I1 (SUB I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 10) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 10)) (SUBREG I8 (REG I128 (HOLE 1 XMM)) 10)) (INTCONST I8 0) (SUB I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 10) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 10)))) ; DEST[95..88] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 11) (IFTHENELSE I8 (TSTGTU I1 (SUB I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 11) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 11)) (SUBREG I8 (REG I128 (HOLE 1 XMM)) 11)) (INTCONST I8 0) (SUB I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 11) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 11)))) ; DEST[103..96] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 12) (IFTHENELSE I8 (TSTGTU I1 (SUB I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 12) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 12)) (SUBREG I8 (REG I128 (HOLE 1 XMM)) 12)) (INTCONST I8 0) (SUB I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 12) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 12)))) ; DEST[111..104] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 13) (IFTHENELSE I8 (TSTGTU I1 (SUB I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 13) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 13)) (SUBREG I8 (REG I128 (HOLE 1 XMM)) 13)) (INTCONST I8 0) (SUB I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 13) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 13)))) ; DEST[119..112] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 14) (IFTHENELSE I8 (TSTGTU I1 (SUB I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 14) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 14)) (SUBREG I8 (REG I128 (HOLE 1 XMM)) 14)) (INTCONST I8 0) (SUB I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 14) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 14)))) ; DEST[127..120] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 15) (IFTHENELSE I8 (TSTGTU I1 (SUB I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 15) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 15)) (SUBREG I8 (REG I128 (HOLE 1 XMM)) 15)) (INTCONST I8 0) (SUB I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 15) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 15)))))) ;PSUBUSB xmm, m128 (DEFINST ("PSUBUSB ?1x, QWORD PTR ??2s" "nil" "nil") (PARALLEL ; DEST[7..0] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 0) (IFTHENELSE I8 (TSTGTU I1 (SUB I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 0) (SUBREG I8 (MEM I128 (HOLE 2)) 0)) (SUBREG I8 (REG I128 (HOLE 1 XMM)) 0)) (INTCONST I8 0) (SUB I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 0) (SUBREG I8 (MEM I128 (HOLE 2)) 0)))) ; DEST[15..8] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 1) (IFTHENELSE I8 (TSTGTU I1 (SUB I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 1) (SUBREG I8 (MEM I128 (HOLE 2)) 1)) (SUBREG I8 (REG I128 (HOLE 1 XMM)) 1)) (INTCONST I8 0) (SUB I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 1) (SUBREG I8 (MEM I128 (HOLE 2)) 1)))) ; DEST[23..16] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 2) (IFTHENELSE I8 (TSTGTU I1 (SUB I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 2) (SUBREG I8 (MEM I128 (HOLE 2)) 2)) (SUBREG I8 (REG I128 (HOLE 1 XMM)) 2)) (INTCONST I8 0) (SUB I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 2) (SUBREG I8 (MEM I128 (HOLE 2)) 2)))) ; DEST[31..24] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 3) (IFTHENELSE I8 (TSTGTU I1 (SUB I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 3) (SUBREG I8 (MEM I128 (HOLE 2)) 3)) (SUBREG I8 (REG I128 (HOLE 1 XMM)) 3)) (INTCONST I8 0) (SUB I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 3) (SUBREG I8 (MEM I128 (HOLE 2)) 3)))) ; DEST[39..32] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 4) (IFTHENELSE I8 (TSTGTU I1 (SUB I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 4) (SUBREG I8 (MEM I128 (HOLE 2)) 4)) (SUBREG I8 (REG I128 (HOLE 1 XMM)) 4)) (INTCONST I8 0) (SUB I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 4) (SUBREG I8 (MEM I128 (HOLE 2)) 4)))) ; DEST[47..40] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 5) (IFTHENELSE I8 (TSTGTU I1 (SUB I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 5) (SUBREG I8 (MEM I128 (HOLE 2)) 5)) (SUBREG I8 (REG I128 (HOLE 1 XMM)) 5)) (INTCONST I8 0) (SUB I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 5) (SUBREG I8 (MEM I128 (HOLE 2)) 5)))) ; DEST[55..48] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 6) (IFTHENELSE I8 (TSTGTU I1 (SUB I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 6) (SUBREG I8 (MEM I128 (HOLE 2)) 6)) (SUBREG I8 (REG I128 (HOLE 1 XMM)) 6)) (INTCONST I8 0) (SUB I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 6) (SUBREG I8 (MEM I128 (HOLE 2)) 6)))) ; DEST[63..56] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 7) (IFTHENELSE I8 (TSTGTU I1 (SUB I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 7) (SUBREG I8 (MEM I128 (HOLE 2)) 7)) (SUBREG I8 (REG I128 (HOLE 1 XMM)) 7)) (INTCONST I8 0) (SUB I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 7) (SUBREG I8 (MEM I128 (HOLE 2)) 7)))) ; DEST[71..64] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 8) (IFTHENELSE I8 (TSTGTU I1 (SUB I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 8) (SUBREG I8 (MEM I128 (HOLE 2)) 8)) (SUBREG I8 (REG I128 (HOLE 1 XMM)) 8)) (INTCONST I8 0) (SUB I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 8) (SUBREG I8 (MEM I128 (HOLE 2)) 8)))) ; DEST[79..72] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 9) (IFTHENELSE I8 (TSTGTU I1 (SUB I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 9) (SUBREG I8 (MEM I128 (HOLE 2)) 9)) (SUBREG I8 (REG I128 (HOLE 1 XMM)) 9)) (INTCONST I8 0) (SUB I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 9) (SUBREG I8 (MEM I128 (HOLE 2)) 9)))) ; DEST[87..80] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 10) (IFTHENELSE I8 (TSTGTU I1 (SUB I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 10) (SUBREG I8 (MEM I128 (HOLE 2)) 10)) (SUBREG I8 (REG I128 (HOLE 1 XMM)) 10)) (INTCONST I8 0) (SUB I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 10) (SUBREG I8 (MEM I128 (HOLE 2)) 10)))) ; DEST[95..88] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 11) (IFTHENELSE I8 (TSTGTU I1 (SUB I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 11) (SUBREG I8 (MEM I128 (HOLE 2)) 11)) (SUBREG I8 (REG I128 (HOLE 1 XMM)) 11)) (INTCONST I8 0) (SUB I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 11) (SUBREG I8 (MEM I128 (HOLE 2)) 11)))) ; DEST[103..96] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 12) (IFTHENELSE I8 (TSTGTU I1 (SUB I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 12) (SUBREG I8 (MEM I128 (HOLE 2)) 12)) (SUBREG I8 (REG I128 (HOLE 1 XMM)) 12)) (INTCONST I8 0) (SUB I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 12) (SUBREG I8 (MEM I128 (HOLE 2)) 12)))) ; DEST[111..104] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 13) (IFTHENELSE I8 (TSTGTU I1 (SUB I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 13) (SUBREG I8 (MEM I128 (HOLE 2)) 13)) (SUBREG I8 (REG I128 (HOLE 1 XMM)) 13)) (INTCONST I8 0) (SUB I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 13) (SUBREG I8 (MEM I128 (HOLE 2)) 13)))) ; DEST[119..112] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 14) (IFTHENELSE I8 (TSTGTU I1 (SUB I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 14) (SUBREG I8 (MEM I128 (HOLE 2)) 14)) (SUBREG I8 (REG I128 (HOLE 1 XMM)) 14)) (INTCONST I8 0) (SUB I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 14) (SUBREG I8 (MEM I128 (HOLE 2)) 14)))) ; DEST[127..120] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 15) (IFTHENELSE I8 (TSTGTU I1 (SUB I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 15) (SUBREG I8 (MEM I128 (HOLE 2)) 15)) (SUBREG I8 (REG I128 (HOLE 1 XMM)) 15)) (INTCONST I8 0) (SUB I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 15) (SUBREG I8 (MEM I128 (HOLE 2)) 15)))))) ;PSUBUSW mmx, mmx (DEFINST ("PSUBUSW ?1m, ?2m" "PSUBUSW %?2m,%?1m" "PSUBUSW ?1m, ?2m") (PARALLEL ; DEST[15..0] (SET (SUBREG I16 (REG I64 (HOLE 1 MM)) 0) (IFTHENELSE I16 (TSTGTU I1 (SUB I16 (SUBREG I16 (REG I64 (HOLE 1 MM)) 0) (SUBREG I16 (REG I64 (HOLE 2 MM)) 0)) (SUBREG I16 (REG I64 (HOLE 1 MM)) 0)) (INTCONST I16 0) (SUB I16 (SUBREG I16 (REG I64 (HOLE 1 MM)) 0) (SUBREG I16 (REG I64 (HOLE 2 MM)) 0)))) ; DEST[31..16] (SET (SUBREG I16 (REG I64 (HOLE 1 MM)) 1) (IFTHENELSE I16 (TSTGTU I1 (SUB I16 (SUBREG I16 (REG I64 (HOLE 1 MM)) 1) (SUBREG I16 (REG I64 (HOLE 2 MM)) 1)) (SUBREG I16 (REG I64 (HOLE 1 MM)) 1)) (INTCONST I16 0) (SUB I16 (SUBREG I16 (REG I64 (HOLE 1 MM)) 1) (SUBREG I16 (REG I64 (HOLE 2 MM)) 1)))) ; DEST[47..32] (SET (SUBREG I16 (REG I64 (HOLE 1 MM)) 2) (IFTHENELSE I16 (TSTGTU I1 (SUB I16 (SUBREG I16 (REG I64 (HOLE 1 MM)) 2) (SUBREG I16 (REG I64 (HOLE 2 MM)) 2)) (SUBREG I16 (REG I64 (HOLE 1 MM)) 2)) (INTCONST I16 0) (SUB I16 (SUBREG I16 (REG I64 (HOLE 1 MM)) 2) (SUBREG I16 (REG I64 (HOLE 2 MM)) 2)))) ; DEST[63..48] (SET (SUBREG I16 (REG I64 (HOLE 1 MM)) 3) (IFTHENELSE I16 (TSTGTU I1 (SUB I16 (SUBREG I16 (REG I64 (HOLE 1 MM)) 3) (SUBREG I16 (REG I64 (HOLE 2 MM)) 3)) (SUBREG I16 (REG I64 (HOLE 1 MM)) 3)) (INTCONST I16 0) (SUB I16 (SUBREG I16 (REG I64 (HOLE 1 MM)) 3) (SUBREG I16 (REG I64 (HOLE 2 MM)) 3)))))) ;PSUBUSW mmx, m64 (DEFINST ("PSUBUSW ?1m, QWORD PTR ??2s" "PSUBUSW ??2s,%?1m" "PSUBUSW ?1m, QWORD PTR ??2s") (PARALLEL ; DEST[15..0] (SET (SUBREG I16 (REG I64 (HOLE 1 MM)) 0) (IFTHENELSE I16 (TSTGTU I1 (SUB I16 (SUBREG I16 (REG I64 (HOLE 1 MM)) 0) (SUBREG I16 (MEM I64 (HOLE 2)) 0)) (SUBREG I16 (REG I64 (HOLE 1 MM)) 0)) (INTCONST I16 0) (SUB I16 (SUBREG I16 (REG I64 (HOLE 1 MM)) 0) (SUBREG I16 (MEM I64 (HOLE 2)) 0)))) ; DEST[31..16] (SET (SUBREG I16 (REG I64 (HOLE 1 MM)) 1) (IFTHENELSE I16 (TSTGTU I1 (SUB I16 (SUBREG I16 (REG I64 (HOLE 1 MM)) 1) (SUBREG I16 (MEM I64 (HOLE 2)) 1)) (SUBREG I16 (REG I64 (HOLE 1 MM)) 1)) (INTCONST I16 0) (SUB I16 (SUBREG I16 (REG I64 (HOLE 1 MM)) 1) (SUBREG I16 (MEM I64 (HOLE 2)) 1)))) ; DEST[47..32] (SET (SUBREG I16 (REG I64 (HOLE 1 MM)) 2) (IFTHENELSE I16 (TSTGTU I1 (SUB I16 (SUBREG I16 (REG I64 (HOLE 1 MM)) 2) (SUBREG I16 (MEM I64 (HOLE 2)) 2)) (SUBREG I16 (REG I64 (HOLE 1 MM)) 2)) (INTCONST I16 0) (SUB I16 (SUBREG I16 (REG I64 (HOLE 1 MM)) 2) (SUBREG I16 (MEM I64 (HOLE 2)) 2)))) ; DEST[63..48] (SET (SUBREG I16 (REG I64 (HOLE 1 MM)) 3) (IFTHENELSE I16 (TSTGTU I1 (SUB I16 (SUBREG I16 (REG I64 (HOLE 1 MM)) 3) (SUBREG I16 (MEM I64 (HOLE 2)) 3)) (SUBREG I16 (REG I64 (HOLE 1 MM)) 3)) (INTCONST I16 0) (SUB I16 (SUBREG I16 (REG I64 (HOLE 1 MM)) 3) (SUBREG I16 (MEM I64 (HOLE 2)) 3)))))) ;PSUBUSW xmm, xmm (DEFINST ("PSUBUSW ?1x, ?2x" "nil" "nil") (PARALLEL ; DEST[15..0] (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 0) (IFTHENELSE I16 (TSTGTU I1 (SUB I16 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 0) (SUBREG I16 (REG I128 (HOLE 2 XMM)) 0)) (SUBREG I16 (REG I128 (HOLE 1 XMM)) 0)) (INTCONST I16 0) (SUB I16 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 0) (SUBREG I16 (REG I128 (HOLE 2 XMM)) 0)))) ; DEST[31..16] (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 1) (IFTHENELSE I16 (TSTGTU I1 (SUB I16 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 1) (SUBREG I16 (REG I128 (HOLE 2 XMM)) 1)) (SUBREG I16 (REG I128 (HOLE 1 XMM)) 1)) (INTCONST I16 0) (SUB I16 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 1) (SUBREG I16 (REG I128 (HOLE 2 XMM)) 1)))) ; DEST[47..32] (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 2) (IFTHENELSE I16 (TSTGTU I1 (SUB I16 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 2) (SUBREG I16 (REG I128 (HOLE 2 XMM)) 2)) (SUBREG I16 (REG I128 (HOLE 1 XMM)) 2)) (INTCONST I16 0) (SUB I16 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 2) (SUBREG I16 (REG I128 (HOLE 2 XMM)) 2)))) ; DEST[63..48] (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 3) (IFTHENELSE I16 (TSTGTU I1 (SUB I16 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 3) (SUBREG I16 (REG I128 (HOLE 2 XMM)) 3)) (SUBREG I16 (REG I128 (HOLE 1 XMM)) 3)) (INTCONST I16 0) (SUB I16 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 3) (SUBREG I16 (REG I128 (HOLE 2 XMM)) 3)))) ; DEST[79..64] (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 4) (IFTHENELSE I16 (TSTGTU I1 (SUB I16 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 4) (SUBREG I16 (REG I128 (HOLE 2 XMM)) 4)) (SUBREG I16 (REG I128 (HOLE 1 XMM)) 4)) (INTCONST I16 0) (SUB I16 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 4) (SUBREG I16 (REG I128 (HOLE 2 XMM)) 4)))) ; DEST[95..80] (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 5) (IFTHENELSE I16 (TSTGTU I1 (SUB I16 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 5) (SUBREG I16 (REG I128 (HOLE 2 XMM)) 5)) (SUBREG I16 (REG I128 (HOLE 1 XMM)) 5)) (INTCONST I16 0) (SUB I16 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 5) (SUBREG I16 (REG I128 (HOLE 2 XMM)) 5)))) ; DEST[111..96] (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 6) (IFTHENELSE I16 (TSTGTU I1 (SUB I16 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 6) (SUBREG I16 (REG I128 (HOLE 2 XMM)) 6)) (SUBREG I16 (REG I128 (HOLE 1 XMM)) 6)) (INTCONST I16 0) (SUB I16 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 6) (SUBREG I16 (REG I128 (HOLE 2 XMM)) 6)))) ; DEST[127..112] (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 7) (IFTHENELSE I16 (TSTGTU I1 (SUB I16 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 7) (SUBREG I16 (REG I128 (HOLE 2 XMM)) 7)) (SUBREG I16 (REG I128 (HOLE 1 XMM)) 7)) (INTCONST I16 0) (SUB I16 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 7) (SUBREG I16 (REG I128 (HOLE 2 XMM)) 7)))))) ;PSUBUSW xmm, m128 (DEFINST ("PSUBUSW ?1x, QWORD PTR ??2s" "nil" "nil") (PARALLEL ; DEST[15..0] (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 0) (IFTHENELSE I16 (TSTGTU I1 (SUB I16 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 0) (SUBREG I16 (MEM I128 (HOLE 2)) 0)) (SUBREG I16 (REG I128 (HOLE 1 XMM)) 0)) (INTCONST I16 0) (SUB I16 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 0) (SUBREG I16 (MEM I128 (HOLE 2)) 0)))) ; DEST[31..16] (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 1) (IFTHENELSE I16 (TSTGTU I1 (SUB I16 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 1) (SUBREG I16 (MEM I128 (HOLE 2)) 1)) (SUBREG I16 (REG I128 (HOLE 1 XMM)) 1)) (INTCONST I16 0) (SUB I16 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 1) (SUBREG I16 (MEM I128 (HOLE 2)) 1)))) ; DEST[47..32] (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 2) (IFTHENELSE I16 (TSTGTU I1 (SUB I16 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 2) (SUBREG I16 (MEM I128 (HOLE 2)) 2)) (SUBREG I16 (REG I128 (HOLE 1 XMM)) 2)) (INTCONST I16 0) (SUB I16 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 2) (SUBREG I16 (MEM I128 (HOLE 2)) 2)))) ; DEST[63..48] (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 3) (IFTHENELSE I16 (TSTGTU I1 (SUB I16 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 3) (SUBREG I16 (MEM I128 (HOLE 2)) 3)) (SUBREG I16 (REG I128 (HOLE 1 XMM)) 3)) (INTCONST I16 0) (SUB I16 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 3) (SUBREG I16 (MEM I128 (HOLE 2)) 3)))) ; DEST[79..64] (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 4) (IFTHENELSE I16 (TSTGTU I1 (SUB I16 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 4) (SUBREG I16 (MEM I128 (HOLE 2)) 4)) (SUBREG I16 (REG I128 (HOLE 1 XMM)) 4)) (INTCONST I16 0) (SUB I16 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 4) (SUBREG I16 (MEM I128 (HOLE 2)) 4)))) ; DEST[95..80] (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 5) (IFTHENELSE I16 (TSTGTU I1 (SUB I16 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 5) (SUBREG I16 (MEM I128 (HOLE 2)) 5)) (SUBREG I16 (REG I128 (HOLE 1 XMM)) 5)) (INTCONST I16 0) (SUB I16 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 5) (SUBREG I16 (MEM I128 (HOLE 2)) 5)))) ; DEST[111..96] (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 6) (IFTHENELSE I16 (TSTGTU I1 (SUB I16 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 6) (SUBREG I16 (MEM I128 (HOLE 2)) 6)) (SUBREG I16 (REG I128 (HOLE 1 XMM)) 6)) (INTCONST I16 0) (SUB I16 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 6) (SUBREG I16 (MEM I128 (HOLE 2)) 6)))) ; DEST[127..112] (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 7) (IFTHENELSE I16 (TSTGTU I1 (SUB I16 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 7) (SUBREG I16 (MEM I128 (HOLE 2)) 7)) (SUBREG I16 (REG I128 (HOLE 1 XMM)) 7)) (INTCONST I16 0) (SUB I16 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 7) (SUBREG I16 (MEM I128 (HOLE 2)) 7)))))) ;PSUBW mmx, mmx (DEFINST ("PSUBW ?1m, ?2m" "PSUBW %?2m,%?1m" "PSUBW ?1m, ?2m") (PARALLEL (SET (SUBREG I16 (REG I64 (HOLE 1 MM)) 0) (SUB I16 (SUBREG I16 (REG I64 (HOLE 1 MM)) 0) (SUBREG I16 (REG I64 (HOLE 2 MM)) 0))) (SET (SUBREG I16 (REG I64 (HOLE 1 MM)) 1) (SUB I16 (SUBREG I16 (REG I64 (HOLE 1 MM)) 1) (SUBREG I16 (REG I64 (HOLE 2 MM)) 1))) (SET (SUBREG I16 (REG I64 (HOLE 1 MM)) 2) (SUB I16 (SUBREG I16 (REG I64 (HOLE 1 MM)) 2) (SUBREG I16 (REG I64 (HOLE 2 MM)) 2))) (SET (SUBREG I16 (REG I64 (HOLE 1 MM)) 3) (SUB I16 (SUBREG I16 (REG I64 (HOLE 1 MM)) 3) (SUBREG I16 (REG I64 (HOLE 2 MM)) 3))))) ;PSUBW mmx, m64 (DEFINST ("PSUBW ?1m, QWORD PTR ??2s" "PSUBW ??2s,%?1m" "PSUBW ?1m, QWORD PTR ??2s") (PARALLEL (SET (SUBREG I16 (REG I64 (HOLE 1 MM)) 0) (SUB I16 (SUBREG I16 (REG I64 (HOLE 1 MM)) 0) (SUBREG I16 (MEM I64 (HOLE 2)) 0))) (SET (SUBREG I16 (REG I64 (HOLE 1 MM)) 1) (SUB I16 (SUBREG I16 (REG I64 (HOLE 1 MM)) 1) (SUBREG I16 (MEM I64 (HOLE 2)) 1))) (SET (SUBREG I16 (REG I64 (HOLE 1 MM)) 2) (SUB I16 (SUBREG I16 (REG I64 (HOLE 1 MM)) 2) (SUBREG I16 (MEM I64 (HOLE 2)) 2))) (SET (SUBREG I16 (REG I64 (HOLE 1 MM)) 3) (SUB I16 (SUBREG I16 (REG I64 (HOLE 1 MM)) 3) (SUBREG I16 (MEM I64 (HOLE 2)) 3))))) ;PSUBW xmm, xmm (DEFINST ("PSUBW ?1x, ?2x" "nil" "nil") (PARALLEL (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 0) (SUB I16 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 0) (SUBREG I16 (REG I128 (HOLE 2 XMM)) 0))) (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 1) (SUB I16 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 1) (SUBREG I16 (REG I128 (HOLE 2 XMM)) 1))) (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 2) (SUB I16 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 2) (SUBREG I16 (REG I128 (HOLE 2 XMM)) 2))) (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 3) (SUB I16 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 3) (SUBREG I16 (REG I128 (HOLE 2 XMM)) 3))) (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 4) (SUB I16 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 4) (SUBREG I16 (REG I128 (HOLE 2 XMM)) 4))) (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 5) (SUB I16 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 5) (SUBREG I16 (REG I128 (HOLE 2 XMM)) 5))) (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 6) (SUB I16 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 6) (SUBREG I16 (REG I128 (HOLE 2 XMM)) 6))) (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 7) (SUB I16 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 7) (SUBREG I16 (REG I128 (HOLE 2 XMM)) 7))))) ;PSUBW xmm, m128 (DEFINST ("PSUBW ?1x, QWORD PTR ??2s" "nil" "nil") (PARALLEL (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 0) (SUB I16 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 0) (SUBREG I16 (MEM I128 (HOLE 2)) 0))) (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 1) (SUB I16 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 1) (SUBREG I16 (MEM I128 (HOLE 2)) 1))) (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 2) (SUB I16 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 2) (SUBREG I16 (MEM I128 (HOLE 2)) 2))) (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 3) (SUB I16 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 3) (SUBREG I16 (MEM I128 (HOLE 2)) 3))) (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 4) (SUB I16 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 4) (SUBREG I16 (MEM I128 (HOLE 2)) 4))) (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 5) (SUB I16 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 5) (SUBREG I16 (MEM I128 (HOLE 2)) 5))) (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 6) (SUB I16 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 6) (SUBREG I16 (MEM I128 (HOLE 2)) 6))) (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 7) (SUB I16 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 7) (SUBREG I16 (MEM I128 (HOLE 2)) 7))))) ;PCMPEQB mmx, mmx (DEFINST ("PCMPEQB ?1m, ?2m" "PCMPEQB %?2m,%?1m" "PCMPEQB ?1m, ?2m") (PARALLEL ; DEST[7..0] (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 0) (TSTEQ I8 (SUBREG I8 (REG I64 (HOLE 1 MM)) 0) (SUBREG I8 (REG I64 (HOLE 2 MM)) 0))) ; DEST[15..8] (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 1) (TSTEQ I8 (SUBREG I8 (REG I64 (HOLE 1 MM)) 1) (SUBREG I8 (REG I64 (HOLE 2 MM)) 1))) ; DEST[23..16] (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 2) (TSTEQ I8 (SUBREG I8 (REG I64 (HOLE 1 MM)) 2) (SUBREG I8 (REG I64 (HOLE 2 MM)) 2))) ; DEST[31..24] (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 3) (TSTEQ I8 (SUBREG I8 (REG I64 (HOLE 1 MM)) 3) (SUBREG I8 (REG I64 (HOLE 2 MM)) 3))) ; DEST[39..32] (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 4) (TSTEQ I8 (SUBREG I8 (REG I64 (HOLE 1 MM)) 4) (SUBREG I8 (REG I64 (HOLE 2 MM)) 4))) ; DEST[47..40] (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 5) (TSTEQ I8 (SUBREG I8 (REG I64 (HOLE 1 MM)) 5) (SUBREG I8 (REG I64 (HOLE 2 MM)) 5))) ; DEST[55..48] (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 6) (TSTEQ I8 (SUBREG I8 (REG I64 (HOLE 1 MM)) 6) (SUBREG I8 (REG I64 (HOLE 2 MM)) 6))) ; DEST[63..56] (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 7) (TSTEQ I8 (SUBREG I8 (REG I64 (HOLE 1 MM)) 7) (SUBREG I8 (REG I64 (HOLE 2 MM)) 7))))) ;PCMPEQB mmx, m64 (DEFINST ("PCMPEQB ?1m, QWORD PTR ??2s" "PCMPEQB ??2s,%?1m" "PCMPEQB ?1m, QWORD PTR ??2s") (PARALLEL ; DEST[7..0] (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 0) (TSTEQ I8 (SUBREG I8 (REG I64 (HOLE 1 MM)) 0) (SUBREG I8 (MEM I64 (HOLE 2)) 0))) ; DEST[15..8] (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 1) (TSTEQ I8 (SUBREG I8 (REG I64 (HOLE 1 MM)) 1) (SUBREG I8 (MEM I64 (HOLE 2)) 1))) ; DEST[23..16] (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 2) (TSTEQ I8 (SUBREG I8 (REG I64 (HOLE 1 MM)) 2) (SUBREG I8 (MEM I64 (HOLE 2)) 2))) ; DEST[31..24] (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 3) (TSTEQ I8 (SUBREG I8 (REG I64 (HOLE 1 MM)) 3) (SUBREG I8 (MEM I64 (HOLE 2)) 3))) ; DEST[39..32] (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 4) (TSTEQ I8 (SUBREG I8 (REG I64 (HOLE 1 MM)) 4) (SUBREG I8 (MEM I64 (HOLE 2)) 4))) ; DEST[47..40] (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 5) (TSTEQ I8 (SUBREG I8 (REG I64 (HOLE 1 MM)) 5) (SUBREG I8 (MEM I64 (HOLE 2)) 5))) ; DEST[55..48] (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 6) (TSTEQ I8 (SUBREG I8 (REG I64 (HOLE 1 MM)) 6) (SUBREG I8 (MEM I64 (HOLE 2)) 6))) ; DEST[63..56] (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 7) (TSTEQ I8 (SUBREG I8 (REG I64 (HOLE 1 MM)) 7) (SUBREG I8 (MEM I64 (HOLE 2)) 7))))) ;PCMPEQB xmm, xmm (DEFINST ("PCMPEQB ?1x, ?2x" "nil" "nil") (PARALLEL ; DEST[7..0] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 0) (TSTEQ I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 0) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 0))) ; DEST[15..8] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 1) (TSTEQ I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 1) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 1))) ; DEST[23..16] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 2) (TSTEQ I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 2) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 2))) ; DEST[31..24] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 3) (TSTEQ I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 3) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 3))) ; DEST[39..32] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 4) (TSTEQ I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 4) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 4))) ; DEST[47..40] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 5) (TSTEQ I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 5) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 5))) ; DEST[55..48] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 6) (TSTEQ I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 6) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 6))) ; DEST[63..56] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 7) (TSTEQ I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 7) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 7))) ; DEST[71..64] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 8) (TSTEQ I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 8) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 8))) ; DEST[79..72] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 9) (TSTEQ I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 9) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 9))) ; DEST[87..80] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 10) (TSTEQ I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 10) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 10))) ; DEST[95..88] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 11) (TSTEQ I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 11) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 11))) ; DEST[103..96] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 12) (TSTEQ I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 12) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 12))) ; DEST[111..104] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 13) (TSTEQ I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 13) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 13))) ; DEST[119..112] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 14) (TSTEQ I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 14) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 14))) ; DEST[127..120] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 15) (TSTEQ I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 15) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 15))))) ;PCMPEQB xmm, m128 (DEFINST ("PCMPEQB ?1x, QWORD PTR ??2s" "nil" "nil") (PARALLEL ; DEST[7..0] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 0) (TSTEQ I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 0) (SUBREG I8 (MEM I128 (HOLE 2)) 0))) ; DEST[15..8] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 1) (TSTEQ I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 1) (SUBREG I8 (MEM I128 (HOLE 2)) 1))) ; DEST[23..16] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 2) (TSTEQ I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 2) (SUBREG I8 (MEM I128 (HOLE 2)) 2))) ; DEST[31..24] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 3) (TSTEQ I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 3) (SUBREG I8 (MEM I128 (HOLE 2)) 3))) ; DEST[39..32] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 4) (TSTEQ I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 4) (SUBREG I8 (MEM I128 (HOLE 2)) 4))) ; DEST[47..40] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 5) (TSTEQ I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 5) (SUBREG I8 (MEM I128 (HOLE 2)) 5))) ; DEST[55..48] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 6) (TSTEQ I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 6) (SUBREG I8 (MEM I128 (HOLE 2)) 6))) ; DEST[63..56] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 7) (TSTEQ I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 7) (SUBREG I8 (MEM I128 (HOLE 2)) 7))) ; DEST[71..64] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 8) (TSTEQ I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 8) (SUBREG I8 (MEM I128 (HOLE 2)) 8))) ; DEST[79..72] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 9) (TSTEQ I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 9) (SUBREG I8 (MEM I128 (HOLE 2)) 9))) ; DEST[87..80] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 10) (TSTEQ I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 10) (SUBREG I8 (MEM I128 (HOLE 2)) 10))) ; DEST[95..88] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 11) (TSTEQ I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 11) (SUBREG I8 (MEM I128 (HOLE 2)) 11))) ; DEST[103..96] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 12) (TSTEQ I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 12) (SUBREG I8 (MEM I128 (HOLE 2)) 12))) ; DEST[111..104] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 13) (TSTEQ I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 13) (SUBREG I8 (MEM I128 (HOLE 2)) 13))) ; DEST[119..112] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 14) (TSTEQ I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 14) (SUBREG I8 (MEM I128 (HOLE 2)) 14))) ; DEST[127..120] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 15) (TSTEQ I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 15) (SUBREG I8 (MEM I128 (HOLE 2)) 15))))) ;PCMPEQD mmx, mmx (DEFINST ("PCMPEQD ?1m, ?2m" "PCMPEQD %?2m,%?1m" "PCMPEQD ?1m, ?2m") (PARALLEL ; DEST[31..0] (SET (SUBREG I32 (REG I64 (HOLE 1 MM)) 0) (TSTEQ I32 (SUBREG I32 (REG I64 (HOLE 1 MM)) 0) (SUBREG I32 (REG I64 (HOLE 2 MM)) 0))) ; DEST[63..32] (SET (SUBREG I32 (REG I64 (HOLE 1 MM)) 1) (TSTEQ I32 (SUBREG I32 (REG I64 (HOLE 1 MM)) 1) (SUBREG I32 (REG I64 (HOLE 2 MM)) 1))))) ;PCMPEQD mmx, m64 (DEFINST ("PCMPEQD ?1m, QWORD PTR ??2s" "PCMPEQD ??2s,%?1m" "PCMPEQD ?1m, QWORD PTR ??2s") (PARALLEL ; DEST[31..0] (SET (SUBREG I32 (REG I64 (HOLE 1 MM)) 0) (TSTEQ I32 (SUBREG I32 (REG I64 (HOLE 1 MM)) 0) (SUBREG I32 (MEM I64 (HOLE 2)) 0))) ; DEST[63..32] (SET (SUBREG I32 (REG I64 (HOLE 1 MM)) 1) (TSTEQ I32 (SUBREG I32 (REG I64 (HOLE 1 MM)) 1) (SUBREG I32 (MEM I64 (HOLE 2)) 1))))) ;PCMPEQD xmm, xmm (DEFINST ("PCMPEQD ?1x, ?2x" "nil" "nil") (PARALLEL ; DEST[31..0] (SET (SUBREG I32 (REG I128 (HOLE 1 XMM)) 0) (TSTEQ I32 (SUBREG I32 (REG I128 (HOLE 1 XMM)) 0) (SUBREG I32 (REG I128 (HOLE 2 XMM)) 0))) ; DEST[63..32] (SET (SUBREG I32 (REG I128 (HOLE 1 XMM)) 1) (TSTEQ I32 (SUBREG I32 (REG I128 (HOLE 1 XMM)) 1) (SUBREG I32 (REG I128 (HOLE 2 XMM)) 1))) ; DEST[95..64] (SET (SUBREG I32 (REG I128 (HOLE 1 XMM)) 2) (TSTEQ I32 (SUBREG I32 (REG I128 (HOLE 1 XMM)) 2) (SUBREG I32 (REG I128 (HOLE 2 XMM)) 2))) ; DEST[127..96] (SET (SUBREG I32 (REG I128 (HOLE 1 XMM)) 3) (TSTEQ I32 (SUBREG I32 (REG I128 (HOLE 1 XMM)) 3) (SUBREG I32 (REG I128 (HOLE 2 XMM)) 3))))) ;PCMPEQD xmm, m128 (DEFINST ("PCMPEQD ?1x, QWORD PTR ??2s" "nil" "nil") (PARALLEL ; DEST[31..0] (SET (SUBREG I32 (REG I128 (HOLE 1 XMM)) 0) (TSTEQ I32 (SUBREG I32 (REG I128 (HOLE 1 XMM)) 0) (SUBREG I32 (MEM I128 (HOLE 2)) 0))) ; DEST[63..32] (SET (SUBREG I32 (REG I128 (HOLE 1 XMM)) 1) (TSTEQ I32 (SUBREG I32 (REG I128 (HOLE 1 XMM)) 1) (SUBREG I32 (MEM I128 (HOLE 2)) 1))) ; DEST[95..64] (SET (SUBREG I32 (REG I128 (HOLE 1 XMM)) 2) (TSTEQ I32 (SUBREG I32 (REG I128 (HOLE 1 XMM)) 2) (SUBREG I32 (MEM I128 (HOLE 2)) 2))) ; DEST[127..96] (SET (SUBREG I32 (REG I128 (HOLE 1 XMM)) 3) (TSTEQ I32 (SUBREG I32 (REG I128 (HOLE 1 XMM)) 3) (SUBREG I32 (MEM I128 (HOLE 2)) 3))))) ;PCMPEQW mmx, mmx (DEFINST ("PCMPEQW ?1m, ?2m" "PCMPEQW %?2m,%?1m" "PCMPEQW ?1m, ?2m") (PARALLEL ; DEST[15..0] (SET (SUBREG I16 (REG I64 (HOLE 1 MM)) 0) (TSTEQ I16 (SUBREG I16 (REG I64 (HOLE 1 MM)) 0) (SUBREG I16 (REG I64 (HOLE 2 MM)) 0))) ; DEST[31..16] (SET (SUBREG I16 (REG I64 (HOLE 1 MM)) 1) (TSTEQ I16 (SUBREG I16 (REG I64 (HOLE 1 MM)) 1) (SUBREG I16 (REG I64 (HOLE 2 MM)) 1))) ; DEST[47..32] (SET (SUBREG I16 (REG I64 (HOLE 1 MM)) 2) (TSTEQ I16 (SUBREG I16 (REG I64 (HOLE 1 MM)) 2) (SUBREG I16 (REG I64 (HOLE 2 MM)) 2))) ; DEST[63..48] (SET (SUBREG I16 (REG I64 (HOLE 1 MM)) 3) (TSTEQ I16 (SUBREG I16 (REG I64 (HOLE 1 MM)) 3) (SUBREG I16 (REG I64 (HOLE 2 MM)) 3))))) ;PCMPEQW mmx, m64 (DEFINST ("PCMPEQW ?1m, QWORD PTR ??2s" "PCMPEQW ??2s,%?1m" "PCMPEQW ?1m, QWORD PTR ??2s") (PARALLEL ; DEST[15..0] (SET (SUBREG I16 (REG I64 (HOLE 1 MM)) 0) (TSTEQ I16 (SUBREG I16 (REG I64 (HOLE 1 MM)) 0) (SUBREG I16 (MEM I64 (HOLE 2)) 0))) ; DEST[31..16] (SET (SUBREG I16 (REG I64 (HOLE 1 MM)) 1) (TSTEQ I16 (SUBREG I16 (REG I64 (HOLE 1 MM)) 1) (SUBREG I16 (MEM I64 (HOLE 2)) 1))) ; DEST[47..32] (SET (SUBREG I16 (REG I64 (HOLE 1 MM)) 2) (TSTEQ I16 (SUBREG I16 (REG I64 (HOLE 1 MM)) 2) (SUBREG I16 (MEM I64 (HOLE 2)) 2))) ; DEST[63..48] (SET (SUBREG I16 (REG I64 (HOLE 1 MM)) 3) (TSTEQ I16 (SUBREG I16 (REG I64 (HOLE 1 MM)) 3) (SUBREG I16 (MEM I64 (HOLE 2)) 3))))) ;PCMPEQW xmm, xmm (DEFINST ("PCMPEQW ?1x, ?2x" "nil" "nil") (PARALLEL ; DEST[15..0] (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 0) (TSTEQ I16 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 0) (SUBREG I16 (REG I128 (HOLE 2 XMM)) 0))) ; DEST[31..16] (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 1) (TSTEQ I16 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 1) (SUBREG I16 (REG I128 (HOLE 2 XMM)) 1))) ; DEST[47..32] (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 2) (TSTEQ I16 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 2) (SUBREG I16 (REG I128 (HOLE 2 XMM)) 2))) ; DEST[63..48] (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 3) (TSTEQ I16 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 3) (SUBREG I16 (REG I128 (HOLE 2 XMM)) 3))) ; DEST[79..64] (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 4) (TSTEQ I16 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 4) (SUBREG I16 (REG I128 (HOLE 2 XMM)) 4))) ; DEST[95..80] (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 5) (TSTEQ I16 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 5) (SUBREG I16 (REG I128 (HOLE 2 XMM)) 5))) ; DEST[111..96] (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 6) (TSTEQ I16 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 6) (SUBREG I16 (REG I128 (HOLE 2 XMM)) 6))) ; DEST[127..112] (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 7) (TSTEQ I16 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 7) (SUBREG I16 (REG I128 (HOLE 2 XMM)) 7))))) ;PCMPEQW xmm, m128 (DEFINST ("PCMPEQW ?1x, QWORD PTR ??2s" "nil" "nil") (PARALLEL ; DEST[15..0] (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 0) (TSTEQ I16 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 0) (SUBREG I16 (MEM I128 (HOLE 2)) 0))) ; DEST[31..16] (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 1) (TSTEQ I16 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 1) (SUBREG I16 (MEM I128 (HOLE 2)) 1))) ; DEST[47..32] (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 2) (TSTEQ I16 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 2) (SUBREG I16 (MEM I128 (HOLE 2)) 2))) ; DEST[63..48] (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 3) (TSTEQ I16 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 3) (SUBREG I16 (MEM I128 (HOLE 2)) 3))) ; DEST[79..64] (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 4) (TSTEQ I16 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 4) (SUBREG I16 (MEM I128 (HOLE 2)) 4))) ; DEST[95..80] (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 5) (TSTEQ I16 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 5) (SUBREG I16 (MEM I128 (HOLE 2)) 5))) ; DEST[111..96] (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 6) (TSTEQ I16 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 6) (SUBREG I16 (MEM I128 (HOLE 2)) 6))) ; DEST[127..112] (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 7) (TSTEQ I16 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 7) (SUBREG I16 (MEM I128 (HOLE 2)) 7))))) ;PCMPGTB mmx, mmx (DEFINST ("PCMPGTB ?1m, ?2m" "PCMPGTB %?2m,%?1m" "PCMPGTB ?1m, ?2m") (PARALLEL ; DEST[7..0] (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 0) (TSTGTS I8 (SUBREG I8 (REG I64 (HOLE 1 MM)) 0) (SUBREG I8 (REG I64 (HOLE 2 MM)) 0))) ; DEST[15..8] (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 1) (TSTGTS I8 (SUBREG I8 (REG I64 (HOLE 1 MM)) 1) (SUBREG I8 (REG I64 (HOLE 2 MM)) 1))) ; DEST[23..16] (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 2) (TSTGTS I8 (SUBREG I8 (REG I64 (HOLE 1 MM)) 2) (SUBREG I8 (REG I64 (HOLE 2 MM)) 2))) ; DEST[31..24] (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 3) (TSTGTS I8 (SUBREG I8 (REG I64 (HOLE 1 MM)) 3) (SUBREG I8 (REG I64 (HOLE 2 MM)) 3))) ; DEST[39..32] (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 4) (TSTGTS I8 (SUBREG I8 (REG I64 (HOLE 1 MM)) 4) (SUBREG I8 (REG I64 (HOLE 2 MM)) 4))) ; DEST[47..40] (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 5) (TSTGTS I8 (SUBREG I8 (REG I64 (HOLE 1 MM)) 5) (SUBREG I8 (REG I64 (HOLE 2 MM)) 5))) ; DEST[55..48] (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 6) (TSTGTS I8 (SUBREG I8 (REG I64 (HOLE 1 MM)) 6) (SUBREG I8 (REG I64 (HOLE 2 MM)) 6))) ; DEST[63..56] (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 7) (TSTGTS I8 (SUBREG I8 (REG I64 (HOLE 1 MM)) 7) (SUBREG I8 (REG I64 (HOLE 2 MM)) 7))))) ;PCMPGTB mmx, m64 (DEFINST ("PCMPGTB ?1m, QWORD PTR ??2s" "PCMPGTB ??2s,%?1m" "PCMPGTB ?1m, QWORD PTR ??2s") (PARALLEL ; DEST[7..0] (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 0) (TSTGTS I8 (SUBREG I8 (REG I64 (HOLE 1 MM)) 0) (SUBREG I8 (MEM I64 (HOLE 2)) 0))) ; DEST[15..8] (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 1) (TSTGTS I8 (SUBREG I8 (REG I64 (HOLE 1 MM)) 1) (SUBREG I8 (MEM I64 (HOLE 2)) 1))) ; DEST[23..16] (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 2) (TSTGTS I8 (SUBREG I8 (REG I64 (HOLE 1 MM)) 2) (SUBREG I8 (MEM I64 (HOLE 2)) 2))) ; DEST[31..24] (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 3) (TSTGTS I8 (SUBREG I8 (REG I64 (HOLE 1 MM)) 3) (SUBREG I8 (MEM I64 (HOLE 2)) 3))) ; DEST[39..32] (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 4) (TSTGTS I8 (SUBREG I8 (REG I64 (HOLE 1 MM)) 4) (SUBREG I8 (MEM I64 (HOLE 2)) 4))) ; DEST[47..40] (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 5) (TSTGTS I8 (SUBREG I8 (REG I64 (HOLE 1 MM)) 5) (SUBREG I8 (MEM I64 (HOLE 2)) 5))) ; DEST[55..48] (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 6) (TSTGTS I8 (SUBREG I8 (REG I64 (HOLE 1 MM)) 6) (SUBREG I8 (MEM I64 (HOLE 2)) 6))) ; DEST[63..56] (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 7) (TSTGTS I8 (SUBREG I8 (REG I64 (HOLE 1 MM)) 7) (SUBREG I8 (MEM I64 (HOLE 2)) 7))))) ;PCMPGTB xmm, xmm (DEFINST ("PCMPGTB ?1x, ?2x" "nil" "nil") (PARALLEL ; DEST[7..0] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 0) (TSTGTS I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 0) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 0))) ; DEST[15..8] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 1) (TSTGTS I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 1) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 1))) ; DEST[23..16] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 2) (TSTGTS I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 2) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 2))) ; DEST[31..24] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 3) (TSTGTS I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 3) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 3))) ; DEST[39..32] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 4) (TSTGTS I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 4) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 4))) ; DEST[47..40] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 5) (TSTGTS I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 5) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 5))) ; DEST[55..48] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 6) (TSTGTS I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 6) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 6))) ; DEST[63..56] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 7) (TSTGTS I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 7) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 7))) ; DEST[71..64] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 8) (TSTGTS I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 8) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 8))) ; DEST[79..72] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 9) (TSTGTS I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 9) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 9))) ; DEST[87..80] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 10) (TSTGTS I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 10) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 10))) ; DEST[95..88] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 11) (TSTGTS I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 11) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 11))) ; DEST[103..96] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 12) (TSTGTS I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 12) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 12))) ; DEST[111..104] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 13) (TSTGTS I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 13) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 13))) ; DEST[119..112] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 14) (TSTGTS I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 14) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 14))) ; DEST[127..120] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 15) (TSTGTS I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 15) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 15))))) ;PCMPGTB xmm, m128 (DEFINST ("PCMPGTB ?1x, QWORD PTR ??2s" "nil" "nil") (PARALLEL ; DEST[7..0] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 0) (TSTGTS I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 0) (SUBREG I8 (MEM I128 (HOLE 2)) 0))) ; DEST[15..8] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 1) (TSTGTS I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 1) (SUBREG I8 (MEM I128 (HOLE 2)) 1))) ; DEST[23..16] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 2) (TSTGTS I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 2) (SUBREG I8 (MEM I128 (HOLE 2)) 2))) ; DEST[31..24] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 3) (TSTGTS I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 3) (SUBREG I8 (MEM I128 (HOLE 2)) 3))) ; DEST[39..32] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 4) (TSTGTS I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 4) (SUBREG I8 (MEM I128 (HOLE 2)) 4))) ; DEST[47..40] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 5) (TSTGTS I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 5) (SUBREG I8 (MEM I128 (HOLE 2)) 5))) ; DEST[55..48] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 6) (TSTGTS I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 6) (SUBREG I8 (MEM I128 (HOLE 2)) 6))) ; DEST[63..56] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 7) (TSTGTS I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 7) (SUBREG I8 (MEM I128 (HOLE 2)) 7))) ; DEST[71..64] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 8) (TSTGTS I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 8) (SUBREG I8 (MEM I128 (HOLE 2)) 8))) ; DEST[79..72] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 9) (TSTGTS I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 9) (SUBREG I8 (MEM I128 (HOLE 2)) 9))) ; DEST[87..80] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 10) (TSTGTS I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 10) (SUBREG I8 (MEM I128 (HOLE 2)) 10))) ; DEST[95..88] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 11) (TSTGTS I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 11) (SUBREG I8 (MEM I128 (HOLE 2)) 11))) ; DEST[103..96] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 12) (TSTGTS I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 12) (SUBREG I8 (MEM I128 (HOLE 2)) 12))) ; DEST[111..104] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 13) (TSTGTS I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 13) (SUBREG I8 (MEM I128 (HOLE 2)) 13))) ; DEST[119..112] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 14) (TSTGTS I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 14) (SUBREG I8 (MEM I128 (HOLE 2)) 14))) ; DEST[127..120] (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 15) (TSTGTS I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 15) (SUBREG I8 (MEM I128 (HOLE 2)) 15))))) ;PCMPGTD mmx, mmx (DEFINST ("PCMPGTD ?1m, ?2m" "PCMPGTD %?2m,%?1m" "PCMPGTD ?1m, ?2m") (PARALLEL ; DEST[31..0] (SET (SUBREG I32 (REG I64 (HOLE 1 MM)) 0) (TSTGTS I32 (SUBREG I32 (REG I64 (HOLE 1 MM)) 0) (SUBREG I32 (REG I64 (HOLE 2 MM)) 0))) ; DEST[63..32] (SET (SUBREG I32 (REG I64 (HOLE 1 MM)) 1) (TSTGTS I32 (SUBREG I32 (REG I64 (HOLE 1 MM)) 1) (SUBREG I32 (REG I64 (HOLE 2 MM)) 1))))) ;PCMPGTD mmx, m64 (DEFINST ("PCMPGTD ?1m, QWORD PTR ??2s" "PCMPGTD ??2s,%?1m" "PCMPGTD ?1m, QWORD PTR ??2s") (PARALLEL ; DEST[31..0] (SET (SUBREG I32 (REG I64 (HOLE 1 MM)) 0) (TSTGTS I32 (SUBREG I32 (REG I64 (HOLE 1 MM)) 0) (SUBREG I32 (MEM I64 (HOLE 2)) 0))) ; DEST[63..32] (SET (SUBREG I32 (REG I64 (HOLE 1 MM)) 1) (TSTGTS I32 (SUBREG I32 (REG I64 (HOLE 1 MM)) 1) (SUBREG I32 (MEM I64 (HOLE 2)) 1))))) ;PCMPGTD xmm, xmm (DEFINST ("PCMPGTD ?1x, ?2x" "nil" "nil") (PARALLEL ; DEST[31..0] (SET (SUBREG I32 (REG I128 (HOLE 1 XMM)) 0) (TSTGTS I32 (SUBREG I32 (REG I128 (HOLE 1 XMM)) 0) (SUBREG I32 (REG I128 (HOLE 2 XMM)) 0))) ; DEST[63..32] (SET (SUBREG I32 (REG I128 (HOLE 1 XMM)) 1) (TSTGTS I32 (SUBREG I32 (REG I128 (HOLE 1 XMM)) 1) (SUBREG I32 (REG I128 (HOLE 2 XMM)) 1))) ; DEST[95..64] (SET (SUBREG I32 (REG I128 (HOLE 1 XMM)) 2) (TSTGTS I32 (SUBREG I32 (REG I128 (HOLE 1 XMM)) 2) (SUBREG I32 (REG I128 (HOLE 2 XMM)) 2))) ; DEST[127..96] (SET (SUBREG I32 (REG I128 (HOLE 1 XMM)) 3) (TSTGTS I32 (SUBREG I32 (REG I128 (HOLE 1 XMM)) 3) (SUBREG I32 (REG I128 (HOLE 2 XMM)) 3))))) ;PCMPGTD xmm, m128 (DEFINST ("PCMPGTD ?1x, QWORD PTR ??2s" "nil" "nil") (PARALLEL ; DEST[31..0] (SET (SUBREG I32 (REG I128 (HOLE 1 XMM)) 0) (TSTGTS I32 (SUBREG I32 (REG I128 (HOLE 1 XMM)) 0) (SUBREG I32 (MEM I128 (HOLE 2)) 0))) ; DEST[63..32] (SET (SUBREG I32 (REG I128 (HOLE 1 XMM)) 1) (TSTGTS I32 (SUBREG I32 (REG I128 (HOLE 1 XMM)) 1) (SUBREG I32 (MEM I128 (HOLE 2)) 1))) ; DEST[95..64] (SET (SUBREG I32 (REG I128 (HOLE 1 XMM)) 2) (TSTGTS I32 (SUBREG I32 (REG I128 (HOLE 1 XMM)) 2) (SUBREG I32 (MEM I128 (HOLE 2)) 2))) ; DEST[127..96] (SET (SUBREG I32 (REG I128 (HOLE 1 XMM)) 3) (TSTGTS I32 (SUBREG I32 (REG I128 (HOLE 1 XMM)) 3) (SUBREG I32 (MEM I128 (HOLE 2)) 3))))) ;PCMPGTW mmx, mmx (DEFINST ("PCMPGTW ?1m, ?2m" "PCMPGTW %?2m,%?1m" "PCMPGTW ?1m, ?2m") (PARALLEL ; DEST[15..0] (SET (SUBREG I16 (REG I64 (HOLE 1 MM)) 0) (TSTGTS I16 (SUBREG I16 (REG I64 (HOLE 1 MM)) 0) (SUBREG I16 (REG I64 (HOLE 2 MM)) 0))) ; DEST[31..16] (SET (SUBREG I16 (REG I64 (HOLE 1 MM)) 1) (TSTGTS I16 (SUBREG I16 (REG I64 (HOLE 1 MM)) 1) (SUBREG I16 (REG I64 (HOLE 2 MM)) 1))) ; DEST[47..32] (SET (SUBREG I16 (REG I64 (HOLE 1 MM)) 2) (TSTGTS I16 (SUBREG I16 (REG I64 (HOLE 1 MM)) 2) (SUBREG I16 (REG I64 (HOLE 2 MM)) 2))) ; DEST[63..48] (SET (SUBREG I16 (REG I64 (HOLE 1 MM)) 3) (TSTGTS I16 (SUBREG I16 (REG I64 (HOLE 1 MM)) 3) (SUBREG I16 (REG I64 (HOLE 2 MM)) 3))))) ;PCMPGTW mmx, m64 (DEFINST ("PCMPGTW ?1m, QWORD PTR ??2s" "PCMPGTW ??2s,%?1m" "PCMPGTW ?1m, QWORD PTR ??2s") (PARALLEL ; DEST[15..0] (SET (SUBREG I16 (REG I64 (HOLE 1 MM)) 0) (TSTGTS I16 (SUBREG I16 (REG I64 (HOLE 1 MM)) 0) (SUBREG I16 (MEM I64 (HOLE 2)) 0))) ; DEST[31..16] (SET (SUBREG I16 (REG I64 (HOLE 1 MM)) 1) (TSTGTS I16 (SUBREG I16 (REG I64 (HOLE 1 MM)) 1) (SUBREG I16 (MEM I64 (HOLE 2)) 1))) ; DEST[47..32] (SET (SUBREG I16 (REG I64 (HOLE 1 MM)) 2) (TSTGTS I16 (SUBREG I16 (REG I64 (HOLE 1 MM)) 2) (SUBREG I16 (MEM I64 (HOLE 2)) 2))) ; DEST[63..48] (SET (SUBREG I16 (REG I64 (HOLE 1 MM)) 3) (TSTGTS I16 (SUBREG I16 (REG I64 (HOLE 1 MM)) 3) (SUBREG I16 (MEM I64 (HOLE 2)) 3))))) ;PCMPGTW xmm, xmm (DEFINST ("PCMPGTW ?1x, ?2x" "nil" "nil") (PARALLEL ; DEST[15..0] (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 0) (TSTGTS I16 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 0) (SUBREG I16 (REG I128 (HOLE 2 XMM)) 0))) ; DEST[31..16] (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 1) (TSTGTS I16 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 1) (SUBREG I16 (REG I128 (HOLE 2 XMM)) 1))) ; DEST[47..32] (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 2) (TSTGTS I16 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 2) (SUBREG I16 (REG I128 (HOLE 2 XMM)) 2))) ; DEST[63..48] (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 3) (TSTGTS I16 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 3) (SUBREG I16 (REG I128 (HOLE 2 XMM)) 3))) ; DEST[79..64] (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 4) (TSTGTS I16 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 4) (SUBREG I16 (REG I128 (HOLE 2 XMM)) 4))) ; DEST[95..80] (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 5) (TSTGTS I16 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 5) (SUBREG I16 (REG I128 (HOLE 2 XMM)) 5))) ; DEST[111..96] (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 6) (TSTGTS I16 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 6) (SUBREG I16 (REG I128 (HOLE 2 XMM)) 6))) ; DEST[127..112] (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 7) (TSTGTS I16 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 7) (SUBREG I16 (REG I128 (HOLE 2 XMM)) 7))))) ;PCMPGTW xmm, m128 (DEFINST ("PCMPGTW ?1x, QWORD PTR ??2s" "nil" "nil") (PARALLEL ; DEST[15..0] (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 0) (TSTGTS I16 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 0) (SUBREG I16 (MEM I128 (HOLE 2)) 0))) ; DEST[31..16] (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 1) (TSTGTS I16 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 1) (SUBREG I16 (MEM I128 (HOLE 2)) 1))) ; DEST[47..32] (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 2) (TSTGTS I16 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 2) (SUBREG I16 (MEM I128 (HOLE 2)) 2))) ; DEST[63..48] (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 3) (TSTGTS I16 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 3) (SUBREG I16 (MEM I128 (HOLE 2)) 3))) ; DEST[79..64] (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 4) (TSTGTS I16 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 4) (SUBREG I16 (MEM I128 (HOLE 2)) 4))) ; DEST[95..80] (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 5) (TSTGTS I16 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 5) (SUBREG I16 (MEM I128 (HOLE 2)) 5))) ; DEST[111..96] (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 6) (TSTGTS I16 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 6) (SUBREG I16 (MEM I128 (HOLE 2)) 6))) ; DEST[127..112] (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 7) (TSTGTS I16 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 7) (SUBREG I16 (MEM I128 (HOLE 2)) 7))))) ;PAND mmx, mmx (DEFINST ("PAND ?1m, ?2m" "PAND %?2m,%?1m" "PAND ?1m, ?2m") (SET (REG I64 (HOLE 1 MM)) (BAND I64 (REG I64 (HOLE 1 MM)) (REG I64 (HOLE 2 MM))))) ;PAND mmx, m64 (DEFINST ("PAND ?1m, QWORD PTR ??2s" "PAND ??2s,%?1m" "PAND ?1m, QWORD PTR ??2s") (SET (REG I64 (HOLE 1 MM)) (BAND I64 (REG I64 (HOLE 1 MM)) (MEM I64 (HOLE 2))))) ;PAND xmm, xmm (DEFINST ("PAND ?1x, ?2x" "nil" "nil") (SET (REG I128 (HOLE 1 XMM)) (BAND I128 (REG I128 (HOLE 1 XMM)) (REG I128 (HOLE 2 XMM))))) ;PAND xmm, m128 (DEFINST ("PAND ?1x, QWORD PTR ??2s" "nil" "nil") (SET (REG I128 (HOLE 1 XMM)) (BAND I128 (REG I128 (HOLE 1 XMM)) (MEM I128 (HOLE 2))))) ;PANDN mmx, mmx (DEFINST ("PANDN ?1m, ?2m" "PANDN %?2m,%?1m" "PANDN ?1m, ?2m") (SET (REG I64 (HOLE 1 MM)) (BAND I64 (BNOT I64 (REG I64 (HOLE 1 MM))) (REG I64 (HOLE 2 MM))))) ;PANDN mmx, m64 (DEFINST ("PANDN ?1m, QWORD PTR ??2s" "PANDN ??2s,%?1m" "PANDN ?1m, QWORD PTR ??2s") (SET (REG I64 (HOLE 1 MM)) (BAND I64 (BNOT I64 (REG I64 (HOLE 1 MM))) (MEM I64 (HOLE 2))))) ;PANDN xmm, xmm (DEFINST ("PANDN ?1x, ?2x" "nil" "nil") (SET (REG I128 (HOLE 1 XMM)) (BAND I128 (BNOT I128 (REG I128 (HOLE 1 XMM))) (REG I128 (HOLE 2 XMM))))) ;PANDN xmm, m128 (DEFINST ("PANDN ?1x, QWORD PTR ??2s" "nil" "nil") (SET (REG I128 (HOLE 1 XMM)) (BAND I128 (BNOT I128 (REG I128 (HOLE 1 XMM))) (MEM I128 (HOLE 2))))) ;POR mmx, mmx (DEFINST ("POR ?1m, ?2m" "POR %?2m,%?1m" "POR ?1m, ?2m") (SET (REG I64 (HOLE 1 MM)) (BOR I64 (REG I64 (HOLE 1 MM)) (REG I64 (HOLE 2 MM))))) ;POR mmx, m64 (DEFINST ("POR ?1m, QWORD PTR ??2s" "POR ??2s,%?1m" "POR ?1m, QWORD PTR ??2s") (SET (REG I64 (HOLE 1 MM)) (BOR I64 (REG I64 (HOLE 1 MM)) (MEM I64 (HOLE 2))))) ;POR xmm, xmm (DEFINST ("POR ?1x, ?2x" "nil" "nil") (SET (REG I128 (HOLE 1 XMM)) (BOR I128 (REG I128 (HOLE 1 XMM)) (REG I128 (HOLE 2 XMM))))) ;POR xmm, m128 (DEFINST ("POR ?1x, QWORD PTR ??2s" "nil" "nil") (SET (REG I128 (HOLE 1 XMM)) (BOR I128 (REG I128 (HOLE 1 XMM)) (MEM I128 (HOLE 2))))) ;PXOR mmx, mmx (DEFINST ("PXOR ?1m, ?2m" "PXOR %?2m,%?1m" "PXOR ?1m, ?2m") (SET (REG I64 (HOLE 1 MM)) (BXOR I64 (REG I64 (HOLE 1 MM)) (REG I64 (HOLE 2 MM))))) ;PXOR mmx, m64 (DEFINST ("PXOR ?1m, QWORD PTR ??2s" "PXOR ??2s,%?1m" "PXOR ?1m, QWORD PTR ??2s") (SET (REG I64 (HOLE 1 MM)) (BXOR I64 (REG I64 (HOLE 1 MM)) (MEM I64 (HOLE 2))))) ;PXOR xmm, xmm (DEFINST ("PXOR ?1x, ?2x" "nil" "nil") (SET (REG I128 (HOLE 1 XMM)) (BXOR I128 (REG I128 (HOLE 1 XMM)) (REG I128 (HOLE 2 XMM))))) ;PXOR xmm, m128 (DEFINST ("PXOR ?1x, QWORD PTR ??2s" "nil" "nil") (SET (REG I128 (HOLE 1 XMM)) (BXOR I128 (REG I128 (HOLE 1 XMM)) (MEM I128 (HOLE 2))))) ;PSLLD mmx, mmx (DEFINST ("PSLLD ?1m, ?2m" "PSLLD %?2m,%?1m" "PSLLD ?1m, ?2m") (PARALLEL ; DEST[31..0] (SET (SUBREG I32 (REG I64 (HOLE 1 MM)) 0) (LSH I32 (SUBREG I32 (REG I64 (HOLE 1 MM)) 0) (REG I64 (HOLE 2 MM)))) ; DEST[63..32] (SET (SUBREG I32 (REG I64 (HOLE 1 MM)) 1) (LSH I32 (SUBREG I32 (REG I64 (HOLE 1 MM)) 1) (REG I64 (HOLE 2 MM)))))) ;PSLLD mmx, m64 (DEFINST ("PSLLD ?1m, QWORD PTR ??2s" "PSLLD ??2s,%?1m" "PSLLD ?1m, QWORD PTR ??2s") (PARALLEL ; DEST[31..0] (SET (SUBREG I32 (REG I64 (HOLE 1 MM)) 0) (LSH I32 (SUBREG I32 (REG I64 (HOLE 1 MM)) 0) (MEM I64 (HOLE 2)))) ; DEST[63..32] (SET (SUBREG I32 (REG I64 (HOLE 1 MM)) 1) (LSH I32 (SUBREG I32 (REG I64 (HOLE 1 MM)) 1) (MEM I64 (HOLE 2)))))) ;PSLLD mmx, imm8 (DEFINST ("PSLLD ?1m, ?2c" "PSLLD $?2c,%?1m" "PSLLD ?1m, ?2c") (PARALLEL ; DEST[31..0] (SET (SUBREG I32 (REG I64 (HOLE 1 MM)) 0) (LSH I32 (SUBREG I32 (REG I64 (HOLE 1 MM)) 0) (INTCONST I8 (HOLE 2)))) ; DEST[63..32] (SET (SUBREG I32 (REG I64 (HOLE 1 MM)) 1) (LSH I32 (SUBREG I32 (REG I64 (HOLE 1 MM)) 1) (INTCONST I8 (HOLE 2)))))) ;PSLLD xmm, xmm (DEFINST ("PSLLD ?1x, ?2x" "nil" "nil") (PARALLEL ; DEST[31..0] (SET (SUBREG I32 (REG I128 (HOLE 1 XMM)) 0) (LSH I32 (SUBREG I32 (REG I128 (HOLE 1 XMM)) 0) (REG I128 (HOLE 2 XMM)))) ; DEST[63..32] (SET (SUBREG I32 (REG I128 (HOLE 1 XMM)) 1) (LSH I32 (SUBREG I32 (REG I128 (HOLE 1 XMM)) 1) (REG I128 (HOLE 2 XMM)))) ; DEST[95..64] (SET (SUBREG I32 (REG I128 (HOLE 1 XMM)) 2) (LSH I32 (SUBREG I32 (REG I128 (HOLE 1 XMM)) 2) (REG I128 (HOLE 2 XMM)))) ; DEST[127..96] (SET (SUBREG I32 (REG I128 (HOLE 1 XMM)) 3) (LSH I32 (SUBREG I32 (REG I128 (HOLE 1 XMM)) 3) (REG I128 (HOLE 2 XMM)))))) ;PSLLD xmm, m128 (DEFINST ("PSLLD ?1x, QWORD PTR ??2s" "nil" "nil") (PARALLEL ; DEST[31..0] (SET (SUBREG I32 (REG I128 (HOLE 1 XMM)) 0) (LSH I32 (SUBREG I32 (REG I128 (HOLE 1 XMM)) 0) (MEM I128 (HOLE 2)))) ; DEST[63..32] (SET (SUBREG I32 (REG I128 (HOLE 1 XMM)) 1) (LSH I32 (SUBREG I32 (REG I128 (HOLE 1 XMM)) 1) (MEM I128 (HOLE 2)))) ; DEST[95..64] (SET (SUBREG I32 (REG I128 (HOLE 1 XMM)) 2) (LSH I32 (SUBREG I32 (REG I128 (HOLE 1 XMM)) 2) (MEM I128 (HOLE 2)))) ; DEST[127..96] (SET (SUBREG I32 (REG I128 (HOLE 1 XMM)) 3) (LSH I32 (SUBREG I32 (REG I128 (HOLE 1 XMM)) 3) (MEM I128 (HOLE 2)))))) ;PSLLD xmm, imm8 (DEFINST ("PSLLD ?1x, ?2c" "nil" "nil") (PARALLEL ; DEST[31..0] (SET (SUBREG I32 (REG I128 (HOLE 1 XMM)) 0) (LSH I32 (SUBREG I32 (REG I128 (HOLE 1 XMM)) 0) (INTCONST I8 (HOLE 2)))) ; DEST[63..32] (SET (SUBREG I32 (REG I128 (HOLE 1 XMM)) 1) (LSH I32 (SUBREG I32 (REG I128 (HOLE 1 XMM)) 1) (INTCONST I8 (HOLE 2)))) ; DEST[95..64] (SET (SUBREG I32 (REG I128 (HOLE 1 XMM)) 2) (LSH I32 (SUBREG I32 (REG I128 (HOLE 1 XMM)) 2) (INTCONST I8 (HOLE 2)))) ; DEST[127..96] (SET (SUBREG I32 (REG I128 (HOLE 1 XMM)) 3) (LSH I32 (SUBREG I32 (REG I128 (HOLE 1 XMM)) 3) (INTCONST I8 (HOLE 2)))))) ;PSLLQ mmx, mmx (DEFINST ("PSLLQ ?1m, ?2m" "PSLLQ %?2m,%?1m" "PSLLQ ?1m, ?2m") ; DEST[63..0] (SET (REG I64 (HOLE 1 MM)) (LSH I64 (REG I64 (HOLE 1 MM)) (REG I64 (HOLE 2 MM))))) ;PSLLQ mmx, m64 (DEFINST ("PSLLQ ?1m, QWORD PTR ??2s" "PSLLQ ??2s,%?1m" "PSLLQ ?1m, QWORD PTR ??2s") ; DEST[63..0] (SET (REG I64 (HOLE 1 MM)) (LSH I64 (REG I64 (HOLE 1 MM)) (MEM I64 (HOLE 2))))) ;PSLLQ mmx, imm8 (DEFINST ("PSLLQ ?1m, ?2c" "PSLLQ $?2c,%?1m" "PSLLQ ?1m, ?2c") ; DEST[63..0] (SET (REG I64 (HOLE 1 MM)) (LSH I64 (REG I64 (HOLE 1 MM)) (INTCONST I8 (HOLE 2))))) ;PSLLQ xmm, xmm (DEFINST ("PSLLQ ?1x, ?2x" "nil" "nil") (PARALLEL ; DEST[63..0] (SET (SUBREG I64 (REG I128 (HOLE 1 XMM)) 0) (LSH I64 (SUBREG I64 (REG I128 (HOLE 1 XMM)) 0) (REG I128 (HOLE 2 XMM)))) ; DEST[127..64] (SET (SUBREG I64 (REG I128 (HOLE 1 XMM)) 1) (LSH I64 (SUBREG I64 (REG I128 (HOLE 1 XMM)) 1) (REG I128 (HOLE 2 XMM)))))) ;PSLLQ xmm, m128 (DEFINST ("PSLLQ ?1x, QWORD PTR ??2s" "nil" "nil") (PARALLEL ; DEST[63..0] (SET (SUBREG I64 (REG I128 (HOLE 1 XMM)) 0) (LSH I64 (SUBREG I64 (REG I128 (HOLE 1 XMM)) 0) (MEM I128 (HOLE 2)))) ; DEST[127..64] (SET (SUBREG I64 (REG I128 (HOLE 1 XMM)) 1) (LSH I64 (SUBREG I64 (REG I128 (HOLE 1 XMM)) 1) (MEM I128 (HOLE 2)))))) ;PSLLQ xmm, imm8 (DEFINST ("PSLLQ ?1x, ?2c" "nil" "nil") (PARALLEL ; DEST[63..0] (SET (SUBREG I64 (REG I128 (HOLE 1 XMM)) 0) (LSH I64 (SUBREG I64 (REG I128 (HOLE 1 XMM)) 0) (INTCONST I8 (HOLE 2)))) ; DEST[127..64] (SET (SUBREG I64 (REG I128 (HOLE 1 XMM)) 1) (LSH I64 (SUBREG I64 (REG I128 (HOLE 1 XMM)) 1) (INTCONST I8 (HOLE 2)))))) ;PSLLW mmx, mmx (DEFINST ("PSLLW ?1m, ?2m" "PSLLW %?2m,%?1m" "PSLLW ?1m, ?2m") (PARALLEL ; DEST[15..0] (SET (SUBREG I16 (REG I64 (HOLE 1 MM)) 0) (LSH I16 (SUBREG I16 (REG I64 (HOLE 1 MM)) 0) (REG I64 (HOLE 2 MM)))) ; DEST[31..16] (SET (SUBREG I16 (REG I64 (HOLE 1 MM)) 1) (LSH I16 (SUBREG I16 (REG I64 (HOLE 1 MM)) 1) (REG I64 (HOLE 2 MM)))) ; DEST[47..32] (SET (SUBREG I16 (REG I64 (HOLE 1 MM)) 2) (LSH I16 (SUBREG I16 (REG I64 (HOLE 1 MM)) 2) (REG I64 (HOLE 2 MM)))) ; DEST[63..48] (SET (SUBREG I16 (REG I64 (HOLE 1 MM)) 3) (LSH I16 (SUBREG I16 (REG I64 (HOLE 1 MM)) 3) (REG I64 (HOLE 2 MM)))))) ;PSLLW mmx, m64 (DEFINST ("PSLLW ?1m, QWORD PTR ??2s" "PSLLW ??2s,%?1m" "PSLLW ?1m, QWORD PTR ??2s") (PARALLEL ; DEST[15..0] (SET (SUBREG I16 (REG I64 (HOLE 1 MM)) 0) (LSH I16 (SUBREG I16 (REG I64 (HOLE 1 MM)) 0) (MEM I64 (HOLE 2)))) ; DEST[31..16] (SET (SUBREG I16 (REG I64 (HOLE 1 MM)) 1) (LSH I16 (SUBREG I16 (REG I64 (HOLE 1 MM)) 1) (MEM I64 (HOLE 2)))) ; DEST[47..32] (SET (SUBREG I16 (REG I64 (HOLE 1 MM)) 2) (LSH I16 (SUBREG I16 (REG I64 (HOLE 1 MM)) 2) (MEM I64 (HOLE 2)))) ; DEST[63..48] (SET (SUBREG I16 (REG I64 (HOLE 1 MM)) 3) (LSH I16 (SUBREG I16 (REG I64 (HOLE 1 MM)) 3) (MEM I64 (HOLE 2)))))) ;PSLLW mmx, imm8 (DEFINST ("PSLLW ?1m, ?2c" "PSLLW $?2c,%?1m" "PSLLW ?1m, ?2c") (PARALLEL ; DEST[15..0] (SET (SUBREG I16 (REG I64 (HOLE 1 MM)) 0) (LSH I16 (SUBREG I16 (REG I64 (HOLE 1 MM)) 0) (INTCONST I8 (HOLE 2)))) ; DEST[31..16] (SET (SUBREG I16 (REG I64 (HOLE 1 MM)) 1) (LSH I16 (SUBREG I16 (REG I64 (HOLE 1 MM)) 1) (INTCONST I8 (HOLE 2)))) ; DEST[47..32] (SET (SUBREG I16 (REG I64 (HOLE 1 MM)) 2) (LSH I16 (SUBREG I16 (REG I64 (HOLE 1 MM)) 2) (INTCONST I8 (HOLE 2)))) ; DEST[63..48] (SET (SUBREG I16 (REG I64 (HOLE 1 MM)) 3) (LSH I16 (SUBREG I16 (REG I64 (HOLE 1 MM)) 3) (INTCONST I8 (HOLE 2)))))) ;PSLLW xmm, xmm (DEFINST ("PSLLW ?1x, ?2x" "nil" "nil") (PARALLEL ; DEST[15..0] (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 0) (LSH I16 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 0) (REG I128 (HOLE 2 XMM)))) ; DEST[31..16] (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 1) (LSH I16 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 1) (REG I128 (HOLE 2 XMM)))) ; DEST[47..32] (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 2) (LSH I16 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 2) (REG I128 (HOLE 2 XMM)))) ; DEST[63..48] (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 3) (LSH I16 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 3) (REG I128 (HOLE 2 XMM)))) ; DEST[79..64] (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 4) (LSH I16 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 4) (REG I128 (HOLE 2 XMM)))) ; DEST[95..80] (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 5) (LSH I16 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 5) (REG I128 (HOLE 2 XMM)))) ; DEST[111..96] (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 6) (LSH I16 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 6) (REG I128 (HOLE 2 XMM)))) ; DEST[127..112] (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 7) (LSH I16 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 7) (REG I128 (HOLE 2 XMM)))))) ;PSLLW xmm, m128 (DEFINST ("PSLLW ?1x, QWORD PTR ??2s" "nil" "nil") (PARALLEL ; DEST[15..0] (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 0) (LSH I16 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 0) (MEM I128 (HOLE 2)))) ; DEST[31..16] (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 1) (LSH I16 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 1) (MEM I128 (HOLE 2)))) ; DEST[47..32] (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 2) (LSH I16 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 2) (MEM I128 (HOLE 2)))) ; DEST[63..48] (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 3) (LSH I16 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 3) (MEM I128 (HOLE 2)))) ; DEST[79..64] (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 4) (LSH I16 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 4) (MEM I128 (HOLE 2)))) ; DEST[95..80] (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 5) (LSH I16 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 5) (MEM I128 (HOLE 2)))) ; DEST[111..96] (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 6) (LSH I16 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 6) (MEM I128 (HOLE 2)))) ; DEST[127..112] (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 7) (LSH I16 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 7) (MEM I128 (HOLE 2)))))) ;PSLLW xmm, imm8 (DEFINST ("PSLLW ?1x, ?2c" "nil" "nil") (PARALLEL ; DEST[15..0] (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 0) (LSH I16 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 0) (INTCONST I8 (HOLE 2)))) ; DEST[31..16] (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 1) (LSH I16 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 1) (INTCONST I8 (HOLE 2)))) ; DEST[47..32] (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 2) (LSH I16 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 2) (INTCONST I8 (HOLE 2)))) ; DEST[63..48] (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 3) (LSH I16 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 3) (INTCONST I8 (HOLE 2)))) ; DEST[79..64] (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 4) (LSH I16 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 4) (INTCONST I8 (HOLE 2)))) ; DEST[95..80] (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 5) (LSH I16 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 5) (INTCONST I8 (HOLE 2)))) ; DEST[111..96] (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 6) (LSH I16 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 6) (INTCONST I8 (HOLE 2)))) ; DEST[127..112] (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 7) (LSH I16 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 7) (INTCONST I8 (HOLE 2)))))) ;PSRAD mmx, mmx (DEFINST ("PSRAD ?1m, ?2m" "PSRAD %?2m,%?1m" "PSRAD ?1m, ?2m") (PARALLEL ; DEST[31..0] (SET (SUBREG I32 (REG I64 (HOLE 1 MM)) 0) (RSHS I32 (SUBREG I32 (REG I64 (HOLE 1 MM)) 0) (REG I64 (HOLE 2 MM)))) ; DEST[63..32] (SET (SUBREG I32 (REG I64 (HOLE 1 MM)) 1) (RSHS I32 (SUBREG I32 (REG I64 (HOLE 1 MM)) 1) (REG I64 (HOLE 2 MM)))))) ;PSRAD mmx, m64 (DEFINST ("PSRAD ?1m, QWORD PTR ??2s" "PSRAD ??2s,%?1m" "PSRAD ?1m, QWORD PTR ??2s") (PARALLEL ; DEST[31..0] (SET (SUBREG I32 (REG I64 (HOLE 1 MM)) 0) (RSHS I32 (SUBREG I32 (REG I64 (HOLE 1 MM)) 0) (MEM I64 (HOLE 2)))) ; DEST[63..32] (SET (SUBREG I32 (REG I64 (HOLE 1 MM)) 1) (RSHS I32 (SUBREG I32 (REG I64 (HOLE 1 MM)) 1) (MEM I64 (HOLE 2)))))) ;PSRAD mmx, imm8 (DEFINST ("PSRAD ?1m, ?2c" "PSRAD $?2c,%?1m" "PSRAD ?1m, ?2c") (PARALLEL ; DEST[31..0] (SET (SUBREG I32 (REG I64 (HOLE 1 MM)) 0) (RSHS I32 (SUBREG I32 (REG I64 (HOLE 1 MM)) 0) (INTCONST I8 (HOLE 2)))) ; DEST[63..32] (SET (SUBREG I32 (REG I64 (HOLE 1 MM)) 1) (RSHS I32 (SUBREG I32 (REG I64 (HOLE 1 MM)) 1) (INTCONST I8 (HOLE 2)))))) ;PSRAD xmm, xmm (DEFINST ("PSRAD ?1x, ?2x" "nil" "nil") (PARALLEL ; DEST[31..0] (SET (SUBREG I32 (REG I128 (HOLE 1 XMM)) 0) (RSHS I32 (SUBREG I32 (REG I128 (HOLE 1 XMM)) 0) (REG I128 (HOLE 2 XMM)))) ; DEST[63..32] (SET (SUBREG I32 (REG I128 (HOLE 1 XMM)) 1) (RSHS I32 (SUBREG I32 (REG I128 (HOLE 1 XMM)) 1) (REG I128 (HOLE 2 XMM)))) ; DEST[95..64] (SET (SUBREG I32 (REG I128 (HOLE 1 XMM)) 2) (RSHS I32 (SUBREG I32 (REG I128 (HOLE 1 XMM)) 2) (REG I128 (HOLE 2 XMM)))) ; DEST[127..96] (SET (SUBREG I32 (REG I128 (HOLE 1 XMM)) 3) (RSHS I32 (SUBREG I32 (REG I128 (HOLE 1 XMM)) 3) (REG I128 (HOLE 2 XMM)))))) ;PSRAD xmm, m128 (DEFINST ("PSRAD ?1x, QWORD PTR ??2s" "nil" "nil") (PARALLEL ; DEST[31..0] (SET (SUBREG I32 (REG I128 (HOLE 1 XMM)) 0) (RSHS I32 (SUBREG I32 (REG I128 (HOLE 1 XMM)) 0) (MEM I128 (HOLE 2)))) ; DEST[63..32] (SET (SUBREG I32 (REG I128 (HOLE 1 XMM)) 1) (RSHS I32 (SUBREG I32 (REG I128 (HOLE 1 XMM)) 1) (MEM I128 (HOLE 2)))) ; DEST[95..64] (SET (SUBREG I32 (REG I128 (HOLE 1 XMM)) 2) (RSHS I32 (SUBREG I32 (REG I128 (HOLE 1 XMM)) 2) (MEM I128 (HOLE 2)))) ; DEST[127..96] (SET (SUBREG I32 (REG I128 (HOLE 1 XMM)) 3) (RSHS I32 (SUBREG I32 (REG I128 (HOLE 1 XMM)) 3) (MEM I128 (HOLE 2)))))) ;PSRAD xmm, imm8 (DEFINST ("PSRAD ?1x, ?2c" "nil" "nil") (PARALLEL ; DEST[31..0] (SET (SUBREG I32 (REG I128 (HOLE 1 XMM)) 0) (RSHS I32 (SUBREG I32 (REG I128 (HOLE 1 XMM)) 0) (INTCONST I8 (HOLE 2)))) ; DEST[63..32] (SET (SUBREG I32 (REG I128 (HOLE 1 XMM)) 1) (RSHS I32 (SUBREG I32 (REG I128 (HOLE 1 XMM)) 1) (INTCONST I8 (HOLE 2)))) ; DEST[95..64] (SET (SUBREG I32 (REG I128 (HOLE 1 XMM)) 2) (RSHS I32 (SUBREG I32 (REG I128 (HOLE 1 XMM)) 2) (INTCONST I8 (HOLE 2)))) ; DEST[127..96] (SET (SUBREG I32 (REG I128 (HOLE 1 XMM)) 3) (RSHS I32 (SUBREG I32 (REG I128 (HOLE 1 XMM)) 3) (INTCONST I8 (HOLE 2)))))) ;PSRAW mmx, mmx (DEFINST ("PSRAW ?1m, ?2m" "PSRAW %?2m,%?1m" "PSRAW ?1m, ?2m") (PARALLEL ; DEST[15..0] (SET (SUBREG I16 (REG I64 (HOLE 1 MM)) 0) (RSHS I16 (SUBREG I16 (REG I64 (HOLE 1 MM)) 0) (REG I64 (HOLE 2 MM)))) ; DEST[31..16] (SET (SUBREG I16 (REG I64 (HOLE 1 MM)) 1) (RSHS I16 (SUBREG I16 (REG I64 (HOLE 1 MM)) 1) (REG I64 (HOLE 2 MM)))) ; DEST[47..32] (SET (SUBREG I16 (REG I64 (HOLE 1 MM)) 2) (RSHS I16 (SUBREG I16 (REG I64 (HOLE 1 MM)) 2) (REG I64 (HOLE 2 MM)))) ; DEST[63..48] (SET (SUBREG I16 (REG I64 (HOLE 1 MM)) 3) (RSHS I16 (SUBREG I16 (REG I64 (HOLE 1 MM)) 3) (REG I64 (HOLE 2 MM)))))) ;PSRAW mmx, m64 (DEFINST ("PSRAW ?1m, QWORD PTR ??2s" "PSRAW ??2s,%?1m" "PSRAW ?1m, QWORD PTR ??2s") (PARALLEL ; DEST[15..0] (SET (SUBREG I16 (REG I64 (HOLE 1 MM)) 0) (RSHS I16 (SUBREG I16 (REG I64 (HOLE 1 MM)) 0) (MEM I64 (HOLE 2)))) ; DEST[31..16] (SET (SUBREG I16 (REG I64 (HOLE 1 MM)) 1) (RSHS I16 (SUBREG I16 (REG I64 (HOLE 1 MM)) 1) (MEM I64 (HOLE 2)))) ; DEST[47..32] (SET (SUBREG I16 (REG I64 (HOLE 1 MM)) 2) (RSHS I16 (SUBREG I16 (REG I64 (HOLE 1 MM)) 2) (MEM I64 (HOLE 2)))) ; DEST[63..48] (SET (SUBREG I16 (REG I64 (HOLE 1 MM)) 3) (RSHS I16 (SUBREG I16 (REG I64 (HOLE 1 MM)) 3) (MEM I64 (HOLE 2)))))) ;PSRAW mmx, imm8 (DEFINST ("PSRAW ?1m, ?2c" "PSRAW $?2c,%?1m" "PSRAW ?1m, ?2c") (PARALLEL ; DEST[15..0] (SET (SUBREG I16 (REG I64 (HOLE 1 MM)) 0) (RSHS I16 (SUBREG I16 (REG I64 (HOLE 1 MM)) 0) (INTCONST I8 (HOLE 2)))) ; DEST[31..16] (SET (SUBREG I16 (REG I64 (HOLE 1 MM)) 1) (RSHS I16 (SUBREG I16 (REG I64 (HOLE 1 MM)) 1) (INTCONST I8 (HOLE 2)))) ; DEST[47..32] (SET (SUBREG I16 (REG I64 (HOLE 1 MM)) 2) (RSHS I16 (SUBREG I16 (REG I64 (HOLE 1 MM)) 2) (INTCONST I8 (HOLE 2)))) ; DEST[63..48] (SET (SUBREG I16 (REG I64 (HOLE 1 MM)) 3) (RSHS I16 (SUBREG I16 (REG I64 (HOLE 1 MM)) 3) (INTCONST I8 (HOLE 2)))))) ;PSRAW xmm, xmm (DEFINST ("PSRAW ?1x, ?2x" "nil" "nil") (PARALLEL ; DEST[15..0] (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 0) (RSHS I16 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 0) (REG I128 (HOLE 2 XMM)))) ; DEST[31..16] (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 1) (RSHS I16 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 1) (REG I128 (HOLE 2 XMM)))) ; DEST[47..32] (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 2) (RSHS I16 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 2) (REG I128 (HOLE 2 XMM)))) ; DEST[63..48] (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 3) (RSHS I16 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 3) (REG I128 (HOLE 2 XMM)))) ; DEST[79..64] (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 4) (RSHS I16 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 4) (REG I128 (HOLE 2 XMM)))) ; DEST[95..80] (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 5) (RSHS I16 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 5) (REG I128 (HOLE 2 XMM)))) ; DEST[111..96] (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 6) (RSHS I16 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 6) (REG I128 (HOLE 2 XMM)))) ; DEST[127..112] (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 7) (RSHS I16 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 7) (REG I128 (HOLE 2 XMM)))))) ;PSRAW xmm, m128 (DEFINST ("PSRAW ?1x, QWORD PTR ??2s" "nil" "nil") (PARALLEL ; DEST[15..0] (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 0) (RSHS I16 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 0) (MEM I128 (HOLE 2)))) ; DEST[31..16] (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 1) (RSHS I16 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 1) (MEM I128 (HOLE 2)))) ; DEST[47..32] (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 2) (RSHS I16 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 2) (MEM I128 (HOLE 2)))) ; DEST[63..48] (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 3) (RSHS I16 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 3) (MEM I128 (HOLE 2)))) ; DEST[79..64] (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 4) (RSHS I16 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 4) (MEM I128 (HOLE 2)))) ; DEST[95..80] (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 5) (RSHS I16 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 5) (MEM I128 (HOLE 2)))) ; DEST[111..96] (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 6) (RSHS I16 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 6) (MEM I128 (HOLE 2)))) ; DEST[127..112] (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 7) (RSHS I16 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 7) (MEM I128 (HOLE 2)))))) ;PSRAW xmm, imm8 (DEFINST ("PSRAW ?1x, ?2c" "nil" "nil") (PARALLEL ; DEST[15..0] (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 0) (RSHS I16 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 0) (INTCONST I8 (HOLE 2)))) ; DEST[31..16] (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 1) (RSHS I16 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 1) (INTCONST I8 (HOLE 2)))) ; DEST[47..32] (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 2) (RSHS I16 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 2) (INTCONST I8 (HOLE 2)))) ; DEST[63..48] (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 3) (RSHS I16 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 3) (INTCONST I8 (HOLE 2)))) ; DEST[79..64] (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 4) (RSHS I16 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 4) (INTCONST I8 (HOLE 2)))) ; DEST[95..80] (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 5) (RSHS I16 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 5) (INTCONST I8 (HOLE 2)))) ; DEST[111..96] (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 6) (RSHS I16 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 6) (INTCONST I8 (HOLE 2)))) ; DEST[127..112] (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 7) (RSHS I16 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 7) (INTCONST I8 (HOLE 2)))))) ;PSRLD mmx, mmx (DEFINST ("PSRLD ?1m, ?2m" "PSRLD %?2m,%?1m" "PSRLD ?1m, ?2m") (PARALLEL ; DEST[31..0] (SET (SUBREG I32 (REG I64 (HOLE 1 MM)) 0) (RSHU I32 (SUBREG I32 (REG I64 (HOLE 1 MM)) 0) (REG I64 (HOLE 2 MM)))) ; DEST[63..32] (SET (SUBREG I32 (REG I64 (HOLE 1 MM)) 1) (RSHU I32 (SUBREG I32 (REG I64 (HOLE 1 MM)) 1) (REG I64 (HOLE 2 MM)))))) ;PSRLD mmx, m64 (DEFINST ("PSRLD ?1m, QWORD PTR ??2s" "PSRLD ??2s,%?1m" "PSRLD ?1m, QWORD PTR ??2s") (PARALLEL ; DEST[31..0] (SET (SUBREG I32 (REG I64 (HOLE 1 MM)) 0) (RSHU I32 (SUBREG I32 (REG I64 (HOLE 1 MM)) 0) (MEM I64 (HOLE 2)))) ; DEST[63..32] (SET (SUBREG I32 (REG I64 (HOLE 1 MM)) 1) (RSHU I32 (SUBREG I32 (REG I64 (HOLE 1 MM)) 1) (MEM I64 (HOLE 2)))))) ;PSRLD mmx, imm8 (DEFINST ("PSRLD ?1m, ?2c" "PSRLD $?2c,%?1m" "PSRLD ?1m, ?2c") (PARALLEL ; DEST[31..0] (SET (SUBREG I32 (REG I64 (HOLE 1 MM)) 0) (RSHU I32 (SUBREG I32 (REG I64 (HOLE 1 MM)) 0) (INTCONST I8 (HOLE 2)))) ; DEST[63..32] (SET (SUBREG I32 (REG I64 (HOLE 1 MM)) 1) (RSHU I32 (SUBREG I32 (REG I64 (HOLE 1 MM)) 1) (INTCONST I8 (HOLE 2)))))) ;PSRLD xmm, xmm (DEFINST ("PSRLD ?1x, ?2x" "nil" "nil") (PARALLEL ; DEST[31..0] (SET (SUBREG I32 (REG I128 (HOLE 1 XMM)) 0) (RSHU I32 (SUBREG I32 (REG I128 (HOLE 1 XMM)) 0) (REG I128 (HOLE 2 XMM)))) ; DEST[63..32] (SET (SUBREG I32 (REG I128 (HOLE 1 XMM)) 1) (RSHU I32 (SUBREG I32 (REG I128 (HOLE 1 XMM)) 1) (REG I128 (HOLE 2 XMM)))) ; DEST[95..64] (SET (SUBREG I32 (REG I128 (HOLE 1 XMM)) 2) (RSHU I32 (SUBREG I32 (REG I128 (HOLE 1 XMM)) 2) (REG I128 (HOLE 2 XMM)))) ; DEST[127..96] (SET (SUBREG I32 (REG I128 (HOLE 1 XMM)) 3) (RSHU I32 (SUBREG I32 (REG I128 (HOLE 1 XMM)) 3) (REG I128 (HOLE 2 XMM)))))) ;PSRLD xmm, m128 (DEFINST ("PSRLD ?1x, QWORD PTR ??2s" "nil" "nil") (PARALLEL ; DEST[31..0] (SET (SUBREG I32 (REG I128 (HOLE 1 XMM)) 0) (RSHU I32 (SUBREG I32 (REG I128 (HOLE 1 XMM)) 0) (MEM I128 (HOLE 2)))) ; DEST[63..32] (SET (SUBREG I32 (REG I128 (HOLE 1 XMM)) 1) (RSHU I32 (SUBREG I32 (REG I128 (HOLE 1 XMM)) 1) (MEM I128 (HOLE 2)))) ; DEST[95..64] (SET (SUBREG I32 (REG I128 (HOLE 1 XMM)) 2) (RSHU I32 (SUBREG I32 (REG I128 (HOLE 1 XMM)) 2) (MEM I128 (HOLE 2)))) ; DEST[127..96] (SET (SUBREG I32 (REG I128 (HOLE 1 XMM)) 3) (RSHU I32 (SUBREG I32 (REG I128 (HOLE 1 XMM)) 3) (MEM I128 (HOLE 2)))))) ;PSRLD xmm, imm8 (DEFINST ("PSRLD ?1x, ?2c" "nil" "nil") (PARALLEL ; DEST[31..0] (SET (SUBREG I32 (REG I128 (HOLE 1 XMM)) 0) (RSHU I32 (SUBREG I32 (REG I128 (HOLE 1 XMM)) 0) (INTCONST I8 (HOLE 2)))) ; DEST[63..32] (SET (SUBREG I32 (REG I128 (HOLE 1 XMM)) 1) (RSHU I32 (SUBREG I32 (REG I128 (HOLE 1 XMM)) 1) (INTCONST I8 (HOLE 2)))) ; DEST[95..64] (SET (SUBREG I32 (REG I128 (HOLE 1 XMM)) 2) (RSHU I32 (SUBREG I32 (REG I128 (HOLE 1 XMM)) 2) (INTCONST I8 (HOLE 2)))) ; DEST[127..96] (SET (SUBREG I32 (REG I128 (HOLE 1 XMM)) 3) (RSHU I32 (SUBREG I32 (REG I128 (HOLE 1 XMM)) 3) (INTCONST I8 (HOLE 2)))))) ;PSRLQ mmx, mmx (DEFINST ("PSRLQ ?1m, ?2m" "PSRLQ %?2m,%?1m" "PSRLQ ?1m, ?2m") ; DEST[63..0] (SET (REG I64 (HOLE 1 MM)) (RSHU I64 (REG I64 (HOLE 1 MM)) (REG I64 (HOLE 2 MM))))) ;PSRLQ mmx, m64 (DEFINST ("PSRLQ ?1m, QWORD PTR ??2s" "PSRLQ ??2s,%?1m" "PSRLQ ?1m, QWORD PTR ??2s") ; DEST[63..0] (SET (REG I64 (HOLE 1 MM)) (RSHU I64 (REG I64 (HOLE 1 MM)) (MEM I64 (HOLE 2))))) ;PSRLQ mmx, imm8 (DEFINST ("PSRLQ ?1m, ?2c" "PSRLQ $?2c,%?1m" "PSRLQ ?1m, ?2c") ; DEST[63..0] (SET (REG I64 (HOLE 1 MM)) (RSHU I64 (REG I64 (HOLE 1 MM)) (INTCONST I8 (HOLE 2))))) ;PSRLQ xmm, xmm (DEFINST ("PSRLQ ?1x, ?2x" "nil" "nil") (PARALLEL ; DEST[63..0] (SET (SUBREG I64 (REG I128 (HOLE 1 XMM)) 0) (RSHU I64 (SUBREG I64 (REG I128 (HOLE 1 XMM)) 0) (REG I128 (HOLE 2 XMM)))) ; DEST[127..64] (SET (SUBREG I64 (REG I128 (HOLE 1 XMM)) 1) (RSHU I64 (SUBREG I64 (REG I128 (HOLE 1 XMM)) 1) (REG I128 (HOLE 2 XMM)))))) ;PSRLQ xmm, m128 (DEFINST ("PSRLQ ?1x, QWORD PTR ??2s" "nil" "nil") (PARALLEL ; DEST[63..0] (SET (SUBREG I64 (REG I128 (HOLE 1 XMM)) 0) (RSHU I64 (SUBREG I64 (REG I128 (HOLE 1 XMM)) 0) (MEM I128 (HOLE 2)))) ; DEST[127..64] (SET (SUBREG I64 (REG I128 (HOLE 1 XMM)) 1) (RSHU I64 (SUBREG I64 (REG I128 (HOLE 1 XMM)) 1) (MEM I128 (HOLE 2)))))) ;PSRLQ xmm, imm8 (DEFINST ("PSRLQ ?1x, ?2c" "nil" "nil") (PARALLEL ; DEST[63..0] (SET (SUBREG I64 (REG I128 (HOLE 1 XMM)) 0) (RSHU I64 (SUBREG I64 (REG I128 (HOLE 1 XMM)) 0) (INTCONST I8 (HOLE 2)))) ; DEST[127..64] (SET (SUBREG I64 (REG I128 (HOLE 1 XMM)) 1) (RSHU I64 (SUBREG I64 (REG I128 (HOLE 1 XMM)) 1) (INTCONST I8 (HOLE 2)))))) ;PSRLW mmx, mmx (DEFINST ("PSRLW ?1m, ?2m" "PSRLW %?2m,%?1m" "PSRLW ?1m, ?2m") (PARALLEL ; DEST[15..0] (SET (SUBREG I16 (REG I64 (HOLE 1 MM)) 0) (RSHU I16 (SUBREG I16 (REG I64 (HOLE 1 MM)) 0) (REG I64 (HOLE 2 MM)))) ; DEST[31..16] (SET (SUBREG I16 (REG I64 (HOLE 1 MM)) 1) (RSHU I16 (SUBREG I16 (REG I64 (HOLE 1 MM)) 1) (REG I64 (HOLE 2 MM)))) ; DEST[47..32] (SET (SUBREG I16 (REG I64 (HOLE 1 MM)) 2) (RSHU I16 (SUBREG I16 (REG I64 (HOLE 1 MM)) 2) (REG I64 (HOLE 2 MM)))) ; DEST[63..48] (SET (SUBREG I16 (REG I64 (HOLE 1 MM)) 3) (RSHU I16 (SUBREG I16 (REG I64 (HOLE 1 MM)) 3) (REG I64 (HOLE 2 MM)))))) ;PSRLW mmx, m64 (DEFINST ("PSRLW ?1m, QWORD PTR ??2s" "PSRLW ??2s,%?1m" "PSRLW ?1m, QWORD PTR ??2s") (PARALLEL ; DEST[15..0] (SET (SUBREG I16 (REG I64 (HOLE 1 MM)) 0) (RSHU I16 (SUBREG I16 (REG I64 (HOLE 1 MM)) 0) (MEM I64 (HOLE 2)))) ; DEST[31..16] (SET (SUBREG I16 (REG I64 (HOLE 1 MM)) 1) (RSHU I16 (SUBREG I16 (REG I64 (HOLE 1 MM)) 1) (MEM I64 (HOLE 2)))) ; DEST[47..32] (SET (SUBREG I16 (REG I64 (HOLE 1 MM)) 2) (RSHU I16 (SUBREG I16 (REG I64 (HOLE 1 MM)) 2) (MEM I64 (HOLE 2)))) ; DEST[63..48] (SET (SUBREG I16 (REG I64 (HOLE 1 MM)) 3) (RSHU I16 (SUBREG I16 (REG I64 (HOLE 1 MM)) 3) (MEM I64 (HOLE 2)))))) ;PSRLW mmx, imm8 (DEFINST ("PSRLW ?1m, ?2c" "PSRLW $?2c,%?1m" "PSRLW ?1m, ?2c") (PARALLEL ; DEST[15..0] (SET (SUBREG I16 (REG I64 (HOLE 1 MM)) 0) (RSHU I16 (SUBREG I16 (REG I64 (HOLE 1 MM)) 0) (INTCONST I8 (HOLE 2)))) ; DEST[31..16] (SET (SUBREG I16 (REG I64 (HOLE 1 MM)) 1) (RSHU I16 (SUBREG I16 (REG I64 (HOLE 1 MM)) 1) (INTCONST I8 (HOLE 2)))) ; DEST[47..32] (SET (SUBREG I16 (REG I64 (HOLE 1 MM)) 2) (RSHU I16 (SUBREG I16 (REG I64 (HOLE 1 MM)) 2) (INTCONST I8 (HOLE 2)))) ; DEST[63..48] (SET (SUBREG I16 (REG I64 (HOLE 1 MM)) 3) (RSHU I16 (SUBREG I16 (REG I64 (HOLE 1 MM)) 3) (INTCONST I8 (HOLE 2)))))) ;PSRLW xmm, xmm (DEFINST ("PSRLW ?1x, ?2x" "nil" "nil") (PARALLEL ; DEST[15..0] (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 0) (RSHU I16 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 0) (REG I128 (HOLE 2 XMM)))) ; DEST[31..16] (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 1) (RSHU I16 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 1) (REG I128 (HOLE 2 XMM)))) ; DEST[47..32] (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 2) (RSHU I16 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 2) (REG I128 (HOLE 2 XMM)))) ; DEST[63..48] (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 3) (RSHU I16 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 3) (REG I128 (HOLE 2 XMM)))) ; DEST[79..64] (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 4) (RSHU I16 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 4) (REG I128 (HOLE 2 XMM)))) ; DEST[95..80] (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 5) (RSHU I16 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 5) (REG I128 (HOLE 2 XMM)))) ; DEST[111..96] (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 6) (RSHU I16 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 6) (REG I128 (HOLE 2 XMM)))) ; DEST[127..112] (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 7) (RSHU I16 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 7) (REG I128 (HOLE 2 XMM)))))) ;PSRLW xmm, m128 (DEFINST ("PSRLW ?1x, QWORD PTR ??2s" "nil" "nil") (PARALLEL ; DEST[15..0] (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 0) (RSHU I16 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 0) (MEM I128 (HOLE 2)))) ; DEST[31..16] (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 1) (RSHU I16 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 1) (MEM I128 (HOLE 2)))) ; DEST[47..32] (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 2) (RSHU I16 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 2) (MEM I128 (HOLE 2)))) ; DEST[63..48] (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 3) (RSHU I16 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 3) (MEM I128 (HOLE 2)))) ; DEST[79..64] (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 4) (RSHU I16 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 4) (MEM I128 (HOLE 2)))) ; DEST[95..80] (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 5) (RSHU I16 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 5) (MEM I128 (HOLE 2)))) ; DEST[111..96] (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 6) (RSHU I16 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 6) (MEM I128 (HOLE 2)))) ; DEST[127..112] (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 7) (RSHU I16 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 7) (MEM I128 (HOLE 2)))))) ;PSRLW xmm, imm8 (DEFINST ("PSRLW ?1x, ?2c" "nil" "nil") (PARALLEL ; DEST[15..0] (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 0) (RSHU I16 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 0) (INTCONST I8 (HOLE 2)))) ; DEST[31..16] (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 1) (RSHU I16 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 1) (INTCONST I8 (HOLE 2)))) ; DEST[47..32] (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 2) (RSHU I16 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 2) (INTCONST I8 (HOLE 2)))) ; DEST[63..48] (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 3) (RSHU I16 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 3) (INTCONST I8 (HOLE 2)))) ; DEST[79..64] (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 4) (RSHU I16 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 4) (INTCONST I8 (HOLE 2)))) ; DEST[95..80] (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 5) (RSHU I16 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 5) (INTCONST I8 (HOLE 2)))) ; DEST[111..96] (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 6) (RSHU I16 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 6) (INTCONST I8 (HOLE 2)))) ; DEST[127..112] (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 7) (RSHU I16 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 7) (INTCONST I8 (HOLE 2)))))) ;パックド単精度浮動小数点数を移動する。メモリは16バイトにアライメント ;MOVAPS xmm,xmm (DEFINST ("MOVAPS ?1x,?2x" "MOVAPS %?2x,%?1x" "MOVAPS ?1x,?2x") (PARALLEL (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 0) (SUBREG F32 (REG I128 (HOLE 2 XMM)) 0)) (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 1) (SUBREG F32 (REG I128 (HOLE 2 XMM)) 1)) (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 2) (SUBREG F32 (REG I128 (HOLE 2 XMM)) 2)) (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 3) (SUBREG F32 (REG I128 (HOLE 2 XMM)) 3)))) ;MOVAPS xmm,m128 (DEFINST ("MOVAPS ?1x,REAL4 PTR ??2s" "MOVAPS ??2s,%?1x" "MOVAPS ?1x,??2s") (PARALLEL (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 0) (SUBREG F32 (MEM I128 (HOLE 2)) 0)) (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 1) (SUBREG F32 (MEM I128 (HOLE 2)) 1)) (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 2) (SUBREG F32 (MEM I128 (HOLE 2)) 2)) (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 3) (SUBREG F32 (MEM I128 (HOLE 2)) 3)))) ;MOVAPS m128,xmm (DEFINST ("MOVAPS REAL4 PTR ??1s,?2x" "MOVAPS %?2x,??1s" "MOVAPS ??1s,?2x") (PARALLEL (SET (SUBREG F32 (MEM I128 (HOLE 1)) 0) (SUBREG F32 (REG I128 (HOLE 2 XMM)) 0)) (SET (SUBREG F32 (MEM I128 (HOLE 1)) 1) (SUBREG F32 (REG I128 (HOLE 2 XMM)) 1)) (SET (SUBREG F32 (MEM I128 (HOLE 1)) 2) (SUBREG F32 (REG I128 (HOLE 2 XMM)) 2)) (SET (SUBREG F32 (MEM I128 (HOLE 1)) 3) (SUBREG F32 (REG I128 (HOLE 2 XMM)) 3)))) ;2つの単精度浮動小数点値をXMMの上位クワッドワードから下位クワッドワードに移動する ;MOVHLPS xmm,xmm (DEFINST ("MOVHLPS ?1x,?2x" "MOVHLPS %?2x,%?1x" "MOVHLPS ?1x,?2x") (PARALLEL (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 0) (SUBREG F32 (REG I128 (HOLE 2 XMM)) 2)) (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 1) (SUBREG F32 (REG I128 (HOLE 2 XMM)) 3)))) ;2つの単精度浮動小数点値をメモリとXMMの上位クワッドワードの間で移動する ;MOVHPS xmm,m64 (DEFINST ("MOVHPS ?1x,QWORD PTR ??2s" "MOVHPS ??2s,%?1x" "MOVHPS ?1x,QWORD PTR ??2s") (PARALLEL (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 2) (SUBREG F32 (MEM I64 (HOLE 2)) 0)) (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 3) (SUBREG F32 (MEM I64 (HOLE 2)) 1)))) ;MOVHPS m64,xmm (DEFINST ("MOVHPS QWORD PTR ??1s,?2x" "MOVHPS %?2x,??1s" "MOVHPS QWORD PTR ??1s,?2x") (PARALLEL (SET (SUBREG F32 (MEM I64 (HOLE 1)) 0) (SUBREG F32 (REG I128 (HOLE 2 XMM)) 2)) (SET (SUBREG F32 (MEM I64 (HOLE 1)) 1) (SUBREG F32 (REG I128 (HOLE 2 XMM)) 3)))) ;2つの単精度浮動小数点値をXMMの下位クワッドワードから上位クワッドワードに移動する ;MOVLHPS xmm,xmm (DEFINST ("MOVLHPS ?1x,?2x" "MOVLHPS %?2x,%?1x" "MOVLHPS ?1x,?2x") (PARALLEL (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 2) (SUBREG F32 (REG I128 (HOLE 2 XMM)) 0)) (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 3) (SUBREG F32 (REG I128 (HOLE 2 XMM)) 1)))) ;2つの単精度浮動小数点値をメモリとXMMの下位クワッドワードの間で移動する ;MOVLPS xmm,m64 (DEFINST ("MOVLPS ?1x,QWORD PTR ??2s" "MOVLPS ??2s,%?1x" "MOVLPS ?1x,QWORD PTR ??2s") (PARALLEL (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 0) (SUBREG F32 (MEM I64 (HOLE 2)) 0)) (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 1) (SUBREG F32 (MEM I64 (HOLE 2)) 1)))) ;MOVLPS m64,xmm (DEFINST ("MOVLPS QWORD PTR ??1s,?2x" "MOVLPS %?2x,??1s" "MOVLPS QWORD PTR ??1s,?2x") (PARALLEL (SET (SUBREG F32 (MEM I64 (HOLE 1)) 0) (SUBREG F32 (REG I128 (HOLE 2 XMM)) 0)) (SET (SUBREG F32 (MEM I64 (HOLE 1)) 1) (SUBREG F32 (REG I128 (HOLE 2 XMM)) 1)))) ;XMM から4ビットの符号マスクを取り出し、汎用レジスタに入れる ;MOVMSKPS r32,xmm (DEFINST ("MOVMSKPS ?1r,?2x" "MOVMSKPS %?2x,%?1r" "MOVMSKPS ?1r,?2x") (SET (REG I32 (HOLE 1 R32)) (BOR I32 (CONVZX I32 (FSIGN I1 (SUBREG F32 (REG I128 (HOLE 2 XMM)) 0))) (BOR I32 (LSH I32 (CONVZX I32 (FSIGN I1 (SUBREG F32 (REG I128 (HOLE 2 XMM)) 1))) (INTCONST I8 1)) (BOR I32 (LSH I32 (CONVZX I32 (FSIGN I1 (SUBREG F32 (REG I128 (HOLE 2 XMM)) 2))) (INTCONST I8 2)) (LSH I32 (CONVZX I32 (FSIGN I1 (SUBREG F32 (REG I128 (HOLE 2 XMM)) 3))) (INTCONST I8 3))))))) ;スカラ単精度浮動小数点数を移動する。 ;MOVSS xmm,xmm (DEFINST ("MOVSS ?1x,?2x" "MOVSS %?2x,%?1x" "MOVSS ?1x,?2x") (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 0) (SUBREG F32 (REG I128 (HOLE 2 XMM)) 0))) ;MOVSS m32,xmm (DEFINST ("MOVSS REAL4 PTR ??1s,?2x" "MOVSS %?2x,??1s" "MOVSS ??1s,?2x") (SET (MEM F32 (HOLE 1)) (SUBREG F32 (REG I128 (HOLE 2 XMM)) 0))) ;MOVSS xmm,m32 (DEFINST ("MOVSS ?1x,REAL4 PTR ??2s" "MOVSS ??2s,%?1x" "MOVSS ?1x,??2s") (PARALLEL (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 0) (MEM F32 (HOLE 2))) (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 1) (FLOATCONST F32 0.0)) (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 2) (FLOATCONST F32 0.0)) (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 3) (FLOATCONST F32 0.0)))) ;パックド単精度浮動小数点数を移動する。メモリはアライメントなし ;MOVUPS xmm,xmm (DEFINST ("MOVUPS ?1x,?2x" "MOVUPS %?2x,%?1x" "MOVUPS ?1x,?2x") (PARALLEL (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 0) (SUBREG F32 (REG I128 (HOLE 2 XMM)) 0)) (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 1) (SUBREG F32 (REG I128 (HOLE 2 XMM)) 1)) (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 2) (SUBREG F32 (REG I128 (HOLE 2 XMM)) 2)) (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 3) (SUBREG F32 (REG I128 (HOLE 2 XMM)) 3)))) ;MOVUPS xmm,m128 (DEFINST ("MOVUPS ?1x,REAL4 PTR ??2s" "MOVUPS ??2s,%?1x" "MOVUPS ?1x,??2s") (PARALLEL (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 0) (SUBREG F32 (MEM I128 (HOLE 2)) 0)) (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 1) (SUBREG F32 (MEM I128 (HOLE 2)) 1)) (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 2) (SUBREG F32 (MEM I128 (HOLE 2)) 2)) (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 3) (SUBREG F32 (MEM I128 (HOLE 2)) 3)))) ;MOVUPS m128,xmm (DEFINST ("MOVUPS REAL4 PTR ??1s,?2x" "MOVUPS %?2x,??1s" "MOVUPS ??1s,?2x") (PARALLEL (SET (SUBREG F32 (MEM I128 (HOLE 1)) 0) (SUBREG F32 (REG I128 (HOLE 2 XMM)) 0)) (SET (SUBREG F32 (MEM I128 (HOLE 1)) 1) (SUBREG F32 (REG I128 (HOLE 2 XMM)) 1)) (SET (SUBREG F32 (MEM I128 (HOLE 1)) 2) (SUBREG F32 (REG I128 (HOLE 2 XMM)) 2)) (SET (SUBREG F32 (MEM I128 (HOLE 1)) 3) (SUBREG F32 (REG I128 (HOLE 2 XMM)) 3)))) ;2つの符号付きダブルワード整数を2つの単精度浮動小数点値に変換 ;CVTPI2PS xmm,mm (DEFINST ("CVTPI2PS ?1x,?2m" "CVTPI2PS %?2m,%?1x" "CVTPI2PS ?1x,?2m") (PARALLEL (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 0) (CONVSF F32 (SUBREG I32 (REG I64 (HOLE 2 MM)) 0))) (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 1) (CONVSF F32 (SUBREG I32 (REG I64 (HOLE 2 MM)) 1))))) ;CVTPI2PS xmm,m64 (DEFINST ("CVTPI2PS ?1x,QWORD PTR ??2s" "CVTPI2PS ??2s,%?1x" "CVTPI2PS ?1x,QWORD PTR ??2s") (PARALLEL (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 0) (CONVSF F32 (SUBREG I32 (MEM I64 (HOLE 2)) 0))) (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 1) (CONVSF F32 (SUBREG I32 (MEM I64 (HOLE 2)) 1))))) ;2つの単精度浮動小数点値を2つの符号付きダブルワード整数に変換(MXCSRレジスタの ;丸め制御ビットに従い丸める) ;CVTPS2PI mm,xmm (DEFINST ("CVTPS2PI ?1m,?2x" "CVTPS2PI %?2x,%?1m" "CVTPS2PI ?1m,?2x") (PARALLEL (SET (SUBREG I32 (REG I64 (HOLE 1 MM)) 0) (CONVFIDD I32 (SUBREG F32 (REG I128 (HOLE 2 XMM)) 0))) (SET (SUBREG I32 (REG I64 (HOLE 1 MM)) 1) (CONVFIDD I32 (SUBREG F32 (REG I128 (HOLE 2 XMM)) 1))))) ;CVTPS2PI mm,m64 (DEFINST ("CVTPS2PI ?1m,REAL4 PTR ??2s" "CVTPS2PI ??2s,%?1m" "CVTPS2PI ?1m,??2s") (PARALLEL (SET (SUBREG I32 (REG I64 (HOLE 1 MM)) 0) (CONVFIDD I32 (SUBREG F32 (MEM I64 (HOLE 2)) 0))) (SET (SUBREG I32 (REG I64 (HOLE 1 MM)) 1) (CONVFIDD I32 (SUBREG F32 (MEM I64 (HOLE 2)) 1))))) ;1つの符号付きダブルワード整数を単精度浮動小数点数に変換 ;CVTSI2SS xmm,r32 (DEFINST ("CVTSI2SS ?1x,?2r" "CVTSI2SS %?2r,%?1x" "CVTSI2SS ?1x,?2r") (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 0) (CONVSF F32 (REG I32 (HOLE 2 R32))))) ;CVTSI2SS xmm,m32 (DEFINST ("CVTSI2SS ?1x,DWORD PTR ??2s" "CVTSI2SS ??2s,%?1x" "CVTSI2SS ?1x,DWORD PTR ??2s") (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 0) (CONVSF F32 (MEM I32 (HOLE 2))))) ;1つの単精度浮動小数点値を1つの符号付きダブルワード整数に変換(MXCSRレジスタの ;丸め制御ビットに従い丸める) ;CVTSS2SI r32,xmm (DEFINST ("CVTSS2SI ?1r,?2x" "CVTSS2SI %?2x,%?1r" "CVTSS2SI ?1r,?2x") (SET (REG I32 (HOLE 1 R32)) (CONVFIDD I32 (SUBREG F32 (REG I128 (HOLE 2 XMM)) 0)))) ;CVTSS2SI r32,m32 (DEFINST ("CVTSS2SI ?1r,REAL4 PTR ??2s" "CVTSS2SI ??2s,%?1r" "CVTSS2SI ?1r,??2s") (SET (REG I32 (HOLE 1 R32)) (CONVFIDD I32 (MEM F32 (HOLE 2))))) ;2つの単精度浮動小数点値を2つの符号付きダブルワード整数に変換(切り捨て) ;CVTTPS2PI mm,xmm (DEFINST ("CVTTPS2PI ?1m,?2x" "CVTTPS2PI %?2x,%?1m" "CVTTPS2PI ?1m,?2x") (PARALLEL (SET (SUBREG I32 (REG I64 (HOLE 1 MM)) 0) (IFTHENELSE I32 (TSTGES I1 (SUBREG F32 (REG I128 (HOLE 2 XMM)) 0) (FLOATCONST F32 2147483648.0)) (INTCONST I32 #x7FFFFFFF) (IFTHENELSE I32 (TSTLES I1 (SUBREG F32 (REG I128 (HOLE 2 XMM)) 0) (FLOATCONST F32 -2147483648.0)) (INTCONST I32 #x80000000) (CONVFIZ I32 (SUBREG F32 (REG I128 (HOLE 2 XMM)) 0))))) (SET (SUBREG I32 (REG I64 (HOLE 1 MM)) 1) (IFTHENELSE I32 (TSTGES I1 (SUBREG F32 (REG I128 (HOLE 2 XMM)) 1) (FLOATCONST F32 2147483648.0)) (INTCONST I32 #x7FFFFFFF) (IFTHENELSE I32 (TSTLES I1 (SUBREG F32 (REG I128 (HOLE 2 XMM)) 1) (FLOATCONST F32 -2147483648.0)) (INTCONST I32 #x80000000) (CONVFIZ I32 (SUBREG F32 (REG I128 (HOLE 2 XMM)) 1))))))) ;CVTTPS2PI mm,m64 (DEFINST ("CVTTPS2PI ?1m,REAL4 PTR ??2s" "CVTTPS2PI ??2s,%?1m" "CVTTPS2PI ?1m,??2s") (PARALLEL (SET (SUBREG I32 (REG I64 (HOLE 1 MM)) 0) (IFTHENELSE I32 (TSTGES I1 (SUBREG F32 (MEM I64 (HOLE 2)) 0) (FLOATCONST F32 2147483648.0)) (INTCONST I32 #x7FFFFFFF) (IFTHENELSE I32 (TSTLES I1 (SUBREG F32 (MEM I64 (HOLE 2)) 0) (FLOATCONST F32 -2147483648.0)) (INTCONST I32 #x80000000) (CONVFIZ I32 (SUBREG F32 (MEM I64 (HOLE 2)) 0))))) (SET (SUBREG I32 (REG I64 (HOLE 1 MM)) 1) (IFTHENELSE I32 (TSTGES I1 (SUBREG F32 (MEM I64 (HOLE 2)) 1) (FLOATCONST F32 2147483648.0)) (INTCONST I32 #x7FFFFFFF) (IFTHENELSE I32 (TSTLES I1 (SUBREG F32 (MEM I64 (HOLE 2)) 1) (FLOATCONST F32 -2147483648.0)) (INTCONST I32 #x80000000) (CONVFIZ I32 (SUBREG F32 (MEM I64 (HOLE 2)) 1))))))) ;1つの単精度浮動小数点値を1つの符号付きダブルワード整数に変換(切り捨て) ;CVTTSS2SI r32,xmm (DEFINST ("CVTTSS2SI ?1r,?2x" "CVTTSS2SI %?2x,%?1r" "CVTTSS2SI ?1r,?2x") (SET (REG I32 (HOLE 1 R32)) (IFTHENELSE I32 (TSTGES I1 (SUBREG F32 (REG I128 (HOLE 2 XMM)) 0) (FLOATCONST F32 2147483648.0)) (INTCONST I32 #x7FFFFFFF) (IFTHENELSE I32 (TSTLES I1 (SUBREG F32 (REG I128 (HOLE 2 XMM)) 0) (FLOATCONST F32 -2147483648.0)) (INTCONST I32 #x80000000) (CONVFIZ I32 (SUBREG F32 (REG I128 (HOLE 2 XMM)) 0)))))) ;CVTTSS2SI r32,m32 (DEFINST ("CVTTSS2SI ?1r,REAL4 PTR ??2s" "CVTTSS2SI ??2s,%?1r" "CVTTSS2SI ?1r,??2s") (SET (REG I32 (HOLE 1 R32)) (IFTHENELSE I32 (TSTGES I1 (MEM F32 (HOLE 2)) (FLOATCONST F32 2147483648.0)) (INTCONST I32 #x7FFFFFFF) (IFTHENELSE I32 (TSTLES I1 (MEM F32 (HOLE 2)) (FLOATCONST F32 -2147483648.0)) (INTCONST I32 #x80000000) (CONVFIZ I32 (MEM F32 (HOLE 2))))))) ;パックド単精度浮動小数点数の加算をする ;ADDPS xmm,xmm (DEFINST ("ADDPS ?1x,?2x" "ADDPS %?2x,%?1x" "ADDPS ?1x,?2x") (PARALLEL (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 0) (ADD F32 (SUBREG F32 (REG I128 (HOLE 1 XMM)) 0) (SUBREG F32 (REG I128 (HOLE 2 XMM)) 0))) (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 1) (ADD F32 (SUBREG F32 (REG I128 (HOLE 1 XMM)) 1) (SUBREG F32 (REG I128 (HOLE 2 XMM)) 1))) (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 2) (ADD F32 (SUBREG F32 (REG I128 (HOLE 1 XMM)) 2) (SUBREG F32 (REG I128 (HOLE 2 XMM)) 2))) (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 3) (ADD F32 (SUBREG F32 (REG I128 (HOLE 1 XMM)) 3) (SUBREG F32 (REG I128 (HOLE 2 XMM)) 3))))) ;ADDPS xmm,m128 (DEFINST ("ADDPS ?1x,REAL4 PTR ??2s" "ADDPS ??2s,%?1x" "ADDPS ?1x,??2s") (PARALLEL (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 0) (ADD F32 (SUBREG F32 (REG I128 (HOLE 1 XMM)) 0) (SUBREG F32 (MEM I128 (HOLE 2)) 0))) (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 1) (ADD F32 (SUBREG F32 (REG I128 (HOLE 1 XMM)) 1) (SUBREG F32 (MEM I128 (HOLE 2)) 1))) (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 2) (ADD F32 (SUBREG F32 (REG I128 (HOLE 1 XMM)) 2) (SUBREG F32 (MEM I128 (HOLE 2)) 2))) (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 3) (ADD F32 (SUBREG F32 (REG I128 (HOLE 1 XMM)) 3) (SUBREG F32 (MEM I128 (HOLE 2)) 3))))) ;スカラー単精度浮動小数点数の加算をする ;ADDSS xmm,xmm (DEFINST ("ADDSS ?1x,?2x" "ADDSS %?2x,%?1x" "ADDSS ?1x,?2x") (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 0) (ADD F32 (SUBREG F32 (REG I128 (HOLE 1 XMM)) 0) (SUBREG F32 (REG I128 (HOLE 2 XMM)) 0)))) ;ADDSS xmm,m32 (DEFINST ("ADDSS ?1x,REAL4 PTR ??2s" "ADDSS ??2s,%?1x" "ADDSS ?1x,??2s") (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 0) (ADD F32 (SUBREG F32 (REG I128 (HOLE 1 XMM)) 0) (MEM F32 (HOLE 2))))) ;パックド単精度浮動小数点数の除算をする ;DIVPS xmm,xmm (DEFINST ("DIVPS ?1x,?2x" "DIVPS %?2x,%?1x" "DIVPS ?1x,?2x") (PARALLEL (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 0) (DIVS F32 (SUBREG F32 (REG I128 (HOLE 1 XMM)) 0) (SUBREG F32 (REG I128 (HOLE 2 XMM)) 0))) (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 1) (DIVS F32 (SUBREG F32 (REG I128 (HOLE 1 XMM)) 1) (SUBREG F32 (REG I128 (HOLE 2 XMM)) 1))) (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 2) (DIVS F32 (SUBREG F32 (REG I128 (HOLE 1 XMM)) 2) (SUBREG F32 (REG I128 (HOLE 2 XMM)) 2))) (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 3) (DIVS F32 (SUBREG F32 (REG I128 (HOLE 1 XMM)) 3) (SUBREG F32 (REG I128 (HOLE 2 XMM)) 3))))) ;DIVPS xmm,m128 (DEFINST ("DIVPS ?1x,REAL4 PTR ??2s" "DIVPS ??2s,%?1x" "DIVPS ?1x,??2s") (PARALLEL (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 0) (DIVS F32 (SUBREG F32 (REG I128 (HOLE 1 XMM)) 0) (SUBREG F32 (MEM I128 (HOLE 2)) 0))) (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 1) (DIVS F32 (SUBREG F32 (REG I128 (HOLE 1 XMM)) 1) (SUBREG F32 (MEM I128 (HOLE 2)) 1))) (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 2) (DIVS F32 (SUBREG F32 (REG I128 (HOLE 1 XMM)) 2) (SUBREG F32 (MEM I128 (HOLE 2)) 2))) (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 3) (DIVS F32 (SUBREG F32 (REG I128 (HOLE 1 XMM)) 3) (SUBREG F32 (MEM I128 (HOLE 2)) 3))))) ;スカラー単精度浮動小数点数の除算をする ;DIVSS xmm,xmm (DEFINST ("DIVSS ?1x,?2x" "DIVSS %?2x,%?1x" "DIVSS ?1x,?2x") (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 0) (DIVS F32 (SUBREG F32 (REG I128 (HOLE 1 XMM)) 0) (SUBREG F32 (REG I128 (HOLE 2 XMM)) 0)))) ;DIVSS xmm,m32 (DEFINST ("DIVSS ?1x,REAL4 PTR ??2s" "DIVSS ??2s,%?1x" "DIVSS ?1x,??2s") (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 0) (DIVS F32 (SUBREG F32 (REG I128 (HOLE 1 XMM)) 0) (MEM F32 (HOLE 2))))) ;パックド単精度浮動小数点数を比較し最大値を得る ;MAXPS xmm,xmm (DEFINST ("MAXPS ?1x,?2x" "MAXPS %?2x,%?1x" "MAXPS ?1x,?2x") (PARALLEL (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 0) (IFTHENELSE F32 (BAND I1 (TSTEQ I1 (SUBREG F32 (REG I128 (HOLE 1 XMM)) 0)(FLOATCONST F32 0.0)) (TSTEQ I1 (SUBREG F32 (REG I128 (HOLE 2 XMM)) 0)(FLOATCONST F32 0.0))) (SUBREG F32 (REG I128 (HOLE 2 XMM)) 0) (IFTHENELSE F32 ;第1オペランドが非数 (NOTANUMBER I1 (SUBREG F32 (REG I128 (HOLE 1 XMM)) 0)) (SUBREG F32 (REG I128 (HOLE 2 XMM)) 0) (IFTHENELSE F32 ;第2オペランドが非数 (NOTANUMBER I1 (SUBREG F32 (REG I128 (HOLE 2 XMM)) 0)) (SUBREG F32 (REG I128 (HOLE 2 XMM)) 0) (IFTHENELSE F32 (TSTGTS I1 (SUBREG F32 (REG I128 (HOLE 1 XMM)) 0) (SUBREG F32 (REG I128 (HOLE 2 XMM)) 0)) (SUBREG F32 (REG I128 (HOLE 1 XMM)) 0) (SUBREG F32 (REG I128 (HOLE 2 XMM)) 0)))))) (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 1) (IFTHENELSE F32 (BAND I1 (TSTEQ I1 (SUBREG F32 (REG I128 (HOLE 1 XMM)) 1)(FLOATCONST F32 0.0)) (TSTEQ I1 (SUBREG F32 (REG I128 (HOLE 2 XMM)) 1)(FLOATCONST F32 0.0))) (SUBREG F32 (REG I128 (HOLE 2 XMM)) 1) (IFTHENELSE F32 (NOTANUMBER I1 (SUBREG F32 (REG I128 (HOLE 1 XMM)) 1)) (SUBREG F32 (REG I128 (HOLE 2 XMM)) 1) (IFTHENELSE F32 (NOTANUMBER I1 (SUBREG F32 (REG I128 (HOLE 2 XMM)) 1)) (SUBREG F32 (REG I128 (HOLE 2 XMM)) 1) (IFTHENELSE F32 (TSTGTS I1 (SUBREG F32 (REG I128 (HOLE 1 XMM)) 1) (SUBREG F32 (REG I128 (HOLE 2 XMM)) 1)) (SUBREG F32 (REG I128 (HOLE 1 XMM)) 1) (SUBREG F32 (REG I128 (HOLE 2 XMM)) 1)))))) (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 2) (IFTHENELSE F32 (BAND I1 (TSTEQ I1 (SUBREG F32 (REG I128 (HOLE 1 XMM)) 2)(FLOATCONST F32 0.0)) (TSTEQ I1 (SUBREG F32 (REG I128 (HOLE 2 XMM)) 2)(FLOATCONST F32 0.0))) (SUBREG F32 (REG I128 (HOLE 2 XMM)) 2) (IFTHENELSE F32 (NOTANUMBER I1 (SUBREG F32 (REG I128 (HOLE 1 XMM)) 2)) (SUBREG F32 (REG I128 (HOLE 2 XMM)) 2) (IFTHENELSE F32 (NOTANUMBER I1 (SUBREG F32 (REG I128 (HOLE 2 XMM)) 2)) (SUBREG F32 (REG I128 (HOLE 2 XMM)) 2) (IFTHENELSE F32 (TSTGTS I1 (SUBREG F32 (REG I128 (HOLE 1 XMM)) 2) (SUBREG F32 (REG I128 (HOLE 2 XMM)) 2)) (SUBREG F32 (REG I128 (HOLE 1 XMM)) 2) (SUBREG F32 (REG I128 (HOLE 2 XMM)) 2)))))) (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 3) (IFTHENELSE F32 (BAND I1 (TSTEQ I1 (SUBREG F32 (REG I128 (HOLE 1 XMM)) 3)(FLOATCONST F32 0.0)) (TSTEQ I1 (SUBREG F32 (REG I128 (HOLE 2 XMM)) 3)(FLOATCONST F32 0.0))) (SUBREG F32 (REG I128 (HOLE 2 XMM)) 3) (IFTHENELSE F32 (NOTANUMBER I1 (SUBREG F32 (REG I128 (HOLE 1 XMM)) 3)) (SUBREG F32 (REG I128 (HOLE 2 XMM)) 3) (IFTHENELSE F32 (NOTANUMBER I1 (SUBREG F32 (REG I128 (HOLE 2 XMM)) 3)) (SUBREG F32 (REG I128 (HOLE 2 XMM)) 3) (IFTHENELSE F32 (TSTGTS I1 (SUBREG F32 (REG I128 (HOLE 1 XMM)) 3) (SUBREG F32 (REG I128 (HOLE 2 XMM)) 3)) (SUBREG F32 (REG I128 (HOLE 1 XMM)) 3) (SUBREG F32 (REG I128 (HOLE 2 XMM)) 3)))))))) ;MAXPS xmm,m128 (DEFINST ("MAXPS ?1x,REAL4 PTR ??2s" "MAXPS ??2s,%?1x" "MAXPS ?1x,??2s") (PARALLEL (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 0) (IFTHENELSE F32 (BAND I1 (TSTEQ I1 (SUBREG F32 (REG I128 (HOLE 1 XMM)) 0)(FLOATCONST F32 0.0)) (TSTEQ I1 (SUBREG F32 (MEM I128 (HOLE 2)) 0)(FLOATCONST F32 0.0))) (SUBREG F32 (MEM I128 (HOLE 2)) 0) (IFTHENELSE F32 (NOTANUMBER I1 (SUBREG F32 (REG I128 (HOLE 1 XMM)) 0)) (SUBREG F32 (MEM I128 (HOLE 2)) 0) (IFTHENELSE F32 (NOTANUMBER I1 (SUBREG F32 (MEM I128 (HOLE 2)) 0)) (SUBREG F32 (MEM I128 (HOLE 2)) 0) (IFTHENELSE F32 (TSTGTS I1 (SUBREG F32 (REG I128 (HOLE 1 XMM)) 0) (SUBREG F32 (MEM I128 (HOLE 2)) 0)) (SUBREG F32 (REG I128 (HOLE 1 XMM)) 0) (SUBREG F32 (MEM I128 (HOLE 2)) 0)))))) (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 1) (IFTHENELSE F32 (BAND I1 (TSTEQ I1 (SUBREG F32 (REG I128 (HOLE 1 XMM)) 1)(FLOATCONST F32 0.0)) (TSTEQ I1 (SUBREG F32 (MEM I128 (HOLE 2)) 1)(FLOATCONST F32 0.0))) (SUBREG F32 (MEM I128 (HOLE 2)) 1) (IFTHENELSE F32 (NOTANUMBER I1 (SUBREG F32 (REG I128 (HOLE 1 XMM)) 1)) (SUBREG F32 (MEM I128 (HOLE 2)) 1) (IFTHENELSE F32 (NOTANUMBER I1 (SUBREG F32 (MEM I128 (HOLE 2)) 1)) (SUBREG F32 (MEM I128 (HOLE 2)) 1) (IFTHENELSE F32 (TSTGTS I1 (SUBREG F32 (REG I128 (HOLE 1 XMM)) 1) (SUBREG F32 (MEM I128 (HOLE 2)) 1)) (SUBREG F32 (REG I128 (HOLE 1 XMM)) 1) (SUBREG F32 (MEM I128 (HOLE 2)) 1)))))) (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 2) (IFTHENELSE F32 (BAND I1 (TSTEQ I1 (SUBREG F32 (REG I128 (HOLE 1 XMM)) 2)(FLOATCONST F32 0.0)) (TSTEQ I1 (SUBREG F32 (MEM I128 (HOLE 2)) 2)(FLOATCONST F32 0.0))) (SUBREG F32 (MEM I128 (HOLE 2)) 2) (IFTHENELSE F32 (NOTANUMBER I1 (SUBREG F32 (REG I128 (HOLE 1 XMM)) 2)) (SUBREG F32 (MEM I128 (HOLE 2)) 2) (IFTHENELSE F32 (NOTANUMBER I1 (SUBREG F32 (MEM I128 (HOLE 2)) 2)) (SUBREG F32 (MEM I128 (HOLE 2)) 2) (IFTHENELSE F32 (TSTGTS I1 (SUBREG F32 (REG I128 (HOLE 1 XMM)) 2) (SUBREG F32 (MEM I128 (HOLE 2)) 2)) (SUBREG F32 (REG I128 (HOLE 1 XMM)) 2) (SUBREG F32 (MEM I128 (HOLE 2)) 2)))))) (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 3) (IFTHENELSE F32 (BAND I1 (TSTEQ I1 (SUBREG F32 (REG I128 (HOLE 1 XMM)) 3)(FLOATCONST F32 0.0)) (TSTEQ I1 (SUBREG F32 (MEM I128 (HOLE 2)) 3)(FLOATCONST F32 0.0))) (SUBREG F32 (MEM I128 (HOLE 2)) 3) (IFTHENELSE F32 (NOTANUMBER I1 (SUBREG F32 (REG I128 (HOLE 1 XMM)) 3)) (SUBREG F32 (MEM I128 (HOLE 2)) 3) (IFTHENELSE F32 (NOTANUMBER I1 (SUBREG F32 (MEM I128 (HOLE 2)) 3)) (SUBREG F32 (MEM I128 (HOLE 2)) 3) (IFTHENELSE F32 (TSTGTS I1 (SUBREG F32 (REG I128 (HOLE 1 XMM)) 3) (SUBREG F32 (MEM I128 (HOLE 2)) 3)) (SUBREG F32 (REG I128 (HOLE 1 XMM)) 3) (SUBREG F32 (MEM I128 (HOLE 2)) 3)))))))) ;スカラー単精度浮動小数点数を比較し最大値を得る ;MAXSS xmm,xmm (DEFINST ("MAXSS ?1x,?2x" "MAXSS %?2x,%?1x" "MAXSS ?1x,?2x") (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 0) (IFTHENELSE F32 (BAND I1 (TSTEQ I1 (SUBREG F32 (REG I128 (HOLE 1 XMM)) 0)(FLOATCONST F32 0.0)) (TSTEQ I1 (SUBREG F32 (REG I128 (HOLE 2 XMM)) 0)(FLOATCONST F32 0.0))) (SUBREG F32 (REG I128 (HOLE 2 XMM)) 0) (IFTHENELSE F32 ;第1オペランドが非数 (NOTANUMBER I1 (SUBREG F32 (REG I128 (HOLE 1 XMM)) 0)) (SUBREG F32 (REG I128 (HOLE 2 XMM)) 0) (IFTHENELSE F32 ;第2オペランドが非数 (NOTANUMBER I1 (SUBREG F32 (REG I128 (HOLE 2 XMM)) 0)) (SUBREG F32 (REG I128 (HOLE 2 XMM)) 0) (IFTHENELSE F32 (TSTGTS I1 (SUBREG F32 (REG I128 (HOLE 1 XMM)) 0) (SUBREG F32 (REG I128 (HOLE 2 XMM)) 0)) (SUBREG F32 (REG I128 (HOLE 1 XMM)) 0) (SUBREG F32 (REG I128 (HOLE 2 XMM)) 0))))))) ;MAXSS xmm,m32 (DEFINST ("MAXSS ?1x,REAL4 PTR ??2s" "MAXSS ??2s,%?1x" "MAXSS ?1x,??2s") (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 0) (IFTHENELSE F32 (BAND I1 (TSTEQ I1 (SUBREG F32 (REG I128 (HOLE 1 XMM)) 0)(FLOATCONST F32 0.0)) (TSTEQ I1 (MEM F32 (HOLE 2)) (FLOATCONST F32 0.0))) (MEM F32 (HOLE 2)) (IFTHENELSE F32 (NOTANUMBER I1 (SUBREG F32 (REG I128 (HOLE 1 XMM)) 0)) (MEM F32 (HOLE 2)) (IFTHENELSE F32 (NOTANUMBER I1 (MEM F32 (HOLE 2))) (MEM F32 (HOLE 2)) (IFTHENELSE F32 (TSTGTS I1 (SUBREG F32 (REG I128 (HOLE 1 XMM)) 0) (MEM F32 (HOLE 2))) (SUBREG F32 (REG I128 (HOLE 1 XMM)) 0) (MEM F32 (HOLE 2)))))))) ;パックド単精度浮動小数点数を比較し最小値を得る ;MINPS xmm,xmm (DEFINST ("MINPS ?1x,?2x" "MINPS %?2x,%?1x" "MINPS ?1x,?2x") (PARALLEL (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 0) (IFTHENELSE F32 (BAND I1 (TSTEQ I1 (SUBREG F32 (REG I128 (HOLE 1 XMM)) 0)(FLOATCONST F32 0.0)) (TSTEQ I1 (SUBREG F32 (REG I128 (HOLE 2 XMM)) 0)(FLOATCONST F32 0.0))) (SUBREG F32 (REG I128 (HOLE 2 XMM)) 0) (IFTHENELSE F32 ;第1オペランドが非数 (NOTANUMBER I1 (SUBREG F32 (REG I128 (HOLE 1 XMM)) 0)) (SUBREG F32 (REG I128 (HOLE 2 XMM)) 0) (IFTHENELSE F32 ;第2オペランドが非数 (NOTANUMBER I1 (SUBREG F32 (REG I128 (HOLE 2 XMM)) 0)) (SUBREG F32 (REG I128 (HOLE 2 XMM)) 0) (IFTHENELSE F32 (TSTLTS I1 (SUBREG F32 (REG I128 (HOLE 1 XMM)) 0) (SUBREG F32 (REG I128 (HOLE 2 XMM)) 0)) (SUBREG F32 (REG I128 (HOLE 1 XMM)) 0) (SUBREG F32 (REG I128 (HOLE 2 XMM)) 0)))))) (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 1) (IFTHENELSE F32 (BAND I1 (TSTEQ I1 (SUBREG F32 (REG I128 (HOLE 1 XMM)) 1)(FLOATCONST F32 0.0)) (TSTEQ I1 (SUBREG F32 (REG I128 (HOLE 2 XMM)) 1)(FLOATCONST F32 0.0))) (SUBREG F32 (REG I128 (HOLE 2 XMM)) 1) (IFTHENELSE F32 ;第1オペランドが非数 (NOTANUMBER I1 (SUBREG F32 (REG I128 (HOLE 1 XMM)) 1)) (SUBREG F32 (REG I128 (HOLE 2 XMM)) 1) (IFTHENELSE F32 ;第2オペランドが非数 (NOTANUMBER I1 (SUBREG F32 (REG I128 (HOLE 2 XMM)) 1)) (SUBREG F32 (REG I128 (HOLE 2 XMM)) 1) (IFTHENELSE F32 (TSTLTS I1 (SUBREG F32 (REG I128 (HOLE 1 XMM)) 1) (SUBREG F32 (REG I128 (HOLE 2 XMM)) 1)) (SUBREG F32 (REG I128 (HOLE 1 XMM)) 1) (SUBREG F32 (REG I128 (HOLE 2 XMM)) 1)))))) (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 2) (IFTHENELSE F32 (BAND I1 (TSTEQ I1 (SUBREG F32 (REG I128 (HOLE 1 XMM)) 2)(FLOATCONST F32 0.0)) (TSTEQ I1 (SUBREG F32 (REG I128 (HOLE 2 XMM)) 2)(FLOATCONST F32 0.0))) (SUBREG F32 (REG I128 (HOLE 2 XMM)) 2) (IFTHENELSE F32 ;第1オペランドが非数 (NOTANUMBER I1 (SUBREG F32 (REG I128 (HOLE 1 XMM)) 2)) (SUBREG F32 (REG I128 (HOLE 2 XMM)) 2) (IFTHENELSE F32 ;第2オペランドが非数 (NOTANUMBER I1 (SUBREG F32 (REG I128 (HOLE 2 XMM)) 2)) (SUBREG F32 (REG I128 (HOLE 2 XMM)) 2) (IFTHENELSE F32 (TSTLTS I1 (SUBREG F32 (REG I128 (HOLE 1 XMM)) 2) (SUBREG F32 (REG I128 (HOLE 2 XMM)) 2)) (SUBREG F32 (REG I128 (HOLE 1 XMM)) 2) (SUBREG F32 (REG I128 (HOLE 2 XMM)) 2)))))) (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 3) (IFTHENELSE F32 (BAND I1 (TSTEQ I1 (SUBREG F32 (REG I128 (HOLE 1 XMM)) 3)(FLOATCONST F32 0.0)) (TSTEQ I1 (SUBREG F32 (REG I128 (HOLE 2 XMM)) 3)(FLOATCONST F32 0.0))) (SUBREG F32 (REG I128 (HOLE 2 XMM)) 3) (IFTHENELSE F32 ;第1オペランドが非数 (NOTANUMBER I1 (SUBREG F32 (REG I128 (HOLE 1 XMM)) 3)) (SUBREG F32 (REG I128 (HOLE 2 XMM)) 3) (IFTHENELSE F32 ;第2オペランドが非数 (NOTANUMBER I1 (SUBREG F32 (REG I128 (HOLE 2 XMM)) 3)) (SUBREG F32 (REG I128 (HOLE 2 XMM)) 3) (IFTHENELSE F32 (TSTLTS I1 (SUBREG F32 (REG I128 (HOLE 1 XMM)) 3) (SUBREG F32 (REG I128 (HOLE 2 XMM)) 3)) (SUBREG F32 (REG I128 (HOLE 1 XMM)) 3) (SUBREG F32 (REG I128 (HOLE 2 XMM)) 3)))))))) ;MINPS xmm,m128 (DEFINST ("MINPS ?1x,REAL4 PTR ??2s" "MINPS ??2s,%?1x" "MINPS ?1x,??2s") (PARALLEL (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 0) (IFTHENELSE F32 (BAND I1 (TSTEQ I1 (SUBREG F32 (REG I128 (HOLE 1 XMM)) 0)(FLOATCONST F32 0.0)) (TSTEQ I1 (SUBREG F32 (MEM I128 (HOLE 2)) 0)(FLOATCONST F32 0.0))) (SUBREG F32 (MEM I128 (HOLE 2)) 0) (IFTHENELSE F32 (NOTANUMBER I1 (SUBREG F32 (REG I128 (HOLE 1 XMM)) 0)) (SUBREG F32 (MEM I128 (HOLE 2)) 0) (IFTHENELSE F32 (NOTANUMBER I1 (SUBREG F32 (MEM I128 (HOLE 2)) 0)) (SUBREG F32 (MEM I128 (HOLE 2)) 0) (IFTHENELSE F32 (TSTLTS I1 (SUBREG F32 (REG I128 (HOLE 1 XMM)) 0) (SUBREG F32 (MEM I128 (HOLE 2)) 0)) (SUBREG F32 (REG I128 (HOLE 1 XMM)) 0) (SUBREG F32 (MEM I128 (HOLE 2)) 0)))))) (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 1) (IFTHENELSE F32 (BAND I1 (TSTEQ I1 (SUBREG F32 (REG I128 (HOLE 1 XMM)) 1)(FLOATCONST F32 0.0)) (TSTEQ I1 (SUBREG F32 (MEM I128 (HOLE 2)) 1)(FLOATCONST F32 0.0))) (SUBREG F32 (MEM I128 (HOLE 2)) 1) (IFTHENELSE F32 (NOTANUMBER I1 (SUBREG F32 (REG I128 (HOLE 1 XMM)) 1)) (SUBREG F32 (MEM I128 (HOLE 2)) 1) (IFTHENELSE F32 (NOTANUMBER I1 (SUBREG F32 (MEM I128 (HOLE 2)) 1)) (SUBREG F32 (MEM I128 (HOLE 2)) 1) (IFTHENELSE F32 (TSTLTS I1 (SUBREG F32 (REG I128 (HOLE 1 XMM)) 1) (SUBREG F32 (MEM I128 (HOLE 2)) 1)) (SUBREG F32 (REG I128 (HOLE 1 XMM)) 1) (SUBREG F32 (MEM I128 (HOLE 2)) 1)))))) (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 2) (IFTHENELSE F32 (BAND I1 (TSTEQ I1 (SUBREG F32 (REG I128 (HOLE 1 XMM)) 2)(FLOATCONST F32 0.0)) (TSTEQ I1 (SUBREG F32 (MEM I128 (HOLE 2)) 2)(FLOATCONST F32 0.0))) (SUBREG F32 (MEM I128 (HOLE 2)) 2) (IFTHENELSE F32 (NOTANUMBER I1 (SUBREG F32 (REG I128 (HOLE 1 XMM)) 2)) (SUBREG F32 (MEM I128 (HOLE 2)) 2) (IFTHENELSE F32 (NOTANUMBER I1 (SUBREG F32 (MEM I128 (HOLE 2)) 2)) (SUBREG F32 (MEM I128 (HOLE 2)) 2) (IFTHENELSE F32 (TSTLTS I1 (SUBREG F32 (REG I128 (HOLE 1 XMM)) 2) (SUBREG F32 (MEM I128 (HOLE 2)) 2)) (SUBREG F32 (REG I128 (HOLE 1 XMM)) 2) (SUBREG F32 (MEM I128 (HOLE 2)) 2)))))) (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 3) (IFTHENELSE F32 (BAND I1 (TSTEQ I1 (SUBREG F32 (REG I128 (HOLE 1 XMM)) 3)(FLOATCONST F32 0.0)) (TSTEQ I1 (SUBREG F32 (MEM I128 (HOLE 2)) 3)(FLOATCONST F32 0.0))) (SUBREG F32 (MEM I128 (HOLE 2)) 3) (IFTHENELSE F32 (NOTANUMBER I1 (SUBREG F32 (REG I128 (HOLE 1 XMM)) 3)) (SUBREG F32 (MEM I128 (HOLE 2)) 3) (IFTHENELSE F32 (NOTANUMBER I1 (SUBREG F32 (MEM I128 (HOLE 2)) 3)) (SUBREG F32 (MEM I128 (HOLE 2)) 3) (IFTHENELSE F32 (TSTLTS I1 (SUBREG F32 (REG I128 (HOLE 1 XMM)) 3) (SUBREG F32 (MEM I128 (HOLE 2)) 3)) (SUBREG F32 (REG I128 (HOLE 1 XMM)) 3) (SUBREG F32 (MEM I128 (HOLE 2)) 3)))))))) ;スカラー単精度浮動小数点数を比較し最小値を得る ;MINSS xmm,xmm (DEFINST ("MINSS ?1x,?2x" "MINSS %?2x,%?1x" "MINSS ?1x,?2x") (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 0) (IFTHENELSE F32 (BAND I1 (TSTEQ I1 (SUBREG F32 (REG I128 (HOLE 1 XMM)) 0)(FLOATCONST F32 0.0)) (TSTEQ I1 (SUBREG F32 (REG I128 (HOLE 2 XMM)) 0)(FLOATCONST F32 0.0))) (SUBREG F32 (REG I128 (HOLE 2 XMM)) 0) (IFTHENELSE F32 (NOTANUMBER I1 (SUBREG F32 (REG I128 (HOLE 1 XMM)) 0)) (SUBREG F32 (REG I128 (HOLE 2 XMM)) 0) (IFTHENELSE F32 (NOTANUMBER I1 (SUBREG F32 (REG I128 (HOLE 2 XMM)) 0)) (SUBREG F32 (REG I128 (HOLE 2 XMM)) 0) (IFTHENELSE F32 (TSTLTS I1 (SUBREG F32 (REG I128 (HOLE 1 XMM)) 0) (SUBREG F32 (REG I128 (HOLE 2 XMM)) 0)) (SUBREG F32 (REG I128 (HOLE 1 XMM)) 0) (SUBREG F32 (REG I128 (HOLE 2 XMM)) 0))))))) ;MINSS xmm,m32 (DEFINST ("MINSS ?1x,REAL4 PTR ??2s" "MINSS ??2s,%?1x" "MINSS ?1x,??2s") (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 0) (IFTHENELSE F32 (BAND I1 (TSTEQ I1 (SUBREG F32 (REG I128 (HOLE 1 XMM)) 0)(FLOATCONST F32 0.0)) (TSTEQ I1 (MEM F32 (HOLE 2)) (FLOATCONST F32 0.0))) (MEM F32 (HOLE 2)) (IFTHENELSE F32 (NOTANUMBER I1 (SUBREG F32 (REG I128 (HOLE 1 XMM)) 0)) (MEM F32 (HOLE 2)) (IFTHENELSE F32 (NOTANUMBER I1 (MEM F32 (HOLE 2))) (MEM F32 (HOLE 2)) (IFTHENELSE F32 (TSTLTS I1 (SUBREG F32 (REG I128 (HOLE 1 XMM)) 0) (MEM F32 (HOLE 2))) (SUBREG F32 (REG I128 (HOLE 1 XMM)) 0) (MEM F32 (HOLE 2)))))))) ;パックド単精度浮動小数点数の乗算をする ;MULPS xmm,xmm (DEFINST ("MULPS ?1x,?2x" "MULPS %?2x,%?1x" "MULPS ?1x,?2x") (PARALLEL (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 0) (MUL F32 (SUBREG F32 (REG I128 (HOLE 1 XMM)) 0) (SUBREG F32 (REG I128 (HOLE 2 XMM)) 0))) (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 1) (MUL F32 (SUBREG F32 (REG I128 (HOLE 1 XMM)) 1) (SUBREG F32 (REG I128 (HOLE 2 XMM)) 1))) (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 2) (MUL F32 (SUBREG F32 (REG I128 (HOLE 1 XMM)) 2) (SUBREG F32 (REG I128 (HOLE 2 XMM)) 2))) (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 3) (MUL F32 (SUBREG F32 (REG I128 (HOLE 1 XMM)) 3) (SUBREG F32 (REG I128 (HOLE 2 XMM)) 3))))) ;MULPS xmm,m128 (DEFINST ("MULPS ?1x,REAL4 PTR ??2s" "MULPS ??2s,%?1x" "MULPS ?1x,??2s") (PARALLEL (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 0) (MUL F32 (SUBREG F32 (REG I128 (HOLE 1 XMM)) 0) (SUBREG F32 (MEM I128 (HOLE 2)) 0))) (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 1) (MUL F32 (SUBREG F32 (REG I128 (HOLE 1 XMM)) 1) (SUBREG F32 (MEM I128 (HOLE 2)) 1))) (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 2) (MUL F32 (SUBREG F32 (REG I128 (HOLE 1 XMM)) 2) (SUBREG F32 (MEM I128 (HOLE 2)) 2))) (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 3) (MUL F32 (SUBREG F32 (REG I128 (HOLE 1 XMM)) 3) (SUBREG F32 (MEM I128 (HOLE 2)) 3))))) ;スカラー単精度浮動小数点数の乗算をする ;MULSS xmm,xmm (DEFINST ("MULSS ?1x,?2x" "MULSS %?2x,%?1x" "MULSS ?1x,?2x") (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 0) (MUL F32 (SUBREG F32 (REG I128 (HOLE 1 XMM)) 0) (SUBREG F32 (REG I128 (HOLE 2 XMM)) 0)))) ;MULSS xmm,m32 (DEFINST ("MULSS ?1x,REAL4 PTR ??2s" "MULSS ??2s,%?1x" "MULSS ?1x,??2s") (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 0) (MUL F32 (SUBREG F32 (REG I128 (HOLE 1 XMM)) 0) (MEM F32 (HOLE 2))))) ;パックド単精度浮動小数点数の減算をする ;SUBPS xmm,xmm (DEFINST ("SUBPS ?1x,?2x" "SUBPS %?2x,%?1x" "SUBPS ?1x,?2x") (PARALLEL (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 0) (SUB F32 (SUBREG F32 (REG I128 (HOLE 1 XMM)) 0) (SUBREG F32 (REG I128 (HOLE 2 XMM)) 0))) (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 1) (SUB F32 (SUBREG F32 (REG I128 (HOLE 1 XMM)) 1) (SUBREG F32 (REG I128 (HOLE 2 XMM)) 1))) (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 2) (SUB F32 (SUBREG F32 (REG I128 (HOLE 1 XMM)) 2) (SUBREG F32 (REG I128 (HOLE 2 XMM)) 2))) (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 3) (SUB F32 (SUBREG F32 (REG I128 (HOLE 1 XMM)) 3) (SUBREG F32 (REG I128 (HOLE 2 XMM)) 3))))) ;SUBPS xmm,m128 (DEFINST ("SUBPS ?1x,REAL4 PTR ??2s" "SUBPS ??2s,%?1x" "SUBPS ?1x,??2s") (PARALLEL (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 0) (SUB F32 (SUBREG F32 (REG I128 (HOLE 1 XMM)) 0) (SUBREG F32 (MEM I128 (HOLE 2)) 0))) (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 1) (SUB F32 (SUBREG F32 (REG I128 (HOLE 1 XMM)) 1) (SUBREG F32 (MEM I128 (HOLE 2)) 1))) (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 2) (SUB F32 (SUBREG F32 (REG I128 (HOLE 1 XMM)) 2) (SUBREG F32 (MEM I128 (HOLE 2)) 2))) (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 3) (SUB F32 (SUBREG F32 (REG I128 (HOLE 1 XMM)) 3) (SUBREG F32 (MEM I128 (HOLE 2)) 3))))) ;スカラー単精度浮動小数点数の減算をする ;SUBSS xmm,xmm (DEFINST ("SUBSS ?1x,?2x" "SUBSS %?2x,%?1x" "SUBSS ?1x,?2x") (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 0) (SUB F32 (SUBREG F32 (REG I128 (HOLE 1 XMM)) 0) (SUBREG F32 (REG I128 (HOLE 2 XMM)) 0)))) ;SUBSS xmm,m32 (DEFINST ("SUBSS ?1x,REAL4 PTR ??2s" "SUBSS ??2s,%?1x" "SUBSS ?1x,??2s") (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 0) (SUB F32 (SUBREG F32 (REG I128 (HOLE 1 XMM)) 0) (MEM F32 (HOLE 2))))) ;パックド単精度浮動小数点数を比較する ;等しい ;CMPEQPS xmm,xmm (DEFINST ("CMPEQPS ?1x,?2x" "CMPEQPS %?2x,%?1x" "CMPEQPS ?1x,?2x") (PARALLEL (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 0) (TSTEQ F32 (SUBREG F32 (REG I128 (HOLE 1 XMM)) 0) (SUBREG F32 (REG I128 (HOLE 2 XMM)) 0))) (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 1) (TSTEQ F32 (SUBREG F32 (REG I128 (HOLE 1 XMM)) 1) (SUBREG F32 (REG I128 (HOLE 2 XMM)) 1))) (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 2) (TSTEQ F32 (SUBREG F32 (REG I128 (HOLE 1 XMM)) 2) (SUBREG F32 (REG I128 (HOLE 2 XMM)) 2))) (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 3) (TSTEQ F32 (SUBREG F32 (REG I128 (HOLE 1 XMM)) 3) (SUBREG F32 (REG I128 (HOLE 2 XMM)) 3))))) ;CMPEQPS xmm,m128 (DEFINST ("CMPEQPS ?1x,REAL4 PTR ??2s" "CMPEQPS ??2s,%?1x" "CMPEQPS ?1x,??2s") (PARALLEL (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 0) (TSTEQ F32 (SUBREG F32 (REG I128 (HOLE 1 XMM)) 0) (SUBREG F32 (MEM I128 (HOLE 2)) 0))) (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 1) (TSTEQ F32 (SUBREG F32 (REG I128 (HOLE 1 XMM)) 1) (SUBREG F32 (MEM I128 (HOLE 2)) 1))) (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 2) (TSTEQ F32 (SUBREG F32 (REG I128 (HOLE 1 XMM)) 2) (SUBREG F32 (MEM I128 (HOLE 2)) 2))) (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 3) (TSTEQ F32 (SUBREG F32 (REG I128 (HOLE 1 XMM)) 3) (SUBREG F32 (MEM I128 (HOLE 2)) 3))))) ;より小さい/より大きくなく等しくない ;CMPLTPS xmm,xmm (DEFINST ("CMPLTPS ?1x,?2x" "CMPLTPS %?2x,%?1x" "CMPLTPS ?1x,?2x") (PARALLEL (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 0) (TSTLTS F32 (SUBREG F32 (REG I128 (HOLE 1 XMM)) 0) (SUBREG F32 (REG I128 (HOLE 2 XMM)) 0))) (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 1) (TSTLTS F32 (SUBREG F32 (REG I128 (HOLE 1 XMM)) 1) (SUBREG F32 (REG I128 (HOLE 2 XMM)) 1))) (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 2) (TSTLTS F32 (SUBREG F32 (REG I128 (HOLE 1 XMM)) 2) (SUBREG F32 (REG I128 (HOLE 2 XMM)) 2))) (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 3) (TSTLTS F32 (SUBREG F32 (REG I128 (HOLE 1 XMM)) 3) (SUBREG F32 (REG I128 (HOLE 2 XMM)) 3))))) ;CMPLTPS xmm,m128 (DEFINST ("CMPLTPS ?1x,REAL4 PTR ??2s" "CMPLTPS ??2s,%?1x" "CMPLTPS ?1x,??2s") (PARALLEL (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 0) (TSTLTS F32 (SUBREG F32 (REG I128 (HOLE 1 XMM)) 0) (SUBREG F32 (MEM I128 (HOLE 2)) 0))) (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 1) (TSTLTS F32 (SUBREG F32 (REG I128 (HOLE 1 XMM)) 1) (SUBREG F32 (MEM I128 (HOLE 2)) 1))) (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 2) (TSTLTS F32 (SUBREG F32 (REG I128 (HOLE 1 XMM)) 2) (SUBREG F32 (MEM I128 (HOLE 2)) 2))) (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 3) (TSTLTS F32 (SUBREG F32 (REG I128 (HOLE 1 XMM)) 3) (SUBREG F32 (MEM I128 (HOLE 2)) 3))))) ;より小さいか等しい/より大きくない ;CMPLEPS xmm,xmm (DEFINST ("CMPLEPS ?1x,?2x" "CMPLEPS %?2x,%?1x" "CMPLEPS ?1x,?2x") (PARALLEL (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 0) (TSTLES F32 (SUBREG F32 (REG I128 (HOLE 1 XMM)) 0) (SUBREG F32 (REG I128 (HOLE 2 XMM)) 0))) (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 1) (TSTLES F32 (SUBREG F32 (REG I128 (HOLE 1 XMM)) 1) (SUBREG F32 (REG I128 (HOLE 2 XMM)) 1))) (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 2) (TSTLES F32 (SUBREG F32 (REG I128 (HOLE 1 XMM)) 2) (SUBREG F32 (REG I128 (HOLE 2 XMM)) 2))) (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 3) (TSTLES F32 (SUBREG F32 (REG I128 (HOLE 1 XMM)) 3) (SUBREG F32 (REG I128 (HOLE 2 XMM)) 3))))) ;CMPLEPS xmm,m128 (DEFINST ("CMPLEPS ?1x,REAL4 PTR ??2s" "CMPLEPS ??2s,%?1x" "CMPLEPS ?1x,??2s") (PARALLEL (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 0) (TSTLES F32 (SUBREG F32 (REG I128 (HOLE 1 XMM)) 0) (SUBREG F32 (MEM I128 (HOLE 2)) 0))) (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 1) (TSTLES F32 (SUBREG F32 (REG I128 (HOLE 1 XMM)) 1) (SUBREG F32 (MEM I128 (HOLE 2)) 1))) (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 2) (TSTLES F32 (SUBREG F32 (REG I128 (HOLE 1 XMM)) 2) (SUBREG F32 (MEM I128 (HOLE 2)) 2))) (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 3) (TSTLES F32 (SUBREG F32 (REG I128 (HOLE 1 XMM)) 3) (SUBREG F32 (MEM I128 (HOLE 2)) 3))))) ;アンオーダー ;CMPUNORDPS xmm,xmm (DEFINST ("CMPUNORDPS ?1x,?2x" "CMPUNORDPS %?2x,%?1x" "CMPUNORDPS ?1x,?2x") (PARALLEL (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 0) (BOR F32 (NOTANUMBER F32 (SUBREG F32 (REG I128 (HOLE 1 XMM)) 0)) (NOTANUMBER F32 (SUBREG F32 (REG I128 (HOLE 2 XMM)) 0)))) (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 1) (BOR F32 (NOTANUMBER F32 (SUBREG F32 (REG I128 (HOLE 1 XMM)) 1)) (NOTANUMBER F32 (SUBREG F32 (REG I128 (HOLE 2 XMM)) 1)))) (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 2) (BOR F32 (NOTANUMBER F32 (SUBREG F32 (REG I128 (HOLE 1 XMM)) 2)) (NOTANUMBER F32 (SUBREG F32 (REG I128 (HOLE 2 XMM)) 2)))) (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 3) (BOR F32 (NOTANUMBER F32 (SUBREG F32 (REG I128 (HOLE 1 XMM)) 3)) (NOTANUMBER F32 (SUBREG F32 (REG I128 (HOLE 2 XMM)) 3)))))) ;CMPUNORDPS xmm,m128 (DEFINST ("CMPUNORDPS ?1x,REAL4 PTR ??2s" "CMPUNORDPS ??2s,%?1x" "CMPUNORDPS ?1x,??2s") (PARALLEL (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 0) (BOR F32 (NOTANUMBER F32 (SUBREG F32 (REG I128 (HOLE 1 XMM)) 0)) (NOTANUMBER F32 (SUBREG F32 (MEM I128 (HOLE 2)) 0)))) (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 1) (BOR F32 (NOTANUMBER F32 (SUBREG F32 (REG I128 (HOLE 1 XMM)) 1)) (NOTANUMBER F32 (SUBREG F32 (MEM I128 (HOLE 2)) 1)))) (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 2) (BOR F32 (NOTANUMBER F32 (SUBREG F32 (REG I128 (HOLE 1 XMM)) 2)) (NOTANUMBER F32 (SUBREG F32 (MEM I128 (HOLE 2)) 2)))) (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 3) (BOR F32 (NOTANUMBER F32 (SUBREG F32 (REG I128 (HOLE 1 XMM)) 3)) (NOTANUMBER F32 (SUBREG F32 (MEM I128 (HOLE 2)) 3)))))) ;等しくない ;CMPNEQPS xmm,xmm (DEFINST ("CMPNEQPS ?1x,?2x" "CMPNEQPS %?2x,%?1x" "CMPNEQPS ?1x,?2x") (PARALLEL (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 0) (TSTNE F32 (SUBREG F32 (REG I128 (HOLE 1 XMM)) 0) (SUBREG F32 (REG I128 (HOLE 2 XMM)) 0))) (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 1) (TSTNE F32 (SUBREG F32 (REG I128 (HOLE 1 XMM)) 1) (SUBREG F32 (REG I128 (HOLE 2 XMM)) 1))) (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 2) (TSTNE F32 (SUBREG F32 (REG I128 (HOLE 1 XMM)) 2) (SUBREG F32 (REG I128 (HOLE 2 XMM)) 2))) (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 3) (TSTNE F32 (SUBREG F32 (REG I128 (HOLE 1 XMM)) 3) (SUBREG F32 (REG I128 (HOLE 2 XMM)) 3))))) ;CMPNEQPS xmm,m128 (DEFINST ("CMPNEQPS ?1x,REAL4 PTR ??2s" "CMPNEQPS ??2s,%?1x" "CMPNEQPS ?1x,??2s") (PARALLEL (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 0) (TSTNE F32 (SUBREG F32 (REG I128 (HOLE 1 XMM)) 0) (SUBREG F32 (MEM I128 (HOLE 2)) 0))) (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 1) (TSTNE F32 (SUBREG F32 (REG I128 (HOLE 1 XMM)) 1) (SUBREG F32 (MEM I128 (HOLE 2)) 1))) (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 2) (TSTNE F32 (SUBREG F32 (REG I128 (HOLE 1 XMM)) 2) (SUBREG F32 (MEM I128 (HOLE 2)) 2))) (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 3) (TSTNE F32 (SUBREG F32 (REG I128 (HOLE 1 XMM)) 3) (SUBREG F32 (MEM I128 (HOLE 2)) 3))))) ;より小さくない/より大きいか等しい ;CMPNLTPS xmm,xmm (DEFINST ("CMPNLTPS ?1x,?2x" "CMPNLTPS %?2x,%?1x" "CMPNLTPS ?1x,?2x") (PARALLEL (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 0) (TSTGES F32 (SUBREG F32 (REG I128 (HOLE 1 XMM)) 0) (SUBREG F32 (REG I128 (HOLE 2 XMM)) 0))) (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 1) (TSTGES F32 (SUBREG F32 (REG I128 (HOLE 1 XMM)) 1) (SUBREG F32 (REG I128 (HOLE 2 XMM)) 1))) (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 2) (TSTGES F32 (SUBREG F32 (REG I128 (HOLE 1 XMM)) 2) (SUBREG F32 (REG I128 (HOLE 2 XMM)) 2))) (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 3) (TSTGES F32 (SUBREG F32 (REG I128 (HOLE 1 XMM)) 3) (SUBREG F32 (REG I128 (HOLE 2 XMM)) 3))))) ;CMPNLTPS xmm,m128 (DEFINST ("CMPNLTPS ?1x,REAL4 PTR ??2s" "CMPNLTPS ??2s,%?1x" "CMPNLTPS ?1x,??2s") (PARALLEL (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 0) (TSTGES F32 (SUBREG F32 (REG I128 (HOLE 1 XMM)) 0) (SUBREG F32 (MEM I128 (HOLE 2)) 0))) (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 1) (TSTGES F32 (SUBREG F32 (REG I128 (HOLE 1 XMM)) 1) (SUBREG F32 (MEM I128 (HOLE 2)) 1))) (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 2) (TSTGES F32 (SUBREG F32 (REG I128 (HOLE 1 XMM)) 2) (SUBREG F32 (MEM I128 (HOLE 2)) 2))) (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 3) (TSTGES F32 (SUBREG F32 (REG I128 (HOLE 1 XMM)) 3) (SUBREG F32 (MEM I128 (HOLE 2)) 3))))) ;より小さくなく等しくない/より大きい ;CMPNLEPS xmm,xmm (DEFINST ("CMPNLEPS ?1x,?2x" "CMPNLEPS %?2x,%?1x" "CMPNLEPS ?1x,?2x") (PARALLEL (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 0) (TSTGTS F32 (SUBREG F32 (REG I128 (HOLE 1 XMM)) 0) (SUBREG F32 (REG I128 (HOLE 2 XMM)) 0))) (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 1) (TSTGTS F32 (SUBREG F32 (REG I128 (HOLE 1 XMM)) 1) (SUBREG F32 (REG I128 (HOLE 2 XMM)) 1))) (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 2) (TSTGTS F32 (SUBREG F32 (REG I128 (HOLE 1 XMM)) 2) (SUBREG F32 (REG I128 (HOLE 2 XMM)) 2))) (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 3) (TSTGTS F32 (SUBREG F32 (REG I128 (HOLE 1 XMM)) 3) (SUBREG F32 (REG I128 (HOLE 2 XMM)) 3))))) ;CMPNLEPS xmm,m128 (DEFINST ("CMPNLEPS ?1x,REAL4 PTR ??2s" "CMPNLEPS ??2s,%?1x" "CMPNLEPS ?1x,??2s") (PARALLEL (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 0) (TSTGTS F32 (SUBREG F32 (REG I128 (HOLE 1 XMM)) 0) (SUBREG F32 (MEM I128 (HOLE 2)) 0))) (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 1) (TSTGTS F32 (SUBREG F32 (REG I128 (HOLE 1 XMM)) 1) (SUBREG F32 (MEM I128 (HOLE 2)) 1))) (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 2) (TSTGTS F32 (SUBREG F32 (REG I128 (HOLE 1 XMM)) 2) (SUBREG F32 (MEM I128 (HOLE 2)) 2))) (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 3) (TSTGTS F32 (SUBREG F32 (REG I128 (HOLE 1 XMM)) 3) (SUBREG F32 (MEM I128 (HOLE 2)) 3))))) ;オーダー ;CMPORDPS xmm,xmm (DEFINST ("CMPORDPS ?1x,?2x" "CMPORDPS %?2x,%?1x" "CMPORDPS ?1x,?2x") (PARALLEL (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 0) (BNOT F32 (BOR F32 (NOTANUMBER F32 (SUBREG F32 (REG I128 (HOLE 1 XMM)) 0)) (NOTANUMBER F32 (SUBREG F32 (REG I128 (HOLE 2 XMM)) 0))))) (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 1) (BNOT F32 (BOR F32 (NOTANUMBER F32 (SUBREG F32 (REG I128 (HOLE 1 XMM)) 1)) (NOTANUMBER F32 (SUBREG F32 (REG I128 (HOLE 2 XMM)) 1))))) (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 2) (BNOT F32 (BOR F32 (NOTANUMBER F32 (SUBREG F32 (REG I128 (HOLE 1 XMM)) 2)) (NOTANUMBER F32 (SUBREG F32 (REG I128 (HOLE 2 XMM)) 2))))) (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 3) (BNOT F32 (BOR F32 (NOTANUMBER F32 (SUBREG F32 (REG I128 (HOLE 1 XMM)) 3)) (NOTANUMBER F32 (SUBREG F32 (REG I128 (HOLE 2 XMM)) 3))))))) ;CMPORDPS xmm,m128 (DEFINST ("CMPORDPS ?1x,REAL4 PTR ??2s" "CMPORDPS ??2s,%?1x" "CMPORDPS ?1x,??2s") (PARALLEL (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 0) (BNOT F32 (BOR F32 (NOTANUMBER F32 (SUBREG F32 (REG I128 (HOLE 1 XMM)) 0)) (NOTANUMBER F32 (SUBREG F32 (MEM I128 (HOLE 2)) 0))))) (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 1) (BNOT F32 (BOR F32 (NOTANUMBER F32 (SUBREG F32 (REG I128 (HOLE 1 XMM)) 1)) (NOTANUMBER F32 (SUBREG F32 (MEM I128 (HOLE 2)) 1))))) (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 2) (BNOT F32 (BOR F32 (NOTANUMBER F32 (SUBREG F32 (REG I128 (HOLE 1 XMM)) 2)) (NOTANUMBER F32 (SUBREG F32 (MEM I128 (HOLE 2)) 2))))) (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 3) (BNOT F32 (BOR F32 (NOTANUMBER F32 (SUBREG F32 (REG I128 (HOLE 1 XMM)) 3)) (NOTANUMBER F32 (SUBREG F32 (MEM I128 (HOLE 2)) 3))))))) ;スカラー単精度浮動小数点数を比較する ;等しい ;CMPEQSS xmm,xmm (DEFINST ("CMPEQSS ?1x,?2x" "CMPEQSS %?2x,%?1x" "CMPEQSS ?1x,?2x") (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 0) (TSTEQ F32 (SUBREG F32 (REG I128 (HOLE 1 XMM)) 0) (SUBREG F32 (REG I128 (HOLE 2 XMM)) 0)))) ;CMPEQSS xmm,m32 (DEFINST ("CMPEQSS ?1x,REAL4 PTR ??2s" "CMPEQSS ??2s,%?1x" "CMPEQSS ?1x,??2s") (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 0) (TSTEQ F32 (SUBREG F32 (REG I128 (HOLE 1 XMM)) 0) (MEM F32 (HOLE 2))))) ;より小さい/より大きくなく等しくない ;CMPLTSS xmm,xmm (DEFINST ("CMPLTSS ?1x,?2x" "CMPLTSS %?2x,%?1x" "CMPLTSS ?1x,?2x") (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 0) (TSTLTS F32 (SUBREG F32 (REG I128 (HOLE 1 XMM)) 0) (SUBREG F32 (REG I128 (HOLE 2 XMM)) 0)))) ;CMPLTSS xmm,m32 (DEFINST ("CMPLTSS ?1x,REAL4 PTR ??2s" "CMPLTSS ??2s,%?1x" "CMPLTSS ?1x,??2s") (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 0) (TSTLTS F32 (SUBREG F32 (REG I128 (HOLE 1 XMM)) 0) (MEM F32 (HOLE 2))))) ;より小さいか等しい/より大きくない ;CMPLESS xmm,xmm (DEFINST ("CMPLESS ?1x,?2x" "CMPLESS %?2x,%?1x" "CMPLESS ?1x,?2x") (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 0) (TSTLES F32 (SUBREG F32 (REG I128 (HOLE 1 XMM)) 0) (SUBREG F32 (REG I128 (HOLE 2 XMM)) 0)))) ;CMPLESS xmm,m32 (DEFINST ("CMPLESS ?1x,REAL4 PTR ??2s" "CMPLESS ??2s,%?1x" "CMPLESS ?1x,??2s") (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 0) (TSTLES F32 (SUBREG F32 (REG I128 (HOLE 1 XMM)) 0) (MEM F32 (HOLE 2))))) ;アンオーダー ;CMPUNORDSS xmm,xmm (DEFINST ("CMPUNORDSS ?1x,?2x" "CMPUNORDSS %?2x,%?1x" "CMPUNORDSS ?1x,?2x") (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 0) (BOR F32 (NOTANUMBER F32 (SUBREG F32 (REG I128 (HOLE 1 XMM)) 0)) (NOTANUMBER F32 (SUBREG F32 (REG I128 (HOLE 2 XMM)) 0))))) ;CMPUNORDSS xmm,m32 (DEFINST ("CMPUNORDSS ?1x,REAL4 PTR ??2s" "CMPUNORDSS ??2s,%?1x" "CMPUNORDSS ?1x,??2s") (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 0) (BOR F32 (NOTANUMBER F32 (SUBREG F32 (REG I128 (HOLE 1 XMM)) 0)) (NOTANUMBER F32 (MEM F32 (HOLE 2)))))) ;等しくない ;CMPNEQSS xmm,xmm (DEFINST ("CMPNEQSS ?1x,?2x" "CMPNEQSS %?2x,%?1x" "CMPNEQSS ?1x,?2x") (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 0) (TSTNE F32 (SUBREG F32 (REG I128 (HOLE 1 XMM)) 0) (SUBREG F32 (REG I128 (HOLE 2 XMM)) 0)))) ;CMPNEQSS xmm,m32 (DEFINST ("CMPNEQSS ?1x,REAL4 PTR ??2s" "CMPNEQSS ??2s,%?1x" "CMPNEQSS ?1x,??2s") (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 0) (TSTNE F32 (SUBREG F32 (REG I128 (HOLE 1 XMM)) 0) (MEM F32 (HOLE 2))))) ;より小さくない/より大きいか等しい ;CMPNLTSS xmm,xmm (DEFINST ("CMPNLTSS ?1x,?2x" "CMPNLTSS %?2x,%?1x" "CMPNLTSS ?1x,?2x") (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 0) (TSTGES F32 (SUBREG F32 (REG I128 (HOLE 1 XMM)) 0) (SUBREG F32 (REG I128 (HOLE 2 XMM)) 0)))) ;CMPNLTSS xmm,m32 (DEFINST ("CMPNLTSS ?1x,REAL4 PTR ??2s" "CMPNLTSS ??2s,%?1x" "CMPNLTSS ?1x,??2s") (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 0) (TSTGES F32 (SUBREG F32 (REG I128 (HOLE 1 XMM)) 0) (MEM F32 (HOLE 2))))) ;より小さくなく等しくない/より大きい ;CMPNLESS xmm,xmm (DEFINST ("CMPNLESS ?1x,?2x" "CMPNLESS %?2x,%?1x" "CMPNLESS ?1x,?2x") (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 0) (TSTGTS F32 (SUBREG F32 (REG I128 (HOLE 1 XMM)) 0) (SUBREG F32 (REG I128 (HOLE 2 XMM)) 0)))) ;CMPNLESS xmm,m32 (DEFINST ("CMPNLESS ?1x,REAL4 PTR ??2s" "CMPNLESS ??2s,%?1x" "CMPNLESS ?1x,??2s") (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 0) (TSTGTS F32 (SUBREG F32 (REG I128 (HOLE 1 XMM)) 0) (MEM F32 (HOLE 2))))) ;オーダー ;CMPORDSS xmm,xmm (DEFINST ("CMPORDSS ?1x,?2x" "CMPORDSS %?2x,%?1x" "CMPORDSS ?1x,?2x") (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 0) (BNOT F32 (BOR F32 (NOTANUMBER F32 (SUBREG F32 (REG I128 (HOLE 1 XMM)) 0)) (NOTANUMBER F32 (SUBREG F32 (REG I128 (HOLE 2 XMM)) 0)))))) ;CMPORDSS xmm,m32 (DEFINST ("CMPORDSS ?1x,REAL4 PTR ??2s" "CMPORDSS ??2s,%?1x" "CMPORDSS ?1x,??2s") (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 0) (BNOT F32 (BOR F32 (NOTANUMBER F32 (SUBREG F32 (REG I128 (HOLE 1 XMM)) 0)) (NOTANUMBER F32 (MEM F32 (HOLE 2))))))) ;スカラー単精度浮動小数点数をオーダー比較し、結果をEFLAGSフラグにセット ;COMISS xmm,xmm (DEFINST ("COMISS ?1x,?2x" "COMISS %?2x,%?1x" "COMISS ?1x,?2x") (PARALLEL (SET (REG I1 CF) (IFTHENELSE I1 (BOR I1 (NOTANUMBER I1 (SUBREG F32 (REG I128 (HOLE 1 XMM)) 0)) (NOTANUMBER I1 (SUBREG F32 (REG I128 (HOLE 2 XMM)) 0))) ;UnOrderd (INTCONST I1 #b1) (IFTHENELSE I1 (TSTLTS I1 (SUBREG F32 (REG I128 (HOLE 1 XMM)) 0) (SUBREG F32 (REG I128 (HOLE 2 XMM)) 0)) ;Less Than (INTCONST I1 #b1) ;Greater Than Equal (INTCONST I1 #b0)))) (SET (REG I1 PF) (IFTHENELSE I1 (BOR I1 (NOTANUMBER I1 (SUBREG F32 (REG I128 (HOLE 1 XMM)) 0)) (NOTANUMBER I1 (SUBREG F32 (REG I128 (HOLE 2 XMM)) 0))) ;UnOrderd (INTCONST I1 #b1) ;Orderd(Greater Than,Less Than,Equal) (INTCONST I1 #b0))) (SET (REG I1 AF) (INTCONST I1 #b0)) (SET (REG I1 ZF) (IFTHENELSE I1 (BOR I1 (NOTANUMBER I1 (SUBREG F32 (REG I128 (HOLE 1 XMM)) 0)) (NOTANUMBER I1 (SUBREG F32 (REG I128 (HOLE 2 XMM)) 0))) ;UnOrderd (INTCONST I1 #b1) (IFTHENELSE I1 (TSTEQ I1 (SUBREG F32 (REG I128 (HOLE 1 XMM)) 0) (SUBREG F32 (REG I128 (HOLE 2 XMM)) 0)) ;Equal (INTCONST I1 #b1) ;Not Equal (Greater Than,Less Than) (INTCONST I1 #b0)))) (SET (REG I1 SF) (INTCONST I1 #b0)) (SET (REG I1 OF) (INTCONST I1 #b0)))) ;COMISS xmm,m32 (DEFINST ("COMISS ?1x,REAL4 PTR ??2s" "COMISS ??2s,%?1x" "COMISS ?1x,??2s") (PARALLEL (SET (REG I1 CF) (IFTHENELSE I1 (BOR I1 (NOTANUMBER I1 (SUBREG F32 (REG I128 (HOLE 1 XMM)) 0)) (NOTANUMBER I1 (MEM F32 (HOLE 2)))) ;UnOrderd (INTCONST I1 #b1) (IFTHENELSE I1 (TSTLTS I1 (SUBREG F32 (REG I128 (HOLE 1 XMM)) 0) (MEM F32 (HOLE 2))) ;Less Than (INTCONST I1 #b1) ;Greater Than Equal (INTCONST I1 #b0)))) (SET (REG I1 PF) (IFTHENELSE I1 (BOR I1 (NOTANUMBER I1 (SUBREG F32 (REG I128 (HOLE 1 XMM)) 0)) (NOTANUMBER I1 (MEM F32 (HOLE 2)))) ;UnOrderd (INTCONST I1 #b1) ;Orderd(Greater Than,Less Than,Equal) (INTCONST I1 #b0))) (SET (REG I1 AF) (INTCONST I1 #b0)) (SET (REG I1 ZF) (IFTHENELSE I1 (BOR I1 (NOTANUMBER I1 (SUBREG F32 (REG I128 (HOLE 1 XMM)) 0)) (NOTANUMBER I1 (MEM F32 (HOLE 2)))) ;UnOrderd (INTCONST I1 #b1) (IFTHENELSE I1 (TSTEQ I1 (SUBREG F32 (REG I128 (HOLE 1 XMM)) 0) (MEM F32 (HOLE 2))) ;Equal (INTCONST I1 #b1) ;Not Equal (Greater Than,Less Than) (INTCONST I1 #b0)))) (SET (REG I1 SF) (INTCONST I1 #b0)) (SET (REG I1 OF) (INTCONST I1 #b0)))) ;スカラー単精度浮動小数点数をアンオーダー比較し、結果をEFLAGSフラグにセット ;UCOMISS xmm,xmm (DEFINST ("UCOMISS ?1x,?2x" "UCOMISS %?2x,%?1x" "UCOMISS ?1x,?2x") (PARALLEL (SET (REG I1 CF) (IFTHENELSE I1 (BOR I1 (NOTANUMBER I1 (SUBREG F32 (REG I128 (HOLE 1 XMM)) 0)) (NOTANUMBER I1 (SUBREG F32 (REG I128 (HOLE 2 XMM)) 0))) ;UnOrderd (INTCONST I1 #b1) (IFTHENELSE I1 (TSTLTS I1 (SUBREG F32 (REG I128 (HOLE 1 XMM)) 0) (SUBREG F32 (REG I128 (HOLE 2 XMM)) 0)) ;Less Than (INTCONST I1 #b1) ;Greater Than Equal (INTCONST I1 #b0)))) (SET (REG I1 PF) (IFTHENELSE I1 (BOR I1 (NOTANUMBER I1 (SUBREG F32 (REG I128 (HOLE 1 XMM)) 0)) (NOTANUMBER I1 (SUBREG F32 (REG I128 (HOLE 2 XMM)) 0))) ;UnOrderd (INTCONST I1 #b1) ;Orderd(Greater Than,Less Than,Equal) (INTCONST I1 #b0))) (SET (REG I1 AF) (INTCONST I1 #b0)) (SET (REG I1 ZF) (IFTHENELSE I1 (BOR I1 (NOTANUMBER I1 (SUBREG F32 (REG I128 (HOLE 1 XMM)) 0)) (NOTANUMBER I1 (SUBREG F32 (REG I128 (HOLE 2 XMM)) 0))) ;UnOrderd (INTCONST I1 #b1) (IFTHENELSE I1 (TSTEQ I1 (SUBREG F32 (REG I128 (HOLE 1 XMM)) 0) (SUBREG F32 (REG I128 (HOLE 2 XMM)) 0)) ;Equal (INTCONST I1 #b1) ;Not Equal (Greater Than,Less Than) (INTCONST I1 #b0)))) (SET (REG I1 SF) (INTCONST I1 #b0)) (SET (REG I1 OF) (INTCONST I1 #b0)))) ;UCOMISS xmm,m32 (DEFINST ("UCOMISS ?1x,REAL4 PTR ??2s" "UCOMISS ??2s,%?1x" "UCOMISS ?1x,??2s") (PARALLEL (SET (REG I1 CF) (IFTHENELSE I1 (BOR I1 (NOTANUMBER I1 (SUBREG F32 (REG I128 (HOLE 1 XMM)) 0)) (NOTANUMBER I1 (MEM F32 (HOLE 2)))) ;UnOrderd (INTCONST I1 #b1) (IFTHENELSE I1 (TSTLTS I1 (SUBREG F32 (REG I128 (HOLE 1 XMM)) 0) (MEM F32 (HOLE 2))) ;Less Than (INTCONST I1 #b1) ;Greater Than Equal (INTCONST I1 #b0)))) (SET (REG I1 PF) (IFTHENELSE I1 (BOR I1 (NOTANUMBER I1 (SUBREG F32 (REG I128 (HOLE 1 XMM)) 0)) (NOTANUMBER I1 (MEM F32 (HOLE 2)))) ;UnOrderd (INTCONST I1 #b1) ;Orderd(Greater Than,Less Than,Equal) (INTCONST I1 #b0))) (SET (REG I1 AF) (INTCONST I1 #b0)) (SET (REG I1 ZF) (IFTHENELSE I1 (BOR I1 (NOTANUMBER I1 (SUBREG F32 (REG I128 (HOLE 1 XMM)) 0)) (NOTANUMBER I1 (MEM F32 (HOLE 2)))) ;UnOrderd (INTCONST I1 #b1) (IFTHENELSE I1 (TSTEQ I1 (SUBREG F32 (REG I128 (HOLE 1 XMM)) 0) (MEM F32 (HOLE 2))) ;Equal (INTCONST I1 #b1) ;Not Equal (Greater Than,Less Than) (INTCONST I1 #b0)))) (SET (REG I1 SF) (INTCONST I1 #b0)) (SET (REG I1 OF) (INTCONST I1 #b0)))) ;パックド単精度浮動小数点数のAND(論理積)演算をする ;ANDNPS xmm,xmm (DEFINST ("ANDNPS ?1x,?2x" "ANDNPS %?2x,%?1x" "ANDNPS ?1x,?2x") (PARALLEL (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 0) (BAND F32 (BNOT F32 (SUBREG F32 (REG I128 (HOLE 1 XMM)) 0)) (SUBREG F32 (REG I128 (HOLE 2 XMM)) 0))) (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 1) (BAND F32 (BNOT F32 (SUBREG F32 (REG I128 (HOLE 1 XMM)) 1)) (SUBREG F32 (REG I128 (HOLE 2 XMM)) 1))) (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 2) (BAND F32 (BNOT F32 (SUBREG F32 (REG I128 (HOLE 1 XMM)) 2)) (SUBREG F32 (REG I128 (HOLE 2 XMM)) 2))) (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 3) (BAND F32 (BNOT F32 (SUBREG F32 (REG I128 (HOLE 1 XMM)) 3)) (SUBREG F32 (REG I128 (HOLE 2 XMM)) 3))))) ;ANDNPS xmm,m128 (DEFINST ("ANDNPS ?1x,REAL4 PTR ??2s" "ANDNPS ??2s,%?1x" "ANDNPS ?1x,??2s") (PARALLEL (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 0) (BAND F32 (BNOT F32 (SUBREG F32 (REG I128 (HOLE 1 XMM)) 0)) (SUBREG F32 (MEM I128 (HOLE 2)) 0))) (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 1) (BAND F32 (BNOT F32 (SUBREG F32 (REG I128 (HOLE 1 XMM)) 1)) (SUBREG F32 (MEM I128 (HOLE 2)) 1))) (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 2) (BAND F32 (BNOT F32 (SUBREG F32 (REG I128 (HOLE 1 XMM)) 2)) (SUBREG F32 (MEM I128 (HOLE 2)) 2))) (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 3) (BAND F32 (BNOT F32 (SUBREG F32 (REG I128 (HOLE 1 XMM)) 3)) (SUBREG F32 (MEM I128 (HOLE 2)) 3))))) ;パックド単精度浮動小数点数のAND(論理積)演算をする ;ANDPS xmm,xmm (DEFINST ("ANDPS ?1x,?2x" "ANDPS %?2x,%?1x" "ANDPS ?1x,?2x") (PARALLEL (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 0) (BAND F32 (SUBREG F32 (REG I128 (HOLE 1 XMM)) 0) (SUBREG F32 (REG I128 (HOLE 2 XMM)) 0))) (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 1) (BAND F32 (SUBREG F32 (REG I128 (HOLE 1 XMM)) 1) (SUBREG F32 (REG I128 (HOLE 2 XMM)) 1))) (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 2) (BAND F32 (SUBREG F32 (REG I128 (HOLE 1 XMM)) 2) (SUBREG F32 (REG I128 (HOLE 2 XMM)) 2))) (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 3) (BAND F32 (SUBREG F32 (REG I128 (HOLE 1 XMM)) 3) (SUBREG F32 (REG I128 (HOLE 2 XMM)) 3))))) ;ANDPS xmm,m128 (DEFINST ("ANDPS ?1x,REAL4 PTR ??2s" "ANDPS ??2s,%?1x" "ANDPS ?1x,??2s") (PARALLEL (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 0) (BAND F32 (SUBREG F32 (REG I128 (HOLE 1 XMM)) 0) (SUBREG F32 (MEM I128 (HOLE 2)) 0))) (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 1) (BAND F32 (SUBREG F32 (REG I128 (HOLE 1 XMM)) 1) (SUBREG F32 (MEM I128 (HOLE 2)) 1))) (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 2) (BAND F32 (SUBREG F32 (REG I128 (HOLE 1 XMM)) 2) (SUBREG F32 (MEM I128 (HOLE 2)) 2))) (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 3) (BAND F32 (SUBREG F32 (REG I128 (HOLE 1 XMM)) 3) (SUBREG F32 (MEM I128 (HOLE 2)) 3))))) ;パックド単精度浮動小数点数のOR(論理和)演算をする ;ORPS xmm,xmm (DEFINST ("ORPS ?1x,?2x" "ORPS %?2x,%?1x" "ORPS ?1x,?2x") (PARALLEL (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 0) (BOR F32 (SUBREG F32 (REG I128 (HOLE 1 XMM)) 0) (SUBREG F32 (REG I128 (HOLE 2 XMM)) 0))) (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 1) (BOR F32 (SUBREG F32 (REG I128 (HOLE 1 XMM)) 1) (SUBREG F32 (REG I128 (HOLE 2 XMM)) 1))) (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 2) (BOR F32 (SUBREG F32 (REG I128 (HOLE 1 XMM)) 2) (SUBREG F32 (REG I128 (HOLE 2 XMM)) 2))) (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 3) (BOR F32 (SUBREG F32 (REG I128 (HOLE 1 XMM)) 3) (SUBREG F32 (REG I128 (HOLE 2 XMM)) 3))))) ;ORPS xmm,m128 (DEFINST ("ORPS ?1x,REAL4 PTR ??2s" "ORPS ??2s,%?1x" "ORPS ?1x,??2s") (PARALLEL (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 0) (BOR F32 (SUBREG F32 (REG I128 (HOLE 1 XMM)) 0) (SUBREG F32 (MEM I128 (HOLE 2)) 0))) (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 1) (BOR F32 (SUBREG F32 (REG I128 (HOLE 1 XMM)) 1) (SUBREG F32 (MEM I128 (HOLE 2)) 1))) (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 2) (BOR F32 (SUBREG F32 (REG I128 (HOLE 1 XMM)) 2) (SUBREG F32 (MEM I128 (HOLE 2)) 2))) (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 3) (BOR F32 (SUBREG F32 (REG I128 (HOLE 1 XMM)) 3) (SUBREG F32 (MEM I128 (HOLE 2)) 3))))) ;パックド単精度浮動小数点数のXOR(排他的論理和)演算をする ;XORPS xmm,xmm (DEFINST ("XORPS ?1x,?2x" "XORPS %?2x,%?1x" "XORPS ?1x,?2x") (PARALLEL (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 0) (BXOR F32 (SUBREG F32 (REG I128 (HOLE 1 XMM)) 0) (SUBREG F32 (REG I128 (HOLE 2 XMM)) 0))) (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 1) (BXOR F32 (SUBREG F32 (REG I128 (HOLE 1 XMM)) 1) (SUBREG F32 (REG I128 (HOLE 2 XMM)) 1))) (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 2) (BXOR F32 (SUBREG F32 (REG I128 (HOLE 1 XMM)) 2) (SUBREG F32 (REG I128 (HOLE 2 XMM)) 2))) (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 3) (BXOR F32 (SUBREG F32 (REG I128 (HOLE 1 XMM)) 3) (SUBREG F32 (REG I128 (HOLE 2 XMM)) 3))))) ;XORPS xmm,m128 (DEFINST ("XORPS ?1x,REAL4 PTR ??2s" "XORPS ??2s,%?1x" "XORPS ?1x,??2s") (PARALLEL (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 0) (BXOR F32 (SUBREG F32 (REG I128 (HOLE 1 XMM)) 0) (SUBREG F32 (MEM I128 (HOLE 2)) 0))) (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 1) (BXOR F32 (SUBREG F32 (REG I128 (HOLE 1 XMM)) 1) (SUBREG F32 (MEM I128 (HOLE 2)) 1))) (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 2) (BXOR F32 (SUBREG F32 (REG I128 (HOLE 1 XMM)) 2) (SUBREG F32 (MEM I128 (HOLE 2)) 2))) (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 3) (BXOR F32 (SUBREG F32 (REG I128 (HOLE 1 XMM)) 3) (SUBREG F32 (MEM I128 (HOLE 2)) 3))))) ;第1オペランドの2つの単精度浮動小数点値と第2オペランドの2つの単精度浮動小数点値 ;からパックド単精度浮動小数点数を作成 ;SHUFPS xmm,xmm,imm8 (DEFINST ("SHUFPS ?1x,?2x,?3c" "SHUFPS $?3c,%?2x,%?1x" "SHUFPS ?1x,?2x,?3c") (PARALLEL (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 0) (IFTHENELSE F32 (TSTEQ I1 (BAND I8 (INTCONST I8 (HOLE 3)) (INTCONST I8 #x02)) (INTCONST I8 0)) (IFTHENELSE F32 (TSTEQ I1 (BAND I8 (INTCONST I8 (HOLE 3)) (INTCONST I8 #x01)) (INTCONST I8 0)) (SUBREG F32 (REG I128 (HOLE 1 XMM)) 0) (SUBREG F32 (REG I128 (HOLE 1 XMM)) 1)) (IFTHENELSE F32 (TSTEQ I1 (BAND I8 (INTCONST I8 (HOLE 3)) (INTCONST I8 #x01)) (INTCONST I8 0)) (SUBREG F32 (REG I128 (HOLE 1 XMM)) 2) (SUBREG F32 (REG I128 (HOLE 1 XMM)) 3)))) (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 1) (IFTHENELSE F32 (TSTEQ I1 (BAND I8 (INTCONST I8 (HOLE 3)) (INTCONST I8 #x08)) (INTCONST I8 0)) (IFTHENELSE F32 (TSTEQ I1 (BAND I8 (INTCONST I8 (HOLE 3)) (INTCONST I8 #x04)) (INTCONST I8 0)) (SUBREG F32 (REG I128 (HOLE 1 XMM)) 0) (SUBREG F32 (REG I128 (HOLE 1 XMM)) 1)) (IFTHENELSE F32 (TSTEQ I1 (BAND I8 (INTCONST I8 (HOLE 3)) (INTCONST I8 #x04)) (INTCONST I8 0)) (SUBREG F32 (REG I128 (HOLE 1 XMM)) 2) (SUBREG F32 (REG I128 (HOLE 1 XMM)) 3)))) (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 2) (IFTHENELSE F32 (TSTEQ I1 (BAND I8 (INTCONST I8 (HOLE 3)) (INTCONST I8 #x20)) (INTCONST I8 0)) (IFTHENELSE F32 (TSTEQ I1 (BAND I8 (INTCONST I8 (HOLE 3)) (INTCONST I8 #x10)) (INTCONST I8 0)) (SUBREG F32 (REG I128 (HOLE 2 XMM)) 0) (SUBREG F32 (REG I128 (HOLE 2 XMM)) 1)) (IFTHENELSE F32 (TSTEQ I1 (BAND I8 (INTCONST I8 (HOLE 3)) (INTCONST I8 #x10)) (INTCONST I8 0)) (SUBREG F32 (REG I128 (HOLE 2 XMM)) 2) (SUBREG F32 (REG I128 (HOLE 2 XMM)) 3)))) (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 3) (IFTHENELSE F32 (TSTEQ I1 (BAND I8 (INTCONST I8 (HOLE 3)) (INTCONST I8 #x80)) (INTCONST I8 0)) (IFTHENELSE F32 (TSTEQ I1 (BAND I8 (INTCONST I8 (HOLE 3)) (INTCONST I8 #x40)) (INTCONST I8 0)) (SUBREG F32 (REG I128 (HOLE 2 XMM)) 0) (SUBREG F32 (REG I128 (HOLE 2 XMM)) 1)) (IFTHENELSE F32 (TSTEQ I1 (BAND I8 (INTCONST I8 (HOLE 3)) (INTCONST I8 #x40)) (INTCONST I8 0)) (SUBREG F32 (REG I128 (HOLE 2 XMM)) 2) (SUBREG F32 (REG I128 (HOLE 2 XMM)) 3)))))) ;SHUFPS xmm,m128,imm8 (DEFINST ("SHUFPS ?1x,REAL4 PTR ??2s,?3c" "SHUFPS $?3c,??2s,%?1x" "SHUFPS ?1x,??2s,?3c") (PARALLEL (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 0) (IFTHENELSE F32 (TSTEQ I1 (BAND I8 (INTCONST I8 (HOLE 3)) (INTCONST I8 #x02)) (INTCONST I8 0)) (IFTHENELSE F32 (TSTEQ I1 (BAND I8 (INTCONST I8 (HOLE 3)) (INTCONST I8 #x01)) (INTCONST I8 0)) (SUBREG F32 (REG I128 (HOLE 1 XMM)) 0) (SUBREG F32 (REG I128 (HOLE 1 XMM)) 1)) (IFTHENELSE F32 (TSTEQ I1 (BAND I8 (INTCONST I8 (HOLE 3)) (INTCONST I8 #x01)) (INTCONST I8 0)) (SUBREG F32 (REG I128 (HOLE 1 XMM)) 2) (SUBREG F32 (REG I128 (HOLE 1 XMM)) 3)))) (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 1) (IFTHENELSE F32 (TSTEQ I1 (BAND I8 (INTCONST I8 (HOLE 3)) (INTCONST I8 #x08)) (INTCONST I8 0)) (IFTHENELSE F32 (TSTEQ I1 (BAND I8 (INTCONST I8 (HOLE 3)) (INTCONST I8 #x04)) (INTCONST I8 0)) (SUBREG F32 (REG I128 (HOLE 1 XMM)) 0) (SUBREG F32 (REG I128 (HOLE 1 XMM)) 1)) (IFTHENELSE F32 (TSTEQ I1 (BAND I8 (INTCONST I8 (HOLE 3)) (INTCONST I8 #x04)) (INTCONST I8 0)) (SUBREG F32 (REG I128 (HOLE 1 XMM)) 2) (SUBREG F32 (REG I128 (HOLE 1 XMM)) 3)))) (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 2) (IFTHENELSE F32 (TSTEQ I1 (BAND I8 (INTCONST I8 (HOLE 3)) (INTCONST I8 #x20)) (INTCONST I8 0)) (IFTHENELSE F32 (TSTEQ I1 (BAND I8 (INTCONST I8 (HOLE 3)) (INTCONST I8 #x10)) (INTCONST I8 0)) (SUBREG F32 (MEM I128 (HOLE 2)) 0) (SUBREG F32 (MEM I128 (HOLE 2)) 1)) (IFTHENELSE F32 (TSTEQ I1 (BAND I8 (INTCONST I8 (HOLE 3)) (INTCONST I8 #x10)) (INTCONST I8 0)) (SUBREG F32 (MEM I128 (HOLE 2)) 2) (SUBREG F32 (MEM I128 (HOLE 2)) 3)))) (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 3) (IFTHENELSE F32 (TSTEQ I1 (BAND I8 (INTCONST I8 (HOLE 3)) (INTCONST I8 #x80)) (INTCONST I8 0)) (IFTHENELSE F32 (TSTEQ I1 (BAND I8 (INTCONST I8 (HOLE 3)) (INTCONST I8 #x40)) (INTCONST I8 0)) (SUBREG F32 (MEM I128 (HOLE 2)) 0) (SUBREG F32 (MEM I128 (HOLE 2)) 1)) (IFTHENELSE F32 (TSTEQ I1 (BAND I8 (INTCONST I8 (HOLE 3)) (INTCONST I8 #x40)) (INTCONST I8 0)) (SUBREG F32 (MEM I128 (HOLE 2)) 2) (SUBREG F32 (MEM I128 (HOLE 2)) 3)))))) ; ;UNPCKHPS xmm,xmm (DEFINST ("UNPCKHPS ?1x,?2x" "UNPCKHPS %?2x,%?1x" "UNPCKHPS ?1x,?2x") (PARALLEL (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 0) (SUBREG F32 (REG I128 (HOLE 1 XMM)) 2)) (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 1) (SUBREG F32 (REG I128 (HOLE 2 XMM)) 2)) (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 2) (SUBREG F32 (REG I128 (HOLE 1 XMM)) 3)) (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 3) (SUBREG F32 (REG I128 (HOLE 2 XMM)) 3)))) ;UNPCKHPS xmm,m128 (DEFINST ("UNPCKHPS ?1x,REAL4 PTR ??2s" "UNPCKHPS ??2s,%?1x" "UNPCKHPS ?1x,??2s") (PARALLEL (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 0) (SUBREG F32 (REG I128 (HOLE 1 XMM)) 2)) (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 1) (SUBREG F32 (MEM I128 (HOLE 2)) 2)) (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 2) (SUBREG F32 (REG I128 (HOLE 1 XMM)) 3)) (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 3) (SUBREG F32 (MEM I128 (HOLE 2)) 3)))) ;UNPCKLPS xmm,xmm (DEFINST ("UNPCKLPS ?1x,?2x" "UNPCKLPS %?2x,%?1x" "UNPCKLPS ?1x,?2x") (PARALLEL (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 0) (SUBREG F32 (REG I128 (HOLE 1 XMM)) 0)) (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 1) (SUBREG F32 (REG I128 (HOLE 2 XMM)) 0)) (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 2) (SUBREG F32 (REG I128 (HOLE 1 XMM)) 1)) (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 3) (SUBREG F32 (REG I128 (HOLE 2 XMM)) 1)))) ;UNPCKLPS xmm,m128 (DEFINST ("UNPCKLPS ?1x,REAL4 PTR ??2s" "UNPCKLPS ??2s,%?1x" "UNPCKLPS ?1x,??2s") (PARALLEL (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 0) (SUBREG F32 (REG I128 (HOLE 1 XMM)) 0)) (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 1) (SUBREG F32 (MEM I128 (HOLE 2)) 0)) (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 2) (SUBREG F32 (REG I128 (HOLE 1 XMM)) 1)) (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 3) (SUBREG F32 (MEM I128 (HOLE 2)) 1)))) ;パックド符号なし整数の平均値を求める ;PAVGB mm,mm (DEFINST ("PAVGB ?1m,?2m" "PAVGB %?2m,%?1m" "PAVGB ?1m,?2m") (PARALLEL (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 0) (CONVIT I8 (RSHU I9 (ADD I9 (ADD I9 (CONVZX I9 (SUBREG I8 (REG I64 (HOLE 1 MM)) 0)) (CONVZX I9 (SUBREG I8 (REG I64 (HOLE 2 MM)) 0))) (CONVZX I9 (INTCONST I8 1))) (INTCONST I8 1)))) (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 1) (CONVIT I8 (RSHU I9 (ADD I9 (ADD I9 (CONVZX I9 (SUBREG I8 (REG I64 (HOLE 1 MM)) 1)) (CONVZX I9 (SUBREG I8 (REG I64 (HOLE 2 MM)) 1))) (CONVZX I9 (INTCONST I8 1))) (INTCONST I8 1)))) (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 2) (CONVIT I8 (RSHU I9 (ADD I9 (ADD I9 (CONVZX I9 (SUBREG I8 (REG I64 (HOLE 1 MM)) 2)) (CONVZX I9 (SUBREG I8 (REG I64 (HOLE 2 MM)) 2))) (CONVZX I9 (INTCONST I8 1))) (INTCONST I8 1)))) (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 3) (CONVIT I8 (RSHU I9 (ADD I9 (ADD I9 (CONVZX I9 (SUBREG I8 (REG I64 (HOLE 1 MM)) 3)) (CONVZX I9 (SUBREG I8 (REG I64 (HOLE 2 MM)) 3))) (CONVZX I9 (INTCONST I8 1))) (INTCONST I8 1)))) (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 4) (CONVIT I8 (RSHU I9 (ADD I9 (ADD I9 (CONVZX I9 (SUBREG I8 (REG I64 (HOLE 1 MM)) 4)) (CONVZX I9 (SUBREG I8 (REG I64 (HOLE 2 MM)) 4))) (CONVZX I9 (INTCONST I8 1))) (INTCONST I8 1)))) (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 5) (CONVIT I8 (RSHU I9 (ADD I9 (ADD I9 (CONVZX I9 (SUBREG I8 (REG I64 (HOLE 1 MM)) 5)) (CONVZX I9 (SUBREG I8 (REG I64 (HOLE 2 MM)) 5))) (CONVZX I9 (INTCONST I8 1))) (INTCONST I8 1)))) (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 6) (CONVIT I8 (RSHU I9 (ADD I9 (ADD I9 (CONVZX I9 (SUBREG I8 (REG I64 (HOLE 1 MM)) 6)) (CONVZX I9 (SUBREG I8 (REG I64 (HOLE 2 MM)) 6))) (CONVZX I9 (INTCONST I8 1))) (INTCONST I8 1)))) (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 7) (CONVIT I8 (RSHU I9 (ADD I9 (ADD I9 (CONVZX I9 (SUBREG I8 (REG I64 (HOLE 1 MM)) 7)) (CONVZX I9 (SUBREG I8 (REG I64 (HOLE 2 MM)) 7))) (CONVZX I9 (INTCONST I8 1))) (INTCONST I8 1)))))) ;PAVGB mm,m64 (DEFINST ("PAVGB ?1m,QWORD PTR ??2s" "PAVGB ??2s,%?1m" "PAVGB ?1m,QWORD PTR ??2s") (PARALLEL (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 0) (CONVIT I8 (RSHU I9 (ADD I9 (ADD I9 (CONVZX I9 (SUBREG I8 (REG I64 (HOLE 1 MM)) 0)) (CONVZX I9 (SUBREG I8 (MEM I64 (HOLE 2)) 0))) (CONVZX I9 (INTCONST I8 1))) (INTCONST I8 1)))) (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 1) (CONVIT I8 (RSHU I9 (ADD I9 (ADD I9 (CONVZX I9 (SUBREG I8 (REG I64 (HOLE 1 MM)) 1)) (CONVZX I9 (SUBREG I8 (MEM I64 (HOLE 2)) 1))) (CONVZX I9 (INTCONST I8 1))) (INTCONST I8 1)))) (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 2) (CONVIT I8 (RSHU I9 (ADD I9 (ADD I9 (CONVZX I9 (SUBREG I8 (REG I64 (HOLE 1 MM)) 2)) (CONVZX I9 (SUBREG I8 (MEM I64 (HOLE 2)) 2))) (CONVZX I9 (INTCONST I8 1))) (INTCONST I8 1)))) (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 3) (CONVIT I8 (RSHU I9 (ADD I9 (ADD I9 (CONVZX I9 (SUBREG I8 (REG I64 (HOLE 1 MM)) 3)) (CONVZX I9 (SUBREG I8 (MEM I64 (HOLE 2)) 3))) (CONVZX I9 (INTCONST I8 1))) (INTCONST I8 1)))) (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 4) (CONVIT I8 (RSHU I9 (ADD I9 (ADD I9 (CONVZX I9 (SUBREG I8 (REG I64 (HOLE 1 MM)) 4)) (CONVZX I9 (SUBREG I8 (MEM I64 (HOLE 2)) 4))) (CONVZX I9 (INTCONST I8 1))) (INTCONST I8 1)))) (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 5) (CONVIT I8 (RSHU I9 (ADD I9 (ADD I9 (CONVZX I9 (SUBREG I8 (REG I64 (HOLE 1 MM)) 5)) (CONVZX I9 (SUBREG I8 (MEM I64 (HOLE 2)) 5))) (CONVZX I9 (INTCONST I8 1))) (INTCONST I8 1)))) (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 6) (CONVIT I8 (RSHU I9 (ADD I9 (ADD I9 (CONVZX I9 (SUBREG I8 (REG I64 (HOLE 1 MM)) 6)) (CONVZX I9 (SUBREG I8 (MEM I64 (HOLE 2)) 6))) (CONVZX I9 (INTCONST I8 1))) (INTCONST I8 1)))) (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 7) (CONVIT I8 (RSHU I9 (ADD I9 (ADD I9 (CONVZX I9 (SUBREG I8 (REG I64 (HOLE 1 MM)) 7)) (CONVZX I9 (SUBREG I8 (MEM I64 (HOLE 2)) 7))) (CONVZX I9 (INTCONST I8 1))) (INTCONST I8 1)))))) ;PAVGB xmm,xmm (DEFINST ("PAVGB ?1x,?2x" "nil" "nil") (PARALLEL (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 0) (CONVIT I8 (RSHU I9 (ADD I9 (ADD I9 (CONVZX I9 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 0)) (CONVZX I9 (SUBREG I8 (REG I128 (HOLE 2 XMM)) 0))) (CONVZX I9 (INTCONST I8 1))) (INTCONST I8 1)))) (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 1) (CONVIT I8 (RSHU I9 (ADD I9 (ADD I9 (CONVZX I9 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 1)) (CONVZX I9 (SUBREG I8 (REG I128 (HOLE 2 XMM)) 1))) (CONVZX I9 (INTCONST I8 1))) (INTCONST I8 1)))) (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 2) (CONVIT I8 (RSHU I9 (ADD I9 (ADD I9 (CONVZX I9 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 2)) (CONVZX I9 (SUBREG I8 (REG I128 (HOLE 2 XMM)) 2))) (CONVZX I9 (INTCONST I8 1))) (INTCONST I8 1)))) (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 3) (CONVIT I8 (RSHU I9 (ADD I9 (ADD I9 (CONVZX I9 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 3)) (CONVZX I9 (SUBREG I8 (REG I128 (HOLE 2 XMM)) 3))) (CONVZX I9 (INTCONST I8 1))) (INTCONST I8 1)))) (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 4) (CONVIT I8 (RSHU I9 (ADD I9 (ADD I9 (CONVZX I9 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 4)) (CONVZX I9 (SUBREG I8 (REG I128 (HOLE 2 XMM)) 4))) (CONVZX I9 (INTCONST I8 1))) (INTCONST I8 1)))) (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 5) (CONVIT I8 (RSHU I9 (ADD I9 (ADD I9 (CONVZX I9 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 5)) (CONVZX I9 (SUBREG I8 (REG I128 (HOLE 2 XMM)) 5))) (CONVZX I9 (INTCONST I8 1))) (INTCONST I8 1)))) (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 6) (CONVIT I8 (RSHU I9 (ADD I9 (ADD I9 (CONVZX I9 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 6)) (CONVZX I9 (SUBREG I8 (REG I128 (HOLE 2 XMM)) 6))) (CONVZX I9 (INTCONST I8 1))) (INTCONST I8 1)))) (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 7) (CONVIT I8 (RSHU I9 (ADD I9 (ADD I9 (CONVZX I9 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 7)) (CONVZX I9 (SUBREG I8 (REG I128 (HOLE 2 XMM)) 7))) (CONVZX I9 (INTCONST I8 1))) (INTCONST I8 1)))) (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 8) (CONVIT I8 (RSHU I9 (ADD I9 (ADD I9 (CONVZX I9 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 8)) (CONVZX I9 (SUBREG I8 (REG I128 (HOLE 2 XMM)) 8))) (CONVZX I9 (INTCONST I8 1))) (INTCONST I8 1)))) (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 9) (CONVIT I8 (RSHU I9 (ADD I9 (ADD I9 (CONVZX I9 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 9)) (CONVZX I9 (SUBREG I8 (REG I128 (HOLE 2 XMM)) 9))) (CONVZX I9 (INTCONST I8 1))) (INTCONST I8 1)))) (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 10) (CONVIT I8 (RSHU I9 (ADD I9 (ADD I9 (CONVZX I9 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 10)) (CONVZX I9 (SUBREG I8 (REG I128 (HOLE 2 XMM)) 10))) (CONVZX I9 (INTCONST I8 1))) (INTCONST I8 1)))) (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 11) (CONVIT I8 (RSHU I9 (ADD I9 (ADD I9 (CONVZX I9 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 11)) (CONVZX I9 (SUBREG I8 (REG I128 (HOLE 2 XMM)) 11))) (CONVZX I9 (INTCONST I8 1))) (INTCONST I8 1)))) (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 12) (CONVIT I8 (RSHU I9 (ADD I9 (ADD I9 (CONVZX I9 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 12)) (CONVZX I9 (SUBREG I8 (REG I128 (HOLE 2 XMM)) 12))) (CONVZX I9 (INTCONST I8 1))) (INTCONST I8 1)))) (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 13) (CONVIT I8 (RSHU I9 (ADD I9 (ADD I9 (CONVZX I9 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 13)) (CONVZX I9 (SUBREG I8 (REG I128 (HOLE 2 XMM)) 13))) (CONVZX I9 (INTCONST I8 1))) (INTCONST I8 1)))) (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 14) (CONVIT I8 (RSHU I9 (ADD I9 (ADD I9 (CONVZX I9 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 14)) (CONVZX I9 (SUBREG I8 (REG I128 (HOLE 2 XMM)) 14))) (CONVZX I9 (INTCONST I8 1))) (INTCONST I8 1)))) (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 15) (CONVIT I8 (RSHU I9 (ADD I9 (ADD I9 (CONVZX I9 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 15)) (CONVZX I9 (SUBREG I8 (REG I128 (HOLE 2 XMM)) 15))) (CONVZX I9 (INTCONST I8 1))) (INTCONST I8 1)))))) ;PAVGB xmm,m128 (DEFINST ("PAVGB ?1x,QWORD PTR ??2s" "nil" "nil") (PARALLEL (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 0) (CONVIT I8 (RSHU I9 (ADD I9 (ADD I9 (CONVZX I9 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 0)) (CONVZX I9 (SUBREG I8 (MEM I128 (HOLE 2)) 0))) (CONVZX I9 (INTCONST I8 1))) (INTCONST I8 1)))) (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 1) (CONVIT I8 (RSHU I9 (ADD I9 (ADD I9 (CONVZX I9 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 1)) (CONVZX I9 (SUBREG I8 (MEM I128 (HOLE 2)) 1))) (CONVZX I9 (INTCONST I8 1))) (INTCONST I8 1)))) (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 2) (CONVIT I8 (RSHU I9 (ADD I9 (ADD I9 (CONVZX I9 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 2)) (CONVZX I9 (SUBREG I8 (MEM I128 (HOLE 2)) 2))) (CONVZX I9 (INTCONST I8 1))) (INTCONST I8 1)))) (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 3) (CONVIT I8 (RSHU I9 (ADD I9 (ADD I9 (CONVZX I9 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 3)) (CONVZX I9 (SUBREG I8 (MEM I128 (HOLE 2)) 3))) (CONVZX I9 (INTCONST I8 1))) (INTCONST I8 1)))) (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 4) (CONVIT I8 (RSHU I9 (ADD I9 (ADD I9 (CONVZX I9 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 4)) (CONVZX I9 (SUBREG I8 (MEM I128 (HOLE 2)) 4))) (CONVZX I9 (INTCONST I8 1))) (INTCONST I8 1)))) (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 5) (CONVIT I8 (RSHU I9 (ADD I9 (ADD I9 (CONVZX I9 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 5)) (CONVZX I9 (SUBREG I8 (MEM I128 (HOLE 2)) 5))) (CONVZX I9 (INTCONST I8 1))) (INTCONST I8 1)))) (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 6) (CONVIT I8 (RSHU I9 (ADD I9 (ADD I9 (CONVZX I9 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 6)) (CONVZX I9 (SUBREG I8 (MEM I128 (HOLE 2)) 6))) (CONVZX I9 (INTCONST I8 1))) (INTCONST I8 1)))) (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 7) (CONVIT I8 (RSHU I9 (ADD I9 (ADD I9 (CONVZX I9 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 7)) (CONVZX I9 (SUBREG I8 (MEM I128 (HOLE 2)) 7))) (CONVZX I9 (INTCONST I8 1))) (INTCONST I8 1)))) (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 8) (CONVIT I8 (RSHU I9 (ADD I9 (ADD I9 (CONVZX I9 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 8)) (CONVZX I9 (SUBREG I8 (MEM I128 (HOLE 2)) 8))) (CONVZX I9 (INTCONST I8 1))) (INTCONST I8 1)))) (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 9) (CONVIT I8 (RSHU I9 (ADD I9 (ADD I9 (CONVZX I9 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 9)) (CONVZX I9 (SUBREG I8 (MEM I128 (HOLE 2)) 9))) (CONVZX I9 (INTCONST I8 1))) (INTCONST I8 1)))) (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 10) (CONVIT I8 (RSHU I9 (ADD I9 (ADD I9 (CONVZX I9 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 10)) (CONVZX I9 (SUBREG I8 (MEM I128 (HOLE 2)) 10))) (CONVZX I9 (INTCONST I8 1))) (INTCONST I8 1)))) (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 11) (CONVIT I8 (RSHU I9 (ADD I9 (ADD I9 (CONVZX I9 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 11)) (CONVZX I9 (SUBREG I8 (MEM I128 (HOLE 2)) 11))) (CONVZX I9 (INTCONST I8 1))) (INTCONST I8 1)))) (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 12) (CONVIT I8 (RSHU I9 (ADD I9 (ADD I9 (CONVZX I9 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 12)) (CONVZX I9 (SUBREG I8 (MEM I128 (HOLE 2)) 12))) (CONVZX I9 (INTCONST I8 1))) (INTCONST I8 1)))) (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 13) (CONVIT I8 (RSHU I9 (ADD I9 (ADD I9 (CONVZX I9 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 13)) (CONVZX I9 (SUBREG I8 (MEM I128 (HOLE 2)) 13))) (CONVZX I9 (INTCONST I8 1))) (INTCONST I8 1)))) (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 14) (CONVIT I8 (RSHU I9 (ADD I9 (ADD I9 (CONVZX I9 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 14)) (CONVZX I9 (SUBREG I8 (MEM I128 (HOLE 2)) 14))) (CONVZX I9 (INTCONST I8 1))) (INTCONST I8 1)))) (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 15) (CONVIT I8 (RSHU I9 (ADD I9 (ADD I9 (CONVZX I9 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 15)) (CONVZX I9 (SUBREG I8 (MEM I128 (HOLE 2)) 15))) (CONVZX I9 (INTCONST I8 1))) (INTCONST I8 1)))))) ;PAVGW mm,mm (DEFINST ("PAVGW ?1m,?2m" "PAVGW %?2m,%?1m" "PAVGW ?1m,?2m") (PARALLEL (SET (SUBREG I16 (REG I64 (HOLE 1 MM)) 0) (CONVIT I16 (RSHU I17 (ADD I17 (ADD I17 (CONVZX I17 (SUBREG I16 (REG I64 (HOLE 1 MM)) 0)) (CONVZX I17 (SUBREG I16 (REG I64 (HOLE 2 MM)) 0))) (CONVZX I17 (INTCONST I16 1))) (INTCONST I8 1)))) (SET (SUBREG I16 (REG I64 (HOLE 1 MM)) 1) (CONVIT I16 (RSHU I17 (ADD I17 (ADD I17 (CONVZX I17 (SUBREG I16 (REG I64 (HOLE 1 MM)) 1)) (CONVZX I17 (SUBREG I16 (REG I64 (HOLE 2 MM)) 1))) (CONVZX I17 (INTCONST I16 1))) (INTCONST I8 1)))) (SET (SUBREG I16 (REG I64 (HOLE 1 MM)) 2) (CONVIT I16 (RSHU I17 (ADD I17 (ADD I17 (CONVZX I17 (SUBREG I16 (REG I64 (HOLE 1 MM)) 2)) (CONVZX I17 (SUBREG I16 (REG I64 (HOLE 2 MM)) 2))) (CONVZX I17 (INTCONST I16 1))) (INTCONST I8 1)))) (SET (SUBREG I16 (REG I64 (HOLE 1 MM)) 3) (CONVIT I16 (RSHU I17 (ADD I17 (ADD I17 (CONVZX I17 (SUBREG I16 (REG I64 (HOLE 1 MM)) 3)) (CONVZX I17 (SUBREG I16 (REG I64 (HOLE 2 MM)) 3))) (CONVZX I17 (INTCONST I16 1))) (INTCONST I8 1)))))) ;PAVGW mm,m64 (DEFINST ("PAVGW ?1m,QWORD PTR ??2s" "PAVGW ??2s,%?1m" "PAVGW ?1m,QWORD PTR ??2s") (PARALLEL (SET (SUBREG I16 (REG I64 (HOLE 1 MM)) 0) (CONVIT I16 (RSHU I17 (ADD I17 (ADD I17 (CONVZX I17 (SUBREG I16 (REG I64 (HOLE 1 MM)) 0)) (CONVZX I17 (SUBREG I16 (MEM I64 (HOLE 2)) 0))) (CONVZX I17 (INTCONST I16 1))) (INTCONST I8 1)))) (SET (SUBREG I16 (REG I64 (HOLE 1 MM)) 1) (CONVIT I16 (RSHU I17 (ADD I17 (ADD I17 (CONVZX I17 (SUBREG I16 (REG I64 (HOLE 1 MM)) 1)) (CONVZX I17 (SUBREG I16 (MEM I64 (HOLE 2)) 1))) (CONVZX I17 (INTCONST I16 1))) (INTCONST I8 1)))) (SET (SUBREG I16 (REG I64 (HOLE 1 MM)) 2) (CONVIT I16 (RSHU I17 (ADD I17 (ADD I17 (CONVZX I17 (SUBREG I16 (REG I64 (HOLE 1 MM)) 2)) (CONVZX I17 (SUBREG I16 (MEM I64 (HOLE 2)) 2))) (CONVZX I17 (INTCONST I16 1))) (INTCONST I8 1)))) (SET (SUBREG I16 (REG I64 (HOLE 1 MM)) 3) (CONVIT I16 (RSHU I17 (ADD I17 (ADD I17 (CONVZX I17 (SUBREG I16 (REG I64 (HOLE 1 MM)) 3)) (CONVZX I17 (SUBREG I16 (MEM I64 (HOLE 2)) 3))) (CONVZX I17 (INTCONST I16 1))) (INTCONST I8 1)))))) ;PAVGW xmm,xmm (DEFINST ("PAVGW ?1x,?2x" "nil" "nil") (PARALLEL (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 0) (CONVIT I16 (RSHU I17 (ADD I17 (ADD I17 (CONVZX I17 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 0)) (CONVZX I17 (SUBREG I16 (REG I128 (HOLE 2 XMM)) 0))) (CONVZX I17 (INTCONST I16 1))) (INTCONST I8 1)))) (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 1) (CONVIT I16 (RSHU I17 (ADD I17 (ADD I17 (CONVZX I17 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 1)) (CONVZX I17 (SUBREG I16 (REG I128 (HOLE 2 XMM)) 1))) (CONVZX I17 (INTCONST I16 1))) (INTCONST I8 1)))) (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 2) (CONVIT I16 (RSHU I17 (ADD I17 (ADD I17 (CONVZX I17 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 2)) (CONVZX I17 (SUBREG I16 (REG I128 (HOLE 2 XMM)) 2))) (CONVZX I17 (INTCONST I16 1))) (INTCONST I8 1)))) (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 3) (CONVIT I16 (RSHU I17 (ADD I17 (ADD I17 (CONVZX I17 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 3)) (CONVZX I17 (SUBREG I16 (REG I128 (HOLE 2 XMM)) 3))) (CONVZX I17 (INTCONST I16 1))) (INTCONST I8 1)))) (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 4) (CONVIT I16 (RSHU I17 (ADD I17 (ADD I17 (CONVZX I17 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 4)) (CONVZX I17 (SUBREG I16 (REG I128 (HOLE 2 XMM)) 4))) (CONVZX I17 (INTCONST I16 1))) (INTCONST I8 1)))) (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 5) (CONVIT I16 (RSHU I17 (ADD I17 (ADD I17 (CONVZX I17 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 5)) (CONVZX I17 (SUBREG I16 (REG I128 (HOLE 2 XMM)) 5))) (CONVZX I17 (INTCONST I16 1))) (INTCONST I8 1)))) (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 6) (CONVIT I16 (RSHU I17 (ADD I17 (ADD I17 (CONVZX I17 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 6)) (CONVZX I17 (SUBREG I16 (REG I128 (HOLE 2 XMM)) 6))) (CONVZX I17 (INTCONST I16 1))) (INTCONST I8 1)))) (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 7) (CONVIT I16 (RSHU I17 (ADD I17 (ADD I17 (CONVZX I17 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 7)) (CONVZX I17 (SUBREG I16 (REG I128 (HOLE 2 XMM)) 7))) (CONVZX I17 (INTCONST I16 1))) (INTCONST I8 1)))))) ;PAVGW xmm,m128 (DEFINST ("PAVGW ?1x,QWORD PTR ??2s" "nil" "nil") (PARALLEL (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 0) (CONVIT I16 (RSHU I17 (ADD I17 (ADD I17 (CONVZX I17 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 0)) (CONVZX I17 (SUBREG I16 (MEM I128 (HOLE 2)) 0))) (CONVZX I17 (INTCONST I16 1))) (INTCONST I8 1)))) (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 1) (CONVIT I16 (RSHU I17 (ADD I17 (ADD I17 (CONVZX I17 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 1)) (CONVZX I17 (SUBREG I16 (MEM I128 (HOLE 2)) 1))) (CONVZX I17 (INTCONST I16 1))) (INTCONST I8 1)))) (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 2) (CONVIT I16 (RSHU I17 (ADD I17 (ADD I17 (CONVZX I17 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 2)) (CONVZX I17 (SUBREG I16 (MEM I128 (HOLE 2)) 2))) (CONVZX I17 (INTCONST I16 1))) (INTCONST I8 1)))) (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 3) (CONVIT I16 (RSHU I17 (ADD I17 (ADD I17 (CONVZX I17 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 3)) (CONVZX I17 (SUBREG I16 (MEM I128 (HOLE 2)) 3))) (CONVZX I17 (INTCONST I16 1))) (INTCONST I8 1)))) (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 4) (CONVIT I16 (RSHU I17 (ADD I17 (ADD I17 (CONVZX I17 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 4)) (CONVZX I17 (SUBREG I16 (MEM I128 (HOLE 2)) 4))) (CONVZX I17 (INTCONST I16 1))) (INTCONST I8 1)))) (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 5) (CONVIT I16 (RSHU I17 (ADD I17 (ADD I17 (CONVZX I17 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 5)) (CONVZX I17 (SUBREG I16 (MEM I128 (HOLE 2)) 5))) (CONVZX I17 (INTCONST I16 1))) (INTCONST I8 1)))) (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 6) (CONVIT I16 (RSHU I17 (ADD I17 (ADD I17 (CONVZX I17 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 6)) (CONVZX I17 (SUBREG I16 (MEM I128 (HOLE 2)) 6))) (CONVZX I17 (INTCONST I16 1))) (INTCONST I8 1)))) (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 7) (CONVIT I16 (RSHU I17 (ADD I17 (ADD I17 (CONVZX I17 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 7)) (CONVZX I17 (SUBREG I16 (MEM I128 (HOLE 2)) 7))) (CONVZX I17 (INTCONST I16 1))) (INTCONST I8 1)))))) ;指定したワードを抽出し、汎用レジスタに移動する ;PEXTRW r32,mm,imm8 (DEFINST ("PEXTRW ?1r,?2m,?3c" "PEXTRW $?3c,%?2m,%?1r" "PEXTRW ?1r,?2m,?3c") (PARALLEL (SET (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (IFTHENELSE I16 (TSTEQ I1 (BAND I8 (INTCONST I8 (HOLE 3)) (INTCONST I8 #x02)) (INTCONST I8 0)) (IFTHENELSE I16 (TSTEQ I1 (BAND I8 (INTCONST I8 (HOLE 3)) (INTCONST I8 #x01)) (INTCONST I8 0)) (SUBREG I16 (REG I64 (HOLE 2 MM)) 0) (SUBREG I16 (REG I64 (HOLE 2 MM)) 1)) (IFTHENELSE I16 (TSTEQ I1 (BAND I8 (INTCONST I8 (HOLE 3)) (INTCONST I8 #x01)) (INTCONST I8 0)) (SUBREG I16 (REG I64 (HOLE 2 MM)) 2) (SUBREG I16 (REG I64 (HOLE 2 MM)) 3)))) (SET (SUBREG I16 (REG I32 (HOLE 1 R32)) 1) (INTCONST I16 0)))) ;PEXTRW r32,xmm,imm8 (DEFINST ("PEXTRW ?1r,?2x,?3c" "nil" "nil") (PARALLEL (SET (SUBREG I16 (REG I32 (HOLE 1 R32)) 0) (IFTHENELSE I16 (TSTEQ I1 (BAND I8 (INTCONST I8 (HOLE 3)) (INTCONST I8 #x04)) (INTCONST I8 0)) (IFTHENELSE I16 (TSTEQ I1 (BAND I8 (INTCONST I8 (HOLE 3)) (INTCONST I8 #x02)) (INTCONST I8 0)) (IFTHENELSE I16 (TSTEQ I1 (BAND I8 (INTCONST I8 (HOLE 3)) (INTCONST I8 #x01)) (INTCONST I8 0)) (SUBREG I16 (REG I128 (HOLE 2 XMM)) 0) (SUBREG I16 (REG I128 (HOLE 2 XMM)) 1)) (IFTHENELSE I16 (TSTEQ I1 (BAND I8 (INTCONST I8 (HOLE 3)) (INTCONST I8 #x01)) (INTCONST I8 0)) (SUBREG I16 (REG I128 (HOLE 2 XMM)) 2) (SUBREG I16 (REG I128 (HOLE 2 XMM)) 3))) (IFTHENELSE I16 (TSTEQ I1 (BAND I8 (INTCONST I8 (HOLE 3)) (INTCONST I8 #x02)) (INTCONST I8 0)) (IFTHENELSE I16 (TSTEQ I1 (BAND I8 (INTCONST I8 (HOLE 3)) (INTCONST I8 #x01)) (INTCONST I8 0)) (SUBREG I16 (REG I128 (HOLE 2 XMM)) 4) (SUBREG I16 (REG I128 (HOLE 2 XMM)) 5)) (IFTHENELSE I16 (TSTEQ I1 (BAND I8 (INTCONST I8 (HOLE 3)) (INTCONST I8 #x01)) (INTCONST I8 0)) (SUBREG I16 (REG I128 (HOLE 2 XMM)) 6) (SUBREG I16 (REG I128 (HOLE 2 XMM)) 7))))) (SET (SUBREG I16 (REG I32 (HOLE 1 R32)) 1) (INTCONST I16 0)))) ;汎用レジスタの下位ワードをMM/XMMレジスタの指定した位置に移動する ;PINSRW mm,r32,imm8 (DEFINST ("PINSRW ?1m,?2r,?3c" "PINSRW $?3c,%?2r,%?1m" "PINSRW ?1m,?2r,?3c") (PARALLEL (SET (SUBREG I16 (REG I64 (HOLE 1 MM)) 0) (IFTHENELSE I16 (TSTEQ I1 (BAND I8 (INTCONST I8 (HOLE 3)) (INTCONST I8 #x03)) (INTCONST I8 0)) (SUBREG I16 (REG I32 (HOLE 2 R32)) 0) (SUBREG I16 (REG I64 (HOLE 1 MM)) 0))) (SET (SUBREG I16 (REG I64 (HOLE 1 MM)) 1) (IFTHENELSE I16 (TSTEQ I1 (BAND I8 (INTCONST I8 (HOLE 3)) (INTCONST I8 #x03)) (INTCONST I8 1)) (SUBREG I16 (REG I32 (HOLE 2 R32)) 0) (SUBREG I16 (REG I64 (HOLE 1 MM)) 1))) (SET (SUBREG I16 (REG I64 (HOLE 1 MM)) 2) (IFTHENELSE I16 (TSTEQ I1 (BAND I8 (INTCONST I8 (HOLE 3)) (INTCONST I8 #x03)) (INTCONST I8 2)) (SUBREG I16 (REG I32 (HOLE 2 R32)) 0) (SUBREG I16 (REG I64 (HOLE 1 MM)) 2))) (SET (SUBREG I16 (REG I64 (HOLE 1 MM)) 3) (IFTHENELSE I16 (TSTEQ I1 (BAND I8 (INTCONST I8 (HOLE 3)) (INTCONST I8 #x03)) (INTCONST I8 3)) (SUBREG I16 (REG I32 (HOLE 2 R32)) 0) (SUBREG I16 (REG I64 (HOLE 1 MM)) 3))))) ;PINSRW mm,m16,imm8 (DEFINST ("PINSRW ?1m,WORD PTR ??2s,?3c" "PINSRW $?3c,??2s,%?1m" "PINSRW ?1m,WORD PTR ??2s,?3c") (PARALLEL (SET (SUBREG I16 (REG I64 (HOLE 1 MM)) 0) (IFTHENELSE I16 (TSTEQ I1 (BAND I8 (INTCONST I8 (HOLE 3)) (INTCONST I8 #x03)) (INTCONST I8 0)) (MEM I16 (HOLE 2)) (SUBREG I16 (REG I64 (HOLE 1 MM)) 0))) (SET (SUBREG I16 (REG I64 (HOLE 1 MM)) 1) (IFTHENELSE I16 (TSTEQ I1 (BAND I8 (INTCONST I8 (HOLE 3)) (INTCONST I8 #x03)) (INTCONST I8 1)) (MEM I16 (HOLE 2)) (SUBREG I16 (REG I64 (HOLE 1 MM)) 1))) (SET (SUBREG I16 (REG I64 (HOLE 1 MM)) 2) (IFTHENELSE I16 (TSTEQ I1 (BAND I8 (INTCONST I8 (HOLE 3)) (INTCONST I8 #x03)) (INTCONST I8 2)) (MEM I16 (HOLE 2)) (SUBREG I16 (REG I64 (HOLE 1 MM)) 2))) (SET (SUBREG I16 (REG I64 (HOLE 1 MM)) 3) (IFTHENELSE I16 (TSTEQ I1 (BAND I8 (INTCONST I8 (HOLE 3)) (INTCONST I8 #x03)) (INTCONST I8 3)) (MEM I16 (HOLE 2)) (SUBREG I16 (REG I64 (HOLE 1 MM)) 3))))) ;PINSRW xmm,r32,imm8 (DEFINST ("PINSRW ?1x,?2r,?3c" "nil" "PINSRW ?1x,?2r,?3c") (PARALLEL (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 0) (IFTHENELSE I16 (TSTEQ I1 (BAND I8 (INTCONST I8 (HOLE 3)) (INTCONST I8 #x07)) (INTCONST I8 0)) (SUBREG I16 (REG I32 (HOLE 2 R32)) 0) (SUBREG I16 (REG I128 (HOLE 1 XMM)) 0))) (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 1) (IFTHENELSE I16 (TSTEQ I1 (BAND I8 (INTCONST I8 (HOLE 3)) (INTCONST I8 #x07)) (INTCONST I8 1)) (SUBREG I16 (REG I32 (HOLE 2 R32)) 0) (SUBREG I16 (REG I128 (HOLE 1 XMM)) 1))) (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 2) (IFTHENELSE I16 (TSTEQ I1 (BAND I8 (INTCONST I8 (HOLE 3)) (INTCONST I8 #x07)) (INTCONST I8 2)) (SUBREG I16 (REG I32 (HOLE 2 R32)) 0) (SUBREG I16 (REG I128 (HOLE 1 XMM)) 2))) (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 3) (IFTHENELSE I16 (TSTEQ I1 (BAND I8 (INTCONST I8 (HOLE 3)) (INTCONST I8 #x07)) (INTCONST I8 3)) (SUBREG I16 (REG I32 (HOLE 2 R32)) 0) (SUBREG I16 (REG I128 (HOLE 1 XMM)) 3))) (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 4) (IFTHENELSE I16 (TSTEQ I1 (BAND I8 (INTCONST I8 (HOLE 3)) (INTCONST I8 #x07)) (INTCONST I8 4)) (SUBREG I16 (REG I32 (HOLE 2 R32)) 0) (SUBREG I16 (REG I128 (HOLE 1 XMM)) 4))) (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 5) (IFTHENELSE I16 (TSTEQ I1 (BAND I8 (INTCONST I8 (HOLE 3)) (INTCONST I8 #x07)) (INTCONST I8 5)) (SUBREG I16 (REG I32 (HOLE 2 R32)) 0) (SUBREG I16 (REG I128 (HOLE 1 XMM)) 5))) (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 6) (IFTHENELSE I16 (TSTEQ I1 (BAND I8 (INTCONST I8 (HOLE 3)) (INTCONST I8 #x07)) (INTCONST I8 6)) (SUBREG I16 (REG I32 (HOLE 2 R32)) 0) (SUBREG I16 (REG I128 (HOLE 1 XMM)) 6))) (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 7) (IFTHENELSE I16 (TSTEQ I1 (BAND I8 (INTCONST I8 (HOLE 3)) (INTCONST I8 #x07)) (INTCONST I8 7)) (SUBREG I16 (REG I32 (HOLE 2 R32)) 0) (SUBREG I16 (REG I128 (HOLE 1 XMM)) 7))))) ;PINSRW xmm,m16,imm8 (DEFINST ("PINSRW ?1x,WORD PTR ??2s,?3c" "nil" "PINSRW ?1x,WORD PTR ??2s,?3c") (PARALLEL (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 0) (IFTHENELSE I16 (TSTEQ I1 (BAND I8 (INTCONST I8 (HOLE 3)) (INTCONST I8 #x07)) (INTCONST I8 0)) (MEM I16 (HOLE 2)) (SUBREG I16 (REG I128 (HOLE 1 XMM)) 0))) (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 1) (IFTHENELSE I16 (TSTEQ I1 (BAND I8 (INTCONST I8 (HOLE 3)) (INTCONST I8 #x07)) (INTCONST I8 1)) (MEM I16 (HOLE 2)) (SUBREG I16 (REG I128 (HOLE 1 XMM)) 1))) (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 2) (IFTHENELSE I16 (TSTEQ I1 (BAND I8 (INTCONST I8 (HOLE 3)) (INTCONST I8 #x07)) (INTCONST I8 2)) (MEM I16 (HOLE 2)) (SUBREG I16 (REG I128 (HOLE 1 XMM)) 2))) (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 3) (IFTHENELSE I16 (TSTEQ I1 (BAND I8 (INTCONST I8 (HOLE 3)) (INTCONST I8 #x07)) (INTCONST I8 3)) (MEM I16 (HOLE 2)) (SUBREG I16 (REG I128 (HOLE 1 XMM)) 3))) (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 4) (IFTHENELSE I16 (TSTEQ I1 (BAND I8 (INTCONST I8 (HOLE 3)) (INTCONST I8 #x07)) (INTCONST I8 4)) (MEM I16 (HOLE 2)) (SUBREG I16 (REG I128 (HOLE 1 XMM)) 4))) (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 5) (IFTHENELSE I16 (TSTEQ I1 (BAND I8 (INTCONST I8 (HOLE 3)) (INTCONST I8 #x07)) (INTCONST I8 5)) (MEM I16 (HOLE 2)) (SUBREG I16 (REG I128 (HOLE 1 XMM)) 5))) (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 6) (IFTHENELSE I16 (TSTEQ I1 (BAND I8 (INTCONST I8 (HOLE 3)) (INTCONST I8 #x07)) (INTCONST I8 6)) (MEM I16 (HOLE 2)) (SUBREG I16 (REG I128 (HOLE 1 XMM)) 6))) (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 7) (IFTHENELSE I16 (TSTEQ I1 (BAND I8 (INTCONST I8 (HOLE 3)) (INTCONST I8 #x07)) (INTCONST I8 7)) (MEM I16 (HOLE 2)) (SUBREG I16 (REG I128 (HOLE 1 XMM)) 7))))) ;符号付きワード整数を比較して最大値を求める ;PMAXSW mm,mm (DEFINST ("PMAXSW ?1m,?2m" "PMAXSW %?2m,%?1m" "PMAXSW ?1m,?2m") (PARALLEL (SET (SUBREG I16 (REG I64 (HOLE 1 MM)) 0) (IFTHENELSE I16 (TSTGTS I1 (SUBREG I16 (REG I64 (HOLE 1 MM)) 0) (SUBREG I16 (REG I64 (HOLE 2 MM)) 0)) (SUBREG I16 (REG I64 (HOLE 1 MM)) 0) (SUBREG I16 (REG I64 (HOLE 2 MM)) 0))) (SET (SUBREG I16 (REG I64 (HOLE 1 MM)) 1) (IFTHENELSE I16 (TSTGTS I1 (SUBREG I16 (REG I64 (HOLE 1 MM)) 1) (SUBREG I16 (REG I64 (HOLE 2 MM)) 1)) (SUBREG I16 (REG I64 (HOLE 1 MM)) 1) (SUBREG I16 (REG I64 (HOLE 2 MM)) 1))) (SET (SUBREG I16 (REG I64 (HOLE 1 MM)) 2) (IFTHENELSE I16 (TSTGTS I1 (SUBREG I16 (REG I64 (HOLE 1 MM)) 2) (SUBREG I16 (REG I64 (HOLE 2 MM)) 2)) (SUBREG I16 (REG I64 (HOLE 1 MM)) 2) (SUBREG I16 (REG I64 (HOLE 2 MM)) 2))) (SET (SUBREG I16 (REG I64 (HOLE 1 MM)) 3) (IFTHENELSE I16 (TSTGTS I1 (SUBREG I16 (REG I64 (HOLE 1 MM)) 3) (SUBREG I16 (REG I64 (HOLE 2 MM)) 3)) (SUBREG I16 (REG I64 (HOLE 1 MM)) 3) (SUBREG I16 (REG I64 (HOLE 2 MM)) 3))))) ;PMAXSW mm,m64 (DEFINST ("PMAXSW ?1m,QWORD PTR ??2s" "PMAXSW ??2s,%?1m" "PMAXSW ?1m,QWORD PTR ??2s") (PARALLEL (SET (SUBREG I16 (REG I64 (HOLE 1 MM)) 0) (IFTHENELSE I16 (TSTGTS I1 (SUBREG I16 (REG I64 (HOLE 1 MM)) 0) (SUBREG I16 (MEM I64 (HOLE 2)) 0)) (SUBREG I16 (REG I64 (HOLE 1 MM)) 0) (SUBREG I16 (MEM I64 (HOLE 2)) 0))) (SET (SUBREG I16 (REG I64 (HOLE 1 MM)) 1) (IFTHENELSE I16 (TSTGTS I1 (SUBREG I16 (REG I64 (HOLE 1 MM)) 1) (SUBREG I16 (MEM I64 (HOLE 2)) 1)) (SUBREG I16 (REG I64 (HOLE 1 MM)) 1) (SUBREG I16 (MEM I64 (HOLE 2)) 1))) (SET (SUBREG I16 (REG I64 (HOLE 1 MM)) 2) (IFTHENELSE I16 (TSTGTS I1 (SUBREG I16 (REG I64 (HOLE 1 MM)) 2) (SUBREG I16 (MEM I64 (HOLE 2)) 2)) (SUBREG I16 (REG I64 (HOLE 1 MM)) 2) (SUBREG I16 (MEM I64 (HOLE 2)) 2))) (SET (SUBREG I16 (REG I64 (HOLE 1 MM)) 3) (IFTHENELSE I16 (TSTGTS I1 (SUBREG I16 (REG I64 (HOLE 1 MM)) 3) (SUBREG I16 (MEM I64 (HOLE 2)) 3)) (SUBREG I16 (REG I64 (HOLE 1 MM)) 3) (SUBREG I16 (MEM I64 (HOLE 2)) 3))))) ;PMAXSW xmm,xmm (DEFINST ("PMAXSW ?1x,?2x" "nil" "nil") (PARALLEL (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 0) (IFTHENELSE I16 (TSTGTS I1 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 0) (SUBREG I16 (REG I128 (HOLE 2 XMM)) 0)) (SUBREG I16 (REG I128 (HOLE 1 XMM)) 0) (SUBREG I16 (REG I128 (HOLE 2 XMM)) 0))) (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 1) (IFTHENELSE I16 (TSTGTS I1 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 1) (SUBREG I16 (REG I128 (HOLE 2 XMM)) 1)) (SUBREG I16 (REG I128 (HOLE 1 XMM)) 1) (SUBREG I16 (REG I128 (HOLE 2 XMM)) 1))) (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 2) (IFTHENELSE I16 (TSTGTS I1 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 2) (SUBREG I16 (REG I128 (HOLE 2 XMM)) 2)) (SUBREG I16 (REG I128 (HOLE 1 XMM)) 2) (SUBREG I16 (REG I128 (HOLE 2 XMM)) 2))) (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 3) (IFTHENELSE I16 (TSTGTS I1 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 3) (SUBREG I16 (REG I128 (HOLE 2 XMM)) 3)) (SUBREG I16 (REG I128 (HOLE 1 XMM)) 3) (SUBREG I16 (REG I128 (HOLE 2 XMM)) 3))) (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 4) (IFTHENELSE I16 (TSTGTS I1 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 4) (SUBREG I16 (REG I128 (HOLE 2 XMM)) 4)) (SUBREG I16 (REG I128 (HOLE 1 XMM)) 4) (SUBREG I16 (REG I128 (HOLE 2 XMM)) 4))) (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 5) (IFTHENELSE I16 (TSTGTS I1 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 5) (SUBREG I16 (REG I128 (HOLE 2 XMM)) 5)) (SUBREG I16 (REG I128 (HOLE 1 XMM)) 5) (SUBREG I16 (REG I128 (HOLE 2 XMM)) 5))) (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 6) (IFTHENELSE I16 (TSTGTS I1 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 6) (SUBREG I16 (REG I128 (HOLE 2 XMM)) 6)) (SUBREG I16 (REG I128 (HOLE 1 XMM)) 6) (SUBREG I16 (REG I128 (HOLE 2 XMM)) 6))) (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 7) (IFTHENELSE I16 (TSTGTS I1 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 7) (SUBREG I16 (REG I128 (HOLE 2 XMM)) 7)) (SUBREG I16 (REG I128 (HOLE 1 XMM)) 7) (SUBREG I16 (REG I128 (HOLE 2 XMM)) 7))))) ;PMAXSW xmm,m128 (DEFINST ("PMAXSW ?1x,QWORD PTR ??2s" "nil" "nil") (PARALLEL (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 0) (IFTHENELSE I16 (TSTGTS I1 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 0) (SUBREG I16 (MEM I128 (HOLE 2)) 0)) (SUBREG I16 (REG I128 (HOLE 1 XMM)) 0) (SUBREG I16 (MEM I128 (HOLE 2)) 0))) (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 1) (IFTHENELSE I16 (TSTGTS I1 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 1) (SUBREG I16 (MEM I128 (HOLE 2)) 1)) (SUBREG I16 (REG I128 (HOLE 1 XMM)) 1) (SUBREG I16 (MEM I128 (HOLE 2)) 1))) (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 2) (IFTHENELSE I16 (TSTGTS I1 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 2) (SUBREG I16 (MEM I128 (HOLE 2)) 2)) (SUBREG I16 (REG I128 (HOLE 1 XMM)) 2) (SUBREG I16 (MEM I128 (HOLE 2)) 2))) (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 3) (IFTHENELSE I16 (TSTGTS I1 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 3) (SUBREG I16 (MEM I128 (HOLE 2)) 3)) (SUBREG I16 (REG I128 (HOLE 1 XMM)) 3) (SUBREG I16 (MEM I128 (HOLE 2)) 3))) (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 4) (IFTHENELSE I16 (TSTGTS I1 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 4) (SUBREG I16 (MEM I128 (HOLE 2)) 4)) (SUBREG I16 (REG I128 (HOLE 1 XMM)) 4) (SUBREG I16 (MEM I128 (HOLE 2)) 4))) (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 5) (IFTHENELSE I16 (TSTGTS I1 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 5) (SUBREG I16 (MEM I128 (HOLE 2)) 5)) (SUBREG I16 (REG I128 (HOLE 1 XMM)) 5) (SUBREG I16 (MEM I128 (HOLE 2)) 5))) (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 6) (IFTHENELSE I16 (TSTGTS I1 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 6) (SUBREG I16 (MEM I128 (HOLE 2)) 6)) (SUBREG I16 (REG I128 (HOLE 1 XMM)) 6) (SUBREG I16 (MEM I128 (HOLE 2)) 6))) (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 7) (IFTHENELSE I16 (TSTGTS I1 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 7) (SUBREG I16 (MEM I128 (HOLE 2)) 7)) (SUBREG I16 (REG I128 (HOLE 1 XMM)) 7) (SUBREG I16 (MEM I128 (HOLE 2)) 7))))) ;符号なしバイト整数を比較して最大値を求める ;PMAXUB mm,mm (DEFINST ("PMAXUB ?1m,?2m" "PMAXUB %?2m,%?1m" "PMAXUB ?1m,?2m") (PARALLEL (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 0) (IFTHENELSE I8 (TSTGTU I1 (SUBREG I8 (REG I64 (HOLE 1 MM)) 0) (SUBREG I8 (REG I64 (HOLE 2 MM)) 0)) (SUBREG I8 (REG I64 (HOLE 1 MM)) 0) (SUBREG I8 (REG I64 (HOLE 2 MM)) 0))) (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 1) (IFTHENELSE I8 (TSTGTU I1 (SUBREG I8 (REG I64 (HOLE 1 MM)) 1) (SUBREG I8 (REG I64 (HOLE 2 MM)) 1)) (SUBREG I8 (REG I64 (HOLE 1 MM)) 1) (SUBREG I8 (REG I64 (HOLE 2 MM)) 1))) (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 2) (IFTHENELSE I8 (TSTGTU I1 (SUBREG I8 (REG I64 (HOLE 1 MM)) 2) (SUBREG I8 (REG I64 (HOLE 2 MM)) 2)) (SUBREG I8 (REG I64 (HOLE 1 MM)) 2) (SUBREG I8 (REG I64 (HOLE 2 MM)) 2))) (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 3) (IFTHENELSE I8 (TSTGTU I1 (SUBREG I8 (REG I64 (HOLE 1 MM)) 3) (SUBREG I8 (REG I64 (HOLE 2 MM)) 3)) (SUBREG I8 (REG I64 (HOLE 1 MM)) 3) (SUBREG I8 (REG I64 (HOLE 2 MM)) 3))) (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 4) (IFTHENELSE I8 (TSTGTU I1 (SUBREG I8 (REG I64 (HOLE 1 MM)) 4) (SUBREG I8 (REG I64 (HOLE 2 MM)) 4)) (SUBREG I8 (REG I64 (HOLE 1 MM)) 4) (SUBREG I8 (REG I64 (HOLE 2 MM)) 4))) (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 5) (IFTHENELSE I8 (TSTGTU I1 (SUBREG I8 (REG I64 (HOLE 1 MM)) 5) (SUBREG I8 (REG I64 (HOLE 2 MM)) 5)) (SUBREG I8 (REG I64 (HOLE 1 MM)) 5) (SUBREG I8 (REG I64 (HOLE 2 MM)) 5))) (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 6) (IFTHENELSE I8 (TSTGTU I1 (SUBREG I8 (REG I64 (HOLE 1 MM)) 6) (SUBREG I8 (REG I64 (HOLE 2 MM)) 6)) (SUBREG I8 (REG I64 (HOLE 1 MM)) 6) (SUBREG I8 (REG I64 (HOLE 2 MM)) 6))) (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 7) (IFTHENELSE I8 (TSTGTU I1 (SUBREG I8 (REG I64 (HOLE 1 MM)) 7) (SUBREG I8 (REG I64 (HOLE 2 MM)) 7)) (SUBREG I8 (REG I64 (HOLE 1 MM)) 7) (SUBREG I8 (REG I64 (HOLE 2 MM)) 7))))) ;PMAXUB mm,m64 (DEFINST ("PMAXUB ?1m,QWORD PTR ??2s" "PMAXUB ??2s,%?1m" "PMAXUB ?1m,QWORD PTR ??2s") (PARALLEL (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 0) (IFTHENELSE I8 (TSTGTU I1 (SUBREG I8 (REG I64 (HOLE 1 MM)) 0) (SUBREG I8 (MEM I64 (HOLE 2)) 0)) (SUBREG I8 (REG I64 (HOLE 1 MM)) 0) (SUBREG I8 (MEM I64 (HOLE 2)) 0))) (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 1) (IFTHENELSE I8 (TSTGTU I1 (SUBREG I8 (REG I64 (HOLE 1 MM)) 1) (SUBREG I8 (MEM I64 (HOLE 2)) 1)) (SUBREG I8 (REG I64 (HOLE 1 MM)) 1) (SUBREG I8 (MEM I64 (HOLE 2)) 1))) (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 2) (IFTHENELSE I8 (TSTGTU I1 (SUBREG I8 (REG I64 (HOLE 1 MM)) 2) (SUBREG I8 (MEM I64 (HOLE 2)) 2)) (SUBREG I8 (REG I64 (HOLE 1 MM)) 2) (SUBREG I8 (MEM I64 (HOLE 2)) 2))) (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 3) (IFTHENELSE I8 (TSTGTU I1 (SUBREG I8 (REG I64 (HOLE 1 MM)) 3) (SUBREG I8 (MEM I64 (HOLE 2)) 3)) (SUBREG I8 (REG I64 (HOLE 1 MM)) 3) (SUBREG I8 (MEM I64 (HOLE 2)) 3))) (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 4) (IFTHENELSE I8 (TSTGTU I1 (SUBREG I8 (REG I64 (HOLE 1 MM)) 4) (SUBREG I8 (MEM I64 (HOLE 2)) 4)) (SUBREG I8 (REG I64 (HOLE 1 MM)) 4) (SUBREG I8 (MEM I64 (HOLE 2)) 4))) (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 5) (IFTHENELSE I8 (TSTGTU I1 (SUBREG I8 (REG I64 (HOLE 1 MM)) 5) (SUBREG I8 (MEM I64 (HOLE 2)) 5)) (SUBREG I8 (REG I64 (HOLE 1 MM)) 5) (SUBREG I8 (MEM I64 (HOLE 2)) 5))) (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 6) (IFTHENELSE I8 (TSTGTU I1 (SUBREG I8 (REG I64 (HOLE 1 MM)) 6) (SUBREG I8 (MEM I64 (HOLE 2)) 6)) (SUBREG I8 (REG I64 (HOLE 1 MM)) 6) (SUBREG I8 (MEM I64 (HOLE 2)) 6))) (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 7) (IFTHENELSE I8 (TSTGTU I1 (SUBREG I8 (REG I64 (HOLE 1 MM)) 7) (SUBREG I8 (MEM I64 (HOLE 2)) 7)) (SUBREG I8 (REG I64 (HOLE 1 MM)) 7) (SUBREG I8 (MEM I64 (HOLE 2)) 7))))) ;PMAXUB xmm,xmm (DEFINST ("PMAXUB ?1x,?2x" "nil" "nil") (PARALLEL (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 0) (IFTHENELSE I8 (TSTGTU I1 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 0) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 0)) (SUBREG I8 (REG I128 (HOLE 1 XMM)) 0) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 0))) (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 1) (IFTHENELSE I8 (TSTGTU I1 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 1) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 1)) (SUBREG I8 (REG I128 (HOLE 1 XMM)) 1) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 1))) (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 2) (IFTHENELSE I8 (TSTGTU I1 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 2) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 2)) (SUBREG I8 (REG I128 (HOLE 1 XMM)) 2) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 2))) (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 3) (IFTHENELSE I8 (TSTGTU I1 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 3) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 3)) (SUBREG I8 (REG I128 (HOLE 1 XMM)) 3) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 3))) (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 4) (IFTHENELSE I8 (TSTGTU I1 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 4) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 4)) (SUBREG I8 (REG I128 (HOLE 1 XMM)) 4) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 4))) (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 5) (IFTHENELSE I8 (TSTGTU I1 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 5) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 5)) (SUBREG I8 (REG I128 (HOLE 1 XMM)) 5) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 5))) (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 6) (IFTHENELSE I8 (TSTGTU I1 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 6) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 6)) (SUBREG I8 (REG I128 (HOLE 1 XMM)) 6) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 6))) (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 7) (IFTHENELSE I8 (TSTGTU I1 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 7) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 7)) (SUBREG I8 (REG I128 (HOLE 1 XMM)) 7) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 7))) (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 8) (IFTHENELSE I8 (TSTGTU I1 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 8) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 8)) (SUBREG I8 (REG I128 (HOLE 1 XMM)) 8) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 8))) (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 9) (IFTHENELSE I8 (TSTGTU I1 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 9) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 9)) (SUBREG I8 (REG I128 (HOLE 1 XMM)) 9) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 9))) (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 10) (IFTHENELSE I8 (TSTGTU I1 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 10) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 10)) (SUBREG I8 (REG I128 (HOLE 1 XMM)) 10) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 10))) (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 11) (IFTHENELSE I8 (TSTGTU I1 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 11) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 11)) (SUBREG I8 (REG I128 (HOLE 1 XMM)) 11) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 11))) (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 12) (IFTHENELSE I8 (TSTGTU I1 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 12) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 12)) (SUBREG I8 (REG I128 (HOLE 1 XMM)) 12) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 12))) (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 13) (IFTHENELSE I8 (TSTGTU I1 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 13) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 13)) (SUBREG I8 (REG I128 (HOLE 1 XMM)) 13) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 13))) (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 14) (IFTHENELSE I8 (TSTGTU I1 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 14) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 14)) (SUBREG I8 (REG I128 (HOLE 1 XMM)) 14) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 14))) (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 15) (IFTHENELSE I8 (TSTGTU I1 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 15) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 15)) (SUBREG I8 (REG I128 (HOLE 1 XMM)) 15) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 15))))) ;PMAXUB xmm,m128 (DEFINST ("PMAXUB ?1x,QWORD PTR ??2s" "nil" "nil") (PARALLEL (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 0) (IFTHENELSE I8 (TSTGTU I1 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 0) (SUBREG I8 (MEM I128 (HOLE 2)) 0)) (SUBREG I8 (REG I128 (HOLE 1 XMM)) 0) (SUBREG I8 (MEM I128 (HOLE 2)) 0))) (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 1) (IFTHENELSE I8 (TSTGTU I1 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 1) (SUBREG I8 (MEM I128 (HOLE 2)) 1)) (SUBREG I8 (REG I128 (HOLE 1 XMM)) 1) (SUBREG I8 (MEM I128 (HOLE 2)) 1))) (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 2) (IFTHENELSE I8 (TSTGTU I1 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 2) (SUBREG I8 (MEM I128 (HOLE 2)) 2)) (SUBREG I8 (REG I128 (HOLE 1 XMM)) 2) (SUBREG I8 (MEM I128 (HOLE 2)) 2))) (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 3) (IFTHENELSE I8 (TSTGTU I1 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 3) (SUBREG I8 (MEM I128 (HOLE 2)) 3)) (SUBREG I8 (REG I128 (HOLE 1 XMM)) 3) (SUBREG I8 (MEM I128 (HOLE 2)) 3))) (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 4) (IFTHENELSE I8 (TSTGTU I1 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 4) (SUBREG I8 (MEM I128 (HOLE 2)) 4)) (SUBREG I8 (REG I128 (HOLE 1 XMM)) 4) (SUBREG I8 (MEM I128 (HOLE 2)) 4))) (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 5) (IFTHENELSE I8 (TSTGTU I1 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 5) (SUBREG I8 (MEM I128 (HOLE 2)) 5)) (SUBREG I8 (REG I128 (HOLE 1 XMM)) 5) (SUBREG I8 (MEM I128 (HOLE 2)) 5))) (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 6) (IFTHENELSE I8 (TSTGTU I1 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 6) (SUBREG I8 (MEM I128 (HOLE 2)) 6)) (SUBREG I8 (REG I128 (HOLE 1 XMM)) 6) (SUBREG I8 (MEM I128 (HOLE 2)) 6))) (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 7) (IFTHENELSE I8 (TSTGTU I1 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 7) (SUBREG I8 (MEM I128 (HOLE 2)) 7)) (SUBREG I8 (REG I128 (HOLE 1 XMM)) 7) (SUBREG I8 (MEM I128 (HOLE 2)) 7))) (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 8) (IFTHENELSE I8 (TSTGTU I1 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 8) (SUBREG I8 (MEM I128 (HOLE 2)) 8)) (SUBREG I8 (REG I128 (HOLE 1 XMM)) 8) (SUBREG I8 (MEM I128 (HOLE 2)) 8))) (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 9) (IFTHENELSE I8 (TSTGTU I1 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 9) (SUBREG I8 (MEM I128 (HOLE 2)) 9)) (SUBREG I8 (REG I128 (HOLE 1 XMM)) 9) (SUBREG I8 (MEM I128 (HOLE 2)) 9))) (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 10) (IFTHENELSE I8 (TSTGTU I1 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 10) (SUBREG I8 (MEM I128 (HOLE 2)) 10)) (SUBREG I8 (REG I128 (HOLE 1 XMM)) 10) (SUBREG I8 (MEM I128 (HOLE 2)) 10))) (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 11) (IFTHENELSE I8 (TSTGTU I1 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 11) (SUBREG I8 (MEM I128 (HOLE 2)) 11)) (SUBREG I8 (REG I128 (HOLE 1 XMM)) 11) (SUBREG I8 (MEM I128 (HOLE 2)) 11))) (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 12) (IFTHENELSE I8 (TSTGTU I1 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 12) (SUBREG I8 (MEM I128 (HOLE 2)) 12)) (SUBREG I8 (REG I128 (HOLE 1 XMM)) 12) (SUBREG I8 (MEM I128 (HOLE 2)) 12))) (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 13) (IFTHENELSE I8 (TSTGTU I1 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 13) (SUBREG I8 (MEM I128 (HOLE 2)) 13)) (SUBREG I8 (REG I128 (HOLE 1 XMM)) 13) (SUBREG I8 (MEM I128 (HOLE 2)) 13))) (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 14) (IFTHENELSE I8 (TSTGTU I1 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 14) (SUBREG I8 (MEM I128 (HOLE 2)) 14)) (SUBREG I8 (REG I128 (HOLE 1 XMM)) 14) (SUBREG I8 (MEM I128 (HOLE 2)) 14))) (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 15) (IFTHENELSE I8 (TSTGTU I1 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 15) (SUBREG I8 (MEM I128 (HOLE 2)) 15)) (SUBREG I8 (REG I128 (HOLE 1 XMM)) 15) (SUBREG I8 (MEM I128 (HOLE 2)) 15))))) ;符号付きワード整数を比較して最小値を求める ;PMINSW mm,mm (DEFINST ("PMINSW ?1m,?2m" "PMINSW %?2m,%?1m" "PMINSW ?1m,?2m") (PARALLEL (SET (SUBREG I16 (REG I64 (HOLE 1 MM)) 0) (IFTHENELSE I16 (TSTLTS I1 (SUBREG I16 (REG I64 (HOLE 1 MM)) 0) (SUBREG I16 (REG I64 (HOLE 2 MM)) 0)) (SUBREG I16 (REG I64 (HOLE 1 MM)) 0) (SUBREG I16 (REG I64 (HOLE 2 MM)) 0))) (SET (SUBREG I16 (REG I64 (HOLE 1 MM)) 1) (IFTHENELSE I16 (TSTLTS I1 (SUBREG I16 (REG I64 (HOLE 1 MM)) 1) (SUBREG I16 (REG I64 (HOLE 2 MM)) 1)) (SUBREG I16 (REG I64 (HOLE 1 MM)) 1) (SUBREG I16 (REG I64 (HOLE 2 MM)) 1))) (SET (SUBREG I16 (REG I64 (HOLE 1 MM)) 2) (IFTHENELSE I16 (TSTLTS I1 (SUBREG I16 (REG I64 (HOLE 1 MM)) 2) (SUBREG I16 (REG I64 (HOLE 2 MM)) 2)) (SUBREG I16 (REG I64 (HOLE 1 MM)) 2) (SUBREG I16 (REG I64 (HOLE 2 MM)) 2))) (SET (SUBREG I16 (REG I64 (HOLE 1 MM)) 3) (IFTHENELSE I16 (TSTLTS I1 (SUBREG I16 (REG I64 (HOLE 1 MM)) 3) (SUBREG I16 (REG I64 (HOLE 2 MM)) 3)) (SUBREG I16 (REG I64 (HOLE 1 MM)) 3) (SUBREG I16 (REG I64 (HOLE 2 MM)) 3))))) ;PMINSW mm,m64 (DEFINST ("PMINSW ?1m,QWORD PTR ??2s" "PMINSW ??2s,%?1m" "PMINSW ?1m,QWORD PTR ??2s") (PARALLEL (SET (SUBREG I16 (REG I64 (HOLE 1 MM)) 0) (IFTHENELSE I16 (TSTLTS I1 (SUBREG I16 (REG I64 (HOLE 1 MM)) 0) (SUBREG I16 (MEM I64 (HOLE 2)) 0)) (SUBREG I16 (REG I64 (HOLE 1 MM)) 0) (SUBREG I16 (MEM I64 (HOLE 2)) 0))) (SET (SUBREG I16 (REG I64 (HOLE 1 MM)) 1) (IFTHENELSE I16 (TSTLTS I1 (SUBREG I16 (REG I64 (HOLE 1 MM)) 1) (SUBREG I16 (MEM I64 (HOLE 2)) 1)) (SUBREG I16 (REG I64 (HOLE 1 MM)) 1) (SUBREG I16 (MEM I64 (HOLE 2)) 1))) (SET (SUBREG I16 (REG I64 (HOLE 1 MM)) 2) (IFTHENELSE I16 (TSTLTS I1 (SUBREG I16 (REG I64 (HOLE 1 MM)) 2) (SUBREG I16 (MEM I64 (HOLE 2)) 2)) (SUBREG I16 (REG I64 (HOLE 1 MM)) 2) (SUBREG I16 (MEM I64 (HOLE 2)) 2))) (SET (SUBREG I16 (REG I64 (HOLE 1 MM)) 3) (IFTHENELSE I16 (TSTLTS I1 (SUBREG I16 (REG I64 (HOLE 1 MM)) 3) (SUBREG I16 (MEM I64 (HOLE 2)) 3)) (SUBREG I16 (REG I64 (HOLE 1 MM)) 3) (SUBREG I16 (MEM I64 (HOLE 2)) 3))))) ;PMINSW xmm,xmm (DEFINST ("PMINSW ?1x,?2x" "nil" "nil") (PARALLEL (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 0) (IFTHENELSE I16 (TSTLTS I1 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 0) (SUBREG I16 (REG I128 (HOLE 2 XMM)) 0)) (SUBREG I16 (REG I128 (HOLE 1 XMM)) 0) (SUBREG I16 (REG I128 (HOLE 2 XMM)) 0))) (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 1) (IFTHENELSE I16 (TSTLTS I1 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 1) (SUBREG I16 (REG I128 (HOLE 2 XMM)) 1)) (SUBREG I16 (REG I128 (HOLE 1 XMM)) 1) (SUBREG I16 (REG I128 (HOLE 2 XMM)) 1))) (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 2) (IFTHENELSE I16 (TSTLTS I1 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 2) (SUBREG I16 (REG I128 (HOLE 2 XMM)) 2)) (SUBREG I16 (REG I128 (HOLE 1 XMM)) 2) (SUBREG I16 (REG I128 (HOLE 2 XMM)) 2))) (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 3) (IFTHENELSE I16 (TSTLTS I1 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 3) (SUBREG I16 (REG I128 (HOLE 2 XMM)) 3)) (SUBREG I16 (REG I128 (HOLE 1 XMM)) 3) (SUBREG I16 (REG I128 (HOLE 2 XMM)) 3))) (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 4) (IFTHENELSE I16 (TSTLTS I1 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 4) (SUBREG I16 (REG I128 (HOLE 2 XMM)) 4)) (SUBREG I16 (REG I128 (HOLE 1 XMM)) 4) (SUBREG I16 (REG I128 (HOLE 2 XMM)) 4))) (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 5) (IFTHENELSE I16 (TSTLTS I1 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 5) (SUBREG I16 (REG I128 (HOLE 2 XMM)) 5)) (SUBREG I16 (REG I128 (HOLE 1 XMM)) 5) (SUBREG I16 (REG I128 (HOLE 2 XMM)) 5))) (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 6) (IFTHENELSE I16 (TSTLTS I1 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 6) (SUBREG I16 (REG I128 (HOLE 2 XMM)) 6)) (SUBREG I16 (REG I128 (HOLE 1 XMM)) 6) (SUBREG I16 (REG I128 (HOLE 2 XMM)) 6))) (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 7) (IFTHENELSE I16 (TSTLTS I1 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 7) (SUBREG I16 (REG I128 (HOLE 2 XMM)) 7)) (SUBREG I16 (REG I128 (HOLE 1 XMM)) 7) (SUBREG I16 (REG I128 (HOLE 2 XMM)) 7))))) ;PMINSW xmm,m128 (DEFINST ("PMINSW ?1x,QWORD PTR ??2s" "nil" "nil") (PARALLEL (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 0) (IFTHENELSE I16 (TSTLTS I1 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 0) (SUBREG I16 (MEM I128 (HOLE 2)) 0)) (SUBREG I16 (REG I128 (HOLE 1 XMM)) 0) (SUBREG I16 (MEM I128 (HOLE 2)) 0))) (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 1) (IFTHENELSE I16 (TSTLTS I1 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 1) (SUBREG I16 (MEM I128 (HOLE 2)) 1)) (SUBREG I16 (REG I128 (HOLE 1 XMM)) 1) (SUBREG I16 (MEM I128 (HOLE 2)) 1))) (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 2) (IFTHENELSE I16 (TSTLTS I1 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 2) (SUBREG I16 (MEM I128 (HOLE 2)) 2)) (SUBREG I16 (REG I128 (HOLE 1 XMM)) 2) (SUBREG I16 (MEM I128 (HOLE 2)) 2))) (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 3) (IFTHENELSE I16 (TSTLTS I1 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 3) (SUBREG I16 (MEM I128 (HOLE 2)) 3)) (SUBREG I16 (REG I128 (HOLE 1 XMM)) 3) (SUBREG I16 (MEM I128 (HOLE 2)) 3))) (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 4) (IFTHENELSE I16 (TSTLTS I1 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 4) (SUBREG I16 (MEM I128 (HOLE 2)) 4)) (SUBREG I16 (REG I128 (HOLE 1 XMM)) 4) (SUBREG I16 (MEM I128 (HOLE 2)) 4))) (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 5) (IFTHENELSE I16 (TSTLTS I1 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 5) (SUBREG I16 (MEM I128 (HOLE 2)) 5)) (SUBREG I16 (REG I128 (HOLE 1 XMM)) 5) (SUBREG I16 (MEM I128 (HOLE 2)) 5))) (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 6) (IFTHENELSE I16 (TSTLTS I1 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 6) (SUBREG I16 (MEM I128 (HOLE 2)) 6)) (SUBREG I16 (REG I128 (HOLE 1 XMM)) 6) (SUBREG I16 (MEM I128 (HOLE 2)) 6))) (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 7) (IFTHENELSE I16 (TSTLTS I1 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 7) (SUBREG I16 (MEM I128 (HOLE 2)) 7)) (SUBREG I16 (REG I128 (HOLE 1 XMM)) 7) (SUBREG I16 (MEM I128 (HOLE 2)) 7))))) ;符号なしバイト整数を比較して最小値を求める ;PMINUB mm,mm (DEFINST ("PMINUB ?1m,?2m" "PMINUB %?2m,%?1m" "PMINUB ?1m,?2m") (PARALLEL (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 0) (IFTHENELSE I8 (TSTLTU I1 (SUBREG I8 (REG I64 (HOLE 1 MM)) 0) (SUBREG I8 (REG I64 (HOLE 2 MM)) 0)) (SUBREG I8 (REG I64 (HOLE 1 MM)) 0) (SUBREG I8 (REG I64 (HOLE 2 MM)) 0))) (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 1) (IFTHENELSE I8 (TSTLTU I1 (SUBREG I8 (REG I64 (HOLE 1 MM)) 1) (SUBREG I8 (REG I64 (HOLE 2 MM)) 1)) (SUBREG I8 (REG I64 (HOLE 1 MM)) 1) (SUBREG I8 (REG I64 (HOLE 2 MM)) 1))) (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 2) (IFTHENELSE I8 (TSTLTU I1 (SUBREG I8 (REG I64 (HOLE 1 MM)) 2) (SUBREG I8 (REG I64 (HOLE 2 MM)) 2)) (SUBREG I8 (REG I64 (HOLE 1 MM)) 2) (SUBREG I8 (REG I64 (HOLE 2 MM)) 2))) (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 3) (IFTHENELSE I8 (TSTLTU I1 (SUBREG I8 (REG I64 (HOLE 1 MM)) 3) (SUBREG I8 (REG I64 (HOLE 2 MM)) 3)) (SUBREG I8 (REG I64 (HOLE 1 MM)) 3) (SUBREG I8 (REG I64 (HOLE 2 MM)) 3))) (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 4) (IFTHENELSE I8 (TSTLTU I1 (SUBREG I8 (REG I64 (HOLE 1 MM)) 4) (SUBREG I8 (REG I64 (HOLE 2 MM)) 4)) (SUBREG I8 (REG I64 (HOLE 1 MM)) 4) (SUBREG I8 (REG I64 (HOLE 2 MM)) 4))) (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 5) (IFTHENELSE I8 (TSTLTU I1 (SUBREG I8 (REG I64 (HOLE 1 MM)) 5) (SUBREG I8 (REG I64 (HOLE 2 MM)) 5)) (SUBREG I8 (REG I64 (HOLE 1 MM)) 5) (SUBREG I8 (REG I64 (HOLE 2 MM)) 5))) (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 6) (IFTHENELSE I8 (TSTLTU I1 (SUBREG I8 (REG I64 (HOLE 1 MM)) 6) (SUBREG I8 (REG I64 (HOLE 2 MM)) 6)) (SUBREG I8 (REG I64 (HOLE 1 MM)) 6) (SUBREG I8 (REG I64 (HOLE 2 MM)) 6))) (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 7) (IFTHENELSE I8 (TSTLTU I1 (SUBREG I8 (REG I64 (HOLE 1 MM)) 7) (SUBREG I8 (REG I64 (HOLE 2 MM)) 7)) (SUBREG I8 (REG I64 (HOLE 1 MM)) 7) (SUBREG I8 (REG I64 (HOLE 2 MM)) 7))))) ;PMINUB mm,m64 (DEFINST ("PMINUB ?1m,QWORD PTR ??2s" "PMINUB ??2s,%?1m" "PMINUB ?1m,QWORD PTR ??2s") (PARALLEL (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 0) (IFTHENELSE I8 (TSTLTU I1 (SUBREG I8 (REG I64 (HOLE 1 MM)) 0) (SUBREG I8 (MEM I64 (HOLE 2)) 0)) (SUBREG I8 (REG I64 (HOLE 1 MM)) 0) (SUBREG I8 (MEM I64 (HOLE 2)) 0))) (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 1) (IFTHENELSE I8 (TSTLTU I1 (SUBREG I8 (REG I64 (HOLE 1 MM)) 1) (SUBREG I8 (MEM I64 (HOLE 2)) 1)) (SUBREG I8 (REG I64 (HOLE 1 MM)) 1) (SUBREG I8 (MEM I64 (HOLE 2)) 1))) (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 2) (IFTHENELSE I8 (TSTLTU I1 (SUBREG I8 (REG I64 (HOLE 1 MM)) 2) (SUBREG I8 (MEM I64 (HOLE 2)) 2)) (SUBREG I8 (REG I64 (HOLE 1 MM)) 2) (SUBREG I8 (MEM I64 (HOLE 2)) 2))) (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 3) (IFTHENELSE I8 (TSTLTU I1 (SUBREG I8 (REG I64 (HOLE 1 MM)) 3) (SUBREG I8 (MEM I64 (HOLE 2)) 3)) (SUBREG I8 (REG I64 (HOLE 1 MM)) 3) (SUBREG I8 (MEM I64 (HOLE 2)) 3))) (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 4) (IFTHENELSE I8 (TSTLTU I1 (SUBREG I8 (REG I64 (HOLE 1 MM)) 4) (SUBREG I8 (MEM I64 (HOLE 2)) 4)) (SUBREG I8 (REG I64 (HOLE 1 MM)) 4) (SUBREG I8 (MEM I64 (HOLE 2)) 4))) (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 5) (IFTHENELSE I8 (TSTLTU I1 (SUBREG I8 (REG I64 (HOLE 1 MM)) 5) (SUBREG I8 (MEM I64 (HOLE 2)) 5)) (SUBREG I8 (REG I64 (HOLE 1 MM)) 5) (SUBREG I8 (MEM I64 (HOLE 2)) 5))) (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 6) (IFTHENELSE I8 (TSTLTU I1 (SUBREG I8 (REG I64 (HOLE 1 MM)) 6) (SUBREG I8 (MEM I64 (HOLE 2)) 6)) (SUBREG I8 (REG I64 (HOLE 1 MM)) 6) (SUBREG I8 (MEM I64 (HOLE 2)) 6))) (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 7) (IFTHENELSE I8 (TSTLTU I1 (SUBREG I8 (REG I64 (HOLE 1 MM)) 7) (SUBREG I8 (MEM I64 (HOLE 2)) 7)) (SUBREG I8 (REG I64 (HOLE 1 MM)) 7) (SUBREG I8 (MEM I64 (HOLE 2)) 7))))) ;PMINUB xmm,xmm (DEFINST ("PMINUB ?1x,?2x" "nil" "nil") (PARALLEL (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 0) (IFTHENELSE I8 (TSTLTU I1 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 0) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 0)) (SUBREG I8 (REG I128 (HOLE 1 XMM)) 0) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 0))) (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 1) (IFTHENELSE I8 (TSTLTU I1 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 1) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 1)) (SUBREG I8 (REG I128 (HOLE 1 XMM)) 1) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 1))) (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 2) (IFTHENELSE I8 (TSTLTU I1 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 2) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 2)) (SUBREG I8 (REG I128 (HOLE 1 XMM)) 2) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 2))) (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 3) (IFTHENELSE I8 (TSTLTU I1 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 3) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 3)) (SUBREG I8 (REG I128 (HOLE 1 XMM)) 3) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 3))) (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 4) (IFTHENELSE I8 (TSTLTU I1 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 4) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 4)) (SUBREG I8 (REG I128 (HOLE 1 XMM)) 4) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 4))) (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 5) (IFTHENELSE I8 (TSTLTU I1 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 5) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 5)) (SUBREG I8 (REG I128 (HOLE 1 XMM)) 5) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 5))) (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 6) (IFTHENELSE I8 (TSTLTU I1 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 6) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 6)) (SUBREG I8 (REG I128 (HOLE 1 XMM)) 6) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 6))) (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 7) (IFTHENELSE I8 (TSTLTU I1 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 7) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 7)) (SUBREG I8 (REG I128 (HOLE 1 XMM)) 7) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 7))) (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 8) (IFTHENELSE I8 (TSTLTU I1 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 8) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 8)) (SUBREG I8 (REG I128 (HOLE 1 XMM)) 8) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 8))) (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 9) (IFTHENELSE I8 (TSTLTU I1 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 9) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 9)) (SUBREG I8 (REG I128 (HOLE 1 XMM)) 9) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 9))) (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 10) (IFTHENELSE I8 (TSTLTU I1 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 10) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 10)) (SUBREG I8 (REG I128 (HOLE 1 XMM)) 10) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 10))) (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 11) (IFTHENELSE I8 (TSTLTU I1 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 11) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 11)) (SUBREG I8 (REG I128 (HOLE 1 XMM)) 11) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 11))) (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 12) (IFTHENELSE I8 (TSTLTU I1 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 12) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 12)) (SUBREG I8 (REG I128 (HOLE 1 XMM)) 12) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 12))) (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 13) (IFTHENELSE I8 (TSTLTU I1 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 13) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 13)) (SUBREG I8 (REG I128 (HOLE 1 XMM)) 13) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 13))) (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 14) (IFTHENELSE I8 (TSTLTU I1 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 14) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 14)) (SUBREG I8 (REG I128 (HOLE 1 XMM)) 14) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 14))) (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 15) (IFTHENELSE I8 (TSTLTU I1 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 15) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 15)) (SUBREG I8 (REG I128 (HOLE 1 XMM)) 15) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 15))))) ;PMINUB xmm,m128 (DEFINST ("PMINUB ?1x,QWORD PTR ??2s" "nil" "nil") (PARALLEL (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 0) (IFTHENELSE I8 (TSTLTU I1 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 0) (SUBREG I8 (MEM I128 (HOLE 2)) 0)) (SUBREG I8 (REG I128 (HOLE 1 XMM)) 0) (SUBREG I8 (MEM I128 (HOLE 2)) 0))) (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 1) (IFTHENELSE I8 (TSTLTU I1 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 1) (SUBREG I8 (MEM I128 (HOLE 2)) 1)) (SUBREG I8 (REG I128 (HOLE 1 XMM)) 1) (SUBREG I8 (MEM I128 (HOLE 2)) 1))) (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 2) (IFTHENELSE I8 (TSTLTU I1 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 2) (SUBREG I8 (MEM I128 (HOLE 2)) 2)) (SUBREG I8 (REG I128 (HOLE 1 XMM)) 2) (SUBREG I8 (MEM I128 (HOLE 2)) 2))) (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 3) (IFTHENELSE I8 (TSTLTU I1 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 3) (SUBREG I8 (MEM I128 (HOLE 2)) 3)) (SUBREG I8 (REG I128 (HOLE 1 XMM)) 3) (SUBREG I8 (MEM I128 (HOLE 2)) 3))) (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 4) (IFTHENELSE I8 (TSTLTU I1 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 4) (SUBREG I8 (MEM I128 (HOLE 2)) 4)) (SUBREG I8 (REG I128 (HOLE 1 XMM)) 4) (SUBREG I8 (MEM I128 (HOLE 2)) 4))) (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 5) (IFTHENELSE I8 (TSTLTU I1 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 5) (SUBREG I8 (MEM I128 (HOLE 2)) 5)) (SUBREG I8 (REG I128 (HOLE 1 XMM)) 5) (SUBREG I8 (MEM I128 (HOLE 2)) 5))) (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 6) (IFTHENELSE I8 (TSTLTU I1 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 6) (SUBREG I8 (MEM I128 (HOLE 2)) 6)) (SUBREG I8 (REG I128 (HOLE 1 XMM)) 6) (SUBREG I8 (MEM I128 (HOLE 2)) 6))) (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 7) (IFTHENELSE I8 (TSTLTU I1 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 7) (SUBREG I8 (MEM I128 (HOLE 2)) 7)) (SUBREG I8 (REG I128 (HOLE 1 XMM)) 7) (SUBREG I8 (MEM I128 (HOLE 2)) 7))) (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 8) (IFTHENELSE I8 (TSTLTU I1 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 8) (SUBREG I8 (MEM I128 (HOLE 2)) 8)) (SUBREG I8 (REG I128 (HOLE 1 XMM)) 8) (SUBREG I8 (MEM I128 (HOLE 2)) 8))) (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 9) (IFTHENELSE I8 (TSTLTU I1 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 9) (SUBREG I8 (MEM I128 (HOLE 2)) 9)) (SUBREG I8 (REG I128 (HOLE 1 XMM)) 9) (SUBREG I8 (MEM I128 (HOLE 2)) 9))) (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 10) (IFTHENELSE I8 (TSTLTU I1 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 10) (SUBREG I8 (MEM I128 (HOLE 2)) 10)) (SUBREG I8 (REG I128 (HOLE 1 XMM)) 10) (SUBREG I8 (MEM I128 (HOLE 2)) 10))) (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 11) (IFTHENELSE I8 (TSTLTU I1 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 11) (SUBREG I8 (MEM I128 (HOLE 2)) 11)) (SUBREG I8 (REG I128 (HOLE 1 XMM)) 11) (SUBREG I8 (MEM I128 (HOLE 2)) 11))) (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 12) (IFTHENELSE I8 (TSTLTU I1 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 12) (SUBREG I8 (MEM I128 (HOLE 2)) 12)) (SUBREG I8 (REG I128 (HOLE 1 XMM)) 12) (SUBREG I8 (MEM I128 (HOLE 2)) 12))) (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 13) (IFTHENELSE I8 (TSTLTU I1 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 13) (SUBREG I8 (MEM I128 (HOLE 2)) 13)) (SUBREG I8 (REG I128 (HOLE 1 XMM)) 13) (SUBREG I8 (MEM I128 (HOLE 2)) 13))) (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 14) (IFTHENELSE I8 (TSTLTU I1 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 14) (SUBREG I8 (MEM I128 (HOLE 2)) 14)) (SUBREG I8 (REG I128 (HOLE 1 XMM)) 14) (SUBREG I8 (MEM I128 (HOLE 2)) 14))) (SET (SUBREG I8 (REG I128 (HOLE 1 XMM)) 15) (IFTHENELSE I8 (TSTLTU I1 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 15) (SUBREG I8 (MEM I128 (HOLE 2)) 15)) (SUBREG I8 (REG I128 (HOLE 1 XMM)) 15) (SUBREG I8 (MEM I128 (HOLE 2)) 15))))) ;MMX/XMMのバイトマスクを汎用レジスタに入れる ;PMOVMSKB r32,mm (DEFINST ("PMOVMSKB ?1r,?2m" "PMOVMSKB %?2m,%?1r" "PMOVMSKB ?1r,?2m") (SET (REG I32 (HOLE 1 R32)) (BOR I32 (CONVZX I32 (TSTLTS I1 (SUBREG I8 (REG I64 (HOLE 2 MM)) 0) (INTCONST I8 0))) (BOR I32 (LSH I32 (CONVZX I32 (TSTLTS I1 (SUBREG I8 (REG I64 (HOLE 2 MM)) 1) (INTCONST I8 0))) (INTCONST I8 1)) (BOR I32 (LSH I32 (CONVZX I32 (TSTLTS I1 (SUBREG I8 (REG I64 (HOLE 2 MM)) 2) (INTCONST I8 0))) (INTCONST I8 2)) (BOR I32 (LSH I32 (CONVZX I32 (TSTLTS I1 (SUBREG I8 (REG I64 (HOLE 2 MM)) 3) (INTCONST I8 0))) (INTCONST I8 3)) (BOR I32 (LSH I32 (CONVZX I32 (TSTLTS I1 (SUBREG I8 (REG I64 (HOLE 2 MM)) 4) (INTCONST I8 0))) (INTCONST I8 4)) (BOR I32 (LSH I32 (CONVZX I32 (TSTLTS I1 (SUBREG I8 (REG I64 (HOLE 2 MM)) 5) (INTCONST I8 0))) (INTCONST I8 5)) (BOR I32 (LSH I32 (CONVZX I32 (TSTLTS I1 (SUBREG I8 (REG I64 (HOLE 2 MM)) 6) (INTCONST I8 0))) (INTCONST I8 6)) (LSH I32 (CONVZX I32 (TSTLTS I1 (SUBREG I8 (REG I64 (HOLE 2 MM)) 7) (INTCONST I8 0))) (INTCONST I8 7))))))))))) ;PMOVMSKB r32,xmm (DEFINST ("PMOVMSKB ?1r,?2x" "nil" "PMOVMSKB ?1r,?2x") (SET (REG I32 (HOLE 1 R32)) (BOR I32 (CONVZX I32 (TSTLTS I1 (SUBREG I8 (REG I128 (HOLE 2 XMM)) 0) (INTCONST I8 0))) (BOR I32 (LSH I32 (CONVZX I32 (TSTLTS I1 (SUBREG I8 (REG I128 (HOLE 2 XMM)) 1) (INTCONST I8 0))) (INTCONST I8 1)) (BOR I32 (LSH I32 (CONVZX I32 (TSTLTS I1 (SUBREG I8 (REG I128 (HOLE 2 XMM)) 2) (INTCONST I8 0))) (INTCONST I8 2)) (BOR I32 (LSH I32 (CONVZX I32 (TSTLTS I1 (SUBREG I8 (REG I128 (HOLE 2 XMM)) 3) (INTCONST I8 0))) (INTCONST I8 3)) (BOR I32 (LSH I32 (CONVZX I32 (TSTLTS I1 (SUBREG I8 (REG I128 (HOLE 2 XMM)) 4) (INTCONST I8 0))) (INTCONST I8 4)) (BOR I32 (LSH I32 (CONVZX I32 (TSTLTS I1 (SUBREG I8 (REG I128 (HOLE 2 XMM)) 5) (INTCONST I8 0))) (INTCONST I8 5)) (BOR I32 (LSH I32 (CONVZX I32 (TSTLTS I1 (SUBREG I8 (REG I128 (HOLE 2 XMM)) 6) (INTCONST I8 0))) (INTCONST I8 6)) (BOR I32 (LSH I32 (CONVZX I32 (TSTLTS I1 (SUBREG I8 (REG I128 (HOLE 2 XMM)) 7) (INTCONST I8 0))) (INTCONST I8 7)) (BOR I32 (LSH I32 (CONVZX I32 (TSTLTS I1 (SUBREG I8 (REG I128 (HOLE 2 XMM)) 8) (INTCONST I8 0))) (INTCONST I8 8)) (BOR I32 (LSH I32 (CONVZX I32 (TSTLTS I1 (SUBREG I8 (REG I128 (HOLE 2 XMM)) 9) (INTCONST I8 0))) (INTCONST I8 9)) (BOR I32 (LSH I32 (CONVZX I32 (TSTLTS I1 (SUBREG I8 (REG I128 (HOLE 2 XMM)) 10) (INTCONST I8 0))) (INTCONST I8 10)) (BOR I32 (LSH I32 (CONVZX I32 (TSTLTS I1 (SUBREG I8 (REG I128 (HOLE 2 XMM)) 11) (INTCONST I8 0))) (INTCONST I8 11)) (BOR I32 (LSH I32 (CONVZX I32 (TSTLTS I1 (SUBREG I8 (REG I128 (HOLE 2 XMM)) 12) (INTCONST I8 0))) (INTCONST I8 12)) (BOR I32 (LSH I32 (CONVZX I32 (TSTLTS I1 (SUBREG I8 (REG I128 (HOLE 2 XMM)) 13) (INTCONST I8 0))) (INTCONST I8 13)) (BOR I32 (LSH I32 (CONVZX I32 (TSTLTS I1 (SUBREG I8 (REG I128 (HOLE 2 XMM)) 14) (INTCONST I8 0))) (INTCONST I8 14)) (LSH I32 (CONVZX I32 (TSTLTS I1 (SUBREG I8 (REG I128 (HOLE 2 XMM)) 15) (INTCONST I8 0))) (INTCONST I8 15))))))))))))))))))) ;パックド符号なしワード整数を乗算し、結果の上位ワードを格納する ;PMULHUW mm,mm (DEFINST ("PMULHUW ?1m,?2m" "PMULHUW %?2m,%?1m" "PMULHUW ?1m,?2m") (PARALLEL (SET (SUBREG I16 (REG I64 (HOLE 1 MM)) 0) (CONVIT I16 (RSHU I32 (MUL I32 (CONVZX I32 (SUBREG I16 (REG I64 (HOLE 1 MM)) 0)) (CONVZX I32 (SUBREG I16 (REG I64 (HOLE 2 MM)) 0))) (INTCONST I8 16)))) (SET (SUBREG I16 (REG I64 (HOLE 1 MM)) 1) (CONVIT I16 (RSHU I32 (MUL I32 (CONVZX I32 (SUBREG I16 (REG I64 (HOLE 1 MM)) 1)) (CONVZX I32 (SUBREG I16 (REG I64 (HOLE 2 MM)) 1))) (INTCONST I8 16)))) (SET (SUBREG I16 (REG I64 (HOLE 1 MM)) 2) (CONVIT I16 (RSHU I32 (MUL I32 (CONVZX I32 (SUBREG I16 (REG I64 (HOLE 1 MM)) 2)) (CONVZX I32 (SUBREG I16 (REG I64 (HOLE 2 MM)) 2))) (INTCONST I8 16)))) (SET (SUBREG I16 (REG I64 (HOLE 1 MM)) 3) (CONVIT I16 (RSHU I32 (MUL I32 (CONVZX I32 (SUBREG I16 (REG I64 (HOLE 1 MM)) 3)) (CONVZX I32 (SUBREG I16 (REG I64 (HOLE 2 MM)) 3))) (INTCONST I8 16)))))) ;PMULHUW mm,m64 (DEFINST ("PMULHUW ?1m,QWORD PTR ??2s" "PMULHUW ??2s,%?1m" "PMULHUW ?1m,QWORD PTR ??2s") (PARALLEL (SET (SUBREG I16 (REG I64 (HOLE 1 MM)) 0) (CONVIT I16 (RSHU I32 (MUL I32 (CONVZX I32 (SUBREG I16 (REG I64 (HOLE 1 MM)) 0)) (CONVZX I32 (SUBREG I16 (MEM I64 (HOLE 2)) 0))) (INTCONST I8 16)))) (SET (SUBREG I16 (REG I64 (HOLE 1 MM)) 1) (CONVIT I16 (RSHU I32 (MUL I32 (CONVZX I32 (SUBREG I16 (REG I64 (HOLE 1 MM)) 1)) (CONVZX I32 (SUBREG I16 (MEM I64 (HOLE 2)) 1))) (INTCONST I8 16)))) (SET (SUBREG I16 (REG I64 (HOLE 1 MM)) 2) (CONVIT I16 (RSHU I32 (MUL I32 (CONVZX I32 (SUBREG I16 (REG I64 (HOLE 1 MM)) 2)) (CONVZX I32 (SUBREG I16 (MEM I64 (HOLE 2)) 2))) (INTCONST I8 16)))) (SET (SUBREG I16 (REG I64 (HOLE 1 MM)) 3) (CONVIT I16 (RSHU I32 (MUL I32 (CONVZX I32 (SUBREG I16 (REG I64 (HOLE 1 MM)) 3)) (CONVZX I32 (SUBREG I16 (MEM I64 (HOLE 2)) 3))) (INTCONST I8 16)))))) ;PMULHUW xmm,xmm (DEFINST ("PMULHUW ?1x,?2x" "nil" "nil") (PARALLEL (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 0) (CONVIT I16 (RSHU I32 (MUL I32 (CONVZX I32 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 0)) (CONVZX I32 (SUBREG I16 (REG I128 (HOLE 2 XMM)) 0))) (INTCONST I8 16)))) (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 1) (CONVIT I16 (RSHU I32 (MUL I32 (CONVZX I32 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 1)) (CONVZX I32 (SUBREG I16 (REG I128 (HOLE 2 XMM)) 1))) (INTCONST I8 16)))) (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 2) (CONVIT I16 (RSHU I32 (MUL I32 (CONVZX I32 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 2)) (CONVZX I32 (SUBREG I16 (REG I128 (HOLE 2 XMM)) 2))) (INTCONST I8 16)))) (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 3) (CONVIT I16 (RSHU I32 (MUL I32 (CONVZX I32 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 3)) (CONVZX I32 (SUBREG I16 (REG I128 (HOLE 2 XMM)) 3))) (INTCONST I8 16)))) (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 4) (CONVIT I16 (RSHU I32 (MUL I32 (CONVZX I32 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 4)) (CONVZX I32 (SUBREG I16 (REG I128 (HOLE 2 XMM)) 4))) (INTCONST I8 16)))) (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 5) (CONVIT I16 (RSHU I32 (MUL I32 (CONVZX I32 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 5)) (CONVZX I32 (SUBREG I16 (REG I128 (HOLE 2 XMM)) 5))) (INTCONST I8 16)))) (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 6) (CONVIT I16 (RSHU I32 (MUL I32 (CONVZX I32 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 6)) (CONVZX I32 (SUBREG I16 (REG I128 (HOLE 2 XMM)) 6))) (INTCONST I8 16)))) (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 7) (CONVIT I16 (RSHU I32 (MUL I32 (CONVZX I32 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 7)) (CONVZX I32 (SUBREG I16 (REG I128 (HOLE 2 XMM)) 7))) (INTCONST I8 16)))))) ;PMULHUW xmm,m128 (DEFINST ("PMULHUW ?1x,QWORD PTR ??2s" "nil" "nil") (PARALLEL (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 0) (CONVIT I16 (RSHU I32 (MUL I32 (CONVZX I32 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 0)) (CONVZX I32 (SUBREG I16 (MEM I128 (HOLE 2)) 0))) (INTCONST I8 16)))) (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 1) (CONVIT I16 (RSHU I32 (MUL I32 (CONVZX I32 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 1)) (CONVZX I32 (SUBREG I16 (MEM I128 (HOLE 2)) 1))) (INTCONST I8 16)))) (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 2) (CONVIT I16 (RSHU I32 (MUL I32 (CONVZX I32 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 2)) (CONVZX I32 (SUBREG I16 (MEM I128 (HOLE 2)) 2))) (INTCONST I8 16)))) (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 3) (CONVIT I16 (RSHU I32 (MUL I32 (CONVZX I32 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 3)) (CONVZX I32 (SUBREG I16 (MEM I128 (HOLE 2)) 3))) (INTCONST I8 16)))) (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 4) (CONVIT I16 (RSHU I32 (MUL I32 (CONVZX I32 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 4)) (CONVZX I32 (SUBREG I16 (MEM I128 (HOLE 2)) 4))) (INTCONST I8 16)))) (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 5) (CONVIT I16 (RSHU I32 (MUL I32 (CONVZX I32 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 5)) (CONVZX I32 (SUBREG I16 (MEM I128 (HOLE 2)) 5))) (INTCONST I8 16)))) (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 6) (CONVIT I16 (RSHU I32 (MUL I32 (CONVZX I32 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 6)) (CONVZX I32 (SUBREG I16 (MEM I128 (HOLE 2)) 6))) (INTCONST I8 16)))) (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 7) (CONVIT I16 (RSHU I32 (MUL I32 (CONVZX I32 (SUBREG I16 (REG I128 (HOLE 1 XMM)) 7)) (CONVZX I32 (SUBREG I16 (MEM I128 (HOLE 2)) 7))) (INTCONST I8 16)))))) ;符号なしパックド・バイト整数の差の絶対値の合計を計算し、符号なしワードとする ;PSADBW mm,mm (DEFINST ("PSADBW ?1m,?2m" "PSADBW %?2m,%?1m" "PSADBW ?1m,?2m") (PARALLEL (SET (SUBREG I16 (REG I64 (HOLE 1 MM)) 0) (ADD I16 (CONVZX I16 (IFTHENELSE I8 (TSTLTS I1 (SUBREG I8 (REG I64 (HOLE 1 MM)) 7) (SUBREG I8 (REG I64 (HOLE 2 MM)) 7)) (SUB I8 (SUBREG I8 (REG I64 (HOLE 2 MM)) 7) (SUBREG I8 (REG I64 (HOLE 1 MM)) 7)) (SUB I8 (SUBREG I8 (REG I64 (HOLE 1 MM)) 7) (SUBREG I8 (REG I64 (HOLE 2 MM)) 7)))) (ADD I16 (CONVZX I16 (IFTHENELSE I8 (TSTLTS I1 (SUBREG I8 (REG I64 (HOLE 1 MM)) 6) (SUBREG I8 (REG I64 (HOLE 2 MM)) 6)) (SUB I8 (SUBREG I8 (REG I64 (HOLE 2 MM)) 6) (SUBREG I8 (REG I64 (HOLE 1 MM)) 6)) (SUB I8 (SUBREG I8 (REG I64 (HOLE 1 MM)) 6) (SUBREG I8 (REG I64 (HOLE 2 MM)) 6)))) (ADD I16 (CONVZX I16 (IFTHENELSE I8 (TSTLTS I1 (SUBREG I8 (REG I64 (HOLE 1 MM)) 5) (SUBREG I8 (REG I64 (HOLE 2 MM)) 5)) (SUB I8 (SUBREG I8 (REG I64 (HOLE 2 MM)) 5) (SUBREG I8 (REG I64 (HOLE 1 MM)) 5)) (SUB I8 (SUBREG I8 (REG I64 (HOLE 1 MM)) 5) (SUBREG I8 (REG I64 (HOLE 2 MM)) 5)))) (ADD I16 (CONVZX I16 (IFTHENELSE I8 (TSTLTS I1 (SUBREG I8 (REG I64 (HOLE 1 MM)) 4) (SUBREG I8 (REG I64 (HOLE 2 MM)) 4)) (SUB I8 (SUBREG I8 (REG I64 (HOLE 2 MM)) 4) (SUBREG I8 (REG I64 (HOLE 1 MM)) 4)) (SUB I8 (SUBREG I8 (REG I64 (HOLE 1 MM)) 4) (SUBREG I8 (REG I64 (HOLE 2 MM)) 4)))) (ADD I16 (CONVZX I16 (IFTHENELSE I8 (TSTLTS I1 (SUBREG I8 (REG I64 (HOLE 1 MM)) 3) (SUBREG I8 (REG I64 (HOLE 2 MM)) 3)) (SUB I8 (SUBREG I8 (REG I64 (HOLE 2 MM)) 3) (SUBREG I8 (REG I64 (HOLE 1 MM)) 3)) (SUB I8 (SUBREG I8 (REG I64 (HOLE 1 MM)) 3) (SUBREG I8 (REG I64 (HOLE 2 MM)) 3)))) (ADD I16 (CONVZX I16 (IFTHENELSE I8 (TSTLTS I1 (SUBREG I8 (REG I64 (HOLE 1 MM)) 2) (SUBREG I8 (REG I64 (HOLE 2 MM)) 2)) (SUB I8 (SUBREG I8 (REG I64 (HOLE 2 MM)) 2) (SUBREG I8 (REG I64 (HOLE 1 MM)) 2)) (SUB I8 (SUBREG I8 (REG I64 (HOLE 1 MM)) 2) (SUBREG I8 (REG I64 (HOLE 2 MM)) 2)))) (ADD I16 (CONVZX I16 (IFTHENELSE I8 (TSTLTS I1 (SUBREG I8 (REG I64 (HOLE 1 MM)) 1) (SUBREG I8 (REG I64 (HOLE 2 MM)) 1)) (SUB I8 (SUBREG I8 (REG I64 (HOLE 2 MM)) 1) (SUBREG I8 (REG I64 (HOLE 1 MM)) 1)) (SUB I8 (SUBREG I8 (REG I64 (HOLE 1 MM)) 1) (SUBREG I8 (REG I64 (HOLE 2 MM)) 1)))) (CONVZX I16 (IFTHENELSE I8 (TSTLTS I1 (SUBREG I8 (REG I64 (HOLE 1 MM)) 0) (SUBREG I8 (REG I64 (HOLE 2 MM)) 0)) (SUB I8 (SUBREG I8 (REG I64 (HOLE 2 MM)) 0) (SUBREG I8 (REG I64 (HOLE 1 MM)) 0)) (SUB I8 (SUBREG I8 (REG I64 (HOLE 1 MM)) 0) (SUBREG I8 (REG I64 (HOLE 2 MM)) 0)))) )))))))) (SET (SUBREG I16 (REG I64 (HOLE 1 MM)) 1) (INTCONST I16 0)) (SET (SUBREG I32 (REG I64 (HOLE 1 MM)) 1) (INTCONST I32 0)))) ;PSADBW mm,m64 (DEFINST ("PSADBW ?1m,QWORD PTR ??2s" "PSADBW ??2s,%?1m" "PSADBW ?1m,QWORD PTR ??2s") (PARALLEL (SET (SUBREG I16 (REG I64 (HOLE 1 MM)) 0) (ADD I16 (CONVZX I16 (IFTHENELSE I8 (TSTLTS I1 (SUBREG I8 (REG I64 (HOLE 1 MM)) 7) (SUBREG I8 (MEM I64 (HOLE 2)) 7)) (SUB I8 (SUBREG I8 (MEM I64 (HOLE 2)) 7) (SUBREG I8 (REG I64 (HOLE 1 MM)) 7)) (SUB I8 (SUBREG I8 (REG I64 (HOLE 1 MM)) 7) (SUBREG I8 (MEM I64 (HOLE 2)) 7)))) (ADD I16 (CONVZX I16 (IFTHENELSE I8 (TSTLTS I1 (SUBREG I8 (REG I64 (HOLE 1 MM)) 6) (SUBREG I8 (MEM I64 (HOLE 2)) 6)) (SUB I8 (SUBREG I8 (MEM I64 (HOLE 2)) 6) (SUBREG I8 (REG I64 (HOLE 1 MM)) 6)) (SUB I8 (SUBREG I8 (REG I64 (HOLE 1 MM)) 6) (SUBREG I8 (MEM I64 (HOLE 2)) 6)))) (ADD I16 (CONVZX I16 (IFTHENELSE I8 (TSTLTS I1 (SUBREG I8 (REG I64 (HOLE 1 MM)) 5) (SUBREG I8 (MEM I64 (HOLE 2)) 5)) (SUB I8 (SUBREG I8 (MEM I64 (HOLE 2)) 5) (SUBREG I8 (REG I64 (HOLE 1 MM)) 5)) (SUB I8 (SUBREG I8 (REG I64 (HOLE 1 MM)) 5) (SUBREG I8 (MEM I64 (HOLE 2)) 5)))) (ADD I16 (CONVZX I16 (IFTHENELSE I8 (TSTLTS I1 (SUBREG I8 (REG I64 (HOLE 1 MM)) 4) (SUBREG I8 (MEM I64 (HOLE 2)) 4)) (SUB I8 (SUBREG I8 (MEM I64 (HOLE 2)) 4) (SUBREG I8 (REG I64 (HOLE 1 MM)) 4)) (SUB I8 (SUBREG I8 (REG I64 (HOLE 1 MM)) 4) (SUBREG I8 (MEM I64 (HOLE 2)) 4)))) (ADD I16 (CONVZX I16 (IFTHENELSE I8 (TSTLTS I1 (SUBREG I8 (REG I64 (HOLE 1 MM)) 3) (SUBREG I8 (MEM I64 (HOLE 2)) 3)) (SUB I8 (SUBREG I8 (MEM I64 (HOLE 2)) 3) (SUBREG I8 (REG I64 (HOLE 1 MM)) 3)) (SUB I8 (SUBREG I8 (REG I64 (HOLE 1 MM)) 3) (SUBREG I8 (MEM I64 (HOLE 2)) 3)))) (ADD I16 (CONVZX I16 (IFTHENELSE I8 (TSTLTS I1 (SUBREG I8 (REG I64 (HOLE 1 MM)) 2) (SUBREG I8 (MEM I64 (HOLE 2)) 2)) (SUB I8 (SUBREG I8 (MEM I64 (HOLE 2)) 2) (SUBREG I8 (REG I64 (HOLE 1 MM)) 2)) (SUB I8 (SUBREG I8 (REG I64 (HOLE 1 MM)) 2) (SUBREG I8 (MEM I64 (HOLE 2)) 2)))) (ADD I16 (CONVZX I16 (IFTHENELSE I8 (TSTLTS I1 (SUBREG I8 (REG I64 (HOLE 1 MM)) 1) (SUBREG I8 (MEM I64 (HOLE 2)) 1)) (SUB I8 (SUBREG I8 (MEM I64 (HOLE 2)) 1) (SUBREG I8 (REG I64 (HOLE 1 MM)) 1)) (SUB I8 (SUBREG I8 (REG I64 (HOLE 1 MM)) 1) (SUBREG I8 (MEM I64 (HOLE 2)) 1)))) (CONVZX I16 (IFTHENELSE I8 (TSTLTS I1 (SUBREG I8 (REG I64 (HOLE 1 MM)) 0) (SUBREG I8 (MEM I64 (HOLE 2)) 0)) (SUB I8 (SUBREG I8 (MEM I64 (HOLE 2)) 0) (SUBREG I8 (REG I64 (HOLE 1 MM)) 0)) (SUB I8 (SUBREG I8 (REG I64 (HOLE 1 MM)) 0) (SUBREG I8 (MEM I64 (HOLE 2)) 0)))) )))))))) (SET (SUBREG I16 (REG I64 (HOLE 1 MM)) 1) (INTCONST I16 0)) (SET (SUBREG I32 (REG I64 (HOLE 1 MM)) 1) (INTCONST I32 0)))) ;PSADBW xmm,xmm (DEFINST ("PSADBW ?1x,?2x" "nil" "nil") (PARALLEL (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 0) (ADD I16 (CONVZX I16 (IFTHENELSE I8 (TSTLTS I1 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 7) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 7)) (SUB I8 (SUBREG I8 (REG I128 (HOLE 2 XMM)) 7) (SUBREG I8 (REG I128 (HOLE 1 XMM)) 7)) (SUB I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 7) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 7)))) (ADD I16 (CONVZX I16 (IFTHENELSE I8 (TSTLTS I1 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 6) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 6)) (SUB I8 (SUBREG I8 (REG I128 (HOLE 2 XMM)) 6) (SUBREG I8 (REG I128 (HOLE 1 XMM)) 6)) (SUB I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 6) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 6)))) (ADD I16 (CONVZX I16 (IFTHENELSE I8 (TSTLTS I1 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 5) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 5)) (SUB I8 (SUBREG I8 (REG I128 (HOLE 2 XMM)) 5) (SUBREG I8 (REG I128 (HOLE 1 XMM)) 5)) (SUB I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 5) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 5)))) (ADD I16 (CONVZX I16 (IFTHENELSE I8 (TSTLTS I1 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 4) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 4)) (SUB I8 (SUBREG I8 (REG I128 (HOLE 2 XMM)) 4) (SUBREG I8 (REG I128 (HOLE 1 XMM)) 4)) (SUB I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 4) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 4)))) (ADD I16 (CONVZX I16 (IFTHENELSE I8 (TSTLTS I1 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 3) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 3)) (SUB I8 (SUBREG I8 (REG I128 (HOLE 2 XMM)) 3) (SUBREG I8 (REG I128 (HOLE 1 XMM)) 3)) (SUB I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 3) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 3)))) (ADD I16 (CONVZX I16 (IFTHENELSE I8 (TSTLTS I1 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 2) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 2)) (SUB I8 (SUBREG I8 (REG I128 (HOLE 2 XMM)) 2) (SUBREG I8 (REG I128 (HOLE 1 XMM)) 2)) (SUB I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 2) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 2)))) (ADD I16 (CONVZX I16 (IFTHENELSE I8 (TSTLTS I1 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 1) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 1)) (SUB I8 (SUBREG I8 (REG I128 (HOLE 2 XMM)) 1) (SUBREG I8 (REG I128 (HOLE 1 XMM)) 1)) (SUB I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 1) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 1)))) (CONVZX I16 (IFTHENELSE I8 (TSTLTS I1 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 0) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 0)) (SUB I8 (SUBREG I8 (REG I128 (HOLE 2 XMM)) 0) (SUBREG I8 (REG I128 (HOLE 1 XMM)) 0)) (SUB I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 0) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 0)))) )))))))) (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 1) (INTCONST I16 0)) (SET (SUBREG I32 (REG I128 (HOLE 1 XMM)) 1) (INTCONST I32 0)) (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 4) (ADD I16 (CONVZX I16 (IFTHENELSE I8 (TSTLTS I1 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 15) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 15)) (SUB I8 (SUBREG I8 (REG I128 (HOLE 2 XMM)) 15) (SUBREG I8 (REG I128 (HOLE 1 XMM)) 15)) (SUB I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 15) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 15)))) (ADD I16 (CONVZX I16 (IFTHENELSE I8 (TSTLTS I1 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 14) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 14)) (SUB I8 (SUBREG I8 (REG I128 (HOLE 2 XMM)) 14) (SUBREG I8 (REG I128 (HOLE 1 XMM)) 14)) (SUB I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 14) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 14)))) (ADD I16 (CONVZX I16 (IFTHENELSE I8 (TSTLTS I1 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 13) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 13)) (SUB I8 (SUBREG I8 (REG I128 (HOLE 2 XMM)) 13) (SUBREG I8 (REG I128 (HOLE 1 XMM)) 13)) (SUB I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 13) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 13)))) (ADD I16 (CONVZX I16 (IFTHENELSE I8 (TSTLTS I1 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 12) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 12)) (SUB I8 (SUBREG I8 (REG I128 (HOLE 2 XMM)) 12) (SUBREG I8 (REG I128 (HOLE 1 XMM)) 12)) (SUB I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 12) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 12)))) (ADD I16 (CONVZX I16 (IFTHENELSE I8 (TSTLTS I1 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 11) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 11)) (SUB I8 (SUBREG I8 (REG I128 (HOLE 2 XMM)) 11) (SUBREG I8 (REG I128 (HOLE 1 XMM)) 11)) (SUB I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 11) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 11)))) (ADD I16 (CONVZX I16 (IFTHENELSE I8 (TSTLTS I1 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 10) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 10)) (SUB I8 (SUBREG I8 (REG I128 (HOLE 2 XMM)) 10) (SUBREG I8 (REG I128 (HOLE 1 XMM)) 10)) (SUB I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 10) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 10)))) (ADD I16 (CONVZX I16 (IFTHENELSE I8 (TSTLTS I1 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 9) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 9)) (SUB I8 (SUBREG I8 (REG I128 (HOLE 2 XMM)) 9) (SUBREG I8 (REG I128 (HOLE 1 XMM)) 9)) (SUB I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 9) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 9)))) (CONVZX I16 (IFTHENELSE I8 (TSTLTS I1 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 8) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 8)) (SUB I8 (SUBREG I8 (REG I128 (HOLE 2 XMM)) 8) (SUBREG I8 (REG I128 (HOLE 1 XMM)) 8)) (SUB I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 8) (SUBREG I8 (REG I128 (HOLE 2 XMM)) 8)))) )))))))) (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 5) (INTCONST I16 0)) (SET (SUBREG I32 (REG I128 (HOLE 1 XMM)) 3) (INTCONST I32 0)))) ;PSADBW xmm,m128 (DEFINST ("PSADBW ?1x,QWORD PTR ??2s" "nil" "nil") (PARALLEL (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 0) (ADD I16 (CONVZX I16 (IFTHENELSE I8 (TSTLTS I1 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 7) (SUBREG I8 (MEM I128 (HOLE 2)) 7)) (SUB I8 (SUBREG I8 (MEM I128 (HOLE 2)) 7) (SUBREG I8 (REG I128 (HOLE 1 XMM)) 7)) (SUB I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 7) (SUBREG I8 (MEM I128 (HOLE 2)) 7)))) (ADD I16 (CONVZX I16 (IFTHENELSE I8 (TSTLTS I1 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 6) (SUBREG I8 (MEM I128 (HOLE 2)) 6)) (SUB I8 (SUBREG I8 (MEM I128 (HOLE 2)) 6) (SUBREG I8 (REG I128 (HOLE 1 XMM)) 6)) (SUB I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 6) (SUBREG I8 (MEM I128 (HOLE 2)) 6)))) (ADD I16 (CONVZX I16 (IFTHENELSE I8 (TSTLTS I1 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 5) (SUBREG I8 (MEM I128 (HOLE 2)) 5)) (SUB I8 (SUBREG I8 (MEM I128 (HOLE 2)) 5) (SUBREG I8 (REG I128 (HOLE 1 XMM)) 5)) (SUB I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 5) (SUBREG I8 (MEM I128 (HOLE 2)) 5)))) (ADD I16 (CONVZX I16 (IFTHENELSE I8 (TSTLTS I1 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 4) (SUBREG I8 (MEM I128 (HOLE 2)) 4)) (SUB I8 (SUBREG I8 (MEM I128 (HOLE 2)) 4) (SUBREG I8 (REG I128 (HOLE 1 XMM)) 4)) (SUB I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 4) (SUBREG I8 (MEM I128 (HOLE 2)) 4)))) (ADD I16 (CONVZX I16 (IFTHENELSE I8 (TSTLTS I1 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 3) (SUBREG I8 (MEM I128 (HOLE 2)) 3)) (SUB I8 (SUBREG I8 (MEM I128 (HOLE 2)) 3) (SUBREG I8 (REG I128 (HOLE 1 XMM)) 3)) (SUB I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 3) (SUBREG I8 (MEM I128 (HOLE 2)) 3)))) (ADD I16 (CONVZX I16 (IFTHENELSE I8 (TSTLTS I1 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 2) (SUBREG I8 (MEM I128 (HOLE 2)) 2)) (SUB I8 (SUBREG I8 (MEM I128 (HOLE 2)) 2) (SUBREG I8 (REG I128 (HOLE 1 XMM)) 2)) (SUB I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 2) (SUBREG I8 (MEM I128 (HOLE 2)) 2)))) (ADD I16 (CONVZX I16 (IFTHENELSE I8 (TSTLTS I1 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 1) (SUBREG I8 (MEM I128 (HOLE 2)) 1)) (SUB I8 (SUBREG I8 (MEM I128 (HOLE 2)) 1) (SUBREG I8 (REG I128 (HOLE 1 XMM)) 1)) (SUB I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 1) (SUBREG I8 (MEM I128 (HOLE 2)) 1)))) (CONVZX I16 (IFTHENELSE I8 (TSTLTS I1 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 0) (SUBREG I8 (MEM I128 (HOLE 2)) 0)) (SUB I8 (SUBREG I8 (MEM I128 (HOLE 2)) 0) (SUBREG I8 (REG I128 (HOLE 1 XMM)) 0)) (SUB I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 0) (SUBREG I8 (MEM I128 (HOLE 2)) 0)))) )))))))) (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 1) (INTCONST I16 0)) (SET (SUBREG I32 (REG I128 (HOLE 1 XMM)) 1) (INTCONST I32 0)) (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 4) (ADD I16 (CONVZX I16 (IFTHENELSE I8 (TSTLTS I1 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 15) (SUBREG I8 (MEM I128 (HOLE 2)) 15)) (SUB I8 (SUBREG I8 (MEM I128 (HOLE 2)) 15) (SUBREG I8 (REG I128 (HOLE 1 XMM)) 15)) (SUB I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 15) (SUBREG I8 (MEM I128 (HOLE 2)) 15)))) (ADD I16 (CONVZX I16 (IFTHENELSE I8 (TSTLTS I1 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 14) (SUBREG I8 (MEM I128 (HOLE 2)) 14)) (SUB I8 (SUBREG I8 (MEM I128 (HOLE 2)) 14) (SUBREG I8 (REG I128 (HOLE 1 XMM)) 14)) (SUB I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 14) (SUBREG I8 (MEM I128 (HOLE 2)) 14)))) (ADD I16 (CONVZX I16 (IFTHENELSE I8 (TSTLTS I1 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 13) (SUBREG I8 (MEM I128 (HOLE 2)) 13)) (SUB I8 (SUBREG I8 (MEM I128 (HOLE 2)) 13) (SUBREG I8 (REG I128 (HOLE 1 XMM)) 13)) (SUB I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 13) (SUBREG I8 (MEM I128 (HOLE 2)) 13)))) (ADD I16 (CONVZX I16 (IFTHENELSE I8 (TSTLTS I1 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 12) (SUBREG I8 (MEM I128 (HOLE 2)) 12)) (SUB I8 (SUBREG I8 (MEM I128 (HOLE 2)) 12) (SUBREG I8 (REG I128 (HOLE 1 XMM)) 12)) (SUB I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 12) (SUBREG I8 (MEM I128 (HOLE 2)) 12)))) (ADD I16 (CONVZX I16 (IFTHENELSE I8 (TSTLTS I1 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 11) (SUBREG I8 (MEM I128 (HOLE 2)) 11)) (SUB I8 (SUBREG I8 (MEM I128 (HOLE 2)) 11) (SUBREG I8 (REG I128 (HOLE 1 XMM)) 11)) (SUB I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 11) (SUBREG I8 (MEM I128 (HOLE 2)) 11)))) (ADD I16 (CONVZX I16 (IFTHENELSE I8 (TSTLTS I1 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 10) (SUBREG I8 (MEM I128 (HOLE 2)) 10)) (SUB I8 (SUBREG I8 (MEM I128 (HOLE 2)) 10) (SUBREG I8 (REG I128 (HOLE 1 XMM)) 10)) (SUB I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 10) (SUBREG I8 (MEM I128 (HOLE 2)) 10)))) (ADD I16 (CONVZX I16 (IFTHENELSE I8 (TSTLTS I1 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 9) (SUBREG I8 (MEM I128 (HOLE 2)) 9)) (SUB I8 (SUBREG I8 (MEM I128 (HOLE 2)) 9) (SUBREG I8 (REG I128 (HOLE 1 XMM)) 9)) (SUB I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 9) (SUBREG I8 (MEM I128 (HOLE 2)) 9)))) (CONVZX I16 (IFTHENELSE I8 (TSTLTS I1 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 8) (SUBREG I8 (MEM I128 (HOLE 2)) 8)) (SUB I8 (SUBREG I8 (MEM I128 (HOLE 2)) 8) (SUBREG I8 (REG I128 (HOLE 1 XMM)) 8)) (SUB I8 (SUBREG I8 (REG I128 (HOLE 1 XMM)) 8) (SUBREG I8 (MEM I128 (HOLE 2)) 8)))) )))))))) (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 5) (INTCONST I16 0)) (SET (SUBREG I32 (REG I128 (HOLE 1 XMM)) 3) (INTCONST I32 0)))) ;指定したワードを抽出し、MMXレジスタに移動する ;PSHUFW mm,mm,imm8 (DEFINST ("PSHUFW ?1m,?2m,?3c" "PSHUFW $?3c,%?2m,%?1m" "PSHUFW ?1m,?2m,?3c") (PARALLEL (SET (SUBREG I16 (REG I64 (HOLE 1 MM)) 0) (IFTHENELSE I16 (TSTEQ I1 (BAND I8 (INTCONST I8 (HOLE 3)) (INTCONST I8 #x02)) (INTCONST I8 0)) (IFTHENELSE I16 (TSTEQ I1 (BAND I8 (INTCONST I8 (HOLE 3)) (INTCONST I8 #x01)) (INTCONST I8 0)) (SUBREG I16 (REG I64 (HOLE 2 MM)) 0) (SUBREG I16 (REG I64 (HOLE 2 MM)) 1)) (IFTHENELSE I16 (TSTEQ I1 (BAND I8 (INTCONST I8 (HOLE 3)) (INTCONST I8 #x01)) (INTCONST I8 0)) (SUBREG I16 (REG I64 (HOLE 2 MM)) 2) (SUBREG I16 (REG I64 (HOLE 2 MM)) 3)))) (SET (SUBREG I16 (REG I64 (HOLE 1 MM)) 1) (IFTHENELSE I16 (TSTEQ I1 (BAND I8 (INTCONST I8 (HOLE 3)) (INTCONST I8 #x08)) (INTCONST I8 0)) (IFTHENELSE I16 (TSTEQ I1 (BAND I8 (INTCONST I8 (HOLE 3)) (INTCONST I8 #x04)) (INTCONST I8 0)) (SUBREG I16 (REG I64 (HOLE 2 MM)) 0) (SUBREG I16 (REG I64 (HOLE 2 MM)) 1)) (IFTHENELSE I16 (TSTEQ I1 (BAND I8 (INTCONST I8 (HOLE 3)) (INTCONST I8 #x04)) (INTCONST I8 0)) (SUBREG I16 (REG I64 (HOLE 2 MM)) 2) (SUBREG I16 (REG I64 (HOLE 2 MM)) 3)))) (SET (SUBREG I16 (REG I64 (HOLE 1 MM)) 2) (IFTHENELSE I16 (TSTEQ I1 (BAND I8 (INTCONST I8 (HOLE 3)) (INTCONST I8 #x20)) (INTCONST I8 0)) (IFTHENELSE I16 (TSTEQ I1 (BAND I8 (INTCONST I8 (HOLE 3)) (INTCONST I8 #x10)) (INTCONST I8 0)) (SUBREG I16 (REG I64 (HOLE 2 MM)) 0) (SUBREG I16 (REG I64 (HOLE 2 MM)) 1)) (IFTHENELSE I16 (TSTEQ I1 (BAND I8 (INTCONST I8 (HOLE 3)) (INTCONST I8 #x10)) (INTCONST I8 0)) (SUBREG I16 (REG I64 (HOLE 2 MM)) 2) (SUBREG I16 (REG I64 (HOLE 2 MM)) 3)))) (SET (SUBREG I16 (REG I64 (HOLE 1 MM)) 3) (IFTHENELSE I16 (TSTEQ I1 (BAND I8 (INTCONST I8 (HOLE 3)) (INTCONST I8 #x80)) (INTCONST I8 0)) (IFTHENELSE I16 (TSTEQ I1 (BAND I8 (INTCONST I8 (HOLE 3)) (INTCONST I8 #x40)) (INTCONST I8 0)) (SUBREG I16 (REG I64 (HOLE 2 MM)) 0) (SUBREG I16 (REG I64 (HOLE 2 MM)) 1)) (IFTHENELSE I16 (TSTEQ I1 (BAND I8 (INTCONST I8 (HOLE 3)) (INTCONST I8 #x40)) (INTCONST I8 0)) (SUBREG I16 (REG I64 (HOLE 2 MM)) 2) (SUBREG I16 (REG I64 (HOLE 2 MM)) 3)))))) ;PSHUFW mm,m64,imm8 (DEFINST ("PSHUFW ?1m,QWORD PTR ??2s,?3c" "PSHUFW $?3c,??2s,%?1m" "PSHUFW ?1m,QWORD PTR ??2s,?3c") (PARALLEL (SET (SUBREG I16 (REG I64 (HOLE 1 MM)) 0) (IFTHENELSE I16 (TSTEQ I1 (BAND I8 (INTCONST I8 (HOLE 3)) (INTCONST I8 #x02)) (INTCONST I8 0)) (IFTHENELSE I16 (TSTEQ I1 (BAND I8 (INTCONST I8 (HOLE 3)) (INTCONST I8 #x01)) (INTCONST I8 0)) (SUBREG I16 (MEM I64 (HOLE 2)) 0) (SUBREG I16 (MEM I64 (HOLE 2)) 1)) (IFTHENELSE I16 (TSTEQ I1 (BAND I8 (INTCONST I8 (HOLE 3)) (INTCONST I8 #x01)) (INTCONST I8 0)) (SUBREG I16 (MEM I64 (HOLE 2)) 2) (SUBREG I16 (MEM I64 (HOLE 2)) 3)))) (SET (SUBREG I16 (REG I64 (HOLE 1 MM)) 1) (IFTHENELSE I16 (TSTEQ I1 (BAND I8 (INTCONST I8 (HOLE 3)) (INTCONST I8 #x08)) (INTCONST I8 0)) (IFTHENELSE I16 (TSTEQ I1 (BAND I8 (INTCONST I8 (HOLE 3)) (INTCONST I8 #x04)) (INTCONST I8 0)) (SUBREG I16 (MEM I64 (HOLE 2)) 0) (SUBREG I16 (MEM I64 (HOLE 2)) 1)) (IFTHENELSE I16 (TSTEQ I1 (BAND I8 (INTCONST I8 (HOLE 3)) (INTCONST I8 #x04)) (INTCONST I8 0)) (SUBREG I16 (MEM I64 (HOLE 2)) 2) (SUBREG I16 (MEM I64 (HOLE 2)) 3)))) (SET (SUBREG I16 (REG I64 (HOLE 1 MM)) 2) (IFTHENELSE I16 (TSTEQ I1 (BAND I8 (INTCONST I8 (HOLE 3)) (INTCONST I8 #x20)) (INTCONST I8 0)) (IFTHENELSE I16 (TSTEQ I1 (BAND I8 (INTCONST I8 (HOLE 3)) (INTCONST I8 #x10)) (INTCONST I8 0)) (SUBREG I16 (MEM I64 (HOLE 2)) 0) (SUBREG I16 (MEM I64 (HOLE 2)) 1)) (IFTHENELSE I16 (TSTEQ I1 (BAND I8 (INTCONST I8 (HOLE 3)) (INTCONST I8 #x10)) (INTCONST I8 0)) (SUBREG I16 (MEM I64 (HOLE 2)) 2) (SUBREG I16 (MEM I64 (HOLE 2)) 3)))) (SET (SUBREG I16 (REG I64 (HOLE 1 MM)) 3) (IFTHENELSE I16 (TSTEQ I1 (BAND I8 (INTCONST I8 (HOLE 3)) (INTCONST I8 #x80)) (INTCONST I8 0)) (IFTHENELSE I16 (TSTEQ I1 (BAND I8 (INTCONST I8 (HOLE 3)) (INTCONST I8 #x40)) (INTCONST I8 0)) (SUBREG I16 (MEM I64 (HOLE 2)) 0) (SUBREG I16 (MEM I64 (HOLE 2)) 1)) (IFTHENELSE I16 (TSTEQ I1 (BAND I8 (INTCONST I8 (HOLE 3)) (INTCONST I8 #x40)) (INTCONST I8 0)) (SUBREG I16 (MEM I64 (HOLE 2)) 2) (SUBREG I16 (MEM I64 (HOLE 2)) 3)))))) ;Streaming(cache bypass)store using byte mask ;MASKMOVQ mm,mm(edi) (DEFINST ("MASKMOVQ ?1m,?2m" "MASKMOVQ %?1m,%?2m" "MASKMOVQ ?1m,?2m") (PARALLEL (SET (SUBREG I8 (MEM I64 (REG I32 EDI)) 0) (IFTHENELSE I8 (TSTLTS I1 (SUBREG I8 (REG I64 (HOLE 2 MM)) 0) (INTCONST I8 0)) (SUBREG I8 (REG I64 (HOLE 1 MM)) 0) (SUBREG I8 (MEM I64 (REG I32 EDI)) 0))) (SET (SUBREG I8 (MEM I64 (REG I32 EDI)) 1) (IFTHENELSE I8 (TSTLTS I1 (SUBREG I8 (REG I64 (HOLE 2 MM)) 1) (INTCONST I8 0)) (SUBREG I8 (REG I64 (HOLE 1 MM)) 1) (SUBREG I8 (MEM I64 (REG I32 EDI)) 1))) (SET (SUBREG I8 (MEM I64 (REG I32 EDI)) 2) (IFTHENELSE I8 (TSTLTS I1 (SUBREG I8 (REG I64 (HOLE 2 MM)) 2) (INTCONST I8 0)) (SUBREG I8 (REG I64 (HOLE 1 MM)) 2) (SUBREG I8 (MEM I64 (REG I32 EDI)) 2))) (SET (SUBREG I8 (MEM I64 (REG I32 EDI)) 3) (IFTHENELSE I8 (TSTLTS I1 (SUBREG I8 (REG I64 (HOLE 2 MM)) 3) (INTCONST I8 0)) (SUBREG I8 (REG I64 (HOLE 1 MM)) 3) (SUBREG I8 (MEM I64 (REG I32 EDI)) 3))) (SET (SUBREG I8 (MEM I64 (REG I32 EDI)) 4) (IFTHENELSE I8 (TSTLTS I1 (SUBREG I8 (REG I64 (HOLE 2 MM)) 4) (INTCONST I8 0)) (SUBREG I8 (REG I64 (HOLE 1 MM)) 4) (SUBREG I8 (MEM I64 (REG I32 EDI)) 4))) (SET (SUBREG I8 (MEM I64 (REG I32 EDI)) 5) (IFTHENELSE I8 (TSTLTS I1 (SUBREG I8 (REG I64 (HOLE 2 MM)) 5) (INTCONST I8 0)) (SUBREG I8 (REG I64 (HOLE 1 MM)) 5) (SUBREG I8 (MEM I64 (REG I32 EDI)) 5))) (SET (SUBREG I8 (MEM I64 (REG I32 EDI)) 6) (IFTHENELSE I8 (TSTLTS I1 (SUBREG I8 (REG I64 (HOLE 2 MM)) 6) (INTCONST I8 0)) (SUBREG I8 (REG I64 (HOLE 1 MM)) 6) (SUBREG I8 (MEM I64 (REG I32 EDI)) 6))) (SET (SUBREG I8 (MEM I64 (REG I32 EDI)) 7) (IFTHENELSE I8 (TSTLTS I1 (SUBREG I8 (REG I64 (HOLE 2 MM)) 7) (INTCONST I8 0)) (SUBREG I8 (REG I64 (HOLE 1 MM)) 7) (SUBREG I8 (MEM I64 (REG I32 EDI)) 7))))) ;Streaming(cache bypass)store ; Non Temporal Hint は記述できないので、MOVAPS m128,xmm と同じ。 ;MOVNTPS m128,xmm (DEFINST ("MOVNTPS REAL4 PTR ??1s,?2x" "MOVNTPS %?2x,??1s" "MOVNTPS ??1s,?2x") (PARALLEL (SET (SUBREG F32 (MEM I128 (HOLE 1)) 0) (SUBREG F32 (REG I128 (HOLE 2 XMM)) 0)) (SET (SUBREG F32 (MEM I128 (HOLE 1)) 1) (SUBREG F32 (REG I128 (HOLE 2 XMM)) 1)) (SET (SUBREG F32 (MEM I128 (HOLE 1)) 2) (SUBREG F32 (REG I128 (HOLE 2 XMM)) 2)) (SET (SUBREG F32 (MEM I128 (HOLE 1)) 3) (SUBREG F32 (REG I128 (HOLE 2 XMM)) 3)) )) ;Streaming(cache bypass)store ; Non Temporal Hint は記述できないので、MOVQ m64,mm と同じ。 ;MOVNTQ m64,mm (DEFINST ("MOVNTQ QWORD PTR ??1s,?2m" "MOVNTQ %?2m,??1s" "MOVNTQ QWORD PTR ??1s,?2m") (SET (MEM I64 (HOLE 1)) (REG I64 (HOLE 2 MM)))) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; ; 5.6.1 パックドおよびスカラ倍精度浮動小数点命令 ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;; ; 5.6.1.1 データ転送命令 ;Move Aligned Packed Double-Precision Floating-Point Values ;;;;;;;;;;;;;;;;;;;;;;;;;;; ;aligned と unaligned の区別はいらない。MOVAPD と MOVUPD は同じ。 ;MOVAPD xmm1, xmm2/m128 (DEFINST ("MOVAPD ?1x,?2x" "nil" "nil") (PARALLEL (SET (SUBREG F64 (REG I128 (HOLE 1 XMM)) 0) (SUBREG F64 (REG I128 (HOLE 2 XMM)) 0)) (SET (SUBREG F64 (REG I128 (HOLE 1 XMM)) 1) (SUBREG F64 (REG I128 (HOLE 2 XMM)) 1)))) (DEFINST ("MOVAPD ?1x,REAL8 PTR ??2s" "nil" "nil") (PARALLEL (SET (SUBREG F64 (REG I128 (HOLE 1 XMM)) 0) (SUBREG F64 (MEM I128 (HOLE 2)) 0)) (SET (SUBREG F64 (REG I128 (HOLE 1 XMM)) 1) (SUBREG F64 (MEM I128 (HOLE 2)) 1)))) ;MOVAPD xmm2/m128, xmm1 (DEFINST ("MOVAPD REAL8 PTR ??1s,?2x" "nil" "nil") (PARALLEL (SET (SUBREG F64 (MEM I128 (HOLE 1)) 0) (SUBREG F64 (REG I128 (HOLE 2 XMM)) 0)) (SET (SUBREG F64 (MEM I128 (HOLE 1)) 1) (SUBREG F64 (REG I128 (HOLE 2 XMM)) 1)))) ;(REG I128 (HOLE 2 XMM)) ==> (MEM I128 (HOLE 2)) ;;;;;;;;;;;;;;;;;;;;;;;;;;; ; 5.6.1.1 データ転送命令 ;Move High Packed Double-Precision Floating-Point Value ;;;;;;;;;;;;;;;;;;;;;;;;;;; ;Move double-precision floating-point value from m64 to high ;quadword of xmm. ;MOVHPD xmm, m64 (DEFINST ("MOVHPD ?1x,REAL8 PTR ??2s" "nil" "nil") (SET (SUBREG F64 (REG I128 (HOLE 1 XMM)) 1) (MEM F64 (HOLE 2)))) ;Move double-precision floating-point value from high quadword ;of xmm to m64. ;MOVHPD m64,xmm (DEFINST ("MOVHPD REAL8 PTR ??1s,?2x" "nil" "nil") (SET (MEM F64 (HOLE 1)) (SUBREG F64 (REG I128 (HOLE 2 XMM)) 1))) ;;;;;;;;;;;;;;;;;;;;;;;;;;; ; 5.6.1.1 データ転送命令 ;Move Low Packed Double-Precision Floating-Point Value ;;;;;;;;;;;;;;;;;;;;;;;;;;; ;Move double-precision floating-point value from m64 to low ;quadword of xmm register. ;MOVLPD xmm, m64 (DEFINST ("MOVLPD ?1x,REAL8 PTR ??2s" "nil" "nil") (SET (SUBREG F64 (REG I128 (HOLE 1 XMM)) 0) (MEM F64 (HOLE 2)))) ;Move double-precision floating-point nvalue from low quadword ;of xmm register to m64. ;MOVLPD m64,xmm (DEFINST ("MOVLPD REAL8 PTR ??1s,?2x" "nil" "nil") (SET (MEM F64 (HOLE 1)) (SUBREG F64 (REG I128 (HOLE 2 XMM)) 0))) ;;;;;;;;;;;;;;;;;;;;;;;;;;; ; 5.6.1.1 データ転送命令 ;Extract Packed Double-Precision Floating-Point Sign Mask ;;;;;;;;;;;;;;;;;;;;;;;;;;; ;MOVMSKPD r32, xmm (DEFINST ("MOVMSKPD ?1r,?2x" "nil" "nil") (SET (REG I32 (HOLE 1 R32)) (BOR I32 (CONVZX I32 (FSIGN I1 (SUBREG F64 (REG I128 (HOLE 2 XMM)) 0))) (LSH I32 (CONVZX I32 (FSIGN I1 (SUBREG F64 (REG I128 (HOLE 2 XMM)) 1))) (INTCONST I32 1))))) ;;;;;;;;;;;;;;;;;;;;;;;;;;; ; 5.6.1.1 データ転送命令 ;Move Scalar Double-Precision Floating-Point Value ;;;;;;;;;;;;;;;;;;;;;;;;;;; ;MOVSD xmm1, xmm2 (DEFINST ("DB 0F2H\nMOVUPS ?1x,?2x" "nil" "nil") (SET (SUBREG F64 (REG I128 (HOLE 1 XMM)) 0) (SUBREG F64 (REG I128 (HOLE 2 XMM)) 0))) ;MOVSD xmm1, m64 (DEFINST ("DB 0F2H\nMOVUPS ?1x,REAL8 PTR ??2s" "nil" "nil") (PARALLEL (SET (SUBREG F64 (REG I128 (HOLE 1 XMM)) 0) (MEM F64 (HOLE 2))) (SET (SUBREG F64 (REG I128 (HOLE 1 XMM)) 1) (FLOATCONST F64 0.0)))) ;MOVSD m64, xmm1 (DEFINST ("DB 0F2H\nMOVUPS REAL8 PTR ??1s,?2x" "nil" "nil") (SET (MEM F64 (HOLE 1)) (SUBREG F64 (REG I128 (HOLE 2 XMM)) 0))) ;(SUBREG F64 (REG I128 (HOLE 1 XMM)) 0) ==> (MEM F64 (HOLE 1)) ;(SUBREG F64 (REG I128 (HOLE 2 XMM)) 0) ==> (MEM F64 (HOLE 2)) ;;;;;;;;;;;;;;;;;;;;;;;;;;; ; 5.6.1.1 データ転送命令 ;Move Unaligned Packed Double-Precision Floating-Point ;Values ;;;;;;;;;;;;;;;;;;;;;;;;;;; ;MOVUPD xmm1, xmm2/m128 ;MOVAPD と同じ (DEFINST ("MOVUPD ?1x,?2x" "nil" "nil") (PARALLEL (SET (SUBREG F64 (REG I128 (HOLE 1 XMM)) 0) (SUBREG F64 (REG I128 (HOLE 2 XMM)) 0)) (SET (SUBREG F64 (REG I128 (HOLE 1 XMM)) 1) (SUBREG F64 (REG I128 (HOLE 2 XMM)) 1)))) (DEFINST ("MOVUPD ?1x,REAL8 PTR ??2s" "nil" "nil") (PARALLEL (SET (SUBREG F64 (REG I128 (HOLE 1 XMM)) 0) (SUBREG F64 (MEM I128 (HOLE 2)) 0)) (SET (SUBREG F64 (REG I128 (HOLE 1 XMM)) 1) (SUBREG F64 (MEM I128 (HOLE 2)) 1)))) ;MOVUPD xmm2/m128, xmm1 (DEFINST ("MOVUPD REAL8 PTR ??1s,?2x" "nil" "nil") (PARALLEL (SET (SUBREG F64 (MEM I128 (HOLE 1)) 0) (SUBREG F64 (REG I128 (HOLE 2 XMM)) 0)) (SET (SUBREG F64 (MEM I128 (HOLE 1)) 1) (SUBREG F64 (REG I128 (HOLE 2 XMM)) 1)))) ;(REG I128 (HOLE 2 XMM)) ==> (MEM I128 (HOLE 2)) ;;;;;;;;;;;;;;;;;;;;;;;;;;; ; 5.6.1.2 パックド算術命令 ;Add Packed Double-Precision Floating-Point Values ;;;;;;;;;;;;;;;;;;;;;;;;;;; ;ADDPD xmm1, xmm2/m128 (DEFINST ("ADDPD ?1x,?2x" "nil" "nil") (PARALLEL (SET (SUBREG F64 (REG I128 (HOLE 1 XMM)) 0) (ADD F64 (SUBREG F64 (REG I128 (HOLE 1 XMM)) 0) (SUBREG F64 (REG I128 (HOLE 2 XMM)) 0))) (SET (SUBREG F64 (REG I128 (HOLE 1 XMM)) 1) (ADD F64 (SUBREG F64 (REG I128 (HOLE 1 XMM)) 1) (SUBREG F64 (REG I128 (HOLE 2 XMM)) 1))))) (DEFINST ("ADDPD ?1x,REAL8 PTR ??2s" "nil" "nil") (PARALLEL (SET (SUBREG F64 (REG I128 (HOLE 1 XMM)) 0) (ADD F64 (SUBREG F64 (REG I128 (HOLE 1 XMM)) 0) (SUBREG F64 (MEM I128 (HOLE 2)) 0))) (SET (SUBREG F64 (REG I128 (HOLE 1 XMM)) 1) (ADD F64 (SUBREG F64 (REG I128 (HOLE 1 XMM)) 1) (SUBREG F64 (MEM I128 (HOLE 2)) 1))))) ;(REG I128 (HOLE 2 XMM)) ==> (MEM I128 (HOLE 2)) ;;;;;;;;;;;;;;;;;;;;;;;;;;; ; 5.6.1.2 パックド算術命令 ;Add Scalar Double-Precision Floating-Point Values ;;;;;;;;;;;;;;;;;;;;;;;;;;; ;ADDSD xmm1, xmm2/m64 (DEFINST ("ADDSD ?1x,?2x" "nil" "nil") (SET (SUBREG F64 (REG I128 (HOLE 1 XMM)) 0) (ADD F64 (SUBREG F64 (REG I128 (HOLE 1 XMM)) 0) (SUBREG F64 (REG I128 (HOLE 2 XMM)) 0)))) (DEFINST ("ADDSD ?1x,REAL8 PTR ??2s" "nil" "nil") (SET (SUBREG F64 (REG I128 (HOLE 1 XMM)) 0) (ADD F64 (SUBREG F64 (REG I128 (HOLE 1 XMM)) 0) (MEM F64 (HOLE 2))))) ;(SUBREG F64 (REG I128 (HOLE 2 XMM)) 0) ==> (MEM F64 (HOLE 2)) ;;;;;;;;;;;;;;;;;;;;;;;;;;; ; 5.6.1.2 パックド算術命令 ;Divide Packed Double-Precision Floating-Point Values ;;;;;;;;;;;;;;;;;;;;;;;;;;; ;DIVPD xmm1, xmm2/m128 (DEFINST ("DIVPD ?1x,?2x" "nil" "nil") (PARALLEL (SET (SUBREG F64 (REG I128 (HOLE 1 XMM)) 0) (DIVU F64 (SUBREG F64 (REG I128 (HOLE 1 XMM)) 0) (SUBREG F64 (REG I128 (HOLE 2 XMM)) 0))) (SET (SUBREG F64 (REG I128 (HOLE 1 XMM)) 1) (DIVU F64 (SUBREG F64 (REG I128 (HOLE 1 XMM)) 1) (SUBREG F64 (REG I128 (HOLE 2 XMM)) 1))))) (DEFINST ("DIVPD ?1x, REAL8 PTR ??2s" "nil" "nil") (PARALLEL (SET (SUBREG F64 (REG I128 (HOLE 1 XMM)) 0) (DIVU F64 (SUBREG F64 (REG I128 (HOLE 1 XMM)) 0) (SUBREG F64 (MEM I128 (HOLE 2)) 0))) (SET (SUBREG F64 (REG I128 (HOLE 1 XMM)) 1) (DIVU F64 (SUBREG F64 (REG I128 (HOLE 1 XMM)) 1) (SUBREG F64 (MEM I128 (HOLE 2)) 1))))) ;(REG I128 (HOLE 2 XMM)) ==> (MEM I128 (HOLE 2)) ;;;;;;;;;;;;;;;;;;;;;;;;;;; ; 5.6.1.2 パックド算術命令 ;Divide Scalar Double-Precision Floating-Point Values ;;;;;;;;;;;;;;;;;;;;;;;;;;; ;DIVSD xmm1, xmm2/m64 (DEFINST ("DIVSD ?1x,?2x" "nil" "nil") (SET (SUBREG F64 (REG I128 (HOLE 1 XMM)) 0) (DIVU F64 (SUBREG F64 (REG I128 (HOLE 1 XMM)) 0) (SUBREG F64 (REG I128 (HOLE 2 XMM)) 0)))) (DEFINST ("DIVSD ?1x,REAL8 PTR ??2s" "nil" "nil") (SET (SUBREG F64 (REG I128 (HOLE 1 XMM)) 0) (DIVU F64 (SUBREG F64 (REG I128 (HOLE 1 XMM)) 0) (MEM F64 (HOLE 2))))) ;(SUBREG F64 (REG I128 (HOLE 2 XMM)) 0) ==> (MEM F64 (HOLE 2)) ;;;;;;;;;;;;;;;;;;;;;;;;;;; ; 5.6.1.2 パックド算術命令 ;Return Maximum Packed Double-Precision Floating-Point Values ;;;;;;;;;;;;;;;;;;;;;;;;;;; ;MAXPD xmm1, xmm2/m128 (DEFINST ("MAXPD ?1x,?2x" "nil" "nil") (PARALLEL (SET (SUBREG F64 (REG I128 (HOLE 1 XMM)) 0) (IFTHENELSE F64 (BAND I1 (TSTEQ I1 (SUBREG F64 (REG I128 (HOLE 1 XMM)) 0) (FLOATCONST F64 0.0)) (TSTEQ I1 (SUBREG F64 (REG I128 (HOLE 2 XMM)) 0) (FLOATCONST F64 0.0))) (SUBREG F64 (REG I128 (HOLE 2 XMM)) 0) (IFTHENELSE F64 (NOTANUMBER I1 (SUBREG F64 (REG I128 (HOLE 1 XMM)) 0)) (SUBREG F64 (REG I128 (HOLE 2 XMM)) 0) (IFTHENELSE F64 (NOTANUMBER I1 (SUBREG F64 (REG I128 (HOLE 2 XMM)) 0)) (SUBREG F64 (REG I128 (HOLE 2 XMM)) 0) (IFTHENELSE F64 (TSTGTS I1 (SUBREG F64 (REG I128 (HOLE 1 XMM)) 0) (SUBREG F64 (REG I128 (HOLE 2 XMM)) 0)) (SUBREG F64 (REG I128 (HOLE 1 XMM)) 0) (SUBREG F64 (REG I128 (HOLE 2 XMM)) 0)))))) (SET (SUBREG F64 (REG I128 (HOLE 1 XMM)) 1) (IFTHENELSE F64 (BAND I1 (TSTEQ I1 (SUBREG F64 (REG I128 (HOLE 1 XMM)) 1) (FLOATCONST F64 0.0)) (TSTEQ I1 (SUBREG F64 (REG I128 (HOLE 2 XMM)) 1) (FLOATCONST F64 0.0))) (SUBREG F64 (REG I128 (HOLE 2 XMM)) 1) (IFTHENELSE F64 (NOTANUMBER I1 (SUBREG F64 (REG I128 (HOLE 1 XMM)) 1)) (SUBREG F64 (REG I128 (HOLE 2 XMM)) 1) (IFTHENELSE F64 (NOTANUMBER I1 (SUBREG F64 (REG I128 (HOLE 2 XMM)) 1)) (SUBREG F64 (REG I128 (HOLE 2 XMM)) 1) (IFTHENELSE F64 (TSTGTS I1 (SUBREG F64 (REG I128 (HOLE 1 XMM)) 1) (SUBREG F64 (REG I128 (HOLE 2 XMM)) 1)) (SUBREG F64 (REG I128 (HOLE 1 XMM)) 1) (SUBREG F64 (REG I128 (HOLE 2 XMM)) 1)))))))) (DEFINST ("MAXPD ?1x,REAL8 PTR ??2s" "nil" "nil") (PARALLEL (SET (SUBREG F64 (REG I128 (HOLE 1 XMM)) 0) (IFTHENELSE F64 (BAND I1 (TSTEQ I1 (SUBREG F64 (REG I128 (HOLE 1 XMM)) 0) (FLOATCONST F64 0.0)) (TSTEQ I1 (SUBREG F64 (MEM I128 (HOLE 2)) 0) (FLOATCONST F64 0.0))) (SUBREG F64 (MEM I128 (HOLE 2)) 0) (IFTHENELSE F64 (NOTANUMBER I1 (SUBREG F64 (REG I128 (HOLE 1 XMM)) 0)) (SUBREG F64 (MEM I128 (HOLE 2)) 0) (IFTHENELSE F64 (NOTANUMBER I1 (SUBREG F64 (MEM I128 (HOLE 2)) 0)) (SUBREG F64 (MEM I128 (HOLE 2)) 0) (IFTHENELSE F64 (TSTGTS I1 (SUBREG F64 (REG I128 (HOLE 1 XMM)) 0) (SUBREG F64 (MEM I128 (HOLE 2)) 0)) (SUBREG F64 (REG I128 (HOLE 1 XMM)) 0) (SUBREG F64 (MEM I128 (HOLE 2)) 0)))))) (SET (SUBREG F64 (REG I128 (HOLE 1 XMM)) 1) (IFTHENELSE F64 (BAND I1 (TSTEQ I1 (SUBREG F64 (REG I128 (HOLE 1 XMM)) 1) (FLOATCONST F64 0.0)) (TSTEQ I1 (SUBREG F64 (MEM I128 (HOLE 2)) 1) (FLOATCONST F64 0.0))) (SUBREG F64 (MEM I128 (HOLE 2)) 1) (IFTHENELSE F64 (NOTANUMBER I1 (SUBREG F64 (REG I128 (HOLE 1 XMM)) 1)) (SUBREG F64 (MEM I128 (HOLE 2)) 1) (IFTHENELSE F64 (NOTANUMBER I1 (SUBREG F64 (MEM I128 (HOLE 2)) 1)) (SUBREG F64 (MEM I128 (HOLE 2)) 1) (IFTHENELSE F64 (TSTGTS I1 (SUBREG F64 (REG I128 (HOLE 1 XMM)) 1) (SUBREG F64 (MEM I128 (HOLE 2)) 1)) (SUBREG F64 (REG I128 (HOLE 1 XMM)) 1) (SUBREG F64 (MEM I128 (HOLE 2)) 1)))))))) ;(REG I128 (HOLE 2 XMM)) ==> (MEM I128 (HOLE 2)) ;;;;;;;;;;;;;;;;;;;;;;;;;;; ; 5.6.1.2 パックド算術命令 ;Return Maximum Scalar Double-Precision Floating-Point Value ;;;;;;;;;;;;;;;;;;;;;;;;;;; ;MAXSD xmm1, xmm2/m64 (DEFINST ("MAXSD ?1x,?2x" "nil" "nil") (SET (SUBREG F64 (REG I128 (HOLE 1 XMM)) 0) (IFTHENELSE F64 (BAND I1 (TSTEQ I1 (SUBREG F64 (REG I128 (HOLE 1 XMM)) 0) (FLOATCONST F64 0.0)) (TSTEQ I1 (SUBREG F64 (REG I128 (HOLE 2 XMM)) 0) (FLOATCONST F64 0.0))) (SUBREG F64 (REG I128 (HOLE 2 XMM)) 0) (IFTHENELSE F64 (NOTANUMBER I1 (SUBREG F64 (REG I128 (HOLE 1 XMM)) 0)) (SUBREG F64 (REG I128 (HOLE 2 XMM)) 0) (IFTHENELSE F64 (NOTANUMBER I1 (SUBREG F64 (REG I128 (HOLE 2 XMM)) 0)) (SUBREG F64 (REG I128 (HOLE 2 XMM)) 0) (IFTHENELSE F64 (TSTGTS I1 (SUBREG F64 (REG I128 (HOLE 1 XMM)) 0) (SUBREG F64 (REG I128 (HOLE 2 XMM)) 0)) (SUBREG F64 (REG I128 (HOLE 1 XMM)) 0) (SUBREG F64 (REG I128 (HOLE 2 XMM)) 0))))))) (DEFINST ("MAXSD ?1x,REAL8 PTR ??2s" "nil" "nil") (SET (SUBREG F64 (REG I128 (HOLE 1 XMM)) 0) (IFTHENELSE F64 (BAND I1 (TSTEQ I1 (SUBREG F64 (REG I128 (HOLE 1 XMM)) 0) (FLOATCONST F64 0.0)) (TSTEQ I1 (MEM F64 (HOLE 2)) (FLOATCONST F64 0.0))) (MEM F64 (HOLE 2)) (IFTHENELSE F64 (NOTANUMBER I1 (SUBREG F64 (REG I128 (HOLE 1 XMM)) 0)) (MEM F64 (HOLE 2)) (IFTHENELSE F64 (NOTANUMBER I1 (MEM F64 (HOLE 2))) (MEM F64 (HOLE 2)) (IFTHENELSE F64 (TSTGTS I1 (SUBREG F64 (REG I128 (HOLE 1 XMM)) 0) (MEM F64 (HOLE 2))) (SUBREG F64 (REG I128 (HOLE 1 XMM)) 0) (MEM F64 (HOLE 2)))))))) ;(SUBREG F64 (REG I128 (HOLE 2 XMM)) 0) ==> (MEM F64 (HOLE 2)) ;;;;;;;;;;;;;;;;;;;;;;;;;;; ; 5.6.1.2 パックド算術命令 ;Return Minimum Packed Double-Precision Floating-Point Values ;;;;;;;;;;;;;;;;;;;;;;;;;;; ;MINPD xmm1, xmm2/m128 (DEFINST ("MINPD ?1x,?2x" "nil" "nil") (PARALLEL (SET (SUBREG F64 (REG I128 (HOLE 1 XMM)) 0) (IFTHENELSE F64 (BAND I1 (TSTEQ I1 (SUBREG F64 (REG I128 (HOLE 1 XMM)) 0) (FLOATCONST F64 0.0)) (TSTEQ I1 (SUBREG F64 (REG I128 (HOLE 2 XMM)) 0) (FLOATCONST F64 0.0))) (SUBREG F64 (REG I128 (HOLE 2 XMM)) 0) (IFTHENELSE F64 (NOTANUMBER I1 (SUBREG F64 (REG I128 (HOLE 1 XMM)) 0)) (SUBREG F64 (REG I128 (HOLE 2 XMM)) 0) (IFTHENELSE F64 (NOTANUMBER I1 (SUBREG F64 (REG I128 (HOLE 2 XMM)) 0)) (SUBREG F64 (REG I128 (HOLE 2 XMM)) 0) (IFTHENELSE F64 (TSTLTS I1 (SUBREG F64 (REG I128 (HOLE 1 XMM)) 0) (SUBREG F64 (REG I128 (HOLE 2 XMM)) 0)) (SUBREG F64 (REG I128 (HOLE 1 XMM)) 0) (SUBREG F64 (REG I128 (HOLE 2 XMM)) 0)))))) (SET (SUBREG F64 (REG I128 (HOLE 1 XMM)) 1) (IFTHENELSE F64 (BAND I1 (TSTEQ I1 (SUBREG F64 (REG I128 (HOLE 1 XMM)) 1) (FLOATCONST F64 0.0)) (TSTEQ I1 (SUBREG F64 (REG I128 (HOLE 2 XMM)) 1) (FLOATCONST F64 0.0))) (SUBREG F64 (REG I128 (HOLE 2 XMM)) 1) (IFTHENELSE F64 (NOTANUMBER I1 (SUBREG F64 (REG I128 (HOLE 1 XMM)) 1)) (SUBREG F64 (REG I128 (HOLE 2 XMM)) 1) (IFTHENELSE F64 (NOTANUMBER I1 (SUBREG F64 (REG I128 (HOLE 2 XMM)) 1)) (SUBREG F64 (REG I128 (HOLE 2 XMM)) 1) (IFTHENELSE F64 (TSTLTS I1 (SUBREG F64 (REG I128 (HOLE 1 XMM)) 1) (SUBREG F64 (REG I128 (HOLE 2 XMM)) 1)) (SUBREG F64 (REG I128 (HOLE 1 XMM)) 1) (SUBREG F64 (REG I128 (HOLE 2 XMM)) 1)))))))) (DEFINST ("MINPD ?1x,REAL8 PTR ??2s" "nil" "nil") (PARALLEL (SET (SUBREG F64 (REG I128 (HOLE 1 XMM)) 0) (IFTHENELSE F64 (BAND I1 (TSTEQ I1 (SUBREG F64 (REG I128 (HOLE 1 XMM)) 0) (FLOATCONST F64 0.0)) (TSTEQ I1 (SUBREG F64 (MEM I128 (HOLE 2)) 0) (FLOATCONST F64 0.0))) (SUBREG F64 (MEM I128 (HOLE 2)) 0) (IFTHENELSE F64 (NOTANUMBER I1 (SUBREG F64 (REG I128 (HOLE 1 XMM)) 0)) (SUBREG F64 (MEM I128 (HOLE 2)) 0) (IFTHENELSE F64 (NOTANUMBER I1 (SUBREG F64 (MEM I128 (HOLE 2)) 0)) (SUBREG F64 (MEM I128 (HOLE 2)) 0) (IFTHENELSE F64 (TSTLTS I1 (SUBREG F64 (REG I128 (HOLE 1 XMM)) 0) (SUBREG F64 (MEM I128 (HOLE 2)) 0)) (SUBREG F64 (REG I128 (HOLE 1 XMM)) 0) (SUBREG F64 (MEM I128 (HOLE 2)) 0)))))) (SET (SUBREG F64 (REG I128 (HOLE 1 XMM)) 1) (IFTHENELSE F64 (BAND I1 (TSTEQ I1 (SUBREG F64 (REG I128 (HOLE 1 XMM)) 1) (FLOATCONST F64 0.0)) (TSTEQ I1 (SUBREG F64 (MEM I128 (HOLE 2)) 1) (FLOATCONST F64 0.0))) (SUBREG F64 (MEM I128 (HOLE 2)) 1) (IFTHENELSE F64 (NOTANUMBER I1 (SUBREG F64 (REG I128 (HOLE 1 XMM)) 1)) (SUBREG F64 (MEM I128 (HOLE 2)) 1) (IFTHENELSE F64 (NOTANUMBER I1 (SUBREG F64 (MEM I128 (HOLE 2)) 1)) (SUBREG F64 (MEM I128 (HOLE 2)) 1) (IFTHENELSE F64 (TSTLTS I1 (SUBREG F64 (REG I128 (HOLE 1 XMM)) 1) (SUBREG F64 (MEM I128 (HOLE 2)) 1)) (SUBREG F64 (REG I128 (HOLE 1 XMM)) 1) (SUBREG F64 (MEM I128 (HOLE 2)) 1)))))))) ;(REG I128 (HOLE 2 XMM)) ==> (MEM I128 (HOLE 2)) ;;;;;;;;;;;;;;;;;;;;;;;;;;; ; 5.6.1.2 パックド算術命令 ;Return Minimum Scalar Double-Precision Floating-Point Value ;;;;;;;;;;;;;;;;;;;;;;;;;;; ;MINSD xmm1, xmm2/m64 (DEFINST ("MINSD ?1x,?2x" "nil" "nil") (SET (SUBREG F64 (REG I128 (HOLE 1 XMM)) 0) (IFTHENELSE F64 (BAND I1 (TSTEQ I1 (SUBREG F64 (REG I128 (HOLE 1 XMM)) 0) (FLOATCONST F64 0.0)) (TSTEQ I1 (SUBREG F64 (REG I128 (HOLE 2 XMM)) 0) (FLOATCONST F64 0.0))) (SUBREG F64 (REG I128 (HOLE 2 XMM)) 0) (IFTHENELSE F64 (NOTANUMBER I1 (SUBREG F64 (REG I128 (HOLE 1 XMM)) 0)) (SUBREG F64 (REG I128 (HOLE 2 XMM)) 0) (IFTHENELSE F64 (NOTANUMBER I1 (SUBREG F64 (REG I128 (HOLE 2 XMM)) 0)) (SUBREG F64 (REG I128 (HOLE 2 XMM)) 0) (IFTHENELSE F64 (TSTLTS I1 (SUBREG F64 (REG I128 (HOLE 1 XMM)) 0) (SUBREG F64 (REG I128 (HOLE 2 XMM)) 0)) (SUBREG F64 (REG I128 (HOLE 1 XMM)) 0) (SUBREG F64 (REG I128 (HOLE 2 XMM)) 0))))))) (DEFINST ("MINSD ?1x,REAL8 PTR ??2s" "nil" "nil") (SET (SUBREG F64 (REG I128 (HOLE 1 XMM)) 0) (IFTHENELSE F64 (BAND I1 (TSTEQ I1 (SUBREG F64 (REG I128 (HOLE 1 XMM)) 0) (FLOATCONST F64 0.0)) (TSTEQ I1 (MEM F64 (HOLE 2)) (FLOATCONST F64 0.0))) (MEM F64 (HOLE 2)) (IFTHENELSE F64 (NOTANUMBER I1 (SUBREG F64 (REG I128 (HOLE 1 XMM)) 0)) (MEM F64 (HOLE 2)) (IFTHENELSE F64 (NOTANUMBER I1 (MEM F64 (HOLE 2))) (MEM F64 (HOLE 2)) (IFTHENELSE F64 (TSTLTS I1 (SUBREG F64 (REG I128 (HOLE 1 XMM)) 0) (MEM F64 (HOLE 2))) (SUBREG F64 (REG I128 (HOLE 1 XMM)) 0) (MEM F64 (HOLE 2)))))))) ;(SUBREG F64 (REG I128 (HOLE 2 XMM)) 0) ==> (MEM F64 (HOLE 2)) ;;;;;;;;;;;;;;;;;;;;;;;;;;; ; 5.6.1.2 パックド算術命令 ;Multiply Packed Double-Precision Floating-Point Values ;;;;;;;;;;;;;;;;;;;;;;;;;;; ;MULPD xmm1, xmm2/m128 (DEFINST ("MULPD ?1x,?2x" "nil" "nil") (PARALLEL (SET (SUBREG F64 (REG I128 (HOLE 1 XMM)) 0) (MUL F64 (SUBREG F64 (REG I128 (HOLE 1 XMM)) 0) (SUBREG F64 (REG I128 (HOLE 2 XMM)) 0))) (SET (SUBREG F64 (REG I128 (HOLE 1 XMM)) 1) (MUL F64 (SUBREG F64 (REG I128 (HOLE 1 XMM)) 1) (SUBREG F64 (REG I128 (HOLE 2 XMM)) 1))))) (DEFINST ("MULPD ?1x,REAL8 PTR ??2s" "nil" "nil") (PARALLEL (SET (SUBREG F64 (REG I128 (HOLE 1 XMM)) 0) (MUL F64 (SUBREG F64 (REG I128 (HOLE 1 XMM)) 0) (SUBREG F64 (MEM I128 (HOLE 2)) 0))) (SET (SUBREG F64 (REG I128 (HOLE 1 XMM)) 1) (MUL F64 (SUBREG F64 (REG I128 (HOLE 1 XMM)) 1) (SUBREG F64 (MEM I128 (HOLE 2)) 1))))) ;(REG I128 (HOLE 2 XMM)) ==> (MEM I128 (HOLE 2)) ;;;;;;;;;;;;;;;;;;;;;;;;;;; ; 5.6.1.2 パックド算術命令 ;Multiply Scalar Double-Precision Floating-Point Values ;;;;;;;;;;;;;;;;;;;;;;;;;;; ;MULSD xmm1, xmm2/m64 (DEFINST ("MULSD ?1x,?2x" "nil" "nil") (SET (SUBREG F64 (REG I128 (HOLE 1 XMM)) 0) (MUL F64 (SUBREG F64 (REG I128 (HOLE 1 XMM)) 0) (SUBREG F64 (REG I128 (HOLE 2 XMM)) 0)))) (DEFINST ("MULSD ?1x,REAL8 PTR ??2s" "nil" "nil") (SET (SUBREG F64 (REG I128 (HOLE 1 XMM)) 0) (MUL F64 (SUBREG F64 (REG I128 (HOLE 1 XMM)) 0) (MEM F64 (HOLE 2))))) ;(SUBREG F64 (REG I128 (HOLE 2 XMM)) 0) ==> (MEM F64 (HOLE 2)) ;;;;;;;;;;;;;;;;;;;;;;;;;;; ; 5.6.1.2 パックド算術命令 ;Compute Square Roots of Packed Double-Precision ;Floating-Point Values ;;;;;;;;;;;;;;;;;;;;;;;;;;; ;SQRTPD 除外 ;;;;;;;;;;;;;;;;;;;;;;;;;;; ; 5.6.1.2 パックド算術命令 ;Compute Square Root of Scalar Double-Precision ;Floating-Point Value ;;;;;;;;;;;;;;;;;;;;;;;;;;; ;SQRTSD 除外 ;;;;;;;;;;;;;;;;;;;;;;;;;;; ; 5.6.1.2 パックド算術命令 ;Subtract Packed Double-Precision Floating-Point Values ;;;;;;;;;;;;;;;;;;;;;;;;;;; ;SUBPD xmm1, xmm2/m128 (DEFINST ("SUBPD ?1x,?2x" "nil" "nil") (PARALLEL (SET (SUBREG F64 (REG I128 (HOLE 1 XMM)) 0) (SUB F64 (SUBREG F64 (REG I128 (HOLE 1 XMM)) 0) (SUBREG F64 (REG I128 (HOLE 2 XMM)) 0))) (SET (SUBREG F64 (REG I128 (HOLE 1 XMM)) 1) (SUB F64 (SUBREG F64 (REG I128 (HOLE 1 XMM)) 1) (SUBREG F64 (REG I128 (HOLE 2 XMM)) 1))))) (DEFINST ("SUBPD ?1x,REAL8 PTR ??2s" "nil" "nil") (PARALLEL (SET (SUBREG F64 (REG I128 (HOLE 1 XMM)) 0) (SUB F64 (SUBREG F64 (REG I128 (HOLE 1 XMM)) 0) (SUBREG F64 (MEM I128 (HOLE 2)) 0))) (SET (SUBREG F64 (REG I128 (HOLE 1 XMM)) 1) (SUB F64 (SUBREG F64 (REG I128 (HOLE 1 XMM)) 1) (SUBREG F64 (MEM I128 (HOLE 2)) 1))))) ;(REG I128 (HOLE 2 XMM)) ==> (MEM I128 (HOLE 2)) ;;;;;;;;;;;;;;;;;;;;;;;;;;; ; 5.6.1.2 パックド算術命令 ;Subtract Scalar Double-Precision Floating-Point Values ;;;;;;;;;;;;;;;;;;;;;;;;;;; ;SUBSD xmm1, xmm2/m64 (DEFINST ("SUBSD ?1x,?2x" "nil" "nil") (SET (SUBREG F64 (REG I128 (HOLE 1 XMM)) 0) (SUB F64 (SUBREG F64 (REG I128 (HOLE 1 XMM)) 0) (SUBREG F64 (REG I128 (HOLE 2 XMM)) 0)))) (DEFINST ("SUBSD ?1x,REAL8 PTR ??2s" "nil" "nil") (SET (SUBREG F64 (REG I128 (HOLE 1 XMM)) 0) (SUB F64 (SUBREG F64 (REG I128 (HOLE 1 XMM)) 0) (MEM F64 (HOLE 2))))) ;(SUBREG F64 (REG I128 (HOLE 2 XMM)) 0) ==> (MEM F64 (HOLE 2)) ;;;;;;;;;;;;;;;;;;;;;;;;;;; ; 5.6.1.3 論理演算命令 ;Bitwise Logical AND NOT of Packed Double-Precision ;Floating-Point Values ;;;;;;;;;;;;;;;;;;;;;;;;;;; ;ANDNPD xmm1, xmm2/m128 (DEFINST ("ANDNPD ?1x,?2x" "nil" "nil") (PARALLEL (SET (SUBREG F64 (REG I128 (HOLE 1 XMM)) 0) (BAND F64 (BNOT F64 (SUBREG F64 (REG I128 (HOLE 1 XMM)) 0)) (SUBREG F64 (REG I128 (HOLE 2 XMM)) 0))) (SET (SUBREG F64 (REG I128 (HOLE 1 XMM)) 1) (BAND F64 (BNOT F64 (SUBREG F64 (REG I128 (HOLE 1 XMM)) 1)) (SUBREG F64 (REG I128 (HOLE 2 XMM)) 1))))) (DEFINST ("ANDNPD ?1x,REAL8 PTR ??2s" "nil" "nil") (PARALLEL (SET (SUBREG F64 (REG I128 (HOLE 1 XMM)) 0) (BAND F64 (BNOT F64 (SUBREG F64 (REG I128 (HOLE 1 XMM)) 0)) (SUBREG F64 (MEM I128 (HOLE 2)) 0))) (SET (SUBREG F64 (REG I128 (HOLE 1 XMM)) 1) (BAND F64 (BNOT F64 (SUBREG F64 (REG I128 (HOLE 1 XMM)) 1)) (SUBREG F64 (MEM I128 (HOLE 2)) 1))))) ;(REG I128 (HOLE 2 XMM)) ==> (MEM I128 (HOLE 2)) ;;;;;;;;;;;;;;;;;;;;;;;;;;; ; 5.6.1.3 論理演算命令 ;Bitwise Logical AND of Packed Double-Precision ;Floating-Point Values ;;;;;;;;;;;;;;;;;;;;;;;;;;; ;ANDPD xmm1, xmm2/m128 (DEFINST ("ANDPD ?1x,?2x" "nil" "nil") (PARALLEL (SET (SUBREG F64 (REG I128 (HOLE 1 XMM)) 0) (BAND F64 (SUBREG F64 (REG I128 (HOLE 1 XMM)) 0) (SUBREG F64 (REG I128 (HOLE 2 XMM)) 0))) (SET (SUBREG F64 (REG I128 (HOLE 1 XMM)) 1) (BAND F64 (SUBREG F64 (REG I128 (HOLE 1 XMM)) 1) (SUBREG F64 (REG I128 (HOLE 2 XMM)) 1))))) (DEFINST ("ANDPD ?1x,REAL8 PTR ??2s" "nil" "nil") (PARALLEL (SET (SUBREG F64 (REG I128 (HOLE 1 XMM)) 0) (BAND F64 (SUBREG F64 (REG I128 (HOLE 1 XMM)) 0) (SUBREG F64 (MEM I128 (HOLE 2)) 0))) (SET (SUBREG F64 (REG I128 (HOLE 1 XMM)) 1) (BAND F64 (SUBREG F64 (REG I128 (HOLE 1 XMM)) 1) (SUBREG F64 (MEM I128 (HOLE 2)) 1))))) ;(REG I128 (HOLE 2 XMM)) ==> (MEM I128 (HOLE 2)) ;;;;;;;;;;;;;;;;;;;;;;;;;;; ; 5.6.1.3 論理演算命令 ;Bitwise Logical OR of Double-Precision Floating-Point Values ;;;;;;;;;;;;;;;;;;;;;;;;;;; ;ORPD xmm1, xmm2/m128 (DEFINST ("ORPD ?1x,?2x" "nil" "nil") (PARALLEL (SET (SUBREG F64 (REG I128 (HOLE 1 XMM)) 0) (BOR F64 (SUBREG F64 (REG I128 (HOLE 1 XMM)) 0) (SUBREG F64 (REG I128 (HOLE 2 XMM)) 0))) (SET (SUBREG F64 (REG I128 (HOLE 1 XMM)) 1) (BOR F64 (SUBREG F64 (REG I128 (HOLE 1 XMM)) 1) (SUBREG F64 (REG I128 (HOLE 2 XMM)) 1))))) (DEFINST ("ORPD ?1x,REAL8 PTR ??2s" "nil" "nil") (PARALLEL (SET (SUBREG F64 (REG I128 (HOLE 1 XMM)) 0) (BOR F64 (SUBREG F64 (REG I128 (HOLE 1 XMM)) 0) (SUBREG F64 (MEM I128 (HOLE 2)) 0))) (SET (SUBREG F64 (REG I128 (HOLE 1 XMM)) 1) (BOR F64 (SUBREG F64 (REG I128 (HOLE 1 XMM)) 1) (SUBREG F64 (MEM I128 (HOLE 2)) 1))))) ;(REG I128 (HOLE 2 XMM)) ==> (MEM I128 (HOLE 2)) ;;;;;;;;;;;;;;;;;;;;;;;;;;; ; 5.6.1.3 論理演算命令 ;Bitwise Logical XOR for Double-Precision Floating-Point Values ;;;;;;;;;;;;;;;;;;;;;;;;;;; ;XORPD xmm1, xmm2/m128 (DEFINST ("XORPD ?1x,?2x" "nil" "nil") (PARALLEL (SET (SUBREG F64 (REG I128 (HOLE 1 XMM)) 0) (BXOR F64 (SUBREG F64 (REG I128 (HOLE 1 XMM)) 0) (SUBREG F64 (REG I128 (HOLE 2 XMM)) 0))) (SET (SUBREG F64 (REG I128 (HOLE 1 XMM)) 1) (BXOR F64 (SUBREG F64 (REG I128 (HOLE 1 XMM)) 1) (SUBREG F64 (REG I128 (HOLE 2 XMM)) 1))))) (DEFINST ("XORPD ?1x,REAL8 PTR ??2s" "nil" "nil") (PARALLEL (SET (SUBREG F64 (REG I128 (HOLE 1 XMM)) 0) (BXOR F64 (SUBREG F64 (REG I128 (HOLE 1 XMM)) 0) (SUBREG F64 (MEM I128 (HOLE 2)) 0))) (SET (SUBREG F64 (REG I128 (HOLE 1 XMM)) 1) (BXOR F64 (SUBREG F64 (REG I128 (HOLE 1 XMM)) 1) (SUBREG F64 (MEM I128 (HOLE 2)) 1))))) ;(REG I128 (HOLE 2 XMM)) ==> (MEM I128 (HOLE 2)) ;;;;;;;;;;;;;;;;;;;;;;;;;;; ; 5.6.1.4 比較命令 ;Compare Packed Double-Precision Floating-Point Values ;CMPPD xmm1, xmm2, 0 ;;;;;;;;;;;;;;;;;;;;;;;;;;; ;CMPEQPD xmm1, xmm2 (DEFINST ("DB 66H\nCMPEQPS ?1x,?2x" "nil" "nil") (PARALLEL (SET (SUBREG F64 (REG I128 (HOLE 1 XMM)) 0) (TSTEQ F64 (SUBREG F64 (REG I128 (HOLE 1 XMM)) 0) (SUBREG F64 (REG I128 (HOLE 2 XMM)) 0))) (SET (SUBREG F64 (REG I128 (HOLE 1 XMM)) 1) (TSTEQ F64 (SUBREG F64 (REG I128 (HOLE 1 XMM)) 1) (SUBREG F64 (REG I128 (HOLE 2 XMM)) 1))))) ;CMPEQPD xmm1, m128, imm8 (DEFINST ("DB 66H\nCMPEQPS ?1x,REAL8 PTR ??2s" "nil" "nil") (PARALLEL (SET (SUBREG F64 (REG I128 (HOLE 1 XMM)) 0) (TSTEQ F64 (SUBREG F64 (REG I128 (HOLE 1 XMM)) 0) (SUBREG F64 (MEM I128 (HOLE 2)) 0))) (SET (SUBREG F64 (REG I128 (HOLE 1 XMM)) 1) (TSTEQ F64 (SUBREG F64 (REG I128 (HOLE 1 XMM)) 1) (SUBREG F64 (MEM I128 (HOLE 2)) 1))))) ;(REG I128 (HOLE 2 XMM)) ==> (MEM I128 (HOLE 2)) ;;;;;;;;;;;;;;;;;;;;;;;;;;; ; 5.6.1.4 比較命令 ;Compare Scalar Double-Precision Floating-Point Values ;CMPSD xmm1, xmm2, 0 ;;;;;;;;;;;;;;;;;;;;;;;;;;; ;CMPEQSD xmm1, xmm2 (DEFINST ("DB 0F2H\nCMPEQPS ?1x,?2x" "nil" "nil") (SET (SUBREG F64 (REG I128 (HOLE 1 XMM)) 0) (TSTEQ F64 (SUBREG F64 (REG I128 (HOLE 1 XMM)) 0) (SUBREG F64 (REG I128 (HOLE 2 XMM)) 0)))) ;CMPEQSD xmm1, m64 (DEFINST ("DB 0F2H\nCMPEQPS ?1x,REAL8 PTR ??2s" "nil" "nil") (SET (SUBREG F64 (REG I128 (HOLE 1 XMM)) 0) (TSTEQ F64 (SUBREG F64 (REG I128 (HOLE 1 XMM)) 0) (SUBREG F64 (MEM I128 (HOLE 2)) 0)))) ;(SUBREG F64 (REG I128 (HOLE 2 XMM)) 0) ==> (MEM F64 (HOLE 2)) ;;;;;;;;;;;;;;;;;;;;;;;;;;; ; 5.6.1.4 比較命令 ;Compare Packed Double-Precision Floating-Point Values ;CMPPD xmm1, xmm2, 2 ;;;;;;;;;;;;;;;;;;;;;;;;;;; ;CMPLEPD xmm1, xmm2 (DEFINST ("DB 66H\nCMPLEPS ?1x,?2x" "nil" "nil") (PARALLEL (SET (SUBREG F64 (REG I128 (HOLE 1 XMM)) 0) (TSTLES F64 (SUBREG F64 (REG I128 (HOLE 1 XMM)) 0) (SUBREG F64 (REG I128 (HOLE 2 XMM)) 0))) (SET (SUBREG F64 (REG I128 (HOLE 1 XMM)) 1) (TSTLES F64 (SUBREG F64 (REG I128 (HOLE 1 XMM)) 1) (SUBREG F64 (REG I128 (HOLE 2 XMM)) 1))))) ;CMPLEPD xmm1, m128 (DEFINST ("DB 66H\nCMPLEPS ?1x,REAL8 PTR ??2s" "nil" "nil") (PARALLEL (SET (SUBREG F64 (REG I128 (HOLE 1 XMM)) 0) (TSTLES F64 (SUBREG F64 (REG I128 (HOLE 1 XMM)) 0) (SUBREG F64 (MEM I128 (HOLE 2)) 0))) (SET (SUBREG F64 (REG I128 (HOLE 1 XMM)) 1) (TSTLES F64 (SUBREG F64 (REG I128 (HOLE 1 XMM)) 1) (SUBREG F64 (MEM I128 (HOLE 2)) 1))))) ;(REG I128 (HOLE 2 XMM)) ==> (MEM I128 (HOLE 2)) ;;;;;;;;;;;;;;;;;;;;;;;;;;; ; 5.6.1.4 比較命令 ;Compare Scalar Double-Precision Floating-Point Values ;CMPSD xmm1, xmm2, 2 ;;;;;;;;;;;;;;;;;;;;;;;;;;; ;CMPLESD xmm1, xmm2 (DEFINST ("DB 0F2H\nCMPLEPS ?1x,?2x" "nil" "nil") (SET (SUBREG F64 (REG I128 (HOLE 1 XMM)) 0) (TSTLES F64 (SUBREG F64 (REG I128 (HOLE 1 XMM)) 0) (SUBREG F64 (REG I128 (HOLE 2 XMM)) 0)))) ;CMPLESD xmm1, m64 (DEFINST ("DB 0F2H\nCMPLEPS ?1x,REAL8 PTR ??2s" "nil" "nil") (SET (SUBREG F64 (REG I128 (HOLE 1 XMM)) 0) (TSTLES F64 (SUBREG F64 (REG I128 (HOLE 1 XMM)) 0) (SUBREG F64 (MEM I128 (HOLE 2)) 0)))) ;(SUBREG F64 (REG I128 (HOLE 2 XMM)) 0) ==> (MEM F64 (HOLE 2)) ;;;;;;;;;;;;;;;;;;;;;;;;;;; ; 5.6.1.4 比較命令 ;Compare Packed Double-Precision Floating-Point Values ;CMPPD xmm1, xmm2, 1 ;;;;;;;;;;;;;;;;;;;;;;;;;;; ;CMPLTPD xmm1, xmm2 (DEFINST ("DB 66H\nCMPLTPS ?1x,?2x" "nil" "nil") (PARALLEL (SET (SUBREG F64 (REG I128 (HOLE 1 XMM)) 0) (TSTLTS F64 (SUBREG F64 (REG I128 (HOLE 1 XMM)) 0) (SUBREG F64 (REG I128 (HOLE 2 XMM)) 0))) (SET (SUBREG F64 (REG I128 (HOLE 1 XMM)) 1) (TSTLTS F64 (SUBREG F64 (REG I128 (HOLE 1 XMM)) 1) (SUBREG F64 (REG I128 (HOLE 2 XMM)) 1))))) ;CMPLTPD xmm1, m128 (DEFINST ("DB 66H\nCMPLTPS ?1x,REAL8 PTR ??2s" "nil" "nil") (PARALLEL (SET (SUBREG F64 (REG I128 (HOLE 1 XMM)) 0) (TSTLTS F64 (SUBREG F64 (REG I128 (HOLE 1 XMM)) 0) (SUBREG F64 (MEM I128 (HOLE 2)) 0))) (SET (SUBREG F64 (REG I128 (HOLE 1 XMM)) 1) (TSTLTS F64 (SUBREG F64 (REG I128 (HOLE 1 XMM)) 1) (SUBREG F64 (MEM I128 (HOLE 2)) 1))))) ;(REG I128 (HOLE 2 XMM)) ==> (MEM I128 (HOLE 2)) ;;;;;;;;;;;;;;;;;;;;;;;;;;; ; 5.6.1.4 比較命令 ;Compare Scalar Double-Precision Floating-Point Values ;CMPSD xmm1, xmm2, 1 ;;;;;;;;;;;;;;;;;;;;;;;;;;; ;CMPLTSD xmm1, xmm2 (DEFINST ("DB 0F2H\nCMPLTPS ?1x,?2x" "nil" "nil") (SET (SUBREG F64 (REG I128 (HOLE 1 XMM)) 0) (TSTLTS F64 (SUBREG F64 (REG I128 (HOLE 1 XMM)) 0) (SUBREG F64 (REG I128 (HOLE 2 XMM)) 0)))) ;CMPLTSD xmm1, m64 (DEFINST ("DB 0F2H\nCMPLTPS ?1x,REAL8 PTR ??2s" "nil" "nil") (SET (SUBREG F64 (REG I128 (HOLE 1 XMM)) 0) (TSTLTS F64 (SUBREG F64 (REG I128 (HOLE 1 XMM)) 0) (SUBREG F64 (MEM I128 (HOLE 2)) 0)))) ;(SUBREG F64 (REG I128 (HOLE 2 XMM)) 0) ==> (MEM F64 (HOLE 2)) ;;;;;;;;;;;;;;;;;;;;;;;;;;; ; 5.6.1.4 比較命令 ;Compare Packed Double-Precision Floating-Point Values ;CMPPD xmm1, xmm2,4 ;;;;;;;;;;;;;;;;;;;;;;;;;;; ;CMPNEQPD xmm1, xmm2 (DEFINST ("DB 66H\nCMPNEQPS ?1x,?2x" "nil" "nil") (PARALLEL (SET (SUBREG F64 (REG I128 (HOLE 1 XMM)) 0) (TSTNE F64 (SUBREG F64 (REG I128 (HOLE 1 XMM)) 0) (SUBREG F64 (REG I128 (HOLE 2 XMM)) 0))) (SET (SUBREG F64 (REG I128 (HOLE 1 XMM)) 1) (TSTNE F64 (SUBREG F64 (REG I128 (HOLE 1 XMM)) 1) (SUBREG F64 (REG I128 (HOLE 2 XMM)) 1))))) ;CMPNEQPD xmm1, m128 (DEFINST ("DB 66H\nCMPNEQPS ?1x,REAL8 PTR ??2s" "nil" "nil") (PARALLEL (SET (SUBREG F64 (REG I128 (HOLE 1 XMM)) 0) (TSTNE F64 (SUBREG F64 (REG I128 (HOLE 1 XMM)) 0) (SUBREG F64 (MEM I128 (HOLE 2)) 0))) (SET (SUBREG F64 (REG I128 (HOLE 1 XMM)) 1) (TSTNE F64 (SUBREG F64 (REG I128 (HOLE 1 XMM)) 1) (SUBREG F64 (MEM I128 (HOLE 2)) 1))))) ;(REG I128 (HOLE 2 XMM)) ==> (MEM I128 (HOLE 2)) ;;;;;;;;;;;;;;;;;;;;;;;;;;; ; 5.6.1.4 比較命令 ;Compare Scalar Double-Precision Floating-Point Values ;CMPSD xmm1, xmm2, 4 ;;;;;;;;;;;;;;;;;;;;;;;;;;; ;CMPNEQSD xmm1, xmm2 (DEFINST ("DB 0F2H\nCMPNEQPS ?1x,?2x" "nil" "nil") (SET (SUBREG F64 (REG I128 (HOLE 1 XMM)) 0) (TSTNE F64 (SUBREG F64 (REG I128 (HOLE 1 XMM)) 0) (SUBREG F64 (REG I128 (HOLE 2 XMM)) 0)))) ;CMPNEQSD xmm1, m64 (DEFINST ("DB 0F2H\nCMPNEQPS ?1x,REAL8 PTR ??2s" "nil" "nil") (SET (SUBREG F64 (REG I128 (HOLE 1 XMM)) 0) (TSTNE F64 (SUBREG F64 (REG I128 (HOLE 1 XMM)) 0) (SUBREG F64 (MEM I128 (HOLE 2)) 0)))) ;(SUBREG F64 (REG I128 (HOLE 2 XMM)) 0) ==> (MEM F64 (HOLE 2)) ;;;;;;;;;;;;;;;;;;;;;;;;;;; ; 5.6.1.4 比較命令 ;Compare Packed Double-Precision Floating-Point Values ;CMPPD xmm1, xmm2, 6 ;;;;;;;;;;;;;;;;;;;;;;;;;;; ;CMPNLEPD xmm1, xmm2 (DEFINST ("DB 66H\nCMPNLEPS ?1x,?2x" "nil" "nil") (PARALLEL (SET (SUBREG F64 (REG I128 (HOLE 1 XMM)) 0) (TSTGTS F64 (SUBREG F64 (REG I128 (HOLE 1 XMM)) 0) (SUBREG F64 (REG I128 (HOLE 2 XMM)) 0))) (SET (SUBREG F64 (REG I128 (HOLE 1 XMM)) 1) (TSTGTS F64 (SUBREG F64 (REG I128 (HOLE 1 XMM)) 1) (SUBREG F64 (REG I128 (HOLE 2 XMM)) 1))))) ;CMPNLEPD xmm1, m128 (DEFINST ("DB 66H\nCMPNLEPS ?1x,REAL8 PTR ??2s" "nil" "nil") (PARALLEL (SET (SUBREG F64 (REG I128 (HOLE 1 XMM)) 0) (TSTGTS F64 (SUBREG F64 (REG I128 (HOLE 1 XMM)) 0) (SUBREG F64 (MEM I128 (HOLE 2)) 0))) (SET (SUBREG F64 (REG I128 (HOLE 1 XMM)) 1) (TSTGTS F64 (SUBREG F64 (REG I128 (HOLE 1 XMM)) 1) (SUBREG F64 (MEM I128 (HOLE 2)) 1))))) ;(REG I128 (HOLE 2 XMM)) ==> (MEM I128 (HOLE 2)) ;;;;;;;;;;;;;;;;;;;;;;;;;;; ; 5.6.1.4 比較命令 ;Compare Scalar Double-Precision Floating-Point Values ;CMPSD xmm1, xmm2, 6 ;;;;;;;;;;;;;;;;;;;;;;;;;;; ;CMPNLESD xmm1, xmm2 (DEFINST ("DB 0F2H\nCMPNLEPS ?1x,?2x" "nil" "nil") (SET (SUBREG F64 (REG I128 (HOLE 1 XMM)) 0) (TSTGTS F64 (SUBREG F64 (REG I128 (HOLE 1 XMM)) 0) (SUBREG F64 (REG I128 (HOLE 2 XMM)) 0)))) ;CMPNLESD xmm1, m64 (DEFINST ("DB 0F2H\nCMPNLEPS ?1x,REAL8 PTR ??2s" "nil" "nil") (SET (SUBREG F64 (REG I128 (HOLE 1 XMM)) 0) (TSTGTS F64 (SUBREG F64 (REG I128 (HOLE 1 XMM)) 0) (SUBREG F64 (MEM I128 (HOLE 2)) 0)))) ;(SUBREG F64 (REG I128 (HOLE 2 XMM)) 0) ==> (MEM F64 (HOLE 2)) ;;;;;;;;;;;;;;;;;;;;;;;;;;; ; 5.6.1.4 比較命令 ;Compare Packed Double-Precision Floating-Point Values ;CMPPD xmm1, xmm2, 5 ;;;;;;;;;;;;;;;;;;;;;;;;;;; ;CMPNLTPD xmm1, xmm2 (DEFINST ("DB 66H\nCMPNLTPS ?1x,?2x" "nil" "nil") (PARALLEL (SET (SUBREG F64 (REG I128 (HOLE 1 XMM)) 0) (TSTGES F64 (SUBREG F64 (REG I128 (HOLE 1 XMM)) 0) (SUBREG F64 (REG I128 (HOLE 2 XMM)) 0))) (SET (SUBREG F64 (REG I128 (HOLE 1 XMM)) 1) (TSTGES F64 (SUBREG F64 (REG I128 (HOLE 1 XMM)) 1) (SUBREG F64 (REG I128 (HOLE 2 XMM)) 1))))) ;CMPNLTPD xmm1, m128 (DEFINST ("DB 66H\nCMPNLTPS ?1x,REAL8 PTR ??2s" "nil" "nil") (PARALLEL (SET (SUBREG F64 (REG I128 (HOLE 1 XMM)) 0) (TSTGES F64 (SUBREG F64 (REG I128 (HOLE 1 XMM)) 0) (SUBREG F64 (MEM I128 (HOLE 2)) 0))) (SET (SUBREG F64 (REG I128 (HOLE 1 XMM)) 1) (TSTGES F64 (SUBREG F64 (REG I128 (HOLE 1 XMM)) 1) (SUBREG F64 (MEM I128 (HOLE 2)) 1))))) ;(REG I128 (HOLE 2 XMM)) ==> (MEM I128 (HOLE 2)) ;;;;;;;;;;;;;;;;;;;;;;;;;;; ; 5.6.1.4 比較命令 ;Compare Scalar Double-Precision Floating-Point Values ;CMPSD xmm1, xmm2, 5 ;;;;;;;;;;;;;;;;;;;;;;;;;;; ;CMPNLTSD xmm1, xmm2 (DEFINST ("DB 0F2H\nCMPNLTPS ?1x,?2x" "nil" "nil") (SET (SUBREG F64 (REG I128 (HOLE 1 XMM)) 0) (TSTGES F64 (SUBREG F64 (REG I128 (HOLE 1 XMM)) 0) (SUBREG F64 (REG I128 (HOLE 2 XMM)) 0)))) ;CMPNLTSD xmm1, m64 (DEFINST ("DB 0F2H\nCMPNLTPS ?1x,REAL8 PTR ??2s" "nil" "nil") (SET (SUBREG F64 (REG I128 (HOLE 1 XMM)) 0) (TSTGES F64 (SUBREG F64 (REG I128 (HOLE 1 XMM)) 0) (SUBREG F64 (MEM I128 (HOLE 2)) 0)))) ;(SUBREG F64 (REG I128 (HOLE 2 XMM)) 0) ==> (MEM F64 (HOLE 2)) ;;;;;;;;;;;;;;;;;;;;;;;;;;; ; 5.6.1.4 比較命令 ;Compare Packed Double-Precision Floating-Point Values ;CMPPD xmm1, xmm2, 7 ;;;;;;;;;;;;;;;;;;;;;;;;;;; ;CMPORDPD xmm1, xmm2 (DEFINST ("DB 66H\nCMPORDPS ?1x,?2x" "nil" "nil") (PARALLEL (SET (SUBREG F64 (REG I128 (HOLE 1 XMM)) 0) (BNOT F64 (BOR F64 (NOTANUMBER F64 (SUBREG F64 (REG I128 (HOLE 1 XMM)) 0)) (NOTANUMBER F64 (SUBREG F64 (REG I128 (HOLE 2 XMM)) 0))))) (SET (SUBREG F64 (REG I128 (HOLE 1 XMM)) 1) (BNOT F64 (BOR F64 (NOTANUMBER F64 (SUBREG F64 (REG I128 (HOLE 1 XMM)) 1)) (NOTANUMBER F64 (SUBREG F64 (REG I128 (HOLE 2 XMM)) 1))))))) ;CMPORDPD xmm1, m128 (DEFINST ("DB 66H\nCMPORDPS ?1x,REAL8 PTR ??2s" "nil" "nil") (PARALLEL (SET (SUBREG F64 (REG I128 (HOLE 1 XMM)) 0) (BNOT F64 (BOR F64 (NOTANUMBER F64 (SUBREG F64 (REG I128 (HOLE 1 XMM)) 0)) (NOTANUMBER F64 (SUBREG F64 (MEM I128 (HOLE 2)) 0))))) (SET (SUBREG F64 (REG I128 (HOLE 1 XMM)) 1) (BNOT F64 (BOR F64 (NOTANUMBER F64 (SUBREG F64 (REG I128 (HOLE 1 XMM)) 1)) (NOTANUMBER F64 (SUBREG F64 (MEM I128 (HOLE 2)) 1))))))) ;(REG I128 (HOLE 2 XMM)) ==> (MEM I128 (HOLE 2)) ;;;;;;;;;;;;;;;;;;;;;;;;;;; ; 5.6.1.4 比較命令 ;Compare Scalar Double-Precision Floating-Point Values ;CMPSD xmm1, xmm2, 7 ;;;;;;;;;;;;;;;;;;;;;;;;;;; ;CMPORDSD xmm1, xmm2 (DEFINST ("DB 0F2H\nCMPORDPS ?1x,?2x" "nil" "nil") (SET (SUBREG F64 (REG I128 (HOLE 1 XMM)) 0) (BNOT F64 (BOR F64 (NOTANUMBER F64 (SUBREG F64 (REG I128 (HOLE 1 XMM)) 0)) (NOTANUMBER F64 (SUBREG F64 (REG I128 (HOLE 2 XMM)) 0)))))) ;CMPORDSD xmm1, m64 (DEFINST ("DB 0F2H\nCMPORDPS ?1x,REAL8 PTR ??2s" "nil" "nil") (SET (SUBREG F64 (REG I128 (HOLE 1 XMM)) 0) (BNOT F64 (BOR F64 (NOTANUMBER F64 (SUBREG F64 (REG I128 (HOLE 1 XMM)) 0)) (NOTANUMBER F64 (SUBREG F64 (MEM I128 (HOLE 2)) 0)))))) ;(SUBREG F64 (REG I128 (HOLE 2 XMM)) 0) ==> (MEM F64 (HOLE 2)) ;;;;;;;;;;;;;;;;;;;;;;;;;;; ; 5.6.1.4 比較命令 ;Compare Packed Double-Precision Floating-Point Values ;CMPPD xmm1, xmm2, 3 ;;;;;;;;;;;;;;;;;;;;;;;;;;; ;CMPUNORDPD xmm1, xmm2 (DEFINST ("DB 66H\nCMPUNORDPS ?1x,?2x" "nil" "nil") (PARALLEL (SET (SUBREG F64 (REG I128 (HOLE 1 XMM)) 0) (BOR F64 (NOTANUMBER F64 (SUBREG F64 (REG I128 (HOLE 1 XMM)) 0)) (NOTANUMBER F64 (SUBREG F64 (REG I128 (HOLE 2 XMM)) 0)))) (SET (SUBREG F64 (REG I128 (HOLE 1 XMM)) 1) (BOR F64 (NOTANUMBER F64 (SUBREG F64 (REG I128 (HOLE 1 XMM)) 1)) (NOTANUMBER F64 (SUBREG F64 (REG I128 (HOLE 2 XMM)) 1)))))) ;CMPUNORDPD xmm1, m128 (DEFINST ("DB 66H\nCMPUNORDPS ?1x,REAL8 PTR ??2s" "nil" "nil") (PARALLEL (SET (SUBREG F64 (REG I128 (HOLE 1 XMM)) 0) (BOR F64 (NOTANUMBER F64 (SUBREG F64 (REG I128 (HOLE 1 XMM)) 0)) (NOTANUMBER F64 (SUBREG F64 (MEM I128 (HOLE 2)) 0)))) (SET (SUBREG F64 (REG I128 (HOLE 1 XMM)) 1) (BOR F64 (NOTANUMBER F64 (SUBREG F64 (REG I128 (HOLE 1 XMM)) 1)) (NOTANUMBER F64 (SUBREG F64 (MEM I128 (HOLE 2)) 1)))))) ;(REG I128 (HOLE 2 XMM)) ==> (MEM I128 (HOLE 2)) ;;;;;;;;;;;;;;;;;;;;;;;;;;; ; 5.6.1.4 比較命令 ;Compare Scalar Double-Precision Floating-Point Values ;CMPSD xmm1, xmm2, 3 ;;;;;;;;;;;;;;;;;;;;;;;;;;; ;CMPUNORDSD xmm1, xmm2 (DEFINST ("DB 0F2H\nCMPUNORDPS ?1x,?2x" "nil" "nil") (SET (SUBREG F64 (REG I128 (HOLE 1 XMM)) 0) (BOR F64 (NOTANUMBER F64 (SUBREG F64 (REG I128 (HOLE 1 XMM)) 0)) (NOTANUMBER F64 (SUBREG F64 (REG I128 (HOLE 2 XMM)) 0))))) ;CMPUNORDSD xmm1, m64 (DEFINST ("DB 0F2H\nCMPUNORDPS ?1x,REAL8 PTR ??2s" "nil" "nil") (SET (SUBREG F64 (REG I128 (HOLE 1 XMM)) 0) (BOR F64 (NOTANUMBER F64 (SUBREG F64 (REG I128 (HOLE 1 XMM)) 0)) (NOTANUMBER F64 (SUBREG F64 (MEM I128 (HOLE 2)) 0))))) ;(SUBREG F64 (REG I128 (HOLE 2 XMM)) 0) ==> (MEM F64 (HOLE 2)) ;;;;;;;;;;;;;;;;;;;;;;;;;;; ; 5.6.1.4 比較命令 ;Compare Scalar Ordered Double-Precision Floating-Point ;Values and Set EFLAGS ;;;;;;;;;;;;;;;;;;;;;;;;;;; ;COMISD xmm1, xmm2 (DEFINST ("COMISD ?1x,?2x" "nil" "nil") (PARALLEL (SET (REG I1 CF) (IFTHENELSE I1 (BOR I1 (BOR I1 (NOTANUMBER I1 (SUBREG F64 (REG I128 (HOLE 1 XMM)) 0)) (NOTANUMBER I1 (SUBREG F64 (REG I128 (HOLE 2 XMM)) 0))) (TSTLTS I1 (SUBREG F64 (REG I128 (HOLE 1 XMM)) 0) (SUBREG F64 (REG I128 (HOLE 2 XMM)) 0))) (INTCONST I1 1) (IFTHENELSE I1 (BOR I1 (TSTGTS I1 (SUBREG F64 (REG I128 (HOLE 1 XMM)) 0) (SUBREG F64 (REG I128 (HOLE 2 XMM)) 0)) (TSTEQ I1 (SUBREG F64 (REG I128 (HOLE 1 XMM)) 0) (SUBREG F64 (REG I128 (HOLE 2 XMM)) 0))) (INTCONST I1 0) (INTCONST I1 1)))) (SET (REG I1 PF) (IFTHENELSE I1 (BOR I1 (NOTANUMBER I1 (SUBREG F64 (REG I128 (HOLE 1 XMM)) 0)) (NOTANUMBER I1 (SUBREG F64 (REG I128 (HOLE 2 XMM)) 0))) (INTCONST I1 1) (IFTHENELSE I1 (BOR I1 (BOR I1 (TSTGTS I1 (SUBREG F64 (REG I128 (HOLE 1 XMM)) 0) (SUBREG F64 (REG I128 (HOLE 2 XMM)) 0)) (TSTLTS I1 (SUBREG F64 (REG I128 (HOLE 1 XMM)) 0) (SUBREG F64 (REG I128 (HOLE 2 XMM)) 0))) (TSTEQ I1 (SUBREG F64 (REG I128 (HOLE 1 XMM)) 0) (SUBREG F64 (REG I128 (HOLE 2 XMM)) 0))) (INTCONST I1 0) (INTCONST I1 1)))) (SET (REG I1 AF) (INTCONST I1 0)) (SET (REG I1 ZF) (IFTHENELSE I1 (BOR I1 (BOR I1 (NOTANUMBER I1 (SUBREG F64 (REG I128 (HOLE 1 XMM)) 0)) (NOTANUMBER I1 (SUBREG F64 (REG I128 (HOLE 2 XMM)) 0))) (TSTEQ I1 (SUBREG F64 (REG I128 (HOLE 1 XMM)) 0) (SUBREG F64 (REG I128 (HOLE 2 XMM)) 0))) (INTCONST I1 1) (IFTHENELSE I1 (BOR I1 (TSTGTS I1 (SUBREG F64 (REG I128 (HOLE 1 XMM)) 0) (SUBREG F64 (REG I128 (HOLE 2 XMM)) 0)) (TSTLTS I1 (SUBREG F64 (REG I128 (HOLE 1 XMM)) 0) (SUBREG F64 (REG I128 (HOLE 2 XMM)) 0))) (INTCONST I1 0) (INTCONST I1 1)))) (SET (REG I1 SF) (INTCONST I1 0)) (SET (REG I1 OF) (INTCONST I1 0)))) ;COMISD xmm1, m64 (DEFINST ("COMISD ?1x,REAL8 PTR ??2s" "nil" "nil") (PARALLEL (SET (REG I1 CF) (IFTHENELSE I1 (BOR I1 (BOR I1 (NOTANUMBER I1 (SUBREG F64 (REG I128 (HOLE 1 XMM)) 0)) (NOTANUMBER I1 (MEM F64 (HOLE 2)))) (TSTLTS I1 (SUBREG F64 (REG I128 (HOLE 1 XMM)) 0) (MEM F64 (HOLE 2)))) (INTCONST I1 1) (IFTHENELSE I1 (BOR I1 (TSTGTS I1 (SUBREG F64 (REG I128 (HOLE 1 XMM)) 0) (MEM F64 (HOLE 2))) (TSTEQ I1 (SUBREG F64 (REG I128 (HOLE 1 XMM)) 0) (MEM F64 (HOLE 2)))) (INTCONST I1 0) (INTCONST I1 1)))) (SET (REG I1 PF) (IFTHENELSE I1 (BOR I1 (NOTANUMBER I1 (SUBREG F64 (REG I128 (HOLE 1 XMM)) 0)) (NOTANUMBER I1 (MEM F64 (HOLE 2)))) (INTCONST I1 1) (IFTHENELSE I1 (BOR I1 (BOR I1 (TSTGTS I1 (SUBREG F64 (REG I128 (HOLE 1 XMM)) 0) (MEM F64 (HOLE 2))) (TSTLTS I1 (SUBREG F64 (REG I128 (HOLE 1 XMM)) 0) (MEM F64 (HOLE 2)))) (TSTEQ I1 (SUBREG F64 (REG I128 (HOLE 1 XMM)) 0) (MEM F64 (HOLE 2)))) (INTCONST I1 0) (INTCONST I1 1)))) (SET (REG I1 AF) (INTCONST I1 0)) (SET (REG I1 ZF) (IFTHENELSE I1 (BOR I1 (BOR I1 (NOTANUMBER I1 (SUBREG F64 (REG I128 (HOLE 1 XMM)) 0)) (NOTANUMBER I1 (MEM F64 (HOLE 2)))) (TSTEQ I1 (SUBREG F64 (REG I128 (HOLE 1 XMM)) 0) (MEM F64 (HOLE 2)))) (INTCONST I1 1) (IFTHENELSE I1 (BOR I1 (TSTGTS I1 (SUBREG F64 (REG I128 (HOLE 1 XMM)) 0) (MEM F64 (HOLE 2))) (TSTLTS I1 (SUBREG F64 (REG I128 (HOLE 1 XMM)) 0) (MEM F64 (HOLE 2)))) (INTCONST I1 0) (INTCONST I1 1)))) (SET (REG I1 SF) (INTCONST I1 0)) (SET (REG I1 OF) (INTCONST I1 0)))) ;(SUBREG F64 (REG I128 (HOLE 2 XMM)) 0) ==> (MEM F64 (HOLE 2)) ;;;;;;;;;;;;;;;;;;;;;;;;;;; ; 5.6.1.4 比較命令 ;Unordered Compare Scalar Double-Precision Floating-Point ;Values and Set EFLAGS ;;;;;;;;;;;;;;;;;;;;;;;;;;; ;UCOMISD xmm1, xmm2/m64 ;SIMD浮動小数点無効例外の条件が異るだけなので、COMISD と同じ。 (DEFINST ("UCOMISD ?1x,?2x" "nil" "nil") (PARALLEL (SET (REG I1 CF) (IFTHENELSE I1 (BOR I1 (BOR I1 (NOTANUMBER I1 (SUBREG F64 (REG I128 (HOLE 1 XMM)) 0)) (NOTANUMBER I1 (SUBREG F64 (REG I128 (HOLE 2 XMM)) 0))) (TSTLTS I1 (SUBREG F64 (REG I128 (HOLE 1 XMM)) 0) (SUBREG F64 (REG I128 (HOLE 2 XMM)) 0))) (INTCONST I1 1) (IFTHENELSE I1 (BOR I1 (TSTGTS I1 (SUBREG F64 (REG I128 (HOLE 1 XMM)) 0) (SUBREG F64 (REG I128 (HOLE 2 XMM)) 0)) (TSTEQ I1 (SUBREG F64 (REG I128 (HOLE 1 XMM)) 0) (SUBREG F64 (REG I128 (HOLE 2 XMM)) 0))) (INTCONST I1 0) (INTCONST I1 1)))) (SET (REG I1 PF) (IFTHENELSE I1 (BOR I1 (NOTANUMBER I1 (SUBREG F64 (REG I128 (HOLE 1 XMM)) 0)) (NOTANUMBER I1 (SUBREG F64 (REG I128 (HOLE 2 XMM)) 0))) (INTCONST I1 1) (IFTHENELSE I1 (BOR I1 (BOR I1 (TSTGTS I1 (SUBREG F64 (REG I128 (HOLE 1 XMM)) 0) (SUBREG F64 (REG I128 (HOLE 2 XMM)) 0)) (TSTLTS I1 (SUBREG F64 (REG I128 (HOLE 1 XMM)) 0) (SUBREG F64 (REG I128 (HOLE 2 XMM)) 0))) (TSTEQ I1 (SUBREG F64 (REG I128 (HOLE 1 XMM)) 0) (SUBREG F64 (REG I128 (HOLE 2 XMM)) 0))) (INTCONST I1 0) (INTCONST I1 1)))) (SET (REG I1 AF) (INTCONST I1 0)) (SET (REG I1 ZF) (IFTHENELSE I1 (BOR I1 (BOR I1 (NOTANUMBER I1 (SUBREG F64 (REG I128 (HOLE 1 XMM)) 0)) (NOTANUMBER I1 (SUBREG F64 (REG I128 (HOLE 2 XMM)) 0))) (TSTEQ I1 (SUBREG F64 (REG I128 (HOLE 1 XMM)) 0) (SUBREG F64 (REG I128 (HOLE 2 XMM)) 0))) (INTCONST I1 1) (IFTHENELSE I1 (BOR I1 (TSTGTS I1 (SUBREG F64 (REG I128 (HOLE 1 XMM)) 0) (SUBREG F64 (REG I128 (HOLE 2 XMM)) 0)) (TSTLTS I1 (SUBREG F64 (REG I128 (HOLE 1 XMM)) 0) (SUBREG F64 (REG I128 (HOLE 2 XMM)) 0))) (INTCONST I1 0) (INTCONST I1 1)))) (SET (REG I1 SF) (INTCONST I1 0)) (SET (REG I1 OF) (INTCONST I1 0)))) ;UCOMISD xmm1, m64 (DEFINST ("UCOMISD ?1x,REAL8 PTR ??2s" "nil" "nil") (PARALLEL (SET (REG I1 CF) (IFTHENELSE I1 (BOR I1 (BOR I1 (NOTANUMBER I1 (SUBREG F64 (REG I128 (HOLE 1 XMM)) 0)) (NOTANUMBER I1 (MEM F64 (HOLE 2)))) (TSTLTS I1 (SUBREG F64 (REG I128 (HOLE 1 XMM)) 0) (MEM F64 (HOLE 2)))) (INTCONST I1 1) (IFTHENELSE I1 (BOR I1 (TSTGTS I1 (SUBREG F64 (REG I128 (HOLE 1 XMM)) 0) (MEM F64 (HOLE 2))) (TSTEQ I1 (SUBREG F64 (REG I128 (HOLE 1 XMM)) 0) (MEM F64 (HOLE 2)))) (INTCONST I1 0) (INTCONST I1 1)))) (SET (REG I1 PF) (IFTHENELSE I1 (BOR I1 (NOTANUMBER I1 (SUBREG F64 (REG I128 (HOLE 1 XMM)) 0)) (NOTANUMBER I1 (MEM F64 (HOLE 2)))) (INTCONST I1 1) (IFTHENELSE I1 (BOR I1 (BOR I1 (TSTGTS I1 (SUBREG F64 (REG I128 (HOLE 1 XMM)) 0) (MEM F64 (HOLE 2))) (TSTLTS I1 (SUBREG F64 (REG I128 (HOLE 1 XMM)) 0) (MEM F64 (HOLE 2)))) (TSTEQ I1 (SUBREG F64 (REG I128 (HOLE 1 XMM)) 0) (MEM F64 (HOLE 2)))) (INTCONST I1 0) (INTCONST I1 1)))) (SET (REG I1 AF) (INTCONST I1 0)) (SET (REG I1 ZF) (IFTHENELSE I1 (BOR I1 (BOR I1 (NOTANUMBER I1 (SUBREG F64 (REG I128 (HOLE 1 XMM)) 0)) (NOTANUMBER I1 (MEM F64 (HOLE 2)))) (TSTEQ I1 (SUBREG F64 (REG I128 (HOLE 1 XMM)) 0) (MEM F64 (HOLE 2)))) (INTCONST I1 1) (IFTHENELSE I1 (BOR I1 (TSTGTS I1 (SUBREG F64 (REG I128 (HOLE 1 XMM)) 0) (MEM F64 (HOLE 2))) (TSTLTS I1 (SUBREG F64 (REG I128 (HOLE 1 XMM)) 0) (MEM F64 (HOLE 2)))) (INTCONST I1 0) (INTCONST I1 1)))) (SET (REG I1 SF) (INTCONST I1 0)) (SET (REG I1 OF) (INTCONST I1 0)))) ;(SUBREG F64 (REG I128 (HOLE 2 XMM)) 0) ==> (MEM F64 (HOLE 2)) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; 5.6.1.5 シャッフル命令とアンパック命令 ;Shuffle Packed Double-Precision Floating-Point Values ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;SHUFPD xmm1, xmm2/m128 imm8 (DEFINST ("SHUFPD ?1x,?2x,?3c" "nil" "nil") (PARALLEL (SET (SUBREG F64 (REG I128 (HOLE 1 XMM)) 0) (IFTHENELSE F64 (TSTEQ I1 (BAND I8 (INTCONST I8 (HOLE 3)) (INTCONST I8 #b01)) (INTCONST I8 0)) (SUBREG F64 (REG I128 (HOLE 1 XMM)) 0) (SUBREG F64 (REG I128 (HOLE 1 XMM)) 1))) (SET (SUBREG F64 (REG I128 (HOLE 1 XMM)) 1) (IFTHENELSE F64 (TSTEQ I1 (BAND I8 (INTCONST I8 (HOLE 3)) (INTCONST I8 #b10)) (INTCONST I8 0)) (SUBREG F64 (REG I128 (HOLE 2 XMM)) 0) (SUBREG F64 (REG I128 (HOLE 2 XMM)) 1))))) (DEFINST ("SHUFPD ?1x,REAL8 PTR ??2s,?3c" "nil" "nil") (PARALLEL (SET (SUBREG F64 (REG I128 (HOLE 1 XMM)) 0) (IFTHENELSE F64 (TSTEQ I1 (BAND I8 (INTCONST I8 (HOLE 3)) (INTCONST I8 #b01)) (INTCONST I8 0)) (SUBREG F64 (REG I128 (HOLE 1 XMM)) 0) (SUBREG F64 (REG I128 (HOLE 1 XMM)) 1))) (SET (SUBREG F64 (REG I128 (HOLE 1 XMM)) 1) (IFTHENELSE F64 (TSTEQ I1 (BAND I8 (INTCONST I8 (HOLE 3)) (INTCONST I8 #b10)) (INTCONST I8 0)) (SUBREG F64 (MEM I128 (HOLE 2)) 0) (SUBREG F64 (MEM I128 (HOLE 2)) 1))))) ;(REG I128 (HOLE 2 XMM)) ==> (MEM I128 (HOLE 2)) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; 5.6.1.5 シャッフル命令とアンパック命令 ;Unpack and Interleave High Packed Double-Precision ;Floating-Point Values ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;UNPCKHPD xmm1, xmm2/m128 (DEFINST ("UNPCKHPD ?1x,?2x" "nil" "nil") (PARALLEL (SET (SUBREG F64 (REG I128 (HOLE 1 XMM)) 0) (SUBREG F64 (REG I128 (HOLE 1 XMM)) 1)) (SET (SUBREG F64 (REG I128 (HOLE 1 XMM)) 1) (SUBREG F64 (REG I128 (HOLE 2 XMM)) 1)))) (DEFINST ("UNPCKHPD ?1x,REAL8 PTR ??2s" "nil" "nil") (PARALLEL (SET (SUBREG F64 (REG I128 (HOLE 1 XMM)) 0) (SUBREG F64 (REG I128 (HOLE 1 XMM)) 1)) (SET (SUBREG F64 (REG I128 (HOLE 1 XMM)) 1) (SUBREG F64 (MEM I128 (HOLE 2)) 1)))) ;(REG I128 (HOLE 2 XMM)) ==> (MEM I128 (HOLE 2)) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; 5.6.1.5 シャッフル命令とアンパック命令 ;Unpack and Interleave Low Packed Double-Precision ;Floating-Point Values ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;UNPCKLPD xmm1, xmm2/m128 (DEFINST ("UNPCKLPD ?1x,?2x" "nil" "nil") (PARALLEL (SET (SUBREG F64 (REG I128 (HOLE 1 XMM)) 0) (SUBREG F64 (REG I128 (HOLE 1 XMM)) 0)) (SET (SUBREG F64 (REG I128 (HOLE 1 XMM)) 1) (SUBREG F64 (REG I128 (HOLE 2 XMM)) 0)))) (DEFINST ("UNPCKLPD ?1x,REAL8 PTR ??2s" "nil" "nil") (PARALLEL (SET (SUBREG F64 (REG I128 (HOLE 1 XMM)) 0) (SUBREG F64 (REG I128 (HOLE 1 XMM)) 0)) (SET (SUBREG F64 (REG I128 (HOLE 1 XMM)) 1) (SUBREG F64 (MEM I128 (HOLE 2)) 0)))) ;(REG I128 (HOLE 2 XMM)) ==> (MEM I128 (HOLE 2)) ;;;;;;;;;;;;;;;;;;;;; ; 5.6.1.6 変換命令 ;Convert Packed Signed Doubleword Integers to Packed ;Double-Precision Floating-Point Values ;;;;;;;;;;;;;;;;;;;;; ;CVTDQ2PD xmm1, xmm2/m64 (DEFINST ("CVTDQ2PD ?1x,?2x" "nil" "nil") (PARALLEL (SET (SUBREG F64 (REG I128 (HOLE 1 XMM)) 0) (CONVSF F64 (SUBREG I32 (REG I128 (HOLE 2 XMM)) 0))) (SET (SUBREG F64 (REG I128 (HOLE 1 XMM)) 1) (CONVSF F64 (SUBREG I32 (REG I128 (HOLE 2 XMM)) 1))))) ;CVTPI2PD xmm, m64 と同じ (DEFINST ("CVTDQ2PD ?1x,REAL8 PTR ??2s" "nil" "nil") (PARALLEL (SET (SUBREG F64 (REG I128 (HOLE 1 XMM)) 0) (CONVSF F64 (SUBREG I32 (MEM I64 (HOLE 2)) 0))) (SET (SUBREG F64 (REG I128 (HOLE 1 XMM)) 1) (CONVSF F64 (SUBREG I32 (MEM I64 (HOLE 2)) 1))))) ; (REG I128 (HOLE 2 XMM)) ==> (MEM I64 (HOLE 2)) ;;;;;;;;;;;;;;;;;;;;; ; 5.6.1.6 変換命令 ;Convert Packed Double-Precision Floating-Point ;Values to Packed Doubleword Integers ;;;;;;;;;;;;;;;;;;;;; ;CVTPD2DQ xmm1, xmm2/m128 (DEFINST ("CVTPD2DQ ?1x,?2x" "nil" "nil") (PARALLEL (SET (SUBREG I32 (REG I128 (HOLE 1 XMM)) 0) (CONVFIDD I32 (SUBREG F64 (REG I128 (HOLE 2 XMM)) 0))) (SET (SUBREG I32 (REG I128 (HOLE 1 XMM)) 1) (CONVFIDD I32 (SUBREG F64 (REG I128 (HOLE 2 XMM)) 1))) (SET (SUBREG I32 (REG I128 (HOLE 1 XMM)) 2) (INTCONST I32 0)) (SET (SUBREG I32 (REG I128 (HOLE 1 XMM)) 3) (INTCONST I32 0)))) (DEFINST ("CVTPD2DQ ?1x,DWORD PTR ??2s" "nil" "nil") (PARALLEL (SET (SUBREG I32 (REG I128 (HOLE 1 XMM)) 0) (CONVFIDD I32 (SUBREG F64 (MEM I128 (HOLE 2)) 0))) (SET (SUBREG I32 (REG I128 (HOLE 1 XMM)) 1) (CONVFIDD I32 (SUBREG F64 (MEM I128 (HOLE 2)) 1))) (SET (SUBREG I32 (REG I128 (HOLE 1 XMM)) 2) (INTCONST I32 0)) (SET (SUBREG I32 (REG I128 (HOLE 1 XMM)) 3) (INTCONST I32 0)))) ;(REG I128 (HOLE 2 XMM)) ==> (MEM I128 (HOLE 2)) ;;;;;;;;;;;;;;;;;;;;; ; 5.6.1.6 変換命令 ;Convert Packed Double-Precision Floating-Point ;Values to Packed Doubleword Integers ;;;;;;;;;;;;;;;;;;;;; ;CVTPD2PI mm, xmm/m128 (DEFINST ("CVTPD2PI ?1m,?2x" "nil" "nil") (PARALLEL (SET (SUBREG I32 (REG I64 (HOLE 1 MM)) 0) (CONVFIDD I32 (SUBREG F64 (REG I128 (HOLE 2 XMM)) 0))) (SET (SUBREG I32 (REG I64 (HOLE 1 MM)) 1) (CONVFIDD I32 (SUBREG F64 (REG I128 (HOLE 2 XMM)) 1))))) (DEFINST ("CVTPD2PI ?1m,DWORD PTR ??2s" "nil" "nil") (PARALLEL (SET (SUBREG I32 (REG I64 (HOLE 1 MM)) 0) (CONVFIDD I32 (SUBREG F64 (MEM I128 (HOLE 2)) 0))) (SET (SUBREG I32 (REG I64 (HOLE 1 MM)) 1) (CONVFIDD I32 (SUBREG F64 (MEM I128 (HOLE 2)) 1))))) ;(REG I128 (HOLE 2 XMM)) ==> (MEM I128 (HOLE 2)) ;;;;;;;;;;;;;;;;;;;;; ; 5.6.1.6 変換命令 ;Covert Packed Double-Precision Floating-Point ;Values to Packed Single-Precision Floating-Point Values ;;;;;;;;;;;;;;;;;;;;; ;CVTPD2PS xmm1, xmm2/m128 (DEFINST ("CVTPD2PS ?1x,?2x" "nil" "nil") (PARALLEL (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 0) (CONVFT F32 (SUBREG F64 (REG I128 (HOLE 2 XMM)) 0))) (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 1) (CONVFT F32 (SUBREG F64 (REG I128 (HOLE 2 XMM)) 1))) (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 2) (FLOATCONST F32 0.0)) (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 3) (FLOATCONST F32 0.0)))) (DEFINST ("CVTPD2PS ?1x,REAL4 PTR ??2s" "nil" "nil") (PARALLEL (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 0) (CONVFT F32 (SUBREG F64 (MEM I128 (HOLE 2)) 0))) (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 1) (CONVFT F32 (SUBREG F64 (MEM I128 (HOLE 2)) 1))) (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 2) (FLOATCONST F32 0.0)) (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 3) (FLOATCONST F32 0.0)))) ;(REG I128 (HOLE 2 XMM)) ==> (MEM I128 (HOLE 2)) ;;;;;;;;;;;;;;;;;;;;; ; 5.6.1.6 変換命令 ;Convert Packed Doubleword Integers to Packed ;Double-Precision Floating-Point Values ;;;;;;;;;;;;;;;;;;;;; ;CVTPI2PD xmm, mm/m64 (DEFINST ("CVTPI2PD ?1x,?2m" "nil" "nil") (PARALLEL (SET (SUBREG F64 (REG I128 (HOLE 1 XMM)) 0) (CONVSF F64 (SUBREG I32 (REG I64 (HOLE 2 MM)) 0))) (SET (SUBREG F64 (REG I128 (HOLE 1 XMM)) 1) (CONVSF F64 (SUBREG I32 (REG I64 (HOLE 2 MM)) 1))))) (DEFINST ("CVTPI2PD ?1x,REAL8 PTR ??2s" "nil" "nil") (PARALLEL (SET (SUBREG F64 (REG I128 (HOLE 1 XMM)) 0) (CONVSF F64 (SUBREG I32 (MEM I64 (HOLE 2)) 0))) (SET (SUBREG F64 (REG I128 (HOLE 1 XMM)) 1) (CONVSF F64 (SUBREG I32 (MEM I64 (HOLE 2)) 1))))) ; (REG I64 (HOLE 2 MM)) ==> (MEM I64 (HOLE 2)) ;;;;;;;;;;;;;;;;;;;;; ; 5.6.1.6 変換命令 ;Covert Packed Single-Precision Floating-Point ;Values to Packed Double-Precision Floating-Point Values ;;;;;;;;;;;;;;;;;;;;; ;CVTPS2PD xmm1, xmm2/m64 (DEFINST ("CVTPS2PD ?1x,?2x" "nil" "nil") (PARALLEL (SET (SUBREG F64 (REG I128 (HOLE 1 XMM)) 0) (CONVFX F64 (SUBREG F32 (REG I128 (HOLE 2 XMM)) 0))) (SET (SUBREG F64 (REG I128 (HOLE 1 XMM)) 1) (CONVFX F64 (SUBREG F32 (REG I128 (HOLE 2 XMM)) 1))))) (DEFINST ("CVTPS2PD ?1x,REAL8 PTR ??2s" "nil" "nil") (PARALLEL (SET (SUBREG F64 (REG I128 (HOLE 1 XMM)) 0) (CONVFX F64 (SUBREG F32 (MEM I64 (HOLE 2)) 0))) (SET (SUBREG F64 (REG I128 (HOLE 1 XMM)) 1) (CONVFX F64 (SUBREG F32 (MEM I64 (HOLE 2)) 1))))) ;(REG I128 (HOLE 2 XMM)) ==> (MEM I64 (HOLE 2)) ;;;;;;;;;;;;;;;;;;;;; ; 5.6.1.6 変換命令 ;Convert Scalar Double-Precision Floating-Point Value ;to Doubleword Integer ;;;;;;;;;;;;;;;;;;;;; ;CVTSD2SI r32, xmm/m64 (DEFINST ("CVTSD2SI ?1r,?2x" "nil" "nil") (SET (REG I32 (HOLE 1 R32)) (CONVFIDD I32 (SUBREG F64 (REG I128 (HOLE 2 XMM)) 0)))) (DEFINST ("CVTSD2SI ?1r,QWORD PTR ??2s" "nil" "nil") (SET (REG I32 (HOLE 1 R32)) (CONVFIDD I32 (MEM F64 (HOLE 2))))) ;(SUBREG F64 (REG I128 (HOLE 2 XMM)) 0) ==> (MEM F64 (HOLE 2)) ;;;;;;;;;;;;;;;;;;;;; ; 5.6.1.6 変換命令 ;Convert Scalar Double-Precision Floating-Point ;Value to Scalar Single-Precision Floating-Point Value ;;;;;;;;;;;;;;;;;;;;; ;CVTSD2SS xmm1, xmm2/m64 (DEFINST ("CVTSD2SS ?1x,?2x" "nil" "nil") (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 0) (CONVFT F32 (SUBREG F64 (REG I128 (HOLE 2 XMM)) 0)))) (DEFINST ("CVTSD2SS ?1x,REAL8 PTR ??2s" "nil" "nil") (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 0) (CONVFT F32 (MEM F64 (HOLE 2))))) ;(SUBREG F64 (REG I128 (HOLE 2 XMM)) 0) ==> (MEM F64 (HOLE 2)) ;;;;;;;;;;;;;;;;;;;;; ; 5.6.1.6 変換命令 ;Convert Doubleword Integer to Scalar Double-Precision ;Floating-Point Value ;;;;;;;;;;;;;;;;;;;;; ;CVTSI2SD xmm1, r/m32 (DEFINST ("CVTSI2SD ?1x,?2r" "nil" "nil") (SET (SUBREG F64 (REG I128 (HOLE 1 XMM)) 0) (CONVSF F64 (REG I32 (HOLE 2 R32))))) (DEFINST ("CVTSI2SD ?1x,DWORD PTR ??2s" "nil" "nil") (SET (SUBREG F64 (REG I128 (HOLE 1 XMM)) 0) (CONVSF F64 (MEM I32 (HOLE 2))))) ;(REG I32 (HOLE 2 R32)) ==> (MEM I32 (HOLE 2)) ;;;;;;;;;;;;;;;;;;;;; ; 5.6.1.6 変換命令 ;Convert Scalar Single-Precision Floating-Point Value ;to Scalar Double-Precision Floating-Point Value ;;;;;;;;;;;;;;;;;;;;; ;CVTSS2SD xmm1, xmm2/m32 (DEFINST ("CVTSS2SD ?1x,?2x" "nil" "nil") (SET (SUBREG F64 (REG I128 (HOLE 1 XMM)) 0) (CONVFX F64 (SUBREG F32 (REG I128 (HOLE 2 XMM)) 0)))) (DEFINST ("CVTSS2SD ?1x,REAL4 PTR ??2s" "nil" "nil") (SET (SUBREG F64 (REG I128 (HOLE 1 XMM)) 0) (CONVFX F64 (MEM F32 (HOLE 2))))) ; (SUBREG F32 (REG I128 (HOLE 2 XMM)) 0) ==> (MEM F32 (HOLE 2)) ;;;;;;;;;;;;;;;;;;;;; ; 5.6.1.6 変換命令 ;Convert with Truncation Packed Double-Precision ;Floating-Point Values to Packed Doubleword Integers ;;;;;;;;;;;;;;;;;;;;; ;CVTTPD2DQ xmm1, xmm2/m128 (DEFINST ("CVTTPD2DQ ?1x,?2x" "nil" "nil") (PARALLEL (SET (SUBREG I32 (REG I128 (HOLE 1 XMM)) 0) (IFTHENELSE I32 (BOR I1 (TSTGES I1 (SUBREG F64 (REG I128 (HOLE 2 XMM)) 0) (FLOATCONST F64 2147483648.0)) (TSTLES I1 (SUBREG F64 (REG I128 (HOLE 2 XMM)) 0) (FLOATCONST F64 -2147483648.0))) (INTCONST I32 #x80000000) (CONVFIZ I32 (SUBREG F64 (REG I128 (HOLE 2 XMM)) 0)))) (SET (SUBREG I32 (REG I128 (HOLE 1 XMM)) 1) (IFTHENELSE I32 (BOR I1 (TSTGES I1 (SUBREG F64 (REG I128 (HOLE 2 XMM)) 1) (FLOATCONST F64 2147483648.0)) (TSTLES I1 (SUBREG F64 (REG I128 (HOLE 2 XMM)) 1) (FLOATCONST F64 -2147483648.0))) (INTCONST I32 #x80000000) (CONVFIZ I32 (SUBREG F64 (REG I128 (HOLE 2 XMM)) 1)))) (SET (SUBREG I32 (REG I128 (HOLE 1 XMM)) 2) (INTCONST I32 0)) (SET (SUBREG I32 (REG I128 (HOLE 1 XMM)) 3) (INTCONST I32 0)))) (DEFINST ("CVTTPD2DQ ?1x,QWORD PTR ??2s" "nil" "nil") (PARALLEL (SET (SUBREG I32 (REG I128 (HOLE 1 XMM)) 0) (IFTHENELSE I32 (BOR I1 (TSTGES I1 (SUBREG F64 (MEM I128 (HOLE 2)) 0) (FLOATCONST F64 2147483648.0)) (TSTLES I1 (SUBREG F64 (MEM I128 (HOLE 2)) 0) (FLOATCONST F64 -2147483648.0))) (INTCONST I32 #x80000000) (CONVFIZ I32 (SUBREG F64 (MEM I128 (HOLE 2)) 0)))) (SET (SUBREG I32 (REG I128 (HOLE 1 XMM)) 1) (IFTHENELSE I32 (BOR I1 (TSTGES I1 (SUBREG F64 (MEM I128 (HOLE 2)) 1) (FLOATCONST F64 2147483648.0)) (TSTLES I1 (SUBREG F64 (MEM I128 (HOLE 2)) 1) (FLOATCONST F64 -2147483648.0))) (INTCONST I32 #x80000000) (CONVFIZ I32 (SUBREG F64 (MEM I128 (HOLE 2)) 1)))) (SET (SUBREG I32 (REG I128 (HOLE 1 XMM)) 2) (INTCONST I32 0)) (SET (SUBREG I32 (REG I128 (HOLE 1 XMM)) 3) (INTCONST I32 0)))) ;(REG I128 (HOLE 2 XMM)) ==> (MEM I128 (HOLE 2)) ;;;;;;;;;;;;;;;;;;;;; ; 5.6.1.6 変換命令 ;Convert with Truncation Packed Double-Precision ;Floating-Point Values to Packed Doubleword Integers ;;;;;;;;;;;;;;;;;;;;; ;CVTTPD2PI mm, xmm/m128 (DEFINST ("CVTTPD2PI ?1m,?2x" "nil" "nil") (PARALLEL (SET (SUBREG I32 (REG I64 (HOLE 1 MM)) 0) (IFTHENELSE I32 (BOR I1 (TSTGES I1 (SUBREG F64 (REG I128 (HOLE 2 XMM)) 0) (FLOATCONST F64 2147483648.0)) (TSTLES I1 (SUBREG F64 (REG I128 (HOLE 2 XMM)) 0) (FLOATCONST F64 -2147483648.0))) (INTCONST I32 #x80000000) (CONVFIZ I32 (SUBREG F64 (REG I128 (HOLE 2 XMM)) 0)))) (SET (SUBREG I32 (REG I64 (HOLE 1 MM)) 1) (IFTHENELSE I32 (BOR I1 (TSTGES I1 (SUBREG F64 (REG I128 (HOLE 2 XMM)) 1) (FLOATCONST F64 2147483648.0)) (TSTLES I1 (SUBREG F64 (REG I128 (HOLE 2 XMM)) 1) (FLOATCONST F64 -2147483648.0))) (INTCONST I32 #x80000000) (CONVFIZ I32 (SUBREG F64 (REG I128 (HOLE 2 XMM)) 1)))))) (DEFINST ("CVTTPD2PI ?1m,QWORD PTR ??2s" "nil" "nil") (PARALLEL (SET (SUBREG I32 (REG I64 (HOLE 1 MM)) 0) (IFTHENELSE I32 (BOR I1 (TSTGES I1 (SUBREG F64 (MEM I128 (HOLE 2)) 0) (FLOATCONST F64 2147483648.0)) (TSTLES I1 (SUBREG F64 (MEM I128 (HOLE 2)) 0) (FLOATCONST F64 -2147483648.0))) (INTCONST I32 #x80000000) (CONVFIZ I32 (SUBREG F64 (MEM I128 (HOLE 2)) 0)))) (SET (SUBREG I32 (REG I64 (HOLE 1 MM)) 1) (IFTHENELSE I32 (BOR I1 (TSTGES I1 (SUBREG F64 (MEM I128 (HOLE 2)) 1) (FLOATCONST F64 2147483648.0)) (TSTLES I1 (SUBREG F64 (MEM I128 (HOLE 2)) 1) (FLOATCONST F64 -2147483648.0))) (INTCONST I32 #x80000000) (CONVFIZ I32 (SUBREG F64 (MEM I128 (HOLE 2)) 1)))))) ;(REG I128 (HOLE 2 XMM)) ==> (MEM I128 (HOLE 2)) ;;;;;;;;;;;;;;;;;;;;; ; 5.6.1.6 変換命令 ;Convert with Truncation Scalar Double-Precision ;Floating-Point Value to Signed Doubleword Integer ;;;;;;;;;;;;;;;;;;;;; ;CVTTSD2SI r32, xmm/m64 (DEFINST ("CVTTSD2SI ?1r,?2x" "nil" "nil") (SET (REG I32 (HOLE 1 R32)) (IFTHENELSE I32 (BOR I1 (TSTGES I1 (SUBREG F64 (REG I128 (HOLE 2 XMM)) 0) (FLOATCONST F64 2147483648.0)) (TSTLES I1 (SUBREG F64 (REG I128 (HOLE 2 XMM)) 0) (FLOATCONST F64 -2147483648.0))) (INTCONST I32 #x80000000) (CONVFIZ I32 (SUBREG F64 (REG I128 (HOLE 2 XMM)) 0))))) (DEFINST ("CVTTSD2SI ?1r,QWORD PTR ??2s" "nil" "nil") (SET (REG I32 (HOLE 1 R32)) (IFTHENELSE I32 (BOR I1 (TSTGES I1 (MEM F64 (HOLE 2)) (FLOATCONST F64 2147483648.0)) (TSTLES I1 (MEM F64 (HOLE 2)) (FLOATCONST F64 -2147483648.0))) (INTCONST I32 #x80000000) (CONVFIZ I32 (MEM F64 (HOLE 2)))))) ;(SUBREG F64 (REG I128 (HOLE 2 XMM)) 0) ==> (MEM F64 (HOLE 2)) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; 5.6.2 パックド単精度浮動小数点命令 ; Convert Packed Doubleword Integers to Packed ; Single-Precision Floating-Point Values ;Convert four packed signed doubleword integers ;from xmm2/m128 to four packed single-precision ;floating-point values in xmm1. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;CVTDQ2PS xmm1, xmm2/m128 (DEFINST ("CVTDQ2PS ?1x,?2x" "nil" "nil") (PARALLEL (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 0) (CONVSF F32 (SUBREG I32 (REG I128 (HOLE 2 XMM)) 0))) (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 1) (CONVSF F32 (SUBREG I32 (REG I128 (HOLE 2 XMM)) 1))) (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 2) (CONVSF F32 (SUBREG I32 (REG I128 (HOLE 2 XMM)) 2))) (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 3) (CONVSF F32 (SUBREG I32 (REG I128 (HOLE 2 XMM)) 3))))) (DEFINST ("CVTDQ2PS ?1x,REAL4 PTR ??2s" "nil" "nil") (PARALLEL (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 0) (CONVSF F32 (SUBREG I32 (MEM I128 (HOLE 2)) 0))) (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 1) (CONVSF F32 (SUBREG I32 (MEM I128 (HOLE 2)) 1))) (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 2) (CONVSF F32 (SUBREG I32 (MEM I128 (HOLE 2)) 2))) (SET (SUBREG F32 (REG I128 (HOLE 1 XMM)) 3) (CONVSF F32 (SUBREG I32 (MEM I128 (HOLE 2)) 3))))) ;(REG I128 (HOLE 2 XMM)) ==> (MEM I128 (HOLE 2)) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; 5.6.2 パックド単精度浮動小数点命令 ; Convert Packed Single-Precision Floating-Point ; Values to Packed Doubleword Integers ;Convert four packed single-precision floating-point ;values from xmm2/m128 to four packed ;signed doubleword integers in xmm1. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;CVTPS2DQ xmm1, xmm2/m128 (DEFINST ("CVTPS2DQ ?1x,?2x" "nil" "nil") (PARALLEL (SET (SUBREG I32 (REG I128 (HOLE 1 XMM)) 0) (CONVFIDD I32 (SUBREG F32 (REG I128 (HOLE 2 XMM)) 0))) (SET (SUBREG I32 (REG I128 (HOLE 1 XMM)) 1) (CONVFIDD I32 (SUBREG F32 (REG I128 (HOLE 2 XMM)) 1))) (SET (SUBREG I32 (REG I128 (HOLE 1 XMM)) 2) (CONVFIDD I32 (SUBREG F32 (REG I128 (HOLE 2 XMM)) 2))) (SET (SUBREG I32 (REG I128 (HOLE 1 XMM)) 3) (CONVFIDD I32 (SUBREG F32 (REG I128 (HOLE 2 XMM)) 3))))) (DEFINST ("CVTPS2DQ ?1x,REAL4 PTR ??2s" "nil" "nil") (PARALLEL (SET (SUBREG I32 (REG I128 (HOLE 1 XMM)) 0) (CONVFIDD I32 (SUBREG F32 (MEM I128 (HOLE 2)) 0))) (SET (SUBREG I32 (REG I128 (HOLE 1 XMM)) 1) (CONVFIDD I32 (SUBREG F32 (MEM I128 (HOLE 2)) 1))) (SET (SUBREG I32 (REG I128 (HOLE 1 XMM)) 2) (CONVFIDD I32 (SUBREG F32 (MEM I128 (HOLE 2)) 2))) (SET (SUBREG I32 (REG I128 (HOLE 1 XMM)) 3) (CONVFIDD I32 (SUBREG F32 (MEM I128 (HOLE 2)) 3))))) ;(REG I128 (HOLE 2 XMM)) ==> (MEM I128 (HOLE 2)) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; 5.6.2 パックド単精度浮動小数点命令 ; Convert with Truncation Packed Single-Precision ; Floating-Point Values to Packed Doubleword Integers ;Convert four single-precision floating-point ;values from xmm2/m128 to four signed ;doubleword integers in xmm1 using truncation. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;CVTTPS2DQ xmm1, xmm2/m128 (DEFINST ("CVTTPS2DQ ?1x,?2x" "nil" "nil") (PARALLEL (SET (SUBREG I32 (REG I128 (HOLE 1 XMM)) 0) (IFTHENELSE I32 (BOR I1 (TSTGES I1 (SUBREG F32 (REG I128 (HOLE 2 XMM)) 0) (FLOATCONST F32 2147483648.0)) (TSTLES I1 (SUBREG F32 (REG I128 (HOLE 2 XMM)) 0) (FLOATCONST F32 -2147483648.0))) (INTCONST I32 #x80000000) (CONVFIZ I32 (SUBREG F32 (REG I128 (HOLE 2 XMM)) 0)))) (SET (SUBREG I32 (REG I128 (HOLE 1 XMM)) 1) (IFTHENELSE I32 (BOR I1 (TSTGES I1 (SUBREG F32 (REG I128 (HOLE 2 XMM)) 1) (FLOATCONST F32 2147483648.0)) (TSTLES I1 (SUBREG F32 (REG I128 (HOLE 2 XMM)) 1) (FLOATCONST F32 -2147483648.0))) (INTCONST I32 #x80000000) (CONVFIZ I32 (SUBREG F32 (REG I128 (HOLE 2 XMM)) 1)))) (SET (SUBREG I32 (REG I128 (HOLE 1 XMM)) 2) (IFTHENELSE I32 (BOR I1 (TSTGES I1 (SUBREG F32 (REG I128 (HOLE 2 XMM)) 2) (FLOATCONST F32 2147483648.0)) (TSTLES I1 (SUBREG F32 (REG I128 (HOLE 2 XMM)) 2) (FLOATCONST F32 -2147483648.0))) (INTCONST I32 #x80000000) (CONVFIZ I32 (SUBREG F32 (REG I128 (HOLE 2 XMM)) 2)))) (SET (SUBREG I32 (REG I128 (HOLE 1 XMM)) 3) (IFTHENELSE I32 (BOR I1 (TSTGES I1 (SUBREG F32 (REG I128 (HOLE 2 XMM)) 3) (FLOATCONST F32 2147483648.0)) (TSTLES I1 (SUBREG F32 (REG I128 (HOLE 2 XMM)) 3) (FLOATCONST F32 -2147483648.0))) (INTCONST I32 #x80000000) (CONVFIZ I32 (SUBREG F32 (REG I128 (HOLE 2 XMM)) 3)))))) (DEFINST ("CVTTPS2DQ ?1x,DWORD PTR ??2s" "nil" "nil") (PARALLEL (SET (SUBREG I32 (REG I128 (HOLE 1 XMM)) 0) (IFTHENELSE I32 (BOR I1 (TSTGES I1 (SUBREG F32 (MEM I128 (HOLE 2)) 0) (FLOATCONST F32 2147483648.0)) (TSTLES I1 (SUBREG F32 (MEM I128 (HOLE 2)) 0) (FLOATCONST F32 -2147483648.0))) (INTCONST I32 #x80000000) (CONVFIZ I32 (SUBREG F32 (MEM I128 (HOLE 2)) 0)))) (SET (SUBREG I32 (REG I128 (HOLE 1 XMM)) 1) (IFTHENELSE I32 (BOR I1 (TSTGES I1 (SUBREG F32 (MEM I128 (HOLE 2)) 1) (FLOATCONST F32 2147483648.0)) (TSTLES I1 (SUBREG F32 (MEM I128 (HOLE 2)) 1) (FLOATCONST F32 -2147483648.0))) (INTCONST I32 #x80000000) (CONVFIZ I32 (SUBREG F32 (MEM I128 (HOLE 2)) 1)))) (SET (SUBREG I32 (REG I128 (HOLE 1 XMM)) 2) (IFTHENELSE I32 (BOR I1 (TSTGES I1 (SUBREG F32 (MEM I128 (HOLE 2)) 2) (FLOATCONST F32 2147483648.0)) (TSTLES I1 (SUBREG F32 (MEM I128 (HOLE 2)) 2) (FLOATCONST F32 -2147483648.0))) (INTCONST I32 #x80000000) (CONVFIZ I32 (SUBREG F32 (MEM I128 (HOLE 2)) 2)))) (SET (SUBREG I32 (REG I128 (HOLE 1 XMM)) 3) (IFTHENELSE I32 (BOR I1 (TSTGES I1 (SUBREG F32 (MEM I128 (HOLE 2)) 3) (FLOATCONST F32 2147483648.0)) (TSTLES I1 (SUBREG F32 (MEM I128 (HOLE 2)) 3) (FLOATCONST F32 -2147483648.0))) (INTCONST I32 #x80000000) (CONVFIZ I32 (SUBREG F32 (MEM I128 (HOLE 2)) 3)))))) ;(REG I128 (HOLE 2 XMM)) ==> (MEM I128 (HOLE 2)) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; 5.6.3 128ビットSIMD整数命令 ; Move Quadword from XMM to MMX Register ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;MOVDQ2Q mm xmm (DEFINST ("MOVDQ2Q ?1m,?2x" "nil" "nil") (SET (REG I64 (HOLE 1 MM)) (SUBREG I64 (REG I128 (HOLE 2 XMM)) 0))) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; 5.6.3 128ビットSIMD整数命令 ; Move Aligned Double Quadword ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;aligned と unaligned の区別はいらない。MOVDQA と MOVDQU は同じ。 ;MOVDQA xmm1, xmm2/m128 ;MOVDQA xmm2/m128, xmm1 (DEFINST ("MOVDQA ?1x,?2x" "nil" "nil") (SET (REG I128 (HOLE 1 XMM)) (REG I128 (HOLE 2 XMM)))) (DEFINST ("MOVDQA ?1x,QWORD PTR ??2s" "nil" "nil") (SET (REG I128 (HOLE 1 XMM)) (MEM I128 (HOLE 2)))) (DEFINST ("MOVDQA QWORD PTR ??1s,?2x" "nil" "nil") (SET (MEM I128 (HOLE 1)) (REG I128 (HOLE 2 XMM)))) ;(REG I128 (HOLE 1 XMM)) ==> (MEM I128 (HOLE 1)) ;(REG I128 (HOLE 2 XMM)) ==> (MEM I128 (HOLE 2)) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; 5.6.3 128ビットSIMD整数命令 ; Move Unaligned Double Quadword ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;aligned と unaligned の区別はいらない。MOVDQA と MOVDQU は同じ。 ;MOVDQU xmm1, xmm2/m128 ;MOVDQU xmm2/m128, xmm1 (DEFINST ("MOVDQU ?1x,?2x" "nil" "nil") (SET (REG I128 (HOLE 1 XMM)) (REG I128 (HOLE 2 XMM)))) (DEFINST ("MOVDQU ?1x,QWORD PTR ??2s" "nil" "nil") (SET (REG I128 (HOLE 1 XMM)) (MEM I128 (HOLE 2)))) (DEFINST ("MOVDQU QWORD PTR ??1s,?2x" "nil" "nil") (SET (MEM I128 (HOLE 1)) (REG I128 (HOLE 2 XMM)))) ;(REG I128 (HOLE 1 XMM)) ==> (MEM I128 (HOLE 1)) ;(REG I128 (HOLE 2 XMM)) ==> (MEM I128 (HOLE 2)) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; 5.6.3 128ビットSIMD整数命令 ; Move Quadword from MMX to XMM Register ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;MOVQ2DQ xmm mm (DEFINST ("MOVQ2DQ ?1x,?2m" "nil" "nil") (PARALLEL (SET (SUBREG I64 (REG I128 (HOLE 1 XMM)) 0) (REG I64 (HOLE 2 MM))) (SET (SUBREG I64 (REG I128 (HOLE 1 XMM)) 1) (INTCONST I64 0)))) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; 5.6.3 128ビットSIMD整数命令 ; Add Packed Quadword Integers ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;PADDQ mm1, mm2/m64 (DEFINST ("PADDQ ?1m,?2m" "nil" "nil") (SET (REG I64 (HOLE 1 MM)) (ADD I64 (REG I64 (HOLE 1 MM)) (REG I64 (HOLE 2 MM))))) (DEFINST ("PADDQ ?1m,QWORD PTR ??2s" "nil" "nil") (SET (REG I64 (HOLE 1 MM)) (ADD I64 (REG I64 (HOLE 1 MM)) (MEM I64 (HOLE 2))))) ;PADDQ xmm1, xmm2/m128 (DEFINST ("PADDQ ?1x,?2x" "nil" "nil") (PARALLEL (SET (SUBREG I64 (REG I128 (HOLE 1 XMM)) 0) (ADD I64 (SUBREG I64 (REG I128 (HOLE 1 XMM)) 0) (SUBREG I64 (REG I128 (HOLE 2 XMM)) 0))) (SET (SUBREG I64 (REG I128 (HOLE 1 XMM)) 1) (ADD I64 (SUBREG I64 (REG I128 (HOLE 1 XMM)) 1) (SUBREG I64 (REG I128 (HOLE 2 XMM)) 1))))) (DEFINST ("PADDQ ?1x,QWORD PTR ??2s" "nil" "nil") (PARALLEL (SET (SUBREG I64 (REG I128 (HOLE 1 XMM)) 0) (ADD I64 (SUBREG I64 (REG I128 (HOLE 1 XMM)) 0) (SUBREG I64 (MEM I128 (HOLE 2)) 0))) (SET (SUBREG I64 (REG I128 (HOLE 1 XMM)) 1) (ADD I64 (SUBREG I64 (REG I128 (HOLE 1 XMM)) 1) (SUBREG I64 (MEM I128 (HOLE 2)) 1))))) ;(REG I64 (HOLE 2 MM)) ==> (MEM I64 (HOLE 2)) ;(REG I128 (HOLE 2 XMM)) ==> (MEM I128 (HOLE 2)) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; 5.6.3 128ビットSIMD整数命令 ; Multiply Packed Unsigned Doubleword Integers ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;PMULUDQ mm1, mm2/m64 (DEFINST ("PMULUDQ ?1m,?2m" "nil" "nil") (SET (REG I64 (HOLE 1 MM)) (MUL I64 (CONVSX I64 (SUBREG I32 (REG I64 (HOLE 1 MM)) 0)) (CONVSX I64 (SUBREG I32 (REG I64 (HOLE 2 MM)) 0))))) (DEFINST ("PMULUDQ ?1m,QWORD PTR ??2s" "nil" "nil") (SET (REG I64 (HOLE 1 MM)) (MUL I64 (CONVSX I64 (SUBREG I32 (REG I64 (HOLE 1 MM)) 0)) (CONVSX I64 (SUBREG I32 (MEM I64 (HOLE 2)) 0))))) ;PMULUDQ xmm1, xmm2/m128 (DEFINST ("PMULUDQ ?1x,?2x" "nil" "nil") (PARALLEL (SET (SUBREG I64 (REG I128 (HOLE 1 XMM)) 0) (MUL I64 (CONVSX I64 (SUBREG I32 (REG I128 (HOLE 1 XMM)) 0)) (CONVSX I64 (SUBREG I32 (REG I128 (HOLE 2 XMM)) 0)))) (SET (SUBREG I64 (REG I128 (HOLE 1 XMM)) 1) (MUL I64 (CONVSX I64 (SUBREG I32 (REG I128 (HOLE 1 XMM)) 2)) (CONVSX I64 (SUBREG I32 (REG I128 (HOLE 2 XMM)) 2)))))) (DEFINST ("PMULUDQ ?1x,DWORD PTR ??2s" "nil" "nil") (PARALLEL (SET (SUBREG I64 (REG I128 (HOLE 1 XMM)) 0) (MUL I64 (CONVSX I64 (SUBREG I32 (REG I128 (HOLE 1 XMM)) 0)) (CONVSX I64 (SUBREG I32 (MEM I128 (HOLE 2)) 0)))) (SET (SUBREG I64 (REG I128 (HOLE 1 XMM)) 1) (MUL I64 (CONVSX I64 (SUBREG I32 (REG I128 (HOLE 1 XMM)) 2)) (CONVSX I64 (SUBREG I32 (MEM I128 (HOLE 2)) 2)))))) ;(REG I64 (HOLE 2 MM)) ==> (MEM I64 (HOLE 2)) ;(REG I128 (HOLE 2 XMM)) ==> (MEM I128 (HOLE 2)) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; 5.6.3 128ビットSIMD整数命令 ; Shuffle Packed Doublewords ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;PSHUFD xmm1, xmm2/m128 imm8 (DEFINST ("PSHUFD ?1x,?2x,?3c" "nil" "nil") (PARALLEL (SET (SUBREG I32 (REG I128 (HOLE 1 XMM)) 0) (IFTHENELSE I32 (TSTEQ I1 (BAND I8 (INTCONST I8 (HOLE 3)) (INTCONST I8 #b00000010)) (INTCONST I8 #b00000000)) (IFTHENELSE I32 (TSTEQ I1 (BAND I8 (INTCONST I8 (HOLE 3)) (INTCONST I8 #b00000001)) (INTCONST I8 #b00000000)) (SUBREG I32 (REG I128 (HOLE 2 XMM)) 0) (SUBREG I32 (REG I128 (HOLE 2 XMM)) 1)) (IFTHENELSE I32 (TSTEQ I1 (BAND I8 (INTCONST I8 (HOLE 3)) (INTCONST I8 #b00000001)) (INTCONST I8 #b00000000)) (SUBREG I32 (REG I128 (HOLE 2 XMM)) 2) (SUBREG I32 (REG I128 (HOLE 2 XMM)) 3)))) (SET (SUBREG I32 (REG I128 (HOLE 1 XMM)) 1) (IFTHENELSE I32 (TSTEQ I1 (BAND I8 (INTCONST I8 (HOLE 3)) (INTCONST I8 #b00001000)) (INTCONST I8 #b00000000)) (IFTHENELSE I32 (TSTEQ I1 (BAND I8 (INTCONST I8 (HOLE 3)) (INTCONST I8 #b00000100)) (INTCONST I8 #b00000000)) (SUBREG I32 (REG I128 (HOLE 2 XMM)) 0) (SUBREG I32 (REG I128 (HOLE 2 XMM)) 1)) (IFTHENELSE I32 (TSTEQ I1 (BAND I8 (INTCONST I8 (HOLE 3)) (INTCONST I8 #b00000100)) (INTCONST I8 #b00000000)) (SUBREG I32 (REG I128 (HOLE 2 XMM)) 2) (SUBREG I32 (REG I128 (HOLE 2 XMM)) 3)))) (SET (SUBREG I32 (REG I128 (HOLE 1 XMM)) 2) (IFTHENELSE I32 (TSTEQ I1 (BAND I8 (INTCONST I8 (HOLE 3)) (INTCONST I8 #b00100000)) (INTCONST I8 #b00000000)) (IFTHENELSE I32 (TSTEQ I1 (BAND I8 (INTCONST I8 (HOLE 3)) (INTCONST I8 #b00010000)) (INTCONST I8 #b00000000)) (SUBREG I32 (REG I128 (HOLE 2 XMM)) 0) (SUBREG I32 (REG I128 (HOLE 2 XMM)) 1)) (IFTHENELSE I32 (TSTEQ I1 (BAND I8 (INTCONST I8 (HOLE 3)) (INTCONST I8 #b00010000)) (INTCONST I8 #b00000000)) (SUBREG I32 (REG I128 (HOLE 2 XMM)) 2) (SUBREG I32 (REG I128 (HOLE 2 XMM)) 3)))) (SET (SUBREG I32 (REG I128 (HOLE 1 XMM)) 3) (IFTHENELSE I32 (TSTEQ I1 (BAND I8 (INTCONST I8 (HOLE 3)) (INTCONST I8 #b10000000)) (INTCONST I8 #b00000000)) (IFTHENELSE I32 (TSTEQ I1 (BAND I8 (INTCONST I8 (HOLE 3)) (INTCONST I8 #b01000000)) (INTCONST I8 #b00000000)) (SUBREG I32 (REG I128 (HOLE 2 XMM)) 0) (SUBREG I32 (REG I128 (HOLE 2 XMM)) 1)) (IFTHENELSE I32 (TSTEQ I1 (BAND I8 (INTCONST I8 (HOLE 3)) (INTCONST I8 #b01000000)) (INTCONST I8 #b00000000)) (SUBREG I32 (REG I128 (HOLE 2 XMM)) 2) (SUBREG I32 (REG I128 (HOLE 2 XMM)) 3)))))) (DEFINST ("PSHUFD ?1x,DWORD PTR ??2s,?3c" "nil" "nil") (PARALLEL (SET (SUBREG I32 (REG I128 (HOLE 1 XMM)) 0) (IFTHENELSE I32 (TSTEQ I1 (BAND I8 (INTCONST I8 (HOLE 3)) (INTCONST I8 #b00000010)) (INTCONST I8 #b00000000)) (IFTHENELSE I32 (TSTEQ I1 (BAND I8 (INTCONST I8 (HOLE 3)) (INTCONST I8 #b00000001)) (INTCONST I8 #b00000000)) (SUBREG I32 (MEM I128 (HOLE 2)) 0) (SUBREG I32 (MEM I128 (HOLE 2)) 1)) (IFTHENELSE I32 (TSTEQ I1 (BAND I8 (INTCONST I8 (HOLE 3)) (INTCONST I8 #b00000001)) (INTCONST I8 #b00000000)) (SUBREG I32 (MEM I128 (HOLE 2)) 2) (SUBREG I32 (MEM I128 (HOLE 2)) 3)))) (SET (SUBREG I32 (REG I128 (HOLE 1 XMM)) 1) (IFTHENELSE I32 (TSTEQ I1 (BAND I8 (INTCONST I8 (HOLE 3)) (INTCONST I8 #b00001000)) (INTCONST I8 #b00000000)) (IFTHENELSE I32 (TSTEQ I1 (BAND I8 (INTCONST I8 (HOLE 3)) (INTCONST I8 #b00000100)) (INTCONST I8 #b00000000)) (SUBREG I32 (MEM I128 (HOLE 2)) 0) (SUBREG I32 (MEM I128 (HOLE 2)) 1)) (IFTHENELSE I32 (TSTEQ I1 (BAND I8 (INTCONST I8 (HOLE 3)) (INTCONST I8 #b00000100)) (INTCONST I8 #b00000000)) (SUBREG I32 (MEM I128 (HOLE 2)) 2) (SUBREG I32 (MEM I128 (HOLE 2)) 3)))) (SET (SUBREG I32 (REG I128 (HOLE 1 XMM)) 2) (IFTHENELSE I32 (TSTEQ I1 (BAND I8 (INTCONST I8 (HOLE 3)) (INTCONST I8 #b00100000)) (INTCONST I8 #b00000000)) (IFTHENELSE I32 (TSTEQ I1 (BAND I8 (INTCONST I8 (HOLE 3)) (INTCONST I8 #b00010000)) (INTCONST I8 #b00000000)) (SUBREG I32 (MEM I128 (HOLE 2)) 0) (SUBREG I32 (MEM I128 (HOLE 2)) 1)) (IFTHENELSE I32 (TSTEQ I1 (BAND I8 (INTCONST I8 (HOLE 3)) (INTCONST I8 #b00010000)) (INTCONST I8 #b00000000)) (SUBREG I32 (MEM I128 (HOLE 2)) 2) (SUBREG I32 (MEM I128 (HOLE 2)) 3)))) (SET (SUBREG I32 (REG I128 (HOLE 1 XMM)) 3) (IFTHENELSE I32 (TSTEQ I1 (BAND I8 (INTCONST I8 (HOLE 3)) (INTCONST I8 #b10000000)) (INTCONST I8 #b00000000)) (IFTHENELSE I32 (TSTEQ I1 (BAND I8 (INTCONST I8 (HOLE 3)) (INTCONST I8 #b01000000)) (INTCONST I8 #b00000000)) (SUBREG I32 (MEM I128 (HOLE 2)) 0) (SUBREG I32 (MEM I128 (HOLE 2)) 1)) (IFTHENELSE I32 (TSTEQ I1 (BAND I8 (INTCONST I8 (HOLE 3)) (INTCONST I8 #b01000000)) (INTCONST I8 #b00000000)) (SUBREG I32 (MEM I128 (HOLE 2)) 2) (SUBREG I32 (MEM I128 (HOLE 2)) 3)))))) ; (REG I128 (HOLE 2 XMM)) ==> (MEM I128 (HOLE 2)) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; 5.6.3 128ビットSIMD整数命令 ; Shuffle Packed High Words ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;PSHUFHW xmm1, xmm2/m128 imm8 (DEFINST ("PSHUFHW ?1x,?2x,?3c" "nil" "nil") (PARALLEL (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 4) (IFTHENELSE I16 (TSTEQ I1 (BAND I8 (INTCONST I8 (HOLE 3)) (INTCONST I8 #b00000010)) (INTCONST I8 #b00000000)) (IFTHENELSE I16 (TSTEQ I1 (BAND I8 (INTCONST I8 (HOLE 3)) (INTCONST I8 #b00000001)) (INTCONST I8 #b00000000)) (SUBREG I16 (REG I128 (HOLE 2 XMM)) 4) (SUBREG I16 (REG I128 (HOLE 2 XMM)) 5)) (IFTHENELSE I16 (TSTEQ I1 (BAND I8 (INTCONST I8 (HOLE 3)) (INTCONST I8 #b00000001)) (INTCONST I8 #b00000000)) (SUBREG I16 (REG I128 (HOLE 2 XMM)) 6) (SUBREG I16 (REG I128 (HOLE 2 XMM)) 7)))) (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 5) (IFTHENELSE I16 (TSTEQ I1 (BAND I8 (INTCONST I8 (HOLE 3)) (INTCONST I8 #b00001000)) (INTCONST I8 #b00000000)) (IFTHENELSE I16 (TSTEQ I1 (BAND I8 (INTCONST I8 (HOLE 3)) (INTCONST I8 #b00000100)) (INTCONST I8 #b00000000)) (SUBREG I16 (REG I128 (HOLE 2 XMM)) 4) (SUBREG I16 (REG I128 (HOLE 2 XMM)) 5)) (IFTHENELSE I16 (TSTEQ I1 (BAND I8 (INTCONST I8 (HOLE 3)) (INTCONST I8 #b00000100)) (INTCONST I8 #b00000000)) (SUBREG I16 (REG I128 (HOLE 2 XMM)) 6) (SUBREG I16 (REG I128 (HOLE 2 XMM)) 7)))) (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 6) (IFTHENELSE I16 (TSTEQ I1 (BAND I8 (INTCONST I8 (HOLE 3)) (INTCONST I8 #b00100000)) (INTCONST I8 #b00000000)) (IFTHENELSE I16 (TSTEQ I1 (BAND I8 (INTCONST I8 (HOLE 3)) (INTCONST I8 #b00010000)) (INTCONST I8 #b00000000)) (SUBREG I16 (REG I128 (HOLE 2 XMM)) 4) (SUBREG I16 (REG I128 (HOLE 2 XMM)) 5)) (IFTHENELSE I16 (TSTEQ I1 (BAND I8 (INTCONST I8 (HOLE 3)) (INTCONST I8 #b00010000)) (INTCONST I8 #b00000000)) (SUBREG I16 (REG I128 (HOLE 2 XMM)) 6) (SUBREG I16 (REG I128 (HOLE 2 XMM)) 7)))) (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 7) (IFTHENELSE I16 (TSTEQ I1 (BAND I8 (INTCONST I8 (HOLE 3)) (INTCONST I8 #b10000000)) (INTCONST I8 #b00000000)) (IFTHENELSE I16 (TSTEQ I1 (BAND I8 (INTCONST I8 (HOLE 3)) (INTCONST I8 #b01000000)) (INTCONST I8 #b00000000)) (SUBREG I16 (REG I128 (HOLE 2 XMM)) 4) (SUBREG I16 (REG I128 (HOLE 2 XMM)) 5)) (IFTHENELSE I16 (TSTEQ I1 (BAND I8 (INTCONST I8 (HOLE 3)) (INTCONST I8 #b01000000)) (INTCONST I8 #b00000000)) (SUBREG I16 (REG I128 (HOLE 2 XMM)) 6) (SUBREG I16 (REG I128 (HOLE 2 XMM)) 7)))))) (DEFINST ("PSHUFHW ?1x,WORD PTR ??2s,?3c" "nil" "nil") (PARALLEL (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 4) (IFTHENELSE I16 (TSTEQ I1 (BAND I8 (INTCONST I8 (HOLE 3)) (INTCONST I8 #b00000010)) (INTCONST I8 #b00000000)) (IFTHENELSE I16 (TSTEQ I1 (BAND I8 (INTCONST I8 (HOLE 3)) (INTCONST I8 #b00000001)) (INTCONST I8 #b00000000)) (SUBREG I16 (MEM I128 (HOLE 2)) 4) (SUBREG I16 (MEM I128 (HOLE 2)) 5)) (IFTHENELSE I16 (TSTEQ I1 (BAND I8 (INTCONST I8 (HOLE 3)) (INTCONST I8 #b00000001)) (INTCONST I8 #b00000000)) (SUBREG I16 (MEM I128 (HOLE 2)) 6) (SUBREG I16 (MEM I128 (HOLE 2)) 7)))) (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 5) (IFTHENELSE I16 (TSTEQ I1 (BAND I8 (INTCONST I8 (HOLE 3)) (INTCONST I8 #b00001000)) (INTCONST I8 #b00000000)) (IFTHENELSE I16 (TSTEQ I1 (BAND I8 (INTCONST I8 (HOLE 3)) (INTCONST I8 #b00000100)) (INTCONST I8 #b00000000)) (SUBREG I16 (MEM I128 (HOLE 2)) 4) (SUBREG I16 (MEM I128 (HOLE 2)) 5)) (IFTHENELSE I16 (TSTEQ I1 (BAND I8 (INTCONST I8 (HOLE 3)) (INTCONST I8 #b00000100)) (INTCONST I8 #b00000000)) (SUBREG I16 (MEM I128 (HOLE 2)) 6) (SUBREG I16 (MEM I128 (HOLE 2)) 7)))) (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 6) (IFTHENELSE I16 (TSTEQ I1 (BAND I8 (INTCONST I8 (HOLE 3)) (INTCONST I8 #b00100000)) (INTCONST I8 #b00000000)) (IFTHENELSE I16 (TSTEQ I1 (BAND I8 (INTCONST I8 (HOLE 3)) (INTCONST I8 #b00010000)) (INTCONST I8 #b00000000)) (SUBREG I16 (MEM I128 (HOLE 2)) 4) (SUBREG I16 (MEM I128 (HOLE 2)) 5)) (IFTHENELSE I16 (TSTEQ I1 (BAND I8 (INTCONST I8 (HOLE 3)) (INTCONST I8 #b00010000)) (INTCONST I8 #b00000000)) (SUBREG I16 (MEM I128 (HOLE 2)) 6) (SUBREG I16 (MEM I128 (HOLE 2)) 7)))) (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 7) (IFTHENELSE I16 (TSTEQ I1 (BAND I8 (INTCONST I8 (HOLE 3)) (INTCONST I8 #b10000000)) (INTCONST I8 #b00000000)) (IFTHENELSE I16 (TSTEQ I1 (BAND I8 (INTCONST I8 (HOLE 3)) (INTCONST I8 #b01000000)) (INTCONST I8 #b00000000)) (SUBREG I16 (MEM I128 (HOLE 2)) 4) (SUBREG I16 (MEM I128 (HOLE 2)) 5)) (IFTHENELSE I16 (TSTEQ I1 (BAND I8 (INTCONST I8 (HOLE 3)) (INTCONST I8 #b01000000)) (INTCONST I8 #b00000000)) (SUBREG I16 (MEM I128 (HOLE 2)) 6) (SUBREG I16 (MEM I128 (HOLE 2)) 7)))))) ; (REG I128 (HOLE 2 XMM)) ==> (MEM I128 (HOLE 2)) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; 5.6.3 128ビットSIMD整数命令 ; Shuffle Packed Low Words ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;PSHUFLW xmm1, xmm2/m128 imm8 (DEFINST ("PSHUFLW ?1x,?2x,?3c" "nil" "nil") (PARALLEL (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 0) (IFTHENELSE I16 (TSTEQ I1 (BAND I8 (INTCONST I8 (HOLE 3)) (INTCONST I8 #b00000010)) (INTCONST I8 #b00000000)) (IFTHENELSE I16 (TSTEQ I1 (BAND I8 (INTCONST I8 (HOLE 3)) (INTCONST I8 #b00000001)) (INTCONST I8 #b00000000)) (SUBREG I16 (REG I128 (HOLE 2 XMM)) 0) (SUBREG I16 (REG I128 (HOLE 2 XMM)) 1)) (IFTHENELSE I16 (TSTEQ I1 (BAND I8 (INTCONST I8 (HOLE 3)) (INTCONST I8 #b00000001)) (INTCONST I8 #b00000000)) (SUBREG I16 (REG I128 (HOLE 2 XMM)) 2) (SUBREG I16 (REG I128 (HOLE 2 XMM)) 3)))) (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 1) (IFTHENELSE I16 (TSTEQ I1 (BAND I8 (INTCONST I8 (HOLE 3)) (INTCONST I8 #b00001000)) (INTCONST I8 #b00000000)) (IFTHENELSE I16 (TSTEQ I1 (BAND I8 (INTCONST I8 (HOLE 3)) (INTCONST I8 #b00000100)) (INTCONST I8 #b00000000)) (SUBREG I16 (REG I128 (HOLE 2 XMM)) 0) (SUBREG I16 (REG I128 (HOLE 2 XMM)) 1)) (IFTHENELSE I16 (TSTEQ I1 (BAND I8 (INTCONST I8 (HOLE 3)) (INTCONST I8 #b00000100)) (INTCONST I8 #b00000000)) (SUBREG I16 (REG I128 (HOLE 2 XMM)) 2) (SUBREG I16 (REG I128 (HOLE 2 XMM)) 3)))) (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 2) (IFTHENELSE I16 (TSTEQ I1 (BAND I8 (INTCONST I8 (HOLE 3)) (INTCONST I8 #b00100000)) (INTCONST I8 #b00000000)) (IFTHENELSE I16 (TSTEQ I1 (BAND I8 (INTCONST I8 (HOLE 3)) (INTCONST I8 #b00010000)) (INTCONST I8 #b00000000)) (SUBREG I16 (REG I128 (HOLE 2 XMM)) 0) (SUBREG I16 (REG I128 (HOLE 2 XMM)) 1)) (IFTHENELSE I16 (TSTEQ I1 (BAND I8 (INTCONST I8 (HOLE 3)) (INTCONST I8 #b00010000)) (INTCONST I8 #b00000000)) (SUBREG I16 (REG I128 (HOLE 2 XMM)) 2) (SUBREG I16 (REG I128 (HOLE 2 XMM)) 3)))) (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 3) (IFTHENELSE I16 (TSTEQ I1 (BAND I8 (INTCONST I8 (HOLE 3)) (INTCONST I8 #b10000000)) (INTCONST I8 #b00000000)) (IFTHENELSE I16 (TSTEQ I1 (BAND I8 (INTCONST I8 (HOLE 3)) (INTCONST I8 #b01000000)) (INTCONST I8 #b00000000)) (SUBREG I16 (REG I128 (HOLE 2 XMM)) 0) (SUBREG I16 (REG I128 (HOLE 2 XMM)) 1)) (IFTHENELSE I16 (TSTEQ I1 (BAND I8 (INTCONST I8 (HOLE 3)) (INTCONST I8 #b01000000)) (INTCONST I8 #b00000000)) (SUBREG I16 (REG I128 (HOLE 2 XMM)) 2) (SUBREG I16 (REG I128 (HOLE 2 XMM)) 3)))))) (DEFINST ("PSHUFLW ?1x,WORD PTR ??2s,?3c" "nil" "nil") (PARALLEL (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 0) (IFTHENELSE I16 (TSTEQ I1 (BAND I8 (INTCONST I8 (HOLE 3)) (INTCONST I8 #b00000010)) (INTCONST I8 #b00000000)) (IFTHENELSE I16 (TSTEQ I1 (BAND I8 (INTCONST I8 (HOLE 3)) (INTCONST I8 #b00000001)) (INTCONST I8 #b00000000)) (SUBREG I16 (MEM I128 (HOLE 2)) 0) (SUBREG I16 (MEM I128 (HOLE 2)) 1)) (IFTHENELSE I16 (TSTEQ I1 (BAND I8 (INTCONST I8 (HOLE 3)) (INTCONST I8 #b00000001)) (INTCONST I8 #b00000000)) (SUBREG I16 (MEM I128 (HOLE 2)) 2) (SUBREG I16 (MEM I128 (HOLE 2)) 3)))) (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 1) (IFTHENELSE I16 (TSTEQ I1 (BAND I8 (INTCONST I8 (HOLE 3)) (INTCONST I8 #b00001000)) (INTCONST I8 #b00000000)) (IFTHENELSE I16 (TSTEQ I1 (BAND I8 (INTCONST I8 (HOLE 3)) (INTCONST I8 #b00000100)) (INTCONST I8 #b00000000)) (SUBREG I16 (MEM I128 (HOLE 2)) 0) (SUBREG I16 (MEM I128 (HOLE 2)) 1)) (IFTHENELSE I16 (TSTEQ I1 (BAND I8 (INTCONST I8 (HOLE 3)) (INTCONST I8 #b00000100)) (INTCONST I8 #b00000000)) (SUBREG I16 (MEM I128 (HOLE 2)) 2) (SUBREG I16 (MEM I128 (HOLE 2)) 3)))) (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 2) (IFTHENELSE I16 (TSTEQ I1 (BAND I8 (INTCONST I8 (HOLE 3)) (INTCONST I8 #b00100000)) (INTCONST I8 #b00000000)) (IFTHENELSE I16 (TSTEQ I1 (BAND I8 (INTCONST I8 (HOLE 3)) (INTCONST I8 #b00010000)) (INTCONST I8 #b00000000)) (SUBREG I16 (MEM I128 (HOLE 2)) 0) (SUBREG I16 (MEM I128 (HOLE 2)) 1)) (IFTHENELSE I16 (TSTEQ I1 (BAND I8 (INTCONST I8 (HOLE 3)) (INTCONST I8 #b00010000)) (INTCONST I8 #b00000000)) (SUBREG I16 (MEM I128 (HOLE 2)) 2) (SUBREG I16 (MEM I128 (HOLE 2)) 3)))) (SET (SUBREG I16 (REG I128 (HOLE 1 XMM)) 3) (IFTHENELSE I16 (TSTEQ I1 (BAND I8 (INTCONST I8 (HOLE 3)) (INTCONST I8 #b10000000)) (INTCONST I8 #b00000000)) (IFTHENELSE I16 (TSTEQ I1 (BAND I8 (INTCONST I8 (HOLE 3)) (INTCONST I8 #b01000000)) (INTCONST I8 #b00000000)) (SUBREG I16 (MEM I128 (HOLE 2)) 0) (SUBREG I16 (MEM I128 (HOLE 2)) 1)) (IFTHENELSE I16 (TSTEQ I1 (BAND I8 (INTCONST I8 (HOLE 3)) (INTCONST I8 #b01000000)) (INTCONST I8 #b00000000)) (SUBREG I16 (MEM I128 (HOLE 2)) 2) (SUBREG I16 (MEM I128 (HOLE 2)) 3)))))) ; (REG I128 (HOLE 2 XMM)) ==> (MEM I128 (HOLE 2)) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; 5.6.3 128ビットSIMD整数命令 ; Shift Double Quadword Left Logical ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;PSLLDQ xmm1,imm8 (DEFINST ("PSLLDQ ?1x,?2c" "nil" "nil") (SET (REG I128 (HOLE 1 XMM)) (LSH I128 (REG I128 (HOLE 1 XMM)) (LSH I8 (INTCONST I8 (HOLE 2)) (INTCONST I8 3))))) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; 5.6.3 128ビットSIMD整数命令 ; Shift Double Quadword Right Logical ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;PSRLDQ xmm1,imm8 (DEFINST ("PSRLDQ ?1x,?2c" "nil" "nil") (SET (REG I128 (HOLE 1 XMM)) (RSHU I128 (REG I128 (HOLE 1 XMM)) (LSH I8 (INTCONST I8 (HOLE 2)) (INTCONST I8 3))))) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; 5.6.3 128ビットSIMD整数命令 ; Subtract Packed Quadword Integers ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;PSUBQ mm1, mm2/m64 (DEFINST ("PSUBQ ?1m,?2m" "nil" "nil") (SET (REG I64 (HOLE 1 MM)) (SUB I64 (REG I64 (HOLE 1 MM)) (REG I64 (HOLE 2 MM))))) (DEFINST ("PSUBQ ?1m,QWORD PTR ??2s" "nil" "nil") (SET (REG I64 (HOLE 1 MM)) (SUB I64 (REG I64 (HOLE 1 MM)) (MEM I64 (HOLE 2))))) ;PSUBQ xmm1, xmm2/m128 (DEFINST ("PSUBQ ?1x,?2x" "nil" "nil") (PARALLEL (SET (SUBREG I64 (REG I128 (HOLE 1 XMM)) 0) (SUB I64 (SUBREG I64 (REG I128 (HOLE 1 XMM)) 0) (SUBREG I64 (REG I128 (HOLE 2 XMM)) 0))) (SET (SUBREG I64 (REG I128 (HOLE 1 XMM)) 1) (SUB I64 (SUBREG I64 (REG I128 (HOLE 1 XMM)) 1) (SUBREG I64 (REG I128 (HOLE 2 XMM)) 1))))) (DEFINST ("PSUBQ ?1x,QWORD PTR ??2s" "nil" "nil") (PARALLEL (SET (SUBREG I64 (REG I128 (HOLE 1 XMM)) 0) (SUB I64 (SUBREG I64 (REG I128 (HOLE 1 XMM)) 0) (SUBREG I64 (MEM I128 (HOLE 2)) 0))) (SET (SUBREG I64 (REG I128 (HOLE 1 XMM)) 1) (SUB I64 (SUBREG I64 (REG I128 (HOLE 1 XMM)) 1) (SUBREG I64 (MEM I128 (HOLE 2)) 1))))) ;(REG I64 (HOLE 2 MM)) ==> (MEM I64 (HOLE 2)) ;(REG I128 (HOLE 2 XMM)) ==> (MEM I128 (HOLE 2)) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; 5.6.3 128ビットSIMD整数命令 ; Unpack High Data ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;PUNPCKHQDQ xmm1, xmm2/m128 (DEFINST ("PUNPCKHQDQ ?1x,?2x" "nil" "nil") (PARALLEL (SET (SUBREG I64 (REG I128 (HOLE 1 XMM)) 0) (SUBREG I64 (REG I128 (HOLE 1 XMM)) 1)) (SET (SUBREG I64 (REG I128 (HOLE 1 XMM)) 1) (SUBREG I64 (REG I128 (HOLE 2 XMM)) 1)))) (DEFINST ("PUNPCKHQDQ ?1x,QWORD PTR ??2s" "nil" "nil") (PARALLEL (SET (SUBREG I64 (REG I128 (HOLE 1 XMM)) 0) (SUBREG I64 (REG I128 (HOLE 1 XMM)) 1)) (SET (SUBREG I64 (REG I128 (HOLE 1 XMM)) 1) (SUBREG I64 (MEM I128 (HOLE 2)) 1)))) ; (REG I128 (HOLE 2 XMM)) ==> (MEM I128 (HOLE 2)) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; 5.6.3 128ビットSIMD整数命令 ; Unpack Low Data ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;PUNPCKLQDQ xmm1, xmm2/m128 (DEFINST ("PUNPCKLQDQ ?1x,?2x" "nil" "nil") (PARALLEL (SET (SUBREG I64 (REG I128 (HOLE 1 XMM)) 0) (SUBREG I64 (REG I128 (HOLE 1 XMM)) 0)) (SET (SUBREG I64 (REG I128 (HOLE 1 XMM)) 1) (SUBREG I64 (REG I128 (HOLE 2 XMM)) 0)))) (DEFINST ("PUNPCKLQDQ ?1x,QWORD PTR ??2s" "nil" "nil") (PARALLEL (SET (SUBREG I64 (REG I128 (HOLE 1 XMM)) 0) (SUBREG I64 (REG I128 (HOLE 1 XMM)) 0)) (SET (SUBREG I64 (REG I128 (HOLE 1 XMM)) 1) (SUBREG I64 (MEM I128 (HOLE 2)) 0)))) ; (REG I128 (HOLE 2 XMM)) ==> (MEM I128 (HOLE 2)) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; 5.6.4 キャッシュ制御命令と命令順序付け命令 ; Flush Cache Line ; Flushes cache line containing m8. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;CLFLUSH 不可 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; 5.6.4 キャッシュ制御命令と命令順序付け命令 ; Load Fence ; Serializes load operations. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;LFENCE 不可 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; 5.6.4 キャッシュ制御命令と命令順序付け命令 ; Store Selected Bytes of Double Quadword ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;MASKMOVDQU xmm1, xmm2 (DEFINST ("MASKMOVDQU ?1x,?2x" "nil" "nil") (PARALLEL (SET (MEM I8 (REG I32 EDI)) (IFTHENELSE I8 (TSTLTS I1 (SUBREG I8 (REG I128 (HOLE 2 XMM)) 0)(INTCONST I8 0)) (SUBREG I8 (REG I128 (HOLE 1 XMM)) 0) (MEM I8 (REG I32 EDI)))) (SET (MEM I8 (ADD I32 (REG I32 EDI) (INTCONST I32 1))) (IFTHENELSE I8 (TSTLTS I1 (SUBREG I8 (REG I128 (HOLE 2 XMM)) 1)(INTCONST I8 0)) (SUBREG I8 (REG I128 (HOLE 1 XMM)) 1) (MEM I8 (ADD I32 (REG I32 EDI) (INTCONST I32 1))))) (SET (MEM I8 (ADD I32 (REG I32 EDI) (INTCONST I32 2))) (IFTHENELSE I8 (TSTLTS I1 (SUBREG I8 (REG I128 (HOLE 2 XMM)) 2)(INTCONST I8 0)) (SUBREG I8 (REG I128 (HOLE 1 XMM)) 2) (MEM I8 (ADD I32 (REG I32 EDI) (INTCONST I32 2))))) (SET (MEM I8 (ADD I32 (REG I32 EDI) (INTCONST I32 3))) (IFTHENELSE I8 (TSTLTS I1 (SUBREG I8 (REG I128 (HOLE 2 XMM)) 3)(INTCONST I8 0)) (SUBREG I8 (REG I128 (HOLE 1 XMM)) 3) (MEM I8 (ADD I32 (REG I32 EDI) (INTCONST I32 3))))) (SET (MEM I8 (ADD I32 (REG I32 EDI) (INTCONST I32 4))) (IFTHENELSE I8 (TSTLTS I1 (SUBREG I8 (REG I128 (HOLE 2 XMM)) 4)(INTCONST I8 0)) (SUBREG I8 (REG I128 (HOLE 1 XMM)) 4) (MEM I8 (ADD I32 (REG I32 EDI) (INTCONST I32 4))))) (SET (MEM I8 (ADD I32 (REG I32 EDI) (INTCONST I32 5))) (IFTHENELSE I8 (TSTLTS I1 (SUBREG I8 (REG I128 (HOLE 2 XMM)) 5)(INTCONST I8 0)) (SUBREG I8 (REG I128 (HOLE 1 XMM)) 5) (MEM I8 (ADD I32 (REG I32 EDI) (INTCONST I32 5))))) (SET (MEM I8 (ADD I32 (REG I32 EDI) (INTCONST I32 6))) (IFTHENELSE I8 (TSTLTS I1 (SUBREG I8 (REG I128 (HOLE 2 XMM)) 6)(INTCONST I8 0)) (SUBREG I8 (REG I128 (HOLE 1 XMM)) 6) (MEM I8 (ADD I32 (REG I32 EDI) (INTCONST I32 6))))) (SET (MEM I8 (ADD I32 (REG I32 EDI) (INTCONST I32 7))) (IFTHENELSE I8 (TSTLTS I1 (SUBREG I8 (REG I128 (HOLE 2 XMM)) 7)(INTCONST I8 0)) (SUBREG I8 (REG I128 (HOLE 1 XMM)) 7) (MEM I8 (ADD I32 (REG I32 EDI) (INTCONST I32 7))))) (SET (MEM I8 (ADD I32 (REG I32 EDI) (INTCONST I32 8))) (IFTHENELSE I8 (TSTLTS I1 (SUBREG I8 (REG I128 (HOLE 2 XMM)) 8)(INTCONST I8 0)) (SUBREG I8 (REG I128 (HOLE 1 XMM)) 8) (MEM I8 (ADD I32 (REG I32 EDI) (INTCONST I32 8))))) (SET (MEM I8 (ADD I32 (REG I32 EDI) (INTCONST I32 9))) (IFTHENELSE I8 (TSTLTS I1 (SUBREG I8 (REG I128 (HOLE 2 XMM)) 9)(INTCONST I8 0)) (SUBREG I8 (REG I128 (HOLE 1 XMM)) 9) (MEM I8 (ADD I32 (REG I32 EDI) (INTCONST I32 9))))) (SET (MEM I8 (ADD I32 (REG I32 EDI) (INTCONST I32 10))) (IFTHENELSE I8 (TSTLTS I1 (SUBREG I8 (REG I128 (HOLE 2 XMM)) 10)(INTCONST I8 0)) (SUBREG I8 (REG I128 (HOLE 1 XMM)) 10) (MEM I8 (ADD I32 (REG I32 EDI) (INTCONST I32 10))))) (SET (MEM I8 (ADD I32 (REG I32 EDI) (INTCONST I32 11))) (IFTHENELSE I8 (TSTLTS I1 (SUBREG I8 (REG I128 (HOLE 2 XMM)) 11)(INTCONST I8 0)) (SUBREG I8 (REG I128 (HOLE 1 XMM)) 11) (MEM I8 (ADD I32 (REG I32 EDI) (INTCONST I32 11))))) (SET (MEM I8 (ADD I32 (REG I32 EDI) (INTCONST I32 12))) (IFTHENELSE I8 (TSTLTS I1 (SUBREG I8 (REG I128 (HOLE 2 XMM)) 12)(INTCONST I8 0)) (SUBREG I8 (REG I128 (HOLE 1 XMM)) 12) (MEM I8 (ADD I32 (REG I32 EDI) (INTCONST I32 12))))) (SET (MEM I8 (ADD I32 (REG I32 EDI) (INTCONST I32 13))) (IFTHENELSE I8 (TSTLTS I1 (SUBREG I8 (REG I128 (HOLE 2 XMM)) 13)(INTCONST I8 0)) (SUBREG I8 (REG I128 (HOLE 1 XMM)) 13) (MEM I8 (ADD I32 (REG I32 EDI) (INTCONST I32 13))))) (SET (MEM I8 (ADD I32 (REG I32 EDI) (INTCONST I32 14))) (IFTHENELSE I8 (TSTLTS I1 (SUBREG I8 (REG I128 (HOLE 2 XMM)) 14)(INTCONST I8 0)) (SUBREG I8 (REG I128 (HOLE 1 XMM)) 14) (MEM I8 (ADD I32 (REG I32 EDI) (INTCONST I32 14))))) (SET (MEM I8 (ADD I32 (REG I32 EDI) (INTCONST I32 15))) (IFTHENELSE I8 (TSTLTS I1 (SUBREG I8 (REG I128 (HOLE 2 XMM)) 15)(INTCONST I8 0)) (SUBREG I8 (REG I128 (HOLE 1 XMM)) 15) (MEM I8 (ADD I32 (REG I32 EDI) (INTCONST I32 15))))))) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; 5.6.4 キャッシュ制御命令と命令順序付け命令 ; Memory Fence ; Serializes load and store operations. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;MFENCE 不可 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; 5.6.4 キャッシュ制御命令と命令順序付け命令 ; Store Double Quadword Using Non-Temporal Hint ;Move double quadword from xmm to m128 using non-temporal hint. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;MOVNTDQ m128, xmm ; Non Temporal Hint は記述できないので、MOVDQA m128, xmm と同じ。 (DEFINST ("MOVNTDQ QWORD PTR ??1s,?2x" "nil" "nil") (SET (MEM I128 (HOLE 1)) (REG I128 (HOLE 2 XMM)))) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; 5.6.4 キャッシュ制御命令と命令順序付け命令 ; Store Doubleword Using Non-Temporal Hint ;Move doubleword from r32 to m32 using non-temporal hint. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;MOVNTI m32, r32 ; Non Temporal Hint は記述できないので、MOV m32, r32 と同じ。 (DEFINST ("MOVNTI DWORD PTR ??1s,?2r" "nil" "nil") (SET (MEM I32 (HOLE 1)) (REG I32 (HOLE 2 R32)))) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; 5.6.4 キャッシュ制御命令と命令順序付け命令 ; Store Packed Double-Precision Floating-Point Values ; Using Non-Temporal Hint ;Move packed double-precision floating-point values from ;xmm to m128 using non-temporal hint. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;MOVNTPD m128,xmm ; Non Temporal Hint は記述できないので、MOVAPD m128, xmm と同じ。 (DEFINST ("MOVNTPD REAL8 PTR ??1s,?2x" "nil" "nil") (PARALLEL (SET (SUBREG F64 (MEM I128 (HOLE 1)) 0) (SUBREG F64 (REG I128 (HOLE 2 XMM)) 0)) (SET (SUBREG F64 (MEM I128 (HOLE 1)) 1) (SUBREG F64 (REG I128 (HOLE 2 XMM)) 1)))) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; 5.6.4 キャッシュ制御命令と命令順序付け命令 ; Spin Loop Hint ;Gives hint to processor that improves performance of spin-wait loops. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;PAUSE 不可 ;パックド符号なし整数の平均値を求める ;PAVGUSB mm,mm (DEFINST ("PAVGUSB ?1m,?2m" "PAVGUSB %?2m,%?1m" "PAVGUSB ?1m,?2m") (PARALLEL (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 0) (CONVIT I8 (RSHU I9 (ADD I9 (ADD I9 (CONVZX I9 (SUBREG I8 (REG I64 (HOLE 1 MM)) 0)) (CONVZX I9 (SUBREG I8 (REG I64 (HOLE 2 MM)) 0))) (CONVZX I9 (INTCONST I8 1))) (INTCONST I8 1)))) (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 1) (CONVIT I8 (RSHU I9 (ADD I9 (ADD I9 (CONVZX I9 (SUBREG I8 (REG I64 (HOLE 1 MM)) 1)) (CONVZX I9 (SUBREG I8 (REG I64 (HOLE 2 MM)) 1))) (CONVZX I9 (INTCONST I8 1))) (INTCONST I8 1)))) (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 2) (CONVIT I8 (RSHU I9 (ADD I9 (ADD I9 (CONVZX I9 (SUBREG I8 (REG I64 (HOLE 1 MM)) 2)) (CONVZX I9 (SUBREG I8 (REG I64 (HOLE 2 MM)) 2))) (CONVZX I9 (INTCONST I8 1))) (INTCONST I8 1)))) (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 3) (CONVIT I8 (RSHU I9 (ADD I9 (ADD I9 (CONVZX I9 (SUBREG I8 (REG I64 (HOLE 1 MM)) 3)) (CONVZX I9 (SUBREG I8 (REG I64 (HOLE 2 MM)) 3))) (CONVZX I9 (INTCONST I8 1))) (INTCONST I8 1)))) (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 4) (CONVIT I8 (RSHU I9 (ADD I9 (ADD I9 (CONVZX I9 (SUBREG I8 (REG I64 (HOLE 1 MM)) 4)) (CONVZX I9 (SUBREG I8 (REG I64 (HOLE 2 MM)) 4))) (CONVZX I9 (INTCONST I8 1))) (INTCONST I8 1)))) (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 5) (CONVIT I8 (RSHU I9 (ADD I9 (ADD I9 (CONVZX I9 (SUBREG I8 (REG I64 (HOLE 1 MM)) 5)) (CONVZX I9 (SUBREG I8 (REG I64 (HOLE 2 MM)) 5))) (CONVZX I9 (INTCONST I8 1))) (INTCONST I8 1)))) (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 6) (CONVIT I8 (RSHU I9 (ADD I9 (ADD I9 (CONVZX I9 (SUBREG I8 (REG I64 (HOLE 1 MM)) 6)) (CONVZX I9 (SUBREG I8 (REG I64 (HOLE 2 MM)) 6))) (CONVZX I9 (INTCONST I8 1))) (INTCONST I8 1)))) (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 7) (CONVIT I8 (RSHU I9 (ADD I9 (ADD I9 (CONVZX I9 (SUBREG I8 (REG I64 (HOLE 1 MM)) 7)) (CONVZX I9 (SUBREG I8 (REG I64 (HOLE 2 MM)) 7))) (CONVZX I9 (INTCONST I8 1))) (INTCONST I8 1)))))) ;PAVGUSB mm,m64 (DEFINST ("PAVGUSB ?1m,QWORD PTR ??2s" "PAVGUSB ??2s,%?1m" "PAVGUSB ?1m,QWORD PTR ??2s") (PARALLEL (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 0) (CONVIT I8 (RSHU I9 (ADD I9 (ADD I9 (CONVZX I9 (SUBREG I8 (REG I64 (HOLE 1 MM)) 0)) (CONVZX I9 (SUBREG I8 (MEM I64 (HOLE 2)) 0))) (CONVZX I9 (INTCONST I8 1))) (INTCONST I8 1)))) (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 1) (CONVIT I8 (RSHU I9 (ADD I9 (ADD I9 (CONVZX I9 (SUBREG I8 (REG I64 (HOLE 1 MM)) 1)) (CONVZX I9 (SUBREG I8 (MEM I64 (HOLE 2)) 1))) (CONVZX I9 (INTCONST I8 1))) (INTCONST I8 1)))) (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 2) (CONVIT I8 (RSHU I9 (ADD I9 (ADD I9 (CONVZX I9 (SUBREG I8 (REG I64 (HOLE 1 MM)) 2)) (CONVZX I9 (SUBREG I8 (MEM I64 (HOLE 2)) 2))) (CONVZX I9 (INTCONST I8 1))) (INTCONST I8 1)))) (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 3) (CONVIT I8 (RSHU I9 (ADD I9 (ADD I9 (CONVZX I9 (SUBREG I8 (REG I64 (HOLE 1 MM)) 3)) (CONVZX I9 (SUBREG I8 (MEM I64 (HOLE 2)) 3))) (CONVZX I9 (INTCONST I8 1))) (INTCONST I8 1)))) (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 4) (CONVIT I8 (RSHU I9 (ADD I9 (ADD I9 (CONVZX I9 (SUBREG I8 (REG I64 (HOLE 1 MM)) 4)) (CONVZX I9 (SUBREG I8 (MEM I64 (HOLE 2)) 4))) (CONVZX I9 (INTCONST I8 1))) (INTCONST I8 1)))) (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 5) (CONVIT I8 (RSHU I9 (ADD I9 (ADD I9 (CONVZX I9 (SUBREG I8 (REG I64 (HOLE 1 MM)) 5)) (CONVZX I9 (SUBREG I8 (MEM I64 (HOLE 2)) 5))) (CONVZX I9 (INTCONST I8 1))) (INTCONST I8 1)))) (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 6) (CONVIT I8 (RSHU I9 (ADD I9 (ADD I9 (CONVZX I9 (SUBREG I8 (REG I64 (HOLE 1 MM)) 6)) (CONVZX I9 (SUBREG I8 (MEM I64 (HOLE 2)) 6))) (CONVZX I9 (INTCONST I8 1))) (INTCONST I8 1)))) (SET (SUBREG I8 (REG I64 (HOLE 1 MM)) 7) (CONVIT I8 (RSHU I9 (ADD I9 (ADD I9 (CONVZX I9 (SUBREG I8 (REG I64 (HOLE 1 MM)) 7)) (CONVZX I9 (SUBREG I8 (MEM I64 (HOLE 2)) 7))) (CONVZX I9 (INTCONST I8 1))) (INTCONST I8 1)))))) ;2つの単精度浮動小数点値を2つの符号付きダブルワード整数に変換 ;PF2ID mm,mm (DEFINST ("PF2ID ?1m,?2m" "PF2ID %?2m,%?1m" "PF2ID ?1m,?2m") (PARALLEL (SET (SUBREG I32 (REG I64 (HOLE 1 MM)) 0) (IFTHENELSE I32 (TSTGES I1 (SUBREG F32 (REG I64 (HOLE 2 MM)) 0) (FLOATCONST F32 2147483648.0)) (INTCONST I32 #x7FFFFFFF) (IFTHENELSE I32 (TSTLES I1 (SUBREG F32 (REG I64 (HOLE 2 MM)) 0) (FLOATCONST F32 -2147483648.0)) (INTCONST I32 #x80000000) (CONVFIZ I32 (SUBREG F32 (REG I64 (HOLE 2 MM)) 0))))) (SET (SUBREG I32 (REG I64 (HOLE 1 MM)) 1) (IFTHENELSE I32 (TSTGES I1 (SUBREG F32 (REG I64 (HOLE 2 MM)) 1) (FLOATCONST F32 2147483648.0)) (INTCONST I32 #x7FFFFFFF) (IFTHENELSE I32 (TSTLES I1 (SUBREG F32 (REG I64 (HOLE 2 MM)) 1) (FLOATCONST F32 -2147483648.0)) (INTCONST I32 #x80000000) (CONVFIZ I32 (SUBREG F32 (REG I64 (HOLE 2 MM)) 1))))))) ;PF2ID mm,m64 (DEFINST ("PF2ID ?1m,QWORD PTR ??2s" "PF2ID ??2s,%?1m" "PF2ID ?1m,QWORD PTR ??2s") (PARALLEL (SET (SUBREG I32 (REG I64 (HOLE 1 MM)) 0) (IFTHENELSE I32 (TSTGES I1 (SUBREG F32 (MEM I64 (HOLE 2)) 0) (FLOATCONST F32 2147483648.0)) (INTCONST I32 #x7FFFFFFF) (IFTHENELSE I32 (TSTLES I1 (SUBREG F32 (MEM I64 (HOLE 2)) 0) (FLOATCONST F32 -2147483648.0)) (INTCONST I32 #x80000000) (CONVFIZ I32 (SUBREG F32 (MEM I64 (HOLE 2)) 0))))) (SET (SUBREG I32 (REG I64 (HOLE 1 MM)) 1) (IFTHENELSE I32 (TSTGES I1 (SUBREG F32 (MEM I64 (HOLE 2)) 1) (FLOATCONST F32 2147483648.0)) (INTCONST I32 #x7FFFFFFF) (IFTHENELSE I32 (TSTLES I1 (SUBREG F32 (MEM I64 (HOLE 2)) 1) (FLOATCONST F32 -2147483648.0)) (INTCONST I32 #x80000000) (CONVFIZ I32 (SUBREG F32 (MEM I64 (HOLE 2)) 1))))))) ;2つの単精度浮動小数点値を2つの符号付きワード整数に変換 ;PF2IW mm,mm (DEFINST ("PF2IW ?1m,?2m" "PF2IW %?2m,%?1m" "PF2IW ?1m,?2m") (PARALLEL (SET (SUBREG I32 (REG I64 (HOLE 1 MM)) 0) (IFTHENELSE I32 (TSTGES I1 (SUBREG F32 (REG I64 (HOLE 2 MM)) 0) (FLOATCONST F32 32768.0)) (INTCONST I32 #x00007FFF) (IFTHENELSE I32 (TSTLES I1 (SUBREG F32 (REG I64 (HOLE 2 MM)) 0) (FLOATCONST F32 -32768.0)) (INTCONST I32 #xFFFF8000) (CONVFIZ I32 (SUBREG F32 (REG I64 (HOLE 2 MM)) 0))))) (SET (SUBREG I32 (REG I64 (HOLE 1 MM)) 1) (IFTHENELSE I32 (TSTGES I1 (SUBREG F32 (REG I64 (HOLE 2 MM)) 1) (FLOATCONST F32 32768.0)) (INTCONST I32 #x00007FFF) (IFTHENELSE I32 (TSTLES I1 (SUBREG F32 (REG I64 (HOLE 2 MM)) 1) (FLOATCONST F32 -32768.0)) (INTCONST I32 #xFFFF8000) (CONVFIZ I32 (SUBREG F32 (REG I64 (HOLE 2 MM)) 1))))))) ;PF2IW mm,m64 (DEFINST ("PF2IW ?1m,QWORD PTR ??2s" "PF2IW ??2s,%?1m" "PF2IW ?1m,QWORD PTR ??2s") (PARALLEL (SET (SUBREG I32 (REG I64 (HOLE 1 MM)) 0) (IFTHENELSE I32 (TSTGES I1 (SUBREG F32 (MEM I64 (HOLE 2)) 0) (FLOATCONST F32 32768.0)) (INTCONST I32 #x00007FFF) (IFTHENELSE I32 (TSTLES I1 (SUBREG F32 (MEM I64 (HOLE 2)) 0) (FLOATCONST F32 -32768.0)) (INTCONST I32 #xFFFF8000) (CONVFIZ I32 (SUBREG F32 (MEM I64 (HOLE 2)) 0))))) (SET (SUBREG I32 (REG I64 (HOLE 1 MM)) 1) (IFTHENELSE I32 (TSTGES I1 (SUBREG F32 (MEM I64 (HOLE 2)) 1) (FLOATCONST F32 32768.0)) (INTCONST I32 #x00007FFF) (IFTHENELSE I32 (TSTLES I1 (SUBREG F32 (MEM I64 (HOLE 2)) 1) (FLOATCONST F32 -32768.0)) (INTCONST I32 #xFFFF8000) (CONVFIZ I32 (SUBREG F32 (MEM I64 (HOLE 2)) 1))))))) ;3DNow! ;PFACC mmreg1, mmreg2 (DEFINST ("PFACC ?1m,?2m" "PFACC %?2m,%?1m" "PFACC ?1m,?2m") (PARALLEL (SET (SUBREG F32 (REG I64 (HOLE 1 MM)) 0) (ADD F32 (SUBREG F32 (REG I64 (HOLE 1 MM)) 0) (SUBREG F32 (REG I64 (HOLE 1 MM)) 1))) (SET (SUBREG F32 (REG I64 (HOLE 1 MM)) 1) (ADD F32 (SUBREG F32 (REG I64 (HOLE 2 MM)) 0) (SUBREG F32 (REG I64 (HOLE 2 MM)) 1))))) ;PFACC mmreg1, mem64 (DEFINST ("PFACC ?1m,QWORD PTR ??2s" "PFACC ??2s,%?1m" "PFACC ?1m,QWORD PTR ??2s") (PARALLEL (SET (SUBREG F32 (REG I64 (HOLE 1 MM)) 0) (ADD F32 (SUBREG F32 (REG I64 (HOLE 1 MM)) 0) (SUBREG F32 (REG I64 (HOLE 1 MM)) 1))) (SET (SUBREG F32 (REG I64 (HOLE 1 MM)) 1) (ADD F32 (SUBREG F32 (MEM I64 (HOLE 2)) 0) (SUBREG F32 (MEM I64 (HOLE 2)) 1))))) ;3DNow! ;PFADD mmreg1, mmreg2 (DEFINST ("PFADD ?1m,?2m" "PFADD %?2m,%?1m" "PFADD ?1m,?2m") (PARALLEL (SET (SUBREG F32 (REG I64 (HOLE 1 MM)) 0) (ADD F32 (SUBREG F32 (REG I64 (HOLE 1 MM)) 0) (SUBREG F32 (REG I64 (HOLE 2 MM)) 0))) (SET (SUBREG F32 (REG I64 (HOLE 1 MM)) 1) (ADD F32 (SUBREG F32 (REG I64 (HOLE 1 MM)) 1) (SUBREG F32 (REG I64 (HOLE 2 MM)) 1))))) ;PFADD mmreg1, mem64 (DEFINST ("PFADD ?1m,QWORD PTR ??2s" "PFADD ??2s,%?1m" "PFADD ?1m,QWORD PTR ??2s") (PARALLEL (SET (SUBREG F32 (REG I64 (HOLE 1 MM)) 0) (ADD F32 (SUBREG F32 (REG I64 (HOLE 1 MM)) 0) (SUBREG F32 (MEM I64 (HOLE 2)) 0))) (SET (SUBREG F32 (REG I64 (HOLE 1 MM)) 1) (ADD F32 (SUBREG F32 (REG I64 (HOLE 1 MM)) 1) (SUBREG F32 (MEM I64 (HOLE 2)) 1))))) ;3DNow! ;PFCMPEQ mmreg1, mmreg2 (DEFINST ("PFCMPEQ ?1m,?2m" "PFCMPEQ %?2m,%?1m" "PFCMPEQ ?1m,?2m") (PARALLEL (SET (SUBREG F32 (REG I64 (HOLE 1 MM)) 0) (TSTEQ F32 (SUBREG F32 (REG I64 (HOLE 1 MM)) 0) (SUBREG F32 (REG I64 (HOLE 2 MM)) 0))) (SET (SUBREG F32 (REG I64 (HOLE 1 MM)) 1) (TSTEQ F32 (SUBREG F32 (REG I64 (HOLE 1 MM)) 1) (SUBREG F32 (REG I64 (HOLE 2 MM)) 1))))) ;PFCMPEQ mmreg1, mem64 (DEFINST ("PFCMPEQ ?1m,QWORD PTR ??2s" "PFCMPEQ ??2s,%?1m" "PFCMPEQ ?1m,QWORD PTR ??2s") (PARALLEL (SET (SUBREG F32 (REG I64 (HOLE 1 MM)) 0) (TSTEQ F32 (SUBREG F32 (REG I64 (HOLE 1 MM)) 0) (SUBREG F32 (MEM I64 (HOLE 2)) 0))) (SET (SUBREG F32 (REG I64 (HOLE 1 MM)) 1) (TSTEQ F32 (SUBREG F32 (REG I64 (HOLE 1 MM)) 1) (SUBREG F32 (MEM I64 (HOLE 2)) 1))))) ;(REG I64 (HOLE 2 MM)) ==> (MEM I64 (HOLE 2)) ;3DNow! ;PFCMPGE mmreg1, mmreg2 (DEFINST ("PFCMPGE ?1m,?2m" "PFCMPGE %?2m,%?1m" "PFCMPGE ?1m,?2m") (PARALLEL (SET (SUBREG F32 (REG I64 (HOLE 1 MM)) 0) (TSTGES F32 (SUBREG F32 (REG I64 (HOLE 1 MM)) 0) (SUBREG F32 (REG I64 (HOLE 2 MM)) 0))) (SET (SUBREG F32 (REG I64 (HOLE 1 MM)) 1) (TSTGES F32 (SUBREG F32 (REG I64 (HOLE 1 MM)) 1) (SUBREG F32 (REG I64 (HOLE 2 MM)) 1))))) ;PFCMPGE mmreg1, mem64 (DEFINST ("PFCMPGE ?1m,QWORD PTR ??2s" "PFCMPGE ??2s,%?1m" "PFCMPGE ?1m,QWORD PTR ??2s") (PARALLEL (SET (SUBREG F32 (REG I64 (HOLE 1 MM)) 0) (TSTGES F32 (SUBREG F32 (REG I64 (HOLE 1 MM)) 0) (SUBREG F32 (MEM I64 (HOLE 2)) 0))) (SET (SUBREG F32 (REG I64 (HOLE 1 MM)) 1) (TSTGES F32 (SUBREG F32 (REG I64 (HOLE 1 MM)) 1) (SUBREG F32 (MEM I64 (HOLE 2)) 1))))) ;(REG I64 (HOLE 2 MM)) ==> (MEM I64 (HOLE 2)) ;3DNow! ;PFCMPGT mmreg1, mmreg2 (DEFINST ("PFCMPGT ?1m,?2m" "PFCMPGT %?2m,%?1m" "PFCMPGT ?1m,?2m") (PARALLEL (SET (SUBREG F32 (REG I64 (HOLE 1 MM)) 0) (TSTGTS F32 (SUBREG F32 (REG I64 (HOLE 1 MM)) 0) (SUBREG F32 (REG I64 (HOLE 2 MM)) 0))) (SET (SUBREG F32 (REG I64 (HOLE 1 MM)) 1) (TSTGTS F32 (SUBREG F32 (REG I64 (HOLE 1 MM)) 1) (SUBREG F32 (REG I64 (HOLE 2 MM)) 1))))) ;PFCMPGT mmreg1, mem64 (DEFINST ("PFCMPGT ?1m,QWORD PTR ??2s" "PFCMPGT ??2s,%?1m" "PFCMPGT ?1m,QWORD PTR ??2s") (PARALLEL (SET (SUBREG F32 (REG I64 (HOLE 1 MM)) 0) (TSTGTS F32 (SUBREG F32 (REG I64 (HOLE 1 MM)) 0) (SUBREG F32 (MEM I64 (HOLE 2)) 0))) (SET (SUBREG F32 (REG I64 (HOLE 1 MM)) 1) (TSTGTS F32 (SUBREG F32 (REG I64 (HOLE 1 MM)) 1) (SUBREG F32 (MEM I64 (HOLE 2)) 1))))) ;(REG I64 (HOLE 2 MM)) ==> (MEM I64 (HOLE 2)) ;3DNow! ;PFMAX mmreg1, mmreg2 (DEFINST ("PFMAX ?1m,?2m" "PFMAX %?2m,%?1m" "PFMAX ?1m,?2m") (PARALLEL (SET (SUBREG F32 (REG I64 (HOLE 1 MM)) 0) (IFTHENELSE F32 (BAND I1 (TSTEQ I1 (SUBREG F32 (REG I64 (HOLE 1 MM)) 0) (FLOATCONST F32 -0.0)) (TSTEQ I1 (SUBREG F32 (REG I64 (HOLE 2 MM)) 0) (FLOATCONST F32 -0.0))) (FLOATCONST F32 0.0) (IFTHENELSE F32 (TSTGTS I1 (SUBREG F32 (REG I64 (HOLE 1 MM)) 0) (SUBREG F32 (REG I64 (HOLE 2 MM)) 0)) (IFTHENELSE F32 (TSTEQ I1 (SUBREG F32 (REG I64 (HOLE 1 MM)) 0) (FLOATCONST F32 -0.0)) (FLOATCONST F32 0.0) (SUBREG F32 (REG I64 (HOLE 1 MM)) 0)) (IFTHENELSE F32 (TSTEQ I1 (SUBREG F32 (REG I64 (HOLE 2 MM)) 0) (FLOATCONST F32 -0.0)) (FLOATCONST F32 0.0) (SUBREG F32 (REG I64 (HOLE 2 MM)) 0))))) (SET (SUBREG F32 (REG I64 (HOLE 1 MM)) 1) (IFTHENELSE F32 (BAND I1 (TSTEQ I1 (SUBREG F32 (REG I64 (HOLE 1 MM)) 1) (FLOATCONST F32 -0.0)) (TSTEQ I1 (SUBREG F32 (REG I64 (HOLE 2 MM)) 1) (FLOATCONST F32 -0.0))) (FLOATCONST F32 0.0) (IFTHENELSE F32 (TSTGTS I1 (SUBREG F32 (REG I64 (HOLE 1 MM)) 1) (SUBREG F32 (REG I64 (HOLE 2 MM)) 1)) (IFTHENELSE F32 (TSTEQ I1 (SUBREG F32 (REG I64 (HOLE 1 MM)) 1) (FLOATCONST F32 -0.0)) (FLOATCONST F32 0.0) (SUBREG F32 (REG I64 (HOLE 1 MM)) 1)) (IFTHENELSE F32 (TSTEQ I1 (SUBREG F32 (REG I64 (HOLE 2 MM)) 1) (FLOATCONST F32 -0.0)) (FLOATCONST F32 0.0) (SUBREG F32 (REG I64 (HOLE 2 MM)) 1))))))) ;PFMAX mmreg1, mem64 (DEFINST ("PFMAX ?1m,QWORD PTR ??2s" "PFMAX ??2s,%?1m" "PFMAX ?1m,QWORD PTR ??2s") (PARALLEL (SET (SUBREG F32 (REG I64 (HOLE 1 MM)) 0) (IFTHENELSE F32 (BAND I1 (TSTEQ I1 (SUBREG F32 (REG I64 (HOLE 1 MM)) 0) (FLOATCONST F32 -0.0)) (TSTEQ I1 (SUBREG F32 (MEM I64 (HOLE 2)) 0) (FLOATCONST F32 -0.0))) (FLOATCONST F32 0.0) (IFTHENELSE F32 (TSTGTS I1 (SUBREG F32 (REG I64 (HOLE 1 MM)) 0) (SUBREG F32 (MEM I64 (HOLE 2)) 0)) (IFTHENELSE F32 (TSTEQ I1 (SUBREG F32 (REG I64 (HOLE 1 MM)) 0) (FLOATCONST F32 -0.0)) (FLOATCONST F32 0.0) (SUBREG F32 (REG I64 (HOLE 1 MM)) 0)) (IFTHENELSE F32 (TSTEQ I1 (SUBREG F32 (MEM I64 (HOLE 2)) 0) (FLOATCONST F32 -0.0)) (FLOATCONST F32 0.0) (SUBREG F32 (MEM I64 (HOLE 2)) 0))))) (SET (SUBREG F32 (REG I64 (HOLE 1 MM)) 1) (IFTHENELSE F32 (BAND I1 (TSTEQ I1 (SUBREG F32 (REG I64 (HOLE 1 MM)) 1) (FLOATCONST F32 -0.0)) (TSTEQ I1 (SUBREG F32 (MEM I64 (HOLE 2)) 1) (FLOATCONST F32 -0.0))) (FLOATCONST F32 0.0) (IFTHENELSE F32 (TSTGTS I1 (SUBREG F32 (REG I64 (HOLE 1 MM)) 1) (SUBREG F32 (MEM I64 (HOLE 2)) 1)) (IFTHENELSE F32 (TSTEQ I1 (SUBREG F32 (REG I64 (HOLE 1 MM)) 1) (FLOATCONST F32 -0.0)) (FLOATCONST F32 0.0) (SUBREG F32 (REG I64 (HOLE 1 MM)) 1)) (IFTHENELSE F32 (TSTEQ I1 (SUBREG F32 (MEM I64 (HOLE 2)) 1) (FLOATCONST F32 -0.0)) (FLOATCONST F32 0.0) (SUBREG F32 (MEM I64 (HOLE 2)) 1))))))) ;(REG I64 (HOLE 2 MM)) ==> (MEM I64 (HOLE 2)) ;3DNow! ;PFMIN mmreg1, mmreg2 (DEFINST ("PFMIN ?1m,?2m" "PFMIN %?2m,%?1m" "PFMIN ?1m,?2m") (PARALLEL (SET (SUBREG F32 (REG I64 (HOLE 1 MM)) 0) (IFTHENELSE F32 (BAND I1 (TSTEQ I1 (SUBREG F32 (REG I64 (HOLE 1 MM)) 0) (FLOATCONST F32 -0.0)) (TSTEQ I1 (SUBREG F32 (REG I64 (HOLE 2 MM)) 0) (FLOATCONST F32 -0.0))) (FLOATCONST F32 0.0) (IFTHENELSE F32 (TSTLTS I1 (SUBREG F32 (REG I64 (HOLE 1 MM)) 0) (SUBREG F32 (REG I64 (HOLE 2 MM)) 0)) (IFTHENELSE F32 (TSTEQ I1 (SUBREG F32 (REG I64 (HOLE 1 MM)) 0) (FLOATCONST F32 -0.0)) (FLOATCONST F32 0.0) (SUBREG F32 (REG I64 (HOLE 1 MM)) 0)) (IFTHENELSE F32 (TSTEQ I1 (SUBREG F32 (REG I64 (HOLE 2 MM)) 0) (FLOATCONST F32 -0.0)) (FLOATCONST F32 0.0) (SUBREG F32 (REG I64 (HOLE 2 MM)) 0))))) (SET (SUBREG F32 (REG I64 (HOLE 1 MM)) 1) (IFTHENELSE F32 (BAND I1 (TSTEQ I1 (SUBREG F32 (REG I64 (HOLE 1 MM)) 1) (FLOATCONST F32 -0.0)) (TSTEQ I1 (SUBREG F32 (REG I64 (HOLE 2 MM)) 1) (FLOATCONST F32 -0.0))) (FLOATCONST F32 0.0) (IFTHENELSE F32 (TSTLTS I1 (SUBREG F32 (REG I64 (HOLE 1 MM)) 1) (SUBREG F32 (REG I64 (HOLE 2 MM)) 1)) (IFTHENELSE F32 (TSTEQ I1 (SUBREG F32 (REG I64 (HOLE 1 MM)) 1) (FLOATCONST F32 -0.0)) (FLOATCONST F32 0.0) (SUBREG F32 (REG I64 (HOLE 1 MM)) 1)) (IFTHENELSE F32 (TSTEQ I1 (SUBREG F32 (REG I64 (HOLE 2 MM)) 1) (FLOATCONST F32 -0.0)) (FLOATCONST F32 0.0) (SUBREG F32 (REG I64 (HOLE 2 MM)) 1))))))) ;PFMIN mmreg1, mem64 (DEFINST ("PFMIN ?1m,QWORD PTR ??2s" "PFMIN ??2s,%?1m" "PFMIN ?1m,QWORD PTR ??2s") (PARALLEL (SET (SUBREG F32 (REG I64 (HOLE 1 MM)) 0) (IFTHENELSE F32 (BAND I1 (TSTEQ I1 (SUBREG F32 (REG I64 (HOLE 1 MM)) 0) (FLOATCONST F32 -0.0)) (TSTEQ I1 (SUBREG F32 (MEM I64 (HOLE 2)) 0) (FLOATCONST F32 -0.0))) (FLOATCONST F32 0.0) (IFTHENELSE F32 (TSTLTS I1 (SUBREG F32 (REG I64 (HOLE 1 MM)) 0) (SUBREG F32 (MEM I64 (HOLE 2)) 0)) (IFTHENELSE F32 (TSTEQ I1 (SUBREG F32 (REG I64 (HOLE 1 MM)) 0) (FLOATCONST F32 -0.0)) (FLOATCONST F32 0.0) (SUBREG F32 (REG I64 (HOLE 1 MM)) 0)) (IFTHENELSE F32 (TSTEQ I1 (SUBREG F32 (MEM I64 (HOLE 2)) 0) (FLOATCONST F32 -0.0)) (FLOATCONST F32 0.0) (SUBREG F32 (MEM I64 (HOLE 2)) 0))))) (SET (SUBREG F32 (REG I64 (HOLE 1 MM)) 1) (IFTHENELSE F32 (BAND I1 (TSTEQ I1 (SUBREG F32 (REG I64 (HOLE 1 MM)) 1) (FLOATCONST F32 -0.0)) (TSTEQ I1 (SUBREG F32 (MEM I64 (HOLE 2)) 1) (FLOATCONST F32 -0.0))) (FLOATCONST F32 0.0) (IFTHENELSE F32 (TSTLTS I1 (SUBREG F32 (REG I64 (HOLE 1 MM)) 1) (SUBREG F32 (MEM I64 (HOLE 2)) 1)) (IFTHENELSE F32 (TSTEQ I1 (SUBREG F32 (REG I64 (HOLE 1 MM)) 1) (FLOATCONST F32 -0.0)) (FLOATCONST F32 0.0) (SUBREG F32 (REG I64 (HOLE 1 MM)) 1)) (IFTHENELSE F32 (TSTEQ I1 (SUBREG F32 (MEM I64 (HOLE 2)) 1) (FLOATCONST F32 -0.0)) (FLOATCONST F32 0.0) (SUBREG F32 (MEM I64 (HOLE 2)) 1))))))) ;(REG I64 (HOLE 2 MM)) ==> (MEM I64 (HOLE 2)) ;3DNow! ;PFMUL mmreg1, mmreg2 (DEFINST ("PFMUL ?1m,?2m" "PFMUL %?2m,%?1m" "PFMUL ?1m,?2m") (PARALLEL (SET (SUBREG F32 (REG I64 (HOLE 1 MM)) 0) (MUL F32 (SUBREG F32 (REG I64 (HOLE 1 MM)) 0) (SUBREG F32 (REG I64 (HOLE 2 MM)) 0))) (SET (SUBREG F32 (REG I64 (HOLE 1 MM)) 1) (MUL F32 (SUBREG F32 (REG I64 (HOLE 1 MM)) 1) (SUBREG F32 (REG I64 (HOLE 2 MM)) 1))))) ;PFMUL mmreg1, mem64 (DEFINST ("PFMUL ?1m,QWORD PTR ??2s" "PFMUL ??2s,%?1m" "PFMUL ?1m,QWORD PTR ??2s") (PARALLEL (SET (SUBREG F32 (REG I64 (HOLE 1 MM)) 0) (MUL F32 (SUBREG F32 (REG I64 (HOLE 1 MM)) 0) (SUBREG F32 (MEM I64 (HOLE 2)) 0))) (SET (SUBREG F32 (REG I64 (HOLE 1 MM)) 1) (MUL F32 (SUBREG F32 (REG I64 (HOLE 1 MM)) 1) (SUBREG F32 (MEM I64 (HOLE 2)) 1))))) ;(REG I64 (HOLE 2 MM)) ==> (MEM I64 (HOLE 2)) ;Packed floating-point negative accumulate ;PFNACC mm,mm (DEFINST ("PFNACC ?1m,?2m" "PFNACC %?2m,%?1m" "PFNACC ?1m,?2m") (PARALLEL (SET (SUBREG F32 (REG I64 (HOLE 1 MM)) 0) (SUB F32 (SUBREG F32 (REG I64 (HOLE 1 MM)) 0) (SUBREG F32 (REG I64 (HOLE 1 MM)) 1))) (SET (SUBREG F32 (REG I64 (HOLE 1 MM)) 1) (SUB F32 (SUBREG F32 (REG I64 (HOLE 2 MM)) 0) (SUBREG F32 (REG I64 (HOLE 2 MM)) 1))))) ;PFNACC mm,m64 (DEFINST ("PFNACC ?1m,QWORD PTR ??2s" "PFNACC ??2s,%?1m" "PFNACC ?1m,QWORD PTR ??2s") (PARALLEL (SET (SUBREG F32 (REG I64 (HOLE 1 MM)) 0) (SUB F32 (SUBREG F32 (REG I64 (HOLE 1 MM)) 0) (SUBREG F32 (REG I64 (HOLE 1 MM)) 1))) (SET (SUBREG F32 (REG I64 (HOLE 1 MM)) 1) (SUB F32 (SUBREG F32 (MEM I64 (HOLE 2)) 0) (SUBREG F32 (MEM I64 (HOLE 2)) 1))))) ;Packed floating-point mixed positive-negative accumulate ;PFPNACC mm,mm (DEFINST ("PFPNACC ?1m,?2m" "PFPNACC %?2m,%?1m" "PFPNACC ?1m,?2m") (PARALLEL (SET (SUBREG F32 (REG I64 (HOLE 1 MM)) 0) (SUB F32 (SUBREG F32 (REG I64 (HOLE 1 MM)) 0) (SUBREG F32 (REG I64 (HOLE 1 MM)) 1))) (SET (SUBREG F32 (REG I64 (HOLE 1 MM)) 1) (ADD F32 (SUBREG F32 (REG I64 (HOLE 2 MM)) 0) (SUBREG F32 (REG I64 (HOLE 2 MM)) 1))))) ;PFPNACC mm,m64 (DEFINST ("PFPNACC ?1m,QWORD PTR ??2s" "PFPNACC ??2s,%?1m" "PFPNACC ?1m,QWORD PTR ??2s") (PARALLEL (SET (SUBREG F32 (REG I64 (HOLE 1 MM)) 0) (SUB F32 (SUBREG F32 (REG I64 (HOLE 1 MM)) 0) (SUBREG F32 (REG I64 (HOLE 1 MM)) 1))) (SET (SUBREG F32 (REG I64 (HOLE 1 MM)) 1) (ADD F32 (SUBREG F32 (MEM I64 (HOLE 2)) 0) (SUBREG F32 (MEM I64 (HOLE 2)) 1))))) ;3DNow! ;PFRCP mmreg1, mmreg2/mem64 ;除外 ;PFRCPIT1 mmreg1, mmreg2/mem64 ;PFRCP に準じて、除外 ;PFRCPIT2 mmreg1, mmreg2/mem64 ;PFRCP に準じて、除外 ;PFRSQIT1 mmreg1, mmreg2/mem64 ;PFRSQRT に準じて、除外 ;PFRSQRT mmreg1, mmreg2/mem64 ;除外 ;PFSUB mmreg1, mmreg2/mem64 (DEFINST ("PFSUB ?1m, ?2m" "PFSUB %?2m,%?1m" "PFSUB ?1m, ?2m") (PARALLEL (SET (SUBREG F32 (REG I64 (HOLE 1 MM)) 0) (SUB F32 (SUBREG F32 (REG I64 (HOLE 1 MM)) 0) (SUBREG F32 (REG I64 (HOLE 2 MM)) 0))) (SET (SUBREG F32 (REG I64 (HOLE 1 MM)) 1) (SUB F32 (SUBREG F32 (REG I64 (HOLE 1 MM)) 1) (SUBREG F32 (REG I64 (HOLE 2 MM)) 1))) )) ;PFSUB mmreg1, mmreg2/mem64 (DEFINST ("PFSUB ?1m, QWORD PTR ??2s" "PFSUB ??2s,%?1m" "PFSUB ?1m, QWORD PTR ??2s") (PARALLEL (SET (SUBREG F32 (REG I64 (HOLE 1 MM)) 0) (SUB F32 (SUBREG F32 (REG I64 (HOLE 1 MM)) 0) (SUBREG F32 (MEM I64 (HOLE 2)) 0))) (SET (SUBREG F32 (REG I64 (HOLE 1 MM)) 1) (SUB F32 (SUBREG F32 (REG I64 (HOLE 1 MM)) 1) (SUBREG F32 (MEM I64 (HOLE 2)) 1))) )) ;PFSUBR mmreg1, mmreg2/mem64 (DEFINST ("PFSUBR ?1m, ?2m" "PFSUBR %?2m,%?1m" "PFSUBR ?1m, ?2m") (PARALLEL (SET (SUBREG F32 (REG I64 (HOLE 1 MM)) 0) (SUB F32 (SUBREG F32 (REG I64 (HOLE 2 MM)) 0) (SUBREG F32 (REG I64 (HOLE 1 MM)) 0))) (SET (SUBREG F32 (REG I64 (HOLE 1 MM)) 1) (SUB F32 (SUBREG F32 (REG I64 (HOLE 2 MM)) 1) (SUBREG F32 (REG I64 (HOLE 1 MM)) 1))) )) ;PFSUBR mmreg1, mmreg2/mem64 (DEFINST ("PFSUBR ?1m, QWORD PTR ??2s" "PFSUBR ??2s,%?1m" "PFSUBR ?1m, QWORD PTR ??2s") (PARALLEL (SET (SUBREG F32 (REG I64 (HOLE 1 MM)) 0) (SUB F32 (SUBREG F32 (MEM I64 (HOLE 2)) 0) (SUBREG F32 (REG I64 (HOLE 1 MM)) 0))) (SET (SUBREG F32 (REG I64 (HOLE 1 MM)) 1) (SUB F32 (SUBREG F32 (MEM I64 (HOLE 2)) 1) (SUBREG F32 (REG I64 (HOLE 1 MM)) 1))) )) ;PI2FD mmreg1, mmreg2/mem64 (DEFINST ("PI2FD ?1m, ?2m" "PI2FD %?2m,%?1m" "PI2FD ?1m, ?2m") (PARALLEL (SET (SUBREG F32 (REG I64 (HOLE 1 MM)) 0) (CONVSF F32 (SUBREG I32 (REG I64 (HOLE 2 MM)) 0))) (SET (SUBREG F32 (REG I64 (HOLE 1 MM)) 1) (CONVSF F32 (SUBREG I32 (REG I64 (HOLE 2 MM)) 1))) )) ;PI2FD mmreg1, mmreg2/mem64 (DEFINST ("PI2FD ?1m, QWORD PTR ??2s" "PI2FD ??2s,%?1m" "PI2FD ?1m, QWORD PTR ??2s") (PARALLEL (SET (SUBREG F32 (REG I64 (HOLE 1 MM)) 0) (CONVSF F32 (SUBREG I32 (MEM I64 (HOLE 2)) 0))) (SET (SUBREG F32 (REG I64 (HOLE 1 MM)) 1) (CONVSF F32 (SUBREG I32 (MEM I64 (HOLE 2)) 1))) )) ;2つの符号付きワード整数を2つの単精度浮動小数点値に変換 ;PI2FW mm,mm (DEFINST ("PI2FW ?1m,?2m" "PI2FW %?2m,%?1m" "PI2FW ?1m,?2m") (PARALLEL (SET (SUBREG F32 (REG I64 (HOLE 1 MM)) 0) (CONVSF F32 (SUBREG I16 (REG I64 (HOLE 2 MM)) 0))) (SET (SUBREG F32 (REG I64 (HOLE 1 MM)) 1) (CONVSF F32 (SUBREG I16 (REG I64 (HOLE 2 MM)) 2))))) ;PI2FW mm,m64 (DEFINST ("PI2FW ?1m,QWORD PTR ??2s" "PI2FW ??2s,%?1m" "PI2FW ?1m,QWORD PTR ??2s") (PARALLEL (SET (SUBREG F32 (REG I64 (HOLE 1 MM)) 0) (CONVSF F32 (SUBREG I16 (MEM I64 (HOLE 2)) 0))) (SET (SUBREG F32 (REG I64 (HOLE 1 MM)) 1) (CONVSF F32 (SUBREG I16 (MEM I64 (HOLE 2)) 2))))) ;PMULHRW mmreg1, mmreg2/mem64 (DEFINST ("PMULHRW ?1m, ?2m" "PMULHRW %?2m,%?1m" "PMULHRW ?1m, ?2m") (PARALLEL (SET (SUBREG I16 (REG I64 (HOLE 1 MM)) 0) (CONVIT I16 (RSHS I32 (ADD I32 (MUL I32 (CONVSX I32 (SUBREG I16 (REG I64 (HOLE 1 MM)) 0)) (CONVSX I32 (SUBREG I16 (REG I64 (HOLE 2 MM)) 0))) (INTCONST I32 #x8000)) (INTCONST I32 16)))) (SET (SUBREG I16 (REG I64 (HOLE 1 MM)) 1) (CONVIT I16 (RSHS I32 (ADD I32 (MUL I32 (CONVSX I32 (SUBREG I16 (REG I64 (HOLE 1 MM)) 1)) (CONVSX I32 (SUBREG I16 (REG I64 (HOLE 2 MM)) 1))) (INTCONST I32 #x8000)) (INTCONST I32 16)))) (SET (SUBREG I16 (REG I64 (HOLE 1 MM)) 2) (CONVIT I16 (RSHS I32 (ADD I32 (MUL I32 (CONVSX I32 (SUBREG I16 (REG I64 (HOLE 1 MM)) 2)) (CONVSX I32 (SUBREG I16 (REG I64 (HOLE 2 MM)) 2))) (INTCONST I32 #x8000)) (INTCONST I32 16)))) (SET (SUBREG I16 (REG I64 (HOLE 1 MM)) 3) (CONVIT I16 (RSHS I32 (ADD I32 (MUL I32 (CONVSX I32 (SUBREG I16 (REG I64 (HOLE 1 MM)) 3)) (CONVSX I32 (SUBREG I16 (REG I64 (HOLE 2 MM)) 3))) (INTCONST I32 #x8000)) (INTCONST I32 16)))) )) ;PMULHRW mmreg1, mmreg2/mem64 (DEFINST ("PMULHRW ?1m, QWORD PTR ??2s" "PMULHRW ??2s,%?1m" "PMULHRW ?1m, QWORD PTR ??2s") (PARALLEL (SET (SUBREG I16 (REG I64 (HOLE 1 MM)) 0) (CONVIT I16 (RSHS I32 (ADD I32 (MUL I32 (CONVSX I32 (SUBREG I16 (REG I64 (HOLE 1 MM)) 0)) (CONVSX I32 (SUBREG I16 (MEM I64 (HOLE 2)) 0))) (INTCONST I32 #x8000)) (INTCONST I32 16)))) (SET (SUBREG I16 (REG I64 (HOLE 1 MM)) 1) (CONVIT I16 (RSHS I32 (ADD I32 (MUL I32 (CONVSX I32 (SUBREG I16 (REG I64 (HOLE 1 MM)) 1)) (CONVSX I32 (SUBREG I16 (MEM I64 (HOLE 2)) 1))) (INTCONST I32 #x8000)) (INTCONST I32 16)))) (SET (SUBREG I16 (REG I64 (HOLE 1 MM)) 2) (CONVIT I16 (RSHS I32 (ADD I32 (MUL I32 (CONVSX I32 (SUBREG I16 (REG I64 (HOLE 1 MM)) 2)) (CONVSX I32 (SUBREG I16 (MEM I64 (HOLE 2)) 2))) (INTCONST I32 #x8000)) (INTCONST I32 16)))) (SET (SUBREG I16 (REG I64 (HOLE 1 MM)) 3) (CONVIT I16 (RSHS I32 (ADD I32 (MUL I32 (CONVSX I32 (SUBREG I16 (REG I64 (HOLE 1 MM)) 3)) (CONVSX I32 (SUBREG I16 (MEM I64 (HOLE 2)) 3))) (INTCONST I32 #x8000)) (INTCONST I32 16)))) )) ;PREFETCH mem8 ;除外 ;Packed swap doubleword ;PSWAPD mm,mm (DEFINST ("PSWAPD ?1m,?2m" "PSWAPD %?2m,%?1m" "PSWAPD ?1m,?2m") (PARALLEL (SET (SUBREG I32 (REG I64 (HOLE 1 MM)) 0) (SUBREG I32 (REG I64 (HOLE 2 MM)) 1)) (SET (SUBREG I32 (REG I64 (HOLE 1 MM)) 1) (SUBREG I32 (REG I64 (HOLE 2 MM)) 0)))) ;PSWAPD mm,m64 (DEFINST ("PSWAPD ?1m,QWORD PTR ??2s" "PSWAPD ??2s,%?1m" "PSWAPD ?1m,QWORD PTR ??2s") (PARALLEL (SET (SUBREG I32 (REG I64 (HOLE 1 MM)) 0) (SUBREG I32 (MEM I64 (HOLE 2)) 1)) (SET (SUBREG I32 (REG I64 (HOLE 1 MM)) 1) (SUBREG I32 (MEM I64 (HOLE 2)) 0))))