HomePhabricator

[mlir] [VectorOps] Replace zero fma with mult for vector.contract

Authored by aartbik on Jun 30 2020, 9:04 AM.

Description

[mlir] [VectorOps] Replace zero fma with mult for vector.contract

More efficient implementation of the multiply-reduce pair,
no need to add in a zero vector. Microbenchmarking on AVX2
yields the following difference in vector.contract speedup
(over strict-order scalar reduction).

SPEEDUP SIMD-fma SIMD-mul
4x4 1.45 2.00
8x8 1.40 1.90
32x32 5.32 5.80

Reviewed By: ftynse

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

Details