[llvm] [GlobalISel] Add known bits calculation for atomic G_LOAD (PR #222870)
via llvm-commits
llvm-commits at lists.llvm.org
Fri Sep 11 05:26:52 PDT 2026
================
@@ -708,7 +708,23 @@ void GISelValueTracking::computeKnownBitsImpl(Register R, KnownBits &Known,
KnownBits KnownRange(MMO->getMemoryType().getScalarSizeInBits());
if (const MDNode *Ranges = MMO->getRanges())
computeKnownBitsFromRangeMetadata(*Ranges, KnownRange);
- Known = KnownRange.anyext(Known.getBitWidth());
+
+ if (MMO->isAtomic()) {
+ switch (TL.getExtendForAtomicOps()) {
----------------
MishkaSimakov wrote:
Thank you for the quick review.
Is there anything left to port from ATOMIC_LOAD case in `SelectionDAG::computeKnownBits?
Should we represent atomic loads as G_SEXTLOAD/G_ZEXTLOAD if `TL.getExtendForAtomicOps()` is SIGN_EXTEND/ZERO_EXTEND? This would give more information in the known-bits analysis.
https://github.com/llvm/llvm-project/pull/222870
More information about the llvm-commits
mailing list