[K/N] Filecheck test for EnumWhenLowering

This commit is contained in:
Pavel Kunyavskiy
2021-12-21 16:21:55 +03:00
committed by Space
parent 60cb8543f0
commit fd63fed8b4
2 changed files with 31 additions and 0 deletions
@@ -6019,6 +6019,10 @@ fileCheckTest("filecheck_escape_analysis_enabled") {
checkPrefix = "CHECK-OPT"
}
fileCheckTest("filecheck_enum_when") {
annotatedSource = project.file('filecheck/enum_when.kt')
}
fileCheckTest("filecheck_escape_analysis_disabled") {
annotatedSource = project.file('filecheck/escape_analysis.kt')
enabled = project.globalTestArgs.contains('-g')
@@ -0,0 +1,27 @@
/*
* Copyright 2010-2021 JetBrains s.r.o. and Kotlin Programming Language contributors.
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
*/
enum class COLOR {
RED,
GREEN,
BLUE
}
// CHECK-LABEL: "kfun:#main(){}"
fun main() {
for (i in COLOR.values()) {
// CHECK: = call i32 @"kfun:kotlin.Enum#<get-ordinal>(){}kotlin.Int"(
print(when (i) {
// we can't check the register is same, because it can be saved on stack and loaded back
// CHECK: icmp eq i32 %{{[0-9a-z]*}}, 0
COLOR.RED -> 0xff0000
// CHECK: icmp eq i32 %{{[0-9a-z]*}}, 1
COLOR.GREEN -> 0x00ff00
// CHECK: icmp eq i32 %{{[0-9a-z]*}}, 2
COLOR.BLUE -> 0x0000ff
})
}
// CHECK-LABEL: epilogue:
}