diff options
Diffstat (limited to 'llvm/lib')
| -rw-r--r-- | llvm/lib/CodeGen/InstrSelection/InstrForest.cpp | 9 | 
1 files changed, 7 insertions, 2 deletions
| diff --git a/llvm/lib/CodeGen/InstrSelection/InstrForest.cpp b/llvm/lib/CodeGen/InstrSelection/InstrForest.cpp index d7edf1575b3..c24c35b640b 100644 --- a/llvm/lib/CodeGen/InstrSelection/InstrForest.cpp +++ b/llvm/lib/CodeGen/InstrSelection/InstrForest.cpp @@ -73,10 +73,15 @@ InstructionNode::InstructionNode(Instruction* I)      {        opLabel = opLabel + 100;		 // load/getElem with index vector      } +  else if (opLabel == Instruction::Xor && +           BinaryOperator::isNot(I)) +    { +      opLabel = (I->getType() == Type::BoolTy)?  NotOp  // boolean Not operator +                                              : BNotOp; // bitwise Not operator +    }    else if (opLabel == Instruction::And ||             opLabel == Instruction::Or || -           opLabel == Instruction::Xor || -           opLabel == Instruction::Not) +           opLabel == Instruction::Xor)      {        // Distinguish bitwise operators from logical operators!        if (I->getType() != Type::BoolTy) | 

