Skip to content

Commit e5c6b4f

Browse files
flofridaySpace Team
authored andcommitted
[FIR] Refactor unsigned constant evaluation tests
KT-51065
1 parent a257a25 commit e5c6b4f

File tree

4 files changed

+450
-382
lines changed

4 files changed

+450
-382
lines changed

compiler/testData/codegen/box/involvesIrInterpreter/ubyteOperations.kt

Lines changed: 103 additions & 86 deletions
Original file line numberDiff line numberDiff line change
@@ -4,108 +4,125 @@
44
// WITH_STDLIB
55
fun <T> T.id() = this
66

7-
const val compareTo1 = 1u.toUByte().<!EVALUATED("-1")!>compareTo(2u.toUByte())<!>
8-
const val compareTo2 = 2u.toUByte().<!EVALUATED("0")!>compareTo(2u.toUByte())<!>
9-
const val compareTo3 = 3u.toUByte().<!EVALUATED("1")!>compareTo(2u.toUByte())<!>
10-
const val compareTo4 = 2u.toUByte().<!EVALUATED("0")!>compareTo(2u.toUShort())<!>
11-
const val compareTo5 = 2u.toUByte().<!EVALUATED("0")!>compareTo(2u)<!>
12-
const val compareTo6 = 2u.toUByte().<!EVALUATED("0")!>compareTo(2UL)<!>
13-
14-
const val plus1 = 1u.toUByte().<!EVALUATED("3")!>plus(2u.toUByte())<!>
15-
const val plus2 = 2u.toUByte().<!EVALUATED("4")!>plus(2u.toUByte())<!>
16-
const val plus3 = 3u.toUByte().<!EVALUATED("5")!>plus(2u.toUByte())<!>
17-
const val plus4 = 2u.toUByte().<!EVALUATED("4")!>plus(2u.toUShort())<!>
18-
const val plus5 = 2u.toUByte().<!EVALUATED("4")!>plus(2u)<!>
19-
const val plus6 = 2u.toUByte().<!EVALUATED("4")!>plus(2UL)<!>
20-
21-
const val minus1 = 1u.toUByte().<!EVALUATED("4294967295")!>minus(2u.toUByte())<!>
22-
const val minus2 = 2u.toUByte().<!EVALUATED("0")!>minus(2u.toUByte())<!>
23-
const val minus3 = 3u.toUByte().<!EVALUATED("1")!>minus(2u.toUByte())<!>
24-
const val minus4 = 2u.toUByte().<!EVALUATED("0")!>minus(2u.toUShort())<!>
25-
const val minus5 = 2u.toUByte().<!EVALUATED("0")!>minus(2u)<!>
26-
const val minus6 = 2u.toUByte().<!EVALUATED("0")!>minus(2UL)<!>
27-
28-
const val times1 = 1u.toUByte().<!EVALUATED("2")!>times(2u.toUByte())<!>
29-
const val times2 = 2u.toUByte().<!EVALUATED("4")!>times(2u.toUByte())<!>
30-
const val times3 = 3u.toUByte().<!EVALUATED("6")!>times(2u.toUByte())<!>
31-
const val times4 = 2u.toUByte().<!EVALUATED("4")!>times(2u.toUShort())<!>
32-
const val times5 = 2u.toUByte().<!EVALUATED("4")!>times(2u)<!>
33-
const val times6 = 2u.toUByte().<!EVALUATED("4")!>times(2UL)<!>
34-
35-
const val div1 = 1u.toUByte().<!EVALUATED("0")!>div(2u.toUByte())<!>
36-
const val div2 = 2u.toUByte().<!EVALUATED("1")!>div(2u.toUByte())<!>
37-
const val div3 = 3u.toUByte().<!EVALUATED("1")!>div(2u.toUByte())<!>
38-
const val div4 = 2u.toUByte().<!EVALUATED("1")!>div(2u.toUShort())<!>
39-
const val div5 = 2u.toUByte().<!EVALUATED("1")!>div(2u)<!>
40-
const val div6 = 2u.toUByte().<!EVALUATED("1")!>div(2UL)<!>
41-
42-
const val floorDiv1 = 1u.toUByte().<!EVALUATED("0")!>floorDiv(2u.toUByte())<!>
43-
const val floorDiv2 = 2u.toUByte().<!EVALUATED("1")!>floorDiv(2u.toUByte())<!>
44-
const val floorDiv3 = 3u.toUByte().<!EVALUATED("1")!>floorDiv(2u.toUByte())<!>
45-
const val floorDiv4 = 2u.toUByte().<!EVALUATED("1")!>floorDiv(2u.toUShort())<!>
46-
const val floorDiv5 = 2u.toUByte().<!EVALUATED("1")!>floorDiv(2u)<!>
47-
const val floorDiv6 = 2u.toUByte().<!EVALUATED("1")!>floorDiv(2UL)<!>
48-
49-
const val rem1 = 1u.toUByte().<!EVALUATED("1")!>rem(2u.toUByte())<!>
50-
const val rem2 = 2u.toUByte().<!EVALUATED("0")!>rem(2u.toUByte())<!>
51-
const val rem3 = 3u.toUByte().<!EVALUATED("1")!>rem(2u.toUByte())<!>
52-
const val rem4 = 2u.toUByte().<!EVALUATED("0")!>rem(2u.toUShort())<!>
53-
const val rem5 = 2u.toUByte().<!EVALUATED("0")!>rem(2u)<!>
54-
const val rem6 = 2u.toUByte().<!EVALUATED("0")!>rem(2UL)<!>
55-
56-
const val mod1 = 1u.toUByte().<!EVALUATED("1")!>mod(2u.toUByte())<!>
57-
const val mod2 = 2u.toUByte().<!EVALUATED("0")!>mod(2u.toUByte())<!>
58-
const val mod3 = 3u.toUByte().<!EVALUATED("1")!>mod(2u.toUByte())<!>
59-
const val mod4 = 2u.toUByte().<!EVALUATED("0")!>mod(2u.toUShort())<!>
60-
const val mod5 = 2u.toUByte().<!EVALUATED("0")!>mod(2u)<!>
61-
const val mod6 = 2u.toUByte().<!EVALUATED("0")!>mod(2UL)<!>
62-
63-
const val and1 = 1u.toUByte().<!EVALUATED("0")!>and(2u.toUByte())<!>
64-
const val and2 = 2u.toUByte().<!EVALUATED("2")!>and(2u.toUByte())<!>
65-
const val and3 = 3u.toUByte().<!EVALUATED("2")!>and(2u.toUByte())<!>
7+
const val zeroVal = 0u.<!EVALUATED("0")!>toUByte()<!>
8+
const val oneVal = 1u.<!EVALUATED("1")!>toUByte()<!>
9+
const val twoVal = 2u.<!EVALUATED("2")!>toUByte()<!>
10+
const val threeVal = 3u.<!EVALUATED("3")!>toUByte()<!>
11+
const val fourVal = 4u.<!EVALUATED("4")!>toUByte()<!>
12+
13+
const val byteVal = 2.<!EVALUATED("2")!>toByte()<!>
14+
const val shortVal = 2.<!EVALUATED("2")!>toShort()<!>
15+
const val intVal = <!EVALUATED("2")!>2<!>
16+
const val longVal = <!EVALUATED("2")!>2L<!>
17+
const val ubyteVal = 2u.<!EVALUATED("2")!>toUByte()<!>
18+
const val ushortVal = 2u.<!EVALUATED("2")!>toUShort()<!>
19+
const val uintVal = <!EVALUATED("2")!>2u<!>
20+
const val ulongVal = <!EVALUATED("2")!>2UL<!>
21+
const val floatVal = <!EVALUATED("2.0")!>2.0f<!>
22+
const val doubleVal = <!EVALUATED("2.0")!>2.0<!>
23+
24+
const val compareTo1 = oneVal.<!EVALUATED("-1")!>compareTo(twoVal)<!>
25+
const val compareTo2 = twoVal.<!EVALUATED("0")!>compareTo(twoVal)<!>
26+
const val compareTo3 = threeVal.<!EVALUATED("1")!>compareTo(twoVal)<!>
27+
const val compareTo4 = twoVal.<!EVALUATED("0")!>compareTo(ushortVal)<!>
28+
const val compareTo5 = twoVal.<!EVALUATED("0")!>compareTo(uintVal)<!>
29+
const val compareTo6 = twoVal.<!EVALUATED("0")!>compareTo(ulongVal)<!>
30+
31+
const val plus1 = oneVal.<!EVALUATED("3")!>plus(twoVal)<!>
32+
const val plus2 = twoVal.<!EVALUATED("4")!>plus(twoVal)<!>
33+
const val plus3 = threeVal.<!EVALUATED("5")!>plus(twoVal)<!>
34+
const val plus4 = twoVal.<!EVALUATED("4")!>plus(ushortVal)<!>
35+
const val plus5 = twoVal.<!EVALUATED("4")!>plus(uintVal)<!>
36+
const val plus6 = twoVal.<!EVALUATED("4")!>plus(ulongVal)<!>
37+
38+
const val minus1 = oneVal.<!EVALUATED("4294967295")!>minus(twoVal)<!>
39+
const val minus2 = twoVal.<!EVALUATED("0")!>minus(twoVal)<!>
40+
const val minus3 = threeVal.<!EVALUATED("1")!>minus(twoVal)<!>
41+
const val minus4 = twoVal.<!EVALUATED("0")!>minus(ushortVal)<!>
42+
const val minus5 = twoVal.<!EVALUATED("0")!>minus(uintVal)<!>
43+
const val minus6 = twoVal.<!EVALUATED("0")!>minus(ulongVal)<!>
44+
45+
const val times1 = oneVal.<!EVALUATED("2")!>times(twoVal)<!>
46+
const val times2 = twoVal.<!EVALUATED("4")!>times(twoVal)<!>
47+
const val times3 = threeVal.<!EVALUATED("6")!>times(twoVal)<!>
48+
const val times4 = twoVal.<!EVALUATED("4")!>times(ushortVal)<!>
49+
const val times5 = twoVal.<!EVALUATED("4")!>times(uintVal)<!>
50+
const val times6 = twoVal.<!EVALUATED("4")!>times(ulongVal)<!>
51+
52+
const val div1 = oneVal.<!EVALUATED("0")!>div(twoVal)<!>
53+
const val div2 = twoVal.<!EVALUATED("1")!>div(twoVal)<!>
54+
const val div3 = threeVal.<!EVALUATED("1")!>div(twoVal)<!>
55+
const val div4 = twoVal.<!EVALUATED("1")!>div(ushortVal)<!>
56+
const val div5 = twoVal.<!EVALUATED("1")!>div(uintVal)<!>
57+
const val div6 = twoVal.<!EVALUATED("1")!>div(ulongVal)<!>
58+
59+
const val floorDiv1 = oneVal.<!EVALUATED("0")!>floorDiv(twoVal)<!>
60+
const val floorDiv2 = twoVal.<!EVALUATED("1")!>floorDiv(twoVal)<!>
61+
const val floorDiv3 = threeVal.<!EVALUATED("1")!>floorDiv(twoVal)<!>
62+
const val floorDiv4 = twoVal.<!EVALUATED("1")!>floorDiv(ushortVal)<!>
63+
const val floorDiv5 = twoVal.<!EVALUATED("1")!>floorDiv(uintVal)<!>
64+
const val floorDiv6 = twoVal.<!EVALUATED("1")!>floorDiv(ulongVal)<!>
65+
66+
const val rem1 = oneVal.<!EVALUATED("1")!>rem(twoVal)<!>
67+
const val rem2 = twoVal.<!EVALUATED("0")!>rem(twoVal)<!>
68+
const val rem3 = threeVal.<!EVALUATED("1")!>rem(twoVal)<!>
69+
const val rem4 = twoVal.<!EVALUATED("0")!>rem(ushortVal)<!>
70+
const val rem5 = twoVal.<!EVALUATED("0")!>rem(uintVal)<!>
71+
const val rem6 = twoVal.<!EVALUATED("0")!>rem(ulongVal)<!>
72+
73+
const val mod1 = oneVal.<!EVALUATED("1")!>mod(twoVal)<!>
74+
const val mod2 = twoVal.<!EVALUATED("0")!>mod(twoVal)<!>
75+
const val mod3 = threeVal.<!EVALUATED("1")!>mod(twoVal)<!>
76+
const val mod4 = twoVal.<!EVALUATED("0")!>mod(ushortVal)<!>
77+
const val mod5 = twoVal.<!EVALUATED("0")!>mod(uintVal)<!>
78+
const val mod6 = twoVal.<!EVALUATED("0")!>mod(ulongVal)<!>
79+
80+
const val and1 = oneVal.<!EVALUATED("0")!>and(twoVal)<!>
81+
const val and2 = twoVal.<!EVALUATED("2")!>and(twoVal)<!>
82+
const val and3 = threeVal.<!EVALUATED("2")!>and(twoVal)<!>
6683
const val and4 = 12u.toUByte().<!EVALUATED("8")!>and(10u.toUByte())<!>
6784

