[PATCH, i386]: Fix PR86348, ICE: in curr_insn_transform, unable to generate reloads for: vec_extractv4si_0_zext_sse4
Uros Bizjak
ubizjak@gmail.com
Thu Jun 28 19:05:00 GMT 2018
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.
-------------- next part --------------
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];
+}
More information about the Gcc-patches
mailing list