Bug 7617 – Add support for 64bit and 256bit vectors

Status
RESOLVED
Resolution
WONTFIX
Severity
enhancement
Priority
P2
Component
dmd
Product
D
Version
D2
Platform
All
OS
All
Creation time
2012-03-01T00:51:00Z
Last change time
2016-11-20T08:09:44Z
Keywords
SIMD
Assigned to
nobody
Creator
turkeyman

Comments

Comment #0 by turkeyman — 2012-03-01T00:51:26Z
Many SSE opcodes interact with MMX regs, that is, 128bit vectors interacting with 64bit vectors. We currently have no expression of the MMX regs in the language. Consider adding float2, short4, etc? AVX is common now, has 256bit regs, I'd also like to start making use of this architecture.
Comment #1 by bugzilla — 2012-03-01T11:52:59Z
I don't see any need to support MMX. I think it is completely superceded by XMM.
Comment #2 by WorksOnMyMachine — 2012-03-01T12:01:14Z
FYI info: MMX itself is a big pain in in x86 mode, as it shares registers with the FPU stack and all MMX code needs to flush the register state before calling FPU functions, and the compiler also needs to not interleave the generated code. SSE2 supercedes MMX, it just expands everything from 64 to 128 bit, likewise for x64 (as SSE2 is the absolute minspec for x64) SSE2 is a good minspec cutoff for simd support on x86, since it includes the integer ops and doubles. At my job we have minspec'd SSE2 support for our games starting with Brothers in Arms: Hell's Highway which was released in Oct 2008.
Comment #3 by turkeyman — 2012-03-01T12:26:28Z
I can buy possibly not supporting old MMX regs, but AVX is important. That said, MMX is a physical feature in the x86 architecture, and it's also not the only architecture with 64bit vectors, so I'd prefer to not see the type definition ignored outright. Ie. GDC can't implement a type that the language refuses to define. Perhaps just define the types and leave them unsupported in DMD so Iain can hook them up on GDC, since it already does support them all, or can he already do that easily with the code how it is now? I thought I saw some hardcoded widths in there...
Comment #4 by bugzilla — 2012-03-01T13:41:22Z
Sure, I agree that AVX support is important.
Comment #5 by turkeyman — 2012-04-15T08:37:55Z
I just want to note, we will be targeting the AVX architecture. We are using GDC, so functioning support in DMD is not important in the short term, only definition of the types that GDC can hook up to the backend.
Comment #6 by bugzilla — 2016-11-20T08:09:44Z
MMX is pretty dead. Until some compelling reason comes up to support it, I'm going to mark this WONTFIX.