OSDN Git Service

[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)
commit1810ca3110f774819d4ff84463922a62574fd547
tree8c308f9b25e0b0369f8dd132d83102e161a78bfa
parentc58b8f0b652198870a776499af5d3286b07dd7f6
[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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@234550 91177308-0d34-0410-b5e6-96231b3b80d8
lib/CodeGen/SelectionDAG/LegalizeDAG.cpp
lib/Target/AArch64/AArch64ISelLowering.cpp
test/CodeGen/AArch64/f16-instructions.ll [new file with mode: 0644]
test/CodeGen/AArch64/fp16-instructions.ll [deleted file]