This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: PATCH [RFC] for Altivec Motorola breakage



On Aug 9, 2004, at 3:17 PM, Janis Johnson wrote:


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.

Thanks. I tried, but apparently not hard enough :).


- Fariborz


Janis


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]