@@ -39,7 +39,7 @@ func.func @cmpi_sge_i1(%v1 : i1, %v2 : i1) {
39
39
return
40
40
}
41
41
42
- func.func @cmpi_signed () {
42
+ func.func @cmpi_eq () {
43
43
// ------------------------------------------------
44
44
// Test i1
45
45
// ------------------------------------------------
@@ -48,10 +48,42 @@ func.func @cmpi_signed() {
48
48
%true_i1_n1 = arith.constant -1 : i1
49
49
50
50
// int values 1 and -1 represent the same bitvector
51
+
51
52
// CHECK-LABEL: @cmpi_eq_i1
52
53
// CHECK-NEXT: 1
53
54
func.call @cmpi_eq_i1 (%true_i1 , %true_i1_n1 ) : (i1 , i1 ) -> ()
54
55
56
+ // CHECK-LABEL: @cmpi_eq_i1
57
+ // CHECK-NEXT: 0
58
+ func.call @cmpi_eq_i1 (%false_i1 , %true_i1 ) : (i1 , i1 ) -> ()
59
+
60
+ // CHECK-LABEL: @cmpi_eq_i1
61
+ // CHECK-NEXT: 0
62
+ func.call @cmpi_eq_i1 (%true_i1 , %false_i1 ) : (i1 , i1 ) -> ()
63
+
64
+ // CHECK-LABEL: @cmpi_eq_i1
65
+ // CHECK-NEXT: 1
66
+ func.call @cmpi_eq_i1 (%true_i1 , %true_i1 ) : (i1 , i1 ) -> ()
67
+
68
+ // CHECK-LABEL: @cmpi_eq_i1
69
+ // CHECK-NEXT: 1
70
+ func.call @cmpi_eq_i1 (%false_i1 , %false_i1 ) : (i1 , i1 ) -> ()
71
+
72
+ // ------------------------------------------------
73
+ // TODO: Test i8, i16 etc..
74
+ // ------------------------------------------------
75
+ return
76
+ }
77
+
78
+ func.func @cmpi_signed () {
79
+ // ------------------------------------------------
80
+ // Test i1
81
+ // ------------------------------------------------
82
+ %false_i1 = arith.constant 0 : i1
83
+ %true_i1 = arith.constant 1 : i1
84
+ %true_i1_n1 = arith.constant -1 : i1
85
+
86
+ // int values 1 and -1 represent the same bitvector
55
87
// But, bitvector `1` is interpreted as int value -1 in signed comparison
56
88
57
89
// CHECK-LABEL: @cmpi_sge_i1
@@ -117,6 +149,7 @@ func.func @cmpi_unsigned() {
117
149
}
118
150
119
151
func.func @entry () {
152
+ func.call @cmpi_eq () : () -> ()
120
153
func.call @cmpi_signed () : () -> ()
121
154
func.call @cmpi_unsigned () : () -> ()
122
155
return
0 commit comments