Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Loading a NTuple{N, VecElement{T}} can seqfault #21918

Closed
vchuravy opened this issue May 17, 2017 · 3 comments
Closed

Loading a NTuple{N, VecElement{T}} can seqfault #21918

vchuravy opened this issue May 17, 2017 · 3 comments
Labels
bug Indicates an unexpected problem or unintended behavior compiler:simd instruction-level vectorization regression Regression in behavior compared to a previous version

Comments

@vchuravy
Copy link
Member

Currently SIMD.jl reliably seqfaults on release-0.6 and master. The particular backtrace that I captured in rrstarts at [1] and ends at [2].
After talking to @yuyichao it looks like a load from the heap that is misaligned. Reverting #20975 makes the issue go away.

[1] https://github.com/eschnett/SIMD.jl/blob/a4a12d9ea34e43ba66e14d8cecc71b1019aac65d/test/runtests.jl#L36
[2]

for x in xs

@vchuravy vchuravy added bug Indicates an unexpected problem or unintended behavior regression Regression in behavior compared to a previous version labels May 17, 2017
@m-j-w
Copy link
Contributor

m-j-w commented May 17, 2017

Regarding alignment issues of NTuple{N, VecElement{T}} see also #20961.
It seems the special treatment of VecElement introduces false alignment assumptions, and in addition LLVM fails at N>32 plus a number of smaller values of N.

@vchuravy
Copy link
Member Author

Yes that is definitely related, but in this case the vector is vec = NTuple{4, VecElement{Float64}} with a size of 32 and an alignment of 32. In my opinion that is correct for AVX.

@vchuravy
Copy link
Member Author

fixed by #21980

@mbauman mbauman added the compiler:simd instruction-level vectorization label Apr 24, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Indicates an unexpected problem or unintended behavior compiler:simd instruction-level vectorization regression Regression in behavior compared to a previous version
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants