sse.md (vec_extractv4sf): Removed.
authorH.J. Lu <hongjiu.lu@intel.com>
Wed, 21 May 2008 17:45:50 +0000 (17:45 +0000)
committerH.J. Lu <hjl@gcc.gnu.org>
Wed, 21 May 2008 17:45:50 +0000 (10:45 -0700)
2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>

* config/i386/sse.md (vec_extractv4sf): Removed.
(vec_extractv2df): Likewise.
(vec_extractv2di): Likewise.
(vec_extractv4si): Likewise.
(vec_extractv8hi): Likewise.
(vec_extractv16qi): Likewise.
(vec_extract<mode>): New.

From-SVN: r135728

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

index 01670ecd56d456a8ac4ddc4ba6c0e72de7e72599..661505bdf716f00a65e298fb6c6a754f0aa0f537 100644 (file)
@@ -1,3 +1,13 @@
+2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * config/i386/sse.md (vec_extractv4sf): Removed.
+       (vec_extractv2df): Likewise.
+       (vec_extractv2di): Likewise.
+       (vec_extractv4si): Likewise.
+       (vec_extractv8hi): Likewise.
+       (vec_extractv16qi): Likewise.
+       (vec_extract<mode>): New.
+
 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
 
        * config/i386/sse.md (vec_setv4sf): Removed.
index 2d2252c69088922601ae794f6c8f066465ce52ac..115b382b8d8a92c4b0215e529de026b0f7a8ab2a 100644 (file)
   DONE;
 })
 
-(define_expand "vec_extractv4sf"
-  [(match_operand:SF 0 "register_operand" "")
-   (match_operand:V4SF 1 "register_operand" "")
+(define_expand "vec_extract<mode>"
+  [(match_operand:<ssescalarmode> 0 "register_operand" "")
+   (match_operand:SSEMODE 1 "register_operand" "")
    (match_operand 2 "const_int_operand" "")]
   "TARGET_SSE"
 {
   [(set_attr "type" "sselog,ssemov,ssemov,ssemov,ssemov")
    (set_attr "mode" "V2DF,V1DF,DF,V4SF,V2SF")])
 
-(define_expand "vec_extractv2df"
-  [(match_operand:DF 0 "register_operand" "")
-   (match_operand:V2DF 1 "register_operand" "")
-   (match_operand 2 "const_int_operand" "")]
-  "TARGET_SSE"
-{
-  ix86_expand_vector_extract (false, operands[0], operands[1],
-                             INTVAL (operands[2]));
-  DONE;
-})
-
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;;
 ;; Parallel integral arithmetic
   [(set_attr "type" "ssemov,ssemov,ssemov,sselog,ssemov,ssemov,ssemov")
    (set_attr "mode" "TI,TI,TI,TI,V4SF,V2SF,V2SF")])
 
-(define_expand "vec_extractv2di"
-  [(match_operand:DI 0 "register_operand" "")
-   (match_operand:V2DI 1 "register_operand" "")
-   (match_operand 2 "const_int_operand" "")]
-  "TARGET_SSE"
-{
-  ix86_expand_vector_extract (false, operands[0], operands[1],
-                             INTVAL (operands[2]));
-  DONE;
-})
-
-(define_expand "vec_extractv4si"
-  [(match_operand:SI 0 "register_operand" "")
-   (match_operand:V4SI 1 "register_operand" "")
-   (match_operand 2 "const_int_operand" "")]
-  "TARGET_SSE"
-{
-  ix86_expand_vector_extract (false, operands[0], operands[1],
-                             INTVAL (operands[2]));
-  DONE;
-})
-
-(define_expand "vec_extractv8hi"
-  [(match_operand:HI 0 "register_operand" "")
-   (match_operand:V8HI 1 "register_operand" "")
-   (match_operand 2 "const_int_operand" "")]
-  "TARGET_SSE"
-{
-  ix86_expand_vector_extract (false, operands[0], operands[1],
-                             INTVAL (operands[2]));
-  DONE;
-})
-
-(define_expand "vec_extractv16qi"
-  [(match_operand:QI 0 "register_operand" "")
-   (match_operand:V16QI 1 "register_operand" "")
-   (match_operand 2 "const_int_operand" "")]
-  "TARGET_SSE"
-{
-  ix86_expand_vector_extract (false, operands[0], operands[1],
-                             INTVAL (operands[2]));
-  DONE;
-})
-
 (define_expand "vec_unpacku_hi_v16qi"
   [(match_operand:V8HI 0 "register_operand" "")
    (match_operand:V16QI 1 "register_operand" "")]