If the ZExt can be lowered to a single ZExt to the next power-of-2 and
the remaining ZExt folded into the user, don't use tbl lowering.
Fixes #62620.
Paths
| Differential D150482
[AArch64] Don't use tbl lowering if ZExt can be folded into user. ClosedPublic Authored by fhahn on May 12 2023, 2:05 PM.
Details Summary If the ZExt can be lowered to a single ZExt to the next power-of-2 and Fixes #62620.
Diff Detail
Event Timeline
Comment Actions Generalize code to properly handling mull case with casts with different source types, thanks! Comment Actions LGTM
This revision is now accepted and ready to land.Jun 1 2023, 11:09 AM This revision was landed with ongoing or failed builds.Jun 2 2023, 3:53 AM Closed by commit rGe97b8a7e3fb9: [AArch64] Don't use tbl lowering if ZExt can be folded into user. (authored by fhahn). · Explain Why This revision was automatically updated to reflect the committed changes. v01dXYZ added inline comments.
Comment Actions Thanks for taking a look. Comments should be addressed in baebe719a52acbe0a5aaa04dcf1abcfd4035bf1f and response inline.
Revision Contents
Diff 523518 llvm/include/llvm/CodeGen/TargetLowering.h
llvm/lib/CodeGen/CodeGenPrepare.cpp
llvm/lib/Target/AArch64/AArch64ISelLowering.h
llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
llvm/lib/Target/AArch64/AArch64TargetTransformInfo.h
llvm/lib/Target/AArch64/AArch64TargetTransformInfo.cpp
llvm/test/CodeGen/AArch64/sve-fixed-vector-zext.ll
llvm/test/CodeGen/AArch64/zext-to-tbl.ll
|
Maybe just explicitly check "DstWidth != 16 && DstWidth != 32"?