On Wed, Jul 6, 2016 at 3:18 PM, Richard Biener <rguent...@suse.de> wrote:
>> > 2016-07-04 Richard Biener <rguent...@suse.de> >> > >> > PR rtl-optimization/68961 >> > * fwprop.c (propagate_rtx): Allow SUBREGs of VEC_CONCAT and CONCAT >> > to simplify to a non-constant. >> > >> > * gcc.target/i386/pr68961.c: New testcase. >> >> Thanks, LGTM. > > Bootstrapped and tested on x86_64-unknown-linux-gnu, it causes > > FAIL: gcc.target/i386/sse2-load-multi.c scan-assembler-times movup 2 > > as the peephole created for that testcase no longer applies as fwprop > does > > In insn 10, replacing > (vec_concat:V2DF (vec_select:DF (reg:V2DF 91) > (parallel [ > (const_int 0 [0]) > ])) > (mem:DF (reg/f:DI 95) [0 S8 A128])) > with (vec_concat:V2DF (reg:DF 93 [ MEM[(const double *)&a + 8B] ]) > (mem:DF (reg/f:DI 95) [0 S8 A128])) > Changed insn 10 > > resulting in > > movsd a+8(%rip), %xmm0 > movhpd a+16(%rip), %xmm0 > > again rather than movupd. > > Uros, there is probably a missing peephole for the new form - can you > fix this as a followup or should I hold on this patch for a bit longer? No, please proceed with the patch, I'll fix this fallout with a followup patch in a couple of days. Uros.