[PATCH][testsuite][ARM] Properly figure -mfloat-abi option for crypto tests
Mon Jan 13 14:52:00 GMT 2014
On 13/01/14 13:57, Christophe Lyon wrote:
> Hi Kyrill,
> Your patch fixes most of the problems I noticed, however, it makes the
> compiler crash on vld1Q_dupp64 when the target is big-endian:
> --with-target= armeb-none-linux-gnueabihf
> In function 'test_vld1Q_dupp64':
> error: unrecognizable insn:
> (insn 30 29 16 (set (subreg:DI (reg:V2DI 48 d16 [orig:110 D.14607 ] ) 0)
> (subreg:DI (reg:V2DI 48 d16 [orig:110 D.14607 ] ) 8))
Hmmm... This seems to be a failure in the vld1Q_dupu64 and vld1Q_dups64
intrinsics as well that were not part of my crypto patches and were likely
ICEing before that in big-endian. The problem seems that we end up splitting
into subregs after register allocation, which causes the ICE. The cuprit is the
neon_vld1_dupv2di. I think it can be modified to directly use the hard registers
after reload instead of generating their low and high parts.
I'll test a patch...
> internal compiler error: in extract_insn, at recog.c:2168
> 0xa9e560 _fatal_insn(char const*, rtx_def const*, char const*, int, char const*)
> 0xa9e59f _fatal_insn_not_found(rtx_def const*, char const*, int, char const*)
> 0xa58fef extract_insn(rtx_def*)
> 0xa592ec extract_insn_cached(rtx_def*)
> 0x7e5309 cleanup_subreg_operands(rtx_def*)
> 0xa5845f split_insn
> 0xa585b7 split_all_insns_noflow()
> 0xe31941 arm_reorg
> 0xa9e240 rest_of_handle_machine_reorg
> 0xa9e26e execute
> On 10 January 2014 12:31, Richard Earnshaw <firstname.lastname@example.org> wrote:
>> On 09/01/14 17:02, Kyrill Tkachov wrote:
>>> Hi all,
>>> When adding the testsuite options for the crypto tests we need to make sure that
>>> don't end up adding -mfloat-abi=softfp to a hard-float target like
>>> arm-none-linux-gnueabihf. This patch adds that code to figure out which
>>> -mfpu/-mfloat-abi combination to use in a similar approach to the NEON tests.
>>> This patch addresses the same failures that Christophe mentioned in
>>> but with this patch we can get those tests to PASS on arm-none-linux-gnueabihf
>>> instead of being just UNSUPPORTED.
>>> Tested arm-none-linux-gnueabihf and arm-none-eabi.
>>> Ok for trunk?
>>> 2014-01-09 Kyrylo Tkachov <email@example.com>
>>> * lib/target-supports.exp
>>> (check_effective_target_arm_crypto_ok_nocache): New.
>>> (check_effective_target_arm_crypto_ok): Use above procedure.
>>> (add_options_for_arm_crypto): Use et_arm_crypto_flags.
More information about the Gcc-patches