Bug 12692 – Add support for __simd in for 32-bits targets
Status
RESOLVED
Resolution
FIXED
Severity
enhancement
Priority
P1
Component
dmd
Product
D
Version
D2
Platform
x86_64
OS
Windows
Creation time
2014-05-02T18:30:00Z
Last change time
2015-10-26T13:15:51Z
Assigned to
nobody
Creator
aliloko
Comments
Comment #0 by aliloko — 2014-05-02T18:30:51Z
If I understand currently, there is no way to have SSE2+ intrinsics in 32-bits targets.
The problem is that it makes using intrinsics dubious since many programs must be provided in 32 and 64-bits and be equally fast.
Moreover, some markets are 32-bits heavy.
Comment #1 by blah38621 — 2014-05-02T18:33:02Z
The backend doesn't have an issue emitting SIMD instructions on 32-bit, it's just the frontend that doesn't like it currently. Perhaps it's another simple over-limitation like labels in inline-asm?
Comment #2 by blah38621 — 2014-05-02T19:02:28Z
Alright, maybe I was wrong, it appears the backend did indeed have an issue with 32-bit SIMD intrinsics, the fix to https://issues.dlang.org/show_bug.cgi?id=7949 was what introduced the current error message that shows up for 32-bit non-OSX platforms....
Comment #3 by aliloko — 2014-05-04T11:26:20Z
Using this program:
----
import core.simd;
void main()
{
float4 a;
a = __simd(XMM.SQRTSS, a);
}
----
$dmd test.d
test.d(6): Error: undefined identifier __simd
$dmd test.d -m64
[compile as expected]