; RUN: opt -S -jump-threading -verify -o - %s | FileCheck %s | |
@a = external global i16, align 1 | |
; CHECK-LABEL: f | |
; CHECK: bb6: | |
; CHECK: bb2: | |
; CHECK: bb3: | |
; CHECK-NOT: bb0: | |
; CHECK-NOT: bb1: | |
; CHECK-NOT: bb4: | |
; CHECK-NOT: bb5: | |
define void @f(i32 %p1) { | |
bb0: | |
%0 = icmp eq i32 %p1, 0 | |
br i1 undef, label %bb6, label %bb1 | |
bb1: | |
br label %bb2 | |
bb2: | |
%1 = phi i1 [ %0, %bb1 ], [ %2, %bb4 ] | |
%2 = and i1 %1, undef | |
br i1 %2, label %bb3, label %bb4 | |
bb3: | |
store i16 undef, i16* @a, align 1 | |
br label %bb4 | |
bb4: | |
br i1 %0, label %bb2, label %bb5 | |
bb5: | |
unreachable | |
bb6: | |
ret void | |
} |