; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
; RUN: opt -passes=newgvn -S %s | FileCheck %s

@f = external local_unnamed_addr global i64
@b = external local_unnamed_addr global i64
@e = external local_unnamed_addr global i64

define void @patatino(i1 %arg) {
; CHECK-LABEL: @patatino(
; CHECK-NEXT:  entry:
; CHECK-NEXT:    br i1 %arg, label [[IF_END24:%.*]], label [[FOR_COND16:%.*]]
; CHECK:       for.cond2thread-pre-split:
; CHECK-NEXT:    br i1 false, label [[FOR_BODY:%.*]], label [[FOR_COND8_PREHEADER:%.*]]
; CHECK:       for.cond8.preheader:
; CHECK-NEXT:    br i1 %arg, label [[L1:%.*]], label [[FOR_COND11THREAD_PRE_SPLIT_LR_PH:%.*]]
; CHECK:       for.cond11thread-pre-split.lr.ph:
; CHECK-NEXT:    br label [[L1]]
; CHECK:       for.body:
; CHECK-NEXT:    [[CMP3:%.*]] = icmp ne i64 [[K_2:%.*]], 3
; CHECK-NEXT:    [[CONV4:%.*]] = zext i1 [[CMP3]] to i64
; CHECK-NEXT:    [[TMP0:%.*]] = load i64, ptr @f, align 4
; CHECK-NEXT:    [[OR:%.*]] = or i64 [[TMP0]], [[CONV4]]
; CHECK-NEXT:    store i64 [[OR]], ptr @f, align 4
; CHECK-NEXT:    [[TOBOOL7:%.*]] = icmp ne i64 [[K_2]], 0
; CHECK-NEXT:    br i1 [[TOBOOL7]], label [[FOR_COND2THREAD_PRE_SPLIT:%.*]], label [[LOR_RHS:%.*]]
; CHECK:       lor.rhs:
; CHECK-NEXT:    store i64 1, ptr @b, align 8
; CHECK-NEXT:    br label [[FOR_COND2THREAD_PRE_SPLIT]]
; CHECK:       l1:
; CHECK-NEXT:    [[K_2]] = phi i64 [ undef, [[L1_PREHEADER:%.*]] ], [ 15, [[FOR_COND8_PREHEADER]] ], [ 5, [[FOR_COND11THREAD_PRE_SPLIT_LR_PH]] ]
; CHECK-NEXT:    store i64 7, ptr [[J_3:%.*]], align 4
; CHECK-NEXT:    br label [[FOR_BODY]]
; CHECK:       for.cond16:
; CHECK-NEXT:    [[J_0:%.*]] = phi ptr [ @f, [[ENTRY:%.*]] ], [ poison, [[FOR_COND20:%.*]] ], [ @e, [[FOR_COND16]] ]
; CHECK-NEXT:    br i1 %arg, label [[FOR_COND20]], label [[FOR_COND16]]
; CHECK:       for.cond20:
; CHECK-NEXT:    [[J_2:%.*]] = phi ptr [ [[J_0]], [[FOR_COND16]] ], [ poison, [[IF_END24]] ]
; CHECK-NEXT:    br i1 true, label [[IF_END24]], label [[FOR_COND16]]
; CHECK:       if.end24:
; CHECK-NEXT:    [[J_3]] = phi ptr [ [[J_2]], [[FOR_COND20]] ], [ undef, [[ENTRY]] ]
; CHECK-NEXT:    br i1 false, label [[FOR_COND20]], label [[L1_PREHEADER]]
; CHECK:       l1.preheader:
; CHECK-NEXT:    br label [[L1]]
;
entry:
  br i1 %arg, label %if.end24, label %for.cond16

for.cond2thread-pre-split:
  br i1 false, label %for.body, label %for.cond8.preheader

for.cond8.preheader:
  br i1 %arg, label %l1, label %for.cond11thread-pre-split.lr.ph

for.cond11thread-pre-split.lr.ph:
  br label %l1

for.body:
  %k.031 = phi i64 [ %k.2, %l1 ], [ 15, %for.cond2thread-pre-split ]
  %cmp3 = icmp ne i64 %k.031, 3
  %conv4 = zext i1 %cmp3 to i64
  %0 = load i64, ptr @f
  %or = or i64 %0, %conv4
  store i64 %or, ptr @f
  %tobool7 = icmp ne i64 %k.031, 0
  %or.cond = or i1 %tobool7, false
  br i1 %or.cond, label %for.cond2thread-pre-split, label %lor.rhs

lor.rhs:
  store i64 1, ptr @b, align 8
  br label %for.cond2thread-pre-split

l1:
  %k.2 = phi i64 [ undef, %l1.preheader ], [ 15, %for.cond8.preheader ], [ 5, %for.cond11thread-pre-split.lr.ph ]
  store i64 7, ptr %j.3
  br label %for.body

for.cond16:
  %j.0 = phi ptr [ @f, %entry ], [ %j.2, %for.cond20 ], [ @e, %for.cond16 ]
  br i1 %arg, label %for.cond20, label %for.cond16

for.cond20:
  %j.2 = phi ptr [ %j.0, %for.cond16 ], [ %j.3, %if.end24 ]
  br i1 true, label %if.end24, label %for.cond16

if.end24:
  %j.3 = phi ptr [ %j.2, %for.cond20 ], [ undef, %entry ]
  br i1 false, label %for.cond20, label %l1.preheader

l1.preheader:
  br label %l1
}
