extract-vsx.c: Replace "vector long" with "vector long long" throughout.
[gcc.git] / gcc / testsuite / gcc.dg / vmx / merge-vsx.c
1 /* { dg-skip-if "" { powerpc*-*-darwin* } { "*" } { "" } } */
2 /* { dg-require-effective-target powerpc_vsx_ok } */
3 /* { dg-options "-maltivec -mabi=altivec -std=gnu99 -mvsx" } */
4
5 #include "harness.h"
6
7 static int vec_long_long_eq (vector long long x, vector long long y)
8 {
9 return (x[0] == y[0] && x[1] == y[1]);
10 }
11
12 static int vec_double_eq (vector double x, vector double y)
13 {
14 return (x[0] == y[0] && x[1] == y[1]);
15 }
16
17 static void test()
18 {
19 /* Input vectors. */
20 vector long long vla = {-2,-1};
21 vector long long vlb = {0,1};
22 vector double vda = {-2.0,-1.0};
23 vector double vdb = {0.0,1.0};
24
25 /* Result vectors. */
26 vector long long vlh, vll;
27 vector double vdh, vdl;
28
29 /* Expected result vectors. */
30 vector long long vlrh = {-2,0};
31 vector long long vlrl = {-1,1};
32 vector double vdrh = {-2.0,0.0};
33 vector double vdrl = {-1.0,1.0};
34
35 vlh = vec_mergeh (vla, vlb);
36 vll = vec_mergel (vla, vlb);
37 vdh = vec_mergeh (vda, vdb);
38 vdl = vec_mergel (vda, vdb);
39
40 check (vec_long_long_eq (vlh, vlrh), "vlh");
41 check (vec_long_long_eq (vll, vlrl), "vll");
42 check (vec_double_eq (vdh, vdrh), "vdh" );
43 check (vec_double_eq (vdl, vdrl), "vdl" );
44 }