diff --git a/test/TableGen/DagDefSubst.td b/test/TableGen/DagDefSubst.td
deleted file mode 100644
index 92a207f4182..00000000000
--- a/test/TableGen/DagDefSubst.td
+++ /dev/null
@@ -1,16 +0,0 @@
-// RUN: tblgen %s | grep {dag d = (X Y)}
-// RUN: tblgen %s | grep {dag e = (Y X)}
-// XFAIL: vg_leak
-def X;
-
-class yclass;
-def Y : yclass;
-
-class C<yclass N> {
-  dag d = (X N);
-  dag e = (N X);
-}
-
-def VAL : C<Y>;
-
-
diff --git a/test/TableGen/DagIntSubst.td b/test/TableGen/DagIntSubst.td
index 00fde694e7d..676f0b0270d 100644
--- a/test/TableGen/DagIntSubst.td
+++ b/test/TableGen/DagIntSubst.td
@@ -1,11 +1,30 @@
-// RUN: tblgen %s | grep {dag d = (X 13)}
+// RUN: tblgen %s | FileCheck %s
 // XFAIL: vg_leak
-def X;
+def X1;
 
-class C<int N> {
-  dag d = (X N);
+class C1<int N> {
+  dag d = (X1 N);
 }
 
-def VAL : C<13>;
+def VAL1 : C1<13>;
+
+// CHECK: def VAL1 {
+// CHECK-NEXT: dag d = (X1 13)
 
 
+def X2;
+
+class yclass;
+def Y2 : yclass;
+
+class C2<yclass N> {
+  dag d = (X2 N);
+  dag e = (N X2);
+}
+
+def VAL2 : C2<Y2>;
+
+// CHECK: def VAL2 {
+// CHECK-NEXT: dag d = (X2 Y2)
+// CHECK-NEXT: dag e = (Y2 X2)
+