/*===- TableGen'erated file -------------------------------------*- C++ -*-===*\
|*                                                                            *|
|* Intrinsic Function Source Fragment                                         *|
|*                                                                            *|
|* Automatically generated file, do not edit!                                 *|
|*                                                                            *|
\*===----------------------------------------------------------------------===*/

#ifndef LLVM_IR_INTRINSIC_LOONGARCH_ENUMS_H
#define LLVM_IR_INTRINSIC_LOONGARCH_ENUMS_H

namespace llvm {
namespace Intrinsic {
enum LOONGARCHIntrinsics : unsigned {
// Enum values for intrinsics
    loongarch_asrtgt_d = 4804,                        // llvm.loongarch.asrtgt.d
    loongarch_asrtle_d,                        // llvm.loongarch.asrtle.d
    loongarch_break,                           // llvm.loongarch.break
    loongarch_cacop_d,                         // llvm.loongarch.cacop.d
    loongarch_cacop_w,                         // llvm.loongarch.cacop.w
    loongarch_cpucfg,                          // llvm.loongarch.cpucfg
    loongarch_crc_w_b_w,                       // llvm.loongarch.crc.w.b.w
    loongarch_crc_w_d_w,                       // llvm.loongarch.crc.w.d.w
    loongarch_crc_w_h_w,                       // llvm.loongarch.crc.w.h.w
    loongarch_crc_w_w_w,                       // llvm.loongarch.crc.w.w.w
    loongarch_crcc_w_b_w,                      // llvm.loongarch.crcc.w.b.w
    loongarch_crcc_w_d_w,                      // llvm.loongarch.crcc.w.d.w
    loongarch_crcc_w_h_w,                      // llvm.loongarch.crcc.w.h.w
    loongarch_crcc_w_w_w,                      // llvm.loongarch.crcc.w.w.w
    loongarch_csrrd_d,                         // llvm.loongarch.csrrd.d
    loongarch_csrrd_w,                         // llvm.loongarch.csrrd.w
    loongarch_csrwr_d,                         // llvm.loongarch.csrwr.d
    loongarch_csrwr_w,                         // llvm.loongarch.csrwr.w
    loongarch_csrxchg_d,                       // llvm.loongarch.csrxchg.d
    loongarch_csrxchg_w,                       // llvm.loongarch.csrxchg.w
    loongarch_dbar,                            // llvm.loongarch.dbar
    loongarch_ibar,                            // llvm.loongarch.ibar
    loongarch_iocsrrd_b,                       // llvm.loongarch.iocsrrd.b
    loongarch_iocsrrd_d,                       // llvm.loongarch.iocsrrd.d
    loongarch_iocsrrd_h,                       // llvm.loongarch.iocsrrd.h
    loongarch_iocsrrd_w,                       // llvm.loongarch.iocsrrd.w
    loongarch_iocsrwr_b,                       // llvm.loongarch.iocsrwr.b
    loongarch_iocsrwr_d,                       // llvm.loongarch.iocsrwr.d
    loongarch_iocsrwr_h,                       // llvm.loongarch.iocsrwr.h
    loongarch_iocsrwr_w,                       // llvm.loongarch.iocsrwr.w
    loongarch_lddir_d,                         // llvm.loongarch.lddir.d
    loongarch_ldpte_d,                         // llvm.loongarch.ldpte.d
    loongarch_masked_atomicrmw_add_i32,        // llvm.loongarch.masked.atomicrmw.add.i32
    loongarch_masked_atomicrmw_add_i64,        // llvm.loongarch.masked.atomicrmw.add.i64
    loongarch_masked_atomicrmw_max_i64,        // llvm.loongarch.masked.atomicrmw.max.i64
    loongarch_masked_atomicrmw_min_i64,        // llvm.loongarch.masked.atomicrmw.min.i64
    loongarch_masked_atomicrmw_nand_i32,       // llvm.loongarch.masked.atomicrmw.nand.i32
    loongarch_masked_atomicrmw_nand_i64,       // llvm.loongarch.masked.atomicrmw.nand.i64
    loongarch_masked_atomicrmw_sub_i32,        // llvm.loongarch.masked.atomicrmw.sub.i32
    loongarch_masked_atomicrmw_sub_i64,        // llvm.loongarch.masked.atomicrmw.sub.i64
    loongarch_masked_atomicrmw_umax_i32,       // llvm.loongarch.masked.atomicrmw.umax.i32
    loongarch_masked_atomicrmw_umax_i64,       // llvm.loongarch.masked.atomicrmw.umax.i64
    loongarch_masked_atomicrmw_umin_i32,       // llvm.loongarch.masked.atomicrmw.umin.i32
    loongarch_masked_atomicrmw_umin_i64,       // llvm.loongarch.masked.atomicrmw.umin.i64
    loongarch_masked_atomicrmw_xchg_i32,       // llvm.loongarch.masked.atomicrmw.xchg.i32
    loongarch_masked_atomicrmw_xchg_i64,       // llvm.loongarch.masked.atomicrmw.xchg.i64
    loongarch_masked_cmpxchg_i64,              // llvm.loongarch.masked.cmpxchg.i64
    loongarch_movfcsr2gr,                      // llvm.loongarch.movfcsr2gr
    loongarch_movgr2fcsr,                      // llvm.loongarch.movgr2fcsr
    loongarch_syscall,                         // llvm.loongarch.syscall
}; // enum
} // namespace Intrinsic
} // namespace llvm

#endif
