39 lines
801 B
C
39 lines
801 B
C
|
#include <spe.h>
|
||
|
#include <stdio.h>
|
||
|
|
||
|
#define vector __attribute__((vector_size(8)))
|
||
|
|
||
|
|
||
|
vector int
|
||
|
vector_fun (vector int a, vector int b)
|
||
|
{
|
||
|
vector int c;
|
||
|
a = (vector int) __ev_create_s32 (2, 2);
|
||
|
b = (vector int) __ev_create_s32 (3, 3);
|
||
|
|
||
|
c = __ev_and (a, b);
|
||
|
return c;
|
||
|
}
|
||
|
|
||
|
int
|
||
|
main ()
|
||
|
{
|
||
|
vector int y;
|
||
|
vector int x;
|
||
|
vector int z;
|
||
|
int a;
|
||
|
|
||
|
/* This line may look unnecessary but we do need it, because we want to
|
||
|
have a line to do a next over (so that gdb refetches the registers)
|
||
|
and we don't want the code to change any vector registers.
|
||
|
The splat operations below modify the VRs,
|
||
|
so we don't want to execute them yet. */
|
||
|
a = 9;
|
||
|
x = (vector int) __ev_create_s32 (-2, -2);
|
||
|
y = (vector int) __ev_create_s32 (1, 1);
|
||
|
|
||
|
z = vector_fun (x, y);
|
||
|
|
||
|
return 0;
|
||
|
}
|