<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/62381>62381</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
[OpenMP] SIMD directive is prescriptive, but vectorizer fails
</td>
</tr>
<tr>
<th>Labels</th>
<td>
openmp,
clang:codegen
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
alexey-bataev
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
jprotze
</td>
</tr>
</table>
<pre>
With loop dependencies, the vectorizer fails to vectorize a loop, although OpenMP SIMD is prescriptive.
Example code:
https://github.com/LLNL/dataracebench/blob/master/micro-benchmarks/DRB024-simdtruedep-orig-yes.c
Compilation results in:
```
warning: loop not vectorized: the optimizer was unable to perform the requested transformation; the transformation might be disabled or specified as part of an unsupported transformation ordering [-Wpass-failed=transform-warning]
#pragma omp simd
```
And code that is not vectorized.
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJx8U01vpDgQ_TXmUqIFpqG7DxzSYZFWSnZXO4ecC7sanDG2xzadj18_Mt2TTCajkRDgZ1O8evUehqBGQ9Sy-sg4R03P9JIPGJHOjHNWdxkucbK-fXTexlfKBitf2gcVJ9DWOpDkyEgyQlFg_BbiRHAmEa1Xr-ThhEoHiPYdA1w_TGdRx8ku4wT_OjL3_8GXv-87UAGcpyC8clGdacOKjhU3l_tfzzg7TSCsJFZdwSlGF9KK94z3o4rTMmyEnRnv7-7-uWO8lxjRo6CBjJgY7wdtB8b7GUMkn16U8DZfd2f0XwPjfff_seDbPKhZRr-QJJdbr8b8hcJG_Ezp1s5OaYzKGvAUFh0DKPNGjjXF9VqXT-iNMiOrbi7qGRvflZEJTvpZF9W8yveEARaDg6akoSN_sn5ez3j6tlCIJCF6NCHhKwlWHdf9jyjMapwiDARShVROgvUQHAl1UiQBAzj0EewJ0MBiwuKc9Z-rg_WSvDIjsPqYPzgMIU8jTty7t6P5jzbr7qoCr5zHcUaws4Mk6m_VuTFyHS3ECWMywkd5NplsK3moDphRWzZ7XpdFWR-yqUUs943AQ1WJompEWexKKaqdrE4nvi93IlMtL3hVbHlTlnVdHzZlgQ2vh4KGpt4PO2TbgmZUeqP1ed5YP2YqhIXahlf7MtM4kA7XjFhHZnYpHPyWcS40rgNNxEcy19D4NhXKh2UMbFtoFWJ4Lx1V1GviLr5ndXexvlSeRDL9ryFIYRmW-ClY2eJ1-wf_pz9eH7nz9pFEZLxfO0smX5v7HgAA__9Q7lU4">