* 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
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.
(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
;; ::::::::::::::::::::
;; ::