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

            Bug ID: 114976
           Summary: MIPS64: get double high part can use mfhc1
           Product: gcc
           Version: unknown
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: target
          Assignee: unassigned at gcc dot gnu.org
          Reporter: syq at gcc dot gnu.org
  Target Milestone: ---

```
unsigned int
__mips_mfhc1 (double x)
{
  unsigned int ret;
  union {
    unsigned long long i;
    double d;
  } xx;
  xx.d=x;
  ret = xx.i>>32;
  return ret;
}
```

For R2+, we can just use `mfhc1`, while currently the output is 
```
        dmfc1   $2,$f12
        jr      $31
        dsra    $2,$2,32
```

Reply via email to