From: Ulrich Weigand Date: Wed, 17 Dec 2003 21:51:57 +0000 (+0000) Subject: re PR target/11992 (Wrong built-in code for memcmp with length 1<<24 only (1<<24... X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=287ff1982c1e70f66d91ad56615a8694e9c09fa9;p=gcc.git re PR target/11992 (Wrong built-in code for memcmp with length 1<<24 only (1<<24)-1 possible for CLCL-Instruction) PR target/11992 * config/s390/s390.md ("*cmpmem_long_64"): Use CLCLE instruction instead of CLCL. ("*cmpmem_long_31"): Likewise. From-SVN: r74752 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index fb94d1f40e6..34aa467a1a1 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,10 @@ +2003-12-17 Ulrich Weigand + + PR target/11992 + * config/s390/s390.md ("*cmpmem_long_64"): Use CLCLE instruction + instead of CLCL. + ("*cmpmem_long_31"): Likewise. + 2003-12-17 Vladimir Makarov * config/ia64/ia64.c: Add more comments about insn bundling. diff --git a/gcc/config/s390/s390.md b/gcc/config/s390/s390.md index 3f6f6b34c4a..4ebaae57022 100644 --- a/gcc/config/s390/s390.md +++ b/gcc/config/s390/s390.md @@ -2080,9 +2080,10 @@ (use (match_dup 2)) (use (match_dup 3))] "TARGET_64BIT" - "clcl\t%0,%1" - [(set_attr "op_type" "RR") - (set_attr "type" "vs")]) + "clcle\t%0,%1,0\;jo\t.-4" + [(set_attr "op_type" "NN") + (set_attr "type" "vs") + (set_attr "length" "8")]) (define_insn "*cmpmem_long_31" [(clobber (match_operand:DI 0 "register_operand" "=d")) @@ -2093,9 +2094,10 @@ (use (match_dup 2)) (use (match_dup 3))] "!TARGET_64BIT" - "clcl\t%0,%1" - [(set_attr "op_type" "RR") - (set_attr "type" "vs")]) + "clcle\t%0,%1,0\;jo\t.-4" + [(set_attr "op_type" "NN") + (set_attr "type" "vs") + (set_attr "length" "8")]) ; Convert condition code to integer in range (-1, 0, 1)