; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
; RUN: opt < %s -S -passes="print<assumptions>,gvn-sink,loop-unroll" -unroll-count=3 | FileCheck %s
;
; This crashed because the cached assumption was replaced and the replacement
; was then in the cache twice.
;
; PR49043

@g = external global i32

define void @main() {
; CHECK-LABEL: @main(
; CHECK-NEXT:  bb:
; CHECK-NEXT:    br label [[BB4_I:%.*]]
; CHECK:       bb4.i:
; CHECK-NEXT:    [[I1_I:%.*]] = load volatile i32, i32* @g, align 4
; CHECK-NEXT:    [[I32_I:%.*]] = icmp eq i32 [[I1_I]], 0
; CHECK-NEXT:    call void @llvm.assume(i1 [[I32_I]])
; CHECK-NEXT:    [[I1_I_1:%.*]] = load volatile i32, i32* @g, align 4
; CHECK-NEXT:    [[I32_I_1:%.*]] = icmp eq i32 [[I1_I_1]], 0
; CHECK-NEXT:    call void @llvm.assume(i1 [[I32_I_1]])
; CHECK-NEXT:    [[I1_I_2:%.*]] = load volatile i32, i32* @g, align 4
; CHECK-NEXT:    [[I32_I_2:%.*]] = icmp eq i32 [[I1_I_2]], 0
; CHECK-NEXT:    call void @llvm.assume(i1 [[I32_I_2]])
; CHECK-NEXT:    br label [[BB4_I]], !llvm.loop [[LOOP0:![0-9]+]]
; CHECK:       func_1.exit:
; CHECK-NEXT:    unreachable
;
bb:
  %i1.i = load volatile i32, i32* @g
  %i32.i = icmp eq i32 %i1.i, 0
  call void @llvm.assume(i1 %i32.i) #3
  br label %bb4.i

bb4.i:                                            ; preds = %bb4.i, %bb
  %i.i = load volatile i32, i32* @g
  %i3.i = icmp eq i32 %i.i, 0
  call void @llvm.assume(i1 %i3.i) #3
  br label %bb4.i

func_1.exit:                                      ; No predecessors!
  unreachable
}

declare void @llvm.assume(i1)
