diff options
Diffstat (limited to 'gcc/testsuite/gcc.target/mips/pr37362.c')
-rw-r--r-- | gcc/testsuite/gcc.target/mips/pr37362.c | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/gcc/testsuite/gcc.target/mips/pr37362.c b/gcc/testsuite/gcc.target/mips/pr37362.c new file mode 100644 index 000000000..14e3a75f1 --- /dev/null +++ b/gcc/testsuite/gcc.target/mips/pr37362.c @@ -0,0 +1,19 @@ +/* { dg-do compile } */ +/* { dg-options "-march=mips64r2 -mabi=n32" } */ + +typedef float TFtype __attribute__((mode(TF))); + +TFtype +__powitf (TFtype x, int m) +{ + unsigned int n = m < 0 ? -m : m; + TFtype y = n % 2 ? x : 1; + while (n >>= 1) + { + x = x * x; + if (n % 2) + y = y * x; + } + return m < 0 ? 1/y : y; +} + |