aboutsummaryrefslogtreecommitdiff
path: root/gcc/builtins.c
diff options
context:
space:
mode:
authorRichard Sandiford <richard.sandiford@arm.com>2019-12-04 13:14:20 +0000
committerRichard Sandiford <rsandifo@gcc.gnu.org>2019-12-04 13:14:20 +0000
commit7b86aaf45c00ec038a0da003f41d5334a00e603c (patch)
tree835dc708734a21ac420210c3dda56434cbe3b63f /gcc/builtins.c
parent0849cdae714ddf056a4944f31eef53a465f1bcd0 (diff)
downloadgcc-7b86aaf45c00ec038a0da003f41d5334a00e603c.zip
gcc-7b86aaf45c00ec038a0da003f41d5334a00e603c.tar.gz
gcc-7b86aaf45c00ec038a0da003f41d5334a00e603c.tar.bz2
Fix VIEW_CONVERT_EXPRs for VECTOR_BOOLEAN_TYPE_Ps
In r278410 I added code to handle VIEW_CONVERT_EXPRs between variable-length vectors. This included support for decoding a VECTOR_BOOLEAN_TYPE_P with subbyte elements. However, it turns out that we were already mishandling such bool vectors for fixed-length vectors: we treated each element as a stand-alone byte instead of putting multiple elements into the same byte. I think in principle this could have been an issue for AVX512 as well. This patch adds encoding support for boolean vectors and reuses a version of the new decode support for fixed-length vectors. 2019-12-04 Richard Sandiford <richard.sandiford@arm.com> gcc/ * fold-const.c (native_encode_vector_part): Handle VECTOR_BOOLEAN_TYPE_Ps that have subbyte precision. (native_decode_vector_tree): Delete, moving the bulk of the code to... (native_interpret_vector_part): ...this new function. Use a pointer and length instead of a vec<> and start index. (native_interpret_vector): Use native_interpret_vector_part. (fold_view_convert_vector_encoding): Likewise. gcc/testsuite/ * gcc.target/aarch64/sve/acle/general/whilelt_5.c: New test. From-SVN: r278964
Diffstat (limited to 'gcc/builtins.c')
0 files changed, 0 insertions, 0 deletions