68-
const val or1 = 1u.toUByte().<!EVALUATED("3")!>or(2u.toUByte())<!>
69-
const val or2 = 2u.toUByte().<!EVALUATED("2")!>or(2u.toUByte())<!>
70-
const val or3 = 3u.toUByte().<!EVALUATED("3")!>or(2u.toUByte())<!>
85+
const val or1 = oneVal.<!EVALUATED("3")!>or(twoVal)<!>
86+
const val or2 = twoVal.<!EVALUATED("2")!>or(twoVal)<!>
87+
const val or3 = threeVal.<!EVALUATED("3")!>or(twoVal)<!>
7188
const val or4 = 12u.toUByte().<!EVALUATED("14")!>or(10u.toUByte())<!>
7289

73-
const val xor1 = 1u.toUByte().<!EVALUATED("3")!>xor(2u.toUByte())<!>
74-
const val xor2 = 2u.toUByte().<!EVALUATED("0")!>xor(2u.toUByte())<!>
75-
const val xor3 = 3u.toUByte().<!EVALUATED("1")!>xor(2u.toUByte())<!>
90+
const val xor1 = oneVal.<!EVALUATED("3")!>xor(twoVal)<!>
91+
const val xor2 = twoVal.<!EVALUATED("0")!>xor(twoVal)<!>
92+
const val xor3 = threeVal.<!EVALUATED("1")!>xor(twoVal)<!>
7693
const val xor4 = 12u.toUByte().<!EVALUATED("6")!>xor(10u.toUByte())<!>
7794

