Mercurial > hg > CbC > CbC_gcc
view gcc/testsuite/gcc.dg/pr35045.c @ 158:494b0b89df80 default tip
...
author | Shinji KONO <kono@ie.u-ryukyu.ac.jp> |
---|---|
date | Mon, 25 May 2020 18:13:55 +0900 |
parents | 1830386684a0 |
children |
line wrap: on
line source
/* { dg-do run } */ /* { dg-skip-if "" { { i?86-*-* x86_64-*-* } && { ia32 && { ! nonpic } } } } */ /* { dg-skip-if "Not enough registers" { "pdp11-*-*" } } */ /* { dg-options "-O2 -fgcse-after-reload" } */ extern void abort (void); __attribute__((noinline)) __complex__ float give_neg1 (void) { __complex__ float res; __real__ res = -1.0; __imag__ res = 1.0; return res; } __attribute__((noinline)) __complex__ float mycacoshf (__complex__ float x) { __complex__ float res; res = give_neg1 (); /* We have to use the positive branch. */ if (__real__ res < 0.0) { unsigned a,b,c,d,e,f; res = -res; asm __volatile__ ("" : "=r" (a), "=r" (b), "=r" (c), "=r" (d), "=r" (e), "=r" (f)); } return res; } int main() { __complex__ float res = mycacoshf(1.0); if (__imag__ res >= 0.0) abort(); return 0; }