This patch removes the aarch64 instrinsic svget/svset/svcreate from llvm.
It also implements the InstCombine for vector.extract that used to be in svget.
Depends on: D131547
Paths
| Differential D131548
[AArch64]Remove svget/svset/svcreate from llvm ClosedPublic Authored by CarolineConcatto on Aug 10 2022, 1:10 AM.
Details Summary This patch removes the aarch64 instrinsic svget/svset/svcreate from llvm. Depends on: D131547
Diff Detail
Event Timeline
CarolineConcatto added inline comments.
Comment Actions Can you also add a test for fixed-width vectors?
CarolineConcatto marked an inline comment as done. Comment ActionsRemove aarch64 dependency in opts-tuples-extract-intrinsic.ll test file Comment Actions @sdesmalen I addressed your comment and made the instcombine test for the vector.extract generic.
CarolineConcatto marked an inline comment as done. Comment ActionsRewrite Instcombine test for vector extract. Now we have a test for when:
Comment Actions Could you move the code that adds the combine for llvm.vector.extract/insert to a separate patch (along with the beautiful new test), so that we can land that patch before landing D131547?
Comment Actions As mentioned on D131547, you'll need to add code to AutoUpgrade as well to transform the old get/set/create intrinsics to llvm.vector.extract/insert (plus a corresponding test). Comment Actions
CarolineConcatto marked an inline comment as done. Comment Actions
CarolineConcatto added inline comments.
Comment Actions Hi Carol
This revision is now accepted and ready to land.Sep 22 2022, 7:02 AM Comment Actions -Address Kerry’s comments Remove “#0” from upgrade-aarch64-sve-intrinsics.ll Add comment // Strip llvm Closed by commit rG5431bf27bd22: [AArch64]Remove svget/svset/svcreate from llvm (authored by CarolineConcatto). · Explain WhySep 23 2022, 2:48 AM This revision was automatically updated to reflect the committed changes.
Revision Contents
Diff 462431 llvm/include/llvm/IR/IntrinsicsAArch64.td
llvm/lib/IR/AutoUpgrade.cpp
llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
llvm/lib/Target/AArch64/AArch64TargetTransformInfo.cpp
llvm/test/Bitcode/upgrade-aarch64-sve-intrinsics.ll
llvm/test/CodeGen/AArch64/sve-calling-convention-tuple-types.ll
llvm/test/CodeGen/AArch64/sve-extract-subvector.ll
llvm/test/CodeGen/AArch64/sve-intrinsics-create-tuple.ll
llvm/test/CodeGen/AArch64/sve-intrinsics-insert-extract-tuple.ll
llvm/test/CodeGen/AArch64/sve-intrinsics-int-arith.ll
llvm/test/CodeGen/AArch64/sve-intrinsics-stores.ll
llvm/test/Transforms/InstCombine/AArch64/sve-intrinsic-opts-tuple-get.ll
|
Is the name guaranteed to start with llvm. ?
If not, I would think it makes more sense to write:
Also, should this be "tuple.get" instead of just "tuple" ?