OSDN Git Service

PR target/50202
authoruros <uros@138bc75d-0d04-0410-961f-82ee72b054a4>
Sat, 27 Aug 2011 07:46:35 +0000 (07:46 +0000)
committeruros <uros@138bc75d-0d04-0410-961f-82ee72b054a4>
Sat, 27 Aug 2011 07:46:35 +0000 (07:46 +0000)
* config/i386/sse.md (sse4_2_pcmpestr): Emit NOTE_INSN_DELETED note
when all outputs are unused.
(sse4_2_pcmpestr): Ditto.

testsuite/ChangeLog:

PR target/50202
* gcc.target/i386/pr50202.c: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@178130 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/config/i386/sse.md
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.target/i386/pr50202.c [new file with mode: 0644]

index 14aaee7..659bb0e 100644 (file)
@@ -1,3 +1,10 @@
+2011-08-27  Uros Bizjak  <ubizjak@gmail.com>
+
+       PR target/50202
+       * config/i386/sse.md (sse4_2_pcmpestr): Emit NOTE_INSN_DELETED note
+       when all outputs are unused.
+       (sse4_2_pcmpestr): Ditto.
+
 2011-08-26  Uros Bizjak  <ubizjak@gmail.com>
 
        * config/i386/i386.md (round<mode>2): New expander.
index e1c70eb..0c7daf2 100644 (file)
                                           operands[2], operands[3],
                                           operands[4], operands[5],
                                           operands[6]));
+  if (!(flags || ecx || xmm0))
+    emit_note (NOTE_INSN_DELETED);
+
   DONE;
 }
   [(set_attr "type" "sselog")
     emit_insn (gen_sse4_2_pcmpistr_cconly (NULL, NULL,
                                           operands[2], operands[3],
                                           operands[4]));
+  if (!(flags || ecx || xmm0))
+    emit_note (NOTE_INSN_DELETED);
+
   DONE;
 }
   [(set_attr "type" "sselog")
index 8974d2e..3481657 100644 (file)
@@ -1,3 +1,8 @@
+2011-08-27  Uros Bizjak  <ubizjak@gmail.com>
+
+       PR target/50202
+       * gcc.target/i386/pr50202.c: New test.
+
 2011-08-26  Uros Bizjak  <ubizjak@gmail.com>
 
        * gcc.target/i386/sse_4_1-round-vec.c: New test.
diff --git a/gcc/testsuite/gcc.target/i386/pr50202.c b/gcc/testsuite/gcc.target/i386/pr50202.c
new file mode 100644 (file)
index 0000000..2023ec8
--- /dev/null
@@ -0,0 +1,15 @@
+/* { dg-do compile } */
+/* { dg-options "-O -fno-tree-dse -fno-dce -msse4" } */
+/* { dg-require-effective-target sse4 } */
+
+typedef char __v16qi __attribute__ ((__vector_size__ (16)));
+
+__v16qi v;
+int i;
+
+void
+foo (void)
+{
+  i = __builtin_ia32_pcmpistri128 (v, v, 255);
+  i = 255;
+}