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

; If we have some pattern that leaves only some low bits set, and then performs
; left-shift of those bits, if none of the bits that are left after the final
; shift are modified by the mask, we can omit the mask.

; There are many variants to this pattern:
;   a)  (x & ((1 << maskNbits) - 1)) << shiftNbits
; simplify to:
;   x << shiftNbits
; iff (maskNbits+shiftNbits) u>= bitwidth(x)

; Simple tests. We don't care about extra uses.

declare void @use32(i32)

define i32 @t0_basic(i32 %x, i32 %nbits) {
; CHECK-LABEL: @t0_basic(
; CHECK-NEXT:    [[T0:%.*]] = shl nuw i32 1, [[NBITS:%.*]]
; CHECK-NEXT:    [[T1:%.*]] = add nsw i32 [[T0]], -1
; CHECK-NEXT:    [[T2:%.*]] = and i32 [[T1]], [[X:%.*]]
; CHECK-NEXT:    [[T3:%.*]] = sub i32 32, [[NBITS]]
; CHECK-NEXT:    call void @use32(i32 [[T0]])
; CHECK-NEXT:    call void @use32(i32 [[T1]])
; CHECK-NEXT:    call void @use32(i32 [[T2]])
; CHECK-NEXT:    call void @use32(i32 [[T3]])
; CHECK-NEXT:    [[T4:%.*]] = shl i32 [[X]], [[T3]]
; CHECK-NEXT:    ret i32 [[T4]]
;
  %t0 = shl i32 1, %nbits
  %t1 = add nsw i32 %t0, -1
  %t2 = and i32 %t1, %x
  %t3 = sub i32 32, %nbits
  call void @use32(i32 %t0)
  call void @use32(i32 %t1)
  call void @use32(i32 %t2)
  call void @use32(i32 %t3)
  %t4 = shl i32 %t2, %t3
  ret i32 %t4
}

define i32 @t1_bigger_shift(i32 %x, i32 %nbits) {
; CHECK-LABEL: @t1_bigger_shift(
; CHECK-NEXT:    [[T0:%.*]] = shl nuw i32 1, [[NBITS:%.*]]
; CHECK-NEXT:    [[T1:%.*]] = add nsw i32 [[T0]], -1
; CHECK-NEXT:    [[T2:%.*]] = and i32 [[T1]], [[X:%.*]]
; CHECK-NEXT:    [[T3:%.*]] = sub i32 33, [[NBITS]]
; CHECK-NEXT:    call void @use32(i32 [[T0]])
; CHECK-NEXT:    call void @use32(i32 [[T1]])
; CHECK-NEXT:    call void @use32(i32 [[T2]])
; CHECK-NEXT:    call void @use32(i32 [[T3]])
; CHECK-NEXT:    [[T4:%.*]] = shl i32 [[X]], [[T3]]
; CHECK-NEXT:    ret i32 [[T4]]
;
  %t0 = shl i32 1, %nbits
  %t1 = add nsw i32 %t0, -1
  %t2 = and i32 %t1, %x
  %t3 = sub i32 33, %nbits ; subtracting from bitwidth+1
  call void @use32(i32 %t0)
  call void @use32(i32 %t1)
  call void @use32(i32 %t2)
  call void @use32(i32 %t3)
  %t4 = shl i32 %t2, %t3
  ret i32 %t4
}

define i32 @t2_bigger_mask(i32 %x, i32 %nbits) {
; CHECK-LABEL: @t2_bigger_mask(
; CHECK-NEXT:    [[T0:%.*]] = add i32 [[NBITS:%.*]], 1
; CHECK-NEXT:    [[T1:%.*]] = shl nuw i32 1, [[T0]]
; CHECK-NEXT:    [[T2:%.*]] = add nsw i32 [[T1]], -1
; CHECK-NEXT:    [[T3:%.*]] = and i32 [[T2]], [[X:%.*]]
; CHECK-NEXT:    [[T4:%.*]] = sub i32 32, [[NBITS]]
; CHECK-NEXT:    call void @use32(i32 [[T0]])
; CHECK-NEXT:    call void @use32(i32 [[T1]])
; CHECK-NEXT:    call void @use32(i32 [[T2]])
; CHECK-NEXT:    call void @use32(i32 [[T3]])
; CHECK-NEXT:    call void @use32(i32 [[T4]])
; CHECK-NEXT:    [[T5:%.*]] = shl i32 [[X]], [[T4]]
; CHECK-NEXT:    ret i32 [[T5]]
;
  %t0 = add i32 %nbits, 1
  %t1 = shl i32 1, %t0 ; shifting by nbits+1
  %t2 = add nsw i32 %t1, -1
  %t3 = and i32 %t2, %x
  %t4 = sub i32 32, %nbits
  call void @use32(i32 %t0)
  call void @use32(i32 %t1)
  call void @use32(i32 %t2)
  call void @use32(i32 %t3)
  call void @use32(i32 %t4)
  %t5 = shl i32 %t3, %t4
  ret i32 %t5
}

; Vectors

declare void @use3xi32(<3 x i32>)

define <3 x i32> @t3_vec_splat(<3 x i32> %x, <3 x i32> %nbits) {
; CHECK-LABEL: @t3_vec_splat(
; CHECK-NEXT:    [[T1:%.*]] = shl nuw <3 x i32> <i32 1, i32 1, i32 1>, [[NBITS:%.*]]
; CHECK-NEXT:    [[T2:%.*]] = add nsw <3 x i32> [[T1]], <i32 -1, i32 -1, i32 -1>
; CHECK-NEXT:    [[T3:%.*]] = and <3 x i32> [[T2]], [[X:%.*]]
; CHECK-NEXT:    [[T4:%.*]] = sub <3 x i32> <i32 32, i32 32, i32 32>, [[NBITS]]
; CHECK-NEXT:    call void @use3xi32(<3 x i32> [[NBITS]])
; CHECK-NEXT:    call void @use3xi32(<3 x i32> [[T1]])
; CHECK-NEXT:    call void @use3xi32(<3 x i32> [[T2]])
; CHECK-NEXT:    call void @use3xi32(<3 x i32> [[T3]])
; CHECK-NEXT:    call void @use3xi32(<3 x i32> [[T4]])
; CHECK-NEXT:    [[T5:%.*]] = shl <3 x i32> [[X]], [[T4]]
; CHECK-NEXT:    ret <3 x i32> [[T5]]
;
  %t0 = add <3 x i32> %nbits, <i32 0, i32 0, i32 0>
  %t1 = shl <3 x i32> <i32 1, i32 1, i32 1>, %t0
  %t2 = add nsw <3 x i32> %t1, <i32 -1, i32 -1, i32 -1>
  %t3 = and <3 x i32> %t2, %x
  %t4 = sub <3 x i32> <i32 32, i32 32, i32 32>, %nbits
  call void @use3xi32(<3 x i32> %t0)
  call void @use3xi32(<3 x i32> %t1)
  call void @use3xi32(<3 x i32> %t2)
  call void @use3xi32(<3 x i32> %t3)
  call void @use3xi32(<3 x i32> %t4)
  %t5 = shl <3 x i32> %t3, %t4
  ret <3 x i32> %t5
}

define <3 x i32> @t4_vec_nonsplat(<3 x i32> %x, <3 x i32> %nbits) {
; CHECK-LABEL: @t4_vec_nonsplat(
; CHECK-NEXT:    [[T0:%.*]] = add <3 x i32> [[NBITS:%.*]], <i32 -1, i32 0, i32 1>
; CHECK-NEXT:    [[T1:%.*]] = shl nuw <3 x i32> <i32 1, i32 1, i32 1>, [[T0]]
; CHECK-NEXT:    [[T2:%.*]] = add nsw <3 x i32> [[T1]], <i32 -1, i32 -1, i32 -1>
; CHECK-NEXT:    [[T3:%.*]] = and <3 x i32> [[T2]], [[X:%.*]]
; CHECK-NEXT:    [[T4:%.*]] = sub <3 x i32> <i32 33, i32 32, i32 32>, [[NBITS]]
; CHECK-NEXT:    call void @use3xi32(<3 x i32> [[T0]])
; CHECK-NEXT:    call void @use3xi32(<3 x i32> [[T1]])
; CHECK-NEXT:    call void @use3xi32(<3 x i32> [[T2]])
; CHECK-NEXT:    call void @use3xi32(<3 x i32> [[T3]])
; CHECK-NEXT:    call void @use3xi32(<3 x i32> [[T4]])
; CHECK-NEXT:    [[T5:%.*]] = shl <3 x i32> [[X]], [[T4]]
; CHECK-NEXT:    ret <3 x i32> [[T5]]
;
  %t0 = add <3 x i32> %nbits, <i32 -1, i32 0, i32 1>
  %t1 = shl <3 x i32> <i32 1, i32 1, i32 1>, %t0
  %t2 = add nsw <3 x i32> %t1, <i32 -1, i32 -1, i32 -1>
  %t3 = and <3 x i32> %t2, %x
  %t4 = sub <3 x i32> <i32 33, i32 32, i32 32>, %nbits
  call void @use3xi32(<3 x i32> %t0)
  call void @use3xi32(<3 x i32> %t1)
  call void @use3xi32(<3 x i32> %t2)
  call void @use3xi32(<3 x i32> %t3)
  call void @use3xi32(<3 x i32> %t4)
  %t5 = shl <3 x i32> %t3, %t4
  ret <3 x i32> %t5
}

define <3 x i32> @t5_vec_poison(<3 x i32> %x, <3 x i32> %nbits) {
; CHECK-LABEL: @t5_vec_poison(
; CHECK-NEXT:    [[T1:%.*]] = shl nuw <3 x i32> <i32 1, i32 poison, i32 1>, [[NBITS:%.*]]
; CHECK-NEXT:    [[T2:%.*]] = add nsw <3 x i32> [[T1]], <i32 -1, i32 poison, i32 -1>
; CHECK-NEXT:    [[T3:%.*]] = and <3 x i32> [[T2]], [[X:%.*]]
; CHECK-NEXT:    [[T4:%.*]] = sub <3 x i32> <i32 32, i32 poison, i32 32>, [[NBITS]]
; CHECK-NEXT:    call void @use3xi32(<3 x i32> [[NBITS]])
; CHECK-NEXT:    call void @use3xi32(<3 x i32> [[T1]])
; CHECK-NEXT:    call void @use3xi32(<3 x i32> [[T2]])
; CHECK-NEXT:    call void @use3xi32(<3 x i32> [[T3]])
; CHECK-NEXT:    call void @use3xi32(<3 x i32> [[T4]])
; CHECK-NEXT:    [[T5:%.*]] = shl <3 x i32> [[X]], [[T4]]
; CHECK-NEXT:    ret <3 x i32> [[T5]]
;
  %t0 = add <3 x i32> %nbits, <i32 0, i32 poison, i32 0>
  %t1 = shl <3 x i32> <i32 1, i32 poison, i32 1>, %t0
  %t2 = add nsw <3 x i32> %t1, <i32 -1, i32 poison, i32 -1>
  %t3 = and <3 x i32> %t2, %x
  %t4 = sub <3 x i32> <i32 32, i32 poison, i32 32>, %nbits
  call void @use3xi32(<3 x i32> %t0)
  call void @use3xi32(<3 x i32> %t1)
  call void @use3xi32(<3 x i32> %t2)
  call void @use3xi32(<3 x i32> %t3)
  call void @use3xi32(<3 x i32> %t4)
  %t5 = shl <3 x i32> %t3, %t4
  ret <3 x i32> %t5
}

; Commutativity

declare i32 @gen32()

define i32 @t6_commutativity0(i32 %nbits) {
; CHECK-LABEL: @t6_commutativity0(
; CHECK-NEXT:    [[X:%.*]] = call i32 @gen32()
; CHECK-NEXT:    [[T0:%.*]] = shl nuw i32 1, [[NBITS:%.*]]
; CHECK-NEXT:    [[T1:%.*]] = add nsw i32 [[T0]], -1
; CHECK-NEXT:    [[T2:%.*]] = and i32 [[X]], [[T1]]
; CHECK-NEXT:    [[T3:%.*]] = sub i32 32, [[NBITS]]
; CHECK-NEXT:    call void @use32(i32 [[T0]])
; CHECK-NEXT:    call void @use32(i32 [[T1]])
; CHECK-NEXT:    call void @use32(i32 [[T2]])
; CHECK-NEXT:    call void @use32(i32 [[T3]])
; CHECK-NEXT:    [[T4:%.*]] = shl i32 [[X]], [[T3]]
; CHECK-NEXT:    ret i32 [[T4]]
;
  %x = call i32 @gen32()
  %t0 = shl i32 1, %nbits
  %t1 = add nsw i32 %t0, -1
  %t2 = and i32 %x, %t1 ; swapped
  %t3 = sub i32 32, %nbits
  call void @use32(i32 %t0)
  call void @use32(i32 %t1)
  call void @use32(i32 %t2)
  call void @use32(i32 %t3)
  %t4 = shl i32 %t2, %t3
  ret i32 %t4
}

define i32 @t7_commutativity1(i32 %nbits0, i32 %nbits1) {
; CHECK-LABEL: @t7_commutativity1(
; CHECK-NEXT:    [[T0:%.*]] = shl nuw i32 1, [[NBITS0:%.*]]
; CHECK-NEXT:    [[T1:%.*]] = add nsw i32 [[T0]], -1
; CHECK-NEXT:    [[T2:%.*]] = shl nuw i32 1, [[NBITS1:%.*]]
; CHECK-NEXT:    [[T3:%.*]] = add nsw i32 [[T2]], -1
; CHECK-NEXT:    [[T4:%.*]] = and i32 [[T3]], [[T1]]
; CHECK-NEXT:    [[T5:%.*]] = sub i32 32, [[NBITS0]]
; CHECK-NEXT:    call void @use32(i32 [[T0]])
; CHECK-NEXT:    call void @use32(i32 [[T1]])
; CHECK-NEXT:    call void @use32(i32 [[T2]])
; CHECK-NEXT:    call void @use32(i32 [[T3]])
; CHECK-NEXT:    call void @use32(i32 [[T4]])
; CHECK-NEXT:    call void @use32(i32 [[T5]])
; CHECK-NEXT:    [[T6:%.*]] = shl i32 [[T4]], [[T5]]
; CHECK-NEXT:    ret i32 [[T6]]
;
  %t0 = shl i32 1, %nbits0
  %t1 = add nsw i32 %t0, -1
  %t2 = shl i32 1, %nbits1
  %t3 = add nsw i32 %t2, -1
  %t4 = and i32 %t3, %t1 ; both hands of 'and' could be mask..
  %t5 = sub i32 32, %nbits0
  call void @use32(i32 %t0)
  call void @use32(i32 %t1)
  call void @use32(i32 %t2)
  call void @use32(i32 %t3)
  call void @use32(i32 %t4)
  call void @use32(i32 %t5)
  %t6 = shl i32 %t4, %t5
  ret i32 %t6
}
define i32 @t8_commutativity2(i32 %nbits0, i32 %nbits1) {
; CHECK-LABEL: @t8_commutativity2(
; CHECK-NEXT:    [[T0:%.*]] = shl nuw i32 1, [[NBITS0:%.*]]
; CHECK-NEXT:    [[T1:%.*]] = add nsw i32 [[T0]], -1
; CHECK-NEXT:    [[T2:%.*]] = shl nuw i32 1, [[NBITS1:%.*]]
; CHECK-NEXT:    [[T3:%.*]] = add nsw i32 [[T2]], -1
; CHECK-NEXT:    [[T4:%.*]] = and i32 [[T3]], [[T1]]
; CHECK-NEXT:    [[T5:%.*]] = sub i32 32, [[NBITS1]]
; CHECK-NEXT:    call void @use32(i32 [[T0]])
; CHECK-NEXT:    call void @use32(i32 [[T1]])
; CHECK-NEXT:    call void @use32(i32 [[T2]])
; CHECK-NEXT:    call void @use32(i32 [[T3]])
; CHECK-NEXT:    call void @use32(i32 [[T4]])
; CHECK-NEXT:    call void @use32(i32 [[T5]])
; CHECK-NEXT:    [[T6:%.*]] = shl i32 [[T1]], [[T5]]
; CHECK-NEXT:    ret i32 [[T6]]
;
  %t0 = shl i32 1, %nbits0
  %t1 = add nsw i32 %t0, -1
  %t2 = shl i32 1, %nbits1
  %t3 = add nsw i32 %t2, -1
  %t4 = and i32 %t3, %t1 ; both hands of 'and' could be mask..
  %t5 = sub i32 32, %nbits1
  call void @use32(i32 %t0)
  call void @use32(i32 %t1)
  call void @use32(i32 %t2)
  call void @use32(i32 %t3)
  call void @use32(i32 %t4)
  call void @use32(i32 %t5)
  %t6 = shl i32 %t4, %t5
  ret i32 %t6
}

; Fast-math flags. We must not preserve them!

define i32 @t9_nuw(i32 %x, i32 %nbits) {
; CHECK-LABEL: @t9_nuw(
; CHECK-NEXT:    [[T0:%.*]] = shl nuw i32 1, [[NBITS:%.*]]
; CHECK-NEXT:    [[T1:%.*]] = add nsw i32 [[T0]], -1
; CHECK-NEXT:    [[T2:%.*]] = and i32 [[T1]], [[X:%.*]]
; CHECK-NEXT:    [[T3:%.*]] = sub i32 32, [[NBITS]]
; CHECK-NEXT:    call void @use32(i32 [[T0]])
; CHECK-NEXT:    call void @use32(i32 [[T1]])
; CHECK-NEXT:    call void @use32(i32 [[T2]])
; CHECK-NEXT:    call void @use32(i32 [[T3]])
; CHECK-NEXT:    [[T4:%.*]] = shl i32 [[X]], [[T3]]
; CHECK-NEXT:    ret i32 [[T4]]
;
  %t0 = shl i32 1, %nbits
  %t1 = add nsw i32 %t0, -1
  %t2 = and i32 %t1, %x
  %t3 = sub i32 32, %nbits
  call void @use32(i32 %t0)
  call void @use32(i32 %t1)
  call void @use32(i32 %t2)
  call void @use32(i32 %t3)
  %t4 = shl nuw i32 %t2, %t3
  ret i32 %t4
}

define i32 @t10_nsw(i32 %x, i32 %nbits) {
; CHECK-LABEL: @t10_nsw(
; CHECK-NEXT:    [[T0:%.*]] = shl nuw i32 1, [[NBITS:%.*]]
; CHECK-NEXT:    [[T1:%.*]] = add nsw i32 [[T0]], -1
; CHECK-NEXT:    [[T2:%.*]] = and i32 [[T1]], [[X:%.*]]
; CHECK-NEXT:    [[T3:%.*]] = sub i32 32, [[NBITS]]
; CHECK-NEXT:    call void @use32(i32 [[T0]])
; CHECK-NEXT:    call void @use32(i32 [[T1]])
; CHECK-NEXT:    call void @use32(i32 [[T2]])
; CHECK-NEXT:    call void @use32(i32 [[T3]])
; CHECK-NEXT:    [[T4:%.*]] = shl i32 [[X]], [[T3]]
; CHECK-NEXT:    ret i32 [[T4]]
;
  %t0 = shl i32 1, %nbits
  %t1 = add nsw i32 %t0, -1
  %t2 = and i32 %t1, %x
  %t3 = sub i32 32, %nbits
  call void @use32(i32 %t0)
  call void @use32(i32 %t1)
  call void @use32(i32 %t2)
  call void @use32(i32 %t3)
  %t4 = shl nsw i32 %t2, %t3
  ret i32 %t4
}

define i32 @t11_nuw_nsw(i32 %x, i32 %nbits) {
; CHECK-LABEL: @t11_nuw_nsw(
; CHECK-NEXT:    [[T0:%.*]] = shl nuw i32 1, [[NBITS:%.*]]
; CHECK-NEXT:    [[T1:%.*]] = add nsw i32 [[T0]], -1
; CHECK-NEXT:    [[T2:%.*]] = and i32 [[T1]], [[X:%.*]]
; CHECK-NEXT:    [[T3:%.*]] = sub i32 32, [[NBITS]]
; CHECK-NEXT:    call void @use32(i32 [[T0]])
; CHECK-NEXT:    call void @use32(i32 [[T1]])
; CHECK-NEXT:    call void @use32(i32 [[T2]])
; CHECK-NEXT:    call void @use32(i32 [[T3]])
; CHECK-NEXT:    [[T4:%.*]] = shl i32 [[X]], [[T3]]
; CHECK-NEXT:    ret i32 [[T4]]
;
  %t0 = shl i32 1, %nbits
  %t1 = add nsw i32 %t0, -1
  %t2 = and i32 %t1, %x
  %t3 = sub i32 32, %nbits
  call void @use32(i32 %t0)
  call void @use32(i32 %t1)
  call void @use32(i32 %t2)
  call void @use32(i32 %t3)
  %t4 = shl nuw nsw i32 %t2, %t3
  ret i32 %t4
}

; Negative tests

define i32 @n12_not_minus_one(i32 %x, i32 %nbits) {
; CHECK-LABEL: @n12_not_minus_one(
; CHECK-NEXT:    [[T0:%.*]] = shl i32 2, [[NBITS:%.*]]
; CHECK-NEXT:    [[T1:%.*]] = add nsw i32 [[T0]], -1
; CHECK-NEXT:    [[T2:%.*]] = and i32 [[T1]], [[X:%.*]]
; CHECK-NEXT:    [[T3:%.*]] = sub i32 32, [[NBITS]]
; CHECK-NEXT:    call void @use32(i32 [[T0]])
; CHECK-NEXT:    call void @use32(i32 [[T1]])
; CHECK-NEXT:    call void @use32(i32 [[T2]])
; CHECK-NEXT:    call void @use32(i32 [[T3]])
; CHECK-NEXT:    [[T4:%.*]] = shl i32 [[T2]], [[T3]]
; CHECK-NEXT:    ret i32 [[T4]]
;
  %t0 = shl i32 2, %nbits ; shifting not '-1'
  %t1 = add nsw i32 %t0, -1
  %t2 = and i32 %t1, %x
  %t3 = sub i32 32, %nbits
  call void @use32(i32 %t0)
  call void @use32(i32 %t1)
  call void @use32(i32 %t2)
  call void @use32(i32 %t3)
  %t4 = shl i32 %t2, %t3
  ret i32 %t4
}

define i32 @n13_not_minus_one(i32 %x, i32 %nbits) {
; CHECK-LABEL: @n13_not_minus_one(
; CHECK-NEXT:    [[T0:%.*]] = shl nuw i32 1, [[NBITS:%.*]]
; CHECK-NEXT:    [[T1:%.*]] = add nuw nsw i32 [[T0]], 2147483647
; CHECK-NEXT:    [[T2:%.*]] = and i32 [[T1]], [[X:%.*]]
; CHECK-NEXT:    [[T3:%.*]] = sub i32 32, [[NBITS]]
; CHECK-NEXT:    call void @use32(i32 [[T0]])
; CHECK-NEXT:    call void @use32(i32 [[T1]])
; CHECK-NEXT:    call void @use32(i32 [[T2]])
; CHECK-NEXT:    call void @use32(i32 [[T3]])
; CHECK-NEXT:    [[T4:%.*]] = shl i32 [[T2]], [[T3]]
; CHECK-NEXT:    ret i32 [[T4]]
;
  %t0 = shl i32 1, %nbits
  %t1 = add nsw i32 %t0, 2147483647 ; adding not '-1'
  %t2 = and i32 %t1, %x
  %t3 = sub i32 32, %nbits
  call void @use32(i32 %t0)
  call void @use32(i32 %t1)
  call void @use32(i32 %t2)
  call void @use32(i32 %t3)
  %t4 = shl i32 %t2, %t3
  ret i32 %t4
}
