diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 2316607f0052106beea63b10d630e7ac08a7e5ee..856f8a228653e184072732c448c5647b0014ca6e 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,10 @@
+2004-05-21  Andrew Pinski  <pinskia@physics.uc.edu>
+
+	PR middle-end/21331
+	PR tree-opt/21293
+	* gcc.c-torture/compile/pr21293.c: New test.
+	* gcc.c-torture/execute/pr21331.c: New test.
+
 2004-05-20  Richard Henderson  <rth@redhat.com>
 
 	* g++.dg/other/stdarg3.C: Spell "hpux*" correctly.
diff --git a/gcc/testsuite/gcc.c-torture/compile/pr21293.c b/gcc/testsuite/gcc.c-torture/compile/pr21293.c
new file mode 100644
index 0000000000000000000000000000000000000000..54184b3e03924ecf3f026f06befd83933e0f0d65
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/compile/pr21293.c
@@ -0,0 +1,12 @@
+/* Testcase from Dale Johannesen <dalej@gcc.gnu.org>. */
+struct {
+double x[1];
+} g;
+void k( double *, double*);
+void h(int Tmp8)
+{
+  int i;
+  for(i = 1;i <= Tmp8;i++)
+    k(&g.x[ + -1],&g.x[ Tmp8 + -1]);
+}
+
diff --git a/gcc/testsuite/gcc.c-torture/execute/pr21331.c b/gcc/testsuite/gcc.c-torture/execute/pr21331.c
new file mode 100644
index 0000000000000000000000000000000000000000..4d95878e631aa9a52616ab162c74f8260281daa2
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/execute/pr21331.c
@@ -0,0 +1,15 @@
+void abort (void);
+
+int bar (void) {  return -1;  }
+
+unsigned long
+foo ()
+{ unsigned long retval;
+  retval = bar ();
+  if (retval == -1)  return 0;
+  return 3;  }
+
+main ()
+{ if (foo () != 0)  abort ();
+  return 0;  }
+