# Copyright (c) 2021-2022 Huawei Device Co., Ltd. # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. .record A { i32 a1 } .record Asm{ i32 asm1 i64 asm2 } .record Asm2{ i32 asm1 i64 asm2 f64 asm3 } .function i32 main() { newobj v0, Asm lda.obj v0 jnez.obj label_1 ldai 1 return label_1: newobj v0, A lda.obj v0 mov.null v0 jne.obj v0, label_2 ldai 2 return label_2: newobj v0, Asm lda.obj v0 isinstance Asm jeqz label_3 newobj v0, Asm2 lda.obj v0 isinstance Asm jnez label_3 lda.obj v0 checkcast Asm2 jeqz.obj label_4 newobj v0, A newobj v1, A lda.obj v1 jne.obj v0, label_5 ldai 5 return label_5: ldai 0 return label_3: ldai 3 return label_4: ldai 4 return }