During legalization we can end up with extends of loads, which in the case of zexts causes us to not hit tablegen imported patterns.
The caveat here is that we don't want anyext load forming, since some variants are illegal.
Paths
| Differential D80458
[AArch64][GlobalISel] Enable extending loads combines post-legalization. ClosedPublic Authored by aemerson on May 22 2020, 3:30 PM.
Details Summary During legalization we can end up with extends of loads, which in the case of zexts causes us to not hit tablegen imported patterns. The caveat here is that we don't want anyext load forming, since some variants are illegal.
Diff Detail
Event TimelineHerald added subscribers: danielkiss, hiraditya, kristof.beyls, rovka. · View Herald TranscriptMay 22 2020, 3:30 PM This revision is now accepted and ready to land.May 28 2020, 5:52 PM Closed by commit rGa0c90b5b2ad6: [AArch64][GlobalISel] Enable extending loads combines post-legalization. (authored by aemerson). · Explain WhyMay 28 2020, 11:25 PM This revision was automatically updated to reflect the committed changes.
Revision Contents
Diff 267126 llvm/include/llvm/CodeGen/GlobalISel/CombinerHelper.h
llvm/lib/CodeGen/GlobalISel/CombinerHelper.cpp
llvm/lib/Target/AArch64/AArch64Combine.td
llvm/lib/Target/AArch64/AArch64PostLegalizerCombiner.cpp
llvm/test/CodeGen/AArch64/GlobalISel/postlegalizercombiner-extending-loads.mir
|
This should just fix the combiner to understand checking for legal loads rather than special casing anyext?