1 /* { dg-skip-if "" { powerpc*-*-darwin* } { "*" } { "" } } */
2 /* { dg-require-effective-target powerpc_vsx_ok } */
3 /* { dg-options "-maltivec -mabi=altivec -std=gnu99 -mvsx" } */
7 static int vec_long_long_eq (vector
long long x
, vector
long long y
)
9 return (x
[0] == y
[0] && x
[1] == y
[1]);
12 static int vec_double_eq (vector
double x
, vector
double y
)
14 return (x
[0] == y
[0] && x
[1] == y
[1]);
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};
26 vector
long long vlh
, vll
;
27 vector
double vdh
, vdl
;
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};
35 vlh
= vec_mergeh (vla
, vlb
);
36 vll
= vec_mergel (vla
, vlb
);
37 vdh
= vec_mergeh (vda
, vdb
);
38 vdl
= vec_mergel (vda
, vdb
);
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" );