Bug 18238 - ICE in convert_move, at expr.c:588
Summary: ICE in convert_move, at expr.c:588
Status: RESOLVED DUPLICATE of bug 16104
Alias: None
Product: gcc
Classification: Unclassified
Component: middle-end (show other bugs)
Version: 3.4.3
: P2 normal
Target Milestone: ---
Assignee: Not yet assigned to anyone
URL:
Keywords: ice-on-valid-code, rejects-valid
Depends on:
Blocks:
 
Reported: 2004-10-30 22:42 UTC by Serge Belyshev
Modified: 2005-04-30 16:20 UTC (History)
1 user (show)

See Also:
Host:
Target:
Build:
Known to work:
Known to fail: 3.3.4 3.4.0 3.4.1 3.4.2 3.4.3 4.0.0
Last reconfirmed: 2005-01-29 13:51:13


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Serge Belyshev 2004-10-30 22:42:03 UTC
this is a fork from bug 16104
------------------------------------------------------------------------------------------
int foo  (int __attribute__ ((__mode__ (__V2SI__))) i)
{
  return (long long) i;
}
------------------------------------------------------------------------------------------
Comment 1 Serge Belyshev 2004-10-30 22:45:31 UTC
3.3.4 error: can't convert between vector values of different size
3.4.3 internal compiler error: in convert_move, at expr.c:588
4.4.0 error: invalid cast from type ‘int __vector__’ to type ‘long long int’
Comment 2 Andrew Pinski 2004-10-30 22:52:36 UTC
For a slightly different test:
int foo  (int __attribute__ ((vector_size (8))) i)
{
  return (long long) i;
}
you only get an ICE if you add -mmmx.
Comment 3 Serge Belyshev 2004-10-30 23:04:18 UTC
gcc and g++ 3.3.4: error: can't convert between vector values of different size
gcc and g++ 3.4.0: internal compiler error: in convert_move, at expr.c:588
g++ 4.0.0: invalid cast from type ‘int __vector__’ to type ‘long long int’

my gcc 4.0.0 accepted this even with -mmmx, hmm...
Comment 4 Andrew Pinski 2004-10-30 23:05:54 UTC
Note I was using -O2.
Comment 5 Andrew Pinski 2005-04-30 16:20:52 UTC

*** This bug has been marked as a duplicate of 16104 ***