<table border="1" cellspacing="0" cellpadding="8">
    <tr>
        <th>Issue</th>
        <td>
            <a href=https://github.com/llvm/llvm-project/issues/57256>57256</a>
        </td>
    </tr>

    <tr>
        <th>Summary</th>
        <td>
            aarch64 global isel backend miscompiles funnel shift with undef amount
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            new issue
      </td>
    </tr>

    <tr>
      <th>Assignees</th>
      <td>
      </td>
    </tr>

    <tr>
      <th>Reporter</th>
      <td>
          regehr
      </td>
    </tr>
</table>

<pre>
    here's one from our unit tests:
```llvm
declare i32 @llvm.fshl.i32(i32, i32, i32) #0

define i32 @fshl_scalar_undef_shamt() {
  %1 = call i32 @llvm.fshl.i32(i32 1, i32 2, i32 undef)
  ret i32 %1
}
```
the global isel backend returns an arbitrary 32-bit value: https://gcc.godbolt.org/z/Yvbx9P7K4

but that's not OK. this is the set of permissible return values:
```
1
2
4
8
16
32
64
128
256
512
1024
2048
4096
8192
16384
32768
65536
131072
262144
524288
1048576
2097152
4194304
8388608
16777216
33554432
67108864
134217728
268435456
536870912
1073741824
2147483649
```

cc @aemerson @ornata @nunoplopes @ryan-berger @nbushehri @zhengyang92 @efriedma-quic 
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJx9VMuSnSAQ_RrdUHOLt7pwkWRqNlkk26ymkItKgnADOMnk69Mq3qRSU6lCefThdJ-mYQjX13420VS0SSh4g8YYFhTWiFZvM8om5VSxdxV-rPC7SuKjOfeyHEtXo52KBllGUcV3w2VMs7vAQkXb_f8B_d11qKIMF8LCMVp_p9h2PyetgPZ59WB7TrNaMpDte5v3xyYENIKgij0iwLr_BIBI8Y3OINDOC3QnVTT5IADKElnz-I_mY5pngyYXBgUek3FoUPqb8deNYY0-IeWRioPNUcVXxOgDDNGLcquBJKI559ueTfoEbdL6MoXrEFy-hDjByi_4vrwMP7vPzUf-d4aGFY5iVnk_JR8y-vTxAgs2QRBoCymBgDCim4mLTckOzpSIDudvHOExLWrp0RWfbbHJo2fFKouZ0AKgoiAEKRCCaQFRzAuK467AWtKdOMlafrI3siClEKxACSO4KWAqKeEFLSin7RkfuBCNPP11DRGnDtJxhk81rG0lvmtqmobelTEhOL_rawgG6KmScUoAe2qVLWeC3xUz2Ta4-6O7YQ0n7V094Q1vmeTdm1k__lpvBavMYmIKfhuH6FVW28ivPtxcuJm0zeKr8g-DiZOJu3FY02zmaLfJr9n4CexTt9e_GaM110U9fF-tRrXpiZS44x2XbX3t2bVjnaqzzc70SkU9S_5mOUMV6bDcrIMAxtV7MKXZjhn9sHk-rg9SS1h9rtfo-n8KGzDrcAECmOxPxdE93GL4ajRU8RMU6VaV9Ek0UEX13JMrxUR1cBrKjERLOmKteKf0ILRgg66dGoxLfSXeV5R68wPtFDCuxGNte4opxVuBwQ3G7cUoOD-FB0HH1uhRb5lZlHWX_X2A21bHfg9pWKe0PRsW3rk_RgV3aPLG7O6AX615DrGPZoK017vnfo_8N9AddUg">