<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/104637>104637</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
SLP Vectorizer crash due to commit ca654acc16c43191228eadfec8f7241dca10b0c3
</td>
</tr>
<tr>
<th>Labels</th>
<td>
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
alexey-bataev
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
ivankelarev
</td>
</tr>
</table>
<pre>
ca654acc16c43191228eadfec8f7241dca10b0c3 change in SLP Vectorizer causes a crash for this test case:
```
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 @a_(double %c__fetch.3) {
alloca_0:
%mul.3 = fmul double 0.000000e+00, %c__fetch.3
%mul.4 = fmul double 0.000000e+00, 0.000000e+00
br label %loop.69
loop.69: ; preds = %loop.69, %alloca_0
%t48.0 = phi double [ 0.000000e+00, %alloca_0 ], [ %5, %loop.69 ]
%t50.0 = phi double [ 0.000000e+00, %alloca_0 ], [ %3, %loop.69 ]
%t52.0 = phi double [ 0.000000e+00, %alloca_0 ], [ %7, %loop.69 ]
%0 = fmul double %t52.0, %mul.3
%1 = fmul double %t48.0, %mul.4
%2 = fadd double %1, %0
%3 = fadd double %2, 0.000000e+00
%4 = fmul double 0.000000e+00, %mul.3
%5 = fadd double 0.000000e+00, %4
%6 = fmul double 0.000000e+00, %mul.4
%7 = fadd double 0.000000e+00, %6
br label %loop.69
}
```
After slp-vectorizer pass IR is being transformed to as incorrect one:
```
define void @a_(double %c__fetch.3) {
alloca_0:
%0 = shufflevector <2 x double> %2, <2 x double> <double 0.000000e+00, double poison>, <2 x i32> <i32 2, i32 0>
%1 = fmul <2 x double> zeroinitializer, %0
%2 = insertelement <2 x double> <double poison, double 0.000000e+00>, double %c__fetch.3, i32 0
%3 = fmul <2 x double> zeroinitializer, %2
br label %loop.69
loop.69: ; preds = %loop.69, %alloca_0
%t50.0 = phi double [ 0.000000e+00, %alloca_0 ], [ %9, %loop.69 ]
%4 = phi <2 x double> [ zeroinitializer, %alloca_0 ], [ %11, %loop.69 ]
%5 = fmul <2 x double> %4, %1
%6 = extractelement <2 x double> %5, i32 0
%7 = extractelement <2 x double> %5, i32 1
%8 = fadd double %6, %7
%9 = fadd double %8, 0.000000e+00
%10 = fmul <2 x double> zeroinitializer, %3
%11 = fadd <2 x double> zeroinitializer, %10
br label %loop.69
}
```
Error message:
```
Instruction does not dominate all uses!
%2 = insertelement <2 x double> <double poison, double 0.000000e+00>, double %c__fetch.3, i32 0
%0 = shufflevector <2 x double> %2, <2 x double> <double 0.000000e+00, double poison>, <2 x i32> <i32 2, i32 0>
LLVM ERROR: Broken module found, compilation aborted!
```
Reverting the mentioned commit makes this test pass. @alexey-bataev could you please take a look?
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzMV19v4roT_TTmZQTynySEBx7KtpVW2p9-V11pXytjT8AXx0a2w233018lBJoWSundfVhUuYkzZ87MeHIcyxjNyiHOSb4gnEuLT_g8XsokcUc4J_ntSDZp7cPc7KTboJUBd6Ol189zJYs8k0qxQmWCzRjnJUpdoSqrKc-YVpLRJVUC1Fq6FYJx8P3bX_ADVfLB_MQASjYRI0hQQcY1VD5AWpsICWMCJSMScUPoLaGHsaD9X3ebZFhhAi2TtPLZNwmIuAXCOY5rIm5wvOVTSsSN4N3Q3rLXt-1VkXXD2BwvGC-JuGG8HFcl7a9cN1Uc4EU2_t6acf4qlBTM1uIhjKeyeCyyceM2zv_jxta45mm8cs0RtR81VsYh7LzRQDIqHwkvtW-WrSOeq8fHCpNaTwThMyDTxR4krfVKPtJjhaA1rhs7ER19VTcWei90QrsfEr6glPAvb_y-xmdX4N_M9A6WAaxcom09We-3k2I2zPMwJW7g6h8RC9gG1LGv6dHvPoljFV5SSFk5oZ31dm0OGZB8cb4KBwdA8ttuKl-003n_uGfrng4ocvrrFOIDCv7rFNOLFPRknQ-8PaxrpgGAnQW05R4AsgGA7wFS6wGA9cbDNRPnDPn7jUZ4fk2XnskhP2E6CxtmUVzPNIRNr2MqPn55prdn1W8_3lQJA0S7He9edHUrY4SvD2AiLNG4FaQgXax8qFFD8iAjGKd8CKgSeDeQ2dcUv1GZ9t0W101VWdyHCkR84fDUl4eIu-Oqnz4QX94tYv9g6030joi7gQPTanWHNoJD57q9oK3V2b4-If6JwRtnkpG2reyZ3t03uXERQ0KLNbp0Kf4-zJe43yS0j_98kQ_Rn7w4nwidf16s_4MG_w6BnF1Ur-zo_rTY-eKd5N9hYuwiVX6hyJ1W7MHsRDPwKQWpLnRFv9G8XdXpp9FD7vKcmBZ9kNOB4eycYXlRdRn9dMO92kHYC-WVcHbF18VFgbwLwQeoMUa5-uB78quLKTQqGe9Ae4zgfALta-NkQpDWQvu5Sjj7U17_P1NUv3378T-4e3j4_0OrHovgN-ig9rqxCJVvnG4hytdbY2VXa7n0IaE-FvbsOj7gDkPqNrM1Qltn4x3q1lFtEtRyg3Fwemi3wEm3aQ1PNKB8YzU8-wa2FmVESHKDIMF6vyHifk810nOhZ2ImRzhnUy5KUTLKR-s5o7OMltMlpXmV52q21BUvy0wypkShSzkyc055RktWsFmeUz7RjOlcKMwzJXCmC5JRrKWxE2t39cSH1cjE2OCc0awQ01HX4LE7i-W3ozBvrcbLZhVJRq2JKb7gkkkW528PVN05SjfY7vJ9Za49po2aYOfrlLaxfUv4PeH3K5PWzXKifE34fcvc_xtvg_8bVSL8vgs_En7fZ7Cb838DAAD__8cR6D0">