Hi all,

Can gatekeeper help review the fix:
bug link: https://bugs.open64.net/show_bug.cgi?id=603

1.support logical and, or, xor, negative, binary not operation for mmx
vector type
2. support logical and, or, xor for MTYPE_V8F4
case1(mmx vector): case1.c
case2 (for MTYPE_V8F4):case2.c

thanks,
zhuqing
#ifndef STACK_SIZE
#define STACK_SIZE (256*1024)
#endif

typedef struct { char c[STACK_SIZE/2]; } big_t;

typedef int __attribute__((vector_size (8))) vecint;
typedef int __attribute__((mode(SI))) siint;

vecint i = { 150, 100 };
vecint j = { 10, 13 };
vecint k;

union {
  vecint v;
  siint i[2];
} res;

void
verify (siint a1, siint a2, siint b1, siint b2, big_t big)
{
  if (a1 != b1
      || a2 != b2)
    abort ();
}

int
main ()
{
  big_t big;
  vecint k0, k1, k2, k3, k4, k5, k6, k7;

  k0 = i + j;
  res.v = k0;

  verify (res.i[0], res.i[1], 160, 113, big);

  k1 = i * j;
  res.v = k1;

  verify (res.i[0], res.i[1], 1500, 1300, big);

  k2 = i / j;
  res.v = k2;

  verify (res.i[0], res.i[1], 15, 7, big);

  k3 = i & j;
  res.v = k3;

  verify (res.i[0], res.i[1], 2, 4, big);

  k4 = i | j;
  res.v = k4;

  verify (res.i[0], res.i[1], 158, 109, big);

  k5 = i ^ j;
  res.v = k5;

  verify (res.i[0], res.i[1], 156, 105, big);

  k6 = -i;
  res.v = k6;
  verify (res.i[0], res.i[1], -150, -100, big);

  k7 = ~i;
  res.v = k7;
  verify (res.i[0], res.i[1], -151, -101, big);

  k = k0 + k1 + k3 + k4 + k5 + k6 + k7;
  res.v = k;
  verify (res.i[0], res.i[1], 1675, 1430, big);

  k = k0 * k1 * k3 * k4 * k5 * k6 * k7;
  res.v = k;
  verify (res.i[0], res.i[1], 1456467968, -1579586240, big);

  k = k0 / k1 / k2 / k3 / k4 / k5 / k6 / k7;
  res.v = k;
  verify (res.i[0], res.i[1], 0, 0, big);

  exit (0);
}
#ifndef STACK_SIZE
#define STACK_SIZE (256*1024)
#endif


typedef float __attribute__((vector_size (8))) vecint;
vecint i = { 150.0, 100 };
vecint j = { 10, 13.0 };
vecint k;


int
main ()
{

  vecint k0, k1, k2, k3, k4;
  k0 = i + j;
  k1 = i & j;

  k2 = i | j;

  k3 = i ^ j;

  k4 = -i;

  k = k0 + k1 + k3 + k4;


  exit (0);
}

Attachment: bug603.patch
Description: Binary data

------------------------------------------------------------------------------
What happens now with your Lotus Notes apps - do you make another costly 
upgrade, or settle for being marooned without product support? Time to move
off Lotus Notes and onto the cloud with Force.com, apps are easier to build,
use, and manage than apps on traditional platforms. Sign up for the Lotus 
Notes Migration Kit to learn more. http://p.sf.net/sfu/salesforce-d2d
_______________________________________________
Open64-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/open64-devel

Reply via email to