<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/61008>61008</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
miscompile from AArch64 global isel backend
</td>
</tr>
<tr>
<th>Labels</th>
<td>
backend:AArch64,
miscompilation,
globalisel
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
regehr
</td>
</tr>
</table>
<pre>
here's a function:
```llvm
define i64 @f(i1 %0) {
%2 = shl i1 false, %0
%3 = sext i1 %2 to i32
%4 = shl i32 %3, 1
%5 = trunc i32 %4 to i1
%6 = select i1 %5, i1 true, i1 false
%7 = sext i1 %6 to i8
%8 = zext i8 %7 to i64
ret i64 %8
}
```
hopefully it's clear that if we invoke `f(0)`, then every SSA value in the function evaluates to 0 and then also it returns zero, and this is what both opt and the sdag backend for AArch64 think.
on the other hand:
```
Johns-MacBook-Pro:tmp regehr$ llc --global-isel --march=aarch64 reduced.ll -o -
.text
.file "reduced.ll"
.globl f // -- Begin function f
.p2align 2
.type f,@function
f: // @f
.cfi_startproc
// %bb.0:
mov w0, #255
ret
.Lfunc_end0:
.size f, .Lfunc_end0-f
.cfi_endproc
// -- End function
.section ".note.GNU-stack","",@progbits
Johns-MacBook-Pro:tmp regehr$
```
cc @nunoplopes
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJyMVU2PozgQ_TXOpQQixUfCgUO6s73Sane10mjPI2OK4G3HRrbpme5fv7JNQqY1h4kiJxTvVT0_VwF3Tl40UcfqJ1afd3zxk7GdpQtNdteb4b2byBLDgwMO46KFl0az8sSKMytOrCnSV6m3awoNNEpNIJsKWFWMDI9yDwzrgmEL7PCUUBBCCKw8g5sUyD2MXDli-JywG6hMIPruISVC8AZkiQ-YaktUYiSFRPsHRB0R3i5a3DBVzPMIatZSisStWB0SyX1g0vo3Cd1Yh88Cm5j4-AA5RshHhBwTJ0Ca6oax5JNjWK88djh_sjhdTmamcVHqHaSPpyIUcQt-4h7kCN8IpH4zrwSsieYH2wMZn8FPpIHeyL7Dly8neONqCegQv58sUAhzTy4oLIDrIfG4cgakD0oXqx18kDUhaQJIB9LBtyCiN34CM_sbFdzAL9Bz8Up6gNFYOJ2smJoq0PRrvu4yriaJMX4iCxPXw9ZoP_PiDzNpl_3FxZMxr9k_1rDy5K8zpO5lWIFSArLsokzPVSYdKciyK7diYuWZ8yTD0rAIGnKlIDOQwa1gm3v67rerUSpiRcsQNwZD3AChjGJFOwLDF4YvkGXwRBepN3fHDT0jV_KiWdE-pPDvc6gxMnwOw3Mbt3h_ZOXpljlO1p0lRvnVeW79bI1YwysO677Piwcb26t5Y0X7rUijVoYWv92ytG43_zOU_kp6-IGaO_lxkwcPmOyTFtLDpgR-8bN59lvokx-2HmvTGggnkGvjKf_9738z57l4DceAz3HFZN1szaWX3v1qo_y0v9IqRLBbL9rMyszkYDd05dCWLd9Rt28Oh6ral9jupq5HPIwtYSv2xdjzAce2ro9YEeFITT_sZIcFlgVis2_rGtu8L8ey7EUrDkWPhwNnVUFXLlUenqe5sZeddG6hrtkXxXGneE_KxUc14jpRrDyt83Q34SqdMNdZKh4Nu4XTFIQhCKH6vLNdqJL1y8WxqlDSebfV9dIr6u6pCEZrrvfRTbkgTtQqZLdY1U3ezy60TDzMi_TT0ufCXBm-xDdE-slma_4j4Rm-xO05hi9xh_8HAAD__z1t3bw">