When linearizing __builtin_fma(), the arguments were just assigned but the corresponding usage was not tracked. Fix this. Signed-off-by: Luc Van Oostenryck <luc.vanoostenryck@xxxxxxxxx> --- linearize.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/linearize.c b/linearize.c index 85d370de5728..bf9b6ecdc92e 100644 --- a/linearize.c +++ b/linearize.c @@ -2591,11 +2591,11 @@ static pseudo_t linearize_fma(struct entrypoint *ep, struct expression *expr) struct expression *arg; PREPARE_PTR_LIST(expr->args, arg); - insn->src1 = linearize_expression(ep, arg); + use_pseudo(insn, linearize_expression(ep, arg), &insn->src1); NEXT_PTR_LIST(arg) - insn->src2 = linearize_expression(ep, arg); + use_pseudo(insn, linearize_expression(ep, arg), &insn->src2); NEXT_PTR_LIST(arg) - insn->src3 = linearize_expression(ep, arg); + use_pseudo(insn, linearize_expression(ep, arg), &insn->src3); FINISH_PTR_LIST(arg); add_one_insn(ep, insn); -- 2.29.1