https://gcc.gnu.org/bugzilla/show_bug.cgi?id=54855
--- Comment #10 from hjl at gcc dot gnu.org <hjl at gcc dot gnu.org> --- Author: hjl Date: Thu Jun 20 15:30:54 2019 New Revision: 272511 URL: https://gcc.gnu.org/viewcvs?rev=272511&root=gcc&view=rev Log: i386: Generate standard floating point scalar operation patterns Standard floating point scalar operation patterns for combiner, which preserve the rest of the vector, look like (vec_merge:V2DF (vec_duplicate:V2DF (reg:DF 87)) (reg/v:V2DF 85 [ x ]) (const_int 1 [0x1])])) and (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])])) This patch adds and generates such standard floating point scalar operation patterns for +, -, *, /, > and <. Tested on x86-64. gcc/ PR target/54855 * config/i386/i386-expand.c (ix86_expand_vector_set): Generate standard scalar operation pattern for V2DF. * config/i386/sse.md (*<sse>_vm<plusminus_insn><mode>3): New. (*<sse>_vm<multdiv_mnemonic><mode>3): Likewise. (*ieee_<ieee_maxmin><mode>3): Likewise. (vec_setv2df_0): 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. * gcc.target/i386/pr54855-8.c: Likewise. * gcc.target/i386/pr54855-9.c: Likewise. * gcc.target/i386/pr54855-10.c: Likewise. Added: trunk/gcc/testsuite/gcc.target/i386/pr54855-1.c trunk/gcc/testsuite/gcc.target/i386/pr54855-10.c trunk/gcc/testsuite/gcc.target/i386/pr54855-2.c trunk/gcc/testsuite/gcc.target/i386/pr54855-3.c trunk/gcc/testsuite/gcc.target/i386/pr54855-4.c trunk/gcc/testsuite/gcc.target/i386/pr54855-5.c trunk/gcc/testsuite/gcc.target/i386/pr54855-6.c trunk/gcc/testsuite/gcc.target/i386/pr54855-7.c trunk/gcc/testsuite/gcc.target/i386/pr54855-8.c trunk/gcc/testsuite/gcc.target/i386/pr54855-9.c Modified: trunk/gcc/ChangeLog trunk/gcc/config/i386/i386-expand.c trunk/gcc/config/i386/sse.md trunk/gcc/testsuite/ChangeLog