mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-09-24 23:28:41 +00:00
Factor out redundancy from clone() implementations.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85327 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -22,45 +22,45 @@ TEST(CloneInstruction, OverflowBits) {
|
||||
BinaryOperator *Sub = BinaryOperator::Create(Instruction::Sub, V, V);
|
||||
BinaryOperator *Mul = BinaryOperator::Create(Instruction::Mul, V, V);
|
||||
|
||||
EXPECT_FALSE(Add->clone()->hasNoUnsignedWrap());
|
||||
EXPECT_FALSE(Add->clone()->hasNoSignedWrap());
|
||||
EXPECT_FALSE(Sub->clone()->hasNoUnsignedWrap());
|
||||
EXPECT_FALSE(Sub->clone()->hasNoSignedWrap());
|
||||
EXPECT_FALSE(Mul->clone()->hasNoUnsignedWrap());
|
||||
EXPECT_FALSE(Mul->clone()->hasNoSignedWrap());
|
||||
EXPECT_FALSE(cast<BinaryOperator>(Add->clone())->hasNoUnsignedWrap());
|
||||
EXPECT_FALSE(cast<BinaryOperator>(Add->clone())->hasNoSignedWrap());
|
||||
EXPECT_FALSE(cast<BinaryOperator>(Sub->clone())->hasNoUnsignedWrap());
|
||||
EXPECT_FALSE(cast<BinaryOperator>(Sub->clone())->hasNoSignedWrap());
|
||||
EXPECT_FALSE(cast<BinaryOperator>(Mul->clone())->hasNoUnsignedWrap());
|
||||
EXPECT_FALSE(cast<BinaryOperator>(Mul->clone())->hasNoSignedWrap());
|
||||
|
||||
Add->setHasNoUnsignedWrap();
|
||||
Sub->setHasNoUnsignedWrap();
|
||||
Mul->setHasNoUnsignedWrap();
|
||||
|
||||
EXPECT_TRUE(Add->clone()->hasNoUnsignedWrap());
|
||||
EXPECT_FALSE(Add->clone()->hasNoSignedWrap());
|
||||
EXPECT_TRUE(Sub->clone()->hasNoUnsignedWrap());
|
||||
EXPECT_FALSE(Sub->clone()->hasNoSignedWrap());
|
||||
EXPECT_TRUE(Mul->clone()->hasNoUnsignedWrap());
|
||||
EXPECT_FALSE(Mul->clone()->hasNoSignedWrap());
|
||||
EXPECT_TRUE(cast<BinaryOperator>(Add->clone())->hasNoUnsignedWrap());
|
||||
EXPECT_FALSE(cast<BinaryOperator>(Add->clone())->hasNoSignedWrap());
|
||||
EXPECT_TRUE(cast<BinaryOperator>(Sub->clone())->hasNoUnsignedWrap());
|
||||
EXPECT_FALSE(cast<BinaryOperator>(Sub->clone())->hasNoSignedWrap());
|
||||
EXPECT_TRUE(cast<BinaryOperator>(Mul->clone())->hasNoUnsignedWrap());
|
||||
EXPECT_FALSE(cast<BinaryOperator>(Mul->clone())->hasNoSignedWrap());
|
||||
|
||||
Add->setHasNoSignedWrap();
|
||||
Sub->setHasNoSignedWrap();
|
||||
Mul->setHasNoSignedWrap();
|
||||
|
||||
EXPECT_TRUE(Add->clone()->hasNoUnsignedWrap());
|
||||
EXPECT_TRUE(Add->clone()->hasNoSignedWrap());
|
||||
EXPECT_TRUE(Sub->clone()->hasNoUnsignedWrap());
|
||||
EXPECT_TRUE(Sub->clone()->hasNoSignedWrap());
|
||||
EXPECT_TRUE(Mul->clone()->hasNoUnsignedWrap());
|
||||
EXPECT_TRUE(Mul->clone()->hasNoSignedWrap());
|
||||
EXPECT_TRUE(cast<BinaryOperator>(Add->clone())->hasNoUnsignedWrap());
|
||||
EXPECT_TRUE(cast<BinaryOperator>(Add->clone())->hasNoSignedWrap());
|
||||
EXPECT_TRUE(cast<BinaryOperator>(Sub->clone())->hasNoUnsignedWrap());
|
||||
EXPECT_TRUE(cast<BinaryOperator>(Sub->clone())->hasNoSignedWrap());
|
||||
EXPECT_TRUE(cast<BinaryOperator>(Mul->clone())->hasNoUnsignedWrap());
|
||||
EXPECT_TRUE(cast<BinaryOperator>(Mul->clone())->hasNoSignedWrap());
|
||||
|
||||
Add->setHasNoUnsignedWrap(false);
|
||||
Sub->setHasNoUnsignedWrap(false);
|
||||
Mul->setHasNoUnsignedWrap(false);
|
||||
|
||||
EXPECT_FALSE(Add->clone()->hasNoUnsignedWrap());
|
||||
EXPECT_TRUE(Add->clone()->hasNoSignedWrap());
|
||||
EXPECT_FALSE(Sub->clone()->hasNoUnsignedWrap());
|
||||
EXPECT_TRUE(Sub->clone()->hasNoSignedWrap());
|
||||
EXPECT_FALSE(Mul->clone()->hasNoUnsignedWrap());
|
||||
EXPECT_TRUE(Mul->clone()->hasNoSignedWrap());
|
||||
EXPECT_FALSE(cast<BinaryOperator>(Add->clone())->hasNoUnsignedWrap());
|
||||
EXPECT_TRUE(cast<BinaryOperator>(Add->clone())->hasNoSignedWrap());
|
||||
EXPECT_FALSE(cast<BinaryOperator>(Sub->clone())->hasNoUnsignedWrap());
|
||||
EXPECT_TRUE(cast<BinaryOperator>(Sub->clone())->hasNoSignedWrap());
|
||||
EXPECT_FALSE(cast<BinaryOperator>(Mul->clone())->hasNoUnsignedWrap());
|
||||
EXPECT_TRUE(cast<BinaryOperator>(Mul->clone())->hasNoSignedWrap());
|
||||
}
|
||||
|
||||
TEST(CloneInstruction, Inbounds) {
|
||||
@@ -70,10 +70,10 @@ TEST(CloneInstruction, Inbounds) {
|
||||
std::vector<Value *> ops;
|
||||
ops.push_back(Z);
|
||||
GetElementPtrInst *GEP = GetElementPtrInst::Create(V, ops.begin(), ops.end());
|
||||
EXPECT_FALSE(GEP->clone()->isInBounds());
|
||||
EXPECT_FALSE(cast<GetElementPtrInst>(GEP->clone())->isInBounds());
|
||||
|
||||
GEP->setIsInBounds();
|
||||
EXPECT_TRUE(GEP->clone()->isInBounds());
|
||||
EXPECT_TRUE(cast<GetElementPtrInst>(GEP->clone())->isInBounds());
|
||||
}
|
||||
|
||||
TEST(CloneInstruction, Exact) {
|
||||
@@ -81,8 +81,8 @@ TEST(CloneInstruction, Exact) {
|
||||
Value *V = new Argument(Type::getInt32Ty(context));
|
||||
|
||||
BinaryOperator *SDiv = BinaryOperator::Create(Instruction::SDiv, V, V);
|
||||
EXPECT_FALSE(SDiv->clone()->isExact());
|
||||
EXPECT_FALSE(cast<BinaryOperator>(SDiv->clone())->isExact());
|
||||
|
||||
SDiv->setIsExact(true);
|
||||
EXPECT_TRUE(SDiv->clone()->isExact());
|
||||
EXPECT_TRUE(cast<BinaryOperator>(SDiv->clone())->isExact());
|
||||
}
|
||||
|
Reference in New Issue
Block a user