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

    <tr>
        <th>Summary</th>
        <td>
            llc crashes in x86 backend with -mcpu=skylake-avx512
        </td>
    </tr>

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

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

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

<pre>
    Fails at top of tree.

Failing input (bugpoint-minimized):

```
; ModuleID = 'bugpoint-reduced-simplified.bc'
source_filename = "__module"
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128"

; Function Attrs: memory(read, argmem: readwrite, inaccessiblemem: none)
define void @____sample__main_0_next_partition_0(ptr %tmp_buffer) local_unnamed_addr #0 {
entry:
  %0 = tail call i32 @llvm.cttz.i32(i32 poison, i1 false)
  %1 = zext i32 %0 to i64
  %2 = shl nuw nsw i64 1, %1
  %3 = xor i64 %2, 8589934591
  %4 = icmp ugt i64 %3, 63
 %x11.op.i = lshr i64 8589934591, %3
  %5 = trunc i64 %x11.op.i to i32
 %6 = select i1 %4, i32 0, i32 %5
  store i32 %6, ptr %tmp_buffer, align 4
  ret void
}

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare i32 @llvm.cttz.i32(i32, i1 immarg) #1

attributes #0 = { memory(read, argmem: readwrite, inaccessiblemem: none) }
attributes #1 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }
```

Repro:

```
bin/llc --version
LLVM (http://llvm.org/):
  LLVM version 17.0.0git
  DEBUG build with assertions.
  Default target: x86_64-unknown-linux-gnu
  Host CPU: skylake-avx512

  Registered Targets:
    x86    - 32-bit X86: Pentium-Pro and above
    x86-64 - 64-bit X86: EM64T and AMD64

LLVM_SYMBOLIZER_PATH=bin/llvm-symbolizer bin/llc  /tmp/sample.ll -mcpu=skylake-avx512 --filetype=obj
llc: /home/user/src/llvm-project/llvm/include/llvm/MC/MCInst.h:70: unsigned int llvm::MCOperand::getReg() const: Assertion `isReg() && "This is not a register operand!"' failed.
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace.
Stack dump:
0.      Program arguments: bin/llc /tmp/sample.ll -mcpu=skylake-avx512 --filetype=obj
1.      Running pass 'Function Pass Manager' on module '/tmp/sample.ll'.
2.      Running pass 'X86 Assembly Printer' on function '@____sample__main_0_next_partition_0'
 #0 0x000055b1ed1b54f6 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) /home/user/src/llvm-project/llvm/lib/Support/Unix/Signals.inc:565:22
 #1 0x000055b1ed1b58f0 PrintStackTraceSignalHandler(void*) /home/user/src/llvm-project/llvm/lib/Support/Unix/Signals.inc:639:1
 #2 0x000055b1ed1b32b8 llvm::sys::RunSignalHandlers() /home/user/src/llvm-project/llvm/lib/Support/Signals.cpp:104:20
 #3 0x000055b1ed1b4f25 SignalHandler(int) /home/user/src/llvm-project/llvm/lib/Support/Unix/Signals.inc:410:1
 #4 0x00007fcd36e3af90 (/lib/x86_64-linux-gnu/libc.so.6+0x3bf90)
 #5 0x00007fcd36e89ccc __pthread_kill_implementation ./nptl/pthread_kill.c:44:76
 #6 0x00007fcd36e3aef2 raise ./signal/../sysdeps/posix/raise.c:27:6
 #7 0x00007fcd36e25472 abort ./stdlib/abort.c:81:7
 #8 0x00007fcd36e25395 _nl_load_domain ./intl/loadmsgcat.c:1177:9
 #9 0x00007fcd36e33df2 (/lib/x86_64-linux-gnu/libc.so.6+0x34df2)
