<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/127177>127177</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
[SLPVectorizer] Miscompilation at O2
</td>
</tr>
<tr>
<th>Labels</th>
<td>
miscompilation,
llvm:SLPVectorizer,
generated by fuzzer
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
dtcxzyw
</td>
</tr>
</table>
<pre>
Reproducer:
```
; bin/opt -passes=slp-vectorizer test.ll -S
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 i8 @test() {
entry:
%inc.1.i.i = zext i1 false to i8
%inc.2.i.i = zext i1 false to i8
%inc.3.i.i = zext i1 false to i8
%inc.6.i.i = zext i1 false to i8
%inc.7.i.i = zext i1 false to i8
%inc.8.i.i = zext i1 false to i8
%inc.10.i.i = zext i1 false to i8
%inc.11.i.i = zext i1 false to i8
%inc.12.i.i = zext i1 true to i8
%inc.13.i.i = zext i1 false to i8
%inc.14.i.i = zext i1 false to i8
%inc.15.i.i = zext i1 false to i8
%inc9.1.i.i = add i8 %inc.2.i.i, %inc.1.i.i
%inc9.2.i.i = add i8 %inc9.1.i.i, %inc.3.i.i
%spec.select17.i.i = add i8 %inc9.2.i.i, %inc.6.i.i
%spec.select18.i.i = add i8 %spec.select17.i.i, %inc.7.i.i
%spec.select19.i.i = add i8 %spec.select18.i.i, %inc.8.i.i
%spec.select21.i.i = add i8 %spec.select19.i.i, %inc.10.i.i
%spec.select22.i.i = add i8 %spec.select21.i.i, %inc.11.i.i
%spec.select23.i.i = add i8 %spec.select22.i.i, %inc.12.i.i
%spec.select24.i.i = add i8 %spec.select23.i.i, %inc.13.i.i
%spec.select25.i.i = add i8 %spec.select24.i.i, %inc.14.i.i
%spec.select26.i.i = add i8 %spec.select25.i.i, %inc.15.i.i
ret i8 %spec.select26.i.i
}
```
Output:
```
define i8 @test() {
entry:
%0 = call i12 @llvm.ctpop.i12(i12 0)
%1 = trunc i12 %0 to i8
ret i8 %1
}
```
The correct return value is 1.
llvm version: 8a0914c24530c98c5ff65bce3710552ce3ebf7d7
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJyMll-PsygUxj8N3hANHET0wgvnbXq1m3ezs9nbDSLtsEvVAM47nU-_wbYz9l_aZOIgPs_vHA6novTebHuta8RfEF8lcgpvg6u7oD4-97-Sduj29Z96dEM3Ke0QazAiDSrI8Y80iL3g1vQI1sMYcDpK77VHbOXtmL5rFQZnPrXDQfuQWYvTV0SaIN1WB9zJIK3cD1PAiK0wAtDpDrFGpyMIgljDYL7EW3p-G0dFPl9S8zWgUCLWUCjTTUmOo36eKk72Ik9fowzgO4_gzGj1KYePsvinyNOp_68ffvWpNf30kW776WBBpOn0xvQamxKjnMR1ocirMBIviDS6D26PWBRiBNz0KqOZycyM_9QfARuKN9J6jcOATRl1JyE8Eh517Flg8SRQPAssnwRS8iyRPqzOSXhdneCmW8SH5TkJ86eT5M8hq8Vey66be2SxtQh-nPXEIkS12Pwz5xG5sLKl1Y9aZV5brQIV9wiXwYt7hPIG4SrCAiROoAtd9YBTXnDK2xy4Vc2rOMuqkjugW8W9CrQE0Tsg9gB0tc9wB5Q_ALFLELsD4g9A-SUovwMqHoD4JYh_tZHT4Ybh1GZIrC4OjZ9TGKdweEsu559_tcZYZE5WSWuxoRAt1r7vMhXGYcwMBQRlnCcIqpOFzpbgpl4dPJHy_XP_Xge9mfdfbxqrwTmtQtROrsfv0k4aG49pdjgeYg74XTtvhj6el6UkFc0V5JwRVZWKbzYFb5VmghLOQWmm243oRNLVrKtYJRNdU8EqTkshePJWCwpSVKDaSlHJZdtVHS1y0uqqrdqC54mpgQAnQHMiWMV4RlReMN52lapKIFSgnOidNDab6zO4bWK8n3RNQVAhEitbbf38BQCwM14Nu9FYGeICABD8QADRiVjz-tsff38d6l8Pt7rXTgbd4XaPN9Pn8RlfJa6OxrSdtj5uj_HBfycRTLDzh8c5la_w72dJYBnwT0gmZ-u3EEYfWwDWCNZbE96mNlPDDsF6zvDwLx3d8K9WAcF6XqhHsD6u9b2G_wMAAP__kNSSew">