[cfe-commits] r76726 - in /cfe/trunk: lib/CodeGen/CGExprScalar.cpp test/CodeGen/ext-vector.c

Eli Friedman eli.friedman at gmail.com
Tue Jul 21 23:07:17 PDT 2009


Author: efriedma
Date: Wed Jul 22 01:07:16 2009
New Revision: 76726

URL: http://llvm.org/viewvc/llvm-project?rev=76726&view=rev
Log:
Make vectorized floating-point comparisons work without crashing.


Modified:
    cfe/trunk/lib/CodeGen/CGExprScalar.cpp
    cfe/trunk/test/CodeGen/ext-vector.c

Modified: cfe/trunk/lib/CodeGen/CGExprScalar.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/CGExprScalar.cpp?rev=76726&r1=76725&r2=76726&view=diff

==============================================================================
--- cfe/trunk/lib/CodeGen/CGExprScalar.cpp (original)
+++ cfe/trunk/lib/CodeGen/CGExprScalar.cpp Wed Jul 22 01:07:16 2009
@@ -1215,7 +1215,7 @@
     Value *LHS = Visit(E->getLHS());
     Value *RHS = Visit(E->getRHS());
     
-    if (LHS->getType()->isFloatingPoint()) {
+    if (LHS->getType()->isFPOrFPVector()) {
       Result = Builder.CreateFCmp((llvm::CmpInst::Predicate)FCmpOpc,
                                   LHS, RHS, "cmp");
     } else if (LHSTy->isSignedIntegerType()) {

Modified: cfe/trunk/test/CodeGen/ext-vector.c
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGen/ext-vector.c?rev=76726&r1=76725&r2=76726&view=diff

==============================================================================
--- cfe/trunk/test/CodeGen/ext-vector.c (original)
+++ cfe/trunk/test/CodeGen/ext-vector.c Wed Jul 22 01:07:16 2009
@@ -124,3 +124,17 @@
   cmp = a == b;
   cmp = a != b;
 }
+
+void test8(float4 *ap, float4 *bp, int c) {
+  float4 a = *ap;
+  float4 b = *bp;
+
+  // Vector comparisons.
+  int4 cmp;
+  cmp = a < b;
+  cmp = a <= b;
+  cmp = a < b;
+  cmp = a >= b;
+  cmp = a == b;
+  cmp = a != b;
+}





More information about the cfe-commits mailing list