Skip to content

Commit 0e69d90

Browse files
committed
exclude v1i64
1 parent cc1bc5a commit 0e69d90

File tree

1 file changed

+3
-1
lines changed

1 file changed

+3
-1
lines changed

llvm/lib/Target/AArch64/AArch64ISelLowering.cpp

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9804,7 +9804,8 @@ SDValue AArch64TargetLowering::LowerCTPOP_PARITY(SDValue Op,
98049804
Val = DAG.getBitcast(VT8Bit, Val);
98059805
Val = DAG.getNode(ISD::CTPOP, DL, VT8Bit, Val);
98069806

9807-
if (Subtarget->hasDotProd() && VT.getScalarSizeInBits() != 16) {
9807+
if (Subtarget->hasDotProd() && VT.getScalarSizeInBits() != 16 &&
9808+
VT.getVectorNumElements() >= 2) {
98089809
EVT DT = VT == MVT::v2i64 ? MVT::v4i32 : VT;
98099810
SDValue Zeros = DAG.getSplatBuildVector(
98109811
DT, DL, DAG.getConstant(0, DL, DT.getScalarType()));
@@ -9824,6 +9825,7 @@ SDValue AArch64TargetLowering::LowerCTPOP_PARITY(SDValue Op,
98249825

98259826
return Val;
98269827
}
9828+
98279829
// Widen v8i8/v16i8 CTPOP result to VT by repeatedly widening pairwise adds.
98289830
unsigned EltSize = 8;
98299831
unsigned NumElts = VT.is64BitVector() ? 8 : 16;

0 commit comments

Comments
 (0)