https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92635

            Bug ID: 92635
           Summary: __builtin_finited{32,64,128} should inline
           Product: gcc
           Version: 10.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: target
          Assignee: unassigned at gcc dot gnu.org
          Reporter: murphyp at linux dot vnet.ibm.com
  Target Milestone: ---
            Target: powerpc

Inline ASM is not ideal since dfp classification instructions targets CRs.

e.g for _Decimal128:

inline _Decimal128
___isfinited128 (_Decimal128 x)
{
  int cr0;

  asm ("dtstdcq cr0,%1,0x38\n"
       "mfcr     %0, 128\n"
    : "=r" (cr0)
    : "f" (x)
     : "cr0");

  return (cr0 & 0x20000000) ? 1 : 0;
};

Reply via email to