145
|
1 /* { dg-do compile } */
|
|
2 /* { dg-options "-O2 -msve-vector-bits=256" } */
|
|
3
|
|
4 #include <stdint.h>
|
|
5
|
|
6 typedef int32_t vnx4si __attribute__((vector_size(32)));
|
|
7 typedef float vnx4sf __attribute__((vector_size(32)));
|
|
8
|
|
9 void
|
|
10 foo (float val)
|
|
11 {
|
|
12 register vnx4sf x asm ("z0");
|
|
13 register vnx4sf y asm ("z1");
|
|
14 asm volatile ("" : "=w" (y));
|
|
15 vnx4sf z = { val, val, val, val, val, val, val, val };
|
|
16 x = (vnx4si) { -1, 0, 0, -1, 0, -1, 0, -1 } ? z : y;
|
|
17 asm volatile ("" :: "w" (x));
|
|
18 }
|
|
19
|
|
20 /* { dg-final { scan-assembler {\tmovprfx\tz0, z1\n\tmov\tz0\.s, p[0-7]/m, s[0-9]+\n} } } */
|