diff options
author | Luc Van Oostenryck <luc.vanoostenryck@gmail.com> | 2020-10-27 01:19:19 +0100 |
---|---|---|
committer | Luc Van Oostenryck <luc.vanoostenryck@gmail.com> | 2020-11-01 01:04:06 +0100 |
commit | abfaa2dfb4d69eb0857d5af8ed082ccf8b824c46 (patch) | |
tree | 3781ebe67cfa50e7a1b47141588cd50359ae0f39 | |
parent | 7204b60f37561620102437f421300b24f91d03c3 (diff) | |
download | sparse-abfaa2dfb4d69eb0857d5af8ed082ccf8b824c46.tar.gz |
fix usage count in linearize_fma()
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@gmail.com>
-rw-r--r-- | linearize.c | 6 | ||||
-rw-r--r-- | validation/linear/builtin-fma.c | 2 |
2 files changed, 4 insertions, 4 deletions
diff --git a/linearize.c b/linearize.c index 6c72f2e3..85b8ac60 100644 --- a/linearize.c +++ b/linearize.c @@ -2582,11 +2582,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); diff --git a/validation/linear/builtin-fma.c b/validation/linear/builtin-fma.c index b1024f39..9ca50f0f 100644 --- a/validation/linear/builtin-fma.c +++ b/validation/linear/builtin-fma.c @@ -11,7 +11,7 @@ double fma(double a, double x, double y) fma: .L0: <entry-point> - fmadd.64 %r4 <- %r1, %r2, %r3 + fmadd.64 %r4 <- %arg1, %arg2, %arg3 ret.64 %r4 |