OK /Marcus
On 4 December 2012 10:31, James Greenhalgh <james.greenha...@arm.com> wrote: > > Hi, > > This patch adds support for Vector Shuffle style operations > through support for TARGET_VECTORIZE_VEC_PERM_CONST_OK and > the vec_perm and vec_perm_const standard patterns. > > In this patch we add the framework and support for the > generic tbl instruction. This can be used to handle any > vector permute operation, but we can do a better job for > some special cases. The second patch of this series does > that better job for the ZIP, UZP and TRN instructions. > > Is this OK to commit? > > Thanks, > James Greenhalgh > > --- > gcc/ > > 2012-12-04 James Greenhalgh <james.greenha...@arm.com> > > * config/aarch64/aarch64-protos.h > (aarch64_split_combinev16qi): New. > (aarch64_expand_vec_perm): Likewise. > (aarch64_expand_vec_perm_const): Likewise. > * config/aarch64/aarch64-simd.md (vec_perm_const<mode>): New. > (vec_perm<mode>): Likewise. > (aarch64_tbl1<mode>): Likewise. > (aarch64_tbl2v16qi): Likewise. > (aarch64_combinev16qi): New. > * config/aarch64/aarch64.c > (aarch64_vectorize_vec_perm_const_ok): New. > (aarch64_split_combinev16qi): Likewise. > (MAX_VECT_LEN): Define. > (expand_vec_perm_d): New. > (aarch64_expand_vec_perm_1): Likewise. > (aarch64_expand_vec_perm): Likewise. > (aarch64_evpc_tbl): Likewise. > (aarch64_expand_vec_perm_const_1): Likewise. > (aarch64_expand_vec_perm_const): Likewise. > (aarch64_vectorize_vec_perm_const_ok): Likewise. > (TARGET_VECTORIZE_VEC_PERM_CONST_OK): Likewise. > * config/aarch64/iterators.md > (unspec): Add UNSPEC_TBL, UNSPEC_CONCAT. > (V_cmp_result): Add mapping for V2DF. > > gcc/testsuite/ > > 2012-12-04 James Greenhalgh <james.greenha...@arm.com> > > * lib/target-supports.exp > (check_effective_target_vect_perm): Allow aarch64*-*-*. > (check_effective_target_vect_perm_byte): Likewise. > (check_effective_target_vect_perm_short): Likewise. > (check_effective_target_vect_char_mult): Likewise. > (check_effective_target_vect_extract_even_odd): Likewise. > (check_effective_target_vect_interleave): Likewise.