[llvm] [AArch64][GlobalISel] Legalize Insert vector element (PR #81453)

Thorsten Schütt via llvm-commits llvm-commits at lists.llvm.org
Sun Mar 10 05:18:53 PDT 2024


================
@@ -883,9 +883,15 @@ AArch64LegalizerInfo::AArch64LegalizerInfo(const AArch64Subtarget &ST)
       .clampMaxNumElements(1, p0, 2);
 
   getActionDefinitionsBuilder(G_INSERT_VECTOR_ELT)
-      .legalIf(typeInSet(0, {v16s8, v8s8, v8s16, v4s16, v4s32, v2s32, v2s64}))
+      .legalIf(
+          typeInSet(0, {v16s8, v8s8, v8s16, v4s16, v4s32, v2s32, v2s64, v2p0}))
       .moreElementsToNextPow2(0)
----------------
tschuett wrote:

```
// Generic insertelement.
def G_INSERT_VECTOR_ELT : GenericInstruction {
  let OutOperandList = (outs type0:$dst);
  let InOperandList = (ins type0:$src, type1:$elt, type2:$idx);
  let hasSideEffects = false;
}
```
We have to specify all three types in the legalizer: in/out vector, the element, and the index.

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


More information about the llvm-commits mailing list