[PATCH] D128631: [AArch64] Initial sched model for Neoverse N2

Dave Green via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Jul 6 09:08:07 PDT 2022


dmgreen added a comment.

Thanks for the cleanup and second patch. I think apart from the EXTR question this looks good.



================
Comment at: llvm/test/tools/llvm-mca/AArch64/Neoverse/N2-basic-instructions.s:1858
+# CHECK-NEXT:  1      2     0.50                        umnegl	x11, w13, w17
+# CHECK-NEXT:  1      1     0.25                        extr	w3, w5, w7, #0
+# CHECK-NEXT:  1      1     0.25                        extr	w11, w13, w17, #31
----------------
c-rhodes wrote:
> dmgreen wrote:
> > Is this missing?
> > Is this missing?
> 
> I can't see any issue with this?
I meant should it be the same as `extr x`? The software optimization guide mentions "Bitfield extract, one reg" and "Bitfield extract, two regs", but doesn't make a distinction between X regs and W.

We don't model the difference between EXTR where both operands are the same (if that's what "one reg" means) - that should be fine as it sounds minor. But should the matching be including W EXT too:
```
def : InstRW<[N2Write_3cyc_1I_1M], (instrs EXTRXrri, EXTRWrri)>;
```


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

https://reviews.llvm.org/D128631



More information about the llvm-commits mailing list