diff options
Diffstat (limited to 'include/llvm/Support/TargetOpcodes.def')
-rw-r--r-- | include/llvm/Support/TargetOpcodes.def | 70 |
1 files changed, 65 insertions, 5 deletions
diff --git a/include/llvm/Support/TargetOpcodes.def b/include/llvm/Support/TargetOpcodes.def index 3e8193a5cdcf..598c1064efd0 100644 --- a/include/llvm/Support/TargetOpcodes.def +++ b/include/llvm/Support/TargetOpcodes.def @@ -1,9 +1,8 @@ //===-- llvm/Support/TargetOpcodes.def - Target Indep Opcodes ---*- C++ -*-===// // -// The LLVM Compiler Infrastructure -// -// This file is distributed under the University of Illinois Open Source -// License. See LICENSE.TXT for details. +// 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 // //===----------------------------------------------------------------------===// // @@ -29,6 +28,7 @@ /// HANDLE_TARGET_OPCODE(PHI) HANDLE_TARGET_OPCODE(INLINEASM) +HANDLE_TARGET_OPCODE(INLINEASM_BR) HANDLE_TARGET_OPCODE(CFI_INSTRUCTION) HANDLE_TARGET_OPCODE(EH_LABEL) HANDLE_TARGET_OPCODE(GC_LABEL) @@ -316,6 +316,9 @@ HANDLE_TARGET_OPCODE(G_ATOMICRMW_MIN) HANDLE_TARGET_OPCODE(G_ATOMICRMW_UMAX) HANDLE_TARGET_OPCODE(G_ATOMICRMW_UMIN) +// Generic atomic fence +HANDLE_TARGET_OPCODE(G_FENCE) + /// Generic conditional branch instruction. HANDLE_TARGET_OPCODE(G_BRCOND) @@ -481,6 +484,27 @@ HANDLE_TARGET_OPCODE(G_UITOFP) /// Generic FP absolute value. HANDLE_TARGET_OPCODE(G_FABS) +/// FCOPYSIGN(X, Y) - Return the value of X with the sign of Y. NOTE: This does +/// not require that X and Y have the same type, just that they are both +/// floating point. X and the result must have the same type. FCOPYSIGN(f32, +/// f64) is allowed. +HANDLE_TARGET_OPCODE(G_FCOPYSIGN) + +/// Generic FP canonicalize value. +HANDLE_TARGET_OPCODE(G_FCANONICALIZE) + +/// FP min/max matching libm's fmin/fmax +HANDLE_TARGET_OPCODE(G_FMINNUM) +HANDLE_TARGET_OPCODE(G_FMAXNUM) + +/// FP min/max matching IEEE-754 2008's minnum/maxnum semantics. +HANDLE_TARGET_OPCODE(G_FMINNUM_IEEE) +HANDLE_TARGET_OPCODE(G_FMAXNUM_IEEE) + +/// FP min/max matching IEEE-754 2018 draft semantics. +HANDLE_TARGET_OPCODE(G_FMINIMUM) +HANDLE_TARGET_OPCODE(G_FMAXIMUM) + /// Generic pointer offset HANDLE_TARGET_OPCODE(G_GEP) @@ -488,9 +512,24 @@ HANDLE_TARGET_OPCODE(G_GEP) /// *down* to the given alignment. HANDLE_TARGET_OPCODE(G_PTR_MASK) +/// Generic signed integer minimum. +HANDLE_TARGET_OPCODE(G_SMIN) + +/// Generic signed integer maximum. +HANDLE_TARGET_OPCODE(G_SMAX) + +/// Generic unsigned integer maximum. +HANDLE_TARGET_OPCODE(G_UMIN) + +/// Generic unsigned integer maximum. +HANDLE_TARGET_OPCODE(G_UMAX) + /// Generic BRANCH instruction. This is an unconditional branch. HANDLE_TARGET_OPCODE(G_BR) +/// Generic branch to jump table entry. +HANDLE_TARGET_OPCODE(G_BRJT) + /// Generic insertelement. HANDLE_TARGET_OPCODE(G_INSERT_VECTOR_ELT) @@ -521,18 +560,39 @@ HANDLE_TARGET_OPCODE(G_BSWAP) /// Floating point ceil. HANDLE_TARGET_OPCODE(G_FCEIL) +/// Floating point cosine. +HANDLE_TARGET_OPCODE(G_FCOS) + +/// Floating point sine. +HANDLE_TARGET_OPCODE(G_FSIN) + +/// Floating point square root. +HANDLE_TARGET_OPCODE(G_FSQRT) + +/// Floating point floor. +HANDLE_TARGET_OPCODE(G_FFLOOR) + +/// Floating point round to next integer. +HANDLE_TARGET_OPCODE(G_FRINT) + +/// Floating point round to nearest integer. +HANDLE_TARGET_OPCODE(G_FNEARBYINT) + /// Generic AddressSpaceCast. HANDLE_TARGET_OPCODE(G_ADDRSPACE_CAST) /// Generic block address HANDLE_TARGET_OPCODE(G_BLOCK_ADDR) +/// Generic jump table address +HANDLE_TARGET_OPCODE(G_JUMP_TABLE) + // TODO: Add more generic opcodes as we move along. /// Marker for the end of the generic opcode. /// This is used to check if an opcode is in the range of the /// generic opcodes. -HANDLE_TARGET_OPCODE_MARKER(PRE_ISEL_GENERIC_OPCODE_END, G_BLOCK_ADDR) +HANDLE_TARGET_OPCODE_MARKER(PRE_ISEL_GENERIC_OPCODE_END, G_JUMP_TABLE) /// BUILTIN_OP_END - This must be the last enum value in this list. /// The target-specific post-isel opcode values start here. |