[AArch64] Handle vec4, vec8, vec16 *itofp for half
authorPirama Arumuga Nainar <pirama@google.com>
Thu, 23 Apr 2015 17:16:27 +0000 (17:16 +0000)
committerPirama Arumuga Nainar <pirama@google.com>
Thu, 23 Apr 2015 17:16:27 +0000 (17:16 +0000)
commitb18815354d9313810f42f8bca688ac5d3f93b02c
tree3c962d93a1723a1dd9d1cc1746dba20ecee2da65
parent0867b151c94098b7282530827b7b27f18a03bef9
[AArch64] Handle vec4, vec8, vec16 *itofp for half

Summary:
Set operation action for SINT_TO_FP and UINT_TO_FP nodes with v4i32,
v8i8, v8i16 inputs to allow promotion of v4f16 results.

Add tests for sitofp and uitofp for vec4, vec8, vec16, and i8, i16, i32,
and i64 vectors.  Only missing tests are for v16i8 and v16i16 as the
shift operations are too complicated to write a proper check sequence.

The conversions from v4i64 to v4f16 do not depend on this patch - v4i64
is split and the conversion gets handled while lowering v2i64.  I am
adding a test here for completeness.

Reviewers: aemerson, rengolin, ab, jmolloy, srhines

Subscribers: rengolin, aemerson, llvm-commits

Differential Revision: http://reviews.llvm.org/D9166

llvm-svn: 235609
llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
llvm/test/CodeGen/AArch64/fp16-v16-instructions.ll [new file with mode: 0644]
llvm/test/CodeGen/AArch64/fp16-v4-instructions.ll
llvm/test/CodeGen/AArch64/fp16-v8-instructions.ll