]> gcc.gnu.org Git - gcc.git/commit
tree-optimization/98113 - vectorize a sequence of BIT_INSERT_EXPRs
authorRichard Biener <rguenther@suse.de>
Thu, 3 Dec 2020 09:25:14 +0000 (10:25 +0100)
committerRichard Biener <rguenther@suse.de>
Mon, 7 Dec 2020 11:07:12 +0000 (12:07 +0100)
commitebdfd1606da6b5aa586b0cd156b69b659235c9c2
tree5a5649a6f9dd5d39848c76e182968f356e2d32c0
parentcdcbef3c3310a14f2994982b44cb1f8e14c77232
tree-optimization/98113 - vectorize a sequence of BIT_INSERT_EXPRs

This adds the capability to handle a sequence of vector BIT_INSERT_EXPRs
to be vectorized similar as to how we vectorize vector constructors.

2020-12-03  Richard Biener  <rguenther@suse.de>

PR tree-optimization/98113
* tree-vectorizer.h (struct slp_root): New.
(_bb_vec_info::roots): New member.
* tree-vect-slp.c (vect_analyze_slp): Also walk BB info
roots.
(_bb_vec_info::_bb_vec_info): Adjust.
(_bb_vec_info::~_bb_vec_info): Likewise.
(vld_cmp): New.
(vect_slp_is_lane_insert): Likewise.
(vect_slp_check_for_constructors): Match a series of
BIT_INSERT_EXPRs as vector constructor.
(vect_slp_analyze_bb_1): Continue if BB info roots is
not empty.
(vect_slp_analyze_bb_1): Mark the whole BIT_INSERT_EXPR root
sequence as pure_slp.

* gcc.dg/vect/bb-slp-70.c: New testcase.
gcc/testsuite/gcc.dg/vect/bb-slp-70.c [new file with mode: 0644]
gcc/tree-vect-slp.c
gcc/tree-vectorizer.h
This page took 0.071297 seconds and 6 git commands to generate.