================
@@ -2230,7 +2230,7 @@ bool AMDGPUDAGToDAGISel::SelectSMRDBaseOffset(SDValue 
Addr, SDValue &SBase,
 
   SDValue N0, N1;
   // Extract the base and offset if possible.
-  if (CurDAG->isBaseWithConstantOffset(Addr) || Addr.getOpcode() == ISD::ADD) {
+  if (CurDAG->isBaseWithConstantOffset(Addr) || Addr->isAnyAdd()) {
----------------
ritter-x2a wrote:

I think the code here isn't interested in the `Constant` part of 
`isBaseWithConstantOffset`; that's checked in `SelectSMRDOffset`. It should be 
fine (even better, in some hypothetical cases) to replace this call with an 
`isADDLike` call (which catches disjoint ors and an xor special case whereas 
`isAnyAdd` only checks for `ISD::ADD` or `ISD::PTRADD`). I'll try that and 
update the PR.
Ultimately, it would probably be nice to select offsets for the different 
addressing mode variants more consistently, but I don't see that in the scope 
of this PR.

https://github.com/llvm/llvm-project/pull/145330
_______________________________________________
llvm-branch-commits mailing list
llvm-branch-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits

Reply via email to