New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. Weβll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[SIMD] Intel support for swizzle and shuffle and fix extract_lane and replace_lane #7125
[SIMD] Intel support for swizzle and shuffle and fix extract_lane and replace_lane #7125
Conversation
EWS run on previous version of this PR (hash 829c9e4) |
829c9e4
to
0bb11d6
Compare
EWS run on previous version of this PR (hash 0bb11d6) |
0bb11d6
to
2e2be09
Compare
EWS run on previous version of this PR (hash 2e2be09) |
2e2be09
to
b063c3c
Compare
EWS run on previous version of this PR (hash b063c3c) |
b063c3c
to
2c999a9
Compare
EWS run on previous version of this PR (hash 2c999a9) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
r=me
2c999a9
to
8f5cea8
Compare
EWS run on previous version of this PR (hash 8f5cea8) |
8f5cea8
to
dea943f
Compare
EWS run on current version of this PR (hash dea943f) |
β¦ replace_lane https://bugs.webkit.org/show_bug.cgi?id=248728 rdar://102942396 Reviewed by Yusuke Suzuki. This patch aims for three tasks: 1. Add WASM SIMD operations `swizzle` and `shuffle`. https://github.com/WebAssembly/simd/blob/main/proposals/simd/SIMD.md#shuffling-using-immediate-indices 2. Refactor MacroAssemblerX86_64.h and X86Assembler.h for `pinsr` and `pextr`, where X86Assembler should do simple instruction emission only. And MacroAssemblerX86 should select the instruction. 3. Fix WASM SIMD operation `replace_lane`. Previously, the operation is implemented with instruction `pinsr` in AVX format but only passing three parameters which is wrong. https://www.felixcloutier.com/x86/pinsrb:pinsrd:pinsrq https://www.felixcloutier.com/x86/pinsrw https://www.officedaytime.com/simd512e/simdimg/si.php?f=pinsrb https://www.officedaytime.com/simd512e/simdimg/si.php?f=pinsrw https://www.officedaytime.com/simd512e/simdimg/si.php?f=pinsrd https://www.officedaytime.com/simd512e/simdimg/si.php?f=pinsrq * Source/JavaScriptCore/assembler/MacroAssemblerX86_64.h: (JSC::MacroAssemblerX86_64::vectorReplaceLane): (JSC::MacroAssemblerX86_64::vectorExtractLane): (JSC::MacroAssemblerX86_64::vectorSwizzle): * Source/JavaScriptCore/assembler/X86Assembler.h: (JSC::X86Assembler::pinsrb): (JSC::X86Assembler::pinsrw): (JSC::X86Assembler::pinsrd): (JSC::X86Assembler::pinsrq): (JSC::X86Assembler::insertps): (JSC::X86Assembler::unpcklpd): (JSC::X86Assembler::vpextrb): (JSC::X86Assembler::vpextrw): (JSC::X86Assembler::vpextrd): (JSC::X86Assembler::vpextrq): (JSC::X86Assembler::X86InstructionFormatter::SingleInstructionBufferWriter::memoryModRM): (JSC::X86Assembler::pinsr): Deleted. (JSC::X86Assembler::pextr): Deleted. (JSC::X86Assembler::vextractps): Deleted. * Source/JavaScriptCore/b3/air/AirOpcode.opcodes: * Source/JavaScriptCore/wasm/WasmAirIRGenerator.cpp: (JSC::Wasm::AirIRGenerator::addReplaceLane): Canonical link: https://commits.webkit.org/257400@main
dea943f
to
cef394f
Compare
Committed 257400@main (cef394f): https://commits.webkit.org/257400@main Reviewed commits have been landed. Closing PR #7125 and removing active labels. |
cef394f
dea943f
π§ͺ ios-wk2π§ͺ gtk-wk2π§ͺ api-iosπ§ͺ mac-wk1π§ͺ api-gtkπ§ͺ mac-wk2π§ͺ mac-AS-debug-wk2π§ͺ jsc-armv7-tests