v8/test
Zhi An Ng 7d7b25d95c [wasm-simd][x64] Optimize integer splats of constant 0
Integer splats (especially for sizes < 32-bits) does not directly
translate to a single instruction on x64. We can do better for special
values, like 0, which can be lowered to `xor dst dst`. We do this check
in the instruction selector, and emit a special opcode kX64S128Zero.

Also change the xor operation for kX64S128Zero from xorps to pxor. This
can help reduce any potential data bypass delay (search for this on
agner's microarchitecture manual for more details.). Since integer
splats are likely to be followed by integer ops, we should remain in the
integer domain, thus use pxor.

For i64x2.splat the codegen goes from:

  xorl rdi,rdi
  vmovq xmm0,rdi
  vmovddup xmm0,xmm0

to:

  vpxor xmm0,xmm0,xmm0

Also add a unittest to verify this optimization, and necessary
raw-assembler methods for the test.

Bug: v8:11093
Change-Id: I26b092032b6e672f1d5d26e35d79578ebe591cfe
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2516299
Reviewed-by: Tobias Tebbi <tebbi@chromium.org>
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#70977}
2020-11-05 01:56:30 +00:00
..
benchmarks [test] Skip some slow benchmarks 2020-09-14 08:43:44 +00:00
cctest Introduce Function::FunctionProtoToString() 2020-11-05 00:38:40 +00:00
common [wasm][interpreter] Check for shared memory in atomic.wait 2020-11-03 13:21:26 +00:00
debugger [inspector] Prepend isolateId to remoteObjectId 2020-10-18 10:39:57 +00:00
debugging Add DIR_METADATA files to v8. 2020-10-20 22:12:28 +00:00
fuzzer [inspector][fuzzer] Add inspector fuzzer 2020-11-02 14:29:08 +00:00
fuzzilli Fix unhandled promise rejections in REPRL mode 2020-09-30 13:34:23 +00:00
inspector [inspector][fuzzer] Add inspector fuzzer 2020-11-02 14:29:08 +00:00
intl Add DIR_METADATA files to v8. 2020-10-20 22:12:28 +00:00
js-perf-test [super property speed] Invert benchmark graphs 2020-08-31 09:24:46 +00:00
memory Reland^4 "[serializer] Allocate during deserialization" 2020-10-07 08:15:50 +00:00
message [flags] Remove --harmony-namespace-exports 2020-11-03 18:51:32 +00:00
mjsunit Reland "[x64][ia32] Add stack overflow check in InvokePrologue" 2020-11-04 19:26:09 +00:00
mkgrokdump [heap] Move BaseSpace into base-space.h 2020-06-19 09:38:24 +00:00
mozilla [Respect] Prefer inclusive terms 2020-06-22 18:11:23 +00:00
test262 [flags] Remove --harmony-promise-all-settled 2020-11-03 19:34:42 +00:00
torque Reland "[torque] typed context slot access" 2020-08-06 11:32:38 +00:00
unittests [wasm-simd][x64] Optimize integer splats of constant 0 2020-11-05 01:56:30 +00:00
wasm-api-tests wasm/c-api: fix the index of StackTraceFrame 2020-10-13 07:34:26 +00:00
wasm-js [wasm] Update spec tests 2020-10-09 17:51:14 +00:00
wasm-spec-tests Add DIR_METADATA files to v8. 2020-10-20 22:12:28 +00:00
webkit Disallow \8 and \9 in strict mode and template literals 2020-08-03 18:05:14 +00:00
BUILD.gn [turbofan] Make OSR and stack slots compatible 2020-10-05 17:41:02 +00:00
OWNERS Use relative paths to OWNERS files 2019-08-12 13:52:52 +00:00