OSDN Git Service

[SelectionDAG] Improve support for promotion of <1 x fX> floating point argument...
authorSimon Pilgrim <llvm-dev@redking.me.uk>
Tue, 2 May 2017 10:33:08 +0000 (10:33 +0000)
committerSimon Pilgrim <llvm-dev@redking.me.uk>
Tue, 2 May 2017 10:33:08 +0000 (10:33 +0000)
commited79276e6b554bef96d3ada2b5cd983dc52f74be
tree4231dc68a00df2e12fad5797e1c2f5a75e3c458e
parent6c9fd8e4c045ecef5a7fbf49532e70580e7d3b0b
[SelectionDAG] Improve support for promotion of <1 x fX> floating point argument types (PR31088)

PR31088 demonstrated that we were assuming that only integers require promotion from <1 x iX> types, when in fact float types may require it as well - in this case half floats.

This patch adds support for extension/truncation for both integer and float types.

Differential Revision: https://reviews.llvm.org/D32391

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@301910 91177308-0d34-0410-b5e6-96231b3b80d8
include/llvm/CodeGen/SelectionDAG.h
lib/CodeGen/SelectionDAG/LegalizeVectorTypes.cpp
lib/CodeGen/SelectionDAG/SelectionDAG.cpp
lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
test/CodeGen/NVPTX/f16-instructions.ll
test/CodeGen/X86/pr31088.ll