re PR target/88833 ([SVE] Redundant moves for WHILELO-based loops)
commit75da268e1a563a1a52389cd2ecee12d07c45a655
authorPrathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
Thu, 4 Jul 2019 06:48:42 +0000 (4 06:48 +0000)
committerPrathamesh Kulkarni <prathamesh3492@gcc.gnu.org>
Thu, 4 Jul 2019 06:48:42 +0000 (4 06:48 +0000)
tree714da14dc584d3e6f3b168644f755d9a131ee1da
parent6b150619545449f40d14acb87d636535e1e838ac
re PR target/88833 ([SVE] Redundant moves for WHILELO-based loops)

2019-07-04  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>

PR target/88833
* fwprop.c (reg_single_def_p): New function.
(propagate_rtx_1): Add unconditional else inside RTX_EXTRA case.
(forward_propagate_into): New parameter reg_prop_only
with default value false.
Propagate def's src into loop only if SET_SRC and SET_DEST
of def_set have single definitions.
Likewise if reg_prop_only is set to true.
(fwprop): New param fwprop_addr_p.
Integrate fwprop_addr into fwprop.
(fwprop_addr): Remove.
(pass_rtl_fwprop_addr::execute): Call fwprop with arg set
to true.
(pass_rtl_fwprop::execute): Call fwprop with arg set to false.
* simplify-rtx.c (simplify_subreg): Add case for vector comparison.
* config/i386/sse.md (UNSPEC_BLENDV): Adjust pattern.

testsuite/
* gfortran.dg/pr88833.f90: New test.

From-SVN: r273040
gcc/ChangeLog
gcc/config/i386/sse.md
gcc/fwprop.c
gcc/simplify-rtx.c
gcc/testsuite/ChangeLog
gcc/testsuite/gfortran.dg/pr88833.f90 [new file with mode: 0644]