[testsuite] require sqrt_insn effective target where needed
[official-gcc.git] / gcc / testsuite / gcc.target / powerpc / fold-vec-cmp-longlong.c
blob36f90b1735dca4f6285bbcb97c7a5dbe2d391c13
1 /* Verify that overloaded built-ins for vec_cmp with long long
2 inputs produce the right code. */
4 /* { dg-do compile } */
5 /* { dg-require-effective-target powerpc_vsx_ok } */
6 /* { dg-options "-mvsx -O2" } */
7 /* { dg-additional-options "-mdejagnu-cpu=power8" { target { ! has_arch_pwr8 } } } */
9 #include <altivec.h>
11 vector bool long long
12 test3_eq (vector signed long long x, vector signed long long y)
14 return vec_cmpeq (x, y);
17 vector bool long long
18 test6_eq (vector unsigned long long x, vector unsigned long long y)
20 return vec_cmpeq (x, y);
23 vector bool long long
24 test3_ge (vector signed long long x, vector signed long long y)
26 return vec_cmpge (x, y);
29 vector bool long long
30 test6_ge (vector unsigned long long x, vector unsigned long long y)
32 return vec_cmpge (x, y);
35 vector bool long long
36 test3_gt (vector signed long long x, vector signed long long y)
38 return vec_cmpgt (x, y);
41 vector bool long long
42 test6_gt (vector unsigned long long x, vector unsigned long long y)
44 return vec_cmpgt (x, y);
47 vector bool long long
48 test3_le (vector signed long long x, vector signed long long y)
50 return vec_cmple (x, y);
53 vector bool long long
54 test6_le (vector unsigned long long x, vector unsigned long long y)
56 return vec_cmple (x, y);
59 vector bool long long
60 test3_lt (vector signed long long x, vector signed long long y)
62 return vec_cmplt (x, y);
65 vector bool long long
66 test6_lt (vector unsigned long long x, vector unsigned long long y)
68 return vec_cmplt (x, y);
71 vector bool long long
72 test3_ne (vector signed long long x, vector signed long long y)
74 return vec_cmpne (x, y);
77 vector bool long long
78 test6_ne (vector unsigned long long x, vector unsigned long long y)
80 return vec_cmpne (x, y);
83 /* { dg-final { scan-assembler-times "vcmpequd" 4 } } */
84 /* { dg-final { scan-assembler-times "vcmpgtsd" 4 } } */
85 /* { dg-final { scan-assembler-times "vcmpgtud" 4 } } */
86 /* { dg-final { scan-assembler-times "xxlnor" 6 } } */