84 lines
1.7 KiB
MLIR
84 lines
1.7 KiB
MLIR
// RUN: mlir-translate --export-smtlib %s --split-input-file --verify-diagnostics
|
|
|
|
smt.solver () : () -> () {
|
|
%0 = smt.constant true
|
|
// expected-error @below {{must not have any result values}}
|
|
%1 = smt.check sat {
|
|
smt.yield %0 : !smt.bool
|
|
} unknown {
|
|
smt.yield %0 : !smt.bool
|
|
} unsat {
|
|
smt.yield %0 : !smt.bool
|
|
} -> !smt.bool
|
|
}
|
|
|
|
// -----
|
|
|
|
smt.solver () : () -> () {
|
|
// expected-error @below {{'sat' region must be empty}}
|
|
smt.check sat {
|
|
%0 = smt.constant true
|
|
smt.yield
|
|
} unknown {
|
|
} unsat {
|
|
}
|
|
}
|
|
|
|
// -----
|
|
|
|
smt.solver () : () -> () {
|
|
// expected-error @below {{'unknown' region must be empty}}
|
|
smt.check sat {
|
|
} unknown {
|
|
%0 = smt.constant true
|
|
smt.yield
|
|
} unsat {
|
|
}
|
|
}
|
|
|
|
// -----
|
|
|
|
smt.solver () : () -> () {
|
|
// expected-error @below {{'unsat' region must be empty}}
|
|
smt.check sat {
|
|
} unknown {
|
|
} unsat {
|
|
%0 = smt.constant true
|
|
smt.yield
|
|
}
|
|
}
|
|
|
|
// -----
|
|
|
|
// expected-error @below {{solver scopes with inputs or results are not supported}}
|
|
%0 = smt.solver () : () -> (i1) {
|
|
%1 = arith.constant true
|
|
smt.yield %1 : i1
|
|
}
|
|
|
|
// -----
|
|
|
|
smt.solver () : () -> () {
|
|
// expected-error @below {{solver must not contain any non-SMT operations}}
|
|
%1 = arith.constant true
|
|
}
|
|
|
|
// -----
|
|
|
|
func.func @solver_input(%arg0: i1) {
|
|
// expected-error @below {{solver scopes with inputs or results are not supported}}
|
|
smt.solver (%arg0) : (i1) -> () {
|
|
^bb0(%arg1: i1):
|
|
smt.yield
|
|
}
|
|
return
|
|
}
|
|
|
|
// -----
|
|
|
|
smt.solver () : () -> () {
|
|
%0 = smt.declare_fun : !smt.sort<"uninterpreted0">
|
|
// expected-error @below {{uninterpreted sorts with same identifier but different arity found}}
|
|
%1 = smt.declare_fun : !smt.sort<"uninterpreted0"[!smt.bool]>
|
|
}
|