This line produces the following error:
void16 x = 1.0;
$ /opt/gdc/bin/gdc test.d -O2 -S -msse2
Assertion failed: tob->flags & TFLAGSfloating, file ../../gcc/d/dmd2/mtype.c, line 3290
This application has requested the Runtime to terminate it in an unusual way.
Please contact the application's support team for more information.
cc1d.exe: internal compiler error: Aborted
Please submit a full bug report,
with preprocessed source if appropriate.
See <https://bitbucket.org/goshawk/gdc/issues> for instructions.
This is possibly not the most informative message :)
Also, this line:
void16 x = 1;
compiles, performs effectively:
byte16 = 1;
I wonder if you should be able to assign an integer to void16 at all. Assigning the float fails with an interesting message, assigning an integer should probably fail too?
I think void16 should only be for blind casting between vector types, or storage of un-typed values.
Comment #1 by bugzilla — 2013-10-06T22:13:10Z
With DMD, the following program:
----
import core.simd;
void16 x = 1.0;
----
produces the error message:
Error: cannot implicitly convert expression (1.00000) of type double to __vector(void[16])
Which I believe is correct. It's possible this is a gdc only error - refile at
https://bitbucket.org/goshawk/gdc/issues
?
Comment #2 by turkeyman — 2013-10-07T03:34:50Z
(In reply to comment #1)
> With DMD, the following program:
>
> ----
> import core.simd;
> void16 x = 1.0;
> ----
>
> produces the error message:
>
> Error: cannot implicitly convert expression (1.00000) of type double to
> __vector(void[16])
>
> Which I believe is correct. It's possible this is a gdc only error - refile at
>
> https://bitbucket.org/goshawk/gdc/issues
>
> ?
Or it could have been fixed in the last almost-2-years :)
I'll try it again with GDC.
Comment #3 by ibuclaw — 2013-10-07T03:42:37Z
An ICE in mtype.c -> Front-end issue, not a gdc problem. :o)