1; NOTE: Assertions have been autogenerated by utils/update_test_checks.py 2; RUN: opt -S -passes=jump-threading -verify-each -mtriple=x86_64-- < %s | FileCheck %s 3 4define void @foo() { 5; CHECK-LABEL: @foo( 6; CHECK-NEXT: B: 7; CHECK-NEXT: [[Z:%.*]] = add i32 undef, 1 8; CHECK-NEXT: [[CMP:%.*]] = icmp ne i32 [[Z]], 0 9; CHECK-NEXT: br i1 [[CMP]], label [[EXIT:%.*]], label [[B_THREAD:%.*]] 10; CHECK: B.thread: 11; CHECK-NEXT: br label [[EXIT]] 12; CHECK: exit: 13; CHECK-NEXT: ret void 14; 15entry: 16 br i1 false, label %A, label %B 17 18A: 19 %x = phi i32 [ undef, %entry ], [ %z, %B ] 20 br label %B 21 22B: 23 %y = phi i32 [ undef, %entry ], [ %x, %A ] 24 %z = add i32 %y, 1 25 %cmp = icmp ne i32 %z, 0 26 br i1 %cmp, label %exit, label %A 27 28exit: 29 ret void 30} 31