[PATCH] D103263: [AArch64] Add S/UQXTRN tablegen patterns.

Dave Green via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Fri Jul 2 08:29:44 PDT 2021


dmgreen added inline comments.


================
Comment at: llvm/lib/Target/AArch64/AArch64InstrInfo.td:4232
+def VImm80:   PatLeaf<(AArch64mvni_shift (i32 127), (i32 0))>;
+def VImmEFFF: PatLeaf<(AArch64movi_msl (i32 127), (i32 264))>;
+def VImm8000: PatLeaf<(AArch64mvni_msl (i32 127), (i32 264))>;
----------------
sdesmalen wrote:
> It is nearly impossible to understand how these PatLeafs work, but that's nothing to do with your patch, since BuildVectors are lowered earlier on. It would be nice if these would just have been `dup()` nodes instead, but I'll just rely on the tests that you have implemented these PatLeafs correctly. At least the names of the PatLeafs (when you fix s/EF/7F/) make it a bit more understandable, thanks for making that change!
I have in the past looking into using VECTOR_SPLAT as the canonical representation of a splat in MVE, as opposed to a BUILD_VECTOR. That would mean moving the VMOVimm nodes into tablegen. It would involve a lot a changes, but feels like a sensible direction to me in the long run.


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

https://reviews.llvm.org/D103263



More information about the llvm-commits mailing list