64-bit PowerPC code quality regression

Richard Henderson rth@redhat.com
Fri Sep 7 17:27:00 GMT 2001


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~



More information about the Gcc mailing list