]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
re PR target/65561 (avx512fintrin.h:5344:1: internal compiler error: in curr_insn_tra...
authorUros Bizjak <uros@gcc.gnu.org>
Thu, 26 Mar 2015 22:14:07 +0000 (23:14 +0100)
committerUros Bizjak <uros@gcc.gnu.org>
Thu, 26 Mar 2015 22:14:07 +0000 (23:14 +0100)
PR target/65561
* config/i386/sse.md (avx512f_vextract<shuffletype>32x4_1_maskm):
Check operand 6 and operand 0 for equality.
(vec_extract_lo_<mode>_maskm): Check operand 2 and operand 0
for equality.
(vec_extract_hi_<mode>_maskm): Ditto.

From-SVN: r221712

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

index eda17564616ff7f04bfe7e7309682ac9e85481a3..f6c6f39adb46bf928c177233434701f7fdfe54e8 100644 (file)
@@ -1,3 +1,12 @@
+2015-03-26  Uros Bizjak  <ubizjak@gmail.com>
+
+       PR target/65561
+       * config/i386/sse.md (avx512f_vextract<shuffletype>32x4_1_maskm):
+       Check operand 6 and operand 0 for equality.
+       (vec_extract_lo_<mode>_maskm): Check operand 2 and operand 0
+       for equality.
+       (vec_extract_hi_<mode>_maskm): Ditto.
+
 2015-03-26  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
 
        Backport of r214242, r214254, and bug fix patches from mainline
@@ -87,8 +96,8 @@
        2015-02-11  Martin Liska  <mliska@suse.cz>
 
        PR ipa/64813
-        * cgraphunit.c (cgraph_node::expand_thunk): Do not create a return
-        value for call to a function that is noreturn.
+       * cgraphunit.c (cgraph_node::expand_thunk): Do not create a return
+       value for call to a function that is noreturn.
 
 2015-03-23  Yvan Roux  <yvan.roux@linaro.org>
 
        Backport from mainline.
        2014-11-28  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
 
-        * config/arm/t-aprofile (MULTILIB_MATCHES): New entry for
+       * config/arm/t-aprofile (MULTILIB_MATCHES): New entry for
        -march=armv8-a+crc.
 
 2014-11-26  Richard Biener  <rguenther@suse.de>
index 439ced0dde57f380f0cc02f09a4631faba46b9fb..5973b3423b056f8ef4c3b1e42b93eb3eb2c3044a 100644 (file)
   "TARGET_AVX512F
    && (INTVAL (operands[2]) == (INTVAL (operands[3]) - 1)
        && INTVAL (operands[3]) == (INTVAL (operands[4]) - 1)
-       && INTVAL (operands[4]) == (INTVAL (operands[5]) - 1))"
+       && INTVAL (operands[4]) == (INTVAL (operands[5]) - 1))
+   && rtx_equal_p (operands[6], operands[0])"
 {
   operands[2] = GEN_INT ((INTVAL (operands[2])) >> 2);
   return "vextract<shuffletype>32x4\t{%2, %1, %0%{%7%}|%0%{%7%}, %1, %2}";
              (const_int 2) (const_int 3)]))
          (match_operand:<ssehalfvecmode> 2 "memory_operand" "0")
          (match_operand:QI 3 "register_operand" "Yk")))]
-  "TARGET_AVX512F"
-"vextract<shuffletype>64x4\t{$0x0, %1, %0%{%3%}|%0%{%3%}, %1, 0x0}"
+  "TARGET_AVX512F
+   && rtx_equal_p (operands[2], operands[0])"
+  "vextract<shuffletype>64x4\t{$0x0, %1, %0%{%3%}|%0%{%3%}, %1, 0x0}"
   [(set_attr "type" "sselog")
    (set_attr "prefix_extra" "1")
    (set_attr "length_immediate" "1")
              (const_int 6) (const_int 7)]))
          (match_operand:<ssehalfvecmode> 2 "memory_operand" "0")
          (match_operand:QI 3 "register_operand" "Yk")))]
-  "TARGET_AVX512F"
+  "TARGET_AVX512F
+   && rtx_equal_p (operands[2], operands[0])"
   "vextract<shuffletype>64x4\t{$0x1, %1, %0%{%3%}|%0%{%3%}, %1, 0x1}"
   [(set_attr "type" "sselog")
    (set_attr "prefix_extra" "1")