Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 34349713b4cbbb41b5cb3114da286ac900b7277f
      
https://github.com/WebKit/WebKit/commit/34349713b4cbbb41b5cb3114da286ac900b7277f
  Author: Yusuke Suzuki <[email protected]>
  Date:   2025-06-05 (Thu, 05 Jun 2025)

  Changed paths:
    M Source/JavaScriptCore/assembler/MacroAssemblerARM64.h
    M Source/JavaScriptCore/assembler/MacroAssemblerX86_64.h
    M Source/JavaScriptCore/assembler/X86Assembler.h
    M Source/JavaScriptCore/b3/B3LowerToAir.cpp
    M Source/JavaScriptCore/b3/B3Opcode.cpp
    M Source/JavaScriptCore/b3/B3Opcode.h
    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
    M Source/JavaScriptCore/wasm/WasmOMGIRGenerator.cpp
    M Source/WTF/WTF.xcodeproj/project.pbxproj
    M Source/WTF/wtf/CMakeLists.txt
    A Source/WTF/wtf/WasmSIMD128.h

  Log Message:
  -----------
  [JSC] Add VectorMulHigh / VectorMulLow
https://bugs.webkit.org/show_bug.cgi?id=293998
rdar://152548112

Reviewed by Justin Michaud.

This patch implements VectorMulHigh and VectorMulLow. wasm SIMD
extmul_high / extmul_low are well mapped to these B3 opcodes. Previously
we are using ExtractLow / ExtractHigh and VectorMul, but VectorMul is
really complicated and costly operation so it is significantly worse in
terms of performance. Having VectorMulHigh and VectorMulLow
significantly improves performance when it is used in particular on
ARM64.

* Source/JavaScriptCore/assembler/MacroAssemblerARM64.h:
(JSC::MacroAssemblerARM64::vectorMulHigh):
(JSC::MacroAssemblerARM64::vectorMulLow):
* Source/JavaScriptCore/assembler/MacroAssemblerX86_64.h:
(JSC::MacroAssemblerX86_64::vectorMulHigh):
(JSC::MacroAssemblerX86_64::vectorMulLow):
(JSC::MacroAssemblerX86_64::vectorUshl8):
(JSC::MacroAssemblerX86_64::vectorUshr8):
* Source/JavaScriptCore/assembler/X86Assembler.h:
(JSC::X86Assembler::vpunpcklbw_rrr):
(JSC::X86Assembler::vpunpckhbw_rrr):
(JSC::X86Assembler::vpunpckhwd_rrr):
(JSC::X86Assembler::vpunpcklwd_rrr):
(JSC::X86Assembler::vpunpckldq_rrr):
(JSC::X86Assembler::vpunpckhdq_rrr):
(JSC::X86Assembler::vpmuldq_rrr):
(JSC::X86Assembler::vpmulhuw_rrr):
(JSC::X86Assembler::vpmulhw_rrr):
(JSC::X86Assembler::vpmuludq_rrr):
* Source/JavaScriptCore/b3/B3LowerToAir.cpp:
* Source/JavaScriptCore/b3/B3Opcode.cpp:
(WTF::printInternal): Deleted.
* Source/JavaScriptCore/b3/B3Opcode.h:
* 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:
(testVectorMulHigh):
(testVectorMulLow):
* Source/JavaScriptCore/wasm/WasmBBQJIT64.cpp:
(JSC::Wasm::BBQJITImpl::BBQJIT::addSIMDExtmul):
* Source/JavaScriptCore/wasm/WasmOMGIRGenerator.cpp:
(JSC::Wasm::OMGIRGenerator::addSIMDExtmul):
* Source/WTF/WTF.xcodeproj/project.pbxproj:
* Source/WTF/wtf/CMakeLists.txt:
* Source/WTF/wtf/WasmSIMD128.h: Added.

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



To unsubscribe from these emails, change your notification settings at 
https://github.com/WebKit/WebKit/settings/notifications
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to