This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
[AVX] PR target/37101: Remove vmovlps alternative
- From: "H.J. Lu" <hongjiu dot lu at intel dot com>
- To: gcc-patches at gcc dot gnu dot org
- Cc: Joey Ye <joey dot ye at intel dot com>, Xuepeng Guo <xuepeng dot guo at intel dot com>
- Date: Thu, 14 Aug 2008 11:25:46 -0700
- Subject: [AVX] PR target/37101: Remove vmovlps alternative
- Reply-to: "H.J. Lu" <hjl dot tools at gmail dot com>
I checked this patch into AVX branch to remove vmovlps alternative
on "*vec_concatv2di_avx" and "*vec_concatv2di_rex64_avx".
H.J.
----
Index: ChangeLog.avx
===================================================================
--- ChangeLog.avx (revision 139107)
+++ ChangeLog.avx (working copy)
@@ -1,3 +1,10 @@
+2008-08-14 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR target/37101
+ * config/i386/sse.md (*vec_concatv2di_avx): Remove vmovlps
+ alternative.
+ (*vec_concatv2di_rex64_avx): Likewise.
+
2008-08-11 H.J. Lu <hongjiu.lu@intel.com>
* config/i386/i386.c (ix86_builtin_type): Add
Index: config/i386/sse.md
===================================================================
--- config/i386/sse.md (revision 139107)
+++ config/i386/sse.md (working copy)
@@ -7158,23 +7158,22 @@
(set_attr "mode" "TI,V4SF,V2SF")])
(define_insn "*vec_concatv2di_avx"
- [(set (match_operand:V2DI 0 "register_operand" "=x,?x,x,x,x")
+ [(set (match_operand:V2DI 0 "register_operand" "=x,?x,x,x")
(vec_concat:V2DI
- (match_operand:DI 1 "nonimmediate_operand" " m,*y,x,x,m")
- (match_operand:DI 2 "vector_move_operand" " C, C,x,m,x")))]
+ (match_operand:DI 1 "nonimmediate_operand" " m,*y,x,x")
+ (match_operand:DI 2 "vector_move_operand" " C, C,x,m")))]
"!TARGET_64BIT && TARGET_AVX"
"@
vmovq\t{%1, %0|%0, %1}
movq2dq\t{%1, %0|%0, %1}
vpunpcklqdq\t{%2, %1, %0|%0, %1, %2}
- vmovhps\t{%2, %1, %0|%0, %1, %2}
- vmovlps\t{%1, %2, %0|%0, %2, %1}"
- [(set_attr "type" "ssemov,ssemov,sselog,ssemov,ssemov")
+ vmovhps\t{%2, %1, %0|%0, %1, %2}"
+ [(set_attr "type" "ssemov,ssemov,sselog,ssemov")
(set (attr "prefix")
(if_then_else (eq_attr "alternative" "1")
(const_string "orig")
(const_string "vex")))
- (set_attr "mode" "TI,TI,TI,V2SF,V2SF")])
+ (set_attr "mode" "TI,TI,TI,V2SF")])
(define_insn "vec_concatv2di"
[(set (match_operand:V2DI 0 "register_operand" "=Y2 ,?Y2,Y2,x,x")
@@ -7192,10 +7191,10 @@
(set_attr "mode" "TI,TI,TI,V4SF,V2SF")])
(define_insn "*vec_concatv2di_rex64_avx"
- [(set (match_operand:V2DI 0 "register_operand" "=x,x,Yi,!x,x,x,x")
+ [(set (match_operand:V2DI 0 "register_operand" "=x,x,Yi,!x,x,x")
(vec_concat:V2DI
- (match_operand:DI 1 "nonimmediate_operand" " x,m,r ,*y,x,x,m")
- (match_operand:DI 2 "vector_move_operand" "rm,C,C ,C ,x,m,x")))]
+ (match_operand:DI 1 "nonimmediate_operand" " x,m,r ,*y,x,x")
+ (match_operand:DI 2 "vector_move_operand" "rm,C,C ,C ,x,m")))]
"TARGET_64BIT && TARGET_AVX"
"@
vpinsrq\t{$0x1, %2, %1, %0|%0, %1, %2, 0x1}
@@ -7203,14 +7202,13 @@
vmovq\t{%1, %0|%0, %1}
movq2dq\t{%1, %0|%0, %1}
vpunpcklqdq\t{%2, %1, %0|%0, %1, %2}
- vmovhps\t{%2, %1, %0|%0, %1, %2}
- vmovlps\t{%1, %2, %0|%0, %2, %1}"
- [(set_attr "type" "sselog,ssemov,ssemov,ssemov,sselog,ssemov,ssemov")
+ vmovhps\t{%2, %1, %0|%0, %1, %2}"
+ [(set_attr "type" "sselog,ssemov,ssemov,ssemov,sselog,ssemov")
(set (attr "prefix")
(if_then_else (eq_attr "alternative" "3")
(const_string "orig")
(const_string "vex")))
- (set_attr "mode" "TI,TI,TI,TI,TI,V2SF,V2SF")])
+ (set_attr "mode" "TI,TI,TI,TI,TI,V2SF")])
(define_insn "*vec_concatv2di_rex64_sse4_1"
[(set (match_operand:V2DI 0 "register_operand" "=x ,x ,Yi,!x,x,x,x")