• Ng Zhi An's avatar
    [wasm-simd][arm] Improve codegen for any_true · 9d1dda7e
    Ng Zhi An authored
    The codegen uses a bunch of vpmax to try and keep set bits around. The
    datatype for vpmax does not need to change for each instruction, since
    vpmax U32 will persist set bits just as well. This simplifies the
    instruction sequences for S1x8 and S1x16 anytrue.
    
    I added a test to check a special case when a f64x2 contains -0.0 (top
    bit set). A previous attempt to optimize codegen used floating point
    compare, which does not distinguish between 0.0 and -0.0. So -0.0 will
    compare equals to 0.0, and incorrect return 0 for anytrue.
    
    Change-Id: I66013796af08a666009e6b2d774ea7ee7bdfe1ad
    Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2203113
    Commit-Queue: Zhi An Ng <zhin@chromium.org>
    Reviewed-by: 's avatarBill Budge <bbudge@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#67875}
    9d1dda7e
Name
Last commit
Last update
..
arm Loading commit data...
arm64 Loading commit data...
ia32 Loading commit data...
mips Loading commit data...
mips64 Loading commit data...
ppc Loading commit data...
s390 Loading commit data...
x64 Loading commit data...
OWNERS Loading commit data...
code-generator-impl.h Loading commit data...
code-generator.cc Loading commit data...
code-generator.h Loading commit data...
frame-elider.cc Loading commit data...
frame-elider.h Loading commit data...
gap-resolver.cc Loading commit data...
gap-resolver.h Loading commit data...
instruction-codes.h Loading commit data...
instruction-scheduler.cc Loading commit data...
instruction-scheduler.h Loading commit data...
instruction-selector-impl.h Loading commit data...
instruction-selector.cc Loading commit data...
instruction-selector.h Loading commit data...
instruction.cc Loading commit data...
instruction.h Loading commit data...
jump-threading.cc Loading commit data...
jump-threading.h Loading commit data...
live-range-separator.cc Loading commit data...
live-range-separator.h Loading commit data...
move-optimizer.cc Loading commit data...
move-optimizer.h Loading commit data...
register-allocator-verifier.cc Loading commit data...
register-allocator-verifier.h Loading commit data...
register-allocator.cc Loading commit data...
register-allocator.h Loading commit data...
unwinding-info-writer.h Loading commit data...