diff options
author | Richard Biener <rguenther@suse.de> | 2023-03-28 15:20:22 +0200 |
---|---|---|
committer | Richard Biener <rguenther@suse.de> | 2023-03-29 08:33:00 +0200 |
commit | c9954996cd647daf0ba03e34dd279b97982f671f (patch) | |
tree | f51a515351d496e17ae4475d93848c2db3b81c9b /gcc/range-op-float.cc | |
parent | 91293ffb6af18705ab7857dc47656bdd74a9ce31 (diff) | |
download | gcc-c9954996cd647daf0ba03e34dd279b97982f671f.zip gcc-c9954996cd647daf0ba03e34dd279b97982f671f.tar.gz gcc-c9954996cd647daf0ba03e34dd279b97982f671f.tar.bz2 |
tree-optimization/109154 - improve if-conversion for vectorization
With multi-argument PHIs and now doing VN on the if-converted blocks
the optimization of CSEing condition and negated condition doesn't
work well anymore. The following restores this a little bit for
the case of a single inverted condition into a COND_EXPR where
we can instead swap the COND_EXPR arms. The same optimization
is already done for the case of two-argument PHIs.
This avoids one comparison/mask for the testcase at hand.
PR tree-optimization/109154
* tree-if-conv.cc (gen_phi_arg_condition): Handle single
inverted condition specially by inverting at the caller.
(gen_phi_arg_condition): Swap COND_EXPR arms if requested.
Diffstat (limited to 'gcc/range-op-float.cc')
0 files changed, 0 insertions, 0 deletions