annotate gcc/testsuite/gcc.target/s390/zvector/vec_sel-1.c @ 152:2b5abeee2509

update gcc11
author anatofuz
date Mon, 25 May 2020 07:50:57 +0900
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
152
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
1 /* { dg-do run } */
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
2 /* { dg-require-effective-target s390_vxe } */
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
3 /* { dg-options "-O3 -mzarch -march=z14 -mzvector --save-temps -Wno-attributes" } */
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
4
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
5 #include <string.h>
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
6 #include <vecintrin.h>
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
7
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
8 typedef vector signed char v16qi;
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
9 typedef vector unsigned char uv16qi;
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
10 typedef vector bool char bv16qi;
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
11
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
12 typedef vector signed short int v8hi;
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
13 typedef vector unsigned short int uv8hi;
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
14 typedef vector bool short int bv8hi;
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
15
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
16 typedef vector signed int v4si;
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
17 typedef vector unsigned int uv4si;
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
18 typedef vector bool int bv4si;
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
19
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
20 typedef vector signed long long v2di;
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
21 typedef vector unsigned long long uv2di;
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
22 typedef vector bool long long bv2di;
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
23
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
24 typedef vector float v4sf;
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
25 typedef vector double v2df;
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
26
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
27 #define NUM_CONSTS 8
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
28
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
29 const v16qi v16qi_vals[NUM_CONSTS] =
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
30 { (v16qi){ 1 },
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
31 (v16qi){ 2 },
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
32 (v16qi){ 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 },
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
33 (v16qi){ 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2 },
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
34 (v16qi){ -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 },
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
35 (v16qi){ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 },
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
36 (v16qi){ 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15 },
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
37 (v16qi){ 15,14,13,12,11,10,9,8,7,6,5,4,3,2,1 }
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
38 };
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
39
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
40 const v8hi v8hi_vals[NUM_CONSTS] =
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
41 { (v8hi){ 1 },
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
42 (v8hi){ 2 },
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
43 (v8hi){ 1,1,1,1,1,1,1,1 },
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
44 (v8hi){ 2,2,2,2,2,2,2,2 },
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
45 (v8hi){ -1,-1,-1,-1,-1,-1,-1,-1 },
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
46 (v8hi){ 0,0,0,0,0,0,0,0 },
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
47 (v8hi){ 1,2,3,4,5,6,7,8 },
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
48 (v8hi){ 8,7,6,5,4,3,2,1 }
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
49 };
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
50
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
51 const v4si v4si_vals[NUM_CONSTS] =
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
52 { (v4si){ 1 },
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
53 (v4si){ 2 },
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
54 (v4si){ 1,1,1,1 },
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
55 (v4si){ 2,2,2,2 },
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
56 (v4si){ -1,-1,-1,-1 },
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
57 (v4si){ 0,0,0,0 },
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
58 (v4si){ 1,2,3,4 },
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
59 (v4si){ 4,3,2,1 }
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
60 };
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
61
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
62 const v2di v2di_vals[NUM_CONSTS] =
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
63 { (v2di){ 1 },
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
64 (v2di){ 2 },
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
65 (v2di){ 1,1 },
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
66 (v2di){ 2,2 },
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
67 (v2di){ -1,-1 },
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
68 (v2di){ 0,0 },
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
69 (v2di){ 1,2 },
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
70 (v2di){ 2,1 }
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
71 };
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
72
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
73 const v4sf v4sf_vals[NUM_CONSTS] =
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
74 { (v4sf){ 1.0f },
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
75 (v4sf){ 2.0f },
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
76 (v4sf){ 1.0f,1.0f,1.0f,1.0f },
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
77 (v4sf){ 2.0f,2.0f,2.0f,2.0f },
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
78 (v4sf){ -1.0f,-1.0f,-1.0f,-1.0f },
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
79 (v4sf){ 0.0f,0.0f,0.0f,0.0f },
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
80 (v4sf){ 1.1f,2.1f,3.1f,4.1f },
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
81 (v4sf){ 4.1f,3.1f,2.1f,1.1f }
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
82 };
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
83
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
84 const v2df v2df_vals[NUM_CONSTS] =
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
85 { (v2df){ 1.0 },
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
86 (v2df){ 2.0 },
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
87 (v2df){ 1.0,1.0 },
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
88 (v2df){ 2.0,2.0 },
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
89 (v2df){ -1.0,-1.0 },
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
90 (v2df){ 0.0,0.0 },
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
91 (v2df){ 1.1,2.1 },
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
92 (v2df){ 2.1,1.1 }
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
93 };
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
94
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
95 /* Each bit of the result vector has the value of the corresponding
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
96 bit of A if the corresponding bit of C is 0, or the value of the
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
97 corresponding bit of B otherwise. */
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
98 void __attribute__((noinline, noclone, target ("arch=zEC12")))
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
99 emul (unsigned char *result, unsigned char *a,
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
100 unsigned char *b, unsigned char *c)
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
101 {
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
102 for (int i = 0; i < 16; i++)
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
103 result[i] = (a[i] & ~c[i]) | (b[i] & c[i]);
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
104 }
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
105
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
106 #define GENFUNC(NAME, T1, T2) \
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
107 T1 __attribute__((noinline, noclone)) \
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
108 NAME##_reg (T1 a, T1 b, T2 c) { return vec_sel (a, b, c); } \
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
109 void __attribute__((noinline, noclone)) \
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
110 NAME##_mem (T1 *a, T1 *b, T2 *c, T1 *out) { *out = vec_sel (*a, *b, *c); } \
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
111 T1 __attribute__((always_inline)) \
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
112 NAME##_const (T1 a, T1 b, T2 c) { return vec_sel (a, b, c); }
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
113
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
114 GENFUNC (vec_sel_b8_a, bv16qi, uv16qi)
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
115 GENFUNC (vec_sel_b8_b, bv16qi, bv16qi)
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
116 GENFUNC (vec_sel_s8_a, v16qi, uv16qi)
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
117 GENFUNC (vec_sel_s8_b, v16qi, bv16qi)
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
118 GENFUNC (vec_sel_u8_a, uv16qi, uv16qi)
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
119 GENFUNC (vec_sel_u8_b, uv16qi, bv16qi)
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
120
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
121 GENFUNC (vec_sel_b16_a, bv8hi, uv8hi)
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
122 GENFUNC (vec_sel_b16_b, bv8hi, bv8hi)
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
123 GENFUNC (vec_sel_s16_a, v8hi, uv8hi)
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
124 GENFUNC (vec_sel_s16_b, v8hi, bv8hi)
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
125 GENFUNC (vec_sel_u16_a, uv8hi, uv8hi)
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
126 GENFUNC (vec_sel_u16_b, uv8hi, bv8hi)
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
127
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
128 GENFUNC (vec_sel_b32_a, bv4si, uv4si)
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
129 GENFUNC (vec_sel_b32_b, bv4si, bv4si)
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
130 GENFUNC (vec_sel_s32_a, v4si, uv4si)
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
131 GENFUNC (vec_sel_s32_b, v4si, bv4si)
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
132 GENFUNC (vec_sel_u32_a, uv4si, uv4si)
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
133 GENFUNC (vec_sel_u32_b, uv4si, bv4si)
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
134
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
135 GENFUNC (vec_sel_b64_a, bv2di, uv2di)
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
136 GENFUNC (vec_sel_b64_b, bv2di, bv2di)
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
137 GENFUNC (vec_sel_s64_a, v2di, uv2di)
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
138 GENFUNC (vec_sel_s64_b, v2di, bv2di)
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
139 GENFUNC (vec_sel_u64_a, uv2di, uv2di)
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
140 GENFUNC (vec_sel_u64_b, uv2di, bv2di)
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
141
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
142 GENFUNC (vec_sel_flt_a, v4sf, uv4si)
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
143 GENFUNC (vec_sel_flt_b, v4sf, bv4si)
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
144
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
145 GENFUNC (vec_sel_dbl_a, v2df, uv2di)
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
146 GENFUNC (vec_sel_dbl_b, v2df, bv2di)
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
147
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
148 #define TESTFUNC(NAME, T1, T2, VAL_TYPE) \
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
149 for (int i = 0; i < NUM_CONSTS; i++) \
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
150 for (int j = 0; j < NUM_CONSTS; j++) \
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
151 for (int k = 0; k < NUM_CONSTS; k++) \
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
152 { \
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
153 unsigned char result[16]; \
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
154 T1 in1 = (T1)VAL_TYPE##_vals[i]; \
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
155 T1 in2 = (T1)VAL_TYPE##_vals[j]; \
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
156 T2 in3 = (T2)VAL_TYPE##_vals[k]; \
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
157 emul (result, (char*)&in1, (char*)&in2, (char*)&in3); \
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
158 \
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
159 T1 reg = NAME##_reg (in1, in2, in3); \
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
160 if (memcmp ((char*)&reg, result, 16) != 0) \
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
161 __builtin_abort (); \
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
162 \
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
163 T1 mem; \
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
164 NAME##_mem (&in1, &in2, &in3, &mem); \
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
165 if (memcmp ((char*)&mem, result, 16) != 0) \
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
166 __builtin_abort (); \
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
167 \
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
168 T1 cons = NAME##_const (in1, in2, in3); \
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
169 if (memcmp ((char*)&cons, result, 16) != 0) \
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
170 __builtin_abort (); \
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
171 }
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
172
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
173 int
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
174 main ()
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
175 {
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
176 TESTFUNC (vec_sel_b8_a, bv16qi, uv16qi, v16qi);
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
177 TESTFUNC (vec_sel_b8_b, bv16qi, bv16qi, v16qi);
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
178 TESTFUNC (vec_sel_s8_a, v16qi, uv16qi, v16qi);
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
179 TESTFUNC (vec_sel_s8_b, v16qi, bv16qi, v16qi);
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
180 TESTFUNC (vec_sel_u8_a, uv16qi, uv16qi, v16qi);
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
181 TESTFUNC (vec_sel_u8_b, uv16qi, bv16qi, v16qi);
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
182
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
183 TESTFUNC (vec_sel_b16_a, bv8hi, uv8hi, v8hi);
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
184 TESTFUNC (vec_sel_b16_b, bv8hi, bv8hi, v8hi);
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
185 TESTFUNC (vec_sel_s16_a, v8hi, uv8hi, v8hi);
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
186 TESTFUNC (vec_sel_s16_b, v8hi, bv8hi, v8hi);
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
187 TESTFUNC (vec_sel_u16_a, uv8hi, uv8hi, v8hi);
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
188 TESTFUNC (vec_sel_u16_b, uv8hi, bv8hi, v8hi);
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
189
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
190 TESTFUNC (vec_sel_b32_a, bv4si, uv4si, v4si);
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
191 TESTFUNC (vec_sel_b32_b, bv4si, bv4si, v4si);
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
192 TESTFUNC (vec_sel_s32_a, v4si, uv4si, v4si);
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
193 TESTFUNC (vec_sel_s32_b, v4si, bv4si, v4si);
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
194 TESTFUNC (vec_sel_u32_a, uv4si, uv4si, v4si);
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
195 TESTFUNC (vec_sel_u32_b, uv4si, bv4si, v4si);
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
196
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
197 TESTFUNC (vec_sel_b64_a, bv2di, uv2di, v2di);
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
198 TESTFUNC (vec_sel_b64_b, bv2di, bv2di, v2di);
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
199 TESTFUNC (vec_sel_s64_a, v2di, uv2di, v2di);
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
200 TESTFUNC (vec_sel_s64_b, v2di, bv2di, v2di);
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
201 TESTFUNC (vec_sel_u64_a, uv2di, uv2di, v2di);
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
202 TESTFUNC (vec_sel_u64_b, uv2di, bv2di, v2di);
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
203
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
204 TESTFUNC (vec_sel_flt_a, v4sf, uv4si, v4sf);
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
205 TESTFUNC (vec_sel_flt_b, v4sf, bv4si, v4sf);
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
206
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
207 TESTFUNC (vec_sel_dbl_a, v2df, uv2di, v2df);
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
208 TESTFUNC (vec_sel_dbl_b, v2df, bv2di, v2df);
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
209 }
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
210
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
211 /* { dg-final { scan-assembler {\n\tvsel\t} } } */