This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug bootstrap/78390] [7 Regression] Bootstrap failure: match.pd: cannot determine type of operand
- From: "vogt at linux dot vnet.ibm.com" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Fri, 18 Nov 2016 15:17:24 +0000
- Subject: [Bug bootstrap/78390] [7 Regression] Bootstrap failure: match.pd: cannot determine type of operand
- Auto-submitted: auto-generated
- References: <bug-78390-4@http.gcc.gnu.org/bugzilla/>
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.