1 /* Verify that overloaded built-ins for vec_ld* with long long
2 inputs produce the right code. */
3
4 /* { dg-do compile { target lp64 } } */
5 /* { dg-require-effective-target powerpc_p8vector_ok } */
6 /* { dg-options "-mpower8-vector -O2" } */
7
8 #include <altivec.h>
9
10 vector signed long long
11 testld_vsl_vsl (long long ll1, vector signed long vsl2)
12 {
13 return vec_ld (ll1, &vsl2);
14 }
15
16 vector unsigned long long
17 testld_vul_vul (long long ll1, vector unsigned long vul2)
18 {
19 return vec_ld (ll1, &vul2);
20 }
21
22 vector bool long long
23 testld_vbl_vbl (long long ll1, vector bool long vbl2)
24 {
25 return vec_ld (ll1, &vbl2);
26 }
27
28 vector signed long long
29 testld_cst_vsl (vector signed long vsl2)
30 {
31 return vec_ld (16, &vsl2);
32 }
33
34 vector unsigned long long
35 testld_cst_vul (vector unsigned long vul2)
36 {
37 return vec_ld (32, &vul2);
38 }
39
40 vector bool long long
41 testld_cst_vbl (vector bool long vbl2)
42 {
43 return vec_ld (48, &vbl2);
44 }
45
46 /* { dg-final { scan-assembler-times {\mlvx\M|\mlxvd2x\M|\mlxv\M} 6 } } */
47