[AArch64] Promote f16 operations to f32.
authorAhmed Bougacha <ahmed.bougacha@gmail.com>
Fri, 10 Apr 2015 00:08:48 +0000 (00:08 +0000)
committerAhmed Bougacha <ahmed.bougacha@gmail.com>
Fri, 10 Apr 2015 00:08:48 +0000 (00:08 +0000)
commit1ffe7c7d3623335710df4919f377563228fcb6de
treecea38aed2b4a9d673cdd726907c5fdb46ccce053
parentbf105b2d2a10c6802162b9318adba85ecb83d749
[AArch64] Promote f16 operations to f32.

For the most common ones (such as fadd), we already did the promotion.
Do the same thing for all the others.

Currently, we'll just crash/assert on all these operations, as
there's no hardware or libcall support whatsoever.

f16 (half) is specified as an interchange - not arithmetic - format,
and is expected to be promoted to single-precision for arithmetic
operations.

While there, teach the legalizer about promoting some of the (mostly
floating-point) operations that we never needed before.

Differential Revision: http://reviews.llvm.org/D8648
See related discussion on the thread for: http://reviews.llvm.org/D8755

llvm-svn: 234550
llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp
llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
llvm/test/CodeGen/AArch64/f16-instructions.ll [new file with mode: 0644]
llvm/test/CodeGen/AArch64/fp16-instructions.ll [deleted file]