1; RUN: opt < %s -passes=gvn,jump-threading -enable-pre -S | FileCheck %s 2 3@H = common global i32 0 4@G = common global i32 0 5 6define i32 @test(i1 %cond, i32 %v) nounwind { 7; CHECK-LABEL: @test 8entry: 9 br i1 %cond, label %bb, label %bb1 10 11bb: 12; CHECK: store 13; CHECK-NOT: br label %return 14 %add.1 = add nuw nsw i32 %v, -1 15 store i32 %add.1, ptr @G, align 4 16 br label %merge 17 18bb1: 19 br label %merge 20 21merge: 22 %add.2 = add i32 %v, -1 23 %cmp = icmp sgt i32 %add.2, 0 24 br i1 %cmp, label %action, label %return 25 26action: 27; CHECK: store 28; CHECK-NEXT: br label %return 29 store i32 %add.2, ptr @H, align 4 30 br label %return 31 32return: 33 %p = phi i32 [0, %merge], [1, %action] 34 ret i32 %p 35} 36 37