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

    <tr>
        <th>Summary</th>
        <td>
            [AArch64][SVE] Error in vector_reverse
        </td>
    </tr>

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

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

    <tr>
      <th>Reporter</th>
      <td>
          stevesuzuki-arm
      </td>
    </tr>
</table>

<pre>
    `llvm.experimental.vector.reverse` https://godbolt.org/z/zbbrjMvje 
```
define <vscale x 6 x i32> @rev_nxv6i32(<vscale x 6 x i32> %a) #0 {
    %1 = call <vscale x 6 x i32> @llvm.experimental.vector.reverse.nxv6i32(<vscale x 6 x i32> %a)
    ret <vscale x 6 x i32> %1
}
declare <vscale x 6 x i32> @llvm.experimental.vector.reverse.nxv6i32(<vscale x 6 x i32>)
```
Crashes with target triple = "aarch64-linux-gnu" -mattr=+sve2 -O3
```
WidenVectorResult #0: t8: nxv6i32 = vector_reverse t7

Do not know how to widen the result of this operator!
UNREACHABLE executed at /root/llvm-project/llvm/lib/CodeGen/SelectionDAG/LegalizeVectorTypes.cpp:3564!
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace.
Stack dump:
0.      Program arguments: /opt/compiler-explorer/clang-assertions-trunk/bin/llc -o /app/output.s -x86-asm-syntax=intel -mattr=+sve2 -O3 <source>
1.      Running pass 'Function Pass Manager' on module '<source>'.
2.      Running pass 'AArch64 Instruction Selection' on function '@rev_nxv6i32'
 #0 0x000055a009d9a40f PrintStackTraceSignalHandler(void*) Signals.cpp:0:0
 #1 0x000055a009d97e7c SignalHandler(int) Signals.cpp:0:0
 #2 0x00007f166ae313c0 __restore_rt (/lib/x86_64-linux-gnu/libpthread.so.0+0x143c0)
 #3 0x00007f166a8fe03b raise (/lib/x86_64-linux-gnu/libc.so.6+0x4303b)
 #4 0x00007f166a8dd859 abort (/lib/x86_64-linux-gnu/libc.so.6+0x22859)
 #5 0x000055a009cdc9ca (/opt/compiler-explorer/clang-assertions-trunk/bin/llc+0x30dc9ca)
 #6 0x000055a009c3a47a llvm::DAGTypeLegalizer::WidenVectorResult(llvm::SDNode*, unsigned int) (/opt/compiler-explorer/clang-assertions-trunk/bin/llc+0x303a47a)
 #7 0x000055a009bfc5d8 llvm::DAGTypeLegalizer::run() (/opt/compiler-explorer/clang-assertions-trunk/bin/llc+0x2ffc5d8)
 #8 0x000055a009bfd726 llvm::SelectionDAG::LegalizeTypes() (/opt/compiler-explorer/clang-assertions-trunk/bin/llc+0x2ffd726)
 #9 0x000055a009b90a43 llvm::SelectionDAGISel::CodeGenAndEmitDAG() (/opt/compiler-explorer/clang-assertions-trunk/bin/llc+0x2f90a43)
#10 0x000055a009b945a3 llvm::SelectionDAGISel::SelectAllBasicBlocks(llvm::Function const&) (/opt/compiler-explorer/clang-assertions-trunk/bin/llc+0x2f945a3)
#11 0x000055a009b95cd8 llvm::SelectionDAGISel::runOnMachineFunction(llvm::MachineFunction&) (.part.960) SelectionDAGISel.cpp:0:0
#12 0x000055a0090d6116 llvm::MachineFunctionPass::runOnFunction(llvm::Function&) (/opt/compiler-explorer/clang-assertions-trunk/bin/llc+0x24d6116)
#13 0x000055a009584a96 llvm::FPPassManager::runOnFunction(llvm::Function&) (/opt/compiler-explorer/clang-assertions-trunk/bin/llc+0x2984a96)
#14 0x000055a009584de9 llvm::FPPassManager::runOnModule(llvm::Module&) (/opt/compiler-explorer/clang-assertions-trunk/bin/llc+0x2984de9)
#15 0x000055a009585729 llvm::legacy::PassManagerImpl::run(llvm::Module&) (/opt/compiler-explorer/clang-assertions-trunk/bin/llc+0x2985729)
#16 0x000055a00773e598 compileModule(char**, llvm::LLVMContext&) llc.cpp:0:0
#17 0x000055a007698937 main (/opt/compiler-explorer/clang-assertions-trunk/bin/llc+0xa98937)
#18 0x00007f166a8df0b3 __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x240b3)
#19 0x000055a007734f6a _start (/opt/compiler-explorer/clang-assertions-trunk/bin/llc+0xb34f6a)
Compiler returned: 139
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzFl9tu2zgQhp9GviEsSNT5whdO7LQFkjZoutlLg6IoW40sCiTlOn36HVLygUraBFtj1_BBIq1_vhkOh2TOi-eZE3t1vdu6bN8yUW1Zo0jt7hhVXLiC7ZiQDP6CNkq10gnmDr6B95oXOa-Vy8Ua7n7qT56L73e77ww53sLx5vDM8Da3BSurBvqC652kpGZoj2L4VAF2giVyQg9MrZr9LtYtOP3V_3BEHJzBb-AhJ7nqtRG8oMcH9QWCh-rfmHnLVfe9DCfTgqlfGgSqIRzJ4hAIWhPxu0j8MeKRbjQG14LIDZPoR6U2SBGxBnAlqrZmJnIOxoQIuonDaV013X66bjpoQ9MtUUrAPxx8JXcMGr4Er-r_XRWseTSsX5nsamXGCXIGqVR_D9zGWO_SanAJqWRQNN8Ljhqu0FPDf6ANfBQHZtBGasMg3Eaal3BXScQhTgSkHDxE-q_PX5fz64_zq9slYntGO8UKRDTLjeBcwY8O8LQV_DswDLf6p8rh-5oX7ANr4OqB1dBf8WYx_wC3t2xN6uon6_379twy6dK2Bb-CKA6P1u9vl_OHJZJdvq0UIijv1kDccqG0F6NJBOPQ5S7l2zMKm62SsmMSLhBpClQ1tO4KZsJA9WCinNAnJQhlbm_-QUEDKrqtBuubPOjK7gVfC7JFMOidTioNoSPCW20FCNqqZmIKWVdzwYRuq0mznhIpmdBBkFMluuYJOvKqMZwUTbmWIBAEEOpU2ylXouk-jeGx7VQ-Q-7uYayrRrH61SzSk0DyTlCms9bQ-pr2a9c0VbNGLZgHE8lN15iRQPe64Y40ZK0ZEwRNW150OoFxYonhZIgIfk1wPjd5jj41EtzqtY_jPQiXB6NaelSfhmzt65C39-AVRcTzsiIjoVeiewFOm7H4pgfnoVo3pP4IQ1hr7nTHq8LBc13J-q5DKnnmc9T2R9oJSygai4GlN4XwIJSUfhwTFvgB9dAKZp-EXGYroWdHepwDMIIruwjojlZtBCOFK7nrwRh6ez8ElVMlBDOBZSYtmRfkSJBKsnfoU60cG-UwgAct5dBWLoo0yhDJ-bvIz5Qxhgct5ciKMS1oRsmg-SeTw1gLPCNn2YttewEJE4LM5IcJG8yh2Ojacqg2om99UVkB8PTMw-IzVC2TUNeoayRkAtPFQvVL5YVcMaSWK4nlSl7SqEjfdAXUDdLFyHBpDFtk6YisSHB8RmaVdtNygDR1_eJ82rzFl9l8mUfC4Bd8n-Cmbx2WpnlTLGFtMavSZTkNxmnzAPXHG3GGEXmbs2-d1_UVkRW9qjl9kla-Hss5BRqgji_rhYa0vPBHXkTUytPXvQD1L80doRvYth6ALS9e9B3ccFsilJvFninLI_GX9VkTYovQK2LfP8_XkSm9Cp5Bvkr3Eusi0Q0NmhXdwGKP0pBk5-w39xr3sGb_P9SZgbKowzF1wbJ3UN-Z3YadB0PTpYkByCKORsRRgs-Ja6hg9Lm_PmP_tG1PCf1fcGssi9ta8JIkYFGWosHGMZx0Q4RZwMwadoK8vX28u-awgdwf6gSYen0OWatREmdpBgvUllTNpZwjRtLyLR1tS0ovD2BfpfccKwknLLU6A3jvFiUEEctKNopgWMYE9fqX8i03oker14OSPtt2AnYT-rjgB-Nj5aSYBUUWZGSiKlWzmRNdDTtrJ1rAzcPjEi7QUgguYD8yOvRNOlHP_v2JKIog5pPNDJdRHGQp7BGTPCdR6aeU4bIgeYRJin06qUnOaqnhAGZSzbCHsRfi1IfNWJi6BfFwkpc-hkgzGqWw12cwarVrzuFcrCdiZhjgKCf18bySSp46IbR6v8UO-qRTGy5mUoGTsvvZPVVTIrYTgz0zzP8ASqpUKA">