This patch is to handle simplification of plusminus-mult-with-convert expression
as ((T) X) +- ((T) Y), in which at least one of (X, Y) is result of 
multiplication. 
This is done in forwprop pass. We try to transform it to (T) (X +- Y), and 
resort
to gimple-matcher to fold (X +- Y) instead of manually code pattern recognition.

Regards,
Feng
---
2020-09-03  Feng Xue  <f...@os.amperecomputing.com>

gcc/
        PR tree-optimization/94234
        * tree-ssa-forwprop.c (simplify_plusminus_mult_with_convert): New
        function.
        (fwprop_ssa_val): Move it before its new caller.
        (pass_forwprop::execute): Add call to
        simplify_plusminus_mult_with_convert.

gcc/testsuite/
        PR tree-optimization/94234
        * gcc.dg/pr94234-3.c: New test.

Reply via email to