; Wrappers around the bit manipulation intrinsics, which use name mangling
; for encoding the type in the name instead of plain "C" suffixes.
; E.g., my_ctpop(unsigned long long) vs __builtin_popcountll(...)
; Also, normalize the intrinsic to take a single parameter when there
; can be two, as is the case for ctlz and cttz.

target triple = "i686-pc-linux-gnu"

declare i32 @llvm.ctlz.i32(i32, i1)
declare i64 @llvm.ctlz.i64(i64, i1)

declare i32 @llvm.cttz.i32(i32, i1)
declare i64 @llvm.cttz.i64(i64, i1)

declare i32 @llvm.ctpop.i32(i32)
declare i64 @llvm.ctpop.i64(i64)

define i32 @_Z7my_ctlzj(i32 %a) {
  %x = call i32 @llvm.ctlz.i32(i32 %a, i1 0)
  ret i32 %x
}

define i64 @_Z7my_ctlzy(i64 %a) {
  %x = call i64 @llvm.ctlz.i64(i64 %a, i1 0)
  ret i64 %x
}

define i32 @_Z7my_cttzj(i32 %a) {
  %x = call i32 @llvm.cttz.i32(i32 %a, i1 0)
  ret i32 %x
}

define i64 @_Z7my_cttzy(i64 %a) {
  %x = call i64 @llvm.cttz.i64(i64 %a, i1 0)
  ret i64 %x
}

define i32 @_Z8my_ctpopj(i32 %a) {
  %x = call i32 @llvm.ctpop.i32(i32 %a)
  ret i32 %x
}

define i64 @_Z8my_ctpopy(i64 %a) {
  %x = call i64 @llvm.ctpop.i64(i64 %a)
  ret i64 %x
}
