1// Define intrinsics written by hand
2
3// VEL Intrinsic instructions.
4let TargetPrefix = "ve" in {
5  def int_ve_vl_pack_f32p : ClangBuiltin<"__builtin_ve_vl_pack_f32p">,
6                            Intrinsic<[llvm_i64_ty], [llvm_ptr_ty, llvm_ptr_ty],
7                                      [IntrReadMem]>;
8  def int_ve_vl_pack_f32a : ClangBuiltin<"__builtin_ve_vl_pack_f32a">,
9                            Intrinsic<[llvm_i64_ty], [llvm_ptr_ty],
10                                      [IntrReadMem]>;
11
12  def int_ve_vl_extract_vm512u :
13      ClangBuiltin<"__builtin_ve_vl_extract_vm512u">,
14      Intrinsic<[LLVMType<v256i1>], [LLVMType<v512i1>], [IntrNoMem]>;
15
16  def int_ve_vl_extract_vm512l :
17      ClangBuiltin<"__builtin_ve_vl_extract_vm512l">,
18      Intrinsic<[LLVMType<v256i1>], [LLVMType<v512i1>], [IntrNoMem]>;
19
20  def int_ve_vl_insert_vm512u :
21      ClangBuiltin<"__builtin_ve_vl_insert_vm512u">,
22      Intrinsic<[LLVMType<v512i1>], [LLVMType<v512i1>, LLVMType<v256i1>],
23                [IntrNoMem]>;
24
25  def int_ve_vl_insert_vm512l :
26      ClangBuiltin<"__builtin_ve_vl_insert_vm512l">,
27      Intrinsic<[LLVMType<v512i1>], [LLVMType<v512i1>, LLVMType<v256i1>],
28                [IntrNoMem]>;
29}
30
31// Define intrinsics automatically generated
32include "llvm/IR/IntrinsicsVEVL.gen.td"
33