[Bug target/58452] New: GCC 4.8 and trunk do not compile simple powerpc-linuxpaired -O3 case

meissner at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Tue Sep 17 23:46:00 GMT 2013


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58452

            Bug ID: 58452
           Summary: GCC 4.8 and trunk do not compile simple
                    powerpc-linuxpaired -O3 case
           Product: gcc
           Version: 4.8.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: target
          Assignee: unassigned at gcc dot gnu.org
          Reporter: meissner at gcc dot gnu.org

While doing some work on power8, I wanted to make sure that for existing
systems, I was generating the same code.  So I built some code and ran it
through various -mcpu=xxxx options.  When I built a powerpc-linuxpaired
compiler, the compiler has trouble with a simple loop that should be
vectorized:

-bns-> ./xgcc -B./ -O3 -S -mcpu=750 foo3.c -mpaired
foo3.c: In function ‘float_extern_set3’:
foo3.c:8:26: internal compiler error: in expand_insn, at optabs.c:8274
     float_extern_mem3[i] = p[i];
                          ^
0x10514c5b expand_insn(insn_code, unsigned int, expand_operand*)
        /home/meissner/fsf-src/gcc-4_8-branch/gcc/optabs.c:8274
0x1032c3e7 expand_assignment(tree_node*, tree_node*, bool)
        /home/meissner/fsf-src/gcc-4_8-branch/gcc/expr.c:4668
0x1020b457 expand_gimple_stmt_1
        /home/meissner/fsf-src/gcc-4_8-branch/gcc/cfgexpand.c:2208
0x1020bb9f expand_gimple_stmt
        /home/meissner/fsf-src/gcc-4_8-branch/gcc/cfgexpand.c:2304
0x1020c427 expand_gimple_basic_block
        /home/meissner/fsf-src/gcc-4_8-branch/gcc/cfgexpand.c:4138
0x10210763 gimple_expand_cfg
        /home/meissner/fsf-src/gcc-4_8-branch/gcc/cfgexpand.c:4657
Please submit a full bug report,
with preprocessed source if appropriate.
Please include the complete backtrace with any bug report.
See <http://gcc.gnu.org/bugs.html> for instructions.

In looking at it, it looks like Andrew and I missed modifying paired.md back in
April 2011, when the vectorizer started checking the predicates of movmisalign:

-bns-> ./xgcc -B./ -O3 -S -mcpu=750 foo3.c -mpaired
foo3.c: In function ‘float_extern_set3’:
foo3.c:8:26: internal compiler error: in expand_insn, at optabs.c:8274
     float_extern_mem3[i] = p[i];
                          ^
0x10514c5b expand_insn(insn_code, unsigned int, expand_operand*)
        /home/meissner/fsf-src/gcc-4_8-branch/gcc/optabs.c:8274
0x1032c3e7 expand_assignment(tree_node*, tree_node*, bool)
        /home/meissner/fsf-src/gcc-4_8-branch/gcc/expr.c:4668
0x1020b457 expand_gimple_stmt_1
        /home/meissner/fsf-src/gcc-4_8-branch/gcc/cfgexpand.c:2208
0x1020bb9f expand_gimple_stmt
        /home/meissner/fsf-src/gcc-4_8-branch/gcc/cfgexpand.c:2304
0x1020c427 expand_gimple_basic_block
        /home/meissner/fsf-src/gcc-4_8-branch/gcc/cfgexpand.c:4138
0x10210763 gimple_expand_cfg
        /home/meissner/fsf-src/gcc-4_8-branch/gcc/cfgexpand.c:4657
Please submit a full bug report,
with preprocessed source if appropriate.
Please include the complete backtrace with any bug report.
See <http://gcc.gnu.org/bugs.html> for instructions.

Using the same fix as was used in vector.md to change the predicates.md fixes
the problem.


More information about the Gcc-bugs mailing list