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

; Fold
;   x s/ (-1 << y)
; to
;   -(x >> y)
; iff x is known non-negative.

declare void @llvm.assume(i1)

define i8 @t0(i8 %x, i8 %y) {
; CHECK-LABEL: @t0(
; CHECK-NEXT:    [[X_IS_NONNEGATIVE:%.*]] = icmp sgt i8 [[X:%.*]], -1
; CHECK-NEXT:    call void @llvm.assume(i1 [[X_IS_NONNEGATIVE]])
; CHECK-NEXT:    [[TMP1:%.*]] = lshr i8 [[X]], 5
; CHECK-NEXT:    [[DIV:%.*]] = sub nsw i8 0, [[TMP1]]
; CHECK-NEXT:    ret i8 [[DIV]]
;
  %x_is_nonnegative = icmp sge i8 %x, 0
  call void @llvm.assume(i1 %x_is_nonnegative)
  %div = sdiv i8 %x, -32
  ret i8 %div
}
define i8 @n1(i8 %x, i8 %y) {
; CHECK-LABEL: @n1(
; CHECK-NEXT:    [[X_IS_NONNEGATIVE:%.*]] = icmp sgt i8 [[X:%.*]], -2
; CHECK-NEXT:    call void @llvm.assume(i1 [[X_IS_NONNEGATIVE]])
; CHECK-NEXT:    [[DIV:%.*]] = sdiv i8 [[X]], -32
; CHECK-NEXT:    ret i8 [[DIV]]
;
  %x_is_nonnegative = icmp sge i8 %x, -1 ; could be negative
  call void @llvm.assume(i1 %x_is_nonnegative)
  %div = sdiv i8 %x, -32
  ret i8 %div
}
define i8 @n2(i8 %x, i8 %y) {
; CHECK-LABEL: @n2(
; CHECK-NEXT:    [[X_IS_NONNEGATIVE:%.*]] = icmp sgt i8 [[X:%.*]], -1
; CHECK-NEXT:    call void @llvm.assume(i1 [[X_IS_NONNEGATIVE]])
; CHECK-NEXT:    [[DIV:%.*]] = sdiv i8 [[X]], -31
; CHECK-NEXT:    ret i8 [[DIV]]
;
  %x_is_nonnegative = icmp sge i8 %x, 0
  call void @llvm.assume(i1 %x_is_nonnegative)
  %div = sdiv i8 %x, -31 ; not a negative power of two
  ret i8 %div
}
