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

    <tr>
        <th>Summary</th>
        <td>
            `x86-64-v3+avx512f` crash on `X86 DAG->DAG Instruction Selection`
        </td>
    </tr>

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

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

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

<pre>
    Here's a repro of the crash with clang:
```llvm
target triple = "x86_64-unknown-linux-gnu"

define i32 @foo(float %0, float %1) #0 {
Entry:
  %2 = call float @llvm.fabs.f32(float %0)
  %3 = bitcast float %2 to i32
  %4 = icmp ugt i32 %3, 1
  %5 = call float @llvm.fabs.f32(float %1)
  %6 = bitcast float %5 to i32
  %7 = icmp ugt i32 %6, 1
  %8 = select i1 %4, i1 true, i1 %7
  %9 = zext i1 %8 to i32
  ret i32 %9
}

declare float @llvm.fabs.f32(float) #1
uselistorder ptr @llvm.fabs.f32, { 1, 0 }

attributes #0 = { "target-features"="+avx512f,-evex512" }
```

Here's a godbolt of it happening on trunk assertions:
https://llvm.godbolt.org/z/aPP7dE74x

<details>

<summary>Stack Trace</summary>

```
❯ clang-18 -c ir.ll -O3
fatal error: error in backend: Cannot select: t90: v4i1 = setcc t63, t79, setgt:ch
  t63: v4i32 = and t61, t91
    t61: v4i32 = bitcast t86
      t86: v4f32 = X86ISD::INSERTPS t72, t84, TargetConstant:i8<16>
        t72: v4f32 = scalar_to_vector t4
          t4: f32,ch = CopyFromReg t0, Register:f32 %1
            t3: f32 = Register %1
        t84: v4f32 = scalar_to_vector t2
          t2: f32,ch = CopyFromReg t0, Register:f32 %0
            t1: f32 = Register %0
        t85: i8 = TargetConstant<16>
    t91: v4i32,ch = X86ISD::VBROADCAST_LOAD<(load (s32) from constant-pool)> t0, t83
      t83: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<float 0x7FFFFFFFE0000000> 0
        t82: i64 = TargetConstantPool<float 0x7FFFFFFFE0000000> 0
  t79: v4i32,ch = X86ISD::VBROADCAST_LOAD<(load (s32) from constant-pool)> t0, t81
    t81: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
      t80: i64 = TargetConstantPool<i32 1> 0
In function: __unordsf2
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace, preprocessed source, and associated run script.
Stack dump:
0.      Program arguments: clang-18 -c ir.ll -O3
1.      Code generation
2.      Running pass 'Function Pass Manager' on module 'ir.ll'.
3.      Running pass 'X86 DAG->DAG Instruction Selection' on function '@__unordsf2'
 #0 0x000055cdf522adf0 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/home/david/local/llvm18-assert/bin/clang-18+0x3f00df0)
 #1 0x000055cdf52281ff llvm::sys::RunSignalHandlers() (/home/david/local/llvm18-assert/bin/clang-18+0x3efe1ff)
 #2 0x000055cdf516e72a llvm::CrashRecoveryContext::HandleExit(int) (/home/david/local/llvm18-assert/bin/clang-18+0x3e4472a)
 #3 0x000055cdf5222792 llvm::sys::Process::Exit(int, bool) (/home/david/local/llvm18-assert/bin/clang-18+0x3ef8792)
 #4 0x000055cdf244fff8 LLVMErrorHandler(void*, char const*, bool) cc1_main.cpp:0:0
 #5 0x000055cdf517a500 llvm::report_fatal_error(llvm::Twine const&, bool) (/home/david/local/llvm18-assert/bin/clang-18+0x3e50500)
 #6 0x000055cdf63756cd llvm::SelectionDAGISel::CannotYetSelect(llvm::SDNode*) (/home/david/local/llvm18-assert/bin/clang-18+0x504b6cd)
 #7 0x000055cdf6379dc1 llvm::SelectionDAGISel::SelectCodeCommon(llvm::SDNode*, unsigned char const*, unsigned int) (/home/david/local/llvm18-assert/bin/clang-18+0x504fdc1)
 #8 0x000055cdf3d68977 (anonymous namespace)::X86DAGToDAGISel::Select(llvm::SDNode*) X86ISelDAGToDAG.cpp:0:0
 #9 0x000055cdf6371dba llvm::SelectionDAGISel::DoInstructionSelection() (/home/david/local/llvm18-assert/bin/clang-18+0x5047dba)
#10 0x000055cdf637f642 llvm::SelectionDAGISel::CodeGenAndEmitDAG() (/home/david/local/llvm18-assert/bin/clang-18+0x5055642)
#11 0x000055cdf63829b8 llvm::SelectionDAGISel::SelectAllBasicBlocks(llvm::Function const&) (/home/david/local/llvm18-assert/bin/clang-18+0x50589b8)
#12 0x000055cdf63846e5 llvm::SelectionDAGISel::runOnMachineFunction(llvm::MachineFunction&) (.part.0) SelectionDAGISel.cpp:0:0
#13 0x000055cdf3d723c0 (anonymous namespace)::X86DAGToDAGISel::runOnMachineFunction(llvm::MachineFunction&) X86ISelDAGToDAG.cpp:0:0
#14 0x000055cdf45aeef7 llvm::MachineFunctionPass::runOnFunction(llvm::Function&) (.part.0) MachineFunctionPass.cpp:0:0
#15 0x000055cdf4ba141e llvm::FPPassManager::runOnFunction(llvm::Function&) (/home/david/local/llvm18-assert/bin/clang-18+0x387741e)
#16 0x000055cdf4ba1669 llvm::FPPassManager::runOnModule(llvm::Module&) (/home/david/local/llvm18-assert/bin/clang-18+0x3877669)
#17 0x000055cdf4ba1fb5 llvm::legacy::PassManagerImpl::run(llvm::Module&) (/home/david/local/llvm18-assert/bin/clang-18+0x3877fb5)
#18 0x000055cdf5498626 clang::EmitBackendOutput(clang::DiagnosticsEngine&, clang::HeaderSearchOptions const&, clang::CodeGenOptions const&, clang::TargetOptions const&, clang::LangOptions const&, llvm::StringRef, llvm::Module*, clang::BackendAction, llvm::IntrusiveRefCntPtr<llvm::vfs::FileSystem>, std::unique_ptr<llvm::raw_pwrite_stream, std::default_delete<llvm::raw_pwrite_stream>>, clang::BackendConsumer*) (/home/david/local/llvm18-assert/bin/clang-18+0x416e626)
#19 0x000055cdf5a95eb0 clang::CodeGenAction::ExecuteAction() (/home/david/local/llvm18-assert/bin/clang-18+0x476beb0)
#20 0x000055cdf5d1ea39 clang::FrontendAction::Execute() (/home/david/local/llvm18-assert/bin/clang-18+0x49f4a39)
#21 0x000055cdf5c99425 clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) (/home/david/local/llvm18-assert/bin/clang-18+0x496f425)
#22 0x000055cdf5de98c5 clang::ExecuteCompilerInvocation(clang::CompilerInstance*) (/home/david/local/llvm18-assert/bin/clang-18+0x4abf8c5)
#23 0x000055cdf24523a9 cc1_main(llvm::ArrayRef<char const*>, char const*, void*) (/home/david/local/llvm18-assert/bin/clang-18+0x11283a9)
#24 0x000055cdf244a0a3 ExecuteCC1Tool(llvm::SmallVectorImpl<char const*>&, llvm::ToolContext const&) driver.cpp:0:0
#25 0x000055cdf5ad9cbd void llvm::function_ref<void ()>::callback_fn<clang::driver::CC1Command::Execute(llvm::ArrayRef<std::optional<llvm::StringRef>>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>*, bool*) const::'lambda'()>(long) Job.cpp:0:0
#26 0x000055cdf516e660 llvm::CrashRecoveryContext::RunSafely(llvm::function_ref<void ()>) (/home/david/local/llvm18-assert/bin/clang-18+0x3e44660)
#27 0x000055cdf5ada53e clang::driver::CC1Command::Execute(llvm::ArrayRef<std::optional<llvm::StringRef>>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>*, bool*) const (.part.0) Job.cpp:0:0
#28 0x000055cdf5a9feba clang::driver::Compilation::ExecuteCommand(clang::driver::Command const&, clang::driver::Command const*&, bool) const (/home/david/local/llvm18-assert/bin/clang-18+0x4775eba)
#29 0x000055cdf5aa098d clang::driver::Compilation::ExecuteJobs(clang::driver::JobList const&, llvm::SmallVectorImpl<std::pair<int, clang::driver::Command const*>>&, bool) const (/home/david/local/llvm18-assert/bin/clang-18+0x477698d)
#30 0x000055cdf5aac594 clang::driver::Driver::ExecuteCompilation(clang::driver::Compilation&, llvm::SmallVectorImpl<std::pair<int, clang::driver::Command const*>>&) (/home/david/local/llvm18-assert/bin/clang-18+0x4782594)
#31 0x000055cdf244f616 clang_main(int, char**, llvm::ToolContext const&) (/home/david/local/llvm18-assert/bin/clang-18+0x1125616)
#32 0x000055cdf235fa9b main (/home/david/local/llvm18-assert/bin/clang-18+0x1035a9b)
#33 0x00007f87fc5d81ca __libc_start_call_main ./csu/../sysdeps/nptl/libc_start_call_main.h:74:3
#34 0x00007f87fc5d828b call_init ./csu/../csu/libc-start.c:128:20
#35 0x00007f87fc5d828b __libc_start_main ./csu/../csu/libc-start.c:347:5
#36 0x000055cdf2448ce5 _start (/home/david/local/llvm18-assert/bin/clang-18+0x111ece5)
clang-18: error: clang frontend command failed with exit code 70 (use -v to see invocation)
```

</details>
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzkWt1z26gW_2vIC2OPhL4f8qD4o5uddptJMnv3PnkQIJtbGXwBuc7-9XdAsi0Up-m23n25njaWxTmHH-cbJKw1XwvGbkFyB5L5DW7NRqrbR3bgRAqE0ptK0pfbX5hiAGUaYqjYTkkoa2g2DBKF9QZ-5WYDSYPFGkQlCOYgKEEadP-aZr_tbhms1sxAo_iuYRBEcwgQOuTpKo0nrfgi5FcxabhoD5O1aAFCvSD3l7KaCwZ5hCCIg1pKgPK6kdhAgJIAoBk8_QoBKiBAUQBBdtdxL4RRLydo0FIhB4Dgpjlyxg7qtMaVntYRGk1QDHgjx1txQ7A254kRNNIiHFDGjpKT7Q62a9PBR0lk8YYDsuSvgAl9MOllMMlrMNlFMOkYTO7INGsYMZCHbhmWhofQqJb1l1begKlwTH-yw5ElH82v2GnGHj3I5r6FSYMVe0cBvW17vK1mDddGKsoU3Bl1gW1mvQCG9sI6hDclNkbxqjVM9_5iXTK7s27Z-eqkZti0imnrjdHc_kV3eH9IQlQDNJuwPbPXAKGB6KPjD2cahM9a0ko2xgYQN3CDdzsmuFhDKax6xReItWbKcCn0yWM3xuzcL7QEaOlW2IuZSrUGaPknQEv88JDRRRYfhhODaEaZwbzRIFqMBnS73WIbF4sng8kX-KwwYSCaAbQ8D3k8o6UtECjmoFx2oT8JczghkKtp08DJ56gjqrHBDWRKSQWisruAXMAKky9MUHtvhoWQpvc4e8MUgf3ax9aVnC8aQqBJXdyYrLBfmpm1JSabo4fZ8Y4r6oIbCwpN6kxvipOHQ3fPIzwGj8nTMxV0Px1d3dP9kaf3T3Nrh6i8_-1p8fj88ARN5rzM5C5Inp3fzKTQBguLj-cgmoXpSZOw_1g2T7gmuMFqZeRqz4iRCprY54D2TlTCzq3JxnHN5O5lqeT2ka2hcXnwka25Nsxqu-7iLRzLgdBEvSQn5Mhygdgu6x2Y6BVM9EMwgwsww7dgBmOYiaXkXe4aG2Gsf-sNRwc4Yxxa9_e7x8_lfFY-Pa8-fi7nLijyRmIKAcq15SpgreQWkn6SyU7KxibmaNEv0OSR70xO5TyNX032L2WTgHq8fxghf7Ayo5KnMYhmXV4MDtmy-yyC7mNnfKUNNJzrktDvE2dj7R9Q1DA28_Dn1GRjOnylE5MH72pkzHkvYN0KYjOx5V2tWiEV1XXv7w8fF-XTAuq22nIDMazatW2NpDK28vkZe83Npq2mRG779N1_TXZK_scmPbTkWre2zixd2uKCNC1lgxbL5kvjEjSawZ3rwQjTmlGoZau625YTay0Jx4ZRqFoBNVF8Z6Yd5C7N03a7O1WWYNop6EHJtcJbiNW63TJhLPZvpfWw55tJyuCaCaawU5QbRP3gYytcadthbStstuzVCR_sjU9Y4DVTAGW29m0lbW1XiDI3E0BZDzp6Q9gfeQrn5YcJiBbz8gO8F9qothP_5CqJhdPJPprRsoE4GFgSHXsYV_-Dg42AJCG0ThDCtA6gM5ZzP_2iu4sHxYVxquwKJsrPRAp_XUltFMNbgFxnxUXfs-QALTdyywBaUrzn1LqAJLjpXSHMJ13hB2hZcQHQ8qh9gO6CQ1QHAa0HfahtgkaA87CuLwF-bMUTXwvc_IIFbZjSDswVMLGahXXtYUIepjBlGcIDTDPry4-MyD1TLzMpDDuYbqTDtjhwA1B-LaWxOM4Q9gBGI6WhrECXreziq_sxhDWDVZfBrqG_PCuQBy8ewkNxXNd1Dj9-_P3TwjZOvQEByvfSzlZaOGSDVZde-xtHfISEqy3mYkp2NuAD9_80U-JbKsNJMHT3LpWtXPu26tq3oaM_f7XbsX7W9LpaSYIk8D09HWJNoyxJCR1gPcX7vPxw_8Sa3tdcW_lvZrphD_7T_DdJmdPXzyNOgrhKCfUQZyPEBSXhu4i7uzalzuR2a9PXZcgz2Aq3a6evjX8auVIMJUFcUxJ6i8uHi4tomhdZZifCQoqXrWw1FHjL9M5lx6KD_0eezssPz_LCgt-2jCv_rDkyXnbkYqTqkFb4XVXP5aBgDOrFVRJjEsQZrc55x-bqYISyTmP0vgtLyj4wUQq62HIzLz9cDWCSpDHyAIY-wBwVVf6dHls2zR3WnNw1knzRnjlPJf-cKq4CPy-q3IOPRvDjlCXvwlet-Cw-YbLhgh2RevBfjR3xT3dYmanNUnAs-rWXWnyRHzMZikjwQzHzg5jfDSUL0qs-cYIZqzP4pmTbxQ0wXQTzTc1dkHcZl1er4gqHccgGuJYPlvXYT_5lRD9XrvIsi0Pm-WI6hpumxXfA_eRaYN-W_a2rQU3TwoOajaHW1TBsGrbG5KXviM6g77e7szf-vYDrKvEAe7UniYs8Ren56DkqbaK8686WPrdm19rqMhiec7wWUhtO9EKsuWB99zIg-YVhytQTw4psPu_cQZzX6AxI-_z8DlW323yH6CMW60skgxRmFBfrR1b7t48aL0cCeyWUvbMPWe6FUa3me_bI6pkwD0aBaHYe3td9WC95w55etGFbEC3coZuh3Ugr-H9bttqNOO32Z_dVccNWx03QgImyGreNWVHWMMPeYYwW_Zyvl2T37e3WtsFXad_iMGWpc9izl3k9RYKLhFXBBcOXx9MBt0dgpDWsvGYjEWdpxapgCA3521QaMhwVQ2hLZbdVJ8MPsV0LVVHHOPLyCPL3oqQoYpT4CtvueMPUvTtyIeyyzt5exnUSSlykdYy8hIL8HStlRU485D3G8wL2kuDXeF8t8ErOias6Jz7iyN8jJijC582el41LpfCLzRjRzN8o9KE13jycdpU_DzwMUR5h30nGm1sc4Age9TsLn90OcrgX2OKm-d0dM3cV58IqRknSyujPFbyWkyq-Z-pid4H8nTCmBamoU8VA7vEIaaWcNt1oF04uU1kSgpumwuTLqhYW6dk1url7N5mFdm-HBR1H5kWrnXKndKUBN17WPFeEU7Y8MaxW5HAIw-5HZbtzm1m5xeS06BHbGyujMDf6ODwShxtreyPVYNySDA4cnNt0OncsAGUN3lYUA5SdVYXyRoq1Jf1VVpftkY7PkNI0-K4zpMdWPOGaNS-eOr9tuisdM6Wpn6WzkU_hJGLw_9knRq3_m8bPR5W3ZhV-U3Eu5-JXde6oTS9BjxgtwVu92DdIy9Fp12ltP1nns4T5BwZo1ILgoMjpX1XEr7LSb2vhV1l95Nq81W6-Sr4nw-8wtzbvj0O_V3G9d_w96kuLnA7VNzrNx5gkRfwW1Png2iv3F-r8W2r_B9V3jb4yR0kRewoLxyfPadhvrI59xRGwyxRlH-fvl94rdBJJGnr9uf-YAUVJjYsKWpg_P1sQJbiovNmODVdW51lNEpqHBMPVquGVTaBYmZWt_U5NcGoF6hag5dRe6hdN2U4DtBQ74yBcYJpuQFRmMYjK6DxpPJ4U5ZV7RWjFBTfjebpLK3zihE8JiMoQ5SAq0Tm7ng79PaHeSi4t4qLwKM5AVCZn2enIgXLCEthJvYIPhIywcxt8Gjy-UnJ6XAnrfuMASR9BNeYNo907auzArXNSBjN3-tZqBid7aCTUjEE-6O2Lb7zN070jc36v5obeRrSICnzDbsMMxXmY56i42dxmNM0SktI8QUmWkzoNUkRwHiUVLXBdBDf8FgUoDnKUBzEKUDFlJKIBzYqEpQHNwxDEAdti3kzdSz9SrW_cg-LbMEijKL1pcMUa7d7dQ0iwr9CNAoRAMr9Rt-4Zc9WuNYiDhmujz2IMNw27BWlwyNNJGk_20eDVpjTonzpLAUEafNej1jS4aVVz--MPvvsl7W_R_wIAAP__QSTxxQ">