[Issue 21470] New: ICE core.simd when implementing _mm_set1_epi8
d-bugmail at puremagic.com
d-bugmail at puremagic.com
Fri Dec 11 07:11:11 UTC 2020
https://issues.dlang.org/show_bug.cgi?id=21470
Issue ID: 21470
Summary: ICE core.simd when implementing _mm_set1_epi8
Product: D
Version: D2
Hardware: x86_64
OS: All
Status: NEW
Severity: normal
Priority: P1
Component: dmd
Assignee: nobody at puremagic.com
Reporter: aliloko at gmail.com
Probably very similar bug than https://issues.dlang.org/show_bug.cgi?id=21469
but this time it is wrong codegen rather than crashing DMD.
HOW TO REPRODUCE
Using DMD 2.094.0, build this file with: dmd -m64 test2.d -g
------------ test2.d -------------------
import core.simd;
int4 _mm_set1_epi8 (byte a) pure @trusted
{
return cast(int4)(byte16(a));
}
void main(string[] args)
{
byte16 b = cast(byte16) _mm_set1_epi8(31);
for (int i = 0; i < 16; ++i)
assert(b.array[i] == 31); // fails
}
----------------------------------------
OUTPUT
core.exception.AssertError at test2.d(13): Assertion failure
we can workaround this bug:
-----------------------------------------
int4 _mm_set1_epi8 (byte a) pure @trusted
{
byte16 b = a; // on a separate line
return cast(int4)(b);
}
-----------------------------------------
--
More information about the Digitalmars-d-bugs
mailing list