forked from OSchip/llvm-project
[RISCV] Define vmin/vminu/vmax/vmaxu intrinsics.
Authored-by: Roger Ferrer Ibanez <rofirrim@gmail.com> Co-Authored-by: Hsiangkai Wang <kai.wang@sifive.com> Differential Revision: https://reviews.llvm.org/D93218
This commit is contained in:
parent
fd27164563
commit
903f295009
|
@ -188,4 +188,9 @@ let TargetPrefix = "riscv" in {
|
|||
defm vnsrl : RISCVBinaryABX;
|
||||
defm vnsra : RISCVBinaryABX;
|
||||
|
||||
defm vminu : RISCVBinaryAAX;
|
||||
defm vmin : RISCVBinaryAAX;
|
||||
defm vmaxu : RISCVBinaryAAX;
|
||||
defm vmax : RISCVBinaryAAX;
|
||||
|
||||
} // TargetPrefix = "riscv"
|
||||
|
|
|
@ -1010,6 +1010,14 @@ defm PseudoVSRA : VPseudoBinaryV_VV_VX_VI<uimm5>;
|
|||
defm PseudoVNSRL : VPseudoBinaryV_WV_WX_WI;
|
||||
defm PseudoVNSRA : VPseudoBinaryV_WV_WX_WI;
|
||||
|
||||
//===----------------------------------------------------------------------===//
|
||||
// 12.9. Vector Integer Min/Max Instructions
|
||||
//===----------------------------------------------------------------------===//
|
||||
defm PseudoVMINU : VPseudoBinaryV_VV_VX;
|
||||
defm PseudoVMIN : VPseudoBinaryV_VV_VX;
|
||||
defm PseudoVMAXU : VPseudoBinaryV_VV_VX;
|
||||
defm PseudoVMAX : VPseudoBinaryV_VV_VX;
|
||||
|
||||
//===----------------------------------------------------------------------===//
|
||||
// Patterns.
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
@ -1067,4 +1075,12 @@ defm "" : VPatBinaryV_VV_VX_VI<"int_riscv_vsra", "PseudoVSRA", AllIntegerVectors
|
|||
defm "" : VPatBinaryV_WV_WX_WI<"int_riscv_vnsrl", "PseudoVNSRL">;
|
||||
defm "" : VPatBinaryV_WV_WX_WI<"int_riscv_vnsra", "PseudoVNSRA">;
|
||||
|
||||
//===----------------------------------------------------------------------===//
|
||||
// 12.9. Vector Integer Min/Max Instructions
|
||||
//===----------------------------------------------------------------------===//
|
||||
defm "" : VPatBinaryV_VV_VX<"int_riscv_vminu", "PseudoVMINU", AllIntegerVectors>;
|
||||
defm "" : VPatBinaryV_VV_VX<"int_riscv_vmin", "PseudoVMIN", AllIntegerVectors>;
|
||||
defm "" : VPatBinaryV_VV_VX<"int_riscv_vmaxu", "PseudoVMAXU", AllIntegerVectors>;
|
||||
defm "" : VPatBinaryV_VV_VX<"int_riscv_vmax", "PseudoVMAX", AllIntegerVectors>;
|
||||
|
||||
} // Predicates = [HasStdExtV]
|
||||
|
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue