]> git.ipfire.org Git - thirdparty/gcc.git/commit
s390: testsuite: Fix vcond-shift.c
authorStefan Schulze Frielinghaus <stefansf@gcc.gnu.org>
Wed, 19 Mar 2025 15:35:12 +0000 (16:35 +0100)
committerStefan Schulze Frielinghaus <stefansf@gcc.gnu.org>
Wed, 19 Mar 2025 15:35:12 +0000 (16:35 +0100)
commit7e947040a48d3156c602e88fb938c7bd44e83b28
tree621731daa9a9835fe4a86adf3cb3fda4c64fab08
parent8fc2bccec330950c11c7c5c54dc8b0b5798a70cf
s390: testsuite: Fix vcond-shift.c

Previously we optimized expressions of the form a < 0 ? -1 : 0 to
(signed)a >> 31 during vcond expanding.  Since r15-1638-gaac00d09859cc5
this is done in match.pd.  The implementation in the back end as well as
in match.pd are basically the same but still distinct.  For the tests in
vcond-shift.c the back end emitted

  (xx - (xx >> 31)) >> 1

whereas now via match.pd

  ((int) ((unsigned int) xx >> 31) + xx) >> 1

which is basically the same.  We just have to adapt the scan-assembler
directives w.r.t. signed/unsigned shifts which is done by this patch.

gcc/testsuite/ChangeLog:

* gcc.target/s390/vector/vcond-shift.c: Adapt to new match.pd
rule and change scan-assembler-times for shifts.
gcc/testsuite/gcc.target/s390/vector/vcond-shift.c