IntrinsicsVE.td 1.4 KB

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