[committed] Provide suitable output template for zero_extendqihi2 on H8
Segher's recent combine change, quite unexpectedly, triggered a regression on
the H8 port. It failed to build newlib.
The zero_extendqihi2 pattern provided two alternatives. One where the source
and destination matched. That turns into a suitable instruction trivially.
The second alternative was actually meant to capture cases where the value is
coming from memory.
What was missing here was the reg->reg case where the source and destination do
not match. That fell into the second case which was requested to be split by
the pattern's output template.
The splitter had a suitable condition to make sure it only triggered in the
right cases. Unfortunately with the pattern requiring a split in a case where
the splitter was going to fail led to the fault.
So regardless of what's going on in the combiner, this code was just wrong.
Fixed thusly by providing a suitable output template for the reg->reg case.
Regression tested on h8300-elf. Pushing to the trunk.
gcc/
* config/h8300/extensions.md (zero_extendqihi*): Add output
template for reg->reg case where the regs don't match.