// { dg-do compile } // { dg-options "-O2 -fno-thread-jumps -fdump-tree-evrp" } extern void link_error (); void fast_sqrt (float); float test (float x) { float y = x*x; if (y >= 0.f) { if (__builtin_isnan (y)) link_error (); else fast_sqrt (y); if (!__builtin_isnan (y)) fast_sqrt (y); else link_error (); } } // { dg-final { scan-tree-dump-times "fast_sqrt" 2 "evrp" } } // { dg-final { scan-tree-dump-not "link_error" "evrp" } }