1b1994897Sopenharmony_ci# Copyright (c) 2021-2022 Huawei Device Co., Ltd. 2b1994897Sopenharmony_ci# Licensed under the Apache License, Version 2.0 (the "License"); 3b1994897Sopenharmony_ci# you may not use this file except in compliance with the License. 4b1994897Sopenharmony_ci# You may obtain a copy of the License at 5b1994897Sopenharmony_ci# 6b1994897Sopenharmony_ci# http://www.apache.org/licenses/LICENSE-2.0 7b1994897Sopenharmony_ci# 8b1994897Sopenharmony_ci# Unless required by applicable law or agreed to in writing, software 9b1994897Sopenharmony_ci# distributed under the License is distributed on an "AS IS" BASIS, 10b1994897Sopenharmony_ci# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 11b1994897Sopenharmony_ci# See the License for the specific language governing permissions and 12b1994897Sopenharmony_ci# limitations under the License. 13b1994897Sopenharmony_ci 14b1994897Sopenharmony_ci.record A { 15b1994897Sopenharmony_ci u1 kek 16b1994897Sopenharmony_ci} 17b1994897Sopenharmony_ci 18b1994897Sopenharmony_ci.function A A.init() { 19b1994897Sopenharmony_ci newobj v0, A 20b1994897Sopenharmony_ci lda.obj v0 21b1994897Sopenharmony_ci 22b1994897Sopenharmony_ci return.obj 23b1994897Sopenharmony_ci} 24b1994897Sopenharmony_ci 25b1994897Sopenharmony_ci.function u1 g() { 26b1994897Sopenharmony_ci mov v0, v1 27b1994897Sopenharmony_ci mov.64 v2, v3 28b1994897Sopenharmony_ci mov.obj v4, v5 29b1994897Sopenharmony_ci 30b1994897Sopenharmony_ci movi v0, -1 31b1994897Sopenharmony_ci movi.64 v0, 2 32b1994897Sopenharmony_ci fmovi.64 v0, 3.01 33b1994897Sopenharmony_ci 34b1994897Sopenharmony_ci lda v1 35b1994897Sopenharmony_ci lda.64 v0 36b1994897Sopenharmony_ci lda.obj v1 37b1994897Sopenharmony_ci 38b1994897Sopenharmony_ci ldai 1 39b1994897Sopenharmony_ci ldai.64 2 40b1994897Sopenharmony_ci fldai.64 3.01 41b1994897Sopenharmony_ci lda.str "kek" 42b1994897Sopenharmony_ci lda.type A 43b1994897Sopenharmony_ci lda.null 44b1994897Sopenharmony_ci 45b1994897Sopenharmony_ci sta v0 46b1994897Sopenharmony_ci sta.64 v1 47b1994897Sopenharmony_ci sta.obj v2 48b1994897Sopenharmony_ci 49b1994897Sopenharmony_ci label: 50b1994897Sopenharmony_ci jmp label 51b1994897Sopenharmony_ci 52b1994897Sopenharmony_ci jeq v1, check_v1_eq 53b1994897Sopenharmony_ci ldai 1 54b1994897Sopenharmony_ci jmp check_v1_done 55b1994897Sopenharmony_ci check_v1_eq: 56b1994897Sopenharmony_ci ldai 0 57b1994897Sopenharmony_ci check_v1_done: 58b1994897Sopenharmony_ci cmp.64 v1 59b1994897Sopenharmony_ci ucmp v2 60b1994897Sopenharmony_ci ucmp.64 v3 61b1994897Sopenharmony_ci 62b1994897Sopenharmony_ci fcmpl.64 v1 63b1994897Sopenharmony_ci fcmpg.64 v1 64b1994897Sopenharmony_ci 65b1994897Sopenharmony_ci jeqz label 66b1994897Sopenharmony_ci jnez label 67b1994897Sopenharmony_ci jltz label 68b1994897Sopenharmony_ci jgtz label 69b1994897Sopenharmony_ci jlez label 70b1994897Sopenharmony_ci jgez label 71b1994897Sopenharmony_ci 72b1994897Sopenharmony_ci jeq v2, label 73b1994897Sopenharmony_ci jne v2, label 74b1994897Sopenharmony_ci jlt v2, label 75b1994897Sopenharmony_ci jgt v2, label 76b1994897Sopenharmony_ci jle v2, label 77b1994897Sopenharmony_ci jge v2, label 78b1994897Sopenharmony_ci 79b1994897Sopenharmony_ci fadd2.64 v1 80b1994897Sopenharmony_ci fsub2.64 v1 81b1994897Sopenharmony_ci fmul2.64 v1 82b1994897Sopenharmony_ci fdiv2.64 v1 83b1994897Sopenharmony_ci fmod2.64 v1 84b1994897Sopenharmony_ci 85b1994897Sopenharmony_ci add2 v2 86b1994897Sopenharmony_ci add2.64 v2 87b1994897Sopenharmony_ci sub2 v2 88b1994897Sopenharmony_ci sub2.64 v2 89b1994897Sopenharmony_ci mul2 v2 90b1994897Sopenharmony_ci mul2.64 v2 91b1994897Sopenharmony_ci and2 v2 92b1994897Sopenharmony_ci and2.64 v2 93b1994897Sopenharmony_ci or2 v2 94b1994897Sopenharmony_ci or2.64 v2 95b1994897Sopenharmony_ci xor2 v2 96b1994897Sopenharmony_ci xor2.64 v2 97b1994897Sopenharmony_ci shl2 v2 98b1994897Sopenharmony_ci shl2.64 v2 99b1994897Sopenharmony_ci shr2 v2 100b1994897Sopenharmony_ci shr2.64 v2 101b1994897Sopenharmony_ci ashr2 v2 102b1994897Sopenharmony_ci ashr2.64 v2 103b1994897Sopenharmony_ci div2 v2 104b1994897Sopenharmony_ci div2.64 v2 105b1994897Sopenharmony_ci mod2 v2 106b1994897Sopenharmony_ci mod2.64 v2 107b1994897Sopenharmony_ci divu2 v2 108b1994897Sopenharmony_ci divu2.64 v2 109b1994897Sopenharmony_ci modu2 v2 110b1994897Sopenharmony_ci modu2.64 v2 111b1994897Sopenharmony_ci 112b1994897Sopenharmony_ci add v1, v2 113b1994897Sopenharmony_ci sub v1, v2 114b1994897Sopenharmony_ci mul v1, v2 115b1994897Sopenharmony_ci and v1, v2 116b1994897Sopenharmony_ci or v1, v2 117b1994897Sopenharmony_ci xor v1, v2 118b1994897Sopenharmony_ci shl v1, v2 119b1994897Sopenharmony_ci shr v1, v2 120b1994897Sopenharmony_ci ashr v1, v2 121b1994897Sopenharmony_ci div v1, v2 122b1994897Sopenharmony_ci mod v1, v2 123b1994897Sopenharmony_ci 124b1994897Sopenharmony_ci addi 1 125b1994897Sopenharmony_ci subi 1 126b1994897Sopenharmony_ci muli 1 127b1994897Sopenharmony_ci andi 1 128b1994897Sopenharmony_ci ori 1 129b1994897Sopenharmony_ci xori 1 130b1994897Sopenharmony_ci shli 1 131b1994897Sopenharmony_ci shri 1 132b1994897Sopenharmony_ci ashri 1 133b1994897Sopenharmony_ci divi 1 134b1994897Sopenharmony_ci modi 1 135b1994897Sopenharmony_ci 136b1994897Sopenharmony_ci neg 137b1994897Sopenharmony_ci neg.64 138b1994897Sopenharmony_ci not 139b1994897Sopenharmony_ci not.64 140b1994897Sopenharmony_ci 141b1994897Sopenharmony_ci i32tof64 142b1994897Sopenharmony_ci u32tof64 143b1994897Sopenharmony_ci i64tof64 144b1994897Sopenharmony_ci u64tof64 145b1994897Sopenharmony_ci f64toi32 146b1994897Sopenharmony_ci f64toi64 147b1994897Sopenharmony_ci f64tou32 148b1994897Sopenharmony_ci f64tou64 149b1994897Sopenharmony_ci i32toi64 150b1994897Sopenharmony_ci i64toi32 151b1994897Sopenharmony_ci u32toi64 152b1994897Sopenharmony_ci 153b1994897Sopenharmony_ci ldarr.8 v1 154b1994897Sopenharmony_ci ldarru.8 v2 155b1994897Sopenharmony_ci ldarr.16 v1 156b1994897Sopenharmony_ci ldarru.16 v1 157b1994897Sopenharmony_ci ldarr v1 158b1994897Sopenharmony_ci ldarr.64 v1 159b1994897Sopenharmony_ci fldarr.32 v1 160b1994897Sopenharmony_ci fldarr.64 v1 161b1994897Sopenharmony_ci ldarr.obj v1 162b1994897Sopenharmony_ci 163b1994897Sopenharmony_ci starr.8 v1, v2 164b1994897Sopenharmony_ci starr.16 v1, v2 165b1994897Sopenharmony_ci starr v1, v2 166b1994897Sopenharmony_ci starr.64 v1, v2 167b1994897Sopenharmony_ci fstarr.32 v1, v2 168b1994897Sopenharmony_ci fstarr.64 v1, v2 169b1994897Sopenharmony_ci starr.obj v1, v2 170b1994897Sopenharmony_ci 171b1994897Sopenharmony_ci newobj v6, A 172b1994897Sopenharmony_ci lda.obj v6 173b1994897Sopenharmony_ci 174b1994897Sopenharmony_ci initobj A.init 175b1994897Sopenharmony_ci 176b1994897Sopenharmony_ci ldobj v0, A.kek 177b1994897Sopenharmony_ci ldobj.64 v0, A.kek 178b1994897Sopenharmony_ci ldobj.obj v0, A.kek 179b1994897Sopenharmony_ci 180b1994897Sopenharmony_ci stobj v1, A.kek 181b1994897Sopenharmony_ci stobj.64 v1, A.kek 182b1994897Sopenharmony_ci stobj.obj v1, A.kek 183b1994897Sopenharmony_ci 184b1994897Sopenharmony_ci ldstatic A.kek 185b1994897Sopenharmony_ci ldstatic.64 A.kek 186b1994897Sopenharmony_ci ldstatic.obj A.kek 187b1994897Sopenharmony_ci 188b1994897Sopenharmony_ci ststatic A.kek 189b1994897Sopenharmony_ci ststatic.64 A.kek 190b1994897Sopenharmony_ci ststatic.obj A.kek 191b1994897Sopenharmony_ci 192b1994897Sopenharmony_ci checkcast A 193b1994897Sopenharmony_ci isinstance A 194b1994897Sopenharmony_ci} 195