LLVM API Documentation

PPCISelLowering.cpp File Reference

#include "PPCISelLowering.h"
#include "PPCTargetMachine.h"
#include "llvm/ADT/VectorExtras.h"
#include "llvm/Analysis/ScalarEvolutionExpressions.h"
#include "llvm/CodeGen/MachineFrameInfo.h"
#include "llvm/CodeGen/MachineFunction.h"
#include "llvm/CodeGen/MachineInstrBuilder.h"
#include "llvm/CodeGen/SelectionDAG.h"
#include "llvm/CodeGen/SSARegMap.h"
#include "llvm/Constants.h"
#include "llvm/Function.h"
#include "llvm/Intrinsics.h"
#include "llvm/Support/MathExtras.h"
#include "llvm/Target/TargetOptions.h"

Include dependency graph for PPCISelLowering.cpp:

Go to the source code of this file.

Functions

static bool isFloatingPointZero (SDOperand Op)
 isFloatingPointZero - Return true if this is 0.0 or -0.0.
static bool isConstantOrUndef (SDOperand Op, unsigned Val)
static bool isVMerge (SDNode *N, unsigned UnitSize, unsigned LHSStart, unsigned RHSStart)
static bool GetConstantBuildVectorBits (SDNode *BV, uint64_t VectorBits[2], uint64_t UndefBits[2])


Function Documentation

static bool GetConstantBuildVectorBits ( SDNode BV,
uint64_t  VectorBits[2],
uint64_t  UndefBits[2] 
) [static]

Definition at line 554 of file PPCISelLowering.cpp.

References llvm::MVT::f32, llvm::FloatToBits(), llvm::SDNode::getNumOperands(), llvm::SDNode::getOperand(), llvm::MVT::getSizeInBits(), llvm::SDOperand::getValueType(), U, and llvm::ISD::UNDEF.

Referenced by llvm::PPCTargetLowering::LowerOperation().

static bool isConstantOrUndef ( SDOperand  Op,
unsigned  Val 
) [static]

isConstantOrUndef - Op is either an undef node or a ConstantSDNode. Return true if Op is undef or if it matches the specified value.

Definition at line 276 of file PPCISelLowering.cpp.

References Op, and llvm::ISD::UNDEF.

Referenced by isVMerge(), llvm::PPC::isVPKUHUMShuffleMask(), llvm::PPC::isVPKUWUMShuffleMask(), and llvm::PPC::isVSLDOIShuffleMask().

static bool isFloatingPointZero ( SDOperand  Op  )  [static]

isFloatingPointZero - Return true if this is 0.0 or -0.0.

Definition at line 262 of file PPCISelLowering.cpp.

References CP, llvm::ISD::EXTLOAD, llvm::ISD::LOAD, and Op.

static bool isVMerge ( SDNode N,
unsigned  UnitSize,
unsigned  LHSStart,
unsigned  RHSStart 
) [static]

isVMerge - Common function, used to match vmrg* shuffles.

Definition at line 318 of file PPCISelLowering.cpp.

References llvm::ISD::BUILD_VECTOR, llvm::SDNode::getNumOperands(), llvm::SDNode::getOpcode(), llvm::SDNode::getOperand(), and isConstantOrUndef().

Referenced by llvm::PPC::isVMRGHShuffleMask(), and llvm::PPC::isVMRGLShuffleMask().