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 f32 works fine 15#f32[] array = [0, 1, 2, 3, 4, 5, 6]; 16#for(i=6; i>=0; i--) assert_eq(i, array[i]); 17 18.array array_f32 f32 7 {0 1 2 3 4 5 6} 19 20.function i32 main(){ 21 lda.const v0, array_f32 22 movi v1, 6 23 ldai 6 24loop: 25 jltz loop_exit 26 lda v1 27 i32tof32 28 sta v2 29 lda v1 30 fldarr.32 v0 31 fsub2 v2 32 sta v2 33 call.short abs, v2, v2 34 sta v2 35 fldai 1e-6 36 fcmpl 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 f32 abs(f32 a0){ 50 fldai 0.0 51 fcmpl a0 52 jlez label 53 lda a0 54 fneg 55 return 56label: 57 lda a0 58 return 59}