]> git.ipfire.org Git - thirdparty/gcc.git/commit
s390: Fix constraint for insn *cmphi_ccu
authorStefan Schulze Frielinghaus <stefansf@linux.ibm.com>
Wed, 25 Oct 2023 09:18:14 +0000 (11:18 +0200)
committerStefan Schulze Frielinghaus <stefansf@linux.ibm.com>
Mon, 27 Nov 2023 09:23:17 +0000 (10:23 +0100)
commit74a7bb2c508200651451af04ea81f1d7d0856e5d
treebf1520d0b77cfb2f62eb9294afb6bda95a07f6e0
parent221166ad15eb37b047c77118f2eb1c8442eaa27b
s390: Fix constraint for insn *cmphi_ccu

Currently for an unsigned 16-bit comparison between memory and an
immediate where the high bit is set, a clc is emitted.  This is because
the constant is created for mode HI and therefore sign extended.  This
means constraint D does not hold anymore.  Since the mode already
restricts the immediate to 16 bit, it is enough to make use of
constraint n and chop of the high bits in the output template.

gcc/ChangeLog:

* config/s390/s390.md (*cmphi_ccu): For immediate operand 1 make
use of constraint n instead of D and chop of high bits in the
output template.
gcc/config/s390/s390.md