1 /* { dg-do compile } */
2 /* { dg-options "-mvis4b" } */
3 
4 typedef unsigned char vec8 __attribute__((vector_size(8)));
5 typedef short vec16 __attribute__((vector_size(8)));
6 typedef int vec32 __attribute__((vector_size(8)));
7 
test_fpcmple8shl(vec8 a,vec8 b)8 long test_fpcmple8shl (vec8 a, vec8 b)
9 {
10   return __builtin_vis_fpcmple8shl (a, b, 2);
11 }
12 
test_fpcmpgt8shl(vec8 a,vec8 b)13 long test_fpcmpgt8shl (vec8 a, vec8 b)
14 {
15   return __builtin_vis_fpcmpgt8shl (a, b, 2);
16 }
17 
test_fpcmpeq8shl(vec8 a,vec8 b)18 long test_fpcmpeq8shl (vec8 a, vec8 b)
19 {
20   return __builtin_vis_fpcmpeq8shl (a, b, 2);
21 }
22 
test_fpcmpne8shl(vec8 a,vec8 b)23 long test_fpcmpne8shl (vec8 a, vec8 b)
24 {
25   return __builtin_vis_fpcmpne8shl (a, b, 2);
26 }
27 
test_fpcmple16shl(vec16 a,vec16 b)28 long test_fpcmple16shl (vec16 a, vec16 b)
29 {
30   return __builtin_vis_fpcmple16shl (a, b, 2);
31 }
32 
test_fpcmpgt16shl(vec16 a,vec16 b)33 long test_fpcmpgt16shl (vec16 a, vec16 b)
34 {
35   return __builtin_vis_fpcmpgt16shl (a, b, 2);
36 }
37 
test_fpcmpeq16shl(vec16 a,vec16 b)38 long test_fpcmpeq16shl (vec16 a, vec16 b)
39 {
40   return __builtin_vis_fpcmpeq16shl (a, b, 2);
41 }
42 
test_fpcmpne16shl(vec16 a,vec16 b)43 long test_fpcmpne16shl (vec16 a, vec16 b)
44 {
45   return __builtin_vis_fpcmpne16shl (a, b, 2);
46 }
47 
test_fpcmple32shl(vec32 a,vec32 b)48 long test_fpcmple32shl (vec32 a, vec32 b)
49 {
50   return __builtin_vis_fpcmple32shl (a, b, 2);
51 }
52 
test_fpcmpgt32shl(vec32 a,vec32 b)53 long test_fpcmpgt32shl (vec32 a, vec32 b)
54 {
55   return __builtin_vis_fpcmpgt32shl (a, b, 2);
56 }
57 
test_fpcmpeq32shl(vec32 a,vec32 b)58 long test_fpcmpeq32shl (vec32 a, vec32 b)
59 {
60   return __builtin_vis_fpcmpeq32shl (a, b, 2);
61 }
62 
test_fpcmpne32shl(vec32 a,vec32 b)63 long test_fpcmpne32shl (vec32 a, vec32 b)
64 {
65   return __builtin_vis_fpcmpne32shl (a, b, 2);
66 }
67 
68 /* { dg-final { scan-assembler "fpcmple8shl\t%" } } */
69 /* { dg-final { scan-assembler "fpcmpgt8shl\t%" } } */
70 /* { dg-final { scan-assembler "fpcmpeq8shl\t%" } } */
71 /* { dg-final { scan-assembler "fpcmpne8shl\t%" } } */
72 
73 /* { dg-final { scan-assembler "fpcmple16shl\t%" } } */
74 /* { dg-final { scan-assembler "fpcmpgt16shl\t%" } } */
75 /* { dg-final { scan-assembler "fpcmpeq16shl\t%" } } */
76 /* { dg-final { scan-assembler "fpcmpne16shl\t%" } } */
77 
78 /* { dg-final { scan-assembler "fpcmple32shl\t%" } } */
79 /* { dg-final { scan-assembler "fpcmpgt32shl\t%" } } */
80 /* { dg-final { scan-assembler "fpcmpeq32shl\t%" } } */
81 /* { dg-final { scan-assembler "fpcmpne32shl\t%" } } */
82