// If AltiVec, the comparison results in a numeric type, so we use
// intrinsics comparing vectors and giving 0 or 1 as a result
- if (LHSTy->isVectorType() &&
- LHSTy->getAs<VectorType>()->getVectorKind() ==
- VectorType::AltiVecVector) {
+ if (LHSTy->isVectorType() && !E->getType()->isVectorType()) {
// constants for mapping CR6 register bits to predicate result
enum { CR6_EQ=0, CR6_EQ_REV, CR6_LT, CR6_LT_REV } CR6;
// If AltiVec, the comparison results in a numeric type, i.e.
// bool for C++, int for C
- if (lType->getAs<VectorType>()->getVectorKind() == VectorType::AltiVecVector
- && rType->getAs<VectorType>()->getVectorKind() ==
- VectorType::AltiVecVector)
+ if (vType->getAs<VectorType>()->getVectorKind() == VectorType::AltiVecVector)
return Context.getLogicalOperationType();
// For non-floating point types, check for self-comparisons of the form