More working CellSPU test cases:
[oota-llvm.git] / test / CodeGen / CellSPU / ctpop.ll
1 ; RUN: llvm-as -o - %s | llc -march=cellspu > %t1.s
2 ; RUN: grep cntb    %t1.s | count 3 &&
3 ; RUN: grep andi    %t1.s | count 3 &&
4 ; RUN: grep rotmi   %t1.s | count 2 &&
5 ; RUN: grep rothmi  %t1.s | count 1
6
7 declare i32 @llvm.ctpop.i8(i8)
8 declare i32 @llvm.ctpop.i16(i16)
9 declare i32 @llvm.ctpop.i32(i32)
10
11 define i32 @test_i8(i8 %X) {
12         call i32 @llvm.ctpop.i8(i8 %X)
13         %Y = bitcast i32 %1 to i32
14         ret i32 %Y
15 }
16
17 define i32 @test_i16(i16 %X) {
18         call i32 @llvm.ctpop.i16(i16 %X)
19         %Y = bitcast i32 %1 to i32
20         ret i32 %Y
21 }
22
23 define i32 @test_i32(i32 %X) {
24         call i32 @llvm.ctpop.i32(i32 %X)
25         %Y = bitcast i32 %1 to i32
26         ret i32 %Y
27 }
28