From 51094457ec3361ca6e5c8a14d42810ae13515c95 Mon Sep 17 00:00:00 2001 From: Jan Beulich Date: Mon, 5 Dec 2005 08:38:20 +0000 Subject: [PATCH] ia64.md (rotlsi3_internal): Don't split if rotating by 16 bits. 2005-12-05 Jan Beulich * config/ia64/ia64.md (rotlsi3_internal): Don't split if rotating by 16 bits. Provide insn pattern for this case. From-SVN: r108047 --- gcc/ChangeLog | 5 +++++ gcc/config/ia64/ia64.md | 7 ++++--- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 5ba3377..d397e4f 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,10 @@ 2005-12-05 Jan Beulich + * 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 + * libgcc2.c (__popcountSI2): Don't use wide type for iterator and result. (__popcountDI2): Likewise. diff --git a/gcc/config/ia64/ia64.md b/gcc/config/ia64/ia64.md index 989a4fd..afe3e53 100644 --- a/gcc/config/ia64/ia64.md +++ b/gcc/config/ia64/ia64.md @@ -4453,8 +4453,8 @@ (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)))) @@ -4463,7 +4463,8 @@ { operands[3] = gen_rtx_REG (DImode, REGNO (operands[0])); operands[2] = GEN_INT (32 - INTVAL (operands[2])); -}) +} + [(set_attr "itanium_class" "mmshf")]) ;; :::::::::::::::::::: ;; :: -- 2.7.4