When the attached example is compiled by the
   gcc version 4.4.0 20080426 (experimental) (GCC)
using
------------
   gcc -O1 -march=nocona -m32 -c vorbisfile.c.c -o vorbisfile.o
------------
it produces the following error:

----------------
vorbisfile.c: In function 'ov_time_seek_page':
vorbisfile.c:1622: error: could not split insn
(insn 108 66 156 vorbisfile.c:1620 (parallel [
            (set (reg:DF 8 st)
                (float:DF (mem/c:DI (plus:SI (reg/f:SI 6 bp)
                            (const_int -40 [0xffffffffffffffd8])) [0
pcm_total+0 S8 A8])))
            (clobber (scratch:V4SI))
            (clobber (scratch:V4SI))
            (clobber (mem/c:DI (plus:SI (reg/f:SI 6 bp)
                        (const_int -24 [0xffffffffffffffe8])) [0 S8 A8]))
        ]) 235 {floatdidf2_i387_with_xmm} (nil))
vorbisfile.c:1622: internal compiler error: in final_scan_insn, at final.c:2597
Please submit a full bug report,
with preprocessed source if appropriate.
See <http://gcc.gnu.org/bugs.html> for instructions.
----------------

The same error is produced with -march=core2, -march=prescott or
-march=pentium4. This error is not present when -m64 is used instead of -m32,
or when any of the AMD architectures are used, like -march=athlon64 and so on.


-- 
           Summary: could not split insn with -O1 -march=nocona -m32
           Product: gcc
           Version: 4.4.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: rtl-optimization
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: drab at kepler dot fjfi dot cvut dot cz
 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=36064

Reply via email to