Sequential multiplications by 2^N are optimized but sequential divisions are not

Divisions in this example have no reasons not to compile into "shr 9", as multiplications do. X isn't even signed.

var
	x: SizeUint;

begin
	// produces "shl 9"
	x := SizeUint(random(0)) * 2 * 2 * 2 * 4 * 4 * 4;
	writeln(x);

	// produces six "shr"s
	x := SizeUint(random(0)) div 2 div 2 div 2 div 4 div 4 div 4;
	writeln(x);
end.
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information