[PATCH] D144092: [RISCV] Lower interleave and deinterleave intrinsics

Luke Lau via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Feb 15 04:10:02 PST 2023


luke added inline comments.


================
Comment at: llvm/lib/Target/RISCV/RISCVISelLowering.cpp:6534-6539
+  SDValue EvenMask = DAG.getSplatVector(
+      MVT::getVectorVT(MVT::i16,
+                       MaskTy.getVectorElementCount().divideCoefficientBy(2)),
+      DL, DAG.getConstant(1, DL, XLenVT));
+  EvenMask = DAG.getBitcast(MaskTy.changeVectorElementType(MVT::i8), EvenMask);
+  EvenMask = DAG.getNode(ISD::TRUNCATE, DL, MaskTy, EvenMask);
----------------
I'm not that happy with how this mask is generated.
Ideally we would just `vmv.v.i v0, 0x55` directly, but I can't seem to do it in a way that keeps SelectionDAG happy. Namely, it doesn't allow bitcasting `<vscale x n x i8>` -> `<vscale x n i1>`


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D144092



More information about the llvm-commits mailing list