v8/test/unittests
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
..
api [test] Use Template::Set with const char* name 2020-09-16 11:47:24 +00:00
asmjs [Respect] Prefer inclusive terms 2020-06-22 18:11:23 +00:00
assembler Reland "Reland "[deoptimizer] Change deopt entries into builtins"" 2020-10-21 06:01:38 +00:00
base platform, cppgc: Fix stack handling routines 2020-10-30 15:07:26 +00:00
codegen Reland "Reland "[deoptimizer] Change deopt entries into builtins"" 2020-10-21 06:01:38 +00:00
compiler [wasm-simd][x64] Optimize integer splats of constant 0 2020-11-05 01:56:30 +00:00
compiler-dispatcher [offthread] Disable compiler dispatcher tests 2020-10-28 15:18:23 +00:00
date Reland "[d8] Remove maximum workers limitation" 2019-07-30 07:56:17 +00:00
diagnostics Move unittest files 2019-05-27 08:52:23 +00:00
execution [sandbox] Access microtask queue in NativeContext via bottlenecks 2020-05-05 09:11:14 +00:00
heap Reland "cppgc-js: heap snapshot: Add logic for querying detachedness" 2020-10-29 09:18:21 +00:00
interpreter [class] Fix super call evaluation order 2020-10-29 16:08:34 +00:00
libplatform [Jobs API]: Cleanup migration of missing Jobs pieces. 2020-09-02 20:51:29 +00:00
logging Reland^2 "[heap] Move start of incremental marking in allocation" 2020-07-14 12:07:34 +00:00
numbers [cleanup] Replace simple typedefs by using 2019-05-27 12:39:49 +00:00
objects [regexp] Add 'l' flag to force experimental engine 2020-10-30 08:33:06 +00:00
parser Move remaining files in src/ 2019-05-24 18:24:36 +00:00
profiler [cpu-profiler] Add support for refcounting to StringsStorage 2020-03-30 19:08:06 +00:00
regress Reland "[runtime] Improve handling of enumeration index on global dictionary" 2020-03-02 15:41:15 +00:00
strings Fix some issues caught by _LIBCPP_DEBUG=0 2019-11-21 12:17:03 +00:00
tasks [offthread] Disable compiler dispatcher tests 2020-10-28 15:18:23 +00:00
torque [torque] use implicit parameters for template parameter inference 2020-07-31 15:11:09 +00:00
utils [wasm] Add templatized methods for static bounds checks 2020-06-24 03:41:28 +00:00
wasm Reland "[wasm] Disallow late enabling of trap handlers" 2020-10-26 16:33:11 +00:00
zone [zone] Final cleanup of zone allocations 2020-07-16 17:47:46 +00:00
BUILD.gn cppgc: Replace JSMember by TracedReference 2020-10-27 14:46:56 +00:00
DEPS Move unit tests to test/unittests. 2014-10-01 08:34:25 +00:00
run-all-unittests.cc [test] Configure GTest for thread-safe death tests. 2020-01-20 20:03:54 +00:00
test-helpers.cc [compile] Add an UnoptimizedCompileState class 2020-04-23 07:08:28 +00:00
test-helpers.h [compile] Add an UnoptimizedCompileState class 2020-04-23 07:08:28 +00:00
test-utils.cc [ptr-cmpr] Remove runtime Isolate allocation flag 2020-10-01 15:34:13 +00:00
test-utils.h [ptr-cmpr] Remove runtime Isolate allocation flag 2020-10-01 15:34:13 +00:00
testcfg.py [unittests] initialize the loop variable 2020-06-05 12:24:10 +00:00
unittests.status cppgc: Fix and re-enable weak container test 2020-10-22 20:37:37 +00:00