Fix logic that looks for shift builtins.

This commit is contained in:
james.brodman
2013-10-29 14:02:32 -04:00
parent 6585a925be
commit 85eb4cf0d6

View File

@@ -4930,8 +4930,6 @@ CreatePeepholePass() {
return new PeepholePass; return new PeepholePass;
} }
#include <iostream>
/** Given an llvm::Value known to be an integer, return its value as /** Given an llvm::Value known to be an integer, return its value as
an int64_t. an int64_t.
*/ */
@@ -4978,7 +4976,7 @@ ReplaceStdlibShiftPass::runOnBasicBlock(llvm::BasicBlock &bb) {
if (llvm::CallInst *ci = llvm::dyn_cast<llvm::CallInst>(inst)) { if (llvm::CallInst *ci = llvm::dyn_cast<llvm::CallInst>(inst)) {
llvm::Function *func = ci->getCalledFunction(); llvm::Function *func = ci->getCalledFunction();
for (int i = 0; i < 6; i++) { for (int i = 0; i < 6; i++) {
if (shifts[i] == func) { if (shifts[i] && (shifts[i] == func)) {
// we matched a call // we matched a call
llvm::Value *shiftedVec = ci->getArgOperand(0); llvm::Value *shiftedVec = ci->getArgOperand(0);
llvm::Value *shiftAmt = ci->getArgOperand(1); llvm::Value *shiftAmt = ci->getArgOperand(1);