diff options
Diffstat (limited to 'llvm/test/CodeGen/LoongArch/lasx/intrinsic-bitset.ll')
| -rw-r--r-- | llvm/test/CodeGen/LoongArch/lasx/intrinsic-bitset.ll | 20 |
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 |
