aboutsummaryrefslogtreecommitdiff
path: root/gas
diff options
context:
space:
mode:
authorH.J. Lu <hjl.tools@gmail.com>2008-12-20 17:40:51 +0000
committerH.J. Lu <hjl.tools@gmail.com>2008-12-20 17:40:51 +0000
commitb6169b206a513cc5be8027dd7eb4b26039d76a4f (patch)
tree522b7197c9f8eb452599f481dca2140384b01360 /gas
parent257385246e4e7790890d2d2927f1ca2efb780a37 (diff)
downloadfsf-binutils-gdb-b6169b206a513cc5be8027dd7eb4b26039d76a4f.zip
fsf-binutils-gdb-b6169b206a513cc5be8027dd7eb4b26039d76a4f.tar.gz
fsf-binutils-gdb-b6169b206a513cc5be8027dd7eb4b26039d76a4f.tar.bz2
gas/
2008-12-20 H.J. Lu <hongjiu.lu@intel.com> * config/tc-i386.c (_i386_insn): Add swap_operand. (parse_insn): Handle ".s". (match_template): Handle swap_operand. * doc/c-i386.texi: Document .s suffix. gas/testsuite/ 2008-12-20 H.J. Lu <hongjiu.lu@intel.com> * gas/i386/i386.exp: Run opts, opts-intel, sse2avx-opts, sse2avx-opts-intel, x86-64-opts, x86-64-opts-intel, x86-64-sse2avx-opts and x86-64-sse2avx-opts-intel. * gas/i386/opts.d: New. * gas/i386/opts-intel.d: Likewise. * gas/i386/opts.s: Likewise. * gas/i386/sse2avx-opts.d: Likewise. * gas/i386/sse2avx-opts-intel.d: Likewise. * gas/i386/x86-64-opts.d: Likewise. * gas/i386/x86-64-opts-intel.d: Likewise. * gas/i386/x86-64-opts.s: Likewise. * gas/i386/x86-64-sse2avx-opts.d: Likewise. * gas/i386/x86-64-sse2avx-opts-intel.d: Likewise. opcodes/ 2008-12-20 H.J. Lu <hongjiu.lu@intel.com> * i386-dis.c (EbS): New. (EvS): Likewise. (EMS): Likewise. (EXqS): Likewise. (EXxS): Likewise. (b_swap_mode): Likewise. (v_swap_mode): Likewise. (q_swap_mode): Likewise. (x_swap_mode): Likewise. (v_mode): Updated. (w_mode): Likewise. (t_mode): Likewise. (xmm_mode): Likewise. (swap_operand): Likewise. (dis386): Use EbS on movB. Use EvS on moveS. (dis386_twobyte): Use EXxS on movapX. (prefix_table): Use EXxS on movups, movupd, movdqu, movdqa, vmovups, vmovdqu, vmovdqa. Use EMS and EXqS on movq. (vex_table): Use EXxS on vmovapX. (vex_len_table): Use EXqS on vmovq. (intel_operand_size): Handle b_swap_mode, v_swap_mode, q_swap_mode and x_swap_mode. (OP_E_register): Handle b_swap_mode and v_swap_mode. (OP_EM): Handle v_swap_mode. (OP_EX): x_swap_mode and q_swap_mode. * i386-gen.c (opcode_modifiers): Add S. * i386-opc.h (S): New. (Modrm): Updated. (i386_opcode_modifier): Add s. * i386-opc.tbl: Add S to movapd, movaps, movdqa, movdqu, movq, movupd, movups, vmovapd, vmovaps, vmovdqa, vmovdqu and vmovq. * i386-tbl.h: Regenerated.
Diffstat (limited to 'gas')
-rw-r--r--gas/ChangeLog8
-rw-r--r--gas/config/tc-i386.c33
-rw-r--r--gas/doc/c-i386.texi9
-rw-r--r--gas/testsuite/ChangeLog17
-rw-r--r--gas/testsuite/gas/i386/i386.exp8
-rw-r--r--gas/testsuite/gas/i386/opts-intel.d113
-rw-r--r--gas/testsuite/gas/i386/opts.d112
-rw-r--r--gas/testsuite/gas/i386/opts.s125
-rw-r--r--gas/testsuite/gas/i386/sse2avx-opts-intel.d114
-rw-r--r--gas/testsuite/gas/i386/sse2avx-opts.d114
-rw-r--r--gas/testsuite/gas/i386/x86-64-opts-intel.d119
-rw-r--r--gas/testsuite/gas/i386/x86-64-opts.d118
-rw-r--r--gas/testsuite/gas/i386/x86-64-opts.s131
-rw-r--r--gas/testsuite/gas/i386/x86-64-sse2avx-opts-intel.d120
-rw-r--r--gas/testsuite/gas/i386/x86-64-sse2avx-opts.d120
15 files changed, 1260 insertions, 1 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog
index b41964a..4d9c5a0 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -1,3 +1,11 @@
+2008-12-20 H.J. Lu <hongjiu.lu@intel.com>
+
+ * config/tc-i386.c (_i386_insn): Add swap_operand.
+ (parse_insn): Handle ".s".
+ (match_template): Handle swap_operand.
+
+ * doc/c-i386.texi: Document .s suffix.
+
2008-12-20 Hans-Peter Nilsson <hp@axis.com>
* config/tc-cris.c (cris_process_instruction): Handle
diff --git a/gas/config/tc-i386.c b/gas/config/tc-i386.c
index f0b374d..d74c1c6 100644
--- a/gas/config/tc-i386.c
+++ b/gas/config/tc-i386.c
@@ -279,6 +279,9 @@ struct _i386_insn
sib_byte sib;
drex_byte drex;
vex_prefix vex;
+
+ /* Swap operand in encoding. */
+ unsigned int swap_operand : 1;
};
typedef struct _i386_insn i386_insn;
@@ -2908,6 +2911,7 @@ parse_insn (char *line, char *mnemonic)
char *mnem_p;
int supported;
const template *t;
+ char *dot_p = NULL;
/* Non-zero if we found a prefix only acceptable with string insns. */
const char *expecting_string_instruction = NULL;
@@ -2917,6 +2921,8 @@ parse_insn (char *line, char *mnemonic)
mnem_p = mnemonic;
while ((*mnem_p = mnemonic_chars[(unsigned char) *l]) != 0)
{
+ if (*mnem_p == '.')
+ dot_p = mnem_p;
mnem_p++;
if (mnem_p >= mnemonic + MAX_MNEM_SIZE)
{
@@ -2988,8 +2994,24 @@ parse_insn (char *line, char *mnemonic)
break;
}
+ if (!current_templates && dot_p)
+ {
+ if (mnem_p - 2 == dot_p)
+ {
+ /* Check if we should swap operand in encoding. */
+ if (dot_p[1] == 's')
+ i.swap_operand = 1;
+ else
+ goto check_suffix;
+ mnem_p = dot_p;
+ *dot_p = '\0';
+ current_templates = hash_find (op_hash, mnemonic);
+ }
+ }
+
if (!current_templates)
{
+check_suffix:
/* See if we can get a match by trimming off a suffix. */
switch (mnem_p[-1])
{
@@ -3712,6 +3734,16 @@ match_template (void)
&& operand_type_equal (&i.types [0], &acc32)
&& operand_type_equal (&i.types [1], &acc32))
continue;
+ if (i.swap_operand)
+ {
+ /* If we swap operand in encoding, we either match
+ the next one or reverse direction of operands. */
+ if (t->opcode_modifier.s)
+ continue;
+ else if (t->opcode_modifier.d)
+ goto check_reverse;
+ }
+
case 3:
case 4:
case 5:
@@ -3728,6 +3760,7 @@ match_template (void)
if (!t->opcode_modifier.d && !t->opcode_modifier.floatd)
continue;
+check_reverse:
/* Try reversing direction of operands. */
overlap0 = operand_type_and (i.types[0], operand_types[1]);
overlap1 = operand_type_and (i.types[1], operand_types[0]);
diff --git a/gas/doc/c-i386.texi b/gas/doc/c-i386.texi
index 98c97e4..29f764d 100644
--- a/gas/doc/c-i386.texi
+++ b/gas/doc/c-i386.texi
@@ -14,7 +14,7 @@
@end ifclear
@cindex i386 support
-@cindex i80306 support
+@cindex i80386 support
@cindex x86-64 support
The i386 version @code{@value{AS}} supports both the original Intel 386
@@ -353,6 +353,13 @@ thus, are @samp{bl} (from byte to long), @samp{bw} (from byte to word),
@samp{wq} (from word to quadruple word), and @samp{lq} (from long to
quadruple word).
+@cindex encoding options, i386
+@cindex encoding options, x86-64
+
+Different encoding options can be specified via optional mnemonic
+suffix. @samp{.s} suffix swaps 2 register operands in encoding when
+moving from one register to another.
+
@cindex conversion instructions, i386
@cindex i386 conversion instructions
@cindex conversion instructions, x86-64
diff --git a/gas/testsuite/ChangeLog b/gas/testsuite/ChangeLog
index 017a37a..c3371a6 100644
--- a/gas/testsuite/ChangeLog
+++ b/gas/testsuite/ChangeLog
@@ -1,3 +1,20 @@
+2008-12-20 H.J. Lu <hongjiu.lu@intel.com>
+
+ * gas/i386/i386.exp: Run opts, opts-intel, sse2avx-opts,
+ sse2avx-opts-intel, x86-64-opts, x86-64-opts-intel,
+ x86-64-sse2avx-opts and x86-64-sse2avx-opts-intel.
+
+ * gas/i386/opts.d: New.
+ * gas/i386/opts-intel.d: Likewise.
+ * gas/i386/opts.s: Likewise.
+ * gas/i386/sse2avx-opts.d: Likewise.
+ * gas/i386/sse2avx-opts-intel.d: Likewise.
+ * gas/i386/x86-64-opts.d: Likewise.
+ * gas/i386/x86-64-opts-intel.d: Likewise.
+ * gas/i386/x86-64-opts.s: Likewise.
+ * gas/i386/x86-64-sse2avx-opts.d: Likewise.
+ * gas/i386/x86-64-sse2avx-opts-intel.d: Likewise.
+
2008-12-20 Hans-Peter Nilsson <hp@axis.com>
* gas/cris/rd-tls-1.s, gas/cris/rd-tls-1.d: Test :IE and
diff --git a/gas/testsuite/gas/i386/i386.exp b/gas/testsuite/gas/i386/i386.exp
index 8b1b55c..1d9ed4f 100644
--- a/gas/testsuite/gas/i386/i386.exp
+++ b/gas/testsuite/gas/i386/i386.exp
@@ -140,6 +140,10 @@ if [expr ([istarget "i*86-*-*"] || [istarget "x86_64-*-*"]) && [gas_32_check]]
run_dump_test "arch-avx-1"
run_list_test "arch-avx-1-1" "-march=generic32+avx -I${srcdir}/$subdir -al"
run_list_test "arch-avx-1-2" "-march=generic32+aes -I${srcdir}/$subdir -al"
+ run_dump_test "opts"
+ run_dump_test "opts-intel"
+ run_dump_test "sse2avx-opts"
+ run_dump_test "sse2avx-opts-intel"
# These tests require support for 8 and 16 bit relocs,
# so we only run them for ELF and COFF targets.
@@ -293,6 +297,10 @@ if [expr ([istarget "i*86-*-*"] || [istarget "x86_64-*-*"]) && [gas_64_check]] t
run_dump_test "x86-64-ept"
run_dump_test "x86-64-ept-intel"
run_list_test "x86-64-inval-ept" "-al"
+ run_dump_test "x86-64-opts"
+ run_dump_test "x86-64-opts-intel"
+ run_dump_test "x86-64-sse2avx-opts"
+ run_dump_test "x86-64-sse2avx-opts-intel"
if { ![istarget "*-*-aix*"]
&& ![istarget "*-*-beos*"]
diff --git a/gas/testsuite/gas/i386/opts-intel.d b/gas/testsuite/gas/i386/opts-intel.d
new file mode 100644
index 0000000..e7f5f41
--- /dev/null
+++ b/gas/testsuite/gas/i386/opts-intel.d
@@ -0,0 +1,113 @@
+#objdump: -drwMintel,suffix
+#name: encoding option (Intel mode)
+#source: opts.s
+
+.*: +file format .*
+
+
+Disassembly of section .text:
+
+0+ <_start>:
+[ ]*[a-f0-9]+: 88 d1 mov cl,dl
+[ ]*[a-f0-9]+: 8a ca mov.s cl,dl
+[ ]*[a-f0-9]+: 66 89 d1 mov cx,dx
+[ ]*[a-f0-9]+: 66 8b ca mov.s cx,dx
+[ ]*[a-f0-9]+: 89 d1 mov ecx,edx
+[ ]*[a-f0-9]+: 8b ca mov.s ecx,edx
+[ ]*[a-f0-9]+: 88 d1 mov cl,dl
+[ ]*[a-f0-9]+: 8a ca mov.s cl,dl
+[ ]*[a-f0-9]+: 66 89 d1 mov cx,dx
+[ ]*[a-f0-9]+: 66 8b ca mov.s cx,dx
+[ ]*[a-f0-9]+: 89 d1 mov ecx,edx
+[ ]*[a-f0-9]+: 8b ca mov.s ecx,edx
+[ ]*[a-f0-9]+: c5 fd 28 f4 vmovapd ymm6,ymm4
+[ ]*[a-f0-9]+: c5 fd 29 e6 vmovapd.s ymm6,ymm4
+[ ]*[a-f0-9]+: c5 fc 28 f4 vmovaps ymm6,ymm4
+[ ]*[a-f0-9]+: c5 fc 29 e6 vmovaps.s ymm6,ymm4
+[ ]*[a-f0-9]+: c5 fd 6f f4 vmovdqa ymm6,ymm4
+[ ]*[a-f0-9]+: c5 fd 7f e6 vmovdqa.s ymm6,ymm4
+[ ]*[a-f0-9]+: c5 fe 6f f4 vmovdqu ymm6,ymm4
+[ ]*[a-f0-9]+: c5 fe 7f e6 vmovdqu.s ymm6,ymm4
+[ ]*[a-f0-9]+: c5 fd 10 f4 vmovupd ymm6,ymm4
+[ ]*[a-f0-9]+: c5 fd 11 e6 vmovupd.s ymm6,ymm4
+[ ]*[a-f0-9]+: c5 fc 10 f4 vmovups ymm6,ymm4
+[ ]*[a-f0-9]+: c5 fc 11 e6 vmovups.s ymm6,ymm4
+[ ]*[a-f0-9]+: 66 0f 28 f4 movapd xmm6,xmm4
+[ ]*[a-f0-9]+: 66 0f 29 e6 movapd.s xmm6,xmm4
+[ ]*[a-f0-9]+: 0f 28 f4 movaps xmm6,xmm4
+[ ]*[a-f0-9]+: 0f 29 e6 movaps.s xmm6,xmm4
+[ ]*[a-f0-9]+: 66 0f 6f f4 movdqa xmm6,xmm4
+[ ]*[a-f0-9]+: 66 0f 7f e6 movdqa.s xmm6,xmm4
+[ ]*[a-f0-9]+: f3 0f 6f f4 movdqu xmm6,xmm4
+[ ]*[a-f0-9]+: f3 0f 7f e6 movdqu.s xmm6,xmm4
+[ ]*[a-f0-9]+: f3 0f 7e f4 movq xmm6,xmm4
+[ ]*[a-f0-9]+: 66 0f d6 e6 movq.s xmm6,xmm4
+[ ]*[a-f0-9]+: 66 0f 10 f4 movupd xmm6,xmm4
+[ ]*[a-f0-9]+: 66 0f 11 e6 movupd.s xmm6,xmm4
+[ ]*[a-f0-9]+: 0f 10 f4 movups xmm6,xmm4
+[ ]*[a-f0-9]+: 0f 11 e6 movups.s xmm6,xmm4
+[ ]*[a-f0-9]+: c5 f9 28 f4 vmovapd xmm6,xmm4
+[ ]*[a-f0-9]+: c5 f9 29 e6 vmovapd.s xmm6,xmm4
+[ ]*[a-f0-9]+: c5 f8 28 f4 vmovaps xmm6,xmm4
+[ ]*[a-f0-9]+: c5 f8 29 e6 vmovaps.s xmm6,xmm4
+[ ]*[a-f0-9]+: c5 f9 6f f4 vmovdqa xmm6,xmm4
+[ ]*[a-f0-9]+: c5 f9 7f e6 vmovdqa.s xmm6,xmm4
+[ ]*[a-f0-9]+: c5 fa 6f f4 vmovdqu xmm6,xmm4
+[ ]*[a-f0-9]+: c5 fa 7f e6 vmovdqu.s xmm6,xmm4
+[ ]*[a-f0-9]+: c5 fa 7e f4 vmovq xmm6,xmm4
+[ ]*[a-f0-9]+: c5 f9 d6 e6 vmovq.s xmm6,xmm4
+[ ]*[a-f0-9]+: c5 f9 10 f4 vmovupd xmm6,xmm4
+[ ]*[a-f0-9]+: c5 f9 11 e6 vmovupd.s xmm6,xmm4
+[ ]*[a-f0-9]+: c5 f8 10 f4 vmovups xmm6,xmm4
+[ ]*[a-f0-9]+: c5 f8 11 e6 vmovups.s xmm6,xmm4
+[ ]*[a-f0-9]+: 0f 6f e0 movq mm4,mm0
+[ ]*[a-f0-9]+: 0f 7f c4 movq.s mm4,mm0
+[ ]*[a-f0-9]+: 88 d1 mov cl,dl
+[ ]*[a-f0-9]+: 8a ca mov.s cl,dl
+[ ]*[a-f0-9]+: 66 89 d1 mov cx,dx
+[ ]*[a-f0-9]+: 66 8b ca mov.s cx,dx
+[ ]*[a-f0-9]+: 89 d1 mov ecx,edx
+[ ]*[a-f0-9]+: 8b ca mov.s ecx,edx
+[ ]*[a-f0-9]+: c5 fd 28 f4 vmovapd ymm6,ymm4
+[ ]*[a-f0-9]+: c5 fd 29 e6 vmovapd.s ymm6,ymm4
+[ ]*[a-f0-9]+: c5 fc 28 f4 vmovaps ymm6,ymm4
+[ ]*[a-f0-9]+: c5 fc 29 e6 vmovaps.s ymm6,ymm4
+[ ]*[a-f0-9]+: c5 fd 6f f4 vmovdqa ymm6,ymm4
+[ ]*[a-f0-9]+: c5 fd 7f e6 vmovdqa.s ymm6,ymm4
+[ ]*[a-f0-9]+: c5 fe 6f f4 vmovdqu ymm6,ymm4
+[ ]*[a-f0-9]+: c5 fe 7f e6 vmovdqu.s ymm6,ymm4
+[ ]*[a-f0-9]+: c5 fd 10 f4 vmovupd ymm6,ymm4
+[ ]*[a-f0-9]+: c5 fd 11 e6 vmovupd.s ymm6,ymm4
+[ ]*[a-f0-9]+: c5 fc 10 f4 vmovups ymm6,ymm4
+[ ]*[a-f0-9]+: c5 fc 11 e6 vmovups.s ymm6,ymm4
+[ ]*[a-f0-9]+: 66 0f 28 f4 movapd xmm6,xmm4
+[ ]*[a-f0-9]+: 66 0f 29 e6 movapd.s xmm6,xmm4
+[ ]*[a-f0-9]+: 0f 28 f4 movaps xmm6,xmm4
+[ ]*[a-f0-9]+: 0f 29 e6 movaps.s xmm6,xmm4
+[ ]*[a-f0-9]+: 66 0f 6f f4 movdqa xmm6,xmm4
+[ ]*[a-f0-9]+: 66 0f 7f e6 movdqa.s xmm6,xmm4
+[ ]*[a-f0-9]+: f3 0f 6f f4 movdqu xmm6,xmm4
+[ ]*[a-f0-9]+: f3 0f 7f e6 movdqu.s xmm6,xmm4
+[ ]*[a-f0-9]+: f3 0f 7e f4 movq xmm6,xmm4
+[ ]*[a-f0-9]+: 66 0f d6 e6 movq.s xmm6,xmm4
+[ ]*[a-f0-9]+: 66 0f 10 f4 movupd xmm6,xmm4
+[ ]*[a-f0-9]+: 66 0f 11 e6 movupd.s xmm6,xmm4
+[ ]*[a-f0-9]+: 0f 10 f4 movups xmm6,xmm4
+[ ]*[a-f0-9]+: 0f 11 e6 movups.s xmm6,xmm4
+[ ]*[a-f0-9]+: c5 f9 28 f4 vmovapd xmm6,xmm4
+[ ]*[a-f0-9]+: c5 f9 29 e6 vmovapd.s xmm6,xmm4
+[ ]*[a-f0-9]+: c5 f8 28 f4 vmovaps xmm6,xmm4
+[ ]*[a-f0-9]+: c5 f8 29 e6 vmovaps.s xmm6,xmm4
+[ ]*[a-f0-9]+: c5 f9 6f f4 vmovdqa xmm6,xmm4
+[ ]*[a-f0-9]+: c5 f9 7f e6 vmovdqa.s xmm6,xmm4
+[ ]*[a-f0-9]+: c5 fa 6f f4 vmovdqu xmm6,xmm4
+[ ]*[a-f0-9]+: c5 fa 7f e6 vmovdqu.s xmm6,xmm4
+[ ]*[a-f0-9]+: c5 fa 7e f4 vmovq xmm6,xmm4
+[ ]*[a-f0-9]+: c5 f9 d6 e6 vmovq.s xmm6,xmm4
+[ ]*[a-f0-9]+: c5 f9 10 f4 vmovupd xmm6,xmm4
+[ ]*[a-f0-9]+: c5 f9 11 e6 vmovupd.s xmm6,xmm4
+[ ]*[a-f0-9]+: c5 f8 10 f4 vmovups xmm6,xmm4
+[ ]*[a-f0-9]+: c5 f8 11 e6 vmovups.s xmm6,xmm4
+[ ]*[a-f0-9]+: 0f 6f e0 movq mm4,mm0
+[ ]*[a-f0-9]+: 0f 7f c4 movq.s mm4,mm0
+#pass
diff --git a/gas/testsuite/gas/i386/opts.d b/gas/testsuite/gas/i386/opts.d
new file mode 100644
index 0000000..f0f1e0b
--- /dev/null
+++ b/gas/testsuite/gas/i386/opts.d
@@ -0,0 +1,112 @@
+#objdump: -drwMsuffix
+#name: encoding option
+
+.*: +file format .*
+
+
+Disassembly of section .text:
+
+0+ <_start>:
+[ ]*[a-f0-9]+: 88 d1 movb %dl,%cl
+[ ]*[a-f0-9]+: 8a ca movb.s %dl,%cl
+[ ]*[a-f0-9]+: 66 89 d1 movw %dx,%cx
+[ ]*[a-f0-9]+: 66 8b ca movw.s %dx,%cx
+[ ]*[a-f0-9]+: 89 d1 movl %edx,%ecx
+[ ]*[a-f0-9]+: 8b ca movl.s %edx,%ecx
+[ ]*[a-f0-9]+: 88 d1 movb %dl,%cl
+[ ]*[a-f0-9]+: 8a ca movb.s %dl,%cl
+[ ]*[a-f0-9]+: 66 89 d1 movw %dx,%cx
+[ ]*[a-f0-9]+: 66 8b ca movw.s %dx,%cx
+[ ]*[a-f0-9]+: 89 d1 movl %edx,%ecx
+[ ]*[a-f0-9]+: 8b ca movl.s %edx,%ecx
+[ ]*[a-f0-9]+: c5 fd 28 f4 vmovapd %ymm4,%ymm6
+[ ]*[a-f0-9]+: c5 fd 29 e6 vmovapd.s %ymm4,%ymm6
+[ ]*[a-f0-9]+: c5 fc 28 f4 vmovaps %ymm4,%ymm6
+[ ]*[a-f0-9]+: c5 fc 29 e6 vmovaps.s %ymm4,%ymm6
+[ ]*[a-f0-9]+: c5 fd 6f f4 vmovdqa %ymm4,%ymm6
+[ ]*[a-f0-9]+: c5 fd 7f e6 vmovdqa.s %ymm4,%ymm6
+[ ]*[a-f0-9]+: c5 fe 6f f4 vmovdqu %ymm4,%ymm6
+[ ]*[a-f0-9]+: c5 fe 7f e6 vmovdqu.s %ymm4,%ymm6
+[ ]*[a-f0-9]+: c5 fd 10 f4 vmovupd %ymm4,%ymm6
+[ ]*[a-f0-9]+: c5 fd 11 e6 vmovupd.s %ymm4,%ymm6
+[ ]*[a-f0-9]+: c5 fc 10 f4 vmovups %ymm4,%ymm6
+[ ]*[a-f0-9]+: c5 fc 11 e6 vmovups.s %ymm4,%ymm6
+[ ]*[a-f0-9]+: 66 0f 28 f4 movapd %xmm4,%xmm6
+[ ]*[a-f0-9]+: 66 0f 29 e6 movapd.s %xmm4,%xmm6
+[ ]*[a-f0-9]+: 0f 28 f4 movaps %xmm4,%xmm6
+[ ]*[a-f0-9]+: 0f 29 e6 movaps.s %xmm4,%xmm6
+[ ]*[a-f0-9]+: 66 0f 6f f4 movdqa %xmm4,%xmm6
+[ ]*[a-f0-9]+: 66 0f 7f e6 movdqa.s %xmm4,%xmm6
+[ ]*[a-f0-9]+: f3 0f 6f f4 movdqu %xmm4,%xmm6
+[ ]*[a-f0-9]+: f3 0f 7f e6 movdqu.s %xmm4,%xmm6
+[ ]*[a-f0-9]+: f3 0f 7e f4 movq %xmm4,%xmm6
+[ ]*[a-f0-9]+: 66 0f d6 e6 movq.s %xmm4,%xmm6
+[ ]*[a-f0-9]+: 66 0f 10 f4 movupd %xmm4,%xmm6
+[ ]*[a-f0-9]+: 66 0f 11 e6 movupd.s %xmm4,%xmm6
+[ ]*[a-f0-9]+: 0f 10 f4 movups %xmm4,%xmm6
+[ ]*[a-f0-9]+: 0f 11 e6 movups.s %xmm4,%xmm6
+[ ]*[a-f0-9]+: c5 f9 28 f4 vmovapd %xmm4,%xmm6
+[ ]*[a-f0-9]+: c5 f9 29 e6 vmovapd.s %xmm4,%xmm6
+[ ]*[a-f0-9]+: c5 f8 28 f4 vmovaps %xmm4,%xmm6
+[ ]*[a-f0-9]+: c5 f8 29 e6 vmovaps.s %xmm4,%xmm6
+[ ]*[a-f0-9]+: c5 f9 6f f4 vmovdqa %xmm4,%xmm6
+[ ]*[a-f0-9]+: c5 f9 7f e6 vmovdqa.s %xmm4,%xmm6
+[ ]*[a-f0-9]+: c5 fa 6f f4 vmovdqu %xmm4,%xmm6
+[ ]*[a-f0-9]+: c5 fa 7f e6 vmovdqu.s %xmm4,%xmm6
+[ ]*[a-f0-9]+: c5 fa 7e f4 vmovq %xmm4,%xmm6
+[ ]*[a-f0-9]+: c5 f9 d6 e6 vmovq.s %xmm4,%xmm6
+[ ]*[a-f0-9]+: c5 f9 10 f4 vmovupd %xmm4,%xmm6
+[ ]*[a-f0-9]+: c5 f9 11 e6 vmovupd.s %xmm4,%xmm6
+[ ]*[a-f0-9]+: c5 f8 10 f4 vmovups %xmm4,%xmm6
+[ ]*[a-f0-9]+: c5 f8 11 e6 vmovups.s %xmm4,%xmm6
+[ ]*[a-f0-9]+: 0f 6f e0 movq %mm0,%mm4
+[ ]*[a-f0-9]+: 0f 7f c4 movq.s %mm0,%mm4
+[ ]*[a-f0-9]+: 88 d1 movb %dl,%cl
+[ ]*[a-f0-9]+: 8a ca movb.s %dl,%cl
+[ ]*[a-f0-9]+: 66 89 d1 movw %dx,%cx
+[ ]*[a-f0-9]+: 66 8b ca movw.s %dx,%cx
+[ ]*[a-f0-9]+: 89 d1 movl %edx,%ecx
+[ ]*[a-f0-9]+: 8b ca movl.s %edx,%ecx
+[ ]*[a-f0-9]+: c5 fd 28 f4 vmovapd %ymm4,%ymm6
+[ ]*[a-f0-9]+: c5 fd 29 e6 vmovapd.s %ymm4,%ymm6
+[ ]*[a-f0-9]+: c5 fc 28 f4 vmovaps %ymm4,%ymm6
+[ ]*[a-f0-9]+: c5 fc 29 e6 vmovaps.s %ymm4,%ymm6
+[ ]*[a-f0-9]+: c5 fd 6f f4 vmovdqa %ymm4,%ymm6
+[ ]*[a-f0-9]+: c5 fd 7f e6 vmovdqa.s %ymm4,%ymm6
+[ ]*[a-f0-9]+: c5 fe 6f f4 vmovdqu %ymm4,%ymm6
+[ ]*[a-f0-9]+: c5 fe 7f e6 vmovdqu.s %ymm4,%ymm6
+[ ]*[a-f0-9]+: c5 fd 10 f4 vmovupd %ymm4,%ymm6
+[ ]*[a-f0-9]+: c5 fd 11 e6 vmovupd.s %ymm4,%ymm6
+[ ]*[a-f0-9]+: c5 fc 10 f4 vmovups %ymm4,%ymm6
+[ ]*[a-f0-9]+: c5 fc 11 e6 vmovups.s %ymm4,%ymm6
+[ ]*[a-f0-9]+: 66 0f 28 f4 movapd %xmm4,%xmm6
+[ ]*[a-f0-9]+: 66 0f 29 e6 movapd.s %xmm4,%xmm6
+[ ]*[a-f0-9]+: 0f 28 f4 movaps %xmm4,%xmm6
+[ ]*[a-f0-9]+: 0f 29 e6 movaps.s %xmm4,%xmm6
+[ ]*[a-f0-9]+: 66 0f 6f f4 movdqa %xmm4,%xmm6
+[ ]*[a-f0-9]+: 66 0f 7f e6 movdqa.s %xmm4,%xmm6
+[ ]*[a-f0-9]+: f3 0f 6f f4 movdqu %xmm4,%xmm6
+[ ]*[a-f0-9]+: f3 0f 7f e6 movdqu.s %xmm4,%xmm6
+[ ]*[a-f0-9]+: f3 0f 7e f4 movq %xmm4,%xmm6
+[ ]*[a-f0-9]+: 66 0f d6 e6 movq.s %xmm4,%xmm6
+[ ]*[a-f0-9]+: 66 0f 10 f4 movupd %xmm4,%xmm6
+[ ]*[a-f0-9]+: 66 0f 11 e6 movupd.s %xmm4,%xmm6
+[ ]*[a-f0-9]+: 0f 10 f4 movups %xmm4,%xmm6
+[ ]*[a-f0-9]+: 0f 11 e6 movups.s %xmm4,%xmm6
+[ ]*[a-f0-9]+: c5 f9 28 f4 vmovapd %xmm4,%xmm6
+[ ]*[a-f0-9]+: c5 f9 29 e6 vmovapd.s %xmm4,%xmm6
+[ ]*[a-f0-9]+: c5 f8 28 f4 vmovaps %xmm4,%xmm6
+[ ]*[a-f0-9]+: c5 f8 29 e6 vmovaps.s %xmm4,%xmm6
+[ ]*[a-f0-9]+: c5 f9 6f f4 vmovdqa %xmm4,%xmm6
+[ ]*[a-f0-9]+: c5 f9 7f e6 vmovdqa.s %xmm4,%xmm6
+[ ]*[a-f0-9]+: c5 fa 6f f4 vmovdqu %xmm4,%xmm6
+[ ]*[a-f0-9]+: c5 fa 7f e6 vmovdqu.s %xmm4,%xmm6
+[ ]*[a-f0-9]+: c5 fa 7e f4 vmovq %xmm4,%xmm6
+[ ]*[a-f0-9]+: c5 f9 d6 e6 vmovq.s %xmm4,%xmm6
+[ ]*[a-f0-9]+: c5 f9 10 f4 vmovupd %xmm4,%xmm6
+[ ]*[a-f0-9]+: c5 f9 11 e6 vmovupd.s %xmm4,%xmm6
+[ ]*[a-f0-9]+: c5 f8 10 f4 vmovups %xmm4,%xmm6
+[ ]*[a-f0-9]+: c5 f8 11 e6 vmovups.s %xmm4,%xmm6
+[ ]*[a-f0-9]+: 0f 6f e0 movq %mm0,%mm4
+[ ]*[a-f0-9]+: 0f 7f c4 movq.s %mm0,%mm4
+#pass
diff --git a/gas/testsuite/gas/i386/opts.s b/gas/testsuite/gas/i386/opts.s
new file mode 100644
index 0000000..0a66017
--- /dev/null
+++ b/gas/testsuite/gas/i386/opts.s
@@ -0,0 +1,125 @@
+# Check instructions with encoding options
+
+ .allow_index_reg
+ .text
+_start:
+
+# Tests for op reg, reg
+ mov %dl,%cl
+ mov.s %dl,%cl
+ mov %dx,%cx
+ mov.s %dx,%cx
+ mov %edx,%ecx
+ mov.s %edx,%ecx
+ movb %dl,%cl
+ movb.s %dl,%cl
+ movw %dx,%cx
+ movw.s %dx,%cx
+ movl %edx,%ecx
+ movl.s %edx,%ecx
+
+# Tests for op ymm, ymm
+ vmovapd %ymm4,%ymm6
+ vmovapd.s %ymm4,%ymm6
+ vmovaps %ymm4,%ymm6
+ vmovaps.s %ymm4,%ymm6
+ vmovdqa %ymm4,%ymm6
+ vmovdqa.s %ymm4,%ymm6
+ vmovdqu %ymm4,%ymm6
+ vmovdqu.s %ymm4,%ymm6
+ vmovupd %ymm4,%ymm6
+ vmovupd.s %ymm4,%ymm6
+ vmovups %ymm4,%ymm6
+ vmovups.s %ymm4,%ymm6
+
+# Tests for op xmm, xmm
+ movapd %xmm4,%xmm6
+ movapd.s %xmm4,%xmm6
+ movaps %xmm4,%xmm6
+ movaps.s %xmm4,%xmm6
+ movdqa %xmm4,%xmm6
+ movdqa.s %xmm4,%xmm6
+ movdqu %xmm4,%xmm6
+ movdqu.s %xmm4,%xmm6
+ movq %xmm4,%xmm6
+ movq.s %xmm4,%xmm6
+ movupd %xmm4,%xmm6
+ movupd.s %xmm4,%xmm6
+ movups %xmm4,%xmm6
+ movups.s %xmm4,%xmm6
+ vmovapd %xmm4,%xmm6
+ vmovapd.s %xmm4,%xmm6
+ vmovaps %xmm4,%xmm6
+ vmovaps.s %xmm4,%xmm6
+ vmovdqa %xmm4,%xmm6
+ vmovdqa.s %xmm4,%xmm6
+ vmovdqu %xmm4,%xmm6
+ vmovdqu.s %xmm4,%xmm6
+ vmovq %xmm4,%xmm6
+ vmovq.s %xmm4,%xmm6
+ vmovupd %xmm4,%xmm6
+ vmovupd.s %xmm4,%xmm6
+ vmovups %xmm4,%xmm6
+ vmovups.s %xmm4,%xmm6
+
+# Tests for op mm, mm
+ movq %mm0,%mm4
+ movq.s %mm0,%mm4
+
+ .intel_syntax noprefix
+
+# Tests for op reg, reg
+ mov cl,dl
+ mov.s cl,dl
+ mov cx,dx
+ mov.s cx,dx
+ mov ecx,edx
+ mov.s ecx,edx
+
+# Tests for op ymm, ymm
+ vmovapd ymm6,ymm4
+ vmovapd.s ymm6,ymm4
+ vmovaps ymm6,ymm4
+ vmovaps.s ymm6,ymm4
+ vmovdqa ymm6,ymm4
+ vmovdqa.s ymm6,ymm4
+ vmovdqu ymm6,ymm4
+ vmovdqu.s ymm6,ymm4
+ vmovupd ymm6,ymm4
+ vmovupd.s ymm6,ymm4
+ vmovups ymm6,ymm4
+ vmovups.s ymm6,ymm4
+
+# Tests for op xmm, xmm
+ movapd xmm6,xmm4
+ movapd.s xmm6,xmm4
+ movaps xmm6,xmm4
+ movaps.s xmm6,xmm4
+ movdqa xmm6,xmm4
+ movdqa.s xmm6,xmm4
+ movdqu xmm6,xmm4
+ movdqu.s xmm6,xmm4
+ movq xmm6,xmm4
+ movq.s xmm6,xmm4
+ movupd xmm6,xmm4
+ movupd.s xmm6,xmm4
+ movups xmm6,xmm4
+ movups.s xmm6,xmm4
+ vmovapd xmm6,xmm4
+ vmovapd.s xmm6,xmm4
+ vmovaps xmm6,xmm4
+ vmovaps.s xmm6,xmm4
+ vmovdqa xmm6,xmm4
+ vmovdqa.s xmm6,xmm4
+ vmovdqu xmm6,xmm4
+ vmovdqu.s xmm6,xmm4
+ vmovq xmm6,xmm4
+ vmovq.s xmm6,xmm4
+ vmovupd xmm6,xmm4
+ vmovupd.s xmm6,xmm4
+ vmovups xmm6,xmm4
+ vmovups.s xmm6,xmm4
+
+# Tests for op mm, mm
+ movq mm4,mm0
+ movq.s mm4,mm0
diff --git a/gas/testsuite/gas/i386/sse2avx-opts-intel.d b/gas/testsuite/gas/i386/sse2avx-opts-intel.d
new file mode 100644
index 0000000..66ec7bd
--- /dev/null
+++ b/gas/testsuite/gas/i386/sse2avx-opts-intel.d
@@ -0,0 +1,114 @@
+#as: -msse2avx
+#objdump: -drwMintel,suffix
+#name: encoding option with -msse2avx (Intel mode)
+#source: opts.s
+
+.*: +file format .*
+
+
+Disassembly of section .text:
+
+0+ <_start>:
+[ ]*[a-f0-9]+: 88 d1 mov cl,dl
+[ ]*[a-f0-9]+: 8a ca mov.s cl,dl
+[ ]*[a-f0-9]+: 66 89 d1 mov cx,dx
+[ ]*[a-f0-9]+: 66 8b ca mov.s cx,dx
+[ ]*[a-f0-9]+: 89 d1 mov ecx,edx
+[ ]*[a-f0-9]+: 8b ca mov.s ecx,edx
+[ ]*[a-f0-9]+: 88 d1 mov cl,dl
+[ ]*[a-f0-9]+: 8a ca mov.s cl,dl
+[ ]*[a-f0-9]+: 66 89 d1 mov cx,dx
+[ ]*[a-f0-9]+: 66 8b ca mov.s cx,dx
+[ ]*[a-f0-9]+: 89 d1 mov ecx,edx
+[ ]*[a-f0-9]+: 8b ca mov.s ecx,edx
+[ ]*[a-f0-9]+: c5 fd 28 f4 vmovapd ymm6,ymm4
+[ ]*[a-f0-9]+: c5 fd 29 e6 vmovapd.s ymm6,ymm4
+[ ]*[a-f0-9]+: c5 fc 28 f4 vmovaps ymm6,ymm4
+[ ]*[a-f0-9]+: c5 fc 29 e6 vmovaps.s ymm6,ymm4
+[ ]*[a-f0-9]+: c5 fd 6f f4 vmovdqa ymm6,ymm4
+[ ]*[a-f0-9]+: c5 fd 7f e6 vmovdqa.s ymm6,ymm4
+[ ]*[a-f0-9]+: c5 fe 6f f4 vmovdqu ymm6,ymm4
+[ ]*[a-f0-9]+: c5 fe 7f e6 vmovdqu.s ymm6,ymm4
+[ ]*[a-f0-9]+: c5 fd 10 f4 vmovupd ymm6,ymm4
+[ ]*[a-f0-9]+: c5 fd 11 e6 vmovupd.s ymm6,ymm4
+[ ]*[a-f0-9]+: c5 fc 10 f4 vmovups ymm6,ymm4
+[ ]*[a-f0-9]+: c5 fc 11 e6 vmovups.s ymm6,ymm4
+[ ]*[a-f0-9]+: c5 f9 28 f4 vmovapd xmm6,xmm4
+[ ]*[a-f0-9]+: c5 f9 29 e6 vmovapd.s xmm6,xmm4
+[ ]*[a-f0-9]+: c5 f8 28 f4 vmovaps xmm6,xmm4
+[ ]*[a-f0-9]+: c5 f8 29 e6 vmovaps.s xmm6,xmm4
+[ ]*[a-f0-9]+: c5 f9 6f f4 vmovdqa xmm6,xmm4
+[ ]*[a-f0-9]+: c5 f9 7f e6 vmovdqa.s xmm6,xmm4
+[ ]*[a-f0-9]+: c5 fa 6f f4 vmovdqu xmm6,xmm4
+[ ]*[a-f0-9]+: c5 fa 7f e6 vmovdqu.s xmm6,xmm4
+[ ]*[a-f0-9]+: c5 fa 7e f4 vmovq xmm6,xmm4
+[ ]*[a-f0-9]+: c5 f9 d6 e6 vmovq.s xmm6,xmm4
+[ ]*[a-f0-9]+: c5 f9 10 f4 vmovupd xmm6,xmm4
+[ ]*[a-f0-9]+: c5 f9 11 e6 vmovupd.s xmm6,xmm4
+[ ]*[a-f0-9]+: c5 f8 10 f4 vmovups xmm6,xmm4
+[ ]*[a-f0-9]+: c5 f8 11 e6 vmovups.s xmm6,xmm4
+[ ]*[a-f0-9]+: c5 f9 28 f4 vmovapd xmm6,xmm4
+[ ]*[a-f0-9]+: c5 f9 29 e6 vmovapd.s xmm6,xmm4
+[ ]*[a-f0-9]+: c5 f8 28 f4 vmovaps xmm6,xmm4
+[ ]*[a-f0-9]+: c5 f8 29 e6 vmovaps.s xmm6,xmm4
+[ ]*[a-f0-9]+: c5 f9 6f f4 vmovdqa xmm6,xmm4
+[ ]*[a-f0-9]+: c5 f9 7f e6 vmovdqa.s xmm6,xmm4
+[ ]*[a-f0-9]+: c5 fa 6f f4 vmovdqu xmm6,xmm4
+[ ]*[a-f0-9]+: c5 fa 7f e6 vmovdqu.s xmm6,xmm4
+[ ]*[a-f0-9]+: c5 fa 7e f4 vmovq xmm6,xmm4
+[ ]*[a-f0-9]+: c5 f9 d6 e6 vmovq.s xmm6,xmm4
+[ ]*[a-f0-9]+: c5 f9 10 f4 vmovupd xmm6,xmm4
+[ ]*[a-f0-9]+: c5 f9 11 e6 vmovupd.s xmm6,xmm4
+[ ]*[a-f0-9]+: c5 f8 10 f4 vmovups xmm6,xmm4
+[ ]*[a-f0-9]+: c5 f8 11 e6 vmovups.s xmm6,xmm4
+[ ]*[a-f0-9]+: 0f 6f e0 movq mm4,mm0
+[ ]*[a-f0-9]+: 0f 7f c4 movq.s mm4,mm0
+[ ]*[a-f0-9]+: 88 d1 mov cl,dl
+[ ]*[a-f0-9]+: 8a ca mov.s cl,dl
+[ ]*[a-f0-9]+: 66 89 d1 mov cx,dx
+[ ]*[a-f0-9]+: 66 8b ca mov.s cx,dx
+[ ]*[a-f0-9]+: 89 d1 mov ecx,edx
+[ ]*[a-f0-9]+: 8b ca mov.s ecx,edx
+[ ]*[a-f0-9]+: c5 fd 28 f4 vmovapd ymm6,ymm4
+[ ]*[a-f0-9]+: c5 fd 29 e6 vmovapd.s ymm6,ymm4
+[ ]*[a-f0-9]+: c5 fc 28 f4 vmovaps ymm6,ymm4
+[ ]*[a-f0-9]+: c5 fc 29 e6 vmovaps.s ymm6,ymm4
+[ ]*[a-f0-9]+: c5 fd 6f f4 vmovdqa ymm6,ymm4
+[ ]*[a-f0-9]+: c5 fd 7f e6 vmovdqa.s ymm6,ymm4
+[ ]*[a-f0-9]+: c5 fe 6f f4 vmovdqu ymm6,ymm4
+[ ]*[a-f0-9]+: c5 fe 7f e6 vmovdqu.s ymm6,ymm4
+[ ]*[a-f0-9]+: c5 fd 10 f4 vmovupd ymm6,ymm4
+[ ]*[a-f0-9]+: c5 fd 11 e6 vmovupd.s ymm6,ymm4
+[ ]*[a-f0-9]+: c5 fc 10 f4 vmovups ymm6,ymm4
+[ ]*[a-f0-9]+: c5 fc 11 e6 vmovups.s ymm6,ymm4
+[ ]*[a-f0-9]+: c5 f9 28 f4 vmovapd xmm6,xmm4
+[ ]*[a-f0-9]+: c5 f9 29 e6 vmovapd.s xmm6,xmm4
+[ ]*[a-f0-9]+: c5 f8 28 f4 vmovaps xmm6,xmm4
+[ ]*[a-f0-9]+: c5 f8 29 e6 vmovaps.s xmm6,xmm4
+[ ]*[a-f0-9]+: c5 f9 6f f4 vmovdqa xmm6,xmm4
+[ ]*[a-f0-9]+: c5 f9 7f e6 vmovdqa.s xmm6,xmm4
+[ ]*[a-f0-9]+: c5 fa 6f f4 vmovdqu xmm6,xmm4
+[ ]*[a-f0-9]+: c5 fa 7f e6 vmovdqu.s xmm6,xmm4
+[ ]*[a-f0-9]+: c5 fa 7e f4 vmovq xmm6,xmm4
+[ ]*[a-f0-9]+: c5 f9 d6 e6 vmovq.s xmm6,xmm4
+[ ]*[a-f0-9]+: c5 f9 10 f4 vmovupd xmm6,xmm4
+[ ]*[a-f0-9]+: c5 f9 11 e6 vmovupd.s xmm6,xmm4
+[ ]*[a-f0-9]+: c5 f8 10 f4 vmovups xmm6,xmm4
+[ ]*[a-f0-9]+: c5 f8 11 e6 vmovups.s xmm6,xmm4
+[ ]*[a-f0-9]+: c5 f9 28 f4 vmovapd xmm6,xmm4
+[ ]*[a-f0-9]+: c5 f9 29 e6 vmovapd.s xmm6,xmm4
+[ ]*[a-f0-9]+: c5 f8 28 f4 vmovaps xmm6,xmm4
+[ ]*[a-f0-9]+: c5 f8 29 e6 vmovaps.s xmm6,xmm4
+[ ]*[a-f0-9]+: c5 f9 6f f4 vmovdqa xmm6,xmm4
+[ ]*[a-f0-9]+: c5 f9 7f e6 vmovdqa.s xmm6,xmm4
+[ ]*[a-f0-9]+: c5 fa 6f f4 vmovdqu xmm6,xmm4
+[ ]*[a-f0-9]+: c5 fa 7f e6 vmovdqu.s xmm6,xmm4
+[ ]*[a-f0-9]+: c5 fa 7e f4 vmovq xmm6,xmm4
+[ ]*[a-f0-9]+: c5 f9 d6 e6 vmovq.s xmm6,xmm4
+[ ]*[a-f0-9]+: c5 f9 10 f4 vmovupd xmm6,xmm4
+[ ]*[a-f0-9]+: c5 f9 11 e6 vmovupd.s xmm6,xmm4
+[ ]*[a-f0-9]+: c5 f8 10 f4 vmovups xmm6,xmm4
+[ ]*[a-f0-9]+: c5 f8 11 e6 vmovups.s xmm6,xmm4
+[ ]*[a-f0-9]+: 0f 6f e0 movq mm4,mm0
+[ ]*[a-f0-9]+: 0f 7f c4 movq.s mm4,mm0
+#pass
diff --git a/gas/testsuite/gas/i386/sse2avx-opts.d b/gas/testsuite/gas/i386/sse2avx-opts.d
new file mode 100644
index 0000000..0054c0a
--- /dev/null
+++ b/gas/testsuite/gas/i386/sse2avx-opts.d
@@ -0,0 +1,114 @@
+#as: -msse2avx
+#objdump: -drwMsuffix
+#name: encoding option with -msse2avx
+#source: opts.s
+
+.*: +file format .*
+
+
+Disassembly of section .text:
+
+0+ <_start>:
+[ ]*[a-f0-9]+: 88 d1 movb %dl,%cl
+[ ]*[a-f0-9]+: 8a ca movb.s %dl,%cl
+[ ]*[a-f0-9]+: 66 89 d1 movw %dx,%cx
+[ ]*[a-f0-9]+: 66 8b ca movw.s %dx,%cx
+[ ]*[a-f0-9]+: 89 d1 movl %edx,%ecx
+[ ]*[a-f0-9]+: 8b ca movl.s %edx,%ecx
+[ ]*[a-f0-9]+: 88 d1 movb %dl,%cl
+[ ]*[a-f0-9]+: 8a ca movb.s %dl,%cl
+[ ]*[a-f0-9]+: 66 89 d1 movw %dx,%cx
+[ ]*[a-f0-9]+: 66 8b ca movw.s %dx,%cx
+[ ]*[a-f0-9]+: 89 d1 movl %edx,%ecx
+[ ]*[a-f0-9]+: 8b ca movl.s %edx,%ecx
+[ ]*[a-f0-9]+: c5 fd 28 f4 vmovapd %ymm4,%ymm6
+[ ]*[a-f0-9]+: c5 fd 29 e6 vmovapd.s %ymm4,%ymm6
+[ ]*[a-f0-9]+: c5 fc 28 f4 vmovaps %ymm4,%ymm6
+[ ]*[a-f0-9]+: c5 fc 29 e6 vmovaps.s %ymm4,%ymm6
+[ ]*[a-f0-9]+: c5 fd 6f f4 vmovdqa %ymm4,%ymm6
+[ ]*[a-f0-9]+: c5 fd 7f e6 vmovdqa.s %ymm4,%ymm6
+[ ]*[a-f0-9]+: c5 fe 6f f4 vmovdqu %ymm4,%ymm6
+[ ]*[a-f0-9]+: c5 fe 7f e6 vmovdqu.s %ymm4,%ymm6
+[ ]*[a-f0-9]+: c5 fd 10 f4 vmovupd %ymm4,%ymm6
+[ ]*[a-f0-9]+: c5 fd 11 e6 vmovupd.s %ymm4,%ymm6
+[ ]*[a-f0-9]+: c5 fc 10 f4 vmovups %ymm4,%ymm6
+[ ]*[a-f0-9]+: c5 fc 11 e6 vmovups.s %ymm4,%ymm6
+[ ]*[a-f0-9]+: c5 f9 28 f4 vmovapd %xmm4,%xmm6
+[ ]*[a-f0-9]+: c5 f9 29 e6 vmovapd.s %xmm4,%xmm6
+[ ]*[a-f0-9]+: c5 f8 28 f4 vmovaps %xmm4,%xmm6
+[ ]*[a-f0-9]+: c5 f8 29 e6 vmovaps.s %xmm4,%xmm6
+[ ]*[a-f0-9]+: c5 f9 6f f4 vmovdqa %xmm4,%xmm6
+[ ]*[a-f0-9]+: c5 f9 7f e6 vmovdqa.s %xmm4,%xmm6
+[ ]*[a-f0-9]+: c5 fa 6f f4 vmovdqu %xmm4,%xmm6
+[ ]*[a-f0-9]+: c5 fa 7f e6 vmovdqu.s %xmm4,%xmm6
+[ ]*[a-f0-9]+: c5 fa 7e f4 vmovq %xmm4,%xmm6
+[ ]*[a-f0-9]+: c5 f9 d6 e6 vmovq.s %xmm4,%xmm6
+[ ]*[a-f0-9]+: c5 f9 10 f4 vmovupd %xmm4,%xmm6
+[ ]*[a-f0-9]+: c5 f9 11 e6 vmovupd.s %xmm4,%xmm6
+[ ]*[a-f0-9]+: c5 f8 10 f4 vmovups %xmm4,%xmm6
+[ ]*[a-f0-9]+: c5 f8 11 e6 vmovups.s %xmm4,%xmm6
+[ ]*[a-f0-9]+: c5 f9 28 f4 vmovapd %xmm4,%xmm6
+[ ]*[a-f0-9]+: c5 f9 29 e6 vmovapd.s %xmm4,%xmm6
+[ ]*[a-f0-9]+: c5 f8 28 f4 vmovaps %xmm4,%xmm6
+[ ]*[a-f0-9]+: c5 f8 29 e6 vmovaps.s %xmm4,%xmm6
+[ ]*[a-f0-9]+: c5 f9 6f f4 vmovdqa %xmm4,%xmm6
+[ ]*[a-f0-9]+: c5 f9 7f e6 vmovdqa.s %xmm4,%xmm6
+[ ]*[a-f0-9]+: c5 fa 6f f4 vmovdqu %xmm4,%xmm6
+[ ]*[a-f0-9]+: c5 fa 7f e6 vmovdqu.s %xmm4,%xmm6
+[ ]*[a-f0-9]+: c5 fa 7e f4 vmovq %xmm4,%xmm6
+[ ]*[a-f0-9]+: c5 f9 d6 e6 vmovq.s %xmm4,%xmm6
+[ ]*[a-f0-9]+: c5 f9 10 f4 vmovupd %xmm4,%xmm6
+[ ]*[a-f0-9]+: c5 f9 11 e6 vmovupd.s %xmm4,%xmm6
+[ ]*[a-f0-9]+: c5 f8 10 f4 vmovups %xmm4,%xmm6
+[ ]*[a-f0-9]+: c5 f8 11 e6 vmovups.s %xmm4,%xmm6
+[ ]*[a-f0-9]+: 0f 6f e0 movq %mm0,%mm4
+[ ]*[a-f0-9]+: 0f 7f c4 movq.s %mm0,%mm4
+[ ]*[a-f0-9]+: 88 d1 movb %dl,%cl
+[ ]*[a-f0-9]+: 8a ca movb.s %dl,%cl
+[ ]*[a-f0-9]+: 66 89 d1 movw %dx,%cx
+[ ]*[a-f0-9]+: 66 8b ca movw.s %dx,%cx
+[ ]*[a-f0-9]+: 89 d1 movl %edx,%ecx
+[ ]*[a-f0-9]+: 8b ca movl.s %edx,%ecx
+[ ]*[a-f0-9]+: c5 fd 28 f4 vmovapd %ymm4,%ymm6
+[ ]*[a-f0-9]+: c5 fd 29 e6 vmovapd.s %ymm4,%ymm6
+[ ]*[a-f0-9]+: c5 fc 28 f4 vmovaps %ymm4,%ymm6
+[ ]*[a-f0-9]+: c5 fc 29 e6 vmovaps.s %ymm4,%ymm6
+[ ]*[a-f0-9]+: c5 fd 6f f4 vmovdqa %ymm4,%ymm6
+[ ]*[a-f0-9]+: c5 fd 7f e6 vmovdqa.s %ymm4,%ymm6
+[ ]*[a-f0-9]+: c5 fe 6f f4 vmovdqu %ymm4,%ymm6
+[ ]*[a-f0-9]+: c5 fe 7f e6 vmovdqu.s %ymm4,%ymm6
+[ ]*[a-f0-9]+: c5 fd 10 f4 vmovupd %ymm4,%ymm6
+[ ]*[a-f0-9]+: c5 fd 11 e6 vmovupd.s %ymm4,%ymm6
+[ ]*[a-f0-9]+: c5 fc 10 f4 vmovups %ymm4,%ymm6
+[ ]*[a-f0-9]+: c5 fc 11 e6 vmovups.s %ymm4,%ymm6
+[ ]*[a-f0-9]+: c5 f9 28 f4 vmovapd %xmm4,%xmm6
+[ ]*[a-f0-9]+: c5 f9 29 e6 vmovapd.s %xmm4,%xmm6
+[ ]*[a-f0-9]+: c5 f8 28 f4 vmovaps %xmm4,%xmm6
+[ ]*[a-f0-9]+: c5 f8 29 e6 vmovaps.s %xmm4,%xmm6
+[ ]*[a-f0-9]+: c5 f9 6f f4 vmovdqa %xmm4,%xmm6
+[ ]*[a-f0-9]+: c5 f9 7f e6 vmovdqa.s %xmm4,%xmm6
+[ ]*[a-f0-9]+: c5 fa 6f f4 vmovdqu %xmm4,%xmm6
+[ ]*[a-f0-9]+: c5 fa 7f e6 vmovdqu.s %xmm4,%xmm6
+[ ]*[a-f0-9]+: c5 fa 7e f4 vmovq %xmm4,%xmm6
+[ ]*[a-f0-9]+: c5 f9 d6 e6 vmovq.s %xmm4,%xmm6
+[ ]*[a-f0-9]+: c5 f9 10 f4 vmovupd %xmm4,%xmm6
+[ ]*[a-f0-9]+: c5 f9 11 e6 vmovupd.s %xmm4,%xmm6
+[ ]*[a-f0-9]+: c5 f8 10 f4 vmovups %xmm4,%xmm6
+[ ]*[a-f0-9]+: c5 f8 11 e6 vmovups.s %xmm4,%xmm6
+[ ]*[a-f0-9]+: c5 f9 28 f4 vmovapd %xmm4,%xmm6
+[ ]*[a-f0-9]+: c5 f9 29 e6 vmovapd.s %xmm4,%xmm6
+[ ]*[a-f0-9]+: c5 f8 28 f4 vmovaps %xmm4,%xmm6
+[ ]*[a-f0-9]+: c5 f8 29 e6 vmovaps.s %xmm4,%xmm6
+[ ]*[a-f0-9]+: c5 f9 6f f4 vmovdqa %xmm4,%xmm6
+[ ]*[a-f0-9]+: c5 f9 7f e6 vmovdqa.s %xmm4,%xmm6
+[ ]*[a-f0-9]+: c5 fa 6f f4 vmovdqu %xmm4,%xmm6
+[ ]*[a-f0-9]+: c5 fa 7f e6 vmovdqu.s %xmm4,%xmm6
+[ ]*[a-f0-9]+: c5 fa 7e f4 vmovq %xmm4,%xmm6
+[ ]*[a-f0-9]+: c5 f9 d6 e6 vmovq.s %xmm4,%xmm6
+[ ]*[a-f0-9]+: c5 f9 10 f4 vmovupd %xmm4,%xmm6
+[ ]*[a-f0-9]+: c5 f9 11 e6 vmovupd.s %xmm4,%xmm6
+[ ]*[a-f0-9]+: c5 f8 10 f4 vmovups %xmm4,%xmm6
+[ ]*[a-f0-9]+: c5 f8 11 e6 vmovups.s %xmm4,%xmm6
+[ ]*[a-f0-9]+: 0f 6f e0 movq %mm0,%mm4
+[ ]*[a-f0-9]+: 0f 7f c4 movq.s %mm0,%mm4
+#pass
diff --git a/gas/testsuite/gas/i386/x86-64-opts-intel.d b/gas/testsuite/gas/i386/x86-64-opts-intel.d
new file mode 100644
index 0000000..3a92cb7
--- /dev/null
+++ b/gas/testsuite/gas/i386/x86-64-opts-intel.d
@@ -0,0 +1,119 @@
+#objdump: -drwMintel,suffix
+#name: x86-64 encoding option (Intel mode)
+#source: x86-64-opts.s
+
+.*: +file format .*
+
+
+Disassembly of section .text:
+
+0+ <_start>:
+[ ]*[a-f0-9]+: 88 d1 mov cl,dl
+[ ]*[a-f0-9]+: 8a ca mov.s cl,dl
+[ ]*[a-f0-9]+: 66 89 d1 mov cx,dx
+[ ]*[a-f0-9]+: 66 8b ca mov.s cx,dx
+[ ]*[a-f0-9]+: 89 d1 mov ecx,edx
+[ ]*[a-f0-9]+: 8b ca mov.s ecx,edx
+[ ]*[a-f0-9]+: 88 d1 mov cl,dl
+[ ]*[a-f0-9]+: 8a ca mov.s cl,dl
+[ ]*[a-f0-9]+: 66 89 d1 mov cx,dx
+[ ]*[a-f0-9]+: 66 8b ca mov.s cx,dx
+[ ]*[a-f0-9]+: 89 d1 mov ecx,edx
+[ ]*[a-f0-9]+: 8b ca mov.s ecx,edx
+[ ]*[a-f0-9]+: 48 89 d1 mov rcx,rdx
+[ ]*[a-f0-9]+: 48 8b ca mov.s rcx,rdx
+[ ]*[a-f0-9]+: 48 89 d1 mov rcx,rdx
+[ ]*[a-f0-9]+: 48 8b ca mov.s rcx,rdx
+[ ]*[a-f0-9]+: c5 fd 28 f4 vmovapd ymm6,ymm4
+[ ]*[a-f0-9]+: c5 fd 29 e6 vmovapd.s ymm6,ymm4
+[ ]*[a-f0-9]+: c5 fc 28 f4 vmovaps ymm6,ymm4
+[ ]*[a-f0-9]+: c5 fc 29 e6 vmovaps.s ymm6,ymm4
+[ ]*[a-f0-9]+: c5 fd 6f f4 vmovdqa ymm6,ymm4
+[ ]*[a-f0-9]+: c5 fd 7f e6 vmovdqa.s ymm6,ymm4
+[ ]*[a-f0-9]+: c5 fe 6f f4 vmovdqu ymm6,ymm4
+[ ]*[a-f0-9]+: c5 fe 7f e6 vmovdqu.s ymm6,ymm4
+[ ]*[a-f0-9]+: c5 fd 10 f4 vmovupd ymm6,ymm4
+[ ]*[a-f0-9]+: c5 fd 11 e6 vmovupd.s ymm6,ymm4
+[ ]*[a-f0-9]+: c5 fc 10 f4 vmovups ymm6,ymm4
+[ ]*[a-f0-9]+: c5 fc 11 e6 vmovups.s ymm6,ymm4
+[ ]*[a-f0-9]+: 66 0f 28 f4 movapd xmm6,xmm4
+[ ]*[a-f0-9]+: 66 0f 29 e6 movapd.s xmm6,xmm4
+[ ]*[a-f0-9]+: 0f 28 f4 movaps xmm6,xmm4
+[ ]*[a-f0-9]+: 0f 29 e6 movaps.s xmm6,xmm4
+[ ]*[a-f0-9]+: 66 0f 6f f4 movdqa xmm6,xmm4
+[ ]*[a-f0-9]+: 66 0f 7f e6 movdqa.s xmm6,xmm4
+[ ]*[a-f0-9]+: f3 0f 6f f4 movdqu xmm6,xmm4
+[ ]*[a-f0-9]+: f3 0f 7f e6 movdqu.s xmm6,xmm4
+[ ]*[a-f0-9]+: f3 0f 7e f4 movq xmm6,xmm4
+[ ]*[a-f0-9]+: 66 0f d6 e6 movq.s xmm6,xmm4
+[ ]*[a-f0-9]+: 66 0f 10 f4 movupd xmm6,xmm4
+[ ]*[a-f0-9]+: 66 0f 11 e6 movupd.s xmm6,xmm4
+[ ]*[a-f0-9]+: 0f 10 f4 movups xmm6,xmm4
+[ ]*[a-f0-9]+: 0f 11 e6 movups.s xmm6,xmm4
+[ ]*[a-f0-9]+: c5 f9 28 f4 vmovapd xmm6,xmm4
+[ ]*[a-f0-9]+: c5 f9 29 e6 vmovapd.s xmm6,xmm4
+[ ]*[a-f0-9]+: c5 f8 28 f4 vmovaps xmm6,xmm4
+[ ]*[a-f0-9]+: c5 f8 29 e6 vmovaps.s xmm6,xmm4
+[ ]*[a-f0-9]+: c5 f9 6f f4 vmovdqa xmm6,xmm4
+[ ]*[a-f0-9]+: c5 f9 7f e6 vmovdqa.s xmm6,xmm4
+[ ]*[a-f0-9]+: c5 fa 6f f4 vmovdqu xmm6,xmm4
+[ ]*[a-f0-9]+: c5 fa 7f e6 vmovdqu.s xmm6,xmm4
+[ ]*[a-f0-9]+: c5 fa 7e f4 vmovq xmm6,xmm4
+[ ]*[a-f0-9]+: c5 f9 d6 e6 vmovq.s xmm6,xmm4
+[ ]*[a-f0-9]+: c5 f9 10 f4 vmovupd xmm6,xmm4
+[ ]*[a-f0-9]+: c5 f9 11 e6 vmovupd.s xmm6,xmm4
+[ ]*[a-f0-9]+: c5 f8 10 f4 vmovups xmm6,xmm4
+[ ]*[a-f0-9]+: c5 f8 11 e6 vmovups.s xmm6,xmm4
+[ ]*[a-f0-9]+: 0f 6f e0 movq mm4,mm0
+[ ]*[a-f0-9]+: 0f 7f c4 movq.s mm4,mm0
+[ ]*[a-f0-9]+: 88 d1 mov cl,dl
+[ ]*[a-f0-9]+: 8a ca mov.s cl,dl
+[ ]*[a-f0-9]+: 66 89 d1 mov cx,dx
+[ ]*[a-f0-9]+: 66 8b ca mov.s cx,dx
+[ ]*[a-f0-9]+: 89 d1 mov ecx,edx
+[ ]*[a-f0-9]+: 8b ca mov.s ecx,edx
+[ ]*[a-f0-9]+: 48 89 d1 mov rcx,rdx
+[ ]*[a-f0-9]+: 48 8b ca mov.s rcx,rdx
+[ ]*[a-f0-9]+: c5 fd 28 f4 vmovapd ymm6,ymm4
+[ ]*[a-f0-9]+: c5 fd 29 e6 vmovapd.s ymm6,ymm4
+[ ]*[a-f0-9]+: c5 fc 28 f4 vmovaps ymm6,ymm4
+[ ]*[a-f0-9]+: c5 fc 29 e6 vmovaps.s ymm6,ymm4
+[ ]*[a-f0-9]+: c5 fd 6f f4 vmovdqa ymm6,ymm4
+[ ]*[a-f0-9]+: c5 fd 7f e6 vmovdqa.s ymm6,ymm4
+[ ]*[a-f0-9]+: c5 fe 6f f4 vmovdqu ymm6,ymm4
+[ ]*[a-f0-9]+: c5 fe 7f e6 vmovdqu.s ymm6,ymm4
+[ ]*[a-f0-9]+: c5 fd 10 f4 vmovupd ymm6,ymm4
+[ ]*[a-f0-9]+: c5 fd 11 e6 vmovupd.s ymm6,ymm4
+[ ]*[a-f0-9]+: c5 fc 10 f4 vmovups ymm6,ymm4
+[ ]*[a-f0-9]+: c5 fc 11 e6 vmovups.s ymm6,ymm4
+[ ]*[a-f0-9]+: 66 0f 28 f4 movapd xmm6,xmm4
+[ ]*[a-f0-9]+: 66 0f 29 e6 movapd.s xmm6,xmm4
+[ ]*[a-f0-9]+: 0f 28 f4 movaps xmm6,xmm4
+[ ]*[a-f0-9]+: 0f 29 e6 movaps.s xmm6,xmm4
+[ ]*[a-f0-9]+: 66 0f 6f f4 movdqa xmm6,xmm4
+[ ]*[a-f0-9]+: 66 0f 7f e6 movdqa.s xmm6,xmm4
+[ ]*[a-f0-9]+: f3 0f 6f f4 movdqu xmm6,xmm4
+[ ]*[a-f0-9]+: f3 0f 7f e6 movdqu.s xmm6,xmm4
+[ ]*[a-f0-9]+: f3 0f 7e f4 movq xmm6,xmm4
+[ ]*[a-f0-9]+: 66 0f d6 e6 movq.s xmm6,xmm4
+[ ]*[a-f0-9]+: 66 0f 10 f4 movupd xmm6,xmm4
+[ ]*[a-f0-9]+: 66 0f 11 e6 movupd.s xmm6,xmm4
+[ ]*[a-f0-9]+: 0f 10 f4 movups xmm6,xmm4
+[ ]*[a-f0-9]+: 0f 11 e6 movups.s xmm6,xmm4
+[ ]*[a-f0-9]+: c5 f9 28 f4 vmovapd xmm6,xmm4
+[ ]*[a-f0-9]+: c5 f9 29 e6 vmovapd.s xmm6,xmm4
+[ ]*[a-f0-9]+: c5 f8 28 f4 vmovaps xmm6,xmm4
+[ ]*[a-f0-9]+: c5 f8 29 e6 vmovaps.s xmm6,xmm4
+[ ]*[a-f0-9]+: c5 f9 6f f4 vmovdqa xmm6,xmm4
+[ ]*[a-f0-9]+: c5 f9 7f e6 vmovdqa.s xmm6,xmm4
+[ ]*[a-f0-9]+: c5 fa 6f f4 vmovdqu xmm6,xmm4
+[ ]*[a-f0-9]+: c5 fa 7f e6 vmovdqu.s xmm6,xmm4
+[ ]*[a-f0-9]+: c5 fa 7e f4 vmovq xmm6,xmm4
+[ ]*[a-f0-9]+: c5 f9 d6 e6 vmovq.s xmm6,xmm4
+[ ]*[a-f0-9]+: c5 f9 10 f4 vmovupd xmm6,xmm4
+[ ]*[a-f0-9]+: c5 f9 11 e6 vmovupd.s xmm6,xmm4
+[ ]*[a-f0-9]+: c5 f8 10 f4 vmovups xmm6,xmm4
+[ ]*[a-f0-9]+: c5 f8 11 e6 vmovups.s xmm6,xmm4
+[ ]*[a-f0-9]+: 0f 6f e0 movq mm4,mm0
+[ ]*[a-f0-9]+: 0f 7f c4 movq.s mm4,mm0
+#pass
diff --git a/gas/testsuite/gas/i386/x86-64-opts.d b/gas/testsuite/gas/i386/x86-64-opts.d
new file mode 100644
index 0000000..43084cb
--- /dev/null
+++ b/gas/testsuite/gas/i386/x86-64-opts.d
@@ -0,0 +1,118 @@
+#objdump: -drwMsuffix
+#name: x86-64 encoding option
+
+.*: +file format .*
+
+
+Disassembly of section .text:
+
+0+ <_start>:
+[ ]*[a-f0-9]+: 88 d1 movb %dl,%cl
+[ ]*[a-f0-9]+: 8a ca movb.s %dl,%cl
+[ ]*[a-f0-9]+: 66 89 d1 movw %dx,%cx
+[ ]*[a-f0-9]+: 66 8b ca movw.s %dx,%cx
+[ ]*[a-f0-9]+: 89 d1 movl %edx,%ecx
+[ ]*[a-f0-9]+: 8b ca movl.s %edx,%ecx
+[ ]*[a-f0-9]+: 88 d1 movb %dl,%cl
+[ ]*[a-f0-9]+: 8a ca movb.s %dl,%cl
+[ ]*[a-f0-9]+: 66 89 d1 movw %dx,%cx
+[ ]*[a-f0-9]+: 66 8b ca movw.s %dx,%cx
+[ ]*[a-f0-9]+: 89 d1 movl %edx,%ecx
+[ ]*[a-f0-9]+: 8b ca movl.s %edx,%ecx
+[ ]*[a-f0-9]+: 48 89 d1 movq %rdx,%rcx
+[ ]*[a-f0-9]+: 48 8b ca movq.s %rdx,%rcx
+[ ]*[a-f0-9]+: 48 89 d1 movq %rdx,%rcx
+[ ]*[a-f0-9]+: 48 8b ca movq.s %rdx,%rcx
+[ ]*[a-f0-9]+: c5 fd 28 f4 vmovapd %ymm4,%ymm6
+[ ]*[a-f0-9]+: c5 fd 29 e6 vmovapd.s %ymm4,%ymm6
+[ ]*[a-f0-9]+: c5 fc 28 f4 vmovaps %ymm4,%ymm6
+[ ]*[a-f0-9]+: c5 fc 29 e6 vmovaps.s %ymm4,%ymm6
+[ ]*[a-f0-9]+: c5 fd 6f f4 vmovdqa %ymm4,%ymm6
+[ ]*[a-f0-9]+: c5 fd 7f e6 vmovdqa.s %ymm4,%ymm6
+[ ]*[a-f0-9]+: c5 fe 6f f4 vmovdqu %ymm4,%ymm6
+[ ]*[a-f0-9]+: c5 fe 7f e6 vmovdqu.s %ymm4,%ymm6
+[ ]*[a-f0-9]+: c5 fd 10 f4 vmovupd %ymm4,%ymm6
+[ ]*[a-f0-9]+: c5 fd 11 e6 vmovupd.s %ymm4,%ymm6
+[ ]*[a-f0-9]+: c5 fc 10 f4 vmovups %ymm4,%ymm6
+[ ]*[a-f0-9]+: c5 fc 11 e6 vmovups.s %ymm4,%ymm6
+[ ]*[a-f0-9]+: 66 0f 28 f4 movapd %xmm4,%xmm6
+[ ]*[a-f0-9]+: 66 0f 29 e6 movapd.s %xmm4,%xmm6
+[ ]*[a-f0-9]+: 0f 28 f4 movaps %xmm4,%xmm6
+[ ]*[a-f0-9]+: 0f 29 e6 movaps.s %xmm4,%xmm6
+[ ]*[a-f0-9]+: 66 0f 6f f4 movdqa %xmm4,%xmm6
+[ ]*[a-f0-9]+: 66 0f 7f e6 movdqa.s %xmm4,%xmm6
+[ ]*[a-f0-9]+: f3 0f 6f f4 movdqu %xmm4,%xmm6
+[ ]*[a-f0-9]+: f3 0f 7f e6 movdqu.s %xmm4,%xmm6
+[ ]*[a-f0-9]+: f3 0f 7e f4 movq %xmm4,%xmm6
+[ ]*[a-f0-9]+: 66 0f d6 e6 movq.s %xmm4,%xmm6
+[ ]*[a-f0-9]+: 66 0f 10 f4 movupd %xmm4,%xmm6
+[ ]*[a-f0-9]+: 66 0f 11 e6 movupd.s %xmm4,%xmm6
+[ ]*[a-f0-9]+: 0f 10 f4 movups %xmm4,%xmm6
+[ ]*[a-f0-9]+: 0f 11 e6 movups.s %xmm4,%xmm6
+[ ]*[a-f0-9]+: c5 f9 28 f4 vmovapd %xmm4,%xmm6
+[ ]*[a-f0-9]+: c5 f9 29 e6 vmovapd.s %xmm4,%xmm6
+[ ]*[a-f0-9]+: c5 f8 28 f4 vmovaps %xmm4,%xmm6
+[ ]*[a-f0-9]+: c5 f8 29 e6 vmovaps.s %xmm4,%xmm6
+[ ]*[a-f0-9]+: c5 f9 6f f4 vmovdqa %xmm4,%xmm6
+[ ]*[a-f0-9]+: c5 f9 7f e6 vmovdqa.s %xmm4,%xmm6
+[ ]*[a-f0-9]+: c5 fa 6f f4 vmovdqu %xmm4,%xmm6
+[ ]*[a-f0-9]+: c5 fa 7f e6 vmovdqu.s %xmm4,%xmm6
+[ ]*[a-f0-9]+: c5 fa 7e f4 vmovq %xmm4,%xmm6
+[ ]*[a-f0-9]+: c5 f9 d6 e6 vmovq.s %xmm4,%xmm6
+[ ]*[a-f0-9]+: c5 f9 10 f4 vmovupd %xmm4,%xmm6
+[ ]*[a-f0-9]+: c5 f9 11 e6 vmovupd.s %xmm4,%xmm6
+[ ]*[a-f0-9]+: c5 f8 10 f4 vmovups %xmm4,%xmm6
+[ ]*[a-f0-9]+: c5 f8 11 e6 vmovups.s %xmm4,%xmm6
+[ ]*[a-f0-9]+: 0f 6f e0 movq %mm0,%mm4
+[ ]*[a-f0-9]+: 0f 7f c4 movq.s %mm0,%mm4
+[ ]*[a-f0-9]+: 88 d1 movb %dl,%cl
+[ ]*[a-f0-9]+: 8a ca movb.s %dl,%cl
+[ ]*[a-f0-9]+: 66 89 d1 movw %dx,%cx
+[ ]*[a-f0-9]+: 66 8b ca movw.s %dx,%cx
+[ ]*[a-f0-9]+: 89 d1 movl %edx,%ecx
+[ ]*[a-f0-9]+: 8b ca movl.s %edx,%ecx
+[ ]*[a-f0-9]+: 48 89 d1 movq %rdx,%rcx
+[ ]*[a-f0-9]+: 48 8b ca movq.s %rdx,%rcx
+[ ]*[a-f0-9]+: c5 fd 28 f4 vmovapd %ymm4,%ymm6
+[ ]*[a-f0-9]+: c5 fd 29 e6 vmovapd.s %ymm4,%ymm6
+[ ]*[a-f0-9]+: c5 fc 28 f4 vmovaps %ymm4,%ymm6
+[ ]*[a-f0-9]+: c5 fc 29 e6 vmovaps.s %ymm4,%ymm6
+[ ]*[a-f0-9]+: c5 fd 6f f4 vmovdqa %ymm4,%ymm6
+[ ]*[a-f0-9]+: c5 fd 7f e6 vmovdqa.s %ymm4,%ymm6
+[ ]*[a-f0-9]+: c5 fe 6f f4 vmovdqu %ymm4,%ymm6
+[ ]*[a-f0-9]+: c5 fe 7f e6 vmovdqu.s %ymm4,%ymm6
+[ ]*[a-f0-9]+: c5 fd 10 f4 vmovupd %ymm4,%ymm6
+[ ]*[a-f0-9]+: c5 fd 11 e6 vmovupd.s %ymm4,%ymm6
+[ ]*[a-f0-9]+: c5 fc 10 f4 vmovups %ymm4,%ymm6
+[ ]*[a-f0-9]+: c5 fc 11 e6 vmovups.s %ymm4,%ymm6
+[ ]*[a-f0-9]+: 66 0f 28 f4 movapd %xmm4,%xmm6
+[ ]*[a-f0-9]+: 66 0f 29 e6 movapd.s %xmm4,%xmm6
+[ ]*[a-f0-9]+: 0f 28 f4 movaps %xmm4,%xmm6
+[ ]*[a-f0-9]+: 0f 29 e6 movaps.s %xmm4,%xmm6
+[ ]*[a-f0-9]+: 66 0f 6f f4 movdqa %xmm4,%xmm6
+[ ]*[a-f0-9]+: 66 0f 7f e6 movdqa.s %xmm4,%xmm6
+[ ]*[a-f0-9]+: f3 0f 6f f4 movdqu %xmm4,%xmm6
+[ ]*[a-f0-9]+: f3 0f 7f e6 movdqu.s %xmm4,%xmm6
+[ ]*[a-f0-9]+: f3 0f 7e f4 movq %xmm4,%xmm6
+[ ]*[a-f0-9]+: 66 0f d6 e6 movq.s %xmm4,%xmm6
+[ ]*[a-f0-9]+: 66 0f 10 f4 movupd %xmm4,%xmm6
+[ ]*[a-f0-9]+: 66 0f 11 e6 movupd.s %xmm4,%xmm6
+[ ]*[a-f0-9]+: 0f 10 f4 movups %xmm4,%xmm6
+[ ]*[a-f0-9]+: 0f 11 e6 movups.s %xmm4,%xmm6
+[ ]*[a-f0-9]+: c5 f9 28 f4 vmovapd %xmm4,%xmm6
+[ ]*[a-f0-9]+: c5 f9 29 e6 vmovapd.s %xmm4,%xmm6
+[ ]*[a-f0-9]+: c5 f8 28 f4 vmovaps %xmm4,%xmm6
+[ ]*[a-f0-9]+: c5 f8 29 e6 vmovaps.s %xmm4,%xmm6
+[ ]*[a-f0-9]+: c5 f9 6f f4 vmovdqa %xmm4,%xmm6
+[ ]*[a-f0-9]+: c5 f9 7f e6 vmovdqa.s %xmm4,%xmm6
+[ ]*[a-f0-9]+: c5 fa 6f f4 vmovdqu %xmm4,%xmm6
+[ ]*[a-f0-9]+: c5 fa 7f e6 vmovdqu.s %xmm4,%xmm6
+[ ]*[a-f0-9]+: c5 fa 7e f4 vmovq %xmm4,%xmm6
+[ ]*[a-f0-9]+: c5 f9 d6 e6 vmovq.s %xmm4,%xmm6
+[ ]*[a-f0-9]+: c5 f9 10 f4 vmovupd %xmm4,%xmm6
+[ ]*[a-f0-9]+: c5 f9 11 e6 vmovupd.s %xmm4,%xmm6
+[ ]*[a-f0-9]+: c5 f8 10 f4 vmovups %xmm4,%xmm6
+[ ]*[a-f0-9]+: c5 f8 11 e6 vmovups.s %xmm4,%xmm6
+[ ]*[a-f0-9]+: 0f 6f e0 movq %mm0,%mm4
+[ ]*[a-f0-9]+: 0f 7f c4 movq.s %mm0,%mm4
+#pass
diff --git a/gas/testsuite/gas/i386/x86-64-opts.s b/gas/testsuite/gas/i386/x86-64-opts.s
new file mode 100644
index 0000000..fc3aa67
--- /dev/null
+++ b/gas/testsuite/gas/i386/x86-64-opts.s
@@ -0,0 +1,131 @@
+# Check 64bit instructions with encoding options
+
+ .allow_index_reg
+ .text
+_start:
+
+# Tests for op reg, reg
+ mov %dl,%cl
+ mov.s %dl,%cl
+ mov %dx,%cx
+ mov.s %dx,%cx
+ mov %edx,%ecx
+ mov.s %edx,%ecx
+ movb %dl,%cl
+ movb.s %dl,%cl
+ movw %dx,%cx
+ movw.s %dx,%cx
+ movl %edx,%ecx
+ movl.s %edx,%ecx
+ mov %rdx,%rcx
+ mov.s %rdx,%rcx
+ movq %rdx,%rcx
+ movq.s %rdx,%rcx
+
+# Tests for op ymm, ymm
+ vmovapd %ymm4,%ymm6
+ vmovapd.s %ymm4,%ymm6
+ vmovaps %ymm4,%ymm6
+ vmovaps.s %ymm4,%ymm6
+ vmovdqa %ymm4,%ymm6
+ vmovdqa.s %ymm4,%ymm6
+ vmovdqu %ymm4,%ymm6
+ vmovdqu.s %ymm4,%ymm6
+ vmovupd %ymm4,%ymm6
+ vmovupd.s %ymm4,%ymm6
+ vmovups %ymm4,%ymm6
+ vmovups.s %ymm4,%ymm6
+
+# Tests for op xmm, xmm
+ movapd %xmm4,%xmm6
+ movapd.s %xmm4,%xmm6
+ movaps %xmm4,%xmm6
+ movaps.s %xmm4,%xmm6
+ movdqa %xmm4,%xmm6
+ movdqa.s %xmm4,%xmm6
+ movdqu %xmm4,%xmm6
+ movdqu.s %xmm4,%xmm6
+ movq %xmm4,%xmm6
+ movq.s %xmm4,%xmm6
+ movupd %xmm4,%xmm6
+ movupd.s %xmm4,%xmm6
+ movups %xmm4,%xmm6
+ movups.s %xmm4,%xmm6
+ vmovapd %xmm4,%xmm6
+ vmovapd.s %xmm4,%xmm6
+ vmovaps %xmm4,%xmm6
+ vmovaps.s %xmm4,%xmm6
+ vmovdqa %xmm4,%xmm6
+ vmovdqa.s %xmm4,%xmm6
+ vmovdqu %xmm4,%xmm6
+ vmovdqu.s %xmm4,%xmm6
+ vmovq %xmm4,%xmm6
+ vmovq.s %xmm4,%xmm6
+ vmovupd %xmm4,%xmm6
+ vmovupd.s %xmm4,%xmm6
+ vmovups %xmm4,%xmm6
+ vmovups.s %xmm4,%xmm6
+
+# Tests for op mm, mm
+ movq %mm0,%mm4
+ movq.s %mm0,%mm4
+
+ .intel_syntax noprefix
+
+# Tests for op reg, reg
+ mov cl,dl
+ mov.s cl,dl
+ mov cx,dx
+ mov.s cx,dx
+ mov ecx,edx
+ mov.s ecx,edx
+ mov rcx,rdx
+ mov.s rcx,rdx
+
+# Tests for op ymm, ymm
+ vmovapd ymm6,ymm4
+ vmovapd.s ymm6,ymm4
+ vmovaps ymm6,ymm4
+ vmovaps.s ymm6,ymm4
+ vmovdqa ymm6,ymm4
+ vmovdqa.s ymm6,ymm4
+ vmovdqu ymm6,ymm4
+ vmovdqu.s ymm6,ymm4
+ vmovupd ymm6,ymm4
+ vmovupd.s ymm6,ymm4
+ vmovups ymm6,ymm4
+ vmovups.s ymm6,ymm4
+
+# Tests for op xmm, xmm
+ movapd xmm6,xmm4
+ movapd.s xmm6,xmm4
+ movaps xmm6,xmm4
+ movaps.s xmm6,xmm4
+ movdqa xmm6,xmm4
+ movdqa.s xmm6,xmm4
+ movdqu xmm6,xmm4
+ movdqu.s xmm6,xmm4
+ movq xmm6,xmm4
+ movq.s xmm6,xmm4
+ movupd xmm6,xmm4
+ movupd.s xmm6,xmm4
+ movups xmm6,xmm4
+ movups.s xmm6,xmm4
+ vmovapd xmm6,xmm4
+ vmovapd.s xmm6,xmm4
+ vmovaps xmm6,xmm4
+ vmovaps.s xmm6,xmm4
+ vmovdqa xmm6,xmm4
+ vmovdqa.s xmm6,xmm4
+ vmovdqu xmm6,xmm4
+ vmovdqu.s xmm6,xmm4
+ vmovq xmm6,xmm4
+ vmovq.s xmm6,xmm4
+ vmovupd xmm6,xmm4
+ vmovupd.s xmm6,xmm4
+ vmovups xmm6,xmm4
+ vmovups.s xmm6,xmm4
+
+# Tests for op mm, mm
+ movq mm4,mm0
+ movq.s mm4,mm0
diff --git a/gas/testsuite/gas/i386/x86-64-sse2avx-opts-intel.d b/gas/testsuite/gas/i386/x86-64-sse2avx-opts-intel.d
new file mode 100644
index 0000000..b1b7f3d
--- /dev/null
+++ b/gas/testsuite/gas/i386/x86-64-sse2avx-opts-intel.d
@@ -0,0 +1,120 @@
+#as: -msse2avx
+#objdump: -drwMintel,suffix
+#name: x86-64 encoding option with -msse2avx (Intel mode)
+#source: x86-64-opts.s
+
+.*: +file format .*
+
+
+Disassembly of section .text:
+
+0+ <_start>:
+[ ]*[a-f0-9]+: 88 d1 mov cl,dl
+[ ]*[a-f0-9]+: 8a ca mov.s cl,dl
+[ ]*[a-f0-9]+: 66 89 d1 mov cx,dx
+[ ]*[a-f0-9]+: 66 8b ca mov.s cx,dx
+[ ]*[a-f0-9]+: 89 d1 mov ecx,edx
+[ ]*[a-f0-9]+: 8b ca mov.s ecx,edx
+[ ]*[a-f0-9]+: 88 d1 mov cl,dl
+[ ]*[a-f0-9]+: 8a ca mov.s cl,dl
+[ ]*[a-f0-9]+: 66 89 d1 mov cx,dx
+[ ]*[a-f0-9]+: 66 8b ca mov.s cx,dx
+[ ]*[a-f0-9]+: 89 d1 mov ecx,edx
+[ ]*[a-f0-9]+: 8b ca mov.s ecx,edx
+[ ]*[a-f0-9]+: 48 89 d1 mov rcx,rdx
+[ ]*[a-f0-9]+: 48 8b ca mov.s rcx,rdx
+[ ]*[a-f0-9]+: 48 89 d1 mov rcx,rdx
+[ ]*[a-f0-9]+: 48 8b ca mov.s rcx,rdx
+[ ]*[a-f0-9]+: c5 fd 28 f4 vmovapd ymm6,ymm4
+[ ]*[a-f0-9]+: c5 fd 29 e6 vmovapd.s ymm6,ymm4
+[ ]*[a-f0-9]+: c5 fc 28 f4 vmovaps ymm6,ymm4
+[ ]*[a-f0-9]+: c5 fc 29 e6 vmovaps.s ymm6,ymm4
+[ ]*[a-f0-9]+: c5 fd 6f f4 vmovdqa ymm6,ymm4
+[ ]*[a-f0-9]+: c5 fd 7f e6 vmovdqa.s ymm6,ymm4
+[ ]*[a-f0-9]+: c5 fe 6f f4 vmovdqu ymm6,ymm4
+[ ]*[a-f0-9]+: c5 fe 7f e6 vmovdqu.s ymm6,ymm4
+[ ]*[a-f0-9]+: c5 fd 10 f4 vmovupd ymm6,ymm4
+[ ]*[a-f0-9]+: c5 fd 11 e6 vmovupd.s ymm6,ymm4
+[ ]*[a-f0-9]+: c5 fc 10 f4 vmovups ymm6,ymm4
+[ ]*[a-f0-9]+: c5 fc 11 e6 vmovups.s ymm6,ymm4
+[ ]*[a-f0-9]+: c5 f9 28 f4 vmovapd xmm6,xmm4
+[ ]*[a-f0-9]+: c5 f9 29 e6 vmovapd.s xmm6,xmm4
+[ ]*[a-f0-9]+: c5 f8 28 f4 vmovaps xmm6,xmm4
+[ ]*[a-f0-9]+: c5 f8 29 e6 vmovaps.s xmm6,xmm4
+[ ]*[a-f0-9]+: c5 f9 6f f4 vmovdqa xmm6,xmm4
+[ ]*[a-f0-9]+: c5 f9 7f e6 vmovdqa.s xmm6,xmm4
+[ ]*[a-f0-9]+: c5 fa 6f f4 vmovdqu xmm6,xmm4
+[ ]*[a-f0-9]+: c5 fa 7f e6 vmovdqu.s xmm6,xmm4
+[ ]*[a-f0-9]+: c5 fa 7e f4 vmovq xmm6,xmm4
+[ ]*[a-f0-9]+: c5 f9 d6 e6 vmovq.s xmm6,xmm4
+[ ]*[a-f0-9]+: c5 f9 10 f4 vmovupd xmm6,xmm4
+[ ]*[a-f0-9]+: c5 f9 11 e6 vmovupd.s xmm6,xmm4
+[ ]*[a-f0-9]+: c5 f8 10 f4 vmovups xmm6,xmm4
+[ ]*[a-f0-9]+: c5 f8 11 e6 vmovups.s xmm6,xmm4
+[ ]*[a-f0-9]+: c5 f9 28 f4 vmovapd xmm6,xmm4
+[ ]*[a-f0-9]+: c5 f9 29 e6 vmovapd.s xmm6,xmm4
+[ ]*[a-f0-9]+: c5 f8 28 f4 vmovaps xmm6,xmm4
+[ ]*[a-f0-9]+: c5 f8 29 e6 vmovaps.s xmm6,xmm4
+[ ]*[a-f0-9]+: c5 f9 6f f4 vmovdqa xmm6,xmm4
+[ ]*[a-f0-9]+: c5 f9 7f e6 vmovdqa.s xmm6,xmm4
+[ ]*[a-f0-9]+: c5 fa 6f f4 vmovdqu xmm6,xmm4
+[ ]*[a-f0-9]+: c5 fa 7f e6 vmovdqu.s xmm6,xmm4
+[ ]*[a-f0-9]+: c5 fa 7e f4 vmovq xmm6,xmm4
+[ ]*[a-f0-9]+: c5 f9 d6 e6 vmovq.s xmm6,xmm4
+[ ]*[a-f0-9]+: c5 f9 10 f4 vmovupd xmm6,xmm4
+[ ]*[a-f0-9]+: c5 f9 11 e6 vmovupd.s xmm6,xmm4
+[ ]*[a-f0-9]+: c5 f8 10 f4 vmovups xmm6,xmm4
+[ ]*[a-f0-9]+: c5 f8 11 e6 vmovups.s xmm6,xmm4
+[ ]*[a-f0-9]+: 0f 6f e0 movq mm4,mm0
+[ ]*[a-f0-9]+: 0f 7f c4 movq.s mm4,mm0
+[ ]*[a-f0-9]+: 88 d1 mov cl,dl
+[ ]*[a-f0-9]+: 8a ca mov.s cl,dl
+[ ]*[a-f0-9]+: 66 89 d1 mov cx,dx
+[ ]*[a-f0-9]+: 66 8b ca mov.s cx,dx
+[ ]*[a-f0-9]+: 89 d1 mov ecx,edx
+[ ]*[a-f0-9]+: 8b ca mov.s ecx,edx
+[ ]*[a-f0-9]+: 48 89 d1 mov rcx,rdx
+[ ]*[a-f0-9]+: 48 8b ca mov.s rcx,rdx
+[ ]*[a-f0-9]+: c5 fd 28 f4 vmovapd ymm6,ymm4
+[ ]*[a-f0-9]+: c5 fd 29 e6 vmovapd.s ymm6,ymm4
+[ ]*[a-f0-9]+: c5 fc 28 f4 vmovaps ymm6,ymm4
+[ ]*[a-f0-9]+: c5 fc 29 e6 vmovaps.s ymm6,ymm4
+[ ]*[a-f0-9]+: c5 fd 6f f4 vmovdqa ymm6,ymm4
+[ ]*[a-f0-9]+: c5 fd 7f e6 vmovdqa.s ymm6,ymm4
+[ ]*[a-f0-9]+: c5 fe 6f f4 vmovdqu ymm6,ymm4
+[ ]*[a-f0-9]+: c5 fe 7f e6 vmovdqu.s ymm6,ymm4
+[ ]*[a-f0-9]+: c5 fd 10 f4 vmovupd ymm6,ymm4
+[ ]*[a-f0-9]+: c5 fd 11 e6 vmovupd.s ymm6,ymm4
+[ ]*[a-f0-9]+: c5 fc 10 f4 vmovups ymm6,ymm4
+[ ]*[a-f0-9]+: c5 fc 11 e6 vmovups.s ymm6,ymm4
+[ ]*[a-f0-9]+: c5 f9 28 f4 vmovapd xmm6,xmm4
+[ ]*[a-f0-9]+: c5 f9 29 e6 vmovapd.s xmm6,xmm4
+[ ]*[a-f0-9]+: c5 f8 28 f4 vmovaps xmm6,xmm4
+[ ]*[a-f0-9]+: c5 f8 29 e6 vmovaps.s xmm6,xmm4
+[ ]*[a-f0-9]+: c5 f9 6f f4 vmovdqa xmm6,xmm4
+[ ]*[a-f0-9]+: c5 f9 7f e6 vmovdqa.s xmm6,xmm4
+[ ]*[a-f0-9]+: c5 fa 6f f4 vmovdqu xmm6,xmm4
+[ ]*[a-f0-9]+: c5 fa 7f e6 vmovdqu.s xmm6,xmm4
+[ ]*[a-f0-9]+: c5 fa 7e f4 vmovq xmm6,xmm4
+[ ]*[a-f0-9]+: c5 f9 d6 e6 vmovq.s xmm6,xmm4
+[ ]*[a-f0-9]+: c5 f9 10 f4 vmovupd xmm6,xmm4
+[ ]*[a-f0-9]+: c5 f9 11 e6 vmovupd.s xmm6,xmm4
+[ ]*[a-f0-9]+: c5 f8 10 f4 vmovups xmm6,xmm4
+[ ]*[a-f0-9]+: c5 f8 11 e6 vmovups.s xmm6,xmm4
+[ ]*[a-f0-9]+: c5 f9 28 f4 vmovapd xmm6,xmm4
+[ ]*[a-f0-9]+: c5 f9 29 e6 vmovapd.s xmm6,xmm4
+[ ]*[a-f0-9]+: c5 f8 28 f4 vmovaps xmm6,xmm4
+[ ]*[a-f0-9]+: c5 f8 29 e6 vmovaps.s xmm6,xmm4
+[ ]*[a-f0-9]+: c5 f9 6f f4 vmovdqa xmm6,xmm4
+[ ]*[a-f0-9]+: c5 f9 7f e6 vmovdqa.s xmm6,xmm4
+[ ]*[a-f0-9]+: c5 fa 6f f4 vmovdqu xmm6,xmm4
+[ ]*[a-f0-9]+: c5 fa 7f e6 vmovdqu.s xmm6,xmm4
+[ ]*[a-f0-9]+: c5 fa 7e f4 vmovq xmm6,xmm4
+[ ]*[a-f0-9]+: c5 f9 d6 e6 vmovq.s xmm6,xmm4
+[ ]*[a-f0-9]+: c5 f9 10 f4 vmovupd xmm6,xmm4
+[ ]*[a-f0-9]+: c5 f9 11 e6 vmovupd.s xmm6,xmm4
+[ ]*[a-f0-9]+: c5 f8 10 f4 vmovups xmm6,xmm4
+[ ]*[a-f0-9]+: c5 f8 11 e6 vmovups.s xmm6,xmm4
+[ ]*[a-f0-9]+: 0f 6f e0 movq mm4,mm0
+[ ]*[a-f0-9]+: 0f 7f c4 movq.s mm4,mm0
+#pass
diff --git a/gas/testsuite/gas/i386/x86-64-sse2avx-opts.d b/gas/testsuite/gas/i386/x86-64-sse2avx-opts.d
new file mode 100644
index 0000000..e600917
--- /dev/null
+++ b/gas/testsuite/gas/i386/x86-64-sse2avx-opts.d
@@ -0,0 +1,120 @@
+#as: -msse2avx
+#objdump: -drwMsuffix
+#name: x86-64 encoding option with -msse2avx
+#source: x86-64-opts.s
+
+.*: +file format .*
+
+
+Disassembly of section .text:
+
+0+ <_start>:
+[ ]*[a-f0-9]+: 88 d1 movb %dl,%cl
+[ ]*[a-f0-9]+: 8a ca movb.s %dl,%cl
+[ ]*[a-f0-9]+: 66 89 d1 movw %dx,%cx
+[ ]*[a-f0-9]+: 66 8b ca movw.s %dx,%cx
+[ ]*[a-f0-9]+: 89 d1 movl %edx,%ecx
+[ ]*[a-f0-9]+: 8b ca movl.s %edx,%ecx
+[ ]*[a-f0-9]+: 88 d1 movb %dl,%cl
+[ ]*[a-f0-9]+: 8a ca movb.s %dl,%cl
+[ ]*[a-f0-9]+: 66 89 d1 movw %dx,%cx
+[ ]*[a-f0-9]+: 66 8b ca movw.s %dx,%cx
+[ ]*[a-f0-9]+: 89 d1 movl %edx,%ecx
+[ ]*[a-f0-9]+: 8b ca movl.s %edx,%ecx
+[ ]*[a-f0-9]+: 48 89 d1 movq %rdx,%rcx
+[ ]*[a-f0-9]+: 48 8b ca movq.s %rdx,%rcx
+[ ]*[a-f0-9]+: 48 89 d1 movq %rdx,%rcx
+[ ]*[a-f0-9]+: 48 8b ca movq.s %rdx,%rcx
+[ ]*[a-f0-9]+: c5 fd 28 f4 vmovapd %ymm4,%ymm6
+[ ]*[a-f0-9]+: c5 fd 29 e6 vmovapd.s %ymm4,%ymm6
+[ ]*[a-f0-9]+: c5 fc 28 f4 vmovaps %ymm4,%ymm6
+[ ]*[a-f0-9]+: c5 fc 29 e6 vmovaps.s %ymm4,%ymm6
+[ ]*[a-f0-9]+: c5 fd 6f f4 vmovdqa %ymm4,%ymm6
+[ ]*[a-f0-9]+: c5 fd 7f e6 vmovdqa.s %ymm4,%ymm6
+[ ]*[a-f0-9]+: c5 fe 6f f4 vmovdqu %ymm4,%ymm6
+[ ]*[a-f0-9]+: c5 fe 7f e6 vmovdqu.s %ymm4,%ymm6
+[ ]*[a-f0-9]+: c5 fd 10 f4 vmovupd %ymm4,%ymm6
+[ ]*[a-f0-9]+: c5 fd 11 e6 vmovupd.s %ymm4,%ymm6
+[ ]*[a-f0-9]+: c5 fc 10 f4 vmovups %ymm4,%ymm6
+[ ]*[a-f0-9]+: c5 fc 11 e6 vmovups.s %ymm4,%ymm6
+[ ]*[a-f0-9]+: c5 f9 28 f4 vmovapd %xmm4,%xmm6
+[ ]*[a-f0-9]+: c5 f9 29 e6 vmovapd.s %xmm4,%xmm6
+[ ]*[a-f0-9]+: c5 f8 28 f4 vmovaps %xmm4,%xmm6
+[ ]*[a-f0-9]+: c5 f8 29 e6 vmovaps.s %xmm4,%xmm6
+[ ]*[a-f0-9]+: c5 f9 6f f4 vmovdqa %xmm4,%xmm6
+[ ]*[a-f0-9]+: c5 f9 7f e6 vmovdqa.s %xmm4,%xmm6
+[ ]*[a-f0-9]+: c5 fa 6f f4 vmovdqu %xmm4,%xmm6
+[ ]*[a-f0-9]+: c5 fa 7f e6 vmovdqu.s %xmm4,%xmm6
+[ ]*[a-f0-9]+: c5 fa 7e f4 vmovq %xmm4,%xmm6
+[ ]*[a-f0-9]+: c5 f9 d6 e6 vmovq.s %xmm4,%xmm6
+[ ]*[a-f0-9]+: c5 f9 10 f4 vmovupd %xmm4,%xmm6
+[ ]*[a-f0-9]+: c5 f9 11 e6 vmovupd.s %xmm4,%xmm6
+[ ]*[a-f0-9]+: c5 f8 10 f4 vmovups %xmm4,%xmm6
+[ ]*[a-f0-9]+: c5 f8 11 e6 vmovups.s %xmm4,%xmm6
+[ ]*[a-f0-9]+: c5 f9 28 f4 vmovapd %xmm4,%xmm6
+[ ]*[a-f0-9]+: c5 f9 29 e6 vmovapd.s %xmm4,%xmm6
+[ ]*[a-f0-9]+: c5 f8 28 f4 vmovaps %xmm4,%xmm6
+[ ]*[a-f0-9]+: c5 f8 29 e6 vmovaps.s %xmm4,%xmm6
+[ ]*[a-f0-9]+: c5 f9 6f f4 vmovdqa %xmm4,%xmm6
+[ ]*[a-f0-9]+: c5 f9 7f e6 vmovdqa.s %xmm4,%xmm6
+[ ]*[a-f0-9]+: c5 fa 6f f4 vmovdqu %xmm4,%xmm6
+[ ]*[a-f0-9]+: c5 fa 7f e6 vmovdqu.s %xmm4,%xmm6
+[ ]*[a-f0-9]+: c5 fa 7e f4 vmovq %xmm4,%xmm6
+[ ]*[a-f0-9]+: c5 f9 d6 e6 vmovq.s %xmm4,%xmm6
+[ ]*[a-f0-9]+: c5 f9 10 f4 vmovupd %xmm4,%xmm6
+[ ]*[a-f0-9]+: c5 f9 11 e6 vmovupd.s %xmm4,%xmm6
+[ ]*[a-f0-9]+: c5 f8 10 f4 vmovups %xmm4,%xmm6
+[ ]*[a-f0-9]+: c5 f8 11 e6 vmovups.s %xmm4,%xmm6
+[ ]*[a-f0-9]+: 0f 6f e0 movq %mm0,%mm4
+[ ]*[a-f0-9]+: 0f 7f c4 movq.s %mm0,%mm4
+[ ]*[a-f0-9]+: 88 d1 movb %dl,%cl
+[ ]*[a-f0-9]+: 8a ca movb.s %dl,%cl
+[ ]*[a-f0-9]+: 66 89 d1 movw %dx,%cx
+[ ]*[a-f0-9]+: 66 8b ca movw.s %dx,%cx
+[ ]*[a-f0-9]+: 89 d1 movl %edx,%ecx
+[ ]*[a-f0-9]+: 8b ca movl.s %edx,%ecx
+[ ]*[a-f0-9]+: 48 89 d1 movq %rdx,%rcx
+[ ]*[a-f0-9]+: 48 8b ca movq.s %rdx,%rcx
+[ ]*[a-f0-9]+: c5 fd 28 f4 vmovapd %ymm4,%ymm6
+[ ]*[a-f0-9]+: c5 fd 29 e6 vmovapd.s %ymm4,%ymm6
+[ ]*[a-f0-9]+: c5 fc 28 f4 vmovaps %ymm4,%ymm6
+[ ]*[a-f0-9]+: c5 fc 29 e6 vmovaps.s %ymm4,%ymm6
+[ ]*[a-f0-9]+: c5 fd 6f f4 vmovdqa %ymm4,%ymm6
+[ ]*[a-f0-9]+: c5 fd 7f e6 vmovdqa.s %ymm4,%ymm6
+[ ]*[a-f0-9]+: c5 fe 6f f4 vmovdqu %ymm4,%ymm6
+[ ]*[a-f0-9]+: c5 fe 7f e6 vmovdqu.s %ymm4,%ymm6
+[ ]*[a-f0-9]+: c5 fd 10 f4 vmovupd %ymm4,%ymm6
+[ ]*[a-f0-9]+: c5 fd 11 e6 vmovupd.s %ymm4,%ymm6
+[ ]*[a-f0-9]+: c5 fc 10 f4 vmovups %ymm4,%ymm6
+[ ]*[a-f0-9]+: c5 fc 11 e6 vmovups.s %ymm4,%ymm6
+[ ]*[a-f0-9]+: c5 f9 28 f4 vmovapd %xmm4,%xmm6
+[ ]*[a-f0-9]+: c5 f9 29 e6 vmovapd.s %xmm4,%xmm6
+[ ]*[a-f0-9]+: c5 f8 28 f4 vmovaps %xmm4,%xmm6
+[ ]*[a-f0-9]+: c5 f8 29 e6 vmovaps.s %xmm4,%xmm6
+[ ]*[a-f0-9]+: c5 f9 6f f4 vmovdqa %xmm4,%xmm6
+[ ]*[a-f0-9]+: c5 f9 7f e6 vmovdqa.s %xmm4,%xmm6
+[ ]*[a-f0-9]+: c5 fa 6f f4 vmovdqu %xmm4,%xmm6
+[ ]*[a-f0-9]+: c5 fa 7f e6 vmovdqu.s %xmm4,%xmm6
+[ ]*[a-f0-9]+: c5 fa 7e f4 vmovq %xmm4,%xmm6
+[ ]*[a-f0-9]+: c5 f9 d6 e6 vmovq.s %xmm4,%xmm6
+[ ]*[a-f0-9]+: c5 f9 10 f4 vmovupd %xmm4,%xmm6
+[ ]*[a-f0-9]+: c5 f9 11 e6 vmovupd.s %xmm4,%xmm6
+[ ]*[a-f0-9]+: c5 f8 10 f4 vmovups %xmm4,%xmm6
+[ ]*[a-f0-9]+: c5 f8 11 e6 vmovups.s %xmm4,%xmm6
+[ ]*[a-f0-9]+: c5 f9 28 f4 vmovapd %xmm4,%xmm6
+[ ]*[a-f0-9]+: c5 f9 29 e6 vmovapd.s %xmm4,%xmm6
+[ ]*[a-f0-9]+: c5 f8 28 f4 vmovaps %xmm4,%xmm6
+[ ]*[a-f0-9]+: c5 f8 29 e6 vmovaps.s %xmm4,%xmm6
+[ ]*[a-f0-9]+: c5 f9 6f f4 vmovdqa %xmm4,%xmm6
+[ ]*[a-f0-9]+: c5 f9 7f e6 vmovdqa.s %xmm4,%xmm6
+[ ]*[a-f0-9]+: c5 fa 6f f4 vmovdqu %xmm4,%xmm6
+[ ]*[a-f0-9]+: c5 fa 7f e6 vmovdqu.s %xmm4,%xmm6
+[ ]*[a-f0-9]+: c5 fa 7e f4 vmovq %xmm4,%xmm6
+[ ]*[a-f0-9]+: c5 f9 d6 e6 vmovq.s %xmm4,%xmm6
+[ ]*[a-f0-9]+: c5 f9 10 f4 vmovupd %xmm4,%xmm6
+[ ]*[a-f0-9]+: c5 f9 11 e6 vmovupd.s %xmm4,%xmm6
+[ ]*[a-f0-9]+: c5 f8 10 f4 vmovups %xmm4,%xmm6
+[ ]*[a-f0-9]+: c5 f8 11 e6 vmovups.s %xmm4,%xmm6
+[ ]*[a-f0-9]+: 0f 6f e0 movq %mm0,%mm4
+[ ]*[a-f0-9]+: 0f 7f c4 movq.s %mm0,%mm4
+#pass