[llvm] [RISCV][GISEL] instruction-select for G_SPLAT_VECTOR (PR #111193)

Thorsten Schütt via llvm-commits llvm-commits at lists.llvm.org
Fri Oct 4 12:48:36 PDT 2024


================
@@ -67,7 +67,428 @@ define <vscale x 64 x i1> @splat_zero_nxv64i1() {
   ret <vscale x 64 x i1> zeroinitializer
 }
 
+define <vscale x 1 x i8> @splat_zero_nxv1i8() {
----------------
tschuett wrote:

```
def extract_vector_element_not_const : GICombineRule<
   (defs root:$root),
   (match (G_INSERT_VECTOR_ELT $src, $x, $value, $idx),
          (G_EXTRACT_VECTOR_ELT $root, $src, $idx)),
   (apply (GIReplaceReg $root, $value))>;

def extract_vector_element_different_indices : GICombineRule<
   (defs root:$root, build_fn_matchinfo:$matchinfo),
   (match (G_INSERT_VECTOR_ELT $src, $x, $value, $idx2),
          (G_EXTRACT_VECTOR_ELT $root, $src, $idx1),
   [{ return Helper.matchExtractVectorElementWithDifferentIndices(${root}, ${matchinfo}); }]),
   (apply [{ Helper.applyBuildFnMO(${root}, ${matchinfo}); }])>;
```

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


More information about the llvm-commits mailing list