Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[ARM][NEON] NEON lowering doesn't legalize ISD::ABDS/ABDU nodes #94466

Closed
RKSimon opened this issue Jun 5, 2024 · 1 comment · Fixed by #94504
Closed

[ARM][NEON] NEON lowering doesn't legalize ISD::ABDS/ABDU nodes #94466

RKSimon opened this issue Jun 5, 2024 · 1 comment · Fixed by #94504

Comments

@RKSimon
Copy link
Collaborator

RKSimon commented Jun 5, 2024

Noticed while working #92576 - MVE supports these nodes, but NEON doesn't and just has support for the int_arm_neon_vabds/int_arm_neon_vabdu intrinsics and a couple of hardcoded patterns to support the VABDL extension instructions.

@llvmbot
Copy link
Collaborator

llvmbot commented Jun 5, 2024

@llvm/issue-subscribers-backend-arm

Author: Simon Pilgrim (RKSimon)

Noticed while working #92576 - MVE supports these nodes, but NEON doesn't and just has support for the int_arm_neon_vabds/int_arm_neon_vabdu intrinsics and a couple of hardcoded patterns to support the VABDL extension instructions.

RKSimon added a commit to RKSimon/llvm-project that referenced this issue Jun 5, 2024
As noted on llvm#94466, NEON has ABDS/ABDU instructions but only handles then via intrinsics, plus some VABDL custom patterns.

I'm not clear how ARM handles intrinsic -> ISD mapping, so I've left all the intrinsics handling in place so far at the moment.

Ideally all the VABD/VABA/VABDL/VABAL handling should be moved to using the abds/abdu nodes - but am I on the right track?

Fixes llvm#94466
RKSimon added a commit to RKSimon/llvm-project that referenced this issue Jun 6, 2024
As noted on llvm#94466, NEON has ABDS/ABDU instructions but only handles then via intrinsics, plus some VABDL custom patterns.

Fixes llvm#94466
RKSimon added a commit to RKSimon/llvm-project that referenced this issue Jun 6, 2024
As noted on llvm#94466, NEON has ABDS/ABDU instructions but only handles them via intrinsics, plus some VABDL custom patterns.

Fixes llvm#94466
RKSimon added a commit to RKSimon/llvm-project that referenced this issue Jun 6, 2024
As noted on llvm#94466, NEON has ABDS/ABDU instructions but only handles them via intrinsics, plus some VABDL custom patterns.

Fixes llvm#94466
RKSimon added a commit to RKSimon/llvm-project that referenced this issue Jun 7, 2024
As noted on llvm#94466, NEON has ABDS/ABDU instructions but only handles them via intrinsics, plus some VABDL custom patterns.

Fixes llvm#94466
RKSimon added a commit that referenced this issue Jun 7, 2024
As noted on #94466, NEON has ABDS/ABDU instructions but only handles them via intrinsics, plus some VABDL custom patterns.

This patch flags basic ABDS/ABDU for neon types as legal and updates all tablegen patterns to use abds/abdu instead.

Fixes #94466
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants