sse.md (avx_h<plusminus_insn>v4df3): Fix results crossing 128bit lane boundary.
authorUros Bizjak <ubizjak@gmail.com>
Thu, 29 Mar 2012 21:57:30 +0000 (23:57 +0200)
committerUros Bizjak <uros@gcc.gnu.org>
Thu, 29 Mar 2012 21:57:30 +0000 (23:57 +0200)
* config/i386/sse.md (avx_h<plusminus_insn>v4df3): Fix results
crossing 128bit lane boundary.

From-SVN: r185978

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

index 270d48bd7c1d3c2928e2d8d667343a8e140460e6..9c36a8ac4d5cf801d1e23ab0de7ece1eef5aa5fa 100644 (file)
@@ -1,3 +1,8 @@
+2012-03-29  Uros Bizjak  <ubizjak@gmail.com>
+
+       * config/i386/sse.md (avx_h<plusminus_insn>v4df3): Fix results
+       crossing 128bit lane boundary.
+
 2012-03-29  Vladimir Makarov  <vmakarov@redhat.com>
 
        * ira-color.c (setup_left_conflict_sizes_p): Process all
index 96e43a22ca9d87b51bb2f60ba94b1039b28047a0..b63d774e43f7126e3f8d8d0a8a3150e8f00408d4 100644 (file)
                (match_operand:V4DF 1 "register_operand" "x")
                (parallel [(const_int 0)]))
              (vec_select:DF (match_dup 1) (parallel [(const_int 1)])))
-           (plusminus:DF
-             (vec_select:DF (match_dup 1) (parallel [(const_int 2)]))
-             (vec_select:DF (match_dup 1) (parallel [(const_int 3)]))))
-         (vec_concat:V2DF
            (plusminus:DF
              (vec_select:DF
                (match_operand:V4DF 2 "nonimmediate_operand" "xm")
                (parallel [(const_int 0)]))
-             (vec_select:DF (match_dup 2) (parallel [(const_int 1)])))
+             (vec_select:DF (match_dup 2) (parallel [(const_int 1)]))))
+         (vec_concat:V2DF
+           (plusminus:DF
+             (vec_select:DF (match_dup 1) (parallel [(const_int 2)]))
+             (vec_select:DF (match_dup 1) (parallel [(const_int 3)])))
            (plusminus:DF
              (vec_select:DF (match_dup 2) (parallel [(const_int 2)]))
              (vec_select:DF (match_dup 2) (parallel [(const_int 3)]))))))]