aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorUros Bizjak <ubizjak@gmail.com>2019-10-28 12:29:43 +0100
committerUros Bizjak <uros@gcc.gnu.org>2019-10-28 12:29:43 +0100
commitbd7a559a0f5893c9881bdcc45bdc6a3586980dea (patch)
tree1c8192db7beef526bc6ad708439ca3d497495103 /gcc
parent6f86b8da041872da76a3b0808088e71cc0c9ac23 (diff)
downloadgcc-bd7a559a0f5893c9881bdcc45bdc6a3586980dea.zip
gcc-bd7a559a0f5893c9881bdcc45bdc6a3586980dea.tar.gz
gcc-bd7a559a0f5893c9881bdcc45bdc6a3586980dea.tar.bz2
re PR target/92225 (ice in gen_smaxv2di3, at config/i386/sse.md:12225)
PR target/92225 * config/i386/sse.md (REDUC_SSE_SMINMAX_MODE): Use TARGET_SSE4_2 condition for V2DImode. testsuite/ChangeLog: PR target/92225 * gcc.target/i386/pr92225.c: New test. From-SVN: r277510
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/config/i386/sse.md2
-rw-r--r--gcc/testsuite/ChangeLog5
-rw-r--r--gcc/testsuite/gcc.target/i386/pr92225.c19
4 files changed, 31 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 10302d6..d11c0ac 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,11 @@
2019-10-28 Uroš Bizjak <ubizjak@gmail.com>
+ PR target/92225
+ * config/i386/sse.md (REDUC_SSE_SMINMAX_MODE): Use TARGET_SSE4_2
+ condition for V2DImode.
+
+2019-10-28 Uroš Bizjak <ubizjak@gmail.com>
+
* config/i386/sse.md (sse_cvtss2si<rex64namesuffix>_2):
Remove %k operand modifier.
(*vec_extractv2df_1_sse): Remove %q operand modifier.
diff --git a/gcc/config/i386/sse.md b/gcc/config/i386/sse.md
index 1eeb85a..06cadc1 100644
--- a/gcc/config/i386/sse.md
+++ b/gcc/config/i386/sse.md
@@ -2825,7 +2825,7 @@
;; Modes handled by reduc_sm{in,ax}* patterns.
(define_mode_iterator REDUC_SSE_SMINMAX_MODE
[(V4SF "TARGET_SSE") (V2DF "TARGET_SSE")
- (V2DI "TARGET_SSE") (V4SI "TARGET_SSE") (V8HI "TARGET_SSE")
+ (V2DI "TARGET_SSE4_2") (V4SI "TARGET_SSE") (V8HI "TARGET_SSE")
(V16QI "TARGET_SSE")])
(define_expand "reduc_<code>_scal_<mode>"
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 3fe8a78..c7f3af7 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2019-10-28 Uroš Bizjak <ubizjak@gmail.com>
+
+ PR target/92225
+ * gcc.target/i386/pr92225.c: New test.
+
2019-10-28 Michael Matz <matz@suse.de>
PR middle-end/90796
diff --git a/gcc/testsuite/gcc.target/i386/pr92225.c b/gcc/testsuite/gcc.target/i386/pr92225.c
new file mode 100644
index 0000000..b123219
--- /dev/null
+++ b/gcc/testsuite/gcc.target/i386/pr92225.c
@@ -0,0 +1,19 @@
+/* PR target/92225 */
+/* { dg-do compile } */
+/* { dg-options "-O2 -ftree-vectorize -msse2 -mno-sse4" } */
+
+void a (long);
+
+unsigned *b;
+
+void
+c ()
+{
+ long d = 2;
+ int e = 0;
+
+ for (; e < 1024; e++)
+ if (b[e] > d)
+ d = b[e];
+ a (d);
+}