]> git.ipfire.org Git - thirdparty/valgrind.git/commitdiff
Track renaming of vector saturating narrowing primops in r2159.
authorJulian Seward <jseward@acm.org>
Wed, 15 Jun 2011 15:11:07 +0000 (15:11 +0000)
committerJulian Seward <jseward@acm.org>
Wed, 15 Jun 2011 15:11:07 +0000 (15:11 +0000)
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11814

memcheck/mc_translate.c

index 3f027fcccf9ebb71daef20bd069663d1f2f69beb..0fdd2a5297f93f8bff6c064d3f4e0cd1ba42584c 100644 (file)
@@ -1975,6 +1975,10 @@ IRAtom* unary32Fx2 ( MCEnv* mce, IRAtom* vatomX )
 
    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* vectorNarrowV128 ( MCEnv* mce, IROp narrow_op,
    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* vectorNarrow64 ( MCEnv* mce, IROp narrow_op,
    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 @@ IRAtom* expr2vbits_Binop ( MCEnv* mce,
          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 @@ IRAtom* expr2vbits_Binop ( MCEnv* mce,
       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: