We already had some patterns for UADDV(UADDLP(x)) -> UADDLV(x), this simply expands them to the signed instructions by re-using the tablegen patterns.
Details
Diff Detail
- Repository
- rG LLVM Github Monorepo
Event Timeline
llvm/lib/Target/AArch64/AArch64InstrInfo.td | ||
---|---|---|
5883 | We seem to have patterns for all of 8B, 16B, 8H, 4H and 4S if I read this right. I am seeing tests (in the diff at least) that only cover 4S, 8H and 16B (datasize = 128). Do we have/need tests for the rest (datasize = 64)? | |
6081–6082 | The multiclass naming confuses me a bit. We also have these other patterns here for SADDLV and UADDLV. Not sure what would be a better naming scheme. |
llvm/lib/Target/AArch64/AArch64InstrInfo.td | ||
---|---|---|
5883 | Yeah some of the extending vecreduce patterns don't simplify in the same way. Those will have to be left for another patch though. I've made sure there is test coverage. | |
6081–6082 | Yeah I just made up a name to do with Across Lane (addv) and pairwise (addlp). |
llvm/lib/Target/AArch64/AArch64InstrInfo.td | ||
---|---|---|
5883 | Alright, looks good. |
We seem to have patterns for all of 8B, 16B, 8H, 4H and 4S if I read this right. I am seeing tests (in the diff at least) that only cover 4S, 8H and 16B (datasize = 128). Do we have/need tests for the rest (datasize = 64)?