[Issue 19443] core.simd generates incorrect code
    d-bugmail at puremagic.com 
    d-bugmail at puremagic.com
       
    Thu Jan  7 15:12:26 UTC 2021
    
    
  
https://issues.dlang.org/show_bug.cgi?id=19443
ponce <aliloko at gmail.com> changed:
           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|RESOLVED                    |REOPENED
                 CC|                            |aliloko at gmail.com
         Resolution|WORKSFORME                  |---
--- Comment #4 from ponce <aliloko at gmail.com> ---
Unfortunately it isn't resolved.
Consider this test case, built with DMD from 7 jan 2021 at commit
4f18b2798ad8fa337b8b71e4d2dd0d983adf9868 (with digger)
void main()
{
    float4 a = [1.0f, 2.0f, 3.0f, 4.0f];
    float4 b = [5.0f, 6.0f, 7.0f, 8.0f];
    float4 r = cast(float4) __simd(XMM.MOVHLPS, a, b);
    float[4] correct = [7.0f, 8.0f, 3.0f, 4.0f];
    assert(r.array == correct); // FAIL, produces [5, 6, 3, 4] instead
}
and indeed Godbolt can show how it generated MOVLPS instead of MOVHLPS:
https://d.godbolt.org/z/43n5KP
--
    
    
More information about the Digitalmars-d-bugs
mailing list