[tilegx] Support IEEE unordered float compare.

  TileGX float compare instruction "fsingle/double_add_flags"
support unorder check (check if the operand is NaN), the result
will be kept in bit 25.

  we should implement unordered float compare seriously, so that
those builtin, __builtin_islessgreater, __builitin_isunordered etc,
could work.

  for SETUXX (true if unordered *or* XX [EQ, NE, GT ...]), generate
the following instructoin sequences to finish the check:

  fsingle/double_add_flags rA, rB, rC
  shrui rA, rA, 25 (right shift 25, so that unordered bit is there)
  andi  rA, rA, check-mask (depending on XX)
  cmpne rA, rA, zero

  for SETOXX (true if ordered *and* XX), we expand SETOXX to SETO and
  SETXX.

  (exposed by testcases under gcc/testsuite/gcc.c-torture/execute/ieee,
   after this patch, all passed)