Bug 21040 – SIMD: illegal instruction using 32-byte operations on AVX
Status
RESOLVED
Resolution
FIXED
Severity
normal
Priority
P1
Component
dmd
Product
D
Version
D2
Platform
x86_64
OS
Linux
Creation time
2020-07-11T23:05:35Z
Last change time
2020-07-12T04:21:24Z
Keywords
pull
Assigned to
No Owner
Creator
Iain Buclaw
Comments
Comment #0 by ibuclaw — 2020-07-11T23:05:35Z
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.
Comment #1 by dlang-bot — 2020-07-12T00:10:11Z
@ibuclaw created dlang/dmd pull request #11407 "fix Issue 21040 - SIMD: illegal instruction using 32-byte operations on AVX" fixing this issue:
- fix Issue 21040 - SIMD: illegal instruction using 32-byte operations on AVX
https://github.com/dlang/dmd/pull/11407
Comment #2 by dlang-bot — 2020-07-12T04:21:24Z
dlang/dmd pull request #11407 "fix Issue 21040 - SIMD: illegal instruction using 32-byte operations on AVX" was merged into master:
- 32214270e7717ace7e2f8e8ee11612065068068b by Iain Buclaw:
fix Issue 21040 - SIMD: illegal instruction using 32-byte operations on AVX
https://github.com/dlang/dmd/pull/11407