From 65cfb82605f868bf36c6561901424e8b9e5cf759 Mon Sep 17 00:00:00 2001 From: Matthias Braun Date: Mon, 2 Jun 2008 14:27:59 +0000 Subject: [PATCH] only skip float->float convs [r19939] --- ir/be/ia32/ia32_transform.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/ir/be/ia32/ia32_transform.c b/ir/be/ia32/ia32_transform.c index 2a71df0bf..011a34f7a 100644 --- a/ir/be/ia32/ia32_transform.c +++ b/ir/be/ia32/ia32_transform.c @@ -2516,7 +2516,10 @@ static ir_node *gen_normal_Store(ir_node *node) /* Convs (and strict-Convs) before stores are unnecessary if the mode is the same. */ while (is_Conv(val) && mode == get_irn_mode(val)) { - val = get_Conv_op(val); + ir_node *op = get_Conv_op(val); + if (!mode_is_float(get_irn_mode(op))) + break; + val = op; } new_val = be_transform_node(val); if (ia32_cg_config.use_sse2) { -- 2.20.1