• Zhi An Ng's avatar
    [wasm-simd][scalar-lowering] Fix replacement for call nodes · 9b451422
    Zhi An Ng authored
    all_true, any_true, bitmask, and extract_lane all replace a simd type
    with single scalar, so we don't need to set nullptr for the extraneous
    lane, and can set num_lanes to 1.
    
    So for a call node with any of the above nodes as one of its value, we
    were incorrectly replacing the extract lane node with 4 nodes - it
    should only be 1 scalar node.
    
    Drive by fix for LowerShift, it needs to check if the shift value node
    has replacement (e.g. if it is an extract lane node).
    
    Also we weren't setting the lowered type of a kPhi node. This can be a
    problem if the output of a Phi node is used by a F32x4ExtractLane and
    I32x4ExtractLane, which is possible (and type correct since both take
    v128). This will require that the output be both a float and a int,
    which is impossible. So fix it to Int32x4, and the uses of the phi nodes
    will convert appropriately.
    
    Added a test for the call node. Also tested this code by running one of
    our benchmarks, which exercises the Phi logic.
    
    Bug: v8:10507
    Change-Id: I01a76b349ba9d0e157b64e737bdb4c70f96aa954
    Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2536952
    Commit-Queue: Zhi An Ng <zhin@chromium.org>
    Reviewed-by: 's avatarBill Budge <bbudge@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#71218}
    9b451422
Name
Last commit
Last update
build_overrides Loading commit data...
custom_deps Loading commit data...
docs Loading commit data...
gni Loading commit data...
include Loading commit data...
infra Loading commit data...
samples Loading commit data...
src Loading commit data...
test Loading commit data...
testing Loading commit data...
third_party Loading commit data...
tools Loading commit data...
.clang-format Loading commit data...
.clang-tidy Loading commit data...
.editorconfig Loading commit data...
.flake8 Loading commit data...
.git-blame-ignore-revs Loading commit data...
.gitattributes Loading commit data...
.gitignore Loading commit data...
.gn Loading commit data...
.vpython Loading commit data...
.ycm_extra_conf.py Loading commit data...
AUTHORS Loading commit data...
BUILD.gn Loading commit data...
CODE_OF_CONDUCT.md Loading commit data...
COMMON_OWNERS Loading commit data...
DEPS Loading commit data...
DIR_METADATA Loading commit data...
ENG_REVIEW_OWNERS Loading commit data...
INFRA_OWNERS Loading commit data...
INTL_OWNERS Loading commit data...
LICENSE Loading commit data...
LICENSE.fdlibm Loading commit data...
LICENSE.strongtalk Loading commit data...
LICENSE.v8 Loading commit data...
MIPS_OWNERS Loading commit data...
OWNERS Loading commit data...
PPC_OWNERS Loading commit data...
PRESUBMIT.py Loading commit data...
README.md Loading commit data...
S390_OWNERS Loading commit data...
WATCHLISTS Loading commit data...
codereview.settings Loading commit data...