<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/55809>55809</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
[aligment] should i64 type poiter align to 8 bytes
</td>
</tr>
<tr>
<th>Labels</th>
<td>
new issue
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
vfdff
</td>
</tr>
</table>
<pre>
* now both the pointers of **i64 type and i32 type** are align to 4 bytes, https://gcc.godbolt.org/z/bTzaGqrd8
```
define void @trunc_shl_31_i32_i64_multi_use(i64 %val, i32 addrspace(1)* %ptr0,
i64 addrspace(1)* %ptr1) {
%shl = shl i64 %val, 31
%trunc = trunc i64 %shl to i32
store volatile i32 %trunc, i32 addrspace(1)* %ptr0
store volatile i64 %shl, i64 addrspace(1)* %ptr1
ret void
}
```
* output after instcombine
```
define void @trunc_shl_31_i32_i64_multi_use(i64 %val, i32 addrspace(1)* %ptr0, i64 addrspace(1)* %ptr1) {
%shl = shl i64 %val, 31
%trunc = trunc i64 %shl to i32
store volatile i32 %trunc, i32 addrspace(1)* %ptr0, align 4
store volatile i64 %shl, i64 addrspace(1)* %ptr1, align 4 --> expect align 8 ??
ret void
}
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzVVNuOmzAQ_RrzMkoENgTywMNu0_QH-o4MNsGVg6k9ZJv9-o7JZduqq-1KlaoiIzMXnzkzY6Z16lwz_gCje4LW4QA4aJicGVH7AK4HMtIymxzwPGmQowIj-CJcTCA9qa05jIAOcmjPqAPjH2BAnAIT5LOndei69cGp1llcO38gzTO97edn-emrVxVLdyx9YJv0uhZR6d6MGk7OKGB5in4euyYMthFZQyQaYtUcZ4ummQOxqSJLxouTtDF-pCmV8mGSXbRmjG8jX_KY0KfR5RIG3vHEEK-DRglY-XjDJS3RBSZ2EPef-YnsB7clt8Xx8nV1jaeoqpTKzTeg87EkVqKxeknydvxPkn4F5R5twXgjxyuG17i05tq6cvfbHsaDbsZpRpA9XSowY8DOHVvq7L9p-v_eQnK5_G75X-nmCxzAasXER9DfJt3hVVtRRvu43tX1RNVCbcVWJmjQ6poVjxHuqEdkRaykm62C-1ShgROvxn2KVJcpksze1r-MEYPD3K7pApFg7em2rSbvvhBrEk0Ic5xA-6Ko0m0y1ELnactVKstcZEWfV5tcbnNZFlme9WVaJFa22oZIknE-6idYIOibuCam5inn6SbNMi6KfLvuK62UbIVuC17mlaZLqo_S2HXkEWdb4uuFUjsfAhmtCRhejDIEylIvNYn4csbB-frUq75PlsD1Qvw7-QCeEQ">