Bug 17751 – Internal error: ddmd/backend/el.c 2927

Status
RESOLVED
Resolution
FIXED
Severity
blocker
Priority
P1
Component
dmd
Product
D
Version
D2
Platform
All
OS
All
Creation time
2017-08-13T16:46:36Z
Last change time
2017-10-14T07:19:30Z
Assigned to
No Owner
Creator
Iain Buclaw

Comments

Comment #0 by ibuclaw — 2017-08-13T16:46:36Z
Test case: --- import core.simd; pure @safe V1 simd(XMM opcode, V1, V2)(V1 op1, V2 op2, ubyte imm8) if (is(V1 == __vector) && is(V2 == __vector)) { return cast(V1)__simd(opcode, op1, op2, imm8); } void main() { float4 a, b; a = simd!(XMM.CMPPD)(a, b, 0x7A); }
Comment #1 by bugzilla — 2017-10-13T20:42:14Z
https://github.com/dlang/dmd/pull/7216 The imm8 needs to go into the template parameter list as a constant.
Comment #2 by ibuclaw — 2017-10-13T20:56:26Z
Seems like a strange limitation, but it's your intrinsic.
Comment #3 by github-bugzilla — 2017-10-14T07:19:28Z
Commits pushed to master at https://github.com/dlang/dmd https://github.com/dlang/dmd/commit/e10b14fd2d68e9bf228e6715c733e96eece8bf5e fix Issue 17751 - Internal error: ddmd/backend/el.c 2927 https://github.com/dlang/dmd/commit/e2526c47e7511812626f30f3f9ec0304beae73d8 Merge pull request #7216 from WalterBright/fix17751 fix Issue 17751 - Internal error: ddmd/backend/el.c 2927 merged-on-behalf-of: Iain Buclaw <[email protected]>