Skip to content

Commit 66a2058

Browse files
authored
[mlir][arith] Adding addition regression tests (#96973)
arith addition regression tests, a component of the large #92272
1 parent 1738cc6 commit 66a2058

File tree

1 file changed

+88
-0
lines changed

1 file changed

+88
-0
lines changed
Lines changed: 88 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,88 @@
1+
// RUN: mlir-opt %s --convert-scf-to-cf --convert-cf-to-llvm --convert-vector-to-llvm \
2+
// RUN: --convert-func-to-llvm --convert-arith-to-llvm | \
3+
// RUN: mlir-cpu-runner -e entry -entry-point-result=void \
4+
// RUN: --shared-libs=%mlir_c_runner_utils | \
5+
// RUN: FileCheck %s --match-full-lines
6+
7+
func.func @addi_i1(%v1 : i1, %v2 : i1) {
8+
vector.print str "@addi_i1\n"
9+
%res = arith.addi %v1, %v2 : i1
10+
vector.print %res : i1
11+
return
12+
}
13+
14+
func.func @addi() {
15+
// ------------------------------------------------
16+
// Test i1
17+
// ------------------------------------------------
18+
19+
// addi on i1
20+
// addi(0, 1) : i1 = 1 : i1; addi(0, -1) : i1 = 1
21+
%false = arith.constant 0 : i1
22+
%true = arith.constant 1 : i1
23+
24+
// CHECK-LABEL: @addi_i1
25+
// CHECK-NEXT: 1
26+
func.call @addi_i1(%false, %true) : (i1, i1) -> ()
27+
28+
// CHECK-LABEL: @addi_i1
29+
// CHECK-NEXT: 1
30+
%true_based_on_non_zero_val = arith.constant -1 : i1
31+
func.call @addi_i1(%false, %true_based_on_non_zero_val) : (i1, i1) -> ()
32+
33+
// ------------------------------------------------
34+
// TODO: Test i8, i16 etc..
35+
// ------------------------------------------------
36+
37+
return
38+
}
39+
40+
func.func @addui_extended_i1(%v1 : i1, %v2 : i1) {
41+
vector.print str "@addui_extended_i1\n"
42+
%res, %overflow = arith.addui_extended %v1, %v2 : i1, i1
43+
vector.print %res : i1
44+
vector.print %overflow : i1
45+
return
46+
}
47+
48+
func.func @addi_extended() {
49+
// ------------------------------------------------
50+
// Test i1
51+
// ------------------------------------------------
52+
53+
// addui_extended on i1
54+
// addui_extended 1 1 : i1 = 0, 1
55+
%true = arith.constant 1 : i1
56+
%false = arith.constant 0 : i1
57+
58+
// CHECK-LABEL: @addui_extended_i1
59+
// CHECK-NEXT: 0
60+
// CHECK-NEXT: 1
61+
func.call @addui_extended_i1(%true, %true) : (i1, i1) -> ()
62+
63+
// CHECK-LABEL: @addui_extended_i1
64+
// CHECK-NEXT: 1
65+
// CHECK-NEXT: 0
66+
func.call @addui_extended_i1(%true, %false) : (i1, i1) -> ()
67+
68+
// CHECK-LABEL: @addui_extended_i1
69+
// CHECK-NEXT: 1
70+
// CHECK-NEXT: 0
71+
func.call @addui_extended_i1(%false, %true) : (i1, i1) -> ()
72+
73+
// CHECK-LABEL: @addui_extended_i1
74+
// CHECK-NEXT: 0
75+
// CHECK-NEXT: 0
76+
func.call @addui_extended_i1(%false, %false) : (i1, i1) -> ()
77+
78+
// ------------------------------------------------
79+
// TODO: Test i8, i16 etc..
80+
// ------------------------------------------------
81+
return
82+
}
83+
84+
func.func @entry() {
85+
func.call @addi() : () -> ()
86+
func.call @addi_extended() : () -> ()
87+
return
88+
}

0 commit comments

Comments
 (0)