LLVM 24.0.0git
SLPCompatibilityAnalysis.cpp File Reference
#include "SLPCompatibilityAnalysis.h"
#include "SLPUtils.h"
#include "llvm/ADT/APInt.h"
#include "llvm/ADT/STLExtras.h"
#include "llvm/ADT/SmallVector.h"
#include "llvm/IR/Constants.h"
#include "llvm/IR/InstrTypes.h"
#include "llvm/IR/Instruction.h"
#include "llvm/IR/Instructions.h"
#include "llvm/IR/IntrinsicInst.h"
#include "llvm/IR/PatternMatch.h"
#include "llvm/IR/Value.h"
#include "llvm/Support/Casting.h"
#include "llvm/Support/ErrorHandling.h"
#include <array>
#include <cassert>
#include <utility>

Go to the source code of this file.

Namespaces

namespace  llvm
 This is an optimization pass for GlobalISel generic memory operations.
namespace  llvm::slpvectorizer
 A private "module" namespace for types and utilities used by this pass.

Functions

bool llvm::slpvectorizer::isValidForAlternation (unsigned Opcode)
bool llvm::slpvectorizer::isAbsorbableFMul (ArrayRef< Value * > VL, Value *V)
 Checks if V is a single-use fmul with operands outside VL.
bool llvm::slpvectorizer::isAbsorbableCopyableFMul (const InstructionsState &S, Value *V)
 Checks if V is a copyable single-use fmul, absorbable as fmuladd(a, b, -0.0).