; Simple test of non-fused compare/branch. ; RUN: %p2i --filetype=obj --disassemble -i %s --args -O2 \ ; RUN: -allow-externally-defined-symbols | FileCheck %s ; RUN: %p2i --filetype=obj --disassemble -i %s --args -Om1 \ ; RUN: -allow-externally-defined-symbols | FileCheck --check-prefix=OPTM1 %s define internal void @testBool(i32 %a, i32 %b) { entry: %cmp = icmp slt i32 %a, %b %cmp1 = icmp sgt i32 %a, %b br i1 %cmp, label %if.then, label %if.end if.then: ; preds = %entry %cmp_ext = zext i1 %cmp to i32 tail call void @use(i32 %cmp_ext) br label %if.end if.end: ; preds = %if.then, %entry br i1 %cmp1, label %if.then5, label %if.end7 if.then5: ; preds = %if.end %cmp1_ext = zext i1 %cmp1 to i32 tail call void @use(i32 %cmp1_ext) br label %if.end7 if.end7: ; preds = %if.then5, %if.end ret void } declare void @use(i32) ; CHECK-LABEL: testBool ; Two bool computations ; CHECK: cmp ; CHECK: cmp ; Test first bool ; CHECK: cmp ; CHECK: call ; Test second bool ; CHECK: cmp ; CHECK: call ; CHECK: ret ; ; OPTM1-LABEL: testBool ; Two bool computations ; OPTM1: cmp ; OPTM1: cmp ; Test first bool ; OPTM1: cmp ; OPTM1: call ; Test second bool ; OPTM1: cmp ; OPTM1: call ; OPTM1: ret