aboutsummaryrefslogtreecommitdiff
path: root/gcc/testsuite/gcc.target/bpf/jmp-1.c
blob: 1fa7307ee0b91a4996aeda38f4a039e78fb116b3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
/* Ensure jlt, jslt, jle and jsle instructions are not generated if
   -mjmpext is not enabled, and no 32-bit jump instructions are generated
   if -mjmp32 is not enabled.  */

/* { dg-do compile } */
/* { dg-options "-mno-jmpext -mno-jmp32 -masm=normal" } */

int foo (int a, int b)
{
  if (a == 1)
    b += 1;
  if (a != 3)
    b += 2;
  if (a > 5)
    b += 3;
  if (a >= 7)
    b += 4;
  if (a < 9)
    b += 5;
  if (a <= 10)
    b += 6;

  return a + b;
}

unsigned int bar (unsigned int a, unsigned int b)
{
  if (a == 1)
    b += 1;
  if (a != 3)
    b += 2;
  if (a > 5)
    b += 3;
  if (a >= 7)
    b += 4;
  if (a < 9)
    b += 5;
  if (a <= 10)
    b += 6;

  return a + b;
}

/* { dg-final { scan-assembler-times "jlt\t0" 0 } } */
/* { dg-final { scan-assembler-times "jslt\t0" 0 } } */
/* { dg-final { scan-assembler-times "jle\t0" 0 } } */
/* { dg-final { scan-assembler-times "jsle\t0" 0 } } */
/* { dg-final { scan-assembler-times "jeq32\t0" 0 } } */
/* { dg-final { scan-assembler-times "jne32\t0" 0 } } */
/* { dg-final { scan-assembler-times "jlt32\t0" 0 } } */
/* { dg-final { scan-assembler-times "jgt32\t0" 0 } } */
/* { dg-final { scan-assembler-times "jle32\t0" 0 } } */
/* { dg-final { scan-assembler-times "jge32\t0" 0 } } */
/* { dg-final { scan-assembler-times "jslt32\t0" 0 } } */
/* { dg-final { scan-assembler-times "jsgt32\t0" 0 } } */
/* { dg-final { scan-assembler-times "jsle32\t0" 0 } } */
/* { dg-final { scan-assembler-times "jsge32\t0" 0 } } */