HomePhabricator

[AArch64] Extend vecreduce -> udot handling to mla reductions

Authored by dmgreen on Mar 10 2021, 2:25 PM.

Description

[AArch64] Extend vecreduce -> udot handling to mla reductions

We previously have lowering for:

vecreduce.add(zext(X)) to vecreduce.add(UDOT(zero, X, one))

This extends that to also handle:

vecreduce.add(mul(zext(X), zext(Y)) to vecreduce.add(UDOT(zero, X, Y))

It extends the existing code to optionally handle a mul with equal
extends.

Differential Revision: https://reviews.llvm.org/D97280