1 /* { dg-do compile { target { powerpc*-*-* } } } */
2 /* { dg-skip-if "" { powerpc*-*-darwin* } { "*" } { "" } } */
3 /* { dg-require-effective-target powerpc_vsx_ok } */
4 /* { dg-options "-O3 -mcpu=power7" } */
5 /* { dg-final { scan-assembler "xxsldwi" } } */
6 /* { dg-final { scan-assembler "xxpermdi" } } */
11 v2df_shift (vector
double a
, vector
double b
)
13 return vec_xxsldwi (a
, b
, 1);
17 v4sf_shift (vector
float a
, vector
float b
)
19 return vec_xxsldwi (a
, b
, 1);
23 v2di_shift (vector
long long a
, vector
long long b
)
25 return vec_xxsldwi (a
, b
, 1);
28 vector
unsigned long long
29 v2diu_shift (vector
unsigned long long a
, vector
unsigned long long b
)
31 return vec_xxsldwi (a
, b
, 1);
35 v4si_shift (vector
int a
, vector
int b
)
37 return vec_xxsldwi (a
, b
, 1);
41 v4siu_shift (vector
unsigned int a
, vector
unsigned int b
)
43 return vec_xxsldwi (a
, b
, 1);
47 v8hi_shift (vector
short a
, vector
short b
)
49 return vec_xxsldwi (a
, b
, 1);
53 v8hiu_shift (vector
unsigned short a
, vector
unsigned short b
)
55 return vec_xxsldwi (a
, b
, 1);
59 v16qi_shift (vector
signed char a
, vector
signed char b
)
61 return vec_xxsldwi (a
, b
, 1);
65 v16qiu_shift (vector
unsigned char a
, vector
unsigned char b
)
67 return vec_xxsldwi (a
, b
, 1);
71 v2df_permute (vector
double a
, vector
double b
)
73 return vec_xxpermdi (a
, b
, 1);
77 v4sf_permute (vector
float a
, vector
float b
)
79 return vec_xxpermdi (a
, b
, 1);
83 v2di_permute (vector
long long a
, vector
long long b
)
85 return vec_xxpermdi (a
, b
, 1);
88 vector
unsigned long long
89 v2diu_permute (vector
unsigned long long a
, vector
unsigned long long b
)
91 return vec_xxpermdi (a
, b
, 1);
95 v4si_permute (vector
int a
, vector
int b
)
97 return vec_xxpermdi (a
, b
, 1);
101 v4siu_permute (vector
unsigned int a
, vector
unsigned int b
)
103 return vec_xxpermdi (a
, b
, 1);
107 v8hi_permute (vector
short a
, vector
short b
)
109 return vec_xxpermdi (a
, b
, 1);
112 vector
unsigned short
113 v8hiu_permute (vector
unsigned short a
, vector
unsigned short b
)
115 return vec_xxpermdi (a
, b
, 1);
119 v16qi_permute (vector
signed char a
, vector
signed char b
)
121 return vec_xxpermdi (a
, b
, 1);
125 v16qiu_permute (vector
unsigned char a
, vector
unsigned char b
)
127 return vec_xxpermdi (a
, b
, 1);