@@ -2654,6 +2654,7 @@ static mlir::Value emitCommonNeonSISDBuiltinExpr(
26542654 unsigned builtinID = info.BuiltinID ;
26552655 clang::CIRGen::CIRGenBuilderTy &builder = cgf.getBuilder ();
26562656 mlir::Type resultTy = cgf.convertType (expr->getType ());
2657+ mlir::Type argTy = cgf.convertType (expr->getArg (0 )->getType ());
26572658 mlir::Location loc = cgf.getLoc (expr->getExprLoc ());
26582659
26592660 switch (builtinID) {
@@ -2672,11 +2673,9 @@ static mlir::Value emitCommonNeonSISDBuiltinExpr(
26722673 llvm_unreachable (" neon_vaddlv_u32 NYI " );
26732674 case NEON::BI__builtin_neon_vaddlvq_s32:
26742675 llvm_unreachable (" neon_vaddlvq_s32 NYI " );
2675- case NEON::BI__builtin_neon_vaddlvq_u32: {
2676- mlir::Type argTy = cgf.convertType (expr->getArg (0 )->getType ());
2676+ case NEON::BI__builtin_neon_vaddlvq_u32:
26772677 return emitNeonCall (builder, {argTy}, ops, " aarch64.neon.uaddlv" , resultTy,
26782678 loc);
2679- }
26802679 case NEON::BI__builtin_neon_vaddv_f32:
26812680 llvm_unreachable (" neon_vaddv_f32 NYI " );
26822681 case NEON::BI__builtin_neon_vaddv_s32:
@@ -2692,9 +2691,9 @@ static mlir::Value emitCommonNeonSISDBuiltinExpr(
26922691 case NEON::BI__builtin_neon_vaddvq_s64:
26932692 llvm_unreachable (" neon_vaddvq_s64 NYI " );
26942693 case NEON::BI__builtin_neon_vaddvq_u32:
2695- llvm_unreachable (" neon_vaddvq_u32 NYI " );
26962694 case NEON::BI__builtin_neon_vaddvq_u64:
2697- llvm_unreachable (" neon_vaddvq_u64 NYI " );
2695+ return emitNeonCall (builder, {argTy}, ops, " aarch64.neon.uaddv" , resultTy,
2696+ loc);
26982697 case NEON::BI__builtin_neon_vcaged_f64:
26992698 llvm_unreachable (" neon_vcaged_f64 NYI " );
27002699 case NEON::BI__builtin_neon_vcages_f32:
0 commit comments