blob: 428b4122fe9b0933271c9b0c0a0b2c75500bc286 [file] [log] [blame]
/* PR tree-optimization/78726 */
/* { dg-do run } */
/* { dg-options "-g" } */
#include "../nop.h"
unsigned char b = 36, c = 173;
unsigned int d;
__attribute__((noinline, noclone)) void
foo (void)
{
unsigned a = ~b;
unsigned d1 = a * c; /* { dg-final { gdb-test 21 "d1" "~36U * 173" } } */
unsigned d2 = d1 * c; /* { dg-final { gdb-test 21 "d2" "~36U * 173 * 173" } } */
unsigned d3 = 1023094746 * a; /* { dg-final { gdb-test 21 "d3" "~36U * 1023094746" } } */
d = d2 + d3;
unsigned d4 = d1 * 2; /* { dg-final { gdb-test .+3 "d4" "~36U * 173 * 2" } } */
unsigned d5 = d2 * 2; /* { dg-final { gdb-test .+2 "d5" "~36U * 173 * 173 * 2" } } */
unsigned d6 = d3 * 2; /* { dg-final { gdb-test .+1 "d6" "~36U * 1023094746 * 2" } } */
asm (NOP : : : "memory");
}
int
main ()
{
asm volatile ("" : : "g" (&b), "g" (&c) : "memory");
foo ();
return 0;
}