https://gcc.gnu.org/bugzilla/show_bug.cgi?id=122793

--- Comment #9 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
Even
static void
foo (unsigned char *d, unsigned char *s, int e, int f)
{
  for (int i = 0; i < 4; i++)
    {
      d[0] = s[-2];
      d[5] = (s[5] + s[6]) * 2 - (s[4] + s[7]);
      d[6] = (s[6] + s[7]) * 2 - (s[5] + s[8]);
      d[7] = (s[7] + s[8]) * 2 - (s[6] + s[9]);
      d += e;
      s += f;
    }
}

unsigned char s[128] = { 2 }, d[128];

int
main ()
{
  foo (d, s + 2, 16, 16);
  if (d[5] != 0)
    __builtin_abort ();
}
And the r15-4113 to r15-4114 difference in vect dump is then:
--- pr122793.c.180t.vect.r15-4113       2025-12-05 14:53:36.898953828 -0500
+++ pr122793.c.180t.vect.r15-4114       2025-12-05 14:53:43.572020773 -0500
@@ -193,12 +193,12 @@ int main ()
   _118 = VEC_PERM_EXPR <_106, vect__6.12_48, { 0, 1, 2, 6 }>;
   _119 = VEC_PERM_EXPR <_108, vect__6.16_20, { 1, 2, 6, 7 }>;
   _120 = VEC_PERM_EXPR <vect__6.17_16, _112, { 0, 4, 5, 6 }>;
-  _124 = VEC_PERM_EXPR <vect__6.9_54, vect__6.13_46, { 1, 2, 3, 5 }>;
-  _125 = VEC_PERM_EXPR <vect__6.13_46, vect__6.17_16, { 2, 3, 5, 6 }>;
-  _126 = VEC_PERM_EXPR <vect__6.17_16, vect__6.21_67, { 3, 5, 6, 7 }>;
-  _97 = VEC_PERM_EXPR <vect__6.9_54, vect__6.13_46, { 0, 1, 2, 4 }>;
-  _98 = VEC_PERM_EXPR <vect__6.13_46, vect__6.17_16, { 1, 2, 4, 5 }>;
-  _99 = VEC_PERM_EXPR <vect__6.17_16, vect__6.21_67, { 2, 4, 5, 6 }>;
+  _124 = VEC_PERM_EXPR <vect__6.7_58, vect__6.11_50, { 1, 2, 3, 5 }>;
+  _125 = VEC_PERM_EXPR <vect__6.11_50, vect__6.15_24, { 2, 3, 5, 6 }>;
+  _126 = VEC_PERM_EXPR <vect__6.15_24, vect__6.19_3, { 3, 5, 6, 7 }>;
+  _97 = VEC_PERM_EXPR <vect__6.7_58, vect__6.11_50, { 0, 1, 2, 4 }>;
+  _98 = VEC_PERM_EXPR <vect__6.11_50, vect__6.15_24, { 1, 2, 4, 5 }>;
+  _99 = VEC_PERM_EXPR <vect__6.15_24, vect__6.19_3, { 2, 4, 5, 6 }>;
   _70 = VEC_PERM_EXPR <vect__6.8_56, vect__6.9_54, { 3, 4, 5, 5 }>;
   _71 = VEC_PERM_EXPR <vect__6.9_54, vect__6.9_54, { 1, 1, 1, 1 }>;
   _72 = VEC_PERM_EXPR <vect__6.12_48, vect__6.13_46, { 3, 4, 5, 5 }>;
so clearly the same permutations and everything else, except the first two
arguments of some of the permutations are messed up.

Reply via email to