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

    <tr>
        <th>Summary</th>
        <td>
            [AMDGPU] GlobalIsel crashes when `extractelement` index is invalid
        </td>
    </tr>

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

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

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

<pre>
    When compiling the following piece of code, legalizeExtractVectorElt crashes on invalid index.
The bug can be reproduced from LLVM14 and latest commit `6f88388f6`

You can reproduce here: https://llvm.godbolt.org/z/nnejxaY7K

```
define void @f() {
BB:
  br label %BB2

BB2:                                              ; preds = %BB
  br label %BB1

BB1:                                              ; preds = %BB2
  %B1 = sub <2 x i8> <i8 16, i8 16>, <i8 16, i8 16>
  %A = alloca i8, align 4
  %L1 = load i8, i8* %A, align 1
  %I = insertelement <2 x i8> %B1, i8 -128, i8 %L1
  %E1 = extractelement <2 x i8> %I, i1 true
  store i8 %E1, i8* %A, align 1
  ret void
}
```

```
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace.
Stack dump:
0.      Program arguments: /home/peter/aflplusplus-isel/llvm-project/build-release/bin/llc -mtriple=amdgcn -global-isel crash.ll
1.      Running pass 'CallGraph Pass Manager' on module 'crash.ll'.
2.      Running pass 'Legalizer' on function '@f'
 #0 0x0000000001dc4c43 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/home/peter/aflplusplus-isel/llvm-project/build-release/bin/llc+0x1dc4c43)
 #1 0x0000000001dc2b9e llvm::sys::RunSignalHandlers() (/home/peter/aflplusplus-isel/llvm-project/build-release/bin/llc+0x1dc2b9e)
 #2 0x0000000001dc4fcf SignalHandler(int) Signals.cpp:0:0
 #3 0x00007f72fbf78980 __restore_rt (/lib/x86_64-linux-gnu/libpthread.so.0+0x12980)
 #4 0x0000000000daa1f9 llvm::AMDGPULegalizerInfo::legalizeExtractVectorElt(llvm::MachineInstr&, llvm::MachineRegisterInfo&, llvm::MachineIRBuilder&) const (/home/peter/aflplusplus-isel/llvm-project/build-release/bin/llc+0xdaa1f9)
 #5 0x0000000000da76d6 llvm::AMDGPULegalizerInfo::legalizeCustom(llvm::LegalizerHelper&, llvm::MachineInstr&) const (/home/peter/aflplusplus-isel/llvm-project/build-release/bin/llc+0xda76d6)
 #6 0x000000000206c277 llvm::LegalizerHelper::legalizeInstrStep(llvm::MachineInstr&, llvm::LostDebugLocObserver&) (/home/peter/aflplusplus-isel/llvm-project/build-release/bin/llc+0x206c277)
 #7 0x0000000002065224 llvm::Legalizer::legalizeMachineFunction(llvm::MachineFunction&, llvm::LegalizerInfo const&, llvm::ArrayRef<llvm::GISelChangeObserver*>, llvm::LostDebugLocObserver&, llvm::MachineIRBuilder&) (/home/peter/aflplusplus-isel/llvm-project/build-release/bin/llc+0x2065224)
 #8 0x00000000020664f8 llvm::Legalizer::runOnMachineFunction(llvm::MachineFunction&) (/home/peter/aflplusplus-isel/llvm-project/build-release/bin/llc+0x20664f8)
 #9 0x00000000013a82a1 llvm::MachineFunctionPass::runOnFunction(llvm::Function&) (/home/peter/aflplusplus-isel/llvm-project/build-release/bin/llc+0x13a82a1)
#10 0x000000000175fbad llvm::FPPassManager::runOnFunction(llvm::Function&) (/home/peter/aflplusplus-isel/llvm-project/build-release/bin/llc+0x175fbad)
#11 0x0000000001043a72 (anonymous namespace)::CGPassManager::runOnModule(llvm::Module&) CallGraphSCCPass.cpp:0:0
#12 0x0000000001760780 llvm::legacy::PassManagerImpl::run(llvm::Module&) (/home/peter/aflplusplus-isel/llvm-project/build-release/bin/llc+0x1760780)
#13 0x00000000006b09e0 main (/home/peter/aflplusplus-isel/llvm-project/build-release/bin/llc+0x6b09e0)
#14 0x00007f72fae4bc87 __libc_start_main /build/glibc-uZu3wS/glibc-2.27/csu/../csu/libc-start.c:344:0
#15 0x00000000006ab4ea _start (/home/peter/aflplusplus-isel/llvm-project/build-release/bin/llc+0x6ab4ea)
Segmentation fault
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzNWNuO2zYQ_Rr5hbCgm3V58INvuzG6iyziNEX6sqCokayUuoCidr35-g4p-SKvjSZFXNSwLYqkhucczpBDxVXyNv1jCyVhVVHnPC8zIrdA0orz6lXd1TkwIFWKHRIwnAXhkFGef4fVTgrK5BdgshIrLgkTtNlCQ6qS5OUL9knwmsDONKylYc0-o9m4zQijJYmBCKhFlbQMEpKKqiAPD18ebY_QMiGcSmikQlTkkhi-5adh6IZh6mO5M9b9f61abe5gi2xBgOHOyFbKusGC4dzhl_OXwsyqJK64NCuRYdV3_JUlfNvRr8FvpzbVEN1X3yaQ5iWQlwrZGJ6VGk5oOBExgnnXPp-rUXSRkFgg9hg4MZzJfO6cmlW3iOunPoY7J7WApMHSsrN5eSR7OJL9K0Zy9kOpO1vXN22M14VDdiQPDXelbvKQ2L5yi67grlT5Yv3R3Exbo-hhjCpL2Au9JSuJd9LpoRuTVzTp-6j_mX7--IR98sRaP5CXDQgJHAoo5RlcxaTHNLad3mg32ImdVTcydP59zdJaP20TKVrYP9xgJEBvcmX_I2YBUjtWP3vB8qIHXqx8eljNNis1IypEqA4sjIJKSCKrM-_PcrltYxPDqQ-F_jLGoPmG0Yu3edO00GBBx19eMt4moBcCHdQkpuwvpQb0sbyRWEGStqgP3m-ZnSs9iSoTtCBUZK0STuFAAe62VYHLx10NEgReacpr3jbqN84b4O8xxW3Ok7FA_WmjnozzUndiZFxIkdccA31JiyRjJRlnvIop15Y6yCbnHS67x_WpLUu9ntEGvdwJFuh_94LWW_Kkah5pSTOFLFDrV4GrCQfV7WDMCXruzhWDD_26uLeRtiWTORbwvls5gn7iDce1iLWz9h87YR7zXKLnBvV0Z81b0xWeRF5KrfZnJT-uPsdOgr4-V40UQHFGu1grpV6clGv_QsENZ27tepBo_8jCPmPhxBFcYoFSbdDzKf-A7sVBNPtV9EZAFY4BUOdc7pSlZAAJofTqddWNyWrl3Jb-HQy5vaEgDZw0ToMwCi3y_CxAh_4zhl_Hiecx_u9C_9n3xrirtrtxVrZdQy23OGeJ2VSm1SF20MoAr3eK10ootdPoRNjZ4_L-6feDw63LtOoaru3NA795pGyLe9q6RN_pHedd4yfI8kb2pq_0WX-aq4mAzkiE-zVavM2cdgoMJJqcSRT4if8zEi1anLJiIMyh9wfgNVzV5ijcjTkrSgPO_ilnx_KZEwTkOv4BX416I6H-cV94wNVlCbi1PFTsY4zb6sthrm_CuGc0oBycUZ44jneJ8pBsT-uuX4IvUT62nbM-9Zlugt_1mQlB3z5BiknBsfJ-vQG-2NIyg6Nasz4l-gFVfyDEbiW7UnUge3gmu--l4XXZRVt-LH9W89uxUWAHbKLB8u_S0KH2e7H36FQ-cMLrIqH_gkkP9MBEbbjDvCGYpDGmxyewnhT4fS7zf-DQQRxwGGYNlufSwFGj07Iq34qqbUhJC2hqne9EHdbF_WVijzpRG_paX6VJHbK8zWKhLLzf1RWiYXoQ-FaAu_rRolpV2FufkB1hrIuaH6Bch3AjXTXIga7uYEf0YysCixQ0L28DoRtggMA7zY4oeDELA8yOMOdhz42kQj73cDrT6myi2sbtn637ujncOiamys4da1TCZJqHom7UdkyGKrueN5zGYUrg09gDSrqBbySBHuIgwQYydeKhOutPaYt51_DsNoKp7fu2P7HcyB4lUzeJ3IiOZC45TI3JvEtajMmS3OvzzPpwnIGGvKq3NGhkeC7Fiu4tC8mb_WuXUSv49N-fASeBZ4Wj7dRllMVhEFihm1jRxLWBRRZzfZt5UcLcaKTfQDQKOEIe5VPHchwrdEJcYjHKzSBmUex4XpCwcJKGgIcgwPnnpn4dU4lsJKYaA-6FDTZyzDibYyMGGmbiAHv7tJXbSkyXVNJFJURbS0hGGvRUI_4bDguqHg">