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

define i32 @ctlz_true_bitreverse(i32 %x) {
; CHECK-LABEL: @ctlz_true_bitreverse(
; CHECK-NEXT:    [[TMP1:%.*]] = call i32 @llvm.cttz.i32(i32 [[X:%.*]], i1 true), !range !0
; CHECK-NEXT:    ret i32 [[TMP1]]
;
  %a = tail call i32 @llvm.bitreverse.i32(i32 %x)
  %b = tail call i32 @llvm.ctlz.i32(i32 %a, i1 true)
  ret i32 %b
}

define <2 x i64> @ctlz_true_bitreverse_vec(<2 x i64> %x) {
; CHECK-LABEL: @ctlz_true_bitreverse_vec(
; CHECK-NEXT:    [[TMP1:%.*]] = call <2 x i64> @llvm.cttz.v2i64(<2 x i64> [[X:%.*]], i1 true)
; CHECK-NEXT:    ret <2 x i64> [[TMP1]]
;
  %a = tail call <2 x i64> @llvm.bitreverse.v2i64(<2 x i64> %x)
  %b = tail call <2 x i64> @llvm.ctlz.v2i64(<2 x i64> %a, i1 true)
  ret <2 x i64> %b
}

define i32 @ctlz_false_bitreverse(i32 %x) {
; CHECK-LABEL: @ctlz_false_bitreverse(
; CHECK-NEXT:    [[TMP1:%.*]] = call i32 @llvm.cttz.i32(i32 [[X:%.*]], i1 false), !range !0
; CHECK-NEXT:    ret i32 [[TMP1]]
;
  %a = tail call i32 @llvm.bitreverse.i32(i32 %x)
  %b = tail call i32 @llvm.ctlz.i32(i32 %a, i1 false)
  ret i32 %b
}

define i32 @cttz_true_bitreverse(i32 %x) {
; CHECK-LABEL: @cttz_true_bitreverse(
; CHECK-NEXT:    [[TMP1:%.*]] = call i32 @llvm.ctlz.i32(i32 [[X:%.*]], i1 true), !range !0
; CHECK-NEXT:    ret i32 [[TMP1]]
;
  %a = tail call i32 @llvm.bitreverse.i32(i32 %x)
  %b = tail call i32 @llvm.cttz.i32(i32 %a, i1 true)
  ret i32 %b
}

define <2 x i64> @cttz_true_bitreverse_vec(<2 x i64> %x) {
; CHECK-LABEL: @cttz_true_bitreverse_vec(
; CHECK-NEXT:    [[TMP1:%.*]] = call <2 x i64> @llvm.ctlz.v2i64(<2 x i64> [[X:%.*]], i1 true)
; CHECK-NEXT:    ret <2 x i64> [[TMP1]]
;
  %a = tail call <2 x i64> @llvm.bitreverse.v2i64(<2 x i64> %x)
  %b = tail call <2 x i64> @llvm.cttz.v2i64(<2 x i64> %a, i1 true)
  ret <2 x i64> %b
}

define i32 @cttz_false_bitreverse(i32 %x) {
; CHECK-LABEL: @cttz_false_bitreverse(
; CHECK-NEXT:    [[TMP1:%.*]] = call i32 @llvm.ctlz.i32(i32 [[X:%.*]], i1 false), !range !0
; CHECK-NEXT:    ret i32 [[TMP1]]
;
  %a = tail call i32 @llvm.bitreverse.i32(i32 %x)
  %b = tail call i32 @llvm.cttz.i32(i32 %a, i1 false)
  ret i32 %b
}

declare i32 @llvm.bitreverse.i32(i32)
declare <2 x i64> @llvm.bitreverse.v2i64(<2 x i64>)
declare i32 @llvm.ctlz.i32(i32, i1)
declare i32 @llvm.cttz.i32(i32, i1)
declare <2 x i64> @llvm.ctlz.v2i64(<2 x i64>, i1)
declare <2 x i64> @llvm.cttz.v2i64(<2 x i64>, i1)
