With dmd 2.100-beta.1,
consider the following program:
-------- main.d -----------
import core.simd;
long2 _mm_srl_epi64 ()
{
long2 r = void;
r[0] = 1;
return r;
}
void main(string[] args)
{
}
---------------------------
For an ICE, build with:
$ dmd -m64 -O main.d
DMD crash silently with error code -1073741795.
Removing the = void, or -O, workaround the bug.
Older DMD like 2.095.1 displays the error instead:
main.d(7): Error: variable __r_8 used before set
Comment #1 by dlang-bot — 2022-04-24T02:17:20Z
@WalterBright created dlang/dmd pull request #14025 "fix Issue 23047 - [ICE][SIMD] Do not SROA vector types" fixing this issue:
- fix Issue 23047 - [ICE][SIMD] Do not SROA vector types
https://github.com/dlang/dmd/pull/14025
Comment #2 by dlang-bot — 2022-04-28T15:33:43Z
dlang/dmd pull request #14025 "fix Issue 23047 - [ICE][SIMD] Do not SROA vector types" was merged into stable:
- cc1298883e04e6587832f5576cba2b9e68d4ffef by Walter Bright:
fix Issue 23047 - [ICE][SIMD] Do not SROA vector types
https://github.com/dlang/dmd/pull/14025
Comment #3 by dlang-bot — 2022-05-05T21:04:19Z
dlang/dmd pull request #14064 "merge stable" was merged into master:
- d55556ef78effb9c4d2dd084a38b74fbf5f7b43a by Walter Bright:
fix Issue 23047 - [ICE][SIMD] Do not SROA vector types (#14025)
fix Issue 23047 - [ICE][SIMD] Do not SROA vector types
Signed-off-by: Razvan Nitu <[email protected]>
Merged-on-behalf-of: Razvan Nitu <[email protected]>
https://github.com/dlang/dmd/pull/14064