A DO-loop that has a FIXED BIN(15) control variable will perform worse than a loop that has a FIXED BIN(31) control variable.
Under OPT(2) or OPT(3), the compiler will issue I-level message IBM1063 to flag code that uses FIXED BIN(15) control variables. You can get better code if you change the declarations for your loop control variables from FIXED BIN(15) to FIXED BIN(31).