This is an archive of the discontinued LLVM Phabricator instance.

[ARM] -mfpu=*-sp-d16 should imply that D registers are available
AbandonedPublic

Authored by miyuki on Nov 11 2019, 9:22 AM.

Details

Summary

When using e.g. the following arch/fpu:

-march=armv8-m.main -mfpu=fpv5-sp-d16

the target feature fpregs64 is not enabled, i.e. D registers are not
allowed in any instruction. Even though 64-bit FP operations are not
available with such FPU option, the 64-bit D registers must still be
accessible (d16 implies that there are 16 D registers). This should
be the case for any *-sp-d16 FPU.

This change also adjusts one MVE test.

Diff Detail

Event Timeline

miyuki created this revision.Nov 11 2019, 9:22 AM
simon_tatham requested changes to this revision.Nov 13 2019, 6:18 AM

As I understand it, this has the effect of making the VMOVD and VMOVDcc instructions (e.g. vmov.f64 d0,d1) legal on targets with single-precision only FP, such as Cortex-M4. But by my reading of the 7-M ARMARM, I don't believe that instruction actually is legal on Cortex-M4.

This revision now requires changes to proceed.Nov 13 2019, 6:18 AM
miyuki abandoned this revision.Nov 13 2019, 10:16 AM