[all-commits] [llvm/llvm-project] 0a8f1f: [SelectionDAG] Fix unsafe cases for loop.dependenc...
Sam Tebbs via All-commits
all-commits at lists.llvm.org
Tue Nov 25 05:43:04 PST 2025
Branch: refs/heads/users/SamTebbs33/loop-dependence-select
Home: https://github.com/llvm/llvm-project
Commit: 0a8f1f191436e7be393574b61dc85074cd7585b3
https://github.com/llvm/llvm-project/commit/0a8f1f191436e7be393574b61dc85074cd7585b3
Author: Sam Tebbs <samuel.tebbs at arm.com>
Date: 2025-11-17 (Mon, 17 Nov 2025)
Changed paths:
M llvm/lib/CodeGen/SelectionDAG/LegalizeVectorTypes.cpp
M llvm/test/CodeGen/AArch64/alias_mask.ll
M llvm/test/CodeGen/AArch64/alias_mask_scalable.ll
Log Message:
-----------
[SelectionDAG] Fix unsafe cases for loop.dependence.{war/raw}.mask
There is an unsafe case with the loop dependence mask intrinsics where
the difference between the two pointers is less than half the vector
length, e.g. ptrA = 0 and ptrB 3 when the vector length is 32. Currently that
produces a correct low-mask with 3 active lanes and an incorrect high mask with
all lanes active. This PR adds a select on the high mask which guards
against this case.
Commit: f6f9548458f9cb17265195fc639b5a5b2a40ea2d
https://github.com/llvm/llvm-project/commit/f6f9548458f9cb17265195fc639b5a5b2a40ea2d
Author: Samuel Tebbs <samuel.tebbs at arm.com>
Date: 2025-11-25 (Tue, 25 Nov 2025)
Changed paths:
M llvm/lib/CodeGen/SelectionDAG/LegalizeVectorOps.cpp
M llvm/lib/CodeGen/SelectionDAG/LegalizeVectorTypes.cpp
M llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
M llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
M llvm/test/CodeGen/AArch64/alias_mask.ll
M llvm/test/CodeGen/AArch64/alias_mask_scalable.ll
Log Message:
-----------
Add lane offset operand instead of splitting in legaliser
Compare: https://github.com/llvm/llvm-project/compare/0a8f1f191436%5E...f6f9548458f9
To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications
More information about the All-commits
mailing list