Red Hat Bugzilla – Bug 171874
internal compiler error: in emit_move_insn
Last modified: 2007-11-30 17:07:21 EST
From Bugzilla Helper:
User-Agent: Opera/8.50 (Windows NT 5.1; U; en)
Description of problem:
Incorrect actual parameter to asm("movups") crashes compiler.
Version-Release number of selected component (if applicable):
gcc version 3.4.3 20050227 (Red Hat 3.4.3-22.1)
Steps to Reproduce:
1.gcc4 -msse3 gcc_zomplex_movups_bug.c
Actual Results: gcc_zomplex_movups_bug.c: In function ?MPI_op_scalar_zmplx_sum?:
gcc_zomplex_movups_bug.c:24: internal compiler error: in emit_move_insn, at
Please submit a full bug report,
with preprocessed source if appropriate.
See <URL:http://gcc.gnu.org/bugs.html> for instructions.
Preprocessed source stored into /tmp/cckzhovQ.out file, please attach this to
Expected Results: An error message from compiler telling me that I use incorrect actual parameter
to the movups instruction.
The whole scenario stems from the fact that load/store of vector variables
assumes perfect alignment. Since there is no way to tell gcc that the address to
a vector variable is misaligned, and hence gcc should emit movups instead of
movaps, the programmer must explicit check for alignment and use inline assembly
to generate movups.
I have submittet a "bug report" http://gcc.gnu.org/bugzilla/show_bug.cgi?
id=20982 on the issue. In my opinion, there should be a way to specify alignment
of vector variables. By allowing __atrribute__ ((aligned)) to specify alignment
down to the basic type is an idea.
Created attachment 120461 [details]
*** Bug 171879 has been marked as a duplicate of this bug. ***
Created attachment 122349 [details]
Patch that fixes the bug
This is the patch that fixes the bug, that applies trivially to gcc 3.4.3.
This issue is on Red Hat Engineering's list of planned work items
for the upcoming Red Hat Enterprise Linux 4.4 release. Engineering
resources have been assigned and barring unforeseen circumstances, Red
Hat intends to include this item in the 4.4 release.
An advisory has been issued which should help the problem
described in this bug report. This report is therefore being
closed with a resolution of ERRATA. For more information
on the solution and/or where to find the updated files,
please follow the link below. You may reopen this bug report
if the solution does not work for you.