/* Copyright (C) 2003 Free Software Foundation. Check that the RTL expansion of floating point exponentiation by a constant integer doesn't break anything and produces the expected results. Written by Roger Sayle, 20th June 2003. */ /* { dg-do run } */ /* { dg-options "-O2 -ffast-math" } */ extern double pow(double,double); extern void abort(void); double foo (double x) { return pow (x, 6); } double bar (double x) { return pow (x, -4); } int main() { if (foo (2.0) != 64.0) abort (); if (bar (2.0) != 0.0625) abort (); return 0; }