blob: 2d8b5a5a0ddc2694a2cf1b60dd36a81d1669e271 [file] [log] [blame]
/* PR tree-optimization/58791 */
/* { dg-do run } */
/* { dg-options "-g -ffast-math" } */
#include "../nop.h"
__attribute__((noinline, noclone)) double
foo (float a, float b, float c, float d, float l, double u)
{
float e = a * d;
float f = d * e;
double g = (double) f;
double h = (double) b;
double i = g * h; /* { dg-final { gdb-test pr58791-4.c:32 "i" "486" { target { { i?86-*-* x86_64-*-* } && lp64 } } } } */
double i2 = i + 1.0; /* { dg-final { gdb-test pr58791-4.c:32 "i2" "487" { target { { i?86-*-* x86_64-*-* } && lp64 } } } } */
double j = i * 3.25;
double k = h + j;
float m = l * 8.75;
double n = (double) m;
double o = (double) a;
double p = n * o;
double q = h * p;
double r = q * 2.5;
double s = k - r;
double t = (double) c;
double v = o * u;
double w = o * v;
double x = h * w;
double y = h * x;
double z = y * 8.5;
asm volatile (NOP : : : "memory");
asm volatile (NOP : : : "memory");
return s - z;
}
int
main ()
{
foo (3.0f, 2.0f, -1.0f, 9.0f, 1.0f, 2.0);
return 0;
}