aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-ssa-pre.c
diff options
context:
space:
mode:
authorRichard Guenther <rguenther@suse.de>2006-12-14 13:14:23 +0000
committerRichard Biener <rguenth@gcc.gnu.org>2006-12-14 13:14:23 +0000
commit28f4586bf8676b0c6a44d239e366432d5e1fbe1b (patch)
treeff05698d7bed697273367ce096bf05306d5df40e /gcc/tree-ssa-pre.c
parent9f5396713d9e188bad160c5816f3bfd21b6f32ca (diff)
downloadgcc-28f4586bf8676b0c6a44d239e366432d5e1fbe1b.zip
gcc-28f4586bf8676b0c6a44d239e366432d5e1fbe1b.tar.gz
gcc-28f4586bf8676b0c6a44d239e366432d5e1fbe1b.tar.bz2
re PR middle-end/30197 (cexp ( __complex__ ( 0, x ) ) can be folded to cexpi (x))
2006-12-14 Richard Guenther <rguenther@suse.de> PR tree-optimization/30197 * builtins.c (fold_builtin_cexp): New function to fold cexp to cexpi and exp parts. * tree-ssa-pre.c (try_combine_conversion): Also handle REALPART_EXPR and IMAGPART_EXPR. * gcc.c-torture/execute/complex-1.c: Fix function name. * gcc.dg/builtins-61.c: New testcase. From-SVN: r119860
Diffstat (limited to 'gcc/tree-ssa-pre.c')
-rw-r--r--gcc/tree-ssa-pre.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/gcc/tree-ssa-pre.c b/gcc/tree-ssa-pre.c
index 871006d..72af16d 100644
--- a/gcc/tree-ssa-pre.c
+++ b/gcc/tree-ssa-pre.c
@@ -3613,7 +3613,9 @@ try_combine_conversion (tree *expr_p)
unsigned int firstbit;
if (!((TREE_CODE (expr) == NOP_EXPR
- || TREE_CODE (expr) == CONVERT_EXPR)
+ || TREE_CODE (expr) == CONVERT_EXPR
+ || TREE_CODE (expr) == REALPART_EXPR
+ || TREE_CODE (expr) == IMAGPART_EXPR)
&& TREE_CODE (TREE_OPERAND (expr, 0)) == VALUE_HANDLE
&& !VALUE_HANDLE_VUSES (TREE_OPERAND (expr, 0))))
return false;