I finally got back to investigating this ....

On 21/11/2018 01:00, Jeff Law wrote:
--- a/gcc/testsuite/gcc.dg/gimplefe-28.c
+++ b/gcc/testsuite/gcc.dg/gimplefe-28.c
@@ -1,5 +1,5 @@
  /* { dg-do compile { target sqrt_insn } } */
-/* { dg-options "-fgimple -O2" } */
+/* { dg-options "-fgimple -O2 -ffast-math" } */
So why does the GCN need fast-math here?  I'm not aware of any other
target  that needs that kind of handling to make this test work.

It needs it because the sqrt instruction is only enabled when flag_unsafe_math_optimizations is set. This seems appropriate given the approximate nature of the machine instruction.

This test uses gimple directly and so bypasses the usual optab checks that would normally select a library function instead, which results in an ICE.

It seems like a safe change to make, since most targets will have more patterns enabled, not fewer, in this mode.

The test will continue to fail on any target that does not have a sqrt instruction at all.

Andrew

Reply via email to