On Thu, Feb 7, 2019 at 9:49 AM H.J. Lu <hjl.to...@gmail.com> wrote: > > Standard scalar operation patterns which preserve the rest of the vector > look like > > (vec_merge:V2DF > (vec_duplicate:V2DF > (op:DF (vec_select:DF (reg/v:V2DF 85 [ x ]) > (parallel [ (const_int 0 [0])])) > (reg:DF 87)) > (reg/v:V2DF 85 [ x ]) > (const_int 1 [0x1])])) > > Add such pattens to i386 backend and convert VEC_CONCAT patterns to > standard standard scalar operation patterns. > > gcc/ > > PR target/54855 > * simplify-rtx.c (simplify_binary_operation_1): Convert > VEC_CONCAT patterns to standard standard scalar operation > patterns. > * config/i386/sse.md (*<sse>_vm<plusminus_insn><mode>3): New. > (*<sse>_vm<multdiv_mnemonic><mode>3): Likewise. > > gcc/testsuite/ > > PR target/54855 > * gcc.target/i386/pr54855-1.c: New test. > * gcc.target/i386/pr54855-2.c: Likewise. > * gcc.target/i386/pr54855-3.c: Likewise. > * gcc.target/i386/pr54855-4.c: Likewise. > * gcc.target/i386/pr54855-5.c: Likewise. > * gcc.target/i386/pr54855-6.c: Likewise. > * gcc.target/i386/pr54855-7.c: Likewise.
PING: https://gcc.gnu.org/ml/gcc-patches/2019-02/msg00398.html -- H.J.