Remove constant vec_select restriction.
authorAndrew Stubbs <ams@codesourcery.com>
Wed, 19 Sep 2018 13:25:42 +0000 (13:25 +0000)
committerAndrew Stubbs <ams@gcc.gnu.org>
Wed, 19 Sep 2018 13:25:42 +0000 (13:25 +0000)
commit5bbb71154e5f113b53a5835a86e5d548f5502fd6
tree9e07681483f902c00e17ec88d0fb16422b2d7a08
parentdc9acaa99b9e6b3553f64b362cd22f32e961d3dc
Remove constant vec_select restriction.

The vec_select operator is documented to require a const_int for the lane
selector operand, but GCN has an instruction that can select the lane at
runtime, so it seems reasonable to remove this restriction.

This patch simply replaces assertions that the operand is constant with early
exits from the optimizers.  I think it's reasonable that vec_select with a
non-constant operand cannot be optimized, yet.

Also included is the necessary documentation tweak.

2018-09-19  Andrew Stubbs  <ams@codesourcery.com>

gcc/
* doc/rtl.texi: Adjust vec_select description.
* simplify-rtx.c (simplify_binary_operation_1): Allow VEC_SELECT to use
non-constant selectors.

From-SVN: r264423
gcc/ChangeLog
gcc/doc/rtl.texi
gcc/simplify-rtx.c