aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJulia Koval <julia.koval@intel.com>2017-07-06 13:03:35 +0200
committerKirill Yukhin <kyukhin@gcc.gnu.org>2017-07-06 11:03:35 +0000
commit81bfefba7f6befbbce0d4f4fff9ac1dd2d1dfe0f (patch)
tree75b16e45943622199301a9d93115428f1b09bd59
parentaf5b71c248aea8a741fa28edb230c2e041f74783 (diff)
downloadgcc-81bfefba7f6befbbce0d4f4fff9ac1dd2d1dfe0f.zip
gcc-81bfefba7f6befbbce0d4f4fff9ac1dd2d1dfe0f.tar.gz
gcc-81bfefba7f6befbbce0d4f4fff9ac1dd2d1dfe0f.tar.bz2
Remove old rounding code
gcc/ * gcc/config/i386/i386.c (ix86_erase_embedded_rounding): Remove code for old rounding pattern. From-SVN: r250017
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/config/i386/i386.c68
2 files changed, 17 insertions, 56 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 7ba5df3..11051e6 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+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>
* config/arm/parsecpu.awk (gen_comm_data): Do not escape single quotes
diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c
index 1a8a3a3..e2e4548 100644
--- a/gcc/config/i386/i386.c
+++ b/gcc/config/i386/i386.c
@@ -36482,21 +36482,11 @@ ix86_expand_args_builtin (const struct builtin_description *d,
}
/* Transform pattern of following layout:
- (parallel [
- set (A B)
- (unspec [C] UNSPEC_EMBEDDED_ROUNDING)])
- ])
+ (set A
+ (unspec [B C] UNSPEC_EMBEDDED_ROUNDING))
+ )
into:
- (set (A B))
-
- Or:
- (parallel [ A B
- ...
- (unspec [C] UNSPEC_EMBEDDED_ROUNDING)
- ...
- ])
- into:
- (parallel [ A B ... ]) */
+ (set (A B)) */
static rtx
ix86_erase_embedded_rounding (rtx pat)
@@ -36504,48 +36494,14 @@ ix86_erase_embedded_rounding (rtx pat)
if (GET_CODE (pat) == INSN)
pat = PATTERN (pat);
- if (GET_CODE (pat) == PARALLEL)
- {
- if (XVECLEN (pat, 0) == 2)
- {
- rtx p0 = XVECEXP (pat, 0, 0);
- rtx p1 = XVECEXP (pat, 0, 1);
- gcc_assert (GET_CODE (p0) == SET
- && GET_CODE (p1) == UNSPEC
- && 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;
- }
+ 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