Bug 18489 – [REG 2.073]Internal error: dmd/backend/cgcod.c 1688

Status
RESOLVED
Resolution
FIXED
Severity
regression
Priority
P1
Component
dmd
Product
D
Version
D2
Platform
x86_64
OS
Linux
Creation time
2018-02-22T10:17:21Z
Last change time
2018-03-26T02:26:01Z
Assigned to
No Owner
Creator
Daniel Kozak

Comments

Comment #0 by kozzi11 — 2018-02-22T10:17:21Z
this code: import core.simd; double dot (double2 a, double2 b) { double r = a.ptr[0] * b.ptr[0] + a.ptr[1] * b.ptr[1]; return r; } void main(){} when compiling with -O will cause ICE
Comment #1 by bitter.taste — 2018-02-22T11:25:22Z
More codegen bugs, cool. Here's [1] the culprit, the problem is the following: ``` a is fastpar and using register XMM1 __a_8 is fastpar and using register NOREG ``` The latter _should_ be the second half of the `a' parameter, I don't know if the NOREG is right here. [1] https://github.com/dlang/dmd/blob/e439e910f344359456da9bef0df2a842020831dd/src/dmd/backend/cod1.c#L4768,L4772
Comment #2 by bugzilla — 2018-03-26T02:23:19Z
Comment #3 by github-bugzilla — 2018-03-26T02:26:00Z
Commits pushed to master at https://github.com/dlang/dmd https://github.com/dlang/dmd/commit/65eed9c366c3a07f72152603cdb5f047e6d8948c Fix issue 18489 - SROA w/ vector arguments Since we can't easily slice the contents of a XMM register avoid slicing symbols passed in such registers. https://github.com/dlang/dmd/commit/a142adda22e2f7194f1fd85cbffc6e48624ef06f Merge pull request #8057 from LemonBoy/b18489 Fix issue 18489 - SROA w/ vector arguments