summaryrefslogtreecommitdiff
path: root/gcc/config/alpha
diff options
context:
space:
mode:
authoruros <uros@138bc75d-0d04-0410-961f-82ee72b054a4>2008-12-05 14:22:48 +0000
committeruros <uros@138bc75d-0d04-0410-961f-82ee72b054a4>2008-12-05 14:22:48 +0000
commit70ce4162b16d7f808a157e277c18cbc494e456f2 (patch)
treeddab6f522bcc1ce2b865013bf2e87f2d515ff2d5 /gcc/config/alpha
parenta69b5b1528876447d213fd554e0d810babb452cf (diff)
downloadgcc-70ce4162b16d7f808a157e277c18cbc494e456f2.tar.gz
* config/alpha/alpha.c (alpha_fold_vector_minmax): Create
VIEW_CONVERT_EXPR to convert output to long_integer_type_node. (alpha_emit_conditional_branch): Do not generate direct branch for UNORDERED comparisons. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@142474 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/config/alpha')
-rw-r--r--gcc/config/alpha/alpha.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/gcc/config/alpha/alpha.c b/gcc/config/alpha/alpha.c
index d11948772fb..26feea52dda 100644
--- a/gcc/config/alpha/alpha.c
+++ b/gcc/config/alpha/alpha.c
@@ -2453,7 +2453,7 @@ alpha_emit_conditional_branch (enum rtx_code code)
if (alpha_compare.fp_p)
{
cmp_mode = DFmode;
- if (flag_unsafe_math_optimizations)
+ if (flag_unsafe_math_optimizations && cmp_code != UNORDERED)
{
/* When we are not as concerned about non-finite values, and we
are comparing against zero, we can branch directly. */
@@ -6825,7 +6825,7 @@ alpha_fold_vector_minmax (enum tree_code code, tree op[], tree vtype)
tree op0 = fold_convert (vtype, op[0]);
tree op1 = fold_convert (vtype, op[1]);
tree val = fold_build2 (code, vtype, op0, op1);
- return fold_convert (long_integer_type_node, val);
+ return fold_build1 (VIEW_CONVERT_EXPR, long_integer_type_node, val);
}
static tree