diff mbox series

[i386] : Fix PR86348, ICE: in curr_insn_transform, unable to generate reloads for: vec_extractv4si_0_zext_sse4

Message ID CAFULd4bf_iqFFT7B3s=k7ew+0uiRiFSuZK6A640BND8J26Jvqg@mail.gmail.com
State New
Headers show
Series [i386] : Fix PR86348, ICE: in curr_insn_transform, unable to generate reloads for: vec_extractv4si_0_zext_sse4 | expand

Commit Message

Uros Bizjak June 28, 2018, 7:05 p.m. UTC
2018-06-28  Uros Bizjak  <ubizjak@gmail.com>

    PR target/86348
    * config/i386/sse.md (*vec_extractv4si_0_zext_sse4): Use
    alternative 0 in preferred_for_speed attribute.

testsuite/ChangeLog:

2018-06-28  Uros Bizjak  <ubizjak@gmail.com>

    PR target/86348
    * gcc.target/i386/pr86348.c: New test.

Bootstrapped and regression tested on x86_64-linux-gnu {,-m32}.

Committed to mainline SVN.

Uros.
diff mbox series

Patch

Index: config/i386/sse.md
===================================================================
--- config/i386/sse.md	(revision 262224)
+++ config/i386/sse.md	(working copy)
@@ -13715,7 +13715,7 @@ 
   "#"
   [(set_attr "isa" "x64,*,avx512f")
    (set (attr "preferred_for_speed")
-     (cond [(eq_attr "alternative" "1")
+     (cond [(eq_attr "alternative" "0")
 	      (symbol_ref "TARGET_INTER_UNIT_MOVES_FROM_VEC")
 	   ]
 	   (symbol_ref "true")))])
Index: testsuite/gcc.target/i386/pr86348.c
===================================================================
--- testsuite/gcc.target/i386/pr86348.c	(nonexistent)
+++ testsuite/gcc.target/i386/pr86348.c	(working copy)
@@ -0,0 +1,12 @@ 
+/* { dg-do compile { target { ia32 } } } */
+/* { dg-options "-O -mtune=athlon -msse4" } */
+
+int i;
+unsigned __attribute__ ((__vector_size__ (16))) v;
+
+void
+foo (void)
+{
+  v *= i;
+  i = i > -(long long) v[0];
+}