<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/113353>113353</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
[X86] Assertion `Subtarget.hasXOP() && "Expected XOP"' on bitreverse
</td>
</tr>
<tr>
<th>Labels</th>
<td>
new issue
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
aeubanks
</td>
</tr>
</table>
<pre>
```
$ cat /tmp/a.ll
target datalayout = "e-m:x-p:32:32-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32-a:0:32-S32"
target triple = "i386-pc-windows-msvc19.34.0"
define fastcc void @f(i64 %mul3.i9.i) #0 {
entry:
%or19.i.i.i = call i64 @llvm.bitreverse.i64(i64 %mul3.i9.i)
store i64 %or19.i.i.i, ptr null, align 8
ret void
}
; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare i64 @llvm.bitreverse.i64(i64) #1
attributes #0 = { "target-features"="+aes,+avx,+avx2,+avx512bitalg,+avx512bw,+avx512cd,+avx512dq,+avx512f,+avx512fp16,+avx512vbmi,+avx512vbmi2,+avx512vl,+avx512vnni,+avx512vpopcntdq,+bmi,+bmi2,+cmov,+crc32,+cx8,+evex512,+f16c,+fma,+fxsr,+gfni,+mmx,+pclmul,+popcnt,+sse,+sse2,+sse3,+sse4.1,+sse4.2,+ssse3,+vaes,+vpclmulqdq,+x87,+xsave" }
attributes #1 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }
$ llc -o /dev/null /tmp/a.ll
llc: ../../llvm/lib/Target/X86/X86ISelLowering.cpp:34131: virtual void llvm::X86TargetLowering::ReplaceNodeResults(SDNode *, SmallVectorImpl<SDValue> &, SelectionDAG &) const: Assertion `Subtarget.hasXOP() && "Expected XOP"' failed.
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace.
Stack dump:
0. Program arguments: /usr/local/google/home/aeubanks/repos/llvm-project/build/rel/bin/llc -o /dev/null /tmp/c.ll
1. Running pass 'Function Pass Manager' on module '/tmp/c.ll'.
2. Running pass 'X86 DAG->DAG Instruction Selection' on function '@f'
#0 0x000055e4a02f7b58 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) /usr/local/google/home/aeubanks/repos/llvm-project/build/rel/../../llvm/lib/Support/Unix/Signals.inc:723:13
#1 0x000055e4a02f579e llvm::sys::RunSignalHandlers() /usr/local/google/home/aeubanks/repos/llvm-project/build/rel/../../llvm/lib/Support/Signals.cpp:106:18
#2 0x000055e4a02f81e8 SignalHandler(int) /usr/local/google/home/aeubanks/repos/llvm-project/build/rel/../../llvm/lib/Support/Unix/Signals.inc:413:1
#3 0x00007fcedf4591a0 (/lib/x86_64-linux-gnu/libc.so.6+0x3d1a0)
#4 0x00007fcedf4a70ec __pthread_kill_implementation ./nptl/pthread_kill.c:44:76
#5 0x00007fcedf459102 gsignal ./signal/../sysdeps/posix/raise.c:27:6
#6 0x00007fcedf4424f2 abort ./stdlib/abort.c:81:7
#7 0x00007fcedf442415 _nl_load_domain ./intl/loadmsgcat.c:1177:9
#8 0x00007fcedf451d32 (/lib/x86_64-linux-gnu/libc.so.6+0x35d32)
#9 0x000055e4a14472ba llvm::X86TargetLowering::ReplaceNodeResults(llvm::SDNode*, llvm::SmallVectorImpl<llvm::SDValue>&, llvm::SelectionDAG&) const /usr/local/google/home/aeubanks/repos/llvm-project/build/rel/../../llvm/lib/Target/X86/X86ISelLowering.cpp:34096:5
#10 0x000055e49fc93854 empty /usr/local/google/home/aeubanks/repos/llvm-project/build/rel/../../llvm/include/llvm/ADT/SmallVector.h:81:46
#11 0x000055e49fc93854 llvm::DAGTypeLegalizer::CustomLowerNode(llvm::SDNode*, llvm::EVT, bool) /usr/local/google/home/aeubanks/repos/llvm-project/build/rel/../../llvm/lib/CodeGen/SelectionDAG/LegalizeTypes.cpp:933:15
#12 0x000055e49fcae64b llvm::DAGTypeLegalizer::ExpandIntegerResult(llvm::SDNode*, unsigned int) /usr/local/google/home/aeubanks/repos/llvm-project/build/rel/../../llvm/lib/CodeGen/SelectionDAG/LegalizeIntegerTypes.cpp:2783:7
#13 0x000055e49fc8fa33 llvm::DAGTypeLegalizer::run() /usr/local/google/home/aeubanks/repos/llvm-project/build/rel/../../llvm/lib/CodeGen/SelectionDAG/LegalizeTypes.cpp:0:9
#14 0x000055e49fc94d47 llvm::SelectionDAG::LegalizeTypes() /usr/local/google/home/aeubanks/repos/llvm-project/build/rel/../../llvm/lib/CodeGen/SelectionDAG/LegalizeTypes.cpp:1057:34
#15 0x000055e49fb87a57 llvm::SelectionDAGISel::CodeGenAndEmitDAG() /usr/local/google/home/aeubanks/repos/llvm-project/build/rel/../../llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp:977:23
#16 0x000055e49fb85a50 llvm::SelectionDAGISel::SelectAllBasicBlocks(llvm::Function const&) /usr/local/google/home/aeubanks/repos/llvm-project/build/rel/../../llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp:1647:8
#17 0x000055e49fb838a1 llvm::SelectionDAGISel::runOnMachineFunction(llvm::MachineFunction&) /usr/local/google/home/aeubanks/repos/llvm-project/build/rel/../../llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp:615:22
#18 0x000055e49fb81b71 llvm::SelectionDAGISelLegacy::runOnMachineFunction(llvm::MachineFunction&) /usr/local/google/home/aeubanks/repos/llvm-project/build/rel/../../llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp:374:20
#19 0x000055e49f630567 llvm::MachineFunctionPass::runOnFunction(llvm::Function&) /usr/local/google/home/aeubanks/repos/llvm-project/build/rel/../../llvm/lib/CodeGen/MachineFunctionPass.cpp:0:13
#20 0x000055e49ff09bca llvm::FPPassManager::runOnFunction(llvm::Function&) /usr/local/google/home/aeubanks/repos/llvm-project/build/rel/../../llvm/lib/IR/LegacyPassManager.cpp:0:27
#21 0x000055e49ff11562 llvm::FPPassManager::runOnModule(llvm::Module&) /usr/local/google/home/aeubanks/repos/llvm-project/build/rel/../../llvm/lib/IR/LegacyPassManager.cpp:1454:13
#22 0x000055e49ff0a6c6 runOnModule /usr/local/google/home/aeubanks/repos/llvm-project/build/rel/../../llvm/lib/IR/LegacyPassManager.cpp:1523:27
#23 0x000055e49ff0a6c6 llvm::legacy::PassManagerImpl::run(llvm::Module&) /usr/local/google/home/aeubanks/repos/llvm-project/build/rel/../../llvm/lib/IR/LegacyPassManager.cpp:541:44
#24 0x000055e49f17045b compileModule /usr/local/google/home/aeubanks/repos/llvm-project/build/rel/../../llvm/tools/llc/llc.cpp:755:17
#25 0x000055e49f17045b main /usr/local/google/home/aeubanks/repos/llvm-project/build/rel/../../llvm/tools/llc/llc.cpp:412:22
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzcWV9z3CgS_zT4hRqVAP198MM448mlanPrinOpvLkQYsZcEGgBjWfu01-BpJE0ceLdvS2v6xKXpkGi6d-vm26EqLVirzi_BukNSDdXtHOP2lxT3lVUfbNXla5P1yCLh794A-I1wAlk1EGAt65pAd7SSMr-lqNmzx2sqaOSnnTnICAbCDDmqwaQ9XHVArImOFxWLc7jZRMtm17KknBZibOAcAHIGuFitSviQVKhK-tHUkDWveLVPcEA44VtzohW8tEuQYps1bLVk1C1frKrxh4YKiOSRPF5YH-t-U4oDnfUOsbgQYsagiTeAVyILIEAp00nSSTKSABcQoBJDEF-04_lypkTIIMm6J_WBpWR8P-DKYxKCYOiJJby0ESVcIYfuLE88tCfnWVUZ502HA4PTIoBfgdbZ6DqpPQylWKvYDGOMtwFGAPIfDNHC8gN3HaKOaEVXDtnLCBrqLS3s6LsG1R6ZziHStuTYlDpTnkKoW056yR1tJIcPgkpDXedUbDhjTYngAulFT-bXnMm6Wj6T4APjKK5hdQ5I6rOcTuQ7R2a33in9p5e7Th1neHWO5Js_BXfUN9854XD8Szgs5QiXAlH5X7R8zRvsXreqn-bt3aLRouyeftQNeKyvZj5IBctpZaPt7plyo0TnpVNWlijD4NkGBk7j0Uv8AP3avrGDmVskBo6CEdremm_G2dumoGklsmmG8zr7ehla_lZwGeJnKUkQjP5_MT5kcPZH4d-it9GfMciHwRLDxxgDM8RuvQ8Onv-r4vOaS6f66RkcKV9uqv5AeCtX0_PJT8pmV8kUQTwNlx8PPsfUQG8_RyCEuDt1yLrrx_uufxFP3Ej1D5ibUiNCSI-CcKDMK6jss8zQQ9ZA7L-WmS9nnFc3_2Jt5Iy_k9d80_cdtJZgIv7jW9DgNd-8d83VMovnDltPjStBOTd_eYLlR0H5BYCnIVnuORhxW_W7_u-EjKtrPMWra3lJqQDkMX3XdUvsuiR2q-_3gFc9Gs0AzjzS_D22HLmeA3DTQxwDndUSF5HPVd3v9yu72-h7apGOEhh1e2h4a02DjoNH51rfcIBeAvwdi_cY1dFTDczTuWhWbVG_5szz6mwtvORtIVU1VAoJruaQ_fIITPUPkIfFM5Qxofp752Pkrpr2nNWjiMY_t0ZvTe0gdTsu4YrFxIfwNvOL4-t9DHmbdJ6LznA20fd-J-xYAK89TDs9yZWnZB1uO3HV0KFR34WWewcWWiw7VOnlFB72FLrYz8_Z-g73_GRKrrnxnOtFWx03fk6h_OlQpwPHOAfKP1aZHCzfr8C5NbHwQdlnen6ac4BMsyxG-f3s4RimA_VJaTk-BjHcZymPKEx3uVVWsxC2Z5sL9wZoVxwyGfvIYCL6SFDnx60dYbTZohR4VNP-dc75Aer9r5rfVACvP2XEkffIfaKShsJ5Rd7jonfeJAJNbpAneYlfw71p071qv5BVS25secl9NrARkR9BkKx30WhYkKELxAViBdwYbsv0m_KLQkKbpkwkAFDvmO83iVpiWgMA-ODwmORPWTJSgrVHVd71fU3WGR1lAF8Ex9JjWg87bkAJslSJ81jzuDDQ-seDaf1wzch5YNoWsl9FqFhmXgcqnUe2PyxKNjs97d5NulPv7M5xnBvA9CgqRdHfuzJ1rz1hLbaBk4MFZYH3Tj3e-dJdbZUneBkhyGtfPYNqlzdsxK6gobCV6XZ4s6_04BS-KDkg9S0fqh1Q0UPV6gA13c3ds9orw6h3Js0Y7O4QItqgv-gh9Lab3pmOst55KIkyXFF_2QxnUb1ZXWoqrPu7-rrfMhYaYckNrs1K7nzivtqK-l3bkvi0qeFdNwUETTP7uWOlaRIE8ib1p1ewfShwE8d681nnwQmH0SPY9Am2WQ0es7oyRmb9fvPp5b_wvdUiv9w0_e-66zTTWCk9_zLwXD75bPvqLSWr5kV3-mav-d-Y7EMq-2IyKMbE31JQo6cuRQv2aE8S6oX2bk9tlTVH5Tje2769fJjhjoVThvq167iLxIz2D_nB-cFmXKe54cs-Sl2lJAX-TGdeuXK_oeiIJ6ysIeYXCyQpE7yH2Wr0LPQ-ZaBojjNQyabwKYLsFWR0_RHYH1OHLJBP-la1beNcGG-twH60txxmYdCi8kEO7uAndI0fhF237uW8oZawW6kZt-WZfH8KtK_MPal7K2SgrLEs1JMpOQXpJCCohdJMZ36VX2k7FEoPuJfkPLdvTfNSoZSHyp4YqW4YAVV-c9Y8euOnf4vuSG5357jeOKmXHCTkTjN5tnjAp5_QZ8R8ywjfzsVz9g8KxNoyiF4ufvbxWXF5jvr7Z0fO55HvE3YHz4NlYKdZsbO8OKp9OPlxnGHUJrh34H3YziDWYb90PV2sKIkTS7ciy_cSzOWwRmiN2J4Gk5f5n4izxk-kS9nCWqmr39hm3Zrb9lbaYL6w4Iz5uWeDeVxklaQ6aYVkr-au5zWsh_F-utgbp76moJmLkqfMzccF_x9ViYIzyvf-Lnzqr4mdUlKesWvUY7LDJVFSq4er-uSI1rgqsySJGOY5gUra1rEmNJ6lxXZlbjGMU5QjDHK05yQiKQc5wilKE4zRlEKkpg3VMgofPPSZn8VjrCvESIkJVeSVlza8FEWY8WfYLgLMAbp5spcB9RVt7cgiaWwzk5qnHAyfM317_Pp5n8_ttcKTp_krjojr__86fyA7nCN_xsAAP__ySU_6A">