[llvm] [RISCV] Match deinterleave(4,8) shuffles to SHL/TRUNC when legal (PR #118509)

Philip Reames via llvm-commits llvm-commits at lists.llvm.org
Tue Dec 3 19:54:54 PST 2024


================
@@ -19,18 +19,19 @@ define {<16 x i1>, <16 x i1>} @vector_deinterleave_v16i1_v32i1(<32 x i1> %vec) {
 ; CHECK-NEXT:    vsetvli zero, zero, e16, m2, ta, ma
 ; CHECK-NEXT:    vmv.s.x v9, a0
 ; CHECK-NEXT:    vmv1r.v v0, v8
-; CHECK-NEXT:    vsetvli zero, zero, e8, m1, ta, mu
-; CHECK-NEXT:    vmerge.vim v14, v10, 1, v0
-; CHECK-NEXT:    vadd.vi v8, v12, -16
+; CHECK-NEXT:    vsetvli zero, zero, e8, m1, ta, ma
----------------
preames wrote:

Yeah, room for improvement, definitely.  Not currently that interested in <N x i1> codegen, but if we decide to focus on that at some point, it's not the only one which has room for improvement.  

https://github.com/llvm/llvm-project/pull/118509


More information about the llvm-commits mailing list