aboutsummaryrefslogtreecommitdiffstats
path: root/gcc-4.9/gcc/testsuite/gcc.target/aarch64/csinc-1.c
blob: 132a0f67939b670fe2eea26ddaf91541eb371ed7 (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
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
/* { dg-do compile } */
/* { dg-options "-O2" } */

unsigned int
test_csinc32_ifcvt(unsigned int w0,
		   unsigned int w1,
		   unsigned int w2) {
  /* { dg-final { scan-assembler "csinc\tw\[0-9\]*.*ne" } } */
  if (w0 == w1)
    ++ w2;

  return w2;
}

unsigned int
test_csinc32_condasn1(unsigned int w0,
		      unsigned int w1,
		      unsigned int w2,
		      unsigned int w3) {
  unsigned int w4;

  /* { dg-final { scan-assembler "csinc\tw\[0-9\]*.*ne" } } */
  w4 = (w0 == w1) ? (w3 + 1) : w2;
  return w4;
}

unsigned int
test_csinc32_condasn2(unsigned int w0,
		      unsigned int w1,
		      unsigned int w2,
		      unsigned int w3) {
  unsigned int w4;

  /* { dg-final { scan-assembler "csinc\tw\[0-9\]*.*eq" } } */
  w4 = (w0 == w1) ? w2 : (w3 + 1);
  return w4;
}

unsigned long long
test_csinc64_ifcvt(unsigned long long x0,
		   unsigned long long x1,
		   unsigned long long x2) {
  /* { dg-final { scan-assembler "csinc\tx\[0-9\]*.*ne" } } */
  if (x0 == x1)
    ++ x2;

  return x2;
}

unsigned long long
test_csinc64_condasn1(unsigned long long x0,
		      unsigned long long x1,
		      unsigned long long x2,
		      unsigned long long x3) {
  unsigned long long x4;

  /* { dg-final { scan-assembler "csinc\tx\[0-9\]*.*ne" } } */
  x4 = (x0 == x1) ? (x3 + 1) : x2;
  return x4;
}

unsigned long long
test_csinc64_condasn2(unsigned long long x0,
		      unsigned long long x1,
		      unsigned long long x2,
		      unsigned long long x3) {
  unsigned long long x4;

  /* { dg-final { scan-assembler "csinc\tx\[0-9\]*.*eq" } } */
  x4 = (x0 == x1) ? x2 : (x3 + 1);
  return x4;
}