llvm-project
cb6ff746 - [mlir][ArmNeon] Implements LowerVectorToArmNeon Pattern for SMMLA (#81895)

Commit
1 year ago
[mlir][ArmNeon] Implements LowerVectorToArmNeon Pattern for SMMLA (#81895) This patch adds a the `LowerVectorToArmNeonPattern` patterns to the ArmNeon. This pattern inspects `vector.contract` ops that can be 1-1 mapped to an `arm.neon.smmla` intrinsic. The contract ops must be separated into tiles who's inputs must fit that of a single smmla op (`2x8xi32` inputs and `2x2xi32` output). The `vector.contract` inputs must be sign extended from narrow types (<=i8) to be converted. If all conditions are met, an smmla op is inserted with additional `vector.shape_casts` to handle linearizing the input and output dimension.
Author
Parents
Loading