view gcc/testsuite/gcc.target/ia64/pr42542-3.c @ 158:494b0b89df80 default tip

...
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Mon, 25 May 2020 18:13:55 +0900
parents 04ced10e8804
children
line wrap: on
line source

/* { dg-do run } */
/* { dg-options "-O1 -ftree-vectorize" } */

unsigned char v1[] __attribute__ ((aligned(16))) =
{
  0x80, 0xd0, 0x90, 0xa0, 1, 15, 10, 15,
  0xa0, 0xc0, 0xb0, 0xf0, 2, 25, 20, 35,
  3, 34, 30, 36, 0xd0, 0x80, 0xe0, 0xb0,
  0xf0, 0xe0, 0xe0, 0x80, 25, 34, 30, 40
};
unsigned char v2[] __attribute__ ((aligned(16))) =
{
  4, 44, 40, 48, 0xb0, 0x80, 0x80, 0x90,
  5, 55, 50, 51, 0xc0, 0xb0, 0xf0, 0xd0,
  0xd0, 0x80, 0xa0, 0xf0, 6, 61, 65, 68,
  7, 76, 75, 81, 0xe0, 0xf0, 0xc0, 0x90
};

unsigned char max[] =
{
  0x80, 0xd0, 0x90, 0xa0, 0xb0, 0x80, 0x80, 0x90,
  0xa0, 0xc0, 0xb0, 0xf0, 0xc0, 0xb0, 0xf0, 0xd0,
  0xd0, 0x80, 0xa0, 0xf0, 0xd0, 0x80, 0xe0, 0xb0,
  0xf0, 0xe0, 0xe0, 0x80, 0xe0, 0xf0, 0xc0, 0x90
};

unsigned char min[] =
{
  4, 44, 40, 48, 1, 15, 10, 15,
  5, 55, 50, 51, 2, 25, 20, 35,
  3, 34, 30, 36, 6, 61, 65, 68,
  7, 76, 75, 81, 25, 34, 30, 40
};

unsigned char res[32] __attribute__ ((aligned(16)));

extern void abort (void);

void
find_max (void)
{
  int i;

  for (i = 0; i < 32; i++)
    res[i] = v1[i] < v2[i] ? v2[i] : v1[i];
}

void
find_min (void)
{
  int i;

  for (i = 0; i < 32; i++)
    res[i] = v1[i] > v2[i] ? v2[i] : v1[i];
}

int main (void)
{
  int i;
  int err = 0;

  find_max ();
  for (i = 0; i < 32; i++)
    if (res[i] != max[i])
      err++;

  find_min ();
  for (i = 0; i < 32; i++)
    if (res[i] != min[i])
      err++;

  if (err)
    abort ();

  return 0;
}