| // Define intrinsics written by hand |
| |
| // VEL Intrinsic instructions. |
| let TargetPrefix = "ve" in { |
| 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" |