From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 24340 invoked by alias); 19 Sep 2008 07:04:31 -0000 Received: (qmail 22659 invoked by uid 48); 19 Sep 2008 07:03:21 -0000 Date: Fri, 19 Sep 2008 07:04:00 -0000 Subject: [Bug target/37581] New: IEEE inexact-flag not working on the Alpha X-Bugzilla-Reason: CC Message-ID: Reply-To: gcc-bugzilla@gcc.gnu.org To: gcc-bugs@gcc.gnu.org From: "bagnara at cs dot unipr dot it" Mailing-List: contact gcc-bugs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-bugs-owner@gcc.gnu.org X-SW-Source: 2008-09/txt/msg02220.txt.bz2 The following shows a problem on the Alpha whereby the division 2/3 made on floats is flagged as exact. Here are the details: $ cat sf.cc #include #include int main() { float x = 2; float y = 3; feclearexcept(FE_INEXACT); x = x / y; printf("%d %.1000g\n", fetestexcept(FE_INEXACT) != 0, x); } $ g++ -v Using built-in specs. Target: alpha-linux-gnu Configured with: ../src/configure -v --enable-languages=c,c++,fortran,objc,obj-c++ --prefix=/usr --enable-shared --with-system-zlib --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --enable-nls --with-gxx-include-dir=/usr/include/c++/4.2 --program-suffix=-4.2 --enable-clocale=gnu --enable-libstdcxx-debug --enable-objc-gc --enable-mpfr --disable-libssp --with-long-double-128 --enable-checking=release --build=alpha-linux-gnu --host=alpha-linux-gnu --target=alpha-linux-gnu Thread model: posix gcc version 4.2.4 (Debian 4.2.4-3) $ g++ -mieee-with-inexact sf.cc $ ./a.out 0 0.666666686534881591796875 $ cat /proc/cpuinfo cpu : Alpha cpu model : EV56 cpu variation : 7 cpu revision : 0 cpu serial number : system type : Rawhide system variation : Tincup system revision : 0 system serial number : AY74642662 cycle frequency [Hz] : 399642346 est. timer frequency [Hz] : 1200.00 page size [bytes] : 8192 phys. address bits : 40 max. addr. space # : 127 BogoMIPS : 705.16 kernel unaligned acc : 0 (pc=0,va=0) user unaligned acc : 31 (pc=20000074c18,va=87) platform string : AlphaServer 1200 5/400 4MB cpus detected : 1 cpus active : 1 cpu active mask : 0000000000000001 L1 Icache : 8K, 1-way, 32b line L1 Dcache : 8K, 1-way, 32b line L2 cache : 96K, 3-way, 64b line L3 cache : 4096K, 1-way, 64b line $ I attach the generated assembly code, which shows this is not a constant propagation issue. -- Summary: IEEE inexact-flag not working on the Alpha Product: gcc Version: unknown Status: UNCONFIRMED Severity: normal Priority: P3 Component: target AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: bagnara at cs dot unipr dot it GCC host triplet: alphaev56-unknown-linux-gnu http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37581