On 6/22/24 6:01 AM, Georg-Johann Lay wrote:
Am 22.06.24 um 00:00 schrieb Jeff Law:
More minor fallout from the IOR->PLUS change a little while ago. This
time on xstormy16.
The pattern to swap nibbles actually tries to handle all the cases of
IOR, XOR and PLUS. But when we generate PLUS earlier in the pipeline,
the simplifications/canonicalizations are slightly different resulting
in the pattern not matching.
The avr backend has quite some (combine) patterns that combine IOR
and other operations like AND to bit move instructions etc.
Does this mean all such patterns are void now?
Certainly not void, though you may be missing optimizations. The key
properties to look for.
Rotation like patterns, but the target doesn't have a named pattern for
rotation. So an IOR with ASHIFT/LSHIFTRT operands and appropriate shift
counts.
Those rotation patterns have other embedded operations such as a sign
extension, logical ands to mask off bits and the like.
Jeff