diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index bfb27d6ee22a6f2d2b20c451d019dfeaaa72c011..5b5964db18a33f22ab44cb99a7dbce0fb9ccd3d5 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2011-06-22  Jakub Jelinek  <jakub@redhat.com>
+
+	PR debug/49496
+	* tree-vect-patterns.c (vect_recog_widen_mult_pattern): Ignore debug
+	uses.
+
 2011-06-22  Richard Guenther  <rguenther@suse.de>
 
 	PR tree-optimization/49493
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 691f088b1cfa3cb87d8011f3a2a9e70439c20aa9..61ccb064b83b0e55029f672c6246a02088e2f77b 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2011-06-22  Jakub Jelinek  <jakub@redhat.com>
+
+	PR debug/49496
+	* gcc.dg/pr49496.c: New test.
+
 2011-06-22  Janis Johnson  <janisjo@codesourcery.com>
 
 	* gcc.target/arm/scd42-3.c: Allow -march-xscale; skip if -mcpu
diff --git a/gcc/testsuite/gcc.dg/pr49496.c b/gcc/testsuite/gcc.dg/pr49496.c
new file mode 100644
index 0000000000000000000000000000000000000000..06563f3bcdf1cfad5547ed1412d1d1c952e84190
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/pr49496.c
@@ -0,0 +1,20 @@
+/* PR debug/49496 */
+/* { dg-do compile } */
+/* { dg-options "-O3 -fcompare-debug" } */
+
+unsigned short u[8], s1[8], s2[8];
+
+void bar (unsigned short *);
+
+void
+foo (void)
+{
+  unsigned short e[8];
+  int i;
+  for (i = 0; i < 8; i++)
+    {
+      int tmp = s1[i] * s2[i];
+      e[i] = (tmp & 0xffff0000) >> 16;
+    }
+  bar (e);
+}
diff --git a/gcc/tree-vect-patterns.c b/gcc/tree-vect-patterns.c
index ce941425e0c0137afaeed3bccf0c24569357c329..429dd87cfffb955568ffcb5dad07e81b67a0ce85 100644
--- a/gcc/tree-vect-patterns.c
+++ b/gcc/tree-vect-patterns.c
@@ -1,5 +1,6 @@
 /* Analysis Utilities for Loop Vectorization.
-   Copyright (C) 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
+   Copyright (C) 2006, 2007, 2008, 2009, 2010, 2011
+   Free Software Foundation, Inc.
    Contributed by Dorit Nuzman <dorit@il.ibm.com>
 
 This file is part of GCC.
@@ -557,6 +558,8 @@ vect_recog_widen_mult_pattern (VEC (gimple, heap) **stmts,
 
       FOR_EACH_IMM_USE_FAST (use_p, imm_iter, lhs)
         {
+	  if (is_gimple_debug (USE_STMT (use_p)))
+	    continue;
           use_stmt = USE_STMT (use_p);
           nuses++;
         }