summaryrefslogtreecommitdiff
path: root/llvm/test/CodeGen/LoongArch/lasx/intrinsic-bitset.ll
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/test/CodeGen/LoongArch/lasx/intrinsic-bitset.ll')
-rw-r--r--llvm/test/CodeGen/LoongArch/lasx/intrinsic-bitset.ll20
1 files changed, 15 insertions, 5 deletions
diff --git a/llvm/test/CodeGen/LoongArch/lasx/intrinsic-bitset.ll b/llvm/test/CodeGen/LoongArch/lasx/intrinsic-bitset.ll
index 83d1f0ef60c6..0baad661ad59 100644
--- a/llvm/test/CodeGen/LoongArch/lasx/intrinsic-bitset.ll
+++ b/llvm/test/CodeGen/LoongArch/lasx/intrinsic-bitset.ll
@@ -1,5 +1,6 @@
; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
-; RUN: llc --mtriple=loongarch64 --mattr=+lasx < %s | FileCheck %s
+; RUN: llc --mtriple=loongarch32 --mattr=+32s,+lasx < %s | FileCheck %s --check-prefixes=CHECK,LA32
+; RUN: llc --mtriple=loongarch64 --mattr=+lasx < %s | FileCheck %s --check-prefixes=CHECK,LA64
declare <32 x i8> @llvm.loongarch.lasx.xvbitset.b(<32 x i8>, <32 x i8>)
@@ -40,10 +41,19 @@ entry:
declare <4 x i64> @llvm.loongarch.lasx.xvbitset.d(<4 x i64>, <4 x i64>)
define <4 x i64> @lasx_xvbitset_d(<4 x i64> %va, <4 x i64> %vb) nounwind {
-; CHECK-LABEL: lasx_xvbitset_d:
-; CHECK: # %bb.0: # %entry
-; CHECK-NEXT: xvbitset.d $xr0, $xr0, $xr1
-; CHECK-NEXT: ret
+; LA32-LABEL: lasx_xvbitset_d:
+; LA32: # %bb.0: # %entry
+; LA32-NEXT: xvrepli.d $xr2, 63
+; LA32-NEXT: xvand.v $xr1, $xr1, $xr2
+; LA32-NEXT: xvrepli.d $xr2, 1
+; LA32-NEXT: xvsll.d $xr1, $xr2, $xr1
+; LA32-NEXT: xvor.v $xr0, $xr0, $xr1
+; LA32-NEXT: ret
+;
+; LA64-LABEL: lasx_xvbitset_d:
+; LA64: # %bb.0: # %entry
+; LA64-NEXT: xvbitset.d $xr0, $xr0, $xr1
+; LA64-NEXT: ret
entry:
%res = call <4 x i64> @llvm.loongarch.lasx.xvbitset.d(<4 x i64> %va, <4 x i64> %vb)
ret <4 x i64> %res