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

    <tr>
        <th>Summary</th>
        <td>
            [slp] ICE: Instruction does not dominate all uses!
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            llvm:SLPVectorizer
      </td>
    </tr>

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

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

<pre>
    First showed up in 04c38981a9ce3e6225669c0e41cab947e3e7989f, last known good commit was 0283bb3afcc5dc521f6b2e7d541a830a9546ed80.

Commits in this range with SLP in the subject line:
```
$ g log 0283bb3afcc5dc521f6b2e7d541a830a9546ed80^1..04c38981a9ce3e6225669c0e41cab947e3e7989f|grep -i slp
'61d04f1aac96 Thu Apr 10 16:05:01 2025 -0400  [SLP][NFC]Extract preliminary checks from buildTree_rec, NFC'
'aaaa2a325bd1 Thu Apr 10 12:06:38 2025 -0400  [SLP]Support vectorization of previously vectorized scalars in split nodes'
'4ea57b3481c0 Thu Apr 10 08:30:43 2025 -0700 [SLP]Fix detection of matching splat vector'
'396e2ef3b7f4 Thu Apr 10 08:20:28 2025 -0700  [SLP][NFC]Add a test with incorrect identity match for less-defined splat'
'a693f23ef2fc Thu Apr 10 23:07:45 2025 +0800 [SLP][REVEC] Fix CompressVectorize does not expand mask when REVEC is enabled. (#135174)'
'd02a704ec952 Thu Apr 10 18:54:45 2025 +0800 [SLP][REVEC] Make getExtractWithExtendCost support FixedVectorType as Dst. (#134822)'
```

```
$ opt -passes=slp-vectorizer reduced.ll -disable-output
Instruction does not dominate all uses!
  %15 = call <6 x double> @llvm.vector.insert.v6f64.v2f64(<6 x double> %14, <2 x double> %13, i64 4)
  %9 = shufflevector <6 x double> %15, <6 x double> poison, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
Instruction does not dominate all uses!
  %13 = insertelement <2 x double> %12, double %1, i32 1
  %11 = call <6 x double> @llvm.vector.insert.v6f64.v2f64(<6 x double> %10, <2 x double> %13, i64 4)
LLVM ERROR: Broken module found, compilation aborted!
```

