2 /* { dg-do compile } */
3 /* { dg-options "-O2 -mavx -mno-avx2 -masm=att" } */
4 /* { dg-final { scan-assembler-times "vpslld\[ \t]\+\\\$7, %xmm\[0-9]\+, %xmm\[0-9]\+" 3 } } */
5 /* { dg-final { scan-assembler-times "vpsllq\[ \t]\+\\\$7, %xmm\[0-9]\+, %xmm\[0-9]\+" 3 } } */
6 /* { dg-final { scan-assembler-times "vpsllw\[ \t]\+\\\$7, %xmm\[0-9]\+, %xmm\[0-9]\+" 3 } } */
7 /* { dg-final { scan-assembler-times "vpsrad\[ \t]\+\\\$3, %xmm\[0-9]\+, %xmm\[0-9]\+" 3 } } */
8 /* { dg-final { scan-assembler-times "vpsraq\[ \t]\+\\\$3, %xmm\[0-9]\+, %xmm\[0-9]\+" 0 } } */
9 /* { dg-final { scan-assembler-times "vpsraw\[ \t]\+\\\$3, %xmm\[0-9]\+, %xmm\[0-9]\+" 3 } } */
10 /* { dg-final { scan-assembler-times "vpsrld\[ \t]\+\\\$5, %xmm\[0-9]\+, %xmm\[0-9]\+" 3 } } */
11 /* { dg-final { scan-assembler-times "vpsrlq\[ \t]\+\\\$5, %xmm\[0-9]\+, %xmm\[0-9]\+" 3 } } */
12 /* { dg-final { scan-assembler-times "vpsrlw\[ \t]\+\\\$5, %xmm\[0-9]\+, %xmm\[0-9]\+" 3 } } */
14 typedef short int v32hi
__attribute__((vector_size (64)));
15 typedef short int v16hi
__attribute__((vector_size (32)));
16 typedef short int v8hi
__attribute__((vector_size (16)));
17 typedef int v16si
__attribute__((vector_size (64)));
18 typedef int v8si
__attribute__((vector_size (32)));
19 typedef int v4si
__attribute__((vector_size (16)));
20 typedef long long int v8di
__attribute__((vector_size (64)));
21 typedef long long int v4di
__attribute__((vector_size (32)));
22 typedef long long int v2di
__attribute__((vector_size (16)));
23 typedef unsigned short int v32uhi
__attribute__((vector_size (64)));
24 typedef unsigned short int v16uhi
__attribute__((vector_size (32)));
25 typedef unsigned short int v8uhi
__attribute__((vector_size (16)));
26 typedef unsigned int v16usi
__attribute__((vector_size (64)));
27 typedef unsigned int v8usi
__attribute__((vector_size (32)));
28 typedef unsigned int v4usi
__attribute__((vector_size (16)));
29 typedef unsigned long long int v8udi
__attribute__((vector_size (64)));
30 typedef unsigned long long int v4udi
__attribute__((vector_size (32)));
31 typedef unsigned long long int v2udi
__attribute__((vector_size (16)));
34 v32hi
f1 (v32hi
*x
) { return *x
>> 3; }
35 v32uhi
f2 (v32uhi
*x
) { return *x
>> 5; }
36 v32uhi
f3 (v32uhi
*x
) { return *x
<< 7; }
38 v16hi
f4 (v16hi
*x
) { return *x
>> 3; }
39 v16uhi
f5 (v16uhi
*x
) { return *x
>> 5; }
40 v16uhi
f6 (v16uhi
*x
) { return *x
<< 7; }
41 v8hi
f7 (v8hi
*x
) { return *x
>> 3; }
42 v8uhi
f8 (v8uhi
*x
) { return *x
>> 5; }
43 v8uhi
f9 (v8uhi
*x
) { return *x
<< 7; }
45 v16si
f10 (v16si
*x
) { return *x
>> 3; }
46 v16usi
f11 (v16usi
*x
) { return *x
>> 5; }
47 v16usi
f12 (v16usi
*x
) { return *x
<< 7; }
49 v8si
f13 (v8si
*x
) { return *x
>> 3; }
50 v8usi
f14 (v8usi
*x
) { return *x
>> 5; }
51 v8usi
f15 (v8usi
*x
) { return *x
<< 7; }
52 v4si
f16 (v4si
*x
) { return *x
>> 3; }
53 v4usi
f17 (v4usi
*x
) { return *x
>> 5; }
54 v4usi
f18 (v4usi
*x
) { return *x
<< 7; }
56 v8di
f19 (v8di
*x
) { return *x
>> 3; }
57 v8udi
f20 (v8udi
*x
) { return *x
>> 5; }
58 v8udi
f21 (v8udi
*x
) { return *x
<< 7; }
60 v4di
f22 (v4di
*x
) { return *x
>> 3; }
61 v4udi
f23 (v4udi
*x
) { return *x
>> 5; }
62 v4udi
f24 (v4udi
*x
) { return *x
<< 7; }
63 v2di
f25 (v2di
*x
) { return *x
>> 3; }
64 v2udi
f26 (v2udi
*x
) { return *x
>> 5; }
65 v2udi
f27 (v2udi
*x
) { return *x
<< 7; }