use (even more, still) ArgOperand API

llvm-svn: 106750
This commit is contained in:
Gabor Greif 2010-06-24 15:51:11 +00:00
parent 463f26b4be
commit a6d75e2cf7
1 changed files with 8 additions and 8 deletions

View File

@ -604,22 +604,22 @@ Instruction *InstCombiner::visitCallInst(CallInst &CI) {
case Intrinsic::ppc_altivec_stvx: case Intrinsic::ppc_altivec_stvx:
case Intrinsic::ppc_altivec_stvxl: case Intrinsic::ppc_altivec_stvxl:
// Turn stvx -> store if the pointer is known aligned. // Turn stvx -> store if the pointer is known aligned.
if (GetOrEnforceKnownAlignment(II->getOperand(2), 16) >= 16) { if (GetOrEnforceKnownAlignment(II->getArgOperand(1), 16) >= 16) {
const Type *OpPtrTy = const Type *OpPtrTy =
PointerType::getUnqual(II->getOperand(1)->getType()); PointerType::getUnqual(II->getArgOperand(0)->getType());
Value *Ptr = Builder->CreateBitCast(II->getOperand(2), OpPtrTy); Value *Ptr = Builder->CreateBitCast(II->getArgOperand(1), OpPtrTy);
return new StoreInst(II->getOperand(1), Ptr); return new StoreInst(II->getArgOperand(0), Ptr);
} }
break; break;
case Intrinsic::x86_sse_storeu_ps: case Intrinsic::x86_sse_storeu_ps:
case Intrinsic::x86_sse2_storeu_pd: case Intrinsic::x86_sse2_storeu_pd:
case Intrinsic::x86_sse2_storeu_dq: case Intrinsic::x86_sse2_storeu_dq:
// Turn X86 storeu -> store if the pointer is known aligned. // Turn X86 storeu -> store if the pointer is known aligned.
if (GetOrEnforceKnownAlignment(II->getOperand(1), 16) >= 16) { if (GetOrEnforceKnownAlignment(II->getArgOperand(0), 16) >= 16) {
const Type *OpPtrTy = const Type *OpPtrTy =
PointerType::getUnqual(II->getOperand(2)->getType()); PointerType::getUnqual(II->getArgOperand(1)->getType());
Value *Ptr = Builder->CreateBitCast(II->getOperand(1), OpPtrTy); Value *Ptr = Builder->CreateBitCast(II->getArgOperand(0), OpPtrTy);
return new StoreInst(II->getOperand(2), Ptr); return new StoreInst(II->getArgOperand(1), Ptr);
} }
break; break;