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

    <tr>
        <th>Summary</th>
        <td>
            "Instruction does not dominate all uses" error with shufflevector and icmp in 17.0.0-rc3
        </td>
    </tr>

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

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

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

<pre>
    Compiling llvm 17.0.0-rc3 with full LTO and PGO, got following error
```
Instruction does not dominate all uses!
  %157 = icmp eq <2 x ptr> %156, %138
  %155 = shufflevector <2 x i1> %157, <2 x i1> %154, <4 x i32> <i32 1, i32 0, i32 3, i32 2>
LLVM ERROR: Broken module found, compilation aborted!
```

Link commands look like this
```
/work/stage1/install/bin/clang++ -march=x86-64-v3 -fno-pie -gdwarf-4 -g1 -Wno-backend-plugin -fPIC -fno-semantic-interposition -fvisibility-inlines-hidden -Werror=date-time -Werror=unguarded-availability-new -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -pedantic -Wno-long-long -Wc++98-compat-extra-semi -Wimplicit-fallthrough -Wcovered-switch-default -Wno-noexcept-type -Wnon-virtual-dtor -Wdelete-non-virtual-dtor -Wsuggest-override -Wstring-conversion -Wmisleading-indentation -Wctad-maybe-unsupported -fdiagnostics-color -ffunction-sections -fdata-sections -fprofile-instr-use="/work/stage2-prof-gen/profiles/clang.profdata" -flto=full -O3 -DNDEBUG -Wl,--emit-relocs -no-pie -fuse-ld=lld -fuse-ld=lld -Wl,--color-diagnostics -fprofile-instr-use="/work/stage2-prof-gen/profiles/clang.profdata" -flto=full    -Wl,--gc-sections tools/dsymutil/CMakeFiles/dsymutil.dir/dsymutil.cpp.o tools/dsymutil/CMakeFiles/dsymutil.dir/BinaryHolder.cpp.o tools/dsymutil/CMakeFiles/dsymutil.dir/CFBundle.cpp.o tools/dsymutil/CMakeFiles/dsymutil.dir/DebugMap.cpp.o tools/dsymutil/CMakeFiles/dsymutil.dir/DwarfLinkerForBinary.cpp.o tools/dsymutil/CMakeFiles/dsymutil.dir/MachODebugMapParser.cpp.o tools/dsymutil/CMakeFiles/dsymutil.dir/MachOUtils.cpp.o tools/dsymutil/CMakeFiles/dsymutil.dir/Reproducer.cpp.o tools/dsymutil/CMakeFiles/dsymutil.dir/SymbolMap.cpp.o -o bin/dsymutil -Wl,-rpath,"\$ORIGIN/../lib:"  lib/libLLVMX86CodeGen.a lib/libLLVMX86Desc.a  lib/libLLVMX86Info.a  lib/libLLVMAsmPrinter.a lib/libLLVMCodeGen.a  lib/libLLVMCodeGenTypes.a  lib/libLLVMDWARFLinker.a lib/libLLVMDWARFLinkerParallel.a  lib/libLLVMDebugInfoDWARF.a lib/libLLVMMC.a  lib/libLLVMObject.a  lib/libLLVMOption.a lib/libLLVMRemarks.a  lib/libLLVMSupport.a  lib/libLLVMTarget.a lib/libLLVMTargetParser.a  -lpthread  lib/libLLVMMCDisassembler.a lib/libLLVMCFGuard.a  lib/libLLVMGlobalISel.a  lib/libLLVMInstrumentation.a lib/libLLVMSelectionDAG.a  lib/libLLVMAsmPrinter.a  lib/libLLVMCodeGen.a lib/libLLVMCodeGenTypes.a  lib/libLLVMTarget.a  lib/libLLVMBitWriter.a lib/libLLVMObjCARCOpts.a  lib/libLLVMScalarOpts.a lib/libLLVMAggressiveInstCombine.a  lib/libLLVMInstCombine.a lib/libLLVMTransformUtils.a  lib/libLLVMAnalysis.a  lib/libLLVMProfileData.a lib/libLLVMSymbolize.a  lib/libLLVMDebugInfoPDB.a  lib/libLLVMDebugInfoMSF.a lib/libLLVMDebugInfoBTF.a  lib/libLLVMDebugInfoDWARF.a  lib/libLLVMObject.a lib/libLLVMMCParser.a  lib/libLLVMMC.a  lib/libLLVMDebugInfoCodeView.a lib/libLLVMIRReader.a  lib/libLLVMBitReader.a  lib/libLLVMAsmParser.a lib/libLLVMCore.a  lib/libLLVMRemarks.a  lib/libLLVMBitstreamReader.a lib/libLLVMTextAPI.a  lib/libLLVMBinaryFormat.a  lib/libLLVMTargetParser.a lib/libLLVMSupport.a  -lrt  -ldl  -lpthread  -lm /usr/lib/x86_64-linux-gnu/libz.so  lib/libLLVMDemangle.a
```

