case Iop_DivModU64to32: vex_printf("DivModU64to32"); return;
case Iop_DivModS64to32: vex_printf("DivModS64to32"); return;
+ case Iop_DivModU128to64: vex_printf("DivModU128to64"); return;
+ case Iop_DivModS128to64: vex_printf("DivModS128to64"); return;
+
case Iop_16HIto8: vex_printf("16HIto8"); return;
case Iop_16to8: vex_printf("16to8"); return;
case Iop_8HLto16: vex_printf("8HLto16"); return;
case Iop_DivModU64to32: case Iop_DivModS64to32:
BINARY(Ity_I64, Ity_I64,Ity_I32);
+ case Iop_DivModU128to64: case Iop_DivModS128to64:
+ BINARY(Ity_V128, Ity_V128,Ity_I64);
+
case Iop_16HIto8: case Iop_16to8:
UNARY(Ity_I8,Ity_I16);
case Iop_8HLto16:
Iop_CmpLE32S,
Iop_CmpLT32U,
Iop_CmpLE32U,
+
/* Division */
/* TODO: clarify semantics wrt rounding, negative values, whatever */
Iop_DivModU64to32, // :: I64,I32 -> I64
// of which lo half is div and hi half is mod
Iop_DivModS64to32, // ditto, signed
+ Iop_DivModU128to64, // :: V128,I64 -> V128
+ // of which lo half is div and hi half is mod
+ Iop_DivModS128to64, // ditto, signed
+
/* Widening conversions */
Iop_8Uto16, Iop_8Uto32, Iop_16Uto32, Iop_32Uto64,
Iop_8Sto16, Iop_8Sto32, Iop_16Sto32, Iop_32Sto64,