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

    <tr>
        <th>Summary</th>
        <td>
            [AArch64/GlobalISel] Unable to Translate `ret` with v1i8 / v1i16
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
      </td>
    </tr>

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

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

<pre>
    ## Description

For AArch64, a return instruction of type `<1 x i8>` or `<1 x i16>` cannot be translated when using GlobalISel.
`<1 x i1>`, `<1 x i32>`, `<1 x i64>` do not have the problem.

## Cause

The crash is caused [here] (https://github.com/llvm/llvm-project/blob/4aa87a131f93de73b8e245021af0294545d063c5/llvm/lib/Target/AArch64/GISel/AArch64CallLowering.cpp#L431)

## Minimal Reproduction

https://godbolt.org/z/6eGesshj5

### Code

```ll
define <1 x i16> @f() {
BB:
  ret <1 x i16> <i16 0>
}
```

### Stack Trace

```
LLVM ERROR: unable to translate instruction: ret (in function: f)
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace.
Stack dump:
0.      Program arguments: ./llvm-project/build-debug/bin/llc ./crash-reports/gisel-aarch64/4.ll -mtriple=aarch64 -global-isel
1.      Running pass 'Function Pass Manager' on module './crash-reports/gisel-aarch64/4.ll'.
2.      Running pass 'IRTranslator' on function '@f'
 #0 0x0000000003adad2a llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) /home/henry/aflplusplus-isel/llvm-project/llvm/lib/Support/Unix/Signals.inc:569:11
 #1 0x0000000003adaedb PrintStackTraceSignalHandler(void*) /home/henry/aflplusplus-isel/llvm-project/llvm/lib/Support/Unix/Signals.inc:636:1
 #2 0x0000000003ad9526 llvm::sys::RunSignalHandlers() /home/henry/aflplusplus-isel/llvm-project/llvm/lib/Support/Signals.cpp:103:5
 #3 0x0000000003adb605 SignalHandler(int) /home/henry/aflplusplus-isel/llvm-project/llvm/lib/Support/Unix/Signals.inc:407:1
 #4 0x00007fc761f8d980 __restore_rt (/lib/x86_64-linux-gnu/libpthread.so.0+0x12980)
 #5 0x00007fc760e7de87 raise /build/glibc-uZu3wS/glibc-2.27/signal/../sysdeps/unix/sysv/linux/raise.c:51:0
 #6 0x00007fc760e7f7f1 abort /build/glibc-uZu3wS/glibc-2.27/stdlib/abort.c:81:0
 #7 0x0000000003a014b4 llvm::report_fatal_error(llvm::Twine const&, bool) /home/henry/aflplusplus-isel/llvm-project/llvm/lib/Support/ErrorHandling.cpp:125:5
 #8 0x0000000003f7ca82 reportTranslationError(llvm::MachineFunction&, llvm::TargetPassConfig const&, llvm::OptimizationRemarkEmitter&, llvm::OptimizationRemarkMissed&) /home/henry/aflplusplus-isel/llvm-project/llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp:125:5
 #9 0x0000000003f90bc8 llvm::IRTranslator::runOnMachineFunction(llvm::MachineFunction&) /home/henry/aflplusplus-isel/llvm-project/llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp:3535:9
#10 0x0000000002894c85 llvm::MachineFunctionPass::runOnFunction(llvm::Function&) /home/henry/aflplusplus-isel/llvm-project/llvm/lib/CodeGen/MachineFunctionPass.cpp:91:8
#11 0x0000000002f797d6 llvm::FPPassManager::runOnFunction(llvm::Function&) /home/henry/aflplusplus-isel/llvm-project/llvm/lib/IR/LegacyPassManager.cpp:1430:23
#12 0x0000000002f7e602 llvm::FPPassManager::runOnModule(llvm::Module&) /home/henry/aflplusplus-isel/llvm-project/llvm/lib/IR/LegacyPassManager.cpp:1476:16
#13 0x0000000002f7a0a9 (anonymous namespace)::MPPassManager::runOnModule(llvm::Module&) /home/henry/aflplusplus-isel/llvm-project/llvm/lib/IR/LegacyPassManager.cpp:1545:23
#14 0x0000000002f79c1d llvm::legacy::PassManagerImpl::run(llvm::Module&) /home/henry/aflplusplus-isel/llvm-project/llvm/lib/IR/LegacyPassManager.cpp:535:16
#15 0x0000000002f7e8e1 llvm::legacy::PassManager::run(llvm::Module&) /home/henry/aflplusplus-isel/llvm-project/llvm/lib/IR/LegacyPassManager.cpp:1672:3
#16 0x0000000000d2cdbc compileModule(char**, llvm::LLVMContext&) /home/henry/aflplusplus-isel/llvm-project/llvm/tools/llc/llc.cpp:737:41
#17 0x0000000000d2b162 main /home/henry/aflplusplus-isel/llvm-project/llvm/tools/llc/llc.cpp:418:13
#18 0x00007fc760e60c87 __libc_start_main /build/glibc-uZu3wS/glibc-2.27/csu/../csu/libc-start.c:344:0
#19 0x0000000000d2a96a _start (./llvm-project/build-debug/bin/llc+0xd2a96a)
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzNWEtzozgQ_jX4orJL4s3BB-e5qUpqUk5mD3txCSQMM-JRSOQxv35bAgwmnprs7kxmUw4gIbq_r7vV3RBX7HVt2Q780AWXSZPXKq9KC19YeNMdr6oGbTZNkvmuZZ8jihqu2qZEeSlV0yZ6OapSpF5rjiwfW845QS8oDy3nEoYInp7MEr-fTmhZVgrFHKmGllJQxRl6zniJWpmXe3QtqpiKmwcuVj2YiZBOhkYzmXXsk9OAutPIKqQ1ZvQJdGYc1U0VC16splx7S5zTVvLp_COsTxoqM5RLgA53GbK8s4w33PIukGWHmVK1tByQcAW_fa6yNl4lVQEDIZ6G0xKUfuGJgmEMBOHkUhoGlDgkjRzGAycOue162CY0xXbkeq7HsO8k3kROrp97pM2eazkH11xda2uNM-dUiNvqmTdgzlVS10Ds1nWIZUcnGN_lZV5QgbYcELLOq9NlM3oViyuhVlWzh9E3-Pf5NZcy--K9lW0MWrEje2r_mJ8Q3QTjaV5C_EzDBFkuTsG0gBhZwVm38OxMozCXSEfi_BHnHK4Q1j7vNAUXM5WnET4omnxFjw1NTgPthre3f96hy-320xZQoLakEEFIVWMMT3eFXmIQ2mFeorQtD7PpwQn3t5ebh0sk27jIFeytuN3DM3XVKC32HwdVLmXLJVwgWjLAkoiWddHeRW8MJJXm2Ed9x5q1RX2wKoZb0X1T7RtaIAiytuCl0iDQ6kQQt7lgS8YBth7lpVmSmKVG47IjIw18ycWS0iFc3ZUQaFkoSDmCW85Ffwct92brL_XyDhLRkLZtWerEUFMpwaTBVW9PdK8n7mhJ97yBeQRTBYQwOAZG7wVilhpl9illN9vH3sPVoGPwp77dBWrQhyWEE0b4BQ9_DmWU2RQZl4GZnY18ld3FPWxOZZzQRZ4djosa-ryrIJg4BUf7OqvBWrMX7KusKrg-8bJ5hTNNRS1aqf87s71x1FHueGhrbQu4-lzmL3oi35dUyBUEDCj2_AiOhIx0yJwOZzGaYe9k_AFxJ7QfwqcqZ5a9-QjAvuNrwCNee4Y38mz_lPnBzUew5ZBtfh7gAalOwIARO9rAI1JnhjT2sYfmpvwgv7s4ODaj24ML0iTwSRqyKMRot2u4hG3Ad41JbQfpL6G_892lyMv2Zbkv2-5GrTKIYLaS1Qoq8xl-ITZIOeQ_rcabqsE8YDwMUEOBEBpSjN61ICxZtn-1zvPDYWivYNfZV9LwgIuV3u_gXsZrvdPbjiZMPBk0gAzORvTKRDp0Ehs8IvFnSNIgJYjGlWH6PiSKddYwTxkl4UxJcOxyTNzYnQRnl6d2KVVU7HjT6IQzyQqPz7pOJhWUmT4rxFUlfnJ4XGq1Jv6G3gHiwvaOQzc84pEGCQ3tvnYNyRLS4-UbBnc0yYDDkL97FhOGprPRWf28KtN8f0R2XPYJGtUi_2aUbHlBm6-XUEKV3jA_XHkHdZIzs_An2E03N9dcl76xaYXBtGZ8z4bRsQ0jHCfhBPlR2emioy0_lW8s-APrfihHx3M0yejQYJGjYmiHkZuEHvouYu34CdeTJH8duxNgel6R3sbhyOqoJtppEAVsWmOu7vWzQ1vywXxutnC45XuavE5QDEHoOtAeb6DtPXCxZ1y4j-13cLkzbdZx-PVTH8IjMGXfH3k4Mx4UU40ipGVVvhZVK1FJCy5r02pFPeL_Jzl48Zs5yZ0HXELYxEnCSOrbylHeTVGLA6vfxaZLCVNPefOICzn5MZnfToT4ga1z3EjEnxLBzE5YnEDFKupc8EMIJRltTC-8Oa5M-nUSipziL-q_w1fQB0gzTLpjjzlwdFvnkhFzMMMcE99GBc3LX6HeJaE23MRk4XGX5eME-r3dTrdRO6koND8Dlvd0XIlsh8avuzQ3jRzTfjmuO_ZfWn00Y08jn6JOsc4V73_LNe1s9_z4UWX4XrDga-L7HsGY4HDB1g6LnIguVK4EX1ve2eSzzVhQvQv0-fBN4fHwTQHENVzpb1jPucrQE8lDbR19QfxF24j1v_9Q4IU2IYtszcMYxx5OAoCJcZpiB2I5ibBDWMQxoQtBYy6khg4wF_naxrYN7Hx4TQjBamEakzAMSeLzkOA4hldiaLVysdKK9YeiRbM2GMCIEm6KXCo53oSdBj0854N82qqsatZ_0G-vgDVbGLxrA_ZvSL1SWQ">