Commit 81bfefba by Julia Koval Committed by Kirill Yukhin

Remove old rounding code

gcc/
	* gcc/config/i386/i386.c (ix86_erase_embedded_rounding):
	Remove code for old rounding pattern.

From-SVN: r250017
parent af5b71c2
2017-07-06 Julia Koval <julia.koval@intel.com>
* gcc/config/i386/i386.c (ix86_erase_embedded_rounding):
Remove code for old rounding pattern.
2017-07-06 Richard Earnshaw <rearnsha@arm.com> 2017-07-06 Richard Earnshaw <rearnsha@arm.com>
* config/arm/parsecpu.awk (gen_comm_data): Do not escape single quotes * config/arm/parsecpu.awk (gen_comm_data): Do not escape single quotes
......
...@@ -36482,21 +36482,11 @@ ix86_expand_args_builtin (const struct builtin_description *d, ...@@ -36482,21 +36482,11 @@ ix86_expand_args_builtin (const struct builtin_description *d,
} }
/* Transform pattern of following layout: /* Transform pattern of following layout:
(parallel [ (set A
set (A B) (unspec [B C] UNSPEC_EMBEDDED_ROUNDING))
(unspec [C] UNSPEC_EMBEDDED_ROUNDING)]) )
])
into: into:
(set (A B)) (set (A B)) */
Or:
(parallel [ A B
...
(unspec [C] UNSPEC_EMBEDDED_ROUNDING)
...
])
into:
(parallel [ A B ... ]) */
static rtx static rtx
ix86_erase_embedded_rounding (rtx pat) ix86_erase_embedded_rounding (rtx pat)
...@@ -36504,48 +36494,14 @@ ix86_erase_embedded_rounding (rtx pat) ...@@ -36504,48 +36494,14 @@ ix86_erase_embedded_rounding (rtx pat)
if (GET_CODE (pat) == INSN) if (GET_CODE (pat) == INSN)
pat = PATTERN (pat); pat = PATTERN (pat);
if (GET_CODE (pat) == PARALLEL) gcc_assert (GET_CODE (pat) == SET);
{ rtx src = SET_SRC (pat);
if (XVECLEN (pat, 0) == 2) gcc_assert (XVECLEN (src, 0) == 2);
{ rtx p0 = XVECEXP (src, 0, 0);
rtx p0 = XVECEXP (pat, 0, 0); gcc_assert (GET_CODE (src) == UNSPEC
rtx p1 = XVECEXP (pat, 0, 1); && XINT (src, 1) == UNSPEC_EMBEDDED_ROUNDING);
gcc_assert (GET_CODE (p0) == SET rtx res = gen_rtx_SET (SET_DEST (pat), p0);
&& GET_CODE (p1) == UNSPEC return res;
&& XINT (p1, 1) == UNSPEC_EMBEDDED_ROUNDING);
return p0;
}
else
{
rtx *res = XALLOCAVEC (rtx, XVECLEN (pat, 0));
int i = 0;
int j = 0;
for (; i < XVECLEN (pat, 0); ++i)
{
rtx elem = XVECEXP (pat, 0, i);
if (GET_CODE (elem) != UNSPEC
|| XINT (elem, 1) != UNSPEC_EMBEDDED_ROUNDING)
res[j++] = elem;
}
/* No more than 1 occurence was removed. */
gcc_assert (j >= XVECLEN (pat, 0) - 1);
return gen_rtx_PARALLEL (GET_MODE (pat), gen_rtvec_v (j, res));
}
}
else
{
gcc_assert (GET_CODE (pat) == SET);
rtx src = SET_SRC (pat);
gcc_assert (XVECLEN (src, 0) == 2);
rtx p0 = XVECEXP (src, 0, 0);
gcc_assert (GET_CODE (src) == UNSPEC
&& XINT (src, 1) == UNSPEC_EMBEDDED_ROUNDING);
rtx res = gen_rtx_SET (SET_DEST (pat), p0);
return res;
}
} }
/* Subroutine of ix86_expand_round_builtin to take care of comi insns /* Subroutine of ix86_expand_round_builtin to take care of comi insns
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