This is an archive of the discontinued LLVM Phabricator instance.

[AArch64] Fix operation actions for FP16 vector intrinsics
ClosedPublic

Authored by bryanpkc on Jan 3 2019, 3:16 PM.

Details

Summary

This patch changes the legalization action for some half-precision floating-
point vector intrinsics (FSIN, FLOG, etc.) from Promote to Expand. These ops
are not supported in hardware for half-precision vectors, but promotion is
not always possible (for v8f16 operands). Changing the action to Expand fixes
an assertion failure in the legalizer when the frontend produces such ops.
In addition, a quick microbenchmark shows that, in the v4f16 case,
expanding introduces fewer spills and is therefore slightly faster than
promoting.

Diff Detail

Event Timeline

bryanpkc created this revision.Jan 3 2019, 3:16 PM

Pinging reviewers.

This revision is now accepted and ready to land.Jan 9 2019, 12:48 AM
bryanpkc updated this revision to Diff 181034.Jan 10 2019, 5:12 AM

Removed trailing spaces. NFC.

bryanpkc updated this revision to Diff 181052.Jan 10 2019, 7:04 AM

Rebased on trunk.

This revision was automatically updated to reflect the committed changes.