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