re PR target/11992 (Wrong built-in code for memcmp with length 1<<24 only (1<<24...
authorUlrich Weigand <uweigand@de.ibm.com>
Wed, 17 Dec 2003 21:51:57 +0000 (21:51 +0000)
committerUlrich Weigand <uweigand@gcc.gnu.org>
Wed, 17 Dec 2003 21:51:57 +0000 (21:51 +0000)
PR target/11992
* config/s390/s390.md ("*cmpmem_long_64"): Use CLCLE instruction
instead of CLCL.
("*cmpmem_long_31"): Likewise.

From-SVN: r74752

gcc/ChangeLog
gcc/config/s390/s390.md

index fb94d1f40e60b5c4057d0debc9f24315692dc3e2..34aa467a1a16b6d379e1f5e573d301e1ed094b84 100644 (file)
@@ -1,3 +1,10 @@
+2003-12-17  Ulrich Weigand  <uweigand@de.ibm.com>
+
+       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  <vmakarov@redhat.com>
 
        * config/ia64/ia64.c: Add more comments about insn bundling.
index 3f6f6b34c4a2346a6f5e49f3b983d6f01363638c..4ebaae57022f1280f5c5c8bbf3db5b5cc9e509f3 100644 (file)
    (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"))
    (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)