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