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).

llvm-svn: 63388
This commit is contained in:
Zhou Sheng 2009-01-30 09:02:50 +00:00
parent 11d082d56e
commit efe5611195

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 =