This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: 64-bit PowerPC code quality regression


On Fri, Sep 07, 2001 at 07:13:09PM -0400, David Edelsohn wrote:
> For 64-bit PowerPC (AIX), it produces:
> 
>         li 3,-1
>         rldicr 3,3,0,47

This splitter matches.

(define_split
  [(set (match_operand:DI 0 "gpc_reg_operand" "")
        (match_operand:DI 1 "mask64_operand" ""))]
  "TARGET_POWERPC64 && num_insns_constant (operands[1], DImode) > 1"
  [(set (match_dup 0) (const_int -1))
   (set (match_dup 0)
        (and:DI (rotate:DI (match_dup 0)
                           (const_int 0))
                (match_dup 1)))]
  "")

Since 0xff..ff0000 is mask64_operand, and in num_insns_constant
we have 

          if (mask64_operand (op, mode))
                return 2;


r~


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]