annotate gcc/testsuite/gcc.dg/tree-prof/pr59521-3.c @ 131:84e7813d76e9

gcc-8.2
author mir3636
date Thu, 25 Oct 2018 07:37:49 +0900
parents
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-options "-O2 -save-temps" } */
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
2
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
3 #include <stdio.h>
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
4
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
5 __attribute__((noinline,noclone)) void
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
6 sink(const char *s) {
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
7 asm("" :: "r"(s));
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
8 }
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
9
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
10 void
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
11 foo(int ch) {
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
12 switch (ch) {
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
13 case 100: sink("100"); break;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
14 case 10: sink("10"); break;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
15 case 1: sink("1"); break;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
16 }
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
17 }
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
18
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
19 int main()
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
20 {
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
21 for (int i = 0; i < 10000; i++)
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
22 {
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
23 int v;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
24 if (i % 100 == 0)
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
25 v = 100;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
26 else if(i % 10 == 0)
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
27 v = 10;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
28 else
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
29 v = 1;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
30 foo(v);
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
31 }
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
32 }
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
33
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
34 /* { dg-final-use-not-autofdo { scan-assembler "\n_?foo:\n.*cmp.*1,.*cmp.*10,.*cmp.*100" { target i?86-*-* x86_64-*-* } } } */