<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/98044>98044</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
16 byte Aligned load generated to load 32 byte wide AVX register from stack memory
</td>
</tr>
<tr>
<th>Labels</th>
<td>
new issue
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
Nirhar
</td>
</tr>
</table>
<pre>
Problematic IR:
```
define i8 @foo(i64 %elemIdx, <32 x i1> %arr) {
entry:
br label %loop
loop: ; preds = %loop, %entry
%arr.i32 = bitcast <32 x i1> %arr to i32
%cmp = icmp ugt i32 %arr.i32, 0
br i1 %cmp, label %exit, label %loop
exit: ; preds = %loop
%elem = extractelement <32 x i8> zeroinitializer, i64 %elemIdx
ret i8 %elem
}
```
generates:
```
.LCPI0_0:
.quad 72340172838076673 # 0x101010101010101
foo: # @foo
vpbroadcastq .LCPI0_0(%rip), %ymm1 # ymm1 = [72340172838076673,72340172838076673,72340172838076673,72340172838076673]
.LBB0_1: # %loop
vptest %ymm1, %ymm0
je .LBB0_1
pushq %rbp
movq %rsp, %rbp
andq $-32, %rsp
subq $64, %rsp
vpxor %xmm0, %xmm0, %xmm0
vmovdqa %ymm0, (%rsp)
andl $31, %edi
movzbl (%rsp,%rdi), %eax
movq %rbp, %rsp
popq %rbp
vzeroupper
retq
```
when run with `llc -mattr=avx2`. This leads to the generation of a `vmovdqa` instruction, which can lead to a General Protection Fault. Here is the link to the godbolt demo: https://godbolt.org/z/jaeE4vKr1
The problem seems to be in instruction selection again, similar to #77730
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJycVU1v4zYQ_TX0ZRCDIvXlgw5xvG4XLYpFsSh6W1Di2OIuJcok5Tj59QUp2bGd5FIlSEjOzJv3ZvghnFP7HrEi2Zpkm4UYfWts9ZeyrbCL2siX6ps1tcZOeNXA178JfwRCN4Q-kpzOv3Eqcad6BFUCSenOGMJKladAWIYau6_yRNgTEP7EGZxAJYR_CTZhLWErIMV6QsHe2xfCH6cZQG1Bixp18NXGDHPq-DfOAx2-hsGidED45uIYsrFswpvBpnxLxVn0rJVvhPMfkgJvQHF2Fdl0Q4xSYTDuPUSYC2LIR69Yq2QOCoaLBDwpf7Nwryk6fKrpjU2oaTThyVvR-DDH_kpLGbS8ojWqV14JrV7Rhsx3PZkRLfrYuckwEyo2HzZ6jz1a4dFd2nTnsPzz6dtX-oNetXH6lodRSCgYT2lSsJKXtMjzgsPtRxgHekrozc8EFLZVKA7j5012g38camuEDE09xHxnIqwkLLNqIGw174uXrkvmXHEYq5yt33Ej7On_r2Wbc0HWa_ojuVC_7eaZu0fn4cztjeZ5U_3EuYgz2E30MLr2EPVktr5D7szxALPNnc_Fm5fo5WxOH6ZtPDvegLixPnvl6WdOx-FkbLCcAu3J6X54G9CZozyIi9LoV56Jrm6dRS_1TIGf64NSvRP7Wmu4hnkKA6neeo_i9HmF6uGdusEM1-ZbBeGIjcOA9nbdoj98eDieW-zBjj08K98CyanWDTx0wntL-EYcT4zkdAnfW-VAo5Au3ES-RZiPnTI9mB2IEDqXj-QUVO-8HZtgDvyfW9W00Ig-YgQIAb9FAA3frPEYPWErRu2X8DtaBOViGq36X5eURtZGe5DYxXPXej_EU8-2hG1n69LYPWHbV8K2PwV-SY9_2OT6RvveIgzTEwIOsYuCagTVX5MGh3omJfZCRRFOdUqLeBUTxoui4BQWsuJyxVdigVVSMJpmeZJni7Yq5S5b4WqHmNScpjtaNsUuEWXDORZS0IWqGGUpLWiZ5GzFsiVFVjdsJymXMkGkJKXYCaWXWh-7oGqhnBuxWpU0TRfxxnbxmWSsx2eIRsJYeDVtFWIe6nHvSEq1ct69oXjlNVZJDvWLR3jU4b2VoI2Q555i7FBc4Wxye1YS4fGff8HiXjmPFnbWdOC8aH5Bh52xL4vR6uquJcq3Y71sTEfYNhCY_z0M1vzExhO2jbQdYdtJ1rFi_wUAAP__SP864g">