-
Bug
-
Resolution: Fixed
-
Medium
-
Code Generation Tools
-
CODEGEN-12473
-
-
-
default
-
In the case where the optimizer has to unroll to find out the index is a constant integer, use "#pragma UNROLL(1)" to prevent unrolling.
The optimizer can crash when trying to access part of a vector by taking the address of a vector accessor expression (.s[]) with an index that is unaligned relative to the size of the pointer access. For example, given "_uchar64 v", trying to access (*(uchar4 *)&v.s[1]) can cause the optimizer to abort with an internal error. This internal error can arise even if the index is an expression, if the optimizer can optimize the code and discover that the expression is unaligned. For example, the optimizer could fully unroll "for (i=0;i<16;i++) *(_uchar4 *)&v.s[i] = ...", yielding 16 statements of the form v.s[0], v.s[1], etc.