; Make sure this testcase is supported by all code generators
; RUN: llc < %s

declare i64 @llvm.ctpop.i64(i64)

declare i32 @llvm.ctpop.i32(i32)

declare i16 @llvm.ctpop.i16(i16)

declare i8 @llvm.ctpop.i8(i8)

define void @ctpoptest(i8 %A, i16 %B, i32 %C, i64 %D, i8* %AP, i16* %BP, i32* %CP, i64* %DP) {
	%a = call i8 @llvm.ctpop.i8( i8 %A )		; <i8> [#uses=1]
	%b = call i16 @llvm.ctpop.i16( i16 %B )		; <i16> [#uses=1]
	%c = call i32 @llvm.ctpop.i32( i32 %C )		; <i32> [#uses=1]
	%d = call i64 @llvm.ctpop.i64( i64 %D )		; <i64> [#uses=1]
	store i8 %a, i8* %AP
	store i16 %b, i16* %BP
	store i32 %c, i32* %CP
	store i64 %d, i64* %DP
	ret void
}

declare i64 @llvm.ctlz.i64(i64)

declare i32 @llvm.ctlz.i32(i32)

declare i16 @llvm.ctlz.i16(i16)

declare i8 @llvm.ctlz.i8(i8)

define void @ctlztest(i8 %A, i16 %B, i32 %C, i64 %D, i8* %AP, i16* %BP, i32* %CP, i64* %DP) {
	%a = call i8 @llvm.ctlz.i8( i8 %A )		; <i8> [#uses=1]
	%b = call i16 @llvm.ctlz.i16( i16 %B )		; <i16> [#uses=1]
	%c = call i32 @llvm.ctlz.i32( i32 %C )		; <i32> [#uses=1]
	%d = call i64 @llvm.ctlz.i64( i64 %D )		; <i64> [#uses=1]
	store i8 %a, i8* %AP
	store i16 %b, i16* %BP
	store i32 %c, i32* %CP
	store i64 %d, i64* %DP
	ret void
}

declare i64 @llvm.cttz.i64(i64)

declare i32 @llvm.cttz.i32(i32)

declare i16 @llvm.cttz.i16(i16)

declare i8 @llvm.cttz.i8(i8)

define void @cttztest(i8 %A, i16 %B, i32 %C, i64 %D, i8* %AP, i16* %BP, i32* %CP, i64* %DP) {
	%a = call i8 @llvm.cttz.i8( i8 %A )		; <i8> [#uses=1]
	%b = call i16 @llvm.cttz.i16( i16 %B )		; <i16> [#uses=1]
	%c = call i32 @llvm.cttz.i32( i32 %C )		; <i32> [#uses=1]
	%d = call i64 @llvm.cttz.i64( i64 %D )		; <i64> [#uses=1]
	store i8 %a, i8* %AP
	store i16 %b, i16* %BP
	store i32 %c, i32* %CP
	store i64 %d, i64* %DP
	ret void
}
