This is to fix the bug in IntrinsicLowering.cpp,

the LowerPartSet(). It didn't handle the situation correctly when
the low, high argument values are in reverse order (low > high)
with 'Val' type i32 (a corner case).


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63388 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Zhou Sheng 2009-01-30 09:02:50 +00:00
parent 5af3ee2818
commit 904ebf9bf4

View File

@ -533,7 +533,8 @@ static Instruction *LowerPartSet(CallInst *CI) {
Lo = new ZExtInst(Lo_pn, ValTy, "", entry);
} else if (ValBits < 32) {
Lo = new TruncInst(Lo_pn, ValTy, "", entry);
}
} else
Lo = Lo_pn;
// Determine if the replacement bits are larger than the number of bits we
// are replacing and deal with it.
ICmpInst* is_large =