1 /* { dg-do compile } */
2 /* { dg-options "-mdejagnu-cpu=power9 -mvsx -O2" } */
3 /* { dg-require-effective-target powerpc_vsx } */
7 typedef vector
signed char v16qi_t
;
8 typedef vector
short v8hi_t
;
9 typedef vector
int v4si_t
;
10 typedef vector
long long v2di_t
;
12 void v16qi_0a (v16qi_t
*p
) { *p
= (v16qi_t
) { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; }
13 void v8hi_0a (v8hi_t
*p
) { *p
= (v8hi_t
) { 0, 0, 0, 0, 0, 0, 0, 0 }; }
14 void v4si_0a (v4si_t
*p
) { *p
= (v4si_t
) { 0, 0, 0, 0 }; }
15 void v2di_0a (v2di_t
*p
) { *p
= (v2di_t
) { 0, 0 }; }
17 void v16qi_0b (v16qi_t
*p
) { *p
= (v16qi_t
) vec_splats ((signed char)0); }
18 void v8hi_0b (v8hi_t
*p
) { *p
= (v8hi_t
) vec_splats ((short)0); }
19 void v4si_0b (v4si_t
*p
) { *p
= (v4si_t
) vec_splats ((int)0); }
20 void v2di_0b (v2di_t
*p
) { *p
= (v2di_t
) vec_splats ((long long)0); }
22 void v16qi_m1a (v16qi_t
*p
) { *p
= (v16qi_t
) { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }; }
23 void v8hi_m1a (v8hi_t
*p
) { *p
= (v8hi_t
) { -1, -1, -1, -1, -1, -1, -1, -1 }; }
24 void v4si_m1a (v4si_t
*p
) { *p
= (v4si_t
) { -1, -1, -1, -1 }; }
25 void v2di_m1a (v2di_t
*p
) { *p
= (v2di_t
) { -1, -1 }; }
27 void v16qi_m1b (v16qi_t
*p
) { *p
= (v16qi_t
) vec_splats ((signed char)-1); }
28 void v8hi_m1b (v8hi_t
*p
) { *p
= (v8hi_t
) vec_splats ((short)-1); }
29 void v4si_m1b (v4si_t
*p
) { *p
= (v4si_t
) vec_splats ((int)-1); }
30 void v2di_m1b (v2di_t
*p
) { *p
= (v2di_t
) vec_splats ((long long)-1); }
32 void v16qi_5a (v16qi_t
*p
) { *p
= (v16qi_t
) { 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5 }; }
33 void v8hi_5a (v8hi_t
*p
) { *p
= (v8hi_t
) { 5, 5, 5, 5, 5, 5, 5, 5 }; }
34 void v4si_5a (v4si_t
*p
) { *p
= (v4si_t
) { 5, 5, 5, 5 }; }
35 void v2di_5a (v2di_t
*p
) { *p
= (v2di_t
) { 5, 5 }; }
37 void v16qi_5b (v16qi_t
*p
) { *p
= (v16qi_t
) vec_splats ((signed char)5); }
38 void v8hi_5b (v8hi_t
*p
) { *p
= (v8hi_t
) vec_splats ((short)5); }
39 void v4si_5b (v4si_t
*p
) { *p
= (v4si_t
) vec_splats ((int)5); }
40 void v2di_5b (v2di_t
*p
) { *p
= (v2di_t
) vec_splats ((long long)5); }
42 void v16qi_33a (v16qi_t
*p
) { *p
= (v16qi_t
) { 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33 }; }
43 void v8hi_33a (v8hi_t
*p
) { *p
= (v8hi_t
) { 33, 33, 33, 33, 33, 33, 33, 33 }; }
44 void v4si_33a (v4si_t
*p
) { *p
= (v4si_t
) { 33, 33, 33, 33 }; }
45 void v2di_33a (v2di_t
*p
) { *p
= (v2di_t
) { 33, 33 }; }
47 void v16qi_33b (v16qi_t
*p
) { *p
= (v16qi_t
) vec_splats ((signed char)33); }
48 void v8hi_33b (v8hi_t
*p
) { *p
= (v8hi_t
) vec_splats ((short)33); }
49 void v4si_33b (v4si_t
*p
) { *p
= (v4si_t
) vec_splats ((int)33); }
50 void v2di_33b (v2di_t
*p
) { *p
= (v2di_t
) vec_splats ((long long)33); }
52 /* { dg-final { scan-assembler "xxspltib" } } */
53 /* { dg-final { scan-assembler "vextsb2d" } } */
54 /* { dg-final { scan-assembler "vextsb2w" } } */
55 /* { dg-final { scan-assembler "vupk\[hl\]sb" } } */
56 /* { dg-final { scan-assembler-not "lxvd2x" } } */
57 /* { dg-final { scan-assembler-not "lxvw4x" } } */
58 /* { dg-final { scan-assembler-not "lxv " } } */
59 /* { dg-final { scan-assembler-not "lxvx" } } */
60 /* { dg-final { scan-assembler-not "lvx" } } */