/* { dg-options "-O1 -funsafe-math-optimizations -fno-trapping-math -fdump-tree-recip" } */ /* { dg-do compile } */ /* Test inserting in a block that does not contain a division. */ extern double h(); double m, n, o; void f(int x, double z, double w) { double b, c, d, e, f; double y = h (); if (x) b = 1 / y, c = z / y; else b = 3 / y, c = w / y; d = b / y; e = c / y; f = 1 / y; m = d; n = e; o = f; } /* { dg-final { scan-tree-dump-times " / " 1 "recip" } } */ /* { dg-final { cleanup-tree-dump "recip" } } */