AVX bugfix: when replacing 'all on' masked store with a store,
the rvalue is operand 2, not operand 1 (which is the mask!)
This commit is contained in:
2
opt.cpp
2
opt.cpp
@@ -630,7 +630,7 @@ IntrinsicsOpt::runOnBasicBlock(llvm::BasicBlock &bb) {
|
|||||||
}
|
}
|
||||||
else if (mask == 0xff) {
|
else if (mask == 0xff) {
|
||||||
// all lanes storing, so replace with a regular store
|
// all lanes storing, so replace with a regular store
|
||||||
llvm::Value *rvalue = callInst->getArgOperand(1);
|
llvm::Value *rvalue = callInst->getArgOperand(2);
|
||||||
llvm::Type *storeType = rvalue->getType();
|
llvm::Type *storeType = rvalue->getType();
|
||||||
llvm::Value *castPtr =
|
llvm::Value *castPtr =
|
||||||
new llvm::BitCastInst(callInst->getArgOperand(0),
|
new llvm::BitCastInst(callInst->getArgOperand(0),
|
||||||
|
|||||||
Reference in New Issue
Block a user