aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Henderson <rth@redhat.com>2011-10-25 14:30:26 -0700
committerRichard Henderson <rth@gcc.gnu.org>2011-10-25 14:30:26 -0700
commit152a50a993d65065d0c349f3cd4284f5fb995b1d (patch)
treef684d8fe3250df0a5c4631ae3ce100729405dd57
parent45815441c3a6d2da94a5f3b1297fcc13ae3ebeb6 (diff)
downloadgcc-152a50a993d65065d0c349f3cd4284f5fb995b1d.zip
gcc-152a50a993d65065d0c349f3cd4284f5fb995b1d.tar.gz
gcc-152a50a993d65065d0c349f3cd4284f5fb995b1d.tar.bz2
i386: Delete the vec_extract_even/odd patterns.
These can be generated by vec_perm_const now. We could keep the patterns around, as technically it may be less work, but this exercises a code path needed by less primary platforms. * config/i386/sse.md (VEC_EXTRACT_EVENODD_MODE): Remove. (vec_extract_even<mode>, vec_extract_odd<mode>): Remove. From-SVN: r180453
-rw-r--r--gcc/ChangeLog3
-rw-r--r--gcc/config/i386/sse.md29
2 files changed, 3 insertions, 29 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index dc3fdda..e4d412e 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,8 @@
2011-10-25 Richard Henderson <rth@redhat.com>
+ * config/i386/sse.md (VEC_EXTRACT_EVENODD_MODE): Remove.
+ (vec_extract_even<mode>, vec_extract_odd<mode>): Remove.
+
* config/rs6000/altivec.md (vec_extract_evenv8hi,
vec_extract_evenv16qi, vec_extract_oddv4si,
vec_extract_oddv4sf): Remove.
diff --git a/gcc/config/i386/sse.md b/gcc/config/i386/sse.md
index ee3af03..31c40d3 100644
--- a/gcc/config/i386/sse.md
+++ b/gcc/config/i386/sse.md
@@ -4395,35 +4395,6 @@
DONE;
})
-;; Modes handled by vec_extract_even/odd pattern.
-(define_mode_iterator VEC_EXTRACT_EVENODD_MODE
- [(V32QI "TARGET_AVX2") (V16QI "TARGET_SSE2")
- (V16HI "TARGET_AVX2") (V8HI "TARGET_SSE2")
- (V8SI "TARGET_AVX2") (V4SI "TARGET_SSE2")
- (V4DI "TARGET_AVX2") (V2DI "TARGET_SSE2")
- (V8SF "TARGET_AVX") V4SF
- (V4DF "TARGET_AVX") (V2DF "TARGET_SSE2")])
-
-(define_expand "vec_extract_even<mode>"
- [(match_operand:VEC_EXTRACT_EVENODD_MODE 0 "register_operand" "")
- (match_operand:VEC_EXTRACT_EVENODD_MODE 1 "register_operand" "")
- (match_operand:VEC_EXTRACT_EVENODD_MODE 2 "register_operand" "")]
- "TARGET_SSE"
-{
- ix86_expand_vec_extract_even_odd (operands[0], operands[1], operands[2], 0);
- DONE;
-})
-
-(define_expand "vec_extract_odd<mode>"
- [(match_operand:VEC_EXTRACT_EVENODD_MODE 0 "register_operand" "")
- (match_operand:VEC_EXTRACT_EVENODD_MODE 1 "register_operand" "")
- (match_operand:VEC_EXTRACT_EVENODD_MODE 2 "register_operand" "")]
- "TARGET_SSE"
-{
- ix86_expand_vec_extract_even_odd (operands[0], operands[1], operands[2], 1);
- DONE;
-})
-
;; punpcklqdq and punpckhqdq are shorter than shufpd.
(define_insn "avx2_interleave_highv4di"
[(set (match_operand:V4DI 0 "register_operand" "=x")