Hi! This PR is about the rs6000 backend emitting wrong assembly for whole vector shift by 0, and while I think it is desirable to fix the backend, I don't see a point why the expander should try to emit that, whole vector shift by 0 is identity, we can just return the operand.
Bootstrapped/regtested on powerpc64{,le}-linux, ok for trunk? 2020-04-23 Jakub Jelinek <ja...@redhat.com> PR target/94710 * optabs.c (expand_vec_perm_const): For shift_amt const0_rtx just return v2. --- gcc/optabs.c.jj 2020-04-17 14:18:44.380437703 +0200 +++ gcc/optabs.c 2020-04-23 11:50:07.931780323 +0200 @@ -5627,6 +5627,8 @@ expand_vec_perm_const (machine_mode mode if (shift_amt) { class expand_operand ops[3]; + if (shift_amt == const0_rtx) + return v2; if (shift_code != CODE_FOR_nothing) { create_output_operand (&ops[0], target, mode); Jakub