vector bug?
Not Real
slow_train_coming@yahoo.com
Fri Mar 19 15:37:00 GMT 2004
Hi, I'm using gcc 3.4.0 20040305, on a pentium 4 red
hat system. I'm trying to use the vector extensions.
When I compile the following code with -O0 or -O1, it
does as I expect (it prints whatever was input plus
{1,2,3,4}. When I compile with -O2 or -O3 on the
other hand, it prints garbage. From the disassembly,
it is apparent that it is just not putting the right
arguments on the stack for the printf call. Is my
code incorrect, or is this an optimization bug?
#include <stdio.h>
int main() {
typedef int v4si __attribute__ ((mode(V4SI)));
int vals[4];
int ins[4];
scanf("%d %d %d %d", &ins[0], &ins[1], &ins[2],
&ins[3]);
v4si a = *(v4si*)ins, b = {1, 2, 3, 4}, c;
c = a + b;
*(v4si*)vals = c;
printf("%d %d %d %d\n", vals[0], vals[1], vals[2],
vals[3]);
}
__________________________________
Do you Yahoo!?
Yahoo! Mail - More reliable, more storage, less spam
http://mail.yahoo.com
More information about the Gcc-help
mailing list