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" } */
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
;
23 test_vbc ( vbc_t v1
, vbc_t v2
, vbc_t v3
) \
25 __builtin_vec_sld(v1
, v2
, v3
); /* { dg-error "invalid parameter combination for AltiVec intrinsic" } */
26 __builtin_vec_sld(v1
, v2
, 3);
30 test_vsc ( vsc_t v1
, vsc_t v2
, vsc_t v3
) \
32 __builtin_vec_sld(v1
, v2
, v3
); /* { dg-error "invalid parameter combination for AltiVec intrinsic" } */
33 __builtin_vec_sld(v1
, v2
, 3);
37 test_vuc ( vuc_t v1
, vuc_t v2
, vuc_t v3
) \
39 __builtin_vec_sld(v1
, v2
, v3
); /* { dg-error "invalid parameter combination for AltiVec intrinsic" } */
40 __builtin_vec_sld(v1
, v2
, 3);
44 test_vbi ( vbi_t v1
, vbi_t v2
, vbi_t v3
) \
46 __builtin_vec_sld(v1
, v2
, v3
); /* { dg-error "invalid parameter combination for AltiVec intrinsic" } */
47 __builtin_vec_sld(v1
, v2
, 3);
51 test_vsi ( vsi_t v1
, vsi_t v2
, vsi_t v3
) \
53 __builtin_vec_sld(v1
, v2
, v3
); /* { dg-error "invalid parameter combination for AltiVec intrinsic" } */
54 __builtin_vec_sld(v1
, v2
, 3);
58 test_vui ( vui_t v1
, vui_t v2
, vui_t v3
) \
60 __builtin_vec_sld(v1
, v2
, v3
); /* { dg-error "invalid parameter combination for AltiVec intrinsic" } */
61 __builtin_vec_sld(v1
, v2
, 3);
65 test_vp ( vp_t v1
, vp_t v2
, vp_t v3
) \
67 __builtin_vec_sld(v1
, v2
, v3
); /* { dg-error "invalid parameter combination for AltiVec intrinsic" } */
68 __builtin_vec_sld(v1
, v2
, 3);
72 test_vbs ( vbs_t v1
, vbs_t v2
, vbs_t v3
) \
74 __builtin_vec_sld(v1
, v2
, v3
); /* { dg-error "invalid parameter combination for AltiVec intrinsic" } */
75 __builtin_vec_sld(v1
, v2
, 3);
79 test_vss ( vss_t v1
, vss_t v2
, vss_t v3
) \
81 __builtin_vec_sld(v1
, v2
, v3
); /* { dg-error "invalid parameter combination for AltiVec intrinsic" } */
82 __builtin_vec_sld(v1
, v2
, 3);
86 test_vus ( vus_t v1
, vus_t v2
, vus_t v3
) \
88 __builtin_vec_sld(v1
, v2
, v3
); /* { dg-error "invalid parameter combination for AltiVec intrinsic" } */
89 __builtin_vec_sld(v1
, v2
, 3);
93 test_vf ( vf_t v1
, vf_t v2
, vf_t v3
) \
95 __builtin_vec_sld(v1
, v2
, v3
); /* { dg-error "invalid parameter combination for AltiVec intrinsic" } */
96 __builtin_vec_sld(v1
, v2
, 3);