diff options
author | Andrew Stubbs <ams@codesourcery.com> | 2023-10-20 16:26:51 +0100 |
---|---|---|
committer | Andrew Stubbs <ams@codesourcery.com> | 2023-11-10 11:54:59 +0000 |
commit | a5922427c29fad177251d89cc946d1c5bfc135eb (patch) | |
tree | 7cf8fc82c35aa1ea454ec1cfad53004b84c4f726 /gcc/fold-const.cc | |
parent | e24b0fed9234716c146aaf6f8c1b39170e43a6f3 (diff) | |
download | gcc-a5922427c29fad177251d89cc946d1c5bfc135eb.zip gcc-a5922427c29fad177251d89cc946d1c5bfc135eb.tar.gz gcc-a5922427c29fad177251d89cc946d1c5bfc135eb.tar.bz2 |
vect: Don't set excess bits in unform masks
AVX ignores any excess bits in the mask (at least for vector sizes >=8), but
AMD GCN magically uses a larger vector than was intended (the smaller sizes are
"fake"), leading to wrong-code.
This patch fixes amdgcn execution failures in gcc.dg/vect/pr81740-1.c,
gfortran.dg/c-interop/contiguous-1.f90,
gfortran.dg/c-interop/ff-descriptor-7.f90, and others.
gcc/ChangeLog:
* expr.cc (store_constructor): Add "and" operation to uniform mask
generation.
Diffstat (limited to 'gcc/fold-const.cc')
0 files changed, 0 insertions, 0 deletions