aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZhou Sheng <zhousheng00@gmail.com>2009-01-30 09:02:50 +0000
committerZhou Sheng <zhousheng00@gmail.com>2009-01-30 09:02:50 +0000
commit904ebf9bf4e6487892cda2e89b8e6d40803e4733 (patch)
tree73d36b025204f3853f563aa00646658394a31ac8
parent5af3ee2818191df52ad5f216adfa15fdf1564454 (diff)
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
-rw-r--r--lib/CodeGen/IntrinsicLowering.cpp3
1 files changed, 2 insertions, 1 deletions
diff --git a/lib/CodeGen/IntrinsicLowering.cpp b/lib/CodeGen/IntrinsicLowering.cpp
index 960d660cb9..0ef9706668 100644
--- a/lib/CodeGen/IntrinsicLowering.cpp
+++ b/lib/CodeGen/IntrinsicLowering.cpp
@@ -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 =