-
Notifications
You must be signed in to change notification settings - Fork 13.6k
SelectionDAG: 32 byte aligned store to 16 byte aligned stack generated for no-realign-stack functions #77730
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
Comments
Perhaps replacing |
@llvm/issue-subscribers-backend-x86 Author: Manish Kausik H (Nirhar)
Example IR:
```
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128-ni:1-p2:32:8:8:32-ni:2"
target triple = "x86_64-unknown-linux-gnu"
define i32 @foo(i32 %arg1) #0 { attributes #0 = { "no-realign-stack" "target-cpu"="skylake-avx512" }
foo: # @foo
Frame Objects:
|
SelectionDAGLegalize::ExpandExtractFromVectorThroughStack doesn't look to be setting a suitable alignment, so gets the default for the type |
cc @HaohaiWen |
…or `extractelement` Prior to this patch, SelectionDAG generated aligned move onto stacks for AVX registers when the function was marked as a no-realign-stack function. This lead to misalignment between the stack and the instruction generated. This patch fixes the issue. Fixes llvm#77730
…or `extractelement` Prior to this patch, SelectionDAG generated aligned move onto stacks for AVX registers when the function was marked as a no-realign-stack function. This lead to misalignment between the stack and the instruction generated. This patch fixes the issue. Fixes llvm#77730
…or `extractelement` Prior to this patch, SelectionDAG generated aligned move onto stacks for AVX registers when the function was marked as a no-realign-stack function. This lead to misalignment between the stack and the instruction generated. This patch fixes the issue. Fixes llvm#77730
…or `extractelement` Prior to this patch, SelectionDAG generated aligned move onto stacks for AVX registers when the function was marked as a no-realign-stack function. This lead to misalignment between the stack and the instruction generated. This patch fixes the issue. Fixes llvm#77730
…or `extractelement` Prior to this patch, SelectionDAG generated aligned move onto stacks for AVX registers when the function was marked as a no-realign-stack function. This lead to misalignment between the stack and the instruction generated. This patch fixes the issue. Fixes llvm#77730
…or `extractelement` Prior to this patch, SelectionDAG generated aligned move onto stacks for AVX registers when the function was marked as a no-realign-stack function. This lead to misalignment between the stack and the instruction generated. This patch fixes the issue. Fixes llvm#77730
…or `extractelement` Prior to this patch, SelectionDAG generated aligned move onto stacks for AVX registers when the function was marked as a no-realign-stack function. This lead to misalignment between the stack and the instruction generated. This patch fixes the issue. Fixes llvm#77730
…or `extractelement` (llvm#78422) Prior to this patch, SelectionDAG generated aligned move onto stacks for AVX registers when the function was marked as a no-realign-stack function. This lead to misalignment between the stack and the instruction generated. This patch fixes the issue. Fixes llvm#77730
Uh oh!
There was an error while loading. Please reload this page.
Example IR:
And here is the corresponding Assembly :
with the stack slot generated:
Here is the link to the same example on godbolt: Link
The
vmovaps
instruction can generate a fault for this example.The text was updated successfully, but these errors were encountered: