annotate gcc/testsuite/gcc.dg/guality/pr58791-4.c @ 131:84e7813d76e9

gcc-8.2
author mir3636
date Thu, 25 Oct 2018 07:37:49 +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 -ffast-math" } */
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)) double
kono
parents:
diff changeset
8 foo (float a, float b, float c, float d, float l, double u)
kono
parents:
diff changeset
9 {
kono
parents:
diff changeset
10 float e = a * d;
kono
parents:
diff changeset
11 float f = d * e;
kono
parents:
diff changeset
12 double g = (double) f;
kono
parents:
diff changeset
13 double h = (double) b;
kono
parents:
diff changeset
14 double i = g * h; /* { dg-final { gdb-test pr58791-4.c:32 "i" "486" { target { { i?86-*-* x86_64-*-* } && lp64 } } } } */
kono
parents:
diff changeset
15 double i2 = i + 1.0; /* { dg-final { gdb-test pr58791-4.c:32 "i2" "487" { target { { i?86-*-* x86_64-*-* } && lp64 } } } } */
kono
parents:
diff changeset
16 double j = i * 3.25;
kono
parents:
diff changeset
17 double k = h + j;
kono
parents:
diff changeset
18 float m = l * 8.75;
kono
parents:
diff changeset
19 double n = (double) m;
kono
parents:
diff changeset
20 double o = (double) a;
kono
parents:
diff changeset
21 double p = n * o;
kono
parents:
diff changeset
22 double q = h * p;
kono
parents:
diff changeset
23 double r = q * 2.5;
kono
parents:
diff changeset
24 double s = k - r;
kono
parents:
diff changeset
25 double t = (double) c;
kono
parents:
diff changeset
26 double v = o * u;
kono
parents:
diff changeset
27 double w = o * v;
kono
parents:
diff changeset
28 double x = h * w;
kono
parents:
diff changeset
29 double y = h * x;
kono
parents:
diff changeset
30 double z = y * 8.5;
kono
parents:
diff changeset
31 asm volatile (NOP : : : "memory");
kono
parents:
diff changeset
32 asm volatile (NOP : : : "memory");
kono
parents:
diff changeset
33 return s - z;
kono
parents:
diff changeset
34 }
kono
parents:
diff changeset
35
kono
parents:
diff changeset
36 int
kono
parents:
diff changeset
37 main ()
kono
parents:
diff changeset
38 {
kono
parents:
diff changeset
39 foo (3.0f, 2.0f, -1.0f, 9.0f, 1.0f, 2.0);
kono
parents:
diff changeset
40 return 0;
kono
parents:
diff changeset
41 }