| Index: src/compiler/simplified-lowering.cc
|
| diff --git a/src/compiler/simplified-lowering.cc b/src/compiler/simplified-lowering.cc
|
| index 23c3e3294474949be02671fa18d96f4d7cf729ee..4766ea2b9bccfb1a4f5c77c47c7e9c4e9582e4c4 100644
|
| --- a/src/compiler/simplified-lowering.cc
|
| +++ b/src/compiler/simplified-lowering.cc
|
| @@ -728,15 +728,15 @@ class RepresentationSelector {
|
| // If the input has type uint32, pass through representation.
|
| VisitUnop(node, kTypeUint32 | use_rep, kTypeUint32 | use_rep);
|
| if (lower()) DeferReplacement(node, node->InputAt(0));
|
| - } else if ((in & kTypeMask) == kTypeUint32 ||
|
| - in_upper->Is(Type::Unsigned32())) {
|
| + } else if ((in & kTypeMask) == kTypeInt32 ||
|
| + in_upper->Is(Type::Signed32())) {
|
| // Just change representation if necessary.
|
| - VisitUnop(node, kTypeUint32 | kRepWord32, kTypeUint32 | kRepWord32);
|
| + VisitUnop(node, kTypeInt32 | kRepWord32, kTypeUint32 | kRepWord32);
|
| if (lower()) DeferReplacement(node, node->InputAt(0));
|
| - } else if ((in & kTypeMask) == kTypeInt32 ||
|
| + } else if ((in & kTypeMask) == kTypeUint32 ||
|
| (in & kRepMask) == kRepWord32) {
|
| // Just change representation if necessary.
|
| - VisitUnop(node, kTypeInt32 | kRepWord32, kTypeUint32 | kRepWord32);
|
| + VisitUnop(node, kTypeUint32 | kRepWord32, kTypeUint32 | kRepWord32);
|
| if (lower()) DeferReplacement(node, node->InputAt(0));
|
| } else {
|
| // Require the input in float64 format and perform truncation.
|
|
|