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

Reply via email to