[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)
commitc9f2596abc92210ad3f51d7c766828f6535e78a7
tree184da7c6950a2ab71c0ff2b582703a50aebee902
parent2605531fe81699773689501dac8b8303ade6bfab
[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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@237004 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Target/X86/X86ISelLowering.cpp
test/CodeGen/X86/half.ll