aboutsummaryrefslogtreecommitdiffstats
path: root/contrib/libs/llvm16/include/llvm/IR/IntrinsicsVE.td
blob: 15b828b320ea2c4a31a85d26c02b13eba1211693 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
// Define intrinsics written by hand

// VEL Intrinsic instructions.
let TargetPrefix = "ve" in {
  def int_ve_vl_pack_f32p : ClangBuiltin<"__builtin_ve_vl_pack_f32p">,
                            Intrinsic<[llvm_i64_ty], [llvm_ptr_ty, llvm_ptr_ty],
                                      [IntrReadMem]>;
  def int_ve_vl_pack_f32a : ClangBuiltin<"__builtin_ve_vl_pack_f32a">,
                            Intrinsic<[llvm_i64_ty], [llvm_ptr_ty],
                                      [IntrReadMem]>;

  def int_ve_vl_extract_vm512u :
      ClangBuiltin<"__builtin_ve_vl_extract_vm512u">,
      Intrinsic<[LLVMType<v256i1>], [LLVMType<v512i1>], [IntrNoMem]>;

  def int_ve_vl_extract_vm512l :
      ClangBuiltin<"__builtin_ve_vl_extract_vm512l">,
      Intrinsic<[LLVMType<v256i1>], [LLVMType<v512i1>], [IntrNoMem]>;

  def int_ve_vl_insert_vm512u :
      ClangBuiltin<"__builtin_ve_vl_insert_vm512u">,
      Intrinsic<[LLVMType<v512i1>], [LLVMType<v512i1>, LLVMType<v256i1>],
                [IntrNoMem]>;

  def int_ve_vl_insert_vm512l :
      ClangBuiltin<"__builtin_ve_vl_insert_vm512l">,
      Intrinsic<[LLVMType<v512i1>], [LLVMType<v512i1>, LLVMType<v256i1>],
                [IntrNoMem]>;
}

// Define intrinsics automatically generated
include "llvm/IR/IntrinsicsVEVL.gen.td"