Instead of having a test for i32 XLen and i64 XLen, use sed to replace iXLen with i32/i64 before running llc. This change updates tests for intrinsics that operate exclusively on mask values. It removes over 4000 lines worth of test content. More merging will come in future changes. Differential Revision: https://reviews.llvm.org/D117968
117 lines
3.3 KiB
LLVM
117 lines
3.3 KiB
LLVM
; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
|
|
; RUN: sed 's/iXLen/i32/g' %s | llc -mtriple=riscv32 -mattr=+v \
|
|
; RUN: -verify-machineinstrs | FileCheck %s
|
|
; RUN: sed 's/iXLen/i64/g' %s | llc -mtriple=riscv64 -mattr=+v \
|
|
; RUN: -verify-machineinstrs | FileCheck %s
|
|
declare <vscale x 1 x i1> @llvm.riscv.vmclr.nxv1i1(
|
|
iXLen);
|
|
|
|
define <vscale x 1 x i1> @intrinsic_vmclr_m_pseudo_nxv1i1(iXLen %0) nounwind {
|
|
; CHECK-LABEL: intrinsic_vmclr_m_pseudo_nxv1i1:
|
|
; CHECK: # %bb.0: # %entry
|
|
; CHECK-NEXT: vsetvli zero, a0, e8, mf8, ta, mu
|
|
; CHECK-NEXT: vmclr.m v0
|
|
; CHECK-NEXT: ret
|
|
entry:
|
|
%a = call <vscale x 1 x i1> @llvm.riscv.vmclr.nxv1i1(
|
|
iXLen %0)
|
|
|
|
ret <vscale x 1 x i1> %a
|
|
}
|
|
|
|
declare <vscale x 2 x i1> @llvm.riscv.vmclr.nxv2i1(
|
|
iXLen);
|
|
|
|
define <vscale x 2 x i1> @intrinsic_vmclr_m_pseudo_nxv2i1(iXLen %0) nounwind {
|
|
; CHECK-LABEL: intrinsic_vmclr_m_pseudo_nxv2i1:
|
|
; CHECK: # %bb.0: # %entry
|
|
; CHECK-NEXT: vsetvli zero, a0, e8, mf4, ta, mu
|
|
; CHECK-NEXT: vmclr.m v0
|
|
; CHECK-NEXT: ret
|
|
entry:
|
|
%a = call <vscale x 2 x i1> @llvm.riscv.vmclr.nxv2i1(
|
|
iXLen %0)
|
|
|
|
ret <vscale x 2 x i1> %a
|
|
}
|
|
|
|
declare <vscale x 4 x i1> @llvm.riscv.vmclr.nxv4i1(
|
|
iXLen);
|
|
|
|
define <vscale x 4 x i1> @intrinsic_vmclr_m_pseudo_nxv4i1(iXLen %0) nounwind {
|
|
; CHECK-LABEL: intrinsic_vmclr_m_pseudo_nxv4i1:
|
|
; CHECK: # %bb.0: # %entry
|
|
; CHECK-NEXT: vsetvli zero, a0, e8, mf2, ta, mu
|
|
; CHECK-NEXT: vmclr.m v0
|
|
; CHECK-NEXT: ret
|
|
entry:
|
|
%a = call <vscale x 4 x i1> @llvm.riscv.vmclr.nxv4i1(
|
|
iXLen %0)
|
|
|
|
ret <vscale x 4 x i1> %a
|
|
}
|
|
|
|
declare <vscale x 8 x i1> @llvm.riscv.vmclr.nxv8i1(
|
|
iXLen);
|
|
|
|
define <vscale x 8 x i1> @intrinsic_vmclr_m_pseudo_nxv8i1(iXLen %0) nounwind {
|
|
; CHECK-LABEL: intrinsic_vmclr_m_pseudo_nxv8i1:
|
|
; CHECK: # %bb.0: # %entry
|
|
; CHECK-NEXT: vsetvli zero, a0, e8, m1, ta, mu
|
|
; CHECK-NEXT: vmclr.m v0
|
|
; CHECK-NEXT: ret
|
|
entry:
|
|
%a = call <vscale x 8 x i1> @llvm.riscv.vmclr.nxv8i1(
|
|
iXLen %0)
|
|
|
|
ret <vscale x 8 x i1> %a
|
|
}
|
|
|
|
declare <vscale x 16 x i1> @llvm.riscv.vmclr.nxv16i1(
|
|
iXLen);
|
|
|
|
define <vscale x 16 x i1> @intrinsic_vmclr_m_pseudo_nxv16i1(iXLen %0) nounwind {
|
|
; CHECK-LABEL: intrinsic_vmclr_m_pseudo_nxv16i1:
|
|
; CHECK: # %bb.0: # %entry
|
|
; CHECK-NEXT: vsetvli zero, a0, e8, m2, ta, mu
|
|
; CHECK-NEXT: vmclr.m v0
|
|
; CHECK-NEXT: ret
|
|
entry:
|
|
%a = call <vscale x 16 x i1> @llvm.riscv.vmclr.nxv16i1(
|
|
iXLen %0)
|
|
|
|
ret <vscale x 16 x i1> %a
|
|
}
|
|
|
|
declare <vscale x 32 x i1> @llvm.riscv.vmclr.nxv32i1(
|
|
iXLen);
|
|
|
|
define <vscale x 32 x i1> @intrinsic_vmclr_m_pseudo_nxv32i1(iXLen %0) nounwind {
|
|
; CHECK-LABEL: intrinsic_vmclr_m_pseudo_nxv32i1:
|
|
; CHECK: # %bb.0: # %entry
|
|
; CHECK-NEXT: vsetvli zero, a0, e8, m4, ta, mu
|
|
; CHECK-NEXT: vmclr.m v0
|
|
; CHECK-NEXT: ret
|
|
entry:
|
|
%a = call <vscale x 32 x i1> @llvm.riscv.vmclr.nxv32i1(
|
|
iXLen %0)
|
|
|
|
ret <vscale x 32 x i1> %a
|
|
}
|
|
|
|
declare <vscale x 64 x i1> @llvm.riscv.vmclr.nxv64i1(
|
|
iXLen);
|
|
|
|
define <vscale x 64 x i1> @intrinsic_vmclr_m_pseudo_nxv64i1(iXLen %0) nounwind {
|
|
; CHECK-LABEL: intrinsic_vmclr_m_pseudo_nxv64i1:
|
|
; CHECK: # %bb.0: # %entry
|
|
; CHECK-NEXT: vsetvli zero, a0, e8, m8, ta, mu
|
|
; CHECK-NEXT: vmclr.m v0
|
|
; CHECK-NEXT: ret
|
|
entry:
|
|
%a = call <vscale x 64 x i1> @llvm.riscv.vmclr.nxv64i1(
|
|
iXLen %0)
|
|
|
|
ret <vscale x 64 x i1> %a
|
|
}
|