Mercurial > hg > CbC > CbC_gcc
comparison gcc/testsuite/g++.target/i386/avx2-pr54700-2.C @ 145:1830386684a0
gcc-9.2.0
author | anatofuz |
---|---|
date | Thu, 13 Feb 2020 11:34:05 +0900 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
131:84e7813d76e9 | 145:1830386684a0 |
---|---|
1 /* PR target/54700 */ | |
2 /* { dg-do run { target avx2 } } */ | |
3 /* { dg-options "-O2 -std=c++14 -mavx2 -mno-xop -mno-avx512f" } */ | |
4 | |
5 #include "avx2-check.h" | |
6 | |
7 #define TEST avx2_test | |
8 | |
9 #include "avx2-pr54700-1.C" | |
10 | |
11 static void | |
12 TEST () | |
13 { | |
14 __v32qi v32qia = { -128, 12, -1, 127, 115, 0, -19, 125, -125, 12, 0, -37, 37, 15, 98, -105, | |
15 0, 1, 2, 3, -1, -2, -3, -4, 4, -5, 5, -6, 6, -7, 7, -8 }; | |
16 __v32qi v32qib = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, | |
17 -1, -2, -3, -4, -5, -6, -7, -8, -9, -10, -11, -12, -13, -14, -15, -16 }; | |
18 __v32qi v32qic = { 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, | |
19 -17, -18, -19, -20, -21, -22, -23, -24, -25, -26, -27, -28, -29, -30, -31, -32 }; | |
20 __v32qi v32qie = { 1, 18, 3, 20, 21, 22, 7, 24, 9, 26, 27, 12, 29, 30, 31, 16, | |
21 -17, -18, -19, -20, -5, -6, -7, -8, -25, -10, -27, -12, -29, -14, -31, -16 }; | |
22 __v32qi v32qif = { 17, 2, 19, 4, 5, 6, 23, 8, 25, 10, 11, 28, 13, 14, 15, 32, | |
23 -1, -2, -3, -4, -21, -22, -23, -24, -9, -26, -11, -28, -13, -30, -15, -32 }; | |
24 __v32qi v32qir = f1 (v32qia, v32qib, v32qic); | |
25 if (__builtin_memcmp (&v32qir, &v32qie, sizeof (__v32qi))) | |
26 __builtin_abort (); | |
27 v32qir = f2 (v32qia, v32qib, v32qic); | |
28 if (__builtin_memcmp (&v32qir, &v32qif, sizeof (__v32qi))) | |
29 __builtin_abort (); | |
30 __v8si v8sia = { __INT_MAX__, -__INT_MAX__ - 1, -32, 12, __INT_MAX__ - 2, -__INT_MAX__, 15, -1 }; | |
31 __v8si v8sib = { 1, 2, 3, 4, -1, -2, -3, -4 }; | |
32 __v8si v8sic = { 5, 6, 7, 8, -5, -6, -7, -8 }; | |
33 __v8si v8sie = { 5, 2, 3, 8, -5, -2, -7, -4 }; | |
34 __v8si v8sif = { 1, 6, 7, 4, -1, -6, -3, -8 }; | |
35 __v8si v8sir = f3 (v8sia, v8sib, v8sic); | |
36 if (__builtin_memcmp (&v8sir, &v8sie, sizeof (__v8si))) | |
37 __builtin_abort (); | |
38 v8sir = f4 (v8sia, v8sib, v8sic); | |
39 if (__builtin_memcmp (&v8sir, &v8sif, sizeof (__v8si))) | |
40 __builtin_abort (); | |
41 __v4di v4dia = { -__LONG_LONG_MAX__, 1000LL * __INT_MAX__, __LONG_LONG_MAX__, -2 }; | |
42 __v4di v4dib = { 1, 2, -1, -2 }; | |
43 __v4di v4dic = { 3, 4, -3, -4 }; | |
44 __v4di v4die = { 1, 4, -3, -2 }; | |
45 __v4di v4dif = { 3, 2, -1, -4 }; | |
46 __v4di v4dir = f5 (v4dia, v4dib, v4dic); | |
47 if (__builtin_memcmp (&v4dir, &v4die, sizeof (__v4di))) | |
48 __builtin_abort (); | |
49 v4dir = f6 (v4dia, v4dib, v4dic); | |
50 if (__builtin_memcmp (&v4dir, &v4dif, sizeof (__v4di))) | |
51 __builtin_abort (); | |
52 __v8sf v8sfb = { 1.0f, 2.0f, 3.0f, 4.0f, -1.0f, -2.0f, -3.0f, -4.0f }; | |
53 __v8sf v8sfc = { 5.0f, 6.0f, 7.0f, 8.0f, -5.0f, -6.0f, -7.0f, -8.0f }; | |
54 __v8sf v8sfe = { 5.0f, 2.0f, 3.0f, 8.0f, -5.0f, -2.0f, -7.0f, -4.0f }; | |
55 __v8sf v8sff = { 1.0f, 6.0f, 7.0f, 4.0f, -1.0f, -6.0f, -3.0f, -8.0f }; | |
56 __v8sf v8sfr = f7 (v8sia, v8sfb, v8sfc); | |
57 if (__builtin_memcmp (&v8sfr, &v8sfe, sizeof (__v8sf))) | |
58 __builtin_abort (); | |
59 v8sfr = f8 (v8sia, v8sfb, v8sfc); | |
60 if (__builtin_memcmp (&v8sfr, &v8sff, sizeof (__v8sf))) | |
61 __builtin_abort (); | |
62 __v4df v4dfb = { 1.0, 2.0, -1.0, -2.0 }; | |
63 __v4df v4dfc = { 3.0, 4.0, -3.0, -4.0 }; | |
64 __v4df v4dfe = { 1.0, 4.0, -3.0, -2.0 }; | |
65 __v4df v4dff = { 3.0, 2.0, -1.0, -4.0 }; | |
66 __v4df v4dfr = f9 (v4dia, v4dfb, v4dfc); | |
67 if (__builtin_memcmp (&v4dfr, &v4dfe, sizeof (__v4df))) | |
68 __builtin_abort (); | |
69 v4dfr = f10 (v4dia, v4dfb, v4dfc); | |
70 if (__builtin_memcmp (&v4dfr, &v4dff, sizeof (__v4df))) | |
71 __builtin_abort (); | |
72 } |