78-
const val inv1 = 0u.toUByte().<!EVALUATED("255")!>inv()<!>
79-
const val inv2 = 1u.toUByte().<!EVALUATED("254")!>inv()<!>
95+
const val inv1 = zeroVal.<!EVALUATED("255")!>inv()<!>
96+
const val inv2 = oneVal.<!EVALUATED("254")!>inv()<!>
8097

81-
const val convert1 = 1u.toUByte().<!EVALUATED("1")!>toUByte()<!>
82-
const val convert2 = 1u.toUByte().<!EVALUATED("1")!>toUShort()<!>
83-
const val convert3 = 1u.toUByte().<!EVALUATED("1")!>toUInt()<!>
84-
const val convert4 = 1u.toUByte().<!EVALUATED("1")!>toULong()<!>
85-
const val convert5 = 1u.toUByte().<!EVALUATED("1.0")!>toFloat()<!>
86-
const val convert6 = 1u.toUByte().<!EVALUATED("1.0")!>toDouble()<!>
87-
const val convert7 = 1u.toUByte().<!EVALUATED("1")!>toByte()<!>
88-
const val convert8 = 1u.toUByte().<!EVALUATED("1")!>toShort()<!>
89-
const val convert9 = 1u.toUByte().<!EVALUATED("1")!>toInt()<!>
90-
const val convert10 = 1u.toUByte().<!EVALUATED("1")!>toLong()<!>
98+
const val convert1 = oneVal.<!EVALUATED("1")!>toUByte()<!>
99+
const val convert2 = oneVal.<!EVALUATED("1")!>toUShort()<!>
100+
const val convert3 = oneVal.<!EVALUATED("1")!>toUInt()<!>
101+
const val convert4 = oneVal.<!EVALUATED("1")!>toULong()<!>
102+
const val convert5 = oneVal.<!EVALUATED("1.0")!>toFloat()<!>
103+
const val convert6 = oneVal.<!EVALUATED("1.0")!>toDouble()<!>
104+
const val convert7 = oneVal.<!EVALUATED("1")!>toByte()<!>
105+
const val convert8 = oneVal.<!EVALUATED("1")!>toShort()<!>
106+
const val convert9 = oneVal.<!EVALUATED("1")!>toInt()<!>
107+
const val convert10 = oneVal.<!EVALUATED("1")!>toLong()<!>
91108

92109
// TODO, KT-80646: Enable once conversion extension functions are supported (requires bootstrapped compiler)
93110
// const val convert11 = 1.toByte().toUByte()
94111
// const val convert12 = 1.toShort().toUByte()
95112
// const val convert13 = 1.toUByte()
96113
// const val convert14 = 1L.toUByte()
97114

98-
const val equals1 = <!EVALUATED("false")!>1u.toUByte() == 2u.toUByte()<!>
99-
const val equals2 = <!EVALUATED("true")!>2u.toUByte() == 2u.toUByte()<!>
100-
const val equals3 = <!EVALUATED("false")!>3u.toUByte() == 2u.toUByte()<!>
101-
const val equals4 = <!EVALUATED("false")!>4u.toUByte() == 2u.toUByte()<!>
115+
const val equals1 = <!EVALUATED("false")!>oneVal == twoVal<!>
116+
const val equals2 = <!EVALUATED("true")!>twoVal == twoVal<!>
117+
const val equals3 = <!EVALUATED("false")!>threeVal == twoVal<!>
118+
const val equals4 = <!EVALUATED("false")!>fourVal == twoVal<!>
102119

103-
const val toString1 = 1u.toUByte().<!EVALUATED("1")!>toString()<!>
104-
const val toString2 = 2u.toUByte().<!EVALUATED("2")!>toString()<!>
120+
const val toString1 = oneVal.<!EVALUATED("1")!>toString()<!>
121+
const val toString2 = twoVal.<!EVALUATED("2")!>toString()<!>
105122

106-
const val limits1 = <!EVALUATED("255")!>254u.toUByte()+1u.toUByte()<!>
107-
const val limits2 = <!EVALUATED("256")!>255u.toUByte()+1u.toUByte()<!>
108-
const val limits3 = <!EVALUATED("4294967295")!>0u.toUByte()-1u.toUByte()<!>
123+
const val limits1 = <!EVALUATED("255")!>254u.toUByte()+oneVal<!>
124+
const val limits2 = <!EVALUATED("256")!>255u.toUByte()+oneVal<!>
125+
const val limits3 = <!EVALUATED("4294967295")!>zeroVal-oneVal<!>
109126

110127
// STOP_EVALUATION_CHECKS
111128
fun box(): String {

0 commit comments

Comments
 (0)