PATCH [RFC] for Altivec Motorola breakage

Janis Johnson janis187@us.ibm.com
Mon Aug 9 22:40:00 GMT 2004


On Sat, Aug 07, 2004 at 11:55:28AM -0700, Fariborz Jahanian wrote:
>  
> Mainline FSF, along with local implementation of Motorola's Altivec 
> syntax for  
> initialization (construction) of vector variables has broken this 
> feature, as in the 
> following test case: 
> 
> void VecMult( vector unsigned int *pResult, int Index) 
> { 
>   pResult[Index] = (vector unsigned int)(0,0,0,0); 
> } 

This test case, derived from yours:

void VecMult (__vector unsigned int *pResult, int Index)
{
    pResult[Index] = (__vector unsigned int){0,0,0,0};
}

ICEs for mainline g++ with:

elm3b11% /opt/gcc-nightly/mline-20040809/bin/g++ -c -maltivec fj.c
fj.c: In function `void VecMult(unsigned int __vector__*, int)':
fj.c:2: error: Invalid operand to binary operator
(__vector unsigned int<D1311> *)((unsigned int<D6>)Index<D1781> * 16);
 
fj.c:2: internal compiler error: verify_stmts failed.
Please submit a full bug report,
with preprocessed source if appropriate.
See <URL:http://gcc.gnu.org/bugs.html> for instructions.

Your proposed patch fixes this.  It could be useful to have a test
case that's relevant for mainline sources.

Janis



More information about the Gcc-patches mailing list