xref: /llvm-project/llvm/test/CodeGen/PowerPC/no-ext-with-count-zeros.ll (revision 32b5fed6397c0216e713bcff081f772515b783ea)
1*32b5fed6SNemanja Ivanovic; Function Attrs: nounwind readnone
2*32b5fed6SNemanja Ivanovic; RUN: llc -verify-machineinstrs -mtriple=powerpc64le-unknown-unknown \
3*32b5fed6SNemanja Ivanovic; RUN:   -mcpu=pwr9 < %s | FileCheck %s
4*32b5fed6SNemanja Ivanovic
5*32b5fed6SNemanja Ivanovicdefine signext i32 @ctw(i32 signext %a) {
6*32b5fed6SNemanja Ivanovicentry:
7*32b5fed6SNemanja Ivanovic  %0 = tail call i32 @llvm.cttz.i32(i32 %a, i1 false)
8*32b5fed6SNemanja Ivanovic  ret i32 %0
9*32b5fed6SNemanja Ivanovic; CHECK-LABEL: ctw
10*32b5fed6SNemanja Ivanovic; CHECK: cnttzw 3, 3
11*32b5fed6SNemanja Ivanovic; CHECK-NEXT: blr
12*32b5fed6SNemanja Ivanovic}
13*32b5fed6SNemanja Ivanovic
14*32b5fed6SNemanja Ivanovic; Function Attrs: nounwind readnone
15*32b5fed6SNemanja Ivanovicdeclare i32 @llvm.cttz.i32(i32, i1)
16*32b5fed6SNemanja Ivanovic
17*32b5fed6SNemanja Ivanovic; Function Attrs: nounwind readnone
18*32b5fed6SNemanja Ivanovicdefine signext i32 @clw(i32 signext %a) {
19*32b5fed6SNemanja Ivanovicentry:
20*32b5fed6SNemanja Ivanovic  %0 = tail call i32 @llvm.ctlz.i32(i32 %a, i1 false)
21*32b5fed6SNemanja Ivanovic  ret i32 %0
22*32b5fed6SNemanja Ivanovic; CHECK-LABEL: clw
23*32b5fed6SNemanja Ivanovic; CHECK: cntlzw 3, 3
24*32b5fed6SNemanja Ivanovic; CHECK-NEXT: blr
25*32b5fed6SNemanja Ivanovic}
26*32b5fed6SNemanja Ivanovic
27*32b5fed6SNemanja Ivanovic; Function Attrs: nounwind readnone
28*32b5fed6SNemanja Ivanovicdeclare i32 @llvm.ctlz.i32(i32, i1)
29*32b5fed6SNemanja Ivanovic
30*32b5fed6SNemanja Ivanovic; Function Attrs: nounwind readnone
31*32b5fed6SNemanja Ivanovicdefine i64 @ctd(i64 %a) {
32*32b5fed6SNemanja Ivanovicentry:
33*32b5fed6SNemanja Ivanovic  %0 = tail call i64 @llvm.cttz.i64(i64 %a, i1 false)
34*32b5fed6SNemanja Ivanovic  ret i64 %0
35*32b5fed6SNemanja Ivanovic; CHECK-LABEL: ctd
36*32b5fed6SNemanja Ivanovic; CHECK: cnttzd 3, 3
37*32b5fed6SNemanja Ivanovic; CHECK-NEXT: blr
38*32b5fed6SNemanja Ivanovic}
39*32b5fed6SNemanja Ivanovic
40*32b5fed6SNemanja Ivanovic; Function Attrs: nounwind readnone
41*32b5fed6SNemanja Ivanovicdeclare i64 @llvm.cttz.i64(i64, i1)
42*32b5fed6SNemanja Ivanovic
43*32b5fed6SNemanja Ivanovic; Function Attrs: nounwind readnone
44*32b5fed6SNemanja Ivanovicdefine i64 @cld(i64 %a) {
45*32b5fed6SNemanja Ivanovicentry:
46*32b5fed6SNemanja Ivanovic  %0 = tail call i64 @llvm.ctlz.i64(i64 %a, i1 false)
47*32b5fed6SNemanja Ivanovic  ret i64 %0
48*32b5fed6SNemanja Ivanovic; CHECK-LABEL: cld
49*32b5fed6SNemanja Ivanovic; CHECK: cntlzd 3, 3
50*32b5fed6SNemanja Ivanovic; CHECK-NEXT: blr
51*32b5fed6SNemanja Ivanovic}
52*32b5fed6SNemanja Ivanovic
53*32b5fed6SNemanja Ivanovic; Function Attrs: nounwind readnone
54*32b5fed6SNemanja Ivanovicdeclare i64 @llvm.ctlz.i64(i64, i1)
55