-OoDEADSTORE takes on too much, chapter Ⅱ.
This code compiled with `-O4 -OoDEADSTORE` on something that uses min/max intrinsics (like `x86-64`, or `i386` with `-CfSSE3`): - drops `minData := data[0]`, - drops `maxData := data[0]` as well, - and even drops the first copy of the unrolled loop body (with `i = 1`). ```pascal var data: array[0 .. 2] of single = (8, 7, 6); minData, maxData: single; i: SizeInt; begin minData := data[0]; maxData := data[0]; for i := 1 to High(data) do begin if data[i] < minData then minData := data[i]; if data[i] > maxData then maxData := data[i]; end; writeln('min = ', minData:0:2, ' (must be 6), max = ', maxData:0:2, ' (must be 8).'); end. ``` ``` min = 0.00 (must be 6), max = 6.00 (must be 8). ```
issue