Bug 9301 – using XMM.PSHUFD results in an internal compiler error

Status
RESOLVED
Resolution
FIXED
Severity
normal
Priority
P2
Component
dmd
Product
D
Version
D2
Platform
All
OS
All
Creation time
2013-01-12T07:03:00Z
Last change time
2013-11-23T12:36:44Z
Keywords
ice, pull, SIMD
Assigned to
nobody
Creator
jerro.public

Comments

Comment #0 by jerro.public — 2013-01-12T07:03:51Z
The following code causes an internal compiler error with DMD 2.061: import core.simd; void main() { int4 a; __simd(XMM.PSHUFD, a, 0x0); } The compiler outputs: Internal error: e2ir.c 3882
Comment #1 by jerro.public — 2013-01-12T07:55:56Z
This code probably shouldn't even compile, since pshufd needs to arguments, not one. But because the code results in an ICE, not an error message, I think this is a bug in the compiler.
Comment #2 by bugzilla — 2013-01-12T11:59:27Z
You are correct in that ICE's are always compiler bugs.
Comment #3 by yebblies — 2013-11-23T05:13:58Z
Reduced: void main() { __vector(void[16]) x = 0x0; }
Comment #4 by yebblies — 2013-11-23T05:30:55Z
The ice actually happens even on platforms with no simd. https://github.com/D-Programming-Language/dmd/pull/2863
Comment #5 by github-bugzilla — 2013-11-23T12:36:26Z
Commits pushed to master at https://github.com/D-Programming-Language/dmd https://github.com/D-Programming-Language/dmd/commit/0d60cae8f7d7bd3575f3c6464432c30fa9a952fc Fix Issue 9301 - using XMM.PSHUFD results in an internal compiler error https://github.com/D-Programming-Language/dmd/commit/fd49fb70083d8faddbf13f39bc4ecafad81040d5 Merge pull request #2863 from yebblies/issue9301 Issue 9301 - using XMM.PSHUFD results in an internal compiler error