CMakeLists.txt | 31 +++ doc/langref.html.in | 6 + lib/std/math.zig | 18 ++ lib/std/math/epsilon.zig | 1 + lib/std/math/inf.zig | 1 + lib/std/math/nan.zig | 3 + src/AstGen.zig | 2 + src/Sema.zig | 3 + src/Zir.zig | 5 + src/stage1/all_types.hpp | 2 + src/stage1/analyze.cpp | 13 + src/stage1/codegen.cpp | 456 +++++++++++++++++++++++++++++++- src/stage1/ir.cpp | 262 ++++++++++++++++-- src/stage1/softfloat.hpp | 4 + src/stage1/softfloat_ext.cpp | 38 ++- src/stage1/softfloat_ext.hpp | 4 + src/stage1/target.cpp | 11 + src/stage1/target.hpp | 1 + src/type.zig | 17 ++ src/value.zig | 5 + test/behavior/floatop_stage1.zig | 81 ++++++ test/behavior/math_stage1.zig | 19 ++ test/behavior/muladd.zig | 6 + test/behavior/type_stage1.zig | 3 +- test/behavior/widening.zig | 5 + 25 files changed, 953 insertions(+), 44 deletions(-)