case INDEX_op_andc_vec:
/*
* vandn vd, vj, vk: vd = vk & ~vj
* andc_vec vd, vj, vk: vd = vj & ~vk
- * vk and vk are swapped
+ * vj and vk are swapped
*/
- tcg_out_opc_vandn_v(s, a0, a2, a1);
- break;
+ a1 = a2;
+ a2 = args[2];
+ insn = OPC_VANDN_V;
+ goto vdvjvk;
case INDEX_op_or_vec:
- tcg_out_opc_vor_v(s, a0, a1, a2);
- break;
+ insn = OPC_VOR_V;
+ goto vdvjvk;
case INDEX_op_orc_vec:
- tcg_out_opc_vorn_v(s, a0, a1, a2);
- break;
+ insn = OPC_VORN_V;
+ goto vdvjvk;
case INDEX_op_xor_vec:
- tcg_out_opc_vxor_v(s, a0, a1, a2);
- break;
- case INDEX_op_nor_vec:
- tcg_out_opc_vnor_v(s, a0, a1, a2);
- break;
+ insn = OPC_VXOR_V;
+ goto vdvjvk;
case INDEX_op_not_vec:
- tcg_out_opc_vnor_v(s, a0, a1, a1);
- break;
+ a2 = a1;
+ /* fall through */
+ case INDEX_op_nor_vec:
+ insn = OPC_VNOR_V;
+ goto vdvjvk;