This is an archive of the discontinued LLVM Phabricator instance.

[ARM] Extract from a VDUP
ClosedPublic

Authored by dmgreen on Apr 23 2020, 6:18 AM.

Details

Summary

If we get into the situation where we are extracting from a VDUP, the extracted value is just the origin, so long as the types match or we can bitcast between the two.

Diff Detail

Event Timeline

dmgreen created this revision.Apr 23 2020, 6:18 AM
Herald added a project: Restricted Project. · View Herald TranscriptMay 4 2020, 5:05 AM
samparker added inline comments.May 6 2020, 12:01 AM
llvm/lib/Target/ARM/ARMISelLowering.cpp
13326

And other small types have already been promoted at this point?

dmgreen marked an inline comment as done.May 6 2020, 2:08 AM
dmgreen added inline comments.
llvm/lib/Target/ARM/ARMISelLowering.cpp
13326

Yeah. A VMOVhr will need to be between an i32 and an f16, which is why these are specially checked. Smaller types could theoretically be handled by the code below, but we wouldn't ever generate a ARMISD::VDUP with illegal arguments.

samparker accepted this revision.May 6 2020, 2:51 AM

OK, LGTM then.

This revision is now accepted and ready to land.May 6 2020, 2:51 AM
This revision was automatically updated to reflect the committed changes.