; REQUIRES: asserts ; RUN: opt -stats -enable-detailed-function-properties -disable-output -passes='func-properties-stats' < %s 2>&1 | FileCheck %s --check-prefix=PRE ; RUN: opt -stats -enable-detailed-function-properties -disable-output -passes='func-properties-stats' < %s 2>&1 | FileCheck %s --check-prefixes=POSTNOOPT ; RUN: opt -stats -enable-detailed-function-properties -disable-output -O0 < %s 2>&1 | FileCheck %s --check-prefixes=PRE,POSTNOOPT ; RUN: opt -stats -enable-detailed-function-properties -disable-output -O3 < %s 2>&1 | FileCheck %s --check-prefixes=PRE,POST ; RUN: opt -stats -enable-detailed-function-properties -disable-output -passes='lto' < %s 2>&1 | FileCheck %s --check-prefixes=PRE,POST ; RUN: opt -stats -enable-detailed-function-properties -disable-output -passes='lto-pre-link' < %s 2>&1 | FileCheck %s --check-prefixes=PRE,POST ; RUN: opt -stats -enable-detailed-function-properties -disable-output -passes='thinlto' < %s 2>&1 | FileCheck %s --check-prefixes=PRE,POST ; RUN: opt -stats -enable-detailed-function-properties -disable-output -passes='thinlto-pre-link' < %s 2>&1 | FileCheck %s --check-prefixes=PRE,POST ; --- --- ; PRE-DAG: 4 func-properties-stats - Number of basic blocks (before optimizations) ; PRE-DAG: 5 func-properties-stats - Number of instructions (of all types) (before optimizations) ; PRE-DAG: 4 func-properties-stats - Number of basic block successors (before optimizations) ; --- No in pass but no optimization passes run --- ; POSTNOOPT-DAG: 4 func-properties-stats - Number of basic blocks ; POSTNOOPT-DAG: 5 func-properties-stats - Number of instructions (of all types) ; POSTNOOPT-DAG: 4 func-properties-stats - Number of basic block successors ; --- Post optimization values --- ; POST-DAG: 1 func-properties-stats - Number of basic blocks ; POST-DAG: 1 func-properties-stats - Number of instructions (of all types) ; POST-NOT: func-properties-stats - Number of basic block successors define i32 @test_count() { entry: ; This branch is trivially resolvable br i1 true, label %then, label %else then: br label %end else: br label %end end: %phi = phi i32 [ 1, %then ], [ 2, %else ] ret i32 %phi }