This is an archive of the discontinued LLVM Phabricator instance.

[ARM] VCVTT instruction selection
ClosedPublic

Authored by dmgreen on Jun 10 2020, 5:33 AM.

Details

Summary

We current extract and convert from a top lane of a f16 vector using a VMOVX;VCVTB pair. We can simplify that to use a single VCVTT. The pattern is mostly copied from a vector extract pattern, but produces a VCVTTHS f32 directly.

I had to move some code around so that ARMInstrVFP had access to the required pattern frags that were previously part of ARMInstrNEON. I could also split the pattern into MVE and NEON separately if that is better. The v8f16 is currently a bit "MVE-y", but seems to apply fine for NEON.

Diff Detail

Event Timeline

dmgreen created this revision.Jun 10 2020, 5:33 AM
ostannard accepted this revision.Jun 10 2020, 6:34 AM

LGTM. Maybe we should rename MQPR and DPR_VFP2 since they're not really specific to those architectures, but obviously not in this patch.

This revision is now accepted and ready to land.Jun 10 2020, 6:34 AM
This revision was automatically updated to reflect the committed changes.