I recently ran into an ICE that was fixed by richi's
r16-4571-g1ceda79ca5fe1a1a296624a98de8fd04958fbe55.

This adds a testcase for that fix.

The same testcase doesn't ICE with GCC 15, so there's no need for a
backport or PR.

Tested on aarch64-linux-gnu (ICEs prior to r16-4571, PASSes afterwards).

OK for trunk?

Thanks,
Alex

gcc/testsuite/ChangeLog:

        * gcc.dg/torture/vect-permute-ice.c: New test.
diff --git a/gcc/testsuite/gcc.dg/torture/vect-permute-ice.c 
b/gcc/testsuite/gcc.dg/torture/vect-permute-ice.c
new file mode 100644
index 00000000000..05a1da5d5d4
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/torture/vect-permute-ice.c
@@ -0,0 +1,15 @@
+/* { dg-do compile } */
+/* This testcase triggered an ICE that was fixed by
+   g:1ceda79ca5fe1a1a296624a98de8fd04958fbe55.  */
+char *a;
+char c, e;
+_Bool f() {
+  int g, d = 0;
+  for (int h = 0; h < 128; h += 8) {
+    char *b = &a[h];
+    g = e * b[0] + c * b[1] + 2 * b[2] + 3 * b[3] + 4 * b[4] + 5 * b[5] +
+        6 * b[6] + 7 * b[7];
+    d += g;
+  }
+  return d;
+}

Reply via email to