Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: b349f3567217decce737ccd416e9845a6963cc92
      
https://github.com/WebKit/WebKit/commit/b349f3567217decce737ccd416e9845a6963cc92
  Author: Yusuke Suzuki <[email protected]>
  Date:   2026-03-15 (Sun, 15 Mar 2026)

  Changed paths:
    A JSTests/wasm/stress/simd-shift-immediate.js
    M Source/JavaScriptCore/assembler/ARM64Assembler.h
    M Source/JavaScriptCore/assembler/MacroAssemblerARM64.h
    M Source/JavaScriptCore/b3/B3LowerMacros.cpp
    M Source/JavaScriptCore/b3/B3LowerToAir.cpp
    M Source/JavaScriptCore/b3/B3Opcode.h
    M Source/JavaScriptCore/b3/B3ReduceStrength.cpp
    M Source/JavaScriptCore/b3/B3SIMDValue.h
    M Source/JavaScriptCore/b3/B3Validate.cpp
    M Source/JavaScriptCore/b3/B3Value.cpp
    M Source/JavaScriptCore/b3/B3Value.h
    M Source/JavaScriptCore/b3/B3ValueInlines.h
    M Source/JavaScriptCore/b3/B3ValueKey.cpp
    M Source/JavaScriptCore/b3/air/AirOpcode.opcodes
    M Source/JavaScriptCore/b3/testb3.h
    M Source/JavaScriptCore/b3/testb3_1.cpp
    M Source/JavaScriptCore/b3/testb3_7.cpp
    M Source/JavaScriptCore/wasm/WasmBBQJIT64.cpp

  Log Message:
  -----------
  [JSC] Use simple ARM64 shl, ushr, sshr
https://bugs.webkit.org/show_bug.cgi?id=309964
rdar://172571493

Reviewed by Keith Miller.

ARM64 has shl, ushr, sshr with immediate for SIMD. So we do not need to
support Vector shift operation in a complicated way. We add these
instructions support as vectorUshr8, vectorSshr8, vectorShl8, aligned to
x64. And use them in B3 and BBQJIT.

Thus we no longer need VectorShiftByVector, so drop it.

Tests: JSTests/wasm/stress/simd-shift-immediate.js
       Source/JavaScriptCore/b3/testb3_1.cpp
       Source/JavaScriptCore/b3/testb3_7.cpp

* JSTests/wasm/stress/simd-shift-immediate.js: Added.
(from.string_appeared_here.import.as.assert.from.string_appeared_here.async 
testI8x16):
(async testI16x8):
(async testI32x4):
(async testI64x2):
(async test):
* Source/JavaScriptCore/assembler/ARM64Assembler.h:
* Source/JavaScriptCore/assembler/MacroAssemblerARM64.h:
(JSC::MacroAssemblerARM64::vectorUshr8):
(JSC::MacroAssemblerARM64::vectorShl8):
* Source/JavaScriptCore/b3/B3LowerMacros.cpp:
* Source/JavaScriptCore/b3/B3LowerToAir.cpp:
* Source/JavaScriptCore/b3/B3Opcode.h:
* Source/JavaScriptCore/b3/B3ReduceStrength.cpp:
* Source/JavaScriptCore/b3/B3SIMDValue.h:
* Source/JavaScriptCore/b3/B3Validate.cpp:
* Source/JavaScriptCore/b3/B3Value.cpp:
(JSC::B3::Value::effects const):
(JSC::B3::Value::key const):
* Source/JavaScriptCore/b3/B3Value.h:
* Source/JavaScriptCore/b3/B3ValueInlines.h:
* Source/JavaScriptCore/b3/B3ValueKey.cpp:
(JSC::B3::ValueKey::materialize const):
* Source/JavaScriptCore/b3/air/AirOpcode.opcodes:
* Source/JavaScriptCore/b3/testb3.h:
* Source/JavaScriptCore/b3/testb3_1.cpp:
(run):
* Source/JavaScriptCore/b3/testb3_7.cpp:
(testVectorShlByOne):
(testVectorShlImmediateForLane):
(testVectorShlImmediate):
(testVectorShrImmediateForLane):
(testVectorShrImmediate):
(testVectorShiftByVectorShlByOne): Deleted.
* Source/JavaScriptCore/wasm/WasmBBQJIT64.cpp:
(JSC::Wasm::BBQJITImpl::BBQJIT::addSIMDShift):

Canonical link: https://commits.webkit.org/309289@main



To unsubscribe from these emails, change your notification settings at 
https://github.com/WebKit/WebKit/settings/notifications

Reply via email to