On Thu Apr 6 12:16:20 2023 +0000, Nikolay Sivov wrote:
What I see is warnings for random attributes, not errors. Plain unroll means to avoid flow control instructions, unroll(X) determines a number of iterations to unroll, and could specify lower number than loop normally would run for.
What's not obvious here is that e.g. unroll(3) means that the loop is (fully, not partially) unrolled exactly 3 times, which changes semantics if the loop would have run for more than 3 iterations. It's absolutely crazy but that's what native does...
Maybe we could just FIXME() for the "unroll" (no count) case? Or WARN()? Just so that we get some trace reminding us that we aren't doing the correct thing, even though it shouldn't matter most of the time.