diff --git a/mlir/include/mlir/Dialect/Math/IR/MathBase.td b/mlir/include/mlir/Dialect/Math/IR/MathBase.td --- a/mlir/include/mlir/Dialect/Math/IR/MathBase.td +++ b/mlir/include/mlir/Dialect/Math/IR/MathBase.td @@ -30,5 +30,8 @@ ``` }]; let hasConstantMaterializer = 1; + let dependentDialects = [ + "::mlir::arith::ArithDialect" + ]; } #endif // MATH_BASE diff --git a/mlir/test/Dialect/Math/dependent-dialect.mlir b/mlir/test/Dialect/Math/dependent-dialect.mlir new file mode 100644 --- /dev/null +++ b/mlir/test/Dialect/Math/dependent-dialect.mlir @@ -0,0 +1,13 @@ +// RUN: mlir-opt %s --mlir-print-op-generic | FileCheck %s + +// Check that math.atan can be constructed by parsing and the fastmath +// attribute can be created. This requires math dialect to depend on arith +// dialect. Note that we don't want other dialects in here as they may +// transitively depend on arith and load it even if math doesn't. + +"test.some_op_with_region"() ({ +^bb0(%arg0: f64): + // CHECK: #arith.fastmath + math.atan %arg0 : f64 + "test.possible_terminator"() : () -> () +}) : () -> ()