Commit 6aadc942 by William Schmidt

insert-vsx-be-order.c: New.

2014-01-22  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	* gcc.dg/vmx/insert-vsx-be-order.c: New.
	* gcc.dg/vmx/extract-vsx.c: New.
	* gcc.dg/vmx/extract-vsx-be-order.c: New.
	* gcc.dg/vmx/insert-vsx.c: New.

From-SVN: r206926
parent 0466b16a
/* { dg-skip-if "" { powerpc*-*-darwin* } { "*" } { "" } } */
/* { dg-require-effective-target powerpc_vsx_ok } */
/* { dg-options "-maltivec=be -mabi=altivec -std=gnu99 -mvsx" } */
#include "harness.h"
static void test()
{
vector long vl = {0, 1};
vector double vd = {0.0, 1.0};
#if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__
check (vec_extract (vl, 0) == 1, "vl, 0");
check (vec_extract (vd, 1) == 0.0, "vd, 1");
#else
check (vec_extract (vl, 0) == 0, "vl, 0");
check (vec_extract (vd, 1) == 1.0, "vd, 1");
#endif
}
/* { dg-skip-if "" { powerpc*-*-darwin* } { "*" } { "" } } */
/* { dg-require-effective-target powerpc_vsx_ok } */
/* { dg-options "-maltivec -mabi=altivec -std=gnu99 -mvsx" } */
#include "harness.h"
static void test()
{
vector long vl = {0, 1};
vector double vd = {0.0, 1.0};
check (vec_extract (vl, 0) == 0, "vec_extract, vl, 0");
check (vec_extract (vd, 1) == 1.0, "vec_extract, vd, 1");
check (vl[0] == 0, "[], vl, 0");
check (vd[1] == 1.0, "[], vd, 0");
}
/* { dg-skip-if "" { powerpc*-*-darwin* } { "*" } { "" } } */
/* { dg-require-effective-target powerpc_vsx_ok } */
/* { dg-options "-maltivec=be -mabi=altivec -std=gnu99 -mvsx" } */
#include "harness.h"
static int vec_long_eq (vector long x, vector long y)
{
return (x[0] == y[0] && x[1] == y[1]);
}
static int vec_dbl_eq (vector double x, vector double y)
{
return (x[0] == y[0] && x[1] == y[1]);
}
static void test()
{
vector long vl = {0, 1};
vector double vd = {0.0, 1.0};
vector long vlr = vec_insert (2, vl, 0);
vector double vdr = vec_insert (2.0, vd, 1);
#if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__
vector long vler = {0, 2};
vector double vder = {2.0, 1.0};
#else
vector long vler = {2, 1};
vector double vder = {0.0, 2.0};
#endif
check (vec_long_eq (vlr, vler), "vl");
check (vec_dbl_eq (vdr, vder), "vd");
}
/* { dg-skip-if "" { powerpc*-*-darwin* } { "*" } { "" } } */
/* { dg-require-effective-target powerpc_vsx_ok } */
/* { dg-options "-maltivec -mabi=altivec -std=gnu99 -mvsx" } */
#include "harness.h"
static int vec_long_eq (vector long x, vector long y)
{
return (x[0] == y[0] && x[1] == y[1]);
}
static int vec_dbl_eq (vector double x, vector double y)
{
return (x[0] == y[0] && x[1] == y[1]);
}
static void test()
{
vector long vl = {0, 1};
vector double vd = {0.0, 1.0};
vector long vlr = vec_insert (2, vl, 0);
vector double vdr = vec_insert (2.0, vd, 1);
vector long vler = {2, 1};
vector double vder = {0.0, 2.0};
check (vec_long_eq (vlr, vler), "vl");
check (vec_dbl_eq (vdr, vder), "vd");
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment