| // 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]> |
| } |