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 with array of f64 works fine 15#f64[] array = [0, 1, 2, 3, 4, 5, 6]; 16#for(i=6; i>=0; i--) assert_eq(i, array[i]); 17 18.array array_f64 f64 7 {0 1 2 3 4 5 6} 19 20.function i32 main(){ 21 lda.const v0, array_f64 22 movi v1, 6 23 ldai 6 24loop: 25 jltz loop_exit 26 lda v1 27 i32tof64 28 sta.64 v2 29 lda v1 30 fldarr.64 v0 31 fsub2.64 v2 32 sta.64 v2 33 call.short abs, v2, v2 34 sta.64 v2 35 fldai.64 1e-13 36 fcmpl.64 v2 37 jlez exit_failure 38 inci v1, -1 39 lda v1 40 jmp loop 41loop_exit: 42 ldai 0 43 return 44exit_failure: 45 ldai 1 46 return 47} 48 49.function f64 abs(f64 a0){ 50 fldai.64 0.0 51 fcmpl.64 a0 52 jlez label 53 lda.64 a0 54 fneg.64 55 return.64 56label: 57 lda.64 a0 58 return.64 59}