[PATCH] D150969: [AArch64] Try to convert two XTN and two SMLSL to UZP1, SMLSL and SMLSL2

JinGu Kang via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue Jun 13 02:31:47 PDT 2023


jaykang10 added inline comments.


================
Comment at: llvm/lib/Target/AArch64/AArch64ISelLowering.cpp:22460
+  // Check ExtractLow's user.
+  if (HasFoundMULLow && ExtractLow->hasOneUse()) {
+    SDNode *ExtractLowUser = *ExtractLow.getNode()->use_begin();
----------------
dmgreen wrote:
> jaykang10 wrote:
> > dmgreen wrote:
> > > I think this one could leave HasFoundMULLow = true but without a valid TruncLow.
> > Let me update it.
> I meant - if we get to the start of this if with HasFoundMULLow=true (so ExtractLow is valid), but it doesn't have 1 use, then we get to the code below (`SDValue TruncLowOp = HasFoundMULLow ? TruncLow.getOperand(0) : DAG.getUNDEF(UZP1VT);`) with HasFoundMULLow=true but TruncLow not being a valid node.
> 
> Maybe split the one use check out:
> ```
>   if (!ExtractLow->hasOneUse())
>     HasFoundMULLow = false;
>   // Check ExtractLow's user.
>   if (HasFoundMULLow) {...
> ```
Ah, I understand what you meant now.
Let me update it.


CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D150969/new/

https://reviews.llvm.org/D150969



More information about the llvm-commits mailing list