On Wed, Jan 26, 2011 at 3:54 AM, Peter Maydell peter.maydell@linaro.org wrote:
Some news from the qemu mailing list that I think might be of interest to gcc folks here:
Christophe Lyon from ST has kindly released a large set of test cases of Neon intrinsics: http://gitorious.org/arm-neon-tests/arm-neon-tests (the tests themselves are more aimed at testing qemu, so they just produce output to be compared against a reference generated from running on hardware).
However they don't currently compile with gcc (but are ok with armcc). From the README:
# The tests currently fail to build with GCC/ARM: # - no support for Neon_Overflow/fpsrc register # - ICE when compiling ref_vldX.c, ref_vldX_lane.c, ref_vstX_lane.c
gcc-linaro-2011.01 no longer ICEs.
# - fails to compile vst1_lane.c
The particular error is:
In file included from ref_vst1_lane.c:27:0: .../4.5.2/include/arm_neon.h: In function 'exec_vst1_lane': .../4.5.2/include/arm_neon.h:8424:33: error: argument must be a constant .../4.5.2/include/arm_neon.h:8448:33: error: argument must be a constant
A bit of bisection shows that these two lines:
TEST_VST1_LANE(q, int, s, 8, 16, 15); TEST_VST1_LANE(q, uint, u, 8, 16, 10);
are the cause. The other, similar lines are fine.
# - missing include files: dspfns.h, armdsp.h
dspfns.h is: https://bugs.launchpad.net/gcc-linaro/+bug/625256
armdsp.h isn't tracked anywhere. Both of these are ARM specific and we should talk about it on Monday.
Maybe it's worth somebody having a look at this, at least enough to find out whether the ICEs are things we already know about or have perhaps already fixed in linaro gcc?
Richard Sandiford, could you have a look at the vst1_lane faults?
-- Michael