1. 09 Oct, 2020 15 commits
  2. 08 Oct, 2020 22 commits
  3. 07 Oct, 2020 3 commits
    • Ng Zhi An's avatar
      [wasm-simd][scalar-lowering] Implement the rest of SimdType conversions · b87db517
      Ng Zhi An authored
      This fills out all possible combinations of SimdType conversions. The
      implementation is not the best, it uses existing conversions instead of
      creating new specific ones, but is sufficient, since we don't prioritize
      performance for lowering.
      
      I added if/else clauses to the existing implementation, so that the diff
      is easier to read. I will put up a follow-up to convert it into switch
      statements.
      
      Bug: chromium:1134898,v8:10507
      Change-Id: I5fcb3597882b0ea3084fdc79eb1dab9b8629044b
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2453462
      Commit-Queue: Zhi An Ng <zhin@chromium.org>
      Reviewed-by: 's avatarBill Budge <bbudge@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#70393}
      b87db517
    • Ng Zhi An's avatar
      [x64] Refactor pinsrb family of instructions · e30c50f3
      Ng Zhi An authored
      The existing macro assembler define Pinsrb, which expects 3 arguments:
      
      - XMMRegister dst
      - Register/Operand src
      - uint8_t imm
      
      which overwrites dst with src at lane specified by imm.
      
      That means we cannot use the AVX version, which has 4 arguments, and
      does not overwrite dst.
      
      This refactoring defines the 4 argument AVX version instead, and if AVX
      is not supported, fall back to the SSE version, and ensure that the
      value is copied over into dst first.
      
      For convenience, we define an overload with 3 arguments that duplicates
      dst, this replicates the SSE behavior, so that not all callers have to
      be updated.
      
      Bug: v8:10975, v8:10933
      Change-Id: I6f9b9d37fa08d3f5cff4f040ae7d5e1f0cf36455
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2444096
      Commit-Queue: Zhi An Ng <zhin@chromium.org>
      Reviewed-by: 's avatarBill Budge <bbudge@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#70392}
      e30c50f3
    • Ng Zhi An's avatar
      [wasm-simd] Fix lowering of load transform · f996d50d
      Ng Zhi An authored
      Load transform nodes can be effect inputs, so we need to update the node
      in place. Otherwise, if a load transform node is both an value and an
      effect input, only the value input will be updated with replacements,
      the effect input will still be the unlowered load transform node.
      This is because DefaultLowering only lowers value inputs.
      
      This is consistent with normal loads in the scalar lowering,
      and also how int64 does it.
      
      Bug: v8:10984,v8:10507
      Change-Id: I04b0f0b1cff95e39589de979ecae6cb4b085a3cf
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2453861Reviewed-by: 's avatarBill Budge <bbudge@chromium.org>
      Commit-Queue: Zhi An Ng <zhin@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#70391}
      f996d50d