On 1 February 2012 19:33, Ulrich Weigand Ulrich.Weigand@de.ibm.com wrote:
Ramana Radhakrishnan ramana.radhakrishnan@linaro.org wrote on 01.02.2012 16:28:04:
This patch should be queued for 4.8 .Sounds sensible to me.
OK, thanks for the review!
(As an aside, it might likewise be helpful to update the vec_set
patterns
to allow for memory operands, implemented via vld1.)
Agreed.
The attached patch adds support for vld1 in vec_set as well. (See attached file: diff-gcc-arm-vecsetextractmem)
As a side note, I noticed that the vmov instructions output via vec_set and vec_extract use %? to support conditions in ARM mode; most of the rest of neon.md doesn't use %?, in particular, the patterns where I copied vst1/vld1 from didn't ...
To follow up from last night - please remove the "predicable" attribute on these patterns. Conditional neon is deprecated.
The patterns affected are from a quick grep :
(vec_set<mode>_internal, (vec_setv2di_internal) (vec_set<mode>) (vec_extract<mode>) (vec_extractv2di) (vec_init<mode>) (neon_vget_lane<mode>_zext_internal) (neon_vget_lane<mode>_sext_internal) (neon_vget_lane<mode>_zext_internal) (neon_vget_lane<mode>) (neon_vdup_n<mode>) (neon_vdup_ndi)
There should be never a chance to generate conditional Neon instructions.
I'd like to take this up further on gcc-patches for any further review / comments.
Ramana