Files
mercury/tests/hard_coded/float_consistency.m
Simon Taylor 8f74fe4f21 Change calls to float./ to float.unchecked_quotient.
Estimated hours taken: 0.1
Branches: main, release

tests/hard_coded/float_consistency.m:
	Change calls to float./ to float.unchecked_quotient.
	This test case is meant to test compile-time evaluation
	of builtins. float./ hasn't been builtin for a while.
	This test case fails with --optimize-constant-propagation.

tests/hard_coded/Mercury.options:
	Enable --optimize-constant-propagation for this test.
2003-06-12 04:06:01 +00:00

27 lines
877 B
Mathematica

% This test case tests that the compiler's constant propagation for
% floating point division produce the same value as that produced
% by doing the division at runtime.
% This is a regression test; versions of the compiler prior to Nov 2002
% failed this test at -O3 and higher.
:- module float_consistency.
:- interface.
:- import_module io.
:- pred main(state::di, state::uo) is det.
:- implementation.
:- import_module float, string.
main -->
{ Lit_one = 1.0 },
{ Calc_one = same_as(Lit_one) },
print("Calc_one = Lit_one: " ++
(if Calc_one = Lit_one then "true" else "false")), nl,
print("Calc_one/9.0 = Lit_one/9.0: " ++
(if unchecked_quotient(Calc_one, 9.0)
= unchecked_quotient(Lit_one, 9.0)
then "true" else "false")),
nl.
:- pragma no_inline(same_as/1).
:- func same_as(float) = float.
same_as(X) = X.