OSDN Git Service

Split 32-byte AVX unaligned load/store.
[pf3gnuchains/gcc-fork.git] / gcc / testsuite / gcc.target / i386 / avx256-unaligned-store-7.c
1 /* { dg-do run } */
2 /* { dg-require-effective-target avx } */
3 /* { dg-options "-O3 -dp -mavx -mavx256-split-unaligned-store" } */
4
5 #include "avx-check.h"
6
7 #define N 128
8
9 char **ep;
10 char **fp;
11
12 __attribute__ ((noinline))
13 void
14 foo (void)
15 {
16   ep = (char **) malloc (N);
17   fp = (char **) malloc (N);
18 }
19
20 void
21 avx_test (void)
22 {
23   int i;
24   char **ap, **bp;
25   char *str = "STR";
26
27   foo ();
28
29   ap = ep;
30   bp = fp;
31
32   for (i = N; i >= 0; i--)
33     {
34       *ap++ = str;
35       *bp++ = str;
36     }
37
38   for (i = N; i >= 0; i--)
39     {
40       if (strcmp (*--ap, "STR") != 0)
41         abort ();
42       if (strcmp (*--bp, "STR") != 0)
43         abort ();
44     }
45 }