This is the mail archive of the gcc-patches@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]
Other format: [Raw text]

Re: subreg rtl documentation



(define_insn "clztidi2"
  [(set (match_operand:TI 0 "register_operand" "=d")
        (ior:TI
          (ashift:TI
            (zero_extend:TI
              (xor:DI (match_operand:DI 1 "register_operand" "d")
                      (lshiftrt (match_operand:DI 2 "const_int_operand" "")
                                (subreg:SI (clz:DI (match_dup 1)) 4))))

            (const_int 64))
          (zero_extend:TI (clz:DI (match_dup 1)))))
   (clobber (reg:CC CC_REGNUM))]

We don't allow (clz:SI (reg:DI X)), so this may well fall under "pattern recognized as combine".


I came to the conclusion that the only really bogus usage however is subregs of mems that are matched by register_operand. They are generated by combine because of LOAD_EXTEND_OP, and they ought to disappear; everything else can stay.

Paolo


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