ICE when reloading neon registers from out-of-range offsets

Bug #710623 reported by Richard Sandiford
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Linaro GCC
Fix Released
Medium
Richard Sandiford
Linaro GCC Tracking
Fix Released
Undecided
Richard Sandiford
gcc
Fix Released
Medium

Bug Description

The ref_vldX.c test from:

http://gitorious.org/arm-neon-tests/arm-neon-tests

fails when compiled with -O0 -marm:

(insn 1817 1816 1818 2
/home/export/usr/gcc-linaro/H-x86_64-unknown-linux-gnu/bin/../lib/gcc/arm-linux-gnueabi/4.5.2/include/arm_neon.h:921
5 (parallel [
            (set (reg:CI 303 [ D.14795 ])
                (unspec:CI [
                        (mem:CI (reg:SI 3 r3 [1023]) [0 S48 A64])
                        (reg:CI 303 [ D.14795 ])
                        (unspec:V8HI [
                                (const_int 0 [0x0])
                            ] 191)
                    ] 106))
            (set (reg:SI 3 r3 [1023])
                (plus:SI (reg:SI 3 r3 [1023])
                    (const_int 24 [0x18])))
        ]) 1614 {neon_vld3qav8hi} (nil))
ref_vldX.c:157: confused by earlier errors, bailing out

Tags: 46merge

Related branches

Revision history for this message
In , Richard Sandiford (rsandifo) wrote :

The ref_vldX.c test from:

http://gitorious.org/arm-neon-tests/arm-neon-tests

fails when compiled with -O0 -marm:

(insn 1817 1816 1818 2 /home/export/usr/gcc-linaro/H-x86_64-unknown-linux-gnu/bin/../lib/gcc/arm-linux-gnueabi/4.5.2/include/arm_neon.h:921
5 (parallel [
            (set (reg:CI 303 [ D.14795 ])
                (unspec:CI [
                        (mem:CI (reg:SI 3 r3 [1023]) [0 S48 A64])
                        (reg:CI 303 [ D.14795 ])
                        (unspec:V8HI [
                                (const_int 0 [0x0])
                            ] 191)
                    ] 106))
            (set (reg:SI 3 r3 [1023])
                (plus:SI (reg:SI 3 r3 [1023])
                    (const_int 24 [0x18])))
        ]) 1614 {neon_vld3qav8hi} (nil))
ref_vldX.c:157: confused by earlier errors, bailing out

This is due to a bug in the ARM secondary_reload code.

Changed in gcc-linaro:
assignee: nobody → Richard Sandiford (rsandifo)
status: New → In Progress
Michael Hope (michaelh1)
Changed in gcc-linaro:
importance: Undecided → Medium
Changed in gcc:
importance: Unknown → Medium
status: Unknown → In Progress
Revision history for this message
Andrew Stubbs (ams-codesourcery) wrote :

Richard's patch has how been committed to both Linaro GCC 4.5 and 4.6.

Changed in gcc-linaro:
milestone: none → 4.5-2011.03-0
status: In Progress → Fix Committed
Revision history for this message
Andrew Stubbs (ams-codesourcery) wrote :

The patch still needs to go upstream.

Related: lp:gcc-linaro/4.5,revno=99480
Related: lp:gcc-linaro/4.6,revno=106723

Changed in gcc-linaro-tracking:
assignee: nobody → Richard Sandiford (rsandifo)
milestone: none → 4.7.0
status: New → In Progress
Michael Hope (michaelh1)
Changed in gcc-linaro:
status: Fix Committed → Fix Released
Revision history for this message
In , Rsandifo-gcc (rsandifo-gcc) wrote :

Author: rsandifo
Date: Wed Mar 30 15:00:44 2011
New Revision: 171730

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=171730
Log:
gcc/
 PR target/47551
 * config/arm/arm.c (coproc_secondary_reload_class): Handle
 structure modes. Don't check neon_vector_mem_operand for
 vector or structure modes.

gcc/testsuite/
 PR target/47551
 * gcc.target/arm/neon-modes-2.c: New test.

Added:
    trunk/gcc/testsuite/gcc.target/arm/neon-modes-2.c
Modified:
    trunk/gcc/ChangeLog
    trunk/gcc/config/arm/arm.c
    trunk/gcc/testsuite/ChangeLog

Revision history for this message
In , Rsandifo-gcc (rsandifo-gcc) wrote :

Fixed on trunk.

Changed in gcc-linaro-tracking:
status: In Progress → Fix Released
Changed in gcc:
status: In Progress → Fix Released
tags: added: 46merge
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.