#10 0x000055b1eb39b534 llvm::MCOperand::getReg() const /home/user/src/llvm-project/llvm/include/llvm/MC/MCInst.h:71:12
#11 0x000055b1eb89c31f (anonymous namespace)::X86OpcodePrefixHelper::getRegEncoding(llvm::MCInst const&, unsigned int) const /home/user/src/llvm-project/llvm/lib/Target/X86/MCTargetDesc/X86MCCodeEmitter.cpp:138:32
#12 0x000055b1eb89c4d9 (anonymous namespace)::X86OpcodePrefixHelper::setB(llvm::MCInst const&, unsigned int) /home/user/src/llvm-project/llvm/lib/Target/X86/MCTargetDesc/X86MCCodeEmitter.cpp:155:35
#13 0x000055b1eb89f645 (anonymous namespace)::X86MCCodeEmitter::emitREXPrefix(int, llvm::MCInst const&, llvm::MCSubtargetInfo const&, llvm::raw_ostream&) const /home/user/src/llvm-project/llvm/lib/Target/X86/MCTargetDesc/X86MCCodeEmitter.cpp:1224:16
#14 0x000055b1eb89f99d (anonymous namespace)::X86MCCodeEmitter::emitOpcodePrefix(int, llvm::MCInst const&, llvm::MCSubtargetInfo const&, llvm::raw_ostream&) const /home/user/src/llvm-project/llvm/lib/Target/X86/MCTargetDesc/X86MCCodeEmitter.cpp:1315:34
#15 0x000055b1eb89e77f (anonymous namespace)::X86MCCodeEmitter::emitPrefixImpl(unsigned int&, llvm::MCInst const&, llvm::MCSubtargetInfo const&, llvm::raw_ostream&) const /home/user/src/llvm-project/llvm/lib/Target/X86/MCTargetDesc/X86MCCodeEmitter.cpp:842:1
#16 0x000055b1eb89fba7 (anonymous namespace)::X86MCCodeEmitter::encodeInstruction(llvm::MCInst const&, llvm::raw_ostream&, llvm::SmallVectorImpl<llvm::MCFixup>&, llvm::MCSubtargetInfo const&) const /home/user/src/llvm-project/llvm/lib/Target/X86/MCTargetDesc/X86MCCodeEmitter.cpp:1370:35
#17 0x000055b1ec8ec8c6 llvm::MCELFStreamer::emitInstToData(llvm::MCInst const&, llvm::MCSubtargetInfo const&) /home/user/src/llvm-project/llvm/lib/MC/MCELFStreamer.cpp:557:22
#18 0x000055b1ec918fcc llvm::MCObjectStreamer::emitInstructionImpl(llvm::MCInst const&, llvm::MCSubtargetInfo const&) /home/user/src/llvm-project/llvm/lib/MC/MCObjectStreamer.cpp:442:5
#19 0x000055b1ec918e53 llvm::MCObjectStreamer::emitInstruction(llvm::MCInst const&, llvm::MCSubtargetInfo const&) /home/user/src/llvm-project/llvm/lib/MC/MCObjectStreamer.cpp:422:15
#20 0x000055b1eb3b6374 llvm::X86AsmPrinter::EmitAndCountInstruction(llvm::MCInst&) /home/user/src/llvm-project/llvm/lib/Target/X86/X86MCInstLower.cpp:130:24
#21 0x000055b1eb3c1d9b llvm::X86AsmPrinter::emitInstruction(llvm::MachineInstr const*) /home/user/src/llvm-project/llvm/lib/Target/X86/X86MCInstLower.cpp:2761:26
#22 0x000055b1ebbf60f2 llvm::AsmPrinter::emitFunctionBody() /home/user/src/llvm-project/llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp:1716:9
#23 0x000055b1eb3a9c9f llvm::X86AsmPrinter::runOnMachineFunction(llvm::MachineFunction&) /home/user/src/llvm-project/llvm/lib/Target/X86/X86AsmPrinter.cpp:89:0
#24 0x000055b1ec01a1b7 llvm::MachineFunctionPass::runOnFunction(llvm::Function&) /home/user/src/llvm-project/llvm/lib/CodeGen/MachineFunctionPass.cpp:91:33
#25 0x000055b1ec76b27f llvm::FPPassManager::runOnFunction(llvm::Function&) /home/user/src/llvm-project/llvm/lib/IR/LegacyPassManager.cpp:1430:20
#26 0x000055b1ec76b4ef llvm::FPPassManager::runOnModule(llvm::Module&) /home/user/src/llvm-project/llvm/lib/IR/LegacyPassManager.cpp:1476:13
#27 0x000055b1ec76b916 (anonymous namespace)::MPPassManager::runOnModule(llvm::Module&) /home/user/src/llvm-project/llvm/lib/IR/LegacyPassManager.cpp:1545:20
#28 0x000055b1ec766c36 llvm::legacy::PassManagerImpl::run(llvm::Module&) /home/user/src/llvm-project/llvm/lib/IR/LegacyPassManager.cpp:535:13
#29 0x000055b1ec76c139 llvm::legacy::PassManager::run(llvm::Module&) /home/user/src/llvm-project/llvm/lib/IR/LegacyPassManager.cpp:1673:1
#30 0x000055b1eb34b6f4 compileModule(char**, llvm::LLVMContext&) /home/user/src/llvm-project/llvm/tools/llc/llc.cpp:736:66
#31 0x000055b1eb349260 main /home/user/src/llvm-project/llvm/tools/llc/llc.cpp:420:35
#32 0x00007fcd36e2618a __libc_start_call_main ./csu/../sysdeps/nptl/libc_start_call_main.h:74:3
#33 0x00007fcd36e26245 call_init ./csu/../csu/libc-start.c:128:20
#34 0x00007fcd36e26245 __libc_start_main ./csu/../csu/libc-start.c:368:5
#35 0x000055b1eb347f21 _start (bin/llc+0x635f21)
Aborted
```

</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzcWltv2zjT_jXMDWFDInW8yIVz8LZAggZJd9HvuxEoirK5pUhBpJK4v_4FKck61E3b9LD7vkDh2tRwOM8zw5kRGaI130nGzkF4AcKrM9KavWrOK7ZnZXmWq-JwviVcaEgMNKqGqoSmYWwNvCvgbbpPK8DlDnJZtwYClOTtrlZcmlXFJa_4J1YAlAK8mU4Ckdf_637iC3irilawt1cQ4CsIUHxU07CipaxYaV7VgpecFeucAhR3U7VqG8qykgsmScX62SjLKqcPINTJGdLsmIEFMUSQg7KmdpJsVQG8YasaxR7AG4zch_3pz3_ab1HgPlZ8-FImdpKPkpVM7JdomBMFqwcfJcf1R6DbVlLDlYQbYxoN8AZWrFLNAaCkYaQA6BKSZlcxaxa0I08NN8wOc0koZVrzXLD-uVSSWXqd9oKVXDL4qHgBQeBlWZZpUtWCZVlFuMy8TLJnk9WkMdxakHkAJbVpIEChqeosb8uSNQClUChKRNZKS2mRkaKwMtiDIL7olmLSNIejU6HV4DlGDeECUiIE5BhZK4R4rNbUmE9rjhFAiR2uFddKOkg-LInQIwanyneqPrFn02mxyo2ClvVRCDkhvRdQtk9Q6if7HPpWq1UxkcRO8lk1TsJOtUJJmKQpDsJ0Kho4UU6rGrY7M8hjKx_hXg6g8Nn316pecyct9L7TPNHYGYEnmsOOnqaVdFB71GKxYTSqjzpoTDBqLEXWMMcWRtAbvlidg35tVMOG0chKnHDrJSSC7yQ8ktgw44Klj8346uuhKm1giJzQj1CqsmEMSqUPkkKpWvnEZQF1zWgriCG5YPCJC9Ew0zZyDPJFyFJBBtNPBksfJbyqSLOzsQkQ9qeGEmManreG6T5G7b6OL37CroJHSuZr-Mc1fh4d41rL3Og-71ndqJeTaM4lQFshKFytHlmjuZLdg5ubv25tYt4bU1sVaOvkHqu1soxup-kZQifdz4d-vPbW3o6b4enV9cWff8C85aKAT9zsIdGaNTZG9Poow0rSCgO7lGv5fE6iLApWrfwo1ZNcCS7b59VOtsOMN0obeHn3p5XVHw-CfGQr8vgc-rPkCeE923FtWMMK-N4p1xPDoV3G_reCGK1ybuCHxKZjeMek4W21umsUJLKAJFePbDZrFQVwBaNgOuv6NgreO_nN7dWQeEZCs4f_u714d_P2_6_vs7vN-zcAXw0OeKxW-lDlSvBPrIGjWyBAW1PVAG27rLwWAq4qWrcAX81Rw9XKFjRzqBnAVyr_u1tXCGotA2i7VxUDaNtqu6-3uqHDwnWj_mbU9D8B2nJJRVuwceD20n28ldqs9wBvXNWDrXSdQAG5NNBJ4g3Am9vLdzVriCy6nztm7tkO2LKWQqqkdt7dDCEAQeRxPUoAFAEU2SL7fs815BpKZSCBTe9GqHrlyLd1EsWwJFywoo-ku5vrzcM11G1ecTstb3ewYbVqbDMCbTTrYzjvuNm3-ZqqakS6IIRr3TIN0NY5tecFmj2DtCF6D-0uNg2hQ3vzYOy2LtqqPgaZtwZeeteoXUMqm07aikkXgxMv_6iTfbvGfSulbapqom3GiY-J-M4O3BJJdtbzMVQSdo2Olfp8aYDiHg06pfZDEjnvVbk4wLuGS3PUWg4rWr3f2EvExwqGPeg9e57nhWHus8LPw6CMJnGlD7r74hZ1TL-31AOUjEINecqUNg0jlYskm6pNF1ffsQEEzwHaPrS1DRyAtn9K_mwH-E4Soddc2j0VRiHAGzSWYOwvASSlBxfWdjreEFkIa0biaina_BoTI2yztD9aiBYWYpQnpyi-b-XMUH3cnT9g4mAbre3u8D3bDiNvNA4vjAtKFMIlX7_MnYHvzbkKenPikhY4YpiUqQcdD73CvkKNlck9oGut1hFAF94zzsvUG7tUgHA415mklFKYZbXZ2_Yi-8iFyOwrC7NJgri9tAZoK2sjANpOxdbOZkthHI36o6XNrESwIVwzp0c7xABt1-7XQResttmtVtox4iSdZhTb8BkVx3PFKAxiZItiYzrFpug4cUNOQ2JfhSa7O1lqwGkIMykyoUiRFcpmCKeLSwfWDld6R0mnzvdja9KEy3SBFRcl-k7_BEWJjv6xG3iWgnKc5iEOvqe0_ew667sXxdG-WYbJk5Riv7SYiVTyUKlWQ_v2pWuXFtPOyg9J9K6mqmB3DSv58xsmatZMAVxLqgoud7NE2lnRF-wuk07r_SsRd47p-jCAtrZtsoC7gSumaTd4e3mpCnZdcWNYM-QLnHTvyUcy0JKMoEh_gAzNzMX3UvDbwIe21uBwBI8X4MsoCL8B_Ex5N8oqbu6vP3SEDBn2Er7Iw_ThQ5t3XftbWaovSC3L8m8PHoSC7qjlSGCwJDBNi9cTOA2q_1UOse-CMBg5DBccsjj-lnT0BQ479t5WtQAome-0zwj7r2czCdDYblguo2U85iR-JZc2nzPLUNO6fvxrWe2l9nl89lARIf5i1KjG-QhfTpVu-XNbA3z9He74_QHcndZOsmg8JZ0mjCY0mtl-fbN9cHRMA9US-F5dEUO-ndmXaHgFAX2nMDGvBxmG8eStxGJMZhhTPykpnfc0uV3hNMw-gvpN-Y9inZvZww3cNpp4NF2iZSH-XrT_TqTIJYwRKlo0q3mE42mz-iGJNroa3tDdkN0PG1lcqlZ-Be_rMSy2ptuLVuONeprsRLsR0VhJ0LyxxdQv0vxlLC_6jNA9l10KHHzy2lfsb8GD4sh26mhsL9C8Oc3LyCvRBNApNMOBzYUqDq9_37Z57w8mAdpO1pj-GHwQu4un8eUHzVtKTFKali_7oGnlO9mTPVh_yhHjs58XVZ8BSmxR9EY4swaPej7x8xh-0bQ7ovUE1Ek0Pw5jdM6J5XscqbtDxCOQWZdF4yhH8dQv2zs7eTjf--UQ3t4DtL1hO0IPk3WHoAq6nT1xQ7S0PmDfYv1tfxU7DaZ-6BdZHkcuM42Wx0vLUz_6Wkd2-2-BEwbhwhHJAk5E8bTXEU5Tf8I66utavR7H77M_xOHCG-nCfOrj9Ovm_wOm-1GMZ609XhTqII_KAFJV1VywY2DQPWlcldrMW4ybm79uL5U07PlVRdkoJXR3zdB99lbG2IZ7NFYsvCjBQYoiD7pTuZ-yYIAWzffxMHo4EYz8hMAsEzynmTakMRklQmTHg0Gq28-PLvuj0VOTuiM0-94_htHxkPm4KApC97cHGZfcLNfpvlrlK6e8O4pEyXxrLY-KO6UzJKdAnFSOo2TW0OJw4Za4RD7stLq_nBkukdyJZoTDEvnHI81NrhrDipNXv2fFOS5SnJIzdu5HcRziJAzQ2f6cRkURxkmUFAwHSRGEIQs8lPhlEgeJF8Rn_Bx5CHsIxQiFYYDWOPVRjiNW0CIpCS1B4LGKcLEeLozP3D3aeeR7ODkTJGdCuz8fQkiyJ-geAoRAeHXWnLuoytudBoEnuDZ61GK4EexcCNrdvjENuXQXuDmhH5nsb5dP35ydtY04f_39nzP9PwEAAP__vnE68Q">