1/* Check that the vec_init expander does its job.  */
2
3/* { dg-do compile } */
4/* { dg-options "-O3 -mzarch -march=z13" } */
5
6
7
8
9
10typedef __attribute__((vector_size(16))) signed int v4si;
11
12extern v4si G;
13
14v4si
15f (signed int a)
16{
17  return G == a;
18}
19/* { dg-final { scan-assembler-times "vrepf" 1 } } */
20
21v4si
22g (signed int *a)
23{
24  return G == *a;
25}
26/* { dg-final { scan-assembler-times "vlrepf" 1 } } */
27
28v4si
29h ()
30{
31  return G == 1;
32}
33/* { dg-final { scan-assembler-times "vgmf\t%v.*,31,31" 1 } } */
34
35v4si
36i ()
37{
38  return G == -1;
39}
40/* { dg-final { scan-assembler-times "vone" 1 } } */
41
42v4si
43j ()
44{
45  return G == 0;
46}
47/* { dg-final { scan-assembler-times "vzero" 1 } } */
48
49v4si
50k ()
51{
52  return G == (v4si){ 0xff80, 0xff80, 0xff80, 0xff80 };
53}
54/* { dg-final { scan-assembler-times "vgmf\t%v.*,16,24" 1 } } */
55
56v4si
57l ()
58{
59  return G == (v4si){ 0xf000000f, 0xf000000f, 0xf000000f, 0xf000000f };
60}
61/* { dg-final { scan-assembler-times "vgmf\t%v.*,28,3" 1 } } */
62
63v4si
64m ()
65{
66  return G == (v4si){ 0x00ff00ff, 0x0000ffff, 0xffff0000, 0xff00ff00 };
67}
68/* { dg-final { scan-assembler-times "vgbm\t%v.*,21450" 1 } } */
69