]> git.ipfire.org Git - thirdparty/gcc.git/commit
s390: Fixup builtins vec_rli and verll
authorStefan Schulze Frielinghaus <stefansf@linux.ibm.com>
Mon, 27 Nov 2023 11:51:39 +0000 (12:51 +0100)
committerStefan Schulze Frielinghaus <stefansf@linux.ibm.com>
Mon, 27 Nov 2023 11:51:39 +0000 (12:51 +0100)
commitd1818e2f16ba8f011d9b3e5813d5040e6523955f
treeeec79f5876576926246dad35f7f79fe018d91ec3
parent06280a906cb3dc80cf5e07cf3335b758848d488d
s390: Fixup builtins vec_rli and verll

Commit 248df13b966f46649e16dc3c8c92b263790ef503 restricted the rotate
count to immediates.  Although the documentation of vec_rli (Vector
Element Rotate Left Immediate) can be read as if it where restricted to
immediates, this is not the case.  Thus, revert this commit.

In order to finally allow register operands, the rotate count must be of
type unsigned char since the expander expects it to be of mode QI.  The
previously used type unsigned integer worked out for immediates since
those are of VOID mode anyway.

gcc/ChangeLog:

* config/s390/s390-builtin-types.def: Remove types.
* config/s390/s390-builtins.def (O_U64): Remove 64-bit literal support.
Don't restrict s390_vec_rli and s390_verll[bhfg] to immediates.
* config/s390/s390.cc (s390_const_operand_ok): Remove 64-bit
literal support.
gcc/config/s390/s390-builtin-types.def
gcc/config/s390/s390-builtins.def
gcc/config/s390/s390.cc