diff options
author | Ilya Leoshkevich <iii@linux.ibm.com> | 2020-10-07 16:51:21 +0200 |
---|---|---|
committer | Ilya Leoshkevich <iii@linux.ibm.com> | 2020-10-12 12:18:53 +0200 |
commit | a1a10a0b8c4e161070f88de3af9d20f9f866a23f (patch) | |
tree | 2bdc90abfa45dffb4990e0adaa86750b9674305d /gcc/tree-vect-patterns.c | |
parent | edafa96b8210227b0c6a2d539aa41ce529805441 (diff) | |
download | gcc-a1a10a0b8c4e161070f88de3af9d20f9f866a23f.zip gcc-a1a10a0b8c4e161070f88de3af9d20f9f866a23f.tar.gz gcc-a1a10a0b8c4e161070f88de3af9d20f9f866a23f.tar.bz2 |
IBM Z: Change vector copysign to use bitwise operations
The vector copysign pattern incorrectly assumes that vector
if_then_else operates on bits, not on elements. This can theoretically
mislead the optimizers. Fix by changing it to use bitwise operations,
like commit 2930bb321794 ("PR94613: Fix vec_sel builtin for IBM Z") did
for vec_sel builtin.
gcc/ChangeLog:
2020-10-07 Ilya Leoshkevich <iii@linux.ibm.com>
* config/s390/s390-protos.h (s390_build_signbit_mask): New
function.
* config/s390/s390.c (s390_contiguous_bitmask_vector_p):
Bitcast the argument to an integral mode.
(s390_expand_vec_init): Do not call
s390_contiguous_bitmask_vector_p with a scalar argument.
(s390_build_signbit_mask): New function.
* config/s390/vector.md (copysign<mode>3): Use bitwise
operations.
Diffstat (limited to 'gcc/tree-vect-patterns.c')
0 files changed, 0 insertions, 0 deletions