-: PSRLDQ ( dest imm -- ) BIN: 011 HEX: 73 HEX: 66 2-operand-sse-shift ;
-: PSLLDQ ( dest imm -- ) BIN: 111 HEX: 73 HEX: 66 2-operand-sse-shift ;
-
-: PCMPEQB ( dest src -- ) HEX: 74 HEX: 66 2-operand-rm-sse ;
-: PCMPEQW ( dest src -- ) HEX: 75 HEX: 66 2-operand-rm-sse ;
-: PCMPEQD ( dest src -- ) HEX: 76 HEX: 66 2-operand-rm-sse ;
-: HADDPD ( dest src -- ) HEX: 7c HEX: 66 2-operand-rm-sse ;
-: HADDPS ( dest src -- ) HEX: 7c HEX: f2 2-operand-rm-sse ;
-: HSUBPD ( dest src -- ) HEX: 7d HEX: 66 2-operand-rm-sse ;
-: HSUBPS ( dest src -- ) HEX: 7d HEX: f2 2-operand-rm-sse ;
-
-: FXSAVE ( dest -- ) { BIN: 000 f { HEX: 0f HEX: ae } } 1-operand ;
-: FXRSTOR ( src -- ) { BIN: 001 f { HEX: 0f HEX: ae } } 1-operand ;
-: LDMXCSR ( src -- ) { BIN: 010 f { HEX: 0f HEX: ae } } 1-operand ;
-: STMXCSR ( dest -- ) { BIN: 011 f { HEX: 0f HEX: ae } } 1-operand ;
-: LFENCE ( -- ) HEX: 0f , HEX: ae , OCT: 350 , ;
-: MFENCE ( -- ) HEX: 0f , HEX: ae , OCT: 360 , ;
-: SFENCE ( -- ) HEX: 0f , HEX: ae , OCT: 370 , ;
-: CLFLUSH ( dest -- ) { BIN: 111 f { HEX: 0f HEX: ae } } 1-operand ;
-
-: POPCNT ( dest src -- ) HEX: b8 HEX: f3 2-operand-rm-sse ;
-
-: CMPEQPS ( dest src -- ) 0 HEX: c2 f 2-operand-sse-cmp ;
-: CMPLTPS ( dest src -- ) 1 HEX: c2 f 2-operand-sse-cmp ;
-: CMPLEPS ( dest src -- ) 2 HEX: c2 f 2-operand-sse-cmp ;
-: CMPUNORDPS ( dest src -- ) 3 HEX: c2 f 2-operand-sse-cmp ;
-: CMPNEQPS ( dest src -- ) 4 HEX: c2 f 2-operand-sse-cmp ;
-: CMPNLTPS ( dest src -- ) 5 HEX: c2 f 2-operand-sse-cmp ;
-: CMPNLEPS ( dest src -- ) 6 HEX: c2 f 2-operand-sse-cmp ;
-: CMPORDPS ( dest src -- ) 7 HEX: c2 f 2-operand-sse-cmp ;
-
-: CMPEQPD ( dest src -- ) 0 HEX: c2 HEX: 66 2-operand-sse-cmp ;
-: CMPLTPD ( dest src -- ) 1 HEX: c2 HEX: 66 2-operand-sse-cmp ;
-: CMPLEPD ( dest src -- ) 2 HEX: c2 HEX: 66 2-operand-sse-cmp ;
-: CMPUNORDPD ( dest src -- ) 3 HEX: c2 HEX: 66 2-operand-sse-cmp ;
-: CMPNEQPD ( dest src -- ) 4 HEX: c2 HEX: 66 2-operand-sse-cmp ;
-: CMPNLTPD ( dest src -- ) 5 HEX: c2 HEX: 66 2-operand-sse-cmp ;
-: CMPNLEPD ( dest src -- ) 6 HEX: c2 HEX: 66 2-operand-sse-cmp ;
-: CMPORDPD ( dest src -- ) 7 HEX: c2 HEX: 66 2-operand-sse-cmp ;
-
-: CMPEQSD ( dest src -- ) 0 HEX: c2 HEX: f2 2-operand-sse-cmp ;
-: CMPLTSD ( dest src -- ) 1 HEX: c2 HEX: f2 2-operand-sse-cmp ;
-: CMPLESD ( dest src -- ) 2 HEX: c2 HEX: f2 2-operand-sse-cmp ;
-: CMPUNORDSD ( dest src -- ) 3 HEX: c2 HEX: f2 2-operand-sse-cmp ;
-: CMPNEQSD ( dest src -- ) 4 HEX: c2 HEX: f2 2-operand-sse-cmp ;
-: CMPNLTSD ( dest src -- ) 5 HEX: c2 HEX: f2 2-operand-sse-cmp ;
-: CMPNLESD ( dest src -- ) 6 HEX: c2 HEX: f2 2-operand-sse-cmp ;
-: CMPORDSD ( dest src -- ) 7 HEX: c2 HEX: f2 2-operand-sse-cmp ;
-
-: CMPEQSS ( dest src -- ) 0 HEX: c2 HEX: f3 2-operand-sse-cmp ;
-: CMPLTSS ( dest src -- ) 1 HEX: c2 HEX: f3 2-operand-sse-cmp ;
-: CMPLESS ( dest src -- ) 2 HEX: c2 HEX: f3 2-operand-sse-cmp ;
-: CMPUNORDSS ( dest src -- ) 3 HEX: c2 HEX: f3 2-operand-sse-cmp ;
-: CMPNEQSS ( dest src -- ) 4 HEX: c2 HEX: f3 2-operand-sse-cmp ;
-: CMPNLTSS ( dest src -- ) 5 HEX: c2 HEX: f3 2-operand-sse-cmp ;
-: CMPNLESS ( dest src -- ) 6 HEX: c2 HEX: f3 2-operand-sse-cmp ;
-: CMPORDSS ( dest src -- ) 7 HEX: c2 HEX: f3 2-operand-sse-cmp ;
-
-: MOVNTI ( dest src -- ) swap { HEX: 0f HEX: c3 } (2-operand) ;
-
-: PINSRW ( dest src imm -- ) HEX: c4 HEX: 66 3-operand-rm-sse ;
-: SHUFPS ( dest src imm -- ) 4shuffler HEX: c6 f 3-operand-rm-sse ;
-: SHUFPD ( dest src imm -- ) 2shuffler HEX: c6 HEX: 66 3-operand-rm-sse ;
-
-: ADDSUBPD ( dest src -- ) HEX: d0 HEX: 66 2-operand-rm-sse ;
-: ADDSUBPS ( dest src -- ) HEX: d0 HEX: f2 2-operand-rm-sse ;
-: PADDQ ( dest src -- ) HEX: d4 HEX: 66 2-operand-rm-sse ;
-: PMULLW ( dest src -- ) HEX: d5 HEX: 66 2-operand-rm-sse ;
-: PMOVMSKB ( dest src -- ) HEX: d7 HEX: 66 2-operand-rm-sse ;
-: PSUBUSB ( dest src -- ) HEX: d8 HEX: 66 2-operand-rm-sse ;
-: PSUBUSW ( dest src -- ) HEX: d9 HEX: 66 2-operand-rm-sse ;
-: PMINUB ( dest src -- ) HEX: da HEX: 66 2-operand-rm-sse ;
-: PAND ( dest src -- ) HEX: db HEX: 66 2-operand-rm-sse ;
-: PADDUSB ( dest src -- ) HEX: dc HEX: 66 2-operand-rm-sse ;
-: PADDUSW ( dest src -- ) HEX: dd HEX: 66 2-operand-rm-sse ;
-: PMAXUB ( dest src -- ) HEX: de HEX: 66 2-operand-rm-sse ;
-: PANDN ( dest src -- ) HEX: df HEX: 66 2-operand-rm-sse ;
-: PAVGB ( dest src -- ) HEX: e0 HEX: 66 2-operand-rm-sse ;
-: PAVGW ( dest src -- ) HEX: e3 HEX: 66 2-operand-rm-sse ;
-: PMULHUW ( dest src -- ) HEX: e4 HEX: 66 2-operand-rm-sse ;
-: PMULHW ( dest src -- ) HEX: e5 HEX: 66 2-operand-rm-sse ;
-: CVTTPD2DQ ( dest src -- ) HEX: e6 HEX: 66 2-operand-rm-sse ;
-: CVTPD2DQ ( dest src -- ) HEX: e6 HEX: f2 2-operand-rm-sse ;
-: CVTDQ2PD ( dest src -- ) HEX: e6 HEX: f3 2-operand-rm-sse ;
-
-: MOVNTDQ ( dest src -- ) HEX: e7 HEX: 66 2-operand-mr-sse ;
-
-: PSUBSB ( dest src -- ) HEX: e8 HEX: 66 2-operand-rm-sse ;
-: PSUBSW ( dest src -- ) HEX: e9 HEX: 66 2-operand-rm-sse ;
-: PMINSW ( dest src -- ) HEX: ea HEX: 66 2-operand-rm-sse ;
-: POR ( dest src -- ) HEX: eb HEX: 66 2-operand-rm-sse ;
-: PADDSB ( dest src -- ) HEX: ec HEX: 66 2-operand-rm-sse ;
-: PADDSW ( dest src -- ) HEX: ed HEX: 66 2-operand-rm-sse ;
-: PMAXSW ( dest src -- ) HEX: ee HEX: 66 2-operand-rm-sse ;
-: PXOR ( dest src -- ) HEX: ef HEX: 66 2-operand-rm-sse ;
-: LDDQU ( dest src -- ) HEX: f0 HEX: f2 2-operand-rm-sse ;
-: PMULUDQ ( dest src -- ) HEX: f4 HEX: 66 2-operand-rm-sse ;
-: PMADDWD ( dest src -- ) HEX: f5 HEX: 66 2-operand-rm-sse ;
-: PSADBW ( dest src -- ) HEX: f6 HEX: 66 2-operand-rm-sse ;
-: MASKMOVDQU ( dest src -- ) HEX: f7 HEX: 66 2-operand-rm-sse ;
-: PSUBB ( dest src -- ) HEX: f8 HEX: 66 2-operand-rm-sse ;
-: PSUBW ( dest src -- ) HEX: f9 HEX: 66 2-operand-rm-sse ;
-: PSUBD ( dest src -- ) HEX: fa HEX: 66 2-operand-rm-sse ;
-: PSUBQ ( dest src -- ) HEX: fb HEX: 66 2-operand-rm-sse ;
-: PADDB ( dest src -- ) HEX: fc HEX: 66 2-operand-rm-sse ;
-: PADDW ( dest src -- ) HEX: fd HEX: 66 2-operand-rm-sse ;
-: PADDD ( dest src -- ) HEX: fe HEX: 66 2-operand-rm-sse ;
+: PSRLDQ ( dest imm -- ) 0b011 0x73 0x66 2-operand-sse-shift ;
+: PSLLDQ ( dest imm -- ) 0b111 0x73 0x66 2-operand-sse-shift ;
+
+: PCMPEQB ( dest src -- ) 0x74 0x66 2-operand-rm-sse ;
+: PCMPEQW ( dest src -- ) 0x75 0x66 2-operand-rm-sse ;
+: PCMPEQD ( dest src -- ) 0x76 0x66 2-operand-rm-sse ;
+: HADDPD ( dest src -- ) 0x7c 0x66 2-operand-rm-sse ;
+: HADDPS ( dest src -- ) 0x7c 0xf2 2-operand-rm-sse ;
+: HSUBPD ( dest src -- ) 0x7d 0x66 2-operand-rm-sse ;
+: HSUBPS ( dest src -- ) 0x7d 0xf2 2-operand-rm-sse ;
+
+: FXSAVE ( dest -- ) { 0b000 f { 0x0f 0xae } } 1-operand ;
+: FXRSTOR ( src -- ) { 0b001 f { 0x0f 0xae } } 1-operand ;
+: LDMXCSR ( src -- ) { 0b010 f { 0x0f 0xae } } 1-operand ;
+: STMXCSR ( dest -- ) { 0b011 f { 0x0f 0xae } } 1-operand ;
+: LFENCE ( -- ) 0x0f , 0xae , 0o350 , ;
+: MFENCE ( -- ) 0x0f , 0xae , 0o360 , ;
+: SFENCE ( -- ) 0x0f , 0xae , 0o370 , ;
+: CLFLUSH ( dest -- ) { 0b111 f { 0x0f 0xae } } 1-operand ;
+
+: POPCNT ( dest src -- ) 0xb8 0xf3 2-operand-rm-sse ;
+
+: CMPEQPS ( dest src -- ) 0 0xc2 f 2-operand-sse-cmp ;
+: CMPLTPS ( dest src -- ) 1 0xc2 f 2-operand-sse-cmp ;
+: CMPLEPS ( dest src -- ) 2 0xc2 f 2-operand-sse-cmp ;
+: CMPUNORDPS ( dest src -- ) 3 0xc2 f 2-operand-sse-cmp ;
+: CMPNEQPS ( dest src -- ) 4 0xc2 f 2-operand-sse-cmp ;
+: CMPNLTPS ( dest src -- ) 5 0xc2 f 2-operand-sse-cmp ;
+: CMPNLEPS ( dest src -- ) 6 0xc2 f 2-operand-sse-cmp ;
+: CMPORDPS ( dest src -- ) 7 0xc2 f 2-operand-sse-cmp ;
+
+: CMPEQPD ( dest src -- ) 0 0xc2 0x66 2-operand-sse-cmp ;
+: CMPLTPD ( dest src -- ) 1 0xc2 0x66 2-operand-sse-cmp ;
+: CMPLEPD ( dest src -- ) 2 0xc2 0x66 2-operand-sse-cmp ;
+: CMPUNORDPD ( dest src -- ) 3 0xc2 0x66 2-operand-sse-cmp ;
+: CMPNEQPD ( dest src -- ) 4 0xc2 0x66 2-operand-sse-cmp ;
+: CMPNLTPD ( dest src -- ) 5 0xc2 0x66 2-operand-sse-cmp ;
+: CMPNLEPD ( dest src -- ) 6 0xc2 0x66 2-operand-sse-cmp ;
+: CMPORDPD ( dest src -- ) 7 0xc2 0x66 2-operand-sse-cmp ;
+
+: CMPEQSD ( dest src -- ) 0 0xc2 0xf2 2-operand-sse-cmp ;
+: CMPLTSD ( dest src -- ) 1 0xc2 0xf2 2-operand-sse-cmp ;
+: CMPLESD ( dest src -- ) 2 0xc2 0xf2 2-operand-sse-cmp ;
+: CMPUNORDSD ( dest src -- ) 3 0xc2 0xf2 2-operand-sse-cmp ;
+: CMPNEQSD ( dest src -- ) 4 0xc2 0xf2 2-operand-sse-cmp ;
+: CMPNLTSD ( dest src -- ) 5 0xc2 0xf2 2-operand-sse-cmp ;
+: CMPNLESD ( dest src -- ) 6 0xc2 0xf2 2-operand-sse-cmp ;
+: CMPORDSD ( dest src -- ) 7 0xc2 0xf2 2-operand-sse-cmp ;
+
+: CMPEQSS ( dest src -- ) 0 0xc2 0xf3 2-operand-sse-cmp ;
+: CMPLTSS ( dest src -- ) 1 0xc2 0xf3 2-operand-sse-cmp ;
+: CMPLESS ( dest src -- ) 2 0xc2 0xf3 2-operand-sse-cmp ;
+: CMPUNORDSS ( dest src -- ) 3 0xc2 0xf3 2-operand-sse-cmp ;
+: CMPNEQSS ( dest src -- ) 4 0xc2 0xf3 2-operand-sse-cmp ;
+: CMPNLTSS ( dest src -- ) 5 0xc2 0xf3 2-operand-sse-cmp ;
+: CMPNLESS ( dest src -- ) 6 0xc2 0xf3 2-operand-sse-cmp ;
+: CMPORDSS ( dest src -- ) 7 0xc2 0xf3 2-operand-sse-cmp ;
+
+: MOVNTI ( dest src -- ) swap { 0x0f 0xc3 } (2-operand) ;
+
+: PINSRW ( dest src imm -- ) 0xc4 0x66 3-operand-rm-sse ;
+: SHUFPS ( dest src imm -- ) 4shuffler 0xc6 f 3-operand-rm-sse ;
+: SHUFPD ( dest src imm -- ) 2shuffler 0xc6 0x66 3-operand-rm-sse ;
+
+: ADDSUBPD ( dest src -- ) 0xd0 0x66 2-operand-rm-sse ;
+: ADDSUBPS ( dest src -- ) 0xd0 0xf2 2-operand-rm-sse ;
+: PADDQ ( dest src -- ) 0xd4 0x66 2-operand-rm-sse ;
+: PMULLW ( dest src -- ) 0xd5 0x66 2-operand-rm-sse ;
+: PMOVMSKB ( dest src -- ) 0xd7 0x66 2-operand-rm-sse ;
+: PSUBUSB ( dest src -- ) 0xd8 0x66 2-operand-rm-sse ;
+: PSUBUSW ( dest src -- ) 0xd9 0x66 2-operand-rm-sse ;
+: PMINUB ( dest src -- ) 0xda 0x66 2-operand-rm-sse ;
+: PAND ( dest src -- ) 0xdb 0x66 2-operand-rm-sse ;
+: PADDUSB ( dest src -- ) 0xdc 0x66 2-operand-rm-sse ;
+: PADDUSW ( dest src -- ) 0xdd 0x66 2-operand-rm-sse ;
+: PMAXUB ( dest src -- ) 0xde 0x66 2-operand-rm-sse ;
+: PANDN ( dest src -- ) 0xdf 0x66 2-operand-rm-sse ;
+: PAVGB ( dest src -- ) 0xe0 0x66 2-operand-rm-sse ;
+: PAVGW ( dest src -- ) 0xe3 0x66 2-operand-rm-sse ;
+: PMULHUW ( dest src -- ) 0xe4 0x66 2-operand-rm-sse ;
+: PMULHW ( dest src -- ) 0xe5 0x66 2-operand-rm-sse ;
+: CVTTPD2DQ ( dest src -- ) 0xe6 0x66 2-operand-rm-sse ;
+: CVTPD2DQ ( dest src -- ) 0xe6 0xf2 2-operand-rm-sse ;
+: CVTDQ2PD ( dest src -- ) 0xe6 0xf3 2-operand-rm-sse ;
+
+: MOVNTDQ ( dest src -- ) 0xe7 0x66 2-operand-mr-sse ;
+
+: PSUBSB ( dest src -- ) 0xe8 0x66 2-operand-rm-sse ;
+: PSUBSW ( dest src -- ) 0xe9 0x66 2-operand-rm-sse ;
+: PMINSW ( dest src -- ) 0xea 0x66 2-operand-rm-sse ;
+: POR ( dest src -- ) 0xeb 0x66 2-operand-rm-sse ;
+: PADDSB ( dest src -- ) 0xec 0x66 2-operand-rm-sse ;
+: PADDSW ( dest src -- ) 0xed 0x66 2-operand-rm-sse ;
+: PMAXSW ( dest src -- ) 0xee 0x66 2-operand-rm-sse ;
+: PXOR ( dest src -- ) 0xef 0x66 2-operand-rm-sse ;
+: LDDQU ( dest src -- ) 0xf0 0xf2 2-operand-rm-sse ;
+: PMULUDQ ( dest src -- ) 0xf4 0x66 2-operand-rm-sse ;
+: PMADDWD ( dest src -- ) 0xf5 0x66 2-operand-rm-sse ;
+: PSADBW ( dest src -- ) 0xf6 0x66 2-operand-rm-sse ;
+: MASKMOVDQU ( dest src -- ) 0xf7 0x66 2-operand-rm-sse ;
+: PSUBB ( dest src -- ) 0xf8 0x66 2-operand-rm-sse ;
+: PSUBW ( dest src -- ) 0xf9 0x66 2-operand-rm-sse ;
+: PSUBD ( dest src -- ) 0xfa 0x66 2-operand-rm-sse ;
+: PSUBQ ( dest src -- ) 0xfb 0x66 2-operand-rm-sse ;
+: PADDB ( dest src -- ) 0xfc 0x66 2-operand-rm-sse ;
+: PADDW ( dest src -- ) 0xfd 0x66 2-operand-rm-sse ;
+: PADDD ( dest src -- ) 0xfe 0x66 2-operand-rm-sse ;