This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
[RFC][BZ #17943] Use long for int_fast8_t
- From: OndÅej BÃlka <neleai at seznam dot cz>
- To: libc-alpha at sourceware dot org
- Date: Sun, 8 Feb 2015 12:04:26 +0100
- Subject: [RFC][BZ #17943] Use long for int_fast8_t
- Authentication-results: sourceware.org; auth=none
Hi, as in bugzilla entry what is rationale of using char as int_fast8_t?
It is definitely slower with division, following code is 25% slower on
haswell with char than when you use long.
There is question what about other architectures and atomic operations,
are byte ones better than int?
int main ()
{
int i;
char x = 32;
for (i=0; i<1000000000; i++)
x = 11 * x + 5 + x / 3;
return x;
}
* sysdeps/generic/stdint.h: Use long int for int_fast8_t
diff --git a/sysdeps/generic/stdint.h b/sysdeps/generic/stdint.h
index 5c9f0ff..c6dda3b 100644
--- a/sysdeps/generic/stdint.h
+++ b/sysdeps/generic/stdint.h
@@ -87,12 +87,13 @@ typedef unsigned long long int uint_least64_t;
/* Fast types. */
/* Signed. */
-typedef signed char int_fast8_t;
#if __WORDSIZE == 64
+typedef long int int_fast8_t;
typedef long int int_fast16_t;
typedef long int int_fast32_t;
typedef long int int_fast64_t;
#else
+typedef int int_fast8_t;
typedef int int_fast16_t;
typedef int int_fast32_t;
__extension__