[llvm] [Hexagon]Handle truncate of v4i8/v2i16 -> v4i1/v2i1 when Hvx is enabled (PR #147476)
LLVM Continuous Integration via llvm-commits
llvm-commits at lists.llvm.org
Sat Jul 12 13:35:10 PDT 2025
llvm-ci wrote:
LLVM Buildbot has detected a new failure on builder `llvm-x86_64-debian-dylib` running on `gribozavr4` while building `llvm` at step 6 "test-build-unified-tree-check-clang".
Full details are available at: https://lab.llvm.org/buildbot/#/builders/60/builds/32701
<details>
<summary>Here is the relevant piece of the build log for the reference</summary>
```
Step 6 (test-build-unified-tree-check-clang) failure: test (failure)
******************** TEST 'Clang :: Analysis/exploded-graph-rewriter/objects_under_construction.cpp' FAILED ********************
Exit Code: 1
Command Output (stdout):
--
# RUN: at line 1
/b/1/llvm-x86_64-debian-dylib/build/bin/clang -cc1 -internal-isystem /b/1/llvm-x86_64-debian-dylib/build/lib/clang/21/include -nostdsysteminc -analyze -setup-static-analyzer -std=c++14 -triple x86_64-unknown-linux-gnu -analyze-function "test()" -analyzer-checker=core -analyzer-dump-egraph=/b/1/llvm-x86_64-debian-dylib/build/tools/clang/test/Analysis/exploded-graph-rewriter/Output/objects_under_construction.cpp.tmp.dot /b/1/llvm-x86_64-debian-dylib/llvm-project/clang/test/Analysis/exploded-graph-rewriter/objects_under_construction.cpp
# executed command: /b/1/llvm-x86_64-debian-dylib/build/bin/clang -cc1 -internal-isystem /b/1/llvm-x86_64-debian-dylib/build/lib/clang/21/include -nostdsysteminc -analyze -setup-static-analyzer -std=c++14 -triple x86_64-unknown-linux-gnu -analyze-function 'test()' -analyzer-checker=core -analyzer-dump-egraph=/b/1/llvm-x86_64-debian-dylib/build/tools/clang/test/Analysis/exploded-graph-rewriter/Output/objects_under_construction.cpp.tmp.dot /b/1/llvm-x86_64-debian-dylib/llvm-project/clang/test/Analysis/exploded-graph-rewriter/objects_under_construction.cpp
# .---command stderr------------
# | writing to the newly created file /b/1/llvm-x86_64-debian-dylib/build/tools/clang/test/Analysis/exploded-graph-rewriter/Output/objects_under_construction.cpp.tmp.dot
# | done.
# `-----------------------------
# RUN: at line 5
'/usr/bin/python3.9' /b/1/llvm-x86_64-debian-dylib/llvm-project/clang/utils/analyzer/exploded-graph-rewriter.py --dump-dot-only /b/1/llvm-x86_64-debian-dylib/build/tools/clang/test/Analysis/exploded-graph-rewriter/Output/objects_under_construction.cpp.tmp.dot | /b/1/llvm-x86_64-debian-dylib/build/bin/FileCheck /b/1/llvm-x86_64-debian-dylib/llvm-project/clang/test/Analysis/exploded-graph-rewriter/objects_under_construction.cpp
# executed command: /usr/bin/python3.9 /b/1/llvm-x86_64-debian-dylib/llvm-project/clang/utils/analyzer/exploded-graph-rewriter.py --dump-dot-only /b/1/llvm-x86_64-debian-dylib/build/tools/clang/test/Analysis/exploded-graph-rewriter/Output/objects_under_construction.cpp.tmp.dot
# executed command: /b/1/llvm-x86_64-debian-dylib/build/bin/FileCheck /b/1/llvm-x86_64-debian-dylib/llvm-project/clang/test/Analysis/exploded-graph-rewriter/objects_under_construction.cpp
# .---command stderr------------
# | /b/1/llvm-x86_64-debian-dylib/llvm-project/clang/test/Analysis/exploded-graph-rewriter/objects_under_construction.cpp:22:17: error: CHECK-SAME: is not on the same line as the previous match
# | // CHECK-SAME: (materialize temporary)
# | ^
# | <stdin>:16:1367: note: 'next' match was here
# | Node0xfffa60 [shape=record,label=<<table border="0"><tr><td bgcolor="gray70"><b>State 87</b></td></tr><tr><td align="left" width="0"><b>Program points:</b></td></tr><tr><td align="left" width="0"><table border="0" align="left" width="0"><tr><td align="left">4.</td><td align="left" width="0">objects_under_construction.cpp:<b>43</b>:<b>9</b>:</td><td align="left" width="0"><font color="cyan4">CXXTemporaryObjectExpr</font> </td><td align="left"><i>S876</i></td><td align="left"><font color="cyan3">PreStmt</font></td><td align="left">S()</td></tr><tr><td width="0"></td><td width="0"></td><td colspan="3" align="left"><b>Tag: </b> <font color="crimson">ExprEngine : Prepare for object construction</font></td></tr><tr><td align="left">5.</td><td align="left" width="0">objects_under_construction.cpp:<b>43</b>:<b>9</b>:</td><td align="left" width="0"><font color="cyan4">CXXTemporaryObjectExpr</font> </td><td align="left"><i>S876</i></td><td align="left"><font color="cyan3">PreStmt</font></td><td align="left">S()</td></tr></table></td></tr><hr /><tr><td align="left"><b>Objects Under Construction: </b></td></tr><tr><td align="left"><table border="0"><tr><td></td><td align="left"><b>#0 Call</b></td><td align="left" colspan="2"><font color="gray60">test </font></td></tr><tr><td></td><td align="left"><i>S920</i></td><td align="left"><font color="darkgreen"><i>(materialize temporary)</i></font></td><td align="left">S()</td><td align="left">&s</td></tr><tr><td></td><td align="left"><i>S933</i></td><td align="left"><font color="darkgreen"><i>(elide constructor)</i></font></td><td align="left">S()</td><td align="left">&s</td></tr><tr><td></td><td align="left"><i>S942</i></td><td align="left"><font color="darkgreen"><i>(construct into local variable)</i></font></td><td align="left">S s = S();</td><td align="left">&s</td></tr></table></td></tr></table>>];
# | ^
# | <stdin>:3:1792: note: previous match ended here
# | Node0x10000a8 [shape=record,label=<<table border="0"><tr><td bgcolor="gray70"><b>State 363</b></td></tr><tr><td align="left" width="0"><b>Program point:</b></td></tr><tr><td align="left" width="0"><table border="0" align="left" width="0"><tr><td align="left">10.</td><td align="left" width="0">objects_under_construction.cpp:<b>43</b>:<b>9</b>:</td><td align="left" width="0"><font color="cyan4">MaterializeTemporaryExpr</font> </td><td align="left"><i>S920</i></td><td align="left"><font color="cyan3">PostStmt</font></td><td align="left">S()</td></tr></table></td></tr><hr /><tr><td align="left"><b>Store: </b> <font color="gray">(0xfffc38)</font></td></tr><tr><td align="left"><table border="0"><tr><td></td><td align="left">this</td><td align="left">0</td><td align="left"></td><td align="left">&s</td></tr></table></td></tr><hr /><tr><td align="left"><b>Expressions: </b></td></tr><tr><td align="left"><table border="0"><tr><td></td><td align="left"><b>#0 Call</b></td><td align="left" colspan="2"><font color="gray60">test </font></td></tr><tr><td></td><td align="left"><i>S876</i></td><td align="left"><font color="darkgreen"><i>(CXXTemporaryObjectExpr)</i></font></td><td align="left">S()</td><td align="left">lazyCompoundVal\{0xfffc38,s\}</td></tr><tr><td></td><td align="left"><i>S920</i></td><td align="left"><font color="darkgreen"><i>(MaterializeTemporaryExpr)</i></font></td><td align="left">S()</td><td align="left">&s</td></tr></table></td></tr><hr /><tr><td align="left"><b>Objects Under Construction: </b></td></tr><tr><td align="left"><table border="0"><tr><td></td><td align="left"><b>#0 Call</b></td><td align="left" colspan="2"><font color="gray60">test </font></td></tr><tr><td></td><td align="left"><i>S933</i></td><td align="left"><font color="darkgreen"><i>(elide constructor)</i></font></td><td align="left">S()</td><td align="left">&s</td></tr><tr><td></td><td align="left"><i>S942</i></td><td align="left"><font color="darkgreen"><i>(construct into local variable)</i></font></td><td align="left">S s = S();</td><td align="left">&s</td></tr></table></td></tr></table>>];
# | ^
# |
# | Input file: <stdin>
# | Check file: /b/1/llvm-x86_64-debian-dylib/llvm-project/clang/test/Analysis/exploded-graph-rewriter/objects_under_construction.cpp
# |
# | -dump-input=help explains the following input dump.
# |
# | Input was:
# | <<<<<<
# | .
# | .
# | .
# | 11: Node0x10004b0 [shape=record,label=<<table border="0"><tr><td bgcolor="gray70"><b>State 492</b></td></tr><tr><td align="left" width="0"><b>Program points:</b></td></tr><tr><td align="left" width="0"><table border="0" align="left" width="0"><tr><td align="left">14.</td><td align="left" width="0">objects_under_construction.cpp:<b>43</b>:<b>3</b>:</td><td align="left" width="0"><font color="cyan4">DeclStmt</font> </td><td align="left"><i>S942</i></td><td align="left"><font color="cyan3">PostStmt</font></td><td align="left">S s = S();</td></tr><tr><td align="left">15.</td><td width="0"></td><td align="left" width="0"><font color="gold3">BlockEdge</font></td><td align="left">[B1] -> [B0]</td></tr></table></td></tr><hr /><tr><td align="left"><b>Expressions: </b></td></tr><tr><td align="left"><table border="0"><tr><td></td><td align="left"><b>#0 Call</b></td><td align="left" colspan="2"><font color="gray60">test </font></td></tr><tr><td></td><td align="left"><i>S933</i></td><td align="left"><font color="darkgreen"><i>(CXXConstructExpr)</i></font></td><td align="left">S()</td><td align="left">lazyCompoundVal\{0x0,s\}</td></tr></table></td></tr></table>>];
# | 12: Node0x10004b0 -> Node0x1008018;
# | 13: Node0x1008018 [shape=record,label=<<table border="0"><tr><td bgcolor="gray70"><b>State 523</b></td></tr><tr><td align="left" width="0"><b>Program point:</b></td></tr><tr><td align="left" width="0"><table border="0" align="left" width="0"><tr><td align="left">16.</td><td align="left" width="0">objects_under_construction.cpp:<b>11</b>:<b>13</b>:</td><td align="left" width="0"><font color="cyan4">CompoundStmt</font> </td><td align="left"><i>S945</i></td><td align="left"><font color="cyan3">PostStmtPurgeDeadSymbols</font></td><td align="left"></td></tr><tr><td width="0"></td><td width="0"></td><td colspan="3" align="left"><b>Tag: </b> <font color="crimson">ExprEngine : Clean Node</font></td></tr></table></td></tr></table>>];
# | 14: Node0xfff550 [shape=record,label=<<table border="0"><tr><td bgcolor="gray70"><b>State 0</b></td></tr><tr><td align="left" width="0"><b>Program points:</b></td></tr><tr><td align="left" width="0"><table border="0" align="left" width="0"><tr><td align="left">1.</td><td width="0"></td><td align="left" width="0"><font color="gold3">BlockEdge</font></td><td align="left">[B2] -> [B1]</td></tr><tr><td align="left">2.</td><td width="0"></td><td align="left" width="0"><font color="gold3">BlockEntrance</font></td><td align="left">[B1]</td></tr><tr><td align="left">3.</td><td align="left" width="0">objects_under_construction.cpp:<b>43</b>:<b>9</b>:</td><td align="left" width="0"><font color="cyan4">CXXTemporaryObjectExpr</font> </td><td align="left"><i>S876</i></td><td align="left"><font color="cyan3">PreStmtPurgeDeadSymbols</font></td><td align="left"></td></tr><tr><td width="0"></td><td width="0"></td><td colspan="3" align="left"><b>Tag: </b> <font color="crimson">ExprEngine : Clean Node</font></td></tr></table></td></tr></table>>];
# | 15: Node0xfff550 -> Node0xfffa60;
# | 16: Node0xfffa60 [shape=record,label=<<table border="0"><tr><td bgcolor="gray70"><b>State 87</b></td></tr><tr><td align="left" width="0"><b>Program points:</b></td></tr><tr><td align="left" width="0"><table border="0" align="left" width="0"><tr><td align="left">4.</td><td align="left" width="0">objects_under_construction.cpp:<b>43</b>:<b>9</b>:</td><td align="left" width="0"><font color="cyan4">CXXTemporaryObjectExpr</font> </td><td align="left"><i>S876</i></td><td align="left"><font color="cyan3">PreStmt</font></td><td align="left">S()</td></tr><tr><td width="0"></td><td width="0"></td><td colspan="3" align="left"><b>Tag: </b> <font color="crimson">ExprEngine : Prepare for object construction</font></td></tr><tr><td align="left">5.</td><td align="left" width="0">objects_under_construction.cpp:<b>43</b>:<b>9</b>:</td><td align="left" width="0"><font color="cyan4">CXXTemporaryObjectExpr</font> </td><td align="left"><i>S876</i></td><td align="left"><font color="cyan3">PreStmt</font></td><td align="left">S()</td></tr></table></td></tr><hr /><tr><td align="left"><b>Objects Under Construction: </b></td></tr><tr><td align="left"><table border="0"><tr><td></td><td align="left"><b>#0 Call</b></td><td align="left" colspan="2"><font color="gray60">test </font></td></tr><tr><td></td><td align="left"><i>S920</i></td><td align="left"><font color="darkgreen"><i>(materialize temporary)</i></font></td><td align="left">S()</td><td align="left">&s</td></tr><tr><td></td><td align="left"><i>S933</i></td><td align="left"><font color="darkgreen"><i>(elide constructor)</i></font></td><td align="left">S()</td><td align="left">&s</td></tr><tr><td></td><td align="left"><i>S942</i></td><td align="left"><font color="darkgreen"><i>(construct into local variable)</i></font></td><td align="left">S s = S();</td><td align="left">&s</td></tr></table></td></tr></table>>];
# | same:22 !~~~~~~~~~~~~~~~~~~~~~~ error: match on wrong line
# | 17: Node0xfffa60 -> Node0xfffc80;
# | 18: Node0xfffc80 [shape=record,label=<<table border="0"><tr><td bgcolor="gray70"><b>State 126</b></td></tr><tr><td align="left" width="0"><b>Program points:</b></td></tr><tr><td align="left" width="0"><table border="0" align="left" width="0"><tr><td align="left">6.</td><td width="0"></td><td align="left" width="0"><font color="blue">CallEnter</font></td><td align="left">S::S()</td></tr><tr><td align="left">7.</td><td width="0"></td><td align="left" width="0"><font color="gold3">BlockEdge</font></td><td align="left">[B1] -> [B0]</td></tr><tr><td align="left">8.</td><td width="0"></td><td align="left" width="0" colspan="2"><font color="blue">CallExitBegin</font></td></tr></table></td></tr><hr /><tr><td align="left"><b>Store: </b> <font color="gray">(0xfffc38)</font></td></tr><tr><td align="left"><table border="0"><tr><td></td><td align="left">this</td><td align="left">0</td><td align="left"></td><td align="left">&s</td></tr></table></td></tr><hr /><tr><td align="left"><b>Objects Under Construction: </b></td></tr><tr><td align="left"><table border="0"><tr><td></td><td align="left"><b>#0 Call</b></td><td align="left" colspan="2"><font color="gray60">test </font></td></tr><tr><td></td><td align="left"><i>S920</i></td><td align="left"><font color="darkgreen"><i>(materialize temporary)</i></font></td><td align="left">S()</td><td align="left">&s</td></tr><tr><td></td><td align="left"><i>S933</i></td><td align="left"><font color="darkgreen"><i>(elide constructor)</i></font></td><td align="left">S()</td><td align="left">&s</td></tr><tr><td></td><td align="left"><i>S942</i></td><td align="left"><font color="darkgreen"><i>(construct into local variable)</i></font></td><td align="left">S s = S();</td><td align="left">&s</td></tr></table></td></tr></table>>];
# | 19: Node0xfffc80 -> Node0xfffe38;
# | 20: Node0xfffe38 [shape=record,label=<<table border="0"><tr><td bgcolor="gray70"><b>State 285</b></td></tr><tr><td align="left" width="0"><b>Program point:</b></td></tr><tr><td align="left" width="0"><table border="0" align="left" width="0"><tr><td align="left">9.</td><td width="0"></td><td align="left" width="0" colspan="2"><font color="blue">CallExitEnd</font></td></tr></table></td></tr><hr /><tr><td align="left"><b>Store: </b> <font color="gray">(0xfffc38)</font></td></tr><tr><td align="left"><table border="0"><tr><td></td><td align="left">this</td><td align="left">0</td><td align="left"></td><td align="left">&s</td></tr></table></td></tr><hr /><tr><td align="left"><b>Expressions: </b></td></tr><tr><td align="left"><table border="0"><tr><td></td><td align="left"><b>#0 Call</b></td><td align="left" colspan="2"><font color="gray60">test </font></td></tr><tr><td></td><td align="left"><i>S876</i></td><td align="left"><font color="darkgreen"><i>(CXXTemporaryObjectExpr)</i></font></td><td align="left">S()</td><td align="left">lazyCompoundVal\{0xfffc38,s\}</td></tr></table></td></tr><hr /><tr><td align="left"><b>Objects Under Construction: </b></td></tr><tr><td align="left"><table border="0"><tr><td></td><td align="left"><b>#0 Call</b></td><td align="left" colspan="2"><font color="gray60">test </font></td></tr><tr><td></td><td align="left"><i>S920</i></td><td align="left"><font color="darkgreen"><i>(materialize temporary)</i></font></td><td align="left">S()</td><td align="left">&s</td></tr><tr><td></td><td align="left"><i>S933</i></td><td align="left"><font color="darkgreen"><i>(elide constructor)</i></font></td><td align="left">S()</td><td align="left">&s</td></tr><tr><td></td><td align="left"><i>S942</i></td><td align="left"><font color="darkgreen"><i>(construct into local variable)</i></font></td><td align="left">S s = S();</td><td align="left">&s</td></tr></table></td></tr></table>>];
# | 21: Node0xfffe38 -> Node0x10000a8;
# | 22: }
...
```
</details>
https://github.com/llvm/llvm-project/pull/147476
More information about the llvm-commits
mailing list