[RISCV] Add a test w/ RVV stack objects misaligning non-RVV ones
This patch adds a simple test which demonstrates a miscompilation of 16-byte-aligned scalar (non-RVV) objects when combined with RVV stack objects. The RISCV stack is assumed to be aligned to 16 bytes, and this is guaranteed/assumed to be true when setting up the stack. However, when the stack contains RVV objects, we decrement the stack pointer by some multiple of vlenb, which is only guaranteed to be aligned to 8 bytes. This means that non-RVV objects specifically requiring 16-byte alignment fall through the cracks and are misaligned. Objects requiring larger alignment trigger stack realignment and thus should be okay. Reviewed By: craig.topper Differential Revision: https://reviews.llvm.org/D125382
Loading
Please sign in to comment