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 ...
What's the issue with this? Should there be %? everywhere, or at least used with the vst1/vld1 instructions in vec_set/vec_extract?
B.t.w. I'm wondering how I can properly test:
- that the NEON intrinsics still work
The intrinsics tests in gcc.target/arm and gcc.target/arm/neon are the only that we have today that we can run reliably. The other option is the tests from ST but as you've discovered they need the ARM tools.
Those show no regressions with (either version of) the patch.
- that everything works on big-endian
We'll have to put together a big-endian toolchain and test on hardware. qemu doesn't support BE8 mode today and in today's world this is best tested bare-metal on a Fast-Model or on actual hardware both of which will need bring up in terms of dejagnu glue. We're not set up for either today and will probably have to spend some effort in doing this.
Ah, OK. Maybe another topic for discussion next week ...
Mit freundlichen Gruessen / Best Regards
Ulrich Weigand
-- Dr. Ulrich Weigand | Phone: +49-7031/16-3727 STSM, GNU compiler and toolchain for Linux on System z and Cell/B.E. IBM Deutschland Research & Development GmbH Vorsitzende des Aufsichtsrats: Martina Koederitz | Geschäftsführung: Dirk Wittkopp Sitz der Gesellschaft: Böblingen | Registergericht: Amtsgericht Stuttgart, HRB 243294