Back to home page

EIC code displayed by LXR

 
 

    


Warning, /include/llvm/IR/IntrinsicsRISCVXCV.td is written in an unsupported language. File is not indexed.

0001 //===- IntrinsicsRISCVXCV.td - CORE-V intrinsics -----------*- tablegen -*-===//
0002 //
0003 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
0004 // See https://llvm.org/LICENSE.txt for license information.
0005 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
0006 //
0007 //===----------------------------------------------------------------------===//
0008 //
0009 // This file defines all of the CORE-V vendor intrinsics for RISC-V.
0010 //
0011 //===----------------------------------------------------------------------===//
0012 
0013 class ScalarCoreVBitManipGprGprIntrinsic
0014     : DefaultAttrsIntrinsic<[llvm_i32_ty], [llvm_i32_ty, llvm_i32_ty],
0015                             [IntrNoMem, IntrSpeculatable]>;
0016 
0017 class ScalarCoreVBitManipGprIntrinsic
0018     : DefaultAttrsIntrinsic<[llvm_i32_ty], [llvm_i32_ty],
0019                             [IntrNoMem, IntrSpeculatable]>;
0020 
0021 class ScalarCoreVAluGprIntrinsic
0022   : DefaultAttrsIntrinsic<[llvm_i32_ty], [llvm_i32_ty],
0023                           [IntrNoMem, IntrSpeculatable]>;
0024 
0025 class ScalarCoreVAluGprGprIntrinsic
0026   : DefaultAttrsIntrinsic<[llvm_i32_ty], [llvm_i32_ty, llvm_i32_ty],
0027                           [IntrNoMem, IntrSpeculatable]>;
0028 
0029 class ScalarCoreVAluGprGprGprIntrinsic
0030   : DefaultAttrsIntrinsic<[llvm_i32_ty], [llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
0031                           [IntrNoMem, IntrSpeculatable]>;
0032 
0033 class ScalarCoreVMacGprGprGprIntrinsic
0034   : Intrinsic<[llvm_i32_ty], [llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
0035               [IntrNoMem, IntrWillReturn, IntrSpeculatable]>;
0036 
0037 class ScalarCoreVMacGprGPRImmIntrinsic
0038     : Intrinsic<[llvm_i32_ty], [llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
0039                 [IntrNoMem, IntrWillReturn, IntrSpeculatable, ImmArg<ArgIndex<2>>]>;
0040 
0041 class ScalarCoreVMacGprGprGprImmIntrinsic
0042   : Intrinsic<[llvm_i32_ty], [llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
0043               [IntrNoMem, IntrWillReturn, IntrSpeculatable, ImmArg<ArgIndex<3>>]>;
0044 
0045 let TargetPrefix = "riscv" in {
0046   def int_riscv_cv_bitmanip_extract : ScalarCoreVBitManipGprGprIntrinsic;
0047   def int_riscv_cv_bitmanip_extractu : ScalarCoreVBitManipGprGprIntrinsic;
0048   def int_riscv_cv_bitmanip_bclr : ScalarCoreVBitManipGprGprIntrinsic;
0049   def int_riscv_cv_bitmanip_bset : ScalarCoreVBitManipGprGprIntrinsic;
0050 
0051   def int_riscv_cv_bitmanip_insert
0052     : DefaultAttrsIntrinsic<[llvm_i32_ty], [llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
0053                             [IntrNoMem, IntrSpeculatable]>;
0054 
0055   def int_riscv_cv_bitmanip_clb : ScalarCoreVBitManipGprIntrinsic;
0056 
0057   def int_riscv_cv_bitmanip_bitrev
0058     : DefaultAttrsIntrinsic<[llvm_i32_ty], [llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
0059                             [IntrNoMem, IntrWillReturn, IntrSpeculatable,
0060                             ImmArg<ArgIndex<1>>, ImmArg<ArgIndex<2>>]>;
0061 
0062   def int_riscv_cv_alu_clip   : ScalarCoreVAluGprGprIntrinsic;
0063   def int_riscv_cv_alu_clipu  : ScalarCoreVAluGprGprIntrinsic;
0064   def int_riscv_cv_alu_addN   : ScalarCoreVAluGprGprGprIntrinsic;
0065   def int_riscv_cv_alu_adduN  : ScalarCoreVAluGprGprGprIntrinsic;
0066   def int_riscv_cv_alu_addRN  : ScalarCoreVAluGprGprGprIntrinsic;
0067   def int_riscv_cv_alu_adduRN : ScalarCoreVAluGprGprGprIntrinsic;
0068   def int_riscv_cv_alu_subN   : ScalarCoreVAluGprGprGprIntrinsic;
0069   def int_riscv_cv_alu_subuN  : ScalarCoreVAluGprGprGprIntrinsic;
0070   def int_riscv_cv_alu_subRN  : ScalarCoreVAluGprGprGprIntrinsic;
0071   def int_riscv_cv_alu_subuRN : ScalarCoreVAluGprGprGprIntrinsic;
0072 
0073   def int_riscv_cv_mac_mac : ScalarCoreVMacGprGprGprIntrinsic;
0074   def int_riscv_cv_mac_msu : ScalarCoreVMacGprGprGprIntrinsic;
0075 
0076   def int_riscv_cv_mac_muluN    : ScalarCoreVMacGprGPRImmIntrinsic;
0077   def int_riscv_cv_mac_mulhhuN  : ScalarCoreVMacGprGPRImmIntrinsic;
0078   def int_riscv_cv_mac_mulsN    : ScalarCoreVMacGprGPRImmIntrinsic;
0079   def int_riscv_cv_mac_mulhhsN  : ScalarCoreVMacGprGPRImmIntrinsic;
0080   def int_riscv_cv_mac_muluRN   : ScalarCoreVMacGprGPRImmIntrinsic;
0081   def int_riscv_cv_mac_mulhhuRN : ScalarCoreVMacGprGPRImmIntrinsic;
0082   def int_riscv_cv_mac_mulsRN   : ScalarCoreVMacGprGPRImmIntrinsic;
0083   def int_riscv_cv_mac_mulhhsRN : ScalarCoreVMacGprGPRImmIntrinsic;
0084 
0085   def int_riscv_cv_mac_macuN    : ScalarCoreVMacGprGprGprImmIntrinsic;
0086   def int_riscv_cv_mac_machhuN  : ScalarCoreVMacGprGprGprImmIntrinsic;
0087   def int_riscv_cv_mac_macsN    : ScalarCoreVMacGprGprGprImmIntrinsic;
0088   def int_riscv_cv_mac_machhsN  : ScalarCoreVMacGprGprGprImmIntrinsic;
0089   def int_riscv_cv_mac_macuRN   : ScalarCoreVMacGprGprGprImmIntrinsic;
0090   def int_riscv_cv_mac_machhuRN : ScalarCoreVMacGprGprGprImmIntrinsic;
0091   def int_riscv_cv_mac_macsRN   : ScalarCoreVMacGprGprGprImmIntrinsic;
0092   def int_riscv_cv_mac_machhsRN : ScalarCoreVMacGprGprGprImmIntrinsic;
0093 } // TargetPrefix = "riscv"