Fix ctlz and cttz. llvm definition requires them to return number of bits in of the...
[oota-llvm.git] / test / CodeGen / X86 / vec_ctbits.ll
1 ; RUN: llvm-as < %s | llc -march=x86-64
2
3 declare <2 x i64> @llvm.cttz.v2i64(<2 x i64>)
4 declare <2 x i64> @llvm.ctlz.v2i64(<2 x i64>)
5 declare <2 x i64> @llvm.ctpop.v2i64(<2 x i64>)
6
7 define <2 x i64> @footz(<2 x i64> %a) {
8   %c = call <2 x i64> @llvm.cttz.v2i64(<2 x i64> %a)
9   ret <2 x i64> %c
10 }
11 define <2 x i64> @foolz(<2 x i64> %a) {
12   %c = call <2 x i64> @llvm.ctlz.v2i64(<2 x i64> %a)
13   ret <2 x i64> %c
14 }
15 define <2 x i64> @foopop(<2 x i64> %a) {
16   %c = call <2 x i64> @llvm.ctpop.v2i64(<2 x i64> %a)
17   ret <2 x i64> %c
18 }