Remove old autovect-branch by moving to "dead" directory.
[official-gcc.git] / old-autovect-branch / gcc / testsuite / gcc.c-torture / execute / builtin-prefetch-6.c
blobf643c5c7286349b6a394da6a76612c2908cc04e1
1 /* Test that __builtin_prefetch does no harm.
3 Data prefetch should not fault if used with an invalid address. */
5 #include <limits.h>
7 #define ARRSIZE 65
8 int *bad_addr[ARRSIZE];
9 int arr_used;
11 /* Fill bad_addr with a range of values in the hopes that on any target
12 some will be invalid addresses. */
13 void
14 init_addrs (void)
16 int i;
17 int bits_per_ptr = sizeof (void *) * 8;
18 for (i = 0; i < bits_per_ptr; i++)
19 bad_addr[i] = (void *)(1UL << i);
20 arr_used = bits_per_ptr + 1; /* The last element used is zero. */
23 void
24 prefetch_for_read (void)
26 int i;
27 for (i = 0; i < ARRSIZE; i++)
28 __builtin_prefetch (bad_addr[i], 0, 0);
31 void
32 prefetch_for_write (void)
34 int i;
35 for (i = 0; i < ARRSIZE; i++)
36 __builtin_prefetch (bad_addr[i], 1, 0);
39 int
40 main ()
42 init_addrs ();
43 prefetch_for_read ();
44 prefetch_for_write ();
45 exit (0);