doc/langref.html.in | 24 +-- src/all_types.hpp | 17 +- src/analyze.cpp | 32 ++- src/analyze.hpp | 1 + src/codegen.cpp | 48 +++-- src/ir.cpp | 331 +++++++++++++++++--------------- src/ir_print.cpp | 90 +++++---- std/heap.zig | 2 +- std/math.zig | 2 +- std/math/big/int.zig | 8 +- std/mem.zig | 16 +- std/os.zig | 2 +- std/packed_int_array.zig | 6 +- std/special/compiler_rt.zig | 3 +- std/special/compiler_rt/addXf3.zig | 8 +- std/special/compiler_rt/divdf3.zig | 2 +- std/special/compiler_rt/divsf3.zig | 2 +- std/special/compiler_rt/extendXfYf2.zig | 3 +- std/special/compiler_rt/floatsiXf.zig | 4 +- std/special/compiler_rt/floattidf.zig | 2 +- std/special/compiler_rt/floattisf.zig | 2 +- std/special/compiler_rt/floattitf.zig | 2 +- std/special/compiler_rt/floatunditf.zig | 2 +- std/special/compiler_rt/floatunsidf.zig | 2 +- std/special/compiler_rt/floatunsitf.zig | 2 +- std/special/compiler_rt/floatuntidf.zig | 2 +- std/special/compiler_rt/floatuntisf.zig | 2 +- std/special/compiler_rt/floatuntitf.zig | 2 +- std/special/compiler_rt/mulXf3.zig | 2 +- std/special/compiler_rt/udivmod.zig | 10 +- test/compile_errors.zig | 11 +- test/stage1/behavior.zig | 2 +- test/stage1/behavior/bitreverse.zig | 88 ++++----- test/stage1/behavior/bswap.zig | 32 --- test/stage1/behavior/bugs/2114.zig | 2 +- test/stage1/behavior/byteswap.zig | 32 +++ test/stage1/behavior/math.zig | 37 ++-- test/stage1/behavior/popcount.zig | 27 ++- 38 files changed, 466 insertions(+), 396 deletions(-)