diff options
author | H.J. Lu <hongjiu.lu@intel.com> | 2019-06-20 15:30:54 +0000 |
---|---|---|
committer | H.J. Lu <hjl@gcc.gnu.org> | 2019-06-20 08:30:54 -0700 |
commit | ac173024954b4e620c80ab81715bc5d50907369a (patch) | |
tree | bec8e48bb11c327ba0ad3b42872bc01161e26d44 /gcc/ChangeLog | |
parent | d1a7d8de4689f32bf39047f3f2797f7c30ce2777 (diff) | |
download | gcc-ac173024954b4e620c80ab81715bc5d50907369a.zip gcc-ac173024954b4e620c80ab81715bc5d50907369a.tar.gz gcc-ac173024954b4e620c80ab81715bc5d50907369a.tar.bz2 |
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.
From-SVN: r272511
Diffstat (limited to 'gcc/ChangeLog')
-rw-r--r-- | gcc/ChangeLog | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 06e4ef4..d4c3220 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,13 @@ +2019-06-20 H.J. Lu <hongjiu.lu@intel.com> + + 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. + 2019-06-20 Jan Hubicka <jh@suse.cz> * tree-ssa-alias.c (aliasing_component_refs_p): Remove ref2_is_decl |