summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/ARM/Disassembler/ARMDisassembler.cpp
diff options
context:
space:
mode:
authorMikhail Maltsev <mikhail.maltsev@arm.com>2019-06-18 14:34:27 +0000
committerMikhail Maltsev <mikhail.maltsev@arm.com>2019-06-18 14:34:27 +0000
commita45292cbfd24cea9b0f0927727295a82d99cc40b (patch)
tree8e0fe14400afbf8ef75c583c8ef7891a95909037 /llvm/lib/Target/ARM/Disassembler/ARMDisassembler.cpp
parent74c83649547c270106ceaeb50ac9317ad17d0621 (diff)
downloadbcm5719-llvm-a45292cbfd24cea9b0f0927727295a82d99cc40b.tar.gz
bcm5719-llvm-a45292cbfd24cea9b0f0927727295a82d99cc40b.zip
[CodeGen][ARM] Fix FP16 vector coercion
Summary: When a function argument or return type is a homogeneous aggregate which contains an FP16 vector but the target does not support FP16 operations natively, the type must be converted into an array of integer vectors by then front end (otherwise LLVM will handle FP16 vectors incorrectly by scalarizing them and promoting FP16 to float, see https://reviews.llvm.org/D50507). Currently the logic for checking whether or not a given homogeneous aggregate contains FP16 vectors is incorrect: it only looks at the type of the first vector. This patch fixes the issue by adding a new method ARMABIInfo::containsAnyFP16Vectors and using it. The traversal logic of this method is largely the same as in ABIInfo::isHomogeneousAggregate. Reviewers: eli.friedman, olista01, ostannard Reviewed By: ostannard Subscribers: ostannard, john.brawn, javed.absar, kristof.beyls, pbarrio, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D63437 llvm-svn: 363687
Diffstat (limited to 'llvm/lib/Target/ARM/Disassembler/ARMDisassembler.cpp')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud