| /* { dg-do compile } */ |
| /* { dg-options "-O2 -fno-early-inlining -fdump-ipa-cp-details -fdump-tree-optimized" } */ |
| |
| static double global = 0.0; |
| double foo_temp5; |
| |
| static void foo(double *ptr) { |
| static double abcd; |
| double v, exp_res; |
| v = *ptr; |
| exp_res = __builtin_exp(v); |
| foo_temp5 = exp_res * abcd; |
| abcd += foo_temp5; |
| } |
| |
| double last_value; |
| |
| static void bar(double *ptr) |
| { |
| last_value = *ptr; |
| foo (ptr); |
| } |
| |
| void entry() |
| { |
| bar (&global); |
| } |
| |
| /* { dg-final { scan-ipa-dump "Removed a reference" "cp" } } */ |
| /* { dg-final { scan-ipa-dump "replaced it with LOAD" "cp" } } */ |
| /* { dg-final { scan-tree-dump-not "builtin_exp" "optimized" } } */ |