annotate gcc/testsuite/gcc.dg/pr87054.c @ 138:fc828634a951

merge
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Thu, 08 Nov 2018 14:17:14 +0900
parents 84e7813d76e9
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
131
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
1 // { dg-do run }
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
2 // { dg-options "-O2" }
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
3
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
4 #ifndef T
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
5 # if __SIZEOF_INT128__ && defined __SSE__
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
6 # define T __int128
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
7 # else
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
8 # define T long
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
9 # endif
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
10 #endif
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
11 #ifndef R
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
12 # ifdef __SSE__
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
13 # define R "x"
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
14 # else
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
15 # define R "r"
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
16 # endif
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
17 #endif
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
18
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
19
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
20 typedef T A; // #define T to long or __int128
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
21 struct B { char d; A c; } __attribute__((packed));
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
22 struct B b[50]; // many elements to avoid loop unrolling
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
23
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
24 int main () {
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
25 int i;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
26 for (i = 0; i < sizeof(b) / sizeof(*b); i++) {
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
27 asm ("" : "+" R (b[i].c)); // #define R to "r" on ppc or "x" on x86_64
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
28 }
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
29 }