OSDN Git Service

2005-12-05 Jan Beulich <jbeulich@novell.com>
authorjbeulich <jbeulich@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 5 Dec 2005 08:38:20 +0000 (08:38 +0000)
committerjbeulich <jbeulich@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 5 Dec 2005 08:38:20 +0000 (08:38 +0000)
* config/ia64/ia64.md (rotlsi3_internal): Don't split if rotating by
16 bits. Provide insn pattern for this case.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@108047 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/config/ia64/ia64.md

index 5ba3377..d397e4f 100644 (file)
@@ -1,5 +1,10 @@
 2005-12-05  Jan Beulich  <jbeulich@novell.com>
 
+       * config/ia64/ia64.md (rotlsi3_internal): Don't split if rotating by
+       16 bits. Provide insn pattern for this case.
+
+2005-12-05  Jan Beulich  <jbeulich@novell.com>
+
        * libgcc2.c (__popcountSI2): Don't use wide type for iterator and
        result.
        (__popcountDI2): Likewise.
index 989a4fd..afe3e53 100644 (file)
        (rotate:SI (match_operand:SI 1 "gr_register_operand" "r")
                   (match_operand:SI 2 "shift_32bit_count_operand" "n")))]
   ""
-  "#"
-  "reload_completed"
+  "mux2 %0 = %1, 0xe1"
+  "reload_completed && INTVAL (operands[2]) != 16"
   [(set (match_dup 3)
        (ior:DI (zero_extend:DI (match_dup 1))
                (ashift:DI (zero_extend:DI (match_dup 1)) (const_int 32))))
 {
   operands[3] = gen_rtx_REG (DImode, REGNO (operands[0]));
   operands[2] = GEN_INT (32 - INTVAL (operands[2]));
-})
+}
+  [(set_attr "itanium_class" "mmshf")])
 \f
 ;; ::::::::::::::::::::
 ;; ::