1 /* { dg-do compile { target { s390*-*-* } } } */
2 /* { dg-options "-O3 -mzarch -march=z13 -mzvector" } */
3 
4 /* { dg-final { scan-assembler-times "vtm" 2 } } */
5 /* { dg-final { scan-assembler-times "ipm" 1 } } */
6 
7 #include <vecintrin.h>
8 
9 /* CC will be extracted into a GPR and returned.  */
10 int
foo(vector unsigned int a,vector unsigned b)11 foo (vector unsigned int a, vector unsigned b)
12 {
13   return vec_test_mask (a, b);
14 }
15 
16 extern void baz (void);
17 
18 /* In that case the ipm/srl is supposed to optimized out by
19    combine/s390_canonicalize_comparison.  */
20 int
bar(vector unsigned int a,vector unsigned b)21 bar (vector unsigned int a, vector unsigned b)
22 {
23   if (vec_test_mask (a, b) == 2)
24     baz ();
25 }
26