circt/test/Dialect/SMT/integers.mlir

35 lines
1.4 KiB
MLIR

// RUN: circt-opt %s | circt-opt | FileCheck %s
// CHECK-LABEL: func @integer_operations
func.func @integer_operations() {
// CHECK-NEXT: [[V0:%.+]] = smt.int.constant -123 {smt.some_attr}
%0 = smt.int.constant -123 {smt.some_attr}
// CHECK-NEXT: %c184467440737095516152 = smt.int.constant 184467440737095516152 {smt.some_attr}
%1 = smt.int.constant 184467440737095516152 {smt.some_attr}
// CHECK-NEXT: smt.int.add [[V0]], [[V0]], [[V0]] {smt.some_attr}
%2 = smt.int.add %0, %0, %0 {smt.some_attr}
// CHECK-NEXT: smt.int.mul [[V0]], [[V0]], [[V0]] {smt.some_attr}
%3 = smt.int.mul %0, %0, %0 {smt.some_attr}
// CHECK-NEXT: smt.int.sub [[V0]], [[V0]] {smt.some_attr}
%4 = smt.int.sub %0, %0 {smt.some_attr}
// CHECK-NEXT: smt.int.div [[V0]], [[V0]] {smt.some_attr}
%5 = smt.int.div %0, %0 {smt.some_attr}
// CHECK-NEXT: smt.int.mod [[V0]], [[V0]] {smt.some_attr}
%6 = smt.int.mod %0, %0 {smt.some_attr}
// CHECK-NEXT: smt.int.abs [[V0]] {smt.some_attr}
%7 = smt.int.abs %0 {smt.some_attr}
// CHECK-NEXT: smt.int.cmp le [[V0]], [[V0]] {smt.some_attr}
%9 = smt.int.cmp le %0, %0 {smt.some_attr}
// CHECK-NEXT: smt.int.cmp lt [[V0]], [[V0]] {smt.some_attr}
%10 = smt.int.cmp lt %0, %0 {smt.some_attr}
// CHECK-NEXT: smt.int.cmp ge [[V0]], [[V0]] {smt.some_attr}
%11 = smt.int.cmp ge %0, %0 {smt.some_attr}
// CHECK-NEXT: smt.int.cmp gt [[V0]], [[V0]] {smt.some_attr}
%12 = smt.int.cmp gt %0, %0 {smt.some_attr}
return
}