annotate gcc/testsuite/gcc.dg/guality/pr58791-5.c @ 158:494b0b89df80 default tip

...
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Mon, 25 May 2020 18:13:55 +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/58791 */
kono
parents:
diff changeset
2 /* { dg-do run } */
kono
parents:
diff changeset
3 /* { dg-options "-g" } */
kono
parents:
diff changeset
4
kono
parents:
diff changeset
5 #include "../nop.h"
kono
parents:
diff changeset
6
kono
parents:
diff changeset
7 __attribute__((noinline, noclone)) unsigned int
kono
parents:
diff changeset
8 foo (unsigned int a0, unsigned int a1, unsigned int a2,
kono
parents:
diff changeset
9 unsigned int a3, unsigned int a4)
kono
parents:
diff changeset
10 {
kono
parents:
diff changeset
11 unsigned int b0, b1, b2, b3, b4, e;
kono
parents:
diff changeset
12 /* this can be optimized to four additions... */
kono
parents:
diff changeset
13 b4 = a4 + a3 + a2 + a1 + a0; /* { dg-final { gdb-test pr58791-5.c:20 "b4" "4681" } } */
kono
parents:
diff changeset
14 b3 = a3 + a2 + a1 + a0; /* { dg-final { gdb-test pr58791-5.c:20 "b3" "585" } } */
kono
parents:
diff changeset
15 b2 = a2 + a1 + a0; /* { dg-final { gdb-test pr58791-5.c:20 "b2" "73" } } */
kono
parents:
diff changeset
16 b1 = a1 + a0; /* { dg-final { gdb-test pr58791-5.c:20 "b1" "9" } } */
kono
parents:
diff changeset
17 /* This is actually 0 */
kono
parents:
diff changeset
18 e = b4 - b3 + b2 - b1 - a4 - a2; /* { dg-final { gdb-test pr58791-5.c:20 "e" "0" } } */
kono
parents:
diff changeset
19 asm volatile (NOP : : : "memory");
kono
parents:
diff changeset
20 asm volatile (NOP : : : "memory");
kono
parents:
diff changeset
21 return e;
kono
parents:
diff changeset
22 }
kono
parents:
diff changeset
23
kono
parents:
diff changeset
24 int
kono
parents:
diff changeset
25 main ()
kono
parents:
diff changeset
26 {
kono
parents:
diff changeset
27 foo (1, 8, 64, 512, 4096);
kono
parents:
diff changeset
28 return 0;
kono
parents:
diff changeset
29 }