June 28, 2020
https://issues.dlang.org/show_bug.cgi?id=20991

          Issue ID: 20991
           Summary: Optimizer is not unlining various forms of simple
                    loops
           Product: D
           Version: D2
          Hardware: All
                OS: All
            Status: NEW
          Severity: normal
          Priority: P1
         Component: dmd
          Assignee: nobody@puremagic.com
          Reporter: bugzilla@digitalmars.com

The optimizer will unroll a loop of the form:

   for (uint i = 0; i < 2; ++i)
       foo(i);

but not:

   for (uint i = 0; i <= 1; ++i)
       foo(i);

or loops with more complex bodies.

It will not unroll more than two iterations. Should be up to 100.

--