1# Copyright (c) 2021-2022 Huawei Device Co., Ltd. 2# Licensed under the Apache License, Version 2.0 (the "License"); 3# you may not use this file except in compliance with the License. 4# You may obtain a copy of the License at 5# 6# http://www.apache.org/licenses/LICENSE-2.0 7# 8# Unless required by applicable law or agreed to in writing, software 9# distributed under the License is distributed on an "AS IS" BASIS, 10# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 11# See the License for the specific language governing permissions and 12# limitations under the License. 13 14# Assert that operations ldobj, ldobj.64 work fine 15 16.record Asm { 17 i32 asm1 18 i64 asm2 19 f64 asm3 20} 21 22.function void Asm.Construct(Asm a0) <ctor> { 23 ldai 0xFFFFFFFF 24 stobj a0, Asm.asm1 25 26 ldai.64 0xFFFFFFFFFFFFFFFF 27 movi.64 v0, 32 28 shl2.64 v0 29 stobj.64 a0, Asm.asm2 30 31 fldai.64 1.0 32 stobj.64 a0, Asm.asm3 33 34 return.void 35} 36 37.function i32 main() { 38 movi v1, 0xFFFFFFFF 39 40 ldai.64 0xFFFFFFFFFFFFFFFF 41 movi.64 v0, 32 42 shl2.64 v0 43 sta.64 v2 44 45 fmovi.64 v3, 1.0 46 47 initobj.short Asm.Construct 48 sta.obj v0 49 50 ldobj v0, Asm.asm1 51 jne v1, exit_failure 52 53 ldobj.64 v0, Asm.asm2 54 cmp.64 v2 55 jnez exit_failure 56 57 ldobj.64 v0, Asm.asm3 58 fcmpg.64 v3 59 jnez exit_failure 60 61 ldai 0 62 return 63 64exit_failure: 65 ldai 1 66 return 67} 68