From f17deafc0aefdc1607fdd47bfedd6f5e8c4de26b Mon Sep 17 00:00:00 2001 From: Vsevolod Livinskiy Date: Fri, 20 Feb 2015 17:46:06 +0300 Subject: [PATCH] Some little bug was fixed --- cbackend.cpp | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/cbackend.cpp b/cbackend.cpp index fef86b60..f99c1bfb 100644 --- a/cbackend.cpp +++ b/cbackend.cpp @@ -4689,6 +4689,11 @@ SmearCleanupPass::getShuffleSmearValue(llvm::Instruction* inst) const { llvm::isa(insertInst->getOperand(2)) && llvm::dyn_cast(insertInst->getOperand(2))->isNullValue())) { + // We can't extract element from vec1 + llvm::VectorType *operandVec = llvm::dyn_cast(shuffleInst->getOperand(0)->getType()); + if (operandVec && operandVec->getNumElements() == 1) + return NULL; + // Insert ExtractElementInstr to get value for smear llvm::Function *extractFunc = module->getFunction("__extract_element");