Re: [ARM] Use vector wide add for mixed-mode adds

2016-02-14 Thread Michael Collison
Hi Kyrill, I made the following changes based on your comments: 1. I rebased the patch so that it applies cleanly on trunk 2. Fixed the dg-add-options as requested to my new test cases 3. Fixed the GNU style issues identified by ./contrib/check_GNU_style.sh The failure you are seeing on slp-red

Re: [ARM] Use vector wide add for mixed-mode adds

2016-02-09 Thread Kyrill Tkachov
Hi Michael, On 17/12/15 00:02, Michael Collison wrote: Kyrill, I have attached a patch that address your comments. The only change I would ask you to re-consider renaming is the function 'bool aarch32_simd_check_vect_par_cnst_half'. This function was copied from the aarch64 port and I thought i

Re: [ARM] Use vector wide add for mixed-mode adds

2015-12-16 Thread Michael Collison
Kyrill, I have attached a patch that address your comments. The only change I would ask you to re-consider renaming is the function 'bool aarch32_simd_check_vect_par_cnst_half'. This function was copied from the aarch64 port and I thought it as important to match the naming for maintenance pu

Re: [ARM] Use vector wide add for mixed-mode adds

2015-12-10 Thread Kyrill Tkachov
Hi Michael, A few comments while I look deeper into this patch... On 30/11/15 01:18, Michael Collison wrote: This is a modified version of my previous patch that supports vector wide add. I added support for vaddw on big endian when generating the parallel operand for the vector select. The

Re: [ARM] Use vector wide add for mixed-mode adds

2015-11-29 Thread Michael Collison
This is a modified version of my previous patch that supports vector wide add. I added support for vaddw on big endian when generating the parallel operand for the vector select. There are four failing test cases on arm big endian with similar code. They are: gcc.dg/vect/vect-outer-4f.c -f

Re: [ARM] Use vector wide add for mixed-mode adds

2015-10-21 Thread Charles Baylis
On 20 October 2015 at 08:54, Michael Collison wrote: > I want to ask a question about existing patterns in neon.md that utilize the > vec_select and all the lanes as my example does: Why are the following > pattern not matched if the target is big endian? > (define_insn "neon_vec_unpack_lo_" >

Re: [ARM] Use vector wide add for mixed-mode adds

2015-10-20 Thread Michael Collison
Hi Kyrill, Since your email I have done the following: 1. Added the ENDIAN_LANE_N to the define_expand patterns for big endian targets. The big endian patches produced no change in the test results. I still have several execution failures with targeting big endian with lto enabled. 2. I dif

Re: [ARM] Use vector wide add for mixed-mode adds

2015-10-08 Thread Kyrill Tkachov
Hi Michael, On 01/10/15 11:05, Michael Collison wrote: Kyrill, I have modified the patch to address your comments. I also modified check_effective_target_vect_widen_sum_hi_to_si_pattern in target-supports.exp to indicate that arm neon supports vector widen sum of HImode to SImode. This resolved

Re: [ARM] Use vector wide add for mixed-mode adds

2015-10-01 Thread Michael Collison
Kyrill, I have modified the patch to address your comments. I also modified check_effective_target_vect_widen_sum_hi_to_si_pattern in target-supports.exp to indicate that arm neon supports vector widen sum of HImode to SImode. This resolved several test suite failures. Successfully tested on

Re: [ARM] Use vector wide add for mixed-mode adds

2015-09-23 Thread Kyrill Tkachov
Hi Michael, On 23/09/15 00:52, Michael Collison wrote: This is a modified version of the previous patch that removes the documentation and read-md.c fixes. These patches have been submitted separately and approved. This patch is designed to address code that was not being vectorized due to miss

Re: [ARM] Use vector wide add for mixed-mode adds

2015-09-22 Thread Michael Collison
This is a modified version of the previous patch that removes the documentation and read-md.c fixes. These patches have been submitted separately and approved. This patch is designed to address code that was not being vectorized due to missing widening patterns in the ARM backend. Code such as

Re: [ARM] Use vector wide add for mixed-mode adds

2015-08-24 Thread Ramana Radhakrishnan
On 22/08/15 22:38, Michael Collison wrote: > This is a modified version of the previous patch that addresses issue raised > by Ramana. The patch now uses vect_select instead of unspec. > > I had to fix an unrelated issue to the read_name function in read-md.c. The > fix corrects broken support

Re: [ARM] Use vector wide add for mixed-mode adds

2015-08-22 Thread Michael Collison
This is a modified version of the previous patch that addresses issue raised by Ramana. The patch now uses vect_select instead of unspec. I had to fix an unrelated issue to the read_name function in read-md.c. The fix corrects broken support for mode iterators inside '<>'. Without this fix sup

Re: [ARM] Use vector wide add for mixed-mode adds

2015-08-18 Thread Ramana Radhakrishnan
On 18/08/15 08:53, Michael Collison wrote: > > This patch is designed to address code that was not being vectorized due to > missing widening patterns in the ARM backend. Code such as: > > int t6(int len, void * dummy, short * __restrict x) > { > len = len & ~31; > int result = 0; > __as