<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/134013>134013</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
crash in slp vectorizer after "[SLP]Fix a check for the whole register use"
</td>
</tr>
<tr>
<th>Labels</th>
<td>
llvm:SLPVectorizer,
crash-on-valid
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
alexey-bataev
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
macurtis-amd
</td>
</tr>
</table>
<pre>
After applying [bfd8cc0a3e82](https://github.com/llvm/llvm-project/commit/bfd8cc0a3e82), I am seeing a crash in SLPVectorize.cpp.
Reproducer:
```
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 <2 x float> @foo() {
entry:
br label %do.body
do.body: ; preds = %do.body, %entry
%val.sroa.66.0 = phi float [ 0.000000e+00, %entry ], [ %val.sroa.66.1, %do.body ]
%val.sroa.60.0 = phi float [ 0.000000e+00, %entry ], [ %val.sroa.60.2, %do.body ]
%val.sroa.54.0 = phi float [ 0.000000e+00, %entry ], [ %val.sroa.54.2, %do.body ]
%val.sroa.48.0 = phi float [ 0.000000e+00, %entry ], [ %val.sroa.48.2, %do.body ]
%val.sroa.42.0 = phi float [ 0.000000e+00, %entry ], [ %val.sroa.42.2, %do.body ]
%val.sroa.36.0 = phi float [ 0.000000e+00, %entry ], [ %val.sroa.36.2, %do.body ]
%val.sroa.30.0 = phi float [ 0.000000e+00, %entry ], [ %val.sroa.30.2, %do.body ]
%val.sroa.24.0 = phi float [ 0.000000e+00, %entry ], [ %val.sroa.24.2, %do.body ]
%val.sroa.18.0 = phi float [ 0.000000e+00, %entry ], [ %val.sroa.18.2, %do.body ]
%val.sroa.12.0 = phi float [ 0.000000e+00, %entry ], [ %val.sroa.12.2, %do.body ]
%val.sroa.6.0 = phi float [ 0.000000e+00, %entry ], [ %val.sroa.6.2, %do.body ]
%val.sroa.0.0 = phi float [ 0.000000e+00, %entry ], [ %val.sroa.0.1, %do.body ]
%cmp119 = fcmp uge float 0.000000e+00, 0.000000e+00
%val.sroa.6.1 = select i1 %cmp119, float 0.000000e+00, float 0.000000e+00
%val.sroa.0.1 = select i1 %cmp119, float 0.000000e+00, float 0.000000e+00
%cmp119.1 = fcmp uge float %val.sroa.6.1, 0.000000e+00
%val.sroa.6.2 = select i1 %cmp119.1, float 0.000000e+00, float 0.000000e+00
%cmp119.2 = fcmp uge float 0.000000e+00, 0.000000e+00
%val.sroa.12.2 = select i1 %cmp119.2, float 0.000000e+00, float 0.000000e+00
%cmp119.3 = fcmp uge float 0.000000e+00, 0.000000e+00
%val.sroa.18.2 = select i1 %cmp119.3, float 0.000000e+00, float 0.000000e+00
%cmp119.4 = fcmp uge float 0.000000e+00, 0.000000e+00
%val.sroa.24.2 = select i1 %cmp119.4, float 0.000000e+00, float 0.000000e+00
%cmp119.5 = fcmp uge float 0.000000e+00, 0.000000e+00
%val.sroa.30.2 = select i1 %cmp119.5, float 0.000000e+00, float 0.000000e+00
%cmp119.6 = fcmp uge float 0.000000e+00, 0.000000e+00
%val.sroa.36.2 = select i1 %cmp119.6, float 0.000000e+00, float 0.000000e+00
%cmp119.7 = fcmp uge float 0.000000e+00, 0.000000e+00
%val.sroa.42.2 = select i1 %cmp119.7, float 0.000000e+00, float 0.000000e+00
%cmp119.8 = fcmp uge float 0.000000e+00, 0.000000e+00
%val.sroa.48.2 = select i1 %cmp119.8, float 0.000000e+00, float 0.000000e+00
%cmp119.9 = fcmp uge float 0.000000e+00, 0.000000e+00
%val.sroa.54.2 = select i1 %cmp119.9, float 0.000000e+00, float 0.000000e+00
%cmp119.10 = fcmp uge float 0.000000e+00, 0.000000e+00
%val.sroa.66.1 = select i1 %cmp119.10, float 0.000000e+00, float 0.000000e+00
%val.sroa.60.2 = select i1 %cmp119.10, float 0.000000e+00, float 0.000000e+00
br label %do.body
}
```
Crash is occurring on [SLPVectorizer.cpp:16251](https://github.com/llvm/llvm-project/blob/ad1ca5f4a2bc09f99fd82e5444f5da37c2985e97/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp#L16251).
At the time `VF:12` and `Scalars.size():16`.
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJysWE2P4ygQ_TXkgmzhAvxx8MGd3kgrzWG1s5rrCmOcsGMbC3Cme3_9CsfTH-lJlO241UoAVb33CgpIIZzT-0GpEvEHBCA69aSeo1p4oY4IAPHHjZj8wdiyF3KyXrtI9M2mNs1zWbVeWSzGsXvWwx4j_lC3TS4lEVTlwRVBfvB-dIhWCHYIdnvtD1MdS9Mj2HXd8edXNFrzj5IewU6avteh8Q4LCgRb_DsWPXZKBTaBpRXugPWAv37545uS3lj9r4rlOMaIVIhUf6rRmmaSygZ-UqGULP-k8sLulceN8KITz2byGNFHjABU1CNaqWiEjCBaUZg_Qjd53w2tlM0fkX5pJJAjWiWQR21OltYwD6U_3VMWfQ1mAK86vNVjp35qeMrTv1MWTcP3wfwYok4P01O0H6aTCyJVo1o9BPMt4CfcdkZ4RH_DiJHWGBSwC4yyB0QqNXj7fAof49riTtSqwwh4Y-Kwhgve0qEVRvQBj1Y1bhHzYgjb0DvhBTAE_Ci62Fkj4jSNyWw_HvRJTkgGTGIy_ykED4S8RcBzcmxnqzOgZLFbeGfLD3xkLT4Sw6_53lpxthIdZ5fo3pmxfCU-lt_GB2vxwU18dK10oeltfGulC70pXWCtdIHb0iVZK12S29IlWStdktvSZbXD5Sa2tXKFXDvJZD8mSTHztLIf8bRXC9lHorORj7OTzDhOdUp6rJNX_OB9CfWX4x_nYnXsk_eCexb7WVg3BQ-XBJ7875AIqyxPyPGLEuFOifSzEs93_UWF9E6FbA2F4Ry8qJDdqZCvoTBcDBcV8jsVpqsovLZV0jsVZmsoZNd2SnanwnwVhdd2Sn6nwk_fBuc_MC8qvPvMJmtITK9cWHFyWcutd1Z6bSt-Ev9C4ZQ9nlWV21NF6rCRcrI2lKlmCL8M3laoNpSoc0UIPPlkkVx3pkawE00iBW-ZgFqSoi2KtslBccZYyxtBMwlFzlWRvcHRwe8vKwbXGts7BLsXYQh2H3UC_XISCkUoqyuP_UFhr3uFUUq-7eYaF6UEi6EJI1-l6IR1sZsBQyV6Kn5TEtw3TUmbghZio8okY5RznhSwOZSZIK2ibc4byoqW0EwpqUROpeA1yIJvdAkEOGEECOE0SWLGVJo30FLBIKvTFjGieqG7OEQaG7vfaOcmVSaUkYRu5vVzyyvHPBm0ehdtKK5hiwDmZ4XIDNFRdLpZ3kBsOa9APe0dYqTTzrtXIq99p8qX5wjXjfj4govF_Eoy44Q8QPxxp5-wwPKg5HfcGjvP6I-D6RS2aq9dMJ-cQgCbyXbl_06OOe6wskvoxxL-CwAA__9FmdEa">