File: pr66726-5.c

package info (click to toggle)
gcc-arm-none-eabi 15%3A14.2.rel1-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 1,099,328 kB
  • sloc: cpp: 3,627,108; ansic: 2,571,498; ada: 834,230; f90: 235,082; makefile: 79,231; asm: 74,984; xml: 51,692; exp: 39,736; sh: 33,298; objc: 15,629; python: 15,069; fortran: 14,429; pascal: 7,003; awk: 5,070; perl: 3,106; ml: 285; lisp: 253; lex: 204; haskell: 135
file content (28 lines) | stat: -rw-r--r-- 1,063 bytes parent folder | download
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
/* { dg-do compile } */
/* { dg-options "-O2 -fdump-tree-phiopt1-details -fdump-tree-phiopt2-details -fdump-tree-optimized" } */

#define SAT(x) (x < 0 ? 0 : (x > 255 ? 255 : x))

unsigned char
foo (unsigned char *p, int i)
{
  if (i < 0)
    return 0;
  {
    int t;
    if (i > 255)
      t = 255;
    else
      t = i;
    return t;
  }
}

/* Because of the way PHIOPT works, it only does the merging of BBs after it is done so we get the case were we can't
   optimize the above until phiopt2 right now.  */
/* { dg-final { scan-tree-dump-times "COND_EXPR .*and PHI .*converted to straightline code" 2 "phiopt1" { xfail *-*-* } } } */
/* { dg-final { scan-tree-dump-times "COND_EXPR .*and PHI .*converted to straightline code" 0 "phiopt2" { xfail *-*-* } } } */
/* { dg-final { scan-tree-dump-times "= MIN_EXPR" 1 "phiopt1" } } */
/* { dg-final { scan-tree-dump-times "= MAX_EXPR" 1 "phiopt1" { xfail *-*-* } } } */
/* { dg-final { scan-tree-dump-times "= MIN_EXPR" 1 "optimized" } } */
/* { dg-final { scan-tree-dump-times "= MAX_EXPR" 1 "optimized"  } } */