This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug middle-end/25662] New: [4.0/4.1/4.2 Regression] Unrecognizable insn with -O on PPC
- From: "halcy0n at gentoo dot org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 4 Jan 2006 08:41:54 -0000
- Subject: [Bug middle-end/25662] New: [4.0/4.1/4.2 Regression] Unrecognizable insn with -O on PPC
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
The following testcase works on PPC with gcc-3.4, but fails with >=4.0.
__extension__ typedef unsigned long long guint64;
typedef int gint;
typedef gint gboolean;
typedef struct
{
guint64 rte;
} mainwindow;
mainwindow *mainw;
static int bg_gen_to_start;
gboolean weed_playback_gen_start (void)
{
bg_gen_to_start = -1;
if (mainw->rte & (((guint64) 1) << bg_gen_to_start))
mainw->rte ^= (((guint64) 1) << bg_gen_to_start);
}
The error with mainline (only reproducible with atleast -O):
test.c: In function 'weed_playback_gen_start':
test.c:18: error: unrecognizable insn:
(insn 37 36 39 2 (set (subreg:SI (reg:DI 119 [ D.1305 ]) 4)
(ashift:SI (const_int 1 [0x1])
(const_int -1 [0xffffffffffffffff]))) -1 (nil)
(nil))
test.c:18: internal compiler error: in extract_insn, at recog.c:2084
--
Summary: [4.0/4.1/4.2 Regression] Unrecognizable insn with -O on
PPC
Product: gcc
Version: 4.0.3
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: middle-end
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: halcy0n at gentoo dot org
GCC build triplet: powerpc-unknown-linux-gnu
GCC host triplet: powerpc-unknown-linux-gnu
GCC target triplet: powerpc-unknown-linux-gnu
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=25662