From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 5056 invoked by alias); 24 Dec 2005 04:26:28 -0000 Received: (qmail 5042 invoked by uid 48); 24 Dec 2005 04:26:26 -0000 Date: Sat, 24 Dec 2005 04:26:00 -0000 Subject: [Bug tree-optimization/25554] New: [4.0 Regression] unrecognizable insn on x86_64 with -O2 -ftracer X-Bugzilla-Reason: CC Message-ID: Reply-To: gcc-bugzilla@gcc.gnu.org To: gcc-bugs@gcc.gnu.org From: "halcy0n at gentoo dot org" Mailing-List: contact gcc-bugs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Archive: List-Post: List-Help: Sender: gcc-bugs-owner@gcc.gnu.org X-SW-Source: 2005-12/txt/msg02467.txt.bz2 List-Id: When compiling the supplied test case with `gcc -c -O2 -ftracer test.c` with gcc-4.0.3 the following error occurs: test.c: In function ‘mpfr_pow_ui’: test.c:18: error: unrecognizable insn: (insn 96 44 46 6 (set (reg:CCZ 17 flags) (compare:CCZ (and:DI (reg/v:DI 66 [ n ]) (const_int 4611686018427387904 [0x4000000000000000])) (const_int 0 [0x0]))) -1 (nil) (expr_list:REG_DEAD (reg/v:DI 66 [ n ]) (nil))) test.c:18: internal compiler error: in extract_insn, at recog.c:2020 This does not occur in 3.4, 4.1, or 4.2. Revision 98597 on gcc-4_1-branch seems to be where it was fixed for 4.1. Here is the testcase I am using: unsigned int __gmpfr_flags; int mpfr_pow_ui (unsigned long int n) { unsigned long m; int inexact; int i; for (m = n, i = 0; m; i++, m >>= 1) ; ((void) (__gmpfr_flags &= 31 ^ 1)); if (n & (1UL << (i-2))) return 0; } Using built-in specs. Target: x86_64-unknown-linux-gnu Configured with: ../gcc-4/configure --prefix=/home/halcy0n/gcc-test/bin-4/ --enable-languages=c,c++ --disable-multilib Thread model: posix gcc version 4.0.3 20051222 (prerelease) -- Summary: [4.0 Regression] unrecognizable insn on x86_64 with -O2 -ftracer Product: gcc Version: 4.0.3 Status: UNCONFIRMED Severity: normal Priority: P3 Component: tree-optimization AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: halcy0n at gentoo dot org GCC build triplet: x86_64-pc-linux-gnu GCC host triplet: x86_64-pc-linux-gnu GCC target triplet: x86_64-pc-linux-gnu http://gcc.gnu.org/bugzilla/show_bug.cgi?id=25554