[Development] Updating x86 SIMD support in Qt

Thiago Macieira thiago.macieira at intel.com
Thu Jan 20 21:10:35 CET 2022


On Thursday, 20 January 2022 11:22:19 PST Lorn Potter wrote:
> It's like Jean-Michael says, 32 bit, but it's complicated.

Yeah, I can get that :)

>From what I've understood so far, WASM is not __x86_64__ but it might be 
__i386__. So far, that's not a problem. I don't think we use any assembly or 
non-vector intrinsic in general code (qnumeric.h would come to mind but those 
functions need to be constexpr).

That means we could support WASM as i386 ABI version 0: no vector operation 
support. We currently default to turning that on, so keeping an option to turn 
it back off is in the plans.

Additionally, looks like Emscripten has an option to transform the SSE 128-bit 
intrinsics into WASM 128-bit vector content. I don't personally have a problem 
with that, but WASM users might if the translation / emulation isn't very 
good. From a link that Morten provided, there are several operations we do use 
in our code today that are emulated slowly.

I do have a problem if you prevent me from using the 256-bit intrinsics. This 
this the whole point of this thread. I need the 256-bit intrinsics from AVX, 
AVX2 and AVX512 to be available and compile.

So my request is that the CI not prevent me from using those intrinsics in 
native x86. If they work with Emscripten, great; if they don't, then the 
support gets disabled in the CI.

-- 
Thiago Macieira - thiago.macieira (AT) intel.com
  Software Architect - Intel DPG Cloud Engineering





More information about the Development mailing list