| ... | @@ -778,8 +778,14 @@ test "quad hex float literal parsing accurate" { | ... | @@ -778,8 +778,14 @@ test "quad hex float literal parsing accurate" { |
| 778 | try expect(@bitCast(u128, f) == 0x40042eab345678439abcdefea5678234); | 778 | try expect(@bitCast(u128, f) == 0x40042eab345678439abcdefea5678234); |
| 779 | } | 779 | } |
| 780 | { | 780 | { |
| 781 | var f: f128 = 0x1.edcb34a235253948765432134674fp-1; | 781 | // TODO: modify stage1/parse_f128.c to use round-to-even |
| 782 | try expect(@bitCast(u128, f) == 0x3ffeedcb34a235253948765432134674); | 782 | if (builtin.zig_backend == .stage1) { |
| | 783 | var f: f128 = 0x1.edcb34a235253948765432134674fp-1; |
| | 784 | try expect(@bitCast(u128, f) == 0x3ffeedcb34a235253948765432134674); // round-down |
| | 785 | } else { |
| | 786 | var f: f128 = 0x1.edcb34a235253948765432134674fp-1; |
| | 787 | try expect(@bitCast(u128, f) == 0x3ffeedcb34a235253948765432134675); // round-to-even |
| | 788 | } |
| 783 | } | 789 | } |
| 784 | { | 790 | { |
| 785 | var f: f128 = 0x1.353e45674d89abacc3a2ebf3ff4ffp-50; | 791 | var f: f128 = 0x1.353e45674d89abacc3a2ebf3ff4ffp-50; |