summaryrefslogtreecommitdiff
path: root/libgfortran/intrinsics
diff options
context:
space:
mode:
authorFrancois-Xavier Coudert <fxcoudert@gcc.gnu.org>2016-12-19 16:00:42 +0000
committerFrançois-Xavier Coudert <fxcoudert@gcc.gnu.org>2016-12-19 16:00:42 +0000
commitbed192f40a5e2ff8edc9375c443473c0a966c5b5 (patch)
tree0da44bab7461c408d7d0870d9b556ebabea525c6 /libgfortran/intrinsics
parent7e294024ad7b92b888fc067ccb71cf2efe1c441b (diff)
downloadgcc-bed192f40a5e2ff8edc9375c443473c0a966c5b5.tar.gz
Makefile.am: Remove intrinsics/bit_intrinsics.c.
* Makefile.am: Remove intrinsics/bit_intrinsics.c. * Makefile.in: Regenerate. * gfortran.map: Remove _gfortran_clz128 and _gfortran_ctz128. * intrinsics/bit_intrinsics.c: Remove. From-SVN: r243800
Diffstat (limited to 'libgfortran/intrinsics')
-rw-r--r--libgfortran/intrinsics/bit_intrinsics.c138
1 files changed, 0 insertions, 138 deletions
diff --git a/libgfortran/intrinsics/bit_intrinsics.c b/libgfortran/intrinsics/bit_intrinsics.c
deleted file mode 100644
index 5f347fb0e81..00000000000
--- a/libgfortran/intrinsics/bit_intrinsics.c
+++ /dev/null
@@ -1,138 +0,0 @@
-/* Implementation of the bit intrinsics not implemented as GCC builtins.
- Copyright (C) 2009-2016 Free Software Foundation, Inc.
-
-This file is part of the GNU Fortran runtime library (libgfortran).
-
-Libgfortran is free software; you can redistribute it and/or
-modify it under the terms of the GNU General Public
-License as published by the Free Software Foundation; either
-version 3 of the License, or (at your option) any later version.
-
-Libgfortran is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-Under Section 7 of GPL version 3, you are granted additional
-permissions described in the GCC Runtime Library Exception, version
-3.1, as published by the Free Software Foundation.
-
-You should have received a copy of the GNU General Public License and
-a copy of the GCC Runtime Library Exception along with this program;
-see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
-<http://www.gnu.org/licenses/>. */
-
-#include "libgfortran.h"
-
-
-#ifdef HAVE_GFC_INTEGER_16
-extern int clz128 (GFC_INTEGER_16);
-export_proto(clz128);
-
-int
-clz128 (GFC_INTEGER_16 x)
-{
- int res = 127;
-
- // We can't write 0xFFFFFFFFFFFFFFFF0000000000000000, so we work around it
- if (x & ((__uint128_t) 0xFFFFFFFFFFFFFFFF << 64))
- {
- res -= 64;
- x >>= 64;
- }
-
- if (x & 0xFFFFFFFF00000000)
- {
- res -= 32;
- x >>= 32;
- }
-
- if (x & 0xFFFF0000)
- {
- res -= 16;
- x >>= 16;
- }
-
- if (x & 0xFF00)
- {
- res -= 8;
- x >>= 8;
- }
-
- if (x & 0xF0)
- {
- res -= 4;
- x >>= 4;
- }
-
- if (x & 0xC)
- {
- res -= 2;
- x >>= 2;
- }
-
- if (x & 0x2)
- {
- res -= 1;
- x >>= 1;
- }
-
- return res;
-}
-#endif
-
-
-#ifdef HAVE_GFC_INTEGER_16
-extern int ctz128 (GFC_INTEGER_16);
-export_proto(ctz128);
-
-int
-ctz128 (GFC_INTEGER_16 x)
-{
- int res = 0;
-
- if ((x & 0xFFFFFFFFFFFFFFFF) == 0)
- {
- res += 64;
- x >>= 64;
- }
-
- if ((x & 0xFFFFFFFF) == 0)
- {
- res += 32;
- x >>= 32;
- }
-
- if ((x & 0xFFFF) == 0)
- {
- res += 16;
- x >>= 16;
- }
-
- if ((x & 0xFF) == 0)
- {
- res += 8;
- x >>= 8;
- }
-
- if ((x & 0xF) == 0)
- {
- res += 4;
- x >>= 4;
- }
-
- if ((x & 0x3) == 0)
- {
- res += 2;
- x >>= 2;
- }
-
- if ((x & 0x1) == 0)
- {
- res += 1;
- x >>= 1;
- }
-
- return res;
-}
-#endif