• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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}