#include "llvm/Transforms/Utils/ScalarEvolutionExpander.h"
#include "llvm/ADT/SmallVector.h"
#include "llvm/Analysis/AssumptionCache.h"
#include "llvm/Analysis/LoopInfo.h"
#include "llvm/Analysis/ScalarEvolutionExpressions.h"
#include "llvm/Analysis/TargetLibraryInfo.h"
#include "llvm/AsmParser/Parser.h"
#include "llvm/IR/Constants.h"
#include "llvm/IR/Dominators.h"
#include "llvm/IR/GlobalVariable.h"
#include "llvm/IR/IRBuilder.h"
#include "llvm/IR/InstIterator.h"
#include "llvm/IR/LLVMContext.h"
#include "llvm/IR/Module.h"
#include "llvm/IR/PatternMatch.h"
#include "llvm/IR/Verifier.h"
#include "llvm/Support/SourceMgr.h"
#include "gtest/gtest.h"
namespace llvm {
usingnamespacePatternMatch;
class ScalarEvolutionExpanderTest : public testing::Test { … };
static Instruction &GetInstByName(Function &F, StringRef Name) { … }
TEST_F(ScalarEvolutionExpanderTest, ExpandPtrTypeSCEV) { … }
TEST_F(ScalarEvolutionExpanderTest, SCEVZeroExtendExprNonIntegral) { … }
TEST_F(ScalarEvolutionExpanderTest, SCEVExpanderIsSafeToExpandAt) { … }
TEST_F(ScalarEvolutionExpanderTest, SCEVExpanderNUW) { … }
TEST_F(ScalarEvolutionExpanderTest, SCEVExpanderNSW) { … }
TEST_F(ScalarEvolutionExpanderTest, SCEVCacheNUW) { … }
TEST_F(ScalarEvolutionExpanderTest, SCEVCacheNSW) { … }
TEST_F(ScalarEvolutionExpanderTest, SCEVExpandInsertCanonicalIV) { … }
TEST_F(ScalarEvolutionExpanderTest, SCEVExpanderShlNSW) { … }
TEST_F(ScalarEvolutionExpanderTest, SCEVExpandNonAffineAddRec) { … }
TEST_F(ScalarEvolutionExpanderTest, ExpandNonIntegralPtrWithNullBase) { … }
}