diff options
author | Ahmed Bougacha <ahmed.bougacha@gmail.com> | 2016-04-19 17:54:29 +0000 |
---|---|---|
committer | Ahmed Bougacha <ahmed.bougacha@gmail.com> | 2016-04-19 17:54:29 +0000 |
commit | 40a34c2e2af8eaabfac246c9801af09a4e478dc1 (patch) | |
tree | db13910628ad91717c9c90b31a4851c3075abf48 /llvm/lib/AsmParser/LLParser.cpp | |
parent | 8862cae75ba0bb2dbfc7bc1d5ca0e0a45c408387 (diff) | |
download | bcm5719-llvm-40a34c2e2af8eaabfac246c9801af09a4e478dc1.tar.gz bcm5719-llvm-40a34c2e2af8eaabfac246c9801af09a4e478dc1.zip |
[CodeGen] Widen non-power-of-2 vector HFA base types.
Currently, for the ppc64--gnu and aarch64 ABIs, we recognize:
typedef __attribute__((__ext_vector_type__(3))) float v3f32;
typedef __attribute__((__ext_vector_type__(16))) char v16i8;
struct HFA {
v3f32 a;
v16i8 b;
};
as an HFA. Since the first type encountered is used as the base type,
we pass the HFA as:
[2 x <3 x float>]
Which leads to incorrect IR (relying on padding values) when the
second field is used.
Instead, explicitly widen the vector (after size rounding) in
isHomogeneousAggregate.
Differential Revision: http://reviews.llvm.org/D18998
llvm-svn: 266784
Diffstat (limited to 'llvm/lib/AsmParser/LLParser.cpp')
0 files changed, 0 insertions, 0 deletions