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

    <tr>
        <th>Summary</th>
        <td>
            [x86_64] Passing v1i1 as function argument crashes on icelake-server
        </td>
    </tr>

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

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

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

<pre>
    [Demo on Compiler Explorer](https://godbolt.org/z/vrrMx6Pzq)

- If the fcmp is replaced with a `load <1 x i1>, ptr @G`, the crash error changes to "Cannot emit physreg copy instruction"
- The crash disappears when `-mcpu=icelake-server` is removed.

Code:
```llvm
@G = global <1 x i1> <i1 true>
define <1 x i1> @f(<1 x float> %0) {
  %A = fcmp oeq <1 x float> %0, <float 0x36A0000000000000>
  %B = call <1 x i1> @g(<1 x i1> %A)
  ret <1 x i1> %B
}

declare <1 x i1> @g(<1 x i1> %0)
```

Crash backtrace:
```
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-trunk/bin/llc -o /app/output.s -x86-asm-syntax=intel -mtriple=x86_64 -mcpu=icelake-server <source>
1.      Running pass 'Function Pass Manager' on module '<source>'.
2.      Running pass 'X86 Domain Reassignment Pass' on function '@f'
 #0 0x000000000305a128 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/opt/compiler-explorer/clang-trunk/bin/llc+0x305a128)
 #1 0x0000000003057cec SignalHandler(int) Signals.cpp:0:0
 #2 0x00007fe6bc5b8420 __restore_rt (/lib/x86_64-linux-gnu/libpthread.so.0+0x14420)
 #3 0x00000000018d3b4d (anonymous namespace)::X86DomainReassignment::visitRegister((anonymous namespace)::Closure&, llvm::Register, (anonymous namespace)::RegDomain&, llvm::SmallVectorImpl<unsigned int>&) (.isra.0) X86DomainReassignment.cpp:0:0
 #4 0x00000000018d51a9 (anonymous namespace)::X86DomainReassignment::runOnMachineFunction(llvm::MachineFunction&) (.part.0) X86DomainReassignment.cpp:0:0
 #5 0x0000000002439700 llvm::MachineFunctionPass::runOnFunction(llvm::Function&) (.part.0) MachineFunctionPass.cpp:0:0
 #6 0x000000000291aeb2 llvm::FPPassManager::runOnFunction(llvm::Function&) (/opt/compiler-explorer/clang-trunk/bin/llc+0x291aeb2)
 #7 0x000000000291b031 llvm::FPPassManager::runOnModule(llvm::Module&) (/opt/compiler-explorer/clang-trunk/bin/llc+0x291b031)
 #8 0x000000000291cba0 llvm::legacy::PassManagerImpl::run(llvm::Module&) (/opt/compiler-explorer/clang-trunk/bin/llc+0x291cba0)
 #9 0x00000000007673f0 compileModule(char**, llvm::LLVMContext&) llc.cpp:0:0
#10 0x00000000006a8b82 main (/opt/compiler-explorer/clang-trunk/bin/llc+0x6a8b82)
#11 0x00007fe6bc05c083 __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x24083)
#12 0x000000000075f33e _start (/opt/compiler-explorer/clang-trunk/bin/llc+0x75f33e)
Program terminated with signal: SIGSEGV
Compiler returned: 139
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJy0l11v4yoaxz8NuUGJMHb8cpGLNGm6I021VXs0OncRxo8dthh8ALfp-fQrsPPa7MzOzG6VtvGD_efH84IfmLWiUQALNL9D8_WE9W6nzUKzV8Mnpa4-_MAaWo21wivddkKCwff7TmoDBs3XiOY75zqL4iWiG0Q3ja5KLd1MmwbRzd-Ibt6MedynT3__hWiByBqR5fB3ir_U2O0A17ztsLDYQCcZhwq_C7fDDKOUSM0qjOJVhPdYRCi-R3SFO2cwSsgDSom_9BLcMLvDYIw2mO-YasBipzGidMWU0g5DKxzudh_WQIO57j6wUNaZnjuhFaL0gPTHUawSlnUdMGPx-w6Up5m2vOtRvBYcJHuFqQXzBgalZKBv9RtUs_MlrnQF3jODKSXDR8q3djQl5AGjeI0bqUsmL1bqL0SEnenBrzvcX0EtFFzdlpAa0Xy01VIzF8x0ThAtMMruhmexNy3DbMHhGv7Ctx9aeXuwYbKP0yU5_zmyBL27oMeZvGZPSHOCGm10vjymAMYGHL4eH1FRtj73YgVcMvN52bdmIKckO7j7IiAhtCXjr84wfiM2w-XT1_vlyz22fenThuGyb3x2auN8Vl0lvHC7vpxx3SK6CaEd_k07o_8F3CG6Edb2YBHdYKYqLBSXfQVneXvkGZPnxTH-iqu-7Y6AZIZI8WR0Y1iLmWn6FpTzEBjRje78LHwszykcypNuuGSqmTrTq1dEN6VQAY7jqa-NDes6_3Tvut7NLJ7u83TKbDu1H8qxvU905UDiaeuM6CSgeL3P022a4NuF4ANkdW_4KWEjj_3cKyVUgztmLUY02_QqlB1-8oZHpljjYTO_x7S66iX4uy7EaDa6ht4S_DNP8Vq3TCj8DMOW5t0T9Efd-jCnVw4Vk42JiGhMMNkfEzwmcxbRHIdQxksUL-2HHb48GaFcCM4fIXtofrrJsPetts4AaxFNfREJ5UIB0vxXQoToHdmPLKeqQTSOrmAzDhy_iEYx-Q-mKulF83HuwWxnvPOZRMLvUYiOQlkNacnnZZ5QgrdbA9ZpA1vjRnQpSkQ3Q-SnUqh-P21UPwx0bmeAVTOrZyQQR0lCyQVvfM4b5VVcJpVXZkqrj1b3FivWgu2CQ4vBmX_m6RDP83AOQ2_CCvcMjbAurPQHSiupbW9gDMkpXCeF1Y9gnqEZYD6JvLRMym_AnTZf2k6ieNWr8D6tQvB93qZjCsyENWwWduSbi7sdouTKd_OIFb_hO9Orf6pHxndCwaEIL5L409gRv2PG_TT-_ByfJnGREYL_42yhWk-cNwG_S3ZD7zZXesFVRAxKesa1efKPHvalnyb65WofSS6qJ7tCLUkc_Reoj2EbvYztaPpfYHqKC8z8CpOX7DzSEhrGP8ZN9AQ8FM0I_X-D9SwXsMU5LMnSLK4JHoWPjuM7ZhBdhs95zX_9-u1xpZWDvRvxpOSf08xv1BevFZKyvMwpDm-p31nRoHNqc2gcRRc7OZlzksd4u5Wi5FvrmHHbs1m_t51zv5Gng-MSkscXs9BLt83rOAY86P_Wggal41SHJseBaYVi7nAesOFd5juely8PL_cP3w4t9ngoMeB6o6Dyd0TxdRM4qRZxVcQFm8AiSgtSxFlepJPdok6TokxrElMa1WkG87TMAJICSloXnNcTsaCExiQnlJB5HqWzrIA6T0pKKCcpkBolBFom5MwniT_3TEK_t0iTmMYTyUqQNpyvKFXwjsOgP3HM1xOzCJ1i2TcWJUQK6-xJxQknw8FsiBWar0ND4xuft0hEmNlTV3PoCIeGEqxveS6bs0lv5OLXO9ewmH8HAAD__-VUPP0">