llvm/llvm/lib/Target/X86/X86ReplaceableInstrs.def

//===- X86ReplaceableInstrs.def ----------------------------------*- 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
//
//===----------------------------------------------------------------------===//

// These are the replaceable SSE instructions. Some of these have Int variants
// that we don't include here. We don't want to replace instructions selected
// by intrinsics.

#define ENTRY(A, B, C)
static const uint16_t ReplaceableInstrs[][3] =;

static const uint16_t ReplaceableInstrsAVX2[][3] =;

static const uint16_t ReplaceableInstrsFP[][3] =;

static const uint16_t ReplaceableInstrsAVX2InsertExtract[][3] =;

// NOTE: These should only be used by the custom domain methods.
static const uint16_t ReplaceableBlendInstrs[][3] =;

static const uint16_t ReplaceableBlendAVX2Instrs[][3] =;

#undef ENTRY
#define ENTRY(A, B, C, D)
static const uint16_t ReplaceableInstrsAVX512[][4] =;

static const uint16_t ReplaceableInstrsAVX512DQ[][4] =;

static const uint16_t ReplaceableInstrsAVX512DQMasked[][4] =;

// Special table for changing EVEX logic instructions to VEX.
// TODO: Should we run EVEX->VEX earlier?
static const uint16_t ReplaceableCustomAVX512LogicInstrs[][4] =;