1 /* PR target/84220 */
2 /* Test to ensure we generate invalid parameter errors rather than an ICE
3 when calling builtin_vec_sld() with invalid parameters. */
4 /* { dg-do compile } */
5 /* { dg-require-effective-target powerpc_altivec_ok } */
6 /* { dg-options "-maltivec" } */
7
8 #include <altivec.h>
9
10 typedef vector bool char vbc_t;
11 typedef vector signed char vsc_t;
12 typedef vector unsigned char vuc_t;
13 typedef vector bool int vbi_t;
14 typedef vector signed int vsi_t;
15 typedef vector unsigned int vui_t;
16 typedef vector pixel vp_t;
17 typedef vector bool short vbs_t;
18 typedef vector signed short vss_t;
19 typedef vector unsigned short vus_t;
20 typedef vector float vf_t;
21
22 void
test_vbc(vbc_t v1,vbc_t v2,vbc_t v3)23 test_vbc ( vbc_t v1, vbc_t v2, vbc_t v3 ) \
24 {
25 __builtin_vec_sld(v1, v2, v3); /* { dg-error "invalid parameter combination for AltiVec intrinsic" } */
26 __builtin_vec_sld(v1, v2, 3);
27 }
28
29 void
test_vsc(vsc_t v1,vsc_t v2,vsc_t v3)30 test_vsc ( vsc_t v1, vsc_t v2, vsc_t v3 ) \
31 {
32 __builtin_vec_sld(v1, v2, v3); /* { dg-error "invalid parameter combination for AltiVec intrinsic" } */
33 __builtin_vec_sld(v1, v2, 3);
34 }
35
36 void
test_vuc(vuc_t v1,vuc_t v2,vuc_t v3)37 test_vuc ( vuc_t v1, vuc_t v2, vuc_t v3 ) \
38 {
39 __builtin_vec_sld(v1, v2, v3); /* { dg-error "invalid parameter combination for AltiVec intrinsic" } */
40 __builtin_vec_sld(v1, v2, 3);
41 }
42
43 void
test_vbi(vbi_t v1,vbi_t v2,vbi_t v3)44 test_vbi ( vbi_t v1, vbi_t v2, vbi_t v3 ) \
45 {
46 __builtin_vec_sld(v1, v2, v3); /* { dg-error "invalid parameter combination for AltiVec intrinsic" } */
47 __builtin_vec_sld(v1, v2, 3);
48 }
49
50 void
test_vsi(vsi_t v1,vsi_t v2,vsi_t v3)51 test_vsi ( vsi_t v1, vsi_t v2, vsi_t v3 ) \
52 {
53 __builtin_vec_sld(v1, v2, v3); /* { dg-error "invalid parameter combination for AltiVec intrinsic" } */
54 __builtin_vec_sld(v1, v2, 3);
55 }
56
57 void
test_vui(vui_t v1,vui_t v2,vui_t v3)58 test_vui ( vui_t v1, vui_t v2, vui_t v3 ) \
59 {
60 __builtin_vec_sld(v1, v2, v3); /* { dg-error "invalid parameter combination for AltiVec intrinsic" } */
61 __builtin_vec_sld(v1, v2, 3);
62 }
63
64 void
test_vp(vp_t v1,vp_t v2,vp_t v3)65 test_vp ( vp_t v1, vp_t v2, vp_t v3 ) \
66 {
67 __builtin_vec_sld(v1, v2, v3); /* { dg-error "invalid parameter combination for AltiVec intrinsic" } */
68 __builtin_vec_sld(v1, v2, 3);
69 }
70
71 void
test_vbs(vbs_t v1,vbs_t v2,vbs_t v3)72 test_vbs ( vbs_t v1, vbs_t v2, vbs_t v3 ) \
73 {
74 __builtin_vec_sld(v1, v2, v3); /* { dg-error "invalid parameter combination for AltiVec intrinsic" } */
75 __builtin_vec_sld(v1, v2, 3);
76 }
77
78 void
test_vss(vss_t v1,vss_t v2,vss_t v3)79 test_vss ( vss_t v1, vss_t v2, vss_t v3 ) \
80 {
81 __builtin_vec_sld(v1, v2, v3); /* { dg-error "invalid parameter combination for AltiVec intrinsic" } */
82 __builtin_vec_sld(v1, v2, 3);
83 }
84
85 void
test_vus(vus_t v1,vus_t v2,vus_t v3)86 test_vus ( vus_t v1, vus_t v2, vus_t v3 ) \
87 {
88 __builtin_vec_sld(v1, v2, v3); /* { dg-error "invalid parameter combination for AltiVec intrinsic" } */
89 __builtin_vec_sld(v1, v2, 3);
90 }
91
92 void
test_vf(vf_t v1,vf_t v2,vf_t v3)93 test_vf ( vf_t v1, vf_t v2, vf_t v3 ) \
94 {
95 __builtin_vec_sld(v1, v2, v3); /* { dg-error "invalid parameter combination for AltiVec intrinsic" } */
96 __builtin_vec_sld(v1, v2, 3);
97 }
98