if (i.tm.operand_types[0].bitfield.instance == Accum
          && i.tm.operand_types[0].bitfield.xmmword)
        {
-         if (i.tm.opcode_modifier.vexsources == VEX3SOURCES)
-           {
-             /* Keep xmm0 for instructions with VEX prefix and 3
-                sources.  */
-             i.tm.operand_types[0].bitfield.instance = InstanceNone;
-             i.tm.operand_types[0].bitfield.class = RegSIMD;
-             goto duplicate;
-           }
-         else
-           {
-             /* We remove the first xmm0 and keep the number of
-                operands unchanged, which in fact duplicates the
-                destination.  */
-             for (j = 1; j < i.operands; j++)
-               {
-                 i.op[j - 1] = i.op[j];
-                 i.types[j - 1] = i.types[j];
-                 i.tm.operand_types[j - 1] = i.tm.operand_types[j];
-                 i.flags[j - 1] = i.flags[j];
-               }
-           }
+         gas_assert (i.tm.opcode_modifier.vexsources == VEX3SOURCES);
+         /* Keep xmm0 for instructions with VEX prefix and 3
+            sources.  */
+         i.tm.operand_types[0].bitfield.instance = InstanceNone;
+         i.tm.operand_types[0].bitfield.class = RegSIMD;
+         goto duplicate;
        }
-      else if (i.tm.opcode_modifier.operandconstraint == IMPLICIT_1ST_XMM0)
+
+      if (i.tm.opcode_modifier.operandconstraint == IMPLICIT_1ST_XMM0)
        {
          gas_assert ((MAX_OPERANDS - 1) > dupl
                      && (i.tm.opcode_modifier.vexsources