<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/57087>57087</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
UndefinedBehaviorSanitizer: undefined-behavior ../lib/Analysis/LoopCacheAnalysis.cpp:711:30
</td>
</tr>
<tr>
<th>Labels</th>
<td>
new issue
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
mikaelholmen
</td>
</tr>
</table>
<pre>
llvm commit: f9563967cad
Reproduce with: ```opt -passes=loop-interchange bbi-72190.ll -o /dev/null```
Note: opt needs to be compiled with UBsan!
Result:
```
../lib/Analysis/LoopCacheAnalysis.cpp:711:30: runtime error: signed integer overflow: 100 * 1000000000000000000 cannot be represented in type 'long'
SUMMARY: UndefinedBehaviorSanitizer: undefined-behavior ../lib/Analysis/LoopCacheAnalysis.cpp:711:30 in
```
It's the multiplication in this loop in LoopCacheAnalysis.cpp that overflows:
```
CacheCostTy LoopCost = 0;
for (const ReferenceGroupTy &RG : RefGroups) {
CacheCostTy RefGroupCost = computeRefGroupCacheCost(RG, L);
LoopCost += RefGroupCost * TripCountsProduct;
}
```
[bbi-72190.ll.gz](https://github.com/llvm/llvm-project/files/9308901/bbi-72190.ll.gz)
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJy9VMFuozAQ_RpzsYIMDhAOHJJGrVZqV6u0PezRwADedWxkm1Tp1--YNNm06h52D4uQMR7Pe29mPK5Ne6yUOuxpY_Z76Qlf067Mcl7mRSNawraErU_jDkZr2qkB-iL9EDaSnJ1eM3q6GIVz4AjfKmPGhdQebDMI3QOta7ko0qRksVJ0YShJb1s44KgnpS4gJ5avxkPADpAaoHXUG1pDkDdKBe1MTp83TmiSJmdlblJB-pvc94hxjExK1jiutVBHJx1O71HkjWgGOK_FzTgiRJEkOHIWNNhJe7kHCtYaGxac7DVKCLH1YKk5gO2UeQmmhDGMa_5-fGgjtDY-RGExh-AA_QMK9ccR0KtQRvf4Oel9fH54WO--B9Bn3UInkXIDgzhIYx-Fll6-wqxmOlsX9ZuZ_lusQcqnqfviURVWYAC6xwzLUclGeGn0LH6QjoZah59PKXCL8JcsuT8ViNLZ88Y4_3Q8IeGU4kmiWIbNeVOH8ZF01RiNxh10YEE3cGfNNKIbSfPdHQ1pQdO8iJGXlBQX__c0510XqnDAJg-X9fNepNzdkfSG3iPelRx6pTTdBIT3kHgWnqzEHzxE7tvcOf7KnRTbT5NBss11u8T9K8m2qGHwfpwzmN7i22MTTHWMmkO9sX3fPgts0R-AROlth90Sil9ytipZgrOPuBjOTBlBleQ5S1O-5FnUVrwteSkiL72C6j8dwWiyqvrrGKVz0xxkVrBVEQ1Vvsw45wU0BW8KVuSMlUmX11kO5ZIXXR0pUYNyFWaZpKmGFzpD4ByzHMkqxSywVZIkPGF8GQvO6xVbpss865ouy8iSwV5IFQcdsbF9ZOfLc1FPvUOjks6730a8EMOFATMd4ovJD8ZWe_lTgBqM2oOOZv5q1v8LPEW1GQ">