[llvm] [RISCV][CodeGen] Add initial vzip codegen support (PR #194548)
Pengcheng Wang via llvm-commits
llvm-commits at lists.llvm.org
Wed Apr 29 20:17:32 PDT 2026
================
@@ -6435,8 +6472,13 @@ SDValue RISCVTargetLowering::lowerVECTOR_SHUFFLE(SDValue Op,
OddV = DAG.getExtractSubvector(DL, HalfVT, OddV, OddSrc % Size);
}
- // Prefer vzip2a if available.
- // TODO: Extend to matching zip2b if EvenSrc and OddSrc allow.
+ // Prefer vzip2a or vzip if available.
+ // TODO: Extend to matching ri.vzip2b or vzip if EvenSrc and OddSrc allow.
+ if (Subtarget.hasStdExtZvzip() && isLegalVTForZvzip(VT, Subtarget, *this)) {
+ EvenV = DAG.getInsertSubvector(DL, DAG.getUNDEF(VT), EvenV, 0);
+ OddV = DAG.getInsertSubvector(DL, DAG.getUNDEF(VT), OddV, 0);
+ return lowerZvzipVZIP(EvenV, OddV, DL, DAG, Subtarget, /*Part=*/0);
----------------
wangpc-pp wrote:
Good catch! I think we just copied it from `XRivosVizip` and passed the tests mistakenly in silence. :-)
https://github.com/llvm/llvm-project/pull/194548
More information about the llvm-commits
mailing list