Viewing file: arith24.c (1.37 KB) -rw-r--r-- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
/* { dg-require-effective-target ti_c64xp } */
#include <c6x_intrinsics.h>
extern void abort (void);
typedef short __v2hi __attribute ((vector_size(4)));
int a = 0x5000d000; int b = 0xc0002000; int c = 0x40009000; int d = 0x80000001; int e = 0x50002001; int f = 0xc0008000;
int a4 = 0x50d03080; int b4 = 0xc020f080; int c4 = 0xc0202080; int d4 = 0x50003080; int e4 = 0xc0202180;
int main () { int v; long long vll;
v = _add2 (a, b); if (v != 0x1000f000) abort (); v = _sub2 (a, b); if (v != 0x9000b000) abort (); v = _sub2 (b, a); if (v != 0x70005000) abort ();
v = _add4 (a4, b4); if (v != 0x10f02000) abort (); v = _sub4 (a4, b4); if (v != 0x90b04000) abort (); v = _saddu4 (a4, c4); if (v != 0xfff050ff) abort ();
v = _sadd2 (a, b); if (v != 0x1000f000) abort (); v = _sadd2 (a, c); if (v != 0x7fff8000) abort ();
v = _ssub2 (a, b); if (v != 0x7fffb000) abort (); v = _ssub2 (b, a); if (v != 0x80005000) abort ();
vll = _smpy2ll (a, b); if (vll != 0xd8000000f4000000ll) abort (); vll = _smpy2ll (d, d); if (vll != 0x7fffffff00000002ll) abort ();
v = _avg2 (b, e); if (v != 0x08002001) abort (); v = _avgu4 (d4, e4); if (v != 0x88102980) abort ();
v = _abs2 (a); if (v != 0x50003000) abort (); v = _abs2 (f); if (v != 0x40007fff) abort ();
return 0; }
|