Codegen sometimes crashes on comparisons that aren't legal, just
disable this feature for now, to err on the side of rejecting instead
of sometimes crashing.  rdar://6326239


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68088 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/test/CodeGen/ext-vector.c b/test/CodeGen/ext-vector.c
index 249142a..e3b6211 100644
--- a/test/CodeGen/ext-vector.c
+++ b/test/CodeGen/ext-vector.c
@@ -74,14 +74,17 @@
   a *= c;
   a /= c;
 
+  // Vector comparisons can sometimes crash the x86 backend: rdar://6326239,
+  // reject them until the implementation is stable.
+#if 0
   int4 cmp;
-
   cmp = a < b;
   cmp = a <= b;
   cmp = a < b;
   cmp = a >= b;
   cmp = a == b;
   cmp = a != b;
+#endif
 }
 
 void test7(int4 *ap, int4 *bp, int c) {
@@ -112,12 +115,15 @@
   a /= c;
   a %= c;
 
+  // Vector comparisons can sometimes crash the x86 backend: rdar://6326239,
+  // reject them until the implementation is stable.
+#if 0
   int4 cmp;
-
   cmp = a < b;
   cmp = a <= b;
   cmp = a < b;
   cmp = a >= b;
   cmp = a == b;
   cmp = a != b;
+#endif
 }
diff --git a/test/Sema/exprs.c b/test/Sema/exprs.c
index 8033407..ae4c37c 100644
--- a/test/Sema/exprs.c
+++ b/test/Sema/exprs.c
@@ -91,3 +91,16 @@
   P();
   P = ^(){}; // expected-error {{blocks support disabled - compile with -fblocks}}
 }
+
+
+// rdar://6326239 - Vector comparisons are not fully trusted yet, until the
+// backend is known to work, just unconditionally reject them.
+void test14() {
+  typedef long long __m64 __attribute__((__vector_size__(8))); // expected-warning {{extension used}}
+  typedef short __v4hi __attribute__((__vector_size__(8))); // expected-warning {{extension used}}
+
+  __v4hi a;
+  __m64 mask = (__m64)((__v4hi)a >  // expected-error {{comparison of vector types ('__v4hi' and '__v4hi') not supported yet}}
+                      (__v4hi)a);
+}
+