PR inline-asm/84742
[official-gcc.git] / gcc / testsuite / gcc.target / i386 / pr42542-5.c
blob7d77a18ae372770d6ccee8420b1e87675704d352
1 /* { dg-do run } */
2 /* { dg-require-effective-target sse4 } */
3 /* { dg-options "-O1 -msse4.2 -ftree-vectorize" } */
5 #include "sse4_2-check.h"
7 long long v1[] __attribute__ ((aligned(16))) =
9 -3, 2, 3, -4
11 long long v2[] __attribute__ ((aligned(16))) =
13 4, -10, -20, 6
16 long long max[] =
18 4, 2, 3, 6
21 long long min[] =
23 -3, -10, -20, -4
26 long long res[4] __attribute__ ((aligned(16)));
28 extern void abort (void);
30 void
31 find_max (void)
33 int i;
35 for (i = 0; i < 4; i++)
36 res[i] = v1[i] < v2[i] ? v2[i] : v1[i];
39 void
40 find_min (void)
42 int i;
44 for (i = 0; i < 4; i++)
45 res[i] = v1[i] > v2[i] ? v2[i] : v1[i];
48 static void
49 sse4_2_test (void)
51 int i;
52 int err = 0;
54 find_max ();
55 for (i = 0; i < 4; i++)
56 if (res[i] != max[i])
57 err++;
59 find_min ();
60 for (i = 0; i < 4; i++)
61 if (res[i] != min[i])
62 err++;
64 if (err)
65 abort ();