[webkit-changes] [WebKit/WebKit] 5236c9: Implement relaxed SIMD madd and nmadd instructions

Daniel Liu noreply at github.com
Tue Jun 20 10:20:36 PDT 2023


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 5236c954e0b8cc779c14498d7530ff8d59b7d0a0
      https://github.com/WebKit/WebKit/commit/5236c954e0b8cc779c14498d7530ff8d59b7d0a0
  Author: Daniel Liu <danlliu at umich.edu>
  Date:   2023-06-20 (Tue, 20 Jun 2023)

  Changed paths:
    A JSTests/wasm/stress/simd-const-relaxed-f32-madd.js
    A JSTests/wasm/stress/simd-const-relaxed-f64-madd.js
    M Source/JavaScriptCore/assembler/ARM64Assembler.h
    M Source/JavaScriptCore/assembler/MacroAssemblerARM64.h
    M Source/JavaScriptCore/assembler/MacroAssemblerX86_64.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/wasm/WasmAirIRGenerator64.cpp
    M Source/JavaScriptCore/wasm/WasmB3IRGenerator.cpp
    M Source/JavaScriptCore/wasm/WasmBBQJIT.cpp
    M Source/JavaScriptCore/wasm/WasmFunctionParser.h
    M Source/JavaScriptCore/wasm/WasmSIMDOpcodes.h

  Log Message:
  -----------
  Implement relaxed SIMD madd and nmadd instructions
https://bugs.webkit.org/show_bug.cgi?id=258047
rdar://110736062

Reviewed by Justin Michaud.

Added implementation and tests for f32x4.relaxed_madd, f32x4.relaxed_nmadd, f64x2.relaxed_madd, f64x2.relaxed_nmadd.

* JSTests/wasm/stress/simd-const-relaxed-f32-madd.js: Added.
(from.string_appeared_here.import.as.assert.from.string_appeared_here.let.wat.module.func.export.string_appeared_here.param.sz.i32.result.f32.i32.const.9.drop.v128.const.f32x4.5.0.4.0.37.0.6.0.v128.const.f32x4.22.0.25.0.3.0.20.0.v128.const.f32x4.1.0.1.0.0.0.1.0.f32x4.relaxed_madd.return.f32x4.extract_lane.1.func.export.string_appeared_here.param.sz.i32.result.f32.i32.const.9.drop.v128.const.f32x4.5.0.4.0.37.0.6.0.v128.const.f32x4.22.0.25.0.3.0.20.0.v128.const.f32x4.1.0.1.0.0.0.1.0.f32x4.relaxed_nmadd.return.f32x4.extract_lane.3.async test):
* JSTests/wasm/stress/simd-const-relaxed-f64-madd.js: Added.
(from.string_appeared_here.import.as.assert.from.string_appeared_here.let.wat.module.func.export.string_appeared_here.param.sz.i32.result.f64.i32.const.9.drop.v128.const.f64x2.28.0.24.0.v128.const.f64x2.10.0.20.0.v128.const.f64x2.1.0.2.0.f64x2.relaxed_madd.return.f64x2.extract_lane.0.func.export.string_appeared_here.param.sz.i32.result.f64.i32.const.9.drop.v128.const.f64x2.28.0.24.0.v128.const.f64x2.10.0.20.0.v128.const.f64x2.1.0.2.0.f64x2.relaxed_nmadd.return.f64x2.extract_lane.1.async test):
* Source/JavaScriptCore/assembler/ARM64Assembler.h:
* Source/JavaScriptCore/assembler/MacroAssemblerARM64.h:
(JSC::MacroAssemblerARM64::vectorFusedMulAdd):
(JSC::MacroAssemblerARM64::vectorFusedNegMulAdd):
* Source/JavaScriptCore/assembler/MacroAssemblerX86_64.h:
(JSC::MacroAssemblerX86_64::vectorMulAdd):
* Source/JavaScriptCore/b3/B3LowerToAir.cpp:
* Source/JavaScriptCore/b3/B3Opcode.cpp:
(WTF::printInternal):
* 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/wasm/WasmAirIRGenerator64.cpp:
(JSC::Wasm::AirIRGenerator64::addSIMDRelaxedFMA):
* Source/JavaScriptCore/wasm/WasmB3IRGenerator.cpp:
(JSC::Wasm::B3IRGenerator::addSIMDRelaxedFMA):
* Source/JavaScriptCore/wasm/WasmBBQJIT.cpp:
(JSC::Wasm::BBQJIT::addSIMDRelaxedFMA):
* Source/JavaScriptCore/wasm/WasmFunctionParser.h:
(JSC::Wasm::FunctionParser<Context>::simd):
* Source/JavaScriptCore/wasm/WasmSIMDOpcodes.h:
(JSC::dumpSIMDLaneOperation):
(JSC::isRelaxedSIMDOperation):

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




More information about the webkit-changes mailing list