PR inline-asm/84742
[official-gcc.git] / gcc / testsuite / gcc.target / ia64 / pr42542-2.c
blobd41eef38386a1c67b9391cbb574e89ef6fb0881d
1 /* { dg-do run } */
2 /* { dg-options "-O1 -ftree-vectorize" } */
4 unsigned short v1[] __attribute__ ((aligned(16))) =
6 0x8000, 0x9000, 1, 10, 0xa000, 0xb000, 2, 20,
7 3, 30, 0xd000, 0xe000, 0xf000, 0xe000, 25, 30
8 };
9 unsigned short v2[] __attribute__ ((aligned(16))) =
11 4, 40, 0xb000, 0x8000, 5, 50, 0xc000, 0xf000,
12 0xd000, 0xa000, 6, 65, 7, 75, 0xe000, 0xc000
15 unsigned short max[] =
17 0x8000, 0x9000, 0xb000, 0x8000, 0xa000, 0xb000, 0xc000, 0xf000,
18 0xd000, 0xa000, 0xd000, 0xe000, 0xf000, 0xe000, 0xe000, 0xc000
21 unsigned short min[] =
23 4, 40, 1, 10, 5, 50, 2, 20,
24 3, 30, 6, 65, 7, 75, 25, 30
27 unsigned short res[16] __attribute__ ((aligned(16)));
29 extern void abort (void);
31 void
32 find_max (void)
34 int i;
36 for (i = 0; i < 16; i++)
37 res[i] = v1[i] < v2[i] ? v2[i] : v1[i];
40 void
41 find_min (void)
43 int i;
45 for (i = 0; i < 16; i++)
46 res[i] = v1[i] > v2[i] ? v2[i] : v1[i];
49 int main (void)
51 int i;
52 int err = 0;
54 find_max ();
55 for (i = 0; i < 16; i++)
56 if (res[i] != max[i])
57 err++;
59 find_min ();
60 for (i = 0; i < 16; i++)
61 if (res[i] != min[i])
62 err++;
64 if (err)
65 abort ();
67 return 0;