[PATCH] D56296: [AArch64] Fix operation actions for FP16 vector intrinsics

Bryan Chan via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Jan 3 15:17:00 PST 2019


bryanpkc created this revision.
bryanpkc added reviewers: t.p.northover, SjoerdMeijer.
Herald added subscribers: llvm-commits, kristof.beyls, javed.absar.

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.


Repository:
  rL LLVM

https://reviews.llvm.org/D56296

Files:
  lib/Target/AArch64/AArch64ISelLowering.cpp
  test/CodeGen/AArch64/arm64-vfloatintrinsics.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D56296.180157.patch
Type: text/x-patch
Size: 24577 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20190103/4d4ee52e/attachment.bin>


More information about the llvm-commits mailing list