1 /* { dg-do compile } */
2 /* { dg-options "-O2 -fno-early-inlining -fdump-ipa-cp-details -fdump-tree-optimized"  }  */
3 
4 static double global = 0.0;
5 double foo_temp5;
6 
foo(double * ptr)7 static void foo(double *ptr) {
8   static double abcd;
9   double v, exp_res;
10   v = *ptr;
11   exp_res = __builtin_exp(v);
12   foo_temp5 = exp_res * abcd;
13   abcd += foo_temp5;
14 }
15 
16 double last_value;
17 
bar(double * ptr)18 static void bar(double *ptr)
19 {
20   last_value = *ptr;
21   foo (ptr);
22 }
23 
entry()24 void entry()
25 {
26   bar (&global);
27 }
28 
29 /* { dg-final { scan-ipa-dump "Removed a reference"  "cp"  } } */
30 /* { dg-final { scan-ipa-dump "replaced it with LOAD"  "cp"  } } */
31 /* { dg-final { scan-tree-dump-not "builtin_exp"  "optimized"  } } */
32