[PATCH] combine: Improve change_zero_ext (fixes PR71847)
Segher Boessenkool
segher@kernel.crashing.org
Wed Nov 23 16:25:00 GMT 2016
On Wed, Nov 23, 2016 at 04:58:22PM +0100, Georg-Johann Lay wrote:
> Hi, this causes an illegal code issue on avr.
Sorry about that.
[ snip ]
> Trying 19 -> 7:
> Failed to match this instruction:
> (set (reg:HI 45 [ x+3 ])
> (zero_extend:HI (reg:QI 25 r25 [ x+3 ])))
> Successfully matched this instruction:
> (set (reg:HI 45 [ x+3 ])
> (and:HI (reg:HI 25 r25)
> (const_int 255 [0xff])))
> allowing combination of insns 19 and 7
> R25 is a 16-bit hard reg, but HImode (and larger) registers must start
> at an even register number.
So why does the define_insn allow it?
Please open a PR so I don't lose track.
Thanks,
Segher
More information about the Gcc-patches
mailing list