• bbudge's avatar
    [WASM SIMD] Implement packing and unpacking integer conversions. · dbfc0300
    bbudge authored
    - Adds WASM opcodes I32x4SConvertI16x8Low, I32x4SConvertI16x8High,
      I32x4UConvertI16x8Low, I32x4UConvertI16x8High, which unpack half of
      an I16x8 register into a whole I32x4 register, with signed or unsigned
      extension. Having separate Low/High opcodes works around the difficulty
      of having multiple output registers, which would be necessary if we unpacked
      the entire I16x8 register.
    
    - Adds WASM opcodes I16x8SConvertI8x16Low, I16x8SConvertI8x16High,
      I16x8UConvertI8x16Low, I16x8UConvertI8x16High, similarly to above.
    
    - Adds WASM opcodes I16x8SConvertI32x4, I16x8UConvertI32x4,
      I8x16SConvert16x8, I8x16UConvertI16x8, which pack two source registers
      into a single destination register with signed or unsigned saturation. These
      could have been separated into half operations, but this is simpler to
      implement with SSE, AVX, and is acceptable on ARM. It also avoids adding
      operations that only modify half of their destination register.
    
    - Implements these opcodes for ARM.
    
    LOG=N
    BUG=v8:6020
    
    Review-Url: https://codereview.chromium.org/2800523002
    Cr-Commit-Position: refs/heads/master@{#44541}
    dbfc0300
Name
Last commit
Last update
..
benchmarks Loading commit data...
cctest Loading commit data...
common Loading commit data...
debugger Loading commit data...
fuzzer Loading commit data...
inspector Loading commit data...
intl Loading commit data...
js-perf-test Loading commit data...
memory Loading commit data...
message Loading commit data...
mjsunit Loading commit data...
mozilla Loading commit data...
preparser Loading commit data...
promises-aplus Loading commit data...
simdjs Loading commit data...
test262 Loading commit data...
unittests Loading commit data...
webkit Loading commit data...
BUILD.gn Loading commit data...
bot_default.gyp Loading commit data...
bot_default.isolate Loading commit data...
default.gyp Loading commit data...
default.isolate Loading commit data...
optimize_for_size.gyp Loading commit data...
optimize_for_size.isolate Loading commit data...
perf.gyp Loading commit data...
perf.isolate Loading commit data...