================ @@ -2093,17 +2107,10 @@ void CodeGenFunction::EmitStoreOfScalar(llvm::Value *Value, Address Addr, llvm::Type *SrcTy = Value->getType(); if (const auto *ClangVecTy = Ty->getAs<VectorType>()) { auto *VecTy = dyn_cast<llvm::FixedVectorType>(SrcTy); - if (VecTy && ClangVecTy->isExtVectorBoolType()) { - auto *MemIntTy = cast<llvm::IntegerType>(Addr.getElementType()); - // Expand to the memory bit width. - unsigned MemNumElems = MemIntTy->getPrimitiveSizeInBits(); - // <N x i1> --> <P x i1>. - Value = emitBoolVecConversion(Value, MemNumElems, "insertvec"); - // <P x i1> --> iP. - Value = Builder.CreateBitCast(Value, MemIntTy); - } else if (!CGM.getCodeGenOpts().PreserveVec3Type) { + if (!CGM.getCodeGenOpts().PreserveVec3Type) { // Handle vec3 special. - if (VecTy && cast<llvm::FixedVectorType>(VecTy)->getNumElements() == 3) { + if (!ClangVecTy->isExtVectorBoolType() && VecTy && ---------------- rjmccall wrote:
`VecTy` is the cheapest thing to check here, you should continue to check it first. https://github.com/llvm/llvm-project/pull/91364 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits