Hi Aldy! On Thu, 2022-09-08 12:56:24 +0200, Aldy Hernandez via Gcc-patches wrote: > From 795baa0b044953e9f198f49e379374d633f43b47 Mon Sep 17 00:00:00 2001 > From: Aldy Hernandez > Date: Thu, 8 Sep 2022 08:11:43 +0200 > Subject: [PATCH] Implement known/maybe fpclassify like API for frange. > > gcc/ChangeLog: > > * gimple-range-fold.cc > (fold_using_range::range_of_builtin_int_call): Use fpclassify like API. > * range-op-float.cc (finite_operand_p): Same. > (finite_operands_p): Same. > (foperator_lt::fold_range): Same. > (foperator_le::fold_range): Same. > (foperator_gt::fold_range): Same. > (foperator_ge::fold_range): Same. > (foperator_unordered::fold_range): Same. > (foperator_unordered::op1_range): Same. > (foperator_ordered::fold_range): Same. > * value-range.cc (frange::set_nan): Same. > (frange::set_signbit): Same. > (frange::union_): Same. > (frange::intersect): Same. > (frange::operator==): Same. > (frange::singleton_p): Same. > (frange::verify_range): Same. > (range_tests_nan): Same. > (range_tests_floats): Same. > * value-range.h(frange::known_finite): New. > (frange::maybe_inf): New. > (frange::known_inf): New. > (frange::maybe_nan): New. > (frange::known_nan): New. > (frange::known_signbit): New. > --- > gcc/gimple-range-fold.cc | 19 +++--- > gcc/range-op-float.cc | 26 ++++---- > gcc/value-range.cc | 126 +++++++++++++++++++++++---------------- > gcc/value-range.h | 78 +++++++++++++++++++++++- > 4 files changed, 170 insertions(+), 79 deletions(-) This triggers a selftest failure for pdp11: .../gcc/configure --prefix=... --enable-werror-always --enable-languages=all --disable-gcov --disable-shared --disable-threads --target=pdp11-aout --without-headers [...] make V=1 all-gcc [...] /var/lib/laminar/run/gcc-pdp11-aout/13/toolchain-build/./gcc/xgcc -B/var/lib/laminar/run/gcc-pdp11-aout/13/toolchain-build/./gcc/ -xc -nostdinc /dev/null -S -o /dev/null -fself-test=../../gcc/gcc/testsuite/selftests ../../gcc/gcc/value-range.cc:3801: range_tests_signbit: FAIL: ASSERT_TRUE ((r0.undefined_p ())) In function 'test_fn': cc1: internal compiler error: in fail, at selftest.cc:47 0x1757e97 selftest::fail(selftest::location const&, char const*) ../../gcc/gcc/selftest.cc:47 0x109ab62 range_tests_signbit ../../gcc/gcc/value-range.cc:3801 0x109ab62 range_tests_floats ../../gcc/gcc/value-range.cc:3810 0x10a9cf1 selftest::range_tests() ../../gcc/gcc/value-range.cc:3914 0x156e6d7 test_ranges ../../gcc/gcc/function-tests.cc:584 0x156e6d7 selftest::function_tests_cc_tests() ../../gcc/gcc/function-tests.cc:680 0x168d60b selftest::run_tests() ../../gcc/gcc/selftest-run-tests.cc:107 0xd968c9 toplev::run_self_tests() ../../gcc/gcc/toplev.cc:2184 Please submit a full bug report, with preprocessed source (by using -freport-bug). Please include the complete backtrace with any bug report. See for instructions. make[1]: *** [../../gcc/gcc/c/Make-lang.in:128: s-selftest-c] Error 1 Thanks, Jan-Benedict --