2018-05-15 Richard Biener <rguenther@suse.de>
[official-gcc.git] / gcc / testsuite / gcc.dg / guality / pr78726.c
blobdc6b386be1de318733977d7b77902b21d5504bba
1 /* PR tree-optimization/78726 */
2 /* { dg-do run } */
3 /* { dg-options "-g" } */
5 #include "../nop.h"
7 unsigned char b = 36, c = 173;
8 unsigned int d;
10 __attribute__((noinline, noclone)) void
11 foo (void)
13 unsigned a = ~b;
14 unsigned d1 = a * c; /* { dg-final { gdb-test 21 "d1" "~36U * 173" } } */
15 unsigned d2 = d1 * c; /* { dg-final { gdb-test 21 "d2" "~36U * 173 * 173" } } */
16 unsigned d3 = 1023094746 * a; /* { dg-final { gdb-test 21 "d3" "~36U * 1023094746" } } */
17 d = d2 + d3;
18 unsigned d4 = d1 * 2; /* { dg-final { gdb-test 21 "d4" "~36U * 173 * 2" } } */
19 unsigned d5 = d2 * 2; /* { dg-final { gdb-test 21 "d5" "~36U * 173 * 173 * 2" } } */
20 unsigned d6 = d3 * 2; /* { dg-final { gdb-test 21 "d6" "~36U * 1023094746 * 2" } } */
21 asm (NOP : : : "memory");
24 int
25 main ()
27 asm volatile ("" : : "g" (&b), "g" (&c) : "memory");
28 foo ();
29 return 0;