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