------- Additional Comments From pinskia at gcc dot gnu dot org 2005-08-05 16:42 ------- Confirmed, reduced testcase: typedef struct { unsigned int mask[4]; } SE_PRIV; static const SE_PRIV se_priv_all = { { 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF } }; typedef struct sid_info { SE_PRIV privileges; } NT_USER_TOKEN; void *memcpy(void*,void*,__SIZE_TYPE__); static void se_priv_empty( const SE_PRIV *mask ) { SE_PRIV p1; int i; se_priv_copy( &p1, mask ); for ( i=0; i<4; i++ ) { p1.mask[i] &= se_priv_all.mask[i]; } }
void is_privilege_assigned( SE_PRIV *privileges, const SE_PRIV *check ) { SE_PRIV p1; se_priv_empty( check ); SE_PRIV allprivs; int i; for ( i=0; i<4; i++ ) { allprivs.mask[i] &= ~check->mask[i]; } memcpy( &p1, &allprivs, sizeof(SE_PRIV) ); } But I don't think this is a vectorizer bug really but a complete unrolling bug. The weird thing it works on x86 but not on x86_64. -- What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |NEW Ever Confirmed| |1 Keywords| |ice-on-valid-code Last reconfirmed|0000-00-00 00:00:00 |2005-08-05 16:42:13 date| | Summary|ICE on valid code when |[4.1 Regression] ICE on |compiled with -O3 and - |valid code when compiled |ftree-vectorize |with -O3 and -ftree- | |vectorize Target Milestone|--- |4.1.0 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23247