Lines Matching refs:Operator
89 LoadTransformParameters const& LoadTransformParametersOf(Operator const* op) { in LoadTransformParametersOf()
111 LoadLaneParameters const& LoadLaneParametersOf(Operator const* op) { in LoadLaneParametersOf()
121 LoadRepresentation LoadRepresentationOf(Operator const* op) { in LoadRepresentationOf()
132 StoreRepresentation const& StoreRepresentationOf(Operator const* op) { in StoreRepresentationOf()
139 Operator const* op) { in UnalignedStoreRepresentationOf()
153 StoreLaneParameters const& StoreLaneParametersOf(Operator const* op) { in StoreLaneParametersOf()
179 StackSlotRepresentation const& StackSlotRepresentationOf(Operator const* op) { in StackSlotRepresentationOf()
184 MachineRepresentation AtomicStoreRepresentationOf(Operator const* op) { in AtomicStoreRepresentationOf()
190 MachineType AtomicOpType(Operator const* op) { in AtomicOpType()
204 ShiftKind ShiftKindOf(Operator const* op) { in ShiftKindOf()
213 V(Word32And, Operator::kAssociative | Operator::kCommutative, 2, 0, 1) \
214 V(Word32Or, Operator::kAssociative | Operator::kCommutative, 2, 0, 1) \
215 V(Word32Xor, Operator::kAssociative | Operator::kCommutative, 2, 0, 1) \
216 V(Word32Shl, Operator::kNoProperties, 2, 0, 1) \
217 V(Word32Shr, Operator::kNoProperties, 2, 0, 1) \
218 V(Word32Ror, Operator::kNoProperties, 2, 0, 1) \
219 V(Word32Equal, Operator::kCommutative, 2, 0, 1) \
220 V(Int32Add, Operator::kAssociative | Operator::kCommutative, 2, 0, 1) \
221 V(Int32Sub, Operator::kNoProperties, 2, 0, 1) \
222 V(Int32Mul, Operator::kAssociative | Operator::kCommutative, 2, 0, 1) \
223 V(Int32MulHigh, Operator::kAssociative | Operator::kCommutative, 2, 0, 1) \
224 V(Int32Div, Operator::kNoProperties, 2, 1, 1) \
225 V(Int32Mod, Operator::kNoProperties, 2, 1, 1) \
226 V(Int32LessThan, Operator::kNoProperties, 2, 0, 1) \
227 V(Int32LessThanOrEqual, Operator::kNoProperties, 2, 0, 1) \
228 V(Uint32Div, Operator::kNoProperties, 2, 1, 1) \
229 V(Uint32LessThan, Operator::kNoProperties, 2, 0, 1) \
230 V(Uint32LessThanOrEqual, Operator::kNoProperties, 2, 0, 1) \
231 V(Uint32Mod, Operator::kNoProperties, 2, 1, 1) \
232 V(Uint32MulHigh, Operator::kAssociative | Operator::kCommutative, 2, 0, 1)
237 V(Word64And, Operator::kAssociative | Operator::kCommutative, 2, 0, 1) \
238 V(Word64Or, Operator::kAssociative | Operator::kCommutative, 2, 0, 1) \
239 V(Word64Xor, Operator::kAssociative | Operator::kCommutative, 2, 0, 1) \
240 V(Word64Shl, Operator::kNoProperties, 2, 0, 1) \
241 V(Word64Shr, Operator::kNoProperties, 2, 0, 1) \
242 V(Word64Ror, Operator::kNoProperties, 2, 0, 1) \
243 V(Word64Equal, Operator::kCommutative, 2, 0, 1) \
244 V(Int64Add, Operator::kAssociative | Operator::kCommutative, 2, 0, 1) \
245 V(Int64Sub, Operator::kNoProperties, 2, 0, 1) \
246 V(Int64Mul, Operator::kAssociative | Operator::kCommutative, 2, 0, 1) \
247 V(Int64Div, Operator::kNoProperties, 2, 1, 1) \
248 V(Int64Mod, Operator::kNoProperties, 2, 1, 1) \
249 V(Int64LessThan, Operator::kNoProperties, 2, 0, 1) \
250 V(Int64LessThanOrEqual, Operator::kNoProperties, 2, 0, 1) \
251 V(Uint64Div, Operator::kNoProperties, 2, 1, 1) \
252 V(Uint64Mod, Operator::kNoProperties, 2, 1, 1) \
253 V(Uint64LessThan, Operator::kNoProperties, 2, 0, 1) \
254 V(Uint64LessThanOrEqual, Operator::kNoProperties, 2, 0, 1)
261 V(Word32Clz, Operator::kNoProperties, 1, 0, 1) \
262 V(Word64Clz, Operator::kNoProperties, 1, 0, 1) \
263 V(Word32ReverseBytes, Operator::kNoProperties, 1, 0, 1) \
264 V(Word64ReverseBytes, Operator::kNoProperties, 1, 0, 1) \
265 V(Simd128ReverseBytes, Operator::kNoProperties, 1, 0, 1) \
266 V(BitcastTaggedToWordForTagAndSmiBits, Operator::kNoProperties, 1, 0, 1) \
267 V(BitcastWordToTaggedSigned, Operator::kNoProperties, 1, 0, 1) \
268 V(TruncateFloat64ToWord32, Operator::kNoProperties, 1, 0, 1) \
269 V(ChangeFloat32ToFloat64, Operator::kNoProperties, 1, 0, 1) \
270 V(ChangeFloat64ToInt32, Operator::kNoProperties, 1, 0, 1) \
271 V(ChangeFloat64ToInt64, Operator::kNoProperties, 1, 0, 1) \
272 V(ChangeFloat64ToUint32, Operator::kNoProperties, 1, 0, 1) \
273 V(ChangeFloat64ToUint64, Operator::kNoProperties, 1, 0, 1) \
274 V(TruncateFloat64ToInt64, Operator::kNoProperties, 1, 0, 1) \
275 V(TruncateFloat64ToUint32, Operator::kNoProperties, 1, 0, 1) \
276 V(TryTruncateFloat32ToInt64, Operator::kNoProperties, 1, 0, 2) \
277 V(TryTruncateFloat64ToInt64, Operator::kNoProperties, 1, 0, 2) \
278 V(TryTruncateFloat32ToUint64, Operator::kNoProperties, 1, 0, 2) \
279 V(TryTruncateFloat64ToUint64, Operator::kNoProperties, 1, 0, 2) \
280 V(ChangeInt32ToFloat64, Operator::kNoProperties, 1, 0, 1) \
281 V(ChangeInt64ToFloat64, Operator::kNoProperties, 1, 0, 1) \
282 V(Float64SilenceNaN, Operator::kNoProperties, 1, 0, 1) \
283 V(RoundFloat64ToInt32, Operator::kNoProperties, 1, 0, 1) \
284 V(RoundInt32ToFloat32, Operator::kNoProperties, 1, 0, 1) \
285 V(RoundInt64ToFloat32, Operator::kNoProperties, 1, 0, 1) \
286 V(RoundInt64ToFloat64, Operator::kNoProperties, 1, 0, 1) \
287 V(RoundUint32ToFloat32, Operator::kNoProperties, 1, 0, 1) \
288 V(RoundUint64ToFloat32, Operator::kNoProperties, 1, 0, 1) \
289 V(RoundUint64ToFloat64, Operator::kNoProperties, 1, 0, 1) \
290 V(BitcastWord32ToWord64, Operator::kNoProperties, 1, 0, 1) \
291 V(ChangeInt32ToInt64, Operator::kNoProperties, 1, 0, 1) \
292 V(ChangeUint32ToFloat64, Operator::kNoProperties, 1, 0, 1) \
293 V(ChangeUint32ToUint64, Operator::kNoProperties, 1, 0, 1) \
294 V(TruncateFloat64ToFloat32, Operator::kNoProperties, 1, 0, 1) \
295 V(TruncateInt64ToInt32, Operator::kNoProperties, 1, 0, 1) \
296 V(BitcastFloat32ToInt32, Operator::kNoProperties, 1, 0, 1) \
297 V(BitcastFloat64ToInt64, Operator::kNoProperties, 1, 0, 1) \
298 V(BitcastInt32ToFloat32, Operator::kNoProperties, 1, 0, 1) \
299 V(BitcastInt64ToFloat64, Operator::kNoProperties, 1, 0, 1) \
300 V(SignExtendWord8ToInt32, Operator::kNoProperties, 1, 0, 1) \
301 V(SignExtendWord16ToInt32, Operator::kNoProperties, 1, 0, 1) \
302 V(SignExtendWord8ToInt64, Operator::kNoProperties, 1, 0, 1) \
303 V(SignExtendWord16ToInt64, Operator::kNoProperties, 1, 0, 1) \
304 V(SignExtendWord32ToInt64, Operator::kNoProperties, 1, 0, 1) \
305 V(Float32Abs, Operator::kNoProperties, 1, 0, 1) \
306 V(Float32Add, Operator::kCommutative, 2, 0, 1) \
307 V(Float32Sub, Operator::kNoProperties, 2, 0, 1) \
308 V(Float32Mul, Operator::kCommutative, 2, 0, 1) \
309 V(Float32Div, Operator::kNoProperties, 2, 0, 1) \
310 V(Float32Neg, Operator::kNoProperties, 1, 0, 1) \
311 V(Float32Sqrt, Operator::kNoProperties, 1, 0, 1) \
312 V(Float32Max, Operator::kAssociative | Operator::kCommutative, 2, 0, 1) \
313 V(Float32Min, Operator::kAssociative | Operator::kCommutative, 2, 0, 1) \
314 V(Float64Abs, Operator::kNoProperties, 1, 0, 1) \
315 V(Float64Acos, Operator::kNoProperties, 1, 0, 1) \
316 V(Float64Acosh, Operator::kNoProperties, 1, 0, 1) \
317 V(Float64Asin, Operator::kNoProperties, 1, 0, 1) \
318 V(Float64Asinh, Operator::kNoProperties, 1, 0, 1) \
319 V(Float64Atan, Operator::kNoProperties, 1, 0, 1) \
320 V(Float64Atan2, Operator::kNoProperties, 2, 0, 1) \
321 V(Float64Atanh, Operator::kNoProperties, 1, 0, 1) \
322 V(Float64Cbrt, Operator::kNoProperties, 1, 0, 1) \
323 V(Float64Cos, Operator::kNoProperties, 1, 0, 1) \
324 V(Float64Cosh, Operator::kNoProperties, 1, 0, 1) \
325 V(Float64Exp, Operator::kNoProperties, 1, 0, 1) \
326 V(Float64Expm1, Operator::kNoProperties, 1, 0, 1) \
327 V(Float64Log, Operator::kNoProperties, 1, 0, 1) \
328 V(Float64Log1p, Operator::kNoProperties, 1, 0, 1) \
329 V(Float64Log2, Operator::kNoProperties, 1, 0, 1) \
330 V(Float64Log10, Operator::kNoProperties, 1, 0, 1) \
331 V(Float64Max, Operator::kAssociative | Operator::kCommutative, 2, 0, 1) \
332 V(Float64Min, Operator::kAssociative | Operator::kCommutative, 2, 0, 1) \
333 V(Float64Neg, Operator::kNoProperties, 1, 0, 1) \
334 V(Float64Add, Operator::kCommutative, 2, 0, 1) \
335 V(Float64Sub, Operator::kNoProperties, 2, 0, 1) \
336 V(Float64Mul, Operator::kCommutative, 2, 0, 1) \
337 V(Float64Div, Operator::kNoProperties, 2, 0, 1) \
338 V(Float64Mod, Operator::kNoProperties, 2, 0, 1) \
339 V(Float64Pow, Operator::kNoProperties, 2, 0, 1) \
340 V(Float64Sin, Operator::kNoProperties, 1, 0, 1) \
341 V(Float64Sinh, Operator::kNoProperties, 1, 0, 1) \
342 V(Float64Sqrt, Operator::kNoProperties, 1, 0, 1) \
343 V(Float64Tan, Operator::kNoProperties, 1, 0, 1) \
344 V(Float64Tanh, Operator::kNoProperties, 1, 0, 1) \
345 V(Float32Equal, Operator::kCommutative, 2, 0, 1) \
346 V(Float32LessThan, Operator::kNoProperties, 2, 0, 1) \
347 V(Float32LessThanOrEqual, Operator::kNoProperties, 2, 0, 1) \
348 V(Float64Equal, Operator::kCommutative, 2, 0, 1) \
349 V(Float64LessThan, Operator::kNoProperties, 2, 0, 1) \
350 V(Float64LessThanOrEqual, Operator::kNoProperties, 2, 0, 1) \
351 V(Float64ExtractLowWord32, Operator::kNoProperties, 1, 0, 1) \
352 V(Float64ExtractHighWord32, Operator::kNoProperties, 1, 0, 1) \
353 V(Float64InsertLowWord32, Operator::kNoProperties, 2, 0, 1) \
354 V(Float64InsertHighWord32, Operator::kNoProperties, 2, 0, 1) \
355 V(LoadStackCheckOffset, Operator::kNoProperties, 0, 0, 1) \
356 V(LoadFramePointer, Operator::kNoProperties, 0, 0, 1) \
357 V(LoadParentFramePointer, Operator::kNoProperties, 0, 0, 1) \
358 V(Int32PairAdd, Operator::kNoProperties, 4, 0, 2) \
359 V(Int32PairSub, Operator::kNoProperties, 4, 0, 2) \
360 V(Int32PairMul, Operator::kNoProperties, 4, 0, 2) \
361 V(Word32PairShl, Operator::kNoProperties, 3, 0, 2) \
362 V(Word32PairShr, Operator::kNoProperties, 3, 0, 2) \
363 V(Word32PairSar, Operator::kNoProperties, 3, 0, 2) \
364 V(F64x2Splat, Operator::kNoProperties, 1, 0, 1) \
365 V(F64x2Abs, Operator::kNoProperties, 1, 0, 1) \
366 V(F64x2Neg, Operator::kNoProperties, 1, 0, 1) \
367 V(F64x2Sqrt, Operator::kNoProperties, 1, 0, 1) \
368 V(F64x2Add, Operator::kCommutative, 2, 0, 1) \
369 V(F64x2Sub, Operator::kNoProperties, 2, 0, 1) \
370 V(F64x2Mul, Operator::kCommutative, 2, 0, 1) \
371 V(F64x2Div, Operator::kNoProperties, 2, 0, 1) \
372 V(F64x2Min, Operator::kCommutative, 2, 0, 1) \
373 V(F64x2Max, Operator::kCommutative, 2, 0, 1) \
374 V(F64x2Eq, Operator::kCommutative, 2, 0, 1) \
375 V(F64x2Ne, Operator::kCommutative, 2, 0, 1) \
376 V(F64x2Lt, Operator::kNoProperties, 2, 0, 1) \
377 V(F64x2Le, Operator::kNoProperties, 2, 0, 1) \
378 V(F64x2Qfma, Operator::kNoProperties, 3, 0, 1) \
379 V(F64x2Qfms, Operator::kNoProperties, 3, 0, 1) \
380 V(F64x2Pmin, Operator::kNoProperties, 2, 0, 1) \
381 V(F64x2Pmax, Operator::kNoProperties, 2, 0, 1) \
382 V(F64x2Ceil, Operator::kNoProperties, 1, 0, 1) \
383 V(F64x2Floor, Operator::kNoProperties, 1, 0, 1) \
384 V(F64x2Trunc, Operator::kNoProperties, 1, 0, 1) \
385 V(F64x2NearestInt, Operator::kNoProperties, 1, 0, 1) \
386 V(F32x4Splat, Operator::kNoProperties, 1, 0, 1) \
387 V(F32x4SConvertI32x4, Operator::kNoProperties, 1, 0, 1) \
388 V(F32x4UConvertI32x4, Operator::kNoProperties, 1, 0, 1) \
389 V(F32x4Abs, Operator::kNoProperties, 1, 0, 1) \
390 V(F32x4Neg, Operator::kNoProperties, 1, 0, 1) \
391 V(F32x4Sqrt, Operator::kNoProperties, 1, 0, 1) \
392 V(F32x4RecipApprox, Operator::kNoProperties, 1, 0, 1) \
393 V(F32x4RecipSqrtApprox, Operator::kNoProperties, 1, 0, 1) \
394 V(F32x4Add, Operator::kCommutative, 2, 0, 1) \
395 V(F32x4AddHoriz, Operator::kNoProperties, 2, 0, 1) \
396 V(F32x4Sub, Operator::kNoProperties, 2, 0, 1) \
397 V(F32x4Mul, Operator::kCommutative, 2, 0, 1) \
398 V(F32x4Div, Operator::kNoProperties, 2, 0, 1) \
399 V(F32x4Min, Operator::kCommutative, 2, 0, 1) \
400 V(F32x4Max, Operator::kCommutative, 2, 0, 1) \
401 V(F32x4Eq, Operator::kCommutative, 2, 0, 1) \
402 V(F32x4Ne, Operator::kCommutative, 2, 0, 1) \
403 V(F32x4Lt, Operator::kNoProperties, 2, 0, 1) \
404 V(F32x4Le, Operator::kNoProperties, 2, 0, 1) \
405 V(F32x4Qfma, Operator::kNoProperties, 3, 0, 1) \
406 V(F32x4Qfms, Operator::kNoProperties, 3, 0, 1) \
407 V(F32x4Pmin, Operator::kNoProperties, 2, 0, 1) \
408 V(F32x4Pmax, Operator::kNoProperties, 2, 0, 1) \
409 V(F32x4Ceil, Operator::kNoProperties, 1, 0, 1) \
410 V(F32x4Floor, Operator::kNoProperties, 1, 0, 1) \
411 V(F32x4Trunc, Operator::kNoProperties, 1, 0, 1) \
412 V(F32x4NearestInt, Operator::kNoProperties, 1, 0, 1) \
413 V(I64x2Splat, Operator::kNoProperties, 1, 0, 1) \
414 V(I64x2SplatI32Pair, Operator::kNoProperties, 2, 0, 1) \
415 V(I64x2Neg, Operator::kNoProperties, 1, 0, 1) \
416 V(I64x2SConvertI32x4Low, Operator::kNoProperties, 1, 0, 1) \
417 V(I64x2SConvertI32x4High, Operator::kNoProperties, 1, 0, 1) \
418 V(I64x2UConvertI32x4Low, Operator::kNoProperties, 1, 0, 1) \
419 V(I64x2UConvertI32x4High, Operator::kNoProperties, 1, 0, 1) \
420 V(I64x2BitMask, Operator::kNoProperties, 1, 0, 1) \
421 V(I64x2Shl, Operator::kNoProperties, 2, 0, 1) \
422 V(I64x2ShrS, Operator::kNoProperties, 2, 0, 1) \
423 V(I64x2Add, Operator::kCommutative, 2, 0, 1) \
424 V(I64x2Sub, Operator::kNoProperties, 2, 0, 1) \
425 V(I64x2Mul, Operator::kCommutative, 2, 0, 1) \
426 V(I64x2Eq, Operator::kCommutative, 2, 0, 1) \
427 V(I64x2ShrU, Operator::kNoProperties, 2, 0, 1) \
428 V(I64x2ExtMulLowI32x4S, Operator::kCommutative, 2, 0, 1) \
429 V(I64x2ExtMulHighI32x4S, Operator::kCommutative, 2, 0, 1) \
430 V(I64x2ExtMulLowI32x4U, Operator::kCommutative, 2, 0, 1) \
431 V(I64x2ExtMulHighI32x4U, Operator::kCommutative, 2, 0, 1) \
432 V(I64x2SignSelect, Operator::kNoProperties, 3, 0, 1) \
433 V(I32x4Splat, Operator::kNoProperties, 1, 0, 1) \
434 V(I32x4SConvertF32x4, Operator::kNoProperties, 1, 0, 1) \
435 V(I32x4SConvertI16x8Low, Operator::kNoProperties, 1, 0, 1) \
436 V(I32x4SConvertI16x8High, Operator::kNoProperties, 1, 0, 1) \
437 V(I32x4Neg, Operator::kNoProperties, 1, 0, 1) \
438 V(I32x4Shl, Operator::kNoProperties, 2, 0, 1) \
439 V(I32x4ShrS, Operator::kNoProperties, 2, 0, 1) \
440 V(I32x4Add, Operator::kCommutative, 2, 0, 1) \
441 V(I32x4AddHoriz, Operator::kNoProperties, 2, 0, 1) \
442 V(I32x4Sub, Operator::kNoProperties, 2, 0, 1) \
443 V(I32x4Mul, Operator::kCommutative, 2, 0, 1) \
444 V(I32x4MinS, Operator::kCommutative, 2, 0, 1) \
445 V(I32x4MaxS, Operator::kCommutative, 2, 0, 1) \
446 V(I32x4Eq, Operator::kCommutative, 2, 0, 1) \
447 V(I32x4Ne, Operator::kCommutative, 2, 0, 1) \
448 V(I32x4GtS, Operator::kNoProperties, 2, 0, 1) \
449 V(I32x4GeS, Operator::kNoProperties, 2, 0, 1) \
450 V(I32x4UConvertF32x4, Operator::kNoProperties, 1, 0, 1) \
451 V(I32x4UConvertI16x8Low, Operator::kNoProperties, 1, 0, 1) \
452 V(I32x4UConvertI16x8High, Operator::kNoProperties, 1, 0, 1) \
453 V(I32x4ShrU, Operator::kNoProperties, 2, 0, 1) \
454 V(I32x4MinU, Operator::kCommutative, 2, 0, 1) \
455 V(I32x4MaxU, Operator::kCommutative, 2, 0, 1) \
456 V(I32x4GtU, Operator::kNoProperties, 2, 0, 1) \
457 V(I32x4GeU, Operator::kNoProperties, 2, 0, 1) \
458 V(I32x4Abs, Operator::kNoProperties, 1, 0, 1) \
459 V(I32x4BitMask, Operator::kNoProperties, 1, 0, 1) \
460 V(I32x4DotI16x8S, Operator::kCommutative, 2, 0, 1) \
461 V(I32x4ExtMulLowI16x8S, Operator::kCommutative, 2, 0, 1) \
462 V(I32x4ExtMulHighI16x8S, Operator::kCommutative, 2, 0, 1) \
463 V(I32x4ExtMulLowI16x8U, Operator::kCommutative, 2, 0, 1) \
464 V(I32x4ExtMulHighI16x8U, Operator::kCommutative, 2, 0, 1) \
465 V(I32x4SignSelect, Operator::kNoProperties, 3, 0, 1) \
466 V(I32x4ExtAddPairwiseI16x8S, Operator::kNoProperties, 1, 0, 1) \
467 V(I32x4ExtAddPairwiseI16x8U, Operator::kNoProperties, 1, 0, 1) \
468 V(I16x8Splat, Operator::kNoProperties, 1, 0, 1) \
469 V(I16x8SConvertI8x16Low, Operator::kNoProperties, 1, 0, 1) \
470 V(I16x8SConvertI8x16High, Operator::kNoProperties, 1, 0, 1) \
471 V(I16x8Neg, Operator::kNoProperties, 1, 0, 1) \
472 V(I16x8Shl, Operator::kNoProperties, 2, 0, 1) \
473 V(I16x8ShrS, Operator::kNoProperties, 2, 0, 1) \
474 V(I16x8SConvertI32x4, Operator::kNoProperties, 2, 0, 1) \
475 V(I16x8Add, Operator::kCommutative, 2, 0, 1) \
476 V(I16x8AddSatS, Operator::kCommutative, 2, 0, 1) \
477 V(I16x8AddHoriz, Operator::kNoProperties, 2, 0, 1) \
478 V(I16x8Sub, Operator::kNoProperties, 2, 0, 1) \
479 V(I16x8SubSatS, Operator::kNoProperties, 2, 0, 1) \
480 V(I16x8Mul, Operator::kCommutative, 2, 0, 1) \
481 V(I16x8MinS, Operator::kCommutative, 2, 0, 1) \
482 V(I16x8MaxS, Operator::kCommutative, 2, 0, 1) \
483 V(I16x8Eq, Operator::kCommutative, 2, 0, 1) \
484 V(I16x8Ne, Operator::kCommutative, 2, 0, 1) \
485 V(I16x8GtS, Operator::kNoProperties, 2, 0, 1) \
486 V(I16x8GeS, Operator::kNoProperties, 2, 0, 1) \
487 V(I16x8UConvertI8x16Low, Operator::kNoProperties, 1, 0, 1) \
488 V(I16x8UConvertI8x16High, Operator::kNoProperties, 1, 0, 1) \
489 V(I16x8ShrU, Operator::kNoProperties, 2, 0, 1) \
490 V(I16x8UConvertI32x4, Operator::kNoProperties, 2, 0, 1) \
491 V(I16x8AddSatU, Operator::kCommutative, 2, 0, 1) \
492 V(I16x8SubSatU, Operator::kNoProperties, 2, 0, 1) \
493 V(I16x8MinU, Operator::kCommutative, 2, 0, 1) \
494 V(I16x8MaxU, Operator::kCommutative, 2, 0, 1) \
495 V(I16x8GtU, Operator::kNoProperties, 2, 0, 1) \
496 V(I16x8GeU, Operator::kNoProperties, 2, 0, 1) \
497 V(I16x8RoundingAverageU, Operator::kCommutative, 2, 0, 1) \
498 V(I16x8Q15MulRSatS, Operator::kCommutative, 2, 0, 1) \
499 V(I16x8Abs, Operator::kNoProperties, 1, 0, 1) \
500 V(I16x8BitMask, Operator::kNoProperties, 1, 0, 1) \
501 V(I16x8ExtMulLowI8x16S, Operator::kCommutative, 2, 0, 1) \
502 V(I16x8ExtMulHighI8x16S, Operator::kCommutative, 2, 0, 1) \
503 V(I16x8ExtMulLowI8x16U, Operator::kCommutative, 2, 0, 1) \
504 V(I16x8ExtMulHighI8x16U, Operator::kCommutative, 2, 0, 1) \
505 V(I16x8SignSelect, Operator::kNoProperties, 3, 0, 1) \
506 V(I16x8ExtAddPairwiseI8x16S, Operator::kNoProperties, 1, 0, 1) \
507 V(I16x8ExtAddPairwiseI8x16U, Operator::kNoProperties, 1, 0, 1) \
508 V(I8x16Splat, Operator::kNoProperties, 1, 0, 1) \
509 V(I8x16Neg, Operator::kNoProperties, 1, 0, 1) \
510 V(I8x16Shl, Operator::kNoProperties, 2, 0, 1) \
511 V(I8x16ShrS, Operator::kNoProperties, 2, 0, 1) \
512 V(I8x16SConvertI16x8, Operator::kNoProperties, 2, 0, 1) \
513 V(I8x16Add, Operator::kCommutative, 2, 0, 1) \
514 V(I8x16AddSatS, Operator::kCommutative, 2, 0, 1) \
515 V(I8x16Sub, Operator::kNoProperties, 2, 0, 1) \
516 V(I8x16SubSatS, Operator::kNoProperties, 2, 0, 1) \
517 V(I8x16Mul, Operator::kCommutative, 2, 0, 1) \
518 V(I8x16MinS, Operator::kCommutative, 2, 0, 1) \
519 V(I8x16MaxS, Operator::kCommutative, 2, 0, 1) \
520 V(I8x16Eq, Operator::kCommutative, 2, 0, 1) \
521 V(I8x16Ne, Operator::kCommutative, 2, 0, 1) \
522 V(I8x16GtS, Operator::kNoProperties, 2, 0, 1) \
523 V(I8x16GeS, Operator::kNoProperties, 2, 0, 1) \
524 V(I8x16ShrU, Operator::kNoProperties, 2, 0, 1) \
525 V(I8x16UConvertI16x8, Operator::kNoProperties, 2, 0, 1) \
526 V(I8x16AddSatU, Operator::kCommutative, 2, 0, 1) \
527 V(I8x16SubSatU, Operator::kNoProperties, 2, 0, 1) \
528 V(I8x16MinU, Operator::kCommutative, 2, 0, 1) \
529 V(I8x16MaxU, Operator::kCommutative, 2, 0, 1) \
530 V(I8x16GtU, Operator::kNoProperties, 2, 0, 1) \
531 V(I8x16GeU, Operator::kNoProperties, 2, 0, 1) \
532 V(I8x16RoundingAverageU, Operator::kCommutative, 2, 0, 1) \
533 V(I8x16Popcnt, Operator::kNoProperties, 1, 0, 1) \
534 V(I8x16Abs, Operator::kNoProperties, 1, 0, 1) \
535 V(I8x16BitMask, Operator::kNoProperties, 1, 0, 1) \
536 V(I8x16SignSelect, Operator::kNoProperties, 3, 0, 1) \
537 V(S128Load, Operator::kNoProperties, 2, 0, 1) \
538 V(S128Store, Operator::kNoProperties, 3, 0, 1) \
539 V(S128Zero, Operator::kNoProperties, 0, 0, 1) \
540 V(S128And, Operator::kAssociative | Operator::kCommutative, 2, 0, 1) \
541 V(S128Or, Operator::kAssociative | Operator::kCommutative, 2, 0, 1) \
542 V(S128Xor, Operator::kAssociative | Operator::kCommutative, 2, 0, 1) \
543 V(S128Not, Operator::kNoProperties, 1, 0, 1) \
544 V(S128Select, Operator::kNoProperties, 3, 0, 1) \
545 V(S128AndNot, Operator::kNoProperties, 2, 0, 1) \
546 V(V32x4AnyTrue, Operator::kNoProperties, 1, 0, 1) \
547 V(V32x4AllTrue, Operator::kNoProperties, 1, 0, 1) \
548 V(V16x8AnyTrue, Operator::kNoProperties, 1, 0, 1) \
549 V(V16x8AllTrue, Operator::kNoProperties, 1, 0, 1) \
550 V(V8x16AnyTrue, Operator::kNoProperties, 1, 0, 1) \
551 V(V8x16AllTrue, Operator::kNoProperties, 1, 0, 1) \
552 V(I8x16Swizzle, Operator::kNoProperties, 2, 0, 1)
557 V(Word32Ctz, Operator::kNoProperties, 1, 0, 1) \
558 V(Word64Ctz, Operator::kNoProperties, 1, 0, 1) \
559 V(Word32Rol, Operator::kNoProperties, 2, 0, 1) \
560 V(Word64Rol, Operator::kNoProperties, 2, 0, 1) \
561 V(Word32ReverseBits, Operator::kNoProperties, 1, 0, 1) \
562 V(Word64ReverseBits, Operator::kNoProperties, 1, 0, 1) \
563 V(Int32AbsWithOverflow, Operator::kNoProperties, 1, 0, 2) \
564 V(Int64AbsWithOverflow, Operator::kNoProperties, 1, 0, 2) \
565 V(Word32Popcnt, Operator::kNoProperties, 1, 0, 1) \
566 V(Word64Popcnt, Operator::kNoProperties, 1, 0, 1) \
567 V(Float32RoundDown, Operator::kNoProperties, 1, 0, 1) \
568 V(Float64RoundDown, Operator::kNoProperties, 1, 0, 1) \
569 V(Float32RoundUp, Operator::kNoProperties, 1, 0, 1) \
570 V(Float64RoundUp, Operator::kNoProperties, 1, 0, 1) \
571 V(Float32RoundTruncate, Operator::kNoProperties, 1, 0, 1) \
572 V(Float64RoundTruncate, Operator::kNoProperties, 1, 0, 1) \
573 V(Float64RoundTiesAway, Operator::kNoProperties, 1, 0, 1) \
574 V(Float32RoundTiesEven, Operator::kNoProperties, 1, 0, 1) \
575 V(Float64RoundTiesEven, Operator::kNoProperties, 1, 0, 1)
580 V(Int32AddWithOverflow, Operator::kAssociative | Operator::kCommutative) \
581 V(Int32SubWithOverflow, Operator::kNoProperties) \
582 V(Int32MulWithOverflow, Operator::kAssociative | Operator::kCommutative) \
583 V(Int64AddWithOverflow, Operator::kAssociative | Operator::kCommutative) \
584 V(Int64SubWithOverflow, Operator::kNoProperties)
680 struct CachedOperator : public Operator {
681 CachedOperator(Operator::Properties properties, const char* mnemonic) in CachedOperator()
682 : Operator(op, properties, mnemonic, value_input_count, in CachedOperator()
689 struct CachedPureOperator : public Operator {
690 CachedPureOperator(Operator::Properties properties, const char* mnemonic) in CachedPureOperator()
691 : Operator(op, Operator::kPure | properties, mnemonic, value_input_count, in CachedPureOperator()
696 const Operator* GetCachedOperator() { in GetCachedOperator()
703 const Operator* GetCachedOperator(Operator::Properties properties, in GetCachedOperator()
706 static Operator::Properties const initial_properties = properties; in GetCachedOperator()
718 : Operator1(IrOpcode::kStackSlot, Operator::kNoDeopt | Operator::kNoThrow, in StackSlotOperator()
742 const Operator* MachineOperatorBuilder::Name() { \
745 Operator::kEliminatable | Operator::kNoRead | properties, #Name); \
753 : Operator1(IrOpcode::kWord32Sar, Operator::kPure, "Word32Sar", 2, 0, 0, in Word32SarOperator()
757 const Operator* MachineOperatorBuilder::Word32Sar(ShiftKind kind) { in Word32Sar()
769 : Operator1(IrOpcode::kWord64Sar, Operator::kPure, "Word64Sar", 2, 0, 0, in Word64SarOperator()
773 const Operator* MachineOperatorBuilder::Word64Sar(ShiftKind kind) { in Word64Sar()
785 : Operator1(IrOpcode::kLoad, Operator::kEliminatable, "Load", 2, 1, 1, 1, in LoadOperator()
792 : Operator1(IrOpcode::kPoisonedLoad, Operator::kEliminatable, in PoisonedLoadOperator()
800 : Operator1(IrOpcode::kUnalignedLoad, Operator::kEliminatable, in UnalignedLoadOperator()
809 Operator::kNoDeopt | Operator::kNoThrow, "ProtectedLoad", 2, in ProtectedLoadOperator()
818 ? Operator::kNoDeopt | Operator::kNoThrow in LoadTransformOperator()
819 : Operator::kEliminatable, in LoadTransformOperator()
831 ? Operator::kNoDeopt | Operator::kNoThrow in LoadLaneOperator()
832 : Operator::kEliminatable, in LoadLaneOperator()
841 Operator::kNoDeopt | Operator::kNoRead | Operator::kNoThrow, in StoreOperator()
850 Operator::kNoDeopt | Operator::kNoRead | Operator::kNoThrow, in UnalignedStoreOperator()
858 Operator::kNoDeopt | Operator::kNoRead | Operator::kNoThrow, in ProtectedStoreOperator()
867 Operator::kNoDeopt | Operator::kNoRead | Operator::kNoThrow, in StoreLaneOperator()
875 : Operator1(IrOpcode::kWord32AtomicLoad, Operator::kEliminatable, in Word32AtomicLoadOperator()
883 : Operator1(IrOpcode::kWord64AtomicLoad, Operator::kEliminatable, in Word64AtomicLoadOperator()
892 Operator::kNoDeopt | Operator::kNoRead | Operator::kNoThrow, in Word32AtomicStoreOperator()
900 Operator::kNoDeopt | Operator::kNoRead | Operator::kNoThrow, in Word64AtomicStoreOperator()
906 struct op##Operator : public Operator1<MachineType> { \
907 op##Operator() \
908 : Operator1(IrOpcode::k##op, Operator::kNoDeopt | Operator::kNoThrow, \
929 Operator::kNoDeopt | Operator::kNoThrow, in Word32AtomicCompareExchangeOperator()
938 Operator::kNoDeopt | Operator::kNoThrow, in Word64AtomicCompareExchangeOperator()
943 struct Word32AtomicPairLoadOperator : public Operator {
945 : Operator(IrOpcode::kWord32AtomicPairLoad, in Word32AtomicPairLoadOperator()
946 Operator::kNoDeopt | Operator::kNoThrow, in Word32AtomicPairLoadOperator()
950 struct Word32AtomicPairStoreOperator : public Operator {
952 : Operator(IrOpcode::kWord32AtomicPairStore, in Word32AtomicPairStoreOperator()
953 Operator::kNoDeopt | Operator::kNoThrow, in Word32AtomicPairStoreOperator()
958 struct Word32AtomicPair##op##Operator : public Operator { \
959 Word32AtomicPair##op##Operator() \
960 : Operator(IrOpcode::kWord32AtomicPair##op, \
961 Operator::kNoDeopt | Operator::kNoThrow, \
972 struct Word32AtomicPairCompareExchangeOperator : public Operator {
974 : Operator(IrOpcode::kWord32AtomicPairCompareExchange, in Word32AtomicPairCompareExchangeOperator()
975 Operator::kNoDeopt | Operator::kNoThrow, in Word32AtomicPairCompareExchangeOperator()
979 struct MemoryBarrierOperator : public Operator {
981 : Operator(IrOpcode::kMemoryBarrier, in MemoryBarrierOperator()
982 Operator::kNoDeopt | Operator::kNoThrow, "MemoryBarrier", 0, 1, in MemoryBarrierOperator()
991 struct BitcastWordToTaggedOperator : public Operator {
993 : Operator(IrOpcode::kBitcastWordToTagged, in BitcastWordToTaggedOperator()
994 Operator::kEliminatable | Operator::kNoWrite, in BitcastWordToTaggedOperator()
998 struct BitcastTaggedToWordOperator : public Operator {
1000 : Operator(IrOpcode::kBitcastTaggedToWord, in BitcastTaggedToWordOperator()
1001 Operator::kEliminatable | Operator::kNoWrite, in BitcastTaggedToWordOperator()
1005 struct BitcastMaybeObjectToWordOperator : public Operator {
1007 : Operator(IrOpcode::kBitcastTaggedToWord, in BitcastMaybeObjectToWordOperator()
1008 Operator::kEliminatable | Operator::kNoWrite, in BitcastMaybeObjectToWordOperator()
1012 struct TaggedPoisonOnSpeculationOperator : public Operator {
1014 : Operator(IrOpcode::kTaggedPoisonOnSpeculation, in TaggedPoisonOnSpeculationOperator()
1015 Operator::kEliminatable | Operator::kNoWrite, in TaggedPoisonOnSpeculationOperator()
1019 struct Word32PoisonOnSpeculationOperator : public Operator {
1021 : Operator(IrOpcode::kWord32PoisonOnSpeculation, in Word32PoisonOnSpeculationOperator()
1022 Operator::kEliminatable | Operator::kNoWrite, in Word32PoisonOnSpeculationOperator()
1026 struct Word64PoisonOnSpeculationOperator : public Operator {
1028 : Operator(IrOpcode::kWord64PoisonOnSpeculation, in Word64PoisonOnSpeculationOperator()
1029 Operator::kEliminatable | Operator::kNoWrite, in Word64PoisonOnSpeculationOperator()
1033 struct AbortCSAAssertOperator : public Operator {
1035 : Operator(IrOpcode::kAbortCSAAssert, Operator::kNoThrow, in AbortCSAAssertOperator()
1039 struct DebugBreakOperator : public Operator {
1041 : Operator(IrOpcode::kDebugBreak, Operator::kNoThrow, "DebugBreak", 0, 1, in DebugBreakOperator()
1045 struct UnsafePointerAddOperator : public Operator {
1047 : Operator(IrOpcode::kUnsafePointerAdd, Operator::kKontrol, in UnsafePointerAddOperator()
1054 : Operator1(IrOpcode::kStackPointerGreaterThan, Operator::kEliminatable, in StackPointerGreaterThanOperator()
1060 : Operator1(IrOpcode::kComment, Operator::kNoThrow | Operator::kNoWrite, in CommentOperator()
1075 const Operator* MachineOperatorBuilder::UnalignedLoad(LoadRepresentation rep) { in UnalignedLoad()
1087 const Operator* MachineOperatorBuilder::UnalignedStore( in UnalignedStore()
1106 : Operator1(IrOpcode::kTruncateFloat32ToUint32, Operator::kPure, in TruncateFloat32ToUint32Operator()
1110 const Operator* MachineOperatorBuilder::TruncateFloat32ToUint32( in TruncateFloat32ToUint32()
1125 : Operator1(IrOpcode::kTruncateFloat32ToInt32, Operator::kPure, in TruncateFloat32ToInt32Operator()
1129 const Operator* MachineOperatorBuilder::TruncateFloat32ToInt32( in TruncateFloat32ToInt32()
1154 const Operator* MachineOperatorBuilder::Name() { \
1163 const Operator* MachineOperatorBuilder::Load(LoadRepresentation rep) { in MACHINE_PURE_OP_LIST()
1175 const Operator* MachineOperatorBuilder::PoisonedLoad(LoadRepresentation rep) { in PoisonedLoad()
1187 const Operator* MachineOperatorBuilder::ProtectedLoad(LoadRepresentation rep) { in ProtectedLoad()
1199 const Operator* MachineOperatorBuilder::LoadTransform( in LoadTransform()
1218 const Operator* MachineOperatorBuilder::LoadLane(MemoryAccessKind kind, in LoadLane()
1252 const Operator* MachineOperatorBuilder::StoreLane(MemoryAccessKind kind, in StoreLane()
1285 const Operator* MachineOperatorBuilder::StackSlot(int size, int alignment) { in StackSlot()
1299 const Operator* MachineOperatorBuilder::StackSlot(MachineRepresentation rep, in StackSlot()
1304 const Operator* MachineOperatorBuilder::Store(StoreRepresentation store_rep) { in Store()
1338 const Operator* MachineOperatorBuilder::ProtectedStore( in ProtectedStore()
1355 const Operator* MachineOperatorBuilder::UnsafePointerAdd() { in UnsafePointerAdd()
1359 const Operator* MachineOperatorBuilder::StackPointerGreaterThan( in StackPointerGreaterThan()
1378 const Operator* MachineOperatorBuilder::BitcastWordToTagged() { in BitcastWordToTagged()
1382 const Operator* MachineOperatorBuilder::BitcastTaggedToWord() { in BitcastTaggedToWord()
1386 const Operator* MachineOperatorBuilder::BitcastMaybeObjectToWord() { in BitcastMaybeObjectToWord()
1390 const Operator* MachineOperatorBuilder::AbortCSAAssert() { in AbortCSAAssert()
1394 const Operator* MachineOperatorBuilder::DebugBreak() { in DebugBreak()
1398 const Operator* MachineOperatorBuilder::Comment(const char* msg) { in Comment()
1402 const Operator* MachineOperatorBuilder::MemBarrier() { in MemBarrier()
1406 const Operator* MachineOperatorBuilder::Word32AtomicLoad( in Word32AtomicLoad()
1419 const Operator* MachineOperatorBuilder::Word32AtomicStore( in Word32AtomicStore()
1431 const Operator* MachineOperatorBuilder::Word32AtomicExchange(MachineType type) { in Word32AtomicExchange()
1443 const Operator* MachineOperatorBuilder::Word32AtomicCompareExchange( in Word32AtomicCompareExchange()
1456 const Operator* MachineOperatorBuilder::Word32AtomicAdd(MachineType type) { in Word32AtomicAdd()
1468 const Operator* MachineOperatorBuilder::Word32AtomicSub(MachineType type) { in Word32AtomicSub()
1480 const Operator* MachineOperatorBuilder::Word32AtomicAnd(MachineType type) { in Word32AtomicAnd()
1492 const Operator* MachineOperatorBuilder::Word32AtomicOr(MachineType type) { in Word32AtomicOr()
1504 const Operator* MachineOperatorBuilder::Word32AtomicXor(MachineType type) { in Word32AtomicXor()
1516 const Operator* MachineOperatorBuilder::Word64AtomicLoad( in Word64AtomicLoad()
1529 const Operator* MachineOperatorBuilder::Word64AtomicStore( in Word64AtomicStore()
1541 const Operator* MachineOperatorBuilder::Word64AtomicAdd(MachineType type) { in Word64AtomicAdd()
1553 const Operator* MachineOperatorBuilder::Word64AtomicSub(MachineType type) { in Word64AtomicSub()
1565 const Operator* MachineOperatorBuilder::Word64AtomicAnd(MachineType type) { in Word64AtomicAnd()
1577 const Operator* MachineOperatorBuilder::Word64AtomicOr(MachineType type) { in Word64AtomicOr()
1589 const Operator* MachineOperatorBuilder::Word64AtomicXor(MachineType type) { in Word64AtomicXor()
1601 const Operator* MachineOperatorBuilder::Word64AtomicExchange(MachineType type) { in Word64AtomicExchange()
1613 const Operator* MachineOperatorBuilder::Word64AtomicCompareExchange( in Word64AtomicCompareExchange()
1626 const Operator* MachineOperatorBuilder::Word32AtomicPairLoad() { in Word32AtomicPairLoad()
1630 const Operator* MachineOperatorBuilder::Word32AtomicPairStore() { in Word32AtomicPairStore()
1634 const Operator* MachineOperatorBuilder::Word32AtomicPairAdd() { in Word32AtomicPairAdd()
1638 const Operator* MachineOperatorBuilder::Word32AtomicPairSub() { in Word32AtomicPairSub()
1642 const Operator* MachineOperatorBuilder::Word32AtomicPairAnd() { in Word32AtomicPairAnd()
1646 const Operator* MachineOperatorBuilder::Word32AtomicPairOr() { in Word32AtomicPairOr()
1650 const Operator* MachineOperatorBuilder::Word32AtomicPairXor() { in Word32AtomicPairXor()
1654 const Operator* MachineOperatorBuilder::Word32AtomicPairExchange() { in Word32AtomicPairExchange()
1658 const Operator* MachineOperatorBuilder::Word32AtomicPairCompareExchange() { in Word32AtomicPairCompareExchange()
1662 const Operator* MachineOperatorBuilder::TaggedPoisonOnSpeculation() { in TaggedPoisonOnSpeculation()
1666 const Operator* MachineOperatorBuilder::Word32PoisonOnSpeculation() { in Word32PoisonOnSpeculation()
1670 const Operator* MachineOperatorBuilder::Word64PoisonOnSpeculation() { in Word64PoisonOnSpeculation()
1675 const Operator* MachineOperatorBuilder::Type##ExtractLane##Sign( \
1679 IrOpcode::k##Type##ExtractLane##Sign, Operator::kPure, "Extract lane", \
1693 const Operator* MachineOperatorBuilder::Type##ReplaceLane( \
1697 Operator::kPure, "Replace lane", 2, \
1703 const Operator* MachineOperatorBuilder::I64x2ReplaceLaneI32Pair( in SIMD_LANE_OP_LIST()
1707 Operator::kPure, "Replace lane", 3, 0, in SIMD_LANE_OP_LIST()
1733 S128ImmediateParameter const& S128ImmediateParameterOf(Operator const* op) { in S128ImmediateParameterOf()
1739 const Operator* MachineOperatorBuilder::S128Const(const uint8_t value[16]) { in S128Const()
1741 IrOpcode::kS128Const, Operator::kPure, "Immediate", 0, 0, 0, 1, 0, 0, in S128Const()
1745 const Operator* MachineOperatorBuilder::I8x16Shuffle( in I8x16Shuffle()
1748 IrOpcode::kI8x16Shuffle, Operator::kPure, "Shuffle", 2, 0, 0, 1, 0, 0, in I8x16Shuffle()
1752 StackCheckKind StackCheckKindOf(Operator const* op) { in StackCheckKindOf()