xref: /llvm-project/llvm/test/CodeGen/LoongArch/lasx/intrinsic-clz.ll (revision 83311b2b5d1b9869f9a7b265994394ea898448a2)
1*83311b2bSchenli; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
2*83311b2bSchenli; RUN: llc --mtriple=loongarch64 --mattr=+lasx < %s | FileCheck %s
3*83311b2bSchenli
4*83311b2bSchenlideclare <32 x i8> @llvm.loongarch.lasx.xvclz.b(<32 x i8>)
5*83311b2bSchenli
6*83311b2bSchenlidefine <32 x i8> @lasx_xvclz_b(<32 x i8> %va) nounwind {
7*83311b2bSchenli; CHECK-LABEL: lasx_xvclz_b:
8*83311b2bSchenli; CHECK:       # %bb.0: # %entry
9*83311b2bSchenli; CHECK-NEXT:    xvclz.b $xr0, $xr0
10*83311b2bSchenli; CHECK-NEXT:    ret
11*83311b2bSchenlientry:
12*83311b2bSchenli  %res = call <32 x i8> @llvm.loongarch.lasx.xvclz.b(<32 x i8> %va)
13*83311b2bSchenli  ret <32 x i8> %res
14*83311b2bSchenli}
15*83311b2bSchenli
16*83311b2bSchenlideclare <16 x i16> @llvm.loongarch.lasx.xvclz.h(<16 x i16>)
17*83311b2bSchenli
18*83311b2bSchenlidefine <16 x i16> @lasx_xvclz_h(<16 x i16> %va) nounwind {
19*83311b2bSchenli; CHECK-LABEL: lasx_xvclz_h:
20*83311b2bSchenli; CHECK:       # %bb.0: # %entry
21*83311b2bSchenli; CHECK-NEXT:    xvclz.h $xr0, $xr0
22*83311b2bSchenli; CHECK-NEXT:    ret
23*83311b2bSchenlientry:
24*83311b2bSchenli  %res = call <16 x i16> @llvm.loongarch.lasx.xvclz.h(<16 x i16> %va)
25*83311b2bSchenli  ret <16 x i16> %res
26*83311b2bSchenli}
27*83311b2bSchenli
28*83311b2bSchenlideclare <8 x i32> @llvm.loongarch.lasx.xvclz.w(<8 x i32>)
29*83311b2bSchenli
30*83311b2bSchenlidefine <8 x i32> @lasx_xvclz_w(<8 x i32> %va) nounwind {
31*83311b2bSchenli; CHECK-LABEL: lasx_xvclz_w:
32*83311b2bSchenli; CHECK:       # %bb.0: # %entry
33*83311b2bSchenli; CHECK-NEXT:    xvclz.w $xr0, $xr0
34*83311b2bSchenli; CHECK-NEXT:    ret
35*83311b2bSchenlientry:
36*83311b2bSchenli  %res = call <8 x i32> @llvm.loongarch.lasx.xvclz.w(<8 x i32> %va)
37*83311b2bSchenli  ret <8 x i32> %res
38*83311b2bSchenli}
39*83311b2bSchenli
40*83311b2bSchenlideclare <4 x i64> @llvm.loongarch.lasx.xvclz.d(<4 x i64>)
41*83311b2bSchenli
42*83311b2bSchenlidefine <4 x i64> @lasx_xvclz_d(<4 x i64> %va) nounwind {
43*83311b2bSchenli; CHECK-LABEL: lasx_xvclz_d:
44*83311b2bSchenli; CHECK:       # %bb.0: # %entry
45*83311b2bSchenli; CHECK-NEXT:    xvclz.d $xr0, $xr0
46*83311b2bSchenli; CHECK-NEXT:    ret
47*83311b2bSchenlientry:
48*83311b2bSchenli  %res = call <4 x i64> @llvm.loongarch.lasx.xvclz.d(<4 x i64> %va)
49*83311b2bSchenli  ret <4 x i64> %res
50*83311b2bSchenli}
51