diff --git a/gas/testsuite/gas/ppc/ppc.exp b/gas/testsuite/gas/ppc/ppc.exp
index 9a18ce2e2ff..1bfd375ccd6 100644
--- a/gas/testsuite/gas/ppc/ppc.exp
+++ b/gas/testsuite/gas/ppc/ppc.exp
@@ -94,10 +94,7 @@ run_dump_test "efs2"
 run_dump_test "spe2"
 run_dump_test "spe2-checks"
 run_dump_test "spe"
-
-setup_xfail "*-*-*"
 run_dump_test "spe_ambiguous"
-
 run_dump_test "altivec"
 run_dump_test "altivec2"
 run_dump_test "altivec3"
diff --git a/gas/testsuite/gas/ppc/spe.d b/gas/testsuite/gas/ppc/spe.d
index 958bdf1e57b..7429879329b 100644
--- a/gas/testsuite/gas/ppc/spe.d
+++ b/gas/testsuite/gas/ppc/spe.d
@@ -10,10 +10,10 @@ Disassembly of section .text:
 00000000 <.text>:
 .*:	10 01 12 00 	evaddw  r0,r1,r2
 .*:	10 1f 12 02 	evaddiw r0,r2,31
-.*:	10 01 12 04 	evsubfw r0,r1,r2
-.*:	10 01 12 04 	evsubfw r0,r1,r2
-.*:	10 1f 12 06 	evsubifw r0,31,r2
-.*:	10 1f 12 06 	evsubifw r0,31,r2
+.*:	10 01 12 04 	evsubw  r0,r2,r1
+.*:	10 01 12 04 	evsubw  r0,r2,r1
+.*:	10 1f 12 06 	evsubiw r0,r2,31
+.*:	10 1f 12 06 	evsubiw r0,r2,31
 .*:	10 01 02 08 	evabs   r0,r1
 .*:	10 01 02 09 	evneg   r0,r1
 .*:	10 01 02 0a 	evextsb r0,r1
diff --git a/gas/testsuite/gas/ppc/spe_ambiguous.d b/gas/testsuite/gas/ppc/spe_ambiguous.d
index 2e0b1d3594f..3cbbb1a1610 100644
--- a/gas/testsuite/gas/ppc/spe_ambiguous.d
+++ b/gas/testsuite/gas/ppc/spe_ambiguous.d
@@ -1,6 +1,6 @@
 #as: -a32 -mbig -mvle
-#objdump: -d -Mspe
-#name: Validate SPE instructions
+#objdump: -d -Mspe -Mraw
+#name: Validate SPE raw instructions
 
 .*: +file format elf.*-powerpc.*
 
@@ -8,8 +8,8 @@ Disassembly of section .text:
 
 00000000 <.text>:
    0:	10 01 12 04 	evsubfw r0,r1,r2
-   4:	10 01 12 04 	evsubw r0,r2,r1
+   4:	10 01 12 04 	evsubfw r0,r1,r2
    8:	10 1f 12 06 	evsubifw r0,31,r2
-   c:	10 1f 12 06 	evsubiw r0,r2,31
-  10:	10 01 12 18 	evnor   r0,r1,r2
-  14:	10 01 0a 18 	evnot   r0,r1
+   c:	10 1f 12 06 	evsubifw r0,31,r2
+  10:	10 01 0a 18 	evnor   r0,r1,r1
+  14:	10 01 0a 18 	evnor   r0,r1,r1
diff --git a/gas/testsuite/gas/ppc/spe_ambiguous.s b/gas/testsuite/gas/ppc/spe_ambiguous.s
index b60e02bfb7f..97de2eb3a96 100644
--- a/gas/testsuite/gas/ppc/spe_ambiguous.s
+++ b/gas/testsuite/gas/ppc/spe_ambiguous.s
@@ -17,5 +17,5 @@
 	evsubw          rS, rB, rA
 	evsubifw        rS, UIMM, rB
 	evsubiw         rS, rB, UIMM
-	evnor           rS, rA, rB
+	evnor           rS, rA, rA
 	evnot           rS, rA
diff --git a/opcodes/ppc-opc.c b/opcodes/ppc-opc.c
index 1d274c39147..e1b67647da6 100644
--- a/opcodes/ppc-opc.c
+++ b/opcodes/ppc-opc.c
@@ -5201,12 +5201,12 @@ const struct powerpc_opcode powerpc_opcodes[] = {
 {"vmul10uq",	VX (4, 513),	VXVB_MASK,   PPCVEC3,	0,		{VD, VA}},
 {"evaddiw",	VX (4, 514),	VX_MASK,     PPCSPE,	0,		{RS, RB, UIMM}},
 {"vminub",	VX (4, 514),	VX_MASK,     PPCVEC,	0,		{VD, VA, VB}},
+{"evsubw",	VX (4, 516),	VX_MASK,     PPCSPE,	EXT,		{RS, RB, RA}},
 {"evsubfw",	VX (4, 516),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
-{"evsubw",	VX (4, 516),	VX_MASK,     PPCSPE,	0,		{RS, RB, RA}},
 {"vsrb",	VX (4, 516),	VX_MASK,     PPCVEC,	0,		{VD, VA, VB}},
 {"vsrq",	VX (4, 517),	VX_MASK,     POWER10,	0,		{VD, VA, VB}},
+{"evsubiw",	VX (4, 518),	VX_MASK,     PPCSPE,	EXT,		{RS, RB, UIMM}},
 {"evsubifw",	VX (4, 518),	VX_MASK,     PPCSPE,	0,		{RS, UIMM, RB}},
-{"evsubiw",	VX (4, 518),	VX_MASK,     PPCSPE,	0,		{RS, RB, UIMM}},
 {"vcmpgtub",	VXR(4, 518,0),	VXR_MASK,    PPCVEC,	0,		{VD, VA, VB}},
 {"evabs",	VX (4, 520),	VX_MASK,     PPCSPE,	0,		{RS, RA}},
 {"vmuleub",	VX (4, 520),	VX_MASK,     PPCVEC,	0,		{VD, VA, VB}},