9a68fa13fe
This patch implements f32x4.pmin, f32x4.pmax, f64x2.pmin, and f64x2.pmax for x64 and interpreter. Pseudo-min and Pseudo-max instructions were proposed in https://github.com/WebAssembly/simd/pull/122. These instructions exactly match std::min and std::max in C++ STL, and thus have different semantics from the existing min and max. The instruction-selector for x64 switches the operands around, because it allows for defining the dst to be same as first (really the second input node), allowing better codegen. For example, b = f32x4.pmin(a, b) directly maps to vminps(b, b, a) or minps(b, a), as long as we can define dst == b, and switching the instruction operands around allows us to do that. Bug: v8:10501 Change-Id: I06f983fc1764caf673e600ac91d9c0ac5166e17e Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2186630 Commit-Queue: Zhi An Ng <zhin@chromium.org> Reviewed-by: Tobias Tebbi <tebbi@chromium.org> Reviewed-by: Deepti Gandluri <gdeepti@chromium.org> Cr-Commit-Position: refs/heads/master@{#67688} |
||
---|---|---|
.. | ||
OWNERS | ||
test-c-wasm-entry.cc | ||
test-compilation-cache.cc | ||
test-gc.cc | ||
test-grow-memory.cc | ||
test-jump-table-assembler.cc | ||
test-liftoff-inspection.cc | ||
test-run-wasm-64.cc | ||
test-run-wasm-asmjs.cc | ||
test-run-wasm-atomics64.cc | ||
test-run-wasm-atomics.cc | ||
test-run-wasm-bulk-memory.cc | ||
test-run-wasm-exceptions.cc | ||
test-run-wasm-interpreter.cc | ||
test-run-wasm-js.cc | ||
test-run-wasm-module.cc | ||
test-run-wasm-sign-extension.cc | ||
test-run-wasm-simd-liftoff.cc | ||
test-run-wasm-simd-scalar-lowering.cc | ||
test-run-wasm-simd.cc | ||
test-run-wasm.cc | ||
test-streaming-compilation.cc | ||
test-wasm-breakpoints.cc | ||
test-wasm-codegen.cc | ||
test-wasm-debug-evaluate.cc | ||
test-wasm-import-wrapper-cache.cc | ||
test-wasm-serialization.cc | ||
test-wasm-shared-engine.cc | ||
test-wasm-stack.cc | ||
test-wasm-trap-position.cc | ||
wasm-atomics-utils.h | ||
wasm-run-utils.cc | ||
wasm-run-utils.h |