old-cross-binutils/gdb/testsuite/gdb.arch/e500-regs.c
Andrew Cagney bf6bad4b99 2003-03-17 Andrew Cagney <cagney@redhat.com>
From Elena Zannoni <ezannoni@redhat.com>.  Test e500 abi and
	vector registes.
	* gdb.arch/e500-regs.c, gdb.arch/e500-regs.exp: New files.
	* gdb.arch/e500-abi.c, gdb.arch/e500-abi.exp: New files.
2003-03-17 20:06:16 +00:00

38 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;
}