]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
i386: Delete the vec_extract_even/odd patterns.
authorRichard Henderson <rth@redhat.com>
Tue, 25 Oct 2011 21:30:26 +0000 (14:30 -0700)
committerRichard Henderson <rth@gcc.gnu.org>
Tue, 25 Oct 2011 21:30:26 +0000 (14:30 -0700)
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

gcc/ChangeLog
gcc/config/i386/sse.md

index dc3fdda955f0d916ec5d0dc75245e4096e8e7f21..e4d412ee05b3b19f767c0795630db145070f83aa 100644 (file)
@@ -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.
index ee3af035e0239a1d01add4a98f538b1e22e8476a..31c40d36584f110c6ae7d5fdb4f2a7a5e450b27f 100644 (file)
   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")