32 kPropagateSignallingNan
37 SignallingNanPropagation signalling_nan_propagation);
40 const char*
reducer_name()
const override {
return "MachineOperatorReducer"; }
48 Node* Float32Constant(
float value);
49 Node* Float64Constant(
double value);
50 Node* Int32Constant(int32_t value);
51 Node* Int64Constant(int64_t value);
53 return Int32Constant(base::bit_cast<int32_t>(value));
56 return Int64Constant(base::bit_cast<int64_t>(value));
62 return Word32And(lhs, Uint32Constant(rhs));
64 Node* Word32Sar(
Node* lhs, uint32_t rhs);
65 Node* Word64Sar(
Node* lhs, uint32_t rhs);
66 Node* Word32Shr(
Node* lhs, uint32_t rhs);
67 Node* Word64Shr(
Node* lhs, uint32_t rhs);
72 return Word64And(lhs, Uint64Constant(rhs));
80 Node* Int32Div(
Node* dividend, int32_t divisor);
81 Node* Int64Div(
Node* dividend, int64_t divisor);
82 Node* Uint32Div(
Node* dividend, uint32_t divisor);
83 Node* Uint64Div(
Node* dividend, uint64_t divisor);
84 Node* TruncateInt64ToInt32(
Node* value);
85 Node* ChangeInt32ToInt64(
Node* value);
89 return Replace(Float32Constant(value));
92 return Replace(Float64Constant(value));
95 return Replace(Int32Constant(value));
98 return Replace(Uint32Constant(value));
101 return Replace(Int64Constant(value));
104 return Replace(Uint64Constant(value));
122 const Operator* Map64To32Comparison(
const Operator* op,
bool sign_extended);
155 template <
typename WordNAdapter>
157 template <
typename WordNAdapter>
159 template <
typename WordNAdapter>
161 template <
typename WordNAdapter>
168 void SwapBranches(
Node* node);
172 template <
typename WordNAdapter>
173 std::optional<Node*> ReduceConditionalN(
Node* node);
181 template <
typename WordNAdapter,
typename uintN_t,
182 typename intN_t =
typename std::make_signed<uintN_t>::type>
183 std::optional<std::pair<Node*, uintN_t>> ReduceWordEqualForConstantRhs(
184 Node* lhs, uintN_t rhs);