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

; Funnel shift based rotate test cases from PR39771

declare i32 @llvm.fshr.i32(i32, i32, i32)
declare <2 x i32> @llvm.fshr.v2i32(<2 x i32>, <2 x i32>, <2 x i32>)

; First fshr operand is dead.
define i32 @pr39771_fshr_multi_use_instr(i32 %a) {
; CHECK-LABEL: @pr39771_fshr_multi_use_instr(
; CHECK-NEXT:    [[X:%.*]] = or i32 [[A:%.*]], 0
; CHECK-NEXT:    [[B:%.*]] = tail call i32 @llvm.fshr.i32(i32 0, i32 [[X]], i32 1)
; CHECK-NEXT:    [[C:%.*]] = lshr i32 [[B]], 23
; CHECK-NEXT:    [[D:%.*]] = xor i32 [[C]], [[B]]
; CHECK-NEXT:    [[E:%.*]] = and i32 [[D]], 31
; CHECK-NEXT:    ret i32 [[E]]
;
  %x = or i32 %a, 0
  %b = tail call i32 @llvm.fshr.i32(i32 %x, i32 %x, i32 1)
  %c = lshr i32 %b, 23
  %d = xor i32 %c, %b
  %e = and i32 %d, 31
  ret i32 %e
}

; First fshr operand is dead (vector variant).
define <2 x i32> @pr39771_fshr_multi_use_instr_vec(<2 x i32> %a) {
; CHECK-LABEL: @pr39771_fshr_multi_use_instr_vec(
; CHECK-NEXT:    [[X:%.*]] = or <2 x i32> [[A:%.*]], zeroinitializer
; CHECK-NEXT:    [[B:%.*]] = tail call <2 x i32> @llvm.fshr.v2i32(<2 x i32> zeroinitializer, <2 x i32> [[X]], <2 x i32> <i32 1, i32 1>)
; CHECK-NEXT:    [[C:%.*]] = lshr <2 x i32> [[B]], <i32 23, i32 23>
; CHECK-NEXT:    [[D:%.*]] = xor <2 x i32> [[C]], [[B]]
; CHECK-NEXT:    [[E:%.*]] = and <2 x i32> [[D]], <i32 31, i32 31>
; CHECK-NEXT:    ret <2 x i32> [[E]]
;
  %x = or <2 x i32> %a, zeroinitializer
  %b = tail call <2 x i32> @llvm.fshr.v2i32(<2 x i32> %x, <2 x i32> %x, <2 x i32> <i32 1, i32 1>)
  %c = lshr <2 x i32> %b, <i32 23, i32 23>
  %d = xor <2 x i32> %c, %b
  %e = and <2 x i32> %d, <i32 31, i32 31>
  ret <2 x i32> %e
}

; First fshr operand is dead, but it comes from an argument, not instruction.
define i32 @pr39771_fshr_multi_use_arg(i32 %a) {
; CHECK-LABEL: @pr39771_fshr_multi_use_arg(
; CHECK-NEXT:    [[B:%.*]] = tail call i32 @llvm.fshr.i32(i32 0, i32 [[A:%.*]], i32 1)
; CHECK-NEXT:    [[C:%.*]] = lshr i32 [[B]], 23
; CHECK-NEXT:    [[D:%.*]] = xor i32 [[C]], [[B]]
; CHECK-NEXT:    [[E:%.*]] = and i32 [[D]], 31
; CHECK-NEXT:    ret i32 [[E]]
;
  %b = tail call i32 @llvm.fshr.i32(i32 %a, i32 %a, i32 1)
  %c = lshr i32 %b, 23
  %d = xor i32 %c, %b
  %e = and i32 %d, 31
  ret i32 %e
}

define i32 @pr39771_expanded_fshr_multi_use(i32 %a) {
; CHECK-LABEL: @pr39771_expanded_fshr_multi_use(
; CHECK-NEXT:    [[TMP:%.*]] = lshr i32 [[A:%.*]], 1
; CHECK-NEXT:    [[TMP2:%.*]] = shl i32 0, 31
; CHECK-NEXT:    [[B:%.*]] = or i32 [[TMP]], [[TMP2]]
; CHECK-NEXT:    [[C:%.*]] = lshr i32 [[B]], 23
; CHECK-NEXT:    [[D:%.*]] = xor i32 [[C]], [[B]]
; CHECK-NEXT:    [[E:%.*]] = and i32 [[D]], 31
; CHECK-NEXT:    ret i32 [[E]]
;
  %tmp = lshr i32 %a, 1
  %tmp2 = shl i32 %a, 31
  %b = or i32 %tmp, %tmp2
  %c = lshr i32 %b, 23
  %d = xor i32 %c, %b
  %e = and i32 %d, 31
  ret i32 %e
}

; %b operand of %c will be dead initially, but later found live.
define void @dead_use_invalidation(i32 %a) {
; CHECK-LABEL: @dead_use_invalidation(
; CHECK-NEXT:    [[B:%.*]] = or i32 [[A:%.*]], 0
; CHECK-NEXT:    [[C:%.*]] = shl i32 [[B]], 31
; CHECK-NEXT:    [[D:%.*]] = and i32 [[C]], 1
; CHECK-NEXT:    [[E:%.*]] = or i32 [[C]], 0
; CHECK-NEXT:    [[F:%.*]] = or i32 [[D]], 0
; CHECK-NEXT:    call void @dummy(i32 [[E]])
; CHECK-NEXT:    call void @dummy(i32 [[F]])
; CHECK-NEXT:    call void @dummy(i32 [[B]])
; CHECK-NEXT:    ret void
;
  %b = or i32 %a, 0
  %c = shl i32 %b, 31
  %d = and i32 %c, 1
  %e = or i32 %c, 0
  %f = or i32 %d, 0
  call void @dummy(i32 %e)
  call void @dummy(i32 %f)
  call void @dummy(i32 %b)
  ret void
}
declare void @dummy(i32)
