-
- Downloads
arm: Implement vec_perm and vec_perm_const for NEON.
* config/arm/arm.c (arm_vectorize_vec_perm_const_ok, TARGET_VECTORIZE_VEC_PERM_CONST_OK, neon_split_vcombine, MAX_VECT_LEN, struct expand_vec_perm_d, arm_expand_vec_perm_1, arm_expand_vec_perm, arm_evpc_neon_vuzp, arm_evpc_neon_vzip, arm_evpc_neon_vrev, arm_evpc_neon_vtrn, arm_evpc_neon_vtbl, arm_expand_vec_perm_const_1, arm_expand_vec_perm_const): New. * config/arm/arm-protos.h: Update. * config/arm/neon.md (UNSPEC_VCONCAT): New. (*neon_vswp<VDQX>): New. (neon_vcombine<VDX>): Use neon_split_vcombine. (neon_vtbl1v16qi, neon_vtbl2v16qi, neon_vcombinev16qi): New. * config/arm/vec-common.md (vec_perm_const<VALL>): New. (vec_perm<VE>): New. testsuite/ * lib/target-supports.exp (check_effective_target_vect_perm, check_effective_target_vect_perm_byte, check_effective_target_vect_perm_short): Enable for arm neon. From-SVN: r183051
Showing
- gcc/ChangeLog 16 additions, 0 deletionsgcc/ChangeLog
- gcc/config/arm/arm-protos.h 4 additions, 0 deletionsgcc/config/arm/arm-protos.h
- gcc/config/arm/arm.c 565 additions, 2 deletionsgcc/config/arm/arm.c
- gcc/config/arm/neon.md 104 additions, 40 deletionsgcc/config/arm/neon.md
- gcc/config/arm/vec-common.md 27 additions, 1 deletiongcc/config/arm/vec-common.md
- gcc/testsuite/ChangeLog 6 additions, 0 deletionsgcc/testsuite/ChangeLog
- gcc/testsuite/lib/target-supports.exp 7 additions, 4 deletionsgcc/testsuite/lib/target-supports.exp
Loading
Please register or sign in to comment