Bug 171874 - internal compiler error: in emit_move_insn
internal compiler error: in emit_move_insn
Product: Red Hat Enterprise Linux 4
Classification: Red Hat
Component: gcc (Show other bugs)
x86_64 Linux
medium Severity medium
: ---
: ---
Assigned To: Jakub Jelinek
: 171879 (view as bug list)
Depends On:
Blocks: 181409
  Show dependency treegraph
Reported: 2005-10-27 07:24 EDT by Hakon Bugge
Modified: 2007-11-30 17:07 EST (History)
1 user (show)

See Also:
Fixed In Version: RHBA-2006-0509
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Last Closed: 2006-08-10 17:28:42 EDT
Type: ---
Regression: ---
Mount Type: ---
Documentation: ---
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---

Attachments (Terms of Use)
C source (1.03 KB, text/plain)
2005-10-27 07:28 EDT, Hakon Bugge
no flags Details
Patch that fixes the bug (648 bytes, patch)
2005-12-16 15:02 EST, Alexandre Oliva
no flags Details | Diff

External Trackers
Tracker ID Priority Status Summary Last Updated
Red Hat Product Errata RHBA-2006:0509 normal SHIPPED_LIVE gcc bug fix update 2006-08-10 00:00:00 EDT

  None (edit)
Description Hakon Bugge 2005-10-27 07:24:49 EDT
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)  

How reproducible:

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 
your bugreport.

Expected Results:  An error message from compiler telling me that I use incorrect actual parameter 
to the movups instruction.

Additional info:

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.
Comment 1 Hakon Bugge 2005-10-27 07:28:08 EDT
Created attachment 120461 [details]
C source
Comment 2 Jakub Jelinek 2005-10-27 12:41:09 EDT
*** Bug 171879 has been marked as a duplicate of this bug. ***
Comment 3 Alexandre Oliva 2005-12-16 15:02:49 EST
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.
Comment 9 Bob Johnson 2006-04-11 12:42:24 EDT
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.
Comment 14 Red Hat Bugzilla 2006-08-10 17:28:43 EDT
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.


Note You need to log in before you can comment on or make changes to this bug.