[PATCH 01/25] Handle vectors that don't fit in an integer.
ams@codesourcery.com
ams@codesourcery.com
Wed Sep 5 11:49:00 GMT 2018
GCN vector sizes range between 64 and 512 bytes, none of which have
correspondingly sized integer modes. This breaks a number of assumptions
throughout the compiler, but I don't really want to create modes just for this
purpose.
Instead, this patch fixes up the cases that I've found, so far, such that the
compiler tries something else, or fails to optimize, rather than just ICE.
2018-09-05 Andrew Stubbs <ams@codesourcery.com>
Kwok Cheung Yeung <kcy@codesourcery.com>
Jan Hubicka <jh@suse.cz>
Martin Jambor <mjambor@suse.cz>
gcc/
* combine.c (gen_lowpart_or_truncate): Return clobber if there is
not a integer mode if the same size as x.
(gen_lowpart_for_combine): Fail if there is no integer mode of the
same size.
* expr.c (expand_expr_real_1): Force first operand to be in memory
if it is a vector register and the result is in BLKmode.
* tree-vect-stmts.c (vectorizable_store): Don't ICE when
int_mode_for_size fails.
(vectorizable_load): Likewise.
---
gcc/combine.c | 13 ++++++++++++-
gcc/expr.c | 8 ++++++++
gcc/tree-vect-stmts.c | 8 ++++----
3 files changed, 24 insertions(+), 5 deletions(-)
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0001-Handle-vectors-that-don-t-fit-in-an-integer.patch
Type: text/x-patch
Size: 3506 bytes
Desc: not available
URL: <http://gcc.gnu.org/pipermail/gcc-patches/attachments/20180905/d94b5516/attachment.bin>
More information about the Gcc-patches
mailing list