//===-- X86IntrinsicsInfo.h - X86 Intrinsics ------------*- C++ -*-===// // // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. // See https://llvm.org/LICENSE.txt for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// // // This file contains the details for lowering X86 intrinsics // //===----------------------------------------------------------------------===// #ifndef LLVM_LIB_TARGET_X86_X86INTRINSICSINFO_H #define LLVM_LIB_TARGET_X86_X86INTRINSICSINFO_H #include "X86ISelLowering.h" #include "X86InstrInfo.h" #include "llvm/IR/IntrinsicsX86.h" namespace llvm { enum IntrinsicType : uint16_t { … }; struct IntrinsicData { … }; #define X86_INTRINSIC_DATA(id, type, op0, op1) … /* * IntrinsicsWithChain - the table should be sorted by Intrinsic ID - in * the alphabetical order. */ static const IntrinsicData IntrinsicsWithChain[] = …; /* * Find Intrinsic data by intrinsic ID */ static const IntrinsicData *getIntrinsicWithChain(unsigned IntNo) { … } /* * IntrinsicsWithoutChain - the table should be sorted by Intrinsic ID - in * the alphabetical order. */ static const IntrinsicData IntrinsicsWithoutChain[] = …; /* * Retrieve data for Intrinsic without chain. * Return nullptr if intrinsic is not defined in the table. */ static const IntrinsicData *getIntrinsicWithoutChain(unsigned IntNo) { … } static void verifyIntrinsicTables() { … } } // namespace llvm #endif