Commit 0df28e68 by Richard Sandiford

aarch64: Avoid creating an unused register

The rsqrt path of aarch64_emit_approx_sqrt created a pseudo
register that it never used.

2020-02-21  Richard Sandiford  <richard.sandiford@arm.com>

gcc/
	* config/aarch64/aarch64.c (aarch64_emit_approx_sqrt): Don't create
	an unused xmsk register when handling approximate rsqrt.
parent 902d28bd
2020-02-21 Richard Sandiford <richard.sandiford@arm.com>
* config/aarch64/aarch64.c (aarch64_emit_approx_sqrt): Don't create
an unused xmsk register when handling approximate rsqrt.
2020-02-21 Richard Sandiford <richard.sandiford@arm.com>
* config/aarch64/aarch64.c (aarch64_emit_approx_sqrt): Fix inverted
flag_finite_math_only condition.
......
......@@ -12774,14 +12774,17 @@ aarch64_emit_approx_sqrt (rtx dst, rtx src, bool recp)
machine_mode mmsk = (VECTOR_MODE_P (mode)
? related_int_vector_mode (mode).require ()
: int_mode_for_mode (mode).require ());
rtx xmsk = gen_reg_rtx (mmsk);
rtx xmsk = NULL_RTX;
if (!recp)
/* When calculating the approximate square root, compare the
argument with 0.0 and create a mask. */
emit_insn (gen_rtx_SET (xmsk,
gen_rtx_NEG (mmsk,
gen_rtx_EQ (mmsk, src,
CONST0_RTX (mode)))));
{
/* When calculating the approximate square root, compare the
argument with 0.0 and create a mask. */
xmsk = gen_reg_rtx (mmsk);
emit_insn (gen_rtx_SET (xmsk,
gen_rtx_NEG (mmsk,
gen_rtx_EQ (mmsk, src,
CONST0_RTX (mode)))));
}
/* Estimate the approximate reciprocal square root. */
rtx xdst = gen_reg_rtx (mode);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment