aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/Frontend/CompilerInvocation.cpp
diff options
context:
space:
mode:
authorNicolas Vasilache <nicolas.vasilache@gmail.com>2021-02-04 07:42:26 +0000
committerNicolas Vasilache <nicolas.vasilache@gmail.com>2021-02-04 07:50:44 +0000
commitf245b7ad36ff8bd85cddbe9784f7efe6dee577c0 (patch)
tree0558c26ca044e6f008dc855af007033d2a557436 /clang/lib/Frontend/CompilerInvocation.cpp
parent3b9de993c9dffd0941ad79c80a2cb7785bc63f03 (diff)
downloadllvm-f245b7ad36ff8bd85cddbe9784f7efe6dee577c0.zip
llvm-f245b7ad36ff8bd85cddbe9784f7efe6dee577c0.tar.gz
llvm-f245b7ad36ff8bd85cddbe9784f7efe6dee577c0.tar.bz2
[mlir][Linalg] Generalize the definition of a Linalg contraction.
This revision defines a Linalg contraction in general terms: 1. Has 2 input and 1 output shapes. 2. Has at least one reduction dimension. 3. Has only projected permutation indexing maps. 4. its body computes `u5(u1(c) + u2(u3(a) * u4(b)))` on some field (AddOpType, MulOpType), where u1, u2, u3, u4 and u5 represent scalar unary operations that may change the type (e.g. for mixed-precision). As a consequence, when vectorization of such an op occurs, the only special behavior is that the (unique) MulOpType is vectorized into a `vector.contract`. All other ops are handled in a generic fashion. In the future, we may wish to allow more input arguments and elementwise and constant operations that do not involve the reduction dimension(s). A test is added to demonstrate the proper vectorization of matmul_i8_i8_i32. Differential revision: https://reviews.llvm.org/D95939
Diffstat (limited to 'clang/lib/Frontend/CompilerInvocation.cpp')
0 files changed, 0 insertions, 0 deletions