Message ID | ZcdNpLWC4B5JMuqM@tucnak |
---|---|
State | New |
Headers | show |
Series | [RFC] i386: Enable _BitInt support on ia32 | expand |
On Sat, Feb 10, 2024 at 11:19:16AM +0100, Jakub Jelinek wrote: > And bitint-24.c case seems to be miscompilation of __floatbitintxf > when built with -O2 -m32, it works fine when compiled with -O0 -m32. > Will address that next week. Ugh, -O2 -m32 -march=i686 works fine, -O2 -m32 -march=i686 -mtune=generic misbehaves, -O2 -m32 -march=i686 -mtune=generic -fno-ivopts works fine. Will not be fun to debug, the function is large. Jakub
--- gcc/config/i386/i386.cc.jj 2024-02-09 11:02:15.193830702 +0100 +++ gcc/config/i386/i386.cc 2024-02-09 16:30:28.568240299 +0100 @@ -25757,13 +25757,11 @@ ix86_get_excess_precision (enum excess_p bool ix86_bitint_type_info (int n, struct bitint_info *info) { - if (!TARGET_64BIT) - return false; if (n <= 8) info->limb_mode = QImode; else if (n <= 16) info->limb_mode = HImode; - else if (n <= 32) + else if (n <= 32 || (!TARGET_64BIT && n > 64)) info->limb_mode = SImode; else info->limb_mode = DImode;