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_p8vector_ok } */
6 /* { dg-options "-mpower8-vector -O2" } */
11 test3_eq (vector
signed long long x
, vector
signed long long y
)
13 return vec_cmpeq (x
, y
);
17 test6_eq (vector
unsigned long long x
, vector
unsigned long long y
)
19 return vec_cmpeq (x
, y
);
23 test3_ge (vector
signed long long x
, vector
signed long long y
)
25 return vec_cmpge (x
, y
);
29 test6_ge (vector
unsigned long long x
, vector
unsigned long long y
)
31 return vec_cmpge (x
, y
);
35 test3_gt (vector
signed long long x
, vector
signed long long y
)
37 return vec_cmpgt (x
, y
);
41 test6_gt (vector
unsigned long long x
, vector
unsigned long long y
)
43 return vec_cmpgt (x
, y
);
47 test3_le (vector
signed long long x
, vector
signed long long y
)
49 return vec_cmple (x
, y
);
53 test6_le (vector
unsigned long long x
, vector
unsigned long long y
)
55 return vec_cmple (x
, y
);
59 test3_lt (vector
signed long long x
, vector
signed long long y
)
61 return vec_cmplt (x
, y
);
65 test6_lt (vector
unsigned long long x
, vector
unsigned long long y
)
67 return vec_cmplt (x
, y
);
71 test3_ne (vector
signed long long x
, vector
signed long long y
)
73 return vec_cmpne (x
, y
);
77 test6_ne (vector
unsigned long long x
, vector
unsigned long long y
)
79 return vec_cmpne (x
, y
);
82 /* { dg-final { scan-assembler-times "vcmpequd" 4 } } */
83 /* { dg-final { scan-assembler-times "vcmpgtsd" 4 } } */
84 /* { dg-final { scan-assembler-times "vcmpgtud" 4 } } */
85 /* { dg-final { scan-assembler-times "xxlnor" 6 } } */