loading wider vectors

20 views
Skip to first unread message

Sam Parker-Haynes

unread,
Oct 25, 2024, 7:23:14 AM10/25/24
to v8-dev
Hi,

I'm looking a lot at shuffles, in turboshaft, and thinking about how we can generate de-interleaving loads. For AArch64 we have the LD1, LD2, LD3 and LD4 instructions which can load in a maximum of 4x128-bit values.

To simplify my life, I'm currently only considering LD2, which will load 2x128-bits, so I figure I the existing Simd256 operations would be good for this. But these are all currently predicated on V8_ENABLE_WASM_SIMD256_REVEC, do they have to be..?

I only want to support wide vectors for loads, using Simd256Extract128Lane to produce usable values for arithmetic, etc... but are there any parts of the pipeline that make assumptions when 'revec' is enabled that will make life hard?

And when trying to support LD3 (3x128-bit) and LD4 (4x128-bit), would this approach still scale?

Thanks,
Sam

Matthias Liedtke

unread,
Oct 25, 2024, 11:38:01 AM10/25/24
to v8-...@googlegroups.com
Hi Sam,

As Wasm only supports Simd128, the Simd256 operations are part of an experimental (work-in-progress) implementation developed by Intel.
The progress is tracked here: https://crbug.com/42202660
When the build flag is set, it can be enabled with the flag --experimental-wasm-revectorize.

I don't think the current implementation tries to go further than 256 bit vector widths.

Cheers,
Matthias

--
--
v8-dev mailing list
v8-...@googlegroups.com
http://groups.google.com/group/v8-dev
---
You received this message because you are subscribed to the Google Groups "v8-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to v8-dev+un...@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/v8-dev/5a86a10c-4b95-4dcb-b7b1-efce05865b97n%40googlegroups.com.

Sam Parker-Haynes

unread,
Oct 28, 2024, 10:06:16 AM10/28/24
to v8-dev
Hi Matthias,

Thanks for the links. I will try a build with the Simd256 type and operations enabled, but without the revec phase, and see how things go.

Cheers,
Sam
Reply all
Reply to author
Forward
0 new messages