URL
https://opencores.org/ocsvn/openrisc/openrisc/trunk
Subversion Repositories openrisc
[/] [openrisc/] [trunk/] [gnu-dev/] [or1k-gcc/] [gcc/] [testsuite/] [gcc.dg/] [torture/] [builtin-cproj-2.c] - Rev 801
Go to most recent revision | Compare with Previous | Blame | View Log
/* Copyright (C) 2010 Free Software Foundation. Verify that folding of built-in cproj is correctly performed by the compiler. With -ffinite-math-only all cproj calls should be eliminated regardless of what the argument is, or what is known about it. Origin: Kaveh R. Ghazi, April 9, 2010. */ /* { dg-do link } */ /* { dg-options "-ffinite-math-only" } */ /* All references to link_error should go away at compile-time. The argument is the __LINE__ number. It appears in the tree dump file and aids in debugging should any of the tests fail. */ extern void link_error(int); #define CPROJ(X) __builtin_cproj(X) #define CPROJF(X) __builtin_cprojf(X) #define CPROJL(X) __builtin_cprojl(X) /* Test that the supplied expressions eliminte the cproj call. */ #define TEST_EXPRS(LD_EXPR, D_EXPR, F_EXPR) do { \ if (CPROJF(F_EXPR) != (F_EXPR)) \ link_error (__LINE__); \ if (CPROJ(D_EXPR) != (D_EXPR)) \ link_error (__LINE__); \ if (CPROJL(LD_EXPR) != (LD_EXPR)) \ link_error (__LINE__); \ } while (0) void foo (_Complex long double cld, _Complex double cd, _Complex float cf) { #ifdef __OPTIMIZE__ TEST_EXPRS (cld, cd, cf); TEST_EXPRS (cld*2, cd*2, cf*2); TEST_EXPRS (cld*cld, cd*cd, cf*cf); #endif return; } int main (void) { return 0; }
Go to most recent revision | Compare with Previous | Blame | View Log