Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 1367f4779cf67c8c7770cb44562755a1966b1286
https://github.com/WebKit/WebKit/commit/1367f4779cf67c8c7770cb44562755a1966b1286
Author: Yusuke Suzuki <[email protected]>
Date: 2026-05-03 (Sun, 03 May 2026)
Changed paths:
M Source/JavaScriptCore/assembler/ARM64Assembler.h
M Source/JavaScriptCore/assembler/MacroAssemblerARM64.h
M Source/JavaScriptCore/b3/B3LowerToAir.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
Log Message:
-----------
[JSC] Add multiply-accumulate instruction selection
https://bugs.webkit.org/show_bug.cgi?id=313925
rdar://176122039
Reviewed by Yijia Huang.
This patch adds lowering of multiply-accumulate instructions on ARM64.
This is like SMLAL,
https://www.scs.stanford.edu/~zyedidia/arm64/smlal_advsimd_vec.html
Basically, this one is
acc += MulLow(a, b)
In B3LowerToAir, we perform pattern matching and use this instead, which
attempt to perform multiply and add when we can use accumulating pattern.
Tests: Source/JavaScriptCore/b3/testb3_1.cpp
Source/JavaScriptCore/b3/testb3_7.cpp
* Source/JavaScriptCore/assembler/ARM64Assembler.h:
* Source/JavaScriptCore/assembler/MacroAssemblerARM64.h:
(JSC::MacroAssemblerARM64::vectorMulAddLow):
(JSC::MacroAssemblerARM64::vectorMulAddHigh):
* Source/JavaScriptCore/b3/B3LowerToAir.cpp:
* Source/JavaScriptCore/b3/air/AirOpcode.opcodes:
* Source/JavaScriptCore/b3/testb3.h:
* Source/JavaScriptCore/b3/testb3_1.cpp:
(run):
* Source/JavaScriptCore/b3/testb3_7.cpp:
(accumulateExtmulLow):
(accumulateExtmulHigh):
(testVectorMulAddLowSimple):
(testVectorMulAddLowDoubled):
(testVectorMulAddLowTwoMuls):
(testVectorMulAddLowBlaMka):
(testVectorMulAddHighSimple):
(testVectorMulAddHighDoubled):
(testVectorMulAddHighTwoMuls):
(testVectorMulAddMixedLowHigh):
Canonical link: https://commits.webkit.org/312491@main
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications