mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-22 18:54:02 +01:00
680d78da27
Support insert/extract_subreg intrinsic instructions for v512i1 registers and add regression tests. Reviewed By: simoll Differential Revision: https://reviews.llvm.org/D94298
36 lines
1.4 KiB
TableGen
36 lines
1.4 KiB
TableGen
// Define intrinsics written by hand
|
|
|
|
// VEL Intrinsic instructions.
|
|
let TargetPrefix = "ve" in {
|
|
def int_ve_vl_svob : GCCBuiltin<"__builtin_ve_vl_svob">,
|
|
Intrinsic<[], [], [IntrHasSideEffects]>;
|
|
|
|
def int_ve_vl_pack_f32p : GCCBuiltin<"__builtin_ve_vl_pack_f32p">,
|
|
Intrinsic<[llvm_i64_ty], [llvm_ptr_ty, llvm_ptr_ty],
|
|
[IntrReadMem]>;
|
|
def int_ve_vl_pack_f32a : GCCBuiltin<"__builtin_ve_vl_pack_f32a">,
|
|
Intrinsic<[llvm_i64_ty], [llvm_ptr_ty],
|
|
[IntrReadMem]>;
|
|
|
|
def int_ve_vl_extract_vm512u :
|
|
GCCBuiltin<"__builtin_ve_vl_extract_vm512u">,
|
|
Intrinsic<[LLVMType<v256i1>], [LLVMType<v512i1>], [IntrNoMem]>;
|
|
|
|
def int_ve_vl_extract_vm512l :
|
|
GCCBuiltin<"__builtin_ve_vl_extract_vm512l">,
|
|
Intrinsic<[LLVMType<v256i1>], [LLVMType<v512i1>], [IntrNoMem]>;
|
|
|
|
def int_ve_vl_insert_vm512u :
|
|
GCCBuiltin<"__builtin_ve_vl_insert_vm512u">,
|
|
Intrinsic<[LLVMType<v512i1>], [LLVMType<v512i1>, LLVMType<v256i1>],
|
|
[IntrNoMem]>;
|
|
|
|
def int_ve_vl_insert_vm512l :
|
|
GCCBuiltin<"__builtin_ve_vl_insert_vm512l">,
|
|
Intrinsic<[LLVMType<v512i1>], [LLVMType<v512i1>, LLVMType<v256i1>],
|
|
[IntrNoMem]>;
|
|
}
|
|
|
|
// Define intrinsics automatically generated
|
|
include "llvm/IR/IntrinsicsVEVL.gen.td"
|