Support target templates in bytecode tests
Avoid test data duplication
This commit is contained in:
+8
-2
@@ -1,4 +1,3 @@
|
||||
// IGNORE_BACKEND: JVM_IR
|
||||
import kotlin.test.*
|
||||
|
||||
fun box(): String {
|
||||
@@ -22,5 +21,12 @@ fun box(): String {
|
||||
// 0 getFirst
|
||||
// 0 getLast
|
||||
// 0 getStep
|
||||
|
||||
// JVM_TEMPLATES
|
||||
// 1 IFLT
|
||||
// 1 IF
|
||||
// 1 IF
|
||||
|
||||
// JVM_IR_TEMPLATES
|
||||
// 1 IF_ICMPGT
|
||||
// 1 IF_ICMPLE
|
||||
// 2 IF
|
||||
Vendored
-27
@@ -1,27 +0,0 @@
|
||||
// TARGET_BACKEND: JVM_IR
|
||||
import kotlin.test.*
|
||||
|
||||
fun box(): String {
|
||||
val arr = intArrayOf(1, 1, 1, 1)
|
||||
var sum = 0
|
||||
for (i in arr.indices.reversed()) {
|
||||
sum = sum * 10 + i + arr[i]
|
||||
}
|
||||
assertEquals(4321, sum)
|
||||
|
||||
return "OK"
|
||||
}
|
||||
|
||||
// JVM non-IR uses while.
|
||||
// JVM IR uses if + do-while.
|
||||
|
||||
// 0 reversed
|
||||
// 0 iterator
|
||||
// 0 getStart
|
||||
// 0 getEnd
|
||||
// 0 getFirst
|
||||
// 0 getLast
|
||||
// 0 getStep
|
||||
// 1 IF_ICMPGT
|
||||
// 1 IF_ICMPLE
|
||||
// 2 IF
|
||||
+10
-3
@@ -1,4 +1,3 @@
|
||||
// IGNORE_BACKEND: JVM_IR
|
||||
import kotlin.test.*
|
||||
|
||||
fun box(): String {
|
||||
@@ -33,7 +32,15 @@ fun box(): String {
|
||||
// 0 getFirst
|
||||
// 0 getLast
|
||||
// 0 getStep
|
||||
// 2 IF_ICMPGT
|
||||
// 1 IFGT
|
||||
|
||||
// JVM_TEMPLATES
|
||||
// 2 IF_ICMPGT
|
||||
// 3 IF
|
||||
// 1 LCMP
|
||||
// 1 LCMP
|
||||
|
||||
// JVM_IR_TEMPLATES
|
||||
// 2 IF_ICMPLE
|
||||
// 1 IFLE
|
||||
// 4 IF
|
||||
// 2 LCMP
|
||||
-40
@@ -1,40 +0,0 @@
|
||||
// TARGET_BACKEND: JVM_IR
|
||||
import kotlin.test.*
|
||||
|
||||
fun box(): String {
|
||||
var sum = 0
|
||||
for (i in (4 downTo 1).reversed()) {
|
||||
sum = sum * 10 + i
|
||||
}
|
||||
assertEquals(1234, sum)
|
||||
|
||||
var sumL = 0L
|
||||
for (i in (4L downTo 1L).reversed()) {
|
||||
sumL = sumL * 10 + i
|
||||
}
|
||||
assertEquals(1234L, sumL)
|
||||
|
||||
var sumC = 0
|
||||
for (i in ('4' downTo '1').reversed()) {
|
||||
sumC = sumC * 10 + i.toInt() - '0'.toInt()
|
||||
}
|
||||
assertEquals(1234, sumC)
|
||||
|
||||
return "OK"
|
||||
}
|
||||
|
||||
// JVM non-IR uses while.
|
||||
// JVM IR uses if + do-while. The surrounding "if" gets optimized in this test (constant condition), except for Long.
|
||||
|
||||
// 0 reversed
|
||||
// 0 iterator
|
||||
// 0 getStart
|
||||
// 0 getEnd
|
||||
// 0 getFirst
|
||||
// 0 getLast
|
||||
// 0 getStep
|
||||
// 2 IF_ICMPLE
|
||||
// 1 IFGT
|
||||
// 1 IFLE
|
||||
// 4 IF
|
||||
// 2 LCMP
|
||||
+10
-2
@@ -1,4 +1,3 @@
|
||||
// IGNORE_BACKEND: JVM_IR
|
||||
import kotlin.test.*
|
||||
|
||||
fun box(): String {
|
||||
@@ -33,7 +32,16 @@ fun box(): String {
|
||||
// 0 getFirst
|
||||
// 0 getLast
|
||||
// 0 getStep
|
||||
|
||||
// JVM_TEMPLATES
|
||||
// 2 IF_ICMPLT
|
||||
// 1 IFLT
|
||||
// 3 IF
|
||||
// 1 LCMP
|
||||
// 1 LCMP
|
||||
|
||||
// JVM_IR_TEMPLATES
|
||||
// 2 IF_ICMPLE
|
||||
// 1 IFGT
|
||||
// 1 IFLE
|
||||
// 4 IF
|
||||
// 2 LCMP
|
||||
Vendored
-40
@@ -1,40 +0,0 @@
|
||||
// TARGET_BACKEND: JVM_IR
|
||||
import kotlin.test.*
|
||||
|
||||
fun box(): String {
|
||||
var sum = 0
|
||||
for (i in (1 .. 4).reversed()) {
|
||||
sum = sum * 10 + i
|
||||
}
|
||||
assertEquals(4321, sum)
|
||||
|
||||
var sumL = 0L
|
||||
for (i in (1L .. 4L).reversed()) {
|
||||
sumL = sumL * 10 + i
|
||||
}
|
||||
assertEquals(4321L, sumL)
|
||||
|
||||
var sumC = 0
|
||||
for (i in ('1' .. '4').reversed()) {
|
||||
sumC = sumC * 10 + i.toInt() - '0'.toInt()
|
||||
}
|
||||
assertEquals(4321, sumC)
|
||||
|
||||
return "OK"
|
||||
}
|
||||
|
||||
// JVM non-IR uses while.
|
||||
// JVM IR uses if + do-while. The surrounding "if" gets optimized in this test (constant condition), except for Long.
|
||||
|
||||
// 0 reversed
|
||||
// 0 iterator
|
||||
// 0 getStart
|
||||
// 0 getEnd
|
||||
// 0 getFirst
|
||||
// 0 getLast
|
||||
// 0 getStep
|
||||
// 2 IF_ICMPLE
|
||||
// 1 IFGT
|
||||
// 1 IFLE
|
||||
// 4 IF
|
||||
// 2 LCMP
|
||||
Vendored
+10
-2
@@ -1,4 +1,3 @@
|
||||
// IGNORE_BACKEND: JVM_IR
|
||||
import kotlin.test.*
|
||||
|
||||
fun box(): String {
|
||||
@@ -33,7 +32,16 @@ fun box(): String {
|
||||
// 0 getFirst
|
||||
// 0 getLast
|
||||
// 0 getStep
|
||||
|
||||
// JVM_TEMPLATES
|
||||
// 2 IF_ICMPLT
|
||||
// 1 IFLT
|
||||
// 3 IF
|
||||
// 1 LCMP
|
||||
// 1 LCMP
|
||||
|
||||
// JVM_IR_TEMPLATES
|
||||
// 2 IF_ICMPLE
|
||||
// 1 IFGT
|
||||
// 1 IFLE
|
||||
// 4 IF
|
||||
// 2 LCMP
|
||||
Vendored
-40
@@ -1,40 +0,0 @@
|
||||
// TARGET_BACKEND: JVM_IR
|
||||
import kotlin.test.*
|
||||
|
||||
fun box(): String {
|
||||
var sum = 0
|
||||
for (i in (4 downTo 1).reversed().reversed()) {
|
||||
sum = sum * 10 + i
|
||||
}
|
||||
assertEquals(1234, sum)
|
||||
|
||||
var sumL = 0L
|
||||
for (i in (4L downTo 1L).reversed().reversed()) {
|
||||
sumL = sumL * 10 + i
|
||||
}
|
||||
assertEquals(1234L, sumL)
|
||||
|
||||
var sumC = 0
|
||||
for (i in ('4' downTo '1').reversed().reversed()) {
|
||||
sumC = sumC * 10 + i.toInt() - '0'.toInt()
|
||||
}
|
||||
assertEquals(1234, sumC)
|
||||
|
||||
return "OK"
|
||||
}
|
||||
|
||||
// JVM non-IR uses while.
|
||||
// JVM IR uses if + do-while. The surrounding "if" gets optimized in this test (constant condition), except for Long.
|
||||
|
||||
// 0 reversed
|
||||
// 0 iterator
|
||||
// 0 getStart
|
||||
// 0 getEnd
|
||||
// 0 getFirst
|
||||
// 0 getLast
|
||||
// 0 getStep
|
||||
// 2 IF_ICMPLE
|
||||
// 1 IFGT
|
||||
// 1 IFLE
|
||||
// 4 IF
|
||||
// 2 LCMP
|
||||
+10
-2
@@ -1,4 +1,3 @@
|
||||
// IGNORE_BACKEND: JVM_IR
|
||||
import kotlin.test.*
|
||||
|
||||
fun box(): String {
|
||||
@@ -30,7 +29,16 @@ fun box(): String {
|
||||
// 0 getFirst
|
||||
// 0 getLast
|
||||
// 0 getStep
|
||||
|
||||
// JVM_TEMPLATES
|
||||
// 2 IF_ICMPGE
|
||||
// 1 IFGE
|
||||
// 3 IF
|
||||
// 1 LCMP
|
||||
// 1 LCMP
|
||||
|
||||
// JVM_IR_TEMPLATES
|
||||
// 2 IF_ICMPLE
|
||||
// 1 IFGT
|
||||
// 1 IFLE
|
||||
// 4 IF
|
||||
// 2 LCMP
|
||||
Vendored
-37
@@ -1,37 +0,0 @@
|
||||
// TARGET_BACKEND: JVM_IR
|
||||
import kotlin.test.*
|
||||
|
||||
fun box(): String {
|
||||
var sum = 0
|
||||
for (i in (1 until 5).reversed().reversed()) {
|
||||
sum = sum * 10 + i
|
||||
}
|
||||
|
||||
var sumL = 0L
|
||||
for (i in (1L until 5L).reversed().reversed()) {
|
||||
sumL = sumL * 10 + i
|
||||
}
|
||||
|
||||
var sumC = 0
|
||||
for (i in ('1' until '5').reversed().reversed()) {
|
||||
sumC = sumC * 10 + i.toInt() - '0'.toInt()
|
||||
}
|
||||
|
||||
return "OK"
|
||||
}
|
||||
|
||||
// JVM non-IR uses while.
|
||||
// JVM IR uses if + do-while. The surrounding "if" gets optimized in this test (constant condition), except for Long.
|
||||
|
||||
// 0 reversed
|
||||
// 0 iterator
|
||||
// 0 getStart
|
||||
// 0 getEnd
|
||||
// 0 getFirst
|
||||
// 0 getLast
|
||||
// 0 getStep
|
||||
// 2 IF_ICMPLE
|
||||
// 1 IFGT
|
||||
// 1 IFLE
|
||||
// 4 IF
|
||||
// 2 LCMP
|
||||
+10
-2
@@ -1,4 +1,3 @@
|
||||
// IGNORE_BACKEND: JVM_IR
|
||||
import kotlin.test.*
|
||||
|
||||
fun box(): String {
|
||||
@@ -30,7 +29,16 @@ fun box(): String {
|
||||
// 0 getFirst
|
||||
// 0 getLast
|
||||
// 0 getStep
|
||||
|
||||
// JVM_TEMPLATES
|
||||
// 2 IF_ICMPLT
|
||||
// 1 IFLT
|
||||
// 3 IF
|
||||
// 1 LCMP
|
||||
// 1 LCMP
|
||||
|
||||
// JVM_IR_TEMPLATES
|
||||
// 2 IF_ICMPLE
|
||||
// 1 IFGT
|
||||
// 1 IFLE
|
||||
// 4 IF
|
||||
// 2 LCMP
|
||||
-37
@@ -1,37 +0,0 @@
|
||||
// TARGET_BACKEND: JVM_IR
|
||||
import kotlin.test.*
|
||||
|
||||
fun box(): String {
|
||||
var sum = 0
|
||||
for (i in (1 until 5).reversed()) {
|
||||
sum = sum * 10 + i
|
||||
}
|
||||
|
||||
var sumL = 0L
|
||||
for (i in (1L until 5L).reversed()) {
|
||||
sumL = sumL * 10 + i
|
||||
}
|
||||
|
||||
var sumC = 0
|
||||
for (i in ('1' until '5').reversed()) {
|
||||
sumC = sumC * 10 + i.toInt() - '0'.toInt()
|
||||
}
|
||||
|
||||
return "OK"
|
||||
}
|
||||
|
||||
// JVM non-IR uses while.
|
||||
// JVM IR uses if + do-while. The surrounding "if" gets optimized in this test (constant condition), except for Long.
|
||||
|
||||
// 0 reversed
|
||||
// 0 iterator
|
||||
// 0 getStart
|
||||
// 0 getEnd
|
||||
// 0 getFirst
|
||||
// 0 getLast
|
||||
// 0 getStep
|
||||
// 2 IF_ICMPLE
|
||||
// 1 IFGT
|
||||
// 1 IFLE
|
||||
// 4 IF
|
||||
// 2 LCMP
|
||||
Reference in New Issue
Block a user