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.