annotate gcc/testsuite/c-c++-common/gomp/pr60823-3.c @ 145:1830386684a0

gcc-9.2.0
author anatofuz
date Thu, 13 Feb 2020 11:34:05 +0900
parents 04ced10e8804
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
111
kono
parents:
diff changeset
1 /* PR tree-optimization/60823 */
kono
parents:
diff changeset
2 /* { dg-do compile } */
kono
parents:
diff changeset
3 /* { dg-options "-O2 -fopenmp-simd -fno-strict-aliasing" } */
kono
parents:
diff changeset
4
kono
parents:
diff changeset
5 void bar (char *, double *);
kono
parents:
diff changeset
6
kono
parents:
diff changeset
7 #if __SIZEOF_DOUBLE__ >= 4
kono
parents:
diff changeset
8
kono
parents:
diff changeset
9 struct S { char c[sizeof (double)]; };
kono
parents:
diff changeset
10 void baz (struct S, struct S);
kono
parents:
diff changeset
11 union U { struct S s; double d; };
kono
parents:
diff changeset
12
kono
parents:
diff changeset
13 #pragma omp declare simd simdlen(4) notinbranch
kono
parents:
diff changeset
14 __attribute__((noinline)) int
kono
parents:
diff changeset
15 foo (double c1, double c2)
kono
parents:
diff changeset
16 {
kono
parents:
diff changeset
17 double *a = &c1;
kono
parents:
diff changeset
18 char *b = (char *) &c1 + 2;
kono
parents:
diff changeset
19
kono
parents:
diff changeset
20 b[-2]++;
kono
parents:
diff changeset
21 b[1]--;
kono
parents:
diff changeset
22 *a++;
kono
parents:
diff changeset
23 c2++;
kono
parents:
diff changeset
24 bar ((char *) &c2 + 1, &c2);
kono
parents:
diff changeset
25 c2 *= 3.0;
kono
parents:
diff changeset
26 bar (b, a);
kono
parents:
diff changeset
27 baz (((union U) { .d = c1 }).s, ((union U) { .d = c2 }).s);
kono
parents:
diff changeset
28 baz (*(struct S *)&c1, *(struct S *)&c2);
kono
parents:
diff changeset
29 return c1 + c2 + ((struct S *)&c1)->c[1];
kono
parents:
diff changeset
30 }
145
1830386684a0 gcc-9.2.0
anatofuz
parents: 111
diff changeset
31 /* { dg-warning "GCC does not currently support mixed size types for 'simd' functions" "" { target aarch64*-*-* } .-16 } */
111
kono
parents:
diff changeset
32
kono
parents:
diff changeset
33 #endif