This is the mail archive of the gcc-bugs@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]

[Bug bootstrap/78390] [7 Regression] Bootstrap failure: match.pd: cannot determine type of operand


https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78390

--- Comment #21 from Dominik Vogt <vogt at linux dot vnet.ibm.com> ---
(In reply to Michael Matz from comment #16)
> Uhh:
> 
>  Successfully matched this instruction:
>  (set (subreg:DI (reg:SI 73) 0)
> -    (lshiftrt:DI (reg/v:DI 63 [ X ])
> -        (const_int 56 [0x38])))
> +    (zero_extract:DI (reg/v:DI 63 [ X ])
> +        (const_int 32 [0x20])
> +        (const_int -24 [0xffffffffffffffe8])))

Why does it do this, shouldn't be this just "(zero_extract (reg) (8) (0))"? 
Zero extending that to 32 or 64 bits is built into "zero_extract", it's not
necessary to code it into SIZE and POS.

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