]> git.ipfire.org Git - thirdparty/gcc.git/blob - gcc/testsuite/gcc.target/i386/vect-shiftv4qi.c
i386: Add v<any_shift:insn>v4qi3 expander
[thirdparty/gcc.git] / gcc / testsuite / gcc.target / i386 / vect-shiftv4qi.c
1 /* { dg-do compile } */
2 /* { dg-options "-O2 -msse2" } */
3
4 #define N 4
5
6 typedef unsigned char __vu __attribute__ ((__vector_size__ (N)));
7 typedef signed char __vi __attribute__ ((__vector_size__ (N)));
8
9 __vu sll (__vu a, int n)
10 {
11 return a << n;
12 }
13
14 __vu sll_c (__vu a)
15 {
16 return a << 5;
17 }
18
19 /* { dg-final { scan-assembler-times "psllw" 2 } } */
20
21 __vu srl (__vu a, int n)
22 {
23 return a >> n;
24 }
25
26 __vu srl_c (__vu a)
27 {
28 return a >> 5;
29 }
30
31 /* { dg-final { scan-assembler-times "psrlw" 2 } } */
32
33 __vi sra (__vi a, int n)
34 {
35 return a >> n;
36 }
37
38 __vi sra_c (__vi a)
39 {
40 return a >> 5;
41 }
42
43 /* { dg-final { scan-assembler-times "psraw" 2 } } */