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.

Reply via email to