https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83751
Bug ID: 83751 Summary: CSE erf/erfc pair Product: gcc Version: 8.0 Status: UNCONFIRMED Severity: enhancement Priority: P3 Component: tree-optimization Assignee: unassigned at gcc dot gnu.org Reporter: prathamesh3492 at gcc dot gnu.org Target Milestone: --- For the following test case: double f(double x) { double g(double, double); double t1 = __builtin_erf (x); double t2 = __builtin_erfc (x); return g(t1, t2); } optimized dump shows: <bb 2> [local count: 1073741825]: t1_2 = __builtin_erf (x_1(D)); t2_5 = __builtin_erfc (x_1(D)); _7 = g (t1_2, t2_5); [tail call] return _7; I was wondering if it'd be a good idea to add a simple dom pass to tree-ssa-math-opts.c that would eliminate call to erfc(x) if erf(x) is present at-least with -funsafe-math-optimizations ? erfc(x) == 1.0 - erf(x) Thanks, Prathamesh