annotate gcc/testsuite/g++.target/i386/sse4_1-pr54700-2.C @ 158:494b0b89df80 default tip

...
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Mon, 25 May 2020 18:13:55 +0900
parents 1830386684a0
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
145
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1 /* PR target/54700 */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2 /* { dg-do run { target sse4 } } */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
3 /* { dg-options "-O2 -std=c++14 -msse4 -mno-avx -mno-xop" } */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
4
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
5 #ifndef CHECK_H
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
6 #define CHECK_H "sse4_1-check.h"
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
7 #endif
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
8
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
9 #ifndef TEST
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
10 #define TEST sse4_1_test
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
11 #endif
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
12
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
13 #include CHECK_H
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
14
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
15 #include "sse4_1-pr54700-1.C"
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
16
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
17 static void
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
18 TEST ()
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
19 {
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
20 __v16qi v16qia = { -128, 12, -1, 127, 115, 0, -19, 125, -125, 12, 0, -37, 37, 15, 98, -105 };
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
21 __v16qi v16qib = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16 };
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
22 __v16qi v16qic = { 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32 };
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
23 __v16qi v16qie = { 1, 18, 3, 20, 21, 22, 7, 24, 9, 26, 27, 12, 29, 30, 31, 16 };
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
24 __v16qi v16qif = { 17, 2, 19, 4, 5, 6, 23, 8, 25, 10, 11, 28, 13, 14, 15, 32 };
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
25 __v16qi v16qir = f1 (v16qia, v16qib, v16qic);
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
26 if (__builtin_memcmp (&v16qir, &v16qie, sizeof (__v16qi)))
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
27 __builtin_abort ();
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
28 v16qir = f2 (v16qia, v16qib, v16qic);
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
29 if (__builtin_memcmp (&v16qir, &v16qif, sizeof (__v16qi)))
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
30 __builtin_abort ();
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
31 __v4si v4sia = { __INT_MAX__, -__INT_MAX__ - 1, -32, 12 };
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
32 __v4si v4sib = { 1, 2, 3, 4 };
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
33 __v4si v4sic = { 5, 6, 7, 8 };
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
34 __v4si v4sie = { 5, 2, 3, 8 };
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
35 __v4si v4sif = { 1, 6, 7, 4 };
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
36 __v4si v4sir = f3 (v4sia, v4sib, v4sic);
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
37 if (__builtin_memcmp (&v4sir, &v4sie, sizeof (__v4si)))
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
38 __builtin_abort ();
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
39 v4sir = f4 (v4sia, v4sib, v4sic);
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
40 if (__builtin_memcmp (&v4sir, &v4sif, sizeof (__v4si)))
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
41 __builtin_abort ();
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
42 __v2di v2dia = { -__LONG_LONG_MAX__, 1000LL * __INT_MAX__ };
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
43 __v2di v2dib = { 1, 2 };
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
44 __v2di v2dic = { 3, 4 };
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
45 __v2di v2die = { 1, 4 };
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
46 __v2di v2dif = { 3, 2 };
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
47 __v2di v2dir = f5 (v2dia, v2dib, v2dic);
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
48 if (__builtin_memcmp (&v2dir, &v2die, sizeof (__v2di)))
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
49 __builtin_abort ();
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
50 v2dir = f6 (v2dia, v2dib, v2dic);
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
51 if (__builtin_memcmp (&v2dir, &v2dif, sizeof (__v2di)))
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
52 __builtin_abort ();
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
53 __v4sf v4sfb = { 1.0f, 2.0f, 3.0f, 4.0f };
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
54 __v4sf v4sfc = { 5.0f, 6.0f, 7.0f, 8.0f };
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
55 __v4sf v4sfe = { 5.0f, 2.0f, 3.0f, 8.0f };
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
56 __v4sf v4sff = { 1.0f, 6.0f, 7.0f, 4.0f };
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
57 __v4sf v4sfr = f7 (v4sia, v4sfb, v4sfc);
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
58 if (__builtin_memcmp (&v4sfr, &v4sfe, sizeof (__v4sf)))
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
59 __builtin_abort ();
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
60 v4sfr = f8 (v4sia, v4sfb, v4sfc);
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
61 if (__builtin_memcmp (&v4sfr, &v4sff, sizeof (__v4sf)))
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
62 __builtin_abort ();
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
63 __v2df v2dfb = { 1.0, 2.0 };
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
64 __v2df v2dfc = { 3.0, 4.0 };
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
65 __v2df v2dfe = { 1.0, 4.0 };
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
66 __v2df v2dff = { 3.0, 2.0 };
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
67 __v2df v2dfr = f9 (v2dia, v2dfb, v2dfc);
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
68 if (__builtin_memcmp (&v2dfr, &v2dfe, sizeof (__v2df)))
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
69 __builtin_abort ();
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
70 v2dfr = f10 (v2dia, v2dfb, v2dfc);
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
71 if (__builtin_memcmp (&v2dfr, &v2dff, sizeof (__v2df)))
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
72 __builtin_abort ();
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
73 }