Add `vector.fma` to the list of bf16 arith operations (#14226)
When wrapping numerical operations we need to include `vector.fma` to
the list. Vectorized convolutions were failing due to this operation
missing.
diff --git a/compiler/src/iree/compiler/Codegen/Common/ConvertBf16ArithToF32.cpp b/compiler/src/iree/compiler/Codegen/Common/ConvertBf16ArithToF32.cpp
index 7212b22..f620ad9 100644
--- a/compiler/src/iree/compiler/Codegen/Common/ConvertBf16ArithToF32.cpp
+++ b/compiler/src/iree/compiler/Codegen/Common/ConvertBf16ArithToF32.cpp
@@ -281,9 +281,9 @@
target.addDynamicallyLegalDialect<math::MathDialect>(checkOp);
// Some arithmetic operations exist in the vector dialect.
- target
- .addDynamicallyLegalOp<vector::ReductionOp, vector::MultiDimReductionOp,
- vector::MaskOp, vector::YieldOp>(checkOp);
+ target.addDynamicallyLegalOp<vector::FMAOp, vector::ReductionOp,
+ vector::MultiDimReductionOp, vector::MaskOp,
+ vector::YieldOp>(checkOp);
// Some ops are always legal.
target.addLegalOp<arith::BitcastOp>();