This is an archive of the discontinued LLVM Phabricator instance.

[SVE ACLE] Remove DAG combines that are no longer relevant.
ClosedPublic

Authored by jolanta.jensen on Jun 21 2023, 10:24 AM.

Details

Summary

This patch removes DAG combines that are no longer relevant
because equivalent IR combines have been added.

Diff Detail

Event Timeline

Herald added a project: Restricted Project. · View Herald TranscriptJun 21 2023, 10:24 AM
Herald added a subscriber: hiraditya. · View Herald Transcript
jolanta.jensen requested review of this revision.Jun 21 2023, 10:24 AM
Herald added a project: Restricted Project. · View Herald TranscriptJun 21 2023, 10:24 AM
llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
18922–18923

Rather than returning SDValue(); you should be able to remove the case statement entirely for the affected intrinsic IDs.

Matt added a subscriber: Matt.Jun 21 2023, 12:44 PM
mgabka added inline comments.Jun 22 2023, 1:31 AM
llvm/test/CodeGen/AArch64/sve-intrinsics-logical-imm.ll
269

@paulwalker-arm, I have a question here, what is the semantic of llvm.aarch64.sve.convert.from.svbool/ llvm.aarch64.sve.convert.to.svbool ?

Removed unnecessary case statements.

jolanta.jensen added inline comments.Jun 22 2023, 2:17 AM
llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
18922–18923

Fixed.

paulwalker-arm added inline comments.Jun 22 2023, 2:41 AM
llvm/test/CodeGen/AArch64/sve-intrinsics-logical-imm.ll
269

llvm.aarch64.sve.convert.from.svbool returns a boolean vector that contains only those lanes that are relevant for the result type. For example, when the return type is <vscale x 4 x i1> it returns every 4th lane of the <vscale x 16 x i1> input.

llvm.aarch64.sve.convert.to.svbool returns a boolean vector of type <vscale x 16 x i1> whereby the input is evenly distributed, for example, when the input type is <vscale x 2 x i1> each input lane is distribute across every 8th lane of the result, with all other result lanes set to zero.

paulwalker-arm accepted this revision.Jun 22 2023, 6:38 AM
This revision is now accepted and ready to land.Jun 22 2023, 6:38 AM
This revision was landed with ongoing or failed builds.Jun 23 2023, 2:09 AM
This revision was automatically updated to reflect the committed changes.