This is an archive of the discontinued LLVM Phabricator instance.

[SVE] Ensure fixed length vector fptrunc operations bigger than NEON are not considered legal.
ClosedPublic

Authored by paulwalker-arm on Jul 10 2020, 9:21 AM.

Diff Detail

Event Timeline

paulwalker-arm created this revision.Jul 10 2020, 9:21 AM

I've no illusions about there being other omissions but this patch resolves the last of the functional issues for the test set I've been measuring against. I'll update and abandon the POC patches (D71760 & D71767) accordingly.

paulwalker-arm marked an inline comment as done.Jul 10 2020, 9:29 AM
paulwalker-arm added inline comments.
llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
966

When doing the FP_ROUND work I realised there are no truncates with a result type of v2i32 that can have a legal type that is bigger than 128bit.

efriedma accepted this revision.Jul 10 2020, 2:26 PM

LGTM with one minor comment

llvm/test/CodeGen/AArch64/sve-fixed-length-fp-converts.ll
34

Please stick a check in here for the scalar fptrunc, so we're at least testing something.

This revision is now accepted and ready to land.Jul 10 2020, 2:26 PM

Updated tests to ensure the correct number of fcvt instructions are emitted.

This revision was automatically updated to reflect the committed changes.