I presume it may be better to provide you with reproducer? I don't have it at the moment since it ocurred in CI.
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJy0V99v6rgS_mvMi2UEDoX2gYcCm16k023FObvct6tJPAmzdeys7dBy_vorJ9AfhO7urXSlqiQz_j7PjD_bGfCeSoM4Z1cLdrUaQBN21s33hCYMMqsO86WtatJkSq71vuLj2XA0HAmXJ_yZwo4Xjdb8248HDkbxx7sHJpe8tIEXVmv7HGHonHVstGKjWzYdHf_a17XxwTV5IGu4sui5sYErW5GBgBy05o1Hz-S4G845k1fjqxlnyYpTXtUc_-QsWUr-wuvgWPJLN2AaY4hPyfUH4FUL9LumKDTuMQ_WneA0fkXPWnTPPDmaJ9GcyNaeLCmRfBw98WF0ekhOD3FYF8K3b7_f8182m4cNS275wtknNLyyqtHIC9sYFSF5W2po6wGZdQHVa_JnpTuyknmKqAqM8lxb-8Q1PSEPO_KXYTJ9tu6JydQHKHHMZErGB9CayTQjw2SaazAlkwsmF1xU4PIdS1Yv11MxnYh9wkVhrKgJuSjVM7hCTLgox1xsjRUZ5E9olKh1U5LhonhcLzuAxwpMoFyQCehq66lNUhR78pSRpnAQZDQZ9GJHSqHhYtsJJ1kpCCgCVfjO1piyAadQCdgDaThyGHzmYhuVI7b4Ehx0gTWm8ahEDQ4qDOi42D47Cih8cGRKz8U2Bx_Enw1EZEXekylFQaiVIEOBQNNPdJ6LGlWbSUesrSnbf5GhK9rNtYjrCEG0AcTUiYstVbWmnIIoQOuwc7YpdxFk9-hQCf9MId8JhQU0OnTkxuJLjnUQ4VBjazJiTy40oIWK4hVbhRoDigse35Ql-iAivyMV8V2yIrdmj8639Y-pagQV7WQUmtCpT2zzAEpUcMhQNMY3dd3KkYtCEZTG-kC5F7nVcbKiaEy7i4XH9tfHcRDg_XvtbEEaRdSbE41HlqyYlGeKlCKOEyVGKR4h_qTKYTREXiYlF4UOliWr9gASDwkXq19Xvyx-u-Niq5lcCoEVBeFQ29xzcVJt0XgUWrFkpbXqvR6RbV7iXab_7_g5f527zN-qFqzVEa38oWoCxU26vIcnTI-sJ_tQkXv_mtf10P6v6AUZcId_Wa3QfY1hmS4aozR-Db3CrCnvof4iOh5G8TxEl1rX5fI1pnvIdw-nYB7B-a-WoyX6LZD2X8NvsHZWNflX5_9-qDKr3yoqLO-O-NO4k-ZcDWHH5DLK-WrJ5ORhs75b_8pkOhwymWrKWHIbNcvjY2uI99m_r6dLq_AOzRB6nhX6fAh9xNoUtme_9dWja6-Gc6a3CS7afxxq9D3nanu7STstnPO9cz2CA61R9-Fx7WOc7eBzhvtlD_CQ_YF56JvruIvP8RuswD31g_7enbE9-w9wJYZzls56VCdwLnQddg5B8fNoV-TBe6wyfaG66V28RXtz3mmbgV5_v1Cc7putOt0U54zfUXeH1-r27q-X-bN1_ufL_FqZj-YFhW283HvZPmR_LG83y4c6XKh-Dhrc0fUx6LJ06D3tMaa-tFVGBi-W5c33MUwHxhfWVd1R0CuKAX3w1Hc8drfHCgL0qtzubPrZj-NVu4-rxefO--89Wb_6Fj_Sv98Rn-j_THpv8vy7HfQ6QVzw3wmfz8nWmw2CukC2oPCJJ6rtFMCZqFy_cJ9tywUFHxxC9TrLx8XFl3D7uL4AixdQal0Fn23py8G9OwaEdiH-V_rD_ha64kymjXfHs1mmL9fT_0wnQpNpXkRpms7xc-htr84VmFLjEP6iq1jz2qFvKuQUeAUHniHPMMTv5mB57ew-fk8ebNN1gO71mmJJytdcWcPkLPAd7FsGCDzskFc2Hhrck8lbs80b51BxMny5Hg7UPFE3yQ0McD6e3sjZTTKZXQ9288kIxuPxuJioK6lmCiYJXk-mU3Wj8myG-c2A5nIkk9G1TMZSTpLZMFfJCGFczHACk6vpiE1GWAHpYexfh9aVA_K-wfl0ciNvBhoy1L5tf6WM7UPrbG_C1cDNI0ZkTenZZKTJB__GEihonDMp_2kbK7tWuKvaxzY0Ns9tR0vmXYc9aJye70KofXv_pkymJYVdkw1zW8VF1fvTT_zsjJswNnQxgfg50Cb43wAAAP__PUBI5g">