This patch folds a sqadd (i32, vector_extract (sqdmull v4i16, v4i16, 0)) into a sqdmlal. We already generate an sqdmlal for lanes greater than 0, so this patch emits an sqdmlal of the same format but for a lane of 0, and is necessary as the existing pattern doesn't match.
Details
Details
Diff Detail
Diff Detail
Unit Tests
Unit Tests
Event Timeline
llvm/lib/Target/AArch64/AArch64SVEInstrInfo.td | ||
---|---|---|
1205 | There should probably be other types to this? Not just v4i16. But if this is from a scalar intrinsic, should it be producing a scalar sqdmlal? |
There should probably be other types to this? Not just v4i16.
And it doesn't look like it should be in the SVE file.
From looking around, it appears most of the other patterns are in SIMDIndexedLongSQDMLXSDTied.
But if this is from a scalar intrinsic, should it be producing a scalar sqdmlal?