HomePhabricator

[AArch64] Fix operation actions for FP16 vector intrinsics

Authored by bryanpkc on Jan 10 2019, 7:02 AM.

Description

[AArch64] Fix operation actions for FP16 vector intrinsics

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.

Reviewers: t.p.northover, SjoerdMeijer

Reviewed By: SjoerdMeijer

Subscribers: javed.absar, kristof.beyls, llvm-commits

Differential Revision: https://reviews.llvm.org/D56296

llvm-svn: 350825

Details

Committed
bryanpkcJan 10 2019, 7:02 AM
Reviewer
SjoerdMeijer
Differential Revision
D56296: [AArch64] Fix operation actions for FP16 vector intrinsics
Parents
rG0552376cc833: [LLD][ELF] - Fix the test cases after r350823.
Branches
Unknown
Tags
Unknown