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

    <tr>
        <th>Summary</th>
        <td>
            `llc` crash when combining `naked` function with inline assembly
        </td>
    </tr>

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

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

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

<pre>
    ```llvm
define float @foo(float) naked {
 %2 = call float asm "movss $1, $0", "={xmm7},x"(float %0)
  ret float %2
}
```

([Godbolt link](https://godbolt.org/z/bdcKsTMob))

Running this through `llc` produces an internal compiler error:
```
error: scalar-to-vector conversion failed, possible invalid constraint for vector type
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-15.0.0/bin/llc -o /app/output.s -x86-asm-syntax=intel <source>
1.      Running pass 'Function Pass Manager' on module '<source>'.
2.      Running pass 'X86 DAG->DAG Instruction Selection' on function '@foo'
 #0 0x000055f08b0dc594 PrintStackTraceSignalHandler(void*) Signals.cpp:0:0
 #1 0x000055f08b0d9df4 SignalHandler(int) Signals.cpp:0:0
 #2 0x00007f108894d420 __restore_rt (/lib/x86_64-linux-gnu/libpthread.so.0+0x14420)
 #3 0x000055f08af26012 llvm::InstrEmitter::getVR(llvm::SDValue, llvm::DenseMap<llvm::SDValue, llvm::Register, llvm::DenseMapInfo<llvm::SDValue, void>, llvm::detail::DenseMapPair<llvm::SDValue, llvm::Register>>&) (/opt/compiler-explorer/clang-15.0.0/bin/llc+0x2ee8012)
 #4 0x000055f08af28722 llvm::InstrEmitter::EmitSubregNode(llvm::SDNode*, llvm::DenseMap<llvm::SDValue, llvm::Register, llvm::DenseMapInfo<llvm::SDValue, void>, llvm::detail::DenseMapPair<llvm::SDValue, llvm::Register>>&, bool, bool) (/opt/compiler-explorer/clang-15.0.0/bin/llc+0x2eea722)
 #5 0x000055f08af2b140 llvm::InstrEmitter::EmitMachineNode(llvm::SDNode*, bool, bool, llvm::DenseMap<llvm::SDValue, llvm::Register, llvm::DenseMapInfo<llvm::SDValue, void>, llvm::detail::DenseMapPair<llvm::SDValue, llvm::Register>>&) (/opt/compiler-explorer/clang-15.0.0/bin/llc+0x2eed140)
 #6 0x000055f08adef355 llvm::ScheduleDAGSDNodes::EmitSchedule(llvm::MachineInstrBundleIterator<llvm::MachineInstr, false>&)::'lambda'(llvm::SDNode*, bool, bool, llvm::DenseMap<llvm::SDValue, llvm::Register, llvm::DenseMapInfo<llvm::SDValue, void>, llvm::detail::DenseMapPair<llvm::SDValue, llvm::Register>>&)::operator()(llvm::SDNode*, bool, bool, llvm::DenseMap<llvm::SDValue, llvm::Register, llvm::DenseMapInfo<llvm::SDValue, void>, llvm::detail::DenseMapPair<llvm::SDValue, llvm::Register>>&) const ScheduleDAGSDNodes.cpp:0:0
 #7 0x000055f08adf4c7a llvm::ScheduleDAGSDNodes::EmitSchedule(llvm::MachineInstrBundleIterator<llvm::MachineInstr, false>&) (/opt/compiler-explorer/clang-15.0.0/bin/llc+0x2db6c7a)
 #8 0x000055f08aebceda llvm::SelectionDAGISel::CodeGenAndEmitDAG() (/opt/compiler-explorer/clang-15.0.0/bin/llc+0x2e7eeda)
 #9 0x000055f08aebfaa1 llvm::SelectionDAGISel::SelectAllBasicBlocks(llvm::Function const&) (/opt/compiler-explorer/clang-15.0.0/bin/llc+0x2e81aa1)
#10 0x000055f08aec23a8 llvm::SelectionDAGISel::runOnMachineFunction(llvm::MachineFunction&) (.part.0) SelectionDAGISel.cpp:0:0
#11 0x000055f089a1c605 (anonymous namespace)::X86DAGToDAGISel::runOnMachineFunction(llvm::MachineFunction&) X86ISelDAGToDAG.cpp:0:0
#12 0x000055f08a3d2449 llvm::MachineFunctionPass::runOnFunction(llvm::Function&) (.part.0) MachineFunctionPass.cpp:0:0
#13 0x000055f08a862c10 llvm::FPPassManager::runOnFunction(llvm::Function&) (/opt/compiler-explorer/clang-15.0.0/bin/llc+0x2824c10)
#14 0x000055f08a862d89 llvm::FPPassManager::runOnModule(llvm::Module&) (/opt/compiler-explorer/clang-15.0.0/bin/llc+0x2824d89)
#15 0x000055f08a863970 llvm::legacy::PassManagerImpl::run(llvm::Module&) (/opt/compiler-explorer/clang-15.0.0/bin/llc+0x2825970)
#16 0x000055f0889df60b compileModule(char**, llvm::LLVMContext&) llc.cpp:0:0
#17 0x000055f0889301c2 main (/opt/compiler-explorer/clang-15.0.0/bin/llc+0x8f21c2)
#18 0x00007f10883fb083 __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x24083)
#19 0x000055f0889d78fe _start (/opt/compiler-explorer/clang-15.0.0/bin/llc+0x9998fe)
Compiler returned: 139
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzkWF1v2zrS_jX0DWGDor4vfOHEcd7gbXaDpih6F1DkSOaGIgWSSp399QtKtmO5Ps1208UC5wCJLfNj5pnnGVLkMOdkowGWKL1C6XrGer81dtk-A3iws8qI1yXKyPin1EuLyBqRlYBaasC1MsxjlJDaGESL4SeiJdbsGQRG-dU4GiOaUoziNeZMqf0s5lqMKG3Ni3MY0SRC9Dp8E0Tp-EhRvEb51a5tc5SvEb3eDV3F3itNCaLl3gO24PGxg46tYdb4cIhg_3P8pAVKr26NqIzyWEn9jNI1osXW-86heIXoBtFNM_YvjG0Q3fwT0U0l-P-7L_emCt4PAMbPz73WUjfYb6XDfmtN32zxQBxHGcGdNaLn4DDTWGoPVjOFuWk7qcBisNbY4PcS5EMndpwpZufezF-Ae2MxN_oFrJNG45pJBSKQ1xnnZKUAS_3ClBRhlPOWSe1xbSzez_WvHYz2Hz7drB5vsOurVnrMcNU32EJnrMfe4DNKpN_21YKbFtHNkBPj17yz5h_APaIb6VwPDtENZlpgqbnqBWC_Bcwtc1tcMf7sLeOwGN0_esafsejb7kgAWSBSPljTWNZiZpu-Be0DCIzoxnTBy4G6Oew6ZSzY0KaYbuZRuiALEsSSekDH8dyEiazrwvTed71fODzfFdmcuXbuXrVnOxSvgy4Ko_jamd5yQPHNCCcKcA76dmzI2XzTa-4D8w-h4Z5p1gQQOTYat0b0CsKoiTGa70Omlwx-KzK8Xt3OUXyzXt3iuyBaP7p4BAXD095-ffAdPOxXYH5cbzHBZEcIIWlak6Iigqdlgh-s1H7g-ksg_1E2mqn_Y1qoALt4MVIgugoreOxyC94FRcjwf7QdndkuRZ3gc2NS-3cN0b2hvI5IUZSJSCjBT08WnDcWnmxYzEXQT1aIbnZF9pQlcyV1v5s3uh87Or-1wMTCmSD4FdlFSUJPdgZE4_gUL6tpRiKKh8SNVyheDSzftNJ7sGNLA_7rZ0SLtzGP669M9RDW1lvjGrSDe9ah-PqdkZ-hkS6Yvzj_Ttfmj2wMmoS8OZ0owDOppkYemLS_ACS-GaxmQaOR5F9fUwPdFKAgEZ0QnpwRXuT054SHH499ZaH5mxFwxvzYtPozcn-NK2PU2_fHtWA5nWqRnmlRRQl5V4t7xrdSw8_FmEL_84nzcTFElEx3omwihoA6TtMTEI98C-GtsV7djky7k-Wx75vosddpEPGqD1vvnQfLvJlGfDoshF0z5eAY5jgG0VyxthIsvEb-upqPPabbsxgSoPwL0zEeHPGPiXn5hZ5P87tOeM7-5_n9wWUsqoznbLKMi0mYUHEQkzAPR7X16vbuEfZiXBsBt6BXWoRw16vbMbk-usnkAGKKrjxDVzMWvYtubF0pdcWc5FfK8Gc3keJ41h0y4vdskEXEWPR2h6JxRKbYOY1Z8S522-u_630OHGBeSqO3vgP4RcesD9BKfG76xwQP-CZH35JFPCNpMMS00a-t6R3WrAXXMQ7HzeRbka1Xt1_M78D8rciCjYO9yyDphMRY0CQp8R9aDneXE0wXwfyUuQv2LuOansOLjPLo9CiyeQhTD7eoX0b0gUQsaMIjMknE5ByrKMp_A-u9-XEP2zf9HpyiKCc40zOccZmfcqqgYfx1fD5BfNd2b3n430OblvmU1cn5pyhFnZHqUAE5Use3zA7v17Mj_6dPX--vjfawO2w_SvHLmZZP_cQk4hS3TOqPhVTUNOJ0ElExucLGdUWKGD89KVnxJ-eZ9U8nbn92j-XhBpuNzCWkiCdeyjPe8qIGPNr_WERlWRY1HH1dH4pRFnxvNQgUr3AUl2c1qZlYxqKMSzaDZZTltKRpStLZdplwGldpVtA0ISmUPE1iABolnLOMceAzuaSExiQiaRTHUZIuasJpxdKsLpJSiDxCCYGWSbUIui-MbWZDLWmZlkVCZ4pVoNxQrKRUw3c8dCJKUbqe2eVQhar6xqGEKOm8e7PipVewfKvFjXWo71sIL7S2kkMZBmVkKF2GAcf6ynfpt1hqJTVg5hy0lXqd9VYt__Oq2BDMvwIAAP__-lp0Ew">