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#! CHECKER Check method parameters 15#! RUN force_jit: true, options: "--compiler-inlining=false", entry: "_GLOBAL::main" 16#! EVENT /Compilation,.*main.*/ 17#! EVENT /Compilation,.*foo_f32.*/ 18#! EVENT /Compilation,.*foo_f64.*/ 19#! EVENT /Compilation,.*foo_u1.*/ 20#! EVENT /Compilation,.*foo_u8.*/ 21#! EVENT /Compilation,.*foo_u16.*/ 22#! EVENT /Compilation,.*foo_u32.*/ 23#! EVENT /Compilation,.*foo_u64.*/ 24 25.function f32 foo_f32(f32 a0) { 26 fmovi v0, 1.0 27 lda a0 28 fcmpg v0 29 jnez exit_failure 30 fldai 1.0 31 return 32exit_failure: 33 fldai 99.0 34 return 35} 36 37.function f64 foo_f64(f64 a0) { 38 fmovi.64 v0, 2.0 39 lda.64 a0 40 fcmpg.64 v0 41 jnez exit_failure 42 fldai.64 2.0 43 return.64 44exit_failure: 45 fldai.64 98.0 46 return.64 47} 48 49.function u1 foo_u1(u1 a0) { 50 ldai 0 51 jne a0, exit_failure 52 ldai 0 53 return 54exit_failure: 55 ldai 1 56 return 57} 58 59.function u8 foo_u8(u8 a0) { 60 ldai 0xff 61 jne a0, exit_failure 62 ldai 0xff 63 return 64exit_failure: 65 ldai 0xf 66 return 67} 68 69.function u16 foo_u16(u16 a0) { 70 ldai 0xffff 71 jne a0, exit_failure 72 ldai 0xffff 73 return 74exit_failure: 75 ldai 0xff 76 return 77} 78 79.function u32 foo_u32(u32 a0) { 80 ldai 0xffffff 81 jne a0, exit_failure 82 ldai 0xffffff 83 return 84exit_failure: 85 ldai 0xffffff 86 return 87} 88 89.function u64 foo_u64(u64 a0) { 90 ldai.64 0xffffffffff 91 ucmp.64 a0 92 jnez exit_failure 93 ldai 0xffffffffff 94 return.64 95exit_failure: 96 ldai 0xffffffff 97 return.64 98} 99 100.function u1 main() { 101 fmovi v1, 1.0 102 call.short foo_f32, v1, v1 103 fcmpg v1 104 jnez exit_failure_1 105 fmovi.64 v1, 2.0 106 call.short foo_f64, v1, v1 107 fcmpg.64 v1 108 jnez exit_failure_2 109 movi v1, 0 110 call.short foo_u1, v1, v1 111 jne v1, exit_failure_3 112 movi v1, 0xff 113 call.short foo_u8, v1, v1 114 jne v1, exit_failure_4 115 movi v1, 0xffff 116 call.short foo_u16, v1, v1 117 jne v1, exit_failure_5 118 movi v1, 0xffffff 119 call.short foo_u32, v1, v1 120 jne v1, exit_failure_6 121 movi.64 v1, 0xffffffffff 122 call.short foo_u64, v1, v1 123 jne v1, exit_failure_7 124 ldai 0 125 return 126exit_failure_1: 127 ldai 1 128 return 129exit_failure_2: 130 ldai 2 131 return 132exit_failure_3: 133 ldai 3 134 return 135exit_failure_4: 136 ldai 4 137 return 138exit_failure_5: 139 ldai 5 140 return 141exit_failure_6: 142 ldai 6 143 return 144exit_failure_7: 145 ldai 7 146 return 147}