diff --git a/src/mapleall/maple_me/src/lfo_loop_vec.cpp b/src/mapleall/maple_me/src/lfo_loop_vec.cpp index 73186c4999569a8ce1ac8b03b700ba808fb716e0..1dc6fcb7e8f0fa8f33ea387b81ea4214968488c6 100644 --- a/src/mapleall/maple_me/src/lfo_loop_vec.cpp +++ b/src/mapleall/maple_me/src/lfo_loop_vec.cpp @@ -1620,8 +1620,8 @@ void LoopVectorization::VectorizeDoLoop(DoloopNode *doloop, LoopTransPlan *tp) { for (; it != tp->vecInfo->uniformNodes.end(); ++it) { BaseNode *node = *it; PreMeMIRExtension *lfoP = (*PreMeExprExtensionMap)[node]; - // check node's parent, if they are binary node, skip the duplication - if ((!lfoP->GetParent()->IsBinaryNode()) || (node->GetOpCode() == OP_iread)) { + // check node's parent, if they are binary node (exculude compare node), skip the duplication + if ((!lfoP->GetParent()->IsBinaryNode() || IsCompareNode(lfoP->GetParent()->GetOpCode())) || (node->GetOpCode() == OP_iread)) { PrimType ptype = (node->GetOpCode() == OP_iread) ? (static_cast(node))->GetType()->GetPrimType() : node->GetPrimType(); if (tp->vecInfo->constvalTypes.count(node) > 0) {