; REQUIRES: asserts ; RUN: opt -stats -passes=instcount -disable-output < %s 2>&1 | FileCheck %s ; CHECK-DAG: 10 instcount - Largest number of basic blocks in a single function ; CHECK-DAG: 18 instcount - Largest number of instructions in a single function ; CHECK-DAG: 6 instcount - Number of UncondBr insts ; CHECK-DAG: 2 instcount - Number of CondBr insts ; CHECK-DAG: 6 instcount - Number of Call insts ; CHECK-DAG: 2 instcount - Number of ICmp insts ; CHECK-DAG: 2 instcount - Number of Ret insts ; CHECK-DAG: 1 instcount - Number of Switch insts ; CHECK-DAG: 11 instcount - Number of basic blocks ; CHECK-DAG: 2 instcount - Number of non-external functions ; CHECK-DAG: 19 instcount - Number of instructions of all types define void @foo(i32 %i, i32 %j, i32 %n) { entry: %cmp = icmp slt i32 %i, %j br i1 %cmp, label %if.then, label %if.end if.then: call void @f() br label %if.end if.end: switch i32 %i, label %sw.default [ i32 1, label %sw.bb i32 2, label %sw.bb1 i32 3, label %sw.bb1 ] sw.bb: call void @g() br label %sw.epilog sw.bb1: call void @h() br label %sw.epilog sw.default: call void @k() br label %sw.epilog sw.epilog: %cmp2 = icmp sgt i32 %i, %n br i1 %cmp2, label %if.then3, label %if.else if.then3: call void @l() br label %if.end4 if.else: call void @m() br label %if.end4 if.end4: ret void } define void @woo() { ret void } declare void @f() declare void @g() declare void @h() declare void @k() declare void @l() declare void @m()