| Index: src/compiler/representation-change.cc
 | 
| diff --git a/src/compiler/representation-change.cc b/src/compiler/representation-change.cc
 | 
| index 5c0187e697754653b9128c2859af25e29983a538..049ddfa05f77324ecf9ff33e7fdcc28fa98b3373 100644
 | 
| --- a/src/compiler/representation-change.cc
 | 
| +++ b/src/compiler/representation-change.cc
 | 
| @@ -457,7 +457,7 @@ Node* RepresentationChanger::GetWord32RepresentationFor(
 | 
|      } else if (output_type->Is(Type::Signed32())) {
 | 
|        op = simplified()->ChangeTaggedToInt32();
 | 
|      } else if (use_info.truncation().IsUsedAsWord32()) {
 | 
| -      if (use_info.type_check() == TypeCheckKind::kNumberOrOddball) {
 | 
| +      if (use_info.type_check() != TypeCheckKind::kNone) {
 | 
|          op = simplified()->CheckedTruncateTaggedToWord32();
 | 
|        } else {
 | 
|          op = simplified()->TruncateTaggedToWord32();
 | 
| @@ -568,10 +568,13 @@ const Operator* RepresentationChanger::Int32OperatorFor(
 | 
|      case IrOpcode::kSpeculativeNumberModulus:
 | 
|      case IrOpcode::kNumberModulus:
 | 
|        return machine()->Int32Mod();
 | 
| +    case IrOpcode::kSpeculativeNumberBitwiseOr:  // Fall through.
 | 
|      case IrOpcode::kNumberBitwiseOr:
 | 
|        return machine()->Word32Or();
 | 
| +    case IrOpcode::kSpeculativeNumberBitwiseXor:  // Fall through.
 | 
|      case IrOpcode::kNumberBitwiseXor:
 | 
|        return machine()->Word32Xor();
 | 
| +    case IrOpcode::kSpeculativeNumberBitwiseAnd:  // Fall through.
 | 
|      case IrOpcode::kNumberBitwiseAnd:
 | 
|        return machine()->Word32And();
 | 
|      case IrOpcode::kNumberEqual:
 | 
| 
 |