www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.bugs - [Issue 21040] New: SIMD: illegal instruction using 32-byte

https://issues.dlang.org/show_bug.cgi?id=21040

          Issue ID: 21040
           Summary: SIMD: illegal instruction using 32-byte operations on
                    AVX
           Product: D
           Version: D2
          Hardware: x86_64
                OS: Linux
            Status: NEW
          Severity: normal
          Priority: P1
         Component: dmd
          Assignee: nobody puremagic.com
          Reporter: ibuclaw gdcproject.org

DMD compiles the following down to the same code for both -mcpu=avx and
-mcpu=avx2.

---
long4 v;
v += 1;
---

However this throws an illegal instruction on machines that do not have AVX2
features.

The compiler should have isVectorOpSupported extended to be aware of which CPU
feature implemented which vector operation.

--
Jul 11 2020