llvm/llvm/lib/Target/X86/X86InstrFMA3Info.cpp

//===-- X86InstrFMA3Info.cpp - X86 FMA3 Instruction Information -----------===//
//
// 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 implementation of the classes providing information
// about existing X86 FMA3 opcodes, classifying and grouping them.
//
//===----------------------------------------------------------------------===//

#include "X86InstrFMA3Info.h"
#include "X86InstrInfo.h"
#include "llvm/Support/Threading.h"
#include <atomic>
#include <cassert>
#include <cstdint>

usingnamespacellvm;

#define FMA3GROUP(Name, Suf, Attrs)

#define FMA3GROUP_MASKED(Name, Suf, Attrs)

#define FMA3GROUP_PACKED_WIDTHS_Z(Name, Suf, Attrs) \

#define FMA3GROUP_PACKED_WIDTHS_ALL(Name, Suf, Attrs)

#define FMA3GROUP_PACKED_DHS(Name, Attrs)

#define FMA3GROUP_PACKED_BF16(Name, Attrs)

#define FMA3GROUP_SCALAR_WIDTHS_Z(Name, Suf, Attrs) \

#define FMA3GROUP_SCALAR_WIDTHS_ALL(Name, Suf, Attrs)

#define FMA3GROUP_SCALAR(Name, Attrs)

#define FMA3GROUP_FULL(Name, Attrs)

static const X86InstrFMA3Group Groups[] =;

#define FMA3GROUP_PACKED_AVX512_WIDTHS(Name, Type, Suf, Attrs)

#define FMA3GROUP_PACKED_AVX512_ALL(Name, Suf, Attrs)

#define FMA3GROUP_PACKED_AVX512_DHS(Name, Suf, Attrs)

#define FMA3GROUP_PACKED_AVX512_ROUND(Name, Suf, Attrs)

#define FMA3GROUP_SCALAR_AVX512_ROUND(Name, Suf, Attrs)

static const X86InstrFMA3Group BroadcastGroups[] =;

static const X86InstrFMA3Group RoundGroups[] =;

static void verifyTables() {}

/// Returns a reference to a group of FMA3 opcodes to where the given
/// \p Opcode is included. If the given \p Opcode is not recognized as FMA3
/// and not included into any FMA3 group, then nullptr is returned.
const X86InstrFMA3Group *llvm::getFMA3Group(unsigned Opcode, uint64_t TSFlags) {}