mirror of
https://github.com/Stichting-MINIX-Research-Foundation/pkgsrc-ng.git
synced 2025-09-30 07:27:54 -04:00
44 lines
1.0 KiB
C
44 lines
1.0 KiB
C
$NetBSD$
|
|
|
|
--- gcc/testsuite/gcc.dg/pr48774.c.orig Wed May 21 19:48:58 2014
|
|
+++ gcc/testsuite/gcc.dg/pr48774.c
|
|
@@ -0,0 +1,38 @@
|
|
+/* PR target/48774 */
|
|
+/* { dg-do run } */
|
|
+/* { dg-options "-O2 -funroll-loops" } */
|
|
+
|
|
+extern void abort (void);
|
|
+unsigned long int s[24]
|
|
+ = { 12, ~1, 12, ~2, 12, ~4, 12, ~8, 12, ~16, 12, ~32,
|
|
+ 12, ~64, 12, ~128, 12, ~256, 12, ~512, 12, ~1024, 12, ~2048 };
|
|
+struct { int n; unsigned long *e[12]; } g
|
|
+ = { 12, { &s[0], &s[2], &s[4], &s[6], &s[8], &s[10], &s[12], &s[14],
|
|
+ &s[16], &s[18], &s[20], &s[22] } };
|
|
+int c[12];
|
|
+
|
|
+__attribute__((noinline, noclone)) void
|
|
+foo (void)
|
|
+{
|
|
+ int i, j;
|
|
+ for (i = 0; i < g.n; i++)
|
|
+ for (j = 0; j < g.n; j++)
|
|
+ {
|
|
+ if (i == j && j < g.e[0][0] && (g.e[i][1] & (1UL << j)))
|
|
+ abort ();
|
|
+ if (j < g.e[0][0] && (g.e[i][1] & (1UL << j)))
|
|
+ c[i]++;
|
|
+ }
|
|
+}
|
|
+
|
|
+int
|
|
+main ()
|
|
+{
|
|
+ int i;
|
|
+ asm volatile ("" : "+m" (s), "+m" (g), "+m" (c));
|
|
+ foo ();
|
|
+ for (i = 0; i < 12; i++)
|
|
+ if (c[i] != 11)
|
|
+ abort ();
|
|
+ return 0;
|
|
+}
|