do --- type instability on loop unroll -> record unroll
  local flip = true
  for i=1,100 do flip = not flip end
  assert(flip == true)
end

do --- loop-unroll-test
  local t = {}
  local a, b, c = 1, "", t
  for i=1,100 do a,b,c=b,c,a end
  assert(c == 1 and a == "" and b == t)
end


do --- FAILFOLD on loop unroll -> LJ_TRERR_GFAIL -> record unroll
  local t = { 1, 2 }
  local k = 2
  local x = 0
  for i=1,200 do
    x = x + t[k]
    k = k == 1 and 2 or 1
  end
  assert(x == 300 and k == 2)
end

do --- Unroll if inner loop aborts.
  local j = 0
  for i = 1,100 do
    repeat
      j = j+1
    until true
  end
end