This is an archive of the discontinued LLVM Phabricator instance.

[ARM] earlyclobber cross beat MVE instructions
ClosedPublic

Authored by dmgreen on Sep 11 2019, 12:52 PM.

Details

Summary

rL367544 added @earlyclobbers for the MVE VREV64 instruction. This adds it for a number of other 32bit instructions that are similarly unpredictable if the destination equals the source (due to the cross beat nature of the instructions).
This includes:

VCADD.f32
VCADD.i32
VCMUL.f32
VHCADD.s32
VMULLT/B.s/u32
VQDMLADH{X}.s32
VQRDMLADH{X}.s32
VQDMLSDH{X}.s32
VQRDMLSDH{X}.s32
VQDMULLT/B.s32 with Qm and Rm

No tests here as I believe these would require intrinsics (or very interesting codegen) to manifest. The tests will follow naturally as the intrinsics are added.

Diff Detail

Repository
rL LLVM

Event Timeline

dmgreen created this revision.Sep 11 2019, 12:52 PM
Herald added a project: Restricted Project. · View Herald TranscriptSep 11 2019, 12:52 PM
This revision is now accepted and ready to land.Sep 13 2019, 1:08 AM
This revision was automatically updated to reflect the committed changes.