|
From: <sv...@va...> - 2011-06-15 15:15:57
|
Author: sewardj
Date: 2011-06-15 16:11:07 +0100 (Wed, 15 Jun 2011)
New Revision: 11814
Log:
Track renaming of vector saturating narrowing primops in r2159.
Modified:
trunk/memcheck/mc_translate.c
Modified: trunk/memcheck/mc_translate.c
===================================================================
--- trunk/memcheck/mc_translate.c 2011-06-13 13:36:59 UTC (rev 11813)
+++ trunk/memcheck/mc_translate.c 2011-06-15 15:11:07 UTC (rev 11814)
@@ -1975,6 +1975,10 @@
So: In short, pessimise the args, then apply the original narrowing
op.
+
+ FIXME JRS 2011-Jun-15: figure out if this is still correct
+ following today's rationalisation/cleanup of vector narrowing
+ primops.
*/
static
IRAtom* vectorNarrowV128 ( MCEnv* mce, IROp narrow_op,
@@ -1983,10 +1987,10 @@
IRAtom *at1, *at2, *at3;
IRAtom* (*pcast)( MCEnv*, IRAtom* );
switch (narrow_op) {
- case Iop_QNarrow32Sx4: pcast = mkPCast32x4; break;
- case Iop_QNarrow32Ux4: pcast = mkPCast32x4; break;
- case Iop_QNarrow16Sx8: pcast = mkPCast16x8; break;
- case Iop_QNarrow16Ux8: pcast = mkPCast16x8; break;
+ case Iop_QNarrow32Sto16Sx8: pcast = mkPCast32x4; break;
+ case Iop_QNarrow32Uto16Ux8: pcast = mkPCast32x4; break;
+ case Iop_QNarrow16Sto8Sx16: pcast = mkPCast16x8; break;
+ case Iop_QNarrow16Sto8Ux16: pcast = mkPCast16x8; break;
default: VG_(tool_panic)("vectorNarrowV128");
}
tl_assert(isShadowAtom(mce,vatom1));
@@ -2004,9 +2008,9 @@
IRAtom *at1, *at2, *at3;
IRAtom* (*pcast)( MCEnv*, IRAtom* );
switch (narrow_op) {
- case Iop_QNarrow32Sx2: pcast = mkPCast32x2; break;
- case Iop_QNarrow16Sx4: pcast = mkPCast16x4; break;
- case Iop_QNarrow16Ux4: pcast = mkPCast16x4; break;
+ case Iop_QNarrow32Sto16Sx4: pcast = mkPCast32x2; break;
+ case Iop_QNarrow16Sto8Sx8: pcast = mkPCast16x4; break;
+ case Iop_QNarrow16Sto8Ux8: pcast = mkPCast16x4; break;
default: VG_(tool_panic)("vectorNarrow64");
}
tl_assert(isShadowAtom(mce,vatom1));
@@ -2343,9 +2347,9 @@
complainIfUndefined(mce, atom2);
return assignNew('V', mce, Ity_I64, binop(op, vatom1, atom2));
- case Iop_QNarrow32Sx2:
- case Iop_QNarrow16Sx4:
- case Iop_QNarrow16Ux4:
+ case Iop_QNarrow32Sto16Sx4:
+ case Iop_QNarrow16Sto8Sx8:
+ case Iop_QNarrow16Sto8Ux8:
return vectorNarrow64(mce, op, vatom1, vatom2);
case Iop_Min8Ux8:
@@ -2699,10 +2703,10 @@
case Iop_QSub64Sx2:
return binary64Ix2(mce, vatom1, vatom2);
- case Iop_QNarrow32Sx4:
- case Iop_QNarrow32Ux4:
- case Iop_QNarrow16Sx8:
- case Iop_QNarrow16Ux8:
+ case Iop_QNarrow32Sto16Sx8:
+ case Iop_QNarrow32Uto16Ux8:
+ case Iop_QNarrow16Sto8Sx16:
+ case Iop_QNarrow16Sto8Ux16:
return vectorNarrowV128(mce, op, vatom1, vatom2);
case Iop_Sub64Fx2:
|