1*c90c8d38SSiva Chandra //===-- Implementation of the roundf function for aarch64 -----------------===// 2*c90c8d38SSiva Chandra // 3*c90c8d38SSiva Chandra // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4*c90c8d38SSiva Chandra // See https://llvm.org/LICENSE.txt for license information. 5*c90c8d38SSiva Chandra // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6*c90c8d38SSiva Chandra // 7*c90c8d38SSiva Chandra //===----------------------------------------------------------------------===// 8*c90c8d38SSiva Chandra 9*c90c8d38SSiva Chandra #include "src/math/roundf.h" 10*c90c8d38SSiva Chandra #include "src/__support/common.h" 11*c90c8d38SSiva Chandra 12*c90c8d38SSiva Chandra namespace __llvm_libc { 13*c90c8d38SSiva Chandra 14*c90c8d38SSiva Chandra LLVM_LIBC_FUNCTION(float, roundf, (float x)) { 15*c90c8d38SSiva Chandra float y; 16*c90c8d38SSiva Chandra __asm__ __volatile__("frinta %s0, %s1\n\t" : "=w"(y) : "w"(x)); 17*c90c8d38SSiva Chandra return y; 18*c90c8d38SSiva Chandra } 19*c90c8d38SSiva Chandra 20*c90c8d38SSiva Chandra } // namespace __llvm_libc 21