Support group size of three in SLP store permute lowering
[official-gcc.git] / gcc / testsuite / gcc.target / s390 / arch13 / bitops-2.c
blobfde96034c55aa657d5cb7cfd7556360889f76547
1 /* { dg-compile } */
3 /* Check if the instruction are being used also for compares. */
5 /* and with complement */
7 int
8 ncrk (int a, int b)
10 return (a & ~b) ? 23 : 42;
13 /* { dg-final { scan-assembler-times "\tncrk\t" 1 } } */
15 int
16 ncgrk (long long a, long long b)
18 return (a & ~b) ? 23 : 42;
21 /* { dg-final { scan-assembler-times "\tncgrk\t" 1 } } */
23 /* or with complement */
25 int
26 ocrk (int a, int b)
28 return (a | ~b) ? 23 : 42;
31 /* { dg-final { scan-assembler-times "\tocrk\t" 1 } } */
33 int
34 ocgrk (long long a, long long b)
36 return (a | ~b) ? 23 : 42;
39 /* { dg-final { scan-assembler-times "\tocgrk\t" 1 } } */
41 /* nand */
43 int
44 nnrk (int a, int b)
46 return ~(a & b) ? 23 : 42;
49 /* { dg-final { scan-assembler-times "\tnnrk\t" 1 } } */
51 int
52 nngrk (long long a, long long b)
54 return ~(a & b) ? 23 : 42;
57 /* { dg-final { scan-assembler-times "\tnngrk\t" 1 } } */
59 /* nor */
61 int
62 nork (int a, int b)
64 return ~(a | b);
67 /* { dg-final { scan-assembler-times "\tnork\t" 1 } } */
69 int
70 nogrk (long long a, long long b)
72 return ~(a | b) ? 23 : 42;
75 /* { dg-final { scan-assembler-times "\tnogrk\t" 1 } } */
77 /* nxor */
79 int
80 nxrk (int a, int b)
82 return ~(a ^ b) ? 23 : 42;
85 /* { dg-final { scan-assembler-times "\tnxrk\t" 1 } } */
87 int
88 nxgrk (long long a, long long b)
90 return ~(a ^ b) ? 23 : 42;
93 /* { dg-final { scan-assembler-times "\tnxgrk\t" 1 } } */