]> git.ipfire.org Git - thirdparty/glibc.git/blob - sysdeps/x86_64/fpu/multiarch/s_ceilf.S
02d5e2b90c73df785d8268f9e71254f5431ab084
[thirdparty/glibc.git] / sysdeps / x86_64 / fpu / multiarch / s_ceilf.S
1 /* Copyright (C) 2011-2014 Free Software Foundation, Inc.
2 This file is part of the GNU C Library.
3 Contributed by Ulrich Drepper <drepper@gmail.come>, 2011.
4
5 The GNU C Library is free software; you can redistribute it and/or
6 modify it under the terms of the GNU Lesser General Public
7 License as published by the Free Software Foundation; either
8 version 2.1 of the License, or (at your option) any later version.
9
10 The GNU C Library is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 Lesser General Public License for more details.
14
15 You should have received a copy of the GNU Lesser General Public
16 License along with the GNU C Library; if not, see
17 <http://www.gnu.org/licenses/>. */
18
19 #include <machine/asm.h>
20 #include <init-arch.h>
21
22
23 ENTRY(__ceilf)
24 .type __ceilf, @gnu_indirect_function
25 call __get_cpu_features@plt
26 movq %rax, %rdx
27 leaq __ceilf_sse41(%rip), %rax
28 testl $bit_SSE4_1, CPUID_OFFSET+index_SSE4_1(%rdx)
29 jnz 2f
30 leaq __ceilf_c(%rip), %rax
31 2: ret
32 END(__ceilf)
33 weak_alias (__ceilf, ceilf)
34
35
36 ENTRY(__ceilf_sse41)
37 roundss $2, %xmm0, %xmm0
38 ret
39 END(__ceilf_sse41)