Mercurial > hg > CbC > CbC_gcc
view gcc/testsuite/gcc.dg/tree-ssa/phi-opt-5.c @ 131:84e7813d76e9
gcc-8.2
author | mir3636 |
---|---|
date | Thu, 25 Oct 2018 07:37:49 +0900 |
parents | 04ced10e8804 |
children |
line wrap: on
line source
/* { dg-do compile } */ /* { dg-options "-O1 -ffinite-math-only -fno-signed-zeros -fdump-tree-phiopt" } */ float repl1 (float varx) { if (varx < 0.0) return 0.0; else if (varx > 1.0) return 1.0; else return varx; } /* Should be turned to varx_4 = MIN_EXPR <1.0e+0, varx_2>; varx_5 = MAX_EXPR <varx_4, 0.0>; */ /* phiopt1 confused by predictors. */ /* { dg-final { scan-tree-dump "varx.*MIN_EXPR.*1\\.0" "phiopt1" { xfail *-*-* } } } */ /* { dg-final { scan-tree-dump "varx.*MAX_EXPR.*0\\.0" "phiopt1" { xfail *-*-* } } } */ /* { dg-final { scan-tree-dump "varx.*MIN_EXPR.*1\\.0" "phiopt2"} } */ /* { dg-final { scan-tree-dump "varx.*MAX_EXPR.*0\\.0" "phiopt2"} } */ float repl2 (float vary) { if (vary > 1.0) return 1.0; else if (vary < 0.0) return 0.0; else return vary; } /* Should be turned to vary_4 = MAX_EXPR <0.0, vary_2>; vary_5 = MIN_EXPR <vary_4, 1.0e+0>; */ /* phiopt1 confused by predictors. */ /* { dg-final { scan-tree-dump "vary.*MAX_EXPR.*0\\.0" "phiopt1" { xfail *-*-* } } } */ /* { dg-final { scan-tree-dump "vary.*MIN_EXPR.*1\\.0" "phiopt1" { xfail *-*-* } } } */ /* { dg-final { scan-tree-dump "vary.*MAX_EXPR.*0\\.0" "phiopt2"} } */ /* { dg-final { scan-tree-dump "vary.*MIN_EXPR.*1\\.0" "phiopt2"} } */ float repl3 (float varz, float vara, float varb) { if (varz > vara) return vara; else if (varz < varb) return varb; else return varz; } /* Should be turned to if (varz_2 > vara_3) goto <L4>; else goto <L1>; <L1>:; vara_6 = MAX_EXPR <varb_5, varz_2>; */ /* phiopt1 confused by predictors. */ /* { dg-final { scan-tree-dump "vara.*MAX_EXPR" "phiopt1" { xfail *-*-* } } } */ /* { dg-final { scan-tree-dump "if .*varz" "phiopt2"} } */ /* { dg-final { scan-tree-dump "vara.*MAX_EXPR" "phiopt2"} } */