Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

[Intrinsics][AArch64] Add intrinsic to mask off aliasing vector lanes #117007

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

Open
wants to merge 25 commits into
base: main
Choose a base branch
Loading
from
Open
Changes from 1 commit
Commits
Show all changes
25 commits
Select commit Hold shift + click to select a range
7f46c67
[Intrinsics][AArch64] Add intrinsic to mask off aliasing vector lanes
SamTebbs33 Nov 15, 2024
584cf92
Rework lowering location
SamTebbs33 Jan 10, 2025
fab768a
Fix ISD node name string and remove shouldExpand function
SamTebbs33 Jan 15, 2025
f6718e3
Format
SamTebbs33 Jan 16, 2025
5b7fa23
Move promote case
SamTebbs33 Jan 27, 2025
9f979d1
Fix tablegen comment
SamTebbs33 Jan 27, 2025
f40e49d
Remove DAGTypeLegalizer::
SamTebbs33 Jan 27, 2025
dee9e98
Use getConstantOperandVal
SamTebbs33 Jan 27, 2025
e738295
Remove isPredicateCCSettingOp case
SamTebbs33 Jan 29, 2025
12b3bf3
Remove overloads for pointer and element size parameters
SamTebbs33 Jan 30, 2025
bbb058b
Clarify elementSize and writeAfterRead = 0
SamTebbs33 Jan 30, 2025
c4e20ea
Add i=0 to VF-1
SamTebbs33 Jan 30, 2025
160d373
Rename to get.nonalias.lane.mask
SamTebbs33 Jan 30, 2025
7cd1f0d
Fix pointer types in example
SamTebbs33 Jan 30, 2025
8e7c79c
Remove shouldExpandGetAliasLaneMask
SamTebbs33 Jan 30, 2025
14e8bdd
Lower to ISD node rather than intrinsic
SamTebbs33 Jan 30, 2025
207ba59
Rename to noalias
SamTebbs33 Jan 31, 2025
77a0d9d
Rename to loop.dependence.raw/war.mask
SamTebbs33 Feb 26, 2025
b74394c
Rename in langref
SamTebbs33 Mar 10, 2025
8822b8f
Reword argument description
SamTebbs33 Mar 21, 2025
b84ef69
Fixup langref
SamTebbs33 May 20, 2025
d7ec7bb
IsWriteAfterRead -> IsReadAfterWrite and avoid using ops vector
SamTebbs33 May 20, 2025
97c592c
Extend vXi1 setcc to account for intrinsic VT promotion
SamTebbs33 May 20, 2025
e09758d
Remove experimental from intrinsic name
SamTebbs33 May 21, 2025
ab99ffe
Clean up vector type creation
SamTebbs33 May 21, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Format
  • Loading branch information
SamTebbs33 committed May 6, 2025
commit f6718e39b220f5114a886b799cc5564b42a485e2
8 changes: 8 additions & 0 deletions 8 llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -5340,24 +5340,32 @@ SDValue AArch64TargetLowering::LowerALIAS_LANE_MASK(SDValue Op,
// Make sure that the promoted mask size and element size match
switch (EltSize) {
case 1:
IntrinsicID = IsWriteAfterRead ? Intrinsic::aarch64_sve_whilewr_b
: Intrinsic::aarch64_sve_whilerw_b;
assert((SimpleVT == MVT::v16i8 || SimpleVT == MVT::nxv16i1) &&
"Unexpected mask or element size");
IntrinsicID = IsWriteAfterRead ? Intrinsic::aarch64_sve_whilewr_b
: Intrinsic::aarch64_sve_whilerw_b;
break;
case 2:
IntrinsicID = IsWriteAfterRead ? Intrinsic::aarch64_sve_whilewr_h
: Intrinsic::aarch64_sve_whilerw_h;
assert((SimpleVT == MVT::v8i8 || SimpleVT == MVT::nxv8i1) &&
"Unexpected mask or element size");
IntrinsicID = IsWriteAfterRead ? Intrinsic::aarch64_sve_whilewr_h
: Intrinsic::aarch64_sve_whilerw_h;
break;
case 4:
IntrinsicID = IsWriteAfterRead ? Intrinsic::aarch64_sve_whilewr_s
: Intrinsic::aarch64_sve_whilerw_s;
assert((SimpleVT == MVT::v4i16 || SimpleVT == MVT::nxv4i1) &&
"Unexpected mask or element size");
IntrinsicID = IsWriteAfterRead ? Intrinsic::aarch64_sve_whilewr_s
: Intrinsic::aarch64_sve_whilerw_s;
break;
case 8:
IntrinsicID = IsWriteAfterRead ? Intrinsic::aarch64_sve_whilewr_d
: Intrinsic::aarch64_sve_whilerw_d;
assert((SimpleVT == MVT::v2i32 || SimpleVT == MVT::nxv2i1) &&
"Unexpected mask or element size");
IntrinsicID = IsWriteAfterRead ? Intrinsic::aarch64_sve_whilewr_d
Expand Down
Morty Proxy This is a proxified and sanitized view of the page, visit original site.