[X86] Updates to X86 backend for f16 promotion
authorPirama Arumuga Nainar <pirama@google.com>
Mon, 11 May 2015 17:14:39 +0000 (17:14 +0000)
committerPirama Arumuga Nainar <pirama@google.com>
Mon, 11 May 2015 17:14:39 +0000 (17:14 +0000)
commitaf171e7720ec801d08e1ef2971b32b5999a30c94
treeb8e8cc9a4fcaf05740d43f67251fc2c0828d7c3b
parentad25da87b5ab60496e9b192282a88e7fd791d0d7
[X86] Updates to X86 backend for f16 promotion

Summary:
r235215 adds support for f16 to be considered as a load/store type and
promote f16 operations to f32.

This patch has miscellaneous fixes for the X86 backend so all f16
operations are handled:
1. Set loadextaction for f16 vectors to expand.
2. Handle FP_EXTEND in a switch statement when handling v2f32
3. Do not fold (FP_TO_SINT (load f16)) into FP_TO_INT*_IN_MEM or
(store (SINT_TO_FP )) to a FILD.

Tests included.

Reviewers: ab, srhines, delena

Subscribers: llvm-commits

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

llvm-svn: 237004
llvm/lib/Target/X86/X86ISelLowering.cpp
llvm/test/CodeGen/X86/half.ll