; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
; RUN: opt < %s -mtriple=x86_64-unknown-linux-gnu -consthoist -consthoist-gep=1 -S | FileCheck %s

; This is a reproducer for PR43903 where we hit an assertion:
; opt: ../lib/Transforms/Scalar/ConstantHoisting.cpp:903: bool llvm::ConstantHoistingPass::emitBaseConstants(llvm::GlobalVariable *): Assertion `UsesNum == (ReBasesNum + NotRebasedNum) && "Not all uses are rebased"' failed.

target triple = "x86_64-unknown-linux-gnu"

@a = external global [2 x i16], align 1

define void @c() {
; CHECK-LABEL: @c(
; CHECK-NEXT:  for.cond:
; CHECK-NEXT:    br i1 undef, label [[FOR_BODY2:%.*]], label [[FOR_END4:%.*]]
; CHECK:       for.body2:
; CHECK-NEXT:    br i1 undef, label [[LAND_RHS:%.*]], label [[LAND_END:%.*]]
; CHECK:       land.rhs:
; CHECK-NEXT:    unreachable
; CHECK:       land.end:
; CHECK-NEXT:    [[CONST1:%.*]] = bitcast i16* getelementptr inbounds ([2 x i16], [2 x i16]* @a, i32 0, i32 0) to i16*
; CHECK-NEXT:    [[CMP:%.*]] = icmp ule i16* undef, [[CONST1]]
; CHECK-NEXT:    unreachable
; CHECK:       for.cond3:
; CHECK-NEXT:    [[TMP0:%.*]] = load i16, i16* getelementptr inbounds ([2 x i16], [2 x i16]* @a, i32 0, i32 1), align 1
; CHECK-NEXT:    br label [[FOR_COND3:%.*]]
; CHECK:       for.end4:
; CHECK-NEXT:    [[CONST:%.*]] = bitcast i16* getelementptr inbounds ([2 x i16], [2 x i16]* @a, i32 0, i32 0) to i16*
; CHECK-NEXT:    [[TMP1:%.*]] = load i16, i16* [[CONST]], align 1
; CHECK-NEXT:    ret void
;
for.cond:
  br i1 undef, label %for.body2, label %for.end4

for.body2:                                        ; preds = %for.cond
  br i1 undef, label %land.rhs, label %land.end

land.rhs:                                         ; preds = %for.body2
  unreachable

land.end:                                         ; preds = %for.body2
  %cmp = icmp ule i16* undef, getelementptr inbounds ([2 x i16], [2 x i16]* @a, i32 0, i32 0)
  unreachable

for.cond3:                                        ; preds = %for.cond3
  %tmp0 = load i16, i16* getelementptr inbounds ([2 x i16], [2 x i16]* @a, i32 0, i32 1), align 1
  br label %for.cond3

for.end4:                                         ; preds = %for.cond
  %tmp1 = load i16, i16* getelementptr inbounds ([2 x i16], [2 x i16]* @a, i32 0, i32 0), align 1
  ret void
}
