[PATCH] Fix up avx512* regressions caused by the cse.c one-liner change (PR target/69671)

Kirill Yukhin kirill.yukhin@gmail.com
Fri Feb 19 06:44:00 GMT 2016


Hello Jakub,
On 17 Feb 17:46, Jakub Jelinek wrote:
> Hi!
> 
> As I wrote in the PR, fwprop is able to forward CONST0_RTX back into
> instructions even if CSE optimized them, but the problem in that case is
> that for vector_move_operand "0C" operands if they appear inside of
> (vec_select ... (parallel [(const_int 0) ... ])) the result is also
> simplified, so one gets instead another CONST0_RTX (in the mode of
> the VEC_SELECT).  Because the patterns expect a vec_select and "C" operand
> inside of it, it is therefore not matched, it maybe attached as REG_EQUAL
> note.  I went through other vector_move_operand "0C" and "0C,0" operands
> and I don't think they suffer from similar problem, if fwprop or cprop etc.
> attempts to propagate a constant into them, it shouldn't be possible it will
> be simplified into something different.
> 
> Anyway, the fix IMHO is to just duplicate the affected 8 define_insns
> with the simplification applied.  IMHO once we know it is {z}, it is worth
> to keep it as {z}, there is no benefit to allow the RA to use "0"
> operand instead.
> 
> Bootstrapped/regtested on x86_64-linux and i686-linux, on both fixes
> the testcases that started failing with r233133, ok for trunk?
Patch is ok for trunk. Thanks a lot for fixing this!

--
Regards, K



More information about the Gcc-patches mailing list