@@ -2656,6 +2656,7 @@ static mlir::Value emitCommonNeonSISDBuiltinExpr(
26562656 unsigned builtinID = info.BuiltinID ;
26572657 clang::CIRGen::CIRGenBuilderTy &builder = cgf.getBuilder ();
26582658 mlir::Type resultTy = cgf.convertType (expr->getType ());
2659+ mlir::Type argTy = cgf.convertType (expr->getArg (0 )->getType ());
26592660 mlir::Location loc = cgf.getLoc (expr->getExprLoc ());
26602661
26612662 switch (builtinID) {
@@ -2674,11 +2675,9 @@ static mlir::Value emitCommonNeonSISDBuiltinExpr(
26742675 llvm_unreachable (" neon_vaddlv_u32 NYI " );
26752676 case NEON::BI__builtin_neon_vaddlvq_s32:
26762677 llvm_unreachable (" neon_vaddlvq_s32 NYI " );
2677- case NEON::BI__builtin_neon_vaddlvq_u32: {
2678- mlir::Type argTy = cgf.convertType (expr->getArg (0 )->getType ());
2678+ case NEON::BI__builtin_neon_vaddlvq_u32:
26792679 return emitNeonCall (builder, {argTy}, ops, " aarch64.neon.uaddlv" , resultTy,
26802680 loc);
2681- }
26822681 case NEON::BI__builtin_neon_vaddv_f32:
26832682 llvm_unreachable (" neon_vaddv_f32 NYI " );
26842683 case NEON::BI__builtin_neon_vaddv_s32:
@@ -2694,9 +2693,9 @@ static mlir::Value emitCommonNeonSISDBuiltinExpr(
26942693 case NEON::BI__builtin_neon_vaddvq_s64:
26952694 llvm_unreachable (" neon_vaddvq_s64 NYI " );
26962695 case NEON::BI__builtin_neon_vaddvq_u32:
2697- llvm_unreachable (" neon_vaddvq_u32 NYI " );
26982696 case NEON::BI__builtin_neon_vaddvq_u64:
2699- llvm_unreachable (" neon_vaddvq_u64 NYI " );
2697+ return emitNeonCall (builder, {argTy}, ops, " aarch64.neon.uaddv" , resultTy,
2698+ loc);
27002699 case NEON::BI__builtin_neon_vcaged_f64:
27012700 llvm_unreachable (" neon_vcaged_f64 NYI " );
27022701 case NEON::BI__builtin_neon_vcages_f32:
0 commit comments