On 1 February 2012 23:08, Ramana Radhakrishnan ramana.radhakrishnan@linaro.org wrote:
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 ...
Thanks for following up with that - yes you make a useful small point here. Neon doesn't support conditionals so you are right the %? is superfluous there. In theory you can put the neon instructions in IT blocks but that is deprecated by the architecture and is in general not recommended. In fact on certain implementations while these instructions will be supported "architecturally" performance will be terrible. However because the pattern has a non- "none" neon_type attribute and is not marked predicable, conditional execution will never pick this up.
I realize I was wrong in this case - the original pattern was marked predicable. I want to go back and think about this one.
Ramana