This directory holds small tests and benchmarks of code
generated by the compiler.  This code is not for importing,
and the tests are intended to verify that specific optimzations
are applied and correct.
