diff options
Diffstat (limited to 'gcc/testsuite/gcc.dg/tree-ssa/forwprop-25.c')
-rw-r--r-- | gcc/testsuite/gcc.dg/tree-ssa/forwprop-25.c | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/forwprop-25.c b/gcc/testsuite/gcc.dg/tree-ssa/forwprop-25.c new file mode 100644 index 00000000000..cf0c504275f --- /dev/null +++ b/gcc/testsuite/gcc.dg/tree-ssa/forwprop-25.c @@ -0,0 +1,43 @@ +/* { dg-do compile } */ +/* { dg-options "-O1 -fdump-tree-forwprop1" } */ + +struct rtx_def; +typedef struct rtx_def *rtx; +typedef const struct rtx_def *const_rtx; +enum machine_mode +{ + MAX_MACHINE_MODE, + NUM_MACHINE_MODES = MAX_MACHINE_MODE +}; +extern const char *const mode_name[NUM_MACHINE_MODES]; +enum mode_class +{ MODE_RANDOM, MODE_CC, MODE_INT, MODE_PARTIAL_INT, MODE_FRACT, MODE_UFRACT, + MODE_ACCUM, MODE_UACCUM, MODE_FLOAT, MODE_DECIMAL_FLOAT, MODE_COMPLEX_INT, + MODE_COMPLEX_FLOAT, MODE_VECTOR_INT, MODE_VECTOR_FRACT, + MODE_VECTOR_UFRACT, MODE_VECTOR_ACCUM, MODE_VECTOR_UACCUM, + MODE_VECTOR_FLOAT, MAX_MODE_CLASS }; +extern const unsigned char mode_class[NUM_MACHINE_MODES]; +extern const unsigned short mode_precision[NUM_MACHINE_MODES]; +struct rtx_def +{ + __extension__ enum machine_mode mode:8; +}; +void +convert_move (rtx to, rtx from, int unsignedp) +{ + enum machine_mode to_mode = ((enum machine_mode) (to)->mode); + enum machine_mode from_mode = ((enum machine_mode) (from)->mode); + ((void) + (!((mode_precision[from_mode] != mode_precision[to_mode]) + || ((((enum mode_class) mode_class[from_mode]) == MODE_DECIMAL_FLOAT) != + (((enum mode_class) mode_class[to_mode]) == + MODE_DECIMAL_FLOAT))) ? + fancy_abort ("/home/gcc/virgin-gcc/gcc/expr.c", 380, __FUNCTION__), + 0 : 0)); +} + +/* { dg-final { scan-tree-dump "Replaced.*!=.*with.*!=.* " "forwprop1"} } */ +/* { dg-final { cleanup-tree-dump "forwprop1" } } */ + + + |