------- Comment #2 from rguenth at gcc dot gnu dot org 2010-07-30 14:24 -------
Created an attachment (id=21360)
--> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=21360&action=view)
required patch
Together with attached patch (from the vector-enhancement GSoC project).
#define vector(elcount, type) \
__attribute__((vector_size((elcount)*sizeof(type)))) type
#define vidx(type, vec, idx) (*(((type *) &(vec)) + idx))
int main (int argc, char **argv)
{
vector (4, int) i0 = {argc, 1,2,3};
vector(4,int) i2;
vector (4, int) imask = {0,3,2,1};
int a, b, c;
if (argc > 4)
__builtin_abort ();
i2 = __builtin_shuffle (imask, i0);
b = 0;
if (vidx (int,imask,b) == vidx (int, i2, b))
__builtin_abort ();
return 0;
}
ICEs at -O2 on x86_64.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45142