1b1994897Sopenharmony_ci# Copyright (c) 2021-2022 Huawei Device Co., Ltd. 2b1994897Sopenharmony_ci# Licensed under the Apache License, Version 2.0 (the "License"); 3b1994897Sopenharmony_ci# you may not use this file except in compliance with the License. 4b1994897Sopenharmony_ci# You may obtain a copy of the License at 5b1994897Sopenharmony_ci# 6b1994897Sopenharmony_ci# http://www.apache.org/licenses/LICENSE-2.0 7b1994897Sopenharmony_ci# 8b1994897Sopenharmony_ci# Unless required by applicable law or agreed to in writing, software 9b1994897Sopenharmony_ci# distributed under the License is distributed on an "AS IS" BASIS, 10b1994897Sopenharmony_ci# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 11b1994897Sopenharmony_ci# See the License for the specific language governing permissions and 12b1994897Sopenharmony_ci# limitations under the License. 13b1994897Sopenharmony_ci 14b1994897Sopenharmony_ci# fmod(a0, a1) == a2 15b1994897Sopenharmony_ci.function i32 fmod(f64 a0, f64 a1, f64 a2) { 16b1994897Sopenharmony_ci lda.64 a0 17b1994897Sopenharmony_ci fmod2.64 a1 18b1994897Sopenharmony_ci fcmpl.64 a2 19b1994897Sopenharmony_ci return 20b1994897Sopenharmony_ci} 21b1994897Sopenharmony_ci 22b1994897Sopenharmony_ci.function i32 main() { 23b1994897Sopenharmony_ci fmovi.64 v0, 5.3 24b1994897Sopenharmony_ci fmovi.64 v1, 2.0 25b1994897Sopenharmony_ci fmovi.64 v2, 1.2999999999999998 26b1994897Sopenharmony_ci call fmod, v0, v1, v2 27b1994897Sopenharmony_ci jnez end 28b1994897Sopenharmony_ci 29b1994897Sopenharmony_ci fmovi.64 v0, -18.5 30b1994897Sopenharmony_ci fmovi.64 v1, 4.2 31b1994897Sopenharmony_ci fmovi.64 v2, -1.6999999999999993 32b1994897Sopenharmony_ci call fmod, v0, v1, v2 33b1994897Sopenharmony_ci jnez end 34b1994897Sopenharmony_ci 35b1994897Sopenharmony_ci fmovi.64 v0, 2.1 36b1994897Sopenharmony_ci fmovi.64 v1, 4.2 37b1994897Sopenharmony_ci fmovi.64 v2, 2.1 38b1994897Sopenharmony_ci call fmod, v0, v1, v2 39b1994897Sopenharmony_ci jnez end 40b1994897Sopenharmony_ci 41b1994897Sopenharmony_ci fmovi.64 v0, 18.5 42b1994897Sopenharmony_ci fmovi.64 v1, 4.2 43b1994897Sopenharmony_ci fmovi.64 v2, 1.6999999999999993 44b1994897Sopenharmony_ci call fmod, v0, v1, v2 45b1994897Sopenharmony_ci jnez end 46b1994897Sopenharmony_ci 47b1994897Sopenharmony_ci fmovi.64 v0, 4.0 48b1994897Sopenharmony_ci fmovi.64 v1, 4.0 49b1994897Sopenharmony_ci fmovi.64 v2, 0.0 50b1994897Sopenharmony_ci call fmod, v0, v1, v2 51b1994897Sopenharmony_ci 52b1994897Sopenharmony_ciend: 53b1994897Sopenharmony_ci return 54b1994897Sopenharmony_ci} 55