```
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"

define void @foo(double %0) {
.thread:
  %1 = call double null(ptr null, ptr null, ptr null)
  %2 = call double null(ptr null, ptr null, ptr null)
  br i1 false, label %3, label %5

3:                                                ; preds = %.thread
  %4 = call double null(ptr null, ptr null, ptr null)
  br label %5

5:                                                ; preds = %3, %.thread
  %.1226 = phi double [ %4, %3 ], [ 0.000000e+00, %.thread ]
 %.1222 = phi double [ 0.000000e+00, %3 ], [ 0.000000e+00, %.thread ]
 %.1218 = phi double [ %0, %3 ], [ 0.000000e+00, %.thread ]
  %.1216 = phi double [ 0.000000e+00, %3 ], [ 0.000000e+00, %.thread ]
  br i1 false, label %.lr.ph272.preheader, label %._crit_edge

.lr.ph272.preheader: ; preds = %5
  br i1 false, label %._crit_edge, label %6

6:                                                ; preds = %.lr.ph272.preheader
  %7 = fdiv double 0.000000e+00, 0.000000e+00
  %8 = fsub double 0.000000e+00, %7
  %9 = fdiv double 0.000000e+00, 0.000000e+00
 %10 = fsub double 0.000000e+00, %9
  br i1 false, label %11, label %._crit_edge

11:                                               ; preds = %6
  br label %._crit_edge

._crit_edge: ; preds = %11, %6, %.lr.ph272.preheader, %5
  %.2227.lcssa = phi double [ %.1226, %5 ], [ 0.000000e+00, %11 ], [ %.1226, %6 ], [ %.1226, %.lr.ph272.preheader ]
  %.2223.lcssa = phi double [ %.1222, %5 ], [ 0.000000e+00, %11 ], [ %.1222, %6 ], [ %.1222, %.lr.ph272.preheader ]
 %.2219.lcssa = phi double [ %.1218, %5 ], [ 0.000000e+00, %11 ], [ %.1218, %6 ], [ %.1218, %.lr.ph272.preheader ]
  %.2.lcssa = phi double [ %.1216, %5 ], [ %0, %11 ], [ %.1216, %6 ], [ %.1216, %.lr.ph272.preheader ]
  %.0213.lcssa = phi double [ %2, %5 ], [ 0.000000e+00, %11 ], [ %10, %6 ], [ %2, %.lr.ph272.preheader ]
  %.0211.lcssa = phi double [ %1, %5 ], [ 0.000000e+00, %11 ], [ %8, %6 ], [ %1, %.lr.ph272.preheader ]
  ret void
}
```
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJy0mNlv2zwSwP8a5mVggxzqfPCD4yTAB_TbLdqi-1hQ4sjmV1kUSCrH_vULSr5SO0ePNQKHIjkzvzl4yMp7s-6IFiy9ZunNlRrCxrqF8htyW9XVpqO2NVeV1U-LO-N8AL-xD6Rh6MF0wJNaFmUhVFmTpAwxzbKy5pSIWlVlkpOkvCzKhuEKWuUDfO_sQwdrazXUdrs1AR6UB46FrCqpmrpOdZ2iaLIKKddpIlQhuSrTJCNd8DnjS8aXq1HSR4CwMR6c6tYEDyZs4POHj1M3gR-qf6gO0JqOmIxyLOO7P75kmMAaWrt-t3GW3or5_N0e56u1ox5mBnzbjwbzTGieNEKpuszgy2aAZe9AcBAZk0uexi8ByDGFGU84B2Dp9ecPH1l6w9Lrf92tWHpz-xicqgP0jlqzNZ1yT1BvqP7uoXF2C9VgWv3FEX1zVMeoRzHMJ_tKKYVKYlpp8cw-RtMRQhaX7X8e-t66APdUB-vMf1UwtgPbRI57YwffPh3GSIOvVavcmCDftyZAZzX5A0dCKs0rmRSi5qccvIgInMllIvccOedHjDvzCJoC1XvzWxXqjenW0Yza4x3syDIjpEZWeZOc2cFoB4tTOxfivdQaFATyYaov09XWuVhWRlMXTHiaGKCxDlryfqapMV2MQSQ6hj4rZYOSGmzqUxSUMfR5dDmdUBhe8-LUaZZef7r9ehtpIAZgZbe9I--_7uMN2pKHzgagx151GrbKf4eHDXUwCoLxQJ2qWtJzYFgwlEKmIk8YlgdAzVHlPKG6TPFZbcRYpcl7Af9W3wnWFHZ1-h8TNrePgTq9snHv2JXRnXkkPfF_eeoJlIcbH45wSYF4hDtdteeL2PYBZr3ynjyTN77tZ4dCdOBIDzXpedvCTBsfYzCzQ-iHwPjyr84HN0y1dAihtnFVBQLVtjBEpSgYXwIwTEUKTN5AHYeYXGXwCNoOVUtM3gJLeNveb-eT9bnpPLkwv8-aLJnfY5Ml0bkzIUxFEpcpkys8G5FxxGQJjJnaQZQjg98MTdPSZOwCTITd6X0-0lvjbbcbSuARjMRRQq6MROCjSYkg9g3cNySTt78UNTkSTwGhlrbUhcv-jqamrvH5yLJXJf4fCeDvTsCHD1__httPn_79icklXDv7nTrYWj20BI0dOh3n13bbm3baIVVlXSA9ReOVQg7KrSmAVkG16skOYfSTIdJsy-SSZj3mcb-KuVpKjI_i-WNsZcn4NTOHhoguLwUWs6bgu1Y3dmV78SyZfY7TEI8cwZk-5mBieCyyb1kyG7rx8J61phseZ-tumEQYX05bHtxbo2MWGmsZFsc8coYlsPya8eU8bBwpPR3HU0qPGd1JdEPbMiz64HbNFVxuH5YE_q6OyoER0KjW03RTqaiNiuWzp3TyNu7Y8JMfJq_jUan9LqbpPhA7D5I_4MGPnOmf4BwjcM47F4jZOKffmMOSTa9HX3YiEuLZENvpNfA5Hz8UTw_-XOk4jy_3evGS3ovyv2hBFC-Q_7LeveKLIfkz6C_W6Lx1836DOc57RxtSmtzz8W-1M-Eb6TVNdXFJQC7PU5--bvZE7Wl_NhnJ_sgiuUC6i3Y-zmm0ud-H-jyIP_TsJKfkN36oXpaMBp6ftz9raTxX3mfp9S1IiNezKcTPR_os0NnZHnJeNScdl6pl4hx17er3cl0eCitOQcR83tbeqxdW5LjP7MXeXDLxenCc8oN49srYBdZnSxsR5Zuc-Huc-Aonvs05YYryLUxR_BbmQfwC5mHszXC-CXkx5yc79EW0VzIt3ptpjuL1TP9GlgV_AfAd6d3DiVfhxK_DvZRX8Q42R2G8_MWdIr85vdpe6YXUpSzVFS1EniS5xJzj1WaRJHWNuRSiQip0WuW8KLOiyPK8yhKVyiuziC-bPBGpSNMCca4KJUoinue1LikvWcJpq0w7Hy_91q2vjPcDLYRMC86vxp3Mjz9rIcYpTC4_f_h4eGl28faa3ly5RRycVcPaxxcI44M_agwmtONPY77t49vtX6vbuPm9-xXoanDtYhNC7-ONF-8Y3q1N2AzVvLZbhncj1_Rv1jv7D9WB4d3oh2d4t3PlfoH_CwAA__9dv0AT">